mumble.chapril.org-mumbleweb/index.js

52941 lines
7.5 MiB
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId])
/******/ return installedModules[moduleId].exports;
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ exports: {},
/******/ id: moduleId,
/******/ loaded: false
/******/ };
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/ // Flag the module as loaded
/******/ module.loaded = true;
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/ // Load entry module and return exports
/******/ return __webpack_require__(0);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, exports, __webpack_require__) {
__webpack_require__(39);
module.exports = __webpack_require__(343);
/***/ }),
/* 1 */,
/* 2 */,
/* 3 */,
/* 4 */,
/* 5 */,
/* 6 */,
/* 7 */,
/* 8 */,
/* 9 */,
/* 10 */,
/* 11 */,
/* 12 */,
/* 13 */,
/* 14 */,
/* 15 */,
/* 16 */,
/* 17 */,
/* 18 */,
/* 19 */,
/* 20 */,
/* 21 */,
/* 22 */,
/* 23 */,
/* 24 */,
/* 25 */,
/* 26 */,
/* 27 */,
/* 28 */,
/* 29 */,
/* 30 */,
/* 31 */,
/* 32 */,
/* 33 */,
/* 34 */,
/* 35 */,
/* 36 */,
/* 37 */,
/* 38 */,
/* 39 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
var _assign = __webpack_require__(40);
var _assign2 = _interopRequireDefault(_assign);
var _entries = __webpack_require__(78);
var _entries2 = _interopRequireDefault(_entries);
var _classCallCheck2 = __webpack_require__(82);
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = __webpack_require__(83);
var _createClass3 = _interopRequireDefault(_createClass2);
__webpack_require__(87);
__webpack_require__(117);
var _url2 = __webpack_require__(118);
var _url3 = _interopRequireDefault(_url2);
var _bytebuffer = __webpack_require__(125);
var _bytebuffer2 = _interopRequireDefault(_bytebuffer);
var _mumbleClient = __webpack_require__(128);
var _mumbleClient2 = _interopRequireDefault(_mumbleClient);
var _workerClient = __webpack_require__(207);
var _workerClient2 = _interopRequireDefault(_workerClient);
var _webAudioBufferQueue = __webpack_require__(309);
var _webAudioBufferQueue2 = _interopRequireDefault(_webAudioBufferQueue);
var _audioContext = __webpack_require__(311);
var _audioContext2 = _interopRequireDefault(_audioContext);
var _knockout = __webpack_require__(312);
var _knockout2 = _interopRequireDefault(_knockout);
var _dompurify2 = __webpack_require__(313);
var _dompurify3 = _interopRequireDefault(_dompurify2);
var _keyboardjs = __webpack_require__(314);
var _keyboardjs2 = _interopRequireDefault(_keyboardjs);
var _voice = __webpack_require__(319);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// polyfill for https://bugs.chromium.org/p/chromium/issues/detail?id=31666
var dompurify = (0, _dompurify3.default)(window); // see https://github.com/ericgundrum/pouch-websocket-sync-example/commit/2a4437b013092cc7b2cd84cf1499172c84a963a3
function sanitize(html) {
return dompurify.sanitize(html, {
ALLOWED_TAGS: ['br', 'b', 'i', 'u', 'a', 'span', 'p']
});
}
function openContextMenu(event, contextMenu, target) {
contextMenu.posX(event.clientX);
contextMenu.posY(event.clientY);
contextMenu.target(target);
var closeListener = function closeListener(event) {
// Always close, no matter where they clicked
setTimeout(function () {
// delay to allow click to be actually processed
contextMenu.target(null);
unregister();
});
};
var unregister = function unregister() {
return document.removeEventListener('click', closeListener);
};
document.addEventListener('click', closeListener);
event.stopPropagation();
event.preventDefault();
}
// GUI
function ContextMenu() {
var self = this;
self.posX = _knockout2.default.observable();
self.posY = _knockout2.default.observable();
self.target = _knockout2.default.observable();
}
function ConnectDialog() {
var self = this;
self.address = _knockout2.default.observable('');
self.port = _knockout2.default.observable('');
self.tokenToAdd = _knockout2.default.observable('');
self.selectedTokens = _knockout2.default.observableArray([]);
self.tokens = _knockout2.default.observableArray([]);
self.username = _knockout2.default.observable('');
self.password = _knockout2.default.observable('');
self.channelName = _knockout2.default.observable('');
self.joinOnly = _knockout2.default.observable(false);
self.visible = _knockout2.default.observable(true);
self.show = self.visible.bind(self.visible, true);
self.hide = self.visible.bind(self.visible, false);
self.connect = function () {
self.hide();
ui.connect(self.username(), self.address(), self.port(), self.tokens(), self.password(), self.channelName());
};
self.addToken = function () {
if (self.tokenToAdd() != "" && self.tokens.indexOf(self.tokenToAdd()) < 0) {
self.tokens.push(self.tokenToAdd());
}
self.tokenToAdd("");
};
self.removeSelectedTokens = function () {
this.tokens.removeAll(this.selectedTokens());
this.selectedTokens([]);
};
}
function ConnectErrorDialog(connectDialog) {
var self = this;
self.type = _knockout2.default.observable(0);
self.reason = _knockout2.default.observable('');
self.username = connectDialog.username;
self.password = connectDialog.password;
self.joinOnly = connectDialog.joinOnly;
self.visible = _knockout2.default.observable(false);
self.show = self.visible.bind(self.visible, true);
self.hide = self.visible.bind(self.visible, false);
self.connect = function () {
self.hide();
connectDialog.connect();
};
}
var ConnectionInfo = function () {
function ConnectionInfo(ui) {
var _this = this;
(0, _classCallCheck3.default)(this, ConnectionInfo);
this._ui = ui;
this.visible = _knockout2.default.observable(false);
this.serverVersion = _knockout2.default.observable();
this.latencyMs = _knockout2.default.observable(NaN);
this.latencyDeviation = _knockout2.default.observable(NaN);
this.remoteHost = _knockout2.default.observable();
this.remotePort = _knockout2.default.observable();
this.maxBitrate = _knockout2.default.observable(NaN);
this.currentBitrate = _knockout2.default.observable(NaN);
this.maxBandwidth = _knockout2.default.observable(NaN);
this.currentBandwidth = _knockout2.default.observable(NaN);
this.codec = _knockout2.default.observable();
this.show = function () {
if (!ui.thisUser()) return;
_this.update();
_this.visible(true);
};
this.hide = function () {
return _this.visible(false);
};
}
(0, _createClass3.default)(ConnectionInfo, [{
key: 'update',
value: function update() {
var client = this._ui.client;
this.serverVersion(client.serverVersion);
var dataStats = client.dataStats;
if (dataStats) {
this.latencyMs(dataStats.mean);
this.latencyDeviation(Math.sqrt(dataStats.variance));
}
this.remoteHost(this._ui.remoteHost());
this.remotePort(this._ui.remotePort());
var spp = this._ui.settings.samplesPerPacket;
var maxBitrate = client.getMaxBitrate(spp, false);
var maxBandwidth = client.maxBandwidth;
var actualBitrate = client.getActualBitrate(spp, false);
var actualBandwidth = _mumbleClient2.default.calcEnforcableBandwidth(actualBitrate, spp, false);
this.maxBitrate(maxBitrate);
this.currentBitrate(actualBitrate);
this.maxBandwidth(maxBandwidth);
this.currentBandwidth(actualBandwidth);
this.codec('Opus'); // only one supported for sending
}
}]);
return ConnectionInfo;
}();
function CommentDialog() {
var self = this;
self.visible = _knockout2.default.observable(false);
self.show = function () {
self.visible(true);
};
}
var SettingsDialog = function () {
function SettingsDialog(settings) {
var _this2 = this;
(0, _classCallCheck3.default)(this, SettingsDialog);
this.voiceMode = _knockout2.default.observable(settings.voiceMode);
this.pttKey = _knockout2.default.observable(settings.pttKey);
this.pttKeyDisplay = _knockout2.default.observable(settings.pttKey);
this.vadLevel = _knockout2.default.observable(settings.vadLevel);
this.testVadLevel = _knockout2.default.observable(0);
this.testVadActive = _knockout2.default.observable(false);
this.showAvatars = _knockout2.default.observable(settings.showAvatars());
this.userCountInChannelName = _knockout2.default.observable(settings.userCountInChannelName());
// Need to wrap this in a pureComputed to make sure it's always numeric
var audioBitrate = _knockout2.default.observable(settings.audioBitrate);
this.audioBitrate = _knockout2.default.pureComputed({
read: audioBitrate,
write: function write(value) {
return audioBitrate(Number(value));
}
});
this.samplesPerPacket = _knockout2.default.observable(settings.samplesPerPacket);
this.msPerPacket = _knockout2.default.pureComputed({
read: function read() {
return _this2.samplesPerPacket() / 48;
},
write: function write(value) {
return _this2.samplesPerPacket(value * 48);
}
});
this._setupTestVad();
this.vadLevel.subscribe(function () {
return _this2._setupTestVad();
});
}
(0, _createClass3.default)(SettingsDialog, [{
key: '_setupTestVad',
value: function _setupTestVad() {
var _this3 = this;
if (this._testVad) {
this._testVad.end();
}
var dummySettings = new Settings({});
this.applyTo(dummySettings);
this._testVad = new _voice.VADVoiceHandler(null, dummySettings);
this._testVad.on('started_talking', function () {
return _this3.testVadActive(true);
}).on('stopped_talking', function () {
return _this3.testVadActive(false);
}).on('level', function (level) {
return _this3.testVadLevel(level);
});
testVoiceHandler = this._testVad;
}
}, {
key: 'applyTo',
value: function applyTo(settings) {
settings.voiceMode = this.voiceMode();
settings.pttKey = this.pttKey();
settings.vadLevel = this.vadLevel();
settings.showAvatars(this.showAvatars());
settings.userCountInChannelName(this.userCountInChannelName());
settings.audioBitrate = this.audioBitrate();
settings.samplesPerPacket = this.samplesPerPacket();
}
}, {
key: 'end',
value: function end() {
this._testVad.end();
testVoiceHandler = null;
}
}, {
key: 'recordPttKey',
value: function recordPttKey() {
var _this4 = this;
var combo = [];
var keydown = function keydown(e) {
combo = e.pressedKeys;
var comboStr = combo.join(' + ');
_this4.pttKeyDisplay('> ' + comboStr + ' <');
};
var keyup = function keyup() {
_keyboardjs2.default.unbind('', keydown, keyup);
var comboStr = combo.join(' + ');
if (comboStr) {
_this4.pttKey(comboStr).pttKeyDisplay(comboStr);
} else {
_this4.pttKeyDisplay(_this4.pttKey());
}
};
_keyboardjs2.default.bind('', keydown, keyup);
this.pttKeyDisplay('> ? <');
}
}, {
key: 'totalBandwidth',
value: function totalBandwidth() {
return _mumbleClient2.default.calcEnforcableBandwidth(this.audioBitrate(), this.samplesPerPacket(), true);
}
}, {
key: 'positionBandwidth',
value: function positionBandwidth() {
return this.totalBandwidth() - _mumbleClient2.default.calcEnforcableBandwidth(this.audioBitrate(), this.samplesPerPacket(), false);
}
}, {
key: 'overheadBandwidth',
value: function overheadBandwidth() {
return _mumbleClient2.default.calcEnforcableBandwidth(0, this.samplesPerPacket(), false);
}
}]);
return SettingsDialog;
}();
var Settings = function () {
function Settings(defaults) {
(0, _classCallCheck3.default)(this, Settings);
var load = function load(key) {
return window.localStorage.getItem('mumble.' + key);
};
this.voiceMode = load('voiceMode') || defaults.voiceMode;
this.pttKey = load('pttKey') || defaults.pttKey;
this.vadLevel = load('vadLevel') || defaults.vadLevel;
this.toolbarVertical = load('toolbarVertical') || defaults.toolbarVertical;
this.showAvatars = _knockout2.default.observable(load('showAvatars') || defaults.showAvatars);
this.userCountInChannelName = _knockout2.default.observable(load('userCountInChannelName') || defaults.userCountInChannelName);
this.audioBitrate = Number(load('audioBitrate')) || defaults.audioBitrate;
this.samplesPerPacket = Number(load('samplesPerPacket')) || defaults.samplesPerPacket;
}
(0, _createClass3.default)(Settings, [{
key: 'save',
value: function save() {
var save = function save(key, val) {
return window.localStorage.setItem('mumble.' + key, val);
};
save('voiceMode', this.voiceMode);
save('pttKey', this.pttKey);
save('vadLevel', this.vadLevel);
save('toolbarVertical', this.toolbarVertical);
save('showAvatars', this.showAvatars());
save('userCountInChannelName', this.userCountInChannelName());
save('audioBitrate', this.audioBitrate);
save('samplesPerPacket', this.samplesPerPacket);
}
}]);
return Settings;
}();
var GlobalBindings = function GlobalBindings(config) {
var _this5 = this;
(0, _classCallCheck3.default)(this, GlobalBindings);
this.config = config;
this.settings = new Settings(config.settings);
this.connector = new _workerClient2.default();
this.client = null;
this.userContextMenu = new ContextMenu();
this.channelContextMenu = new ContextMenu();
this.connectDialog = new ConnectDialog();
this.connectErrorDialog = new ConnectErrorDialog(this.connectDialog);
this.connectionInfo = new ConnectionInfo(this);
this.commentDialog = new CommentDialog();
this.settingsDialog = _knockout2.default.observable();
this.minimalView = _knockout2.default.observable(false);
this.log = _knockout2.default.observableArray();
this.remoteHost = _knockout2.default.observable();
this.remotePort = _knockout2.default.observable();
this.thisUser = _knockout2.default.observable();
this.root = _knockout2.default.observable();
this.avatarView = _knockout2.default.observable();
this.messageBox = _knockout2.default.observable('');
this.toolbarHorizontal = _knockout2.default.observable(!this.settings.toolbarVertical);
this.selected = _knockout2.default.observable();
this.selfMute = _knockout2.default.observable();
this.selfDeaf = _knockout2.default.observable();
this.selfMute.subscribe(function (mute) {
if (voiceHandler) {
voiceHandler.setMute(mute);
}
});
this.toggleToolbarOrientation = function () {
_this5.toolbarHorizontal(!_this5.toolbarHorizontal());
_this5.settings.toolbarVertical = !_this5.toolbarHorizontal();
_this5.settings.save();
};
this.select = function (element) {
_this5.selected(element);
};
this.openSettings = function () {
_this5.settingsDialog(new SettingsDialog(_this5.settings));
};
this.applySettings = function () {
var settingsDialog = _this5.settingsDialog();
settingsDialog.applyTo(_this5.settings);
_this5._updateVoiceHandler();
_this5.settings.save();
_this5.closeSettings();
};
this.closeSettings = function () {
if (_this5.settingsDialog()) {
_this5.settingsDialog().end();
}
_this5.settingsDialog(null);
};
this.getTimeString = function () {
return '[' + new Date().toLocaleTimeString('en-US') + ']';
};
this.connect = function (username, host, port) {
var tokens = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
var password = arguments[4];
var channelName = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : "";
_this5.resetClient();
_this5.remoteHost(host);
_this5.remotePort(port);
log('Connecting to server ', host);
// Note: This call needs to be delayed until the user has interacted with
// the page in some way (which at this point they have), see: https://goo.gl/7K7WLu
_this5.connector.setSampleRate((0, _audioContext2.default)().sampleRate);
// TODO: token
_this5.connector.connect('wss://' + host + ':' + port, {
username: username,
password: password,
tokens: tokens
}).done(function (client) {
log('Connected!');
_this5.client = client;
// Prepare for connection errors
client.on('error', function (err) {
log('Connection error:', err);
_this5.resetClient();
});
// Make sure we stay open if we're running as Matrix widget
window.matrixWidget.setAlwaysOnScreen(true);
// Register all channels, recursively
if (channelName.indexOf("/") != 0) {
channelName = "/" + channelName;
}
var registerChannel = function registerChannel(channel, channelPath) {
_this5._newChannel(channel);
if (channelPath === channelName) {
client.self.setChannel(channel);
}
channel.children.forEach(function (ch) {
return registerChannel(ch, channelPath + "/" + ch.name);
});
};
registerChannel(client.root, "");
// Register all users
client.users.forEach(function (user) {
return _this5._newUser(user);
});
// Register future channels
client.on('newChannel', function (channel) {
return _this5._newChannel(channel);
});
// Register future users
client.on('newUser', function (user) {
return _this5._newUser(user);
});
// Handle messages
client.on('message', function (sender, message, users, channels, trees) {
sender = sender || { __ui: 'Server' };
ui.log.push({
type: 'chat-message',
user: sender.__ui,
channel: channels.length > 0,
message: sanitize(message)
});
});
// Set own user and root channel
_this5.thisUser(client.self.__ui);
_this5.root(client.root.__ui);
// Upate linked channels
_this5._updateLinks();
// Log welcome message
if (client.welcomeMessage) {
_this5.log.push({
type: 'welcome-message',
message: sanitize(client.welcomeMessage)
});
}
// Startup audio input processing
_this5._updateVoiceHandler();
// Tell server our mute/deaf state (if necessary)
if (_this5.selfDeaf()) {
_this5.client.setSelfDeaf(true);
} else if (_this5.selfMute()) {
_this5.client.setSelfMute(true);
}
}, function (err) {
if (err.$type && err.$type.name === 'Reject') {
_this5.connectErrorDialog.type(err.type);
_this5.connectErrorDialog.reason(err.reason);
_this5.connectErrorDialog.show();
} else {
log('Connection error:', err);
}
});
};
this._newUser = function (user) {
var simpleProperties = {
uniqueId: 'uid',
username: 'name',
mute: 'mute',
deaf: 'deaf',
suppress: 'suppress',
selfMute: 'selfMute',
selfDeaf: 'selfDeaf',
texture: 'rawTexture',
textureHash: 'textureHash',
comment: 'comment'
};
var ui = user.__ui = {
model: user,
talking: _knockout2.default.observable('off'),
channel: _knockout2.default.observable()
};
ui.texture = _knockout2.default.pureComputed(function () {
var raw = ui.rawTexture();
if (!raw || raw.offset >= raw.limit) return null;
return 'data:image/*;base64,' + _bytebuffer2.default.wrap(raw).toBase64();
});
ui.show_avatar = function () {
var setting = _this5.settings.showAvatars();
switch (setting) {
case 'always':
break;
case 'own_channel':
if (_this5.thisUser().channel() !== ui.channel()) return false;
break;
case 'linked_channel':
if (!ui.channel().linked()) return false;
break;
case 'minimal_only':
if (!_this5.minimalView()) return false;
if (_this5.thisUser().channel() !== ui.channel()) return false;
break;
case 'never':
default:
return false;
}
if (!ui.texture()) {
if (ui.textureHash()) {
// The user has an avatar set but it's of sufficient size to not be
// included by default, so we need to fetch it explicitly now.
// mumble-client should make sure we only send one request per hash
user.requestTexture();
}
return false;
}
return true;
};
ui.openContextMenu = function (_, event) {
return openContextMenu(event, _this5.userContextMenu, ui);
};
ui.canChangeMute = function () {
return false; // TODO check for perms and implement
};
ui.canChangeDeafen = function () {
return false; // TODO check for perms and implement
};
ui.canChangePrioritySpeaker = function () {
return false; // TODO check for perms and implement
};
ui.canLocalMute = function () {
return false; // TODO implement local mute
// return this.thisUser() !== ui
};
ui.canIgnoreMessages = function () {
return false; // TODO implement ignore messages
// return this.thisUser() !== ui
};
ui.canChangeComment = function () {
return false; // TODO implement changing of comments
// return this.thisUser() === ui // TODO check for perms
};
ui.canChangeAvatar = function () {
return _this5.thisUser() === ui; // TODO check for perms
};
ui.toggleMute = function () {
if (ui.selfMute()) {
_this5.requestUnmute(ui);
} else {
_this5.requestMute(ui);
}
};
ui.toggleDeaf = function () {
if (ui.selfDeaf()) {
_this5.requestUndeaf(ui);
} else {
_this5.requestDeaf(ui);
}
};
ui.viewAvatar = function () {
_this5.avatarView(ui.texture());
};
ui.changeAvatar = function () {
var input = document.createElement('input');
input.type = 'file';
input.addEventListener('change', function () {
var reader = new window.FileReader();
reader.onload = function () {
_this5.client.setSelfTexture(reader.result);
};
reader.readAsArrayBuffer(input.files[0]);
});
input.click();
};
ui.removeAvatar = function () {
user.clearTexture();
};
(0, _entries2.default)(simpleProperties).forEach(function (key) {
ui[key[1]] = _knockout2.default.observable(user[key[0]]);
});
ui.state = _knockout2.default.pureComputed(userToState, ui);
if (user.channel) {
ui.channel(user.channel.__ui);
ui.channel().users.push(ui);
ui.channel().users.sort(compareUsers);
}
user.on('update', function (actor, properties) {
(0, _entries2.default)(simpleProperties).forEach(function (key) {
if (properties[key[0]] !== undefined) {
ui[key[1]](properties[key[0]]);
}
});
if (properties.channel !== undefined) {
if (ui.channel()) {
ui.channel().users.remove(ui);
}
ui.channel(properties.channel.__ui);
ui.channel().users.push(ui);
ui.channel().users.sort(compareUsers);
_this5._updateLinks();
}
if (properties.textureHash !== undefined) {
// Invalidate avatar texture when its hash has changed
// If the avatar is still visible, this will trigger a fetch of the new one.
ui.rawTexture(null);
}
}).on('remove', function () {
if (ui.channel()) {
ui.channel().users.remove(ui);
}
}).on('voice', function (stream) {
console.log('User ' + user.username + ' started takling');
var userNode = new _webAudioBufferQueue2.default({
audioContext: (0, _audioContext2.default)()
});
userNode.connect((0, _audioContext2.default)().destination);
stream.on('data', function (data) {
if (data.target === 'normal') {
ui.talking('on');
} else if (data.target === 'shout') {
ui.talking('shout');
} else if (data.target === 'whisper') {
ui.talking('whisper');
}
userNode.write(data.buffer);
}).on('end', function () {
console.log('User ' + user.username + ' stopped takling');
ui.talking('off');
userNode.end();
});
});
};
this._newChannel = function (channel) {
var simpleProperties = {
position: 'position',
name: 'name',
description: 'description'
};
var ui = channel.__ui = {
model: channel,
expanded: _knockout2.default.observable(true),
parent: _knockout2.default.observable(),
channels: _knockout2.default.observableArray(),
users: _knockout2.default.observableArray(),
linked: _knockout2.default.observable(false)
};
ui.userCount = function () {
return ui.channels().reduce(function (acc, c) {
return acc + c.userCount();
}, ui.users().length);
};
ui.openContextMenu = function (_, event) {
return openContextMenu(event, _this5.channelContextMenu, ui);
};
ui.canJoin = function () {
return true; // TODO check for perms
};
ui.canAdd = function () {
return false; // TODO check for perms and implement
};
ui.canEdit = function () {
return false; // TODO check for perms and implement
};
ui.canRemove = function () {
return false; // TODO check for perms and implement
};
ui.canLink = function () {
return false; // TODO check for perms and implement
};
ui.canUnlink = function () {
return false; // TODO check for perms and implement
};
ui.canSendMessage = function () {
return false; // TODO check for perms and implement
};
(0, _entries2.default)(simpleProperties).forEach(function (key) {
ui[key[1]] = _knockout2.default.observable(channel[key[0]]);
});
if (channel.parent) {
ui.parent(channel.parent.__ui);
ui.parent().channels.push(ui);
ui.parent().channels.sort(compareChannels);
}
_this5._updateLinks();
channel.on('update', function (properties) {
(0, _entries2.default)(simpleProperties).forEach(function (key) {
if (properties[key[0]] !== undefined) {
ui[key[1]](properties[key[0]]);
}
});
if (properties.parent !== undefined) {
if (ui.parent()) {
ui.parent().channel.remove(ui);
}
ui.parent(properties.parent.__ui);
ui.parent().channels.push(ui);
ui.parent().channels.sort(compareChannels);
}
if (properties.links !== undefined) {
_this5._updateLinks();
}
}).on('remove', function () {
if (ui.parent()) {
ui.parent().channels.remove(ui);
}
_this5._updateLinks();
});
};
this.resetClient = function () {
if (_this5.client) {
_this5.client.disconnect();
}
_this5.client = null;
_this5.selected(null).root(null).thisUser(null);
};
this.connected = function () {
return _this5.thisUser() != null;
};
this._updateVoiceHandler = function () {
if (!_this5.client) {
return;
}
if (voiceHandler) {
voiceHandler.end();
voiceHandler = null;
}
var mode = _this5.settings.voiceMode;
if (mode === 'cont') {
voiceHandler = new _voice.ContinuousVoiceHandler(_this5.client, _this5.settings);
} else if (mode === 'ptt') {
voiceHandler = new _voice.PushToTalkVoiceHandler(_this5.client, _this5.settings);
} else if (mode === 'vad') {
voiceHandler = new _voice.VADVoiceHandler(_this5.client, _this5.settings);
} else {
log('Unknown voice mode:', mode);
return;
}
voiceHandler.on('started_talking', function () {
if (_this5.thisUser()) {
_this5.thisUser().talking('on');
}
});
voiceHandler.on('stopped_talking', function () {
if (_this5.thisUser()) {
_this5.thisUser().talking('off');
}
});
if (_this5.selfMute()) {
voiceHandler.setMute(true);
}
_this5.client.setAudioQuality(_this5.settings.audioBitrate, _this5.settings.samplesPerPacket);
};
this.messageBoxHint = _knockout2.default.pureComputed(function () {
if (!_this5.thisUser()) {
return ''; // Not yet connected
}
var target = _this5.selected();
if (!target) {
target = _this5.thisUser();
}
if (target === _this5.thisUser()) {
target = target.channel();
}
if (target.users) {
// Channel
return "Type message to channel '" + target.name() + "' here";
} else {
// User
return "Type message to user '" + target.name() + "' here";
}
});
this.submitMessageBox = function () {
_this5.sendMessage(_this5.selected(), _this5.messageBox());
_this5.messageBox('');
};
this.sendMessage = function (target, message) {
if (_this5.connected()) {
// If no target is selected, choose our own user
if (!target) {
target = _this5.thisUser();
}
// If target is our own user, send to our channel
if (target === _this5.thisUser()) {
target = target.channel();
}
// Send message
target.model.sendMessage(message);
if (target.users) {
// Channel
_this5.log.push({
type: 'chat-message-self',
message: sanitize(message),
channel: target
});
} else {
// User
_this5.log.push({
type: 'chat-message-self',
message: sanitize(message),
user: target
});
}
}
};
this.requestMove = function (user, channel) {
if (_this5.connected()) {
user.model.setChannel(channel.model);
}
};
this.requestMute = function (user) {
if (user === _this5.thisUser()) {
_this5.selfMute(true);
}
if (_this5.connected()) {
if (user === _this5.thisUser()) {
_this5.client.setSelfMute(true);
} else {
user.model.setMute(true);
}
}
};
this.requestDeaf = function (user) {
if (user === _this5.thisUser()) {
_this5.selfMute(true);
_this5.selfDeaf(true);
}
if (_this5.connected()) {
if (user === _this5.thisUser()) {
_this5.client.setSelfDeaf(true);
} else {
user.model.setDeaf(true);
}
}
};
this.requestUnmute = function (user) {
if (user === _this5.thisUser()) {
_this5.selfMute(false);
_this5.selfDeaf(false);
}
if (_this5.connected()) {
if (user === _this5.thisUser()) {
_this5.client.setSelfMute(false);
} else {
user.model.setMute(false);
}
}
};
this.requestUndeaf = function (user) {
if (user === _this5.thisUser()) {
_this5.selfDeaf(false);
}
if (_this5.connected()) {
if (user === _this5.thisUser()) {
_this5.client.setSelfDeaf(false);
} else {
user.model.setDeaf(false);
}
}
};
this._updateLinks = function () {
if (!_this5.thisUser()) {
return;
}
var allChannels = getAllChannels(_this5.root(), []);
var ownChannel = _this5.thisUser().channel().model;
var allLinked = findLinks(ownChannel, []);
allChannels.forEach(function (channel) {
channel.linked(allLinked.indexOf(channel.model) !== -1);
});
function findLinks(channel, knownLinks) {
knownLinks.push(channel);
channel.links.forEach(function (next) {
if (next && knownLinks.indexOf(next) === -1) {
findLinks(next, knownLinks);
}
});
allChannels.map(function (c) {
return c.model;
}).forEach(function (next) {
if (next && knownLinks.indexOf(next) === -1 && next.links.indexOf(channel) !== -1) {
findLinks(next, knownLinks);
}
});
return knownLinks;
}
function getAllChannels(channel, channels) {
channels.push(channel);
channel.channels().forEach(function (next) {
return getAllChannels(next, channels);
});
return channels;
}
};
this.openSourceCode = function () {
var homepage = __webpack_require__(342).homepage;
window.open(homepage, '_blank').focus();
};
this.updateSize = function () {
_this5.minimalView(window.innerWidth < 320);
if (_this5.minimalView()) {
_this5.toolbarHorizontal(window.innerWidth < window.innerHeight);
} else {
_this5.toolbarHorizontal(!_this5.settings.toolbarVertical);
}
};
};
var ui = new GlobalBindings(window.mumbleWebConfig);
// Used only for debugging
window.mumbleUi = ui;
window.onload = function () {
var queryParams = _url3.default.parse(document.location.href, true).query;
queryParams = (0, _assign2.default)({}, window.mumbleWebConfig.defaults, queryParams);
var useJoinDialog = queryParams.joinDialog;
if (queryParams.matrix) {
useJoinDialog = true;
}
if (queryParams.address) {
ui.connectDialog.address(queryParams.address);
} else {
useJoinDialog = false;
}
if (queryParams.port) {
ui.connectDialog.port(queryParams.port);
} else {
useJoinDialog = false;
}
if (queryParams.token) {
var tokens = queryParams.token;
if (!Array.isArray(tokens)) {
tokens = [tokens];
}
ui.connectDialog.tokens(tokens);
}
if (queryParams.username) {
ui.connectDialog.username(queryParams.username);
} else {
useJoinDialog = false;
}
if (queryParams.password) {
ui.connectDialog.password(queryParams.password);
}
if (queryParams.channelName) {
ui.connectDialog.channelName(queryParams.channelName);
}
if (queryParams.avatarurl) {
// Download the avatar and upload it to the mumble server when connected
var _url = queryParams.avatarurl;
console.log('Fetching avatar from', _url);
var req = new window.XMLHttpRequest();
req.open('GET', _url, true);
req.responseType = 'arraybuffer';
req.onload = function () {
var upload = function upload(avatar) {
if (req.response) {
console.log('Uploading user avatar to server');
ui.client.setSelfTexture(req.response);
}
};
// On any future connections
ui.thisUser.subscribe(function (thisUser) {
if (thisUser) {
upload();
}
});
// And the current one (if already connected)
if (ui.thisUser()) {
upload();
}
};
req.send();
}
ui.connectDialog.joinOnly(useJoinDialog);
_knockout2.default.applyBindings(ui);
};
window.onresize = function () {
return ui.updateSize();
};
ui.updateSize();
function log() {
console.log.apply(console, arguments);
var args = [];
for (var i = 0; i < arguments.length; i++) {
args.push(arguments[i]);
}
ui.log.push({
type: 'generic',
value: args.join(' ')
});
}
function compareChannels(c1, c2) {
if (c1.position() === c2.position()) {
return c1.name() === c2.name() ? 0 : c1.name() < c2.name() ? -1 : 1;
}
return c1.position() - c2.position();
}
function compareUsers(u1, u2) {
return u1.name() === u2.name() ? 0 : u1.name() < u2.name() ? -1 : 1;
}
function userToState() {
var flags = [];
// TODO: Friend
if (this.uid()) {
flags.push('Authenticated');
}
// TODO: Priority Speaker, Recording
if (this.mute()) {
flags.push('Muted (server)');
}
if (this.deaf()) {
flags.push('Deafened (server)');
}
// TODO: Local Ignore (Text messages), Local Mute
if (this.selfMute()) {
flags.push('Muted (self)');
}
if (this.selfDeaf()) {
flags.push('Deafened (self)');
}
return flags.join(', ');
}
var voiceHandler;
var testVoiceHandler;
(0, _voice.initVoice)(function (data) {
if (testVoiceHandler) {
testVoiceHandler.write(data);
}
if (!ui.client) {
if (voiceHandler) {
voiceHandler.end();
}
voiceHandler = null;
} else if (voiceHandler) {
voiceHandler.write(data);
}
}, function (err) {
log('Cannot initialize user media. Microphone will not work:', err);
});
/***/ }),
/* 40 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = { "default": __webpack_require__(41), __esModule: true };
/***/ }),
/* 41 */
/***/ (function(module, exports, __webpack_require__) {
__webpack_require__(42);
module.exports = __webpack_require__(45).Object.assign;
/***/ }),
/* 42 */
/***/ (function(module, exports, __webpack_require__) {
// 19.1.3.1 Object.assign(target, source)
var $export = __webpack_require__(43);
$export($export.S + $export.F, 'Object', { assign: __webpack_require__(59) });
/***/ }),
/* 43 */
/***/ (function(module, exports, __webpack_require__) {
var global = __webpack_require__(44);
var core = __webpack_require__(45);
var ctx = __webpack_require__(46);
var hide = __webpack_require__(48);
var has = __webpack_require__(58);
var PROTOTYPE = 'prototype';
var $export = function (type, name, source) {
var IS_FORCED = type & $export.F;
var IS_GLOBAL = type & $export.G;
var IS_STATIC = type & $export.S;
var IS_PROTO = type & $export.P;
var IS_BIND = type & $export.B;
var IS_WRAP = type & $export.W;
var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
var expProto = exports[PROTOTYPE];
var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];
var key, own, out;
if (IS_GLOBAL) source = name;
for (key in source) {
// contains in native
own = !IS_FORCED && target && target[key] !== undefined;
if (own && has(exports, key)) continue;
// export native or passed
out = own ? target[key] : source[key];
// prevent global pollution for namespaces
exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
// bind timers to global for call from export context
: IS_BIND && own ? ctx(out, global)
// wrap global constructors for prevent change them in library
: IS_WRAP && target[key] == out ? (function (C) {
var F = function (a, b, c) {
if (this instanceof C) {
switch (arguments.length) {
case 0: return new C();
case 1: return new C(a);
case 2: return new C(a, b);
} return new C(a, b, c);
} return C.apply(this, arguments);
};
F[PROTOTYPE] = C[PROTOTYPE];
return F;
// make static versions for prototype methods
})(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
// export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
if (IS_PROTO) {
(exports.virtual || (exports.virtual = {}))[key] = out;
// export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);
}
}
};
// type bitmap
$export.F = 1; // forced
$export.G = 2; // global
$export.S = 4; // static
$export.P = 8; // proto
$export.B = 16; // bind
$export.W = 32; // wrap
$export.U = 64; // safe
$export.R = 128; // real proto method for `library`
module.exports = $export;
/***/ }),
/* 44 */
/***/ (function(module, exports) {
// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
var global = module.exports = typeof window != 'undefined' && window.Math == Math
? window : typeof self != 'undefined' && self.Math == Math ? self
// eslint-disable-next-line no-new-func
: Function('return this')();
if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef
/***/ }),
/* 45 */
/***/ (function(module, exports) {
var core = module.exports = { version: '2.6.11' };
if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef
/***/ }),
/* 46 */
/***/ (function(module, exports, __webpack_require__) {
// optional / simple context binding
var aFunction = __webpack_require__(47);
module.exports = function (fn, that, length) {
aFunction(fn);
if (that === undefined) return fn;
switch (length) {
case 1: return function (a) {
return fn.call(that, a);
};
case 2: return function (a, b) {
return fn.call(that, a, b);
};
case 3: return function (a, b, c) {
return fn.call(that, a, b, c);
};
}
return function (/* ...args */) {
return fn.apply(that, arguments);
};
};
/***/ }),
/* 47 */
/***/ (function(module, exports) {
module.exports = function (it) {
if (typeof it != 'function') throw TypeError(it + ' is not a function!');
return it;
};
/***/ }),
/* 48 */
/***/ (function(module, exports, __webpack_require__) {
var dP = __webpack_require__(49);
var createDesc = __webpack_require__(57);
module.exports = __webpack_require__(53) ? function (object, key, value) {
return dP.f(object, key, createDesc(1, value));
} : function (object, key, value) {
object[key] = value;
return object;
};
/***/ }),
/* 49 */
/***/ (function(module, exports, __webpack_require__) {
var anObject = __webpack_require__(50);
var IE8_DOM_DEFINE = __webpack_require__(52);
var toPrimitive = __webpack_require__(56);
var dP = Object.defineProperty;
exports.f = __webpack_require__(53) ? Object.defineProperty : function defineProperty(O, P, Attributes) {
anObject(O);
P = toPrimitive(P, true);
anObject(Attributes);
if (IE8_DOM_DEFINE) try {
return dP(O, P, Attributes);
} catch (e) { /* empty */ }
if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
if ('value' in Attributes) O[P] = Attributes.value;
return O;
};
/***/ }),
/* 50 */
/***/ (function(module, exports, __webpack_require__) {
var isObject = __webpack_require__(51);
module.exports = function (it) {
if (!isObject(it)) throw TypeError(it + ' is not an object!');
return it;
};
/***/ }),
/* 51 */
/***/ (function(module, exports) {
module.exports = function (it) {
return typeof it === 'object' ? it !== null : typeof it === 'function';
};
/***/ }),
/* 52 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = !__webpack_require__(53) && !__webpack_require__(54)(function () {
return Object.defineProperty(__webpack_require__(55)('div'), 'a', { get: function () { return 7; } }).a != 7;
});
/***/ }),
/* 53 */
/***/ (function(module, exports, __webpack_require__) {
// Thank's IE8 for his funny defineProperty
module.exports = !__webpack_require__(54)(function () {
return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
});
/***/ }),
/* 54 */
/***/ (function(module, exports) {
module.exports = function (exec) {
try {
return !!exec();
} catch (e) {
return true;
}
};
/***/ }),
/* 55 */
/***/ (function(module, exports, __webpack_require__) {
var isObject = __webpack_require__(51);
var document = __webpack_require__(44).document;
// typeof document.createElement is 'object' in old IE
var is = isObject(document) && isObject(document.createElement);
module.exports = function (it) {
return is ? document.createElement(it) : {};
};
/***/ }),
/* 56 */
/***/ (function(module, exports, __webpack_require__) {
// 7.1.1 ToPrimitive(input [, PreferredType])
var isObject = __webpack_require__(51);
// instead of the ES6 spec version, we didn't implement @@toPrimitive case
// and the second argument - flag - preferred type is a string
module.exports = function (it, S) {
if (!isObject(it)) return it;
var fn, val;
if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
throw TypeError("Can't convert object to primitive value");
};
/***/ }),
/* 57 */
/***/ (function(module, exports) {
module.exports = function (bitmap, value) {
return {
enumerable: !(bitmap & 1),
configurable: !(bitmap & 2),
writable: !(bitmap & 4),
value: value
};
};
/***/ }),
/* 58 */
/***/ (function(module, exports) {
var hasOwnProperty = {}.hasOwnProperty;
module.exports = function (it, key) {
return hasOwnProperty.call(it, key);
};
/***/ }),
/* 59 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
// 19.1.2.1 Object.assign(target, source, ...)
var DESCRIPTORS = __webpack_require__(53);
var getKeys = __webpack_require__(60);
var gOPS = __webpack_require__(75);
var pIE = __webpack_require__(76);
var toObject = __webpack_require__(77);
var IObject = __webpack_require__(63);
var $assign = Object.assign;
// should work with symbols and should have deterministic property order (V8 bug)
module.exports = !$assign || __webpack_require__(54)(function () {
var A = {};
var B = {};
// eslint-disable-next-line no-undef
var S = Symbol();
var K = 'abcdefghijklmnopqrst';
A[S] = 7;
K.split('').forEach(function (k) { B[k] = k; });
return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
}) ? function assign(target, source) { // eslint-disable-line no-unused-vars
var T = toObject(target);
var aLen = arguments.length;
var index = 1;
var getSymbols = gOPS.f;
var isEnum = pIE.f;
while (aLen > index) {
var S = IObject(arguments[index++]);
var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);
var length = keys.length;
var j = 0;
var key;
while (length > j) {
key = keys[j++];
if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];
}
} return T;
} : $assign;
/***/ }),
/* 60 */
/***/ (function(module, exports, __webpack_require__) {
// 19.1.2.14 / 15.2.3.14 Object.keys(O)
var $keys = __webpack_require__(61);
var enumBugKeys = __webpack_require__(74);
module.exports = Object.keys || function keys(O) {
return $keys(O, enumBugKeys);
};
/***/ }),
/* 61 */
/***/ (function(module, exports, __webpack_require__) {
var has = __webpack_require__(58);
var toIObject = __webpack_require__(62);
var arrayIndexOf = __webpack_require__(66)(false);
var IE_PROTO = __webpack_require__(70)('IE_PROTO');
module.exports = function (object, names) {
var O = toIObject(object);
var i = 0;
var result = [];
var key;
for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);
// Don't enum bug & hidden keys
while (names.length > i) if (has(O, key = names[i++])) {
~arrayIndexOf(result, key) || result.push(key);
}
return result;
};
/***/ }),
/* 62 */
/***/ (function(module, exports, __webpack_require__) {
// to indexed object, toObject with fallback for non-array-like ES3 strings
var IObject = __webpack_require__(63);
var defined = __webpack_require__(65);
module.exports = function (it) {
return IObject(defined(it));
};
/***/ }),
/* 63 */
/***/ (function(module, exports, __webpack_require__) {
// fallback for non-array-like ES3 and non-enumerable old V8 strings
var cof = __webpack_require__(64);
// eslint-disable-next-line no-prototype-builtins
module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
return cof(it) == 'String' ? it.split('') : Object(it);
};
/***/ }),
/* 64 */
/***/ (function(module, exports) {
var toString = {}.toString;
module.exports = function (it) {
return toString.call(it).slice(8, -1);
};
/***/ }),
/* 65 */
/***/ (function(module, exports) {
// 7.2.1 RequireObjectCoercible(argument)
module.exports = function (it) {
if (it == undefined) throw TypeError("Can't call method on " + it);
return it;
};
/***/ }),
/* 66 */
/***/ (function(module, exports, __webpack_require__) {
// false -> Array#indexOf
// true -> Array#includes
var toIObject = __webpack_require__(62);
var toLength = __webpack_require__(67);
var toAbsoluteIndex = __webpack_require__(69);
module.exports = function (IS_INCLUDES) {
return function ($this, el, fromIndex) {
var O = toIObject($this);
var length = toLength(O.length);
var index = toAbsoluteIndex(fromIndex, length);
var value;
// Array#includes uses SameValueZero equality algorithm
// eslint-disable-next-line no-self-compare
if (IS_INCLUDES && el != el) while (length > index) {
value = O[index++];
// eslint-disable-next-line no-self-compare
if (value != value) return true;
// Array#indexOf ignores holes, Array#includes - not
} else for (;length > index; index++) if (IS_INCLUDES || index in O) {
if (O[index] === el) return IS_INCLUDES || index || 0;
} return !IS_INCLUDES && -1;
};
};
/***/ }),
/* 67 */
/***/ (function(module, exports, __webpack_require__) {
// 7.1.15 ToLength
var toInteger = __webpack_require__(68);
var min = Math.min;
module.exports = function (it) {
return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
};
/***/ }),
/* 68 */
/***/ (function(module, exports) {
// 7.1.4 ToInteger
var ceil = Math.ceil;
var floor = Math.floor;
module.exports = function (it) {
return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
};
/***/ }),
/* 69 */
/***/ (function(module, exports, __webpack_require__) {
var toInteger = __webpack_require__(68);
var max = Math.max;
var min = Math.min;
module.exports = function (index, length) {
index = toInteger(index);
return index < 0 ? max(index + length, 0) : min(index, length);
};
/***/ }),
/* 70 */
/***/ (function(module, exports, __webpack_require__) {
var shared = __webpack_require__(71)('keys');
var uid = __webpack_require__(73);
module.exports = function (key) {
return shared[key] || (shared[key] = uid(key));
};
/***/ }),
/* 71 */
/***/ (function(module, exports, __webpack_require__) {
var core = __webpack_require__(45);
var global = __webpack_require__(44);
var SHARED = '__core-js_shared__';
var store = global[SHARED] || (global[SHARED] = {});
(module.exports = function (key, value) {
return store[key] || (store[key] = value !== undefined ? value : {});
})('versions', []).push({
version: core.version,
mode: __webpack_require__(72) ? 'pure' : 'global',
copyright: '© 2019 Denis Pushkarev (zloirock.ru)'
});
/***/ }),
/* 72 */
/***/ (function(module, exports) {
module.exports = true;
/***/ }),
/* 73 */
/***/ (function(module, exports) {
var id = 0;
var px = Math.random();
module.exports = function (key) {
return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
};
/***/ }),
/* 74 */
/***/ (function(module, exports) {
// IE 8- don't enum bug keys
module.exports = (
'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
).split(',');
/***/ }),
/* 75 */
/***/ (function(module, exports) {
exports.f = Object.getOwnPropertySymbols;
/***/ }),
/* 76 */
/***/ (function(module, exports) {
exports.f = {}.propertyIsEnumerable;
/***/ }),
/* 77 */
/***/ (function(module, exports, __webpack_require__) {
// 7.1.13 ToObject(argument)
var defined = __webpack_require__(65);
module.exports = function (it) {
return Object(defined(it));
};
/***/ }),
/* 78 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = { "default": __webpack_require__(79), __esModule: true };
/***/ }),
/* 79 */
/***/ (function(module, exports, __webpack_require__) {
__webpack_require__(80);
module.exports = __webpack_require__(45).Object.entries;
/***/ }),
/* 80 */
/***/ (function(module, exports, __webpack_require__) {
// https://github.com/tc39/proposal-object-values-entries
var $export = __webpack_require__(43);
var $entries = __webpack_require__(81)(true);
$export($export.S, 'Object', {
entries: function entries(it) {
return $entries(it);
}
});
/***/ }),
/* 81 */
/***/ (function(module, exports, __webpack_require__) {
var DESCRIPTORS = __webpack_require__(53);
var getKeys = __webpack_require__(60);
var toIObject = __webpack_require__(62);
var isEnum = __webpack_require__(76).f;
module.exports = function (isEntries) {
return function (it) {
var O = toIObject(it);
var keys = getKeys(O);
var length = keys.length;
var i = 0;
var result = [];
var key;
while (length > i) {
key = keys[i++];
if (!DESCRIPTORS || isEnum.call(O, key)) {
result.push(isEntries ? [key, O[key]] : O[key]);
}
}
return result;
};
};
/***/ }),
/* 82 */
/***/ (function(module, exports) {
"use strict";
exports.__esModule = true;
exports.default = function (instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
};
/***/ }),
/* 83 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
exports.__esModule = true;
var _defineProperty = __webpack_require__(84);
var _defineProperty2 = _interopRequireDefault(_defineProperty);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = function () {
function defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
(0, _defineProperty2.default)(target, descriptor.key, descriptor);
}
}
return function (Constructor, protoProps, staticProps) {
if (protoProps) defineProperties(Constructor.prototype, protoProps);
if (staticProps) defineProperties(Constructor, staticProps);
return Constructor;
};
}();
/***/ }),
/* 84 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = { "default": __webpack_require__(85), __esModule: true };
/***/ }),
/* 85 */
/***/ (function(module, exports, __webpack_require__) {
__webpack_require__(86);
var $Object = __webpack_require__(45).Object;
module.exports = function defineProperty(it, key, desc) {
return $Object.defineProperty(it, key, desc);
};
/***/ }),
/* 86 */
/***/ (function(module, exports, __webpack_require__) {
var $export = __webpack_require__(43);
// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
$export($export.S + $export.F * !__webpack_require__(53), 'Object', { defineProperty: __webpack_require__(49).f });
/***/ }),
/* 87 */
/***/ (function(module, exports, __webpack_require__) {
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
module.exports = Stream;
var EE = __webpack_require__(88).EventEmitter;
var inherits = __webpack_require__(89);
inherits(Stream, EE);
Stream.Readable = __webpack_require__(90);
Stream.Writable = __webpack_require__(113);
Stream.Duplex = __webpack_require__(114);
Stream.Transform = __webpack_require__(115);
Stream.PassThrough = __webpack_require__(116);
// Backwards-compat with node 0.4.x
Stream.Stream = Stream;
// old-style streams. Note that the pipe method (the only relevant
// part of this class) is overridden in the Readable class.
function Stream() {
EE.call(this);
}
Stream.prototype.pipe = function(dest, options) {
var source = this;
function ondata(chunk) {
if (dest.writable) {
if (false === dest.write(chunk) && source.pause) {
source.pause();
}
}
}
source.on('data', ondata);
function ondrain() {
if (source.readable && source.resume) {
source.resume();
}
}
dest.on('drain', ondrain);
// If the 'end' option is not supplied, dest.end() will be called when
// source gets the 'end' or 'close' events. Only dest.end() once.
if (!dest._isStdio && (!options || options.end !== false)) {
source.on('end', onend);
source.on('close', onclose);
}
var didOnEnd = false;
function onend() {
if (didOnEnd) return;
didOnEnd = true;
dest.end();
}
function onclose() {
if (didOnEnd) return;
didOnEnd = true;
if (typeof dest.destroy === 'function') dest.destroy();
}
// don't leave dangling pipes when there are errors.
function onerror(er) {
cleanup();
if (EE.listenerCount(this, 'error') === 0) {
throw er; // Unhandled stream error in pipe.
}
}
source.on('error', onerror);
dest.on('error', onerror);
// remove all the event listeners that were added.
function cleanup() {
source.removeListener('data', ondata);
dest.removeListener('drain', ondrain);
source.removeListener('end', onend);
source.removeListener('close', onclose);
source.removeListener('error', onerror);
dest.removeListener('error', onerror);
source.removeListener('end', cleanup);
source.removeListener('close', cleanup);
dest.removeListener('close', cleanup);
}
source.on('end', cleanup);
source.on('close', cleanup);
dest.on('close', cleanup);
dest.emit('pipe', source);
// Allow for unix-like usage: A.pipe(B).pipe(C)
return dest;
};
/***/ }),
/* 88 */
/***/ (function(module, exports) {
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
function EventEmitter() {
this._events = this._events || {};
this._maxListeners = this._maxListeners || undefined;
}
module.exports = EventEmitter;
// Backwards-compat with node 0.10.x
EventEmitter.EventEmitter = EventEmitter;
EventEmitter.prototype._events = undefined;
EventEmitter.prototype._maxListeners = undefined;
// By default EventEmitters will print a warning if more than 10 listeners are
// added to it. This is a useful default which helps finding memory leaks.
EventEmitter.defaultMaxListeners = 10;
// Obviously not all Emitters should be limited to 10. This function allows
// that to be increased. Set to zero for unlimited.
EventEmitter.prototype.setMaxListeners = function(n) {
if (!isNumber(n) || n < 0 || isNaN(n))
throw TypeError('n must be a positive number');
this._maxListeners = n;
return this;
};
EventEmitter.prototype.emit = function(type) {
var er, handler, len, args, i, listeners;
if (!this._events)
this._events = {};
// If there is no 'error' event listener then throw.
if (type === 'error') {
if (!this._events.error ||
(isObject(this._events.error) && !this._events.error.length)) {
er = arguments[1];
if (er instanceof Error) {
throw er; // Unhandled 'error' event
} else {
// At least give some kind of context to the user
var err = new Error('Uncaught, unspecified "error" event. (' + er + ')');
err.context = er;
throw err;
}
}
}
handler = this._events[type];
if (isUndefined(handler))
return false;
if (isFunction(handler)) {
switch (arguments.length) {
// fast cases
case 1:
handler.call(this);
break;
case 2:
handler.call(this, arguments[1]);
break;
case 3:
handler.call(this, arguments[1], arguments[2]);
break;
// slower
default:
args = Array.prototype.slice.call(arguments, 1);
handler.apply(this, args);
}
} else if (isObject(handler)) {
args = Array.prototype.slice.call(arguments, 1);
listeners = handler.slice();
len = listeners.length;
for (i = 0; i < len; i++)
listeners[i].apply(this, args);
}
return true;
};
EventEmitter.prototype.addListener = function(type, listener) {
var m;
if (!isFunction(listener))
throw TypeError('listener must be a function');
if (!this._events)
this._events = {};
// To avoid recursion in the case that type === "newListener"! Before
// adding it to the listeners, first emit "newListener".
if (this._events.newListener)
this.emit('newListener', type,
isFunction(listener.listener) ?
listener.listener : listener);
if (!this._events[type])
// Optimize the case of one listener. Don't need the extra array object.
this._events[type] = listener;
else if (isObject(this._events[type]))
// If we've already got an array, just append.
this._events[type].push(listener);
else
// Adding the second element, need to change to array.
this._events[type] = [this._events[type], listener];
// Check for listener leak
if (isObject(this._events[type]) && !this._events[type].warned) {
if (!isUndefined(this._maxListeners)) {
m = this._maxListeners;
} else {
m = EventEmitter.defaultMaxListeners;
}
if (m && m > 0 && this._events[type].length > m) {
this._events[type].warned = true;
console.error('(node) warning: possible EventEmitter memory ' +
'leak detected. %d listeners added. ' +
'Use emitter.setMaxListeners() to increase limit.',
this._events[type].length);
if (typeof console.trace === 'function') {
// not supported in IE 10
console.trace();
}
}
}
return this;
};
EventEmitter.prototype.on = EventEmitter.prototype.addListener;
EventEmitter.prototype.once = function(type, listener) {
if (!isFunction(listener))
throw TypeError('listener must be a function');
var fired = false;
function g() {
this.removeListener(type, g);
if (!fired) {
fired = true;
listener.apply(this, arguments);
}
}
g.listener = listener;
this.on(type, g);
return this;
};
// emits a 'removeListener' event iff the listener was removed
EventEmitter.prototype.removeListener = function(type, listener) {
var list, position, length, i;
if (!isFunction(listener))
throw TypeError('listener must be a function');
if (!this._events || !this._events[type])
return this;
list = this._events[type];
length = list.length;
position = -1;
if (list === listener ||
(isFunction(list.listener) && list.listener === listener)) {
delete this._events[type];
if (this._events.removeListener)
this.emit('removeListener', type, listener);
} else if (isObject(list)) {
for (i = length; i-- > 0;) {
if (list[i] === listener ||
(list[i].listener && list[i].listener === listener)) {
position = i;
break;
}
}
if (position < 0)
return this;
if (list.length === 1) {
list.length = 0;
delete this._events[type];
} else {
list.splice(position, 1);
}
if (this._events.removeListener)
this.emit('removeListener', type, listener);
}
return this;
};
EventEmitter.prototype.removeAllListeners = function(type) {
var key, listeners;
if (!this._events)
return this;
// not listening for removeListener, no need to emit
if (!this._events.removeListener) {
if (arguments.length === 0)
this._events = {};
else if (this._events[type])
delete this._events[type];
return this;
}
// emit removeListener for all listeners on all events
if (arguments.length === 0) {
for (key in this._events) {
if (key === 'removeListener') continue;
this.removeAllListeners(key);
}
this.removeAllListeners('removeListener');
this._events = {};
return this;
}
listeners = this._events[type];
if (isFunction(listeners)) {
this.removeListener(type, listeners);
} else if (listeners) {
// LIFO order
while (listeners.length)
this.removeListener(type, listeners[listeners.length - 1]);
}
delete this._events[type];
return this;
};
EventEmitter.prototype.listeners = function(type) {
var ret;
if (!this._events || !this._events[type])
ret = [];
else if (isFunction(this._events[type]))
ret = [this._events[type]];
else
ret = this._events[type].slice();
return ret;
};
EventEmitter.prototype.listenerCount = function(type) {
if (this._events) {
var evlistener = this._events[type];
if (isFunction(evlistener))
return 1;
else if (evlistener)
return evlistener.length;
}
return 0;
};
EventEmitter.listenerCount = function(emitter, type) {
return emitter.listenerCount(type);
};
function isFunction(arg) {
return typeof arg === 'function';
}
function isNumber(arg) {
return typeof arg === 'number';
}
function isObject(arg) {
return typeof arg === 'object' && arg !== null;
}
function isUndefined(arg) {
return arg === void 0;
}
/***/ }),
/* 89 */
/***/ (function(module, exports) {
if (typeof Object.create === 'function') {
// implementation from standard node.js 'util' module
module.exports = function inherits(ctor, superCtor) {
if (superCtor) {
ctor.super_ = superCtor
ctor.prototype = Object.create(superCtor.prototype, {
constructor: {
value: ctor,
enumerable: false,
writable: true,
configurable: true
}
})
}
};
} else {
// old school shim for old browsers
module.exports = function inherits(ctor, superCtor) {
if (superCtor) {
ctor.super_ = superCtor
var TempCtor = function () {}
TempCtor.prototype = superCtor.prototype
ctor.prototype = new TempCtor()
ctor.prototype.constructor = ctor
}
}
}
/***/ }),
/* 90 */
/***/ (function(module, exports, __webpack_require__) {
exports = module.exports = __webpack_require__(91);
exports.Stream = exports;
exports.Readable = exports;
exports.Writable = __webpack_require__(106);
exports.Duplex = __webpack_require__(105);
exports.Transform = __webpack_require__(111);
exports.PassThrough = __webpack_require__(112);
/***/ }),
/* 91 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
'use strict';
/*<replacement>*/
var pna = __webpack_require__(93);
/*</replacement>*/
module.exports = Readable;
/*<replacement>*/
var isArray = __webpack_require__(94);
/*</replacement>*/
/*<replacement>*/
var Duplex;
/*</replacement>*/
Readable.ReadableState = ReadableState;
/*<replacement>*/
var EE = __webpack_require__(88).EventEmitter;
var EElistenerCount = function (emitter, type) {
return emitter.listeners(type).length;
};
/*</replacement>*/
/*<replacement>*/
var Stream = __webpack_require__(95);
/*</replacement>*/
/*<replacement>*/
var Buffer = __webpack_require__(96).Buffer;
var OurUint8Array = global.Uint8Array || function () {};
function _uint8ArrayToBuffer(chunk) {
return Buffer.from(chunk);
}
function _isUint8Array(obj) {
return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
}
/*</replacement>*/
/*<replacement>*/
var util = Object.create(__webpack_require__(100));
util.inherits = __webpack_require__(89);
/*</replacement>*/
/*<replacement>*/
var debugUtil = __webpack_require__(101);
var debug = void 0;
if (debugUtil && debugUtil.debuglog) {
debug = debugUtil.debuglog('stream');
} else {
debug = function () {};
}
/*</replacement>*/
var BufferList = __webpack_require__(102);
var destroyImpl = __webpack_require__(104);
var StringDecoder;
util.inherits(Readable, Stream);
var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];
function prependListener(emitter, event, fn) {
// Sadly this is not cacheable as some libraries bundle their own
// event emitter implementation with them.
if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);
// This is a hack to make sure that our error handler is attached before any
// userland ones. NEVER DO THIS. This is here only because this code needs
// to continue to work with older versions of Node.js that do not include
// the prependListener() method. The goal is to eventually remove this hack.
if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];
}
function ReadableState(options, stream) {
Duplex = Duplex || __webpack_require__(105);
options = options || {};
// Duplex streams are both readable and writable, but share
// the same options object.
// However, some cases require setting options to different
// values for the readable and the writable sides of the duplex stream.
// These options can be provided separately as readableXXX and writableXXX.
var isDuplex = stream instanceof Duplex;
// object stream flag. Used to make read(n) ignore n and to
// make all the buffer merging and length checks go away
this.objectMode = !!options.objectMode;
if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
// the point at which it stops calling _read() to fill the buffer
// Note: 0 is a valid value, means "don't call _read preemptively ever"
var hwm = options.highWaterMark;
var readableHwm = options.readableHighWaterMark;
var defaultHwm = this.objectMode ? 16 : 16 * 1024;
if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;
// cast to ints.
this.highWaterMark = Math.floor(this.highWaterMark);
// A linked list is used to store data chunks instead of an array because the
// linked list can remove elements from the beginning faster than
// array.shift()
this.buffer = new BufferList();
this.length = 0;
this.pipes = null;
this.pipesCount = 0;
this.flowing = null;
this.ended = false;
this.endEmitted = false;
this.reading = false;
// a flag to be able to tell if the event 'readable'/'data' is emitted
// immediately, or on a later tick. We set this to true at first, because
// any actions that shouldn't happen until "later" should generally also
// not happen before the first read call.
this.sync = true;
// whenever we return null, then we set a flag to say
// that we're awaiting a 'readable' event emission.
this.needReadable = false;
this.emittedReadable = false;
this.readableListening = false;
this.resumeScheduled = false;
// has it been destroyed
this.destroyed = false;
// Crypto is kind of old and crusty. Historically, its default string
// encoding is 'binary' so we have to make this configurable.
// Everything else in the universe uses 'utf8', though.
this.defaultEncoding = options.defaultEncoding || 'utf8';
// the number of writers that are awaiting a drain event in .pipe()s
this.awaitDrain = 0;
// if true, a maybeReadMore has been scheduled
this.readingMore = false;
this.decoder = null;
this.encoding = null;
if (options.encoding) {
if (!StringDecoder) StringDecoder = __webpack_require__(110).StringDecoder;
this.decoder = new StringDecoder(options.encoding);
this.encoding = options.encoding;
}
}
function Readable(options) {
Duplex = Duplex || __webpack_require__(105);
if (!(this instanceof Readable)) return new Readable(options);
this._readableState = new ReadableState(options, this);
// legacy
this.readable = true;
if (options) {
if (typeof options.read === 'function') this._read = options.read;
if (typeof options.destroy === 'function') this._destroy = options.destroy;
}
Stream.call(this);
}
Object.defineProperty(Readable.prototype, 'destroyed', {
get: function () {
if (this._readableState === undefined) {
return false;
}
return this._readableState.destroyed;
},
set: function (value) {
// we ignore the value if the stream
// has not been initialized yet
if (!this._readableState) {
return;
}
// backward compatibility, the user is explicitly
// managing destroyed
this._readableState.destroyed = value;
}
});
Readable.prototype.destroy = destroyImpl.destroy;
Readable.prototype._undestroy = destroyImpl.undestroy;
Readable.prototype._destroy = function (err, cb) {
this.push(null);
cb(err);
};
// Manually shove something into the read() buffer.
// This returns true if the highWaterMark has not been hit yet,
// similar to how Writable.write() returns true if you should
// write() some more.
Readable.prototype.push = function (chunk, encoding) {
var state = this._readableState;
var skipChunkCheck;
if (!state.objectMode) {
if (typeof chunk === 'string') {
encoding = encoding || state.defaultEncoding;
if (encoding !== state.encoding) {
chunk = Buffer.from(chunk, encoding);
encoding = '';
}
skipChunkCheck = true;
}
} else {
skipChunkCheck = true;
}
return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);
};
// Unshift should *always* be something directly out of read()
Readable.prototype.unshift = function (chunk) {
return readableAddChunk(this, chunk, null, true, false);
};
function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {
var state = stream._readableState;
if (chunk === null) {
state.reading = false;
onEofChunk(stream, state);
} else {
var er;
if (!skipChunkCheck) er = chunkInvalid(state, chunk);
if (er) {
stream.emit('error', er);
} else if (state.objectMode || chunk && chunk.length > 0) {
if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {
chunk = _uint8ArrayToBuffer(chunk);
}
if (addToFront) {
if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);
} else if (state.ended) {
stream.emit('error', new Error('stream.push() after EOF'));
} else {
state.reading = false;
if (state.decoder && !encoding) {
chunk = state.decoder.write(chunk);
if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);
} else {
addChunk(stream, state, chunk, false);
}
}
} else if (!addToFront) {
state.reading = false;
}
}
return needMoreData(state);
}
function addChunk(stream, state, chunk, addToFront) {
if (state.flowing && state.length === 0 && !state.sync) {
stream.emit('data', chunk);
stream.read(0);
} else {
// update the buffer info.
state.length += state.objectMode ? 1 : chunk.length;
if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
if (state.needReadable) emitReadable(stream);
}
maybeReadMore(stream, state);
}
function chunkInvalid(state, chunk) {
var er;
if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
er = new TypeError('Invalid non-string/buffer chunk');
}
return er;
}
// if it's past the high water mark, we can push in some more.
// Also, if we have no data yet, we can stand some
// more bytes. This is to work around cases where hwm=0,
// such as the repl. Also, if the push() triggered a
// readable event, and the user called read(largeNumber) such that
// needReadable was set, then we ought to push more, so that another
// 'readable' event will be triggered.
function needMoreData(state) {
return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);
}
Readable.prototype.isPaused = function () {
return this._readableState.flowing === false;
};
// backwards compatibility.
Readable.prototype.setEncoding = function (enc) {
if (!StringDecoder) StringDecoder = __webpack_require__(110).StringDecoder;
this._readableState.decoder = new StringDecoder(enc);
this._readableState.encoding = enc;
return this;
};
// Don't raise the hwm > 8MB
var MAX_HWM = 0x800000;
function computeNewHighWaterMark(n) {
if (n >= MAX_HWM) {
n = MAX_HWM;
} else {
// Get the next highest power of 2 to prevent increasing hwm excessively in
// tiny amounts
n--;
n |= n >>> 1;
n |= n >>> 2;
n |= n >>> 4;
n |= n >>> 8;
n |= n >>> 16;
n++;
}
return n;
}
// This function is designed to be inlinable, so please take care when making
// changes to the function body.
function howMuchToRead(n, state) {
if (n <= 0 || state.length === 0 && state.ended) return 0;
if (state.objectMode) return 1;
if (n !== n) {
// Only flow one buffer at a time
if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
}
// If we're asking for more than the current hwm, then raise the hwm.
if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
if (n <= state.length) return n;
// Don't have enough
if (!state.ended) {
state.needReadable = true;
return 0;
}
return state.length;
}
// you can override either this method, or the async _read(n) below.
Readable.prototype.read = function (n) {
debug('read', n);
n = parseInt(n, 10);
var state = this._readableState;
var nOrig = n;
if (n !== 0) state.emittedReadable = false;
// if we're doing read(0) to trigger a readable event, but we
// already have a bunch of data in the buffer, then just trigger
// the 'readable' event and move on.
if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {
debug('read: emitReadable', state.length, state.ended);
if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);
return null;
}
n = howMuchToRead(n, state);
// if we've ended, and we're now clear, then finish it up.
if (n === 0 && state.ended) {
if (state.length === 0) endReadable(this);
return null;
}
// All the actual chunk generation logic needs to be
// *below* the call to _read. The reason is that in certain
// synthetic stream cases, such as passthrough streams, _read
// may be a completely synchronous operation which may change
// the state of the read buffer, providing enough data when
// before there was *not* enough.
//
// So, the steps are:
// 1. Figure out what the state of things will be after we do
// a read from the buffer.
//
// 2. If that resulting state will trigger a _read, then call _read.
// Note that this may be asynchronous, or synchronous. Yes, it is
// deeply ugly to write APIs this way, but that still doesn't mean
// that the Readable class should behave improperly, as streams are
// designed to be sync/async agnostic.
// Take note if the _read call is sync or async (ie, if the read call
// has returned yet), so that we know whether or not it's safe to emit
// 'readable' etc.
//
// 3. Actually pull the requested chunks out of the buffer and return.
// if we need a readable event, then we need to do some reading.
var doRead = state.needReadable;
debug('need readable', doRead);
// if we currently have less than the highWaterMark, then also read some
if (state.length === 0 || state.length - n < state.highWaterMark) {
doRead = true;
debug('length less than watermark', doRead);
}
// however, if we've ended, then there's no point, and if we're already
// reading, then it's unnecessary.
if (state.ended || state.reading) {
doRead = false;
debug('reading or ended', doRead);
} else if (doRead) {
debug('do read');
state.reading = true;
state.sync = true;
// if the length is currently zero, then we *need* a readable event.
if (state.length === 0) state.needReadable = true;
// call internal read method
this._read(state.highWaterMark);
state.sync = false;
// If _read pushed data synchronously, then `reading` will be false,
// and we need to re-evaluate how much data we can return to the user.
if (!state.reading) n = howMuchToRead(nOrig, state);
}
var ret;
if (n > 0) ret = fromList(n, state);else ret = null;
if (ret === null) {
state.needReadable = true;
n = 0;
} else {
state.length -= n;
}
if (state.length === 0) {
// If we have nothing in the buffer, then we want to know
// as soon as we *do* get something into the buffer.
if (!state.ended) state.needReadable = true;
// If we tried to read() past the EOF, then emit end on the next tick.
if (nOrig !== n && state.ended) endReadable(this);
}
if (ret !== null) this.emit('data', ret);
return ret;
};
function onEofChunk(stream, state) {
if (state.ended) return;
if (state.decoder) {
var chunk = state.decoder.end();
if (chunk && chunk.length) {
state.buffer.push(chunk);
state.length += state.objectMode ? 1 : chunk.length;
}
}
state.ended = true;
// emit 'readable' now to make sure it gets picked up.
emitReadable(stream);
}
// Don't emit readable right away in sync mode, because this can trigger
// another read() call => stack overflow. This way, it might trigger
// a nextTick recursion warning, but that's not so bad.
function emitReadable(stream) {
var state = stream._readableState;
state.needReadable = false;
if (!state.emittedReadable) {
debug('emitReadable', state.flowing);
state.emittedReadable = true;
if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);
}
}
function emitReadable_(stream) {
debug('emit readable');
stream.emit('readable');
flow(stream);
}
// at this point, the user has presumably seen the 'readable' event,
// and called read() to consume some data. that may have triggered
// in turn another _read(n) call, in which case reading = true if
// it's in progress.
// However, if we're not ended, or reading, and the length < hwm,
// then go ahead and try to read some more preemptively.
function maybeReadMore(stream, state) {
if (!state.readingMore) {
state.readingMore = true;
pna.nextTick(maybeReadMore_, stream, state);
}
}
function maybeReadMore_(stream, state) {
var len = state.length;
while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
debug('maybeReadMore read 0');
stream.read(0);
if (len === state.length)
// didn't get any data, stop spinning.
break;else len = state.length;
}
state.readingMore = false;
}
// abstract method. to be overridden in specific implementation classes.
// call cb(er, data) where data is <= n in length.
// for virtual (non-string, non-buffer) streams, "length" is somewhat
// arbitrary, and perhaps not very meaningful.
Readable.prototype._read = function (n) {
this.emit('error', new Error('_read() is not implemented'));
};
Readable.prototype.pipe = function (dest, pipeOpts) {
var src = this;
var state = this._readableState;
switch (state.pipesCount) {
case 0:
state.pipes = dest;
break;
case 1:
state.pipes = [state.pipes, dest];
break;
default:
state.pipes.push(dest);
break;
}
state.pipesCount += 1;
debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
var endFn = doEnd ? onend : unpipe;
if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);
dest.on('unpipe', onunpipe);
function onunpipe(readable, unpipeInfo) {
debug('onunpipe');
if (readable === src) {
if (unpipeInfo && unpipeInfo.hasUnpiped === false) {
unpipeInfo.hasUnpiped = true;
cleanup();
}
}
}
function onend() {
debug('onend');
dest.end();
}
// when the dest drains, it reduces the awaitDrain counter
// on the source. This would be more elegant with a .once()
// handler in flow(), but adding and removing repeatedly is
// too slow.
var ondrain = pipeOnDrain(src);
dest.on('drain', ondrain);
var cleanedUp = false;
function cleanup() {
debug('cleanup');
// cleanup event handlers once the pipe is broken
dest.removeListener('close', onclose);
dest.removeListener('finish', onfinish);
dest.removeListener('drain', ondrain);
dest.removeListener('error', onerror);
dest.removeListener('unpipe', onunpipe);
src.removeListener('end', onend);
src.removeListener('end', unpipe);
src.removeListener('data', ondata);
cleanedUp = true;
// if the reader is waiting for a drain event from this
// specific writer, then it would cause it to never start
// flowing again.
// So, if this is awaiting a drain, then we just call it now.
// If we don't know, then assume that we are waiting for one.
if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
}
// If the user pushes more data while we're writing to dest then we'll end up
// in ondata again. However, we only want to increase awaitDrain once because
// dest will only emit one 'drain' event for the multiple writes.
// => Introduce a guard on increasing awaitDrain.
var increasedAwaitDrain = false;
src.on('data', ondata);
function ondata(chunk) {
debug('ondata');
increasedAwaitDrain = false;
var ret = dest.write(chunk);
if (false === ret && !increasedAwaitDrain) {
// If the user unpiped during `dest.write()`, it is possible
// to get stuck in a permanently paused state if that write
// also returned false.
// => Check whether `dest` is still a piping destination.
if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {
debug('false write response, pause', src._readableState.awaitDrain);
src._readableState.awaitDrain++;
increasedAwaitDrain = true;
}
src.pause();
}
}
// if the dest has an error, then stop piping into it.
// however, don't suppress the throwing behavior for this.
function onerror(er) {
debug('onerror', er);
unpipe();
dest.removeListener('error', onerror);
if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);
}
// Make sure our error handler is attached before userland ones.
prependListener(dest, 'error', onerror);
// Both close and finish should trigger unpipe, but only once.
function onclose() {
dest.removeListener('finish', onfinish);
unpipe();
}
dest.once('close', onclose);
function onfinish() {
debug('onfinish');
dest.removeListener('close', onclose);
unpipe();
}
dest.once('finish', onfinish);
function unpipe() {
debug('unpipe');
src.unpipe(dest);
}
// tell the dest that it's being piped to
dest.emit('pipe', src);
// start the flow if it hasn't been started already.
if (!state.flowing) {
debug('pipe resume');
src.resume();
}
return dest;
};
function pipeOnDrain(src) {
return function () {
var state = src._readableState;
debug('pipeOnDrain', state.awaitDrain);
if (state.awaitDrain) state.awaitDrain--;
if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {
state.flowing = true;
flow(src);
}
};
}
Readable.prototype.unpipe = function (dest) {
var state = this._readableState;
var unpipeInfo = { hasUnpiped: false };
// if we're not piping anywhere, then do nothing.
if (state.pipesCount === 0) return this;
// just one destination. most common case.
if (state.pipesCount === 1) {
// passed in one, but it's not the right one.
if (dest && dest !== state.pipes) return this;
if (!dest) dest = state.pipes;
// got a match.
state.pipes = null;
state.pipesCount = 0;
state.flowing = false;
if (dest) dest.emit('unpipe', this, unpipeInfo);
return this;
}
// slow case. multiple pipe destinations.
if (!dest) {
// remove all.
var dests = state.pipes;
var len = state.pipesCount;
state.pipes = null;
state.pipesCount = 0;
state.flowing = false;
for (var i = 0; i < len; i++) {
dests[i].emit('unpipe', this, unpipeInfo);
}return this;
}
// try to find the right one.
var index = indexOf(state.pipes, dest);
if (index === -1) return this;
state.pipes.splice(index, 1);
state.pipesCount -= 1;
if (state.pipesCount === 1) state.pipes = state.pipes[0];
dest.emit('unpipe', this, unpipeInfo);
return this;
};
// set up data events if they are asked for
// Ensure readable listeners eventually get something
Readable.prototype.on = function (ev, fn) {
var res = Stream.prototype.on.call(this, ev, fn);
if (ev === 'data') {
// Start flowing on next tick if stream isn't explicitly paused
if (this._readableState.flowing !== false) this.resume();
} else if (ev === 'readable') {
var state = this._readableState;
if (!state.endEmitted && !state.readableListening) {
state.readableListening = state.needReadable = true;
state.emittedReadable = false;
if (!state.reading) {
pna.nextTick(nReadingNextTick, this);
} else if (state.length) {
emitReadable(this);
}
}
}
return res;
};
Readable.prototype.addListener = Readable.prototype.on;
function nReadingNextTick(self) {
debug('readable nexttick read 0');
self.read(0);
}
// pause() and resume() are remnants of the legacy readable stream API
// If the user uses them, then switch into old mode.
Readable.prototype.resume = function () {
var state = this._readableState;
if (!state.flowing) {
debug('resume');
state.flowing = true;
resume(this, state);
}
return this;
};
function resume(stream, state) {
if (!state.resumeScheduled) {
state.resumeScheduled = true;
pna.nextTick(resume_, stream, state);
}
}
function resume_(stream, state) {
if (!state.reading) {
debug('resume read 0');
stream.read(0);
}
state.resumeScheduled = false;
state.awaitDrain = 0;
stream.emit('resume');
flow(stream);
if (state.flowing && !state.reading) stream.read(0);
}
Readable.prototype.pause = function () {
debug('call pause flowing=%j', this._readableState.flowing);
if (false !== this._readableState.flowing) {
debug('pause');
this._readableState.flowing = false;
this.emit('pause');
}
return this;
};
function flow(stream) {
var state = stream._readableState;
debug('flow', state.flowing);
while (state.flowing && stream.read() !== null) {}
}
// wrap an old-style stream as the async data source.
// This is *not* part of the readable stream interface.
// It is an ugly unfortunate mess of history.
Readable.prototype.wrap = function (stream) {
var _this = this;
var state = this._readableState;
var paused = false;
stream.on('end', function () {
debug('wrapped end');
if (state.decoder && !state.ended) {
var chunk = state.decoder.end();
if (chunk && chunk.length) _this.push(chunk);
}
_this.push(null);
});
stream.on('data', function (chunk) {
debug('wrapped data');
if (state.decoder) chunk = state.decoder.write(chunk);
// don't skip over falsy values in objectMode
if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
var ret = _this.push(chunk);
if (!ret) {
paused = true;
stream.pause();
}
});
// proxy all the other methods.
// important when wrapping filters and duplexes.
for (var i in stream) {
if (this[i] === undefined && typeof stream[i] === 'function') {
this[i] = function (method) {
return function () {
return stream[method].apply(stream, arguments);
};
}(i);
}
}
// proxy certain important events.
for (var n = 0; n < kProxyEvents.length; n++) {
stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));
}
// when we try to consume some more bytes, simply unpause the
// underlying stream.
this._read = function (n) {
debug('wrapped _read', n);
if (paused) {
paused = false;
stream.resume();
}
};
return this;
};
Object.defineProperty(Readable.prototype, 'readableHighWaterMark', {
// making it explicit this property is not enumerable
// because otherwise some prototype manipulation in
// userland will fail
enumerable: false,
get: function () {
return this._readableState.highWaterMark;
}
});
// exposed for testing purposes only.
Readable._fromList = fromList;
// Pluck off n bytes from an array of buffers.
// Length is the combined lengths of all the buffers in the list.
// This function is designed to be inlinable, so please take care when making
// changes to the function body.
function fromList(n, state) {
// nothing buffered
if (state.length === 0) return null;
var ret;
if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {
// read it all, truncate the list
if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);
state.buffer.clear();
} else {
// read part of list
ret = fromListPartial(n, state.buffer, state.decoder);
}
return ret;
}
// Extracts only enough buffered data to satisfy the amount requested.
// This function is designed to be inlinable, so please take care when making
// changes to the function body.
function fromListPartial(n, list, hasStrings) {
var ret;
if (n < list.head.data.length) {
// slice is the same for buffers and strings
ret = list.head.data.slice(0, n);
list.head.data = list.head.data.slice(n);
} else if (n === list.head.data.length) {
// first chunk is a perfect match
ret = list.shift();
} else {
// result spans more than one buffer
ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
}
return ret;
}
// Copies a specified amount of characters from the list of buffered data
// chunks.
// This function is designed to be inlinable, so please take care when making
// changes to the function body.
function copyFromBufferString(n, list) {
var p = list.head;
var c = 1;
var ret = p.data;
n -= ret.length;
while (p = p.next) {
var str = p.data;
var nb = n > str.length ? str.length : n;
if (nb === str.length) ret += str;else ret += str.slice(0, n);
n -= nb;
if (n === 0) {
if (nb === str.length) {
++c;
if (p.next) list.head = p.next;else list.head = list.tail = null;
} else {
list.head = p;
p.data = str.slice(nb);
}
break;
}
++c;
}
list.length -= c;
return ret;
}
// Copies a specified amount of bytes from the list of buffered data chunks.
// This function is designed to be inlinable, so please take care when making
// changes to the function body.
function copyFromBuffer(n, list) {
var ret = Buffer.allocUnsafe(n);
var p = list.head;
var c = 1;
p.data.copy(ret);
n -= p.data.length;
while (p = p.next) {
var buf = p.data;
var nb = n > buf.length ? buf.length : n;
buf.copy(ret, ret.length - n, 0, nb);
n -= nb;
if (n === 0) {
if (nb === buf.length) {
++c;
if (p.next) list.head = p.next;else list.head = list.tail = null;
} else {
list.head = p;
p.data = buf.slice(nb);
}
break;
}
++c;
}
list.length -= c;
return ret;
}
function endReadable(stream) {
var state = stream._readableState;
// If we get here before consuming all the bytes, then that is a
// bug in node. Should never happen.
if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream');
if (!state.endEmitted) {
state.ended = true;
pna.nextTick(endReadableNT, state, stream);
}
}
function endReadableNT(state, stream) {
// Check that we didn't get one last unshift.
if (!state.endEmitted && state.length === 0) {
state.endEmitted = true;
stream.readable = false;
stream.emit('end');
}
}
function indexOf(xs, x) {
for (var i = 0, l = xs.length; i < l; i++) {
if (xs[i] === x) return i;
}
return -1;
}
/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()), __webpack_require__(92)))
/***/ }),
/* 92 */
/***/ (function(module, exports) {
// shim for using process in browser
var process = module.exports = {};
// cached from whatever global is present so that test runners that stub it
// don't break things. But we need to wrap it in a try catch in case it is
// wrapped in strict mode code which doesn't define any globals. It's inside a
// function because try/catches deoptimize in certain engines.
var cachedSetTimeout;
var cachedClearTimeout;
function defaultSetTimout() {
throw new Error('setTimeout has not been defined');
}
function defaultClearTimeout () {
throw new Error('clearTimeout has not been defined');
}
(function () {
try {
if (typeof setTimeout === 'function') {
cachedSetTimeout = setTimeout;
} else {
cachedSetTimeout = defaultSetTimout;
}
} catch (e) {
cachedSetTimeout = defaultSetTimout;
}
try {
if (typeof clearTimeout === 'function') {
cachedClearTimeout = clearTimeout;
} else {
cachedClearTimeout = defaultClearTimeout;
}
} catch (e) {
cachedClearTimeout = defaultClearTimeout;
}
} ())
function runTimeout(fun) {
if (cachedSetTimeout === setTimeout) {
//normal enviroments in sane situations
return setTimeout(fun, 0);
}
// if setTimeout wasn't available but was latter defined
if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
cachedSetTimeout = setTimeout;
return setTimeout(fun, 0);
}
try {
// when when somebody has screwed with setTimeout but no I.E. maddness
return cachedSetTimeout(fun, 0);
} catch(e){
try {
// When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
return cachedSetTimeout.call(null, fun, 0);
} catch(e){
// same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
return cachedSetTimeout.call(this, fun, 0);
}
}
}
function runClearTimeout(marker) {
if (cachedClearTimeout === clearTimeout) {
//normal enviroments in sane situations
return clearTimeout(marker);
}
// if clearTimeout wasn't available but was latter defined
if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
cachedClearTimeout = clearTimeout;
return clearTimeout(marker);
}
try {
// when when somebody has screwed with setTimeout but no I.E. maddness
return cachedClearTimeout(marker);
} catch (e){
try {
// When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
return cachedClearTimeout.call(null, marker);
} catch (e){
// same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
// Some versions of I.E. have different rules for clearTimeout vs setTimeout
return cachedClearTimeout.call(this, marker);
}
}
}
var queue = [];
var draining = false;
var currentQueue;
var queueIndex = -1;
function cleanUpNextTick() {
if (!draining || !currentQueue) {
return;
}
draining = false;
if (currentQueue.length) {
queue = currentQueue.concat(queue);
} else {
queueIndex = -1;
}
if (queue.length) {
drainQueue();
}
}
function drainQueue() {
if (draining) {
return;
}
var timeout = runTimeout(cleanUpNextTick);
draining = true;
var len = queue.length;
while(len) {
currentQueue = queue;
queue = [];
while (++queueIndex < len) {
if (currentQueue) {
currentQueue[queueIndex].run();
}
}
queueIndex = -1;
len = queue.length;
}
currentQueue = null;
draining = false;
runClearTimeout(timeout);
}
process.nextTick = function (fun) {
var args = new Array(arguments.length - 1);
if (arguments.length > 1) {
for (var i = 1; i < arguments.length; i++) {
args[i - 1] = arguments[i];
}
}
queue.push(new Item(fun, args));
if (queue.length === 1 && !draining) {
runTimeout(drainQueue);
}
};
// v8 likes predictible objects
function Item(fun, array) {
this.fun = fun;
this.array = array;
}
Item.prototype.run = function () {
this.fun.apply(null, this.array);
};
process.title = 'browser';
process.browser = true;
process.env = {};
process.argv = [];
process.version = ''; // empty string to avoid regexp issues
process.versions = {};
function noop() {}
process.on = noop;
process.addListener = noop;
process.once = noop;
process.off = noop;
process.removeListener = noop;
process.removeAllListeners = noop;
process.emit = noop;
process.prependListener = noop;
process.prependOnceListener = noop;
process.listeners = function (name) { return [] }
process.binding = function (name) {
throw new Error('process.binding is not supported');
};
process.cwd = function () { return '/' };
process.chdir = function (dir) {
throw new Error('process.chdir is not supported');
};
process.umask = function() { return 0; };
/***/ }),
/* 93 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(process) {'use strict';
if (typeof process === 'undefined' ||
!process.version ||
process.version.indexOf('v0.') === 0 ||
process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {
module.exports = { nextTick: nextTick };
} else {
module.exports = process
}
function nextTick(fn, arg1, arg2, arg3) {
if (typeof fn !== 'function') {
throw new TypeError('"callback" argument must be a function');
}
var len = arguments.length;
var args, i;
switch (len) {
case 0:
case 1:
return process.nextTick(fn);
case 2:
return process.nextTick(function afterTickOne() {
fn.call(null, arg1);
});
case 3:
return process.nextTick(function afterTickTwo() {
fn.call(null, arg1, arg2);
});
case 4:
return process.nextTick(function afterTickThree() {
fn.call(null, arg1, arg2, arg3);
});
default:
args = new Array(len - 1);
i = 0;
while (i < args.length) {
args[i++] = arguments[i];
}
return process.nextTick(function afterTick() {
fn.apply(null, args);
});
}
}
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(92)))
/***/ }),
/* 94 */
/***/ (function(module, exports) {
var toString = {}.toString;
module.exports = Array.isArray || function (arr) {
return toString.call(arr) == '[object Array]';
};
/***/ }),
/* 95 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(88).EventEmitter;
/***/ }),
/* 96 */
/***/ (function(module, exports, __webpack_require__) {
/* eslint-disable node/no-deprecated-api */
var buffer = __webpack_require__(97)
var Buffer = buffer.Buffer
// alternative to using Object.keys for old browsers
function copyProps (src, dst) {
for (var key in src) {
dst[key] = src[key]
}
}
if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {
module.exports = buffer
} else {
// Copy properties from require('buffer')
copyProps(buffer, exports)
exports.Buffer = SafeBuffer
}
function SafeBuffer (arg, encodingOrOffset, length) {
return Buffer(arg, encodingOrOffset, length)
}
// Copy static methods from Buffer
copyProps(Buffer, SafeBuffer)
SafeBuffer.from = function (arg, encodingOrOffset, length) {
if (typeof arg === 'number') {
throw new TypeError('Argument must not be a number')
}
return Buffer(arg, encodingOrOffset, length)
}
SafeBuffer.alloc = function (size, fill, encoding) {
if (typeof size !== 'number') {
throw new TypeError('Argument must be a number')
}
var buf = Buffer(size)
if (fill !== undefined) {
if (typeof encoding === 'string') {
buf.fill(fill, encoding)
} else {
buf.fill(fill)
}
} else {
buf.fill(0)
}
return buf
}
SafeBuffer.allocUnsafe = function (size) {
if (typeof size !== 'number') {
throw new TypeError('Argument must be a number')
}
return Buffer(size)
}
SafeBuffer.allocUnsafeSlow = function (size) {
if (typeof size !== 'number') {
throw new TypeError('Argument must be a number')
}
return buffer.SlowBuffer(size)
}
/***/ }),
/* 97 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <http://feross.org>
* @license MIT
*/
/* eslint-disable no-proto */
'use strict'
var base64 = __webpack_require__(98)
var ieee754 = __webpack_require__(99)
var isArray = __webpack_require__(94)
exports.Buffer = Buffer
exports.SlowBuffer = SlowBuffer
exports.INSPECT_MAX_BYTES = 50
/**
* If `Buffer.TYPED_ARRAY_SUPPORT`:
* === true Use Uint8Array implementation (fastest)
* === false Use Object implementation (most compatible, even IE6)
*
* Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,
* Opera 11.6+, iOS 4.2+.
*
* Due to various browser bugs, sometimes the Object implementation will be used even
* when the browser supports typed arrays.
*
* Note:
*
* - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,
* See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.
*
* - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.
*
* - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of
* incorrect length in some situations.
* We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they
* get the Object implementation, which is slower but behaves correctly.
*/
Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined
? global.TYPED_ARRAY_SUPPORT
: typedArraySupport()
/*
* Export kMaxLength after typed array support is determined.
*/
exports.kMaxLength = kMaxLength()
function typedArraySupport () {
try {
var arr = new Uint8Array(1)
arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}
return arr.foo() === 42 && // typed array instances can be augmented
typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`
arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`
} catch (e) {
return false
}
}
function kMaxLength () {
return Buffer.TYPED_ARRAY_SUPPORT
? 0x7fffffff
: 0x3fffffff
}
function createBuffer (that, length) {
if (kMaxLength() < length) {
throw new RangeError('Invalid typed array length')
}
if (Buffer.TYPED_ARRAY_SUPPORT) {
// Return an augmented `Uint8Array` instance, for best performance
that = new Uint8Array(length)
that.__proto__ = Buffer.prototype
} else {
// Fallback: Return an object instance of the Buffer class
if (that === null) {
that = new Buffer(length)
}
that.length = length
}
return that
}
/**
* The Buffer constructor returns instances of `Uint8Array` that have their
* prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
* `Uint8Array`, so the returned instances will have all the node `Buffer` methods
* and the `Uint8Array` methods. Square bracket notation works as expected -- it
* returns a single octet.
*
* The `Uint8Array` prototype remains unmodified.
*/
function Buffer (arg, encodingOrOffset, length) {
if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {
return new Buffer(arg, encodingOrOffset, length)
}
// Common case.
if (typeof arg === 'number') {
if (typeof encodingOrOffset === 'string') {
throw new Error(
'If encoding is specified then the first argument must be a string'
)
}
return allocUnsafe(this, arg)
}
return from(this, arg, encodingOrOffset, length)
}
Buffer.poolSize = 8192 // not used by this implementation
// TODO: Legacy, not needed anymore. Remove in next major version.
Buffer._augment = function (arr) {
arr.__proto__ = Buffer.prototype
return arr
}
function from (that, value, encodingOrOffset, length) {
if (typeof value === 'number') {
throw new TypeError('"value" argument must not be a number')
}
if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
return fromArrayBuffer(that, value, encodingOrOffset, length)
}
if (typeof value === 'string') {
return fromString(that, value, encodingOrOffset)
}
return fromObject(that, value)
}
/**
* Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
* if value is a number.
* Buffer.from(str[, encoding])
* Buffer.from(array)
* Buffer.from(buffer)
* Buffer.from(arrayBuffer[, byteOffset[, length]])
**/
Buffer.from = function (value, encodingOrOffset, length) {
return from(null, value, encodingOrOffset, length)
}
if (Buffer.TYPED_ARRAY_SUPPORT) {
Buffer.prototype.__proto__ = Uint8Array.prototype
Buffer.__proto__ = Uint8Array
if (typeof Symbol !== 'undefined' && Symbol.species &&
Buffer[Symbol.species] === Buffer) {
// Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97
Object.defineProperty(Buffer, Symbol.species, {
value: null,
configurable: true
})
}
}
function assertSize (size) {
if (typeof size !== 'number') {
throw new TypeError('"size" argument must be a number')
} else if (size < 0) {
throw new RangeError('"size" argument must not be negative')
}
}
function alloc (that, size, fill, encoding) {
assertSize(size)
if (size <= 0) {
return createBuffer(that, size)
}
if (fill !== undefined) {
// Only pay attention to encoding if it's a string. This
// prevents accidentally sending in a number that would
// be interpretted as a start offset.
return typeof encoding === 'string'
? createBuffer(that, size).fill(fill, encoding)
: createBuffer(that, size).fill(fill)
}
return createBuffer(that, size)
}
/**
* Creates a new filled Buffer instance.
* alloc(size[, fill[, encoding]])
**/
Buffer.alloc = function (size, fill, encoding) {
return alloc(null, size, fill, encoding)
}
function allocUnsafe (that, size) {
assertSize(size)
that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)
if (!Buffer.TYPED_ARRAY_SUPPORT) {
for (var i = 0; i < size; ++i) {
that[i] = 0
}
}
return that
}
/**
* Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
* */
Buffer.allocUnsafe = function (size) {
return allocUnsafe(null, size)
}
/**
* Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
*/
Buffer.allocUnsafeSlow = function (size) {
return allocUnsafe(null, size)
}
function fromString (that, string, encoding) {
if (typeof encoding !== 'string' || encoding === '') {
encoding = 'utf8'
}
if (!Buffer.isEncoding(encoding)) {
throw new TypeError('"encoding" must be a valid string encoding')
}
var length = byteLength(string, encoding) | 0
that = createBuffer(that, length)
var actual = that.write(string, encoding)
if (actual !== length) {
// Writing a hex string, for example, that contains invalid characters will
// cause everything after the first invalid character to be ignored. (e.g.
// 'abxxcd' will be treated as 'ab')
that = that.slice(0, actual)
}
return that
}
function fromArrayLike (that, array) {
var length = array.length < 0 ? 0 : checked(array.length) | 0
that = createBuffer(that, length)
for (var i = 0; i < length; i += 1) {
that[i] = array[i] & 255
}
return that
}
function fromArrayBuffer (that, array, byteOffset, length) {
array.byteLength // this throws if `array` is not a valid ArrayBuffer
if (byteOffset < 0 || array.byteLength < byteOffset) {
throw new RangeError('\'offset\' is out of bounds')
}
if (array.byteLength < byteOffset + (length || 0)) {
throw new RangeError('\'length\' is out of bounds')
}
if (byteOffset === undefined && length === undefined) {
array = new Uint8Array(array)
} else if (length === undefined) {
array = new Uint8Array(array, byteOffset)
} else {
array = new Uint8Array(array, byteOffset, length)
}
if (Buffer.TYPED_ARRAY_SUPPORT) {
// Return an augmented `Uint8Array` instance, for best performance
that = array
that.__proto__ = Buffer.prototype
} else {
// Fallback: Return an object instance of the Buffer class
that = fromArrayLike(that, array)
}
return that
}
function fromObject (that, obj) {
if (Buffer.isBuffer(obj)) {
var len = checked(obj.length) | 0
that = createBuffer(that, len)
if (that.length === 0) {
return that
}
obj.copy(that, 0, 0, len)
return that
}
if (obj) {
if ((typeof ArrayBuffer !== 'undefined' &&
obj.buffer instanceof ArrayBuffer) || 'length' in obj) {
if (typeof obj.length !== 'number' || isnan(obj.length)) {
return createBuffer(that, 0)
}
return fromArrayLike(that, obj)
}
if (obj.type === 'Buffer' && isArray(obj.data)) {
return fromArrayLike(that, obj.data)
}
}
throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
}
function checked (length) {
// Note: cannot use `length < kMaxLength()` here because that fails when
// length is NaN (which is otherwise coerced to zero.)
if (length >= kMaxLength()) {
throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
'size: 0x' + kMaxLength().toString(16) + ' bytes')
}
return length | 0
}
function SlowBuffer (length) {
if (+length != length) { // eslint-disable-line eqeqeq
length = 0
}
return Buffer.alloc(+length)
}
Buffer.isBuffer = function isBuffer (b) {
return !!(b != null && b._isBuffer)
}
Buffer.compare = function compare (a, b) {
if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
throw new TypeError('Arguments must be Buffers')
}
if (a === b) return 0
var x = a.length
var y = b.length
for (var i = 0, len = Math.min(x, y); i < len; ++i) {
if (a[i] !== b[i]) {
x = a[i]
y = b[i]
break
}
}
if (x < y) return -1
if (y < x) return 1
return 0
}
Buffer.isEncoding = function isEncoding (encoding) {
switch (String(encoding).toLowerCase()) {
case 'hex':
case 'utf8':
case 'utf-8':
case 'ascii':
case 'latin1':
case 'binary':
case 'base64':
case 'ucs2':
case 'ucs-2':
case 'utf16le':
case 'utf-16le':
return true
default:
return false
}
}
Buffer.concat = function concat (list, length) {
if (!isArray(list)) {
throw new TypeError('"list" argument must be an Array of Buffers')
}
if (list.length === 0) {
return Buffer.alloc(0)
}
var i
if (length === undefined) {
length = 0
for (i = 0; i < list.length; ++i) {
length += list[i].length
}
}
var buffer = Buffer.allocUnsafe(length)
var pos = 0
for (i = 0; i < list.length; ++i) {
var buf = list[i]
if (!Buffer.isBuffer(buf)) {
throw new TypeError('"list" argument must be an Array of Buffers')
}
buf.copy(buffer, pos)
pos += buf.length
}
return buffer
}
function byteLength (string, encoding) {
if (Buffer.isBuffer(string)) {
return string.length
}
if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&
(ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {
return string.byteLength
}
if (typeof string !== 'string') {
string = '' + string
}
var len = string.length
if (len === 0) return 0
// Use a for loop to avoid recursion
var loweredCase = false
for (;;) {
switch (encoding) {
case 'ascii':
case 'latin1':
case 'binary':
return len
case 'utf8':
case 'utf-8':
case undefined:
return utf8ToBytes(string).length
case 'ucs2':
case 'ucs-2':
case 'utf16le':
case 'utf-16le':
return len * 2
case 'hex':
return len >>> 1
case 'base64':
return base64ToBytes(string).length
default:
if (loweredCase) return utf8ToBytes(string).length // assume utf8
encoding = ('' + encoding).toLowerCase()
loweredCase = true
}
}
}
Buffer.byteLength = byteLength
function slowToString (encoding, start, end) {
var loweredCase = false
// No need to verify that "this.length <= MAX_UINT32" since it's a read-only
// property of a typed array.
// This behaves neither like String nor Uint8Array in that we set start/end
// to their upper/lower bounds if the value passed is out of range.
// undefined is handled specially as per ECMA-262 6th Edition,
// Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
if (start === undefined || start < 0) {
start = 0
}
// Return early if start > this.length. Done here to prevent potential uint32
// coercion fail below.
if (start > this.length) {
return ''
}
if (end === undefined || end > this.length) {
end = this.length
}
if (end <= 0) {
return ''
}
// Force coersion to uint32. This will also coerce falsey/NaN values to 0.
end >>>= 0
start >>>= 0
if (end <= start) {
return ''
}
if (!encoding) encoding = 'utf8'
while (true) {
switch (encoding) {
case 'hex':
return hexSlice(this, start, end)
case 'utf8':
case 'utf-8':
return utf8Slice(this, start, end)
case 'ascii':
return asciiSlice(this, start, end)
case 'latin1':
case 'binary':
return latin1Slice(this, start, end)
case 'base64':
return base64Slice(this, start, end)
case 'ucs2':
case 'ucs-2':
case 'utf16le':
case 'utf-16le':
return utf16leSlice(this, start, end)
default:
if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
encoding = (encoding + '').toLowerCase()
loweredCase = true
}
}
}
// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect
// Buffer instances.
Buffer.prototype._isBuffer = true
function swap (b, n, m) {
var i = b[n]
b[n] = b[m]
b[m] = i
}
Buffer.prototype.swap16 = function swap16 () {
var len = this.length
if (len % 2 !== 0) {
throw new RangeError('Buffer size must be a multiple of 16-bits')
}
for (var i = 0; i < len; i += 2) {
swap(this, i, i + 1)
}
return this
}
Buffer.prototype.swap32 = function swap32 () {
var len = this.length
if (len % 4 !== 0) {
throw new RangeError('Buffer size must be a multiple of 32-bits')
}
for (var i = 0; i < len; i += 4) {
swap(this, i, i + 3)
swap(this, i + 1, i + 2)
}
return this
}
Buffer.prototype.swap64 = function swap64 () {
var len = this.length
if (len % 8 !== 0) {
throw new RangeError('Buffer size must be a multiple of 64-bits')
}
for (var i = 0; i < len; i += 8) {
swap(this, i, i + 7)
swap(this, i + 1, i + 6)
swap(this, i + 2, i + 5)
swap(this, i + 3, i + 4)
}
return this
}
Buffer.prototype.toString = function toString () {
var length = this.length | 0
if (length === 0) return ''
if (arguments.length === 0) return utf8Slice(this, 0, length)
return slowToString.apply(this, arguments)
}
Buffer.prototype.equals = function equals (b) {
if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
if (this === b) return true
return Buffer.compare(this, b) === 0
}
Buffer.prototype.inspect = function inspect () {
var str = ''
var max = exports.INSPECT_MAX_BYTES
if (this.length > 0) {
str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')
if (this.length > max) str += ' ... '
}
return '<Buffer ' + str + '>'
}
Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
if (!Buffer.isBuffer(target)) {
throw new TypeError('Argument must be a Buffer')
}
if (start === undefined) {
start = 0
}
if (end === undefined) {
end = target ? target.length : 0
}
if (thisStart === undefined) {
thisStart = 0
}
if (thisEnd === undefined) {
thisEnd = this.length
}
if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {
throw new RangeError('out of range index')
}
if (thisStart >= thisEnd && start >= end) {
return 0
}
if (thisStart >= thisEnd) {
return -1
}
if (start >= end) {
return 1
}
start >>>= 0
end >>>= 0
thisStart >>>= 0
thisEnd >>>= 0
if (this === target) return 0
var x = thisEnd - thisStart
var y = end - start
var len = Math.min(x, y)
var thisCopy = this.slice(thisStart, thisEnd)
var targetCopy = target.slice(start, end)
for (var i = 0; i < len; ++i) {
if (thisCopy[i] !== targetCopy[i]) {
x = thisCopy[i]
y = targetCopy[i]
break
}
}
if (x < y) return -1
if (y < x) return 1
return 0
}
// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,
// OR the last index of `val` in `buffer` at offset <= `byteOffset`.
//
// Arguments:
// - buffer - a Buffer to search
// - val - a string, Buffer, or number
// - byteOffset - an index into `buffer`; will be clamped to an int32
// - encoding - an optional encoding, relevant is val is a string
// - dir - true for indexOf, false for lastIndexOf
function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
// Empty buffer means no match
if (buffer.length === 0) return -1
// Normalize byteOffset
if (typeof byteOffset === 'string') {
encoding = byteOffset
byteOffset = 0
} else if (byteOffset > 0x7fffffff) {
byteOffset = 0x7fffffff
} else if (byteOffset < -0x80000000) {
byteOffset = -0x80000000
}
byteOffset = +byteOffset // Coerce to Number.
if (isNaN(byteOffset)) {
// byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer
byteOffset = dir ? 0 : (buffer.length - 1)
}
// Normalize byteOffset: negative offsets start from the end of the buffer
if (byteOffset < 0) byteOffset = buffer.length + byteOffset
if (byteOffset >= buffer.length) {
if (dir) return -1
else byteOffset = buffer.length - 1
} else if (byteOffset < 0) {
if (dir) byteOffset = 0
else return -1
}
// Normalize val
if (typeof val === 'string') {
val = Buffer.from(val, encoding)
}
// Finally, search either indexOf (if dir is true) or lastIndexOf
if (Buffer.isBuffer(val)) {
// Special case: looking for empty string/buffer always fails
if (val.length === 0) {
return -1
}
return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
} else if (typeof val === 'number') {
val = val & 0xFF // Search for a byte value [0-255]
if (Buffer.TYPED_ARRAY_SUPPORT &&
typeof Uint8Array.prototype.indexOf === 'function') {
if (dir) {
return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
} else {
return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
}
}
return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
}
throw new TypeError('val must be string, number or Buffer')
}
function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
var indexSize = 1
var arrLength = arr.length
var valLength = val.length
if (encoding !== undefined) {
encoding = String(encoding).toLowerCase()
if (encoding === 'ucs2' || encoding === 'ucs-2' ||
encoding === 'utf16le' || encoding === 'utf-16le') {
if (arr.length < 2 || val.length < 2) {
return -1
}
indexSize = 2
arrLength /= 2
valLength /= 2
byteOffset /= 2
}
}
function read (buf, i) {
if (indexSize === 1) {
return buf[i]
} else {
return buf.readUInt16BE(i * indexSize)
}
}
var i
if (dir) {
var foundIndex = -1
for (i = byteOffset; i < arrLength; i++) {
if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {
if (foundIndex === -1) foundIndex = i
if (i - foundIndex + 1 === valLength) return foundIndex * indexSize
} else {
if (foundIndex !== -1) i -= i - foundIndex
foundIndex = -1
}
}
} else {
if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength
for (i = byteOffset; i >= 0; i--) {
var found = true
for (var j = 0; j < valLength; j++) {
if (read(arr, i + j) !== read(val, j)) {
found = false
break
}
}
if (found) return i
}
}
return -1
}
Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
return this.indexOf(val, byteOffset, encoding) !== -1
}
Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
}
Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
}
function hexWrite (buf, string, offset, length) {
offset = Number(offset) || 0
var remaining = buf.length - offset
if (!length) {
length = remaining
} else {
length = Number(length)
if (length > remaining) {
length = remaining
}
}
// must be an even number of digits
var strLen = string.length
if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')
if (length > strLen / 2) {
length = strLen / 2
}
for (var i = 0; i < length; ++i) {
var parsed = parseInt(string.substr(i * 2, 2), 16)
if (isNaN(parsed)) return i
buf[offset + i] = parsed
}
return i
}
function utf8Write (buf, string, offset, length) {
return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
}
function asciiWrite (buf, string, offset, length) {
return blitBuffer(asciiToBytes(string), buf, offset, length)
}
function latin1Write (buf, string, offset, length) {
return asciiWrite(buf, string, offset, length)
}
function base64Write (buf, string, offset, length) {
return blitBuffer(base64ToBytes(string), buf, offset, length)
}
function ucs2Write (buf, string, offset, length) {
return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
}
Buffer.prototype.write = function write (string, offset, length, encoding) {
// Buffer#write(string)
if (offset === undefined) {
encoding = 'utf8'
length = this.length
offset = 0
// Buffer#write(string, encoding)
} else if (length === undefined && typeof offset === 'string') {
encoding = offset
length = this.length
offset = 0
// Buffer#write(string, offset[, length][, encoding])
} else if (isFinite(offset)) {
offset = offset | 0
if (isFinite(length)) {
length = length | 0
if (encoding === undefined) encoding = 'utf8'
} else {
encoding = length
length = undefined
}
// legacy write(string, encoding, offset, length) - remove in v0.13
} else {
throw new Error(
'Buffer.write(string, encoding, offset[, length]) is no longer supported'
)
}
var remaining = this.length - offset
if (length === undefined || length > remaining) length = remaining
if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {
throw new RangeError('Attempt to write outside buffer bounds')
}
if (!encoding) encoding = 'utf8'
var loweredCase = false
for (;;) {
switch (encoding) {
case 'hex':
return hexWrite(this, string, offset, length)
case 'utf8':
case 'utf-8':
return utf8Write(this, string, offset, length)
case 'ascii':
return asciiWrite(this, string, offset, length)
case 'latin1':
case 'binary':
return latin1Write(this, string, offset, length)
case 'base64':
// Warning: maxLength not taken into account in base64Write
return base64Write(this, string, offset, length)
case 'ucs2':
case 'ucs-2':
case 'utf16le':
case 'utf-16le':
return ucs2Write(this, string, offset, length)
default:
if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
encoding = ('' + encoding).toLowerCase()
loweredCase = true
}
}
}
Buffer.prototype.toJSON = function toJSON () {
return {
type: 'Buffer',
data: Array.prototype.slice.call(this._arr || this, 0)
}
}
function base64Slice (buf, start, end) {
if (start === 0 && end === buf.length) {
return base64.fromByteArray(buf)
} else {
return base64.fromByteArray(buf.slice(start, end))
}
}
function utf8Slice (buf, start, end) {
end = Math.min(buf.length, end)
var res = []
var i = start
while (i < end) {
var firstByte = buf[i]
var codePoint = null
var bytesPerSequence = (firstByte > 0xEF) ? 4
: (firstByte > 0xDF) ? 3
: (firstByte > 0xBF) ? 2
: 1
if (i + bytesPerSequence <= end) {
var secondByte, thirdByte, fourthByte, tempCodePoint
switch (bytesPerSequence) {
case 1:
if (firstByte < 0x80) {
codePoint = firstByte
}
break
case 2:
secondByte = buf[i + 1]
if ((secondByte & 0xC0) === 0x80) {
tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)
if (tempCodePoint > 0x7F) {
codePoint = tempCodePoint
}
}
break
case 3:
secondByte = buf[i + 1]
thirdByte = buf[i + 2]
if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {
tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)
if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {
codePoint = tempCodePoint
}
}
break
case 4:
secondByte = buf[i + 1]
thirdByte = buf[i + 2]
fourthByte = buf[i + 3]
if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {
tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)
if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {
codePoint = tempCodePoint
}
}
}
}
if (codePoint === null) {
// we did not generate a valid codePoint so insert a
// replacement char (U+FFFD) and advance only 1 byte
codePoint = 0xFFFD
bytesPerSequence = 1
} else if (codePoint > 0xFFFF) {
// encode to utf16 (surrogate pair dance)
codePoint -= 0x10000
res.push(codePoint >>> 10 & 0x3FF | 0xD800)
codePoint = 0xDC00 | codePoint & 0x3FF
}
res.push(codePoint)
i += bytesPerSequence
}
return decodeCodePointsArray(res)
}
// Based on http://stackoverflow.com/a/22747272/680742, the browser with
// the lowest limit is Chrome, with 0x10000 args.
// We go 1 magnitude less, for safety
var MAX_ARGUMENTS_LENGTH = 0x1000
function decodeCodePointsArray (codePoints) {
var len = codePoints.length
if (len <= MAX_ARGUMENTS_LENGTH) {
return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
}
// Decode in chunks to avoid "call stack size exceeded".
var res = ''
var i = 0
while (i < len) {
res += String.fromCharCode.apply(
String,
codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
)
}
return res
}
function asciiSlice (buf, start, end) {
var ret = ''
end = Math.min(buf.length, end)
for (var i = start; i < end; ++i) {
ret += String.fromCharCode(buf[i] & 0x7F)
}
return ret
}
function latin1Slice (buf, start, end) {
var ret = ''
end = Math.min(buf.length, end)
for (var i = start; i < end; ++i) {
ret += String.fromCharCode(buf[i])
}
return ret
}
function hexSlice (buf, start, end) {
var len = buf.length
if (!start || start < 0) start = 0
if (!end || end < 0 || end > len) end = len
var out = ''
for (var i = start; i < end; ++i) {
out += toHex(buf[i])
}
return out
}
function utf16leSlice (buf, start, end) {
var bytes = buf.slice(start, end)
var res = ''
for (var i = 0; i < bytes.length; i += 2) {
res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)
}
return res
}
Buffer.prototype.slice = function slice (start, end) {
var len = this.length
start = ~~start
end = end === undefined ? len : ~~end
if (start < 0) {
start += len
if (start < 0) start = 0
} else if (start > len) {
start = len
}
if (end < 0) {
end += len
if (end < 0) end = 0
} else if (end > len) {
end = len
}
if (end < start) end = start
var newBuf
if (Buffer.TYPED_ARRAY_SUPPORT) {
newBuf = this.subarray(start, end)
newBuf.__proto__ = Buffer.prototype
} else {
var sliceLen = end - start
newBuf = new Buffer(sliceLen, undefined)
for (var i = 0; i < sliceLen; ++i) {
newBuf[i] = this[i + start]
}
}
return newBuf
}
/*
* Need to make sure that buffer isn't trying to write out of bounds.
*/
function checkOffset (offset, ext, length) {
if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')
if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')
}
Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
offset = offset | 0
byteLength = byteLength | 0
if (!noAssert) checkOffset(offset, byteLength, this.length)
var val = this[offset]
var mul = 1
var i = 0
while (++i < byteLength && (mul *= 0x100)) {
val += this[offset + i] * mul
}
return val
}
Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
offset = offset | 0
byteLength = byteLength | 0
if (!noAssert) {
checkOffset(offset, byteLength, this.length)
}
var val = this[offset + --byteLength]
var mul = 1
while (byteLength > 0 && (mul *= 0x100)) {
val += this[offset + --byteLength] * mul
}
return val
}
Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
if (!noAssert) checkOffset(offset, 1, this.length)
return this[offset]
}
Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
if (!noAssert) checkOffset(offset, 2, this.length)
return this[offset] | (this[offset + 1] << 8)
}
Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
if (!noAssert) checkOffset(offset, 2, this.length)
return (this[offset] << 8) | this[offset + 1]
}
Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
if (!noAssert) checkOffset(offset, 4, this.length)
return ((this[offset]) |
(this[offset + 1] << 8) |
(this[offset + 2] << 16)) +
(this[offset + 3] * 0x1000000)
}
Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
if (!noAssert) checkOffset(offset, 4, this.length)
return (this[offset] * 0x1000000) +
((this[offset + 1] << 16) |
(this[offset + 2] << 8) |
this[offset + 3])
}
Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
offset = offset | 0
byteLength = byteLength | 0
if (!noAssert) checkOffset(offset, byteLength, this.length)
var val = this[offset]
var mul = 1
var i = 0
while (++i < byteLength && (mul *= 0x100)) {
val += this[offset + i] * mul
}
mul *= 0x80
if (val >= mul) val -= Math.pow(2, 8 * byteLength)
return val
}
Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
offset = offset | 0
byteLength = byteLength | 0
if (!noAssert) checkOffset(offset, byteLength, this.length)
var i = byteLength
var mul = 1
var val = this[offset + --i]
while (i > 0 && (mul *= 0x100)) {
val += this[offset + --i] * mul
}
mul *= 0x80
if (val >= mul) val -= Math.pow(2, 8 * byteLength)
return val
}
Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
if (!noAssert) checkOffset(offset, 1, this.length)
if (!(this[offset] & 0x80)) return (this[offset])
return ((0xff - this[offset] + 1) * -1)
}
Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
if (!noAssert) checkOffset(offset, 2, this.length)
var val = this[offset] | (this[offset + 1] << 8)
return (val & 0x8000) ? val | 0xFFFF0000 : val
}
Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
if (!noAssert) checkOffset(offset, 2, this.length)
var val = this[offset + 1] | (this[offset] << 8)
return (val & 0x8000) ? val | 0xFFFF0000 : val
}
Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
if (!noAssert) checkOffset(offset, 4, this.length)
return (this[offset]) |
(this[offset + 1] << 8) |
(this[offset + 2] << 16) |
(this[offset + 3] << 24)
}
Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
if (!noAssert) checkOffset(offset, 4, this.length)
return (this[offset] << 24) |
(this[offset + 1] << 16) |
(this[offset + 2] << 8) |
(this[offset + 3])
}
Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
if (!noAssert) checkOffset(offset, 4, this.length)
return ieee754.read(this, offset, true, 23, 4)
}
Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
if (!noAssert) checkOffset(offset, 4, this.length)
return ieee754.read(this, offset, false, 23, 4)
}
Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
if (!noAssert) checkOffset(offset, 8, this.length)
return ieee754.read(this, offset, true, 52, 8)
}
Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
if (!noAssert) checkOffset(offset, 8, this.length)
return ieee754.read(this, offset, false, 52, 8)
}
function checkInt (buf, value, offset, ext, max, min) {
if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance')
if (value > max || value < min) throw new RangeError('"value" argument is out of bounds')
if (offset + ext > buf.length) throw new RangeError('Index out of range')
}
Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
value = +value
offset = offset | 0
byteLength = byteLength | 0
if (!noAssert) {
var maxBytes = Math.pow(2, 8 * byteLength) - 1
checkInt(this, value, offset, byteLength, maxBytes, 0)
}
var mul = 1
var i = 0
this[offset] = value & 0xFF
while (++i < byteLength && (mul *= 0x100)) {
this[offset + i] = (value / mul) & 0xFF
}
return offset + byteLength
}
Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
value = +value
offset = offset | 0
byteLength = byteLength | 0
if (!noAssert) {
var maxBytes = Math.pow(2, 8 * byteLength) - 1
checkInt(this, value, offset, byteLength, maxBytes, 0)
}
var i = byteLength - 1
var mul = 1
this[offset + i] = value & 0xFF
while (--i >= 0 && (mul *= 0x100)) {
this[offset + i] = (value / mul) & 0xFF
}
return offset + byteLength
}
Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
value = +value
offset = offset | 0
if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)
if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
this[offset] = (value & 0xff)
return offset + 1
}
function objectWriteUInt16 (buf, value, offset, littleEndian) {
if (value < 0) value = 0xffff + value + 1
for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {
buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>
(littleEndian ? i : 1 - i) * 8
}
}
Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
value = +value
offset = offset | 0
if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)
if (Buffer.TYPED_ARRAY_SUPPORT) {
this[offset] = (value & 0xff)
this[offset + 1] = (value >>> 8)
} else {
objectWriteUInt16(this, value, offset, true)
}
return offset + 2
}
Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
value = +value
offset = offset | 0
if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)
if (Buffer.TYPED_ARRAY_SUPPORT) {
this[offset] = (value >>> 8)
this[offset + 1] = (value & 0xff)
} else {
objectWriteUInt16(this, value, offset, false)
}
return offset + 2
}
function objectWriteUInt32 (buf, value, offset, littleEndian) {
if (value < 0) value = 0xffffffff + value + 1
for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {
buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff
}
}
Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
value = +value
offset = offset | 0
if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)
if (Buffer.TYPED_ARRAY_SUPPORT) {
this[offset + 3] = (value >>> 24)
this[offset + 2] = (value >>> 16)
this[offset + 1] = (value >>> 8)
this[offset] = (value & 0xff)
} else {
objectWriteUInt32(this, value, offset, true)
}
return offset + 4
}
Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
value = +value
offset = offset | 0
if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)
if (Buffer.TYPED_ARRAY_SUPPORT) {
this[offset] = (value >>> 24)
this[offset + 1] = (value >>> 16)
this[offset + 2] = (value >>> 8)
this[offset + 3] = (value & 0xff)
} else {
objectWriteUInt32(this, value, offset, false)
}
return offset + 4
}
Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
value = +value
offset = offset | 0
if (!noAssert) {
var limit = Math.pow(2, 8 * byteLength - 1)
checkInt(this, value, offset, byteLength, limit - 1, -limit)
}
var i = 0
var mul = 1
var sub = 0
this[offset] = value & 0xFF
while (++i < byteLength && (mul *= 0x100)) {
if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {
sub = 1
}
this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
}
return offset + byteLength
}
Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
value = +value
offset = offset | 0
if (!noAssert) {
var limit = Math.pow(2, 8 * byteLength - 1)
checkInt(this, value, offset, byteLength, limit - 1, -limit)
}
var i = byteLength - 1
var mul = 1
var sub = 0
this[offset + i] = value & 0xFF
while (--i >= 0 && (mul *= 0x100)) {
if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {
sub = 1
}
this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
}
return offset + byteLength
}
Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
value = +value
offset = offset | 0
if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)
if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
if (value < 0) value = 0xff + value + 1
this[offset] = (value & 0xff)
return offset + 1
}
Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
value = +value
offset = offset | 0
if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)
if (Buffer.TYPED_ARRAY_SUPPORT) {
this[offset] = (value & 0xff)
this[offset + 1] = (value >>> 8)
} else {
objectWriteUInt16(this, value, offset, true)
}
return offset + 2
}
Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
value = +value
offset = offset | 0
if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)
if (Buffer.TYPED_ARRAY_SUPPORT) {
this[offset] = (value >>> 8)
this[offset + 1] = (value & 0xff)
} else {
objectWriteUInt16(this, value, offset, false)
}
return offset + 2
}
Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
value = +value
offset = offset | 0
if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)
if (Buffer.TYPED_ARRAY_SUPPORT) {
this[offset] = (value & 0xff)
this[offset + 1] = (value >>> 8)
this[offset + 2] = (value >>> 16)
this[offset + 3] = (value >>> 24)
} else {
objectWriteUInt32(this, value, offset, true)
}
return offset + 4
}
Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
value = +value
offset = offset | 0
if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)
if (value < 0) value = 0xffffffff + value + 1
if (Buffer.TYPED_ARRAY_SUPPORT) {
this[offset] = (value >>> 24)
this[offset + 1] = (value >>> 16)
this[offset + 2] = (value >>> 8)
this[offset + 3] = (value & 0xff)
} else {
objectWriteUInt32(this, value, offset, false)
}
return offset + 4
}
function checkIEEE754 (buf, value, offset, ext, max, min) {
if (offset + ext > buf.length) throw new RangeError('Index out of range')
if (offset < 0) throw new RangeError('Index out of range')
}
function writeFloat (buf, value, offset, littleEndian, noAssert) {
if (!noAssert) {
checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)
}
ieee754.write(buf, value, offset, littleEndian, 23, 4)
return offset + 4
}
Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
return writeFloat(this, value, offset, true, noAssert)
}
Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
return writeFloat(this, value, offset, false, noAssert)
}
function writeDouble (buf, value, offset, littleEndian, noAssert) {
if (!noAssert) {
checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)
}
ieee754.write(buf, value, offset, littleEndian, 52, 8)
return offset + 8
}
Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
return writeDouble(this, value, offset, true, noAssert)
}
Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
return writeDouble(this, value, offset, false, noAssert)
}
// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)
Buffer.prototype.copy = function copy (target, targetStart, start, end) {
if (!start) start = 0
if (!end && end !== 0) end = this.length
if (targetStart >= target.length) targetStart = target.length
if (!targetStart) targetStart = 0
if (end > 0 && end < start) end = start
// Copy 0 bytes; we're done
if (end === start) return 0
if (target.length === 0 || this.length === 0) return 0
// Fatal error conditions
if (targetStart < 0) {
throw new RangeError('targetStart out of bounds')
}
if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')
if (end < 0) throw new RangeError('sourceEnd out of bounds')
// Are we oob?
if (end > this.length) end = this.length
if (target.length - targetStart < end - start) {
end = target.length - targetStart + start
}
var len = end - start
var i
if (this === target && start < targetStart && targetStart < end) {
// descending copy from end
for (i = len - 1; i >= 0; --i) {
target[i + targetStart] = this[i + start]
}
} else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {
// ascending copy from start
for (i = 0; i < len; ++i) {
target[i + targetStart] = this[i + start]
}
} else {
Uint8Array.prototype.set.call(
target,
this.subarray(start, start + len),
targetStart
)
}
return len
}
// Usage:
// buffer.fill(number[, offset[, end]])
// buffer.fill(buffer[, offset[, end]])
// buffer.fill(string[, offset[, end]][, encoding])
Buffer.prototype.fill = function fill (val, start, end, encoding) {
// Handle string cases:
if (typeof val === 'string') {
if (typeof start === 'string') {
encoding = start
start = 0
end = this.length
} else if (typeof end === 'string') {
encoding = end
end = this.length
}
if (val.length === 1) {
var code = val.charCodeAt(0)
if (code < 256) {
val = code
}
}
if (encoding !== undefined && typeof encoding !== 'string') {
throw new TypeError('encoding must be a string')
}
if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
throw new TypeError('Unknown encoding: ' + encoding)
}
} else if (typeof val === 'number') {
val = val & 255
}
// Invalid ranges are not set to a default, so can range check early.
if (start < 0 || this.length < start || this.length < end) {
throw new RangeError('Out of range index')
}
if (end <= start) {
return this
}
start = start >>> 0
end = end === undefined ? this.length : end >>> 0
if (!val) val = 0
var i
if (typeof val === 'number') {
for (i = start; i < end; ++i) {
this[i] = val
}
} else {
var bytes = Buffer.isBuffer(val)
? val
: utf8ToBytes(new Buffer(val, encoding).toString())
var len = bytes.length
for (i = 0; i < end - start; ++i) {
this[i + start] = bytes[i % len]
}
}
return this
}
// HELPER FUNCTIONS
// ================
var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g
function base64clean (str) {
// Node strips out invalid characters like \n and \t from the string, base64-js does not
str = stringtrim(str).replace(INVALID_BASE64_RE, '')
// Node converts strings with length < 2 to ''
if (str.length < 2) return ''
// Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
while (str.length % 4 !== 0) {
str = str + '='
}
return str
}
function stringtrim (str) {
if (str.trim) return str.trim()
return str.replace(/^\s+|\s+$/g, '')
}
function toHex (n) {
if (n < 16) return '0' + n.toString(16)
return n.toString(16)
}
function utf8ToBytes (string, units) {
units = units || Infinity
var codePoint
var length = string.length
var leadSurrogate = null
var bytes = []
for (var i = 0; i < length; ++i) {
codePoint = string.charCodeAt(i)
// is surrogate component
if (codePoint > 0xD7FF && codePoint < 0xE000) {
// last char was a lead
if (!leadSurrogate) {
// no lead yet
if (codePoint > 0xDBFF) {
// unexpected trail
if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
continue
} else if (i + 1 === length) {
// unpaired lead
if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
continue
}
// valid lead
leadSurrogate = codePoint
continue
}
// 2 leads in a row
if (codePoint < 0xDC00) {
if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
leadSurrogate = codePoint
continue
}
// valid surrogate pair
codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000
} else if (leadSurrogate) {
// valid bmp char, but last char was a lead
if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
}
leadSurrogate = null
// encode utf8
if (codePoint < 0x80) {
if ((units -= 1) < 0) break
bytes.push(codePoint)
} else if (codePoint < 0x800) {
if ((units -= 2) < 0) break
bytes.push(
codePoint >> 0x6 | 0xC0,
codePoint & 0x3F | 0x80
)
} else if (codePoint < 0x10000) {
if ((units -= 3) < 0) break
bytes.push(
codePoint >> 0xC | 0xE0,
codePoint >> 0x6 & 0x3F | 0x80,
codePoint & 0x3F | 0x80
)
} else if (codePoint < 0x110000) {
if ((units -= 4) < 0) break
bytes.push(
codePoint >> 0x12 | 0xF0,
codePoint >> 0xC & 0x3F | 0x80,
codePoint >> 0x6 & 0x3F | 0x80,
codePoint & 0x3F | 0x80
)
} else {
throw new Error('Invalid code point')
}
}
return bytes
}
function asciiToBytes (str) {
var byteArray = []
for (var i = 0; i < str.length; ++i) {
// Node's code seems to be doing this and not & 0x7F..
byteArray.push(str.charCodeAt(i) & 0xFF)
}
return byteArray
}
function utf16leToBytes (str, units) {
var c, hi, lo
var byteArray = []
for (var i = 0; i < str.length; ++i) {
if ((units -= 2) < 0) break
c = str.charCodeAt(i)
hi = c >> 8
lo = c % 256
byteArray.push(lo)
byteArray.push(hi)
}
return byteArray
}
function base64ToBytes (str) {
return base64.toByteArray(base64clean(str))
}
function blitBuffer (src, dst, offset, length) {
for (var i = 0; i < length; ++i) {
if ((i + offset >= dst.length) || (i >= src.length)) break
dst[i + offset] = src[i]
}
return i
}
function isnan (val) {
return val !== val // eslint-disable-line no-self-compare
}
/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
/***/ }),
/* 98 */
/***/ (function(module, exports) {
'use strict'
exports.byteLength = byteLength
exports.toByteArray = toByteArray
exports.fromByteArray = fromByteArray
var lookup = []
var revLookup = []
var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
for (var i = 0, len = code.length; i < len; ++i) {
lookup[i] = code[i]
revLookup[code.charCodeAt(i)] = i
}
// Support decoding URL-safe base64 strings, as Node.js does.
// See: https://en.wikipedia.org/wiki/Base64#URL_applications
revLookup['-'.charCodeAt(0)] = 62
revLookup['_'.charCodeAt(0)] = 63
function getLens (b64) {
var len = b64.length
if (len % 4 > 0) {
throw new Error('Invalid string. Length must be a multiple of 4')
}
// Trim off extra bytes after placeholder bytes are found
// See: https://github.com/beatgammit/base64-js/issues/42
var validLen = b64.indexOf('=')
if (validLen === -1) validLen = len
var placeHoldersLen = validLen === len
? 0
: 4 - (validLen % 4)
return [validLen, placeHoldersLen]
}
// base64 is 4/3 + up to two characters of the original data
function byteLength (b64) {
var lens = getLens(b64)
var validLen = lens[0]
var placeHoldersLen = lens[1]
return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen
}
function _byteLength (b64, validLen, placeHoldersLen) {
return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen
}
function toByteArray (b64) {
var tmp
var lens = getLens(b64)
var validLen = lens[0]
var placeHoldersLen = lens[1]
var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))
var curByte = 0
// if there are placeholders, only get up to the last complete 4 chars
var len = placeHoldersLen > 0
? validLen - 4
: validLen
var i
for (i = 0; i < len; i += 4) {
tmp =
(revLookup[b64.charCodeAt(i)] << 18) |
(revLookup[b64.charCodeAt(i + 1)] << 12) |
(revLookup[b64.charCodeAt(i + 2)] << 6) |
revLookup[b64.charCodeAt(i + 3)]
arr[curByte++] = (tmp >> 16) & 0xFF
arr[curByte++] = (tmp >> 8) & 0xFF
arr[curByte++] = tmp & 0xFF
}
if (placeHoldersLen === 2) {
tmp =
(revLookup[b64.charCodeAt(i)] << 2) |
(revLookup[b64.charCodeAt(i + 1)] >> 4)
arr[curByte++] = tmp & 0xFF
}
if (placeHoldersLen === 1) {
tmp =
(revLookup[b64.charCodeAt(i)] << 10) |
(revLookup[b64.charCodeAt(i + 1)] << 4) |
(revLookup[b64.charCodeAt(i + 2)] >> 2)
arr[curByte++] = (tmp >> 8) & 0xFF
arr[curByte++] = tmp & 0xFF
}
return arr
}
function tripletToBase64 (num) {
return lookup[num >> 18 & 0x3F] +
lookup[num >> 12 & 0x3F] +
lookup[num >> 6 & 0x3F] +
lookup[num & 0x3F]
}
function encodeChunk (uint8, start, end) {
var tmp
var output = []
for (var i = start; i < end; i += 3) {
tmp =
((uint8[i] << 16) & 0xFF0000) +
((uint8[i + 1] << 8) & 0xFF00) +
(uint8[i + 2] & 0xFF)
output.push(tripletToBase64(tmp))
}
return output.join('')
}
function fromByteArray (uint8) {
var tmp
var len = uint8.length
var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes
var parts = []
var maxChunkLength = 16383 // must be multiple of 3
// go through the array every three bytes, we'll deal with trailing stuff later
for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
parts.push(encodeChunk(
uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)
))
}
// pad the end with zeros, but make sure to not forget the extra bytes
if (extraBytes === 1) {
tmp = uint8[len - 1]
parts.push(
lookup[tmp >> 2] +
lookup[(tmp << 4) & 0x3F] +
'=='
)
} else if (extraBytes === 2) {
tmp = (uint8[len - 2] << 8) + uint8[len - 1]
parts.push(
lookup[tmp >> 10] +
lookup[(tmp >> 4) & 0x3F] +
lookup[(tmp << 2) & 0x3F] +
'='
)
}
return parts.join('')
}
/***/ }),
/* 99 */
/***/ (function(module, exports) {
exports.read = function (buffer, offset, isLE, mLen, nBytes) {
var e, m
var eLen = (nBytes * 8) - mLen - 1
var eMax = (1 << eLen) - 1
var eBias = eMax >> 1
var nBits = -7
var i = isLE ? (nBytes - 1) : 0
var d = isLE ? -1 : 1
var s = buffer[offset + i]
i += d
e = s & ((1 << (-nBits)) - 1)
s >>= (-nBits)
nBits += eLen
for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}
m = e & ((1 << (-nBits)) - 1)
e >>= (-nBits)
nBits += mLen
for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}
if (e === 0) {
e = 1 - eBias
} else if (e === eMax) {
return m ? NaN : ((s ? -1 : 1) * Infinity)
} else {
m = m + Math.pow(2, mLen)
e = e - eBias
}
return (s ? -1 : 1) * m * Math.pow(2, e - mLen)
}
exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
var e, m, c
var eLen = (nBytes * 8) - mLen - 1
var eMax = (1 << eLen) - 1
var eBias = eMax >> 1
var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)
var i = isLE ? 0 : (nBytes - 1)
var d = isLE ? 1 : -1
var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0
value = Math.abs(value)
if (isNaN(value) || value === Infinity) {
m = isNaN(value) ? 1 : 0
e = eMax
} else {
e = Math.floor(Math.log(value) / Math.LN2)
if (value * (c = Math.pow(2, -e)) < 1) {
e--
c *= 2
}
if (e + eBias >= 1) {
value += rt / c
} else {
value += rt * Math.pow(2, 1 - eBias)
}
if (value * c >= 2) {
e++
c /= 2
}
if (e + eBias >= eMax) {
m = 0
e = eMax
} else if (e + eBias >= 1) {
m = ((value * c) - 1) * Math.pow(2, mLen)
e = e + eBias
} else {
m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)
e = 0
}
}
for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}
e = (e << mLen) | m
eLen += mLen
for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}
buffer[offset + i - d] |= s * 128
}
/***/ }),
/* 100 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(Buffer) {// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
// NOTE: These type checking functions intentionally don't use `instanceof`
// because it is fragile and can be easily faked with `Object.create()`.
function isArray(arg) {
if (Array.isArray) {
return Array.isArray(arg);
}
return objectToString(arg) === '[object Array]';
}
exports.isArray = isArray;
function isBoolean(arg) {
return typeof arg === 'boolean';
}
exports.isBoolean = isBoolean;
function isNull(arg) {
return arg === null;
}
exports.isNull = isNull;
function isNullOrUndefined(arg) {
return arg == null;
}
exports.isNullOrUndefined = isNullOrUndefined;
function isNumber(arg) {
return typeof arg === 'number';
}
exports.isNumber = isNumber;
function isString(arg) {
return typeof arg === 'string';
}
exports.isString = isString;
function isSymbol(arg) {
return typeof arg === 'symbol';
}
exports.isSymbol = isSymbol;
function isUndefined(arg) {
return arg === void 0;
}
exports.isUndefined = isUndefined;
function isRegExp(re) {
return objectToString(re) === '[object RegExp]';
}
exports.isRegExp = isRegExp;
function isObject(arg) {
return typeof arg === 'object' && arg !== null;
}
exports.isObject = isObject;
function isDate(d) {
return objectToString(d) === '[object Date]';
}
exports.isDate = isDate;
function isError(e) {
return (objectToString(e) === '[object Error]' || e instanceof Error);
}
exports.isError = isError;
function isFunction(arg) {
return typeof arg === 'function';
}
exports.isFunction = isFunction;
function isPrimitive(arg) {
return arg === null ||
typeof arg === 'boolean' ||
typeof arg === 'number' ||
typeof arg === 'string' ||
typeof arg === 'symbol' || // ES6 symbol
typeof arg === 'undefined';
}
exports.isPrimitive = isPrimitive;
exports.isBuffer = Buffer.isBuffer;
function objectToString(o) {
return Object.prototype.toString.call(o);
}
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(97).Buffer))
/***/ }),
/* 101 */
/***/ (function(module, exports) {
/* (ignored) */
/***/ }),
/* 102 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var Buffer = __webpack_require__(96).Buffer;
var util = __webpack_require__(103);
function copyBuffer(src, target, offset) {
src.copy(target, offset);
}
module.exports = function () {
function BufferList() {
_classCallCheck(this, BufferList);
this.head = null;
this.tail = null;
this.length = 0;
}
BufferList.prototype.push = function push(v) {
var entry = { data: v, next: null };
if (this.length > 0) this.tail.next = entry;else this.head = entry;
this.tail = entry;
++this.length;
};
BufferList.prototype.unshift = function unshift(v) {
var entry = { data: v, next: this.head };
if (this.length === 0) this.tail = entry;
this.head = entry;
++this.length;
};
BufferList.prototype.shift = function shift() {
if (this.length === 0) return;
var ret = this.head.data;
if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;
--this.length;
return ret;
};
BufferList.prototype.clear = function clear() {
this.head = this.tail = null;
this.length = 0;
};
BufferList.prototype.join = function join(s) {
if (this.length === 0) return '';
var p = this.head;
var ret = '' + p.data;
while (p = p.next) {
ret += s + p.data;
}return ret;
};
BufferList.prototype.concat = function concat(n) {
if (this.length === 0) return Buffer.alloc(0);
if (this.length === 1) return this.head.data;
var ret = Buffer.allocUnsafe(n >>> 0);
var p = this.head;
var i = 0;
while (p) {
copyBuffer(p.data, ret, i);
i += p.data.length;
p = p.next;
}
return ret;
};
return BufferList;
}();
if (util && util.inspect && util.inspect.custom) {
module.exports.prototype[util.inspect.custom] = function () {
var obj = util.inspect({ length: this.length });
return this.constructor.name + ' ' + obj;
};
}
/***/ }),
/* 103 */
/***/ (function(module, exports) {
/* (ignored) */
/***/ }),
/* 104 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
/*<replacement>*/
var pna = __webpack_require__(93);
/*</replacement>*/
// undocumented cb() API, needed for core, not for public API
function destroy(err, cb) {
var _this = this;
var readableDestroyed = this._readableState && this._readableState.destroyed;
var writableDestroyed = this._writableState && this._writableState.destroyed;
if (readableDestroyed || writableDestroyed) {
if (cb) {
cb(err);
} else if (err && (!this._writableState || !this._writableState.errorEmitted)) {
pna.nextTick(emitErrorNT, this, err);
}
return this;
}
// we set destroyed to true before firing error callbacks in order
// to make it re-entrance safe in case destroy() is called within callbacks
if (this._readableState) {
this._readableState.destroyed = true;
}
// if this is a duplex stream mark the writable part as destroyed as well
if (this._writableState) {
this._writableState.destroyed = true;
}
this._destroy(err || null, function (err) {
if (!cb && err) {
pna.nextTick(emitErrorNT, _this, err);
if (_this._writableState) {
_this._writableState.errorEmitted = true;
}
} else if (cb) {
cb(err);
}
});
return this;
}
function undestroy() {
if (this._readableState) {
this._readableState.destroyed = false;
this._readableState.reading = false;
this._readableState.ended = false;
this._readableState.endEmitted = false;
}
if (this._writableState) {
this._writableState.destroyed = false;
this._writableState.ended = false;
this._writableState.ending = false;
this._writableState.finished = false;
this._writableState.errorEmitted = false;
}
}
function emitErrorNT(self, err) {
self.emit('error', err);
}
module.exports = {
destroy: destroy,
undestroy: undestroy
};
/***/ }),
/* 105 */
/***/ (function(module, exports, __webpack_require__) {
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
// a duplex stream is just a stream that is both readable and writable.
// Since JS doesn't have multiple prototypal inheritance, this class
// prototypally inherits from Readable, and then parasitically from
// Writable.
'use strict';
/*<replacement>*/
var pna = __webpack_require__(93);
/*</replacement>*/
/*<replacement>*/
var objectKeys = Object.keys || function (obj) {
var keys = [];
for (var key in obj) {
keys.push(key);
}return keys;
};
/*</replacement>*/
module.exports = Duplex;
/*<replacement>*/
var util = Object.create(__webpack_require__(100));
util.inherits = __webpack_require__(89);
/*</replacement>*/
var Readable = __webpack_require__(91);
var Writable = __webpack_require__(106);
util.inherits(Duplex, Readable);
{
// avoid scope creep, the keys array can then be collected
var keys = objectKeys(Writable.prototype);
for (var v = 0; v < keys.length; v++) {
var method = keys[v];
if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
}
}
function Duplex(options) {
if (!(this instanceof Duplex)) return new Duplex(options);
Readable.call(this, options);
Writable.call(this, options);
if (options && options.readable === false) this.readable = false;
if (options && options.writable === false) this.writable = false;
this.allowHalfOpen = true;
if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
this.once('end', onend);
}
Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', {
// making it explicit this property is not enumerable
// because otherwise some prototype manipulation in
// userland will fail
enumerable: false,
get: function () {
return this._writableState.highWaterMark;
}
});
// the no-half-open enforcer
function onend() {
// if we allow half-open state, or if the writable side ended,
// then we're ok.
if (this.allowHalfOpen || this._writableState.ended) return;
// no more data can be written.
// But allow more writes to happen in this tick.
pna.nextTick(onEndNT, this);
}
function onEndNT(self) {
self.end();
}
Object.defineProperty(Duplex.prototype, 'destroyed', {
get: function () {
if (this._readableState === undefined || this._writableState === undefined) {
return false;
}
return this._readableState.destroyed && this._writableState.destroyed;
},
set: function (value) {
// we ignore the value if the stream
// has not been initialized yet
if (this._readableState === undefined || this._writableState === undefined) {
return;
}
// backward compatibility, the user is explicitly
// managing destroyed
this._readableState.destroyed = value;
this._writableState.destroyed = value;
}
});
Duplex.prototype._destroy = function (err, cb) {
this.push(null);
this.end();
pna.nextTick(cb, err);
};
/***/ }),
/* 106 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(process, setImmediate, global) {// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
// A bit simpler than readable streams.
// Implement an async ._write(chunk, encoding, cb), and it'll handle all
// the drain event emission and buffering.
'use strict';
/*<replacement>*/
var pna = __webpack_require__(93);
/*</replacement>*/
module.exports = Writable;
/* <replacement> */
function WriteReq(chunk, encoding, cb) {
this.chunk = chunk;
this.encoding = encoding;
this.callback = cb;
this.next = null;
}
// It seems a linked list but it is not
// there will be only 2 of these for each stream
function CorkedRequest(state) {
var _this = this;
this.next = null;
this.entry = null;
this.finish = function () {
onCorkedFinish(_this, state);
};
}
/* </replacement> */
/*<replacement>*/
var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;
/*</replacement>*/
/*<replacement>*/
var Duplex;
/*</replacement>*/
Writable.WritableState = WritableState;
/*<replacement>*/
var util = Object.create(__webpack_require__(100));
util.inherits = __webpack_require__(89);
/*</replacement>*/
/*<replacement>*/
var internalUtil = {
deprecate: __webpack_require__(109)
};
/*</replacement>*/
/*<replacement>*/
var Stream = __webpack_require__(95);
/*</replacement>*/
/*<replacement>*/
var Buffer = __webpack_require__(96).Buffer;
var OurUint8Array = global.Uint8Array || function () {};
function _uint8ArrayToBuffer(chunk) {
return Buffer.from(chunk);
}
function _isUint8Array(obj) {
return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
}
/*</replacement>*/
var destroyImpl = __webpack_require__(104);
util.inherits(Writable, Stream);
function nop() {}
function WritableState(options, stream) {
Duplex = Duplex || __webpack_require__(105);
options = options || {};
// Duplex streams are both readable and writable, but share
// the same options object.
// However, some cases require setting options to different
// values for the readable and the writable sides of the duplex stream.
// These options can be provided separately as readableXXX and writableXXX.
var isDuplex = stream instanceof Duplex;
// object stream flag to indicate whether or not this stream
// contains buffers or objects.
this.objectMode = !!options.objectMode;
if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
// the point at which write() starts returning false
// Note: 0 is a valid value, means that we always return false if
// the entire buffer is not flushed immediately on write()
var hwm = options.highWaterMark;
var writableHwm = options.writableHighWaterMark;
var defaultHwm = this.objectMode ? 16 : 16 * 1024;
if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;
// cast to ints.
this.highWaterMark = Math.floor(this.highWaterMark);
// if _final has been called
this.finalCalled = false;
// drain event flag.
this.needDrain = false;
// at the start of calling end()
this.ending = false;
// when end() has been called, and returned
this.ended = false;
// when 'finish' is emitted
this.finished = false;
// has it been destroyed
this.destroyed = false;
// should we decode strings into buffers before passing to _write?
// this is here so that some node-core streams can optimize string
// handling at a lower level.
var noDecode = options.decodeStrings === false;
this.decodeStrings = !noDecode;
// Crypto is kind of old and crusty. Historically, its default string
// encoding is 'binary' so we have to make this configurable.
// Everything else in the universe uses 'utf8', though.
this.defaultEncoding = options.defaultEncoding || 'utf8';
// not an actual buffer we keep track of, but a measurement
// of how much we're waiting to get pushed to some underlying
// socket or file.
this.length = 0;
// a flag to see when we're in the middle of a write.
this.writing = false;
// when true all writes will be buffered until .uncork() call
this.corked = 0;
// a flag to be able to tell if the onwrite cb is called immediately,
// or on a later tick. We set this to true at first, because any
// actions that shouldn't happen until "later" should generally also
// not happen before the first write call.
this.sync = true;
// a flag to know if we're processing previously buffered items, which
// may call the _write() callback in the same tick, so that we don't
// end up in an overlapped onwrite situation.
this.bufferProcessing = false;
// the callback that's passed to _write(chunk,cb)
this.onwrite = function (er) {
onwrite(stream, er);
};
// the callback that the user supplies to write(chunk,encoding,cb)
this.writecb = null;
// the amount that is being written when _write is called.
this.writelen = 0;
this.bufferedRequest = null;
this.lastBufferedRequest = null;
// number of pending user-supplied write callbacks
// this must be 0 before 'finish' can be emitted
this.pendingcb = 0;
// emit prefinish if the only thing we're waiting for is _write cbs
// This is relevant for synchronous Transform streams
this.prefinished = false;
// True if the error was already emitted and should not be thrown again
this.errorEmitted = false;
// count buffered requests
this.bufferedRequestCount = 0;
// allocate the first CorkedRequest, there is always
// one allocated and free to use, and we maintain at most two
this.corkedRequestsFree = new CorkedRequest(this);
}
WritableState.prototype.getBuffer = function getBuffer() {
var current = this.bufferedRequest;
var out = [];
while (current) {
out.push(current);
current = current.next;
}
return out;
};
(function () {
try {
Object.defineProperty(WritableState.prototype, 'buffer', {
get: internalUtil.deprecate(function () {
return this.getBuffer();
}, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')
});
} catch (_) {}
})();
// Test _writableState for inheritance to account for Duplex streams,
// whose prototype chain only points to Readable.
var realHasInstance;
if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {
realHasInstance = Function.prototype[Symbol.hasInstance];
Object.defineProperty(Writable, Symbol.hasInstance, {
value: function (object) {
if (realHasInstance.call(this, object)) return true;
if (this !== Writable) return false;
return object && object._writableState instanceof WritableState;
}
});
} else {
realHasInstance = function (object) {
return object instanceof this;
};
}
function Writable(options) {
Duplex = Duplex || __webpack_require__(105);
// Writable ctor is applied to Duplexes, too.
// `realHasInstance` is necessary because using plain `instanceof`
// would return false, as no `_writableState` property is attached.
// Trying to use the custom `instanceof` for Writable here will also break the
// Node.js LazyTransform implementation, which has a non-trivial getter for
// `_writableState` that would lead to infinite recursion.
if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {
return new Writable(options);
}
this._writableState = new WritableState(options, this);
// legacy.
this.writable = true;
if (options) {
if (typeof options.write === 'function') this._write = options.write;
if (typeof options.writev === 'function') this._writev = options.writev;
if (typeof options.destroy === 'function') this._destroy = options.destroy;
if (typeof options.final === 'function') this._final = options.final;
}
Stream.call(this);
}
// Otherwise people can pipe Writable streams, which is just wrong.
Writable.prototype.pipe = function () {
this.emit('error', new Error('Cannot pipe, not readable'));
};
function writeAfterEnd(stream, cb) {
var er = new Error('write after end');
// TODO: defer error events consistently everywhere, not just the cb
stream.emit('error', er);
pna.nextTick(cb, er);
}
// Checks that a user-supplied chunk is valid, especially for the particular
// mode the stream is in. Currently this means that `null` is never accepted
// and undefined/non-string values are only allowed in object mode.
function validChunk(stream, state, chunk, cb) {
var valid = true;
var er = false;
if (chunk === null) {
er = new TypeError('May not write null values to stream');
} else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
er = new TypeError('Invalid non-string/buffer chunk');
}
if (er) {
stream.emit('error', er);
pna.nextTick(cb, er);
valid = false;
}
return valid;
}
Writable.prototype.write = function (chunk, encoding, cb) {
var state = this._writableState;
var ret = false;
var isBuf = !state.objectMode && _isUint8Array(chunk);
if (isBuf && !Buffer.isBuffer(chunk)) {
chunk = _uint8ArrayToBuffer(chunk);
}
if (typeof encoding === 'function') {
cb = encoding;
encoding = null;
}
if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
if (typeof cb !== 'function') cb = nop;
if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {
state.pendingcb++;
ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);
}
return ret;
};
Writable.prototype.cork = function () {
var state = this._writableState;
state.corked++;
};
Writable.prototype.uncork = function () {
var state = this._writableState;
if (state.corked) {
state.corked--;
if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
}
};
Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
// node::ParseEncoding() requires lower case.
if (typeof encoding === 'string') encoding = encoding.toLowerCase();
if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);
this._writableState.defaultEncoding = encoding;
return this;
};
function decodeChunk(state, chunk, encoding) {
if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
chunk = Buffer.from(chunk, encoding);
}
return chunk;
}
Object.defineProperty(Writable.prototype, 'writableHighWaterMark', {
// making it explicit this property is not enumerable
// because otherwise some prototype manipulation in
// userland will fail
enumerable: false,
get: function () {
return this._writableState.highWaterMark;
}
});
// if we're already writing something, then just put this
// in the queue, and wait our turn. Otherwise, call _write
// If we return false, then we need a drain event, so set that flag.
function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {
if (!isBuf) {
var newChunk = decodeChunk(state, chunk, encoding);
if (chunk !== newChunk) {
isBuf = true;
encoding = 'buffer';
chunk = newChunk;
}
}
var len = state.objectMode ? 1 : chunk.length;
state.length += len;
var ret = state.length < state.highWaterMark;
// we must ensure that previous needDrain will not be reset to false.
if (!ret) state.needDrain = true;
if (state.writing || state.corked) {
var last = state.lastBufferedRequest;
state.lastBufferedRequest = {
chunk: chunk,
encoding: encoding,
isBuf: isBuf,
callback: cb,
next: null
};
if (last) {
last.next = state.lastBufferedRequest;
} else {
state.bufferedRequest = state.lastBufferedRequest;
}
state.bufferedRequestCount += 1;
} else {
doWrite(stream, state, false, len, chunk, encoding, cb);
}
return ret;
}
function doWrite(stream, state, writev, len, chunk, encoding, cb) {
state.writelen = len;
state.writecb = cb;
state.writing = true;
state.sync = true;
if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
state.sync = false;
}
function onwriteError(stream, state, sync, er, cb) {
--state.pendingcb;
if (sync) {
// defer the callback if we are being called synchronously
// to avoid piling up things on the stack
pna.nextTick(cb, er);
// this can emit finish, and it will always happen
// after error
pna.nextTick(finishMaybe, stream, state);
stream._writableState.errorEmitted = true;
stream.emit('error', er);
} else {
// the caller expect this to happen before if
// it is async
cb(er);
stream._writableState.errorEmitted = true;
stream.emit('error', er);
// this can emit finish, but finish must
// always follow error
finishMaybe(stream, state);
}
}
function onwriteStateUpdate(state) {
state.writing = false;
state.writecb = null;
state.length -= state.writelen;
state.writelen = 0;
}
function onwrite(stream, er) {
var state = stream._writableState;
var sync = state.sync;
var cb = state.writecb;
onwriteStateUpdate(state);
if (er) onwriteError(stream, state, sync, er, cb);else {
// Check if we're actually ready to finish, but don't emit yet
var finished = needFinish(state);
if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
clearBuffer(stream, state);
}
if (sync) {
/*<replacement>*/
asyncWrite(afterWrite, stream, state, finished, cb);
/*</replacement>*/
} else {
afterWrite(stream, state, finished, cb);
}
}
}
function afterWrite(stream, state, finished, cb) {
if (!finished) onwriteDrain(stream, state);
state.pendingcb--;
cb();
finishMaybe(stream, state);
}
// Must force callback to be called on nextTick, so that we don't
// emit 'drain' before the write() consumer gets the 'false' return
// value, and has a chance to attach a 'drain' listener.
function onwriteDrain(stream, state) {
if (state.length === 0 && state.needDrain) {
state.needDrain = false;
stream.emit('drain');
}
}
// if there's something in the buffer waiting, then process it
function clearBuffer(stream, state) {
state.bufferProcessing = true;
var entry = state.bufferedRequest;
if (stream._writev && entry && entry.next) {
// Fast case, write everything using _writev()
var l = state.bufferedRequestCount;
var buffer = new Array(l);
var holder = state.corkedRequestsFree;
holder.entry = entry;
var count = 0;
var allBuffers = true;
while (entry) {
buffer[count] = entry;
if (!entry.isBuf) allBuffers = false;
entry = entry.next;
count += 1;
}
buffer.allBuffers = allBuffers;
doWrite(stream, state, true, state.length, buffer, '', holder.finish);
// doWrite is almost always async, defer these to save a bit of time
// as the hot path ends with doWrite
state.pendingcb++;
state.lastBufferedRequest = null;
if (holder.next) {
state.corkedRequestsFree = holder.next;
holder.next = null;
} else {
state.corkedRequestsFree = new CorkedRequest(state);
}
state.bufferedRequestCount = 0;
} else {
// Slow case, write chunks one-by-one
while (entry) {
var chunk = entry.chunk;
var encoding = entry.encoding;
var cb = entry.callback;
var len = state.objectMode ? 1 : chunk.length;
doWrite(stream, state, false, len, chunk, encoding, cb);
entry = entry.next;
state.bufferedRequestCount--;
// if we didn't call the onwrite immediately, then
// it means that we need to wait until it does.
// also, that means that the chunk and cb are currently
// being processed, so move the buffer counter past them.
if (state.writing) {
break;
}
}
if (entry === null) state.lastBufferedRequest = null;
}
state.bufferedRequest = entry;
state.bufferProcessing = false;
}
Writable.prototype._write = function (chunk, encoding, cb) {
cb(new Error('_write() is not implemented'));
};
Writable.prototype._writev = null;
Writable.prototype.end = function (chunk, encoding, cb) {
var state = this._writableState;
if (typeof chunk === 'function') {
cb = chunk;
chunk = null;
encoding = null;
} else if (typeof encoding === 'function') {
cb = encoding;
encoding = null;
}
if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
// .end() fully uncorks
if (state.corked) {
state.corked = 1;
this.uncork();
}
// ignore unnecessary end() calls.
if (!state.ending && !state.finished) endWritable(this, state, cb);
};
function needFinish(state) {
return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;
}
function callFinal(stream, state) {
stream._final(function (err) {
state.pendingcb--;
if (err) {
stream.emit('error', err);
}
state.prefinished = true;
stream.emit('prefinish');
finishMaybe(stream, state);
});
}
function prefinish(stream, state) {
if (!state.prefinished && !state.finalCalled) {
if (typeof stream._final === 'function') {
state.pendingcb++;
state.finalCalled = true;
pna.nextTick(callFinal, stream, state);
} else {
state.prefinished = true;
stream.emit('prefinish');
}
}
}
function finishMaybe(stream, state) {
var need = needFinish(state);
if (need) {
prefinish(stream, state);
if (state.pendingcb === 0) {
state.finished = true;
stream.emit('finish');
}
}
return need;
}
function endWritable(stream, state, cb) {
state.ending = true;
finishMaybe(stream, state);
if (cb) {
if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);
}
state.ended = true;
stream.writable = false;
}
function onCorkedFinish(corkReq, state, err) {
var entry = corkReq.entry;
corkReq.entry = null;
while (entry) {
var cb = entry.callback;
state.pendingcb--;
cb(err);
entry = entry.next;
}
if (state.corkedRequestsFree) {
state.corkedRequestsFree.next = corkReq;
} else {
state.corkedRequestsFree = corkReq;
}
}
Object.defineProperty(Writable.prototype, 'destroyed', {
get: function () {
if (this._writableState === undefined) {
return false;
}
return this._writableState.destroyed;
},
set: function (value) {
// we ignore the value if the stream
// has not been initialized yet
if (!this._writableState) {
return;
}
// backward compatibility, the user is explicitly
// managing destroyed
this._writableState.destroyed = value;
}
});
Writable.prototype.destroy = destroyImpl.destroy;
Writable.prototype._undestroy = destroyImpl.undestroy;
Writable.prototype._destroy = function (err, cb) {
this.end();
cb(err);
};
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(92), __webpack_require__(107).setImmediate, (function() { return this; }())))
/***/ }),
/* 107 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {var scope = (typeof global !== "undefined" && global) ||
(typeof self !== "undefined" && self) ||
window;
var apply = Function.prototype.apply;
// DOM APIs, for completeness
exports.setTimeout = function() {
return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);
};
exports.setInterval = function() {
return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);
};
exports.clearTimeout =
exports.clearInterval = function(timeout) {
if (timeout) {
timeout.close();
}
};
function Timeout(id, clearFn) {
this._id = id;
this._clearFn = clearFn;
}
Timeout.prototype.unref = Timeout.prototype.ref = function() {};
Timeout.prototype.close = function() {
this._clearFn.call(scope, this._id);
};
// Does not start the time, just sets up the members needed.
exports.enroll = function(item, msecs) {
clearTimeout(item._idleTimeoutId);
item._idleTimeout = msecs;
};
exports.unenroll = function(item) {
clearTimeout(item._idleTimeoutId);
item._idleTimeout = -1;
};
exports._unrefActive = exports.active = function(item) {
clearTimeout(item._idleTimeoutId);
var msecs = item._idleTimeout;
if (msecs >= 0) {
item._idleTimeoutId = setTimeout(function onTimeout() {
if (item._onTimeout)
item._onTimeout();
}, msecs);
}
};
// setimmediate attaches itself to the global object
__webpack_require__(108);
// On some exotic environments, it's not clear which object `setimmediate` was
// able to install onto. Search each possibility in the same order as the
// `setimmediate` library.
exports.setImmediate = (typeof self !== "undefined" && self.setImmediate) ||
(typeof global !== "undefined" && global.setImmediate) ||
(this && this.setImmediate);
exports.clearImmediate = (typeof self !== "undefined" && self.clearImmediate) ||
(typeof global !== "undefined" && global.clearImmediate) ||
(this && this.clearImmediate);
/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
/***/ }),
/* 108 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global, process) {(function (global, undefined) {
"use strict";
if (global.setImmediate) {
return;
}
var nextHandle = 1; // Spec says greater than zero
var tasksByHandle = {};
var currentlyRunningATask = false;
var doc = global.document;
var registerImmediate;
function setImmediate(callback) {
// Callback can either be a function or a string
if (typeof callback !== "function") {
callback = new Function("" + callback);
}
// Copy function arguments
var args = new Array(arguments.length - 1);
for (var i = 0; i < args.length; i++) {
args[i] = arguments[i + 1];
}
// Store and register the task
var task = { callback: callback, args: args };
tasksByHandle[nextHandle] = task;
registerImmediate(nextHandle);
return nextHandle++;
}
function clearImmediate(handle) {
delete tasksByHandle[handle];
}
function run(task) {
var callback = task.callback;
var args = task.args;
switch (args.length) {
case 0:
callback();
break;
case 1:
callback(args[0]);
break;
case 2:
callback(args[0], args[1]);
break;
case 3:
callback(args[0], args[1], args[2]);
break;
default:
callback.apply(undefined, args);
break;
}
}
function runIfPresent(handle) {
// From the spec: "Wait until any invocations of this algorithm started before this one have completed."
// So if we're currently running a task, we'll need to delay this invocation.
if (currentlyRunningATask) {
// Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a
// "too much recursion" error.
setTimeout(runIfPresent, 0, handle);
} else {
var task = tasksByHandle[handle];
if (task) {
currentlyRunningATask = true;
try {
run(task);
} finally {
clearImmediate(handle);
currentlyRunningATask = false;
}
}
}
}
function installNextTickImplementation() {
registerImmediate = function(handle) {
process.nextTick(function () { runIfPresent(handle); });
};
}
function canUsePostMessage() {
// The test against `importScripts` prevents this implementation from being installed inside a web worker,
// where `global.postMessage` means something completely different and can't be used for this purpose.
if (global.postMessage && !global.importScripts) {
var postMessageIsAsynchronous = true;
var oldOnMessage = global.onmessage;
global.onmessage = function() {
postMessageIsAsynchronous = false;
};
global.postMessage("", "*");
global.onmessage = oldOnMessage;
return postMessageIsAsynchronous;
}
}
function installPostMessageImplementation() {
// Installs an event handler on `global` for the `message` event: see
// * https://developer.mozilla.org/en/DOM/window.postMessage
// * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages
var messagePrefix = "setImmediate$" + Math.random() + "$";
var onGlobalMessage = function(event) {
if (event.source === global &&
typeof event.data === "string" &&
event.data.indexOf(messagePrefix) === 0) {
runIfPresent(+event.data.slice(messagePrefix.length));
}
};
if (global.addEventListener) {
global.addEventListener("message", onGlobalMessage, false);
} else {
global.attachEvent("onmessage", onGlobalMessage);
}
registerImmediate = function(handle) {
global.postMessage(messagePrefix + handle, "*");
};
}
function installMessageChannelImplementation() {
var channel = new MessageChannel();
channel.port1.onmessage = function(event) {
var handle = event.data;
runIfPresent(handle);
};
registerImmediate = function(handle) {
channel.port2.postMessage(handle);
};
}
function installReadyStateChangeImplementation() {
var html = doc.documentElement;
registerImmediate = function(handle) {
// Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted
// into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.
var script = doc.createElement("script");
script.onreadystatechange = function () {
runIfPresent(handle);
script.onreadystatechange = null;
html.removeChild(script);
script = null;
};
html.appendChild(script);
};
}
function installSetTimeoutImplementation() {
registerImmediate = function(handle) {
setTimeout(runIfPresent, 0, handle);
};
}
// If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.
var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);
attachTo = attachTo && attachTo.setTimeout ? attachTo : global;
// Don't get fooled by e.g. browserify environments.
if ({}.toString.call(global.process) === "[object process]") {
// For Node.js before 0.9
installNextTickImplementation();
} else if (canUsePostMessage()) {
// For non-IE10 modern browsers
installPostMessageImplementation();
} else if (global.MessageChannel) {
// For web workers, where supported
installMessageChannelImplementation();
} else if (doc && "onreadystatechange" in doc.createElement("script")) {
// For IE 68
installReadyStateChangeImplementation();
} else {
// For older browsers
installSetTimeoutImplementation();
}
attachTo.setImmediate = setImmediate;
attachTo.clearImmediate = clearImmediate;
}(typeof self === "undefined" ? typeof global === "undefined" ? this : global : self));
/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()), __webpack_require__(92)))
/***/ }),
/* 109 */
/***/ (function(module, exports) {
/* WEBPACK VAR INJECTION */(function(global) {
/**
* Module exports.
*/
module.exports = deprecate;
/**
* Mark that a method should not be used.
* Returns a modified function which warns once by default.
*
* If `localStorage.noDeprecation = true` is set, then it is a no-op.
*
* If `localStorage.throwDeprecation = true` is set, then deprecated functions
* will throw an Error when invoked.
*
* If `localStorage.traceDeprecation = true` is set, then deprecated functions
* will invoke `console.trace()` instead of `console.error()`.
*
* @param {Function} fn - the function to deprecate
* @param {String} msg - the string to print to the console when `fn` is invoked
* @returns {Function} a new "deprecated" version of `fn`
* @api public
*/
function deprecate (fn, msg) {
if (config('noDeprecation')) {
return fn;
}
var warned = false;
function deprecated() {
if (!warned) {
if (config('throwDeprecation')) {
throw new Error(msg);
} else if (config('traceDeprecation')) {
console.trace(msg);
} else {
console.warn(msg);
}
warned = true;
}
return fn.apply(this, arguments);
}
return deprecated;
}
/**
* Checks `localStorage` for boolean values for the given `name`.
*
* @param {String} name
* @returns {Boolean}
* @api private
*/
function config (name) {
// accessing global.localStorage can trigger a DOMException in sandboxed iframes
try {
if (!global.localStorage) return false;
} catch (_) {
return false;
}
var val = global.localStorage[name];
if (null == val) return false;
return String(val).toLowerCase() === 'true';
}
/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
/***/ }),
/* 110 */
/***/ (function(module, exports, __webpack_require__) {
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
'use strict';
/*<replacement>*/
var Buffer = __webpack_require__(96).Buffer;
/*</replacement>*/
var isEncoding = Buffer.isEncoding || function (encoding) {
encoding = '' + encoding;
switch (encoding && encoding.toLowerCase()) {
case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':
return true;
default:
return false;
}
};
function _normalizeEncoding(enc) {
if (!enc) return 'utf8';
var retried;
while (true) {
switch (enc) {
case 'utf8':
case 'utf-8':
return 'utf8';
case 'ucs2':
case 'ucs-2':
case 'utf16le':
case 'utf-16le':
return 'utf16le';
case 'latin1':
case 'binary':
return 'latin1';
case 'base64':
case 'ascii':
case 'hex':
return enc;
default:
if (retried) return; // undefined
enc = ('' + enc).toLowerCase();
retried = true;
}
}
};
// Do not cache `Buffer.isEncoding` when checking encoding names as some
// modules monkey-patch it to support additional encodings
function normalizeEncoding(enc) {
var nenc = _normalizeEncoding(enc);
if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);
return nenc || enc;
}
// StringDecoder provides an interface for efficiently splitting a series of
// buffers into a series of JS strings without breaking apart multi-byte
// characters.
exports.StringDecoder = StringDecoder;
function StringDecoder(encoding) {
this.encoding = normalizeEncoding(encoding);
var nb;
switch (this.encoding) {
case 'utf16le':
this.text = utf16Text;
this.end = utf16End;
nb = 4;
break;
case 'utf8':
this.fillLast = utf8FillLast;
nb = 4;
break;
case 'base64':
this.text = base64Text;
this.end = base64End;
nb = 3;
break;
default:
this.write = simpleWrite;
this.end = simpleEnd;
return;
}
this.lastNeed = 0;
this.lastTotal = 0;
this.lastChar = Buffer.allocUnsafe(nb);
}
StringDecoder.prototype.write = function (buf) {
if (buf.length === 0) return '';
var r;
var i;
if (this.lastNeed) {
r = this.fillLast(buf);
if (r === undefined) return '';
i = this.lastNeed;
this.lastNeed = 0;
} else {
i = 0;
}
if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);
return r || '';
};
StringDecoder.prototype.end = utf8End;
// Returns only complete characters in a Buffer
StringDecoder.prototype.text = utf8Text;
// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer
StringDecoder.prototype.fillLast = function (buf) {
if (this.lastNeed <= buf.length) {
buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);
return this.lastChar.toString(this.encoding, 0, this.lastTotal);
}
buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);
this.lastNeed -= buf.length;
};
// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a
// continuation byte. If an invalid byte is detected, -2 is returned.
function utf8CheckByte(byte) {
if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;
return byte >> 6 === 0x02 ? -1 : -2;
}
// Checks at most 3 bytes at the end of a Buffer in order to detect an
// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)
// needed to complete the UTF-8 character (if applicable) are returned.
function utf8CheckIncomplete(self, buf, i) {
var j = buf.length - 1;
if (j < i) return 0;
var nb = utf8CheckByte(buf[j]);
if (nb >= 0) {
if (nb > 0) self.lastNeed = nb - 1;
return nb;
}
if (--j < i || nb === -2) return 0;
nb = utf8CheckByte(buf[j]);
if (nb >= 0) {
if (nb > 0) self.lastNeed = nb - 2;
return nb;
}
if (--j < i || nb === -2) return 0;
nb = utf8CheckByte(buf[j]);
if (nb >= 0) {
if (nb > 0) {
if (nb === 2) nb = 0;else self.lastNeed = nb - 3;
}
return nb;
}
return 0;
}
// Validates as many continuation bytes for a multi-byte UTF-8 character as
// needed or are available. If we see a non-continuation byte where we expect
// one, we "replace" the validated continuation bytes we've seen so far with
// a single UTF-8 replacement character ('\ufffd'), to match v8's UTF-8 decoding
// behavior. The continuation byte check is included three times in the case
// where all of the continuation bytes for a character exist in the same buffer.
// It is also done this way as a slight performance increase instead of using a
// loop.
function utf8CheckExtraBytes(self, buf, p) {
if ((buf[0] & 0xC0) !== 0x80) {
self.lastNeed = 0;
return '\ufffd';
}
if (self.lastNeed > 1 && buf.length > 1) {
if ((buf[1] & 0xC0) !== 0x80) {
self.lastNeed = 1;
return '\ufffd';
}
if (self.lastNeed > 2 && buf.length > 2) {
if ((buf[2] & 0xC0) !== 0x80) {
self.lastNeed = 2;
return '\ufffd';
}
}
}
}
// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.
function utf8FillLast(buf) {
var p = this.lastTotal - this.lastNeed;
var r = utf8CheckExtraBytes(this, buf, p);
if (r !== undefined) return r;
if (this.lastNeed <= buf.length) {
buf.copy(this.lastChar, p, 0, this.lastNeed);
return this.lastChar.toString(this.encoding, 0, this.lastTotal);
}
buf.copy(this.lastChar, p, 0, buf.length);
this.lastNeed -= buf.length;
}
// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a
// partial character, the character's bytes are buffered until the required
// number of bytes are available.
function utf8Text(buf, i) {
var total = utf8CheckIncomplete(this, buf, i);
if (!this.lastNeed) return buf.toString('utf8', i);
this.lastTotal = total;
var end = buf.length - (total - this.lastNeed);
buf.copy(this.lastChar, 0, end);
return buf.toString('utf8', i, end);
}
// For UTF-8, a replacement character is added when ending on a partial
// character.
function utf8End(buf) {
var r = buf && buf.length ? this.write(buf) : '';
if (this.lastNeed) return r + '\ufffd';
return r;
}
// UTF-16LE typically needs two bytes per character, but even if we have an even
// number of bytes available, we need to check if we end on a leading/high
// surrogate. In that case, we need to wait for the next two bytes in order to
// decode the last character properly.
function utf16Text(buf, i) {
if ((buf.length - i) % 2 === 0) {
var r = buf.toString('utf16le', i);
if (r) {
var c = r.charCodeAt(r.length - 1);
if (c >= 0xD800 && c <= 0xDBFF) {
this.lastNeed = 2;
this.lastTotal = 4;
this.lastChar[0] = buf[buf.length - 2];
this.lastChar[1] = buf[buf.length - 1];
return r.slice(0, -1);
}
}
return r;
}
this.lastNeed = 1;
this.lastTotal = 2;
this.lastChar[0] = buf[buf.length - 1];
return buf.toString('utf16le', i, buf.length - 1);
}
// For UTF-16LE we do not explicitly append special replacement characters if we
// end on a partial character, we simply let v8 handle that.
function utf16End(buf) {
var r = buf && buf.length ? this.write(buf) : '';
if (this.lastNeed) {
var end = this.lastTotal - this.lastNeed;
return r + this.lastChar.toString('utf16le', 0, end);
}
return r;
}
function base64Text(buf, i) {
var n = (buf.length - i) % 3;
if (n === 0) return buf.toString('base64', i);
this.lastNeed = 3 - n;
this.lastTotal = 3;
if (n === 1) {
this.lastChar[0] = buf[buf.length - 1];
} else {
this.lastChar[0] = buf[buf.length - 2];
this.lastChar[1] = buf[buf.length - 1];
}
return buf.toString('base64', i, buf.length - n);
}
function base64End(buf) {
var r = buf && buf.length ? this.write(buf) : '';
if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);
return r;
}
// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)
function simpleWrite(buf) {
return buf.toString(this.encoding);
}
function simpleEnd(buf) {
return buf && buf.length ? this.write(buf) : '';
}
/***/ }),
/* 111 */
/***/ (function(module, exports, __webpack_require__) {
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
// a transform stream is a readable/writable stream where you do
// something with the data. Sometimes it's called a "filter",
// but that's not a great name for it, since that implies a thing where
// some bits pass through, and others are simply ignored. (That would
// be a valid example of a transform, of course.)
//
// While the output is causally related to the input, it's not a
// necessarily symmetric or synchronous transformation. For example,
// a zlib stream might take multiple plain-text writes(), and then
// emit a single compressed chunk some time in the future.
//
// Here's how this works:
//
// The Transform stream has all the aspects of the readable and writable
// stream classes. When you write(chunk), that calls _write(chunk,cb)
// internally, and returns false if there's a lot of pending writes
// buffered up. When you call read(), that calls _read(n) until
// there's enough pending readable data buffered up.
//
// In a transform stream, the written data is placed in a buffer. When
// _read(n) is called, it transforms the queued up data, calling the
// buffered _write cb's as it consumes chunks. If consuming a single
// written chunk would result in multiple output chunks, then the first
// outputted bit calls the readcb, and subsequent chunks just go into
// the read buffer, and will cause it to emit 'readable' if necessary.
//
// This way, back-pressure is actually determined by the reading side,
// since _read has to be called to start processing a new chunk. However,
// a pathological inflate type of transform can cause excessive buffering
// here. For example, imagine a stream where every byte of input is
// interpreted as an integer from 0-255, and then results in that many
// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in
// 1kb of data being output. In this case, you could write a very small
// amount of input, and end up with a very large amount of output. In
// such a pathological inflating mechanism, there'd be no way to tell
// the system to stop doing the transform. A single 4MB write could
// cause the system to run out of memory.
//
// However, even in such a pathological case, only a single written chunk
// would be consumed, and then the rest would wait (un-transformed) until
// the results of the previous transformed chunk were consumed.
'use strict';
module.exports = Transform;
var Duplex = __webpack_require__(105);
/*<replacement>*/
var util = Object.create(__webpack_require__(100));
util.inherits = __webpack_require__(89);
/*</replacement>*/
util.inherits(Transform, Duplex);
function afterTransform(er, data) {
var ts = this._transformState;
ts.transforming = false;
var cb = ts.writecb;
if (!cb) {
return this.emit('error', new Error('write callback called multiple times'));
}
ts.writechunk = null;
ts.writecb = null;
if (data != null) // single equals check for both `null` and `undefined`
this.push(data);
cb(er);
var rs = this._readableState;
rs.reading = false;
if (rs.needReadable || rs.length < rs.highWaterMark) {
this._read(rs.highWaterMark);
}
}
function Transform(options) {
if (!(this instanceof Transform)) return new Transform(options);
Duplex.call(this, options);
this._transformState = {
afterTransform: afterTransform.bind(this),
needTransform: false,
transforming: false,
writecb: null,
writechunk: null,
writeencoding: null
};
// start out asking for a readable event once data is transformed.
this._readableState.needReadable = true;
// we have implemented the _read method, and done the other things
// that Readable wants before the first _read call, so unset the
// sync guard flag.
this._readableState.sync = false;
if (options) {
if (typeof options.transform === 'function') this._transform = options.transform;
if (typeof options.flush === 'function') this._flush = options.flush;
}
// When the writable side finishes, then flush out anything remaining.
this.on('prefinish', prefinish);
}
function prefinish() {
var _this = this;
if (typeof this._flush === 'function') {
this._flush(function (er, data) {
done(_this, er, data);
});
} else {
done(this, null, null);
}
}
Transform.prototype.push = function (chunk, encoding) {
this._transformState.needTransform = false;
return Duplex.prototype.push.call(this, chunk, encoding);
};
// This is the part where you do stuff!
// override this function in implementation classes.
// 'chunk' is an input chunk.
//
// Call `push(newChunk)` to pass along transformed output
// to the readable side. You may call 'push' zero or more times.
//
// Call `cb(err)` when you are done with this chunk. If you pass
// an error, then that'll put the hurt on the whole operation. If you
// never call cb(), then you'll never get another chunk.
Transform.prototype._transform = function (chunk, encoding, cb) {
throw new Error('_transform() is not implemented');
};
Transform.prototype._write = function (chunk, encoding, cb) {
var ts = this._transformState;
ts.writecb = cb;
ts.writechunk = chunk;
ts.writeencoding = encoding;
if (!ts.transforming) {
var rs = this._readableState;
if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
}
};
// Doesn't matter what the args are here.
// _transform does all the work.
// That we got here means that the readable side wants more data.
Transform.prototype._read = function (n) {
var ts = this._transformState;
if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
ts.transforming = true;
this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
} else {
// mark that we need a transform, so that any data that comes in
// will get processed, now that we've asked for it.
ts.needTransform = true;
}
};
Transform.prototype._destroy = function (err, cb) {
var _this2 = this;
Duplex.prototype._destroy.call(this, err, function (err2) {
cb(err2);
_this2.emit('close');
});
};
function done(stream, er, data) {
if (er) return stream.emit('error', er);
if (data != null) // single equals check for both `null` and `undefined`
stream.push(data);
// if there's nothing in the write buffer, then that means
// that nothing more will ever be provided
if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');
if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');
return stream.push(null);
}
/***/ }),
/* 112 */
/***/ (function(module, exports, __webpack_require__) {
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
// a passthrough stream.
// basically just the most minimal sort of Transform stream.
// Every written chunk gets output as-is.
'use strict';
module.exports = PassThrough;
var Transform = __webpack_require__(111);
/*<replacement>*/
var util = Object.create(__webpack_require__(100));
util.inherits = __webpack_require__(89);
/*</replacement>*/
util.inherits(PassThrough, Transform);
function PassThrough(options) {
if (!(this instanceof PassThrough)) return new PassThrough(options);
Transform.call(this, options);
}
PassThrough.prototype._transform = function (chunk, encoding, cb) {
cb(null, chunk);
};
/***/ }),
/* 113 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(106);
/***/ }),
/* 114 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(105);
/***/ }),
/* 115 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(90).Transform
/***/ }),
/* 116 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(90).PassThrough
/***/ }),
/* 117 */
/***/ (function(module, exports) {
(function(){
/* Detect if we're in a worker or not */
var isWorker = false;
try {
document;
} catch (e){
isWorker = true;
}
if (isWorker){
if (!self.Worker){
self.Worker = function(path){
var that = this;
this.id = Math.random().toString(36).substr(2, 5);
this.eventListeners = {
"message": []
};
self.addEventListener("message", function(e){
if (e.data._from === that.id){
var newEvent = new MessageEvent("message");
newEvent.initMessageEvent("message", false, false, e.data.message, that, "", null, []);
that.dispatchEvent(newEvent);
if (that.onmessage){
that.onmessage(newEvent);
}
}
});
var location = self.location.pathname;
var slashedPath = path.charAt(0) == '/' ? path : '/' + path;
var absPath = location.substring(0, location.lastIndexOf('/')) + slashedPath;
self.postMessage({
_subworker: true,
cmd: 'newWorker',
id: this.id,
path: absPath
});
};
Worker.prototype = {
onerror: null,
onmessage: null,
postMessage: function(message, transfer){
self.postMessage({
_subworker: true,
id: this.id,
cmd: 'passMessage',
message: message,
transfer: transfer,
}, transfer);
},
terminate: function(){
self.postMessage({
_subworker: true,
cmd: 'terminate',
id: this.id
});
},
addEventListener: function(type, listener, useCapture){
if (this.eventListeners[type]){
this.eventListeners[type].push(listener);
}
},
removeEventListener: function(type, listener, useCapture){
if (!(type in this.eventListeners)) {
return;
}
var index = this.eventListeners[type].indexOf(listener);
if (index !== -1){
this.eventListeners[type].splice(index, 1);
}
},
dispatchEvent: function(event){
var listeners = this.eventListeners[event.type];
for (var i = 0; i < listeners.length; i++) {
listeners[i](event);
}
}
};
}
}
var allWorkers = {};
var cmds = {
newWorker: function(event){
var worker = new Worker(event.data.path);
worker.addEventListener("message", function(e){
var envelope = {
_from: event.data.id,
message: e.data
}
event.target.postMessage(envelope);
});
allWorkers[event.data.id] = worker;
},
terminate: function(event){
allWorkers[event.data.id].terminate();
},
passMessage: function(event){
allWorkers[event.data.id].postMessage(event.data.message, event.data.transfer);
}
}
var messageRecieved = function(event){
if (event.data._subworker){
cmds[event.data.cmd](event);
}
};
/* Hijack Worker */
var oldWorker = Worker;
Worker = function(path){
if (this.constructor !== Worker){
throw new TypeError("Failed to construct 'Worker': Please use the 'new' operator, this DOM object constructor cannot be called as a function.");
}
var blobIndex = path.indexOf('blob:');
if (blobIndex !== -1 && blobIndex !== 0 ) {
path = path.substring(blobIndex);
}
var newWorker = new oldWorker(path);
newWorker.addEventListener("message", messageRecieved);
return newWorker;
};
})();
/***/ }),
/* 118 */
/***/ (function(module, exports, __webpack_require__) {
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
'use strict';
var punycode = __webpack_require__(119);
var util = __webpack_require__(121);
exports.parse = urlParse;
exports.resolve = urlResolve;
exports.resolveObject = urlResolveObject;
exports.format = urlFormat;
exports.Url = Url;
function Url() {
this.protocol = null;
this.slashes = null;
this.auth = null;
this.host = null;
this.port = null;
this.hostname = null;
this.hash = null;
this.search = null;
this.query = null;
this.pathname = null;
this.path = null;
this.href = null;
}
// Reference: RFC 3986, RFC 1808, RFC 2396
// define these here so at least they only have to be
// compiled once on the first module load.
var protocolPattern = /^([a-z0-9.+-]+:)/i,
portPattern = /:[0-9]*$/,
// Special case for a simple path URL
simplePathPattern = /^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,
// RFC 2396: characters reserved for delimiting URLs.
// We actually just auto-escape these.
delims = ['<', '>', '"', '`', ' ', '\r', '\n', '\t'],
// RFC 2396: characters not allowed for various reasons.
unwise = ['{', '}', '|', '\\', '^', '`'].concat(delims),
// Allowed by RFCs, but cause of XSS attacks. Always escape these.
autoEscape = ['\''].concat(unwise),
// Characters that are never ever allowed in a hostname.
// Note that any invalid chars are also handled, but these
// are the ones that are *expected* to be seen, so we fast-path
// them.
nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),
hostEndingChars = ['/', '?', '#'],
hostnameMaxLen = 255,
hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,
hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,
// protocols that can allow "unsafe" and "unwise" chars.
unsafeProtocol = {
'javascript': true,
'javascript:': true
},
// protocols that never have a hostname.
hostlessProtocol = {
'javascript': true,
'javascript:': true
},
// protocols that always contain a // bit.
slashedProtocol = {
'http': true,
'https': true,
'ftp': true,
'gopher': true,
'file': true,
'http:': true,
'https:': true,
'ftp:': true,
'gopher:': true,
'file:': true
},
querystring = __webpack_require__(122);
function urlParse(url, parseQueryString, slashesDenoteHost) {
if (url && util.isObject(url) && url instanceof Url) return url;
var u = new Url;
u.parse(url, parseQueryString, slashesDenoteHost);
return u;
}
Url.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {
if (!util.isString(url)) {
throw new TypeError("Parameter 'url' must be a string, not " + typeof url);
}
// Copy chrome, IE, opera backslash-handling behavior.
// Back slashes before the query string get converted to forward slashes
// See: https://code.google.com/p/chromium/issues/detail?id=25916
var queryIndex = url.indexOf('?'),
splitter =
(queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#',
uSplit = url.split(splitter),
slashRegex = /\\/g;
uSplit[0] = uSplit[0].replace(slashRegex, '/');
url = uSplit.join(splitter);
var rest = url;
// trim before proceeding.
// This is to support parse stuff like " http://foo.com \n"
rest = rest.trim();
if (!slashesDenoteHost && url.split('#').length === 1) {
// Try fast path regexp
var simplePath = simplePathPattern.exec(rest);
if (simplePath) {
this.path = rest;
this.href = rest;
this.pathname = simplePath[1];
if (simplePath[2]) {
this.search = simplePath[2];
if (parseQueryString) {
this.query = querystring.parse(this.search.substr(1));
} else {
this.query = this.search.substr(1);
}
} else if (parseQueryString) {
this.search = '';
this.query = {};
}
return this;
}
}
var proto = protocolPattern.exec(rest);
if (proto) {
proto = proto[0];
var lowerProto = proto.toLowerCase();
this.protocol = lowerProto;
rest = rest.substr(proto.length);
}
// figure out if it's got a host
// user@server is *always* interpreted as a hostname, and url
// resolution will treat //foo/bar as host=foo,path=bar because that's
// how the browser resolves relative URLs.
if (slashesDenoteHost || proto || rest.match(/^\/\/[^@\/]+@[^@\/]+/)) {
var slashes = rest.substr(0, 2) === '//';
if (slashes && !(proto && hostlessProtocol[proto])) {
rest = rest.substr(2);
this.slashes = true;
}
}
if (!hostlessProtocol[proto] &&
(slashes || (proto && !slashedProtocol[proto]))) {
// there's a hostname.
// the first instance of /, ?, ;, or # ends the host.
//
// If there is an @ in the hostname, then non-host chars *are* allowed
// to the left of the last @ sign, unless some host-ending character
// comes *before* the @-sign.
// URLs are obnoxious.
//
// ex:
// http://a@b@c/ => user:a@b host:c
// http://a@b?@c => user:a host:c path:/?@c
// v0.12 TODO(isaacs): This is not quite how Chrome does things.
// Review our test case against browsers more comprehensively.
// find the first instance of any hostEndingChars
var hostEnd = -1;
for (var i = 0; i < hostEndingChars.length; i++) {
var hec = rest.indexOf(hostEndingChars[i]);
if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))
hostEnd = hec;
}
// at this point, either we have an explicit point where the
// auth portion cannot go past, or the last @ char is the decider.
var auth, atSign;
if (hostEnd === -1) {
// atSign can be anywhere.
atSign = rest.lastIndexOf('@');
} else {
// atSign must be in auth portion.
// http://a@b/c@d => host:b auth:a path:/c@d
atSign = rest.lastIndexOf('@', hostEnd);
}
// Now we have a portion which is definitely the auth.
// Pull that off.
if (atSign !== -1) {
auth = rest.slice(0, atSign);
rest = rest.slice(atSign + 1);
this.auth = decodeURIComponent(auth);
}
// the host is the remaining to the left of the first non-host char
hostEnd = -1;
for (var i = 0; i < nonHostChars.length; i++) {
var hec = rest.indexOf(nonHostChars[i]);
if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))
hostEnd = hec;
}
// if we still have not hit it, then the entire thing is a host.
if (hostEnd === -1)
hostEnd = rest.length;
this.host = rest.slice(0, hostEnd);
rest = rest.slice(hostEnd);
// pull out port.
this.parseHost();
// we've indicated that there is a hostname,
// so even if it's empty, it has to be present.
this.hostname = this.hostname || '';
// if hostname begins with [ and ends with ]
// assume that it's an IPv6 address.
var ipv6Hostname = this.hostname[0] === '[' &&
this.hostname[this.hostname.length - 1] === ']';
// validate a little.
if (!ipv6Hostname) {
var hostparts = this.hostname.split(/\./);
for (var i = 0, l = hostparts.length; i < l; i++) {
var part = hostparts[i];
if (!part) continue;
if (!part.match(hostnamePartPattern)) {
var newpart = '';
for (var j = 0, k = part.length; j < k; j++) {
if (part.charCodeAt(j) > 127) {
// we replace non-ASCII char with a temporary placeholder
// we need this to make sure size of hostname is not
// broken by replacing non-ASCII by nothing
newpart += 'x';
} else {
newpart += part[j];
}
}
// we test again with ASCII char only
if (!newpart.match(hostnamePartPattern)) {
var validParts = hostparts.slice(0, i);
var notHost = hostparts.slice(i + 1);
var bit = part.match(hostnamePartStart);
if (bit) {
validParts.push(bit[1]);
notHost.unshift(bit[2]);
}
if (notHost.length) {
rest = '/' + notHost.join('.') + rest;
}
this.hostname = validParts.join('.');
break;
}
}
}
}
if (this.hostname.length > hostnameMaxLen) {
this.hostname = '';
} else {
// hostnames are always lower case.
this.hostname = this.hostname.toLowerCase();
}
if (!ipv6Hostname) {
// IDNA Support: Returns a punycoded representation of "domain".
// It only converts parts of the domain name that
// have non-ASCII characters, i.e. it doesn't matter if
// you call it with a domain that already is ASCII-only.
this.hostname = punycode.toASCII(this.hostname);
}
var p = this.port ? ':' + this.port : '';
var h = this.hostname || '';
this.host = h + p;
this.href += this.host;
// strip [ and ] from the hostname
// the host field still retains them, though
if (ipv6Hostname) {
this.hostname = this.hostname.substr(1, this.hostname.length - 2);
if (rest[0] !== '/') {
rest = '/' + rest;
}
}
}
// now rest is set to the post-host stuff.
// chop off any delim chars.
if (!unsafeProtocol[lowerProto]) {
// First, make 100% sure that any "autoEscape" chars get
// escaped, even if encodeURIComponent doesn't think they
// need to be.
for (var i = 0, l = autoEscape.length; i < l; i++) {
var ae = autoEscape[i];
if (rest.indexOf(ae) === -1)
continue;
var esc = encodeURIComponent(ae);
if (esc === ae) {
esc = escape(ae);
}
rest = rest.split(ae).join(esc);
}
}
// chop off from the tail first.
var hash = rest.indexOf('#');
if (hash !== -1) {
// got a fragment string.
this.hash = rest.substr(hash);
rest = rest.slice(0, hash);
}
var qm = rest.indexOf('?');
if (qm !== -1) {
this.search = rest.substr(qm);
this.query = rest.substr(qm + 1);
if (parseQueryString) {
this.query = querystring.parse(this.query);
}
rest = rest.slice(0, qm);
} else if (parseQueryString) {
// no query string, but parseQueryString still requested
this.search = '';
this.query = {};
}
if (rest) this.pathname = rest;
if (slashedProtocol[lowerProto] &&
this.hostname && !this.pathname) {
this.pathname = '/';
}
//to support http.request
if (this.pathname || this.search) {
var p = this.pathname || '';
var s = this.search || '';
this.path = p + s;
}
// finally, reconstruct the href based on what has been validated.
this.href = this.format();
return this;
};
// format a parsed object into a url string
function urlFormat(obj) {
// ensure it's an object, and not a string url.
// If it's an obj, this is a no-op.
// this way, you can call url_format() on strings
// to clean up potentially wonky urls.
if (util.isString(obj)) obj = urlParse(obj);
if (!(obj instanceof Url)) return Url.prototype.format.call(obj);
return obj.format();
}
Url.prototype.format = function() {
var auth = this.auth || '';
if (auth) {
auth = encodeURIComponent(auth);
auth = auth.replace(/%3A/i, ':');
auth += '@';
}
var protocol = this.protocol || '',
pathname = this.pathname || '',
hash = this.hash || '',
host = false,
query = '';
if (this.host) {
host = auth + this.host;
} else if (this.hostname) {
host = auth + (this.hostname.indexOf(':') === -1 ?
this.hostname :
'[' + this.hostname + ']');
if (this.port) {
host += ':' + this.port;
}
}
if (this.query &&
util.isObject(this.query) &&
Object.keys(this.query).length) {
query = querystring.stringify(this.query);
}
var search = this.search || (query && ('?' + query)) || '';
if (protocol && protocol.substr(-1) !== ':') protocol += ':';
// only the slashedProtocols get the //. Not mailto:, xmpp:, etc.
// unless they had them to begin with.
if (this.slashes ||
(!protocol || slashedProtocol[protocol]) && host !== false) {
host = '//' + (host || '');
if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;
} else if (!host) {
host = '';
}
if (hash && hash.charAt(0) !== '#') hash = '#' + hash;
if (search && search.charAt(0) !== '?') search = '?' + search;
pathname = pathname.replace(/[?#]/g, function(match) {
return encodeURIComponent(match);
});
search = search.replace('#', '%23');
return protocol + host + pathname + search + hash;
};
function urlResolve(source, relative) {
return urlParse(source, false, true).resolve(relative);
}
Url.prototype.resolve = function(relative) {
return this.resolveObject(urlParse(relative, false, true)).format();
};
function urlResolveObject(source, relative) {
if (!source) return relative;
return urlParse(source, false, true).resolveObject(relative);
}
Url.prototype.resolveObject = function(relative) {
if (util.isString(relative)) {
var rel = new Url();
rel.parse(relative, false, true);
relative = rel;
}
var result = new Url();
var tkeys = Object.keys(this);
for (var tk = 0; tk < tkeys.length; tk++) {
var tkey = tkeys[tk];
result[tkey] = this[tkey];
}
// hash is always overridden, no matter what.
// even href="" will remove it.
result.hash = relative.hash;
// if the relative url is empty, then there's nothing left to do here.
if (relative.href === '') {
result.href = result.format();
return result;
}
// hrefs like //foo/bar always cut to the protocol.
if (relative.slashes && !relative.protocol) {
// take everything except the protocol from relative
var rkeys = Object.keys(relative);
for (var rk = 0; rk < rkeys.length; rk++) {
var rkey = rkeys[rk];
if (rkey !== 'protocol')
result[rkey] = relative[rkey];
}
//urlParse appends trailing / to urls like http://www.example.com
if (slashedProtocol[result.protocol] &&
result.hostname && !result.pathname) {
result.path = result.pathname = '/';
}
result.href = result.format();
return result;
}
if (relative.protocol && relative.protocol !== result.protocol) {
// if it's a known url protocol, then changing
// the protocol does weird things
// first, if it's not file:, then we MUST have a host,
// and if there was a path
// to begin with, then we MUST have a path.
// if it is file:, then the host is dropped,
// because that's known to be hostless.
// anything else is assumed to be absolute.
if (!slashedProtocol[relative.protocol]) {
var keys = Object.keys(relative);
for (var v = 0; v < keys.length; v++) {
var k = keys[v];
result[k] = relative[k];
}
result.href = result.format();
return result;
}
result.protocol = relative.protocol;
if (!relative.host && !hostlessProtocol[relative.protocol]) {
var relPath = (relative.pathname || '').split('/');
while (relPath.length && !(relative.host = relPath.shift()));
if (!relative.host) relative.host = '';
if (!relative.hostname) relative.hostname = '';
if (relPath[0] !== '') relPath.unshift('');
if (relPath.length < 2) relPath.unshift('');
result.pathname = relPath.join('/');
} else {
result.pathname = relative.pathname;
}
result.search = relative.search;
result.query = relative.query;
result.host = relative.host || '';
result.auth = relative.auth;
result.hostname = relative.hostname || relative.host;
result.port = relative.port;
// to support http.request
if (result.pathname || result.search) {
var p = result.pathname || '';
var s = result.search || '';
result.path = p + s;
}
result.slashes = result.slashes || relative.slashes;
result.href = result.format();
return result;
}
var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),
isRelAbs = (
relative.host ||
relative.pathname && relative.pathname.charAt(0) === '/'
),
mustEndAbs = (isRelAbs || isSourceAbs ||
(result.host && relative.pathname)),
removeAllDots = mustEndAbs,
srcPath = result.pathname && result.pathname.split('/') || [],
relPath = relative.pathname && relative.pathname.split('/') || [],
psychotic = result.protocol && !slashedProtocol[result.protocol];
// if the url is a non-slashed url, then relative
// links like ../.. should be able
// to crawl up to the hostname, as well. This is strange.
// result.protocol has already been set by now.
// Later on, put the first path part into the host field.
if (psychotic) {
result.hostname = '';
result.port = null;
if (result.host) {
if (srcPath[0] === '') srcPath[0] = result.host;
else srcPath.unshift(result.host);
}
result.host = '';
if (relative.protocol) {
relative.hostname = null;
relative.port = null;
if (relative.host) {
if (relPath[0] === '') relPath[0] = relative.host;
else relPath.unshift(relative.host);
}
relative.host = null;
}
mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');
}
if (isRelAbs) {
// it's absolute.
result.host = (relative.host || relative.host === '') ?
relative.host : result.host;
result.hostname = (relative.hostname || relative.hostname === '') ?
relative.hostname : result.hostname;
result.search = relative.search;
result.query = relative.query;
srcPath = relPath;
// fall through to the dot-handling below.
} else if (relPath.length) {
// it's relative
// throw away the existing file, and take the new path instead.
if (!srcPath) srcPath = [];
srcPath.pop();
srcPath = srcPath.concat(relPath);
result.search = relative.search;
result.query = relative.query;
} else if (!util.isNullOrUndefined(relative.search)) {
// just pull out the search.
// like href='?foo'.
// Put this after the other two cases because it simplifies the booleans
if (psychotic) {
result.hostname = result.host = srcPath.shift();
//occationaly the auth can get stuck only in host
//this especially happens in cases like
//url.resolveObject('mailto:local1@domain1', 'local2@domain2')
var authInHost = result.host && result.host.indexOf('@') > 0 ?
result.host.split('@') : false;
if (authInHost) {
result.auth = authInHost.shift();
result.host = result.hostname = authInHost.shift();
}
}
result.search = relative.search;
result.query = relative.query;
//to support http.request
if (!util.isNull(result.pathname) || !util.isNull(result.search)) {
result.path = (result.pathname ? result.pathname : '') +
(result.search ? result.search : '');
}
result.href = result.format();
return result;
}
if (!srcPath.length) {
// no path at all. easy.
// we've already handled the other stuff above.
result.pathname = null;
//to support http.request
if (result.search) {
result.path = '/' + result.search;
} else {
result.path = null;
}
result.href = result.format();
return result;
}
// if a url ENDs in . or .., then it must get a trailing slash.
// however, if it ends in anything else non-slashy,
// then it must NOT get a trailing slash.
var last = srcPath.slice(-1)[0];
var hasTrailingSlash = (
(result.host || relative.host || srcPath.length > 1) &&
(last === '.' || last === '..') || last === '');
// strip single dots, resolve double dots to parent dir
// if the path tries to go above the root, `up` ends up > 0
var up = 0;
for (var i = srcPath.length; i >= 0; i--) {
last = srcPath[i];
if (last === '.') {
srcPath.splice(i, 1);
} else if (last === '..') {
srcPath.splice(i, 1);
up++;
} else if (up) {
srcPath.splice(i, 1);
up--;
}
}
// if the path is allowed to go above the root, restore leading ..s
if (!mustEndAbs && !removeAllDots) {
for (; up--; up) {
srcPath.unshift('..');
}
}
if (mustEndAbs && srcPath[0] !== '' &&
(!srcPath[0] || srcPath[0].charAt(0) !== '/')) {
srcPath.unshift('');
}
if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {
srcPath.push('');
}
var isAbsolute = srcPath[0] === '' ||
(srcPath[0] && srcPath[0].charAt(0) === '/');
// put the host back
if (psychotic) {
result.hostname = result.host = isAbsolute ? '' :
srcPath.length ? srcPath.shift() : '';
//occationaly the auth can get stuck only in host
//this especially happens in cases like
//url.resolveObject('mailto:local1@domain1', 'local2@domain2')
var authInHost = result.host && result.host.indexOf('@') > 0 ?
result.host.split('@') : false;
if (authInHost) {
result.auth = authInHost.shift();
result.host = result.hostname = authInHost.shift();
}
}
mustEndAbs = mustEndAbs || (result.host && srcPath.length);
if (mustEndAbs && !isAbsolute) {
srcPath.unshift('');
}
if (!srcPath.length) {
result.pathname = null;
result.path = null;
} else {
result.pathname = srcPath.join('/');
}
//to support request.http
if (!util.isNull(result.pathname) || !util.isNull(result.search)) {
result.path = (result.pathname ? result.pathname : '') +
(result.search ? result.search : '');
}
result.auth = relative.auth || result.auth;
result.slashes = result.slashes || relative.slashes;
result.href = result.format();
return result;
};
Url.prototype.parseHost = function() {
var host = this.host;
var port = portPattern.exec(host);
if (port) {
port = port[0];
if (port !== ':') {
this.port = port.substr(1);
}
host = host.substr(0, host.length - port.length);
}
if (host) this.hostname = host;
};
/***/ }),
/* 119 */
/***/ (function(module, exports, __webpack_require__) {
var __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(module, global) {/*! https://mths.be/punycode v1.3.2 by @mathias */
;(function(root) {
/** Detect free variables */
var freeExports = typeof exports == 'object' && exports &&
!exports.nodeType && exports;
var freeModule = typeof module == 'object' && module &&
!module.nodeType && module;
var freeGlobal = typeof global == 'object' && global;
if (
freeGlobal.global === freeGlobal ||
freeGlobal.window === freeGlobal ||
freeGlobal.self === freeGlobal
) {
root = freeGlobal;
}
/**
* The `punycode` object.
* @name punycode
* @type Object
*/
var punycode,
/** Highest positive signed 32-bit float value */
maxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1
/** Bootstring parameters */
base = 36,
tMin = 1,
tMax = 26,
skew = 38,
damp = 700,
initialBias = 72,
initialN = 128, // 0x80
delimiter = '-', // '\x2D'
/** Regular expressions */
regexPunycode = /^xn--/,
regexNonASCII = /[^\x20-\x7E]/, // unprintable ASCII chars + non-ASCII chars
regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g, // RFC 3490 separators
/** Error messages */
errors = {
'overflow': 'Overflow: input needs wider integers to process',
'not-basic': 'Illegal input >= 0x80 (not a basic code point)',
'invalid-input': 'Invalid input'
},
/** Convenience shortcuts */
baseMinusTMin = base - tMin,
floor = Math.floor,
stringFromCharCode = String.fromCharCode,
/** Temporary variable */
key;
/*--------------------------------------------------------------------------*/
/**
* A generic error utility function.
* @private
* @param {String} type The error type.
* @returns {Error} Throws a `RangeError` with the applicable error message.
*/
function error(type) {
throw RangeError(errors[type]);
}
/**
* A generic `Array#map` utility function.
* @private
* @param {Array} array The array to iterate over.
* @param {Function} callback The function that gets called for every array
* item.
* @returns {Array} A new array of values returned by the callback function.
*/
function map(array, fn) {
var length = array.length;
var result = [];
while (length--) {
result[length] = fn(array[length]);
}
return result;
}
/**
* A simple `Array#map`-like wrapper to work with domain name strings or email
* addresses.
* @private
* @param {String} domain The domain name or email address.
* @param {Function} callback The function that gets called for every
* character.
* @returns {Array} A new string of characters returned by the callback
* function.
*/
function mapDomain(string, fn) {
var parts = string.split('@');
var result = '';
if (parts.length > 1) {
// In email addresses, only the domain name should be punycoded. Leave
// the local part (i.e. everything up to `@`) intact.
result = parts[0] + '@';
string = parts[1];
}
// Avoid `split(regex)` for IE8 compatibility. See #17.
string = string.replace(regexSeparators, '\x2E');
var labels = string.split('.');
var encoded = map(labels, fn).join('.');
return result + encoded;
}
/**
* Creates an array containing the numeric code points of each Unicode
* character in the string. While JavaScript uses UCS-2 internally,
* this function will convert a pair of surrogate halves (each of which
* UCS-2 exposes as separate characters) into a single code point,
* matching UTF-16.
* @see `punycode.ucs2.encode`
* @see <https://mathiasbynens.be/notes/javascript-encoding>
* @memberOf punycode.ucs2
* @name decode
* @param {String} string The Unicode input string (UCS-2).
* @returns {Array} The new array of code points.
*/
function ucs2decode(string) {
var output = [],
counter = 0,
length = string.length,
value,
extra;
while (counter < length) {
value = string.charCodeAt(counter++);
if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
// high surrogate, and there is a next character
extra = string.charCodeAt(counter++);
if ((extra & 0xFC00) == 0xDC00) { // low surrogate
output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
} else {
// unmatched surrogate; only append this code unit, in case the next
// code unit is the high surrogate of a surrogate pair
output.push(value);
counter--;
}
} else {
output.push(value);
}
}
return output;
}
/**
* Creates a string based on an array of numeric code points.
* @see `punycode.ucs2.decode`
* @memberOf punycode.ucs2
* @name encode
* @param {Array} codePoints The array of numeric code points.
* @returns {String} The new Unicode string (UCS-2).
*/
function ucs2encode(array) {
return map(array, function(value) {
var output = '';
if (value > 0xFFFF) {
value -= 0x10000;
output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);
value = 0xDC00 | value & 0x3FF;
}
output += stringFromCharCode(value);
return output;
}).join('');
}
/**
* Converts a basic code point into a digit/integer.
* @see `digitToBasic()`
* @private
* @param {Number} codePoint The basic numeric code point value.
* @returns {Number} The numeric value of a basic code point (for use in
* representing integers) in the range `0` to `base - 1`, or `base` if
* the code point does not represent a value.
*/
function basicToDigit(codePoint) {
if (codePoint - 48 < 10) {
return codePoint - 22;
}
if (codePoint - 65 < 26) {
return codePoint - 65;
}
if (codePoint - 97 < 26) {
return codePoint - 97;
}
return base;
}
/**
* Converts a digit/integer into a basic code point.
* @see `basicToDigit()`
* @private
* @param {Number} digit The numeric value of a basic code point.
* @returns {Number} The basic code point whose value (when used for
* representing integers) is `digit`, which needs to be in the range
* `0` to `base - 1`. If `flag` is non-zero, the uppercase form is
* used; else, the lowercase form is used. The behavior is undefined
* if `flag` is non-zero and `digit` has no uppercase form.
*/
function digitToBasic(digit, flag) {
// 0..25 map to ASCII a..z or A..Z
// 26..35 map to ASCII 0..9
return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);
}
/**
* Bias adaptation function as per section 3.4 of RFC 3492.
* http://tools.ietf.org/html/rfc3492#section-3.4
* @private
*/
function adapt(delta, numPoints, firstTime) {
var k = 0;
delta = firstTime ? floor(delta / damp) : delta >> 1;
delta += floor(delta / numPoints);
for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {
delta = floor(delta / baseMinusTMin);
}
return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
}
/**
* Converts a Punycode string of ASCII-only symbols to a string of Unicode
* symbols.
* @memberOf punycode
* @param {String} input The Punycode string of ASCII-only symbols.
* @returns {String} The resulting string of Unicode symbols.
*/
function decode(input) {
// Don't use UCS-2
var output = [],
inputLength = input.length,
out,
i = 0,
n = initialN,
bias = initialBias,
basic,
j,
index,
oldi,
w,
k,
digit,
t,
/** Cached calculation results */
baseMinusT;
// Handle the basic code points: let `basic` be the number of input code
// points before the last delimiter, or `0` if there is none, then copy
// the first basic code points to the output.
basic = input.lastIndexOf(delimiter);
if (basic < 0) {
basic = 0;
}
for (j = 0; j < basic; ++j) {
// if it's not a basic code point
if (input.charCodeAt(j) >= 0x80) {
error('not-basic');
}
output.push(input.charCodeAt(j));
}
// Main decoding loop: start just after the last delimiter if any basic code
// points were copied; start at the beginning otherwise.
for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {
// `index` is the index of the next character to be consumed.
// Decode a generalized variable-length integer into `delta`,
// which gets added to `i`. The overflow checking is easier
// if we increase `i` as we go, then subtract off its starting
// value at the end to obtain `delta`.
for (oldi = i, w = 1, k = base; /* no condition */; k += base) {
if (index >= inputLength) {
error('invalid-input');
}
digit = basicToDigit(input.charCodeAt(index++));
if (digit >= base || digit > floor((maxInt - i) / w)) {
error('overflow');
}
i += digit * w;
t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
if (digit < t) {
break;
}
baseMinusT = base - t;
if (w > floor(maxInt / baseMinusT)) {
error('overflow');
}
w *= baseMinusT;
}
out = output.length + 1;
bias = adapt(i - oldi, out, oldi == 0);
// `i` was supposed to wrap around from `out` to `0`,
// incrementing `n` each time, so we'll fix that now:
if (floor(i / out) > maxInt - n) {
error('overflow');
}
n += floor(i / out);
i %= out;
// Insert `n` at position `i` of the output
output.splice(i++, 0, n);
}
return ucs2encode(output);
}
/**
* Converts a string of Unicode symbols (e.g. a domain name label) to a
* Punycode string of ASCII-only symbols.
* @memberOf punycode
* @param {String} input The string of Unicode symbols.
* @returns {String} The resulting Punycode string of ASCII-only symbols.
*/
function encode(input) {
var n,
delta,
handledCPCount,
basicLength,
bias,
j,
m,
q,
k,
t,
currentValue,
output = [],
/** `inputLength` will hold the number of code points in `input`. */
inputLength,
/** Cached calculation results */
handledCPCountPlusOne,
baseMinusT,
qMinusT;
// Convert the input in UCS-2 to Unicode
input = ucs2decode(input);
// Cache the length
inputLength = input.length;
// Initialize the state
n = initialN;
delta = 0;
bias = initialBias;
// Handle the basic code points
for (j = 0; j < inputLength; ++j) {
currentValue = input[j];
if (currentValue < 0x80) {
output.push(stringFromCharCode(currentValue));
}
}
handledCPCount = basicLength = output.length;
// `handledCPCount` is the number of code points that have been handled;
// `basicLength` is the number of basic code points.
// Finish the basic string - if it is not empty - with a delimiter
if (basicLength) {
output.push(delimiter);
}
// Main encoding loop:
while (handledCPCount < inputLength) {
// All non-basic code points < n have been handled already. Find the next
// larger one:
for (m = maxInt, j = 0; j < inputLength; ++j) {
currentValue = input[j];
if (currentValue >= n && currentValue < m) {
m = currentValue;
}
}
// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,
// but guard against overflow
handledCPCountPlusOne = handledCPCount + 1;
if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
error('overflow');
}
delta += (m - n) * handledCPCountPlusOne;
n = m;
for (j = 0; j < inputLength; ++j) {
currentValue = input[j];
if (currentValue < n && ++delta > maxInt) {
error('overflow');
}
if (currentValue == n) {
// Represent delta as a generalized variable-length integer
for (q = delta, k = base; /* no condition */; k += base) {
t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
if (q < t) {
break;
}
qMinusT = q - t;
baseMinusT = base - t;
output.push(
stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))
);
q = floor(qMinusT / baseMinusT);
}
output.push(stringFromCharCode(digitToBasic(q, 0)));
bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);
delta = 0;
++handledCPCount;
}
}
++delta;
++n;
}
return output.join('');
}
/**
* Converts a Punycode string representing a domain name or an email address
* to Unicode. Only the Punycoded parts of the input will be converted, i.e.
* it doesn't matter if you call it on a string that has already been
* converted to Unicode.
* @memberOf punycode
* @param {String} input The Punycoded domain name or email address to
* convert to Unicode.
* @returns {String} The Unicode representation of the given Punycode
* string.
*/
function toUnicode(input) {
return mapDomain(input, function(string) {
return regexPunycode.test(string)
? decode(string.slice(4).toLowerCase())
: string;
});
}
/**
* Converts a Unicode string representing a domain name or an email address to
* Punycode. Only the non-ASCII parts of the domain name will be converted,
* i.e. it doesn't matter if you call it with a domain that's already in
* ASCII.
* @memberOf punycode
* @param {String} input The domain name or email address to convert, as a
* Unicode string.
* @returns {String} The Punycode representation of the given domain name or
* email address.
*/
function toASCII(input) {
return mapDomain(input, function(string) {
return regexNonASCII.test(string)
? 'xn--' + encode(string)
: string;
});
}
/*--------------------------------------------------------------------------*/
/** Define the public API */
punycode = {
/**
* A string representing the current Punycode.js version number.
* @memberOf punycode
* @type String
*/
'version': '1.3.2',
/**
* An object of methods to convert from JavaScript's internal character
* representation (UCS-2) to Unicode code points, and back.
* @see <https://mathiasbynens.be/notes/javascript-encoding>
* @memberOf punycode
* @type Object
*/
'ucs2': {
'decode': ucs2decode,
'encode': ucs2encode
},
'decode': decode,
'encode': encode,
'toASCII': toASCII,
'toUnicode': toUnicode
};
/** Expose `punycode` */
// Some AMD build optimizers, like r.js, check for specific condition patterns
// like the following:
if (
true
) {
!(__WEBPACK_AMD_DEFINE_RESULT__ = function() {
return punycode;
}.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
} else if (freeExports && freeModule) {
if (module.exports == freeExports) { // in Node.js or RingoJS v0.8.0+
freeModule.exports = punycode;
} else { // in Narwhal or RingoJS v0.7.0-
for (key in punycode) {
punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);
}
}
} else { // in Rhino or a web browser
root.punycode = punycode;
}
}(this));
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(120)(module), (function() { return this; }())))
/***/ }),
/* 120 */
/***/ (function(module, exports) {
module.exports = function(module) {
if(!module.webpackPolyfill) {
module.deprecate = function() {};
module.paths = [];
// module.parent = undefined by default
module.children = [];
module.webpackPolyfill = 1;
}
return module;
}
/***/ }),
/* 121 */
/***/ (function(module, exports) {
'use strict';
module.exports = {
isString: function(arg) {
return typeof(arg) === 'string';
},
isObject: function(arg) {
return typeof(arg) === 'object' && arg !== null;
},
isNull: function(arg) {
return arg === null;
},
isNullOrUndefined: function(arg) {
return arg == null;
}
};
/***/ }),
/* 122 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
exports.decode = exports.parse = __webpack_require__(123);
exports.encode = exports.stringify = __webpack_require__(124);
/***/ }),
/* 123 */
/***/ (function(module, exports) {
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
'use strict';
// If obj.hasOwnProperty has been overridden, then calling
// obj.hasOwnProperty(prop) will break.
// See: https://github.com/joyent/node/issues/1707
function hasOwnProperty(obj, prop) {
return Object.prototype.hasOwnProperty.call(obj, prop);
}
module.exports = function(qs, sep, eq, options) {
sep = sep || '&';
eq = eq || '=';
var obj = {};
if (typeof qs !== 'string' || qs.length === 0) {
return obj;
}
var regexp = /\+/g;
qs = qs.split(sep);
var maxKeys = 1000;
if (options && typeof options.maxKeys === 'number') {
maxKeys = options.maxKeys;
}
var len = qs.length;
// maxKeys <= 0 means that we should not limit keys count
if (maxKeys > 0 && len > maxKeys) {
len = maxKeys;
}
for (var i = 0; i < len; ++i) {
var x = qs[i].replace(regexp, '%20'),
idx = x.indexOf(eq),
kstr, vstr, k, v;
if (idx >= 0) {
kstr = x.substr(0, idx);
vstr = x.substr(idx + 1);
} else {
kstr = x;
vstr = '';
}
k = decodeURIComponent(kstr);
v = decodeURIComponent(vstr);
if (!hasOwnProperty(obj, k)) {
obj[k] = v;
} else if (Array.isArray(obj[k])) {
obj[k].push(v);
} else {
obj[k] = [obj[k], v];
}
}
return obj;
};
/***/ }),
/* 124 */
/***/ (function(module, exports) {
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
'use strict';
var stringifyPrimitive = function(v) {
switch (typeof v) {
case 'string':
return v;
case 'boolean':
return v ? 'true' : 'false';
case 'number':
return isFinite(v) ? v : '';
default:
return '';
}
};
module.exports = function(obj, sep, eq, name) {
sep = sep || '&';
eq = eq || '=';
if (obj === null) {
obj = undefined;
}
if (typeof obj === 'object') {
return Object.keys(obj).map(function(k) {
var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;
if (Array.isArray(obj[k])) {
return obj[k].map(function(v) {
return ks + encodeURIComponent(stringifyPrimitive(v));
}).join(sep);
} else {
return ks + encodeURIComponent(stringifyPrimitive(obj[k]));
}
}).join(sep);
}
if (!name) return '';
return encodeURIComponent(stringifyPrimitive(name)) + eq +
encodeURIComponent(stringifyPrimitive(obj));
};
/***/ }),
/* 125 */
/***/ (function(module, exports, __webpack_require__) {
var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(module) {/*
Copyright 2013-2014 Daniel Wirtz <dcode@dcode.io>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
/**
* @license bytebuffer.js (c) 2015 Daniel Wirtz <dcode@dcode.io>
* Backing buffer: ArrayBuffer, Accessor: Uint8Array
* Released under the Apache License, Version 2.0
* see: https://github.com/dcodeIO/bytebuffer.js for details
*/
(function(global, factory) {
/* AMD */ if ("function" === 'function' && __webpack_require__(126)["amd"])
!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(127)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
/* CommonJS */ else if ("function" === 'function' && typeof module === "object" && module && module["exports"])
module['exports'] = (function() {
var Long; try { Long = __webpack_require__(127); } catch (e) {}
return factory(Long);
})();
/* Global */ else
(global["dcodeIO"] = global["dcodeIO"] || {})["ByteBuffer"] = factory(global["dcodeIO"]["Long"]);
})(this, function(Long) {
"use strict";
/**
* Constructs a new ByteBuffer.
* @class The swiss army knife for binary data in JavaScript.
* @exports ByteBuffer
* @constructor
* @param {number=} capacity Initial capacity. Defaults to {@link ByteBuffer.DEFAULT_CAPACITY}.
* @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to
* {@link ByteBuffer.DEFAULT_ENDIAN}.
* @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to
* {@link ByteBuffer.DEFAULT_NOASSERT}.
* @expose
*/
var ByteBuffer = function(capacity, littleEndian, noAssert) {
if (typeof capacity === 'undefined')
capacity = ByteBuffer.DEFAULT_CAPACITY;
if (typeof littleEndian === 'undefined')
littleEndian = ByteBuffer.DEFAULT_ENDIAN;
if (typeof noAssert === 'undefined')
noAssert = ByteBuffer.DEFAULT_NOASSERT;
if (!noAssert) {
capacity = capacity | 0;
if (capacity < 0)
throw RangeError("Illegal capacity");
littleEndian = !!littleEndian;
noAssert = !!noAssert;
}
/**
* Backing ArrayBuffer.
* @type {!ArrayBuffer}
* @expose
*/
this.buffer = capacity === 0 ? EMPTY_BUFFER : new ArrayBuffer(capacity);
/**
* Uint8Array utilized to manipulate the backing buffer. Becomes `null` if the backing buffer has a capacity of `0`.
* @type {?Uint8Array}
* @expose
*/
this.view = capacity === 0 ? null : new Uint8Array(this.buffer);
/**
* Absolute read/write offset.
* @type {number}
* @expose
* @see ByteBuffer#flip
* @see ByteBuffer#clear
*/
this.offset = 0;
/**
* Marked offset.
* @type {number}
* @expose
* @see ByteBuffer#mark
* @see ByteBuffer#reset
*/
this.markedOffset = -1;
/**
* Absolute limit of the contained data. Set to the backing buffer's capacity upon allocation.
* @type {number}
* @expose
* @see ByteBuffer#flip
* @see ByteBuffer#clear
*/
this.limit = capacity;
/**
* Whether to use little endian byte order, defaults to `false` for big endian.
* @type {boolean}
* @expose
*/
this.littleEndian = littleEndian;
/**
* Whether to skip assertions of offsets and values, defaults to `false`.
* @type {boolean}
* @expose
*/
this.noAssert = noAssert;
};
/**
* ByteBuffer version.
* @type {string}
* @const
* @expose
*/
ByteBuffer.VERSION = "5.0.1";
/**
* Little endian constant that can be used instead of its boolean value. Evaluates to `true`.
* @type {boolean}
* @const
* @expose
*/
ByteBuffer.LITTLE_ENDIAN = true;
/**
* Big endian constant that can be used instead of its boolean value. Evaluates to `false`.
* @type {boolean}
* @const
* @expose
*/
ByteBuffer.BIG_ENDIAN = false;
/**
* Default initial capacity of `16`.
* @type {number}
* @expose
*/
ByteBuffer.DEFAULT_CAPACITY = 16;
/**
* Default endianess of `false` for big endian.
* @type {boolean}
* @expose
*/
ByteBuffer.DEFAULT_ENDIAN = ByteBuffer.BIG_ENDIAN;
/**
* Default no assertions flag of `false`.
* @type {boolean}
* @expose
*/
ByteBuffer.DEFAULT_NOASSERT = false;
/**
* A `Long` class for representing a 64-bit two's-complement integer value. May be `null` if Long.js has not been loaded
* and int64 support is not available.
* @type {?Long}
* @const
* @see https://github.com/dcodeIO/long.js
* @expose
*/
ByteBuffer.Long = Long || null;
/**
* @alias ByteBuffer.prototype
* @inner
*/
var ByteBufferPrototype = ByteBuffer.prototype;
/**
* An indicator used to reliably determine if an object is a ByteBuffer or not.
* @type {boolean}
* @const
* @expose
* @private
*/
ByteBufferPrototype.__isByteBuffer__;
Object.defineProperty(ByteBufferPrototype, "__isByteBuffer__", {
value: true,
enumerable: false,
configurable: false
});
// helpers
/**
* @type {!ArrayBuffer}
* @inner
*/
var EMPTY_BUFFER = new ArrayBuffer(0);
/**
* String.fromCharCode reference for compile-time renaming.
* @type {function(...number):string}
* @inner
*/
var stringFromCharCode = String.fromCharCode;
/**
* Creates a source function for a string.
* @param {string} s String to read from
* @returns {function():number|null} Source function returning the next char code respectively `null` if there are
* no more characters left.
* @throws {TypeError} If the argument is invalid
* @inner
*/
function stringSource(s) {
var i=0; return function() {
return i < s.length ? s.charCodeAt(i++) : null;
};
}
/**
* Creates a destination function for a string.
* @returns {function(number=):undefined|string} Destination function successively called with the next char code.
* Returns the final string when called without arguments.
* @inner
*/
function stringDestination() {
var cs = [], ps = []; return function() {
if (arguments.length === 0)
return ps.join('')+stringFromCharCode.apply(String, cs);
if (cs.length + arguments.length > 1024)
ps.push(stringFromCharCode.apply(String, cs)),
cs.length = 0;
Array.prototype.push.apply(cs, arguments);
};
}
/**
* Gets the accessor type.
* @returns {Function} `Buffer` under node.js, `Uint8Array` respectively `DataView` in the browser (classes)
* @expose
*/
ByteBuffer.accessor = function() {
return Uint8Array;
};
/**
* Allocates a new ByteBuffer backed by a buffer of the specified capacity.
* @param {number=} capacity Initial capacity. Defaults to {@link ByteBuffer.DEFAULT_CAPACITY}.
* @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to
* {@link ByteBuffer.DEFAULT_ENDIAN}.
* @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to
* {@link ByteBuffer.DEFAULT_NOASSERT}.
* @returns {!ByteBuffer}
* @expose
*/
ByteBuffer.allocate = function(capacity, littleEndian, noAssert) {
return new ByteBuffer(capacity, littleEndian, noAssert);
};
/**
* Concatenates multiple ByteBuffers into one.
* @param {!Array.<!ByteBuffer|!ArrayBuffer|!Uint8Array|string>} buffers Buffers to concatenate
* @param {(string|boolean)=} encoding String encoding if `buffers` contains a string ("base64", "hex", "binary",
* defaults to "utf8")
* @param {boolean=} littleEndian Whether to use little or big endian byte order for the resulting ByteBuffer. Defaults
* to {@link ByteBuffer.DEFAULT_ENDIAN}.
* @param {boolean=} noAssert Whether to skip assertions of offsets and values for the resulting ByteBuffer. Defaults to
* {@link ByteBuffer.DEFAULT_NOASSERT}.
* @returns {!ByteBuffer} Concatenated ByteBuffer
* @expose
*/
ByteBuffer.concat = function(buffers, encoding, littleEndian, noAssert) {
if (typeof encoding === 'boolean' || typeof encoding !== 'string') {
noAssert = littleEndian;
littleEndian = encoding;
encoding = undefined;
}
var capacity = 0;
for (var i=0, k=buffers.length, length; i<k; ++i) {
if (!ByteBuffer.isByteBuffer(buffers[i]))
buffers[i] = ByteBuffer.wrap(buffers[i], encoding);
length = buffers[i].limit - buffers[i].offset;
if (length > 0) capacity += length;
}
if (capacity === 0)
return new ByteBuffer(0, littleEndian, noAssert);
var bb = new ByteBuffer(capacity, littleEndian, noAssert),
bi;
i=0; while (i<k) {
bi = buffers[i++];
length = bi.limit - bi.offset;
if (length <= 0) continue;
bb.view.set(bi.view.subarray(bi.offset, bi.limit), bb.offset);
bb.offset += length;
}
bb.limit = bb.offset;
bb.offset = 0;
return bb;
};
/**
* Tests if the specified type is a ByteBuffer.
* @param {*} bb ByteBuffer to test
* @returns {boolean} `true` if it is a ByteBuffer, otherwise `false`
* @expose
*/
ByteBuffer.isByteBuffer = function(bb) {
return (bb && bb["__isByteBuffer__"]) === true;
};
/**
* Gets the backing buffer type.
* @returns {Function} `Buffer` under node.js, `ArrayBuffer` in the browser (classes)
* @expose
*/
ByteBuffer.type = function() {
return ArrayBuffer;
};
/**
* Wraps a buffer or a string. Sets the allocated ByteBuffer's {@link ByteBuffer#offset} to `0` and its
* {@link ByteBuffer#limit} to the length of the wrapped data.
* @param {!ByteBuffer|!ArrayBuffer|!Uint8Array|string|!Array.<number>} buffer Anything that can be wrapped
* @param {(string|boolean)=} encoding String encoding if `buffer` is a string ("base64", "hex", "binary", defaults to
* "utf8")
* @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to
* {@link ByteBuffer.DEFAULT_ENDIAN}.
* @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to
* {@link ByteBuffer.DEFAULT_NOASSERT}.
* @returns {!ByteBuffer} A ByteBuffer wrapping `buffer`
* @expose
*/
ByteBuffer.wrap = function(buffer, encoding, littleEndian, noAssert) {
if (typeof encoding !== 'string') {
noAssert = littleEndian;
littleEndian = encoding;
encoding = undefined;
}
if (typeof buffer === 'string') {
if (typeof encoding === 'undefined')
encoding = "utf8";
switch (encoding) {
case "base64":
return ByteBuffer.fromBase64(buffer, littleEndian);
case "hex":
return ByteBuffer.fromHex(buffer, littleEndian);
case "binary":
return ByteBuffer.fromBinary(buffer, littleEndian);
case "utf8":
return ByteBuffer.fromUTF8(buffer, littleEndian);
case "debug":
return ByteBuffer.fromDebug(buffer, littleEndian);
default:
throw Error("Unsupported encoding: "+encoding);
}
}
if (buffer === null || typeof buffer !== 'object')
throw TypeError("Illegal buffer");
var bb;
if (ByteBuffer.isByteBuffer(buffer)) {
bb = ByteBufferPrototype.clone.call(buffer);
bb.markedOffset = -1;
return bb;
}
if (buffer instanceof Uint8Array) { // Extract ArrayBuffer from Uint8Array
bb = new ByteBuffer(0, littleEndian, noAssert);
if (buffer.length > 0) { // Avoid references to more than one EMPTY_BUFFER
bb.buffer = buffer.buffer;
bb.offset = buffer.byteOffset;
bb.limit = buffer.byteOffset + buffer.byteLength;
bb.view = new Uint8Array(buffer.buffer);
}
} else if (buffer instanceof ArrayBuffer) { // Reuse ArrayBuffer
bb = new ByteBuffer(0, littleEndian, noAssert);
if (buffer.byteLength > 0) {
bb.buffer = buffer;
bb.offset = 0;
bb.limit = buffer.byteLength;
bb.view = buffer.byteLength > 0 ? new Uint8Array(buffer) : null;
}
} else if (Object.prototype.toString.call(buffer) === "[object Array]") { // Create from octets
bb = new ByteBuffer(buffer.length, littleEndian, noAssert);
bb.limit = buffer.length;
for (var i=0; i<buffer.length; ++i)
bb.view[i] = buffer[i];
} else
throw TypeError("Illegal buffer"); // Otherwise fail
return bb;
};
/**
* Writes the array as a bitset.
* @param {Array<boolean>} value Array of booleans to write
* @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted.
* @returns {!ByteBuffer}
* @expose
*/
ByteBufferPrototype.writeBitSet = function(value, offset) {
var relative = typeof offset === 'undefined';
if (relative) offset = this.offset;
if (!this.noAssert) {
if (!(value instanceof Array))
throw TypeError("Illegal BitSet: Not an array");
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: "+offset+" (not an integer)");
offset >>>= 0;
if (offset < 0 || offset + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength);
}
var start = offset,
bits = value.length,
bytes = (bits >> 3),
bit = 0,
k;
offset += this.writeVarint32(bits,offset);
while(bytes--) {
k = (!!value[bit++] & 1) |
((!!value[bit++] & 1) << 1) |
((!!value[bit++] & 1) << 2) |
((!!value[bit++] & 1) << 3) |
((!!value[bit++] & 1) << 4) |
((!!value[bit++] & 1) << 5) |
((!!value[bit++] & 1) << 6) |
((!!value[bit++] & 1) << 7);
this.writeByte(k,offset++);
}
if(bit < bits) {
var m = 0; k = 0;
while(bit < bits) k = k | ((!!value[bit++] & 1) << (m++));
this.writeByte(k,offset++);
}
if (relative) {
this.offset = offset;
return this;
}
return offset - start;
}
/**
* Reads a BitSet as an array of booleans.
* @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted.
* @returns {Array<boolean>
* @expose
*/
ByteBufferPrototype.readBitSet = function(offset) {
var relative = typeof offset === 'undefined';
if (relative) offset = this.offset;
var ret = this.readVarint32(offset),
bits = ret.value,
bytes = (bits >> 3),
bit = 0,
value = [],
k;
offset += ret.length;
while(bytes--) {
k = this.readByte(offset++);
value[bit++] = !!(k & 0x01);
value[bit++] = !!(k & 0x02);
value[bit++] = !!(k & 0x04);
value[bit++] = !!(k & 0x08);
value[bit++] = !!(k & 0x10);
value[bit++] = !!(k & 0x20);
value[bit++] = !!(k & 0x40);
value[bit++] = !!(k & 0x80);
}
if(bit < bits) {
var m = 0;
k = this.readByte(offset++);
while(bit < bits) value[bit++] = !!((k >> (m++)) & 1);
}
if (relative) {
this.offset = offset;
}
return value;
}
/**
* Reads the specified number of bytes.
* @param {number} length Number of bytes to read
* @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted.
* @returns {!ByteBuffer}
* @expose
*/
ByteBufferPrototype.readBytes = function(length, offset) {
var relative = typeof offset === 'undefined';
if (relative) offset = this.offset;
if (!this.noAssert) {
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: "+offset+" (not an integer)");
offset >>>= 0;
if (offset < 0 || offset + length > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= "+offset+" (+"+length+") <= "+this.buffer.byteLength);
}
var slice = this.slice(offset, offset + length);
if (relative) this.offset += length;
return slice;
};
/**
* Writes a payload of bytes. This is an alias of {@link ByteBuffer#append}.
* @function
* @param {!ByteBuffer|!ArrayBuffer|!Uint8Array|string} source Data to write. If `source` is a ByteBuffer, its offsets
* will be modified according to the performed read operation.
* @param {(string|number)=} encoding Encoding if `data` is a string ("base64", "hex", "binary", defaults to "utf8")
* @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes
* written if omitted.
* @returns {!ByteBuffer} this
* @expose
*/
ByteBufferPrototype.writeBytes = ByteBufferPrototype.append;
// types/ints/int8
/**
* Writes an 8bit signed integer.
* @param {number} value Value to write
* @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.
* @returns {!ByteBuffer} this
* @expose
*/
ByteBufferPrototype.writeInt8 = function(value, offset) {
var relative = typeof offset === 'undefined';
if (relative) offset = this.offset;
if (!this.noAssert) {
if (typeof value !== 'number' || value % 1 !== 0)
throw TypeError("Illegal value: "+value+" (not an integer)");
value |= 0;
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: "+offset+" (not an integer)");
offset >>>= 0;
if (offset < 0 || offset + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength);
}
offset += 1;
var capacity0 = this.buffer.byteLength;
if (offset > capacity0)
this.resize((capacity0 *= 2) > offset ? capacity0 : offset);
offset -= 1;
this.view[offset] = value;
if (relative) this.offset += 1;
return this;
};
/**
* Writes an 8bit signed integer. This is an alias of {@link ByteBuffer#writeInt8}.
* @function
* @param {number} value Value to write
* @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.
* @returns {!ByteBuffer} this
* @expose
*/
ByteBufferPrototype.writeByte = ByteBufferPrototype.writeInt8;
/**
* Reads an 8bit signed integer.
* @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.
* @returns {number} Value read
* @expose
*/
ByteBufferPrototype.readInt8 = function(offset) {
var relative = typeof offset === 'undefined';
if (relative) offset = this.offset;
if (!this.noAssert) {
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: "+offset+" (not an integer)");
offset >>>= 0;
if (offset < 0 || offset + 1 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= "+offset+" (+"+1+") <= "+this.buffer.byteLength);
}
var value = this.view[offset];
if ((value & 0x80) === 0x80) value = -(0xFF - value + 1); // Cast to signed
if (relative) this.offset += 1;
return value;
};
/**
* Reads an 8bit signed integer. This is an alias of {@link ByteBuffer#readInt8}.
* @function
* @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.
* @returns {number} Value read
* @expose
*/
ByteBufferPrototype.readByte = ByteBufferPrototype.readInt8;
/**
* Writes an 8bit unsigned integer.
* @param {number} value Value to write
* @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.
* @returns {!ByteBuffer} this
* @expose
*/
ByteBufferPrototype.writeUint8 = function(value, offset) {
var relative = typeof offset === 'undefined';
if (relative) offset = this.offset;
if (!this.noAssert) {
if (typeof value !== 'number' || value % 1 !== 0)
throw TypeError("Illegal value: "+value+" (not an integer)");
value >>>= 0;
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: "+offset+" (not an integer)");
offset >>>= 0;
if (offset < 0 || offset + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength);
}
offset += 1;
var capacity1 = this.buffer.byteLength;
if (offset > capacity1)
this.resize((capacity1 *= 2) > offset ? capacity1 : offset);
offset -= 1;
this.view[offset] = value;
if (relative) this.offset += 1;
return this;
};
/**
* Writes an 8bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint8}.
* @function
* @param {number} value Value to write
* @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.
* @returns {!ByteBuffer} this
* @expose
*/
ByteBufferPrototype.writeUInt8 = ByteBufferPrototype.writeUint8;
/**
* Reads an 8bit unsigned integer.
* @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.
* @returns {number} Value read
* @expose
*/
ByteBufferPrototype.readUint8 = function(offset) {
var relative = typeof offset === 'undefined';
if (relative) offset = this.offset;
if (!this.noAssert) {
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: "+offset+" (not an integer)");
offset >>>= 0;
if (offset < 0 || offset + 1 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= "+offset+" (+"+1+") <= "+this.buffer.byteLength);
}
var value = this.view[offset];
if (relative) this.offset += 1;
return value;
};
/**
* Reads an 8bit unsigned integer. This is an alias of {@link ByteBuffer#readUint8}.
* @function
* @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.
* @returns {number} Value read
* @expose
*/
ByteBufferPrototype.readUInt8 = ByteBufferPrototype.readUint8;
// types/ints/int16
/**
* Writes a 16bit signed integer.
* @param {number} value Value to write
* @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.
* @throws {TypeError} If `offset` or `value` is not a valid number
* @throws {RangeError} If `offset` is out of bounds
* @expose
*/
ByteBufferPrototype.writeInt16 = function(value, offset) {
var relative = typeof offset === 'undefined';
if (relative) offset = this.offset;
if (!this.noAssert) {
if (typeof value !== 'number' || value % 1 !== 0)
throw TypeError("Illegal value: "+value+" (not an integer)");
value |= 0;
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: "+offset+" (not an integer)");
offset >>>= 0;
if (offset < 0 || offset + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength);
}
offset += 2;
var capacity2 = this.buffer.byteLength;
if (offset > capacity2)
this.resize((capacity2 *= 2) > offset ? capacity2 : offset);
offset -= 2;
if (this.littleEndian) {
this.view[offset+1] = (value & 0xFF00) >>> 8;
this.view[offset ] = value & 0x00FF;
} else {
this.view[offset] = (value & 0xFF00) >>> 8;
this.view[offset+1] = value & 0x00FF;
}
if (relative) this.offset += 2;
return this;
};
/**
* Writes a 16bit signed integer. This is an alias of {@link ByteBuffer#writeInt16}.
* @function
* @param {number} value Value to write
* @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.
* @throws {TypeError} If `offset` or `value` is not a valid number
* @throws {RangeError} If `offset` is out of bounds
* @expose
*/
ByteBufferPrototype.writeShort = ByteBufferPrototype.writeInt16;
/**
* Reads a 16bit signed integer.
* @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.
* @returns {number} Value read
* @throws {TypeError} If `offset` is not a valid number
* @throws {RangeError} If `offset` is out of bounds
* @expose
*/
ByteBufferPrototype.readInt16 = function(offset) {
var relative = typeof offset === 'undefined';
if (relative) offset = this.offset;
if (!this.noAssert) {
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: "+offset+" (not an integer)");
offset >>>= 0;
if (offset < 0 || offset + 2 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= "+offset+" (+"+2+") <= "+this.buffer.byteLength);
}
var value = 0;
if (this.littleEndian) {
value = this.view[offset ];
value |= this.view[offset+1] << 8;
} else {
value = this.view[offset ] << 8;
value |= this.view[offset+1];
}
if ((value & 0x8000) === 0x8000) value = -(0xFFFF - value + 1); // Cast to signed
if (relative) this.offset += 2;
return value;
};
/**
* Reads a 16bit signed integer. This is an alias of {@link ByteBuffer#readInt16}.
* @function
* @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.
* @returns {number} Value read
* @throws {TypeError} If `offset` is not a valid number
* @throws {RangeError} If `offset` is out of bounds
* @expose
*/
ByteBufferPrototype.readShort = ByteBufferPrototype.readInt16;
/**
* Writes a 16bit unsigned integer.
* @param {number} value Value to write
* @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.
* @throws {TypeError} If `offset` or `value` is not a valid number
* @throws {RangeError} If `offset` is out of bounds
* @expose
*/
ByteBufferPrototype.writeUint16 = function(value, offset) {
var relative = typeof offset === 'undefined';
if (relative) offset = this.offset;
if (!this.noAssert) {
if (typeof value !== 'number' || value % 1 !== 0)
throw TypeError("Illegal value: "+value+" (not an integer)");
value >>>= 0;
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: "+offset+" (not an integer)");
offset >>>= 0;
if (offset < 0 || offset + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength);
}
offset += 2;
var capacity3 = this.buffer.byteLength;
if (offset > capacity3)
this.resize((capacity3 *= 2) > offset ? capacity3 : offset);
offset -= 2;
if (this.littleEndian) {
this.view[offset+1] = (value & 0xFF00) >>> 8;
this.view[offset ] = value & 0x00FF;
} else {
this.view[offset] = (value & 0xFF00) >>> 8;
this.view[offset+1] = value & 0x00FF;
}
if (relative) this.offset += 2;
return this;
};
/**
* Writes a 16bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint16}.
* @function
* @param {number} value Value to write
* @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.
* @throws {TypeError} If `offset` or `value` is not a valid number
* @throws {RangeError} If `offset` is out of bounds
* @expose
*/
ByteBufferPrototype.writeUInt16 = ByteBufferPrototype.writeUint16;
/**
* Reads a 16bit unsigned integer.
* @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.
* @returns {number} Value read
* @throws {TypeError} If `offset` is not a valid number
* @throws {RangeError} If `offset` is out of bounds
* @expose
*/
ByteBufferPrototype.readUint16 = function(offset) {
var relative = typeof offset === 'undefined';
if (relative) offset = this.offset;
if (!this.noAssert) {
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: "+offset+" (not an integer)");
offset >>>= 0;
if (offset < 0 || offset + 2 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= "+offset+" (+"+2+") <= "+this.buffer.byteLength);
}
var value = 0;
if (this.littleEndian) {
value = this.view[offset ];
value |= this.view[offset+1] << 8;
} else {
value = this.view[offset ] << 8;
value |= this.view[offset+1];
}
if (relative) this.offset += 2;
return value;
};
/**
* Reads a 16bit unsigned integer. This is an alias of {@link ByteBuffer#readUint16}.
* @function
* @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.
* @returns {number} Value read
* @throws {TypeError} If `offset` is not a valid number
* @throws {RangeError} If `offset` is out of bounds
* @expose
*/
ByteBufferPrototype.readUInt16 = ByteBufferPrototype.readUint16;
// types/ints/int32
/**
* Writes a 32bit signed integer.
* @param {number} value Value to write
* @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.
* @expose
*/
ByteBufferPrototype.writeInt32 = function(value, offset) {
var relative = typeof offset === 'undefined';
if (relative) offset = this.offset;
if (!this.noAssert) {
if (typeof value !== 'number' || value % 1 !== 0)
throw TypeError("Illegal value: "+value+" (not an integer)");
value |= 0;
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: "+offset+" (not an integer)");
offset >>>= 0;
if (offset < 0 || offset + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength);
}
offset += 4;
var capacity4 = this.buffer.byteLength;
if (offset > capacity4)
this.resize((capacity4 *= 2) > offset ? capacity4 : offset);
offset -= 4;
if (this.littleEndian) {
this.view[offset+3] = (value >>> 24) & 0xFF;
this.view[offset+2] = (value >>> 16) & 0xFF;
this.view[offset+1] = (value >>> 8) & 0xFF;
this.view[offset ] = value & 0xFF;
} else {
this.view[offset ] = (value >>> 24) & 0xFF;
this.view[offset+1] = (value >>> 16) & 0xFF;
this.view[offset+2] = (value >>> 8) & 0xFF;
this.view[offset+3] = value & 0xFF;
}
if (relative) this.offset += 4;
return this;
};
/**
* Writes a 32bit signed integer. This is an alias of {@link ByteBuffer#writeInt32}.
* @param {number} value Value to write
* @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.
* @expose
*/
ByteBufferPrototype.writeInt = ByteBufferPrototype.writeInt32;
/**
* Reads a 32bit signed integer.
* @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.
* @returns {number} Value read
* @expose
*/
ByteBufferPrototype.readInt32 = function(offset) {
var relative = typeof offset === 'undefined';
if (relative) offset = this.offset;
if (!this.noAssert) {
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: "+offset+" (not an integer)");
offset >>>= 0;
if (offset < 0 || offset + 4 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= "+offset+" (+"+4+") <= "+this.buffer.byteLength);
}
var value = 0;
if (this.littleEndian) {
value = this.view[offset+2] << 16;
value |= this.view[offset+1] << 8;
value |= this.view[offset ];
value += this.view[offset+3] << 24 >>> 0;
} else {
value = this.view[offset+1] << 16;
value |= this.view[offset+2] << 8;
value |= this.view[offset+3];
value += this.view[offset ] << 24 >>> 0;
}
value |= 0; // Cast to signed
if (relative) this.offset += 4;
return value;
};
/**
* Reads a 32bit signed integer. This is an alias of {@link ByteBuffer#readInt32}.
* @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `4` if omitted.
* @returns {number} Value read
* @expose
*/
ByteBufferPrototype.readInt = ByteBufferPrototype.readInt32;
/**
* Writes a 32bit unsigned integer.
* @param {number} value Value to write
* @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.
* @expose
*/
ByteBufferPrototype.writeUint32 = function(value, offset) {
var relative = typeof offset === 'undefined';
if (relative) offset = this.offset;
if (!this.noAssert) {
if (typeof value !== 'number' || value % 1 !== 0)
throw TypeError("Illegal value: "+value+" (not an integer)");
value >>>= 0;
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: "+offset+" (not an integer)");
offset >>>= 0;
if (offset < 0 || offset + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength);
}
offset += 4;
var capacity5 = this.buffer.byteLength;
if (offset > capacity5)
this.resize((capacity5 *= 2) > offset ? capacity5 : offset);
offset -= 4;
if (this.littleEndian) {
this.view[offset+3] = (value >>> 24) & 0xFF;
this.view[offset+2] = (value >>> 16) & 0xFF;
this.view[offset+1] = (value >>> 8) & 0xFF;
this.view[offset ] = value & 0xFF;
} else {
this.view[offset ] = (value >>> 24) & 0xFF;
this.view[offset+1] = (value >>> 16) & 0xFF;
this.view[offset+2] = (value >>> 8) & 0xFF;
this.view[offset+3] = value & 0xFF;
}
if (relative) this.offset += 4;
return this;
};
/**
* Writes a 32bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint32}.
* @function
* @param {number} value Value to write
* @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.
* @expose
*/
ByteBufferPrototype.writeUInt32 = ByteBufferPrototype.writeUint32;
/**
* Reads a 32bit unsigned integer.
* @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.
* @returns {number} Value read
* @expose
*/
ByteBufferPrototype.readUint32 = function(offset) {
var relative = typeof offset === 'undefined';
if (relative) offset = this.offset;
if (!this.noAssert) {
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: "+offset+" (not an integer)");
offset >>>= 0;
if (offset < 0 || offset + 4 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= "+offset+" (+"+4+") <= "+this.buffer.byteLength);
}
var value = 0;
if (this.littleEndian) {
value = this.view[offset+2] << 16;
value |= this.view[offset+1] << 8;
value |= this.view[offset ];
value += this.view[offset+3] << 24 >>> 0;
} else {
value = this.view[offset+1] << 16;
value |= this.view[offset+2] << 8;
value |= this.view[offset+3];
value += this.view[offset ] << 24 >>> 0;
}
if (relative) this.offset += 4;
return value;
};
/**
* Reads a 32bit unsigned integer. This is an alias of {@link ByteBuffer#readUint32}.
* @function
* @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.
* @returns {number} Value read
* @expose
*/
ByteBufferPrototype.readUInt32 = ByteBufferPrototype.readUint32;
// types/ints/int64
if (Long) {
/**
* Writes a 64bit signed integer.
* @param {number|!Long} value Value to write
* @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.
* @returns {!ByteBuffer} this
* @expose
*/
ByteBufferPrototype.writeInt64 = function(value, offset) {
var relative = typeof offset === 'undefined';
if (relative) offset = this.offset;
if (!this.noAssert) {
if (typeof value === 'number')
value = Long.fromNumber(value);
else if (typeof value === 'string')
value = Long.fromString(value);
else if (!(value && value instanceof Long))
throw TypeError("Illegal value: "+value+" (not an integer or Long)");
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: "+offset+" (not an integer)");
offset >>>= 0;
if (offset < 0 || offset + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength);
}
if (typeof value === 'number')
value = Long.fromNumber(value);
else if (typeof value === 'string')
value = Long.fromString(value);
offset += 8;
var capacity6 = this.buffer.byteLength;
if (offset > capacity6)
this.resize((capacity6 *= 2) > offset ? capacity6 : offset);
offset -= 8;
var lo = value.low,
hi = value.high;
if (this.littleEndian) {
this.view[offset+3] = (lo >>> 24) & 0xFF;
this.view[offset+2] = (lo >>> 16) & 0xFF;
this.view[offset+1] = (lo >>> 8) & 0xFF;
this.view[offset ] = lo & 0xFF;
offset += 4;
this.view[offset+3] = (hi >>> 24) & 0xFF;
this.view[offset+2] = (hi >>> 16) & 0xFF;
this.view[offset+1] = (hi >>> 8) & 0xFF;
this.view[offset ] = hi & 0xFF;
} else {
this.view[offset ] = (hi >>> 24) & 0xFF;
this.view[offset+1] = (hi >>> 16) & 0xFF;
this.view[offset+2] = (hi >>> 8) & 0xFF;
this.view[offset+3] = hi & 0xFF;
offset += 4;
this.view[offset ] = (lo >>> 24) & 0xFF;
this.view[offset+1] = (lo >>> 16) & 0xFF;
this.view[offset+2] = (lo >>> 8) & 0xFF;
this.view[offset+3] = lo & 0xFF;
}
if (relative) this.offset += 8;
return this;
};
/**
* Writes a 64bit signed integer. This is an alias of {@link ByteBuffer#writeInt64}.
* @param {number|!Long} value Value to write
* @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.
* @returns {!ByteBuffer} this
* @expose
*/
ByteBufferPrototype.writeLong = ByteBufferPrototype.writeInt64;
/**
* Reads a 64bit signed integer.
* @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.
* @returns {!Long}
* @expose
*/
ByteBufferPrototype.readInt64 = function(offset) {
var relative = typeof offset === 'undefined';
if (relative) offset = this.offset;
if (!this.noAssert) {
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: "+offset+" (not an integer)");
offset >>>= 0;
if (offset < 0 || offset + 8 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= "+offset+" (+"+8+") <= "+this.buffer.byteLength);
}
var lo = 0,
hi = 0;
if (this.littleEndian) {
lo = this.view[offset+2] << 16;
lo |= this.view[offset+1] << 8;
lo |= this.view[offset ];
lo += this.view[offset+3] << 24 >>> 0;
offset += 4;
hi = this.view[offset+2] << 16;
hi |= this.view[offset+1] << 8;
hi |= this.view[offset ];
hi += this.view[offset+3] << 24 >>> 0;
} else {
hi = this.view[offset+1] << 16;
hi |= this.view[offset+2] << 8;
hi |= this.view[offset+3];
hi += this.view[offset ] << 24 >>> 0;
offset += 4;
lo = this.view[offset+1] << 16;
lo |= this.view[offset+2] << 8;
lo |= this.view[offset+3];
lo += this.view[offset ] << 24 >>> 0;
}
var value = new Long(lo, hi, false);
if (relative) this.offset += 8;
return value;
};
/**
* Reads a 64bit signed integer. This is an alias of {@link ByteBuffer#readInt64}.
* @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.
* @returns {!Long}
* @expose
*/
ByteBufferPrototype.readLong = ByteBufferPrototype.readInt64;
/**
* Writes a 64bit unsigned integer.
* @param {number|!Long} value Value to write
* @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.
* @returns {!ByteBuffer} this
* @expose
*/
ByteBufferPrototype.writeUint64 = function(value, offset) {
var relative = typeof offset === 'undefined';
if (relative) offset = this.offset;
if (!this.noAssert) {
if (typeof value === 'number')
value = Long.fromNumber(value);
else if (typeof value === 'string')
value = Long.fromString(value);
else if (!(value && value instanceof Long))
throw TypeError("Illegal value: "+value+" (not an integer or Long)");
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: "+offset+" (not an integer)");
offset >>>= 0;
if (offset < 0 || offset + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength);
}
if (typeof value === 'number')
value = Long.fromNumber(value);
else if (typeof value === 'string')
value = Long.fromString(value);
offset += 8;
var capacity7 = this.buffer.byteLength;
if (offset > capacity7)
this.resize((capacity7 *= 2) > offset ? capacity7 : offset);
offset -= 8;
var lo = value.low,
hi = value.high;
if (this.littleEndian) {
this.view[offset+3] = (lo >>> 24) & 0xFF;
this.view[offset+2] = (lo >>> 16) & 0xFF;
this.view[offset+1] = (lo >>> 8) & 0xFF;
this.view[offset ] = lo & 0xFF;
offset += 4;
this.view[offset+3] = (hi >>> 24) & 0xFF;
this.view[offset+2] = (hi >>> 16) & 0xFF;
this.view[offset+1] = (hi >>> 8) & 0xFF;
this.view[offset ] = hi & 0xFF;
} else {
this.view[offset ] = (hi >>> 24) & 0xFF;
this.view[offset+1] = (hi >>> 16) & 0xFF;
this.view[offset+2] = (hi >>> 8) & 0xFF;
this.view[offset+3] = hi & 0xFF;
offset += 4;
this.view[offset ] = (lo >>> 24) & 0xFF;
this.view[offset+1] = (lo >>> 16) & 0xFF;
this.view[offset+2] = (lo >>> 8) & 0xFF;
this.view[offset+3] = lo & 0xFF;
}
if (relative) this.offset += 8;
return this;
};
/**
* Writes a 64bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint64}.
* @function
* @param {number|!Long} value Value to write
* @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.
* @returns {!ByteBuffer} this
* @expose
*/
ByteBufferPrototype.writeUInt64 = ByteBufferPrototype.writeUint64;
/**
* Reads a 64bit unsigned integer.
* @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.
* @returns {!Long}
* @expose
*/
ByteBufferPrototype.readUint64 = function(offset) {
var relative = typeof offset === 'undefined';
if (relative) offset = this.offset;
if (!this.noAssert) {
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: "+offset+" (not an integer)");
offset >>>= 0;
if (offset < 0 || offset + 8 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= "+offset+" (+"+8+") <= "+this.buffer.byteLength);
}
var lo = 0,
hi = 0;
if (this.littleEndian) {
lo = this.view[offset+2] << 16;
lo |= this.view[offset+1] << 8;
lo |= this.view[offset ];
lo += this.view[offset+3] << 24 >>> 0;
offset += 4;
hi = this.view[offset+2] << 16;
hi |= this.view[offset+1] << 8;
hi |= this.view[offset ];
hi += this.view[offset+3] << 24 >>> 0;
} else {
hi = this.view[offset+1] << 16;
hi |= this.view[offset+2] << 8;
hi |= this.view[offset+3];
hi += this.view[offset ] << 24 >>> 0;
offset += 4;
lo = this.view[offset+1] << 16;
lo |= this.view[offset+2] << 8;
lo |= this.view[offset+3];
lo += this.view[offset ] << 24 >>> 0;
}
var value = new Long(lo, hi, true);
if (relative) this.offset += 8;
return value;
};
/**
* Reads a 64bit unsigned integer. This is an alias of {@link ByteBuffer#readUint64}.
* @function
* @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.
* @returns {!Long}
* @expose
*/
ByteBufferPrototype.readUInt64 = ByteBufferPrototype.readUint64;
} // Long
// types/floats/float32
/*
ieee754 - https://github.com/feross/ieee754
The MIT License (MIT)
Copyright (c) Feross Aboukhadijeh
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
/**
* Reads an IEEE754 float from a byte array.
* @param {!Array} buffer
* @param {number} offset
* @param {boolean} isLE
* @param {number} mLen
* @param {number} nBytes
* @returns {number}
* @inner
*/
function ieee754_read(buffer, offset, isLE, mLen, nBytes) {
var e, m,
eLen = nBytes * 8 - mLen - 1,
eMax = (1 << eLen) - 1,
eBias = eMax >> 1,
nBits = -7,
i = isLE ? (nBytes - 1) : 0,
d = isLE ? -1 : 1,
s = buffer[offset + i];
i += d;
e = s & ((1 << (-nBits)) - 1);
s >>= (-nBits);
nBits += eLen;
for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}
m = e & ((1 << (-nBits)) - 1);
e >>= (-nBits);
nBits += mLen;
for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}
if (e === 0) {
e = 1 - eBias;
} else if (e === eMax) {
return m ? NaN : ((s ? -1 : 1) * Infinity);
} else {
m = m + Math.pow(2, mLen);
e = e - eBias;
}
return (s ? -1 : 1) * m * Math.pow(2, e - mLen);
}
/**
* Writes an IEEE754 float to a byte array.
* @param {!Array} buffer
* @param {number} value
* @param {number} offset
* @param {boolean} isLE
* @param {number} mLen
* @param {number} nBytes
* @inner
*/
function ieee754_write(buffer, value, offset, isLE, mLen, nBytes) {
var e, m, c,
eLen = nBytes * 8 - mLen - 1,
eMax = (1 << eLen) - 1,
eBias = eMax >> 1,
rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0),
i = isLE ? 0 : (nBytes - 1),
d = isLE ? 1 : -1,
s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;
value = Math.abs(value);
if (isNaN(value) || value === Infinity) {
m = isNaN(value) ? 1 : 0;
e = eMax;
} else {
e = Math.floor(Math.log(value) / Math.LN2);
if (value * (c = Math.pow(2, -e)) < 1) {
e--;
c *= 2;
}
if (e + eBias >= 1) {
value += rt / c;
} else {
value += rt * Math.pow(2, 1 - eBias);
}
if (value * c >= 2) {
e++;
c /= 2;
}
if (e + eBias >= eMax) {
m = 0;
e = eMax;
} else if (e + eBias >= 1) {
m = (value * c - 1) * Math.pow(2, mLen);
e = e + eBias;
} else {
m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);
e = 0;
}
}
for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}
e = (e << mLen) | m;
eLen += mLen;
for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}
buffer[offset + i - d] |= s * 128;
}
/**
* Writes a 32bit float.
* @param {number} value Value to write
* @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.
* @returns {!ByteBuffer} this
* @expose
*/
ByteBufferPrototype.writeFloat32 = function(value, offset) {
var relative = typeof offset === 'undefined';
if (relative) offset = this.offset;
if (!this.noAssert) {
if (typeof value !== 'number')
throw TypeError("Illegal value: "+value+" (not a number)");
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: "+offset+" (not an integer)");
offset >>>= 0;
if (offset < 0 || offset + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength);
}
offset += 4;
var capacity8 = this.buffer.byteLength;
if (offset > capacity8)
this.resize((capacity8 *= 2) > offset ? capacity8 : offset);
offset -= 4;
ieee754_write(this.view, value, offset, this.littleEndian, 23, 4);
if (relative) this.offset += 4;
return this;
};
/**
* Writes a 32bit float. This is an alias of {@link ByteBuffer#writeFloat32}.
* @function
* @param {number} value Value to write
* @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.
* @returns {!ByteBuffer} this
* @expose
*/
ByteBufferPrototype.writeFloat = ByteBufferPrototype.writeFloat32;
/**
* Reads a 32bit float.
* @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.
* @returns {number}
* @expose
*/
ByteBufferPrototype.readFloat32 = function(offset) {
var relative = typeof offset === 'undefined';
if (relative) offset = this.offset;
if (!this.noAssert) {
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: "+offset+" (not an integer)");
offset >>>= 0;
if (offset < 0 || offset + 4 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= "+offset+" (+"+4+") <= "+this.buffer.byteLength);
}
var value = ieee754_read(this.view, offset, this.littleEndian, 23, 4);
if (relative) this.offset += 4;
return value;
};
/**
* Reads a 32bit float. This is an alias of {@link ByteBuffer#readFloat32}.
* @function
* @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.
* @returns {number}
* @expose
*/
ByteBufferPrototype.readFloat = ByteBufferPrototype.readFloat32;
// types/floats/float64
/**
* Writes a 64bit float.
* @param {number} value Value to write
* @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.
* @returns {!ByteBuffer} this
* @expose
*/
ByteBufferPrototype.writeFloat64 = function(value, offset) {
var relative = typeof offset === 'undefined';
if (relative) offset = this.offset;
if (!this.noAssert) {
if (typeof value !== 'number')
throw TypeError("Illegal value: "+value+" (not a number)");
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: "+offset+" (not an integer)");
offset >>>= 0;
if (offset < 0 || offset + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength);
}
offset += 8;
var capacity9 = this.buffer.byteLength;
if (offset > capacity9)
this.resize((capacity9 *= 2) > offset ? capacity9 : offset);
offset -= 8;
ieee754_write(this.view, value, offset, this.littleEndian, 52, 8);
if (relative) this.offset += 8;
return this;
};
/**
* Writes a 64bit float. This is an alias of {@link ByteBuffer#writeFloat64}.
* @function
* @param {number} value Value to write
* @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.
* @returns {!ByteBuffer} this
* @expose
*/
ByteBufferPrototype.writeDouble = ByteBufferPrototype.writeFloat64;
/**
* Reads a 64bit float.
* @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.
* @returns {number}
* @expose
*/
ByteBufferPrototype.readFloat64 = function(offset) {
var relative = typeof offset === 'undefined';
if (relative) offset = this.offset;
if (!this.noAssert) {
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: "+offset+" (not an integer)");
offset >>>= 0;
if (offset < 0 || offset + 8 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= "+offset+" (+"+8+") <= "+this.buffer.byteLength);
}
var value = ieee754_read(this.view, offset, this.littleEndian, 52, 8);
if (relative) this.offset += 8;
return value;
};
/**
* Reads a 64bit float. This is an alias of {@link ByteBuffer#readFloat64}.
* @function
* @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.
* @returns {number}
* @expose
*/
ByteBufferPrototype.readDouble = ByteBufferPrototype.readFloat64;
// types/varints/varint32
/**
* Maximum number of bytes required to store a 32bit base 128 variable-length integer.
* @type {number}
* @const
* @expose
*/
ByteBuffer.MAX_VARINT32_BYTES = 5;
/**
* Calculates the actual number of bytes required to store a 32bit base 128 variable-length integer.
* @param {number} value Value to encode
* @returns {number} Number of bytes required. Capped to {@link ByteBuffer.MAX_VARINT32_BYTES}
* @expose
*/
ByteBuffer.calculateVarint32 = function(value) {
// ref: src/google/protobuf/io/coded_stream.cc
value = value >>> 0;
if (value < 1 << 7 ) return 1;
else if (value < 1 << 14) return 2;
else if (value < 1 << 21) return 3;
else if (value < 1 << 28) return 4;
else return 5;
};
/**
* Zigzag encodes a signed 32bit integer so that it can be effectively used with varint encoding.
* @param {number} n Signed 32bit integer
* @returns {number} Unsigned zigzag encoded 32bit integer
* @expose
*/
ByteBuffer.zigZagEncode32 = function(n) {
return (((n |= 0) << 1) ^ (n >> 31)) >>> 0; // ref: src/google/protobuf/wire_format_lite.h
};
/**
* Decodes a zigzag encoded signed 32bit integer.
* @param {number} n Unsigned zigzag encoded 32bit integer
* @returns {number} Signed 32bit integer
* @expose
*/
ByteBuffer.zigZagDecode32 = function(n) {
return ((n >>> 1) ^ -(n & 1)) | 0; // // ref: src/google/protobuf/wire_format_lite.h
};
/**
* Writes a 32bit base 128 variable-length integer.
* @param {number} value Value to write
* @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes
* written if omitted.
* @returns {!ByteBuffer|number} this if `offset` is omitted, else the actual number of bytes written
* @expose
*/
ByteBufferPrototype.writeVarint32 = function(value, offset) {
var relative = typeof offset === 'undefined';
if (relative) offset = this.offset;
if (!this.noAssert) {
if (typeof value !== 'number' || value % 1 !== 0)
throw TypeError("Illegal value: "+value+" (not an integer)");
value |= 0;
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: "+offset+" (not an integer)");
offset >>>= 0;
if (offset < 0 || offset + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength);
}
var size = ByteBuffer.calculateVarint32(value),
b;
offset += size;
var capacity10 = this.buffer.byteLength;
if (offset > capacity10)
this.resize((capacity10 *= 2) > offset ? capacity10 : offset);
offset -= size;
value >>>= 0;
while (value >= 0x80) {
b = (value & 0x7f) | 0x80;
this.view[offset++] = b;
value >>>= 7;
}
this.view[offset++] = value;
if (relative) {
this.offset = offset;
return this;
}
return size;
};
/**
* Writes a zig-zag encoded (signed) 32bit base 128 variable-length integer.
* @param {number} value Value to write
* @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes
* written if omitted.
* @returns {!ByteBuffer|number} this if `offset` is omitted, else the actual number of bytes written
* @expose
*/
ByteBufferPrototype.writeVarint32ZigZag = function(value, offset) {
return this.writeVarint32(ByteBuffer.zigZagEncode32(value), offset);
};
/**
* Reads a 32bit base 128 variable-length integer.
* @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes
* written if omitted.
* @returns {number|!{value: number, length: number}} The value read if offset is omitted, else the value read
* and the actual number of bytes read.
* @throws {Error} If it's not a valid varint. Has a property `truncated = true` if there is not enough data available
* to fully decode the varint.
* @expose
*/
ByteBufferPrototype.readVarint32 = function(offset) {
var relative = typeof offset === 'undefined';
if (relative) offset = this.offset;
if (!this.noAssert) {
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: "+offset+" (not an integer)");
offset >>>= 0;
if (offset < 0 || offset + 1 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= "+offset+" (+"+1+") <= "+this.buffer.byteLength);
}
var c = 0,
value = 0 >>> 0,
b;
do {
if (!this.noAssert && offset > this.limit) {
var err = Error("Truncated");
err['truncated'] = true;
throw err;
}
b = this.view[offset++];
if (c < 5)
value |= (b & 0x7f) << (7*c);
++c;
} while ((b & 0x80) !== 0);
value |= 0;
if (relative) {
this.offset = offset;
return value;
}
return {
"value": value,
"length": c
};
};
/**
* Reads a zig-zag encoded (signed) 32bit base 128 variable-length integer.
* @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes
* written if omitted.
* @returns {number|!{value: number, length: number}} The value read if offset is omitted, else the value read
* and the actual number of bytes read.
* @throws {Error} If it's not a valid varint
* @expose
*/
ByteBufferPrototype.readVarint32ZigZag = function(offset) {
var val = this.readVarint32(offset);
if (typeof val === 'object')
val["value"] = ByteBuffer.zigZagDecode32(val["value"]);
else
val = ByteBuffer.zigZagDecode32(val);
return val;
};
// types/varints/varint64
if (Long) {
/**
* Maximum number of bytes required to store a 64bit base 128 variable-length integer.
* @type {number}
* @const
* @expose
*/
ByteBuffer.MAX_VARINT64_BYTES = 10;
/**
* Calculates the actual number of bytes required to store a 64bit base 128 variable-length integer.
* @param {number|!Long} value Value to encode
* @returns {number} Number of bytes required. Capped to {@link ByteBuffer.MAX_VARINT64_BYTES}
* @expose
*/
ByteBuffer.calculateVarint64 = function(value) {
if (typeof value === 'number')
value = Long.fromNumber(value);
else if (typeof value === 'string')
value = Long.fromString(value);
// ref: src/google/protobuf/io/coded_stream.cc
var part0 = value.toInt() >>> 0,
part1 = value.shiftRightUnsigned(28).toInt() >>> 0,
part2 = value.shiftRightUnsigned(56).toInt() >>> 0;
if (part2 == 0) {
if (part1 == 0) {
if (part0 < 1 << 14)
return part0 < 1 << 7 ? 1 : 2;
else
return part0 < 1 << 21 ? 3 : 4;
} else {
if (part1 < 1 << 14)
return part1 < 1 << 7 ? 5 : 6;
else
return part1 < 1 << 21 ? 7 : 8;
}
} else
return part2 < 1 << 7 ? 9 : 10;
};
/**
* Zigzag encodes a signed 64bit integer so that it can be effectively used with varint encoding.
* @param {number|!Long} value Signed long
* @returns {!Long} Unsigned zigzag encoded long
* @expose
*/
ByteBuffer.zigZagEncode64 = function(value) {
if (typeof value === 'number')
value = Long.fromNumber(value, false);
else if (typeof value === 'string')
value = Long.fromString(value, false);
else if (value.unsigned !== false) value = value.toSigned();
// ref: src/google/protobuf/wire_format_lite.h
return value.shiftLeft(1).xor(value.shiftRight(63)).toUnsigned();
};
/**
* Decodes a zigzag encoded signed 64bit integer.
* @param {!Long|number} value Unsigned zigzag encoded long or JavaScript number
* @returns {!Long} Signed long
* @expose
*/
ByteBuffer.zigZagDecode64 = function(value) {
if (typeof value === 'number')
value = Long.fromNumber(value, false);
else if (typeof value === 'string')
value = Long.fromString(value, false);
else if (value.unsigned !== false) value = value.toSigned();
// ref: src/google/protobuf/wire_format_lite.h
return value.shiftRightUnsigned(1).xor(value.and(Long.ONE).toSigned().negate()).toSigned();
};
/**
* Writes a 64bit base 128 variable-length integer.
* @param {number|Long} value Value to write
* @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes
* written if omitted.
* @returns {!ByteBuffer|number} `this` if offset is omitted, else the actual number of bytes written.
* @expose
*/
ByteBufferPrototype.writeVarint64 = function(value, offset) {
var relative = typeof offset === 'undefined';
if (relative) offset = this.offset;
if (!this.noAssert) {
if (typeof value === 'number')
value = Long.fromNumber(value);
else if (typeof value === 'string')
value = Long.fromString(value);
else if (!(value && value instanceof Long))
throw TypeError("Illegal value: "+value+" (not an integer or Long)");
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: "+offset+" (not an integer)");
offset >>>= 0;
if (offset < 0 || offset + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength);
}
if (typeof value === 'number')
value = Long.fromNumber(value, false);
else if (typeof value === 'string')
value = Long.fromString(value, false);
else if (value.unsigned !== false) value = value.toSigned();
var size = ByteBuffer.calculateVarint64(value),
part0 = value.toInt() >>> 0,
part1 = value.shiftRightUnsigned(28).toInt() >>> 0,
part2 = value.shiftRightUnsigned(56).toInt() >>> 0;
offset += size;
var capacity11 = this.buffer.byteLength;
if (offset > capacity11)
this.resize((capacity11 *= 2) > offset ? capacity11 : offset);
offset -= size;
switch (size) {
case 10: this.view[offset+9] = (part2 >>> 7) & 0x01;
case 9 : this.view[offset+8] = size !== 9 ? (part2 ) | 0x80 : (part2 ) & 0x7F;
case 8 : this.view[offset+7] = size !== 8 ? (part1 >>> 21) | 0x80 : (part1 >>> 21) & 0x7F;
case 7 : this.view[offset+6] = size !== 7 ? (part1 >>> 14) | 0x80 : (part1 >>> 14) & 0x7F;
case 6 : this.view[offset+5] = size !== 6 ? (part1 >>> 7) | 0x80 : (part1 >>> 7) & 0x7F;
case 5 : this.view[offset+4] = size !== 5 ? (part1 ) | 0x80 : (part1 ) & 0x7F;
case 4 : this.view[offset+3] = size !== 4 ? (part0 >>> 21) | 0x80 : (part0 >>> 21) & 0x7F;
case 3 : this.view[offset+2] = size !== 3 ? (part0 >>> 14) | 0x80 : (part0 >>> 14) & 0x7F;
case 2 : this.view[offset+1] = size !== 2 ? (part0 >>> 7) | 0x80 : (part0 >>> 7) & 0x7F;
case 1 : this.view[offset ] = size !== 1 ? (part0 ) | 0x80 : (part0 ) & 0x7F;
}
if (relative) {
this.offset += size;
return this;
} else {
return size;
}
};
/**
* Writes a zig-zag encoded 64bit base 128 variable-length integer.
* @param {number|Long} value Value to write
* @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes
* written if omitted.
* @returns {!ByteBuffer|number} `this` if offset is omitted, else the actual number of bytes written.
* @expose
*/
ByteBufferPrototype.writeVarint64ZigZag = function(value, offset) {
return this.writeVarint64(ByteBuffer.zigZagEncode64(value), offset);
};
/**
* Reads a 64bit base 128 variable-length integer. Requires Long.js.
* @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes
* read if omitted.
* @returns {!Long|!{value: Long, length: number}} The value read if offset is omitted, else the value read and
* the actual number of bytes read.
* @throws {Error} If it's not a valid varint
* @expose
*/
ByteBufferPrototype.readVarint64 = function(offset) {
var relative = typeof offset === 'undefined';
if (relative) offset = this.offset;
if (!this.noAssert) {
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: "+offset+" (not an integer)");
offset >>>= 0;
if (offset < 0 || offset + 1 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= "+offset+" (+"+1+") <= "+this.buffer.byteLength);
}
// ref: src/google/protobuf/io/coded_stream.cc
var start = offset,
part0 = 0,
part1 = 0,
part2 = 0,
b = 0;
b = this.view[offset++]; part0 = (b & 0x7F) ; if ( b & 0x80 ) {
b = this.view[offset++]; part0 |= (b & 0x7F) << 7; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {
b = this.view[offset++]; part0 |= (b & 0x7F) << 14; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {
b = this.view[offset++]; part0 |= (b & 0x7F) << 21; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {
b = this.view[offset++]; part1 = (b & 0x7F) ; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {
b = this.view[offset++]; part1 |= (b & 0x7F) << 7; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {
b = this.view[offset++]; part1 |= (b & 0x7F) << 14; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {
b = this.view[offset++]; part1 |= (b & 0x7F) << 21; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {
b = this.view[offset++]; part2 = (b & 0x7F) ; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {
b = this.view[offset++]; part2 |= (b & 0x7F) << 7; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {
throw Error("Buffer overrun"); }}}}}}}}}}
var value = Long.fromBits(part0 | (part1 << 28), (part1 >>> 4) | (part2) << 24, false);
if (relative) {
this.offset = offset;
return value;
} else {
return {
'value': value,
'length': offset-start
};
}
};
/**
* Reads a zig-zag encoded 64bit base 128 variable-length integer. Requires Long.js.
* @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes
* read if omitted.
* @returns {!Long|!{value: Long, length: number}} The value read if offset is omitted, else the value read and
* the actual number of bytes read.
* @throws {Error} If it's not a valid varint
* @expose
*/
ByteBufferPrototype.readVarint64ZigZag = function(offset) {
var val = this.readVarint64(offset);
if (val && val['value'] instanceof Long)
val["value"] = ByteBuffer.zigZagDecode64(val["value"]);
else
val = ByteBuffer.zigZagDecode64(val);
return val;
};
} // Long
// types/strings/cstring
/**
* Writes a NULL-terminated UTF8 encoded string. For this to work the specified string must not contain any NULL
* characters itself.
* @param {string} str String to write
* @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes
* contained in `str` + 1 if omitted.
* @returns {!ByteBuffer|number} this if offset is omitted, else the actual number of bytes written
* @expose
*/
ByteBufferPrototype.writeCString = function(str, offset) {
var relative = typeof offset === 'undefined';
if (relative) offset = this.offset;
var i,
k = str.length;
if (!this.noAssert) {
if (typeof str !== 'string')
throw TypeError("Illegal str: Not a string");
for (i=0; i<k; ++i) {
if (str.charCodeAt(i) === 0)
throw RangeError("Illegal str: Contains NULL-characters");
}
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: "+offset+" (not an integer)");
offset >>>= 0;
if (offset < 0 || offset + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength);
}
// UTF8 strings do not contain zero bytes in between except for the zero character, so:
k = utfx.calculateUTF16asUTF8(stringSource(str))[1];
offset += k+1;
var capacity12 = this.buffer.byteLength;
if (offset > capacity12)
this.resize((capacity12 *= 2) > offset ? capacity12 : offset);
offset -= k+1;
utfx.encodeUTF16toUTF8(stringSource(str), function(b) {
this.view[offset++] = b;
}.bind(this));
this.view[offset++] = 0;
if (relative) {
this.offset = offset;
return this;
}
return k;
};
/**
* Reads a NULL-terminated UTF8 encoded string. For this to work the string read must not contain any NULL characters
* itself.
* @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes
* read if omitted.
* @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string
* read and the actual number of bytes read.
* @expose
*/
ByteBufferPrototype.readCString = function(offset) {
var relative = typeof offset === 'undefined';
if (relative) offset = this.offset;
if (!this.noAssert) {
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: "+offset+" (not an integer)");
offset >>>= 0;
if (offset < 0 || offset + 1 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= "+offset+" (+"+1+") <= "+this.buffer.byteLength);
}
var start = offset,
temp;
// UTF8 strings do not contain zero bytes in between except for the zero character itself, so:
var sd, b = -1;
utfx.decodeUTF8toUTF16(function() {
if (b === 0) return null;
if (offset >= this.limit)
throw RangeError("Illegal range: Truncated data, "+offset+" < "+this.limit);
b = this.view[offset++];
return b === 0 ? null : b;
}.bind(this), sd = stringDestination(), true);
if (relative) {
this.offset = offset;
return sd();
} else {
return {
"string": sd(),
"length": offset - start
};
}
};
// types/strings/istring
/**
* Writes a length as uint32 prefixed UTF8 encoded string.
* @param {string} str String to write
* @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes
* written if omitted.
* @returns {!ByteBuffer|number} `this` if `offset` is omitted, else the actual number of bytes written
* @expose
* @see ByteBuffer#writeVarint32
*/
ByteBufferPrototype.writeIString = function(str, offset) {
var relative = typeof offset === 'undefined';
if (relative) offset = this.offset;
if (!this.noAssert) {
if (typeof str !== 'string')
throw TypeError("Illegal str: Not a string");
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: "+offset+" (not an integer)");
offset >>>= 0;
if (offset < 0 || offset + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength);
}
var start = offset,
k;
k = utfx.calculateUTF16asUTF8(stringSource(str), this.noAssert)[1];
offset += 4+k;
var capacity13 = this.buffer.byteLength;
if (offset > capacity13)
this.resize((capacity13 *= 2) > offset ? capacity13 : offset);
offset -= 4+k;
if (this.littleEndian) {
this.view[offset+3] = (k >>> 24) & 0xFF;
this.view[offset+2] = (k >>> 16) & 0xFF;
this.view[offset+1] = (k >>> 8) & 0xFF;
this.view[offset ] = k & 0xFF;
} else {
this.view[offset ] = (k >>> 24) & 0xFF;
this.view[offset+1] = (k >>> 16) & 0xFF;
this.view[offset+2] = (k >>> 8) & 0xFF;
this.view[offset+3] = k & 0xFF;
}
offset += 4;
utfx.encodeUTF16toUTF8(stringSource(str), function(b) {
this.view[offset++] = b;
}.bind(this));
if (offset !== start + 4 + k)
throw RangeError("Illegal range: Truncated data, "+offset+" == "+(offset+4+k));
if (relative) {
this.offset = offset;
return this;
}
return offset - start;
};
/**
* Reads a length as uint32 prefixed UTF8 encoded string.
* @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes
* read if omitted.
* @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string
* read and the actual number of bytes read.
* @expose
* @see ByteBuffer#readVarint32
*/
ByteBufferPrototype.readIString = function(offset) {
var relative = typeof offset === 'undefined';
if (relative) offset = this.offset;
if (!this.noAssert) {
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: "+offset+" (not an integer)");
offset >>>= 0;
if (offset < 0 || offset + 4 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= "+offset+" (+"+4+") <= "+this.buffer.byteLength);
}
var start = offset;
var len = this.readUint32(offset);
var str = this.readUTF8String(len, ByteBuffer.METRICS_BYTES, offset += 4);
offset += str['length'];
if (relative) {
this.offset = offset;
return str['string'];
} else {
return {
'string': str['string'],
'length': offset - start
};
}
};
// types/strings/utf8string
/**
* Metrics representing number of UTF8 characters. Evaluates to `c`.
* @type {string}
* @const
* @expose
*/
ByteBuffer.METRICS_CHARS = 'c';
/**
* Metrics representing number of bytes. Evaluates to `b`.
* @type {string}
* @const
* @expose
*/
ByteBuffer.METRICS_BYTES = 'b';
/**
* Writes an UTF8 encoded string.
* @param {string} str String to write
* @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} if omitted.
* @returns {!ByteBuffer|number} this if offset is omitted, else the actual number of bytes written.
* @expose
*/
ByteBufferPrototype.writeUTF8String = function(str, offset) {
var relative = typeof offset === 'undefined';
if (relative) offset = this.offset;
if (!this.noAssert) {
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: "+offset+" (not an integer)");
offset >>>= 0;
if (offset < 0 || offset + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength);
}
var k;
var start = offset;
k = utfx.calculateUTF16asUTF8(stringSource(str))[1];
offset += k;
var capacity14 = this.buffer.byteLength;
if (offset > capacity14)
this.resize((capacity14 *= 2) > offset ? capacity14 : offset);
offset -= k;
utfx.encodeUTF16toUTF8(stringSource(str), function(b) {
this.view[offset++] = b;
}.bind(this));
if (relative) {
this.offset = offset;
return this;
}
return offset - start;
};
/**
* Writes an UTF8 encoded string. This is an alias of {@link ByteBuffer#writeUTF8String}.
* @function
* @param {string} str String to write
* @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} if omitted.
* @returns {!ByteBuffer|number} this if offset is omitted, else the actual number of bytes written.
* @expose
*/
ByteBufferPrototype.writeString = ByteBufferPrototype.writeUTF8String;
/**
* Calculates the number of UTF8 characters of a string. JavaScript itself uses UTF-16, so that a string's
* `length` property does not reflect its actual UTF8 size if it contains code points larger than 0xFFFF.
* @param {string} str String to calculate
* @returns {number} Number of UTF8 characters
* @expose
*/
ByteBuffer.calculateUTF8Chars = function(str) {
return utfx.calculateUTF16asUTF8(stringSource(str))[0];
};
/**
* Calculates the number of UTF8 bytes of a string.
* @param {string} str String to calculate
* @returns {number} Number of UTF8 bytes
* @expose
*/
ByteBuffer.calculateUTF8Bytes = function(str) {
return utfx.calculateUTF16asUTF8(stringSource(str))[1];
};
/**
* Calculates the number of UTF8 bytes of a string. This is an alias of {@link ByteBuffer.calculateUTF8Bytes}.
* @function
* @param {string} str String to calculate
* @returns {number} Number of UTF8 bytes
* @expose
*/
ByteBuffer.calculateString = ByteBuffer.calculateUTF8Bytes;
/**
* Reads an UTF8 encoded string.
* @param {number} length Number of characters or bytes to read.
* @param {string=} metrics Metrics specifying what `length` is meant to count. Defaults to
* {@link ByteBuffer.METRICS_CHARS}.
* @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes
* read if omitted.
* @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string
* read and the actual number of bytes read.
* @expose
*/
ByteBufferPrototype.readUTF8String = function(length, metrics, offset) {
if (typeof metrics === 'number') {
offset = metrics;
metrics = undefined;
}
var relative = typeof offset === 'undefined';
if (relative) offset = this.offset;
if (typeof metrics === 'undefined') metrics = ByteBuffer.METRICS_CHARS;
if (!this.noAssert) {
if (typeof length !== 'number' || length % 1 !== 0)
throw TypeError("Illegal length: "+length+" (not an integer)");
length |= 0;
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: "+offset+" (not an integer)");
offset >>>= 0;
if (offset < 0 || offset + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength);
}
var i = 0,
start = offset,
sd;
if (metrics === ByteBuffer.METRICS_CHARS) { // The same for node and the browser
sd = stringDestination();
utfx.decodeUTF8(function() {
return i < length && offset < this.limit ? this.view[offset++] : null;
}.bind(this), function(cp) {
++i; utfx.UTF8toUTF16(cp, sd);
});
if (i !== length)
throw RangeError("Illegal range: Truncated data, "+i+" == "+length);
if (relative) {
this.offset = offset;
return sd();
} else {
return {
"string": sd(),
"length": offset - start
};
}
} else if (metrics === ByteBuffer.METRICS_BYTES) {
if (!this.noAssert) {
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: "+offset+" (not an integer)");
offset >>>= 0;
if (offset < 0 || offset + length > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= "+offset+" (+"+length+") <= "+this.buffer.byteLength);
}
var k = offset + length;
utfx.decodeUTF8toUTF16(function() {
return offset < k ? this.view[offset++] : null;
}.bind(this), sd = stringDestination(), this.noAssert);
if (offset !== k)
throw RangeError("Illegal range: Truncated data, "+offset+" == "+k);
if (relative) {
this.offset = offset;
return sd();
} else {
return {
'string': sd(),
'length': offset - start
};
}
} else
throw TypeError("Unsupported metrics: "+metrics);
};
/**
* Reads an UTF8 encoded string. This is an alias of {@link ByteBuffer#readUTF8String}.
* @function
* @param {number} length Number of characters or bytes to read
* @param {number=} metrics Metrics specifying what `n` is meant to count. Defaults to
* {@link ByteBuffer.METRICS_CHARS}.
* @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes
* read if omitted.
* @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string
* read and the actual number of bytes read.
* @expose
*/
ByteBufferPrototype.readString = ByteBufferPrototype.readUTF8String;
// types/strings/vstring
/**
* Writes a length as varint32 prefixed UTF8 encoded string.
* @param {string} str String to write
* @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes
* written if omitted.
* @returns {!ByteBuffer|number} `this` if `offset` is omitted, else the actual number of bytes written
* @expose
* @see ByteBuffer#writeVarint32
*/
ByteBufferPrototype.writeVString = function(str, offset) {
var relative = typeof offset === 'undefined';
if (relative) offset = this.offset;
if (!this.noAssert) {
if (typeof str !== 'string')
throw TypeError("Illegal str: Not a string");
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: "+offset+" (not an integer)");
offset >>>= 0;
if (offset < 0 || offset + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength);
}
var start = offset,
k, l;
k = utfx.calculateUTF16asUTF8(stringSource(str), this.noAssert)[1];
l = ByteBuffer.calculateVarint32(k);
offset += l+k;
var capacity15 = this.buffer.byteLength;
if (offset > capacity15)
this.resize((capacity15 *= 2) > offset ? capacity15 : offset);
offset -= l+k;
offset += this.writeVarint32(k, offset);
utfx.encodeUTF16toUTF8(stringSource(str), function(b) {
this.view[offset++] = b;
}.bind(this));
if (offset !== start+k+l)
throw RangeError("Illegal range: Truncated data, "+offset+" == "+(offset+k+l));
if (relative) {
this.offset = offset;
return this;
}
return offset - start;
};
/**
* Reads a length as varint32 prefixed UTF8 encoded string.
* @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes
* read if omitted.
* @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string
* read and the actual number of bytes read.
* @expose
* @see ByteBuffer#readVarint32
*/
ByteBufferPrototype.readVString = function(offset) {
var relative = typeof offset === 'undefined';
if (relative) offset = this.offset;
if (!this.noAssert) {
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: "+offset+" (not an integer)");
offset >>>= 0;
if (offset < 0 || offset + 1 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= "+offset+" (+"+1+") <= "+this.buffer.byteLength);
}
var start = offset;
var len = this.readVarint32(offset);
var str = this.readUTF8String(len['value'], ByteBuffer.METRICS_BYTES, offset += len['length']);
offset += str['length'];
if (relative) {
this.offset = offset;
return str['string'];
} else {
return {
'string': str['string'],
'length': offset - start
};
}
};
/**
* Appends some data to this ByteBuffer. This will overwrite any contents behind the specified offset up to the appended
* data's length.
* @param {!ByteBuffer|!ArrayBuffer|!Uint8Array|string} source Data to append. If `source` is a ByteBuffer, its offsets
* will be modified according to the performed read operation.
* @param {(string|number)=} encoding Encoding if `data` is a string ("base64", "hex", "binary", defaults to "utf8")
* @param {number=} offset Offset to append at. Will use and increase {@link ByteBuffer#offset} by the number of bytes
* written if omitted.
* @returns {!ByteBuffer} this
* @expose
* @example A relative `<01 02>03.append(<04 05>)` will result in `<01 02 04 05>, 04 05|`
* @example An absolute `<01 02>03.append(04 05>, 1)` will result in `<01 04>05, 04 05|`
*/
ByteBufferPrototype.append = function(source, encoding, offset) {
if (typeof encoding === 'number' || typeof encoding !== 'string') {
offset = encoding;
encoding = undefined;
}
var relative = typeof offset === 'undefined';
if (relative) offset = this.offset;
if (!this.noAssert) {
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: "+offset+" (not an integer)");
offset >>>= 0;
if (offset < 0 || offset + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength);
}
if (!(source instanceof ByteBuffer))
source = ByteBuffer.wrap(source, encoding);
var length = source.limit - source.offset;
if (length <= 0) return this; // Nothing to append
offset += length;
var capacity16 = this.buffer.byteLength;
if (offset > capacity16)
this.resize((capacity16 *= 2) > offset ? capacity16 : offset);
offset -= length;
this.view.set(source.view.subarray(source.offset, source.limit), offset);
source.offset += length;
if (relative) this.offset += length;
return this;
};
/**
* Appends this ByteBuffer's contents to another ByteBuffer. This will overwrite any contents at and after the
specified offset up to the length of this ByteBuffer's data.
* @param {!ByteBuffer} target Target ByteBuffer
* @param {number=} offset Offset to append to. Will use and increase {@link ByteBuffer#offset} by the number of bytes
* read if omitted.
* @returns {!ByteBuffer} this
* @expose
* @see ByteBuffer#append
*/
ByteBufferPrototype.appendTo = function(target, offset) {
target.append(this, offset);
return this;
};
/**
* Enables or disables assertions of argument types and offsets. Assertions are enabled by default but you can opt to
* disable them if your code already makes sure that everything is valid.
* @param {boolean} assert `true` to enable assertions, otherwise `false`
* @returns {!ByteBuffer} this
* @expose
*/
ByteBufferPrototype.assert = function(assert) {
this.noAssert = !assert;
return this;
};
/**
* Gets the capacity of this ByteBuffer's backing buffer.
* @returns {number} Capacity of the backing buffer
* @expose
*/
ByteBufferPrototype.capacity = function() {
return this.buffer.byteLength;
};
/**
* Clears this ByteBuffer's offsets by setting {@link ByteBuffer#offset} to `0` and {@link ByteBuffer#limit} to the
* backing buffer's capacity. Discards {@link ByteBuffer#markedOffset}.
* @returns {!ByteBuffer} this
* @expose
*/
ByteBufferPrototype.clear = function() {
this.offset = 0;
this.limit = this.buffer.byteLength;
this.markedOffset = -1;
return this;
};
/**
* Creates a cloned instance of this ByteBuffer, preset with this ByteBuffer's values for {@link ByteBuffer#offset},
* {@link ByteBuffer#markedOffset} and {@link ByteBuffer#limit}.
* @param {boolean=} copy Whether to copy the backing buffer or to return another view on the same, defaults to `false`
* @returns {!ByteBuffer} Cloned instance
* @expose
*/
ByteBufferPrototype.clone = function(copy) {
var bb = new ByteBuffer(0, this.littleEndian, this.noAssert);
if (copy) {
bb.buffer = new ArrayBuffer(this.buffer.byteLength);
bb.view = new Uint8Array(bb.buffer);
} else {
bb.buffer = this.buffer;
bb.view = this.view;
}
bb.offset = this.offset;
bb.markedOffset = this.markedOffset;
bb.limit = this.limit;
return bb;
};
/**
* Compacts this ByteBuffer to be backed by a {@link ByteBuffer#buffer} of its contents' length. Contents are the bytes
* between {@link ByteBuffer#offset} and {@link ByteBuffer#limit}. Will set `offset = 0` and `limit = capacity` and
* adapt {@link ByteBuffer#markedOffset} to the same relative position if set.
* @param {number=} begin Offset to start at, defaults to {@link ByteBuffer#offset}
* @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit}
* @returns {!ByteBuffer} this
* @expose
*/
ByteBufferPrototype.compact = function(begin, end) {
if (typeof begin === 'undefined') begin = this.offset;
if (typeof end === 'undefined') end = this.limit;
if (!this.noAssert) {
if (typeof begin !== 'number' || begin % 1 !== 0)
throw TypeError("Illegal begin: Not an integer");
begin >>>= 0;
if (typeof end !== 'number' || end % 1 !== 0)
throw TypeError("Illegal end: Not an integer");
end >>>= 0;
if (begin < 0 || begin > end || end > this.buffer.byteLength)
throw RangeError("Illegal range: 0 <= "+begin+" <= "+end+" <= "+this.buffer.byteLength);
}
if (begin === 0 && end === this.buffer.byteLength)
return this; // Already compacted
var len = end - begin;
if (len === 0) {
this.buffer = EMPTY_BUFFER;
this.view = null;
if (this.markedOffset >= 0) this.markedOffset -= begin;
this.offset = 0;
this.limit = 0;
return this;
}
var buffer = new ArrayBuffer(len);
var view = new Uint8Array(buffer);
view.set(this.view.subarray(begin, end));
this.buffer = buffer;
this.view = view;
if (this.markedOffset >= 0) this.markedOffset -= begin;
this.offset = 0;
this.limit = len;
return this;
};
/**
* Creates a copy of this ByteBuffer's contents. Contents are the bytes between {@link ByteBuffer#offset} and
* {@link ByteBuffer#limit}.
* @param {number=} begin Begin offset, defaults to {@link ByteBuffer#offset}.
* @param {number=} end End offset, defaults to {@link ByteBuffer#limit}.
* @returns {!ByteBuffer} Copy
* @expose
*/
ByteBufferPrototype.copy = function(begin, end) {
if (typeof begin === 'undefined') begin = this.offset;
if (typeof end === 'undefined') end = this.limit;
if (!this.noAssert) {
if (typeof begin !== 'number' || begin % 1 !== 0)
throw TypeError("Illegal begin: Not an integer");
begin >>>= 0;
if (typeof end !== 'number' || end % 1 !== 0)
throw TypeError("Illegal end: Not an integer");
end >>>= 0;
if (begin < 0 || begin > end || end > this.buffer.byteLength)
throw RangeError("Illegal range: 0 <= "+begin+" <= "+end+" <= "+this.buffer.byteLength);
}
if (begin === end)
return new ByteBuffer(0, this.littleEndian, this.noAssert);
var capacity = end - begin,
bb = new ByteBuffer(capacity, this.littleEndian, this.noAssert);
bb.offset = 0;
bb.limit = capacity;
if (bb.markedOffset >= 0) bb.markedOffset -= begin;
this.copyTo(bb, 0, begin, end);
return bb;
};
/**
* Copies this ByteBuffer's contents to another ByteBuffer. Contents are the bytes between {@link ByteBuffer#offset} and
* {@link ByteBuffer#limit}.
* @param {!ByteBuffer} target Target ByteBuffer
* @param {number=} targetOffset Offset to copy to. Will use and increase the target's {@link ByteBuffer#offset}
* by the number of bytes copied if omitted.
* @param {number=} sourceOffset Offset to start copying from. Will use and increase {@link ByteBuffer#offset} by the
* number of bytes copied if omitted.
* @param {number=} sourceLimit Offset to end copying from, defaults to {@link ByteBuffer#limit}
* @returns {!ByteBuffer} this
* @expose
*/
ByteBufferPrototype.copyTo = function(target, targetOffset, sourceOffset, sourceLimit) {
var relative,
targetRelative;
if (!this.noAssert) {
if (!ByteBuffer.isByteBuffer(target))
throw TypeError("Illegal target: Not a ByteBuffer");
}
targetOffset = (targetRelative = typeof targetOffset === 'undefined') ? target.offset : targetOffset | 0;
sourceOffset = (relative = typeof sourceOffset === 'undefined') ? this.offset : sourceOffset | 0;
sourceLimit = typeof sourceLimit === 'undefined' ? this.limit : sourceLimit | 0;
if (targetOffset < 0 || targetOffset > target.buffer.byteLength)
throw RangeError("Illegal target range: 0 <= "+targetOffset+" <= "+target.buffer.byteLength);
if (sourceOffset < 0 || sourceLimit > this.buffer.byteLength)
throw RangeError("Illegal source range: 0 <= "+sourceOffset+" <= "+this.buffer.byteLength);
var len = sourceLimit - sourceOffset;
if (len === 0)
return target; // Nothing to copy
target.ensureCapacity(targetOffset + len);
target.view.set(this.view.subarray(sourceOffset, sourceLimit), targetOffset);
if (relative) this.offset += len;
if (targetRelative) target.offset += len;
return this;
};
/**
* Makes sure that this ByteBuffer is backed by a {@link ByteBuffer#buffer} of at least the specified capacity. If the
* current capacity is exceeded, it will be doubled. If double the current capacity is less than the required capacity,
* the required capacity will be used instead.
* @param {number} capacity Required capacity
* @returns {!ByteBuffer} this
* @expose
*/
ByteBufferPrototype.ensureCapacity = function(capacity) {
var current = this.buffer.byteLength;
if (current < capacity)
return this.resize((current *= 2) > capacity ? current : capacity);
return this;
};
/**
* Overwrites this ByteBuffer's contents with the specified value. Contents are the bytes between
* {@link ByteBuffer#offset} and {@link ByteBuffer#limit}.
* @param {number|string} value Byte value to fill with. If given as a string, the first character is used.
* @param {number=} begin Begin offset. Will use and increase {@link ByteBuffer#offset} by the number of bytes
* written if omitted. defaults to {@link ByteBuffer#offset}.
* @param {number=} end End offset, defaults to {@link ByteBuffer#limit}.
* @returns {!ByteBuffer} this
* @expose
* @example `someByteBuffer.clear().fill(0)` fills the entire backing buffer with zeroes
*/
ByteBufferPrototype.fill = function(value, begin, end) {
var relative = typeof begin === 'undefined';
if (relative) begin = this.offset;
if (typeof value === 'string' && value.length > 0)
value = value.charCodeAt(0);
if (typeof begin === 'undefined') begin = this.offset;
if (typeof end === 'undefined') end = this.limit;
if (!this.noAssert) {
if (typeof value !== 'number' || value % 1 !== 0)
throw TypeError("Illegal value: "+value+" (not an integer)");
value |= 0;
if (typeof begin !== 'number' || begin % 1 !== 0)
throw TypeError("Illegal begin: Not an integer");
begin >>>= 0;
if (typeof end !== 'number' || end % 1 !== 0)
throw TypeError("Illegal end: Not an integer");
end >>>= 0;
if (begin < 0 || begin > end || end > this.buffer.byteLength)
throw RangeError("Illegal range: 0 <= "+begin+" <= "+end+" <= "+this.buffer.byteLength);
}
if (begin >= end)
return this; // Nothing to fill
while (begin < end) this.view[begin++] = value;
if (relative) this.offset = begin;
return this;
};
/**
* Makes this ByteBuffer ready for a new sequence of write or relative read operations. Sets `limit = offset` and
* `offset = 0`. Make sure always to flip a ByteBuffer when all relative read or write operations are complete.
* @returns {!ByteBuffer} this
* @expose
*/
ByteBufferPrototype.flip = function() {
this.limit = this.offset;
this.offset = 0;
return this;
};
/**
* Marks an offset on this ByteBuffer to be used later.
* @param {number=} offset Offset to mark. Defaults to {@link ByteBuffer#offset}.
* @returns {!ByteBuffer} this
* @throws {TypeError} If `offset` is not a valid number
* @throws {RangeError} If `offset` is out of bounds
* @see ByteBuffer#reset
* @expose
*/
ByteBufferPrototype.mark = function(offset) {
offset = typeof offset === 'undefined' ? this.offset : offset;
if (!this.noAssert) {
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: "+offset+" (not an integer)");
offset >>>= 0;
if (offset < 0 || offset + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength);
}
this.markedOffset = offset;
return this;
};
/**
* Sets the byte order.
* @param {boolean} littleEndian `true` for little endian byte order, `false` for big endian
* @returns {!ByteBuffer} this
* @expose
*/
ByteBufferPrototype.order = function(littleEndian) {
if (!this.noAssert) {
if (typeof littleEndian !== 'boolean')
throw TypeError("Illegal littleEndian: Not a boolean");
}
this.littleEndian = !!littleEndian;
return this;
};
/**
* Switches (to) little endian byte order.
* @param {boolean=} littleEndian Defaults to `true`, otherwise uses big endian
* @returns {!ByteBuffer} this
* @expose
*/
ByteBufferPrototype.LE = function(littleEndian) {
this.littleEndian = typeof littleEndian !== 'undefined' ? !!littleEndian : true;
return this;
};
/**
* Switches (to) big endian byte order.
* @param {boolean=} bigEndian Defaults to `true`, otherwise uses little endian
* @returns {!ByteBuffer} this
* @expose
*/
ByteBufferPrototype.BE = function(bigEndian) {
this.littleEndian = typeof bigEndian !== 'undefined' ? !bigEndian : false;
return this;
};
/**
* Prepends some data to this ByteBuffer. This will overwrite any contents before the specified offset up to the
* prepended data's length. If there is not enough space available before the specified `offset`, the backing buffer
* will be resized and its contents moved accordingly.
* @param {!ByteBuffer|string|!ArrayBuffer} source Data to prepend. If `source` is a ByteBuffer, its offset will be
* modified according to the performed read operation.
* @param {(string|number)=} encoding Encoding if `data` is a string ("base64", "hex", "binary", defaults to "utf8")
* @param {number=} offset Offset to prepend at. Will use and decrease {@link ByteBuffer#offset} by the number of bytes
* prepended if omitted.
* @returns {!ByteBuffer} this
* @expose
* @example A relative `00<01 02 03>.prepend(<04 05>)` results in `<04 05 01 02 03>, 04 05|`
* @example An absolute `00<01 02 03>.prepend(<04 05>, 2)` results in `04<05 02 03>, 04 05|`
*/
ByteBufferPrototype.prepend = function(source, encoding, offset) {
if (typeof encoding === 'number' || typeof encoding !== 'string') {
offset = encoding;
encoding = undefined;
}
var relative = typeof offset === 'undefined';
if (relative) offset = this.offset;
if (!this.noAssert) {
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: "+offset+" (not an integer)");
offset >>>= 0;
if (offset < 0 || offset + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength);
}
if (!(source instanceof ByteBuffer))
source = ByteBuffer.wrap(source, encoding);
var len = source.limit - source.offset;
if (len <= 0) return this; // Nothing to prepend
var diff = len - offset;
if (diff > 0) { // Not enough space before offset, so resize + move
var buffer = new ArrayBuffer(this.buffer.byteLength + diff);
var view = new Uint8Array(buffer);
view.set(this.view.subarray(offset, this.buffer.byteLength), len);
this.buffer = buffer;
this.view = view;
this.offset += diff;
if (this.markedOffset >= 0) this.markedOffset += diff;
this.limit += diff;
offset += diff;
} else {
var arrayView = new Uint8Array(this.buffer);
}
this.view.set(source.view.subarray(source.offset, source.limit), offset - len);
source.offset = source.limit;
if (relative)
this.offset -= len;
return this;
};
/**
* Prepends this ByteBuffer to another ByteBuffer. This will overwrite any contents before the specified offset up to the
* prepended data's length. If there is not enough space available before the specified `offset`, the backing buffer
* will be resized and its contents moved accordingly.
* @param {!ByteBuffer} target Target ByteBuffer
* @param {number=} offset Offset to prepend at. Will use and decrease {@link ByteBuffer#offset} by the number of bytes
* prepended if omitted.
* @returns {!ByteBuffer} this
* @expose
* @see ByteBuffer#prepend
*/
ByteBufferPrototype.prependTo = function(target, offset) {
target.prepend(this, offset);
return this;
};
/**
* Prints debug information about this ByteBuffer's contents.
* @param {function(string)=} out Output function to call, defaults to console.log
* @expose
*/
ByteBufferPrototype.printDebug = function(out) {
if (typeof out !== 'function') out = console.log.bind(console);
out(
this.toString()+"\n"+
"-------------------------------------------------------------------\n"+
this.toDebug(/* columns */ true)
);
};
/**
* Gets the number of remaining readable bytes. Contents are the bytes between {@link ByteBuffer#offset} and
* {@link ByteBuffer#limit}, so this returns `limit - offset`.
* @returns {number} Remaining readable bytes. May be negative if `offset > limit`.
* @expose
*/
ByteBufferPrototype.remaining = function() {
return this.limit - this.offset;
};
/**
* Resets this ByteBuffer's {@link ByteBuffer#offset}. If an offset has been marked through {@link ByteBuffer#mark}
* before, `offset` will be set to {@link ByteBuffer#markedOffset}, which will then be discarded. If no offset has been
* marked, sets `offset = 0`.
* @returns {!ByteBuffer} this
* @see ByteBuffer#mark
* @expose
*/
ByteBufferPrototype.reset = function() {
if (this.markedOffset >= 0) {
this.offset = this.markedOffset;
this.markedOffset = -1;
} else {
this.offset = 0;
}
return this;
};
/**
* Resizes this ByteBuffer to be backed by a buffer of at least the given capacity. Will do nothing if already that
* large or larger.
* @param {number} capacity Capacity required
* @returns {!ByteBuffer} this
* @throws {TypeError} If `capacity` is not a number
* @throws {RangeError} If `capacity < 0`
* @expose
*/
ByteBufferPrototype.resize = function(capacity) {
if (!this.noAssert) {
if (typeof capacity !== 'number' || capacity % 1 !== 0)
throw TypeError("Illegal capacity: "+capacity+" (not an integer)");
capacity |= 0;
if (capacity < 0)
throw RangeError("Illegal capacity: 0 <= "+capacity);
}
if (this.buffer.byteLength < capacity) {
var buffer = new ArrayBuffer(capacity);
var view = new Uint8Array(buffer);
view.set(this.view);
this.buffer = buffer;
this.view = view;
}
return this;
};
/**
* Reverses this ByteBuffer's contents.
* @param {number=} begin Offset to start at, defaults to {@link ByteBuffer#offset}
* @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit}
* @returns {!ByteBuffer} this
* @expose
*/
ByteBufferPrototype.reverse = function(begin, end) {
if (typeof begin === 'undefined') begin = this.offset;
if (typeof end === 'undefined') end = this.limit;
if (!this.noAssert) {
if (typeof begin !== 'number' || begin % 1 !== 0)
throw TypeError("Illegal begin: Not an integer");
begin >>>= 0;
if (typeof end !== 'number' || end % 1 !== 0)
throw TypeError("Illegal end: Not an integer");
end >>>= 0;
if (begin < 0 || begin > end || end > this.buffer.byteLength)
throw RangeError("Illegal range: 0 <= "+begin+" <= "+end+" <= "+this.buffer.byteLength);
}
if (begin === end)
return this; // Nothing to reverse
Array.prototype.reverse.call(this.view.subarray(begin, end));
return this;
};
/**
* Skips the next `length` bytes. This will just advance
* @param {number} length Number of bytes to skip. May also be negative to move the offset back.
* @returns {!ByteBuffer} this
* @expose
*/
ByteBufferPrototype.skip = function(length) {
if (!this.noAssert) {
if (typeof length !== 'number' || length % 1 !== 0)
throw TypeError("Illegal length: "+length+" (not an integer)");
length |= 0;
}
var offset = this.offset + length;
if (!this.noAssert) {
if (offset < 0 || offset > this.buffer.byteLength)
throw RangeError("Illegal length: 0 <= "+this.offset+" + "+length+" <= "+this.buffer.byteLength);
}
this.offset = offset;
return this;
};
/**
* Slices this ByteBuffer by creating a cloned instance with `offset = begin` and `limit = end`.
* @param {number=} begin Begin offset, defaults to {@link ByteBuffer#offset}.
* @param {number=} end End offset, defaults to {@link ByteBuffer#limit}.
* @returns {!ByteBuffer} Clone of this ByteBuffer with slicing applied, backed by the same {@link ByteBuffer#buffer}
* @expose
*/
ByteBufferPrototype.slice = function(begin, end) {
if (typeof begin === 'undefined') begin = this.offset;
if (typeof end === 'undefined') end = this.limit;
if (!this.noAssert) {
if (typeof begin !== 'number' || begin % 1 !== 0)
throw TypeError("Illegal begin: Not an integer");
begin >>>= 0;
if (typeof end !== 'number' || end % 1 !== 0)
throw TypeError("Illegal end: Not an integer");
end >>>= 0;
if (begin < 0 || begin > end || end > this.buffer.byteLength)
throw RangeError("Illegal range: 0 <= "+begin+" <= "+end+" <= "+this.buffer.byteLength);
}
var bb = this.clone();
bb.offset = begin;
bb.limit = end;
return bb;
};
/**
* Returns a copy of the backing buffer that contains this ByteBuffer's contents. Contents are the bytes between
* {@link ByteBuffer#offset} and {@link ByteBuffer#limit}.
* @param {boolean=} forceCopy If `true` returns a copy, otherwise returns a view referencing the same memory if
* possible. Defaults to `false`
* @returns {!ArrayBuffer} Contents as an ArrayBuffer
* @expose
*/
ByteBufferPrototype.toBuffer = function(forceCopy) {
var offset = this.offset,
limit = this.limit;
if (!this.noAssert) {
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: Not an integer");
offset >>>= 0;
if (typeof limit !== 'number' || limit % 1 !== 0)
throw TypeError("Illegal limit: Not an integer");
limit >>>= 0;
if (offset < 0 || offset > limit || limit > this.buffer.byteLength)
throw RangeError("Illegal range: 0 <= "+offset+" <= "+limit+" <= "+this.buffer.byteLength);
}
// NOTE: It's not possible to have another ArrayBuffer reference the same memory as the backing buffer. This is
// possible with Uint8Array#subarray only, but we have to return an ArrayBuffer by contract. So:
if (!forceCopy && offset === 0 && limit === this.buffer.byteLength)
return this.buffer;
if (offset === limit)
return EMPTY_BUFFER;
var buffer = new ArrayBuffer(limit - offset);
new Uint8Array(buffer).set(new Uint8Array(this.buffer).subarray(offset, limit), 0);
return buffer;
};
/**
* Returns a raw buffer compacted to contain this ByteBuffer's contents. Contents are the bytes between
* {@link ByteBuffer#offset} and {@link ByteBuffer#limit}. This is an alias of {@link ByteBuffer#toBuffer}.
* @function
* @param {boolean=} forceCopy If `true` returns a copy, otherwise returns a view referencing the same memory.
* Defaults to `false`
* @returns {!ArrayBuffer} Contents as an ArrayBuffer
* @expose
*/
ByteBufferPrototype.toArrayBuffer = ByteBufferPrototype.toBuffer;
/**
* Converts the ByteBuffer's contents to a string.
* @param {string=} encoding Output encoding. Returns an informative string representation if omitted but also allows
* direct conversion to "utf8", "hex", "base64" and "binary" encoding. "debug" returns a hex representation with
* highlighted offsets.
* @param {number=} begin Offset to begin at, defaults to {@link ByteBuffer#offset}
* @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit}
* @returns {string} String representation
* @throws {Error} If `encoding` is invalid
* @expose
*/
ByteBufferPrototype.toString = function(encoding, begin, end) {
if (typeof encoding === 'undefined')
return "ByteBufferAB(offset="+this.offset+",markedOffset="+this.markedOffset+",limit="+this.limit+",capacity="+this.capacity()+")";
if (typeof encoding === 'number')
encoding = "utf8",
begin = encoding,
end = begin;
switch (encoding) {
case "utf8":
return this.toUTF8(begin, end);
case "base64":
return this.toBase64(begin, end);
case "hex":
return this.toHex(begin, end);
case "binary":
return this.toBinary(begin, end);
case "debug":
return this.toDebug();
case "columns":
return this.toColumns();
default:
throw Error("Unsupported encoding: "+encoding);
}
};
// lxiv-embeddable
/**
* lxiv-embeddable (c) 2014 Daniel Wirtz <dcode@dcode.io>
* Released under the Apache License, Version 2.0
* see: https://github.com/dcodeIO/lxiv for details
*/
var lxiv = function() {
"use strict";
/**
* lxiv namespace.
* @type {!Object.<string,*>}
* @exports lxiv
*/
var lxiv = {};
/**
* Character codes for output.
* @type {!Array.<number>}
* @inner
*/
var aout = [
65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 97, 98, 99, 100, 101, 102,
103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
119, 120, 121, 122, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 43, 47
];
/**
* Character codes for input.
* @type {!Array.<number>}
* @inner
*/
var ain = [];
for (var i=0, k=aout.length; i<k; ++i)
ain[aout[i]] = i;
/**
* Encodes bytes to base64 char codes.
* @param {!function():number|null} src Bytes source as a function returning the next byte respectively `null` if
* there are no more bytes left.
* @param {!function(number)} dst Characters destination as a function successively called with each encoded char
* code.
*/
lxiv.encode = function(src, dst) {
var b, t;
while ((b = src()) !== null) {
dst(aout[(b>>2)&0x3f]);
t = (b&0x3)<<4;
if ((b = src()) !== null) {
t |= (b>>4)&0xf;
dst(aout[(t|((b>>4)&0xf))&0x3f]);
t = (b&0xf)<<2;
if ((b = src()) !== null)
dst(aout[(t|((b>>6)&0x3))&0x3f]),
dst(aout[b&0x3f]);
else
dst(aout[t&0x3f]),
dst(61);
} else
dst(aout[t&0x3f]),
dst(61),
dst(61);
}
};
/**
* Decodes base64 char codes to bytes.
* @param {!function():number|null} src Characters source as a function returning the next char code respectively
* `null` if there are no more characters left.
* @param {!function(number)} dst Bytes destination as a function successively called with the next byte.
* @throws {Error} If a character code is invalid
*/
lxiv.decode = function(src, dst) {
var c, t1, t2;
function fail(c) {
throw Error("Illegal character code: "+c);
}
while ((c = src()) !== null) {
t1 = ain[c];
if (typeof t1 === 'undefined') fail(c);
if ((c = src()) !== null) {
t2 = ain[c];
if (typeof t2 === 'undefined') fail(c);
dst((t1<<2)>>>0|(t2&0x30)>>4);
if ((c = src()) !== null) {
t1 = ain[c];
if (typeof t1 === 'undefined')
if (c === 61) break; else fail(c);
dst(((t2&0xf)<<4)>>>0|(t1&0x3c)>>2);
if ((c = src()) !== null) {
t2 = ain[c];
if (typeof t2 === 'undefined')
if (c === 61) break; else fail(c);
dst(((t1&0x3)<<6)>>>0|t2);
}
}
}
}
};
/**
* Tests if a string is valid base64.
* @param {string} str String to test
* @returns {boolean} `true` if valid, otherwise `false`
*/
lxiv.test = function(str) {
return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(str);
};
return lxiv;
}();
// encodings/base64
/**
* Encodes this ByteBuffer's contents to a base64 encoded string.
* @param {number=} begin Offset to begin at, defaults to {@link ByteBuffer#offset}.
* @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit}.
* @returns {string} Base64 encoded string
* @throws {RangeError} If `begin` or `end` is out of bounds
* @expose
*/
ByteBufferPrototype.toBase64 = function(begin, end) {
if (typeof begin === 'undefined')
begin = this.offset;
if (typeof end === 'undefined')
end = this.limit;
begin = begin | 0; end = end | 0;
if (begin < 0 || end > this.capacity || begin > end)
throw RangeError("begin, end");
var sd; lxiv.encode(function() {
return begin < end ? this.view[begin++] : null;
}.bind(this), sd = stringDestination());
return sd();
};
/**
* Decodes a base64 encoded string to a ByteBuffer.
* @param {string} str String to decode
* @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to
* {@link ByteBuffer.DEFAULT_ENDIAN}.
* @returns {!ByteBuffer} ByteBuffer
* @expose
*/
ByteBuffer.fromBase64 = function(str, littleEndian) {
if (typeof str !== 'string')
throw TypeError("str");
var bb = new ByteBuffer(str.length/4*3, littleEndian),
i = 0;
lxiv.decode(stringSource(str), function(b) {
bb.view[i++] = b;
});
bb.limit = i;
return bb;
};
/**
* Encodes a binary string to base64 like `window.btoa` does.
* @param {string} str Binary string
* @returns {string} Base64 encoded string
* @see https://developer.mozilla.org/en-US/docs/Web/API/Window.btoa
* @expose
*/
ByteBuffer.btoa = function(str) {
return ByteBuffer.fromBinary(str).toBase64();
};
/**
* Decodes a base64 encoded string to binary like `window.atob` does.
* @param {string} b64 Base64 encoded string
* @returns {string} Binary string
* @see https://developer.mozilla.org/en-US/docs/Web/API/Window.atob
* @expose
*/
ByteBuffer.atob = function(b64) {
return ByteBuffer.fromBase64(b64).toBinary();
};
// encodings/binary
/**
* Encodes this ByteBuffer to a binary encoded string, that is using only characters 0x00-0xFF as bytes.
* @param {number=} begin Offset to begin at. Defaults to {@link ByteBuffer#offset}.
* @param {number=} end Offset to end at. Defaults to {@link ByteBuffer#limit}.
* @returns {string} Binary encoded string
* @throws {RangeError} If `offset > limit`
* @expose
*/
ByteBufferPrototype.toBinary = function(begin, end) {
if (typeof begin === 'undefined')
begin = this.offset;
if (typeof end === 'undefined')
end = this.limit;
begin |= 0; end |= 0;
if (begin < 0 || end > this.capacity() || begin > end)
throw RangeError("begin, end");
if (begin === end)
return "";
var chars = [],
parts = [];
while (begin < end) {
chars.push(this.view[begin++]);
if (chars.length >= 1024)
parts.push(String.fromCharCode.apply(String, chars)),
chars = [];
}
return parts.join('') + String.fromCharCode.apply(String, chars);
};
/**
* Decodes a binary encoded string, that is using only characters 0x00-0xFF as bytes, to a ByteBuffer.
* @param {string} str String to decode
* @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to
* {@link ByteBuffer.DEFAULT_ENDIAN}.
* @returns {!ByteBuffer} ByteBuffer
* @expose
*/
ByteBuffer.fromBinary = function(str, littleEndian) {
if (typeof str !== 'string')
throw TypeError("str");
var i = 0,
k = str.length,
charCode,
bb = new ByteBuffer(k, littleEndian);
while (i<k) {
charCode = str.charCodeAt(i);
if (charCode > 0xff)
throw RangeError("illegal char code: "+charCode);
bb.view[i++] = charCode;
}
bb.limit = k;
return bb;
};
// encodings/debug
/**
* Encodes this ByteBuffer to a hex encoded string with marked offsets. Offset symbols are:
* * `<` : offset,
* * `'` : markedOffset,
* * `>` : limit,
* * `|` : offset and limit,
* * `[` : offset and markedOffset,
* * `]` : markedOffset and limit,
* * `!` : offset, markedOffset and limit
* @param {boolean=} columns If `true` returns two columns hex + ascii, defaults to `false`
* @returns {string|!Array.<string>} Debug string or array of lines if `asArray = true`
* @expose
* @example `>00'01 02<03` contains four bytes with `limit=0, markedOffset=1, offset=3`
* @example `00[01 02 03>` contains four bytes with `offset=markedOffset=1, limit=4`
* @example `00|01 02 03` contains four bytes with `offset=limit=1, markedOffset=-1`
* @example `|` contains zero bytes with `offset=limit=0, markedOffset=-1`
*/
ByteBufferPrototype.toDebug = function(columns) {
var i = -1,
k = this.buffer.byteLength,
b,
hex = "",
asc = "",
out = "";
while (i<k) {
if (i !== -1) {
b = this.view[i];
if (b < 0x10) hex += "0"+b.toString(16).toUpperCase();
else hex += b.toString(16).toUpperCase();
if (columns)
asc += b > 32 && b < 127 ? String.fromCharCode(b) : '.';
}
++i;
if (columns) {
if (i > 0 && i % 16 === 0 && i !== k) {
while (hex.length < 3*16+3) hex += " ";
out += hex+asc+"\n";
hex = asc = "";
}
}
if (i === this.offset && i === this.limit)
hex += i === this.markedOffset ? "!" : "|";
else if (i === this.offset)
hex += i === this.markedOffset ? "[" : "<";
else if (i === this.limit)
hex += i === this.markedOffset ? "]" : ">";
else
hex += i === this.markedOffset ? "'" : (columns || (i !== 0 && i !== k) ? " " : "");
}
if (columns && hex !== " ") {
while (hex.length < 3*16+3)
hex += " ";
out += hex + asc + "\n";
}
return columns ? out : hex;
};
/**
* Decodes a hex encoded string with marked offsets to a ByteBuffer.
* @param {string} str Debug string to decode (not be generated with `columns = true`)
* @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to
* {@link ByteBuffer.DEFAULT_ENDIAN}.
* @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to
* {@link ByteBuffer.DEFAULT_NOASSERT}.
* @returns {!ByteBuffer} ByteBuffer
* @expose
* @see ByteBuffer#toDebug
*/
ByteBuffer.fromDebug = function(str, littleEndian, noAssert) {
var k = str.length,
bb = new ByteBuffer(((k+1)/3)|0, littleEndian, noAssert);
var i = 0, j = 0, ch, b,
rs = false, // Require symbol next
ho = false, hm = false, hl = false, // Already has offset (ho), markedOffset (hm), limit (hl)?
fail = false;
while (i<k) {
switch (ch = str.charAt(i++)) {
case '!':
if (!noAssert) {
if (ho || hm || hl) {
fail = true;
break;
}
ho = hm = hl = true;
}
bb.offset = bb.markedOffset = bb.limit = j;
rs = false;
break;
case '|':
if (!noAssert) {
if (ho || hl) {
fail = true;
break;
}
ho = hl = true;
}
bb.offset = bb.limit = j;
rs = false;
break;
case '[':
if (!noAssert) {
if (ho || hm) {
fail = true;
break;
}
ho = hm = true;
}
bb.offset = bb.markedOffset = j;
rs = false;
break;
case '<':
if (!noAssert) {
if (ho) {
fail = true;
break;
}
ho = true;
}
bb.offset = j;
rs = false;
break;
case ']':
if (!noAssert) {
if (hl || hm) {
fail = true;
break;
}
hl = hm = true;
}
bb.limit = bb.markedOffset = j;
rs = false;
break;
case '>':
if (!noAssert) {
if (hl) {
fail = true;
break;
}
hl = true;
}
bb.limit = j;
rs = false;
break;
case "'":
if (!noAssert) {
if (hm) {
fail = true;
break;
}
hm = true;
}
bb.markedOffset = j;
rs = false;
break;
case ' ':
rs = false;
break;
default:
if (!noAssert) {
if (rs) {
fail = true;
break;
}
}
b = parseInt(ch+str.charAt(i++), 16);
if (!noAssert) {
if (isNaN(b) || b < 0 || b > 255)
throw TypeError("Illegal str: Not a debug encoded string");
}
bb.view[j++] = b;
rs = true;
}
if (fail)
throw TypeError("Illegal str: Invalid symbol at "+i);
}
if (!noAssert) {
if (!ho || !hl)
throw TypeError("Illegal str: Missing offset or limit");
if (j<bb.buffer.byteLength)
throw TypeError("Illegal str: Not a debug encoded string (is it hex?) "+j+" < "+k);
}
return bb;
};
// encodings/hex
/**
* Encodes this ByteBuffer's contents to a hex encoded string.
* @param {number=} begin Offset to begin at. Defaults to {@link ByteBuffer#offset}.
* @param {number=} end Offset to end at. Defaults to {@link ByteBuffer#limit}.
* @returns {string} Hex encoded string
* @expose
*/
ByteBufferPrototype.toHex = function(begin, end) {
begin = typeof begin === 'undefined' ? this.offset : begin;
end = typeof end === 'undefined' ? this.limit : end;
if (!this.noAssert) {
if (typeof begin !== 'number' || begin % 1 !== 0)
throw TypeError("Illegal begin: Not an integer");
begin >>>= 0;
if (typeof end !== 'number' || end % 1 !== 0)
throw TypeError("Illegal end: Not an integer");
end >>>= 0;
if (begin < 0 || begin > end || end > this.buffer.byteLength)
throw RangeError("Illegal range: 0 <= "+begin+" <= "+end+" <= "+this.buffer.byteLength);
}
var out = new Array(end - begin),
b;
while (begin < end) {
b = this.view[begin++];
if (b < 0x10)
out.push("0", b.toString(16));
else out.push(b.toString(16));
}
return out.join('');
};
/**
* Decodes a hex encoded string to a ByteBuffer.
* @param {string} str String to decode
* @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to
* {@link ByteBuffer.DEFAULT_ENDIAN}.
* @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to
* {@link ByteBuffer.DEFAULT_NOASSERT}.
* @returns {!ByteBuffer} ByteBuffer
* @expose
*/
ByteBuffer.fromHex = function(str, littleEndian, noAssert) {
if (!noAssert) {
if (typeof str !== 'string')
throw TypeError("Illegal str: Not a string");
if (str.length % 2 !== 0)
throw TypeError("Illegal str: Length not a multiple of 2");
}
var k = str.length,
bb = new ByteBuffer((k / 2) | 0, littleEndian),
b;
for (var i=0, j=0; i<k; i+=2) {
b = parseInt(str.substring(i, i+2), 16);
if (!noAssert)
if (!isFinite(b) || b < 0 || b > 255)
throw TypeError("Illegal str: Contains non-hex characters");
bb.view[j++] = b;
}
bb.limit = j;
return bb;
};
// utfx-embeddable
/**
* utfx-embeddable (c) 2014 Daniel Wirtz <dcode@dcode.io>
* Released under the Apache License, Version 2.0
* see: https://github.com/dcodeIO/utfx for details
*/
var utfx = function() {
"use strict";
/**
* utfx namespace.
* @inner
* @type {!Object.<string,*>}
*/
var utfx = {};
/**
* Maximum valid code point.
* @type {number}
* @const
*/
utfx.MAX_CODEPOINT = 0x10FFFF;
/**
* Encodes UTF8 code points to UTF8 bytes.
* @param {(!function():number|null) | number} src Code points source, either as a function returning the next code point
* respectively `null` if there are no more code points left or a single numeric code point.
* @param {!function(number)} dst Bytes destination as a function successively called with the next byte
*/
utfx.encodeUTF8 = function(src, dst) {
var cp = null;
if (typeof src === 'number')
cp = src,
src = function() { return null; };
while (cp !== null || (cp = src()) !== null) {
if (cp < 0x80)
dst(cp&0x7F);
else if (cp < 0x800)
dst(((cp>>6)&0x1F)|0xC0),
dst((cp&0x3F)|0x80);
else if (cp < 0x10000)
dst(((cp>>12)&0x0F)|0xE0),
dst(((cp>>6)&0x3F)|0x80),
dst((cp&0x3F)|0x80);
else
dst(((cp>>18)&0x07)|0xF0),
dst(((cp>>12)&0x3F)|0x80),
dst(((cp>>6)&0x3F)|0x80),
dst((cp&0x3F)|0x80);
cp = null;
}
};
/**
* Decodes UTF8 bytes to UTF8 code points.
* @param {!function():number|null} src Bytes source as a function returning the next byte respectively `null` if there
* are no more bytes left.
* @param {!function(number)} dst Code points destination as a function successively called with each decoded code point.
* @throws {RangeError} If a starting byte is invalid in UTF8
* @throws {Error} If the last sequence is truncated. Has an array property `bytes` holding the
* remaining bytes.
*/
utfx.decodeUTF8 = function(src, dst) {
var a, b, c, d, fail = function(b) {
b = b.slice(0, b.indexOf(null));
var err = Error(b.toString());
err.name = "TruncatedError";
err['bytes'] = b;
throw err;
};
while ((a = src()) !== null) {
if ((a&0x80) === 0)
dst(a);
else if ((a&0xE0) === 0xC0)
((b = src()) === null) && fail([a, b]),
dst(((a&0x1F)<<6) | (b&0x3F));
else if ((a&0xF0) === 0xE0)
((b=src()) === null || (c=src()) === null) && fail([a, b, c]),
dst(((a&0x0F)<<12) | ((b&0x3F)<<6) | (c&0x3F));
else if ((a&0xF8) === 0xF0)
((b=src()) === null || (c=src()) === null || (d=src()) === null) && fail([a, b, c ,d]),
dst(((a&0x07)<<18) | ((b&0x3F)<<12) | ((c&0x3F)<<6) | (d&0x3F));
else throw RangeError("Illegal starting byte: "+a);
}
};
/**
* Converts UTF16 characters to UTF8 code points.
* @param {!function():number|null} src Characters source as a function returning the next char code respectively
* `null` if there are no more characters left.
* @param {!function(number)} dst Code points destination as a function successively called with each converted code
* point.
*/
utfx.UTF16toUTF8 = function(src, dst) {
var c1, c2 = null;
while (true) {
if ((c1 = c2 !== null ? c2 : src()) === null)
break;
if (c1 >= 0xD800 && c1 <= 0xDFFF) {
if ((c2 = src()) !== null) {
if (c2 >= 0xDC00 && c2 <= 0xDFFF) {
dst((c1-0xD800)*0x400+c2-0xDC00+0x10000);
c2 = null; continue;
}
}
}
dst(c1);
}
if (c2 !== null) dst(c2);
};
/**
* Converts UTF8 code points to UTF16 characters.
* @param {(!function():number|null) | number} src Code points source, either as a function returning the next code point
* respectively `null` if there are no more code points left or a single numeric code point.
* @param {!function(number)} dst Characters destination as a function successively called with each converted char code.
* @throws {RangeError} If a code point is out of range
*/
utfx.UTF8toUTF16 = function(src, dst) {
var cp = null;
if (typeof src === 'number')
cp = src, src = function() { return null; };
while (cp !== null || (cp = src()) !== null) {
if (cp <= 0xFFFF)
dst(cp);
else
cp -= 0x10000,
dst((cp>>10)+0xD800),
dst((cp%0x400)+0xDC00);
cp = null;
}
};
/**
* Converts and encodes UTF16 characters to UTF8 bytes.
* @param {!function():number|null} src Characters source as a function returning the next char code respectively `null`
* if there are no more characters left.
* @param {!function(number)} dst Bytes destination as a function successively called with the next byte.
*/
utfx.encodeUTF16toUTF8 = function(src, dst) {
utfx.UTF16toUTF8(src, function(cp) {
utfx.encodeUTF8(cp, dst);
});
};
/**
* Decodes and converts UTF8 bytes to UTF16 characters.
* @param {!function():number|null} src Bytes source as a function returning the next byte respectively `null` if there
* are no more bytes left.
* @param {!function(number)} dst Characters destination as a function successively called with each converted char code.
* @throws {RangeError} If a starting byte is invalid in UTF8
* @throws {Error} If the last sequence is truncated. Has an array property `bytes` holding the remaining bytes.
*/
utfx.decodeUTF8toUTF16 = function(src, dst) {
utfx.decodeUTF8(src, function(cp) {
utfx.UTF8toUTF16(cp, dst);
});
};
/**
* Calculates the byte length of an UTF8 code point.
* @param {number} cp UTF8 code point
* @returns {number} Byte length
*/
utfx.calculateCodePoint = function(cp) {
return (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4;
};
/**
* Calculates the number of UTF8 bytes required to store UTF8 code points.
* @param {(!function():number|null)} src Code points source as a function returning the next code point respectively
* `null` if there are no more code points left.
* @returns {number} The number of UTF8 bytes required
*/
utfx.calculateUTF8 = function(src) {
var cp, l=0;
while ((cp = src()) !== null)
l += (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4;
return l;
};
/**
* Calculates the number of UTF8 code points respectively UTF8 bytes required to store UTF16 char codes.
* @param {(!function():number|null)} src Characters source as a function returning the next char code respectively
* `null` if there are no more characters left.
* @returns {!Array.<number>} The number of UTF8 code points at index 0 and the number of UTF8 bytes required at index 1.
*/
utfx.calculateUTF16asUTF8 = function(src) {
var n=0, l=0;
utfx.UTF16toUTF8(src, function(cp) {
++n; l += (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4;
});
return [n,l];
};
return utfx;
}();
// encodings/utf8
/**
* Encodes this ByteBuffer's contents between {@link ByteBuffer#offset} and {@link ByteBuffer#limit} to an UTF8 encoded
* string.
* @returns {string} Hex encoded string
* @throws {RangeError} If `offset > limit`
* @expose
*/
ByteBufferPrototype.toUTF8 = function(begin, end) {
if (typeof begin === 'undefined') begin = this.offset;
if (typeof end === 'undefined') end = this.limit;
if (!this.noAssert) {
if (typeof begin !== 'number' || begin % 1 !== 0)
throw TypeError("Illegal begin: Not an integer");
begin >>>= 0;
if (typeof end !== 'number' || end % 1 !== 0)
throw TypeError("Illegal end: Not an integer");
end >>>= 0;
if (begin < 0 || begin > end || end > this.buffer.byteLength)
throw RangeError("Illegal range: 0 <= "+begin+" <= "+end+" <= "+this.buffer.byteLength);
}
var sd; try {
utfx.decodeUTF8toUTF16(function() {
return begin < end ? this.view[begin++] : null;
}.bind(this), sd = stringDestination());
} catch (e) {
if (begin !== end)
throw RangeError("Illegal range: Truncated data, "+begin+" != "+end);
}
return sd();
};
/**
* Decodes an UTF8 encoded string to a ByteBuffer.
* @param {string} str String to decode
* @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to
* {@link ByteBuffer.DEFAULT_ENDIAN}.
* @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to
* {@link ByteBuffer.DEFAULT_NOASSERT}.
* @returns {!ByteBuffer} ByteBuffer
* @expose
*/
ByteBuffer.fromUTF8 = function(str, littleEndian, noAssert) {
if (!noAssert)
if (typeof str !== 'string')
throw TypeError("Illegal str: Not a string");
var bb = new ByteBuffer(utfx.calculateUTF16asUTF8(stringSource(str), true)[1], littleEndian, noAssert),
i = 0;
utfx.encodeUTF16toUTF8(stringSource(str), function(b) {
bb.view[i++] = b;
});
bb.limit = i;
return bb;
};
return ByteBuffer;
});
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(120)(module)))
/***/ }),
/* 126 */
/***/ (function(module, exports) {
module.exports = function() { throw new Error("define cannot be used indirect"); };
/***/ }),
/* 127 */
/***/ (function(module, exports, __webpack_require__) {
var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(module) {/*
Copyright 2013 Daniel Wirtz <dcode@dcode.io>
Copyright 2009 The Closure Library Authors. All Rights Reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS-IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
/**
* @license long.js (c) 2013 Daniel Wirtz <dcode@dcode.io>
* Released under the Apache License, Version 2.0
* see: https://github.com/dcodeIO/long.js for details
*/
(function(global, factory) {
/* AMD */ if ("function" === 'function' && __webpack_require__(126)["amd"])
!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
/* CommonJS */ else if ("function" === 'function' && typeof module === "object" && module && module["exports"])
module["exports"] = factory();
/* Global */ else
(global["dcodeIO"] = global["dcodeIO"] || {})["Long"] = factory();
})(this, function() {
"use strict";
/**
* Constructs a 64 bit two's-complement integer, given its low and high 32 bit values as *signed* integers.
* See the from* functions below for more convenient ways of constructing Longs.
* @exports Long
* @class A Long class for representing a 64 bit two's-complement integer value.
* @param {number} low The low (signed) 32 bits of the long
* @param {number} high The high (signed) 32 bits of the long
* @param {boolean=} unsigned Whether unsigned or not, defaults to `false` for signed
* @constructor
*/
function Long(low, high, unsigned) {
/**
* The low 32 bits as a signed value.
* @type {number}
*/
this.low = low | 0;
/**
* The high 32 bits as a signed value.
* @type {number}
*/
this.high = high | 0;
/**
* Whether unsigned or not.
* @type {boolean}
*/
this.unsigned = !!unsigned;
}
// The internal representation of a long is the two given signed, 32-bit values.
// We use 32-bit pieces because these are the size of integers on which
// Javascript performs bit-operations. For operations like addition and
// multiplication, we split each number into 16 bit pieces, which can easily be
// multiplied within Javascript's floating-point representation without overflow
// or change in sign.
//
// In the algorithms below, we frequently reduce the negative case to the
// positive case by negating the input(s) and then post-processing the result.
// Note that we must ALWAYS check specially whether those values are MIN_VALUE
// (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as
// a positive number, it overflows back into a negative). Not handling this
// case would often result in infinite recursion.
//
// Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the from*
// methods on which they depend.
/**
* An indicator used to reliably determine if an object is a Long or not.
* @type {boolean}
* @const
* @private
*/
Long.prototype.__isLong__;
Object.defineProperty(Long.prototype, "__isLong__", {
value: true,
enumerable: false,
configurable: false
});
/**
* @function
* @param {*} obj Object
* @returns {boolean}
* @inner
*/
function isLong(obj) {
return (obj && obj["__isLong__"]) === true;
}
/**
* Tests if the specified object is a Long.
* @function
* @param {*} obj Object
* @returns {boolean}
*/
Long.isLong = isLong;
/**
* A cache of the Long representations of small integer values.
* @type {!Object}
* @inner
*/
var INT_CACHE = {};
/**
* A cache of the Long representations of small unsigned integer values.
* @type {!Object}
* @inner
*/
var UINT_CACHE = {};
/**
* @param {number} value
* @param {boolean=} unsigned
* @returns {!Long}
* @inner
*/
function fromInt(value, unsigned) {
var obj, cachedObj, cache;
if (unsigned) {
value >>>= 0;
if (cache = (0 <= value && value < 256)) {
cachedObj = UINT_CACHE[value];
if (cachedObj)
return cachedObj;
}
obj = fromBits(value, (value | 0) < 0 ? -1 : 0, true);
if (cache)
UINT_CACHE[value] = obj;
return obj;
} else {
value |= 0;
if (cache = (-128 <= value && value < 128)) {
cachedObj = INT_CACHE[value];
if (cachedObj)
return cachedObj;
}
obj = fromBits(value, value < 0 ? -1 : 0, false);
if (cache)
INT_CACHE[value] = obj;
return obj;
}
}
/**
* Returns a Long representing the given 32 bit integer value.
* @function
* @param {number} value The 32 bit integer in question
* @param {boolean=} unsigned Whether unsigned or not, defaults to `false` for signed
* @returns {!Long} The corresponding Long value
*/
Long.fromInt = fromInt;
/**
* @param {number} value
* @param {boolean=} unsigned
* @returns {!Long}
* @inner
*/
function fromNumber(value, unsigned) {
if (isNaN(value) || !isFinite(value))
return unsigned ? UZERO : ZERO;
if (unsigned) {
if (value < 0)
return UZERO;
if (value >= TWO_PWR_64_DBL)
return MAX_UNSIGNED_VALUE;
} else {
if (value <= -TWO_PWR_63_DBL)
return MIN_VALUE;
if (value + 1 >= TWO_PWR_63_DBL)
return MAX_VALUE;
}
if (value < 0)
return fromNumber(-value, unsigned).neg();
return fromBits((value % TWO_PWR_32_DBL) | 0, (value / TWO_PWR_32_DBL) | 0, unsigned);
}
/**
* Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned.
* @function
* @param {number} value The number in question
* @param {boolean=} unsigned Whether unsigned or not, defaults to `false` for signed
* @returns {!Long} The corresponding Long value
*/
Long.fromNumber = fromNumber;
/**
* @param {number} lowBits
* @param {number} highBits
* @param {boolean=} unsigned
* @returns {!Long}
* @inner
*/
function fromBits(lowBits, highBits, unsigned) {
return new Long(lowBits, highBits, unsigned);
}
/**
* Returns a Long representing the 64 bit integer that comes by concatenating the given low and high bits. Each is
* assumed to use 32 bits.
* @function
* @param {number} lowBits The low 32 bits
* @param {number} highBits The high 32 bits
* @param {boolean=} unsigned Whether unsigned or not, defaults to `false` for signed
* @returns {!Long} The corresponding Long value
*/
Long.fromBits = fromBits;
/**
* @function
* @param {number} base
* @param {number} exponent
* @returns {number}
* @inner
*/
var pow_dbl = Math.pow; // Used 4 times (4*8 to 15+4)
/**
* @param {string} str
* @param {(boolean|number)=} unsigned
* @param {number=} radix
* @returns {!Long}
* @inner
*/
function fromString(str, unsigned, radix) {
if (str.length === 0)
throw Error('empty string');
if (str === "NaN" || str === "Infinity" || str === "+Infinity" || str === "-Infinity")
return ZERO;
if (typeof unsigned === 'number') {
// For goog.math.long compatibility
radix = unsigned,
unsigned = false;
} else {
unsigned = !! unsigned;
}
radix = radix || 10;
if (radix < 2 || 36 < radix)
throw RangeError('radix');
var p;
if ((p = str.indexOf('-')) > 0)
throw Error('interior hyphen');
else if (p === 0) {
return fromString(str.substring(1), unsigned, radix).neg();
}
// Do several (8) digits each time through the loop, so as to
// minimize the calls to the very expensive emulated div.
var radixToPower = fromNumber(pow_dbl(radix, 8));
var result = ZERO;
for (var i = 0; i < str.length; i += 8) {
var size = Math.min(8, str.length - i),
value = parseInt(str.substring(i, i + size), radix);
if (size < 8) {
var power = fromNumber(pow_dbl(radix, size));
result = result.mul(power).add(fromNumber(value));
} else {
result = result.mul(radixToPower);
result = result.add(fromNumber(value));
}
}
result.unsigned = unsigned;
return result;
}
/**
* Returns a Long representation of the given string, written using the specified radix.
* @function
* @param {string} str The textual representation of the Long
* @param {(boolean|number)=} unsigned Whether unsigned or not, defaults to `false` for signed
* @param {number=} radix The radix in which the text is written (2-36), defaults to 10
* @returns {!Long} The corresponding Long value
*/
Long.fromString = fromString;
/**
* @function
* @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val
* @returns {!Long}
* @inner
*/
function fromValue(val) {
if (val /* is compatible */ instanceof Long)
return val;
if (typeof val === 'number')
return fromNumber(val);
if (typeof val === 'string')
return fromString(val);
// Throws for non-objects, converts non-instanceof Long:
return fromBits(val.low, val.high, val.unsigned);
}
/**
* Converts the specified value to a Long.
* @function
* @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val Value
* @returns {!Long}
*/
Long.fromValue = fromValue;
// NOTE: the compiler should inline these constant values below and then remove these variables, so there should be
// no runtime penalty for these.
/**
* @type {number}
* @const
* @inner
*/
var TWO_PWR_16_DBL = 1 << 16;
/**
* @type {number}
* @const
* @inner
*/
var TWO_PWR_24_DBL = 1 << 24;
/**
* @type {number}
* @const
* @inner
*/
var TWO_PWR_32_DBL = TWO_PWR_16_DBL * TWO_PWR_16_DBL;
/**
* @type {number}
* @const
* @inner
*/
var TWO_PWR_64_DBL = TWO_PWR_32_DBL * TWO_PWR_32_DBL;
/**
* @type {number}
* @const
* @inner
*/
var TWO_PWR_63_DBL = TWO_PWR_64_DBL / 2;
/**
* @type {!Long}
* @const
* @inner
*/
var TWO_PWR_24 = fromInt(TWO_PWR_24_DBL);
/**
* @type {!Long}
* @inner
*/
var ZERO = fromInt(0);
/**
* Signed zero.
* @type {!Long}
*/
Long.ZERO = ZERO;
/**
* @type {!Long}
* @inner
*/
var UZERO = fromInt(0, true);
/**
* Unsigned zero.
* @type {!Long}
*/
Long.UZERO = UZERO;
/**
* @type {!Long}
* @inner
*/
var ONE = fromInt(1);
/**
* Signed one.
* @type {!Long}
*/
Long.ONE = ONE;
/**
* @type {!Long}
* @inner
*/
var UONE = fromInt(1, true);
/**
* Unsigned one.
* @type {!Long}
*/
Long.UONE = UONE;
/**
* @type {!Long}
* @inner
*/
var NEG_ONE = fromInt(-1);
/**
* Signed negative one.
* @type {!Long}
*/
Long.NEG_ONE = NEG_ONE;
/**
* @type {!Long}
* @inner
*/
var MAX_VALUE = fromBits(0xFFFFFFFF|0, 0x7FFFFFFF|0, false);
/**
* Maximum signed value.
* @type {!Long}
*/
Long.MAX_VALUE = MAX_VALUE;
/**
* @type {!Long}
* @inner
*/
var MAX_UNSIGNED_VALUE = fromBits(0xFFFFFFFF|0, 0xFFFFFFFF|0, true);
/**
* Maximum unsigned value.
* @type {!Long}
*/
Long.MAX_UNSIGNED_VALUE = MAX_UNSIGNED_VALUE;
/**
* @type {!Long}
* @inner
*/
var MIN_VALUE = fromBits(0, 0x80000000|0, false);
/**
* Minimum signed value.
* @type {!Long}
*/
Long.MIN_VALUE = MIN_VALUE;
/**
* @alias Long.prototype
* @inner
*/
var LongPrototype = Long.prototype;
/**
* Converts the Long to a 32 bit integer, assuming it is a 32 bit integer.
* @returns {number}
*/
LongPrototype.toInt = function toInt() {
return this.unsigned ? this.low >>> 0 : this.low;
};
/**
* Converts the Long to a the nearest floating-point representation of this value (double, 53 bit mantissa).
* @returns {number}
*/
LongPrototype.toNumber = function toNumber() {
if (this.unsigned)
return ((this.high >>> 0) * TWO_PWR_32_DBL) + (this.low >>> 0);
return this.high * TWO_PWR_32_DBL + (this.low >>> 0);
};
/**
* Converts the Long to a string written in the specified radix.
* @param {number=} radix Radix (2-36), defaults to 10
* @returns {string}
* @override
* @throws {RangeError} If `radix` is out of range
*/
LongPrototype.toString = function toString(radix) {
radix = radix || 10;
if (radix < 2 || 36 < radix)
throw RangeError('radix');
if (this.isZero())
return '0';
if (this.isNegative()) { // Unsigned Longs are never negative
if (this.eq(MIN_VALUE)) {
// We need to change the Long value before it can be negated, so we remove
// the bottom-most digit in this base and then recurse to do the rest.
var radixLong = fromNumber(radix),
div = this.div(radixLong),
rem1 = div.mul(radixLong).sub(this);
return div.toString(radix) + rem1.toInt().toString(radix);
} else
return '-' + this.neg().toString(radix);
}
// Do several (6) digits each time through the loop, so as to
// minimize the calls to the very expensive emulated div.
var radixToPower = fromNumber(pow_dbl(radix, 6), this.unsigned),
rem = this;
var result = '';
while (true) {
var remDiv = rem.div(radixToPower),
intval = rem.sub(remDiv.mul(radixToPower)).toInt() >>> 0,
digits = intval.toString(radix);
rem = remDiv;
if (rem.isZero())
return digits + result;
else {
while (digits.length < 6)
digits = '0' + digits;
result = '' + digits + result;
}
}
};
/**
* Gets the high 32 bits as a signed integer.
* @returns {number} Signed high bits
*/
LongPrototype.getHighBits = function getHighBits() {
return this.high;
};
/**
* Gets the high 32 bits as an unsigned integer.
* @returns {number} Unsigned high bits
*/
LongPrototype.getHighBitsUnsigned = function getHighBitsUnsigned() {
return this.high >>> 0;
};
/**
* Gets the low 32 bits as a signed integer.
* @returns {number} Signed low bits
*/
LongPrototype.getLowBits = function getLowBits() {
return this.low;
};
/**
* Gets the low 32 bits as an unsigned integer.
* @returns {number} Unsigned low bits
*/
LongPrototype.getLowBitsUnsigned = function getLowBitsUnsigned() {
return this.low >>> 0;
};
/**
* Gets the number of bits needed to represent the absolute value of this Long.
* @returns {number}
*/
LongPrototype.getNumBitsAbs = function getNumBitsAbs() {
if (this.isNegative()) // Unsigned Longs are never negative
return this.eq(MIN_VALUE) ? 64 : this.neg().getNumBitsAbs();
var val = this.high != 0 ? this.high : this.low;
for (var bit = 31; bit > 0; bit--)
if ((val & (1 << bit)) != 0)
break;
return this.high != 0 ? bit + 33 : bit + 1;
};
/**
* Tests if this Long's value equals zero.
* @returns {boolean}
*/
LongPrototype.isZero = function isZero() {
return this.high === 0 && this.low === 0;
};
/**
* Tests if this Long's value is negative.
* @returns {boolean}
*/
LongPrototype.isNegative = function isNegative() {
return !this.unsigned && this.high < 0;
};
/**
* Tests if this Long's value is positive.
* @returns {boolean}
*/
LongPrototype.isPositive = function isPositive() {
return this.unsigned || this.high >= 0;
};
/**
* Tests if this Long's value is odd.
* @returns {boolean}
*/
LongPrototype.isOdd = function isOdd() {
return (this.low & 1) === 1;
};
/**
* Tests if this Long's value is even.
* @returns {boolean}
*/
LongPrototype.isEven = function isEven() {
return (this.low & 1) === 0;
};
/**
* Tests if this Long's value equals the specified's.
* @param {!Long|number|string} other Other value
* @returns {boolean}
*/
LongPrototype.equals = function equals(other) {
if (!isLong(other))
other = fromValue(other);
if (this.unsigned !== other.unsigned && (this.high >>> 31) === 1 && (other.high >>> 31) === 1)
return false;
return this.high === other.high && this.low === other.low;
};
/**
* Tests if this Long's value equals the specified's. This is an alias of {@link Long#equals}.
* @function
* @param {!Long|number|string} other Other value
* @returns {boolean}
*/
LongPrototype.eq = LongPrototype.equals;
/**
* Tests if this Long's value differs from the specified's.
* @param {!Long|number|string} other Other value
* @returns {boolean}
*/
LongPrototype.notEquals = function notEquals(other) {
return !this.eq(/* validates */ other);
};
/**
* Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.
* @function
* @param {!Long|number|string} other Other value
* @returns {boolean}
*/
LongPrototype.neq = LongPrototype.notEquals;
/**
* Tests if this Long's value is less than the specified's.
* @param {!Long|number|string} other Other value
* @returns {boolean}
*/
LongPrototype.lessThan = function lessThan(other) {
return this.comp(/* validates */ other) < 0;
};
/**
* Tests if this Long's value is less than the specified's. This is an alias of {@link Long#lessThan}.
* @function
* @param {!Long|number|string} other Other value
* @returns {boolean}
*/
LongPrototype.lt = LongPrototype.lessThan;
/**
* Tests if this Long's value is less than or equal the specified's.
* @param {!Long|number|string} other Other value
* @returns {boolean}
*/
LongPrototype.lessThanOrEqual = function lessThanOrEqual(other) {
return this.comp(/* validates */ other) <= 0;
};
/**
* Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.
* @function
* @param {!Long|number|string} other Other value
* @returns {boolean}
*/
LongPrototype.lte = LongPrototype.lessThanOrEqual;
/**
* Tests if this Long's value is greater than the specified's.
* @param {!Long|number|string} other Other value
* @returns {boolean}
*/
LongPrototype.greaterThan = function greaterThan(other) {
return this.comp(/* validates */ other) > 0;
};
/**
* Tests if this Long's value is greater than the specified's. This is an alias of {@link Long#greaterThan}.
* @function
* @param {!Long|number|string} other Other value
* @returns {boolean}
*/
LongPrototype.gt = LongPrototype.greaterThan;
/**
* Tests if this Long's value is greater than or equal the specified's.
* @param {!Long|number|string} other Other value
* @returns {boolean}
*/
LongPrototype.greaterThanOrEqual = function greaterThanOrEqual(other) {
return this.comp(/* validates */ other) >= 0;
};
/**
* Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.
* @function
* @param {!Long|number|string} other Other value
* @returns {boolean}
*/
LongPrototype.gte = LongPrototype.greaterThanOrEqual;
/**
* Compares this Long's value with the specified's.
* @param {!Long|number|string} other Other value
* @returns {number} 0 if they are the same, 1 if the this is greater and -1
* if the given one is greater
*/
LongPrototype.compare = function compare(other) {
if (!isLong(other))
other = fromValue(other);
if (this.eq(other))
return 0;
var thisNeg = this.isNegative(),
otherNeg = other.isNegative();
if (thisNeg && !otherNeg)
return -1;
if (!thisNeg && otherNeg)
return 1;
// At this point the sign bits are the same
if (!this.unsigned)
return this.sub(other).isNegative() ? -1 : 1;
// Both are positive if at least one is unsigned
return (other.high >>> 0) > (this.high >>> 0) || (other.high === this.high && (other.low >>> 0) > (this.low >>> 0)) ? -1 : 1;
};
/**
* Compares this Long's value with the specified's. This is an alias of {@link Long#compare}.
* @function
* @param {!Long|number|string} other Other value
* @returns {number} 0 if they are the same, 1 if the this is greater and -1
* if the given one is greater
*/
LongPrototype.comp = LongPrototype.compare;
/**
* Negates this Long's value.
* @returns {!Long} Negated Long
*/
LongPrototype.negate = function negate() {
if (!this.unsigned && this.eq(MIN_VALUE))
return MIN_VALUE;
return this.not().add(ONE);
};
/**
* Negates this Long's value. This is an alias of {@link Long#negate}.
* @function
* @returns {!Long} Negated Long
*/
LongPrototype.neg = LongPrototype.negate;
/**
* Returns the sum of this and the specified Long.
* @param {!Long|number|string} addend Addend
* @returns {!Long} Sum
*/
LongPrototype.add = function add(addend) {
if (!isLong(addend))
addend = fromValue(addend);
// Divide each number into 4 chunks of 16 bits, and then sum the chunks.
var a48 = this.high >>> 16;
var a32 = this.high & 0xFFFF;
var a16 = this.low >>> 16;
var a00 = this.low & 0xFFFF;
var b48 = addend.high >>> 16;
var b32 = addend.high & 0xFFFF;
var b16 = addend.low >>> 16;
var b00 = addend.low & 0xFFFF;
var c48 = 0, c32 = 0, c16 = 0, c00 = 0;
c00 += a00 + b00;
c16 += c00 >>> 16;
c00 &= 0xFFFF;
c16 += a16 + b16;
c32 += c16 >>> 16;
c16 &= 0xFFFF;
c32 += a32 + b32;
c48 += c32 >>> 16;
c32 &= 0xFFFF;
c48 += a48 + b48;
c48 &= 0xFFFF;
return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);
};
/**
* Returns the difference of this and the specified Long.
* @param {!Long|number|string} subtrahend Subtrahend
* @returns {!Long} Difference
*/
LongPrototype.subtract = function subtract(subtrahend) {
if (!isLong(subtrahend))
subtrahend = fromValue(subtrahend);
return this.add(subtrahend.neg());
};
/**
* Returns the difference of this and the specified Long. This is an alias of {@link Long#subtract}.
* @function
* @param {!Long|number|string} subtrahend Subtrahend
* @returns {!Long} Difference
*/
LongPrototype.sub = LongPrototype.subtract;
/**
* Returns the product of this and the specified Long.
* @param {!Long|number|string} multiplier Multiplier
* @returns {!Long} Product
*/
LongPrototype.multiply = function multiply(multiplier) {
if (this.isZero())
return ZERO;
if (!isLong(multiplier))
multiplier = fromValue(multiplier);
if (multiplier.isZero())
return ZERO;
if (this.eq(MIN_VALUE))
return multiplier.isOdd() ? MIN_VALUE : ZERO;
if (multiplier.eq(MIN_VALUE))
return this.isOdd() ? MIN_VALUE : ZERO;
if (this.isNegative()) {
if (multiplier.isNegative())
return this.neg().mul(multiplier.neg());
else
return this.neg().mul(multiplier).neg();
} else if (multiplier.isNegative())
return this.mul(multiplier.neg()).neg();
// If both longs are small, use float multiplication
if (this.lt(TWO_PWR_24) && multiplier.lt(TWO_PWR_24))
return fromNumber(this.toNumber() * multiplier.toNumber(), this.unsigned);
// Divide each long into 4 chunks of 16 bits, and then add up 4x4 products.
// We can skip products that would overflow.
var a48 = this.high >>> 16;
var a32 = this.high & 0xFFFF;
var a16 = this.low >>> 16;
var a00 = this.low & 0xFFFF;
var b48 = multiplier.high >>> 16;
var b32 = multiplier.high & 0xFFFF;
var b16 = multiplier.low >>> 16;
var b00 = multiplier.low & 0xFFFF;
var c48 = 0, c32 = 0, c16 = 0, c00 = 0;
c00 += a00 * b00;
c16 += c00 >>> 16;
c00 &= 0xFFFF;
c16 += a16 * b00;
c32 += c16 >>> 16;
c16 &= 0xFFFF;
c16 += a00 * b16;
c32 += c16 >>> 16;
c16 &= 0xFFFF;
c32 += a32 * b00;
c48 += c32 >>> 16;
c32 &= 0xFFFF;
c32 += a16 * b16;
c48 += c32 >>> 16;
c32 &= 0xFFFF;
c32 += a00 * b32;
c48 += c32 >>> 16;
c32 &= 0xFFFF;
c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;
c48 &= 0xFFFF;
return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);
};
/**
* Returns the product of this and the specified Long. This is an alias of {@link Long#multiply}.
* @function
* @param {!Long|number|string} multiplier Multiplier
* @returns {!Long} Product
*/
LongPrototype.mul = LongPrototype.multiply;
/**
* Returns this Long divided by the specified. The result is signed if this Long is signed or
* unsigned if this Long is unsigned.
* @param {!Long|number|string} divisor Divisor
* @returns {!Long} Quotient
*/
LongPrototype.divide = function divide(divisor) {
if (!isLong(divisor))
divisor = fromValue(divisor);
if (divisor.isZero())
throw Error('division by zero');
if (this.isZero())
return this.unsigned ? UZERO : ZERO;
var approx, rem, res;
if (!this.unsigned) {
// This section is only relevant for signed longs and is derived from the
// closure library as a whole.
if (this.eq(MIN_VALUE)) {
if (divisor.eq(ONE) || divisor.eq(NEG_ONE))
return MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE
else if (divisor.eq(MIN_VALUE))
return ONE;
else {
// At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|.
var halfThis = this.shr(1);
approx = halfThis.div(divisor).shl(1);
if (approx.eq(ZERO)) {
return divisor.isNegative() ? ONE : NEG_ONE;
} else {
rem = this.sub(divisor.mul(approx));
res = approx.add(rem.div(divisor));
return res;
}
}
} else if (divisor.eq(MIN_VALUE))
return this.unsigned ? UZERO : ZERO;
if (this.isNegative()) {
if (divisor.isNegative())
return this.neg().div(divisor.neg());
return this.neg().div(divisor).neg();
} else if (divisor.isNegative())
return this.div(divisor.neg()).neg();
res = ZERO;
} else {
// The algorithm below has not been made for unsigned longs. It's therefore
// required to take special care of the MSB prior to running it.
if (!divisor.unsigned)
divisor = divisor.toUnsigned();
if (divisor.gt(this))
return UZERO;
if (divisor.gt(this.shru(1))) // 15 >>> 1 = 7 ; with divisor = 8 ; true
return UONE;
res = UZERO;
}
// Repeat the following until the remainder is less than other: find a
// floating-point that approximates remainder / other *from below*, add this
// into the result, and subtract it from the remainder. It is critical that
// the approximate value is less than or equal to the real value so that the
// remainder never becomes negative.
rem = this;
while (rem.gte(divisor)) {
// Approximate the result of division. This may be a little greater or
// smaller than the actual value.
approx = Math.max(1, Math.floor(rem.toNumber() / divisor.toNumber()));
// We will tweak the approximate result by changing it in the 48-th digit or
// the smallest non-fractional digit, whichever is larger.
var log2 = Math.ceil(Math.log(approx) / Math.LN2),
delta = (log2 <= 48) ? 1 : pow_dbl(2, log2 - 48),
// Decrease the approximation until it is smaller than the remainder. Note
// that if it is too large, the product overflows and is negative.
approxRes = fromNumber(approx),
approxRem = approxRes.mul(divisor);
while (approxRem.isNegative() || approxRem.gt(rem)) {
approx -= delta;
approxRes = fromNumber(approx, this.unsigned);
approxRem = approxRes.mul(divisor);
}
// We know the answer can't be zero... and actually, zero would cause
// infinite recursion since we would make no progress.
if (approxRes.isZero())
approxRes = ONE;
res = res.add(approxRes);
rem = rem.sub(approxRem);
}
return res;
};
/**
* Returns this Long divided by the specified. This is an alias of {@link Long#divide}.
* @function
* @param {!Long|number|string} divisor Divisor
* @returns {!Long} Quotient
*/
LongPrototype.div = LongPrototype.divide;
/**
* Returns this Long modulo the specified.
* @param {!Long|number|string} divisor Divisor
* @returns {!Long} Remainder
*/
LongPrototype.modulo = function modulo(divisor) {
if (!isLong(divisor))
divisor = fromValue(divisor);
return this.sub(this.div(divisor).mul(divisor));
};
/**
* Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.
* @function
* @param {!Long|number|string} divisor Divisor
* @returns {!Long} Remainder
*/
LongPrototype.mod = LongPrototype.modulo;
/**
* Returns the bitwise NOT of this Long.
* @returns {!Long}
*/
LongPrototype.not = function not() {
return fromBits(~this.low, ~this.high, this.unsigned);
};
/**
* Returns the bitwise AND of this Long and the specified.
* @param {!Long|number|string} other Other Long
* @returns {!Long}
*/
LongPrototype.and = function and(other) {
if (!isLong(other))
other = fromValue(other);
return fromBits(this.low & other.low, this.high & other.high, this.unsigned);
};
/**
* Returns the bitwise OR of this Long and the specified.
* @param {!Long|number|string} other Other Long
* @returns {!Long}
*/
LongPrototype.or = function or(other) {
if (!isLong(other))
other = fromValue(other);
return fromBits(this.low | other.low, this.high | other.high, this.unsigned);
};
/**
* Returns the bitwise XOR of this Long and the given one.
* @param {!Long|number|string} other Other Long
* @returns {!Long}
*/
LongPrototype.xor = function xor(other) {
if (!isLong(other))
other = fromValue(other);
return fromBits(this.low ^ other.low, this.high ^ other.high, this.unsigned);
};
/**
* Returns this Long with bits shifted to the left by the given amount.
* @param {number|!Long} numBits Number of bits
* @returns {!Long} Shifted Long
*/
LongPrototype.shiftLeft = function shiftLeft(numBits) {
if (isLong(numBits))
numBits = numBits.toInt();
if ((numBits &= 63) === 0)
return this;
else if (numBits < 32)
return fromBits(this.low << numBits, (this.high << numBits) | (this.low >>> (32 - numBits)), this.unsigned);
else
return fromBits(0, this.low << (numBits - 32), this.unsigned);
};
/**
* Returns this Long with bits shifted to the left by the given amount. This is an alias of {@link Long#shiftLeft}.
* @function
* @param {number|!Long} numBits Number of bits
* @returns {!Long} Shifted Long
*/
LongPrototype.shl = LongPrototype.shiftLeft;
/**
* Returns this Long with bits arithmetically shifted to the right by the given amount.
* @param {number|!Long} numBits Number of bits
* @returns {!Long} Shifted Long
*/
LongPrototype.shiftRight = function shiftRight(numBits) {
if (isLong(numBits))
numBits = numBits.toInt();
if ((numBits &= 63) === 0)
return this;
else if (numBits < 32)
return fromBits((this.low >>> numBits) | (this.high << (32 - numBits)), this.high >> numBits, this.unsigned);
else
return fromBits(this.high >> (numBits - 32), this.high >= 0 ? 0 : -1, this.unsigned);
};
/**
* Returns this Long with bits arithmetically shifted to the right by the given amount. This is an alias of {@link Long#shiftRight}.
* @function
* @param {number|!Long} numBits Number of bits
* @returns {!Long} Shifted Long
*/
LongPrototype.shr = LongPrototype.shiftRight;
/**
* Returns this Long with bits logically shifted to the right by the given amount.
* @param {number|!Long} numBits Number of bits
* @returns {!Long} Shifted Long
*/
LongPrototype.shiftRightUnsigned = function shiftRightUnsigned(numBits) {
if (isLong(numBits))
numBits = numBits.toInt();
numBits &= 63;
if (numBits === 0)
return this;
else {
var high = this.high;
if (numBits < 32) {
var low = this.low;
return fromBits((low >>> numBits) | (high << (32 - numBits)), high >>> numBits, this.unsigned);
} else if (numBits === 32)
return fromBits(high, 0, this.unsigned);
else
return fromBits(high >>> (numBits - 32), 0, this.unsigned);
}
};
/**
* Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.
* @function
* @param {number|!Long} numBits Number of bits
* @returns {!Long} Shifted Long
*/
LongPrototype.shru = LongPrototype.shiftRightUnsigned;
/**
* Converts this Long to signed.
* @returns {!Long} Signed long
*/
LongPrototype.toSigned = function toSigned() {
if (!this.unsigned)
return this;
return fromBits(this.low, this.high, false);
};
/**
* Converts this Long to unsigned.
* @returns {!Long} Unsigned long
*/
LongPrototype.toUnsigned = function toUnsigned() {
if (this.unsigned)
return this;
return fromBits(this.low, this.high, true);
};
/**
* Converts this Long to its byte representation.
* @param {boolean=} le Whether little or big endian, defaults to big endian
* @returns {!Array.<number>} Byte representation
*/
LongPrototype.toBytes = function(le) {
return le ? this.toBytesLE() : this.toBytesBE();
}
/**
* Converts this Long to its little endian byte representation.
* @returns {!Array.<number>} Little endian byte representation
*/
LongPrototype.toBytesLE = function() {
var hi = this.high,
lo = this.low;
return [
lo & 0xff,
(lo >>> 8) & 0xff,
(lo >>> 16) & 0xff,
(lo >>> 24) & 0xff,
hi & 0xff,
(hi >>> 8) & 0xff,
(hi >>> 16) & 0xff,
(hi >>> 24) & 0xff
];
}
/**
* Converts this Long to its big endian byte representation.
* @returns {!Array.<number>} Big endian byte representation
*/
LongPrototype.toBytesBE = function() {
var hi = this.high,
lo = this.low;
return [
(hi >>> 24) & 0xff,
(hi >>> 16) & 0xff,
(hi >>> 8) & 0xff,
hi & 0xff,
(lo >>> 24) & 0xff,
(lo >>> 16) & 0xff,
(lo >>> 8) & 0xff,
lo & 0xff
];
}
return Long;
});
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(120)(module)))
/***/ }),
/* 128 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(129).default
/***/ }),
/* 129 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(Buffer) {'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _mumbleStreams = __webpack_require__(130);
var _mumbleStreams2 = _interopRequireDefault(_mumbleStreams);
var _reduplexer = __webpack_require__(169);
var _reduplexer2 = _interopRequireDefault(_reduplexer);
var _events = __webpack_require__(88);
var _through = __webpack_require__(178);
var _through2 = _interopRequireDefault(_through);
var _promise = __webpack_require__(180);
var _promise2 = _interopRequireDefault(_promise);
var _dropStream = __webpack_require__(190);
var _dropStream2 = _interopRequireDefault(_dropStream);
var _utils = __webpack_require__(199);
var _user2 = __webpack_require__(200);
var _user3 = _interopRequireDefault(_user2);
var _channel = __webpack_require__(203);
var _channel2 = _interopRequireDefault(_channel);
var _removeValue = __webpack_require__(201);
var _removeValue2 = _interopRequireDefault(_removeValue);
var _statsIncremental = __webpack_require__(204);
var _statsIncremental2 = _interopRequireDefault(_statsIncremental);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var DenyType = _mumbleStreams2.default.data.messages.PermissionDenied.DenyType;
/*
* @typedef {'Opus'} Codec
*/
/**
* Number of the voice target when outgoing (0 for normal talking, 1-31 for
* a voice target).
* String describing the source when incoming.
* @typedef {number|'normal'|'shout'|'whisper'} VoiceTarget
*/
/**
* @typedef {object} VoiceData
* @property {VoiceTarget} target - Target of the audio
* @property {Codec} codec - The codec of the audio packet
* @property {Buffer} frame - Encoded audio frame, null indicates a lost frame
* @property {?Position} position - Position of audio source
*/
/**
* Interleaved 32-bit float PCM frames in [-1; 1] range with sample rate of 48k.
* @typedef {object} PCMData
* @property {VoiceTarget} target - Target of the audio
* @property {Float32Array} pcm - The pcm data
* @property {number} numberOfChannels - Number of channels
* @property {?Position} position - Position of audio source
* @property {?number} bitrate - Target bitrate hint for encoder, see for default {@link MumbleClient#setAudioQuality}
*/
/**
* Transforms {@link VoiceData} to {@link PCMData}.
* Should ignore any unknown codecs.
*
* @interface DecoderStream
* @extends stream.Transform
*/
/**
* Transforms {@link PCMData} to {@link VoiceData}.
*
* @interface EncoderStream
* @extends stream.Transform
*/
/**
* @interface Codecs
* @property {number[]} celt - List of celt versions supported by this implementation
* @property {boolean} opus - Whether this implementation supports the Opus codec
*/
/**
* Returns the duration of encoded voice data without actually decoding it.
*
* @function Codecs#getDuration
* @param {Codec} codec - The codec
* @param {Buffer} buffer - The encoded data
* @return {number} The duration in milliseconds (has to be a multiple of 10)
*/
/**
* Creates a new decoder stream for a transmission of the specified user.
* This method is called for every single transmission (whenever a user starts
* speaking), as such it must not be expensive.
*
* @function Codecs#createDecoderStream
* @param {User} user - The user
* @return {DecoderStream} The decoder stream
*/
/**
* Creates a new encoder stream for a outgoing transmission.
* This method is called for every single transmission (whenever the user
* starts speaking), as such it must not be expensive.
*
* @function Codecs#createEncoderStream
* @param {Codec} codec - The codec
* @return {EncoderStream} The endecoder stream
*/
/**
* Single use Mumble client.
*/
var MumbleClient = function (_EventEmitter) {
_inherits(MumbleClient, _EventEmitter);
/**
* A mumble client.
* This object may only be connected to one server and cannot be reused.
*
* @param {object} options - Options
* @param {string} options.username - User name of the client
* @param {string} [options.password] - Server password to use
* @param {string[]} [options.tokens] - Array of access tokens to use
* @param {string} [options.clientSoftware] - Client software name/version
* @param {string} [options.osName] - Client operating system name
* @param {string} [options.osVersion] - Client operating system version
* @param {Codecs} [options.codecs] - Codecs used for voice
* @param {number} [options.userVoiceTimeout] - Milliseconds after which an
* inactive voice transmissions is timed out
* @param {number} [options.maxInFlightDataPings] - Amount of data pings without response
* after which the connection is considered timed out
* @param {number} [options.dataPingInterval] - Interval of data pings (in ms)
*/
function MumbleClient(options) {
_classCallCheck(this, MumbleClient);
var _this = _possibleConstructorReturn(this, (MumbleClient.__proto__ || Object.getPrototypeOf(MumbleClient)).call(this));
if (!options.username) {
throw new Error('No username given');
}
_this._options = options || {};
_this._username = options.username;
_this._password = options.password;
_this._tokens = options.tokens;
_this._codecs = options.codecs;
_this._dataPingInterval = options.dataPingInterval || 5000;
_this._maxInFlightDataPings = options.maxInFlightDataPings || 2;
_this._dataStats = new _statsIncremental2.default();
_this._voiceStats = new _statsIncremental2.default();
_this._userById = {};
_this._channelById = {};
_this.users = [];
_this.channels = [];
_this._dataEncoder = new _mumbleStreams2.default.data.Encoder();
_this._dataDecoder = new _mumbleStreams2.default.data.Decoder();
_this._voiceEncoder = new _mumbleStreams2.default.voice.Encoder('server');
_this._voiceDecoder = new _mumbleStreams2.default.voice.Decoder('server');
_this._data = (0, _reduplexer2.default)(_this._dataEncoder, _this._dataDecoder, { objectMode: true });
_this._voice = (0, _reduplexer2.default)(_this._voiceEncoder, _this._voiceDecoder, { objectMode: true });
_this._data.on('data', _this._onData.bind(_this));
_this._voice.on('data', _this._onVoice.bind(_this));
_this._voiceEncoder.on('data', function (data) {
// TODO This should only be the fallback option
_this._data.write({
name: 'UDPTunnel',
payload: data
});
});
_this._voiceDecoder.on('unknown_codec', function (codecId) {
return _this.emit('unknown_codec', codecId);
});
_this._data.on('end', _this.disconnect.bind(_this));
_this._registerErrorHandler(_this._data, _this._voice, _this._dataEncoder, _this._dataDecoder, _this._voiceEncoder, _this._voiceDecoder);
_this._disconnected = false;
return _this;
}
_createClass(MumbleClient, [{
key: '_registerErrorHandler',
value: function _registerErrorHandler() {
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = arguments[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var obj = _step.value;
obj.on('error', this._error.bind(this));
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
}
}, {
key: '_error',
value: function _error(reason) {
this.emit('error', reason);
this.disconnect();
}
}, {
key: '_send',
value: function _send(msg) {
this._data.write(msg);
}
/**
* Connects this client to a duplex stream that is used for the data channel.
* The provided duplex stream is expected to be valid and usable.
* Calling this method will begin the initialization of the connection.
*
* @param stream - The stream used for the data channel.
* @param callback - Optional callback that is invoked when the connection has been established.
*/
}, {
key: 'connectDataStream',
value: function connectDataStream(stream, callback) {
var _this2 = this;
if (this._dataStream) throw Error('Already connected!');
this._dataStream = stream;
// Connect the supplied stream to the data channel encoder and decoder
this._registerErrorHandler(stream);
this._dataEncoder.pipe(stream).pipe(this._dataDecoder);
// Send the initial two packets
this._send({
name: 'Version',
payload: {
version: _mumbleStreams2.default.version.toUInt8(),
release: this._options.clientSoftware || 'Node.js mumble-client',
os: this._options.osName || (0, _utils.getOSName)(),
os_version: this._options.osVersion || (0, _utils.getOSVersion)()
}
});
this._send({
name: 'Authenticate',
payload: {
username: this._username,
password: this._password,
tokens: this._tokens,
celt_versions: (this._codecs || { celt: [] }).celt,
opus: (this._codecs || { opus: false }).opus
}
});
return new _promise2.default(function (resolve, reject) {
_this2.once('connected', function () {
return resolve(_this2);
});
_this2.once('reject', reject);
_this2.once('error', reject);
}).nodeify(callback);
}
/**
* Connects this client to a duplex stream that is used for the voice channel.
* The provided duplex stream is expected to be valid and usable.
* The stream may be unreliable. That is, it may lose packets or deliver them
* out of order.
* It must however gurantee that packets arrive unmodified and/or are dropped
* when corrupted.
* It is also responsible for any encryption that is necessary.
*
* Connecting a voice channel is entirely optional. If no voice channel
* is connected, all voice data is tunneled through the data channel.
*
* @param stream - The stream used for the data channel.
* @returns {undefined}
*/
}, {
key: 'connectVoiceStream',
value: function connectVoiceStream(stream) {
// Connect the stream to the voice channel encoder and decoder
this._registerErrorHandler(stream);
this._voiceEncoder.pipe(stream).pipe(this._voiceDecoder);
// TODO: Ping packet
}
}, {
key: 'createVoiceStream',
value: function createVoiceStream() {
var _this3 = this;
var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
var numberOfChannels = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
if (!this._codecs) {
return _dropStream2.default.obj();
}
var voiceStream = _through2.default.obj(function (chunk, encoding, callback) {
if (chunk instanceof Buffer) {
chunk = new Float32Array(chunk.buffer, chunk.byteOffset, chunk.byteLength / 4);
}
if (chunk instanceof Float32Array) {
chunk = {
target: target,
pcm: chunk,
numberOfChannels: numberOfChannels
};
} else {
chunk = {
target: target,
pcm: chunk.pcm,
numberOfChannels: numberOfChannels,
position: { x: chunk.x, y: chunk.y, z: chunk.z }
};
}
var samples = _this3._samplesPerPacket || chunk.pcm.length / numberOfChannels;
chunk.bitrate = _this3.getActualBitrate(samples, chunk.position != null);
callback(null, chunk);
});
var codec = 'Opus'; // TODO
var seqNum = 0;
voiceStream.pipe(this._codecs.createEncoderStream(codec)).on('data', function (data) {
var duration = _this3._codecs.getDuration(codec, data.frame) / 10;
_this3._voice.write({
seqNum: seqNum,
codec: codec,
mode: target,
frames: [data.frame],
position: data.position,
end: false
});
seqNum += duration;
}).on('end', function () {
_this3._voice.write({
seqNum: seqNum,
codec: codec,
mode: target,
frames: [],
end: true
});
});
return voiceStream;
}
/**
* Method called when new voice packets arrive.
* Forwards the packet to the source user.
*/
}, {
key: '_onVoice',
value: function _onVoice(chunk) {
var user = this._userById[chunk.source];
user._onVoice(chunk.seqNum, chunk.codec, chunk.target, chunk.frames, chunk.position, chunk.end);
}
/**
* Method called when new data packets arrive.
* If there is a method named '_onPacketName', the data is forwarded to
* that method, otherwise it is logged as unhandled.
*
* @param {object} chunk - The data packet
*/
}, {
key: '_onData',
value: function _onData(chunk) {
if (this['_on' + chunk.name]) {
this['_on' + chunk.name](chunk.payload);
} else {
console.log('Unhandled data packet:', chunk);
}
}
}, {
key: '_onUDPTunnel',
value: function _onUDPTunnel(payload) {
// Forward tunneled udp packets to the voice pipeline
this._voiceDecoder.write(payload);
}
}, {
key: '_onVersion',
value: function _onVersion(payload) {
this.serverVersion = {
major: payload.version >> 16,
minor: payload.version >> 8 & 0xff,
patch: payload.version >> 0 & 0xff,
release: payload.release,
os: payload.os,
osVersion: payload.os_version
};
}
}, {
key: '_onServerSync',
value: function _onServerSync(payload) {
var _this4 = this;
// This packet finishes the initialization phase
this.self = this._userById[payload.session];
this.maxBandwidth = payload.max_bandwidth;
this.welcomeMessage = payload.welcome_text;
// Make sure we send regular ping packets to not get disconnected
this._pinger = setInterval(function () {
if (_this4._inFlightDataPings >= _this4._maxInFlightDataPings) {
_this4._error('timeout');
return;
}
var dataStats = _this4._dataStats.getAll();
var voiceStats = _this4._voiceStats.getAll();
var timestamp = new Date().getTime();
var payload = {
timestamp: timestamp
};
if (dataStats) {
payload.tcp_packets = dataStats.n;
payload.tcp_ping_avg = dataStats.mean;
payload.tcp_ping_var = dataStats.variance;
}
if (voiceStats) {
payload.udp_packets = voiceStats.n;
payload.udp_ping_avg = voiceStats.mean;
payload.udp_ping_var = voiceStats.variance;
}
_this4._send({
name: 'Ping',
payload: payload
});
_this4._inFlightDataPings++;
}, this._dataPingInterval);
// We are now connected
this.emit('connected');
}
}, {
key: '_onPing',
value: function _onPing(payload) {
if (this._inFlightDataPings <= 0) {
console.warn('Got unexpected ping message:', payload);
return;
}
this._inFlightDataPings--;
var now = new Date().getTime();
var duration = now - payload.timestamp.toNumber();
this._dataStats.update(duration);
this.emit('dataPing', duration);
}
}, {
key: '_onReject',
value: function _onReject(payload) {
// We got rejected from the server for some reason.
this.emit('reject', payload);
this.disconnect();
}
}, {
key: '_onPermissionDenied',
value: function _onPermissionDenied(payload) {
if (payload.type === DenyType.Text) {
this.emit('denied', 'Text', null, null, payload.reason);
} else if (payload.type === DenyType.Permission) {
var user = this._userById[payload.session];
var channel = this._channelById[payload.channel_id];
this.emit('denied', 'Permission', user, channel, payload.permission);
} else if (payload.type === DenyType.SuperUser) {
this.emit('denied', 'SuperUser', null, null, null);
} else if (payload.type === DenyType.ChannelName) {
this.emit('denied', 'ChannelName', null, null, payload.name);
} else if (payload.type === DenyType.TextTooLong) {
this.emit('denied', 'TextTooLong', null, null, null);
} else if (payload.type === DenyType.TemporaryChannel) {
this.emit('denied', 'TemporaryChannel', null, null, null);
} else if (payload.type === DenyType.MissingCertificate) {
var _user = this._userById[payload.session];
this.emit('denied', 'MissingCertificate', _user, null, null);
} else if (payload.type === DenyType.UserName) {
this.emit('denied', 'UserName', null, null, payload.name);
} else if (payload.type === DenyType.ChannelFull) {
this.emit('denied', 'ChannelFull', null, null, null);
} else if (payload.type === DenyType.NestingLimit) {
this.emit('denied', 'NestingLimit', null, null, null);
} else {
throw Error('Invalid DenyType: ' + payload.type);
}
}
}, {
key: '_onTextMessage',
value: function _onTextMessage(payload) {
var _this5 = this;
this.emit('message', this._userById[payload.actor], payload.message, payload.session.map(function (id) {
return _this5._userById[id];
}), payload.channel_id.map(function (id) {
return _this5._channelById[id];
}), payload.tree_id.map(function (id) {
return _this5._channelById[id];
}));
}
}, {
key: '_onChannelState',
value: function _onChannelState(payload) {
var _this6 = this;
var channel = this._channelById[payload.channel_id];
if (!channel) {
channel = new _channel2.default(this, payload.channel_id);
this._channelById[channel._id] = channel;
this.channels.push(channel);
this.emit('newChannel', channel);
}
(payload.links_remove || []).forEach(function (otherId) {
var otherChannel = _this6._channelById[otherId];
if (otherChannel && otherChannel.links.indexOf(channel) !== -1) {
otherChannel._update({
links_remove: [payload.channel_id]
});
}
});
channel._update(payload);
}
}, {
key: '_onChannelRemove',
value: function _onChannelRemove(payload) {
var channel = this._channelById[payload.channel_id];
if (channel) {
channel._remove();
delete this._channelById[channel._id];
(0, _removeValue2.default)(this.channels, channel);
}
}
}, {
key: '_onUserState',
value: function _onUserState(payload) {
var user = this._userById[payload.session];
if (!user) {
user = new _user3.default(this, payload.session);
this._userById[user._id] = user;
this.users.push(user);
this.emit('newUser', user);
// For some reason, the mumble protocol does not send the initial
// channel of a client if it is the root channel
payload.channel_id = payload.channel_id || 0;
}
user._update(payload);
}
}, {
key: '_onUserRemove',
value: function _onUserRemove(payload) {
var user = this._userById[payload.session];
if (user) {
user._remove(this._userById[payload.actor], payload.reason, payload.ban);
delete this._userById[user._id];
(0, _removeValue2.default)(this.users, user);
}
}
/**
* Disconnect from the remote server.
* Once disconnected, this client may not be used again.
* Does nothing when not connected.
*/
}, {
key: 'disconnect',
value: function disconnect() {
if (this._disconnected) {
return;
}
this._disconnected = true;
this._voice.end();
this._data.end();
clearInterval(this._pinger);
this.emit('disconnected');
}
/**
* Set preferred audio bitrate and samples per packet.
*
* The {@link PCMData} passed to the stream returned by {@link createVoiceStream} must
* contain the appropriate amount of samples per channel for bandwidth control to
* function as expected.
*
* If this method is never called or false is passed as one of the values, then the
* samplesPerPacket are determined by inspecting the {@link PCMData} passed and the
* bitrate is calculated from the maximum bitrate advertised by the server.
*
* @param {number} bitrate - Preferred audio bitrate, sensible values are 8k to 96k
* @param {number} samplesPerPacket - Amount of samples per packet, valid values depend on the codec used but all should support 10ms (i.e. 480), 20ms, 40ms and 60ms
*/
}, {
key: 'setAudioQuality',
value: function setAudioQuality(bitrate, samplesPerPacket) {
this._preferredBitrate = bitrate;
this._samplesPerPacket = samplesPerPacket;
}
/**
* Calculate the actual bitrate taking into account maximum and preferred bitrate.
*/
}, {
key: 'getActualBitrate',
value: function getActualBitrate(samplesPerPacket, sendPosition) {
var bitrate = this.getPreferredBitrate(samplesPerPacket, sendPosition);
var bandwidth = MumbleClient.calcEnforcableBandwidth(bitrate, samplesPerPacket, sendPosition);
if (bandwidth <= this.maxBandwidth) {
return bitrate;
} else {
return this.getMaxBitrate(samplesPerPacket, sendPosition);
}
}
/**
* Returns the preferred bitrate set by {@link setAudioQuality} or
* {@link getMaxBitrate} if not set.
*/
}, {
key: 'getPreferredBitrate',
value: function getPreferredBitrate(samplesPerPacket, sendPosition) {
if (this._preferredBitrate) {
return this._preferredBitrate;
}
return this.getMaxBitrate(samplesPerPacket, sendPosition);
}
/**
* Calculate the maximum bitrate possible given the current server bandwidth limit.
*/
}, {
key: 'getMaxBitrate',
value: function getMaxBitrate(samplesPerPacket, sendPosition) {
var overhead = MumbleClient.calcEnforcableBandwidth(0, samplesPerPacket, sendPosition);
return this.maxBandwidth - overhead;
}
/**
* Calculate the bandwidth used if IP/UDP packets were used to transmit audio.
* This matches the value used by Mumble servers to enforce bandwidth limits.
* @returns {number} bits per second
*/
}, {
key: 'getChannel',
/**
* Find a channel by name.
* If no such channel exists, return null.
*
* @param {string} name - The full name of the channel
* @returns {?Channel}
*/
value: function getChannel(name) {
var _iteratorNormalCompletion2 = true;
var _didIteratorError2 = false;
var _iteratorError2 = undefined;
try {
for (var _iterator2 = this.channels[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
var channel = _step2.value;
if (channel.name === name) {
return channel;
}
}
} catch (err) {
_didIteratorError2 = true;
_iteratorError2 = err;
} finally {
try {
if (!_iteratorNormalCompletion2 && _iterator2.return) {
_iterator2.return();
}
} finally {
if (_didIteratorError2) {
throw _iteratorError2;
}
}
}
return null;
}
}, {
key: 'setSelfMute',
value: function setSelfMute(mute) {
var message = {
name: 'UserState',
payload: {
session: this.self._id,
self_mute: mute
}
};
if (!mute) message.payload.self_deaf = false;
this._send(message);
}
}, {
key: 'setSelfDeaf',
value: function setSelfDeaf(deaf) {
var message = {
name: 'UserState',
payload: {
session: this.self._id,
self_deaf: deaf
}
};
if (deaf) message.payload.self_mute = true;
this._send(message);
}
}, {
key: 'setSelfTexture',
value: function setSelfTexture(texture) {
this._send({
name: 'UserState',
payload: {
session: this.self._id,
texture: texture
}
});
}
}, {
key: 'setSelfComment',
value: function setSelfComment(comment) {
this._send({
name: 'UserState',
payload: {
session: this.self._id,
comment: comment
}
});
}
}, {
key: 'setPluginContext',
value: function setPluginContext(context) {
this._send({
name: 'UserState',
payload: {
session: this.self._id,
plugin_context: context
}
});
}
}, {
key: 'setPluginIdentity',
value: function setPluginIdentity(identity) {
this._send({
name: 'UserState',
payload: {
session: this.self._id,
plugin_identity: identity
}
});
}
}, {
key: 'setRecording',
value: function setRecording(recording) {
this._send({
name: 'UserState',
payload: {
session: this.self._id,
recording: recording
}
});
}
}, {
key: 'getChannelById',
value: function getChannelById(id) {
return this._channelById[id];
}
}, {
key: 'getUserById',
value: function getUserById(id) {
return this._userById[id];
}
}, {
key: 'root',
get: function get() {
return this._channelById[0];
}
}, {
key: 'connected',
get: function get() {
return !this._disconnected && this._dataStream != null;
}
}, {
key: 'dataStats',
get: function get() {
return this._dataStats.getAll();
}
}, {
key: 'voiceStats',
get: function get() {
return this._voiceStats.getAll();
}
}], [{
key: 'calcEnforcableBandwidth',
value: function calcEnforcableBandwidth(bitrate, samplesPerPacket, sendPosition) {
// IP + UDP + Crypt + Header + SeqNum (VarInt) + Codec Header + Optional Position
// Codec Header depends on codec:
// - Opus is always 4 (just the length as VarInt)
// - CELT/Speex depends on frames (10ms) per packet (1 byte each)
var codecHeaderBytes = Math.max(4, samplesPerPacket / 480);
var packetBytes = 20 + 8 + 4 + 1 + 4 + codecHeaderBytes + (sendPosition ? 12 : 0);
var packetsPerSecond = 48000 / samplesPerPacket;
return Math.round(packetBytes * 8 * packetsPerSecond + bitrate);
}
}]);
return MumbleClient;
}(_events.EventEmitter);
exports.default = MumbleClient;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(97).Buffer))
/***/ }),
/* 130 */
/***/ (function(module, exports, __webpack_require__) {
module.exports.version = {
major: 1,
minor: 2,
patch: 16,
toUInt8: function() {
return ((this.major & 0xffff) << 16)
| ((this.minor & 0xff) << 8)
| (this.patch & 0xff);
}
};
module.exports.data = __webpack_require__(131);
module.exports.voice = __webpack_require__(138);
module.exports.udpCrypto = __webpack_require__(139);
/***/ }),
/* 131 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(Buffer) {var protobufjs = __webpack_require__(132),
util = __webpack_require__(135),
Transform = __webpack_require__(87).Transform;
var nameById = {
0: 'Version',
1: 'UDPTunnel',
2: 'Authenticate',
3: 'Ping',
4: 'Reject',
5: 'ServerSync',
6: 'ChannelRemove',
7: 'ChannelState',
8: 'UserRemove',
9: 'UserState',
10: 'BanList',
11: 'TextMessage',
12: 'PermissionDenied',
13: 'ACL',
14: 'QueryUsers',
15: 'CryptSetup',
16: 'ContextActionModify',
17: 'ContextAction',
18: 'UserList',
19: 'VoiceTarget',
20: 'PermissionQuery',
21: 'CodecVersion',
22: 'UserStats',
23: 'RequestBlob',
24: 'ServerConfig',
25: 'SuggestConfig'
};
var idByName = {};
for (var id in nameById) {
idByName[nameById[id]] = id;
}
// Explicitly reading with readFileSync to support brfs
var mumbleProto = Buffer("Ly8gQ29weXJpZ2h0IDIwMDUtMjAxNiBUaGUgTXVtYmxlIERldmVsb3BlcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKLy8gdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCB0aGUgcm9vdCBvZiB0aGUKLy8gTXVtYmxlIHNvdXJjZSB0cmVlIG9yIGF0IDxodHRwczovL3d3dy5tdW1ibGUuaW5mby9MSUNFTlNFPi4KCnBhY2thZ2UgTXVtYmxlUHJvdG87CgpvcHRpb24gb3B0aW1pemVfZm9yID0gU1BFRUQ7CgptZXNzYWdlIFZlcnNpb24gewoJLy8gMi1ieXRlIE1ham9yLCAxLWJ5dGUgTWlub3IgYW5kIDEtYnl0ZSBQYXRjaCB2ZXJzaW9uIG51bWJlci4KCW9wdGlvbmFsIHVpbnQzMiB2ZXJzaW9uID0gMTsKCS8vIENsaWVudCByZWxlYXNlIG5hbWUuCglvcHRpb25hbCBzdHJpbmcgcmVsZWFzZSA9IDI7CgkvLyBDbGllbnQgT1MgbmFtZS4KCW9wdGlvbmFsIHN0cmluZyBvcyA9IDM7CgkvLyBDbGllbnQgT1MgdmVyc2lvbi4KCW9wdGlvbmFsIHN0cmluZyBvc192ZXJzaW9uID0gNDsKfQoKLy8gTm90IHVzZWQuIE5vdCBldmVuIGZvciB0dW5uZWxpbmcgVURQIHRocm91Z2ggVENQLgptZXNzYWdlIFVEUFR1bm5lbCB7CgkvLyBOb3QgdXNlZC4KCXJlcXVpcmVkIGJ5dGVzIHBhY2tldCA9IDE7Cn0KCi8vIFVzZWQgYnkgdGhlIGNsaWVudCB0byBzZW5kIHRoZSBhdXRoZW50aWNhdGlvbiBjcmVkZW50aWFscyB0byB0aGUgc2VydmVyLgptZXNzYWdlIEF1dGhlbnRpY2F0ZSB7CgkvLyBVVEYtOCBlbmNvZGVkIHVzZXJuYW1lLgoJb3B0aW9uYWwgc3RyaW5nIHVzZXJuYW1lID0gMTsKCS8vIFNlcnZlciBvciB1c2VyIHBhc3N3b3JkLgoJb3B0aW9uYWwgc3RyaW5nIHBhc3N3b3JkID0gMjsKCS8vIEFkZGl0aW9uYWwgYWNjZXNzIHRva2VucyBmb3Igc2VydmVyIEFDTCBncm91cHMuCglyZXBlYXRlZCBzdHJpbmcgdG9rZW5zID0gMzsKCS8vIEEgbGlzdCBvZiBDRUxUIGJpdHN0cmVhbSB2ZXJzaW9uIGNvbnN0YW50cyBzdXBwb3J0ZWQgYnkgdGhlIGNsaWVudC4KCXJlcGVhdGVkIGludDMyIGNlbHRfdmVyc2lvbnMgPSA0OwoJb3B0aW9uYWwgYm9vbCBvcHVzID0gNSBbZGVmYXVsdCA9IGZhbHNlXTsKfQoKLy8gU2VudCBieSB0aGUgY2xpZW50IHRvIG5vdGlmeSB0aGUgc2VydmVyIHRoYXQgdGhlIGNsaWVudCBpcyBzdGlsbCBhbGl2ZS4KLy8gU2VydmVyIG11c3QgcmVwbHkgdG8gdGhlIHBhY2tldCB3aXRoIHRoZSBzYW1lIHRpbWVzdGFtcCBhbmQgaXRzIG93bgovLyBnb29kL2xhdGUvbG9zdC9yZXN5bmMgbnVtYmVycy4gTm9uZSBvZiB0aGUgZmllbGRzIGlzIHN0cmljdGx5IHJlcXVpcmVkLgptZXNzYWdlIFBpbmcgewoJLy8gQ2xpZW50IHRpbWVzdGFtcC4gU2VydmVyIHNob3VsZCBub3QgYXR0ZW1wdCB0byBkZWNvZGUuCglvcHRpb25hbCB1aW50NjQgdGltZXN0YW1wID0gMTsKCS8vIFRoZSBhbW91bnQgb2YgZ29vZCBwYWNrZXRzIHJlY2VpdmVkLgoJb3B0aW9uYWwgdWludDMyIGdvb2QgPSAyOwoJLy8gVGhlIGFtb3VudCBvZiBsYXRlIHBhY2tldHMgcmVjZWl2ZWQuCglvcHRpb25hbCB1aW50MzIgbGF0ZSA9IDM7CgkvLyBUaGUgYW1vdW50IG9mIHBhY2tldHMgbmV2ZXIgcmVjZWl2ZWQuCglvcHRpb25hbCB1aW50MzIgbG9zdCA9IDQ7CgkvLyBUaGUgYW1vdW50IG9mIG5vbmNlIHJlc3luY3MuCglvcHRpb25hbCB1aW50MzIgcmVzeW5jID0gNTsKCS8vIFRoZSB0b3RhbCBhbW91bnQgb2YgVURQIHBhY2tldHMgcmVjZWl2ZWQuCglvcHRpb25hbCB1aW50MzIgdWRwX3BhY2tldHMgPSA2OwoJLy8gVGhlIHRvdGFsIGFtb3VudCBvZiBUQ1AgcGFja2V0cyByZWNlaXZlZC4KCW9wdGlvbmFsIHVpbnQzMiB0Y3BfcGFja2V0cyA9IDc7CgkvLyBVRFAgcGluZyBhdmVyYWdlLgoJb3B0aW9uYWwgZmxvYXQgdWRwX3BpbmdfYXZnID0gODsKCS8vIFVEUCBwaW5nIHZhcmlhbmNlLgoJb3B0aW9uYWwgZmxvYXQgdWRwX3BpbmdfdmFyID0gOTsKCS8vIFRDUCBwaW5nIGF2ZXJhZ2UuCglvcHRpb25hbCBmbG9hdCB0Y3BfcGluZ19hdmcgPSAxMDsKCS8vIFRDUCBwaW5nIHZhcmlhbmNlLgoJb3B0aW9uYWwgZmxvYXQgdGNwX3BpbmdfdmFyID0gMTE7Cn0KCi8vIFNlbnQgYnkgdGhlIHNlcnZlciB3aGVuIGl0IHJlamVjdHMgdGhlIHVzZXIgY29ubmVjdGlvbi4KbWVzc2FnZSBSZWplY3QgewoJZW51bSBSZWplY3RUeXBlIHsKCQkvLyBUaGUgcmVqZWN0aW9uIHJlYXNvbiBpcyB1bmtub3duIChkZXRhaWxzIHNob3VsZCBiZSBhdmFpbGFibGUKCQkvLyBpbiBSZWplY3QucmVhc29uKS4KCQlOb25lID0gMDsKCQkvLyBUaGUgY2xpZW50IGF0dGVtcHRlZCB0byBjb25uZWN0IHdpdGggYW4gaW5jb21wYXRpYmxlIHZlcnNpb24uCgkJV3JvbmdWZXJzaW9uID0gMTsKCQkvLyBUaGUgdXNlciBuYW1lIHN1cHBsaWVkIGJ5IHRoZSBjbGllbnQgd2FzIGludmFsaWQuCgkJSW52YWxpZFVzZXJuYW1lID0gMjsKCQkvLyBUaGUgY2xpZW50IGF0dGVtcHRlZCB0byBhdXRoZW50aWNhdGUgYXMgYSB1c2VyIHdpdGggYSBwYXNzd29yZCBidXQgaXQKCQkvLyB3YXMgd3JvbmcuCgkJV3JvbmdVc2VyUFcgPSAzOwoJCS8vIFRoZSBjbGllbnQgYXR0ZW1wdGVkIHRvIGNvbm5lY3QgdG8gYSBwYXNzd29yZGVkIHNlcnZlciBidXQgdGhlIHBhc3N3b3JkCgkJLy8gd2FzIHdyb25nLgoJCVdyb25nU2VydmVyUFcgPSA0OwoJCS8vIFN1cHBsaWVkIHVzZXJuYW1lIGlzIGFscmVhZHkgaW4gdXNlLgoJCVVzZXJuYW1lSW5Vc2UgPSA1OwoJCS8vIFNlcnZlciBpcyBjdXJyZW50bHkgZnVsbCBhbmQgY2Fubm90IGFjY2VwdCBtb3JlIHVzZXJzLgoJCVNlcnZlckZ1bGwgPSA2OwoJCS8vIFRoZSB1c2VyIGRpZCBub3QgcHJvdmlkZSBhIGNlcnRpZmljYXRlIGJ1dCBvbmUgaXMgcmVxdWlyZWQuCgkJTm9DZXJ0aWZpY2F0ZSA9IDc7CgkJQXV0aGVudGljYXRvckZhaWwgPSA4OwoJfQoJLy8gUmVqZWN0aW9uIHR5cGUuCglvcHRpb25hbCBSZWplY3RUeXBlIHR5cGUgPSAxOwoJLy8gSHVtYW4gcmVhZGFibGUgcmVqZWN0aW9uIHJlYXNvbi4KCW9wdGlvbmFsIHN0cmluZyByZWFzb24gPSAyOwp9CgovLyBTZXJ2ZXJTeW5jIG1lc3NhZ2UgaXMgc2VudCBieSB0aGUgc2VydmVyIHdoZW4gaXQgaGFzIGF1dGhlbnRpY2F0ZWQgdGhlIHVzZXIKLy8gYW5kIGZpbmlzaGVkIHN5bmNocm9uaXppbmcgdGhlIHNlcnZlciBzdGF0ZS4KbWVzc2FnZSBTZXJ2ZXJTeW5jIHsKCS8vIFRoZSBzZXNzaW9uIG9mIHRoZSBjdXJyZW50IHVzZXIuCglvcHRpb25hbCB1aW50MzIgc2Vzc2lvbiA9IDE7CgkvLyBNYXhpbXVtIGJhbmR3aWR0aCB0aGF0IHRoZSB1c2VyIHNob3VsZCB1c2UuCglvcHRpb25hbCB1aW50MzIgbWF4X2JhbmR3aWR0aCA9IDI7CgkvLyBTZXJ2ZXIgd2VsY29tZSB0ZXh0LgoJb3B0aW9uYWwgc3RyaW5nIHdlbGNvbWVfdGV4dCA9IDM7CgkvLyBDdXJyZW50IHVzZXIgcGVybWlzc2lvbnMgaW4gdGhlIHJvb3QgY2hhbm5lbC4KCW9wdGlvbmFsIHVpbnQ2NCBwZXJtaXNzaW9ucyA9IDQ7Cn0KCi8vIFNlbnQgYnkgdGhlIGNsaWVudCB3aGVuIGl0IHdhbnRzIGEgY2hhbm5lbCByZW1vdmVkLiBTZW50IGJ5IHRoZSBzZXJ2ZXIgd2hlbgovLyBhIGNoYW5uZWwgaGFzIGJlZW4gcmVtb3ZlZCBhbmQgY2xpZW50cyBzaG91bGQgYmUgbm90aWZpZWQuCm1lc3NhZ2UgQ2hhbm5lbFJlbW92ZSB7CglyZXF1aXJlZCB1aW50MzIgY2hhbm5lbF9pZCA9IDE7Cn0KCi8vIFVzZWQgdG8gY29tbXVuaWNhdGUgY2hhbm5lbCBwcm9wZXJ0aWVzIGJldHdlZW4gdGhlIGNsaWVudCBhbmQgdGhlIHNlcnZlci4KLy8gU2VudCBieSB0aGUgc2VydmVyIGR1cmluZyB0aGUgbG9naW4gcHJvY2VzcyBvciB3aGVuIGNoYW5uZWwgcHJvcGVydGllcyBhcmUKLy8gdXBkYXRlZC4gQ2xpZW50IG1heSB1c2UgdGhpcyBtZXNzYWdlIHRvIHVwZGF0ZSBzYWlkIGNoYW5uZWwgcHJvcGVydGllcy4KbWVzc2FnZSBDaGFubmVsU3RhdGUgewoJLy8gVW5pcXVlIElEIGZvciB0aGUgY2hhbm5lbCB3aXRoaW4gdGhlIHNlcnZlci4KCW9wdGlvbmFsIHVpbnQzMiBjaGFubmVsX2lkID0gMTsKCS8vIGNoYW5uZWxfaWQgb2YgdGhlIHBhcmVudCBjaGFubmVsLgoJb3B0aW9uYWwgdWludDMyIHBhcmVudCA9IDI7CgkvLyBVVEYtOCBlbmNvZGVkIGNoYW5uZWwgbmFtZS4KCW9wdGlvbmFsIHN0cmluZyBuYW1lID0gMzsKCS8vIEEgY29sbGVjdGlvbiBvZiBjaGFubmVsIGlkIHZhbHVlcyBvZiB0aGUgbGlua2VkIGNoYW5uZWxzLiBBYnNlbnQgZHVyaW5nCgkvLyB0aGUgZmlyc3QgY2hhbm5lbCBsaXN0aW5nLgoJcmVwZWF0ZWQgdWludDMyIGxpbmtzID0gNDsKCS8vIFVURi04IGVuY29kZWQgY2hhbm5lbCBkZXNjcmlwdGlvbi4gT25seSBpZiB0aGUgZGVzY3JpcHRpb24gaXMgbGVzcyB0aGFuCgkvLyAxMjggYnl0ZXMKCW9wdGlvbmFsIHN0cmluZyBkZXNjcmlwdGlvbiA9IDU7CgkvLyBBIGNvbGxlY3Rpb24gb2YgY2hhbm5lbF9pZCB2YWx1ZXMgdGhhdCBzaG91bGQgYmUgYWRkZWQgdG8gbGlua3MuCglyZXBlYXRlZCB1aW50MzIgbGlua3NfYWRkID0gNjsKCS8vIEEgY29sbGVjdGlvbiBvZiBjaGFubmVsX2lkIHZhbHVlcyB0aGF0IHNob3VsZCBiZSByZW1vdmVkIGZyb20gbGlua3MuCglyZXBlYXRlZCB1aW50MzIgbGlua3NfcmVtb3ZlID0gNzsKCS8vIFRydWUgaWYgdGhlIGNoYW5uZWwgaXMgdGVtcG9yYXJ5LgoJb3B0aW9uYWwgYm9vbCB0ZW1wb3JhcnkgPSA4IFtkZWZhdWx0ID0gZmFsc2VdOwoJLy8gUG9zaXRpb24gd2VpZ2h0IHRvIHR3ZWFrIHRoZSBjaGFubmVsIHBvc2l0aW9uIGluIHRoZSBjaGFubmVsIGxpc3QuCglvcHRpb25hbCBpbnQzMiBwb3NpdGlvbiA9IDkgW2RlZmF1bHQgPSAwXTsKCS8vIFNIQTEgaGFzaCBvZiB0aGUgZGVzY3JpcHRpb24gaWYgdGhlIGRlc2NyaXB0aW9uIGlzIDEyOCBieXRlcyBvciBtb3JlLgoJb3B0aW9uYWwgYnl0ZXMgZGVzY3JpcHRpb25faGFzaCA9IDEwOwoJLy8gTWF4aW11bSBudW1iZXIgb2YgdXNlcnMgYWxsb3dlZCBpbiB0aGUgY2hhbm5lbC4gSWYgdGhpcyB2YWx1ZSBpcyB6ZXJvLAoJLy8gdGhlIG1heGltdW0gbnVtYmVyIG9mIHVzZXJzIGFsbG93ZWQgaW4gdGhlIGNoYW5uZWwgaXMgZ2l2ZW4gYnkgdGhlCgkvLyBzZXJ2ZXIncyAidXNlcnNwZXJjaGFubmVsIiBzZXR0aW5nLgoJb3B0aW9uYWwgdWludDMyIG1heF91c2VycyA9IDExOwp9CgovLyBVc2VkIHRvIGNvbW11bmljYXRlIHVzZXIgbGVhdmluZyBvciBiZWluZyBraWNrZWQuIE1heSBiZSBzZW50IGJ5IHRoZSBjbGllbnQKLy8gd2hlbiBpdCBhdHRlbXB0cyB0byBraWNrIGEgdXNlci4gU2VudCBieSB0aGUgc2VydmVyIHdoZW4gaXQgaW5mb3JtcyB0aGUKLy8gY2xpZW50cyB0aGF0IGEgdXNlciBpcyBub3QgcHJlc2VudCBhbnltb3JlLgptZXNzYWdlIFVzZXJSZW1vdmUgewoJLy8gVGhlIHVzZXIgd2hvIGlzIGJlaW5nIGtpY2tlZCwgaWRlbnRpZmllZCBieSB0aGVpciBzZXNzaW9uLCBub3QgcHJlc2VudAoJLy8gd2hlbiBubyBvbmUgaXMgYmVpbmcga2lja2VkLgoJcmVxdWlyZWQgdWludDMyIHNlc3Npb24gPSAxOwoJLy8gVGhlIHVzZXIgd2hvIGluaXRpYXRlZCB0aGUgcmVtb3ZhbC4gRWl0aGVyIHRoZSB1c2VyIHdobyBwZXJmb3JtcyB0aGUga2ljawoJLy8gb3IgdGhlIHVzZXIgd2hvIGlzIGN1cnJlbnRseSBsZWF2aW5nLgoJb3B0aW9uYWwgdWludDMyIGFjdG9yID0gMjsKCS8vIFJlYXNvbiBmb3IgdGhlIGtpY2ssIHN0b3JlZCBhcyB0aGUgYmFuIHJlYXNvbiBpZiB0aGUgdXNlciBpcyBiYW5uZWQuCglvcHRpb25hbCBzdHJpbmcgcmVhc29uID0gMzsKCS8vIFRydWUgaWYgdGhlIGtpY2sgc2hvdWxkIHJlc3VsdCBpbiBhIGJhbi4KCW9wdGlvbmFsIGJvb2wgYmFuID0gNDsKfQoKLy8gU2VudCBieSB0aGUgc2VydmVyIHdoZW4gaXQgY29tbXVuaWNhdGVzIG5ldyBhbmQgY2hhbmdlZCB1c2VycyB0byBjbGllbnQuCi8vIEZpcnN0IHNlZW4gZHVyaW5nIGxvZ2luIHByb2NlZHVyZS4gTWF5IGJlIHNlbnQgYnkgdGhlIGNsaWVudCB3aGVuIGl0IHdpc2hlcwovLyB0byBhbHRlciBpdHMgc3RhdGUuCm1lc3NhZ2UgVXNlclN0YXRlIHsKCS8vIFVuaXF1ZSB1c2VyIHNlc3Npb24gSUQgb2YgdGhlIHVzZXIgd2hvc2Ugc3RhdGUgdGhpcyBpcywgbWF5IGNoYW5nZSBvbgoJLy8gcmVjb25uZWN0LgoJb3B0aW9uYWwgdWludDMyIHNlc3Npb24gPSAxOwoJLy8gVGhlIHNlc3Npb24gb2YgdGhlIHVzZXIgd2hvIGlzIHVwZGF0aW5nIHRoaXMgdXNlci4KCW9wdGlvbmFsIHVpbnQzMiBhY3RvciA9IDI7CgkvLyBVc2VyIG5hbWUsIFVURi04IGVuY29kZWQuCglvcHRpb25hbCBzdHJpbmcgbmFtZSA9IDM7CgkvLyBSZWdpc3RlcmVkIHVzZXIgSUQgaWYgdGhlIHVzZXIgaXMgcmVnaXN0ZXJlZC4KCW9wdGlvbmFsIHVpbnQzMiB1c2VyX2lkID0gNDsKCS8vIENoYW5uZWwgb24gd2hpY2ggdGhlIHVzZXIgaXMuCglvcHRpb25hbCB1aW50MzIgY2hhbm5lbF9pZCA9IDU7CgkvLyBUcnVlIGlmIHRoZSB1c2VyIGlzIG11dGVkIGJ5IGFkbWluLgoJb3B0aW9uYWwgYm9vbCBtdXRlID0gNjsKCS8vIFRydWUgaWYgdGhlIHVzZXIgaXMgZGVhZmVuZWQgYnkgYWRtaW4uCglvcHRpb25hbCBib29sIGRlYWYgPSA3OwoJLy8gVHJ1ZSBpZiB0aGUgdXNlciBoYXMgYmVlbiBzdXBwcmVzc2VkIGZyb20gdGFsa2luZyBieSBhIHJlYXNvbiBvdGhlciB0aGFuCgkvLyBiZWluZyBtdXRlZC4KCW9wdGlvbmFsIGJvb2wgc3VwcHJlc3MgPSA4OwoJLy8gVHJ1ZSBpZiB0aGUgdXNlciBoYXMgbXV0ZWQgc2VsZi4KCW9wdGlvbmFsIGJvb2wgc2VsZl9tdXRlID0gOTsKCS8vIFRydWUgaWYgdGhlIHVzZXIgaGFzIGRlYWZlbmVkIHNlbGYuCglvcHRpb25hbCBib29sIHNlbGZfZGVhZiA9IDEwOwoJLy8gVXNlciBpbWFnZSBpZiBpdCBpcyBsZXNzIHRoYW4gMTI4IGJ5dGVzLgoJb3B0aW9uYWwgYnl0ZXMgdGV4dHVyZSA9IDExOwoJLy8gVGhlIHBvc2l0aW9uYWwgYXVkaW8gcGx1Z2luIGlkZW50aWZpZXIuCgkvLyBQb3NpdGlvbmFsIGF1ZGlvIGluZm9ybWF0aW9uIGlzIG9ubHkgc2VudCB0byB1c2VycyB3aG8gc2hhcmUKCS8vIGlkZW50aWNhbCBwbHVnaW4gY29udGV4dHMuCgkvLwoJLy8gVGhpcyB2YWx1ZSBpcyBub3QgdHJhc21pdHRlZCB0byBjbGllbnRzLgoJb3B0aW9uYWwgYnl0ZXMgcGx1Z2luX2NvbnRleHQgPSAxMjsKCS8vIFRoZSB1c2VyJ3MgcGx1Z2luLXNwZWNpZmljIGlkZW50aXR5LgoJLy8gVGhpcyB2YWx1ZSBpcyBub3QgdHJhbnNtaXR0ZWQgdG8gY2xpZW50cy4KCW9wdGlvbmFsIHN0cmluZyBwbHVnaW5faWRlbnRpdHkgPSAxMzsKCS8vIFVzZXIgY29tbWVudCBpZiBpdCBpcyBsZXNzIHRoYW4gMTI4IGJ5dGVzLgoJb3B0aW9uYWwgc3RyaW5nIGNvbW1lbnQgPSAxNDsKCS8vIFRoZSBoYXNoIG9mIHRoZSB1c2VyIGNlcnRpZmljYXRlLgoJb3B0aW9uYWwgc3RyaW5nIGhhc2ggPSAxNTsKCS8vIFNIQTEgaGFzaCBvZiB0aGUgdXNlciBjb21tZW50IGlmIGl0IDEyOCBieXRlcyBvciBtb3JlLgoJb3B0aW9uYWwgYnl0ZXMgY29tbWVudF9oYXNoID0gMTY7CgkvLyBTSEExIGhhc2ggb2YgdGhlIHVzZXIgcGljdHVyZSBpZiBpdCAxMjggYnl0ZXMgb3IgbW9yZS4KCW9wdGlvbmFsIGJ5dGVzIHRleHR1cmVfaGFzaCA9IDE3OwoJLy8gVHJ1ZSBpZiB0aGUgdXNlciBpcyBhIHByaW9yaXR5IHNwZWFrZXIuCglvcHRpb25hbCBib29sIHByaW9yaXR5X3NwZWFrZXIgPSAxODsKCS8vIFRydWUgaWYgdGhlIHVzZXIgaXMgY3VycmVudGx5IHJlY29yZGluZy4KCW9wdGlvbmFsIGJvb2wgcmVjb3JkaW5nID0gMTk7Cn0KCi8vIFJlbGF5cyBpbmZvcm1hdGlvbiBvbiB0aGUgYmFucy4gVGhlIGNsaWVudCBtYXkgc2VuZCB0aGUgQmFuTGlzdCBtZXNzYWdlIHRvCi8vIGVpdGhlciBtb2RpZnkgdGhlIGxpc3Qgb2YgYmFucyBvciBxdWVyeSB0aGVtIGZyb20gdGhlIHNlcnZlci4gVGhlIHNlcnZlcgovLyBzZW5kcyB0aGlzIGxpc3Qgb25seSBhZnRlciBhIGNsaWVudCBxdWVyaWVzIGZvciBpdC4KbWVzc2FnZSBCYW5MaXN0IHsKCW1lc3NhZ2UgQmFuRW50cnkgewoJCS8vIEJhbm5lZCBJUCBhZGRyZXNzLgoJCXJlcXVpcmVkIGJ5dGVzIGFkZHJlc3MgPSAxOwoJCS8vIFRoZSBsZW5ndGggb2YgdGhlIHN1Ym5ldCBtYXNrIGZvciB0aGUgYmFuLgoJCXJlcXVpcmVkIHVpbnQzMiBtYXNrID0gMjsKCQkvLyBVc2VyIG5hbWUgZm9yIGlkZW50aWZpY2F0aW9uIHB1cnBvc2VzIChkb2VzIG5vdCBhZmZlY3QgdGhlIGJhbikuCgkJb3B0aW9uYWwgc3RyaW5nIG5hbWUgPSAzOwoJCS8vIFRoZSBjZXJ0aWZpY2F0ZSBoYXNoIG9mIHRoZSBiYW5uZWQgdXNlci4KCQlvcHRpb25hbCBzdHJpbmcgaGFzaCA9IDQ7CgkJLy8gUmVhc29uIGZvciB0aGUgYmFuIChkb2VzIG5vdCBhZmZlY3QgdGhlIGJhbikuCgkJb3B0aW9uYWwgc3RyaW5nIHJlYXNvbiA9IDU7CgkJLy8gQmFuIHN0YXJ0IHRpbWUuCgkJb3B0aW9uYWwgc3RyaW5nIHN0YXJ0ID0gNjsKCQkvLyBCYW4gZHVyYXRpb24gaW4gc2Vjb25kcy4KCQlvcHRpb25hbCB1aW50MzIgZHVyYXRpb24gPSA3OwoJfQoJLy8gTGlzdCBvZiBiYW4gZW50cmllcyBjdXJyZW50bHkgaW4gcGxhY2UuCglyZXBlYXRlZCBCYW5FbnRyeSBiYW5zID0gMTsKCS8vIFRydWUgaWYgdGhlIHNlcnZlciBzaG91bGQgcmV0dXJuIHRoZSBsaXN0LCBmYWxzZSBpZiBpdCBzaG91bGQgcmVwbGFjZSBvbGQKCS8vIGJhbiBsaXN0IHdpdGggdGhlIG9uZSBwcm92aWRlZC4KCW9wdGlvbmFsIGJvb2wgcXVlcnkgPSAyIFtkZWZhdWx0ID0gZmFsc2VdOwp9CgovLyBVc2VkIHRvIHNlbmQgYW5kIGJyb2FkY2FzdCB0ZXh0IG1lc3NhZ2VzLgptZXNzYWdlIFRleHRNZXNzYWdlIHsKCS8vIFRoZSBtZXNzYWdlIHNlbmRlciwgaWRlbnRpZmllZCBieSBpdHMgc2Vzc2lvbi4KCW9wdGlvbmFsIHVpbnQzMiBhY3RvciA9IDE7CgkvLyBUYXJnZXQgdXNlcnMgZm9yIHRoZSBtZXNzYWdlLCBpZGVudGlmaWVkIGJ5IHRoZWlyIHNlc3Npb24uCglyZXBlYXRlZCB1aW50MzIgc2Vzc2lvbiA9IDI7CgkvLyBUaGUgY2hhbm5lbHMgdG8gd2hpY2ggdGhlIG1lc3NhZ2UgaXMgc2VudCwgaWRlbnRpZmllZCBieSB0aGVpcgoJLy8gY2hhbm5lbF9pZHMuCglyZXBlYXRlZCB1aW50MzIgY2hhbm5lbF9pZCA9IDM7CgkvLyBUaGUgcm9vdCBjaGFubmVscyB3aGVuIHNlbmRpbmcgbWVzc2FnZSByZWN1cnNpdmVseSB0byBzZXZlcmFsIGNoYW5uZWxzLAoJLy8gaWRlbnRpZmllZCBieSB0aGVpciBjaGFubmVsX2lkcy4KCXJlcGVhdGVkIHVpbnQzMiB0cmVlX2lkID0gNDsKCS8vIFRoZSBVVEYtOCBlbmNvZGVkIG1lc3NhZ2UuIE1heSBiZSBIVE1MIGlmIHRoZSBzZXJ2ZXIgYWxsb3dzLgoJcmVxdWlyZWQgc3RyaW5nIG1lc3NhZ2UgPSA1Owp9CgptZXNzYWdlIFBlcm1pc3Npb25EZW5pZWQgewoJZW51bSBEZW55VHlwZSB7CgkJLy8gT3BlcmF0aW9uIGRlbmllZCBmb3Igb3RoZXIgcmVhc29uLCBzZWUgcmVhc29uIGZpZWxkLgoJCVRleHQgPSAwOwoJCS8vIFBlcm1pc3Npb25zIHdlcmUgZGVuaWVkLgoJCVBlcm1pc3Npb24gPSAxOwoJCS8vIENhbm5vdCBtb2RpZnkgU3VwZXJVc2VyLgoJCVN1cGVyVXNlciA9IDI7CgkJLy8gSW52YWxpZCBjaGFubmVsIG5hbWUuCgkJQ2hhbm5lbE5hbWUgPSAzOwoJCS8vIFRleHQgbWVzc2FnZSB0b28gbG9uZy4KCQlUZXh0VG9vTG9uZyA9IDQ7CgkJLy8gVGhlIGZsdXggY2FwYWNpdG9yIHdhcyBzcGVsbGVkIHdyb25nLgoJCUg5SyA9IDU7CgkJLy8gT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQgaW4gdGVtcG9yYXJ5IGNoYW5uZWwuCgkJVGVtcG9yYXJ5Q2hhbm5lbCA9IDY7CgkJLy8gT3BlcmF0aW9uIHJlcXVpcmVzIGNlcnRpZmljYXRlLgoJCU1pc3NpbmdDZXJ0aWZpY2F0ZSA9IDc7CgkJLy8gSW52YWxpZCB1c2VybmFtZS4KCQlVc2VyTmFtZSA9IDg7CgkJLy8gQ2hhbm5lbCBpcyBmdWxsLgoJCUNoYW5uZWxGdWxsID0gOTsKCQlOZXN0aW5nTGltaXQgPSAxMDsKCX0KCS8vIFRoZSBkZW5pZWQgcGVybWlzc2lvbiB3aGVuIHR5cGUgaXMgUGVybWlzc2lvbi4KCW9wdGlvbmFsIHVpbnQzMiBwZXJtaXNzaW9uID0gMTsKCS8vIGNoYW5uZWxfaWQgZm9yIHRoZSBjaGFubmVsIHdoZXJlIHRoZSBwZXJtaXNzaW9uIHdhcyBkZW5pZWQgd2hlbiB0eXBlIGlzCgkvLyBQZXJtaXNzaW9uLgoJb3B0aW9uYWwgdWludDMyIGNoYW5uZWxfaWQgPSAyOwoJLy8gVGhlIHVzZXIgd2hvIHdhcyBkZW5pZWQgcGVybWlzc2lvbnMsIGlkZW50aWZpZWQgYnkgc2Vzc2lvbi4KCW9wdGlvbmFsIHVpbnQzMiBzZXNzaW9uID0gMzsKCS8vIFRleHR1YWwgcmVhc29uIGZvciB0aGUgZGVuaWFsLgoJb3B0aW9uYWwgc3RyaW5nIHJlYXNvbiA9IDQ7CgkvLyBUeXBlIG9mIHRoZSBkZW5pYWwuCglvcHRpb25hbCBEZW55VHlwZSB0eXBlID0gNTsKCS8vIFRoZSBuYW1lIHRoYXQgaXMgaW52YWxpZCB3aGVuIHR5cGUgaXMgVXNlck5hbWUuCglvcHRpb25hbCBzdHJpbmcgbmFtZSA9IDY7Cn0KCm1lc3NhZ2UgQUNMIHsKCW1lc3NhZ2UgQ2hhbkdyb3VwIHsKCQkvLyBOYW1lIG9mIHRoZSBjaGFubmVsIGdyb3VwLCBVVEYtOCBlbmNvZGVkLgoJCXJlcXVpcmVkIHN0cmluZyBuYW1lID0gMTsKCQkvLyBUcnVlIGlmIHRoZSBncm91cCBoYXMgYmVlbiBpbmhlcml0ZWQgZnJvbSB0aGUgcGFyZW50IChSZWFkIG9ubHkpLgoJCW9wdGlvbmFsIGJvb2wgaW5oZXJpdGVkID0gMiBbZGVmYXVsdCA9IHRydWVdOwoJCS8vIFRydWUgaWYgdGhlIGdyb3VwIG1lbWJlcnMgYXJlIGluaGVyaXRlZC4KCQlvcHRpb25hbCBib29sIGluaGVyaXQgPSAzIFtkZWZhdWx0ID0gdHJ1ZV07CgkJLy8gVHJ1ZSBpZiB0aGUgZ3JvdXAgY2FuIGJlIGluaGVyaXRlZCBieSBzdWIgY2hhbm5lbHMuCgkJb3B0aW9uYWwgYm9vbCBpbmhlcml0YWJsZSA9IDQgW2RlZmF1bHQgPSB0cnVlXTsKCQkvLyBVc2VycyBleHBsaWNpdGx5IGluY2x1ZGVkIGluIHRoaXMgZ3JvdXAsIGlkZW50aWZpZWQgYnkgdXNlcl9pZC4KCQlyZXBlYXRlZCB1aW50MzIgYWRkID0gNTsKCQkvLyBVc2VycyBleHBsaWNpdGx5IHJlbW92ZWQgZnJvbSB0aGlzIGdyb3VwIGluIHRoaXMgY2hhbm5lbCBpZiB0aGUgZ3JvdXAKCQkvLyBoYXMgYmVlbiBpbmhlcml0ZWQsIGlkZW50aWZpZWQgYnkgdXNlcl9pZC4KCQlyZXBlYXRlZCB1aW50MzIgcmVtb3ZlID0gNjsKCQkvLyBVc2VycyBpbmhlcml0ZWQsIGlkZW50aWZpZWQgYnkgdXNlcl9pZC4KCQlyZXBlYXRlZCB1aW50MzIgaW5oZXJpdGVkX21lbWJlcnMgPSA3OwoJfQoJbWVzc2FnZSBDaGFuQUNMIHsKCQkvLyBUcnVlIGlmIHRoaXMgQUNMIGFwcGxpZXMgdG8gdGhlIGN1cnJlbnQgY2hhbm5lbC4KCQlvcHRpb25hbCBib29sIGFwcGx5X2hlcmUgPSAxIFtkZWZhdWx0ID0gdHJ1ZV07CgkJLy8gVHJ1ZSBpZiB0aGlzIEFDTCBhcHBsaWVzIHRvIHRoZSBzdWIgY2hhbm5lbHMuCgkJb3B0aW9uYWwgYm9vbCBhcHBseV9zdWJzID0gMiBbZGVmYXVsdCA9IHRydWVdOwoJCS8vIFRydWUgaWYgdGhlIEFDTCBoYXMgYmVlbiBpbmhlcml0ZWQgZnJvbSB0aGUgcGFyZW50LgoJCW9wdGlvbmFsIGJvb2wgaW5oZXJpdGVkID0gMyBbZGVmYXVsdCA9IHRydWVdOwoJCS8vIElEIG9mIHRoZSB1c2VyIHRoYXQgaXMgYWZmZWN0ZWQgYnkgdGhpcyBBQ0wuCgkJb3B0aW9uYWwgdWludDMyIHVzZXJfaWQgPSA0OwoJCS8vIElEIG9mIHRoZSBncm91cCB0aGF0IGlzIGFmZmVjdGVkIGJ5IHRoaXMgQUNMLgoJCW9wdGlvbmFsIHN0cmluZyBncm91cCA9IDU7CgkJLy8gQml0IGZsYWcgZmllbGQgb2YgdGhlIHBlcm1pc3Npb25zIGdyYW50ZWQgYnkgdGhpcyBBQ0wuCgkJb3B0aW9uYWwgdWludDMyIGdyYW50ID0gNjsKCQkvLyBCaXQgZmxhZyBmaWVsZCBvZiB0aGUgcGVybWlzc2lvbnMgZGVuaWVkIGJ5IHRoaXMgQUNMLgoJCW9wdGlvbmFsIHVpbnQzMiBkZW55ID0gNzsKCX0KCS8vIENoYW5uZWwgSUQgb2YgdGhlIGNoYW5uZWwgdGhpcyBtZXNzYWdlIGFmZmVjdHMuCglyZXF1aXJlZCB1aW50MzIgY2hhbm5lbF9pZCA9IDE7CgkvLyBUcnVlIGlmIHRoZSBjaGFubmVsIGluaGVyaXRzIGl0cyBwYXJlbnQncyBBQ0xzLgoJb3B0aW9uYWwgYm9vbCBpbmhlcml0X2FjbHMgPSAyIFtkZWZhdWx0ID0gdHJ1ZV07CgkvLyBVc2VyIGdyb3VwIHNwZWNpZmljYXRpb25zLgoJcmVwZWF0ZWQgQ2hhbkdyb3VwIGdyb3VwcyA9IDM7CgkvLyBBQ0wgc3BlY2lmaWNhdGlvbnMuCglyZXBlYXRlZCBDaGFuQUNMIGFjbHMgPSA0OwoJLy8gVHJ1ZSBpZiB0aGUgbWVzc2FnZSBpcyBhIHF1ZXJ5IGZvciBBQ0xzIGluc3RlYWQgb2Ygc2V0dGluZyB0aGVtLgoJb3B0aW9uYWwgYm9vbCBxdWVyeSA9IDUgW2RlZmF1bHQgPSBmYWxzZV07Cn0KCi8vIENsaWVudCBtYXkgdXNlIHRoaXMgbWVzc2FnZSB0byByZWZyZXNoIGl0cyByZWdpc3RlcmVkIHVzZXIgaW5mb3JtYXRpb24uIFRoZQovLyBjbGllbnQgc2hvdWxkIGZpbGwgdGhlIElEcyBvciBOYW1lcyBvZiB0aGUgdXNlcnMgaXQgd2FudHMgdG8gcmVmcmVzaC4gVGhlCi8vIHNlcnZlciBmaWxscyB0aGUgbWlzc2luZyBwYXJ0cyBhbmQgc2VuZHMgdGhlIG1lc3NhZ2UgYmFjay4KbWVzc2FnZSBRdWVyeVVzZXJzIHsKCS8vIHVzZXJfaWRzLgoJcmVwZWF0ZWQgdWludDMyIGlkcyA9IDE7CgkvLyBVc2VyIG5hbWVzIGluIHRoZSBzYW1lIG9yZGVyIGFzIGlkcy4KCXJlcGVhdGVkIHN0cmluZyBuYW1lcyA9IDI7Cn0KCi8vIFVzZWQgdG8gaW5pdGlhbGl6ZSBhbmQgcmVzeW5jIHRoZSBVRFAgZW5jcnlwdGlvbi4gRWl0aGVyIHNpZGUgbWF5IHJlcXVlc3QgYQovLyByZXN5bmMgYnkgc2VuZGluZyB0aGUgbWVzc2FnZSB3aXRob3V0IGFueSB2YWx1ZXMgZmlsbGVkLiBUaGUgcmVzeW5jIGlzCi8vIHBlcmZvcm1lZCBieSBzZW5kaW5nIHRoZSBtZXNzYWdlIHdpdGggb25seSB0aGUgY2xpZW50IG9yIHNlcnZlciBub25jZQovLyBmaWxsZWQuCm1lc3NhZ2UgQ3J5cHRTZXR1cCB7CgkvLyBFbmNyeXB0aW9uIGtleS4KCW9wdGlvbmFsIGJ5dGVzIGtleSA9IDE7CgkvLyBDbGllbnQgbm9uY2UuCglvcHRpb25hbCBieXRlcyBjbGllbnRfbm9uY2UgPSAyOwoJLy8gU2VydmVyIG5vbmNlLgoJb3B0aW9uYWwgYnl0ZXMgc2VydmVyX25vbmNlID0gMzsKfQoKbWVzc2FnZSBDb250ZXh0QWN0aW9uTW9kaWZ5IHsKCWVudW0gQ29udGV4dCB7CgkJLy8gQWN0aW9uIGlzIGFwcGxpY2FibGUgdG8gdGhlIHNlcnZlci4KCQlTZXJ2ZXIgPSAweDAxOwoJCS8vIEFjdGlvbiBjYW4gdGFyZ2V0IGEgQ2hhbm5lbC4KCQlDaGFubmVsID0gMHgwMjsKCQkvLyBBY3Rpb24gY2FuIHRhcmdldCBhIFVzZXIuCgkJVXNlciA9IDB4MDQ7Cgl9CgllbnVtIE9wZXJhdGlvbiB7CgkJQWRkID0gMDsKCQlSZW1vdmUgPSAxOwoJfQoJLy8gVGhlIGFjdGlvbiBuYW1lLgoJcmVxdWlyZWQgc3RyaW5nIGFjdGlvbiA9IDE7CgkvLyBUaGUgZGlzcGxheSBuYW1lIG9mIHRoZSBhY3Rpb24uCglvcHRpb25hbCBzdHJpbmcgdGV4dCA9IDI7CgkvLyBDb250ZXh0IGJpdCBmbGFncyBkZWZpbmluZyB3aGVyZSB0aGUgYWN0aW9uIHNob3VsZCBiZSBkaXNwbGF5ZWQuCglvcHRpb25hbCB1aW50MzIgY29udGV4dCA9IDM7CglvcHRpb25hbCBPcGVyYXRpb24gb3BlcmF0aW9uID0gNDsKfQoKLy8gU2VudCBieSB0aGUgY2xpZW50IHdoZW4gaXQgd2FudHMgdG8gaW5pdGlhdGUgYSBDb250ZXh0IGFjdGlvbi4KbWVzc2FnZSBDb250ZXh0QWN0aW9uIHsKCS8vIFRoZSB0YXJnZXQgVXNlciBmb3IgdGhlIGFjdGlvbiwgaWRlbnRpZmllZCBieSBzZXNzaW9uLgoJb3B0aW9uYWwgdWludDMyIHNlc3Npb24gPSAxOwoJLy8gVGhlIHRhcmdldCBDaGFubmVsIGZvciB0aGUgYWN0aW9uLCBpZGVudGlmaWVkIGJ5IGNoYW5uZWxfaWQuCglvcHRpb25hbCB1aW50MzIgY2hhbm5lbF9pZCA9IDI7CgkvLyBUaGUgYWN0aW9uIHRoYXQgc2hvdWxkIGJlIGV4ZWN1dGVkLgoJcmVxdWlyZWQgc3RyaW5nIGFjdGlvbiA9IDM7Cn0KCi8vIExpc3RzIHRoZSByZWdpc3RlcmVkIHVzZXJzLgptZXNzYWdlIFVzZXJMaXN0IHsKCW1lc3NhZ2UgVXNlciB7CgkJLy8gUmVnaXN0ZXJlZCB1c2VyIElELgoJCXJlcXVpcmVkIHVpbnQzMiB1c2VyX2lkID0gMTsKCQkvLyBSZWdpc3RlcmVkIHVzZXIgbmFtZS4KCQlvcHRpb25hbCBzdHJpbmcgbmFtZSA9IDI7CgkJb3B0aW9uYWwgc3RyaW5nIGxhc3Rfc2VlbiA9IDM7CgkJb3B0aW9uYWwgdWludDMyIGxhc3RfY2hhbm5lbCA9IDQ7Cgl9CgkvLyBBIGxpc3Qgb2YgcmVnaXN0ZXJlZCB1c2Vycy4KCXJlcGVhdGVkIFVzZXIgdXNlcnMgPSAxOwp9CgovLyBTZW50IGJ5IHRoZSBjbGllbnQgd2hlbiBpdCB3YW50cyB0byByZWdpc3RlciBvciBjbGVhciB3aGlzcGVyIHRhcmdldHMuCi8vCi8vIE5vdGU6IFRoZSBmaXJzdCBhdmFpbGFibGUgdGFyZ2V0IElEIGlzIDEgYXMgMCBpcyByZXNlcnZlZCBmb3Igbm9ybWFsCi8vIHRhbGtpbmcuIE1heGltdW0gdGFyZ2V0IElEIGlzIDMwLgptZXNzYWdlIFZvaWNlVGFyZ2V0IHsKCW1lc3NhZ2UgVGFyZ2V0IHsKCQkvLyBVc2VycyB0aGF0IGFyZSBpbmNsdWRlZCBhcyB0YXJnZXRzLgoJCXJlcGVhdGVkIHVpbnQzMiBzZXNzaW9uID0gMTsKCQkvLyBDaGFubmVsIHRoYXQgaXMgaW5jbHVkZWQgYXMgYSB0YXJnZXQuCgkJb3B0aW9uYWwgdWludDMyIGNoYW5uZWxfaWQgPSAyOwoJCS8vIEFDTCBncm91cCB0aGF0IGlzIGluY2x1ZGVkIGFzIGEgdGFyZ2V0LgoJCW9wdGlvbmFsIHN0cmluZyBncm91cCA9IDM7CgkJLy8gVHJ1ZSBpZiB0aGUgdm9pY2Ugc2hvdWxkIGZvbGxvdyBsaW5rcyBmcm9tIHRoZSBzcGVjaWZpZWQgY2hhbm5lbC4KCQlvcHRpb25hbCBib29sIGxpbmtzID0gNCBbZGVmYXVsdCA9IGZhbHNlXTsKCQkvLyBUcnVlIGlmIHRoZSB2b2ljZSBzaG91bGQgYWxzbyBiZSBzZW50IHRvIGNoaWxkcmVuIG9mIHRoZSBzcGVjaWZpYwoJCS8vIGNoYW5uZWwuCgkJb3B0aW9uYWwgYm9vbCBjaGlsZHJlbiA9IDUgW2RlZmF1bHQgPSBmYWxzZV07Cgl9CgkvLyBWb2ljZSB0YXJnZXQgSUQuCglvcHRpb25hbCB1aW50MzIgaWQgPSAxOwoJLy8gVGhlIHJlY2VpdmVycyB0aGF0IHRoaXMgdm9pY2UgdGFyZ2V0IGluY2x1ZGVzLgoJcmVwZWF0ZWQgVGFyZ2V0IHRhcmdldHMgPSAyOwp9CgovLyBTZW50IGJ5IHRoZSBjbGllbnQgd2hlbiBpdCB3YW50cyBwZXJtaXNzaW9ucyBmb3IgYSBjZXJ0YWluIGNoYW5uZWwuIFNlbnQgYnkKLy8gdGhlIHNlcnZlciB3aGVuIGl0IHJlcGxpZXMgdG8gdGhlIHF1ZXJ5IG9yIHdhbnRzIHRoZSB1c2VyIHRvIHJlc3luYyBhbGwKLy8gY2hhbm5lbCBwZXJtaXNzaW9ucy4KbWVzc2FnZSBQZXJtaXNzaW9uUXVlcnkgewoJLy8gY2hhbm5lbF9pZCBvZiB0aGUgY2hhbm5lbCBmb3Igd2hpY2ggdGhlIHBlcm1pc3Npb25zIGFyZSBxdWVyaWVkLgoJb3B0aW9uYWwgdWludDMyIGNoYW5uZWxfaWQgPSAxOwoJLy8gQ2hhbm5lbCBwZXJtaXNzaW9ucy4KCW9wdGlvbmFsIHVpbnQzMiBwZXJtaXNzaW9ucyA9IDI7CgkvLyBUcnVlIGlmIHRoZSBjbGllbnQgc2hvdWxkIGRyb3AgaXRzIGN1cnJlbnQgcGVybWlzc2lvbiBpbmZvcm1hdGlvbiBmb3IgYWxsCgkvLyBjaGFubmVscy4KCW9wdGlvbmFsIGJvb2wgZmx1c2ggPSAzIFtkZWZhdWx0ID0gZmFsc2VdOwp9CgovLyBTZW50IGJ5IHRoZSBzZXJ2ZXIgdG8gbm90aWZ5IHRoZSB1c2VycyBvZiB0aGUgdmVyc2lvbiBvZiB0aGUgQ0VMVCBjb2RlYyB0aGV5Ci8vIHNob3VsZCB1c2UuIFRoaXMgbWF5IGNoYW5nZSBkdXJpbmcgdGhlIGNvbm5lY3Rpb24gd2hlbiBuZXcgdXNlcnMgam9pbi4KbWVzc2FnZSBDb2RlY1ZlcnNpb24gewoJLy8gVGhlIHZlcnNpb24gb2YgdGhlIENFTFQgQWxwaGEgY29kZWMuCglyZXF1aXJlZCBpbnQzMiBhbHBoYSA9IDE7CgkvLyBUaGUgdmVyc2lvbiBvZiB0aGUgQ0VMVCBCZXRhIGNvZGVjLgoJcmVxdWlyZWQgaW50MzIgYmV0YSA9IDI7CgkvLyBUcnVlIGlmIHRoZSB1c2VyIHNob3VsZCBwcmVmZXIgQWxwaGEgb3ZlciBCZXRhLgoJcmVxdWlyZWQgYm9vbCBwcmVmZXJfYWxwaGEgPSAzIFtkZWZhdWx0ID0gdHJ1ZV07CglvcHRpb25hbCBib29sIG9wdXMgPSA0IFtkZWZhdWx0ID0gZmFsc2VdOwp9CgovLyBVc2VkIHRvIGNvbW11bmljYXRlIHVzZXIgc3RhdHMgYmV0d2VlbiB0aGUgc2VydmVyIGFuZCBjbGllbnRzLgptZXNzYWdlIFVzZXJTdGF0cyB7CgltZXNzYWdlIFN0YXRzIHsKCQkvLyBUaGUgYW1vdW50IG9mIGdvb2QgcGFja2V0cyByZWNlaXZlZC4KCQlvcHRpb25hbCB1aW50MzIgZ29vZCA9IDE7CgkJLy8gVGhlIGFtb3VudCBvZiBsYXRlIHBhY2tldHMgcmVjZWl2ZWQuCgkJb3B0aW9uYWwgdWludDMyIGxhdGUgPSAyOwoJCS8vIFRoZSBhbW91bnQgb2YgcGFja2V0cyBuZXZlciByZWNlaXZlZC4KCQlvcHRpb25hbCB1aW50MzIgbG9zdCA9IDM7CgkJLy8gVGhlIGFtb3VudCBvZiBub25jZSByZXN5bmNzLgoJCW9wdGlvbmFsIHVpbnQzMiByZXN5bmMgPSA0OwoJfQoKCS8vIFVzZXIgd2hvc2Ugc3RhdHMgdGhlc2UgYXJlLgoJb3B0aW9uYWwgdWludDMyIHNlc3Npb24gPSAxOwoJLy8gVHJ1ZSBpZiB0aGUgbWVzc2FnZSBjb250YWlucyBvbmx5IG11dGFibGUgc3RhdHMgKHBhY2tldHMsIHBpbmcpLgoJb3B0aW9uYWwgYm9vbCBzdGF0c19vbmx5ID0gMiBbZGVmYXVsdCA9IGZhbHNlXTsKCS8vIEZ1bGwgdXNlciBjZXJ0aWZpY2F0ZSBjaGFpbiBvZiB0aGUgdXNlciBjZXJ0aWZpY2F0ZSBpbiBERVIgZm9ybWF0LgoJcmVwZWF0ZWQgYnl0ZXMgY2VydGlmaWNhdGVzID0gMzsKCS8vIFBhY2tldCBzdGF0aXN0aWNzIGZvciBwYWNrZXRzIHJlY2VpdmVkIGZyb20gdGhlIGNsaWVudC4KCW9wdGlvbmFsIFN0YXRzIGZyb21fY2xpZW50ID0gNDsKCS8vIFBhY2tldCBzdGF0aXN0aWNzIGZvciBwYWNrZXRzIHNlbnQgYnkgdGhlIHNlcnZlci4KCW9wdGlvbmFsIFN0YXRzIGZyb21fc2VydmVyID0gNTsKCgkvLyBBbW91bnQgb2YgVURQIHBhY2tldHMgc2VudC4KCW9wdGlvbmFsIHVpbnQzMiB1ZHBfcGFja2V0cyA9IDY7CgkvLyBBbW91bnQgb2YgVENQIHBhY2tldHMgc2VudC4KCW9wdGlvbmFsIHVpbnQzMiB0Y3BfcGFja2V0cyA9IDc7CgkvLyBVRFAgcGluZyBhdmVyYWdlLgoJb3B0aW9uYWwgZmxvYXQgdWRwX3BpbmdfYXZnID0gODsKCS8vIFVEUCBwaW5nIHZhcmlhbmNlLgoJb3B0aW9uYWwgZmxvYXQgdWRwX3BpbmdfdmFyID0gOTsKCS8vIFRDUCBwaW5nIGF2ZXJhZ2UuCglvcHRpb25hbCBmbG9hdCB0Y3BfcGluZ19hdmcgPSAxMDsKCS8vIFRDUCBwaW5nIHZhcmlhbmNlLgoJb3B0aW9uYWwgZmxvYXQgdGNwX3BpbmdfdmFyID0gMTE7CgoJLy8gQ2xpZW50IHZlcnNpb24uCglvcHRpb25hbCBWZXJzaW9uIHZlcnNpb24gPSAxMjsKCS8vIEEgbGlzdCBvZiBDRUxUIGJpdHN0cmVhbSB2ZXJzaW9uIGNvbnN0YW50cyBzdXBwb3J0ZWQgYnkgdGhlIGNsaWVudCBvZiB0aGlzCgkvLyB1c2VyLgoJcmVwZWF0ZWQgaW50MzIgY2VsdF92ZXJzaW9ucyA9IDEzOwoJLy8gQ2xpZW50IElQIGFkZHJlc3MuCglvcHRpb25hbCBieXRlcyBhZGRyZXNzID0gMTQ7CgkvLyBCYW5kd2l0aCB1c2VkIGJ5IHRoaXMgY2xpZW50LgoJb3B0aW9uYWwgdWludDMyIGJhbmR3aWR0aCA9IDE1OwoJLy8gQ29ubmVjdGlvbiBkdXJhdGlvbi4KCW9wdGlvbmFsIHVpbnQzMiBvbmxpbmVzZWNzID0gMTY7CgkvLyBEdXJhdGlvbiBzaW5jZSBsYXN0IGFjdGl2aXR5LgoJb3B0aW9uYWwgdWludDMyIGlkbGVzZWNzID0gMTc7CgkvLyBUcnVlIGlmIHRoZSB1c2VyIGhhcyBhIHN0cm9uZyBjZXJ0aWZpY2F0ZS4KCW9wdGlvbmFsIGJvb2wgc3Ryb25nX2NlcnRpZmljYXRlID0gMTggW2RlZmF1bHQgPSBmYWxzZV07CglvcHRpb25hbCBib29sIG9wdXMgPSAxOSBbZGVmYXVsdCA9IGZhbHNlXTsKfQoKLy8gVXNlZCBieSB0aGUgY2xpZW50IHRvIHJlcXVlc3QgYmluYXJ5IGRhdGEgZnJvbSB0aGUgc2VydmVyLiBCeSBkZWZhdWx0IGxhcmdlCi8vIGNvbW1lbnRzIG9yIHRleHR1cmVzIGFyZSBub3Qgc2VudCB3aXRoaW4gc3RhbmRhcmQgbWVzc2FnZXMgYnV0IGluc3RlYWQgdGhlCi8vIGhhc2ggaXMuIElmIHRoZSBjbGllbnQgZG9lcyBub3QgcmVjb2duaXplIHRoZSBoYXNoIGl0IG1heSByZXF1ZXN0IHRoZQovLyByZXNvdXJjZSB3aGVuIGl0IG5lZWRzIGl0LiBUaGUgY2xpZW50IGRvZXMgc28gYnkgc2VuZGluZyBhIFJlcXVlc3RCbG9iCi8vIG1lc3NhZ2Ugd2l0aCB0aGUgY29ycmVjdCBmaWVsZHMgZmlsbGVkIHdpdGggdGhlIHVzZXIgc2Vzc2lvbnMgb3IgY2hhbm5lbF9pZHMKLy8gaXQgd2FudHMgdG8gcmVjZWl2ZS4gVGhlIHNlcnZlciByZXBsaWVzIHRvIHRoaXMgYnkgc2VuZGluZyBhIG5ldwovLyBVc2VyU3RhdGUvQ2hhbm5lbFN0YXRlIG1lc3NhZ2Ugd2l0aCB0aGUgcmVzb3VyY2VzIGZpbGxlZCBldmVuIGlmIHRoZXkgd291bGQKLy8gbm9ybWFsbHkgYmUgdHJhbnNtaXR0ZWQgYXMgaGFzaGVzLgptZXNzYWdlIFJlcXVlc3RCbG9iIHsKCS8vIHNlc3Npb25zIG9mIHRoZSByZXF1ZXN0ZWQgVXNlclN0YXRlIHRleHR1cmVzLgoJcmVwZWF0ZWQgdWludDMyIHNlc3Npb25fdGV4dHVyZSA9IDE7CgkvLyBzZXNzaW9ucyBvZiB0aGUgcmVxdWVzdGVkIFVzZXJTdGF0ZSBjb21tZW50cy4KCXJlcGVhdGVkIHVpbnQzMiBzZXNzaW9uX2NvbW1lbnQgPSAyOwoJLy8gY2hhbm5lbF9pZHMgb2YgdGhlIHJlcXVlc3RlZCBDaGFubmVsU3RhdGUgZGVzY3JpcHRpb25zLgoJcmVwZWF0ZWQgdWludDMyIGNoYW5uZWxfZGVzY3JpcHRpb24gPSAzOwp9CgovLyBTZW50IGJ5IHRoZSBzZXJ2ZXIgd2hlbiBpdCBpbmZvcm1zIHRoZSBjbGllbnRzIG9uIHNlcnZlciBjb25maWd1cmF0aW9uCi8vIGRldGFpbHMuCm1lc3NhZ2UgU2VydmVyQ29uZmlnIHsKCS8vIFRoZSBtYXhpbXVtIGJhbmR3aWR0aCB0aGUgY2xpZW50cyBzaG91bGQgdXNlLgoJb3B0aW9uYWwgdWludDMyIG1heF9iYW5kd2lkdGggPSAxOwoJLy8gU2VydmVyIHdlbGNvbWUgdGV4dC4KCW9wdGlvbmFsIHN0cmluZyB3ZWxjb21lX3RleHQgPSAyOwoJLy8gVHJ1ZSBpZiB0aGUgc2VydmVyIGFsbG93cyBIVE1MLgoJb3B0aW9uYWwgYm9vbCBhbGxvd19odG1sID0gMzsKCS8vIE1heGltdW0gdGV4dCBtZXNzYWdlIGxlbmd0aC4KCW9wdGlvbmFsIHVpbnQzMiBtZXNzYWdlX2xlbmd0aCA9IDQ7CgkvLyBNYXhpbXVtIGltYWdlIG1lc3NhZ2UgbGVuZ3RoLgoJb3B0aW9uYWwgdWludDMyIGltYWdlX21lc3NhZ2VfbGVuZ3RoID0gNTsKCS8vIFRoZSBtYXhpbXVtIG51bWJlciBvZiB1c2VycyBhbGxvd2VkIG9uIHRoZSBzZXJ2ZXIuCglvcHRpb25hbCB1aW50MzIgbWF4X3VzZXJzID0gNjsKfQoKLy8gU2VudCBieSB0aGUgc2VydmVyIHRvIGluZm9ybSB0aGUgY2xpZW50cyBvZiBzdWdnZXN0ZWQgY2xpZW50IGNvbmZpZ3VyYXRpb24KLy8gc3BlY2lmaWVkIGJ5IHRoZSBzZXJ2ZXIgYWRtaW5pc3RyYXRvci4KbWVzc2FnZSBTdWdnZXN0Q29uZmlnIHsKCS8vIFN1Z2dlc3RlZCBjbGllbnQgdmVyc2lvbi4KCW9wdGlvbmFsIHVpbnQzMiB2ZXJzaW9uID0gMTsKCS8vIFRydWUgaWYgdGhlIGFkbWluaXN0cmF0b3Igc3VnZ2VzdHMgcG9zaXRpb25hbCBhdWRpbyB0byBiZSB1c2VkIG9uIHRoaXMKCS8vIHNlcnZlci4KCW9wdGlvbmFsIGJvb2wgcG9zaXRpb25hbCA9IDI7CgkvLyBUcnVlIGlmIHRoZSBhZG1pbmlzdHJhdG9yIHN1Z2dlc3RzIHB1c2ggdG8gdGFsayB0byBiZSB1c2VkIG9uIHRoaXMgc2VydmVyLgoJb3B0aW9uYWwgYm9vbCBwdXNoX3RvX3RhbGsgPSAzOwp9Cg==","base64");
var messages = protobufjs.loadProto(mumbleProto).build('MumbleProto');
/**
* Encodes the given message.
*
* @param {string} name The name of the message.
* @param {object} payload The message to be encoded.
* @return {Buffer} The encoded message.
*/
function encode(name, payload) {
var encoded = new messages[name](payload || {}).toBuffer();
// toBuffer returns an ArrayBuffer when called in the browser
if (!Buffer.isBuffer(encoded)) {
encoded = Buffer.from(encoded);
}
return encoded;
}
/**
* A message object.
* @typedef {object} Message
* @property {string} name - Name of the message
* @property {object} [payload={}] - Payload of the message
*/
/**
* Decodes the given message.
*
* @param {number} id The id of the message.
* @param {Buffer} payload The encoded message.
* @return {object} The decoded message.
*/
function decode(id, payload) {
var name = nameById[id];
return new messages[name].decode(payload || {});
}
/**
* Transform stream for encoding {@link Message Mumble messages}.
*
* @constructor
* @constructs Encoder
*/
function Encoder() {
// Allow use without new
if (!(this instanceof Encoder)) return new Encoder();
Transform.call(this, {
writableObjectMode: true
});
}
util.inherits(Encoder, Transform);
Encoder.prototype._transform = function(chunk, encoding, callback) {
if (typeof chunk.name !== 'string') {
return callback(new TypeError('chunk.name is not a string'));
}
chunk.payload = chunk.payload || {};
// First, encode the payload
var data;
if (chunk.name == 'UDPTunnel') {
// UDPTunnel message doesn't need encoding
data = chunk.payload;
} else {
try {
// Encode the message payload
data = encode(chunk.name, chunk.payload);
} catch (e) {
callback(e);
return;
}
}
// Then create the header
var header = new Buffer(6);
header.writeUInt16BE(idByName[chunk.name], 0);
header.writeUInt32BE(data.length, 2);
callback(null, Buffer.concat([header, data]));
};
/**
* Transform stream for decoding {@link Message Mumble messages}.
*
* @constructor
* @constructs Decoder
*/
function Decoder() {
// Allow use without new
if (!(this instanceof Decoder)) return new Decoder();
Transform.call(this, {
readableObjectMode: true
});
this._buffer = new Buffer(1024);
this._bufferSize = 0;
}
util.inherits(Decoder, Transform);
Decoder.prototype._transform = function(chunk, encoding, callback) {
// Add incoming chunk to internal buffer
if (this._buffer.length - this._bufferSize < chunk.length) {
// Old buffer is too small, replace with bigger one
var oldBuffer = this._buffer;
this._buffer = new Buffer(this._bufferSize + chunk.length);
oldBuffer.copy(this._buffer, 0, 0, this._bufferSize);
}
this._bufferSize += chunk.copy(this._buffer, this._bufferSize);
// Try to decode messages while we still have enough bytes
while (this._bufferSize >= 6) {
var type = this._buffer.readUInt16BE(0);
var size = this._buffer.readUInt32BE(2);
if (this._bufferSize < 6 + size) {
break; // Not enough bytes in internal buffer for the expected payload
}
var typeName = nameById[type];
var data = this._buffer.slice(6, 6 + size);
// Decode payload
var message;
if (typeName == 'UDPTunnel') {
// UDPTunnel payload is not encoded
message = new Buffer(data);
} else {
try {
message = decode(type, data);
} catch (e) {
return callback(e);
}
}
// Shift remaining bytes to start of internal buffer
this._buffer.copy(this._buffer, 0, 6 + size, this._bufferSize);
this._bufferSize -= 6 + size;
this.push({
name: typeName,
payload: message
});
}
callback();
};
module.exports = {
Encoder: Encoder,
Decoder: Decoder,
messages: messages
};
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(97).Buffer))
/***/ }),
/* 132 */
/***/ (function(module, exports, __webpack_require__) {
var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(process, module) {/*
Copyright 2013 Daniel Wirtz <dcode@dcode.io>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
/**
* @license protobuf.js (c) 2013 Daniel Wirtz <dcode@dcode.io>
* Released under the Apache License, Version 2.0
* see: https://github.com/dcodeIO/protobuf.js for details
*/
(function(global, factory) {
/* AMD */ if ("function" === 'function' && __webpack_require__(126)["amd"])
!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(125)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
/* CommonJS */ else if ("function" === "function" && typeof module === "object" && module && module["exports"])
module["exports"] = factory(__webpack_require__(125), true);
/* Global */ else
(global["dcodeIO"] = global["dcodeIO"] || {})["ProtoBuf"] = factory(global["dcodeIO"]["ByteBuffer"]);
})(this, function(ByteBuffer, isCommonJS) {
"use strict";
/**
* The ProtoBuf namespace.
* @exports ProtoBuf
* @namespace
* @expose
*/
var ProtoBuf = {};
/**
* @type {!function(new: ByteBuffer, ...[*])}
* @expose
*/
ProtoBuf.ByteBuffer = ByteBuffer;
/**
* @type {?function(new: Long, ...[*])}
* @expose
*/
ProtoBuf.Long = ByteBuffer.Long || null;
/**
* ProtoBuf.js version.
* @type {string}
* @const
* @expose
*/
ProtoBuf.VERSION = "5.0.3";
/**
* Wire types.
* @type {Object.<string,number>}
* @const
* @expose
*/
ProtoBuf.WIRE_TYPES = {};
/**
* Varint wire type.
* @type {number}
* @expose
*/
ProtoBuf.WIRE_TYPES.VARINT = 0;
/**
* Fixed 64 bits wire type.
* @type {number}
* @const
* @expose
*/
ProtoBuf.WIRE_TYPES.BITS64 = 1;
/**
* Length delimited wire type.
* @type {number}
* @const
* @expose
*/
ProtoBuf.WIRE_TYPES.LDELIM = 2;
/**
* Start group wire type.
* @type {number}
* @const
* @expose
*/
ProtoBuf.WIRE_TYPES.STARTGROUP = 3;
/**
* End group wire type.
* @type {number}
* @const
* @expose
*/
ProtoBuf.WIRE_TYPES.ENDGROUP = 4;
/**
* Fixed 32 bits wire type.
* @type {number}
* @const
* @expose
*/
ProtoBuf.WIRE_TYPES.BITS32 = 5;
/**
* Packable wire types.
* @type {!Array.<number>}
* @const
* @expose
*/
ProtoBuf.PACKABLE_WIRE_TYPES = [
ProtoBuf.WIRE_TYPES.VARINT,
ProtoBuf.WIRE_TYPES.BITS64,
ProtoBuf.WIRE_TYPES.BITS32
];
/**
* Types.
* @dict
* @type {!Object.<string,{name: string, wireType: number, defaultValue: *}>}
* @const
* @expose
*/
ProtoBuf.TYPES = {
// According to the protobuf spec.
"int32": {
name: "int32",
wireType: ProtoBuf.WIRE_TYPES.VARINT,
defaultValue: 0
},
"uint32": {
name: "uint32",
wireType: ProtoBuf.WIRE_TYPES.VARINT,
defaultValue: 0
},
"sint32": {
name: "sint32",
wireType: ProtoBuf.WIRE_TYPES.VARINT,
defaultValue: 0
},
"int64": {
name: "int64",
wireType: ProtoBuf.WIRE_TYPES.VARINT,
defaultValue: ProtoBuf.Long ? ProtoBuf.Long.ZERO : undefined
},
"uint64": {
name: "uint64",
wireType: ProtoBuf.WIRE_TYPES.VARINT,
defaultValue: ProtoBuf.Long ? ProtoBuf.Long.UZERO : undefined
},
"sint64": {
name: "sint64",
wireType: ProtoBuf.WIRE_TYPES.VARINT,
defaultValue: ProtoBuf.Long ? ProtoBuf.Long.ZERO : undefined
},
"bool": {
name: "bool",
wireType: ProtoBuf.WIRE_TYPES.VARINT,
defaultValue: false
},
"double": {
name: "double",
wireType: ProtoBuf.WIRE_TYPES.BITS64,
defaultValue: 0
},
"string": {
name: "string",
wireType: ProtoBuf.WIRE_TYPES.LDELIM,
defaultValue: ""
},
"bytes": {
name: "bytes",
wireType: ProtoBuf.WIRE_TYPES.LDELIM,
defaultValue: null // overridden in the code, must be a unique instance
},
"fixed32": {
name: "fixed32",
wireType: ProtoBuf.WIRE_TYPES.BITS32,
defaultValue: 0
},
"sfixed32": {
name: "sfixed32",
wireType: ProtoBuf.WIRE_TYPES.BITS32,
defaultValue: 0
},
"fixed64": {
name: "fixed64",
wireType: ProtoBuf.WIRE_TYPES.BITS64,
defaultValue: ProtoBuf.Long ? ProtoBuf.Long.UZERO : undefined
},
"sfixed64": {
name: "sfixed64",
wireType: ProtoBuf.WIRE_TYPES.BITS64,
defaultValue: ProtoBuf.Long ? ProtoBuf.Long.ZERO : undefined
},
"float": {
name: "float",
wireType: ProtoBuf.WIRE_TYPES.BITS32,
defaultValue: 0
},
"enum": {
name: "enum",
wireType: ProtoBuf.WIRE_TYPES.VARINT,
defaultValue: 0
},
"message": {
name: "message",
wireType: ProtoBuf.WIRE_TYPES.LDELIM,
defaultValue: null
},
"group": {
name: "group",
wireType: ProtoBuf.WIRE_TYPES.STARTGROUP,
defaultValue: null
}
};
/**
* Valid map key types.
* @type {!Array.<!Object.<string,{name: string, wireType: number, defaultValue: *}>>}
* @const
* @expose
*/
ProtoBuf.MAP_KEY_TYPES = [
ProtoBuf.TYPES["int32"],
ProtoBuf.TYPES["sint32"],
ProtoBuf.TYPES["sfixed32"],
ProtoBuf.TYPES["uint32"],
ProtoBuf.TYPES["fixed32"],
ProtoBuf.TYPES["int64"],
ProtoBuf.TYPES["sint64"],
ProtoBuf.TYPES["sfixed64"],
ProtoBuf.TYPES["uint64"],
ProtoBuf.TYPES["fixed64"],
ProtoBuf.TYPES["bool"],
ProtoBuf.TYPES["string"],
ProtoBuf.TYPES["bytes"]
];
/**
* Minimum field id.
* @type {number}
* @const
* @expose
*/
ProtoBuf.ID_MIN = 1;
/**
* Maximum field id.
* @type {number}
* @const
* @expose
*/
ProtoBuf.ID_MAX = 0x1FFFFFFF;
/**
* If set to `true`, field names will be converted from underscore notation to camel case. Defaults to `false`.
* Must be set prior to parsing.
* @type {boolean}
* @expose
*/
ProtoBuf.convertFieldsToCamelCase = false;
/**
* By default, messages are populated with (setX, set_x) accessors for each field. This can be disabled by
* setting this to `false` prior to building messages.
* @type {boolean}
* @expose
*/
ProtoBuf.populateAccessors = true;
/**
* By default, messages are populated with default values if a field is not present on the wire. To disable
* this behavior, set this setting to `false`.
* @type {boolean}
* @expose
*/
ProtoBuf.populateDefaults = true;
/**
* @alias ProtoBuf.Util
* @expose
*/
ProtoBuf.Util = (function() {
"use strict";
/**
* ProtoBuf utilities.
* @exports ProtoBuf.Util
* @namespace
*/
var Util = {};
/**
* Flag if running in node or not.
* @type {boolean}
* @const
* @expose
*/
Util.IS_NODE = !!(
typeof process === 'object' && process+'' === '[object process]' && !process['browser']
);
/**
* Constructs a XMLHttpRequest object.
* @return {XMLHttpRequest}
* @throws {Error} If XMLHttpRequest is not supported
* @expose
*/
Util.XHR = function() {
// No dependencies please, ref: http://www.quirksmode.org/js/xmlhttp.html
var XMLHttpFactories = [
function () {return new XMLHttpRequest()},
function () {return new ActiveXObject("Msxml2.XMLHTTP")},
function () {return new ActiveXObject("Msxml3.XMLHTTP")},
function () {return new ActiveXObject("Microsoft.XMLHTTP")}
];
/** @type {?XMLHttpRequest} */
var xhr = null;
for (var i=0;i<XMLHttpFactories.length;i++) {
try { xhr = XMLHttpFactories[i](); }
catch (e) { continue; }
break;
}
if (!xhr)
throw Error("XMLHttpRequest is not supported");
return xhr;
};
/**
* Fetches a resource.
* @param {string} path Resource path
* @param {function(?string)=} callback Callback receiving the resource's contents. If omitted the resource will
* be fetched synchronously. If the request failed, contents will be null.
* @return {?string|undefined} Resource contents if callback is omitted (null if the request failed), else undefined.
* @expose
*/
Util.fetch = function(path, callback) {
if (callback && typeof callback != 'function')
callback = null;
if (Util.IS_NODE) {
var fs = __webpack_require__(133);
if (callback) {
fs.readFile(path, function(err, data) {
if (err)
callback(null);
else
callback(""+data);
});
} else
try {
return fs.readFileSync(path);
} catch (e) {
return null;
}
} else {
var xhr = Util.XHR();
xhr.open('GET', path, callback ? true : false);
// xhr.setRequestHeader('User-Agent', 'XMLHTTP/1.0');
xhr.setRequestHeader('Accept', 'text/plain');
if (typeof xhr.overrideMimeType === 'function') xhr.overrideMimeType('text/plain');
if (callback) {
xhr.onreadystatechange = function() {
if (xhr.readyState != 4) return;
if (/* remote */ xhr.status == 200 || /* local */ (xhr.status == 0 && typeof xhr.responseText === 'string'))
callback(xhr.responseText);
else
callback(null);
};
if (xhr.readyState == 4)
return;
xhr.send(null);
} else {
xhr.send(null);
if (/* remote */ xhr.status == 200 || /* local */ (xhr.status == 0 && typeof xhr.responseText === 'string'))
return xhr.responseText;
return null;
}
}
};
/**
* Converts a string to camel case.
* @param {string} str
* @returns {string}
* @expose
*/
Util.toCamelCase = function(str) {
return str.replace(/_([a-zA-Z])/g, function ($0, $1) {
return $1.toUpperCase();
});
};
return Util;
})();
/**
* Language expressions.
* @type {!Object.<string,!RegExp>}
* @expose
*/
ProtoBuf.Lang = {
// Characters always ending a statement
DELIM: /[\s\{\}=;:\[\],'"\(\)<>]/g,
// Field rules
RULE: /^(?:required|optional|repeated|map)$/,
// Field types
TYPE: /^(?:double|float|int32|uint32|sint32|int64|uint64|sint64|fixed32|sfixed32|fixed64|sfixed64|bool|string|bytes)$/,
// Names
NAME: /^[a-zA-Z_][a-zA-Z_0-9]*$/,
// Type definitions
TYPEDEF: /^[a-zA-Z][a-zA-Z_0-9]*$/,
// Type references
TYPEREF: /^(?:\.?[a-zA-Z_][a-zA-Z_0-9]*)(?:\.[a-zA-Z_][a-zA-Z_0-9]*)*$/,
// Fully qualified type references
FQTYPEREF: /^(?:\.[a-zA-Z_][a-zA-Z_0-9]*)+$/,
// All numbers
NUMBER: /^-?(?:[1-9][0-9]*|0|0[xX][0-9a-fA-F]+|0[0-7]+|([0-9]*(\.[0-9]*)?([Ee][+-]?[0-9]+)?)|inf|nan)$/,
// Decimal numbers
NUMBER_DEC: /^(?:[1-9][0-9]*|0)$/,
// Hexadecimal numbers
NUMBER_HEX: /^0[xX][0-9a-fA-F]+$/,
// Octal numbers
NUMBER_OCT: /^0[0-7]+$/,
// Floating point numbers
NUMBER_FLT: /^([0-9]*(\.[0-9]*)?([Ee][+-]?[0-9]+)?|inf|nan)$/,
// Booleans
BOOL: /^(?:true|false)$/i,
// Id numbers
ID: /^(?:[1-9][0-9]*|0|0[xX][0-9a-fA-F]+|0[0-7]+)$/,
// Negative id numbers (enum values)
NEGID: /^\-?(?:[1-9][0-9]*|0|0[xX][0-9a-fA-F]+|0[0-7]+)$/,
// Whitespaces
WHITESPACE: /\s/,
// All strings
STRING: /(?:"([^"\\]*(?:\\.[^"\\]*)*)")|(?:'([^'\\]*(?:\\.[^'\\]*)*)')/g,
// Double quoted strings
STRING_DQ: /(?:"([^"\\]*(?:\\.[^"\\]*)*)")/g,
// Single quoted strings
STRING_SQ: /(?:'([^'\\]*(?:\\.[^'\\]*)*)')/g
};
/**
* @alias ProtoBuf.DotProto
* @expose
*/
ProtoBuf.DotProto = (function(ProtoBuf, Lang) {
"use strict";
/**
* Utilities to parse .proto files.
* @exports ProtoBuf.DotProto
* @namespace
*/
var DotProto = {};
/**
* Constructs a new Tokenizer.
* @exports ProtoBuf.DotProto.Tokenizer
* @class prototype tokenizer
* @param {string} proto Proto to tokenize
* @constructor
*/
var Tokenizer = function(proto) {
/**
* Source to parse.
* @type {string}
* @expose
*/
this.source = proto+"";
/**
* Current index.
* @type {number}
* @expose
*/
this.index = 0;
/**
* Current line.
* @type {number}
* @expose
*/
this.line = 1;
/**
* Token stack.
* @type {!Array.<string>}
* @expose
*/
this.stack = [];
/**
* Opening character of the current string read, if any.
* @type {?string}
* @private
*/
this._stringOpen = null;
};
/**
* @alias ProtoBuf.DotProto.Tokenizer.prototype
* @inner
*/
var TokenizerPrototype = Tokenizer.prototype;
/**
* Reads a string beginning at the current index.
* @return {string}
* @private
*/
TokenizerPrototype._readString = function() {
var re = this._stringOpen === '"'
? Lang.STRING_DQ
: Lang.STRING_SQ;
re.lastIndex = this.index - 1; // Include the open quote
var match = re.exec(this.source);
if (!match)
throw Error("unterminated string");
this.index = re.lastIndex;
this.stack.push(this._stringOpen);
this._stringOpen = null;
return match[1];
};
/**
* Gets the next token and advances by one.
* @return {?string} Token or `null` on EOF
* @expose
*/
TokenizerPrototype.next = function() {
if (this.stack.length > 0)
return this.stack.shift();
if (this.index >= this.source.length)
return null;
if (this._stringOpen !== null)
return this._readString();
var repeat,
prev,
next;
do {
repeat = false;
// Strip white spaces
while (Lang.WHITESPACE.test(next = this.source.charAt(this.index))) {
if (next === '\n')
++this.line;
if (++this.index === this.source.length)
return null;
}
// Strip comments
if (this.source.charAt(this.index) === '/') {
++this.index;
if (this.source.charAt(this.index) === '/') { // Line
while (this.source.charAt(++this.index) !== '\n')
if (this.index == this.source.length)
return null;
++this.index;
++this.line;
repeat = true;
} else if ((next = this.source.charAt(this.index)) === '*') { /* Block */
do {
if (next === '\n')
++this.line;
if (++this.index === this.source.length)
return null;
prev = next;
next = this.source.charAt(this.index);
} while (prev !== '*' || next !== '/');
++this.index;
repeat = true;
} else
return '/';
}
} while (repeat);
if (this.index === this.source.length)
return null;
// Read the next token
var end = this.index;
Lang.DELIM.lastIndex = 0;
var delim = Lang.DELIM.test(this.source.charAt(end++));
if (!delim)
while(end < this.source.length && !Lang.DELIM.test(this.source.charAt(end)))
++end;
var token = this.source.substring(this.index, this.index = end);
if (token === '"' || token === "'")
this._stringOpen = token;
return token;
};
/**
* Peeks for the next token.
* @return {?string} Token or `null` on EOF
* @expose
*/
TokenizerPrototype.peek = function() {
if (this.stack.length === 0) {
var token = this.next();
if (token === null)
return null;
this.stack.push(token);
}
return this.stack[0];
};
/**
* Skips a specific token and throws if it differs.
* @param {string} expected Expected token
* @throws {Error} If the actual token differs
*/
TokenizerPrototype.skip = function(expected) {
var actual = this.next();
if (actual !== expected)
throw Error("illegal '"+actual+"', '"+expected+"' expected");
};
/**
* Omits an optional token.
* @param {string} expected Expected optional token
* @returns {boolean} `true` if the token exists
*/
TokenizerPrototype.omit = function(expected) {
if (this.peek() === expected) {
this.next();
return true;
}
return false;
};
/**
* Returns a string representation of this object.
* @return {string} String representation as of "Tokenizer(index/length)"
* @expose
*/
TokenizerPrototype.toString = function() {
return "Tokenizer ("+this.index+"/"+this.source.length+" at line "+this.line+")";
};
/**
* @alias ProtoBuf.DotProto.Tokenizer
* @expose
*/
DotProto.Tokenizer = Tokenizer;
/**
* Constructs a new Parser.
* @exports ProtoBuf.DotProto.Parser
* @class prototype parser
* @param {string} source Source
* @constructor
*/
var Parser = function(source) {
/**
* Tokenizer.
* @type {!ProtoBuf.DotProto.Tokenizer}
* @expose
*/
this.tn = new Tokenizer(source);
/**
* Whether parsing proto3 or not.
* @type {boolean}
*/
this.proto3 = false;
};
/**
* @alias ProtoBuf.DotProto.Parser.prototype
* @inner
*/
var ParserPrototype = Parser.prototype;
/**
* Parses the source.
* @returns {!Object}
* @throws {Error} If the source cannot be parsed
* @expose
*/
ParserPrototype.parse = function() {
var topLevel = {
"name": "[ROOT]", // temporary
"package": null,
"messages": [],
"enums": [],
"imports": [],
"options": {},
"services": []
// "syntax": undefined
};
var token,
head = true,
weak;
try {
while (token = this.tn.next()) {
switch (token) {
case 'package':
if (!head || topLevel["package"] !== null)
throw Error("unexpected 'package'");
token = this.tn.next();
if (!Lang.TYPEREF.test(token))
throw Error("illegal package name: " + token);
this.tn.skip(";");
topLevel["package"] = token;
break;
case 'import':
if (!head)
throw Error("unexpected 'import'");
token = this.tn.peek();
if (token === "public" || (weak = token === "weak")) // token ignored
this.tn.next();
token = this._readString();
this.tn.skip(";");
if (!weak) // import ignored
topLevel["imports"].push(token);
break;
case 'syntax':
if (!head)
throw Error("unexpected 'syntax'");
this.tn.skip("=");
if ((topLevel["syntax"] = this._readString()) === "proto3")
this.proto3 = true;
this.tn.skip(";");
break;
case 'message':
this._parseMessage(topLevel, null);
head = false;
break;
case 'enum':
this._parseEnum(topLevel);
head = false;
break;
case 'option':
this._parseOption(topLevel);
break;
case 'service':
this._parseService(topLevel);
break;
case 'extend':
this._parseExtend(topLevel);
break;
default:
throw Error("unexpected '" + token + "'");
}
}
} catch (e) {
e.message = "Parse error at line "+this.tn.line+": " + e.message;
throw e;
}
delete topLevel["name"];
return topLevel;
};
/**
* Parses the specified source.
* @returns {!Object}
* @throws {Error} If the source cannot be parsed
* @expose
*/
Parser.parse = function(source) {
return new Parser(source).parse();
};
// ----- Conversion ------
/**
* Converts a numerical string to an id.
* @param {string} value
* @param {boolean=} mayBeNegative
* @returns {number}
* @inner
*/
function mkId(value, mayBeNegative) {
var id = -1,
sign = 1;
if (value.charAt(0) == '-') {
sign = -1;
value = value.substring(1);
}
if (Lang.NUMBER_DEC.test(value))
id = parseInt(value);
else if (Lang.NUMBER_HEX.test(value))
id = parseInt(value.substring(2), 16);
else if (Lang.NUMBER_OCT.test(value))
id = parseInt(value.substring(1), 8);
else
throw Error("illegal id value: " + (sign < 0 ? '-' : '') + value);
id = (sign*id)|0; // Force to 32bit
if (!mayBeNegative && id < 0)
throw Error("illegal id value: " + (sign < 0 ? '-' : '') + value);
return id;
}
/**
* Converts a numerical string to a number.
* @param {string} val
* @returns {number}
* @inner
*/
function mkNumber(val) {
var sign = 1;
if (val.charAt(0) == '-') {
sign = -1;
val = val.substring(1);
}
if (Lang.NUMBER_DEC.test(val))
return sign * parseInt(val, 10);
else if (Lang.NUMBER_HEX.test(val))
return sign * parseInt(val.substring(2), 16);
else if (Lang.NUMBER_OCT.test(val))
return sign * parseInt(val.substring(1), 8);
else if (val === 'inf')
return sign * Infinity;
else if (val === 'nan')
return NaN;
else if (Lang.NUMBER_FLT.test(val))
return sign * parseFloat(val);
throw Error("illegal number value: " + (sign < 0 ? '-' : '') + val);
}
// ----- Reading ------
/**
* Reads a string.
* @returns {string}
* @private
*/
ParserPrototype._readString = function() {
var value = "",
token,
delim;
do {
delim = this.tn.next();
if (delim !== "'" && delim !== '"')
throw Error("illegal string delimiter: "+delim);
value += this.tn.next();
this.tn.skip(delim);
token = this.tn.peek();
} while (token === '"' || token === '"'); // multi line?
return value;
};
/**
* Reads a value.
* @param {boolean=} mayBeTypeRef
* @returns {number|boolean|string}
* @private
*/
ParserPrototype._readValue = function(mayBeTypeRef) {
var token = this.tn.peek(),
value;
if (token === '"' || token === "'")
return this._readString();
this.tn.next();
if (Lang.NUMBER.test(token))
return mkNumber(token);
if (Lang.BOOL.test(token))
return (token.toLowerCase() === 'true');
if (mayBeTypeRef && Lang.TYPEREF.test(token))
return token;
throw Error("illegal value: "+token);
};
// ----- Parsing constructs -----
/**
* Parses a namespace option.
* @param {!Object} parent Parent definition
* @param {boolean=} isList
* @private
*/
ParserPrototype._parseOption = function(parent, isList) {
var token = this.tn.next(),
custom = false;
if (token === '(') {
custom = true;
token = this.tn.next();
}
if (!Lang.TYPEREF.test(token))
// we can allow options of the form google.protobuf.* since they will just get ignored anyways
// if (!/google\.protobuf\./.test(token)) // FIXME: Why should that not be a valid typeref?
throw Error("illegal option name: "+token);
var name = token;
if (custom) { // (my_method_option).foo, (my_method_option), some_method_option, (foo.my_option).bar
this.tn.skip(')');
name = '('+name+')';
token = this.tn.peek();
if (Lang.FQTYPEREF.test(token)) {
name += token;
this.tn.next();
}
}
this.tn.skip('=');
this._parseOptionValue(parent, name);
if (!isList)
this.tn.skip(";");
};
/**
* Sets an option on the specified options object.
* @param {!Object.<string,*>} options
* @param {string} name
* @param {string|number|boolean} value
* @inner
*/
function setOption(options, name, value) {
if (typeof options[name] === 'undefined')
options[name] = value;
else {
if (!Array.isArray(options[name]))
options[name] = [ options[name] ];
options[name].push(value);
}
}
/**
* Parses an option value.
* @param {!Object} parent
* @param {string} name
* @private
*/
ParserPrototype._parseOptionValue = function(parent, name) {
var token = this.tn.peek();
if (token !== '{') { // Plain value
setOption(parent["options"], name, this._readValue(true));
} else { // Aggregate options
this.tn.skip("{");
while ((token = this.tn.next()) !== '}') {
if (!Lang.NAME.test(token))
throw Error("illegal option name: " + name + "." + token);
if (this.tn.omit(":"))
setOption(parent["options"], name + "." + token, this._readValue(true));
else
this._parseOptionValue(parent, name + "." + token);
}
}
};
/**
* Parses a service definition.
* @param {!Object} parent Parent definition
* @private
*/
ParserPrototype._parseService = function(parent) {
var token = this.tn.next();
if (!Lang.NAME.test(token))
throw Error("illegal service name at line "+this.tn.line+": "+token);
var name = token;
var svc = {
"name": name,
"rpc": {},
"options": {}
};
this.tn.skip("{");
while ((token = this.tn.next()) !== '}') {
if (token === "option")
this._parseOption(svc);
else if (token === 'rpc')
this._parseServiceRPC(svc);
else
throw Error("illegal service token: "+token);
}
this.tn.omit(";");
parent["services"].push(svc);
};
/**
* Parses a RPC service definition of the form ['rpc', name, (request), 'returns', (response)].
* @param {!Object} svc Service definition
* @private
*/
ParserPrototype._parseServiceRPC = function(svc) {
var type = "rpc",
token = this.tn.next();
if (!Lang.NAME.test(token))
throw Error("illegal rpc service method name: "+token);
var name = token;
var method = {
"request": null,
"response": null,
"request_stream": false,
"response_stream": false,
"options": {}
};
this.tn.skip("(");
token = this.tn.next();
if (token.toLowerCase() === "stream") {
method["request_stream"] = true;
token = this.tn.next();
}
if (!Lang.TYPEREF.test(token))
throw Error("illegal rpc service request type: "+token);
method["request"] = token;
this.tn.skip(")");
token = this.tn.next();
if (token.toLowerCase() !== "returns")
throw Error("illegal rpc service request type delimiter: "+token);
this.tn.skip("(");
token = this.tn.next();
if (token.toLowerCase() === "stream") {
method["response_stream"] = true;
token = this.tn.next();
}
method["response"] = token;
this.tn.skip(")");
token = this.tn.peek();
if (token === '{') {
this.tn.next();
while ((token = this.tn.next()) !== '}') {
if (token === 'option')
this._parseOption(method);
else
throw Error("illegal rpc service token: " + token);
}
this.tn.omit(";");
} else
this.tn.skip(";");
if (typeof svc[type] === 'undefined')
svc[type] = {};
svc[type][name] = method;
};
/**
* Parses a message definition.
* @param {!Object} parent Parent definition
* @param {!Object=} fld Field definition if this is a group
* @returns {!Object}
* @private
*/
ParserPrototype._parseMessage = function(parent, fld) {
var isGroup = !!fld,
token = this.tn.next();
var msg = {
"name": "",
"fields": [],
"enums": [],
"messages": [],
"options": {},
"services": [],
"oneofs": {}
// "extensions": undefined
};
if (!Lang.NAME.test(token))
throw Error("illegal "+(isGroup ? "group" : "message")+" name: "+token);
msg["name"] = token;
if (isGroup) {
this.tn.skip("=");
fld["id"] = mkId(this.tn.next());
msg["isGroup"] = true;
}
token = this.tn.peek();
if (token === '[' && fld)
this._parseFieldOptions(fld);
this.tn.skip("{");
while ((token = this.tn.next()) !== '}') {
if (Lang.RULE.test(token))
this._parseMessageField(msg, token);
else if (token === "oneof")
this._parseMessageOneOf(msg);
else if (token === "enum")
this._parseEnum(msg);
else if (token === "message")
this._parseMessage(msg);
else if (token === "option")
this._parseOption(msg);
else if (token === "service")
this._parseService(msg);
else if (token === "extensions")
if (msg.hasOwnProperty("extensions")) {
msg["extensions"] = msg["extensions"].concat(this._parseExtensionRanges())
} else {
msg["extensions"] = this._parseExtensionRanges();
}
else if (token === "reserved")
this._parseIgnored(); // TODO
else if (token === "extend")
this._parseExtend(msg);
else if (Lang.TYPEREF.test(token)) {
if (!this.proto3)
throw Error("illegal field rule: "+token);
this._parseMessageField(msg, "optional", token);
} else
throw Error("illegal message token: "+token);
}
this.tn.omit(";");
parent["messages"].push(msg);
return msg;
};
/**
* Parses an ignored statement.
* @private
*/
ParserPrototype._parseIgnored = function() {
while (this.tn.peek() !== ';')
this.tn.next();
this.tn.skip(";");
};
/**
* Parses a message field.
* @param {!Object} msg Message definition
* @param {string} rule Field rule
* @param {string=} type Field type if already known (never known for maps)
* @returns {!Object} Field descriptor
* @private
*/
ParserPrototype._parseMessageField = function(msg, rule, type) {
if (!Lang.RULE.test(rule))
throw Error("illegal message field rule: "+rule);
var fld = {
"rule": rule,
"type": "",
"name": "",
"options": {},
"id": 0
};
var token;
if (rule === "map") {
if (type)
throw Error("illegal type: " + type);
this.tn.skip('<');
token = this.tn.next();
if (!Lang.TYPE.test(token) && !Lang.TYPEREF.test(token))
throw Error("illegal message field type: " + token);
fld["keytype"] = token;
this.tn.skip(',');
token = this.tn.next();
if (!Lang.TYPE.test(token) && !Lang.TYPEREF.test(token))
throw Error("illegal message field: " + token);
fld["type"] = token;
this.tn.skip('>');
token = this.tn.next();
if (!Lang.NAME.test(token))
throw Error("illegal message field name: " + token);
fld["name"] = token;
this.tn.skip("=");
fld["id"] = mkId(this.tn.next());
token = this.tn.peek();
if (token === '[')
this._parseFieldOptions(fld);
this.tn.skip(";");
} else {
type = typeof type !== 'undefined' ? type : this.tn.next();
if (type === "group") {
// "A [legacy] group simply combines a nested message type and a field into a single declaration. In your
// code, you can treat this message just as if it had a Result type field called result (the latter name is
// converted to lower-case so that it does not conflict with the former)."
var grp = this._parseMessage(msg, fld);
if (!/^[A-Z]/.test(grp["name"]))
throw Error('illegal group name: '+grp["name"]);
fld["type"] = grp["name"];
fld["name"] = grp["name"].toLowerCase();
this.tn.omit(";");
} else {
if (!Lang.TYPE.test(type) && !Lang.TYPEREF.test(type))
throw Error("illegal message field type: " + type);
fld["type"] = type;
token = this.tn.next();
if (!Lang.NAME.test(token))
throw Error("illegal message field name: " + token);
fld["name"] = token;
this.tn.skip("=");
fld["id"] = mkId(this.tn.next());
token = this.tn.peek();
if (token === "[")
this._parseFieldOptions(fld);
this.tn.skip(";");
}
}
msg["fields"].push(fld);
return fld;
};
/**
* Parses a message oneof.
* @param {!Object} msg Message definition
* @private
*/
ParserPrototype._parseMessageOneOf = function(msg) {
var token = this.tn.next();
if (!Lang.NAME.test(token))
throw Error("illegal oneof name: "+token);
var name = token,
fld;
var fields = [];
this.tn.skip("{");
while ((token = this.tn.next()) !== "}") {
fld = this._parseMessageField(msg, "optional", token);
fld["oneof"] = name;
fields.push(fld["id"]);
}
this.tn.omit(";");
msg["oneofs"][name] = fields;
};
/**
* Parses a set of field option definitions.
* @param {!Object} fld Field definition
* @private
*/
ParserPrototype._parseFieldOptions = function(fld) {
this.tn.skip("[");
var token,
first = true;
while ((token = this.tn.peek()) !== ']') {
if (!first)
this.tn.skip(",");
this._parseOption(fld, true);
first = false;
}
this.tn.next();
};
/**
* Parses an enum.
* @param {!Object} msg Message definition
* @private
*/
ParserPrototype._parseEnum = function(msg) {
var enm = {
"name": "",
"values": [],
"options": {}
};
var token = this.tn.next();
if (!Lang.NAME.test(token))
throw Error("illegal name: "+token);
enm["name"] = token;
this.tn.skip("{");
while ((token = this.tn.next()) !== '}') {
if (token === "option")
this._parseOption(enm);
else {
if (!Lang.NAME.test(token))
throw Error("illegal name: "+token);
this.tn.skip("=");
var val = {
"name": token,
"id": mkId(this.tn.next(), true)
};
token = this.tn.peek();
if (token === "[")
this._parseFieldOptions({ "options": {} });
this.tn.skip(";");
enm["values"].push(val);
}
}
this.tn.omit(";");
msg["enums"].push(enm);
};
/**
* Parses extension / reserved ranges.
* @returns {!Array.<!Array.<number>>}
* @private
*/
ParserPrototype._parseExtensionRanges = function() {
var ranges = [];
var token,
range,
value;
do {
range = [];
while (true) {
token = this.tn.next();
switch (token) {
case "min":
value = ProtoBuf.ID_MIN;
break;
case "max":
value = ProtoBuf.ID_MAX;
break;
default:
value = mkNumber(token);
break;
}
range.push(value);
if (range.length === 2)
break;
if (this.tn.peek() !== "to") {
range.push(value);
break;
}
this.tn.next();
}
ranges.push(range);
} while (this.tn.omit(","));
this.tn.skip(";");
return ranges;
};
/**
* Parses an extend block.
* @param {!Object} parent Parent object
* @private
*/
ParserPrototype._parseExtend = function(parent) {
var token = this.tn.next();
if (!Lang.TYPEREF.test(token))
throw Error("illegal extend reference: "+token);
var ext = {
"ref": token,
"fields": []
};
this.tn.skip("{");
while ((token = this.tn.next()) !== '}') {
if (Lang.RULE.test(token))
this._parseMessageField(ext, token);
else if (Lang.TYPEREF.test(token)) {
if (!this.proto3)
throw Error("illegal field rule: "+token);
this._parseMessageField(ext, "optional", token);
} else
throw Error("illegal extend token: "+token);
}
this.tn.omit(";");
parent["messages"].push(ext);
return ext;
};
// ----- General -----
/**
* Returns a string representation of this parser.
* @returns {string}
*/
ParserPrototype.toString = function() {
return "Parser at line "+this.tn.line;
};
/**
* @alias ProtoBuf.DotProto.Parser
* @expose
*/
DotProto.Parser = Parser;
return DotProto;
})(ProtoBuf, ProtoBuf.Lang);
/**
* @alias ProtoBuf.Reflect
* @expose
*/
ProtoBuf.Reflect = (function(ProtoBuf) {
"use strict";
/**
* Reflection types.
* @exports ProtoBuf.Reflect
* @namespace
*/
var Reflect = {};
/**
* Constructs a Reflect base class.
* @exports ProtoBuf.Reflect.T
* @constructor
* @abstract
* @param {!ProtoBuf.Builder} builder Builder reference
* @param {?ProtoBuf.Reflect.T} parent Parent object
* @param {string} name Object name
*/
var T = function(builder, parent, name) {
/**
* Builder reference.
* @type {!ProtoBuf.Builder}
* @expose
*/
this.builder = builder;
/**
* Parent object.
* @type {?ProtoBuf.Reflect.T}
* @expose
*/
this.parent = parent;
/**
* Object name in namespace.
* @type {string}
* @expose
*/
this.name = name;
/**
* Fully qualified class name
* @type {string}
* @expose
*/
this.className;
};
/**
* @alias ProtoBuf.Reflect.T.prototype
* @inner
*/
var TPrototype = T.prototype;
/**
* Returns the fully qualified name of this object.
* @returns {string} Fully qualified name as of ".PATH.TO.THIS"
* @expose
*/
TPrototype.fqn = function() {
var name = this.name,
ptr = this;
do {
ptr = ptr.parent;
if (ptr == null)
break;
name = ptr.name+"."+name;
} while (true);
return name;
};
/**
* Returns a string representation of this Reflect object (its fully qualified name).
* @param {boolean=} includeClass Set to true to include the class name. Defaults to false.
* @return String representation
* @expose
*/
TPrototype.toString = function(includeClass) {
return (includeClass ? this.className + " " : "") + this.fqn();
};
/**
* Builds this type.
* @throws {Error} If this type cannot be built directly
* @expose
*/
TPrototype.build = function() {
throw Error(this.toString(true)+" cannot be built directly");
};
/**
* @alias ProtoBuf.Reflect.T
* @expose
*/
Reflect.T = T;
/**
* Constructs a new Namespace.
* @exports ProtoBuf.Reflect.Namespace
* @param {!ProtoBuf.Builder} builder Builder reference
* @param {?ProtoBuf.Reflect.Namespace} parent Namespace parent
* @param {string} name Namespace name
* @param {Object.<string,*>=} options Namespace options
* @param {string?} syntax The syntax level of this definition (e.g., proto3)
* @constructor
* @extends ProtoBuf.Reflect.T
*/
var Namespace = function(builder, parent, name, options, syntax) {
T.call(this, builder, parent, name);
/**
* @override
*/
this.className = "Namespace";
/**
* Children inside the namespace.
* @type {!Array.<ProtoBuf.Reflect.T>}
*/
this.children = [];
/**
* Options.
* @type {!Object.<string, *>}
*/
this.options = options || {};
/**
* Syntax level (e.g., proto2 or proto3).
* @type {!string}
*/
this.syntax = syntax || "proto2";
};
/**
* @alias ProtoBuf.Reflect.Namespace.prototype
* @inner
*/
var NamespacePrototype = Namespace.prototype = Object.create(T.prototype);
/**
* Returns an array of the namespace's children.
* @param {ProtoBuf.Reflect.T=} type Filter type (returns instances of this type only). Defaults to null (all children).
* @return {Array.<ProtoBuf.Reflect.T>}
* @expose
*/
NamespacePrototype.getChildren = function(type) {
type = type || null;
if (type == null)
return this.children.slice();
var children = [];
for (var i=0, k=this.children.length; i<k; ++i)
if (this.children[i] instanceof type)
children.push(this.children[i]);
return children;
};
/**
* Adds a child to the namespace.
* @param {ProtoBuf.Reflect.T} child Child
* @throws {Error} If the child cannot be added (duplicate)
* @expose
*/
NamespacePrototype.addChild = function(child) {
var other;
if (other = this.getChild(child.name)) {
// Try to revert camelcase transformation on collision
if (other instanceof Message.Field && other.name !== other.originalName && this.getChild(other.originalName) === null)
other.name = other.originalName; // Revert previous first (effectively keeps both originals)
else if (child instanceof Message.Field && child.name !== child.originalName && this.getChild(child.originalName) === null)
child.name = child.originalName;
else
throw Error("Duplicate name in namespace "+this.toString(true)+": "+child.name);
}
this.children.push(child);
};
/**
* Gets a child by its name or id.
* @param {string|number} nameOrId Child name or id
* @return {?ProtoBuf.Reflect.T} The child or null if not found
* @expose
*/
NamespacePrototype.getChild = function(nameOrId) {
var key = typeof nameOrId === 'number' ? 'id' : 'name';
for (var i=0, k=this.children.length; i<k; ++i)
if (this.children[i][key] === nameOrId)
return this.children[i];
return null;
};
/**
* Resolves a reflect object inside of this namespace.
* @param {string|!Array.<string>} qn Qualified name to resolve
* @param {boolean=} excludeNonNamespace Excludes non-namespace types, defaults to `false`
* @return {?ProtoBuf.Reflect.Namespace} The resolved type or null if not found
* @expose
*/
NamespacePrototype.resolve = function(qn, excludeNonNamespace) {
var part = typeof qn === 'string' ? qn.split(".") : qn,
ptr = this,
i = 0;
if (part[i] === "") { // Fully qualified name, e.g. ".My.Message'
while (ptr.parent !== null)
ptr = ptr.parent;
i++;
}
var child;
do {
do {
if (!(ptr instanceof Reflect.Namespace)) {
ptr = null;
break;
}
child = ptr.getChild(part[i]);
if (!child || !(child instanceof Reflect.T) || (excludeNonNamespace && !(child instanceof Reflect.Namespace))) {
ptr = null;
break;
}
ptr = child; i++;
} while (i < part.length);
if (ptr != null)
break; // Found
// Else search the parent
if (this.parent !== null)
return this.parent.resolve(qn, excludeNonNamespace);
} while (ptr != null);
return ptr;
};
/**
* Determines the shortest qualified name of the specified type, if any, relative to this namespace.
* @param {!ProtoBuf.Reflect.T} t Reflection type
* @returns {string} The shortest qualified name or, if there is none, the fqn
* @expose
*/
NamespacePrototype.qn = function(t) {
var part = [], ptr = t;
do {
part.unshift(ptr.name);
ptr = ptr.parent;
} while (ptr !== null);
for (var len=1; len <= part.length; len++) {
var qn = part.slice(part.length-len);
if (t === this.resolve(qn, t instanceof Reflect.Namespace))
return qn.join(".");
}
return t.fqn();
};
/**
* Builds the namespace and returns the runtime counterpart.
* @return {Object.<string,Function|Object>} Runtime namespace
* @expose
*/
NamespacePrototype.build = function() {
/** @dict */
var ns = {};
var children = this.children;
for (var i=0, k=children.length, child; i<k; ++i) {
child = children[i];
if (child instanceof Namespace)
ns[child.name] = child.build();
}
if (Object.defineProperty)
Object.defineProperty(ns, "$options", { "value": this.buildOpt() });
return ns;
};
/**
* Builds the namespace's '$options' property.
* @return {Object.<string,*>}
*/
NamespacePrototype.buildOpt = function() {
var opt = {},
keys = Object.keys(this.options);
for (var i=0, k=keys.length; i<k; ++i) {
var key = keys[i],
val = this.options[keys[i]];
// TODO: Options are not resolved, yet.
// if (val instanceof Namespace) {
// opt[key] = val.build();
// } else {
opt[key] = val;
// }
}
return opt;
};
/**
* Gets the value assigned to the option with the specified name.
* @param {string=} name Returns the option value if specified, otherwise all options are returned.
* @return {*|Object.<string,*>}null} Option value or NULL if there is no such option
*/
NamespacePrototype.getOption = function(name) {
if (typeof name === 'undefined')
return this.options;
return typeof this.options[name] !== 'undefined' ? this.options[name] : null;
};
/**
* @alias ProtoBuf.Reflect.Namespace
* @expose
*/
Reflect.Namespace = Namespace;
/**
* Constructs a new Element implementation that checks and converts values for a
* particular field type, as appropriate.
*
* An Element represents a single value: either the value of a singular field,
* or a value contained in one entry of a repeated field or map field. This
* class does not implement these higher-level concepts; it only encapsulates
* the low-level typechecking and conversion.
*
* @exports ProtoBuf.Reflect.Element
* @param {{name: string, wireType: number}} type Resolved data type
* @param {ProtoBuf.Reflect.T|null} resolvedType Resolved type, if relevant
* (e.g. submessage field).
* @param {boolean} isMapKey Is this element a Map key? The value will be
* converted to string form if so.
* @param {string} syntax Syntax level of defining message type, e.g.,
* proto2 or proto3.
* @param {string} name Name of the field containing this element (for error
* messages)
* @constructor
*/
var Element = function(type, resolvedType, isMapKey, syntax, name) {
/**
* Element type, as a string (e.g., int32).
* @type {{name: string, wireType: number}}
*/
this.type = type;
/**
* Element type reference to submessage or enum definition, if needed.
* @type {ProtoBuf.Reflect.T|null}
*/
this.resolvedType = resolvedType;
/**
* Element is a map key.
* @type {boolean}
*/
this.isMapKey = isMapKey;
/**
* Syntax level of defining message type, e.g., proto2 or proto3.
* @type {string}
*/
this.syntax = syntax;
/**
* Name of the field containing this element (for error messages)
* @type {string}
*/
this.name = name;
if (isMapKey && ProtoBuf.MAP_KEY_TYPES.indexOf(type) < 0)
throw Error("Invalid map key type: " + type.name);
};
var ElementPrototype = Element.prototype;
/**
* Obtains a (new) default value for the specified type.
* @param type {string|{name: string, wireType: number}} Field type
* @returns {*} Default value
* @inner
*/
function mkDefault(type) {
if (typeof type === 'string')
type = ProtoBuf.TYPES[type];
if (typeof type.defaultValue === 'undefined')
throw Error("default value for type "+type.name+" is not supported");
if (type == ProtoBuf.TYPES["bytes"])
return new ByteBuffer(0);
return type.defaultValue;
}
/**
* Returns the default value for this field in proto3.
* @function
* @param type {string|{name: string, wireType: number}} the field type
* @returns {*} Default value
*/
Element.defaultFieldValue = mkDefault;
/**
* Makes a Long from a value.
* @param {{low: number, high: number, unsigned: boolean}|string|number} value Value
* @param {boolean=} unsigned Whether unsigned or not, defaults to reuse it from Long-like objects or to signed for
* strings and numbers
* @returns {!Long}
* @throws {Error} If the value cannot be converted to a Long
* @inner
*/
function mkLong(value, unsigned) {
if (value && typeof value.low === 'number' && typeof value.high === 'number' && typeof value.unsigned === 'boolean'
&& value.low === value.low && value.high === value.high)
return new ProtoBuf.Long(value.low, value.high, typeof unsigned === 'undefined' ? value.unsigned : unsigned);
if (typeof value === 'string')
return ProtoBuf.Long.fromString(value, unsigned || false, 10);
if (typeof value === 'number')
return ProtoBuf.Long.fromNumber(value, unsigned || false);
throw Error("not convertible to Long");
}
ElementPrototype.toString = function() {
return (this.name || '') + (this.isMapKey ? 'map' : 'value') + ' element';
}
/**
* Checks if the given value can be set for an element of this type (singular
* field or one element of a repeated field or map).
* @param {*} value Value to check
* @return {*} Verified, maybe adjusted, value
* @throws {Error} If the value cannot be verified for this element slot
* @expose
*/
ElementPrototype.verifyValue = function(value) {
var self = this;
function fail(val, msg) {
throw Error("Illegal value for "+self.toString(true)+" of type "+self.type.name+": "+val+" ("+msg+")");
}
switch (this.type) {
// Signed 32bit
case ProtoBuf.TYPES["int32"]:
case ProtoBuf.TYPES["sint32"]:
case ProtoBuf.TYPES["sfixed32"]:
// Account for !NaN: value === value
if (typeof value !== 'number' || (value === value && value % 1 !== 0))
fail(typeof value, "not an integer");
return value > 4294967295 ? value | 0 : value;
// Unsigned 32bit
case ProtoBuf.TYPES["uint32"]:
case ProtoBuf.TYPES["fixed32"]:
if (typeof value !== 'number' || (value === value && value % 1 !== 0))
fail(typeof value, "not an integer");
return value < 0 ? value >>> 0 : value;
// Signed 64bit
case ProtoBuf.TYPES["int64"]:
case ProtoBuf.TYPES["sint64"]:
case ProtoBuf.TYPES["sfixed64"]: {
if (ProtoBuf.Long)
try {
return mkLong(value, false);
} catch (e) {
fail(typeof value, e.message);
}
else
fail(typeof value, "requires Long.js");
}
// Unsigned 64bit
case ProtoBuf.TYPES["uint64"]:
case ProtoBuf.TYPES["fixed64"]: {
if (ProtoBuf.Long)
try {
return mkLong(value, true);
} catch (e) {
fail(typeof value, e.message);
}
else
fail(typeof value, "requires Long.js");
}
// Bool
case ProtoBuf.TYPES["bool"]:
if (typeof value !== 'boolean')
fail(typeof value, "not a boolean");
return value;
// Float
case ProtoBuf.TYPES["float"]:
case ProtoBuf.TYPES["double"]:
if (typeof value !== 'number')
fail(typeof value, "not a number");
return value;
// Length-delimited string
case ProtoBuf.TYPES["string"]:
if (typeof value !== 'string' && !(value && value instanceof String))
fail(typeof value, "not a string");
return ""+value; // Convert String object to string
// Length-delimited bytes
case ProtoBuf.TYPES["bytes"]:
if (ByteBuffer.isByteBuffer(value))
return value;
return ByteBuffer.wrap(value, "base64");
// Constant enum value
case ProtoBuf.TYPES["enum"]: {
var values = this.resolvedType.getChildren(ProtoBuf.Reflect.Enum.Value);
for (i=0; i<values.length; i++)
if (values[i].name == value)
return values[i].id;
else if (values[i].id == value)
return values[i].id;
if (this.syntax === 'proto3') {
// proto3: just make sure it's an integer.
if (typeof value !== 'number' || (value === value && value % 1 !== 0))
fail(typeof value, "not an integer");
if (value > 4294967295 || value < 0)
fail(typeof value, "not in range for uint32")
return value;
} else {
// proto2 requires enum values to be valid.
fail(value, "not a valid enum value");
}
}
// Embedded message
case ProtoBuf.TYPES["group"]:
case ProtoBuf.TYPES["message"]: {
if (!value || typeof value !== 'object')
fail(typeof value, "object expected");
if (value instanceof this.resolvedType.clazz)
return value;
if (value instanceof ProtoBuf.Builder.Message) {
// Mismatched type: Convert to object (see: https://github.com/dcodeIO/ProtoBuf.js/issues/180)
var obj = {};
for (var i in value)
if (value.hasOwnProperty(i))
obj[i] = value[i];
value = obj;
}
// Else let's try to construct one from a key-value object
return new (this.resolvedType.clazz)(value); // May throw for a hundred of reasons
}
}
// We should never end here
throw Error("[INTERNAL] Illegal value for "+this.toString(true)+": "+value+" (undefined type "+this.type+")");
};
/**
* Calculates the byte length of an element on the wire.
* @param {number} id Field number
* @param {*} value Field value
* @returns {number} Byte length
* @throws {Error} If the value cannot be calculated
* @expose
*/
ElementPrototype.calculateLength = function(id, value) {
if (value === null) return 0; // Nothing to encode
// Tag has already been written
var n;
switch (this.type) {
case ProtoBuf.TYPES["int32"]:
return value < 0 ? ByteBuffer.calculateVarint64(value) : ByteBuffer.calculateVarint32(value);
case ProtoBuf.TYPES["uint32"]:
return ByteBuffer.calculateVarint32(value);
case ProtoBuf.TYPES["sint32"]:
return ByteBuffer.calculateVarint32(ByteBuffer.zigZagEncode32(value));
case ProtoBuf.TYPES["fixed32"]:
case ProtoBuf.TYPES["sfixed32"]:
case ProtoBuf.TYPES["float"]:
return 4;
case ProtoBuf.TYPES["int64"]:
case ProtoBuf.TYPES["uint64"]:
return ByteBuffer.calculateVarint64(value);
case ProtoBuf.TYPES["sint64"]:
return ByteBuffer.calculateVarint64(ByteBuffer.zigZagEncode64(value));
case ProtoBuf.TYPES["fixed64"]:
case ProtoBuf.TYPES["sfixed64"]:
return 8;
case ProtoBuf.TYPES["bool"]:
return 1;
case ProtoBuf.TYPES["enum"]:
return ByteBuffer.calculateVarint32(value);
case ProtoBuf.TYPES["double"]:
return 8;
case ProtoBuf.TYPES["string"]:
n = ByteBuffer.calculateUTF8Bytes(value);
return ByteBuffer.calculateVarint32(n) + n;
case ProtoBuf.TYPES["bytes"]:
if (value.remaining() < 0)
throw Error("Illegal value for "+this.toString(true)+": "+value.remaining()+" bytes remaining");
return ByteBuffer.calculateVarint32(value.remaining()) + value.remaining();
case ProtoBuf.TYPES["message"]:
n = this.resolvedType.calculate(value);
return ByteBuffer.calculateVarint32(n) + n;
case ProtoBuf.TYPES["group"]:
n = this.resolvedType.calculate(value);
return n + ByteBuffer.calculateVarint32((id << 3) | ProtoBuf.WIRE_TYPES.ENDGROUP);
}
// We should never end here
throw Error("[INTERNAL] Illegal value to encode in "+this.toString(true)+": "+value+" (unknown type)");
};
/**
* Encodes a value to the specified buffer. Does not encode the key.
* @param {number} id Field number
* @param {*} value Field value
* @param {ByteBuffer} buffer ByteBuffer to encode to
* @return {ByteBuffer} The ByteBuffer for chaining
* @throws {Error} If the value cannot be encoded
* @expose
*/
ElementPrototype.encodeValue = function(id, value, buffer) {
if (value === null) return buffer; // Nothing to encode
// Tag has already been written
switch (this.type) {
// 32bit signed varint
case ProtoBuf.TYPES["int32"]:
// "If you use int32 or int64 as the type for a negative number, the resulting varint is always ten bytes
// long it is, effectively, treated like a very large unsigned integer." (see #122)
if (value < 0)
buffer.writeVarint64(value);
else
buffer.writeVarint32(value);
break;
// 32bit unsigned varint
case ProtoBuf.TYPES["uint32"]:
buffer.writeVarint32(value);
break;
// 32bit varint zig-zag
case ProtoBuf.TYPES["sint32"]:
buffer.writeVarint32ZigZag(value);
break;
// Fixed unsigned 32bit
case ProtoBuf.TYPES["fixed32"]:
buffer.writeUint32(value);
break;
// Fixed signed 32bit
case ProtoBuf.TYPES["sfixed32"]:
buffer.writeInt32(value);
break;
// 64bit varint as-is
case ProtoBuf.TYPES["int64"]:
case ProtoBuf.TYPES["uint64"]:
buffer.writeVarint64(value); // throws
break;
// 64bit varint zig-zag
case ProtoBuf.TYPES["sint64"]:
buffer.writeVarint64ZigZag(value); // throws
break;
// Fixed unsigned 64bit
case ProtoBuf.TYPES["fixed64"]:
buffer.writeUint64(value); // throws
break;
// Fixed signed 64bit
case ProtoBuf.TYPES["sfixed64"]:
buffer.writeInt64(value); // throws
break;
// Bool
case ProtoBuf.TYPES["bool"]:
if (typeof value === 'string')
buffer.writeVarint32(value.toLowerCase() === 'false' ? 0 : !!value);
else
buffer.writeVarint32(value ? 1 : 0);
break;
// Constant enum value
case ProtoBuf.TYPES["enum"]:
buffer.writeVarint32(value);
break;
// 32bit float
case ProtoBuf.TYPES["float"]:
buffer.writeFloat32(value);
break;
// 64bit float
case ProtoBuf.TYPES["double"]:
buffer.writeFloat64(value);
break;
// Length-delimited string
case ProtoBuf.TYPES["string"]:
buffer.writeVString(value);
break;
// Length-delimited bytes
case ProtoBuf.TYPES["bytes"]:
if (value.remaining() < 0)
throw Error("Illegal value for "+this.toString(true)+": "+value.remaining()+" bytes remaining");
var prevOffset = value.offset;
buffer.writeVarint32(value.remaining());
buffer.append(value);
value.offset = prevOffset;
break;
// Embedded message
case ProtoBuf.TYPES["message"]:
var bb = new ByteBuffer().LE();
this.resolvedType.encode(value, bb);
buffer.writeVarint32(bb.offset);
buffer.append(bb.flip());
break;
// Legacy group
case ProtoBuf.TYPES["group"]:
this.resolvedType.encode(value, buffer);
buffer.writeVarint32((id << 3) | ProtoBuf.WIRE_TYPES.ENDGROUP);
break;
default:
// We should never end here
throw Error("[INTERNAL] Illegal value to encode in "+this.toString(true)+": "+value+" (unknown type)");
}
return buffer;
};
/**
* Decode one element value from the specified buffer.
* @param {ByteBuffer} buffer ByteBuffer to decode from
* @param {number} wireType The field wire type
* @param {number} id The field number
* @return {*} Decoded value
* @throws {Error} If the field cannot be decoded
* @expose
*/
ElementPrototype.decode = function(buffer, wireType, id) {
if (wireType != this.type.wireType)
throw Error("Unexpected wire type for element");
var value, nBytes;
switch (this.type) {
// 32bit signed varint
case ProtoBuf.TYPES["int32"]:
return buffer.readVarint32() | 0;
// 32bit unsigned varint
case ProtoBuf.TYPES["uint32"]:
return buffer.readVarint32() >>> 0;
// 32bit signed varint zig-zag
case ProtoBuf.TYPES["sint32"]:
return buffer.readVarint32ZigZag() | 0;
// Fixed 32bit unsigned
case ProtoBuf.TYPES["fixed32"]:
return buffer.readUint32() >>> 0;
case ProtoBuf.TYPES["sfixed32"]:
return buffer.readInt32() | 0;
// 64bit signed varint
case ProtoBuf.TYPES["int64"]:
return buffer.readVarint64();
// 64bit unsigned varint
case ProtoBuf.TYPES["uint64"]:
return buffer.readVarint64().toUnsigned();
// 64bit signed varint zig-zag
case ProtoBuf.TYPES["sint64"]:
return buffer.readVarint64ZigZag();
// Fixed 64bit unsigned
case ProtoBuf.TYPES["fixed64"]:
return buffer.readUint64();
// Fixed 64bit signed
case ProtoBuf.TYPES["sfixed64"]:
return buffer.readInt64();
// Bool varint
case ProtoBuf.TYPES["bool"]:
return !!buffer.readVarint32();
// Constant enum value (varint)
case ProtoBuf.TYPES["enum"]:
// The following Builder.Message#set will already throw
return buffer.readVarint32();
// 32bit float
case ProtoBuf.TYPES["float"]:
return buffer.readFloat();
// 64bit float
case ProtoBuf.TYPES["double"]:
return buffer.readDouble();
// Length-delimited string
case ProtoBuf.TYPES["string"]:
return buffer.readVString();
// Length-delimited bytes
case ProtoBuf.TYPES["bytes"]: {
nBytes = buffer.readVarint32();
if (buffer.remaining() < nBytes)
throw Error("Illegal number of bytes for "+this.toString(true)+": "+nBytes+" required but got only "+buffer.remaining());
value = buffer.clone(); // Offset already set
value.limit = value.offset+nBytes;
buffer.offset += nBytes;
return value;
}
// Length-delimited embedded message
case ProtoBuf.TYPES["message"]: {
nBytes = buffer.readVarint32();
return this.resolvedType.decode(buffer, nBytes);
}
// Legacy group
case ProtoBuf.TYPES["group"]:
return this.resolvedType.decode(buffer, -1, id);
}
// We should never end here
throw Error("[INTERNAL] Illegal decode type");
};
/**
* Converts a value from a string to the canonical element type.
*
* Legal only when isMapKey is true.
*
* @param {string} str The string value
* @returns {*} The value
*/
ElementPrototype.valueFromString = function(str) {
if (!this.isMapKey) {
throw Error("valueFromString() called on non-map-key element");
}
switch (this.type) {
case ProtoBuf.TYPES["int32"]:
case ProtoBuf.TYPES["sint32"]:
case ProtoBuf.TYPES["sfixed32"]:
case ProtoBuf.TYPES["uint32"]:
case ProtoBuf.TYPES["fixed32"]:
return this.verifyValue(parseInt(str));
case ProtoBuf.TYPES["int64"]:
case ProtoBuf.TYPES["sint64"]:
case ProtoBuf.TYPES["sfixed64"]:
case ProtoBuf.TYPES["uint64"]:
case ProtoBuf.TYPES["fixed64"]:
// Long-based fields support conversions from string already.
return this.verifyValue(str);
case ProtoBuf.TYPES["bool"]:
return str === "true";
case ProtoBuf.TYPES["string"]:
return this.verifyValue(str);
case ProtoBuf.TYPES["bytes"]:
return ByteBuffer.fromBinary(str);
}
};
/**
* Converts a value from the canonical element type to a string.
*
* It should be the case that `valueFromString(valueToString(val))` returns
* a value equivalent to `verifyValue(val)` for every legal value of `val`
* according to this element type.
*
* This may be used when the element must be stored or used as a string,
* e.g., as a map key on an Object.
*
* Legal only when isMapKey is true.
*
* @param {*} val The value
* @returns {string} The string form of the value.
*/
ElementPrototype.valueToString = function(value) {
if (!this.isMapKey) {
throw Error("valueToString() called on non-map-key element");
}
if (this.type === ProtoBuf.TYPES["bytes"]) {
return value.toString("binary");
} else {
return value.toString();
}
};
/**
* @alias ProtoBuf.Reflect.Element
* @expose
*/
Reflect.Element = Element;
/**
* Constructs a new Message.
* @exports ProtoBuf.Reflect.Message
* @param {!ProtoBuf.Builder} builder Builder reference
* @param {!ProtoBuf.Reflect.Namespace} parent Parent message or namespace
* @param {string} name Message name
* @param {Object.<string,*>=} options Message options
* @param {boolean=} isGroup `true` if this is a legacy group
* @param {string?} syntax The syntax level of this definition (e.g., proto3)
* @constructor
* @extends ProtoBuf.Reflect.Namespace
*/
var Message = function(builder, parent, name, options, isGroup, syntax) {
Namespace.call(this, builder, parent, name, options, syntax);
/**
* @override
*/
this.className = "Message";
/**
* Extensions range.
* @type {!Array.<number>|undefined}
* @expose
*/
this.extensions = undefined;
/**
* Runtime message class.
* @type {?function(new:ProtoBuf.Builder.Message)}
* @expose
*/
this.clazz = null;
/**
* Whether this is a legacy group or not.
* @type {boolean}
* @expose
*/
this.isGroup = !!isGroup;
// The following cached collections are used to efficiently iterate over or look up fields when decoding.
/**
* Cached fields.
* @type {?Array.<!ProtoBuf.Reflect.Message.Field>}
* @private
*/
this._fields = null;
/**
* Cached fields by id.
* @type {?Object.<number,!ProtoBuf.Reflect.Message.Field>}
* @private
*/
this._fieldsById = null;
/**
* Cached fields by name.
* @type {?Object.<string,!ProtoBuf.Reflect.Message.Field>}
* @private
*/
this._fieldsByName = null;
};
/**
* @alias ProtoBuf.Reflect.Message.prototype
* @inner
*/
var MessagePrototype = Message.prototype = Object.create(Namespace.prototype);
/**
* Builds the message and returns the runtime counterpart, which is a fully functional class.
* @see ProtoBuf.Builder.Message
* @param {boolean=} rebuild Whether to rebuild or not, defaults to false
* @return {ProtoBuf.Reflect.Message} Message class
* @throws {Error} If the message cannot be built
* @expose
*/
MessagePrototype.build = function(rebuild) {
if (this.clazz && !rebuild)
return this.clazz;
// Create the runtime Message class in its own scope
var clazz = (function(ProtoBuf, T) {
var fields = T.getChildren(ProtoBuf.Reflect.Message.Field),
oneofs = T.getChildren(ProtoBuf.Reflect.Message.OneOf);
/**
* Constructs a new runtime Message.
* @name ProtoBuf.Builder.Message
* @class Barebone of all runtime messages.
* @param {!Object.<string,*>|string} values Preset values
* @param {...string} var_args
* @constructor
* @throws {Error} If the message cannot be created
*/
var Message = function(values, var_args) {
ProtoBuf.Builder.Message.call(this);
// Create virtual oneof properties
for (var i=0, k=oneofs.length; i<k; ++i)
this[oneofs[i].name] = null;
// Create fields and set default values
for (i=0, k=fields.length; i<k; ++i) {
var field = fields[i];
this[field.name] =
field.repeated ? [] :
(field.map ? new ProtoBuf.Map(field) : null);
if ((field.required || T.syntax === 'proto3') &&
field.defaultValue !== null)
this[field.name] = field.defaultValue;
}
if (arguments.length > 0) {
var value;
// Set field values from a values object
if (arguments.length === 1 && values !== null && typeof values === 'object' &&
/* not _another_ Message */ (typeof values.encode !== 'function' || values instanceof Message) &&
/* not a repeated field */ !Array.isArray(values) &&
/* not a Map */ !(values instanceof ProtoBuf.Map) &&
/* not a ByteBuffer */ !ByteBuffer.isByteBuffer(values) &&
/* not an ArrayBuffer */ !(values instanceof ArrayBuffer) &&
/* not a Long */ !(ProtoBuf.Long && values instanceof ProtoBuf.Long)) {
this.$set(values);
} else // Set field values from arguments, in declaration order
for (i=0, k=arguments.length; i<k; ++i)
if (typeof (value = arguments[i]) !== 'undefined')
this.$set(fields[i].name, value); // May throw
}
};
/**
* @alias ProtoBuf.Builder.Message.prototype
* @inner
*/
var MessagePrototype = Message.prototype = Object.create(ProtoBuf.Builder.Message.prototype);
/**
* Adds a value to a repeated field.
* @name ProtoBuf.Builder.Message#add
* @function
* @param {string} key Field name
* @param {*} value Value to add
* @param {boolean=} noAssert Whether to assert the value or not (asserts by default)
* @returns {!ProtoBuf.Builder.Message} this
* @throws {Error} If the value cannot be added
* @expose
*/
MessagePrototype.add = function(key, value, noAssert) {
var field = T._fieldsByName[key];
if (!noAssert) {
if (!field)
throw Error(this+"#"+key+" is undefined");
if (!(field instanceof ProtoBuf.Reflect.Message.Field))
throw Error(this+"#"+key+" is not a field: "+field.toString(true)); // May throw if it's an enum or embedded message
if (!field.repeated)
throw Error(this+"#"+key+" is not a repeated field");
value = field.verifyValue(value, true);
}
if (this[key] === null)
this[key] = [];
this[key].push(value);
return this;
};
/**
* Adds a value to a repeated field. This is an alias for {@link ProtoBuf.Builder.Message#add}.
* @name ProtoBuf.Builder.Message#$add
* @function
* @param {string} key Field name
* @param {*} value Value to add
* @param {boolean=} noAssert Whether to assert the value or not (asserts by default)
* @returns {!ProtoBuf.Builder.Message} this
* @throws {Error} If the value cannot be added
* @expose
*/
MessagePrototype.$add = MessagePrototype.add;
/**
* Sets a field's value.
* @name ProtoBuf.Builder.Message#set
* @function
* @param {string|!Object.<string,*>} keyOrObj String key or plain object holding multiple values
* @param {(*|boolean)=} value Value to set if key is a string, otherwise omitted
* @param {boolean=} noAssert Whether to not assert for an actual field / proper value type, defaults to `false`
* @returns {!ProtoBuf.Builder.Message} this
* @throws {Error} If the value cannot be set
* @expose
*/
MessagePrototype.set = function(keyOrObj, value, noAssert) {
if (keyOrObj && typeof keyOrObj === 'object') {
noAssert = value;
for (var ikey in keyOrObj) {
// Check if virtual oneof field - don't set these
if (keyOrObj.hasOwnProperty(ikey) && typeof (value = keyOrObj[ikey]) !== 'undefined' && T._oneofsByName[ikey] === undefined)
this.$set(ikey, value, noAssert);
}
return this;
}
var field = T._fieldsByName[keyOrObj];
if (!noAssert) {
if (!field)
throw Error(this+"#"+keyOrObj+" is not a field: undefined");
if (!(field instanceof ProtoBuf.Reflect.Message.Field))
throw Error(this+"#"+keyOrObj+" is not a field: "+field.toString(true));
this[field.name] = (value = field.verifyValue(value)); // May throw
} else
this[keyOrObj] = value;
if (field && field.oneof) { // Field is part of an OneOf (not a virtual OneOf field)
var currentField = this[field.oneof.name]; // Virtual field references currently set field
if (value !== null) {
if (currentField !== null && currentField !== field.name)
this[currentField] = null; // Clear currently set field
this[field.oneof.name] = field.name; // Point virtual field at this field
} else if (/* value === null && */currentField === keyOrObj)
this[field.oneof.name] = null; // Clear virtual field (current field explicitly cleared)
}
return this;
};
/**
* Sets a field's value. This is an alias for [@link ProtoBuf.Builder.Message#set}.
* @name ProtoBuf.Builder.Message#$set
* @function
* @param {string|!Object.<string,*>} keyOrObj String key or plain object holding multiple values
* @param {(*|boolean)=} value Value to set if key is a string, otherwise omitted
* @param {boolean=} noAssert Whether to not assert the value, defaults to `false`
* @throws {Error} If the value cannot be set
* @expose
*/
MessagePrototype.$set = MessagePrototype.set;
/**
* Gets a field's value.
* @name ProtoBuf.Builder.Message#get
* @function
* @param {string} key Key
* @param {boolean=} noAssert Whether to not assert for an actual field, defaults to `false`
* @return {*} Value
* @throws {Error} If there is no such field
* @expose
*/
MessagePrototype.get = function(key, noAssert) {
if (noAssert)
return this[key];
var field = T._fieldsByName[key];
if (!field || !(field instanceof ProtoBuf.Reflect.Message.Field))
throw Error(this+"#"+key+" is not a field: undefined");
if (!(field instanceof ProtoBuf.Reflect.Message.Field))
throw Error(this+"#"+key+" is not a field: "+field.toString(true));
return this[field.name];
};
/**
* Gets a field's value. This is an alias for {@link ProtoBuf.Builder.Message#$get}.
* @name ProtoBuf.Builder.Message#$get
* @function
* @param {string} key Key
* @return {*} Value
* @throws {Error} If there is no such field
* @expose
*/
MessagePrototype.$get = MessagePrototype.get;
// Getters and setters
for (var i=0; i<fields.length; i++) {
var field = fields[i];
// no setters for extension fields as these are named by their fqn
if (field instanceof ProtoBuf.Reflect.Message.ExtensionField)
continue;
if (T.builder.options['populateAccessors'])
(function(field) {
// set/get[SomeValue]
var Name = field.originalName.replace(/(_[a-zA-Z])/g, function(match) {
return match.toUpperCase().replace('_','');
});
Name = Name.substring(0,1).toUpperCase() + Name.substring(1);
// set/get_[some_value] FIXME: Do we really need these?
var name = field.originalName.replace(/([A-Z])/g, function(match) {
return "_"+match;
});
/**
* The current field's unbound setter function.
* @function
* @param {*} value
* @param {boolean=} noAssert
* @returns {!ProtoBuf.Builder.Message}
* @inner
*/
var setter = function(value, noAssert) {
this[field.name] = noAssert ? value : field.verifyValue(value);
return this;
};
/**
* The current field's unbound getter function.
* @function
* @returns {*}
* @inner
*/
var getter = function() {
return this[field.name];
};
if (T.getChild("set"+Name) === null)
/**
* Sets a value. This method is present for each field, but only if there is no name conflict with
* another field.
* @name ProtoBuf.Builder.Message#set[SomeField]
* @function
* @param {*} value Value to set
* @param {boolean=} noAssert Whether to not assert the value, defaults to `false`
* @returns {!ProtoBuf.Builder.Message} this
* @abstract
* @throws {Error} If the value cannot be set
*/
MessagePrototype["set"+Name] = setter;
if (T.getChild("set_"+name) === null)
/**
* Sets a value. This method is present for each field, but only if there is no name conflict with
* another field.
* @name ProtoBuf.Builder.Message#set_[some_field]
* @function
* @param {*} value Value to set
* @param {boolean=} noAssert Whether to not assert the value, defaults to `false`
* @returns {!ProtoBuf.Builder.Message} this
* @abstract
* @throws {Error} If the value cannot be set
*/
MessagePrototype["set_"+name] = setter;
if (T.getChild("get"+Name) === null)
/**
* Gets a value. This method is present for each field, but only if there is no name conflict with
* another field.
* @name ProtoBuf.Builder.Message#get[SomeField]
* @function
* @abstract
* @return {*} The value
*/
MessagePrototype["get"+Name] = getter;
if (T.getChild("get_"+name) === null)
/**
* Gets a value. This method is present for each field, but only if there is no name conflict with
* another field.
* @name ProtoBuf.Builder.Message#get_[some_field]
* @function
* @return {*} The value
* @abstract
*/
MessagePrototype["get_"+name] = getter;
})(field);
}
// En-/decoding
/**
* Encodes the message.
* @name ProtoBuf.Builder.Message#$encode
* @function
* @param {(!ByteBuffer|boolean)=} buffer ByteBuffer to encode to. Will create a new one and flip it if omitted.
* @param {boolean=} noVerify Whether to not verify field values, defaults to `false`
* @return {!ByteBuffer} Encoded message as a ByteBuffer
* @throws {Error} If the message cannot be encoded or if required fields are missing. The later still
* returns the encoded ByteBuffer in the `encoded` property on the error.
* @expose
* @see ProtoBuf.Builder.Message#encode64
* @see ProtoBuf.Builder.Message#encodeHex
* @see ProtoBuf.Builder.Message#encodeAB
*/
MessagePrototype.encode = function(buffer, noVerify) {
if (typeof buffer === 'boolean')
noVerify = buffer,
buffer = undefined;
var isNew = false;
if (!buffer)
buffer = new ByteBuffer(),
isNew = true;
var le = buffer.littleEndian;
try {
T.encode(this, buffer.LE(), noVerify);
return (isNew ? buffer.flip() : buffer).LE(le);
} catch (e) {
buffer.LE(le);
throw(e);
}
};
/**
* Encodes a message using the specified data payload.
* @param {!Object.<string,*>} data Data payload
* @param {(!ByteBuffer|boolean)=} buffer ByteBuffer to encode to. Will create a new one and flip it if omitted.
* @param {boolean=} noVerify Whether to not verify field values, defaults to `false`
* @return {!ByteBuffer} Encoded message as a ByteBuffer
* @expose
*/
Message.encode = function(data, buffer, noVerify) {
return new Message(data).encode(buffer, noVerify);
};
/**
* Calculates the byte length of the message.
* @name ProtoBuf.Builder.Message#calculate
* @function
* @returns {number} Byte length
* @throws {Error} If the message cannot be calculated or if required fields are missing.
* @expose
*/
MessagePrototype.calculate = function() {
return T.calculate(this);
};
/**
* Encodes the varint32 length-delimited message.
* @name ProtoBuf.Builder.Message#encodeDelimited
* @function
* @param {(!ByteBuffer|boolean)=} buffer ByteBuffer to encode to. Will create a new one and flip it if omitted.
* @param {boolean=} noVerify Whether to not verify field values, defaults to `false`
* @return {!ByteBuffer} Encoded message as a ByteBuffer
* @throws {Error} If the message cannot be encoded or if required fields are missing. The later still
* returns the encoded ByteBuffer in the `encoded` property on the error.
* @expose
*/
MessagePrototype.encodeDelimited = function(buffer, noVerify) {
var isNew = false;
if (!buffer)
buffer = new ByteBuffer(),
isNew = true;
var enc = new ByteBuffer().LE();
T.encode(this, enc, noVerify).flip();
buffer.writeVarint32(enc.remaining());
buffer.append(enc);
return isNew ? buffer.flip() : buffer;
};
/**
* Directly encodes the message to an ArrayBuffer.
* @name ProtoBuf.Builder.Message#encodeAB
* @function
* @return {ArrayBuffer} Encoded message as ArrayBuffer
* @throws {Error} If the message cannot be encoded or if required fields are missing. The later still
* returns the encoded ArrayBuffer in the `encoded` property on the error.
* @expose
*/
MessagePrototype.encodeAB = function() {
try {
return this.encode().toArrayBuffer();
} catch (e) {
if (e["encoded"]) e["encoded"] = e["encoded"].toArrayBuffer();
throw(e);
}
};
/**
* Returns the message as an ArrayBuffer. This is an alias for {@link ProtoBuf.Builder.Message#encodeAB}.
* @name ProtoBuf.Builder.Message#toArrayBuffer
* @function
* @return {ArrayBuffer} Encoded message as ArrayBuffer
* @throws {Error} If the message cannot be encoded or if required fields are missing. The later still
* returns the encoded ArrayBuffer in the `encoded` property on the error.
* @expose
*/
MessagePrototype.toArrayBuffer = MessagePrototype.encodeAB;
/**
* Directly encodes the message to a node Buffer.
* @name ProtoBuf.Builder.Message#encodeNB
* @function
* @return {!Buffer}
* @throws {Error} If the message cannot be encoded, not running under node.js or if required fields are
* missing. The later still returns the encoded node Buffer in the `encoded` property on the error.
* @expose
*/
MessagePrototype.encodeNB = function() {
try {
return this.encode().toBuffer();
} catch (e) {
if (e["encoded"]) e["encoded"] = e["encoded"].toBuffer();
throw(e);
}
};
/**
* Returns the message as a node Buffer. This is an alias for {@link ProtoBuf.Builder.Message#encodeNB}.
* @name ProtoBuf.Builder.Message#toBuffer
* @function
* @return {!Buffer}
* @throws {Error} If the message cannot be encoded or if required fields are missing. The later still
* returns the encoded node Buffer in the `encoded` property on the error.
* @expose
*/
MessagePrototype.toBuffer = MessagePrototype.encodeNB;
/**
* Directly encodes the message to a base64 encoded string.
* @name ProtoBuf.Builder.Message#encode64
* @function
* @return {string} Base64 encoded string
* @throws {Error} If the underlying buffer cannot be encoded or if required fields are missing. The later
* still returns the encoded base64 string in the `encoded` property on the error.
* @expose
*/
MessagePrototype.encode64 = function() {
try {
return this.encode().toBase64();
} catch (e) {
if (e["encoded"]) e["encoded"] = e["encoded"].toBase64();
throw(e);
}
};
/**
* Returns the message as a base64 encoded string. This is an alias for {@link ProtoBuf.Builder.Message#encode64}.
* @name ProtoBuf.Builder.Message#toBase64
* @function
* @return {string} Base64 encoded string
* @throws {Error} If the message cannot be encoded or if required fields are missing. The later still
* returns the encoded base64 string in the `encoded` property on the error.
* @expose
*/
MessagePrototype.toBase64 = MessagePrototype.encode64;
/**
* Directly encodes the message to a hex encoded string.
* @name ProtoBuf.Builder.Message#encodeHex
* @function
* @return {string} Hex encoded string
* @throws {Error} If the underlying buffer cannot be encoded or if required fields are missing. The later
* still returns the encoded hex string in the `encoded` property on the error.
* @expose
*/
MessagePrototype.encodeHex = function() {
try {
return this.encode().toHex();
} catch (e) {
if (e["encoded"]) e["encoded"] = e["encoded"].toHex();
throw(e);
}
};
/**
* Returns the message as a hex encoded string. This is an alias for {@link ProtoBuf.Builder.Message#encodeHex}.
* @name ProtoBuf.Builder.Message#toHex
* @function
* @return {string} Hex encoded string
* @throws {Error} If the message cannot be encoded or if required fields are missing. The later still
* returns the encoded hex string in the `encoded` property on the error.
* @expose
*/
MessagePrototype.toHex = MessagePrototype.encodeHex;
/**
* Clones a message object or field value to a raw object.
* @param {*} obj Object to clone
* @param {boolean} binaryAsBase64 Whether to include binary data as base64 strings or as a buffer otherwise
* @param {boolean} longsAsStrings Whether to encode longs as strings
* @param {!ProtoBuf.Reflect.T=} resolvedType The resolved field type if a field
* @returns {*} Cloned object
* @inner
*/
function cloneRaw(obj, binaryAsBase64, longsAsStrings, resolvedType) {
if (obj === null || typeof obj !== 'object') {
// Convert enum values to their respective names
if (resolvedType && resolvedType instanceof ProtoBuf.Reflect.Enum) {
var name = ProtoBuf.Reflect.Enum.getName(resolvedType.object, obj);
if (name !== null)
return name;
}
// Pass-through string, number, boolean, null...
return obj;
}
// Convert ByteBuffers to raw buffer or strings
if (ByteBuffer.isByteBuffer(obj))
return binaryAsBase64 ? obj.toBase64() : obj.toBuffer();
// Convert Longs to proper objects or strings
if (ProtoBuf.Long.isLong(obj))
return longsAsStrings ? obj.toString() : ProtoBuf.Long.fromValue(obj);
var clone;
// Clone arrays
if (Array.isArray(obj)) {
clone = [];
obj.forEach(function(v, k) {
clone[k] = cloneRaw(v, binaryAsBase64, longsAsStrings, resolvedType);
});
return clone;
}
clone = {};
// Convert maps to objects
if (obj instanceof ProtoBuf.Map) {
var it = obj.entries();
for (var e = it.next(); !e.done; e = it.next())
clone[obj.keyElem.valueToString(e.value[0])] = cloneRaw(e.value[1], binaryAsBase64, longsAsStrings, obj.valueElem.resolvedType);
return clone;
}
// Everything else is a non-null object
var type = obj.$type,
field = undefined;
for (var i in obj)
if (obj.hasOwnProperty(i)) {
if (type && (field = type.getChild(i)))
clone[i] = cloneRaw(obj[i], binaryAsBase64, longsAsStrings, field.resolvedType);
else
clone[i] = cloneRaw(obj[i], binaryAsBase64, longsAsStrings);
}
return clone;
}
/**
* Returns the message's raw payload.
* @param {boolean=} binaryAsBase64 Whether to include binary data as base64 strings instead of Buffers, defaults to `false`
* @param {boolean} longsAsStrings Whether to encode longs as strings
* @returns {Object.<string,*>} Raw payload
* @expose
*/
MessagePrototype.toRaw = function(binaryAsBase64, longsAsStrings) {
return cloneRaw(this, !!binaryAsBase64, !!longsAsStrings, this.$type);
};
/**
* Encodes a message to JSON.
* @returns {string} JSON string
* @expose
*/
MessagePrototype.encodeJSON = function() {
return JSON.stringify(
cloneRaw(this,
/* binary-as-base64 */ true,
/* longs-as-strings */ true,
this.$type
)
);
};
/**
* Decodes a message from the specified buffer or string.
* @name ProtoBuf.Builder.Message.decode
* @function
* @param {!ByteBuffer|!ArrayBuffer|!Buffer|string} buffer Buffer to decode from
* @param {(number|string)=} length Message length. Defaults to decode all the remainig data.
* @param {string=} enc Encoding if buffer is a string: hex, utf8 (not recommended), defaults to base64
* @return {!ProtoBuf.Builder.Message} Decoded message
* @throws {Error} If the message cannot be decoded or if required fields are missing. The later still
* returns the decoded message with missing fields in the `decoded` property on the error.
* @expose
* @see ProtoBuf.Builder.Message.decode64
* @see ProtoBuf.Builder.Message.decodeHex
*/
Message.decode = function(buffer, length, enc) {
if (typeof length === 'string')
enc = length,
length = -1;
if (typeof buffer === 'string')
buffer = ByteBuffer.wrap(buffer, enc ? enc : "base64");
else if (!ByteBuffer.isByteBuffer(buffer))
buffer = ByteBuffer.wrap(buffer); // May throw
var le = buffer.littleEndian;
try {
var msg = T.decode(buffer.LE(), length);
buffer.LE(le);
return msg;
} catch (e) {
buffer.LE(le);
throw(e);
}
};
/**
* Decodes a varint32 length-delimited message from the specified buffer or string.
* @name ProtoBuf.Builder.Message.decodeDelimited
* @function
* @param {!ByteBuffer|!ArrayBuffer|!Buffer|string} buffer Buffer to decode from
* @param {string=} enc Encoding if buffer is a string: hex, utf8 (not recommended), defaults to base64
* @return {ProtoBuf.Builder.Message} Decoded message or `null` if not enough bytes are available yet
* @throws {Error} If the message cannot be decoded or if required fields are missing. The later still
* returns the decoded message with missing fields in the `decoded` property on the error.
* @expose
*/
Message.decodeDelimited = function(buffer, enc) {
if (typeof buffer === 'string')
buffer = ByteBuffer.wrap(buffer, enc ? enc : "base64");
else if (!ByteBuffer.isByteBuffer(buffer))
buffer = ByteBuffer.wrap(buffer); // May throw
if (buffer.remaining() < 1)
return null;
var off = buffer.offset,
len = buffer.readVarint32();
if (buffer.remaining() < len) {
buffer.offset = off;
return null;
}
try {
var msg = T.decode(buffer.slice(buffer.offset, buffer.offset + len).LE());
buffer.offset += len;
return msg;
} catch (err) {
buffer.offset += len;
throw err;
}
};
/**
* Decodes the message from the specified base64 encoded string.
* @name ProtoBuf.Builder.Message.decode64
* @function
* @param {string} str String to decode from
* @return {!ProtoBuf.Builder.Message} Decoded message
* @throws {Error} If the message cannot be decoded or if required fields are missing. The later still
* returns the decoded message with missing fields in the `decoded` property on the error.
* @expose
*/
Message.decode64 = function(str) {
return Message.decode(str, "base64");
};
/**
* Decodes the message from the specified hex encoded string.
* @name ProtoBuf.Builder.Message.decodeHex
* @function
* @param {string} str String to decode from
* @return {!ProtoBuf.Builder.Message} Decoded message
* @throws {Error} If the message cannot be decoded or if required fields are missing. The later still
* returns the decoded message with missing fields in the `decoded` property on the error.
* @expose
*/
Message.decodeHex = function(str) {
return Message.decode(str, "hex");
};
/**
* Decodes the message from a JSON string.
* @name ProtoBuf.Builder.Message.decodeJSON
* @function
* @param {string} str String to decode from
* @return {!ProtoBuf.Builder.Message} Decoded message
* @throws {Error} If the message cannot be decoded or if required fields are
* missing.
* @expose
*/
Message.decodeJSON = function(str) {
return new Message(JSON.parse(str));
};
// Utility
/**
* Returns a string representation of this Message.
* @name ProtoBuf.Builder.Message#toString
* @function
* @return {string} String representation as of ".Fully.Qualified.MessageName"
* @expose
*/
MessagePrototype.toString = function() {
return T.toString();
};
// Properties
/**
* Message options.
* @name ProtoBuf.Builder.Message.$options
* @type {Object.<string,*>}
* @expose
*/
var $optionsS; // cc needs this
/**
* Message options.
* @name ProtoBuf.Builder.Message#$options
* @type {Object.<string,*>}
* @expose
*/
var $options;
/**
* Reflection type.
* @name ProtoBuf.Builder.Message.$type
* @type {!ProtoBuf.Reflect.Message}
* @expose
*/
var $typeS;
/**
* Reflection type.
* @name ProtoBuf.Builder.Message#$type
* @type {!ProtoBuf.Reflect.Message}
* @expose
*/
var $type;
if (Object.defineProperty)
Object.defineProperty(Message, '$options', { "value": T.buildOpt() }),
Object.defineProperty(MessagePrototype, "$options", { "value": Message["$options"] }),
Object.defineProperty(Message, "$type", { "value": T }),
Object.defineProperty(MessagePrototype, "$type", { "value": T });
return Message;
})(ProtoBuf, this);
// Static enums and prototyped sub-messages / cached collections
this._fields = [];
this._fieldsById = {};
this._fieldsByName = {};
this._oneofsByName = {};
for (var i=0, k=this.children.length, child; i<k; i++) {
child = this.children[i];
if (child instanceof Enum || child instanceof Message || child instanceof Service) {
if (clazz.hasOwnProperty(child.name))
throw Error("Illegal reflect child of "+this.toString(true)+": "+child.toString(true)+" cannot override static property '"+child.name+"'");
clazz[child.name] = child.build();
} else if (child instanceof Message.Field)
child.build(),
this._fields.push(child),
this._fieldsById[child.id] = child,
this._fieldsByName[child.name] = child;
else if (child instanceof Message.OneOf) {
this._oneofsByName[child.name] = child;
}
else if (!(child instanceof Message.OneOf) && !(child instanceof Extension)) // Not built
throw Error("Illegal reflect child of "+this.toString(true)+": "+this.children[i].toString(true));
}
return this.clazz = clazz;
};
/**
* Encodes a runtime message's contents to the specified buffer.
* @param {!ProtoBuf.Builder.Message} message Runtime message to encode
* @param {ByteBuffer} buffer ByteBuffer to write to
* @param {boolean=} noVerify Whether to not verify field values, defaults to `false`
* @return {ByteBuffer} The ByteBuffer for chaining
* @throws {Error} If required fields are missing or the message cannot be encoded for another reason
* @expose
*/
MessagePrototype.encode = function(message, buffer, noVerify) {
var fieldMissing = null,
field;
for (var i=0, k=this._fields.length, val; i<k; ++i) {
field = this._fields[i];
val = message[field.name];
if (field.required && val === null) {
if (fieldMissing === null)
fieldMissing = field;
} else
field.encode(noVerify ? val : field.verifyValue(val), buffer, message);
}
if (fieldMissing !== null) {
var err = Error("Missing at least one required field for "+this.toString(true)+": "+fieldMissing);
err["encoded"] = buffer; // Still expose what we got
throw(err);
}
return buffer;
};
/**
* Calculates a runtime message's byte length.
* @param {!ProtoBuf.Builder.Message} message Runtime message to encode
* @returns {number} Byte length
* @throws {Error} If required fields are missing or the message cannot be calculated for another reason
* @expose
*/
MessagePrototype.calculate = function(message) {
for (var n=0, i=0, k=this._fields.length, field, val; i<k; ++i) {
field = this._fields[i];
val = message[field.name];
if (field.required && val === null)
throw Error("Missing at least one required field for "+this.toString(true)+": "+field);
else
n += field.calculate(val, message);
}
return n;
};
/**
* Skips all data until the end of the specified group has been reached.
* @param {number} expectedId Expected GROUPEND id
* @param {!ByteBuffer} buf ByteBuffer
* @returns {boolean} `true` if a value as been skipped, `false` if the end has been reached
* @throws {Error} If it wasn't possible to find the end of the group (buffer overrun or end tag mismatch)
* @inner
*/
function skipTillGroupEnd(expectedId, buf) {
var tag = buf.readVarint32(), // Throws on OOB
wireType = tag & 0x07,
id = tag >>> 3;
switch (wireType) {
case ProtoBuf.WIRE_TYPES.VARINT:
do tag = buf.readUint8();
while ((tag & 0x80) === 0x80);
break;
case ProtoBuf.WIRE_TYPES.BITS64:
buf.offset += 8;
break;
case ProtoBuf.WIRE_TYPES.LDELIM:
tag = buf.readVarint32(); // reads the varint
buf.offset += tag; // skips n bytes
break;
case ProtoBuf.WIRE_TYPES.STARTGROUP:
skipTillGroupEnd(id, buf);
break;
case ProtoBuf.WIRE_TYPES.ENDGROUP:
if (id === expectedId)
return false;
else
throw Error("Illegal GROUPEND after unknown group: "+id+" ("+expectedId+" expected)");
case ProtoBuf.WIRE_TYPES.BITS32:
buf.offset += 4;
break;
default:
throw Error("Illegal wire type in unknown group "+expectedId+": "+wireType);
}
return true;
}
/**
* Decodes an encoded message and returns the decoded message.
* @param {ByteBuffer} buffer ByteBuffer to decode from
* @param {number=} length Message length. Defaults to decode all remaining data.
* @param {number=} expectedGroupEndId Expected GROUPEND id if this is a legacy group
* @return {ProtoBuf.Builder.Message} Decoded message
* @throws {Error} If the message cannot be decoded
* @expose
*/
MessagePrototype.decode = function(buffer, length, expectedGroupEndId) {
if (typeof length !== 'number')
length = -1;
var start = buffer.offset,
msg = new (this.clazz)(),
tag, wireType, id, field;
while (buffer.offset < start+length || (length === -1 && buffer.remaining() > 0)) {
tag = buffer.readVarint32();
wireType = tag & 0x07;
id = tag >>> 3;
if (wireType === ProtoBuf.WIRE_TYPES.ENDGROUP) {
if (id !== expectedGroupEndId)
throw Error("Illegal group end indicator for "+this.toString(true)+": "+id+" ("+(expectedGroupEndId ? expectedGroupEndId+" expected" : "not a group")+")");
break;
}
if (!(field = this._fieldsById[id])) {
// "messages created by your new code can be parsed by your old code: old binaries simply ignore the new field when parsing."
switch (wireType) {
case ProtoBuf.WIRE_TYPES.VARINT:
buffer.readVarint32();
break;
case ProtoBuf.WIRE_TYPES.BITS32:
buffer.offset += 4;
break;
case ProtoBuf.WIRE_TYPES.BITS64:
buffer.offset += 8;
break;
case ProtoBuf.WIRE_TYPES.LDELIM:
var len = buffer.readVarint32();
buffer.offset += len;
break;
case ProtoBuf.WIRE_TYPES.STARTGROUP:
while (skipTillGroupEnd(id, buffer)) {}
break;
default:
throw Error("Illegal wire type for unknown field "+id+" in "+this.toString(true)+"#decode: "+wireType);
}
continue;
}
if (field.repeated && !field.options["packed"]) {
msg[field.name].push(field.decode(wireType, buffer));
} else if (field.map) {
var keyval = field.decode(wireType, buffer);
msg[field.name].set(keyval[0], keyval[1]);
} else {
msg[field.name] = field.decode(wireType, buffer);
if (field.oneof) { // Field is part of an OneOf (not a virtual OneOf field)
var currentField = msg[field.oneof.name]; // Virtual field references currently set field
if (currentField !== null && currentField !== field.name)
msg[currentField] = null; // Clear currently set field
msg[field.oneof.name] = field.name; // Point virtual field at this field
}
}
}
// Check if all required fields are present and set default values for optional fields that are not
for (var i=0, k=this._fields.length; i<k; ++i) {
field = this._fields[i];
if (msg[field.name] === null) {
if (this.syntax === "proto3") { // Proto3 sets default values by specification
msg[field.name] = field.defaultValue;
} else if (field.required) {
var err = Error("Missing at least one required field for " + this.toString(true) + ": " + field.name);
err["decoded"] = msg; // Still expose what we got
throw(err);
} else if (ProtoBuf.populateDefaults && field.defaultValue !== null)
msg[field.name] = field.defaultValue;
}
}
return msg;
};
/**
* @alias ProtoBuf.Reflect.Message
* @expose
*/
Reflect.Message = Message;
/**
* Constructs a new Message Field.
* @exports ProtoBuf.Reflect.Message.Field
* @param {!ProtoBuf.Builder} builder Builder reference
* @param {!ProtoBuf.Reflect.Message} message Message reference
* @param {string} rule Rule, one of requried, optional, repeated
* @param {string?} keytype Key data type, if any.
* @param {string} type Data type, e.g. int32
* @param {string} name Field name
* @param {number} id Unique field id
* @param {Object.<string,*>=} options Options
* @param {!ProtoBuf.Reflect.Message.OneOf=} oneof Enclosing OneOf
* @param {string?} syntax The syntax level of this definition (e.g., proto3)
* @constructor
* @extends ProtoBuf.Reflect.T
*/
var Field = function(builder, message, rule, keytype, type, name, id, options, oneof, syntax) {
T.call(this, builder, message, name);
/**
* @override
*/
this.className = "Message.Field";
/**
* Message field required flag.
* @type {boolean}
* @expose
*/
this.required = rule === "required";
/**
* Message field repeated flag.
* @type {boolean}
* @expose
*/
this.repeated = rule === "repeated";
/**
* Message field map flag.
* @type {boolean}
* @expose
*/
this.map = rule === "map";
/**
* Message field key type. Type reference string if unresolved, protobuf
* type if resolved. Valid only if this.map === true, null otherwise.
* @type {string|{name: string, wireType: number}|null}
* @expose
*/
this.keyType = keytype || null;
/**
* Message field type. Type reference string if unresolved, protobuf type if
* resolved. In a map field, this is the value type.
* @type {string|{name: string, wireType: number}}
* @expose
*/
this.type = type;
/**
* Resolved type reference inside the global namespace.
* @type {ProtoBuf.Reflect.T|null}
* @expose
*/
this.resolvedType = null;
/**
* Unique message field id.
* @type {number}
* @expose
*/
this.id = id;
/**
* Message field options.
* @type {!Object.<string,*>}
* @dict
* @expose
*/
this.options = options || {};
/**
* Default value.
* @type {*}
* @expose
*/
this.defaultValue = null;
/**
* Enclosing OneOf.
* @type {?ProtoBuf.Reflect.Message.OneOf}
* @expose
*/
this.oneof = oneof || null;
/**
* Syntax level of this definition (e.g., proto3).
* @type {string}
* @expose
*/
this.syntax = syntax || 'proto2';
/**
* Original field name.
* @type {string}
* @expose
*/
this.originalName = this.name; // Used to revert camelcase transformation on naming collisions
/**
* Element implementation. Created in build() after types are resolved.
* @type {ProtoBuf.Element}
* @expose
*/
this.element = null;
/**
* Key element implementation, for map fields. Created in build() after
* types are resolved.
* @type {ProtoBuf.Element}
* @expose
*/
this.keyElement = null;
// Convert field names to camel case notation if the override is set
if (this.builder.options['convertFieldsToCamelCase'] && !(this instanceof Message.ExtensionField))
this.name = ProtoBuf.Util.toCamelCase(this.name);
};
/**
* @alias ProtoBuf.Reflect.Message.Field.prototype
* @inner
*/
var FieldPrototype = Field.prototype = Object.create(T.prototype);
/**
* Builds the field.
* @override
* @expose
*/
FieldPrototype.build = function() {
this.element = new Element(this.type, this.resolvedType, false, this.syntax, this.name);
if (this.map)
this.keyElement = new Element(this.keyType, undefined, true, this.syntax, this.name);
// In proto3, fields do not have field presence, and every field is set to
// its type's default value ("", 0, 0.0, or false).
if (this.syntax === 'proto3' && !this.repeated && !this.map)
this.defaultValue = Element.defaultFieldValue(this.type);
// Otherwise, default values are present when explicitly specified
else if (typeof this.options['default'] !== 'undefined')
this.defaultValue = this.verifyValue(this.options['default']);
};
/**
* Checks if the given value can be set for this field.
* @param {*} value Value to check
* @param {boolean=} skipRepeated Whether to skip the repeated value check or not. Defaults to false.
* @return {*} Verified, maybe adjusted, value
* @throws {Error} If the value cannot be set for this field
* @expose
*/
FieldPrototype.verifyValue = function(value, skipRepeated) {
skipRepeated = skipRepeated || false;
var self = this;
function fail(val, msg) {
throw Error("Illegal value for "+self.toString(true)+" of type "+self.type.name+": "+val+" ("+msg+")");
}
if (value === null) { // NULL values for optional fields
if (this.required)
fail(typeof value, "required");
if (this.syntax === 'proto3' && this.type !== ProtoBuf.TYPES["message"])
fail(typeof value, "proto3 field without field presence cannot be null");
return null;
}
var i;
if (this.repeated && !skipRepeated) { // Repeated values as arrays
if (!Array.isArray(value))
value = [value];
var res = [];
for (i=0; i<value.length; i++)
res.push(this.element.verifyValue(value[i]));
return res;
}
if (this.map && !skipRepeated) { // Map values as objects
if (!(value instanceof ProtoBuf.Map)) {
// If not already a Map, attempt to convert.
if (!(value instanceof Object)) {
fail(typeof value,
"expected ProtoBuf.Map or raw object for map field");
}
return new ProtoBuf.Map(this, value);
} else {
return value;
}
}
// All non-repeated fields expect no array
if (!this.repeated && Array.isArray(value))
fail(typeof value, "no array expected");
return this.element.verifyValue(value);
};
/**
* Determines whether the field will have a presence on the wire given its
* value.
* @param {*} value Verified field value
* @param {!ProtoBuf.Builder.Message} message Runtime message
* @return {boolean} Whether the field will be present on the wire
*/
FieldPrototype.hasWirePresence = function(value, message) {
if (this.syntax !== 'proto3')
return (value !== null);
if (this.oneof && message[this.oneof.name] === this.name)
return true;
switch (this.type) {
case ProtoBuf.TYPES["int32"]:
case ProtoBuf.TYPES["sint32"]:
case ProtoBuf.TYPES["sfixed32"]:
case ProtoBuf.TYPES["uint32"]:
case ProtoBuf.TYPES["fixed32"]:
return value !== 0;
case ProtoBuf.TYPES["int64"]:
case ProtoBuf.TYPES["sint64"]:
case ProtoBuf.TYPES["sfixed64"]:
case ProtoBuf.TYPES["uint64"]:
case ProtoBuf.TYPES["fixed64"]:
return value.low !== 0 || value.high !== 0;
case ProtoBuf.TYPES["bool"]:
return value;
case ProtoBuf.TYPES["float"]:
case ProtoBuf.TYPES["double"]:
return value !== 0.0;
case ProtoBuf.TYPES["string"]:
return value.length > 0;
case ProtoBuf.TYPES["bytes"]:
return value.remaining() > 0;
case ProtoBuf.TYPES["enum"]:
return value !== 0;
case ProtoBuf.TYPES["message"]:
return value !== null;
default:
return true;
}
};
/**
* Encodes the specified field value to the specified buffer.
* @param {*} value Verified field value
* @param {ByteBuffer} buffer ByteBuffer to encode to
* @param {!ProtoBuf.Builder.Message} message Runtime message
* @return {ByteBuffer} The ByteBuffer for chaining
* @throws {Error} If the field cannot be encoded
* @expose
*/
FieldPrototype.encode = function(value, buffer, message) {
if (this.type === null || typeof this.type !== 'object')
throw Error("[INTERNAL] Unresolved type in "+this.toString(true)+": "+this.type);
if (value === null || (this.repeated && value.length == 0))
return buffer; // Optional omitted
try {
if (this.repeated) {
var i;
// "Only repeated fields of primitive numeric types (types which use the varint, 32-bit, or 64-bit wire
// types) can be declared 'packed'."
if (this.options["packed"] && ProtoBuf.PACKABLE_WIRE_TYPES.indexOf(this.type.wireType) >= 0) {
// "All of the elements of the field are packed into a single key-value pair with wire type 2
// (length-delimited). Each element is encoded the same way it would be normally, except without a
// tag preceding it."
buffer.writeVarint32((this.id << 3) | ProtoBuf.WIRE_TYPES.LDELIM);
buffer.ensureCapacity(buffer.offset += 1); // We do not know the length yet, so let's assume a varint of length 1
var start = buffer.offset; // Remember where the contents begin
for (i=0; i<value.length; i++)
this.element.encodeValue(this.id, value[i], buffer);
var len = buffer.offset-start,
varintLen = ByteBuffer.calculateVarint32(len);
if (varintLen > 1) { // We need to move the contents
var contents = buffer.slice(start, buffer.offset);
start += varintLen-1;
buffer.offset = start;
buffer.append(contents);
}
buffer.writeVarint32(len, start-varintLen);
} else {
// "If your message definition has repeated elements (without the [packed=true] option), the encoded
// message has zero or more key-value pairs with the same tag number"
for (i=0; i<value.length; i++)
buffer.writeVarint32((this.id << 3) | this.type.wireType),
this.element.encodeValue(this.id, value[i], buffer);
}
} else if (this.map) {
// Write out each map entry as a submessage.
value.forEach(function(val, key, m) {
// Compute the length of the submessage (key, val) pair.
var length =
ByteBuffer.calculateVarint32((1 << 3) | this.keyType.wireType) +
this.keyElement.calculateLength(1, key) +
ByteBuffer.calculateVarint32((2 << 3) | this.type.wireType) +
this.element.calculateLength(2, val);
// Submessage with wire type of length-delimited.
buffer.writeVarint32((this.id << 3) | ProtoBuf.WIRE_TYPES.LDELIM);
buffer.writeVarint32(length);
// Write out the key and val.
buffer.writeVarint32((1 << 3) | this.keyType.wireType);
this.keyElement.encodeValue(1, key, buffer);
buffer.writeVarint32((2 << 3) | this.type.wireType);
this.element.encodeValue(2, val, buffer);
}, this);
} else {
if (this.hasWirePresence(value, message)) {
buffer.writeVarint32((this.id << 3) | this.type.wireType);
this.element.encodeValue(this.id, value, buffer);
}
}
} catch (e) {
throw Error("Illegal value for "+this.toString(true)+": "+value+" ("+e+")");
}
return buffer;
};
/**
* Calculates the length of this field's value on the network level.
* @param {*} value Field value
* @param {!ProtoBuf.Builder.Message} message Runtime message
* @returns {number} Byte length
* @expose
*/
FieldPrototype.calculate = function(value, message) {
value = this.verifyValue(value); // May throw
if (this.type === null || typeof this.type !== 'object')
throw Error("[INTERNAL] Unresolved type in "+this.toString(true)+": "+this.type);
if (value === null || (this.repeated && value.length == 0))
return 0; // Optional omitted
var n = 0;
try {
if (this.repeated) {
var i, ni;
if (this.options["packed"] && ProtoBuf.PACKABLE_WIRE_TYPES.indexOf(this.type.wireType) >= 0) {
n += ByteBuffer.calculateVarint32((this.id << 3) | ProtoBuf.WIRE_TYPES.LDELIM);
ni = 0;
for (i=0; i<value.length; i++)
ni += this.element.calculateLength(this.id, value[i]);
n += ByteBuffer.calculateVarint32(ni);
n += ni;
} else {
for (i=0; i<value.length; i++)
n += ByteBuffer.calculateVarint32((this.id << 3) | this.type.wireType),
n += this.element.calculateLength(this.id, value[i]);
}
} else if (this.map) {
// Each map entry becomes a submessage.
value.forEach(function(val, key, m) {
// Compute the length of the submessage (key, val) pair.
var length =
ByteBuffer.calculateVarint32((1 << 3) | this.keyType.wireType) +
this.keyElement.calculateLength(1, key) +
ByteBuffer.calculateVarint32((2 << 3) | this.type.wireType) +
this.element.calculateLength(2, val);
n += ByteBuffer.calculateVarint32((this.id << 3) | ProtoBuf.WIRE_TYPES.LDELIM);
n += ByteBuffer.calculateVarint32(length);
n += length;
}, this);
} else {
if (this.hasWirePresence(value, message)) {
n += ByteBuffer.calculateVarint32((this.id << 3) | this.type.wireType);
n += this.element.calculateLength(this.id, value);
}
}
} catch (e) {
throw Error("Illegal value for "+this.toString(true)+": "+value+" ("+e+")");
}
return n;
};
/**
* Decode the field value from the specified buffer.
* @param {number} wireType Leading wire type
* @param {ByteBuffer} buffer ByteBuffer to decode from
* @param {boolean=} skipRepeated Whether to skip the repeated check or not. Defaults to false.
* @return {*} Decoded value: array for packed repeated fields, [key, value] for
* map fields, or an individual value otherwise.
* @throws {Error} If the field cannot be decoded
* @expose
*/
FieldPrototype.decode = function(wireType, buffer, skipRepeated) {
var value, nBytes;
// We expect wireType to match the underlying type's wireType unless we see
// a packed repeated field, or unless this is a map field.
var wireTypeOK =
(!this.map && wireType == this.type.wireType) ||
(!skipRepeated && this.repeated && this.options["packed"] &&
wireType == ProtoBuf.WIRE_TYPES.LDELIM) ||
(this.map && wireType == ProtoBuf.WIRE_TYPES.LDELIM);
if (!wireTypeOK)
throw Error("Illegal wire type for field "+this.toString(true)+": "+wireType+" ("+this.type.wireType+" expected)");
// Handle packed repeated fields.
if (wireType == ProtoBuf.WIRE_TYPES.LDELIM && this.repeated && this.options["packed"] && ProtoBuf.PACKABLE_WIRE_TYPES.indexOf(this.type.wireType) >= 0) {
if (!skipRepeated) {
nBytes = buffer.readVarint32();
nBytes = buffer.offset + nBytes; // Limit
var values = [];
while (buffer.offset < nBytes)
values.push(this.decode(this.type.wireType, buffer, true));
return values;
}
// Read the next value otherwise...
}
// Handle maps.
if (this.map) {
// Read one (key, value) submessage, and return [key, value]
var key = Element.defaultFieldValue(this.keyType);
value = Element.defaultFieldValue(this.type);
// Read the length
nBytes = buffer.readVarint32();
if (buffer.remaining() < nBytes)
throw Error("Illegal number of bytes for "+this.toString(true)+": "+nBytes+" required but got only "+buffer.remaining());
// Get a sub-buffer of this key/value submessage
var msgbuf = buffer.clone();
msgbuf.limit = msgbuf.offset + nBytes;
buffer.offset += nBytes;
while (msgbuf.remaining() > 0) {
var tag = msgbuf.readVarint32();
wireType = tag & 0x07;
var id = tag >>> 3;
if (id === 1) {
key = this.keyElement.decode(msgbuf, wireType, id);
} else if (id === 2) {
value = this.element.decode(msgbuf, wireType, id);
} else {
throw Error("Unexpected tag in map field key/value submessage");
}
}
return [key, value];
}
// Handle singular and non-packed repeated field values.
return this.element.decode(buffer, wireType, this.id);
};
/**
* @alias ProtoBuf.Reflect.Message.Field
* @expose
*/
Reflect.Message.Field = Field;
/**
* Constructs a new Message ExtensionField.
* @exports ProtoBuf.Reflect.Message.ExtensionField
* @param {!ProtoBuf.Builder} builder Builder reference
* @param {!ProtoBuf.Reflect.Message} message Message reference
* @param {string} rule Rule, one of requried, optional, repeated
* @param {string} type Data type, e.g. int32
* @param {string} name Field name
* @param {number} id Unique field id
* @param {!Object.<string,*>=} options Options
* @constructor
* @extends ProtoBuf.Reflect.Message.Field
*/
var ExtensionField = function(builder, message, rule, type, name, id, options) {
Field.call(this, builder, message, rule, /* keytype = */ null, type, name, id, options);
/**
* Extension reference.
* @type {!ProtoBuf.Reflect.Extension}
* @expose
*/
this.extension;
};
// Extends Field
ExtensionField.prototype = Object.create(Field.prototype);
/**
* @alias ProtoBuf.Reflect.Message.ExtensionField
* @expose
*/
Reflect.Message.ExtensionField = ExtensionField;
/**
* Constructs a new Message OneOf.
* @exports ProtoBuf.Reflect.Message.OneOf
* @param {!ProtoBuf.Builder} builder Builder reference
* @param {!ProtoBuf.Reflect.Message} message Message reference
* @param {string} name OneOf name
* @constructor
* @extends ProtoBuf.Reflect.T
*/
var OneOf = function(builder, message, name) {
T.call(this, builder, message, name);
/**
* Enclosed fields.
* @type {!Array.<!ProtoBuf.Reflect.Message.Field>}
* @expose
*/
this.fields = [];
};
/**
* @alias ProtoBuf.Reflect.Message.OneOf
* @expose
*/
Reflect.Message.OneOf = OneOf;
/**
* Constructs a new Enum.
* @exports ProtoBuf.Reflect.Enum
* @param {!ProtoBuf.Builder} builder Builder reference
* @param {!ProtoBuf.Reflect.T} parent Parent Reflect object
* @param {string} name Enum name
* @param {Object.<string,*>=} options Enum options
* @param {string?} syntax The syntax level (e.g., proto3)
* @constructor
* @extends ProtoBuf.Reflect.Namespace
*/
var Enum = function(builder, parent, name, options, syntax) {
Namespace.call(this, builder, parent, name, options, syntax);
/**
* @override
*/
this.className = "Enum";
/**
* Runtime enum object.
* @type {Object.<string,number>|null}
* @expose
*/
this.object = null;
};
/**
* Gets the string name of an enum value.
* @param {!ProtoBuf.Builder.Enum} enm Runtime enum
* @param {number} value Enum value
* @returns {?string} Name or `null` if not present
* @expose
*/
Enum.getName = function(enm, value) {
var keys = Object.keys(enm);
for (var i=0, key; i<keys.length; ++i)
if (enm[key = keys[i]] === value)
return key;
return null;
};
/**
* @alias ProtoBuf.Reflect.Enum.prototype
* @inner
*/
var EnumPrototype = Enum.prototype = Object.create(Namespace.prototype);
/**
* Builds this enum and returns the runtime counterpart.
* @param {boolean} rebuild Whether to rebuild or not, defaults to false
* @returns {!Object.<string,number>}
* @expose
*/
EnumPrototype.build = function(rebuild) {
if (this.object && !rebuild)
return this.object;
var enm = new ProtoBuf.Builder.Enum(),
values = this.getChildren(Enum.Value);
for (var i=0, k=values.length; i<k; ++i)
enm[values[i]['name']] = values[i]['id'];
if (Object.defineProperty)
Object.defineProperty(enm, '$options', {
"value": this.buildOpt(),
"enumerable": false
});
return this.object = enm;
};
/**
* @alias ProtoBuf.Reflect.Enum
* @expose
*/
Reflect.Enum = Enum;
/**
* Constructs a new Enum Value.
* @exports ProtoBuf.Reflect.Enum.Value
* @param {!ProtoBuf.Builder} builder Builder reference
* @param {!ProtoBuf.Reflect.Enum} enm Enum reference
* @param {string} name Field name
* @param {number} id Unique field id
* @constructor
* @extends ProtoBuf.Reflect.T
*/
var Value = function(builder, enm, name, id) {
T.call(this, builder, enm, name);
/**
* @override
*/
this.className = "Enum.Value";
/**
* Unique enum value id.
* @type {number}
* @expose
*/
this.id = id;
};
// Extends T
Value.prototype = Object.create(T.prototype);
/**
* @alias ProtoBuf.Reflect.Enum.Value
* @expose
*/
Reflect.Enum.Value = Value;
/**
* An extension (field).
* @exports ProtoBuf.Reflect.Extension
* @constructor
* @param {!ProtoBuf.Builder} builder Builder reference
* @param {!ProtoBuf.Reflect.T} parent Parent object
* @param {string} name Object name
* @param {!ProtoBuf.Reflect.Message.Field} field Extension field
*/
var Extension = function(builder, parent, name, field) {
T.call(this, builder, parent, name);
/**
* Extended message field.
* @type {!ProtoBuf.Reflect.Message.Field}
* @expose
*/
this.field = field;
};
// Extends T
Extension.prototype = Object.create(T.prototype);
/**
* @alias ProtoBuf.Reflect.Extension
* @expose
*/
Reflect.Extension = Extension;
/**
* Constructs a new Service.
* @exports ProtoBuf.Reflect.Service
* @param {!ProtoBuf.Builder} builder Builder reference
* @param {!ProtoBuf.Reflect.Namespace} root Root
* @param {string} name Service name
* @param {Object.<string,*>=} options Options
* @constructor
* @extends ProtoBuf.Reflect.Namespace
*/
var Service = function(builder, root, name, options) {
Namespace.call(this, builder, root, name, options);
/**
* @override
*/
this.className = "Service";
/**
* Built runtime service class.
* @type {?function(new:ProtoBuf.Builder.Service)}
*/
this.clazz = null;
};
/**
* @alias ProtoBuf.Reflect.Service.prototype
* @inner
*/
var ServicePrototype = Service.prototype = Object.create(Namespace.prototype);
/**
* Builds the service and returns the runtime counterpart, which is a fully functional class.
* @see ProtoBuf.Builder.Service
* @param {boolean=} rebuild Whether to rebuild or not
* @return {Function} Service class
* @throws {Error} If the message cannot be built
* @expose
*/
ServicePrototype.build = function(rebuild) {
if (this.clazz && !rebuild)
return this.clazz;
// Create the runtime Service class in its own scope
return this.clazz = (function(ProtoBuf, T) {
/**
* Constructs a new runtime Service.
* @name ProtoBuf.Builder.Service
* @param {function(string, ProtoBuf.Builder.Message, function(Error, ProtoBuf.Builder.Message=))=} rpcImpl RPC implementation receiving the method name and the message
* @class Barebone of all runtime services.
* @constructor
* @throws {Error} If the service cannot be created
*/
var Service = function(rpcImpl) {
ProtoBuf.Builder.Service.call(this);
/**
* Service implementation.
* @name ProtoBuf.Builder.Service#rpcImpl
* @type {!function(string, ProtoBuf.Builder.Message, function(Error, ProtoBuf.Builder.Message=))}
* @expose
*/
this.rpcImpl = rpcImpl || function(name, msg, callback) {
// This is what a user has to implement: A function receiving the method name, the actual message to
// send (type checked) and the callback that's either provided with the error as its first
// argument or null and the actual response message.
setTimeout(callback.bind(this, Error("Not implemented, see: https://github.com/dcodeIO/ProtoBuf.js/wiki/Services")), 0); // Must be async!
};
};
/**
* @alias ProtoBuf.Builder.Service.prototype
* @inner
*/
var ServicePrototype = Service.prototype = Object.create(ProtoBuf.Builder.Service.prototype);
/**
* Asynchronously performs an RPC call using the given RPC implementation.
* @name ProtoBuf.Builder.Service.[Method]
* @function
* @param {!function(string, ProtoBuf.Builder.Message, function(Error, ProtoBuf.Builder.Message=))} rpcImpl RPC implementation
* @param {ProtoBuf.Builder.Message} req Request
* @param {function(Error, (ProtoBuf.Builder.Message|ByteBuffer|Buffer|string)=)} callback Callback receiving
* the error if any and the response either as a pre-parsed message or as its raw bytes
* @abstract
*/
/**
* Asynchronously performs an RPC call using the instance's RPC implementation.
* @name ProtoBuf.Builder.Service#[Method]
* @function
* @param {ProtoBuf.Builder.Message} req Request
* @param {function(Error, (ProtoBuf.Builder.Message|ByteBuffer|Buffer|string)=)} callback Callback receiving
* the error if any and the response either as a pre-parsed message or as its raw bytes
* @abstract
*/
var rpc = T.getChildren(ProtoBuf.Reflect.Service.RPCMethod);
for (var i=0; i<rpc.length; i++) {
(function(method) {
// service#Method(message, callback)
ServicePrototype[method.name] = function(req, callback) {
try {
try {
// If given as a buffer, decode the request. Will throw a TypeError if not a valid buffer.
req = method.resolvedRequestType.clazz.decode(ByteBuffer.wrap(req));
} catch (err) {
if (!(err instanceof TypeError))
throw err;
}
if (req === null || typeof req !== 'object')
throw Error("Illegal arguments");
if (!(req instanceof method.resolvedRequestType.clazz))
req = new method.resolvedRequestType.clazz(req);
this.rpcImpl(method.fqn(), req, function(err, res) { // Assumes that this is properly async
if (err) {
callback(err);
return;
}
// Coalesce to empty string when service response has empty content
if (res === null)
res = ''
try { res = method.resolvedResponseType.clazz.decode(res); } catch (notABuffer) {}
if (!res || !(res instanceof method.resolvedResponseType.clazz)) {
callback(Error("Illegal response type received in service method "+ T.name+"#"+method.name));
return;
}
callback(null, res);
});
} catch (err) {
setTimeout(callback.bind(this, err), 0);
}
};
// Service.Method(rpcImpl, message, callback)
Service[method.name] = function(rpcImpl, req, callback) {
new Service(rpcImpl)[method.name](req, callback);
};
if (Object.defineProperty)
Object.defineProperty(Service[method.name], "$options", { "value": method.buildOpt() }),
Object.defineProperty(ServicePrototype[method.name], "$options", { "value": Service[method.name]["$options"] });
})(rpc[i]);
}
// Properties
/**
* Service options.
* @name ProtoBuf.Builder.Service.$options
* @type {Object.<string,*>}
* @expose
*/
var $optionsS; // cc needs this
/**
* Service options.
* @name ProtoBuf.Builder.Service#$options
* @type {Object.<string,*>}
* @expose
*/
var $options;
/**
* Reflection type.
* @name ProtoBuf.Builder.Service.$type
* @type {!ProtoBuf.Reflect.Service}
* @expose
*/
var $typeS;
/**
* Reflection type.
* @name ProtoBuf.Builder.Service#$type
* @type {!ProtoBuf.Reflect.Service}
* @expose
*/
var $type;
if (Object.defineProperty)
Object.defineProperty(Service, "$options", { "value": T.buildOpt() }),
Object.defineProperty(ServicePrototype, "$options", { "value": Service["$options"] }),
Object.defineProperty(Service, "$type", { "value": T }),
Object.defineProperty(ServicePrototype, "$type", { "value": T });
return Service;
})(ProtoBuf, this);
};
/**
* @alias ProtoBuf.Reflect.Service
* @expose
*/
Reflect.Service = Service;
/**
* Abstract service method.
* @exports ProtoBuf.Reflect.Service.Method
* @param {!ProtoBuf.Builder} builder Builder reference
* @param {!ProtoBuf.Reflect.Service} svc Service
* @param {string} name Method name
* @param {Object.<string,*>=} options Options
* @constructor
* @extends ProtoBuf.Reflect.T
*/
var Method = function(builder, svc, name, options) {
T.call(this, builder, svc, name);
/**
* @override
*/
this.className = "Service.Method";
/**
* Options.
* @type {Object.<string, *>}
* @expose
*/
this.options = options || {};
};
/**
* @alias ProtoBuf.Reflect.Service.Method.prototype
* @inner
*/
var MethodPrototype = Method.prototype = Object.create(T.prototype);
/**
* Builds the method's '$options' property.
* @name ProtoBuf.Reflect.Service.Method#buildOpt
* @function
* @return {Object.<string,*>}
*/
MethodPrototype.buildOpt = NamespacePrototype.buildOpt;
/**
* @alias ProtoBuf.Reflect.Service.Method
* @expose
*/
Reflect.Service.Method = Method;
/**
* RPC service method.
* @exports ProtoBuf.Reflect.Service.RPCMethod
* @param {!ProtoBuf.Builder} builder Builder reference
* @param {!ProtoBuf.Reflect.Service} svc Service
* @param {string} name Method name
* @param {string} request Request message name
* @param {string} response Response message name
* @param {boolean} request_stream Whether requests are streamed
* @param {boolean} response_stream Whether responses are streamed
* @param {Object.<string,*>=} options Options
* @constructor
* @extends ProtoBuf.Reflect.Service.Method
*/
var RPCMethod = function(builder, svc, name, request, response, request_stream, response_stream, options) {
Method.call(this, builder, svc, name, options);
/**
* @override
*/
this.className = "Service.RPCMethod";
/**
* Request message name.
* @type {string}
* @expose
*/
this.requestName = request;
/**
* Response message name.
* @type {string}
* @expose
*/
this.responseName = response;
/**
* Whether requests are streamed
* @type {bool}
* @expose
*/
this.requestStream = request_stream;
/**
* Whether responses are streamed
* @type {bool}
* @expose
*/
this.responseStream = response_stream;
/**
* Resolved request message type.
* @type {ProtoBuf.Reflect.Message}
* @expose
*/
this.resolvedRequestType = null;
/**
* Resolved response message type.
* @type {ProtoBuf.Reflect.Message}
* @expose
*/
this.resolvedResponseType = null;
};
// Extends Method
RPCMethod.prototype = Object.create(Method.prototype);
/**
* @alias ProtoBuf.Reflect.Service.RPCMethod
* @expose
*/
Reflect.Service.RPCMethod = RPCMethod;
return Reflect;
})(ProtoBuf);
/**
* @alias ProtoBuf.Builder
* @expose
*/
ProtoBuf.Builder = (function(ProtoBuf, Lang, Reflect) {
"use strict";
/**
* Constructs a new Builder.
* @exports ProtoBuf.Builder
* @class Provides the functionality to build protocol messages.
* @param {Object.<string,*>=} options Options
* @constructor
*/
var Builder = function(options) {
/**
* Namespace.
* @type {ProtoBuf.Reflect.Namespace}
* @expose
*/
this.ns = new Reflect.Namespace(this, null, ""); // Global namespace
/**
* Namespace pointer.
* @type {ProtoBuf.Reflect.T}
* @expose
*/
this.ptr = this.ns;
/**
* Resolved flag.
* @type {boolean}
* @expose
*/
this.resolved = false;
/**
* The current building result.
* @type {Object.<string,ProtoBuf.Builder.Message|Object>|null}
* @expose
*/
this.result = null;
/**
* Imported files.
* @type {Array.<string>}
* @expose
*/
this.files = {};
/**
* Import root override.
* @type {?string}
* @expose
*/
this.importRoot = null;
/**
* Options.
* @type {!Object.<string, *>}
* @expose
*/
this.options = options || {};
};
/**
* @alias ProtoBuf.Builder.prototype
* @inner
*/
var BuilderPrototype = Builder.prototype;
// ----- Definition tests -----
/**
* Tests if a definition most likely describes a message.
* @param {!Object} def
* @returns {boolean}
* @expose
*/
Builder.isMessage = function(def) {
// Messages require a string name
if (typeof def["name"] !== 'string')
return false;
// Messages do not contain values (enum) or rpc methods (service)
if (typeof def["values"] !== 'undefined' || typeof def["rpc"] !== 'undefined')
return false;
return true;
};
/**
* Tests if a definition most likely describes a message field.
* @param {!Object} def
* @returns {boolean}
* @expose
*/
Builder.isMessageField = function(def) {
// Message fields require a string rule, name and type and an id
if (typeof def["rule"] !== 'string' || typeof def["name"] !== 'string' || typeof def["type"] !== 'string' || typeof def["id"] === 'undefined')
return false;
return true;
};
/**
* Tests if a definition most likely describes an enum.
* @param {!Object} def
* @returns {boolean}
* @expose
*/
Builder.isEnum = function(def) {
// Enums require a string name
if (typeof def["name"] !== 'string')
return false;
// Enums require at least one value
if (typeof def["values"] === 'undefined' || !Array.isArray(def["values"]) || def["values"].length === 0)
return false;
return true;
};
/**
* Tests if a definition most likely describes a service.
* @param {!Object} def
* @returns {boolean}
* @expose
*/
Builder.isService = function(def) {
// Services require a string name and an rpc object
if (typeof def["name"] !== 'string' || typeof def["rpc"] !== 'object' || !def["rpc"])
return false;
return true;
};
/**
* Tests if a definition most likely describes an extended message
* @param {!Object} def
* @returns {boolean}
* @expose
*/
Builder.isExtend = function(def) {
// Extends rquire a string ref
if (typeof def["ref"] !== 'string')
return false;
return true;
};
// ----- Building -----
/**
* Resets the pointer to the root namespace.
* @returns {!ProtoBuf.Builder} this
* @expose
*/
BuilderPrototype.reset = function() {
this.ptr = this.ns;
return this;
};
/**
* Defines a namespace on top of the current pointer position and places the pointer on it.
* @param {string} namespace
* @return {!ProtoBuf.Builder} this
* @expose
*/
BuilderPrototype.define = function(namespace) {
if (typeof namespace !== 'string' || !Lang.TYPEREF.test(namespace))
throw Error("illegal namespace: "+namespace);
namespace.split(".").forEach(function(part) {
var ns = this.ptr.getChild(part);
if (ns === null) // Keep existing
this.ptr.addChild(ns = new Reflect.Namespace(this, this.ptr, part));
this.ptr = ns;
}, this);
return this;
};
/**
* Creates the specified definitions at the current pointer position.
* @param {!Array.<!Object>} defs Messages, enums or services to create
* @returns {!ProtoBuf.Builder} this
* @throws {Error} If a message definition is invalid
* @expose
*/
BuilderPrototype.create = function(defs) {
if (!defs)
return this; // Nothing to create
if (!Array.isArray(defs))
defs = [defs];
else {
if (defs.length === 0)
return this;
defs = defs.slice();
}
// It's quite hard to keep track of scopes and memory here, so let's do this iteratively.
var stack = [defs];
while (stack.length > 0) {
defs = stack.pop();
if (!Array.isArray(defs)) // Stack always contains entire namespaces
throw Error("not a valid namespace: "+JSON.stringify(defs));
while (defs.length > 0) {
var def = defs.shift(); // Namespaces always contain an array of messages, enums and services
if (Builder.isMessage(def)) {
var obj = new Reflect.Message(this, this.ptr, def["name"], def["options"], def["isGroup"], def["syntax"]);
// Create OneOfs
var oneofs = {};
if (def["oneofs"])
Object.keys(def["oneofs"]).forEach(function(name) {
obj.addChild(oneofs[name] = new Reflect.Message.OneOf(this, obj, name));
}, this);
// Create fields
if (def["fields"])
def["fields"].forEach(function(fld) {
if (obj.getChild(fld["id"]|0) !== null)
throw Error("duplicate or invalid field id in "+obj.name+": "+fld['id']);
if (fld["options"] && typeof fld["options"] !== 'object')
throw Error("illegal field options in "+obj.name+"#"+fld["name"]);
var oneof = null;
if (typeof fld["oneof"] === 'string' && !(oneof = oneofs[fld["oneof"]]))
throw Error("illegal oneof in "+obj.name+"#"+fld["name"]+": "+fld["oneof"]);
fld = new Reflect.Message.Field(this, obj, fld["rule"], fld["keytype"], fld["type"], fld["name"], fld["id"], fld["options"], oneof, def["syntax"]);
if (oneof)
oneof.fields.push(fld);
obj.addChild(fld);
}, this);
// Push children to stack
var subObj = [];
if (def["enums"])
def["enums"].forEach(function(enm) {
subObj.push(enm);
});
if (def["messages"])
def["messages"].forEach(function(msg) {
subObj.push(msg);
});
if (def["services"])
def["services"].forEach(function(svc) {
subObj.push(svc);
});
// Set extension ranges
if (def["extensions"]) {
if (typeof def["extensions"][0] === 'number') // pre 5.0.1
obj.extensions = [ def["extensions"] ];
else
obj.extensions = def["extensions"];
}
// Create on top of current namespace
this.ptr.addChild(obj);
if (subObj.length > 0) {
stack.push(defs); // Push the current level back
defs = subObj; // Continue processing sub level
subObj = null;
this.ptr = obj; // And move the pointer to this namespace
obj = null;
continue;
}
subObj = null;
} else if (Builder.isEnum(def)) {
obj = new Reflect.Enum(this, this.ptr, def["name"], def["options"], def["syntax"]);
def["values"].forEach(function(val) {
obj.addChild(new Reflect.Enum.Value(this, obj, val["name"], val["id"]));
}, this);
this.ptr.addChild(obj);
} else if (Builder.isService(def)) {
obj = new Reflect.Service(this, this.ptr, def["name"], def["options"]);
Object.keys(def["rpc"]).forEach(function(name) {
var mtd = def["rpc"][name];
obj.addChild(new Reflect.Service.RPCMethod(this, obj, name, mtd["request"], mtd["response"], !!mtd["request_stream"], !!mtd["response_stream"], mtd["options"]));
}, this);
this.ptr.addChild(obj);
} else if (Builder.isExtend(def)) {
obj = this.ptr.resolve(def["ref"], true);
if (obj) {
def["fields"].forEach(function(fld) {
if (obj.getChild(fld['id']|0) !== null)
throw Error("duplicate extended field id in "+obj.name+": "+fld['id']);
// Check if field id is allowed to be extended
if (obj.extensions) {
var valid = false;
obj.extensions.forEach(function(range) {
if (fld["id"] >= range[0] && fld["id"] <= range[1])
valid = true;
});
if (!valid)
throw Error("illegal extended field id in "+obj.name+": "+fld['id']+" (not within valid ranges)");
}
// Convert extension field names to camel case notation if the override is set
var name = fld["name"];
if (this.options['convertFieldsToCamelCase'])
name = ProtoBuf.Util.toCamelCase(name);
// see #161: Extensions use their fully qualified name as their runtime key and...
var field = new Reflect.Message.ExtensionField(this, obj, fld["rule"], fld["type"], this.ptr.fqn()+'.'+name, fld["id"], fld["options"]);
// ...are added on top of the current namespace as an extension which is used for
// resolving their type later on (the extension always keeps the original name to
// prevent naming collisions)
var ext = new Reflect.Extension(this, this.ptr, fld["name"], field);
field.extension = ext;
this.ptr.addChild(ext);
obj.addChild(field);
}, this);
} else if (!/\.?google\.protobuf\./.test(def["ref"])) // Silently skip internal extensions
throw Error("extended message "+def["ref"]+" is not defined");
} else
throw Error("not a valid definition: "+JSON.stringify(def));
def = null;
obj = null;
}
// Break goes here
defs = null;
this.ptr = this.ptr.parent; // Namespace done, continue at parent
}
this.resolved = false; // Require re-resolve
this.result = null; // Require re-build
return this;
};
/**
* Propagates syntax to all children.
* @param {!Object} parent
* @inner
*/
function propagateSyntax(parent) {
if (parent['messages']) {
parent['messages'].forEach(function(child) {
child["syntax"] = parent["syntax"];
propagateSyntax(child);
});
}
if (parent['enums']) {
parent['enums'].forEach(function(child) {
child["syntax"] = parent["syntax"];
});
}
}
/**
* Imports another definition into this builder.
* @param {Object.<string,*>} json Parsed import
* @param {(string|{root: string, file: string})=} filename Imported file name
* @returns {!ProtoBuf.Builder} this
* @throws {Error} If the definition or file cannot be imported
* @expose
*/
BuilderPrototype["import"] = function(json, filename) {
var delim = '/';
// Make sure to skip duplicate imports
if (typeof filename === 'string') {
if (ProtoBuf.Util.IS_NODE)
filename = __webpack_require__(134)['resolve'](filename);
if (this.files[filename] === true)
return this.reset();
this.files[filename] = true;
} else if (typeof filename === 'object') { // Object with root, file.
var root = filename.root;
if (ProtoBuf.Util.IS_NODE)
root = __webpack_require__(134)['resolve'](root);
if (root.indexOf("\\") >= 0 || filename.file.indexOf("\\") >= 0)
delim = '\\';
var fname;
if (ProtoBuf.Util.IS_NODE)
fname = __webpack_require__(134)['join'](root, filename.file);
else
fname = root + delim + filename.file;
if (this.files[fname] === true)
return this.reset();
this.files[fname] = true;
}
// Import imports
if (json['imports'] && json['imports'].length > 0) {
var importRoot,
resetRoot = false;
if (typeof filename === 'object') { // If an import root is specified, override
this.importRoot = filename["root"]; resetRoot = true; // ... and reset afterwards
importRoot = this.importRoot;
filename = filename["file"];
if (importRoot.indexOf("\\") >= 0 || filename.indexOf("\\") >= 0)
delim = '\\';
} else if (typeof filename === 'string') {
if (this.importRoot) // If import root is overridden, use it
importRoot = this.importRoot;
else { // Otherwise compute from filename
if (filename.indexOf("/") >= 0) { // Unix
importRoot = filename.replace(/\/[^\/]*$/, "");
if (/* /file.proto */ importRoot === "")
importRoot = "/";
} else if (filename.indexOf("\\") >= 0) { // Windows
importRoot = filename.replace(/\\[^\\]*$/, "");
delim = '\\';
} else
importRoot = ".";
}
} else
importRoot = null;
for (var i=0; i<json['imports'].length; i++) {
if (typeof json['imports'][i] === 'string') { // Import file
if (!importRoot)
throw Error("cannot determine import root");
var importFilename = json['imports'][i];
if (importFilename === "google/protobuf/descriptor.proto")
continue; // Not needed and therefore not used
if (ProtoBuf.Util.IS_NODE)
importFilename = __webpack_require__(134)['join'](importRoot, importFilename);
else
importFilename = importRoot + delim + importFilename;
if (this.files[importFilename] === true)
continue; // Already imported
if (/\.proto$/i.test(importFilename) && !ProtoBuf.DotProto) // If this is a light build
importFilename = importFilename.replace(/\.proto$/, ".json"); // always load the JSON file
var contents = ProtoBuf.Util.fetch(importFilename);
if (contents === null)
throw Error("failed to import '"+importFilename+"' in '"+filename+"': file not found");
if (/\.json$/i.test(importFilename)) // Always possible
this["import"](JSON.parse(contents+""), importFilename); // May throw
else
this["import"](ProtoBuf.DotProto.Parser.parse(contents), importFilename); // May throw
} else // Import structure
if (!filename)
this["import"](json['imports'][i]);
else if (/\.(\w+)$/.test(filename)) // With extension: Append _importN to the name portion to make it unique
this["import"](json['imports'][i], filename.replace(/^(.+)\.(\w+)$/, function($0, $1, $2) { return $1+"_import"+i+"."+$2; }));
else // Without extension: Append _importN to make it unique
this["import"](json['imports'][i], filename+"_import"+i);
}
if (resetRoot) // Reset import root override when all imports are done
this.importRoot = null;
}
// Import structures
if (json['package'])
this.define(json['package']);
if (json['syntax'])
propagateSyntax(json);
var base = this.ptr;
if (json['options'])
Object.keys(json['options']).forEach(function(key) {
base.options[key] = json['options'][key];
});
if (json['messages'])
this.create(json['messages']),
this.ptr = base;
if (json['enums'])
this.create(json['enums']),
this.ptr = base;
if (json['services'])
this.create(json['services']),
this.ptr = base;
if (json['extends'])
this.create(json['extends']);
return this.reset();
};
/**
* Resolves all namespace objects.
* @throws {Error} If a type cannot be resolved
* @returns {!ProtoBuf.Builder} this
* @expose
*/
BuilderPrototype.resolveAll = function() {
// Resolve all reflected objects
var res;
if (this.ptr == null || typeof this.ptr.type === 'object')
return this; // Done (already resolved)
if (this.ptr instanceof Reflect.Namespace) { // Resolve children
this.ptr.children.forEach(function(child) {
this.ptr = child;
this.resolveAll();
}, this);
} else if (this.ptr instanceof Reflect.Message.Field) { // Resolve type
if (!Lang.TYPE.test(this.ptr.type)) {
if (!Lang.TYPEREF.test(this.ptr.type))
throw Error("illegal type reference in "+this.ptr.toString(true)+": "+this.ptr.type);
res = (this.ptr instanceof Reflect.Message.ExtensionField ? this.ptr.extension.parent : this.ptr.parent).resolve(this.ptr.type, true);
if (!res)
throw Error("unresolvable type reference in "+this.ptr.toString(true)+": "+this.ptr.type);
this.ptr.resolvedType = res;
if (res instanceof Reflect.Enum) {
this.ptr.type = ProtoBuf.TYPES["enum"];
if (this.ptr.syntax === 'proto3' && res.syntax !== 'proto3')
throw Error("proto3 message cannot reference proto2 enum");
}
else if (res instanceof Reflect.Message)
this.ptr.type = res.isGroup ? ProtoBuf.TYPES["group"] : ProtoBuf.TYPES["message"];
else
throw Error("illegal type reference in "+this.ptr.toString(true)+": "+this.ptr.type);
} else
this.ptr.type = ProtoBuf.TYPES[this.ptr.type];
// If it's a map field, also resolve the key type. The key type can be only a numeric, string, or bool type
// (i.e., no enums or messages), so we don't need to resolve against the current namespace.
if (this.ptr.map) {
if (!Lang.TYPE.test(this.ptr.keyType))
throw Error("illegal key type for map field in "+this.ptr.toString(true)+": "+this.ptr.keyType);
this.ptr.keyType = ProtoBuf.TYPES[this.ptr.keyType];
}
// If it's a repeated and packable field then proto3 mandates it should be packed by
// default
if (
this.ptr.syntax === 'proto3' &&
this.ptr.repeated && this.ptr.options.packed === undefined &&
ProtoBuf.PACKABLE_WIRE_TYPES.indexOf(this.ptr.type.wireType) !== -1
) {
this.ptr.options.packed = true;
}
} else if (this.ptr instanceof ProtoBuf.Reflect.Service.Method) {
if (this.ptr instanceof ProtoBuf.Reflect.Service.RPCMethod) {
res = this.ptr.parent.resolve(this.ptr.requestName, true);
if (!res || !(res instanceof ProtoBuf.Reflect.Message))
throw Error("Illegal type reference in "+this.ptr.toString(true)+": "+this.ptr.requestName);
this.ptr.resolvedRequestType = res;
res = this.ptr.parent.resolve(this.ptr.responseName, true);
if (!res || !(res instanceof ProtoBuf.Reflect.Message))
throw Error("Illegal type reference in "+this.ptr.toString(true)+": "+this.ptr.responseName);
this.ptr.resolvedResponseType = res;
} else // Should not happen as nothing else is implemented
throw Error("illegal service type in "+this.ptr.toString(true));
} else if (
!(this.ptr instanceof ProtoBuf.Reflect.Message.OneOf) && // Not built
!(this.ptr instanceof ProtoBuf.Reflect.Extension) && // Not built
!(this.ptr instanceof ProtoBuf.Reflect.Enum.Value) // Built in enum
)
throw Error("illegal object in namespace: "+typeof(this.ptr)+": "+this.ptr);
return this.reset();
};
/**
* Builds the protocol. This will first try to resolve all definitions and, if this has been successful,
* return the built package.
* @param {(string|Array.<string>)=} path Specifies what to return. If omitted, the entire namespace will be returned.
* @returns {!ProtoBuf.Builder.Message|!Object.<string,*>}
* @throws {Error} If a type could not be resolved
* @expose
*/
BuilderPrototype.build = function(path) {
this.reset();
if (!this.resolved)
this.resolveAll(),
this.resolved = true,
this.result = null; // Require re-build
if (this.result === null) // (Re-)Build
this.result = this.ns.build();
if (!path)
return this.result;
var part = typeof path === 'string' ? path.split(".") : path,
ptr = this.result; // Build namespace pointer (no hasChild etc.)
for (var i=0; i<part.length; i++)
if (ptr[part[i]])
ptr = ptr[part[i]];
else {
ptr = null;
break;
}
return ptr;
};
/**
* Similar to {@link ProtoBuf.Builder#build}, but looks up the internal reflection descriptor.
* @param {string=} path Specifies what to return. If omitted, the entire namespace wiil be returned.
* @param {boolean=} excludeNonNamespace Excludes non-namespace types like fields, defaults to `false`
* @returns {?ProtoBuf.Reflect.T} Reflection descriptor or `null` if not found
*/
BuilderPrototype.lookup = function(path, excludeNonNamespace) {
return path ? this.ns.resolve(path, excludeNonNamespace) : this.ns;
};
/**
* Returns a string representation of this object.
* @return {string} String representation as of "Builder"
* @expose
*/
BuilderPrototype.toString = function() {
return "Builder";
};
// ----- Base classes -----
// Exist for the sole purpose of being able to "... instanceof ProtoBuf.Builder.Message" etc.
/**
* @alias ProtoBuf.Builder.Message
*/
Builder.Message = function() {};
/**
* @alias ProtoBuf.Builder.Enum
*/
Builder.Enum = function() {};
/**
* @alias ProtoBuf.Builder.Message
*/
Builder.Service = function() {};
return Builder;
})(ProtoBuf, ProtoBuf.Lang, ProtoBuf.Reflect);
/**
* @alias ProtoBuf.Map
* @expose
*/
ProtoBuf.Map = (function(ProtoBuf, Reflect) {
"use strict";
/**
* Constructs a new Map. A Map is a container that is used to implement map
* fields on message objects. It closely follows the ES6 Map API; however,
* it is distinct because we do not want to depend on external polyfills or
* on ES6 itself.
*
* @exports ProtoBuf.Map
* @param {!ProtoBuf.Reflect.Field} field Map field
* @param {Object.<string,*>=} contents Initial contents
* @constructor
*/
var Map = function(field, contents) {
if (!field.map)
throw Error("field is not a map");
/**
* The field corresponding to this map.
* @type {!ProtoBuf.Reflect.Field}
*/
this.field = field;
/**
* Element instance corresponding to key type.
* @type {!ProtoBuf.Reflect.Element}
*/
this.keyElem = new Reflect.Element(field.keyType, null, true, field.syntax);
/**
* Element instance corresponding to value type.
* @type {!ProtoBuf.Reflect.Element}
*/
this.valueElem = new Reflect.Element(field.type, field.resolvedType, false, field.syntax);
/**
* Internal map: stores mapping of (string form of key) -> (key, value)
* pair.
*
* We provide map semantics for arbitrary key types, but we build on top
* of an Object, which has only string keys. In order to avoid the need
* to convert a string key back to its native type in many situations,
* we store the native key value alongside the value. Thus, we only need
* a one-way mapping from a key type to its string form that guarantees
* uniqueness and equality (i.e., str(K1) === str(K2) if and only if K1
* === K2).
*
* @type {!Object<string, {key: *, value: *}>}
*/
this.map = {};
/**
* Returns the number of elements in the map.
*/
Object.defineProperty(this, "size", {
get: function() { return Object.keys(this.map).length; }
});
// Fill initial contents from a raw object.
if (contents) {
var keys = Object.keys(contents);
for (var i = 0; i < keys.length; i++) {
var key = this.keyElem.valueFromString(keys[i]);
var val = this.valueElem.verifyValue(contents[keys[i]]);
this.map[this.keyElem.valueToString(key)] =
{ key: key, value: val };
}
}
};
var MapPrototype = Map.prototype;
/**
* Helper: return an iterator over an array.
* @param {!Array<*>} arr the array
* @returns {!Object} an iterator
* @inner
*/
function arrayIterator(arr) {
var idx = 0;
return {
next: function() {
if (idx < arr.length)
return { done: false, value: arr[idx++] };
return { done: true };
}
}
}
/**
* Clears the map.
*/
MapPrototype.clear = function() {
this.map = {};
};
/**
* Deletes a particular key from the map.
* @returns {boolean} Whether any entry with this key was deleted.
*/
MapPrototype["delete"] = function(key) {
var keyValue = this.keyElem.valueToString(this.keyElem.verifyValue(key));
var hadKey = keyValue in this.map;
delete this.map[keyValue];
return hadKey;
};
/**
* Returns an iterator over [key, value] pairs in the map.
* @returns {Object} The iterator
*/
MapPrototype.entries = function() {
var entries = [];
var strKeys = Object.keys(this.map);
for (var i = 0, entry; i < strKeys.length; i++)
entries.push([(entry=this.map[strKeys[i]]).key, entry.value]);
return arrayIterator(entries);
};
/**
* Returns an iterator over keys in the map.
* @returns {Object} The iterator
*/
MapPrototype.keys = function() {
var keys = [];
var strKeys = Object.keys(this.map);
for (var i = 0; i < strKeys.length; i++)
keys.push(this.map[strKeys[i]].key);
return arrayIterator(keys);
};
/**
* Returns an iterator over values in the map.
* @returns {!Object} The iterator
*/
MapPrototype.values = function() {
var values = [];
var strKeys = Object.keys(this.map);
for (var i = 0; i < strKeys.length; i++)
values.push(this.map[strKeys[i]].value);
return arrayIterator(values);
};
/**
* Iterates over entries in the map, calling a function on each.
* @param {function(this:*, *, *, *)} cb The callback to invoke with value, key, and map arguments.
* @param {Object=} thisArg The `this` value for the callback
*/
MapPrototype.forEach = function(cb, thisArg) {
var strKeys = Object.keys(this.map);
for (var i = 0, entry; i < strKeys.length; i++)
cb.call(thisArg, (entry=this.map[strKeys[i]]).value, entry.key, this);
};
/**
* Sets a key in the map to the given value.
* @param {*} key The key
* @param {*} value The value
* @returns {!ProtoBuf.Map} The map instance
*/
MapPrototype.set = function(key, value) {
var keyValue = this.keyElem.verifyValue(key);
var valValue = this.valueElem.verifyValue(value);
this.map[this.keyElem.valueToString(keyValue)] =
{ key: keyValue, value: valValue };
return this;
};
/**
* Gets the value corresponding to a key in the map.
* @param {*} key The key
* @returns {*|undefined} The value, or `undefined` if key not present
*/
MapPrototype.get = function(key) {
var keyValue = this.keyElem.valueToString(this.keyElem.verifyValue(key));
if (!(keyValue in this.map))
return undefined;
return this.map[keyValue].value;
};
/**
* Determines whether the given key is present in the map.
* @param {*} key The key
* @returns {boolean} `true` if the key is present
*/
MapPrototype.has = function(key) {
var keyValue = this.keyElem.valueToString(this.keyElem.verifyValue(key));
return (keyValue in this.map);
};
return Map;
})(ProtoBuf, ProtoBuf.Reflect);
/**
* Loads a .proto string and returns the Builder.
* @param {string} proto .proto file contents
* @param {(ProtoBuf.Builder|string|{root: string, file: string})=} builder Builder to append to. Will create a new one if omitted.
* @param {(string|{root: string, file: string})=} filename The corresponding file name if known. Must be specified for imports.
* @return {ProtoBuf.Builder} Builder to create new messages
* @throws {Error} If the definition cannot be parsed or built
* @expose
*/
ProtoBuf.loadProto = function(proto, builder, filename) {
if (typeof builder === 'string' || (builder && typeof builder["file"] === 'string' && typeof builder["root"] === 'string'))
filename = builder,
builder = undefined;
return ProtoBuf.loadJson(ProtoBuf.DotProto.Parser.parse(proto), builder, filename);
};
/**
* Loads a .proto string and returns the Builder. This is an alias of {@link ProtoBuf.loadProto}.
* @function
* @param {string} proto .proto file contents
* @param {(ProtoBuf.Builder|string)=} builder Builder to append to. Will create a new one if omitted.
* @param {(string|{root: string, file: string})=} filename The corresponding file name if known. Must be specified for imports.
* @return {ProtoBuf.Builder} Builder to create new messages
* @throws {Error} If the definition cannot be parsed or built
* @expose
*/
ProtoBuf.protoFromString = ProtoBuf.loadProto; // Legacy
/**
* Loads a .proto file and returns the Builder.
* @param {string|{root: string, file: string}} filename Path to proto file or an object specifying 'file' with
* an overridden 'root' path for all imported files.
* @param {function(?Error, !ProtoBuf.Builder=)=} callback Callback that will receive `null` as the first and
* the Builder as its second argument on success, otherwise the error as its first argument. If omitted, the
* file will be read synchronously and this function will return the Builder.
* @param {ProtoBuf.Builder=} builder Builder to append to. Will create a new one if omitted.
* @return {?ProtoBuf.Builder|undefined} The Builder if synchronous (no callback specified, will be NULL if the
* request has failed), else undefined
* @expose
*/
ProtoBuf.loadProtoFile = function(filename, callback, builder) {
if (callback && typeof callback === 'object')
builder = callback,
callback = null;
else if (!callback || typeof callback !== 'function')
callback = null;
if (callback)
return ProtoBuf.Util.fetch(typeof filename === 'string' ? filename : filename["root"]+"/"+filename["file"], function(contents) {
if (contents === null) {
callback(Error("Failed to fetch file"));
return;
}
try {
callback(null, ProtoBuf.loadProto(contents, builder, filename));
} catch (e) {
callback(e);
}
});
var contents = ProtoBuf.Util.fetch(typeof filename === 'object' ? filename["root"]+"/"+filename["file"] : filename);
return contents === null ? null : ProtoBuf.loadProto(contents, builder, filename);
};
/**
* Loads a .proto file and returns the Builder. This is an alias of {@link ProtoBuf.loadProtoFile}.
* @function
* @param {string|{root: string, file: string}} filename Path to proto file or an object specifying 'file' with
* an overridden 'root' path for all imported files.
* @param {function(?Error, !ProtoBuf.Builder=)=} callback Callback that will receive `null` as the first and
* the Builder as its second argument on success, otherwise the error as its first argument. If omitted, the
* file will be read synchronously and this function will return the Builder.
* @param {ProtoBuf.Builder=} builder Builder to append to. Will create a new one if omitted.
* @return {!ProtoBuf.Builder|undefined} The Builder if synchronous (no callback specified, will be NULL if the
* request has failed), else undefined
* @expose
*/
ProtoBuf.protoFromFile = ProtoBuf.loadProtoFile; // Legacy
/**
* Constructs a new empty Builder.
* @param {Object.<string,*>=} options Builder options, defaults to global options set on ProtoBuf
* @return {!ProtoBuf.Builder} Builder
* @expose
*/
ProtoBuf.newBuilder = function(options) {
options = options || {};
if (typeof options['convertFieldsToCamelCase'] === 'undefined')
options['convertFieldsToCamelCase'] = ProtoBuf.convertFieldsToCamelCase;
if (typeof options['populateAccessors'] === 'undefined')
options['populateAccessors'] = ProtoBuf.populateAccessors;
return new ProtoBuf.Builder(options);
};
/**
* Loads a .json definition and returns the Builder.
* @param {!*|string} json JSON definition
* @param {(ProtoBuf.Builder|string|{root: string, file: string})=} builder Builder to append to. Will create a new one if omitted.
* @param {(string|{root: string, file: string})=} filename The corresponding file name if known. Must be specified for imports.
* @return {ProtoBuf.Builder} Builder to create new messages
* @throws {Error} If the definition cannot be parsed or built
* @expose
*/
ProtoBuf.loadJson = function(json, builder, filename) {
if (typeof builder === 'string' || (builder && typeof builder["file"] === 'string' && typeof builder["root"] === 'string'))
filename = builder,
builder = null;
if (!builder || typeof builder !== 'object')
builder = ProtoBuf.newBuilder();
if (typeof json === 'string')
json = JSON.parse(json);
builder["import"](json, filename);
builder.resolveAll();
return builder;
};
/**
* Loads a .json file and returns the Builder.
* @param {string|!{root: string, file: string}} filename Path to json file or an object specifying 'file' with
* an overridden 'root' path for all imported files.
* @param {function(?Error, !ProtoBuf.Builder=)=} callback Callback that will receive `null` as the first and
* the Builder as its second argument on success, otherwise the error as its first argument. If omitted, the
* file will be read synchronously and this function will return the Builder.
* @param {ProtoBuf.Builder=} builder Builder to append to. Will create a new one if omitted.
* @return {?ProtoBuf.Builder|undefined} The Builder if synchronous (no callback specified, will be NULL if the
* request has failed), else undefined
* @expose
*/
ProtoBuf.loadJsonFile = function(filename, callback, builder) {
if (callback && typeof callback === 'object')
builder = callback,
callback = null;
else if (!callback || typeof callback !== 'function')
callback = null;
if (callback)
return ProtoBuf.Util.fetch(typeof filename === 'string' ? filename : filename["root"]+"/"+filename["file"], function(contents) {
if (contents === null) {
callback(Error("Failed to fetch file"));
return;
}
try {
callback(null, ProtoBuf.loadJson(JSON.parse(contents), builder, filename));
} catch (e) {
callback(e);
}
});
var contents = ProtoBuf.Util.fetch(typeof filename === 'object' ? filename["root"]+"/"+filename["file"] : filename);
return contents === null ? null : ProtoBuf.loadJson(JSON.parse(contents), builder, filename);
};
return ProtoBuf;
});
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(92), __webpack_require__(120)(module)))
/***/ }),
/* 133 */
/***/ (function(module, exports) {
/* (ignored) */
/***/ }),
/* 134 */
/***/ (function(module, exports) {
/* (ignored) */
/***/ }),
/* 135 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
var formatRegExp = /%[sdj%]/g;
exports.format = function(f) {
if (!isString(f)) {
var objects = [];
for (var i = 0; i < arguments.length; i++) {
objects.push(inspect(arguments[i]));
}
return objects.join(' ');
}
var i = 1;
var args = arguments;
var len = args.length;
var str = String(f).replace(formatRegExp, function(x) {
if (x === '%%') return '%';
if (i >= len) return x;
switch (x) {
case '%s': return String(args[i++]);
case '%d': return Number(args[i++]);
case '%j':
try {
return JSON.stringify(args[i++]);
} catch (_) {
return '[Circular]';
}
default:
return x;
}
});
for (var x = args[i]; i < len; x = args[++i]) {
if (isNull(x) || !isObject(x)) {
str += ' ' + x;
} else {
str += ' ' + inspect(x);
}
}
return str;
};
// Mark that a method should not be used.
// Returns a modified function which warns once by default.
// If --no-deprecation is set, then it is a no-op.
exports.deprecate = function(fn, msg) {
// Allow for deprecating things in the process of starting up.
if (isUndefined(global.process)) {
return function() {
return exports.deprecate(fn, msg).apply(this, arguments);
};
}
if (process.noDeprecation === true) {
return fn;
}
var warned = false;
function deprecated() {
if (!warned) {
if (process.throwDeprecation) {
throw new Error(msg);
} else if (process.traceDeprecation) {
console.trace(msg);
} else {
console.error(msg);
}
warned = true;
}
return fn.apply(this, arguments);
}
return deprecated;
};
var debugs = {};
var debugEnviron;
exports.debuglog = function(set) {
if (isUndefined(debugEnviron))
debugEnviron = process.env.NODE_DEBUG || '';
set = set.toUpperCase();
if (!debugs[set]) {
if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
var pid = process.pid;
debugs[set] = function() {
var msg = exports.format.apply(exports, arguments);
console.error('%s %d: %s', set, pid, msg);
};
} else {
debugs[set] = function() {};
}
}
return debugs[set];
};
/**
* Echos the value of a value. Trys to print the value out
* in the best way possible given the different types.
*
* @param {Object} obj The object to print out.
* @param {Object} opts Optional options object that alters the output.
*/
/* legacy: obj, showHidden, depth, colors*/
function inspect(obj, opts) {
// default options
var ctx = {
seen: [],
stylize: stylizeNoColor
};
// legacy...
if (arguments.length >= 3) ctx.depth = arguments[2];
if (arguments.length >= 4) ctx.colors = arguments[3];
if (isBoolean(opts)) {
// legacy...
ctx.showHidden = opts;
} else if (opts) {
// got an "options" object
exports._extend(ctx, opts);
}
// set default options
if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
if (isUndefined(ctx.depth)) ctx.depth = 2;
if (isUndefined(ctx.colors)) ctx.colors = false;
if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
if (ctx.colors) ctx.stylize = stylizeWithColor;
return formatValue(ctx, obj, ctx.depth);
}
exports.inspect = inspect;
// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
inspect.colors = {
'bold' : [1, 22],
'italic' : [3, 23],
'underline' : [4, 24],
'inverse' : [7, 27],
'white' : [37, 39],
'grey' : [90, 39],
'black' : [30, 39],
'blue' : [34, 39],
'cyan' : [36, 39],
'green' : [32, 39],
'magenta' : [35, 39],
'red' : [31, 39],
'yellow' : [33, 39]
};
// Don't use 'blue' not visible on cmd.exe
inspect.styles = {
'special': 'cyan',
'number': 'yellow',
'boolean': 'yellow',
'undefined': 'grey',
'null': 'bold',
'string': 'green',
'date': 'magenta',
// "name": intentionally not styling
'regexp': 'red'
};
function stylizeWithColor(str, styleType) {
var style = inspect.styles[styleType];
if (style) {
return '\u001b[' + inspect.colors[style][0] + 'm' + str +
'\u001b[' + inspect.colors[style][1] + 'm';
} else {
return str;
}
}
function stylizeNoColor(str, styleType) {
return str;
}
function arrayToHash(array) {
var hash = {};
array.forEach(function(val, idx) {
hash[val] = true;
});
return hash;
}
function formatValue(ctx, value, recurseTimes) {
// Provide a hook for user-specified inspect functions.
// Check that value is an object with an inspect function on it
if (ctx.customInspect &&
value &&
isFunction(value.inspect) &&
// Filter out the util module, it's inspect function is special
value.inspect !== exports.inspect &&
// Also filter out any prototype objects using the circular check.
!(value.constructor && value.constructor.prototype === value)) {
var ret = value.inspect(recurseTimes, ctx);
if (!isString(ret)) {
ret = formatValue(ctx, ret, recurseTimes);
}
return ret;
}
// Primitive types cannot have properties
var primitive = formatPrimitive(ctx, value);
if (primitive) {
return primitive;
}
// Look up the keys of the object.
var keys = Object.keys(value);
var visibleKeys = arrayToHash(keys);
if (ctx.showHidden) {
keys = Object.getOwnPropertyNames(value);
}
// IE doesn't make error fields non-enumerable
// http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx
if (isError(value)
&& (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {
return formatError(value);
}
// Some type of object without properties can be shortcutted.
if (keys.length === 0) {
if (isFunction(value)) {
var name = value.name ? ': ' + value.name : '';
return ctx.stylize('[Function' + name + ']', 'special');
}
if (isRegExp(value)) {
return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
}
if (isDate(value)) {
return ctx.stylize(Date.prototype.toString.call(value), 'date');
}
if (isError(value)) {
return formatError(value);
}
}
var base = '', array = false, braces = ['{', '}'];
// Make Array say that they are Array
if (isArray(value)) {
array = true;
braces = ['[', ']'];
}
// Make functions say that they are functions
if (isFunction(value)) {
var n = value.name ? ': ' + value.name : '';
base = ' [Function' + n + ']';
}
// Make RegExps say that they are RegExps
if (isRegExp(value)) {
base = ' ' + RegExp.prototype.toString.call(value);
}
// Make dates with properties first say the date
if (isDate(value)) {
base = ' ' + Date.prototype.toUTCString.call(value);
}
// Make error with message first say the error
if (isError(value)) {
base = ' ' + formatError(value);
}
if (keys.length === 0 && (!array || value.length == 0)) {
return braces[0] + base + braces[1];
}
if (recurseTimes < 0) {
if (isRegExp(value)) {
return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
} else {
return ctx.stylize('[Object]', 'special');
}
}
ctx.seen.push(value);
var output;
if (array) {
output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
} else {
output = keys.map(function(key) {
return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
});
}
ctx.seen.pop();
return reduceToSingleString(output, base, braces);
}
function formatPrimitive(ctx, value) {
if (isUndefined(value))
return ctx.stylize('undefined', 'undefined');
if (isString(value)) {
var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
.replace(/'/g, "\\'")
.replace(/\\"/g, '"') + '\'';
return ctx.stylize(simple, 'string');
}
if (isNumber(value))
return ctx.stylize('' + value, 'number');
if (isBoolean(value))
return ctx.stylize('' + value, 'boolean');
// For some reason typeof null is "object", so special case here.
if (isNull(value))
return ctx.stylize('null', 'null');
}
function formatError(value) {
return '[' + Error.prototype.toString.call(value) + ']';
}
function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
var output = [];
for (var i = 0, l = value.length; i < l; ++i) {
if (hasOwnProperty(value, String(i))) {
output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
String(i), true));
} else {
output.push('');
}
}
keys.forEach(function(key) {
if (!key.match(/^\d+$/)) {
output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
key, true));
}
});
return output;
}
function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
var name, str, desc;
desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
if (desc.get) {
if (desc.set) {
str = ctx.stylize('[Getter/Setter]', 'special');
} else {
str = ctx.stylize('[Getter]', 'special');
}
} else {
if (desc.set) {
str = ctx.stylize('[Setter]', 'special');
}
}
if (!hasOwnProperty(visibleKeys, key)) {
name = '[' + key + ']';
}
if (!str) {
if (ctx.seen.indexOf(desc.value) < 0) {
if (isNull(recurseTimes)) {
str = formatValue(ctx, desc.value, null);
} else {
str = formatValue(ctx, desc.value, recurseTimes - 1);
}
if (str.indexOf('\n') > -1) {
if (array) {
str = str.split('\n').map(function(line) {
return ' ' + line;
}).join('\n').substr(2);
} else {
str = '\n' + str.split('\n').map(function(line) {
return ' ' + line;
}).join('\n');
}
}
} else {
str = ctx.stylize('[Circular]', 'special');
}
}
if (isUndefined(name)) {
if (array && key.match(/^\d+$/)) {
return str;
}
name = JSON.stringify('' + key);
if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) {
name = name.substr(1, name.length - 2);
name = ctx.stylize(name, 'name');
} else {
name = name.replace(/'/g, "\\'")
.replace(/\\"/g, '"')
.replace(/(^"|"$)/g, "'");
name = ctx.stylize(name, 'string');
}
}
return name + ': ' + str;
}
function reduceToSingleString(output, base, braces) {
var numLinesEst = 0;
var length = output.reduce(function(prev, cur) {
numLinesEst++;
if (cur.indexOf('\n') >= 0) numLinesEst++;
return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1;
}, 0);
if (length > 60) {
return braces[0] +
(base === '' ? '' : base + '\n ') +
' ' +
output.join(',\n ') +
' ' +
braces[1];
}
return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];
}
// NOTE: These type checking functions intentionally don't use `instanceof`
// because it is fragile and can be easily faked with `Object.create()`.
function isArray(ar) {
return Array.isArray(ar);
}
exports.isArray = isArray;
function isBoolean(arg) {
return typeof arg === 'boolean';
}
exports.isBoolean = isBoolean;
function isNull(arg) {
return arg === null;
}
exports.isNull = isNull;
function isNullOrUndefined(arg) {
return arg == null;
}
exports.isNullOrUndefined = isNullOrUndefined;
function isNumber(arg) {
return typeof arg === 'number';
}
exports.isNumber = isNumber;
function isString(arg) {
return typeof arg === 'string';
}
exports.isString = isString;
function isSymbol(arg) {
return typeof arg === 'symbol';
}
exports.isSymbol = isSymbol;
function isUndefined(arg) {
return arg === void 0;
}
exports.isUndefined = isUndefined;
function isRegExp(re) {
return isObject(re) && objectToString(re) === '[object RegExp]';
}
exports.isRegExp = isRegExp;
function isObject(arg) {
return typeof arg === 'object' && arg !== null;
}
exports.isObject = isObject;
function isDate(d) {
return isObject(d) && objectToString(d) === '[object Date]';
}
exports.isDate = isDate;
function isError(e) {
return isObject(e) &&
(objectToString(e) === '[object Error]' || e instanceof Error);
}
exports.isError = isError;
function isFunction(arg) {
return typeof arg === 'function';
}
exports.isFunction = isFunction;
function isPrimitive(arg) {
return arg === null ||
typeof arg === 'boolean' ||
typeof arg === 'number' ||
typeof arg === 'string' ||
typeof arg === 'symbol' || // ES6 symbol
typeof arg === 'undefined';
}
exports.isPrimitive = isPrimitive;
exports.isBuffer = __webpack_require__(136);
function objectToString(o) {
return Object.prototype.toString.call(o);
}
function pad(n) {
return n < 10 ? '0' + n.toString(10) : n.toString(10);
}
var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
'Oct', 'Nov', 'Dec'];
// 26 Feb 16:19:34
function timestamp() {
var d = new Date();
var time = [pad(d.getHours()),
pad(d.getMinutes()),
pad(d.getSeconds())].join(':');
return [d.getDate(), months[d.getMonth()], time].join(' ');
}
// log is just a thin wrapper to console.log that prepends a timestamp
exports.log = function() {
console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
};
/**
* Inherit the prototype methods from one constructor into another.
*
* The Function.prototype.inherits from lang.js rewritten as a standalone
* function (not on Function.prototype). NOTE: If this file is to be loaded
* during bootstrapping this function needs to be rewritten using some native
* functions as prototype setup using normal JavaScript does not work as
* expected during bootstrapping (see mirror.js in r114903).
*
* @param {function} ctor Constructor function which needs to inherit the
* prototype.
* @param {function} superCtor Constructor function to inherit prototype from.
*/
exports.inherits = __webpack_require__(137);
exports._extend = function(origin, add) {
// Don't do anything if add isn't an object
if (!add || !isObject(add)) return origin;
var keys = Object.keys(add);
var i = keys.length;
while (i--) {
origin[keys[i]] = add[keys[i]];
}
return origin;
};
function hasOwnProperty(obj, prop) {
return Object.prototype.hasOwnProperty.call(obj, prop);
}
/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()), __webpack_require__(92)))
/***/ }),
/* 136 */
/***/ (function(module, exports) {
module.exports = function isBuffer(arg) {
return arg && typeof arg === 'object'
&& typeof arg.copy === 'function'
&& typeof arg.fill === 'function'
&& typeof arg.readUInt8 === 'function';
}
/***/ }),
/* 137 */
/***/ (function(module, exports) {
if (typeof Object.create === 'function') {
// implementation from standard node.js 'util' module
module.exports = function inherits(ctor, superCtor) {
ctor.super_ = superCtor
ctor.prototype = Object.create(superCtor.prototype, {
constructor: {
value: ctor,
enumerable: false,
writable: true,
configurable: true
}
});
};
} else {
// old school shim for old browsers
module.exports = function inherits(ctor, superCtor) {
ctor.super_ = superCtor
var TempCtor = function () {}
TempCtor.prototype = superCtor.prototype
ctor.prototype = new TempCtor()
ctor.prototype.constructor = ctor
}
}
/***/ }),
/* 138 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(Buffer) {var util = __webpack_require__(135),
Transform = __webpack_require__(87).Transform;
/**
* @typedef {('Opus'|'Speex'|'CELT_Alpha'|'CELT_Beta')} Codec
*/
/**
* The mode of voice transmission.
* 0 is normal talking.
* 31 is server loopback.
* 1-30 when sent from the client is the whisper target.
* 1-30 when sent from the server: 1 for channel whisper, 2 for direct whisper
*
* @typedef {number} VoiceMode
*/
/**
* Data for a Mumble voice packet.
* The {@link #source source property} is ignored if this packet is not
* clientbound otherwise it is required.
*
* @typedef {object} VoiceData
* @property {number} [source] - Session ID of source user
* @property {VoiceMode} mode - Mode of the voice transmission
* @property {Codec} codec - Codec used for encoding the voice data
* @property {number} seqNum - Sequence number of the first voice frame
* @property {boolean} end - Whether this is the last packet in this transmission
* @property {Buffer} frames[] - Encoded voice frame
* @property {object} [position] - Spacial position of the source
* @property {number} position.x - X coordinate
* @property {number} position.y - Y coordinate
* @property {number} position.z - Z coordinate
*/
/**
* Data for an audio channel ping packet.
*
* @typedef {object} PingData
* @property timestamp The timestamp for this ping packet.
*/
/**
* Transform stream for encoding {@link VoiceData Mumble voice packets}
* and {@link PingData audio channel ping packets}.
*
* @constructor
* @constructs Encoder
* @param {('server'|'client')} dest - Where encoded packets are headed to.
*/
function Encoder(dest) {
// Allow use without new
if (!(this instanceof Encoder)) return new Encoder(dest);
if (dest != 'server' && dest != 'client') {
throw new TypeError('dest has to be either "server" or "client"');
}
Transform.call(this, {
writableObjectMode: true
});
this._dest = dest;
}
util.inherits(Encoder, Transform);
Encoder.prototype._transform = function(chunk, encoding, callback) {
var buffer;
var offset = 0;
// Special case: Ping packets
if (chunk.timestamp !== undefined) {
// Header byte + Timestamp
buffer = new Buffer(1 + 9);
offset += buffer.writeUInt8(0x20, offset); // Ping packet header
offset += toVarint(chunk.timestamp).value.copy(buffer, offset);
return callback(null, buffer.slice(0, offset));
}
var codecId; // Network ID of the codec
var voiceData; // All voice frames encoded into a single buffer
if (chunk.codec == 'Opus') {
if (chunk.frames.length > 1) {
return callback(new Error('Opus only supports a single frame per packet'));
}
var endBit = chunk.end ? 0x2000 : 0
if (chunk.frames.length == 0) {
voiceData = toVarint(endBit).value;
} else {
var frameSize = toVarint(chunk.frames[0].length | endBit);
// Opus packets are just the size and the data concatenated
voiceData = Buffer.concat([frameSize.value, chunk.frames[0]]);
}
codecId = 4;
} else if (['CELT_Alpha', 'CELT_Beta', 'Speex'].indexOf(chunk.codec) >= 0) {
codecId = {'CELT_Alpha': 0, 'Speex': 2, 'CELT_Beta': 3}[chunk.codec]
voiceData = []
if (chunk.frames.length == 0 && !chunk.end) {
return callback(new Error('No frames given but end bit is not set'));
}
for (var i = 0; i < chunk.frames.length; i++) {
var frame = chunk.frames[i]
if (frame.length > 127) {
return callback(new Error('Frame size is greater than 127 bytes'));
}
voiceData.push(Buffer.from([frame.length | 0x80]))
voiceData.push(frame)
}
// Append empty frame if end bit is set
if (chunk.end) {
voiceData.push(Buffer.from([0]))
voiceData.push(Buffer.from([]))
}
// Unset continuation bit of last frame
voiceData[voiceData.length - 2][0] &= 0x7F
// Concat all frames
voiceData = Buffer.concat(voiceData)
} else {
return callback(new TypeError('Unknown codec: ' + chunk.codec));
}
// Header byte + Source Session Id + Sequence Number + Voice + Position Data
buffer = new Buffer(1 + 9 + 9 + voiceData.length + 3 * 4);
offset += buffer.writeUInt8(codecId << 5 | chunk.mode, offset);
if (this._dest == 'client') {
// Only server needs to send the source as the client is not allowed
// to send voice for anyone besides itself
offset += toVarint(chunk.source).value.copy(buffer, offset);
}
offset += toVarint(chunk.seqNum).value.copy(buffer, offset);
offset += voiceData.copy(buffer, offset);
if (chunk.position) {
offset += buffer.writeFloatBE(chunk.position.x, offset);
offset += buffer.writeFloatBE(chunk.position.y, offset);
offset += buffer.writeFloatBE(chunk.position.z, offset);
}
// Trim buffer to actual length and pass through
callback(null, buffer.slice(0, offset));
};
/**
* Transform stream for decoding {@link VoiceData Mumble voice packets}
* and {@link PingData audio channel ping packets}.
*
* @constructor
* @constructs Decoder
* @param {('server'|'client')} orig - Where encoded packets are coming from.
*/
function Decoder(orig) {
// Allow use without new
if (!(this instanceof Decoder)) return new Decoder(orig);
if (orig != 'server' && orig != 'client') {
throw new TypeError('orig has to be either "server" or "client"');
}
Transform.call(this, {
readableObjectMode: true
});
this._orig = orig;
}
util.inherits(Decoder, Transform);
Decoder.prototype._transform = function(chunk, encoding, callback) {
var self = this
var reject = function(reason) {
self.emit('debug', 'Failed to parse voice packet', reason, chunk);
callback();
};
var packet = {};
try {
if (chunk.length == 0) return reject('empty');
var codecId = chunk[0] >> 5;
if (codecId == 1) { // Ping packet
var val = fromVarint(chunk.slice(1));
if (!val) return reject('invalid timestamp');
packet.timestamp = val.value;
} else { // Voice packet
var target = chunk[0] & 0x1f
packet.target = ['normal', 'shout', 'whisper'][target] || 'loopback';
var offset = 1;
// Parse source if this packet originated from the server
if (this._orig == 'server') {
var source = fromVarint(chunk.slice(offset));
if (!source) return reject('invalid source');
offset += source.length;
packet.source = source.value;
}
// Parse the sequence number of the first audio packet
var sequenceNumber = fromVarint(chunk.slice(offset));
if (!sequenceNumber) return reject('invalid sequence number');
offset += sequenceNumber.length;
packet.seqNum = sequenceNumber.value;
// Parse the voice frames depending on the audio codec
if (codecId == 4) {
var voiceLength = fromVarint(chunk.slice(offset));
if (!voiceLength) return reject('invalid voice length');
packet.end = (voiceLength.value & 0x2000) > 0;
voiceLength.value &= 0x1fff;
offset += voiceLength.length;
if (chunk.length < offset + voiceLength.value) {
return reject('not enough voice data')
}
var voice = chunk.slice(offset, offset + voiceLength.value);
offset += voiceLength.value;
packet.frames = voice.length ? [voice] : [];
packet.codec = 'Opus';
} else if (codecId == 0 || codecIf == 2 || codecId == 3) {
packet.codec = ['CELT_Alpha', '', 'Speex', 'CELT_Beta'][codecId];
packet.frames = [];
while (true) {
if (chunk.length < offset + 1) return reject('missing frame header');
var header = chunk[offset++];
if (header == 0) {
packet.end = true;
break;
}
var more = (header & 0x80) > 0;
var frameLength = header & 0x7F;
if (chunk.length < offset + frameLength) {
return reject('not enough voice data');
}
packet.frames.push(chunk.slice(offset, offset += frameLength));
if (!more) {
packet.end = false;
break;
}
}
} else {
this.emit('unknown_codec', codecId)
return reject('unknown codec ' + codecId)
}
// Parse positional data if existent
if (chunk.length > offset + 12) {
packet.position = {
x: chunk.readFloatBE(offset),
y: chunk.readFloatBE(offset + 4),
z: chunk.readFloatBE(offset + 8)
};
}
}
} catch (e) {
return callback(e);
}
return callback(null, packet);
};
module.exports = {
Encoder: Encoder,
Decoder: Decoder
};
// Functions below from node-mumble
// https://github.com/Rantanen/node-mumble/blob/master/LICENSE
/**
* @summary Converts a number to Mumble varint.
*
* @see {@link http://mumble-protocol.readthedocs.org/en/latest/voice_data.html#variable-length-integer-encoding}
*
* @param {number} i - Integer to convert
* @returns {Buffer} Varint encoded number
*/
function toVarint( i ) {
var arr = [];
if( i < 0 ) {
i = ~i;
if( i <= 0x3 ) { return new Buffer( [ 0xFC | i ] ); }
arr.push( 0xF8 );
}
if( i < 0x80 ) {
arr.push( i );
} else if( i < 0x4000 ) {
arr.push( ( i >> 8 ) | 0x80 );
arr.push( i & 0xFF );
} else if( i < 0x200000 ) {
arr.push( ( i >> 16 ) | 0xC0 );
arr.push( ( i >> 8 ) & 0xFF );
arr.push( i & 0xFF );
} else if( i < 0x10000000 ) {
arr.push( ( i >> 24 ) | 0xE0 );
arr.push( ( i >> 16 ) & 0xFF );
arr.push( ( i >> 8 ) & 0xFF );
arr.push( i & 0xFF );
} else if( i < 0x100000000 ) {
arr.push( 0xF0 );
arr.push( ( i >> 24 ) & 0xFF );
arr.push( ( i >> 16 ) & 0xFF );
arr.push( ( i >> 8 ) & 0xFF );
arr.push( i & 0xFF );
} else {
throw new TypeError( 'Non-integer values are not supported. (' + i + ')' );
}
return {
value: new Buffer( arr ),
length: arr.length
};
}
/**
* @summary Converts a Mumble varint to an integer.
*
* @see {@link http://mumble-protocol.readthedocs.org/en/latest/voice_data.html#variable-length-integer-encoding}
*
* @param {Buffer} b - Varint to convert
* @returns {number} Decoded integer
*/
function fromVarint( b ) {
if (b.length == 0) return null;
var length = 1;
var i, v = b[ 0 ];
if( ( v & 0x80 ) === 0x00 ) {
i = ( v & 0x7F );
} else if( ( v & 0xC0 ) === 0x80 ) {
i = ( v & 0x3F ) << 8 | b[ 1 ];
length = 2;
} else if( ( v & 0xF0 ) === 0xF0 ) {
switch( v & 0xFC ) {
case 0xF0:
i = b[ 1 ] << 24 | b[ 2 ] << 16 | b[ 3 ] << 8 | b[ 4 ];
length = 5;
break;
case 0xF8:
var ret = fromVarint( b.slice( 1 ) );
if (!ret) return ret;
return {
value: ~ret.value,
length: 1 + ret.length
};
case 0xFC:
i = v & 0x03;
i = ~i;
break;
default:
return null
}
} else if( ( v & 0xF0 ) === 0xE0 ) {
i = ( v & 0x0F ) << 24 | b[ 1 ] << 16 | b[ 2 ] << 8 | b[ 3 ];
length = 4;
} else if( ( v & 0xE0 ) === 0xC0 ) {
i = ( v & 0x1F ) << 16 | b[ 1 ] << 8 | b[ 2 ];
length = 3;
}
return {
value: i,
length: length
};
}
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(97).Buffer))
/***/ }),
/* 139 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(Buffer) {// This module is a port of the original CryptState class to Node.js
// The original file can be found at
// https://github.com/mumble-voip/mumble/blob/master/src/CryptState.cpp
// Copyright notice of the original source:
// Copyright 2005-2016 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
var crypto = __webpack_require__(140);
var BLOCK_SIZE = 16;
function UdpCrypt(stats) {
this._decryptHistory = new Array(100);
this._stats = stats || {};
}
UdpCrypt.prototype.getKey = function() { return this._key; };
UdpCrypt.prototype.getDecryptIV = function() { return this._decryptIV; };
UdpCrypt.prototype.getEncryptIV = function() { return this._encryptIV; };
UdpCrypt.prototype.ready = function() {
return this._key && this._decryptIV && this._encryptIV;
};
UdpCrypt.prototype.setKey = function(key) {
if (key.length != BLOCK_SIZE) {
throw new Error('key must be exactly ' + BLOCK_SIZE + ' bytes');
}
this._key = key;
};
UdpCrypt.prototype.setDecryptIV = function(decryptIV) {
if (decryptIV.length != BLOCK_SIZE) {
throw new Error('decryptIV must be exactly ' + BLOCK_SIZE + ' bytes');
}
this._decryptIV = decryptIV;
};
UdpCrypt.prototype.setEncryptIV = function(encryptIV) {
if (encryptIV.length != BLOCK_SIZE) {
throw new Error('encryptIV must be exactly ' + BLOCK_SIZE + ' bytes');
}
this._encryptIV = encryptIV;
};
UdpCrypt.prototype.generateKey = function(callback) {
crypto.randomBytes(BLOCK_SIZE * 3, function(err, buf) {
if (err) {
callback(err);
}
this._key = buf.slice(0, BLOCK_SIZE);
this._decryptIV = buf.slice(BLOCK_SIZE, BLOCK_SIZE * 2);
this._encryptIV = buf.slice(BLOCK_SIZE * 2);
callback();
}.bind(this));
};
UdpCrypt.prototype.encrypt = function(plainText) {
// First, increase our IV
for (var i = 0; i < BLOCK_SIZE; i++) {
if (++this._encryptIV[i] == 256) {
this._encryptIV[i] = 0;
} else {
break;
}
}
var cipher = crypto.createCipheriv('AES-128-ECB', this._key, '')
.setAutoPadding(false);
var cipherText = new Buffer(plainText.length + 4);
var tag = ocbEncrypt(plainText, cipherText.slice(4), this._encryptIV,
cipher.update.bind(cipher));
cipherText[0] = this._encryptIV[0];
cipherText[1] = tag[0];
cipherText[2] = tag[1];
cipherText[3] = tag[2];
return cipherText;
};
UdpCrypt.prototype.decrypt = function(cipherText) {
if (cipherText.length < 4) {
return null;
}
var saveiv = Buffer.from(this._decryptIV);
var ivbyte = cipherText[0];
var restore = false;
var lost = 0;
var late = 0;
var i;
if (((this._decryptIV[0] + 1) & 0xFF) == ivbyte) {
// In order as expected
if (ivbyte > this._decryptIV[0]) {
this._decryptIV[0] = ivbyte;
} else if (ivbyte < this._decryptIV[0]) {
this._decryptIV[0] = ivbyte;
for (i = 1; i < BLOCK_SIZE; i++) {
if (++this._decryptIV[i] == 256) {
this._encryptIV[i] = 0;
} else {
break;
}
}
} else {
return null;
}
} else {
// This is either out of order or a repeat.
var diff = ivbyte - this._decryptIV[0];
if (diff > 128) {
diff = diff - 256;
} else if (diff < -128) {
diff = diff + 256;
}
if ((ivbyte < this._decryptIV[0]) && (diff > -30) && (diff < 0)) {
// Late packet, but no wraparound
late++;
lost--;
this._decryptIV[0] = ivbyte;
restore = true;
} else if ((ivbyte > this._decryptIV[0]) && (diff > -30) && (diff < 0)) {
// Late was 0x02, here comes 0xff from last round
late++;
lost--;
this._decryptIV[0] = ivbyte;
for (i = 0; i < BLOCK_SIZE; i++) {
if (this._decryptIV[i]-- == -1) {
this._decryptIV[i] = 255;
} else {
break;
}
}
restore = true;
} else if ((ivbyte > this._decryptIV[0]) && (diff > 0)) {
// Lost a few packets, but beyond that we're good.
lost += ivbyte - this._decryptIV[0] - 1;
this._decryptIV[0] = ivbyte;
} else if ((ivbyte < this._decryptIV[0]) && (diff > 0)) {
// Lost a few packets, and wrapped around
lost += 256 - this._decryptIV[0] + ivbyte - 1;
this._decryptIV[0] = ivbyte;
for (i = 0; i < BLOCK_SIZE; i++) {
if (++this._decryptIV[i] == 256) {
this._encryptIV[i] = 0;
} else {
break;
}
}
} else {
return null;
}
if (this._decryptHistory[this._decryptIV[0]] == this._decryptIV[1]) {
this._decryptIV = saveiv;
return null;
}
}
var encrypt = crypto.createCipheriv('AES-128-ECB', this._key, '')
.setAutoPadding(false);
var decrypt = crypto.createDecipheriv('AES-128-ECB', this._key, '')
.setAutoPadding(false);
var plainText = new Buffer(cipherText.length - 4);
var tag = ocbDecrypt(cipherText.slice(4), plainText, this._decryptIV,
encrypt.update.bind(encrypt), decrypt.update.bind(decrypt));
if (tag.compare(cipherText, 1, 4, 0, 3) !== 0) {
this._decryptIV = saveiv;
return null;
}
this._decryptHistory[this._decryptIV[0]] = this._decryptIV[1];
if (restore) {
this._decryptIV = saveiv;
}
this._stats.good++;
this._stats.late += late;
this._stats.lost += lost;
return plainText;
};
function ocbEncrypt(plainText, cipherText, nonce, aesEncrypt) {
var checksum = new Buffer(BLOCK_SIZE);
var tmp = new Buffer(BLOCK_SIZE);
var delta = aesEncrypt(nonce);
ZERO(checksum);
var len = plainText.length;
while (len > BLOCK_SIZE) {
S2(delta);
XOR(tmp, delta, plainText);
tmp = aesEncrypt(tmp);
XOR(cipherText, delta, tmp);
XOR(checksum, checksum, plainText);
len -= BLOCK_SIZE;
plainText = plainText.slice(BLOCK_SIZE);
cipherText = cipherText.slice(BLOCK_SIZE);
}
S2(delta);
ZERO(tmp);
tmp[BLOCK_SIZE - 1] = len * 8;
XOR(tmp, tmp, delta);
var pad = aesEncrypt(tmp);
plainText.copy(tmp, 0, 0, len);
pad.copy(tmp, len, len, BLOCK_SIZE);
XOR(checksum, checksum, tmp);
XOR(tmp, pad, tmp);
tmp.copy(cipherText, 0, 0, len);
S3(delta);
XOR(tmp, delta, checksum);
var tag = aesEncrypt(tmp);
return tag;
}
function ocbDecrypt(cipherText, plainText, nonce, aesEncrypt, aesDecrypt) {
var checksum = new Buffer(BLOCK_SIZE);
var tmp = new Buffer(BLOCK_SIZE);
// Initialize
var delta = aesEncrypt(nonce);
ZERO(checksum);
var len = plainText.length;
while (len > BLOCK_SIZE) {
S2(delta);
XOR(tmp, delta, cipherText);
tmp = aesDecrypt(tmp);
XOR(plainText, delta, tmp);
XOR(checksum, checksum, plainText);
len -= BLOCK_SIZE;
plainText = plainText.slice(BLOCK_SIZE);
cipherText = cipherText.slice(BLOCK_SIZE);
}
S2(delta);
ZERO(tmp);
tmp[BLOCK_SIZE - 1] = len * 8;
XOR(tmp, tmp, delta);
var pad = aesEncrypt(tmp);
ZERO(tmp);
cipherText.copy(tmp, 0, 0, len);
XOR(tmp, tmp, pad);
XOR(checksum, checksum, tmp);
tmp.copy(plainText, 0, 0, len);
S3(delta);
XOR(tmp, delta, checksum);
var tag = aesEncrypt(tmp);
return tag;
}
function XOR(dst, a, b) {
for (var i = 0; i < BLOCK_SIZE; i++) {
dst[i] = a[i] ^ b[i];
}
}
function S2(block) {
var carry = block[0] >> 7;
for (var i = 0; i < BLOCK_SIZE - 1; i++) {
block[i] = block[i] << 1 | block[i+1] >> 7;
}
block[BLOCK_SIZE-1] = block[BLOCK_SIZE-1] << 1 ^ (carry * 0x87);
}
// Equivalent to: XOR(block, block, R2(block))
function S3(block) {
var carry = block[0] >> 7;
for (var i = 0; i < BLOCK_SIZE - 1; i++) {
block[i] ^= block[i] << 1 | block[i+1] >> 7;
}
block[BLOCK_SIZE-1] ^= block[BLOCK_SIZE-1] << 1 ^ (carry * 0x87);
}
function ZERO(block) {
block.fill(0, 0, BLOCK_SIZE);
}
// End of port
var util = __webpack_require__(135),
Transform = __webpack_require__(87).Transform;
module.exports = UdpCrypt;
module.exports.BLOCK_SIZE = BLOCK_SIZE;
module.exports.ocbEncrypt = ocbEncrypt;
module.exports.ocbDecrypt = ocbDecrypt;
/**
* @typedef {object} States
*/
/**
* Transform stream for encrypting Mumble UDP packets.
*
* @constructor
* @constructs Encrypt
* @param {Stats} [stats] - Object into which network statistics are written
*/
function Encrypt(stats) {
// Allow use without new
if (!(this instanceof Encrypt)) return new Encrypt(dest);
Transform.call(this, {});
this._block = new UdpCrypt(stats);
}
util.inherits(Encrypt, Transform);
Encrypt.prototype._transform = function(chunk, encoding, callback) {
callback(null, this._block.encrypt(chunk));
};
/**
* @return The underlying block cipher.
*/
Encrypt.prototype.getBlockCipher = function() {
return this._block;
};
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(97).Buffer))
/***/ }),
/* 140 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(Buffer) {var rng = __webpack_require__(141)
function error () {
var m = [].slice.call(arguments).join(' ')
throw new Error([
m,
'we accept pull requests',
'http://github.com/dominictarr/crypto-browserify'
].join('\n'))
}
exports.createHash = __webpack_require__(143)
exports.createHmac = __webpack_require__(152)
exports.randomBytes = function(size, callback) {
if (callback && callback.call) {
try {
callback.call(this, undefined, new Buffer(rng(size)))
} catch (err) { callback(err) }
} else {
return new Buffer(rng(size))
}
}
function each(a, f) {
for(var i in a)
f(a[i], i)
}
exports.getHashes = function () {
return ['sha1', 'sha256', 'sha512', 'md5', 'rmd160']
}
var p = __webpack_require__(153)(exports)
exports.pbkdf2 = p.pbkdf2
exports.pbkdf2Sync = p.pbkdf2Sync
__webpack_require__(155)(exports, module.exports);
// the least I can do is make error messages for the rest of the node.js/crypto api.
each(['createCredentials'
, 'createSign'
, 'createVerify'
, 'createDiffieHellman'
], function (name) {
exports[name] = function () {
error('sorry,', name, 'is not implemented yet')
}
})
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(97).Buffer))
/***/ }),
/* 141 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global, Buffer) {(function() {
var g = ('undefined' === typeof window ? global : window) || {}
_crypto = (
g.crypto || g.msCrypto || __webpack_require__(142)
)
module.exports = function(size) {
// Modern Browsers
if(_crypto.getRandomValues) {
var bytes = new Buffer(size); //in browserify, this is an extended Uint8Array
/* This will not work in older browsers.
* See https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues
*/
_crypto.getRandomValues(bytes);
return bytes;
}
else if (_crypto.randomBytes) {
return _crypto.randomBytes(size)
}
else
throw new Error(
'secure random number generation not supported by this browser\n'+
'use chrome, FireFox or Internet Explorer 11'
)
}
}())
/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()), __webpack_require__(97).Buffer))
/***/ }),
/* 142 */
/***/ (function(module, exports) {
/* (ignored) */
/***/ }),
/* 143 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(Buffer) {var createHash = __webpack_require__(144)
var md5 = toConstructor(__webpack_require__(149))
var rmd160 = toConstructor(__webpack_require__(151))
function toConstructor (fn) {
return function () {
var buffers = []
var m= {
update: function (data, enc) {
if(!Buffer.isBuffer(data)) data = new Buffer(data, enc)
buffers.push(data)
return this
},
digest: function (enc) {
var buf = Buffer.concat(buffers)
var r = fn(buf)
buffers = null
return enc ? r.toString(enc) : r
}
}
return m
}
}
module.exports = function (alg) {
if('md5' === alg) return new md5()
if('rmd160' === alg) return new rmd160()
return createHash(alg)
}
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(97).Buffer))
/***/ }),
/* 144 */
/***/ (function(module, exports, __webpack_require__) {
var exports = module.exports = function (alg) {
var Alg = exports[alg]
if(!Alg) throw new Error(alg + ' is not supported (we accept pull requests)')
return new Alg()
}
var Buffer = __webpack_require__(97).Buffer
var Hash = __webpack_require__(145)(Buffer)
exports.sha1 = __webpack_require__(146)(Buffer, Hash)
exports.sha256 = __webpack_require__(147)(Buffer, Hash)
exports.sha512 = __webpack_require__(148)(Buffer, Hash)
/***/ }),
/* 145 */
/***/ (function(module, exports) {
module.exports = function (Buffer) {
//prototype class for hash functions
function Hash (blockSize, finalSize) {
this._block = new Buffer(blockSize) //new Uint32Array(blockSize/4)
this._finalSize = finalSize
this._blockSize = blockSize
this._len = 0
this._s = 0
}
Hash.prototype.init = function () {
this._s = 0
this._len = 0
}
Hash.prototype.update = function (data, enc) {
if ("string" === typeof data) {
enc = enc || "utf8"
data = new Buffer(data, enc)
}
var l = this._len += data.length
var s = this._s = (this._s || 0)
var f = 0
var buffer = this._block
while (s < l) {
var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
var ch = (t - f)
for (var i = 0; i < ch; i++) {
buffer[(s % this._blockSize) + i] = data[i + f]
}
s += ch
f += ch
if ((s % this._blockSize) === 0) {
this._update(buffer)
}
}
this._s = s
return this
}
Hash.prototype.digest = function (enc) {
// Suppose the length of the message M, in bits, is l
var l = this._len * 8
// Append the bit 1 to the end of the message
this._block[this._len % this._blockSize] = 0x80
// and then k zero bits, where k is the smallest non-negative solution to the equation (l + 1 + k) === finalSize mod blockSize
this._block.fill(0, this._len % this._blockSize + 1)
if (l % (this._blockSize * 8) >= this._finalSize * 8) {
this._update(this._block)
this._block.fill(0)
}
// to this append the block which is equal to the number l written in binary
// TODO: handle case where l is > Math.pow(2, 29)
this._block.writeInt32BE(l, this._blockSize - 4)
var hash = this._update(this._block) || this._hash()
return enc ? hash.toString(enc) : hash
}
Hash.prototype._update = function () {
throw new Error('_update must be implemented by subclass')
}
return Hash
}
/***/ }),
/* 146 */
/***/ (function(module, exports, __webpack_require__) {
/*
* A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined
* in FIPS PUB 180-1
* Version 2.1a Copyright Paul Johnston 2000 - 2002.
* Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
* Distributed under the BSD License
* See http://pajhome.org.uk/crypt/md5 for details.
*/
var inherits = __webpack_require__(135).inherits
module.exports = function (Buffer, Hash) {
var A = 0|0
var B = 4|0
var C = 8|0
var D = 12|0
var E = 16|0
var W = new (typeof Int32Array === 'undefined' ? Array : Int32Array)(80)
var POOL = []
function Sha1 () {
if(POOL.length)
return POOL.pop().init()
if(!(this instanceof Sha1)) return new Sha1()
this._w = W
Hash.call(this, 16*4, 14*4)
this._h = null
this.init()
}
inherits(Sha1, Hash)
Sha1.prototype.init = function () {
this._a = 0x67452301
this._b = 0xefcdab89
this._c = 0x98badcfe
this._d = 0x10325476
this._e = 0xc3d2e1f0
Hash.prototype.init.call(this)
return this
}
Sha1.prototype._POOL = POOL
Sha1.prototype._update = function (X) {
var a, b, c, d, e, _a, _b, _c, _d, _e
a = _a = this._a
b = _b = this._b
c = _c = this._c
d = _d = this._d
e = _e = this._e
var w = this._w
for(var j = 0; j < 80; j++) {
var W = w[j] = j < 16 ? X.readInt32BE(j*4)
: rol(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16], 1)
var t = add(
add(rol(a, 5), sha1_ft(j, b, c, d)),
add(add(e, W), sha1_kt(j))
)
e = d
d = c
c = rol(b, 30)
b = a
a = t
}
this._a = add(a, _a)
this._b = add(b, _b)
this._c = add(c, _c)
this._d = add(d, _d)
this._e = add(e, _e)
}
Sha1.prototype._hash = function () {
if(POOL.length < 100) POOL.push(this)
var H = new Buffer(20)
//console.log(this._a|0, this._b|0, this._c|0, this._d|0, this._e|0)
H.writeInt32BE(this._a|0, A)
H.writeInt32BE(this._b|0, B)
H.writeInt32BE(this._c|0, C)
H.writeInt32BE(this._d|0, D)
H.writeInt32BE(this._e|0, E)
return H
}
/*
* Perform the appropriate triplet combination function for the current
* iteration
*/
function sha1_ft(t, b, c, d) {
if(t < 20) return (b & c) | ((~b) & d);
if(t < 40) return b ^ c ^ d;
if(t < 60) return (b & c) | (b & d) | (c & d);
return b ^ c ^ d;
}
/*
* Determine the appropriate additive constant for the current iteration
*/
function sha1_kt(t) {
return (t < 20) ? 1518500249 : (t < 40) ? 1859775393 :
(t < 60) ? -1894007588 : -899497514;
}
/*
* Add integers, wrapping at 2^32. This uses 16-bit operations internally
* to work around bugs in some JS interpreters.
* //dominictarr: this is 10 years old, so maybe this can be dropped?)
*
*/
function add(x, y) {
return (x + y ) | 0
//lets see how this goes on testling.
// var lsw = (x & 0xFFFF) + (y & 0xFFFF);
// var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
// return (msw << 16) | (lsw & 0xFFFF);
}
/*
* Bitwise rotate a 32-bit number to the left.
*/
function rol(num, cnt) {
return (num << cnt) | (num >>> (32 - cnt));
}
return Sha1
}
/***/ }),
/* 147 */
/***/ (function(module, exports, __webpack_require__) {
/**
* A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined
* in FIPS 180-2
* Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.
* Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
*
*/
var inherits = __webpack_require__(135).inherits
module.exports = function (Buffer, Hash) {
var K = [
0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,
0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,
0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,
0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,
0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,
0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,
0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,
0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,
0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,
0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,
0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,
0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,
0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,
0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,
0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,
0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2
]
var W = new Array(64)
function Sha256() {
this.init()
this._w = W //new Array(64)
Hash.call(this, 16*4, 14*4)
}
inherits(Sha256, Hash)
Sha256.prototype.init = function () {
this._a = 0x6a09e667|0
this._b = 0xbb67ae85|0
this._c = 0x3c6ef372|0
this._d = 0xa54ff53a|0
this._e = 0x510e527f|0
this._f = 0x9b05688c|0
this._g = 0x1f83d9ab|0
this._h = 0x5be0cd19|0
this._len = this._s = 0
return this
}
function S (X, n) {
return (X >>> n) | (X << (32 - n));
}
function R (X, n) {
return (X >>> n);
}
function Ch (x, y, z) {
return ((x & y) ^ ((~x) & z));
}
function Maj (x, y, z) {
return ((x & y) ^ (x & z) ^ (y & z));
}
function Sigma0256 (x) {
return (S(x, 2) ^ S(x, 13) ^ S(x, 22));
}
function Sigma1256 (x) {
return (S(x, 6) ^ S(x, 11) ^ S(x, 25));
}
function Gamma0256 (x) {
return (S(x, 7) ^ S(x, 18) ^ R(x, 3));
}
function Gamma1256 (x) {
return (S(x, 17) ^ S(x, 19) ^ R(x, 10));
}
Sha256.prototype._update = function(M) {
var W = this._w
var a, b, c, d, e, f, g, h
var T1, T2
a = this._a | 0
b = this._b | 0
c = this._c | 0
d = this._d | 0
e = this._e | 0
f = this._f | 0
g = this._g | 0
h = this._h | 0
for (var j = 0; j < 64; j++) {
var w = W[j] = j < 16
? M.readInt32BE(j * 4)
: Gamma1256(W[j - 2]) + W[j - 7] + Gamma0256(W[j - 15]) + W[j - 16]
T1 = h + Sigma1256(e) + Ch(e, f, g) + K[j] + w
T2 = Sigma0256(a) + Maj(a, b, c);
h = g; g = f; f = e; e = d + T1; d = c; c = b; b = a; a = T1 + T2;
}
this._a = (a + this._a) | 0
this._b = (b + this._b) | 0
this._c = (c + this._c) | 0
this._d = (d + this._d) | 0
this._e = (e + this._e) | 0
this._f = (f + this._f) | 0
this._g = (g + this._g) | 0
this._h = (h + this._h) | 0
};
Sha256.prototype._hash = function () {
var H = new Buffer(32)
H.writeInt32BE(this._a, 0)
H.writeInt32BE(this._b, 4)
H.writeInt32BE(this._c, 8)
H.writeInt32BE(this._d, 12)
H.writeInt32BE(this._e, 16)
H.writeInt32BE(this._f, 20)
H.writeInt32BE(this._g, 24)
H.writeInt32BE(this._h, 28)
return H
}
return Sha256
}
/***/ }),
/* 148 */
/***/ (function(module, exports, __webpack_require__) {
var inherits = __webpack_require__(135).inherits
module.exports = function (Buffer, Hash) {
var K = [
0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,
0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,
0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,
0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,
0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,
0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,
0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,
0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,
0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,
0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,
0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,
0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,
0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,
0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,
0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,
0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,
0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,
0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,
0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,
0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,
0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,
0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,
0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,
0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,
0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,
0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,
0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,
0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,
0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,
0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,
0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,
0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,
0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,
0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,
0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,
0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,
0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,
0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,
0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,
0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817
]
var W = new Array(160)
function Sha512() {
this.init()
this._w = W
Hash.call(this, 128, 112)
}
inherits(Sha512, Hash)
Sha512.prototype.init = function () {
this._a = 0x6a09e667|0
this._b = 0xbb67ae85|0
this._c = 0x3c6ef372|0
this._d = 0xa54ff53a|0
this._e = 0x510e527f|0
this._f = 0x9b05688c|0
this._g = 0x1f83d9ab|0
this._h = 0x5be0cd19|0
this._al = 0xf3bcc908|0
this._bl = 0x84caa73b|0
this._cl = 0xfe94f82b|0
this._dl = 0x5f1d36f1|0
this._el = 0xade682d1|0
this._fl = 0x2b3e6c1f|0
this._gl = 0xfb41bd6b|0
this._hl = 0x137e2179|0
this._len = this._s = 0
return this
}
function S (X, Xl, n) {
return (X >>> n) | (Xl << (32 - n))
}
function Ch (x, y, z) {
return ((x & y) ^ ((~x) & z));
}
function Maj (x, y, z) {
return ((x & y) ^ (x & z) ^ (y & z));
}
Sha512.prototype._update = function(M) {
var W = this._w
var a, b, c, d, e, f, g, h
var al, bl, cl, dl, el, fl, gl, hl
a = this._a | 0
b = this._b | 0
c = this._c | 0
d = this._d | 0
e = this._e | 0
f = this._f | 0
g = this._g | 0
h = this._h | 0
al = this._al | 0
bl = this._bl | 0
cl = this._cl | 0
dl = this._dl | 0
el = this._el | 0
fl = this._fl | 0
gl = this._gl | 0
hl = this._hl | 0
for (var i = 0; i < 80; i++) {
var j = i * 2
var Wi, Wil
if (i < 16) {
Wi = W[j] = M.readInt32BE(j * 4)
Wil = W[j + 1] = M.readInt32BE(j * 4 + 4)
} else {
var x = W[j - 15*2]
var xl = W[j - 15*2 + 1]
var gamma0 = S(x, xl, 1) ^ S(x, xl, 8) ^ (x >>> 7)
var gamma0l = S(xl, x, 1) ^ S(xl, x, 8) ^ S(xl, x, 7)
x = W[j - 2*2]
xl = W[j - 2*2 + 1]
var gamma1 = S(x, xl, 19) ^ S(xl, x, 29) ^ (x >>> 6)
var gamma1l = S(xl, x, 19) ^ S(x, xl, 29) ^ S(xl, x, 6)
// W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]
var Wi7 = W[j - 7*2]
var Wi7l = W[j - 7*2 + 1]
var Wi16 = W[j - 16*2]
var Wi16l = W[j - 16*2 + 1]
Wil = gamma0l + Wi7l
Wi = gamma0 + Wi7 + ((Wil >>> 0) < (gamma0l >>> 0) ? 1 : 0)
Wil = Wil + gamma1l
Wi = Wi + gamma1 + ((Wil >>> 0) < (gamma1l >>> 0) ? 1 : 0)
Wil = Wil + Wi16l
Wi = Wi + Wi16 + ((Wil >>> 0) < (Wi16l >>> 0) ? 1 : 0)
W[j] = Wi
W[j + 1] = Wil
}
var maj = Maj(a, b, c)
var majl = Maj(al, bl, cl)
var sigma0h = S(a, al, 28) ^ S(al, a, 2) ^ S(al, a, 7)
var sigma0l = S(al, a, 28) ^ S(a, al, 2) ^ S(a, al, 7)
var sigma1h = S(e, el, 14) ^ S(e, el, 18) ^ S(el, e, 9)
var sigma1l = S(el, e, 14) ^ S(el, e, 18) ^ S(e, el, 9)
// t1 = h + sigma1 + ch + K[i] + W[i]
var Ki = K[j]
var Kil = K[j + 1]
var ch = Ch(e, f, g)
var chl = Ch(el, fl, gl)
var t1l = hl + sigma1l
var t1 = h + sigma1h + ((t1l >>> 0) < (hl >>> 0) ? 1 : 0)
t1l = t1l + chl
t1 = t1 + ch + ((t1l >>> 0) < (chl >>> 0) ? 1 : 0)
t1l = t1l + Kil
t1 = t1 + Ki + ((t1l >>> 0) < (Kil >>> 0) ? 1 : 0)
t1l = t1l + Wil
t1 = t1 + Wi + ((t1l >>> 0) < (Wil >>> 0) ? 1 : 0)
// t2 = sigma0 + maj
var t2l = sigma0l + majl
var t2 = sigma0h + maj + ((t2l >>> 0) < (sigma0l >>> 0) ? 1 : 0)
h = g
hl = gl
g = f
gl = fl
f = e
fl = el
el = (dl + t1l) | 0
e = (d + t1 + ((el >>> 0) < (dl >>> 0) ? 1 : 0)) | 0
d = c
dl = cl
c = b
cl = bl
b = a
bl = al
al = (t1l + t2l) | 0
a = (t1 + t2 + ((al >>> 0) < (t1l >>> 0) ? 1 : 0)) | 0
}
this._al = (this._al + al) | 0
this._bl = (this._bl + bl) | 0
this._cl = (this._cl + cl) | 0
this._dl = (this._dl + dl) | 0
this._el = (this._el + el) | 0
this._fl = (this._fl + fl) | 0
this._gl = (this._gl + gl) | 0
this._hl = (this._hl + hl) | 0
this._a = (this._a + a + ((this._al >>> 0) < (al >>> 0) ? 1 : 0)) | 0
this._b = (this._b + b + ((this._bl >>> 0) < (bl >>> 0) ? 1 : 0)) | 0
this._c = (this._c + c + ((this._cl >>> 0) < (cl >>> 0) ? 1 : 0)) | 0
this._d = (this._d + d + ((this._dl >>> 0) < (dl >>> 0) ? 1 : 0)) | 0
this._e = (this._e + e + ((this._el >>> 0) < (el >>> 0) ? 1 : 0)) | 0
this._f = (this._f + f + ((this._fl >>> 0) < (fl >>> 0) ? 1 : 0)) | 0
this._g = (this._g + g + ((this._gl >>> 0) < (gl >>> 0) ? 1 : 0)) | 0
this._h = (this._h + h + ((this._hl >>> 0) < (hl >>> 0) ? 1 : 0)) | 0
}
Sha512.prototype._hash = function () {
var H = new Buffer(64)
function writeInt64BE(h, l, offset) {
H.writeInt32BE(h, offset)
H.writeInt32BE(l, offset + 4)
}
writeInt64BE(this._a, this._al, 0)
writeInt64BE(this._b, this._bl, 8)
writeInt64BE(this._c, this._cl, 16)
writeInt64BE(this._d, this._dl, 24)
writeInt64BE(this._e, this._el, 32)
writeInt64BE(this._f, this._fl, 40)
writeInt64BE(this._g, this._gl, 48)
writeInt64BE(this._h, this._hl, 56)
return H
}
return Sha512
}
/***/ }),
/* 149 */
/***/ (function(module, exports, __webpack_require__) {
/*
* A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
* Digest Algorithm, as defined in RFC 1321.
* Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.
* Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
* Distributed under the BSD License
* See http://pajhome.org.uk/crypt/md5 for more info.
*/
var helpers = __webpack_require__(150);
/*
* Calculate the MD5 of an array of little-endian words, and a bit length
*/
function core_md5(x, len)
{
/* append padding */
x[len >> 5] |= 0x80 << ((len) % 32);
x[(((len + 64) >>> 9) << 4) + 14] = len;
var a = 1732584193;
var b = -271733879;
var c = -1732584194;
var d = 271733878;
for(var i = 0; i < x.length; i += 16)
{
var olda = a;
var oldb = b;
var oldc = c;
var oldd = d;
a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936);
d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586);
c = md5_ff(c, d, a, b, x[i+ 2], 17, 606105819);
b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330);
a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897);
d = md5_ff(d, a, b, c, x[i+ 5], 12, 1200080426);
c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341);
b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983);
a = md5_ff(a, b, c, d, x[i+ 8], 7 , 1770035416);
d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417);
c = md5_ff(c, d, a, b, x[i+10], 17, -42063);
b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162);
a = md5_ff(a, b, c, d, x[i+12], 7 , 1804603682);
d = md5_ff(d, a, b, c, x[i+13], 12, -40341101);
c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290);
b = md5_ff(b, c, d, a, x[i+15], 22, 1236535329);
a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510);
d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632);
c = md5_gg(c, d, a, b, x[i+11], 14, 643717713);
b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);
a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);
d = md5_gg(d, a, b, c, x[i+10], 9 , 38016083);
c = md5_gg(c, d, a, b, x[i+15], 14, -660478335);
b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848);
a = md5_gg(a, b, c, d, x[i+ 9], 5 , 568446438);
d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690);
c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961);
b = md5_gg(b, c, d, a, x[i+ 8], 20, 1163531501);
a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);
d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);
c = md5_gg(c, d, a, b, x[i+ 7], 14, 1735328473);
b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734);
a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558);
d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463);
c = md5_hh(c, d, a, b, x[i+11], 16, 1839030562);
b = md5_hh(b, c, d, a, x[i+14], 23, -35309556);
a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);
d = md5_hh(d, a, b, c, x[i+ 4], 11, 1272893353);
c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);
b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640);
a = md5_hh(a, b, c, d, x[i+13], 4 , 681279174);
d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222);
c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979);
b = md5_hh(b, c, d, a, x[i+ 6], 23, 76029189);
a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);
d = md5_hh(d, a, b, c, x[i+12], 11, -421815835);
c = md5_hh(c, d, a, b, x[i+15], 16, 530742520);
b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);
a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844);
d = md5_ii(d, a, b, c, x[i+ 7], 10, 1126891415);
c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905);
b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055);
a = md5_ii(a, b, c, d, x[i+12], 6 , 1700485571);
d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);
c = md5_ii(c, d, a, b, x[i+10], 15, -1051523);
b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799);
a = md5_ii(a, b, c, d, x[i+ 8], 6 , 1873313359);
d = md5_ii(d, a, b, c, x[i+15], 10, -30611744);
c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380);
b = md5_ii(b, c, d, a, x[i+13], 21, 1309151649);
a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);
d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379);
c = md5_ii(c, d, a, b, x[i+ 2], 15, 718787259);
b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551);
a = safe_add(a, olda);
b = safe_add(b, oldb);
c = safe_add(c, oldc);
d = safe_add(d, oldd);
}
return Array(a, b, c, d);
}
/*
* These functions implement the four basic operations the algorithm uses.
*/
function md5_cmn(q, a, b, x, s, t)
{
return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
}
function md5_ff(a, b, c, d, x, s, t)
{
return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
}
function md5_gg(a, b, c, d, x, s, t)
{
return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
}
function md5_hh(a, b, c, d, x, s, t)
{
return md5_cmn(b ^ c ^ d, a, b, x, s, t);
}
function md5_ii(a, b, c, d, x, s, t)
{
return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
}
/*
* Add integers, wrapping at 2^32. This uses 16-bit operations internally
* to work around bugs in some JS interpreters.
*/
function safe_add(x, y)
{
var lsw = (x & 0xFFFF) + (y & 0xFFFF);
var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
return (msw << 16) | (lsw & 0xFFFF);
}
/*
* Bitwise rotate a 32-bit number to the left.
*/
function bit_rol(num, cnt)
{
return (num << cnt) | (num >>> (32 - cnt));
}
module.exports = function md5(buf) {
return helpers.hash(buf, core_md5, 16);
};
/***/ }),
/* 150 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(Buffer) {var intSize = 4;
var zeroBuffer = new Buffer(intSize); zeroBuffer.fill(0);
var chrsz = 8;
function toArray(buf, bigEndian) {
if ((buf.length % intSize) !== 0) {
var len = buf.length + (intSize - (buf.length % intSize));
buf = Buffer.concat([buf, zeroBuffer], len);
}
var arr = [];
var fn = bigEndian ? buf.readInt32BE : buf.readInt32LE;
for (var i = 0; i < buf.length; i += intSize) {
arr.push(fn.call(buf, i));
}
return arr;
}
function toBuffer(arr, size, bigEndian) {
var buf = new Buffer(size);
var fn = bigEndian ? buf.writeInt32BE : buf.writeInt32LE;
for (var i = 0; i < arr.length; i++) {
fn.call(buf, arr[i], i * 4, true);
}
return buf;
}
function hash(buf, fn, hashSize, bigEndian) {
if (!Buffer.isBuffer(buf)) buf = new Buffer(buf);
var arr = fn(toArray(buf, bigEndian), buf.length * chrsz);
return toBuffer(arr, hashSize, bigEndian);
}
module.exports = { hash: hash };
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(97).Buffer))
/***/ }),
/* 151 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(Buffer) {
module.exports = ripemd160
/*
CryptoJS v3.1.2
code.google.com/p/crypto-js
(c) 2009-2013 by Jeff Mott. All rights reserved.
code.google.com/p/crypto-js/wiki/License
*/
/** @preserve
(c) 2012 by Cédric Mesnil. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
// Constants table
var zl = [
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,
3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,
1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,
4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13];
var zr = [
5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,
6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,
15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,
8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,
12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11];
var sl = [
11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,
7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,
11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,
11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,
9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 ];
var sr = [
8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,
9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,
9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,
15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,
8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 ];
var hl = [ 0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E];
var hr = [ 0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000];
var bytesToWords = function (bytes) {
var words = [];
for (var i = 0, b = 0; i < bytes.length; i++, b += 8) {
words[b >>> 5] |= bytes[i] << (24 - b % 32);
}
return words;
};
var wordsToBytes = function (words) {
var bytes = [];
for (var b = 0; b < words.length * 32; b += 8) {
bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);
}
return bytes;
};
var processBlock = function (H, M, offset) {
// Swap endian
for (var i = 0; i < 16; i++) {
var offset_i = offset + i;
var M_offset_i = M[offset_i];
// Swap
M[offset_i] = (
(((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |
(((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)
);
}
// Working variables
var al, bl, cl, dl, el;
var ar, br, cr, dr, er;
ar = al = H[0];
br = bl = H[1];
cr = cl = H[2];
dr = dl = H[3];
er = el = H[4];
// Computation
var t;
for (var i = 0; i < 80; i += 1) {
t = (al + M[offset+zl[i]])|0;
if (i<16){
t += f1(bl,cl,dl) + hl[0];
} else if (i<32) {
t += f2(bl,cl,dl) + hl[1];
} else if (i<48) {
t += f3(bl,cl,dl) + hl[2];
} else if (i<64) {
t += f4(bl,cl,dl) + hl[3];
} else {// if (i<80) {
t += f5(bl,cl,dl) + hl[4];
}
t = t|0;
t = rotl(t,sl[i]);
t = (t+el)|0;
al = el;
el = dl;
dl = rotl(cl, 10);
cl = bl;
bl = t;
t = (ar + M[offset+zr[i]])|0;
if (i<16){
t += f5(br,cr,dr) + hr[0];
} else if (i<32) {
t += f4(br,cr,dr) + hr[1];
} else if (i<48) {
t += f3(br,cr,dr) + hr[2];
} else if (i<64) {
t += f2(br,cr,dr) + hr[3];
} else {// if (i<80) {
t += f1(br,cr,dr) + hr[4];
}
t = t|0;
t = rotl(t,sr[i]) ;
t = (t+er)|0;
ar = er;
er = dr;
dr = rotl(cr, 10);
cr = br;
br = t;
}
// Intermediate hash value
t = (H[1] + cl + dr)|0;
H[1] = (H[2] + dl + er)|0;
H[2] = (H[3] + el + ar)|0;
H[3] = (H[4] + al + br)|0;
H[4] = (H[0] + bl + cr)|0;
H[0] = t;
};
function f1(x, y, z) {
return ((x) ^ (y) ^ (z));
}
function f2(x, y, z) {
return (((x)&(y)) | ((~x)&(z)));
}
function f3(x, y, z) {
return (((x) | (~(y))) ^ (z));
}
function f4(x, y, z) {
return (((x) & (z)) | ((y)&(~(z))));
}
function f5(x, y, z) {
return ((x) ^ ((y) |(~(z))));
}
function rotl(x,n) {
return (x<<n) | (x>>>(32-n));
}
function ripemd160(message) {
var H = [0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0];
if (typeof message == 'string')
message = new Buffer(message, 'utf8');
var m = bytesToWords(message);
var nBitsLeft = message.length * 8;
var nBitsTotal = message.length * 8;
// Add padding
m[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);
m[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (
(((nBitsTotal << 8) | (nBitsTotal >>> 24)) & 0x00ff00ff) |
(((nBitsTotal << 24) | (nBitsTotal >>> 8)) & 0xff00ff00)
);
for (var i=0 ; i<m.length; i += 16) {
processBlock(H, m, i);
}
// Swap endian
for (var i = 0; i < 5; i++) {
// Shortcut
var H_i = H[i];
// Swap
H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |
(((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);
}
var digestbytes = wordsToBytes(H);
return new Buffer(digestbytes);
}
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(97).Buffer))
/***/ }),
/* 152 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(Buffer) {var createHash = __webpack_require__(143)
var zeroBuffer = new Buffer(128)
zeroBuffer.fill(0)
module.exports = Hmac
function Hmac (alg, key) {
if(!(this instanceof Hmac)) return new Hmac(alg, key)
this._opad = opad
this._alg = alg
var blocksize = (alg === 'sha512') ? 128 : 64
key = this._key = !Buffer.isBuffer(key) ? new Buffer(key) : key
if(key.length > blocksize) {
key = createHash(alg).update(key).digest()
} else if(key.length < blocksize) {
key = Buffer.concat([key, zeroBuffer], blocksize)
}
var ipad = this._ipad = new Buffer(blocksize)
var opad = this._opad = new Buffer(blocksize)
for(var i = 0; i < blocksize; i++) {
ipad[i] = key[i] ^ 0x36
opad[i] = key[i] ^ 0x5C
}
this._hash = createHash(alg).update(ipad)
}
Hmac.prototype.update = function (data, enc) {
this._hash.update(data, enc)
return this
}
Hmac.prototype.digest = function (enc) {
var h = this._hash.digest()
return createHash(this._alg).update(this._opad).update(h).digest(enc)
}
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(97).Buffer))
/***/ }),
/* 153 */
/***/ (function(module, exports, __webpack_require__) {
var pbkdf2Export = __webpack_require__(154)
module.exports = function (crypto, exports) {
exports = exports || {}
var exported = pbkdf2Export(crypto)
exports.pbkdf2 = exported.pbkdf2
exports.pbkdf2Sync = exported.pbkdf2Sync
return exports
}
/***/ }),
/* 154 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(Buffer) {module.exports = function(crypto) {
function pbkdf2(password, salt, iterations, keylen, digest, callback) {
if ('function' === typeof digest) {
callback = digest
digest = undefined
}
if ('function' !== typeof callback)
throw new Error('No callback provided to pbkdf2')
setTimeout(function() {
var result
try {
result = pbkdf2Sync(password, salt, iterations, keylen, digest)
} catch (e) {
return callback(e)
}
callback(undefined, result)
})
}
function pbkdf2Sync(password, salt, iterations, keylen, digest) {
if ('number' !== typeof iterations)
throw new TypeError('Iterations not a number')
if (iterations < 0)
throw new TypeError('Bad iterations')
if ('number' !== typeof keylen)
throw new TypeError('Key length not a number')
if (keylen < 0)
throw new TypeError('Bad key length')
digest = digest || 'sha1'
if (!Buffer.isBuffer(password)) password = new Buffer(password)
if (!Buffer.isBuffer(salt)) salt = new Buffer(salt)
var hLen, l = 1, r, T
var DK = new Buffer(keylen)
var block1 = new Buffer(salt.length + 4)
salt.copy(block1, 0, 0, salt.length)
for (var i = 1; i <= l; i++) {
block1.writeUInt32BE(i, salt.length)
var U = crypto.createHmac(digest, password).update(block1).digest()
if (!hLen) {
hLen = U.length
T = new Buffer(hLen)
l = Math.ceil(keylen / hLen)
r = keylen - (l - 1) * hLen
if (keylen > (Math.pow(2, 32) - 1) * hLen)
throw new TypeError('keylen exceeds maximum length')
}
U.copy(T, 0, 0, hLen)
for (var j = 1; j < iterations; j++) {
U = crypto.createHmac(digest, password).update(U).digest()
for (var k = 0; k < hLen; k++) {
T[k] ^= U[k]
}
}
var destPos = (i - 1) * hLen
var len = (i == l ? r : hLen)
T.copy(DK, destPos, 0, len)
}
return DK
}
return {
pbkdf2: pbkdf2,
pbkdf2Sync: pbkdf2Sync
}
}
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(97).Buffer))
/***/ }),
/* 155 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = function (crypto, exports) {
exports = exports || {};
var ciphers = __webpack_require__(156)(crypto);
exports.createCipher = ciphers.createCipher;
exports.createCipheriv = ciphers.createCipheriv;
var deciphers = __webpack_require__(168)(crypto);
exports.createDecipher = deciphers.createDecipher;
exports.createDecipheriv = deciphers.createDecipheriv;
var modes = __webpack_require__(159);
function listCiphers () {
return Object.keys(modes);
}
exports.listCiphers = listCiphers;
};
/***/ }),
/* 156 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(Buffer) {var aes = __webpack_require__(157);
var Transform = __webpack_require__(158);
var inherits = __webpack_require__(89);
var modes = __webpack_require__(159);
var ebtk = __webpack_require__(160);
var StreamCipher = __webpack_require__(161);
inherits(Cipher, Transform);
function Cipher(mode, key, iv) {
if (!(this instanceof Cipher)) {
return new Cipher(mode, key, iv);
}
Transform.call(this);
this._cache = new Splitter();
this._cipher = new aes.AES(key);
this._prev = new Buffer(iv.length);
iv.copy(this._prev);
this._mode = mode;
}
Cipher.prototype._transform = function (data, _, next) {
this._cache.add(data);
var chunk;
var thing;
while ((chunk = this._cache.get())) {
thing = this._mode.encrypt(this, chunk);
this.push(thing);
}
next();
};
Cipher.prototype._flush = function (next) {
var chunk = this._cache.flush();
this.push(this._mode.encrypt(this, chunk));
this._cipher.scrub();
next();
};
function Splitter() {
if (!(this instanceof Splitter)) {
return new Splitter();
}
this.cache = new Buffer('');
}
Splitter.prototype.add = function (data) {
this.cache = Buffer.concat([this.cache, data]);
};
Splitter.prototype.get = function () {
if (this.cache.length > 15) {
var out = this.cache.slice(0, 16);
this.cache = this.cache.slice(16);
return out;
}
return null;
};
Splitter.prototype.flush = function () {
var len = 16 - this.cache.length;
var padBuff = new Buffer(len);
var i = -1;
while (++i < len) {
padBuff.writeUInt8(len, i);
}
var out = Buffer.concat([this.cache, padBuff]);
return out;
};
var modelist = {
ECB: __webpack_require__(162),
CBC: __webpack_require__(163),
CFB: __webpack_require__(165),
OFB: __webpack_require__(166),
CTR: __webpack_require__(167)
};
module.exports = function (crypto) {
function createCipheriv(suite, password, iv) {
var config = modes[suite];
if (!config) {
throw new TypeError('invalid suite type');
}
if (typeof iv === 'string') {
iv = new Buffer(iv);
}
if (typeof password === 'string') {
password = new Buffer(password);
}
if (password.length !== config.key/8) {
throw new TypeError('invalid key length ' + password.length);
}
if (iv.length !== config.iv) {
throw new TypeError('invalid iv length ' + iv.length);
}
if (config.type === 'stream') {
return new StreamCipher(modelist[config.mode], password, iv);
}
return new Cipher(modelist[config.mode], password, iv);
}
function createCipher (suite, password) {
var config = modes[suite];
if (!config) {
throw new TypeError('invalid suite type');
}
var keys = ebtk(crypto, password, config.key, config.iv);
return createCipheriv(suite, keys.key, keys.iv);
}
return {
createCipher: createCipher,
createCipheriv: createCipheriv
};
};
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(97).Buffer))
/***/ }),
/* 157 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(Buffer) {var uint_max = Math.pow(2, 32);
function fixup_uint32(x) {
var ret, x_pos;
ret = x > uint_max || x < 0 ? (x_pos = Math.abs(x) % uint_max, x < 0 ? uint_max - x_pos : x_pos) : x;
return ret;
}
function scrub_vec(v) {
var i, _i, _ref;
for (i = _i = 0, _ref = v.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {
v[i] = 0;
}
return false;
}
function Global() {
var i;
this.SBOX = [];
this.INV_SBOX = [];
this.SUB_MIX = (function() {
var _i, _results;
_results = [];
for (i = _i = 0; _i < 4; i = ++_i) {
_results.push([]);
}
return _results;
})();
this.INV_SUB_MIX = (function() {
var _i, _results;
_results = [];
for (i = _i = 0; _i < 4; i = ++_i) {
_results.push([]);
}
return _results;
})();
this.init();
this.RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];
}
Global.prototype.init = function() {
var d, i, sx, t, x, x2, x4, x8, xi, _i;
d = (function() {
var _i, _results;
_results = [];
for (i = _i = 0; _i < 256; i = ++_i) {
if (i < 128) {
_results.push(i << 1);
} else {
_results.push((i << 1) ^ 0x11b);
}
}
return _results;
})();
x = 0;
xi = 0;
for (i = _i = 0; _i < 256; i = ++_i) {
sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4);
sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63;
this.SBOX[x] = sx;
this.INV_SBOX[sx] = x;
x2 = d[x];
x4 = d[x2];
x8 = d[x4];
t = (d[sx] * 0x101) ^ (sx * 0x1010100);
this.SUB_MIX[0][x] = (t << 24) | (t >>> 8);
this.SUB_MIX[1][x] = (t << 16) | (t >>> 16);
this.SUB_MIX[2][x] = (t << 8) | (t >>> 24);
this.SUB_MIX[3][x] = t;
t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100);
this.INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8);
this.INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16);
this.INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24);
this.INV_SUB_MIX[3][sx] = t;
if (x === 0) {
x = xi = 1;
} else {
x = x2 ^ d[d[d[x8 ^ x2]]];
xi ^= d[d[xi]];
}
}
return true;
};
var G = new Global();
AES.blockSize = 4 * 4;
AES.prototype.blockSize = AES.blockSize;
AES.keySize = 256 / 8;
AES.prototype.keySize = AES.keySize;
AES.ivSize = AES.blockSize;
AES.prototype.ivSize = AES.ivSize;
function bufferToArray(buf) {
var len = buf.length/4;
var out = new Array(len);
var i = -1;
while (++i < len) {
out[i] = buf.readUInt32BE(i * 4);
}
return out;
}
function AES(key) {
this._key = bufferToArray(key);
this._doReset();
}
AES.prototype._doReset = function() {
var invKsRow, keySize, keyWords, ksRow, ksRows, t, _i, _j;
keyWords = this._key;
keySize = keyWords.length;
this._nRounds = keySize + 6;
ksRows = (this._nRounds + 1) * 4;
this._keySchedule = [];
for (ksRow = _i = 0; 0 <= ksRows ? _i < ksRows : _i > ksRows; ksRow = 0 <= ksRows ? ++_i : --_i) {
this._keySchedule[ksRow] = ksRow < keySize ? keyWords[ksRow] : (t = this._keySchedule[ksRow - 1], (ksRow % keySize) === 0 ? (t = (t << 8) | (t >>> 24), t = (G.SBOX[t >>> 24] << 24) | (G.SBOX[(t >>> 16) & 0xff] << 16) | (G.SBOX[(t >>> 8) & 0xff] << 8) | G.SBOX[t & 0xff], t ^= G.RCON[(ksRow / keySize) | 0] << 24) : keySize > 6 && ksRow % keySize === 4 ? t = (G.SBOX[t >>> 24] << 24) | (G.SBOX[(t >>> 16) & 0xff] << 16) | (G.SBOX[(t >>> 8) & 0xff] << 8) | G.SBOX[t & 0xff] : void 0, this._keySchedule[ksRow - keySize] ^ t);
}
this._invKeySchedule = [];
for (invKsRow = _j = 0; 0 <= ksRows ? _j < ksRows : _j > ksRows; invKsRow = 0 <= ksRows ? ++_j : --_j) {
ksRow = ksRows - invKsRow;
t = this._keySchedule[ksRow - (invKsRow % 4 ? 0 : 4)];
this._invKeySchedule[invKsRow] = invKsRow < 4 || ksRow <= 4 ? t : G.INV_SUB_MIX[0][G.SBOX[t >>> 24]] ^ G.INV_SUB_MIX[1][G.SBOX[(t >>> 16) & 0xff]] ^ G.INV_SUB_MIX[2][G.SBOX[(t >>> 8) & 0xff]] ^ G.INV_SUB_MIX[3][G.SBOX[t & 0xff]];
}
return true;
};
AES.prototype.encryptBlock = function(M) {
M = bufferToArray(new Buffer(M));
var out = this._doCryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX);
var buf = new Buffer(16);
buf.writeUInt32BE(out[0], 0);
buf.writeUInt32BE(out[1], 4);
buf.writeUInt32BE(out[2], 8);
buf.writeUInt32BE(out[3], 12);
return buf;
};
AES.prototype.decryptBlock = function(M) {
M = bufferToArray(new Buffer(M));
var temp = [M[3], M[1]];
M[1] = temp[0];
M[3] = temp[1];
var out = this._doCryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX);
var buf = new Buffer(16);
buf.writeUInt32BE(out[0], 0);
buf.writeUInt32BE(out[3], 4);
buf.writeUInt32BE(out[2], 8);
buf.writeUInt32BE(out[1], 12);
return buf;
};
AES.prototype.scrub = function() {
scrub_vec(this._keySchedule);
scrub_vec(this._invKeySchedule);
scrub_vec(this._key);
};
AES.prototype._doCryptBlock = function(M, keySchedule, SUB_MIX, SBOX) {
var ksRow, round, s0, s1, s2, s3, t0, t1, t2, t3, _i, _ref;
s0 = M[0] ^ keySchedule[0];
s1 = M[1] ^ keySchedule[1];
s2 = M[2] ^ keySchedule[2];
s3 = M[3] ^ keySchedule[3];
ksRow = 4;
for (round = _i = 1, _ref = this._nRounds; 1 <= _ref ? _i < _ref : _i > _ref; round = 1 <= _ref ? ++_i : --_i) {
t0 = SUB_MIX[0][s0 >>> 24] ^ SUB_MIX[1][(s1 >>> 16) & 0xff] ^ SUB_MIX[2][(s2 >>> 8) & 0xff] ^ SUB_MIX[3][s3 & 0xff] ^ keySchedule[ksRow++];
t1 = SUB_MIX[0][s1 >>> 24] ^ SUB_MIX[1][(s2 >>> 16) & 0xff] ^ SUB_MIX[2][(s3 >>> 8) & 0xff] ^ SUB_MIX[3][s0 & 0xff] ^ keySchedule[ksRow++];
t2 = SUB_MIX[0][s2 >>> 24] ^ SUB_MIX[1][(s3 >>> 16) & 0xff] ^ SUB_MIX[2][(s0 >>> 8) & 0xff] ^ SUB_MIX[3][s1 & 0xff] ^ keySchedule[ksRow++];
t3 = SUB_MIX[0][s3 >>> 24] ^ SUB_MIX[1][(s0 >>> 16) & 0xff] ^ SUB_MIX[2][(s1 >>> 8) & 0xff] ^ SUB_MIX[3][s2 & 0xff] ^ keySchedule[ksRow++];
s0 = t0;
s1 = t1;
s2 = t2;
s3 = t3;
}
t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++];
t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++];
t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++];
t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++];
return [
fixup_uint32(t0),
fixup_uint32(t1),
fixup_uint32(t2),
fixup_uint32(t3)
];
};
exports.AES = AES;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(97).Buffer))
/***/ }),
/* 158 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(Buffer) {var Transform = __webpack_require__(87).Transform;
var inherits = __webpack_require__(89);
module.exports = CipherBase;
inherits(CipherBase, Transform);
function CipherBase() {
Transform.call(this);
}
CipherBase.prototype.update = function (data, inputEnd, outputEnc) {
this.write(data, inputEnd);
var outData = new Buffer('');
var chunk;
while ((chunk = this.read())) {
outData = Buffer.concat([outData, chunk]);
}
if (outputEnc) {
outData = outData.toString(outputEnc);
}
return outData;
};
CipherBase.prototype.final = function (outputEnc) {
this.end();
var outData = new Buffer('');
var chunk;
while ((chunk = this.read())) {
outData = Buffer.concat([outData, chunk]);
}
if (outputEnc) {
outData = outData.toString(outputEnc);
}
return outData;
};
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(97).Buffer))
/***/ }),
/* 159 */
/***/ (function(module, exports) {
exports['aes-128-ecb'] = {
cipher: 'AES',
key: 128,
iv: 0,
mode: 'ECB',
type: 'block'
};
exports['aes-192-ecb'] = {
cipher: 'AES',
key: 192,
iv: 0,
mode: 'ECB',
type: 'block'
};
exports['aes-256-ecb'] = {
cipher: 'AES',
key: 256,
iv: 0,
mode: 'ECB',
type: 'block'
};
exports['aes-128-cbc'] = {
cipher: 'AES',
key: 128,
iv: 16,
mode: 'CBC',
type: 'block'
};
exports['aes-192-cbc'] = {
cipher: 'AES',
key: 192,
iv: 16,
mode: 'CBC',
type: 'block'
};
exports['aes-256-cbc'] = {
cipher: 'AES',
key: 256,
iv: 16,
mode: 'CBC',
type: 'block'
};
exports['aes128'] = exports['aes-128-cbc'];
exports['aes192'] = exports['aes-192-cbc'];
exports['aes256'] = exports['aes-256-cbc'];
exports['aes-128-cfb'] = {
cipher: 'AES',
key: 128,
iv: 16,
mode: 'CFB',
type: 'stream'
};
exports['aes-192-cfb'] = {
cipher: 'AES',
key: 192,
iv: 16,
mode: 'CFB',
type: 'stream'
};
exports['aes-256-cfb'] = {
cipher: 'AES',
key: 256,
iv: 16,
mode: 'CFB',
type: 'stream'
};
exports['aes-128-ofb'] = {
cipher: 'AES',
key: 128,
iv: 16,
mode: 'OFB',
type: 'stream'
};
exports['aes-192-ofb'] = {
cipher: 'AES',
key: 192,
iv: 16,
mode: 'OFB',
type: 'stream'
};
exports['aes-256-ofb'] = {
cipher: 'AES',
key: 256,
iv: 16,
mode: 'OFB',
type: 'stream'
};
exports['aes-128-ctr'] = {
cipher: 'AES',
key: 128,
iv: 16,
mode: 'CTR',
type: 'stream'
};
exports['aes-192-ctr'] = {
cipher: 'AES',
key: 192,
iv: 16,
mode: 'CTR',
type: 'stream'
};
exports['aes-256-ctr'] = {
cipher: 'AES',
key: 256,
iv: 16,
mode: 'CTR',
type: 'stream'
};
/***/ }),
/* 160 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(Buffer) {
module.exports = function (crypto, password, keyLen, ivLen) {
keyLen = keyLen/8;
ivLen = ivLen || 0;
var ki = 0;
var ii = 0;
var key = new Buffer(keyLen);
var iv = new Buffer(ivLen);
var addmd = 0;
var md, md_buf;
var i;
while (true) {
md = crypto.createHash('md5');
if(addmd++ > 0) {
md.update(md_buf);
}
md.update(password);
md_buf = md.digest();
i = 0;
if(keyLen > 0) {
while(true) {
if(keyLen === 0) {
break;
}
if(i === md_buf.length) {
break;
}
key[ki++] = md_buf[i];
keyLen--;
i++;
}
}
if(ivLen > 0 && i !== md_buf.length) {
while(true) {
if(ivLen === 0) {
break;
}
if(i === md_buf.length) {
break;
}
iv[ii++] = md_buf[i];
ivLen--;
i++;
}
}
if(keyLen === 0 && ivLen === 0) {
break;
}
}
for(i=0;i<md_buf.length;i++) {
md_buf[i] = 0;
}
return {
key: key,
iv: iv
};
};
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(97).Buffer))
/***/ }),
/* 161 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(Buffer) {var aes = __webpack_require__(157);
var Transform = __webpack_require__(158);
var inherits = __webpack_require__(89);
inherits(StreamCipher, Transform);
module.exports = StreamCipher;
function StreamCipher(mode, key, iv, decrypt) {
if (!(this instanceof StreamCipher)) {
return new StreamCipher(mode, key, iv);
}
Transform.call(this);
this._cipher = new aes.AES(key);
this._prev = new Buffer(iv.length);
this._cache = new Buffer('');
this._secCache = new Buffer('');
this._decrypt = decrypt;
iv.copy(this._prev);
this._mode = mode;
}
StreamCipher.prototype._transform = function (chunk, _, next) {
next(null, this._mode.encrypt(this, chunk, this._decrypt));
};
StreamCipher.prototype._flush = function (next) {
this._cipher.scrub();
next();
};
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(97).Buffer))
/***/ }),
/* 162 */
/***/ (function(module, exports) {
exports.encrypt = function (self, block) {
return self._cipher.encryptBlock(block);
};
exports.decrypt = function (self, block) {
return self._cipher.decryptBlock(block);
};
/***/ }),
/* 163 */
/***/ (function(module, exports, __webpack_require__) {
var xor = __webpack_require__(164);
exports.encrypt = function (self, block) {
var data = xor(block, self._prev);
self._prev = self._cipher.encryptBlock(data);
return self._prev;
};
exports.decrypt = function (self, block) {
var pad = self._prev;
self._prev = block;
var out = self._cipher.decryptBlock(block);
return xor(out, pad);
};
/***/ }),
/* 164 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(Buffer) {module.exports = xor;
function xor(a, b) {
var len = Math.min(a.length, b.length);
var out = new Buffer(len);
var i = -1;
while (++i < len) {
out.writeUInt8(a[i] ^ b[i], i);
}
return out;
}
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(97).Buffer))
/***/ }),
/* 165 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(Buffer) {var xor = __webpack_require__(164);
exports.encrypt = function (self, data, decrypt) {
var out = new Buffer('');
var len;
while (data.length) {
if (self._cache.length === 0) {
self._cache = self._cipher.encryptBlock(self._prev);
self._prev = new Buffer('');
}
if (self._cache.length <= data.length) {
len = self._cache.length;
out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)]);
data = data.slice(len);
} else {
out = Buffer.concat([out, encryptStart(self, data, decrypt)]);
break;
}
}
return out;
};
function encryptStart(self, data, decrypt) {
var len = data.length;
var out = xor(data, self._cache);
self._cache = self._cache.slice(len);
self._prev = Buffer.concat([self._prev, decrypt?data:out]);
return out;
}
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(97).Buffer))
/***/ }),
/* 166 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(Buffer) {var xor = __webpack_require__(164);
function getBlock(self) {
self._prev = self._cipher.encryptBlock(self._prev);
return self._prev;
}
exports.encrypt = function (self, chunk) {
while (self._cache.length < chunk.length) {
self._cache = Buffer.concat([self._cache, getBlock(self)]);
}
var pad = self._cache.slice(0, chunk.length);
self._cache = self._cache.slice(chunk.length);
return xor(chunk, pad);
};
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(97).Buffer))
/***/ }),
/* 167 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(Buffer) {var xor = __webpack_require__(164);
function getBlock(self) {
var out = self._cipher.encryptBlock(self._prev);
incr32(self._prev);
return out;
}
exports.encrypt = function (self, chunk) {
while (self._cache.length < chunk.length) {
self._cache = Buffer.concat([self._cache, getBlock(self)]);
}
var pad = self._cache.slice(0, chunk.length);
self._cache = self._cache.slice(chunk.length);
return xor(chunk, pad);
};
function incr32(iv) {
var len = iv.length;
var item;
while (len--) {
item = iv.readUInt8(len);
if (item === 255) {
iv.writeUInt8(0, len);
} else {
item++;
iv.writeUInt8(item, len);
break;
}
}
}
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(97).Buffer))
/***/ }),
/* 168 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(Buffer) {var aes = __webpack_require__(157);
var Transform = __webpack_require__(158);
var inherits = __webpack_require__(89);
var modes = __webpack_require__(159);
var StreamCipher = __webpack_require__(161);
var ebtk = __webpack_require__(160);
inherits(Decipher, Transform);
function Decipher(mode, key, iv) {
if (!(this instanceof Decipher)) {
return new Decipher(mode, key, iv);
}
Transform.call(this);
this._cache = new Splitter();
this._last = void 0;
this._cipher = new aes.AES(key);
this._prev = new Buffer(iv.length);
iv.copy(this._prev);
this._mode = mode;
}
Decipher.prototype._transform = function (data, _, next) {
this._cache.add(data);
var chunk;
var thing;
while ((chunk = this._cache.get())) {
thing = this._mode.decrypt(this, chunk);
this.push(thing);
}
next();
};
Decipher.prototype._flush = function (next) {
var chunk = this._cache.flush();
if (!chunk) {
return next;
}
this.push(unpad(this._mode.decrypt(this, chunk)));
next();
};
function Splitter() {
if (!(this instanceof Splitter)) {
return new Splitter();
}
this.cache = new Buffer('');
}
Splitter.prototype.add = function (data) {
this.cache = Buffer.concat([this.cache, data]);
};
Splitter.prototype.get = function () {
if (this.cache.length > 16) {
var out = this.cache.slice(0, 16);
this.cache = this.cache.slice(16);
return out;
}
return null;
};
Splitter.prototype.flush = function () {
if (this.cache.length) {
return this.cache;
}
};
function unpad(last) {
var padded = last[15];
if (padded === 16) {
return;
}
return last.slice(0, 16 - padded);
}
var modelist = {
ECB: __webpack_require__(162),
CBC: __webpack_require__(163),
CFB: __webpack_require__(165),
OFB: __webpack_require__(166),
CTR: __webpack_require__(167)
};
module.exports = function (crypto) {
function createDecipheriv(suite, password, iv) {
var config = modes[suite];
if (!config) {
throw new TypeError('invalid suite type');
}
if (typeof iv === 'string') {
iv = new Buffer(iv);
}
if (typeof password === 'string') {
password = new Buffer(password);
}
if (password.length !== config.key/8) {
throw new TypeError('invalid key length ' + password.length);
}
if (iv.length !== config.iv) {
throw new TypeError('invalid iv length ' + iv.length);
}
if (config.type === 'stream') {
return new StreamCipher(modelist[config.mode], password, iv, true);
}
return new Decipher(modelist[config.mode], password, iv);
}
function createDecipher (suite, password) {
var config = modes[suite];
if (!config) {
throw new TypeError('invalid suite type');
}
var keys = ebtk(crypto, password, config.key, config.iv);
return createDecipheriv(suite, keys.key, keys.iv);
}
return {
createDecipher: createDecipher,
createDecipheriv: createDecipheriv
};
};
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(97).Buffer))
/***/ }),
/* 169 */
/***/ (function(module, exports, __webpack_require__) {
/*
Copyright (c) 2014, Matteo Collina <hello@matteocollina.com>
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
'use strict';
var Duplex = __webpack_require__(170).Duplex
, Writable = __webpack_require__(170).Writable
, inherits = __webpack_require__(89)
function ReaDuplexer(writable, readable, options) {
if (!(this instanceof ReaDuplexer))
return new ReaDuplexer(writable, readable, options)
this._options = options
Duplex.call(this, options)
this.hook(writable, readable)
this.on('finish', function() {
if (this._writable)
this._writable.end()
})
this._lastReadCallback = null
}
inherits(ReaDuplexer, Duplex)
function callWrite2Args(chunk, enc, cb) {
this._writable.write(chunk, enc)
cb()
return true
}
function callWrite3Args(chunk, enc, cb) {
return this._writable.write(chunk, enc, cb)
}
ReaDuplexer.prototype.hookWritable = function hookWritable(writable) {
var that = this
if (this._writable)
throw new Error('already hooked to a Writable')
if (!writable)
throw new Error('missing writable')
this._writable = writable
writable.on('drain', function() {
that.emit('drain')
})
writable.on('error', function(err) {
that.emit('error', err)
})
if (this._writable.write.length === 3) {
this._callWrite = callWrite3Args
} else {
this._callWrite = callWrite2Args
}
if (this._firstPayload) {
this._callWrite(
this._firstPayload.chunk
, this._firstPayload.enc
, this._firstPayload.cb)
delete this._firstPayload
}
return this
}
ReaDuplexer.prototype.hookReadable = function hookReadable(readable) {
var that = this
, dummyWritable = new Writable(this._options)
if (this._readable)
throw new Error('already hooked to a Readable')
if (!readable)
throw new Error('missing readable')
this._readable = readable
dummyWritable._write = function dummyWrite(chunk, enc, cb) {
if (that.push(chunk, enc))
cb()
else
that._lastReadCallback = cb
}
dummyWritable.on('finish', function() {
that.push(null)
})
;[readable, dummyWritable].forEach(function(stream) {
stream.on('error', function(err) {
that.emit('error', err)
})
})
readable.pipe(dummyWritable)
return this
}
ReaDuplexer.prototype.hook = function hook(writable, readable) {
if (writable)
this.hookWritable(writable)
if (readable)
this.hookReadable(readable)
return this
}
ReaDuplexer.prototype._read = function read(n) {
if (this._lastReadCallback)
this._lastReadCallback()
this._lastReadCallback = null
}
ReaDuplexer.prototype._callWrite = function nop() {
throw new Error('hook Writable to use')
}
ReaDuplexer.prototype._write = function write(chunk, enc, cb) {
if (this._writable)
return this._callWrite(chunk, enc, cb)
// we are in delayed open
this._firstPayload = {
chunk: chunk
, enc: enc
, cb: cb
}
}
module.exports = ReaDuplexer
/***/ }),
/* 170 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(process) {var Stream = __webpack_require__(87); // hack to fix a circular dependency issue when used with browserify
exports = module.exports = __webpack_require__(171);
exports.Stream = Stream;
exports.Readable = exports;
exports.Writable = __webpack_require__(174);
exports.Duplex = __webpack_require__(175);
exports.Transform = __webpack_require__(176);
exports.PassThrough = __webpack_require__(177);
if (!process.browser && process.env.READABLE_STREAM === 'disable') {
module.exports = __webpack_require__(87);
}
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(92)))
/***/ }),
/* 171 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(process) {// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
module.exports = Readable;
/*<replacement>*/
var isArray = __webpack_require__(172);
/*</replacement>*/
/*<replacement>*/
var Buffer = __webpack_require__(97).Buffer;
/*</replacement>*/
Readable.ReadableState = ReadableState;
var EE = __webpack_require__(88).EventEmitter;
/*<replacement>*/
if (!EE.listenerCount) EE.listenerCount = function(emitter, type) {
return emitter.listeners(type).length;
};
/*</replacement>*/
var Stream = __webpack_require__(87);
/*<replacement>*/
var util = __webpack_require__(100);
util.inherits = __webpack_require__(89);
/*</replacement>*/
var StringDecoder;
util.inherits(Readable, Stream);
function ReadableState(options, stream) {
options = options || {};
// the point at which it stops calling _read() to fill the buffer
// Note: 0 is a valid value, means "don't call _read preemptively ever"
var hwm = options.highWaterMark;
this.highWaterMark = (hwm || hwm === 0) ? hwm : 16 * 1024;
// cast to ints.
this.highWaterMark = ~~this.highWaterMark;
this.buffer = [];
this.length = 0;
this.pipes = null;
this.pipesCount = 0;
this.flowing = false;
this.ended = false;
this.endEmitted = false;
this.reading = false;
// In streams that never have any data, and do push(null) right away,
// the consumer can miss the 'end' event if they do some I/O before
// consuming the stream. So, we don't emit('end') until some reading
// happens.
this.calledRead = false;
// a flag to be able to tell if the onwrite cb is called immediately,
// or on a later tick. We set this to true at first, becuase any
// actions that shouldn't happen until "later" should generally also
// not happen before the first write call.
this.sync = true;
// whenever we return null, then we set a flag to say
// that we're awaiting a 'readable' event emission.
this.needReadable = false;
this.emittedReadable = false;
this.readableListening = false;
// object stream flag. Used to make read(n) ignore n and to
// make all the buffer merging and length checks go away
this.objectMode = !!options.objectMode;
// Crypto is kind of old and crusty. Historically, its default string
// encoding is 'binary' so we have to make this configurable.
// Everything else in the universe uses 'utf8', though.
this.defaultEncoding = options.defaultEncoding || 'utf8';
// when piping, we only care about 'readable' events that happen
// after read()ing all the bytes and not getting any pushback.
this.ranOut = false;
// the number of writers that are awaiting a drain event in .pipe()s
this.awaitDrain = 0;
// if true, a maybeReadMore has been scheduled
this.readingMore = false;
this.decoder = null;
this.encoding = null;
if (options.encoding) {
if (!StringDecoder)
StringDecoder = __webpack_require__(173).StringDecoder;
this.decoder = new StringDecoder(options.encoding);
this.encoding = options.encoding;
}
}
function Readable(options) {
if (!(this instanceof Readable))
return new Readable(options);
this._readableState = new ReadableState(options, this);
// legacy
this.readable = true;
Stream.call(this);
}
// Manually shove something into the read() buffer.
// This returns true if the highWaterMark has not been hit yet,
// similar to how Writable.write() returns true if you should
// write() some more.
Readable.prototype.push = function(chunk, encoding) {
var state = this._readableState;
if (typeof chunk === 'string' && !state.objectMode) {
encoding = encoding || state.defaultEncoding;
if (encoding !== state.encoding) {
chunk = new Buffer(chunk, encoding);
encoding = '';
}
}
return readableAddChunk(this, state, chunk, encoding, false);
};
// Unshift should *always* be something directly out of read()
Readable.prototype.unshift = function(chunk) {
var state = this._readableState;
return readableAddChunk(this, state, chunk, '', true);
};
function readableAddChunk(stream, state, chunk, encoding, addToFront) {
var er = chunkInvalid(state, chunk);
if (er) {
stream.emit('error', er);
} else if (chunk === null || chunk === undefined) {
state.reading = false;
if (!state.ended)
onEofChunk(stream, state);
} else if (state.objectMode || chunk && chunk.length > 0) {
if (state.ended && !addToFront) {
var e = new Error('stream.push() after EOF');
stream.emit('error', e);
} else if (state.endEmitted && addToFront) {
var e = new Error('stream.unshift() after end event');
stream.emit('error', e);
} else {
if (state.decoder && !addToFront && !encoding)
chunk = state.decoder.write(chunk);
// update the buffer info.
state.length += state.objectMode ? 1 : chunk.length;
if (addToFront) {
state.buffer.unshift(chunk);
} else {
state.reading = false;
state.buffer.push(chunk);
}
if (state.needReadable)
emitReadable(stream);
maybeReadMore(stream, state);
}
} else if (!addToFront) {
state.reading = false;
}
return needMoreData(state);
}
// if it's past the high water mark, we can push in some more.
// Also, if we have no data yet, we can stand some
// more bytes. This is to work around cases where hwm=0,
// such as the repl. Also, if the push() triggered a
// readable event, and the user called read(largeNumber) such that
// needReadable was set, then we ought to push more, so that another
// 'readable' event will be triggered.
function needMoreData(state) {
return !state.ended &&
(state.needReadable ||
state.length < state.highWaterMark ||
state.length === 0);
}
// backwards compatibility.
Readable.prototype.setEncoding = function(enc) {
if (!StringDecoder)
StringDecoder = __webpack_require__(173).StringDecoder;
this._readableState.decoder = new StringDecoder(enc);
this._readableState.encoding = enc;
};
// Don't raise the hwm > 128MB
var MAX_HWM = 0x800000;
function roundUpToNextPowerOf2(n) {
if (n >= MAX_HWM) {
n = MAX_HWM;
} else {
// Get the next highest power of 2
n--;
for (var p = 1; p < 32; p <<= 1) n |= n >> p;
n++;
}
return n;
}
function howMuchToRead(n, state) {
if (state.length === 0 && state.ended)
return 0;
if (state.objectMode)
return n === 0 ? 0 : 1;
if (n === null || isNaN(n)) {
// only flow one buffer at a time
if (state.flowing && state.buffer.length)
return state.buffer[0].length;
else
return state.length;
}
if (n <= 0)
return 0;
// If we're asking for more than the target buffer level,
// then raise the water mark. Bump up to the next highest
// power of 2, to prevent increasing it excessively in tiny
// amounts.
if (n > state.highWaterMark)
state.highWaterMark = roundUpToNextPowerOf2(n);
// don't have that much. return null, unless we've ended.
if (n > state.length) {
if (!state.ended) {
state.needReadable = true;
return 0;
} else
return state.length;
}
return n;
}
// you can override either this method, or the async _read(n) below.
Readable.prototype.read = function(n) {
var state = this._readableState;
state.calledRead = true;
var nOrig = n;
var ret;
if (typeof n !== 'number' || n > 0)
state.emittedReadable = false;
// if we're doing read(0) to trigger a readable event, but we
// already have a bunch of data in the buffer, then just trigger
// the 'readable' event and move on.
if (n === 0 &&
state.needReadable &&
(state.length >= state.highWaterMark || state.ended)) {
emitReadable(this);
return null;
}
n = howMuchToRead(n, state);
// if we've ended, and we're now clear, then finish it up.
if (n === 0 && state.ended) {
ret = null;
// In cases where the decoder did not receive enough data
// to produce a full chunk, then immediately received an
// EOF, state.buffer will contain [<Buffer >, <Buffer 00 ...>].
// howMuchToRead will see this and coerce the amount to
// read to zero (because it's looking at the length of the
// first <Buffer > in state.buffer), and we'll end up here.
//
// This can only happen via state.decoder -- no other venue
// exists for pushing a zero-length chunk into state.buffer
// and triggering this behavior. In this case, we return our
// remaining data and end the stream, if appropriate.
if (state.length > 0 && state.decoder) {
ret = fromList(n, state);
state.length -= ret.length;
}
if (state.length === 0)
endReadable(this);
return ret;
}
// All the actual chunk generation logic needs to be
// *below* the call to _read. The reason is that in certain
// synthetic stream cases, such as passthrough streams, _read
// may be a completely synchronous operation which may change
// the state of the read buffer, providing enough data when
// before there was *not* enough.
//
// So, the steps are:
// 1. Figure out what the state of things will be after we do
// a read from the buffer.
//
// 2. If that resulting state will trigger a _read, then call _read.
// Note that this may be asynchronous, or synchronous. Yes, it is
// deeply ugly to write APIs this way, but that still doesn't mean
// that the Readable class should behave improperly, as streams are
// designed to be sync/async agnostic.
// Take note if the _read call is sync or async (ie, if the read call
// has returned yet), so that we know whether or not it's safe to emit
// 'readable' etc.
//
// 3. Actually pull the requested chunks out of the buffer and return.
// if we need a readable event, then we need to do some reading.
var doRead = state.needReadable;
// if we currently have less than the highWaterMark, then also read some
if (state.length - n <= state.highWaterMark)
doRead = true;
// however, if we've ended, then there's no point, and if we're already
// reading, then it's unnecessary.
if (state.ended || state.reading)
doRead = false;
if (doRead) {
state.reading = true;
state.sync = true;
// if the length is currently zero, then we *need* a readable event.
if (state.length === 0)
state.needReadable = true;
// call internal read method
this._read(state.highWaterMark);
state.sync = false;
}
// If _read called its callback synchronously, then `reading`
// will be false, and we need to re-evaluate how much data we
// can return to the user.
if (doRead && !state.reading)
n = howMuchToRead(nOrig, state);
if (n > 0)
ret = fromList(n, state);
else
ret = null;
if (ret === null) {
state.needReadable = true;
n = 0;
}
state.length -= n;
// If we have nothing in the buffer, then we want to know
// as soon as we *do* get something into the buffer.
if (state.length === 0 && !state.ended)
state.needReadable = true;
// If we happened to read() exactly the remaining amount in the
// buffer, and the EOF has been seen at this point, then make sure
// that we emit 'end' on the very next tick.
if (state.ended && !state.endEmitted && state.length === 0)
endReadable(this);
return ret;
};
function chunkInvalid(state, chunk) {
var er = null;
if (!Buffer.isBuffer(chunk) &&
'string' !== typeof chunk &&
chunk !== null &&
chunk !== undefined &&
!state.objectMode) {
er = new TypeError('Invalid non-string/buffer chunk');
}
return er;
}
function onEofChunk(stream, state) {
if (state.decoder && !state.ended) {
var chunk = state.decoder.end();
if (chunk && chunk.length) {
state.buffer.push(chunk);
state.length += state.objectMode ? 1 : chunk.length;
}
}
state.ended = true;
// if we've ended and we have some data left, then emit
// 'readable' now to make sure it gets picked up.
if (state.length > 0)
emitReadable(stream);
else
endReadable(stream);
}
// Don't emit readable right away in sync mode, because this can trigger
// another read() call => stack overflow. This way, it might trigger
// a nextTick recursion warning, but that's not so bad.
function emitReadable(stream) {
var state = stream._readableState;
state.needReadable = false;
if (state.emittedReadable)
return;
state.emittedReadable = true;
if (state.sync)
process.nextTick(function() {
emitReadable_(stream);
});
else
emitReadable_(stream);
}
function emitReadable_(stream) {
stream.emit('readable');
}
// at this point, the user has presumably seen the 'readable' event,
// and called read() to consume some data. that may have triggered
// in turn another _read(n) call, in which case reading = true if
// it's in progress.
// However, if we're not ended, or reading, and the length < hwm,
// then go ahead and try to read some more preemptively.
function maybeReadMore(stream, state) {
if (!state.readingMore) {
state.readingMore = true;
process.nextTick(function() {
maybeReadMore_(stream, state);
});
}
}
function maybeReadMore_(stream, state) {
var len = state.length;
while (!state.reading && !state.flowing && !state.ended &&
state.length < state.highWaterMark) {
stream.read(0);
if (len === state.length)
// didn't get any data, stop spinning.
break;
else
len = state.length;
}
state.readingMore = false;
}
// abstract method. to be overridden in specific implementation classes.
// call cb(er, data) where data is <= n in length.
// for virtual (non-string, non-buffer) streams, "length" is somewhat
// arbitrary, and perhaps not very meaningful.
Readable.prototype._read = function(n) {
this.emit('error', new Error('not implemented'));
};
Readable.prototype.pipe = function(dest, pipeOpts) {
var src = this;
var state = this._readableState;
switch (state.pipesCount) {
case 0:
state.pipes = dest;
break;
case 1:
state.pipes = [state.pipes, dest];
break;
default:
state.pipes.push(dest);
break;
}
state.pipesCount += 1;
var doEnd = (!pipeOpts || pipeOpts.end !== false) &&
dest !== process.stdout &&
dest !== process.stderr;
var endFn = doEnd ? onend : cleanup;
if (state.endEmitted)
process.nextTick(endFn);
else
src.once('end', endFn);
dest.on('unpipe', onunpipe);
function onunpipe(readable) {
if (readable !== src) return;
cleanup();
}
function onend() {
dest.end();
}
// when the dest drains, it reduces the awaitDrain counter
// on the source. This would be more elegant with a .once()
// handler in flow(), but adding and removing repeatedly is
// too slow.
var ondrain = pipeOnDrain(src);
dest.on('drain', ondrain);
function cleanup() {
// cleanup event handlers once the pipe is broken
dest.removeListener('close', onclose);
dest.removeListener('finish', onfinish);
dest.removeListener('drain', ondrain);
dest.removeListener('error', onerror);
dest.removeListener('unpipe', onunpipe);
src.removeListener('end', onend);
src.removeListener('end', cleanup);
// if the reader is waiting for a drain event from this
// specific writer, then it would cause it to never start
// flowing again.
// So, if this is awaiting a drain, then we just call it now.
// If we don't know, then assume that we are waiting for one.
if (!dest._writableState || dest._writableState.needDrain)
ondrain();
}
// if the dest has an error, then stop piping into it.
// however, don't suppress the throwing behavior for this.
function onerror(er) {
unpipe();
dest.removeListener('error', onerror);
if (EE.listenerCount(dest, 'error') === 0)
dest.emit('error', er);
}
// This is a brutally ugly hack to make sure that our error handler
// is attached before any userland ones. NEVER DO THIS.
if (!dest._events || !dest._events.error)
dest.on('error', onerror);
else if (isArray(dest._events.error))
dest._events.error.unshift(onerror);
else
dest._events.error = [onerror, dest._events.error];
// Both close and finish should trigger unpipe, but only once.
function onclose() {
dest.removeListener('finish', onfinish);
unpipe();
}
dest.once('close', onclose);
function onfinish() {
dest.removeListener('close', onclose);
unpipe();
}
dest.once('finish', onfinish);
function unpipe() {
src.unpipe(dest);
}
// tell the dest that it's being piped to
dest.emit('pipe', src);
// start the flow if it hasn't been started already.
if (!state.flowing) {
// the handler that waits for readable events after all
// the data gets sucked out in flow.
// This would be easier to follow with a .once() handler
// in flow(), but that is too slow.
this.on('readable', pipeOnReadable);
state.flowing = true;
process.nextTick(function() {
flow(src);
});
}
return dest;
};
function pipeOnDrain(src) {
return function() {
var dest = this;
var state = src._readableState;
state.awaitDrain--;
if (state.awaitDrain === 0)
flow(src);
};
}
function flow(src) {
var state = src._readableState;
var chunk;
state.awaitDrain = 0;
function write(dest, i, list) {
var written = dest.write(chunk);
if (false === written) {
state.awaitDrain++;
}
}
while (state.pipesCount && null !== (chunk = src.read())) {
if (state.pipesCount === 1)
write(state.pipes, 0, null);
else
forEach(state.pipes, write);
src.emit('data', chunk);
// if anyone needs a drain, then we have to wait for that.
if (state.awaitDrain > 0)
return;
}
// if every destination was unpiped, either before entering this
// function, or in the while loop, then stop flowing.
//
// NB: This is a pretty rare edge case.
if (state.pipesCount === 0) {
state.flowing = false;
// if there were data event listeners added, then switch to old mode.
if (EE.listenerCount(src, 'data') > 0)
emitDataEvents(src);
return;
}
// at this point, no one needed a drain, so we just ran out of data
// on the next readable event, start it over again.
state.ranOut = true;
}
function pipeOnReadable() {
if (this._readableState.ranOut) {
this._readableState.ranOut = false;
flow(this);
}
}
Readable.prototype.unpipe = function(dest) {
var state = this._readableState;
// if we're not piping anywhere, then do nothing.
if (state.pipesCount === 0)
return this;
// just one destination. most common case.
if (state.pipesCount === 1) {
// passed in one, but it's not the right one.
if (dest && dest !== state.pipes)
return this;
if (!dest)
dest = state.pipes;
// got a match.
state.pipes = null;
state.pipesCount = 0;
this.removeListener('readable', pipeOnReadable);
state.flowing = false;
if (dest)
dest.emit('unpipe', this);
return this;
}
// slow case. multiple pipe destinations.
if (!dest) {
// remove all.
var dests = state.pipes;
var len = state.pipesCount;
state.pipes = null;
state.pipesCount = 0;
this.removeListener('readable', pipeOnReadable);
state.flowing = false;
for (var i = 0; i < len; i++)
dests[i].emit('unpipe', this);
return this;
}
// try to find the right one.
var i = indexOf(state.pipes, dest);
if (i === -1)
return this;
state.pipes.splice(i, 1);
state.pipesCount -= 1;
if (state.pipesCount === 1)
state.pipes = state.pipes[0];
dest.emit('unpipe', this);
return this;
};
// set up data events if they are asked for
// Ensure readable listeners eventually get something
Readable.prototype.on = function(ev, fn) {
var res = Stream.prototype.on.call(this, ev, fn);
if (ev === 'data' && !this._readableState.flowing)
emitDataEvents(this);
if (ev === 'readable' && this.readable) {
var state = this._readableState;
if (!state.readableListening) {
state.readableListening = true;
state.emittedReadable = false;
state.needReadable = true;
if (!state.reading) {
this.read(0);
} else if (state.length) {
emitReadable(this, state);
}
}
}
return res;
};
Readable.prototype.addListener = Readable.prototype.on;
// pause() and resume() are remnants of the legacy readable stream API
// If the user uses them, then switch into old mode.
Readable.prototype.resume = function() {
emitDataEvents(this);
this.read(0);
this.emit('resume');
};
Readable.prototype.pause = function() {
emitDataEvents(this, true);
this.emit('pause');
};
function emitDataEvents(stream, startPaused) {
var state = stream._readableState;
if (state.flowing) {
// https://github.com/isaacs/readable-stream/issues/16
throw new Error('Cannot switch to old mode now.');
}
var paused = startPaused || false;
var readable = false;
// convert to an old-style stream.
stream.readable = true;
stream.pipe = Stream.prototype.pipe;
stream.on = stream.addListener = Stream.prototype.on;
stream.on('readable', function() {
readable = true;
var c;
while (!paused && (null !== (c = stream.read())))
stream.emit('data', c);
if (c === null) {
readable = false;
stream._readableState.needReadable = true;
}
});
stream.pause = function() {
paused = true;
this.emit('pause');
};
stream.resume = function() {
paused = false;
if (readable)
process.nextTick(function() {
stream.emit('readable');
});
else
this.read(0);
this.emit('resume');
};
// now make it start, just in case it hadn't already.
stream.emit('readable');
}
// wrap an old-style stream as the async data source.
// This is *not* part of the readable stream interface.
// It is an ugly unfortunate mess of history.
Readable.prototype.wrap = function(stream) {
var state = this._readableState;
var paused = false;
var self = this;
stream.on('end', function() {
if (state.decoder && !state.ended) {
var chunk = state.decoder.end();
if (chunk && chunk.length)
self.push(chunk);
}
self.push(null);
});
stream.on('data', function(chunk) {
if (state.decoder)
chunk = state.decoder.write(chunk);
// don't skip over falsy values in objectMode
//if (state.objectMode && util.isNullOrUndefined(chunk))
if (state.objectMode && (chunk === null || chunk === undefined))
return;
else if (!state.objectMode && (!chunk || !chunk.length))
return;
var ret = self.push(chunk);
if (!ret) {
paused = true;
stream.pause();
}
});
// proxy all the other methods.
// important when wrapping filters and duplexes.
for (var i in stream) {
if (typeof stream[i] === 'function' &&
typeof this[i] === 'undefined') {
this[i] = function(method) { return function() {
return stream[method].apply(stream, arguments);
}}(i);
}
}
// proxy certain important events.
var events = ['error', 'close', 'destroy', 'pause', 'resume'];
forEach(events, function(ev) {
stream.on(ev, self.emit.bind(self, ev));
});
// when we try to consume some more bytes, simply unpause the
// underlying stream.
self._read = function(n) {
if (paused) {
paused = false;
stream.resume();
}
};
return self;
};
// exposed for testing purposes only.
Readable._fromList = fromList;
// Pluck off n bytes from an array of buffers.
// Length is the combined lengths of all the buffers in the list.
function fromList(n, state) {
var list = state.buffer;
var length = state.length;
var stringMode = !!state.decoder;
var objectMode = !!state.objectMode;
var ret;
// nothing in the list, definitely empty.
if (list.length === 0)
return null;
if (length === 0)
ret = null;
else if (objectMode)
ret = list.shift();
else if (!n || n >= length) {
// read it all, truncate the array.
if (stringMode)
ret = list.join('');
else
ret = Buffer.concat(list, length);
list.length = 0;
} else {
// read just some of it.
if (n < list[0].length) {
// just take a part of the first list item.
// slice is the same for buffers and strings.
var buf = list[0];
ret = buf.slice(0, n);
list[0] = buf.slice(n);
} else if (n === list[0].length) {
// first list is a perfect match
ret = list.shift();
} else {
// complex case.
// we have enough to cover it, but it spans past the first buffer.
if (stringMode)
ret = '';
else
ret = new Buffer(n);
var c = 0;
for (var i = 0, l = list.length; i < l && c < n; i++) {
var buf = list[0];
var cpy = Math.min(n - c, buf.length);
if (stringMode)
ret += buf.slice(0, cpy);
else
buf.copy(ret, c, 0, cpy);
if (cpy < buf.length)
list[0] = buf.slice(cpy);
else
list.shift();
c += cpy;
}
}
}
return ret;
}
function endReadable(stream) {
var state = stream._readableState;
// If we get here before consuming all the bytes, then that is a
// bug in node. Should never happen.
if (state.length > 0)
throw new Error('endReadable called on non-empty stream');
if (!state.endEmitted && state.calledRead) {
state.ended = true;
process.nextTick(function() {
// Check that we didn't get one last unshift.
if (!state.endEmitted && state.length === 0) {
state.endEmitted = true;
stream.readable = false;
stream.emit('end');
}
});
}
}
function forEach (xs, f) {
for (var i = 0, l = xs.length; i < l; i++) {
f(xs[i], i);
}
}
function indexOf (xs, x) {
for (var i = 0, l = xs.length; i < l; i++) {
if (xs[i] === x) return i;
}
return -1;
}
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(92)))
/***/ }),
/* 172 */
/***/ (function(module, exports) {
module.exports = Array.isArray || function (arr) {
return Object.prototype.toString.call(arr) == '[object Array]';
};
/***/ }),
/* 173 */
/***/ (function(module, exports, __webpack_require__) {
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
var Buffer = __webpack_require__(97).Buffer;
var isBufferEncoding = Buffer.isEncoding
|| function(encoding) {
switch (encoding && encoding.toLowerCase()) {
case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': case 'raw': return true;
default: return false;
}
}
function assertEncoding(encoding) {
if (encoding && !isBufferEncoding(encoding)) {
throw new Error('Unknown encoding: ' + encoding);
}
}
// StringDecoder provides an interface for efficiently splitting a series of
// buffers into a series of JS strings without breaking apart multi-byte
// characters. CESU-8 is handled as part of the UTF-8 encoding.
//
// @TODO Handling all encodings inside a single object makes it very difficult
// to reason about this code, so it should be split up in the future.
// @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code
// points as used by CESU-8.
var StringDecoder = exports.StringDecoder = function(encoding) {
this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');
assertEncoding(encoding);
switch (this.encoding) {
case 'utf8':
// CESU-8 represents each of Surrogate Pair by 3-bytes
this.surrogateSize = 3;
break;
case 'ucs2':
case 'utf16le':
// UTF-16 represents each of Surrogate Pair by 2-bytes
this.surrogateSize = 2;
this.detectIncompleteChar = utf16DetectIncompleteChar;
break;
case 'base64':
// Base-64 stores 3 bytes in 4 chars, and pads the remainder.
this.surrogateSize = 3;
this.detectIncompleteChar = base64DetectIncompleteChar;
break;
default:
this.write = passThroughWrite;
return;
}
// Enough space to store all bytes of a single character. UTF-8 needs 4
// bytes, but CESU-8 may require up to 6 (3 bytes per surrogate).
this.charBuffer = new Buffer(6);
// Number of bytes received for the current incomplete multi-byte character.
this.charReceived = 0;
// Number of bytes expected for the current incomplete multi-byte character.
this.charLength = 0;
};
// write decodes the given buffer and returns it as JS string that is
// guaranteed to not contain any partial multi-byte characters. Any partial
// character found at the end of the buffer is buffered up, and will be
// returned when calling write again with the remaining bytes.
//
// Note: Converting a Buffer containing an orphan surrogate to a String
// currently works, but converting a String to a Buffer (via `new Buffer`, or
// Buffer#write) will replace incomplete surrogates with the unicode
// replacement character. See https://codereview.chromium.org/121173009/ .
StringDecoder.prototype.write = function(buffer) {
var charStr = '';
// if our last write ended with an incomplete multibyte character
while (this.charLength) {
// determine how many remaining bytes this buffer has to offer for this char
var available = (buffer.length >= this.charLength - this.charReceived) ?
this.charLength - this.charReceived :
buffer.length;
// add the new bytes to the char buffer
buffer.copy(this.charBuffer, this.charReceived, 0, available);
this.charReceived += available;
if (this.charReceived < this.charLength) {
// still not enough chars in this buffer? wait for more ...
return '';
}
// remove bytes belonging to the current character from the buffer
buffer = buffer.slice(available, buffer.length);
// get the character that was split
charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding);
// CESU-8: lead surrogate (D800-DBFF) is also the incomplete character
var charCode = charStr.charCodeAt(charStr.length - 1);
if (charCode >= 0xD800 && charCode <= 0xDBFF) {
this.charLength += this.surrogateSize;
charStr = '';
continue;
}
this.charReceived = this.charLength = 0;
// if there are no more bytes in this buffer, just emit our char
if (buffer.length === 0) {
return charStr;
}
break;
}
// determine and set charLength / charReceived
this.detectIncompleteChar(buffer);
var end = buffer.length;
if (this.charLength) {
// buffer the incomplete character bytes we got
buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end);
end -= this.charReceived;
}
charStr += buffer.toString(this.encoding, 0, end);
var end = charStr.length - 1;
var charCode = charStr.charCodeAt(end);
// CESU-8: lead surrogate (D800-DBFF) is also the incomplete character
if (charCode >= 0xD800 && charCode <= 0xDBFF) {
var size = this.surrogateSize;
this.charLength += size;
this.charReceived += size;
this.charBuffer.copy(this.charBuffer, size, 0, size);
buffer.copy(this.charBuffer, 0, 0, size);
return charStr.substring(0, end);
}
// or just emit the charStr
return charStr;
};
// detectIncompleteChar determines if there is an incomplete UTF-8 character at
// the end of the given buffer. If so, it sets this.charLength to the byte
// length that character, and sets this.charReceived to the number of bytes
// that are available for this character.
StringDecoder.prototype.detectIncompleteChar = function(buffer) {
// determine how many bytes we have to check at the end of this buffer
var i = (buffer.length >= 3) ? 3 : buffer.length;
// Figure out if one of the last i bytes of our buffer announces an
// incomplete char.
for (; i > 0; i--) {
var c = buffer[buffer.length - i];
// See http://en.wikipedia.org/wiki/UTF-8#Description
// 110XXXXX
if (i == 1 && c >> 5 == 0x06) {
this.charLength = 2;
break;
}
// 1110XXXX
if (i <= 2 && c >> 4 == 0x0E) {
this.charLength = 3;
break;
}
// 11110XXX
if (i <= 3 && c >> 3 == 0x1E) {
this.charLength = 4;
break;
}
}
this.charReceived = i;
};
StringDecoder.prototype.end = function(buffer) {
var res = '';
if (buffer && buffer.length)
res = this.write(buffer);
if (this.charReceived) {
var cr = this.charReceived;
var buf = this.charBuffer;
var enc = this.encoding;
res += buf.slice(0, cr).toString(enc);
}
return res;
};
function passThroughWrite(buffer) {
return buffer.toString(this.encoding);
}
function utf16DetectIncompleteChar(buffer) {
this.charReceived = buffer.length % 2;
this.charLength = this.charReceived ? 2 : 0;
}
function base64DetectIncompleteChar(buffer) {
this.charReceived = buffer.length % 3;
this.charLength = this.charReceived ? 3 : 0;
}
/***/ }),
/* 174 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(process) {// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
// A bit simpler than readable streams.
// Implement an async ._write(chunk, cb), and it'll handle all
// the drain event emission and buffering.
module.exports = Writable;
/*<replacement>*/
var Buffer = __webpack_require__(97).Buffer;
/*</replacement>*/
Writable.WritableState = WritableState;
/*<replacement>*/
var util = __webpack_require__(100);
util.inherits = __webpack_require__(89);
/*</replacement>*/
var Stream = __webpack_require__(87);
util.inherits(Writable, Stream);
function WriteReq(chunk, encoding, cb) {
this.chunk = chunk;
this.encoding = encoding;
this.callback = cb;
}
function WritableState(options, stream) {
options = options || {};
// the point at which write() starts returning false
// Note: 0 is a valid value, means that we always return false if
// the entire buffer is not flushed immediately on write()
var hwm = options.highWaterMark;
this.highWaterMark = (hwm || hwm === 0) ? hwm : 16 * 1024;
// object stream flag to indicate whether or not this stream
// contains buffers or objects.
this.objectMode = !!options.objectMode;
// cast to ints.
this.highWaterMark = ~~this.highWaterMark;
this.needDrain = false;
// at the start of calling end()
this.ending = false;
// when end() has been called, and returned
this.ended = false;
// when 'finish' is emitted
this.finished = false;
// should we decode strings into buffers before passing to _write?
// this is here so that some node-core streams can optimize string
// handling at a lower level.
var noDecode = options.decodeStrings === false;
this.decodeStrings = !noDecode;
// Crypto is kind of old and crusty. Historically, its default string
// encoding is 'binary' so we have to make this configurable.
// Everything else in the universe uses 'utf8', though.
this.defaultEncoding = options.defaultEncoding || 'utf8';
// not an actual buffer we keep track of, but a measurement
// of how much we're waiting to get pushed to some underlying
// socket or file.
this.length = 0;
// a flag to see when we're in the middle of a write.
this.writing = false;
// a flag to be able to tell if the onwrite cb is called immediately,
// or on a later tick. We set this to true at first, becuase any
// actions that shouldn't happen until "later" should generally also
// not happen before the first write call.
this.sync = true;
// a flag to know if we're processing previously buffered items, which
// may call the _write() callback in the same tick, so that we don't
// end up in an overlapped onwrite situation.
this.bufferProcessing = false;
// the callback that's passed to _write(chunk,cb)
this.onwrite = function(er) {
onwrite(stream, er);
};
// the callback that the user supplies to write(chunk,encoding,cb)
this.writecb = null;
// the amount that is being written when _write is called.
this.writelen = 0;
this.buffer = [];
// True if the error was already emitted and should not be thrown again
this.errorEmitted = false;
}
function Writable(options) {
var Duplex = __webpack_require__(175);
// Writable ctor is applied to Duplexes, though they're not
// instanceof Writable, they're instanceof Readable.
if (!(this instanceof Writable) && !(this instanceof Duplex))
return new Writable(options);
this._writableState = new WritableState(options, this);
// legacy.
this.writable = true;
Stream.call(this);
}
// Otherwise people can pipe Writable streams, which is just wrong.
Writable.prototype.pipe = function() {
this.emit('error', new Error('Cannot pipe. Not readable.'));
};
function writeAfterEnd(stream, state, cb) {
var er = new Error('write after end');
// TODO: defer error events consistently everywhere, not just the cb
stream.emit('error', er);
process.nextTick(function() {
cb(er);
});
}
// If we get something that is not a buffer, string, null, or undefined,
// and we're not in objectMode, then that's an error.
// Otherwise stream chunks are all considered to be of length=1, and the
// watermarks determine how many objects to keep in the buffer, rather than
// how many bytes or characters.
function validChunk(stream, state, chunk, cb) {
var valid = true;
if (!Buffer.isBuffer(chunk) &&
'string' !== typeof chunk &&
chunk !== null &&
chunk !== undefined &&
!state.objectMode) {
var er = new TypeError('Invalid non-string/buffer chunk');
stream.emit('error', er);
process.nextTick(function() {
cb(er);
});
valid = false;
}
return valid;
}
Writable.prototype.write = function(chunk, encoding, cb) {
var state = this._writableState;
var ret = false;
if (typeof encoding === 'function') {
cb = encoding;
encoding = null;
}
if (Buffer.isBuffer(chunk))
encoding = 'buffer';
else if (!encoding)
encoding = state.defaultEncoding;
if (typeof cb !== 'function')
cb = function() {};
if (state.ended)
writeAfterEnd(this, state, cb);
else if (validChunk(this, state, chunk, cb))
ret = writeOrBuffer(this, state, chunk, encoding, cb);
return ret;
};
function decodeChunk(state, chunk, encoding) {
if (!state.objectMode &&
state.decodeStrings !== false &&
typeof chunk === 'string') {
chunk = new Buffer(chunk, encoding);
}
return chunk;
}
// if we're already writing something, then just put this
// in the queue, and wait our turn. Otherwise, call _write
// If we return false, then we need a drain event, so set that flag.
function writeOrBuffer(stream, state, chunk, encoding, cb) {
chunk = decodeChunk(state, chunk, encoding);
if (Buffer.isBuffer(chunk))
encoding = 'buffer';
var len = state.objectMode ? 1 : chunk.length;
state.length += len;
var ret = state.length < state.highWaterMark;
// we must ensure that previous needDrain will not be reset to false.
if (!ret)
state.needDrain = true;
if (state.writing)
state.buffer.push(new WriteReq(chunk, encoding, cb));
else
doWrite(stream, state, len, chunk, encoding, cb);
return ret;
}
function doWrite(stream, state, len, chunk, encoding, cb) {
state.writelen = len;
state.writecb = cb;
state.writing = true;
state.sync = true;
stream._write(chunk, encoding, state.onwrite);
state.sync = false;
}
function onwriteError(stream, state, sync, er, cb) {
if (sync)
process.nextTick(function() {
cb(er);
});
else
cb(er);
stream._writableState.errorEmitted = true;
stream.emit('error', er);
}
function onwriteStateUpdate(state) {
state.writing = false;
state.writecb = null;
state.length -= state.writelen;
state.writelen = 0;
}
function onwrite(stream, er) {
var state = stream._writableState;
var sync = state.sync;
var cb = state.writecb;
onwriteStateUpdate(state);
if (er)
onwriteError(stream, state, sync, er, cb);
else {
// Check if we're actually ready to finish, but don't emit yet
var finished = needFinish(stream, state);
if (!finished && !state.bufferProcessing && state.buffer.length)
clearBuffer(stream, state);
if (sync) {
process.nextTick(function() {
afterWrite(stream, state, finished, cb);
});
} else {
afterWrite(stream, state, finished, cb);
}
}
}
function afterWrite(stream, state, finished, cb) {
if (!finished)
onwriteDrain(stream, state);
cb();
if (finished)
finishMaybe(stream, state);
}
// Must force callback to be called on nextTick, so that we don't
// emit 'drain' before the write() consumer gets the 'false' return
// value, and has a chance to attach a 'drain' listener.
function onwriteDrain(stream, state) {
if (state.length === 0 && state.needDrain) {
state.needDrain = false;
stream.emit('drain');
}
}
// if there's something in the buffer waiting, then process it
function clearBuffer(stream, state) {
state.bufferProcessing = true;
for (var c = 0; c < state.buffer.length; c++) {
var entry = state.buffer[c];
var chunk = entry.chunk;
var encoding = entry.encoding;
var cb = entry.callback;
var len = state.objectMode ? 1 : chunk.length;
doWrite(stream, state, len, chunk, encoding, cb);
// if we didn't call the onwrite immediately, then
// it means that we need to wait until it does.
// also, that means that the chunk and cb are currently
// being processed, so move the buffer counter past them.
if (state.writing) {
c++;
break;
}
}
state.bufferProcessing = false;
if (c < state.buffer.length)
state.buffer = state.buffer.slice(c);
else
state.buffer.length = 0;
}
Writable.prototype._write = function(chunk, encoding, cb) {
cb(new Error('not implemented'));
};
Writable.prototype.end = function(chunk, encoding, cb) {
var state = this._writableState;
if (typeof chunk === 'function') {
cb = chunk;
chunk = null;
encoding = null;
} else if (typeof encoding === 'function') {
cb = encoding;
encoding = null;
}
if (typeof chunk !== 'undefined' && chunk !== null)
this.write(chunk, encoding);
// ignore unnecessary end() calls.
if (!state.ending && !state.finished)
endWritable(this, state, cb);
};
function needFinish(stream, state) {
return (state.ending &&
state.length === 0 &&
!state.finished &&
!state.writing);
}
function finishMaybe(stream, state) {
var need = needFinish(stream, state);
if (need) {
state.finished = true;
stream.emit('finish');
}
return need;
}
function endWritable(stream, state, cb) {
state.ending = true;
finishMaybe(stream, state);
if (cb) {
if (state.finished)
process.nextTick(cb);
else
stream.once('finish', cb);
}
state.ended = true;
}
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(92)))
/***/ }),
/* 175 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(process) {// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
// a duplex stream is just a stream that is both readable and writable.
// Since JS doesn't have multiple prototypal inheritance, this class
// prototypally inherits from Readable, and then parasitically from
// Writable.
module.exports = Duplex;
/*<replacement>*/
var objectKeys = Object.keys || function (obj) {
var keys = [];
for (var key in obj) keys.push(key);
return keys;
}
/*</replacement>*/
/*<replacement>*/
var util = __webpack_require__(100);
util.inherits = __webpack_require__(89);
/*</replacement>*/
var Readable = __webpack_require__(171);
var Writable = __webpack_require__(174);
util.inherits(Duplex, Readable);
forEach(objectKeys(Writable.prototype), function(method) {
if (!Duplex.prototype[method])
Duplex.prototype[method] = Writable.prototype[method];
});
function Duplex(options) {
if (!(this instanceof Duplex))
return new Duplex(options);
Readable.call(this, options);
Writable.call(this, options);
if (options && options.readable === false)
this.readable = false;
if (options && options.writable === false)
this.writable = false;
this.allowHalfOpen = true;
if (options && options.allowHalfOpen === false)
this.allowHalfOpen = false;
this.once('end', onend);
}
// the no-half-open enforcer
function onend() {
// if we allow half-open state, or if the writable side ended,
// then we're ok.
if (this.allowHalfOpen || this._writableState.ended)
return;
// no more data can be written.
// But allow more writes to happen in this tick.
process.nextTick(this.end.bind(this));
}
function forEach (xs, f) {
for (var i = 0, l = xs.length; i < l; i++) {
f(xs[i], i);
}
}
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(92)))
/***/ }),
/* 176 */
/***/ (function(module, exports, __webpack_require__) {
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
// a transform stream is a readable/writable stream where you do
// something with the data. Sometimes it's called a "filter",
// but that's not a great name for it, since that implies a thing where
// some bits pass through, and others are simply ignored. (That would
// be a valid example of a transform, of course.)
//
// While the output is causally related to the input, it's not a
// necessarily symmetric or synchronous transformation. For example,
// a zlib stream might take multiple plain-text writes(), and then
// emit a single compressed chunk some time in the future.
//
// Here's how this works:
//
// The Transform stream has all the aspects of the readable and writable
// stream classes. When you write(chunk), that calls _write(chunk,cb)
// internally, and returns false if there's a lot of pending writes
// buffered up. When you call read(), that calls _read(n) until
// there's enough pending readable data buffered up.
//
// In a transform stream, the written data is placed in a buffer. When
// _read(n) is called, it transforms the queued up data, calling the
// buffered _write cb's as it consumes chunks. If consuming a single
// written chunk would result in multiple output chunks, then the first
// outputted bit calls the readcb, and subsequent chunks just go into
// the read buffer, and will cause it to emit 'readable' if necessary.
//
// This way, back-pressure is actually determined by the reading side,
// since _read has to be called to start processing a new chunk. However,
// a pathological inflate type of transform can cause excessive buffering
// here. For example, imagine a stream where every byte of input is
// interpreted as an integer from 0-255, and then results in that many
// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in
// 1kb of data being output. In this case, you could write a very small
// amount of input, and end up with a very large amount of output. In
// such a pathological inflating mechanism, there'd be no way to tell
// the system to stop doing the transform. A single 4MB write could
// cause the system to run out of memory.
//
// However, even in such a pathological case, only a single written chunk
// would be consumed, and then the rest would wait (un-transformed) until
// the results of the previous transformed chunk were consumed.
module.exports = Transform;
var Duplex = __webpack_require__(175);
/*<replacement>*/
var util = __webpack_require__(100);
util.inherits = __webpack_require__(89);
/*</replacement>*/
util.inherits(Transform, Duplex);
function TransformState(options, stream) {
this.afterTransform = function(er, data) {
return afterTransform(stream, er, data);
};
this.needTransform = false;
this.transforming = false;
this.writecb = null;
this.writechunk = null;
}
function afterTransform(stream, er, data) {
var ts = stream._transformState;
ts.transforming = false;
var cb = ts.writecb;
if (!cb)
return stream.emit('error', new Error('no writecb in Transform class'));
ts.writechunk = null;
ts.writecb = null;
if (data !== null && data !== undefined)
stream.push(data);
if (cb)
cb(er);
var rs = stream._readableState;
rs.reading = false;
if (rs.needReadable || rs.length < rs.highWaterMark) {
stream._read(rs.highWaterMark);
}
}
function Transform(options) {
if (!(this instanceof Transform))
return new Transform(options);
Duplex.call(this, options);
var ts = this._transformState = new TransformState(options, this);
// when the writable side finishes, then flush out anything remaining.
var stream = this;
// start out asking for a readable event once data is transformed.
this._readableState.needReadable = true;
// we have implemented the _read method, and done the other things
// that Readable wants before the first _read call, so unset the
// sync guard flag.
this._readableState.sync = false;
this.once('finish', function() {
if ('function' === typeof this._flush)
this._flush(function(er) {
done(stream, er);
});
else
done(stream);
});
}
Transform.prototype.push = function(chunk, encoding) {
this._transformState.needTransform = false;
return Duplex.prototype.push.call(this, chunk, encoding);
};
// This is the part where you do stuff!
// override this function in implementation classes.
// 'chunk' is an input chunk.
//
// Call `push(newChunk)` to pass along transformed output
// to the readable side. You may call 'push' zero or more times.
//
// Call `cb(err)` when you are done with this chunk. If you pass
// an error, then that'll put the hurt on the whole operation. If you
// never call cb(), then you'll never get another chunk.
Transform.prototype._transform = function(chunk, encoding, cb) {
throw new Error('not implemented');
};
Transform.prototype._write = function(chunk, encoding, cb) {
var ts = this._transformState;
ts.writecb = cb;
ts.writechunk = chunk;
ts.writeencoding = encoding;
if (!ts.transforming) {
var rs = this._readableState;
if (ts.needTransform ||
rs.needReadable ||
rs.length < rs.highWaterMark)
this._read(rs.highWaterMark);
}
};
// Doesn't matter what the args are here.
// _transform does all the work.
// That we got here means that the readable side wants more data.
Transform.prototype._read = function(n) {
var ts = this._transformState;
if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
ts.transforming = true;
this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
} else {
// mark that we need a transform, so that any data that comes in
// will get processed, now that we've asked for it.
ts.needTransform = true;
}
};
function done(stream, er) {
if (er)
return stream.emit('error', er);
// if there's nothing in the write buffer, then that means
// that nothing more will ever be provided
var ws = stream._writableState;
var rs = stream._readableState;
var ts = stream._transformState;
if (ws.length)
throw new Error('calling transform done when ws.length != 0');
if (ts.transforming)
throw new Error('calling transform done when still transforming');
return stream.push(null);
}
/***/ }),
/* 177 */
/***/ (function(module, exports, __webpack_require__) {
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
// a passthrough stream.
// basically just the most minimal sort of Transform stream.
// Every written chunk gets output as-is.
module.exports = PassThrough;
var Transform = __webpack_require__(176);
/*<replacement>*/
var util = __webpack_require__(100);
util.inherits = __webpack_require__(89);
/*</replacement>*/
util.inherits(PassThrough, Transform);
function PassThrough(options) {
if (!(this instanceof PassThrough))
return new PassThrough(options);
Transform.call(this, options);
}
PassThrough.prototype._transform = function(chunk, encoding, cb) {
cb(null, chunk);
};
/***/ }),
/* 178 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(process) {var Transform = __webpack_require__(90).Transform
, inherits = __webpack_require__(135).inherits
, xtend = __webpack_require__(179)
function DestroyableTransform(opts) {
Transform.call(this, opts)
this._destroyed = false
}
inherits(DestroyableTransform, Transform)
DestroyableTransform.prototype.destroy = function(err) {
if (this._destroyed) return
this._destroyed = true
var self = this
process.nextTick(function() {
if (err)
self.emit('error', err)
self.emit('close')
})
}
// a noop _transform function
function noop (chunk, enc, callback) {
callback(null, chunk)
}
// create a new export function, used by both the main export and
// the .ctor export, contains common logic for dealing with arguments
function through2 (construct) {
return function (options, transform, flush) {
if (typeof options == 'function') {
flush = transform
transform = options
options = {}
}
if (typeof transform != 'function')
transform = noop
if (typeof flush != 'function')
flush = null
return construct(options, transform, flush)
}
}
// main export, just make me a transform stream!
module.exports = through2(function (options, transform, flush) {
var t2 = new DestroyableTransform(options)
t2._transform = transform
if (flush)
t2._flush = flush
return t2
})
// make me a reusable prototype that I can `new`, or implicitly `new`
// with a constructor call
module.exports.ctor = through2(function (options, transform, flush) {
function Through2 (override) {
if (!(this instanceof Through2))
return new Through2(override)
this.options = xtend(options, override)
DestroyableTransform.call(this, this.options)
}
inherits(Through2, DestroyableTransform)
Through2.prototype._transform = transform
if (flush)
Through2.prototype._flush = flush
return Through2
})
module.exports.obj = through2(function (options, transform, flush) {
var t2 = new DestroyableTransform(xtend({ objectMode: true, highWaterMark: 16 }, options))
t2._transform = transform
if (flush)
t2._flush = flush
return t2
})
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(92)))
/***/ }),
/* 179 */
/***/ (function(module, exports) {
module.exports = extend
var hasOwnProperty = Object.prototype.hasOwnProperty;
function extend() {
var target = {}
for (var i = 0; i < arguments.length; i++) {
var source = arguments[i]
for (var key in source) {
if (hasOwnProperty.call(source, key)) {
target[key] = source[key]
}
}
}
return target
}
/***/ }),
/* 180 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
module.exports = __webpack_require__(181)
/***/ }),
/* 181 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
module.exports = __webpack_require__(182);
__webpack_require__(184);
__webpack_require__(185);
__webpack_require__(186);
__webpack_require__(187);
__webpack_require__(189);
/***/ }),
/* 182 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
var asap = __webpack_require__(183);
function noop() {}
// States:
//
// 0 - pending
// 1 - fulfilled with _value
// 2 - rejected with _value
// 3 - adopted the state of another promise, _value
//
// once the state is no longer pending (0) it is immutable
// All `_` prefixed properties will be reduced to `_{random number}`
// at build time to obfuscate them and discourage their use.
// We don't use symbols or Object.defineProperty to fully hide them
// because the performance isn't good enough.
// to avoid using try/catch inside critical functions, we
// extract them to here.
var LAST_ERROR = null;
var IS_ERROR = {};
function getThen(obj) {
try {
return obj.then;
} catch (ex) {
LAST_ERROR = ex;
return IS_ERROR;
}
}
function tryCallOne(fn, a) {
try {
return fn(a);
} catch (ex) {
LAST_ERROR = ex;
return IS_ERROR;
}
}
function tryCallTwo(fn, a, b) {
try {
fn(a, b);
} catch (ex) {
LAST_ERROR = ex;
return IS_ERROR;
}
}
module.exports = Promise;
function Promise(fn) {
if (typeof this !== 'object') {
throw new TypeError('Promises must be constructed via new');
}
if (typeof fn !== 'function') {
throw new TypeError('Promise constructor\'s argument is not a function');
}
this._40 = 0;
this._65 = 0;
this._55 = null;
this._72 = null;
if (fn === noop) return;
doResolve(fn, this);
}
Promise._37 = null;
Promise._87 = null;
Promise._61 = noop;
Promise.prototype.then = function(onFulfilled, onRejected) {
if (this.constructor !== Promise) {
return safeThen(this, onFulfilled, onRejected);
}
var res = new Promise(noop);
handle(this, new Handler(onFulfilled, onRejected, res));
return res;
};
function safeThen(self, onFulfilled, onRejected) {
return new self.constructor(function (resolve, reject) {
var res = new Promise(noop);
res.then(resolve, reject);
handle(self, new Handler(onFulfilled, onRejected, res));
});
}
function handle(self, deferred) {
while (self._65 === 3) {
self = self._55;
}
if (Promise._37) {
Promise._37(self);
}
if (self._65 === 0) {
if (self._40 === 0) {
self._40 = 1;
self._72 = deferred;
return;
}
if (self._40 === 1) {
self._40 = 2;
self._72 = [self._72, deferred];
return;
}
self._72.push(deferred);
return;
}
handleResolved(self, deferred);
}
function handleResolved(self, deferred) {
asap(function() {
var cb = self._65 === 1 ? deferred.onFulfilled : deferred.onRejected;
if (cb === null) {
if (self._65 === 1) {
resolve(deferred.promise, self._55);
} else {
reject(deferred.promise, self._55);
}
return;
}
var ret = tryCallOne(cb, self._55);
if (ret === IS_ERROR) {
reject(deferred.promise, LAST_ERROR);
} else {
resolve(deferred.promise, ret);
}
});
}
function resolve(self, newValue) {
// Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure
if (newValue === self) {
return reject(
self,
new TypeError('A promise cannot be resolved with itself.')
);
}
if (
newValue &&
(typeof newValue === 'object' || typeof newValue === 'function')
) {
var then = getThen(newValue);
if (then === IS_ERROR) {
return reject(self, LAST_ERROR);
}
if (
then === self.then &&
newValue instanceof Promise
) {
self._65 = 3;
self._55 = newValue;
finale(self);
return;
} else if (typeof then === 'function') {
doResolve(then.bind(newValue), self);
return;
}
}
self._65 = 1;
self._55 = newValue;
finale(self);
}
function reject(self, newValue) {
self._65 = 2;
self._55 = newValue;
if (Promise._87) {
Promise._87(self, newValue);
}
finale(self);
}
function finale(self) {
if (self._40 === 1) {
handle(self, self._72);
self._72 = null;
}
if (self._40 === 2) {
for (var i = 0; i < self._72.length; i++) {
handle(self, self._72[i]);
}
self._72 = null;
}
}
function Handler(onFulfilled, onRejected, promise){
this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;
this.onRejected = typeof onRejected === 'function' ? onRejected : null;
this.promise = promise;
}
/**
* Take a potentially misbehaving resolver function and make sure
* onFulfilled and onRejected are only called once.
*
* Makes no guarantees about asynchrony.
*/
function doResolve(fn, promise) {
var done = false;
var res = tryCallTwo(fn, function (value) {
if (done) return;
done = true;
resolve(promise, value);
}, function (reason) {
if (done) return;
done = true;
reject(promise, reason);
});
if (!done && res === IS_ERROR) {
done = true;
reject(promise, LAST_ERROR);
}
}
/***/ }),
/* 183 */
/***/ (function(module, exports) {
/* WEBPACK VAR INJECTION */(function(global) {"use strict";
// Use the fastest means possible to execute a task in its own turn, with
// priority over other events including IO, animation, reflow, and redraw
// events in browsers.
//
// An exception thrown by a task will permanently interrupt the processing of
// subsequent tasks. The higher level `asap` function ensures that if an
// exception is thrown by a task, that the task queue will continue flushing as
// soon as possible, but if you use `rawAsap` directly, you are responsible to
// either ensure that no exceptions are thrown from your task, or to manually
// call `rawAsap.requestFlush` if an exception is thrown.
module.exports = rawAsap;
function rawAsap(task) {
if (!queue.length) {
requestFlush();
flushing = true;
}
// Equivalent to push, but avoids a function call.
queue[queue.length] = task;
}
var queue = [];
// Once a flush has been requested, no further calls to `requestFlush` are
// necessary until the next `flush` completes.
var flushing = false;
// `requestFlush` is an implementation-specific method that attempts to kick
// off a `flush` event as quickly as possible. `flush` will attempt to exhaust
// the event queue before yielding to the browser's own event loop.
var requestFlush;
// The position of the next task to execute in the task queue. This is
// preserved between calls to `flush` so that it can be resumed if
// a task throws an exception.
var index = 0;
// If a task schedules additional tasks recursively, the task queue can grow
// unbounded. To prevent memory exhaustion, the task queue will periodically
// truncate already-completed tasks.
var capacity = 1024;
// The flush function processes all tasks that have been scheduled with
// `rawAsap` unless and until one of those tasks throws an exception.
// If a task throws an exception, `flush` ensures that its state will remain
// consistent and will resume where it left off when called again.
// However, `flush` does not make any arrangements to be called again if an
// exception is thrown.
function flush() {
while (index < queue.length) {
var currentIndex = index;
// Advance the index before calling the task. This ensures that we will
// begin flushing on the next task the task throws an error.
index = index + 1;
queue[currentIndex].call();
// Prevent leaking memory for long chains of recursive calls to `asap`.
// If we call `asap` within tasks scheduled by `asap`, the queue will
// grow, but to avoid an O(n) walk for every task we execute, we don't
// shift tasks off the queue after they have been executed.
// Instead, we periodically shift 1024 tasks off the queue.
if (index > capacity) {
// Manually shift all values starting at the index back to the
// beginning of the queue.
for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) {
queue[scan] = queue[scan + index];
}
queue.length -= index;
index = 0;
}
}
queue.length = 0;
index = 0;
flushing = false;
}
// `requestFlush` is implemented using a strategy based on data collected from
// every available SauceLabs Selenium web driver worker at time of writing.
// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593
// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that
// have WebKitMutationObserver but not un-prefixed MutationObserver.
// Must use `global` or `self` instead of `window` to work in both frames and web
// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.
/* globals self */
var scope = typeof global !== "undefined" ? global : self;
var BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver;
// MutationObservers are desirable because they have high priority and work
// reliably everywhere they are implemented.
// They are implemented in all modern browsers.
//
// - Android 4-4.3
// - Chrome 26-34
// - Firefox 14-29
// - Internet Explorer 11
// - iPad Safari 6-7.1
// - iPhone Safari 7-7.1
// - Safari 6-7
if (typeof BrowserMutationObserver === "function") {
requestFlush = makeRequestCallFromMutationObserver(flush);
// MessageChannels are desirable because they give direct access to the HTML
// task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera
// 11-12, and in web workers in many engines.
// Although message channels yield to any queued rendering and IO tasks, they
// would be better than imposing the 4ms delay of timers.
// However, they do not work reliably in Internet Explorer or Safari.
// Internet Explorer 10 is the only browser that has setImmediate but does
// not have MutationObservers.
// Although setImmediate yields to the browser's renderer, it would be
// preferrable to falling back to setTimeout since it does not have
// the minimum 4ms penalty.
// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and
// Desktop to a lesser extent) that renders both setImmediate and
// MessageChannel useless for the purposes of ASAP.
// https://github.com/kriskowal/q/issues/396
// Timers are implemented universally.
// We fall back to timers in workers in most engines, and in foreground
// contexts in the following browsers.
// However, note that even this simple case requires nuances to operate in a
// broad spectrum of browsers.
//
// - Firefox 3-13
// - Internet Explorer 6-9
// - iPad Safari 4.3
// - Lynx 2.8.7
} else {
requestFlush = makeRequestCallFromTimer(flush);
}
// `requestFlush` requests that the high priority event queue be flushed as
// soon as possible.
// This is useful to prevent an error thrown in a task from stalling the event
// queue if the exception handled by Node.jss
// `process.on("uncaughtException")` or by a domain.
rawAsap.requestFlush = requestFlush;
// To request a high priority event, we induce a mutation observer by toggling
// the text of a text node between "1" and "-1".
function makeRequestCallFromMutationObserver(callback) {
var toggle = 1;
var observer = new BrowserMutationObserver(callback);
var node = document.createTextNode("");
observer.observe(node, {characterData: true});
return function requestCall() {
toggle = -toggle;
node.data = toggle;
};
}
// The message channel technique was discovered by Malte Ubl and was the
// original foundation for this library.
// http://www.nonblocking.io/2011/06/windownexttick.html
// Safari 6.0.5 (at least) intermittently fails to create message ports on a
// page's first load. Thankfully, this version of Safari supports
// MutationObservers, so we don't need to fall back in that case.
// function makeRequestCallFromMessageChannel(callback) {
// var channel = new MessageChannel();
// channel.port1.onmessage = callback;
// return function requestCall() {
// channel.port2.postMessage(0);
// };
// }
// For reasons explained above, we are also unable to use `setImmediate`
// under any circumstances.
// Even if we were, there is another bug in Internet Explorer 10.
// It is not sufficient to assign `setImmediate` to `requestFlush` because
// `setImmediate` must be called *by name* and therefore must be wrapped in a
// closure.
// Never forget.
// function makeRequestCallFromSetImmediate(callback) {
// return function requestCall() {
// setImmediate(callback);
// };
// }
// Safari 6.0 has a problem where timers will get lost while the user is
// scrolling. This problem does not impact ASAP because Safari 6.0 supports
// mutation observers, so that implementation is used instead.
// However, if we ever elect to use timers in Safari, the prevalent work-around
// is to add a scroll event listener that calls for a flush.
// `setTimeout` does not call the passed callback if the delay is less than
// approximately 7 in web workers in Firefox 8 through 18, and sometimes not
// even then.
function makeRequestCallFromTimer(callback) {
return function requestCall() {
// We dispatch a timeout with a specified delay of 0 for engines that
// can reliably accommodate that request. This will usually be snapped
// to a 4 milisecond delay, but once we're flushing, there's no delay
// between events.
var timeoutHandle = setTimeout(handleTimer, 0);
// However, since this timer gets frequently dropped in Firefox
// workers, we enlist an interval handle that will try to fire
// an event 20 times per second until it succeeds.
var intervalHandle = setInterval(handleTimer, 50);
function handleTimer() {
// Whichever timer succeeds will cancel both timers and
// execute the callback.
clearTimeout(timeoutHandle);
clearInterval(intervalHandle);
callback();
}
};
}
// This is for `asap.js` only.
// Its name will be periodically randomized to break any code that depends on
// its existence.
rawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer;
// ASAP was originally a nextTick shim included in Q. This was factored out
// into this ASAP package. It was later adapted to RSVP which made further
// amendments. These decisions, particularly to marginalize MessageChannel and
// to capture the MutationObserver implementation in a closure, were integrated
// back into ASAP proper.
// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js
/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
/***/ }),
/* 184 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
var Promise = __webpack_require__(182);
module.exports = Promise;
Promise.prototype.done = function (onFulfilled, onRejected) {
var self = arguments.length ? this.then.apply(this, arguments) : this;
self.then(null, function (err) {
setTimeout(function () {
throw err;
}, 0);
});
};
/***/ }),
/* 185 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
var Promise = __webpack_require__(182);
module.exports = Promise;
Promise.prototype['finally'] = function (f) {
return this.then(function (value) {
return Promise.resolve(f()).then(function () {
return value;
});
}, function (err) {
return Promise.resolve(f()).then(function () {
throw err;
});
});
};
/***/ }),
/* 186 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
//This file contains the ES6 extensions to the core Promises/A+ API
var Promise = __webpack_require__(182);
module.exports = Promise;
/* Static Functions */
var TRUE = valuePromise(true);
var FALSE = valuePromise(false);
var NULL = valuePromise(null);
var UNDEFINED = valuePromise(undefined);
var ZERO = valuePromise(0);
var EMPTYSTRING = valuePromise('');
function valuePromise(value) {
var p = new Promise(Promise._61);
p._65 = 1;
p._55 = value;
return p;
}
Promise.resolve = function (value) {
if (value instanceof Promise) return value;
if (value === null) return NULL;
if (value === undefined) return UNDEFINED;
if (value === true) return TRUE;
if (value === false) return FALSE;
if (value === 0) return ZERO;
if (value === '') return EMPTYSTRING;
if (typeof value === 'object' || typeof value === 'function') {
try {
var then = value.then;
if (typeof then === 'function') {
return new Promise(then.bind(value));
}
} catch (ex) {
return new Promise(function (resolve, reject) {
reject(ex);
});
}
}
return valuePromise(value);
};
Promise.all = function (arr) {
var args = Array.prototype.slice.call(arr);
return new Promise(function (resolve, reject) {
if (args.length === 0) return resolve([]);
var remaining = args.length;
function res(i, val) {
if (val && (typeof val === 'object' || typeof val === 'function')) {
if (val instanceof Promise && val.then === Promise.prototype.then) {
while (val._65 === 3) {
val = val._55;
}
if (val._65 === 1) return res(i, val._55);
if (val._65 === 2) reject(val._55);
val.then(function (val) {
res(i, val);
}, reject);
return;
} else {
var then = val.then;
if (typeof then === 'function') {
var p = new Promise(then.bind(val));
p.then(function (val) {
res(i, val);
}, reject);
return;
}
}
}
args[i] = val;
if (--remaining === 0) {
resolve(args);
}
}
for (var i = 0; i < args.length; i++) {
res(i, args[i]);
}
});
};
Promise.reject = function (value) {
return new Promise(function (resolve, reject) {
reject(value);
});
};
Promise.race = function (values) {
return new Promise(function (resolve, reject) {
values.forEach(function(value){
Promise.resolve(value).then(resolve, reject);
});
});
};
/* Prototype Methods */
Promise.prototype['catch'] = function (onRejected) {
return this.then(null, onRejected);
};
/***/ }),
/* 187 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
// This file contains then/promise specific extensions that are only useful
// for node.js interop
var Promise = __webpack_require__(182);
var asap = __webpack_require__(188);
module.exports = Promise;
/* Static Functions */
Promise.denodeify = function (fn, argumentCount) {
if (
typeof argumentCount === 'number' && argumentCount !== Infinity
) {
return denodeifyWithCount(fn, argumentCount);
} else {
return denodeifyWithoutCount(fn);
}
};
var callbackFn = (
'function (err, res) {' +
'if (err) { rj(err); } else { rs(res); }' +
'}'
);
function denodeifyWithCount(fn, argumentCount) {
var args = [];
for (var i = 0; i < argumentCount; i++) {
args.push('a' + i);
}
var body = [
'return function (' + args.join(',') + ') {',
'var self = this;',
'return new Promise(function (rs, rj) {',
'var res = fn.call(',
['self'].concat(args).concat([callbackFn]).join(','),
');',
'if (res &&',
'(typeof res === "object" || typeof res === "function") &&',
'typeof res.then === "function"',
') {rs(res);}',
'});',
'};'
].join('');
return Function(['Promise', 'fn'], body)(Promise, fn);
}
function denodeifyWithoutCount(fn) {
var fnLength = Math.max(fn.length - 1, 3);
var args = [];
for (var i = 0; i < fnLength; i++) {
args.push('a' + i);
}
var body = [
'return function (' + args.join(',') + ') {',
'var self = this;',
'var args;',
'var argLength = arguments.length;',
'if (arguments.length > ' + fnLength + ') {',
'args = new Array(arguments.length + 1);',
'for (var i = 0; i < arguments.length; i++) {',
'args[i] = arguments[i];',
'}',
'}',
'return new Promise(function (rs, rj) {',
'var cb = ' + callbackFn + ';',
'var res;',
'switch (argLength) {',
args.concat(['extra']).map(function (_, index) {
return (
'case ' + (index) + ':' +
'res = fn.call(' + ['self'].concat(args.slice(0, index)).concat('cb').join(',') + ');' +
'break;'
);
}).join(''),
'default:',
'args[argLength] = cb;',
'res = fn.apply(self, args);',
'}',
'if (res &&',
'(typeof res === "object" || typeof res === "function") &&',
'typeof res.then === "function"',
') {rs(res);}',
'});',
'};'
].join('');
return Function(
['Promise', 'fn'],
body
)(Promise, fn);
}
Promise.nodeify = function (fn) {
return function () {
var args = Array.prototype.slice.call(arguments);
var callback =
typeof args[args.length - 1] === 'function' ? args.pop() : null;
var ctx = this;
try {
return fn.apply(this, arguments).nodeify(callback, ctx);
} catch (ex) {
if (callback === null || typeof callback == 'undefined') {
return new Promise(function (resolve, reject) {
reject(ex);
});
} else {
asap(function () {
callback.call(ctx, ex);
})
}
}
}
};
Promise.prototype.nodeify = function (callback, ctx) {
if (typeof callback != 'function') return this;
this.then(function (value) {
asap(function () {
callback.call(ctx, null, value);
});
}, function (err) {
asap(function () {
callback.call(ctx, err);
});
});
};
/***/ }),
/* 188 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
// rawAsap provides everything we need except exception management.
var rawAsap = __webpack_require__(183);
// RawTasks are recycled to reduce GC churn.
var freeTasks = [];
// We queue errors to ensure they are thrown in right order (FIFO).
// Array-as-queue is good enough here, since we are just dealing with exceptions.
var pendingErrors = [];
var requestErrorThrow = rawAsap.makeRequestCallFromTimer(throwFirstError);
function throwFirstError() {
if (pendingErrors.length) {
throw pendingErrors.shift();
}
}
/**
* Calls a task as soon as possible after returning, in its own event, with priority
* over other events like animation, reflow, and repaint. An error thrown from an
* event will not interrupt, nor even substantially slow down the processing of
* other events, but will be rather postponed to a lower priority event.
* @param {{call}} task A callable object, typically a function that takes no
* arguments.
*/
module.exports = asap;
function asap(task) {
var rawTask;
if (freeTasks.length) {
rawTask = freeTasks.pop();
} else {
rawTask = new RawTask();
}
rawTask.task = task;
rawAsap(rawTask);
}
// We wrap tasks with recyclable task objects. A task object implements
// `call`, just like a function.
function RawTask() {
this.task = null;
}
// The sole purpose of wrapping the task is to catch the exception and recycle
// the task object after its single use.
RawTask.prototype.call = function () {
try {
this.task.call();
} catch (error) {
if (asap.onerror) {
// This hook exists purely for testing purposes.
// Its name will be periodically randomized to break any code that
// depends on its existence.
asap.onerror(error);
} else {
// In a web browser, exceptions are not fatal. However, to avoid
// slowing down the queue of pending tasks, we rethrow the error in a
// lower priority turn.
pendingErrors.push(error);
requestErrorThrow();
}
} finally {
this.task = null;
freeTasks[freeTasks.length] = this;
}
};
/***/ }),
/* 189 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
var Promise = __webpack_require__(182);
module.exports = Promise;
Promise.enableSynchronous = function () {
Promise.prototype.isPending = function() {
return this.getState() == 0;
};
Promise.prototype.isFulfilled = function() {
return this.getState() == 1;
};
Promise.prototype.isRejected = function() {
return this.getState() == 2;
};
Promise.prototype.getValue = function () {
if (this._65 === 3) {
return this._55.getValue();
}
if (!this.isFulfilled()) {
throw new Error('Cannot get a value of an unfulfilled promise.');
}
return this._55;
};
Promise.prototype.getReason = function () {
if (this._65 === 3) {
return this._55.getReason();
}
if (!this.isRejected()) {
throw new Error('Cannot get a rejection reason of a non-rejected promise.');
}
return this._55;
};
Promise.prototype.getState = function () {
if (this._65 === 3) {
return this._55.getState();
}
if (this._65 === -1 || this._65 === -2) {
return 0;
}
return this._65;
};
};
Promise.disableSynchronous = function() {
Promise.prototype.isPending = undefined;
Promise.prototype.isFulfilled = undefined;
Promise.prototype.isRejected = undefined;
Promise.prototype.getValue = undefined;
Promise.prototype.getReason = undefined;
Promise.prototype.getState = undefined;
};
/***/ }),
/* 190 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
var Transform = __webpack_require__(191),
inherits = __webpack_require__(135).inherits;
function DropStream(options) {
if (!(this instanceof DropStream)) {
return new DropStream(options);
}
Transform.call(this, options);
}
inherits(DropStream, Transform);
DropStream.prototype._transform = function(chunk, encoding, done) {
done();
};
DropStream.obj = function (options) {
options = options || {};
options.objectMode = true;
return new DropStream(options);
};
module.exports = DropStream;
/***/ }),
/* 191 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(192)
/***/ }),
/* 192 */
/***/ (function(module, exports, __webpack_require__) {
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
// a transform stream is a readable/writable stream where you do
// something with the data. Sometimes it's called a "filter",
// but that's not a great name for it, since that implies a thing where
// some bits pass through, and others are simply ignored. (That would
// be a valid example of a transform, of course.)
//
// While the output is causally related to the input, it's not a
// necessarily symmetric or synchronous transformation. For example,
// a zlib stream might take multiple plain-text writes(), and then
// emit a single compressed chunk some time in the future.
//
// Here's how this works:
//
// The Transform stream has all the aspects of the readable and writable
// stream classes. When you write(chunk), that calls _write(chunk,cb)
// internally, and returns false if there's a lot of pending writes
// buffered up. When you call read(), that calls _read(n) until
// there's enough pending readable data buffered up.
//
// In a transform stream, the written data is placed in a buffer. When
// _read(n) is called, it transforms the queued up data, calling the
// buffered _write cb's as it consumes chunks. If consuming a single
// written chunk would result in multiple output chunks, then the first
// outputted bit calls the readcb, and subsequent chunks just go into
// the read buffer, and will cause it to emit 'readable' if necessary.
//
// This way, back-pressure is actually determined by the reading side,
// since _read has to be called to start processing a new chunk. However,
// a pathological inflate type of transform can cause excessive buffering
// here. For example, imagine a stream where every byte of input is
// interpreted as an integer from 0-255, and then results in that many
// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in
// 1kb of data being output. In this case, you could write a very small
// amount of input, and end up with a very large amount of output. In
// such a pathological inflating mechanism, there'd be no way to tell
// the system to stop doing the transform. A single 4MB write could
// cause the system to run out of memory.
//
// However, even in such a pathological case, only a single written chunk
// would be consumed, and then the rest would wait (un-transformed) until
// the results of the previous transformed chunk were consumed.
module.exports = Transform;
var Duplex = __webpack_require__(193);
/*<replacement>*/
var util = __webpack_require__(100);
util.inherits = __webpack_require__(89);
/*</replacement>*/
util.inherits(Transform, Duplex);
function TransformState(options, stream) {
this.afterTransform = function(er, data) {
return afterTransform(stream, er, data);
};
this.needTransform = false;
this.transforming = false;
this.writecb = null;
this.writechunk = null;
}
function afterTransform(stream, er, data) {
var ts = stream._transformState;
ts.transforming = false;
var cb = ts.writecb;
if (!cb)
return stream.emit('error', new Error('no writecb in Transform class'));
ts.writechunk = null;
ts.writecb = null;
if (!util.isNullOrUndefined(data))
stream.push(data);
if (cb)
cb(er);
var rs = stream._readableState;
rs.reading = false;
if (rs.needReadable || rs.length < rs.highWaterMark) {
stream._read(rs.highWaterMark);
}
}
function Transform(options) {
if (!(this instanceof Transform))
return new Transform(options);
Duplex.call(this, options);
this._transformState = new TransformState(options, this);
// when the writable side finishes, then flush out anything remaining.
var stream = this;
// start out asking for a readable event once data is transformed.
this._readableState.needReadable = true;
// we have implemented the _read method, and done the other things
// that Readable wants before the first _read call, so unset the
// sync guard flag.
this._readableState.sync = false;
this.once('prefinish', function() {
if (util.isFunction(this._flush))
this._flush(function(er) {
done(stream, er);
});
else
done(stream);
});
}
Transform.prototype.push = function(chunk, encoding) {
this._transformState.needTransform = false;
return Duplex.prototype.push.call(this, chunk, encoding);
};
// This is the part where you do stuff!
// override this function in implementation classes.
// 'chunk' is an input chunk.
//
// Call `push(newChunk)` to pass along transformed output
// to the readable side. You may call 'push' zero or more times.
//
// Call `cb(err)` when you are done with this chunk. If you pass
// an error, then that'll put the hurt on the whole operation. If you
// never call cb(), then you'll never get another chunk.
Transform.prototype._transform = function(chunk, encoding, cb) {
throw new Error('not implemented');
};
Transform.prototype._write = function(chunk, encoding, cb) {
var ts = this._transformState;
ts.writecb = cb;
ts.writechunk = chunk;
ts.writeencoding = encoding;
if (!ts.transforming) {
var rs = this._readableState;
if (ts.needTransform ||
rs.needReadable ||
rs.length < rs.highWaterMark)
this._read(rs.highWaterMark);
}
};
// Doesn't matter what the args are here.
// _transform does all the work.
// That we got here means that the readable side wants more data.
Transform.prototype._read = function(n) {
var ts = this._transformState;
if (!util.isNull(ts.writechunk) && ts.writecb && !ts.transforming) {
ts.transforming = true;
this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
} else {
// mark that we need a transform, so that any data that comes in
// will get processed, now that we've asked for it.
ts.needTransform = true;
}
};
function done(stream, er) {
if (er)
return stream.emit('error', er);
// if there's nothing in the write buffer, then that means
// that nothing more will ever be provided
var ws = stream._writableState;
var ts = stream._transformState;
if (ws.length)
throw new Error('calling transform done when ws.length != 0');
if (ts.transforming)
throw new Error('calling transform done when still transforming');
return stream.push(null);
}
/***/ }),
/* 193 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(process) {// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
// a duplex stream is just a stream that is both readable and writable.
// Since JS doesn't have multiple prototypal inheritance, this class
// prototypally inherits from Readable, and then parasitically from
// Writable.
module.exports = Duplex;
/*<replacement>*/
var objectKeys = Object.keys || function (obj) {
var keys = [];
for (var key in obj) keys.push(key);
return keys;
}
/*</replacement>*/
/*<replacement>*/
var util = __webpack_require__(100);
util.inherits = __webpack_require__(89);
/*</replacement>*/
var Readable = __webpack_require__(194);
var Writable = __webpack_require__(198);
util.inherits(Duplex, Readable);
forEach(objectKeys(Writable.prototype), function(method) {
if (!Duplex.prototype[method])
Duplex.prototype[method] = Writable.prototype[method];
});
function Duplex(options) {
if (!(this instanceof Duplex))
return new Duplex(options);
Readable.call(this, options);
Writable.call(this, options);
if (options && options.readable === false)
this.readable = false;
if (options && options.writable === false)
this.writable = false;
this.allowHalfOpen = true;
if (options && options.allowHalfOpen === false)
this.allowHalfOpen = false;
this.once('end', onend);
}
// the no-half-open enforcer
function onend() {
// if we allow half-open state, or if the writable side ended,
// then we're ok.
if (this.allowHalfOpen || this._writableState.ended)
return;
// no more data can be written.
// But allow more writes to happen in this tick.
process.nextTick(this.end.bind(this));
}
function forEach (xs, f) {
for (var i = 0, l = xs.length; i < l; i++) {
f(xs[i], i);
}
}
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(92)))
/***/ }),
/* 194 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(process) {// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
module.exports = Readable;
/*<replacement>*/
var isArray = __webpack_require__(195);
/*</replacement>*/
/*<replacement>*/
var Buffer = __webpack_require__(97).Buffer;
/*</replacement>*/
Readable.ReadableState = ReadableState;
var EE = __webpack_require__(88).EventEmitter;
/*<replacement>*/
if (!EE.listenerCount) EE.listenerCount = function(emitter, type) {
return emitter.listeners(type).length;
};
/*</replacement>*/
var Stream = __webpack_require__(87);
/*<replacement>*/
var util = __webpack_require__(100);
util.inherits = __webpack_require__(89);
/*</replacement>*/
var StringDecoder;
/*<replacement>*/
var debug = __webpack_require__(196);
if (debug && debug.debuglog) {
debug = debug.debuglog('stream');
} else {
debug = function () {};
}
/*</replacement>*/
util.inherits(Readable, Stream);
function ReadableState(options, stream) {
var Duplex = __webpack_require__(193);
options = options || {};
// the point at which it stops calling _read() to fill the buffer
// Note: 0 is a valid value, means "don't call _read preemptively ever"
var hwm = options.highWaterMark;
var defaultHwm = options.objectMode ? 16 : 16 * 1024;
this.highWaterMark = (hwm || hwm === 0) ? hwm : defaultHwm;
// cast to ints.
this.highWaterMark = ~~this.highWaterMark;
this.buffer = [];
this.length = 0;
this.pipes = null;
this.pipesCount = 0;
this.flowing = null;
this.ended = false;
this.endEmitted = false;
this.reading = false;
// a flag to be able to tell if the onwrite cb is called immediately,
// or on a later tick. We set this to true at first, because any
// actions that shouldn't happen until "later" should generally also
// not happen before the first write call.
this.sync = true;
// whenever we return null, then we set a flag to say
// that we're awaiting a 'readable' event emission.
this.needReadable = false;
this.emittedReadable = false;
this.readableListening = false;
// object stream flag. Used to make read(n) ignore n and to
// make all the buffer merging and length checks go away
this.objectMode = !!options.objectMode;
if (stream instanceof Duplex)
this.objectMode = this.objectMode || !!options.readableObjectMode;
// Crypto is kind of old and crusty. Historically, its default string
// encoding is 'binary' so we have to make this configurable.
// Everything else in the universe uses 'utf8', though.
this.defaultEncoding = options.defaultEncoding || 'utf8';
// when piping, we only care about 'readable' events that happen
// after read()ing all the bytes and not getting any pushback.
this.ranOut = false;
// the number of writers that are awaiting a drain event in .pipe()s
this.awaitDrain = 0;
// if true, a maybeReadMore has been scheduled
this.readingMore = false;
this.decoder = null;
this.encoding = null;
if (options.encoding) {
if (!StringDecoder)
StringDecoder = __webpack_require__(197).StringDecoder;
this.decoder = new StringDecoder(options.encoding);
this.encoding = options.encoding;
}
}
function Readable(options) {
var Duplex = __webpack_require__(193);
if (!(this instanceof Readable))
return new Readable(options);
this._readableState = new ReadableState(options, this);
// legacy
this.readable = true;
Stream.call(this);
}
// Manually shove something into the read() buffer.
// This returns true if the highWaterMark has not been hit yet,
// similar to how Writable.write() returns true if you should
// write() some more.
Readable.prototype.push = function(chunk, encoding) {
var state = this._readableState;
if (util.isString(chunk) && !state.objectMode) {
encoding = encoding || state.defaultEncoding;
if (encoding !== state.encoding) {
chunk = new Buffer(chunk, encoding);
encoding = '';
}
}
return readableAddChunk(this, state, chunk, encoding, false);
};
// Unshift should *always* be something directly out of read()
Readable.prototype.unshift = function(chunk) {
var state = this._readableState;
return readableAddChunk(this, state, chunk, '', true);
};
function readableAddChunk(stream, state, chunk, encoding, addToFront) {
var er = chunkInvalid(state, chunk);
if (er) {
stream.emit('error', er);
} else if (util.isNullOrUndefined(chunk)) {
state.reading = false;
if (!state.ended)
onEofChunk(stream, state);
} else if (state.objectMode || chunk && chunk.length > 0) {
if (state.ended && !addToFront) {
var e = new Error('stream.push() after EOF');
stream.emit('error', e);
} else if (state.endEmitted && addToFront) {
var e = new Error('stream.unshift() after end event');
stream.emit('error', e);
} else {
if (state.decoder && !addToFront && !encoding)
chunk = state.decoder.write(chunk);
if (!addToFront)
state.reading = false;
// if we want the data now, just emit it.
if (state.flowing && state.length === 0 && !state.sync) {
stream.emit('data', chunk);
stream.read(0);
} else {
// update the buffer info.
state.length += state.objectMode ? 1 : chunk.length;
if (addToFront)
state.buffer.unshift(chunk);
else
state.buffer.push(chunk);
if (state.needReadable)
emitReadable(stream);
}
maybeReadMore(stream, state);
}
} else if (!addToFront) {
state.reading = false;
}
return needMoreData(state);
}
// if it's past the high water mark, we can push in some more.
// Also, if we have no data yet, we can stand some
// more bytes. This is to work around cases where hwm=0,
// such as the repl. Also, if the push() triggered a
// readable event, and the user called read(largeNumber) such that
// needReadable was set, then we ought to push more, so that another
// 'readable' event will be triggered.
function needMoreData(state) {
return !state.ended &&
(state.needReadable ||
state.length < state.highWaterMark ||
state.length === 0);
}
// backwards compatibility.
Readable.prototype.setEncoding = function(enc) {
if (!StringDecoder)
StringDecoder = __webpack_require__(197).StringDecoder;
this._readableState.decoder = new StringDecoder(enc);
this._readableState.encoding = enc;
return this;
};
// Don't raise the hwm > 128MB
var MAX_HWM = 0x800000;
function roundUpToNextPowerOf2(n) {
if (n >= MAX_HWM) {
n = MAX_HWM;
} else {
// Get the next highest power of 2
n--;
for (var p = 1; p < 32; p <<= 1) n |= n >> p;
n++;
}
return n;
}
function howMuchToRead(n, state) {
if (state.length === 0 && state.ended)
return 0;
if (state.objectMode)
return n === 0 ? 0 : 1;
if (isNaN(n) || util.isNull(n)) {
// only flow one buffer at a time
if (state.flowing && state.buffer.length)
return state.buffer[0].length;
else
return state.length;
}
if (n <= 0)
return 0;
// If we're asking for more than the target buffer level,
// then raise the water mark. Bump up to the next highest
// power of 2, to prevent increasing it excessively in tiny
// amounts.
if (n > state.highWaterMark)
state.highWaterMark = roundUpToNextPowerOf2(n);
// don't have that much. return null, unless we've ended.
if (n > state.length) {
if (!state.ended) {
state.needReadable = true;
return 0;
} else
return state.length;
}
return n;
}
// you can override either this method, or the async _read(n) below.
Readable.prototype.read = function(n) {
debug('read', n);
var state = this._readableState;
var nOrig = n;
if (!util.isNumber(n) || n > 0)
state.emittedReadable = false;
// if we're doing read(0) to trigger a readable event, but we
// already have a bunch of data in the buffer, then just trigger
// the 'readable' event and move on.
if (n === 0 &&
state.needReadable &&
(state.length >= state.highWaterMark || state.ended)) {
debug('read: emitReadable', state.length, state.ended);
if (state.length === 0 && state.ended)
endReadable(this);
else
emitReadable(this);
return null;
}
n = howMuchToRead(n, state);
// if we've ended, and we're now clear, then finish it up.
if (n === 0 && state.ended) {
if (state.length === 0)
endReadable(this);
return null;
}
// All the actual chunk generation logic needs to be
// *below* the call to _read. The reason is that in certain
// synthetic stream cases, such as passthrough streams, _read
// may be a completely synchronous operation which may change
// the state of the read buffer, providing enough data when
// before there was *not* enough.
//
// So, the steps are:
// 1. Figure out what the state of things will be after we do
// a read from the buffer.
//
// 2. If that resulting state will trigger a _read, then call _read.
// Note that this may be asynchronous, or synchronous. Yes, it is
// deeply ugly to write APIs this way, but that still doesn't mean
// that the Readable class should behave improperly, as streams are
// designed to be sync/async agnostic.
// Take note if the _read call is sync or async (ie, if the read call
// has returned yet), so that we know whether or not it's safe to emit
// 'readable' etc.
//
// 3. Actually pull the requested chunks out of the buffer and return.
// if we need a readable event, then we need to do some reading.
var doRead = state.needReadable;
debug('need readable', doRead);
// if we currently have less than the highWaterMark, then also read some
if (state.length === 0 || state.length - n < state.highWaterMark) {
doRead = true;
debug('length less than watermark', doRead);
}
// however, if we've ended, then there's no point, and if we're already
// reading, then it's unnecessary.
if (state.ended || state.reading) {
doRead = false;
debug('reading or ended', doRead);
}
if (doRead) {
debug('do read');
state.reading = true;
state.sync = true;
// if the length is currently zero, then we *need* a readable event.
if (state.length === 0)
state.needReadable = true;
// call internal read method
this._read(state.highWaterMark);
state.sync = false;
}
// If _read pushed data synchronously, then `reading` will be false,
// and we need to re-evaluate how much data we can return to the user.
if (doRead && !state.reading)
n = howMuchToRead(nOrig, state);
var ret;
if (n > 0)
ret = fromList(n, state);
else
ret = null;
if (util.isNull(ret)) {
state.needReadable = true;
n = 0;
}
state.length -= n;
// If we have nothing in the buffer, then we want to know
// as soon as we *do* get something into the buffer.
if (state.length === 0 && !state.ended)
state.needReadable = true;
// If we tried to read() past the EOF, then emit end on the next tick.
if (nOrig !== n && state.ended && state.length === 0)
endReadable(this);
if (!util.isNull(ret))
this.emit('data', ret);
return ret;
};
function chunkInvalid(state, chunk) {
var er = null;
if (!util.isBuffer(chunk) &&
!util.isString(chunk) &&
!util.isNullOrUndefined(chunk) &&
!state.objectMode) {
er = new TypeError('Invalid non-string/buffer chunk');
}
return er;
}
function onEofChunk(stream, state) {
if (state.decoder && !state.ended) {
var chunk = state.decoder.end();
if (chunk && chunk.length) {
state.buffer.push(chunk);
state.length += state.objectMode ? 1 : chunk.length;
}
}
state.ended = true;
// emit 'readable' now to make sure it gets picked up.
emitReadable(stream);
}
// Don't emit readable right away in sync mode, because this can trigger
// another read() call => stack overflow. This way, it might trigger
// a nextTick recursion warning, but that's not so bad.
function emitReadable(stream) {
var state = stream._readableState;
state.needReadable = false;
if (!state.emittedReadable) {
debug('emitReadable', state.flowing);
state.emittedReadable = true;
if (state.sync)
process.nextTick(function() {
emitReadable_(stream);
});
else
emitReadable_(stream);
}
}
function emitReadable_(stream) {
debug('emit readable');
stream.emit('readable');
flow(stream);
}
// at this point, the user has presumably seen the 'readable' event,
// and called read() to consume some data. that may have triggered
// in turn another _read(n) call, in which case reading = true if
// it's in progress.
// However, if we're not ended, or reading, and the length < hwm,
// then go ahead and try to read some more preemptively.
function maybeReadMore(stream, state) {
if (!state.readingMore) {
state.readingMore = true;
process.nextTick(function() {
maybeReadMore_(stream, state);
});
}
}
function maybeReadMore_(stream, state) {
var len = state.length;
while (!state.reading && !state.flowing && !state.ended &&
state.length < state.highWaterMark) {
debug('maybeReadMore read 0');
stream.read(0);
if (len === state.length)
// didn't get any data, stop spinning.
break;
else
len = state.length;
}
state.readingMore = false;
}
// abstract method. to be overridden in specific implementation classes.
// call cb(er, data) where data is <= n in length.
// for virtual (non-string, non-buffer) streams, "length" is somewhat
// arbitrary, and perhaps not very meaningful.
Readable.prototype._read = function(n) {
this.emit('error', new Error('not implemented'));
};
Readable.prototype.pipe = function(dest, pipeOpts) {
var src = this;
var state = this._readableState;
switch (state.pipesCount) {
case 0:
state.pipes = dest;
break;
case 1:
state.pipes = [state.pipes, dest];
break;
default:
state.pipes.push(dest);
break;
}
state.pipesCount += 1;
debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
var doEnd = (!pipeOpts || pipeOpts.end !== false) &&
dest !== process.stdout &&
dest !== process.stderr;
var endFn = doEnd ? onend : cleanup;
if (state.endEmitted)
process.nextTick(endFn);
else
src.once('end', endFn);
dest.on('unpipe', onunpipe);
function onunpipe(readable) {
debug('onunpipe');
if (readable === src) {
cleanup();
}
}
function onend() {
debug('onend');
dest.end();
}
// when the dest drains, it reduces the awaitDrain counter
// on the source. This would be more elegant with a .once()
// handler in flow(), but adding and removing repeatedly is
// too slow.
var ondrain = pipeOnDrain(src);
dest.on('drain', ondrain);
function cleanup() {
debug('cleanup');
// cleanup event handlers once the pipe is broken
dest.removeListener('close', onclose);
dest.removeListener('finish', onfinish);
dest.removeListener('drain', ondrain);
dest.removeListener('error', onerror);
dest.removeListener('unpipe', onunpipe);
src.removeListener('end', onend);
src.removeListener('end', cleanup);
src.removeListener('data', ondata);
// if the reader is waiting for a drain event from this
// specific writer, then it would cause it to never start
// flowing again.
// So, if this is awaiting a drain, then we just call it now.
// If we don't know, then assume that we are waiting for one.
if (state.awaitDrain &&
(!dest._writableState || dest._writableState.needDrain))
ondrain();
}
src.on('data', ondata);
function ondata(chunk) {
debug('ondata');
var ret = dest.write(chunk);
if (false === ret) {
debug('false write response, pause',
src._readableState.awaitDrain);
src._readableState.awaitDrain++;
src.pause();
}
}
// if the dest has an error, then stop piping into it.
// however, don't suppress the throwing behavior for this.
function onerror(er) {
debug('onerror', er);
unpipe();
dest.removeListener('error', onerror);
if (EE.listenerCount(dest, 'error') === 0)
dest.emit('error', er);
}
// This is a brutally ugly hack to make sure that our error handler
// is attached before any userland ones. NEVER DO THIS.
if (!dest._events || !dest._events.error)
dest.on('error', onerror);
else if (isArray(dest._events.error))
dest._events.error.unshift(onerror);
else
dest._events.error = [onerror, dest._events.error];
// Both close and finish should trigger unpipe, but only once.
function onclose() {
dest.removeListener('finish', onfinish);
unpipe();
}
dest.once('close', onclose);
function onfinish() {
debug('onfinish');
dest.removeListener('close', onclose);
unpipe();
}
dest.once('finish', onfinish);
function unpipe() {
debug('unpipe');
src.unpipe(dest);
}
// tell the dest that it's being piped to
dest.emit('pipe', src);
// start the flow if it hasn't been started already.
if (!state.flowing) {
debug('pipe resume');
src.resume();
}
return dest;
};
function pipeOnDrain(src) {
return function() {
var state = src._readableState;
debug('pipeOnDrain', state.awaitDrain);
if (state.awaitDrain)
state.awaitDrain--;
if (state.awaitDrain === 0 && EE.listenerCount(src, 'data')) {
state.flowing = true;
flow(src);
}
};
}
Readable.prototype.unpipe = function(dest) {
var state = this._readableState;
// if we're not piping anywhere, then do nothing.
if (state.pipesCount === 0)
return this;
// just one destination. most common case.
if (state.pipesCount === 1) {
// passed in one, but it's not the right one.
if (dest && dest !== state.pipes)
return this;
if (!dest)
dest = state.pipes;
// got a match.
state.pipes = null;
state.pipesCount = 0;
state.flowing = false;
if (dest)
dest.emit('unpipe', this);
return this;
}
// slow case. multiple pipe destinations.
if (!dest) {
// remove all.
var dests = state.pipes;
var len = state.pipesCount;
state.pipes = null;
state.pipesCount = 0;
state.flowing = false;
for (var i = 0; i < len; i++)
dests[i].emit('unpipe', this);
return this;
}
// try to find the right one.
var i = indexOf(state.pipes, dest);
if (i === -1)
return this;
state.pipes.splice(i, 1);
state.pipesCount -= 1;
if (state.pipesCount === 1)
state.pipes = state.pipes[0];
dest.emit('unpipe', this);
return this;
};
// set up data events if they are asked for
// Ensure readable listeners eventually get something
Readable.prototype.on = function(ev, fn) {
var res = Stream.prototype.on.call(this, ev, fn);
// If listening to data, and it has not explicitly been paused,
// then call resume to start the flow of data on the next tick.
if (ev === 'data' && false !== this._readableState.flowing) {
this.resume();
}
if (ev === 'readable' && this.readable) {
var state = this._readableState;
if (!state.readableListening) {
state.readableListening = true;
state.emittedReadable = false;
state.needReadable = true;
if (!state.reading) {
var self = this;
process.nextTick(function() {
debug('readable nexttick read 0');
self.read(0);
});
} else if (state.length) {
emitReadable(this, state);
}
}
}
return res;
};
Readable.prototype.addListener = Readable.prototype.on;
// pause() and resume() are remnants of the legacy readable stream API
// If the user uses them, then switch into old mode.
Readable.prototype.resume = function() {
var state = this._readableState;
if (!state.flowing) {
debug('resume');
state.flowing = true;
if (!state.reading) {
debug('resume read 0');
this.read(0);
}
resume(this, state);
}
return this;
};
function resume(stream, state) {
if (!state.resumeScheduled) {
state.resumeScheduled = true;
process.nextTick(function() {
resume_(stream, state);
});
}
}
function resume_(stream, state) {
state.resumeScheduled = false;
stream.emit('resume');
flow(stream);
if (state.flowing && !state.reading)
stream.read(0);
}
Readable.prototype.pause = function() {
debug('call pause flowing=%j', this._readableState.flowing);
if (false !== this._readableState.flowing) {
debug('pause');
this._readableState.flowing = false;
this.emit('pause');
}
return this;
};
function flow(stream) {
var state = stream._readableState;
debug('flow', state.flowing);
if (state.flowing) {
do {
var chunk = stream.read();
} while (null !== chunk && state.flowing);
}
}
// wrap an old-style stream as the async data source.
// This is *not* part of the readable stream interface.
// It is an ugly unfortunate mess of history.
Readable.prototype.wrap = function(stream) {
var state = this._readableState;
var paused = false;
var self = this;
stream.on('end', function() {
debug('wrapped end');
if (state.decoder && !state.ended) {
var chunk = state.decoder.end();
if (chunk && chunk.length)
self.push(chunk);
}
self.push(null);
});
stream.on('data', function(chunk) {
debug('wrapped data');
if (state.decoder)
chunk = state.decoder.write(chunk);
if (!chunk || !state.objectMode && !chunk.length)
return;
var ret = self.push(chunk);
if (!ret) {
paused = true;
stream.pause();
}
});
// proxy all the other methods.
// important when wrapping filters and duplexes.
for (var i in stream) {
if (util.isFunction(stream[i]) && util.isUndefined(this[i])) {
this[i] = function(method) { return function() {
return stream[method].apply(stream, arguments);
}}(i);
}
}
// proxy certain important events.
var events = ['error', 'close', 'destroy', 'pause', 'resume'];
forEach(events, function(ev) {
stream.on(ev, self.emit.bind(self, ev));
});
// when we try to consume some more bytes, simply unpause the
// underlying stream.
self._read = function(n) {
debug('wrapped _read', n);
if (paused) {
paused = false;
stream.resume();
}
};
return self;
};
// exposed for testing purposes only.
Readable._fromList = fromList;
// Pluck off n bytes from an array of buffers.
// Length is the combined lengths of all the buffers in the list.
function fromList(n, state) {
var list = state.buffer;
var length = state.length;
var stringMode = !!state.decoder;
var objectMode = !!state.objectMode;
var ret;
// nothing in the list, definitely empty.
if (list.length === 0)
return null;
if (length === 0)
ret = null;
else if (objectMode)
ret = list.shift();
else if (!n || n >= length) {
// read it all, truncate the array.
if (stringMode)
ret = list.join('');
else
ret = Buffer.concat(list, length);
list.length = 0;
} else {
// read just some of it.
if (n < list[0].length) {
// just take a part of the first list item.
// slice is the same for buffers and strings.
var buf = list[0];
ret = buf.slice(0, n);
list[0] = buf.slice(n);
} else if (n === list[0].length) {
// first list is a perfect match
ret = list.shift();
} else {
// complex case.
// we have enough to cover it, but it spans past the first buffer.
if (stringMode)
ret = '';
else
ret = new Buffer(n);
var c = 0;
for (var i = 0, l = list.length; i < l && c < n; i++) {
var buf = list[0];
var cpy = Math.min(n - c, buf.length);
if (stringMode)
ret += buf.slice(0, cpy);
else
buf.copy(ret, c, 0, cpy);
if (cpy < buf.length)
list[0] = buf.slice(cpy);
else
list.shift();
c += cpy;
}
}
}
return ret;
}
function endReadable(stream) {
var state = stream._readableState;
// If we get here before consuming all the bytes, then that is a
// bug in node. Should never happen.
if (state.length > 0)
throw new Error('endReadable called on non-empty stream');
if (!state.endEmitted) {
state.ended = true;
process.nextTick(function() {
// Check that we didn't get one last unshift.
if (!state.endEmitted && state.length === 0) {
state.endEmitted = true;
stream.readable = false;
stream.emit('end');
}
});
}
}
function forEach (xs, f) {
for (var i = 0, l = xs.length; i < l; i++) {
f(xs[i], i);
}
}
function indexOf (xs, x) {
for (var i = 0, l = xs.length; i < l; i++) {
if (xs[i] === x) return i;
}
return -1;
}
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(92)))
/***/ }),
/* 195 */
/***/ (function(module, exports) {
module.exports = Array.isArray || function (arr) {
return Object.prototype.toString.call(arr) == '[object Array]';
};
/***/ }),
/* 196 */
/***/ (function(module, exports) {
/* (ignored) */
/***/ }),
/* 197 */
/***/ (function(module, exports, __webpack_require__) {
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
var Buffer = __webpack_require__(97).Buffer;
var isBufferEncoding = Buffer.isEncoding
|| function(encoding) {
switch (encoding && encoding.toLowerCase()) {
case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': case 'raw': return true;
default: return false;
}
}
function assertEncoding(encoding) {
if (encoding && !isBufferEncoding(encoding)) {
throw new Error('Unknown encoding: ' + encoding);
}
}
// StringDecoder provides an interface for efficiently splitting a series of
// buffers into a series of JS strings without breaking apart multi-byte
// characters. CESU-8 is handled as part of the UTF-8 encoding.
//
// @TODO Handling all encodings inside a single object makes it very difficult
// to reason about this code, so it should be split up in the future.
// @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code
// points as used by CESU-8.
var StringDecoder = exports.StringDecoder = function(encoding) {
this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');
assertEncoding(encoding);
switch (this.encoding) {
case 'utf8':
// CESU-8 represents each of Surrogate Pair by 3-bytes
this.surrogateSize = 3;
break;
case 'ucs2':
case 'utf16le':
// UTF-16 represents each of Surrogate Pair by 2-bytes
this.surrogateSize = 2;
this.detectIncompleteChar = utf16DetectIncompleteChar;
break;
case 'base64':
// Base-64 stores 3 bytes in 4 chars, and pads the remainder.
this.surrogateSize = 3;
this.detectIncompleteChar = base64DetectIncompleteChar;
break;
default:
this.write = passThroughWrite;
return;
}
// Enough space to store all bytes of a single character. UTF-8 needs 4
// bytes, but CESU-8 may require up to 6 (3 bytes per surrogate).
this.charBuffer = new Buffer(6);
// Number of bytes received for the current incomplete multi-byte character.
this.charReceived = 0;
// Number of bytes expected for the current incomplete multi-byte character.
this.charLength = 0;
};
// write decodes the given buffer and returns it as JS string that is
// guaranteed to not contain any partial multi-byte characters. Any partial
// character found at the end of the buffer is buffered up, and will be
// returned when calling write again with the remaining bytes.
//
// Note: Converting a Buffer containing an orphan surrogate to a String
// currently works, but converting a String to a Buffer (via `new Buffer`, or
// Buffer#write) will replace incomplete surrogates with the unicode
// replacement character. See https://codereview.chromium.org/121173009/ .
StringDecoder.prototype.write = function(buffer) {
var charStr = '';
// if our last write ended with an incomplete multibyte character
while (this.charLength) {
// determine how many remaining bytes this buffer has to offer for this char
var available = (buffer.length >= this.charLength - this.charReceived) ?
this.charLength - this.charReceived :
buffer.length;
// add the new bytes to the char buffer
buffer.copy(this.charBuffer, this.charReceived, 0, available);
this.charReceived += available;
if (this.charReceived < this.charLength) {
// still not enough chars in this buffer? wait for more ...
return '';
}
// remove bytes belonging to the current character from the buffer
buffer = buffer.slice(available, buffer.length);
// get the character that was split
charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding);
// CESU-8: lead surrogate (D800-DBFF) is also the incomplete character
var charCode = charStr.charCodeAt(charStr.length - 1);
if (charCode >= 0xD800 && charCode <= 0xDBFF) {
this.charLength += this.surrogateSize;
charStr = '';
continue;
}
this.charReceived = this.charLength = 0;
// if there are no more bytes in this buffer, just emit our char
if (buffer.length === 0) {
return charStr;
}
break;
}
// determine and set charLength / charReceived
this.detectIncompleteChar(buffer);
var end = buffer.length;
if (this.charLength) {
// buffer the incomplete character bytes we got
buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end);
end -= this.charReceived;
}
charStr += buffer.toString(this.encoding, 0, end);
var end = charStr.length - 1;
var charCode = charStr.charCodeAt(end);
// CESU-8: lead surrogate (D800-DBFF) is also the incomplete character
if (charCode >= 0xD800 && charCode <= 0xDBFF) {
var size = this.surrogateSize;
this.charLength += size;
this.charReceived += size;
this.charBuffer.copy(this.charBuffer, size, 0, size);
buffer.copy(this.charBuffer, 0, 0, size);
return charStr.substring(0, end);
}
// or just emit the charStr
return charStr;
};
// detectIncompleteChar determines if there is an incomplete UTF-8 character at
// the end of the given buffer. If so, it sets this.charLength to the byte
// length that character, and sets this.charReceived to the number of bytes
// that are available for this character.
StringDecoder.prototype.detectIncompleteChar = function(buffer) {
// determine how many bytes we have to check at the end of this buffer
var i = (buffer.length >= 3) ? 3 : buffer.length;
// Figure out if one of the last i bytes of our buffer announces an
// incomplete char.
for (; i > 0; i--) {
var c = buffer[buffer.length - i];
// See http://en.wikipedia.org/wiki/UTF-8#Description
// 110XXXXX
if (i == 1 && c >> 5 == 0x06) {
this.charLength = 2;
break;
}
// 1110XXXX
if (i <= 2 && c >> 4 == 0x0E) {
this.charLength = 3;
break;
}
// 11110XXX
if (i <= 3 && c >> 3 == 0x1E) {
this.charLength = 4;
break;
}
}
this.charReceived = i;
};
StringDecoder.prototype.end = function(buffer) {
var res = '';
if (buffer && buffer.length)
res = this.write(buffer);
if (this.charReceived) {
var cr = this.charReceived;
var buf = this.charBuffer;
var enc = this.encoding;
res += buf.slice(0, cr).toString(enc);
}
return res;
};
function passThroughWrite(buffer) {
return buffer.toString(this.encoding);
}
function utf16DetectIncompleteChar(buffer) {
this.charReceived = buffer.length % 2;
this.charLength = this.charReceived ? 2 : 0;
}
function base64DetectIncompleteChar(buffer) {
this.charReceived = buffer.length % 3;
this.charLength = this.charReceived ? 3 : 0;
}
/***/ }),
/* 198 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(process) {// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
// A bit simpler than readable streams.
// Implement an async ._write(chunk, cb), and it'll handle all
// the drain event emission and buffering.
module.exports = Writable;
/*<replacement>*/
var Buffer = __webpack_require__(97).Buffer;
/*</replacement>*/
Writable.WritableState = WritableState;
/*<replacement>*/
var util = __webpack_require__(100);
util.inherits = __webpack_require__(89);
/*</replacement>*/
var Stream = __webpack_require__(87);
util.inherits(Writable, Stream);
function WriteReq(chunk, encoding, cb) {
this.chunk = chunk;
this.encoding = encoding;
this.callback = cb;
}
function WritableState(options, stream) {
var Duplex = __webpack_require__(193);
options = options || {};
// the point at which write() starts returning false
// Note: 0 is a valid value, means that we always return false if
// the entire buffer is not flushed immediately on write()
var hwm = options.highWaterMark;
var defaultHwm = options.objectMode ? 16 : 16 * 1024;
this.highWaterMark = (hwm || hwm === 0) ? hwm : defaultHwm;
// object stream flag to indicate whether or not this stream
// contains buffers or objects.
this.objectMode = !!options.objectMode;
if (stream instanceof Duplex)
this.objectMode = this.objectMode || !!options.writableObjectMode;
// cast to ints.
this.highWaterMark = ~~this.highWaterMark;
this.needDrain = false;
// at the start of calling end()
this.ending = false;
// when end() has been called, and returned
this.ended = false;
// when 'finish' is emitted
this.finished = false;
// should we decode strings into buffers before passing to _write?
// this is here so that some node-core streams can optimize string
// handling at a lower level.
var noDecode = options.decodeStrings === false;
this.decodeStrings = !noDecode;
// Crypto is kind of old and crusty. Historically, its default string
// encoding is 'binary' so we have to make this configurable.
// Everything else in the universe uses 'utf8', though.
this.defaultEncoding = options.defaultEncoding || 'utf8';
// not an actual buffer we keep track of, but a measurement
// of how much we're waiting to get pushed to some underlying
// socket or file.
this.length = 0;
// a flag to see when we're in the middle of a write.
this.writing = false;
// when true all writes will be buffered until .uncork() call
this.corked = 0;
// a flag to be able to tell if the onwrite cb is called immediately,
// or on a later tick. We set this to true at first, because any
// actions that shouldn't happen until "later" should generally also
// not happen before the first write call.
this.sync = true;
// a flag to know if we're processing previously buffered items, which
// may call the _write() callback in the same tick, so that we don't
// end up in an overlapped onwrite situation.
this.bufferProcessing = false;
// the callback that's passed to _write(chunk,cb)
this.onwrite = function(er) {
onwrite(stream, er);
};
// the callback that the user supplies to write(chunk,encoding,cb)
this.writecb = null;
// the amount that is being written when _write is called.
this.writelen = 0;
this.buffer = [];
// number of pending user-supplied write callbacks
// this must be 0 before 'finish' can be emitted
this.pendingcb = 0;
// emit prefinish if the only thing we're waiting for is _write cbs
// This is relevant for synchronous Transform streams
this.prefinished = false;
// True if the error was already emitted and should not be thrown again
this.errorEmitted = false;
}
function Writable(options) {
var Duplex = __webpack_require__(193);
// Writable ctor is applied to Duplexes, though they're not
// instanceof Writable, they're instanceof Readable.
if (!(this instanceof Writable) && !(this instanceof Duplex))
return new Writable(options);
this._writableState = new WritableState(options, this);
// legacy.
this.writable = true;
Stream.call(this);
}
// Otherwise people can pipe Writable streams, which is just wrong.
Writable.prototype.pipe = function() {
this.emit('error', new Error('Cannot pipe. Not readable.'));
};
function writeAfterEnd(stream, state, cb) {
var er = new Error('write after end');
// TODO: defer error events consistently everywhere, not just the cb
stream.emit('error', er);
process.nextTick(function() {
cb(er);
});
}
// If we get something that is not a buffer, string, null, or undefined,
// and we're not in objectMode, then that's an error.
// Otherwise stream chunks are all considered to be of length=1, and the
// watermarks determine how many objects to keep in the buffer, rather than
// how many bytes or characters.
function validChunk(stream, state, chunk, cb) {
var valid = true;
if (!util.isBuffer(chunk) &&
!util.isString(chunk) &&
!util.isNullOrUndefined(chunk) &&
!state.objectMode) {
var er = new TypeError('Invalid non-string/buffer chunk');
stream.emit('error', er);
process.nextTick(function() {
cb(er);
});
valid = false;
}
return valid;
}
Writable.prototype.write = function(chunk, encoding, cb) {
var state = this._writableState;
var ret = false;
if (util.isFunction(encoding)) {
cb = encoding;
encoding = null;
}
if (util.isBuffer(chunk))
encoding = 'buffer';
else if (!encoding)
encoding = state.defaultEncoding;
if (!util.isFunction(cb))
cb = function() {};
if (state.ended)
writeAfterEnd(this, state, cb);
else if (validChunk(this, state, chunk, cb)) {
state.pendingcb++;
ret = writeOrBuffer(this, state, chunk, encoding, cb);
}
return ret;
};
Writable.prototype.cork = function() {
var state = this._writableState;
state.corked++;
};
Writable.prototype.uncork = function() {
var state = this._writableState;
if (state.corked) {
state.corked--;
if (!state.writing &&
!state.corked &&
!state.finished &&
!state.bufferProcessing &&
state.buffer.length)
clearBuffer(this, state);
}
};
function decodeChunk(state, chunk, encoding) {
if (!state.objectMode &&
state.decodeStrings !== false &&
util.isString(chunk)) {
chunk = new Buffer(chunk, encoding);
}
return chunk;
}
// if we're already writing something, then just put this
// in the queue, and wait our turn. Otherwise, call _write
// If we return false, then we need a drain event, so set that flag.
function writeOrBuffer(stream, state, chunk, encoding, cb) {
chunk = decodeChunk(state, chunk, encoding);
if (util.isBuffer(chunk))
encoding = 'buffer';
var len = state.objectMode ? 1 : chunk.length;
state.length += len;
var ret = state.length < state.highWaterMark;
// we must ensure that previous needDrain will not be reset to false.
if (!ret)
state.needDrain = true;
if (state.writing || state.corked)
state.buffer.push(new WriteReq(chunk, encoding, cb));
else
doWrite(stream, state, false, len, chunk, encoding, cb);
return ret;
}
function doWrite(stream, state, writev, len, chunk, encoding, cb) {
state.writelen = len;
state.writecb = cb;
state.writing = true;
state.sync = true;
if (writev)
stream._writev(chunk, state.onwrite);
else
stream._write(chunk, encoding, state.onwrite);
state.sync = false;
}
function onwriteError(stream, state, sync, er, cb) {
if (sync)
process.nextTick(function() {
state.pendingcb--;
cb(er);
});
else {
state.pendingcb--;
cb(er);
}
stream._writableState.errorEmitted = true;
stream.emit('error', er);
}
function onwriteStateUpdate(state) {
state.writing = false;
state.writecb = null;
state.length -= state.writelen;
state.writelen = 0;
}
function onwrite(stream, er) {
var state = stream._writableState;
var sync = state.sync;
var cb = state.writecb;
onwriteStateUpdate(state);
if (er)
onwriteError(stream, state, sync, er, cb);
else {
// Check if we're actually ready to finish, but don't emit yet
var finished = needFinish(stream, state);
if (!finished &&
!state.corked &&
!state.bufferProcessing &&
state.buffer.length) {
clearBuffer(stream, state);
}
if (sync) {
process.nextTick(function() {
afterWrite(stream, state, finished, cb);
});
} else {
afterWrite(stream, state, finished, cb);
}
}
}
function afterWrite(stream, state, finished, cb) {
if (!finished)
onwriteDrain(stream, state);
state.pendingcb--;
cb();
finishMaybe(stream, state);
}
// Must force callback to be called on nextTick, so that we don't
// emit 'drain' before the write() consumer gets the 'false' return
// value, and has a chance to attach a 'drain' listener.
function onwriteDrain(stream, state) {
if (state.length === 0 && state.needDrain) {
state.needDrain = false;
stream.emit('drain');
}
}
// if there's something in the buffer waiting, then process it
function clearBuffer(stream, state) {
state.bufferProcessing = true;
if (stream._writev && state.buffer.length > 1) {
// Fast case, write everything using _writev()
var cbs = [];
for (var c = 0; c < state.buffer.length; c++)
cbs.push(state.buffer[c].callback);
// count the one we are adding, as well.
// TODO(isaacs) clean this up
state.pendingcb++;
doWrite(stream, state, true, state.length, state.buffer, '', function(err) {
for (var i = 0; i < cbs.length; i++) {
state.pendingcb--;
cbs[i](err);
}
});
// Clear buffer
state.buffer = [];
} else {
// Slow case, write chunks one-by-one
for (var c = 0; c < state.buffer.length; c++) {
var entry = state.buffer[c];
var chunk = entry.chunk;
var encoding = entry.encoding;
var cb = entry.callback;
var len = state.objectMode ? 1 : chunk.length;
doWrite(stream, state, false, len, chunk, encoding, cb);
// if we didn't call the onwrite immediately, then
// it means that we need to wait until it does.
// also, that means that the chunk and cb are currently
// being processed, so move the buffer counter past them.
if (state.writing) {
c++;
break;
}
}
if (c < state.buffer.length)
state.buffer = state.buffer.slice(c);
else
state.buffer.length = 0;
}
state.bufferProcessing = false;
}
Writable.prototype._write = function(chunk, encoding, cb) {
cb(new Error('not implemented'));
};
Writable.prototype._writev = null;
Writable.prototype.end = function(chunk, encoding, cb) {
var state = this._writableState;
if (util.isFunction(chunk)) {
cb = chunk;
chunk = null;
encoding = null;
} else if (util.isFunction(encoding)) {
cb = encoding;
encoding = null;
}
if (!util.isNullOrUndefined(chunk))
this.write(chunk, encoding);
// .end() fully uncorks
if (state.corked) {
state.corked = 1;
this.uncork();
}
// ignore unnecessary end() calls.
if (!state.ending && !state.finished)
endWritable(this, state, cb);
};
function needFinish(stream, state) {
return (state.ending &&
state.length === 0 &&
!state.finished &&
!state.writing);
}
function prefinish(stream, state) {
if (!state.prefinished) {
state.prefinished = true;
stream.emit('prefinish');
}
}
function finishMaybe(stream, state) {
var need = needFinish(stream, state);
if (need) {
if (state.pendingcb === 0) {
prefinish(stream, state);
state.finished = true;
stream.emit('finish');
} else
prefinish(stream, state);
}
return need;
}
function endWritable(stream, state, cb) {
state.ending = true;
finishMaybe(stream, state);
if (cb) {
if (state.finished)
process.nextTick(cb);
else
stream.once('finish', cb);
}
state.ended = true;
}
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(92)))
/***/ }),
/* 199 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(process) {'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getOSName = getOSName;
exports.getOSVersion = getOSVersion;
function getOSName() {
if (process.browser) {
return 'Browser';
} else {
return 'Node.js';
}
}
function getOSVersion() {
if (process.browser) {
return navigator.userAgent;
} else {
return process.version;
}
}
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(92)))
/***/ }),
/* 200 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _events = __webpack_require__(88);
var _dropStream = __webpack_require__(190);
var _dropStream2 = _interopRequireDefault(_dropStream);
var _removeValue = __webpack_require__(201);
var _removeValue2 = _interopRequireDefault(_removeValue);
var _rtimer = __webpack_require__(202);
var _rtimer2 = _interopRequireDefault(_rtimer);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var User = function (_EventEmitter) {
_inherits(User, _EventEmitter);
function User(client, id) {
_classCallCheck(this, User);
var _this = _possibleConstructorReturn(this, (User.__proto__ || Object.getPrototypeOf(User)).call(this));
_this._client = client;
_this._id = id;
_this._haveRequestedTexture = false;
_this._haveRequestedComment = false;
return _this;
}
_createClass(User, [{
key: '_update',
value: function _update(msg) {
var changes = {};
if (msg.name != null) {
changes.username = this._username = msg.name;
}
if (msg.user_id != null) {
changes.uniqueId = this._uniqueId = msg.user_id;
}
if (msg.mute != null) {
changes.mute = this._mute = msg.mute;
}
if (msg.deaf != null) {
changes.deaf = this._deaf = msg.deaf;
}
if (msg.suppress != null) {
changes.suppress = this._suppress = msg.suppress;
}
if (msg.self_mute != null) {
changes.selfMute = this._selfMute = msg.self_mute;
}
if (msg.self_deaf != null) {
changes.selfDeaf = this._selfDeaf = msg.self_deaf;
}
if (msg.texture != null) {
changes.texture = this._texture = msg.texture;
}
if (msg.texture_hash != null) {
changes.textureHash = this._textureHash = msg.texture_hash;
this._haveRequestedTexture = false; // invalidate previous request
}
if (msg.comment != null) {
changes.comment = this._comment = msg.comment;
}
if (msg.comment_hash != null) {
changes.commentHash = this._commentHash = msg.comment_hash;
this._haveRequestedComment = false; // invalidate previous request
}
if (msg.priority_speaker != null) {
changes.prioritySpeaker = this._prioritySpeaker = msg.priority_speaker;
}
if (msg.recording != null) {
changes.recording = this._recording = msg.recording;
}
if (msg.hash != null) {
changes.certHash = this._certHash = msg.hash;
}
if (msg.channel_id != null) {
if (this.channel) {
(0, _removeValue2.default)(this.channel.users, this);
}
this._channelId = msg.channel_id;
if (this.channel) {
this.channel.users.push(this);
}
changes.channel = this.channel;
}
this.emit('update', this._client._userById[msg.actor], changes);
}
}, {
key: '_remove',
value: function _remove(actor, reason, ban) {
if (this.channel) {
(0, _removeValue2.default)(this.channel.users, this);
}
this.emit('remove', actor, reason, ban);
}
}, {
key: '_getOrCreateVoiceStream',
value: function _getOrCreateVoiceStream() {
var _this2 = this;
if (!this._voice) {
// New transmission
if (!this._client._codecs) {
// No codecs available, cannot decode
this._voice = _dropStream2.default.obj();
} else {
this._voice = this._client._codecs.createDecoderStream(this);
}
this._voice.once('close', function () {
_this2._voice = null;
});
this._voiceTimeout = new _rtimer2.default(function () {
_this2._voice.end();
_this2._voice = null;
}, this._client._options.userVoiceTimeout || 200).set();
this.emit('voice', this._voice);
}
return this._voice;
}
}, {
key: '_getDuration',
value: function _getDuration(codec, frames) {
var _this3 = this;
if (this._client._codecs) {
var duration = 0;
frames.forEach(function (frame) {
duration += _this3._client._codecs.getDuration(codec, frame);
});
return duration;
} else {
return frames.length * 10;
}
}
/**
* This method filters and inserts empty frames as needed to accout
* for packet loss and then writes to the {@link #_voice} stream.
* If this is a new transmission it emits the 'voice' event and if
* the transmission has ended it closes the stream.
*/
}, {
key: '_onVoice',
value: function _onVoice(seqNum, codec, target, frames, position, end) {
var _this4 = this;
if (frames.length > 0) {
var duration = this._getDuration(codec, frames);
if (this._voice != null) {
// This is not the first packet in this transmission
// So drop it if it's late
if (this._lastVoiceSeqId > seqNum) {
return;
}
// And make up for lost packets
if (this._lastVoiceSeqId < seqNum - duration / 10) {
var lost = seqNum - this._lastVoiceSeqId - 1;
// Cap at 10 lost frames, the audio will sound broken at that point anyway
if (lost > 10) {
lost = 10;
}
for (var i = 0; i < lost; i++) {
this._getOrCreateVoiceStream().write({
target: target,
codec: codec,
frame: null,
position: position
});
}
}
}
frames.forEach(function (frame) {
_this4._getOrCreateVoiceStream().write({
target: target,
codec: codec,
frame: frame,
position: position
});
});
this._voiceTimeout.set();
this._lastVoiceSeqId = seqNum + duration / 10 - 1;
}
if (end && this._voice) {
this._voiceTimeout.clear();
this._voiceTimeout = null;
this._voice.end();
this._voice = null;
}
}
}, {
key: 'setMute',
value: function setMute(mute) {
var message = {
name: 'UserState',
payload: {
session: this._id,
mute: mute
}
};
if (!mute) message.payload.deaf = false;
this._client._send(message);
}
}, {
key: 'setDeaf',
value: function setDeaf(deaf) {
var message = {
name: 'UserState',
payload: {
session: this._id,
deaf: deaf
}
};
if (deaf) message.payload.mute = true;
this._client._send(message);
}
}, {
key: 'clearComment',
value: function clearComment() {
this._client._send({
name: 'UserState',
payload: {
session: this._id,
comment: ''
}
});
}
}, {
key: 'clearTexture',
value: function clearTexture() {
this._client._send({
name: 'UserState',
payload: {
session: this._id,
texture: ''
}
});
}
}, {
key: 'requestComment',
value: function requestComment() {
if (this._haveRequestedComment) return;
this._client._send({
name: 'RequestBlob',
payload: {
session_comment: this._id
}
});
this._haveRequestedComment = true;
}
}, {
key: 'requestTexture',
value: function requestTexture() {
if (this._haveRequestedTexture) return;
this._client._send({
name: 'RequestBlob',
payload: {
session_texture: this._id
}
});
this._haveRequestedTexture = true;
}
}, {
key: 'register',
value: function register() {
this._client._send({
name: 'UserState',
payload: {
session: this._id,
user_id: 0
}
});
}
}, {
key: 'sendMessage',
value: function sendMessage(message) {
this._client._send({
name: 'TextMessage',
payload: {
session: this._id,
message: message
}
});
}
}, {
key: 'setChannel',
value: function setChannel(channel) {
this._client._send({
name: 'UserState',
payload: {
session: this._id,
channel_id: channel._id
}
});
}
}, {
key: 'id',
get: function get() {
return this._id;
}
}, {
key: 'username',
get: function get() {
return this._username;
},
set: function set(to) {
throw new Error('Cannot set username.');
}
}, {
key: 'uniqueId',
get: function get() {
return this._uniqueId;
},
set: function set(to) {
throw new Error('Cannot set uniqueId. Maybe try #register()?');
}
}, {
key: 'mute',
get: function get() {
return this._mute;
},
set: function set(to) {
throw new Error('Cannot set mute. Use #setMute(mute) instead.');
}
}, {
key: 'deaf',
get: function get() {
return this._deaf;
},
set: function set(to) {
throw new Error('Cannot set deaf. Use #setDeaf(deaf) instead.');
}
}, {
key: 'selfMute',
get: function get() {
return this._selfMute;
},
set: function set(to) {
throw new Error('Cannot set selfMute. Use Client#setSelfMute(mute) instead.');
}
}, {
key: 'selfDeaf',
get: function get() {
return this._selfDeaf;
},
set: function set(to) {
throw new Error('Cannot set selfDeaf. Use Client#setSelfDeaf(deaf) instead.');
}
}, {
key: 'suppress',
get: function get() {
return this._suppress;
},
set: function set(to) {
throw new Error('Cannot set suppress.');
}
}, {
key: 'texture',
get: function get() {
return this._texture;
},
set: function set(to) {
throw new Error('Cannot set texture. Use Client#setSelfTexture(texture) or #clearTexture() instead.');
}
}, {
key: 'textureHash',
get: function get() {
return this._textureHash;
},
set: function set(to) {
throw new Error('Cannot set textureHash.');
}
}, {
key: 'comment',
get: function get() {
return this._comment;
},
set: function set(to) {
throw new Error('Cannot set comment. Use Client#setSelfTexture(texture) or #clearComment() instead.');
}
}, {
key: 'commentHash',
get: function get() {
return this._commentHash;
},
set: function set(to) {
throw new Error('Cannot set commentHash.');
}
}, {
key: 'prioritySpeaker',
get: function get() {
return this._prioritySpeaker;
},
set: function set(to) {
throw new Error('Cannot set prioritySpeaker. Use #setPrioritySpeaker(prioSpeaker) instead.');
}
}, {
key: 'recording',
get: function get() {
return this._recording;
},
set: function set(to) {
throw new Error('Cannot set recording. Use Client#setSelfRecording(recording) instead.');
}
}, {
key: 'certHash',
get: function get() {
return this._certHash;
},
set: function set(to) {
throw new Error('Cannot set certHash.');
}
}, {
key: 'channel',
get: function get() {
if (this._channelId != null) {
return this._client._channelById[this._channelId];
} else {
return null;
}
},
set: function set(to) {
throw new Error('Cannot set channel. Use #setChannel(channel) instead.');
}
}]);
return User;
}(_events.EventEmitter);
exports.default = User;
/***/ }),
/* 201 */
/***/ (function(module, exports) {
'use strict';
module.exports = function( array, value, count ){
if (Array.isArray(this)) {
count = value;
value = array;
array = this;
}
var index;
var i = 0;
while ((!count || i++ < count) && ~(index = array.indexOf(value)))
array.splice(index, 1);
return array;
};
/***/ }),
/* 202 */
/***/ (function(module, exports) {
"use strict";
function Timer(callback, delay) {
if (!(this instanceof Timer))
return new Timer(callback, delay);
this._timeout = null;
this.delay = delay;
this.callback = callback;
}
module.exports = Timer;
/**
* Clear current timeout
*/
Timer.prototype.clear = function() {
if (this._timeout) {
clearTimeout(this._timeout);
this._timeout = null;
}
return this;
};
/**
* Set timeout and clear previous timeout
*/
Timer.prototype.set = function() {
this.clear();
this._timeout = setTimeout(this.callback, this.delay);
return this;
};
/***/ }),
/* 203 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _events = __webpack_require__(88);
var _removeValue = __webpack_require__(201);
var _removeValue2 = _interopRequireDefault(_removeValue);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var Channel = function (_EventEmitter) {
_inherits(Channel, _EventEmitter);
function Channel(client, id) {
_classCallCheck(this, Channel);
var _this = _possibleConstructorReturn(this, (Channel.__proto__ || Object.getPrototypeOf(Channel)).call(this));
_this._client = client;
_this._id = id;
_this._links = [];
_this.users = [];
_this.children = [];
_this._haveRequestedDescription = false;
return _this;
}
_createClass(Channel, [{
key: '_remove',
value: function _remove() {
if (this.parent) {
(0, _removeValue2.default)(this.parent.children, this);
}
this.emit('remove');
}
}, {
key: '_update',
value: function _update(msg) {
var _this2 = this;
var changes = {};
if (msg.name != null) {
changes.name = this._name = msg.name;
}
if (msg.description != null) {
changes.description = this._description = msg.description;
}
if (msg.description_hash != null) {
changes.descriptionHash = this._descriptionHash = msg.description_hash;
this._haveRequestedDescription = false; // invalidate previous request
}
if (msg.temporary != null) {
changes.temporary = this._temporary = msg.temporary;
}
if (msg.position != null) {
changes.position = this._position = msg.position;
}
if (msg.max_users != null) {
changes.maxUsers = this._maxUsers = msg.max_users;
}
if (msg.links) {
this._links = msg.links;
changes.links = this.links;
}
if (msg.links_remove) {
this._links = this._links.filter(function (e) {
return !msg.links_remove.includes(e);
});
changes.links = this.links;
}
if (msg.links_add) {
msg.links_add.filter(function (e) {
return !_this2._links.includes(e);
}).forEach(function (e) {
return _this2._links.push(e);
});
changes.links = this.links;
}
if (msg.parent != null) {
if (this.parent) {
(0, _removeValue2.default)(this.parent.children, this);
}
this._parentId = msg.parent;
if (this.parent) {
this.parent.children.push(this);
}
changes.parent = this.parent;
}
this.emit('update', changes);
}
}, {
key: 'setName',
value: function setName(name) {
this._client._send({
name: 'ChannelState',
payload: {
channel_id: this._id,
name: name
}
});
}
}, {
key: 'setParent',
value: function setParent(parent) {
this._client._send({
name: 'ChannelState',
payload: {
channel_id: this._id,
parent: parent._id
}
});
}
}, {
key: 'setTemporary',
value: function setTemporary(temporary) {
this._client._send({
name: 'ChannelState',
payload: {
channel_id: this._id,
temporary: temporary
}
});
}
}, {
key: 'setDescription',
value: function setDescription(description) {
this._client._send({
name: 'ChannelState',
payload: {
channel_id: this._id,
description: description
}
});
}
}, {
key: 'setPosition',
value: function setPosition(position) {
this._client._send({
name: 'ChannelState',
payload: {
channel_id: this._id,
position: position
}
});
}
}, {
key: 'setLinks',
value: function setLinks(links) {
this._client._send({
name: 'ChannelState',
payload: {
channel_id: this._id,
links: links.map(function (c) {
return c._id;
})
}
});
}
}, {
key: 'setMaxUsers',
value: function setMaxUsers(maxUsers) {
this._client._send({
name: 'ChannelState',
payload: {
channel_id: this._id,
max_users: maxUsers
}
});
}
}, {
key: 'sendMessage',
value: function sendMessage(message) {
this._client._send({
name: 'TextMessage',
payload: {
channel_id: [this._id],
message: message
}
});
}
}, {
key: 'sendTreeMessage',
value: function sendTreeMessage(message) {
this._client._send({
name: 'TextMessage',
payload: {
tree_id: [this._id],
message: message
}
});
}
}, {
key: 'requestDescription',
value: function requestDescription() {
if (this._haveRequestedDescription) return;
this._client._send({
name: 'RequestBlob',
payload: {
channel_description: this._id
}
});
this._haveRequestedDescription = true;
}
}, {
key: 'id',
get: function get() {
return this._id;
}
}, {
key: 'name',
get: function get() {
return this._name;
},
set: function set(to) {
throw new Error('Cannot set name. Use #setName(name) instead.');
}
}, {
key: 'parent',
get: function get() {
return this._client._channelById[this._parentId];
},
set: function set(to) {
throw new Error('Cannot set parent. Use #setParent(channel) instead.');
}
}, {
key: 'description',
get: function get() {
return this._description;
},
set: function set(to) {
throw new Error('Cannot set description. Use #setDescription(desc) instead.');
}
}, {
key: 'descriptionHash',
get: function get() {
return this._descriptionHash;
},
set: function set(to) {
throw new Error('Cannot set descriptionHash.');
}
}, {
key: 'temporary',
get: function get() {
return this._temporary;
},
set: function set(to) {
throw new Error('Cannot set temporary. Use #setTemporary(tmp) instead.');
}
}, {
key: 'position',
get: function get() {
return this._position;
},
set: function set(to) {
throw new Error('Cannot set position.');
}
}, {
key: 'maxUsers',
get: function get() {
return this._maxUsers;
},
set: function set(to) {
throw new Error('Cannot set maxUsers.');
}
}, {
key: 'links',
get: function get() {
var _this3 = this;
return this._links.map(function (id) {
return _this3._client._channelById[id];
});
},
set: function set(to) {
throw new Error('Cannot set links. Use #setLinks(links) instead.');
}
}]);
return Channel;
}(_events.EventEmitter);
exports.default = Channel;
/***/ }),
/* 204 */
/***/ (function(module, exports, __webpack_require__) {
'use strict'
const statslite = __webpack_require__(205)
module.exports = Stats
function Stats (smaBins) {
if (!(this instanceof Stats)) return new Stats(smaBins)
this.n = 0
this.min = Number.MAX_VALUE
this.max = -Number.MAX_VALUE
this.sum = 0
this.mean = 0
if (smaBins == null || smaBins <= 0) {
smaBins = 50
}
if (smaBins !== (smaBins | 0)) {
throw new Error('SMA option must be an integer')
}
Object.defineProperty(this, 'smaBins', {
enumerable: false,
writable: false,
value: smaBins
})
Object.defineProperty(this, '_bins', {
enumerable: false,
writable: false,
value: []
})
Object.defineProperty(this, 'q', {
enumerable: false,
writable: true,
value: 0
})
Object.defineProperty(this, 'variance', {
enumerable: true,
get: () => { return this.q / this.n }
})
Object.defineProperty(this, 'standard_deviation', {
enumerable: true,
get: () => { return Math.sqrt(this.q / this.n) }
})
Object.defineProperty(this, `sma${smaBins}`, {
enumerable: true,
get: () => { return statslite.mean(this._bins) }
})
}
Stats.prototype.update = function update (value) {
var num = parseFloat(value)
if (isNaN(num)) {
// Sorry, no NaNs
return
}
this.n++
this.min = Math.min(this.min, num)
this.max = Math.max(this.max, num)
this.sum += num
var prevMean = this.mean
this.mean = this.mean + (num - this.mean) / this.n
this.q = this.q + (num - prevMean) * (num - this.mean)
this._bins.push(value)
if (this._bins.length > this.smaBins) {
this._bins.shift()
}
}
Stats.prototype.getAll = function getAll () {
if (this.n === 0) {
return null
}
var s = {
n: this.n,
min: this.min,
max: this.max,
sum: this.sum,
mean: this.mean,
variance: this.variance,
standard_deviation: this.standard_deviation
}
s[`sma${this.smaBins}`] = this[`sma${this.smaBins}`]
return s
}
/***/ }),
/* 205 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
module.exports.numbers = numbers
module.exports.sum = sum
module.exports.mean = mean
module.exports.median = median
module.exports.mode = mode
module.exports.variance = populationVariance
module.exports.sampleVariance = sampleVariance
module.exports.populationVariance = populationVariance
module.exports.stdev = populationStdev
module.exports.sampleStdev = sampleStdev
module.exports.populationStdev = populationStdev
module.exports.percentile = percentile
module.exports.histogram = histogram
var isNumber = __webpack_require__(206)
function numbers(vals) {
var nums = []
if (vals == null)
return nums
for (var i = 0; i < vals.length; i++) {
if (isNumber(vals[i]))
nums.push(+vals[i])
}
return nums
}
function nsort(vals) {
return vals.sort(function numericSort(a, b) { return a - b })
}
function sum(vals) {
vals = numbers(vals)
var total = 0
for (var i = 0; i < vals.length; i++) {
total += vals[i]
}
return total
}
function mean(vals) {
vals = numbers(vals)
if (vals.length === 0) return NaN
return (sum(vals) / vals.length)
}
function median(vals) {
vals = numbers(vals)
if (vals.length === 0) return NaN
var half = (vals.length / 2) | 0
vals = nsort(vals)
if (vals.length % 2) {
// Odd length, true middle element
return vals[half]
}
else {
// Even length, average middle two elements
return (vals[half-1] + vals[half]) / 2.0
}
}
// Returns the mode of a unimodal dataset
// If the dataset is multi-modal, returns a Set containing the modes
function mode(vals) {
vals = numbers(vals)
if (vals.length === 0) return NaN
var mode = NaN
var dist = {}
for (var i = 0; i < vals.length; i++) {
var value = vals[i]
var me = dist[value] || 0
me++
dist[value] = me
}
var rank = numbers(Object.keys(dist).sort(function sortMembers(a, b) { return dist[b] - dist[a] }))
mode = rank[0]
if (dist[rank[1]] == dist[mode]) {
// multi-modal
if (rank.length == vals.length) {
// all values are modes
return vals
}
var modes = new Set([mode])
var modeCount = dist[mode]
for (var i = 1; i < rank.length; i++) {
if (dist[rank[i]] == modeCount) {
modes.add(rank[i])
}
else {
break
}
}
return modes
}
return mode
}
// This helper finds the mean of all the values, then squares the difference
// from the mean for each value and returns the resulting array. This is the
// core of the varience functions - the difference being dividing by N or N-1.
function valuesMinusMeanSquared(vals) {
vals = numbers(vals)
var avg = mean(vals)
var diffs = []
for (var i = 0; i < vals.length; i++) {
diffs.push(Math.pow((vals[i] - avg), 2))
}
return diffs
}
// Population Variance = average squared deviation from mean
function populationVariance(vals) {
return mean(valuesMinusMeanSquared(vals))
}
// Sample Variance
function sampleVariance(vals) {
var diffs = valuesMinusMeanSquared(vals)
if (diffs.length <= 1) return NaN
return sum(diffs) / (diffs.length - 1)
}
// Population Standard Deviation = sqrt of population variance
function populationStdev(vals) {
return Math.sqrt(populationVariance(vals))
}
// Sample Standard Deviation = sqrt of sample variance
function sampleStdev(vals) {
return Math.sqrt(sampleVariance(vals))
}
function percentile(vals, ptile) {
vals = numbers(vals)
if (vals.length === 0 || ptile == null || ptile < 0) return NaN
// Fudge anything over 100 to 1.0
if (ptile > 1) ptile = 1
vals = nsort(vals)
var i = (vals.length * ptile) - 0.5
if ((i | 0) === i) return vals[i]
// interpolated percentile -- using Estimation method
var int_part = i | 0
var fract = i - int_part
return (1 - fract) * vals[int_part] + fract * vals[Math.min(int_part + 1, vals.length - 1)]
}
function histogram (vals, bins) {
if (vals == null) {
return null
}
vals = nsort(numbers(vals))
if (vals.length === 0) {
return null
}
if (bins == null) {
// pick bins by simple method: Math.sqrt(n)
bins = Math.sqrt(vals.length)
}
bins = Math.round(bins)
if (bins < 1) {
bins = 1
}
var min = vals[0]
var max = vals[vals.length - 1]
if (min === max) {
// fudge for non-variant data
min = min - 0.5
max = max + 0.5
}
var range = (max - min)
// make the bins slightly larger by expanding the range about 10%
// this helps with dumb floating point stuff
var binWidth = (range + (range * 0.05)) / bins
var midpoint = (min + max) / 2
// even bin count, midpoint makes an edge
var leftEdge = midpoint - (binWidth * Math.floor(bins / 2))
if (bins % 2 !== 0) {
// odd bin count, center middle bin on midpoint
var leftEdge = (midpoint - (binWidth / 2)) - (binWidth * Math.floor(bins / 2))
}
var hist = {
values: Array(bins).fill(0),
bins: bins,
binWidth: binWidth,
binLimits: [leftEdge, leftEdge + (binWidth * bins)]
}
var binIndex = 0
for (var i = 0; i < vals.length; i++) {
while (vals[i] > (((binIndex + 1) * binWidth) + leftEdge)) {
binIndex++
}
hist.values[binIndex]++
}
return hist
}
/***/ }),
/* 206 */
/***/ (function(module, exports) {
module.exports = isNumber
/**
* Determine if something is a non-infinite javascript number.
* @param {Number} n A (potential) number to see if it is a number.
* @return {Boolean} True for non-infinite numbers, false for all else.
*/
function isNumber(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
/***/ }),
/* 207 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(Buffer) {'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _entries = __webpack_require__(78);
var _entries2 = _interopRequireDefault(_entries);
var _values = __webpack_require__(208);
var _values2 = _interopRequireDefault(_values);
var _getPrototypeOf = __webpack_require__(211);
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _possibleConstructorReturn2 = __webpack_require__(216);
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = __webpack_require__(249);
var _inherits3 = _interopRequireDefault(_inherits2);
var _slicedToArray2 = __webpack_require__(257);
var _slicedToArray3 = _interopRequireDefault(_slicedToArray2);
var _from = __webpack_require__(266);
var _from2 = _interopRequireDefault(_from);
var _classCallCheck2 = __webpack_require__(82);
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = __webpack_require__(83);
var _createClass3 = _interopRequireDefault(_createClass2);
var _mumbleClient = __webpack_require__(128);
var _mumbleClient2 = _interopRequireDefault(_mumbleClient);
var _promise = __webpack_require__(180);
var _promise2 = _interopRequireDefault(_promise);
var _events = __webpack_require__(88);
var _events2 = _interopRequireDefault(_events);
var _stream = __webpack_require__(87);
var _toArraybuffer = __webpack_require__(273);
var _toArraybuffer2 = _interopRequireDefault(_toArraybuffer);
var _bytebuffer = __webpack_require__(125);
var _bytebuffer2 = _interopRequireDefault(_bytebuffer);
var _webworkify = __webpack_require__(274);
var _webworkify2 = _interopRequireDefault(_webworkify);
var _worker = __webpack_require__(275);
var _worker2 = _interopRequireDefault(_worker);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* Creates proxy MumbleClients to a real ones running on a web worker.
* Only stuff which we need in mumble-web is proxied, i.e. this is not a generic solution.
*/
var WorkerBasedMumbleConnector = function () {
function WorkerBasedMumbleConnector() {
(0, _classCallCheck3.default)(this, WorkerBasedMumbleConnector);
this._worker = (0, _webworkify2.default)(_worker2.default);
this._worker.addEventListener('message', this._onMessage.bind(this));
this._reqId = 1;
this._requests = {};
this._clients = {};
this._nextVoiceId = 1;
this._voiceStreams = {};
}
(0, _createClass3.default)(WorkerBasedMumbleConnector, [{
key: 'setSampleRate',
value: function setSampleRate(sampleRate) {
this._postMessage({
method: '_init',
sampleRate: sampleRate
});
}
}, {
key: '_postMessage',
value: function _postMessage(msg, transfer) {
try {
this._worker.postMessage(msg, transfer);
} catch (err) {
console.error('Failed to postMessage', msg);
throw err;
}
}
}, {
key: '_call',
value: function _call(id, method, payload, transfer) {
var reqId = this._reqId++;
console.debug(method, id, payload);
this._postMessage({
clientId: id.client,
channelId: id.channel,
userId: id.user,
method: method,
reqId: reqId,
payload: payload
}, transfer);
return reqId;
}
}, {
key: '_query',
value: function _query(id, method, payload, transfer) {
var _this = this;
var reqId = this._call(id, method, payload, transfer);
return new _promise2.default(function (resolve, reject) {
_this._requests[reqId] = [resolve, reject];
});
}
}, {
key: '_addCall',
value: function _addCall(proxy, name, id) {
var self = this;
proxy[name] = function () {
self._call(id, name, (0, _from2.default)(arguments));
};
}
}, {
key: 'connect',
value: function connect(host, args) {
var _this2 = this;
return this._query({}, '_connect', { host: host, args: args }).then(function (id) {
return _this2._client(id);
});
}
}, {
key: '_client',
value: function _client(id) {
var client = this._clients[id];
if (!client) {
client = new WorkerBasedMumbleClient(this, id);
this._clients[id] = client;
}
return client;
}
}, {
key: '_onMessage',
value: function _onMessage(ev) {
var data = ev.data;
if (data.reqId != null) {
console.debug(data);
var reqId = data.reqId,
result = data.result,
error = data.error;
var _requests$reqId = (0, _slicedToArray3.default)(this._requests[reqId], 2),
resolve = _requests$reqId[0],
reject = _requests$reqId[1];
delete this._requests[reqId];
if (result) {
resolve(result);
} else {
reject(error);
}
} else if (data.clientId != null) {
console.debug(data);
var client = this._client(data.clientId);
var target = void 0;
if (data.userId != null) {
target = client._user(data.userId);
} else if (data.channelId != null) {
target = client._channel(data.channelId);
} else {
target = client;
}
if (data.event) {
target._dispatchEvent(data.event, data.value);
} else if (data.prop) {
target._setProp(data.prop, data.value);
}
} else if (data.voiceId != null) {
var stream = this._voiceStreams[data.voiceId];
var buffer = data.buffer;
if (buffer) {
stream.write({
target: data.target,
buffer: Buffer.from(buffer)
});
} else {
delete this._voiceStreams[data.voiceId];
stream.end();
}
}
}
}]);
return WorkerBasedMumbleConnector;
}();
var WorkerBasedMumbleClient = function (_EventEmitter) {
(0, _inherits3.default)(WorkerBasedMumbleClient, _EventEmitter);
function WorkerBasedMumbleClient(connector, clientId) {
(0, _classCallCheck3.default)(this, WorkerBasedMumbleClient);
var _this3 = (0, _possibleConstructorReturn3.default)(this, (WorkerBasedMumbleClient.__proto__ || (0, _getPrototypeOf2.default)(WorkerBasedMumbleClient)).call(this));
_this3._connector = connector;
_this3._id = clientId;
_this3._users = {};
_this3._channels = {};
var id = { client: clientId };
connector._addCall(_this3, 'setSelfDeaf', id);
connector._addCall(_this3, 'setSelfMute', id);
connector._addCall(_this3, 'setSelfTexture', id);
connector._addCall(_this3, 'setAudioQuality', id);
connector._addCall(_this3, 'disconnect', id);
var _disconnect = _this3.disconnect;
_this3.disconnect = function () {
_disconnect.apply(_this3);
delete connector._clients[id];
};
connector._addCall(_this3, 'createVoiceStream', id);
var _createVoiceStream = _this3.createVoiceStream;
_this3.createVoiceStream = function () {
var voiceId = connector._nextVoiceId++;
var args = (0, _from2.default)(arguments);
args.unshift(voiceId);
_createVoiceStream.apply(this, args);
return new _stream.Writable({
write: function write(chunk, encoding, callback) {
chunk = (0, _toArraybuffer2.default)(chunk);
connector._postMessage({
voiceId: voiceId,
chunk: chunk
});
callback();
},
final: function final(callback) {
connector._postMessage({
voiceId: voiceId
});
callback();
}
});
};
// Dummy client used for bandwidth calculations
_this3._dummyClient = new _mumbleClient2.default({ username: 'dummy' });
var defineDummyMethod = function defineDummyMethod(name) {
_this3[name] = function () {
return this._dummyClient[name].apply(this._dummyClient, arguments);
};
};
defineDummyMethod('getMaxBitrate');
defineDummyMethod('getActualBitrate');
var _setAudioQuality = _this3.setAudioQuality;
_this3.setAudioQuality = function () {
this._dummyClient.setAudioQuality.apply(this._dummyClient, arguments);
_setAudioQuality.apply(this, arguments);
};
return _this3;
}
(0, _createClass3.default)(WorkerBasedMumbleClient, [{
key: '_user',
value: function _user(id) {
var user = this._users[id];
if (!user) {
user = new WorkerBasedMumbleUser(this._connector, this, id);
this._users[id] = user;
}
return user;
}
}, {
key: '_channel',
value: function _channel(id) {
var channel = this._channels[id];
if (!channel) {
channel = new WorkerBasedMumbleChannel(this._connector, this, id);
this._channels[id] = channel;
}
return channel;
}
}, {
key: '_dispatchEvent',
value: function _dispatchEvent(name, args) {
var _this4 = this;
if (name === 'newChannel') {
args[0] = this._channel(args[0]);
} else if (name === 'newUser') {
args[0] = this._user(args[0]);
} else if (name === 'message') {
args[0] = this._user(args[0]);
args[2] = args[2].map(function (id) {
return _this4._user(id);
});
args[3] = args[3].map(function (id) {
return _this4._channel(id);
});
args[4] = args[4].map(function (id) {
return _this4._channel(id);
});
}
args.unshift(name);
this.emit.apply(this, args);
}
}, {
key: '_setProp',
value: function _setProp(name, value) {
if (name === 'root') {
name = '_rootId';
}
if (name === 'self') {
name = '_selfId';
}
if (name === 'maxBandwidth') {
this._dummyClient.maxBandwidth = value;
}
this[name] = value;
}
}, {
key: 'root',
get: function get() {
return this._channel(this._rootId);
}
}, {
key: 'channels',
get: function get() {
return (0, _values2.default)(this._channels);
}
}, {
key: 'users',
get: function get() {
return (0, _values2.default)(this._users);
}
}, {
key: 'self',
get: function get() {
return this._user(this._selfId);
}
}]);
return WorkerBasedMumbleClient;
}(_events2.default);
var WorkerBasedMumbleChannel = function (_EventEmitter2) {
(0, _inherits3.default)(WorkerBasedMumbleChannel, _EventEmitter2);
function WorkerBasedMumbleChannel(connector, client, channelId) {
(0, _classCallCheck3.default)(this, WorkerBasedMumbleChannel);
var _this5 = (0, _possibleConstructorReturn3.default)(this, (WorkerBasedMumbleChannel.__proto__ || (0, _getPrototypeOf2.default)(WorkerBasedMumbleChannel)).call(this));
_this5._connector = connector;
_this5._client = client;
_this5._id = channelId;
var id = { client: client._id, channel: channelId };
connector._addCall(_this5, 'sendMessage', id);
return _this5;
}
(0, _createClass3.default)(WorkerBasedMumbleChannel, [{
key: '_dispatchEvent',
value: function _dispatchEvent(name, args) {
var _this6 = this;
if (name === 'update') {
var _args = args,
_args2 = (0, _slicedToArray3.default)(_args, 2),
actor = _args2[0],
props = _args2[1];
(0, _entries2.default)(props).forEach(function (entry) {
_this6._setProp(entry[0], entry[1]);
});
if (props.parent != null) {
props.parent = this.parent;
}
if (props.links != null) {
props.links = this.links;
}
args = [this._client._user(actor), props];
} else if (name === 'remove') {
delete this._client._channels[this._id];
}
args.unshift(name);
this.emit.apply(this, args);
}
}, {
key: '_setProp',
value: function _setProp(name, value) {
var _this7 = this;
if (name === 'parent') {
name = '_parentId';
}
if (name === 'links') {
value = value.map(function (id) {
return _this7._client._channel(id);
});
}
this[name] = value;
}
}, {
key: 'parent',
get: function get() {
if (this._parentId != null) {
return this._client._channel(this._parentId);
}
}
}, {
key: 'children',
get: function get() {
var _this8 = this;
return (0, _values2.default)(this._client._channels).filter(function (it) {
return it.parent === _this8;
});
}
}]);
return WorkerBasedMumbleChannel;
}(_events2.default);
var WorkerBasedMumbleUser = function (_EventEmitter3) {
(0, _inherits3.default)(WorkerBasedMumbleUser, _EventEmitter3);
function WorkerBasedMumbleUser(connector, client, userId) {
(0, _classCallCheck3.default)(this, WorkerBasedMumbleUser);
var _this9 = (0, _possibleConstructorReturn3.default)(this, (WorkerBasedMumbleUser.__proto__ || (0, _getPrototypeOf2.default)(WorkerBasedMumbleUser)).call(this));
_this9._connector = connector;
_this9._client = client;
_this9._id = userId;
var id = { client: client._id, user: userId };
connector._addCall(_this9, 'requestTexture', id);
connector._addCall(_this9, 'clearTexture', id);
connector._addCall(_this9, 'setMute', id);
connector._addCall(_this9, 'setDeaf', id);
connector._addCall(_this9, 'sendMessage', id);
_this9.setChannel = function (channel) {
connector._call(id, 'setChannel', channel._id);
};
return _this9;
}
(0, _createClass3.default)(WorkerBasedMumbleUser, [{
key: '_dispatchEvent',
value: function _dispatchEvent(name, args) {
var _this10 = this;
if (name === 'update') {
var _args3 = args,
_args4 = (0, _slicedToArray3.default)(_args3, 2),
actor = _args4[0],
props = _args4[1];
(0, _entries2.default)(props).forEach(function (entry) {
_this10._setProp(entry[0], entry[1]);
});
if (props.channel != null) {
props.channel = this.channel;
}
if (props.texture != null) {
props.texture = this.texture;
}
args = [this._client._user(actor), props];
} else if (name === 'voice') {
var _args5 = args,
_args6 = (0, _slicedToArray3.default)(_args5, 1),
id = _args6[0];
var stream = new _stream.PassThrough({
objectMode: true
});
this._connector._voiceStreams[id] = stream;
args = [stream];
} else if (name === 'remove') {
delete this._client._users[this._id];
}
args.unshift(name);
this.emit.apply(this, args);
}
}, {
key: '_setProp',
value: function _setProp(name, value) {
if (name === 'channel') {
name = '_channelId';
}
if (name === 'texture') {
if (value) {
var buf = _bytebuffer2.default.wrap(value.buffer);
buf.offset = value.offset;
buf.limit = value.limit;
value = buf;
}
}
this[name] = value;
}
}, {
key: 'channel',
get: function get() {
return this._client._channels[this._channelId];
}
}]);
return WorkerBasedMumbleUser;
}(_events2.default);
exports.default = WorkerBasedMumbleConnector;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(97).Buffer))
/***/ }),
/* 208 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = { "default": __webpack_require__(209), __esModule: true };
/***/ }),
/* 209 */
/***/ (function(module, exports, __webpack_require__) {
__webpack_require__(210);
module.exports = __webpack_require__(45).Object.values;
/***/ }),
/* 210 */
/***/ (function(module, exports, __webpack_require__) {
// https://github.com/tc39/proposal-object-values-entries
var $export = __webpack_require__(43);
var $values = __webpack_require__(81)(false);
$export($export.S, 'Object', {
values: function values(it) {
return $values(it);
}
});
/***/ }),
/* 211 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = { "default": __webpack_require__(212), __esModule: true };
/***/ }),
/* 212 */
/***/ (function(module, exports, __webpack_require__) {
__webpack_require__(213);
module.exports = __webpack_require__(45).Object.getPrototypeOf;
/***/ }),
/* 213 */
/***/ (function(module, exports, __webpack_require__) {
// 19.1.2.9 Object.getPrototypeOf(O)
var toObject = __webpack_require__(77);
var $getPrototypeOf = __webpack_require__(214);
__webpack_require__(215)('getPrototypeOf', function () {
return function getPrototypeOf(it) {
return $getPrototypeOf(toObject(it));
};
});
/***/ }),
/* 214 */
/***/ (function(module, exports, __webpack_require__) {
// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
var has = __webpack_require__(58);
var toObject = __webpack_require__(77);
var IE_PROTO = __webpack_require__(70)('IE_PROTO');
var ObjectProto = Object.prototype;
module.exports = Object.getPrototypeOf || function (O) {
O = toObject(O);
if (has(O, IE_PROTO)) return O[IE_PROTO];
if (typeof O.constructor == 'function' && O instanceof O.constructor) {
return O.constructor.prototype;
} return O instanceof Object ? ObjectProto : null;
};
/***/ }),
/* 215 */
/***/ (function(module, exports, __webpack_require__) {
// most Object methods by ES6 should accept primitives
var $export = __webpack_require__(43);
var core = __webpack_require__(45);
var fails = __webpack_require__(54);
module.exports = function (KEY, exec) {
var fn = (core.Object || {})[KEY] || Object[KEY];
var exp = {};
exp[KEY] = exec(fn);
$export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);
};
/***/ }),
/* 216 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
exports.__esModule = true;
var _typeof2 = __webpack_require__(217);
var _typeof3 = _interopRequireDefault(_typeof2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = function (self, call) {
if (!self) {
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
}
return call && ((typeof call === "undefined" ? "undefined" : (0, _typeof3.default)(call)) === "object" || typeof call === "function") ? call : self;
};
/***/ }),
/* 217 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
exports.__esModule = true;
var _iterator = __webpack_require__(218);
var _iterator2 = _interopRequireDefault(_iterator);
var _symbol = __webpack_require__(236);
var _symbol2 = _interopRequireDefault(_symbol);
var _typeof = typeof _symbol2.default === "function" && typeof _iterator2.default === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj; };
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) {
return typeof obj === "undefined" ? "undefined" : _typeof(obj);
} : function (obj) {
return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj);
};
/***/ }),
/* 218 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = { "default": __webpack_require__(219), __esModule: true };
/***/ }),
/* 219 */
/***/ (function(module, exports, __webpack_require__) {
__webpack_require__(220);
__webpack_require__(231);
module.exports = __webpack_require__(235).f('iterator');
/***/ }),
/* 220 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
var $at = __webpack_require__(221)(true);
// 21.1.3.27 String.prototype[@@iterator]()
__webpack_require__(222)(String, 'String', function (iterated) {
this._t = String(iterated); // target
this._i = 0; // next index
// 21.1.5.2.1 %StringIteratorPrototype%.next()
}, function () {
var O = this._t;
var index = this._i;
var point;
if (index >= O.length) return { value: undefined, done: true };
point = $at(O, index);
this._i += point.length;
return { value: point, done: false };
});
/***/ }),
/* 221 */
/***/ (function(module, exports, __webpack_require__) {
var toInteger = __webpack_require__(68);
var defined = __webpack_require__(65);
// true -> String#at
// false -> String#codePointAt
module.exports = function (TO_STRING) {
return function (that, pos) {
var s = String(defined(that));
var i = toInteger(pos);
var l = s.length;
var a, b;
if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
a = s.charCodeAt(i);
return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
? TO_STRING ? s.charAt(i) : a
: TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
};
};
/***/ }),
/* 222 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
var LIBRARY = __webpack_require__(72);
var $export = __webpack_require__(43);
var redefine = __webpack_require__(223);
var hide = __webpack_require__(48);
var Iterators = __webpack_require__(224);
var $iterCreate = __webpack_require__(225);
var setToStringTag = __webpack_require__(229);
var getPrototypeOf = __webpack_require__(214);
var ITERATOR = __webpack_require__(230)('iterator');
var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
var FF_ITERATOR = '@@iterator';
var KEYS = 'keys';
var VALUES = 'values';
var returnThis = function () { return this; };
module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
$iterCreate(Constructor, NAME, next);
var getMethod = function (kind) {
if (!BUGGY && kind in proto) return proto[kind];
switch (kind) {
case KEYS: return function keys() { return new Constructor(this, kind); };
case VALUES: return function values() { return new Constructor(this, kind); };
} return function entries() { return new Constructor(this, kind); };
};
var TAG = NAME + ' Iterator';
var DEF_VALUES = DEFAULT == VALUES;
var VALUES_BUG = false;
var proto = Base.prototype;
var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
var $default = $native || getMethod(DEFAULT);
var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
var methods, key, IteratorPrototype;
// Fix native
if ($anyNative) {
IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));
if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
// Set @@toStringTag to native iterators
setToStringTag(IteratorPrototype, TAG, true);
// fix for some old engines
if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);
}
}
// fix Array#{values, @@iterator}.name in V8 / FF
if (DEF_VALUES && $native && $native.name !== VALUES) {
VALUES_BUG = true;
$default = function values() { return $native.call(this); };
}
// Define iterator
if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
hide(proto, ITERATOR, $default);
}
// Plug for library
Iterators[NAME] = $default;
Iterators[TAG] = returnThis;
if (DEFAULT) {
methods = {
values: DEF_VALUES ? $default : getMethod(VALUES),
keys: IS_SET ? $default : getMethod(KEYS),
entries: $entries
};
if (FORCED) for (key in methods) {
if (!(key in proto)) redefine(proto, key, methods[key]);
} else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
}
return methods;
};
/***/ }),
/* 223 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(48);
/***/ }),
/* 224 */
/***/ (function(module, exports) {
module.exports = {};
/***/ }),
/* 225 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
var create = __webpack_require__(226);
var descriptor = __webpack_require__(57);
var setToStringTag = __webpack_require__(229);
var IteratorPrototype = {};
// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
__webpack_require__(48)(IteratorPrototype, __webpack_require__(230)('iterator'), function () { return this; });
module.exports = function (Constructor, NAME, next) {
Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });
setToStringTag(Constructor, NAME + ' Iterator');
};
/***/ }),
/* 226 */
/***/ (function(module, exports, __webpack_require__) {
// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
var anObject = __webpack_require__(50);
var dPs = __webpack_require__(227);
var enumBugKeys = __webpack_require__(74);
var IE_PROTO = __webpack_require__(70)('IE_PROTO');
var Empty = function () { /* empty */ };
var PROTOTYPE = 'prototype';
// Create object with fake `null` prototype: use iframe Object with cleared prototype
var createDict = function () {
// Thrash, waste and sodomy: IE GC bug
var iframe = __webpack_require__(55)('iframe');
var i = enumBugKeys.length;
var lt = '<';
var gt = '>';
var iframeDocument;
iframe.style.display = 'none';
__webpack_require__(228).appendChild(iframe);
iframe.src = 'javascript:'; // eslint-disable-line no-script-url
// createDict = iframe.contentWindow.Object;
// html.removeChild(iframe);
iframeDocument = iframe.contentWindow.document;
iframeDocument.open();
iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
iframeDocument.close();
createDict = iframeDocument.F;
while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];
return createDict();
};
module.exports = Object.create || function create(O, Properties) {
var result;
if (O !== null) {
Empty[PROTOTYPE] = anObject(O);
result = new Empty();
Empty[PROTOTYPE] = null;
// add "__proto__" for Object.getPrototypeOf polyfill
result[IE_PROTO] = O;
} else result = createDict();
return Properties === undefined ? result : dPs(result, Properties);
};
/***/ }),
/* 227 */
/***/ (function(module, exports, __webpack_require__) {
var dP = __webpack_require__(49);
var anObject = __webpack_require__(50);
var getKeys = __webpack_require__(60);
module.exports = __webpack_require__(53) ? Object.defineProperties : function defineProperties(O, Properties) {
anObject(O);
var keys = getKeys(Properties);
var length = keys.length;
var i = 0;
var P;
while (length > i) dP.f(O, P = keys[i++], Properties[P]);
return O;
};
/***/ }),
/* 228 */
/***/ (function(module, exports, __webpack_require__) {
var document = __webpack_require__(44).document;
module.exports = document && document.documentElement;
/***/ }),
/* 229 */
/***/ (function(module, exports, __webpack_require__) {
var def = __webpack_require__(49).f;
var has = __webpack_require__(58);
var TAG = __webpack_require__(230)('toStringTag');
module.exports = function (it, tag, stat) {
if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });
};
/***/ }),
/* 230 */
/***/ (function(module, exports, __webpack_require__) {
var store = __webpack_require__(71)('wks');
var uid = __webpack_require__(73);
var Symbol = __webpack_require__(44).Symbol;
var USE_SYMBOL = typeof Symbol == 'function';
var $exports = module.exports = function (name) {
return store[name] || (store[name] =
USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
};
$exports.store = store;
/***/ }),
/* 231 */
/***/ (function(module, exports, __webpack_require__) {
__webpack_require__(232);
var global = __webpack_require__(44);
var hide = __webpack_require__(48);
var Iterators = __webpack_require__(224);
var TO_STRING_TAG = __webpack_require__(230)('toStringTag');
var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +
'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +
'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +
'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +
'TextTrackList,TouchList').split(',');
for (var i = 0; i < DOMIterables.length; i++) {
var NAME = DOMIterables[i];
var Collection = global[NAME];
var proto = Collection && Collection.prototype;
if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);
Iterators[NAME] = Iterators.Array;
}
/***/ }),
/* 232 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
var addToUnscopables = __webpack_require__(233);
var step = __webpack_require__(234);
var Iterators = __webpack_require__(224);
var toIObject = __webpack_require__(62);
// 22.1.3.4 Array.prototype.entries()
// 22.1.3.13 Array.prototype.keys()
// 22.1.3.29 Array.prototype.values()
// 22.1.3.30 Array.prototype[@@iterator]()
module.exports = __webpack_require__(222)(Array, 'Array', function (iterated, kind) {
this._t = toIObject(iterated); // target
this._i = 0; // next index
this._k = kind; // kind
// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
}, function () {
var O = this._t;
var kind = this._k;
var index = this._i++;
if (!O || index >= O.length) {
this._t = undefined;
return step(1);
}
if (kind == 'keys') return step(0, index);
if (kind == 'values') return step(0, O[index]);
return step(0, [index, O[index]]);
}, 'values');
// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
Iterators.Arguments = Iterators.Array;
addToUnscopables('keys');
addToUnscopables('values');
addToUnscopables('entries');
/***/ }),
/* 233 */
/***/ (function(module, exports) {
module.exports = function () { /* empty */ };
/***/ }),
/* 234 */
/***/ (function(module, exports) {
module.exports = function (done, value) {
return { value: value, done: !!done };
};
/***/ }),
/* 235 */
/***/ (function(module, exports, __webpack_require__) {
exports.f = __webpack_require__(230);
/***/ }),
/* 236 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = { "default": __webpack_require__(237), __esModule: true };
/***/ }),
/* 237 */
/***/ (function(module, exports, __webpack_require__) {
__webpack_require__(238);
__webpack_require__(246);
__webpack_require__(247);
__webpack_require__(248);
module.exports = __webpack_require__(45).Symbol;
/***/ }),
/* 238 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
// ECMAScript 6 symbols shim
var global = __webpack_require__(44);
var has = __webpack_require__(58);
var DESCRIPTORS = __webpack_require__(53);
var $export = __webpack_require__(43);
var redefine = __webpack_require__(223);
var META = __webpack_require__(239).KEY;
var $fails = __webpack_require__(54);
var shared = __webpack_require__(71);
var setToStringTag = __webpack_require__(229);
var uid = __webpack_require__(73);
var wks = __webpack_require__(230);
var wksExt = __webpack_require__(235);
var wksDefine = __webpack_require__(240);
var enumKeys = __webpack_require__(241);
var isArray = __webpack_require__(242);
var anObject = __webpack_require__(50);
var isObject = __webpack_require__(51);
var toObject = __webpack_require__(77);
var toIObject = __webpack_require__(62);
var toPrimitive = __webpack_require__(56);
var createDesc = __webpack_require__(57);
var _create = __webpack_require__(226);
var gOPNExt = __webpack_require__(243);
var $GOPD = __webpack_require__(245);
var $GOPS = __webpack_require__(75);
var $DP = __webpack_require__(49);
var $keys = __webpack_require__(60);
var gOPD = $GOPD.f;
var dP = $DP.f;
var gOPN = gOPNExt.f;
var $Symbol = global.Symbol;
var $JSON = global.JSON;
var _stringify = $JSON && $JSON.stringify;
var PROTOTYPE = 'prototype';
var HIDDEN = wks('_hidden');
var TO_PRIMITIVE = wks('toPrimitive');
var isEnum = {}.propertyIsEnumerable;
var SymbolRegistry = shared('symbol-registry');
var AllSymbols = shared('symbols');
var OPSymbols = shared('op-symbols');
var ObjectProto = Object[PROTOTYPE];
var USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;
var QObject = global.QObject;
// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
var setSymbolDesc = DESCRIPTORS && $fails(function () {
return _create(dP({}, 'a', {
get: function () { return dP(this, 'a', { value: 7 }).a; }
})).a != 7;
}) ? function (it, key, D) {
var protoDesc = gOPD(ObjectProto, key);
if (protoDesc) delete ObjectProto[key];
dP(it, key, D);
if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);
} : dP;
var wrap = function (tag) {
var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);
sym._k = tag;
return sym;
};
var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {
return typeof it == 'symbol';
} : function (it) {
return it instanceof $Symbol;
};
var $defineProperty = function defineProperty(it, key, D) {
if (it === ObjectProto) $defineProperty(OPSymbols, key, D);
anObject(it);
key = toPrimitive(key, true);
anObject(D);
if (has(AllSymbols, key)) {
if (!D.enumerable) {
if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));
it[HIDDEN][key] = true;
} else {
if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;
D = _create(D, { enumerable: createDesc(0, false) });
} return setSymbolDesc(it, key, D);
} return dP(it, key, D);
};
var $defineProperties = function defineProperties(it, P) {
anObject(it);
var keys = enumKeys(P = toIObject(P));
var i = 0;
var l = keys.length;
var key;
while (l > i) $defineProperty(it, key = keys[i++], P[key]);
return it;
};
var $create = function create(it, P) {
return P === undefined ? _create(it) : $defineProperties(_create(it), P);
};
var $propertyIsEnumerable = function propertyIsEnumerable(key) {
var E = isEnum.call(this, key = toPrimitive(key, true));
if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;
return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
};
var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {
it = toIObject(it);
key = toPrimitive(key, true);
if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;
var D = gOPD(it, key);
if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;
return D;
};
var $getOwnPropertyNames = function getOwnPropertyNames(it) {
var names = gOPN(toIObject(it));
var result = [];
var i = 0;
var key;
while (names.length > i) {
if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);
} return result;
};
var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {
var IS_OP = it === ObjectProto;
var names = gOPN(IS_OP ? OPSymbols : toIObject(it));
var result = [];
var i = 0;
var key;
while (names.length > i) {
if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);
} return result;
};
// 19.4.1.1 Symbol([description])
if (!USE_NATIVE) {
$Symbol = function Symbol() {
if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');
var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
var $set = function (value) {
if (this === ObjectProto) $set.call(OPSymbols, value);
if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
setSymbolDesc(this, tag, createDesc(1, value));
};
if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });
return wrap(tag);
};
redefine($Symbol[PROTOTYPE], 'toString', function toString() {
return this._k;
});
$GOPD.f = $getOwnPropertyDescriptor;
$DP.f = $defineProperty;
__webpack_require__(244).f = gOPNExt.f = $getOwnPropertyNames;
__webpack_require__(76).f = $propertyIsEnumerable;
$GOPS.f = $getOwnPropertySymbols;
if (DESCRIPTORS && !__webpack_require__(72)) {
redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
}
wksExt.f = function (name) {
return wrap(wks(name));
};
}
$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });
for (var es6Symbols = (
// 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);
for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);
$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
// 19.4.2.1 Symbol.for(key)
'for': function (key) {
return has(SymbolRegistry, key += '')
? SymbolRegistry[key]
: SymbolRegistry[key] = $Symbol(key);
},
// 19.4.2.5 Symbol.keyFor(sym)
keyFor: function keyFor(sym) {
if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');
for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;
},
useSetter: function () { setter = true; },
useSimple: function () { setter = false; }
});
$export($export.S + $export.F * !USE_NATIVE, 'Object', {
// 19.1.2.2 Object.create(O [, Properties])
create: $create,
// 19.1.2.4 Object.defineProperty(O, P, Attributes)
defineProperty: $defineProperty,
// 19.1.2.3 Object.defineProperties(O, Properties)
defineProperties: $defineProperties,
// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
// 19.1.2.7 Object.getOwnPropertyNames(O)
getOwnPropertyNames: $getOwnPropertyNames,
// 19.1.2.8 Object.getOwnPropertySymbols(O)
getOwnPropertySymbols: $getOwnPropertySymbols
});
// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
// https://bugs.chromium.org/p/v8/issues/detail?id=3443
var FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });
$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {
getOwnPropertySymbols: function getOwnPropertySymbols(it) {
return $GOPS.f(toObject(it));
}
});
// 24.3.2 JSON.stringify(value [, replacer [, space]])
$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {
var S = $Symbol();
// MS Edge converts symbol values to JSON as {}
// WebKit converts symbol values to JSON as null
// V8 throws on boxed symbols
return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';
})), 'JSON', {
stringify: function stringify(it) {
var args = [it];
var i = 1;
var replacer, $replacer;
while (arguments.length > i) args.push(arguments[i++]);
$replacer = replacer = args[1];
if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
if (!isArray(replacer)) replacer = function (key, value) {
if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
if (!isSymbol(value)) return value;
};
args[1] = replacer;
return _stringify.apply($JSON, args);
}
});
// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(48)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
// 19.4.3.5 Symbol.prototype[@@toStringTag]
setToStringTag($Symbol, 'Symbol');
// 20.2.1.9 Math[@@toStringTag]
setToStringTag(Math, 'Math', true);
// 24.3.3 JSON[@@toStringTag]
setToStringTag(global.JSON, 'JSON', true);
/***/ }),
/* 239 */
/***/ (function(module, exports, __webpack_require__) {
var META = __webpack_require__(73)('meta');
var isObject = __webpack_require__(51);
var has = __webpack_require__(58);
var setDesc = __webpack_require__(49).f;
var id = 0;
var isExtensible = Object.isExtensible || function () {
return true;
};
var FREEZE = !__webpack_require__(54)(function () {
return isExtensible(Object.preventExtensions({}));
});
var setMeta = function (it) {
setDesc(it, META, { value: {
i: 'O' + ++id, // object ID
w: {} // weak collections IDs
} });
};
var fastKey = function (it, create) {
// return primitive with prefix
if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
if (!has(it, META)) {
// can't set metadata to uncaught frozen object
if (!isExtensible(it)) return 'F';
// not necessary to add metadata
if (!create) return 'E';
// add missing metadata
setMeta(it);
// return object ID
} return it[META].i;
};
var getWeak = function (it, create) {
if (!has(it, META)) {
// can't set metadata to uncaught frozen object
if (!isExtensible(it)) return true;
// not necessary to add metadata
if (!create) return false;
// add missing metadata
setMeta(it);
// return hash weak collections IDs
} return it[META].w;
};
// add metadata on freeze-family methods calling
var onFreeze = function (it) {
if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
return it;
};
var meta = module.exports = {
KEY: META,
NEED: false,
fastKey: fastKey,
getWeak: getWeak,
onFreeze: onFreeze
};
/***/ }),
/* 240 */
/***/ (function(module, exports, __webpack_require__) {
var global = __webpack_require__(44);
var core = __webpack_require__(45);
var LIBRARY = __webpack_require__(72);
var wksExt = __webpack_require__(235);
var defineProperty = __webpack_require__(49).f;
module.exports = function (name) {
var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });
};
/***/ }),
/* 241 */
/***/ (function(module, exports, __webpack_require__) {
// all enumerable object keys, includes symbols
var getKeys = __webpack_require__(60);
var gOPS = __webpack_require__(75);
var pIE = __webpack_require__(76);
module.exports = function (it) {
var result = getKeys(it);
var getSymbols = gOPS.f;
if (getSymbols) {
var symbols = getSymbols(it);
var isEnum = pIE.f;
var i = 0;
var key;
while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);
} return result;
};
/***/ }),
/* 242 */
/***/ (function(module, exports, __webpack_require__) {
// 7.2.2 IsArray(argument)
var cof = __webpack_require__(64);
module.exports = Array.isArray || function isArray(arg) {
return cof(arg) == 'Array';
};
/***/ }),
/* 243 */
/***/ (function(module, exports, __webpack_require__) {
// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
var toIObject = __webpack_require__(62);
var gOPN = __webpack_require__(244).f;
var toString = {}.toString;
var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
? Object.getOwnPropertyNames(window) : [];
var getWindowNames = function (it) {
try {
return gOPN(it);
} catch (e) {
return windowNames.slice();
}
};
module.exports.f = function getOwnPropertyNames(it) {
return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
};
/***/ }),
/* 244 */
/***/ (function(module, exports, __webpack_require__) {
// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
var $keys = __webpack_require__(61);
var hiddenKeys = __webpack_require__(74).concat('length', 'prototype');
exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
return $keys(O, hiddenKeys);
};
/***/ }),
/* 245 */
/***/ (function(module, exports, __webpack_require__) {
var pIE = __webpack_require__(76);
var createDesc = __webpack_require__(57);
var toIObject = __webpack_require__(62);
var toPrimitive = __webpack_require__(56);
var has = __webpack_require__(58);
var IE8_DOM_DEFINE = __webpack_require__(52);
var gOPD = Object.getOwnPropertyDescriptor;
exports.f = __webpack_require__(53) ? gOPD : function getOwnPropertyDescriptor(O, P) {
O = toIObject(O);
P = toPrimitive(P, true);
if (IE8_DOM_DEFINE) try {
return gOPD(O, P);
} catch (e) { /* empty */ }
if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);
};
/***/ }),
/* 246 */
/***/ (function(module, exports) {
/***/ }),
/* 247 */
/***/ (function(module, exports, __webpack_require__) {
__webpack_require__(240)('asyncIterator');
/***/ }),
/* 248 */
/***/ (function(module, exports, __webpack_require__) {
__webpack_require__(240)('observable');
/***/ }),
/* 249 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
exports.__esModule = true;
var _setPrototypeOf = __webpack_require__(250);
var _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);
var _create = __webpack_require__(254);
var _create2 = _interopRequireDefault(_create);
var _typeof2 = __webpack_require__(217);
var _typeof3 = _interopRequireDefault(_typeof2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = function (subClass, superClass) {
if (typeof superClass !== "function" && superClass !== null) {
throw new TypeError("Super expression must either be null or a function, not " + (typeof superClass === "undefined" ? "undefined" : (0, _typeof3.default)(superClass)));
}
subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {
constructor: {
value: subClass,
enumerable: false,
writable: true,
configurable: true
}
});
if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;
};
/***/ }),
/* 250 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = { "default": __webpack_require__(251), __esModule: true };
/***/ }),
/* 251 */
/***/ (function(module, exports, __webpack_require__) {
__webpack_require__(252);
module.exports = __webpack_require__(45).Object.setPrototypeOf;
/***/ }),
/* 252 */
/***/ (function(module, exports, __webpack_require__) {
// 19.1.3.19 Object.setPrototypeOf(O, proto)
var $export = __webpack_require__(43);
$export($export.S, 'Object', { setPrototypeOf: __webpack_require__(253).set });
/***/ }),
/* 253 */
/***/ (function(module, exports, __webpack_require__) {
// Works with __proto__ only. Old v8 can't work with null proto objects.
/* eslint-disable no-proto */
var isObject = __webpack_require__(51);
var anObject = __webpack_require__(50);
var check = function (O, proto) {
anObject(O);
if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
};
module.exports = {
set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
function (test, buggy, set) {
try {
set = __webpack_require__(46)(Function.call, __webpack_require__(245).f(Object.prototype, '__proto__').set, 2);
set(test, []);
buggy = !(test instanceof Array);
} catch (e) { buggy = true; }
return function setPrototypeOf(O, proto) {
check(O, proto);
if (buggy) O.__proto__ = proto;
else set(O, proto);
return O;
};
}({}, false) : undefined),
check: check
};
/***/ }),
/* 254 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = { "default": __webpack_require__(255), __esModule: true };
/***/ }),
/* 255 */
/***/ (function(module, exports, __webpack_require__) {
__webpack_require__(256);
var $Object = __webpack_require__(45).Object;
module.exports = function create(P, D) {
return $Object.create(P, D);
};
/***/ }),
/* 256 */
/***/ (function(module, exports, __webpack_require__) {
var $export = __webpack_require__(43);
// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
$export($export.S, 'Object', { create: __webpack_require__(226) });
/***/ }),
/* 257 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
exports.__esModule = true;
var _isIterable2 = __webpack_require__(258);
var _isIterable3 = _interopRequireDefault(_isIterable2);
var _getIterator2 = __webpack_require__(262);
var _getIterator3 = _interopRequireDefault(_getIterator2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = function () {
function sliceIterator(arr, i) {
var _arr = [];
var _n = true;
var _d = false;
var _e = undefined;
try {
for (var _i = (0, _getIterator3.default)(arr), _s; !(_n = (_s = _i.next()).done); _n = true) {
_arr.push(_s.value);
if (i && _arr.length === i) break;
}
} catch (err) {
_d = true;
_e = err;
} finally {
try {
if (!_n && _i["return"]) _i["return"]();
} finally {
if (_d) throw _e;
}
}
return _arr;
}
return function (arr, i) {
if (Array.isArray(arr)) {
return arr;
} else if ((0, _isIterable3.default)(Object(arr))) {
return sliceIterator(arr, i);
} else {
throw new TypeError("Invalid attempt to destructure non-iterable instance");
}
};
}();
/***/ }),
/* 258 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = { "default": __webpack_require__(259), __esModule: true };
/***/ }),
/* 259 */
/***/ (function(module, exports, __webpack_require__) {
__webpack_require__(231);
__webpack_require__(220);
module.exports = __webpack_require__(260);
/***/ }),
/* 260 */
/***/ (function(module, exports, __webpack_require__) {
var classof = __webpack_require__(261);
var ITERATOR = __webpack_require__(230)('iterator');
var Iterators = __webpack_require__(224);
module.exports = __webpack_require__(45).isIterable = function (it) {
var O = Object(it);
return O[ITERATOR] !== undefined
|| '@@iterator' in O
// eslint-disable-next-line no-prototype-builtins
|| Iterators.hasOwnProperty(classof(O));
};
/***/ }),
/* 261 */
/***/ (function(module, exports, __webpack_require__) {
// getting tag from 19.1.3.6 Object.prototype.toString()
var cof = __webpack_require__(64);
var TAG = __webpack_require__(230)('toStringTag');
// ES3 wrong here
var ARG = cof(function () { return arguments; }()) == 'Arguments';
// fallback for IE11 Script Access Denied error
var tryGet = function (it, key) {
try {
return it[key];
} catch (e) { /* empty */ }
};
module.exports = function (it) {
var O, T, B;
return it === undefined ? 'Undefined' : it === null ? 'Null'
// @@toStringTag case
: typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
// builtinTag case
: ARG ? cof(O)
// ES3 arguments fallback
: (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
};
/***/ }),
/* 262 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = { "default": __webpack_require__(263), __esModule: true };
/***/ }),
/* 263 */
/***/ (function(module, exports, __webpack_require__) {
__webpack_require__(231);
__webpack_require__(220);
module.exports = __webpack_require__(264);
/***/ }),
/* 264 */
/***/ (function(module, exports, __webpack_require__) {
var anObject = __webpack_require__(50);
var get = __webpack_require__(265);
module.exports = __webpack_require__(45).getIterator = function (it) {
var iterFn = get(it);
if (typeof iterFn != 'function') throw TypeError(it + ' is not iterable!');
return anObject(iterFn.call(it));
};
/***/ }),
/* 265 */
/***/ (function(module, exports, __webpack_require__) {
var classof = __webpack_require__(261);
var ITERATOR = __webpack_require__(230)('iterator');
var Iterators = __webpack_require__(224);
module.exports = __webpack_require__(45).getIteratorMethod = function (it) {
if (it != undefined) return it[ITERATOR]
|| it['@@iterator']
|| Iterators[classof(it)];
};
/***/ }),
/* 266 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = { "default": __webpack_require__(267), __esModule: true };
/***/ }),
/* 267 */
/***/ (function(module, exports, __webpack_require__) {
__webpack_require__(220);
__webpack_require__(268);
module.exports = __webpack_require__(45).Array.from;
/***/ }),
/* 268 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
var ctx = __webpack_require__(46);
var $export = __webpack_require__(43);
var toObject = __webpack_require__(77);
var call = __webpack_require__(269);
var isArrayIter = __webpack_require__(270);
var toLength = __webpack_require__(67);
var createProperty = __webpack_require__(271);
var getIterFn = __webpack_require__(265);
$export($export.S + $export.F * !__webpack_require__(272)(function (iter) { Array.from(iter); }), 'Array', {
// 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {
var O = toObject(arrayLike);
var C = typeof this == 'function' ? this : Array;
var aLen = arguments.length;
var mapfn = aLen > 1 ? arguments[1] : undefined;
var mapping = mapfn !== undefined;
var index = 0;
var iterFn = getIterFn(O);
var length, result, step, iterator;
if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
// if object isn't iterable or it's array with default iterator - use simple case
if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {
for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {
createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);
}
} else {
length = toLength(O.length);
for (result = new C(length); length > index; index++) {
createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
}
}
result.length = index;
return result;
}
});
/***/ }),
/* 269 */
/***/ (function(module, exports, __webpack_require__) {
// call something on iterator step with safe closing on error
var anObject = __webpack_require__(50);
module.exports = function (iterator, fn, value, entries) {
try {
return entries ? fn(anObject(value)[0], value[1]) : fn(value);
// 7.4.6 IteratorClose(iterator, completion)
} catch (e) {
var ret = iterator['return'];
if (ret !== undefined) anObject(ret.call(iterator));
throw e;
}
};
/***/ }),
/* 270 */
/***/ (function(module, exports, __webpack_require__) {
// check on default Array iterator
var Iterators = __webpack_require__(224);
var ITERATOR = __webpack_require__(230)('iterator');
var ArrayProto = Array.prototype;
module.exports = function (it) {
return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
};
/***/ }),
/* 271 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
var $defineProperty = __webpack_require__(49);
var createDesc = __webpack_require__(57);
module.exports = function (object, index, value) {
if (index in object) $defineProperty.f(object, index, createDesc(0, value));
else object[index] = value;
};
/***/ }),
/* 272 */
/***/ (function(module, exports, __webpack_require__) {
var ITERATOR = __webpack_require__(230)('iterator');
var SAFE_CLOSING = false;
try {
var riter = [7][ITERATOR]();
riter['return'] = function () { SAFE_CLOSING = true; };
// eslint-disable-next-line no-throw-literal
Array.from(riter, function () { throw 2; });
} catch (e) { /* empty */ }
module.exports = function (exec, skipClosing) {
if (!skipClosing && !SAFE_CLOSING) return false;
var safe = false;
try {
var arr = [7];
var iter = arr[ITERATOR]();
iter.next = function () { return { done: safe = true }; };
arr[ITERATOR] = function () { return iter; };
exec(arr);
} catch (e) { /* empty */ }
return safe;
};
/***/ }),
/* 273 */
/***/ (function(module, exports, __webpack_require__) {
var Buffer = __webpack_require__(97).Buffer
module.exports = function (buf) {
// If the buffer is backed by a Uint8Array, a faster version will work
if (buf instanceof Uint8Array) {
// If the buffer isn't a subarray, return the underlying ArrayBuffer
if (buf.byteOffset === 0 && buf.byteLength === buf.buffer.byteLength) {
return buf.buffer
} else if (typeof buf.buffer.slice === 'function') {
// Otherwise we need to get a proper copy
return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength)
}
}
if (Buffer.isBuffer(buf)) {
// This is the slow version that will work with any Buffer
// implementation (even in old browsers)
var arrayCopy = new Uint8Array(buf.length)
var len = buf.length
for (var i = 0; i < len; i++) {
arrayCopy[i] = buf[i]
}
return arrayCopy.buffer
} else {
throw new Error('Argument must be a Buffer')
}
}
/***/ }),
/* 274 */
/***/ (function(module, exports) {
var __webpack_require__ = arguments[2];
var sources = __webpack_require__.m;
var ENTRY_MODULE = __webpack_require__.s || "0";
// In webpack 2 the moduleId property is called `i` instead of `id`.
var webworkifyWebpackModuleId = arguments[0].id || arguments[0].i;
var webpackBootstrapFunc = function(modules) {
var installedModules = {};
function __webpack_require__(moduleId) {
if(installedModules[moduleId])
return installedModules[moduleId].exports;
var module = installedModules[moduleId] = {
exports: {},
id: moduleId,
loaded: false
};
modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
module.loaded = true;
return module.exports;
}
__webpack_require__.m = modules;
__webpack_require__.c = installedModules;
__webpack_require__.oe = function(err) { throw err; };
__webpack_require__.p = "";
var f = __webpack_require__(__webpack_require__.s = entryModule);
return f.default || f; // try to call default if defined to also support babel esmodule exports
}
// http://stackoverflow.com/a/2593661/130442
function quoteRegExp(str) {
return (str+'').replace(/[.?*+^$[\]\\(){}|-]/g, "\\$&");
}
module.exports = function (fn, options) {
var moduleWrapperStrings = [];
var potentialFnModuleIds = [ENTRY_MODULE];
var sourcesKeys = Object.keys(sources); // when using the CommonChunks plugin, webpacl sometimes storing sources in object instead of array
// first, find the modules that required webworkify-webpack, and note their requires so that we can limit the number of potential duplicate matches
// while we're at it, save the string version for use later
var key;
for (var i = 0, l = sourcesKeys.length; i < l; i++) {
var k = sourcesKeys[i];
if (!sources[k]) {
continue;
}
var wrapperFuncString = sources[k].toString();
moduleWrapperStrings[k] = wrapperFuncString;
// __webpack_require__ is the third argument passed to the wrapper function, but it may have been renamed by minification
var wrapperSignature = wrapperFuncString.match(/^function\s?\(\w+,\s*\w+,\s*(\w+)\)/);
if (!wrapperSignature) {
// no matches means the module doesn't use __webpack_require__, and we can skip it entirely
continue;
}
var webpackRequireName = wrapperSignature[1];
if (wrapperFuncString.indexOf(webpackRequireName + '(' + webworkifyWebpackModuleId + ')') > -1) {
// find all calls that look like __webpack_require__(\d+), and aren't webworkify-webpack
var re = new RegExp(quoteRegExp(webpackRequireName) + '\\((\\d+)\\)', 'g');
var match;
while (match = re.exec(wrapperFuncString)) {
if (match[1] != ('' + webworkifyWebpackModuleId)) {
potentialFnModuleIds.push(match[1]);
}
}
}
}
var fnString = fn.toString()
// FF adds a "use strict"; to the function body
.replace(/"use strict";\n\n/, '');
var fnStringNoSpace = fnString
.replace(/^function\s?\((.*)\)(\s?)\{(\n"use strict";\n)?/, 'function($1)$2{');
var fnStringWithSpace = fnString
.replace(/^function\s?\((.*)\)(\s?)\{(\n"use strict";\n)?/, 'function ($1)$2{');
// find the first moduleId from the above list that contains fnString
var key = potentialFnModuleIds.find(function (moduleId) {
var wrapperFuncString = sources[moduleId].toString();
if (wrapperFuncString.indexOf(fnStringNoSpace) > -1 || wrapperFuncString.indexOf(fnStringWithSpace) > -1) {
var exp = __webpack_require__(moduleId);
// Using babel as a transpiler to use esmodule, the export will always
// be an object with the default export as a property of it. To ensure
// the existing api and babel esmodule exports are both supported we
// check for both
if (!(exp && (exp === fn || exp.default === fn))) {
moduleWrapperStrings[moduleId] = wrapperFuncString.substring(0, wrapperFuncString.length - 1) + '\n' + fnString.match(/function\s?(.+?)\s?\(.*/)[1] + '();\n}';
}
return true;
}
return false;
});
if (typeof key === 'undefined') {
throw new Error('webworkify-webpack: Could not locate module containing worker function! Make sure you aren\'t using eval sourcemaps and that you pass named functions to webworkify-webpack!');
}
// window = {}; => https://github.com/borisirota/webworkify-webpack/issues/1
var src = 'window = {};\n'
+ 'var fn = (' + webpackBootstrapFunc.toString().replace('entryModule', key) + ')(['
+ moduleWrapperStrings.join(',')
+ ']);\n'
+ '(typeof fn === "function") && fn(self);'; // not a function when calling a function from the current scope
var blob = new Blob([src], { type: 'text/javascript' })
if (options && options.bare) { return blob; }
var URL = window.URL || window.webkitURL || window.mozURL || window.msURL;
var workerUrl = URL.createObjectURL(blob);
var worker = new Worker(workerUrl);
worker.objectURL = workerUrl;
return worker;
};
/***/ }),
/* 275 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(Buffer) {'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _getIterator2 = __webpack_require__(262);
var _getIterator3 = _interopRequireDefault(_getIterator2);
var _assign = __webpack_require__(40);
var _assign2 = _interopRequireDefault(_assign);
var _from = __webpack_require__(266);
var _from2 = _interopRequireDefault(_from);
var _stringify = __webpack_require__(276);
var _stringify2 = _interopRequireDefault(_stringify);
exports.default = function (self) {
var sampleRate = void 0;
var nextClientId = 1;
var nextVoiceId = 1;
var voiceStreams = [];
var clients = [];
function postMessage(msg, transfer) {
try {
self.postMessage(msg, transfer);
} catch (err) {
console.error('Failed to postMessage', msg);
throw err;
}
}
function resolve(reqId, value, transfer) {
postMessage({
reqId: reqId,
result: value
}, transfer);
}
function reject(reqId, value, transfer) {
console.error(value);
var jsonValue = JSON.parse((0, _stringify2.default)(value));
if (value.$type) {
jsonValue.$type = { name: value.$type.name };
}
postMessage({
reqId: reqId,
error: jsonValue
}, transfer);
}
function registerEventProxy(id, obj, event, transform) {
obj.on(event, function (_) {
postMessage({
clientId: id.client,
channelId: id.channel,
userId: id.user,
event: event,
value: transform ? transform.apply(null, arguments) : (0, _from2.default)(arguments)
});
});
}
function pushProp(id, obj, prop, transform) {
var value = obj[prop];
postMessage({
clientId: id.client,
channelId: id.channel,
userId: id.user,
prop: prop,
value: transform ? transform(value) : value
});
}
function setupOutboundVoice(voiceId, samplesPerPacket, stream) {
var resampler = new _libsamplerate2.default({
unsafe: true,
type: _libsamplerate2.default.Type.SINC_FASTEST,
ratio: 48000 / sampleRate
});
var buffer2Float32Array = new _stream2.Transform({
transform: function transform(data, _, callback) {
callback(null, new Float32Array(data.buffer, data.byteOffset, data.byteLength / 4));
},
readableObjectMode: true
});
resampler.pipe((0, _streamChunker2.default)(4 * samplesPerPacket)).pipe(buffer2Float32Array).pipe(stream);
voiceStreams[voiceId] = resampler;
}
function setupChannel(id, channel) {
id = (0, _assign2.default)({}, id, { channel: channel.id });
registerEventProxy(id, channel, 'update', function (actor, props) {
if (actor) {
actor = actor.id;
}
if (props.parent) {
props.parent = props.parent.id;
}
if (props.links) {
props.links = props.links.map(function (it) {
return it.id;
});
}
return [actor, props];
});
registerEventProxy(id, channel, 'remove');
pushProp(id, channel, 'parent', function (it) {
return it ? it.id : it;
});
pushProp(id, channel, 'links', function (it) {
return it.map(function (it) {
return it.id;
});
});
var props = ['position', 'name', 'description'];
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = (0, _getIterator3.default)(props), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var prop = _step.value;
pushProp(id, channel, prop);
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
var _iteratorNormalCompletion2 = true;
var _didIteratorError2 = false;
var _iteratorError2 = undefined;
try {
for (var _iterator2 = (0, _getIterator3.default)(channel.children), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
var child = _step2.value;
setupChannel(id, child);
}
} catch (err) {
_didIteratorError2 = true;
_iteratorError2 = err;
} finally {
try {
if (!_iteratorNormalCompletion2 && _iterator2.return) {
_iterator2.return();
}
} finally {
if (_didIteratorError2) {
throw _iteratorError2;
}
}
}
return channel.id;
}
function setupUser(id, user) {
id = (0, _assign2.default)({}, id, { user: user.id });
registerEventProxy(id, user, 'update', function (actor, props) {
if (actor) {
actor = actor.id;
}
if (props.channel != null) {
props.channel = props.channel.id;
}
return [actor, props];
});
registerEventProxy(id, user, 'voice', function (stream) {
var voiceId = nextVoiceId++;
var target = void 0;
// We want to do as little on the UI thread as possible, so do resampling here as well
var resampler = new _libsamplerate2.default({
unsafe: true,
type: _libsamplerate2.default.Type.ZERO_ORDER_HOLD,
ratio: sampleRate / 48000
});
// Pipe stream into resampler
stream.on('data', function (data) {
// store target so we can pass it on after resampling
target = data.target;
resampler.write(Buffer.from(data.pcm.buffer));
}).on('end', function () {
resampler.end();
});
// Pipe resampler into output stream on UI thread
resampler.on('data', function (data) {
data = (0, _toArraybuffer2.default)(data); // postMessage can't transfer node's Buffer
postMessage({
voiceId: voiceId,
target: target,
buffer: data
}, [data]);
}).on('end', function () {
postMessage({
voiceId: voiceId
});
});
return [voiceId];
});
registerEventProxy(id, user, 'remove');
pushProp(id, user, 'channel', function (it) {
return it ? it.id : it;
});
var props = ['uniqueId', 'username', 'mute', 'deaf', 'suppress', 'selfMute', 'selfDeaf', 'texture', 'textureHash', 'comment'];
var _iteratorNormalCompletion3 = true;
var _didIteratorError3 = false;
var _iteratorError3 = undefined;
try {
for (var _iterator3 = (0, _getIterator3.default)(props), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
var prop = _step3.value;
pushProp(id, user, prop);
}
} catch (err) {
_didIteratorError3 = true;
_iteratorError3 = err;
} finally {
try {
if (!_iteratorNormalCompletion3 && _iterator3.return) {
_iterator3.return();
}
} finally {
if (_didIteratorError3) {
throw _iteratorError3;
}
}
}
return user.id;
}
function setupClient(id, client) {
id = { client: id };
registerEventProxy(id, client, 'error');
registerEventProxy(id, client, 'newChannel', function (it) {
return [setupChannel(id, it)];
});
registerEventProxy(id, client, 'newUser', function (it) {
return [setupUser(id, it)];
});
registerEventProxy(id, client, 'message', function (sender, message, users, channels, trees) {
return [sender.id, message, users.map(function (it) {
return it.id;
}), channels.map(function (it) {
return it.id;
}), trees.map(function (it) {
return it.id;
})];
});
client.on('dataPing', function () {
pushProp(id, client, 'dataStats');
});
setupChannel(id, client.root);
var _iteratorNormalCompletion4 = true;
var _didIteratorError4 = false;
var _iteratorError4 = undefined;
try {
for (var _iterator4 = (0, _getIterator3.default)(client.users), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
var user = _step4.value;
setupUser(id, user);
}
} catch (err) {
_didIteratorError4 = true;
_iteratorError4 = err;
} finally {
try {
if (!_iteratorNormalCompletion4 && _iterator4.return) {
_iterator4.return();
}
} finally {
if (_didIteratorError4) {
throw _iteratorError4;
}
}
}
pushProp(id, client, 'root', function (it) {
return it.id;
});
pushProp(id, client, 'self', function (it) {
return it.id;
});
pushProp(id, client, 'welcomeMessage');
pushProp(id, client, 'serverVersion');
pushProp(id, client, 'maxBandwidth');
}
function onMessage(data) {
var reqId = data.reqId,
method = data.method,
payload = data.payload;
if (method === '_init') {
sampleRate = data.sampleRate;
} else if (method === '_connect') {
payload.args.codecs = CodecsBrowser;
(0, _mumbleClientWebsocket2.default)(payload.host, payload.args).then(function (client) {
var id = nextClientId++;
clients[id] = client;
setupClient(id, client);
return id;
}).done(function (id) {
resolve(reqId, id);
}, function (err) {
reject(reqId, err);
});
} else if (data.clientId != null) {
var client = clients[data.clientId];
var target = void 0;
if (data.userId != null) {
target = client.getUserById(data.userId);
if (method === 'setChannel') {
payload = [client.getChannelById(payload)];
}
} else if (data.channelId != null) {
target = client.getChannelById(data.channelId);
} else {
target = client;
if (method === 'createVoiceStream') {
var voiceId = payload.shift();
var samplesPerPacket = payload.shift();
var stream = target.createVoiceStream.apply(target, payload);
setupOutboundVoice(voiceId, samplesPerPacket, stream);
return;
}
if (method === 'disconnect') {
delete clients[data.clientId];
}
}
target[method].apply(target, payload);
} else if (data.voiceId != null) {
var _stream = voiceStreams[data.voiceId];
var buffer = data.chunk;
if (buffer) {
_stream.write(Buffer.from(buffer));
} else {
delete voiceStreams[data.voiceId];
_stream.end();
}
}
}
self.addEventListener('message', function (ev) {
try {
onMessage(ev.data);
} catch (ex) {
console.error('exception during message event', ev.data, ex);
}
});
};
var _stream2 = __webpack_require__(87);
var _mumbleClientWebsocket = __webpack_require__(278);
var _mumbleClientWebsocket2 = _interopRequireDefault(_mumbleClientWebsocket);
var _toArraybuffer = __webpack_require__(273);
var _toArraybuffer2 = _interopRequireDefault(_toArraybuffer);
var _streamChunker = __webpack_require__(287);
var _streamChunker2 = _interopRequireDefault(_streamChunker);
var _libsamplerate = __webpack_require__(288);
var _libsamplerate2 = _interopRequireDefault(_libsamplerate);
__webpack_require__(117);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// Monkey-patch to allow webworkify-webpack and codecs to work inside of web worker
/* global URL */
window.URL = URL;
// Using require to ensure ordering relative to monkey-patch above
// Polyfill nested webworkers for https://bugs.chromium.org/p/chromium/issues/detail?id=31666
var CodecsBrowser = __webpack_require__(292);
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(97).Buffer))
/***/ }),
/* 276 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = { "default": __webpack_require__(277), __esModule: true };
/***/ }),
/* 277 */
/***/ (function(module, exports, __webpack_require__) {
var core = __webpack_require__(45);
var $JSON = core.JSON || (core.JSON = { stringify: JSON.stringify });
module.exports = function stringify(it) { // eslint-disable-line no-unused-vars
return $JSON.stringify.apply($JSON, arguments);
};
/***/ }),
/* 278 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(279).default
/***/ }),
/* 279 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _promise = __webpack_require__(180);
var _promise2 = _interopRequireDefault(_promise);
var _websocketStream = __webpack_require__(280);
var _websocketStream2 = _interopRequireDefault(_websocketStream);
var _mumbleClient = __webpack_require__(128);
var _mumbleClient2 = _interopRequireDefault(_mumbleClient);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function connect(address, options, callback) {
return new _promise2.default(function (resolve, reject) {
var ws = (0, _websocketStream2.default)(address, ['binary']).on('error', reject).on('connect', function () {
return resolve(ws);
});
}).then(function (ws) {
return new _mumbleClient2.default(options).connectDataStream(ws);
}).nodeify(callback);
}
exports.default = connect;
/***/ }),
/* 280 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(process, global, Buffer) {'use strict'
var through = __webpack_require__(178)
var duplexify = __webpack_require__(281)
var WS = __webpack_require__(286)
module.exports = WebSocketStream
function WebSocketStream(target, protocols, options) {
var stream, socket
var isBrowser = process.title === 'browser'
var isNative = !!global.WebSocket
var socketWrite = isBrowser ? socketWriteBrowser : socketWriteNode
var proxy = through.obj(socketWrite, socketEnd)
if (protocols && !Array.isArray(protocols) && 'object' === typeof protocols) {
// accept the "options" Object as the 2nd argument
options = protocols
protocols = null
if (typeof options.protocol === 'string' || Array.isArray(options.protocol)) {
protocols = options.protocol;
}
}
if (!options) options = {}
// browser only: sets the maximum socket buffer size before throttling
var bufferSize = options.browserBufferSize || 1024 * 512
// browser only: how long to wait when throttling
var bufferTimeout = options.browserBufferTimeout || 1000
// use existing WebSocket object that was passed in
if (typeof target === 'object') {
socket = target
// otherwise make a new one
} else {
// special constructor treatment for native websockets in browsers, see
// https://github.com/maxogden/websocket-stream/issues/82
if (isNative && isBrowser) {
socket = new WS(target, protocols)
} else {
socket = new WS(target, protocols, options)
}
socket.binaryType = 'arraybuffer'
}
// was already open when passed in
if (socket.readyState === WS.OPEN) {
stream = proxy
} else {
stream = duplexify.obj()
socket.onopen = onopen
}
stream.socket = socket
socket.onclose = onclose
socket.onerror = onerror
socket.onmessage = onmessage
proxy.on('close', destroy)
var coerceToBuffer = options.binary || options.binary === undefined
function socketWriteNode(chunk, enc, next) {
if (coerceToBuffer && typeof chunk === 'string') {
chunk = new Buffer(chunk, 'utf8')
}
socket.send(chunk, next)
}
function socketWriteBrowser(chunk, enc, next) {
if (socket.bufferedAmount > bufferSize) {
setTimeout(socketWriteBrowser, bufferTimeout, chunk, enc, next)
return
}
if (coerceToBuffer && typeof chunk === 'string') {
chunk = new Buffer(chunk, 'utf8')
}
try {
socket.send(chunk)
} catch(err) {
return next(err)
}
next()
}
function socketEnd(done) {
socket.close()
done()
}
function onopen() {
stream.setReadable(proxy)
stream.setWritable(proxy)
stream.emit('connect')
}
function onclose() {
stream.end()
stream.destroy()
}
function onerror(err) {
stream.destroy(err)
}
function onmessage(event) {
var data = event.data
if (data instanceof ArrayBuffer) data = new Buffer(new Uint8Array(data))
else data = new Buffer(data)
proxy.push(data)
}
function destroy() {
socket.close()
}
return stream
}
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(92), (function() { return this; }()), __webpack_require__(97).Buffer))
/***/ }),
/* 281 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(Buffer, process) {var stream = __webpack_require__(90)
var eos = __webpack_require__(282)
var inherits = __webpack_require__(89)
var shift = __webpack_require__(285)
var SIGNAL_FLUSH = (Buffer.from && Buffer.from !== Uint8Array.from)
? Buffer.from([0])
: new Buffer([0])
var onuncork = function(self, fn) {
if (self._corked) self.once('uncork', fn)
else fn()
}
var autoDestroy = function (self, err) {
if (self._autoDestroy) self.destroy(err)
}
var destroyer = function(self, end) {
return function(err) {
if (err) autoDestroy(self, err.message === 'premature close' ? null : err)
else if (end && !self._ended) self.end()
}
}
var end = function(ws, fn) {
if (!ws) return fn()
if (ws._writableState && ws._writableState.finished) return fn()
if (ws._writableState) return ws.end(fn)
ws.end()
fn()
}
var toStreams2 = function(rs) {
return new (stream.Readable)({objectMode:true, highWaterMark:16}).wrap(rs)
}
var Duplexify = function(writable, readable, opts) {
if (!(this instanceof Duplexify)) return new Duplexify(writable, readable, opts)
stream.Duplex.call(this, opts)
this._writable = null
this._readable = null
this._readable2 = null
this._autoDestroy = !opts || opts.autoDestroy !== false
this._forwardDestroy = !opts || opts.destroy !== false
this._forwardEnd = !opts || opts.end !== false
this._corked = 1 // start corked
this._ondrain = null
this._drained = false
this._forwarding = false
this._unwrite = null
this._unread = null
this._ended = false
this.destroyed = false
if (writable) this.setWritable(writable)
if (readable) this.setReadable(readable)
}
inherits(Duplexify, stream.Duplex)
Duplexify.obj = function(writable, readable, opts) {
if (!opts) opts = {}
opts.objectMode = true
opts.highWaterMark = 16
return new Duplexify(writable, readable, opts)
}
Duplexify.prototype.cork = function() {
if (++this._corked === 1) this.emit('cork')
}
Duplexify.prototype.uncork = function() {
if (this._corked && --this._corked === 0) this.emit('uncork')
}
Duplexify.prototype.setWritable = function(writable) {
if (this._unwrite) this._unwrite()
if (this.destroyed) {
if (writable && writable.destroy) writable.destroy()
return
}
if (writable === null || writable === false) {
this.end()
return
}
var self = this
var unend = eos(writable, {writable:true, readable:false}, destroyer(this, this._forwardEnd))
var ondrain = function() {
var ondrain = self._ondrain
self._ondrain = null
if (ondrain) ondrain()
}
var clear = function() {
self._writable.removeListener('drain', ondrain)
unend()
}
if (this._unwrite) process.nextTick(ondrain) // force a drain on stream reset to avoid livelocks
this._writable = writable
this._writable.on('drain', ondrain)
this._unwrite = clear
this.uncork() // always uncork setWritable
}
Duplexify.prototype.setReadable = function(readable) {
if (this._unread) this._unread()
if (this.destroyed) {
if (readable && readable.destroy) readable.destroy()
return
}
if (readable === null || readable === false) {
this.push(null)
this.resume()
return
}
var self = this
var unend = eos(readable, {writable:false, readable:true}, destroyer(this))
var onreadable = function() {
self._forward()
}
var onend = function() {
self.push(null)
}
var clear = function() {
self._readable2.removeListener('readable', onreadable)
self._readable2.removeListener('end', onend)
unend()
}
this._drained = true
this._readable = readable
this._readable2 = readable._readableState ? readable : toStreams2(readable)
this._readable2.on('readable', onreadable)
this._readable2.on('end', onend)
this._unread = clear
this._forward()
}
Duplexify.prototype._read = function() {
this._drained = true
this._forward()
}
Duplexify.prototype._forward = function() {
if (this._forwarding || !this._readable2 || !this._drained) return
this._forwarding = true
var data
while (this._drained && (data = shift(this._readable2)) !== null) {
if (this.destroyed) continue
this._drained = this.push(data)
}
this._forwarding = false
}
Duplexify.prototype.destroy = function(err) {
if (this.destroyed) return
this.destroyed = true
var self = this
process.nextTick(function() {
self._destroy(err)
})
}
Duplexify.prototype._destroy = function(err) {
if (err) {
var ondrain = this._ondrain
this._ondrain = null
if (ondrain) ondrain(err)
else this.emit('error', err)
}
if (this._forwardDestroy) {
if (this._readable && this._readable.destroy) this._readable.destroy()
if (this._writable && this._writable.destroy) this._writable.destroy()
}
this.emit('close')
}
Duplexify.prototype._write = function(data, enc, cb) {
if (this.destroyed) return cb()
if (this._corked) return onuncork(this, this._write.bind(this, data, enc, cb))
if (data === SIGNAL_FLUSH) return this._finish(cb)
if (!this._writable) return cb()
if (this._writable.write(data) === false) this._ondrain = cb
else cb()
}
Duplexify.prototype._finish = function(cb) {
var self = this
this.emit('preend')
onuncork(this, function() {
end(self._forwardEnd && self._writable, function() {
// haxx to not emit prefinish twice
if (self._writableState.prefinished === false) self._writableState.prefinished = true
self.emit('prefinish')
onuncork(self, cb)
})
})
}
Duplexify.prototype.end = function(data, enc, cb) {
if (typeof data === 'function') return this.end(null, null, data)
if (typeof enc === 'function') return this.end(data, null, enc)
this._ended = true
if (data) this.write(data)
if (!this._writableState.ending) this.write(SIGNAL_FLUSH)
return stream.Writable.prototype.end.call(this, cb)
}
module.exports = Duplexify
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(97).Buffer, __webpack_require__(92)))
/***/ }),
/* 282 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(process) {var once = __webpack_require__(283);
var noop = function() {};
var isRequest = function(stream) {
return stream.setHeader && typeof stream.abort === 'function';
};
var isChildProcess = function(stream) {
return stream.stdio && Array.isArray(stream.stdio) && stream.stdio.length === 3
};
var eos = function(stream, opts, callback) {
if (typeof opts === 'function') return eos(stream, null, opts);
if (!opts) opts = {};
callback = once(callback || noop);
var ws = stream._writableState;
var rs = stream._readableState;
var readable = opts.readable || (opts.readable !== false && stream.readable);
var writable = opts.writable || (opts.writable !== false && stream.writable);
var cancelled = false;
var onlegacyfinish = function() {
if (!stream.writable) onfinish();
};
var onfinish = function() {
writable = false;
if (!readable) callback.call(stream);
};
var onend = function() {
readable = false;
if (!writable) callback.call(stream);
};
var onexit = function(exitCode) {
callback.call(stream, exitCode ? new Error('exited with error code: ' + exitCode) : null);
};
var onerror = function(err) {
callback.call(stream, err);
};
var onclose = function() {
process.nextTick(onclosenexttick);
};
var onclosenexttick = function() {
if (cancelled) return;
if (readable && !(rs && (rs.ended && !rs.destroyed))) return callback.call(stream, new Error('premature close'));
if (writable && !(ws && (ws.ended && !ws.destroyed))) return callback.call(stream, new Error('premature close'));
};
var onrequest = function() {
stream.req.on('finish', onfinish);
};
if (isRequest(stream)) {
stream.on('complete', onfinish);
stream.on('abort', onclose);
if (stream.req) onrequest();
else stream.on('request', onrequest);
} else if (writable && !ws) { // legacy streams
stream.on('end', onlegacyfinish);
stream.on('close', onlegacyfinish);
}
if (isChildProcess(stream)) stream.on('exit', onexit);
stream.on('end', onend);
stream.on('finish', onfinish);
if (opts.error !== false) stream.on('error', onerror);
stream.on('close', onclose);
return function() {
cancelled = true;
stream.removeListener('complete', onfinish);
stream.removeListener('abort', onclose);
stream.removeListener('request', onrequest);
if (stream.req) stream.req.removeListener('finish', onfinish);
stream.removeListener('end', onlegacyfinish);
stream.removeListener('close', onlegacyfinish);
stream.removeListener('finish', onfinish);
stream.removeListener('exit', onexit);
stream.removeListener('end', onend);
stream.removeListener('error', onerror);
stream.removeListener('close', onclose);
};
};
module.exports = eos;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(92)))
/***/ }),
/* 283 */
/***/ (function(module, exports, __webpack_require__) {
var wrappy = __webpack_require__(284)
module.exports = wrappy(once)
module.exports.strict = wrappy(onceStrict)
once.proto = once(function () {
Object.defineProperty(Function.prototype, 'once', {
value: function () {
return once(this)
},
configurable: true
})
Object.defineProperty(Function.prototype, 'onceStrict', {
value: function () {
return onceStrict(this)
},
configurable: true
})
})
function once (fn) {
var f = function () {
if (f.called) return f.value
f.called = true
return f.value = fn.apply(this, arguments)
}
f.called = false
return f
}
function onceStrict (fn) {
var f = function () {
if (f.called)
throw new Error(f.onceError)
f.called = true
return f.value = fn.apply(this, arguments)
}
var name = fn.name || 'Function wrapped with `once`'
f.onceError = name + " shouldn't be called more than once"
f.called = false
return f
}
/***/ }),
/* 284 */
/***/ (function(module, exports) {
// Returns a wrapper function that returns a wrapped callback
// The wrapper function should do some stuff, and return a
// presumably different callback function.
// This makes sure that own properties are retained, so that
// decorations and such are not lost along the way.
module.exports = wrappy
function wrappy (fn, cb) {
if (fn && cb) return wrappy(fn)(cb)
if (typeof fn !== 'function')
throw new TypeError('need wrapper function')
Object.keys(fn).forEach(function (k) {
wrapper[k] = fn[k]
})
return wrapper
function wrapper() {
var args = new Array(arguments.length)
for (var i = 0; i < args.length; i++) {
args[i] = arguments[i]
}
var ret = fn.apply(this, args)
var cb = args[args.length-1]
if (typeof ret === 'function' && ret !== cb) {
Object.keys(cb).forEach(function (k) {
ret[k] = cb[k]
})
}
return ret
}
}
/***/ }),
/* 285 */
/***/ (function(module, exports) {
module.exports = shift
function shift (stream) {
var rs = stream._readableState
if (!rs) return null
return (rs.objectMode || typeof stream._duplexState === 'number') ? stream.read() : stream.read(getStateLength(rs))
}
function getStateLength (state) {
if (state.buffer.length) {
// Since node 6.3.0 state.buffer is a BufferList not an array
if (state.buffer.head) {
return state.buffer.head.data.length
}
return state.buffer[0].length
}
return state.length
}
/***/ }),
/* 286 */
/***/ (function(module, exports) {
var ws = null
if (typeof WebSocket !== 'undefined') {
ws = WebSocket
} else if (typeof MozWebSocket !== 'undefined') {
ws = MozWebSocket
} else {
ws = window.WebSocket || window.MozWebSocket
}
module.exports = ws
/***/ }),
/* 287 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(Buffer) {/**
* @copyright (c) 2014-2015 Kristian Lyngbaek
* @author Kristian Lyngbaek
* @module stream-chunker
*/
var through2 = __webpack_require__(178);
/**
* Returns a transform stream which chunks incoming data into chunkSize byte
* chunks.
* @param {integer} chunkSize Size of chunks in bytes
* @param {boolean} [flush] Flush incomplete chunk data on stream end
* Default is false
* @return {Stream.Transform} A transform stream
*/
module.exports = function (chunkSize, opts) {
if (!opts) opts = {};
var flush = opts.flush;
var encoding = opts.encoding;
// buffer to store the last few bytes of incoming data
// if it does not divide evenly into chunkSize
var buffer = new Buffer(0);
var transformOpts = {
encoding: encoding,
halfOpen: false,
objectMode: false
};
var transformFunction = function (data, enc, next) {
var allData = Buffer.concat([buffer, data]);
var totalLength = allData.length;
var remainder = totalLength % chunkSize;
var cutoff = totalLength - remainder;
for (var i=0 ; i<cutoff ; i+=chunkSize) {
var chunk = allData.slice(i, i+chunkSize);
this.push(chunk);
}
buffer = allData.slice(cutoff, totalLength);
next();
};
var flushFunction;
if (flush) {
flushFunction = function (next) {
if (opts.align && buffer.length > 0) {
var remaining = new Buffer(chunkSize - buffer.length);
remaining.fill(0);
buffer = Buffer.concat([ buffer, remaining ], chunkSize);
}
this.push(buffer);
next();
};
}
return through2(transformOpts, transformFunction, flushFunction);
};
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(97).Buffer))
/***/ }),
/* 288 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(Buffer) {/* eslint-disable camelcase */ // To allow for p_name style pointer variables
var lib = __webpack_require__(289)
var util = __webpack_require__(135)
var extend = __webpack_require__(291)
var Transform = __webpack_require__(87).Transform
var e = function (msg) { return new Error(msg) }
var Type = {
SINC_BEST_QUALITY: 0,
SINC_MEDIUM_QUALITY: 1,
SINC_FASTEST: 2,
ZERO_ORDER_HOLD: 3,
LINEAR: 4
}
/**
* @typedef {Object} Data
* @property {number} [ratio] - Conversion ratio for this batch of data
* @property {Buffer} data - Buffer of data
*/
/**
* Transform stream that resamples raw PCM audio samples in the Float32 format.
* When in object mode, {@link Data}-like objects or Buffers are expected.
* This transformer will always output Buffers.
* For all audio to be processed, this stream has to be closed when finished.
*
* @param {object} [opts={}] - Options for the resampler
* @param {Type} opts.type - Converter type
* @param {number} opts.ratio - Default conversion ratio (output/input)
* @param {number} [opts.channels=1] - Number of (interleaved) channels
* @param {boolean} [opts.unsafe=false] - Mark this resampler as unsafe.<br>
* Resamplers in unsafe mode generally operate faster and use less memory.<br>
* Warning: {@link #destroy()} MUST be called on an unsafe resampler before
* it is garbage collected. Otherwise it will leak memory. It is called
* automatically if the underlying transform stream ends ('end' event).
* @constructor
*/
function Resampler (opts) {
// Allow use without new
if (!(this instanceof Resampler)) return new Resampler(opts)
Transform.call(this, {})
opts = extend({
type: Type.SINC_MEDIUM_QUALITY,
ratio: 1,
channels: 1,
unsafe: false
}, opts)
if (opts.channels < 1) {
throw e('channels must be greater than 1')
}
if (typeof opts.type !== 'number' || opts.type < 0 || opts.type > 4) {
throw new TypeError('opts.type must be a number in [0, 4]')
}
if (typeof opts.ratio !== 'number' || opts.ratio <= 0) {
throw new TypeError('opts.ratio must be a positive number')
}
this._type = opts.type
this._ratio = opts.ratio
this._channels = opts.channels
this._unsafe = opts.unsafe
this._inputBufferUsed = 0
this._inputBufferSize = 0
this._inputBuffer = 0
if (this._unsafe) {
// In unsafe mode, the global libsamplerate instance is used
this._lib = lib.instance
this.on('end', this.destroy.bind(this))
} else {
// In normal mode, every resampler gets its own instance of the lib
this._lib = lib()
}
// Create SRC state
var p_err = this._lib._malloc(4)
try {
this._state = this._lib._src_new(this._type, this._channels, p_err)
if (this._state === 0) {
throw this._error(p_err)
}
} finally {
this._lib._free(p_err)
}
}
util.inherits(Resampler, Transform)
/**
* Handles an error returned by SRC.
*
* @param {number} p_err - Pointer to the error code
* @returns {Error} A new Error object ready to be thrown
*/
Resampler.prototype._error = function (p_err) {
var err = this._lib.HEAPU32[p_err >> 2]
var str = this._lib._src_strerror(err)
if (str === 0) {
return new Error('unknown error')
} else {
return new Error(this._lib.Pointer_stringify(str))
}
}
/**
* Destroy this resampler.
* This method should only be called if this resampler is in unsafe mode.
* Any subsequent resampling will result in undefined behavior.
*/
Resampler.prototype.destroy = function () {
if (this._unsafe && this._lib) {
this._lib._free(this._inputBuffer)
this._state = this._lib._src_delete(this._state)
this._lib = null
}
}
Resampler.prototype._addInput = function (buf) {
var HEAPU8 = this._lib.HEAPU8
// Dynamically resize input buffer if too small
if (buf.length + this._inputBufferUsed > this._inputBufferSize) {
this._inputBufferSize = buf.length + this._inputBufferUsed
// Create new buffer
var newBuffer = this._lib._malloc(this._inputBufferSize)
// Copy old data to new buffer
HEAPU8.set(HEAPU8.subarray(this._inputBuffer,
this._inputBuffer + this._inputBufferUsed), newBuffer)
// Replace old buffer
this._lib._free(this._inputBuffer)
this._inputBuffer = newBuffer
}
// Copy new data to input buffer
HEAPU8.set(buf, this._inputBuffer + this._inputBufferUsed)
this._inputBufferUsed += buf.length
}
Resampler.prototype._transform = function (chunk, encoding, callback) {
try {
this._process(chunk, false)
} catch (err) {
return callback(err)
}
callback(null)
}
Resampler.prototype._flush = function (callback) {
try {
this._process(Buffer.alloc(0), true)
} catch (err) {
return callback(err)
}
callback(null)
}
Resampler.prototype._process = function (chunk, end) {
var ratio = this._ratio
// Handle object mode
if (!(chunk instanceof Buffer)) {
if (!chunk.data || !(chunk.data instanceof Buffer)) {
throw new TypeError('chunk does not have a data property')
}
if (chunk.ratio) {
ratio = chunk.ratio
}
chunk = chunk.data
}
this._addInput(chunk)
// Prepare data struct
var outputFrames = 1 << 20 // Arbitrary value
var p_data_out = this._lib._malloc(outputFrames * 4 * this._channels)
var p_data = this._lib._malloc(40)
this._lib.HEAP32[(p_data + 4) >> 2] = p_data_out
this._lib.HEAP32[(p_data + 12) >> 2] = outputFrames
this._lib.HEAP32[(p_data + 24) >> 2] = 0
this._lib.HEAPF64[(p_data + 32) >> 3] = ratio
var inputBufferOffset = 0
while (true) {
// Set input pointer
this._lib.HEAP32[(p_data + 0) >> 2] =
this._inputBuffer + inputBufferOffset
// Set input length
this._lib.HEAP32[(p_data + 8) >> 2] =
(this._inputBufferUsed - inputBufferOffset) / 4 / this._channels
// Start processing
var err = this._lib._src_process(this._state, p_data)
if (err) {
throw this._error(err)
}
// Read used input frames
inputBufferOffset += this._lib.HEAP32[(p_data + 16) >> 2] * 4 * this._channels
// Read generated output frames
var len = this._lib.HEAP32[(p_data + 20) >> 2] * 4 * this._channels
if (len > 0) {
this.push(Buffer.from(this._lib.HEAPU8.slice(p_data_out, p_data_out + len)))
} else {
// Remove used samples from the input buffer
var inputBuffer = this._lib.HEAPU8.subarray(this._inputBuffer,
this._inputBuffer + this._inputBufferUsed)
inputBuffer.copyWithin(0, inputBufferOffset)
this._inputBufferUsed -= inputBufferOffset
break
}
}
this._lib._free(p_data_out)
this._lib._free(p_data)
}
Resampler.Type = Type
module.exports = Resampler
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(97).Buffer))
/***/ }),
/* 289 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(process, __dirname) {var Module = function(Module) {
Module = Module || {};
var b;b||(b=eval("(function() { try { return Module || {} } catch(e) { return {} } })()"));var d={},f;for(f in b)b.hasOwnProperty(f)&&(d[f]=b[f]);var m=!1,q=!1,r=!1,t=!1;
if(b.ENVIRONMENT)if("WEB"===b.ENVIRONMENT)m=!0;else if("WORKER"===b.ENVIRONMENT)q=!0;else if("NODE"===b.ENVIRONMENT)r=!0;else if("SHELL"===b.ENVIRONMENT)t=!0;else throw Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.");else m="object"===typeof window,q="function"===typeof importScripts,r="object"===typeof process&&"function"==="function"&&!m&&!q,t=!m&&!r&&!q;
if(r){b.print||(b.print=console.log);b.printErr||(b.printErr=console.warn);var u,v;b.read=function(a,c){u||(u=null);v||(v=__webpack_require__(290));a=v.normalize(a);var e=u.readFileSync(a);e||a==v.resolve(a)||(a=path.join(__dirname,"..","src",a),e=u.readFileSync(a));e&&!c&&(e=e.toString());return e};b.readBinary=function(a){a=b.read(a,!0);a.buffer||(a=new Uint8Array(a));assert(a.buffer);return a};b.load=function(a){aa(read(a))};b.thisProgram||(b.thisProgram=1<process.argv.length?process.argv[1].replace(/\\/g,
"/"):"unknown-program");b.arguments=process.argv.slice(2);"undefined"!==typeof module&&(module.exports=b);process.on("uncaughtException",function(a){if(!(a instanceof w))throw a;});b.inspect=function(){return"[Emscripten Module object]"}}else if(t)b.print||(b.print=print),"undefined"!=typeof printErr&&(b.printErr=printErr),b.read="undefined"!=typeof read?read:function(){throw"no read() available (jsc?)";},b.readBinary=function(a){if("function"===typeof readbuffer)return new Uint8Array(readbuffer(a));
a=read(a,"binary");assert("object"===typeof a);return a},"undefined"!=typeof scriptArgs?b.arguments=scriptArgs:"undefined"!=typeof arguments&&(b.arguments=arguments),eval("if (typeof gc === 'function' && gc.toString().indexOf('[native code]') > 0) var gc = undefined");else if(m||q)b.read=function(a){var c=new XMLHttpRequest;c.open("GET",a,!1);c.send(null);return c.responseText},b.readAsync=function(a,c,e){var g=new XMLHttpRequest;g.open("GET",a,!0);g.responseType="arraybuffer";g.onload=function(){200==
g.status||0==g.status&&g.response?c(g.response):e()};g.onerror=e;g.send(null)},"undefined"!=typeof arguments&&(b.arguments=arguments),"undefined"!==typeof console?(b.print||(b.print=function(a){console.log(a)}),b.printErr||(b.printErr=function(a){console.warn(a)})):b.print||(b.print=function(){}),q&&(b.load=importScripts),"undefined"===typeof b.setWindowTitle&&(b.setWindowTitle=function(a){document.title=a});else throw"Unknown runtime environment. Where are we?";function aa(a){eval.call(null,a)}
!b.load&&b.read&&(b.load=function(a){aa(b.read(a))});b.print||(b.print=function(){});b.printErr||(b.printErr=b.print);b.arguments||(b.arguments=[]);b.thisProgram||(b.thisProgram="./this.program");b.print=b.print;b.k=b.printErr;b.preRun=[];b.postRun=[];for(f in d)d.hasOwnProperty(f)&&(b[f]=d[f]);
var d=void 0,y={B:function(a){tempRet0=a},w:function(){return tempRet0},m:function(){return x},f:function(a){x=a},q:function(a){switch(a){case "i1":case "i8":return 1;case "i16":return 2;case "i32":return 4;case "i64":return 8;case "float":return 4;case "double":return 8;default:return"*"===a[a.length-1]?y.g:"i"===a[0]?(a=parseInt(a.substr(1)),assert(0===a%8),a/8):0}},v:function(a){return Math.max(y.q(a),y.g)},C:16,Q:function(a,c){"double"===c||"i64"===c?a&7&&(assert(4===(a&7)),a+=4):assert(0===(a&
3));return a},K:function(a,c,e){return e||"i64"!=a&&"double"!=a?a?Math.min(c||(a?y.v(a):0),y.g):Math.min(c,8):8},i:function(a,c,e){return e&&e.length?(e.splice||(e=Array.prototype.slice.call(e)),e.splice(0,0,c),b["dynCall_"+a].apply(null,e)):b["dynCall_"+a].call(null,c)},d:[],r:function(a){for(var c=0;c<y.d.length;c++)if(!y.d[c])return y.d[c]=a,2*(1+c);throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.";},A:function(a){y.d[(a-2)/2]=null},c:function(a){y.c.l||
(y.c.l={});y.c.l[a]||(y.c.l[a]=1,b.k(a))},j:{},M:function(a,c){assert(c);y.j[c]||(y.j[c]={});var e=y.j[c];e[a]||(e[a]=function(){return y.i(c,a,arguments)});return e[a]},L:function(){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work";},e:function(a){var c=x;x=x+a|0;x=x+15&-16;return c},n:function(a){var c=z;z=z+a|0;z=z+15&-16;return c},b:function(a){var c=D;D=D+a|0;D=D+15&-16;if(a=D>=E)F("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+
E+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 "),a=!0;return a?(D=c,0):c},p:function(a,c){return Math.ceil(a/(c?c:16))*(c?c:16)},P:function(a,c,e){return e?+(a>>>0)+4294967296*+(c>>>0):+(a>>>0)+4294967296*+(c|0)},a:8,g:4,D:0};b.Runtime=y;y.addFunction=y.r;
y.removeFunction=y.A;var G=!1;function assert(a,c){a||F("Assertion failed: "+c)}function ba(a){var c=b["_"+a];if(!c)try{c=eval("_"+a)}catch(e){}assert(c,"Cannot call unknown function "+a+" (perhaps LLVM optimizations or closure removed it?)");return c}var ca,da;
(function(){function a(a){a=a.toString().match(h).slice(1);return{arguments:a[0],body:a[1],returnValue:a[2]}}function c(){if(!l){l={};for(var c in e)e.hasOwnProperty(c)&&(l[c]=a(e[c]))}}var e={stackSave:function(){y.m()},stackRestore:function(){y.f()},arrayToC:function(a){var c=y.e(a.length);ea(a,c);return c},stringToC:function(a){var c=0;null!==a&&void 0!==a&&0!==a&&(c=y.e((a.length<<2)+1),fa(a,c));return c}},g={string:e.stringToC,array:e.arrayToC};da=function(a,c,e,h,l){a=ba(a);var B=[],C=0;if(h)for(var p=
0;p<h.length;p++){var O=g[e[p]];O?(0===C&&(C=y.m()),B[p]=O(h[p])):B[p]=h[p]}e=a.apply(null,B);"string"===c&&(e=H(e));if(0!==C){if(l&&l.async){EmterpreterAsync.F.push(function(){y.f(C)});return}y.f(C)}return e};var h=/^function\s*[a-zA-Z$_0-9]*\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/,l=null;ca=function(e,g,h){h=h||[];var A=ba(e);e=h.every(function(a){return"number"===a});var na="string"!==g;if(na&&e)return A;var B=h.map(function(a,c){return"$"+c});g="(function("+B.join(",")+
") {";var C=h.length;if(!e){c();g+="var stack = "+l.stackSave.body+";";for(var p=0;p<C;p++){var O=B[p],I=h[p];"number"!==I&&(I=l[I+"ToC"],g+="var "+I.arguments+" = "+O+";",g+=I.body+";",g+=O+"=("+I.returnValue+");")}}h=a(function(){return A}).returnValue;g+="var ret = "+h+"("+B.join(",")+");";na||(h=a(function(){return H}).returnValue,g+="ret = "+h+"(ret);");e||(c(),g+=l.stackRestore.body.replace("()","(stack)")+";");return eval(g+"return ret})")}})();b.ccall=da;b.cwrap=ca;
function ga(a,c,e){e=e||"i8";"*"===e.charAt(e.length-1)&&(e="i32");switch(e){case "i1":J[a>>0]=c;break;case "i8":J[a>>0]=c;break;case "i16":K[a>>1]=c;break;case "i32":L[a>>2]=c;break;case "i64":tempI64=[c>>>0,(tempDouble=c,1<=+ha(tempDouble)?0<tempDouble?(ia(+ja(tempDouble/4294967296),4294967295)|0)>>>0:~~+ka((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)];L[a>>2]=tempI64[0];L[a+4>>2]=tempI64[1];break;case "float":M[a>>2]=c;break;case "double":P[a>>3]=c;break;default:F("invalid type for setValue: "+
e)}}b.setValue=ga;function la(a,c){c=c||"i8";"*"===c.charAt(c.length-1)&&(c="i32");switch(c){case "i1":return J[a>>0];case "i8":return J[a>>0];case "i16":return K[a>>1];case "i32":return L[a>>2];case "i64":return L[a>>2];case "float":return M[a>>2];case "double":return P[a>>3];default:F("invalid type for setValue: "+c)}return null}b.getValue=la;b.ALLOC_NORMAL=0;b.ALLOC_STACK=1;b.ALLOC_STATIC=2;b.ALLOC_DYNAMIC=3;b.ALLOC_NONE=4;
function Q(a,c,e,g){var h,l;"number"===typeof a?(h=!0,l=a):(h=!1,l=a.length);var k="string"===typeof c?c:null;e=4==e?g:["function"===typeof R?R:y.n,y.e,y.n,y.b][void 0===e?2:e](Math.max(l,k?1:c.length));if(h){g=e;assert(0==(e&3));for(a=e+(l&-4);g<a;g+=4)L[g>>2]=0;for(a=e+l;g<a;)J[g++>>0]=0;return e}if("i8"===k)return a.subarray||a.slice?S.set(a,e):S.set(new Uint8Array(a),e),e;g=0;for(var N,n;g<l;){var A=a[g];"function"===typeof A&&(A=y.N(A));h=k||c[g];0===h?g++:("i64"==h&&(h="i32"),ga(e+g,A,h),n!==
h&&(N=y.q(h),n=h),g+=N)}return e}b.allocate=Q;b.getMemory=function(a){return ma?"undefined"!==typeof T&&!T.o||!U?y.b(a):R(a):y.n(a)};function H(a,c){if(0===c||!a)return"";for(var e=0,g,h=0;;){g=S[a+h>>0];e|=g;if(0==g&&!c)break;h++;if(c&&h==c)break}c||(c=h);g="";if(128>e){for(;0<c;)e=String.fromCharCode.apply(String,S.subarray(a,a+Math.min(c,1024))),g=g?g+e:e,a+=1024,c-=1024;return g}return b.UTF8ToString(a)}b.Pointer_stringify=H;
b.AsciiToString=function(a){for(var c="";;){var e=J[a++>>0];if(!e)return c;c+=String.fromCharCode(e)}};b.stringToAscii=function(a,c){return oa(a,c,!1)};
function pa(a,c){for(var e,g,h,l,k,N,n="";;){e=a[c++];if(!e)return n;e&128?(g=a[c++]&63,192==(e&224)?n+=String.fromCharCode((e&31)<<6|g):(h=a[c++]&63,224==(e&240)?e=(e&15)<<12|g<<6|h:(l=a[c++]&63,240==(e&248)?e=(e&7)<<18|g<<12|h<<6|l:(k=a[c++]&63,248==(e&252)?e=(e&3)<<24|g<<18|h<<12|l<<6|k:(N=a[c++]&63,e=(e&1)<<30|g<<24|h<<18|l<<12|k<<6|N))),65536>e?n+=String.fromCharCode(e):(e-=65536,n+=String.fromCharCode(55296|e>>10,56320|e&1023)))):n+=String.fromCharCode(e)}}b.UTF8ArrayToString=pa;
b.UTF8ToString=function(a){return pa(S,a)};
function qa(a,c,e,g){if(!(0<g))return 0;var h=e;g=e+g-1;for(var l=0;l<a.length;++l){var k=a.charCodeAt(l);55296<=k&&57343>=k&&(k=65536+((k&1023)<<10)|a.charCodeAt(++l)&1023);if(127>=k){if(e>=g)break;c[e++]=k}else{if(2047>=k){if(e+1>=g)break;c[e++]=192|k>>6}else{if(65535>=k){if(e+2>=g)break;c[e++]=224|k>>12}else{if(2097151>=k){if(e+3>=g)break;c[e++]=240|k>>18}else{if(67108863>=k){if(e+4>=g)break;c[e++]=248|k>>24}else{if(e+5>=g)break;c[e++]=252|k>>30;c[e++]=128|k>>24&63}c[e++]=128|k>>18&63}c[e++]=128|
k>>12&63}c[e++]=128|k>>6&63}c[e++]=128|k&63}}c[e]=0;return e-h}b.stringToUTF8Array=qa;b.stringToUTF8=function(a,c,e){return qa(a,S,c,e)};function ra(a){for(var c=0,e=0;e<a.length;++e){var g=a.charCodeAt(e);55296<=g&&57343>=g&&(g=65536+((g&1023)<<10)|a.charCodeAt(++e)&1023);127>=g?++c:c=2047>=g?c+2:65535>=g?c+3:2097151>=g?c+4:67108863>=g?c+5:c+6}return c}b.lengthBytesUTF8=ra;
function sa(){return ta().replace(/__Z[\w\d_]+/g,function(a){var c;a:{if(b.___cxa_demangle)try{var e=R(a.length);fa(a.substr(1),e);var g=R(4),h=b.___cxa_demangle(e,0,0,g);if(0===la(g,"i32")&&h){c=H(h);break a}}catch(l){c=a;break a}finally{e&&ua(e),g&&ua(g),h&&ua(h)}y.c("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling");c=a}return a===c?a:a+" ["+c+"]"})}
function ta(){var a=Error();if(!a.stack){try{throw Error(0);}catch(c){a=c}if(!a.stack)return"(no stack trace available)"}return a.stack.toString()}b.stackTrace=function(){return sa()};function va(){var a=D;0<a%4096&&(a+=4096-a%4096);return a}for(var buffer,J,S,K,wa,L,xa,M,P,ya=0,z=0,ma=!1,za=0,x=0,Aa=0,D=0,Ba=b.TOTAL_STACK||5242880,E=b.TOTAL_MEMORY||16777216,V=65536;V<E||V<2*Ba;)V=16777216>V?2*V:V+16777216;V!==E&&(E=V);b.buffer?buffer=b.buffer:buffer=new ArrayBuffer(E);b.HEAP8=J=new Int8Array(buffer);
b.HEAP16=K=new Int16Array(buffer);b.HEAP32=L=new Int32Array(buffer);b.HEAPU8=S=new Uint8Array(buffer);b.HEAPU16=wa=new Uint16Array(buffer);b.HEAPU32=xa=new Uint32Array(buffer);b.HEAPF32=M=new Float32Array(buffer);b.HEAPF64=P=new Float64Array(buffer);L[0]=255;if(255!==S[0]||0!==S[3])throw"Typed arrays 2 must be run on a little-endian system";b.HEAP=void 0;b.buffer=buffer;b.HEAP8=J;b.HEAP16=K;b.HEAP32=L;b.HEAPU8=S;b.HEAPU16=wa;b.HEAPU32=xa;b.HEAPF32=M;b.HEAPF64=P;
function W(a){for(;0<a.length;){var c=a.shift();if("function"==typeof c)c();else{var e=c.J;"number"===typeof e?void 0===c.h?y.i("v",e):y.i("vi",e,[c.h]):e(void 0===c.h?null:c.h)}}}var Ca=[],Da=[],Ea=[],Fa=[],Ga=[],U=!1;function Ha(a){Ca.unshift(a)}b.addOnPreRun=Ha;b.addOnInit=function(a){Da.unshift(a)};b.addOnPreMain=function(a){Ea.unshift(a)};b.addOnExit=function(a){Fa.unshift(a)};function Ia(a){Ga.unshift(a)}b.addOnPostRun=Ia;
function Ja(a,c,e){e=Array(0<e?e:ra(a)+1);a=qa(a,e,0,e.length);c&&(e.length=a);return e}b.intArrayFromString=Ja;b.intArrayToString=function(a){for(var c=[],e=0;e<a.length;e++){var g=a[e];255<g&&(g&=255);c.push(String.fromCharCode(g))}return c.join("")};function fa(a,c,e){a=Ja(a,e);for(e=0;e<a.length;)J[c+e>>0]=a[e],e+=1}b.writeStringToMemory=fa;function ea(a,c){for(var e=0;e<a.length;e++)J[c++>>0]=a[e]}b.writeArrayToMemory=ea;
function oa(a,c,e){for(var g=0;g<a.length;++g)J[c++>>0]=a.charCodeAt(g);e||(J[c>>0]=0)}b.writeAsciiToMemory=oa;Math.imul&&-5===Math.imul(4294967295,5)||(Math.imul=function(a,c){var e=a&65535,g=c&65535;return e*g+((a>>>16)*g+e*(c>>>16)<<16)|0});Math.O=Math.imul;Math.clz32||(Math.clz32=function(a){a=a>>>0;for(var c=0;32>c;c++)if(a&1<<31-c)return c;return 32});Math.H=Math.clz32;var ha=Math.abs,ka=Math.ceil,ja=Math.floor,ia=Math.min,X=0,Ka=null,Y=null;
b.addRunDependency=function(){X++;b.monitorRunDependencies&&b.monitorRunDependencies(X)};b.removeRunDependency=function(){X--;b.monitorRunDependencies&&b.monitorRunDependencies(X);if(0==X&&(null!==Ka&&(clearInterval(Ka),Ka=null),Y)){var a=Y;Y=null;a()}};b.preloadedImages={};b.preloadedAudios={};ya=8;z=ya+1462176;Da.push();
Q([128,0,0,0,96,219,84,63,140,215,84,63,19,204,84,63,244,184,84,63,49,158,84,63,203,123,84,63,197,81,84,63,34,32,84,63,228,230,83,63,16,166,83,63,170,93,83,63,183,13,83,63,59,182,82,63,61,87,82,63,194,240,81,63,210,130,81,63,116,13,81,63,175,144,80,63,140,12,80,63,19,129,79,63,77,238,78,63,68,84,78,63,3,179,77,63,146,10,77,63,255,90,76,63,83,164,75,63,155,230,74,63,228,33,74,63,58,86,73,63,170,131,72,63,67,170,71,63,18,202,70,63,38,227,69,63,142,245,68,63,89,1,68,63,151,6,67,63,90,5,66,63,176,253,
64,63,172,239,63,63,94,219,62,63,218,192,61,63,48,160,60,63,117,121,59,63,186,76,58,63,19,26,57,63,148,225,55,63,82,163,54,63,96,95,53,63,211,21,52,63,193,198,50,63,63,114,49,63,99,24,48,63,68,185,46,63,247,84,45,63,148,235,43,63,49,125,42,63,230,9,41,63,202,145,39,63,247,20,38,63,131,147,36,63,135,13,35,63,28,131,33,63,91,244,31,63,94,97,30,63,61,202,28,63,19,47,27,63,249,143,25,63,9,237,23,63,95,70,22,63,19,156,20,63,66,238,18,63,6,61,17,63,121,136,15,63,184,208,13,63,221,21,12,63,5,88,10,63,74,
151,8,63,201,211,6,63,158,13,5,63,228,68,3,63,184,121,1,63,107,88,255,62,243,184,251,62,64,21,248,62,140,109,244,62,15,194,240,62,3,19,237,62,160,96,233,62,33,171,229,62,190,242,225,62,178,55,222,62,53,122,218,62,129,186,214,62,207,248,210,62,90,53,207,62,90,112,203,62,9,170,199,62,160,226,195,62,88,26,192,62,106,81,188,62,16,136,184,62,130,190,180,62,249,244,176,62,172,43,173,62,214,98,169,62,173,154,165,62,105,211,161,62,67,13,158,62,113,72,154,62,42,133,150,62,166,195,146,62,27,4,143,62,191,70,
139,62,200,139,135,62,107,211,131,62,221,29,128,62,169,214,120,62,9,120,113,62,66,32,106,62,188,207,98,62,220,134,91,62,9,70,84,62,166,13,77,62,23,222,69,62,191,183,62,62,255,154,55,62,55,136,48,62,199,127,41,62,13,130,34,62,103,143,27,62,48,168,20,62,195,204,13,62,122,253,6,62,174,58,0,62,108,9,243,61,208,183,229,61,49,129,216,61,54,102,203,61,132,103,190,61,189,133,177,61,126,193,164,61,102,27,152,61,12,148,139,61,16,88,126,61,218,199,101,61,152,120,77,61,103,107,53,61,91,161,29,61,133,27,6,61,
220,181,221,60,53,193,175,60,15,91,130,60,176,10,43,60,204,7,165,59,216,82,155,185,106,26,182,187,126,16,48,188,138,240,129,188,218,61,171,188,155,238,211,188,69,1,252,188,48,186,17,189,63,35,37,189,31,59,56,189,42,1,75,189,187,116,93,189,56,149,111,189,7,177,128,189,86,109,137,189,71,255,145,189,154,102,154,189,19,163,162,189,119,180,170,189,146,154,178,189,50,85,186,189,40,228,193,189,72,71,201,189,108,126,208,189,110,137,215,189,46,104,222,189,143,26,229,189,118,160,235,189,206,249,241,189,131,
38,248,189,134,38,254,189,229,252,1,190,36,208,4,190,252,140,7,190,109,51,10,190,120,195,12,190,31,61,15,190,101,160,17,190,82,237,19,190,235,35,22,190,59,68,24,190,76,78,26,190,41,66,28,190,226,31,30,190,134,231,31,190,38,153,33,190,212,52,35,190,165,186,36,190,175,42,38,190,9,133,39,190,204,201,40,190,18,249,41,190,248,18,43,190,155,23,44,190,26,7,45,190,149,225,45,190,46,167,46,190,9,88,47,190,73,244,47,190,21,124,48,190,148,239,48,190,239,78,49,190,80,154,49,190,227,209,49,190,211,245,49,190,
80,6,50,190,135,3,50,190,170,237,49,190,235,196,49,190,123,137,49,190,143,59,49,190,91,219,48,190,24,105,48,190,250,228,47,190,59,79,47,190,21,168,46,190,193,239,45,190,124,38,45,190,129,76,44,190,14,98,43,190,98,103,42,190,187,92,41,190,90,66,40,190,128,24,39,190,110,223,37,190,103,151,36,190,175,64,35,190,137,219,33,190,59,104,32,190,10,231,30,190,60,88,29,190,24,188,27,190,229,18,26,190,237,92,24,190,119,154,22,190,204,203,20,190,55,241,18,190,1,11,17,190,118,25,15,190,223,28,13,190,138,21,11,
190,193,3,9,190,209,231,6,190,7,194,4,190,175,146,2,190,22,90,0,190,21,49,252,189,178,156,247,189,160,247,242,189,122,66,238,189,221,125,233,189,100,170,228,189,172,200,223,189,83,217,218,189,244,220,213,189,44,212,208,189,152,191,203,189,213,159,198,189,127,117,193,189,49,65,188,189,137,3,183,189,33,189,177,189,149,110,172,189,127,24,167,189,123,187,161,189,33,88,156,189,11,239,150,189,210,128,145,189,14,14,140,189,86,151,134,189,64,29,129,189,197,64,119,189,165,66,108,189,71,65,97,189,209,61,86,
189,104,57,75,189,45,53,64,189,65,50,53,189,193,49,42,189,200,52,31,189,111,60,20,189,204,73,9,189,231,187,252,188,237,243,230,188,198,61,209,188,138,155,187,188,73,15,166,188,15,155,144,188,195,129,118,188,125,5,76,188,62,197,33,188,213,137,239,187,177,16,156,187,68,77,18,187,28,206,146,57,0,197,53,59,252,242,171,59,53,87,252,59,21,4,38,60,124,127,77,60,107,154,116,60,200,168,141,60,213,208,160,60,193,195,179,60,251,127,198,60,251,3,217,60,62,78,235,60,76,93,253,60,218,151,7,61,8,98,16,61,128,12,
25,61,150,150,33,61,165,255,41,61,8,71,50,61,36,108,58,61,93,110,66,61,31,77,74,61,217,7,82,61,0,158,89,61,12,15,97,61,123,90,104,61,206,127,111,61,140,126,118,61,64,86,125,61,61,3,130,61,104,71,133,61,109,119,136,61,26,147,139,61,66,154,142,61,184,140,145,61,82,106,148,61,233,50,151,61,87,230,153,61,122,132,156,61,50,13,159,61,95,128,161,61,230,221,163,61,175,37,166,61,162,87,168,61,169,115,170,61,180,121,172,61,178,105,174,61,150,67,176,61,83,7,178,61,225,180,179,61,57,76,181,61,87,205,182,61,57,
56,184,61,222,140,185,61,72,203,186,61,126,243,187,61,132,5,189,61,100,1,190,61,42,231,190,61,226,182,191,61,156,112,192,61,106,20,193,61,95,162,193,61,145,26,194,61,24,125,194,61,14,202,194,61,143,1,195,61,184,35,195,61,170,48,195,61,135,40,195,61,113,11,195,61,144,217,194,61,11,147,194,61,10,56,194,61,186,200,193,61,71,69,193,61,225,173,192,61,183,2,192,61,253,67,191,61,230,113,190,61,168,140,189,61,121,148,188,61,148,137,187,61,51,108,186,61,144,60,185,61,235,250,183,61,129,167,182,61,147,66,181,
61,100,204,179,61,53,69,178,61,76,173,176,61,238,4,175,61,99,76,173,61,242,131,171,61,229,171,169,61,134,196,167,61,34,206,165,61,5,201,163,61,125,181,161,61,217,147,159,61,105,100,157,61,125,39,155,61,103,221,152,61,122,134,150,61,8,35,148,61,103,179,145,61,236,55,143,61,235,176,140,61,187,30,138,61,179,129,135,61,42,218,132,61,122,40,130,61,242,217,126,61,4,80,121,61,220,179,115,61,46,6,110,61,175,71,104,61,19,121,98,61,17,155,92,61,96,174,86,61,183,179,80,61,204,171,74,61,87,151,68,61,16,119,62,
61,176,75,56,61,237,21,50,61,129,214,43,61,35,142,37,61,139,61,31,61,112,229,24,61,138,134,18,61,144,33,12,61,56,183,5,61,112,144,254,60,140,170,241,60,45,190,228,60,188,204,215,60,158,215,202,60,57,224,189,60,239,231,176,60,35,240,163,60,51,250,150,60,123,7,138,60,173,50,122,60,60,98,96,60,75,160,70,60,130,239,44,60,128,82,19,60,189,151,243,59,99,188,192,59,13,24,142,59,144,95,55,59,80,34,166,58,202,137,133,185,156,187,231,186,237,106,86,187,134,39,156,187,97,192,204,187,97,251,252,187,249,105,22,
188,201,34,46,188,230,165,69,188,32,241,92,188,80,2,116,188,172,107,133,188,17,183,144,188,82,226,155,188,110,236,166,188,105,212,177,188,76,153,188,188,37,58,199,188,7,182,209,188,12,12,220,188,80,59,230,188,247,66,240,188,42,34,250,188,10,236,1,189,246,177,6,189,117,98,11,189,38,253,15,189,170,129,20,189,168,239,24,189,198,70,29,189,176,134,33,189,20,175,37,189,161,191,41,189,11,184,45,189,9,152,49,189,84,95,53,189,169,13,57,189,198,162,60,189,111,30,64,189,104,128,67,189,123,200,70,189,115,246,
73,189,30,10,77,189,78,3,80,189,215,225,82,189,145,165,85,189,87,78,88,189,7,220,90,189,128,78,93,189,168,165,95,189,101,225,97,189,161,1,100,189,73,6,102,189,77,239,103,189,159,188,105,189,53,110,107,189,9,4,109,189,22,126,110,189,92,220,111,189,219,30,113,189,153,69,114,189,157,80,115,189,241,63,116,189,163,19,117,189,196,203,117,189,101,104,118,189,158,233,118,189,134,79,119,189,56,154,119,189,212,201,119,189,121,222,119,189,76,216,119,189,113,183,119,189,19,124,119,189,92,38,119,189,122,182,118,
189,157,44,118,189,249,136,117,189,194,203,116,189,49,245,115,189,127,5,115,189,234,252,113,189,175,219,112,189,16,162,111,189,80,80,110,189,181,230,108,189,134,101,107,189,14,205,105,189,151,29,104,189,112,87,102,189,233,122,100,189,83,136,98,189,3,128,96,189,78,98,94,189,139,47,92,189,19,232,89,189,66,140,87,189,116,28,85,189,6,153,82,189,90,2,80,189,208,88,77,189,203,156,74,189,176,206,71,189,227,238,68,189,204,253,65,189,212,251,62,189,99,233,59,189,229,198,56,189,197,148,53,189,113,83,50,189,
86,3,47,189,227,164,43,189,136,56,40,189,182,190,36,189,223,55,33,189,118,164,29,189,236,4,26,189,183,89,22,189,74,163,18,189,27,226,14,189,160,22,11,189,77,65,7,189,155,98,3,189,0,246,254,188,230,21,247,188,215,37,239,188,195,38,231,188,153,25,223,188,74,255,214,188,197,216,206,188,251,166,198,188,221,106,190,188,89,37,182,188,97,215,173,188,227,129,165,188,206,37,157,188,17,196,148,188,153,93,140,188,85,243,131,188,93,12,119,188,38,46,102,188,216,77,85,188,69,109,68,188,61,142,51,188,143,178,34,
188,4,220,17,188,100,12,1,188,232,138,224,187,235,17,191,187,76,177,157,187,0,217,120,187,232,141,54,187,53,16,233,186,70,57,75,186,171,140,105,57,69,77,159,58,177,84,16,59,132,156,80,59,222,59,136,59,8,240,167,59,165,103,199,59,164,159,230,59,128,202,2,60,95,34,18,60,247,85,33,60,216,99,48,60,148,74,63,60,199,8,78,60,16,157,92,60,24,6,107,60,138,66,121,60,141,168,131,60,66,152,138,60,195,111,145,60,118,46,152,60,192,211,158,60,14,95,165,60,205,207,171,60,112,37,178,60,108,95,184,60,59,125,190,60,
89,126,196,60,72,98,202,60,139,40,208,60,172,208,213,60,55,90,219,60,187,196,224,60,205,15,230,60,5,59,235,60,254,69,240,60,89,48,245,60,184,249,249,60,197,161,254,60,21,148,1,61,76,198,3,61,98,231,5,61,50,247,7,61,154,245,9,61,123,226,11,61,182,189,13,61,48,135,15,61,208,62,17,61,124,228,18,61,32,120,20,61,168,249,21,61,3,105,23,61,32,198,24,61,243,16,26,61,112,73,27,61,141,111,28,61,66,131,29,61,140,132,30,61,101,115,31,61,206,79,32,61,197,25,33,61,79,209,33,61,111,118,34,61,43,9,35,61,141,137,
35,61,158,247,35,61,108,83,36,61,3,157,36,61,117,212,36,61,210,249,36,61,47,13,37,61,161,14,37,61,65,254,36,61,38,220,36,61,108,168,36,61,48,99,36,61,144,12,36,61,173,164,35,61,167,43,35,61,164,161,34,61,200,6,34,61,57,91,33,61,33,159,32,61,170,210,31,61,254,245,30,61,75,9,30,61,192,12,29,61,140,0,28,61,226,228,26,61,243,185,25,61,245,127,24,61,28,55,23,61,160,223,21,61,186,121,20,61,162,5,19,61,147,131,17,61,202,243,15,61,131,86,14,61,253,171,12,61,120,244,10,61,50,48,9,61,111,95,7,61,113,130,5,
61,123,153,3,61,209,164,1,61,115,73,255,60,244,50,251,60,180,6,247,60,66,197,242,60,49,111,238,60,18,5,234,60,122,135,229,60,254,246,224,60,54,84,220,60,186,159,215,60,34,218,210,60,10,4,206,60,11,30,201,60,196,40,196,60,208,36,191,60,205,18,186,60,91,243,180,60,24,199,175,60,164,142,170,60,159,74,165,60,170,251,159,60,103,162,154,60,119,63,149,60,122,211,143,60,20,95,138,60,229,226,132,60,32,191,126,60,109,171,115,60,245,139,104,60,250,97,93,60,191,46,82,60,134,243,70,60,144,177,59,60,30,106,48,
60,109,30,37,60,190,207,25,60,75,127,14,60,81,46,3,60,18,188,239,59,86,31,217,59,221,136,194,59,13,251,171,59,75,120,149,59,242,5,126,59,228,58,81,59,25,148,36,59,110,44,240,58,172,139,151,58,48,60,253,57,102,3,68,185,156,179,95,186,66,180,198,186,133,131,14,187,193,100,57,187,146,249,99,187,224,30,135,187,146,22,156,187,209,225,176,187,153,126,197,187,235,234,217,187,210,36,238,187,48,21,1,188,215,252,10,188,113,200,20,188,17,119,30,188,211,7,40,188,213,121,49,188,57,204,58,188,39,254,67,188,202,
14,77,188,84,253,85,188,249,200,94,188,244,112,103,188,132,244,111,188,237,82,120,188,188,69,128,188,185,78,132,188,24,68,136,188,132,37,140,188,173,242,143,188,67,171,147,188,251,78,151,188,138,221,154,188,171,86,158,188,25,186,161,188,148,7,165,188,219,62,168,188,179,95,171,188,228,105,174,188,54,93,177,188,118,57,180,188,115,254,182,188,255,171,185,188,239,65,188,188,25,192,190,188,89,38,193,188,138,116,195,188,141,170,197,188,69,200,199,188,150,205,201,188,105,186,203,188,168,142,205,188,66,74,
207,188,39,237,208,188,73,119,210,188,160,232,211,188,35,65,213,188,206,128,214,188,159,167,215,188,151,181,216,188,185,170,217,188,13,135,218,188,153,74,219,188,107,245,219,188,144,135,220,188,26,1,221,188,26,98,221,188,168,170,221,188,219,218,221,188,206,242,221,188,160,242,221,188,112,218,221,188,96,170,221,188,149,98,221,188,54,3,221,188,109,140,220,188,102,254,219,188,78,89,219,188,87,157,218,188,179,202,217,188,150,225,216,188,56,226,215,188,209,204,214,188,158,161,213,188,220,96,212,188,201,
10,211,188,168,159,209,188,187,31,208,188,71,139,206,188,149,226,204,188,236,37,203,188,151,85,201,188,228,113,199,188,31,123,197,188,154,113,195,188,165,85,193,188,147,39,191,188,185,231,188,188,110,150,186,188,8,52,184,188,225,192,181,188,83,61,179,188,186,169,176,188,114,6,174,188,218,83,171,188,81,146,168,188,55,194,165,188,238,227,162,188,217,247,159,188,91,254,156,188,217,247,153,188,184,228,150,188,94,197,147,188,51,154,144,188,158,99,141,188,7,34,138,188,217,213,134,188,124,127,131,188,91,
31,128,188,194,107,121,188,243,134,114,188,31,145,107,188,32,139,100,188,205,117,93,188,1,82,86,188,149,32,79,188,99,226,71,188,70,152,64,188,25,67,57,188,181,227,49,188,247,122,42,188,183,9,35,188,210,144,27,188,31,17,20,188,123,139,12,188,188,0,5,188,121,227,250,187,168,190,235,187,179,148,220,187,71,103,205,187,15,56,190,187,178,8,175,187,217,218,159,187,39,176,144,187,61,138,129,187,118,213,100,187,121,166,70,187,182,138,40,187,89,133,10,187,12,51,217,186,183,148,157,186,194,107,68,186,159,114,
156,185,42,135,29,57,145,89,28,58,20,81,136,58,237,23,194,58,136,123,251,58,24,59,26,59,31,129,54,59,18,141,82,59,50,92,110,59,230,245,132,59,155,156,146,59,233,32,160,59,134,129,173,59,46,189,186,59,163,210,199,59,172,192,212,59,22,134,225,59,182,33,238,59,99,146,250,59,128,107,3,60,56,119,9,60,209,107,15,60,196,72,21,60,142,13,27,60,175,185,32,60,170,76,38,60,7,198,43,60,79,37,49,60,18,106,54,60,223,147,59,60,76,162,64,60,241,148,69,60,106,107,74,60,87,37,79,60,91,194,83,60,29,66,88,60,71,164,92,
60,136,232,96,60,145,14,101,60,24,22,105,60,215,254,108,60,138,200,112,60,243,114,116,60,213,253,119,60,250,104,123,60,45,180,126,60,159,239,128,60,1,117,130,60,40,234,131,60,0,79,133,60,123,163,134,60,136,231,135,60,28,27,137,60,43,62,138,60,173,80,139,60,153,82,140,60,236,67,141,60,161,36,142,60,182,244,142,60,44,180,143,60,5,99,144,60,69,1,145,60,241,142,145,60,16,12,146,60,172,120,146,60,208,212,146,60,135,32,147,60,226,91,147,60,239,134,147,60,192,161,147,60,106,172,147,60,0,167,147,60,154,145,
147,60,80,108,147,60,61,55,147,60,123,242,146,60,40,158,146,60,99,58,146,60,76,199,145,60,4,69,145,60,175,179,144,60,114,19,144,60,114,100,143,60,216,166,142,60,203,218,141,60,119,0,141,60,7,24,140,60,167,33,139,60,135,29,138,60,213,11,137,60,194,236,135,60,129,192,134,60,67,135,133,60,62,65,132,60,167,238,130,60,179,143,129,60,156,36,128,60,48,91,125,60,196,85,122,60,104,57,119,60,146,6,116,60,189,189,112,60,98,95,109,60,252,235,105,60,11,100,102,60,13,200,98,60,131,24,95,60,239,85,91,60,213,128,
87,60,186,153,83,60,36,161,79,60,155,151,75,60,166,125,71,60,209,83,67,60,164,26,63,60,172,210,58,60,117,124,54,60,140,24,50,60,127,167,45,60,220,41,41,60,52,160,36,60,21,11,32,60,15,107,27,60,180,192,22,60,147,12,18,60,63,79,13,60,73,137,8,60,65,187,3,60,118,203,253,59,142,18,244,59,239,76,234,59,188,123,224,59,22,160,214,59,33,187,204,59,254,205,194,59,207,217,184,59,179,223,174,59,202,224,164,59,50,222,154,59,7,217,144,59,103,210,134,59,214,150,121,59,88,138,101,59,131,129,81,59,129,126,61,59,
122,131,41,59,145,146,21,59,230,173,1,59,39,175,219,58,94,35,180,58,151,188,140,58,210,253,74,58,143,185,249,57,93,120,60,57,105,178,241,184,20,49,214,185,220,128,55,186,204,179,129,186,149,98,167,186,15,201,204,186,137,227,241,186,49,87,11,187,4,147,29,187,123,163,47,187,217,134,65,187,108,59,83,187,135,191,100,187,134,17,118,187,230,151,131,187,97,12,140,187,111,101,148,187,78,162,156,187,63,194,164,187,137,196,172,187,117,168,180,187,84,109,188,187,121,18,196,187,58,151,203,187,244,250,210,187,
9,61,218,187,221,92,225,187,219,89,232,187,112,51,239,187,18,233,245,187,55,122,252,187,46,115,1,188,130,150,4,188,218,166,7,188,253,163,10,188,178,141,13,188,195,99,16,188,255,37,19,188,52,212,21,188,53,110,24,188,214,243,26,188,237,100,29,188,86,193,31,188,234,8,34,188,138,59,36,188,21,89,38,188,112,97,40,188,127,84,42,188,45,50,44,188,99,250,45,188,15,173,47,188,34,74,49,188,140,209,50,188,68,67,52,188,64,159,53,188,122,229,54,188,238,21,56,188,155,48,57,188,130,53,58,188,166,36,59,188,13,254,
59,188,191,193,60,188,199,111,61,188,48,8,62,188,12,139,62,188,106,248,62,188,94,80,63,188,254,146,63,188,100,192,63,188,167,216,63,188,230,219,63,188,63,202,63,188,211,163,63,188,196,104,63,188,56,25,63,188,85,181,62,188,69,61,62,188,50,177,61,188,75,17,61,188,188,93,60,188,184,150,59,188,113,188,58,188,27,207,57,188,237,206,56,188,30,188,55,188,234,150,54,188,138,95,53,188,61,22,52,188,64,187,50,188,213,78,49,188,62,209,47,188,189,66,46,188,152,163,44,188,20,244,42,188,123,52,41,188,20,101,39,188,
43,134,37,188,10,152,35,188,255,154,33,188,89,143,31,188,102,117,29,188,118,77,27,188,220,23,25,188,234,212,22,188,243,132,20,188,76,40,18,188,74,191,15,188,67,74,13,188,143,201,10,188,133,61,8,188,126,166,5,188,212,4,3,188,223,88,0,188,247,69,251,187,8,199,245,187,167,53,240,187,142,146,234,187,117,222,228,187,22,26,223,187,45,70,217,187,115,99,211,187,166,114,205,187,129,116,199,187,193,105,193,187,35,83,187,187,99,49,181,187,64,5,175,187,118,207,168,187,194,144,162,187,227,73,156,187,147,251,149,
187,145,166,143,187,152,75,137,187,100,235,130,187,95,13,121,187,109,60,108,187,100,101,95,187,183,137,82,187,214,170,69,187,48,202,56,187,50,233,43,187,71,9,31,187,215,43,18,187,71,82,5,187,248,251,240,186,172,96,215,186,102,213,189,186,219,92,164,186,189,249,138,186,101,93,99,186,191,252,48,186,124,173,253,185,21,225,153,185,244,121,218,184,227,64,176,56,24,33,142,57,76,138,239,57,18,33,40,58,135,31,88,58,232,221,131,58,165,120,155,58,177,221,178,58,205,10,202,58,195,253,224,58,103,180,247,58,76,
22,7,59,32,50,18,59,167,44,29,59,225,4,40,59,209,185,50,59,130,74,61,59,2,182,71,59,101,251,81,59,198,25,92,59,69,16,102,59,8,222,111,59,57,130,121,59,5,126,129,59,90,37,134,59,185,182,138,59,196,49,143,59,32,150,147,59,117,227,151,59,109,25,156,59,183,55,160,59,4,62,164,59,8,44,168,59,122,1,172,59,21,190,175,59,151,97,179,59,193,235,182,59,87,92,186,59,32,179,189,59,231,239,192,59,122,18,196,59,169,26,199,59,73,8,202,59,49,219,204,59,61,147,207,59,73,48,210,59,54,178,212,59,234,24,215,59,75,100,
217,59,68,148,219,59,195,168,221,59,185,161,223,59,26,127,225,59,221,64,227,59,252,230,228,59,118,113,230,59,74,224,231,59,124,51,233,59,19,107,234,59,24,135,235,59,153,135,236,59,165,108,237,59,78,54,238,59,170,228,238,59,210,119,239,59,224,239,239,59,244,76,240,59,45,143,240,59,176,182,240,59,163,195,240,59,48,182,240,59,130,142,240,59,199,76,240,59,50,241,239,59,245,123,239,59,71,237,238,59,96,69,238,59,124,132,237,59,216,170,236,59,181,184,235,59,84,174,234,59,250,139,233,59,238,81,232,59,120,
0,231,59,229,151,229,59,128,24,228,59,154,130,226,59,132,214,224,59,144,20,223,59,20,61,221,59,103,80,219,59,226,78,217,59,224,56,215,59,188,14,213,59,212,208,210,59,137,127,208,59,59,27,206,59,77,164,203,59,34,27,201,59,33,128,198,59,176,211,195,59,55,22,193,59,32,72,190,59,212,105,187,59,192,123,184,59,81,126,181,59,243,113,178,59,22,87,175,59,41,46,172,59,157,247,168,59,227,179,165,59,108,99,162,59,173,6,159,59,23,158,155,59,31,42,152,59,58,171,148,59,219,33,145,59,122,142,141,59,138,241,137,59,
130,75,134,59,217,156,130,59,10,204,125,59,249,78,118,59,108,195,110,59,80,42,103,59,149,132,95,59,38,211,87,59,241,22,80,59,226,80,72,59,231,129,64,59,235,170,56,59,217,204,48,59,155,232,40,59,28,255,32,59,68,17,25,59,251,31,17,59,39,44,9,59,174,54,1,59,231,128,242,58,182,148,226,58,138,170,210,58,36,196,194,58,62,227,178,58,145,9,163,58,211,56,147,58,179,114,131,58,191,113,103,58,2,26,72,58,118,225,40,58,92,203,9,58,215,181,213,57,160,38,152,57,183,222,53,57,209,177,112,56,52,245,114,184,126,210,
52,185,157,3,150,185,231,39,209,185,44,232,5,186,161,251,34,186,137,203,63,186,39,85,92,186,199,149,120,186,99,69,138,186,198,24,152,186,199,195,165,186,39,69,179,186,175,155,192,186,44,198,205,186,117,195,218,186,103,146,231,186,230,49,244,186,110,80,0,187,31,111,6,187,129,116,12,187,22,96,18,187,97,49,24,187,236,231,29,187,65,131,35,187,241,2,41,187,142,102,46,187,177,173,51,187,244,215,56,187,247,228,61,187,93,212,66,187,205,165,71,187,241,88,76,187,121,237,80,187,23,99,85,187,131,185,89,187,119,
240,93,187,178,7,98,187,248,254,101,187,13,214,105,187,191,140,109,187,219,34,113,187,51,152,116,187,160,236,119,187,251,31,123,187,35,50,126,187,126,145,128,187,53,249,129,187,45,80,131,187,92,150,132,187,188,203,133,187,72,240,134,187,252,3,136,187,216,6,137,187,220,248,137,187,12,218,138,187,107,170,139,187,0,106,140,187,211,24,141,187,238,182,141,187,93,68,142,187,46,193,142,187,112,45,143,187,52,137,143,187,141,212,143,187,144,15,144,187,83,58,144,187,238,84,144,187,122,95,144,187,20,90,144,
187,215,68,144,187,226,31,144,187,85,235,143,187,82,167,143,187,252,83,143,187,118,241,142,187,232,127,142,187,120,255,141,187,79,112,141,187,152,210,140,187,125,38,140,187,44,108,139,187,211,163,138,187,161,205,137,187,199,233,136,187,118,248,135,187,226,249,134,187,62,238,133,187,191,213,132,187,157,176,131,187,14,127,130,187,74,65,129,187,23,239,127,187,24,68,125,187,14,130,122,187,112,169,119,187,184,186,116,187,99,182,113,187,236,156,110,187,211,110,107,187,151,44,104,187,185,214,100,187,189,
109,97,187,38,242,93,187,120,100,90,187,60,197,86,187,246,20,83,187,48,84,79,187,114,131,75,187,70,163,71,187,56,180,67,187,210,182,63,187,159,171,59,187,46,147,55,187,10,110,51,187,193,60,47,187,226,255,42,187,249,183,38,187,150,101,34,187,70,9,30,187,153,163,25,187,30,53,21,187,98,190,16,187,244,63,12,187,100,186,7,187,62,46,3,187,36,56,253,186,216,8,244,186,179,207,234,186,208,141,225,186,70,68,216,186,45,244,206,186,155,158,197,186,165,68,188,186,94,231,178,186,216,135,169,186,34,39,160,186,75,
198,150,186,94,102,141,186,103,8,132,186,217,90,117,186,234,172,98,186,7,9,80,186,50,113,61,186,105,231,42,186,163,109,24,186,211,5,6,186,200,99,231,185,124,231,194,185,131,154,158,185,37,1,117,185,166,58,45,185,130,209,203,184,149,148,248,183,143,3,29,56,121,21,218,56,45,68,50,57,138,230,118,57,162,117,157,57,245,37,191,57,22,129,224,57,244,193,0,58,179,21,17,58,73,58,33,58,66,46,49,58,50,240,64,58,179,126,80,58,107,216,95,58,6,252,110,58,58,232,125,58,226,77,134,58,181,138,141,58,255,169,148,58,
43,171,155,58,171,141,162,58,244,80,169,58,127,244,175,58,204,119,182,58,92,218,188,58,184,27,195,58,109,59,201,58,10,57,207,58,38,20,213,58,92,204,218,58,73,97,224,58,147,210,229,58,225,31,235,58,226,72,240,58,70,77,245,58,196,44,250,58,24,231,254,58,1,190,1,59,164,245,3,59,89,26,6,59,8,44,8,59,153,42,10,59,249,21,12,59,22,238,13,59,224,178,15,59,75,100,17,59,75,2,19,59,215,140,20,59,233,3,22,59,125,103,23,59,146,183,24,59,39,244,25,59,63,29,27,59,223,50,28,59,14,53,29,59,212,35,30,59,62,255,30,
59,88,199,31,59,50,124,32,59,221,29,33,59,110,172,33,59,248,39,34,59,149,144,34,59,93,230,34,59,108,41,35,59,223,89,35,59,214,119,35,59,114,131,35,59,213,124,35,59,37,100,35,59,137,57,35,59,39,253,34,59,43,175,34,59,192,79,34,59,20,223,33,59,85,93,33,59,180,202,32,59,98,39,32,59,149,115,31,59,128,175,30,59,90,219,29,59,92,247,28,59,189,3,28,59,186,0,27,59,142,238,25,59,118,205,24,59,176,157,23,59,125,95,22,59,28,19,21,59,209,184,19,59,221,80,18,59,132,219,16,59,13,89,15,59,188,201,13,59,217,45,12,
59,170,133,10,59,122,209,8,59,145,17,7,59,57,70,5,59,189,111,3,59,105,142,1,59,17,69,255,58,210,88,251,58,175,88,247,58,69,69,243,58,47,31,239,58,11,231,234,58,120,157,230,58,22,67,226,58,131,216,221,58,97,94,217,58,80,213,212,58,242,61,208,58,233,152,203,58,215,230,198,58,93,40,194,58,31,94,189,58,191,136,184,58,223,168,179,58,34,191,174,58,42,204,169,58,152,208,164,58,15,205,159,58,47,194,154,58,154,176,149,58,240,152,144,58,209,123,139,58,219,89,134,58,173,51,129,58,201,19,120,58,60,186,109,58,
236,91,99,58,14,250,88,58,213,149,78,58,115,48,68,58,23,203,57,58,237,102,47,58,32,5,37,58,215,166,26,58,54,77,16,58,95,249,5,58,228,88,247,57,17,207,226,57,121,87,206,57,69,244,185,57,152,167,165,57,143,115,145,57,124,180,122,57,103,187,82,57,236,255,42,57,6,134,3,57,69,163,184,56,124,154,85,56,113,140,108,55,77,33,188,183,34,242,117,184,121,57,198,184,63,97,8,185,153,70,45,185,105,201,81,185,93,230,117,185,27,205,140,185,229,112,158,185,1,221,175,185,235,15,193,185,43,8,210,185,83,196,226,185,252,
66,243,185,103,193,1,186,58,193,9,186,86,160,17,186,27,94,25,186,241,249,32,186,67,115,40,186,132,201,47,186,41,252,54,186,174,10,62,186,148,244,68,186,97,185,75,186,162,88,82,186,230,209,88,186,196,36,95,186,216,80,101,186,193,85,107,186,39,51,113,186,180,232,118,186,26,118,124,186,134,237,128,186,165,139,131,186,72,21,134,186,83,138,136,186,171,234,138,186,56,54,141,186,229,108,143,186,160,142,145,186,88,155,147,186,255,146,149,186,139,117,151,186,243,66,153,186,48,251,154,186,64,158,156,186,34,
44,158,186,214,164,159,186,97,8,161,186,201,86,162,186,23,144,163,186,84,180,164,186,144,195,165,186,218,189,166,186,66,163,167,186,223,115,168,186,197,47,169,186,14,215,169,186,213,105,170,186,54,232,170,186,81,82,171,186,70,168,171,186,57,234,171,186,79,24,172,186,175,50,172,186,131,57,172,186,244,44,172,186,49,13,172,186,103,218,171,186,200,148,171,186,134,60,171,186,212,209,170,186,232,84,170,186,250,197,169,186,67,37,169,186,252,114,168,186,99,175,167,186,180,218,166,186,46,245,165,186,19,255,
164,186,163,248,163,186,33,226,162,186,211,187,161,186,253,133,160,186,230,64,159,186,214,236,157,186,22,138,156,186,241,24,155,186,176,153,153,186,161,12,152,186,16,114,150,186,75,202,148,186,161,21,147,186,97,84,145,186,220,134,143,186,98,173,141,186,70,200,139,186,217,215,137,186,111,220,135,186,91,214,133,186,240,197,131,186,132,171,129,186,214,14,127,186,243,179,122,186,12,71,118,186,204,200,113,186,223,57,109,186,242,154,104,186,176,236,99,186,200,47,95,186,230,100,90,186,183,140,85,186,234,
167,80,186,42,183,75,186,37,187,70,186,136,180,65,186,255,163,60,186,54,138,55,186,216,103,50,186,146,61,45,186,12,12,40,186,241,211,34,186,234,149,29,186,159,82,24,186,182,10,19,186,214,190,13,186,165,111,8,186,198,29,3,186,183,147,251,185,16,233,240,185,215,60,230,185,73,144,219,185,163,228,208,185,27,59,198,185,230,148,187,185,55,243,176,185,59,87,166,185,30,194,155,185,7,53,145,185,25,177,134,185,233,110,120,185,107,146,99,185,232,206,78,185,137,38,58,185,109,155,37,185,172,47,17,185,168,202,
249,184,215,124,209,184,224,121,169,184,170,197,129,184,21,200,52,184,17,99,205,183,101,120,202,182,151,96,77,55,251,121,254,55,145,88,74,56,16,82,138,56,136,12,175,56,121,88,211,56,192,50,247,56,39,76,13,57,22,195,30,57,185,252,47,57,171,247,64,57,141,178,81,57,15,44,98,57,233,98,114,57,240,42,129,57,225,1,137,57,181,181,144,57,221,69,152,57,211,177,159,57,20,249,166,57,35,27,174,57,137,23,181,57,211,237,187,57,150,157,194,57,107,38,201,57,242,135,207,57,206,193,213,57,170,211,219,57,53,189,225,
57,37,126,231,57,52,22,237,57,34,133,242,57,181,202,247,57,185,230,252,57,126,236,0,58,171,80,3,58,208,159,5,58,223,217,7,58,201,254,9,58,133,14,12,58,10,9,14,58,84,238,15,58,95,190,17,58,43,121,19,58,187,30,21,58,19,175,22,58,59,42,24,58,60,144,25,58,35,225,26,58,254,28,28,58,222,67,29,58,214,85,30,58,251,82,31,58,101,59,32,58,47,15,33,58,116,206,33,58,82,121,34,58,234,15,35,58,95,146,35,58,213,0,36,58,114,91,36,58,96,162,36,58,199,213,36,58,214,245,36,58,186,2,37,58,163,252,36,58,195,227,36,58,
77,184,36,58,120,122,36,58,121,42,36,58,137,200,35,58,226,84,35,58,192,207,34,58,96,57,34,58,1,146,33,58,226,217,32,58,69,17,32,58,109,56,31,58,156,79,30,58,25,87,29,58,42,79,28,58,21,56,27,58,36,18,26,58,160,221,24,58,212,154,23,58,10,74,22,58,144,235,20,58,178,127,19,58,192,6,18,58,6,129,16,58,214,238,14,58,127,80,13,58,82,166,11,58,161,240,9,58,189,47,8,58,250,99,6,58,169,141,4,58,31,173,2,58,176,194,0,58,92,157,253,57,223,162,249,57,144,150,245,57,25,121,241,57,36,75,237,57,91,13,233,57,105,192,
228,57,248,100,224,57,177,251,219,57,64,133,215,57,79,2,211,57,134,115,206,57,145,217,201,57,22,53,197,57,192,134,192,57,54,207,187,57,32,15,183,57,35,71,178,57,230,119,173,57,14,162,168,57,63,198,163,57,28,229,158,57,70,255,153,57,95,21,149,57,6,40,144,57,218,55,139,57,119,69,134,57,122,81,129,57,248,184,120,57,45,206,110,57,192,227,100,57,221,250,90,57,170,20,81,57,78,50,71,57,231,84,61,57,148,125,51,57,109,173,41,57,136,229,31,57,245,38,22,57,196,114,12,57,251,201,2,57,68,91,242,56,112,61,223,
56,115,60,204,56,62,90,185,56,183,152,166,56,187,249,147,56,31,127,129,56,92,85,94,56,81,252,57,56,141,246,21,56,214,142,228,55,102,228,157,55,95,232,47,55,151,35,22,54,232,146,198,182,212,130,106,183,217,11,184,183,109,254,249,183,219,137,29,184,55,163,61,184,189,72,93,184,243,119,124,184,59,151,141,184,252,180,156,184,33,148,171,184,151,51,186,184,89,146,200,184,106,175,214,184,217,137,228,184,191,32,242,184,65,115,255,184,71,64,6,185,241,163,12,185,63,228,18,185,217,0,25,185,109,249,30,185,173,
205,36,185,81,125,42,185,21,8,48,185,188,109,53,185,13,174,58,185,213,200,63,185,229,189,68,185,21,141,73,185,65,54,78,185,73,185,82,185,21,22,87,185,142,76,91,185,166,92,95,185,80,70,99,185,135,9,103,185,74,166,106,185,155,28,110,185,131,108,113,185,15,150,116,185,79,153,119,185,90,118,122,185,73,45,125,185,59,190,127,185,170,20,129,185,92,55,130,185,76,71,131,185,143,68,132,185,64,47,133,185,123,7,134,185,93,205,134,185,6,129,135,185,151,34,136,185,53,178,136,185,4,48,137,185,43,156,137,185,211,
246,137,185,38,64,138,185,81,120,138,185,129,159,138,185,229,181,138,185,174,187,138,185,15,177,138,185,58,150,138,185,102,107,138,185,200,48,138,185,153,230,137,185,18,141,137,185,108,36,137,185,228,172,136,185,182,38,136,185,31,146,135,185,96,239,134,185,183,62,134,185,102,128,133,185,173,180,132,185,209,219,131,185,20,246,130,185,187,3,130,185,10,5,129,185,144,244,127,185,119,199,125,185,85,131,123,185,188,40,121,185,59,184,118,185,99,50,116,185,200,151,113,185,252,232,110,185,147,38,108,185,35,
81,105,185,64,105,102,185,128,111,99,185,122,100,96,185,196,72,93,185,245,28,90,185,164,225,86,185,105,151,83,185,217,62,80,185,142,216,76,185,28,101,73,185,29,229,69,185,37,89,66,185,204,193,62,185,168,31,59,185,76,115,55,185,80,189,51,185,70,254,47,185,195,54,44,185,88,103,40,185,153,144,36,185,22,179,32,185,96,207,28,185,5,230,24,185,148,247,20,185,153,4,17,185,162,13,13,185,55,19,9,185,227,21,5,185,46,22,1,185,58,41,250,184,109,35,242,184,252,27,234,184,234,19,226,184,57,12,218,184,230,5,210,
184,236,1,202,184,66,1,194,184,218,4,186,184,165,13,178,184,143,28,170,184,127,50,162,184,91,80,154,184,3,119,146,184,82,167,138,184,35,226,130,184,145,80,118,184,39,245,102,184,159,179,87,184,138,141,72,184,109,132,57,184,200,153,42,184,14,207,27,184,174,37,13,184,18,62,253,183,245,120,224,183,167,254,195,183,184,209,167,183,166,244,139,183,184,211,96,183,100,103,42,183,184,81,233,182,23,114,126,182,24,106,52,181,218,82,33,54,27,99,182,54,21,76,13,55,164,160,62,55,185,43,111,55,250,116,143,55,17,
236,166,55,151,249,189,55,24,156,212,55,48,210,234,55,71,77,0,56,251,249,10,56,159,110,21,56,166,170,31,56,142,173,41,56,220,118,51,56,32,6,61,56,244,90,70,56,247,116,79,56,214,83,88,56,66,247,96,56,249,94,105,56,191,138,113,56,97,122,121,56,219,150,128,56,78,82,132,56,125,239,135,56,96,110,139,56,243,206,142,56,52,17,146,56,41,53,149,56,215,58,152,56,76,34,155,56,150,235,157,56,201,150,160,56,251,35,163,56,71,147,165,56,203,228,167,56,168,24,170,56,4,47,172,56,7,40,174,56,221,3,176,56,180,194,177,
56,191,100,179,56,52,234,180,56,74,83,182,56,62,160,183,56,77,209,184,56,184,230,185,56,196,224,186,56,183,191,187,56,218,131,188,56,121,45,189,56,227,188,189,56,103,50,190,56,89,142,190,56,15,209,190,56,223,250,190,56,35,12,191,56,54,5,191,56,118,230,190,56,67,176,190,56,253,98,190,56,7,255,189,56,199,132,189,56,160,244,188,56,253,78,188,56,68,148,187,56,225,196,186,56,63,225,185,56,203,233,184,56,243,222,183,56,37,193,182,56,210,144,181,56,105,78,180,56,94,250,178,56,33,149,177,56,39,31,176,56,
225,152,174,56,198,2,173,56,72,93,171,56,222,168,169,56,252,229,167,56,24,21,166,56,167,54,164,56,32,75,162,56,248,82,160,56,166,78,158,56,158,62,156,56,86,35,154,56,69,253,151,56,222,204,149,56,152,146,147,56,230,78,145,56,60,2,143,56,14,173,140,56,208,79,138,56,242,234,135,56,231,126,133,56,32,12,131,56,13,147,128,56,60,40,124,56,129,31,119,56,196,12,114,56,224,240,108,56,171,204,103,56,250,160,98,56,160,110,93,56,109,54,88,56,48,249,82,56,181,183,77,56,196,114,72,56,36,43,67,56,153,225,61,56,228,
150,56,56,195,75,51,56,242,0,46,56,41,183,40,56,29,111,35,56,129,41,30,56,4,231,24,56,81,168,19,56,19,110,14,56,237,56,9,56,131,9,4,56,231,192,253,55,179,124,243,55,154,71,233,55,196,34,223,55,85,15,213,55,103,14,203,55,13,33,193,55,84,72,183,55,65,133,173,55,210,216,163,55,254,67,154,55,180,199,144,55,220,100,135,55,173,56,124,55,249,221,105,55,63,187,87,55,19,210,69,55,252,35,52,55,112,178,34,55,213,126,17,55,134,138,0,55,153,173,223,54,198,201,190,54,237,107,158,54,144,44,125,54,236,149,62,54,
239,23,1,54,193,108,137,53,223,76,23,52,208,165,66,181,149,66,211,181,211,111,33,182,98,18,88,182,68,195,134,182,3,229,160,182,109,109,186,182,154,91,211,182,190,174,235,182,20,179,1,183,159,64,13,183,195,127,24,183,76,112,35,183,22,18,46,183,7,101,56,183,20,105,66,183,58,30,76,183,134,132,85,183,14,156,94,183,245,100,103,183,105,223,111,183,162,11,120,183,229,233,127,183,64,189,131,183,229,94,135,183,21,218,138,183,5,47,142,183,241,93,145,183,26,103,148,183,196,74,151,183,57,9,154,183,198,162,156,
183,191,23,159,183,122,104,161,183,80,149,163,183,162,158,165,183,208,132,167,183,66,72,169,183,96,233,170,183,153,104,172,183,92,198,173,183,30,3,175,183,85,31,176,183,123,27,177,183,13,248,177,183,139,181,178,183,117,84,179,183,82,213,179,183,167,56,180,183,255,126,180,183,227,168,180,183,227,182,180,183,140,169,180,183,112,129,180,183,33,63,180,183,52,227,179,183,62,110,179,183,213,224,178,183,146,59,178,183,15,127,177,183,228,171,176,183,172,194,175,183,4,196,174,183,135,176,173,183,210,136,172,
183,130,77,171,183,52,255,169,183,134,158,168,183,22,44,167,183,128,168,165,183,99,20,164,183,92,112,162,183,6,189,160,183,0,251,158,183,229,42,157,183,80,77,155,183,220,98,153,183,34,108,151,183,188,105,149,183,66,92,147,183,75,68,145,183,109,34,143,183,60,247,140,183,75,195,138,183,46,135,136,183,116,67,134,183,173,248,131,183,102,167,129,183,87,160,126,183,14,231,121,183,4,36,117,183,69,88,112,183,219,132,107,183,204,170,102,183,26,203,97,183,194,230,92,183,190,254,87,183,4,20,83,183,131,39,78,
183,41,58,73,183,222,76,68,183,133,96,63,183,252,117,58,183,29,142,53,183,190,169,48,183,175,201,43,183,187,238,38,183,168,25,34,183,55,75,29,183,37,132,24,183,41,197,19,183,244,14,15,183,51,98,10,183,141,191,5,183,165,39,1,183,48,54,249,182,251,52,240,182,206,76,231,182,196,126,222,182,238,203,213,182,78,53,205,182,225,187,196,182,148,96,188,182,78,36,180,182,232,7,172,182,51,12,164,182,244,49,156,182,229,121,148,182,184,228,140,182,19,115,133,182,33,75,124,182,135,249,109,182,103,242,95,182,187,
54,82,182,108,199,68,182,75,165,55,182,25,209,42,182,132,75,30,182,35,21,18,182,127,46,6,182,20,48,245,181,78,164,222,181,73,186,200,181,130,114,179,181,80,205,158,181,232,202,138,181,189,214,110,181,74,93,73,181,26,41,37,181,142,57,2,181,145,27,193,180,94,73,128,180,168,243,3,180,0,0,0,0,235,1,0,0,186,71,107,63,97,71,107,63,86,70,107,63,153,68,107,63,42,66,107,63,8,63,107,63,53,59,107,63,175,54,107,63,120,49,107,63,143,43,107,63,243,36,107,63,166,29,107,63,167,21,107,63,246,12,107,63,147,3,107,63,
127,249,106,63,185,238,106,63,65,227,106,63,23,215,106,63,61,202,106,63,176,188,106,63,115,174,106,63,132,159,106,63,228,143,106,63,147,127,106,63,144,110,106,63,221,92,106,63,121,74,106,63,101,55,106,63,159,35,106,63,41,15,106,63,3,250,105,63,44,228,105,63,166,205,105,63,111,182,105,63,136,158,105,63,241,133,105,63,171,108,105,63,181,82,105,63,15,56,105,63,187,28,105,63,183,0,105,63,4,228,104,63,163,198,104,63,146,168,104,63,212,137,104,63,102,106,104,63,75,74,104,63,130,41,104,63,11,8,104,63,230,
229,103,63,20,195,103,63,148,159,103,63,103,123,103,63,142,86,103,63,7,49,103,63,212,10,103,63,245,227,102,63,106,188,102,63,51,148,102,63,80,107,102,63,194,65,102,63,136,23,102,63,164,236,101,63,21,193,101,63,219,148,101,63,246,103,101,63,104,58,101,63,48,12,101,63,78,221,100,63,195,173,100,63,143,125,100,63,178,76,100,63,45,27,100,63,255,232,99,63,41,182,99,63,171,130,99,63,134,78,99,63,186,25,99,63,70,228,98,63,44,174,98,63,108,119,98,63,6,64,98,63,249,7,98,63,72,207,97,63,241,149,97,63,245,91,
97,63,85,33,97,63,16,230,96,63,40,170,96,63,155,109,96,63,108,48,96,63,153,242,95,63,36,180,95,63],"i8",4,y.a);
Q([13,117,95,63,83,53,95,63,248,244,94,63,252,179,94,63,94,114,94,63,32,48,94,63,66,237,93,63,196,169,93,63,166,101,93,63,233,32,93,63,141,219,92,63,147,149,92,63,251,78,92,63,197,7,92,63,242,191,91,63,129,119,91,63,116,46,91,63,203,228,90,63,134,154,90,63,166,79,90,63,43,4,90,63,21,184,89,63,101,107,89,63,27,30,89,63,55,208,88,63,187,129,88,63,166,50,88,63,249,226,87,63,180,146,87,63,216,65,87,63,101,240,86,63,92,158,86,63,188,75,86,63,135,248,85,63,189,164,85,63,94,80,85,63,107,251,84,63,228,165,
84,63,202,79,84,63,29,249,83,63,221,161,83,63,12,74,83,63,169,241,82,63,181,152,82,63,48,63,82,63,27,229,81,63,119,138,81,63,67,47,81,63,129,211,80,63,48,119,80,63,82,26,80,63,230,188,79,63,238,94,79,63,106,0,79,63,89,161,78,63,190,65,78,63,152,225,77,63,231,128,77,63,173,31,77,63,234,189,76,63,158,91,76,63,201,248,75,63,109,149,75,63,138,49,75,63,33,205,74,63,49,104,74,63,187,2,74,63,193,156,73,63,66,54,73,63,63,207,72,63,185,103,72,63,176,255,71,63,36,151,71,63,23,46,71,63,136,196,70,63,121,90,
70,63,233,239,69,63,218,132,69,63,76,25,69,63,64,173,68,63,182,64,68,63,174,211,67,63,41,102,67,63,41,248,66,63,173,137,66,63,181,26,66,63,68,171,65,63,88,59,65,63,243,202,64,63,21,90,64,63,192,232,63,63,242,118,63,63,174,4,63,63,244,145,62,63,196,30,62,63,30,171,61,63,4,55,61,63,118,194,60,63,117,77,60,63,1,216,59,63,27,98,59,63,196,235,58,63,251,116,58,63,194,253,57,63,26,134,57,63,3,14,57,63,125,149,56,63,137,28,56,63,40,163,55,63,91,41,55,63,34,175,54,63,126,52,54,63,111,185,53,63,246,61,53,63,
19,194,52,63,200,69,52,63,21,201,51,63,250,75,51,63,121,206,50,63,145,80,50,63,68,210,49,63,146,83,49,63,124,212,48,63,3,85,48,63,39,213,47,63,232,84,47,63,72,212,46,63,71,83,46,63,230,209,45,63,37,80,45,63,5,206,44,63,135,75,44,63,172,200,43,63,115,69,43,63,223,193,42,63,239,61,42,63,164,185,41,63,255,52,41,63,0,176,40,63,169,42,40,63,250,164,39,63,243,30,39,63,149,152,38,63,225,17,38,63,216,138,37,63,123,3,37,63,201,123,36,63,196,243,35,63,108,107,35,63,195,226,34,63,200,89,34,63,125,208,33,63,
226,70,33,63,247,188,32,63,191,50,32,63,57,168,31,63,101,29,31,63,70,146,30,63,219,6,30,63,37,123,29,63,36,239,28,63,219,98,28,63,72,214,27,63,110,73,27,63,76,188,26,63,228,46,26,63,54,161,25,63,67,19,25,63,11,133,24,63,143,246,23,63,209,103,23,63,208,216,22,63,142,73,22,63,11,186,21,63,71,42,21,63,69,154,20,63,3,10,20,63,132,121,19,63,200,232,18,63,207,87,18,63,154,198,17,63,43,53,17,63,129,163,16,63,157,17,16,63,129,127,15,63,45,237,14,63,161,90,14,63,223,199,13,63,231,52,13,63,185,161,12,63,88,
14,12,63,194,122,11,63,250,230,10,63,255,82,10,63,212,190,9,63,119,42,9,63,234,149,8,63,47,1,8,63,68,108,7,63,44,215,6,63,231,65,6,63,118,172,5,63,217,22,5,63,18,129,4,63,32,235,3,63,6,85,3,63,194,190,2,63,87,40,2,63,197,145,1,63,13,251,0,63,47,100,0,63,88,154,255,62,10,108,254,62,118,61,253,62,157,14,252,62,128,223,250,62,33,176,249,62,129,128,248,62,163,80,247,62,134,32,246,62,46,240,244,62,155,191,243,62,207,142,242,62,203,93,241,62,145,44,240,62,34,251,238,62,128,201,237,62,173,151,236,62,169,
101,235,62,119,51,234,62,24,1,233,62,141,206,231,62,216,155,230,62,250,104,229,62,245,53,228,62,202,2,227,62,123,207,225,62,10,156,224,62,119,104,223,62,197,52,222,62,244,0,221,62,7,205,219,62,255,152,218,62,221,100,217,62,163,48,216,62,82,252,214,62,235,199,213,62,113,147,212,62,229,94,211,62,72,42,210,62,156,245,208,62,226,192,207,62,28,140,206,62,74,87,205,62,112,34,204,62,142,237,202,62,165,184,201,62,183,131,200,62,198,78,199,62,212,25,198,62,224,228,196,62,238,175,195,62,254,122,194,62,18,70,
193,62,44,17,192,62,77,220,190,62,118,167,189,62,169,114,188,62,231,61,187,62,50,9,186,62,139,212,184,62,244,159,183,62,110,107,182,62,251,54,181,62,156,2,180,62,82,206,178,62,32,154,177,62,6,102,176,62,6,50,175,62,33,254,173,62,89,202,172,62,175,150,171,62,37,99,170,62,189,47,169,62,118,252,167,62,84,201,166,62,88,150,165,62,130,99,164,62,212,48,163,62,80,254,161,62,248,203,160,62,204,153,159,62,206,103,158,62,255,53,157,62,98,4,156,62,246,210,154,62,191,161,153,62,188,112,152,62,240,63,151,62,92,
15,150,62,1,223,148,62,225,174,147,62,253,126,146,62,87,79,145,62,240,31,144,62,200,240,142,62,227,193,141,62,65,147,140,62,227,100,139,62,203,54,138,62,250,8,137,62,113,219,135,62,51,174,134,62,64,129,133,62,154,84,132,62,65,40,131,62,57,252,129,62,129,208,128,62,53,74,127,62,16,244,124,62,149,158,122,62,198,73,120,62,166,245,117,62,56,162,115,62,126,79,113,62,124,253,110,62,50,172,108,62,166,91,106,62,216,11,104,62,203,188,101,62,131,110,99,62,2,33,97,62,75,212,94,62,95,136,92,62,66,61,90,62,246,
242,87,62,126,169,85,62,221,96,83,62,21,25,81,62,40,210,78,62,25,140,76,62,235,70,74,62,160,2,72,62,59,191,69,62,190,124,67,62,44,59,65,62,135,250,62,62,210,186,60,62,16,124,58,62,66,62,56,62,107,1,54,62,143,197,51,62,174,138,49,62,204,80,47,62,235,23,45,62,14,224,42,62,54,169,40,62,103,115,38,62,163,62,36,62,236,10,34,62,69,216,31,62,175,166,29,62,47,118,27,62,196,70,25,62,115,24,23,62,62,235,20,62,38,191,18,62,46,148,16,62,89,106,14,62,168,65,12,62,31,26,10,62,191,243,7,62,139,206,5,62,132,170,
3,62,174,135,1,62,22,204,254,61,56,139,250,61,201,76,246,61,204,16,242,61,69,215,237,61,59,160,233,61,176,107,229,61,169,57,225,61,42,10,221,61,57,221,216,61,217,178,212,61,14,139,208,61,221,101,204,61,75,67,200,61,90,35,196,61,17,6,192,61,114,235,187,61,130,211,183,61,69,190,179,61,192,171,175,61,246,155,171,61,236,142,167,61,166,132,163,61,39,125,159,61,117,120,155,61,146,118,151,61,131,119,147,61,76,123,143,61,241,129,139,61,117,139,135,61,221,151,131,61,91,78,127,61,210,114,119,61,40,157,111,
61,100,205,103,61,143,3,96,61,175,63,88,61,204,129,80,61,239,201,72,61,29,24,65,61,96,108,57,61,189,198,49,61,61,39,42,61,231,141,34,61,193,250,26,61,212,109,19,61,38,231,11,61,191,102,4,61,73,217,249,60,191,241,234,60,235,22,220,60,221,72,205,60,161,135,190,60,70,211,175,60,216,43,161,60,103,145,146,60,254,3,132,60,87,7,107,60,249,32,78,60,253,84,49,60,124,163,20,60,33,25,240,59,168,32,183,59,130,187,124,59,58,161,11,59,250,150,215,57,86,158,170,186,130,36,69,187,98,70,154,187,198,195,209,187,31,
133,4,188,206,12,32,188,214,120,59,188,33,201,86,188,150,253,113,188,16,139,134,188,83,9,148,188,137,121,161,188,166,219,174,188,160,47,188,188,107,117,201,188,252,172,214,188,72,214,227,188,69,241,240,188,231,253,253,188,18,126,5,189,249,245,11,189,162,102,18,189,10,208,24,189,42,50,31,189,253,140,37,189,128,224,43,189,171,44,50,189,124,113,56,189,236,174,62,189,247,228,68,189,152,19,75,189,202,58,81,189,138,90,87,189,209,114,93,189,156,131,99,189,229,140,105,189,170,142,111,189,228,136,117,189,
144,123,123,189,85,179,128,189,22,165,131,189,9,147,134,189,45,125,137,189,127,99,140,189,254,69,143,189,166,36,146,189,119,255,148,189,110,214,151,189,138,169,154,189,200,120,157,189,38,68,160,189,163,11,163,189,61,207,165,189,242,142,168,189,192,74,171,189,166,2,174,189,161,182,176,189,177,102,179,189,211,18,182,189,5,187,184,189,71,95,187,189,150,255,189,189,241,155,192,189,87,52,195,189,197,200,197,189,59,89,200,189,182,229,202,189,54,110,205,189,185,242,207,189,62,115,210,189,195,239,212,189,
70,104,215,189,200,220,217,189,69,77,220,189,190,185,222,189,48,34,225,189,155,134,227,189,253,230,229,189,86,67,232,189,163,155,234,189,229,239,236,189,25,64,239,189,63,140,241,189,86,212,243,189,93,24,246,189,83,88,248,189,54,148,250,189,6,204,252,189,195,255,254,189,181,151,0,190,126,173,1,190,60,193,2,190,238,210,3,190,148,226,4,190,45,240,5,190,186,251,6,190,57,5,8,190,171,12,9,190,16,18,10,190,102,21,11,190,174,22,12,190,231,21,13,190,17,19,14,190,44,14,15,190,56,7,16,190,51,254,16,190,31,243,
17,190,251,229,18,190,199,214,19,190,130,197,20,190,44,178,21,190,198,156,22,190,79,133,23,190,198,107,24,190,45,80,25,190,130,50,26,190,198,18,27,190,248,240,27,190,25,205,28,190,40,167,29,190,38,127,30,190,18,85,31,190,236,40,32,190,181,250,32,190,108,202,33,190,18,152,34,190,166,99,35,190,40,45,36,190,153,244,36,190,249,185,37,190,71,125,38,190,132,62,39,190,176,253,39,190,203,186,40,190,213,117,41,190,207,46,42,190,184,229,42,190,145,154,43,190,90,77,44,190,18,254,44,190,187,172,45,190,85,89,
46,190,223,3,47,190,90,172,47,190,199,82,48,190,37,247,48,190,117,153,49,190,183,57,50,190,236,215,50,190,19,116,51,190,45,14,52,190,59,166,52,190,61,60,53,190,50,208,53,190,29,98,54,190,252,241,54,190,209,127,55,190,155,11,56,190,92,149,56,190,20,29,57,190,194,162,57,190,104,38,58,190,7,168,58,190,158,39,59,190,46,165,59,190,183,32,60,190,59,154,60,190,186,17,61,190,51,135,61,190,169,250,61,190,27,108,62,190,137,219,62,190,246,72,63,190,97,180,63,190,202,29,64,190,51,133,64,190,156,234,64,190,6,
78,65,190,113,175,65,190,222,14,66,190,78,108,66,190,194,199,66,190,58,33,67,190,182,120,67,190,57,206,67,190,194,33,68,190,82,115,68,190,234,194,68,190,139,16,69,190,53,92,69,190,234,165,69,190,170,237,69,190,118,51,70,190,79,119,70,190,53,185,70,190,42,249,70,190,47,55,71,190,68,115,71,190,106,173,71,190,162,229,71,190,237,27,72,190,76,80,72,190,192,130,72,190,74,179,72,190,235,225,72,190,163,14,73,190,117,57,73,190,96,98,73,190,101,137,73,190,135,174,73,190,197,209,73,190,33,243,73,190,156,18,
74,190,55,48,74,190,243,75,74,190,209,101,74,190,210,125,74,190,247,147,74,190,66,168,74,190,179,186,74,190,76,203,74,190,13,218,74,190,248,230,74,190,15,242,74,190,81,251,74,190,193,2,75,190,95,8,75,190,45,12,75,190,44,14,75,190,94,14,75,190,194,12,75,190,91,9,75,190,42,4,75,190,48,253,74,190,111,244,74,190,231,233,74,190,154,221,74,190,137,207,74,190,181,191,74,190,33,174,74,190,204,154,74,190,185,133,74,190,233,110,74,190,93,86,74,190,23,60,74,190,23,32,74,190,95,2,74,190,241,226,73,190,207,193,
73,190,248,158,73,190,111,122,73,190,54,84,73,190,77,44,73,190,182,2,73,190,114,215,72,190,132,170,72,190,236,123,72,190,172,75,72,190,197,25,72,190,57,230,71,190,9,177,71,190,56,122,71,190,197,65,71,190,179,7,71,190,4,204,70,190,185,142,70,190,211,79,70,190,84,15,70,190,61,205,69,190,145,137,69,190,81,68,69,190,125,253,68,190,25,181,68,190,37,107,68,190,162,31,68,190,148,210,67,190,251,131,67,190,217,51,67,190,47,226,66,190,255,142,66,190,76,58,66,190,21,228,65,190,94,140,65,190,40,51,65,190,116,
216,64,190,68,124,64,190,154,30,64,190,119,191,63,190,222,94,63,190,208,252,62,190,78,153,62,190,91,52,62,190,247,205,61,190,38,102,61,190,232,252,60,190,64,146,60,190,46,38,60,190,182,184,59,190,216,73,59,190,150,217,58,190,243,103,58,190,239,244,57,190,141,128,57,190,207,10,57,190,182,147,56,190,69,27,56,190,124,161,55,190,94,38,55,190,236,169,54,190,41,44,54,190,23,173,53,190,182,44,53,190,9,171,52,190,19,40,52,190,211,163,51,190,78,30,51,190,132,151,50,190,119,15,50,190,41,134,49,190,157,251,
48,190,211,111,48,190,206,226,47,190,144,84,47,190,27,197,46,190,112,52,46,190,145,162,45,190,129,15,45,190,66,123,44,190,212,229,43,190,59,79,43,190,120,183,42,190,141,30,42,190,124,132,41,190,71,233,40,190,240,76,40,190,121,175,39,190,228,16,39,190,50,113,38,190,103,208,37,190,131,46,37,190,136,139,36,190,122,231,35,190,89,66,35,190,40,156,34,190,233,244,33,190,157,76,33,190,71,163,32,190,233,248,31,190,133,77,31,190,28,161,30,190,177,243,29,190,70,69,29,190,220,149,28,190,119,229,27,190,23,52,
27,190,191,129,26,190,113,206,25,190,47,26,25,190,251,100,24,190,215,174,23,190,197,247,22,190,199,63,22,190,224,134,21,190,16,205,20,190,91,18,20,190,194,86,19,190,72,154,18,190,238,220,17,190,183,30,17,190,164,95,16,190,184,159,15,190,245,222,14,190,92,29,14,190,241,90,13,190,180,151,12,190,168,211,11,190,208,14,11,190,45,73,10,190,193,130,9,190,142,187,8,190,151,243,7,190,222,42,7,190,100,97,6,190,44,151,5,190,56,204,4,190,137,0,4,190,35,52,3,190,7,103,2,190,55,153,1,190,182,202,0,190,9,247,255,
189,76,87,254,189,56,182,252,189,210,19,251,189,29,112,249,189,30,203,247,189,218,36,246,189,83,125,244,189,143,212,242,189,146,42,241,189,96,127,239,189,253,210,237,189,110,37,236,189,182,118,234,189,217,198,232,189,221,21,231,189,197,99,229,189,150,176,227,189,83,252,225,189,1,71,224,189,164,144,222,189,65,217,220,189,219,32,219,189,119,103,217,189,25,173,215,189,197,241,213,189,127,53,212,189,76,120,210,189,48,186,208,189,47,251,206,189,77,59,205,189,142,122,203,189,247,184,201,189,140,246,199,
189,81,51,198,189,74,111,196,189,123,170,194,189,233,228,192,189,152,30,191,189,140,87,189,189,201,143,187,189,83,199,185,189,47,254,183,189,96,52,182,189,235,105,180,189,213,158,178,189,32,211,176,189,210,6,175,189,239,57,173,189,122,108,171,189,119,158,169,189,236,207,167,189,220,0,166,189,75,49,164,189,62,97,162,189,184,144,160,189,190,191,158,189,83,238,156,189,124,28,155,189,61,74,153,189,155,119,151,189,152,164,149,189,58,209,147,189,132,253,145,189,123,41,144,189,34,85,142,189,126,128,140,
189,146,171,138,189,100,214,136,189,246,0,135,189,76,43,133,189,108,85,131,189,89,127,129,189,45,82,127,189,83,165,123,189,42,248,119,189,188,74,116,189,16,157,112,189,46,239,108,189,29,65,105,189,231,146,101,189,147,228,97,189,41,54,94,189,177,135,90,189,51,217,86,189,182,42,83,189,67,124,79,189,226,205,75,189,154,31,72,189,115,113,68,189,117,195,64,189,167,21,61,189,19,104,57,189,191,186,53,189,179,13,50,189,246,96,46,189,146,180,42,189,140,8,39,189,238,92,35,189,190,177,31,189,5,7,28,189,202,92,
24,189,20,179,20,189,235,9,17,189,88,97,13,189,96,185,9,189,12,18,6,189,100,107,2,189,221,138,253,188,103,64,246,188,117,247,238,188,21,176,231,188,87,106,224,188,73,38,217,188,250,227,209,188,120,163,202,188,211,100,195,188,25,40,188,188,89,237,180,188,161,180,173,188,0,126,166,188,131,73,159,188,59,23,152,188,52,231,144,188,126,185,137,188,39,142,130,188,120,202,118,188,153,125,104,188,205,53,90,188,47,243,75,188,220,181,61,188,240,125,47,188,135,75,33,188,189,30,19,188,173,247,4,188,230,172,237,
187,85,118,209,187,223,75,181,187,186,45,153,187,57,56,122,187,122,46,66,187,163,62,10,187,62,210,164,186,215,114,213,185,248,137,231,57,136,234,168,58,74,221,11,59,231,40,67,59,177,87,122,59,160,180,152,59,150,46,180,59,133,153,207,59,59,245,234,59,194,32,3,60,21,191,16,60,127,85,30,60,229,227,43,60,46,106,57,60,66,232,70,60,5,94,84,60,97,203,97,60,59,48,111,60,122,140,124,60,4,240,132,60,101,149,139,60,83,54,146,60,196,210,152,60,171,106,159,60,251,253,165,60,168,140,172,60,168,22,179,60,237,155,
185,60,108,28,192,60,26,152,198,60,234,14,205,60,208,128,211,60,194,237,217,60,180,85,224,60,154,184,230,60,105,22,237,60,21,111,243,60,148,194,249,60,108,8,0,61,237,44,3,61,198,78,6,61,242,109,9,61,107,138,12,61,44,164,15,61,47,187,18,61,111,207,21,61,232,224,24,61,146,239,27,61,105,251,30,61,105,4,34,61,138,10,37,61,202,13,40,61,33,14,43,61,139,11,46,61,3,6,49,61,132,253,51,61,9,242,54,61,141,227,57,61,10,210,60,61,125,189,63,61,223,165,66,61,44,139,69,61,96,109,72,61,117,76,75,61,102,40,78,61,
48,1,81,61,204,214,83,61,56,169,86,61,109,120,89,61,103,68,92,61,34,13,95,61,153,210,97,61,200,148,100,61,170,83,103,61,59,15,106,61,118,199,108,61,87,124,111,61,217,45,114,61,249,219,116,61,178,134,119,61,0,46,122,61,222,209,124,61,73,114,127,61,158,7,129,61,90,84,130,61,86,159,131,61,144,232,132,61,6,48,134,61,182,117,135,61,158,185,136,61,189,251,137,61,16,60,139,61,149,122,140,61,75,183,141,61,47,242,142,61,64,43,144,61,124,98,145,61,226,151,146,61,110,203,147,61,33,253,148,61,247,44,150,61,239,
90,151,61,7,135,152,61,62,177,153,61,146,217,154,61,2,0,156,61,139,36,157,61,44,71,158,61,227,103,159,61,175,134,160,61,142,163,161,61,127,190,162,61,128,215,163,61,144,238,164,61,173,3,166,61,213,22,167,61,7,40,168,61,67,55,169,61,133,68,170,61,205,79,171,61,26,89,172,61,105,96,173,61,186,101,174,61,12,105,175,61,93,106,176,61,171,105,177,61,246,102,178,61,60,98,179,61,124,91,180,61,181,82,181,61,229,71,182,61,11,59,183,61,39,44,184,61,54,27,185,61,56,8,186,61,45,243,186,61,17,220,187,61,229,194,
188,61,168,167,189,61,88,138,190,61,245,106,191,61,125,73,192,61,239,37,193,61,75,0,194,61,143,216,194,61,187,174,195,61,205,130,196,61,197,84,197,61,163,36,198,61,100,242,198,61,8,190,199,61,143,135,200,61,247,78,201,61,64,20,202,61,105,215,202,61,113,152,203,61,88,87,204,61,29,20,205,61,191,206,205,61,61,135,206,61,151,61,207,61,205,241,207,61,221,163,208,61,199,83,209,61,138,1,210,61,38,173,210,61,155,86,211,61,231,253,211,61,11,163,212,61,5,70,213,61,214,230,213,61,124,133,214,61,248,33,215,61,
73,188,215,61,111,84,216,61,105,234,216,61,55,126,217,61,216,15,218,61,77,159,218,61,148,44,219,61,175,183,219,61,156,64,220,61,90,199,220,61,235,75,221,61,78,206,221,61,130,78,222,61,135,204,222,61,94,72,223,61,6,194,223,61,126,57,224,61,200,174,224,61,226,33,225,61,205,146,225,61,137,1,226,61,21,110,226,61,114,216,226,61,160,64,227,61,158,166,227,61,109,10,228,61,12,108,228,61,125,203,228,61,190,40,229,61,209,131,229,61,180,220,229,61,105,51,230,61,240,135,230,61,72,218,230,61,114,42,231,61,110,
120,231,61,61,196,231,61,222,13,232,61,82,85,232,61,153,154,232,61,179,221,232,61,162,30,233,61,100,93,233,61,252,153,233,61,104,212,233,61,169,12,234,61,192,66,234,61,173,118,234,61,113,168,234,61,11,216,234,61,126,5,235,61,200,48,235,61,235,89,235,61,231,128,235,61,188,165,235,61,108,200,235,61,246,232,235,61,92,7,236,61,158,35,236,61,189,61,236,61,184,85,236,61,146,107,236,61,74,127,236,61,226,144,236,61,89,160,236,61,178,173,236,61,236,184,236,61,8,194,236,61,7,201,236,61,235,205,236,61,178,208,
236,61,96,209,236,61,244,207,236,61,110,204,236,61,210,198,236,61,30,191,236,61,84,181,236,61,116,169,236,61,129,155,236,61,122,139,236,61,97,121,236,61,55,101,236,61,253,78,236,61,179,54,236,61,91,28,236,61,245,255,235,61,132,225,235,61,8,193,235,61,129,158,235,61,242,121,235,61,91,83,235,61,190,42,235,61,27,0,235,61,116,211,234,61,202,164,234,61,30,116,234,61,114,65,234,61,198,12,234,61,28,214,233,61,117,157,233,61,211,98,233,61,54,38,233,61,161,231,232,61,19,167,232,61,144,100,232,61,23,32,232,
61,171,217,231,61,76,145,231,61,253,70,231,61,190,250,230,61,145,172,230,61,120,92,230,61,116,10,230,61,133,182,229,61,175,96,229,61,242,8,229,61,79,175,228,61,201,83,228,61,97,246,227,61,24,151,227,61,240,53,227,61,235,210,226,61,9,110,226,61,78,7,226,61,185,158,225,61,78,52,225,61,13,200,224,61,248,89,224,61,17,234,223,61,90,120,223,61,212,4,223,61,128,143,222,61,98,24,222,61,121,159,221,61,201,36,221,61,83,168,220,61,24,42,220,61,26,170,219,61,92,40,219,61,222,164,218,61,164,31,218,61,173,152,
217,61,254,15,217,61,150,133,216,61,121,249,215,61,167,107,215,61,35,220,214,61,239,74,214,61,13,184,213,61,126,35,213,61,69,141,212,61,99,245,211,61,218,91,211,61,173,192,210,61,221,35,210,61,108,133,209,61,92,229,208,61,176,67,208,61,105,160,207,61,137,251,206,61,18,85,206,61,7,173,205,61,105,3,205,61,59,88,204,61,126,171,203,61,52,253,202,61,96,77,202,61,4,156,201,61,34,233,200,61,188,52,200,61,212,126,199,61,109,199,198,61,136,14,198,61,39,84,197,61,77,152,196,61,252,218,195,61,54,28,195,61,254,
91,194,61,85,154,193,61,62,215,192,61,186,18,192,61,205,76,191,61,120,133,190,61,190,188,189,61,161,242,188,61,35,39,188,61,71,90,187,61,14,140,186,61,124,188,185,61,145,235,184,61,82,25,184,61,191,69,183,61,219,112,182,61,170,154,181,61,44,195,180,61,100,234,179,61,85,16,179,61,1,53,178,61,106,88,177,61,147,122,176,61,126,155,175,61,46,187,174,61,165,217,173,61,228,246,172,61,240,18,172,61,202,45,171,61,116,71,170,61,241,95,169,61,67,119,168,61,110,141,167,61,115,162,166,61,84,182,165,61,20,201,
164,61,183,218,163,61,61,235,162,61,170,250,161,61,0,9,161,61,66,22,160,61,114,34,159,61,146,45,158,61,165,55,157,61,174,64,156,61,175,72,155,61,171,79,154,61,164,85,153,61,157,90,152,61,151,94,151,61,151,97,150,61,158,99,149,61,174,100,148,61,203,100,147,61,247,99,146,61,53,98,145,61,135,95,144,61,239,91,143,61,113,87,142,61,14,82,141,61,202,75,140,61,166,68,139,61,167,60,138,61,205,51,137,61,29,42,136,61,151,31,135,61,64,20,134,61,25,8,133,61,38,251,131,61,104,237,130,61,227,222,129,61,152,207,
128,61,23,127,127,61,127,93,125,61,108,58,123,61,229,21,121,61,237,239,118,61,140,200,116,61,197,159,114,61,159,117,112,61,30,74,110,61,72,29,108,61,34,239,105,61,177,191,103,61,252,142,101,61,6,93,99,61,213,41,97,61,111,245,94,61,217,191,92,61,25,137,90,61,51,81,88,61,44,24,86,61,11,222,83,61,213,162,81,61,142,102,79,61,61,41,77,61,230,234,74,61,143,171,72,61,61,107,70,61,246,41,68,61,191,231,65,61,157,164,63,61,149,96,61,61,174,27,59,61,235,213,56,61,84,143,54,61,236,71,52,61,185,255,49,61,193,
182,47,61,9,109,45,61,150,34,43,61,110,215,40,61,150,139,38,61,19,63,36,61,234,241,33,61,34,164,31,61,190,85,29,61,197,6,27,61,61,183,24,61,41,103,22,61,144,22,20,61,119,197,17,61,227,115,15,61,217,33,13,61,95,207,10,61,123,124,8,61,48,41,6,61,134,213,3,61,128,129,1,61,73,90,254,60,241,176,249,60,3,7,245,60,137,92,240,60,142,177,235,60,27,6,231,60,61,90,226,60,253,173,221,60,102,1,217,60,130,84,212,60,92,167,207,60,254,249,202,60,115,76,198,60,196,158,193,60,254,240,188,60,41,67,184,60,80,149,179,
60,127,231,174,60,190,57,170,60,25,140,165,60,153,222,160,60,74,49,156,60,53,132,151,60,101,215,146,60,228,42,142,60,189,126,137,60,248,210,132,60,162,39,128,60,135,249,118,60,207,164,109,60,47,81,100,60,189,254,90,60,139,173,81,60,176,93,72,60,62,15,63,60,74,194,53,60,233,118,44,60,46,45,35,60,45,229,25,60,250,158,16,60,170,90,7,60,159,48,252,59,0,176,233,59,156,51,215,59,155,187,196,59,38,72,178,59,99,217,159,59,123,111,141,59,38,21,118,59,167,85,81,59,199,160,44,59,211,246,7,59,52,176,198,58,161,
19,123,58,97,236,209,57,221,218,35,185,226,177,58,186,14,29,166,186,26,199,238,186,62,171,27,187,79,229,63,187,114,17,100,187,175,23,132,187,98,31,150,187,174,31,168,187,109,24,186,187,121,9,204,187,173,242,221,187,229,211,239,187,125,214,0,188,229,190,9,188,22,163,18,188,255,130,27,188,142,94,36,188,176,53,45,188,83,8,54,188,101,214,62,188,212,159,71,188,142,100,80,188,129,36,89,188,155,223,97,188,202,149,106,188,254,70,115,188,35,243,123,188,20,77,130,188,255,157,134,188,72,236,138,188,230,55,143,
188,211,128,147,188,4,199,151,188,113,10,156,188,18,75,160,188,221,136,164,188,204,195,168,188,212,251,172,188,238,48,177,188,17,99,181,188,53,146,185,188,82,190,189,188,95,231,193,188,84,13,198,188,41,48,202,188,214,79,206,188,83,108,210,188,150,133,214,188,154,155,218,188,84,174,222,188,190,189,226,188,208,201,230,188,129,210,234,188,202,215,238,188,163,217,242,188,4,216,246,188,229,210,250,188,63,202,254,188,5,95,1,189,31,87,3,189,106,77,5,189,226,65,7,189,131,52,9,189,74,37,11,189,51,20,13,189,
58,1,15,189,92,236,16,189,149,213,18,189,225,188,20,189,60,162,22,189,164,133,24,189,20,103,26,189,137,70,28,189,255,35,30,189,116,255,31,189,226,216,33,189,72,176,35,189,162,133,37,189,235,88,39,189,33,42,41,189,65,249,42,189,70,198,44,189,47,145,46,189,246,89,48,189,154,32,50,189,22,229,51,189,104,167,53,189,141,103,55,189,128,37,57,189,64,225,58,189,200,154,60,189,22,82,62,189,39,7,64,189,247,185,65,189,132,106,67,189,202,24,69,189,199,196,70,189,119,110,72,189,216,21,74,189,230,186,75,189,158,
93,77,189,255,253,78,189,4,156,80,189,171,55,82,189,242,208,83,189,212,103,85,189,81,252,86,189,100,142,88,189,11,30,90,189,68,171,91,189,11,54,93,189,95,190,94,189,60,68,96,189,160,199,97,189,136,72,99,189,241,198,100,189,218,66,102,189,64,188,103,189,31,51,105,189,119,167,106,189,67,25,108,189,130,136,109,189,50,245,110,189,80,95,112,189,218,198,113,189,205,43,115,189,39,142,116,189,231,237,117,189,8,75,119,189,139,165,120,189,107,253,121,189,168,82,123,189,62,165,124,189,44,245,125,189,112,66,
127,189,132,70,128,189,121,234,128,189,21,141,129,189,89,46,130,189,66,206,130,189,208,108,131,189,2,10,132,189,215,165,132,189,78,64,133,189,102,217,133,189,30,113,134,189,118,7,135,189,108,156,135,189,0,48,136,189,48,194,136,189,253,82,137,189,100,226,137,189,102,112,138,189,1,253,138,189,53,136,139,189,0,18,140,189,99,154,140,189,93,33,141,189,236,166,141,189,15,43,142,189,199,173,142,189,19,47,143,189,241,174,143,189,98,45,144,189,100,170,144,189,247,37,145,189,26,160,145,189,205,24,146,189,15,
144,146,189,223,5,147,189,61,122,147,189,41,237,147,189,161,94,148,189,165,206,148,189,53,61,149,189,80,170,149,189,245,21,150,189,37,128,150,189,223,232,150,189,33,80,151,189,237,181,151,189,64,26,152,189,28,125,152,189,127,222,152,189,105,62,153,189,218,156,153,189,210,249,153,189,79,85,154,189,82,175,154,189,218,7,155,189,231,94,155,189,121,180,155,189,143,8,156,189,42,91,156,189,72,172,156,189,234,251,156,189,15,74,157,189,183,150,157,189,226,225,157,189,144,43,158,189,193,115,158,189,116,186,
158,189,169,255,158,189,96,67,159,189,153,133,159,189,83,198,159,189,144,5,160,189,78,67,160,189,141,127,160,189,78,186,160,189,144,243,160,189,84,43,161,189,153,97,161,189,95,150,161,189,166,201,161,189,111,251,161,189,185,43,162,189,132,90,162,189,208,135,162,189,158,179,162,189,238,221,162,189,191,6,163,189,18,46,163,189,230,83,163,189,60,120,163,189,21,155,163,189,111,188,163,189,76,220,163,189,172,250,163,189,142,23,164,189,243,50,164,189,219,76,164,189,70,101,164,189,53,124,164,189,167,145,
164,189,158,165,164,189,25,184,164,189,25,201,164,189,157,216,164,189,167,230,164,189,54,243,164,189,75,254,164,189,231,7,165,189,9,16,165,189,177,22,165,189,225,27,165,189,153,31,165,189,217,33,165,189,162,34,165,189,243,33,165,189,206,31,165,189,51,28,165,189,34,23,165,189,156,16,165,189,161,8,165,189,50,255,164,189,79,244,164,189,250,231,164,189,49,218,164,189,247,202,164,189,75,186,164,189,46,168,164,189,160,148,164,189,163,127,164,189,55,105,164,189,92,81,164,189,20,56,164,189,94,29,164,189,
60,1,164,189,173,227,163,189,180,196,163,189,79,164,163,189,130,130,163,189,74,95,163,189,171,58,163,189,164,20,163,189,54,237,162,189,97,196,162,189,40,154,162,189,137,110,162,189,135,65,162,189,34,19,162,189,90,227,161,189,50,178,161,189,168,127,161,189,191,75,161,189,119,22,161,189,209,223,160,189,206,167,160,189,111,110,160,189,180,51,160,189,159,247,159,189,48,186,159,189,105,123,159,189,75,59,159,189,213,249,158,189,10,183,158,189,234,114,158,189,119,45,158,189,176,230,157,189,152,158,157,189,
47,85,157,189,119,10,157,189,112,190,156,189,27,113,156,189,121,34,156,189,140,210,155,189,85,129,155,189,212,46,155,189,11,219,154,189,251,133,154,189,165,47,154,189,10,216,153,189,43,127,153,189,9,37,153,189,166,201,152,189,3,109,152,189,32,15,152,189,0,176,151,189,163,79,151,189,10,238,150,189,54,139,150,189,42,39,150,189,230,193,149,189,107,91,149,189,186,243,148,189,214,138,148,189,190,32,148,189,117,181,147,189,251,72,147,189,83,219,146,189,124,108,146,189,121,252,145,189,75,139,145,189,243,
24,145,189,115,165,144,189,203,48,144,189,254,186,143,189,12,68,143,189,247,203,142,189,193,82,142,189,106,216,141,189,244,92,141,189,97,224,140,189,177,98,140,189,231,227,139,189,3,100,139,189,8,227,138,189,246,96,138,189,208,221,137,189,150,89,137,189,73,212,136,189,236,77,136,189,129,198,135,189,7,62,135,189,129,180,134,189,241,41,134,189,88,158,133,189,183,17,133,189,16,132,132,189,100,245,131,189,182,101,131,189,6,213,130,189,86,67,130,189,168,176,129,189,253,28,129,189,87,136,128,189,109,229,
127,189,62,184,126,189,33,137,125,189,26,88,124,189,45,37,123,189,93,240,121,189,173,185,120,189,32,129,119,189,185,70,118,189,124,10,117,189,108,204,115,189,141,140,114,189,225,74,113,189,108,7,112,189,49,194,110,189,52,123,109,189,119,50,108,189,0,232,106,189,207,155,105,189,234,77,104,189,84,254,102,189,15,173,101,189,32,90,100,189,137,5,99,189,79,175,97,189,116,87,96,189,253,253,94,189,236,162,93,189,69,70,92,189,12,232,90,189,68,136,89,189,241,38,88,189,21,196,86,189,181,95,85,189,213,249,83,
189,119,146,82,189,160,41,81,189,82,191,79,189,146,83,78,189,99,230,76,189,201,119,75,189,199,7,74,189,96,150,72,189,154,35,71,189,118,175,69,189,249,57,68,189,38,195,66,189,2,75,65,189,143,209,63,189,210,86,62,189,205,218,60,189,134,93,59,189,254,222,57,189,59,95,56,189,64,222,54,189,16,92,53,189,175,216,51,189,34,84,50,189,107,206,48,189,142,71,47,189,144,191,45,189,115,54,44,189,60,172,42,189,239,32,41,189,142,148,39,189,31,7,38,189,164,120,36,189,34,233,34,189,156,88,33,189,22,199,31,189,148,
52,30,189,25,161,28,189,170,12,27,189,74,119,25,189,253,224,23,189,199,73,22,189,172,177,20,189,175,24,19,189,212,126,17,189,32,228,15,189,149,72,14,189,57,172,12,189,14,15,11,189,24,113,9,189,92,210,7,189,221,50,6,189,159,146,4,189,165,241,2,189,245,79,1,189,33,91,255,188,250,20,252,188,123,205,248,188,173,132,245,188,150,58,242,188,64,239,238,188,176,162,235,188,240,84,232,188,7,6,229,188,252,181,225,188,216,100,222,188,162,18,219,188,97,191,215,188,30,107,212,188,225,21,209,188,176,191,205,188,
149,104,202,188,150,16,199,188,187,183,195,188,12,94,192,188,145,3,189,188,81,168,185,188,85,76,182,188,163,239,178,188,68,146,175,188,64,52,172,188,158,213,168,188,102,118,165,188,159,22,162,188,81,182,158,188,133,85,155,188,65,244,151,188,142,146,148,188,115,48,145,188,247,205,141,188,36,107,138,188,255,7,135,188,145,164,131,188,226,64,128,188,243,185,121,188,189,241,114,188,51,41,108,188,98,96,101,188,92,151,94,188,46,206,87,188,233,4,81,188,156,59,74,188,85,114,67,188,36,169,60,188,24,224,53,
188,65,23,47,188,173,78,40,188,108,134,33,188,141,190,26,188,30,247,19,188,48,48,13,188,209,105,6,188,32,72,255,187,248,189,241,187,73,53,228,187,48,174,214,187,203,40,201,187,56,165,187,187,149,35,174,187,1,164,160,187,151,38,147,187,119,171,133,187,124,101,112,187,18,121,85,187,237,145,58,187,70,176,31,187,89,212,4,187,194,252,211,186,47,93,158,186,226,148,81,186,235,19,205,185,176,175,140,55,27,113,222,57,83,238,89,58,243,66,162,58,48,127,215,58,182,85,6,59,155,227,32,59,12,105,59,59,209,229,85,
59,177,89,112,59,57,98,133,59,238,146,146,59,218,190,159,59,227,229,172,59,235,7,186,59,213,36,199,59,135,60,212,59,229,78,225,59,209,91,238,59,49,99,251,59,116,50,4,60,109,176,10,60,119,43,17,60,131,163,23,60,131,24,30,60,107,138,36,60,44,249,42,60,184,100,49,60,2,205,55,60,253,49,62,60,155,147,68,60,206,241,74,60,138,76,81,60,192,163,87,60,100,247,93,60,105,71,100,60,192,147,106,60,93,220,112,60,51,33,119,60,52,98,125,60,170,207,129,60,67,236,132,60,222,6,136,60,117,31,139,60,1,54,142,60,125,74,
145,60,225,92,148,60,39,109,151,60,74,123,154,60,66,135,157,60,9,145,160,60,154,152,163,60,238,157,166,60,254,160,169,60,197,161,172,60,60,160,175,60,94,156,178,60,35,150,181,60,135,141,184,60,131,130,187,60,17,117,190,60,43,101,193,60,203,82,196,60,235,61,199,60,133,38,202,60,148,12,205,60,18,240,207,60,248,208,210,60,65,175,213,60,231,138,216,60,228,99,219,60,51,58,222,60,207,13,225,60,176,222,227,60,210,172,230,60,48,120,233,60,195,64,236,60,134,6,239,60,116,201,241,60,134,137,244,60,184,70,247,
60,5,1,250,60,102,184,252,60,215,108,255,60,41,15,1,61,105,102,2,61,41,188,3,61,102,16,5,61,29,99,6,61,77,180,7,61,242,3,9,61,10,82,10,61,146,158,11,61,136,233,12,61,234,50,14,61,180,122,15,61,229,192,16,61,121,5,18,61,111,72,19,61,197,137,20,61,118,201,21,61,131,7,23,61,231,67,24,61,160,126,25,61,173,183,26,61,11,239,27,61,184,36,29,61,176,88,30,61,243,138,31,61,126,187,32,61,78,234,33,61,97,23,35,61,182,66,36,61,73,108,37,61,26,148,38,61,37,186,39,61,104,222,40,61,226,0,42,61,144,33,43,61,113,64,
44,61,130,93,45,61,192,120,46,61,43,146,47,61,192,169,48,61,125,191,49,61,96,211,50,61,104,229,51,61,145,245,52,61,219,3,54,61,68,16,55,61,201,26,56,61,104,35,57,61,33,42,58,61,240,46,59,61,213,49,60,61,205,50,61,61,215,49,62,61,240,46,63,61,24,42,64,61,76,35,65,61,140,26,66,61,212,15,67,61,35,3,68,61,120,244,68,61,210,227,69,61,46,209,70,61,139,188,71,61,231,165,72,61,66,141,73,61,152,114,74,61,234,85,75,61,53,55,76,61,119,22,77,61,176,243,77,61,222,206,78,61,0,168,79,61,20,127,80,61,24,84,81,61,
13,39,82,61,239,247,82,61,190,198,83,61,120,147,84,61,29,94,85,61,171,38,86,61,32,237,86,61,124,177,87,61,190,115,88,61,227,51,89,61,235,241,89,61,214,173,90,61,161,103,91,61,75,31,92,61,212,212,92,61,59,136,93,61,126,57,94,61,156,232,94,61,149,149,95,61,103,64,96,61,18,233,96,61,148,143,97,61,236,51,98,61,27,214,98,61,30,118,99,61,245,19,100,61,159,175,100,61,27,73,101,61,105,224,101,61,135,117,102,61,118,8,103,61,51,153,103,61,191,39,104,61,24,180,104,61,63,62,105,61,49,198,105,61,240,75,106,61,
121,207,106,61,205,80,107,61,235,207,107,61,210,76,108,61,130,199,108,61,250,63,109,61,58,182,109,61,65,42,110,61,15,156,110,61,163,11,111,61,253,120,111,61,28,228,111,61,0,77,112,61,169,179,112,61,22,24,113,61,72,122,113,61,61,218,113,61,245,55,114,61,112,147,114,61,175,236,114,61,176,67,115,61,115,152,115,61,249,234,115,61,64,59,116,61,74,137,116,61,21,213,116,61,162,30,117,61,240,101,117,61,0,171,117,61,210,237,117,61,100,46,118,61,184,108,118,61,206,168,118,61,164,226,118,61,61,26,119,61,150,
79,119,61,177,130,119,61,142,179,119,61,45,226,119,61,142,14,120,61,176,56,120,61,149,96,120,61,60,134,120,61,166,169,120,61,211,202,120,61,195,233,120,61,119,6,121,61,238,32,121,61,41,57,121,61,41,79,121,61,237,98,121,61,119,116,121,61,198,131,121,61,218,144,121,61,181,155,121,61,87,164,121,61,192,170,121,61,241,174,121,61,234,176,121,61,172,176,121,61,54,174,121,61,139,169,121,61,170,162,121,61,148,153,121,61,74,142,121,61,204,128,121,61,27,113,121,61,56,95,121,61,34,75,121,61,220,52,121,61,101,
28,121,61,191,1,121,61,234,228,120,61,231,197,120,61,183,164,120,61,90,129,120,61,210,91,120,61,31,52,120,61,66,10,120,61,60,222,119,61,15,176,119,61,186,127,119,61,63,77,119,61,158,24,119,61,218,225,118,61,242,168,118,61,232,109,118,61,189,48,118,61,114,241,117,61,7,176,117,61,127,108,117,61,218,38,117,61,25,223,116,61,61,149,116,61,72,73,116,61,59,251,115,61,22,171,115,61,220,88,115,61,141,4,115,61,42,174,114,61,181,85,114,61,48,251,113,61,154,158,113,61,247,63,113,61,70,223,112,61,138,124,112,
61,196,23,112,61,244,176,111,61,29,72,111,61,64,221,110,61,95,112,110,61,122,1,110,61,147,144,109,61,172,29,109,61,198,168,108,61,226,49,108,61,3,185,107,61,42,62,107,61,88,193,106,61,143,66,106,61,208,193,105,61,29,63,105,61,120,186,104,61,226,51,104,61,93,171,103,61,235,32,103,61,140,148,102,61,68,6,102,61,20,118,101,61,252,227,100,61,0,80,100,61,33,186,99,61,97,34,99,61,192,136,98,61,66,237,97,61,232,79,97,61,180,176,96,61,168,15,96,61,197,108,95,61,13,200,94,61,131,33,94,61,40,121,93,61,254,206,
92,61,7,35,92,61,69,117,91,61,185,197,90,61,103,20,90,61,80,97,89,61,117,172,88,61,217,245,87,61,126,61,87,61,102,131,86,61,147,199,85,61,7,10,85,61,196,74,84,61,204,137,83,61,34,199,82,61,198,2,82,61,189,60,81,61,7,117,80,61,166,171,79,61,158,224,78,61,240,19,78,61,158,69,77,61,171,117,76,61,24,164,75,61,233,208,74,61,30,252,73,61,187,37,73,61,194,77,72,61,53,116,71,61,22,153,70,61,103,188,69,61,43,222,68,61,101,254,67,61,22,29,67,61,65,58,66,61,232,85,65,61,14,112,64,61,180,136,63,61,222,159,62,
61,142,181,61,61,198,201,60,61,136,220,59,61,216,237,58,61,183,253,57,61,39,12,57,61,44,25,56,61,200,36,55,61,253,46,54,61,206,55,53,61,61,63,52,61,77,69,51,61,0,74,50,61,89,77,49,61,90,79,48,61,7,80,47,61,96,79,46,61,106,77,45,61,39,74,44,61,152,69,43,61,194,63,42,61,165,56,41,61,70,48,40,61,166,38,39,61,201,27,38,61,176,15,37,61,95,2,36,61,217,243,34,61,31,228,33,61,52,211,32,61,28,193,31,61,217,173,30,61,109,153,29,61,219,131,28,61,39,109,27,61,82,85,26,61,95,60,25,61,82,34,24,61,44,7,23,61,242,
234,21,61,164,205,20,61,71,175,19,61,221,143,18,61,104,111,17,61,236,77,16,61,107,43,15,61,232,7,14,61,102,227,12,61,231,189,11,61,111,151,10,61,0,112,9,61,158,71,8,61,74,30,7,61,8,244,5,61,218,200,4,61,196,156,3,61,201,111,2,61,234,65,1,61,44,19,0,61,32,199,253,60,52,102,251,60,153,3,249,60,85,159,246,60,111,57,244,60,234,209,241,60,206,104,239,60,32,254,236,60,230,145,234,60,38,36,232,60,229,180,229,60,42,68,227,60,250,209,224,60,91,94,222,60,83,233,219,60,232,114,217,60,31,251,214,60,255,129,212,
60,142,7,210,60,208,139,207,60,205,14,205,60,138,144,202,60,13,17,200,60,92,144,197,60,125,14,195,60,118,139,192,60,76,7,190,60,6,130,187,60,169,251,184,60,60,116,182,60,196,235,179,60,72,98,177,60,205,215,174,60,89,76,172,60,242,191,169,60,159,50,167,60,101,164,164,60,74,21,162,60,84,133,159,60,137,244,156,60,239,98,154,60,140,208,151,60,102,61,149,60,131,169,146,60,233,20,144,60,158,127,141,60,168,233,138,60,12,83,136,60,210,187,133,60,254,35,131,60,151,139,128,60,70,229,123,60,79,178,118,60,86,
126,113,60,103,73,108,60,140,19,103,60,211,220,97,60,72,165,92,60,246,108,87,60,232,51,82,60,45,250,76,60,206,191,71,60,216,132,66,60,87,73,61,60,87,13,56,60,228,208,50,60,9,148,45,60,211,86,40,60,77,25,35,60,132,219,29,60,131,157,24,60,86,95,19,60,9,33,14,60,168,226,8,60,63,164,3,60,177,203,252,59,4,79,242,59,140,210,231,59,99,86,221,59,159,218,210,59,87,95,200,59,164,228,189,59],"i8",4,y.a+10240);
Q([157,106,179,59,90,241,168,59,241,120,158,59,123,1,148,59,14,139,137,59,133,43,126,59,94,67,105,59,214,93,84,59,28,123,63,59,94,155,42,59,203,190,21,59,145,229,0,59,188,31,216,58,193,123,174,58,142,223,132,58,249,150,54,58,172,255,198,57,64,211,131,56,50,241,132,185,118,88,21,186,121,36,104,186,245,109,157,186,11,191,198,186,35,5,240,186,241,159,12,187,119,55,33,187,246,200,53,187,65,84,74,187,44,217,94,187,137,87,115,187,150,231,131,187,244,31,142,187,200,84,152,187,253,133,162,187,123,179,172,
187,45,221,182,187,252,2,193,187,211,36,203,187,156,66,213,187,64,92,223,187,171,113,233,187,197,130,243,187,122,143,253,187,218,203,3,188,174,205,8,188,47,205,13,188,82,202,18,188,12,197,23,188,83,189,28,188,28,179,33,188,92,166,38,188,8,151,43,188,23,133,48,188,125,112,53,188,48,89,58,188,38,63,63,188,84,34,68,188,176,2,73,188,46,224,77,188,198,186,82,188,109,146,87,188,24,103,92,188,189,56,97,188,83,7,102,188,206,210,106,188,37,155,111,188,77,96,116,188,61,34,121,188,234,224,125,188,38,78,129,
188,43,170,131,188,128,4,134,188,32,93,136,188,6,180,138,188,45,9,141,188,144,92,143,188,43,174,145,188,248,253,147,188,243,75,150,188,23,152,152,188,95,226,154,188,198,42,157,188,72,113,159,188,224,181,161,188,137,248,163,188,63,57,166,188,253,119,168,188,190,180,170,188,125,239,172,188,55,40,175,188,230,94,177,188,134,147,179,188,18,198,181,188,135,246,183,188,222,36,186,188,21,81,188,188,39,123,190,188,14,163,192,188,200,200,194,188,78,236,196,188,158,13,199,188,178,44,201,188,135,73,203,188,24,
100,205,188,97,124,207,188,94,146,209,188,10,166,211,188,97,183,213,188,96,198,215,188,1,211,217,188,66,221,219,188,29,229,221,188,143,234,223,188,148,237,225,188,39,238,227,188,69,236,229,188,234,231,231,188,18,225,233,188,185,215,235,188,218,203,237,188,115,189,239,188,127,172,241,188,251,152,243,188,227,130,245,188,50,106,247,188,230,78,249,188,250,48,251,188,108,16,253,188,54,237,254,188,171,99,0,189,100,79,1,189,196,57,2,189,202,34,3,189,116,10,4,189,191,240,4,189,170,213,5,189,52,185,6,189,
91,155,7,189,29,124,8,189,120,91,9,189,108,57,10,189,245,21,11,189,18,241,11,189,195,202,12,189,4,163,13,189,214,121,14,189,53,79,15,189,33,35,16,189,151,245,16,189,152,198,17,189,31,150,18,189,46,100,19,189,193,48,20,189,215,251,20,189,112,197,21,189,137,141,22,189,32,84,23,189,54,25,24,189,199,220,24,189,212,158,25,189,89,95,26,189,87,30,27,189,204,219,27,189,181,151,28,189,19,82,29,189,227,10,30,189,37,194,30,189,215,119,31,189,248,43,32,189,134,222,32,189,129,143,33,189,231,62,34,189,182,236,
34,189,239,152,35,189,143,67,36,189,149,236,36,189,1,148,37,189,209,57,38,189,4,222,38,189,153,128,39,189,142,33,40,189,228,192,40,189,152,94,41,189,169,250,41,189,24,149,42,189,226,45,43,189,6,197,43,189,132,90,44,189,91,238,44,189,138,128,45,189,15,17,46,189,235,159,46,189,27,45,47,189,159,184,47,189,119,66,48,189,161,202,48,189,28,81,49,189,233,213,49,189,5,89,50,189,112,218,50,189,41,90,51,189,48,216,51,189,132,84,52,189,36,207,52,189,15,72,53,189,69,191,53,189,197,52,54,189,142,168,54,189,159,
26,55,189,249,138,55,189,154,249,55,189,130,102,56,189,176,209,56,189,35,59,57,189,220,162,57,189,217,8,58,189,26,109,58,189,158,207,58,189,101,48,59,189,111,143,59,189,187,236,59,189,72,72,60,189,22,162,60,189,37,250,60,189,117,80,61,189,4,165,61,189,211,247,61,189,224,72,62,189,45,152,62,189,184,229,62,189,129,49,63,189,136,123,63,189,205,195,63,189,79,10,64,189,14,79,64,189,10,146,64,189,67,211,64,189,184,18,65,189,105,80,65,189,86,140,65,189,127,198,65,189,228,254,65,189,133,53,66,189,97,106,
66,189,121,157,66,189,204,206,66,189,90,254,66,189,35,44,67,189,40,88,67,189,104,130,67,189,227,170,67,189,154,209,67,189,139,246,67,189,184,25,68,189,33,59,68,189,197,90,68,189,164,120,68,189,191,148,68,189,22,175,68,189,169,199,68,189,120,222,68,189,131,243,68,189,202,6,69,189,78,24,69,189,15,40,69,189,14,54,69,189,73,66,69,189,194,76,69,189,121,85,69,189,110,92,69,189,162,97,69,189,20,101,69,189,198,102,69,189,183,102,69,189,231,100,69,189,89,97,69,189,10,92,69,189,253,84,69,189,49,76,69,189,168,
65,69,189,96,53,69,189,92,39,69,189,154,23,69,189,29,6,69,189,228,242,68,189,240,221,68,189,65,199,68,189,217,174,68,189,183,148,68,189,220,120,68,189,73,91,68,189,254,59,68,189,252,26,68,189,68,248,67,189,215,211,67,189,180,173,67,189,221,133,67,189,83,92,67,189,22,49,67,189,38,4,67,189,134,213,66,189,52,165,66,189,51,115,66,189,131,63,66,189,37,10,66,189,25,211,65,189,97,154,65,189,253,95,65,189,238,35,65,189,53,230,64,189,211,166,64,189,201,101,64,189,24,35,64,189,193,222,63,189,196,152,63,189,
34,81,63,189,221,7,63,189,246,188,62,189,109,112,62,189,68,34,62,189,124,210,61,189,21,129,61,189,16,46,61,189,112,217,60,189,52,131,60,189,95,43,60,189,240,209,59,189,233,118,59,189,76,26,59,189,25,188,58,189,82,92,58,189,248,250,57,189,11,152,57,189,142,51,57,189,129,205,56,189,230,101,56,189,189,252,55,189,9,146,55,189,202,37,55,189,1,184,54,189,177,72,54,189,217,215,53,189,125,101,53,189,156,241,52,189,56,124,52,189,82,5,52,189,237,140,51,189,9,19,51,189,167,151,50,189,202,26,50,189,114,156,49,
189,160,28,49,189,87,155,48,189,152,24,48,189,100,148,47,189,189,14,47,189,164,135,46,189,26,255,45,189,34,117,45,189,188,233,44,189,234,92,44,189,174,206,43,189,10,63,43,189,254,173,42,189,141,27,42,189,183,135,41,189,127,242,40,189,230,91,40,189,238,195,39,189,153,42,39,189,231,143,38,189,219,243,37,189,118,86,37,189,187,183,36,189,170,23,36,189,69,118,35,189,142,211,34,189,135,47,34,189,50,138,33,189,144,227,32,189,163,59,32,189,108,146,31,189,238,231,30,189,42,60,30,189,34,143,29,189,216,224,
28,189,77,49,28,189,132,128,27,189,126,206,26,189,61,27,26,189,195,102,25,189,17,177,24,189,42,250,23,189,15,66,23,189,195,136,22,189,71,206,21,189,157,18,21,189,199,85,20,189,198,151,19,189,158,216,18,189,79,24,18,189,220,86,17,189,70,148,16,189,144,208,15,189,187,11,15,189,202,69,14,189,190,126,13,189,153,182,12,189,94,237,11,189,14,35,11,189,172,87,10,189,57,139,9,189,183,189,8,189,41,239,7,189,144,31,7,189,239,78,6,189,72,125,5,189,156,170,4,189,238,214,3,189,63,2,3,189,147,44,2,189,234,85,1,
189,71,126,0,189,90,75,255,188,57,152,253,188,49,227,251,188,71,44,250,188,125,115,248,188,217,184,246,188,95,252,244,188,19,62,243,188,249,125,241,188,22,188,239,188,110,248,237,188,6,51,236,188,225,107,234,188,5,163,232,188,116,216,230,188,53,12,229,188,75,62,227,188,187,110,225,188,137,157,223,188,185,202,221,188,81,246,219,188,84,32,218,188,199,72,216,188,174,111,214,188,15,149,212,188,237,184,210,188,76,219,208,188,50,252,206,188,164,27,205,188,164,57,203,188,57,86,201,188,102,113,199,188,49,
139,197,188,157,163,195,188,176,186,193,188,109,208,191,188,218,228,189,188,251,247,187,188,213,9,186,188,109,26,184,188,198,41,182,188,230,55,180,188,209,68,178,188,140,80,176,188,27,91,174,188,132,100,172,188,203,108,170,188,244,115,168,188,5,122,166,188,1,127,164,188,238,130,162,188,209,133,160,188,173,135,158,188,137,136,156,188,103,136,154,188,78,135,152,188,66,133,150,188,72,130,148,188,99,126,146,188,154,121,144,188,241,115,142,188,109,109,140,188,17,102,138,188,228,93,136,188,234,84,134,188,
39,75,132,188,161,64,130,188,92,53,128,188,185,82,124,188,80,57,120,188,134,30,116,188,100,2,112,188,245,228,107,188,65,198,103,188,82,166,99,188,50,133,95,188,234,98,91,188,132,63,87,188,10,27,83,188,133,245,78,188,254,206,74,188,128,167,70,188,19,127,66,188,194,85,62,188,149,43,58,188,152,0,54,188,210,212,49,188,78,168,45,188,22,123,41,188,50,77,37,188,173,30,33,188,143,239,28,188,228,191,24,188,180,143,20,188,8,95,16,188,235,45,12,188,101,252,7,188,129,202,3,188,145,48,255,187,137,203,246,187,
252,101,238,187,255,255,229,187,164,153,221,187,255,50,213,187,35,204,204,187,33,101,196,187,15,254,187,187,254,150,179,187,1,48,171,187,44,201,162,187,146,98,154,187,69,252,145,187,88,150,137,187,223,48,129,187,215,151,113,187,35,207,96,187,198,7,80,187,231,65,63,187,171,125,46,187,56,187,29,187,179,250,12,187,132,120,248,186,19,0,215,186,96,140,181,186,180,29,148,186,182,104,101,186,61,161,34,186,36,203,191,185,81,178,233,184,26,176,21,57,152,1,208,57,115,135,42,58,102,255,108,58,10,180,151,58,
116,224,184,58,168,4,218,58,93,32,251,58,165,25,14,59,146,158,30,59,211,30,47,59,65,154,63,59,186,16,80,59,25,130,96,59,57,238,112,59,124,170,128,59,23,219,136,59,222,8,145,59,189,51,153,59,164,91,161,59,127,128,169,59,62,162,177,59,207,192,185,59,31,220,193,59,30,244,201,59,185,8,210,59,223,25,218,59,126,39,226,59,133,49,234,59,226,55,242,59,133,58,250,59,173,28,1,60,41,26,5,60,174,21,9,60,50,15,13,60,174,6,17,60,24,252,20,60,105,239,24,60,151,224,28,60,154,207,32,60,106,188,36,60,255,166,40,60,
79,143,44,60,82,117,48,60,1,89,52,60,82,58,56,60,61,25,60,60,187,245,63,60,195,207,67,60,76,167,71,60,79,124,75,60,195,78,79,60,160,30,83,60,223,235,86,60,118,182,90,60,94,126,94,60,143,67,98,60,1,6,102,60,172,197,105,60,136,130,109,60,141,60,113,60,179,243,116,60,242,167,120,60,67,89,124,60,207,3,128,60,126,217,129,60,169,173,131,60,78,128,133,60,105,81,135,60,245,32,137,60,239,238,138,60,83,187,140,60,30,134,142,60,75,79,144,60,216,22,146,60,191,220,147,60,254,160,149,60,145,99,151,60,116,36,153,
60,163,227,154,60,28,161,156,60,218,92,158,60,218,22,160,60,23,207,161,60,144,133,163,60,64,58,165,60,35,237,166,60,54,158,168,60,118,77,170,60,223,250,171,60,111,166,173,60,32,80,175,60,240,247,176,60,220,157,178,60,224,65,180,60,249,227,181,60,36,132,183,60,93,34,185,60,161,190,186,60,236,88,188,60,60,241,189,60,141,135,191,60,221,27,193,60,39,174,194,60,105,62,196,60,159,204,197,60,199,88,199,60,221,226,200,60,223,106,202,60,201,240,203,60,152,116,205,60,73,246,206,60,217,117,208,60,70,243,209,
60,139,110,211,60,167,231,212,60,151,94,214,60,87,211,215,60,228,69,217,60,60,182,218,60,93,36,220,60,66,144,221,60,234,249,222,60,81,97,224,60,118,198,225,60,84,41,227,60,234,137,228,60,52,232,229,60,49,68,231,60,222,157,232,60,55,245,233,60,58,74,235,60,230,156,236,60,54,237,237,60,41,59,239,60,189,134,240,60,238,207,241,60,186,22,243,60,31,91,244,60,27,157,245,60,171,220,246,60,205,25,248,60,126,84,249,60,188,140,250,60,133,194,251,60,214,245,252,60,174,38,254,60,10,85,255,60,116,64,0,61,34,213,
0,61,144,104,1,61,187,250,1,61,163,139,2,61,71,27,3,61,165,169,3,61,189,54,4,61,141,194,4,61,21,77,5,61,84,214,5,61,72,94,6,61,241,228,6,61,78,106,7,61,94,238,7,61,31,113,8,61,146,242,8,61,181,114,9,61,135,241,9,61,7,111,10,61,53,235,10,61,16,102,11,61,150,223,11,61,200,87,12,61,164,206,12,61,41,68,13,61,87,184,13,61,45,43,14,61,170,156,14,61,206,12,15,61,151,123,15,61,5,233,15,61,23,85,16,61,205,191,16,61,37,41,17,61,32,145,17,61,189,247,17,61,250,92,18,61,216,192,18,61,85,35,19,61,113,132,19,61,
44,228,19,61,132,66,20,61,122,159,20,61,13,251,20,61,60,85,21,61,6,174,21,61,108,5,22,61,108,91,22,61,6,176,22,61,58,3,23,61,8,85,23,61,110,165,23,61,108,244,23,61,2,66,24,61,48,142,24,61,244,216,24,61,80,34,25,61,65,106,25,61,201,176,25,61,230,245,25,61,152,57,26,61,224,123,26,61,187,188,26,61,44,252,26,61,48,58,27,61,199,118,27,61,243,177,27,61,177,235,27,61,3,36,28,61,231,90,28,61,93,144,28,61,102,196,28,61,2,247,28,61,47,40,29,61,238,87,29,61,62,134,29,61,32,179,29,61,148,222,29,61,152,8,30,61,
46,49,30,61,85,88,30,61,13,126,30,61,86,162,30,61,48,197,30,61,155,230,30,61,151,6,31,61,35,37,31,61,65,66,31,61,239,93,31,61,46,120,31,61,254,144,31,61,95,168,31,61,81,190,31,61,212,210,31,61,233,229,31,61,142,247,31,61,198,7,32,61,142,22,32,61,233,35,32,61,213,47,32,61,83,58,32,61,100,67,32,61,7,75,32,61,61,81,32,61,5,86,32,61,96,89,32,61,79,91,32,61,209,91,32,61,231,90,32,61,146,88,32,61,208,84,32,61,163,79,32,61,12,73,32,61,9,65,32,61,156,55,32,61,198,44,32,61,133,32,32,61,219,18,32,61,201,3,
32,61,78,243,31,61,107,225,31,61,32,206,31,61,110,185,31,61,86,163,31,61,215,139,31,61,242,114,31,61,168,88,31,61,249,60,31,61,230,31,31,61,111,1,31,61,149,225,30,61,88,192,30,61,185,157,30,61,184,121,30,61,86,84,30,61,148,45,30,61,114,5,30,61,241,219,29,61,17,177,29,61,211,132,29,61,56,87,29,61,64,40,29,61,237,247,28,61,62,198,28,61,52,147,28,61,208,94,28,61,20,41,28,61,255,241,27,61,146,185,27,61,206,127,27,61,180,68,27,61,69,8,27,61,129,202,26,61,105,139,26,61,255,74,26,61,66,9,26,61,51,198,25,
61,212,129,25,61,38,60,25,61,40,245,24,61,221,172,24,61,69,99,24,61,96,24,24,61,48,204,23,61,182,126,23,61,243,47,23,61,231,223,22,61,147,142,22,61,249,59,22,61,25,232,21,61,245,146,21,61,141,60,21,61,226,228,20,61,246,139,20,61,201,49,20,61,93,214,19,61,178,121,19,61,202,27,19,61,165,188,18,61,69,92,18,61,170,250,17,61,215,151,17,61,203,51,17,61,137,206,16,61,17,104,16,61,100,0,16,61,131,151,15,61,112,45,15,61,44,194,14,61,184,85,14,61,21,232,13,61,68,121,13,61,71,9,13,61,31,152,12,61,204,37,12,
61,81,178,11,61,174,61,11,61,228,199,10,61,246,80,10,61,228,216,9,61,175,95,9,61,89,229,8,61,227,105,8,61,79,237,7,61,157,111,7,61,207,240,6,61,230,112,6,61,228,239,5,61,202,109,5,61,153,234,4,61,83,102,4,61,249,224,3,61,140,90,3,61,15,211,2,61,129,74,2,61,229,192,1,61,60,54,1,61,136,170,0,61,202,29,0,61,5,32,255,60,104,2,254,60,192,226,252,60,16,193,251,60,89,157,250,60,160,119,249,60,231,79,248,60,50,38,247,60,130,250,245,60,220,204,244,60,67,157,243,60,184,107,242,60,64,56,241,60,222,2,240,60,
148,203,238,60,102,146,237,60,87,87,236,60,105,26,235,60,161,219,233,60,1,155,232,60,141,88,231,60,71,20,230,60,51,206,228,60,84,134,227,60,173,60,226,60,66,241,224,60,22,164,223,60,43,85,222,60,134,4,221,60,42,178,219,60,26,94,218,60,89,8,217,60,234,176,215,60,210,87,214,60,19,253,212,60,176,160,211,60,174,66,210,60,15,227,208,60,215,129,207,60,9,31,206,60,169,186,204,60,187,84,203,60,64,237,201,60,62,132,200,60,184,25,199,60,177,173,197,60,44,64,196,60,45,209,194,60,184,96,193,60,208,238,191,60,
120,123,190,60,181,6,189,60,138,144,187,60,250,24,186,60,8,160,184,60,186,37,183,60,17,170,181,60,18,45,180,60,193,174,178,60,32,47,177,60,52,174,175,60,0,44,174,60,136,168,172,60,208,35,171,60,218,157,169,60,172,22,168,60,72,142,166,60,179,4,165,60,239,121,163,60,1,238,161,60,237,96,160,60,181,210,158,60,95,67,157,60,237,178,155,60,99,33,154,60,198,142,152,60,24,251,150,60,94,102,149,60,155,208,147,60,211,57,146,60,11,162,144,60,69,9,143,60,133,111,141,60,208,212,139,60,41,57,138,60,148,156,136,
60,21,255,134,60,175,96,133,60,103,193,131,60,64,33,130,60,62,128,128,60,202,188,125,60,114,119,122,60,123,48,119,60,237,231,115,60,208,157,112,60,43,82,109,60,6,5,106,60,106,182,102,60,93,102,99,60,232,20,96,60,18,194,92,60,227,109,89,60,99,24,86,60,153,193,82,60,142,105,79,60,73,16,76,60,210,181,72,60,49,90,69,60,110,253,65,60,144,159,62,60,159,64,59,60,164,224,55,60,165,127,52,60,171,29,49,60,190,186,45,60,230,86,42,60,41,242,38,60,145,140,35,60,37,38,32,60,237,190,28,60,240,86,25,60,55,238,21,
60,202,132,18,60,176,26,15,60,240,175,11,60,148,68,8,60,163,216,4,60,36,108,1,60,65,254,251,59,61,35,245,59,78,71,238,59,132,106,231,59,237,140,224,59,154,174,217,59,154,207,210,59,253,239,203,59,211,15,197,59,43,47,190,59,21,78,183,59,160,108,176,59,221,138,169,59,219,168,162,59,169,198,155,59,87,228,148,59,246,1,142,59,147,31,135,59,64,61,128,59,22,182,114,59,8,242,100,59,118,46,87,59,125,107,73,59,63,169,59,59,217,231,45,59,106,39,32,59,18,104,18,59,239,169,4,59,64,218,237,58,137,99,210,58,245,
239,182,58,195,127,155,58,48,19,128,58,243,84,73,58,185,139,18,58,91,150,183,57,41,79,20,57,178,207,140,184,52,123,144,185,78,173,253,185,164,100,53,186,22,231,107,186,195,46,145,186,188,99,172,186,59,146,199,186,3,186,226,186,216,218,253,186,62,122,12,187,91,3,26,187,164,136,39,187,251,9,53,187,67,135,66,187,94,0,80,187,45,117,93,187,148,229,106,187,116,81,120,187,88,220,130,187,149,141,137,187,99,60,144,187,179,232,150,187,118,146,157,187,157,57,164,187,26,222,170,187,223,127,177,187,221,30,184,
187,5,187,190,187,73,84,197,187,154,234,203,187,235,125,210,187,44,14,217,187,80,155,223,187,72,37,230,187,6,172,236,187,124,47,243,187,155,175,249,187,43,22,0,188,207,82,3,188,179,141,6,188,208,198,9,188,30,254,12,188,151,51,16,188,52,103,19,188,238,152,22,188,189,200,25,188,156,246,28,188,132,34,32,188,108,76,35,188,80,116,38,188,39,154,41,188,235,189,44,188,150,223,47,188,33,255,50,188,132,28,54,188,186,55,57,188,187,80,60,188,130,103,63,188,7,124,66,188,68,142,69,188,50,158,72,188,203,171,75,
188,9,183,78,188,228,191,81,188,87,198,84,188,91,202,87,188,233,203,90,188,252,202,93,188,141,199,96,188,149,193,99,188,15,185,102,188,244,173,105,188,61,160,108,188,229,143,111,188,230,124,114,188,57,103,117,188,216,78,120,188,190,51,123,188,227,21,126,188,161,122,128,188,235,232,129,188,204,85,131,188,64,193,132,188,70,43,134,188,218,147,135,188,249,250,136,188,161,96,138,188,206,196,139,188,125,39,141,188,172,136,142,188,88,232,143,188,126,70,145,188,27,163,146,188,44,254,147,188,174,87,149,188,
160,175,150,188,253,5,152,188,196,90,153,188,241,173,154,188,130,255,155,188,116,79,157,188,196,157,158,188,113,234,159,188,118,53,161,188,210,126,162,188,129,198,163,188,130,12,165,188,210,80,166,188,109,147,167,188,82,212,168,188,127,19,170,188,239,80,171,188,162,140,172,188,148,198,173,188,196,254,174,188,46,53,176,188,208,105,177,188,168,156,178,188,179,205,179,188,240,252,180,188,91,42,182,188,242,85,183,188,179,127,184,188,156,167,185,188,171,205,186,188,220,241,187,188,46,20,189,188,160,52,
190,188,45,83,191,188,213,111,192,188,148,138,193,188,106,163,194,188,83,186,195,188,78,207,196,188,89,226,197,188,113,243,198,188,148,2,200,188,193,15,201,188,245,26,202,188,46,36,203,188,106,43,204,188,168,48,205,188,229,51,206,188,32,53,207,188,86,52,208,188,134,49,209,188,173,44,210,188,202,37,211,188,220,28,212,188,223,17,213,188,211,4,214,188,181,245,214,188,133,228,215,188,63,209,216,188,227,187,217,188,111,164,218,188,224,138,219,188,54,111,220,188,111,81,221,188,136,49,222,188,130,15,223,
188,89,235,223,188,12,197,224,188,154,156,225,188,2,114,226,188,65,69,227,188,86,22,228,188,64,229,228,188,254,177,229,188,141,124,230,188,237,68,231,188,28,11,232,188,25,207,232,188,227,144,233,188,119,80,234,188,213,13,235,188,252,200,235,188,234,129,236,188,158,56,237,188,23,237,237,188,84,159,238,188,83,79,239,188,19,253,239,188,147,168,240,188,211,81,241,188,208,248,241,188,138,157,242,188,0,64,243,188,48,224,243,188,27,126,244,188,190,25,245,188,25,179,245,188,42,74,246,188,242,222,246,188,
111,113,247,188,159,1,248,188,131,143,248,188,25,27,249,188,97,164,249,188,90,43,250,188,2,176,250,188,90,50,251,188,96,178,251,188,20,48,252,188,117,171,252,188,130,36,253,188,59,155,253,188,159,15,254,188,173,129,254,188,102,241,254,188,199,94,255,188,210,201,255,188,66,25,0,189,111,76,0,189,112,126,0,189,68,175,0,189,235,222,0,189,101,13,1,189,178,58,1,189,209,102,1,189,195,145,1,189,135,187,1,189,29,228,1,189,132,11,2,189,190,49,2,189,201,86,2,189,165,122,2,189,83,157,2,189,210,190,2,189,35,223,
2,189,68,254,2,189,54,28,3,189,250,56,3,189,142,84,3,189,244,110,3,189,42,136,3,189,49,160,3,189,9,183,3,189,177,204,3,189,43,225,3,189,118,244,3,189,145,6,4,189,126,23,4,189,59,39,4,189,202,53,4,189,42,67,4,189,91,79,4,189,94,90,4,189,50,100,4,189,216,108,4,189,79,116,4,189,153,122,4,189,180,127,4,189,162,131,4,189,98,134,4,189,245,135,4,189,90,136,4,189,147,135,4,189,159,133,4,189,126,130,4,189,48,126,4,189,183,120,4,189,18,114,4,189,65,106,4,189,69,97,4,189,30,87,4,189,204,75,4,189,80,63,4,189,
170,49,4,189,218,34,4,189,224,18,4,189,189,1,4,189,114,239,3,189,254,219,3,189,99,199,3,189,159,177,3,189,181,154,3,189,163,130,3,189,108,105,3,189,14,79,3,189,139,51,3,189,226,22,3,189,22,249,2,189,36,218,2,189,16,186,2,189,216,152,2,189,125,118,2,189,0,83,2,189,97,46,2,189,162,8,2,189,193,225,1,189,193,185,1,189,161,144,1,189,98,102,1,189,4,59,1,189,137,14,1,189,240,224,0,189,59,178,0,189,106,130,0,189,125,81,0,189,118,31,0,189,169,216,255,188,51,112,255,188,139,5,255,188,179,152,254,188,172,41,
254,188,119,184,253,188,22,69,253,188,138,207,252,188,213,87,252,188,247,221,251,188,243,97,251,188,202,227,250,188,126,99,250,188,15,225,249,188,128,92,249,188,209,213,248,188,6,77,248,188,30,194,247,188,28,53,247,188,2,166,246,188,209,20,246,188,138,129,245,188,47,236,244,188,195,84,244,188,70,187,243,188,187,31,243,188,35,130,242,188,128,226,241,188,211,64,241,188,31,157,240,188,101,247,239,188,168,79,239,188,232,165,238,188,40,250,237,188,106,76,237,188,175,156,236,188,250,234,235,188,76,55,235,
188,167,129,234,188,14,202,233,188,130,16,233,188,5,85,232,188,153,151,231,188,65,216,230,188,254,22,230,188,210,83,229,188,191,142,228,188,200,199,227,188,239,254,226,188,53,52,226,188,157,103,225,188,40,153,224,188,218,200,223,188,180,246,222,188,184,34,222,188,233,76,221,188,73,117,220,188,218,155,219,188,158,192,218,188,152,227,217,188,201,4,217,188,53,36,216,188,221,65,215,188,195,93,214,188,235,119,213,188,86,144,212,188,7,167,211,188,255,187,210,188,66,207,209,188,211,224,208,188,178,240,207,
188,227,254,206,188,104,11,206,188,68,22,205,188,120,31,204,188,8,39,203,188,246,44,202,188,69,49,201,188,247,51,200,188,14,53,199,188,141,52,198,188,119,50,197,188,205,46,196,188,148,41,195,188,205,34,194,188,123,26,193,188,160,16,192,188,64,5,191,188,92,248,189,188,247,233,188,188,21,218,187,188,184,200,186,188,225,181,185,188,149,161,184,188,214,139,183,188,166,116,182,188,9,92,181,188,0,66,180,188,143,38,179,188,185,9,178,188,128,235,176,188,231,203,175,188,240,170,174,188,160,136,173,188,247,
100,172,188,250,63,171,188,171,25,170,188,12,242,168,188,34,201,167,188,238,158,166,188,115,115,165,188,181,70,164,188,182,24,163,188,121,233,161,188,1,185,160,188,80,135,159,188,107,84,158,188,83,32,157,188,12,235,155,188,153,180,154,188,252,124,153,188,56,68,152,188,82,10,151,188,74,207,149,188,37,147,148,188,230,85,147,188,142,23,146,188,35,216,144,188,166,151,143,188,26,86,142,188,131,19,141,188,227,207,139,188,62,139,138,188,151,69,137,188,240,254,135,188,77,183,134,188,177,110,133,188,31,37,
132,188,153,218,130,188,36,143,129,188,194,66,128,188,237,234,125,188,137,78,123,188,94,176,120,188,114,16,118,188,203,110,115,188,112,203,112,188,103,38,110,188,183,127,107,188,101,215,104,188,120,45,102,188,247,129,99,188,231,212,96,188,79,38,94,188,53,118,91,188,160,196,88,188,150,17,86,188,29,93,83,188,60,167,80,188,249,239,77,188,91,55,75,188,103,125,72,188,37,194,69,188,154,5,67,188,206,71,64,188,198,136,61,188,138,200,58,188,31,7,56,188,139,68,53,188,214,128,50,188,6,188,47,188,34,246,44,188,
47,47,42,188,52,103,39,188,56,158,36,188,65,212,33,188,86,9,31,188,126,61,28,188,190,112,25,188,29,163,22,188,162,212,19,188,83,5,17,188,55,53,14,188,84,100,11,188,177,146,8,188,84,192,5,188,68,237,2,188,135,25,0,188,73,138,250,187,68,224,244,187,13,53,239,187,177,136,233,187,60,219,227,187,189,44,222,187,64,125,216,187,210,204,210,187,128,27,205,187,88,105,199,187,101,182,193,187,182,2,188,187,88,78,182,187,86,153,176,187,192,227,170,187,161,45,165,187,6,119,159,187,253,191,153,187,147,8,148,187,
212,80,142,187,206,152,136,187,141,224,130,187,64,80,122,187,36,223,110,187,225,109,99,187,146,252,87,187,80,139,76,187,53,26,65,187,91,169,53,187,220,56,42,187,211,200,30,187,87,89,19,187,133,234,7,187,233,248,248,186,129,30,226,186,4,70,203,186,167,111,180,186,156,155,157,186,23,202,134,186,152,246,95,186,218,94,50,186,91,205,4,186,4,133,174,185,211,250,38,185,189,105,111,55,173,200,68,57,229,60,189,57,23,2,12,58,179,92,57,58,226,173,102,58,159,250,137,58,49,153,160,58,118,50,183,58,57,198,205,
58,74,84,228,58,119,220,250,58,70,175,8,59,44,237,19,59,213,39,31,59,40,95,42,59,11,147,53,59,102,195,64,59,33,240,75,59,34,25,87,59,81,62,98,59,150,95,109,59,215,124,120,59,254,202,129,59,119,85,135,59,201,221,140,59,233,99,146,59,202,231,151,59,96,105,157,59,160,232,162,59,125,101,168,59,234,223,173,59,221,87,179,59,73,205,184,59,34,64,190,59,92,176,195,59,236,29,201,59,197,136,206,59,219,240,211,59,36,86,217,59,147,184,222,59,28,24,228,59,180,116,233,59,79,206,238,59,226,36,244,59,96,120,249,59,
191,200,254,59,249,10,2,60,248,175,4,60,85,83,7,60,12,245,9,60,22,149,12,60,110,51,15,60,14,208,17,60,241,106,20,60,17,4,23,60,105,155,25,60,242,48,28,60,168,196,30,60,132,86,33,60,130,230,35,60,155,116,38,60,203,0,41,60,11,139,43,60,87,19,46,60,169,153,48,60,252,29,51,60,74,160,53,60,142,32,56,60,194,158,58,60,226,26,61,60,232,148,63,60,206,12,66,60,145,130,68,60,41,246,70,60,147,103,73,60,200,214,75,60,196,67,78,60,130,174,80,60,253,22,83,60,47,125,85,60,20,225,87,60,166,66,90,60,224,161,92,60,
190,254,94,60,59,89,97,60,81,177,99,60,252,6,102,60,54,90,104,60,252,170,106,60,72,249,108,60,21,69,111,60,94,142,113,60,31,213,115,60,84,25,118,60,246,90,120,60,2,154,122,60,116,214,124,60,69,16,127,60,185,163,128,60,252,189,129,60,231,214,130,60,122,238,131,60,178,4,133,60,140,25,134,60,6,45,135,60,31,63,136,60,211,79,137,60,34,95,138,60,8,109,139,60,131,121,140,60,146,132,141,60,50,142,142,60,97,150,143,60,30,157,144,60,101,162,145,60,53,166,146,60,139,168,147,60,103,169,148,60,197,168,149,60,
164,166,150,60,2,163,151,60,220,157,152,60,50,151,153,60,0,143,154,60,69,133,155,60,255,121,156,60,44,109,157,60,203,94,158,60,217,78,159,60,84,61,160,60,59,42,161,60,139,21,162,60,68,255,162,60,98,231,163,60,230,205,164,60,203,178,165,60,18,150,166,60,184,119,167,60,187,87,168,60,26,54,169,60,210,18,170,60,228,237,170,60,76,199,171,60,8,159,172,60,25,117,173,60,123,73,174,60,45,28,175,60,46,237,175,60,124,188,176,60,21,138,177,60,249,85,178,60,37,32,179,60,151,232,179,60,80,175,180,60,76,116,181,
60,139,55,182,60,11,249,182,60,202,184,183,60,200,118,184,60,3,51,185,60,122,237,185,60,42,166,186,60,20,93,187,60,53,18,188,60,140,197,188,60,24,119,189,60,216,38,190,60,202,212,190,60,238,128,191,60,65,43,192,60,195,211,192,60,115,122,193,60,79,31,194,60,87,194,194,60,136,99,195,60,227,2,196,60,101,160,196,60,15,60,197,60,222,213,197,60,210,109,198,60,233,3,199,60,35,152,199,60,127,42,200,60,251,186,200,60,152,73,201,60,83,214,201,60,44,97,202,60,33,234,202,60,51,113,203,60,96,246,203,60,167,121,
204,60,8,251,204,60,130,122,205,60,19,248,205,60,187,115,206,60,122,237,206,60,78,101,207,60,55,219,207,60,52,79,208,60,68,193,208,60,103,49,209,60,156,159,209,60,226,11,210,60,57,118,210,60,160,222,210,60,22,69,211,60,156,169,211,60,48,12,212,60,209,108,212,60,128,203,212,60,60,40,213,60,4,131,213,60,216,219,213,60,183,50,214,60,161,135,214,60,150,218,214,60,148,43,215,60,157,122,215,60,174,199,215,60,201,18,216,60,236,91,216,60,24,163,216,60,75,232,216,60,135,43,217,60,201,108,217,60,20,172,217,
60,101,233,217,60,189,36,218,60,27,94,218,60,128,149,218,60,235,202,218,60,92,254,218,60,212,47,219,60,81,95,219,60,212,140,219,60,93,184,219,60,235,225,219,60,127,9,220,60,25,47,220,60,184,82,220,60,93,116,220,60,8,148,220,60,184,177,220,60,111,205,220,60,43,231,220,60,237,254,220,60,181,20,221,60,132,40,221,60,89,58,221,60,52,74,221,60,23,88,221,60,0,100,221,60,241,109,221,60,233,117,221,60,232,123,221,60,240,127,221,60,0,130,221,60,25,130,221,60,58,128,221,60,101,124,221,60,154,118,221,60,216,
110,221,60,33,101,221,60,117,89,221,60,212,75,221,60,63,60,221,60,182,42,221,60,58,23,221,60,203,1,221,60,105,234,220,60,22,209,220,60,210,181,220,60,156,152,220,60,119,121,220,60,99,88,220,60,95,53,220,60,110,16,220,60,142,233,219,60,194,192,219,60,10,150,219,60,102,105,219,60,215,58,219,60,95,10,219,60,253,215,218,60,178,163,218,60,128,109,218,60,102,53,218,60,103,251,217,60,130,191,217,60,185,129,217,60,12,66,217,60,125,0,217,60,11,189,216,60,185,119,216,60,135,48,216,60,118,231,215,60,134,156,
215,60,186,79,215,60,17,1,215,60,142,176,214,60,48,94,214,60,249,9,214,60,235,179,213,60,5,92,213,60,74,2,213,60,185,166,212,60,86,73,212,60,32,234,211,60,24,137,211,60,64,38,211,60,154,193,210,60,37,91,210,60,229,242,209,60,216,136,209,60,2,29,209,60,99,175,208,60,252,63,208,60,207,206,207,60,221,91,207,60,39,231,206,60,175,112,206,60,118,248,205,60,125,126,205,60,198,2,205,60,82,133,204,60,34,6,204,60,57,133,203,60,151,2,203,60,62,126,202,60,47,248,201,60,107,112,201,60,245,230,200,60,206,91,200,
60,247,206,199,60,114,64,199,60,64,176,198,60,99,30,198,60,220,138,197,60,173,245,196,60,216,94,196,60,95,198,195,60,66,44,195,60,131,144,194,60,37,243,193,60,41,84,193,60,144,179,192,60,92,17,192,60,144,109,191,60,44,200,190,60,50,33,190,60,164,120,189,60,132,206,188,60,212,34,188,60,149,117,187,60,202,198,186,60,115,22,186,60,148,100,185,60,44,177,184,60,64,252,183,60,208,69,183,60,222,141,182,60,108,212,181,60,124,25,181,60,16,93,180,60,42,159,179,60,204,223,178,60,247,30,178,60,174,92,177,60,
243,152,176,60,199,211,175,60,45,13,175,60,38,69,174,60,181,123,173,60,219,176,172,60,156,228,171,60,247,22,171,60,241,71,170,60,138,119,169,60,198,165,168,60,165,210,167,60,42,254,166,60,88,40,166,60,47,81,165,60,180,120,164,60,230,158,163,60,202,195,162,60,96,231,161,60,171,9,161,60,174,42,160,60,106,74,159,60,225,104,158,60,23,134,157,60,12,162,156,60,196,188,155,60,64,214,154,60,131,238,153,60,143,5,153,60,102,27,152,60,11,48,151,60,127,67,150,60,198,85,149,60,225,102,148,60,211,118,147,60,157,
133,146,60,68,147,145,60,200,159,144,60,44,171,143,60,114,181,142,60,157,190,141,60,176,198,140,60,172,205,139,60,148,211,138,60,106,216,137,60,49,220,136,60,235,222,135,60,154,224,134,60,66,225,133,60,228,224,132,60,131,223,131,60,33,221,130,60,193,217,129,60,101,213,128,60,32,160,127,60,136,147,125,60,7,133,123,60,163,116,121,60,96,98,119,60,67,78,117,60,81,56,115,60,144,32,113,60,4,7,111,60,179,235,108,60,161,206,106,60,212,175,104,60,81,143,102,60,28,109,100,60,60,73,98,60,180,35,96,60,139,252,
93,60,197,211,91,60,104,169,89,60,120,125,87,60,252,79,85,60,247,32,83,60,112,240,80,60,107,190,78,60,238,138,76,60,254,85,74,60,160,31,72,60,218,231,69,60,177,174,67,60,41,116,65,60,73,56,63,60,22,251,60,60,148,188,58,60,202,124,56,60,188,59,54,60,112,249,51,60,235,181,49,60,51,113,47,60,76,43,45,60,61,228,42,60,11,156,40,60,186,82,38,60,81,8,36,60,212,188,33,60,74,112,31,60,183,34,29,60,32,212,26,60,141,132,24,60,0,52,22,60,129,226,19,60,21,144,17,60,192,60,15,60,136,232,12,60,116,147,10,60,135,
61,8,60,201,230,5,60,61,143,3,60,234,54,1,60,170,187,253,59,7,8,249,59,245,82,244,59,128,156,239,59,179,228,234,59,153,43,230,59,59,113,225,59,167,181,220,59,229,248,215,59,2,59,211,59,9,124,206,59,3,188,201,59,252,250,196,59,0,57,192,59,25,118,187,59,81,178,182,59,181,237,177,59,78,40,173,59,41,98,168,59,79,155,163,59,204,211,158,59,171,11,154,59,246,66,149,59,185,121,144,59,254,175,139,59,209,229,134,59,61,27,130,59,152,160,122,59,18,10,113,59,255,114,103,59,116,219,93,59,135,67,84,59,79,171,74,
59,224,18,65,59,81,122,55,59,183,225,45,59,40,73,36,59,187,176,26,59,132,24,17,59,153,128,7,59,34,210,251,58,1,164,232,58,251,118,213,58,59,75,194,58,237,32,175,58,60,248,155,58,83,209,136,58,187,88,107,58,12,19,69,58,240,209,30,58,122,43,241,57,146,189,164,57,166,181,48,57,142,62,192,55,3,141,0,185,193,131,140,185,42,179,216,185,10,106,18,186,233,114,56,186,222,115,94,186,73,54,130,186,90,46,149,186,247,33,168,186,244,16,187,186,41,251,205,186,107,224,224,186,144,192,243,186,183,77,3,187,109,184,
12,187,87,32,22,187,94,133,31,187,109,231,40,187,113,70,50,187,85,162,59,187,3,251,68,187,103,80,78,187,108,162,87,187,254,240,96,187,8,60,106,187,118,131,115,187,51,199,124,187,150,3,131,187,165,161,135,187,189,61,140,187,213,215,144,187,225,111,149,187,216,5,154,187,175,153,158,187,93,43,163,187,216,186,167,187,21,72,172,187,12,211,176,187,176,91,181,187,250,225,185,187,223,101,190,187,85,231,194,187,82,102,199,187,205,226,203,187,187,92,208,187,20,212,212,187,204,72,217,187,220,186,221,187,56,
42,226,187,216,150,230,187,177,0,235,187,187,103,239,187,236,203,243,187,57,45,248,187,155,139,252,187,131,115,0,188,185,159,2,188,107,202,4,188,149,243,6,188,48,27,9,188,58,65,11,188,172,101,13,188,131,136,15,188,187,169,17,188,77,201,19,188,55,231,21,188,115,3,24,188,253,29,26,188,208,54,28,188,232,77,30,188,65,99,32,188,213,118,34,188,161,136,36,188,161,152,38,188,207,166,40,188,39,179,42,188,166,189,44,188,70,198,46,188,4,205,48,188,219,209,50,188,199,212,52,188,196,213,54,188,205,212,56,188,
222,209,58,188,243,204,60,188,8,198,62,188,25,189,64,188,33,178,66,188,29,165,68,188,8,150,70,188,222,132,72,188,156,113,74,188,61,92,76,188,189,68,78,188,25,43,80,188,75,15,82,188,82,241,83,188,39,209,85,188,200,174,87,188,49,138,89,188,94,99,91,188,75,58,93,188,244,14,95,188,85,225,96,188,107,177,98,188,50,127,100,188,166,74,102,188,196,19,104,188,136,218,105,188,237,158,107,188,242,96,109,188,145,32,111,188,200,221,112,188,147,152,114,188,238,80,116,188,214,6,118,188,71,186,119,188,62,107,121,
188,184,25,123,188,176,197,124,188,37,111,126,188,9,11,128,188,57,221,128,188,35,174,129,188,196,125,130,188,27,76,131,188,37,25,132,188,226,228,132,188,79,175,133,188,108,120,134,188,54,64,135,188,173,6,136,188,205,203,136,188,151,143,137,188,9,82,138,188,32,19,139,188,220,210,139,188,58,145,140,188,59,78,141,188,219,9,142,188,26,196,142,188,246,124,143,188,110,52,144,188,129,234,144,188,44,159,145,188,112,82,146,188,73,4,147,188,183,180,147,188,185,99,148,188,78,17,149,188,115,189,149,188,40,104,
150,188,108,17,151,188,60,185,151,188,153,95,152,188,128,4,153,188,241,167,153,188,234,73,154,188,106,234,154,188,111,137,155,188,250,38,156,188,8,195,156,188,153,93,157,188,170,246,157,188,60,142,158,188,77,36,159,188,220,184,159,188,232,75,160,188,112,221,160,188,115,109,161,188,239,251,161,188,228,136,162,188,81,20,163,188,53,158,163,188,143,38,164,188,93,173,164,188,159,50,165,188,85,182,165,188,124,56,166,188,21,185,166,188,30,56,167,188,150,181,167,188,125,49,168,188,210,171,168,188,147,36,
169,188,193,155,169,188,90,17,170,188,93,133,170,188,203,247,170,188,161,104,171,188,223,215,171,188,133,69,172,188,146,177,172,188,5,28,173,188,221,132,173,188,26,236,173,188,187,81,174,188,192,181,174,188,39,24,175,188,241,120,175,188,28,216,175,188,168,53,176,188,149,145,176,188,226,235,176,188,142,68,177,188,153,155,177,188,3,241,177,188,202,68,178,188,239,150,178,188,113,231,178,188,79,54,179,188,137,131,179,188,32,207,179,188,17,25,180,188,93,97,180,188,4,168,180,188,5,237,180,188,95,48,181,
188,19,114,181,188,33,178,181,188,135,240,181,188,70,45,182,188,93,104,182,188,204,161,182,188,147,217,182,188,177,15,183,188,39,68,183,188,244,118,183,188,24,168,183,188,147,215,183,188,101,5,184,188,141,49,184,188,12,92,184,188,225,132,184,188,12,172,184,188,142,209,184,188,101,245,184,188,147,23,185,188,22,56,185,188,240,86,185,188,32,116,185,188,166,143,185,188,129,169,185,188,179,193,185,188,59,216,185,188,25,237,185,188,78,0,186,188,217,17,186,188,186,33,186,188,243,47,186,188,129,60,186,188,
103,71,186,188,164,80,186,188,57,88,186,188,37,94,186,188,104,98,186,188,4,101,186,188,248,101,186,188,68,101,186,188,233,98,186,188,231,94,186,188,63,89,186,188,240,81,186,188,251,72,186,188,97,62,186,188,33,50,186,188,60,36,186,188,179,20,186,188,134,3,186,188,181,240,185,188,65,220,185,188,42,198,185,188,112,174,185,188,21,149,185,188,25,122,185,188,123,93,185,188,61,63,185,188,96,31,185,188,227,253,184,188,199,218,184,188,13,182,184,188,182,143,184,188,194,103,184,188,49,62,184,188,5,19,184,188,
62,230,183,188,220,183,183,188,224,135,183,188,76,86,183,188,31,35,183,188,91,238,182,188,255,183,182,188,14,128,182,188,135,70,182,188,107,11,182,188,188,206,181,188,122,144,181,188,165,80,181,188,63,15,181,188,72,204,180,188,194,135,180,188,172,65,180,188,9,250,179,188,216,176,179,188,28,102,179,188,212,25,179,188,1,204,178,188,165,124,178,188,193,43,178,188,85,217,177,188,99,133,177,188,235,47,177,188,239,216,176,188,111,128,176,188,108,38,176,188,232,202,175,188,228,109,175,188,96,15,175,188,
94,175,174,188,223,77,174,188,228,234,173,188,110,134,173,188,126,32,173,188,22,185,172,188,54,80,172,188,224,229,171,188,20,122,171,188,213,12,171,188,35,158,170,188,255,45,170,188,107,188,169,188,104,73,169,188,248,212,168,188,26,95,168,188,210,231,167,188,31,111,167,188,4,245,166,188,129,121,166,188,152,252,165,188,75,126,165,188,154,254,164,188,136,125,164,188,20,251,163,188,65,119,163,188,17,242,162,188,132,107,162,188,156,227,161,188,90,90,161,188,192,207,160,188,208,67,160,188,138,182,159,
188,240,39,159,188,4,152,158,188,199,6,158,188,59,116,157,188,97,224,156,188,59,75,156,188,201,180,155,188,15,29,155,188,13,132,154,188,197,233,153,188,56,78,153,188,105,177,152,188,88,19,152,188,7,116,151,188,120,211,150,188,172,49,150,188,166,142,149,188,103,234,148,188,239,68,148,188,66,158,147,188,97,246,146,188,77,77,146,188,9,163,145,188,149,247,144,188,244,74,144,188,39,157,143,188,47,238,142,188,16,62,142,188,202,140,141,188,96,218,140,188,210,38,140,188,36,114,139,188,86,188,138,188,106,
5,138,188,98,77,137,188,65,148,136,188,7,218,135,188,183,30,135,188,82,98,134,188,219,164,133,188,82,230,132,188,187,38,132,188,23,102,131,188,104,164,130,188,175,225,129,188,239,29,129,188,41,89,128,188,191,38,127,188,41,153,125,188,147,9,124,188,2,120,122,188,120,228,120,188,251,78,119,188,142,183,117,188],"i8",4,y.a+20480);
Q([53,30,116,188,244,130,114,188,206,229,112,188,200,70,111,188,230,165,109,188,44,3,108,188,158,94,106,188,63,184,104,188,21,16,103,188,34,102,101,188,107,186,99,188,244,12,98,188,193,93,96,188,215,172,94,188,57,250,92,188,235,69,91,188,242,143,89,188,82,216,87,188,15,31,86,188,45,100,84,188,176,167,82,188,156,233,80,188,247,41,79,188,195,104,77,188,6,166,75,188,195,225,73,188,254,27,72,188,189,84,70,188,3,140,68,188,212,193,66,188,53,246,64,188,43,41,63,188,184,90,61,188,227,138,59,188,174,185,
57,188,32,231,55,188,58,19,54,188,4,62,52,188,127,103,50,188,178,143,48,188,160,182,46,188,77,220,44,188,191,0,43,188,249,35,41,188,0,70,39,188,217,102,37,188,135,134,35,188,16,165,33,188,120,194,31,188,194,222,29,188,245,249,27,188,19,20,26,188,35,45,24,188,39,69,22,188,37,92,20,188,33,114,18,188,32,135,16,188,37,155,14,188,55,174,12,188,88,192,10,188,143,209,8,188,222,225,6,188,76,241,4,188,220,255,2,188,146,13,1,188,233,52,254,187,13,77,250,187,155,99,246,187,154,120,242,187,21,140,238,187,21,
158,234,187,162,174,230,187,199,189,226,187,139,203,222,187,249,215,218,187,25,227,214,187,244,236,210,187,149,245,206,187,4,253,202,187,73,3,199,187,112,8,195,187,128,12,191,187,130,15,187,187,129,17,183,187,134,18,179,187,152,18,175,187,195,17,171,187,15,16,167,187,133,13,163,187,46,10,159,187,20,6,155,187,64,1,151,187,188,251,146,187,144,245,142,187,197,238,138,187,102,231,134,187,123,223,130,187,25,174,125,187,75,156,117,187,156,137,109,187,32,118,101,187,232,97,93,187,8,77,85,187,145,55,77,187,
150,33,69,187,42,11,61,187,95,244,52,187,71,221,44,187,245,197,36,187,123,174,28,187,236,150,20,187,89,127,12,187,214,103,4,187,234,160,248,186,144,114,232,186,194,68,216,186,166,23,200,186,95,235,183,186,20,192,167,186,231,149,151,186,254,108,135,186,251,138,110,186,18,63,78,186,139,246,45,186,176,177,13,186,142,225,218,185,53,104,154,185,203,239,51,185,119,137,76,184,116,45,155,56,92,58,78,57,180,99,167,57,95,158,231,57,79,230,19,58,242,246,51,58,207,0,84,58,159,3,116,58,142,255,137,58,126,249,
153,58,125,239,169,58,102,225,185,58,23,207,201,58,108,184,217,58,65,157,233,58,115,125,249,58,112,172,4,59,177,151,12,59,108,128,20,59,143,102,28,59,9,74,36,59,200,42,44,59,186,8,52,59,207,227,59,59,245,187,67,59,27,145,75,59,46,99,83,59,31,50,91,59,220,253,98,59,83,198,106,59,116,139,114,59,45,77,122,59,183,5,129,59,18,227,132,59,160,190,136,59,88,152,140,59,51,112,144,59,38,70,148,59,42,26,152,59,55,236,155,59,68,188,159,59,73,138,163,59,61,86,167,59,25,32,171,59,212,231,174,59,101,173,178,59,
197,112,182,59,236,49,186,59,208,240,189,59,107,173,193,59,179,103,197,59,162,31,201,59,46,213,204,59,80,136,208,59,0,57,212,59,53,231,215,59,232,146,219,59,17,60,223,59,168,226,226,59,165,134,230,59,1,40,234,59,179,198,237,59,179,98,241,59,250,251,244,59,129,146,248,59,63,38,252,59,45,183,255,59,161,162,1,60,60,104,3,60,100,44,5,60,20,239,6,60,74,176,8,60,0,112,10,60,52,46,12,60,226,234,13,60,5,166,15,60,155,95,17,60,160,23,19,60,16,206,20,60,231,130,22,60,34,54,24,60,189,231,25,60,181,151,27,60,
6,70,29,60,172,242,30,60,164,157,32,60,235,70,34,60,124,238,35,60,86,148,37,60,115,56,39,60,208,218,40,60,107,123,42,60,64,26,44,60,74,183,45,60,136,82,47,60,245,235,48,60,143,131,50,60,81,25,52,60,57,173,53,60,68,63,55,60,109,207,56,60,179,93,58,60,17,234,59,60,132,116,61,60,9,253,62,60,158,131,64,60,62,8,66,60,231,138,67,60,150,11,69,60,71,138,70,60,248,6,72,60,165,129,73,60,76,250,74,60,233,112,76,60,121,229,77,60,250,87,79,60,104,200,80,60,192,54,82,60,1,163,83,60,37,13,85,60,44,117,86,60,18,
219,87,60,211,62,89,60,111,160,90,60,224,255,91,60,38,93,93,60,60,184,94,60,33,17,96,60,209,103,97,60,74,188,98,60,138,14,100,60,141,94,101,60,81,172,102,60,211,247,103,60,17,65,105,60,8,136,106,60,183,204,107,60,25,15,109,60,45,79,110,60,240,140,111,60,96,200,112,60,122,1,114,60,61,56,115,60,165,108,116,60,176,158,117,60,92,206,118,60,166,251,119,60,141,38,121,60,14,79,122,60,39,117,123,60,213,152,124,60,23,186,125,60,233,216,126,60,75,245,127,60,157,135,128,60,90,19,129,60,219,157,129,60,31,39,
130,60,38,175,130,60,238,53,131,60,118,187,131,60,190,63,132,60,196,194,132,60,135,68,133,60,7,197,133,60,66,68,134,60,56,194,134,60,232,62,135,60,80,186,135,60,112,52,136,60,72,173,136,60,213,36,137,60,23,155,137,60,14,16,138,60,185,131,138,60,22,246,138,60,38,103,139,60,230,214,139,60,87,69,140,60,120,178,140,60,72,30,141,60,197,136,141,60,240,241,141,60,200,89,142,60,76,192,142,60,123,37,143,60,84,137,143,60,216,235,143,60,5,77,144,60,218,172,144,60,87,11,145,60,124,104,145,60,72,196,145,60,185,
30,146,60,208,119,146,60,141,207,146,60,237,37,147,60,242,122,147,60,154,206,147,60,228,32,148,60,209,113,148,60,96,193,148,60,144,15,149,60,97,92,149,60,211,167,149,60,228,241,149,60,149,58,150,60,229,129,150,60,212,199,150,60,96,12,151,60,139,79,151,60,84,145,151,60,185,209,151,60,187,16,152,60,90,78,152,60,149,138,152,60,108,197,152,60,222,254,152,60,235,54,153,60,148,109,153,60,215,162,153,60,181,214,153,60,45,9,154,60,62,58,154,60,234,105,154,60,47,152,154,60,14,197,154,60,134,240,154,60,151,
26,155,60,65,67,155,60,132,106,155,60,95,144,155,60,211,180,155,60,224,215,155,60,132,249,155,60,194,25,156,60,151,56,156,60,4,86,156,60,10,114,156,60,168,140,156,60,222,165,156,60,172,189,156,60,18,212,156,60,17,233,156,60,167,252,156,60,214,14,157,60,157,31,157,60,253,46,157,60,245,60,157,60,134,73,157,60,175,84,157,60,113,94,157,60,204,102,157,60,193,109,157,60,78,115,157,60,117,119,157,60,54,122,157,60,144,123,157,60,133,123,157,60,20,122,157,60,61,119,157,60,1,115,157,60,96,109,157,60,91,102,
157,60,241,93,157,60,34,84,157,60,240,72,157,60,91,60,157,60,98,46,157,60,7,31,157,60,73,14,157,60,41,252,156,60,168,232,156,60,197,211,156,60,129,189,156,60,221,165,156,60,217,140,156,60,117,114,156,60,178,86,156,60,144,57,156,60,16,27,156,60,50,251,155,60,247,217,155,60,96,183,155,60,108,147,155,60,29,110,155,60,114,71,155,60,109,31,155,60,14,246,154,60,86,203,154,60,69,159,154,60,219,113,154,60,27,67,154,60,3,19,154,60,149,225,153,60,209,174,153,60,184,122,153,60,75,69,153,60,139,14,153,60,119,
214,152,60,18,157,152,60,90,98,152,60,83,38,152,60,251,232,151,60,84,170,151,60,94,106,151,60,27,41,151,60,138,230,150,60,174,162,150,60,134,93,150,60,20,23,150,60,88,207,149,60,84,134,149,60,7,60,149,60,115,240,148,60,153,163,148,60,122,85,148,60,22,6,148,60,111,181,147,60,133,99,147,60,90,16,147,60,237,187,146,60,65,102,146,60,86,15,146,60,45,183,145,60,200,93,145,60,38,3,145,60,74,167,144,60,51,74,144,60,228,235,143,60,93,140,143,60,159,43,143,60,171,201,142,60,131,102,142,60,39,2,142,60,153,156,
141,60,217,53,141,60,233,205,140,60,201,100,140,60,124,250,139,60,2,143,139,60,91,34,139,60,138,180,138,60,144,69,138,60,109,213,137,60,35,100,137,60,180,241,136,60,31,126,136,60,103,9,136,60,140,147,135,60,145,28,135,60,117,164,134,60,59,43,134,60,227,176,133,60,112,53,133,60,225,184,132,60,57,59,132,60,121,188,131,60,162,60,131,60,181,187,130,60,180,57,130,60,159,182,129,60,121,50,129,60,67,173,128,60,254,38,128,60,86,63,127,60,152,46,126,60,195,27,125,60,220,6,124,60,229,239,122,60,224,214,121,
60,209,187,120,60,186,158,119,60,158,127,118,60,128,94,117,60,99,59,116,60,74,22,115,60,55,239,113,60,46,198,112,60,50,155,111,60,69,110,110,60,107,63,109,60,166,14,108,60,250,219,106,60,105,167,105,60,247,112,104,60,166,56,103,60,122,254,101,60,118,194,100,60,157,132,99,60,242,68,98,60,120,3,97,60,50,192,95,60,36,123,94,60,80,52,93,60,186,235,91,60,101,161,90,60,84,85,89,60,139,7,88,60,12,184,86,60,220,102,85,60,252,19,84,60,113,191,82,60,61,105,81,60,101,17,80,60,234,183,78,60,210,92,77,60,30,0,
76,60,211,161,74,60,244,65,73,60,131,224,71,60,133,125,70,60,253,24,69,60,238,178,67,60,92,75,66,60,74,226,64,60,188,119,63,60,180,11,62,60,55,158,60,60,72,47,59,60,235,190,57,60,34,77,56,60,242,217,54,60,94,101,53,60,105,239,51,60,24,120,50,60,109,255,48,60,108,133,47,60,25,10,46,60,119,141,44,60,138,15,43,60,85,144,41,60,221,15,40,60,36,142,38,60,46,11,37,60,0,135,35,60,156,1,34,60,6,123,32,60,66,243,30,60,83,106,29,60,62,224,27,60,6,85,26,60,174,200,24,60,59,59,23,60,175,172,21,60,15,29,20,60,
95,140,18,60,162,250,16,60,219,103,15,60,16,212,13,60,66,63,12,60,119,169,10,60,177,18,9,60,245,122,7,60,71,226,5,60,170,72,4,60,33,174,2,60,178,18,1,60,189,236,254,59,88,178,251,59,58,118,248,59,109,56,245,59,247,248,241,59,225,183,238,59,49,117,235,59,239,48,232,59,36,235,228,59,215,163,225,59,15,91,222,59,213,16,219,59,47,197,215,59,38,120,212,59,193,41,209,59,8,218,205,59,4,137,202,59,186,54,199,59,52,227,195,59,121,142,192,59,145,56,189,59,132,225,185,59,88,137,182,59,23,48,179,59,200,213,175,
59,114,122,172,59,30,30,169,59,211,192,165,59,154,98,162,59,121,3,159,59,120,163,155,59,160,66,152,59,249,224,148,59,137,126,145,59,89,27,142,59,113,183,138,59,217,82,135,59,152,237,131,59,182,135,128,59,117,66,122,59,92,116,115,59,49,165,108,59,2,213,101,59,224,3,95,59,218,49,88,59,255,94,81,59,96,139,74,59,12,183,67,59,19,226,60,59,132,12,54,59,110,54,47,59,226,95,40,59,240,136,33,59,165,177,26,59,19,218,19,59,73,2,13,59,87,42,6,59,150,164,254,58,107,244,240,58,77,68,227,58,90,148,213,58,178,228,
199,58,114,53,186,58,187,134,172,58,172,216,158,58,99,43,145,58,255,126,131,58,62,167,107,58,197,82,80,58,207,0,53,58,155,177,25,58,204,202,252,57,219,56,198,57,223,173,143,57,163,84,50,57,181,186,138,56,152,36,30,184,234,93,20,185,254,143,128,185,53,231,182,185,31,52,237,185,34,187,17,186,148,214,44,186,42,236,71,186,167,251,98,186,206,4,126,186,178,131,140,186,149,1,154,186,244,123,167,186,175,242,180,186,168,101,194,186,195,212,207,186,224,63,221,186,227,166,234,186,173,9,248,186,16,180,2,187,
16,97,9,187,198,11,16,187,37,180,22,187,30,90,29,187,162,253,35,187,161,158,42,187,14,61,49,187,219,216,55,187,247,113,62,187,85,8,69,187,231,155,75,187,157,44,82,187,106,186,88,187,62,69,95,187,12,205,101,187,197,81,108,187,91,211,114,187,191,81,121,187,228,204,127,187,93,34,131,187,155,92,134,187,35,149,137,187,239,203,140,187,248,0,144,187,55,52,147,187,164,101,150,187,58,149,153,187,241,194,156,187,193,238,159,187,165,24,163,187,149,64,166,187,138,102,169,187,126,138,172,187,105,172,175,187,70,
204,178,187,12,234,181,187,183,5,185,187,61,31,188,187,154,54,191,187,199,75,194,187,187,94,197,187,114,111,200,187,229,125,203,187,12,138,206,187,226,147,209,187,95,155,212,187,126,160,215,187,55,163,218,187,133,163,221,187,96,161,224,187,196,156,227,187,168,149,230,187,7,140,233,187,219,127,236,187,28,113,239,187,198,95,242,187,209,75,245,187,55,53,248,187,243,27,251,187,254,255,253,187,169,112,0,188,244,223,1,188,222,77,3,188,99,186,4,188,128,37,6,188,50,143,7,188,119,247,8,188,76,94,10,188,172,
195,11,188,151,39,13,188,7,138,14,188,252,234,15,188,113,74,17,188,100,168,18,188,210,4,20,188,184,95,21,188,19,185,22,188,225,16,24,188,31,103,25,188,202,187,26,188,222,14,28,188,90,96,29,188,59,176,30,188,126,254,31,188,32,75,33,188,30,150,34,188,118,223,35,188,38,39,37,188,42,109,38,188,128,177,39,188,37,244,40,188,23,53,42,188,83,116,43,188,214,177,44,188,159,237,45,188,170,39,47,188,245,95,48,188,126,150,49,188,66,203,50,188,62,254,51,188,112,47,53,188,214,94,54,188,110,140,55,188,52,184,56,
188,39,226,57,188,68,10,59,188,137,48,60,188,243,84,61,188,129,119,62,188,48,152,63,188,253,182,64,188,231,211,65,188,235,238,66,188,7,8,68,188,57,31,69,188,126,52,70,188,213,71,71,188,60,89,72,188,176,104,73,188,46,118,74,188,182,129,75,188,69,139,76,188,217,146,77,188,112,152,78,188,7,156,79,188,158,157,80,188,50,157,81,188,193,154,82,188,72,150,83,188,199,143,84,188,60,135,85,188,164,124,86,188,253,111,87,188,70,97,88,188,125,80,89,188,161,61,90,188,174,40,91,188,164,17,92,188,130,248,92,188,68,
221,93,188,234,191,94,188,114,160,95,188,217,126,96,188,32,91,97,188,67,53,98,188,66,13,99,188,26,227,99,188,203,182,100,188,82,136,101,188,174,87,102,188,222,36,103,188,224,239,103,188,179,184,104,188,85,127,105,188,197,67,106,188,1,6,107,188,9,198,107,188,218,131,108,188,116,63,109,188,213,248,109,188,252,175,110,188,231,100,111,188,149,23,112,188,6,200,112,188,55,118,113,188,40,34,114,188,216,203,114,188,69,115,115,188,110,24,116,188,82,187,116,188,240,91,117,188,72,250,117,188,87,150,118,188,
29,48,119,188,153,199,119,188,202,92,120,188,175,239,120,188,71,128,121,188,145,14,122,188,141,154,122,188,57,36,123,188,148,171,123,188,158,48,124,188,85,179,124,188,186,51,125,188,203,177,125,188,136,45,126,188,240,166,126,188,1,30,127,188,188,146,127,188,144,2,128,188,150,58,128,188,112,113,128,188,29,167,128,188,157,219,128,188,241,14,129,188,22,65,129,188,15,114,129,188,217,161,129,188,117,208,129,188,227,253,129,188,34,42,130,188,51,85,130,188,20,127,130,188,199,167,130,188,74,207,130,188,158,
245,130,188,194,26,131,188,182,62,131,188,122,97,131,188,15,131,131,188,115,163,131,188,167,194,131,188,170,224,131,188,126,253,131,188,32,25,132,188,147,51,132,188,212,76,132,188,230,100,132,188,198,123,132,188,118,145,132,188,245,165,132,188,68,185,132,188,98,203,132,188,79,220,132,188,12,236,132,188,153,250,132,188,245,7,133,188,33,20,133,188,28,31,133,188,231,40,133,188,130,49,133,188,237,56,133,188,41,63,133,188,52,68,133,188,16,72,133,188,189,74,133,188,58,76,133,188,137,76,133,188,168,75,133,
188,153,73,133,188,91,70,133,188,239,65,133,188,85,60,133,188,141,53,133,188,152,45,133,188,117,36,133,188,37,26,133,188,169,14,133,188,0,2,133,188,43,244,132,188,42,229,132,188,253,212,132,188,166,195,132,188,35,177,132,188,118,157,132,188,159,136,132,188,158,114,132,188,116,91,132,188,32,67,132,188,164,41,132,188,0,15,132,188,52,243,131,188,65,214,131,188,39,184,131,188,230,152,131,188,127,120,131,188,243,86,131,188,66,52,131,188,108,16,131,188,115,235,130,188,85,197,130,188,21,158,130,188,178,
117,130,188,45,76,130,188,135,33,130,188,192,245,129,188,217,200,129,188,210,154,129,188,172,107,129,188,103,59,129,188,5,10,129,188,133,215,128,188,232,163,128,188,48,111,128,188,92,57,128,188,109,2,128,188,202,148,127,188,133,34,127,188,16,174,126,188,106,55,126,188,150,190,125,188,148,67,125,188,103,198,124,188,16,71,124,188,143,197,123,188,231,65,123,188,26,188,122,188,40,52,122,188,19,170,121,188,221,29,121,188,136,143,120,188,20,255,119,188,132,108,119,188,218,215,118,188,22,65,118,188,59,168,
117,188,74,13,117,188,69,112,116,188,45,209,115,188,6,48,115,188,207,140,114,188,139,231,113,188,60,64,113,188,228,150,112,188,132,235,111,188,30,62,111,188,181,142,110,188,73,221,109,188,221,41,109,188,115,116,108,188,13,189,107,188,172,3,107,188,83,72,106,188,4,139,105,188,192,203,104,188,138,10,104,188,99,71,103,188,78,130,102,188,77,187,101,188,98,242,100,188,142,39,100,188,213,90,99,188,55,140,98,188,184,187,97,188,89,233,96,188,29,21,96,188,6,63,95,188,21,103,94,188,78,141,93,188,178,177,92,
188,67,212,91,188,4,245,90,188,248,19,90,188,32,49,89,188,127,76,88,188,22,102,87,188,233,125,86,188,250,147,85,188,75,168,84,188,222,186,83,188,182,203,82,188,214,218,81,188,63,232,80,188,244,243,79,188,247,253,78,188,75,6,78,188,243,12,77,188,241,17,76,188,71,21,75,188,248,22,74,188,6,23,73,188,117,21,72,188,70,18,71,188,123,13,70,188,25,7,69,188,33,255,67,188,149,245,66,188,121,234,65,188,207,221,64,188,153,207,63,188,219,191,62,188,151,174,61,188,207,155,60,188,135,135,59,188,192,113,58,188,127,
90,57,188,197,65,56,188,149,39,55,188,241,11,54,188,222,238,52,188,92,208,51,188,112,176,50,188,28,143,49,188,99,108,48,188,71,72,47,188,203,34,46,188,243,251,44,188,193,211,43,188,55,170,42,188,89,127,41,188,42,83,40,188,172,37,39,188,226,246,37,188,208,198,36,188,120,149,35,188,221,98,34,188,1,47,33,188,233,249,31,188,150,195,30,188,13,140,29,188,79,83,28,188,95,25,27,188,65,222,25,188,248,161,24,188,135,100,23,188,240,37,22,188,55,230,20,188,95,165,19,188,106,99,18,188,92,32,17,188,56,220,15,188,
1,151,14,188,186,80,13,188,101,9,12,188,7,193,10,188,161,119,9,188,56,45,8,188,206,225,6,188,103,149,5,188,5,72,4,188,172,249,2,188,94,170,1,188,32,90,0,188,230,17,254,187,183,109,251,187,184,199,248,187,241,31,246,187,102,118,243,187,31,203,240,187,34,30,238,187,118,111,235,187,32,191,232,187,38,13,230,187,144,89,227,187,100,164,224,187,168,237,221,187,99,53,219,187,154,123,216,187,85,192,213,187,154,3,211,187,111,69,208,187,219,133,205,187,229,196,202,187,146,2,200,187,233,62,197,187,241,121,194,
187,176,179,191,187,44,236,188,187,109,35,186,187,121,89,183,187,86,142,180,187,11,194,177,187,158,244,174,187,22,38,172,187,122,86,169,187,208,133,166,187,30,180,163,187,107,225,160,187,190,13,158,187,30,57,155,187,144,99,152,187,28,141,149,187,200,181,146,187,154,221,143,187,154,4,141,187,206,42,138,187,60,80,135,187,235,116,132,187,226,152,129,187,79,120,125,187,131,189,119,187,110,1,114,187,30,68,108,187,159,133,102,187,255,197,96,187,75,5,91,187,144,67,85,187,220,128,79,187,59,189,73,187,188,
248,67,187,106,51,62,187,85,109,56,187,136,166,50,187,16,223,44,187,253,22,39,187,89,78,33,187,51,133,27,187,152,187,21,187,150,241,15,187,56,39,10,187,141,92,4,187,68,35,253,186,8,141,241,186,128,246,229,186,198,95,218,186,246,200,206,186,41,50,195,186,122,155,183,186,3,5,172,186,222,110,160,186,38,217,148,186,245,67,137,186,202,94,123,186,32,55,100,186,34,17,77,186,3,237,53,186,247,202,30,186,52,171,7,186,216,27,225,185,169,230,178,185,67,183,132,185,27,28,45,185,194,173,161,184,144,5,54,55,134,
17,207,56,142,161,67,57,246,212,143,57,135,208,189,57,18,195,235,57,25,214,12,58,191,197,35,58,73,176,58,58,130,149,81,58,56,117,104,58,56,79,127,58,167,17,139,58,164,120,150,58,122,220,161,58,14,61,173,58,73,154,184,58,15,244,195,58,73,74,207,58,221,156,218,58,178,235,229,58,174,54,241,58,185,125,252,58,93,224,3,59,204,127,9,59,29,29,15,59,67,184,20,59,50,81,26,59,223,231,31,59,59,124,37,59,60,14,43,59,212,157,48,59,248,42,54,59,156,181,59,59,178,61,65,59,48,195,70,59,8,70,76,59,48,198,81,59,153,
67,87,59,58,190,92,59,5,54,98,59,239,170,103,59,236,28,109,59,239,139,114,59,237,247,119,59,219,96,125,59,86,99,129,59,170,20,132,59,100,196,134,59,126,114,137,59,242,30,140,59,187,201,142,59,211,114,145,59,51,26,148,59,214,191,150,59,183,99,153,59,207,5,156,59,25,166,158,59,144,68,161,59,45,225,163,59,235,123,166,59,196,20,169,59,179,171,171,59,178,64,174,59,188,211,176,59,203,100,179,59,217,243,181,59,225,128,184,59,222,11,187,59,202,148,189,59,160,27,192,59,90,160,194,59,243,34,197,59,102,163,
199,59,172,33,202,59,194,157,204,59,161,23,207,59,68,143,209,59,167,4,212,59,195,119,214,59,148,232,216,59,20,87,219,59,63,195,221,59,14,45,224,59,126,148,226,59,137,249,228,59,41,92,231,59,91,188,233,59,24,26,236,59,92,117,238,59,34,206,240,59,101,36,243,59,32,120,245,59,79,201,247,59,235,23,250,59,241,99,252,59,92,173,254,59,19,122,0,60,38,156,1,60,228,188,2,60,75,220,3,60,88,250,4,60,10,23,6,60,94,50,7,60,81,76,8,60,225,100,9,60,13,124,10,60,209,145,11,60,44,166,12,60,27,185,13,60,156,202,14,60,
173,218,15,60,76,233,16,60,118,246,17,60,41,2,19,60,100,12,20,60,36,21,21,60,103,28,22,60,43,34,23,60,110,38,24,60,45,41,25,60,104,42,26,60,26,42,27,60,68,40,28,60,226,36,29,60,242,31,30,60,116,25,31,60,100,17,32,60,192,7,33,60,136,252,33,60,184,239,34,60,79,225,35,60,76,209,36,60,171,191,37,60,108,172,38,60,140,151,39,60,10,129,40,60,228,104,41,60,24,79,42,60,164,51,43,60,135,22,44,60,190,247,44,60,72,215,45,60,36,181,46,60,79,145,47,60,201,107,48,60,142,68,49,60,158,27,50,60,247,240,50,60,152,196,
51,60,126,150,52,60,168,102,53,60,21,53,54,60,195,1,55,60,177,204,55,60,220,149,56,60,68,93,57,60,231,34,58,60,195,230,58,60,216,168,59,60,35,105,60,60,163,39,61,60,87,228,61,60,61,159,62,60,85,88,63,60,156,15,64,60,17,197,64,60,179,120,65,60,130,42,66,60,122,218,66,60,156,136,67,60,229,52,68,60,86,223,68,60,235,135,69,60,165,46,70,60,130,211,70,60,129,118,71,60,161,23,72,60,224,182,72,60,62,84,73,60,185,239,73,60,81,137,74,60,3,33,75,60,208,182,75,60,183,74,76,60,181,220,76,60,203,108,77,60,246,
250,77,60,55,135,78,60,141,17,79,60,246,153,79,60,113,32,80,60,254,164,80,60,155,39,81,60,73,168,81,60,6,39,82,60,208,163,82,60,169,30,83,60,142,151,83,60,127,14,84,60,123,131,84,60,129,246,84,60,145,103,85,60,171,214,85,60,204,67,86,60,246,174,86,60,38,24,87,60,93,127,87,60,154,228,87,60,220,71,88,60,34,169,88,60,109,8,89,60,188,101,89,60,13,193,89,60,98,26,90,60,184,113,90,60,16,199,90,60,105,26,91,60,196,107,91,60,30,187,91,60,121,8,92,60,211,83,92,60,45,157,92,60,134,228,92,60,221,41,93,60,51,
109,93,60,135,174,93,60,217,237,93,60,40,43,94,60,117,102,94,60,191,159,94,60,6,215,94,60,73,12,95,60,138,63,95,60,199,112,95,60,0,160,95,60,54,205,95,60,104,248,95,60,150,33,96,60,192,72,96,60,231,109,96,60,10,145,96,60,40,178,96,60,67,209,96,60,90,238,96,60,109,9,97,60,125,34,97,60,137,57,97,60,146,78,97,60,151,97,97,60,153,114,97,60,153,129,97,60,149,142,97,60,143,153,97,60,134,162,97,60,124,169,97,60,111,174,97,60,97,177,97,60,82,178,97,60,66,177,97,60,49,174,97,60,31,169,97,60,14,162,97,60,253,
152,97,60,237,141,97,60,223,128,97,60,210,113,97,60,199,96,97,60,191,77,97,60,185,56,97,60,184,33,97,60,187,8,97,60,194,237,96,60,206,208,96,60,225,177,96,60,250,144,96,60,25,110,96,60,65,73,96,60,112,34,96,60,169,249,95,60,235,206,95,60,55,162,95,60,143,115,95,60,242,66,95,60,98,16,95,60,223,219,94,60,106,165,94,60,3,109,94,60,173,50,94,60,103,246,93,60,50,184,93,60,15,120,93,60,255,53,93,60,4,242,92,60,29,172,92,60,76,100,92,60,145,26,92,60,238,206,91,60,100,129,91,60,244,49,91,60,158,224,90,60,
100,141,90,60,70,56,90,60,71,225,89,60,102,136,89,60,165,45,89,60,5,209,88,60,136,114,88,60,45,18,88,60,247,175,87,60,231,75,87,60,254,229,86,60,60,126,86,60,164,20,86,60,54,169,85,60,244,59,85,60,223,204,84,60,248,91,84,60,65,233,83,60,187,116,83,60,102,254,82,60,69,134,82,60,90,12,82,60,164,144,81,60,38,19,81,60,225,147,80,60,214,18,80,60,8,144,79,60,118,11,79,60,36,133,78,60,17,253,77,60,64,115,77,60,179,231,76,60,106,90,76,60,104,203,75,60,173,58,75,60,60,168,74,60,22,20,74,60,60,126,73,60,176,
230,72,60,117,77,72,60,138,178,71,60,243,21,71,60,176,119,70,60,196,215,69,60,48,54,69,60,245,146,68,60,22,238,67,60,148,71,67,60,114,159,66,60,175,245,65,60,80,74,65,60,84,157,64,60,191,238,63,60,145,62,63,60,205,140,62,60,117,217,61,60,138,36,61,60,14,110,60,60,3,182,59,60,107,252,58,60,72,65,58,60,155,132,57,60,104,198,56,60,175,6,56,60,114,69,55,60,180,130,54,60,119,190,53,60,188,248,52,60,133,49,52,60,213,104,51,60,173,158,50,60,16,211,49,60,0,6,49,60,126,55,48,60,140,103,47,60,46,150,46,60,
100,195,45,60,49,239,44,60,152,25,44,60,153,66,43,60,56,106,42,60,118,144,41,60,86,181,40,60,217,216,39,60,3,251,38,60,212,27,38,60,80,59,37,60,120,89,36,60,79,118,35,60,216,145,34,60,19,172,33,60,4,197,32,60,172,220,31,60,14,243,30,60,45,8,30,60,10,28,29,60,169,46,28,60,10,64,27,60,48,80,26,60,31,95,25,60,216,108,24,60,93,121,23,60,177,132,22,60,214,142,21,60,207,151,20,60,157,159,19,60,68,166,18,60,198,171,17,60,37,176,16,60,99,179,15,60,132,181,14,60,136,182,13,60,116,182,12,60,73,181,11,60,10,
179,10,60,185,175,9,60,89,171,8,60,236,165,7,60,116,159,6,60,245,151,5,60,112,143,4,60,233,133,3,60,97,123,2,60,220,111,1,60,91,99,0,60,196,171,254,59,229,142,252,59,30,112,250,59,118,79,248,59,241,44,246,59,148,8,244,59,101,226,241,59,104,186,239,59,163,144,237,59,27,101,235,59,213,55,233,59,215,8,231,59,37,216,228,59,197,165,226,59,188,113,224,59,16,60,222,59,198,4,220,59,226,203,217,59,107,145,215,59,102,85,213,59,215,23,211,59,197,216,208,59,52,152,206,59,43,86,204,59,174,18,202,59,195,205,199,
59,111,135,197,59,183,63,195,59,161,246,192,59,51,172,190,59,114,96,188,59,99,19,186,59,11,197,183,59,113,117,181,59,153,36,179,59,137,210,176,59,71,127,174,59,216,42,172,59,65,213,169,59,136,126,167,59,179,38,165,59,199,205,162,59,201,115,160,59,191,24,158,59,175,188,155,59,157,95,153,59,145,1,151,59,142,162,148,59,155,66,146,59,189,225,143,59,250,127,141,59,88,29,139,59,219,185,136,59,138,85,134,59,105,240,131,59,128,138,129,59,164,71,126,59,204,120,121,59,132,168,116,59,212,214,111,59,202,3,107,
59,113,47,102,59,210,89,97,59,250,130,92,59,244,170,87,59,203,209,82,59,138,247,77,59,61,28,73,59,238,63,68,59,169,98,63,59,121,132,58,59,105,165,53,59,132,197,48,59,215,228,43,59,107,3,39,59,76,33,34,59,134,62,29,59,35,91,24,59,46,119,19,59,180,146,14,59,191,173,9,59,90,200,4,59,34,197,255,58,221,248,245,58,252,43,236,58,149,94,226,58,190,144,216,58,143,194,206,58,29,244,196,58,126,37,187,58,202,86,177,58,21,136,167,58,120,185,157,58,7,235,147,58,217,28,138,58,4,79,128,58,63,3,109,58,129,105,89,
58,250,208,69,58,216,57,50,58,71,164,30,58,114,16,11,58,14,253,238,57,98,221,199,57,56,194,160,57,212,87,115,57,158,53,37,57,251,60,174,56,43,50,17,55,133,215,137,184,131,221,18,185,112,193,96,185,109,75,151,185,138,46,190,185,183,9,229,185,78,238,5,186,114,83,25,186,28,180,44,186,32,16,64,186,84,103,83,186,139,185,102,186,155,6,122,186,45,167,134,186,77,72,144,186,153,230,153,186,252,129,163,186,96,26,173,186,176,175,182,186,215,65,192,186,190,208,201,186,82,92,211,186,125,228,220,186,42,105,230,
186,67,234,239,186,180,103,249,186,180,112,1,187,165,43,6,187,162,228,10,187,161,155,15,187,152,80,20,187,124,3,25,187,67,180,29,187,227,98,34,187,81,15,39,187,130,185,43,187,110,97,48,187,9,7,53,187,74,170,57,187,38,75,62,187,146,233,66,187,134,133,71,187,247,30,76,187,218,181,80,187,38,74,85,187,209,219,89,187,209,106,94,187,28,247,98,187,168,128,103,187,107,7,108,187,91,139,112,187,110,12,117,187,156,138,121,187,217,5,126,187,14,63,129,187,174,121,131,187,200,178,133,187,86,234,135,187,84,32,138,
187,189,84,140,187,140,135,142,187,189,184,144,187,75,232,146,187,49,22,149,187,106,66,151,187,242,108,153,187,196,149,155,187,220,188,157,187,53,226,159,187,202,5,162,187,151,39,164,187,150,71,166,187,197,101,168,187,29,130,170,187,155,156,172,187,59,181,174,187,246,203,176,187,202,224,178,187,178,243,180,187,169,4,183,187,171,19,185,187,180,32,187,187,191,43,189,187,200,52,191,187,203,59,193,187,195,64,195,187,172,67,197,187,129,68,199,187,64,67,201,187,227,63,203,187,102,58,205,187,197,50,207,
187,252,40,209,187,8,29,211,187,226,14,213,187,137,254,214,187,247,235,216,187,41,215,218,187,26,192,220,187,199,166,222,187,44,139,224,187,68,109,226,187,13,77,228,187,129,42,230,187,157,5,232,187,94,222,233,187,191,180,235,187,188,136,237,187,83,90,239,187,126,41,241,187,59,246,242,187,134,192,244,187,90,136,246,187,181,77,248,187,147,16,250,187,240,208,251,187,200,142,253,187,24,74,255,187,111,129,0,188,137,92,1,188,91,54,2,188,226,14,3,188,28,230,3,188,7,188,4,188,162,144,5,188,236,99,6,188,226,
53,7,188,131,6,8,188,206,213,8,188,192,163,9,188,88,112,10,188,148,59,11,188,116,5,12,188,244,205,12,188,21,149,13,188,211,90,14,188,46,31,15,188,37,226,15,188,181,163,16,188,221,99,17,188,155,34,18,188,239,223,18,188,215,155,19,188,80,86,20,188,91,15,21,188,245,198,21,188,29,125,22,188,210,49,23,188,18,229,23,188,220,150,24,188,47,71,25,188,9,246,25,188,104,163,26,188,77,79,27,188,181,249,27,188,159,162,28,188,9,74,29,188,243,239,29,188,92,148,30,188,66,55,31,188,163,216,31,188,128,120,32,188,214,
22,33,188,164,179,33,188,234,78,34,188,165,232,34,188,214,128,35,188,122,23,36,188,146,172,36,188,27,64,37,188,21,210,37,188,126,98,38,188,86,241,38,188,156,126,39,188,78,10,40,188,108,148,40,188,244,28,41,188,230,163,41,188,65,41,42,188,4,173,42,188,45,47,43,188,189,175,43,188,177,46,44,188,10,172,44,188,198,39,45,188,229,161,45,188,101,26,46,188,71,145,46,188,136,6,47,188,41,122,47,188,40,236,47,188,133,92,48,188,64,203,48,188,86,56,49,188,200,163,49,188,150,13,50,188,189,117,50,188,62,220,50,188,
25,65,51,188,75,164,51,188,213,5,52,188,183,101,52,188,239,195,52,188,125,32,53,188,96,123,53,188,153,212,53,188,37,44,54,188,6,130,54,188,58,214,54,188,193,40,55,188,154,121,55,188,198,200,55,188,67,22,56,188,17,98,56,188,47,172,56,188,159,244,56,188,94,59,57,188,109,128,57,188,203,195,57,188,120,5,58,188,115,69,58,188,189,131,58,188,85,192,58,188,59,251,58,188,111,52,59,188,240,107,59,188,190,161,59,188,216,213,59,188,64,8,60,188,244,56,60,188,245,103,60,188,65,149,60,188,218,192,60,188,191,234,
60,188,240,18,61,188,109,57,61,188,53,94,61,188,73,129,61,188,169,162,61,188,84,194,61,188,75,224,61,188,142,252,61,188,28,23,62,188,246,47,62,188,28,71,62,188,142,92,62,188,75,112,62,188,85,130,62,188,171,146,62,188,77,161,62,188,59,174,62,188,119,185,62,188,254,194,62,188,211,202,62,188,245,208,62,188,100,213,62,188,33,216,62,188,44,217,62,188,133,216,62,188,44,214,62,188,34,210,62,188,103,204,62,188,251,196,62,188,223,187,62,188,19,177,62,188,151,164,62,188,108,150,62,188,146,134,62,188,10,117,
62,188,212,97,62,188,240,76,62,188,95,54,62,188,33,30,62,188,56,4,62,188,163,232,61,188,98,203,61,188,119,172,61,188,226,139,61,188,164,105,61,188,188,69,61,188,44,32,61,188,245,248,60,188,22,208,60,188,145,165,60,188,102,121,60,188,150,75,60,188,33,28,60,188,9,235,59,188,77,184,59,188,239,131,59,188,239,77,59,188,79,22,59,188,14,221,58,188,46,162,58,188,175,101,58,188,146,39,58,188,216,231,57,188,130,166,57,188,145,99,57,188,6,31,57,188,224,216,56,188,34,145,56,188,204,71,56,188,223,252,55,188,93,
176,55,188,69,98,55,188,153,18,55,188,89,193,54,188,136,110,54,188,38,26,54,188,51,196,53,188,177,108,53,188,161,19,53,188,3,185,52,188,218,92,52,188,38,255,51,188,232,159,51,188,33,63,51,188,210,220,50,188,253,120,50,188,162,19,50,188,195,172,49,188,97,68,49,188,125,218,48,188,25,111,48,188,52,2,48,188,209,147,47,188,241,35,47,188,150,178,46,188,191,63,46,188,111,203,45,188,167,85,45,188,104,222,44,188,180,101,44,188,139,235,43,188,239,111,43,188,226,242,42,188,100,116,42,188,120,244,41,188,30,115,
41,188,88,240,40,188,39,108,40,188,141,230,39,188,139,95,39,188,34,215,38,188,84,77,38,188,35,194,37,188,143,53,37,188,155,167,36,188,72,24,36,188,150,135,35,188,137,245,34,188,33,98,34,188,96,205,33,188,71,55,33,188,216,159,32,188,21,7,32,188,254,108,31,188,151,209,30,188,223,52,30,188,218,150,29,188,135,247,28,188,234,86,28,188,4,181,27,188,214,17,27,188,98,109,26,188,170,199,25,188,175,32,25,188,115,120,24,188,248,206,23,188,63,36,23,188,75,120,22,188,28,203,21,188,182,28,21,188,24,109,20,188,
70,188,19,188,64,10,19,188,9,87,18,188,163,162,17,188,15,237,16,188,79,54,16,188,101,126,15,188,83,197,14,188,26,11,14,188,188,79,13,188,60,147,12,188,155,213,11,188,219,22,11,188,253,86,10,188,5,150,9,188,243,211,8,188,201,16,8,188,138,76,7,188,55,135,6,188,211,192,5,188,94,249,4,188,220,48,4,188,78,103,3,188,182,156,2,188,22,209,1,188,112,4,1,188,198,54,0,188,52,208,254,187,220,48,253,187,135,143,251,187,59,236,249,187,251,70,248,187,203,159,246,187,175,246,244,187,171,75,243,187,196,158,241,187,
253,239,239,187,91,63,238,187,225,140,236,187,148,216,234,187,121,34,233,187,146,106,231,187,230,176,229,187,118,245,227,187,73,56,226,187,98,121,224,187,197,184,222,187,119,246,220,187,124,50,219,187,215,108,217,187,143,165,215,187,166,220,213,187,33,18,212,187,5,70,210,187,86,120,208,187,24,169,206,187,79,216,204,187,0,6,203,187,48,50,201,187,226,92,199,187,27,134,197,187,224,173,195,187,53,212,193,187,30,249,191,187,160,28,190,187,192,62,188,187,129,95,186,187,232,126,184,187,250,156,182,187,188,
185,180,187,49,213,178,187,95,239,176,187,73,8,175,187,244,31,173,187,102,54,171,187,162,75,169,187,172,95,167,187,139,114,165,187,65,132,163,187,212,148,161,187,72,164,159,187,163,178,157,187,231,191,155,187,27,204,153,187,66,215,151,187,98,225,149,187,127,234,147,187,157,242,145,187,193,249,143,187,240,255,141,187,47,5,140,187,130,9,138,187,237,12,136,187,118,15,134,187,33,17,132,187,243,17,130,187,241,17,128,187,60,34,124,187,1,31,120,187,57,26,116,187,237,19,112,187,40,12,108,187,241,2,104,187,
83,248,99,187,87,236,95,187,7,223,91,187,108,208,87,187,143,192,83,187,122,175,79,187,54,157,75,187,205,137,71,187,72,117,67,187,177,95,63,187,16,73,59,187,113,49,55,187,219,24,51,187,89,255,46,187,244,228,42,187,181,201,38,187,166,173,34,187,209,144,30,187,62,115,26,187,248,84,22,187,8,54,18,187,119,22,14,187,79,246,9,187,153,213,5,187,95,180,1,187,84,37,251,186,7,225,242,186,235,155,234,186,18,86,226,186,143,15,218,186,118,200,209,186,216,128,201,186,202,56,193,186,93,240,184,186,165,167,176,186,
181,94,168,186,159,21,160,186,119,204,151,186,79,131,143,186,58,58,135,186,150,226,125,186,41,81,109,186,83,192,92,186,58,48,76,186,3,161,59,186,212,18,43,186,210,133,26,186,35,250,9,186,215,223,242,185,163,206,209,185,245,192,176,185,23,183,143,185,167,98,93,185,233,95,27,185,22,205,178,184,253,184,187,183,17,183,41,56,24,143,216,56,165,21,46,57,122,215,111,57,60,198,152,57,6,154,185,57,209,102,218,57,85,44,251,57,35,245,13,58,47,80,30,58,40,167,46,58,236,249,62,58,84,72,79,58,61,146,95,58,131,215,
111,58,0,12,128,58,202,41,136,58,11,69,144,58,177,93,152,58,172,115,160,58,233,134,168,58,86,151,176,58,226,164,184,58,121,175,192,58,11,183,200,58,134,187,208,58,216,188,216,58,240,186,224,58,187,181,232,58,40,173,240,58,38,161,248,58,210,72,0,59,71,63,4,59,234,51,8,59,179,38,12,59,152,23,16,59,145,6,20,59,150,243,23,59,157,222,27,59,159,199,31,59,146,174,35,59,111,147,39,59,44,118,43,59,193,86,47,59,37,53,51,59,81,17,55,59,60,235,58,59,221,194,62,59,44,152,66,59,32,107,70,59,178,59,74,59,218,9,
78,59,141,213,81,59,198,158,85,59,123,101,89,59,164,41,93,59,57,235,96,59,50,170,100,59,135,102,104,59,47,32,108,59,36,215,111,59,92,139,115,59,207,60,119,59,119,235,122,59,74,151,126,59,33,32,129,59,43,243,130,59,191,196,132,59,217,148,134,59,117,99,136,59,145,48,138,59,38,252,139,59,51,198,141,59,178,142,143,59,161,85,145,59,251,26,147,59,189,222,148,59,227,160,150,59,105,97,152,59,75,32,154,59,134,221,155,59,22,153,157,59,248,82,159,59,39,11,161,59,160,193,162,59,96,118,164,59,99,41,166,59,165,
218,167,59,35,138,169,59,217,55,171,59,195,227,172,59,223,141,174,59,40,54,176,59,156,220,177,59,54,129,179,59,244,35,181,59,209,196,182,59,203,99,184,59,223,0,186,59,8,156,187,59,67,53,189,59,141,204,190,59,228,97,192,59,66,245,193,59,166,134,195,59,12,22,197,59,113,163,198,59,210,46,200,59,42,184,201,59,120,63,203,59,185,196,204,59,232,71,206,59,3,201,207,59,6,72,209,59,240,196,210,59,188,63,212,59,104,184,213,59,240,46,215,59,83,163,216,59,140,21,218,59,152,133,219,59,118,243,220,59,34,95,222,
59,152,200,223,59,215,47,225,59,220,148,226,59,163,247,227,59,42,88,229,59,110,182,230,59,108,18,232,59,34,108,233,59,141,195,234,59,170,24,236,59,119,107,237,59,240,187,238,59,20,10,240,59,224,85,241,59,81,159,242,59,101,230,243,59,25,43,245,59,106,109,246,59,87,173,247,59,220,234,248,59,248,37,250,59,167,94,251,59,232,148,252,59,184,200,253,59,21,250,254,59,126,20,0,60,182,170,0,60,177,63,1,60,110,211,1,60,235,101,2,60,40,247,2,60,36,135,3,60,221,21,4,60,82,163,4,60,131,47,5,60,110,186,5,60,19,
68,6,60,112,204,6,60,132,83,7,60,78,217,7,60,206,93,8,60,2,225,8,60,233,98,9,60,131,227,9,60,207,98,10,60,203,224,10,60,119,93,11,60,209,216,11,60,218,82,12,60,144,203,12,60,241,66,13,60,255,184,13,60,182,45,14,60,24,161,14,60,34,19,15,60,213,131,15,60,47,243,15,60,47,97,16,60,213,205,16,60,33,57,17,60,16,163,17,60,164,11,18,60,218,114,18,60,178,216,18,60,44,61,19,60,71,160,19,60,2,2,20,60,93,98,20,60,86,193,20,60,238,30,21,60,36,123,21,60,247,213,21,60,102,47,22,60,113,135,22,60,24,222,22,60,90,
51,23,60,54,135,23,60,171,217,23,60,187,42,24,60,98,122,24,60,163,200,24,60,123,21,25,60,235,96,25,60,241,170,25,60,143,243,25,60,194,58,26,60,139,128,26,60,234,196,26,60,222,7,27,60,102,73,27,60,130,137,27,60,51,200,27,60,119,5,28,60,78,65,28,60,185,123,28,60,182,180,28,60,70,236,28,60,104,34,29,60,28,87,29,60,97,138,29,60,56,188,29,60,161,236,29,60,154,27,30,60,36,73,30,60,64,117,30,60,235,159,30,60,39,201,30,60,244,240,30,60,81,23,31,60,61,60,31,60,186,95,31,60,199,129,31,60,100,162,31,60,144,
193,31,60,76,223,31,60,152,251,31,60,116,22,32,60,223,47,32,60,218,71,32,60,101,94,32,60,127,115,32,60,42,135,32,60,100,153,32,60,46,170,32,60,137,185,32,60,115,199,32,60,238,211,32,60,249,222,32,60,149,232,32,60,193,240,32,60,126,247,32,60,204,252,32,60,172,0,33,60,29,3,33,60,31,4,33,60,179,3,33,60,218,1,33,60,146,254,32,60,222,249,32,60,188,243,32,60,45,236,32,60,50,227,32,60,202,216,32,60,247,204,32,60,184,191,32,60,14,177,32,60,249,160,32,60,122,143,32,60,144,124,32,60,61,104,32,60,129,82,32,
60,91,59,32,60,206,34,32,60,216,8,32,60,123,237,31,60,183,208,31,60,140,178,31,60,251,146,31,60,5,114,31,60,170,79,31,60,234,43,31,60,199,6,31,60,64,224,30,60,86,184,30,60,10,143,30,60,92,100,30,60,78,56,30,60,222,10,30,60,16,220,29,60,226,171,29,60,85,122,29,60],"i8",4,y.a+30720);
Q([107,71,29,60,36,19,29,60,128,221,28,60,129,166,28,60,38,110,28,60,113,52,28,60,99,249,27,60,252,188,27,60,60,127,27,60,38,64,27,60,185,255,26,60,246,189,26,60,222,122,26,60,115,54,26,60,179,240,25,60,162,169,25,60,63,97,25,60,139,23,25,60,135,204,24,60,53,128,24,60,148,50,24,60,166,227,23,60,108,147,23,60,230,65,23,60,22,239,22,60,253,154,22,60,155,69,22,60,242,238,21,60,2,151,21,60,204,61,21,60,82,227,20,60,149,135,20,60,149,42,20,60,83,204,19,60,209,108,19,60,16,12,19,60,16,170,18,60,211,70,
18,60,90,226,17,60,166,124,17,60,184,21,17,60,145,173,16,60,51,68,16,60,157,217,15,60,211,109,15,60,212,0,15,60,162,146,14,60,62,35,14,60,169,178,13,60,229,64,13,60,243,205,12,60,211,89,12,60,136,228,11,60,17,110,11,60,114,246,10,60,170,125,10,60,187,3,10,60,167,136,9,60,110,12,9,60,19,143,8,60,149,16,8,60,247,144,7,60,58,16,7,60,96,142,6,60,104,11,6,60,86,135,5,60,42,2,5,60,229,123,4,60,138,244,3,60,25,108,3,60,147,226,2,60,251,87,2,60,82,204,1,60,152,63,1,60,208,177,0,60,250,34,0,60,51,38,255,59,
92,4,254,59,115,224,252,59,124,186,251,59,122,146,250,59,110,104,249,59,93,60,248,59,73,14,247,59,53,222,245,59,37,172,244,59,27,120,243,59,26,66,242,59,37,10,241,59,65,208,239,59,111,148,238,59,178,86,237,59,15,23,236,59,136,213,234,59,32,146,233,59,218,76,232,59,186,5,231,59,195,188,229,59,248,113,228,59,92,37,227,59,243,214,225,59,192,134,224,59,197,52,223,59,8,225,221,59,138,139,220,59,79,52,219,59,90,219,217,59,175,128,216,59,81,36,215,59,68,198,213,59,138,102,212,59,40,5,211,59,33,162,209,59,
119,61,208,59,47,215,206,59,77,111,205,59,210,5,204,59,196,154,202,59,37,46,201,59,248,191,199,59,67,80,198,59,7,223,196,59,73,108,195,59,11,248,193,59,83,130,192,59,34,11,191,59,125,146,189,59,104,24,188,59,229,156,186,59,249,31,185,59,167,161,183,59,243,33,182,59,224,160,180,59,114,30,179,59,173,154,177,59,148,21,176,59,43,143,174,59,118,7,173,59,121,126,171,59,54,244,169,59,179,104,168,59,242,219,166,59,247,77,165,59,198,190,163,59,99,46,162,59,210,156,160,59,22,10,159,59,51,118,157,59,44,225,
155,59,7,75,154,59,198,179,152,59,109,27,151,59,0,130,149,59,131,231,147,59,250,75,146,59,104,175,144,59,209,17,143,59,58,115,141,59,166,211,139,59,24,51,138,59,150,145,136,59,34,239,134,59,192,75,133,59,117,167,131,59,68,2,130,59,50,92,128,59,130,106,125,59,237,26,122,59,171,201,118,59,197,118,115,59,66,34,112,59,43,204,108,59,134,116,105,59,93,27,102,59,182,192,98,59,154,100,95,59,17,7,92,59,34,168,88,59,213,71,85,59,51,230,81,59,66,131,78,59,12,31,75,59,152,185,71,59,238,82,68,59,22,235,64,59,
23,130,61,59,250,23,58,59,199,172,54,59,134,64,51,59,62,211,47,59,248,100,44,59,188,245,40,59,145,133,37,59,127,20,34,59,143,162,30,59,201,47,27,59,52,188,23,59,216,71,20,59,190,210,16,59,237,92,13,59,110,230,9,59,72,111,6,59,132,247,2,59,81,254,254,58,126,12,248,58,157,25,241,58,191,37,234,58,244,48,227,58,75,59,220,58,213,68,213,58,162,77,206,58,193,85,199,58,67,93,192,58,55,100,185,58,174,106,178,58,183,112,171,58,99,118,164,58,192,123,157,58,224,128,150,58,211,133,143,58,167,138,136,58,109,143,
129,58,106,40,117,58,30,50,103,58,20,60,89,58,110,70,75,58,74,81,61,58,200,92,47,58,8,105,33,58,42,118,19,58,77,132,5,58,33,39,239,57,40,72,211,57,239,107,183,57,179,146,155,57,107,121,127,57,103,212,71,57,215,54,16,57,118,66,177,56,55,80,4,56,148,129,179,183,19,214,155,184,250,91,5,185,137,194,60,185,56,30,116,185,70,183,149,185,133,89,177,185,155,245,204,185,73,139,232,185,41,13,2,186,61,209,15,186,192,145,29,186,149,78,43,186,157,7,57,186,185,188,70,186,202,109,84,186,178,26,98,186,84,195,111,
186,143,103,125,186,163,131,133,186,46,81,140,186,88,28,147,186,20,229,153,186,81,171,160,186,0,111,167,186,20,48,174,186,124,238,180,186,42,170,187,186,15,99,194,186,28,25,201,186,67,204,207,186,117,124,214,186,162,41,221,186,189,211,227,186,182,122,234,186,127,30,241,186,10,191,247,186,72,92,254,186,21,123,2,187,81,198,5,187,208,15,9,187,141,87,12,187,126,157,15,187,158,225,18,187,229,35,22,187,76,100,25,187,204,162,28,187,94,223,31,187,250,25,35,187,155,82,38,187,56,137,41,187,203,189,44,187,77,
240,47,187,183,32,51,187,2,79,54,187,39,123,57,187,31,165,60,187,228,204,63,187,110,242,66,187,183,21,70,187,184,54,73,187,107,85,76,187,200,113,79,187,202,139,82,187,104,163,85,187,157,184,88,187,98,203,91,187,177,219,94,187,130,233,97,187,208,244,100,187,148,253,103,187,199,3,107,187,99,7,110,187,97,8,113,187,188,6,116,187,108,2,119,187,108,251,121,187,180,241,124,187,64,229,127,187,4,107,129,187,3,226,130,187,154,87,132,187,198,203,133,187,132,62,135,187,209,175,136,187,169,31,138,187,11,142,139,
187,242,250,140,187,91,102,142,187,69,208,143,187,171,56,145,187,140,159,146,187,227,4,148,187,174,104,149,187,234,202,150,187,148,43,152,187,170,138,153,187,40,232,154,187,12,68,156,187,83,158,157,187,249,246,158,187,253,77,160,187,91,163,161,187,17,247,162,187,28,73,164,187,121,153,165,187,37,232,166,187,31,53,168,187,98,128,169,187,237,201,170,187,189,17,172,187,206,87,173,187,32,156,174,187,174,222,175,187,119,31,177,187,120,94,178,187,174,155,179,187,23,215,180,187,176,16,182,187,119,72,183,
187,105,126,184,187,133,178,185,187,198,228,186,187,44,21,188,187,180,67,189,187,90,112,190,187,30,155,191,187,252,195,192,187,243,234,193,187,255,15,195,187,31,51,196,187,81,84,197,187,145,115,198,187,223,144,199,187,55,172,200,187,152,197,201,187,255,220,202,187,107,242,203,187,216,5,205,187,70,23,206,187,177,38,207,187,24,52,208,187,121,63,209,187,209,72,210,187,31,80,211,187,97,85,212,187,149,88,213,187,184,89,214,187,201,88,215,187,197,85,216,187,172,80,217,187,123,73,218,187,48,64,219,187,202,
52,220,187,70,39,221,187,162,23,222,187,222,5,223,187,247,241,223,187,235,219,224,187,185,195,225,187,96,169,226,187,220,140,227,187,45,110,228,187,81,77,229,187,71,42,230,187,13,5,231,187,160,221,231,187,1,180,232,187,45,136,233,187,34,90,234,187,223,41,235,187,99,247,235,187,173,194,236,187,186,139,237,187,137,82,238,187,26,23,239,187,106,217,239,187,120,153,240,187,67,87,241,187,202,18,242,187,11,204,242,187,6,131,243,187,184,55,244,187,32,234,244,187,62,154,245,187,17,72,246,187,150,243,246,187,
205,156,247,187,181,67,248,187,77,232,248,187,147,138,249,187,135,42,250,187,39,200,250,187,115,99,251,187,105,252,251,187,9,147,252,187,82,39,253,187,66,185,253,187,217,72,254,187,22,214,254,187,248,96,255,187,126,233,255,187,212,55,0,188,186,121,0,188,113,186,0,188,248,249,0,188,80,56,1,188,119,117,1,188,110,177,1,188,52,236,1,188,200,37,2,188,44,94,2,188,93,149,2,188,92,203,2,188,41,0,3,188,195,51,3,188,43,102,3,188,95,151,3,188,96,199,3,188,45,246,3,188,198,35,4,188,43,80,4,188,92,123,4,188,89,
165,4,188,33,206,4,188,180,245,4,188,18,28,5,188,60,65,5,188,48,101,5,188,239,135,5,188,120,169,5,188,204,201,5,188,235,232,5,188,211,6,6,188,134,35,6,188,4,63,6,188,75,89,6,188,93,114,6,188,56,138,6,188,222,160,6,188,78,182,6,188,136,202,6,188,141,221,6,188,91,239,6,188,244,255,6,188,87,15,7,188,133,29,7,188,125,42,7,188,63,54,7,188,204,64,7,188,36,74,7,188,71,82,7,188,52,89,7,188,237,94,7,188,113,99,7,188,193,102,7,188,220,104,7,188,195,105,7,188,118,105,7,188,245,103,7,188,64,101,7,188,89,97,7,
188,62,92,7,188,240,85,7,188,111,78,7,188,188,69,7,188,216,59,7,188,193,48,7,188,121,36,7,188,255,22,7,188,85,8,7,188,122,248,6,188,111,231,6,188,53,213,6,188,202,193,6,188,49,173,6,188,105,151,6,188,115,128,6,188,78,104,6,188,252,78,6,188,125,52,6,188,210,24,6,188,250,251,5,188,246,221,5,188,199,190,5,188,110,158,5,188,233,124,5,188,59,90,5,188,100,54,5,188,100,17,5,188,60,235,4,188,235,195,4,188,116,155,4,188,214,113,4,188,17,71,4,188,40,27,4,188,25,238,3,188,230,191,3,188,143,144,3,188,20,96,3,
188,120,46,3,188,185,251,2,188,217,199,2,188,217,146,2,188,185,92,2,188,121,37,2,188,27,237,1,188,159,179,1,188,5,121,1,188,79,61,1,188,126,0,1,188,145,194,0,188,138,131,0,188,105,67,0,188,48,2,0,188,188,127,255,187,235,248,254,187,236,111,254,187,194,228,253,187,110,87,253,187,242,199,252,187,79,54,252,187,135,162,251,187,156,12,251,187,144,116,250,187,100,218,249,187,25,62,249,187,178,159,248,187,49,255,247,187,151,92,247,187,230,183,246,187,31,17,246,187,70,104,245,187,90,189,244,187,95,16,244,
187,86,97,243,187,66,176,242,187,35,253,241,187,253,71,241,187,208,144,240,187,159,215,239,187,108,28,239,187,57,95,238,187,8,160,237,187,219,222,236,187,180,27,236,187,148,86,235,187,127,143,234,187,119,198,233,187,124,251,232,187,146,46,232,187,187,95,231,187,248,142,230,187,77,188,229,187,186,231,228,187,67,17,228,187,234,56,227,187,176,94,226,187,153,130,225,187,166,164,224,187,217,196,223,187,54,227,222,187,190,255,221,187,115,26,221,187,88,51,220,187,112,74,219,187,188,95,218,187,64,115,217,
187,252,132,216,187,245,148,215,187,44,163,214,187,164,175,213,187,95,186,212,187,96,195,211,187,168,202,210,187,60,208,209,187,29,212,208,187,77,214,207,187,208,214,206,187,167,213,205,187,214,210,204,187,95,206,203,187,69,200,202,187,137,192,201,187,48,183,200,187,58,172,199,187,172,159,198,187,136,145,197,187,208,129,196,187,135,112,195,187,175,93,194,187,77,73,193,187,97,51,192,187,239,27,191,187,250,2,190,187,132,232,188,187,145,204,187,187,34,175,186,187,59,144,185,187,223,111,184,187,16,78,
183,187,209,42,182,187,37,6,181,187,15,224,179,187,146,184,178,187,176,143,177,187,109,101,176,187,202,57,175,187,205,12,174,187,118,222,172,187,201,174,171,187,201,125,170,187,121,75,169,187,220,23,168,187,244,226,166,187,198,172,165,187,83,117,164,187,158,60,163,187,172,2,162,187,126,199,160,187,23,139,159,187,124,77,158,187,174,14,157,187,177,206,155,187,136,141,154,187,54,75,153,187,189,7,152,187,34,195,150,187,102,125,149,187,142,54,148,187,156,238,146,187,148,165,145,187,119,91,144,187,75,16,
143,187,17,196,141,187,205,118,140,187,130,40,139,187,51,217,137,187,228,136,136,187,150,55,135,187,79,229,133,187,16,146,132,187,221,61,131,187,185,232,129,187,168,146,128,187,88,119,126,187,145,199,123,187,3,22,121,187,178,98,118,187,167,173,115,187,230,246,112,187,120,62,110,187,97,132,107,187,169,200,104,187,86,11,102,187,111,76,99,187,250,139,96,187,254,201,93,187,129,6,91,187,137,65,88,187,30,123,85,187,69,179,82,187,6,234,79,187,104,31,77,187,111,83,74,187,36,134,71,187,140,183,68,187,175,
231,65,187,147,22,63,187,63,68,60,187,185,112,57,187,7,156,54,187,49,198,51,187,62,239,48,187,51,23,46,187,23,62,43,187,242,99,40,187,201,136,37,187,164,172,34,187,137,207,31,187,127,241,28,187,141,18,26,187,184,50,23,187,9,82,20,187,133,112,17,187,51,142,14,187,26,171,11,187,65,199,8,187,175,226,5,187,105,253,2,187,119,23,0,187,192,97,250,186,84,147,244,186,183,195,238,186,248,242,232,186,36,33,227,186,71,78,221,186,112,122,215,186,173,165,209,186,9,208,203,186,147,249,197,186,89,34,192,186,103,
74,186,186,204,113,180,186,148,152,174,186,204,190,168,186,131,228,162,186,198,9,157,186,162,46,151,186,37,83,145,186,91,119,139,186,83,155,133,186,50,126,127,186,119,197,115,186,142,12,104,186,147,83,92,186,161,154,80,186,209,225,68,186,62,41,57,186,4,113,45,186,61,185,33,186,2,2,22,186,112,75,10,186,65,43,253,185,92,193,229,185,101,89,206,185,147,243,182,185,25,144,159,185,45,47,136,185,5,162,97,185,160,235,50,185,146,59,4,185,137,36,171,184,131,192,27,184,10,78,245,54,24,244,88,56,111,142,201,
56,157,72,19,57,205,192,65,57,97,47,112,57,247,73,143,57,8,119,166,57,174,158,189,57,183,192,212,57,237,220,235,57,143,121,1,58,139,1,13,58,81,134,24,58,199,7,36,58,212,133,47,58,93,0,59,58,74,119,70,58,129,234,81,58,233,89,93,58,103,197,104,58,228,44,116,58,69,144,127,58,185,119,133,58,40,37,139,58,100,208,144,58,96,121,150,58,15,32,156,58,101,196,161,58,86,102,167,58,213,5,173,58,214,162,178,58,77,61,184,58,44,213,189,58,105,106,195,58,246,252,200,58,199,140,206,58,208,25,212,58,6,164,217,58,91,
43,223,58,196,175,228,58,53,49,234,58,162,175,239,58,254,42,245,58,62,163,250,58,43,12,0,59,29,197,2,59,111,124,5,59,27,50,8,59,28,230,10,59,106,152,13,59,2,73,16,59,220,247,18,59,243,164,21,59,65,80,24,59,192,249,26,59,107,161,29,59,60,71,32,59,45,235,34,59,57,141,37,59,89,45,40,59,137,203,42,59,194,103,45,59,254,1,48,59,58,154,50,59,110,48,53,59,149,196,55,59,170,86,58,59,167,230,60,59,135,116,63,59,68,0,66,59,217,137,68,59,64,17,71,59,117,150,73,59,113,25,76,59,47,154,78,59,171,24,81,59,222,148,
83,59,196,14,86,59,87,134,88,59,146,251,90,59,112,110,93,59,235,222,95,59,255,76,98,59,167,184,100,59,220,33,103,59,155,136,105,59,222,236,107,59,160,78,110,59,221,173,112,59,142,10,115,59,176,100,117,59,61,188,119,59,49,17,122,59,134,99,124,59,56,179,126,59,33,128,128,59,80,165,129,59,37,201,130,59,160,235,131,59,189,12,133,59,122,44,134,59,213,74,135,59,203,103,136,59,91,131,137,59,130,157,138,59,61,182,139,59,139,205,140,59,105,227,141,59,212,247,142,59,204,10,144,59,77,28,145,59,85,44,146,59,
227,58,147,59,244,71,148,59,133,83,149,59,150,93,150,59,35,102,151,59,42,109,152,59,170,114,153,59,161,118,154,59,12,121,155,59,233,121,156,59,54,121,157,59,242,118,158,59,27,115,159,59,173,109,160,59,168,102,161,59,9,94,162,59,207,83,163,59,248,71,164,59,129,58,165,59,106,43,166,59,175,26,167,59,79,8,168,59,73,244,168,59,154,222,169,59,65,199,170,59,59,174,171,59,136,147,172,59,38,119,173,59,17,89,174,59,74,57,175,59,206,23,176,59,156,244,176,59,178,207,177,59,13,169,178,59,174,128,179,59,145,86,
180,59,182,42,181,59,26,253,181,59,189,205,182,59,156,156,183,59,182,105,184,59,10,53,185,59,150,254,185,59,89,198,186,59,81,140,187,59,124,80,188,59,218,18,189,59,104,211,189,59,38,146,190,59,18,79,191,59,43,10,192,59,110,195,192,59,220,122,193,59,115,48,194,59,49,228,194,59,21,150,195,59,29,70,196,59,74,244,196,59,152,160,197,59,8,75,198,59,152,243,198,59,70,154,199,59,18,63,200,59,251,225,200,59,254,130,201,59,28,34,202,59,84,191,202,59,163,90,203,59,9,244,203,59,133,139,204,59,22,33,205,59,187,
180,205,59,115,70,206,59,61,214,206,59,24,100,207,59,3,240,207,59,253,121,208,59,6,2,209,59,28,136,209,59,62,12,210,59,109,142,210,59,166,14,211,59,233,140,211,59,54,9,212,59,139,131,212,59,232,251,212,59,76,114,213,59,182,230,213,59,38,89,214,59,155,201,214,59,20,56,215,59,145,164,215,59,17,15,216,59,148,119,216,59,24,222,216,59,157,66,217,59,36,165,217,59,170,5,218,59,48,100,218,59,182,192,218,59,58,27,219,59,188,115,219,59,60,202,219,59,185,30,220,59,52,113,220,59,171,193,220,59,30,16,221,59,141,
92,221,59,248,166,221,59,93,239,221,59,190,53,222,59,25,122,222,59,111,188,222,59,191,252,222,59,9,59,223,59,76,119,223,59,137,177,223,59,191,233,223,59,239,31,224,59,23,84,224,59,56,134,224,59,83,182,224,59,102,228,224,59,113,16,225,59,118,58,225,59,115,98,225,59,104,136,225,59,87,172,225,59,61,206,225,59,29,238,225,59,245,11,226,59,199,39,226,59,145,65,226,59,84,89,226,59,16,111,226,59,198,130,226,59,118,148,226,59,31,164,226,59,194,177,226,59,95,189,226,59,246,198,226,59,137,206,226,59,22,212,
226,59,158,215,226,59,34,217,226,59,162,216,226,59,30,214,226,59,151,209,226,59,13,203,226,59,128,194,226,59,241,183,226,59,96,171,226,59,206,156,226,59,59,140,226,59,168,121,226,59,21,101,226,59,131,78,226,59,242,53,226,59,99,27,226,59,214,254,225,59,76,224,225,59,198,191,225,59,68,157,225,59,199,120,225,59,80,82,225,59,222,41,225,59,116,255,224,59,18,211,224,59,183,164,224,59,102,116,224,59,31,66,224,59,227,13,224,59,178,215,223,59,141,159,223,59,118,101,223,59,108,41,223,59,114,235,222,59,135,
171,222,59,172,105,222,59,228,37,222,59,46,224,221,59,139,152,221,59,253,78,221,59,132,3,221,59,33,182,220,59,214,102,220,59,164,21,220,59,139,194,219,59,140,109,219,59,170,22,219,59,228,189,218,59,60,99,218,59,178,6,218,59,74,168,217,59,2,72,217,59,221,229,216,59,219,129,216,59,255,27,216,59,72,180,215,59,185,74,215,59,83,223,214,59,22,114,214,59,5,3,214,59,32,146,213,59,105,31,213,59,225,170,212,59,137,52,212,59,100,188,211,59,113,66,211,59,179,198,210,59,44,73,210,59,219,201,209,59,196,72,209,
59,231,197,208,59,70,65,208,59,226,186,207,59,189,50,207,59,216,168,206,59,53,29,206,59,213,143,205,59,187,0,205,59,230,111,204,59,90,221,203,59,24,73,203,59,33,179,202,59,119,27,202,59,27,130,201,59,16,231,200,59,87,74,200,59,241,171,199,59,224,11,199,59,39,106,198,59,198,198,197,59,192,33,197,59,22,123,196,59,202,210,195,59,221,40,195,59,82,125,194,59,43,208,193,59,105,33,193,59,13,113,192,59,27,191,191,59,147,11,191,59,120,86,190,59,203,159,189,59,143,231,188,59,197,45,188,59,111,114,187,59,143,
181,186,59,39,247,185,59,57,55,185,59,199,117,184,59,211,178,183,59,96,238,182,59,110,40,182,59,0,97,181,59,24,152,180,59,184,205,179,59,226,1,179,59,152,52,178,59,221,101,177,59,178,149,176,59,25,196,175,59,21,241,174,59,168,28,174,59,211,70,173,59,154,111,172,59,253,150,171,59,0,189,170,59,164,225,169,59,236,4,169,59,217,38,168,59,111,71,167,59,175,102,166,59,155,132,165,59,54,161,164,59,130,188,163,59,130,214,162,59,54,239,161,59,163,6,161,59,202,28,160,59,173,49,159,59,78,69,158,59,177,87,157,
59,215,104,156,59,195,120,155,59,118,135,154,59,244,148,153,59,63,161,152,59,89,172,151,59,68,182,150,59,4,191,149,59,153,198,148,59,8,205,147,59,81,210,146,59,120,214,145,59,127,217,144,59,104,219,143,59,54,220,142,59,236,219,141,59,139,218,140,59,23,216,139,59,145,212,138,59,253,207,137,59,92,202,136,59,178,195,135,59,0,188,134,59,74,179,133,59,146,169,132,59,218,158,131,59,37,147,130,59,117,134,129,59,206,120,128,59,97,212,126,59,65,181,124,59,65,148,122,59,102,113,120,59,180,76,118,59,49,38,116,
59,227,253,113,59,206,211,111,59,248,167,109,59,102,122,107,59,29,75,105,59,35,26,103,59,124,231,100,59,46,179,98,59,63,125,96,59,179,69,94,59,145,12,92,59,221,209,89,59,156,149,87,59,213,87,85,59,140,24,83,59,198,215,80,59,138,149,78,59,221,81,76,59,195,12,74,59,67,198,71,59,98,126,69,59,37,53,67,59,146,234,64,59,174,158,62,59,126,81,60,59,9,3,58,59,83,179,55,59,98,98,53,59,59,16,51,59,229,188,48,59,100,104,46,59,190,18,44,59,248,187,41,59,25,100,39,59,37,11,37,59,34,177,34,59,22,86,32,59,6,250,
29,59,248,156,27,59,241,62,25,59,247,223,22,59,15,128,20,59,63,31,18,59,141,189,15,59,253,90,13,59,151,247,10,59,95,147,8,59,90,46,6,59,143,200,3,59,3,98,1,59,120,245,253,58,126,37,249,58,35,84,244,58,116,129,239,58,122,173,234,58,66,216,229,58,214,1,225,58,67,42,220,58,146,81,215,58,207,119,210,58,5,157,205,58,65,193,200,58,140,228,195,58,242,6,191,58,126,40,186,58,61,73,181,58,56,105,176,58,123,136,171,58,17,167,166,58,6,197,161,58,100,226,156,58,55,255,151,58,139,27,147,58,106,55,142,58,224,82,
137,58,247,109,132,58,119,17,127,58,112,70,117,58,240,122,107,58,13,175,97,58,222,226,87,58,120,22,78,58,243,73,68,58,101,125,58,58,227,176,48,58,133,228,38,58,96,24,29,58,139,76,19,58,28,129,9,58,82,108,255,57,145,215,235,57,34,68,216,57,48,178,196,57,232,33,177,57,118,147,157,57,7,7,138,57,139,249,108,57,190,233,69,57,255,222,30,57,73,179,239,56,15,180,161,56,254,129,39,56,12,89,59,54,204,251,15,184,93,200,149,184,238,131,227,184,245,151,24,185,210,101,63,185,55,43,102,185,231,115,134,185,159,205,
153,185,153,34,173,185,170,114,192,185,167,189,211,185,100,3,231,185,183,67,250,185,58,191,6,186,185,89,16,186,67,241,25,186,193,133,35,186,32,23,45,186,74,165,54,186,41,48,64,186,169,183,73,186,180,59,83,186,53,188,92,186,23,57,102,186,70,178,111,186,172,39,121,186,154,76,129,186,102,3,134,186,45,184,138,186,231,106,143,186,136,27,148,186,7,202,152,186,89,118,157,186,116,32,162,186,78,200,166,186,220,109,171,186,20,17,176,186,237,177,180,186,91,80,185,186,85,236,189,186,210,133,194,186,198,28,199,
186,39,177,203,186,237,66,208,186,13,210,212,186,124,94,217,186,50,232,221,186,35,111,226,186,71,243,230,186,148,116,235,186,0,243,239,186,129,110,244,186,13,231,248,186,155,92,253,186,144,231,0,187,75,31,3,187,119,85,5,187,18,138,7,187,21,189,9,187,125,238,11,187,68,30,14,187,102,76,16,187,222,120,18,187,168,163,20,187,191,204,22,187,30,244,24,187,192,25,27,187,162,61,29,187,190,95,31,187,16,128,33,187,147,158,35,187,67,187,37,187,28,214,39,187,25,239,41,187,53,6,44,187,108,27,46,187,186,46,48,187,
26,64,50,187,136,79,52,187,0,93,54,187,125,104,56,187,251,113,58,187,117,121,60,187,232,126,62,187,78,130,64,187,165,131,66,187,231,130,68,187,17,128,70,187,30,123,72,187,11,116,74,187,210,106,76,187,113,95,78,187,226,81,80,187,34,66,82,187,45,48,84,187,255,27,86,187,148,5,88,187,231,236,89,187,246,209,91,187,187,180,93,187,52,149,95,187,91,115,97,187,47,79,99,187,169,40,101,187,200,255,102,187,134,212,104,187,225,166,106,187,213,118,108,187,93,68,110,187,118,15,112,187,29,216,113,187,78,158,115,
187,4,98,117,187,62,35,119,187,247,225,120,187,43,158,122,187,215,87,124,187,248,14,126,187,138,195,127,187,197,186,128,187,122,146,129,187,226,104,130,187,252,61,131,187,198,17,132,187,63,228,132,187,100,181,133,187,53,133,134,187,175,83,135,187,209,32,136,187,154,236,136,187,7,183,137,187,24,128,138,187,202,71,139,187,28,14,140,187,13,211,140,187,156,150,141,187,197,88,142,187,137,25,143,187,230,216,143,187,218,150,144,187,99,83,145,187,129,14,146,187,50,200,146,187,116,128,147,187,71,55,148,187,
168,236,148,187,150,160,149,187,17,83,150,187,23,4,151,187,165,179,151,187,188,97,152,187,90,14,153,187,125,185,153,187,37,99,154,187,80,11,155,187,252,177,155,187,41,87,156,187,213,250,156,187,0,157,157,187,167,61,158,187,203,220,158,187,105,122,159,187,128,22,160,187,16,177,160,187,24,74,161,187,149,225,161,187,136,119,162,187,239,11,163,187,200,158,163,187,20,48,164,187,209,191,164,187,254,77,165,187,154,218,165,187,164,101,166,187,27,239,166,187,254,118,167,187,76,253,167,187,5,130,168,187,39,
5,169,187,177,134,169,187,163,6,170,187,252,132,170,187,186,1,171,187,222,124,171,187,102,246,171,187,82,110,172,187,160,228,172,187,80,89,173,187,97,204,173,187,211,61,174,187,164,173,174,187,213,27,175,187,99,136,175,187,80,243,175,187,153,92,176,187,63,196,176,187,64,42,177,187,156,142,177,187,83,241,177,187,100,82,178,187,206,177,178,187,145,15,179,187,172,107,179,187,30,198,179,187,232,30,180,187,8,118,180,187,127,203,180,187,75,31,181,187,109,113,181,187,227,193,181,187,174,16,182,187,205,93,
182,187,64,169,182,187,5,243,182,187,30,59,183,187,137,129,183,187,70,198,183,187,85,9,184,187,182,74,184,187,104,138,184,187,107,200,184,187,191,4,185,187,99,63,185,187,88,120,185,187,157,175,185,187,49,229,185,187,22,25,186,187,74,75,186,187,205,123,186,187,160,170,186,187,193,215,186,187,50,3,187,187,242,44,187,187,1,85,187,187,94,123,187,187,11,160,187,187,6,195,187,187,79,228,187,187,232,3,188,187,207,33,188,187,6,62,188,187,139,88,188,187,95,113,188,187,130,136,188,187,244,157,188,187,181,177,
188,187,197,195,188,187,37,212,188,187,213,226,188,187,213,239,188,187,36,251,188,187,195,4,189,187,179,12,189,187,244,18,189,187,133,23,189,187,104,26,189,187,155,27,189,187,33,27,189,187,248,24,189,187,34,21,189,187,158,15,189,187,109,8,189,187,144,255,188,187,6,245,188,187,209,232,188,187,239,218,188,187,99,203,188,187,44,186,188,187,75,167,188,187,192,146,188,187,140,124,188,187,175,100,188,187,41,75,188,187,252,47,188,187,40,19,188,187,173,244,187,187,140,212,187,187,197,178,187,187,89,143,187,
187,73,106,187,187,150,67,187,187,63,27,187,187,70,241,186,187,171,197,186,187,111,152,186,187,146,105,186,187,22,57,186,187,251,6,186,187,65,211,185,187,234,157,185,187,246,102,185,187,103,46,185,187,60,244,184,187,119,184,184,187,24,123,184,187,32,60,184,187,145,251,183,187,106,185,183,187,173,117,183,187,91,48,183,187,117,233,182,187,251,160,182,187,239,86,182,187,81,11,182,187,34,190,181,187,100,111,181,187,23,31,181,187,60,205,180,187,212,121,180,187,225,36,180,187,99,206,179,187,91,118,179,
187,203,28,179,187,179,193,178,187,21,101,178,187,241,6,178,187,74,167,177,187,31,70,177,187,114,227,176,187,68,127,176,187,151,25,176,187,107,178,175,187,193,73,175,187,156,223,174,187,252,115,174,187,226,6,174,187,79,152,173,187,69,40,173,187,198,182,172,187,209,67,172,187,105,207,171,187,143,89,171,187,69,226,170,187,138,105,170,187,98,239,169,187,205,115,169,187,204,246,168,187,97,120,168,187,141,248,167,187,82,119,167,187,177,244,166,187,171,112,166,187,67,235,165,187,120,100,165,187,78,220,
164,187,196,82,164,187,221,199,163,187,155,59,163,187,254,173,162,187,8,31,162,187,186,142,161,187,23,253,160,187,32,106,160,187,214,213,159,187,58,64,159,187,80,169,158,187,22,17,158,187,145,119,157,187,193,220,156,187,167,64,156,187,70,163,155,187,158,4,155,187,178,100,154,187,132,195,153,187,20,33,153,187,101,125,152,187,121,216,151,187,80,50,151,187,237,138,150,187,81,226,149,187,126,56,149,187,118,141,148,187,59,225,147,187,206,51,147,187,49,133,146,187,101,213,145,187,110,36,145,187,75,114,
144,187,0,191,143,187,142,10,143,187,246,84,142,187,59,158,141,187,95,230,140,187,99,45,140,187,72,115,139,187,18,184,138,187,194,251,137,187,89,62,137,187,218,127,136,187,70,192,135,187,160,255,134,187,232,61,134,187,34,123,133,187,79,183,132,187,113,242,131,187,138,44,131,187,156,101,130,187,169,157,129,187,179,212,128,187,187,10,128,187,136,127,126,187,160,231,124,187,193,77,123,187,239,177,121,187,47,20,120,187,132,116,118,187,243,210,116,187,128,47,115,187,46,138,113,187,1,227,111,187,255,57,
110,187,42,143,108,187,136,226,106,187,28,52,105,187,234,131,103,187,246,209,101,187,69,30,100,187,219,104,98,187,188,177,96,187,237,248,94,187,112,62,93,187,76,130,91,187,131,196,89,187,27,5,88,187,23,68,86,187,124,129,84,187,77,189,82,187,145,247,80,187,74,48,79,187,125,103,77,187,46,157,75,187,98,209,73,187,29,4,72,187,99,53,70,187,57,101,68,187,163,147,66,187,166,192,64,187,70,236,62,187,135,22,61,187,110,63,59,187,255,102,57,187,63,141,55,187,50,178,53,187,220,213,51,187,67,248,49,187,106,25,
48,187,86,57,46,187,12,88,44,187,143,117,42,187,229,145,40,187,19,173,38,187,27,199,36,187,4,224,34,187,209,247,32,187,135,14,31,187,44,36,29,187,194,56,27,187,79,76,25,187,215,94,23,187,96,112,21,187,237,128,19,187,131,144,17,187,38,159,15,187,220,172,13,187,169,185,11,187,145,197,9,187,154,208,7,187,199,218,5,187,29,228,3,187,161,236,1,187,176,232,255,186,141,246,251,186,224,2,248,186,181,13,244,186,20,23,240,186,6,31,236,186,149,37,232,186,203,42,228,186,175,46,224,186,77,49,220,186,172,50,216,
186,215,50,212,186,214,49,208,186,179,47,204,186,120,44,200,186,45,40,196,186,220,34,192,186,143,28,188,186,78,21,184,186,36,13,180,186,24,4,176,186,54,250,171,186,133,239,167,186,16,228,163,186,223,215,159,186,253,202,155,186,114,189,151,186,72,175,147,186,136,160,143,186,60,145,139,186,108,129,135,186,35,113,131,186,210,192,126,186,144,158,118,186,146,123,110,186,235,87,102,186,174,51,94,186,238,14,86,186,188,233,77,186,44,196,69,186,80,158,61,186,60,120,53,186,0,82,45,186,177,43,37,186,96,5,29,
186,32,223,20,186,4,185,12,186,31,147,4,186,3,219,248,185,128,144,232,185,216,70,216,185,49,254,199,185,175,182,183,185,119,112,167,185,174,43,151,185,121,232,134,185,250,77,109,185,189,206,76,185,131,83,44,185,150,220,11,185,129,212,214,184,147,249,149,184,238,81,42,184,235,25,35,183,32,92,177,55,143,10,90,56,241,166,173,56,114,59,238,56,29,97,23,57,93,157,55,57,48,210,87,57,79,255,119,57,57,18,140,57,168,32,156,57,209,42,172,57,144,48,188,57,194,49,204,57,66,46,220,57,238,37,236,57,162,24,252,57,
29,3,6,58,74,247,13,58,198,232,21,58,127,215,29,58,99,195,37,58,98,172,45,58,106,146,53,58,104,117,61,58,77,85,69,58,6,50,77,58,130,11,85,58,176,225,92,58,127,180,100,58,220,131,108,58,184,79,116,58,1,24,124,58,83,238,129,58,203,206,133,58,96,173,137,58,10,138,141,58,191,100,145,58,120,61,149,58,44,20,153,58,212,232,156,58,101,187,160,58,217,139,164,58,39,90,168,58,70,38,172,58,46,240,175,58,216,183,179,58,58,125,183,58,77,64,187,58,9,1,191,58,101,191,194,58,89,123,198,58,222,52,202,58,235,235,205,
58,120,160,209,58,125,82,213,58,242,1,217,58,208,174,220,58,14,89,224,58,164,0,228,58,140,165,231,58,188,71,235,58,45,231,238,58,215,131,242,58,179,29,246,58,185,180,249,58,226,72,253,58,18,109,0,59,61,52,2,59,238,249,3,59,32,190,5,59,209,128,7,59,252,65,9,59,158,1,11,59,179,191,12,59,55,124,14,59,39,55,16,59,127,240,17,59,59,168,19,59,88,94,21,59,210,18,23,59,166,197,24,59,207,118,26,59,75,38,28,59,22,212,29,59,44,128,31,59,138,42,33,59,45,211,34,59,16,122,36,59,49,31,38,59,140,194,39,59,30,100,
41,59,227,3,43,59,215,161,44,59,248,61,46,59,67,216,47,59,179,112,49,59,69,7,51,59,247,155,52,59,197,46,54,59,172,191,55,59,168,78,57,59,183,219,58,59,213,102,60,59,255,239,61,59,49,119,63,59,105,252,64,59,164,127,66,59,223,0,68,59,22,128,69,59,70,253,70,59,109,120,72,59,135,241,73,59,145,104,75,59,137,221,76,59,108,80,78,59,54,193,79,59,228,47,81,59,117,156,82,59,228,6,84,59,47,111,85,59,84,213,86,59,79,57,88,59,30,155,89,59,190,250,90,59,44,88,92,59,101,179,93,59,103,12,95,59,48,99,96,59,188,183,
97,59,8,10,99,59,19,90,100,59,218,167,101,59,90,243,102,59,144,60,104,59,122,131,105,59,22,200,106,59,97,10,108,59,89,74,109,59,251,135,110,59,68,195,111,59,51,252,112,59,198,50,114,59,249,102,115,59,202,152,116,59,55,200,117,59,63,245,118,59,222,31,120,59,18,72,121,59,218,109,122,59,50,145,123,59,26,178,124,59,142,208,125,59,141,236,126,59,10,3,128,59,145,142,128,59,218,24,129,59,229,161,129,59,176,41,130,59,57,176,130,59,130,53,131,59,135,185,131,59,73,60,132,59,199,189,132,59,254,61,133,59,240,
188,133,59,154,58,134,59,252,182,134,59,21,50,135,59,228,171,135,59,105,36,136,59,161,155,136,59,142,17,137,59,45,134,137,59,126,249,137,59,128,107,138,59,51,220,138,59,149,75,139,59,166,185,139,59,101,38,140,59,210,145,140,59,235,251,140,59,177,100,141,59,33,204,141,59,61,50,142,59,2,151,142,59,112,250,142,59,135,92,143,59,71,189,143,59,173,28,144,59,187,122,144,59,110,215,144,59,200,50,145,59,198,140,145,59,105,229,145,59,176,60,146,59,154,146,146,59,39,231,146,59,87,58,147,59,40,140,147,59,155,
220,147,59,175,43,148,59,99,121,148,59,184,197,148,59,172,16,149,59,64,90,149,59,114,162,149,59,67,233,149,59,177,46,150,59,190,114,150,59,104,181,150,59,174,246,150,59,146,54,151,59,18,117,151,59,46,178,151,59,229,237,151,59,56,40,152,59,39,97,152,59,176,152,152,59,212,206,152,59,146,3,153,59,235,54,153,59,222,104,153,59,107,153,153,59,145,200,153,59,81,246,153,59,171,34,154,59,157,77,154,59,41,119,154,59,78,159,154,59,11,198,154,59,98,235,154,59,81,15,155,59,217,49,155,59,249,82,155,59,179,114,
155,59,4,145,155,59,238,173,155,59,113,201,155,59,140,227,155,59,64,252,155,59,141,19,156,59,114,41,156,59,240,61,156,59,6,81,156,59,182,98,156,59,254,114,156,59,224,129,156,59,91,143,156,59,111,155,156,59,29,166,156,59,100,175,156,59,69,183,156,59,192,189,156,59,214,194,156,59,133,198,156,59,208,200,156,59,181,201,156,59,53,201,156,59,81,199,156,59,9,196,156,59,92,191,156,59,75,185,156,59,216,177,156,59,1,169,156,59,199,158,156,59,42,147,156,59,44,134,156,59,204,119,156,59,10,104,156,59,232,86,156,
59,101,68,156,59,129,48,156,59,62,27,156,59,156,4,156,59,155,236,155,59,59,211,155,59,126,184,155,59,99,156,155,59,236,126,155,59,23,96,155,59,231,63,155,59,92,30,155,59,118,251,154,59,54,215,154,59,156,177,154,59,168,138,154,59,93,98,154,59,185,56,154,59,191,13,154,59,109,225,153,59,198,179,153,59,201,132,153,59,119,84,153,59,210,34,153,59,217,239,152,59,141,187,152,59,240,133,152,59,1,79,152,59,194,22,152,59,51,221,151,59,85,162,151,59,41,102,151,59,176,40,151,59,233,233,150,59,215,169,150,59,122,
104,150,59,210,37,150,59,226,225,149,59,168,156,149,59,39,86,149,59,95,14,149,59,81,197,148,59,253,122,148,59,102,47,148,59,139,226,147,59,110,148,147,59,15,69,147,59,112,244,146,59,145,162,146,59,116,79,146,59,25,251,145,59,129,165,145,59,173,78,145,59,159,246,144,59,87,157,144,59,215,66,144,59,30,231,143,59,47,138,143,59,11,44,143,59,178,204,142,59,38,108,142,59,103,10,142,59,119,167,141,59,87,67,141,59,7,222,140,59,138,119,140,59,224,15,140,59,10,167,139,59,10,61,139,59,225,209,138,59,143,101,
138,59,22,248,137,59,119,137,137,59,180,25,137,59,205,168,136,59,196,54,136,59,154,195,135,59,80,79,135,59,232,217,134,59,98,99,134,59,192,235,133,59,4,115,133,59,46,249,132,59,64,126,132,59,59,2,132,59,32,133,131,59,241,6,131,59,175,135,130,59,92,7,130,59,248,133,129,59,133,3,129,59,5,128,128,59,240,246,127,59,193,235,126,59,127,222,125,59,45,207,124,59,205,189,123,59,99,170,122,59,241,148,121,59,122,125,120,59,1,100,119,59,137,72,118,59,21,43,117,59,167,11,116,59,67,234,114,59,235,198,113,59,162,
161,112,59,108,122,111,59,75,81,110,59,67,38,109,59,86,249,107,59,135,202,106,59,218,153,105,59,81,103,104,59,240,50,103,59,186,252,101,59,177,196,100,59,217,138,99,59,53,79,98,59,200,17,97,59,149,210,95,59,160,145,94,59,235,78,93,59,122,10,92,59,80,196,90,59,113,124,89,59,223,50,88,59,157,231,86,59,176,154,85,59,25,76,84,59,221,251,82,59,255,169,81,59,131,86,80,59,106,1,79,59,185,170,77,59,116,82,76,59,157,248,74,59,55,157,73,59,71,64,72,59,208,225,70,59,212,129,69,59,88,32,68,59,95,189,66,59,236,
88,65,59,2,243,63,59,166,139,62,59,219,34,61,59,163,184,59,59,3,77,58,59,255,223,56,59,152,113,55,59,212,1,54,59,182,144,52,59,64,30,51,59,120,170,49,59,95,53,48,59,251,190,46,59,77,71,45,59,91,206,43,59,39,84,42,59,182,216,40,59,10,92,39,59,40,222,37,59,18,95,36,59,205,222,34,59,93,93,33,59,196,218,31,59,7,87,30,59,41,210,28,59,46,76,27,59,26,197,25,59,239,60,24,59,179,179,22,59,104,41,21,59,19,158,19,59,183,17,18,59,87,132,16,59,248,245,14,59,158,102,13,59,75,214,11,59,4,69,10,59,204,178,8,59,167,
31,7,59,154,139,5,59,167,246,3,59,211,96,2,59,32,202,0,59,41,101,254,58,100,52,251,58,251,1,248,58,244,205,244,58,88,152,241,58,46,97,238,58,126,40,235,58,79,238,231,58,168,178,228,58,146,117,225,58,21,55,222,58,55,247,218,58,0,182,215,58,121,115,212,58,169,47,209,58,151,234,205,58,75,164,202,58,205,92,199,58,36,20,196,58,89,202,192,58,114,127,189,58,121,51,186,58,115,230,182,58,106,152,179,58,100,73,176,58,106,249,172,58,131,168,169,58,183,86,166,58,14,4,163,58,143,176,159,58,66,92,156,58,48,7,153,
58,94,177,149,58,214,90,146,58,160,3,143,58,194,171,139,58,68,83,136,58,47,250,132,58,138,160,129,58,185,140,124,58,93,215,117,58,16,33,111,58,224,105,104,58,222,177,97,58,25,249,90,58,160,63,84,58,131,133,77,58,210,202,70,58,155,15,64,58,237,83,57,58,218,151,50,58,111,219,43,58,189,30,37,58,210,97,30,58,191,164,23,58,146,231,16,58,91,42,10,58,42,109,3,58,25,96,249,57,38,230,235,57,155,108,222,57,148,243,208,57,49,123,195,57,145,3,182,57,209,140,168,57,17,23,155,57,110,162,141,57,8,47,128,57,250,
121,101,57,213,152,74,57,224,186,47,57,86,224,20,57,233,18,244,56,238,108,190,56,54,207,136,56,113,116,38,56,113,115,109,55,136,157,62,183,89,151,26,184,13,185,130,184,89,27,184,184,27,114,237,184,110,94,17,185,145,253,43,185,60,150,70,185,51,40,97,185,60,179,123,185,141,27,139,185,202,89,152,185,54,148,165,185,181,202,178,185,41,253,191,185,117,43,205,185,124,85,218,185,32,123,231,185,68,156,244,185,101,220,0,186,76,104,7,186,199,241,13,186,200,120,20,186,65,253,26,186,36,127,33,186,97,254,39,186,
235,122,46,186,180,244,52,186,172,107,59,186,199,223,65,186,245,80,72,186,41,191,78,186,84,42,85,186,105,146,91,186,89,247,97,186,23,89,104,186,149,183,110,186,196,18,117,186,150,106,123,186,127,223,128,186,248,7,132,186,173,46,135,186,153,83,138,186,181,118,141,186,249,151,144,186,95,183,147,186,224,212,150,186,117,240,153,186,25,10,157,186,195,33,160,186,109,55,163,186,17,75,166,186,168,92,169,186,44,108,172,186,149,121,175,186,221,132,178,186,255,141,181,186,242,148,184,186,177,153,187,186,53,
156,190,186,120,156,193,186,116,154,196,186,33,150,199,186,122,143,202,186,120,134,205,186,21,123,208,186,75,109,211,186,19,93,214,186,103,74,217,186,65,53,220,186,155,29,223,186,111,3,226,186,182,230,228,186,106,199,231,186,133,165,234,186,2,129,237,186,218,89,240,186,7,48,243,186,131,3,246,186,73,212,248,186,82,162,251,186,152,109,254,186,11,155,0,187,227,253,1,187,81,95,3,187,82,191,4,187,228,29,6,187,3,123,7,187,172,214,8,187,221,48,10,187,147,137,11,187,203,224,12,187,131,54,14,187,183,138,15,
187,101,221,16,187,138,46,18,187,36,126,19,187,47,204,20,187,170,24,22,187,144,99,23,187,225,172,24,187,152,244,25,187,180,58,27,187,50,127,28,187,15,194,29,187,73,3,31,187,221,66,32,187,201,128,33,187,10,189,34,187,157,247,35,187,128,48,37,187,177,103,38,187,46,157,39,187,243,208,40,187,254,2,42,187,77,51,43,187,222,97,44,187,174,142,45,187,187,185,46,187,2,227,47,187,129,10,49,187,55,48,50,187,32,84,51,187,58,118,52,187,131,150,53,187,249,180,54,187,154,209,55,187,99,236,56,187,83,5,58,187,103,
28,59,187,157,49,60,187,242,68,61,187,102,86,62,187,245,101,63,187,157,115,64,187,94,127,65,187,51,137,66,187,29,145,67,187,24,151,68,187,34,155,69,187,59,157,70,187,95,157,71,187,140,155,72,187,194,151,73,187,254,145,74,187,61,138,75,187,128,128,76,187,194,116,77,187,3,103,78,187,66,87,79,187,123,69,80,187,174,49,81,187,217,27,82,187,249,3,83,187,14,234,83,187,21,206,84,187,14,176,85,187,246,143,86,187,203,109,87,187,141,73,88,187,57,35,89,187,207,250,89,187,76,208,90,187,175,163,91,187,246,116,
92,187,33,68,93,187,45,17,94,187,26,220,94,187,229,164,95,187,142,107,96,187,18,48,97,187,114,242,97,187,170,178,98,187,187,112,99,187,162,44,100,187,95,230,100,187,241,157,101,187,85,83,102,187,139,6,103,187,146,183,103,187,104,102,104,187,12,19,105,187,126,189,105,187],"i8",4,y.a+40960);
Q([187,101,106,187,196,11,107,187,151,175,107,187,50,81,108,187,149,240,108,187,192,141,109,187,176,40,110,187,101,193,110,187,222,87,111,187,26,236,111,187,24,126,112,187,215,13,113,187,87,155,113,187,151,38,114,187,149,175,114,187,81,54,115,187,203,186,115,187,0,61,116,187,242,188,116,187,158,58,117,187,5,182,117,187,38,47,118,187,255,165,118,187,145,26,119,187,218,140,119,187,219,252,119,187,146,106,120,187,0,214,120,187,34,63,121,187,250,165,121,187,134,10,122,187,199,108,122,187,187,204,122,
187,98,42,123,187,188,133,123,187,200,222,123,187,134,53,124,187,246,137,124,187,24,220,124,187,234,43,125,187,110,121,125,187,162,196,125,187,134,13,126,187,26,84,126,187,94,152,126,187,82,218,126,187,246,25,127,187,73,87,127,187,75,146,127,187,253,202,127,187,175,0,128,187,183,26,128,187,150,51,128,187,77,75,128,187,220,97,128,187,66,119,128,187,128,139,128,187,150,158,128,187,131,176,128,187,72,193,128,187,228,208,128,187,89,223,128,187,166,236,128,187,202,248,128,187,199,3,129,187,156,13,129,
187,74,22,129,187,208,29,129,187,47,36,129,187,103,41,129,187,120,45,129,187,98,48,129,187,38,50,129,187,195,50,129,187,58,50,129,187,139,48,129,187,182,45,129,187,188,41,129,187,157,36,129,187,89,30,129,187,240,22,129,187,99,14,129,187,178,4,129,187,220,249,128,187,228,237,128,187,200,224,128,187,137,210,128,187,40,195,128,187,165,178,128,187,0,161,128,187,57,142,128,187,82,122,128,187,74,101,128,187,33,79,128,187,217,55,128,187,113,31,128,187,235,5,128,187,139,214,127,187,5,159,127,187,67,101,127,
187,71,41,127,187,17,235,126,187,163,170,126,187,254,103,126,187,34,35,126,187,17,220,125,187,203,146,125,187,83,71,125,187,168,249,124,187,204,169,124,187,192,87,124,187,133,3,124,187,29,173,123,187,136,84,123,187,200,249,122,187,222,156,122,187,203,61,122,187,144,220,121,187,47,121,121,187,170,19,121,187,0,172,120,187,52,66,120,187,72,214,119,187,59,104,119,187,16,248,118,187,201,133,118,187,102,17,118,187,233,154,117,187,83,34,117,187,167,167,116,187,228,42,116,187,14,172,115,187,37,43,115,187,
43,168,114,187,34,35,114,187,10,156,113,187,231,18,113,187,184,135,112,187,129,250,111,187,66,107,111,187,253,217,110,187,180,70,110,187,105,177,109,187,29,26,109,187,210,128,108,187,138,229,107,187,71,72,107,187,10,169,106,187,212,7,106,187,169,100,105,187,138,191,104,187,120,24,104,187,117,111,103,187,132,196,102,187,166,23,102,187,221,104,101,187,43,184,100,187,146,5,100,187,19,81,99,187,178,154,98,187,112,226,97,187,78,40,97,187,79,108,96,187,117,174,95,187,194,238,94,187,56,45,94,187,217,105,
93,187,167,164,92,187,165,221,91,187,211,20,91,187,54,74,90,187,205,125,89,187,157,175,88,187,167,223,87,187,236,13,87,187,112,58,86,187,53,101,85,187,60,142,84,187,137,181,83,187,28,219,82,187,250,254,81,187,35,33,81,187,154,65,80,187,98,96,79,187,124,125,78,187,236,152,77,187,179,178,76,187,212,202,75,187,81,225,74,187,45,246,73,187,105,9,73,187,10,27,72,187,16,43,71,187,126,57,70,187,87,70,69,187,157,81,68,187,83,91,67,187,123,99,66,187,24,106,65,187,44,111,64,187,186,114,63,187,196,116,62,187,
76,117,61,187,86,116,60,187,228,113,59,187,249,109,58,187,151,104,57,187,192,97,56,187,120,89,55,187,193,79,54,187,157,68,53,187,15,56,52,187,27,42,51,187,194,26,50,187,7,10,49,187,237,247,47,187,119,228,46,187,167,207,45,187,129,185,44,187,6,162,43,187,58,137,42,187,31,111,41,187,184,83,40,187,8,55,39,187,17,25,38,187,215,249,36,187,92,217,35,187,163,183,34,187,175,148,33,187,131,112,32,187,33,75,31,187,140,36,30,187,200,252,28,187,214,211,27,187,187,169,26,187,120,126,25,187,17,82,24,187,137,36,
23,187,226,245,21,187,31,198,20,187,68,149,19,187,82,99,18,187,78,48,17,187,58,252,15,187,25,199,14,187,238,144,13,187,188,89,12,187,134,33,11,187,79,232,9,187,25,174,8,187,233,114,7,187,192,54,6,187,162,249,4,187,146,187,3,187,146,124,2,187,167,60,1,187,164,247,255,186,47,116,253,186,244,238,250,186,248,103,248,186,67,223,245,186,218,84,243,186,195,200,240,186,4,59,238,186,164,171,235,186,169,26,233,186,25,136,230,186,250,243,227,186,81,94,225,186,39,199,222,186,128,46,220,186,98,148,217,186,213,
248,214,186,222,91,212,186,131,189,209,186,203,29,207,186,188,124,204,186,92,218,201,186,178,54,199,186,195,145,196,186,150,235,193,186,49,68,191,186,155,155,188,186,218,241,185,186,243,70,183,186,239,154,180,186,209,237,177,186,162,63,175,186,103,144,172,186,39,224,169,186,232,46,167,186,176,124,164,186,133,201,161,186,111,21,159,186,115,96,156,186,151,170,153,186,226,243,150,186,91,60,148,186,8,132,145,186,238,202,142,186,21,17,140,186,130,86,137,186,61,155,134,186,75,223,131,186,179,34,129,186,
246,202,124,186,83,79,119,186,138,210,113,186,168,84,108,186,185,213,102,186,202,85,97,186,231,212,91,186,30,83,86,186,123,208,80,186,11,77,75,186,219,200,69,186,247,67,64,186,108,190,58,186,71,56,53,186,148,177,47,186,96,42,42,186,185,162,36,186,169,26,31,186,63,146,25,186,135,9,20,186,142,128,14,186,96,247,8,186,10,110,3,186,48,201,251,185,47,182,240,185,41,163,229,185,57,144,218,185,119,125,207,185,252,106,196,185,225,88,185,185,65,71,174,185,51,54,163,185,209,37,152,185,52,22,141,185,117,7,130,
185,92,243,109,185,237,217,87,185,208,194,65,185,56,174,43,185,86,156,21,185,183,26,255,184,246,2,211,184,203,241,166,184,51,207,117,184,137,201,29,184,190,166,139,183,51,148,144,54,196,206,211,55,110,170,65,56,116,173,140,56,4,124,184,56,135,64,228,56,77,253,7,57,238,212,29,57,245,166,51,57,50,115,73,57,116,57,95,57,139,249,116,57,163,89,133,57,59,51,144,57,117,9,155,57,57,220,165,57,110,171,176,57,254,118,187,57,207,62,198,57,203,2,209,57,217,194,219,57,225,126,230,57,205,54,241,57,132,234,251,
57,247,76,3,58,122,162,8,58,192,245,13,58,188,70,19,58,99,149,24,58,170,225,29,58,132,43,35,58,230,114,40,58,197,183,45,58,21,250,50,58,202,57,56,58,218,118,61,58,56,177,66,58,217,232,71,58,178,29,77,58,184,79,82,58,222,126,87,58,27,171,92,58,98,212,97,58,169,250,102,58,229,29,108,58,9,62,113,58,12,91,118,58,226,116,123,58,192,69,128,58,109,207,130,58,116,87,133,58,206,221,135,58,118,98,138,58,103,229,140,58,156,102,143,58,14,230,145,58,185,99,148,58,152,223,150,58,164,89,153,58,218,209,155,58,50,
72,158,58,169,188,160,58,57,47,163,58,220,159,165,58,142,14,168,58,73,123,170,58,9,230,172,58,199,78,175,58,128,181,177,58,46,26,180,58,203,124,182,58,83,221,184,58,193,59,187,58,16,152,189,58,58,242,191,58,60,74,194,58,15,160,196,58,175,243,198,58,24,69,201,58,67,148,203,58,46,225,205,58,210,43,208,58,42,116,210,58,51,186,212,58,232,253,214,58,66,63,217,58,63,126,219,58,218,186,221,58,12,245,223,58,211,44,226,58,42,98,228,58,11,149,230,58,115,197,232,58,92,243,234,58,195,30,237,58,163,71,239,58,
247,109,241,58,187,145,243,58,235,178,245,58,130,209,247,58,125,237,249,58,214,6,252,58,137,29,254,58,201,24,0,59,119,33,1,59,204,40,2,59,197,46,3,59,97,51,4,59,158,54,5,59,121,56,6,59,241,56,7,59,4,56,8,59,175,53,9,59,240,49,10,59,199,44,11,59,48,38,12,59,41,30,13,59,178,20,14,59,199,9,15,59,103,253,15,59,144,239,16,59,65,224,17,59,119,207,18,59,48,189,19,59,107,169,20,59,37,148,21,59,94,125,22,59,19,101,23,59,67,75,24,59,235,47,25,59,10,19,26,59,159,244,26,59,167,212,27,59,33,179,28,59,11,144,29,
59,100,107,30,59,41,69,31,59,90,29,32,59,245,243,32,59,247,200,33,59,96,156,34,59,45,110,35,59,94,62,36,59,241,12,37,59,228,217,37,59,53,165,38,59,228,110,39,59,239,54,40,59,84,253,40,59,17,194,41,59,38,133,42,59,145,70,43,59,81,6,44,59,100,196,44,59,201,128,45,59,126,59,46,59,130,244,46,59,212,171,47,59,115,97,48,59,92,21,49,59,144,199,49,59,13,120,50,59,209,38,51,59,219,211,51,59,42,127,52,59,189,40,53,59,147,208,53,59,170,118,54,59,2,27,55,59,152,189,55,59,109,94,56,59,127,253,56,59,205,154,57,
59,86,54,58,59,25,208,58,59,21,104,59,59,72,254,59,59,179,146,60,59,83,37,61,59,40,182,61,59,49,69,62,59,109,210,62,59,220,93,63,59,123,231,63,59,75,111,64,59,74,245,64,59,121,121,65,59,212,251,65,59,93,124,66,59,19,251,66,59,243,119,67,59,255,242,67,59,52,108,68,59,147,227,68,59,26,89,69,59,201,204,69,59,160,62,70,59,157,174,70,59,191,28,71,59,7,137,71,59,116,243,71,59,5,92,72,59,185,194,72,59,145,39,73,59,138,138,73,59,166,235,73,59,227,74,74,59,65,168,74,59,192,3,75,59,94,93,75,59,28,181,75,59,
249,10,76,59,245,94,76,59,16,177,76,59,72,1,77,59,158,79,77,59,17,156,77,59,162,230,77,59,79,47,78,59,24,118,78,59,254,186,78,59,0,254,78,59,29,63,79,59,86,126,79,59,170,187,79,59,26,247,79,59,164,48,80,59,73,104,80,59,9,158,80,59,227,209,80,59,216,3,81,59,231,51,81,59,17,98,81,59,85,142,81,59,179,184,81,59,44,225,81,59,190,7,82,59,108,44,82,59,51,79,82,59,21,112,82,59,17,143,82,59,40,172,82,59,90,199,82,59,167,224,82,59,14,248,82,59,145,13,83,59,47,33,83,59,232,50,83,59,190,66,83,59,175,80,83,59,
188,92,83,59,230,102,83,59,45,111,83,59,144,117,83,59,17,122,83,59,176,124,83,59,108,125,83,59,71,124,83,59,65,121,83,59,90,116,83,59,146,109,83,59,235,100,83,59,100,90,83,59,253,77,83,59,184,63,83,59,149,47,83,59,149,29,83,59,183,9,83,59,252,243,82,59,102,220,82,59,244,194,82,59,167,167,82,59,128,138,82,59,128,107,82,59,166,74,82,59,244,39,82,59,107,3,82,59,10,221,81,59,211,180,81,59,199,138,81,59,230,94,81,59,48,49,81,59,168,1,81,59,77,208,80,59,32,157,80,59,34,104,80,59,84,49,80,59,183,248,79,
59,75,190,79,59,18,130,79,59,12,68,79,59,59,4,79,59,159,194,78,59,56,127,78,59,9,58,78,59,18,243,77,59,84,170,77,59,208,95,77,59,135,19,77,59,122,197,76,59,170,117,76,59,25,36,76,59,198,208,75,59,180,123,75,59,227,36,75,59,85,204,74,59,10,114,74,59,4,22,74,59,68,184,73,59,204,88,73,59,155,247,72,59,180,148,72,59,24,48,72,59,200,201,71,59,197,97,71,59,16,248,70,59,171,140,70,59,152,31,70,59,214,176,69,59,104,64,69,59,79,206,68,59,141,90,68,59,34,229,67,59,16,110,67,59,89,245,66,59,253,122,66,59,255,
254,65,59,95,129,65,59,31,2,65,59,65,129,64,59,198,254,63,59,176,122,63,59,255,244,62,59,182,109,62,59,214,228,61,59,97,90,61,59,87,206,60,59,187,64,60,59,143,177,59,59,211,32,59,59,138,142,58,59,180,250,57,59,85,101,57,59,108,206,56,59,253,53,56,59,8,156,55,59,143,0,55,59,148,99,54,59,25,197,53,59,31,37,53,59,168,131,52,59,181,224,51,59,74,60,51,59,102,150,50,59,13,239,49,59,63,70,49,59,255,155,48,59,78,240,47,59,47,67,47,59,162,148,46,59,171,228,45,59,74,51,45,59,130,128,44,59,84,204,43,59,194,
22,43,59,207,95,42,59,124,167,41,59,202,237,40,59,189,50,40,59,86,118,39,59,150,184,38,59,128,249,37,59,22,57,37,59,89,119,36,59,77,180,35,59,242,239,34,59,74,42,34,59,89,99,33,59,31,155,32,59,159,209,31,59,218,6,31,59,212,58,30,59,142,109,29,59,9,159,28,59,73,207,27,59,79,254,26,59,29,44,26,59,181,88,25,59,26,132,24,59,78,174,23,59,82,215,22,59,42,255,21,59,214,37,21,59,90,75,20,59,184,111,19,59,241,146,18,59,7,181,17,59,254,213,16,59,215,245,15,59,148,20,15,59,56,50,14,59,197,78,13,59,62,106,12,
59,163,132,11,59,248,157,10,59,63,182,9,59,123,205,8,59,172,227,7,59,215,248,6,59,252,12,6,59,31,32,5,59,66,50,4,59,102,67,3,59,143,83,2,59,190,98,1,59,247,112,0,59,117,252,254,58,23,21,253,58,218,43,251,58,194,64,249,58,211,83,247,58,18,101,245,58,132,116,243,58,46,130,241,58,21,142,239,58,61,152,237,58,171,160,235,58,101,167,233,58,110,172,231,58,204,175,229,58,131,177,227,58,153,177,225,58,18,176,223,58,244,172,221,58,66,168,219,58,3,162,217,58,59,154,215,58,238,144,213,58,35,134,211,58,221,121,
209,58,34,108,207,58,246,92,205,58,96,76,203,58,99,58,201,58,5,39,199,58,74,18,197,58,56,252,194,58,212,228,192,58,35,204,190,58,41,178,188,58,237,150,186,58,114,122,184,58,190,92,182,58,215,61,180,58,192,29,178,58,128,252,175,58,26,218,173,58,150,182,171,58,246,145,169,58,66,108,167,58,125,69,165,58,172,29,163,58,214,244,160,58,255,202,158,58,44,160,156,58,98,116,154,58,167,71,152,58,255,25,150,58,112,235,147,58,255,187,145,58,178,139,143,58,140,90,141,58,148,40,139,58,206,245,136,58,64,194,134,
58,239,141,132,58,224,88,130,58,25,35,128,58,59,217,123,58,232,106,119,58,66,251,114,58,85,138,110,58,42,24,106,58,204,164,101,58,69,48,97,58,160,186,92,58,230,67,88,58,36,204,83,58,97,83,79,58,170,217,74,58,9,95,70,58,135,227,65,58,48,103,61,58,14,234,56,58,43,108,52,58,145,237,47,58,75,110,43,58,100,238,38,58,229,109,34,58,217,236,29,58,75,107,25,58,68,233,20,58,208,102,16,58,249,227,11,58,200,96,7,58,73,221,2,58,10,179,252,57,15,171,243,57,181,162,234,57,15,154,225,57,52,145,216,57,56,136,207,
57,47,127,198,57,46,118,189,57,73,109,180,57,150,100,171,57,40,92,162,57,20,84,153,57,112,76,144,57,78,69,135,57,136,125,124,57,205,113,106,57,148,103,88,57,4,95,70,57,71,88,52,57,134,83,34,57,234,80,16,57,53,161,252,56,129,165,216,56,10,175,180,56,32,190,144,56,41,166,89,56,111,220,17,56,106,63,148,55,210,38,28,53,123,96,138,183,53,194,12,184,171,68,84,184,127,219,141,184,72,140,177,184,97,52,213,184,122,211,248,184,161,52,14,185,183,250,31,185,213,187,49,185,212,119,67,185,142,46,85,185,219,223,
102,185,147,139,120,185,199,24,133,185,212,232,141,185,220,181,150,185,203,127,159,185,143,70,168,185,19,10,177,185,69,202,185,185,17,135,194,185,100,64,203,185,42,246,211,185,81,168,220,185,198,86,229,185,117,1,238,185,75,168,246,185,54,75,255,185,17,245,3,186,126,66,8,186,218,141,12,186,25,215,16,186,52,30,21,186,33,99,25,186,214,165,29,186,75,230,33,186,118,36,38,186,77,96,42,186,200,153,46,186,221,208,50,186,132,5,55,186,179,55,59,186,97,103,63,186,133,148,67,186,22,191,71,186,11,231,75,186,92,
12,80,186,254,46,84,186,234,78,88,186,22,108,92,186,122,134,96,186,12,158,100,186,197,178,104,186,155,196,108,186,133,211,112,186,123,223,116,186,117,232,120,186,105,238,124,186,168,120,128,186,143,120,130,186,232,118,132,186,172,115,134,186,217,110,136,186,106,104,138,186,90,96,140,186,166,86,142,186,73,75,144,186,63,62,146,186,133,47,148,186,22,31,150,186,237,12,152,186,8,249,153,186,97,227,155,186,245,203,157,186,192,178,159,186,190,151,161,186,235,122,163,186,67,92,165,186,193,59,167,186,99,25,
169,186,37,245,170,186,1,207,172,186,246,166,174,186,253,124,176,186,21,81,178,186,57,35,180,186,102,243,181,186,151,193,183,186,201,141,185,186,248,87,187,186,33,32,189,186,64,230,190,186,81,170,192,186,80,108,194,186,59,44,196,186,13,234,197,186,195,165,199,186,89,95,201,186,205,22,203,186,25,204,204,186,60,127,206,186,49,48,208,186,245,222,209,186,133,139,211,186,221,53,213,186,250,221,214,186,216,131,216,186,117,39,218,186,205,200,219,186,221,103,221,186,161,4,223,186,22,159,224,186,58,55,226,
186,8,205,227,186,126,96,229,186,153,241,230,186,85,128,232,186,176,12,234,186,166,150,235,186,53,30,237,186,89,163,238,186,15,38,240,186,85,166,241,186,39,36,243,186,131,159,244,186,102,24,246,186,204,142,247,186,180,2,249,186,26,116,250,186,251,226,251,186,84,79,253,186,36,185,254,186,51,16,0,187,141,194,0,187,158,115,1,187,100,35,2,187,222,209,2,187,12,127,3,187,235,42,4,187,123,213,4,187,185,126,5,187,166,38,6,187,64,205,6,187,133,114,7,187,116,22,8,187,12,185,8,187,77,90,9,187,52,250,9,187,193,
152,10,187,242,53,11,187,198,209,11,187,61,108,12,187,85,5,13,187,13,157,13,187,99,51,14,187,88,200,14,187,234,91,15,187,23,238,15,187,223,126,16,187,65,14,17,187,60,156,17,187,206,40,18,187,248,179,18,187,183,61,19,187,11,198,19,187,243,76,20,187,110,210,20,187,124,86,21,187,26,217,21,187,73,90,22,187,8,218,22,187,85,88,23,187,49,213,23,187,153,80,24,187,142,202,24,187,14,67,25,187,24,186,25,187,173,47,26,187,203,163,26,187,113,22,27,187,158,135,27,187,83,247,27,187,142,101,28,187,79,210,28,187,
149,61,29,187,94,167,29,187,172,15,30,187,124,118,30,187,207,219,30,187,164,63,31,187,249,161,31,187,208,2,32,187,38,98,32,187,252,191,32,187,81,28,33,187,36,119,33,187,117,208,33,187,68,40,34,187,144,126,34,187,88,211,34,187,156,38,35,187,92,120,35,187,151,200,35,187,77,23,36,187,125,100,36,187,39,176,36,187,75,250,36,187,232,66,37,187,255,137,37,187,141,207,37,187,148,19,38,187,20,86,38,187,10,151,38,187,121,214,38,187,94,20,39,187,187,80,39,187,142,139,39,187,216,196,39,187,152,252,39,187,206,
50,40,187,123,103,40,187,157,154,40,187,52,204,40,187,66,252,40,187,196,42,41,187,188,87,41,187,42,131,41,187,12,173,41,187,100,213,41,187,48,252,41,187,114,33,42,187,40,69,42,187,84,103,42,187,244,135,42,187,10,167,42,187,149,196,42,187,148,224,42,187,9,251,42,187,243,19,43,187,83,43,43,187,40,65,43,187,114,85,43,187,50,104,43,187,104,121,43,187,20,137,43,187,54,151,43,187,207,163,43,187,222,174,43,187,99,184,43,187,96,192,43,187,212,198,43,187,192,203,43,187,35,207,43,187,254,208,43,187,81,209,
43,187,29,208,43,187,99,205,43,187,33,201,43,187,89,195,43,187,11,188,43,187,55,179,43,187,222,168,43,187,0,157,43,187,158,143,43,187,184,128,43,187,78,112,43,187,97,94,43,187,241,74,43,187,255,53,43,187,140,31,43,187,151,7,43,187,34,238,42,187,45,211,42,187,183,182,42,187,195,152,42,187,81,121,42,187,97,88,42,187,243,53,42,187,9,18,42,187,162,236,41,187,192,197,41,187,100,157,41,187,141,115,41,187,61,72,41,187,116,27,41,187,51,237,40,187,123,189,40,187,76,140,40,187,168,89,40,187,142,37,40,187,0,
240,39,187,254,184,39,187,137,128,39,187,163,70,39,187,75,11,39,187,131,206,38,187,75,144,38,187,164,80,38,187,144,15,38,187,15,205,37,187,33,137,37,187,201,67,37,187,6,253,36,187,218,180,36,187,69,107,36,187,73,32,36,187,230,211,35,187,30,134,35,187,241,54,35,187,96,230,34,187,109,148,34,187,25,65,34,187,99,236,33,187,78,150,33,187,219,62,33,187,10,230,32,187,221,139,32,187,84,48,32,187,114,211,31,187,54,117,31,187,162,21,31,187,184,180,30,187,119,82,30,187,226,238,29,187,250,137,29,187,192,35,29,
187,52,188,28,187,88,83,28,187,46,233,27,187,183,125,27,187,243,16,27,187,228,162,26,187,139,51,26,187,234,194,25,187,2,81,25,187,211,221,24,187,96,105,24,187,170,243,23,187,177,124,23,187,120,4,23,187,255,138,22,187,73,16,22,187,85,148,21,187,38,23,21,187,189,152,20,187,28,25,20,187,67,152,19,187,52,22,19,187,241,146,18,187,122,14,18,187,211,136,17,187,251,1,17,187,244,121,16,187,192,240,15,187,96,102,15,187,214,218,14,187,34,78,14,187,72,192,13,187,72,49,13,187,35,161,12,187,219,15,12,187,114,125,
11,187,234,233,10,187,67,85,10,187,127,191,9,187,160,40,9,187,168,144,8,187,151,247,7,187,113,93,7,187,53,194,6,187,230,37,6,187,134,136,5,187,22,234,4,187,151,74,4,187,12,170,3,187,117,8,3,187,213,101,2,187,46,194,1,187,128,29,1,187,206,119,0,187,51,162,255,186,200,82,254,186,94,1,253,186,249,173,251,186,156,88,250,186,74,1,249,186,8,168,247,186,216,76,246,186,191,239,244,186,191,144,243,186,220,47,242,186,26,205,240,186,124,104,239,186,5,2,238,186,186,153,236,186,158,47,235,186,180,195,233,186,
1,86,232,186,135,230,230,186,74,117,229,186,79,2,228,186,152,141,226,186,42,23,225,186,7,159,223,186,53,37,222,186,182,169,220,186,142,44,219,186,192,173,217,186,82,45,216,186,70,171,214,186,160,39,213,186,101,162,211,186,151,27,210,186,58,147,208,186,83,9,207,186,229,125,205,186,245,240,203,186,133,98,202,186,154,210,200,186,55,65,199,186,97,174,197,186,28,26,196,186,107,132,194,186,82,237,192,186,213,84,191,186,248,186,189,186,191,31,188,186,46,131,186,186,73,229,184,186,20,70,183,186,147,165,181,
186,201,3,180,186,187,96,178,186,109,188,176,186,227,22,175,186,32,112,173,186,42,200,171,186,3,31,170,186,176,116,168,186,53,201,166,186,149,28,165,186,214,110,163,186,251,191,161,186,8,16,160,186,1,95,158,186,235,172,156,186,201,249,154,186,159,69,153,186,114,144,151,186,69,218,149,186,30,35,148,186,255,106,146,186,237,177,144,186,237,247,142,186,1,61,141,186,47,129,139,186,123,196,137,186,232,6,136,186,124,72,134,186,57,137,132,186,36,201,130,186,66,8,129,186,44,141,126,186,73,8,123,186,228,129,
119,186,5,250,115,186,181,112,112,186,251,229,108,186,225,89,105,186,110,204,101,186,170,61,98,186,159,173,94,186,85,28,91,186,212,137,87,186,36,246,83,186,78,97,80,186,90,203,76,186,81,52,73,186,59,156,69,186,32,3,66,186,10,105,62,186,255,205,58,186,10,50,55,186,49,149,51,186,127,247,47,186,250,88,44,186,172,185,40,186,156,25,37,186,212,120,33,186,92,215,29,186,60,53,26,186,124,146,22,186,38,239,18,186,65,75,15,186,214,166,11,186,237,1,8,186,142,92,4,186,195,182,0,186,40,33,250,185,16,212,242,185,
82,134,235,185,252,55,228,185,33,233,220,185,210,153,213,185,29,74,206,185,22,250,198,185,204,169,191,185,80,89,184,185,178,8,177,185,5,184,169,185,87,103,162,185,186,22,155,185,63,198,147,185,246,117,140,185,240,37,133,185,124,172,123,185,224,13,109,185,45,112,94,185,132,211,79,185,8,56,65,185,216,157,50,185,23,5,36,185,228,109,21,185,97,216,6,185,93,137,240,184,221,101,211,184,129,70,182,184,140,43,153,184,127,42,120,184,185,7,62,184,73,239,3,184,98,195,147,183,63,247,125,182,179,91,40,55,222,1,
200,55,18,222,29,56,211,173,87,56,217,183,136,56,150,145,165,56,226,99,194,56,123,46,223,56,34,241,251,56,203,85,12,57,204,174,26,57,117,3,41,57,164,83,55,57,59,159,69,57,26,230,83,57,33,40,98,57,48,101,112,57,41,157,126,57,246,103,134,57,172,126,141,57,169,146,148,57,219,163,155,57,52,178,162,57,164,189,169,57,27,198,176,57,138,203,183,57,226,205,190,57,20,205,197,57,15,201,204,57,197,193,211,57,39,183,218,57,37,169,225,57,176,151,232,57,185,130,239,57,49,106,246,57,10,78,253,57,26,23,2,58,79,133,
5,58,159,241,8,58,0,92,12,58,108,196,15,58,220,42,19,58,72,143,22,58,169,241,25,58,247,81,29,58,43,176,32,58,62,12,36,58,41,102,39,58,228,189,42,58,105,19,46,58,176,102,49,58,178,183,52,58,104,6,56,58,203,82,59,58,212,156,62,58,123,228,65,58,187,41,69,58,139,108,72,58,229,172,75,58,194,234,78,58,28,38,82,58,235,94,85,58,40,149,88,58,205,200,91,58,210,249,94,58,50,40,98,58,230,83,101,58,230,124,104,58,45,163,107,58,178,198,110,58,113,231,113,58,98,5,117,58,127,32,120,58,194,56,123,58,35,78,126,58,
78,176,128,58,20,56,130,58,96,190,131,58,46,67,133,58,124,198,134,58,70,72,136,58,138,200,137,58,67,71,139,58,112,196,140,58,12,64,142,58,22,186,143,58,137,50,145,58,99,169,146,58,161,30,148,58,63,146,149,58,60,4,151,58,148,116,152,58,67,227,153,58,71,80,155,58,158,187,156,58,68,37,158,58,54,141,159,58,114,243,160,58,244,87,162,58,186,186,163,58,193,27,165,58,7,123,166,58,136,216,167,58,66,52,169,58,49,142,170,58,85,230,171,58,168,60,173,58,42,145,174,58,215,227,175,58,172,52,177,58,168,131,178,58,
199,208,179,58,7,28,181,58,101,101,182,58,223,172,183,58,114,242,184,58,28,54,186,58,218,119,187,58,170,183,188,58,137,245,189,58,117,49,191,58,108,107,192,58,107,163,193,58,111,217,194,58,119,13,196,58,127,63,197,58,135,111,198,58,138,157,199,58,136,201,200,58,126,243,201,58,106,27,203,58,73,65,204,58,25,101,205,58,216,134,206,58,133,166,207,58,28,196,208,58,156,223,209,58,2,249,210,58,77,16,212,58,122,37,213,58,136,56,214,58,117,73,215,58,61,88,216,58,225,100,217,58,93,111,218,58,175,119,219,58,
214,125,220,58,208,129,221,58,155,131,222,58,53,131,223,58,157,128,224,58,208,123,225,58,204,116,226,58,145,107,227,58,28,96,228,58,107,82,229,58,125,66,230,58,81,48,231,58,227,27,232,58,52,5,233,58,65,236,233,58,9,209,234,58,138,179,235,58,194,147,236,58,176,113,237,58,83,77,238,58,170,38,239,58,177,253,239,58,105,210,240,58,208,164,241,58,228,116,242,58,164,66,243,58,14,14,244,58,34,215,244,58,223,157,245,58,65,98,246,58,74,36,247,58,246,227,247,58,70,161,248,58,55,92,249,58,202,20,250,58,251,202,
250,58,203,126,251,58,57,48,252,58,66,223,252,58,231,139,253,58,38,54,254,58,254,221,254,58,110,131,255,58,59,19,0,59,138,99,0,59,163,178,0,59,135,0,1,59,52,77,1,59,170,152,1,59,234,226,1,59,242,43,2,59,194,115,2,59,90,186,2,59,185,255,2,59,223,67,3,59,204,134,3,59,127,200,3,59,248,8,4,59,54,72,4,59,58,134,4,59,3,195,4,59,145,254,4,59,227,56,5,59,250,113,5,59,212,169,5,59,114,224,5,59,212,21,6,59,249,73,6,59,225,124,6,59,139,174,6,59,249,222,6,59,41,14,7,59,27,60,7,59,208,104,7,59,71,148,7,59,128,
190,7,59,122,231,7,59,54,15,8,59,180,53,8,59,244,90,8,59,245,126,8,59,183,161,8,59,59,195,8,59,128,227,8,59,135,2,9,59,79,32,9,59,216,60,9,59,34,88,9,59,46,114,9,59,251,138,9,59,137,162,9,59,217,184,9,59,235,205,9,59,190,225,9,59,82,244,9,59,169,5,10,59,193,21,10,59,156,36,10,59,56,50,10,59,151,62,10,59,184,73,10,59,156,83,10,59,66,92,10,59,172,99,10,59,216,105,10,59,200,110,10,59,123,114,10,59,242,116,10,59,46,118,10,59,45,118,10,59,241,116,10,59,122,114,10,59,200,110,10,59,219,105,10,59,180,99,
10,59,83,92,10,59,184,83,10,59,228,73,10,59,214,62,10,59,145,50,10,59,18,37,10,59,92,22,10,59,111,6,10,59,74,245,9,59,239,226,9,59,93,207,9,59,149,186,9,59,152,164,9,59,102,141,9,59,0,117,9,59,101,91,9,59,151,64,9,59,150,36,9,59,98,7,9,59,253,232,8,59,101,201,8,59,157,168,8,59,164,134,8,59,124,99,8,59,36,63,8,59,157,25,8,59,232,242,7,59,6,203,7,59,246,161,7,59,186,119,7,59,83,76,7,59,192,31,7,59,3,242,6,59,28,195,6,59,12,147,6,59,211,97,6,59,115,47,6,59,236,251,5,59,62,199,5,59,107,145,5,59,114,90,
5,59,86,34,5,59,21,233,4,59,179,174,4,59,46,115,4,59,136,54,4,59,193,248,3,59,219,185,3,59,215,121,3,59,180,56,3,59,116,246,2,59,23,179,2,59,159,110,2,59,12,41,2,59,96,226,1,59,154,154,1,59,189,81,1,59,200,7,1,59,189,188,0,59,156,112,0,59,103,35,0,59,61,170,255,58,134,11,255,58,171,106,254,58,175,199,253,58,148,34,253,58,90,123,252,58,5,210,251,58,150,38,251,58,14,121,250,58,113,201,249,58,192,23,249,58,253,99,248,58,43,174,247,58,74,246,246,58,94,60,246,58,104,128,245,58,107,194,244,58,104,2,244,
58,98,64,243,58,91,124,242,58,85,182,241,58,82,238,240,58,84,36,240,58,95,88,239,58,115,138,238,58,147,186,237,58,194,232,236,58,2,21,236,58,85,63,235,58,189,103,234,58,60,142,233,58,214,178,232,58,140,213,231,58,97,246,230,58,87,21,230,58,112,50,229,58,175,77,228,58,23,103,227,58,170,126,226,58,106,148,225,58,89,168,224,58,123,186,223,58,210,202,222,58,96,217,221,58,40,230,220,58,44,241,219,58,111,250,218,58,244,1,218,58,189,7,217,58,204,11,216,58,37,14,215,58,201,14,214,58,188,13,213,58,1,11,212,
58,153,6,211,58,136,0,210,58,208,248,208,58,116,239,207,58,118,228,206,58,218,215,205,58,163,201,204,58,210,185,203,58,106,168,202,58,111,149,201,58,228,128,200,58,202,106,199,58,37,83,198,58,248,57,197,58,69,31,196,58,16,3,195,58,91,229,193,58,40,198,192,58,124,165,191,58,89,131,190,58,193,95,189,58,184,58,188,58,64,20,187,58,93,236,185,58,17,195,184,58,96,152,183,58,75,108,182,58,216,62,181,58,7,16,180,58,221,223,178,58,92,174,177,58,135,123,176,58,98,71,175,58,238,17,174,58,49,219,172,58,43,163,
171,58,225,105,170,58,86,47,169,58,140,243,167,58,135,182,166,58,73,120,165,58,215,56,164,58,50,248,162,58,95,182,161,58,96,115,160,58,56,47,159,58,234,233,157,58,122,163,156,58,235,91,155,58,64,19,154,58,124,201,152,58,162,126,151,58,182,50,150,58,186,229,148,58,178,151,147,58,162,72,146,58,139,248,144,58,114,167,143,58,89,85,142,58,69,2,141,58,56,174,139,58,53,89,138,58,63,3,137,58,91,172,135,58,139,84,134,58,210,251,132,58,52,162,131,58,179,71,130,58,84,236,128,58,51,32,127,58,14,102,124,58,63,
170,121,58,204,236,118,58,189,45,116,58,24,109,113,58,227,170,110,58,38,231,107,58,231,33,105,58,44,91,102,58,252,146,99,58,95,201,96,58,90,254,93,58,244,49,91,58,51,100,88,58,32,149,85,58,192,196,82,58,25,243,79,58,52,32,77,58,22,76,74,58,197,118,71,58,74,160,68,58,171,200,65,58,237,239,62,58,25,22,60,58,52,59,57,58,70,95,54,58,86,130,51,58,105,164,48,58,135,197,45,58,183,229,42,58,255,4,40,58,102,35,37,58,242,64,34,58,172,93,31,58,153,121,28,58,192,148,25,58,40,175,22,58,215,200,19,58,213,225,16,
58,40,250,13,58,216,17,11,58,234,40,8,58,102,63,5,58,82,85,2,58,105,213,254,57,43,255,248,57,247,39,243,57,217,79,237,57,224,118,231,57,24,157,225,57,144,194,219,57,85,231,213,57,117,11,208,57,252,46,202,57,249,81,196,57,121,116,190,57,138,150,184,57,57,184,178,57,147,217,172,57,166,250,166,57,128,27,161,57,45,60,155,57,188,92,149,57,58,125,143,57,179,157,137,57,55,190,131,57,162,189,123,57,32,255,111,57,1,65,100,57,96,131,88,57,89,198,76,57,5,10,65,57,127,78,53,57,226,147,41,57,72,218,29,57,205,
33,18,57,138,106,6,57,53,105,245,56,48,0,222,56,59,154,198,56,139,55,175,56,84,216,151,56,203,124,128,56,73,74,82,56,41,163,35,56,63,9,234,55,43,222,140,55,152,23,191,54,255,250,180,182,246,46,138,183,236,9,231,183,106,231,33,184,111,62,80,184,157,137,126,184,71,100,150,184,109,125,173,184,14,144,196,184,246,155,219,184,242,160,242,184,103,207,4,185,172,74,16,185,47,194,27,185,214,53,39,185,136,165,50,185,44,17,62,185,167,120,73,185,226,219,84,185,196,58,96,185,50,149,107,185,21,235,118,185,41,30,
129,185,105,196,134,185,62,104,140,185,156,9,146,185,117,168,151,185,191,68,157,185,108,222,162,185,112,117,168,185,192,9,174,185,79,155,179,185,16,42,185,185,249,181,190,185,252,62,196,185,14,197,201,185,34,72,207,185,46,200,212,185,36,69,218,185,250,190,223,185,163,53,229,185,19,169,234,185,63,25,240,185,27,134,245,185,155,239,250,185,218,42,0,186,45,220,2,186,193,139,5,186,144,57,8,186,148,229,10,186,200,143,13,186,37,56,16,186,167,222,18,186,71,131,21,186,0,38,24,186,205,198,26,186,167,101,29,
186,138,2,32,186,111,157,34,186,81,54,37,186,43,205,39,186,247,97,42,186,176,244,44,186,79,133,47,186,209,19,50,186,48,160,52,186,101,42,55,186,108,178,57,186,64,56,60,186,219,187,62,186,55,61,65,186,81,188,67,186,34,57,70,186,165,179,72,186,214,43,75,186,174,161,77,186,42,21,80,186,67,134,82,186,245,244,84,186,59,97,87,186,15,203,89,186,109,50,92,186,80,151,94,186,179,249,96,186,144,89,99,186,228,182,101,186,169,17,104,186,219,105,106,186,116,191,108,186,111,18,111,186,201,98,113,186,125,176,115,
186,133,251,117,186,221,67,120,186,128,137,122,186,106,204,124,186,151,12,127,186,0,165,128,186,82,194,129,186,62,222,130,186,194,248,131,186,220,17,133,186,138,41,134,186,201,63,135,186,152,84,136,186,243,103,137,186,218,121,138,186,74,138,139,186,64,153,140,186,187,166,141,186,185,178,142,186,55,189,143,186,52,198,144,186,174,205,145,186,161,211,146,186,13,216,147,186,240,218,148,186,71,220,149,186,17,220,150,186,75,218,151,186,244,214,152,186,9,210,153,186,138,203,154,186,115,195,155,186,195,185,
156,186,121,174,157,186,146,161,158,186,12,147,159,186,231,130,160,186,31,113,161,186,179,93,162,186,162,72,163,186,234,49,164,186,137,25,165,186,125,255,165,186,196,227,166,186,94,198,167,186,72,167,168,186,128,134,169,186,6,100,170,186,215,63,171,186,241,25,172,186,84,242,172,186,254,200,173,186,237,157,174,186,31,113,175,186,148,66,176,186,73,18,177,186,61,224,177,186,111,172,178,186,221,118,179,186,135,63,180,186,105,6,181,186,132,203,181,186,213,142,182,186,92,80,183,186,22,16,184,186,4,206,
184,186,34,138,185,186,113,68,186,186,238,252,186,186,154,179,187,186,113,104,188,186,116,27,189,186,160,204,189,186,245,123,190,186,114,41,191,186,21,213,191,186,222,126,192,186,203,38,193,186,219,204,193,186,12,113,194,186,95,19,195,186,210,179,195,186,100,82,196,186,19,239,196,186,224,137,197,186,200,34,198,186,204,185,198,186,233,78,199,186,32,226,199,186,111,115,200,186,213,2,201,186,82,144,201,186,228,27,202,186,139,165,202,186,70,45,203,186,21,179,203,186,246,54,204,186,232,184,204,186,236,
56,205,186,0,183,205,186,35,51,206,186,85,173,206,186,150,37,207,186,228,155,207,186,63,16,208,186,166,130,208,186,25,243,208,186,151,97,209,186,31,206,209,186,178,56,210,186,78,161,210,186,243,7,211,186,161,108,211,186,86,207,211,186,19,48,212,186,216,142,212,186,163,235,212,186,117,70,213,186,76,159,213,186,41,246,213,186,12,75,214,186,243,157,214,186,223,238,214,186,207,61,215,186,196,138,215,186,188,213,215,186,184,30,216,186,183,101,216,186,185,170,216,186,191,237,216,186,199,46,217,186,210,
109,217,186,224,170,217,186,240,229,217,186,2,31,218,186,23,86,218,186,45,139,218,186,71,190,218,186,98,239,218,186,127,30,219,186,159,75,219,186,193,118,219,186,229,159,219,186,11,199,219,186,52,236,219,186,96,15,220,186,142,48,220,186,191,79,220,186,242,108,220,186,41,136,220,186,100,161,220,186,162,184,220,186,227,205,220,186,41,225,220,186,115,242,220,186,193,1,221,186,21,15,221,186,109,26,221,186,203,35,221,186,47,43,221,186,153,48,221,186,10,52,221,186,129,53,221,186,0,53,221,186,135,50,221,
186,23,46,221,186,175,39,221,186,80,31,221,186,251,20,221,186,177,8,221,186,113,250,220,186,61,234,220,186,20,216,220,186,248,195,220,186,234,173,220,186,233,149,220,186,247,123,220,186,19,96,220,186,64,66,220,186,125,34,220,186,203,0,220,186,43,221,219,186,158,183,219,186,36,144,219,186,190,102,219,186,109,59,219,186,50,14,219,186,14,223,218,186,1,174,218,186,12,123,218,186,49,70,218,186,111,15,218,186,201,214,217,186,62,156,217,186,208,95,217,186,128,33,217,186,79,225,216,186,62,159,216,186,77,
91,216,186,126,21,216,186,210,205,215,186,73,132,215,186,230,56,215,186,168,235,214,186,146,156,214,186,164,75,214,186,223,248,213,186,69,164,213,186,214,77,213,186,148,245,212,186,128,155,212,186,155,63,212,186,231,225,211,186,100,130,211,186,20,33,211,186,248,189,210,186,18,89,210,186,99,242,209,186,235,137,209,186,173,31,209,186,170,179,208,186,227,69,208,186,89,214,207,186,14,101,207,186,3,242,206,186,57,125,206,186,179,6,206,186,114,142,205,186,118,20,205,186,194,152,204,186,86,27,204,186,53,
156,203,186,96,27,203,186,216,152,202,186,160,20,202,186,184,142,201,186,33,7,201,186,223,125,200,186,242,242,199,186,92,102,199,186,30,216,198,186,58,72,198,186,178,182,197,186,136,35,197,186,189,142,196,186,82,248,195,186,74,96,195,186,166,198,194,186,104,43,194,186,146,142,193,186,37,240,192,186,36,80,192,186,143,174,191,186,105,11,191,186,180,102,190,186,113,192,189,186,162,24,189,186,74,111,188,186,105,196,187,186,2,24,187,186,22,106,186,186,168,186,185,186,186,9,185,186,77,87,184,186,99,163,
183,186,254,237,182,186,33,55,182,186,204,126,181,186,3,197,180,186,198,9,180,186,25,77,179,186,253,142,178,186,115,207,177,186,127,14,177,186,34,76,176,186,94,136,175,186,53,195,174,186,170,252,173,186,189,52,173,186,115,107,172,186,204,160,171,186,202,212,170,186,112,7,170,186,192,56,169,186,189,104,168,186,103,151,167,186,194,196,166,186,207,240,165,186,145,27,165,186,10,69,164,186,59,109,163,186,41,148,162,186,211,185,161,186,62,222,160,186,106,1,160,186,91,35,159,186,18,68,158,186,146,99,157,
186,221,129,156,186,245,158,155,186,221,186,154,186,150,213,153,186,36,239,152,186,137,7,152,186,198,30,151,186,222,52,150,186,212,73,149,186,170,93,148,186,98,112,147,186,254,129,146,186,130,146,145,186,238,161,144,186,71,176,143,186,141,189,142,186,197,201,141,186,239,212,140,186,14,223,139,186,37,232,138,186,55,240,137,186,69,247,136,186,82,253,135,186,97,2,135,186,115,6,134,186,140,9,133,186,174,11,132,186,220,12,131,186,23,13,130,186,99,12,129,186,194,10,128,186,108,16,126,186,132,9,124,186,
209,0,122,186,88,246,119,186,30,234,117,186,40,220,115,186,123,204,113,186,28,187,111,186,17,168,109,186,93,147,107,186,8,125,105,186,21,101,103,186,138,75,101,186,108,48,99,186,192,19,97,186,139,245,94,186,211,213,92,186,156,180,90,186,237,145,88,186,201,109,86,186,55,72,84,186,59,33,82,186,219,248,79,186,28,207,77,186,3,164,75,186,149,119,73,186,216,73,71,186,210,26,69,186,134,234,66,186,251,184,64,186,54,134,62,186,60,82,60,186,19,29,58,186,191,230,55,186,71,175,53,186,174,118,51,186,252,60,49,
186,52,2,47,186,93,198,44,186,124,137,42,186,150,75,40,186,176,12,38,186,207,204,35,186,250,139,33,186,54,74,31,186,135,7,29,186,243,195,26,186,129,127,24,186,52,58,22,186,18,244,19,186,33,173,17,186,102,101,15,186,231,28,13,186,168,211,10,186,176,137,8,186,3,63,6,186,168,243,3,186,163,167,1,186,243,181,254,185,99,27,250,185,160,127,245,185,181,226,240,185,173,68,236,185,147,165,231,185,113,5,227,185,82,100,222,185,65,194,217,185,73,31,213,185,117,123,208,185,207,214,203,185,99,49,199,185,58,139,
194,185,96,228,189,185,224,60,185,185,196,148,180,185,23,236,175,185,228,66,171,185,54,153,166,185,23,239,161,185,146,68,157,185,178,153,152,185,130,238,147,185,12,67,143,185,91,151,138,185,122,235,133,185,116,63,129,185,166,38,121,185,68,206,111,185,215,117,102,185,116,29,93,185,50,197,83,185,37,109,74,185,98,21,65,185,0,190,55,185,19,103,46,185,176,16,37,185,236,186,27,185,222,101,18,185,153,17,9,185,102,124,255,184,132,215,236,184,179,52,218,184,32,148,199,184,243,245,180,184,87,90,162,184,117,
193,143,184,240,86,122,184,19,49,85,184,166,17,48,184,252,248,10,184,211,206,203,183,129,186,129,183,162,214,222,182,130,248,17,54,9,70,56,55,143,245,165,55,11,182,239,55,234,177,28,56,35,127,65,56,94,66,102,56,165,125,133,56,203,212,151,56,120,38,170,56,131,114,188,56,195,184,206,56,17,249,224,56,68,51,243,56,154,179,2,57,92,202,11,57,212,221,20,57,239,237,29,57,151,250,38,57,186,3,48,57,68,9,57,57,32,11,66,57,59,9,75,57,129,3,84,57,223,249,92,57,65,236,101,57,147,218,110,57,194,196,119,57,93,85,
128,57,53,198,132,57,222,52,137,57,78,161,141,57,125,11,146,57,96,115,150,57,239,216,154,57,30,60,159,57,230,156,163,57,61,251,167,57,24,87,172,57,111,176,176,57,57,7,181,57,107,91,185,57,254,172,189,57,230,251,193,57,28,72,198,57,150,145,202,57,74,216,206,57,49,28,211,57,63,93,215,57,110,155,219,57,178,214,223,57,4,15,228,57,91,68,232,57,172,118,236,57,241,165,240,57,31,210,244,57,46,251,248,57,21,33,253,57,229,161,0,58,164,177,2,58,193,191,4,58,57,204,6,58,7,215,8,58,40,224,10,58,149,231,12,58,
77,237,14,58,73,241,16,58,135,243,18,58,2,244,20,58,181,242,22,58,156,239,24,58,180,234,26,58],"i8",4,y.a+51200);
Q([248,227,28,58,101,219,30,58,245,208,32,58,165,196,34,58,114,182,36,58,86,166,38,58,78,148,40,58,87,128,42,58,107,106,44,58,135,82,46,58,168,56,48,58,200,28,50,58,230,254,51,58,252,222,53,58,6,189,55,58,2,153,57,58,234,114,59,58,188,74,61,58,116,32,63,58,13,244,64,58,133,197,66,58,216,148,68,58,1,98,70,58,254,44,72,58,202,245,73,58,98,188,75,58,195,128,77,58,233,66,79,58,209,2,81,58,118,192,82,58,214,123,84,58,237,52,86,58,184,235,87,58,51,160,89,58,91,82,91,58,44,2,93,58,164,175,94,58,190,90,96,
58,120,3,98,58,207,169,99,58,191,77,101,58,69,239,102,58,93,142,104,58,5,43,106,58,58,197,107,58,248,92,109,58,60,242,110,58,4,133,112,58,75,21,114,58,16,163,115,58,79,46,117,58,6,183,118,58,49,61,120,58,205,192,121,58,216,65,123,58,78,192,124,58,45,60,126,58,115,181,127,58,14,150,128,58,18,80,129,58,198,8,130,58,39,192,130,58,52,118,131,58,236,42,132,58,78,222,132,58,88,144,133,58,9,65,134,58,96,240,134,58,91,158,135,58,249,74,136,58,58,246,136,58,27,160,137,58,156,72,138,58,187,239,138,58,119,149,
139,58,207,57,140,58,194,220,140,58,79,126,141,58,117,30,142,58,50,189,142,58,134,90,143,58,110,246,143,58,235,144,144,58,252,41,145,58,158,193,145,58,210,87,146,58,149,236,146,58,232,127,147,58,201,17,148,58,55,162,148,58,49,49,149,58,183,190,149,58,198,74,150,58,96,213,150,58,129,94,151,58,43,230,151,58,91,108,152,58,16,241,152,58,75,116,153,58,10,246,153,58,76,118,154,58,17,245,154,58,88,114,155,58,32,238,155,58,103,104,156,58,47,225,156,58,117,88,157,58,57,206,157,58,122,66,158,58,56,181,158,
58,114,38,159,58,39,150,159,58,86,4,160,58,0,113,160,58,35,220,160,58,191,69,161,58,210,173,161,58,94,20,162,58,96,121,162,58,217,220,162,58,200,62,163,58,44,159,163,58,5,254,163,58,82,91,164,58,19,183,164,58,72,17,165,58,239,105,165,58,9,193,165,58,150,22,166,58,148,106,166,58,3,189,166,58,227,13,167,58,52,93,167,58,244,170,167,58,37,247,167,58,198,65,168,58,213,138,168,58,84,210,168,58,65,24,169,58,156,92,169,58,102,159,169,58,157,224,169,58,67,32,170,58,85,94,170,58,213,154,170,58,194,213,170,
58,28,15,171,58,227,70,171,58,22,125,171,58,182,177,171,58,194,228,171,58,59,22,172,58,32,70,172,58,113,116,172,58,46,161,172,58,87,204,172,58,236,245,172,58,237,29,173,58,90,68,173,58,52,105,173,58,121,140,173,58,42,174,173,58,72,206,173,58,210,236,173,58,200,9,174,58,43,37,174,58,250,62,174,58,54,87,174,58,222,109,174,58,244,130,174,58,119,150,174,58,103,168,174,58,197,184,174,58,144,199,174,58,202,212,174,58,114,224,174,58,136,234,174,58,13,243,174,58,1,250,174,58,100,255,174,58,55,3,175,58,122,
5,175,58,46,6,175,58,82,5,175,58,231,2,175,58,237,254,174,58,101,249,174,58,79,242,174,58,172,233,174,58,124,223,174,58,192,211,174,58,119,198,174,58,163,183,174,58,68,167,174,58,90,149,174,58,230,129,174,58,233,108,174,58,98,86,174,58,83,62,174,58,189,36,174,58,158,9,174,58,250,236,173,58,207,206,173,58,30,175,173,58,233,141,173,58,47,107,173,58,242,70,173,58,50,33,173,58,240,249,172,58,45,209,172,58,232,166,172,58,35,123,172,58,224,77,172,58,29,31,172,58,221,238,171,58,31,189,171,58,230,137,171,
58,49,85,171,58,1,31,171,58,87,231,170,58,52,174,170,58,154,115,170,58,135,55,170,58,255,249,169,58,1,187,169,58,142,122,169,58,168,56,169,58,78,245,168,58,131,176,168,58,71,106,168,58,155,34,168,58,128,217,167,58,247,142,167,58,1,67,167,58,159,245,166,58,209,166,166,58,154,86,166,58,250,4,166,58,242,177,165,58,132,93,165,58,175,7,165,58,118,176,164,58,217,87,164,58,218,253,163,58,122,162,163,58,185,69,163,58,153,231,162,58,28,136,162,58,65,39,162,58,12,197,161,58,123,97,161,58,146,252,160,58,81,
150,160,58,185,46,160,58,203,197,159,58,138,91,159,58,245,239,158,58,15,131,158,58,216,20,158,58,82,165,157,58,126,52,157,58,93,194,156,58,242,78,156,58,60,218,155,58,62,100,155,58,249,236,154,58,109,116,154,58,158,250,153,58,139,127,153,58,54,3,153,58,161,133,152,58,206,6,152,58,188,134,151,58,111,5,151,58,231,130,150,58,38,255,149,58,45,122,149,58,254,243,148,58,154,108,148,58,3,228,147,58,58,90,147,58,65,207,146,58,25,67,146,58,196,181,145,58,67,39,145,58,152,151,144,58,196,6,144,58,201,116,143,
58,169,225,142,58,101,77,142,58,254,183,141,58,119,33,141,58,209,137,140,58,13,241,139,58,46,87,139,58,52,188,138,58,33,32,138,58,248,130,137,58,185,228,136,58,102,69,136,58,2,165,135,58,141,3,135,58,10,97,134,58,121,189,133,58,222,24,133,58,57,115,132,58,140,204,131,58,217,36,131,58,34,124,130,58,105,210,129,58,174,39,129,58,244,123,128,58,123,158,127,58,22,67,126,58,189,229,124,58,117,134,123,58,64,37,122,58,35,194,120,58,32,93,119,58,60,246,117,58,122,141,116,58,221,34,115,58,106,182,113,58,36,
72,112,58,15,216,110,58,47,102,109,58,135,242,107,58,26,125,106,58,238,5,105,58,4,141,103,58,98,18,102,58,12,150,100,58,3,24,99,58,78,152,97,58,239,22,96,58,234,147,94,58,67,15,93,58,254,136,91,58,31,1,90,58,170,119,88,58,162,236,86,58,11,96,85,58,234,209,83,58,66,66,82,58,23,177,80,58,110,30,79,58,73,138,77,58,174,244,75,58,159,93,74,58,33,197,72,58,57,43,71,58,233,143,69,58,54,243,67,58,36,85,66,58,182,181,64,58,242,20,63,58,219,114,61,58,117,207,59,58,196,42,58,58,204,132,56,58,145,221,54,58,23,
53,53,58,99,139,51,58,120,224,49,58,91,52,48,58,15,135,46,58,153,216,44,58,253,40,43,58,63,120,41,58,99,198,39,58,109,19,38,58,98,95,36,58,69,170,34,58,26,244,32,58,231,60,31,58,174,132,29,58,117,203,27,58,63,17,26,58,17,86,24,58,238,153,22,58,219,220,20,58,220,30,19,58,245,95,17,58,43,160,15,58,130,223,13,58,253,29,12,58,162,91,10,58,116,152,8,58,119,212,6,58,176,15,5,58,35,74,3,58,213,131,1,58,145,121,255,57,6,234,251,57,16,89,248,57,186,198,244,57,9,51,241,57,9,158,237,57,192,7,234,57,55,112,230,
57,119,215,226,57,136,61,223,57,116,162,219,57,65,6,216,57,250,104,212,57,165,202,208,57,77,43,205,57,249,138,201,57,178,233,197,57,128,71,194,57,109,164,190,57,128,0,187,57,193,91,183,57,59,182,179,57,244,15,176,57,246,104,172,57,73,193,168,57,245,24,165,57,4,112,161,57,125,198,157,57,106,28,154,57,210,113,150,57,190,198,146,57,54,27,143,57,68,111,139,57,240,194,135,57,65,22,132,57,65,105,128,57,241,119,121,57,223,28,114,57,92,193,106,57,123,101,99,57,75,9,92,57,222,172,84,57,69,80,77,57,144,243,
69,57,208,150,62,57,23,58,55,57,116,221,47,57,250,128,40,57,184,36,33,57,192,200,25,57,33,109,18,57,238,17,11,57,54,183,3,57,21,186,248,56,247,6,234,56,54,85,219,56,240,164,204,56,73,246,189,56,97,73,175,56,88,158,160,56,82,245,145,56,109,78,131,56,151,83,105,56,29,15,76,56,173,207,46,56,137,149,17,56,230,193,232,55,87,100,174,55,212,37,104,55,126,56,231,54,201,10,83,179,10,78,234,182,173,94,105,183,127,188,174,183,124,186,232,183,102,84,17,184,118,67,46,184,48,42,75,184,82,8,104,184,206,110,130,
184,232,212,144,184,86,54,159,184,249,146,173,184,177,234,187,184,94,61,202,184,226,138,216,184,27,211,230,184,236,21,245,184,154,169,1,185,106,197,8,185,87,222,15,185,80,244,22,185,72,7,30,185,45,23,37,185,241,35,44,185,132,45,51,185,215,51,58,185,219,54,65,185,128,54,72,185,183,50,79,185,113,43,86,185,159,32,93,185,49,18,100,185,26,0,107,185,73,234,113,185,176,208,120,185,64,179,127,185,245,72,131,185,79,182,134,185,168,33,138,185,248,138,141,185,56,242,144,185,95,87,148,185,104,186,151,185,75,
27,155,185,0,122,158,185,128,214,161,185,197,48,165,185,199,136,168,185,127,222,171,185,229,49,175,185,244,130,178,185,163,209,181,185,236,29,185,185,200,103,188,185,47,175,191,185,28,244,194,185,135,54,198,185,104,118,201,185,187,179,204,185,118,238,207,185,149,38,211,185,15,92,214,185,223,142,217,185,253,190,220,185,100,236,223,185,11,23,227,185,238,62,230,185,4,100,233,185,72,134,236,185,180,165,239,185,64,194,242,185,230,219,245,185,160,242,248,185,104,6,252,185,54,23,255,185,131,18,1,186,232,
151,2,186,199,27,4,186,29,158,5,186,231,30,7,186,34,158,8,186,203,27,10,186,223,151,11,186,90,18,13,186,58,139,14,186,124,2,16,186,29,120,17,186,25,236,18,186,110,94,20,186,26,207,21,186,24,62,23,186,103,171,24,186,3,23,26,186,234,128,27,186,24,233,28,186,139,79,30,186,64,180,31,186,52,23,33,186,101,120,34,186,208,215,35,186,114,53,37,186,72,145,38,186,80,235,39,186,135,67,41,186,234,153,42,186,119,238,43,186,43,65,45,186,4,146,46,186,254,224,47,186,24,46,49,186,79,121,50,186,161,194,51,186,10,10,
53,186,137,79,54,186,26,147,55,186,188,212,56,186,109,20,58,186,41,82,59,186,238,141,60,186,186,199,61,186,139,255,62,186,95,53,64,186,50,105,65,186,3,155,66,186,208,202,67,186,150,248,68,186,83,36,70,186,4,78,71,186,169,117,72,186,62,155,73,186,193,190,74,186,49,224,75,186,139,255,76,186,205,28,78,186,245,55,79,186,1,81,80,186,239,103,81,186,189,124,82,186,105,143,83,186,241,159,84,186,84,174,85,186,142,186,86,186,159,196,87,186,133,204,88,186,61,210,89,186,198,213,90,186,31,215,91,186,68,214,92,
186,53,211,93,186,240,205,94,186,115,198,95,186,188,188,96,186,202,176,97,186,155,162,98,186,45,146,99,186,127,127,100,186,144,106,101,186,93,83,102,186,229,57,103,186,39,30,104,186,32,0,105,186,209,223,105,186,55,189,106,186,80,152,107,186,28,113,108,186,152,71,109,186,197,27,110,186,159,237,110,186,38,189,111,186,89,138,112,186,54,85,113,186,189,29,114,186,235,227,114,186,192,167,115,186,58,105,116,186,88,40,117,186,26,229,117,186,125,159,118,186,129,87,119,186,37,13,120,186,104,192,120,186,73,
113,121,186,198,31,122,186,223,203,122,186,146,117,123,186,224,28,124,186,198,193,124,186,68,100,125,186,90,4,126,186,5,162,126,186,70,61,127,186,27,214,127,186,66,54,128,186,64,128,128,186,8,201,128,186,152,16,129,186,240,86,129,186,17,156,129,186,249,223,129,186,169,34,130,186,32,100,130,186,93,164,130,186,98,227,130,186,44,33,131,186,189,93,131,186,19,153,131,186,47,211,131,186,16,12,132,186,182,67,132,186,34,122,132,186,82,175,132,186,70,227,132,186,255,21,133,186,124,71,133,186,189,119,133,186,
194,166,133,186,138,212,133,186,23,1,134,186,103,44,134,186,122,86,134,186,81,127,134,186,235,166,134,186,72,205,134,186,105,242,134,186,77,22,135,186,243,56,135,186,94,90,135,186,139,122,135,186,123,153,135,186,47,183,135,186,165,211,135,186,223,238,135,186,220,8,136,186,157,33,136,186,33,57,136,186,104,79,136,186,115,100,136,186,66,120,136,186,213,138,136,186,43,156,136,186,70,172,136,186,37,187,136,186,200,200,136,186,48,213,136,186,93,224,136,186,78,234,136,186,5,243,136,186,129,250,136,186,195,
0,137,186,203,5,137,186,152,9,137,186,44,12,137,186,135,13,137,186,169,13,137,186,146,12,137,186,66,10,137,186,186,6,137,186,250,1,137,186,3,252,136,186,213,244,136,186,111,236,136,186,211,226,136,186,2,216,136,186,250,203,136,186,189,190,136,186,75,176,136,186,165,160,136,186,203,143,136,186,189,125,136,186,124,106,136,186,8,86,136,186,98,64,136,186,138,41,136,186,129,17,136,186,72,248,135,186,222,221,135,186,68,194,135,186,123,165,135,186,131,135,135,186,93,104,135,186,10,72,135,186,138,38,135,
186,221,3,135,186,5,224,134,186,1,187,134,186,211,148,134,186,122,109,134,186,249,68,134,186,78,27,134,186,124,240,133,186,130,196,133,186,98,151,133,186,27,105,133,186,176,57,133,186,31,9,133,186,107,215,132,186,147,164,132,186,153,112,132,186,125,59,132,186,64,5,132,186,227,205,131,186,102,149,131,186,202,91,131,186,17,33,131,186,58,229,130,186,72,168,130,186,57,106,130,186,16,43,130,186,205,234,129,186,113,169,129,186,253,102,129,186,113,35,129,186,207,222,128,186,24,153,128,186,75,82,128,186,
107,10,128,186,240,130,127,186,230,238,126,186,185,88,126,186,108,192,125,186,1,38,125,186,122,137,124,186,215,234,123,186,28,74,123,186,74,167,122,186,99,2,122,186,106,91,121,186,95,178,120,186,70,7,120,186,32,90,119,186,239,170,118,186,181,249,117,186,116,70,117,186,47,145,116,186,232,217,115,186,160,32,115,186,90,101,114,186,24,168,113,186,220,232,112,186,168,39,112,186,127,100,111,186,99,159,110,186,85,216,109,186,89,15,109,186,112,68,108,186,157,119,107,186,226,168,106,186,65,216,105,186,189,
5,105,186,87,49,104,186,19,91,103,186,243,130,102,186,249,168,101,186,40,205,100,186,129,239,99,186,7,16,99,186,190,46,98,186,166,75,97,186,195,102,96,186,24,128,95,186,166,151,94,186,112,173,93,186,120,193,92,186,194,211,91,186,80,228,90,186,36,243,89,186,65,0,89,186,169,11,88,186,95,21,87,186,102,29,86,186,192,35,85,186,112,40,84,186,121,43,83,186,221,44,82,186,158,44,81,186,193,42,80,186,70,39,79,186,50,34,78,186,134,27,77,186,70,19,76,186,116,9,75,186,19,254,73,186,37,241,72,186,174,226,71,186,
177,210,70,186,47,193,69,186,44,174,68,186,171,153,67,186,174,131,66,186,57,108,65,186,78,83,64,186,240,56,63,186,34,29,62,186,231,255,60,186,66,225,59,186,53,193,58,186,196,159,57,186,241,124,56,186,192,88,55,186,51,51,54,186,78,12,53,186,18,228,51,186,132,186,50,186,167,143,49,186,124,99,48,186,7,54,47,186,76,7,46,186,77,215,44,186,14,166,43,186,144,115,42,186,216,63,41,186,232,10,40,186,196,212,38,186,110,157,37,186,234,100,36,186,58,43,35,186,98,240,33,186,101,180,32,186,70,119,31,186,8,57,30,
186,174,249,28,186,59,185,27,186,179,119,26,186,24,53,25,186,110,241,23,186,184,172,22,186,248,102,21,186,51,32,20,186,107,216,18,186,164,143,17,186,224,69,16,186,36,251,14,186,113,175,13,186,203,98,12,186,54,21,11,186,181,198,9,186,75,119,8,186,250,38,7,186,199,213,5,186,181,131,4,186,198,48,3,186,254,220,1,186,97,136,0,186,225,101,254,185,99,185,251,185,76,11,249,185,165,91,246,185,114,170,243,185,187,247,240,185,134,67,238,185,217,141,235,185,188,214,232,185,53,30,230,185,74,100,227,185,2,169,
224,185,100,236,221,185,118,46,219,185,62,111,216,185,196,174,213,185,14,237,210,185,34,42,208,185,8,102,205,185,197,160,202,185,97,218,199,185,225,18,197,185,77,74,194,185,172,128,191,185,3,182,188,185,90,234,185,185,183,29,183,185,33,80,180,185,159,129,177,185,54,178,174,185,239,225,171,185,206,16,169,185,220,62,166,185,31,108,163,185,156,152,160,185,92,196,157,185,101,239,154,185,189,25,152,185,107,67,149,185,117,108,146,185,227,148,143,185,187,188,140,185,3,228,137,185,195,10,135,185,0,49,132,
185,194,86,129,185,31,248,124,185,221,65,119,185,204,138,113,185,249,210,107,185,114,26,102,185,67,97,96,185,122,167,90,185,37,237,84,185,80,50,79,185,9,119,73,185,93,187,67,185,89,255,61,185,10,67,56,185,126,134,50,185,193,201,44,185,226,12,39,185,236,79,33,185,238,146,27,185,244,213,21,185,11,25,16,185,66,92,10,185,163,159,4,185,124,198,253,184,61,78,242,184,164,214,230,184,202,95,219,184,203,233,207,184,191,116,196,184,194,0,185,184,236,141,173,184,88,28,162,184,32,172,150,184,94,61,139,184,85,
160,127,184,64,201,104,184,177,245,81,184,219,37,59,184,242,89,36,184,40,146,13,184,96,157,237,183,124,31,192,183,10,171,146,183,220,128,74,183,58,128,223,182,10,165,168,181,153,1,139,54,99,255,31,55,89,102,122,55,114,90,170,55,30,117,215,55,103,65,2,56,141,193,24,56,210,58,47,56,2,173,69,56,236,23,92,56,94,123,114,56,148,107,132,56,140,149,143,56,126,187,154,56,82,221,165,56,240,250,176,56,62,20,188,56,37,41,199,56,140,57,210,56,92,69,221,56,123,76,232,56,211,78,243,56,74,76,254,56,101,162,4,57,
28,28,10,57,64,147,15,57,196,7,21,57,157,121,26,57,190,232,31,57,27,85,37,57,170,190,42,57,95,37,48,57,45,137,53,57,9,234,58,57,232,71,64,57,190,162,69,57,127,250,74,57,32,79,80,57,150,160,85,57,213,238,90,57,210,57,96,57,129,129,101,57,216,197,106,57,203,6,112,57,78,68,117,57,87,126,122,57,219,180,127,57,231,115,130,57,147,11,133,57,108,161,135,57,108,53,138,57,142,199,140,57,204,87,143,57,33,230,145,57,136,114,148,57,251,252,150,57,118,133,153,57,241,11,156,57,106,144,158,57,217,18,161,57,58,147,
163,57,136,17,166,57,189,141,168,57,212,7,171,57,201,127,173,57,150,245,175,57,53,105,178,57,162,218,180,57,216,73,183,57,210,182,185,57,139,33,188,57,253,137,190,57,36,240,192,57,251,83,195,57,125,181,197,57,165,20,200,57,111,113,202,57,212,203,204,57,210,35,207,57,98,121,209,57,129,204,211,57,41,29,214,57,86,107,216,57,2,183,218,57,43,0,221,57,202,70,223,57,219,138,225,57,90,204,227,57,66,11,230,57,143,71,232,57,60,129,234,57,68,184,236,57,164,236,238,57,87,30,241,57,89,77,243,57,165,121,245,57,
54,163,247,57,10,202,249,57,26,238,251,57,100,15,254,57,242,22,0,58,202,36,1,58,56,49,2,58,58,60,3,58,207,69,4,58,244,77,5,58,168,84,6,58,231,89,7,58,177,93,8,58,3,96,9,58,220,96,10,58,57,96,11,58,24,94,12,58,121,90,13,58,88,85,14,58,179,78,15,58,138,70,16,58,218,60,17,58,161,49,18,58,222,36,19,58,143,22,20,58,177,6,21,58,68,245,21,58,69,226,22,58,179,205,23,58,140,183,24,58,206,159,25,58,120,134,26,58,136,107,27,58,252,78,28,58,210,48,29,58,10,17,30,58,162,239,30,58,151,204,31,58,232,167,32,58,148,
129,33,58,154,89,34,58,247,47,35,58,170,4,36,58,178,215,36,58,13,169,37,58,186,120,38,58,183,70,39,58,4,19,40,58,157,221,40,58,131,166,41,58,179,109,42,58,45,51,43,58,239,246,43,58,248,184,44,58,69,121,45,58,215,55,46,58,172,244,46,58,195,175,47,58,26,105,48,58,175,32,49,58,131,214,49,58,148,138,50,58,224,60,51,58,102,237,51,58,38,156,52,58,30,73,53,58,76,244,53,58,177,157,54,58,75,69,55,58,24,235,55,58,25,143,56,58,75,49,57,58,173,209,57,58,64,112,58,58,1,13,59,58,240,167,59,58,12,65,60,58,85,216,
60,58,200,109,61,58,101,1,62,58,44,147,62,58,27,35,63,58,51,177,63,58,112,61,64,58,212,199,64,58,94,80,65,58,12,215,65,58,221,91,66,58,210,222,66,58,233,95,67,58,34,223,67,58,124,92,68,58,246,215,68,58,144,81,69,58,73,201,69,58,33,63,70,58,22,179,70,58,41,37,71,58,89,149,71,58,164,3,72,58,12,112,72,58,143,218,72,58,45,67,73,58,228,169,73,58,182,14,74,58,161,113,74,58,166,210,74,58,195,49,75,58,248,142,75,58,69,234,75,58,169,67,76,58,37,155,76,58,184,240,76,58,97,68,77,58,33,150,77,58,247,229,77,58,
227,51,78,58,228,127,78,58,251,201,78,58,39,18,79,58,104,88,79,58,190,156,79,58,41,223,79,58,169,31,80,58,61,94,80,58,230,154,80,58,163,213,80,58,117,14,81,58,91,69,81,58,85,122,81,58,100,173,81,58,135,222,81,58,191,13,82,58,11,59,82,58,108,102,82,58,226,143,82,58,108,183,82,58,11,221,82,58,191,0,83,58,137,34,83,58,103,66,83,58,92,96,83,58,102,124,83,58,134,150,83,58,189,174,83,58,10,197,83,58,109,217,83,58,232,235,83,58,123,252,83,58,37,11,84,58,231,23,84,58,193,34,84,58,181,43,84,58,194,50,84,58,
232,55,84,58,40,59,84,58,131,60,84,58,249,59,84,58,138,57,84,58,56,53,84,58,1,47,84,58,232,38,84,58,236,28,84,58,15,17,84,58,80,3,84,58,176,243,83,58,49,226,83,58,209,206,83,58,147,185,83,58,119,162,83,58,125,137,83,58,167,110,83,58,244,81,83,58,102,51,83,58,253,18,83,58,186,240,82,58,158,204,82,58,170,166,82,58,223,126,82,58,60,85,82,58,196,41,82,58,119,252,81,58,85,205,81,58,96,156,81,58,153,105,81,58,1,53,81,58,151,254,80,58,95,198,80,58,87,140,80,58,130,80,80,58,224,18,80,58,114,211,79,58,58,
146,79,58,56,79,79,58,110,10,79,58,220,195,78,58,131,123,78,58,102,49,78,58,131,229,77,58,222,151,77,58,119,72,77,58,79,247,76,58,103,164,76,58,193,79,76,58,94,249,75,58,62,161,75,58,100,71,75,58,207,235,74,58,131,142,74,58,127,47,74,58,198,206,73,58,88,108,73,58,55,8,73,58,100,162,72,58,224,58,72,58,174,209,71,58,205,102,71,58,64,250,70,58,8,140,70,58,38,28,70,58,156,170,69,58,107,55,69,58,149,194,68,58,26,76,68,58,254,211,67,58,64,90,67,58,227,222,66,58,232,97,66,58,81,227,65,58,31,99,65,58,83,
225,64,58,240,93,64,58,246,216,63,58,104,82,63,58,71,202,62,58,148,64,62,58,82,181,61,58,130,40,61,58,37,154,60,58,61,10,60,58,205,120,59,58,212,229,58,58,86,81,58,58,85,187,57,58,208,35,57,58,204,138,56,58,72,240,55,58,71,84,55,58,203,182,54,58,214,23,54,58,105,119,53,58,134,213,52,58,46,50,52,58,101,141,51,58,43,231,50,58,131,63,50,58,110,150,49,58,238,235,48,58,5,64,48,58,181,146,47,58,0,228,46,58,232,51,46,58,110,130,45,58,149,207,44,58,94,27,44,58,204,101,43,58,225,174,42,58,158,246,41,58,6,
61,41,58,25,130,40,58,220,197,39,58,79,8,39,58,116,73,38,58,78,137,37,58,223,199,36,58,40,5,36,58,44,65,35,58,236,123,34,58,108,181,33,58,172,237,32,58,176,36,32,58,121,90,31,58,9,143,30,58,98,194,29,58,135,244,28,58,122,37,28,58,60,85,27,58,209,131,26,58,58,177,25,58,121,221,24,58,145,8,24,58,131,50,23,58,82,91,22,58,1,131,21,58,145,169,20,58,5,207,19,58,94,243,18,58,160,22,18,58,204,56,17,58,229,89,16,58,236,121,15,58,229,152,14,58,209,182,13,58,179,211,12,58,141,239,11,58,97,10,11,58,50,36,10,
58,1,61,9,58,211,84,8,58,167,107,7,58,130,129,6,58,101,150,5,58,82,170,4,58,77,189,3,58,87,207,2,58,114,224,1,58,162,240,0,58,208,255,255,57,142,28,254,57,130,55,252,57,178,80,250,57,34,104,248,57,215,125,246,57,213,145,244,57,34,164,242,57,194,180,240,57,187,195,238,57,17,209,236,57,200,220,234,57,231,230,232,57,114,239,230,57,109,246,228,57,222,251,226,57,201,255,224,57,52,2,223,57,35,3,221,57,155,2,219,57,162,0,217,57,60,253,214,57,110,248,212,57,62,242,210,57,176,234,208,57,201,225,206,57,142,
215,204,57,4,204,202,57,49,191,200,57,25,177,198,57,193,161,196,57,46,145,194,57,102,127,192,57,109,108,190,57,73,88,188,57,254,66,186,57,146,44,184,57,9,21,182,57,106,252,179,57,184,226,177,57,249,199,175,57,49,172,173,57,103,143,171,57,159,113,169,57,223,82,167,57,43,51,165,57,136,18,163,57,252,240,160,57,139,206,158,57,59,171,156,57,18,135,154,57,19,98,152,57,68,60,150,57,171,21,148,57,76,238,145,57,45,198,143,57,82,157,141,57,193,115,139,57,128,73,137,57,146,30,135,57,253,242,132,57,199,198,130,
57,245,153,128,57,21,217,124,57,29,125,120,57,10,32,116,57,231,193,111,57,191,98,107,57,155,2,103,57,135,161,98,57,139,63,94,57,179,220,89,57,9,121,85,57,150,20,81,57,102,175,76,57,131,73,72,57,246,226,67,57,202,123,63,57,9,20,59,57,190,171,54,57,243,66,50,57,177,217,45,57,4,112,41,57,244,5,37,57,142,155,32,57,218,48,28,57,228,197,23,57,180,90,19,57,86,239,14,57,211,131,10,57,54,24,6,57,136,172,1,57,170,129,250,56,75,170,241,56,9,211,232,56,248,251,223,56,43,37,215,56,183,78,206,56,176,120,197,56,
43,163,188,56,59,206,179,56,244,249,170,56,107,38,162,56,179,83,153,56,225,129,144,56,9,177,135,56,123,194,125,56,39,37,108,56,62,138,90,56,231,241,72,56,74,92,55,56,142,201,37,56,219,57,20,56,88,173,2,56,91,72,226,55,3,61,191,55,247,56,156,55,13,121,114,55,254,143,44,55,184,110,205,54,18,191,3,54,183,24,19,182,192,211,212,182,183,250,47,183,24,120,117,183,181,112,157,183,9,27,192,183,187,186,226,183,191,167,2,184,132,236,19,184,134,43,37,184,158,100,54,184,166,151,71,184,122,196,88,184,242,234,105,
184,234,10,123,184,30,18,134,184,97,155,142,184,44,33,151,184,108,163,159,184,14,34,168,184,255,156,176,184,46,20,185,184,136,135,193,184,251,246,201,184,115,98,210,184,224,201,218,184,47,45,227,184,77,140,235,184,40,231,243,184,175,61,252,184,232,71,2,185,188,110,6,185,75,147,10,185,139,181,14,185,117,213,18,185,255,242,22,185,33,14,27,185,209,38,31,185,6,61,35,185,186,80,39,185,225,97,43,185,116,112,47,185,107,124,51,185,188,133,55,185,95,140,59,185,75,144,63,185,120,145,67,185,222,143,71,185,116,
139,75,185,50,132,79,185,15,122,83,185,3,109,87,185,6,93,91,185,15,74,95,185,22,52,99,185,19,27,103,185,254,254,106,185,207,223,110,185,125,189,114,185,2,152,118,185,83,111,122,185,107,67,126,185,32,10,129,185,229,240,130,185,1,214,132,185,113,185,134,185,47,155,136,185,57,123,138,185,139,89,140,185,31,54,142,185,244,16,144,185,5,234,145,185,77,193,147,185,203,150,149,185,121,106,151,185,84,60,153,185,88,12,155,185,130,218,156,185,205,166,158,185,56,113,160,185,188,57,162,185,88,0,164,185,8,197,165,
185,199,135,167,185,147,72,169,185,104,7,171,185,67,196,172,185,31,127,174,185,250,55,176,185,208,238,177,185,157,163,179,185,95,86,181,185,18,7,183,185,179,181,184,185,62,98,186,185,176,12,188,185,5,181,189,185,60,91,191,185,79,255,192,185,60,161,194,185,1,65,196,185,153,222,197,185,1,122,199,185,55,19,201,185,56,170,202,185,255,62,204,185,139,209,205,185,217,97,207,185,228,239,208,185,171,123,210,185,42,5,212,185,94,140,213,185,69,17,215,185,219,147,216,185,30,20,218,185,11,146,219,185,159,13,221,
185,215,134,222,185,177,253,223,185,41,114,225,185,62,228,226,185,236,83,228,185,49,193,229,185,9,44,231,185,115,148,232,185,108,250,233,185,242,93,235,185,1,191,236,185,151,29,238,185,178,121,239,185,79,211,240,185,108,42,242,185,6,127,243,185,28,209,244,185,170,32,246,185,174,109,247,185,38,184,248,185,16,0,250,185,105,69,251,185,47,136,252,185,96,200,253,185,250,5,255,185,125,32,0,186,176,188,0,186,147,87,1,186,39,241,1,186,106,137,2,186,91,32,3,186,248,181,3,186,66,74,4,186,55,221,4,186,214,110,
5,186,30,255,5,186,15,142,6,186,166,27,7,186,228,167,7,186,200,50,8,186,80,188,8,186,123,68,9,186,74,203,9,186,186,80,10,186,204,212,10,186,126,87,11,186,207,216,11,186,191,88,12,186,77,215,12,186,120,84,13,186,63,208,13,186,162,74,14,186,160,195,14,186,56,59,15,186,106,177,15,186,52,38,16,186,151,153,16,186,145,11,17,186,33,124,17,186,72,235,17,186,4,89,18,186,85,197,18,186,59,48,19,186,180,153,19,186,192,1,20,186,95,104,20,186,144,205,20,186,83,49,21,186,166,147,21,186,138,244,21,186,254,83,22,
186,1,178,22,186,148,14,23,186,181,105,23,186,100,195,23,186,161,27,24,186,107,114,24,186,194,199,24,186,166,27,25,186,22,110,25,186,17,191,25,186,152,14,26,186,170,92,26,186,71,169,26,186,111,244,26,186,32,62,27,186,92,134,27,186,33,205,27,186,112,18,28,186,72,86,28,186,169,152,28,186,146,217,28,186,4,25,29,186,255,86,29,186,129,147,29,186,140,206,29,186,31,8,30,186,57,64,30,186,219,118,30,186,4,172,30,186,181,223,30,186,238,17,31,186,173,66,31,186,244,113,31,186,194,159,31,186,23,204,31,186,244,
246,31,186,87,32,32,186,66,72,32,186,180,110,32,186,173,147,32,186,46,183,32,186,54,217,32,186,197,249,32,186,220,24,33,186,123,54,33,186,161,82,33,186,80,109,33,186,134,134,33,186,69,158,33,186,140,180,33,186,92,201,33,186,180,220,33,186,149,238,33,186,0,255,33,186,244,13,34,186,114,27,34,186,122,39,34,186,12,50,34,186,40,59,34,186,208,66,34,186,2,73,34,186,192,77,34,186,10,81,34,186,224,82,34,186,67,83,34,186,50,82,34,186,175,79,34,186,185,75,34,186,82,70,34,186,121,63,34,186,47,55,34,186,116,45,
34,186,74,34,34,186,176,21,34,186,166,7,34,186,47,248,33,186,72,231,33,186,245,212,33,186,52,193,33,186,7,172,33,186,110,149,33,186,105,125,33,186,250,99,33,186,33,73,33,186,222,44,33,186,50,15,33,186,30,240,32,186,162,207,32,186,192,173,32,186,119,138,32,186,200,101,32,186,180,63,32,186,60,24,32,186,97,239,31,186,35,197,31,186,131,153,31,186,130,108,31,186,32,62,31,186,94,14,31,186,62,221,30,186,191,170,30,186,227,118,30,186,170,65,30,186,22,11,30,186,39,211,29,186,222,153,29,186,60,95,29,186,66,
35,29,186,240,229,28,186,73,167,28,186,75,103,28,186,249,37,28,186,83,227,27,186,91,159,27,186,17,90,27,186,118,19,27,186,139,203,26,186,82,130,26,186,202,55,26,186,246,235,25,186,215,158,25,186,108,80,25,186,184,0,25,186,187,175,24,186,118,93,24,186,235,9,24,186,27,181,23,186,6,95,23,186,174,7,23,186,20,175,22,186,57,85,22,186,31,250,21,186,197,157,21,186,46,64,21,186,91,225,20,186,76,129,20,186,3,32,20,186,130,189,19,186,201,89,19,186,217,244,18,186,181,142,18,186,92,39,18,186,209,190,17,186,20,
85,17,186,40,234,16,186,12,126,16,186,194,16,16,186,77,162,15,186,172,50,15,186,225,193,14,186,239,79,14,186,213,220,13,186,149,104,13,186,49,243,12,186,170,124,12,186,1,5,12,186,55,140,11,186,79,18,11,186,74,151,10,186,40,27,10,186,235,157,9,186,149,31,9,186,40,160,8,186,163,31,8,186,10,158,7,186,93,27,7,186,158,151,6,186,206,18,6,186,239,140,5,186,3,6,5,186,10,126,4,186,6,245,3,186,249,106,3,186,229,223,2,186,202,83,2,186,170,198,1,186,136,56,1,186,100,169,0,186,63,25,0,186,57,16,255,185,250,235,
253,185,195,197,252,185,154,157,251,185,127,115,250,185,120,71,249,185,134,25,248,185,174,233,246,185,242,183,245,185,86,132,244,185,221,78,243,185,138,23,242,185,96,222,240,185,99,163,239,185,150,102,238,185,252,39,237,185,153,231,235,185,112,165,234,185,133,97,233,185,218,27,232,185,116,212,230,185,85,139,229,185,128,64,228,185,251,243,226,185,199,165,225,185,232,85,224,185,98,4,223,185,56,177,221,185,110,92,220,185,6,6,219,185,6,174,217,185,111,84,216,185,70,249,214,185,142,156,213,185,75,62,212,
185,128,222,210,185,49,125,209,185,97,26,208,185,20,182,206,185,77,80,205,185,17,233,203,185,99,128,202,185,69,22,201,185,189,170,199,185,205,61,198,185,122,207,196,185,198,95,195,185,182,238,193,185,77,124,192,185,143,8,191,185,127,147,189,185,34,29,188,185,123,165,186,185,141,44,185,185,93,178,183,185,238,54,182,185,67,186,180,185,97,60,179,185,76,189,177,185,7,61,176,185,149,187,174,185,251,56,173,185,60,181,171,185,93,48,170,185,96,170,168,185,74,35,167,185,31,155,165,185,226,17,164,185,151,135,
162,185,65,252,160,185,230,111,159,185,136,226,157,185,44,84,156,185,213,196,154,185,134,52,153,185,69,163,151,185,21,17,150,185,249,125,148,185,245,233,146,185,14,85,145,185,71,191,143,185,164,40,142,185,41,145,140,185,218,248,138,185,186,95,137,185,206,197,135,185,26,43,134,185,161,143,132,185,103,243,130,185,112,86,129,185,127,113,127,185,181,52,124,185,137,246,120,185,2,183,117,185,40,118,114,185,3,52,111,185,155,240,107,185,248,171,104,185,33,102,101,185,30,31,98,185,248,214,94,185,181,141,91,
185,95,67,88,185,252,247,84,185,148,171,81,185,48,94,78,185,214,15,75,185,144,192,71,185,101,112,68,185,92,31,65,185,126,205,61,185,210,122,58,185,96,39,55,185,48,211,51,185,74,126,48,185,181,40,45,185,122,210,41,185,161,123,38,185,48,36,35,185,48,204,31,185,169,115,28,185,163,26,25,185,37,193,21,185,55,103,18,185,225,12,15,185,43,178,11,185,28,87,8,185,189,251,4,185,21,160,1,185,88,136,252,184,19,208,245,184,106,23,239,184,110,94,232,184,46,165,225,184,186,235,218,184,32,50,212,184,112,120,205,184,
187,190,198,184,14,5,192,184,122,75,185,184,14,146,178,184,217,216,171,184,235,31,165,184,83,103,158,184,32,175,151,184,98,247,144,184,40,64,138,184,129,137,131,184,249,166,121,184,83,60,108,184,47,211,94,184,171,107,81,184,230,5,68,184,253,161,54,184,14,64,41,184,57,224,27,184,155,130,14,184,81,39,1,184,246,156,231,183,107,240,204,183,62,73,178,183,171,167,151,183,217,23,122,183,126,236,68,183,185,205,15,183,6,120,181,182,67,223,22,182,122,230,115,53,96,76,136,54,39,254,241,54,157,200,45,55,87,130,
98,55,231,149,139,55,70,226,165,55,15,38,192,55,8,97,218,55,247,146,244,55,209,93,7,56,105,109,20,56,37,120,33,56,234,125,46,56,154,126,59,56,26,122,72,56,77,112,85,56,22,97,98,56,90,76,111,56,252,49,124,56,240,136,132,56,246,245,138,56,0,96,145,56,2,199,151,56,237,42,158,56,180,139,164,56,73,233,170,56,158,67,177,56,165,154,183,56,82,238,189,56,149,62,196,56,98,139,202,56,171,212,208,56,99,26,215,56,124,92,221,56,232,154,227,56,156,213,233,56,136,12,240,56,161,63,246,56,216,110,252,56,17,77,1,57,
184,96,4,57,91,114,7,57,243,129,10,57,121,143,13,57,233,154,16,57,58,164,19,57,103,171,22,57,105,176,25,57,58,179,28,57,212,179,31,57,48,178,34,57,71,174,37,57,21,168,40,57,147,159,43,57,185,148,46,57,132,135,49,57,235,119,52,57,233,101,55,57,120,81,58,57,147,58,61,57,50,33,64,57,80,5,67,57,231,230,69,57,242,197,72,57,105,162,75,57,72,124,78,57,137,83,81,57,37,40,84,57,23,250,86,57,89,201,89,57,230,149,92,57,184,95,95,57,200,38,98,57,19,235,100,57,145,172,103,57,61,107,106,57,19,39,109,57,12,224,
111,57,34,150,114,57,81,73,117,57,147,249,119,57,227,166,122,57,59,81,125,57,150,248,127,57,120,78,129,57,32,159,130,57,66,238,131,57,220,59,133,57,234,135,134,57,106,210,135,57,89,27,137,57,181,98,138,57,123,168,139,57,170,236,140,57,61,47,142,57,52,112,143,57,139,175,144,57,65,237,145,57,82,41,147,57,188,99,148,57,125,156,149,57,147,211,150,57,251,8,152,57,179,60,153,57,185,110,154,57,10,159,155,57,165,205,156,57,134,250,157,57,172,37,159,57,20,79,160,57,188,118,161,57,163,156,162,57,197,192,163,
57,33,227,164,57,181,3,166,57,127,34,167,57,124,63,168,57,170,90,169,57,8,116,170,57,147,139,171,57,73,161,172,57,41,181,173,57,48,199,174,57,93,215,175,57,173,229,176,57,30,242,177,57,176,252,178,57,95,5,180,57,42,12,181,57,15,17,182,57,13,20,183,57,33,21,184,57,73,20,185,57,133,17,186,57,210,12,187,57,46,6,188,57,152,253,188,57,15,243,189,57,143,230,190,57,25,216,191,57,169,199,192,57,63,181,193,57,218,160,194,57,118,138,195,57,19,114,196,57,176,87,197,57,75,59,198,57,225,28,199,57,115,252,199,
57,254,217,200,57,129,181,201,57,250,142,202,57,105,102,203,57,203,59,204,57,32,15,205,57,102,224,205,57,156,175,206,57,192,124,207,57,210,71,208,57,207,16,209,57,184,215,209,57,137,156,210,57,67,95,211,57,229,31,212,57,108,222,212,57,216,154,213,57,40,85,214,57,91,13,215,57,111,195,215,57,99,119,216,57,56,41,217,57,234,216,217,57,123,134,218,57,232,49,219,57,48,219,219,57,83,130,220,57,80,39,221,57,38,202,221,57,212,106,222,57,89,9,223,57,180,165,223,57,229,63,224,57,234,215,224,57,196,109,225,57,
112,1,226,57,239,146,226,57,64,34,227,57,98,175,227,57,85,58,228,57,23,195,228,57,169,73,229,57,9,206,229,57,55,80,230,57,50,208,230,57,250,77,231,57,143,201,231,57,239,66,232,57,27,186,232,57,18,47,233,57,211,161,233,57,94,18,234,57,179,128,234,57,209,236,234,57,184,86,235,57,104,190,235,57,223,35,236,57,31,135,236,57,38,232,236,57,245,70,237,57,139,163,237,57,232,253,237,57,11,86,238,57,245,171,238,57,166,255,238,57,29,81,239,57,90,160,239,57,92,237,239,57,37,56,240,57,180,128,240,57,9,199,240,
57,35,11,241,57,4,77,241,57,170,140,241,57,22,202,241,57,73,5,242,57,65,62,242,57,255,116,242,57,132,169,242,57,207,219,242,57,225,11,243,57,186,57,243,57,89,101,243,57,192,142,243,57,238,181,243,57,228,218,243,57,162,253,243,57,40,30,244,57,119,60,244,57,143,88,244,57,112,114,244,57,26,138,244,57,143,159,244,57,207,178,244,57,217,195,244,57,174,210,244,57,80,223,244,57,190,233,244,57,248,241,244,57,1,248,244,57,215,251,244,57,123,253,244,57,239,252,244,57,51,250,244,57,70,245,244,57,43,238,244,57,
226,228,244,57,107,217,244,57,199,203,244,57,246,187,244,57,251,169,244,57,212,149,244,57,132,127,244,57,11,103,244,57,105,76,244,57,159,47,244,57,176,16,244,57,154,239,243,57,95,204,243,57,1,167,243,57,127,127,243,57,220,85,243,57,23,42,243,57,50,252,242,57,46,204,242,57,12,154,242,57,205,101,242,57,114,47,242,57,251,246,241,57,107,188,241,57,194,127,241,57,2,65,241,57,43,0,241,57,63,189,240,57,62,120,240,57,43,49,240,57,5,232,239,57,207,156,239,57,138,79,239,57,55,0,239,57,215,174,238,57,108,91,
238,57,247,5,238,57,120,174,237,57,243,84,237,57,103,249,236,57,214,155,236,57,67,60,236,57,173,218,235,57,23,119,235,57,129,17,235,57,239,169,234,57,96,64,234,57,214,212,233,57,84,103,233,57,218,247,232,57,106,134,232,57,6,19,232,57,174,157,231,57,102,38,231,57,46,173,230,57,7,50,230,57,245,180,229,57,247,53,229,57,17,181,228,57,67,50,228,57,144,173,227,57,248,38,227,57,127,158,226,57,37,20,226,57,236,135,225,57,214,249,224,57,229,105,224,57,27,216,223,57,121,68,223,57,1,175,222,57,182,23,222,57,
153,126,221,57,171,227,220,57,239,70,220,57,104,168,219,57,21,8,219,57,250,101,218,57,25,194,217,57,115,28,217,57,11,117,216,57,226,203,215,57,251,32,215,57,87,116,214,57,248,197,213,57,225,21,213,57,20,100,212,57,146,176,211,57,94,251,210,57,122,68,210,57,231,139,209,57,169,209,208,57,193,21,208,57,50,88,207,57,253,152,206,57,36,216,205,57,171,21,205,57,146,81,204,57,221,139,203,57,141,196,202,57,165,251,201,57,39,49,201,57,22,101,200,57,114,151,199,57,64,200,198,57,129,247,197,57,55,37,197,57,100,
81,196,57,12,124,195,57,48,165,194,57,211,204,193,57,247,242,192,57,158,23,192,57,203,58,191,57,129,92,190,57,192,124,189,57,141,155,188,57,234,184,187,57,216,212,186,57,91,239,185,57,116,8,185,57,39,32,184,57,117,54,183,57,98,75,182,57,239,94,181,57,31,113,180,57,246,129,179,57,116,145,178,57,157,159,177,57,116,172,176,57,250,183,175,57,51,194,174,57,33,203,173,57,198,210,172,57,37,217,171,57,65,222,170,57,29,226,169,57,186,228,168,57,28,230,167,57,70,230,166,57,57,229,165,57,248,226,164,57,135,
223,163,57,231,218,162,57,28,213,161,57,40,206,160,57,14,198,159,57,208,188,158,57,114,178,157,57,245,166,156,57,93,154,155,57,173,140,154,57,230,125,153,57,12,110,152,57,34,93,151,57,42,75,150,57,39,56,149,57,28,36,148,57,11,15,147,57,248,248,145,57,229,225,144,57,212,201,143,57,202,176,142,57,199,150,141,57,208,123,140,57,231,95,139,57,15,67,138,57,75,37,137,57,157,6,136,57,8,231,134,57,144,198,133,57,54,165,132,57,255,130,131,57,236,95,130,57,0,60,129,57,63,23,128,57,87,227,125,57,144,150,123,
57,47,72,121,57,57,248,118,57,181,166,116,57,168,83,114,57,24,255,111,57,11,169,109,57,134,81,107,57,144,248,104,57,45,158,102,57,101,66,100,57,60,229,97,57,185,134,95,57,225,38,93,57,187,197,90,57,75,99,88,57,152,255,85,57,168,154,83,57,129,52,81,57,39,205,78,57,162,100,76,57,247,250,73,57,44,144,71,57,71,36,69,57,78,183,66,57,70,73,64,57,53,218,61,57,34,106,59,57,18,249,56,57,11,135,54,57,19,20,52,57,48,160,49,57,103,43,47,57,191,181,44,57,62,63,42,57,233,199,39,57,198,79,37,57,219,214,34,57,47,
93,32,57,198,226,29,57,168,103,27,57,217,235,24,57,95,111,22,57,66,242,19,57,134,116,17,57,49,246,14,57,73,119,12,57,212,247,9,57,217,119,7,57,92,247,4,57,100,118,2,57,238,233,255,56,53,230,250,56,168,225,245,56,85,220,240,56,69,214,235,56,134,207,230,56,34,200,225,56,38,192,220,56,157,183,215,56,147,174,210,56,20,165,205,56,43,155,200,56],"i8",4,y.a+61440);
Q([228,144,195,56,75,134,190,56,107,123,185,56,81,112,180,56,7,101,175,56,153,89,170,56,19,78,165,56,129,66,160,56,238,54,155,56,101,43,150,56,243,31,145,56,163,20,140,56,128,9,135,56,150,254,129,56,225,231,121,56,54,211,111,56,65,191,101,56,26,172,91,56,216,153,81,56,146,136,71,56,93,120,61,56,82,105,51,56,135,91,41,56,18,79,31,56,11,68,21,56,135,58,11,56,158,50,1,56,205,88,238,55,237,79,218,55,201,74,198,55,143,73,178,55,106,76,158,55,137,83,138,55,45,190,108,55,129,222,68,55,101,8,29,55,103,120,
234,54,136,244,154,54,187,11,23,54,201,185,244,179,45,42,38,182,1,64,162,182,247,82,241,182,165,38,32,183,38,151,71,183,168,250,110,183,106,40,139,183,169,204,158,183,231,105,178,183,248,255,197,183,177,142,217,183,232,21,237,183,185,74,0,184,147,6,10,184,107,190,19,184,45,114,29,184,196,33,39,184,26,205,48,184,27,116,58,184,177,22,68,184,201,180,77,184,76,78,87,184,39,227,96,184,68,115,106,184,144,254,115,184,245,132,125,184,47,131,131,184,92,65,136,184,248,252,140,184,247,181,145,184,80,108,150,
184,249,31,155,184,232,208,159,184,19,127,164,184,111,42,169,184,244,210,173,184,150,120,178,184,76,27,183,184,13,187,187,184,207,87,192,184,135,241,196,184,45,136,201,184,182,27,206,184,25,172,210,184,76,57,215,184,70,195,219,184,253,73,224,184,104,205,228,184,126,77,233,184,52,202,237,184,130,67,242,184,94,185,246,184,192,43,251,184,157,154,255,184,247,2,2,185,211,54,4,185,224,104,6,185,25,153,8,185,121,199,10,185,252,243,12,185,157,30,15,185,87,71,17,185,39,110,19,185,9,147,21,185,246,181,23,185,
237,214,25,185,231,245,27,185,224,18,30,185,213,45,32,185,194,70,34,185,161,93,36,185,111,114,38,185,39,133,40,185,198,149,42,185,71,164,44,185,165,176,46,185,222,186,48,185,237,194,50,185,206,200,52,185,124,204,54,185,245,205,56,185,51,205,58,185,51,202,60,185,241,196,62,185,105,189,64,185,152,179,66,185,121,167,68,185,8,153,70,185,66,136,72,185,35,117,74,185,167,95,76,185,203,71,78,185,139,45,80,185,226,16,82,185,207,241,83,185,76,208,85,185,86,172,87,185,234,133,89,185,4,93,91,185,161,49,93,185,
189,3,95,185,85,211,96,185,100,160,98,185,233,106,100,185,223,50,102,185,68,248,103,185,19,187,105,185,73,123,107,185,228,56,109,185,223,243,110,185,57,172,112,185,236,97,114,185,248,20,116,185,87,197,117,185,7,115,119,185,6,30,121,185,79,198,122,185,225,107,124,185,183,14,126,185,207,174,127,185,19,166,128,185,93,115,129,185,67,63,130,185,197,9,131,185,224,210,131,185,147,154,132,185,222,96,133,185,190,37,134,185,50,233,134,185,57,171,135,185,210,107,136,185,251,42,137,185,179,232,137,185,249,164,
138,185,203,95,139,185,40,25,140,185,15,209,140,185,126,135,141,185,117,60,142,185,242,239,142,185,245,161,143,185,123,82,144,185,132,1,145,185,14,175,145,185,25,91,146,185,163,5,147,185,172,174,147,185,49,86,148,185,51,252,148,185,175,160,149,185,166,67,150,185,22,229,150,185,253,132,151,185,92,35,152,185,48,192,152,185,122,91,153,185,56,245,153,185,105,141,154,185,12,36,155,185,32,185,155,185,165,76,156,185,153,222,156,185,252,110,157,185,205,253,157,185,11,139,158,185,181,22,159,185,202,160,159,
185,75,41,160,185,53,176,160,185,136,53,161,185,67,185,161,185,102,59,162,185,241,187,162,185,225,58,163,185,55,184,163,185,242,51,164,185,17,174,164,185,147,38,165,185,121,157,165,185,193,18,166,185,107,134,166,185,119,248,166,185,227,104,167,185,175,215,167,185,219,68,168,185,101,176,168,185,79,26,169,185,151,130,169,185,60,233,169,185,63,78,170,185,158,177,170,185,90,19,171,185,114,115,171,185,229,209,171,185,180,46,172,185,221,137,172,185,97,227,172,185,64,59,173,185,120,145,173,185,10,230,173,
185,245,56,174,185,57,138,174,185,214,217,174,185,203,39,175,185,25,116,175,185,191,190,175,185,189,7,176,185,18,79,176,185,192,148,176,185,196,216,176,185,32,27,177,185,212,91,177,185,222,154,177,185,63,216,177,185,248,19,178,185,7,78,178,185,109,134,178,185,42,189,178,185,62,242,178,185,168,37,179,185,106,87,179,185,130,135,179,185,242,181,179,185,184,226,179,185,213,13,180,185,74,55,180,185,22,95,180,185,57,133,180,185,180,169,180,185,135,204,180,185,177,237,180,185,52,13,181,185,14,43,181,185,
66,71,181,185,206,97,181,185,179,122,181,185,241,145,181,185,136,167,181,185,121,187,181,185,197,205,181,185,106,222,181,185,107,237,181,185,198,250,181,185,125,6,182,185,144,16,182,185,255,24,182,185,202,31,182,185,242,36,182,185,120,40,182,185,91,42,182,185,157,42,182,185,62,41,182,185,62,38,182,185,157,33,182,185,93,27,182,185,126,19,182,185,0,10,182,185,228,254,181,185,43,242,181,185,212,227,181,185,225,211,181,185,83,194,181,185,41,175,181,185,101,154,181,185,7,132,181,185,16,108,181,185,128,
82,181,185,89,55,181,185,155,26,181,185,70,252,180,185,92,220,180,185,220,186,180,185,201,151,180,185,35,115,180,185,233,76,180,185,31,37,180,185,195,251,179,185,215,208,179,185,92,164,179,185,82,118,179,185,187,70,179,185,151,21,179,185,232,226,178,185,174,174,178,185,233,120,178,185,156,65,178,185,199,8,178,185,106,206,177,185,136,146,177,185,32,85,177,185,52,22,177,185,197,213,176,185,212,147,176,185,98,80,176,185,112,11,176,185,254,196,175,185,15,125,175,185,163,51,175,185,188,232,174,185,89,
156,174,185,125,78,174,185,41,255,173,185,93,174,173,185,28,92,173,185,101,8,173,185,59,179,172,185,158,92,172,185,144,4,172,185,17,171,171,185,36,80,171,185,201,243,170,185,1,150,170,185,206,54,170,185,50,214,169,185,45,116,169,185,192,16,169,185,237,171,168,185,182,69,168,185,27,222,167,185,30,117,167,185,193,10,167,185,4,159,166,185,233,49,166,185,113,195,165,185,159,83,165,185,114,226,164,185,237,111,164,185,17,252,163,185,223,134,163,185,90,16,163,185,129,152,162,185,88,31,162,185,223,164,161,
185,23,41,161,185,3,172,160,185,163,45,160,185,250,173,159,185,9,45,159,185,209,170,158,185,84,39,158,185,147,162,157,185,144,28,157,185,77,149,156,185,203,12,156,185,11,131,155,185,16,248,154,185,219,107,154,185,110,222,153,185,201,79,153,185,240,191,152,185,227,46,152,185,164,156,151,185,53,9,151,185,151,116,150,185,205,222,149,185,215,71,149,185,184,175,148,185,113,22,148,185,4,124,147,185,115,224,146,185,191,67,146,185,234,165,145,185,246,6,145,185,229,102,144,185,184,197,143,185,114,35,143,185,
19,128,142,185,159,219,141,185,21,54,141,185,121,143,140,185,205,231,139,185,17,63,139,185,72,149,138,185,116,234,137,185,150,62,137,185,177,145,136,185,197,227,135,185,214,52,135,185,229,132,134,185,244,211,133,185,4,34,133,185,24,111,132,185,49,187,131,185,82,6,131,185,124,80,130,185,177,153,129,185,243,225,128,185,68,41,128,185,78,223,126,185,56,106,125,185,77,243,123,185,143,122,122,185,2,0,121,185,171,131,119,185,142,5,118,185,174,133,116,185,15,4,115,185,182,128,113,185,166,251,111,185,227,
116,110,185,114,236,108,185,86,98,107,185,148,214,105,185,47,73,104,185,43,186,102,185,141,41,101,185,89,151,99,185,147,3,98,185,62,110,96,185,95,215,94,185,250,62,93,185,19,165,91,185,174,9,90,185,208,108,88,185,125,206,86,185,184,46,85,185,133,141,83,185,234,234,81,185,234,70,80,185,138,161,78,185,204,250,76,185,183,82,75,185,78,169,73,185,148,254,71,185,144,82,70,185,67,165,68,185,180,246,66,185,229,70,65,185,220,149,63,185,157,227,61,185,43,48,60,185,140,123,58,185,195,197,56,185,212,14,55,185,
197,86,53,185,152,157,51,185,83,227,49,185,250,39,48,185,145,107,46,185,29,174,44,185,161,239,42,185,34,48,41,185,164,111,39,185,45,174,37,185,191,235,35,185,95,40,34,185,18,100,32,185,220,158,30,185,194,216,28,185,199,17,27,185,240,73,25,185,65,129,23,185,192,183,21,185,111,237,19,185,83,34,18,185,114,86,16,185,206,137,14,185,109,188,12,185,83,238,10,185,132,31,9,185,5,80,7,185,218,127,5,185,7,175,3,185,144,221,1,185,123,11,0,185,151,113,252,184,11,203,248,184,91,35,245,184,144,122,241,184,179,208,
237,184,205,37,234,184,230,121,230,184,7,205,226,184,57,31,223,184,132,112,219,184,241,192,215,184,138,16,212,184,86,95,208,184,95,173,204,184,172,250,200,184,72,71,197,184,58,147,193,184,140,222,189,184,69,41,186,184,111,115,182,184,19,189,178,184,56,6,175,184,233,78,171,184,44,151,167,184,12,223,163,184,145,38,160,184,195,109,156,184,171,180,152,184,82,251,148,184,193,65,145,184,255,135,141,184,22,206,137,184,14,20,134,184,240,89,130,184,137,63,125,184,40,203,117,184,206,86,110,184,140,226,102,
184,116,110,95,184,150,250,87,184,4,135,80,184,207,19,73,184,7,161,65,184,189,46,58,184,4,189,50,184,235,75,43,184,131,219,35,184,222,107,28,184,11,253,20,184,29,143,13,184,36,34,6,184,97,108,253,183,167,150,238,183,59,195,223,183,63,242,208,183,212,35,194,183,27,88,179,183,54,143,164,183,70,201,149,183,107,6,135,183,141,141,112,183,244,20,83,183,77,163,53,183,216,56,24,183,175,171,245,182,25,245,186,182,112,78,128,182,111,112,11,182,4,47,179,180,144,3,189,53,137,69,83,54,48,242,163,54,166,46,222,
54,211,43,12,55,88,54,41,55,163,54,70,55,116,44,99,55,197,11,128,55,212,123,142,55,71,230,156,55,255,74,171,55,219,169,185,55,190,2,200,55,135,85,214,55,24,162,228,55,81,232,242,55,10,148,0,56,161,176,7,56,222,201,14,56,178,223,21,56,13,242,28,56,224,0,36,56,28,12,43,56,179,19,50,56,148,23,57,56,177,23,64,56,251,19,71,56,99,12,78,56,218,0,85,56,82,241,91,56,187,221,98,56,7,198,105,56,39,170,112,56,12,138,119,56,169,101,126,56,119,158,130,56,231,7,134,56,29,111,137,56,17,212,140,56,189,54,144,56,26,
151,147,56,31,245,150,56,200,80,154,56,12,170,157,56,228,0,161,56,74,85,164,56,54,167,167,56,162,246,170,56,134,67,174,56,221,141,177,56,159,213,180,56,197,26,184,56,73,93,187,56,36,157,190,56,79,218,193,56,196,20,197,56,124,76,200,56,112,129,203,56,154,179,206,56,244,226,209,56,119,15,213,56,28,57,216,56,221,95,219,56,180,131,222,56,154,164,225,56,138,194,228,56,124,221,231,56,107,245,234,56,80,10,238,56,37,28,241,56,228,42,244,56,136,54,247,56,9,63,250,56,98,68,253,56,70,35,0,57,194,162,1,57,160,
32,3,57,222,156,4,57,122,23,6,57,111,144,7,57,188,7,9,57,94,125,10,57,81,241,11,57,147,99,13,57,33,212,14,57,247,66,16,57,21,176,17,57,118,27,19,57,23,133,20,57,247,236,21,57,19,83,23,57,103,183,24,57,241,25,26,57,175,122,27,57,157,217,28,57,186,54,30,57,2,146,31,57,116,235,32,57,12,67,34,57,200,152,35,57,165,236,36,57,162,62,38,57,187,142,39,57,238,220,40,57,56,41,42,57,152,115,43,57,11,188,44,57,143,2,46,57,32,71,47,57,189,137,48,57,100,202,49,57,18,9,51,57,197,69,52,57,123,128,53,57,49,185,54,
57,230,239,55,57,150,36,57,57,65,87,58,57,227,135,59,57,123,182,60,57,7,227,61,57,132,13,63,57,240,53,64,57,74,92,65,57,144,128,66,57,190,162,67,57,212,194,68,57,208,224,69,57,175,252,70,57,112,22,72,57,16,46,73,57,143,67,74,57,233,86,75,57,29,104,76,57,42,119,77,57,14,132,78,57,198,142,79,57,82,151,80,57,175,157,81,57,219,161,82,57,214,163,83,57,157,163,84,57,47,161,85,57,138,156,86,57,172,149,87,57,148,140,88,57,65,129,89,57,177,115,90,57,226,99,91,57,212,81,92,57,131,61,93,57,240,38,94,57,24,14,
95,57,251,242,95,57,151,213,96,57,234,181,97,57,243,147,98,57,178,111,99,57,36,73,100,57,72,32,101,57,30,245,101,57,163,199,102,57,215,151,103,57,185,101,104,57,72,49,105,57,130,250,105,57,102,193,106,57,243,133,107,57,40,72,108,57,5,8,109,57,135,197,109,57,175,128,110,57,122,57,111,57,233,239,111,57,251,163,112,57,173,85,113,57,0,5,114,57,243,177,114,57,132,92,115,57,180,4,116,57,129,170,116,57,234,77,117,57,239,238,117,57,143,141,118,57,201,41,119,57,157,195,119,57,10,91,120,57,15,240,120,57,172,
130,121,57,224,18,122,57,171,160,122,57,12,44,123,57,2,181,123,57,142,59,124,57,174,191,124,57,98,65,125,57,170,192,125,57,133,61,126,57,244,183,126,57,244,47,127,57,135,165,127,57,86,12,128,57,177,68,128,57,213,123,128,57,194,177,128,57,119,230,128,57,244,25,129,57,58,76,129,57,72,125,129,57,29,173,129,57,187,219,129,57,33,9,130,57,79,53,130,57,69,96,130,57,3,138,130,57,136,178,130,57,214,217,130,57,235,255,130,57,201,36,131,57,111,72,131,57,220,106,131,57,18,140,131,57,16,172,131,57,214,202,131,
57,101,232,131,57,188,4,132,57,220,31,132,57,197,57,132,57,118,82,132,57,241,105,132,57,53,128,132,57,66,149,132,57,25,169,132,57,185,187,132,57,36,205,132,57,88,221,132,57,87,236,132,57,33,250,132,57,182,6,133,57,21,18,133,57,64,28,133,57,55,37,133,57,250,44,133,57,137,51,133,57,229,56,133,57,13,61,133,57,3,64,133,57,198,65,133,57,88,66,133,57,183,65,133,57,229,63,133,57,227,60,133,57,176,56,133,57,76,51,133,57,185,44,133,57,247,36,133,57,5,28,133,57,229,17,133,57,152,6,133,57,28,250,132,57,116,
236,132,57,159,221,132,57,158,205,132,57,114,188,132,57,26,170,132,57,152,150,132,57,236,129,132,57,22,108,132,57,24,85,132,57,241,60,132,57,163,35,132,57,45,9,132,57,145,237,131,57,206,208,131,57,231,178,131,57,219,147,131,57,170,115,131,57,86,82,131,57,223,47,131,57,71,12,131,57,140,231,130,57,177,193,130,57,182,154,130,57,155,114,130,57,97,73,130,57,10,31,130,57,149,243,129,57,4,199,129,57,87,153,129,57,143,106,129,57,172,58,129,57,176,9,129,57,155,215,128,57,111,164,128,57,43,112,128,57,209,58,
128,57,97,4,128,57,186,153,127,57,137,40,127,57,51,181,126,57,184,63,126,57,26,200,125,57,92,78,125,57,126,210,124,57,131,84,124,57,108,212,123,57,60,82,123,57,243,205,122,57,149,71,122,57,34,191,121,57,157,52,121,57,7,168,120,57,98,25,120,57,177,136,119,57,245,245,118,57,49,97,118,57,101,202,117,57,148,49,117,57,193,150,116,57,237,249,115,57,26,91,115,57,74,186,114,57,127,23,114,57,188,114,113,57,2,204,112,57,84,35,112,57,179,120,111,57,34,204,110,57,163,29,110,57,57,109,109,57,228,186,108,57,168,
6,108,57,135,80,107,57,131,152,106,57,158,222,105,57,218,34,105,57,58,101,104,57,192,165,103,57,110,228,102,57,71,33,102,57,76,92,101,57,129,149,100,57,232,204,99,57,130,2,99,57,83,54,98,57,93,104,97,57,161,152,96,57,36,199,95,57,230,243,94,57,234,30,94,57,52,72,93,57,197,111,92,57,159,149,91,57,198,185,90,57,60,220,89,57,3,253,88,57,30,28,88,57,143,57,87,57,89,85,86,57,127,111,85,57,3,136,84,57,232,158,83,57,48,180,82,57,221,199,81,57,244,217,80,57,117,234,79,57,101,249,78,57,196,6,78,57,151,18,
77,57,224,28,76,57,161,37,75,57,221,44,74,57,152,50,73,57,211,54,72,57,145,57,71,57,213,58,70,57,162,58,69,57,251,56,68,57,226,53,67,57,90,49,66,57,103,43,65,57,10,36,64,57,70,27,63,57,31,17,62,57,151,5,61,57,177,248,59,57,112,234,58,57,215,218,57,57,232,201,56,57,167,183,55,57,22,164,54,57,56,143,53,57,16,121,52,57,162,97,51,57,239,72,50,57,251,46,49,57,201,19,48,57,92,247,46,57,182,217,45,57,219,186,44,57,205,154,43,57,144,121,42,57,39,87,41,57,148,51,40,57,218,14,39,57,253,232,37,57,255,193,36,
57,228,153,35,57,174,112,34,57,96,70,33,57,255,26,32,57,139,238,30,57,9,193,29,57,124,146,28,57,231,98,27,57,76,50,26,57,175,0,25,57,19,206,23,57,122,154,22,57,233,101,21,57,98,48,20,57,232,249,18,57,126,194,17,57,39,138,16,57,231,80,15,57,192,22,14,57,182,219,12,57,204,159,11,57,4,99,10,57,99,37,9,57,234,230,7,57,158,167,6,57,129,103,5,57,151,38,4,57,226,228,2,57,102,162,1,57,38,95,0,57,75,54,254,56,205,172,251,56,218,33,249,56,121,149,246,56,174,7,244,56,129,120,241,56,249,231,238,56,26,86,236,
56,236,194,233,56,118,46,231,56,188,152,228,56,198,1,226,56,155,105,223,56,64,208,220,56,187,53,218,56,20,154,215,56,80,253,212,56,117,95,210,56,140,192,207,56,152,32,205,56,162,127,202,56,175,221,199,56,197,58,197,56,236,150,194,56,41,242,191,56,131,76,189,56,0,166,186,56,167,254,183,56,125,86,181,56,138,173,178,56,212,3,176,56,96,89,173,56,54,174,170,56,92,2,168,56,216,85,165,56,176,168,162,56,235,250,159,56,144,76,157,56,164,157,154,56,46,238,151,56,53,62,149,56,190,141,146,56,208,220,143,56,113,
43,141,56,168,121,138,56,123,199,135,56,241,20,133,56,15,98,130,56,184,93,127,56,189,246,121,56,57,143,116,56,57,39,111,56,201,190,105,56,247,85,100,56,206,236,94,56,92,131,89,56,172,25,84,56,203,175,78,56,199,69,73,56,171,219,67,56,131,113,62,56,93,7,57,56,69,157,51,56,71,51,46,56,111,201,40,56,203,95,35,56,102,246,29,56,77,141,24,56,141,36,19,56,48,188,13,56,69,84,8,56,215,236,2,56,230,11,251,55,73,63,240,55,240,115,229,55,243,169,218,55,108,225,207,55,114,26,197,55,29,85,186,55,135,145,175,55,
199,207,164,55,245,15,154,55,41,82,143,55,125,150,132,55,13,186,115,55,190,75,94,55,61,226,72,55,185,125,51,55,97,30,30,55,102,196,8,55,236,223,230,54,132,66,188,54,240,176,145,54,31,87,78,54,2,203,242,53,2,55,18,53,154,189,64,181,57,209,4,182,254,86,89,182,253,223,150,182,187,5,193,182,91,28,235,182,193,145,10,183,106,141,31,183,250,128,52,183,69,108,73,183,28,79,94,183,81,41,115,183,92,253,131,183,146,97,142,183,52,193,152,183,43,28,163,183,96,114,173,183,191,195,183,183,48,16,194,183,157,87,204,
183,240,153,214,183,19,215,224,183,241,14,235,183,115,65,245,183,131,110,255,183,6,203,4,184,252,219,9,184,25,234,14,184,83,245,19,184,157,253,24,184,238,2,30,184,60,5,35,184,122,4,40,184,160,0,45,184,163,249,49,184,119,239,54,184,19,226,59,184,108,209,64,184,120,189,69,184,45,166,74,184,128,139,79,184,104,109,84,184,217,75,89,184,202,38,94,184,49,254,98,184,4,210,103,184,57,162,108,184,198,110,113,184,160,55,118,184,191,252,122,184,24,190,127,184,209,61,130,184,169,154,132,184,144,245,134,184,129,
78,137,184,119,165,139,184,109,250,141,184,94,77,144,184,71,158,146,184,33,237,148,184,233,57,151,184,154,132,153,184,47,205,155,184,164,19,158,184,244,87,160,184,26,154,162,184,19,218,164,184,216,23,167,184,103,83,169,184,187,140,171,184,207,195,173,184,159,248,175,184,38,43,178,184,96,91,180,184,73,137,182,184,221,180,184,184,23,222,186,184,243,4,189,184,109,41,191,184,129,75,193,184,42,107,195,184,100,136,197,184,44,163,199,184,126,187,201,184,84,209,203,184,172,228,205,184,129,245,207,184,207,
3,210,184,147,15,212,184,200,24,214,184,106,31,216,184,119,35,218,184,233,36,220,184,189,35,222,184,240,31,224,184,125,25,226,184,98,16,228,184,153,4,230,184,32,246,231,184,243,228,233,184,15,209,235,184,111,186,237,184,17,161,239,184,241,132,241,184,11,102,243,184,91,68,245,184,224,31,247,184,148,248,248,184,117,206,250,184,128,161,252,184,176,113,254,184,130,31,0,185,188,4,1,185,131,232,1,185,216,202,2,185,183,171,3,185,32,139,4,185,17,105,5,185,137,69,6,185,133,32,7,185,5,250,7,185,7,210,8,185,
137,168,9,185,138,125,10,185,9,81,11,185,4,35,12,185,122,243,12,185,105,194,13,185,208,143,14,185,174,91,15,185,1,38,16,185,200,238,16,185,2,182,17,185,173,123,18,185,200,63,19,185,82,2,20,185,74,195,20,185,174,130,21,185,125,64,22,185,182,252,22,185,88,183,23,185,98,112,24,185,210,39,25,185,167,221,25,185,225,145,26,185,125,68,27,185,124,245,27,185,219,164,28,185,154,82,29,185,184,254,29,185,52,169,30,185,13,82,31,185,66,249,31,185,209,158,32,185,186,66,33,185,252,228,33,185,150,133,34,185,135,36,
35,185,207,193,35,185,107,93,36,185,92,247,36,185,161,143,37,185,56,38,38,185,34,187,38,185,92,78,39,185,231,223,39,185,193,111,40,185,234,253,40,185,98,138,41,185,38,21,42,185,56,158,42,185,149,37,43,185,62,171,43,185,49,47,44,185,111,177,44,185,246,49,45,185,197,176,45,185,221,45,46,185,61,169,46,185,228,34,47,185,209,154,47,185,4,17,48,185,125,133,48,185,59,248,48,185,61,105,49,185,132,216,49,185,14,70,50,185,220,177,50,185,236,27,51,185,63,132,51,185,212,234,51,185,170,79,52,185,194,178,52,185,
27,20,53,185,181,115,53,185,143,209,53,185,169,45,54,185,3,136,54,185,157,224,54,185,118,55,55,185,143,140,55,185,230,223,55,185,124,49,56,185,81,129,56,185,100,207,56,185,182,27,57,185,70,102,57,185,20,175,57,185,32,246,57,185,106,59,58,185,243,126,58,185,184,192,58,185,188,0,59,185,254,62,59,185,126,123,59,185,59,182,59,185,54,239,59,185,112,38,60,185,231,91,60,185,157,143,60,185,145,193,60,185,195,241,60,185,52,32,61,185,227,76,61,185,210,119,61,185,255,160,61,185,107,200,61,185,23,238,61,185,
3,18,62,185,47,52,62,185,154,84,62,185,71,115,62,185,51,144,62,185,97,171,62,185,209,196,62,185,130,220,62,185,117,242,62,185,170,6,63,185,35,25,63,185,222,41,63,185,221,56,63,185,32,70,63,185,168,81,63,185,117,91,63,185,135,99,63,185,223,105,63,185,125,110,63,185,99,113,63,185,144,114,63,185,4,114,63,185,194,111,63,185,201,107,63,185,25,102,63,185,180,94,63,185,154,85,63,185,203,74,63,185,73,62,63,185,19,48,63,185,44,32,63,185,146,14,63,185,72,251,62,185,78,230,62,185,164,207,62,185,75,183,62,185,
68,157,62,185,144,129,62,185,48,100,62,185,36,69,62,185,109,36,62,185,13,2,62,185,3,222,61,185,81,184,61,185,248,144,61,185,248,103,61,185,83,61,61,185,10,17,61,185,28,227,60,185,140,179,60,185,90,130,60,185,136,79,60,185,21,27,60,185,4,229,59,185,85,173,59,185,10,116,59,185,34,57,59,185,160,252,58,185,133,190,58,185,209,126,58,185,133,61,58,185,163,250,57,185,44,182,57,185,33,112,57,185,132,40,57,185,84,223,56,185,148,148,56,185,69,72,56,185,103,250,55,185,252,170,55,185,6,90,55,185,133,7,55,185,
123,179,54,185,233,93,54,185,208,6,54,185,50,174,53,185,16,84,53,185,107,248,52,185,68,155,52,185,157,60,52,185,120,220,51,185,212,122,51,185,181,23,51,185,27,179,50,185,8,77,50,185,124,229,49,185,123,124,49,185,4,18,49,185,25,166,48,185,188,56,48,185,239,201,47,185,178,89,47,185,7,232,46,185,241,116,46,185,111,0,46,185,132,138,45,185,49,19,45,185,120,154,44,185,90,32,44,185,218,164,43,185,247,39,43,185,181,169,42,185,20,42,42,185,23,169,41,185,190,38,41,185,12,163,40,185,1,30,40,185,161,151,39,185,
236,15,39,185,228,134,38,185,138,252,37,185,225,112,37,185,234,227,36,185,167,85,36,185,25,198,35,185,67,53,35,185,37,163,34,185,194,15,34,185,27,123,33,185,51,229,32,185,10,78,32,185,163,181,31,185,0,28,31,185,34,129,30,185,11,229,29,185,189,71,29,185,57,169,28,185,130,9,28,185,153,104,27,185,129,198,26,185,58,35,26,185,200,126,25,185,43,217,24,185,102,50,24,185,122,138,23,185,106,225,22,185,55,55,22,185,227,139,21,185,113,223,20,185,225,49,20,185,55,131,19,185,115,211,18,185,152,34,18,185,169,112,
17,185,166,189,16,185,145,9,16,185,110,84,15,185,61,158,14,185,1,231,13,185,187,46,13,185,111,117,12,185,29,187,11,185,199,255,10,185,113,67,10,185,27,134,9,185,200,199,8,185,122,8,8,185,51,72,7,185,244,134,6,185,193,196,5,185,155,1,5,185,132,61,4,185,126,120,3,185,140,178,2,185,175,235,1,185,233,35,1,185,62,91,0,185,91,35,255,184,118,142,253,184,209,247,251,184,112,95,250,184,88,197,248,184,140,41,247,184,17,140,245,184,236,236,243,184,31,76,242,184,177,169,240,184,165,5,239,184,255,95,237,184,195,
184,235,184,247,15,234,184,159,101,232,184,190,185,230,184,89,12,229,184,117,93,227,184,22,173,225,184,64,251,223,184,247,71,222,184,65,147,220,184,33,221,218,184,156,37,217,184,183,108,215,184,117,178,213,184,219,246,211,184,238,57,210,184,179,123,208,184,44,188,206,184,96,251,204,184,82,57,203,184,7,118,201,184,132,177,199,184,204,235,197,184,229,36,196,184,211,92,194,184,154,147,192,184,63,201,190,184,199,253,188,184,53,49,187,184,143,99,185,184,216,148,183,184,23,197,181,184,78,244,179,184,130,
34,178,184,185,79,176,184,246,123,174,184,63,167,172,184,151,209,170,184,3,251,168,184,137,35,167,184,43,75,165,184,239,113,163,184,218,151,161,184,240,188,159,184,53,225,157,184,174,4,156,184,96,39,154,184,80,73,152,184,129,106,150,184,248,138,148,184,186,170,146,184,204,201,144,184,50,232,142,184,240,5,141,184,12,35,139,184,137,63,137,184,108,91,135,184,187,118,133,184,121,145,131,184,170,171,129,184,169,138,127,184,248,188,123,184,74,238,119,184,169,30,116,184,29,78,112,184,175,124,108,184,106,
170,104,184,85,215,100,184,122,3,97,184,227,46,93,184,151,89,89,184,161,131,85,184,9,173,81,184,216,213,77,184,24,254,73,184,209,37,70,184,12,77,66,184,211,115,62,184,47,154,58,184,40,192,54,184,200,229,50,184,24,11,47,184,32,48,43,184,234,84,39,184,126,121,35,184,230,157,31,184,42,194,27,184,84,230,23,184,108,10,20,184,124,46,16,184,140,82,12,184,165,118,8,184,208,154,4,184,22,191,0,184,0,199,249,183,45,16,242,183,197,89,234,183,218,163,226,183,125,238,218,183,191,57,211,183,180,133,203,183,107,
210,195,183,247,31,188,183,105,110,180,183,210,189,172,183,68,14,165,183,208,95,157,183,136,178,149,183,125,6,142,183,193,91,134,183,199,100,125,183,238,20,110,183,24,200,94,183,105,126,79,183,2,56,64,183,6,245,48,183,150,181,33,183,213,121,18,183,228,65,3,183,203,27,232,182,246,187,201,182,141,100,171,182,210,21,141,182,18,160,93,182,233,38,33,182,95,129,201,181,163,183,33,181,43,135,158,52,110,246,159,53,136,16,12,54,85,16,72,54,13,253,129,54,171,230,159,54,194,196,189,54,17,151,219,54,89,93,249,
54,172,139,11,55,102,98,26,55,188,50,41,55,140,252,55,55,184,191,70,55,31,124,85,55,162,49,100,55,33,224,114,55,190,195,128,55,202,19,136,55,37,96,143,55,191,168,150,55,137,237,157,55,115,46,165,55,110,107,172,55,106,164,179,55,88,217,186,55,41,10,194,55,206,54,201,55,55,95,208,55,85,131,215,55,26,163,222,55,118,190,229,55,91,213,236,55,185,231,243,55,130,245,250,55,83,255,0,56,140,129,4,56,101,1,8,56,213,126,11,56,215,249,14,56,98,114,18,56,111,232,21,56,248,91,25,56,245,204,28,56,95,59,32,56,47,
167,35,56,95,16,39,56,230,118,42,56,190,218,45,56,225,59,49,56,71,154,52,56,233,245,55,56,193,78,59,56,200,164,62,56,247,247,65,56,71,72,69,56,178,149,72,56,49,224,75,56,189,39,79,56,81,108,82,56,228,173,85,56,114,236,88,56,243,39,92,56,97,96,95,56,181,149,98,56,234,199,101,56,249,246,104,56,219,34,108,56,138,75,111,56,1,113,114,56,56,147,117,56,43,178,120,56,210,205,123,56,40,230,126,56,147,253,128,56,100,134,130,56,131,13,132,56,237,146,133,56,160,22,135,56,152,152,136,56,211,24,138,56,78,151,139,
56,6,20,141,56,248,142,142,56,33,8,144,56,127,127,145,56,14,245,146,56,204,104,148,56,183,218,149,56,203,74,151,56,6,185,152,56,101,37,154,56,230,143,155,56,133,248,156,56,65,95,158,56,22,196,159,56,2,39,161,56,3,136,162,56,22,231,163,56,56,68,165,56,104,159,166,56,161,248,167,56,227,79,169,56,43,165,170,56,118,248,171,56,193,73,173,56,11,153,174,56,82,230,175,56,146,49,177,56,202,122,178,56,246,193,179,56,22,7,181,56,39,74,182,56,38,139,183,56,18,202,184,56,232,6,186,56,166,65,187,56,73,122,188,
56,209,176,189,56,58,229,190,56,131,23,192,56,170,71,193,56,172,117,194,56,136,161,195,56,60,203,196,56,197,242,197,56,34,24,199,56,81,59,200,56,80,92,201,56,29,123,202,56,182,151,203,56,26,178,204,56,71,202,205,56,58,224,206,56,243,243,207,56,111,5,209,56,173,20,210,56,171,33,211,56,103,44,212,56,224,52,213,56,20,59,214,56,2,63,215,56,167,64,216,56,4,64,217,56,21,61,218,56,217,55,219,56,80,48,220,56,119,38,221,56,77,26,222,56,208,11,223,56,0,251,223,56,219,231,224,56,96,210,225,56,141,186,226,56,
96,160,227,56,218,131,228,56,248,100,229,56,185,67,230,56,28,32,231,56,32,250,231,56,196,209,232,56,6,167,233,56,230,121,234,56,98,74,235,56,121,24,236,56,43,228,236,56,118,173,237,56,89,116,238,56,211,56,239,56,228,250,239,56,138,186,240,56,197,119,241,56,147,50,242,56,245,234,242,56,232,160,243,56,108,84,244,56,129,5,245,56,37,180,245,56,88,96,246,56,25,10,247,56,104,177,247,56,68,86,248,56,171,248,248,56,159,152,249,56,29,54,250,56,37,209,250,56,183,105,251,56,211,255,251,56,119,147,252,56,164,
36,253,56,88,179,253,56,148,63,254,56,86,201,254,56,159,80,255,56,111,213,255,56,226,43,0,57,207,107,0,57,127,170,0,57,242,231,0,57,39,36,1,57,30,95,1,57,215,152,1,57,82,209,1,57,143,8,2,57,142,62,2,57,79,115,2,57,209,166,2,57,22,217,2,57,28,10,3,57,227,57,3,57,109,104,3,57,184,149,3,57,197,193,3,57,147,236,3,57,35,22,4,57,118,62,4,57,138,101,4,57,96,139,4,57,248,175,4,57,82,211,4,57,111,245,4,57,78,22,5,57,239,53,5,57,83,84,5,57,122,113,5,57,100,141,5,57,17,168,5,57,130,193,5,57,182,217,5,57,174,
240,5,57,106,6,6,57,234,26,6,57,46,46,6,57,55,64,6,57,5,81,6,57,153,96,6,57,242,110,6,57,16,124,6,57,245,135,6,57,160,146,6,57,18,156,6,57,75,164,6,57,76,171,6,57,20,177,6,57,165,181,6,57,254,184,6,57,32,187,6,57,12,188,6,57,193,187,6,57,64,186,6,57,138,183,6,57,159,179,6,57,128,174,6,57,44,168,6,57,165,160,6,57,235,151,6,57,255,141,6,57,224,130,6,57,144,118,6,57,15,105,6,57,93,90,6,57,123,74,6,57,106,57,6,57,42,39,6,57,188,19,6,57,32,255,5,57,88,233,5,57,98,210,5,57,65,186,5,57,245,160,5,57,126,
134,5,57,221,106,5,57,18,78,5,57,32,48,5,57,5,17,5,57,195,240,4,57,90,207,4,57,203,172,4,57,24,137,4,57,63,100,4,57,67,62,4,57,36,23,4,57,227,238,3,57,129,197,3,57,253,154,3,57,90,111,3,57,152,66,3,57,183,20,3,57,185,229,2,57,157,181,2,57,102,132,2,57,20,82,2,57,168,30,2,57,34,234,1,57,132,180,1,57,206,125,1,57,1,70,1,57,30,13,1,57,39,211,0,57,27,152,0,57,252,91,0,57,202,30,0,57,15,193,255,56,105,66,255,56,163,193,254,56,193,62,254,56,195,185,253,56,172,50,253,56,125,169,252,56,58,30,252,56,227,144,
251,56,122,1,251,56,3,112,250,56,126,220,249,56,237,70,249,56,84,175,248,56,179,21,248,56,14,122,247,56,101,220,246,56,188,60,246,56,20,155,245,56,112,247,244,56,209,81,244,56,58,170,243,56,173,0,243,56,45,85,242,56,187,167,241,56,90,248,240,56,12,71,240,56,211,147,239,56,177,222,238,56,170,39,238,56,191,110,237,56,242,179,236,56,70,247,235,56,190,56,235,56,91,120,234,56,32,182,233,56,15,242,232,56,44,44,232,56,119,100,231,56,244,154,230,56,166,207,229,56,141,2,229,56,174,51,228,56,11,99,227,56,165,
144,226,56,129,188,225,56,159,230,224,56,3,15,224,56,175,53,223,56,166,90,222,56,234,125,221,56,126,159,220,56,100,191,219,56,160,221,218,56,52,250,217,56,34,21,217,56,108,46,216,56,23,70,215,56,36,92,214,56,150,112,213,56,112,131,212,56,180,148,211,56,102,164,210,56,135,178,209,56,27,191,208,56,36,202,207,56,165,211,206,56,161,219,205,56,27,226,204,56,21,231,203,56,147,234,202,56,150,236,201,56,34,237,200,56,58,236,199,56,225,233,198,56,25,230,197,56,229,224,196,56,71,218,195,56,68,210,194,56,222,
200,193,56,23,190,192,56,243,177,191,56,117,164,190,56,158,149,189,56,115,133,188,56,246,115,187,56,43,97,186,56,19,77,185,56,179,55,184,56,12,33,183,56,35,9,182,56,249,239,180,56,146,213,179,56,242,185,178,56,26,157,177,56,14,127,176,56,209,95,175,56,101,63,174,56,207,29,173,56,17,251,171,56,46,215,170,56,41,178,169,56,4,140,168,56,196,100,167,56,108,60,166,56,253,18,165,56,124,232,163,56,235,188,162,56,78,144,161,56,167,98,160,56,250,51,159,56,74,4,158,56,154,211,156,56,236,161,155,56,69,111,154,
56,167,59,153,56,21,7,152,56,146,209,150,56,35,155,149,56,200,99,148,56,135,43,147,56,98,242,145,56,92,184,144,56,120,125,143,56,185,65,142,56,35,5,141,56,185,199,139,56,125,137,138,56,116,74,137,56,160,10,136,56,4,202,134,56,164,136,133,56,131,70,132,56,163,3,131,56,9,192,129,56,183,123,128,56,96,109,126,56,240,225,123,56,35,85,121,56,1,199,118,56,143,55,116,56,212,166,113,56,214,20,111,56,156,129,108,56,43,237,105,56,139,87,103,56,194,192,100,56,214,40,98,56,206,143,95,56,175,245,92,56,129,90,90,
56,74,190,87,56,16,33,85,56,218,130,82,56,173,227,79,56,145,67,77,56,140,162,74,56,164,0,72,56,223,93,69,56,69,186,66,56,219,21,64,56,168,112,61,56,178,202,58,56,0,36,56,56,152,124,53,56,128,212,50,56,191,43,48,56,91,130,45,56,91,216,42,56,196,45,40,56,158,130,37,56,239,214,34,56,189,42,32,56,14,126,29,56,233,208,26,56,84,35,24,56,85,117,21,56,244,198,18,56,53,24,16,56,32,105,13,56,187,185,10,56,12,10,8,56,26,90,5,56,234,169,2,56,8,243,255,55,217,145,250,55,86,48,245,55,139,206,239,55,133,108,234,
55,79,10,229,55,247,167,223,55,137,69,218,55,18,227,212,55,157,128,207,55,56,30,202,55,239,187,196,55,206,89,191,55,226,247,185,55,55,150,180,55,218,52,175,55,214,211,169,55,56,115,164,55,12,19,159,55,96,179,153,55,62,84,148,55,179,245,142,55,204,151,137,55,148,58,132,55,49,188,125,55,200,4,115,55,8,79,104,55,8,155,93,55,224,232,82,55,168,56,72,55,121,138,61,55,106,222,50,55,148,52,40,55,14,141,29,55,240,231,18,55,81,69,8,55,149,74,251,54,229,15,230,54,195,218,208,54,94,171,187,54,228,129,166,54,
133,94,145,54,221,130,120,54,160,85,78,54,175,53,36,54,208,70,244,53,76,62,160,53,24,165,24,53,34,119,111,179,150,87,54,181,244,188,174,181,62,23,1,182,216,191,42,182,236,87,84,182,32,223,125,182,141,170,147,182,193,92,168,182,254,5,189,182,24,166,209,182,226,60,230,182,49,202,250,182,236,166,7,183,213,227,17,183,190,27,28,183,146,78,38,183,58,124,48,183,160,164,58,183,176,199,68,183,84,229,78,183,117,253,88,183,0,16,99,183,222,28,109,183,250,35,119,183,159,146,128,183,76,144,133,183,248,138,138,
183,153,130,143,183,37,119,148,183,145,104,153,183,212,86,158,183,226,65,163,183,177,41,168,183,56,14,173,183,108,239,177,183,67,205,182,183,179,167,187,183,179,126,192,183,55,82,197,183,54,34,202,183,167,238,206,183,127,183,211,183,181,124,216,183,63,62,221,183,19,252,225,183,40,182,230,183,115,108,235,183,237,30,240,183,138,205,244,183,66,120,249,183,11,31,254,183,238,96,1,184,85,176,3,184,184,253,5,184,16,73,8,184,90,146,10,184,145,217,12,184,176,30,15,184,179,97,17,184,149,162,19,184,82,225,21,
184,230,29,24,184,76,88,26,184,128,144,28,184,125,198,30,184,64,250,32,184,195,43,35,184,3,91,37,184,251,135,39,184,167,178,41,184,3,219,43,184,11,1,46,184,187,36,48,184,14,70,50,184,0,101,52,184,142,129,54,184,180,155,56,184,109,179,58,184,181,200,60,184,136,219,62,184,228,235,64,184,194,249,66,184,33,5,69,184,252,13,71,184,79,20,73,184,22,24,75,184,78,25,77,184,243,23,79,184,2,20,81,184,118,13,83,184,76,4,85,184,128,248,86,184,16,234,88,184,246,216,90,184,49,197,92,184,187,174,94,184,147,149,96,
184,180,121,98,184,27,91,100,184,197,57,102,184,174,21,104,184,211,238,105,184,49,197,107,184,196,152,109,184,138,105,111,184,127,55,113,184,160,2,115,184,233,202,116,184,89,144,118,184,235,82,120,184,157,18,122,184,107,207,123,184,83,137,125,184,82,64,127,184,50,122,128,184,196,82,129,184,221,41,130,184,123,255,130,184,158,211,131,184,67,166,132,184,106,119,133,184,18,71,134,184,56,21,135,184,219,225,135,184,251,172,136,184,149,118,137,184,170,62,138,184,54,5,139,184,58,202,139,184,180,141,140,184,
162,79,141,184,4,16,142,184,217,206,142,184,30,140,143,184,212,71,144,184,248,1,145,184,138,186,145,184,137,113,146,184,244,38,147,184,201,218,147,184,8,141,148,184,175,61,149,184,190,236,149,184,51,154,150,184,13,70,151,184,76,240,151,184,239,152,152,184,244,63,153,184,91,229,153,184,35,137,154,184,75,43,155,184,209,203,155,184,182,106,156,184,249,7,157,184,151,163,157,184,146,61,158,184,231,213,158,184,150,108,159,184,159,1,160,184,1,149,160,184,186,38,161,184,203,182,161,184,50,69,162,184,238,
209,162,184,0,93,163,184,103,230,163,184,33,110,164,184,47,244,164,184,143,120,165,184,65,251,165,184,69,124,166,184,154,251,166,184,63,121,167,184,52,245,167,184,120,111,168,184,11,232,168,184,237,94,169,184,29,212,169,184,154,71,170,184,100,185,170,184,123,41,171,184,223,151,171,184,142,4,172,184,137,111,172,184,207,216,172,184,96,64,173,184,60,166,173,184,98,10,174,184,210,108,174,184,140,205,174,184,143,44,175,184,219,137,175,184,113,229,175,184,80,63,176,184,119,151,176,184,231,237,176,184,159,
66,177,184,159,149,177,184,232,230,177,184,120,54,178,184,80,132,178,184,113,208,178,184,217,26,179,184,137,99,179,184,128,170,179,184,191,239,179,184,70,51,180,184,21,117,180,184,44,181,180,184,138,243,180,184,48,48,181,184,31,107,181,184,85,164,181,184,212,219,181,184,155,17,182,184,170,69,182,184,2,120,182,184,163,168,182,184,141,215,182,184,192,4,183,184,60,48,183,184,3,90,183,184,19,130,183,184,109,168,183,184,18,205,183,184,2,240,183,184,60,17,184,184,195,48,184,184,148,78,184,184,179,106,184,
184,29,133,184,184,213,157,184,184,217,180,184,184,44,202,184,184,204,221,184,184,188,239,184,184,250,255,184,184,136,14,185,184,102,27,185,184,148,38,185,184,19,48,185,184,228,55,185,184,8,62,185,184,125,66,185,184,71,69,185,184,100,70,185,184,213,69,185,184,156,67,185,184,184,63,185,184,43,58,185,184,245,50,185,184,23,42,185,184,145,31,185,184,100,19,185,184,145,5,185,184,25,246,184,184,252,228,184,184,59,210,184,184,215,189,184,184,208,167,184,184,41,144,184,184,224,118,184,184,248,91,184,184,
113,63,184,184,75,33,184,184,136,1,184,184,41,224,183,184,46,189,183,184,153,152,183,184,106,114,183,184,163,74,183,184,67,33,183,184,77,246,182,184,193,201,182,184,160,155,182,184,235,107,182,184,164,58,182,184,203,7,182,184,97,211,181,184,103,157,181,184,223,101,181,184,201,44,181,184,39,242,180,184,249,181,180,184,65,120,180,184,0,57,180,184,56,248,179,184,232,181,179,184,19,114,179,184,185,44,179,184,220,229,178,184,125,157,178,184,158,83,178,184,62,8,178,184,97,187,177,184,6,109,177,184,47,29,
177,184,222,203,176,184,19,121,176,184,209,36,176,184,24,207,175,184,233,119,175,184,71,31,175,184,50,197,174,184,171,105,174,184,181,12,174,184,80,174,173,184,126,78,173,184,64,237,172,184,152,138,172,184,134,38,172,184,13,193,171,184,47,90,171,184,235,241,170,184,68,136,170,184,60,29,170,184,212,176,169,184,12,67,169,184,232,211,168,184,104,99,168,184,141,241,167,184,91,126,167,184,208,9,167,184,241,147,166,184,189,28,166,184,56,164,165,184,97,42,165,184,59,175,164,184,200,50,164,184,8,181,163,
184,254,53,163,184,172,181,162,184,18,52,162,184,51,177,161,184,16,45,161,184,171,167,160,184,6,33,160,184,34,153,159,184,1,16,159,184,164,133,158,184,14,250,157,184,64,109,157,184,60,223,156,184,4,80,156,184,153,191,155,184,252,45,155,184,49,155,154,184,56,7,154,184,20,114,153,184,198,219,152,184,80,68,152,184,179,171,151,184,243,17,151,184,15,119,150,184,11,219,149,184,232,61,149,184,168,159,148,184,77,0,148,184,217,95,147,184,76,190,146,184,171,27,146,184,245,119,145,184,46,211,144,184,87,45,144,
184,113,134,143,184,128,222,142,184,132,53,142,184,128,139,141,184,118,224,140,184,103,52,140,184,86,135,139,184,68,217,138,184,51,42,138,184,38,122,137,184,30,201,136,184,29,23,136,184,38,100,135,184,58,176,134,184,91,251,133,184,140,69,133,184,205,142,132,184,34,215,131,184,140,30,131,184],"i8",4,y.a+71680);
Q([14,101,130,184,168,170,129,184,94,239,128,184,50,51,128,184,73,236,126,184,113,112,125,184,225,242,123,184,155,115,122,184,165,242,120,184,2,112,119,184,182,235,117,184,198,101,116,184,54,222,114,184,9,85,113,184,69,202,111,184,237,61,110,184,5,176,108,184,146,32,107,184,152,143,105,184,27,253,103,184,31,105,102,184,169,211,100,184,188,60,99,184,93,164,97,184,145,10,96,184,91,111,94,184,191,210,92,184,195,52,91,184,106,149,89,184,184,244,87,184,178,82,86,184,92,175,84,184,187,10,83,184,210,100,
81,184,167,189,79,184,60,21,78,184,152,107,76,184,189,192,74,184,176,20,73,184,118,103,71,184,19,185,69,184,140,9,68,184,228,88,66,184,32,167,64,184,68,244,62,184,85,64,61,184,87,139,59,184,78,213,57,184,63,30,56,184,46,102,54,184,32,173,52,184,25,243,50,184,28,56,49,184,48,124,47,184,87,191,45,184,151,1,44,184,243,66,42,184,113,131,40,184,20,195,38,184,225,1,37,184,221,63,35,184,11,125,33,184,112,185,31,184,17,245,29,184,241,47,28,184,22,106,26,184,131,163,24,184,62,220,22,184,74,20,21,184,171,75,
19,184,103,130,17,184,130,184,15,184,255,237,13,184,228,34,12,184,53,87,10,184,246,138,8,184,43,190,6,184,217,240,4,184,5,35,3,184,178,84,1,184,203,11,255,183,70,109,251,183,223,205,247,183,159,45,244,183,141,140,240,183,179,234,236,183,26,72,233,183,203,164,229,183,205,0,226,183,42,92,222,183,234,182,218,183,22,17,215,183,183,106,211,183,214,195,207,183,123,28,204,183,174,116,200,183,121,204,196,183,228,35,193,183,248,122,189,183,189,209,185,183,59,40,182,183,125,126,178,183,138,212,174,183,106,
42,171,183,38,128,167,183,200,213,163,183,87,43,160,183,219,128,156,183,95,214,152,183,233,43,149,183,130,129,145,183,52,215,141,183,6,45,138,183,0,131,134,183,45,217,130,183,37,95,126,183,117,12,119,183,90,186,111,183,229,104,104,183,38,24,97,183,47,200,89,183,16,121,82,183,217,42,75,183,156,221,67,183,104,145,60,183,79,70,53,183,96,252,45,183,173,179,38,183,70,108,31,183,58,38,24,183,156,225,16,183,122,158,9,183,229,92,2,183,219,57,246,182,71,189,231,182,47,68,217,182,179,206,202,182,242,92,188,
182,13,239,173,182,37,133,159,182,88,31,145,182,199,189,130,182,36,193,104,182,176,15,76,182,114,103,47,182,168,200,18,182,35,103,236,181,218,80,179,181,227,157,116,181,206,195,2,181,98,163,136,179,150,222,192,52,97,198,81,53,240,119,161,53,105,245,217,53,145,45,9,54,80,84,37,54,182,110,65,54,133,124,93,54,129,125,121,54,184,184,138,54,9,172,152,54,152,152,166,54,69,126,180,54,245,92,194,54,136,52,208,54,226,4,222,54,230,205,235,54,117,143,249,54,186,164,3,55,226,125,10,55,37,83,17,55,117,36,24,55,
194,241,30,55,255,186,37,55,30,128,44,55,16,65,51,55,200,253,57,55,54,182,64,55,79,106,71,55,2,26,78,55,68,197,84,55,5,108,91,55,56,14,98,55,208,171,104,55,191,68,111,55,248,216,117,55,108,104,124,55,135,121,129,55,106,188,132,55,214,252,135,55,197,58,139,55,50,118,142,55,20,175,145,55,103,229,148,55,34,25,152,55,65,74,155,55,188,120,158,55,142,164,161,55,175,205,164,55,25,244,167,55,199,23,171,55,178,56,174,55,211,86,177,55,38,114,180,55,162,138,183,55,67,160,186,55,3,179,189,55,219,194,192,55,197,
207,195,55,187,217,198,55,185,224,201,55,182,228,204,55,175,229,207,55,156,227,210,55,121,222,213,55,63,214,216,55,232,202,219,55,112,188,222,55,209,170,225,55,4,150,228,55,5,126,231,55,205,98,234,55,88,68,237,55,160,34,240,55,159,253,242,55,81,213,245,55,175,169,248,55,181,122,251,55,93,72,254,55,81,137,0,56,192,236,1,56,120,78,3,56,119,174,4,56,186,12,6,56,63,105,7,56,4,196,8,56,5,29,10,56,65,116,11,56,181,201,12,56,95,29,14,56,60,111,15,56,73,191,16,56,133,13,18,56,238,89,19,56,128,164,20,56,58,
237,21,56,25,52,23,56,27,121,24,56,62,188,25,56,128,253,26,56,223,60,28,56,87,122,29,56,232,181,30,56,143,239,31,56,74,39,33,56,23,93,34,56,243,144,35,56,221,194,36,56,212,242,37,56,211,32,39,56,219,76,40,56,233,118,41,56,250,158,42,56,13,197,43,56,33,233,44,56,51,11,46,56,65,43,47,56,74,73,48,56,75,101,49,56,67,127,50,56,49,151,51,56,18,173,52,56,229,192,53,56,168,210,54,56,89,226,55,56,247,239,56,56,128,251,57,56,242,4,59,56,76,12,60,56,141,17,61,56,178,20,62,56,186,21,63,56,164,20,64,56,111,17,
65,56,24,12,66,56,158,4,67,56,0,251,67,56,61,239,68,56,83,225,69,56,65,209,70,56,5,191,71,56,158,170,72,56,11,148,73,56,74,123,74,56,91,96,75,56,60,67,76,56,236,35,77,56,105,2,78,56,179,222,78,56,201,184,79,56,169,144,80,56,82,102,81,56,195,57,82,56,251,10,83,56,249,217,83,56,188,166,84,56,67,113,85,56,142,57,86,56,154,255,86,56,104,195,87,56,246,132,88,56,68,68,89,56,80,1,90,56,26,188,90,56,161,116,91,56,228,42,92,56,227,222,92,56,156,144,93,56,15,64,94,56,60,237,94,56,33,152,95,56,190,64,96,56,
18,231,96,56,29,139,97,56,222,44,98,56,85,204,98,56,128,105,99,56,96,4,100,56,244,156,100,56,60,51,101,56,54,199,101,56,227,88,102,56,67,232,102,56,83,117,103,56,22,0,104,56,137,136,104,56,173,14,105,56,130,146,105,56,7,20,106,56,59,147,106,56,31,16,107,56,179,138,107,56,245,2,108,56,231,120,108,56,136,236,108,56,215,93,109,56,213,204,109,56,129,57,110,56,220,163,110,56,229,11,111,56,157,113,111,56,2,213,111,56,23,54,112,56,217,148,112,56,74,241,112,56,106,75,113,56,56,163,113,56,181,248,113,56,225,
75,114,56,188,156,114,56,70,235,114,56,128,55,115,56,105,129,115,56,2,201,115,56,75,14,116,56,69,81,116,56,240,145,116,56,75,208,116,56,88,12,117,56,23,70,117,56,136,125,117,56,171,178,117,56,130,229,117,56,12,22,118,56,74,68,118,56,60,112,118,56,228,153,118,56,64,193,118,56,83,230,118,56,29,9,119,56,157,41,119,56,213,71,119,56,198,99,119,56,112,125,119,56,212,148,119,56,242,169,119,56,203,188,119,56,96,205,119,56,178,219,119,56,193,231,119,56,142,241,119,56,26,249,119,56,102,254,119,56,115,1,120,
56,65,2,120,56,209,0,120,56,37,253,119,56,61,247,119,56,27,239,119,56,190,228,119,56,40,216,119,56,91,201,119,56,87,184,119,56,29,165,119,56,174,143,119,56,11,120,119,56,54,94,119,56,47,66,119,56,248,35,119,56,146,3,119,56,253,224,118,56,60,188,118,56,79,149,118,56,55,108,118,56,247,64,118,56,142,19,118,56,254,227,117,56,73,178,117,56,112,126,117,56,117,72,117,56,87,16,117,56,26,214,116,56,190,153,116,56,68,91,116,56,175,26,116,56,255,215,115,56,55,147,115,56,86,76,115,56,96,3,115,56,84,184,114,56,
54,107,114,56,7,28,114,56,199,202,113,56,121,119,113,56,29,34,113,56,183,202,112,56,71,113,112,56,207,21,112,56,80,184,111,56,205,88,111,56,71,247,110,56,191,147,110,56,56,46,110,56,179,198,109,56,49,93,109,56,181,241,108,56,65,132,108,56,213,20,108,56,116,163,107,56,32,48,107,56,219,186,106,56,166,67,106,56,131,202,105,56,117,79,105,56,124,210,104,56,155,83,104,56,212,210,103,56,41,80,103,56,156,203,102,56,46,69,102,56,226,188,101,56,185,50,101,56,182,166,100,56,219,24,100,56,41,137,99,56,163,247,
98,56,75,100,98,56,35,207,97,56,44,56,97,56,106,159,96,56,222,4,96,56,138,104,95,56,112,202,94,56,147,42,94,56,245,136,93,56,151,229,92,56,125,64,92,56,168,153,91,56,26,241,90,56,214,70,90,56,222,154,89,56,52,237,88,56,218,61,88,56,212,140,87,56,34,218,86,56,199,37,86,56,198,111,85,56,33,184,84,56,219,254,83,56,244,67,83,56,113,135,82,56,83,201,81,56,157,9,81,56,81,72,80,56,113,133,79,56,0,193,78,56,1,251,77,56,117,51,77,56,95,106,76,56,194,159,75,56,160,211,74,56,251,5,74,56,215,54,73,56,53,102,
72,56,24,148,71,56,130,192,70,56,118,235,69,56,247,20,69,56,7,61,68,56,169,99,67,56,223,136,66,56,171,172,65,56,17,207,64,56,19,240,63,56,179,15,63,56,244,45,62,56,217,74,61,56,101,102,60,56,153,128,59,56,121,153,58,56,7,177,57,56,69,199,56,56,56,220,55,56,224,239,54,56,65,2,54,56,94,19,53,56,57,35,52,56,213,49,51,56,53,63,50,56,90,75,49,56,73,86,48,56,3,96,47,56,140,104,46,56,230,111,45,56,20,118,44,56,25,123,43,56,247,126,42,56,177,129,41,56,75,131,40,56,198,131,39,56,37,131,38,56,108,129,37,56,
157,126,36,56,186,122,35,56,200,117,34,56,200,111,33,56,189,104,32,56,170,96,31,56,146,87,30,56,120,77,29,56,94,66,28,56,72,54,27,56,56,41,26,56,49,27,25,56,54,12,24,56,74,252,22,56,112,235,21,56,170,217,20,56,251,198,19,56,103,179,18,56,239,158,17,56,152,137,16,56,99,115,15,56,85,92,14,56,111,68,13,56,180,43,12,56,40,18,11,56,205,247,9,56,166,220,8,56,183,192,7,56,1,164,6,56,137,134,5,56,80,104,4,56,90,73,3,56,169,41,2,56,65,9,1,56,74,208,255,55,174,140,253,55,180,71,251,55,99,1,249,55,192,185,246,
55,209,112,244,55,157,38,242,55,40,219,239,55,121,142,237,55,149,64,235,55,131,241,232,55,72,161,230,55,234,79,228,55,111,253,225,55,221,169,223,55,58,85,221,55,139,255,218,55,215,168,216,55,35,81,214,55,117,248,211,55,212,158,209,55,68,68,207,55,204,232,204,55,113,140,202,55,58,47,200,55,45,209,197,55,78,114,195,55,165,18,193,55,55,178,190,55,9,81,188,55,34,239,185,55,136,140,183,55,63,41,181,55,79,197,178,55,189,96,176,55,143,251,173,55,202,149,171,55,117,47,169,55,149,200,166,55,48,97,164,55,77,
249,161,55,239,144,159,55,31,40,157,55,225,190,154,55,58,85,152,55,50,235,149,55,206,128,147,55,19,22,145,55,7,171,142,55,176,63,140,55,20,212,137,55,56,104,135,55,35,252,132,55,218,143,130,55,98,35,128,55,132,109,123,55,254,147,118,55,62,186,113,55,79,224,108,55,60,6,104,55,17,44,99,55,217,81,94,55,160,119,89,55,113,157,84,55,87,195,79,55,93,233,74,55,143,15,70,55,248,53,65,55,162,92,60,55,154,131,55,55,235,170,50,55,159,210,45,55,194,250,40,55,95,35,36,55,128,76,31,55,50,118,26,55,126,160,21,55,
113,203,16,55,21,247,11,55,116,35,7,55,155,80,2,55,39,253,250,54,210,90,241,54,76,186,231,54,170,27,222,54,4,127,212,54,109,228,202,54,253,75,193,54,199,181,183,54,226,33,174,54,99,144,164,54,96,1,155,54,237,116,145,54,31,235,135,54,25,200,124,54,148,191,105,54,217,188,86,54,17,192,67,54,103,201,48,54,5,217,29,54,19,239,10,54,119,23,240,53,79,94,202,53,1,179,164,53,188,43,126,53,113,14,51,53,134,29,208,52,172,106,233,51,215,84,54,180,123,112,240,180,32,187,66,181,159,142,134,181,252,174,171,181,86,
190,208,181,96,188,245,181,100,84,13,182,161,193,31,182,191,37,50,182,151,128,68,182,2,210,86,182,218,25,105,182,247,87,123,182,26,198,134,182,53,219,143,182,57,235,152,182,19,246,161,182,177,251,170,182,255,251,179,182,236,246,188,182,99,236,197,182,82,220,206,182,168,198,215,182,81,171,224,182,59,138,233,182,84,99,242,182,137,54,251,182,229,1,2,183,129,101,6,183,16,198,10,183,138,35,15,183,229,125,19,183,25,213,23,183,28,41,28,183,230,121,32,183,111,199,36,183,173,17,41,183,152,88,45,183,39,156,
49,183,83,220,53,183,17,25,58,183,91,82,62,183,38,136,66,183,108,186,70,183,36,233,74,183,69,20,79,183,200,59,83,183,163,95,87,183,208,127,91,183,69,156,95,183,252,180,99,183,235,201,103,183,11,219,107,183,84,232,111,183,190,241,115,183,66,247,119,183,215,248,123,183,119,246,127,183,12,248,129,183,218,242,131,183,162,235,133,183,95,226,135,183,15,215,137,183,173,201,139,183,53,186,141,183,165,168,143,183,248,148,145,183,43,127,147,183,58,103,149,183,34,77,151,183,223,48,153,183,110,18,155,183,203,
241,156,183,242,206,158,183,225,169,160,183,148,130,162,183,8,89,164,183,56,45,166,183,35,255,167,183,196,206,169,183,25,156,171,183,29,103,173,183,207,47,175,183,42,246,176,183,44,186,178,183,209,123,180,183,22,59,182,183,249,247,183,183,117,178,185,183,137,106,187,183,49,32,189,183,107,211,190,183,50,132,192,183,133,50,194,183,96,222,195,183,193,135,197,183,164,46,199,183,8,211,200,183,232,116,202,183,67,20,204,183,21,177,205,183,93,75,207,183,23,227,208,183,64,120,210,183,215,10,212,183,216,154,
213,183,64,40,215,183,14,179,216,183,64,59,218,183,209,192,219,183,192,67,221,183,11,196,222,183,175,65,224,183,170,188,225,183,249,52,227,183,154,170,228,183,140,29,230,183,202,141,231,183,84,251,232,183,40,102,234,183,66,206,235,183,162,51,237,183,68,150,238,183,39,246,239,183,72,83,241,183,166,173,242,183,63,5,244,183,16,90,245,183,25,172,246,183,86,251,247,183,198,71,249,183,103,145,250,183,56,216,251,183,54,28,253,183,96,93,254,183,180,155,255,183,152,107,0,184,233,7,1,184,205,162,1,184,67,60,
2,184,74,212,2,184,224,106,3,184,6,0,4,184,187,147,4,184,253,37,5,184,205,182,5,184,41,70,6,184,17,212,6,184,132,96,7,184,129,235,7,184,9,117,8,184,25,253,8,184,178,131,9,184,210,8,10,184,122,140,10,184,169,14,11,184,94,143,11,184,152,14,12,184,88,140,12,184,156,8,13,184,101,131,13,184,176,252,13,184,127,116,14,184,209,234,14,184,165,95,15,184,250,210,15,184,209,68,16,184,41,181,16,184,1,36,17,184,90,145,17,184,50,253,17,184,138,103,18,184,97,208,18,184,183,55,19,184,140,157,19,184,222,1,20,184,175,
100,20,184,253,197,20,184,201,37,21,184,18,132,21,184,216,224,21,184,27,60,22,184,218,149,22,184,22,238,22,184,206,68,23,184,3,154,23,184,179,237,23,184,223,63,24,184,135,144,24,184,171,223,24,184,74,45,25,184,101,121,25,184,251,195,25,184,13,13,26,184,155,84,26,184,163,154,26,184,40,223,26,184,39,34,27,184,163,99,27,184,154,163,27,184,12,226,27,184,250,30,28,184,100,90,28,184,74,148,28,184,172,204,28,184,138,3,29,184,229,56,29,184,188,108,29,184,15,159,29,184,224,207,29,184,45,255,29,184,248,44,
30,184,64,89,30,184,6,132,30,184,74,173,30,184,12,213,30,184,77,251,30,184,13,32,31,184,75,67,31,184,9,101,31,184,71,133,31,184,5,164,31,184,68,193,31,184,3,221,31,184,68,247,31,184,7,16,32,184,75,39,32,184,18,61,32,184,92,81,32,184,41,100,32,184,123,117,32,184,80,133,32,184,171,147,32,184,138,160,32,184,240,171,32,184,220,181,32,184,79,190,32,184,73,197,32,184,204,202,32,184,215,206,32,184,108,209,32,184,138,210,32,184,51,210,32,184,102,208,32,184,38,205,32,184,114,200,32,184,75,194,32,184,177,186,
32,184,166,177,32,184,43,167,32,184,63,155,32,184,227,141,32,184,25,127,32,184,225,110,32,184,60,93,32,184,43,74,32,184,174,53,32,184,198,31,32,184,116,8,32,184,185,239,31,184,149,213,31,184,10,186,31,184,24,157,31,184,193,126,31,184,5,95,31,184,228,61,31,184,97,27,31,184,123,247,30,184,52,210,30,184,141,171,30,184,135,131,30,184,34,90,30,184,95,47,30,184,64,3,30,184,198,213,29,184,241,166,29,184,195,118,29,184,60,69,29,184,94,18,29,184,41,222,28,184,159,168,28,184,193,113,28,184,144,57,28,184,12,
0,28,184,56,197,27,184,20,137,27,184,160,75,27,184,224,12,27,184,211,204,26,184,122,139,26,184,215,72,26,184,235,4,26,184,184,191,25,184,62,121,25,184,126,49,25,184,122,232,24,184,51,158,24,184,170,82,24,184,224,5,24,184,215,183,23,184,144,104,23,184,13,24,23,184,77,198,22,184,84,115,22,184,33,31,22,184,183,201,21,184,22,115,21,184,64,27,21,184,55,194,20,184,251,103,20,184,142,12,20,184,242,175,19,184,39,82,19,184,47,243,18,184,11,147,18,184,189,49,18,184,71,207,17,184,169,107,17,184,229,6,17,184,
253,160,16,184,241,57,16,184,196,209,15,184,118,104,15,184,10,254,14,184,128,146,14,184,218,37,14,184,26,184,13,184,65,73,13,184,81,217,12,184,74,104,12,184,47,246,11,184,2,131,11,184,194,14,11,184,115,153,10,184,22,35,10,184,172,171,9,184,54,51,9,184,183,185,8,184,48,63,8,184,162,195,7,184,16,71,7,184,121,201,6,184,225,74,6,184,73,203,5,184,178,74,5,184,30,201,4,184,143,70,4,184,6,195,3,184,133,62,3,184,14,185,2,184,161,50,2,184,65,171,1,184,240,34,1,184,175,153,0,184,127,15,0,184,199,8,255,183,
185,240,253,183,217,214,252,183,42,187,251,183,175,157,250,183,108,126,249,183,99,93,248,183,154,58,247,183,18,22,246,183,208,239,244,183,215,199,243,183,42,158,242,183,204,114,241,183,194,69,240,183,15,23,239,183,182,230,237,183,187,180,236,183,33,129,235,183,235,75,234,183,30,21,233,183,189,220,231,183,203,162,230,183,76,103,229,183,68,42,228,183,182,235,226,183,165,171,225,183,22,106,224,183,11,39,223,183,137,226,221,183,147,156,220,183,45,85,219,183,90,12,218,183,29,194,216,183,124,118,215,183,
120,41,214,183,23,219,212,183,91,139,211,183,72,58,210,183,226,231,208,183,45,148,207,183,44,63,206,183,227,232,204,183,85,145,203,183,134,56,202,183,123,222,200,183,54,131,199,183,188,38,198,183,16,201,196,183,54,106,195,183,49,10,194,183,6,169,192,183,184,70,191,183,74,227,189,183,193,126,188,183,33,25,187,183,108,178,185,183,168,74,184,183,214,225,182,183,253,119,181,183,30,13,180,183,62,161,178,183,97,52,177,183,138,198,175,183,189,87,174,183,254,231,172,183,81,119,171,183,186,5,170,183,60,147,
168,183,218,31,167,183,154,171,165,183,127,54,164,183,140,192,162,183,197,73,161,183,46,210,159,183,203,89,158,183,159,224,156,183,176,102,155,183,255,235,153,183,145,112,152,183,106,244,150,183,142,119,149,183,0,250,147,183,196,123,146,183,223,252,144,183,83,125,143,183,37,253,141,183,88,124,140,183,240,250,138,183,241,120,137,183,95,246,135,183,62,115,134,183,145,239,132,183,92,107,131,183,163,230,129,183,106,97,128,183,104,183,125,183,11,171,122,183,196,157,119,183,155,143,116,183,151,128,113,
183,192,112,110,183,28,96,107,183,181,78,104,183,145,60,101,183,184,41,98,183,50,22,95,183,5,2,92,183,57,237,88,183,215,215,85,183,228,193,82,183,106,171,79,183,111,148,76,183,250,124,73,183,20,101,70,183,196,76,67,183,16,52,64,183,1,27,61,183,158,1,58,183,238,231,54,183,249,205,51,183,199,179,48,183,93,153,45,183,197,126,42,183,4,100,39,183,35,73,36,183,41,46,33,183,29,19,30,183,7,248,26,183,237,220,23,183,216,193,20,183,206,166,17,183,214,139,14,183,248,112,11,183,60,86,8,183,167,59,5,183,66,33,
2,183,39,14,254,182,70,218,247,182,239,166,241,182,48,116,235,182,24,66,229,182,180,16,223,182,20,224,216,182,68,176,210,182,84,129,204,182,80,83,198,182,73,38,192,182,74,250,185,182,99,207,179,182,162,165,173,182,19,125,167,182,198,85,161,182,200,47,155,182,39,11,149,182,240,231,142,182,50,198,136,182,249,165,130,182,170,14,121,182,164,212,108,182,252,157,96,182,204,106,84,182,49,59,72,182,69,15,60,182,35,231,47,182,229,194,35,182,167,162,23,182,131,134,11,182,39,221,254,181,230,181,230,181,119,
151,206,181,16,130,182,181,228,117,158,181,41,115,134,181,34,244,92,181,161,21,45,181,112,150,250,180,152,42,155,180,35,162,239,179,198,187,140,51,11,27,130,52,248,218,224,52,248,182,31,53,148,233,78,53,237,4,126,53,78,132,150,53,33,250,173,53,188,99,197,53,239,192,220,53,136,17,244,53,171,170,5,54,20,70,17,54,231,218,28,54,12,105,40,54,107,240,51,54,235,112,63,54,118,234,74,54,242,92,86,54,73,200,97,54,99,44,109,54,40,137,120,54,65,239,129,54,44,150,135,54,74,57,141,54,144,216,146,54,241,115,152,
54,99,11,158,54,219,158,163,54,76,46,169,54,173,185,174,54,241,64,180,54,13,196,185,54,247,66,191,54,163,189,196,54,7,52,202,54,24,166,207,54,202,19,213,54,20,125,218,54,234,225,223,54,66,66,229,54,18,158,234,54,78,245,239,54,236,71,245,54,226,149,250,54,38,223,255,54,215,145,2,55,183,49,5,55,46,207,7,55,56,106,10,55,208,2,13,55,240,152,15,55,147,44,18,55,182,189,20,55,81,76,23,55,98,216,25,55,227,97,28,55,207,232,30,55,33,109,33,55,214,238,35,55,231,109,38,55,81,234,40,55,15,100,43,55,28,219,45,
55,116,79,48,55,17,193,50,55,241,47,53,55,14,156,55,55,99,5,58,55,237,107,60,55,167,207,62,55,141,48,65,55,154,142,67,55,202,233,69,55,25,66,72,55,131,151,74,55,4,234,76,55,151,57,79,55,56,134,81,55,228,207,83,55,150,22,86,55,75,90,88,55,254,154,90,55,171,216,92,55,79,19,95,55,230,74,97,55,108,127,99,55,221,176,101,55,53,223,103,55,113,10,106,55,141,50,108,55,134,87,110,55,88,121,112,55,254,151,114,55,119,179,116,55,190,203,118,55,208,224,120,55,169,242,122,55,70,1,125,55,164,12,127,55,96,138,128,
55,202,140,129,55,144,141,130,55,176,140,131,55,40,138,132,55,247,133,133,55,27,128,134,55,147,120,135,55,93,111,136,55,119,100,137,55,224,87,138,55,151,73,139,55,155,57,140,55,233,39,141,55,128,20,142,55,96,255,142,55,134,232,143,55,242,207,144,55,162,181,145,55,148,153,146,55,200,123,147,55,59,92,148,55,238,58,149,55,222,23,150,55,11,243,150,55,115,204,151,55,21,164,152,55,240,121,153,55,3,78,154,55,76,32,155,55,203,240,155,55,126,191,156,55,100,140,157,55,125,87,158,55,199,32,159,55,66,232,159,
55,235,173,160,55,195,113,161,55,200,51,162,55,250,243,162,55,87,178,163,55,223,110,164,55,144,41,165,55,106,226,165,55,108,153,166,55,149,78,167,55,229,1,168,55,90,179,168,55,244,98,169,55,178,16,170,55,147,188,170,55,151,102,171,55,189,14,172,55,4,181,172,55,107,89,173,55,242,251,173,55,153,156,174,55,94,59,175,55,65,216,175,55,66,115,176,55,96,12,177,55,154,163,177,55,240,56,178,55,98,204,178,55,238,93,179,55,149,237,179,55,86,123,180,55,48,7,181,55,36,145,181,55,49,25,182,55,86,159,182,55,147,
35,183,55,232,165,183,55,85,38,184,55,216,164,184,55,115,33,185,55,36,156,185,55,236,20,186,55,202,139,186,55,190,0,187,55,199,115,187,55,231,228,187,55,27,84,188,55,102,193,188,55,197,44,189,55,58,150,189,55,195,253,189,55,98,99,190,55,22,199,190,55,222,40,191,55,188,136,191,55,174,230,191,55,182,66,192,55,210,156,192,55,4,245,192,55,75,75,193,55,167,159,193,55,25,242,193,55,160,66,194,55,61,145,194,55,239,221,194,55,184,40,195,55,151,113,195,55,141,184,195,55,153,253,195,55,188,64,196,55,247,129,
196,55,73,193,196,55,179,254,196,55,53,58,197,55,207,115,197,55,131,171,197,55,80,225,197,55,54,21,198,55,55,71,198,55,82,119,198,55,136,165,198,55,217,209,198,55,70,252,198,55,208,36,199,55,119,75,199,55,58,112,199,55,28,147,199,55,29,180,199,55,60,211,199,55,124,240,199,55,219,11,200,55,92,37,200,55,254,60,200,55,194,82,200,55,169,102,200,55,180,120,200,55,227,136,200,55,55,151,200,55,177,163,200,55,81,174,200,55,25,183,200,55,8,190,200,55,33,195,200,55,99,198,200,55,208,199,200,55,104,199,200,
55,45,197,200,55,30,193,200,55,62,187,200,55,140,179,200,55,10,170,200,55,185,158,200,55,154,145,200,55,173,130,200,55,244,113,200,55,112,95,200,55,34,75,200,55,10,53,200,55,42,29,200,55,131,3,200,55,21,232,199,55,227,202,199,55,237,171,199,55,52,139,199,55,185,104,199,55,126,68,199,55,131,30,199,55,202,246,198,55,84,205,198,55,35,162,198,55,54,117,198,55,145,70,198,55,51,22,198,55,30,228,197,55,84,176,197,55,214,122,197,55,164,67,197,55,193,10,197,55,45,208,196,55,234,147,196,55,250,85,196,55,93,
22,196,55,21,213,195,55,36,146,195,55,138,77,195,55,74,7,195,55,100,191,194,55,219,117,194,55,175,42,194,55,226,221,193,55,117,143,193,55,107,63,193,55,196,237,192,55,130,154,192,55,166,69,192,55,50,239,191,55,41,151,191,55,138,61,191,55,88,226,190,55,148,133,190,55,64,39,190,55,94,199,189,55,239,101,189,55,244,2,189,55,112,158,188,55,101,56,188,55,210,208,187,55,188,103,187,55,34,253,186,55,7,145,186,55,109,35,186,55,85,180,185,55,192,67,185,55,178,209,184,55,43,94,184,55,45,233,183,55,186,114,183,
55,212,250,182,55,124,129,182,55,181,6,182,55,128,138,181,55,223,12,181,55,211,141,180,55,96,13,180,55,133,139,179,55,71,8,179,55,165,131,178,55,162,253,177,55,65,118,177,55,130,237,176,55,105,99,176,55,246,215,175,55,43,75,175,55,11,189,174,55,152,45,174,55,211,156,173,55,191,10,173,55,93,119,172,55,175,226,171,55,184,76,171,55,121,181,170,55,244,28,170,55,44,131,169,55,35,232,168,55,217,75,168,55,82,174,167,55,144,15,167,55,148,111,166,55,97,206,165,55,248,43,165,55,92,136,164,55,143,227,163,55,
147,61,163,55,106,150,162,55,22,238,161,55,153,68,161,55,245,153,160,55,45,238,159,55,66,65,159,55,55,147,158,55,14,228,157,55,201,51,157,55,106,130,156,55,244,207,155,55,103,28,155,55,200,103,154,55,23,178,153,55,87,251,152,55,139,67,152,55,180,138,151,55,212,208,150,55,238,21,150,55,4,90,149,55,25,157,148,55,45,223,147,55,69,32,147,55,97,96,146,55,133,159,145,55,177,221,144,55,234,26,144,55,48,87,143,55,135,146,142,55,239,204,141,55,109,6,141,55,1,63,140,55,175,118,139,55,120,173,138,55,95,227,
137,55,102,24,137,55,143,76,136,55,220,127,135,55,81,178,134,55,239,227,133,55,184,20,133,55,176,68,132,55,215,115,131,55,49,162,130,55,192,207,129,55,133,252,128,55,132,40,128,55,126,167,126,55,112,252,124,55,227,79,123,55,219,161,121,55,93,242,119,55,110,65,118,55,18,143,116,55,79,219,114,55,41,38,113,55,164,111,111,55,197,183,109,55,145,254,107,55,13,68,106,55,62,136,104,55,39,203,102,55,206,12,101,55,56,77,99,55,105,140,97,55,102,202,95,55,52,7,94,55,215,66,92,55,84,125,90,55,176,182,88,55,240,
238,86,55,24,38,85,55,46,92,83,55,53,145,81,55,50,197,79,55,43,248,77,55,36,42,76,55,34,91,74,55,41,139,72,55,63,186,70,55,103,232,68,55,168,21,67,55,4,66,65,55,131,109,63,55,38,152,61,55,245,193,59,55,243,234,57,55,38,19,56,55,145,58,54,55,58,97,52,55,37,135,50,55,87,172,48,55,213,208,46,55,164,244,44,55,200,23,43,55,69,58,41,55,34,92,39,55,98,125,37,55,10,158,35,55,31,190,33,55,165,221,31,55,162,252,29,55,25,27,28,55,16,57,26,55,139,86,24,55,144,115,22,55,34,144,20,55,70,172,18,55,1,200,16,55,88,
227,14,55,79,254,12,55,235,24,11,55,49,51,9,55,37,77,7,55,204,102,5,55,42,128,3,55,68,153,1,55,63,100,255,54,128,149,251,54,85,198,247,54,199,246,243,54,223,38,240,54,167,86,236,54,39,134,232,54,105,181,228,54,118,228,224,54,87,19,221,54,21,66,217,54,185,112,213,54,76,159,209,54,215,205,205,54,99,252,201,54,250,42,198,54,164,89,194,54,106,136,190,54,86,183,186,54,111,230,182,54,192,21,179,54,80,69,175,54,41,117,171,54,84,165,167,54,217,213,163,54,194,6,160,54,23,56,156,54,224,105,152,54,39,156,148,
54,245,206,144,54,81,2,141,54,70,54,137,54,219,106,133,54,25,160,129,54,16,172,123,54,100,25,116,54,62,136,108,54,175,248,100,54,199,106,93,54,153,222,85,54,53,84,78,54,171,203,70,54,13,69,63,54,108,192,55,54,216,61,48,54,98,189,40,54,27,63,33,54,20,195,25,54,92,73,18,54,4,210,10,54,30,93,3,54,113,213,247,53,201,245,232,53,102,27,218,53,102,70,203,53,235,118,188,53,22,173,173,53,5,233,158,53,217,42,144,53,178,114,129,53,95,129,101,53,227,41,72,53,47,223,42,53,129,161,13,53,51,226,224,52,105,156,166,
52,72,228,88,52,117,143,201,51,213,189,113,178,139,197,2,180,89,52,118,180,171,179,180,180,199,46,238,180,132,197,19,181,250,99,48,181,139,242,76,181,252,112,105,181,136,239,130,181,70,30,145,181,155,68,159,181,106,98,173,181,149,119,187,181,0,132,201,181,142,135,215,181,34,130,229,181,159,115,243,181,245,173,0,182,114,157,7,182,58,136,14,182,62,110,21,182,113,79,28,182,196,43,35,182,41,3,42,182,148,213,48,182,246,162,55,182,66,107,62,182,107,46,69,182,98,236,75,182,27,165,82,182,136,88,89,182,156,
6,96,182,74,175,102,182,133,82,109,182,64,240,115,182,110,136,122,182,129,141,128,182,248,211,131,182,150,23,135,182,83,88,138,182,43,150,141,182,22,209,144,182,14,9,148,182,14,62,151,182,15,112,154,182,12,159,157,182,253,202,160,182,222,243,163,182,168,25,167,182,85,60,170,182,224,91,173,182,67,120,176,182,119,145,179,182,120,167,182,182,64,186,185,182,200,201,188,182,11,214,191,182,4,223,194,182,173,228,197,182,1,231,200,182,250,229,203,182,147,225,206,182,198,217,209,182,143,206,212,182,231,191,
215,182,202,173,218,182,51,152,221,182,27,127,224,182,127,98,227,182,89,66,230,182,164,30,233,182,92,247,235,182,122,204,238,182,251,157,241,182,217,107,244,182,16,54,247,182,154,252,249,182,116,191,252,182,153,126,255,182,1,29,1,183,215,120,2,183,203,210,3,183,219,42,5,183,5,129,6,183,71,213,7,183,159,39,9,183,9,120,10,183,133,198,11,183,16,19,13,183,168,93,14,183,74,166,15,183,246,236,16,183,168,49,18,183,96,116,19,183,26,181,20,183,213,243,21,183,143,48,23,183,70,107,24,183,248,163,25,183,163,
218,26,183,70,15,28,183,223,65,29,183,107,114,30,183,233,160,31,183,87,205,32,183,180,247,33,183,254,31,35,183,51,70,36,183,81,106,37,183,88,140,38,183,68,172,39,183,21,202,40,183,201,229,41,183,94,255,42,183,212,22,44,183,39,44,45,183,88,63,46,183,100,80,47,183,74,95,48,183,9,108,49,183,159,118,50,183,11,127,51,183,75,133,52,183,95,137,53,183,68,139,54,183,250,138,55,183,128,136,56,183,211,131,57,183,244,124,58,183,224,115,59,183,151,104,60,183,23,91,61,183,95,75,62,183,111,57,63,183,69,37,64,183,
223,14,65,183,62,246,65,183,96,219,66,183,68,190,67,183,233,158,68,183,79,125,69,183,115,89,70,183,86,51,71,183,247,10,72,183,84,224,72,183,109,179,73,183,65,132,74,183,207,82,75,183,23,31,76,183,23,233,76,183,208,176,77,183,64,118,78,183,103,57,79,183,68,250,79,183,214,184,80,183,30,117,81,183,25,47,82,183,201,230,82,183,43,156,83,183,65,79,84,183,8,0,85,183,130,174,85,183,172,90,86,183,136,4,87,183,21,172,87,183,81,81,88,183,61,244,88,183,217,148,89,183,36,51,90,183,30,207,90,183,199,104,91,183,
30,0,92,183,35,149,92,183,215,39,93,183,56,184,93,183,71,70,94,183,4,210,94,183,110,91,95,183,133,226,95,183,74,103,96,183,189,233,96,183,220,105,97,183,169,231,97,183,35,99,98,183,75,220,98,183,32,83,99,183,162,199,99,183,210,57,100,183,176,169,100,183,60,23,101,183,118,130,101,183,95,235,101,183,246,81,102,183,60,182,102,183,49,24,103,183,213,119,103,183,41,213,103,183,45,48,104,183,225,136,104,183,70,223,104,183,92,51,105,183,35,133,105,183,156,212,105,183,200,33,106,183,167,108,106,183,57,181,
106,183,127,251,106,183,121,63,107,183,40,129,107,183,141,192,107,183,168,253,107,183,121,56,108,183,2,113,108,183,67,167,108,183,61,219,108,183,240,12,109,183,93,60,109,183,133,105,109,183,105,148,109,183,9,189,109,183,102,227,109,183,129,7,110,183,91,41,110,183,245,72,110,183,79,102,110,183,106,129,110,183,72,154,110,183,234,176,110,183,79,197,110,183,122,215,110,183,107,231,110,183,35,245,110,183,163,0,111,183,237,9,111,183,0,17,111,183,224,21,111,183,139,24,111,183,5,25,111,183,77,23,111,183,
101,19,111,183,78,13,111,183,9,5,111,183,152,250,110,183,252,237,110,183,53,223,110,183,70,206,110,183,47,187,110,183,242,165,110,183,144,142,110,183,10,117,110,183,99,89,110,183,154,59,110,183,178,27,110,183,172,249,109,183,137,213,109,183,75,175,109,183,243,134,109,183,131,92,109,183,252,47,109,183,96,1,109,183,176,208,108,183,238,157,108,183,27,105,108,183,57,50,108,183,73,249,107,183,77,190,107,183,71,129,107,183,57,66,107,183,35,1,107,183,8,190,106,183,233,120,106,183,200,49,106,183,167,232,
105,183,135,157,105,183,107,80,105,183,83,1,105,183,66,176,104,183,57,93,104,183,59,8,104,183,73,177,103,183,100,88,103,183,143,253,102,183,204,160,102,183,29,66,102,183,131,225,101,183,0,127,101,183,150,26,101,183,71,180,100,183,21,76,100,183,3,226,99,183,17,118,99,183,66,8,99,183,152,152,98,183,21,39,98,183,187,179,97,183,140,62,97,183,139,199,96,183,184,78,96,183,22,212,95,183,168,87,95,183,111,217,94,183,110,89,94,183,166,215,93,183,26,84,93,183,204,206,92,183,190,71,92,183,243,190,91,183,108,
52,91,183,43,168,90,183,51,26,90,183,134,138,89,183,39,249,88,183,23,102,88,183,89,209,87,183,239,58,87,183,219,162,86,183,32,9,86,183,192,109,85,183,189,208,84,183,26,50,84,183,217,145,83,183,252,239,82,183,133,76,82,183,119,167,81,183,213,0,81,183,161,88,80,183,220,174,79,183,138,3,79,183,173,86,78,183,71,168,77,183,91,248,76,183,235,70,76,183,250,147,75,183,138,223,74,183,158,41,74,183,55,114,73,183,89,185,72,183,6,255,71,183,65,67,71,183,12,134,70,183,105,199,69,183,91,7,69,183,229,69,68,183,
9,131,67,183,202,190,66,183,42,249,65,183,44,50,65,183,211,105,64,183,32,160,63,183,23,213,62,183,186,8,62,183,12,59,61,183,16,108,60,183,199,155,59,183,53,202,58,183,92,247,57,183,64,35,57,183,225,77,56,183,68,119,55,183,107,159,54,183,89,198,53,183,15,236,52,183,146,16,52,183,226,51,51,183,5,86,50,183,251,118,49,183,200,150,48,183,110,181,47,183,240,210,46,183,81,239,45,183,147,10,45,183,185,36,44,183,199,61,43,183,190,85,42,183,161,108,41,183,116,130,40,183,56,151,39,183,241,170,38,183,162,189,
37,183,76,207,36,183,244,223,35,183,155,239,34,183,69,254,33,183,243,11,33,183,170,24,32,183,108,36,31,183,59,47,30,183,26,57,29,183,13,66,28,183,21,74,27,183,54,81,26,183,115,87,25,183,206,92,24,183,74,97,23,183,234,100,22,183,177,103,21,183,161,105,20,183,189,106,19,183,9,107,18,183,135,106,17,183,57,105,16,183,35,103,15,183,72,100,14,183,170,96,13,183,76,92,12,183,48,87,11,183,91,81,10,183,206,74,9,183,140,67,8,183,153,59,7,183,247,50,6,183,168,41,5,183,177,31,4,183,18,21,3,183,209,9,2,183,238,
253,0,183,218,226,255,182,163,200,253,182,58,173,251,182,167,144,249,182,239,114,247,182,22,84,245,182,36,52,243,182,29,19,241,182,8,241,238,182,234,205,236,182,200,169,234,182,168,132,232,182,145,94,230,182,135,55,228,182,144,15,226,182,178,230,223,182,242,188,221,182,86,146,219,182,229,102,217,182,162,58,215,182,148,13,213,182,193,223,210,182,46,177,208,182,225,129,206,182,224,81,204,182,47,33,202,182,212,239,199,182,214,189,197,182,58,139,195,182,5,88,193,182,61,36,191,182,231,239,188,182,9,187,
186,182,169,133,184,182,203,79,182,182,119,25,180,182,176,226,177,182,125,171,175,182,227,115,173,182,232,59,171,182,145,3,169,182,228,202,166,182,229,145,164,182,156,88,162,182,12,31,160,182,60,229,157,182,49,171,155,182,240,112,153,182,127,54,151,182,227,251,148,182,34,193,146,182,65,134,144,182,69,75,142,182,52,16,140,182,19,213,137,182,232,153,135,182,183,94,133,182,135,35,131,182,92,232,128,182,120,90,125,182,88,228,120,182,99,110,116,182,163,248,111,182,35,131,107,182,237,13,103,182,12,153,
98,182,138,36,94,182,115,176,89,182,207,60,85,182,169,201,80,182,13,87,76,182,3,229,71,182,151,115,67,182,210,2,63,182,192,146,58,182,105,35,54,182,217,180,49,182,26,71,45,182,52,218,40,182,52,110,36,182,34,3,32,182,9,153,27,182,243,47,23,182,233,199,18,182,246,96,14,182,36,251,9,182,124,150,5,182,8,51,1,182,165,161,249,181,202,223,240,181,146,32,232,181,16,100,223,181,89,170,214,181,126,243,205,181,149,63,197,181,175,142,188,181,224,224,179,181,58,54,171,181,210,142,162,181,185,234,153,181,2,74,
145,181,193,172,136,181,7,19,128,181,208,249,110,181,236,212,93,181,134,183,76,181,196,161,59,181,202,147,42,181,188,141,25,181,191,143,8,181,238,51,239,180,16,89,205,180,42,143,171,180,134,214,137,180,211,94,80,180,54,52,13,180,132,91,148,179,132,128,233,177,228,193,109,51,85,14,252,51,134,119,64,52,129,96,129,52,139,113,162,52,157,110,195,52,115,87,228,52,229,149,2,53,175,245,18,53,246,74,35,53,154,149,51,53,121,213,67,53,115,10,84,53,102,52,100,53,50,83,116,53,92,51,130,53,106,55,138,53,182,53,
146,53,45,46,154,53,194,32,162,53,99,13,170,53,2,244,177,53,142,212,185,53,249,174,193,53,50,131,201,53,44,81,209,53,213,24,217,53,33,218,224,53,254,148,232,53,95,73,240,53,53,247,247,53,113,158,255,53,130,159,3,54,112,108,7,54,252,53,11,54,29,252,14,54,205,190,18,54,5,126,22,54,190,57,26,54,241,241,29,54,151,166,33,54,169,87,37,54,32,5,41,54,245,174,44,54,35,85,48,54,161,247,51,54,106,150,55,54,118,49,59,54,192,200,62,54,65,92,66,54,241,235,69,54,204,119,73,54,203,255,76,54,231,131,80,54,26,4,84,
54,94,128,87,54,173,248,90,54,0,109,94,54,82,221,97,54,157,73,101,54,219,177,104,54,5,22,108,54,23,118,111,54,10,210,114,54,216,41,118,54,125,125,121,54,241,204,124,54,24,12,128,54,155,175,129,54,253,80,131,54,60,240,132,54,86,141,134,54,71,40,136,54,14,193,137,54,167,87,139,54,16,236,140,54,71,126,142,54,73,14,144,54,19,156,145,54,163,39,147,54,247,176,148,54,11,56,150,54,223,188,151,54,111,63,153,54,184,191,154,54,186,61,156,54,113,185,157,54,219,50,159,54,246,169,160,54,192,30,162,54,54,145,163,
54,86,1,165,54,31,111,166,54,142,218,167,54,161,67,169,54,86,170,170,54,172,14,172,54,159,112,173,54,46,208,174,54,88,45,176,54,25,136,177,54,113,224,178,54,94,54,180,54,221,137,181,54,237,218,182,54,140,41,184,54,184,117,185,54,112,191,186,54,178,6,188,54,125,75,189,54,206,141,190,54,163,205,191,54,253,10,193,54,216,69,194,54,51,126,195,54,13,180,196,54,101,231,197,54,57,24,199,54,135,70,200,54,78,114,201,54,140,155,202,54,65,194,203,54,108,230,204,54,9,8,206,54,26,39,207,54,156,67,208,54,141,93,
209,54,238,116,210,54,188,137,211,54,247,155,212,54,157,171,213,54,174,184,214,54,40,195,215,54,11,203,216,54,85,208,217,54,5,211,218,54,27,211,219,54,149,208,220,54,115,203,221,54,180,195,222,54,86,185,223,54,90,172,224,54,190,156,225,54,130,138,226,54,165,117,227,54,38,94,228,54,4,68,229,54,64,39,230,54,215,7,231,54,203,229,231,54,25,193,232,54,194,153,233,54,197,111,234,54,34,67,235,54,216,19,236,54,230,225,236,54,77,173,237,54,11,118,238,54,33,60,239,54,142,255,239,54,82,192,240,54,109,126,241,
54,222,57,242,54,165,242,242,54,194,168,243,54,53,92,244,54,253,12,245,54,27,187,245,54,142,102,246,54,87,15,247,54,116,181,247,54,231,88,248,54,176,249,248,54,205,151,249,54,64,51,250,54,8,204,250,54,37,98,251,54,153,245,251,54,98,134,252,54,129,20,253,54,246,159,253,54,193,40,254,54,227,174,254,54,92,50,255,54,44,179,255,54,170,24,0,55,106,86,0,55,214,146,0,55,238,205,0,55,179,7,1,55,37,64,1,55,67,119,1,55,15,173,1,55,136,225,1,55,176,20,2,55,133,70,2,55,8,119,2,55,59,166,2,55,28,212,2,55,173,0,
3,55,237,43,3,55,221,85,3,55,126,126,3,55,208,165,3,55,210,203,3,55,135,240,3,55,237,19,4,55,5,54,4,55,209,86,4,55,80,118,4,55,130,148,4,55,105,177,4,55,4,205,4,55,85,231,4,55,91,0,5,55,24,24,5,55,139,46,5,55,182,67,5,55,152,87,5,55,51,106,5,55,135,123,5,55,148,139,5,55,92,154,5,55,222,167,5,55,27,180,5,55,21,191,5,55,203,200,5,55,62,209,5,55,112,216,5,55,96,222,5,55,15,227,5,55,126,230,5,55,173,232,5,55,158,233,5,55,82,233,5,55,199,231,5,55,1,229,5,55,255,224,5,55,193,219,5,55,74,213,5,55,153,205,
5,55,176,196,5,55,142,186,5,55,54,175,5,55,168,162,5,55,228,148,5,55,235,133,5,55,191,117,5,55,96,100,5,55,207,81,5,55,13,62,5,55,27,41,5,55,250,18,5,55,170,251,4,55,45,227,4,55,131,201,4,55,173,174,4,55,173,146,4,55,131,117,4,55,48,87,4,55,181,55,4,55,20,23,4,55,76,245,3,55,96,210,3,55,80,174,3,55,29,137,3,55,200,98,3,55,83,59,3,55,189,18,3,55,9,233,2,55,55,190,2,55,73,146,2,55],"i8",4,y.a+81920);
Q([63,101,2,55,26,55,2,55,221,7,2,55,134,215,1,55,25,166,1,55,150,115,1,55,253,63,1,55,81,11,1,55,146,213,0,55,193,158,0,55,225,102,0,55,240,45,0,55,228,231,255,54,205,113,255,54,159,249,254,54,92,127,254,54,6,3,254,54,160,132,253,54,43,4,253,54,172,129,252,54,35,253,251,54,147,118,251,54,255,237,250,54,106,99,250,54,213,214,249,54,68,72,249,54,184,183,248,54,53,37,248,54,189,144,247,54,82,250,246,54,248,97,246,54,176,199,245,54,125,43,245,54,98,141,244,54,98,237,243,54,126,75,243,54,187,167,242,
54,25,2,242,54,157,90,241,54,73,177,240,54,31,6,240,54,34,89,239,54,85,170,238,54,187,249,237,54,86,71,237,54,42,147,236,54,56,221,235,54,131,37,235,54,15,108,234,54,223,176,233,54,244,243,232,54,82,53,232,54,252,116,231,54,244,178,230,54,61,239,229,54,219,41,229,54,208,98,228,54,30,154,227,54,201,207,226,54,212,3,226,54,66,54,225,54,21,103,224,54,80,150,223,54,247,195,222,54,11,240,221,54,145,26,221,54,139,67,220,54,252,106,219,54,232,144,218,54,80,181,217,54,56,216,216,54,163,249,215,54,148,25,
215,54,13,56,214,54,19,85,213,54,168,112,212,54,207,138,211,54,139,163,210,54,222,186,209,54,205,208,208,54,90,229,207,54,136,248,206,54,91,10,206,54,213,26,205,54,249,41,204,54,202,55,203,54,77,68,202,54,130,79,201,54,111,89,200,54,21,98,199,54,120,105,198,54,155,111,197,54,130,116,196,54,46,120,195,54,164,122,194,54,231,123,193,54,249,123,192,54,222,122,191,54,153,120,190,54,44,117,189,54,156,112,188,54,236,106,187,54,30,100,186,54,53,92,185,54,53,83,184,54,34,73,183,54,253,61,182,54,203,49,181,
54,142,36,180,54,74,22,179,54,1,7,178,54,184,246,176,54,113,229,175,54,47,211,174,54,245,191,173,54,200,171,172,54,169,150,171,54,157,128,170,54,165,105,169,54,199,81,168,54,4,57,167,54,95,31,166,54,221,4,165,54,128,233,163,54,76,205,162,54,67,176,161,54,106,146,160,54,194,115,159,54,79,84,158,54,21,52,157,54,23,19,156,54,87,241,154,54,218,206,153,54,162,171,152,54,178,135,151,54,14,99,150,54,184,61,149,54,181,23,148,54,7,241,146,54,178,201,145,54,184,161,144,54,28,121,143,54,227,79,142,54,15,38,
141,54,164,251,139,54,164,208,138,54,18,165,137,54,243,120,136,54,73,76,135,54,23,31,134,54,96,241,132,54,40,195,131,54,114,148,130,54,65,101,129,54,151,53,128,54,243,10,126,54,212,169,123,54,217,71,121,54,6,229,118,54,100,129,116,54,247,28,114,54,199,183,111,54,218,81,109,54,53,235,106,54,224,131,104,54,223,27,102,54,59,179,99,54,248,73,97,54,29,224,94,54,177,117,92,54,185,10,90,54,59,159,87,54,63,51,85,54,201,198,82,54,225,89,80,54,140,236,77,54,208,126,75,54,180,16,73,54,62,162,70,54,116,51,68,
54,91,196,65,54,251,84,63,54,89,229,60,54,123,117,58,54,103,5,56,54,35,149,53,54,182,36,51,54,37,180,48,54,118,67,46,54,176,210,43,54,215,97,41,54,243,240,38,54,10,128,36,54,32,15,34,54,61,158,31,54,101,45,29,54,159,188,26,54,241,75,24,54,96,219,21,54,243,106,19,54,175,250,16,54,154,138,14,54,186,26,12,54,21,171,9,54,176,59,7,54,145,204,4,54,190,93,2,54,122,222,255,53,38,2,251,53,140,38,246,53,183,75,241,53,179,113,236,53,139,152,231,53,74,192,226,53,252,232,221,53,170,18,217,53,98,61,212,53,45,105,
207,53,23,150,202,53,43,196,197,53,115,243,192,53,251,35,188,53,206,85,183,53,246,136,178,53,126,189,173,53,113,243,168,53,219,42,164,53,196,99,159,53,57,158,154,53,68,218,149,53,238,23,145,53,68,87,140,53,79,152,135,53,26,219,130,53,95,63,124,53,51,204,114,53,197,92,105,53,41,241,95,53,116,137,86,53,186,37,77,53,17,198,67,53,139,106,58,53,61,19,49,53,59,192,39,53,154,113,30,53,108,39,21,53,198,225,11,53,188,160,2,53,192,200,242,52,142,89,224,52,7,244,205,52,83,152,187,52,152,70,169,52,252,254,150,
52,165,193,132,52,115,29,101,52,188,204,64,52,114,145,28,52,191,215,240,51,155,184,168,51,28,140,65,51,72,5,72,50,4,92,186,178,190,0,108,179,225,58,189,179,251,34,2,180,137,144,37,180,210,229,72,180,144,34,108,180,62,163,135,180,169,40,153,180,102,161,170,180,82,13,188,180,75,108,205,180,47,190,222,180,221,2,240,180,25,157,0,181,6,50,9,181,38,192,17,181,104,71,26,181,188,199,34,181,16,65,43,181,86,179,51,181,125,30,60,181,117,130,68,181,46,223,76,181,152,52,85,181,164,130,93,181,66,201,101,181,100,
8,110,181,248,63,118,181,241,111,126,181,32,76,131,181,106,92,135,181,208,104,139,181,74,113,143,181,209,117,147,181,94,118,151,181,234,114,155,181,109,107,159,181,224,95,163,181,60,80,167,181,123,60,171,181,148,36,175,181,131,8,179,181,63,232,182,181,193,195,186,181,4,155,190,181,1,110,194,181,176,60,198,181,12,7,202,181,14,205,205,181,175,142,209,181,233,75,213,181,183,4,217,181,17,185,220,181,242,104,224,181,83,20,228,181,46,187,231,181,125,93,235,181,59,251,238,181,98,148,242,181,235,40,246,181,
209,184,249,181,14,68,253,181,78,101,0,182,60,38,2,182,204,228,3,182,253,160,5,182,204,90,7,182,54,18,9,182,57,199,10,182,209,121,12,182,252,41,14,182,184,215,15,182,3,131,17,182,217,43,19,182,56,210,20,182,30,118,22,182,137,23,24,182,117,182,25,182,225,82,27,182,203,236,28,182,47,132,30,182,12,25,32,182,96,171,33,182,40,59,35,182,99,200,36,182,13,83,38,182,38,219,39,182,170,96,41,182,152,227,42,182,238,99,44,182,170,225,45,182,202,92,47,182,76,213,48,182,46,75,50,182,110,190,51,182,10,47,53,182,
1,157,54,182,81,8,56,182,248,112,57,182,244,214,58,182,68,58,60,182,230,154,61,182,217,248,62,182,26,84,64,182,168,172,65,182,130,2,67,182,167,85,68,182,20,166,69,182,200,243,70,182,194,62,72,182,1,135,73,182,131,204,74,182,71,15,76,182,75,79,77,182,142,140,78,182,16,199,79,182,206,254,80,182,200,51,82,182,253,101,83,182,107,149,84,182,17,194,85,182,239,235,86,182,2,19,88,182,76,55,89,182,201,88,90,182,122,119,91,182,93,147,92,182,114,172,93,182,183,194,94,182,44,214,95,182,209,230,96,182,164,244,
97,182,164,255,98,182,210,7,100,182,44,13,101,182,177,15,102,182,97,15,103,182,60,12,104,182,65,6,105,182,111,253,105,182,198,241,106,182,69,227,107,182,236,209,108,182,187,189,109,182,177,166,110,182,206,140,111,182,17,112,112,182,122,80,113,182,10,46,114,182,191,8,115,182,153,224,115,182,153,181,116,182,190,135,117,182,8,87,118,182,119,35,119,182,11,237,119,182,195,179,120,182,160,119,121,182,163,56,122,182,202,246,122,182,22,178,123,182,135,106,124,182,29,32,125,182,216,210,125,182,185,130,126,
182,192,47,127,182,236,217,127,182,159,64,128,182,220,146,128,182,172,227,128,182,16,51,129,182,7,129,129,182,146,205,129,182,178,24,130,182,102,98,130,182,174,170,130,182,139,241,130,182,254,54,131,182,6,123,131,182,163,189,131,182,215,254,131,182,161,62,132,182,2,125,132,182,249,185,132,182,136,245,132,182,175,47,133,182,110,104,133,182,197,159,133,182,182,213,133,182,63,10,134,182,99,61,134,182,32,111,134,182,121,159,134,182,108,206,134,182,251,251,134,182,39,40,135,182,238,82,135,182,83,124,135,
182,86,164,135,182,247,202,135,182,54,240,135,182,21,20,136,182,148,54,136,182,180,87,136,182,116,119,136,182,215,149,136,182,219,178,136,182,131,206,136,182,206,232,136,182,190,1,137,182,82,25,137,182,141,47,137,182,109,68,137,182,245,87,137,182,37,106,137,182,253,122,137,182,126,138,137,182,169,152,137,182,127,165,137,182,1,177,137,182,47,187,137,182,10,196,137,182,147,203,137,182,203,209,137,182,179,214,137,182,75,218,137,182,148,220,137,182,143,221,137,182,62,221,137,182,160,219,137,182,183,216,
137,182,132,212,137,182,8,207,137,182,67,200,137,182,54,192,137,182,227,182,137,182,74,172,137,182,109,160,137,182,76,147,137,182,232,132,137,182,67,117,137,182,93,100,137,182,55,82,137,182,210,62,137,182,48,42,137,182,82,20,137,182,55,253,136,182,227,228,136,182,84,203,136,182,142,176,136,182,144,148,136,182,92,119,136,182,243,88,136,182,87,57,136,182,135,24,136,182,134,246,135,182,84,211,135,182,243,174,135,182,99,137,135,182,167,98,135,182,191,58,135,182,172,17,135,182,111,231,134,182,11,188,134,
182,127,143,134,182,205,97,134,182,247,50,134,182,253,2,134,182,225,209,133,182,164,159,133,182,72,108,133,182,205,55,133,182,53,2,133,182,129,203,132,182,179,147,132,182,203,90,132,182,203,32,132,182,181,229,131,182,138,169,131,182,74,108,131,182,248,45,131,182,148,238,130,182,33,174,130,182,159,108,130,182,15,42,130,182,116,230,129,182,206,161,129,182,31,92,129,182,104,21,129,182,171,205,128,182,233,132,128,182,35,59,128,182,183,224,127,182,38,73,127,182,150,175,126,182,10,20,126,182,134,118,125,
182,11,215,124,182,158,53,124,182,64,146,123,182,244,236,122,182,191,69,122,182,162,156,121,182,160,241,120,182,189,68,120,182,252,149,119,182,95,229,118,182,233,50,118,182,158,126,117,182,128,200,116,182,147,16,116,182,217,86,115,182,86,155,114,182,12,222,113,182,255,30,113,182,50,94,112,182,167,155,111,182,99,215,110,182,103,17,110,182,184,73,109,182,87,128,108,182,74,181,107,182,145,232,106,182,50,26,106,182,46,74,105,182,137,120,104,182,70,165,103,182,104,208,102,182,243,249,101,182,233,33,101,
182,78,72,100,182,38,109,99,182,114,144,98,182,55,178,97,182,120,210,96,182,55,241,95,182,121,14,95,182,64,42,94,182,144,68,93,182,107,93,92,182,214,116,91,182,211,138,90,182,101,159,89,182,145,178,88,182,88,196,87,182,192,212,86,182,201,227,85,182,121,241,84,182,211,253,83,182,217,8,83,182,143,18,82,182,248,26,81,182,24,34,80,182,241,39,79,182,136,44,78,182,224,47,77,182,251,49,76,182,222,50,75,182,139,50,74,182,5,49,73,182,82,46,72,182,114,42,71,182,107,37,70,182,63,31,69,182,241,23,68,182,133,
15,67,182,255,5,66,182,97,251,64,182,175,239,63,182,237,226,62,182,29,213,61,182,68,198,60,182,100,182,59,182,129,165,58,182,157,147,57,182,190,128,56,182,229,108,55,182,23,88,54,182,86,66,53,182,167,43,52,182,11,20,51,182,136,251,49,182,32,226,48,182,214,199,47,182,174,172,46,182,171,144,45,182,209,115,44,182,34,86,43,182,163,55,42,182,87,24,41,182,65,248,39,182,100,215,38,182,196,181,37,182,100,147,36,182,72,112,35,182,114,76,34,182,230,39,33,182,169,2,32,182,188,220,30,182,35,182,29,182,226,142,
28,182,251,102,27,182,115,62,26,182,77,21,25,182,139,235,23,182,50,193,22,182,68,150,21,182,197,106,20,182,185,62,19,182,33,18,18,182,3,229,16,182,97,183,15,182,62,137,14,182,159,90,13,182,133,43,12,182,244,251,10,182,240,203,9,182,124,155,8,182,156,106,7,182,81,57,6,182,161,7,5,182,141,213,3,182,26,163,2,182,74,112,1,182,33,61,0,182,67,19,254,181,160,171,251,181,93,67,249,181,129,218,246,181,20,113,244,181,26,7,242,181,156,156,239,181,158,49,237,181,40,198,234,181,64,90,232,181,235,237,229,181,50,
129,227,181,25,20,225,181,168,166,222,181,228,56,220,181,211,202,217,181,125,92,215,181,232,237,212,181,24,127,210,181,22,16,208,181,231,160,205,181,145,49,203,181,26,194,200,181,137,82,198,181,228,226,195,181,49,115,193,181,118,3,191,181,185,147,188,181,0,36,186,181,82,180,183,181,180,68,181,181,44,213,178,181,193,101,176,181,120,246,173,181,88,135,171,181,102,24,169,181,169,169,166,181,38,59,164,181,227,204,161,181,230,94,159,181,53,241,156,181,214,131,154,181,206,22,152,181,36,170,149,181,222,
61,147,181,0,210,144,181,145,102,142,181,151,251,139,181,23,145,137,181,23,39,135,181,157,189,132,181,174,84,130,181,159,216,127,181,15,9,123,181,184,58,118,181,164,109,113,181,223,161,108,181,115,215,103,181,108,14,99,181,212,70,94,181,183,128,89,181,30,188,84,181,22,249,79,181,169,55,75,181,225,119,70,181,202,185,65,181,109,253,60,181,214,66,56,181,15,138,51,181,34,211,46,181,26,30,42,181,2,107,37,181,227,185,32,181,201,10,28,181,188,93,23,181,200,178,18,181,247,9,14,181,83,99,9,181,229,190,4,181,
184,28,0,181,171,249,246,180,143,190,237,180,49,136,228,180,163,86,219,180,249,41,210,180,71,2,201,180,159,223,191,180,21,194,182,180,188,169,173,180,167,150,164,180,233,136,155,180,148,128,146,180,187,125,137,180,113,128,128,180,145,17,111,180,167,45,93,180,72,85,75,180,152,136,57,180,188,199,39,180,215,18,22,180,14,106,4,180,4,155,229,179,175,122,194,179,99,115,159,179,201,10,121,179,240,97,51,179,140,217,219,178,69,175,34,178,54,3,227,49,184,110,194,50,137,216,37,51,106,67,106,51,190,59,151,51,
30,58,185,51,148,28,219,51,224,226,252,51,97,70,15,52,254,12,32,52,38,197,48,52,188,110,65,52,159,9,82,52,177,149,98,52,213,18,115,52,117,192,129,52,234,239,137,52,186,23,146,52,215,55,154,52,49,80,162,52,187,96,170,52,102,105,178,52,36,106,186,52,230,98,194,52,158,83,202,52,63,60,210,52,187,28,218,52,3,245,225,52,11,197,233,52,197,140,241,52,36,76,249,52,141,129,0,53,206,88,4,53,205,43,8,53,132,250,11,53,237,196,15,53,3,139,19,53,189,76,23,53,23,10,27,53,10,195,30,53,144,119,34,53,163,39,38,53,62,
211,41,53,90,122,45,53,241,28,49,53,255,186,52,53,124,84,56,53,100,233,59,53,177,121,63,53,94,5,67,53,101,140,70,53,192,14,74,53,108,140,77,53,97,5,81,53,155,121,84,53,22,233,87,53,203,83,91,53,182,185,94,53,210,26,98,53,27,119,101,53,139,206,104,53,29,33,108,53,206,110,111,53,151,183,114,53,118,251,117,53,101,58,121,53,96,116,124,53,99,169,127,53,180,108,129,53,55,2,131,53,55,149,132,53,178,37,134,53,167,179,135,53,19,63,137,53,244,199,138,53,73,78,140,53,16,210,141,53,70,83,143,53,235,209,144,53,
251,77,146,53,118,199,147,53,90,62,149,53,164,178,150,53,84,36,152,53,103,147,153,53,220,255,154,53,178,105,156,53,230,208,157,53,120,53,159,53,102,151,160,53,174,246,161,53,79,83,163,53,72,173,164,53,151,4,166,53,59,89,167,53,50,171,168,53,124,250,169,53,22,71,171,53,1,145,172,53,59,216,173,53,193,28,175,53,149,94,176,53,180,157,177,53,29,218,178,53,207,19,180,53,201,74,181,53,11,127,182,53,148,176,183,53,97,223,184,53,116,11,186,53,202,52,187,53,99,91,188,53,63,127,189,53,91,160,190,53,185,190,
191,53,86,218,192,53,51,243,193,53,79,9,195,53,169,28,196,53,64,45,197,53,20,59,198,53,37,70,199,53,114,78,200,53,250,83,201,53,190,86,202,53,188,86,203,53,245,83,204,53,104,78,205,53,21,70,206,53,251,58,207,53,26,45,208,53,115,28,209,53,4,9,210,53,206,242,210,53,208,217,211,53,11,190,212,53,127,159,213,53,42,126,214,53,14,90,215,53,42,51,216,53,127,9,217,53,12,221,217,53,210,173,218,53,208,123,219,53,7,71,220,53,119,15,221,53,32,213,221,53,3,152,222,53,31,88,223,53,117,21,224,53,6,208,224,53,209,
135,225,53,215,60,226,53,25,239,226,53,151,158,227,53,81,75,228,53,71,245,228,53,123,156,229,53,237,64,230,53,157,226,230,53,140,129,231,53,187,29,232,53,42,183,232,53,218,77,233,53,203,225,233,53,255,114,234,53,118,1,235,53,48,141,235,53,48,22,236,53,116,156,236,53,255,31,237,53,210,160,237,53,236,30,238,53,79,154,238,53,252,18,239,53,244,136,239,53,56,252,239,53,201,108,240,53,168,218,240,53,214,69,241,53,84,174,241,53,35,20,242,53,69,119,242,53,186,215,242,53,132,53,243,53,164,144,243,53,27,233,
243,53,235,62,244,53,20,146,244,53,153,226,244,53,121,48,245,53,184,123,245,53,86,196,245,53,84,10,246,53,181,77,246,53,120,142,246,53,161,204,246,53,48,8,247,53,39,65,247,53,135,119,247,53,82,171,247,53,138,220,247,53,48,11,248,53,70,55,248,53,205,96,248,53,199,135,248,53,54,172,248,53,28,206,248,53,122,237,248,53,81,10,249,53,165,36,249,53,118,60,249,53,198,81,249,53,151,100,249,53,236,116,249,53,197,130,249,53,37,142,249,53,14,151,249,53,129,157,249,53,129,161,249,53,16,163,249,53,47,162,249,53,
224,158,249,53,38,153,249,53,3,145,249,53,120,134,249,53,136,121,249,53,53,106,249,53,128,88,249,53,109,68,249,53,253,45,249,53,51,21,249,53,16,250,248,53,151,220,248,53,202,188,248,53,171,154,248,53,61,118,248,53,129,79,248,53,123,38,248,53,44,251,247,53,150,205,247,53,189,157,247,53,162,107,247,53,72,55,247,53,177,0,247,53,224,199,246,53,215,140,246,53,152,79,246,53,38,16,246,53,131,206,245,53,179,138,245,53,182,68,245,53,145,252,244,53,68,178,244,53,212,101,244,53,66,23,244,53,145,198,243,53,196,
115,243,53,221,30,243,53,223,199,242,53,204,110,242,53,167,19,242,53,115,182,241,53,51,87,241,53,232,245,240,53,150,146,240,53,64,45,240,53,232,197,239,53,144,92,239,53,61,241,238,53,239,131,238,53,171,20,238,53,115,163,237,53,73,48,237,53,49,187,236,53,45,68,236,53,65,203,235,53,110,80,235,53,184,211,234,53,34,85,234,53,174,212,233,53,95,82,233,53,57,206,232,53,62,72,232,53,113,192,231,53,213,54,231,53,109,171,230,53,59,30,230,53,68,143,229,53,137,254,228,53,14,108,228,53,213,215,227,53,226,65,227,
53,56,170,226,53,217,16,226,53,201,117,225,53,10,217,224,53,160,58,224,53,142,154,223,53,214,248,222,53,124,85,222,53,131,176,221,53,238,9,221,53,191,97,220,53,251,183,219,53,163,12,219,53,188,95,218,53,72,177,217,53,74,1,217,53,198,79,216,53,190,156,215,53,53,232,214,53,48,50,214,53,176,122,213,53,185,193,212,53,79,7,212,53,116,75,211,53,43,142,210,53,120,207,209,53,93,15,209,53,223,77,208,53,255,138,207,53,194,198,206,53,42,1,206,53,59,58,205,53,247,113,204,53,99,168,203,53,128,221,202,53,83,17,
202,53,223,67,201,53,38,117,200,53,44,165,199,53,244,211,198,53,130,1,198,53,216,45,197,53,250,88,196,53,235,130,195,53,174,171,194,53,71,211,193,53,184,249,192,53,5,31,192,53,50,67,191,53,64,102,190,53,52,136,189,53,17,169,188,53,218,200,187,53,146,231,186,53,61,5,186,53,221,33,185,53,118,61,184,53,11,88,183,53,160,113,182,53,56,138,181,53,213,161,180,53,123,184,179,53,46,206,178,53,240,226,177,53,197,246,176,53,176,9,176,53,180,27,175,53,213,44,174,53,22,61,173,53,121,76,172,53,2,91,171,53,181,
104,170,53,149,117,169,53,164,129,168,53,231,140,167,53,95,151,166,53,18,161,165,53,0,170,164,53,47,178,163,53,161,185,162,53,89,192,161,53,91,198,160,53,169,203,159,53,71,208,158,53,56,212,157,53,128,215,156,53,33,218,155,53,31,220,154,53,124,221,153,53,61,222,152,53,99,222,151,53,243,221,150,53,240,220,149,53,92,219,148,53,59,217,147,53,144,214,146,53,94,211,145,53,168,207,144,53,114,203,143,53,190,198,142,53,144,193,141,53,234,187,140,53,209,181,139,53,70,175,138,53,78,168,137,53,234,160,136,53,
31,153,135,53,239,144,134,53,94,136,133,53,110,127,132,53,35,118,131,53,127,108,130,53,134,98,129,53,59,88,128,53,65,155,126,53,116,133,124,53,20,111,122,53,40,88,120,53,182,64,118,53,196,40,116,53,87,16,114,53,118,247,111,53,39,222,109,53,111,196,107,53,85,170,105,53,223,143,103,53,18,117,101,53,244,89,99,53,140,62,97,53,222,34,95,53,241,6,93,53,203,234,90,53,114,206,88,53,235,177,86,53,60,149,84,53,106,120,82,53,125,91,80,53,120,62,78,53,99,33,76,53,66,4,74,53,28,231,71,53,245,201,69,53,212,172,
67,53,190,143,65,53,186,114,63,53,203,85,61,53,248,56,59,53,71,28,57,53,189,255,54,53,95,227,52,53,51,199,50,53,62,171,48,53,134,143,46,53,17,116,44,53,227,88,42,53,1,62,40,53,114,35,38,53,59,9,36,53,97,239,33,53,232,213,31,53,215,188,29,53,51,164,27,53,1,140,25,53,69,116,23,53,6,93,21,53,72,70,19,53,17,48,17,53,102,26,15,53,74,5,13,53,197,240,10,53,219,220,8,53,144,201,6,53,234,182,4,53,237,164,2,53,159,147,0,53,10,6,253,52,70,230,248,52,253,199,244,52,56,171,240,52,1,144,236,52,97,118,232,52,98,
94,228,52,14,72,224,52,109,51,220,52,137,32,216,52,108,15,212,52,31,0,208,52,171,242,203,52,25,231,199,52,114,221,195,52,192,213,191,52,11,208,187,52,92,204,183,52,188,202,179,52,53,203,175,52,206,205,171,52,146,210,167,52,135,217,163,52,183,226,159,52,43,238,155,52,235,251,151,52,0,12,148,52,114,30,144,52,73,51,140,52,141,74,136,52,72,100,132,52,129,128,128,52,127,62,121,52,26,129,113,52,226,200,105,52,231,21,98,52,56,104,90,52,229,191,82,52,255,28,75,52,149,127,67,52,181,231,59,52,111,85,52,52,
211,200,44,52,240,65,37,52,212,192,29,52,142,69,22,52,45,208,14,52,192,96,7,52,170,238,255,51,245,39,241,51,125,109,226,51,95,191,211,51,183,29,197,51,161,136,182,51,55,0,168,51,150,132,153,51,217,21,139,51,52,104,121,51,233,190,92,51,5,48,64,51,188,187,35,51,66,98,7,51,151,71,214,50,21,1,158,50,198,226,75,50,147,99,184,49,40,128,152,176,225,225,1,178,9,67,112,178,94,25,175,178,31,216,229,178,180,46,14,179,110,84,41,179,15,93,68,179,106,72,95,179,82,22,122,179,77,99,138,179,139,172,151,179,204,230,
164,179,253,17,178,179,6,46,191,179,210,58,204,179,78,56,217,179,100,38,230,179,0,5,243,179,14,212,255,179,189,73,6,180,151,161,12,180,141,241,18,180,149,57,25,180,165,121,31,180,180,177,37,180,184,225,43,180,169,9,50,180,125,41,56,180,44,65,62,180,173,80,68,180,248,87,74,180,2,87,80,180,198,77,86,180,57,60,92,180,84,34,98,180,15,0,104,180,98,213,109,180,69,162,115,180,177,102,121,180,157,34,127,180,2,107,130,180,110,64,133,180,144,17,136,180,100,222,138,180,230,166,141,180,19,107,144,180,232,42,
147,180,98,230,149,180,125,157,152,180,54,80,155,180,138,254,157,180,118,168,160,180,246,77,163,180,9,239,165,180,171,139,168,180,217,35,171,180,145,183,173,180,207,70,176,180,146,209,178,180,214,87,181,180,154,217,183,180,218,86,186,180,148,207,188,180,199,67,191,180,110,179,193,180,138,30,196,180,23,133,198,180,18,231,200,180,123,68,203,180,79,157,205,180,141,241,207,180,49,65,210,180,59,140,212,180,169,210,214,180,121,20,217,180,169,81,219,180,56,138,221,180,37,190,223,180,109,237,225,180,15,24,
228,180,11,62,230,180,94,95,232,180,8,124,234,180,8,148,236,180,91,167,238,180,2,182,240,180,251,191,242,180,68,197,244,180,223,197,246,180,200,193,248,180,0,185,250,180,134,171,252,180,90,153,254,180,61,65,0,181,115,51,1,181,78,35,2,181,207,16,3,181,246,251,3,181,194,228,4,181,50,203,5,181,72,175,6,181,2,145,7,181,97,112,8,181,100,77,9,181,12,40,10,181,89,0,11,181,75,214,11,181,225,169,12,181,28,123,13,181,252,73,14,181,129,22,15,181,171,224,15,181,123,168,16,181,241,109,17,181,12,49,18,181,206,
241,18,181,54,176,19,181,69,108,20,181,251,37,21,181,88,221,21,181,94,146,22,181,12,69,23,181,99,245,23,181,99,163,24,181,12,79,25,181,96,248,25,181,95,159,26,181,9,68,27,181,96,230,27,181,99,134,28,181,19,36,29,181,113,191,29,181,126,88,30,181,58,239,30,181,166,131,31,181,195,21,32,181,146,165,32,181,19,51,33,181,71,190,33,181,47,71,34,181,205,205,34,181,32,82,35,181,42,212,35,181,236,83,36,181,103,209,36,181,155,76,37,181,138,197,37,181,53,60,38,181,157,176,38,181,195,34,39,181,167,146,39,181,76,
0,40,181,178,107,40,181,219,212,40,181,199,59,41,181,120,160,41,181,238,2,42,181,45,99,42,181,52,193,42,181,4,29,43,181,160,118,43,181,8,206,43,181,63,35,44,181,68,118,44,181,26,199,44,181,194,21,45,181,62,98,45,181,142,172,45,181,181,244,45,181,179,58,46,181,139,126,46,181,62,192,46,181,206,255,46,181,59,61,47,181,136,120,47,181,182,177,47,181,199,232,47,181,188,29,48,181,152,80,48,181,91,129,48,181,7,176,48,181,159,220,48,181,36,7,49,181,151,47,49,181,251,85,49,181,81,122,49,181,155,156,49,181,
218,188,49,181,18,219,49,181,66,247,49,181,110,17,50,181,152,41,50,181,192,63,50,181,233,83,50,181,21,102,50,181,70,118,50,181,126,132,50,181,191,144,50,181,10,155,50,181,98,163,50,181,201,169,50,181,65,174,50,181,203,176,50,181,107,177,50,181,34,176,50,181,241,172,50,181,220,167,50,181,228,160,50,181,12,152,50,181,85,141,50,181,194,128,50,181,84,114,50,181,15,98,50,181,244,79,50,181,6,60,50,181,70,38,50,181,184,14,50,181,92,245,49,181,54,218,49,181,72,189,49,181,147,158,49,181,28,126,49,181,226,
91,49,181,234,55,49,181,53,18,49,181,197,234,48,181,158,193,48,181,193,150,48,181,48,106,48,181,239,59,48,181,255,11,48,181,99,218,47,181,29,167,47,181,48,114,47,181,158,59,47,181,106,3,47,181,150,201,46,181,37,142,46,181,24,81,46,181,115,18,46,181,56,210,45,181,106,144,45,181,10,77,45,181,28,8,45,181,162,193,44,181,159,121,44,181,21,48,44,181,6,229,43,181,118,152,43,181,103,74,43,181,219,250,42,181,213,169,42,181,87,87,42,181,101,3,42,181,1,174,41,181,44,87,41,181,235,254,40,181,64,165,40,181,45,
74,40,181,180,237,39,181,217,143,39,181,159,48,39,181,7,208,38,181,21,110,38,181,203,10,38,181,43,166,37,181,58,64,37,181,248,216,36,181,105,112,36,181,144,6,36,181,111,155,35,181,10,47,35,181,97,193,34,181,122,82,34,181,85,226,33,181,246,112,33,181,96,254,32,181,149,138,32,181,152,21,32,181,108,159,31,181,19,40,31,181,144,175,30,181,231,53,30,181,25,187,29,181,41,63,29,181,27,194,28,181,240,67,28,181,173,196,27,181,82,68,27,181,228,194,26,181,101,64,26,181,216,188,25,181,63,56,25,181,158,178,24,
181,246,43,24,181,75,164,23,181,160,27,23,181,247,145,22,181,84,7,22,181,184,123,21,181,39,239,20,181,163,97,20,181,47,211,19,181,207,67,19,181,132,179,18,181,81,34,18,181,58,144,17,181,65,253,16,181,105,105,16,181,180,212,15,181,38,63,15,181,193,168,14,181,136,17,14,181,125,121,13,181,164,224,12,181,255,70,12,181,145,172,11,181,93,17,11,181,101,117,10,181,173,216,9,181,54,59,9,181,4,157,8,181,26,254,7,181,122,94,7,181,39,190,6,181,36,29,6,181,115,123,5,181,23,217,4,181,19,54,4,181,106,146,3,181,
30,238,2,181,51,73,2,181,170,163,1,181,135,253,0,181,204,86,0,181,248,94,255,180,52,15,254,180,80,190,252,180,83,108,251,180,65,25,250,180,32,197,248,180,245,111,247,180,198,25,246,180,152,194,244,180,112,106,243,180,84,17,242,180,73,183,240,180,84,92,239,180,122,0,238,180,194,163,236,180,48,70,235,180,201,231,233,180,147,136,232,180,146,40,231,180,205,199,229,180,73,102,228,180,9,4,227,180,21,161,225,180,112,61,224,180,33,217,222,180,44,116,221,180,150,14,220,180,100,168,218,180,157,65,217,180,68,
218,215,180,95,114,214,180,242,9,213,180,4,161,211,180,152,55,210,180,181,205,208,180,95,99,207,180,154,248,205,180,109,141,204,180,219,33,203,180,235,181,201,180,160,73,200,180,0,221,198,180,15,112,197,180,211,2,196,180,81,149,194,180,141,39,193,180,139,185,191,180,82,75,190,180,229,220,188,180,74,110,187,180,133,255,185,180,155,144,184,180,145,33,183,180,107,178,181,180,46,67,180,180,223,211,178,180,130,100,177,180,28,245,175,180,178,133,174,180,72,22,173,180,228,166,171,180,136,55,170,180,58,200,
168,180,255,88,167,180,219,233,165,180,210,122,164,180,232,11,163,180,36,157,161,180,136,46,160,180,24,192,158,180,219,81,157,180,211,227,155,180,5,118,154,180,118,8,153,180,42,155,151,180,36,46,150,180,106,193,148,180,0,85,147,180,233,232,145,180,41,125,144,180,198,17,143,180,195,166,141,180,36,60,140,180,238,209,138,180,36,104,137,180,202,254,135,180,229,149,134,180,121,45,133,180,136,197,131,180,25,94,130,180,45,247,128,180,148,33,127,180,229,85,124,180,87,139,121,180,240,193,118,180,184,249,115,
180,184,50,113,180,245,108,110,180,120,168,107,180,73,229,104,180,110,35,102,180,239,98,99,180,211,163,96,180,33,230,93,180,226,41,91,180,27,111,88,180,211,181,85,180,19,254,82,180,224,71,80,180,66,147,77,180,64,224,74,180,224,46,72,180,41,127,69,180,35,209,66,180,211,36,64,180,64,122,61,180,113,209,58,180,108,42,56,180,56,133,53,180,220,225,50,180,93,64,48,180,194,160,45,180,17,3,43,180,80,103,40,180,134,205,37,180,185,53,35,180,239,159,32,180,45,12,30,180,122,122,27,180,219,234,24,180,87,93,22,
180,242,209,19,180,180,72,17,180,161,193,14,180,192,60,12,180,21,186,9,180,167,57,7,180,122,187,4,180,149,63,2,180,248,139,255,179,106,157,250,179,138,179,245,179,99,206,240,179,254,237,235,179,103,18,231,179,167,59,226,179,200,105,221,179,211,156,216,179,212,212,211,179,210,17,207,179,217,83,202,179,241,154,197,179,35,231,192,179,121,56,188,179,252,142,183,179,181,234,178,179,172,75,174,179,235,177,169,179,122,29,165,179,97,142,160,179,170,4,156,179,92,128,151,179,127,1,147,179,29,136,142,179,60,
20,138,179,228,165,133,179,30,61,129,179,226,179,121,179,202,248,112,179,1,73,104,179,151,164,95,179,154,11,87,179,24,126,78,179,32,252,69,179,192,133,61,179,4,27,53,179,250,187,44,179,176,104,36,179,50,33,28,179,141,229,19,179,205,181,11,179,255,145,3,179,94,244,246,178,209,220,230,178,111,221,214,178,78,246,198,178,133,39,183,178,42,113,167,178,81,211,151,178,17,78,136,178,253,194,113,178,89,27,83,178,96,165,52,178,55,97,22,178,8,158,240,177,218,221,180,177,88,4,115,177,0,0,0,0,77,9,0,0,250,57,
119,63,246,57,119,63,233,57,119,63,211,57,119,63,180,57,119,63,141,57,119,63,92,57,119,63,35,57,119,63,226,56,119,63,151,56,119,63,68,56,119,63,232,55,119,63,131,55,119,63,21,55,119,63,159,54,119,63,32,54,119,63,152,53,119,63,7,53,119,63,109,52,119,63,203,51,119,63,32,51,119,63,108,50,119,63,176,49,119,63,235,48,119,63,28,48,119,63,70,47,119,63,102,46,119,63,125,45,119,63,140,44,119,63,146,43,119,63,144,42,119,63,132,41,119,63,112,40,119,63,83,39,119,63,45,38,119,63,255,36,119,63,199,35,119,63,135,
34,119,63,62,33,119,63,237,31,119,63,146,30,119,63,47,29,119,63,195,27,119,63,79,26,119,63,209,24,119,63,75,23,119,63,188,21,119,63,36,20,119,63,132,18,119,63,219,16,119,63,41,15,119,63,110,13,119,63,170,11,119,63,222,9,119,63,9,8,119,63,43,6,119,63,69,4,119,63,86,2,119,63,93,0,119,63,93,254,118,63,83,252,118,63,65,250,118,63,38,248,118,63,2,246,118,63,213,243,118,63,160,241,118,63,98,239,118,63,27,237,118,63,203,234,118,63,115,232,118,63,18,230,118,63,168,227,118,63,53,225,118,63,186,222,118,63,
54,220,118,63,169,217,118,63,19,215,118,63,117,212,118,63,206,209,118,63,30,207,118,63,102,204,118,63,164,201,118,63,218,198,118,63,7,196,118,63,44,193,118,63,71,190,118,63,90,187,118,63,101,184,118,63,102,181,118,63,95,178,118,63,79,175,118,63,54,172,118,63,21,169,118,63,235,165,118,63,184,162,118,63,124,159,118,63,56,156,118,63,234,152,118,63,149,149,118,63,54,146,118,63,207,142,118,63,95,139,118,63,230,135,118,63,100,132,118,63,218,128,118,63,71,125,118,63,171,121,118,63,7,118,118,63,90,114,118,
63,164,110,118,63,230,106,118,63,30,103,118,63,78,99,118,63,118,95,118,63,148,91,118,63,170,87,118,63,183,83,118,63,188,79,118,63,183,75,118,63,170,71,118,63,149,67,118,63,118,63,118,63,79,59,118,63,31,55,118,63,231,50,118,63,165,46,118,63,91,42,118,63,9,38,118,63,173,33,118,63,73,29,118,63,221,24,118,63,103,20,118,63,233,15,118,63,98,11,118,63,211,6,118,63,58,2,118,63,153,253,117,63,240,248,117,63,61,244,117,63,130,239,117,63,191,234,117,63,242,229,117,63,29,225,117,63,63,220,117,63,89,215,117,63,
106,210,117,63,114,205,117,63,114,200,117,63,104,195,117,63,87,190,117,63,60,185,117,63,25,180,117,63,237,174,117,63,184,169,117,63,123,164,117,63,53,159,117,63,231,153,117,63,144,148,117,63,48,143,117,63,199,137,117,63,86,132,117,63,220,126,117,63,90,121,117,63,206,115,117,63,58,110,117,63,158,104,117,63,249,98,117,63,75,93,117,63,149,87,117,63,213,81,117,63,14,76,117,63,61,70,117,63,100,64,117,63,130,58,117,63,152,52,117,63,165,46,117,63,169,40,117,63,165,34,117,63,152,28,117,63,131,22,117,63,101,
16,117,63,62,10,117,63,14,4,117,63,214,253,116,63,150,247,116,63,76,241,116,63,250,234,116,63,160,228,116,63,60,222,116,63,209,215,116,63,92,209,116,63,223,202,116,63,89,196,116,63,203,189,116,63,52,183,116,63,149,176,116,63,237,169,116,63,60,163,116,63,131,156,116,63,193,149,116,63,246,142,116,63,35,136,116,63,71,129,116,63,99,122,116,63,118,115,116,63,128,108,116,63,130,101,116,63,124,94,116,63,108,87,116,63,84,80,116,63,52,73,116,63,11,66,116,63,217,58,116,63,159,51,116,63,92,44,116,63,17,37,116,
63,189,29,116,63,96,22,116,63,251,14,116,63,142,7,116,63,24,0,116,63,153,248,115,63,17,241,115,63,129,233,115,63,233,225,115,63,72,218,115,63,158,210,115,63,236,202,115,63,50,195,115,63,110,187,115,63,163,179,115,63,206,171,115,63,241,163,115,63,12,156,115,63,30,148,115,63,39,140,115,63,40,132,115,63,33,124,115,63,17,116,115,63,248,107,115,63,215,99,115,63,173,91,115,63,123,83,115,63,64,75,115,63,253,66,115,63,177,58,115,63,93,50,115,63,0,42,115,63,155,33,115,63,45,25,115,63,183,16,115,63,56,8,115,
63,177,255,114,63,33,247,114,63,136,238,114,63,232,229,114,63,62,221,114,63,140,212,114,63,210,203,114,63,15,195,114,63,68,186,114,63,112,177,114,63,148,168,114,63,175,159,114,63,194,150,114,63,204,141,114,63,206,132,114,63,200,123,114,63,184,114,114,63,161,105,114,63,129,96,114,63,88,87,114,63,39,78,114,63,238,68,114,63,172,59,114,63,98,50,114,63,15,41,114,63,180,31,114,63,80,22,114,63,228,12,114,63,112,3,114,63,243,249,113,63,109,240,113,63,223,230,113,63,73,221,113,63,170,211,113,63,3,202,113,
63,84,192,113,63,156,182,113,63,219,172,113,63,18,163,113,63,65,153,113,63,104,143,113,63,134,133,113,63,155,123,113,63,168,113,113,63,173,103,113,63,169,93,113,63,157,83,113,63,137,73,113,63,108,63,113,63,71,53,113,63,25,43,113,63,227,32,113,63,165,22,113,63,94,12,113,63,15,2,113,63,183,247,112,63,87,237,112,63,239,226,112,63,126,216,112,63,5,206,112,63,132,195,112,63,250,184,112,63,104,174,112,63,206,163,112,63,43,153,112,63,128,142,112,63,204,131,112,63,17,121,112,63,76,110,112,63,128,99,112,63,
171,88,112,63,206,77,112,63,232,66,112,63,251,55,112,63,4,45,112,63,6,34,112,63,255,22,112,63,240,11,112,63,217,0,112,63,185,245,111,63,145,234,111,63,97,223,111,63,40,212,111,63,231,200,111,63,158,189,111,63,76,178,111,63,243,166,111,63,144,155,111,63,38,144,111,63,179,132,111,63,56,121,111,63,181,109,111,63,42,98,111,63,150,86,111,63,250,74,111,63,86,63,111,63,169,51,111,63,244,39,111,63,55,28,111,63,114,16,111,63,164,4,111,63,206,248,110,63,240,236,110,63,10,225,110,63,27,213,110,63,37,201,110,
63,37,189,110,63,30,177,110,63,15,165,110,63,247,152,110,63,215,140,110,63,175,128,110,63,127,116,110,63,70,104,110,63,5,92,110,63,188,79,110,63,107,67,110,63,18,55,110,63,176,42,110,63,70,30,110,63,212,17,110,63,90,5,110,63,216,248,109,63,77,236,109,63,187,223,109,63,32,211,109,63,125,198,109,63,209,185,109,63,30,173,109,63,98,160,109,63,159,147,109,63,211,134,109,63,255,121,109,63,35,109,109,63,62,96,109,63,82,83,109,63,93,70,109,63,97,57,109,63,92,44,109,63,79,31,109,63,58,18,109,63,28,5,109,63,
247,247,108,63,202,234,108,63,148,221,108,63,86,208,108,63,16,195,108,63,194,181,108,63,108,168,108,63,14,155,108,63,168,141,108,63,58,128,108,63,195,114,108,63,69,101,108,63,190,87,108,63,48,74,108,63,153,60,108,63,250,46,108,63,83,33,108,63,164,19,108,63,237,5,108,63,46,248,107,63,103,234,107,63,152,220,107,63,193,206,107,63,226,192,107,63,251,178,107,63,11,165,107,63,20,151,107,63,21,137,107,63,13,123,107,63,254,108,107,63,230,94,107,63,199,80,107,63,159,66,107,63,112,52,107,63,56,38,107,63,249,
23,107,63,177,9,107,63,98,251,106,63,11,237,106,63,171,222,106,63,68,208,106,63,212,193,106,63,93,179,106,63,222,164,106,63,86,150,106,63,199,135,106,63,48,121,106,63,144,106,106,63,233,91,106,63,58,77,106,63,131,62,106,63,196,47,106,63,253,32,106,63,46,18,106,63,87,3,106,63,121,244,105,63,146,229,105,63,163,214,105,63,173,199,105,63,174,184,105,63,168,169,105,63,154,154,105,63,131,139,105,63,101,124,105,63,63,109,105,63,18,94,105,63,220,78,105,63,158,63,105,63,89,48,105,63,11,33,105,63,182,17,105,
63,89,2,105,63,244,242,104,63,135,227,104,63,18,212,104,63,150,196,104,63,17,181,104,63,133,165,104,63,241,149,104,63,85,134,104,63,177,118,104,63,6,103,104,63,82,87,104,63,151,71,104,63,212,55,104,63,9,40,104,63,54,24,104,63,92,8,104,63,121,248,103,63,143,232,103,63,157,216,103,63,164,200,103,63,162,184,103,63,153,168,103,63,136,152,103,63,111,136,103,63,78,120,103,63,38,104,103,63,246,87,103,63,190,71,103,63,126,55,103,63,55,39,103,63,232,22,103,63,145,6,103,63,50,246,102,63,204,229,102,63,94,213,
102,63,232,196,102,63,106,180,102,63,229,163,102,63,88,147,102,63,195,130,102,63,39,114,102,63,131,97,102,63,215,80,102,63,35,64,102,63,104,47,102,63,165,30,102,63,219,13,102,63,8,253,101,63,46,236,101,63,77,219,101,63,100,202,101,63,115,185,101,63,122,168,101,63,122,151,101,63,114,134,101,63,98,117,101,63,75,100,101,63,44,83,101,63,6,66,101,63,216,48,101,63,162,31,101,63,101,14,101,63,32,253,100,63,211,235,100,63,127,218,100,63,35,201,100,63,192,183,100,63,85,166,100,63,227,148,100,63,104,131,100,
63,231,113,100,63,93,96,100,63,205,78,100,63,52,61,100,63,148,43,100,63,237,25,100,63,62,8,100,63,135,246,99,63,201,228,99,63,3,211,99,63,54,193,99,63,97,175,99,63,133,157,99,63,161,139,99,63,181,121,99,63,194,103,99,63,200,85,99,63,198,67,99,63,189,49,99,63,172,31,99,63,147,13,99,63,115,251,98,63,76,233,98,63,29,215,98,63,231,196,98,63,169,178,98,63,100,160,98,63,23,142,98,63,195,123,98,63,103,105,98,63,4,87,98,63,154,68,98,63,40,50,98,63,174,31,98,63,45,13,98,63,165,250,97,63,22,232,97,63,126,213,
97,63,224,194,97,63,58,176,97,63,141,157,97,63,216,138,97,63,28,120,97,63,88,101,97,63,142,82,97,63,187,63,97,63,226,44,97,63,1,26,97,63,24,7,97,63,41,244,96,63,49,225,96,63,51,206,96,63,45,187,96,63,32,168,96,63,12,149,96,63,240,129,96,63,205,110,96,63,162,91,96,63,113,72,96,63,55,53,96,63,247,33,96,63,175,14,96,63,96,251,95,63,10,232,95,63,173,212,95,63,72,193,95,63,220,173,95,63,104,154,95,63,237,134,95,63,107,115,95,63,226,95,95,63,82,76,95,63,186,56,95,63,27,37,95,63,117,17,95,63,199,253,94,
63,19,234,94,63,87,214,94,63,148,194,94,63,201,174,94,63,248,154,94,63,31,135,94,63,63,115,94,63,88,95,94,63,106,75,94,63,116,55,94,63,119,35,94,63,115,15,94,63,104,251,93,63,86,231,93,63,61,211,93,63,28,191,93,63,244,170,93,63,198,150,93,63,144,130,93,63,82,110,93,63,14,90,93,63,195,69,93,63,112,49,93,63,23,29,93,63,182,8,93,63,78,244,92,63,223,223,92,63,105,203,92,63,236,182,92,63,103,162,92,63,220,141,92,63,74,121,92,63,176,100,92,63,16,80,92,63,104,59,92,63,185,38,92,63,4,18,92,63,71,253,91,63,
131,232,91,63,184,211,91,63,230,190,91,63,13,170,91,63,45,149,91,63,70,128,91,63,88,107,91,63,99,86,91,63,103,65,91,63,100,44,91,63,90,23,91,63,74,2,91,63,50,237,90,63,19,216,90,63,237,194,90,63,192,173,90,63,140,152,90,63,81,131,90,63,16,110,90,63,199,88,90,63,119,67,90,63,33,46,90,63,195,24,90,63,95,3,90,63,244,237,89,63,130,216,89,63,8,195,89,63,136,173,89,63,1,152,89,63,116,130,89,63,223,108,89,63,67,87,89,63,161,65,89,63,248,43,89,63,71,22,89,63,144,0,89,63,210,234,88,63,14,213,88,63,66,191,
88,63,112,169,88,63,150,147,88,63,182,125,88,63,207,103,88,63,226,81,88,63,237,59,88,63],"i8",4,y.a+92160);
Q([242,37,88,63,240,15,88,63,231,249,87,63,215,227,87,63,192,205,87,63,163,183,87,63,127,161,87,63,84,139,87,63,35,117,87,63,234,94,87,63,171,72,87,63,101,50,87,63,25,28,87,63,197,5,87,63,107,239,86,63,10,217,86,63,163,194,86,63,53,172,86,63,192,149,86,63,68,127,86,63,194,104,86,63,57,82,86,63,169,59,86,63,19,37,86,63,118,14,86,63,210,247,85,63,39,225,85,63,118,202,85,63,191,179,85,63,0,157,85,63,59,134,85,63,112,111,85,63,157,88,85,63,197,65,85,63,229,42,85,63,255,19,85,63,18,253,84,63,31,230,84,
63,37,207,84,63,36,184,84,63,29,161,84,63,16,138,84,63,251,114,84,63,225,91,84,63,191,68,84,63,151,45,84,63,105,22,84,63,52,255,83,63,248,231,83,63,182,208,83,63,109,185,83,63,30,162,83,63,200,138,83,63,108,115,83,63,10,92,83,63,160,68,83,63,49,45,83,63,186,21,83,63,62,254,82,63,187,230,82,63,49,207,82,63,161,183,82,63,10,160,82,63,109,136,82,63,202,112,82,63,32,89,82,63,112,65,82,63,185,41,82,63,252,17,82,63,56,250,81,63,110,226,81,63,158,202,81,63,199,178,81,63,234,154,81,63,6,131,81,63,28,107,
81,63,44,83,81,63,53,59,81,63,56,35,81,63,52,11,81,63,43,243,80,63,26,219,80,63,4,195,80,63,231,170,80,63,196,146,80,63,154,122,80,63,107,98,80,63,52,74,80,63,248,49,80,63,181,25,80,63,108,1,80,63,29,233,79,63,199,208,79,63,107,184,79,63,9,160,79,63,161,135,79,63,50,111,79,63,189,86,79,63,66,62,79,63,192,37,79,63,57,13,79,63,171,244,78,63,23,220,78,63,124,195,78,63,220,170,78,63,53,146,78,63,136,121,78,63,213,96,78,63,27,72,78,63,92,47,78,63,150,22,78,63,202,253,77,63,248,228,77,63,32,204,77,63,66,
179,77,63,93,154,77,63,115,129,77,63,130,104,77,63,139,79,77,63,142,54,77,63,139,29,77,63,130,4,77,63,114,235,76,63,93,210,76,63,65,185,76,63,32,160,76,63,248,134,76,63,202,109,76,63,150,84,76,63,92,59,76,63,28,34,76,63,214,8,76,63,138,239,75,63,56,214,75,63,224,188,75,63,130,163,75,63,30,138,75,63,180,112,75,63,68,87,75,63,206,61,75,63,81,36,75,63,207,10,75,63,71,241,74,63,185,215,74,63,37,190,74,63,139,164,74,63,235,138,74,63,69,113,74,63,153,87,74,63,231,61,74,63,48,36,74,63,114,10,74,63,174,240,
73,63,229,214,73,63,22,189,73,63,64,163,73,63,101,137,73,63,132,111,73,63,157,85,73,63,176,59,73,63,190,33,73,63,197,7,73,63,199,237,72,63,195,211,72,63,184,185,72,63,169,159,72,63,147,133,72,63,119,107,72,63,86,81,72,63,47,55,72,63,2,29,72,63,207,2,72,63,150,232,71,63,88,206,71,63,20,180,71,63,202,153,71,63,122,127,71,63,37,101,71,63,202,74,71,63,105,48,71,63,2,22,71,63,150,251,70,63,35,225,70,63,172,198,70,63,46,172,70,63,171,145,70,63,34,119,70,63,147,92,70,63,255,65,70,63,101,39,70,63,197,12,
70,63,32,242,69,63,116,215,69,63,196,188,69,63,13,162,69,63,81,135,69,63,144,108,69,63,201,81,69,63,252,54,69,63,41,28,69,63,81,1,69,63,115,230,68,63,144,203,68,63,167,176,68,63,185,149,68,63,197,122,68,63,203,95,68,63,204,68,68,63,199,41,68,63,189,14,68,63,173,243,67,63,152,216,67,63,125,189,67,63,92,162,67,63,54,135,67,63,11,108,67,63,218,80,67,63,163,53,67,63,103,26,67,63,38,255,66,63,223,227,66,63,147,200,66,63,65,173,66,63,233,145,66,63,141,118,66,63,42,91,66,63,195,63,66,63,86,36,66,63,227,
8,66,63,107,237,65,63,238,209,65,63,107,182,65,63,227,154,65,63,85,127,65,63,194,99,65,63,42,72,65,63,140,44,65,63,233,16,65,63,65,245,64,63,147,217,64,63,224,189,64,63,40,162,64,63,106,134,64,63,167,106,64,63,222,78,64,63,17,51,64,63,62,23,64,63,101,251,63,63,136,223,63,63,165,195,63,63,189,167,63,63,207,139,63,63,220,111,63,63,228,83,63,63,231,55,63,63,229,27,63,63,221,255,62,63,208,227,62,63,190,199,62,63,167,171,62,63,138,143,62,63,104,115,62,63,65,87,62,63,21,59,62,63,228,30,62,63,173,2,62,63,
113,230,61,63,48,202,61,63,234,173,61,63,159,145,61,63,79,117,61,63,249,88,61,63,159,60,61,63,63,32,61,63,218,3,61,63,112,231,60,63,1,203,60,63,141,174,60,63,20,146,60,63,150,117,60,63,18,89,60,63,138,60,60,63,253,31,60,63,106,3,60,63,210,230,59,63,54,202,59,63,148,173,59,63,237,144,59,63,66,116,59,63,145,87,59,63,219,58,59,63,33,30,59,63,97,1,59,63,156,228,58,63,211,199,58,63,4,171,58,63,48,142,58,63,88,113,58,63,122,84,58,63,152,55,58,63,176,26,58,63,196,253,57,63,211,224,57,63,221,195,57,63,226,
166,57,63,226,137,57,63,221,108,57,63,211,79,57,63,197,50,57,63,177,21,57,63,153,248,56,63,124,219,56,63,90,190,56,63,51,161,56,63,7,132,56,63,214,102,56,63,161,73,56,63,103,44,56,63,40,15,56,63,228,241,55,63,155,212,55,63,78,183,55,63,252,153,55,63,165,124,55,63,73,95,55,63,233,65,55,63,132,36,55,63,26,7,55,63,171,233,54,63,55,204,54,63,191,174,54,63,66,145,54,63,193,115,54,63,59,86,54,63,176,56,54,63,32,27,54,63,140,253,53,63,243,223,53,63,85,194,53,63,179,164,53,63,12,135,53,63,96,105,53,63,176,
75,53,63,251,45,53,63,65,16,53,63,131,242,52,63,192,212,52,63,249,182,52,63,45,153,52,63,92,123,52,63,135,93,52,63,174,63,52,63,207,33,52,63,236,3,52,63,5,230,51,63,25,200,51,63,41,170,51,63,52,140,51,63,58,110,51,63,60,80,51,63,58,50,51,63,50,20,51,63,39,246,50,63,23,216,50,63,2,186,50,63,233,155,50,63,204,125,50,63,170,95,50,63,132,65,50,63,89,35,50,63,42,5,50,63,246,230,49,63,190,200,49,63,129,170,49,63,64,140,49,63,251,109,49,63,177,79,49,63,99,49,49,63,17,19,49,63,186,244,48,63,95,214,48,63,
255,183,48,63,155,153,48,63,51,123,48,63,198,92,48,63,86,62,48,63,224,31,48,63,103,1,48,63,233,226,47,63,103,196,47,63,224,165,47,63,85,135,47,63,198,104,47,63,51,74,47,63,156,43,47,63,0,13,47,63,96,238,46,63,187,207,46,63,19,177,46,63,102,146,46,63,181,115,46,63,0,85,46,63,71,54,46,63,137,23,46,63,199,248,45,63,1,218,45,63,55,187,45,63,105,156,45,63,151,125,45,63,192,94,45,63,229,63,45,63,6,33,45,63,35,2,45,63,60,227,44,63,81,196,44,63,98,165,44,63,110,134,44,63,119,103,44,63,123,72,44,63,123,41,
44,63,119,10,44,63,112,235,43,63,100,204,43,63,84,173,43,63,64,142,43,63,40,111,43,63,12,80,43,63,236,48,43,63,200,17,43,63,159,242,42,63,115,211,42,63,67,180,42,63,15,149,42,63,215,117,42,63,155,86,42,63,91,55,42,63,23,24,42,63,208,248,41,63,132,217,41,63,52,186,41,63,224,154,41,63,137,123,41,63,45,92,41,63,206,60,41,63,107,29,41,63,4,254,40,63,153,222,40,63,42,191,40,63,183,159,40,63,65,128,40,63,198,96,40,63,72,65,40,63,198,33,40,63,64,2,40,63,182,226,39,63,40,195,39,63,151,163,39,63,2,132,39,
63,105,100,39,63,204,68,39,63,44,37,39,63,136,5,39,63,224,229,38,63,52,198,38,63,132,166,38,63,209,134,38,63,26,103,38,63,95,71,38,63,161,39,38,63,223,7,38,63,25,232,37,63,80,200,37,63,130,168,37,63,178,136,37,63,221,104,37,63,5,73,37,63,41,41,37,63,74,9,37,63,103,233,36,63,128,201,36,63,149,169,36,63,168,137,36,63,182,105,36,63,193,73,36,63,200,41,36,63,204,9,36,63,204,233,35,63,200,201,35,63,193,169,35,63,183,137,35,63,169,105,35,63,151,73,35,63,130,41,35,63,105,9,35,63,77,233,34,63,45,201,34,63,
10,169,34,63,227,136,34,63,185,104,34,63,139,72,34,63,90,40,34,63,37,8,34,63,237,231,33,63,178,199,33,63,115,167,33,63,48,135,33,63,235,102,33,63,161,70,33,63,85,38,33,63,5,6,33,63,177,229,32,63,91,197,32,63,0,165,32,63,163,132,32,63,66,100,32,63,222,67,32,63,118,35,32,63,11,3,32,63,157,226,31,63,43,194,31,63,182,161,31,63,62,129,31,63,195,96,31,63,68,64,31,63,194,31,31,63,60,255,30,63,180,222,30,63,40,190,30,63,153,157,30,63,6,125,30,63,112,92,30,63,216,59,30,63,59,27,30,63,156,250,29,63,250,217,
29,63,84,185,29,63,171,152,29,63,255,119,29,63,80,87,29,63,157,54,29,63,232,21,29,63,47,245,28,63,115,212,28,63,180,179,28,63,242,146,28,63,44,114,28,63,100,81,28,63,152,48,28,63,202,15,28,63,248,238,27,63,35,206,27,63,76,173,27,63,113,140,27,63,147,107,27,63,178,74,27,63,205,41,27,63,230,8,27,63,252,231,26,63,15,199,26,63,31,166,26,63,44,133,26,63,53,100,26,63,60,67,26,63,64,34,26,63,65,1,26,63,63,224,25,63,58,191,25,63,50,158,25,63,39,125,25,63,25,92,25,63,8,59,25,63,244,25,25,63,222,248,24,63,
196,215,24,63,167,182,24,63,136,149,24,63,102,116,24,63,65,83,24,63,25,50,24,63,238,16,24,63,192,239,23,63,144,206,23,63,92,173,23,63,38,140,23,63,237,106,23,63,177,73,23,63,115,40,23,63,49,7,23,63,237,229,22,63,166,196,22,63,92,163,22,63,16,130,22,63,192,96,22,63,110,63,22,63,26,30,22,63,194,252,21,63,104,219,21,63,11,186,21,63,171,152,21,63,73,119,21,63,228,85,21,63,124,52,21,63,18,19,21,63,165,241,20,63,53,208,20,63,194,174,20,63,77,141,20,63,214,107,20,63,91,74,20,63,222,40,20,63,95,7,20,63,221,
229,19,63,88,196,19,63,209,162,19,63,71,129,19,63,186,95,19,63,43,62,19,63,153,28,19,63,5,251,18,63,110,217,18,63,213,183,18,63,57,150,18,63,155,116,18,63,250,82,18,63,87,49,18,63,177,15,18,63,9,238,17,63,94,204,17,63,176,170,17,63,1,137,17,63,79,103,17,63,154,69,17,63,227,35,17,63,41,2,17,63,109,224,16,63,175,190,16,63,238,156,16,63,43,123,16,63,101,89,16,63,157,55,16,63,211,21,16,63,6,244,15,63,55,210,15,63,102,176,15,63,146,142,15,63,188,108,15,63,227,74,15,63,8,41,15,63,43,7,15,63,76,229,14,63,
106,195,14,63,134,161,14,63,160,127,14,63,183,93,14,63,204,59,14,63,223,25,14,63,240,247,13,63,254,213,13,63,10,180,13,63,20,146,13,63,28,112,13,63,34,78,13,63,37,44,13,63,38,10,13,63,37,232,12,63,34,198,12,63,28,164,12,63,20,130,12,63,11,96,12,63,255,61,12,63,241,27,12,63,225,249,11,63,206,215,11,63,186,181,11,63,163,147,11,63,139,113,11,63,112,79,11,63,83,45,11,63,52,11,11,63,19,233,10,63,240,198,10,63,203,164,10,63,164,130,10,63,123,96,10,63,79,62,10,63,34,28,10,63,243,249,9,63,194,215,9,63,142,
181,9,63,89,147,9,63,34,113,9,63,233,78,9,63,173,44,9,63,112,10,9,63,49,232,8,63,240,197,8,63,173,163,8,63,104,129,8,63,34,95,8,63,217,60,8,63,142,26,8,63,66,248,7,63,243,213,7,63,163,179,7,63,81,145,7,63,253,110,7,63,167,76,7,63,79,42,7,63,246,7,7,63,154,229,6,63,61,195,6,63,222,160,6,63,125,126,6,63,26,92,6,63,182,57,6,63,80,23,6,63,232,244,5,63,126,210,5,63,18,176,5,63,165,141,5,63,54,107,5,63,197,72,5,63,83,38,5,63,223,3,5,63,105,225,4,63,241,190,4,63,120,156,4,63,253,121,4,63,128,87,4,63,2,53,
4,63,130,18,4,63,0,240,3,63,125,205,3,63,248,170,3,63,113,136,3,63,233,101,3,63,95,67,3,63,212,32,3,63,71,254,2,63,184,219,2,63,40,185,2,63,150,150,2,63,2,116,2,63,110,81,2,63,215,46,2,63,63,12,2,63,165,233,1,63,10,199,1,63,110,164,1,63,208,129,1,63,48,95,1,63,143,60,1,63,236,25,1,63,72,247,0,63,162,212,0,63,251,177,0,63,83,143,0,63,169,108,0,63,254,73,0,63,81,39,0,63,162,4,0,63,230,195,255,62,131,126,255,62,30,57,255,62,183,243,254,62,76,174,254,62,223,104,254,62,111,35,254,62,252,221,253,62,135,
152,253,62,15,83,253,62,148,13,253,62,22,200,252,62,150,130,252,62,19,61,252,62,142,247,251,62,6,178,251,62,124,108,251,62,239,38,251,62,95,225,250,62,205,155,250,62,56,86,250,62,161,16,250,62,7,203,249,62,107,133,249,62,204,63,249,62,43,250,248,62,136,180,248,62,226,110,248,62,58,41,248,62,143,227,247,62,226,157,247,62,51,88,247,62,130,18,247,62,206,204,246,62,23,135,246,62,95,65,246,62,164,251,245,62,231,181,245,62,40,112,245,62,103,42,245,62,163,228,244,62,221,158,244,62,21,89,244,62,75,19,244,
62,127,205,243,62,176,135,243,62,224,65,243,62,13,252,242,62,57,182,242,62,98,112,242,62,137,42,242,62,175,228,241,62,210,158,241,62,243,88,241,62,19,19,241,62,48,205,240,62,75,135,240,62,101,65,240,62,124,251,239,62,146,181,239,62,166,111,239,62,184,41,239,62,200,227,238,62,214,157,238,62,227,87,238,62,237,17,238,62,246,203,237,62,253,133,237,62,3,64,237,62,6,250,236,62,8,180,236,62,9,110,236,62,7,40,236,62,4,226,235,62,255,155,235,62,249,85,235,62,241,15,235,62,231,201,234,62,220,131,234,62,207,
61,234,62,193,247,233,62,177,177,233,62,159,107,233,62,140,37,233,62,120,223,232,62,98,153,232,62,75,83,232,62,50,13,232,62,24,199,231,62,252,128,231,62,223,58,231,62,192,244,230,62,161,174,230,62,127,104,230,62,93,34,230,62,57,220,229,62,20,150,229,62,238,79,229,62,198,9,229,62,157,195,228,62,115,125,228,62,71,55,228,62,27,241,227,62,237,170,227,62,190,100,227,62,142,30,227,62,93,216,226,62,42,146,226,62,247,75,226,62,194,5,226,62,140,191,225,62,86,121,225,62,30,51,225,62,229,236,224,62,171,166,
224,62,112,96,224,62,52,26,224,62,248,211,223,62,186,141,223,62,123,71,223,62,60,1,223,62,251,186,222,62,186,116,222,62,119,46,222,62,52,232,221,62,240,161,221,62,171,91,221,62,102,21,221,62,31,207,220,62,216,136,220,62,144,66,220,62,72,252,219,62,254,181,219,62,180,111,219,62,105,41,219,62,30,227,218,62,209,156,218,62,133,86,218,62,55,16,218,62,233,201,217,62,154,131,217,62,75,61,217,62,251,246,216,62,171,176,216,62,90,106,216,62,8,36,216,62,182,221,215,62,100,151,215,62,17,81,215,62,189,10,215,
62,106,196,214,62,21,126,214,62,193,55,214,62,107,241,213,62,22,171,213,62,192,100,213,62,106,30,213,62,19,216,212,62,189,145,212,62,101,75,212,62,14,5,212,62,182,190,211,62,94,120,211,62,6,50,211,62,174,235,210,62,85,165,210,62,252,94,210,62,163,24,210,62,74,210,209,62,240,139,209,62,151,69,209,62,61,255,208,62,228,184,208,62,138,114,208,62,48,44,208,62,214,229,207,62,124,159,207,62,35,89,207,62,201,18,207,62,111,204,206,62,21,134,206,62,187,63,206,62,97,249,205,62,7,179,205,62,174,108,205,62,84,
38,205,62,251,223,204,62,162,153,204,62,73,83,204,62,240,12,204,62,151,198,203,62,62,128,203,62,230,57,203,62,142,243,202,62,54,173,202,62,223,102,202,62,135,32,202,62,48,218,201,62,218,147,201,62,131,77,201,62,45,7,201,62,215,192,200,62,130,122,200,62,45,52,200,62,217,237,199,62,133,167,199,62,49,97,199,62,222,26,199,62,139,212,198,62,57,142,198,62,231,71,198,62,150,1,198,62,69,187,197,62,245,116,197,62,166,46,197,62,87,232,196,62,8,162,196,62,186,91,196,62,109,21,196,62,33,207,195,62,213,136,195,
62,138,66,195,62,63,252,194,62,245,181,194,62,172,111,194,62,100,41,194,62,28,227,193,62,213,156,193,62,143,86,193,62,74,16,193,62,5,202,192,62,194,131,192,62,127,61,192,62,61,247,191,62,252,176,191,62,188,106,191,62,124,36,191,62,62,222,190,62,1,152,190,62,196,81,190,62,137,11,190,62,78,197,189,62,21,127,189,62,220,56,189,62,165,242,188,62,110,172,188,62,57,102,188,62,5,32,188,62,209,217,187,62,159,147,187,62,110,77,187,62,62,7,187,62,16,193,186,62,226,122,186,62,182,52,186,62,139,238,185,62,97,
168,185,62,56,98,185,62,17,28,185,62,235,213,184,62,198,143,184,62,162,73,184,62,128,3,184,62,95,189,183,62,63,119,183,62,33,49,183,62,4,235,182,62,232,164,182,62,206,94,182,62,182,24,182,62,158,210,181,62,136,140,181,62,116,70,181,62,97,0,181,62,80,186,180,62,64,116,180,62,50,46,180,62,37,232,179,62,25,162,179,62,16,92,179,62,8,22,179,62,1,208,178,62,252,137,178,62,249,67,178,62,247,253,177,62,247,183,177,62,249,113,177,62,253,43,177,62,2,230,176,62,9,160,176,62,17,90,176,62,27,20,176,62,40,206,
175,62,53,136,175,62,69,66,175,62,87,252,174,62,106,182,174,62,127,112,174,62,150,42,174,62,175,228,173,62,202,158,173,62,231,88,173,62,5,19,173,62,38,205,172,62,73,135,172,62,109,65,172,62,148,251,171,62,188,181,171,62,231,111,171,62,19,42,171,62,66,228,170,62,114,158,170,62,165,88,170,62,218,18,170,62,17,205,169,62,74,135,169,62,133,65,169,62,194,251,168,62,2,182,168,62,68,112,168,62,136,42,168,62,206,228,167,62,22,159,167,62,96,89,167,62,173,19,167,62,252,205,166,62,78,136,166,62,161,66,166,62,
247,252,165,62,80,183,165,62,171,113,165,62,8,44,165,62,103,230,164,62,201,160,164,62,45,91,164,62,148,21,164,62,253,207,163,62,104,138,163,62,214,68,163,62,71,255,162,62,186,185,162,62,47,116,162,62,167,46,162,62,34,233,161,62,159,163,161,62,31,94,161,62,161,24,161,62,38,211,160,62,174,141,160,62,56,72,160,62,197,2,160,62,84,189,159,62,231,119,159,62,123,50,159,62,19,237,158,62,173,167,158,62,74,98,158,62,234,28,158,62,141,215,157,62,50,146,157,62,218,76,157,62,133,7,157,62,51,194,156,62,228,124,
156,62,151,55,156,62,78,242,155,62,7,173,155,62,195,103,155,62,130,34,155,62,68,221,154,62,9,152,154,62,209,82,154,62,156,13,154,62,106,200,153,62,59,131,153,62,15,62,153,62,230,248,152,62,192,179,152,62,157,110,152,62,125,41,152,62,97,228,151,62,71,159,151,62,49,90,151,62,29,21,151,62,13,208,150,62,0,139,150,62,247,69,150,62,240,0,150,62,237,187,149,62,237,118,149,62,240,49,149,62,246,236,148,62,0,168,148,62,13,99,148,62,29,30,148,62,48,217,147,62,71,148,147,62,98,79,147,62,127,10,147,62,160,197,
146,62,197,128,146,62,237,59,146,62,24,247,145,62,70,178,145,62,121,109,145,62,174,40,145,62,231,227,144,62,36,159,144,62,100,90,144,62,168,21,144,62,239,208,143,62,57,140,143,62,136,71,143,62,218,2,143,62,47,190,142,62,136,121,142,62,229,52,142,62,69,240,141,62,169,171,141,62,17,103,141,62,124,34,141,62,235,221,140,62,94,153,140,62,213,84,140,62,79,16,140,62,205,203,139,62,79,135,139,62,212,66,139,62,94,254,138,62,235,185,138,62,124,117,138,62,17,49,138,62,170,236,137,62,70,168,137,62,231,99,137,
62,139,31,137,62,52,219,136,62,224,150,136,62,144,82,136,62,69,14,136,62,253,201,135,62,185,133,135,62,121,65,135,62,61,253,134,62,6,185,134,62,210,116,134,62,162,48,134,62,119,236,133,62,79,168,133,62,44,100,133,62,13,32,133,62,242,219,132,62,219,151,132,62,200,83,132,62,185,15,132,62,175,203,131,62,169,135,131,62,167,67,131,62,169,255,130,62,176,187,130,62,186,119,130,62,201,51,130,62,221,239,129,62,244,171,129,62,16,104,129,62,49,36,129,62,85,224,128,62,126,156,128,62,172,88,128,62,222,20,128,
62,40,162,127,62,157,26,127,62,27,147,126,62,163,11,126,62,51,132,125,62,204,252,124,62,110,117,124,62,25,238,123,62,205,102,123,62,138,223,122,62,80,88,122,62,31,209,121,62,248,73,121,62,217,194,120,62,196,59,120,62,184,180,119,62,182,45,119,62,189,166,118,62,205,31,118,62,230,152,117,62,9,18,117,62,53,139,116,62,107,4,116,62,170,125,115,62,242,246,114,62,69,112,114,62,160,233,113,62,6,99,113,62,116,220,112,62,237,85,112,62,111,207,111,62,251,72,111,62,145,194,110,62,48,60,110,62,217,181,109,62,
140,47,109,62,73,169,108,62,15,35,108,62,224,156,107,62,186,22,107,62,159,144,106,62,141,10,106,62,133,132,105,62,136,254,104,62,148,120,104,62,171,242,103,62,203,108,103,62,246,230,102,62,43,97,102,62,106,219,101,62,180,85,101,62,7,208,100,62,101,74,100,62,205,196,99,62,64,63,99,62,189,185,98,62,68,52,98,62,214,174,97,62,114,41,97,62,24,164,96,62,201,30,96,62,133,153,95,62,75,20,95,62,28,143,94,62,247,9,94,62,221,132,93,62,206,255,92,62,201,122,92,62,208,245,91,62,224,112,91,62,252,235,90,62,34,
103,90,62,84,226,89,62,144,93,89,62,215,216,88,62,41,84,88,62,133,207,87,62,237,74,87,62,96,198,86,62,222,65,86,62,103,189,85,62,250,56,85,62,153,180,84,62,68,48,84,62,249,171,83,62,185,39,83,62,133,163,82,62,92,31,82,62,62,155,81,62,44,23,81,62,36,147,80,62,41,15,80,62,56,139,79,62,83,7,79,62,121,131,78,62,171,255,77,62,232,123,77,62,49,248,76,62,133,116,76,62,229,240,75,62,81,109,75,62,200,233,74,62,75,102,74,62,217,226,73,62,115,95,73,62,25,220,72,62,202,88,72,62,136,213,71,62,81,82,71,62,38,207,
70,62,6,76,70,62,243,200,69,62,236,69,69,62,240,194,68,62,1,64,68,62,29,189,67,62,70,58,67,62,122,183,66,62,187,52,66,62,7,178,65,62,96,47,65,62,197,172,64,62,54,42,64,62,179,167,63,62,61,37,63,62,211,162,62,62,117,32,62,62,35,158,61,62,222,27,61,62,165,153,60,62,120,23,60,62,88,149,59,62,69,19,59,62,61,145,58,62,67,15,58,62,84,141,57,62,115,11,57,62,157,137,56,62,213,7,56,62,25,134,55,62,106,4,55,62,199,130,54,62,49,1,54,62,168,127,53,62,44,254,52,62,188,124,52,62,89,251,51,62,3,122,51,62,186,248,
50,62,126,119,50,62,78,246,49,62,44,117,49,62,22,244,48,62,14,115,48,62,18,242,47,62,36,113,47,62,66,240,46,62,110,111,46,62,167,238,45,62,237,109,45,62,64,237,44,62,160,108,44,62,14,236,43,62,136,107,43,62,16,235,42,62,166,106,42,62,72,234,41,62,248,105,41,62,182,233,40,62,128,105,40,62,88,233,39,62,62,105,39,62,49,233,38,62,50,105,38,62,64,233,37,62,91,105,37,62,132,233,36,62,187,105,36,62,0,234,35,62,82,106,35,62,178,234,34,62,31,107,34,62,154,235,33,62,35,108,33,62,186,236,32,62,94,109,32,62,
17,238,31,62,209,110,31,62,159,239,30,62,123,112,30,62,101,241,29,62,92,114,29,62,98,243,28,62,118,116,28,62,152,245,27,62,200,118,27,62,6,248,26,62,82,121,26,62,172,250,25,62,20,124,25,62,139,253,24,62,16,127,24,62,163,0,24,62,68,130,23,62,243,3,23,62,177,133,22,62,125,7,22,62,88,137,21,62,65,11,21,62,56,141,20,62,61,15,20,62,82,145,19,62,116,19,19,62,165,149,18,62,229,23,18,62,51,154,17,62,144,28,17,62,251,158,16,62,117,33,16,62,254,163,15,62,149,38,15,62,59,169,14,62,240,43,14,62,179,174,13,62,
133,49,13,62,102,180,12,62,86,55,12,62,85,186,11,62,98,61,11,62,127,192,10,62,170,67,10,62,228,198,9,62,46,74,9,62,134,205,8,62,237,80,8,62,99,212,7,62,233,87,7,62,125,219,6,62,33,95,6,62,211,226,5,62,149,102,5,62,102,234,4,62,70,110,4,62,54,242,3,62,53,118,3,62,67,250,2,62,96,126,2,62,140,2,2,62,200,134,1,62,20,11,1,62,110,143,0,62,217,19,0,62,164,48,255,61,182,57,254,61,232,66,253,61,56,76,252,61,167,85,251,61,53,95,250,61,227,104,249,61,176,114,248,61,156,124,247,61,167,134,246,61,210,144,245,
61,28,155,244,61,133,165,243,61,14,176,242,61,183,186,241,61,127,197,240,61,103,208,239,61,111,219,238,61,150,230,237,61,221,241,236,61,68,253,235,61,203,8,235,61,114,20,234,61,56,32,233,61,31,44,232,61,38,56,231,61,77,68,230,61,148,80,229,61,251,92,228,61,131,105,227,61,43,118,226,61,243,130,225,61,219,143,224,61,228,156,223,61,14,170,222,61,88,183,221,61,195,196,220,61,78,210,219,61,250,223,218,61,198,237,217,61,180,251,216,61,194,9,216,61,241,23,215,61,65,38,214,61,178,52,213,61,68,67,212,61,247,
81,211,61,203,96,210,61,192,111,209,61,214,126,208,61,14,142,207,61,103,157,206,61,225,172,205,61,124,188,204,61,57,204,203,61,23,220,202,61,23,236,201,61,56,252,200,61,123,12,200,61,224,28,199,61,102,45,198,61,14,62,197,61,216,78,196,61,195,95,195,61,208,112,194,61,0,130,193,61,81,147,192,61,196,164,191,61,89,182,190,61,16,200,189,61,234,217,188,61,229,235,187,61,3,254,186,61,67,16,186,61,165,34,185,61,42,53,184,61,209,71,183,61,154,90,182,61,134,109,181,61,149,128,180,61,198,147,179,61,25,167,178,
61,144,186,177,61,41,206,176,61,228,225,175,61,195,245,174,61,196,9,174,61,232,29,173,61,47,50,172,61,153,70,171,61,38,91,170,61,214,111,169,61,169,132,168,61,160,153,167,61,185,174,166,61,246,195,165,61,86,217,164,61,217,238,163,61,127,4,163,61,73,26,162,61,55,48,161,61,72,70,160,61,124,92,159,61,212,114,158,61,79,137,157,61,239,159,156,61,177,182,155,61,152,205,154,61,162,228,153,61,209,251,152,61,35,19,152,61,153,42,151,61,51,66,150,61,240,89,149,61,210,113,148,61,216,137,147,61,3,162,146,61,81,
186,145,61,195,210,144,61,90,235,143,61,21,4,143,61,244,28,142,61,248,53,141,61,32,79,140,61,109,104,139,61,222,129,138,61,115,155,137,61,45,181,136,61,12,207,135,61,16,233,134,61,56,3,134,61,133,29,133,61,246,55,132,61,141,82,131,61,72,109,130,61,41,136,129,61,46,163,128,61,176,124,127,61,79,179,125,61,55,234,123,61,106,33,122,61,232,88,120,61,175,144,118,61,193,200,116,61,30,1,115,61,197,57,113,61,184,114,111,61,244,171,109,61,124,229,107,61,79,31,106,61,109,89,104,61,214,147,102,61,138,206,100,
61,137,9,99,61,212,68,97,61,106,128,95,61,76,188,93,61,121,248,91,61,243,52,90,61,183,113,88,61,200,174,86,61,37,236,84,61,206,41,83,61,194,103,81,61,3,166,79,61,145,228,77,61,106,35,76,61,144,98,74,61,3,162,72,61,194,225,70,61,206,33,69,61,38,98,67,61,204,162,65,61,190,227,63,61,253,36,62,61,137,102,60,61,99,168,58,61,137,234,56,61,253,44,55,61,190,111,53,61,205,178,51,61,41,246,49,61,211,57,48,61,203,125,46,61,16,194,44,61,163,6,43,61,132,75,41,61,179,144,39,61,48,214,37,61,251,27,36,61,21,98,34,
61,125,168,32,61,51,239,30,61,55,54,29,61,138,125,27,61,44,197,25,61,29,13,24,61,92,85,22,61,234,157,20,61,199,230,18,61,243,47,17,61,110,121,15,61,56,195,13,61,81,13,12,61,186,87,10,61,114,162,8,61,121,237,6,61,208,56,5,61,119,132,3,61,109,208,1,61,179,28,0,61,146,210,252,60,94,108,249,60,201,6,246,60,213,161,242,60,128,61,239,60,205,217,235,60,185,118,232,60,71,20,229,60,117,178,225,60,68,81,222,60,181,240,218,60,198,144,215,60,122,49,212,60,206,210,208,60,197,116,205,60,93,23,202,60,151,186,198,
60,116,94,195,60,243,2,192,60,20,168,188,60,216,77,185,60,63,244,181,60,72,155,178,60,245,66,175,60,69,235,171,60,56,148,168,60,207,61,165,60,9,232,161,60,231,146,158,60,105,62,155,60,143,234,151,60,89,151,148,60,200,68,145,60,219,242,141,60,147,161,138,60,239,80,135,60,241,0,132,60,151,177,128,60,198,197,122,60,168,41,116,60,213,142,109,60,77,245,102,60,17,93,96,60,33,198,89,60,125,48,83,60,37,156,76,60,26,9,70,60,92,119,63,60,235,230,56,60,200,87,50,60,242,201,43,60,106,61,37,60,49,178,30,60,71,
40,24,60,171,159,17,60,95,24,11,60,98,146,4,60,105,27,252,59,175,20,239,59,149,16,226,59,28,15,213,59,69,16,200,59,16,20,187,59,126,26,174,59,143,35,161,59,69,47,148,59,158,61,135,59,57,157,116,59,130,196,90,59,22,241,64,59,247,34,39,59,39,90,13,59,76,45,231,58,235,176,179,58,45,63,128,58,40,176,25,58,20,221,75,57,45,177,78,185,132,58,26,186,177,89,128,186,112,139,179,186,125,178,230,186,107,231,12,187,60,112,38,187,178,243,63,187,201,113,89,187,131,234,114,187,239,46,134,187,236,229,146,187,56,154,
159,187,211,75,172,187,188,250,184,187,243,166,197,187,119,80,210,187,72,247,222,187,101,155,235,187,205,60,248,187,193,109,2,188,192,187,8,188,100,8,15,188,173,83,21,188,154,157,27,188,44,230,33,188,98,45,40,188,59,115,46,188,184,183,52,188,216,250,58,188,156,60,65,188,1,125,71,188,10,188,77,188,180,249,83,188,1,54,90,188,239,112,96,188,127,170,102,188,176,226,108,188,130,25,115,188,245,78,121,188,8,131,127,188,222,218,130,188,135,243,133,188,129,11,137,188,202,34,140,188,99,57,143,188,75,79,146,
188,131,100,149,188,10,121,152,188,224,140,155,188,5,160,158,188,121,178,161,188,60,196,164,188,77,213,167,188,173,229,170,188,91,245,173,188,87,4,177,188,162,18,180,188,59,32,183,188,33,45,186,188,85,57,189,188,215,68,192,188,167,79,195,188,196,89,198,188,46,99,201,188,229,107,204,188,233,115,207,188,59,123,210,188,217,129,213,188,196,135,216,188,251,140,219,188,127,145,222,188,79,149,225,188,108,152,228,188,212,154,231,188,137,156,234,188,137,157,237,188,213,157,240,188,109,157,243,188,81,156,246,
188,127,154,249,188,249,151,252,188,191,148,255,188,103,72,1,189,21,198,2,189,104,67,4,189,96,192,5,189,254,60,7,189,65,185,8,189,41,53,10,189,182,176,11,189,233,43,13,189,192,166,14,189,60,33,16,189,94,155,17,189,36,21,19,189,142,142,20,189,158,7,22,189,82,128,23,189,171,248,24,189,168,112,26,189,74,232,27,189,145,95,29,189,124,214,30,189,11,77,32,189,62,195,33,189,22,57,35,189,146,174,36,189,177,35,38,189,118,152,39,189,222,12,41,189,234,128,42,189,153,244,43,189,237,103,45,189,229,218,46,189,128,
77,48,189,191,191,49,189,162,49,51,189,40,163,52,189,81,20,54,189,31,133,55,189,143,245,56,189,163,101,58,189,90,213,59,189,181,68,61,189,179,179,62,189,84,34,64,189,152,144,65,189,127,254,66,189,9,108,68,189,54,217,69,189,6,70,71,189,120,178,72,189,142,30,74,189,70,138,75,189,161,245,76,189,158,96,78,189,63,203,79,189,129,53,81,189,102,159,82,189,238,8,84,189,24,114,85,189,228,218,86,189,83,67,88,189,99,171,89,189,22,19,91,189,107,122,92,189,98,225,93,189,251,71,95,189,55,174,96,189,20,20,98,189,
146,121,99,189,179,222,100,189,118,67,102,189,218,167,103,189,224,11,105,189,135,111,106,189,208,210,107,189,187,53,109,189,71,152,110,189,116,250,111,189,67,92,113,189,179,189,114,189,197,30,116,189,119,127,117,189,203,223,118,189,192,63,120,189,86,159,121,189,141,254,122,189,101,93,124,189,222,187,125,189,248,25,127,189,218,59,128,189,135,234,128,189,6,153,129,189,84,71,130,189,115,245,130,189,98,163,131,189,33,81,132,189,177,254,132,189,17,172,133,189,65,89,134,189,66,6,135,189,18,179,135,189,
179,95,136,189,35,12,137,189,100,184,137,189,117,100,138,189,86,16,139,189,7,188,139,189,136,103,140,189,217,18,141,189,250,189,141,189,235,104,142,189,172,19,143,189,60,190,143,189,157,104,144,189,205,18,145,189,206,188,145,189,158,102,146,189,61,16,147,189,173,185,147,189,236,98,148,189,251,11,149,189,218,180,149,189,136,93,150,189,6,6,151,189,84,174,151,189,113,86,152,189,94,254,152,189,27,166,153,189,167,77,154,189,2,245,154,189,45,156,155,189,39,67,156,189,241,233,156,189,139,144,157,189,243,
54,158,189,44,221,158,189,51,131,159,189,10,41,160,189,176,206,160,189,38,116,161,189,106,25,162,189,126,190,162,189,98,99,163,189,20,8,164,189,150,172,164,189,231,80,165,189,7,245,165,189,246,152,166,189,181,60,167,189,66,224,167,189,159,131,168,189,202,38,169,189,197,201,169,189,142,108,170,189,39,15,171,189,143,177,171,189,197,83,172,189,203,245,172,189,159,151,173,189,67,57,174,189,181,218,174,189,246,123,175,189,6,29,176,189,229,189,176,189,147,94,177,189,15,255,177,189,90,159,178,189,116,63,
179,189,93,223,179,189,20,127,180,189,154,30,181,189,239,189,181,189,18,93,182,189,4,252,182,189,197,154,183,189,84,57,184,189,178,215,184,189,222,117,185,189,217,19,186,189,162,177,186,189,58,79,187,189,161,236,187,189,213,137,188,189,217,38,189,189,170,195,189,189,75,96,190,189,185,252,190,189,246,152,191,189,1,53,192,189,219,208,192,189,131,108,193,189,249,7,194,189,62,163,194,189,81,62,195,189,50,217,195,189,225,115,196,189,95,14,197,189,170,168,197,189,196,66,198,189,172,220,198,189,98,118,199,
189,231,15,200,189,57,169,200,189,90,66,201,189,72,219,201,189,5,116,202,189,144,12,203,189,233,164,203,189,15,61,204,189,4,213,204,189,199,108,205,189,88,4,206,189,182,155,206,189,227,50,207,189,221,201,207,189,166,96,208,189,60,247,208,189,160,141,209,189,210,35,210,189,210,185,210,189,160,79,211,189,59,229,211,189,164,122,212,189,219,15,213,189,224,164,213,189,179,57,214,189,83,206,214,189,193,98,215,189,252,246,215,189,6,139,216,189,221,30,217,189,129,178,217,189,243,69,218,189,51,217,218,189,
65,108,219,189,28,255,219,189,196,145,220,189,58,36,221,189,126,182,221,189,143,72,222,189,110,218,222,189,26,108,223,189,148,253,223,189,219,142,224,189,239,31,225,189,209,176,225,189,129,65,226,189,254,209,226,189,72,98,227,189,95,242,227,189,68,130,228,189,247,17,229,189,118,161,229,189,195,48,230,189,222,191,230,189,197,78,231,189,122,221,231,189,252,107,232,189,75,250,232,189,104,136,233,189,82,22,234,189,9,164,234,189,141,49,235,189,222,190,235,189,253,75,236,189,233,216,236,189,162,101,237,
189,40,242,237,189,123,126,238,189,155,10,239,189,136,150,239,189,67,34,240,189,202,173,240,189,30,57,241,189,64,196,241,189,46,79,242,189,234,217,242,189,115,100,243,189,200,238,243,189,235,120,244,189,218,2,245,189,151,140,245,189,32,22,246,189,118,159,246,189,154,40,247,189,138,177,247,189,71,58,248,189,208,194,248,189,39,75,249,189,75,211,249,189,59,91,250,189,249,226,250,189,131,106,251,189,218,241,251,189,253,120,252,189,238,255,252,189,171,134,253,189,53,13,254,189,140,147,254,189,175,25,255,
189,159,159,255,189,174,18,0,190,115,85,0,190,30,152,0,190,176,218,0,190,39,29,1,190,134,95,1,190,202,161,1,190,245,227,1,190,6,38,2,190,253,103,2,190,219,169,2,190,159,235,2,190,74,45,3,190,218,110,3,190,81,176,3,190,174,241,3,190,242,50,4,190,27,116,4,190,43,181,4,190,34,246,4,190,254,54,5,190,193,119,5,190,106,184,5,190,249,248,5,190,110,57,6,190,202,121,6,190,12,186,6,190,52,250,6,190,66,58,7,190,55,122,7,190,18,186,7,190,210,249,7,190,122,57,8,190,7,121,8,190,122,184,8,190,212,247,8,190,20,55,
9,190,58,118,9,190,70,181,9,190,56,244,9,190,17,51,10,190,208,113,10,190,116,176,10,190,255,238,10,190,112,45,11,190,200,107,11,190,5,170,11,190,41,232,11,190,50,38,12,190,34,100,12,190,248,161,12,190,180,223,12,190,86,29,13,190,222,90,13,190,76,152,13,190,161,213,13,190,219,18,14,190,252,79,14,190,2,141,14,190,239,201,14,190,194,6,15,190,123,67,15,190,25,128,15,190,158,188,15,190,10,249,15,190,91,53,16,190,146,113,16,190,175,173,16,190,178,233,16,190,156,37,17,190,107,97,17,190,32,157,17,190,188,
216,17,190,61,20,18,190,165,79,18,190,242,138,18,190,38,198,18,190,63,1,19,190,63,60,19,190,36,119,19,190,240,177,19,190,161,236,19,190,57,39,20,190,182,97,20,190,26,156,20,190,100,214,20,190,147,16,21,190,169,74,21,190,164,132,21,190,134,190,21,190,77,248,21,190,250,49,22,190,142,107,22,190,7,165,22,190,102,222,22,190,172,23,23,190,215,80,23,190,232,137,23,190,223,194,23,190,188,251,23,190,128,52,24,190,41,109,24,190,183,165,24,190,44,222,24,190,135,22,25,190,200,78,25,190,239,134,25,190,251,190,
25,190,238,246,25,190,198,46,26,190,133,102,26,190,41,158,26,190,179,213,26,190,35,13,27,190,122,68,27,190,182,123,27,190,215,178,27,190,223,233,27,190,205,32,28,190,161,87,28,190,90,142,28,190,250,196,28,190,127,251,28,190,234,49,29,190,59,104,29,190,114,158,29,190,143,212,29,190,146,10,30,190,123,64,30,190,73,118,30,190,254,171,30,190,152,225,30,190,24,23,31,190,126,76,31,190,202,129,31,190,252,182,31,190,20,236,31,190,17,33,32,190,245,85,32,190,190,138,32,190,109,191,32,190,2,244,32,190,125,40,
33,190,222,92,33,190,37,145,33,190,81,197,33,190,100,249,33,190,92,45,34,190,58,97,34,190,254,148,34,190,168,200,34,190,56,252,34,190,173,47,35,190,9,99,35,190,74,150,35,190,113,201,35,190,126,252,35,190,113,47,36,190,73,98,36,190,8,149,36,190,172,199,36,190,54,250,36,190,166,44,37,190,252,94,37,190,56,145,37,190,89,195,37,190,97,245,37,190,78,39,38,190,33,89,38,190,218,138,38,190,121,188,38,190,253,237,38,190,104,31,39,190,184,80,39,190,238,129,39,190,10,179,39,190,12,228,39,190,244,20,40,190,193,
69,40,190,116,118,40,190,13,167,40,190,140,215,40,190,241,7,41,190,60,56,41,190,108,104,41,190,131,152,41,190,127,200,41,190,97,248,41,190,41,40,42,190,214,87,42,190,106,135,42,190,227,182,42,190,66,230,42,190,135,21,43,190,178,68,43,190,195,115,43,190,185,162,43,190,150,209,43,190,88,0,44,190,0,47,44,190,142,93,44,190,1,140,44,190,91,186,44,190,154,232,44,190,192,22,45,190,203,68,45,190,188,114,45,190,146,160,45,190,79,206,45,190,241,251,45,190,122,41,46,190,232,86,46,190,60,132,46,190,117,177,46,
190,149,222,46,190,155,11,47,190,134,56,47,190,87,101,47,190,14,146,47,190,171,190,47,190,46,235,47,190,150,23,48,190,229,67,48,190,25,112,48,190,51,156,48,190,51,200,48,190,25,244,48,190,229,31,49,190,150,75,49,190,46,119,49,190,171,162,49,190,14,206,49,190,87,249,49,190,134,36,50,190,155,79,50,190,150,122,50,190,118,165,50,190,61,208,50,190,233,250,50,190,123,37,51,190,243,79,51,190,81,122,51,190,149,164,51,190,190,206,51,190,206,248,51,190,195,34,52,190,159,76,52,190,96,118,52,190,7,160,52,190,
148,201,52,190,7,243,52,190,95,28,53,190,158,69,53,190,195,110,53,190,205,151,53,190,190,192,53,190,148,233,53,190,80,18,54,190,242,58,54,190,122,99,54,190,232,139,54,190,60,180,54,190,117,220,54,190,149,4,55,190,155,44,55,190,134,84,55,190,88,124,55,190,15,164,55,190,172,203,55,190,47,243,55,190,153,26,56,190,232,65,56,190,29,105,56,190,56,144,56,190,56,183,56,190,31,222,56,190,236,4,57,190,159,43,57,190,56,82,57,190,182,120,57,190,27,159,57,190,102,197,57,190,150,235,57,190,173,17,58,190,169,55,
58,190,140,93,58,190,84,131,58,190,3,169,58,190,151,206,58,190,17,244,58,190,114,25,59,190,184,62,59,190,229,99,59,190,247,136,59,190,239,173,59,190,206,210,59,190,146,247,59,190,60,28,60,190,205,64,60,190,67,101,60,190,160,137,60,190,226,173,60,190,11,210,60,190,25,246,60,190,14,26,61,190,232,61,61,190,169,97,61,190,80,133,61,190,221,168,61,190,79,204,61,190,168,239,61,190,231,18,62,190,12,54,62,190,23,89,62,190,8,124,62,190,223,158,62,190,157,193,62,190,64,228,62,190,201,6,63,190,57,41,63,190,142,
75,63,190,202,109,63,190,236,143,63,190,244,177,63,190,226,211,63,190,182,245,63,190,112,23,64,190,16,57,64,190,151,90,64,190,3,124,64,190,86,157,64,190,143,190,64,190,174,223,64,190,179,0,65,190,158,33,65,190,112,66,65,190,39,99,65,190,197,131,65,190,73,164,65,190,179,196,65,190,3,229,65,190,58,5,66,190,86,37,66,190,89,69,66,190,66,101,66,190,17,133,66,190,199,164,66,190,98,196,66,190,228,227,66,190,76,3,67,190,154,34,67,190,207,65,67,190,234,96,67,190,235,127,67,190,210,158,67,190,159,189,67,190,
83,220,67,190,237,250,67,190,109,25,68,190,211,55,68,190,32,86,68,190,83,116,68,190,108,146,68,190,108,176,68,190,81,206,68,190,29,236,68,190,208,9,69,190,105,39,69,190,232,68,69,190,77,98,69,190,152,127,69,190,202,156,69,190,227,185,69,190,225,214,69,190,198,243,69,190,146,16,70,190,67,45,70,190,219,73,70,190,90,102,70,190,190,130,70,190,9,159,70,190,59,187,70,190,83,215,70,190,81,243,70,190,54,15,71,190,1,43,71,190,178,70,71,190,74,98,71,190,200,125,71,190,45,153,71,190,120,180,71,190,170,207,71,
190,194,234,71,190,192,5,72,190,165,32,72,190,112,59,72,190,34,86,72,190,186,112,72,190,57,139,72,190,158,165,72,190,234,191,72,190,28,218,72,190,53,244,72,190,52,14,73,190,26,40,73,190],"i8",4,y.a+102400);
Q([230,65,73,190,153,91,73,190,50,117,73,190,178,142,73,190,24,168,73,190,101,193,73,190,153,218,73,190,179,243,73,190,179,12,74,190,155,37,74,190,104,62,74,190,29,87,74,190,184,111,74,190,57,136,74,190,161,160,74,190,240,184,74,190,38,209,74,190,66,233,74,190,68,1,75,190,45,25,75,190,253,48,75,190,180,72,75,190,81,96,75,190,213,119,75,190,64,143,75,190,145,166,75,190,201,189,75,190,232,212,75,190,237,235,75,190,217,2,76,190,172,25,76,190,101,48,76,190,5,71,76,190,140,93,76,190,250,115,76,190,79,
138,76,190,138,160,76,190,172,182,76,190,181,204,76,190,164,226,76,190,122,248,76,190,55,14,77,190,219,35,77,190,102,57,77,190,216,78,77,190,48,100,77,190,111,121,77,190,149,142,77,190,162,163,77,190,150,184,77,190,112,205,77,190,50,226,77,190,218,246,77,190,105,11,78,190,223,31,78,190,60,52,78,190,128,72,78,190,171,92,78,190,189,112,78,190,182,132,78,190,149,152,78,190,92,172,78,190,9,192,78,190,158,211,78,190,25,231,78,190,124,250,78,190,197,13,79,190,245,32,79,190,13,52,79,190,11,71,79,190,240,
89,79,190,189,108,79,190,112,127,79,190,11,146,79,190,140,164,79,190,245,182,79,190,69,201,79,190,123,219,79,190,153,237,79,190,158,255,79,190,138,17,80,190,93,35,80,190,24,53,80,190,185,70,80,190,66,88,80,190,177,105,80,190,8,123,80,190,70,140,80,190,107,157,80,190,119,174,80,190,107,191,80,190,69,208,80,190,7,225,80,190,176,241,80,190,65,2,81,190,184,18,81,190,23,35,81,190,93,51,81,190,138,67,81,190,159,83,81,190,154,99,81,190,125,115,81,190,72,131,81,190,249,146,81,190,146,162,81,190,18,178,81,
190,122,193,81,190,201,208,81,190,255,223,81,190,29,239,81,190,34,254,81,190,14,13,82,190,226,27,82,190,157,42,82,190,63,57,82,190,201,71,82,190,59,86,82,190,147,100,82,190,211,114,82,190,251,128,82,190,10,143,82,190,1,157,82,190,223,170,82,190,164,184,82,190,81,198,82,190,229,211,82,190,97,225,82,190,197,238,82,190,16,252,82,190,66,9,83,190,92,22,83,190,94,35,83,190,71,48,83,190,24,61,83,190,208,73,83,190,112,86,83,190,248,98,83,190,103,111,83,190,190,123,83,190,252,135,83,190,34,148,83,190,48,160,
83,190,38,172,83,190,3,184,83,190,199,195,83,190,116,207,83,190,8,219,83,190,132,230,83,190,231,241,83,190,51,253,83,190,102,8,84,190,129,19,84,190,131,30,84,190,109,41,84,190,64,52,84,190,250,62,84,190,155,73,84,190,37,84,84,190,150,94,84,190,239,104,84,190,48,115,84,190,89,125,84,190,106,135,84,190,99,145,84,190,67,155,84,190,12,165,84,190,188,174,84,190,84,184,84,190,212,193,84,190,61,203,84,190,141,212,84,190,197,221,84,190,229,230,84,190,237,239,84,190,221,248,84,190,181,1,85,190,117,10,85,190,
29,19,85,190,173,27,85,190,37,36,85,190,133,44,85,190,205,52,85,190,253,60,85,190,22,69,85,190,22,77,85,190,255,84,85,190,208,92,85,190,136,100,85,190,41,108,85,190,179,115,85,190,36,123,85,190,125,130,85,190,191,137,85,190,233,144,85,190,251,151,85,190,245,158,85,190,216,165,85,190,163,172,85,190,86,179,85,190,241,185,85,190,117,192,85,190,225,198,85,190,53,205,85,190,113,211,85,190,150,217,85,190,163,223,85,190,153,229,85,190,119,235,85,190,61,241,85,190,236,246,85,190,131,252,85,190,2,2,86,190,
106,7,86,190,186,12,86,190,243,17,86,190,20,23,86,190,30,28,86,190,16,33,86,190,234,37,86,190,173,42,86,190,89,47,86,190,237,51,86,190,106,56,86,190,207,60,86,190,29,65,86,190,83,69,86,190,114,73,86,190,121,77,86,190,105,81,86,190,66,85,86,190,3,89,86,190,173,92,86,190,64,96,86,190,187,99,86,190,31,103,86,190,108,106,86,190,161,109,86,190,191,112,86,190,198,115,86,190,181,118,86,190,142,121,86,190,79,124,86,190,249,126,86,190,139,129,86,190,7,132,86,190,107,134,86,190,184,136,86,190,238,138,86,190,
12,141,86,190,20,143,86,190,4,145,86,190,222,146,86,190,160,148,86,190,75,150,86,190,223,151,86,190,92,153,86,190,194,154,86,190,17,156,86,190,73,157,86,190,106,158,86,190,116,159,86,190,102,160,86,190,66,161,86,190,7,162,86,190,181,162,86,190,76,163,86,190,205,163,86,190,54,164,86,190,136,164,86,190,195,164,86,190,232,164,86,190,246,164,86,190,237,164,86,190,205,164,86,190,150,164,86,190,72,164,86,190,228,163,86,190,105,163,86,190,215,162,86,190,46,162,86,190,111,161,86,190,152,160,86,190,171,159,
86,190,168,158,86,190,142,157,86,190,93,156,86,190,21,155,86,190,183,153,86,190,66,152,86,190,182,150,86,190,20,149,86,190,91,147,86,190,140,145,86,190,166,143,86,190,170,141,86,190,151,139,86,190,109,137,86,190,45,135,86,190,215,132,86,190,106,130,86,190,230,127,86,190,76,125,86,190,156,122,86,190,213,119,86,190,248,116,86,190,4,114,86,190,250,110,86,190,218,107,86,190,163,104,86,190,86,101,86,190,242,97,86,190,120,94,86,190,232,90,86,190,66,87,86,190,133,83,86,190,178,79,86,190,201,75,86,190,201,
71,86,190,180,67,86,190,136,63,86,190,70,59,86,190,238,54,86,190,127,50,86,190,250,45,86,190,96,41,86,190,175,36,86,190,232,31,86,190,11,27,86,190,24,22,86,190,14,17,86,190,239,11,86,190,186,6,86,190,110,1,86,190,13,252,85,190,149,246,85,190,8,241,85,190,101,235,85,190,171,229,85,190,220,223,85,190,247,217,85,190,252,211,85,190,235,205,85,190,196,199,85,190,135,193,85,190,53,187,85,190,204,180,85,190,78,174,85,190,186,167,85,190,16,161,85,190,80,154,85,190,123,147,85,190,144,140,85,190,143,133,85,
190,120,126,85,190,76,119,85,190,10,112,85,190,178,104,85,190,69,97,85,190,194,89,85,190,41,82,85,190,123,74,85,190,183,66,85,190,221,58,85,190,238,50,85,190,234,42,85,190,207,34,85,190,160,26,85,190,90,18,85,190,0,10,85,190,144,1,85,190,10,249,84,190,111,240,84,190,190,231,84,190,248,222,84,190,29,214,84,190,44,205,84,190,38,196,84,190,10,187,84,190,217,177,84,190,147,168,84,190,55,159,84,190,199,149,84,190,64,140,84,190,165,130,84,190,244,120,84,190,46,111,84,190,83,101,84,190,99,91,84,190,93,81,
84,190,67,71,84,190,19,61,84,190,206,50,84,190,116,40,84,190,4,30,84,190,128,19,84,190,230,8,84,190,56,254,83,190,116,243,83,190,155,232,83,190,174,221,83,190,171,210,83,190,147,199,83,190,103,188,83,190,37,177,83,190,206,165,83,190,99,154,83,190,226,142,83,190,77,131,83,190,163,119,83,190,228,107,83,190,16,96,83,190,39,84,83,190,42,72,83,190,23,60,83,190,240,47,83,190,180,35,83,190,99,23,83,190,254,10,83,190,132,254,82,190,245,241,82,190,81,229,82,190,153,216,82,190,204,203,82,190,234,190,82,190,
244,177,82,190,233,164,82,190,202,151,82,190,150,138,82,190,77,125,82,190,240,111,82,190,127,98,82,190,249,84,82,190,94,71,82,190,175,57,82,190,235,43,82,190,19,30,82,190,39,16,82,190,38,2,82,190,17,244,81,190,231,229,81,190,169,215,81,190,86,201,81,190,240,186,81,190,117,172,81,190,229,157,81,190,66,143,81,190,138,128,81,190,190,113,81,190,221,98,81,190,233,83,81,190,224,68,81,190,195,53,81,190,146,38,81,190,76,23,81,190,243,7,81,190,133,248,80,190,4,233,80,190,110,217,80,190,196,201,80,190,6,186,
80,190,52,170,80,190,78,154,80,190,84,138,80,190,70,122,80,190,36,106,80,190,239,89,80,190,165,73,80,190,71,57,80,190,213,40,80,190,80,24,80,190,183,7,80,190,9,247,79,190,72,230,79,190,115,213,79,190,139,196,79,190,142,179,79,190,126,162,79,190,90,145,79,190,34,128,79,190,215,110,79,190,120,93,79,190,5,76,79,190,127,58,79,190,229,40,79,190,55,23,79,190,118,5,79,190,161,243,78,190,184,225,78,190,188,207,78,190,173,189,78,190,137,171,78,190,83,153,78,190,9,135,78,190,171,116,78,190,58,98,78,190,182,
79,78,190,30,61,78,190,114,42,78,190,180,23,78,190,226,4,78,190,252,241,77,190,3,223,77,190,247,203,77,190,216,184,77,190,165,165,77,190,96,146,77,190,6,127,77,190,154,107,77,190,26,88,77,190,136,68,77,190,226,48,77,190,41,29,77,190,92,9,77,190,125,245,76,190,139,225,76,190,133,205,76,190,108,185,76,190,65,165,76,190,2,145,76,190,176,124,76,190,75,104,76,190,212,83,76,190,73,63,76,190,172,42,76,190,251,21,76,190,56,1,76,190,97,236,75,190,120,215,75,190,124,194,75,190,109,173,75,190,75,152,75,190,
23,131,75,190,208,109,75,190,117,88,75,190,9,67,75,190,137,45,75,190,247,23,75,190,82,2,75,190,154,236,74,190,208,214,74,190,243,192,74,190,4,171,74,190,2,149,74,190,237,126,74,190,198,104,74,190,140,82,74,190,63,60,74,190,225,37,74,190,111,15,74,190,235,248,73,190,85,226,73,190,172,203,73,190,241,180,73,190,36,158,73,190,68,135,73,190,82,112,73,190,77,89,73,190,54,66,73,190,13,43,73,190,209,19,73,190,131,252,72,190,35,229,72,190,177,205,72,190,44,182,72,190,150,158,72,190,237,134,72,190,50,111,72,
190,100,87,72,190,133,63,72,190,148,39,72,190,144,15,72,190,123,247,71,190,83,223,71,190,25,199,71,190,206,174,71,190,112,150,71,190,0,126,71,190,127,101,71,190,235,76,71,190,70,52,71,190,142,27,71,190,197,2,71,190,234,233,70,190,253,208,70,190,254,183,70,190,238,158,70,190,203,133,70,190,151,108,70,190,81,83,70,190,250,57,70,190,144,32,70,190,21,7,70,190,137,237,69,190,234,211,69,190,58,186,69,190,121,160,69,190,166,134,69,190,193,108,69,190,202,82,69,190,195,56,69,190,169,30,69,190,126,4,69,190,
66,234,68,190,244,207,68,190,149,181,68,190,36,155,68,190,162,128,68,190,14,102,68,190,106,75,68,190,179,48,68,190,236,21,68,190,19,251,67,190,41,224,67,190,45,197,67,190,33,170,67,190,3,143,67,190,212,115,67,190,147,88,67,190,66,61,67,190,223,33,67,190,107,6,67,190,230,234,66,190,80,207,66,190,169,179,66,190,241,151,66,190,40,124,66,190,78,96,66,190,99,68,66,190,102,40,66,190,89,12,66,190,59,240,65,190,12,212,65,190,204,183,65,190,123,155,65,190,26,127,65,190,167,98,65,190,36,70,65,190,144,41,65,
190,235,12,65,190,53,240,64,190,110,211,64,190,151,182,64,190,175,153,64,190,183,124,64,190,173,95,64,190,147,66,64,190,105,37,64,190,46,8,64,190,226,234,63,190,134,205,63,190,25,176,63,190,155,146,63,190,14,117,63,190,111,87,63,190,192,57,63,190,1,28,63,190,49,254,62,190,81,224,62,190,96,194,62,190,95,164,62,190,78,134,62,190,45,104,62,190,251,73,62,190,184,43,62,190,102,13,62,190,3,239,61,190,144,208,61,190,13,178,61,190,121,147,61,190,214,116,61,190,34,86,61,190,94,55,61,190,138,24,61,190,166,
249,60,190,178,218,60,190,174,187,60,190,154,156,60,190,117,125,60,190,65,94,60,190,253,62,60,190,169,31,60,190,68,0,60,190,208,224,59,190,77,193,59,190,185,161,59,190,21,130,59,190,98,98,59,190,158,66,59,190,203,34,59,190,232,2,59,190,246,226,58,190,243,194,58,190,225,162,58,190,192,130,58,190,142,98,58,190,77,66,58,190,252,33,58,190,156,1,58,190,44,225,57,190,173,192,57,190,30,160,57,190,127,127,57,190,209,94,57,190,20,62,57,190,70,29,57,190,106,252,56,190,126,219,56,190,131,186,56,190,120,153,
56,190,94,120,56,190,53,87,56,190,252,53,56,190,180,20,56,190,93,243,55,190,246,209,55,190,128,176,55,190,251,142,55,190,103,109,55,190,196,75,55,190,17,42,55,190,79,8,55,190,126,230,54,190,158,196,54,190,175,162,54,190,177,128,54,190,164,94,54,190,136,60,54,190,93,26,54,190,35,248,53,190,218,213,53,190,130,179,53,190,27,145,53,190,165,110,53,190,32,76,53,190,141,41,53,190,235,6,53,190,57,228,52,190,122,193,52,190,171,158,52,190,205,123,52,190,225,88,52,190,230,53,52,190,221,18,52,190,196,239,51,
190,157,204,51,190,104,169,51,190,36,134,51,190,209,98,51,190,112,63,51,190,0,28,51,190,130,248,50,190,245,212,50,190,90,177,50,190,176,141,50,190,248,105,50,190,49,70,50,190,92,34,50,190,121,254,49,190,135,218,49,190,135,182,49,190,121,146,49,190,92,110,49,190,49,74,49,190,248,37,49,190,177,1,49,190,91,221,48,190,247,184,48,190,133,148,48,190,5,112,48,190,119,75,48,190,219,38,48,190,48,2,48,190,120,221,47,190,178,184,47,190,221,147,47,190,251,110,47,190,10,74,47,190,12,37,47,190,255,255,46,190,229,
218,46,190,189,181,46,190,135,144,46,190,67,107,46,190,242,69,46,190,146,32,46,190,37,251,45,190,170,213,45,190,33,176,45,190,139,138,45,190,231,100,45,190,53,63,45,190,117,25,45,190,168,243,44,190,206,205,44,190,229,167,44,190,239,129,44,190,236,91,44,190,219,53,44,190,188,15,44,190,145,233,43,190,87,195,43,190,16,157,43,190,188,118,43,190,90,80,43,190,235,41,43,190,111,3,43,190,229,220,42,190,78,182,42,190,170,143,42,190,248,104,42,190,57,66,42,190,109,27,42,190,148,244,41,190,173,205,41,190,186,
166,41,190,185,127,41,190,171,88,41,190,144,49,41,190,104,10,41,190,51,227,40,190,241,187,40,190,162,148,40,190,69,109,40,190,220,69,40,190,102,30,40,190,227,246,39,190,83,207,39,190,183,167,39,190,13,128,39,190,86,88,39,190,147,48,39,190,195,8,39,190,230,224,38,190,252,184,38,190,6,145,38,190,3,105,38,190,243,64,38,190,215,24,38,190,174,240,37,190,120,200,37,190,54,160,37,190,231,119,37,190,139,79,37,190,35,39,37,190,175,254,36,190,46,214,36,190,160,173,36,190,7,133,36,190,96,92,36,190,173,51,36,
190,238,10,36,190,35,226,35,190,75,185,35,190,103,144,35,190,118,103,35,190,122,62,35,190,113,21,35,190,92,236,34,190,58,195,34,190,12,154,34,190,211,112,34,190,141,71,34,190,59,30,34,190,221,244,33,190,114,203,33,190,252,161,33,190,122,120,33,190,235,78,33,190,81,37,33,190,171,251,32,190,249,209,32,190,58,168,32,190,112,126,32,190,154,84,32,190,184,42,32,190,203,0,32,190,209,214,31,190,204,172,31,190,187,130,31,190,158,88,31,190,118,46,31,190,65,4,31,190,2,218,30,190,182,175,30,190,95,133,30,190,
252,90,30,190,141,48,30,190,19,6,30,190,142,219,29,190,253,176,29,190,96,134,29,190,184,91,29,190,4,49,29,190,69,6,29,190,123,219,28,190,165,176,28,190,196,133,28,190,215,90,28,190,224,47,28,190,220,4,28,190,206,217,27,190,180,174,27,190,143,131,27,190,95,88,27,190,35,45,27,190,221,1,27,190,139,214,26,190,46,171,26,190,198,127,26,190,83,84,26,190,213,40,26,190,76,253,25,190,183,209,25,190,24,166,25,190,110,122,25,190,185,78,25,190,249,34,25,190,46,247,24,190,88,203,24,190,119,159,24,190,139,115,24,
190,149,71,24,190,148,27,24,190,135,239,23,190,113,195,23,190,79,151,23,190,35,107,23,190,236,62,23,190,170,18,23,190,94,230,22,190,7,186,22,190,166,141,22,190,58,97,22,190,195,52,22,190,66,8,22,190,182,219,21,190,32,175,21,190,127,130,21,190,212,85,21,190,31,41,21,190,95,252,20,190,149,207,20,190,192,162,20,190,225,117,20,190,248,72,20,190,4,28,20,190,6,239,19,190,254,193,19,190,236,148,19,190,207,103,19,190,169,58,19,190,120,13,19,190,61,224,18,190,248,178,18,190,168,133,18,190,79,88,18,190,236,
42,18,190,126,253,17,190,7,208,17,190,134,162,17,190,251,116,17,190,101,71,17,190,198,25,17,190,29,236,16,190,106,190,16,190,174,144,16,190,231,98,16,190,23,53,16,190,61,7,16,190,89,217,15,190,107,171,15,190,116,125,15,190,115,79,15,190,104,33,15,190,84,243,14,190,54,197,14,190,14,151,14,190,221,104,14,190,163,58,14,190,95,12,14,190,17,222,13,190,186,175,13,190,89,129,13,190,239,82,13,190,123,36,13,190,255,245,12,190,120,199,12,190,233,152,12,190,80,106,12,190,173,59,12,190,2,13,12,190,77,222,11,
190,143,175,11,190,200,128,11,190,247,81,11,190,30,35,11,190,59,244,10,190,79,197,10,190,90,150,10,190,92,103,10,190,85,56,10,190,69,9,10,190,43,218,9,190,9,171,9,190,222,123,9,190,170,76,9,190,109,29,9,190,39,238,8,190,216,190,8,190,129,143,8,190,32,96,8,190,183,48,8,190,69,1,8,190,202,209,7,190,70,162,7,190,186,114,7,190,37,67,7,190,135,19,7,190,225,227,6,190,50,180,6,190,122,132,6,190,186,84,6,190,241,36,6,190,32,245,5,190,70,197,5,190,100,149,5,190,121,101,5,190,134,53,5,190,138,5,5,190,134,213,
4,190,122,165,4,190,101,117,4,190,72,69,4,190,34,21,4,190,245,228,3,190,191,180,3,190,128,132,3,190,58,84,3,190,235,35,3,190,148,243,2,190,53,195,2,190,206,146,2,190,95,98,2,190,231,49,2,190,104,1,2,190,224,208,1,190,81,160,1,190,185,111,1,190,26,63,1,190,115,14,1,190,195,221,0,190,12,173,0,190,77,124,0,190,134,75,0,190,183,26,0,190,192,211,255,189,3,114,255,189,55,16,255,189,91,174,254,189,111,76,254,189,116,234,253,189,106,136,253,189,81,38,253,189,40,196,252,189,240,97,252,189,168,255,251,189,
82,157,251,189,236,58,251,189,120,216,250,189,244,117,250,189,98,19,250,189,192,176,249,189,16,78,249,189,81,235,248,189,131,136,248,189,166,37,248,189,187,194,247,189,193,95,247,189,184,252,246,189,161,153,246,189,124,54,246,189,72,211,245,189,5,112,245,189,180,12,245,189,85,169,244,189,231,69,244,189,108,226,243,189,226,126,243,189,74,27,243,189,164,183,242,189,239,83,242,189,45,240,241,189,93,140,241,189,127,40,241,189,147,196,240,189,153,96,240,189,145,252,239,189,124,152,239,189,89,52,239,189,
40,208,238,189,234,107,238,189,158,7,238,189,69,163,237,189,222,62,237,189,106,218,236,189,232,117,236,189,89,17,236,189,189,172,235,189,19,72,235,189,93,227,234,189,153,126,234,189,200,25,234,189,234,180,233,189,255,79,233,189,7,235,232,189,2,134,232,189,240,32,232,189,210,187,231,189,166,86,231,189,110,241,230,189,41,140,230,189,216,38,230,189,122,193,229,189,15,92,229,189,152,246,228,189,20,145,228,189,132,43,228,189,231,197,227,189,63,96,227,189,138,250,226,189,200,148,226,189,251,46,226,189,
33,201,225,189,59,99,225,189,73,253,224,189,75,151,224,189,65,49,224,189,44,203,223,189,10,101,223,189,220,254,222,189,163,152,222,189,94,50,222,189,13,204,221,189,177,101,221,189,73,255,220,189,213,152,220,189,86,50,220,189,203,203,219,189,53,101,219,189,148,254,218,189,231,151,218,189,47,49,218,189,108,202,217,189,157,99,217,189,195,252,216,189,223,149,216,189,239,46,216,189,244,199,215,189,238,96,215,189,221,249,214,189,193,146,214,189,155,43,214,189,105,196,213,189,45,93,213,189,230,245,212,189,
149,142,212,189,57,39,212,189,210,191,211,189,97,88,211,189,229,240,210,189,95,137,210,189,206,33,210,189,51,186,209,189,142,82,209,189,222,234,208,189,37,131,208,189,97,27,208,189,147,179,207,189,187,75,207,189,217,227,206,189,237,123,206,189,246,19,206,189,247,171,205,189,237,67,205,189,217,219,204,189,188,115,204,189,149,11,204,189,100,163,203,189,41,59,203,189,229,210,202,189,152,106,202,189,65,2,202,189,224,153,201,189,118,49,201,189,3,201,200,189,135,96,200,189,1,248,199,189,114,143,199,189,
217,38,199,189,56,190,198,189,142,85,198,189,218,236,197,189,30,132,197,189,88,27,197,189,138,178,196,189,178,73,196,189,210,224,195,189,233,119,195,189,248,14,195,189,254,165,194,189,251,60,194,189,239,211,193,189,219,106,193,189,191,1,193,189,153,152,192,189,108,47,192,189,54,198,191,189,248,92,191,189,178,243,190,189,99,138,190,189,12,33,190,189,173,183,189,189,70,78,189,189,215,228,188,189,95,123,188,189,224,17,188,189,89,168,187,189,202,62,187,189,51,213,186,189,149,107,186,189,238,1,186,189,
64,152,185,189,139,46,185,189,205,196,184,189,8,91,184,189,60,241,183,189,104,135,183,189,141,29,183,189,170,179,182,189,192,73,182,189,206,223,181,189,214,117,181,189,214,11,181,189,207,161,180,189,193,55,180,189,172,205,179,189,143,99,179,189,108,249,178,189,66,143,178,189,17,37,178,189,217,186,177,189,154,80,177,189,85,230,176,189,9,124,176,189,182,17,176,189,92,167,175,189,252,60,175,189,149,210,174,189,40,104,174,189,181,253,173,189,58,147,173,189,186,40,173,189,51,190,172,189,166,83,172,189,
19,233,171,189,122,126,171,189,218,19,171,189,53,169,170,189,137,62,170,189,215,211,169,189,31,105,169,189,98,254,168,189,158,147,168,189,213,40,168,189,6,190,167,189,49,83,167,189,87,232,166,189,118,125,166,189,145,18,166,189,165,167,165,189,180,60,165,189,190,209,164,189,194,102,164,189,193,251,163,189,186,144,163,189,174,37,163,189,157,186,162,189,135,79,162,189,107,228,161,189,75,121,161,189,37,14,161,189,250,162,160,189,203,55,160,189,150,204,159,189,92,97,159,189,30,246,158,189,219,138,158,
189,147,31,158,189,70,180,157,189,244,72,157,189,158,221,156,189,68,114,156,189,228,6,156,189,129,155,155,189,25,48,155,189,172,196,154,189,59,89,154,189,198,237,153,189,76,130,153,189,206,22,153,189,76,171,152,189,198,63,152,189,59,212,151,189,173,104,151,189,27,253,150,189,132,145,150,189,234,37,150,189,76,186,149,189,170,78,149,189,4,227,148,189,90,119,148,189,173,11,148,189,252,159,147,189,71,52,147,189,143,200,146,189,211,92,146,189,19,241,145,189,81,133,145,189,139,25,145,189,193,173,144,189,
244,65,144,189,36,214,143,189,81,106,143,189,122,254,142,189,160,146,142,189,195,38,142,189,227,186,141,189,1,79,141,189,27,227,140,189,50,119,140,189,70,11,140,189,87,159,139,189,102,51,139,189,114,199,138,189,123,91,138,189,130,239,137,189,133,131,137,189,135,23,137,189,133,171,136,189,130,63,136,189,123,211,135,189,115,103,135,189,104,251,134,189,90,143,134,189,75,35,134,189,57,183,133,189,37,75,133,189,15,223,132,189,246,114,132,189,220,6,132,189,192,154,131,189,161,46,131,189,129,194,130,189,
95,86,130,189,59,234,129,189,21,126,129,189,237,17,129,189,196,165,128,189,153,57,128,189,217,154,127,189,124,194,126,189,29,234,125,189,186,17,125,189,85,57,124,189,236,96,123,189,129,136,122,189,20,176,121,189,163,215,120,189,48,255,119,189,187,38,119,189,68,78,118,189,202,117,117,189,78,157,116,189,208,196,115,189,80,236,114,189,206,19,114,189,75,59,113,189,197,98,112,189,62,138,111,189,182,177,110,189,44,217,109,189,160,0,109,189,20,40,108,189,134,79,107,189,247,118,106,189,103,158,105,189,214,
197,104,189,68,237,103,189,177,20,103,189,30,60,102,189,138,99,101,189,246,138,100,189,97,178,99,189,203,217,98,189,54,1,98,189,160,40,97,189,10,80,96,189,117,119,95,189,223,158,94,189,73,198,93,189,180,237,92,189,31,21,92,189,138,60,91,189,246,99,90,189,99,139,89,189,208,178,88,189,62,218,87,189,172,1,87,189,28,41,86,189,141,80,85,189,254,119,84,189,113,159,83,189,229,198,82,189,91,238,81,189,210,21,81,189,74,61,80,189,196,100,79,189,64,140,78,189,189,179,77,189,61,219,76,189,190,2,76,189,65,42,
75,189,198,81,74,189,78,121,73,189,216,160,72,189,100,200,71,189,243,239,70,189,132,23,70,189,23,63,69,189,174,102,68,189,71,142,67,189,227,181,66,189,130,221,65,189,36,5,65,189,201,44,64,189,113,84,63,189,29,124,62,189,204,163,61,189,126,203,60,189,52,243,59,189,238,26,59,189,171,66,58,189,108,106,57,189,48,146,56,189,249,185,55,189,198,225,54,189,151,9,54,189,108,49,53,189,69,89,52,189,35,129,51,189,5,169,50,189,236,208,49,189,215,248,48,189,199,32,48,189,188,72,47,189,181,112,46,189,180,152,45,
189,183,192,44,189,192,232,43,189,206,16,43,189,225,56,42,189,249,96,41,189,23,137,40,189,58,177,39,189,99,217,38,189,146,1,38,189,198,41,37,189,1,82,36,189,65,122,35,189,135,162,34,189,211,202,33,189,38,243,32,189,126,27,32,189,221,67,31,189,67,108,30,189,175,148,29,189,33,189,28,189,155,229,27,189,27,14,27,189,161,54,26,189,47,95,25,189,196,135,24,189,96,176,23,189,2,217,22,189,173,1,22,189,94,42,21,189,23,83,20,189,215,123,19,189,159,164,18,189,111,205,17,189,70,246,16,189,37,31,16,189,12,72,15,
189,251,112,14,189,242,153,13,189,241,194,12,189,249,235,11,189,8,21,11,189,32,62,10,189,65,103,9,189,106,144,8,189,155,185,7,189,214,226,6,189,25,12,6,189,101,53,5,189,186,94,4,189,24,136,3,189,127,177,2,189,239,218,1,189,104,4,1,189,235,45,0,189,239,174,254,188,26,2,253,188,89,85,251,188,171,168,249,188,17,252,247,188,138,79,246,188,23,163,244,188,184,246,242,188,109,74,241,188,54,158,239,188,20,242,237,188,6,70,236,188,14,154,234,188,42,238,232,188,91,66,231,188,162,150,229,188,253,234,227,188,
111,63,226,188,246,147,224,188,147,232,222,188,70,61,221,188,16,146,219,188,239,230,217,188,229,59,216,188,242,144,214,188,22,230,212,188,81,59,211,188,163,144,209,188,12,230,207,188,141,59,206,188,37,145,204,188,213,230,202,188,157,60,201,188,125,146,199,188,118,232,197,188,135,62,196,188,176,148,194,188,242,234,192,188,77,65,191,188,193,151,189,188,79,238,187,188,245,68,186,188,181,155,184,188,143,242,182,188,131,73,181,188,145,160,179,188,184,247,177,188,251,78,176,188,87,166,174,188,206,253,172,
188,96,85,171,188,13,173,169,188,213,4,168,188,185,92,166,188,183,180,164,188,209,12,163,188,7,101,161,188,89,189,159,188,199,21,158,188,81,110,156,188,247,198,154,188,186,31,153,188,153,120,151,188,149,209,149,188,174,42,148,188,229,131,146,188,56,221,144,188,169,54,143,188,56,144,141,188,228,233,139,188,174,67,138,188,150,157,136,188,156,247,134,188,193,81,133,188,4,172,131,188,102,6,130,188,230,96,128,188,11,119,125,188,136,44,122,188,68,226,118,188,62,152,115,188,120,78,112,188,241,4,109,188,
170,187,105,188,162,114,102,188,220,41,99,188,85,225,95,188,16,153,92,188,12,81,89,188,74,9,86,188,201,193,82,188,139,122,79,188,143,51,76,188,213,236,72,188,95,166,69,188,45,96,66,188,62,26,63,188,147,212,59,188,44,143,56,188,10,74,53,188,44,5,50,188,148,192,46,188,66,124,43,188,53,56,40,188,110,244,36,188,238,176,33,188,180,109,30,188,194,42,27,188,22,232,23,188,179,165,20,188,151,99,17,188,195,33,14,188,56,224,10,188,246,158,7,188,252,93,4,188,77,29,1,188,205,185,251,187,149,57,245,187,241,185,
238,187,226,58,232,187,105,188,225,187,135,62,219,187,59,193,212,187,135,68,206,187,108,200,199,187,232,76,193,187,255,209,186,187,175,87,180,187,249,221,173,187,223,100,167,187,97,236,160,187,126,116,154,187,57,253,147,187,145,134,141,187,135,16,135,187,27,155,128,187,159,76,116,187,70,100,103,187,46,125,90,187,88,151,77,187,197,178,64,187,119,207,51,187,110,237,38,187,171,12,26,187,49,45,13,187,255,78,0,187,47,228,230,186,247,44,205,186,87,120,179,186,83,198,153,186,236,22,128,186,75,212,76,186,
2,128,25,186,4,98,204,185,62,157,75,185,39,33,186,53,103,112,78,57,142,171,205,57,21,10,26,58,253,56,77,58,62,49,128,58,71,195,153,58,150,82,179,58,42,223,204,58,255,104,230,58,21,240,255,58,52,186,12,59,251,122,25,59,95,58,38,59,93,248,50,59,247,180,63,59,41,112,76,59,243,41,89,59,83,226,101,59,74,153,114,59,212,78,127,59,121,1,134,59,209,90,140,59,114,179,146,59,91,11,153,59,139,98,159,59,2,185,165,59,191,14,172,59,194,99,178,59,10,184,184,59,150,11,191,59,103,94,197,59,123,176,203,59,210,1,210,
59,107,82,216,59,70,162,222,59,98,241,228,59,191,63,235,59,92,141,241,59,56,218,247,59,83,38,254,59,215,56,2,60,34,94,5,60,13,131,8,60,150,167,11,60,188,203,14,60,129,239,17,60,227,18,21,60,227,53,24,60,127,88,27,60,184,122,30,60,142,156,33,60,255,189,36,60,13,223,39,60,182,255,42,60,251,31,46,60,218,63,49,60,84,95,52,60,105,126,55,60,24,157,58,60,97,187,61,60,67,217,64,60,191,246,67,60,212,19,71,60,130,48,74,60,200,76,77,60,167,104,80,60,30,132,83,60,44,159,86,60,210,185,89,60,15,212,92,60,228,237,
95,60,78,7,99,60,79,32,102,60,231,56,105,60,20,81,108,60,214,104,111,60,46,128,114,60,27,151,117,60,157,173,120,60,179,195,123,60,94,217,126,60,78,247,128,60,183,129,130,60,234,11,132,60,230,149,133,60,172,31,135,60,59,169,136,60,148,50,138,60,181,187,139,60,159,68,141,60,82,205,142,60,206,85,144,60,18,222,145,60,30,102,147,60,243,237,148,60,144,117,150,60,245,252,151,60,34,132,153,60,22,11,155,60,210,145,156,60,85,24,158,60,160,158,159,60,178,36,161,60,139,170,162,60,43,48,164,60,146,181,165,60,
191,58,167,60,179,191,168,60,109,68,170,60,238,200,171,60,52,77,173,60,65,209,174,60,20,85,176,60,172,216,177,60,10,92,179,60,45,223,180,60,22,98,182,60,196,228,183,60,55,103,185,60,111,233,186,60,108,107,188,60,45,237,189,60,179,110,191,60,254,239,192,60,13,113,194,60,224,241,195,60,119,114,197,60,210,242,198,60,241,114,200,60,212,242,201,60,122,114,203,60,227,241,204,60,16,113,206,60,0,240,207,60,179,110,209,60,41,237,210,60,98,107,212,60,93,233,213,60,27,103,215,60,155,228,216,60,222,97,218,60,
227,222,219,60,170,91,221,60,50,216,222,60,125,84,224,60,137,208,225,60,86,76,227,60,229,199,228,60,53,67,230,60,71,190,231,60,25,57,233,60,173,179,234,60,1,46,236,60,21,168,237,60,235,33,239,60,128,155,240,60,214,20,242,60,236,141,243,60,194,6,245,60,88,127,246,60,174,247,247,60,195,111,249,60,152,231,250,60,44,95,252,60,128,214,253,60,147,77,255,60,50,98,0,61,123,29,1,61,162,216,1,61,169,147,2,61,144,78,3,61,85,9,4,61,250,195,4,61,126,126,5,61,224,56,6,61,34,243,6,61,67,173,7,61,66,103,8,61,33,
33,9,61,222,218,9,61,121,148,10,61,244,77,11,61,77,7,12,61,132,192,12,61,154,121,13,61,142,50,14,61,96,235,14,61,17,164,15,61,160,92,16,61,12,21,17,61,87,205,17,61,128,133,18,61,135,61,19,61,108,245,19,61,47,173,20,61,207,100,21,61,77,28,22,61,169,211,22,61,226,138,23,61,249,65,24,61,238,248,24,61,191,175,25,61,110,102,26,61,251,28,27,61,100,211,27,61,171,137,28,61,207,63,29,61,208,245,29,61,174,171,30,61,105,97,31,61,1,23,32,61,117,204,32,61,199,129,33,61,245,54,34,61,255,235,34,61,231,160,35,61,
171,85,36,61,75,10,37,61,200,190,37,61,33,115,38,61,86,39,39,61,104,219,39,61,86,143,40,61,32,67,41,61,198,246,41,61,72,170,42,61,166,93,43,61,223,16,44,61,245,195,44,61,231,118,45,61,180,41,46,61,93,220,46,61,225,142,47,61,65,65,48,61,125,243,48,61,148,165,49,61,134,87,50,61,84,9,51,61,253,186,51,61,130,108,52,61,225,29,53,61,27,207,53,61,49,128,54,61,34,49,55,61,237,225,55,61,148,146,56,61,21,67,57,61,113,243,57,61,167,163,58,61,185,83,59,61,165,3,60,61,107,179,60,61,12,99,61,61,136,18,62,61,222,
193,62,61,14,113,63,61,24,32,64,61,253,206,64,61,188,125,65,61,85,44,66,61,200,218,66,61,21,137,67,61,60,55,68,61,61,229,68,61,24,147,69,61,204,64,70,61,90,238,70,61,194,155,71,61,4,73,72,61,31,246,72,61,20,163,73,61,226,79,74,61,137,252,74,61,10,169,75,61,100,85,76,61,152,1,77,61,164,173,77,61,138,89,78,61,73,5,79,61,225,176,79,61,81,92,80,61,155,7,81,61,190,178,81,61,185,93,82,61,141,8,83,61,58,179,83,61,192,93,84,61,30,8,85,61,85,178,85,61,100,92,86,61,76,6,87,61,12,176,87,61,165,89,88,61,21,3,
89,61,94,172,89,61,128,85,90,61,121,254,90,61,75,167,91,61,244,79,92,61,118,248,92,61,207,160,93,61,0,73,94,61,9,241,94,61,234,152,95,61,163,64,96,61,51,232,96,61,155,143,97,61,219,54,98,61,242,221,98,61,224,132,99,61,166,43,100,61,68,210,100,61,184,120,101,61,4,31,102,61,39,197,102,61,34,107,103,61,243,16,104,61,156,182,104,61,27,92,105,61,114,1,106,61,159,166,106,61,163,75,107,61,127,240,107,61,48,149,108,61,185,57,109,61,24,222,109,61,78,130,110,61,91,38,111,61,62,202,111,61,247,109,112,61,135,
17,113,61,237,180,113,61,42,88,114,61,61,251,114,61,38,158,115,61,229,64,116,61,123,227,116,61,230,133,117,61,40,40,118,61,63,202,118,61,45,108,119,61,240,13,120,61,137,175,120,61,248,80,121,61,61,242,121,61,87,147,122,61,71,52,123,61,13,213,123,61,168,117,124,61,25,22,125,61,95,182,125,61,123,86,126,61,108,246,126,61,50,150,127,61,231,26,128,61,159,106,128,61,66,186,128,61,208,9,129,61,72,89,129,61,170,168,129,61,248,247,129,61,47,71,130,61,81,150,130,61,94,229,130,61,84,52,131,61,54,131,131,61,
1,210,131,61,183,32,132,61,87,111,132,61,226,189,132,61,86,12,133,61,181,90,133,61,255,168,133,61,50,247,133,61,80,69,134,61,87,147,134,61,73,225,134,61,37,47,135,61,235,124,135,61,155,202,135,61,53,24,136,61,185,101,136,61,39,179,136,61,127,0,137,61,193,77,137,61,237,154,137,61,3,232,137,61,3,53,138,61,236,129,138,61,192,206,138,61,125,27,139,61,36,104,139,61,181,180,139,61,47,1,140,61,148,77,140,61,225,153,140,61,25,230,140,61,58,50,141,61,69,126,141,61,58,202,141,61,24,22,142,61,223,97,142,61,
145,173,142,61,43,249,142,61,176,68,143,61,29,144,143,61,117,219,143,61,181,38,144,61,223,113,144,61,243,188,144,61,239,7,145,61,214,82,145,61,165,157,145,61,94,232,145,61,0,51,146,61,139,125,146,61,0,200,146,61,94,18,147,61,165,92,147,61,213,166,147,61,238,240,147,61,241,58,148,61,221,132,148,61,177,206,148,61,111,24,149,61,22,98,149,61,166,171,149,61,31,245,149,61,129,62,150,61,204,135,150,61,0,209,150,61,28,26,151,61,34,99,151,61,17,172,151,61,232,244,151,61,169,61,152,61,82,134,152,61,228,206,
152,61,95,23,153,61,194,95,153,61,15,168,153,61,68,240,153,61,97,56,154,61,104,128,154,61,87,200,154,61,47,16,155,61,239,87,155,61,152,159,155,61,42,231,155,61,164,46,156,61,7,118,156,61,82,189,156,61,134,4,157,61,162,75,157,61,167,146,157,61,148,217,157,61,106,32,158,61,40,103,158,61,206,173,158,61,93,244,158,61,212,58,159,61,52,129,159,61,124,199,159,61,172,13,160,61,196,83,160,61,197,153,160,61,174,223,160,61,127,37,161,61,57,107,161,61,218,176,161,61,100,246,161,61,214,59,162,61,48,129,162,61,
114,198,162,61,156,11,163,61,175,80,163,61,169,149,163,61,139,218,163,61,86,31,164,61,8,100,164,61,163,168,164,61,37,237,164,61,143,49,165,61,225,117,165,61,28,186,165,61,62,254,165,61,72,66,166,61,57,134,166,61,19,202,166,61,212,13,167,61,126,81,167,61,15,149,167,61,135,216,167,61,232,27,168,61,48,95,168,61,96,162,168,61,120,229,168,61,119,40,169,61,94,107,169,61,45,174,169,61,227,240,169,61,129,51,170,61,6,118,170,61,115,184,170,61,200,250,170,61,4,61,171,61,39,127,171,61,50,193,171,61,37,3,172,
61,255,68,172,61,192,134,172,61,105,200,172,61,250,9,173,61,113,75,173,61,208,140,173,61,23,206,173,61,69,15,174,61,90,80,174,61,86,145,174,61,58,210,174,61,5,19,175,61,183,83,175,61,81,148,175,61,210,212,175,61,58,21,176,61,137,85,176,61,191,149,176,61,221,213,176,61,225,21,177,61,205,85,177,61,160,149,177,61,90,213,177,61,251,20,178,61,131,84,178,61,243,147,178,61,73,211,178,61,134,18,179,61,170,81,179,61,182,144,179,61,168,207,179,61,129,14,180,61,65,77,180,61,232,139,180,61,118,202,180,61,235,
8,181,61,70,71,181,61,137,133,181,61,178,195,181,61,194,1,182,61,185,63,182,61,151,125,182,61,92,187,182,61,7,249,182,61,153,54,183,61,18,116,183,61,114,177,183,61,184,238,183,61,229,43,184,61,249,104,184,61,243,165,184,61,212,226,184,61,155,31,185,61,73,92,185,61,222,152,185,61,89,213,185,61,187,17,186,61,4,78,186,61,51,138,186,61,72,198,186,61,68,2,187,61,39,62,187,61,240,121,187,61,159,181,187,61,53,241,187,61,178,44,188,61,21,104,188,61,94,163,188,61,141,222,188,61,163,25,189,61,160,84,189,61,
130,143,189,61,75,202,189,61,251,4,190,61,144,63,190,61,12,122,190,61,111,180,190,61,183,238,190,61,230,40,191,61,251,98,191,61,246,156,191,61,215,214,191,61,159,16,192,61,77,74,192,61,225,131,192,61,91,189,192,61,187,246,192,61,2,48,193,61,46,105,193,61,65,162,193,61,57,219,193,61,24,20,194,61,221,76,194,61,136,133,194,61,25,190,194,61,144,246,194,61,237,46,195,61,48,103,195,61,89,159,195,61,104,215,195,61,93,15,196,61,56,71,196,61,248,126,196,61,159,182,196,61,44,238,196,61,158,37,197,61,246,92,
197,61,53,148,197,61,89,203,197,61,99,2,198,61,82,57,198,61,40,112,198,61,227,166,198,61,133,221,198,61,12,20,199,61,120,74,199,61,203,128,199,61,3,183,199,61,33,237,199,61,37,35,200,61,14,89,200,61,221,142,200,61,146,196,200,61,45,250,200,61,173,47,201,61,18,101,201,61,94,154,201,61,143,207,201,61,166,4,202,61,162,57,202,61,132,110,202,61,75,163,202,61,248,215,202,61,139,12,203,61,3,65,203,61,96,117,203,61,163,169,203,61,204,221,203,61,218,17,204,61,206,69,204,61,167,121,204,61,102,173,204,61,10,
225,204,61,147,20,205,61,2,72,205,61,86,123,205,61,144,174,205,61,175,225,205,61,180,20,206,61,158,71,206,61,109,122,206,61,34,173,206,61,188,223,206,61,59,18,207,61,159,68,207,61,233,118,207,61,25,169,207,61,45,219,207,61,39,13,208,61,6,63,208,61,203,112,208,61,116,162,208,61,3,212,208,61,119,5,209,61,208,54,209,61,15,104,209,61,51,153,209,61,59,202,209,61,42,251,209,61,253,43,210,61,181,92,210,61,83,141,210,61,214,189,210,61,61,238,210,61,138,30,211,61,188,78,211,61,212,126,211,61,208,174,211,61,
177,222,211,61,120,14,212,61,35,62,212,61,180,109,212,61,41,157,212,61,132,204,212,61,195,251,212,61,232,42,213,61,242,89,213,61,224,136,213,61,180,183,213,61,109,230,213,61,10,21,214,61,141,67,214,61,245,113,214,61,65,160,214,61,114,206,214,61,137,252,214,61,132,42,215,61,100,88,215,61,41,134,215,61,211,179,215,61,98,225,215,61,214,14,216,61,46,60,216,61,108,105,216,61,142,150,216,61,149,195,216,61,129,240,216,61,82,29,217,61,8,74,217,61,162,118,217,61,33,163,217,61,133,207,217,61,206,251,217,61,
252,39,218,61,14,84,218,61,5,128,218,61,225,171,218,61,161,215,218,61,71,3,219,61,209,46,219,61,64,90,219,61,147,133,219,61,203,176,219,61,232,219,219,61,234,6,220,61,208,49,220,61,155,92,220,61,75,135,220,61,223,177,220,61,88,220,220,61,181,6,221,61,248,48,221,61,31,91,221,61,42,133,221,61,26,175,221,61,239,216,221,61,168,2,222,61,70,44,222,61,200,85,222,61,48,127,222,61,123,168,222,61,171,209,222,61,192,250,222,61,185,35,223,61,151,76,223,61,90,117,223,61,1,158,223,61,140,198,223,61,252,238,223,
61,81,23,224,61,138,63,224,61,167,103,224,61,169,143,224,61,144,183,224,61,91,223,224,61,10,7,225,61,158,46,225,61,23,86,225,61,116,125,225,61,181,164,225,61,219,203,225,61,229,242,225,61,212,25,226,61,167,64,226,61,94,103,226,61,250,141,226,61,122,180,226,61,223,218,226,61,40,1,227,61,86,39,227,61,104,77,227,61,94,115,227,61,57,153,227,61,248,190,227,61,155,228,227,61,35,10,228,61,143,47,228,61,224,84,228,61,21,122,228,61,46,159,228,61,43,196,228,61,13,233,228,61,211,13,229,61,126,50,229,61,13,87,
229,61,128,123,229,61,215,159,229,61,19,196,229,61,51,232,229,61,56,12,230,61,32,48,230,61,237,83,230,61,158,119,230,61,52,155,230,61,173,190,230,61,11,226,230,61,78,5,231,61,116,40,231,61,127,75,231,61,110,110,231,61,65,145,231,61,249,179,231,61,148,214,231,61,20,249,231,61,121,27,232,61,193,61,232,61,238,95,232,61,254,129,232,61,243,163,232,61,205,197,232,61,138,231,232,61,44,9,233,61,178,42,233,61,28,76,233,61,106,109,233,61,156,142,233,61,179,175,233,61,174,208,233,61,141,241,233,61,80,18,234,
61,247,50,234,61,131,83,234,61,242,115,234,61,70,148,234,61,126,180,234,61,154,212,234,61,154,244,234,61,126,20,235,61,71,52,235,61,244,83,235,61,132,115,235,61,249,146,235,61,82,178,235,61,143,209,235,61,177,240,235,61,182,15,236,61,160,46,236,61,109,77,236,61,31,108,236,61,181,138,236,61,47,169,236,61,141,199,236,61,207,229,236,61,245,3,237,61,0,34,237,61,238,63,237,61,193,93,237,61,119,123,237,61,18,153,237,61,145,182,237,61,244,211,237,61,59,241,237,61,102,14,238,61,117,43,238,61,104,72,238,61,
64,101,238,61,251,129,238,61,154,158,238,61,30,187,238,61,134,215,238,61,209,243,238,61,1,16,239,61,21,44,239,61,12,72,239,61,232,99,239,61,168,127,239,61,76,155,239,61,212,182,239,61,64,210,239,61,145,237,239,61,197,8,240,61,221,35,240,61,217,62,240,61,186,89,240,61],"i8",4,y.a+112640);
Q([126,116,240,61,39,143,240,61,179,169,240,61,36,196,240,61,120,222,240,61,177,248,240,61,205,18,241,61,206,44,241,61,179,70,241,61,124,96,241,61,40,122,241,61,185,147,241,61,46,173,241,61,135,198,241,61,196,223,241,61,229,248,241,61,234,17,242,61,211,42,242,61,160,67,242,61,81,92,242,61,230,116,242,61,96,141,242,61,189,165,242,61,254,189,242,61,35,214,242,61,45,238,242,61,26,6,243,61,235,29,243,61,161,53,243,61,58,77,243,61,184,100,243,61,25,124,243,61,95,147,243,61,136,170,243,61,150,193,243,61,
136,216,243,61,93,239,243,61,23,6,244,61,181,28,244,61,54,51,244,61,156,73,244,61,230,95,244,61,20,118,244,61,38,140,244,61,28,162,244,61,246,183,244,61,180,205,244,61,86,227,244,61,220,248,244,61,70,14,245,61,149,35,245,61,199,56,245,61,221,77,245,61,216,98,245,61,182,119,245,61,120,140,245,61,31,161,245,61,169,181,245,61,24,202,245,61,107,222,245,61,161,242,245,61,188,6,246,61,187,26,246,61,158,46,246,61,101,66,246,61,16,86,246,61,159,105,246,61,18,125,246,61,105,144,246,61,165,163,246,61,196,182,
246,61,200,201,246,61,175,220,246,61,123,239,246,61,42,2,247,61,190,20,247,61,54,39,247,61,146,57,247,61,210,75,247,61,246,93,247,61,254,111,247,61,235,129,247,61,187,147,247,61,111,165,247,61,8,183,247,61,133,200,247,61,230,217,247,61,43,235,247,61,84,252,247,61,97,13,248,61,82,30,248,61,39,47,248,61,225,63,248,61,127,80,248,61,0,97,248,61,102,113,248,61,176,129,248,61,222,145,248,61,241,161,248,61,231,177,248,61,194,193,248,61,129,209,248,61,36,225,248,61,171,240,248,61,22,0,249,61,101,15,249,61,
153,30,249,61,176,45,249,61,172,60,249,61,140,75,249,61,81,90,249,61,249,104,249,61,134,119,249,61,247,133,249,61,76,148,249,61,133,162,249,61,162,176,249,61,164,190,249,61,138,204,249,61,84,218,249,61,2,232,249,61,148,245,249,61,11,3,250,61,102,16,250,61,165,29,250,61,201,42,250,61,208,55,250,61,188,68,250,61,140,81,250,61,65,94,250,61,217,106,250,61,86,119,250,61,183,131,250,61,253,143,250,61,38,156,250,61,52,168,250,61,39,180,250,61,253,191,250,61,184,203,250,61,87,215,250,61,219,226,250,61,67,
238,250,61,143,249,250,61,191,4,251,61,212,15,251,61,205,26,251,61,170,37,251,61,108,48,251,61,18,59,251,61,156,69,251,61,11,80,251,61,94,90,251,61,150,100,251,61,178,110,251,61,178,120,251,61,150,130,251,61,95,140,251,61,13,150,251,61,158,159,251,61,21,169,251,61,111,178,251,61,174,187,251,61,209,196,251,61,217,205,251,61,198,214,251,61,150,223,251,61,75,232,251,61,229,240,251,61,99,249,251,61,197,1,252,61,12,10,252,61,56,18,252,61,71,26,252,61,60,34,252,61,21,42,252,61,210,49,252,61,116,57,252,
61,250,64,252,61,101,72,252,61,180,79,252,61,232,86,252,61,0,94,252,61,253,100,252,61,223,107,252,61,165,114,252,61,79,121,252,61,223,127,252,61,82,134,252,61,171,140,252,61,231,146,252,61,9,153,252,61,15,159,252,61,250,164,252,61,201,170,252,61,125,176,252,61,21,182,252,61,146,187,252,61,244,192,252,61,58,198,252,61,101,203,252,61,117,208,252,61,106,213,252,61,67,218,252,61,0,223,252,61,163,227,252,61,42,232,252,61,150,236,252,61,230,240,252,61,27,245,252,61,53,249,252,61,52,253,252,61,23,1,253,
61,223,4,253,61,140,8,253,61,30,12,253,61,148,15,253,61,240,18,253,61,48,22,253,61,84,25,253,61,94,28,253,61,76,31,253,61,31,34,253,61,216,36,253,61,116,39,253,61,246,41,253,61,93,44,253,61,168,46,253,61,216,48,253,61,237,50,253,61,231,52,253,61,198,54,253,61,138,56,253,61,51,58,253,61,192,59,253,61,51,61,253,61,138,62,253,61,198,63,253,61,232,64,253,61,238,65,253,61,217,66,253,61,169,67,253,61,95,68,253,61,249,68,253,61,120,69,253,61,220,69,253,61,37,70,253,61,84,70,253,61,103,70,253,61,95,70,253,
61,60,70,253,61,255,69,253,61,166,69,253,61,51,69,253,61,164,68,253,61,251,67,253,61,55,67,253,61,88,66,253,61,94,65,253,61,73,64,253,61,26,63,253,61,207,61,253,61,106,60,253,61,233,58,253,61,78,57,253,61,153,55,253,61,200,53,253,61,221,51,253,61,214,49,253,61,181,47,253,61,122,45,253,61,35,43,253,61,178,40,253,61,38,38,253,61,127,35,253,61,190,32,253,61,226,29,253,61,235,26,253,61,218,23,253,61,173,20,253,61,103,17,253,61,5,14,253,61,137,10,253,61,242,6,253,61,65,3,253,61,117,255,252,61,142,251,
252,61,141,247,252,61,113,243,252,61,59,239,252,61,234,234,252,61,127,230,252,61,249,225,252,61,88,221,252,61,157,216,252,61,200,211,252,61,216,206,252,61,205,201,252,61,168,196,252,61,105,191,252,61,15,186,252,61,154,180,252,61,12,175,252,61,98,169,252,61,159,163,252,61,193,157,252,61,200,151,252,61,181,145,252,61,136,139,252,61,65,133,252,61,223,126,252,61,99,120,252,61,204,113,252,61,27,107,252,61,80,100,252,61,107,93,252,61,107,86,252,61,81,79,252,61,29,72,252,61,206,64,252,61,102,57,252,61,227,
49,252,61,70,42,252,61,142,34,252,61,189,26,252,61,209,18,252,61,203,10,252,61,171,2,252,61,113,250,251,61,29,242,251,61,175,233,251,61,38,225,251,61,132,216,251,61,199,207,251,61,240,198,251,61,0,190,251,61,245,180,251,61,208,171,251,61,145,162,251,61,56,153,251,61,198,143,251,61,57,134,251,61,146,124,251,61,209,114,251,61,247,104,251,61,2,95,251,61,243,84,251,61,203,74,251,61,137,64,251,61,44,54,251,61,182,43,251,61,38,33,251,61,125,22,251,61,185,11,251,61,220,0,251,61,228,245,250,61,211,234,250,
61,169,223,250,61,100,212,250,61,6,201,250,61,142,189,250,61,252,177,250,61,80,166,250,61,139,154,250,61,172,142,250,61,180,130,250,61,162,118,250,61,118,106,250,61,48,94,250,61,209,81,250,61,88,69,250,61,198,56,250,61,26,44,250,61,85,31,250,61,118,18,250,61,125,5,250,61,107,248,249,61,63,235,249,61,250,221,249,61,155,208,249,61,35,195,249,61,146,181,249,61,231,167,249,61,34,154,249,61,69,140,249,61,77,126,249,61,61,112,249,61,19,98,249,61,207,83,249,61,115,69,249,61,253,54,249,61,109,40,249,61,197,
25,249,61,3,11,249,61,39,252,248,61,51,237,248,61,37,222,248,61,254,206,248,61,190,191,248,61,100,176,248,61,242,160,248,61,102,145,248,61,193,129,248,61,3,114,248,61,44,98,248,61,59,82,248,61,50,66,248,61,15,50,248,61,211,33,248,61,127,17,248,61,17,1,248,61,138,240,247,61,234,223,247,61,49,207,247,61,96,190,247,61,117,173,247,61,113,156,247,61,84,139,247,61,31,122,247,61,208,104,247,61,105,87,247,61,233,69,247,61,79,52,247,61,157,34,247,61,210,16,247,61,239,254,246,61,242,236,246,61,221,218,246,
61,175,200,246,61,104,182,246,61,8,164,246,61,144,145,246,61,255,126,246,61,85,108,246,61,147,89,246,61,184,70,246,61,196,51,246,61,183,32,246,61,146,13,246,61,85,250,245,61,255,230,245,61,144,211,245,61,8,192,245,61,105,172,245,61,176,152,245,61,223,132,245,61,246,112,245,61,244,92,245,61,217,72,245,61,166,52,245,61,91,32,245,61,248,11,245,61,123,247,244,61,231,226,244,61,58,206,244,61,117,185,244,61,151,164,244,61,161,143,244,61,147,122,244,61,109,101,244,61,46,80,244,61,215,58,244,61,104,37,244,
61,224,15,244,61,65,250,243,61,137,228,243,61,185,206,243,61,209,184,243,61,208,162,243,61,184,140,243,61,135,118,243,61,63,96,243,61,222,73,243,61,101,51,243,61,212,28,243,61,43,6,243,61,106,239,242,61,146,216,242,61,161,193,242,61,152,170,242,61,119,147,242,61,63,124,242,61,238,100,242,61,134,77,242,61,5,54,242,61,109,30,242,61,189,6,242,61,245,238,241,61,22,215,241,61,30,191,241,61,15,167,241,61,232,142,241,61,170,118,241,61,83,94,241,61,229,69,241,61,95,45,241,61,194,20,241,61,13,252,240,61,64,
227,240,61,92,202,240,61,96,177,240,61,76,152,240,61,33,127,240,61,223,101,240,61,133,76,240,61,19,51,240,61,138,25,240,61,233,255,239,61,49,230,239,61,98,204,239,61,123,178,239,61,124,152,239,61,103,126,239,61,58,100,239,61,245,73,239,61,154,47,239,61,39,21,239,61,156,250,238,61,251,223,238,61,66,197,238,61,114,170,238,61,138,143,238,61,140,116,238,61,118,89,238,61,73,62,238,61,5,35,238,61,170,7,238,61,56,236,237,61,175,208,237,61,14,181,237,61,87,153,237,61,136,125,237,61,163,97,237,61,166,69,237,
61,147,41,237,61,104,13,237,61,39,241,236,61,207,212,236,61,96,184,236,61,217,155,236,61,60,127,236,61,137,98,236,61,190,69,236,61,221,40,236,61,228,11,236,61,213,238,235,61,175,209,235,61,115,180,235,61,32,151,235,61,182,121,235,61,53,92,235,61,158,62,235,61,240,32,235,61,43,3,235,61,80,229,234,61,94,199,234,61,86,169,234,61,55,139,234,61,2,109,234,61,182,78,234,61,84,48,234,61,219,17,234,61,76,243,233,61,166,212,233,61,234,181,233,61,23,151,233,61,46,120,233,61,47,89,233,61,26,58,233,61,238,26,
233,61,172,251,232,61,83,220,232,61,228,188,232,61,96,157,232,61,196,125,232,61,19,94,232,61,76,62,232,61,110,30,232,61,122,254,231,61,112,222,231,61,80,190,231,61,26,158,231,61,206,125,231,61,108,93,231,61,244,60,231,61,101,28,231,61,193,251,230,61,7,219,230,61,55,186,230,61,81,153,230,61,85,120,230,61,67,87,230,61,28,54,230,61,222,20,230,61,139,243,229,61,34,210,229,61,163,176,229,61,15,143,229,61,100,109,229,61,164,75,229,61,207,41,229,61,227,7,229,61,226,229,228,61,204,195,228,61,159,161,228,
61,94,127,228,61,6,93,228,61,153,58,228,61,23,24,228,61,127,245,227,61,209,210,227,61,14,176,227,61,54,141,227,61,72,106,227,61,69,71,227,61,44,36,227,61,254,0,227,61,187,221,226,61,98,186,226,61,244,150,226,61,113,115,226,61,217,79,226,61,43,44,226,61,104,8,226,61,144,228,225,61,163,192,225,61,160,156,225,61,137,120,225,61,92,84,225,61,26,48,225,61,195,11,225,61,88,231,224,61,215,194,224,61,65,158,224,61,150,121,224,61,214,84,224,61,1,48,224,61,24,11,224,61,25,230,223,61,6,193,223,61,221,155,223,
61,160,118,223,61,78,81,223,61,231,43,223,61,108,6,223,61,220,224,222,61,55,187,222,61,125,149,222,61,174,111,222,61,203,73,222,61,212,35,222,61,199,253,221,61,167,215,221,61,113,177,221,61,39,139,221,61,201,100,221,61,86,62,221,61,206,23,221,61,50,241,220,61,130,202,220,61,189,163,220,61,227,124,220,61,246,85,220,61,244,46,220,61,222,7,220,61,179,224,219,61,116,185,219,61,33,146,219,61,185,106,219,61,62,67,219,61,174,27,219,61,10,244,218,61,82,204,218,61,134,164,218,61,165,124,218,61,177,84,218,
61,168,44,218,61,140,4,218,61,91,220,217,61,22,180,217,61,190,139,217,61,81,99,217,61,209,58,217,61,60,18,217,61,148,233,216,61,216,192,216,61,8,152,216,61,36,111,216,61,45,70,216,61,33,29,216,61,2,244,215,61,207,202,215,61,137,161,215,61,47,120,215,61,193,78,215,61,63,37,215,61,170,251,214,61,2,210,214,61,69,168,214,61,118,126,214,61,146,84,214,61,155,42,214,61,145,0,214,61,115,214,213,61,66,172,213,61,254,129,213,61,166,87,213,61,58,45,213,61,188,2,213,61,42,216,212,61,132,173,212,61,204,130,212,
61,0,88,212,61,33,45,212,61,47,2,212,61,42,215,211,61,17,172,211,61,229,128,211,61,167,85,211,61,85,42,211,61,240,254,210,61,120,211,210,61,237,167,210,61,79,124,210,61,158,80,210,61,218,36,210,61,4,249,209,61,26,205,209,61,30,161,209,61,14,117,209,61,236,72,209,61,183,28,209,61,111,240,208,61,21,196,208,61,168,151,208,61,40,107,208,61,149,62,208,61,240,17,208,61,56,229,207,61,109,184,207,61,144,139,207,61,161,94,207,61,158,49,207,61,138,4,207,61,98,215,206,61,41,170,206,61,221,124,206,61,126,79,
206,61,13,34,206,61,138,244,205,61,244,198,205,61,76,153,205,61,146,107,205,61,197,61,205,61,231,15,205,61,246,225,204,61,242,179,204,61,221,133,204,61,181,87,204,61,124,41,204,61,48,251,203,61,210,204,203,61,98,158,203,61,224,111,203,61,76,65,203,61,166,18,203,61,238,227,202,61,37,181,202,61,73,134,202,61,91,87,202,61,92,40,202,61,74,249,201,61,39,202,201,61,242,154,201,61,171,107,201,61,83,60,201,61,233,12,201,61,109,221,200,61,224,173,200,61,64,126,200,61,144,78,200,61,205,30,200,61,249,238,199,
61,20,191,199,61,29,143,199,61,20,95,199,61,250,46,199,61,207,254,198,61,146,206,198,61,68,158,198,61,228,109,198,61,115,61,198,61,241,12,198,61,94,220,197,61,185,171,197,61,3,123,197,61,59,74,197,61,99,25,197,61,121,232,196,61,127,183,196,61,115,134,196,61,86,85,196,61,40,36,196,61,232,242,195,61,152,193,195,61,55,144,195,61,197,94,195,61,66,45,195,61,174,251,194,61,9,202,194,61,83,152,194,61,141,102,194,61,181,52,194,61,205,2,194,61,212,208,193,61,203,158,193,61,176,108,193,61,133,58,193,61,73,
8,193,61,253,213,192,61,160,163,192,61,50,113,192,61,180,62,192,61,37,12,192,61,134,217,191,61,214,166,191,61,22,116,191,61,69,65,191,61,100,14,191,61,115,219,190,61,113,168,190,61,95,117,190,61,61,66,190,61,10,15,190,61,199,219,189,61,116,168,189,61,16,117,189,61,157,65,189,61,25,14,189,61,133,218,188,61,225,166,188,61,45,115,188,61,105,63,188,61,148,11,188,61,176,215,187,61,188,163,187,61,184,111,187,61,164,59,187,61,128,7,187,61,76,211,186,61,9,159,186,61,181,106,186,61,82,54,186,61,223,1,186,
61,92,205,185,61,202,152,185,61,40,100,185,61,118,47,185,61,180,250,184,61,227,197,184,61,2,145,184,61,18,92,184,61,18,39,184,61,3,242,183,61,228,188,183,61,182,135,183,61,121,82,183,61,43,29,183,61,207,231,182,61,99,178,182,61,232,124,182,61,94,71,182,61,196,17,182,61,27,220,181,61,99,166,181,61,156,112,181,61,197,58,181,61,223,4,181,61,235,206,180,61,231,152,180,61,212,98,180,61,178,44,180,61,129,246,179,61,65,192,179,61,242,137,179,61,148,83,179,61,40,29,179,61,172,230,178,61,33,176,178,61,136,
121,178,61,224,66,178,61,41,12,178,61,100,213,177,61,143,158,177,61,172,103,177,61,187,48,177,61,186,249,176,61,171,194,176,61,142,139,176,61,98,84,176,61,39,29,176,61,222,229,175,61,134,174,175,61,32,119,175,61,172,63,175,61,41,8,175,61,152,208,174,61,248,152,174,61,74,97,174,61,142,41,174,61,196,241,173,61,235,185,173,61,4,130,173,61,15,74,173,61,12,18,173,61,250,217,172,61,219,161,172,61,173,105,172,61,114,49,172,61,40,249,171,61,209,192,171,61,107,136,171,61,247,79,171,61,118,23,171,61,231,222,
170,61,73,166,170,61,158,109,170,61,230,52,170,61,31,252,169,61,75,195,169,61,105,138,169,61,121,81,169,61,123,24,169,61,112,223,168,61,87,166,168,61,49,109,168,61,253,51,168,61,188,250,167,61,109,193,167,61,17,136,167,61,167,78,167,61,47,21,167,61,171,219,166,61,25,162,166,61,121,104,166,61,205,46,166,61,19,245,165,61,75,187,165,61,119,129,165,61,149,71,165,61,166,13,165,61,170,211,164,61,161,153,164,61,139,95,164,61,104,37,164,61,55,235,163,61,250,176,163,61,175,118,163,61,88,60,163,61,244,1,163,
61,131,199,162,61,5,141,162,61,122,82,162,61,226,23,162,61,61,221,161,61,140,162,161,61,206,103,161,61,3,45,161,61,44,242,160,61,72,183,160,61,87,124,160,61,90,65,160,61,80,6,160,61,57,203,159,61,22,144,159,61,231,84,159,61,171,25,159,61,99,222,158,61,14,163,158,61,173,103,158,61,63,44,158,61,197,240,157,61,63,181,157,61,173,121,157,61,14,62,157,61,99,2,157,61,172,198,156,61,233,138,156,61,26,79,156,61,62,19,156,61,87,215,155,61,99,155,155,61,100,95,155,61,88,35,155,61,64,231,154,61,29,171,154,61,
237,110,154,61,178,50,154,61,107,246,153,61,24,186,153,61,185,125,153,61,79,65,153,61,216,4,153,61,86,200,152,61,201,139,152,61,47,79,152,61,138,18,152,61,218,213,151,61,30,153,151,61,86,92,151,61,131,31,151,61,164,226,150,61,186,165,150,61,196,104,150,61,195,43,150,61,183,238,149,61,159,177,149,61,124,116,149,61,78,55,149,61,20,250,148,61,207,188,148,61,127,127,148,61,36,66,148,61,189,4,148,61,76,199,147,61,207,137,147,61,72,76,147,61,181,14,147,61,23,209,146,61,110,147,146,61,187,85,146,61,252,
23,146,61,51,218,145,61,94,156,145,61,127,94,145,61,149,32,145,61,160,226,144,61,160,164,144,61,150,102,144,61,129,40,144,61,97,234,143,61,55,172,143,61,2,110,143,61,194,47,143,61,120,241,142,61,36,179,142,61,196,116,142,61,91,54,142,61,231,247,141,61,104,185,141,61,223,122,141,61,76,60,141,61,175,253,140,61,7,191,140,61,84,128,140,61,152,65,140,61,209,2,140,61,1,196,139,61,38,133,139,61,64,70,139,61,81,7,139,61,88,200,138,61,84,137,138,61,71,74,138,61,48,11,138,61,14,204,137,61,227,140,137,61,174,
77,137,61,111,14,137,61,38,207,136,61,211,143,136,61,119,80,136,61,16,17,136,61,160,209,135,61,38,146,135,61,163,82,135,61,22,19,135,61,127,211,134,61,223,147,134,61,53,84,134,61,130,20,134,61,197,212,133,61,254,148,133,61,47,85,133,61,85,21,133,61,115,213,132,61,135,149,132,61,145,85,132,61,147,21,132,61,139,213,131,61,121,149,131,61,95,85,131,61,59,21,131,61,15,213,130,61,217,148,130,61,154,84,130,61,82,20,130,61,0,212,129,61,166,147,129,61,67,83,129,61,215,18,129,61,98,210,128,61,228,145,128,61,
93,81,128,61,205,16,128,61,106,160,127,61,39,31,127,61,211,157,126,61,110,28,126,61,247,154,125,61,110,25,125,61,213,151,124,61,42,22,124,61,110,148,123,61,160,18,123,61,194,144,122,61,211,14,122,61,211,140,121,61,193,10,121,61,160,136,120,61,109,6,120,61,41,132,119,61,213,1,119,61,112,127,118,61,251,252,117,61,117,122,117,61,223,247,116,61,57,117,116,61,130,242,115,61,187,111,115,61,227,236,114,61,252,105,114,61,4,231,113,61,253,99,113,61,229,224,112,61,190,93,112,61,134,218,111,61,63,87,111,61,
232,211,110,61,130,80,110,61,12,205,109,61,134,73,109,61,241,197,108,61,76,66,108,61,152,190,107,61,212,58,107,61,2,183,106,61,32,51,106,61,47,175,105,61,47,43,105,61,31,167,104,61,1,35,104,61,212,158,103,61,152,26,103,61,77,150,102,61,243,17,102,61,139,141,101,61,20,9,101,61,143,132,100,61,251,255,99,61,88,123,99,61,167,246,98,61,232,113,98,61,26,237,97,61,63,104,97,61,85,227,96,61,93,94,96,61,87,217,95,61,66,84,95,61,32,207,94,61,240,73,94,61,178,196,93,61,103,63,93,61,14,186,92,61,167,52,92,61,
50,175,91,61,176,41,91,61,32,164,90,61,131,30,90,61,217,152,89,61,33,19,89,61,93,141,88,61,138,7,88,61,171,129,87,61,191,251,86,61,198,117,86,61,191,239,85,61,172,105,85,61,140,227,84,61,95,93,84,61,38,215,83,61,224,80,83,61,141,202,82,61,45,68,82,61,193,189,81,61,73,55,81,61,196,176,80,61,51,42,80,61,150,163,79,61,237,28,79,61,55,150,78,61,117,15,78,61,168,136,77,61,206,1,77,61,232,122,76,61,247,243,75,61,250,108,75,61,241,229,74,61,220,94,74,61,188,215,73,61,144,80,73,61,88,201,72,61,22,66,72,61,
199,186,71,61,110,51,71,61,9,172,70,61,153,36,70,61,30,157,69,61,151,21,69,61,6,142,68,61,106,6,68,61,195,126,67,61,16,247,66,61,84,111,66,61,140,231,65,61,185,95,65,61,220,215,64,61,245,79,64,61,3,200,63,61,6,64,63,61,255,183,62,61,238,47,62,61,210,167,61,61,173,31,61,61,125,151,60,61,66,15,60,61,254,134,59,61,176,254,58,61,88,118,58,61,246,237,57,61,138,101,57,61,21,221,56,61,149,84,56,61,13,204,55,61,122,67,55,61,222,186,54,61,57,50,54,61,138,169,53,61,209,32,53,61,16,152,52,61,69,15,52,61,113,
134,51,61,148,253,50,61,174,116,50,61,191,235,49,61,198,98,49,61,197,217,48,61,188,80,48,61,169,199,47,61,142,62,47,61,106,181,46,61,61,44,46,61,8,163,45,61,202,25,45,61,132,144,44,61,54,7,44,61,223,125,43,61,128,244,42,61,25,107,42,61,169,225,41,61,50,88,41,61,178,206,40,61,43,69,40,61,156,187,39,61,5,50,39,61,102,168,38,61,191,30,38,61,17,149,37,61,91,11,37,61,157,129,36,61,216,247,35,61,12,110,35,61,56,228,34,61,93,90,34,61,122,208,33,61,145,70,33,61,160,188,32,61,168,50,32,61,169,168,31,61,163,
30,31,61,151,148,30,61,131,10,30,61,105,128,29,61,71,246,28,61,31,108,28,61,241,225,27,61,188,87,27,61,128,205,26,61,62,67,26,61,246,184,25,61,167,46,25,61,82,164,24,61,247,25,24,61,149,143,23,61,46,5,23,61,192,122,22,61,76,240,21,61,211,101,21,61,83,219,20,61,206,80,20,61,67,198,19,61,178,59,19,61,28,177,18,61,128,38,18,61,223,155,17,61,56,17,17,61,139,134,16,61,218,251,15,61,35,113,15,61,103,230,14,61,165,91,14,61,223,208,13,61,19,70,13,61,66,187,12,61,109,48,12,61,146,165,11,61,179,26,11,61,207,
143,10,61,230,4,10,61,249,121,9,61,7,239,8,61,16,100,8,61,21,217,7,61,21,78,7,61,17,195,6,61,9,56,6,61,253,172,5,61,236,33,5,61,215,150,4,61,190,11,4,61,161,128,3,61,128,245,2,61,92,106,2,61,51,223,1,61,6,84,1,61,214,200,0,61,162,61,0,61,213,100,255,60,95,78,254,60,226,55,253,60,94,33,252,60,211,10,251,60,65,244,249,60,169,221,248,60,11,199,247,60,102,176,246,60,186,153,245,60,9,131,244,60,82,108,243,60,149,85,242,60,210,62,241,60,9,40,240,60,59,17,239,60,104,250,237,60,143,227,236,60,177,204,235,
60,206,181,234,60,230,158,233,60,249,135,232,60,8,113,231,60,17,90,230,60,23,67,229,60,24,44,228,60,20,21,227,60,13,254,225,60,1,231,224,60,242,207,223,60,223,184,222,60,200,161,221,60,173,138,220,60,143,115,219,60,110,92,218,60,73,69,217,60,34,46,216,60,247,22,215,60,201,255,213,60,153,232,212,60,102,209,211,60,48,186,210,60,248,162,209,60,190,139,208,60,129,116,207,60,67,93,206,60,2,70,205,60,191,46,204,60,123,23,203,60,53,0,202,60,238,232,200,60,165,209,199,60,91,186,198,60,15,163,197,60,195,139,
196,60,117,116,195,60,39,93,194,60,216,69,193,60,136,46,192,60,56,23,191,60,232,255,189,60,151,232,188,60,70,209,187,60,245,185,186,60,164,162,185,60,83,139,184,60,3,116,183,60,179,92,182,60,99,69,181,60,20,46,180,60,198,22,179,60,121,255,177,60,44,232,176,60,225,208,175,60,151,185,174,60,78,162,173,60,7,139,172,60,193,115,171,60,124,92,170,60,58,69,169,60,249,45,168,60,187,22,167,60,126,255,165,60,68,232,164,60,12,209,163,60,215,185,162,60,164,162,161,60,115,139,160,60,70,116,159,60,27,93,158,60,
243,69,157,60,207,46,156,60,173,23,155,60,144,0,154,60,117,233,152,60,94,210,151,60,75,187,150,60,59,164,149,60,48,141,148,60,40,118,147,60,36,95,146,60,37,72,145,60,42,49,144,60,52,26,143,60,66,3,142,60,85,236,140,60,108,213,139,60,137,190,138,60,170,167,137,60,209,144,136,60,253,121,135,60,46,99,134,60,101,76,133,60,161,53,132,60,227,30,131,60,43,8,130,60,120,241,128,60,152,181,127,60,76,136,125,60,12,91,123,60,217,45,121,60,179,0,119,60,154,211,116,60,142,166,114,60,144,121,112,60,160,76,110,60,
190,31,108,60,234,242,105,60,37,198,103,60,110,153,101,60,198,108,99,60,46,64,97,60,165,19,95,60,43,231,92,60,193,186,90,60,104,142,88,60,30,98,86,60,229,53,84,60,189,9,82,60,166,221,79,60,160,177,77,60,171,133,75,60,200,89,73,60,246,45,71,60,55,2,69,60,138,214,66,60,240,170,64,60,104,127,62,60,243,83,60,60,145,40,58,60,67,253,55,60,8,210,53,60,225,166,51,60,206,123,49,60,207,80,47,60,229,37,45,60,15,251,42,60,78,208,40,60,163,165,38,60,12,123,36,60,140,80,34,60,33,38,32,60,204,251,29,60,141,209,
27,60,101,167,25,60,83,125,23,60,89,83,21,60,117,41,19,60,169,255,16,60,244,213,14,60,87,172,12,60,210,130,10,60,101,89,8,60,16,48,6,60,212,6,4,60,177,221,1,60,79,105,255,59,109,23,251,59,191,197,246,59,68,116,242,59,253,34,238,59,234,209,233,59,12,129,229,59,99,48,225,59,240,223,220,59,179,143,216,59,172,63,212,59,220,239,207,59,67,160,203,59,226,80,199,59,186,1,195,59,202,178,190,59,19,100,186,59,149,21,182,59,82,199,177,59,72,121,173,59,122,43,169,59,231,221,164,59,143,144,160,59,116,67,156,59,
149,246,151,59,243,169,147,59,143,93,143,59,104,17,139,59,127,197,134,59,213,121,130,59,213,92,124,59,127,198,115,59,168,48,107,59,82,155,98,59,126,6,90,59,44,114,81,59,94,222,72,59,20,75,64,59,79,184,55,59,15,38,47,59,87,148,38,59,38,3,30,59,126,114,21,59,95,226,12,59,202,82,4,59,128,135,247,58,133,106,230,58,162,78,213,58,219,51,196,58,49,26,179,58,165,1,162,58,58,234,144,58,225,167,127,58,149,125,93,58,148,85,59,58,226,47,25,58,1,25,238,57,233,214,169,57,3,51,75,57,69,131,133,56,131,76,139,184,
156,4,78,185,175,44,171,185,62,82,239,185,122,185,25,186,101,199,59,186,220,210,93,186,221,219,127,186,50,241,144,186,54,243,161,186,251,243,178,186,125,243,195,186,187,241,212,186,180,238,229,186,101,234,246,186,103,242,3,187,246,110,12,187,223,234,20,187,34,102,29,187,188,224,37,187,174,90,46,187,246,211,54,187,148,76,63,187,135,196,71,187,207,59,80,187,105,178,88,187,86,40,97,187,148,157,105,187,35,18,114,187,2,134,122,187,152,124,129,187,214,181,133,187,187,238,137,187,70,39,142,187,119,95,146,
187,77,151,150,187,201,206,154,187,233,5,159,187,173,60,163,187,21,115,167,187,32,169,171,187,207,222,175,187,32,20,180,187,19,73,184,187,168,125,188,187,222,177,192,187,181,229,196,187,45,25,201,187,69,76,205,187,252,126,209,187,83,177,213,187,72,227,217,187,220,20,222,187,14,70,226,187,222,118,230,187,74,167,234,187,84,215,238,187,250,6,243,187,60,54,247,187,26,101,251,187,146,147,255,187,211,224,1,188,170,247,3,188,78,14,6,188,191,36,8,188,252,58,10,188,5,81,12,188,219,102,14,188,125,124,16,188,
234,145,18,188,35,167,20,188,40,188,22,188,247,208,24,188,146,229,26,188,247,249,28,188,39,14,31,188,33,34,33,188,229,53,35,188,115,73,37,188,203,92,39,188,237,111,41,188,216,130,43,188,139,149,45,188,8,168,47,188,78,186,49,188,92,204,51,188,50,222,53,188,209,239,55,188,55,1,58,188,102,18,60,188,91,35,62,188,24,52,64,188,156,68,66,188,232,84,68,188,249,100,70,188,210,116,72,188,112,132,74,188,213,147,76,188,0,163,78,188,240,177,80,188,166,192,82,188,34,207,84,188,98,221,86,188,104,235,88,188,50,249,
90,188,192,6,93,188,19,20,95,188,43,33,97,188,6,46,99,188,165,58,101,188,7,71,103,188,45,83,105,188,22,95,107,188,194,106,109,188,48,118,111,188,98,129,113,188,85,140,115,188,11,151,117,188,131,161,119,188,188,171,121,188,183,181,123,188,116,191,125,188,242,200,127,188,24,233,128,188,152,237,129,188,248,241,130,188,56,246,131,188,89,250,132,188,89,254,133,188,58,2,135,188,250,5,136,188,154,9,137,188,25,13,138,188,120,16,139,188,183,19,140,188,213,22,141,188,210,25,142,188,174,28,143,188,105,31,144,
188,3,34,145,188,124,36,146,188,212,38,147,188,11,41,148,188,32,43,149,188,19,45,150,188,229,46,151,188,149,48,152,188,35,50,153,188,144,51,154,188,218,52,155,188,3,54,156,188,9,55,157,188,236,55,158,188,174,56,159,188,77,57,160,188,201,57,161,188,35,58,162,188,90,58,163,188,110,58,164,188,95,58,165,188,45,58,166,188,216,57,167,188,95,57,168,188,196,56,169,188,4,56,170,188,34,55,171,188,27,54,172,188,241,52,173,188,164,51,174,188,50,50,175,188,156,48,176,188,226,46,177,188,4,45,178,188,2,43,179,188,
219,40,180,188,144,38,181,188,32,36,182,188,140,33,183,188,211,30,184,188,245,27,185,188,242,24,186,188,202,21,187,188,125,18,188,188,11,15,189,188,115,11,190,188,182,7,191,188,211,3,192,188,203,255,192,188,158,251,193,188,74,247,194,188,209,242,195,188,49,238,196,188,108,233,197,188,129,228,198,188,111,223,199,188,55,218,200,188,216,212,201,188,83,207,202,188,168,201,203,188,213,195,204,188,220,189,205,188,188,183,206,188,117,177,207,188,7,171,208,188,114,164,209,188,182,157,210,188,210,150,211,
188,199,143,212,188,149,136,213,188,58,129,214,188,184,121,215,188,15,114,216,188,61,106,217,188,68,98,218,188,34,90,219,188,216,81,220,188,102,73,221,188,204,64,222,188,9,56,223,188,30,47,224,188,10,38,225,188,206,28,226,188,104,19,227,188,218,9,228,188,35,0,229,188,67,246,229,188,58,236,230,188,7,226,231,188,172,215,232,188,38,205,233,188,120,194,234,188,159,183,235,188,157,172,236,188,114,161,237,188,28,150,238,188,157,138,239,188,243,126,240,188,32,115,241,188,34,103,242,188,250,90,243,188,167,
78,244,188,42,66,245,188,131,53,246,188,177,40,247,188,180,27,248,188,140,14,249,188,58,1,250,188,188,243,250,188,20,230,251,188,64,216,252,188,65,202,253,188,23,188,254,188,193,173,255,188,160,79,0,189,73,200,0,189,221,64,1,189,91,185,1,189,195,49,2,189,21,170,2,189,81,34,3,189,119,154,3,189,134,18,4,189,128,138,4,189,99,2,5,189,49,122,5,189,231,241,5,189,136,105,6,189,18,225,6,189,134,88,7,189,228,207,7,189,43,71,8,189,91,190,8,189,117,53,9,189,120,172,9,189,100,35,10,189,58,154,10,189,249,16,11,
189,162,135,11,189,51,254,11,189,174,116,12,189,18,235,12,189,94,97,13,189,148,215,13,189,179,77,14,189,186,195,14,189,171,57,15,189,132,175,15,189,70,37,16,189,241,154,16,189,133,16,17,189,1,134,17,189,102,251,17,189,180,112,18,189,234,229,18,189,8,91,19,189,15,208,19,189,255,68,20,189,214,185,20,189,151,46,21,189,63,163,21,189,208,23,22,189,73,140,22,189,170,0,23,189,243,116,23,189,36,233,23,189,61,93,24,189,63,209,24,189,40,69,25,189,249,184,25,189,178,44,26,189,83,160,26,189,220,19,27,189,77,
135,27,189,165,250,27,189,229,109,28,189,12,225,28,189,28,84,29,189,18,199,29,189,241,57,30,189,182,172,30,189,99,31,31,189,248,145,31,189,116,4,32,189,215,118,32,189,34,233,32,189,83,91,33,189,108,205,33,189,109,63,34,189,84,177,34,189,34,35,35,189,215,148,35,189,116,6,36,189,247,119,36,189,97,233,36,189,178,90,37,189,234,203,37,189,9,61,38,189,14,174,38,189,251,30,39,189,206,143,39,189,135,0,40,189,39,113,40,189,174,225,40,189,27,82,41,189,111,194,41,189,169,50,42,189,202,162,42,189,209,18,43,189,
190,130,43,189,145,242,43,189,75,98,44,189,235,209,44,189,113,65,45,189,222,176,45,189,48,32,46,189,105,143,46,189,135,254,46,189,140,109,47,189,118,220,47,189,70,75,48,189,252,185,48,189,152,40,49,189,26,151,49,189,130,5,50,189,207,115,50,189,2,226,50,189,27,80,51,189,25,190,51,189,253,43,52,189,198,153,52,189,117,7,53,189,9,117,53,189,130,226,53,189,225,79,54,189,38,189,54,189,79,42,55,189,94,151,55,189,82,4,56,189,43,113,56,189,234,221,56,189,141,74,57,189,22,183,57,189,132,35,58,189,214,143,58,
189,14,252,58,189,42,104,59,189,44,212,59,189,18,64,60,189,221,171,60,189,141,23,61,189,33,131,61,189,155,238,61,189,249,89,62,189,59,197,62,189,98,48,63,189,110,155,63,189,94,6,64,189,51,113,64,189,236,219,64,189,138,70,65,189,12,177,65,189,114,27,66,189,189,133,66,189,235,239,66,189,255,89,67,189,246,195,67,189,209,45,68,189,145,151,68,189,52,1,69,189,188,106,69,189,40,212,69,189,119,61,70,189,171,166,70,189,195,15,71,189,190,120,71,189,157,225,71,189,96,74,72,189,7,179,72,189,146,27,73,189,0,132,
73,189,82,236,73,189,135,84,74,189,160,188,74,189,157,36,75,189,125,140,75,189,65,244,75,189,232,91,76,189,114,195,76,189,224,42,77,189,49,146,77,189,102,249,77,189,126,96,78,189,121,199,78,189,87,46,79,189,24,149,79,189,189,251,79,189,69,98,80,189,175,200,80,189,253,46,81,189,46,149,81,189,66,251,81,189,56,97,82,189,18,199,82,189,206,44,83,189,110,146,83,189,240,247,83,189,84,93,84,189,156,194,84,189,198,39,85,189,211,140,85,189,195,241,85,189,149,86,86,189,73,187,86,189,224,31,87,189,90,132,87,
189,182,232,87,189,245,76,88,189,22,177,88,189,25,21,89,189,255,120,89,189,199,220,89,189,113,64,90,189,253,163,90,189,108,7,91,189,189,106,91,189,240,205,91,189,5,49,92,189,252,147,92,189,213,246,92,189,144,89,93,189,45,188,93,189,172,30,94,189,13,129,94,189,80,227,94,189,116,69,95,189,123,167,95,189,99,9,96,189,45,107,96,189,216,204,96,189,102,46,97,189,212,143,97,189,37,241,97,189,87,82,98,189,107,179,98,189,96,20,99,189,55,117,99,189,239,213,99,189,136,54,100,189,3,151,100,189,95,247,100,189,
157,87,101,189,188,183,101,189,188,23,102,189,158,119,102,189,96,215,102,189,4,55,103,189,137,150,103,189,239,245,103,189,54,85,104,189,94,180,104,189,103,19,105,189,81,114,105,189,28,209,105,189,200,47,106,189,85,142,106,189,195,236,106,189,18,75,107,189,65,169,107,189,81,7,108,189,66,101,108,189,20,195,108,189,198,32,109,189,89,126,109,189,204,219,109,189,33,57,110,189,85,150,110,189,106,243,110,189,96,80,111,189,54,173,111,189,237,9,112,189,132,102,112,189,251,194,112,189,83,31,113,189,139,123,
113,189,164,215,113,189,156,51,114,189,117,143,114,189,46,235,114,189,200,70,115,189,65,162,115,189,154,253,115,189,212,88,116,189,238,179,116,189,231,14,117,189,193,105,117,189,123,196,117,189,20,31,118,189,142,121,118,189,231,211,118,189,32,46,119,189,57,136,119,189,50,226,119,189,11,60,120,189,195,149,120,189,91,239,120,189,211,72,121,189,42,162,121,189,97,251,121,189,120,84,122,189,110,173,122,189,68,6,123,189,249,94,123,189,142,183,123,189,2,16,124,189,86,104,124,189,137,192,124,189,155,24,125,
189,141,112,125,189,94,200,125,189,15,32,126,189,158,119,126,189,13,207,126,189,91,38,127,189,137,125,127,189,149,212,127,189,192,21,128,189,38,65,128,189,122,108,128,189,191,151,128,189,243,194,128,189,22,238,128,189,41,25,129,189,43,68,129,189,29,111,129,189,254,153,129,189,207,196,129,189,143,239,129,189,63,26,130,189,222,68,130,189,108,111,130,189,234,153,130,189,87,196,130,189,179,238,130,189,255,24,131,189,58,67,131,189,100,109,131,189,125,151,131,189,134,193,131,189,126,235,131,189,102,21,
132,189,60,63,132,189,2,105,132,189,183,146,132,189,91,188,132,189,239,229,132,189,113,15,133,189,227,56,133,189,68,98,133,189,148,139,133,189,211,180,133,189,1,222,133,189,30,7,134,189,43,48,134,189,38,89,134,189,17,130,134,189,234,170,134,189,179,211,134,189,106,252,134,189,17,37,135,189,167,77,135,189,43,118,135,189,159,158,135,189,1,199,135,189,83,239,135,189,147,23,136,189,195,63,136,189,225,103,136,189,238,143,136,189,234,183,136,189,213,223,136,189,175,7,137,189,119,47,137,189,47,87,137,189,
213,126,137,189,106,166,137,189,238,205,137,189,97,245,137,189,194,28,138,189,18,68,138,189,81,107,138,189,127,146,138,189,156,185,138,189,167,224,138,189,161,7,139,189,137,46,139,189,97,85,139,189,39,124,139,189,219,162,139,189,127,201,139,189,16,240,139,189,145,22,140,189,0,61,140,189,94,99,140,189,170,137,140,189,229,175,140,189,15,214,140,189,39,252,140,189,46,34,141,189,35,72,141,189,6,110,141,189,217,147,141,189,153,185,141,189,73,223,141,189,230,4,142,189,114,42,142,189,237,79,142,189,86,117,
142,189,174,154,142,189,244,191,142,189,40,229,142,189,75,10,143,189,92,47,143,189,92,84,143,189,74,121,143,189,38,158,143,189,241,194,143,189,170,231,143,189,81,12,144,189,231,48,144,189,107,85,144,189,221,121,144,189,62,158,144,189,140,194,144,189,202,230,144,189,245,10,145,189,15,47,145,189,22,83,145,189,13,119,145,189,241,154,145,189,195,190,145,189,132,226,145,189,51,6,146,189,208,41,146,189,92,77,146,189,213,112,146,189,61,148,146,189,146,183,146,189,214,218,146,189,8,254,146,189,40,33,147,
189,54,68,147,189,51,103,147,189,29,138,147,189,245,172,147,189,188,207,147,189,112,242,147,189,19,21,148,189,164,55,148,189,34,90,148,189,143,124,148,189,234,158,148,189,50,193,148,189,105,227,148,189,141,5,149,189,160,39,149,189,160,73,149,189,143,107,149,189,107,141,149,189,54,175,149,189,238,208,149,189,148,242,149,189,40,20,150,189,170,53,150,189,26,87,150,189,119,120,150,189,195,153,150,189,252,186,150,189,36,220,150,189,57,253,150,189,60,30,151,189,44,63,151,189,11,96,151,189,215,128,151,189,
145,161,151,189,57,194,151,189,207,226,151,189,82,3,152,189,195,35,152,189,34,68,152,189,111,100,152,189,169,132,152,189,210,164,152,189,231,196,152,189,235,228,152,189,220,4,153,189,187,36,153,189,136,68,153,189,66,100,153,189,234,131,153,189,128,163,153,189,3,195,153,189,116,226,153,189,210,1,154,189,30,33,154,189,88,64,154,189,127,95,154,189,148,126,154,189,151,157,154,189,135,188,154,189,100,219,154,189,48,250,154,189,232,24,155,189,143,55,155,189,35,86,155,189,164,116,155,189,19,147,155,189,
111,177,155,189,185,207,155,189,241,237,155,189,22,12,156,189,40,42,156,189,40,72,156,189,21,102,156,189,240,131,156,189,185,161,156,189,110,191,156,189,17,221,156,189,162,250,156,189,32,24,157,189,139,53,157,189,228,82,157,189,43,112,157,189,94,141,157,189,127,170,157,189,142,199,157,189,137,228,157,189,115,1,158,189,73,30,158,189,13,59,158,189,190,87,158,189,93,116,158,189,233,144,158,189,98,173,158,189,200,201,158,189,28,230,158,189,93,2,159,189,140,30,159,189,167,58,159,189,176,86,159,189,166,
114,159,189,138,142,159,189,91,170,159,189,25,198,159,189,196,225,159,189,93,253,159,189,226,24,160,189,85,52,160,189,181,79,160,189,3,107,160,189,62,134,160,189,101,161,160,189,122,188,160,189,125,215,160,189,108,242,160,189,72,13,161,189,18,40,161,189,201,66,161,189,109,93,161,189,254,119,161,189,125,146,161,189,232,172,161,189,65,199,161,189,134,225,161,189,185,251,161,189,217,21,162,189,230,47,162,189,225,73,162,189,200,99,162,189,156,125,162,189,94,151,162,189,12,177,162,189,168,202,162,189,
48,228,162,189,166,253,162,189,9,23,163,189,89,48,163,189,150,73,163,189,191,98,163,189,214,123,163,189,218,148,163,189,203,173,163,189,169,198,163,189,116,223,163,189,44,248,163,189,209,16,164,189,99,41,164,189,226,65,164,189,78,90,164,189,167,114,164,189,237,138,164,189,32,163,164,189,64,187,164,189,77,211,164,189,70,235,164,189,45,3,165,189,1,27,165,189,193,50,165,189,111,74,165,189,9,98,165,189,145,121,165,189,5,145,165,189,102,168,165,189,180,191,165,189,239,214,165,189,23,238,165,189,44,5,166,
189,46,28,166,189,28,51,166,189,248,73,166,189,192,96,166,189,117,119,166,189,23,142,166,189,166,164,166,189,34,187,166,189,138,209,166,189,224,231,166,189,34,254,166,189,81,20,167,189,109,42,167,189,118,64,167,189,107,86,167,189,78,108,167,189,29,130,167,189,217,151,167,189,130,173,167,189,24,195,167,189,154,216,167,189,9,238,167,189,101,3,168,189,174,24,168,189,228,45,168,189,6,67,168,189,21,88,168,189,17,109,168,189,250,129,168,189,207,150,168,189,146,171,168,189,65,192,168,189,220,212,168,189,
101,233,168,189,218,253,168,189,60,18,169,189,139,38,169,189,198,58,169,189,238,78,169,189,3,99,169,189,5,119,169,189,243,138,169,189,206,158,169,189,150,178,169,189,74,198,169,189,236,217,169,189,121,237,169,189,244,0,170,189,91,20,170,189,175,39,170,189,240,58,170,189,29,78,170,189,55,97,170,189,62,116,170,189,49,135,170,189,17,154,170,189,222,172,170,189,151,191,170,189,61,210,170,189,208,228,170,189,80,247,170,189,188,9,171,189,20,28,171,189,90,46,171,189,140,64,171,189,170,82,171,189,181,100,
171,189,173,118,171,189,146,136,171,189,99,154,171,189,33,172,171,189,203,189,171,189,98,207,171,189,230,224,171,189,86,242,171,189,179,3,172,189,253,20,172,189,51,38,172,189,86,55,172,189,101,72,172,189,97,89,172,189,74,106,172,189,31,123,172,189,225,139,172,189,143,156,172,189,42,173,172,189,178,189,172,189,38,206,172,189,135,222,172,189,212,238,172,189,14,255,172,189,52,15,173,189,72,31,173,189,71,47,173,189,52,63,173,189,12,79,173,189,210,94,173,189,132,110,173,189,34,126,173,189,174,141,173,
189,37,157,173,189,137,172,173,189,218,187,173,189,24,203,173,189,66,218,173,189,88,233,173,189,91,248,173,189,75,7,174,189,39,22,174,189,240,36,174,189,165,51,174,189,71,66,174,189,214,80,174,189,80,95,174,189,184,109,174,189,12,124,174,189,77,138,174,189,122,152,174,189,147,166,174,189,154,180,174,189,141,194,174,189,108,208,174,189],"i8",4,y.a+122880);
Q([56,222,174,189,240,235,174,189,149,249,174,189,39,7,175,189,165,20,175,189,15,34,175,189,102,47,175,189,170,60,175,189,218,73,175,189,247,86,175,189,0,100,175,189,246,112,175,189,216,125,175,189,167,138,175,189,98,151,175,189,10,164,175,189,158,176,175,189,31,189,175,189,141,201,175,189,231,213,175,189,45,226,175,189,96,238,175,189,128,250,175,189,140,6,176,189,132,18,176,189,106,30,176,189,59,42,176,189,249,53,176,189,164,65,176,189,59,77,176,189,191,88,176,189,47,100,176,189,140,111,176,189,
214,122,176,189,11,134,176,189,46,145,176,189,61,156,176,189,56,167,176,189,32,178,176,189,245,188,176,189,182,199,176,189,99,210,176,189,253,220,176,189,132,231,176,189,247,241,176,189,87,252,176,189,163,6,177,189,220,16,177,189,1,27,177,189,19,37,177,189,17,47,177,189,252,56,177,189,211,66,177,189,151,76,177,189,71,86,177,189,228,95,177,189,110,105,177,189,228,114,177,189,70,124,177,189,150,133,177,189,209,142,177,189,249,151,177,189,14,161,177,189,15,170,177,189,253,178,177,189,215,187,177,189,
158,196,177,189,82,205,177,189,242,213,177,189,126,222,177,189,247,230,177,189,93,239,177,189,175,247,177,189,238,255,177,189,25,8,178,189,49,16,178,189,53,24,178,189,38,32,178,189,4,40,178,189,206,47,178,189,132,55,178,189,40,63,178,189,183,70,178,189,52,78,178,189,157,85,178,189,242,92,178,189,52,100,178,189,99,107,178,189,126,114,178,189,133,121,178,189,122,128,178,189,91,135,178,189,40,142,178,189,226,148,178,189,137,155,178,189,28,162,178,189,156,168,178,189,8,175,178,189,97,181,178,189,167,
187,178,189,217,193,178,189,248,199,178,189,3,206,178,189,251,211,178,189,224,217,178,189,177,223,178,189,111,229,178,189,25,235,178,189,176,240,178,189,52,246,178,189,164,251,178,189,1,1,179,189,75,6,179,189,129,11,179,189,164,16,179,189,179,21,179,189,175,26,179,189,152,31,179,189,109,36,179,189,47,41,179,189,222,45,179,189,121,50,179,189,1,55,179,189,117,59,179,189,214,63,179,189,36,68,179,189,95,72,179,189,134,76,179,189,154,80,179,189,154,84,179,189,136,88,179,189,97,92,179,189,40,96,179,189,
219,99,179,189,123,103,179,189,8,107,179,189,129,110,179,189,231,113,179,189,58,117,179,189,121,120,179,189,165,123,179,189,190,126,179,189,195,129,179,189,182,132,179,189,149,135,179,189,96,138,179,189,25,141,179,189,190,143,179,189,79,146,179,189,206,148,179,189,57,151,179,189,145,153,179,189,214,155,179,189,8,158,179,189,38,160,179,189,49,162,179,189,41,164,179,189,13,166,179,189,223,167,179,189,157,169,179,189,72,171,179,189,223,172,179,189,100,174,179,189,213,175,179,189,51,177,179,189,126,178,
179,189,181,179,179,189,218,180,179,189,235,181,179,189,233,182,179,189,212,183,179,189,172,184,179,189,112,185,179,189,33,186,179,189,192,186,179,189,74,187,179,189,194,187,179,189,39,188,179,189,120,188,179,189,183,188,179,189,226,188,179,189,250,188,179,189,255,188,179,189,241,188,179,189,208,188,179,189,155,188,179,189,84,188,179,189,249,187,179,189,139,187,179,189,10,187,179,189,118,186,179,189,207,185,179,189,21,185,179,189,72,184,179,189,104,183,179,189,116,182,179,189,110,181,179,189,84,180,
179,189,40,179,179,189,232,177,179,189,150,176,179,189,48,175,179,189,183,173,179,189,43,172,179,189,141,170,179,189,219,168,179,189,22,167,179,189,62,165,179,189,83,163,179,189,85,161,179,189,68,159,179,189,33,157,179,189,234,154,179,189,160,152,179,189,67,150,179,189,211,147,179,189,81,145,179,189,187,142,179,189,18,140,179,189,87,137,179,189,136,134,179,189,167,131,179,189,178,128,179,189,171,125,179,189,145,122,179,189,100,119,179,189,36,116,179,189,209,112,179,189,107,109,179,189,242,105,179,
189,102,102,179,189,200,98,179,189,23,95,179,189,82,91,179,189,123,87,179,189,145,83,179,189,148,79,179,189,133,75,179,189,98,71,179,189,45,67,179,189,229,62,179,189,138,58,179,189,28,54,179,189,155,49,179,189,8,45,179,189,98,40,179,189,169,35,179,189,221,30,179,189,255,25,179,189,13,21,179,189,9,16,179,189,242,10,179,189,201,5,179,189,141,0,179,189,61,251,178,189,220,245,178,189,103,240,178,189,224,234,178,189,70,229,178,189,153,223,178,189,218,217,178,189,8,212,178,189,35,206,178,189,44,200,178,
189,34,194,178,189,5,188,178,189,214,181,178,189,148,175,178,189,63,169,178,189,216,162,178,189,94,156,178,189,210,149,178,189,51,143,178,189,129,136,178,189,188,129,178,189,230,122,178,189,252,115,178,189,0,109,178,189,241,101,178,189,208,94,178,189,156,87,178,189,86,80,178,189,253,72,178,189,146,65,178,189,20,58,178,189,131,50,178,189,224,42,178,189,43,35,178,189,99,27,178,189,136,19,178,189,155,11,178,189,156,3,178,189,138,251,177,189,102,243,177,189,47,235,177,189,230,226,177,189,138,218,177,
189,28,210,177,189,155,201,177,189,8,193,177,189,99,184,177,189,171,175,177,189,225,166,177,189,5,158,177,189,22,149,177,189,20,140,177,189,1,131,177,189,219,121,177,189,162,112,177,189,88,103,177,189,251,93,177,189,140,84,177,189,10,75,177,189,118,65,177,189,208,55,177,189,23,46,177,189,77,36,177,189,112,26,177,189,128,16,177,189,127,6,177,189,107,252,176,189,69,242,176,189,13,232,176,189,194,221,176,189,102,211,176,189,247,200,176,189,118,190,176,189,226,179,176,189,61,169,176,189,133,158,176,189,
188,147,176,189,224,136,176,189,242,125,176,189,241,114,176,189,223,103,176,189,187,92,176,189,132,81,176,189,59,70,176,189,225,58,176,189,116,47,176,189,245,35,176,189,100,24,176,189,193,12,176,189,12,1,176,189,69,245,175,189,108,233,175,189,129,221,175,189,132,209,175,189,116,197,175,189,83,185,175,189,32,173,175,189,219,160,175,189,132,148,175,189,27,136,175,189,160,123,175,189,19,111,175,189,117,98,175,189,196,85,175,189,1,73,175,189,45,60,175,189,70,47,175,189,78,34,175,189,68,21,175,189,40,
8,175,189,250,250,174,189,186,237,174,189,105,224,174,189,5,211,174,189,144,197,174,189,9,184,174,189,112,170,174,189,198,156,174,189,9,143,174,189,59,129,174,189,91,115,174,189,106,101,174,189,103,87,174,189,81,73,174,189,43,59,174,189,242,44,174,189,168,30,174,189,76,16,174,189,223,1,174,189,95,243,173,189,207,228,173,189,44,214,173,189,120,199,173,189,178,184,173,189,219,169,173,189,242,154,173,189,247,139,173,189,235,124,173,189,205,109,173,189,158,94,173,189,93,79,173,189,11,64,173,189,167,48,
173,189,49,33,173,189,170,17,173,189,18,2,173,189,104,242,172,189,172,226,172,189,223,210,172,189,1,195,172,189,17,179,172,189,16,163,172,189,253,146,172,189,217,130,172,189,163,114,172,189,92,98,172,189,4,82,172,189,154,65,172,189,31,49,172,189,147,32,172,189,245,15,172,189,70,255,171,189,134,238,171,189,180,221,171,189,209,204,171,189,221,187,171,189,215,170,171,189,192,153,171,189,152,136,171,189,95,119,171,189,20,102,171,189,184,84,171,189,75,67,171,189,205,49,171,189,61,32,171,189,157,14,171,
189,235,252,170,189,40,235,170,189,84,217,170,189,111,199,170,189,120,181,170,189,113,163,170,189,88,145,170,189,47,127,170,189,244,108,170,189,168,90,170,189,75,72,170,189,222,53,170,189,95,35,170,189,207,16,170,189,46,254,169,189,124,235,169,189,185,216,169,189,229,197,169,189,0,179,169,189,10,160,169,189,3,141,169,189,236,121,169,189,195,102,169,189,138,83,169,189,63,64,169,189,228,44,169,189,120,25,169,189,251,5,169,189,109,242,168,189,206,222,168,189,31,203,168,189,94,183,168,189,141,163,168,
189,171,143,168,189,184,123,168,189,181,103,168,189,161,83,168,189,124,63,168,189,70,43,168,189,0,23,168,189,169,2,168,189,65,238,167,189,200,217,167,189,63,197,167,189,165,176,167,189,251,155,167,189,64,135,167,189,116,114,167,189,152,93,167,189,171,72,167,189,174,51,167,189,160,30,167,189,129,9,167,189,82,244,166,189,18,223,166,189,194,201,166,189,97,180,166,189,240,158,166,189,111,137,166,189,221,115,166,189,58,94,166,189,135,72,166,189,196,50,166,189,240,28,166,189,11,7,166,189,23,241,165,189,
18,219,165,189,252,196,165,189,215,174,165,189,161,152,165,189,90,130,165,189,3,108,165,189,156,85,165,189,37,63,165,189,157,40,165,189,6,18,165,189,93,251,164,189,165,228,164,189,220,205,164,189,4,183,164,189,27,160,164,189,34,137,164,189,24,114,164,189,255,90,164,189,213,67,164,189,155,44,164,189,81,21,164,189,247,253,163,189,141,230,163,189,19,207,163,189,137,183,163,189,238,159,163,189,68,136,163,189,138,112,163,189,191,88,163,189,229,64,163,189,251,40,163,189,0,17,163,189,246,248,162,189,220,
224,162,189,177,200,162,189,119,176,162,189,45,152,162,189,211,127,162,189,106,103,162,189,240,78,162,189,102,54,162,189,205,29,162,189,36,5,162,189,107,236,161,189,162,211,161,189,202,186,161,189,225,161,161,189,233,136,161,189,225,111,161,189,202,86,161,189,163,61,161,189,108,36,161,189,37,11,161,189,207,241,160,189,105,216,160,189,243,190,160,189,110,165,160,189,217,139,160,189,52,114,160,189,128,88,160,189,189,62,160,189,233,36,160,189,7,11,160,189,20,241,159,189,18,215,159,189,1,189,159,189,
224,162,159,189,176,136,159,189,112,110,159,189,33,84,159,189,195,57,159,189,84,31,159,189,215,4,159,189,74,234,158,189,174,207,158,189,2,181,158,189,71,154,158,189,125,127,158,189,164,100,158,189,187,73,158,189,195,46,158,189,187,19,158,189,164,248,157,189,127,221,157,189,73,194,157,189,5,167,157,189,177,139,157,189,79,112,157,189,221,84,157,189,91,57,157,189,203,29,157,189,44,2,157,189,125,230,156,189,192,202,156,189,243,174,156,189,23,147,156,189,44,119,156,189,51,91,156,189,42,63,156,189,18,35,
156,189,235,6,156,189,181,234,155,189,112,206,155,189,28,178,155,189,186,149,155,189,72,121,155,189,200,92,155,189,56,64,155,189,154,35,155,189,237,6,155,189,49,234,154,189,102,205,154,189,140,176,154,189,164,147,154,189,172,118,154,189,166,89,154,189,146,60,154,189,110,31,154,189,60,2,154,189,251,228,153,189,171,199,153,189,77,170,153,189,224,140,153,189,100,111,153,189,218,81,153,189,65,52,153,189,154,22,153,189,228,248,152,189,31,219,152,189,76,189,152,189,106,159,152,189,122,129,152,189,123,99,
152,189,110,69,152,189,82,39,152,189,40,9,152,189,239,234,151,189,168,204,151,189,83,174,151,189,239,143,151,189,124,113,151,189,252,82,151,189,109,52,151,189,208,21,151,189,36,247,150,189,106,216,150,189,162,185,150,189,203,154,150,189,230,123,150,189,243,92,150,189,242,61,150,189,227,30,150,189,197,255,149,189,153,224,149,189,95,193,149,189,23,162,149,189,193,130,149,189,92,99,149,189,234,67,149,189,105,36,149,189,219,4,149,189,62,229,148,189,147,197,148,189,219,165,148,189,20,134,148,189,63,102,
148,189,92,70,148,189,108,38,148,189,109,6,148,189,97,230,147,189,70,198,147,189,30,166,147,189,232,133,147,189,164,101,147,189,82,69,147,189,242,36,147,189,133,4,147,189,9,228,146,189,128,195,146,189,233,162,146,189,69,130,146,189,147,97,146,189,211,64,146,189,5,32,146,189,42,255,145,189,65,222,145,189,74,189,145,189,70,156,145,189,52,123,145,189,20,90,145,189,231,56,145,189,172,23,145,189,100,246,144,189,15,213,144,189,171,179,144,189,59,146,144,189,189,112,144,189,49,79,144,189,152,45,144,189,
241,11,144,189,61,234,143,189,124,200,143,189,173,166,143,189,209,132,143,189,232,98,143,189,241,64,143,189,237,30,143,189,220,252,142,189,189,218,142,189,145,184,142,189,88,150,142,189,18,116,142,189,191,81,142,189,94,47,142,189,240,12,142,189,117,234,141,189,237,199,141,189,87,165,141,189,181,130,141,189,6,96,141,189,73,61,141,189,127,26,141,189,169,247,140,189,197,212,140,189,212,177,140,189,215,142,140,189,204,107,140,189,181,72,140,189,144,37,140,189,95,2,140,189,32,223,139,189,213,187,139,189,
125,152,139,189,24,117,139,189,166,81,139,189,40,46,139,189,157,10,139,189,4,231,138,189,96,195,138,189,174,159,138,189,240,123,138,189,37,88,138,189,77,52,138,189,104,16,138,189,119,236,137,189,122,200,137,189,111,164,137,189,88,128,137,189,53,92,137,189,5,56,137,189,200,19,137,189,127,239,136,189,41,203,136,189,199,166,136,189,89,130,136,189,222,93,136,189,86,57,136,189,194,20,136,189,34,240,135,189,117,203,135,189,188,166,135,189,246,129,135,189,36,93,135,189,70,56,135,189,92,19,135,189,101,238,
134,189,98,201,134,189,83,164,134,189,55,127,134,189,16,90,134,189,220,52,134,189,156,15,134,189,80,234,133,189,247,196,133,189,147,159,133,189,34,122,133,189,165,84,133,189,29,47,133,189,136,9,133,189,231,227,132,189,58,190,132,189,130,152,132,189,189,114,132,189,236,76,132,189,15,39,132,189,39,1,132,189,50,219,131,189,50,181,131,189,37,143,131,189,13,105,131,189,233,66,131,189,186,28,131,189,126,246,130,189,55,208,130,189,228,169,130,189,133,131,130,189,26,93,130,189,164,54,130,189,34,16,130,189,
148,233,129,189,251,194,129,189,86,156,129,189,166,117,129,189,233,78,129,189,34,40,129,189,78,1,129,189,112,218,128,189,133,179,128,189,144,140,128,189,142,101,128,189,130,62,128,189,105,23,128,189,139,224,127,189,45,146,127,189,185,67,127,189,45,245,126,189,139,166,126,189,210,87,126,189,2,9,126,189,28,186,125,189,31,107,125,189,12,28,125,189,226,204,124,189,162,125,124,189,75,46,124,189,222,222,123,189,91,143,123,189,193,63,123,189,18,240,122,189,76,160,122,189,111,80,122,189,125,0,122,189,116,
176,121,189,86,96,121,189,33,16,121,189,215,191,120,189,118,111,120,189,255,30,120,189,115,206,119,189,209,125,119,189,25,45,119,189,75,220,118,189,104,139,118,189,110,58,118,189,96,233,117,189,59,152,117,189,1,71,117,189,177,245,116,189,76,164,116,189,210,82,116,189,66,1,116,189,156,175,115,189,226,93,115,189,18,12,115,189,44,186,114,189,50,104,114,189,34,22,114,189,253,195,113,189,195,113,113,189,116,31,113,189,16,205,112,189,151,122,112,189,9,40,112,189,102,213,111,189,174,130,111,189,225,47,111,
189,255,220,110,189,9,138,110,189,254,54,110,189,222,227,109,189,170,144,109,189,97,61,109,189,3,234,108,189,145,150,108,189,10,67,108,189,111,239,107,189,191,155,107,189,251,71,107,189,35,244,106,189,54,160,106,189,53,76,106,189,32,248,105,189,247,163,105,189,185,79,105,189,104,251,104,189,2,167,104,189,136,82,104,189,251,253,103,189,89,169,103,189,163,84,103,189,218,255,102,189,253,170,102,189,11,86,102,189,7,1,102,189,238,171,101,189,194,86,101,189,130,1,101,189,46,172,100,189,199,86,100,189,76,
1,100,189,190,171,99,189,29,86,99,189,104,0,99,189,159,170,98,189,195,84,98,189,212,254,97,189,210,168,97,189,189,82,97,189,148,252,96,189,88,166,96,189,9,80,96,189,168,249,95,189,51,163,95,189,171,76,95,189,16,246,94,189,98,159,94,189,161,72,94,189,206,241,93,189,232,154,93,189,239,67,93,189,227,236,92,189,197,149,92,189,148,62,92,189,80,231,91,189,250,143,91,189,146,56,91,189,23,225,90,189,137,137,90,189,234,49,90,189,55,218,89,189,115,130,89,189,156,42,89,189,179,210,88,189,184,122,88,189,171,
34,88,189,140,202,87,189,90,114,87,189,23,26,87,189,193,193,86,189,90,105,86,189,225,16,86,189,86,184,85,189,185,95,85,189,10,7,85,189,73,174,84,189,119,85,84,189,147,252,83,189,158,163,83,189,151,74,83,189,126,241,82,189,84,152,82,189,25,63,82,189,204,229,81,189,110,140,81,189,254,50,81,189,125,217,80,189,235,127,80,189,71,38,80,189,147,204,79,189,205,114,79,189,246,24,79,189,14,191,78,189,22,101,78,189,12,11,78,189,241,176,77,189,197,86,77,189,137,252,76,189,59,162,76,189,221,71,76,189,111,237,
75,189,239,146,75,189,95,56,75,189,190,221,74,189,13,131,74,189,75,40,74,189,121,205,73,189,150,114,73,189,163,23,73,189,159,188,72,189,139,97,72,189,103,6,72,189,51,171,71,189,238,79,71,189,153,244,70,189,52,153,70,189,192,61,70,189,59,226,69,189,166,134,69,189,1,43,69,189,76,207,68,189,135,115,68,189,179,23,68,189,206,187,67,189,218,95,67,189,215,3,67,189,195,167,66,189,160,75,66,189,109,239,65,189,43,147,65,189,218,54,65,189,120,218,64,189,8,126,64,189,136,33,64,189,249,196,63,189,90,104,63,189,
172,11,63,189,239,174,62,189,35,82,62,189,72,245,61,189,93,152,61,189,100,59,61,189,92,222,60,189,68,129,60,189,30,36,60,189,233,198,59,189,164,105,59,189,82,12,59,189,240,174,58,189,128,81,58,189,1,244,57,189,115,150,57,189,215,56,57,189,44,219,56,189,115,125,56,189,171,31,56,189,213,193,55,189,240,99,55,189,253,5,55,189,252,167,54,189,237,73,54,189,207,235,53,189,163,141,53,189,105,47,53,189,33,209,52,189,203,114,52,189,103,20,52,189,245,181,51,189,117,87,51,189,231,248,50,189,75,154,50,189,162,
59,50,189,234,220,49,189,37,126,49,189,83,31,49,189,114,192,48,189,133,97,48,189,137,2,48,189,128,163,47,189,106,68,47,189,70,229,46,189,21,134,46,189,214,38,46,189,138,199,45,189,49,104,45,189,203,8,45,189,87,169,44,189,215,73,44,189,73,234,43,189,174,138,43,189,6,43,43,189,82,203,42,189,144,107,42,189,194,11,42,189,230,171,41,189,254,75,41,189,9,236,40,189,8,140,40,189,249,43,40,189,222,203,39,189,183,107,39,189,131,11,39,189,66,171,38,189,245,74,38,189,156,234,37,189,54,138,37,189,196,41,37,189,
70,201,36,189,187,104,36,189,36,8,36,189,129,167,35,189,210,70,35,189,23,230,34,189,80,133,34,189,125,36,34,189,157,195,33,189,178,98,33,189,187,1,33,189,185,160,32,189,170,63,32,189,144,222,31,189,106,125,31,189,56,28,31,189,251,186,30,189,178,89,30,189,94,248,29,189,254,150,29,189,147,53,29,189,28,212,28,189,154,114,28,189,13,17,28,189,116,175,27,189,209,77,27,189,34,236,26,189,103,138,26,189,162,40,26,189,210,198,25,189,246,100,25,189,16,3,25,189,31,161,24,189,35,63,24,189,28,221,23,189,10,123,
23,189,237,24,23,189,198,182,22,189,148,84,22,189,88,242,21,189,17,144,21,189,191,45,21,189,99,203,20,189,252,104,20,189,139,6,20,189,15,164,19,189,138,65,19,189,249,222,18,189,95,124,18,189,186,25,18,189,12,183,17,189,83,84,17,189,144,241,16,189,195,142,16,189,236,43,16,189,11,201,15,189,32,102,15,189,43,3,15,189,45,160,14,189,37,61,14,189,19,218,13,189,247,118,13,189,209,19,13,189,162,176,12,189,106,77,12,189,40,234,11,189,220,134,11,189,135,35,11,189,41,192,10,189,193,92,10,189,80,249,9,189,213,
149,9,189,82,50,9,189,197,206,8,189,47,107,8,189,144,7,8,189,232,163,7,189,55,64,7,189,125,220,6,189,186,120,6,189,238,20,6,189,25,177,5,189,60,77,5,189,86,233,4,189,103,133,4,189,111,33,4,189,111,189,3,189,102,89,3,189,84,245,2,189,59,145,2,189,24,45,2,189,237,200,1,189,186,100,1,189,127,0,1,189,59,156,0,189,239,55,0,189,54,167,255,188,125,222,254,188,180,21,254,188,219,76,253,188,242,131,252,188,249,186,251,188,240,241,250,188,216,40,250,188,175,95,249,188,119,150,248,188,47,205,247,188,216,3,247,
188,114,58,246,188,252,112,245,188,119,167,244,188,227,221,243,188,64,20,243,188,142,74,242,188,205,128,241,188,254,182,240,188,32,237,239,188,51,35,239,188,55,89,238,188,46,143,237,188,21,197,236,188,239,250,235,188,186,48,235,188,120,102,234,188,39,156,233,188,201,209,232,188,92,7,232,188,226,60,231,188,90,114,230,188,197,167,229,188,34,221,228,188,114,18,228,188,181,71,227,188,234,124,226,188,18,178,225,188,45,231,224,188,60,28,224,188,61,81,223,188,49,134,222,188,25,187,221,188,244,239,220,188,
195,36,220,188,133,89,219,188,59,142,218,188,229,194,217,188,130,247,216,188,19,44,216,188,153,96,215,188,18,149,214,188,128,201,213,188,225,253,212,188,55,50,212,188,130,102,211,188,193,154,210,188,244,206,209,188,29,3,209,188,58,55,208,188,76,107,207,188,82,159,206,188,78,211,205,188,63,7,205,188,37,59,204,188,1,111,203,188,209,162,202,188,151,214,201,188,83,10,201,188,5,62,200,188,172,113,199,188,72,165,198,188,219,216,197,188,100,12,197,188,227,63,196,188,87,115,195,188,194,166,194,188,36,218,
193,188,124,13,193,188,202,64,192,188,15,116,191,188,74,167,190,188,124,218,189,188,165,13,189,188,197,64,188,188,220,115,187,188,234,166,186,188,240,217,185,188,236,12,185,188,224,63,184,188,203,114,183,188,174,165,182,188,136,216,181,188,90,11,181,188,36,62,180,188,229,112,179,188,159,163,178,188,81,214,177,188,250,8,177,188,156,59,176,188,54,110,175,188,201,160,174,188,84,211,173,188,215,5,173,188,84,56,172,188,200,106,171,188,54,157,170,188,157,207,169,188,252,1,169,188,85,52,168,188,167,102,
167,188,242,152,166,188,54,203,165,188,116,253,164,188,171,47,164,188,219,97,163,188,6,148,162,188,42,198,161,188,72,248,160,188,96,42,160,188,114,92,159,188,126,142,158,188,132,192,157,188,132,242,156,188,127,36,156,188,116,86,155,188,100,136,154,188,78,186,153,188,51,236,152,188,19,30,152,188,238,79,151,188,195,129,150,188,148,179,149,188,95,229,148,188,38,23,148,188,232,72,147,188,166,122,146,188,95,172,145,188,20,222,144,188,196,15,144,188,112,65,143,188,23,115,142,188,187,164,141,188,90,214,
140,188,246,7,140,188,142,57,139,188,34,107,138,188,178,156,137,188,63,206,136,188,200,255,135,188,78,49,135,188,208,98,134,188,79,148,133,188,203,197,132,188,68,247,131,188,186,40,131,188,45,90,130,188,157,139,129,188,10,189,128,188,234,220,127,188,186,63,126,188,133,162,124,188,76,5,123,188,14,104,121,188,203,202,119,188,132,45,118,188,57,144,116,188,234,242,114,188,151,85,113,188,65,184,111,188,231,26,110,188,137,125,108,188,41,224,106,188,198,66,105,188,96,165,103,188,247,7,102,188,140,106,100,
188,31,205,98,188,176,47,97,188,62,146,95,188,203,244,93,188,87,87,92,188,224,185,90,188,105,28,89,188,241,126,87,188,120,225,85,188,254,67,84,188,131,166,82,188,8,9,81,188,141,107,79,188,18,206,77,188,151,48,76,188,28,147,74,188,162,245,72,188,40,88,71,188,175,186,69,188,55,29,68,188,192,127,66,188,75,226,64,188,215,68,63,188,101,167,61,188,244,9,60,188,134,108,58,188,25,207,56,188,175,49,55,188,72,148,53,188,227,246,51,188,129,89,50,188,33,188,48,188,198,30,47,188,109,129,45,188,24,228,43,188,199,
70,42,188,121,169,40,188,47,12,39,188,234,110,37,188,169,209,35,188,109,52,34,188,53,151,32,188,2,250,30,188,212,92,29,188,171,191,27,188,136,34,26,188,106,133,24,188,82,232,22,188,64,75,21,188,52,174,19,188,46,17,18,188,46,116,16,188,53,215,14,188,66,58,13,188,87,157,11,188,114,0,10,188,149,99,8,188,191,198,6,188,241,41,5,188,42,141,3,188,108,240,1,188,181,83,0,188,13,110,253,187,193,52,250,187,134,251,246,187,93,194,243,187,69,137,240,187,63,80,237,187,76,23,234,187,107,222,230,187,158,165,227,
187,228,108,224,187,62,52,221,187,172,251,217,187,47,195,214,187,198,138,211,187,115,82,208,187,53,26,205,187,12,226,201,187,250,169,198,187,254,113,195,187,25,58,192,187,76,2,189,187,149,202,185,187,247,146,182,187,112,91,179,187,3,36,176,187,173,236,172,187,113,181,169,187,79,126,166,187,70,71,163,187,87,16,160,187,131,217,156,187,202,162,153,187,44,108,150,187,169,53,147,187,66,255,143,187,247,200,140,187,200,146,137,187,183,92,134,187,194,38,131,187,214,225,127,187,99,118,121,187,45,11,115,187,
51,160,108,187,119,53,102,187,249,202,95,187,186,96,89,187,187,246,82,187,252,140,76,187,125,35,70,187,64,186,63,187,70,81,57,187,142,232,50,187,25,128,44,187,233,23,38,187,253,175,31,187,87,72,25,187,247,224,18,187,222,121,12,187,12,19,6,187,5,89,255,186,132,140,242,186,149,192,229,186,58,245,216,186,116,42,204,186,70,96,191,186,175,150,178,186,178,205,165,186,80,5,153,186,137,61,140,186,192,236,126,186,171,95,101,186,214,211,75,186,68,73,50,186,246,191,24,186,225,111,254,185,107,98,203,185,142,
87,152,185,161,158,74,185,221,38,201,184,89,56,185,53,228,229,206,56,11,110,77,57,217,177,153,57,238,169,204,57,63,159,255,57,228,72,25,58,193,192,50,58,52,55,76,58,59,172,101,58,212,31,127,58,253,72,140,58,87,1,153,58,245,184,165,58,214,111,178,58,250,37,191,58,94,219,203,58,2,144,216,58,228,67,229,58,3,247,241,58,93,169,254,58,121,173,5,59,224,5,12,59,226,93,18,59,128,181,24,59,185,12,31,59,139,99,37,59,247,185,43,59,251,15,50,59,152,101,56,59,203,186,62,59,150,15,69,59,246,99,75,59,236,183,81,
59,119,11,88,59,149,94,94,59,71,177,100,59,140,3,107,59,100,85,113,59,204,166,119,59,198,247,125,59,40,36,130,59,53,76,133,59,9,116,136,59,165,155,139,59,7,195,142,59,48,234,145,59,31,17,149,59,212,55,152,59,78,94,155,59,142,132,158,59,147,170,161,59,92,208,164,59,234,245,167,59,60,27,171,59,81,64,174,59,41,101,177,59,197,137,180,59,36,174,183,59,68,210,186,59,39,246,189,59,204,25,193,59,50,61,196,59,89,96,199,59,65,131,202,59,233,165,205,59,82,200,208,59,123,234,211,59,99,12,215,59,10,46,218,59,
112,79,221,59,149,112,224,59,120,145,227,59,25,178,230,59,119,210,233,59,147,242,236,59,108,18,240,59,2,50,243,59,84,81,246,59,98,112,249,59,44,143,252,59,178,173,255,59,249,101,1,60,247,244,2,60,210,131,4,60,138,18,6,60,30,161,7,60,144,47,9,60,223,189,10,60,9,76,12,60,16,218,13,60,244,103,15,60,179,245,16,60,78,131,18,60,197,16,20,60,23,158,21,60,69,43,23,60,78,184,24,60,50,69,26,60,241,209,27,60,138,94,29,60,255,234,30,60,77,119,32,60,118,3,34,60,122,143,35,60,87,27,37,60,14,167,38,60,158,50,40,
60,8,190,41,60,76,73,43,60,104,212,44,60,94,95,46,60,45,234,47,60,212,116,49,60,84,255,50,60,173,137,52,60,221,19,54,60,230,157,55,60,199,39,57,60,127,177,58,60,16,59,60,60,120,196,61,60,183,77,63,60,205,214,64,60,186,95,66,60,127,232,67,60,26,113,69,60,139,249,70,60,212,129,72,60,242,9,74,60,230,145,75,60,177,25,77,60,81,161,78,60,199,40,80,60,19,176,81,60,52,55,83,60,42,190,84,60,245,68,86,60,149,203,87,60,10,82,89,60,84,216,90,60,114,94,92,60,100,228,93,60,42,106,95,60,197,239,96,60,51,117,98,
60,117,250,99,60,139,127,101,60,116,4,103,60,48,137,104,60,191,13,106,60,34,146,107,60,87,22,109,60,94,154,110,60,57,30,112,60,229,161,113,60,100,37,115,60,181,168,116,60,216,43,118,60,204,174,119,60,147,49,121,60,42,180,122,60,147,54,124,60,205,184,125,60,216,58,127,60,90,94,128,60,48,31,129,60,239,223,129,60,150,160,130,60,37,97,131,60,156,33,132,60,251,225,132,60,66,162,133,60,112,98,134,60,135,34,135,60,133,226,135,60,107,162,136,60,56,98,137,60,237,33,138,60,137,225,138,60,13,161,139,60,119,
96,140,60,201,31,141,60,2,223,141,60,34,158,142,60,41,93,143,60,23,28,144,60,236,218,144,60,167,153,145,60,73,88,146,60,210,22,147,60,65,213,147,60,151,147,148,60,211,81,149,60,245,15,150,60,254,205,150,60,236,139,151,60,193,73,152,60,124,7,153,60,28,197,153,60,163,130,154,60,15,64,155,60,97,253,155,60,153,186,156,60,182,119,157,60,184,52,158,60,160,241,158,60,110,174,159,60,33,107,160,60,184,39,161,60,54,228,161,60,152,160,162,60,223,92,163,60,11,25,164,60,28,213,164,60,17,145,165,60,236,76,166,
60,170,8,167,60,78,196,167,60,214,127,168,60,66,59,169,60,147,246,169,60,200,177,170,60,225,108,171,60,223,39,172,60,192,226,172,60,134,157,173,60,47,88,174,60,188,18,175,60,45,205,175,60,130,135,176,60,186,65,177,60,214,251,177,60,213,181,178,60,184,111,179,60,126,41,180,60,39,227,180,60,180,156,181,60,35,86,182,60,118,15,183,60,172,200,183,60,197,129,184,60,192,58,185,60,159,243,185,60,96,172,186,60,3,101,187,60,138,29,188,60,242,213,188,60,62,142,189,60,107,70,190,60,123,254,190,60,109,182,191,
60,65,110,192,60,248,37,193,60,144,221,193,60,11,149,194,60,103,76,195,60,165,3,196,60,197,186,196,60,198,113,197,60,169,40,198,60,110,223,198,60,20,150,199,60,155,76,200,60,4,3,201,60,78,185,201,60,121,111,202,60,133,37,203,60,115,219,203,60,65,145,204,60,240,70,205,60,128,252,205,60,241,177,206,60,67,103,207,60,117,28,208,60,136,209,208,60,123,134,209,60,79,59,210,60,3,240,210,60,152,164,211,60,12,89,212,60,97,13,213,60,150,193,213,60,171,117,214,60,160,41,215,60,117,221,215,60,42,145,216,60,190,
68,217,60,50,248,217,60,134,171,218,60,185,94,219,60,204,17,220,60,190,196,220,60,144,119,221,60,65,42,222,60,209,220,222,60,64,143,223,60,142,65,224,60,188,243,224,60,200,165,225,60,179,87,226,60,125,9,227,60,38,187,227,60,174,108,228,60,20,30,229,60,88,207,229,60,124,128,230,60,125,49,231,60,93,226,231,60,27,147,232,60,184,67,233,60,50,244,233,60,139,164,234,60,194,84,235,60,215,4,236,60,201,180,236,60,154,100,237,60,72,20,238,60,212,195,238,60,62,115,239,60,133,34,240,60,169,209,240,60,171,128,
241,60,139,47,242,60,72,222,242,60,226,140,243,60,89,59,244,60,173,233,244,60,223,151,245,60,237,69,246,60,216,243,246,60,161,161,247,60,70,79,248,60,199,252,248,60,38,170,249,60,97,87,250,60,120,4,251,60,108,177,251,60,61,94,252,60,233,10,253,60,114,183,253,60,216,99,254,60,25,16,255,60,55,188,255,60,24,52,0,61,3,138,0,61,219,223,0,61,162,53,1,61,87,139,1,61,249,224,1,61,137,54,2,61,7,140,2,61,115,225,2,61,204,54,3,61,20,140,3,61,72,225,3,61,107,54,4,61,123,139,4,61,121,224,4,61,100,53,5,61,60,138,
5,61,3,223,5,61,182,51,6,61,87,136,6,61,230,220,6,61,97,49,7,61,203,133,7,61,33,218,7,61,101,46,8,61,150,130,8,61,180,214,8,61,191,42,9,61,183,126,9,61,157,210,9,61,111,38,10,61,47,122,10,61,220,205,10,61,117,33,11,61,252,116,11,61,111,200,11,61,208,27,12,61,29,111,12,61,87,194,12,61,126,21,13,61,146,104,13,61,146,187,13,61,127,14,14,61,89,97,14,61,32,180,14,61,211,6,15,61,114,89,15,61,255,171,15,61,119,254,15,61,221,80,16,61,46,163,16,61,108,245,16,61,151,71,17,61,174,153,17,61,177,235,17,61,161,
61,18,61,125,143,18,61,69,225,18,61,249,50,19,61,154,132,19,61,39,214,19,61,160,39,20,61,5,121,20,61,86,202,20,61,147,27,21,61,188,108,21,61,210,189,21,61,211,14,22,61,192,95,22,61,153,176,22,61,94,1,23,61,14,82,23,61,171,162,23,61,51,243,23,61,167,67,24,61,7,148,24,61,83,228,24,61,138,52,25,61,173,132,25,61,187,212,25,61,181,36,26,61,155,116,26,61,108,196,26,61,41,20,27,61,209,99,27,61,101,179,27,61,228,2,28,61,78,82,28,61,164,161,28,61,229,240,28,61,17,64,29,61,41,143,29,61,44,222,29,61,26,45,30,
61,243,123,30,61,183,202,30,61,103,25,31,61,2,104,31,61,135,182,31,61,248,4,32,61,84,83,32,61,155,161,32,61,204,239,32,61,233,61,33,61,241,139,33,61,227,217,33,61,192,39,34,61,137,117,34,61,60,195,34,61,217,16,35,61,98,94,35,61,213,171,35,61,51,249,35,61,123,70,36,61,174,147,36,61,204,224,36,61,212,45,37,61,199,122,37,61,164,199,37,61,108,20,38,61,31,97,38,61,187,173,38,61,67,250,38,61,180,70,39,61,16,147,39,61,86,223,39,61,135,43,40,61,162,119,40,61,167,195,40,61,150,15,41,61,111,91,41,61,51,167,
41,61,225,242,41,61,121,62,42,61,251,137,42,61,103,213,42,61,189,32,43,61,253,107,43,61,39,183,43,61,59,2,44,61,57,77,44,61,32,152,44,61,242,226,44,61,174,45,45,61,83,120,45,61,226,194,45,61,91,13,46,61,190,87,46,61,10,162,46,61,64,236,46,61,96,54,47,61,105,128,47,61,92,202,47,61,57,20,48,61,255,93,48,61,174,167,48,61,71,241,48,61,202,58,49,61,54,132,49,61,140,205,49,61,203,22,50,61,243,95,50,61,4,169,50,61,255,241,50,61,228,58,51,61,177,131,51,61,104,204,51,61,8,21,52,61,145,93,52,61,4,166,52,61,
95,238,52,61,164,54,53,61,210,126,53,61,232,198,53,61,232,14,54,61,209,86,54,61,163,158,54,61,94,230,54,61,2,46,55,61,142,117,55,61,4,189,55,61,99,4,56,61,170,75,56,61,218,146,56,61,243,217,56,61,245,32,57,61,223,103,57,61,179,174,57,61,111,245,57,61,19,60,58,61,160,130,58,61,22,201,58,61,117,15,59,61,188,85,59,61,235,155,59,61,3,226,59,61,4,40,60,61,237,109,60,61,191,179,60,61,121,249,60,61,27,63,61,61,166,132,61,61,25,202,61,61,117,15,62,61,185,84,62,61,229,153,62,61,249,222,62,61,246,35,63,61,
218,104,63,61,167,173,63,61,93,242,63,61,250,54,64,61,127,123,64,61,237,191,64,61,67,4,65,61,128,72,65,61,166,140,65,61,180,208,65,61,169,20,66,61,135,88,66,61,77,156,66,61,250,223,66,61,143,35,67,61,13,103,67,61,114,170,67,61,191,237,67,61,243,48,68,61,16,116,68,61,20,183,68,61,0,250,68,61,212,60,69,61,143,127,69,61,50,194,69,61,189,4,70,61,47,71,70,61,137,137,70,61,202,203,70,61,243,13,71,61,4,80,71,61,252,145,71,61,219,211,71,61,162,21,72,61,81,87,72,61,231,152,72,61,100,218,72,61,200,27,73,61,
20,93,73,61,71,158,73,61,98,223,73,61,100,32,74,61,77,97,74,61,29,162,74,61,213,226,74,61,115,35,75,61,249,99,75,61,102,164,75,61,187,228,75,61,246,36,76,61,24,101,76,61,34,165,76,61,18,229,76,61,234,36,77,61,168,100,77,61,78,164,77,61,218,227,77,61,77,35,78,61,168,98,78,61,233,161,78,61,17,225,78,61,32,32,79,61,21,95,79,61,242,157,79,61,181,220,79,61,95,27,80,61,240,89,80,61,104,152,80,61,198,214,80,61,11,21,81,61,55,83,81,61,73,145,81,61,66,207,81,61,33,13,82,61,231,74,82,61,148,136,82,61,39,198,
82,61,161,3,83,61,1,65,83,61,71,126,83,61,117,187,83,61,136,248,83,61,130,53,84,61,98,114,84,61,41,175,84,61,214,235,84,61,106,40,85,61,227,100,85,61,67,161,85,61,138,221,85,61,182,25,86,61,201,85,86,61,194,145,86,61,161,205,86,61,103,9,87,61,18,69,87,61,164,128,87,61,28,188,87,61,122,247,87,61,190,50,88,61,232,109,88,61,248,168,88,61,238,227,88,61,202,30,89,61,141,89,89,61,53,148,89,61,195,206,89,61,55,9,90,61,145,67,90,61,208,125,90,61,246,183,90,61,2,242,90,61,243,43,91,61,202,101,91,61,135,159,
91,61,42,217,91,61,178,18,92,61,32,76,92,61,116,133,92,61,174,190,92,61,205,247,92,61,210,48,93,61,189,105,93,61,141,162,93,61,67,219,93,61,223,19,94,61,96,76,94,61,198,132,94,61,19,189,94,61,68,245,94,61,91,45,95,61,88,101,95,61,58,157,95,61,2,213,95,61,175,12,96,61,65,68,96,61,185,123,96,61,22,179,96,61,89,234,96,61,129,33,97,61,142,88,97,61,129,143,97,61,88,198,97,61,21,253,97,61,184,51,98,61,63,106,98,61,172,160,98,61,254,214,98,61,53,13,99,61,82,67,99,61,83,121,99,61,58,175,99,61,6,229,99,61,
183,26,100,61,77,80,100,61,200,133,100,61,40,187,100,61,109,240,100,61,151,37,101,61,166,90,101,61,154,143,101,61,115,196,101,61,49,249,101,61,212,45,102,61,92,98,102,61,201,150,102,61,27,203,102,61,81,255,102,61,108,51,103,61,109,103,103,61,82,155,103,61,28,207,103,61,202,2,104,61,94,54,104,61,214,105,104,61,51,157,104,61,116,208,104,61,155,3,105,61,166,54,105,61,149,105,105,61,106,156,105,61,35,207,105,61,192,1,106,61,67,52,106,61,169,102,106,61,245,152,106,61,37,203,106,61,57,253,106,61,50,47,
107,61,16,97,107,61,210,146,107,61,121,196,107,61,4,246,107,61,115,39,108,61,199,88,108,61,0,138,108,61,29,187,108,61,30,236,108,61,4,29,109,61,206,77,109,61,124,126,109,61,15,175,109,61,134,223,109,61,225,15,110,61,33,64,110,61,68,112,110,61,77,160,110,61,57,208,110,61,10,0,111,61,191,47,111,61,88,95,111,61,213,142,111,61,54,190,111,61,124,237,111,61,166,28,112,61,180,75,112,61,166,122,112,61,124,169,112,61,54,216,112,61,213,6,113,61,87,53,113,61,190,99,113,61,8,146,113,61,55,192,113,61,73,238,113,
61,64,28,114,61,27,74,114,61,217,119,114,61,124,165,114,61,2,211,114,61,108,0,115,61,187,45,115,61,237,90,115,61,3,136,115,61,253,180,115,61,219,225,115,61,157,14,116,61,66,59,116,61,204,103,116,61,57,148,116,61,138,192,116,61,191,236,116,61,215,24,117,61,212,68,117,61,180,112,117,61,120,156,117,61,31,200,117,61,170,243,117,61,25,31,118,61,108,74,118,61,162,117,118,61,188,160,118,61,186,203,118,61,155,246,118,61,96,33,119,61,9,76,119,61,149,118,119,61,5,161,119,61,88,203,119,61,143,245,119,61,169,
31,120,61,167,73,120,61,137,115,120,61,78,157,120,61,247,198,120,61,131,240,120,61,242,25,121,61,69,67,121,61,124,108,121,61,149,149,121,61,147,190,121,61,116,231,121,61,56,16,122,61,223,56,122,61,106,97,122,61,217,137,122,61,43,178,122,61,96,218,122,61,120,2,123,61,116,42,123,61,83,82,123,61,21,122,123,61,187,161,123,61,68,201,123,61,176,240,123,61,0,24,124,61,51,63,124,61,73,102,124,61,66,141,124,61,31,180,124,61,223,218,124,61,130,1,125,61,8,40,125,61,113,78,125,61,190,116,125,61,238,154,125,61,
0,193,125,61,246,230,125,61,208,12,126,61,140,50,126,61,43,88,126,61,174,125,126,61,19,163,126,61,92,200,126,61,136,237,126,61,151,18,127,61,137,55,127,61,94,92,127,61,22,129,127,61,177,165,127,61,47,202,127,61,144,238,127,61,106,9,128,61,125,27,128,61,130,45,128,61,121,63,128,61,97,81,128,61,58,99,128,61,5,117,128,61,194,134,128,61,111,152,128,61,15,170,128,61,159,187,128,61,34,205,128,61,149,222,128,61,250,239,128,61,81,1,129,61,153,18,129,61,210,35,129,61,253,52,129,61,25,70,129,61,39,87,129,61,
38,104,129,61,23,121,129,61,248,137,129,61,204,154,129,61,144,171,129,61,70,188,129,61,238,204,129,61,135,221,129,61,17,238,129,61,140,254,129,61,249,14,130,61,88,31,130,61,167,47,130,61,232,63,130,61,27,80,130,61,62,96,130,61,83,112,130,61,90,128,130,61,81,144,130,61,58,160,130,61,21,176,130,61,225,191,130,61,158,207,130,61,76,223,130,61,236,238,130,61,125,254,130,61,255,13,131,61,115,29,131,61,215,44,131,61,46,60,131,61,117,75,131,61,174,90,131,61,216,105,131,61,243,120,131,61,0,136,131,61,254,
150,131,61,237,165,131,61,206,180,131,61,159,195,131,61,98,210,131,61,22,225,131,61,188,239,131,61,83,254,131,61,219,12,132,61,84,27,132,61,190,41,132,61,26,56,132,61,103,70,132,61,165,84,132,61,213,98,132,61,245,112,132,61,7,127,132,61,10,141,132,61,255,154,132,61,228,168,132,61,187,182,132,61,131,196,132,61,60,210,132,61,231,223,132,61,130,237,132,61,15,251,132,61,141,8,133,61,252,21,133,61,92,35,133,61,174,48,133,61,241,61,133,61,36,75,133,61,74,88,133,61,96,101,133,61,103,114,133,61,96,127,133,
61,74,140,133,61,37,153,133,61,241,165,133,61,174,178,133,61,92,191,133,61,252,203,133,61,141,216,133,61,15,229,133,61,130,241,133,61,230,253,133,61,59,10,134,61,130,22,134,61,185,34,134,61,226,46,134,61,252,58,134,61,7,71,134,61,3,83,134,61,240,94,134,61,207,106,134,61,158,118,134,61,95,130,134,61,17,142,134,61,180,153,134,61,72,165,134,61,205,176,134,61,67,188,134,61,170,199,134,61,3,211,134,61,76,222,134,61,135,233,134,61,179,244,134,61,208,255,134,61,222,10,135,61,221,21,135,61,205,32,135,61,
174,43,135,61,129,54,135,61,68,65,135,61,249,75,135,61,158,86,135,61,53,97,135,61,189,107,135,61,54,118,135,61,160,128,135,61,251,138,135,61,71,149,135,61,132,159,135,61,178,169,135,61,210,179,135,61,226,189,135,61,228,199,135,61,214,209,135,61,186,219,135,61,143,229,135,61,84,239,135,61,11,249,135,61,179,2,136,61,76,12,136,61,214,21,136,61,81,31,136,61,189,40,136,61,27,50,136,61,105,59,136,61,168,68,136,61,217,77,136,61,250,86,136,61,13,96,136,61,16,105,136,61,5,114,136,61,234,122,136,61,193,131,
136,61,137,140,136,61,66,149,136,61,235,157,136,61,134,166,136,61,18,175,136,61,143,183,136,61,253,191,136,61,92,200,136,61,172,208,136,61,238,216,136,61,32,225,136,61,67,233,136,61,87,241,136,61,93,249,136,61,83,1,137,61,58,9,137,61,19,17,137,61,220,24,137,61,151,32,137,61,67,40,137,61,223,47,137,61,109,55,137,61,235,62,137,61,91,70,137,61,188,77,137,61,14,85,137,61,80,92,137,61,132,99,137,61,169,106,137,61,191,113,137,61,198,120,137,61,190,127,137,61,167,134,137,61,129,141,137,61,76,148,137,61,
8,155,137,61,182,161,137,61,84,168,137,61,227,174,137,61,99,181,137,61,213,187,137,61,55,194,137,61,138,200,137,61,207,206,137,61,4,213,137,61,43,219,137,61,66,225,137,61],"i8",4,y.a+133120);
Q([75,231,137,61,68,237,137,61,47,243,137,61,11,249,137,61,215,254,137,61,149,4,138,61,68,10,138,61,228,15,138,61,117,21,138,61,246,26,138,61,105,32,138,61,205,37,138,61,34,43,138,61,104,48,138,61,160,53,138,61,200,58,138,61,225,63,138,61,235,68,138,61,230,73,138,61,211,78,138,61,176,83,138,61,127,88,138,61,62,93,138,61,239,97,138,61,144,102,138,61,35,107,138,61,166,111,138,61,27,116,138,61,129,120,138,61,216,124,138,61,32,129,138,61,89,133,138,61,131,137,138,61,158,141,138,61,170,145,138,61,167,
149,138,61,149,153,138,61,117,157,138,61,69,161,138,61,6,165,138,61,185,168,138,61,93,172,138,61,241,175,138,61,119,179,138,61,238,182,138,61,86,186,138,61,175,189,138,61,249,192,138,61,52,196,138,61,96,199,138,61,125,202,138,61,139,205,138,61,139,208,138,61,123,211,138,61,93,214,138,61,48,217,138,61,243,219,138,61,168,222,138,61,78,225,138,61,229,227,138,61,109,230,138,61,231,232,138,61,81,235,138,61,172,237,138,61,249,239,138,61,55,242,138,61,101,244,138,61,133,246,138,61,150,248,138,61,152,250,
138,61,139,252,138,61,112,254,138,61,69,0,139,61,12,2,139,61,195,3,139,61,108,5,139,61,6,7,139,61,145,8,139,61,13,10,139,61,123,11,139,61,217,12,139,61,41,14,139,61,106,15,139,61,155,16,139,61,190,17,139,61,211,18,139,61,216,19,139,61,206,20,139,61,182,21,139,61,143,22,139,61,89,23,139,61,20,24,139,61,192,24,139,61,93,25,139,61,236,25,139,61,108,26,139,61,221,26,139,61,63,27,139,61,146,27,139,61,215,27,139,61,12,28,139,61,51,28,139,61,75,28,139,61,84,28,139,61,79,28,139,61,58,28,139,61,23,28,139,
61,229,27,139,61,164,27,139,61,85,27,139,61,246,26,139,61,137,26,139,61,13,26,139,61,130,25,139,61,233,24,139,61,65,24,139,61,138,23,139,61,196,22,139,61,239,21,139,61,12,21,139,61,26,20,139,61,25,19,139,61,9,18,139,61,235,16,139,61,190,15,139,61,130,14,139,61,55,13,139,61,222,11,139,61,118,10,139,61,255,8,139,61,122,7,139,61,229,5,139,61,66,4,139,61,145,2,139,61,208,0,139,61,1,255,138,61,35,253,138,61,55,251,138,61,59,249,138,61,49,247,138,61,25,245,138,61,242,242,138,61,188,240,138,61,119,238,138,
61,35,236,138,61,193,233,138,61,81,231,138,61,209,228,138,61,67,226,138,61,167,223,138,61,251,220,138,61,65,218,138,61,121,215,138,61,161,212,138,61,187,209,138,61,199,206,138,61,195,203,138,61,178,200,138,61,145,197,138,61,98,194,138,61,36,191,138,61,216,187,138,61,125,184,138,61,19,181,138,61,155,177,138,61,21,174,138,61,127,170,138,61,219,166,138,61,41,163,138,61,104,159,138,61,152,155,138,61,186,151,138,61,205,147,138,61,210,143,138,61,200,139,138,61,175,135,138,61,136,131,138,61,83,127,138,61,
14,123,138,61,188,118,138,61,91,114,138,61,235,109,138,61,109,105,138,61,224,100,138,61,68,96,138,61,155,91,138,61,226,86,138,61,28,82,138,61,70,77,138,61,98,72,138,61,112,67,138,61,111,62,138,61,96,57,138,61,66,52,138,61,22,47,138,61,219,41,138,61,146,36,138,61,59,31,138,61,213,25,138,61,96,20,138,61,221,14,138,61,76,9,138,61,172,3,138,61,254,253,137,61,65,248,137,61,118,242,137,61,157,236,137,61,181,230,137,61,191,224,137,61,186,218,137,61,167,212,137,61,134,206,137,61,86,200,137,61,24,194,137,
61,203,187,137,61,112,181,137,61,7,175,137,61,143,168,137,61,10,162,137,61,117,155,137,61,211,148,137,61,34,142,137,61,98,135,137,61,149,128,137,61,185,121,137,61,206,114,137,61,214,107,137,61,207,100,137,61,186,93,137,61,150,86,137,61,101,79,137,61,37,72,137,61,214,64,137,61,122,57,137,61,15,50,137,61,150,42,137,61,15,35,137,61,121,27,137,61,213,19,137,61,35,12,137,61,99,4,137,61,149,252,136,61,184,244,136,61,205,236,136,61,212,228,136,61,205,220,136,61,183,212,136,61,147,204,136,61,98,196,136,61,
34,188,136,61,211,179,136,61,119,171,136,61,12,163,136,61,148,154,136,61,13,146,136,61,120,137,136,61,213,128,136,61,36,120,136,61,100,111,136,61,151,102,136,61,187,93,136,61,210,84,136,61,218,75,136,61,212,66,136,61,192,57,136,61,158,48,136,61,110,39,136,61,48,30,136,61,228,20,136,61,138,11,136,61,34,2,136,61,171,248,135,61,39,239,135,61,149,229,135,61,244,219,135,61,70,210,135,61,137,200,135,61,191,190,135,61,231,180,135,61,0,171,135,61,12,161,135,61,10,151,135,61,249,140,135,61,219,130,135,61,
175,120,135,61,117,110,135,61,45,100,135,61,215,89,135,61,115,79,135,61,1,69,135,61,129,58,135,61,243,47,135,61,88,37,135,61,174,26,135,61,247,15,135,61,50,5,135,61,95,250,134,61,126,239,134,61,143,228,134,61,146,217,134,61,136,206,134,61,111,195,134,61,73,184,134,61,21,173,134,61,211,161,134,61,132,150,134,61,38,139,134,61,187,127,134,61,66,116,134,61,188,104,134,61,39,93,134,61,133,81,134,61,213,69,134,61,23,58,134,61,75,46,134,61,114,34,134,61,139,22,134,61,150,10,134,61,148,254,133,61,132,242,
133,61,102,230,133,61,58,218,133,61,1,206,133,61,186,193,133,61,102,181,133,61,4,169,133,61,148,156,133,61,22,144,133,61,139,131,133,61,242,118,133,61,76,106,133,61,152,93,133,61,214,80,133,61,7,68,133,61,42,55,133,61,64,42,133,61,72,29,133,61,66,16,133,61,47,3,133,61,15,246,132,61,224,232,132,61,165,219,132,61,91,206,132,61,5,193,132,61,160,179,132,61,47,166,132,61,175,152,132,61,35,139,132,61,136,125,132,61,225,111,132,61,43,98,132,61,105,84,132,61,153,70,132,61,187,56,132,61,208,42,132,61,216,
28,132,61,210,14,132,61,191,0,132,61,158,242,131,61,112,228,131,61,53,214,131,61,236,199,131,61,150,185,131,61,50,171,131,61,194,156,131,61,67,142,131,61,184,127,131,61,31,113,131,61,121,98,131,61,197,83,131,61,5,69,131,61,55,54,131,61,91,39,131,61,115,24,131,61,125,9,131,61,122,250,130,61,105,235,130,61,76,220,130,61,33,205,130,61,233,189,130,61,164,174,130,61,81,159,130,61,241,143,130,61,133,128,130,61,11,113,130,61,131,97,130,61,239,81,130,61,77,66,130,61,159,50,130,61,227,34,130,61,26,19,130,
61,68,3,130,61,97,243,129,61,113,227,129,61,115,211,129,61,105,195,129,61,81,179,129,61,45,163,129,61,251,146,129,61,188,130,129,61,113,114,129,61,24,98,129,61,178,81,129,61,63,65,129,61,192,48,129,61,51,32,129,61,153,15,129,61,243,254,128,61,63,238,128,61,126,221,128,61,177,204,128,61,214,187,128,61,239,170,128,61,250,153,128,61,249,136,128,61,235,119,128,61,208,102,128,61,168,85,128,61,115,68,128,61,50,51,128,61,227,33,128,61,136,16,128,61,63,254,127,61,85,219,127,61,81,184,127,61,52,149,127,61,
253,113,127,61,173,78,127,61,67,43,127,61,191,7,127,61,34,228,126,61,108,192,126,61,156,156,126,61,178,120,126,61,175,84,126,61,147,48,126,61,93,12,126,61,14,232,125,61,166,195,125,61,36,159,125,61,137,122,125,61,213,85,125,61,7,49,125,61,32,12,125,61,32,231,124,61,7,194,124,61,212,156,124,61,136,119,124,61,35,82,124,61,165,44,124,61,14,7,124,61,94,225,123,61,148,187,123,61,178,149,123,61,182,111,123,61,162,73,123,61,116,35,123,61,46,253,122,61,206,214,122,61,86,176,122,61,197,137,122,61,26,99,122,
61,87,60,122,61,123,21,122,61,135,238,121,61,121,199,121,61,83,160,121,61,19,121,121,61,187,81,121,61,75,42,121,61,193,2,121,61,31,219,120,61,100,179,120,61,145,139,120,61,165,99,120,61,160,59,120,61,131,19,120,61,77,235,119,61,255,194,119,61,152,154,119,61,25,114,119,61,129,73,119,61,208,32,119,61,7,248,118,61,38,207,118,61,45,166,118,61,27,125,118,61,240,83,118,61,174,42,118,61,82,1,118,61,223,215,117,61,84,174,117,61,176,132,117,61,244,90,117,61,31,49,117,61,51,7,117,61,46,221,116,61,17,179,116,
61,221,136,116,61,144,94,116,61,42,52,116,61,173,9,116,61,24,223,115,61,107,180,115,61,166,137,115,61,201,94,115,61,211,51,115,61,198,8,115,61,161,221,114,61,101,178,114,61,16,135,114,61,163,91,114,61,31,48,114,61,131,4,114,61,207,216,113,61,3,173,113,61,32,129,113,61,37,85,113,61,18,41,113,61,232,252,112,61,166,208,112,61,76,164,112,61,219,119,112,61,82,75,112,61,177,30,112,61,250,241,111,61,42,197,111,61,67,152,111,61,69,107,111,61,47,62,111,61,2,17,111,61,189,227,110,61,97,182,110,61,238,136,110,
61,99,91,110,61,193,45,110,61,8,0,110,61,56,210,109,61,80,164,109,61,81,118,109,61,59,72,109,61,14,26,109,61,201,235,108,61,110,189,108,61,251,142,108,61,114,96,108,61,209,49,108,61,25,3,108,61,75,212,107,61,101,165,107,61,104,118,107,61,85,71,107,61,42,24,107,61,233,232,106,61,145,185,106,61,34,138,106,61,156,90,106,61,255,42,106,61,76,251,105,61,130,203,105,61,161,155,105,61,169,107,105,61,155,59,105,61,118,11,105,61,59,219,104,61,233,170,104,61,128,122,104,61,1,74,104,61,107,25,104,61,191,232,
103,61,252,183,103,61,35,135,103,61,52,86,103,61,46,37,103,61,17,244,102,61,223,194,102,61,150,145,102,61,54,96,102,61,193,46,102,61,53,253,101,61,147,203,101,61,218,153,101,61,12,104,101,61,39,54,101,61,44,4,101,61,27,210,100,61,244,159,100,61,183,109,100,61,100,59,100,61,251,8,100,61,124,214,99,61,231,163,99,61,60,113,99,61,123,62,99,61,164,11,99,61,183,216,98,61,181,165,98,61,156,114,98,61,110,63,98,61,42,12,98,61,209,216,97,61,97,165,97,61,220,113,97,61,66,62,97,61,145,10,97,61,203,214,96,61,
240,162,96,61,255,110,96,61,248,58,96,61,220,6,96,61,170,210,95,61,99,158,95,61,6,106,95,61,148,53,95,61,13,1,95,61,112,204,94,61,190,151,94,61,247,98,94,61,26,46,94,61,40,249,93,61,33,196,93,61,5,143,93,61,211,89,93,61,140,36,93,61,48,239,92,61,192,185,92,61,57,132,92,61,158,78,92,61,238,24,92,61,41,227,91,61,79,173,91,61,96,119,91,61,92,65,91,61,67,11,91,61,21,213,90,61,211,158,90,61,123,104,90,61,15,50,90,61,142,251,89,61,248,196,89,61,78,142,89,61,143,87,89,61,187,32,89,61,210,233,88,61,213,178,
88,61,196,123,88,61,157,68,88,61,99,13,88,61,19,214,87,61,176,158,87,61,55,103,87,61,171,47,87,61,10,248,86,61,84,192,86,61,139,136,86,61,172,80,86,61,186,24,86,61,179,224,85,61,153,168,85,61,105,112,85,61,38,56,85,61,207,255,84,61,99,199,84,61,227,142,84,61,80,86,84,61,168,29,84,61,236,228,83,61,28,172,83,61,56,115,83,61,64,58,83,61,53,1,83,61,21,200,82,61,226,142,82,61,154,85,82,61,63,28,82,61,208,226,81,61,78,169,81,61,183,111,81,61,13,54,81,61,79,252,80,61,126,194,80,61,153,136,80,61,160,78,80,
61,148,20,80,61,116,218,79,61,65,160,79,61,250,101,79,61,160,43,79,61,50,241,78,61,177,182,78,61,29,124,78,61,117,65,78,61,186,6,78,61,235,203,77,61,10,145,77,61,21,86,77,61,13,27,77,61,241,223,76,61,195,164,76,61,129,105,76,61,45,46,76,61,197,242,75,61,74,183,75,61,188,123,75,61,28,64,75,61,104,4,75,61,161,200,74,61,200,140,74,61,219,80,74,61,220,20,74,61,202,216,73,61,165,156,73,61,109,96,73,61,35,36,73,61,198,231,72,61,86,171,72,61,211,110,72,61,62,50,72,61,151,245,71,61,220,184,71,61,15,124,71,
61,48,63,71,61,62,2,71,61,58,197,70,61,36,136,70,61,250,74,70,61,191,13,70,61,113,208,69,61,17,147,69,61,159,85,69,61,26,24,69,61,131,218,68,61,218,156,68,61,31,95,68,61,82,33,68,61,114,227,67,61,129,165,67,61,125,103,67,61,103,41,67,61,64,235,66,61,6,173,66,61,187,110,66,61,93,48,66,61,238,241,65,61,109,179,65,61,218,116,65,61,53,54,65,61,126,247,64,61,182,184,64,61,220,121,64,61,240,58,64,61,243,251,63,61,228,188,63,61,196,125,63,61,145,62,63,61,78,255,62,61,249,191,62,61,146,128,62,61,26,65,62,
61,144,1,62,61,245,193,61,61,73,130,61,61,140,66,61,61,189,2,61,61,221,194,60,61,235,130,60,61,233,66,60,61,213,2,60,61,176,194,59,61,122,130,59,61,51,66,59,61,218,1,59,61,113,193,58,61,247,128,58,61,108,64,58,61,207,255,57,61,34,191,57,61,100,126,57,61,149,61,57,61,182,252,56,61,197,187,56,61,196,122,56,61,178,57,56,61,143,248,55,61,92,183,55,61,24,118,55,61,195,52,55,61,94,243,54,61,232,177,54,61,98,112,54,61,203,46,54,61,36,237,53,61,108,171,53,61,164,105,53,61,203,39,53,61,226,229,52,61,233,163,
52,61,223,97,52,61,198,31,52,61,155,221,51,61,97,155,51,61,23,89,51,61,188,22,51,61,82,212,50,61,215,145,50,61,76,79,50,61,177,12,50,61,7,202,49,61,76,135,49,61,129,68,49,61,167,1,49,61,188,190,48,61,194,123,48,61,184,56,48,61,158,245,47,61,116,178,47,61,59,111,47,61,242,43,47,61,153,232,46,61,49,165,46,61,185,97,46,61,49,30,46,61,154,218,45,61,244,150,45,61,62,83,45,61,120,15,45,61,164,203,44,61,191,135,44,61,204,67,44,61,201,255,43,61,183,187,43,61,149,119,43,61,101,51,43,61,37,239,42,61,214,170,
42,61,119,102,42,61,10,34,42,61,142,221,41,61,2,153,41,61,104,84,41,61,190,15,41,61,6,203,40,61,63,134,40,61,105,65,40,61,132,252,39,61,144,183,39,61,141,114,39,61,124,45,39,61,92,232,38,61,45,163,38,61,239,93,38,61,163,24,38,61,72,211,37,61,223,141,37,61,103,72,37,61,225,2,37,61,76,189,36,61,168,119,36,61,247,49,36,61,54,236,35,61,104,166,35,61,139,96,35,61,160,26,35,61,166,212,34,61,159,142,34,61,137,72,34,61,101,2,34,61,51,188,33,61,242,117,33,61,164,47,33,61,71,233,32,61,221,162,32,61,101,92,
32,61,222,21,32,61,74,207,31,61,168,136,31,61,248,65,31,61,58,251,30,61,110,180,30,61,149,109,30,61,173,38,30,61,185,223,29,61,182,152,29,61,166,81,29,61,136,10,29,61,93,195,28,61,36,124,28,61,221,52,28,61,137,237,27,61,40,166,27,61,185,94,27,61,61,23,27,61,180,207,26,61,29,136,26,61,121,64,26,61,199,248,25,61,9,177,25,61,61,105,25,61,100,33,25,61,126,217,24,61,139,145,24,61,139,73,24,61,125,1,24,61,99,185,23,61,60,113,23,61,8,41,23,61,198,224,22,61,120,152,22,61,30,80,22,61,182,7,22,61,66,191,21,
61,192,118,21,61,51,46,21,61,152,229,20,61,241,156,20,61,61,84,20,61,125,11,20,61,176,194,19,61,214,121,19,61,240,48,19,61,254,231,18,61,255,158,18,61,244,85,18,61,220,12,18,61,184,195,17,61,136,122,17,61,76,49,17,61,3,232,16,61,174,158,16,61,77,85,16,61,224,11,16,61,102,194,15,61,225,120,15,61,80,47,15,61,178,229,14,61,9,156,14,61,83,82,14,61,146,8,14,61,197,190,13,61,236,116,13,61,7,43,13,61,23,225,12,61,26,151,12,61,18,77,12,61,255,2,12,61,223,184,11,61,180,110,11,61,126,36,11,61,60,218,10,61,
238,143,10,61,149,69,10,61,49,251,9,61,193,176,9,61,69,102,9,61,191,27,9,61,45,209,8,61,143,134,8,61,231,59,8,61,51,241,7,61,116,166,7,61,170,91,7,61,213,16,7,61,244,197,6,61,9,123,6,61,18,48,6,61,17,229,5,61,4,154,5,61,237,78,5,61,203,3,5,61,158,184,4,61,102,109,4,61,35,34,4,61,214,214,3,61,125,139,3,61,27,64,3,61,173,244,2,61,53,169,2,61,178,93,2,61,37,18,2,61,141,198,1,61,234,122,1,61,61,47,1,61,134,227,0,61,196,151,0,61,248,75,0,61,34,0,0,61,130,104,255,60,172,208,254,60,194,56,254,60,195,160,
253,60,176,8,253,60,136,112,252,60,77,216,251,60,253,63,251,60,153,167,250,60,33,15,250,60,149,118,249,60,245,221,248,60,66,69,248,60,122,172,247,60,159,19,247,60,177,122,246,60,175,225,245,60,153,72,245,60,112,175,244,60,52,22,244,60,228,124,243,60,129,227,242,60,11,74,242,60,130,176,241,60,230,22,241,60,55,125,240,60,117,227,239,60,160,73,239,60,185,175,238,60,190,21,238,60,178,123,237,60,146,225,236,60,96,71,236,60,28,173,235,60,197,18,235,60,93,120,234,60,225,221,233,60,84,67,233,60,181,168,232,
60,4,14,232,60,64,115,231,60,107,216,230,60,132,61,230,60,139,162,229,60,129,7,229,60,101,108,228,60,55,209,227,60,248,53,227,60,168,154,226,60,70,255,225,60,211,99,225,60,79,200,224,60,185,44,224,60,19,145,223,60,91,245,222,60,147,89,222,60,185,189,221,60,207,33,221,60,212,133,220,60,201,233,219,60,173,77,219,60,128,177,218,60,67,21,218,60,245,120,217,60,151,220,216,60,41,64,216,60,170,163,215,60,28,7,215,60,125,106,214,60,207,205,213,60,16,49,213,60,66,148,212,60,100,247,211,60,118,90,211,60,120,
189,210,60,107,32,210,60,78,131,209,60,34,230,208,60,230,72,208,60,155,171,207,60,65,14,207,60,216,112,206,60,95,211,205,60,216,53,205,60,65,152,204,60,156,250,203,60,231,92,203,60,36,191,202,60,82,33,202,60,114,131,201,60,131,229,200,60,133,71,200,60,121,169,199,60,94,11,199,60,54,109,198,60,255,206,197,60,186,48,197,60,102,146,196,60,5,244,195,60,150,85,195,60,24,183,194,60,141,24,194,60,244,121,193,60,78,219,192,60,154,60,192,60,216,157,191,60,9,255,190,60,44,96,190,60,66,193,189,60,75,34,189,
60,70,131,188,60,52,228,187,60,21,69,187,60,233,165,186,60,177,6,186,60,107,103,185,60,24,200,184,60,185,40,184,60,77,137,183,60,212,233,182,60,79,74,182,60,189,170,181,60,31,11,181,60,117,107,180,60,190,203,179,60,251,43,179,60,44,140,178,60,81,236,177,60,106,76,177,60,119,172,176,60,120,12,176,60,109,108,175,60,86,204,174,60,52,44,174,60,6,140,173,60,205,235,172,60,136,75,172,60,56,171,171,60,221,10,171,60,118,106,170,60,4,202,169,60,135,41,169,60,254,136,168,60,107,232,167,60,205,71,167,60,36,
167,166,60,113,6,166,60,178,101,165,60,233,196,164,60,21,36,164,60,55,131,163,60,79,226,162,60,92,65,162,60,94,160,161,60,87,255,160,60,69,94,160,60,41,189,159,60,3,28,159,60,211,122,158,60,154,217,157,60,86,56,157,60,9,151,156,60,178,245,155,60,81,84,155,60,231,178,154,60,115,17,154,60,246,111,153,60,111,206,152,60,224,44,152,60,71,139,151,60,164,233,150,60,249,71,150,60,69,166,149,60,136,4,149,60,194,98,148,60,243,192,147,60,27,31,147,60,59,125,146,60,82,219,145,60,97,57,145,60,103,151,144,60,100,
245,143,60,90,83,143,60,71,177,142,60,44,15,142,60,8,109,141,60,221,202,140,60,170,40,140,60,111,134,139,60,44,228,138,60,225,65,138,60,142,159,137,60,52,253,136,60,210,90,136,60,105,184,135,60,248,21,135,60,128,115,134,60,1,209,133,60,122,46,133,60,236,139,132,60,87,233,131,60,187,70,131,60,24,164,130,60,110,1,130,60,190,94,129,60,6,188,128,60,72,25,128,60,6,237,126,60,112,167,125,60,204,97,124,60,27,28,123,60,94,214,121,60,148,144,120,60,190,74,119,60,220,4,118,60,237,190,116,60,242,120,115,60,
236,50,114,60,217,236,112,60,187,166,111,60,146,96,110,60,93,26,109,60,29,212,107,60,210,141,106,60,124,71,105,60,27,1,104,60,176,186,102,60,58,116,101,60,186,45,100,60,47,231,98,60,154,160,97,60,251,89,96,60,83,19,95,60,161,204,93,60,229,133,92,60,32,63,91,60,81,248,89,60,121,177,88,60,152,106,87,60,175,35,86,60,188,220,84,60,193,149,83,60,190,78,82,60,178,7,81,60,158,192,79,60,130,121,78,60,94,50,77,60,50,235,75,60,254,163,74,60,195,92,73,60,129,21,72,60,55,206,70,60,231,134,69,60,143,63,68,60,
48,248,66,60,203,176,65,60,95,105,64,60,236,33,63,60,116,218,61,60,245,146,60,60,112,75,59,60,229,3,58,60,85,188,56,60,191,116,55,60,35,45,54,60,130,229,52,60,220,157,51,60,49,86,50,60,129,14,49,60,204,198,47,60,18,127,46,60,84,55,45,60,145,239,43,60,202,167,42,60,255,95,41,60,48,24,40,60,94,208,38,60,135,136,37,60,173,64,36,60,207,248,34,60,238,176,33,60,10,105,32,60,35,33,31,60,57,217,29,60,77,145,28,60,93,73,27,60,107,1,26,60,119,185,24,60,129,113,23,60,136,41,22,60,141,225,20,60,145,153,19,60,
147,81,18,60,148,9,17,60,147,193,15,60,144,121,14,60,141,49,13,60,137,233,11,60,131,161,10,60,125,89,9,60,119,17,8,60,112,201,6,60,104,129,5,60,97,57,4,60,89,241,2,60,81,169,1,60,74,97,0,60,134,50,254,59,121,162,251,59,109,18,249,59,99,130,246,59,90,242,243,59,84,98,241,59,79,210,238,59,78,66,236,59,79,178,233,59,84,34,231,59,91,146,228,59,103,2,226,59,118,114,223,59,138,226,220,59,162,82,218,59,191,194,215,59,225,50,213,59,8,163,210,59,52,19,208,59,103,131,205,59,160,243,202,59,223,99,200,59,36,
212,197,59,113,68,195,59,196,180,192,59,32,37,190,59,130,149,187,59,237,5,185,59,96,118,182,59,220,230,179,59,96,87,177,59,238,199,174,59,132,56,172,59,37,169,169,59,207,25,167,59,131,138,164,59,66,251,161,59,11,108,159,59,224,220,156,59,191,77,154,59,170,190,151,59,161,47,149,59,164,160,146,59,179,17,144,59,206,130,141,59,247,243,138,59,44,101,136,59,111,214,133,59,192,71,131,59,30,185,128,59,21,85,124,59,11,56,119,59,30,27,114,59,79,254,108,59,158,225,103,59,13,197,98,59,155,168,93,59,73,140,88,
59,24,112,83,59,7,84,78,59,25,56,73,59,76,28,68,59,163,0,63,59,28,229,57,59,186,201,52,59,123,174,47,59,98,147,42,59,110,120,37,59,160,93,32,59,248,66,27,59,119,40,22,59,30,14,17,59,237,243,11,59,228,217,6,59,4,192,1,59,157,76,249,58,134,25,239,58,196,230,228,58,88,180,218,58,68,130,208,58,137,80,198,58,39,31,188,58,32,238,177,58,117,189,167,58,39,141,157,58,54,93,147,58,165,45,137,58,230,252,125,58,69,159,105,58,105,66,85,58,82,230,64,58,5,139,44,58,130,48,24,58,203,214,3,58,200,251,222,57,155,75,
182,57,20,157,141,57,111,224,73,57,39,20,241,56,117,220,28,56,170,97,40,184,248,200,246,184,14,173,76,185,13,249,142,185,202,153,183,185,187,56,224,185,238,106,4,186,148,184,24,186,78,5,45,186,26,81,65,186,244,155,85,186,220,229,105,186,208,46,126,186,102,59,137,186,232,94,147,186,236,129,157,186,113,164,167,186,119,198,177,186,252,231,187,186,0,9,198,186,128,41,208,186,125,73,218,186,245,104,228,186,231,135,238,186,82,166,248,186,26,98,1,187,199,112,6,187,47,127,11,187,82,141,16,187,46,155,21,187,
195,168,26,187,18,182,31,187,24,195,36,187,215,207,41,187,77,220,46,187,121,232,51,187,92,244,56,187,245,255,61,187,67,11,67,187,69,22,72,187,252,32,77,187,102,43,82,187,131,53,87,187,83,63,92,187,214,72,97,187,9,82,102,187,238,90,107,187,131,99,112,187,200,107,117,187,189,115,122,187,97,123,127,187,89,65,130,187,218,196,132,187,48,72,135,187,93,203,137,187,97,78,140,187,58,209,142,187,233,83,145,187,110,214,147,187,199,88,150,187,246,218,152,187,249,92,155,187,209,222,157,187,124,96,160,187,252,
225,162,187,79,99,165,187,117,228,167,187,111,101,170,187,59,230,172,187,219,102,175,187,76,231,177,187,143,103,180,187,165,231,182,187,139,103,185,187,68,231,187,187,205,102,190,187,39,230,192,187,81,101,195,187,76,228,197,187,23,99,200,187,178,225,202,187,28,96,205,187,85,222,207,187,93,92,210,187,53,218,212,187,218,87,215,187,78,213,217,187,144,82,220,187,159,207,222,187,124,76,225,187,39,201,227,187,158,69,230,187,226,193,232,187,242,61,235,187,207,185,237,187,119,53,240,187,236,176,242,187,43,
44,245,187,54,167,247,187,12,34,250,187,173,156,252,187,24,23,255,187,166,200,0,188,166,5,2,188,138,66,3,188,83,127,4,188,1,188,5,188,147,248,6,188,9,53,8,188,100,113,9,188,163,173,10,188,198,233,11,188,204,37,13,188,182,97,14,188,132,157,15,188,53,217,16,188,202,20,18,188,66,80,19,188,156,139,20,188,218,198,21,188,251,1,23,188,254,60,24,188,228,119,25,188,172,178,26,188,87,237,27,188,228,39,29,188,83,98,30,188,164,156,31,188,214,214,32,188,235,16,34,188,225,74,35,188,184,132,36,188,113,190,37,188,
11,248,38,188,134,49,40,188,226,106,41,188,31,164,42,188,60,221,43,188,58,22,45,188,25,79,46,188,216,135,47,188,119,192,48,188,246,248,49,188,85,49,51,188,148,105,52,188,179,161,53,188,177,217,54,188,143,17,56,188,76,73,57,188,232,128,58,188,100,184,59,188,190,239,60,188,247,38,62,188,15,94,63,188,6,149,64,188,219,203,65,188,142,2,67,188,32,57,68,188,144,111,69,188,221,165,70,188,9,220,71,188,18,18,73,188,249,71,74,188,190,125,75,188,96,179,76,188,223,232,77,188,59,30,79,188,117,83,80,188,139,136,
81,188,126,189,82,188,77,242,83,188,250,38,85,188,130,91,86,188,231,143,87,188,40,196,88,188,69,248,89,188,62,44,91,188,19,96,92,188,195,147,93,188,79,199,94,188,183,250,95,188,249,45,97,188,23,97,98,188,16,148,99,188,228,198,100,188,147,249,101,188,29,44,103,188,129,94,104,188,191,144,105,188,216,194,106,188,204,244,107,188,153,38,109,188,64,88,110,188,193,137,111,188,28,187,112,188,81,236,113,188,95,29,115,188,70,78,116,188,7,127,117,188,161,175,118,188,20,224,119,188,96,16,121,188,132,64,122,188,
130,112,123,188,87,160,124,188,6,208,125,188,140,255,126,188,118,23,128,188,17,175,128,188,152,70,129,188,12,222,129,188,107,117,130,188,182,12,131,188,237,163,131,188,15,59,132,188,29,210,132,188,23,105,133,188,252,255,133,188,205,150,134,188,137,45,135,188,48,196,135,188,195,90,136,188,65,241,136,188,170,135,137,188,254,29,138,188,61,180,138,188,103,74,139,188,124,224,139,188,124,118,140,188,103,12,141,188,60,162,141,188,252,55,142,188,167,205,142,188,60,99,143,188,188,248,143,188,39,142,144,188,
123,35,145,188,186,184,145,188,228,77,146,188,247,226,146,188,245,119,147,188,221,12,148,188,175,161,148,188,106,54,149,188,16,203,149,188,160,95,150,188,25,244,150,188,125,136,151,188,202,28,152,188,0,177,152,188,32,69,153,188,42,217,153,188,29,109,154,188,250,0,155,188,192,148,155,188,111,40,156,188,8,188,156,188,138,79,157,188,244,226,157,188,72,118,158,188,133,9,159,188,171,156,159,188,186,47,160,188,178,194,160,188,146,85,161,188,91,232,161,188,13,123,162,188,167,13,163,188,42,160,163,188,150,
50,164,188,234,196,164,188,38,87,165,188,75,233,165,188,88,123,166,188,77,13,167,188,42,159,167,188,240,48,168,188,157,194,168,188,51,84,169,188,176,229,169,188,22,119,170,188,99,8,171,188,152,153,171,188,180,42,172,188,185,187,172,188,165,76,173,188,120,221,173,188,51,110,174,188,213,254,174,188,95,143,175,188,208,31,176,188,41,176,176,188,104,64,177,188,143,208,177,188,157,96,178,188,146,240,178,188,110,128,179,188,48,16,180,188,218,159,180,188,107,47,181,188,226,190,181,188,64,78,182,188,133,221,
182,188,176,108,183,188,194,251,183,188,186,138,184,188,153,25,185,188,94,168,185,188,10,55,186,188,155,197,186,188,19,84,187,188,114,226,187,188,182,112,188,188,224,254,188,188,241,140,189,188,231,26,190,188,195,168,190,188,133,54,191,188,45,196,191,188,186,81,192,188,46,223,192,188,135,108,193,188,197,249,193,188,233,134,194,188,242,19,195,188,225,160,195,188,181,45,196,188,111,186,196,188,14,71,197,188,145,211,197,188,251,95,198,188,73,236,198,188,124,120,199,188,148,4,200,188,145,144,200,188,
115,28,201,188,58,168,201,188,229,51,202,188,118,191,202,188,235,74,203,188,68,214,203,188,130,97,204,188,165,236,204,188,172,119,205,188,151,2,206,188,103,141,206,188,27,24,207,188,179,162,207,188,48,45,208,188,144,183,208,188,213,65,209,188,254,203,209,188,10,86,210,188,251,223,210,188,207,105,211,188,136,243,211,188,36,125,212,188,164,6,213,188,7,144,213,188,78,25,214,188,121,162,214,188,135,43,215,188,120,180,215,188,77,61,216,188,5,198,216,188,161,78,217,188,32,215,217,188,130,95,218,188,199,
231,218,188,239,111,219,188,250,247,219,188,233,127,220,188,186,7,221,188,110,143,221,188,5,23,222,188,127,158,222,188,219,37,223,188,26,173,223,188,60,52,224,188,64,187,224,188,39,66,225,188,240,200,225,188,156,79,226,188,42,214,226,188,155,92,227,188,237,226,227,188,34,105,228,188,57,239,228,188,50,117,229,188,14,251,229,188,203,128,230,188,106,6,231,188,235,139,231,188,79,17,232,188,147,150,232,188,186,27,233,188,194,160,233,188,172,37,234,188,120,170,234,188,37,47,235,188,180,179,235,188,36,56,
236,188,118,188,236,188,169,64,237,188,189,196,237,188,179,72,238,188,137,204,238,188,65,80,239,188,218,211,239,188,84,87,240,188,176,218,240,188,236,93,241,188,9,225,241,188,7,100,242,188,229,230,242,188,165,105,243,188,69,236,243,188,198,110,244,188,40,241,244,188,106,115,245,188,141,245,245,188,144,119,246,188,115,249,246,188,55,123,247,188,220,252,247,188,96,126,248,188,197,255,248,188,10,129,249,188,47,2,250,188,53,131,250,188,26,4,251,188,223,132,251,188,133,5,252,188,10,134,252,188,111,6,253,
188,180,134,253,188,216,6,254,188,221,134,254,188,193,6,255,188,132,134,255,188,20,3,0,189,213,66,0,189,134,130,0,189,39,194,0,189,183,1,1,189,56,65,1,189,167,128,1,189,7,192,1,189,86,255,1,189,148,62,2,189,195,125,2,189,224,188,2,189,237,251,2,189,234,58,3,189,214,121,3,189,178,184,3,189,125,247,3,189,55,54,4,189,225,116,4,189,122,179,4,189,2,242,4,189,122,48,5,189,224,110,5,189,55,173,5,189,124,235,5,189,177,41,6,189,212,103,6,189,231,165,6,189,233,227,6,189,218,33,7,189,187,95,7,189,138,157,7,
189,72,219,7,189,246,24,8,189,146,86,8,189,29,148,8,189,152,209,8,189,1,15,9,189,89,76,9,189,160,137,9,189,214,198,9,189,250,3,10,189,14,65,10,189,16,126,10,189,1,187,10,189,225,247,10,189,176,52,11,189,109,113,11,189,25,174,11,189,179,234,11,189,61,39,12,189,180,99,12,189,27,160,12,189,112,220,12,189,179,24,13,189,229,84,13,189,6,145,13,189,21,205,13,189,18,9,14,189,254,68,14,189,217,128,14,189,161,188,14,189,88,248,14,189,254,51,15,189,146,111,15,189,20,171,15,189,132,230,15,189,227,33,16,189,48,
93,16,189,107,152,16,189,148,211,16,189,171,14,17,189,177,73,17,189,165,132,17,189,135,191,17,189,87,250,17,189,21,53,18,189,193,111,18,189,91,170,18,189,227,228,18,189,89,31,19,189,189,89,19,189,15,148,19,189,79,206,19,189,125,8,20,189,152,66,20,189,162,124,20,189,153,182,20,189,126,240,20,189,81,42,21,189,18,100,21,189,192,157,21,189,93,215,21,189,231,16,22,189,94,74,22,189,195,131,22,189,22,189,22,189,87,246,22,189,133,47,23,189,161,104,23,189,170,161,23,189,161,218,23,189,133,19,24,189,87,76,
24,189,22,133,24,189,195,189,24,189,94,246,24,189,229,46,25,189,90,103,25,189,189,159,25,189,12,216,25,189,74,16,26,189,116,72,26,189,140,128,26,189,145,184,26,189,131,240,26,189,99,40,27,189,47,96,27,189,233,151,27,189,145,207,27,189,37,7,28,189,166,62,28,189,21,118,28,189,112,173,28,189,185,228,28,189,239,27,29,189,18,83,29,189,34,138,29,189,30,193,29,189,8,248,29,189,223,46,30,189,163,101,30,189,83,156,30,189,241,210,30,189,123,9,31,189,242,63,31,189,87,118,31,189,168,172,31,189,229,226,31,189,
16,25,32,189,39,79,32,189,43,133,32,189,28,187,32,189,249,240,32,189,195,38,33,189,122,92,33,189,30,146,33,189,174,199,33,189,43,253,33,189,148,50,34,189,234,103,34,189,44,157,34,189,91,210,34,189,119,7,35,189,127,60,35,189,115,113,35,189,84,166,35,189,33,219,35,189,219,15,36,189,129,68,36,189,20,121,36,189,147,173,36,189,254,225,36,189,86,22,37,189,154,74,37,189,202,126,37,189,231,178,37,189,239,230,37,189,228,26,38,189,198,78,38,189,147,130,38,189,77,182,38,189,242,233,38,189,132,29,39,189,2,81,
39,189,109,132,39,189,195,183,39,189,5,235,39,189,51,30,40,189,78,81,40,189,84,132,40,189,71,183,40,189,37,234,40,189,240,28,41,189,166,79,41,189,72,130,41,189,214,180,41,189,81,231,41,189,182,25,42,189,8,76,42,189,70,126,42,189,111,176,42,189,133,226,42,189,134,20,43,189,115,70,43,189,75,120,43,189,16,170,43,189,192,219,43,189,92,13,44,189,227,62,44,189,86,112,44,189,181,161,44,189,255,210,44,189,53,4,45,189,87,53,45,189,100,102,45,189,93,151,45,189,65,200,45,189,17,249,45,189,205,41,46,189,116,
90,46,189,6,139,46,189,132,187,46,189,237,235,46,189,66,28,47,189,130,76,47,189,173,124,47,189,196,172,47,189,199,220,47,189,180,12,48,189,141,60,48,189,81,108,48,189,1,156,48,189,156,203,48,189,34,251,48,189,147,42,49,189,240,89,49,189,56,137,49,189,107,184,49,189,137,231,49,189,146,22,50,189,135,69,50,189,102,116,50,189,49,163,50,189,231,209,50,189,136,0,51,189,20,47,51,189,139,93,51,189,237,139,51,189,59,186,51,189,115,232,51,189,150,22,52,189,164,68,52,189,157,114,52,189,129,160,52,189,80,206,
52,189,10,252,52,189,175,41,53,189,62,87,53,189,185,132,53,189,30,178,53,189,111,223,53,189,170,12,54,189,208,57,54,189,224,102,54,189,220,147,54,189,194,192,54,189,147,237,54,189,78,26,55,189,245,70,55,189,134,115,55,189,2,160,55,189,104,204,55,189,185,248,55,189,245,36,56,189,27,81,56,189,44,125,56,189,40,169,56,189,14,213,56,189,223,0,57,189,154,44,57,189,64,88,57,189,208,131,57,189,75,175,57,189,176,218,57,189,0,6,58,189,58,49,58,189,95,92,58,189,110,135,58,189,103,178,58,189,75,221,58,189,26,
8,59,189,210,50,59,189,118,93,59,189,3,136,59,189,123,178,59,189,221,220,59,189,41,7,60,189,96,49,60,189,129,91,60,189,140,133,60,189,130,175,60,189,97,217,60,189,43,3,61,189,224,44,61,189,126,86,61,189,6,128,61,189,121,169,61,189,214,210,61,189,29,252,61,189,78,37,62,189,105,78,62,189,111,119,62,189,94,160,62,189,56,201,62,189,251,241,62,189,169,26,63,189,64,67,63,189,194,107,63,189,46,148,63,189,131,188,63,189,195,228,63,189,236,12,64,189,0,53,64,189,253,92,64,189,229,132,64,189,182,172,64,189,
113,212,64,189,23,252,64,189,165,35,65,189,30,75,65,189,129,114,65,189,206,153,65,189,4,193,65,189,36,232,65,189,46,15,66,189,34,54,66,189,255,92,66,189,199,131,66,189,120,170,66,189,18,209,66,189,151,247,66,189,5,30,67,189,93,68,67,189,159,106,67,189,202,144,67,189,223,182,67,189,221,220,67,189,198,2,68,189,151,40,68,189,83,78,68,189,248,115,68,189,134,153,68,189,255,190,68,189,96,228,68,189,172,9,69,189,225,46,69,189,255,83,69,189,7,121,69,189,248,157,69,189,211,194,69,189,152,231,69,189,69,12,
70,189,221,48,70,189,94,85,70,189,200,121,70,189,27,158,70,189,88,194,70,189,127,230,70,189,143,10,71,189,136,46,71,189,106,82,71,189,54,118,71,189,236,153,71,189,138,189,71,189,18,225,71,189,131,4,72,189,222,39,72,189,34,75,72,189,79,110,72,189,101,145,72,189,101,180,72,189,78,215,72,189,32,250,72,189,219,28,73,189,128,63,73,189,13,98,73,189,132,132,73,189,228,166,73,189,46,201,73,189,96,235,73,189,124,13,74,189,128,47,74,189,110,81,74,189,69,115,74,189,5,149,74,189,174,182,74,189,65,216,74,189,
188,249,74,189,32,27,75,189,110,60,75,189,164,93,75,189,196,126,75,189,204,159,75,189,190,192,75,189,152,225,75,189,92,2,76,189,9,35,76,189,158,67,76,189,29,100,76,189,132,132,76,189,212,164,76,189,14,197,76,189,48,229,76,189,59,5,77,189,47,37,77,189,12,69,77,189,210,100,77,189,129,132,77,189,24,164,77,189,153,195,77,189,2,227,77,189,84,2,78,189,143,33,78,189,179,64,78,189,192,95,78,189,181,126,78,189,147,157,78,189,90,188,78,189,10,219,78,189,162,249,78,189,36,24,79,189,142,54,79,189,225,84,79,189,
28,115,79,189,64,145,79,189,77,175,79,189,67,205,79,189,33,235,79,189,232,8,80,189,152,38,80,189,48,68,80,189,177,97,80,189,27,127,80,189,109,156,80,189,168,185,80,189,204,214,80,189,216,243,80,189,205,16,81,189,170,45,81,189,112,74,81,189,31,103,81,189,182,131,81,189,54,160,81,189,158,188,81,189,239,216,81,189,40,245,81,189,74,17,82,189,85,45,82,189,72,73,82,189,35,101,82,189,231,128,82,189,148,156,82,189,41,184,82,189,166,211,82,189,12,239,82,189,90,10,83,189,145,37,83,189,177,64,83,189,184,91,
83,189,168,118,83,189,129,145,83,189,66,172,83,189,236,198,83,189,125,225,83,189,248,251,83,189,90,22,84,189,165,48,84,189,217,74,84,189,244,100,84,189,249,126,84,189,229,152,84,189,186,178,84,189,119,204,84,189,29,230,84,189,170,255,84,189,33,25,85,189,127,50,85,189,198,75,85,189,245,100,85,189,12,126,85,189,12,151,85,189,244,175,85,189,196,200,85,189,125,225,85,189,29,250,85,189,166,18,86,189,23,43,86,189,113,67,86,189,179,91,86,189,221,115,86,189,239,139,86,189,233,163,86,189,204,187,86,189,151,
211,86,189,73,235,86,189,229,2,87,189,104,26,87,189,212,49,87,189,39,73,87,189,99,96,87,189,135,119,87,189,147,142,87,189,136,165,87,189,100,188,87,189,41,211,87,189,214,233,87,189,106,0,88,189,231,22,88,189,77,45,88,189,154,67,88,189,207,89,88,189,237,111,88,189,242,133,88,189,224,155,88,189,181,177,88,189,115,199,88,189,25,221,88,189,167,242,88,189,29,8,89,189,123,29,89,189,193,50,89,189,239,71,89,189,5,93,89,189,3,114,89,189,234,134,89,189,184,155,89,189,110,176,89,189,12,197,89,189,147,217,89,
189,1,238,89,189,87,2,90,189,150,22,90,189,188,42,90,189,202,62,90,189,192,82,90,189,159,102,90,189,101,122,90,189,19,142,90,189,169,161,90,189,39,181,90,189,141,200,90,189,219,219,90,189,17,239,90,189,47,2,91,189,53,21,91,189,35,40,91,189,249,58,91,189,182,77,91,189,92,96,91,189,233,114,91,189,95,133,91,189,188,151,91,189,1,170,91,189,46,188,91,189,67,206,91,189,64,224,91,189,37,242,91,189,242,3,92,189,166,21,92,189,67,39,92,189,199,56,92,189,51,74,92,189,135,91,92,189,195,108,92,189,231,125,92,
189,243,142,92,189,230,159,92,189,194,176,92,189,133,193,92,189,48,210,92,189,195,226,92,189,62,243,92,189,160,3,93,189,235,19,93,189,29,36,93,189,55,52,93,189,57,68,93,189,35,84,93,189,244,99,93,189,174,115,93,189,79,131,93,189,216,146,93,189,73,162,93,189,161,177,93,189,226,192,93,189,10,208,93,189,26,223,93,189,18,238,93,189,242,252,93,189,185,11,94,189,104,26,94,189,255,40,94,189,126,55,94,189,228,69,94,189,51,84,94,189,105,98,94,189,135,112,94,189,140,126,94,189,122,140,94,189,79,154,94,189,
12,168,94,189,177,181,94,189,61,195,94,189,177,208,94,189,13,222,94,189,81,235,94,189,125,248,94,189,144,5,95,189,139,18,95,189,110,31,95,189,56,44,95,189,235,56,95,189,133,69,95,189,6,82,95,189,112,94,95,189,193,106,95,189,250,118,95,189,27,131,95,189,35,143,95,189,19,155,95,189,235,166,95,189,171,178,95,189,82,190,95,189,226,201,95,189,88,213,95,189,183,224,95,189,253,235,95,189,43,247,95,189,65,2,96,189,63,13,96,189,36,24,96,189,241,34,96,189,166,45,96,189,66,56,96,189,198,66,96,189,50,77,96,189,
133,87,96,189,193,97,96,189,228,107,96,189,239,117,96,189,225,127,96,189,187,137,96,189,125,147,96,189,39,157,96,189,184,166,96,189,49,176,96,189,146,185,96,189,218,194,96,189,10,204,96,189,34,213,96,189,34,222,96,189,9,231,96,189,216,239,96,189,143,248,96,189,45,1,97,189,180,9,97,189,34,18,97,189,119,26,97,189,181,34,97,189,218,42,97,189,230,50,97,189,219,58,97,189,183,66,97,189,123,74,97,189,39,82,97,189,186,89,97,189,53,97,97,189,152,104,97,189,227,111,97,189,21,119,97,189,47,126,97,189,49,133,
97,189,26,140,97,189,235,146,97,189,164,153,97,189,69,160,97,189,205,166,97,189,61,173,97,189,149,179,97,189,213,185,97,189,252,191,97,189,11,198,97,189,2,204,97,189,224,209,97,189,166,215,97,189,84,221,97,189,234,226,97,189,104,232,97,189,205,237,97,189,26,243,97,189,78,248,97,189,107,253,97,189,111,2,98,189,91,7,98,189,47,12,98,189,234,16,98,189,141,21,98,189,24,26,98,189,139,30,98,189,229,34,98,189,40,39,98,189,82,43,98,189,99,47,98,189,93,51,98,189,62,55,98,189,7,59,98,189,184,62,98,189,81,66,
98,189,209,69,98,189,58,73,98,189,138,76,98,189,193,79,98,189,225,82,98,189,232,85,98,189,215,88,98,189,174,91,98,189,109,94,98,189,20,97,98,189,162,99,98,189,24,102,98,189,118,104,98,189,188,106,98,189,234,108,98,189,255,110,98,189,252,112,98,189,225,114,98,189],"i8",4,y.a+143360);
Q([174,116,98,189,99,118,98,189,0,120,98,189,132,121,98,189,240,122,98,189,68,124,98,189,128,125,98,189,164,126,98,189,176,127,98,189,163,128,98,189,126,129,98,189,66,130,98,189,237,130,98,189,127,131,98,189,250,131,98,189,93,132,98,189,167,132,98,189,218,132,98,189,244,132,98,189,246,132,98,189,224,132,98,189,178,132,98,189,108,132,98,189,14,132,98,189,152,131,98,189,9,131,98,189,99,130,98,189,164,129,98,189,206,128,98,189,223,127,98,189,216,126,98,189,185,125,98,189,130,124,98,189,52,123,98,189,
204,121,98,189,77,120,98,189,182,118,98,189,7,117,98,189,64,115,98,189,97,113,98,189,106,111,98,189,90,109,98,189,51,107,98,189,244,104,98,189,156,102,98,189,45,100,98,189,166,97,98,189,6,95,98,189,79,92,98,189,128,89,98,189,153,86,98,189,153,83,98,189,130,80,98,189,83,77,98,189,12,74,98,189,173,70,98,189,54,67,98,189,167,63,98,189,0,60,98,189,65,56,98,189,106,52,98,189,123,48,98,189,117,44,98,189,86,40,98,189,32,36,98,189,209,31,98,189,107,27,98,189,237,22,98,189,87,18,98,189,169,13,98,189,227,8,
98,189,5,4,98,189,16,255,97,189,3,250,97,189,221,244,97,189,160,239,97,189,75,234,97,189,222,228,97,189,90,223,97,189,189,217,97,189,9,212,97,189,61,206,97,189,89,200,97,189,93,194,97,189,74,188,97,189,31,182,97,189,220,175,97,189,129,169,97,189,14,163,97,189,132,156,97,189,226,149,97,189,40,143,97,189,86,136,97,189,109,129,97,189,108,122,97,189,83,115,97,189,34,108,97,189,218,100,97,189,122,93,97,189,2,86,97,189,115,78,97,189,204,70,97,189,13,63,97,189,55,55,97,189,73,47,97,189,67,39,97,189,38,31,
97,189,241,22,97,189,164,14,97,189,64,6,97,189,196,253,96,189,48,245,96,189,133,236,96,189,194,227,96,189,232,218,96,189,246,209,96,189,237,200,96,189,204,191,96,189,147,182,96,189,67,173,96,189,219,163,96,189,92,154,96,189,197,144,96,189,22,135,96,189,81,125,96,189,115,115,96,189,126,105,96,189,114,95,96,189,78,85,96,189,18,75,96,189,192,64,96,189,85,54,96,189,211,43,96,189,58,33,96,189,137,22,96,189,193,11,96,189,226,0,96,189,235,245,95,189,220,234,95,189,183,223,95,189,121,212,95,189,37,201,95,
189,185,189,95,189,53,178,95,189,155,166,95,189,233,154,95,189,31,143,95,189,62,131,95,189,70,119,95,189,55,107,95,189,16,95,95,189,210,82,95,189,125,70,95,189,16,58,95,189,140,45,95,189,241,32,95,189,63,20,95,189,117,7,95,189,148,250,94,189,156,237,94,189,141,224,94,189,102,211,94,189,40,198,94,189,211,184,94,189,103,171,94,189,228,157,94,189,73,144,94,189,151,130,94,189,206,116,94,189,238,102,94,189,247,88,94,189,233,74,94,189,196,60,94,189,135,46,94,189,51,32,94,189,201,17,94,189,71,3,94,189,174,
244,93,189,254,229,93,189,55,215,93,189,89,200,93,189,100,185,93,189,88,170,93,189,53,155,93,189,251,139,93,189,170,124,93,189,66,109,93,189,195,93,93,189,45,78,93,189,128,62,93,189,188,46,93,189,225,30,93,189,239,14,93,189,231,254,92,189,199,238,92,189,145,222,92,189,67,206,92,189,223,189,92,189,100,173,92,189,210,156,92,189,41,140,92,189,106,123,92,189,147,106,92,189,166,89,92,189,162,72,92,189,135,55,92,189,85,38,92,189,13,21,92,189,174,3,92,189,56,242,91,189,171,224,91,189,8,207,91,189,78,189,
91,189,125,171,91,189,149,153,91,189,151,135,91,189,130,117,91,189,87,99,91,189,21,81,91,189,188,62,91,189,76,44,91,189,198,25,91,189,41,7,91,189,118,244,90,189,172,225,90,189,204,206,90,189,213,187,90,189,199,168,90,189,163,149,90,189,105,130,90,189,23,111,90,189,176,91,90,189,50,72,90,189,157,52,90,189,242,32,90,189,48,13,90,189,88,249,89,189,106,229,89,189,101,209,89,189,73,189,89,189,24,169,89,189,208,148,89,189,113,128,89,189,252,107,89,189,113,87,89,189,207,66,89,189,24,46,89,189,73,25,89,189,
101,4,89,189,106,239,88,189,89,218,88,189,49,197,88,189,244,175,88,189,160,154,88,189,54,133,88,189,181,111,88,189,31,90,88,189,114,68,88,189,175,46,88,189,214,24,88,189,230,2,88,189,225,236,87,189,197,214,87,189,148,192,87,189,76,170,87,189,238,147,87,189,122,125,87,189,240,102,87,189,79,80,87,189,153,57,87,189,205,34,87,189,235,11,87,189,242,244,86,189,228,221,86,189,192,198,86,189,133,175,86,189,53,152,86,189,207,128,86,189,83,105,86,189,193,81,86,189,25,58,86,189,91,34,86,189,135,10,86,189,158,
242,85,189,158,218,85,189,137,194,85,189,94,170,85,189,29,146,85,189,198,121,85,189,89,97,85,189,215,72,85,189,63,48,85,189,145,23,85,189,205,254,84,189,244,229,84,189,5,205,84,189,0,180,84,189,230,154,84,189,182,129,84,189,112,104,84,189,21,79,84,189,164,53,84,189,29,28,84,189,129,2,84,189,207,232,83,189,7,207,83,189,42,181,83,189,56,155,83,189,48,129,83,189,18,103,83,189,223,76,83,189,151,50,83,189,57,24,83,189,197,253,82,189,60,227,82,189,158,200,82,189,234,173,82,189,33,147,82,189,66,120,82,189,
78,93,82,189,69,66,82,189,38,39,82,189,242,11,82,189,169,240,81,189,74,213,81,189,214,185,81,189,77,158,81,189,174,130,81,189,251,102,81,189,50,75,81,189,83,47,81,189,96,19,81,189,87,247,80,189,58,219,80,189,7,191,80,189,191,162,80,189,97,134,80,189,239,105,80,189,104,77,80,189,203,48,80,189,26,20,80,189,83,247,79,189,119,218,79,189,135,189,79,189,129,160,79,189,102,131,79,189,55,102,79,189,242,72,79,189,152,43,79,189,42,14,79,189,166,240,78,189,14,211,78,189,97,181,78,189,159,151,78,189,200,121,
78,189,220,91,78,189,219,61,78,189,198,31,78,189,155,1,78,189,92,227,77,189,9,197,77,189,160,166,77,189,35,136,77,189,145,105,77,189,234,74,77,189,47,44,77,189,95,13,77,189,122,238,76,189,128,207,76,189,114,176,76,189,80,145,76,189,25,114,76,189,205,82,76,189,109,51,76,189,248,19,76,189,110,244,75,189,208,212,75,189,30,181,75,189,87,149,75,189,124,117,75,189,140,85,75,189,136,53,75,189,111,21,75,189,66,245,74,189,1,213,74,189,171,180,74,189,65,148,74,189,194,115,74,189,48,83,74,189,136,50,74,189,
205,17,74,189,253,240,73,189,26,208,73,189,33,175,73,189,21,142,73,189,245,108,73,189,192,75,73,189,119,42,73,189,26,9,73,189,169,231,72,189,35,198,72,189,138,164,72,189,221,130,72,189,27,97,72,189,69,63,72,189,92,29,72,189,94,251,71,189,77,217,71,189,39,183,71,189,237,148,71,189,160,114,71,189,62,80,71,189,201,45,71,189,64,11,71,189,162,232,70,189,241,197,70,189,45,163,70,189,84,128,70,189,103,93,70,189,103,58,70,189,83,23,70,189,43,244,69,189,240,208,69,189,160,173,69,189,61,138,69,189,199,102,
69,189,60,67,69,189,158,31,69,189,237,251,68,189,39,216,68,189,79,180,68,189,98,144,68,189,98,108,68,189,79,72,68,189,40,36,68,189,237,255,67,189,159,219,67,189,61,183,67,189,200,146,67,189,64,110,67,189,164,73,67,189,245,36,67,189,50,0,67,189,92,219,66,189,115,182,66,189,118,145,66,189,102,108,66,189,66,71,66,189,12,34,66,189,194,252,65,189,101,215,65,189,245,177,65,189,113,140,65,189,218,102,65,189,48,65,65,189,115,27,65,189,163,245,64,189,192,207,64,189,202,169,64,189,192,131,64,189,164,93,64,
189,116,55,64,189,50,17,64,189,220,234,63,189,116,196,63,189,248,157,63,189,106,119,63,189,200,80,63,189,20,42,63,189,77,3,63,189,115,220,62,189,134,181,62,189,134,142,62,189,116,103,62,189,78,64,62,189,22,25,62,189,203,241,61,189,110,202,61,189,253,162,61,189,122,123,61,189,229,83,61,189,60,44,61,189,129,4,61,189,180,220,60,189,212,180,60,189,225,140,60,189,219,100,60,189,195,60,60,189,153,20,60,189,92,236,59,189,13,196,59,189,171,155,59,189,54,115,59,189,176,74,59,189,22,34,59,189,107,249,58,189,
173,208,58,189,220,167,58,189,250,126,58,189,5,86,58,189,254,44,58,189,228,3,58,189,184,218,57,189,122,177,57,189,42,136,57,189,200,94,57,189,83,53,57,189,204,11,57,189,51,226,56,189,136,184,56,189,203,142,56,189,252,100,56,189,27,59,56,189,40,17,56,189,34,231,55,189,11,189,55,189,226,146,55,189,167,104,55,189,89,62,55,189,250,19,55,189,137,233,54,189,7,191,54,189,114,148,54,189,203,105,54,189,19,63,54,189,73,20,54,189,109,233,53,189,127,190,53,189,128,147,53,189,111,104,53,189,76,61,53,189,24,18,
53,189,209,230,52,189,122,187,52,189,16,144,52,189,149,100,52,189,9,57,52,189,107,13,52,189,187,225,51,189,250,181,51,189,39,138,51,189,67,94,51,189,78,50,51,189,71,6,51,189,47,218,50,189,5,174,50,189,202,129,50,189,125,85,50,189,32,41,50,189,177,252,49,189,48,208,49,189,159,163,49,189,252,118,49,189,72,74,49,189,130,29,49,189,172,240,48,189,197,195,48,189,204,150,48,189,194,105,48,189,167,60,48,189,123,15,48,189,62,226,47,189,240,180,47,189,145,135,47,189,33,90,47,189,160,44,47,189,14,255,46,189,
107,209,46,189,183,163,46,189,243,117,46,189,29,72,46,189,55,26,46,189,64,236,45,189,56,190,45,189,31,144,45,189,246,97,45,189,187,51,45,189,112,5,45,189,21,215,44,189,169,168,44,189,44,122,44,189,158,75,44,189,0,29,44,189,81,238,43,189,146,191,43,189,194,144,43,189,226,97,43,189,241,50,43,189,240,3,43,189,222,212,42,189,188,165,42,189,138,118,42,189,71,71,42,189,244,23,42,189,144,232,41,189,28,185,41,189,152,137,41,189,3,90,41,189,95,42,41,189,170,250,40,189,229,202,40,189,15,155,40,189,42,107,40,
189,52,59,40,189,46,11,40,189,25,219,39,189,243,170,39,189,189,122,39,189,119,74,39,189,33,26,39,189,187,233,38,189,69,185,38,189,191,136,38,189,41,88,38,189,131,39,38,189,206,246,37,189,8,198,37,189,51,149,37,189,78,100,37,189,89,51,37,189,85,2,37,189,64,209,36,189,28,160,36,189,233,110,36,189,165,61,36,189,82,12,36,189,240,218,35,189,125,169,35,189,252,119,35,189,106,70,35,189,201,20,35,189,25,227,34,189,89,177,34,189,138,127,34,189,171,77,34,189,189,27,34,189,191,233,33,189,178,183,33,189,150,
133,33,189,106,83,33,189,47,33,33,189,229,238,32,189,139,188,32,189,34,138,32,189,170,87,32,189,35,37,32,189,141,242,31,189,232,191,31,189,51,141,31,189,111,90,31,189,157,39,31,189,187,244,30,189,202,193,30,189,202,142,30,189,187,91,30,189,158,40,30,189,113,245,29,189,53,194,29,189,235,142,29,189,145,91,29,189,41,40,29,189,178,244,28,189,44,193,28,189,152,141,28,189,245,89,28,189,67,38,28,189,130,242,27,189,178,190,27,189,212,138,27,189,232,86,27,189,236,34,27,189,227,238,26,189,202,186,26,189,163,
134,26,189,110,82,26,189,42,30,26,189,215,233,25,189,118,181,25,189,7,129,25,189,137,76,25,189,253,23,25,189,99,227,24,189,186,174,24,189,3,122,24,189,62,69,24,189,107,16,24,189,137,219,23,189,153,166,23,189,155,113,23,189,142,60,23,189,116,7,23,189,76,210,22,189,21,157,22,189,208,103,22,189,126,50,22,189,29,253,21,189,174,199,21,189,50,146,21,189,167,92,21,189,15,39,21,189,104,241,20,189,180,187,20,189,242,133,20,189,34,80,20,189,68,26,20,189,89,228,19,189,96,174,19,189,89,120,19,189,68,66,19,189,
34,12,19,189,242,213,18,189,180,159,18,189,105,105,18,189,17,51,18,189,170,252,17,189,54,198,17,189,181,143,17,189,38,89,17,189,138,34,17,189,225,235,16,189,42,181,16,189,101,126,16,189,147,71,16,189,180,16,16,189,200,217,15,189,206,162,15,189,199,107,15,189,179,52,15,189,146,253,14,189,99,198,14,189,40,143,14,189,223,87,14,189,137,32,14,189,38,233,13,189,182,177,13,189,57,122,13,189,175,66,13,189,23,11,13,189,115,211,12,189,194,155,12,189,5,100,12,189,58,44,12,189,98,244,11,189,126,188,11,189,140,
132,11,189,142,76,11,189,132,20,11,189,108,220,10,189,72,164,10,189,23,108,10,189,217,51,10,189,143,251,9,189,56,195,9,189,213,138,9,189,101,82,9,189,233,25,9,189,96,225,8,189,202,168,8,189,40,112,8,189,122,55,8,189,191,254,7,189,248,197,7,189,36,141,7,189,69,84,7,189,88,27,7,189,96,226,6,189,91,169,6,189,74,112,6,189,45,55,6,189,4,254,5,189,207,196,5,189,141,139,5,189,63,82,5,189,230,24,5,189,128,223,4,189,14,166,4,189,144,108,4,189,6,51,4,189,113,249,3,189,207,191,3,189,34,134,3,189,104,76,3,189,
163,18,3,189,210,216,2,189,245,158,2,189,12,101,2,189,24,43,2,189,24,241,1,189,12,183,1,189,244,124,1,189,209,66,1,189,162,8,1,189,104,206,0,189,34,148,0,189,209,89,0,189,116,31,0,189,23,202,255,188,47,85,255,188,48,224,254,188,27,107,254,188,239,245,253,188,172,128,253,188,82,11,253,188,226,149,252,188,91,32,252,188,190,170,251,188,10,53,251,188,64,191,250,188,95,73,250,188,104,211,249,188,91,93,249,188,56,231,248,188,254,112,248,188,175,250,247,188,73,132,247,188,206,13,247,188,60,151,246,188,149,
32,246,188,216,169,245,188,5,51,245,188,28,188,244,188,30,69,244,188,10,206,243,188,224,86,243,188,161,223,242,188,76,104,242,188,226,240,241,188,99,121,241,188,206,1,241,188,36,138,240,188,101,18,240,188,145,154,239,188,168,34,239,188,169,170,238,188,150,50,238,188,109,186,237,188,48,66,237,188,222,201,236,188,119,81,236,188,251,216,235,188,107,96,235,188,198,231,234,188,13,111,234,188,63,246,233,188,92,125,233,188,101,4,233,188,90,139,232,188,59,18,232,188,7,153,231,188,191,31,231,188,99,166,230,
188,242,44,230,188,110,179,229,188,214,57,229,188,42,192,228,188,105,70,228,188,150,204,227,188,174,82,227,188,178,216,226,188,163,94,226,188,129,228,225,188,74,106,225,188,0,240,224,188,163,117,224,188,50,251,223,188,174,128,223,188,23,6,223,188,109,139,222,188,175,16,222,188,222,149,221,188,250,26,221,188,3,160,220,188,249,36,220,188,220,169,219,188,172,46,219,188,106,179,218,188,20,56,218,188,172,188,217,188,50,65,217,188,164,197,216,188,4,74,216,188,82,206,215,188,141,82,215,188,182,214,214,188,
205,90,214,188,209,222,213,188,195,98,213,188,163,230,212,188,112,106,212,188,44,238,211,188,213,113,211,188,109,245,210,188,243,120,210,188,103,252,209,188,201,127,209,188,25,3,209,188,88,134,208,188,133,9,208,188,161,140,207,188,171,15,207,188,163,146,206,188,138,21,206,188,96,152,205,188,36,27,205,188,215,157,204,188,121,32,204,188,10,163,203,188,138,37,203,188,249,167,202,188,86,42,202,188,163,172,201,188,223,46,201,188,10,177,200,188,37,51,200,188,46,181,199,188,39,55,199,188,16,185,198,188,
232,58,198,188,175,188,197,188,102,62,197,188,12,192,196,188,163,65,196,188,40,195,195,188,158,68,195,188,4,198,194,188,89,71,194,188,159,200,193,188,212,73,193,188,249,202,192,188,15,76,192,188,21,205,191,188,11,78,191,188,241,206,190,188,199,79,190,188,142,208,189,188,70,81,189,188,238,209,188,188,134,82,188,188,15,211,187,188,137,83,187,188,243,211,186,188,78,84,186,188,154,212,185,188,215,84,185,188,5,213,184,188,36,85,184,188,52,213,183,188,53,85,183,188,39,213,182,188,10,85,182,188,222,212,
181,188,164,84,181,188,92,212,180,188,4,84,180,188,158,211,179,188,42,83,179,188,167,210,178,188,22,82,178,188,119,209,177,188,201,80,177,188,14,208,176,188,68,79,176,188,108,206,175,188,134,77,175,188,146,204,174,188,144,75,174,188,128,202,173,188,99,73,173,188,55,200,172,188,254,70,172,188,184,197,171,188,100,68,171,188,2,195,170,188,147,65,170,188,22,192,169,188,140,62,169,188,245,188,168,188,80,59,168,188,159,185,167,188,224,55,167,188,20,182,166,188,59,52,166,188,85,178,165,188,99,48,165,188,
99,174,164,188,87,44,164,188,61,170,163,188,24,40,163,188,229,165,162,188,166,35,162,188,90,161,161,188,2,31,161,188,158,156,160,188,45,26,160,188,176,151,159,188,38,21,159,188,145,146,158,188,239,15,158,188,65,141,157,188,136,10,157,188,194,135,156,188,240,4,156,188,19,130,155,188,41,255,154,188,52,124,154,188,52,249,153,188,39,118,153,188,15,243,152,188,236,111,152,188,189,236,151,188,130,105,151,188,61,230,150,188,236,98,150,188,144,223,149,188,40,92,149,188,182,216,148,188,56,85,148,188,175,209,
147,188,28,78,147,188,125,202,146,188,212,70,146,188,32,195,145,188,97,63,145,188,151,187,144,188,195,55,144,188,228,179,143,188,251,47,143,188,7,172,142,188,9,40,142,188,1,164,141,188,238,31,141,188,209,155,140,188,170,23,140,188,121,147,139,188,61,15,139,188,248,138,138,188,169,6,138,188,80,130,137,188,237,253,136,188,128,121,136,188,9,245,135,188,137,112,135,188,255,235,134,188,108,103,134,188,207,226,133,188,41,94,133,188,121,217,132,188,192,84,132,188,253,207,131,188,50,75,131,188,93,198,130,
188,127,65,130,188,152,188,129,188,168,55,129,188,176,178,128,188,174,45,128,188,71,81,127,188,32,71,126,188,232,60,125,188,159,50,124,188,68,40,123,188,216,29,122,188,92,19,121,188,206,8,120,188,48,254,118,188,129,243,117,188,193,232,116,188,242,221,115,188,17,211,114,188,33,200,113,188,33,189,112,188,16,178,111,188,240,166,110,188,192,155,109,188,128,144,108,188,49,133,107,188,210,121,106,188,100,110,105,188,231,98,104,188,91,87,103,188,192,75,102,188,22,64,101,188,94,52,100,188,150,40,99,188,193,
28,98,188,220,16,97,188,234,4,96,188,233,248,94,188,219,236,93,188,190,224,92,188,148,212,91,188,92,200,90,188,22,188,89,188,195,175,88,188,98,163,87,188,244,150,86,188,121,138,85,188,241,125,84,188,92,113,83,188,186,100,82,188,12,88,81,188,81,75,80,188,137,62,79,188,181,49,78,188,213,36,77,188,233,23,76,188,241,10,75,188,237,253,73,188,221,240,72,188,193,227,71,188,154,214,70,188,103,201,69,188,41,188,68,188,224,174,67,188,139,161,66,188,44,148,65,188,194,134,64,188,76,121,63,188,205,107,62,188,
66,94,61,188,174,80,60,188,15,67,59,188,101,53,58,188,178,39,57,188,245,25,56,188,45,12,55,188,92,254,53,188,130,240,52,188,158,226,51,188,176,212,50,188,185,198,49,188,185,184,48,188,176,170,47,188,158,156,46,188,131,142,45,188,95,128,44,188,50,114,43,188,253,99,42,188,192,85,41,188,122,71,40,188,45,57,39,188,215,42,38,188,121,28,37,188,19,14,36,188,166,255,34,188,49,241,33,188,180,226,32,188,48,212,31,188,165,197,30,188,19,183,29,188,121,168,28,188,217,153,27,188,50,139,26,188,132,124,25,188,207,
109,24,188,20,95,23,188,83,80,22,188,139,65,21,188,189,50,20,188,234,35,19,188,16,21,18,188,48,6,17,188,75,247,15,188,96,232,14,188,112,217,13,188,122,202,12,188,127,187,11,188,127,172,10,188,122,157,9,188,112,142,8,188,97,127,7,188,78,112,6,188,54,97,5,188,25,82,4,188,248,66,3,188,211,51,2,188,170,36,1,188,125,21,0,188,151,12,254,187,46,238,251,187,189,207,249,187,68,177,247,187,197,146,245,187,63,116,243,187,179,85,241,187,33,55,239,187,136,24,237,187,234,249,234,187,70,219,232,187,157,188,230,
187,239,157,228,187,60,127,226,187,132,96,224,187,200,65,222,187,8,35,220,187,68,4,218,187,124,229,215,187,176,198,213,187,226,167,211,187,16,137,209,187,59,106,207,187,100,75,205,187,138,44,203,187,174,13,201,187,209,238,198,187,241,207,196,187,16,177,194,187,46,146,192,187,75,115,190,187,103,84,188,187,130,53,186,187,157,22,184,187,184,247,181,187,210,216,179,187,238,185,177,187,9,155,175,187,38,124,173,187,67,93,171,187,98,62,169,187,130,31,167,187,164,0,165,187,199,225,162,187,237,194,160,187,
21,164,158,187,64,133,156,187,109,102,154,187,158,71,152,187,209,40,150,187,8,10,148,187,67,235,145,187,129,204,143,187,196,173,141,187,11,143,139,187,87,112,137,187,167,81,135,187,253,50,133,187,87,20,131,187,183,245,128,187,58,174,125,187,18,113,121,187,245,51,117,187,230,246,112,187,227,185,108,187,238,124,104,187,7,64,100,187,47,3,96,187,102,198,91,187,172,137,87,187,1,77,83,187,104,16,79,187,222,211,74,187,102,151,70,187,0,91,66,187,172,30,62,187,106,226,57,187,59,166,53,187,31,106,49,187,24,
46,45,187,36,242,40,187,70,182,36,187,124,122,32,187,200,62,28,187,43,3,24,187,163,199,19,187,51,140,15,187,218,80,11,187,153,21,7,187,113,218,2,187,193,62,253,186,212,200,244,186,25,83,236,186,147,221,227,186,66,104,219,186,39,243,210,186,66,126,202,186,150,9,194,186,33,149,185,186,231,32,177,186,230,172,168,186,33,57,160,186,152,197,151,186,76,82,143,186,62,223,134,186,222,216,124,186,191,243,107,186,33,15,91,186,6,43,74,186,112,71,57,186,95,100,40,186,216,129,23,186,218,159,6,186,207,124,235,185,
5,187,201,185,90,250,167,185,210,58,134,185,221,248,72,185,104,126,5,185,154,12,132,184,181,182,183,53,129,197,137,56,165,83,8,57,21,194,75,57,4,151,135,57,187,75,169,57,45,255,202,57,87,177,236,57,26,49,7,58,224,8,24,58,253,223,40,58,111,182,57,58,51,140,74,58,72,97,91,58,172,53,108,58,94,9,125,58,46,238,134,58,82,87,143,58,26,192,151,58,133,40,160,58,147,144,168,58,66,248,176,58,145,95,185,58,129,198,193,58,15,45,202,58,59,147,210,58,5,249,218,58,106,94,227,58,107,195,235,58,7,40,244,58,60,140,
252,58,5,120,2,59,184,169,6,59,54,219,10,59,127,12,15,59,147,61,19,59,113,110,23,59,25,159,27,59,139,207,31,59,197,255,35,59,199,47,40,59,146,95,44,59,36,143,48,59,125,190,52,59,157,237,56,59,131,28,61,59,48,75,65,59,161,121,69,59,215,167,73,59,210,213,77,59,145,3,82,59,20,49,86,59,90,94,90,59,99,139,94,59,46,184,98,59,187,228,102,59,9,17,107,59,25,61,111,59,233,104,115,59,121,148,119,59,202,191,123,59,217,234,127,59,212,10,130,59,26,32,132,59,64,53,134,59,68,74,136,59,39,95,138,59,232,115,140,59,
135,136,142,59,4,157,144,59,95,177,146,59,152,197,148,59,174,217,150,59,160,237,152,59,112,1,155,59,29,21,157,59,165,40,159,59,10,60,161,59,75,79,163,59,104,98,165,59,97,117,167,59,52,136,169,59,227,154,171,59,109,173,173,59,209,191,175,59,16,210,177,59,42,228,179,59,29,246,181,59,234,7,184,59,145,25,186,59,18,43,188,59,107,60,190,59,158,77,192,59,169,94,194,59,141,111,196,59,73,128,198,59,222,144,200,59,74,161,202,59,142,177,204,59,170,193,206,59,156,209,208,59,102,225,210,59,7,241,212,59,127,0,
215,59,205,15,217,59,241,30,219,59,235,45,221,59,187,60,223,59,97,75,225,59,220,89,227,59,44,104,229,59,81,118,231,59,75,132,233,59,26,146,235,59,188,159,237,59,51,173,239,59,126,186,241,59,157,199,243,59,143,212,245,59,84,225,247,59,236,237,249,59,87,250,251,59,149,6,254,59,83,9,0,60,68,15,1,60,30,21,2,60,225,26,3,60,141,32,4,60,34,38,5,60,159,43,6,60,5,49,7,60,83,54,8,60,137,59,9,60,168,64,10,60,174,69,11,60,157,74,12,60,115,79,13,60,49,84,14,60,215,88,15,60,100,93,16,60,217,97,17,60,53,102,18,
60,121,106,19,60,163,110,20,60,181,114,21,60,173,118,22,60,140,122,23,60,82,126,24,60,254,129,25,60,145,133,26,60,11,137,27,60,106,140,28,60,176,143,29,60,220,146,30,60,238,149,31,60,230,152,32,60,195,155,33,60,135,158,34,60,47,161,35,60,190,163,36,60,49,166,37,60,138,168,38,60,200,170,39,60,235,172,40,60,243,174,41,60,224,176,42,60,178,178,43,60,104,180,44,60,3,182,45,60,130,183,46,60,229,184,47,60,45,186,48,60,89,187,49,60,105,188,50,60,93,189,51,60,52,190,52,60,240,190,53,60,143,191,54,60,17,192,
55,60,119,192,56,60,192,192,57,60,237,192,58,60,252,192,59,60,239,192,60,60,196,192,61,60,124,192,62,60,23,192,63,60,149,191,64,60,245,190,65,60,55,190,66,60,92,189,67,60,99,188,68,60,76,187,69,60,22,186,70,60,195,184,71,60,82,183,72,60,194,181,73,60,20,180,74,60,71,178,75,60,92,176,76,60,82,174,77,60,41,172,78,60,225,169,79,60,122,167,80,60,244,164,81,60,79,162,82,60,139,159,83,60,167,156,84,60,163,153,85,60,128,150,86,60,62,147,87,60,219,143,88,60,88,140,89,60,182,136,90,60,243,132,91,60,16,129,
92,60,13,125,93,60,233,120,94,60,165,116,95,60,64,112,96,60,187,107,97,60,20,103,98,60,77,98,99,60,101,93,100,60,91,88,101,60,48,83,102,60,228,77,103,60,119,72,104,60,232,66,105,60,55,61,106,60,101,55,107,60,113,49,108,60,91,43,109,60,35,37,110,60,201,30,111,60,76,24,112,60,174,17,113,60,236,10,114,60,9,4,115,60,3,253,115,60,218,245,116,60,142,238,117,60,31,231,118,60,142,223,119,60,217,215,120,60,1,208,121,60,6,200,122,60,231,191,123,60,165,183,124,60,64,175,125,60,182,166,126,60,9,158,127,60,156,
74,128,60,34,198,128,60,149,65,129,60,246,188,129,60,70,56,130,60,131,179,130,60,174,46,131,60,198,169,131,60,204,36,132,60,192,159,132,60,162,26,133,60,113,149,133,60,45,16,134,60,215,138,134,60,110,5,135,60,243,127,135,60,101,250,135,60,196,116,136,60,16,239,136,60,74,105,137,60,112,227,137,60,132,93,138,60,133,215,138,60,114,81,139,60,77,203,139,60,20,69,140,60,200,190,140,60,105,56,141,60,246,177,141,60,113,43,142,60,216,164,142,60,43,30,143,60,107,151,143,60,151,16,144,60,176,137,144,60,182,
2,145,60,167,123,145,60,133,244,145,60,79,109,146,60,5,230,146,60,168,94,147,60,54,215,147,60,177,79,148,60,24,200,148,60,106,64,149,60,169,184,149,60,211,48,150,60,233,168,150,60,235,32,151,60,217,152,151,60,178,16,152,60,119,136,152,60,39,0,153,60,195,119,153,60,75,239,153,60,190,102,154,60,28,222,154,60,102,85,155,60,155,204,155,60,187,67,156,60,199,186,156,60,189,49,157,60,159,168,157,60,108,31,158,60,36,150,158,60,199,12,159,60,84,131,159,60,205,249,159,60,48,112,160,60,127,230,160,60,184,92,
161,60,219,210,161,60,234,72,162,60,227,190,162,60,198,52,163,60,148,170,163,60,77,32,164,60,240,149,164,60,125,11,165,60,245,128,165,60,86,246,165,60,163,107,166,60,217,224,166,60,250,85,167,60,4,203,167,60,249,63,168,60,216,180,168,60,160,41,169,60,83,158,169,60,239,18,170,60,118,135,170,60,230,251,170,60,63,112,171,60,131,228,171,60,176,88,172,60,199,204,172,60,199,64,173,60,177,180,173,60,133,40,174,60,65,156,174,60,231,15,175,60,119,131,175,60,240,246,175,60,82,106,176,60,157,221,176,60,209,
80,177,60,239,195,177,60,246,54,178,60,229,169,178,60,190,28,179,60,127,143,179,60,42,2,180,60,189,116,180,60,57,231,180,60,158,89,181,60,236,203,181,60,34,62,182,60,65,176,182,60,72,34,183,60,56,148,183,60,17,6,184,60,210,119,184,60,123,233,184,60,13,91,185,60,135,204,185,60,233,61,186,60,52,175,186,60,102,32,187,60,129,145,187,60,132,2,188,60,111,115,188,60,66,228,188,60,253,84,189,60,160,197,189,60,43,54,190,60,158,166,190,60,248,22,191,60,59,135,191,60,101,247,191,60,118,103,192,60,111,215,192,
60,80,71,193,60,25,183,193,60,201,38,194,60,96,150,194,60,223,5,195,60,69,117,195,60,146,228,195,60,199,83,196,60,227,194,196,60,230,49,197,60,208,160,197,60,162,15,198,60,90,126,198,60,250,236,198,60,129,91,199,60,238,201,199,60,66,56,200,60,126,166,200,60,160,20,201,60,169,130,201,60,152,240,201,60,110,94,202,60,43,204,202,60,207,57,203,60,89,167,203,60,202,20,204,60,33,130,204,60,94,239,204,60,130,92,205,60,140,201,205,60,125,54,206,60,84,163,206,60,17,16,207,60,180,124,207,60,62,233,207,60,173,
85,208,60,3,194,208,60,63,46,209,60,96,154,209,60,104,6,210,60,85,114,210,60,41,222,210,60,226,73,211,60,129,181,211,60,5,33,212,60,112,140,212,60,192,247,212,60,246,98,213,60,17,206,213,60,18,57,214,60,248,163,214,60,196,14,215,60,117,121,215,60,11,228,215,60,135,78,216,60,232,184,216,60,46,35,217,60,90,141,217,60,107,247,217,60,97,97,218,60,60,203,218,60,252,52,219,60,161,158,219,60,43,8,220,60,153,113,220,60,237,218,220,60,38,68,221,60,67,173,221,60,70,22,222,60,45,127,222,60,248,231,222,60,168,
80,223,60,61,185,223,60,183,33,224,60,21,138,224,60,87,242,224,60,126,90,225,60,138,194,225,60,121,42,226,60,77,146,226,60,6,250,226,60,162,97,227,60,35,201,227,60,136,48,228,60,210,151,228,60,255,254,228,60,16,102,229,60,5,205,229,60,223,51,230,60,156,154,230,60,61,1,231,60,194,103,231,60,43,206,231,60,120,52,232,60,168,154,232,60,188,0,233,60,180,102,233,60,144,204,233,60,79,50,234,60,241,151,234,60,119,253,234,60,225,98,235,60,46,200,235,60,95,45,236,60,114,146,236,60,106,247,236,60,68,92,237,
60,2,193,237,60,163,37,238,60,39,138,238,60,142,238,238,60,216,82,239,60,6,183,239,60,22,27,240,60,10,127,240,60,224,226,240,60,153,70,241,60,54,170,241,60,181,13,242,60,22,113,242,60,91,212,242,60,130,55,243,60,140,154,243,60,121,253,243,60,72,96,244,60,250,194,244,60,143,37,245,60,6,136,245,60,95,234,245,60,155,76,246,60,185,174,246,60,186,16,247,60,157,114,247,60,98,212,247,60,10,54,248,60,147,151,248,60,255,248,248,60,77,90,249,60,126,187,249,60,144,28,250,60,132,125,250,60,90,222,250,60,19,63,
251,60,173,159,251,60,41,0,252,60,135,96,252,60,198,192,252,60,232,32,253,60,235,128,253,60,208,224,253,60,151,64,254,60,63,160,254,60,201,255,254,60,52,95,255,60,129,190,255,60,216,14,0,61,96,62,0,61,217,109,0,61,66,157,0,61,156,204,0,61,231,251,0,61,34,43,1,61,78,90,1,61,107,137,1,61,120,184,1,61,118,231,1,61,100,22,2,61,67,69,2,61,19,116,2,61,211,162,2,61,131,209,2,61,36,0,3,61,181,46,3,61,55,93,3,61,169,139,3,61,12,186,3,61,95,232,3,61,162,22,4,61,214,68,4,61,250,114,4,61,14,161,4,61,19,207,4,
61,8,253,4,61,237,42,5,61,194,88,5,61,136,134,5,61,62,180,5,61,228,225,5,61,122,15,6,61,1,61,6,61,119,106,6,61,222,151,6,61,53,197,6,61,124,242,6,61,179,31,7,61,218,76,7,61,241,121,7,61,248,166,7,61,240,211,7,61,215,0,8,61,174,45,8,61,117,90,8,61,44,135,8,61,211,179,8,61,106,224,8,61,241,12,9,61,104,57,9,61,207,101,9,61,37,146,9,61,107,190,9,61,161,234,9,61,199,22,10,61,221,66,10,61,227,110,10,61,216,154,10,61,189,198,10,61,146,242,10,61,86,30,11,61,10,74,11,61,174,117,11,61,65,161,11,61,196,204,
11,61,55,248,11,61,153,35,12,61,235,78,12,61,45,122,12,61,94,165,12,61,127,208,12,61,143,251,12,61,143,38,13,61,126,81,13,61,92,124,13,61,43,167,13,61,232,209,13,61,149,252,13,61,50,39,14,61,190,81,14,61,57,124,14,61,164,166,14,61,254,208,14,61,71,251,14,61,128,37,15,61,168,79,15,61,191,121,15,61,198,163,15,61,188,205,15,61,161,247,15,61,117,33,16,61,57,75,16,61,236,116,16,61,142,158,16,61,31,200,16,61,159,241,16,61,15,27,17,61,110,68,17,61,188,109,17,61,249,150,17,61,37,192,17,61,64,233,17,61,74,
18,18,61,67,59,18,61,43,100,18,61,3,141,18,61,201,181,18,61,126,222,18,61,34,7,19,61,182,47,19,61,56,88,19,61,169,128,19,61,9,169,19,61,88,209,19,61,150,249,19,61,194,33,20,61,222,73,20,61,232,113,20,61,225,153,20,61,202,193,20,61,160,233,20,61,102,17,21,61,26,57,21,61,190,96,21,61,80,136,21,61,208,175,21,61,64,215,21,61,158,254,21,61,234,37,22,61,38,77,22,61,80,116,22,61,105,155,22,61,112,194,22,61,102,233,22,61,75,16,23,61,30,55,23,61,224,93,23,61,144,132,23,61,47,171,23,61,189,209,23,61,57,248,
23,61,163,30,24,61,252,68,24,61,68,107,24,61,122,145,24,61,158,183,24,61,177,221,24,61,178,3,25,61,162,41,25,61,128,79,25,61,77,117,25,61,8,155,25,61,177,192,25,61,72,230,25,61,206,11,26,61,67,49,26,61,165,86,26,61,246,123,26,61,53,161,26,61,99,198,26,61,127,235,26,61,136,16,27,61,129,53,27,61,103,90,27,61,60,127,27,61,255,163,27,61,176,200,27,61,79,237,27,61,220,17,28,61,88,54,28,61,193,90,28,61,25,127,28,61,95,163,28,61,147,199,28,61,181,235,28,61,197,15,29,61,195,51,29,61,175,87,29,61,137,123,
29,61,81,159,29,61,8,195,29,61,172,230,29,61,62,10,30,61,190,45,30,61,44,81,30,61,137,116,30,61,211,151,30,61,10,187,30,61,48,222,30,61,68,1,31,61,70,36,31,61,53,71,31,61,19,106,31,61,222,140,31,61,151,175,31,61,62,210,31,61,210,244,31,61,85,23,32,61,197,57,32,61,35,92,32,61,111,126,32,61,168,160,32,61,208,194,32,61,229,228,32,61,232,6,33,61,216,40,33,61,182,74,33,61,130,108,33,61,59,142,33,61,227,175,33,61,119,209,33,61,250,242,33,61,106,20,34,61,200,53,34,61,19,87,34,61,76,120,34,61,114,153,34,
61,134,186,34,61,136,219,34,61,119,252,34,61,84,29,35,61,30,62,35,61,213,94,35,61,123,127,35,61,13,160,35,61,142,192,35,61,251,224,35,61,86,1,36,61,159,33,36,61,213,65,36,61,248,97,36,61,9,130,36,61,7,162,36,61,243,193,36,61,204,225,36,61,146,1,37,61,70,33,37,61,231,64,37,61,118,96,37,61,241,127,37,61,90,159,37,61,177,190,37,61,244,221,37,61,37,253,37,61,68,28,38,61,79,59,38,61,72,90,38,61,46,121,38,61,1,152,38,61,194,182,38,61,111,213,38,61,10,244,38,61,146,18,39,61,7,49,39,61,106,79,39,61,185,109,
39,61,246,139,39,61,32,170,39,61,55,200,39,61,59,230,39,61,45,4,40,61,11,34,40,61,214,63,40,61,143,93,40,61,53,123,40,61,199,152,40,61,71,182,40,61,180,211,40,61,14,241,40,61,84,14,41,61,136,43,41,61,169,72,41,61,183,101,41,61,178,130,41,61,154,159,41,61,111,188,41,61,48,217,41,61,223,245,41,61,123,18,42,61,3,47,42,61,121,75,42,61,219,103,42,61,42,132,42,61,103,160,42,61,144,188,42,61,166,216,42,61,169,244,42,61,152,16,43,61,117,44,43,61,62,72,43,61,245,99,43,61,152,127,43,61,39,155,43,61,164,182,
43,61,14,210,43,61,100,237,43,61,167,8,44,61,215,35,44,61,243,62,44,61,252,89,44,61,243,116,44,61,213,143,44,61,165,170,44,61,97,197,44,61,10,224,44,61,160,250,44,61,34,21,45,61,145,47,45,61,237,73,45,61,53,100,45,61,106,126,45,61,140,152,45,61,154,178,45,61,149,204,45,61,125,230,45,61,81,0,46,61,17,26,46,61,191,51,46,61,89,77,46,61,223,102,46,61,83,128,46,61,178,153,46,61,255,178,46,61,55,204,46,61,93,229,46,61,111,254,46,61,109,23,47,61,88,48,47,61,48,73,47,61,244,97,47,61,164,122,47,61,65,147,
47,61,202,171,47,61,64,196,47,61,163,220,47,61,242,244,47,61,45,13,48,61,85,37,48,61,105,61,48,61,106,85,48,61,87,109,48,61,48,133,48,61,246,156,48,61,168,180,48,61,71,204,48,61,210,227,48,61,74,251,48,61,173,18,49,61,254,41,49,61,58,65,49,61,99,88,49,61,120,111,49,61,122,134,49,61,104,157,49,61,66,180,49,61,9,203,49,61,187,225,49,61,91,248,49,61,230,14,50,61,94,37,50,61,194,59,50,61,18,82,50,61,79,104,50,61,120,126,50,61,141,148,50,61,142,170,50,61,124,192,50,61,85,214,50,61,28,236,50,61,206,1,51,
61,108,23,51,61,247,44,51,61,110,66,51,61,209,87,51,61,33,109,51,61,92,130,51,61,132,151,51,61,152,172,51,61,152,193,51,61,132,214,51,61,92,235,51,61,33,0,52,61,209,20,52,61,110,41,52,61,247,61,52,61,108,82,52,61,205,102,52,61,27,123,52,61,84,143,52,61,121,163,52,61,139,183,52,61,137,203,52,61,115,223,52,61,72,243,52,61,10,7,53,61,184,26,53,61,82,46,53,61,216,65,53,61,75,85,53,61,169,104,53,61,243,123,53,61,41,143,53,61,76,162,53,61,90,181,53,61,85,200,53,61,59,219,53,61,13,238,53,61,204,0,54,61,
118,19,54,61,13,38,54,61,143,56,54,61,253,74,54,61,88,93,54,61,158,111,54,61,208,129,54,61,239,147,54,61,249,165,54,61,239,183,54,61,209,201,54,61,159,219,54,61,89,237,54,61,255,254,54,61,145,16,55,61,15,34,55,61,121,51,55,61,206,68,55,61,16,86,55,61,62,103,55,61,87,120,55,61,92,137,55,61,77,154,55,61,43,171,55,61,243,187,55,61,168,204,55,61,73,221,55,61,214,237,55,61,78,254,55,61,178,14,56,61,3,31,56,61,63,47,56,61,103,63,56,61,122,79,56,61,122,95,56,61,101,111,56,61,61,127,56,61,0,143,56,61,175,
158,56,61,74,174,56,61,208,189,56,61,67,205,56,61,161,220,56,61,235,235,56,61,33,251,56,61,66,10,57,61,80,25,57,61,73,40,57,61,46,55,57,61,255,69,57,61,188,84,57,61,100,99,57,61,248,113,57,61,120,128,57,61,228,142,57,61,59,157,57,61,127,171,57,61,174,185,57,61,200,199,57,61,207,213,57,61,193,227,57,61,159,241,57,61,105,255,57,61,31,13,58,61,192,26,58,61,77,40,58,61,198,53,58,61,42,67,58,61,122,80,58,61,182,93,58,61,222,106,58,61,241,119,58,61,240,132,58,61,219,145,58,61,178,158,58,61,116,171,58,61,
34,184,58,61,187,196,58,61,65,209,58,61,178,221,58,61,15,234,58,61,87,246,58,61,139,2,59,61,171,14,59,61,182,26,59,61,174,38,59,61,144,50,59,61,95,62,59,61,25,74,59,61,191,85,59,61,81,97,59,61,206,108,59,61,55,120,59,61,139,131,59,61,204,142,59,61,248,153,59,61,15,165,59,61,18,176,59,61,1,187,59,61,220,197,59,61,162,208,59,61,84,219,59,61,241,229,59,61,122,240,59,61,239,250,59,61,80,5,60,61,156,15,60,61,211,25,60,61,247,35,60,61,6,46,60,61,0,56,60,61,231,65,60,61,185,75,60,61,118,85,60,61,31,95,60,
61,180,104,60,61,52,114,60,61,161,123,60,61,248,132,60,61,60,142,60,61,106,151,60,61,133,160,60,61,139,169,60,61,125,178,60,61,90,187,60,61,35,196,60,61,216,204,60,61,120,213,60,61,4,222,60,61,124,230,60,61,223,238,60,61,45,247,60,61,104,255,60,61,142,7,61,61,159,15,61,61,156,23,61,61,133,31,61,61,90,39,61,61,26,47,61,61,197,54,61,61,92,62,61,61,223,69,61,61,78,77,61,61,168,84,61,61,237,91,61,61,30,99,61,61,59,106,61,61,68,113,61,61,56,120,61,61,23,127,61,61,227,133,61,61,153,140,61,61,60,147,61,
61,202,153,61,61,68,160,61,61,169,166,61,61,250,172,61,61,54,179,61,61,94,185,61,61,114,191,61,61,113,197,61,61,92,203,61,61,51,209,61,61,245,214,61,61,162,220,61,61,60,226,61,61,193,231,61,61,49,237,61,61,141,242,61,61,213,247,61,61,8,253,61,61,39,2,62,61,50,7,62,61,40,12,62,61,10,17,62,61,215,21,62,61,144,26,62,61,53,31,62,61,197,35,62,61,65,40,62,61,168,44,62,61,251,48,62,61,58,53,62,61,100,57,62,61,122,61,62,61,124,65,62,61,105,69,62,61,65,73,62,61,6,77,62,61,182,80,62,61,81,84,62,61,217,87,62,
61,76,91,62,61,170,94,62,61,244,97,62,61,42,101,62,61,75,104,62,61,88,107,62,61,81,110,62,61,53,113,62,61,5,116,62,61,193,118,62,61,104,121,62,61,251,123,62,61,121,126,62,61,227,128,62,61,57,131,62,61,122,133,62,61,167,135,62,61,192,137,62,61,196,139,62,61,180,141,62,61,144,143,62,61,87,145,62,61,10,147,62,61,169,148,62,61,51,150,62,61,169,151,62,61,11,153,62,61,88,154,62,61,145,155,62,61,182,156,62,61,198,157,62,61,194,158,62,61,170,159,62,61,125,160,62,61,60,161,62,61,231,161,62,61,126,162,62,61,
0,163,62,61,110,163,62,61,199,163,62,61,12,164,62,61,61,164,62,61,90,164,62,61,98,164,62,61,86,164,62,61,54,164,62,61,1,164,62,61,185,163,62,61,91,163,62,61,234,162,62,61,100,162,62,61,202,161,62,61,28,161,62,61,90,160,62,61,131,159,62,61,152,158,62,61,153,157,62,61,133,156,62,61,94,155,62,61,34,154,62,61,209,152,62,61,109,151,62,61,244,149,62,61,103,148,62,61,198,146,62,61,17,145,62,61,71,143,62,61,105,141,62,61,119,139,62,61,113,137,62,61,86,135,62,61,40,133,62,61,229,130,62,61,142,128,62,61,34,
126,62,61,163,123,62,61,15,121,62,61,103,118,62,61,171,115,62,61,219,112,62,61,247,109,62,61,254,106,62,61,241,103,62,61,208,100,62,61,155,97,62,61,82,94,62,61,245,90,62,61,131,87,62,61,253,83,62,61,100,80,62,61,182,76,62,61,244,72,62,61,29,69,62,61,51,65,62,61,53,61,62,61,34,57,62,61,251,52,62,61,193,48,62,61,114,44,62,61,15,40,62,61,152,35,62,61,13,31,62,61,109,26,62,61,186,21,62,61,243,16,62,61,23,12,62,61,40,7,62,61,36,2,62,61,12,253,61,61,225,247,61,61,161,242,61,61,77,237,61,61],"i8",4,y.a+
153600);
Q([229,231,61,61,105,226,61,61,217,220,61,61,54,215,61,61,126,209,61,61,178,203,61,61,210,197,61,61,222,191,61,61,214,185,61,61,186,179,61,61,138,173,61,61,70,167,61,61,238,160,61,61,130,154,61,61,2,148,61,61,111,141,61,61,199,134,61,61,11,128,61,61,59,121,61,61,88,114,61,61,96,107,61,61,85,100,61,61,53,93,61,61,2,86,61,61,187,78,61,61,96,71,61,61,241,63,61,61,110,56,61,61,215,48,61,61,44,41,61,61,110,33,61,61,155,25,61,61,181,17,61,61,187,9,61,61,173,1,61,61,139,249,60,61,85,241,60,61,12,233,60,
61,174,224,60,61,61,216,60,61,184,207,60,61,31,199,60,61,114,190,60,61,178,181,60,61,222,172,60,61,246,163,60,61,250,154,60,61,234,145,60,61,199,136,60,61,144,127,60,61,69,118,60,61,230,108,60,61,116,99,60,61,237,89,60,61,84,80,60,61,166,70,60,61,229,60,60,61,16,51,60,61,39,41,60,61,42,31,60,61,26,21,60,61,246,10,60,61,191,0,60,61,116,246,59,61,21,236,59,61,162,225,59,61,28,215,59,61,131,204,59,61,213,193,59,61,20,183,59,61,63,172,59,61,87,161,59,61,91,150,59,61,76,139,59,61,40,128,59,61,242,116,
59,61,167,105,59,61,74,94,59,61,216,82,59,61,83,71,59,61,187,59,59,61,14,48,59,61,79,36,59,61,124,24,59,61,149,12,59,61,155,0,59,61,141,244,58,61,108,232,58,61,55,220,58,61,239,207,58,61,147,195,58,61,36,183,58,61,162,170,58,61,11,158,58,61,98,145,58,61,165,132,58,61,213,119,58,61,241,106,58,61,250,93,58,61,239,80,58,61,209,67,58,61,159,54,58,61,91,41,58,61,2,28,58,61,151,14,58,61,24,1,58,61,134,243,57,61,224,229,57,61,39,216,57,61,91,202,57,61,123,188,57,61,136,174,57,61,130,160,57,61,105,146,57,
61,60,132,57,61,252,117,57,61,168,103,57,61,66,89,57,61,200,74,57,61,59,60,57,61,154,45,57,61,231,30,57,61,32,16,57,61,70,1,57,61,89,242,56,61,88,227,56,61,69,212,56,61,30,197,56,61,228,181,56,61,151,166,56,61,55,151,56,61,195,135,56,61,61,120,56,61,163,104,56,61,246,88,56,61,54,73,56,61,99,57,56,61,125,41,56,61,132,25,56,61,120,9,56,61,89,249,55,61,38,233,55,61,225,216,55,61,136,200,55,61,29,184,55,61,159,167,55,61,13,151,55,61,105,134,55,61,177,117,55,61,231,100,55,61,9,84,55,61,25,67,55,61,22,
50,55,61,0,33,55,61,214,15,55,61,154,254,54,61,75,237,54,61,233,219,54,61,117,202,54,61,237,184,54,61,82,167,54,61,165,149,54,61,229,131,54,61,18,114,54,61,44,96,54,61,51,78,54,61,39,60,54,61,9,42,54,61,216,23,54,61,148,5,54,61,61,243,53,61,211,224,53,61,87,206,53,61,200,187,53,61,38,169,53,61,114,150,53,61,171,131,53,61,209,112,53,61,228,93,53,61,229,74,53,61,211,55,53,61,174,36,53,61,119,17,53,61,45,254,52,61,209,234,52,61,98,215,52,61,224,195,52,61,75,176,52,61,164,156,52,61,235,136,52,61,31,117,
52,61,64,97,52,61,79,77,52,61,75,57,52,61,53,37,52,61,12,17,52,61,209,252,51,61,131,232,51,61,35,212,51,61,176,191,51,61,43,171,51,61,147,150,51,61,233,129,51,61,44,109,51,61,93,88,51,61,124,67,51,61,136,46,51,61,130,25,51,61,105,4,51,61,62,239,50,61,1,218,50,61,178,196,50,61,80,175,50,61,219,153,50,61,85,132,50,61,188,110,50,61,17,89,50,61,83,67,50,61,132,45,50,61,162,23,50,61,174,1,50,61,167,235,49,61,142,213,49,61,100,191,49,61,39,169,49,61,215,146,49,61,118,124,49,61,2,102,49,61,125,79,49,61,
229,56,49,61,59,34,49,61,127,11,49,61,177,244,48,61,208,221,48,61,222,198,48,61,218,175,48,61,195,152,48,61,155,129,48,61,96,106,48,61,20,83,48,61,181,59,48,61,68,36,48,61,194,12,48,61,45,245,47,61,135,221,47,61,206,197,47,61,4,174,47,61,40,150,47,61,58,126,47,61,58,102,47,61,40,78,47,61,4,54,47,61,206,29,47,61,134,5,47,61,45,237,46,61,194,212,46,61,69,188,46,61,182,163,46,61,21,139,46,61,99,114,46,61,159,89,46,61,201,64,46,61,225,39,46,61,232,14,46,61,221,245,45,61,192,220,45,61,145,195,45,61,81,
170,45,61,255,144,45,61,156,119,45,61,39,94,45,61,160,68,45,61,8,43,45,61,94,17,45,61,162,247,44,61,213,221,44,61,246,195,44,61,6,170,44,61,4,144,44,61,241,117,44,61,204,91,44,61,150,65,44,61,78,39,44,61,245,12,44,61,138,242,43,61,14,216,43,61,129,189,43,61,226,162,43,61,50,136,43,61,112,109,43,61,157,82,43,61,184,55,43,61,194,28,43,61,187,1,43,61,163,230,42,61,121,203,42,61,62,176,42,61,241,148,42,61,148,121,42,61,37,94,42,61,165,66,42,61,19,39,42,61,113,11,42,61,189,239,41,61,248,211,41,61,34,184,
41,61,58,156,41,61,66,128,41,61,56,100,41,61,29,72,41,61,242,43,41,61,181,15,41,61,103,243,40,61,8,215,40,61,152,186,40,61,22,158,40,61,132,129,40,61,225,100,40,61,45,72,40,61,104,43,40,61,146,14,40,61,171,241,39,61,179,212,39,61,170,183,39,61,144,154,39,61,101,125,39,61,41,96,39,61,221,66,39,61,128,37,39,61,17,8,39,61,146,234,38,61,3,205,38,61,98,175,38,61,177,145,38,61,239,115,38,61,28,86,38,61,56,56,38,61,68,26,38,61,63,252,37,61,41,222,37,61,2,192,37,61,203,161,37,61,132,131,37,61,43,101,37,61,
194,70,37,61,73,40,37,61,190,9,37,61,36,235,36,61,120,204,36,61,188,173,36,61,240,142,36,61,19,112,36,61,37,81,36,61,40,50,36,61,25,19,36,61,250,243,35,61,203,212,35,61,139,181,35,61,59,150,35,61,218,118,35,61,106,87,35,61,232,55,35,61,87,24,35,61,181,248,34,61,2,217,34,61,64,185,34,61,109,153,34,61,138,121,34,61,150,89,34,61,146,57,34,61,126,25,34,61,90,249,33,61,38,217,33,61,225,184,33,61,141,152,33,61,40,120,33,61,179,87,33,61,46,55,33,61,153,22,33,61,243,245,32,61,62,213,32,61,120,180,32,61,163,
147,32,61,189,114,32,61,200,81,32,61,194,48,32,61,173,15,32,61,135,238,31,61,82,205,31,61,12,172,31,61,183,138,31,61,82,105,31,61,221,71,31,61,88,38,31,61,195,4,31,61,30,227,30,61,106,193,30,61,166,159,30,61,210,125,30,61,238,91,30,61,250,57,30,61,247,23,30,61,228,245,29,61,193,211,29,61,142,177,29,61,76,143,29,61,250,108,29,61,153,74,29,61,40,40,29,61,167,5,29,61,23,227,28,61,119,192,28,61,199,157,28,61,8,123,28,61,57,88,28,61,91,53,28,61,110,18,28,61,113,239,27,61,100,204,27,61,72,169,27,61,29,
134,27,61,226,98,27,61,152,63,27,61,62,28,27,61,213,248,26,61,93,213,26,61,213,177,26,61,62,142,26,61,151,106,26,61,226,70,26,61,29,35,26,61,73,255,25,61,101,219,25,61,115,183,25,61,113,147,25,61,96,111,25,61,64,75,25,61,17,39,25,61,210,2,25,61,133,222,24,61,40,186,24,61,188,149,24,61,65,113,24,61,184,76,24,61,31,40,24,61,119,3,24,61,192,222,23,61,250,185,23,61,37,149,23,61,65,112,23,61,78,75,23,61,77,38,23,61,60,1,23,61,29,220,22,61,239,182,22,61,177,145,22,61,101,108,22,61,11,71,22,61,161,33,22,
61,41,252,21,61,162,214,21,61,12,177,21,61,103,139,21,61,180,101,21,61,242,63,21,61,33,26,21,61,66,244,20,61,84,206,20,61,88,168,20,61,77,130,20,61,51,92,20,61,10,54,20,61,212,15,20,61,142,233,19,61,58,195,19,61,216,156,19,61,103,118,19,61,232,79,19,61,90,41,19,61,190,2,19,61,19,220,18,61,90,181,18,61,147,142,18,61,189,103,18,61,217,64,18,61,231,25,18,61,230,242,17,61,215,203,17,61,186,164,17,61,143,125,17,61,85,86,17,61,13,47,17,61,183,7,17,61,83,224,16,61,224,184,16,61,96,145,16,61,209,105,16,61,
53,66,16,61,138,26,16,61,209,242,15,61,10,203,15,61,53,163,15,61,82,123,15,61,97,83,15,61,98,43,15,61,85,3,15,61,58,219,14,61,17,179,14,61,219,138,14,61,150,98,14,61,68,58,14,61,228,17,14,61,117,233,13,61,250,192,13,61,112,152,13,61,216,111,13,61,51,71,13,61,128,30,13,61,192,245,12,61,241,204,12,61,21,164,12,61,44,123,12,61,52,82,12,61,47,41,12,61,29,0,12,61,253,214,11,61,207,173,11,61,148,132,11,61,75,91,11,61,245,49,11,61,145,8,11,61,32,223,10,61,161,181,10,61,21,140,10,61,123,98,10,61,212,56,10,
61,32,15,10,61,94,229,9,61,143,187,9,61,179,145,9,61,201,103,9,61,210,61,9,61,206,19,9,61,189,233,8,61,158,191,8,61,114,149,8,61,57,107,8,61,243,64,8,61,160,22,8,61,63,236,7,61,210,193,7,61,87,151,7,61,207,108,7,61,58,66,7,61,152,23,7,61,233,236,6,61,46,194,6,61,101,151,6,61,143,108,6,61,172,65,6,61,189,22,6,61,192,235,5,61,183,192,5,61,160,149,5,61,125,106,5,61,77,63,5,61,16,20,5,61,199,232,4,61,113,189,4,61,13,146,4,61,158,102,4,61,33,59,4,61,152,15,4,61,2,228,3,61,96,184,3,61,177,140,3,61,245,
96,3,61,45,53,3,61,88,9,3,61,118,221,2,61,137,177,2,61,142,133,2,61,135,89,2,61,116,45,2,61,84,1,2,61,40,213,1,61,239,168,1,61,170,124,1,61,89,80,1,61,251,35,1,61,145,247,0,61,26,203,0,61,152,158,0,61,9,114,0,61,109,69,0,61,198,24,0,61,36,216,255,60,165,126,255,60,13,37,255,60,92,203,254,60,148,113,254,60,179,23,254,60,186,189,253,60,169,99,253,60,128,9,253,60,62,175,252,60,229,84,252,60,116,250,251,60,235,159,251,60,74,69,251,60,145,234,250,60,192,143,250,60,215,52,250,60,215,217,249,60,191,126,
249,60,144,35,249,60,72,200,248,60,234,108,248,60,115,17,248,60,230,181,247,60,64,90,247,60,132,254,246,60,176,162,246,60,196,70,246,60,194,234,245,60,168,142,245,60,119,50,245,60,47,214,244,60,207,121,244,60,89,29,244,60,203,192,243,60,39,100,243,60,107,7,243,60,153,170,242,60,176,77,242,60,176,240,241,60,153,147,241,60,108,54,241,60,39,217,240,60,204,123,240,60,91,30,240,60,211,192,239,60,52,99,239,60,127,5,239,60,179,167,238,60,209,73,238,60,217,235,237,60,202,141,237,60,165,47,237,60,105,209,
236,60,24,115,236,60,176,20,236,60,51,182,235,60,159,87,235,60,245,248,234,60,53,154,234,60,95,59,234,60,115,220,233,60,113,125,233,60,90,30,233,60,45,191,232,60,234,95,232,60,145,0,232,60,35,161,231,60,159,65,231,60,5,226,230,60,86,130,230,60,145,34,230,60,183,194,229,60,200,98,229,60,195,2,229,60,169,162,228,60,121,66,228,60,53,226,227,60,219,129,227,60,108,33,227,60,231,192,226,60,78,96,226,60,160,255,225,60,221,158,225,60,5,62,225,60,24,221,224,60,22,124,224,60,255,26,224,60,211,185,223,60,147,
88,223,60,62,247,222,60,213,149,222,60,87,52,222,60,196,210,221,60,29,113,221,60,97,15,221,60,145,173,220,60,172,75,220,60,180,233,219,60,166,135,219,60,133,37,219,60,79,195,218,60,6,97,218,60,168,254,217,60,54,156,217,60,176,57,217,60,22,215,216,60,104,116,216,60,166,17,216,60,208,174,215,60,231,75,215,60,233,232,214,60,216,133,214,60,180,34,214,60,123,191,213,60,47,92,213,60,208,248,212,60,93,149,212,60,214,49,212,60,60,206,211,60,143,106,211,60,206,6,211,60,250,162,210,60,19,63,210,60,24,219,209,
60,11,119,209,60,234,18,209,60,182,174,208,60,111,74,208,60,21,230,207,60,168,129,207,60,41,29,207,60,150,184,206,60,241,83,206,60,57,239,205,60,110,138,205,60,144,37,205,60,160,192,204,60,157,91,204,60,136,246,203,60,96,145,203,60,37,44,203,60,217,198,202,60,121,97,202,60,8,252,201,60,132,150,201,60,238,48,201,60,70,203,200,60,140,101,200,60,191,255,199,60,225,153,199,60,240,51,199,60,237,205,198,60,217,103,198,60,179,1,198,60,122,155,197,60,48,53,197,60,213,206,196,60,103,104,196,60,232,1,196,60,
87,155,195,60,181,52,195,60,1,206,194,60,60,103,194,60,101,0,194,60,125,153,193,60,131,50,193,60,121,203,192,60,92,100,192,60,47,253,191,60,241,149,191,60,161,46,191,60,64,199,190,60,207,95,190,60,76,248,189,60,184,144,189,60,20,41,189,60,94,193,188,60,152,89,188,60,193,241,187,60,217,137,187,60,225,33,187,60,216,185,186,60,190,81,186,60,148,233,185,60,89,129,185,60,14,25,185,60,178,176,184,60,70,72,184,60,202,223,183,60,62,119,183,60,161,14,183,60,244,165,182,60,55,61,182,60,106,212,181,60,141,107,
181,60,160,2,181,60,162,153,180,60,149,48,180,60,120,199,179,60,76,94,179,60,15,245,178,60,195,139,178,60,103,34,178,60,252,184,177,60,128,79,177,60,246,229,176,60,92,124,176,60,178,18,176,60,249,168,175,60,49,63,175,60,89,213,174,60,114,107,174,60,124,1,174,60,118,151,173,60,98,45,173,60,62,195,172,60,11,89,172,60,202,238,171,60,121,132,171,60,26,26,171,60,171,175,170,60,46,69,170,60,162,218,169,60,8,112,169,60,94,5,169,60,166,154,168,60,224,47,168,60,11,197,167,60,39,90,167,60,53,239,166,60,53,
132,166,60,38,25,166,60,9,174,165,60,222,66,165,60,164,215,164,60,92,108,164,60,6,1,164,60,163,149,163,60,49,42,163,60,177,190,162,60,35,83,162,60,135,231,161,60,221,123,161,60,38,16,161,60,97,164,160,60,142,56,160,60,173,204,159,60,191,96,159,60,196,244,158,60,186,136,158,60,164,28,158,60,128,176,157,60,78,68,157,60,15,216,156,60,195,107,156,60,106,255,155,60,3,147,155,60,144,38,155,60,15,186,154,60,129,77,154,60,230,224,153,60,62,116,153,60,137,7,153,60,200,154,152,60,249,45,152,60,30,193,151,60,
54,84,151,60,65,231,150,60,64,122,150,60,50,13,150,60,24,160,149,60,241,50,149,60,190,197,148,60,126,88,148,60,50,235,147,60,217,125,147,60,117,16,147,60,4,163,146,60,135,53,146,60,254,199,145,60,104,90,145,60,199,236,144,60,26,127,144,60,96,17,144,60,155,163,143,60,202,53,143,60,238,199,142,60,5,90,142,60,17,236,141,60,17,126,141,60,6,16,141,60,239,161,140,60,204,51,140,60,158,197,139,60,101,87,139,60,32,233,138,60,208,122,138,60,117,12,138,60,14,158,137,60,156,47,137,60,31,193,136,60,151,82,136,
60,4,228,135,60,102,117,135,60,189,6,135,60,9,152,134,60,75,41,134,60,129,186,133,60,173,75,133,60,206,220,132,60,228,109,132,60,240,254,131,60,241,143,131,60,232,32,131,60,212,177,130,60,181,66,130,60,141,211,129,60,90,100,129,60,28,245,128,60,213,133,128,60,131,22,128,60,79,78,127,60,131,111,126,60,163,144,125,60,175,177,124,60,167,210,123,60,139,243,122,60,92,20,122,60,24,53,121,60,194,85,120,60,88,118,119,60,218,150,118,60,74,183,117,60,166,215,116,60,239,247,115,60,37,24,115,60,73,56,114,60,
89,88,113,60,87,120,112,60,66,152,111,60,27,184,110,60,225,215,109,60,150,247,108,60,56,23,108,60,199,54,107,60,69,86,106,60,177,117,105,60,11,149,104,60,83,180,103,60,138,211,102,60,175,242,101,60,195,17,101,60,197,48,100,60,183,79,99,60,151,110,98,60,102,141,97,60,36,172,96,60,209,202,95,60,109,233,94,60,249,7,94,60,116,38,93,60,222,68,92,60,57,99,91,60,130,129,90,60,188,159,89,60,230,189,88,60,255,219,87,60,9,250,86,60,3,24,86,60,237,53,85,60,200,83,84,60,147,113,83,60,78,143,82,60,250,172,81,
60,151,202,80,60,37,232,79,60,164,5,79,60,20,35,78,60,117,64,77,60,199,93,76,60,10,123,75,60,63,152,74,60,102,181,73,60,126,210,72,60,136,239,71,60,131,12,71,60,113,41,70,60,80,70,69,60,34,99,68,60,230,127,67,60,156,156,66,60,68,185,65,60,223,213,64,60,109,242,63,60,237,14,63,60,96,43,62,60,198,71,61,60,30,100,60,60,106,128,59,60,169,156,58,60,219,184,57,60,1,213,56,60,26,241,55,60,39,13,55,60,39,41,54,60,27,69,53,60,2,97,52,60,222,124,51,60,174,152,50,60,113,180,49,60,41,208,48,60,213,235,47,60,
118,7,47,60,11,35,46,60,149,62,45,60,19,90,44,60,135,117,43,60,239,144,42,60,76,172,41,60,158,199,40,60,229,226,39,60,33,254,38,60,83,25,38,60,123,52,37,60,152,79,36,60,170,106,35,60,178,133,34,60,176,160,33,60,164,187,32,60,143,214,31,60,111,241,30,60,69,12,30,60,18,39,29,60,213,65,28,60,143,92,27,60,63,119,26,60,230,145,25,60,132,172,24,60,24,199,23,60,164,225,22,60,39,252,21,60,160,22,21,60,18,49,20,60,122,75,19,60,218,101,18,60,50,128,17,60,129,154,16,60,200,180,15,60,7,207,14,60,62,233,13,60,
109,3,13,60,148,29,12,60,179,55,11,60,202,81,10,60,218,107,9,60,227,133,8,60,228,159,7,60,222,185,6,60,209,211,5,60,188,237,4,60,161,7,4,60,127,33,3,60,85,59,2,60,38,85,1,60,239,110,0,60,101,17,255,59,222,68,253,59,75,120,251,59,171,171,249,59,255,222,247,59,71,18,246,59,131,69,244,59,179,120,242,59,216,171,240,59,242,222,238,59,0,18,237,59,4,69,235,59,253,119,233,59,235,170,231,59,207,221,229,59,169,16,228,59,121,67,226,59,63,118,224,59,252,168,222,59,175,219,220,59,89,14,219,59,250,64,217,59,147,
115,215,59,34,166,213,59,170,216,211,59,41,11,210,59,160,61,208,59,15,112,206,59,118,162,204,59,215,212,202,59,47,7,201,59,129,57,199,59,204,107,197,59,16,158,195,59,78,208,193,59,134,2,192,59,183,52,190,59,226,102,188,59,8,153,186,59,40,203,184,59,67,253,182,59,89,47,181,59,105,97,179,59,117,147,177,59,125,197,175,59,128,247,173,59,127,41,172,59,121,91,170,59,112,141,168,59,100,191,166,59,84,241,164,59,65,35,163,59,42,85,161,59,17,135,159,59,245,184,157,59,215,234,155,59,183,28,154,59,148,78,152,
59,112,128,150,59,73,178,148,59,34,228,146,59,249,21,145,59,207,71,143,59,164,121,141,59,120,171,139,59,76,221,137,59,31,15,136,59,242,64,134,59,197,114,132,59,153,164,130,59,109,214,128,59,130,16,126,59,44,116,122,59,217,215,118,59,136,59,115,59,57,159,111,59,238,2,108,59,166,102,104,59,98,202,100,59,34,46,97,59,231,145,93,59,177,245,89,59,128,89,86,59,85,189,82,59,49,33,79,59,19,133,75,59,251,232,71,59,235,76,68,59,227,176,64,59,227,20,61,59,236,120,57,59,253,220,53,59,23,65,50,59,59,165,46,59,
105,9,43,59,162,109,39,59,229,209,35,59,51,54,32,59,141,154,28,59,243,254,24,59,101,99,21,59,227,199,17,59,111,44,14,59,8,145,10,59,175,245,6,59,100,90,3,59,80,126,255,58,245,71,248,58,185,17,241,58,156,219,233,58,159,165,226,58,196,111,219,58,10,58,212,58,114,4,205,58,254,206,197,58,173,153,190,58,130,100,183,58,124,47,176,58,156,250,168,58,227,197,161,58,82,145,154,58,233,92,147,58,170,40,140,58,149,244,132,58,84,129,123,58,214,25,109,58,177,178,94,58,230,75,80,58,119,229,65,58,101,127,51,58,177,
25,37,58,94,180,22,58,108,79,8,58,188,213,243,57,105,13,215,57,227,69,186,57,44,127,157,57,71,185,128,57,113,232,71,57,4,96,14,57,159,178,169,56,189,162,218,55,228,118,241,183,143,96,175,184,227,47,17,185,168,173,74,185,201,20,130,185,206,209,158,185,222,141,187,185,248,72,216,185,24,3,245,185,29,222,8,186,47,58,23,186,191,149,37,186,204,240,51,186,85,75,66,186,87,165,80,186,211,254,94,186,197,87,109,186,45,176,123,186,4,4,133,186,171,47,140,186,11,91,147,186,34,134,154,186,241,176,161,186,118,219,
168,186,176,5,176,186,159,47,183,186,66,89,190,186,152,130,197,186,160,171,204,186,91,212,211,186,198,252,218,186,226,36,226,186,173,76,233,186,39,116,240,186,79,155,247,186,36,194,254,186,83,244,2,187,106,135,6,187,86,26,10,187,23,173,13,187,173,63,17,187,24,210,20,187,86,100,24,187,104,246,27,187,78,136,31,187,6,26,35,187,145,171,38,187,238,60,42,187,29,206,45,187,29,95,49,187,238,239,52,187,144,128,56,187,2,17,60,187,68,161,63,187,86,49,67,187,54,193,70,187,230,80,74,187,100,224,77,187,176,111,
81,187,202,254,84,187,177,141,88,187,101,28,92,187,229,170,95,187,50,57,99,187,74,199,102,187,46,85,106,187,222,226,109,187,87,112,113,187,156,253,116,187,170,138,120,187,129,23,124,187,34,164,127,187,70,152,129,187,95,94,131,187,92,36,133,187,62,234,134,187,2,176,136,187,171,117,138,187,54,59,140,187,165,0,142,187,247,197,143,187,43,139,145,187,66,80,147,187,60,21,149,187,24,218,150,187,213,158,152,187,117,99,154,187,246,39,156,187,89,236,157,187,157,176,159,187,194,116,161,187,200,56,163,187,175,
252,164,187,119,192,166,187,31,132,168,187,167,71,170,187,15,11,172,187,86,206,173,187,126,145,175,187,133,84,177,187,107,23,179,187,49,218,180,187,213,156,182,187,88,95,184,187,186,33,186,187,249,227,187,187,24,166,189,187,20,104,191,187,238,41,193,187,165,235,194,187,58,173,196,187,173,110,198,187,252,47,200,187,41,241,201,187,50,178,203,187,23,115,205,187,217,51,207,187,120,244,208,187,242,180,210,187,72,117,212,187,122,53,214,187,135,245,215,187,111,181,217,187,51,117,219,187,209,52,221,187,74,
244,222,187,158,179,224,187,204,114,226,187,213,49,228,187,183,240,229,187,115,175,231,187,9,110,233,187,120,44,235,187,193,234,236,187,227,168,238,187,221,102,240,187,177,36,242,187,93,226,243,187,225,159,245,187,62,93,247,187,114,26,249,187,127,215,250,187,99,148,252,187,31,81,254,187,217,6,0,188,14,229,0,188,46,195,1,188,58,161,2,188,50,127,3,188,20,93,4,188,226,58,5,188,154,24,6,188,62,246,6,188,204,211,7,188,69,177,8,188,169,142,9,188,247,107,10,188,48,73,11,188,84,38,12,188,97,3,13,188,89,224,
13,188,59,189,14,188,7,154,15,188,189,118,16,188,93,83,17,188,231,47,18,188,90,12,19,188,183,232,19,188,254,196,20,188,46,161,21,188,71,125,22,188,73,89,23,188,53,53,24,188,10,17,25,188,200,236,25,188,110,200,26,188,254,163,27,188,118,127,28,188,215,90,29,188,32,54,30,188,82,17,31,188,108,236,31,188,111,199,32,188,89,162,33,188,44,125,34,188,231,87,35,188,138,50,36,188,20,13,37,188,135,231,37,188,225,193,38,188,35,156,39,188,76,118,40,188,92,80,41,188,84,42,42,188,51,4,43,188,249,221,43,188,167,183,
44,188,59,145,45,188,182,106,46,188,24,68,47,188,97,29,48,188,144,246,48,188,166,207,49,188,162,168,50,188,133,129,51,188,78,90,52,188,253,50,53,188,146,11,54,188,13,228,54,188,110,188,55,188,181,148,56,188,226,108,57,188,244,68,58,188,236,28,59,188,202,244,59,188,141,204,60,188,53,164,61,188,194,123,62,188,53,83,63,188,141,42,64,188,201,1,65,188,235,216,65,188,241,175,66,188,221,134,67,188,172,93,68,188,97,52,69,188,249,10,70,188,118,225,70,188,216,183,71,188,30,142,72,188,71,100,73,188,85,58,74,
188,71,16,75,188,29,230,75,188,214,187,76,188,115,145,77,188,244,102,78,188,88,60,79,188,160,17,80,188,203,230,80,188,217,187,81,188,203,144,82,188,159,101,83,188,87,58,84,188,242,14,85,188,111,227,85,188,207,183,86,188,18,140,87,188,56,96,88,188,64,52,89,188,42,8,90,188,247,219,90,188,166,175,91,188,55,131,92,188,170,86,93,188,255,41,94,188,55,253,94,188,80,208,95,188,75,163,96,188,39,118,97,188,229,72,98,188,133,27,99,188,6,238,99,188,104,192,100,188,172,146,101,188,208,100,102,188,214,54,103,188,
189,8,104,188,133,218,104,188,45,172,105,188,183,125,106,188,33,79,107,188,107,32,108,188,150,241,108,188,162,194,109,188,142,147,110,188,90,100,111,188,6,53,112,188,147,5,113,188,255,213,113,188,75,166,114,188,120,118,115,188,132,70,116,188,111,22,117,188,58,230,117,188,229,181,118,188,111,133,119,188,217,84,120,188,34,36,121,188,74,243,121,188,81,194,122,188,55,145,123,188,252,95,124,188,160,46,125,188,34,253,125,188,132,203,126,188,196,153,127,188,241,51,128,188,240,154,128,188,221,1,129,188,186,
104,129,188,134,207,129,188,65,54,130,188,235,156,130,188,132,3,131,188,12,106,131,188,131,208,131,188,232,54,132,188,61,157,132,188,128,3,133,188,178,105,133,188,211,207,133,188,226,53,134,188,224,155,134,188,205,1,135,188,168,103,135,188,114,205,135,188,42,51,136,188,208,152,136,188,101,254,136,188,232,99,137,188,90,201,137,188,186,46,138,188,8,148,138,188,68,249,138,188,110,94,139,188,135,195,139,188,141,40,140,188,129,141,140,188,100,242,140,188,52,87,141,188,243,187,141,188,159,32,142,188,57,
133,142,188,193,233,142,188,54,78,143,188,153,178,143,188,234,22,144,188,41,123,144,188,85,223,144,188,110,67,145,188,118,167,145,188,106,11,146,188,76,111,146,188,28,211,146,188,217,54,147,188,131,154,147,188,26,254,147,188,159,97,148,188,16,197,148,188,111,40,149,188,187,139,149,188,245,238,149,188,27,82,150,188,46,181,150,188,46,24,151,188,27,123,151,188,245,221,151,188,188,64,152,188,111,163,152,188,16,6,153,188,157,104,153,188,23,203,153,188,125,45,154,188,208,143,154,188,16,242,154,188,60,84,
155,188,85,182,155,188,90,24,156,188,75,122,156,188,41,220,156,188,243,61,157,188,170,159,157,188,77,1,158,188,220,98,158,188,87,196,158,188,191,37,159,188,18,135,159,188,82,232,159,188,125,73,160,188,149,170,160,188,153,11,161,188,136,108,161,188,100,205,161,188,43,46,162,188,222,142,162,188,125,239,162,188,7,80,163,188,126,176,163,188,224,16,164,188,45,113,164,188,103,209,164,188,139,49,165,188,156,145,165,188,151,241,165,188,126,81,166,188,81,177,166,188,15,17,167,188,184,112,167,188,77,208,167,
188,205,47,168,188,56,143,168,188,142,238,168,188,207,77,169,188,252,172,169,188,19,12,170,188,22,107,170,188,3,202,170,188,220,40,171,188,159,135,171,188,77,230,171,188,231,68,172,188,106,163,172,188,217,1,173,188,51,96,173,188,119,190,173,188,166,28,174,188,191,122,174,188,195,216,174,188,178,54,175,188,139,148,175,188,78,242,175,188,253,79,176,188,149,173,176,188,24,11,177,188,133,104,177,188,220,197,177,188,30,35,178,188,74,128,178,188,96,221,178,188,97,58,179,188,75,151,179,188,31,244,179,188,
222,80,180,188,135,173,180,188,25,10,181,188,150,102,181,188,252,194,181,188,76,31,182,188,134,123,182,188,170,215,182,188,184,51,183,188,175,143,183,188,144,235,183,188,91,71,184,188,15,163,184,188,173,254,184,188,53,90,185,188,166,181,185,188,0,17,186,188,68,108,186,188,114,199,186,188,136,34,187,188,136,125,187,188,114,216,187,188,68,51,188,188,0,142,188,188,165,232,188,188,52,67,189,188,171,157,189,188,11,248,189,188,85,82,190,188,135,172,190,188,163,6,191,188,167,96,191,188,149,186,191,188,107,
20,192,188,42,110,192,188,210,199,192,188,99,33,193,188,220,122,193,188,63,212,193,188,138,45,194,188,189,134,194,188,217,223,194,188,222,56,195,188,203,145,195,188,161,234,195,188,95,67,196,188,6,156,196,188,149,244,196,188,13,77,197,188,108,165,197,188,181,253,197,188,229,85,198,188,254,173,198,188,255,5,199,188,232,93,199,188,185,181,199,188,114,13,200,188,19,101,200,188,157,188,200,188,14,20,201,188,103,107,201,188,169,194,201,188,210,25,202,188,227,112,202,188,220,199,202,188,189,30,203,188,
133,117,203,188,53,204,203,188,205,34,204,188,77,121,204,188,180,207,204,188,3,38,205,188,57,124,205,188,87,210,205,188,93,40,206,188,74,126,206,188,30,212,206,188,218,41,207,188,125,127,207,188,8,213,207,188,121,42,208,188,210,127,208,188,19,213,208,188,58,42,209,188,73,127,209,188,63,212,209,188,28,41,210,188,224,125,210,188,139,210,210,188,29,39,211,188,151,123,211,188,247,207,211,188,62,36,212,188,108,120,212,188,129,204,212,188,124,32,213,188,95,116,213,188,40,200,213,188,216,27,214,188,110,
111,214,188,236,194,214,188,80,22,215,188,154,105,215,188,203,188,215,188,227,15,216,188,225,98,216,188,198,181,216,188,145,8,217,188,66,91,217,188,218,173,217,188,89,0,218,188,189,82,218,188,8,165,218,188,57,247,218,188,81,73,219,188,78,155,219,188,50,237,219,188,252,62,220,188,172,144,220,188,66,226,220,188,190,51,221,188,32,133,221,188,104,214,221,188,150,39,222,188,170,120,222,188,164,201,222,188,132,26,223,188,74,107,223,188,245,187,223,188,134,12,224,188,253,92,224,188,90,173,224,188,156,253,
224,188,196,77,225,188,209,157,225,188,197,237,225,188,157,61,226,188,92,141,226,188,255,220,226,188,137,44,227,188,247,123,227,188,75,203,227,188,133,26,228,188,164,105,228,188,168,184,228,188,145,7,229,188,96,86,229,188,20,165,229,188,173,243,229,188,43,66,230,188,143,144,230,188,215,222,230,188,5,45,231,188,24,123,231,188,15,201,231,188,236,22,232,188,174,100,232,188,84,178,232,188,224,255,232,188,80,77,233,188,166,154,233,188,224,231,233,188,255,52,234,188,2,130,234,188,235,206,234,188,184,27,
235,188,106,104,235,188,0,181,235,188,123,1,236,188,219,77,236,188,31,154,236,188,72,230,236,188,85,50,237,188,71,126,237,188,30,202,237,188,216,21,238,188,119,97,238,188,251,172,238,188,98,248,238,188,175,67,239,188,223,142,239,188,244,217,239,188,236,36,240,188,202,111,240,188,139,186,240,188,48,5,241,188,186,79,241,188,39,154,241,188,121,228,241,188,175,46,242,188,200,120,242,188,198,194,242,188,168,12,243,188,109,86,243,188,23,160,243,188,164,233,243,188,21,51,244,188,106,124,244,188,163,197,
244,188,192,14,245,188,192,87,245,188,164,160,245,188,108,233,245,188,23,50,246,188,166,122,246,188,25,195,246,188,111,11,247,188,168,83,247,188,198,155,247,188,198,227,247,188,171,43,248,188,114,115,248,188,29,187,248,188,172,2,249,188,30,74,249,188,115,145,249,188,171,216,249,188,199,31,250,188,198,102,250,188,168,173,250,188,110,244,250,188,22,59,251,188,162,129,251,188,17,200,251,188,99,14,252,188,152,84,252,188,176,154,252,188,171,224,252,188,138,38,253,188,75,108,253,188,239,177,253,188,118,
247,253,188,224,60,254,188,44,130,254,188,92,199,254,188,111,12,255,188,100,81,255,188,60,150,255,188,247,218,255,188,202,15,0,189,10,50,0,189,60,84,0,189,94,118,0,189,114,152,0,189,120,186,0,189,111,220,0,189,86,254,0,189,48,32,1,189,250,65,1,189,182,99,1,189,99,133,1,189,1,167,1,189,144,200,1,189,17,234,1,189,130,11,2,189,229,44,2,189,57,78,2,189,126,111,2,189,181,144,2,189,220,177,2,189,244,210,2,189,254,243,2,189,249,20,3,189,228,53,3,189,193,86,3,189,143,119,3,189,78,152,3,189,254,184,3,189,
159,217,3,189,49,250,3,189,179,26,4,189,39,59,4,189,140,91,4,189,226,123,4,189,41,156,4,189,96,188,4,189,137,220,4,189,162,252,4,189,173,28,5,189,168,60,5,189,148,92,5,189,113,124,5,189,63,156,5,189,253,187,5,189,173,219,5,189,77,251,5,189,222,26,6,189,96,58,6,189,210,89,6,189,54,121,6,189,138,152,6,189,207,183,6,189,5,215,6,189,43,246,6,189,66,21,7,189,74,52,7,189,66,83,7,189,43,114,7,189,5,145,7,189,208,175,7,189,139,206,7,189,54,237,7,189,211,11,8,189,96,42,8,189,221,72,8,189,75,103,8,189,170,
133,8,189,250,163,8,189,57,194,8,189,106,224,8,189,139,254,8,189,156,28,9,189,158,58,9,189,145,88,9,189,116,118,9,189,71,148,9,189,11,178,9,189,192,207,9,189,100,237,9,189,250,10,10,189,127,40,10,189,246,69,10,189,92,99,10,189,179,128,10,189,250,157,10,189,50,187,10,189,90,216,10,189,115,245,10,189,124,18,11,189,117,47,11,189,94,76,11,189,56,105,11,189,2,134,11,189,188,162,11,189,103,191,11,189,2,220,11,189,141,248,11,189,9,21,12,189,116,49,12,189,208,77,12,189,29,106,12,189,89,134,12,189,134,162,
12,189,162,190,12,189,175,218,12,189,173,246,12,189,154,18,13,189,119,46,13,189,69,74,13,189,3,102,13,189,177,129,13,189,79,157,13,189,221,184,13,189,91,212,13,189,202,239,13,189,40,11,14,189,119,38,14,189,181,65,14,189,228,92,14,189,2,120,14,189,17,147,14,189,16,174,14,189,255,200,14,189,221,227,14,189,172,254,14,189,107,25,15,189,26,52,15,189,184,78,15,189,71,105,15,189,197,131,15,189,52,158,15,189,146,184,15,189,225,210,15,189,31,237,15,189,77,7,16,189,107,33,16,189,121,59,16,189,119,85,16,189,
101,111,16,189,67,137,16,189,16,163,16,189,205,188,16,189,123,214,16,189,23,240,16,189,164,9,17,189,33,35,17,189,141,60,17,189,233,85,17,189,53,111,17,189,113,136,17,189,157,161,17,189,184,186,17,189,195,211,17,189,190,236,17,189,168,5,18,189,130,30,18,189,76,55,18,189,6,80,18,189,175,104,18,189,72,129,18,189,209,153,18,189,73,178,18,189,177,202,18,189,9,227,18,189,80,251,18,189,135,19,19,189,174,43,19,189,196,67,19,189,202,91,19,189,191,115,19,189,164,139,19,189,121,163,19,189,61,187,19,189,241,
210,19,189,148,234,19,189,39,2,20,189,170,25,20,189,28,49,20,189,125,72,20,189,206,95,20,189,15,119,20,189,63,142,20,189,95,165,20,189,110,188,20,189,108,211,20,189,91,234,20,189,56,1,21,189,5,24,21,189,194,46,21,189,110,69,21,189,9,92,21,189,148,114,21,189,14,137,21,189,120,159,21,189,209,181,21,189,25,204,21,189,81,226,21,189,121,248,21,189,143,14,22,189,149,36,22,189,139,58,22,189,112,80,22,189,68,102,22,189,7,124,22,189,186,145,22,189,92,167,22,189,238,188,22,189,111,210,22,189,223,231,22,189,
62,253,22,189,141,18,23,189,203,39,23,189,248,60,23,189,21,82,23,189,33,103,23,189,28,124,23,189,6,145,23,189,224,165,23,189,169,186,23,189,97,207,23,189,8,228,23,189,159,248,23,189,37,13,24,189,154,33,24,189,254,53,24,189,82,74,24,189,148,94,24,189,198,114,24,189,231,134,24,189,247,154,24,189,247,174,24,189,229,194,24,189,195,214,24,189,144,234,24,189,76,254,24,189,247,17,25,189,145,37,25,189,26,57,25,189,147,76,25,189,250,95,25,189,81,115,25,189,151,134,25,189,204,153,25,189,240,172,25,189,3,192,
25,189,5,211,25,189,246,229,25,189,214,248,25,189,166,11,26,189,100,30,26,189,17,49,26,189,174,67,26,189,57,86,26,189,180,104,26,189,29,123,26,189,118,141,26,189,190,159,26,189,244,177,26,189,26,196,26,189,46,214,26,189,50,232,26,189,36,250,26,189,6,12,27,189,214,29,27,189,150,47,27,189,68,65,27,189,226,82,27,189,110,100,27,189,233,117,27,189,84,135,27,189,173,152,27,189,245,169,27,189,44,187,27,189,82,204,27,189,103,221,27,189,106,238,27,189,93,255,27,189,63,16,28,189,15,33,28,189,206,49,28,189,
125,66,28,189,26,83,28,189,166,99,28,189,33,116,28,189,138,132,28,189,227,148,28,189,42,165,28,189,97,181,28,189,134,197,28,189,154,213,28,189,157,229,28,189,142,245,28,189,111,5,29,189,62,21,29,189,252,36,29,189,169,52,29,189,69,68,29,189,207,83,29,189,73,99,29,189,177,114,29,189,8,130,29,189,77,145,29,189,130,160,29,189,165,175,29,189,183,190,29,189,184,205,29,189,168,220,29,189,134,235,29,189,83,250,29,189,15,9,30,189,185,23,30,189,83,38,30,189,219,52,30,189,82,67,30,189,183,81,30,189,12,96,30,
189,79,110,30,189,128,124,30,189,161,138,30,189,176,152,30,189,174,166,30,189,154,180,30,189,118,194,30,189,64,208,30,189,248,221,30,189,160,235,30,189,54,249,30,189,186,6,31,189,46,20,31,189,144,33,31,189,225,46,31,189,32,60,31,189,78,73,31,189,107,86,31,189,118,99,31,189,112,112,31,189,89,125,31,189,48,138,31,189,246,150,31,189,171,163,31,189,78,176,31,189,224,188,31,189,97,201,31,189,208,213,31,189,46,226,31,189,122,238,31,189,181,250,31,189,223,6,32,189,247,18,32,189,254,30,32,189,244,42,32,189,
216,54,32,189,170,66,32,189,108,78,32,189,27,90,32,189,186,101,32,189,71,113,32,189,195,124,32,189,45,136,32,189,134,147,32,189,205,158,32,189,3,170,32,189,40,181,32,189,59,192,32,189,60,203,32,189,45,214,32,189,11,225,32,189,217,235,32,189,149,246,32,189,63,1,33,189,216,11,33,189,96,22,33,189,214,32,33,189,59,43,33,189,142,53,33,189,208,63,33,189,0,74,33,189,31,84,33,189,44,94,33,189,40,104,33,189,19,114,33,189,235,123,33,189,179,133,33,189,105,143,33,189,14,153,33,189,161,162,33,189,34,172,33,189,
146,181,33,189,241,190,33,189,62,200,33,189,122,209,33,189,164,218,33,189,188,227,33,189,195,236,33,189,185,245,33,189,157,254,33,189,112,7,34,189,49,16,34,189,225,24,34,189,127,33,34,189,11,42,34,189,135,50,34,189,240,58,34,189,72,67,34,189,143,75,34,189,196,83,34,189,232,91,34,189,250,99,34,189,250,107,34,189,233,115,34,189,199,123,34,189,147,131,34,189,77,139,34,189,246,146,34,189,141,154,34,189,19,162,34,189,135,169,34,189,234,176,34,189,60,184,34,189,123,191,34,189,169,198,34,189,198,205,34,
189,209,212,34,189,203,219,34,189,179,226,34,189,138,233,34,189,79,240,34,189,2,247,34,189,164,253,34,189,52,4,35,189,179,10,35,189,32,17,35,189,124,23,35,189,198,29,35,189,255,35,35,189,38,42,35,189,60,48,35,189,64,54,35,189,50,60,35,189,19,66,35,189,227,71,35,189,160,77,35,189,77,83,35,189,231,88,35,189,113,94,35,189,232,99,35,189,78,105,35,189,163,110,35,189,230,115,35,189,23,121,35,189,55,126,35,189,70,131,35,189,67,136,35,189,46,141,35,189,8,146,35,189,208,150,35,189,134,155,35,189,43,160,35,
189,191,164,35,189,65,169,35,189,177,173,35,189,16,178,35,189,93,182,35,189,153,186,35,189,195,190,35,189,220,194,35,189,227,198,35,189,217,202,35,189,189,206,35,189,143,210,35,189,80,214,35,189,0,218,35,189,157,221,35,189,42,225,35,189,165,228,35,189,14,232,35,189,101,235,35,189,172,238,35,189,224,241,35,189,3,245,35,189,21,248,35,189,21,251,35,189,3,254,35,189,224,0,36,189,171,3,36,189,101,6,36,189,13,9,36,189,164,11,36,189,41,14,36,189,157,16,36,189,255,18,36,189,80,21,36,189,143,23,36,189,188,
25,36,189,216,27,36,189,227,29,36,189,220,31,36,189,195,33,36,189,153,35,36,189,93,37,36,189,16,39,36,189,178,40,36,189,66,42,36,189,192,43,36,189,45,45,36,189,136,46,36,189,210,47,36,189,10,49,36,189,49,50,36,189,70,51,36,189,74,52,36,189,60,53,36,189,29,54,36,189,236,54,36,189,170,55,36,189,86,56,36,189,241,56,36,189,122,57,36,189,242,57,36,189,88,58,36,189,173,58,36,189,240,58,36,189,34,59,36,189,66,59,36,189,81,59,36,189,78,59,36,189,58,59,36,189,20,59,36,189,221,58,36,189,149,58,36,189,59,58,
36,189,207,57,36,189,82,57,36,189,196,56,36,189,36,56,36,189,114,55,36,189,176,54,36,189,219,53,36,189,246,52,36,189,254,51,36,189,246,50,36,189,220,49,36,189,176,48,36,189,115,47,36,189,37,46,36,189,197,44,36,189,84,43,36,189,209,41,36,189,61,40,36,189,152,38,36,189,225,36,36,189,24,35,36,189,62,33,36,189,83,31,36,189,87,29,36,189,73,27,36,189,41,25,36,189,248,22,36,189,182,20,36,189,98,18,36,189,253,15,36,189,135,13,36,189,255,10,36,189,102,8,36,189,187,5,36,189,255,2,36,189,50,0,36,189,83,253,
35,189,99,250,35,189,98,247,35,189,79,244,35,189,43,241,35,189,245,237,35,189,174,234,35,189,86,231,35,189,237,227,35,189,114,224,35,189,229,220,35,189,72,217,35,189,153,213,35,189,217,209,35,189,7,206,35,189,36,202,35,189,48,198,35,189,42,194,35,189,19,190,35,189,235,185,35,189,178,181,35,189,103,177,35,189,11,173,35,189,158,168,35,189,31,164,35,189,143,159,35,189,238,154,35,189,59,150,35,189,119,145,35,189,162,140,35,189,188,135,35,189,197,130,35,189,188,125,35,189,162,120,35,189,118,115,35,189,
58,110,35,189,236,104,35,189,141,99,35,189,28,94,35,189,155,88,35,189,8,83,35,189,100,77,35,189,175,71,35,189,233,65,35,189,17,60,35,189,40,54,35,189,46,48,35,189,35,42,35,189,7,36,35,189,217,29,35,189,154,23,35,189,74,17,35,189,233,10,35,189,119,4,35,189,243,253,34,189,95,247,34,189,185,240,34,189,2,234,34,189,58,227,34,189,97,220,34,189,118,213,34,189,123,206,34,189,110,199,34,189,81,192,34,189,34,185,34,189,226,177,34,189,145,170,34,189,47,163,34,189,187,155,34,189,55,148,34,189,162,140,34,189,
251,132,34,189,68,125,34,189,123,117,34,189,161,109,34,189,183,101,34,189,187,93,34,189,174,85,34,189,144,77,34,189,97,69,34,189,33,61,34,189,208,52,34,189,110,44,34,189,251,35,34,189,119,27,34,189,226,18,34,189,59,10,34,189,132,1,34,189,188,248,33,189,227,239,33,189,249,230,33,189,254,221,33,189,242,212,33,189,213,203,33,189,167,194,33,189,105,185,33,189,25,176,33,189,184,166,33,189,70,157,33,189,196,147,33,189,48,138,33,189,140,128,33,189,214,118,33,189,16,109,33,189,57,99,33,189,81,89,33,189,88,
79,33,189,78,69,33,189,51,59,33,189,8,49,33,189,203,38,33,189,126,28,33,189,32,18,33,189,177,7,33,189,49,253,32,189,161,242,32,189],"i8",4,y.a+163840);
Q([255,231,32,189,77,221,32,189,138,210,32,189,182,199,32,189,209,188,32,189,220,177,32,189,213,166,32,189,190,155,32,189,150,144,32,189,94,133,32,189,20,122,32,189,186,110,32,189,79,99,32,189,212,87,32,189,72,76,32,189,170,64,32,189,253,52,32,189,62,41,32,189,111,29,32,189,143,17,32,189,158,5,32,189,157,249,31,189,139,237,31,189,104,225,31,189,53,213,31,189,241,200,31,189,156,188,31,189,55,176,31,189,193,163,31,189,59,151,31,189,164,138,31,189,252,125,31,189,67,113,31,189,122,100,31,189,161,87,31,
189,183,74,31,189,188,61,31,189,176,48,31,189,148,35,31,189,104,22,31,189,43,9,31,189,221,251,30,189,127,238,30,189,17,225,30,189,145,211,30,189,2,198,30,189,98,184,30,189,177,170,30,189,240,156,30,189,30,143,30,189,60,129,30,189,73,115,30,189,70,101,30,189,51,87,30,189,15,73,30,189,218,58,30,189,149,44,30,189,64,30,30,189,218,15,30,189,100,1,30,189,222,242,29,189,71,228,29,189,159,213,29,189,232,198,29,189,32,184,29,189,71,169,29,189,95,154,29,189,101,139,29,189,92,124,29,189,66,109,29,189,24,94,
29,189,222,78,29,189,147,63,29,189,56,48,29,189,205,32,29,189,81,17,29,189,197,1,29,189,41,242,28,189,125,226,28,189,192,210,28,189,243,194,28,189,22,179,28,189,41,163,28,189,43,147,28,189,30,131,28,189,0,115,28,189,210,98,28,189,147,82,28,189,69,66,28,189,230,49,28,189,120,33,28,189,249,16,28,189,106,0,28,189,202,239,27,189,27,223,27,189,92,206,27,189,140,189,27,189,172,172,27,189,189,155,27,189,189,138,27,189,173,121,27,189,141,104,27,189,93,87,27,189,29,70,27,189,205,52,27,189,109,35,27,189,253,
17,27,189,125,0,27,189,237,238,26,189,77,221,26,189,157,203,26,189,221,185,26,189,13,168,26,189,45,150,26,189,61,132,26,189,61,114,26,189,46,96,26,189,14,78,26,189,223,59,26,189,159,41,26,189,80,23,26,189,241,4,26,189,130,242,25,189,3,224,25,189,116,205,25,189,214,186,25,189,39,168,25,189,105,149,25,189,155,130,25,189,189,111,25,189,207,92,25,189,210,73,25,189,197,54,25,189,168,35,25,189,123,16,25,189,63,253,24,189,243,233,24,189,151,214,24,189,43,195,24,189,176,175,24,189,37,156,24,189,138,136,24,
189,224,116,24,189,38,97,24,189,92,77,24,189,131,57,24,189,154,37,24,189,161,17,24,189,153,253,23,189,129,233,23,189,90,213,23,189,35,193,23,189,220,172,23,189,134,152,23,189,33,132,23,189,171,111,23,189,39,91,23,189,146,70,23,189,239,49,23,189,59,29,23,189,121,8,23,189,166,243,22,189,197,222,22,189,212,201,22,189,211,180,22,189,195,159,22,189,163,138,22,189,116,117,22,189,54,96,22,189,232,74,22,189,139,53,22,189,31,32,22,189,163,10,22,189,24,245,21,189,125,223,21,189,211,201,21,189,26,180,21,189,
82,158,21,189,122,136,21,189,147,114,21,189,156,92,21,189,151,70,21,189,130,48,21,189,94,26,21,189,42,4,21,189,232,237,20,189,150,215,20,189,53,193,20,189,197,170,20,189,69,148,20,189,182,125,20,189,25,103,20,189,108,80,20,189,176,57,20,189,229,34,20,189,10,12,20,189,33,245,19,189,40,222,19,189,33,199,19,189,10,176,19,189,229,152,19,189,176,129,19,189,108,106,19,189,25,83,19,189,183,59,19,189,71,36,19,189,199,12,19,189,56,245,18,189,154,221,18,189,237,197,18,189,50,174,18,189,103,150,18,189,142,126,
18,189,165,102,18,189,174,78,18,189,168,54,18,189,147,30,18,189,111,6,18,189,60,238,17,189,250,213,17,189,170,189,17,189,74,165,17,189,220,140,17,189,95,116,17,189,212,91,17,189,57,67,17,189,144,42,17,189,216,17,17,189,17,249,16,189,60,224,16,189,88,199,16,189,101,174,16,189,99,149,16,189,83,124,16,189,52,99,16,189,7,74,16,189,202,48,16,189,128,23,16,189,38,254,15,189,190,228,15,189,71,203,15,189,194,177,15,189,47,152,15,189,140,126,15,189,219,100,15,189,28,75,15,189,78,49,15,189,114,23,15,189,135,
253,14,189,141,227,14,189,134,201,14,189,111,175,14,189,74,149,14,189,23,123,14,189,214,96,14,189,134,70,14,189,39,44,14,189,187,17,14,189,63,247,13,189,182,220,13,189,30,194,13,189,120,167,13,189,195,140,13,189,0,114,13,189,47,87,13,189,80,60,13,189,98,33,13,189,102,6,13,189,92,235,12,189,68,208,12,189,29,181,12,189,233,153,12,189,166,126,12,189,84,99,12,189,245,71,12,189,136,44,12,189,12,17,12,189,130,245,11,189,234,217,11,189,68,190,11,189,144,162,11,189,206,134,11,189,254,106,11,189,32,79,11,
189,51,51,11,189,57,23,11,189,49,251,10,189,27,223,10,189,246,194,10,189,196,166,10,189,132,138,10,189,54,110,10,189,218,81,10,189,112,53,10,189,248,24,10,189,114,252,9,189,222,223,9,189,61,195,9,189,141,166,9,189,208,137,9,189,5,109,9,189,44,80,9,189,70,51,9,189,81,22,9,189,79,249,8,189,63,220,8,189,33,191,8,189,246,161,8,189,189,132,8,189,118,103,8,189,34,74,8,189,191,44,8,189,79,15,8,189,210,241,7,189,71,212,7,189,174,182,7,189,8,153,7,189,84,123,7,189,146,93,7,189,195,63,7,189,231,33,7,189,252,
3,7,189,5,230,6,189,0,200,6,189,237,169,6,189,205,139,6,189,159,109,6,189,100,79,6,189,27,49,6,189,197,18,6,189,98,244,5,189,241,213,5,189,115,183,5,189,232,152,5,189,79,122,5,189,169,91,5,189,245,60,5,189,52,30,5,189,102,255,4,189,139,224,4,189,162,193,4,189,172,162,4,189,169,131,4,189,153,100,4,189,123,69,4,189,80,38,4,189,24,7,4,189,211,231,3,189,129,200,3,189,33,169,3,189,181,137,3,189,59,106,3,189,180,74,3,189,32,43,3,189,127,11,3,189,209,235,2,189,22,204,2,189,78,172,2,189,121,140,2,189,151,
108,2,189,168,76,2,189,172,44,2,189,163,12,2,189,141,236,1,189,107,204,1,189,59,172,1,189,254,139,1,189,181,107,1,189,95,75,1,189,251,42,1,189,139,10,1,189,15,234,0,189,133,201,0,189,239,168,0,189,75,136,0,189,156,103,0,189,223,70,0,189,21,38,0,189,63,5,0,189,185,200,255,188,218,134,255,188,226,68,255,188,208,2,255,188,165,192,254,188,97,126,254,188,4,60,254,188,141,249,253,188,254,182,253,188,85,116,253,188,147,49,253,188,184,238,252,188,196,171,252,188,183,104,252,188,145,37,252,188,82,226,251,
188,250,158,251,188,138,91,251,188,0,24,251,188,94,212,250,188,163,144,250,188,207,76,250,188,226,8,250,188,221,196,249,188,191,128,249,188,136,60,249,188,57,248,248,188,209,179,248,188,81,111,248,188,184,42,248,188,7,230,247,188,61,161,247,188,91,92,247,188,96,23,247,188,78,210,246,188,34,141,246,188,223,71,246,188,131,2,246,188,15,189,245,188,131,119,245,188,223,49,245,188,34,236,244,188,78,166,244,188,97,96,244,188,92,26,244,188,64,212,243,188,11,142,243,188,191,71,243,188,90,1,243,188,222,186,
242,188,73,116,242,188,157,45,242,188,218,230,241,188,254,159,241,188,11,89,241,188,0,18,241,188,221,202,240,188,163,131,240,188,81,60,240,188,232,244,239,188,103,173,239,188,206,101,239,188,31,30,239,188,87,214,238,188,121,142,238,188,130,70,238,188,117,254,237,188,80,182,237,188,20,110,237,188,193,37,237,188,87,221,236,188,213,148,236,188,61,76,236,188,141,3,236,188,198,186,235,188,232,113,235,188,243,40,235,188,231,223,234,188,196,150,234,188,139,77,234,188,58,4,234,188,211,186,233,188,84,113,
233,188,191,39,233,188,19,222,232,188,81,148,232,188,120,74,232,188,136,0,232,188,130,182,231,188,101,108,231,188,49,34,231,188,231,215,230,188,134,141,230,188,15,67,230,188,130,248,229,188,222,173,229,188,36,99,229,188,84,24,229,188,109,205,228,188,112,130,228,188,93,55,228,188,52,236,227,188,244,160,227,188,158,85,227,188,51,10,227,188,177,190,226,188,25,115,226,188,108,39,226,188,168,219,225,188,207,143,225,188,223,67,225,188,218,247,224,188,191,171,224,188,142,95,224,188,71,19,224,188,235,198,
223,188,121,122,223,188,242,45,223,188,84,225,222,188,162,148,222,188,217,71,222,188,252,250,221,188,8,174,221,188,0,97,221,188,226,19,221,188,174,198,220,188,101,121,220,188,7,44,220,188,148,222,219,188,12,145,219,188,110,67,219,188,187,245,218,188,243,167,218,188,22,90,218,188,36,12,218,188,29,190,217,188,0,112,217,188,207,33,217,188,137,211,216,188,46,133,216,188,191,54,216,188,58,232,215,188,161,153,215,188,243,74,215,188,48,252,214,188,89,173,214,188,109,94,214,188,108,15,214,188,87,192,213,
188,45,113,213,188,239,33,213,188,156,210,212,188,53,131,212,188,185,51,212,188,41,228,211,188,133,148,211,188,205,68,211,188,0,245,210,188,31,165,210,188,42,85,210,188,33,5,210,188,3,181,209,188,210,100,209,188,140,20,209,188,51,196,208,188,197,115,208,188,68,35,208,188,175,210,207,188,6,130,207,188,73,49,207,188,120,224,206,188,147,143,206,188,155,62,206,188,143,237,205,188,112,156,205,188,61,75,205,188,246,249,204,188,156,168,204,188,46,87,204,188,173,5,204,188,24,180,203,188,112,98,203,188,181,
16,203,188,230,190,202,188,4,109,202,188,15,27,202,188,6,201,201,188,235,118,201,188,188,36,201,188,122,210,200,188,37,128,200,188,189,45,200,188,66,219,199,188,180,136,199,188,19,54,199,188,95,227,198,188,153,144,198,188,191,61,198,188,211,234,197,188,212,151,197,188,194,68,197,188,158,241,196,188,103,158,196,188,30,75,196,188,193,247,195,188,83,164,195,188,210,80,195,188,62,253,194,188,152,169,194,188,224,85,194,188,21,2,194,188,56,174,193,188,73,90,193,188,71,6,193,188,51,178,192,188,14,94,192,
188,214,9,192,188,140,181,191,188,47,97,191,188,193,12,191,188,65,184,190,188,175,99,190,188,11,15,190,188,86,186,189,188,142,101,189,188,181,16,189,188,201,187,188,188,205,102,188,188,190,17,188,188,158,188,187,188,108,103,187,188,41,18,187,188,212,188,186,188,110,103,186,188,246,17,186,188,109,188,185,188,210,102,185,188,38,17,185,188,105,187,184,188,154,101,184,188,187,15,184,188,202,185,183,188,200,99,183,188,180,13,183,188,144,183,182,188,91,97,182,188,21,11,182,188,189,180,181,188,85,94,181,
188,220,7,181,188,82,177,180,188,183,90,180,188,12,4,180,188,80,173,179,188,131,86,179,188,165,255,178,188,183,168,178,188,184,81,178,188,169,250,177,188,137,163,177,188,88,76,177,188,24,245,176,188,198,157,176,188,101,70,176,188,243,238,175,188,113,151,175,188,222,63,175,188,60,232,174,188,137,144,174,188,198,56,174,188,243,224,173,188,16,137,173,188,29,49,173,188,26,217,172,188,7,129,172,188,228,40,172,188,177,208,171,188,110,120,171,188,28,32,171,188,186,199,170,188,72,111,170,188,199,22,170,188,
53,190,169,188,149,101,169,188,228,12,169,188,37,180,168,188,85,91,168,188,119,2,168,188,136,169,167,188,139,80,167,188,126,247,166,188,98,158,166,188,55,69,166,188,252,235,165,188,178,146,165,188,89,57,165,188,241,223,164,188,122,134,164,188,244,44,164,188,95,211,163,188,187,121,163,188,8,32,163,188,71,198,162,188,118,108,162,188,151,18,162,188,169,184,161,188,172,94,161,188,160,4,161,188,134,170,160,188,94,80,160,188,38,246,159,188,225,155,159,188,140,65,159,188,42,231,158,188,185,140,158,188,57,
50,158,188,172,215,157,188,16,125,157,188,101,34,157,188,173,199,156,188,230,108,156,188,18,18,156,188,47,183,155,188,62,92,155,188,63,1,155,188,50,166,154,188,24,75,154,188,239,239,153,188,185,148,153,188,116,57,153,188,34,222,152,188,194,130,152,188,85,39,152,188,218,203,151,188,81,112,151,188,187,20,151,188,23,185,150,188,102,93,150,188,167,1,150,188,219,165,149,188,1,74,149,188,26,238,148,188,38,146,148,188,37,54,148,188,22,218,147,188,250,125,147,188,209,33,147,188,155,197,146,188,88,105,146,
188,8,13,146,188,171,176,145,188,65,84,145,188,202,247,144,188,70,155,144,188,181,62,144,188,24,226,143,188,110,133,143,188,183,40,143,188,244,203,142,188,35,111,142,188,71,18,142,188,94,181,141,188,104,88,141,188,102,251,140,188,87,158,140,188,60,65,140,188,21,228,139,188,225,134,139,188,161,41,139,188,85,204,138,188,253,110,138,188,152,17,138,188,40,180,137,188,171,86,137,188,34,249,136,188,142,155,136,188,237,61,136,188,65,224,135,188,136,130,135,188,196,36,135,188,244,198,134,188,25,105,134,188,
49,11,134,188,62,173,133,188,64,79,133,188,53,241,132,188,32,147,132,188,254,52,132,188,210,214,131,188,154,120,131,188,86,26,131,188,7,188,130,188,173,93,130,188,72,255,129,188,215,160,129,188,91,66,129,188,212,227,128,188,66,133,128,188,165,38,128,188,251,143,127,188,148,210,126,188,24,21,126,188,135,87,125,188,223,153,124,188,34,220,123,188,79,30,123,188,103,96,122,188,106,162,121,188,87,228,120,188,47,38,120,188,242,103,119,188,160,169,118,188,56,235,117,188,188,44,117,188,43,110,116,188,134,
175,115,188,203,240,114,188,253,49,114,188,25,115,113,188,33,180,112,188,21,245,111,188,245,53,111,188,193,118,110,188,120,183,109,188,27,248,108,188,171,56,108,188,39,121,107,188,143,185,106,188,227,249,105,188,35,58,105,188,81,122,104,188,106,186,103,188,113,250,102,188,100,58,102,188,68,122,101,188,16,186,100,188,202,249,99,188,113,57,99,188,5,121,98,188,134,184,97,188,245,247,96,188,81,55,96,188,154,118,95,188,209,181,94,188,246,244,93,188,8,52,93,188,8,115,92,188,246,177,91,188,210,240,90,188,
156,47,90,188,84,110,89,188,250,172,88,188,143,235,87,188,18,42,87,188,131,104,86,188,227,166,85,188,50,229,84,188,111,35,84,188,155,97,83,188,182,159,82,188,192,221,81,188,184,27,81,188,160,89,80,188,120,151,79,188,62,213,78,188,244,18,78,188,153,80,77,188,46,142,76,188,178,203,75,188,38,9,75,188,138,70,74,188,222,131,73,188,33,193,72,188,85,254,71,188,121,59,71,188,141,120,70,188,145,181,69,188,133,242,68,188,106,47,68,188,64,108,67,188,6,169,66,188,189,229,65,188,100,34,65,188,253,94,64,188,134,
155,63,188,0,216,62,188,107,20,62,188,200,80,61,188,22,141,60,188,85,201,59,188,134,5,59,188,168,65,58,188,187,125,57,188,193,185,56,188,184,245,55,188,160,49,55,188,123,109,54,188,72,169,53,188,7,229,52,188,184,32,52,188,91,92,51,188,241,151,50,188,121,211,49,188,244,14,49,188,97,74,48,188,193,133,47,188,19,193,46,188,88,252,45,188,145,55,45,188,188,114,44,188,218,173,43,188,236,232,42,188,241,35,42,188,233,94,41,188,212,153,40,188,179,212,39,188,134,15,39,188,76,74,38,188,6,133,37,188,180,191,36,
188,86,250,35,188,235,52,35,188,117,111,34,188,243,169,33,188,101,228,32,188,204,30,32,188,39,89,31,188,118,147,30,188,186,205,29,188,242,7,29,188,32,66,28,188,66,124,27,188,89,182,26,188,101,240,25,188,102,42,25,188,93,100,24,188,72,158,23,188,41,216,22,188,255,17,22,188,203,75,21,188,140,133,20,188,67,191,19,188,240,248,18,188,147,50,18,188,43,108,17,188,186,165,16,188,62,223,15,188,185,24,15,188,42,82,14,188,145,139,13,188,239,196,12,188,67,254,11,188,141,55,11,188,207,112,10,188,7,170,9,188,54,
227,8,188,92,28,8,188,120,85,7,188,140,142,6,188,151,199,5,188,154,0,5,188,147,57,4,188,132,114,3,188,109,171,2,188,77,228,1,188,37,29,1,188,244,85,0,188,119,29,255,187,245,142,253,187,99,0,252,187,194,113,250,187,17,227,248,187,80,84,247,187,128,197,245,187,161,54,244,187,179,167,242,187,182,24,241,187,170,137,239,187,144,250,237,187,103,107,236,187,48,220,234,187,235,76,233,187,153,189,231,187,56,46,230,187,202,158,228,187,79,15,227,187,199,127,225,187,49,240,223,187,143,96,222,187,224,208,220,
187,37,65,219,187,93,177,217,187,137,33,216,187,169,145,214,187,189,1,213,187,197,113,211,187,194,225,209,187,180,81,208,187,154,193,206,187,118,49,205,187,70,161,203,187,12,17,202,187,200,128,200,187,121,240,198,187,32,96,197,187,189,207,195,187,80,63,194,187,217,174,192,187,89,30,191,187,207,141,189,187,61,253,187,187,161,108,186,187,253,219,184,187,79,75,183,187,154,186,181,187,220,41,180,187,22,153,178,187,71,8,177,187,113,119,175,187,148,230,173,187,175,85,172,187,194,196,170,187,206,51,169,
187,212,162,167,187,210,17,166,187,202,128,164,187,187,239,162,187,166,94,161,187,139,205,159,187,106,60,158,187,67,171,156,187,22,26,155,187,228,136,153,187,172,247,151,187,112,102,150,187,46,213,148,187,231,67,147,187,156,178,145,187,77,33,144,187,248,143,142,187,160,254,140,187,68,109,139,187,228,219,137,187,128,74,136,187,25,185,134,187,175,39,133,187,65,150,131,187,208,4,130,187,93,115,128,187,205,195,125,187,220,160,122,187,230,125,119,187,236,90,116,187,237,55,113,187,236,20,110,187,230,241,
106,187,222,206,103,187,211,171,100,187,198,136,97,187,182,101,94,187,165,66,91,187,147,31,88,187,128,252,84,187,108,217,81,187,88,182,78,187,67,147,75,187,48,112,72,187,28,77,69,187,10,42,66,187,249,6,63,187,234,227,59,187,221,192,56,187,210,157,53,187,201,122,50,187,196,87,47,187,194,52,44,187,196,17,41,187,202,238,37,187,212,203,34,187,226,168,31,187,246,133,28,187,15,99,25,187,46,64,22,187,82,29,19,187,125,250,15,187,175,215,12,187,232,180,9,187,40,146,6,187,111,111,3,187,191,76,0,187,45,84,250,
186,238,14,244,186,193,201,237,186,167,132,231,186,160,63,225,186,172,250,218,186,206,181,212,186,4,113,206,186,81,44,200,186,180,231,193,186,47,163,187,186,193,94,181,186,108,26,175,186,48,214,168,186,14,146,162,186,7,78,156,186,27,10,150,186,75,198,143,186,151,130,137,186,1,63,131,186,16,247,121,186,92,112,109,186,230,233,96,186,176,99,84,186,187,221,71,186,9,88,59,186,154,210,46,186,112,77,34,186,141,200,21,186,241,67,9,186,60,127,249,185,42,119,224,185,176,111,199,185,208,104,174,185,140,98,149,
185,207,185,120,185,202,175,70,185,13,167,20,185,61,63,197,184,13,102,66,184,191,159,181,53,145,186,77,56,76,225,202,56,63,113,23,57,106,112,73,57,35,110,123,57,49,181,150,57,147,178,175,57,51,175,200,57,15,171,225,57,36,166,250,57,56,208,9,58,248,76,22,58,81,201,34,58,65,69,47,58,199,192,59,58,226,59,72,58,145,182,84,58,210,48,97,58,163,170,109,58,5,36,122,58,122,78,131,58,184,138,137,58,188,198,143,58,133,2,150,58,19,62,156,58,100,121,162,58,121,180,168,58,80,239,174,58,233,41,181,58,67,100,187,
58,94,158,193,58,57,216,199,58,211,17,206,58,43,75,212,58,66,132,218,58,22,189,224,58,166,245,230,58,243,45,237,58,250,101,243,58,189,157,249,58,57,213,255,58,56,6,3,59,175,33,6,59,2,61,9,59,49,88,12,59,60,115,15,59,33,142,18,59,226,168,21,59,124,195,24,59,241,221,27,59,64,248,30,59,104,18,34,59,105,44,37,59,67,70,40,59,245,95,43,59,127,121,46,59,226,146,49,59,27,172,52,59,44,197,55,59,20,222,58,59,210,246,61,59,103,15,65,59,209,39,68,59,17,64,71,59,38,88,74,59,16,112,77,59,206,135,80,59,97,159,83,
59,200,182,86,59,2,206,89,59,16,229,92,59,240,251,95,59,163,18,99,59,41,41,102,59,128,63,105,59,169,85,108,59,164,107,111,59,111,129,114,59,11,151,117,59,120,172,120,59,180,193,123,59,193,214,126,59,206,245,128,59,36,128,130,59,96,10,132,59,132,148,133,59,143,30,135,59,129,168,136,59,90,50,138,59,25,188,139,59,191,69,141,59,75,207,142,59,189,88,144,59,21,226,145,59,83,107,147,59,118,244,148,59,127,125,150,59,109,6,152,59,64,143,153,59,249,23,155,59,150,160,156,59,23,41,158,59,126,177,159,59,200,57,
161,59,247,193,162,59,10,74,164,59,0,210,165,59,218,89,167,59,152,225,168,59,57,105,170,59,190,240,171,59,37,120,173,59,112,255,174,59,157,134,176,59,172,13,178,59,159,148,179,59,115,27,181,59,42,162,182,59,194,40,184,59,60,175,185,59,152,53,187,59,213,187,188,59,244,65,190,59,244,199,191,59,213,77,193,59,150,211,194,59,57,89,196,59,187,222,197,59,31,100,199,59,98,233,200,59,134,110,202,59,137,243,203,59,108,120,205,59,47,253,206,59,209,129,208,59,82,6,210,59,178,138,211,59,242,14,213,59,16,147,214,
59,13,23,216,59,232,154,217,59,162,30,219,59,57,162,220,59,175,37,222,59,3,169,223,59,52,44,225,59,67,175,226,59,47,50,228,59,248,180,229,59,159,55,231,59,34,186,232,59,130,60,234,59,191,190,235,59,216,64,237,59,205,194,238,59,159,68,240,59,76,198,241,59,213,71,243,59,58,201,244,59,123,74,246,59,150,203,247,59,141,76,249,59,95,205,250,59,12,78,252,59,148,206,253,59,246,78,255,59,153,103,0,60,165,39,1,60,157,231,1,60,130,167,2,60,85,103,3,60,20,39,4,60,192,230,4,60,88,166,5,60,221,101,6,60,79,37,7,
60,173,228,7,60,247,163,8,60,46,99,9,60,81,34,10,60,96,225,10,60,91,160,11,60,66,95,12,60,21,30,13,60,212,220,13,60,126,155,14,60,20,90,15,60,150,24,16,60,3,215,16,60,92,149,17,60,159,83,18,60,207,17,19,60,233,207,19,60,239,141,20,60,223,75,21,60,187,9,22,60,129,199,22,60,51,133,23,60,207,66,24,60,85,0,25,60,199,189,25,60,34,123,26,60,104,56,27,60,153,245,27,60,180,178,28,60,185,111,29,60,168,44,30,60,129,233,30,60,69,166,31,60,242,98,32,60,137,31,33,60,9,220,33,60,116,152,34,60,200,84,35,60,5,17,
36,60,44,205,36,60,60,137,37,60,54,69,38,60,25,1,39,60,229,188,39,60,154,120,40,60,56,52,41,60,191,239,41,60,46,171,42,60,135,102,43,60,200,33,44,60,242,220,44,60,4,152,45,60,255,82,46,60,226,13,47,60,174,200,47,60,98,131,48,60,254,61,49,60,130,248,49,60,238,178,50,60,66,109,51,60,126,39,52,60,162,225,52,60,173,155,53,60,160,85,54,60,123,15,55,60,61,201,55,60,231,130,56,60,119,60,57,60,240,245,57,60,79,175,58,60,149,104,59,60,195,33,60,60,216,218,60,60,211,147,61,60,181,76,62,60,126,5,63,60,46,190,
63,60,196,118,64,60,65,47,65,60,164,231,65,60,238,159,66,60,30,88,67,60,52,16,68,60,48,200,68,60,19,128,69,60,219,55,70,60,138,239,70,60,30,167,71,60,152,94,72,60,248,21,73,60,62,205,73,60,105,132,74,60,121,59,75,60,111,242,75,60,74,169,76,60,11,96,77,60,177,22,78,60,60,205,78,60,172,131,79,60,1,58,80,60,59,240,80,60,90,166,81,60,93,92,82,60,70,18,83,60,18,200,83,60,196,125,84,60,90,51,85,60,212,232,85,60,51,158,86,60,118,83,87,60,157,8,88,60,168,189,88,60,152,114,89,60,107,39,90,60,34,220,90,60,
189,144,91,60,60,69,92,60,159,249,92,60,229,173,93,60,14,98,94,60,28,22,95,60,12,202,95,60,224,125,96,60,151,49,97,60,49,229,97,60,175,152,98,60,15,76,99,60,83,255,99,60,121,178,100,60,131,101,101,60,111,24,102,60,61,203,102,60,239,125,103,60,130,48,104,60,249,226,104,60,81,149,105,60,141,71,106,60,170,249,106,60,169,171,107,60,139,93,108,60,79,15,109,60,244,192,109,60,124,114,110,60,230,35,111,60,49,213,111,60,94,134,112,60,108,55,113,60,92,232,113,60,46,153,114,60,225,73,115,60,117,250,115,60,235,
170,116,60,66,91,117,60,122,11,118,60,147,187,118,60,141,107,119,60,104,27,120,60,36,203,120,60,193,122,121,60,62,42,122,60,156,217,122,60,219,136,123,60,250,55,124,60,250,230,124,60,218,149,125,60,154,68,126,60,58,243,126,60,187,161,127,60,14,40,128,60,46,127,128,60,63,214,128,60,63,45,129,60,47,132,129,60,16,219,129,60,223,49,130,60,159,136,130,60,79,223,130,60,238,53,131,60,125,140,131,60,252,226,131,60,106,57,132,60,200,143,132,60,22,230,132,60,83,60,133,60,127,146,133,60,155,232,133,60,167,62,
134,60,161,148,134,60,140,234,134,60,101,64,135,60,46,150,135,60,230,235,135,60,141,65,136,60,36,151,136,60,170,236,136,60,30,66,137,60,130,151,137,60,213,236,137,60,23,66,138,60,72,151,138,60,104,236,138,60,119,65,139,60,117,150,139,60,98,235,139,60,61,64,140,60,8,149,140,60,193,233,140,60,104,62,141,60,255,146,141,60,132,231,141,60,248,59,142,60,90,144,142,60,171,228,142,60,234,56,143,60,24,141,143,60,53,225,143,60,64,53,144,60,57,137,144,60,32,221,144,60,246,48,145,60,186,132,145,60,109,216,145,
60,14,44,146,60,157,127,146,60,26,211,146,60,133,38,147,60,222,121,147,60,38,205,147,60,91,32,148,60,126,115,148,60,144,198,148,60,143,25,149,60,124,108,149,60,88,191,149,60,33,18,150,60,215,100,150,60,124,183,150,60,14,10,151,60,142,92,151,60,252,174,151,60,87,1,152,60,160,83,152,60,215,165,152,60,251,247,152,60,12,74,153,60,11,156,153,60,248,237,153,60,210,63,154,60,153,145,154,60,78,227,154,60,240,52,155,60,127,134,155,60,252,215,155,60,102,41,156,60,189,122,156,60,1,204,156,60,50,29,157,60,80,
110,157,60,92,191,157,60,84,16,158,60,58,97,158,60,13,178,158,60,204,2,159,60,120,83,159,60,18,164,159,60,152,244,159,60,11,69,160,60,106,149,160,60,183,229,160,60,240,53,161,60,22,134,161,60,41,214,161,60,40,38,162,60,19,118,162,60,236,197,162,60,177,21,163,60,98,101,163,60,0,181,163,60,138,4,164,60,1,84,164,60,100,163,164,60,180,242,164,60,240,65,165,60,24,145,165,60,44,224,165,60,45,47,166,60,25,126,166,60,242,204,166,60,183,27,167,60,105,106,167,60,6,185,167,60,143,7,168,60,5,86,168,60,102,164,
168,60,179,242,168,60,237,64,169,60,18,143,169,60,35,221,169,60,31,43,170,60,8,121,170,60,220,198,170,60,157,20,171,60,72,98,171,60,224,175,171,60,99,253,171,60,210,74,172,60,44,152,172,60,114,229,172,60,164,50,173,60,193,127,173,60,201,204,173,60,189,25,174,60,156,102,174,60,103,179,174,60,29,0,175,60,191,76,175,60,75,153,175,60,195,229,175,60,39,50,176,60,117,126,176,60,175,202,176,60,211,22,177,60,227,98,177,60,222,174,177,60,196,250,177,60,149,70,178,60,81,146,178,60,248,221,178,60,138,41,179,
60,7,117,179,60,111,192,179,60,193,11,180,60,255,86,180,60,39,162,180,60,58,237,180,60,56,56,181,60,32,131,181,60,243,205,181,60,177,24,182,60,89,99,182,60,236,173,182,60,106,248,182,60,210,66,183,60,37,141,183,60,98,215,183,60,137,33,184,60,155,107,184,60,152,181,184,60,126,255,184,60,80,73,185,60,11,147,185,60,177,220,185,60,65,38,186,60,187,111,186,60,31,185,186,60,110,2,187,60,166,75,187,60,201,148,187,60,214,221,187,60,205,38,188,60,174,111,188,60,121,184,188,60,46,1,189,60,205,73,189,60,85,
146,189,60,200,218,189,60,37,35,190,60,107,107,190,60,155,179,190,60,181,251,190,60,185,67,191,60,166,139,191,60,125,211,191,60,62,27,192,60,233,98,192,60,125,170,192,60,250,241,192,60,98,57,193,60,178,128,193,60,237,199,193,60,16,15,194,60,30,86,194,60,20,157,194,60,244,227,194,60,190,42,195,60,112,113,195,60,12,184,195,60,146,254,195,60,0,69,196,60,88,139,196,60,153,209,196,60,195,23,197,60,215,93,197,60,211,163,197,60,185,233,197,60,135,47,198,60,63,117,198,60,224,186,198,60,106,0,199,60,220,69,
199,60,56,139,199,60,125,208,199,60,170,21,200,60,192,90,200,60,192,159,200,60,168,228,200,60,120,41,201,60,50,110,201,60,212,178,201,60,95,247,201,60,211,59,202,60,47,128,202,60,116,196,202,60,161,8,203,60,184,76,203,60,182,144,203,60,157,212,203,60,109,24,204,60,37,92,204,60,198,159,204,60,79,227,204,60,192,38,205,60,26,106,205,60,92,173,205,60,135,240,205,60,154,51,206,60,149,118,206,60,120,185,206,60,67,252,206,60,247,62,207,60,147,129,207,60,23,196,207,60,131,6,208,60,215,72,208,60,20,139,208,
60,56,205,208,60,68,15,209,60,57,81,209,60,21,147,209,60,217,212,209,60,134,22,210,60,26,88,210,60,150,153,210,60,250,218,210,60,69,28,211,60,121,93,211,60,148,158,211,60,151,223,211,60,129,32,212,60,84,97,212,60,14,162,212,60,176,226,212,60,57,35,213,60,170,99,213,60,2,164,213,60,66,228,213,60,106,36,214,60,121,100,214,60,112,164,214,60,78,228,214,60,19,36,215,60,192,99,215,60,84,163,215,60,208,226,215,60,51,34,216,60,125,97,216,60,175,160,216,60,200,223,216,60,200,30,217,60,175,93,217,60,125,156,
217,60,51,219,217,60,208,25,218,60,84,88,218,60,191,150,218,60,17,213,218,60,74,19,219,60,107,81,219,60,114,143,219,60,96,205,219,60,53,11,220,60,241,72,220,60,148,134,220,60,30,196,220,60,143,1,221,60,231,62,221,60,37,124,221,60,75,185,221,60,87,246,221,60,73,51,222,60,35,112,222,60,227,172,222,60,138,233,222,60,24,38,223,60,140,98,223,60,231,158,223,60,41,219,223,60,81,23,224,60,95,83,224,60,85,143,224,60,48,203,224,60,242,6,225,60,155,66,225,60,42,126,225,60,160,185,225,60,252,244,225,60,62,48,
226,60,102,107,226,60,117,166,226,60,107,225,226,60,70,28,227,60,8,87,227,60,176,145,227,60,63,204,227,60,179,6,228,60,14,65,228,60,79,123,228,60,118,181,228,60,131,239,228,60,118,41,229,60,80,99,229,60,15,157,229,60,180,214,229,60,64,16,230,60,177,73,230,60,8,131,230,60,70,188,230,60,105,245,230,60,114,46,231,60,97,103,231,60,54,160,231,60,241,216,231,60,146,17,232,60,24,74,232,60,132,130,232,60,214,186,232,60,14,243,232,60,43,43,233,60,46,99,233,60,23,155,233,60,229,210,233,60,153,10,234,60,51,
66,234,60,178,121,234,60,23,177,234,60,98,232,234,60,146,31,235,60,167,86,235,60,162,141,235,60,130,196,235,60,72,251,235,60,244,49,236,60,132,104,236,60,251,158,236,60,86,213,236,60,151,11,237,60,189,65,237,60,201,119,237,60,186,173,237,60,144,227,237,60,75,25,238,60,236,78,238,60,113,132,238,60,221,185,238,60,45,239,238,60,98,36,239,60,125,89,239,60,124,142,239,60,97,195,239,60,43,248,239,60,218,44,240,60,110,97,240,60,231,149,240,60,69,202,240,60,136,254,240,60,176,50,241,60,188,102,241,60,174,
154,241,60,133,206,241,60,65,2,242,60,225,53,242,60,102,105,242,60,209,156,242,60,32,208,242,60,84,3,243,60,108,54,243,60,106,105,243,60,76,156,243,60,19,207,243,60,190,1,244,60,78,52,244,60,195,102,244,60,29,153,244,60,91,203,244,60,126,253,244,60,133,47,245,60,113,97,245,60,66,147,245,60,247,196,245,60,145,246,245,60,15,40,246,60,114,89,246,60,185,138,246,60,229,187,246,60,245,236,246,60,233,29,247,60,194,78,247,60,127,127,247,60,33,176,247,60,167,224,247,60,18,17,248,60,96,65,248,60,147,113,248,
60,171,161,248,60,166,209,248,60,134,1,249,60,74,49,249,60,242,96,249,60,127,144,249,60,239,191,249,60,68,239,249,60,125,30,250,60,154,77,250,60,156,124,250,60,129,171,250,60,74,218,250,60,248,8,251,60,137,55,251,60,255,101,251,60,88,148,251,60,150,194,251,60,184,240,251,60,189,30,252,60,167,76,252,60,116,122,252,60,38,168,252,60,187,213,252,60,52,3,253,60,145,48,253,60,210,93,253,60,247,138,253,60,255,183,253,60,236,228,253,60,188,17,254,60,112,62,254,60,8,107,254,60,131,151,254,60,226,195,254,60,
37,240,254,60,76,28,255,60,86,72,255,60,68,116,255,60,22,160,255,60,203,203,255,60,100,247,255,60,112,17,0,61,32,39,0,61,194,60,0,61,86,82,0,61,219,103,0,61,82,125,0,61,187,146,0,61,22,168,0,61,98,189,0,61,160,210,0,61,208,231,0,61,242,252,0,61,5,18,1,61,10,39,1,61,1,60,1,61,234,80,1,61,196,101,1,61,143,122,1,61,77,143,1,61,252,163,1,61,157,184,1,61,47,205,1,61,179,225,1,61,41,246,1,61,145,10,2,61,234,30,2,61,52,51,2,61,112,71,2,61,158,91,2,61,190,111,2,61,207,131,2,61,209,151,2,61,197,171,2,61,171,
191,2,61,130,211,2,61,75,231,2,61,6,251,2,61,178,14,3,61,79,34,3,61,222,53,3,61,95,73,3,61,209,92,3,61,52,112,3,61,137,131,3,61,208,150,3,61,8,170,3,61,49,189,3,61,76,208,3,61,89,227,3,61,87,246,3,61,70,9,4,61,39,28,4,61,249,46,4,61,189,65,4,61,114,84,4,61,25,103,4,61,176,121,4,61,58,140,4,61,181,158,4,61,33,177,4,61,126,195,4,61,205,213,4,61,14,232,4,61,64,250,4,61,99,12,5,61,119,30,5,61,125,48,5,61,116,66,5,61,93,84,5,61,55,102,5,61,2,120,5,61,190,137,5,61,108,155,5,61,11,173,5,61,156,190,5,61,
30,208,5,61,145,225,5,61,245,242,5,61,75,4,6,61,146,21,6,61,202,38,6,61,243,55,6,61,14,73,6,61,26,90,6,61,23,107,6,61,6,124,6,61,230,140,6,61,183,157,6,61,121,174,6,61,44,191,6,61,209,207,6,61,103,224,6,61,238,240,6,61,102,1,7,61,208,17,7,61,43,34,7,61,119,50,7,61,180,66,7,61,226,82,7,61,1,99,7,61,18,115,7,61,20,131,7,61,7,147,7,61,235,162,7,61,192,178,7,61,134,194,7,61,62,210,7,61,230,225,7,61,128,241,7,61,11,1,8,61,135,16,8,61,244,31,8,61,82,47,8,61,162,62,8,61,226,77,8,61,20,93,8,61,54,108,8,61,
74,123,8,61,79,138,8,61,69,153,8,61,44,168,8,61,4,183,8,61,205,197,8,61,135,212,8,61,50,227,8,61,206,241,8,61,91,0,9,61,218,14,9,61,73,29,9,61,169,43,9,61,251,57,9,61,61,72,9,61,113,86,9,61,149,100,9,61,170,114,9,61,177,128,9,61,168,142,9,61,145,156,9,61,106,170,9,61,53,184,9,61,240,197,9,61,156,211,9,61,58,225,9,61,200,238,9,61,71,252,9,61,183,9,10,61,25,23,10,61,107,36,10,61,174,49,10,61,226,62,10,61,7,76,10,61,29,89,10,61,36,102,10,61,27,115,10,61,4,128,10,61,222,140,10,61,168,153,10,61,100,166,
10,61,16,179,10,61,173,191,10,61,60,204,10,61,187,216,10,61,43,229,10,61,139,241,10,61,221,253,10,61,32,10,11,61,83,22,11,61,120,34,11,61,141,46,11,61,147,58,11,61,138,70,11,61,114,82,11,61,75,94,11,61,20,106,11,61,207,117,11,61,122,129,11,61,22,141,11,61,163,152,11,61,33,164,11,61,144,175,11,61,239,186,11,61,64,198,11,61,129,209,11,61,179,220,11,61,214,231,11,61,233,242,11,61,238,253,11,61,227,8,12,61,201,19,12,61,160,30,12,61,104,41,12,61,32,52,12,61,202,62,12,61,100,73,12,61,239,83,12,61,106,94,
12,61,215,104,12,61,52,115,12,61,130,125,12,61,193,135,12,61,240,145,12,61,17,156,12,61,34,166,12,61,36,176,12,61,22,186,12,61,250,195,12,61,206,205,12,61,147,215,12,61,73,225,12,61,239,234,12,61,134,244,12,61,14,254,12,61,135,7,13,61,240,16,13,61,74,26,13,61,149,35,13,61,209,44,13,61,253,53,13,61,26,63,13,61,40,72,13,61,39,81,13,61,22,90,13,61,246,98,13,61,199,107,13,61,136,116,13,61,59,125,13,61,221,133,13,61,113,142,13,61,245,150,13,61,106,159,13,61,208,167,13,61,39,176,13,61,110,184,13,61,166,
192,13,61,206,200,13,61,231,208,13,61,241,216,13,61,236,224,13,61,215,232,13,61,179,240,13,61,128,248,13,61,61,0,14,61,235,7,14,61,138,15,14,61,26,23,14,61,154,30,14,61,10,38,14,61,108,45,14,61,190,52,14,61,1,60,14,61,52,67,14,61,89,74,14,61,109,81,14,61,115,88,14,61,105,95,14,61,80,102,14,61,39,109,14,61,240,115,14,61,168,122,14,61,82,129,14,61,236,135,14,61,119,142,14,61,242,148,14,61,95,155,14,61,187,161,14,61,9,168,14,61,71,174,14,61,118,180,14,61,149,186,14,61,165,192,14,61,166,198,14,61,151,
204,14,61,121,210,14,61,76,216,14,61,15,222,14,61,195,227,14,61,103,233,14,61,253,238,14,61,131,244,14,61,249,249,14,61,96,255,14,61,184,4,15,61,0,10,15,61,57,15,15,61,99,20,15,61,125,25,15,61,136,30,15,61,132,35,15,61,112,40,15,61,77,45,15,61,27,50,15,61,217,54,15,61,136,59,15,61,39,64,15,61,183,68,15,61,56,73,15,61,169,77,15,61,11,82,15,61,94,86,15,61,161,90,15,61,213,94,15,61,249,98,15,61,14,103,15,61,20,107,15,61,10,111,15,61,241,114,15,61,201,118,15,61,145,122,15,61,74,126,15,61,244,129,15,61,
142,133,15,61,25,137,15,61,148,140,15,61,0,144,15,61,93,147,15,61,170,150,15,61,232,153,15,61,23,157,15,61,54,160,15,61,70,163,15,61,70,166,15,61,56,169,15,61,25,172,15,61,236,174,15,61,175,177,15,61,98,180,15,61,7,183,15,61,156,185,15,61,33,188,15,61,151,190,15,61,254,192,15,61,86,195,15,61,158,197,15,61,215,199,15,61,0,202,15,61,26,204,15,61,37,206,15,61,32,208,15,61,12,210,15,61,233,211,15,61,182,213,15,61,116,215,15,61,34,217,15,61,194,218,15,61,81,220,15,61,210,221,15,61,67,223,15,61,165,224,
15,61,247,225,15,61,58,227,15,61,110,228,15,61,146,229,15,61,168,230,15,61,173,231,15,61,164,232,15,61,139,233,15,61,98,234,15,61,43,235,15,61,228,235,15,61,141,236,15,61,40,237,15,61,179,237,15,61,46,238,15,61,155,238,15,61,248,238,15,61,69,239,15,61,132,239,15,61,179,239,15,61,211,239,15,61,227,239,15,61,228,239,15,61,214,239,15,61,184,239,15,61,139,239,15,61,79,239,15,61,4,239,15,61,169,238,15,61,63,238,15,61,197,237,15,61,61,237,15,61,164,236,15,61,253,235,15,61,70,235,15,61,129,234,15,61,171,
233,15,61,199,232,15,61,211,231,15,61,208,230,15,61,189,229,15,61,156,228,15,61,107,227,15,61,42,226,15,61,219,224,15,61,124,223,15,61,14,222,15,61,145,220,15,61,4,219,15,61,104,217,15,61,189,215,15,61,2,214,15,61,57,212,15,61,96,210,15,61,119,208,15,61,128,206,15,61,121,204,15,61,99,202,15,61,62,200,15,61,9,198,15,61,198,195,15,61,115,193,15,61,16,191,15,61,159,188,15,61,30,186,15,61,142,183,15,61,239,180,15,61,65,178,15,61,131,175,15,61,182,172,15,61,218,169,15,61,239,166,15,61,245,163,15,61,235,
160,15,61,210,157,15,61,170,154,15,61,115,151,15,61,44,148,15,61,214,144,15,61,114,141,15,61,253,137,15,61,122,134,15,61,232,130,15,61,70,127,15,61,149,123,15,61,213,119,15,61,6,116,15,61,40,112,15,61,58,108,15,61,62,104,15,61,50,100,15,61,23,96,15,61,237,91,15,61,179,87,15,61,107,83,15,61,19,79,15,61,173,74,15,61,55,70,15,61,178,65,15,61,30,61,15,61,123,56,15,61,200,51,15,61,7,47,15,61,54,42,15,61,86,37,15,61,104,32,15,61,106,27,15,61,93,22,15,61,65,17,15,61,21,12,15,61,219,6,15,61,146,1,15,61,57,
252,14,61,210,246,14,61,91,241,14,61,213,235,14,61,64,230,14,61,157,224,14,61,234,218,14,61,40,213,14,61,87,207,14,61,119,201,14,61,136,195,14,61,137,189,14,61,124,183,14,61,96,177,14,61,53,171,14,61,251,164,14,61,177,158,14,61,89,152,14,61,242,145,14,61,123,139,14,61,246,132,14,61,98,126,14,61,190,119,14,61,12,113,14,61,75,106,14,61,122,99,14,61,155,92,14,61,173,85,14,61,176,78,14,61,164,71,14,61,136,64,14,61,94,57,14,61,37,50,14,61,221,42,14,61,134,35,14,61,32,28,14,61,172,20,14,61,40,13,14,61,
149,5,14,61,244,253,13,61,67,246,13,61,132,238,13,61,181,230,13,61,216,222,13,61,236,214,13,61,241,206,13,61,231,198,13,61,206,190,13,61,167,182,13,61,112,174,13,61,43,166,13,61,215,157,13,61,116,149,13,61,2,141,13,61,129,132,13,61,241,123,13,61,83,115,13,61,165,106,13,61,233,97,13,61,30,89,13,61,68,80,13,61,92,71,13,61,100,62,13,61,94,53,13,61,73,44,13,61,37,35,13,61,243,25,13,61,177,16,13,61,97,7,13,61,2,254,12,61,149,244,12,61,24,235,12,61,141,225,12,61,243,215,12,61,74,206,12,61,147,196,12,61,
205,186,12,61,248,176,12,61,20,167,12,61,34,157,12,61,33,147,12,61,17,137,12,61,243,126,12,61,198,116,12,61,138,106,12,61,63,96,12,61,230,85,12,61,127,75,12,61,8,65,12,61,131,54,12,61,239,43,12,61,77,33,12,61,156,22,12,61,220,11,12,61,13,1,12,61,48,246,11,61,69,235,11,61,75,224,11,61,66,213,11,61,42,202,11,61,4,191,11,61,208,179,11,61,141,168,11,61,59,157,11,61,219,145,11,61,108,134,11,61,238,122,11,61,98,111,11,61,200,99,11,61,31,88,11,61,103,76,11,61,161,64,11,61,205,52,11,61,233,40,11,61,248,28,
11,61,248,16,11,61,233,4,11,61,204,248,10,61,160,236,10,61,102,224,10,61,30,212,10,61,199,199,10,61,97,187,10,61,237,174,10,61,107,162,10,61,218,149,10,61,59,137,10,61,141,124,10,61,209,111,10,61,7,99,10,61,46,86,10,61,71,73,10,61,81,60,10,61,77,47,10,61,59,34,10,61,26,21,10,61,235,7,10,61,174,250,9,61,98,237,9,61,8,224,9,61,159,210,9,61,40,197,9,61,163,183,9,61,16,170,9,61,110,156,9,61,190,142,9,61,0,129,9,61,51,115,9,61,88,101,9,61,111,87,9,61,120,73,9,61,114,59,9,61,94,45,9,61,60,31,9,61,12,17,
9,61,205,2,9,61,128,244,8,61,37,230,8,61,188,215,8,61],"i8",4,y.a+174080);
Q([69,201,8,61,191,186,8,61,43,172,8,61,137,157,8,61,217,142,8,61,27,128,8,61,79,113,8,61,116,98,8,61,139,83,8,61,149,68,8,61,144,53,8,61,125,38,8,61,91,23,8,61,44,8,8,61,239,248,7,61,163,233,7,61,74,218,7,61,226,202,7,61,109,187,7,61,233,171,7,61,87,156,7,61,184,140,7,61,10,125,7,61,78,109,7,61,132,93,7,61,172,77,7,61,199,61,7,61,211,45,7,61,209,29,7,61,193,13,7,61,164,253,6,61,120,237,6,61,62,221,6,61,247,204,6,61,161,188,6,61,62,172,6,61,205,155,6,61,78,139,6,61,193,122,6,61,38,106,6,61,125,89,
6,61,198,72,6,61,1,56,6,61,47,39,6,61,79,22,6,61,96,5,6,61,100,244,5,61,91,227,5,61,67,210,5,61,30,193,5,61,234,175,5,61,169,158,5,61,91,141,5,61,254,123,5,61,148,106,5,61,28,89,5,61,150,71,5,61,2,54,5,61,97,36,5,61,178,18,5,61,245,0,5,61,43,239,4,61,83,221,4,61,109,203,4,61,122,185,4,61,120,167,4,61,106,149,4,61,77,131,4,61,35,113,4,61,235,94,4,61,166,76,4,61,83,58,4,61,243,39,4,61,132,21,4,61,9,3,4,61,127,240,3,61,233,221,3,61,68,203,3,61,146,184,3,61,211,165,3,61,6,147,3,61,43,128,3,61,67,109,
3,61,77,90,3,61,74,71,3,61,58,52,3,61,27,33,3,61,240,13,3,61,183,250,2,61,113,231,2,61,29,212,2,61,187,192,2,61,77,173,2,61,208,153,2,61,71,134,2,61,176,114,2,61,12,95,2,61,90,75,2,61,155,55,2,61,207,35,2,61,245,15,2,61,14,252,1,61,25,232,1,61,24,212,1,61,9,192,1,61,236,171,1,61,195,151,1,61,140,131,1,61,72,111,1,61,246,90,1,61,151,70,1,61,43,50,1,61,178,29,1,61,44,9,1,61,152,244,0,61,248,223,0,61,74,203,0,61,143,182,0,61,198,161,0,61,241,140,0,61,14,120,0,61,30,99,0,61,33,78,0,61,23,57,0,61,0,36,
0,61,220,14,0,61,86,243,255,60,217,200,255,60,66,158,255,60,145,115,255,60,198,72,255,60,225,29,255,60,225,242,254,60,200,199,254,60,149,156,254,60,71,113,254,60,224,69,254,60,95,26,254,60,196,238,253,60,14,195,253,60,63,151,253,60,87,107,253,60,84,63,253,60,55,19,253,60,1,231,252,60,177,186,252,60,71,142,252,60,195,97,252,60,38,53,252,60,111,8,252,60,158,219,251,60,179,174,251,60,175,129,251,60,146,84,251,60,90,39,251,60,9,250,250,60,159,204,250,60,27,159,250,60,125,113,250,60,198,67,250,60,246,
21,250,60,12,232,249,60,9,186,249,60,236,139,249,60,182,93,249,60,102,47,249,60,254,0,249,60,123,210,248,60,224,163,248,60,43,117,248,60,93,70,248,60,118,23,248,60,118,232,247,60,92,185,247,60,41,138,247,60,221,90,247,60,120,43,247,60,250,251,246,60,99,204,246,60,179,156,246,60,233,108,246,60,7,61,246,60,12,13,246,60,247,220,245,60,202,172,245,60,132,124,245,60,37,76,245,60,173,27,245,60,28,235,244,60,115,186,244,60,176,137,244,60,213,88,244,60,225,39,244,60,212,246,243,60,175,197,243,60,113,148,
243,60,26,99,243,60,171,49,243,60,35,0,243,60,130,206,242,60,201,156,242,60,247,106,242,60,12,57,242,60,10,7,242,60,238,212,241,60,187,162,241,60,110,112,241,60,10,62,241,60,141,11,241,60,247,216,240,60,73,166,240,60,131,115,240,60,165,64,240,60,174,13,240,60,159,218,239,60,120,167,239,60,57,116,239,60,225,64,239,60,114,13,239,60,234,217,238,60,74,166,238,60,146,114,238,60,194,62,238,60,218,10,238,60,217,214,237,60,193,162,237,60,145,110,237,60,73,58,237,60,233,5,237,60,113,209,236,60,225,156,236,
60,58,104,236,60,122,51,236,60,163,254,235,60,180,201,235,60,173,148,235,60,143,95,235,60,89,42,235,60,11,245,234,60,165,191,234,60,40,138,234,60,148,84,234,60,231,30,234,60,35,233,233,60,72,179,233,60,85,125,233,60,75,71,233,60,41,17,233,60,240,218,232,60,159,164,232,60,55,110,232,60,183,55,232,60,33,1,232,60,115,202,231,60,173,147,231,60,209,92,231,60,221,37,231,60,210,238,230,60,176,183,230,60,118,128,230,60,38,73,230,60,190,17,230,60,63,218,229,60,170,162,229,60,253,106,229,60,57,51,229,60,94,
251,228,60,109,195,228,60,100,139,228,60,68,83,228,60,14,27,228,60,193,226,227,60,93,170,227,60,226,113,227,60,80,57,227,60,168,0,227,60,232,199,226,60,19,143,226,60,38,86,226,60,35,29,226,60,9,228,225,60,217,170,225,60,146,113,225,60,52,56,225,60,192,254,224,60,54,197,224,60,149,139,224,60,221,81,224,60,15,24,224,60,43,222,223,60,49,164,223,60,32,106,223,60,249,47,223,60,187,245,222,60,103,187,222,60,253,128,222,60,125,70,222,60,231,11,222,60,58,209,221,60,120,150,221,60,159,91,221,60,176,32,221,
60,171,229,220,60,145,170,220,60,96,111,220,60,25,52,220,60,188,248,219,60,74,189,219,60,193,129,219,60,35,70,219,60,111,10,219,60,165,206,218,60,197,146,218,60,207,86,218,60,196,26,218,60,163,222,217,60,109,162,217,60,32,102,217,60,190,41,217,60,71,237,216,60,186,176,216,60,23,116,216,60,95,55,216,60,146,250,215,60,175,189,215,60,183,128,215,60,169,67,215,60,134,6,215,60,77,201,214,60,255,139,214,60,156,78,214,60,36,17,214,60,151,211,213,60,244,149,213,60,60,88,213,60,111,26,213,60,141,220,212,60,
149,158,212,60,137,96,212,60,104,34,212,60,49,228,211,60,230,165,211,60,134,103,211,60,16,41,211,60,134,234,210,60,231,171,210,60,51,109,210,60,107,46,210,60,141,239,209,60,155,176,209,60,148,113,209,60,121,50,209,60,72,243,208,60,3,180,208,60,170,116,208,60,60,53,208,60,185,245,207,60,34,182,207,60,118,118,207,60,182,54,207,60,225,246,206,60,248,182,206,60,251,118,206,60,233,54,206,60,195,246,205,60,137,182,205,60,58,118,205,60,215,53,205,60,96,245,204,60,213,180,204,60,53,116,204,60,129,51,204,
60,186,242,203,60,222,177,203,60,238,112,203,60,234,47,203,60,210,238,202,60,167,173,202,60,103,108,202,60,19,43,202,60,172,233,201,60,49,168,201,60,162,102,201,60,255,36,201,60,72,227,200,60,126,161,200,60,160,95,200,60,174,29,200,60,168,219,199,60,144,153,199,60,99,87,199,60,35,21,199,60,207,210,198,60,104,144,198,60,238,77,198,60,96,11,198,60,190,200,197,60,10,134,197,60,65,67,197,60,102,0,197,60,119,189,196,60,118,122,196,60,96,55,196,60,56,244,195,60,253,176,195,60,174,109,195,60,76,42,195,60,
215,230,194,60,79,163,194,60,181,95,194,60,7,28,194,60,70,216,193,60,114,148,193,60,140,80,193,60,146,12,193,60,134,200,192,60,103,132,192,60,53,64,192,60,240,251,191,60,153,183,191,60,47,115,191,60,178,46,191,60,35,234,190,60,129,165,190,60,205,96,190,60,6,28,190,60,44,215,189,60,64,146,189,60,66,77,189,60,49,8,189,60,14,195,188,60,216,125,188,60,144,56,188,60,54,243,187,60,202,173,187,60,75,104,187,60,186,34,187,60,23,221,186,60,98,151,186,60,155,81,186,60,194,11,186,60,214,197,185,60,217,127,185,
60,202,57,185,60,169,243,184,60,117,173,184,60,48,103,184,60,217,32,184,60,113,218,183,60,246,147,183,60,106,77,183,60,204,6,183,60,28,192,182,60,90,121,182,60,135,50,182,60,163,235,181,60,172,164,181,60,165,93,181,60,139,22,181,60,96,207,180,60,36,136,180,60,214,64,180,60,119,249,179,60,7,178,179,60,133,106,179,60,242,34,179,60,78,219,178,60,152,147,178,60,210,75,178,60,250,3,178,60,17,188,177,60,22,116,177,60,11,44,177,60,239,227,176,60,193,155,176,60,131,83,176,60,52,11,176,60,212,194,175,60,99,
122,175,60,225,49,175,60,78,233,174,60,171,160,174,60,246,87,174,60,49,15,174,60,92,198,173,60,117,125,173,60,126,52,173,60,119,235,172,60,94,162,172,60,54,89,172,60,253,15,172,60,179,198,171,60,89,125,171,60,238,51,171,60,115,234,170,60,232,160,170,60,76,87,170,60,161,13,170,60,229,195,169,60,24,122,169,60,60,48,169,60,79,230,168,60,82,156,168,60,69,82,168,60,41,8,168,60,252,189,167,60,191,115,167,60,114,41,167,60,21,223,166,60,168,148,166,60,44,74,166,60,159,255,165,60,3,181,165,60,87,106,165,60,
156,31,165,60,208,212,164,60,245,137,164,60,10,63,164,60,16,244,163,60,6,169,163,60,237,93,163,60,196,18,163,60,140,199,162,60,68,124,162,60,237,48,162,60,134,229,161,60,16,154,161,60,139,78,161,60,247,2,161,60,83,183,160,60,160,107,160,60,222,31,160,60,13,212,159,60,44,136,159,60,61,60,159,60,62,240,158,60,49,164,158,60,20,88,158,60,233,11,158,60,175,191,157,60,102,115,157,60,14,39,157,60,167,218,156,60,49,142,156,60,173,65,156,60,26,245,155,60,120,168,155,60,199,91,155,60,8,15,155,60,59,194,154,
60,95,117,154,60,116,40,154,60,123,219,153,60,115,142,153,60,93,65,153,60,57,244,152,60,6,167,152,60,197,89,152,60,118,12,152,60,24,191,151,60,173,113,151,60,51,36,151,60,170,214,150,60,20,137,150,60,112,59,150,60,190,237,149,60,253,159,149,60,47,82,149,60,83,4,149,60,105,182,148,60,113,104,148,60,107,26,148,60,87,204,147,60,54,126,147,60,6,48,147,60,201,225,146,60,127,147,146,60,39,69,146,60,193,246,145,60,77,168,145,60,204,89,145,60,62,11,145,60,162,188,144,60,249,109,144,60,66,31,144,60,126,208,
143,60,172,129,143,60,206,50,143,60,225,227,142,60,232,148,142,60,226,69,142,60,206,246,141,60,173,167,141,60,127,88,141,60,69,9,141,60,253,185,140,60,168,106,140,60,70,27,140,60,215,203,139,60,91,124,139,60,211,44,139,60,61,221,138,60,155,141,138,60,236,61,138,60,48,238,137,60,104,158,137,60,147,78,137,60,178,254,136,60,195,174,136,60,201,94,136,60,193,14,136,60,174,190,135,60,141,110,135,60,97,30,135,60,40,206,134,60,227,125,134,60,145,45,134,60,51,221,133,60,201,140,133,60,83,60,133,60,208,235,
132,60,65,155,132,60,167,74,132,60,0,250,131,60,77,169,131,60,142,88,131,60,195,7,131,60,237,182,130,60,10,102,130,60,28,21,130,60,33,196,129,60,27,115,129,60,9,34,129,60,236,208,128,60,195,127,128,60,142,46,128,60,154,186,127,60,2,24,127,60,83,117,126,60,141,210,125,60,175,47,125,60,187,140,124,60,176,233,123,60,143,70,123,60,87,163,122,60,8,0,122,60,162,92,121,60,38,185,120,60,148,21,120,60,235,113,119,60,45,206,118,60,87,42,118,60,108,134,117,60,107,226,116,60,84,62,116,60,39,154,115,60,228,245,
114,60,139,81,114,60,29,173,113,60,153,8,113,60,0,100,112,60,81,191,111,60,140,26,111,60,178,117,110,60,195,208,109,60,191,43,109,60,166,134,108,60,120,225,107,60,52,60,107,60,220,150,106,60,111,241,105,60,237,75,105,60,86,166,104,60,171,0,104,60,235,90,103,60,23,181,102,60,46,15,102,60,49,105,101,60,32,195,100,60,251,28,100,60,193,118,99,60,115,208,98,60,18,42,98,60,156,131,97,60,18,221,96,60,117,54,96,60,196,143,95,60,0,233,94,60,39,66,94,60,60,155,93,60,61,244,92,60,42,77,92,60,4,166,91,60,204,
254,90,60,127,87,90,60,32,176,89,60,174,8,89,60,41,97,88,60,145,185,87,60,230,17,87,60,41,106,86,60,89,194,85,60,118,26,85,60,129,114,84,60,121,202,83,60,96,34,83,60,51,122,82,60,245,209,81,60,164,41,81,60,66,129,80,60,205,216,79,60,71,48,79,60,174,135,78,60,4,223,77,60,72,54,77,60,122,141,76,60,155,228,75,60,171,59,75,60,169,146,74,60,149,233,73,60,113,64,73,60,59,151,72,60,244,237,71,60,156,68,71,60,51,155,70,60,185,241,69,60,46,72,69,60,146,158,68,60,230,244,67,60,41,75,67,60,91,161,66,60,125,
247,65,60,143,77,65,60,144,163,64,60,129,249,63,60,98,79,63,60,50,165,62,60,243,250,61,60,164,80,61,60,68,166,60,60,213,251,59,60,86,81,59,60,199,166,58,60,41,252,57,60,123,81,57,60,190,166,56,60,241,251,55,60,21,81,55,60,42,166,54,60,48,251,53,60,38,80,53,60,13,165,52,60,230,249,51,60,175,78,51,60,106,163,50,60,22,248,49,60,179,76,49,60,66,161,48,60,194,245,47,60,51,74,47,60,151,158,46,60,235,242,45,60,50,71,45,60,107,155,44,60,149,239,43,60,177,67,43,60,192,151,42,60,192,235,41,60,179,63,41,60,
152,147,40,60,111,231,39,60,57,59,39,60,245,142,38,60,164,226,37,60,69,54,37,60,217,137,36,60,96,221,35,60,218,48,35,60,70,132,34,60,166,215,33,60,248,42,33,60,62,126,32,60,119,209,31,60,163,36,31,60,195,119,30,60,214,202,29,60,220,29,29,60,215,112,28,60,196,195,27,60,166,22,27,60,123,105,26,60,68,188,25,60,1,15,25,60,178,97,24,60,87,180,23,60,241,6,23,60,126,89,22,60,0,172,21,60,118,254,20,60,225,80,20,60,64,163,19,60,148,245,18,60,220,71,18,60,26,154,17,60,76,236,16,60,115,62,16,60,142,144,15,60,
159,226,14,60,165,52,14,60,160,134,13,60,145,216,12,60,119,42,12,60,82,124,11,60,34,206,10,60,233,31,10,60,164,113,9,60,86,195,8,60,253,20,8,60,154,102,7,60,45,184,6,60,182,9,6,60,53,91,5,60,171,172,4,60,22,254,3,60,120,79,3,60,208,160,2,60,30,242,1,60,99,67,1,60,159,148,0,60,162,203,255,59,243,109,254,59,51,16,253,59,96,178,251,59,123,84,250,59,132,246,248,59,123,152,247,59,97,58,246,59,53,220,244,59,247,125,243,59,169,31,242,59,73,193,240,59,216,98,239,59,87,4,238,59,197,165,236,59,34,71,235,59,
111,232,233,59,172,137,232,59,217,42,231,59,245,203,229,59,2,109,228,59,0,14,227,59,238,174,225,59,205,79,224,59,156,240,222,59,92,145,221,59,14,50,220,59,177,210,218,59,69,115,217,59,203,19,216,59,66,180,214,59,172,84,213,59,7,245,211,59,84,149,210,59,148,53,209,59,198,213,207,59,235,117,206,59,3,22,205,59,13,182,203,59,11,86,202,59,251,245,200,59,223,149,199,59,183,53,198,59,130,213,196,59,64,117,195,59,243,20,194,59,154,180,192,59,53,84,191,59,196,243,189,59,72,147,188,59,193,50,187,59,46,210,
185,59,144,113,184,59,231,16,183,59,52,176,181,59,118,79,180,59,173,238,178,59,218,141,177,59,253,44,176,59,22,204,174,59,37,107,173,59,43,10,172,59,39,169,170,59,25,72,169,59,2,231,167,59,226,133,166,59,185,36,165,59,135,195,163,59,76,98,162,59,9,1,161,59,189,159,159,59,105,62,158,59,13,221,156,59,169,123,155,59,62,26,154,59,202,184,152,59,79,87,151,59,205,245,149,59,67,148,148,59,179,50,147,59,27,209,145,59,125,111,144,59,216,13,143,59,45,172,141,59,123,74,140,59,195,232,138,59,5,135,137,59,65,
37,136,59,119,195,134,59,168,97,133,59,211,255,131,59,249,157,130,59,26,60,129,59,107,180,127,59,153,240,124,59,189,44,122,59,216,104,119,59,234,164,116,59,244,224,113,59,246,28,111,59,239,88,108,59,225,148,105,59,203,208,102,59,175,12,100,59,139,72,97,59,97,132,94,59,49,192,91,59,251,251,88,59,192,55,86,59,127,115,83,59,57,175,80,59,238,234,77,59,159,38,75,59,75,98,72,59,244,157,69,59,153,217,66,59,59,21,64,59,218,80,61,59,119,140,58,59,17,200,55,59,169,3,53,59,63,63,50,59,211,122,47,59,103,182,
44,59,249,241,41,59,139,45,39,59,29,105,36,59,174,164,33,59,64,224,30,59,210,27,28,59,101,87,25,59,250,146,22,59,143,206,19,59,39,10,17,59,193,69,14,59,92,129,11,59,251,188,8,59,156,248,5,59,65,52,3,59,233,111,0,59,42,87,251,58,137,206,245,58,242,69,240,58,100,189,234,58,224,52,229,58,102,172,223,58,248,35,218,58,149,155,212,58,63,19,207,58,245,138,201,58,185,2,196,58,139,122,190,58,107,242,184,58,91,106,179,58,90,226,173,58,106,90,168,58,139,210,162,58,189,74,157,58,1,195,151,58,88,59,146,58,195,
179,140,58,65,44,135,58,212,164,129,58,247,58,120,58,114,44,109,58,26,30,98,58,239,15,87,58,243,1,76,58,38,244,64,58,139,230,53,58,34,217,42,58,237,203,31,58,236,190,20,58,34,178,9,58,27,75,253,57,100,50,231,57,31,26,209,57,79,2,187,57,246,234,164,57,23,212,142,57,103,123,113,57,158,79,69,57,213,36,25,57,37,246,217,56,181,164,129,56,142,85,165,55,25,223,187,183,191,66,135,184,125,139,223,184,252,232,27,185,19,11,72,185,254,43,116,185,221,37,144,185,33,53,166,185,200,67,188,185,208,81,210,185,55,95,
232,185,250,107,254,185,12,60,10,186,198,65,21,186,44,71,32,186,59,76,43,186,242,80,54,186,81,85,65,186,85,89,76,186,255,92,87,186,76,96,98,186,60,99,109,186,206,101,120,186,0,180,129,186,232,52,135,186,159,181,140,186,37,54,146,186,121,182,151,186,154,54,157,186,135,182,162,186,65,54,168,186,198,181,173,186,22,53,179,186,48,180,184,186,21,51,190,186,194,177,195,186,56,48,201,186,118,174,206,186,123,44,212,186,72,170,217,186,219,39,223,186,51,165,228,186,80,34,234,186,51,159,239,186,217,27,245,186,
66,152,250,186,55,10,0,187,47,200,2,187,7,134,5,187,191,67,8,187,88,1,11,187,209,190,13,187,42,124,16,187,98,57,19,187,121,246,21,187,111,179,24,187,68,112,27,187,247,44,30,187,135,233,32,187,246,165,35,187,66,98,38,187,107,30,41,187,112,218,43,187,83,150,46,187,17,82,49,187,172,13,52,187,34,201,54,187,115,132,57,187,160,63,60,187,167,250,62,187,137,181,65,187,70,112,68,187,220,42,71,187,76,229,73,187,149,159,76,187,183,89,79,187,178,19,82,187,134,205,84,187,50,135,87,187,182,64,90,187,17,250,92,
187,68,179,95,187,78,108,98,187,47,37,101,187,230,221,103,187,116,150,106,187,215,78,109,187,16,7,112,187,31,191,114,187,2,119,117,187,187,46,120,187,72,230,122,187,169,157,125,187,111,42,128,187,244,133,129,187,98,225,130,187,185,60,132,187,251,151,133,187,37,243,134,187,56,78,136,187,53,169,137,187,26,4,139,187,232,94,140,187,159,185,141,187,62,20,143,187,197,110,144,187,53,201,145,187,140,35,147,187,203,125,148,187,242,215,149,187,1,50,151,187,247,139,152,187,212,229,153,187,153,63,155,187,68,
153,156,187,215,242,157,187,80,76,159,187,175,165,160,187,245,254,161,187,34,88,163,187,52,177,164,187,45,10,166,187,11,99,167,187,208,187,168,187,122,20,170,187,9,109,171,187,125,197,172,187,215,29,174,187,22,118,175,187,58,206,176,187,66,38,178,187,47,126,179,187,1,214,180,187,183,45,182,187,81,133,183,187,207,220,184,187,49,52,186,187,119,139,187,187,160,226,188,187,173,57,190,187,158,144,191,187,113,231,192,187,40,62,194,187,194,148,195,187,62,235,196,187,157,65,198,187,223,151,199,187,3,238,
200,187,9,68,202,187,241,153,203,187,188,239,204,187,104,69,206,187,246,154,207,187,101,240,208,187,182,69,210,187,232,154,211,187,251,239,212,187,239,68,214,187,197,153,215,187,122,238,216,187,17,67,218,187,136,151,219,187,223,235,220,187,22,64,222,187,45,148,223,187,37,232,224,187,251,59,226,187,178,143,227,187,72,227,228,187,190,54,230,187,18,138,231,187,70,221,232,187,88,48,234,187,74,131,235,187,26,214,236,187,200,40,238,187,85,123,239,187,193,205,240,187,10,32,242,187,49,114,243,187,54,196,
244,187,25,22,246,187,217,103,247,187,119,185,248,187,242,10,250,187,74,92,251,187,127,173,252,187,145,254,253,187,128,79,255,187,38,80,0,188,122,248,0,188,188,160,1,188,236,72,2,188,10,241,2,188,22,153,3,188,17,65,4,188,248,232,4,188,206,144,5,188,145,56,6,188,66,224,6,188,225,135,7,188,109,47,8,188,230,214,8,188,77,126,9,188,161,37,10,188,226,204,10,188,17,116,11,188,44,27,12,188,53,194,12,188,42,105,13,188,12,16,14,188,219,182,14,188,151,93,15,188,64,4,16,188,213,170,16,188,87,81,17,188,197,247,
17,188,31,158,18,188,102,68,19,188,153,234,19,188,185,144,20,188,196,54,21,188,188,220,21,188,159,130,22,188,111,40,23,188,42,206,23,188,209,115,24,188,100,25,25,188,227,190,25,188,77,100,26,188,163,9,27,188,228,174,27,188,17,84,28,188,41,249,28,188,44,158,29,188,26,67,30,188,244,231,30,188,184,140,31,188,104,49,32,188,2,214,32,188,136,122,33,188,248,30,34,188,83,195,34,188,153,103,35,188,201,11,36,188,228,175,36,188,233,83,37,188,217,247,37,188,179,155,38,188,119,63,39,188,37,227,39,188,190,134,
40,188,65,42,41,188,173,205,41,188,4,113,42,188,69,20,43,188,111,183,43,188,131,90,44,188,129,253,44,188,104,160,45,188,57,67,46,188,244,229,46,188,152,136,47,188,37,43,48,188,155,205,48,188,251,111,49,188,68,18,50,188,118,180,50,188,145,86,51,188,149,248,51,188,130,154,52,188,88,60,53,188,22,222,53,188,190,127,54,188,78,33,55,188,198,194,55,188,39,100,56,188,112,5,57,188,162,166,57,188,188,71,58,188,191,232,58,188,169,137,59,188,124,42,60,188,55,203,60,188,217,107,61,188,100,12,62,188,215,172,62,
188,49,77,63,188,115,237,63,188,157,141,64,188,174,45,65,188,167,205,65,188,136,109,66,188,79,13,67,188,255,172,67,188,149,76,68,188,19,236,68,188,120,139,69,188,196,42,70,188,247,201,70,188,17,105,71,188,17,8,72,188,249,166,72,188,200,69,73,188,125,228,73,188,25,131,74,188,155,33,75,188,4,192,75,188,84,94,76,188,138,252,76,188,166,154,77,188,168,56,78,188,145,214,78,188,96,116,79,188,21,18,80,188,176,175,80,188,49,77,81,188,151,234,81,188,228,135,82,188,22,37,83,188,46,194,83,188,44,95,84,188,16,
252,84,188,216,152,85,188,135,53,86,188,26,210,86,188,148,110,87,188,242,10,88,188,53,167,88,188,94,67,89,188,108,223,89,188,95,123,90,188,54,23,91,188,243,178,91,188,149,78,92,188,27,234,92,188,134,133,93,188,213,32,94,188,10,188,94,188,34,87,95,188,31,242,95,188,1,141,96,188,199,39,97,188,113,194,97,188,0,93,98,188,114,247,98,188,201,145,99,188,4,44,100,188,34,198,100,188,37,96,101,188,11,250,101,188,214,147,102,188,132,45,103,188,21,199,103,188,139,96,104,188,227,249,104,188,32,147,105,188,63,
44,106,188,66,197,106,188,41,94,107,188,242,246,107,188,159,143,108,188,47,40,109,188,162,192,109,188,248,88,110,188,49,241,110,188,77,137,111,188,75,33,112,188,45,185,112,188,241,80,113,188,151,232,113,188,33,128,114,188,140,23,115,188,219,174,115,188,11,70,116,188,30,221,116,188,20,116,117,188,235,10,118,188,165,161,118,188,64,56,119,188,190,206,119,188,30,101,120,188,96,251,120,188,131,145,121,188,136,39,122,188,111,189,122,188,56,83,123,188,227,232,123,188,110,126,124,188,220,19,125,188,43,169,
125,188,91,62,126,188,109,211,126,188,95,104,127,188,51,253,127,188,244,72,128,188,63,147,128,188,123,221,128,188,167,39,129,188,196,113,129,188,209,187,129,188,206,5,130,188,188,79,130,188,154,153,130,188,105,227,130,188,40,45,131,188,215,118,131,188,118,192,131,188,5,10,132,188,133,83,132,188,244,156,132,188,84,230,132,188,164,47,133,188,228,120,133,188,20,194,133,188,52,11,134,188,68,84,134,188,68,157,134,188,52,230,134,188,19,47,135,188,227,119,135,188,162,192,135,188,81,9,136,188,240,81,136,
188,127,154,136,188,253,226,136,188,107,43,137,188,201,115,137,188,22,188,137,188,83,4,138,188,127,76,138,188,155,148,138,188,167,220,138,188,162,36,139,188,140,108,139,188,102,180,139,188,47,252,139,188,232,67,140,188,143,139,140,188,39,211,140,188,173,26,141,188,35,98,141,188,136,169,141,188,220,240,141,188,31,56,142,188,82,127,142,188,115,198,142,188,132,13,143,188,132,84,143,188,115,155,143,188,80,226,143,188,29,41,144,188,217,111,144,188,131,182,144,188,29,253,144,188,165,67,145,188,28,138,145,
188,130,208,145,188,215,22,146,188,27,93,146,188,77,163,146,188,110,233,146,188,125,47,147,188,124,117,147,188,105,187,147,188,68,1,148,188,14,71,148,188,199,140,148,188,110,210,148,188,3,24,149,188,135,93,149,188,250,162,149,188,90,232,149,188,170,45,150,188,231,114,150,188,19,184,150,188,45,253,150,188,54,66,151,188,44,135,151,188,17,204,151,188,228,16,152,188,165,85,152,188,84,154,152,188,242,222,152,188,125,35,153,188,247,103,153,188,94,172,153,188,180,240,153,188,247,52,154,188,41,121,154,188,
72,189,154,188,85,1,155,188,81,69,155,188,57,137,155,188,16,205,155,188,213,16,156,188,135,84,156,188,39,152,156,188,181,219,156,188,48,31,157,188,153,98,157,188,240,165,157,188,52,233,157,188,102,44,158,188,133,111,158,188,146,178,158,188,140,245,158,188,116,56,159,188,74,123,159,188,12,190,159,188,188,0,160,188,90,67,160,188,229,133,160,188,93,200,160,188,194,10,161,188,21,77,161,188,85,143,161,188,130,209,161,188,156,19,162,188,163,85,162,188,152,151,162,188,122,217,162,188,72,27,163,188,4,93,
163,188,173,158,163,188,67,224,163,188,198,33,164,188,53,99,164,188,146,164,164,188,220,229,164,188,18,39,165,188,53,104,165,188,69,169,165,188,66,234,165,188,44,43,166,188,3,108,166,188,198,172,166,188,118,237,166,188,18,46,167,188,155,110,167,188,17,175,167,188,116,239,167,188,195,47,168,188,254,111,168,188,38,176,168,188,59,240,168,188,60,48,169,188,42,112,169,188,4,176,169,188,202,239,169,188,125,47,170,188,28,111,170,188,167,174,170,188,31,238,170,188,131,45,171,188,211,108,171,188,16,172,171,
188,56,235,171,188,77,42,172,188,78,105,172,188,59,168,172,188,21,231,172,188,218,37,173,188,139,100,173,188,41,163,173,188,178,225,173,188,40,32,174,188,137,94,174,188,215,156,174,188,16,219,174,188,53,25,175,188,70,87,175,188,67,149,175,188,44,211,175,188,0,17,176,188,192,78,176,188,109,140,176,188,4,202,176,188,136,7,177,188,247,68,177,188,82,130,177,188,152,191,177,188,202,252,177,188,232,57,178,188,241,118,178,188,230,179,178,188,198,240,178,188,146,45,179,188,73,106,179,188,236,166,179,188,
122,227,179,188,243,31,180,188,88,92,180,188,168,152,180,188,228,212,180,188,10,17,181,188,29,77,181,188,26,137,181,188,2,197,181,188,214,0,182,188,149,60,182,188,64,120,182,188,213,179,182,188,85,239,182,188,193,42,183,188,23,102,183,188,89,161,183,188,134,220,183,188,158,23,184,188,160,82,184,188,142,141,184,188,103,200,184,188,42,3,185,188,217,61,185,188,114,120,185,188,246,178,185,188,101,237,185,188,191,39,186,188,3,98,186,188,51,156,186,188,77,214,186,188,82,16,187,188,65,74,187,188,27,132,
187,188,224,189,187,188,144,247,187,188,42,49,188,188,175,106,188,188,30,164,188,188,120,221,188,188,188,22,189,188,235,79,189,188,4,137,189,188,8,194,189,188,246,250,189,188,206,51,190,188,145,108,190,188,63,165,190,188,215,221,190,188,89,22,191,188,197,78,191,188,28,135,191,188,92,191,191,188,136,247,191,188,157,47,192,188,156,103,192,188,134,159,192,188,90,215,192,188,24,15,193,188,192,70,193,188,82,126,193,188,207,181,193,188,53,237,193,188,134,36,194,188,192,91,194,188,228,146,194,188,243,201,
194,188,235,0,195,188,205,55,195,188,153,110,195,188,79,165,195,188,239,219,195,188,121,18,196,188,237,72,196,188,74,127,196,188,145,181,196,188,194,235,196,188,221,33,197,188,225,87,197,188,207,141,197,188,167,195,197,188,104,249,197,188,19,47,198,188,168,100,198,188,38,154,198,188,142,207,198,188,224,4,199,188,27,58,199,188,63,111,199,188,77,164,199,188,69,217,199,188,38,14,200,188,240,66,200,188,164,119,200,188,65,172,200,188,200,224,200,188,55,21,201,188,145,73,201,188,211,125,201,188,255,177,
201,188,21,230,201,188,19,26,202,188,251,77,202,188,204,129,202,188,134,181,202,188,41,233,202,188,182,28,203,188,43,80,203,188,138,131,203,188,210,182,203,188,3,234,203,188,29,29,204,188,32,80,204,188,12,131,204,188,225,181,204,188,159,232,204,188,71,27,205,188,215,77,205,188,80,128,205,188,178,178,205,188,252,228,205,188,48,23,206,188,77,73,206,188,82,123,206,188,64,173,206,188,23,223,206,188,215,16,207,188,128,66,207,188,17,116,207,188,139,165,207,188,238,214,207,188,58,8,208,188,110,57,208,188,
139,106,208,188,144,155,208,188,127,204,208,188,85,253,208,188,21,46,209,188,189,94,209,188,77,143,209,188,198,191,209,188,40,240,209,188,114,32,210,188,164,80,210,188,191,128,210,188,194,176,210,188,174,224,210,188,131,16,211,188,63,64,211,188,228,111,211,188,114,159,211,188,231,206,211,188,69,254,211,188,140,45,212,188,186,92,212,188,209,139,212,188,208,186,212,188,184,233,212,188,135,24,213,188,63,71,213,188,223,117,213,188,103,164,213,188,216,210,213,188,48,1,214,188,113,47,214,188,153,93,214,
188,170,139,214,188,163,185,214,188,132,231,214,188,77,21,215,188,253,66,215,188,150,112,215,188,23,158,215,188,128,203,215,188,209,248,215,188,10,38,216,188,42,83,216,188,51,128,216,188,35,173,216,188,252,217,216,188,188,6,217,188,100,51,217,188,243,95,217,188,107,140,217,188,202,184,217,188,18,229,217,188,64,17,218,188,87,61,218,188,85,105,218,188,59,149,218,188,9,193,218,188,191,236,218,188,92,24,219,188,224,67,219,188,77,111,219,188,161,154,219,188,220,197,219,188,255,240,219,188,10,28,220,188,
252,70,220,188,214,113,220,188,151,156,220,188,64,199,220,188,208,241,220,188,72,28,221,188,167,70,221,188,238,112,221,188,28,155,221,188,49,197,221,188,46,239,221,188,19,25,222,188,222,66,222,188,145,108,222,188,43,150,222,188,173,191,222,188,22,233,222,188,102,18,223,188,157,59,223,188,188,100,223,188,194,141,223,188,175,182,223,188,132,223,223,188,63,8,224,188,226,48,224,188,108,89,224,188,221,129,224,188,53,170,224,188,117,210,224,188,155,250,224,188,169,34,225,188,158,74,225,188,121,114,225,
188,60,154,225,188,230,193,225,188,119,233,225,188,239,16,226,188,78,56,226,188,148,95,226,188,192,134,226,188,212,173,226,188,207,212,226,188,177,251,226,188,121,34,227,188,41,73,227,188,191,111,227,188,60,150,227,188,160,188,227,188,235,226,227,188,29,9,228,188,54,47,228,188,53,85,228,188,27,123,228,188,232,160,228,188,156,198,228,188,55,236,228,188,184,17,229,188,32,55,229,188,111,92,229,188,164,129,229,188,192,166,229,188,195,203,229,188,172,240,229,188,124,21,230,188,51,58,230,188,209,94,230,
188,84,131,230,188,191,167,230,188,16,204,230,188,72,240,230,188,102,20,231,188,107,56,231,188,86,92,231,188,40,128,231,188,224,163,231,188,127,199,231,188,5,235,231,188,113,14,232,188,195,49,232,188,252,84,232,188,27,120,232,188,32,155,232,188,12,190,232,188,223,224,232,188,151,3,233,188,55,38,233,188,188,72,233,188,40,107,233,188,122,141,233,188,179,175,233,188,210,209,233,188,215,243,233,188,194,21,234,188,148,55,234,188,76,89,234,188,234,122,234,188,111,156,234,188,217,189,234,188,42,223,234,
188,98,0,235,188,127,33,235,188,130,66,235,188,108,99,235,188,60,132,235,188,242,164,235,188,142,197,235,188,17,230,235,188,121,6,236,188,200,38,236,188,252,70,236,188,23,103,236,188,24,135,236,188,255,166,236,188,204,198,236,188,127,230,236,188,24,6,237,188,151,37,237,188,252,68,237,188,71,100,237,188,120,131,237,188,143,162,237,188,140,193,237,188,111,224,237,188,56,255,237,188,231,29,238,188,123,60,238,188,246,90,238,188,87,121,238,188,157,151,238,188,201,181,238,188,220,211,238,188,212,241,238,
188,178,15,239,188,118,45,239,188,31,75,239,188,175,104,239,188,36,134,239,188,127,163,239,188,192,192,239,188,231,221,239,188,243,250,239,188,230,23,240,188,190,52,240,188,123,81,240,188,31,110,240,188,168,138,240,188,23,167,240,188,108,195,240,188,166,223,240,188,198,251,240,188,204,23,241,188,184,51,241,188,137,79,241,188,63,107,241,188,220,134,241,188,94,162,241,188,198,189,241,188,19,217,241,188,70,244,241,188,94,15,242,188,92,42,242,188,64,69,242,188,9,96,242,188,184,122,242,188,77,149,242,
188,199,175,242,188,38,202,242,188,107,228,242,188,150,254,242,188,166,24,243,188,155,50,243,188,118,76,243,188,55,102,243,188,221,127,243,188,105,153,243,188,218,178,243,188,48,204,243,188,108,229,243,188,141,254,243,188,148,23,244,188,128,48,244,188,82,73,244,188,9,98,244,188,166,122,244,188,39,147,244,188,143,171,244,188,219,195,244,188,13,220,244,188,37,244,244,188,33,12,245,188,4,36,245,188,203,59,245,188,120,83,245,188,10,107,245,188,129,130,245,188,222,153,245,188,32,177,245,188,71,200,245,
188,84,223,245,188,70,246,245,188,29,13,246,188,218,35,246,188,123,58,246,188,2,81,246,188,111,103,246,188,192,125,246,188,247,147,246,188,19,170,246,188,20,192,246,188,250,213,246,188,198,235,246,188,119,1,247,188,13,23,247,188,136,44,247,188,232,65,247,188,46,87,247,188,89,108,247,188,105,129,247,188,94,150,247,188,56,171,247,188,247,191,247,188,156,212,247,188,37,233,247,188,148,253,247,188,232,17,248,188,33,38,248,188,63,58,248,188,66,78,248,188,43,98,248,188,248,117,248,188,171,137,248,188,66,
157,248,188,191,176,248,188,33,196,248,188,103,215,248,188,147,234,248,188,164,253,248,188,154,16,249,188,117,35,249,188,53,54,249,188,218,72,249,188,100,91,249,188,212,109,249,188,40,128,249,188,97,146,249,188,127,164,249,188,130,182,249,188,106,200,249,188,56,218,249,188,234,235,249,188,129,253,249,188,253,14,250,188,94,32,250,188,164,49,250,188,207,66,250,188,223,83,250,188,212,100,250,188,174,117,250,188,109,134,250,188,16,151,250,188,153,167,250,188,7,184,250,188,89,200,250,188,145,216,250,188,
173,232,250,188,175,248,250,188,149,8,251,188,96,24,251,188,16,40,251,188,165,55,251,188,31,71,251,188,125,86,251,188,193,101,251,188,234,116,251,188,247,131,251,188,233,146,251,188,192,161,251,188,124,176,251,188,29,191,251,188,163,205,251,188,13,220,251,188,93,234,251,188,145,248,251,188,170,6,252,188,168,20,252,188,139,34,252,188,83,48,252,188,255,61,252,188,145,75,252,188,7,89,252,188,98,102,252,188,161,115,252,188,198,128,252,188,208,141,252,188,190,154,252,188,145,167,252,188,73,180,252,188,
229,192,252,188,103,205,252,188,205,217,252,188,24,230,252,188,72,242,252,188,93,254,252,188,86,10,253,188,52,22,253,188,247,33,253,188,159,45,253,188,44,57,253,188,157,68,253,188,243,79,253,188,46,91,253,188,78,102,253,188,82,113,253,188,59,124,253,188,9,135,253,188,188,145,253,188,83,156,253,188,208,166,253,188,49,177,253,188,118,187,253,188,161,197,253,188,176,207,253,188,164,217,253,188,125,227,253,188,58,237,253,188,221,246,253,188,100,0,254,188,207,9,254,188,32,19,254,188,85,28,254,188,111,
37,254,188,110,46,254,188,81,55,254,188,25,64,254,188,198,72,254,188,88,81,254,188,206,89,254,188,41,98,254,188,105,106,254,188,142,114,254,188,151,122,254,188,133,130,254,188,88,138,254,188,15,146,254,188,171,153,254,188,44,161,254,188,146,168,254,188,220,175,254,188,11,183,254,188,31,190,254,188,24,197,254,188,245,203,254,188,183,210,254,188,93,217,254,188,233,223,254,188,89,230,254,188,174,236,254,188,231,242,254,188,6,249,254,188,9,255,254,188,240,4,255,188,189,10,255,188,110,16,255,188,4,22,
255,188,126,27,255,188,222,32,255,188,34,38,255,188,74,43,255,188,88,48,255,188,74,53,255,188,33,58,255,188,221,62,255,188,125,67,255,188,2,72,255,188,108,76,255,188,186,80,255,188,238,84,255,188,6,89,255,188,2,93,255,188,228,96,255,188,170,100,255,188,85,104,255,188,228,107,255,188,89,111,255,188,178,114,255,188,240,117,255,188,18,121,255,188,26,124,255,188,6,127,255,188,214,129,255,188,140,132,255,188,38,135,255,188,165,137,255,188,9,140,255,188,81,142,255,188,127,144,255,188,145,146,255,188,135,
148,255,188,99,150,255,188,35,152,255,188,200,153,255,188,82,155,255,188,192,156,255,188,20,158,255,188,76,159,255,188,104,160,255,188,106,161,255,188,80,162,255,188,27,163,255,188,203,163,255,188,96,164,255,188,217,164,255,188,56,165,255,188,123,165,255,188,163,165,255,188,175,165,255,188,160,165,255,188,119,165,255,188,50,165,255,188,209,164,255,188,86,164,255,188,191,163,255,188,13,163,255,188,64,162,255,188,88,161,255,188,85,160,255,188,54,159,255,188,253,157,255,188,168,156,255,188,55,155,255,
188,172,153,255,188,6,152,255,188,68,150,255,188,103,148,255,188,111,146,255,188,92,144,255,188,46,142,255,188,229,139,255,188,128,137,255,188,1,135,255,188,102,132,255,188,176,129,255,188,223,126,255,188,243,123,255,188,235,120,255,188,201,117,255,188,139,114,255,188,51,111,255,188,191,107,255,188,48,104,255,188,134,100,255,188,193,96,255,188,225,92,255,188,230,88,255,188,207,84,255,188,158,80,255,188,81,76,255,188,234,71,255,188,103,67,255,188,202,62,255,188,17,58,255,188,61,53,255,188,78,48,255,
188,68,43,255,188,32,38,255,188,224,32,255,188,133,27,255,188,15,22,255,188,126,16,255,188,210,10,255,188,10,5,255,188,40,255,254,188,43,249,254,188,19,243,254,188,224,236,254,188,146,230,254,188,41,224,254,188,165,217,254,188,6,211,254,188,76,204,254,188,119,197,254,188,136,190,254,188,125,183,254,188,87,176,254,188,22,169,254,188,187,161,254,188,68,154,254,188,179,146,254,188,6,139,254,188,63,131,254,188,93,123,254,188,96,115,254,188,72,107,254,188,21,99,254,188,199,90,254,188,95,82,254,188,219,
73,254,188,61,65,254,188,132,56,254,188,175,47,254,188,193,38,254,188,183,29,254,188,146,20,254,188,83,11,254,188,248,1,254,188,131,248,253,188,244,238,253,188,73,229,253,188,131,219,253,188,163,209,253,188,168,199,253,188,146,189,253,188,98,179,253,188,22,169,253,188,176,158,253,188,47,148,253,188,148,137,253,188,222,126,253,188,12,116,253,188,33,105,253,188,26,94,253,188,249,82,253,188,189,71,253,188,102,60,253,188,245,48,253,188,105,37,253,188,195,25,253,188,1,14,253,188,37,2,253,188,47,246,252,
188,29,234,252,188,242,221,252,188,171,209,252,188,74,197,252,188,206,184,252,188,56,172,252,188,135,159,252,188,187,146,252,188,213,133,252,188,213,120,252,188,185,107,252,188,132,94,252,188,51,81,252,188,200,67,252,188,67,54,252,188,163,40,252,188,232,26,252,188,19,13,252,188,36,255,251,188,26,241,251,188,245,226,251,188,182,212,251,188,93,198,251,188,233,183,251,188,91,169,251,188,178,154,251,188,239,139,251,188,17,125,251,188,25,110,251,188,7,95,251,188,218,79,251,188,146,64,251,188,49,49,251,
188,181,33,251,188,30,18,251,188,110,2,251,188,162,242,250,188,189,226,250,188,189,210,250,188,163,194,250,188,111,178,250,188,32,162,250,188,183,145,250,188,52,129,250,188,150,112,250,188,222,95,250,188,12,79,250,188,32,62,250,188,25,45,250,188,249,27,250,188,190,10,250,188,104,249,249,188,249,231,249,188,111,214,249,188,204,196,249,188,14,179,249,188,53,161,249,188,67,143,249,188,55,125,249,188,16,107,249,188,208,88,249,188,117,70,249,188,0,52,249,188,113,33,249,188,200,14,249,188,5,252,248,188,
40,233,248,188,48,214,248,188,31,195,248,188,244,175,248,188,174,156,248,188,79,137,248,188,214,117,248,188,66,98,248,188,149,78,248,188,206,58,248,188,237,38,248,188,241,18,248,188,220,254,247,188,173,234,247,188,100,214,247,188,1,194,247,188,133,173,247,188,238,152,247,188,61,132,247,188,115,111,247,188,143,90,247,188,145,69,247,188,121,48,247,188,71,27,247,188,252,5,247,188,150,240,246,188,23,219,246,188,126,197,246,188,204,175,246,188,255,153,246,188,25,132,246,188,26,110,246,188,0,88,246,188,
205,65,246,188,128,43,246,188,25,21,246,188,153,254,245,188,255,231,245,188,75,209,245,188,126,186,245,188,151,163,245,188,151,140,245,188,125,117,245,188,73,94,245,188,252,70,245,188,149,47,245,188,21,24,245,188,123,0,245,188,200,232,244,188,251,208,244,188,20,185,244,188,20,161,244,188,251,136,244,188,200,112,244,188,124,88,244,188,22,64,244,188,151,39,244,188,255,14,244,188,77,246,243,188,129,221,243,188,157,196,243,188,158,171,243,188,135,146,243,188,86,121,243,188,12,96,243,188,169,70,243,188,
44,45,243,188,150,19,243,188,231,249,242,188,30,224,242,188,60,198,242,188,65,172,242,188,45,146,242,188,0,120,242,188,185,93,242,188,89,67,242,188,224,40,242,188,78,14,242,188,163,243,241,188,222,216,241,188,1,190,241,188,10,163,241,188,250,135,241,188,209,108,241,188,143,81,241,188,52,54,241,188,193,26,241,188,52,255,240,188,142,227,240,188,207,199,240,188,247,171,240,188,6,144,240,188,252,115,240,188,217,87,240,188,157,59,240,188,72,31,240,188,219,2,240,188,84,230,239,188,181,201,239,188,253,172,
239,188,44,144,239,188,66,115,239,188,63,86,239,188,36,57,239,188,240,27,239,188,163,254,238,188,61,225,238,188,190,195,238,188,39,166,238,188,119,136,238,188,175,106,238,188,205,76,238,188,211,46,238,188,193,16,238,188,149,242,237,188,81,212,237,188,245,181,237,188,128,151,237,188,242,120,237,188,76,90,237,188,141,59,237,188,182,28,237,188,198,253,236,188,189,222,236,188,157,191,236,188,99,160,236,188,18,129,236,188,167,97,236,188,37,66,236,188,138,34,236,188,214,2,236,188,10,227,235,188,38,195,
235,188,42,163,235,188,21,131,235,188,231,98,235,188,162,66,235,188,68,34,235,188,206,1,235,188,64,225,234,188,153,192,234,188,218,159,234,188,3,127,234,188,20,94,234,188,13,61,234,188,237,27,234,188,181,250,233,188,102,217,233,188,254,183,233,188,126,150,233,188,229,116,233,188,53,83,233,188,109,49,233,188,141,15,233,188,148,237,232,188,132,203,232,188,92,169,232,188,28,135,232,188,195,100,232,188,83,66,232,188],"i8",4,y.a+184320);
Q([203,31,232,188,43,253,231,188,115,218,231,188,164,183,231,188,188,148,231,188,189,113,231,188,165,78,231,188,118,43,231,188,48,8,231,188,209,228,230,188,91,193,230,188,204,157,230,188,39,122,230,188,105,86,230,188,148,50,230,188,167,14,230,188,163,234,229,188,134,198,229,188,83,162,229,188,7,126,229,188,164,89,229,188,42,53,229,188,152,16,229,188,238,235,228,188,45,199,228,188,84,162,228,188,100,125,228,188,93,88,228,188,62,51,228,188,7,14,228,188,186,232,227,188,84,195,227,188,216,157,227,188,
68,120,227,188,152,82,227,188,214,44,227,188,252,6,227,188,11,225,226,188,2,187,226,188,227,148,226,188,172,110,226,188,93,72,226,188,248,33,226,188,124,251,225,188,232,212,225,188,61,174,225,188,123,135,225,188,162,96,225,188,178,57,225,188,171,18,225,188,140,235,224,188,87,196,224,188,11,157,224,188,167,117,224,188,45,78,224,188,156,38,224,188,244,254,223,188,53,215,223,188,95,175,223,188,114,135,223,188,110,95,223,188,83,55,223,188,34,15,223,188,218,230,222,188,123,190,222,188,5,150,222,188,120,
109,222,188,213,68,222,188,27,28,222,188,74,243,221,188,99,202,221,188,101,161,221,188,80,120,221,188,37,79,221,188,227,37,221,188,138,252,220,188,27,211,220,188,150,169,220,188,250,127,220,188,71,86,220,188,126,44,220,188,158,2,220,188,168,216,219,188,156,174,219,188,121,132,219,188,64,90,219,188,240,47,219,188,138,5,219,188,14,219,218,188,123,176,218,188,211,133,218,188,19,91,218,188,62,48,218,188,82,5,218,188,80,218,217,188,56,175,217,188,10,132,217,188,198,88,217,188,107,45,217,188,251,1,217,
188,116,214,216,188,215,170,216,188,36,127,216,188,92,83,216,188,125,39,216,188,136,251,215,188,125,207,215,188,92,163,215,188,38,119,215,188,217,74,215,188,118,30,215,188,254,241,214,188,112,197,214,188,204,152,214,188,18,108,214,188,66,63,214,188,93,18,214,188,98,229,213,188,81,184,213,188,42,139,213,188,238,93,213,188,156,48,213,188,52,3,213,188,183,213,212,188,36,168,212,188,124,122,212,188,190,76,212,188,235,30,212,188,2,241,211,188,3,195,211,188,239,148,211,188,198,102,211,188,135,56,211,188,
51,10,211,188,201,219,210,188,74,173,210,188,182,126,210,188,12,80,210,188,77,33,210,188,121,242,209,188,143,195,209,188,144,148,209,188,124,101,209,188,83,54,209,188,21,7,209,188,193,215,208,188,88,168,208,188,218,120,208,188,72,73,208,188,160,25,208,188,227,233,207,188,17,186,207,188,42,138,207,188,45,90,207,188,29,42,207,188,247,249,206,188,188,201,206,188,108,153,206,188,7,105,206,188,142,56,206,188,0,8,206,188,93,215,205,188,165,166,205,188,216,117,205,188,247,68,205,188,0,20,205,188,246,226,
204,188,214,177,204,188,162,128,204,188,89,79,204,188,252,29,204,188,138,236,203,188,3,187,203,188,104,137,203,188,185,87,203,188,245,37,203,188,28,244,202,188,47,194,202,188,46,144,202,188,24,94,202,188,238,43,202,188,175,249,201,188,92,199,201,188,245,148,201,188,121,98,201,188,234,47,201,188,70,253,200,188,141,202,200,188,193,151,200,188,224,100,200,188,235,49,200,188,227,254,199,188,198,203,199,188,148,152,199,188,79,101,199,188,246,49,199,188,137,254,198,188,8,203,198,188,114,151,198,188,201,
99,198,188,12,48,198,188,59,252,197,188,86,200,197,188,94,148,197,188,81,96,197,188,49,44,197,188,252,247,196,188,181,195,196,188,89,143,196,188,234,90,196,188,103,38,196,188,208,241,195,188,37,189,195,188,104,136,195,188,150,83,195,188,177,30,195,188,184,233,194,188,172,180,194,188,140,127,194,188,89,74,194,188,18,21,194,188,184,223,193,188,75,170,193,188,202,116,193,188,54,63,193,188,142,9,193,188,211,211,192,188,5,158,192,188,36,104,192,188,47,50,192,188,39,252,191,188,12,198,191,188,222,143,191,
188,157,89,191,188,72,35,191,188,225,236,190,188,102,182,190,188,216,127,190,188,56,73,190,188,132,18,190,188,189,219,189,188,228,164,189,188,247,109,189,188,248,54,189,188,229,255,188,188,192,200,188,188,136,145,188,188,62,90,188,188,224,34,188,188,112,235,187,188,237,179,187,188,87,124,187,188,175,68,187,188,244,12,187,188,38,213,186,188,70,157,186,188,83,101,186,188,77,45,186,188,53,245,185,188,11,189,185,188,206,132,185,188,127,76,185,188,29,20,185,188,169,219,184,188,34,163,184,188,137,106,184,
188,222,49,184,188,32,249,183,188,81,192,183,188,111,135,183,188,122,78,183,188,116,21,183,188,91,220,182,188,48,163,182,188,243,105,182,188,164,48,182,188,67,247,181,188,208,189,181,188,75,132,181,188,180,74,181,188,10,17,181,188,79,215,180,188,130,157,180,188,163,99,180,188,179,41,180,188,176,239,179,188,156,181,179,188,117,123,179,188,61,65,179,188,244,6,179,188,152,204,178,188,43,146,178,188,172,87,178,188,28,29,178,188,122,226,177,188,198,167,177,188,1,109,177,188,42,50,177,188,66,247,176,188,
72,188,176,188,61,129,176,188,32,70,176,188,242,10,176,188,179,207,175,188,98,148,175,188,0,89,175,188,141,29,175,188,8,226,174,188,114,166,174,188,203,106,174,188,19,47,174,188,73,243,173,188,110,183,173,188,131,123,173,188,134,63,173,188,120,3,173,188,89,199,172,188,41,139,172,188,232,78,172,188,150,18,172,188,52,214,171,188,192,153,171,188,59,93,171,188,166,32,171,188,0,228,170,188,72,167,170,188,129,106,170,188,168,45,170,188,191,240,169,188,197,179,169,188,186,118,169,188,159,57,169,188,115,
252,168,188,55,191,168,188,234,129,168,188,140,68,168,188,30,7,168,188,159,201,167,188,16,140,167,188,113,78,167,188,193,16,167,188,1,211,166,188,49,149,166,188,80,87,166,188,95,25,166,188,93,219,165,188,76,157,165,188,42,95,165,188,248,32,165,188,182,226,164,188,100,164,164,188,1,102,164,188,143,39,164,188,13,233,163,188,122,170,163,188,216,107,163,188,37,45,163,188,99,238,162,188,145,175,162,188,175,112,162,188,189,49,162,188,187,242,161,188,169,179,161,188,136,116,161,188,87,53,161,188,22,246,
160,188,198,182,160,188,102,119,160,188,246,55,160,188,119,248,159,188,232,184,159,188,73,121,159,188,155,57,159,188,222,249,158,188,17,186,158,188,53,122,158,188,73,58,158,188,78,250,157,188,67,186,157,188,41,122,157,188,0,58,157,188,200,249,156,188,128,185,156,188,42,121,156,188,196,56,156,188,79,248,155,188,202,183,155,188,55,119,155,188,149,54,155,188,227,245,154,188,35,181,154,188,83,116,154,188,117,51,154,188,135,242,153,188,139,177,153,188,128,112,153,188,102,47,153,188,61,238,152,188,6,173,
152,188,191,107,152,188,106,42,152,188,7,233,151,188,148,167,151,188,19,102,151,188,132,36,151,188,229,226,150,188,57,161,150,188,125,95,150,188,179,29,150,188,219,219,149,188,244,153,149,188,255,87,149,188,252,21,149,188,234,211,148,188,201,145,148,188,155,79,148,188,94,13,148,188,19,203,147,188,186,136,147,188,82,70,147,188,221,3,147,188,89,193,146,188,199,126,146,188,39,60,146,188,121,249,145,188,189,182,145,188,243,115,145,188,27,49,145,188,54,238,144,188,66,171,144,188,64,104,144,188,49,37,144,
188,20,226,143,188,233,158,143,188,176,91,143,188,105,24,143,188,21,213,142,188,179,145,142,188,68,78,142,188,199,10,142,188,60,199,141,188,164,131,141,188,254,63,141,188,75,252,140,188,138,184,140,188,188,116,140,188,225,48,140,188,248,236,139,188,2,169,139,188,254,100,139,188,237,32,139,188,207,220,138,188,164,152,138,188,107,84,138,188,38,16,138,188,211,203,137,188,115,135,137,188,6,67,137,188,140,254,136,188,5,186,136,188,113,117,136,188,208,48,136,188,34,236,135,188,103,167,135,188,160,98,135,
188,203,29,135,188,234,216,134,188,252,147,134,188,1,79,134,188,250,9,134,188,229,196,133,188,196,127,133,188,151,58,133,188,93,245,132,188,22,176,132,188,195,106,132,188,99,37,132,188,247,223,131,188,126,154,131,188,249,84,131,188,103,15,131,188,201,201,130,188,31,132,130,188,105,62,130,188,166,248,129,188,215,178,129,188,252,108,129,188,20,39,129,188,33,225,128,188,33,155,128,188,21,85,128,188,253,14,128,188,179,145,127,188,83,5,127,188,220,120,126,188,76,236,125,188,165,95,125,188,230,210,124,
188,15,70,124,188,32,185,123,188,26,44,123,188,253,158,122,188,200,17,122,188,123,132,121,188,23,247,120,188,156,105,120,188,10,220,119,188,97,78,119,188,160,192,118,188,201,50,118,188,218,164,117,188,213,22,117,188,185,136,116,188,133,250,115,188,60,108,115,188,219,221,114,188,100,79,114,188,215,192,113,188,51,50,113,188,120,163,112,188,167,20,112,188,192,133,111,188,195,246,110,188,175,103,110,188,133,216,109,188,70,73,109,188,240,185,108,188,132,42,108,188,3,155,107,188,107,11,107,188,190,123,
106,188,252,235,105,188,35,92,105,188,53,204,104,188,50,60,104,188,25,172,103,188,235,27,103,188,167,139,102,188,78,251,101,188,224,106,101,188,93,218,100,188,197,73,100,188,24,185,99,188,86,40,99,188,127,151,98,188,147,6,98,188,146,117,97,188,125,228,96,188,83,83,96,188,20,194,95,188,193,48,95,188,90,159,94,188,222,13,94,188,78,124,93,188,169,234,92,188,241,88,92,188,36,199,91,188,67,53,91,188,78,163,90,188,69,17,90,188,41,127,89,188,248,236,88,188,180,90,88,188,92,200,87,188,240,53,87,188,113,163,
86,188,222,16,86,188,56,126,85,188,127,235,84,188,178,88,84,188,210,197,83,188,222,50,83,188,216,159,82,188,190,12,82,188,146,121,81,188,82,230,80,188,0,83,80,188,155,191,79,188,35,44,79,188,152,152,78,188,251,4,78,188,75,113,77,188,137,221,76,188,180,73,76,188,205,181,75,188,211,33,75,188,199,141,74,188,169,249,73,188,121,101,73,188,55,209,72,188,227,60,72,188,125,168,71,188,5,20,71,188,123,127,70,188,223,234,69,188,50,86,69,188,115,193,68,188,163,44,68,188,193,151,67,188,206,2,67,188,201,109,66,
188,179,216,65,188,140,67,65,188,83,174,64,188,9,25,64,188,175,131,63,188,67,238,62,188,199,88,62,188,57,195,61,188,155,45,61,188,236,151,60,188,44,2,60,188,92,108,59,188,123,214,58,188,138,64,58,188,136,170,57,188,118,20,57,188,84,126,56,188,34,232,55,188,223,81,55,188,140,187,54,188,41,37,54,188,182,142,53,188,52,248,52,188,161,97,52,188,255,202,51,188,77,52,51,188,139,157,50,188,185,6,50,188,217,111,49,188,232,216,48,188,233,65,48,188,218,170,47,188,187,19,47,188,142,124,46,188,81,229,45,188,5,
78,45,188,171,182,44,188,65,31,44,188,200,135,43,188,65,240,42,188,171,88,42,188,6,193,41,188,83,41,41,188,145,145,40,188,192,249,39,188,225,97,39,188,244,201,38,188,248,49,38,188,238,153,37,188,214,1,37,188,176,105,36,188,124,209,35,188,58,57,35,188,233,160,34,188,139,8,34,188,32,112,33,188,166,215,32,188,31,63,32,188,138,166,31,188,232,13,31,188,56,117,30,188,123,220,29,188,177,67,29,188,217,170,28,188,244,17,28,188,2,121,27,188,3,224,26,188,246,70,26,188,221,173,25,188,183,20,25,188,132,123,24,
188,69,226,23,188,248,72,23,188,159,175,22,188,58,22,22,188,200,124,21,188,73,227,20,188,190,73,20,188,39,176,19,188,132,22,19,188,212,124,18,188,25,227,17,188,81,73,17,188,125,175,16,188,158,21,16,188,178,123,15,188,187,225,14,188,184,71,14,188,170,173,13,188,143,19,13,188,106,121,12,188,57,223,11,188,252,68,11,188,180,170,10,188,97,16,10,188,3,118,9,188,153,219,8,188,36,65,8,188,165,166,7,188,26,12,7,188,133,113,6,188,229,214,5,188,58,60,5,188,132,161,4,188,196,6,4,188,249,107,3,188,36,209,2,188,
68,54,2,188,90,155,1,188,102,0,1,188,103,101,0,188,189,148,255,187,152,94,254,187,94,40,253,187,16,242,251,187,175,187,250,187,58,133,249,187,177,78,248,187,21,24,247,187,102,225,245,187,164,170,244,187,206,115,243,187,230,60,242,187,235,5,241,187,221,206,239,187,189,151,238,187,139,96,237,187,70,41,236,187,239,241,234,187,134,186,233,187,12,131,232,187,127,75,231,187,225,19,230,187,50,220,228,187,114,164,227,187,160,108,226,187,189,52,225,187,201,252,223,187,196,196,222,187,175,140,221,187,137,84,
220,187,83,28,219,187,13,228,217,187,182,171,216,187,80,115,215,187,217,58,214,187,83,2,213,187,189,201,211,187,24,145,210,187,100,88,209,187,160,31,208,187,205,230,206,187,235,173,205,187,250,116,204,187,251,59,203,187,237,2,202,187,209,201,200,187,166,144,199,187,109,87,198,187,39,30,197,187,210,228,195,187,111,171,194,187,255,113,193,187,130,56,192,187,247,254,190,187,94,197,189,187,185,139,188,187,7,82,187,187,71,24,186,187,123,222,184,187,163,164,183,187,190,106,182,187,205,48,181,187,207,246,
179,187,197,188,178,187,176,130,177,187,143,72,176,187,98,14,175,187,41,212,173,187,229,153,172,187,150,95,171,187,60,37,170,187,214,234,168,187,102,176,167,187,235,117,166,187,101,59,165,187,213,0,164,187,59,198,162,187,150,139,161,187,231,80,160,187,47,22,159,187,108,219,157,187,160,160,156,187,202,101,155,187,235,42,154,187,2,240,152,187,16,181,151,187,22,122,150,187,18,63,149,187,5,4,148,187,240,200,146,187,211,141,145,187,173,82,144,187,126,23,143,187,72,220,141,187,10,161,140,187,195,101,139,
187,117,42,138,187,32,239,136,187,195,179,135,187,95,120,134,187,243,60,133,187,128,1,132,187,7,198,130,187,135,138,129,187,255,78,128,187,228,38,126,187,188,175,123,187,135,56,121,187,70,193,118,187,250,73,116,187,161,210,113,187,61,91,111,187,206,227,108,187,83,108,106,187,206,244,103,187,63,125,101,187,165,5,99,187,1,142,96,187,84,22,94,187,157,158,91,187,221,38,89,187,21,175,86,187,67,55,84,187,106,191,81,187,136,71,79,187,158,207,76,187,173,87,74,187,181,223,71,187,181,103,69,187,175,239,66,
187,162,119,64,187,143,255,61,187,118,135,59,187,87,15,57,187,51,151,54,187,10,31,52,187,219,166,49,187,168,46,47,187,113,182,44,187,53,62,42,187,246,197,39,187,179,77,37,187,109,213,34,187,35,93,32,187,215,228,29,187,136,108,27,187,55,244,24,187,227,123,22,187,142,3,20,187,56,139,17,187,224,18,15,187,135,154,12,187,46,34,10,187,212,169,7,187,122,49,5,187,31,185,2,187,198,64,0,187,217,144,251,186,40,160,246,186,121,175,241,186,205,190,236,186,37,206,231,186,128,221,226,186,224,236,221,186,68,252,
216,186,174,11,212,186,29,27,207,186,147,42,202,186,16,58,197,186,148,73,192,186,33,89,187,186,182,104,182,186,84,120,177,186,251,135,172,186,173,151,167,186,105,167,162,186,48,183,157,186,3,199,152,186,226,214,147,186,205,230,142,186,198,246,137,186,205,6,133,186,226,22,128,186,12,78,118,186,114,110,108,186,248,142,98,186,158,175,88,186,102,208,78,186,81,241,68,186,96,18,59,186,148,51,49,186,238,84,39,186,110,118,29,186,23,152,19,186,233,185,9,186,202,183,255,185,24,252,235,185,191,64,216,185,192,
133,196,185,29,203,176,185,218,16,157,185,247,86,137,185,238,58,107,185,184,200,67,185,80,87,28,185,116,205,233,184,245,237,154,184,86,32,24,184,83,248,178,53,79,76,35,56,160,126,160,56,66,85,239,56,2,21,31,57,112,126,70,57,230,230,109,57,48,167,138,57,109,90,158,57,40,13,178,57,95,191,197,57,16,113,217,57,56,34,237,57,107,105,0,58,115,65,10,58,53,25,20,58,174,240,29,58,221,199,39,58,194,158,49,58,92,117,59,58,169,75,69,58,169,33,79,58,90,247,88,58,188,204,98,58,204,161,108,58,140,118,118,58,124,
37,128,58,136,15,133,58,106,249,137,58,33,227,142,58,173,204,147,58,13,182,152,58,64,159,157,58,70,136,162,58,31,113,167,58,201,89,172,58,69,66,177,58,147,42,182,58,176,18,187,58,157,250,191,58,90,226,196,58,230,201,201,58,64,177,206,58,104,152,211,58,93,127,216,58,31,102,221,58,173,76,226,58,7,51,231,58,45,25,236,58,29,255,240,58,215,228,245,58,91,202,250,58,168,175,255,58,95,74,2,59,206,188,4,59,33,47,7,59,87,161,9,59,113,19,12,59,110,133,14,59,78,247,16,59,16,105,19,59,180,218,21,59,59,76,24,59,
163,189,26,59,236,46,29,59,23,160,31,59,35,17,34,59,16,130,36,59,221,242,38,59,139,99,41,59,24,212,43,59,133,68,46,59,210,180,48,59,254,36,51,59,8,149,53,59,242,4,56,59,186,116,58,59,96,228,60,59,228,83,63,59,69,195,65,59,132,50,68,59,160,161,70,59,154,16,73,59,111,127,75,59,33,238,77,59,176,92,80,59,26,203,82,59,96,57,85,59,129,167,87,59,125,21,90,59,84,131,92,59,6,241,94,59,146,94,97,59,248,203,99,59,56,57,102,59,82,166,104,59,68,19,107,59,16,128,109,59,181,236,111,59,51,89,114,59,136,197,116,59,
182,49,119,59,188,157,121,59,153,9,124,59,77,117,126,59,108,112,128,59,29,166,129,59,186,219,130,59,65,17,132,59,180,70,133,59,17,124,134,59,90,177,135,59,140,230,136,59,170,27,138,59,178,80,139,59,164,133,140,59,128,186,141,59,70,239,142,59,246,35,144,59,144,88,145,59,19,141,146,59,128,193,147,59,214,245,148,59,22,42,150,59,62,94,151,59,80,146,152,59,74,198,153,59,46,250,154,59,250,45,156,59,174,97,157,59,75,149,158,59,208,200,159,59,61,252,160,59,146,47,162,59,207,98,163,59,243,149,164,59,0,201,
165,59,244,251,166,59,207,46,168,59,145,97,169,59,59,148,170,59,203,198,171,59,67,249,172,59,161,43,174,59,229,93,175,59,17,144,176,59,34,194,177,59,26,244,178,59,248,37,180,59,188,87,181,59,102,137,182,59,245,186,183,59,106,236,184,59,197,29,186,59,5,79,187,59,42,128,188,59,53,177,189,59,36,226,190,59,248,18,192,59,177,67,193,59,79,116,194,59,209,164,195,59,55,213,196,59,130,5,198,59,177,53,199,59,196,101,200,59,186,149,201,59,149,197,202,59,83,245,203,59,245,36,205,59,122,84,206,59,226,131,207,
59,45,179,208,59,92,226,209,59,109,17,211,59,97,64,212,59,56,111,213,59,241,157,214,59,141,204,215,59,11,251,216,59,107,41,218,59,173,87,219,59,209,133,220,59,215,179,221,59,190,225,222,59,135,15,224,59,50,61,225,59,189,106,226,59,42,152,227,59,120,197,228,59,167,242,229,59,183,31,231,59,167,76,232,59,120,121,233,59,41,166,234,59,187,210,235,59,45,255,236,59,127,43,238,59,177,87,239,59,194,131,240,59,180,175,241,59,133,219,242,59,53,7,244,59,197,50,245,59,52,94,246,59,130,137,247,59,175,180,248,59,
187,223,249,59,166,10,251,59,111,53,252,59,23,96,253,59,157,138,254,59,2,181,255,59,162,111,0,60,178,4,1,60,178,153,1,60,160,46,2,60,125,195,2,60,72,88,3,60,3,237,3,60,172,129,4,60,68,22,5,60,202,170,5,60,62,63,6,60,161,211,6,60,243,103,7,60,50,252,7,60,96,144,8,60,124,36,9,60,134,184,9,60,127,76,10,60,101,224,10,60,57,116,11,60,251,7,12,60,170,155,12,60,72,47,13,60,211,194,13,60,76,86,14,60,178,233,14,60,6,125,15,60,71,16,16,60,118,163,16,60,146,54,17,60,155,201,17,60,146,92,18,60,118,239,18,60,
70,130,19,60,4,21,20,60,175,167,20,60,71,58,21,60,203,204,21,60,60,95,22,60,154,241,22,60,229,131,23,60,28,22,24,60,64,168,24,60,81,58,25,60,77,204,25,60,55,94,26,60,12,240,26,60,206,129,27,60,124,19,28,60,22,165,28,60,156,54,29,60,15,200,29,60,109,89,30,60,183,234,30,60,237,123,31,60,15,13,32,60,28,158,32,60,21,47,33,60,250,191,33,60,203,80,34,60,134,225,34,60,46,114,35,60,192,2,36,60,62,147,36,60,168,35,37,60,252,179,37,60,60,68,38,60,103,212,38,60,124,100,39,60,125,244,39,60,105,132,40,60,63,20,
41,60,1,164,41,60,173,51,42,60,68,195,42,60,197,82,43,60,49,226,43,60,136,113,44,60,201,0,45,60,244,143,45,60,10,31,46,60,10,174,46,60,244,60,47,60,200,203,47,60,135,90,48,60,47,233,48,60,194,119,49,60,62,6,50,60,165,148,50,60,245,34,51,60,47,177,51,60,83,63,52,60,96,205,52,60,87,91,53,60,55,233,53,60,1,119,54,60,181,4,55,60,82,146,55,60,216,31,56,60,71,173,56,60,160,58,57,60,225,199,57,60,12,85,58,60,32,226,58,60,29,111,59,60,3,252,59,60,209,136,60,60,137,21,61,60,41,162,61,60,177,46,62,60,35,187,
62,60,125,71,63,60,192,211,63,60,235,95,64,60,254,235,64,60,250,119,65,60,222,3,66,60,170,143,66,60,95,27,67,60,251,166,67,60,128,50,68,60,237,189,68,60,66,73,69,60,126,212,69,60,163,95,70,60,175,234,70,60,163,117,71,60,127,0,72,60,66,139,72,60,237,21,73,60,127,160,73,60,249,42,74,60,91,181,74,60,163,63,75,60,211,201,75,60,235,83,76,60,233,221,76,60,206,103,77,60,155,241,77,60,79,123,78,60,233,4,79,60,107,142,79,60,211,23,80,60,34,161,80,60,88,42,81,60,117,179,81,60,120,60,82,60,98,197,82,60,50,78,
83,60,233,214,83,60,134,95,84,60,10,232,84,60,116,112,85,60,196,248,85,60,250,128,86,60,23,9,87,60,26,145,87,60,2,25,88,60,209,160,88,60,133,40,89,60,32,176,89,60,160,55,90,60,6,191,90,60,82,70,91,60,132,205,91,60,155,84,92,60,151,219,92,60,121,98,93,60,65,233,93,60,238,111,94,60,128,246,94,60,248,124,95,60,84,3,96,60,150,137,96,60,189,15,97,60,202,149,97,60,187,27,98,60,145,161,98,60,76,39,99,60,236,172,99,60,113,50,100,60,218,183,100,60,40,61,101,60,91,194,101,60,115,71,102,60,111,204,102,60,79,
81,103,60,20,214,103,60,189,90,104,60,75,223,104,60,189,99,105,60,19,232,105,60,77,108,106,60,108,240,106,60,110,116,107,60,85,248,107,60,31,124,108,60,206,255,108,60,96,131,109,60,214,6,110,60,48,138,110,60,109,13,111,60,142,144,111,60,147,19,112,60,123,150,112,60,71,25,113,60,246,155,113,60,137,30,114,60,255,160,114,60,88,35,115,60,149,165,115,60,180,39,116,60,183,169,116,60,157,43,117,60,102,173,117,60,18,47,118,60,161,176,118,60,18,50,119,60,103,179,119,60,158,52,120,60,184,181,120,60,181,54,
121,60,148,183,121,60,86,56,122,60,251,184,122,60,129,57,123,60,235,185,123,60,54,58,124,60,100,186,124,60,117,58,125,60,103,186,125,60,60,58,126,60,242,185,126,60,139,57,127,60,6,185,127,60,49,28,128,60,209,91,128,60,97,155,128,60,226,218,128,60,84,26,129,60,183,89,129,60,11,153,129,60,79,216,129,60,133,23,130,60,171,86,130,60,194,149,130,60,201,212,130,60,193,19,131,60,170,82,131,60,132,145,131,60,78,208,131,60,9,15,132,60,180,77,132,60,80,140,132,60,220,202,132,60,89,9,133,60,198,71,133,60,36,
134,133,60,114,196,133,60,176,2,134,60,223,64,134,60,254,126,134,60,14,189,134,60,13,251,134,60,253,56,135,60,222,118,135,60,174,180,135,60,111,242,135,60,32,48,136,60,193,109,136,60,82,171,136,60,211,232,136,60,68,38,137,60,166,99,137,60,247,160,137,60,56,222,137,60,105,27,138,60,139,88,138,60,156,149,138,60,157,210,138,60,142,15,139,60,111,76,139,60,63,137,139,60,0,198,139,60,176,2,140,60,80,63,140,60,224,123,140,60,95,184,140,60,206,244,140,60,45,49,141,60,123,109,141,60,185,169,141,60,231,229,
141,60,4,34,142,60,17,94,142,60,13,154,142,60,249,213,142,60,212,17,143,60,159,77,143,60,89,137,143,60,3,197,143,60,155,0,144,60,36,60,144,60,155,119,144,60,2,179,144,60,88,238,144,60,158,41,145,60,211,100,145,60,247,159,145,60,10,219,145,60,12,22,146,60,253,80,146,60,222,139,146,60,174,198,146,60,108,1,147,60,26,60,147,60,183,118,147,60,67,177,147,60,190,235,147,60,39,38,148,60,128,96,148,60,200,154,148,60,254,212,148,60,36,15,149,60,56,73,149,60,59,131,149,60,45,189,149,60,14,247,149,60,222,48,
150,60,156,106,150,60,73,164,150,60,228,221,150,60,111,23,151,60,232,80,151,60,79,138,151,60,165,195,151,60,234,252,151,60,30,54,152,60,63,111,152,60,80,168,152,60,79,225,152,60,60,26,153,60,24,83,153,60,226,139,153,60,155,196,153,60,66,253,153,60,215,53,154,60,91,110,154,60,205,166,154,60,45,223,154,60,124,23,155,60,185,79,155,60,228,135,155,60,253,191,155,60,5,248,155,60,250,47,156,60,222,103,156,60,176,159,156,60,112,215,156,60,30,15,157,60,186,70,157,60,69,126,157,60,189,181,157,60,35,237,157,
60,119,36,158,60,185,91,158,60,234,146,158,60,7,202,158,60,19,1,159,60,13,56,159,60,245,110,159,60,202,165,159,60,141,220,159,60,62,19,160,60,221,73,160,60,105,128,160,60,228,182,160,60,75,237,160,60,161,35,161,60,228,89,161,60,21,144,161,60,51,198,161,60,64,252,161,60,57,50,162,60,32,104,162,60,245,157,162,60,183,211,162,60,103,9,163,60,4,63,163,60,143,116,163,60,7,170,163,60,108,223,163,60,191,20,164,60,255,73,164,60,45,127,164,60,71,180,164,60,80,233,164,60,69,30,165,60,40,83,165,60,248,135,165,
60,181,188,165,60,95,241,165,60,247,37,166,60,123,90,166,60,237,142,166,60,76,195,166,60,152,247,166,60,209,43,167,60,247,95,167,60,11,148,167,60,11,200,167,60,248,251,167,60,210,47,168,60,153,99,168,60,78,151,168,60,239,202,168,60,125,254,168,60,247,49,169,60,95,101,169,60,180,152,169,60,245,203,169,60,35,255,169,60,62,50,170,60,70,101,170,60,58,152,170,60,27,203,170,60,233,253,170,60,164,48,171,60,75,99,171,60,223,149,171,60,95,200,171,60,204,250,171,60,38,45,172,60,108,95,172,60,159,145,172,60,
190,195,172,60,202,245,172,60,194,39,173,60,167,89,173,60,120,139,173,60,54,189,173,60,224,238,173,60,119,32,174,60,250,81,174,60,105,131,174,60,196,180,174,60,12,230,174,60,64,23,175,60,97,72,175,60,110,121,175,60,103,170,175,60,76,219,175,60,29,12,176,60,219,60,176,60,133,109,176,60,27,158,176,60,157,206,176,60,11,255,176,60,101,47,177,60,172,95,177,60,222,143,177,60,253,191,177,60,7,240,177,60,254,31,178,60,224,79,178,60,175,127,178,60,105,175,178,60,15,223,178,60,162,14,179,60,32,62,179,60,138,
109,179,60,224,156,179,60,34,204,179,60,79,251,179,60,105,42,180,60,110,89,180,60,95,136,180,60,60,183,180,60,4,230,180,60,184,20,181,60,88,67,181,60,228,113,181,60,91,160,181,60,190,206,181,60,12,253,181,60,70,43,182,60,108,89,182,60,126,135,182,60,122,181,182,60,99,227,182,60,55,17,183,60,246,62,183,60,161,108,183,60,56,154,183,60,186,199,183,60,39,245,183,60,128,34,184,60,196,79,184,60,243,124,184,60,14,170,184,60,21,215,184,60,6,4,185,60,227,48,185,60,171,93,185,60,95,138,185,60,254,182,185,60,
136,227,185,60,253,15,186,60,94,60,186,60,169,104,186,60,224,148,186,60,2,193,186,60,16,237,186,60,8,25,187,60,236,68,187,60,186,112,187,60,116,156,187,60,25,200,187,60,169,243,187,60,36,31,188,60,138,74,188,60,218,117,188,60,22,161,188,60,61,204,188,60,79,247,188,60,76,34,189,60,52,77,189,60,6,120,189,60,196,162,189,60,108,205,189,60,0,248,189,60,126,34,190,60,231,76,190,60,58,119,190,60,121,161,190,60,162,203,190,60,183,245,190,60,181,31,191,60,159,73,191,60,115,115,191,60,51,157,191,60,220,198,
191,60,113,240,191,60,240,25,192,60,90,67,192,60,174,108,192,60,237,149,192,60,23,191,192,60,43,232,192,60,41,17,193,60,19,58,193,60,231,98,193,60,165,139,193,60,78,180,193,60,225,220,193,60,95,5,194,60,199,45,194,60,26,86,194,60,87,126,194,60,127,166,194,60,145,206,194,60,141,246,194,60,116,30,195,60,69,70,195,60,1,110,195,60,167,149,195,60,55,189,195,60,177,228,195,60,22,12,196,60,101,51,196,60,158,90,196,60,194,129,196,60,207,168,196,60,199,207,196,60,169,246,196,60,118,29,197,60,44,68,197,60,
205,106,197,60,88,145,197,60,205,183,197,60,44,222,197,60,117,4,198,60,168,42,198,60,197,80,198,60,205,118,198,60,190,156,198,60,154,194,198,60,95,232,198,60,15,14,199,60,168,51,199,60,44,89,199,60,153,126,199,60,240,163,199,60,50,201,199,60,93,238,199,60,114,19,200,60,113,56,200,60,90,93,200,60,45,130,200,60,233,166,200,60,144,203,200,60,32,240,200,60,154,20,201,60,254,56,201,60,76,93,201,60,131,129,201,60,164,165,201,60,175,201,201,60,164,237,201,60,131,17,202,60,75,53,202,60,253,88,202,60,152,
124,202,60,29,160,202,60,140,195,202,60,229,230,202,60,39,10,203,60,83,45,203,60,104,80,203,60,103,115,203,60,79,150,203,60,34,185,203,60,221,219,203,60,130,254,203,60,17,33,204,60,137,67,204,60,235,101,204,60,54,136,204,60,107,170,204,60,137,204,204,60,145,238,204,60,130,16,205,60,93,50,205,60,33,84,205,60,206,117,205,60,101,151,205,60,229,184,205,60,79,218,205,60,162,251,205,60,222,28,206,60,4,62,206,60,18,95,206,60,11,128,206,60,236,160,206,60,183,193,206,60,107,226,206,60,9,3,207,60,143,35,207,
60,255,67,207,60,88,100,207,60,155,132,207,60,198,164,207,60,219,196,207,60,217,228,207,60,192,4,208,60,144,36,208,60,74,68,208,60,236,99,208,60,120,131,208,60,237,162,208,60,75,194,208,60,146,225,208,60,194,0,209,60,219,31,209,60,221,62,209,60,200,93,209,60,157,124,209,60,90,155,209,60,1,186,209,60,144,216,209,60,8,247,209,60,106,21,210,60,180,51,210,60,232,81,210,60,4,112,210,60,9,142,210,60,247,171,210,60,206,201,210,60,142,231,210,60,55,5,211,60,201,34,211,60,68,64,211,60,167,93,211,60,244,122,
211,60,41,152,211,60,71,181,211,60,78,210,211,60,62,239,211,60,23,12,212,60,216,40,212,60,130,69,212,60,21,98,212,60,145,126,212,60,246,154,212,60,67,183,212,60,121,211,212,60,152,239,212,60,159,11,213,60,143,39,213,60,104,67,213,60,42,95,213,60,212,122,213,60,103,150,213,60,227,177,213,60,71,205,213,60,148,232,213,60,202,3,214,60,232,30,214,60,239,57,214,60,222,84,214,60,182,111,214,60,119,138,214,60,32,165,214,60,178,191,214,60,44,218,214,60,143,244,214,60,218,14,215,60,14,41,215,60,43,67,215,60,
48,93,215,60,30,119,215,60,244,144,215,60,178,170,215,60,89,196,215,60,233,221,215,60,97,247,215,60,193,16,216,60,10,42,216,60,60,67,216,60,85,92,216,60,88,117,216,60,66,142,216,60,21,167,216,60,209,191,216,60,116,216,216,60,1,241,216,60,117,9,217,60,210,33,217,60,24,58,217,60,69,82,217,60,91,106,217,60,90,130,217,60,64,154,217,60,15,178,217,60,199,201,217,60,102,225,217,60,238,248,217,60,94,16,218,60,183,39,218,60,248,62,218,60,33,86,218,60,50,109,218,60,44,132,218,60,13,155,218,60,215,177,218,60,
138,200,218,60,36,223,218,60,167,245,218,60,18,12,219,60,101,34,219,60,160,56,219,60,195,78,219,60,207,100,219,60,195,122,219,60,159,144,219,60,99,166,219,60,15,188,219,60,164,209,219,60,32,231,219,60,133,252,219,60,210,17,220,60,7,39,220,60,36,60,220,60,41,81,220,60,22,102,220,60,236,122,220,60,169,143,220,60,78,164,220,60,220,184,220,60,82,205,220,60,175,225,220,60,245,245,220,60,35,10,221,60,57,30,221,60,54,50,221,60,28,70,221,60,234,89,221,60,160,109,221,60,62,129,221,60,196,148,221,60,50,168,
221,60,135,187,221,60,197,206,221,60,235,225,221,60,249,244,221,60,239,7,222,60,204,26,222,60,146,45,222,60,64,64,222,60,213,82,222,60,83,101,222,60,184,119,222,60,5,138,222,60,59,156,222,60,88,174,222,60,93,192,222,60,74,210,222,60,31,228,222,60,219,245,222,60,128,7,223,60,13,25,223,60,129,42,223,60,221,59,223,60,33,77,223,60,77,94,223,60,97,111,223,60,93,128,223,60,64,145,223,60,12,162,223,60,191,178,223,60,90,195,223,60,221,211,223,60,72,228,223,60,154,244,223,60,212,4,224,60,247,20,224,60,0,37,
224,60,242,52,224,60,204,68,224,60,141,84,224,60,54,100,224,60,199,115,224,60,64,131,224,60,160,146,224,60,232,161,224,60,24,177,224,60,48,192,224,60,47,207,224,60,22,222,224,60,229,236,224,60,156,251,224,60,58,10,225,60,192,24,225,60,46,39,225,60,132,53,225,60,193,67,225,60,230,81,225,60,243,95,225,60,231,109,225,60,195,123,225,60,135,137,225,60,51,151,225,60,198,164,225,60,65,178,225,60,164,191,225,60,238,204,225,60,32,218,225,60,58,231,225,60,59,244,225,60,36,1,226,60,245,13,226,60,173,26,226,
60,77,39,226,60,213,51,226,60,68,64,226,60,155,76,226,60,217,88,226,60,0,101,226,60,14,113,226,60,3,125,226,60,224,136,226,60,165,148,226,60,81,160,226,60,229,171,226,60,97,183,226,60,196,194,226,60,15,206,226,60,66,217,226,60,92,228,226,60,94,239,226,60,71,250,226,60,24,5,227,60,209,15,227,60,113,26,227,60,249,36,227,60,104,47,227,60,191,57,227,60,254,67,227,60,36,78,227,60,49,88,227,60,39,98,227,60,4,108,227,60,200,117,227,60,116,127,227,60,8,137,227,60,131,146,227,60,230,155,227,60,48,165,227,
60,98,174,227,60,124,183,227,60,125,192,227,60,101,201,227,60,54,210,227,60,237,218,227,60,141,227,227,60,20,236,227,60,130,244,227,60,216,252,227,60,22,5,228,60,59,13,228,60,71,21,228,60,60,29,228,60,23,37,228,60,219,44,228,60,134,52,228,60,24,60,228,60,146,67,228,60,243,74,228,60,60,82,228,60,109,89,228,60,133,96,228,60,133,103,228,60,108,110,228,60,59,117,228,60,241,123,228,60,143,130,228,60,20,137,228,60,129,143,228,60,214,149,228,60,18,156,228,60,53,162,228,60,64,168,228,60,51,174,228,60,13,
180,228,60,206,185,228,60,120,191,228,60,8,197,228,60,128,202,228,60,224,207,228,60,39,213,228,60,86,218,228,60,109,223,228,60,107,228,228,60,80,233,228,60,29,238,228,60,209,242,228,60,109,247,228,60,241,251,228,60,92,0,229,60,175,4,229,60,233,8,229,60,10,13,229,60,20,17,229,60,4,21,229,60,221,24,229,60,156,28,229,60,68,32,229,60,211,35,229,60,73,39,229,60,167,42,229,60,236,45,229,60,25,49,229,60,46,52,229,60,42,55,229,60,14,58,229,60,217,60,229,60,140,63,229,60,38,66,229,60,168,68,229,60,17,71,229,
60,98,73,229,60,154,75,229,60,186,77,229,60,194,79,229,60,177,81,229,60,136,83,229,60,70,85,229,60,235,86,229,60,121,88,229,60,238,89,229,60,74,91,229,60,142,92,229,60,186,93,229,60,205,94,229,60,199,95,229,60,170,96,229,60,115,97,229,60,37,98,229,60,190,98,229,60,62,99,229,60,166,99,229,60,246,99,229,60,45,100,229,60,76,100,229,60,82,100,229,60,64,100,229,60,22,100,229,60,211,99,229,60,120,99,229,60,4,99,229,60,120,98,229,60,212,97,229,60,23,97,229,60,66,96,229,60,84,95,229,60,78,94,229,60,48,93,
229,60,249,91,229,60,170,90,229,60,66,89,229,60,194,87,229,60,42,86,229,60,121,84,229,60,176,82,229,60,207,80,229,60,213,78,229,60,195,76,229,60,152,74,229,60,85,72,229,60,250,69,229,60,134,67,229,60,251,64,229,60,86,62,229,60,154,59,229,60,197,56,229,60,215,53,229,60,210,50,229,60,180,47,229,60,126,44,229,60,47,41,229,60,200,37,229,60,73,34,229,60,177,30,229,60,1,27,229,60,57,23,229,60,89,19,229,60,96,15,229,60,79,11,229,60,38,7,229,60,228,2,229,60,138,254,228,60,24,250,228,60,141,245,228,60,235,
240,228,60,48,236,228,60,93,231,228,60,113,226,228,60,109,221,228,60,81,216,228,60,29,211,228,60,208,205,228,60,108,200,228,60,239,194,228,60,90,189,228,60,172,183,228,60,230,177,228,60,9,172,228,60,18,166,228,60,4,160,228,60,222,153,228,60,159,147,228,60,72,141,228,60,217,134,228,60,82,128,228,60,178,121,228,60,251,114,228,60,43,108,228,60,67,101,228,60,67,94,228,60,43,87,228,60,250,79,228,60,178,72,228,60,81,65,228,60,216,57,228,60,71,50,228,60,158,42,228,60,221,34,228,60,4,27,228,60,18,19,228,
60,9,11,228,60,231,2,228,60,174,250,227,60,92,242,227,60,242,233,227,60,112,225,227,60,214,216,227,60,36,208,227,60,90,199,227,60,120,190,227,60,125,181,227,60,107,172,227,60,65,163,227,60,254,153,227,60,164,144,227,60,50,135,227,60,167,125,227,60,5,116,227,60,74,106,227,60,120,96,227,60,141,86,227,60,139,76,227,60,113,66,227,60,62,56,227,60,244,45,227,60,146,35,227,60,24,25,227,60,134,14,227,60,219,3,227,60,25,249,226,60,64,238,226,60,78,227,226,60,68,216,226,60,34,205,226,60,233,193,226,60,151,
182,226,60,46,171,226,60,173,159,226,60,19,148,226,60,99,136,226,60,154,124,226,60,185,112,226,60,192,100,226,60,176,88,226,60,136,76,226,60,72,64,226,60,240,51,226,60,128,39,226,60,249,26,226,60,90,14,226,60,163,1,226,60,212,244,225,60,237,231,225,60,239,218,225,60,217,205,225,60,171,192,225,60,101,179,225,60,8,166,225,60,147,152,225,60,6,139,225,60,98,125,225,60,165,111,225,60,210,97,225,60,230,83,225,60,227,69,225,60,200,55,225,60,149,41,225,60,75,27,225,60,233,12,225,60,111,254,224,60,222,239,
224,60,53,225,224,60,117,210,224,60,157,195,224,60,173,180,224,60,166,165,224,60,135,150,224,60,81,135,224,60,3,120,224,60,157,104,224,60,32,89,224,60,139,73,224,60,223,57,224,60,27,42,224,60,64,26,224,60,77,10,224,60,67,250,223,60,33,234,223,60,232,217,223,60,151,201,223,60,47,185,223,60,175,168,223,60,24,152,223,60,106,135,223,60,164,118,223,60,199,101,223,60,210,84,223,60,198,67,223,60,162,50,223,60,103,33,223,60,21,16,223,60,171,254,222,60,42,237,222,60,145,219,222,60,225,201,222,60,26,184,222,
60,60,166,222,60,70,148,222,60,57,130,222,60,21,112,222,60,217,93,222,60,134,75,222,60,28,57,222,60,155,38,222,60,2,20,222,60,82,1,222,60,139,238,221,60,172,219,221,60,183,200,221,60,170,181,221,60,134,162,221,60,75,143,221,60,249,123,221,60,143,104,221,60,15,85,221,60,119,65,221,60,200,45,221,60,2,26,221,60,37,6,221,60,49,242,220,60,37,222,220,60,3,202,220,60,202,181,220,60,121,161,220,60,18,141,220,60,147,120,220,60,253,99,220,60,81,79,220,60,141,58,220,60,179,37,220,60,193,16,220,60,184,251,219,
60,153,230,219,60,98,209,219,60,21,188,219,60,177,166,219,60,53,145,219,60,163,123,219,60,250,101,219,60,58,80,219,60,99,58,219,60,117,36,219,60,113,14,219,60,86,248,218,60,35,226,218,60,218,203,218,60,122,181,218,60,4,159,218,60,118,136,218,60,210,113,218,60,23,91,218,60,69,68,218,60,93,45,218,60,94,22,218,60,72,255,217,60,27,232,217,60,216,208,217,60,126,185,217,60,13,162,217,60,134,138,217,60,232,114,217,60,51,91,217,60,104,67,217,60,134,43,217,60,141,19,217,60,126,251,216,60,89,227,216,60,28,
203,216,60,202,178,216,60,96,154,216,60,224,129,216,60,74,105,216,60,157,80,216,60,218,55,216,60,0,31,216,60,16,6,216,60,9,237,215,60,236,211,215,60,184,186,215,60,110,161,215,60,13,136,215,60,151,110,215,60,9,85,215,60,102,59,215,60,172,33,215,60,219,7,215,60,245,237,214,60,248,211,214,60,228,185,214,60,187,159,214,60,123,133,214,60,37,107,214,60,184,80,214,60,54,54,214,60,157,27,214,60,238,0,214,60,40,230,213,60,77,203,213,60,91,176,213,60,83,149,213,60,53,122,213,60,1,95,213,60,183,67,213,60,86,
40,213,60,224,12,213,60,83,241,212,60,177,213,212,60,248,185,212,60,41,158,212,60,68,130,212,60,74,102,212,60,57,74,212,60,18,46,212,60,213,17,212,60,130,245,211,60,26,217,211,60,155,188,211,60,6,160,211,60,92,131,211,60,155,102,211,60,197,73,211,60,217,44,211,60,215,15,211,60,191,242,210,60,145,213,210,60,78,184,210,60,245,154,210,60,134,125,210,60,1,96,210,60,102,66,210,60,182,36,210,60,240,6,210,60,20,233,209,60,34,203,209,60,27,173,209,60,254,142,209,60,204,112,209,60,131,82,209,60,38,52,209,
60,178,21,209,60,41,247,208,60,138,216,208,60,214,185,208,60,12,155,208,60,45,124,208,60,56,93,208,60,46,62,208,60,14,31,208,60,217,255,207,60,142,224,207,60,46,193,207,60,184,161,207,60,45,130,207,60,140,98,207,60,214,66,207,60,11,35,207,60,42,3,207,60,52,227,206,60,41,195,206,60,8,163,206,60,210,130,206,60,135,98,206,60,38,66,206,60,176,33,206,60,37,1,206,60,133,224,205,60,207,191,205,60,5,159,205,60,37,126,205,60,48,93,205,60,37,60,205,60,6,27,205,60,210,249,204,60,136,216,204,60,41,183,204,60,
181,149,204,60,45,116,204,60,143,82,204,60,220,48,204,60,20,15,204,60,55,237,203,60,69,203,203,60,62,169,203,60,34,135,203,60,241,100,203,60,172,66,203,60,81,32,203,60,226,253,202,60,93,219,202,60,196,184,202,60,22,150,202,60,83,115,202,60,124,80,202,60,143,45,202,60,142,10,202,60,120,231,201,60,77,196,201,60,14,161,201,60,186,125,201,60,81,90,201,60,211,54,201,60,65,19,201,60,154,239,200,60,223,203,200,60,15,168,200,60,42,132,200,60,49,96,200,60,35,60,200,60,1,24,200,60,202,243,199,60,127,207,199,
60,31,171,199,60,170,134,199,60,34,98,199,60,132,61,199,60,211,24,199,60,13,244,198,60,50,207,198,60,67,170,198,60,64,133,198,60,41,96,198,60,253,58,198,60,189,21,198,60,104,240,197,60,255,202,197,60,130,165,197,60,241,127,197,60,76,90,197,60,146,52,197,60,196,14,197,60,226,232,196,60,236,194,196,60,226,156,196,60,196,118,196,60,145,80,196,60,74,42,196,60,240,3,196,60,129,221,195,60],"i8",4,y.a+194560);
Q([254,182,195,60,104,144,195,60,189,105,195,60,254,66,195,60,44,28,195,60,69,245,194,60,75,206,194,60,60,167,194,60,26,128,194,60,228,88,194,60,154,49,194,60,60,10,194,60,202,226,193,60,69,187,193,60,172,147,193,60,255,107,193,60,62,68,193,60,105,28,193,60,129,244,192,60,133,204,192,60,118,164,192,60,83,124,192,60,28,84,192,60,209,43,192,60,115,3,192,60,2,219,191,60,125,178,191,60,228,137,191,60,56,97,191,60,120,56,191,60,165,15,191,60,190,230,190,60,196,189,190,60,183,148,190,60,150,107,190,60,
97,66,190,60,25,25,190,60,190,239,189,60,80,198,189,60,206,156,189,60,57,115,189,60,145,73,189,60,213,31,189,60,7,246,188,60,37,204,188,60,47,162,188,60,39,120,188,60,11,78,188,60,221,35,188,60,155,249,187,60,70,207,187,60,222,164,187,60,99,122,187,60,212,79,187,60,51,37,187,60,127,250,186,60,184,207,186,60,222,164,186,60,240,121,186,60,240,78,186,60,221,35,186,60,183,248,185,60,127,205,185,60,51,162,185,60,213,118,185,60,99,75,185,60,223,31,185,60,72,244,184,60,159,200,184,60,226,156,184,60,19,113,
184,60,50,69,184,60,61,25,184,60,54,237,183,60,28,193,183,60,240,148,183,60,177,104,183,60,95,60,183,60,251,15,183,60,133,227,182,60,251,182,182,60,96,138,182,60,178,93,182,60,241,48,182,60,30,4,182,60,57,215,181,60,65,170,181,60,54,125,181,60,26,80,181,60,235,34,181,60,170,245,180,60,86,200,180,60,240,154,180,60,120,109,180,60,238,63,180,60,81,18,180,60,162,228,179,60,225,182,179,60,14,137,179,60,41,91,179,60,50,45,179,60,40,255,178,60,13,209,178,60,223,162,178,60,160,116,178,60,78,70,178,60,234,
23,178,60,117,233,177,60,237,186,177,60,84,140,177,60,168,93,177,60,235,46,177,60,28,0,177,60,59,209,176,60,72,162,176,60,68,115,176,60,45,68,176,60,5,21,176,60,203,229,175,60,128,182,175,60,34,135,175,60,179,87,175,60,51,40,175,60,161,248,174,60,253,200,174,60,71,153,174,60,128,105,174,60,168,57,174,60,189,9,174,60,194,217,173,60,181,169,173,60,150,121,173,60,102,73,173,60,37,25,173,60,210,232,172,60,110,184,172,60,248,135,172,60,113,87,172,60,217,38,172,60,47,246,171,60,117,197,171,60,169,148,171,
60,203,99,171,60,221,50,171,60,221,1,171,60,204,208,170,60,170,159,170,60,119,110,170,60,51,61,170,60,222,11,170,60,120,218,169,60,0,169,169,60,120,119,169,60,223,69,169,60,52,20,169,60,121,226,168,60,173,176,168,60,208,126,168,60,226,76,168,60,227,26,168,60,212,232,167,60,179,182,167,60,130,132,167,60,64,82,167,60,237,31,167,60,138,237,166,60,22,187,166,60,145,136,166,60,251,85,166,60,85,35,166,60,158,240,165,60,215,189,165,60,255,138,165,60,23,88,165,60,30,37,165,60,20,242,164,60,251,190,164,60,
208,139,164,60,149,88,164,60,74,37,164,60,239,241,163,60,131,190,163,60,6,139,163,60,122,87,163,60,221,35,163,60,48,240,162,60,114,188,162,60,165,136,162,60,199,84,162,60,217,32,162,60,219,236,161,60,204,184,161,60,174,132,161,60,127,80,161,60,65,28,161,60,242,231,160,60,148,179,160,60,37,127,160,60,166,74,160,60,24,22,160,60,121,225,159,60,203,172,159,60,13,120,159,60,63,67,159,60,97,14,159,60,115,217,158,60,117,164,158,60,104,111,158,60,75,58,158,60,30,5,158,60,226,207,157,60,149,154,157,60,58,
101,157,60,206,47,157,60,83,250,156,60,201,196,156,60,47,143,156,60,133,89,156,60,204,35,156,60,3,238,155,60,43,184,155,60,67,130,155,60,76,76,155,60,70,22,155,60,48,224,154,60,11,170,154,60,215,115,154,60,147,61,154,60,64,7,154,60,222,208,153,60,109,154,153,60,236,99,153,60,92,45,153,60,190,246,152,60,15,192,152,60,82,137,152,60,134,82,152,60,171,27,152,60,193,228,151,60,199,173,151,60,191,118,151,60,168,63,151,60,129,8,151,60,76,209,150,60,8,154,150,60,182,98,150,60,84,43,150,60,227,243,149,60,
100,188,149,60,214,132,149,60,57,77,149,60,142,21,149,60,212,221,148,60,11,166,148,60,51,110,148,60,77,54,148,60,88,254,147,60,85,198,147,60,67,142,147,60,35,86,147,60,244,29,147,60,183,229,146,60,107,173,146,60,17,117,146,60,168,60,146,60,49,4,146,60,172,203,145,60,24,147,145,60,118,90,145,60,198,33,145,60,8,233,144,60,59,176,144,60,96,119,144,60,119,62,144,60,128,5,144,60,123,204,143,60,103,147,143,60,70,90,143,60,22,33,143,60,216,231,142,60,141,174,142,60,51,117,142,60,204,59,142,60,86,2,142,60,
211,200,141,60,66,143,141,60,163,85,141,60,246,27,141,60,59,226,140,60,114,168,140,60,156,110,140,60,184,52,140,60,199,250,139,60,199,192,139,60,186,134,139,60,160,76,139,60,119,18,139,60,66,216,138,60,254,157,138,60,173,99,138,60,79,41,138,60,227,238,137,60,106,180,137,60,227,121,137,60,79,63,137,60,174,4,137,60,255,201,136,60,67,143,136,60,121,84,136,60,163,25,136,60,191,222,135,60,205,163,135,60,207,104,135,60,195,45,135,60,171,242,134,60,133,183,134,60,82,124,134,60,18,65,134,60,197,5,134,60,
107,202,133,60,4,143,133,60,144,83,133,60,15,24,133,60,129,220,132,60,231,160,132,60,63,101,132,60,139,41,132,60,202,237,131,60,252,177,131,60,33,118,131,60,57,58,131,60,69,254,130,60,68,194,130,60,55,134,130,60,29,74,130,60,246,13,130,60,195,209,129,60,131,149,129,60,54,89,129,60,221,28,129,60,120,224,128,60,6,164,128,60,136,103,128,60,254,42,128,60,205,220,127,60,135,99,127,60,39,234,126,60,175,112,126,60,31,247,125,60,118,125,125,60,181,3,125,60,219,137,124,60,234,15,124,60,223,149,123,60,189,
27,123,60,130,161,122,60,48,39,122,60,197,172,121,60,66,50,121,60,168,183,120,60,245,60,120,60,43,194,119,60,73,71,119,60,79,204,118,60,61,81,118,60,20,214,117,60,211,90,117,60,123,223,116,60,11,100,116,60,132,232,115,60,230,108,115,60,48,241,114,60,99,117,114,60,127,249,113,60,131,125,113,60,113,1,113,60,71,133,112,60,7,9,112,60,175,140,111,60,65,16,111,60,188,147,110,60,32,23,110,60,109,154,109,60,164,29,109,60,196,160,108,60,205,35,108,60,192,166,107,60,157,41,107,60,99,172,106,60,19,47,106,60,
172,177,105,60,47,52,105,60,156,182,104,60,243,56,104,60,52,187,103,60,95,61,103,60,116,191,102,60,115,65,102,60,92,195,101,60,48,69,101,60,237,198,100,60,149,72,100,60,39,202,99,60,164,75,99,60,11,205,98,60,93,78,98,60,153,207,97,60,192,80,97,60,209,209,96,60,206,82,96,60,181,211,95,60,135,84,95,60,67,213,94,60,235,85,94,60,126,214,93,60,252,86,93,60,101,215,92,60,185,87,92,60,248,215,91,60,35,88,91,60,57,216,90,60,59,88,90,60,39,216,89,60,0,88,89,60,196,215,88,60,115,87,88,60,14,215,87,60,149,86,
87,60,8,214,86,60,103,85,86,60,177,212,85,60,232,83,85,60,10,211,84,60,24,82,84,60,19,209,83,60,250,79,83,60,205,206,82,60,140,77,82,60,55,204,81,60,207,74,81,60,84,201,80,60,197,71,80,60,34,198,79,60,108,68,79,60,163,194,78,60,198,64,78,60,214,190,77,60,211,60,77,60,189,186,76,60,148,56,76,60,88,182,75,60,9,52,75,60,167,177,74,60,50,47,74,60,170,172,73,60,16,42,73,60,99,167,72,60,163,36,72,60,209,161,71,60,237,30,71,60,245,155,70,60,236,24,70,60,208,149,69,60,162,18,69,60,98,143,68,60,15,12,68,60,
170,136,67,60,52,5,67,60,171,129,66,60,16,254,65,60,100,122,65,60,166,246,64,60,213,114,64,60,244,238,63,60,0,107,63,60,251,230,62,60,228,98,62,60,188,222,61,60,131,90,61,60,56,214,60,60,219,81,60,60,110,205,59,60,239,72,59,60,95,196,58,60,190,63,58,60,12,187,57,60,73,54,57,60,117,177,56,60,144,44,56,60,154,167,55,60,148,34,55,60,125,157,54,60,85,24,54,60,29,147,53,60,212,13,53,60,123,136,52,60,17,3,52,60,151,125,51,60,12,248,50,60,113,114,50,60,199,236,49,60,11,103,49,60,64,225,48,60,101,91,48,60,
122,213,47,60,127,79,47,60,116,201,46,60,90,67,46,60,47,189,45,60,245,54,45,60,171,176,44,60,82,42,44,60,233,163,43,60,113,29,43,60,234,150,42,60,83,16,42,60,172,137,41,60,247,2,41,60,50,124,40,60,95,245,39,60,124,110,39,60,138,231,38,60,137,96,38,60,122,217,37,60,91,82,37,60,46,203,36,60,242,67,36,60,168,188,35,60,78,53,35,60,231,173,34,60,113,38,34,60,236,158,33,60,89,23,33,60,184,143,32,60,8,8,32,60,75,128,31,60,127,248,30,60,165,112,30,60,189,232,29,60,199,96,29,60,195,216,28,60,178,80,28,60,
146,200,27,60,101,64,27,60,42,184,26,60,226,47,26,60,140,167,25,60,40,31,25,60,183,150,24,60,57,14,24,60,173,133,23,60,20,253,22,60,110,116,22,60,187,235,21,60,250,98,21,60,45,218,20,60,83,81,20,60,107,200,19,60,119,63,19,60,118,182,18,60,104,45,18,60,78,164,17,60,39,27,17,60,243,145,16,60,179,8,16,60,102,127,15,60,13,246,14,60,168,108,14,60,54,227,13,60,184,89,13,60,46,208,12,60,152,70,12,60,246,188,11,60,72,51,11,60,141,169,10,60,199,31,10,60,246,149,9,60,24,12,9,60,47,130,8,60,58,248,7,60,57,110,
7,60,45,228,6,60,22,90,6,60,243,207,5,60,196,69,5,60,139,187,4,60,70,49,4,60,246,166,3,60,155,28,3,60,52,146,2,60,195,7,2,60,71,125,1,60,192,242,0,60,46,104,0,60,35,187,255,59,212,165,254,59,112,144,253,59,247,122,252,59,104,101,251,59,197,79,250,59,13,58,249,59,64,36,248,59,95,14,247,59,105,248,245,59,94,226,244,59,64,204,243,59,13,182,242,59,199,159,241,59,108,137,240,59,253,114,239,59,123,92,238,59,230,69,237,59,61,47,236,59,128,24,235,59,177,1,234,59,206,234,232,59,216,211,231,59,208,188,230,
59,181,165,229,59,135,142,228,59,71,119,227,59,244,95,226,59,143,72,225,59,24,49,224,59,143,25,223,59,244,1,222,59,71,234,220,59,136,210,219,59,184,186,218,59,215,162,217,59,228,138,216,59,224,114,215,59,203,90,214,59,165,66,213,59,110,42,212,59,38,18,211,59,206,249,209,59,101,225,208,59,236,200,207,59,98,176,206,59,201,151,205,59,31,127,204,59,102,102,203,59,156,77,202,59,195,52,201,59,219,27,200,59,227,2,199,59,220,233,197,59,197,208,196,59,160,183,195,59,107,158,194,59,40,133,193,59,214,107,192,
59,117,82,191,59,6,57,190,59,136,31,189,59,252,5,188,59,98,236,186,59,186,210,185,59,4,185,184,59,65,159,183,59,111,133,182,59,144,107,181,59,164,81,180,59,170,55,179,59,164,29,178,59,144,3,177,59,111,233,175,59,65,207,174,59,6,181,173,59,191,154,172,59,108,128,171,59,12,102,170,59,160,75,169,59,40,49,168,59,163,22,167,59,19,252,165,59,119,225,164,59,207,198,163,59,28,172,162,59,94,145,161,59,148,118,160,59,191,91,159,59,222,64,158,59,243,37,157,59,253,10,156,59,253,239,154,59,242,212,153,59,220,
185,152,59,188,158,151,59,145,131,150,59,93,104,149,59,31,77,148,59,214,49,147,59,132,22,146,59,41,251,144,59,195,223,143,59,85,196,142,59,221,168,141,59,92,141,140,59,209,113,139,59,62,86,138,59,162,58,137,59,254,30,136,59,80,3,135,59,155,231,133,59,221,203,132,59,23,176,131,59,72,148,130,59,114,120,129,59,148,92,128,59,91,129,126,59,128,73,124,59,150,17,122,59,157,217,119,59,149,161,117,59,128,105,115,59,92,49,113,59,42,249,110,59,234,192,108,59,158,136,106,59,68,80,104,59,221,23,102,59,105,223,
99,59,234,166,97,59,93,110,95,59,197,53,93,59,34,253,90,59,115,196,88,59,184,139,86,59,243,82,84,59,34,26,82,59,72,225,79,59,99,168,77,59,116,111,75,59,123,54,73,59,120,253,70,59,108,196,68,59,88,139,66,59,58,82,64,59,19,25,62,59,229,223,59,59,174,166,57,59,111,109,55,59,40,52,53,59,218,250,50,59,133,193,48,59,41,136,46,59,198,78,44,59,93,21,42,59,237,219,39,59,119,162,37,59,252,104,35,59,123,47,33,59,244,245,30,59,105,188,28,59,217,130,26,59,68,73,24,59,171,15,22,59,13,214,19,59,108,156,17,59,199,
98,15,59,31,41,13,59,115,239,10,59,197,181,8,59,20,124,6,59,96,66,4,59,170,8,2,59,229,157,255,58,113,42,251,58,251,182,246,58,130,67,242,58,7,208,237,58,139,92,233,58,13,233,228,58,142,117,224,58,16,2,220,58,145,142,215,58,20,27,211,58,151,167,206,58,28,52,202,58,164,192,197,58,46,77,193,58,187,217,188,58,76,102,184,58,224,242,179,58,122,127,175,58,24,12,171,58,188,152,166,58,101,37,162,58,21,178,157,58,204,62,153,58,138,203,148,58,80,88,144,58,31,229,139,58,246,113,135,58,214,254,130,58,129,23,125,
58,106,49,116,58,104,75,107,58,124,101,98,58,167,127,89,58,235,153,80,58,71,180,71,58,190,206,62,58,80,233,53,58,253,3,45,58,199,30,36,58,176,57,27,58,183,84,18,58,221,111,9,58,37,139,0,58,27,77,239,57,50,132,221,57,143,187,203,57,54,243,185,57,39,43,168,57,101,99,150,57,241,155,132,57,155,169,101,57,249,27,66,57,255,142,30,57,97,5,246,56,36,238,174,56,156,176,79,56,155,15,131,55,43,60,153,183,253,192,90,184,109,112,180,184,207,126,251,184,207,69,33,185,104,203,68,185,47,80,104,185,17,234,133,185,
157,171,151,185,187,108,169,185,105,45,187,185,165,237,204,185,109,173,222,185,190,108,240,185,204,21,1,186,252,244,9,186,238,211,18,186,162,178,27,186,22,145,36,186,73,111,45,186,59,77,54,186,234,42,63,186,86,8,72,186,126,229,80,186,96,194,89,186,252,158,98,186,81,123,107,186,94,87,116,186,34,51,125,186,78,7,131,186,229,116,135,186,87,226,139,186,162,79,144,186,198,188,148,186,195,41,153,186,152,150,157,186,69,3,162,186,202,111,166,186,37,220,170,186,86,72,175,186,94,180,179,186,58,32,184,186,236,
139,188,186,114,247,192,186,204,98,197,186,250,205,201,186,251,56,206,186,206,163,210,186,116,14,215,186,235,120,219,186,52,227,223,186,77,77,228,186,54,183,232,186,240,32,237,186,120,138,241,186,208,243,245,186,246,92,250,186,234,197,254,186,86,151,1,187,157,203,3,187,203,255,5,187,222,51,8,187,216,103,10,187,183,155,12,187,123,207,14,187,37,3,17,187,179,54,19,187,38,106,21,187,126,157,23,187,185,208,25,187,217,3,28,187,220,54,30,187,195,105,32,187,141,156,34,187,59,207,36,187,203,1,39,187,61,52,
41,187,146,102,43,187,201,152,45,187,226,202,47,187,221,252,49,187,185,46,52,187,118,96,54,187,21,146,56,187,147,195,58,187,243,244,60,187,51,38,63,187,82,87,65,187,82,136,67,187,49,185,69,187,240,233,71,187,141,26,74,187,10,75,76,187,101,123,78,187,159,171,80,187,182,219,82,187,172,11,85,187,128,59,87,187,49,107,89,187,191,154,91,187,42,202,93,187,115,249,95,187,151,40,98,187,152,87,100,187,118,134,102,187,47,181,104,187,196,227,106,187,52,18,109,187,128,64,111,187,166,110,113,187,167,156,115,187,
131,202,117,187,57,248,119,187,202,37,122,187,52,83,124,187,119,128,126,187,202,86,128,187,69,109,129,187,173,131,130,187,1,154,131,187,65,176,132,187,109,198,133,187,134,220,134,187,138,242,135,187,122,8,137,187,85,30,138,187,29,52,139,187,207,73,140,187,109,95,141,187,247,116,142,187,107,138,143,187,202,159,144,187,20,181,145,187,73,202,146,187,105,223,147,187,115,244,148,187,103,9,150,187,70,30,151,187,15,51,152,187,195,71,153,187,96,92,154,187,231,112,155,187,87,133,156,187,178,153,157,187,245,
173,158,187,35,194,159,187,57,214,160,187,57,234,161,187,34,254,162,187,243,17,164,187,174,37,165,187,81,57,166,187,221,76,167,187,82,96,168,187,175,115,169,187,244,134,170,187,33,154,171,187,54,173,172,187,52,192,173,187,25,211,174,187,229,229,175,187,154,248,176,187,54,11,178,187,185,29,179,187,36,48,180,187,117,66,181,187,174,84,182,187,206,102,183,187,212,120,184,187,193,138,185,187,149,156,186,187,80,174,187,187,240,191,188,187,119,209,189,187,228,226,190,187,56,244,191,187,113,5,193,187,143,
22,194,187,148,39,195,187,126,56,196,187,78,73,197,187,3,90,198,187,157,106,199,187,29,123,200,187,129,139,201,187,203,155,202,187,249,171,203,187,12,188,204,187,3,204,205,187,223,219,206,187,160,235,207,187,69,251,208,187,205,10,210,187,58,26,211,187,139,41,212,187,192,56,213,187,216,71,214,187,212,86,215,187,179,101,216,187,118,116,217,187,28,131,218,187,166,145,219,187,18,160,220,187,97,174,221,187,147,188,222,187,168,202,223,187,159,216,224,187,121,230,225,187,54,244,226,187,212,1,228,187,85,
15,229,187,184,28,230,187,253,41,231,187,35,55,232,187,44,68,233,187,22,81,234,187,225,93,235,187,142,106,236,187,28,119,237,187,140,131,238,187,220,143,239,187,14,156,240,187,32,168,241,187,19,180,242,187,231,191,243,187,155,203,244,187,48,215,245,187,165,226,246,187,250,237,247,187,48,249,248,187,69,4,250,187,58,15,251,187,15,26,252,187,196,36,253,187,88,47,254,187,204,57,255,187,15,34,0,188,41,167,0,188,49,44,1,188,42,177,1,188,17,54,2,188,232,186,2,188,175,63,3,188,100,196,3,188,9,73,4,188,158,
205,4,188,33,82,5,188,147,214,5,188,245,90,6,188,69,223,6,188,132,99,7,188,178,231,7,188,207,107,8,188,219,239,8,188,214,115,9,188,191,247,9,188,150,123,10,188,93,255,10,188,17,131,11,188,181,6,12,188,70,138,12,188,198,13,13,188,52,145,13,188,145,20,14,188,219,151,14,188,20,27,15,188,59,158,15,188,80,33,16,188,82,164,16,188,67,39,17,188,33,170,17,188,238,44,18,188,168,175,18,188,80,50,19,188,229,180,19,188,104,55,20,188,217,185,20,188,55,60,21,188,130,190,21,188,187,64,22,188,225,194,22,188,245,68,
23,188,245,198,23,188,227,72,24,188,190,202,24,188,134,76,25,188,59,206,25,188,221,79,26,188,108,209,26,188,232,82,27,188,80,212,27,188,166,85,28,188,232,214,28,188,23,88,29,188,50,217,29,188,58,90,30,188,46,219,30,188,15,92,31,188,220,220,31,188,149,93,32,188,59,222,32,188,205,94,33,188,75,223,33,188,182,95,34,188,12,224,34,188,79,96,35,188,125,224,35,188,151,96,36,188,158,224,36,188,144,96,37,188,109,224,37,188,55,96,38,188,236,223,38,188,141,95,39,188,25,223,39,188,145,94,40,188,244,221,40,188,
67,93,41,188,125,220,41,188,163,91,42,188,179,218,42,188,175,89,43,188,150,216,43,188,104,87,44,188,37,214,44,188,206,84,45,188,97,211,45,188,223,81,46,188,72,208,46,188,155,78,47,188,218,204,47,188,3,75,48,188,22,201,48,188,21,71,49,188,254,196,49,188,209,66,50,188,143,192,50,188,55,62,51,188,202,187,51,188,71,57,52,188,174,182,52,188,255,51,53,188,58,177,53,188,96,46,54,188,111,171,54,188,105,40,55,188,76,165,55,188,26,34,56,188,209,158,56,188,114,27,57,188,253,151,57,188,113,20,58,188,207,144,
58,188,23,13,59,188,72,137,59,188,99,5,60,188,103,129,60,188,85,253,60,188,43,121,61,188,236,244,61,188,149,112,62,188,40,236,62,188,163,103,63,188,8,227,63,188,86,94,64,188,141,217,64,188,173,84,65,188,182,207,65,188,167,74,66,188,129,197,66,188,69,64,67,188,240,186,67,188,133,53,68,188,2,176,68,188,104,42,69,188,182,164,69,188,236,30,70,188,11,153,70,188,19,19,71,188,2,141,71,188,218,6,72,188,154,128,72,188,67,250,72,188,211,115,73,188,76,237,73,188,172,102,74,188,245,223,74,188,37,89,75,188,61,
210,75,188,61,75,76,188,37,196,76,188,245,60,77,188,172,181,77,188,75,46,78,188,209,166,78,188,63,31,79,188,149,151,79,188,210,15,80,188,246,135,80,188,2,0,81,188,245,119,81,188,207,239,81,188,144,103,82,188,57,223,82,188,201,86,83,188,63,206,83,188,157,69,84,188,226,188,84,188,13,52,85,188,32,171,85,188,25,34,86,188,249,152,86,188,192,15,87,188,109,134,87,188,1,253,87,188,124,115,88,188,221,233,88,188,37,96,89,188,83,214,89,188,104,76,90,188,99,194,90,188,68,56,91,188,11,174,91,188,185,35,92,188,
77,153,92,188,199,14,93,188,39,132,93,188,109,249,93,188,153,110,94,188,170,227,94,188,162,88,95,188,128,205,95,188,67,66,96,188,236,182,96,188,123,43,97,188,240,159,97,188,74,20,98,188,137,136,98,188,175,252,98,188,185,112,99,188,169,228,99,188,127,88,100,188,57,204,100,188,217,63,101,188,95,179,101,188,201,38,102,188,25,154,102,188,77,13,103,188,103,128,103,188,102,243,103,188,73,102,104,188,18,217,104,188,191,75,105,188,82,190,105,188,201,48,106,188,36,163,106,188,101,21,107,188,138,135,107,188,
148,249,107,188,130,107,108,188,85,221,108,188,12,79,109,188,168,192,109,188,40,50,110,188,140,163,110,188,213,20,111,188,2,134,111,188,19,247,111,188,8,104,112,188,225,216,112,188,159,73,113,188,64,186,113,188,197,42,114,188,47,155,114,188,124,11,115,188,173,123,115,188,193,235,115,188,186,91,116,188,150,203,116,188,86,59,117,188,250,170,117,188,129,26,118,188,235,137,118,188,57,249,118,188,107,104,119,188,128,215,119,188,120,70,120,188,84,181,120,188,18,36,121,188,180,146,121,188,58,1,122,188,162,
111,122,188,238,221,122,188,28,76,123,188,45,186,123,188,34,40,124,188,249,149,124,188,180,3,125,188,81,113,125,188,208,222,125,188,51,76,126,188,120,185,126,188,160,38,127,188,171,147,127,188,76,0,128,188,180,54,128,188,13,109,128,188,87,163,128,188,147,217,128,188,191,15,129,188,221,69,129,188,236,123,129,188,236,177,129,188,221,231,129,188,192,29,130,188,147,83,130,188,87,137,130,188,13,191,130,188,179,244,130,188,74,42,131,188,210,95,131,188,76,149,131,188,182,202,131,188,17,0,132,188,92,53,132,
188,153,106,132,188,198,159,132,188,229,212,132,188,244,9,133,188,244,62,133,188,228,115,133,188,197,168,133,188,151,221,133,188,90,18,134,188,13,71,134,188,177,123,134,188,70,176,134,188,203,228,134,188,64,25,135,188,167,77,135,188,253,129,135,188,69,182,135,188,124,234,135,188,165,30,136,188,189,82,136,188,198,134,136,188,192,186,136,188,170,238,136,188,132,34,137,188,79,86,137,188,10,138,137,188,181,189,137,188,80,241,137,188,220,36,138,188,88,88,138,188,196,139,138,188,33,191,138,188,109,242,
138,188,170,37,139,188,215,88,139,188,244,139,139,188,2,191,139,188,255,241,139,188,236,36,140,188,202,87,140,188,151,138,140,188,84,189,140,188,2,240,140,188,159,34,141,188,44,85,141,188,170,135,141,188,23,186,141,188,116,236,141,188,193,30,142,188,254,80,142,188,42,131,142,188,70,181,142,188,83,231,142,188,79,25,143,188,58,75,143,188,22,125,143,188,225,174,143,188,156,224,143,188,70,18,144,188,224,67,144,188,106,117,144,188,228,166,144,188,77,216,144,188,165,9,145,188,237,58,145,188,37,108,145,
188,76,157,145,188,99,206,145,188,105,255,145,188,95,48,146,188,68,97,146,188,24,146,146,188,220,194,146,188,143,243,146,188,50,36,147,188,196,84,147,188,70,133,147,188,182,181,147,188,22,230,147,188,101,22,148,188,164,70,148,188,210,118,148,188,238,166,148,188,251,214,148,188,246,6,149,188,224,54,149,188,186,102,149,188,131,150,149,188,59,198,149,188,225,245,149,188,119,37,150,188,253,84,150,188,113,132,150,188,212,179,150,188,38,227,150,188,103,18,151,188,151,65,151,188,182,112,151,188,196,159,
151,188,193,206,151,188,172,253,151,188,135,44,152,188,80,91,152,188,8,138,152,188,175,184,152,188,69,231,152,188,202,21,153,188,61,68,153,188,159,114,153,188,240,160,153,188,48,207,153,188,94,253,153,188,123,43,154,188,134,89,154,188,129,135,154,188,105,181,154,188,65,227,154,188,7,17,155,188,187,62,155,188,94,108,155,188,240,153,155,188,112,199,155,188,223,244,155,188,60,34,156,188,136,79,156,188,194,124,156,188,234,169,156,188,1,215,156,188,6,4,157,188,250,48,157,188,220,93,157,188,172,138,157,
188,107,183,157,188,24,228,157,188,179,16,158,188,60,61,158,188,180,105,158,188,26,150,158,188,110,194,158,188,177,238,158,188,225,26,159,188,0,71,159,188,13,115,159,188,8,159,159,188,241,202,159,188,200,246,159,188,142,34,160,188,65,78,160,188,226,121,160,188,114,165,160,188,239,208,160,188,91,252,160,188,180,39,161,188,252,82,161,188,49,126,161,188,85,169,161,188,102,212,161,188,101,255,161,188,82,42,162,188,45,85,162,188,246,127,162,188,172,170,162,188,81,213,162,188,227,255,162,188,99,42,163,
188,209,84,163,188,44,127,163,188,117,169,163,188,172,211,163,188,209,253,163,188,227,39,164,188,227,81,164,188,209,123,164,188,173,165,164,188,118,207,164,188,44,249,164,188,208,34,165,188,98,76,165,188,225,117,165,188,78,159,165,188,169,200,165,188,241,241,165,188,38,27,166,188,73,68,166,188,89,109,166,188,87,150,166,188,66,191,166,188,27,232,166,188,225,16,167,188,149,57,167,188,53,98,167,188,196,138,167,188,63,179,167,188,168,219,167,188,254,3,168,188,66,44,168,188,115,84,168,188,145,124,168,
188,156,164,168,188,148,204,168,188,122,244,168,188,77,28,169,188,13,68,169,188,187,107,169,188,85,147,169,188,221,186,169,188,82,226,169,188,179,9,170,188,2,49,170,188,63,88,170,188,104,127,170,188,126,166,170,188,129,205,170,188,114,244,170,188,79,27,171,188,25,66,171,188,208,104,171,188,117,143,171,188,6,182,171,188,132,220,171,188,239,2,172,188,71,41,172,188,140,79,172,188,190,117,172,188,221,155,172,188,232,193,172,188,225,231,172,188,198,13,173,188,152,51,173,188,87,89,173,188,2,127,173,188,
154,164,173,188,32,202,173,188,145,239,173,188,240,20,174,188,59,58,174,188,115,95,174,188,152,132,174,188,169,169,174,188,167,206,174,188,146,243,174,188,105,24,175,188,45,61,175,188,222,97,175,188,123,134,175,188,5,171,175,188,123,207,175,188,222,243,175,188,45,24,176,188,105,60,176,188,145,96,176,188,166,132,176,188,167,168,176,188,149,204,176,188,111,240,176,188,54,20,177,188,233,55,177,188,137,91,177,188,21,127,177,188,141,162,177,188,242,197,177,188,67,233,177,188,128,12,178,188,170,47,178,
188,192,82,178,188,194,117,178,188,177,152,178,188,140,187,178,188,83,222,178,188,7,1,179,188,166,35,179,188,50,70,179,188,171,104,179,188,15,139,179,188,96,173,179,188,156,207,179,188,197,241,179,188,218,19,180,188,220,53,180,188,201,87,180,188,163,121,180,188,104,155,180,188,26,189,180,188,184,222,180,188,65,0,181,188,183,33,181,188,25,67,181,188,103,100,181,188,161,133,181,188,199,166,181,188,217,199,181,188,215,232,181,188,193,9,182,188,151,42,182,188,89,75,182,188,7,108,182,188,160,140,182,188,
38,173,182,188,152,205,182,188,245,237,182,188,62,14,183,188,115,46,183,188,148,78,183,188,161,110,183,188,154,142,183,188,126,174,183,188,79,206,183,188,11,238,183,188,179,13,184,188,70,45,184,188,198,76,184,188,49,108,184,188,136,139,184,188,202,170,184,188,249,201,184,188,19,233,184,188,24,8,185,188,10,39,185,188,231,69,185,188,176,100,185,188,100,131,185,188,4,162,185,188,144,192,185,188,7,223,185,188,106,253,185,188,184,27,186,188,242,57,186,188,24,88,186,188,41,118,186,188,37,148,186,188,14,
178,186,188,225,207,186,188,161,237,186,188,75,11,187,188,226,40,187,188,99,70,187,188,209,99,187,188,41,129,187,188,109,158,187,188,157,187,187,188,184,216,187,188,190,245,187,188,176,18,188,188,141,47,188,188,86,76,188,188,10,105,188,188,169,133,188,188,52,162,188,188,170,190,188,188,11,219,188,188,88,247,188,188,144,19,189,188,179,47,189,188,194,75,189,188,188,103,189,188,161,131,189,188,113,159,189,188,45,187,189,188,212,214,189,188,102,242,189,188,228,13,190,188,76,41,190,188,160,68,190,188,
223,95,190,188,9,123,190,188,31,150,190,188,31,177,190,188,11,204,190,188,226,230,190,188,164,1,191,188,81,28,191,188,233,54,191,188,109,81,191,188,219,107,191,188,53,134,191,188,122,160,191,188,169,186,191,188,196,212,191,188,202,238,191,188,187,8,192,188,151,34,192,188,94,60,192,188,16,86,192,188,173,111,192,188,53,137,192,188,168,162,192,188,6,188,192,188,79,213,192,188,131,238,192,188,161,7,193,188,171,32,193,188,160,57,193,188,128,82,193,188,74,107,193,188,0,132,193,188,160,156,193,188,44,181,
193,188,162,205,193,188,3,230,193,188,79,254,193,188,134,22,194,188,167,46,194,188,180,70,194,188,171,94,194,188,142,118,194,188,91,142,194,188,18,166,194,188,181,189,194,188,66,213,194,188,187,236,194,188,30,4,195,188,107,27,195,188,164,50,195,188,199,73,195,188,213,96,195,188,206,119,195,188,178,142,195,188,128,165,195,188,57,188,195,188,220,210,195,188,107,233,195,188,228,255,195,188,72,22,196,188,150,44,196,188,207,66,196,188,243,88,196,188,1,111,196,188,250,132,196,188,222,154,196,188,172,176,
196,188,101,198,196,188,9,220,196,188,151,241,196,188,16,7,197,188,115,28,197,188,193,49,197,188,250,70,197,188,29,92,197,188,43,113,197,188,35,134,197,188,6,155,197,188,211,175,197,188,139,196,197,188,46,217,197,188,187,237,197,188,50,2,198,188,148,22,198,188,225,42,198,188,24,63,198,188,57,83,198,188,69,103,198,188,60,123,198,188,29,143,198,188,232,162,198,188,158,182,198,188,62,202,198,188,201,221,198,188,62,241,198,188,158,4,199,188,232,23,199,188,29,43,199,188,60,62,199,188,69,81,199,188,57,
100,199,188,23,119,199,188,223,137,199,188,146,156,199,188,47,175,199,188,183,193,199,188,41,212,199,188,133,230,199,188,204,248,199,188,253,10,200,188,25,29,200,188,31,47,200,188,15,65,200,188,233,82,200,188,174,100,200,188,93,118,200,188,246,135,200,188,122,153,200,188,232,170,200,188,64,188,200,188,131,205,200,188,175,222,200,188,199,239,200,188,200,0,201,188,180,17,201,188,137,34,201,188,74,51,201,188,244,67,201,188,137,84,201,188,8,101,201,188,113,117,201,188,196,133,201,188,2,150,201,188,41,
166,201,188,59,182,201,188,55,198,201,188,30,214,201,188,239,229,201,188,169,245,201,188,78,5,202,188,221,20,202,188,87,36,202,188,186,51,202,188,8,67,202,188,64,82,202,188,98,97,202,188,110,112,202,188,100,127,202,188,69,142,202,188,15,157,202,188,196,171,202,188,99,186,202,188,236,200,202,188,95,215,202,188,189,229,202,188,4,244,202,188,53,2,203,188,81,16,203,188,87,30,203,188,71,44,203,188,32,58,203,188,228,71,203,188,147,85,203,188,43,99,203,188,173,112,203,188,25,126,203,188,112,139,203,188,
176,152,203,188,219,165,203,188,239,178,203,188,238,191,203,188,215,204,203,188,169,217,203,188,102,230,203,188,13,243,203,188,158,255,203,188,25,12,204,188,126,24,204,188,205,36,204,188,6,49,204,188,41,61,204,188,54,73,204,188,45,85,204,188,14,97,204,188,217,108,204,188,142,120,204,188,45,132,204,188,182,143,204,188,41,155,204,188,134,166,204,188,205,177,204,188,254,188,204,188,25,200,204,188,30,211,204,188,13,222,204,188,230,232,204,188,169,243,204,188,86,254,204,188,237,8,205,188,110,19,205,188,
217,29,205,188,46,40,205,188,108,50,205,188,149,60,205,188,168,70,205,188,164,80,205,188,139,90,205,188,91,100,205,188,22,110,205,188,186,119,205,188,72,129,205,188,192,138,205,188,35,148,205,188,111,157,205,188,165,166,205,188,197,175,205,188,207,184,205,188,194,193,205,188,160,202,205,188,104,211,205,188,25,220,205,188,181,228,205,188,58,237,205,188,170,245,205,188,3,254,205,188,70,6,206,188,115,14,206,188,138,22,206,188,139,30,206,188,117,38,206,188,74,46,206,188,9,54,206,188,177,61,206,188,67,
69,206,188,192,76,206,188,38,84,206,188,118,91,206,188,176,98,206,188,211,105,206,188,225,112,206,188,217,119,206,188,186,126,206,188,134,133,206,188,59,140,206,188,218,146,206,188,99,153,206,188,214,159,206,188,50,166,206,188,121,172,206,188,170,178,206,188,196,184,206,188,200,190,206,188,182,196,206,188,142,202,206,188,80,208,206,188,252,213,206,188,146,219,206,188,17,225,206,188,122,230,206,188,206,235,206,188,11,241,206,188,50,246,206,188,67,251,206,188,61,0,207,188,34,5,207,188,240,9,207,188,
169,14,207,188,75,19,207,188,215,23,207,188,77,28,207,188,173,32,207,188,246,36,207,188,42,41,207,188,71,45,207,188,79,49,207,188,64,53,207,188,27,57,207,188,224,60,207,188,142,64,207,188,39,68,207,188,169,71,207,188,22,75,207,188,108,78,207,188,172,81,207,188,214,84,207,188,234,87,207,188,232,90,207,188,207,93,207,188,161,96,207,188,92,99,207,188,1,102,207,188,144,104,207,188,9,107,207,188,108,109,207,188,184,111,207,188,239,113,207,188,15,116,207,188,26,118,207,188,14,120,207,188,236,121,207,188,
180,123,207,188,102,125,207,188,2,127,207,188,135,128,207,188,247,129,207,188,80,131,207,188,147,132,207,188,192,133,207,188,215,134,207,188,216,135,207,188,195,136,207,188,152,137,207,188,86,138,207,188,255,138,207,188,145,139,207,188,14,140,207,188,116,140,207,188,196,140,207,188,254,140,207,188,34,141,207,188,48,141,207,188,39,141,207,188,9,141,207,188,213,140,207,188,138,140,207,188,41,140,207,188,179,139,207,188,38,139,207,188,131,138,207,188,202,137,207,188,251,136,207,188,22,136,207,188,27,
135,207,188,10,134,207,188,227,132,207,188,165,131,207,188,82,130,207,188,232,128,207,188,105,127,207,188,211,125,207,188,40,124,207,188,102,122,207,188,142,120,207,188,160,118,207,188,157,116,207,188,131,114,207,188,83,112,207,188,13,110,207,188,177,107,207,188,63,105,207,188,183,102,207,188,25,100,207,188,101,97,207,188,155,94,207,188,187,91,207,188,197,88,207,188,185,85,207,188,151,82,207,188,94,79,207,188,16,76,207,188,172,72,207,188,50,69,207,188,162,65,207,188,252,61,207,188,64,58,207,188,110,
54,207,188,134,50,207,188,136,46,207,188,116,42,207,188,74,38,207,188,10,34,207,188,180,29,207,188,72,25,207,188,199,20,207,188,47,16,207,188,129,11,207,188,190,6,207,188,228,1,207,188,245,252,206,188,239,247,206,188,212,242,206,188,163,237,206,188,91,232,206,188,254,226,206,188,139,221,206,188,2,216,206,188,100,210,206,188,175,204,206,188,228,198,206,188,4,193,206,188,13,187,206,188,1,181,206,188,223,174,206,188,167,168,206,188,89,162,206,188,245,155,206,188,124,149,206,188,236,142,206,188,71,136,
206,188,140,129,206,188,187,122,206,188,212,115,206,188,215,108,206,188,196,101,206,188,156,94,206,188,94,87,206,188,10,80,206,188,160,72,206,188,33,65,206,188,139,57,206,188,224,49,206,188,31,42,206,188,72,34,206,188,92,26,206,188,89,18,206,188,65,10,206,188,19,2,206,188,207,249,205,188,118,241,205,188,7,233,205,188,130,224,205,188,231,215,205,188,55,207,205,188,113,198,205,188,149,189,205,188,163,180,205,188,156,171,205,188,127,162,205,188,76,153,205,188,4,144,205,188,166,134,205,188,50,125,205,
188,169,115,205,188,10,106,205,188,85,96,205,188,138,86,205,188,170,76,205,188,180,66,205,188,169,56,205,188,136,46,205,188,81,36,205,188,5,26,205,188,163,15,205,188,43,5,205,188,158,250,204,188,251,239,204,188,67,229,204,188,117,218,204,188,145,207,204,188,152,196,204,188,138,185,204,188,101,174,204,188,43,163,204,188,220,151,204,188,119,140,204,188,253,128,204,188,109,117,204,188,199,105,204,188,12,94,204,188,59,82,204,188,85,70,204,188,90,58,204,188,72,46,204,188,34,34,204,188,230,21,204,188,148,
9,204,188,45,253,203,188,177,240,203,188,31,228,203,188,119,215,203,188,186,202,203,188,232,189,203,188,0,177,203,188,3,164,203,188,241,150,203,188,201,137,203,188,139,124,203,188,57,111,203,188,208,97,203,188,83,84,203,188,192,70,203,188,24,57,203,188,90,43,203,188,135,29,203,188,159,15,203,188,161,1,203,188,142,243,202,188,102,229,202,188,40,215,202,188,214,200,202,188,109,186,202,188,240,171,202,188,93,157,202,188,181,142,202,188,248,127,202,188,37,113,202,188,61,98,202,188,64,83,202,188,46,68,
202,188,6,53,202,188,202,37,202,188,120,22,202,188,17,7,202,188,148,247,201,188,3,232,201,188,92,216,201,188,160,200,201,188,207,184,201,188,233,168,201,188,238,152,201,188,221,136,201,188,183,120,201,188,125,104,201,188,45,88,201,188,200,71,201,188,78,55,201,188,191,38,201,188,26,22,201,188,97,5,201,188,147,244,200,188,175,227,200,188,183,210,200,188,170,193,200,188,135,176,200,188,79,159,200,188,3,142,200,188,161,124,200,188,43,107,200,188,159,89,200,188,255,71,200,188,73,54,200,188,127,36,200,
188,160,18,200,188,171,0,200,188,162,238,199,188,132,220,199,188,81,202,199,188,9,184,199,188,172,165,199,188,58,147,199,188,180,128,199,188,24,110,199,188,104,91,199,188,163,72,199,188,201,53,199,188,218,34,199,188,214,15,199,188,190,252,198,188,145,233,198,188,79,214,198,188,248,194,198,188,140,175,198,188,12,156,198,188,119,136,198,188,205,116,198,188,14,97,198,188,59,77,198,188,83,57,198,188,86,37,198,188,69,17,198,188,31,253,197,188,228,232,197,188,149,212,197,188,49,192,197,188,184,171,197,
188,43,151,197,188,137,130,197,188,210,109,197,188,7,89,197,188,39,68,197,188,51,47,197,188,42,26,197,188,12,5,197,188,218,239,196,188,148,218,196,188,57,197,196,188,201,175,196,188,69,154,196,188,172,132,196,188,255,110,196,188,62,89,196,188,104,67,196,188,125,45,196,188,126,23,196,188,107,1,196,188,67,235,195,188,7,213,195,188,182,190,195,188,81,168,195,188,216,145,195,188,74,123,195,188,168,100,195,188,242,77,195,188,39,55,195,188,72,32,195,188,84,9,195,188,77,242,194,188,49,219,194,188,0,196,
194,188,188,172,194,188,99,149,194,188,246,125,194,188,117,102,194,188,223,78,194,188,54,55,194,188,120,31,194,188,165,7,194,188,191,239,193,188,197,215,193,188,182,191,193,188,147,167,193,188,92,143,193,188,17,119,193,188,178,94,193,188,63,70,193,188,184,45,193,188,29,21,193,188,109,252,192,188,170,227,192,188,210,202,192,188,231,177,192,188,231,152,192,188,211,127,192,188,172,102,192,188,112,77,192,188,33,52,192,188,189,26,192,188,70,1,192,188,187,231,191,188,28,206,191,188,104,180,191,188,161,
154,191,188,198,128,191,188,216,102,191,188,213,76,191,188,191,50,191,188,148,24,191,188,86,254,190,188,4,228,190,188,158,201,190,188,37,175,190,188,152,148,190,188,247,121,190,188,66,95,190,188,121,68,190,188,157,41,190,188,173,14,190,188,170,243,189,188,146,216,189,188,103,189,189,188,41,162,189,188,214,134,189,188,112,107,189,188,247,79,189,188,106,52,189,188,201,24,189,188,21,253,188,188,77,225,188,188,114,197,188,188,131,169,188,188,128,141,188,188,106,113,188,188,65,85,188,188,4,57,188,188,
179,28,188,188,79,0,188,188,216,227,187,188,77,199,187,188,175,170,187,188,253,141,187,188,56,113,187,188,96,84,187,188,116,55,187,188,117,26,187,188,99,253,186,188,61,224,186,188,4,195,186,188,184,165,186,188,88,136,186,188,229,106,186,188,95,77,186,188,197,47,186,188,25,18,186,188,89,244,185,188,134,214,185,188,160,184,185,188,166,154,185,188,153,124,185,188,122,94,185,188,71,64,185,188,1,34,185,188,168,3,185,188,60,229,184,188,188,198,184,188,42,168,184,188,133,137,184,188,204,106,184,188,1,76,
184,188,34,45,184,188,49,14,184,188,45,239,183,188,21,208,183,188,235,176,183,188,174,145,183,188,94,114,183,188,251,82,183,188,133,51,183,188,252,19,183,188,96,244,182,188,178,212,182,188,240,180,182,188,28,149,182,188,53,117,182,188,59,85,182,188,47,53,182,188,16,21,182,188,222,244,181,188,153,212,181,188,65,180,181,188,215,147,181,188,90,115,181,188,203,82,181,188,41,50,181,188,116,17,181,188,172,240,180,188,210,207,180,188,230,174,180,188,230,141,180,188,213,108,180,188,176,75,180,188,121,42,
180,188,48,9,180,188,212,231,179,188,102,198,179,188,229,164,179,188,82,131,179,188,172,97,179,188,244,63,179,188,41,30,179,188,76,252,178,188,93,218,178,188,91,184,178,188,71,150,178,188,33,116,178,188,232,81,178,188,157,47,178,188,64,13,178,188,208,234,177,188,78,200,177,188,186,165,177,188,20,131,177,188,91,96,177,188,145,61,177,188,180,26,177,188,197,247,176,188,196,212,176,188,176,177,176,188,139,142,176,188,84,107,176,188,10,72,176,188,174,36,176,188,65,1,176,188,193,221,175,188,47,186,175,
188,139,150,175,188,214,114,175,188,14,79,175,188,52,43,175,188,73,7,175,188,75,227,174,188,60,191,174,188,27,155,174,188,232,118,174,188,163,82,174,188,76,46,174,188,227,9,174,188,105,229,173,188,220,192,173,188,62,156,173,188,143,119,173,188,205,82,173,188,250,45,173,188,21,9,173,188,30,228,172,188,22,191,172,188,252,153,172,188,209,116,172,188,147,79,172,188,69,42,172,188,228,4,172,188,114,223,171,188,239,185,171,188,90,148,171,188,179,110,171,188,251,72,171,188,50,35,171,188,87,253,170,188,106,
215,170,188,108,177,170,188,93,139,170,188,60,101,170,188,10,63,170,188,199,24,170,188,114,242,169,188,12,204,169,188,148,165,169,188,11,127,169,188,113,88,169,188,198,49,169,188,10,11,169,188,60,228,168,188,93,189,168,188,109,150,168,188,107,111,168,188,89,72,168,188,53,33,168,188,1,250,167,188,187,210,167,188,100,171,167,188,252,131,167,188,131,92,167,188,249,52,167,188,94,13,167,188,177,229,166,188,244,189,166,188,38,150,166,188,71,110,166,188,87,70,166,188,87,30,166,188,69,246,165,188,34,206,
165,188,239,165,165,188,171,125,165,188,86,85,165,188,240,44,165,188,121,4,165,188,242,219,164,188,89,179,164,188,176,138,164,188,247,97,164,188,45,57,164,188,82,16,164,188,102,231,163,188,106,190,163,188,93,149,163,188,63,108,163,188],"i8",4,y.a+204800);
Q([17,67,163,188,211,25,163,188,131,240,162,188,36,199,162,188,179,157,162,188,51,116,162,188,162,74,162,188,0,33,162,188,78,247,161,188,139,205,161,188,184,163,161,188,213,121,161,188,226,79,161,188,222,37,161,188,201,251,160,188,165,209,160,188,112,167,160,188,43,125,160,188,213,82,160,188,112,40,160,188,250,253,159,188,116,211,159,188,222,168,159,188,55,126,159,188,129,83,159,188,186,40,159,188,228,253,158,188,253,210,158,188,6,168,158,188,255,124,158,188,232,81,158,188,194,38,158,188,139,251,
157,188,68,208,157,188,237,164,157,188,134,121,157,188,16,78,157,188,137,34,157,188,243,246,156,188,77,203,156,188,151,159,156,188,209,115,156,188,251,71,156,188,22,28,156,188,33,240,155,188,28,196,155,188,7,152,155,188,227,107,155,188,175,63,155,188,108,19,155,188,24,231,154,188,182,186,154,188,67,142,154,188,193,97,154,188,48,53,154,188,143,8,154,188,222,219,153,188,30,175,153,188,78,130,153,188,111,85,153,188,129,40,153,188,131,251,152,188,118,206,152,188,89,161,152,188,45,116,152,188,242,70,152,
188,167,25,152,188,77,236,151,188,228,190,151,188,107,145,151,188,228,99,151,188,77,54,151,188,167,8,151,188,241,218,150,188,45,173,150,188,89,127,150,188,119,81,150,188,133,35,150,188,132,245,149,188,116,199,149,188,85,153,149,188,39,107,149,188,234,60,149,188,158,14,149,188,67,224,148,188,217,177,148,188,97,131,148,188,217,84,148,188,66,38,148,188,157,247,147,188,233,200,147,188,38,154,147,188,84,107,147,188,116,60,147,188,132,13,147,188,134,222,146,188,121,175,146,188,94,128,146,188,52,81,146,
188,251,33,146,188,180,242,145,188,94,195,145,188,249,147,145,188,134,100,145,188,5,53,145,188,116,5,145,188,214,213,144,188,41,166,144,188,109,118,144,188,163,70,144,188,203,22,144,188,228,230,143,188,239,182,143,188,235,134,143,188,217,86,143,188,185,38,143,188,138,246,142,188,78,198,142,188,3,150,142,188,169,101,142,188,66,53,142,188,204,4,142,188,73,212,141,188,183,163,141,188,23,115,141,188,104,66,141,188,172,17,141,188,226,224,140,188,10,176,140,188,35,127,140,188,47,78,140,188,45,29,140,188,
28,236,139,188,254,186,139,188,210,137,139,188,152,88,139,188,80,39,139,188,251,245,138,188,151,196,138,188,38,147,138,188,167,97,138,188,26,48,138,188,128,254,137,188,215,204,137,188,33,155,137,188,94,105,137,188,141,55,137,188,174,5,137,188,193,211,136,188,199,161,136,188,191,111,136,188,170,61,136,188,136,11,136,188,87,217,135,188,26,167,135,188,207,116,135,188,118,66,135,188,16,16,135,188,157,221,134,188,28,171,134,188,142,120,134,188,243,69,134,188,74,19,134,188,148,224,133,188,209,173,133,188,
1,123,133,188,35,72,133,188,56,21,133,188,64,226,132,188,59,175,132,188,41,124,132,188,10,73,132,188,221,21,132,188,164,226,131,188,93,175,131,188,10,124,131,188,170,72,131,188,60,21,131,188,194,225,130,188,58,174,130,188,166,122,130,188,5,71,130,188,87,19,130,188,157,223,129,188,213,171,129,188,1,120,129,188,32,68,129,188,50,16,129,188,55,220,128,188,48,168,128,188,28,116,128,188,252,63,128,188,206,11,128,188,41,175,127,188,156,70,127,188,246,221,126,188,56,117,126,188,96,12,126,188,111,163,125,
188,101,58,125,188,66,209,124,188,6,104,124,188,178,254,123,188,69,149,123,188,191,43,123,188,32,194,122,188,105,88,122,188,153,238,121,188,177,132,121,188,177,26,121,188,151,176,120,188,102,70,120,188,28,220,119,188,186,113,119,188,63,7,119,188,173,156,118,188,2,50,118,188,63,199,117,188,100,92,117,188,113,241,116,188,102,134,116,188,67,27,116,188,8,176,115,188,182,68,115,188,76,217,114,188,201,109,114,188,48,2,114,188,126,150,113,188,181,42,113,188,212,190,112,188,220,82,112,188,205,230,111,188,
166,122,111,188,103,14,111,188,18,162,110,188,165,53,110,188,33,201,109,188,133,92,109,188,211,239,108,188,9,131,108,188,41,22,108,188,49,169,107,188,34,60,107,188,253,206,106,188,193,97,106,188,110,244,105,188,4,135,105,188,131,25,105,188,236,171,104,188,62,62,104,188,122,208,103,188,159,98,103,188,173,244,102,188,165,134,102,188,135,24,102,188,83,170,101,188,8,60,101,188,167,205,100,188,47,95,100,188,162,240,99,188,255,129,99,188,69,19,99,188,118,164,98,188,144,53,98,188,149,198,97,188,131,87,97,
188,92,232,96,188,31,121,96,188,205,9,96,188,101,154,95,188,231,42,95,188,84,187,94,188,171,75,94,188,236,219,93,188,25,108,93,188,47,252,92,188,49,140,92,188,29,28,92,188,244,171,91,188,182,59,91,188,99,203,90,188,250,90,90,188,125,234,89,188,234,121,89,188,67,9,89,188,135,152,88,188,181,39,88,188,208,182,87,188,213,69,87,188,198,212,86,188,162,99,86,188,105,242,85,188,28,129,85,188,186,15,85,188,68,158,84,188,185,44,84,188,26,187,83,188,103,73,83,188,160,215,82,188,196,101,82,188,212,243,81,188,
208,129,81,188,184,15,81,188,140,157,80,188,76,43,80,188,248,184,79,188,144,70,79,188,21,212,78,188,133,97,78,188,226,238,77,188,43,124,77,188,97,9,77,188,131,150,76,188,145,35,76,188,140,176,75,188,116,61,75,188,72,202,74,188,9,87,74,188,183,227,73,188,81,112,73,188,216,252,72,188,76,137,72,188,173,21,72,188,251,161,71,188,54,46,71,188,94,186,70,188,115,70,70,188,117,210,69,188,101,94,69,188,65,234,68,188,12,118,68,188,195,1,68,188,104,141,67,188,250,24,67,188,122,164,66,188,231,47,66,188,66,187,
65,188,139,70,65,188,193,209,64,188,229,92,64,188,247,231,63,188,247,114,63,188,229,253,62,188,192,136,62,188,138,19,62,188,66,158,61,188,232,40,61,188,124,179,60,188,254,61,60,188,110,200,59,188,205,82,59,188,26,221,58,188,86,103,58,188,128,241,57,188,153,123,57,188,160,5,57,188,149,143,56,188,122,25,56,188,77,163,55,188,15,45,55,188,191,182,54,188,95,64,54,188,237,201,53,188,107,83,53,188,215,220,52,188,51,102,52,188,125,239,51,188,183,120,51,188,224,1,51,188,249,138,50,188,0,20,50,188,247,156,
49,188,222,37,49,188,179,174,48,188,121,55,48,188,46,192,47,188,210,72,47,188,103,209,46,188,235,89,46,188,94,226,45,188,194,106,45,188,22,243,44,188,89,123,44,188,140,3,44,188,176,139,43,188,195,19,43,188,199,155,42,188,187,35,42,188,159,171,41,188,115,51,41,188,56,187,40,188,237,66,40,188,146,202,39,188,40,82,39,188,175,217,38,188,38,97,38,188,142,232,37,188,230,111,37,188,48,247,36,188,106,126,36,188,149,5,36,188,176,140,35,188,189,19,35,188,187,154,34,188,170,33,34,188,137,168,33,188,91,47,33,
188,29,182,32,188,208,60,32,188,117,195,31,188,11,74,31,188,147,208,30,188,12,87,30,188,119,221,29,188,211,99,29,188,33,234,28,188,96,112,28,188,145,246,27,188,180,124,27,188,201,2,27,188,208,136,26,188,201,14,26,188,179,148,25,188,144,26,25,188,95,160,24,188,31,38,24,188,210,171,23,188,120,49,23,188,15,183,22,188,153,60,22,188,22,194,21,188,132,71,21,188,230,204,20,188,58,82,20,188,128,215,19,188,185,92,19,188,229,225,18,188,4,103,18,188,21,236,17,188,25,113,17,188,16,246,16,188,251,122,16,188,216,
255,15,188,168,132,15,188,107,9,15,188,34,142,14,188,204,18,14,188,105,151,13,188,249,27,13,188,125,160,12,188,244,36,12,188,95,169,11,188,189,45,11,188,15,178,10,188,85,54,10,188,142,186,9,188,187,62,9,188,220,194,8,188,240,70,8,188,249,202,7,188,245,78,7,188,230,210,6,188,203,86,6,188,163,218,5,188,112,94,5,188,49,226,4,188,231,101,4,188,144,233,3,188,47,109,3,188,193,240,2,188,72,116,2,188,196,247,1,188,52,123,1,188,153,254,0,188,242,129,0,188,65,5,0,188,7,17,255,187,119,23,254,187,209,29,253,
187,20,36,252,187,66,42,251,187,90,48,250,187,92,54,249,187,72,60,248,187,31,66,247,187,224,71,246,187,140,77,245,187,35,83,244,187,165,88,243,187,17,94,242,187,105,99,241,187,172,104,240,187,218,109,239,187,244,114,238,187,249,119,237,187,233,124,236,187,198,129,235,187,142,134,234,187,66,139,233,187,227,143,232,187,111,148,231,187,231,152,230,187,76,157,229,187,158,161,228,187,220,165,227,187,7,170,226,187,30,174,225,187,34,178,224,187,20,182,223,187,242,185,222,187,190,189,221,187,119,193,220,
187,29,197,219,187,177,200,218,187,50,204,217,187,161,207,216,187,254,210,215,187,73,214,214,187,130,217,213,187,170,220,212,187,191,223,211,187,195,226,210,187,181,229,209,187,150,232,208,187,102,235,207,187,36,238,206,187,209,240,205,187,110,243,204,187,249,245,203,187,116,248,202,187,222,250,201,187,55,253,200,187,128,255,199,187,185,1,199,187,225,3,198,187,249,5,197,187,1,8,196,187,250,9,195,187,226,11,194,187,187,13,193,187,132,15,192,187,62,17,191,187,232,18,190,187,131,20,189,187,15,22,188,
187,139,23,187,187,249,24,186,187,88,26,185,187,168,27,184,187,233,28,183,187,28,30,182,187,65,31,181,187,87,32,180,187,95,33,179,187,89,34,178,187,69,35,177,187,35,36,176,187,243,36,175,187,182,37,174,187,106,38,173,187,18,39,172,187,172,39,171,187,57,40,170,187,185,40,169,187,43,41,168,187,145,41,167,187,234,41,166,187,54,42,165,187,118,42,164,187,169,42,163,187,207,42,162,187,234,42,161,187,248,42,160,187,250,42,159,187,240,42,158,187,219,42,157,187,185,42,156,187,140,42,155,187,83,42,154,187,
15,42,153,187,192,41,152,187,101,41,151,187,0,41,150,187,143,40,149,187,19,40,148,187,141,39,147,187,252,38,146,187,96,38,145,187,186,37,144,187,10,37,143,187,79,36,142,187,138,35,141,187,187,34,140,187,227,33,139,187,0,33,138,187,20,32,137,187,30,31,136,187,30,30,135,187,21,29,134,187,3,28,133,187,232,26,132,187,196,25,131,187,150,24,130,187,96,23,129,187,33,22,128,187,179,41,126,187,19,39,124,187,98,36,122,187,160,33,120,187,206,30,118,187,236,27,116,187,249,24,114,187,247,21,112,187,230,18,110,
187,197,15,108,187,149,12,106,187,86,9,104,187,8,6,102,187,172,2,100,187,65,255,97,187,201,251,95,187,66,248,93,187,174,244,91,187,13,241,89,187,94,237,87,187,163,233,85,187,219,229,83,187,6,226,81,187,37,222,79,187,55,218,77,187,62,214,75,187,57,210,73,187,41,206,71,187,13,202,69,187,231,197,67,187,181,193,65,187,121,189,63,187,51,185,61,187,226,180,59,187,135,176,57,187,35,172,55,187,181,167,53,187,62,163,51,187,190,158,49,187,52,154,47,187,162,149,45,187,8,145,43,187,101,140,41,187,187,135,39,
187,8,131,37,187,78,126,35,187,141,121,33,187,196,116,31,187,245,111,29,187,31,107,27,187,66,102,25,187,95,97,23,187,118,92,21,187,134,87,19,187,146,82,17,187,152,77,15,187,152,72,13,187,148,67,11,187,139,62,9,187,125,57,7,187,107,52,5,187,84,47,3,187,58,42,1,187,56,74,254,186,245,63,250,186,171,53,246,186,91,43,242,186,6,33,238,186,171,22,234,186,75,12,230,186,231,1,226,186,127,247,221,186,19,237,217,186,165,226,213,186,51,216,209,186,191,205,205,186,73,195,201,186,210,184,197,186,90,174,193,186,
225,163,189,186,104,153,185,186,240,142,181,186,120,132,177,186,1,122,173,186,140,111,169,186,24,101,165,186,168,90,161,186,58,80,157,186,207,69,153,186,104,59,149,186,5,49,145,186,167,38,141,186,78,28,137,186,250,17,133,186,173,7,129,186,202,250,121,186,72,230,113,186,213,209,105,186,113,189,97,186,28,169,89,186,217,148,81,186,167,128,73,186,136,108,65,186,125,88,57,186,133,68,49,186,163,48,41,186,215,28,33,186,34,9,25,186,133,245,16,186,0,226,8,186,148,206,0,186,134,118,241,185,26,80,225,185,230,
41,209,185,236,3,193,185,45,222,176,185,172,184,160,185,105,147,144,185,103,110,128,185,79,147,96,185,87,74,64,185,235,1,32,185,29,116,255,184,135,229,190,184,57,176,124,184,147,47,247,183,144,198,175,53,178,145,6,56,81,209,131,56,124,88,196,56,41,111,2,57,102,177,34,57,243,242,66,57,203,51,99,57,245,185,129,57,168,217,145,57,251,248,161,57,237,23,178,57,124,54,194,57,166,84,210,57,107,114,226,57,200,143,242,57,93,86,1,58,161,100,9,58,174,114,17,58,132,128,25,58,34,142,33,58,135,155,41,58,178,168,
49,58,162,181,57,58,86,194,65,58,206,206,73,58,9,219,81,58,6,231,89,58,195,242,97,58,65,254,105,58,126,9,114,58,121,20,122,58,153,15,129,58,212,20,133,58,237,25,137,58,227,30,141,58,182,35,145,58,102,40,149,58,243,44,153,58,91,49,157,58,158,53,161,58,189,57,165,58,182,61,169,58,137,65,173,58,54,69,177,58,188,72,181,58,27,76,185,58,82,79,189,58,98,82,193,58,73,85,197,58,7,88,201,58,156,90,205,58,7,93,209,58,72,95,213,58,95,97,217,58,74,99,221,58,10,101,225,58,159,102,229,58,7,104,233,58,66,105,237,
58,81,106,241,58,50,107,245,58,229,107,249,58,106,108,253,58,96,182,0,59,115,182,2,59,111,182,4,59,82,182,6,59,30,182,8,59,209,181,10,59,107,181,12,59,236,180,14,59,85,180,16,59,164,179,18,59,217,178,20,59,245,177,22,59,247,176,24,59,223,175,26,59,173,174,28,59,96,173,30,59,248,171,32,59,117,170,34,59,215,168,36,59,30,167,38,59,73,165,40,59,89,163,42,59,76,161,44,59,35,159,46,59,222,156,48,59,124,154,50,59,253,151,52,59,97,149,54,59,168,146,56,59,210,143,58,59,222,140,60,59,203,137,62,59,155,134,
64,59,77,131,66,59,224,127,68,59,84,124,70,59,169,120,72,59,223,116,74,59,246,112,76,59,237,108,78,59,197,104,80,59,124,100,82,59,20,96,84,59,138,91,86,59,225,86,88,59,22,82,90,59,43,77,92,59,30,72,94,59,240,66,96,59,160,61,98,59,46,56,100,59,154,50,102,59,228,44,104,59,12,39,106,59,17,33,108,59,243,26,110,59,178,20,112,59,77,14,114,59,197,7,116,59,25,1,118,59,74,250,119,59,86,243,121,59,62,236,123,59,1,229,125,59,160,221,127,59,13,235,128,59,55,231,129,59,79,227,130,59,83,223,131,59,69,219,132,59,
36,215,133,59,240,210,134,59,168,206,135,59,78,202,136,59,223,197,137,59,94,193,138,59,200,188,139,59,31,184,140,59,99,179,141,59,146,174,142,59,173,169,143,59,180,164,144,59,167,159,145,59,134,154,146,59,80,149,147,59,5,144,148,59,166,138,149,59,50,133,150,59,170,127,151,59,12,122,152,59,89,116,153,59,146,110,154,59,180,104,155,59,194,98,156,59,186,92,157,59,157,86,158,59,105,80,159,59,32,74,160,59,194,67,161,59,77,61,162,59,194,54,163,59,33,48,164,59,106,41,165,59,156,34,166,59,184,27,167,59,189,
20,168,59,172,13,169,59,132,6,170,59,69,255,170,59,238,247,171,59,129,240,172,59,253,232,173,59,97,225,174,59,174,217,175,59,228,209,176,59,2,202,177,59,8,194,178,59,246,185,179,59,204,177,180,59,139,169,181,59,49,161,182,59,191,152,183,59,53,144,184,59,147,135,185,59,216,126,186,59,4,118,187,59,23,109,188,59,18,100,189,59,244,90,190,59,189,81,191,59,109,72,192,59,3,63,193,59,129,53,194,59,228,43,195,59,47,34,196,59,95,24,197,59,118,14,198,59,115,4,199,59,87,250,199,59,32,240,200,59,207,229,201,59,
100,219,202,59,222,208,203,59,63,198,204,59,132,187,205,59,175,176,206,59,192,165,207,59,181,154,208,59,144,143,209,59,79,132,210,59,244,120,211,59,125,109,212,59,235,97,213,59,61,86,214,59,116,74,215,59,144,62,216,59,144,50,217,59,115,38,218,59,59,26,219,59,231,13,220,59,119,1,221,59,235,244,221,59,66,232,222,59,125,219,223,59,156,206,224,59,157,193,225,59,131,180,226,59,75,167,227,59,246,153,228,59,133,140,229,59,246,126,230,59,74,113,231,59,129,99,232,59,155,85,233,59,151,71,234,59,117,57,235,
59,54,43,236,59,217,28,237,59,94,14,238,59,197,255,238,59,14,241,239,59,57,226,240,59,69,211,241,59,51,196,242,59,3,181,243,59,180,165,244,59,71,150,245,59,186,134,246,59,15,119,247,59,69,103,248,59,92,87,249,59,84,71,250,59,44,55,251,59,229,38,252,59,127,22,253,59,249,5,254,59,83,245,254,59,142,228,255,59,213,105,0,60,82,225,0,60,192,88,1,60,29,208,1,60,106,71,2,60,167,190,2,60,212,53,3,60,241,172,3,60,253,35,4,60,250,154,4,60,229,17,5,60,192,136,5,60,139,255,5,60,69,118,6,60,239,236,6,60,136,99,
7,60,16,218,7,60,135,80,8,60,238,198,8,60,68,61,9,60,137,179,9,60,189,41,10,60,224,159,10,60,242,21,11,60,243,139,11,60,227,1,12,60,194,119,12,60,144,237,12,60,76,99,13,60,247,216,13,60,144,78,14,60,25,196,14,60,143,57,15,60,245,174,15,60,72,36,16,60,138,153,16,60,187,14,17,60,218,131,17,60,231,248,17,60,226,109,18,60,203,226,18,60,163,87,19,60,104,204,19,60,28,65,20,60,190,181,20,60,77,42,21,60,203,158,21,60,54,19,22,60,143,135,22,60,214,251,22,60,11,112,23,60,45,228,23,60,61,88,24,60,58,204,24,
60,37,64,25,60,253,179,25,60,195,39,26,60,118,155,26,60,22,15,27,60,164,130,27,60,31,246,27,60,135,105,28,60,221,220,28,60,31,80,29,60,78,195,29,60,107,54,30,60,116,169,30,60,107,28,31,60,78,143,31,60,30,2,32,60,218,116,32,60,132,231,32,60,26,90,33,60,157,204,33,60,12,63,34,60,104,177,34,60,176,35,35,60,229,149,35,60,6,8,36,60,20,122,36,60,14,236,36,60,244,93,37,60,198,207,37,60,133,65,38,60,48,179,38,60,198,36,39,60,73,150,39,60,184,7,40,60,18,121,40,60,89,234,40,60,140,91,41,60,170,204,41,60,180,
61,42,60,169,174,42,60,139,31,43,60,88,144,43,60,16,1,44,60,181,113,44,60,68,226,44,60,191,82,45,60,38,195,45,60,120,51,46,60,181,163,46,60,221,19,47,60,241,131,47,60,239,243,47,60,217,99,48,60,174,211,48,60,110,67,49,60,25,179,49,60,175,34,50,60,48,146,50,60,156,1,51,60,242,112,51,60,52,224,51,60,96,79,52,60,118,190,52,60,120,45,53,60,100,156,53,60,58,11,54,60,251,121,54,60,167,232,54,60,61,87,55,60,189,197,55,60,39,52,56,60,124,162,56,60,187,16,57,60,228,126,57,60,248,236,57,60,245,90,58,60,221,
200,58,60,174,54,59,60,106,164,59,60,16,18,60,60,159,127,60,60,24,237,60,60,123,90,61,60,200,199,61,60,254,52,62,60,30,162,62,60,40,15,63,60,28,124,63,60,248,232,63,60,191,85,64,60,111,194,64,60,8,47,65,60,138,155,65,60,246,7,66,60,75,116,66,60,138,224,66,60,177,76,67,60,194,184,67,60,188,36,68,60,159,144,68,60,107,252,68,60,32,104,69,60,189,211,69,60,68,63,70,60,180,170,70,60,12,22,71,60,77,129,71,60,119,236,71,60,137,87,72,60,132,194,72,60,104,45,73,60,52,152,73,60,233,2,74,60,134,109,74,60,12,
216,74,60,122,66,75,60,208,172,75,60,15,23,76,60,54,129,76,60,69,235,76,60,60,85,77,60,27,191,77,60,227,40,78,60,146,146,78,60,42,252,78,60,169,101,79,60,16,207,79,60,95,56,80,60,150,161,80,60,181,10,81,60,188,115,81,60,170,220,81,60,128,69,82,60,61,174,82,60,226,22,83,60,111,127,83,60,227,231,83,60,63,80,84,60,130,184,84,60,172,32,85,60,190,136,85,60,183,240,85,60,151,88,86,60,94,192,86,60,13,40,87,60,162,143,87,60,31,247,87,60,131,94,88,60,206,197,88,60,255,44,89,60,24,148,89,60,23,251,89,60,254,
97,90,60,203,200,90,60,127,47,91,60,25,150,91,60,155,252,91,60,2,99,92,60,81,201,92,60,134,47,93,60,161,149,93,60,163,251,93,60,140,97,94,60,91,199,94,60,16,45,95,60,171,146,95,60,45,248,95,60,149,93,96,60,227,194,96,60,23,40,97,60,50,141,97,60,50,242,97,60,24,87,98,60,229,187,98,60,151,32,99,60,48,133,99,60,174,233,99,60,18,78,100,60,91,178,100,60,139,22,101,60,160,122,101,60,155,222,101,60,124,66,102,60,66,166,102,60,237,9,103,60,126,109,103,60,245,208,103,60,81,52,104,60,146,151,104,60,185,250,
104,60,197,93,105,60,183,192,105,60,141,35,106,60,73,134,106,60,234,232,106,60,112,75,107,60,219,173,107,60,43,16,108,60,96,114,108,60,123,212,108,60,122,54,109,60,94,152,109,60,38,250,109,60,212,91,110,60,102,189,110,60,221,30,111,60,57,128,111,60,122,225,111,60,159,66,112,60,168,163,112,60,150,4,113,60,105,101,113,60,32,198,113,60,188,38,114,60,59,135,114,60,160,231,114,60,232,71,115,60,21,168,115,60,38,8,116,60,27,104,116,60,245,199,116,60,178,39,117,60,84,135,117,60,218,230,117,60,67,70,118,60,
145,165,118,60,195,4,119,60,216,99,119,60,209,194,119,60,175,33,120,60,111,128,120,60,20,223,120,60,157,61,121,60,9,156,121,60,88,250,121,60,140,88,122,60,162,182,122,60,157,20,123,60,123,114,123,60,60,208,123,60,225,45,124,60,105,139,124,60,212,232,124,60,35,70,125,60,85,163,125,60,106,0,126,60,98,93,126,60,62,186,126,60,253,22,127,60,158,115,127,60,35,208,127,60,70,22,128,60,107,68,128,60,130,114,128,60,138,160,128,60,132,206,128,60,111,252,128,60,76,42,129,60,25,88,129,60,217,133,129,60,137,179,
129,60,43,225,129,60,191,14,130,60,67,60,130,60,185,105,130,60,32,151,130,60,121,196,130,60,194,241,130,60,253,30,131,60,41,76,131,60,70,121,131,60,84,166,131,60,83,211,131,60,68,0,132,60,38,45,132,60,248,89,132,60,188,134,132,60,113,179,132,60,22,224,132,60,173,12,133,60,53,57,133,60,174,101,133,60,23,146,133,60,114,190,133,60,190,234,133,60,250,22,134,60,40,67,134,60,70,111,134,60,85,155,134,60,85,199,134,60,69,243,134,60,39,31,135,60,249,74,135,60,188,118,135,60,112,162,135,60,21,206,135,60,170,
249,135,60,48,37,136,60,167,80,136,60,14,124,136,60,102,167,136,60,175,210,136,60,232,253,136,60,18,41,137,60,44,84,137,60,55,127,137,60,50,170,137,60,31,213,137,60,251,255,137,60,200,42,138,60,134,85,138,60,52,128,138,60,210,170,138,60,97,213,138,60,224,255,138,60,80,42,139,60,176,84,139,60,0,127,139,60,65,169,139,60,114,211,139,60,148,253,139,60,165,39,140,60,167,81,140,60,154,123,140,60,124,165,140,60,79,207,140,60,18,249,140,60,197,34,141,60,104,76,141,60,252,117,141,60,128,159,141,60,243,200,
141,60,87,242,141,60,171,27,142,60,240,68,142,60,36,110,142,60,72,151,142,60,92,192,142,60,97,233,142,60,85,18,143,60,57,59,143,60,14,100,143,60,210,140,143,60,134,181,143,60,42,222,143,60,190,6,144,60,66,47,144,60,182,87,144,60,26,128,144,60,109,168,144,60,177,208,144,60,228,248,144,60,7,33,145,60,26,73,145,60,29,113,145,60,15,153,145,60,241,192,145,60,195,232,145,60,132,16,146,60,54,56,146,60,215,95,146,60,103,135,146,60,231,174,146,60,87,214,146,60,183,253,146,60,6,37,147,60,69,76,147,60,115,115,
147,60,145,154,147,60,158,193,147,60,155,232,147,60,136,15,148,60,100,54,148,60,47,93,148,60,234,131,148,60,148,170,148,60,46,209,148,60,183,247,148,60,48,30,149,60,152,68,149,60,239,106,149,60,54,145,149,60,108,183,149,60,146,221,149,60,167,3,150,60,171,41,150,60,158,79,150,60,129,117,150,60,83,155,150,60,20,193,150,60,197,230,150,60,100,12,151,60,243,49,151,60,113,87,151,60,223,124,151,60,59,162,151,60,135,199,151,60,193,236,151,60,235,17,152,60,4,55,152,60,12,92,152,60,3,129,152,60,234,165,152,
60,191,202,152,60,131,239,152,60,54,20,153,60,217,56,153,60,106,93,153,60,234,129,153,60,90,166,153,60,184,202,153,60,5,239,153,60,65,19,154,60,108,55,154,60,134,91,154,60,143,127,154,60,135,163,154,60,109,199,154,60,67,235,154,60,7,15,155,60,186,50,155,60,92,86,155,60,236,121,155,60,108,157,155,60,218,192,155,60,55,228,155,60,131,7,156,60,189,42,156,60,230,77,156,60,254,112,156,60,4,148,156,60,249,182,156,60,221,217,156,60,176,252,156,60,113,31,157,60,33,66,157,60,191,100,157,60,76,135,157,60,199,
169,157,60,49,204,157,60,138,238,157,60,209,16,158,60,7,51,158,60,43,85,158,60,61,119,158,60,63,153,158,60,46,187,158,60,12,221,158,60,217,254,158,60,148,32,159,60,61,66,159,60,213,99,159,60,91,133,159,60,208,166,159,60,51,200,159,60,132,233,159,60,196,10,160,60,242,43,160,60,14,77,160,60,25,110,160,60,18,143,160,60,249,175,160,60,207,208,160,60,147,241,160,60,69,18,161,60,229,50,161,60,115,83,161,60,240,115,161,60,91,148,161,60,180,180,161,60,251,212,161,60,49,245,161,60,84,21,162,60,102,53,162,
60,102,85,162,60,84,117,162,60,48,149,162,60,250,180,162,60,178,212,162,60,89,244,162,60,237,19,163,60,112,51,163,60,224,82,163,60,63,114,163,60,139,145,163,60,198,176,163,60,238,207,163,60,4,239,163,60,9,14,164,60,251,44,164,60,220,75,164,60,170,106,164,60,102,137,164,60,16,168,164,60,168,198,164,60,46,229,164,60,161,3,165,60,3,34,165,60,82,64,165,60,144,94,165,60,187,124,165,60,212,154,165,60,218,184,165,60,207,214,165,60,177,244,165,60,129,18,166,60,63,48,166,60,235,77,166,60,132,107,166,60,11,
137,166,60,128,166,166,60,226,195,166,60,50,225,166,60,112,254,166,60,156,27,167,60,181,56,167,60,188,85,167,60,176,114,167,60,146,143,167,60,98,172,167,60,31,201,167,60,202,229,167,60,99,2,168,60,233,30,168,60,92,59,168,60,189,87,168,60,12,116,168,60,72,144,168,60,114,172,168,60,138,200,168,60,142,228,168,60,129,0,169,60,97,28,169,60,46,56,169,60,233,83,169,60,145,111,169,60,38,139,169,60,169,166,169,60,26,194,169,60,120,221,169,60,195,248,169,60,252,19,170,60,34,47,170,60,53,74,170,60,54,101,170,
60,36,128,170,60,0,155,170,60,201,181,170,60,127,208,170,60,35,235,170,60,179,5,171,60,49,32,171,60,157,58,171,60,245,84,171,60,59,111,171,60,111,137,171,60,143,163,171,60,157,189,171,60,152,215,171,60,128,241,171,60,85,11,172,60,24,37,172,60,199,62,172,60,100,88,172,60,238,113,172,60,102,139,172,60,202,164,172,60,27,190,172,60,90,215,172,60,134,240,172,60,159,9,173,60,165,34,173,60,152,59,173,60,120,84,173,60,70,109,173,60,0,134,173,60,167,158,173,60,60,183,173,60,189,207,173,60,44,232,173,60,136,
0,174,60,208,24,174,60,6,49,174,60,41,73,174,60,56,97,174,60,53,121,174,60,30,145,174,60,245,168,174,60,184,192,174,60,105,216,174,60,6,240,174,60,145,7,175,60,8,31,175,60,108,54,175,60,189,77,175,60,251,100,175,60,38,124,175,60,62,147,175,60,67,170,175,60,52,193,175,60,19,216,175,60,222,238,175,60,150,5,176,60,59,28,176,60,205,50,176,60,75,73,176,60,183,95,176,60,15,118,176,60,84,140,176,60,134,162,176,60,164,184,176,60,176,206,176,60,168,228,176,60,141,250,176,60,94,16,177,60,29,38,177,60,200,59,
177,60,96,81,177,60,228,102,177,60,85,124,177,60,179,145,177,60,254,166,177,60,53,188,177,60,89,209,177,60,106,230,177,60,104,251,177,60,82,16,178,60,40,37,178,60,236,57,178,60,156,78,178,60,56,99,178,60,193,119,178,60,55,140,178,60,154,160,178,60,233,180,178,60,37,201,178,60,77,221,178,60,98,241,178,60,99,5,179,60,81,25,179,60,44,45,179,60,243,64,179,60,166,84,179,60,71,104,179,60,211,123,179,60,77,143,179,60,178,162,179,60,5,182,179,60,67,201,179,60,111,220,179,60,134,239,179,60,139,2,180,60,124,
21,180,60,89,40,180,60,35,59,180,60,217,77,180,60,123,96,180,60,10,115,180,60,134,133,180,60,238,151,180,60,66,170,180,60,131,188,180,60,176,206,180,60,202,224,180,60,208,242,180,60,195,4,181,60,162,22,181,60,109,40,181,60,36,58,181,60,200,75,181,60,89,93,181,60,214,110,181,60,63,128,181,60,148,145,181,60,214,162,181,60,4,180,181,60,31,197,181,60,38,214,181,60,25,231,181,60,248,247,181,60,196,8,182,60,124,25,182,60,32,42,182,60,177,58,182,60,46,75,182,60,151,91,182,60,237,107,182,60,47,124,182,60,
93,140,182,60,119,156,182,60,126,172,182,60,113,188,182,60,80,204,182,60,27,220,182,60,211,235,182,60,119,251,182,60,7,11,183,60,131,26,183,60,236,41,183,60,65,57,183,60,130,72,183,60,175,87,183,60,200,102,183,60,206,117,183,60,192,132,183,60,158,147,183,60,104,162,183,60,30,177,183,60,192,191,183,60,79,206,183,60,202,220,183,60,49,235,183,60,132,249,183,60,195,7,184,60,239,21,184,60,6,36,184,60,10,50,184,60,250,63,184,60,214,77,184,60,158,91,184,60,82,105,184,60,242,118,184,60,127,132,184,60,247,
145,184,60,92,159,184,60,173,172,184,60,234,185,184,60,18,199,184,60,39,212,184,60,41,225,184,60,22,238,184,60,239,250,184,60,180,7,185,60,102,20,185,60,3,33,185,60,141,45,185,60,2,58,185,60,100,70,185,60,177,82,185,60,235,94,185,60,17,107,185,60,35,119,185,60,32,131,185,60,10,143,185,60,224,154,185,60,162,166,185,60,80,178,185,60,234,189,185,60,112,201,185,60,226,212,185,60,64,224,185,60,138,235,185,60,192,246,185,60,226,1,186,60,239,12,186,60,233,23,186,60,207,34,186,60,161,45,186,60,95,56,186,
60,9,67,186,60,159,77,186,60,33,88,186,60,142,98,186,60,232,108,186,60,46,119,186,60,96,129,186,60,125,139,186,60,135,149,186,60,124,159,186,60,94,169,186,60,43,179,186,60,229,188,186,60,138,198,186,60,27,208,186,60,153,217,186,60,2,227,186,60,87,236,186,60,152,245,186,60,197,254,186,60,222,7,187,60,226,16,187,60,211,25,187,60,176,34,187,60,120,43,187,60,45,52,187,60,205,60,187,60,89,69,187,60,209,77,187,60,54,86,187,60,134,94,187,60,193,102,187,60,233,110,187,60,253,118,187,60,252,126,187,60,232,
134,187,60,191,142,187,60,131,150,187,60,50,158,187,60,205,165,187,60,84,173,187,60,199,180,187,60,37,188,187,60,112,195,187,60,166,202,187,60,201,209,187,60,215,216,187,60,209,223,187,60,183,230,187,60,137,237,187,60,70,244,187,60,240,250,187,60,133,1,188,60,7,8,188,60,116,14,188,60,205,20,188,60,18,27,188,60,66,33,188,60,95,39,188,60,104,45,188,60,92,51,188,60,60,57,188,60,8,63,188,60,192,68,188,60,100,74,188,60,243,79,188,60,111,85,188,60,214,90,188,60,41,96,188,60,104,101,188,60,147,106,188,60,
170,111,188,60,173,116,188,60,155,121,188,60,117,126,188,60,59,131,188,60,237,135,188,60,139,140,188,60,21,145,188,60,138,149,188,60,236,153,188,60,57,158,188,60,114,162,188,60,151,166,188,60,167,170,188,60,164,174,188,60,140,178,188,60,97,182,188,60,33,186,188,60,205,189,188,60,100,193,188,60,232,196,188,60,88,200,188,60,179,203,188,60,250,206,188,60,45,210,188,60,76,213,188,60,87,216,188,60,77,219,188,60,47,222,188,60,254,224,188,60,184,227,188,60,94,230,188,60,239,232,188,60,109,235,188,60,214,
237,188,60,44,240,188,60,109,242,188,60,154,244,188,60,179,246,188,60,183,248,188,60,168,250,188,60,132,252,188,60,76,254,188,60,1,0,189,60,161,1,189,60,44,3,189,60,164,4,189,60,7,6,189,60,87,7,189,60,146,8,189,60,185,9,189,60,204,10,189,60,203,11,189,60,181,12,189,60,140,13,189,60,78,14,189,60,253,14,189,60,151,15,189,60,29,16,189,60,143,16,189,60,236,16,189,60,54,17,189,60,107,17,189,60,141,17,189,60,154,17,189,60,147,17,189,60,120,17,189,60,73,17,189,60,5,17,189,60,174,16,189,60,66,16,189,60,195,
15,189,60,47,15,189,60,135,14,189,60,203,13,189,60,251,12,189,60,23,12,189,60,31,11,189,60,18,10,189,60,242,8,189,60,189,7,189,60,117,6,189,60,24,5,189,60,167,3,189,60,34,2,189,60,137,0,189,60,220,254,188,60,27,253,188,60,69,251,188,60,92,249,188,60,95,247,188,60,77,245,188,60,39,243,188,60,238,240,188,60,160,238,188,60,62,236,188,60,200,233,188,60,62,231,188,60,161,228,188,60,238,225,188,60,40,223,188,60,78,220,188,60,96,217,188,60,94,214,188,60,72,211,188,60,29,208,188,60,223,204,188,60,141,201,
188,60,38,198,188,60,172,194,188,60,29,191,188,60,123,187,188,60,196,183,188,60,250,179,188,60,27,176,188,60,41,172,188,60,34,168,188,60,8,164,188,60,217,159,188,60,151,155,188,60,64,151,188,60,213,146,188,60,87,142,188,60,196,137,188,60,30,133,188,60,99,128,188,60,149,123,188,60,179,118,188,60,188,113,188,60,178,108,188,60,148,103,188,60,97,98,188,60,27,93,188,60,193,87,188,60,83,82,188,60,209,76,188,60,59,71,188,60,145,65,188,60,211,59,188,60,1,54,188,60,28,48,188,60,34,42,188,60,21,36,188,60,243,
29,188,60,190,23,188,60,117,17,188,60,23,11,188,60,166,4,188,60,33,254,187,60,137,247,187,60,220,240,187,60,27,234,187,60,71,227,187,60,95,220,187,60,98,213,187,60,82,206,187,60,46,199,187,60,247,191,187,60,171,184,187,60,76,177,187,60,216,169,187,60,81,162,187,60,182,154,187,60,8,147,187,60,69,139,187,60,111,131,187,60,132,123,187,60,134,115,187,60,117,107,187,60,79,99,187,60,21,91,187,60,200,82,187,60,103,74,187,60,243,65,187,60,106,57,187,60,206,48,187,60,30,40,187,60,90,31,187,60,130,22,187,60,
151,13,187,60,152,4,187,60,133,251,186,60,95,242,186,60,36,233,186,60,214,223,186,60,117,214,186,60,255,204,186,60,118,195,186,60,217,185,186,60,41,176,186,60,101,166,186,60,141,156,186,60,161,146,186,60,162,136,186,60,143,126,186,60,105,116,186,60,47,106,186,60,225,95,186,60,127,85,186,60,10,75,186,60,129,64,186,60,229,53,186,60,53,43,186,60,113,32,186,60,154,21,186,60,175,10,186,60,177,255,185,60,159,244,185,60,121,233,185,60,64,222,185,60,243,210,185,60,147,199,185,60,31,188,185,60,152,176,185,
60,253,164,185,60,78,153,185,60,140,141,185,60,183,129,185,60,206,117,185,60,209,105,185,60,193,93,185,60,157,81,185,60,102,69,185,60,27,57,185,60,189,44,185,60,76,32,185,60,199,19,185,60,46,7,185,60,130,250,184,60,195,237,184,60,240,224,184,60,10,212,184,60,16,199,184,60,3,186,184,60,226,172,184,60,174,159,184,60,103,146,184,60,12,133,184,60,158,119,184,60,28,106,184,60,135,92,184,60,223,78,184,60,35,65,184,60,84,51,184,60,114,37,184,60,124,23,184,60,115,9,184,60,87,251,183,60,39,237,183,60,228,
222,183,60,142,208,183,60,36,194,183,60,167,179,183,60,23,165,183,60,116,150,183,60,189,135,183,60,243,120,183,60,22,106,183,60,38,91,183,60,34,76,183,60,11,61,183,60,225,45,183,60,163,30,183,60,83,15,183,60,239,255,182,60,120,240,182,60,238,224,182,60,81,209,182,60,160,193,182,60,221,177,182,60,6,162,182,60,28,146,182,60,31,130,182,60,15,114,182,60,235,97,182,60,181,81,182,60,108,65,182,60,15,49,182,60,159,32,182,60,29,16,182,60,135,255,181,60,222,238,181,60,34,222,181,60,83,205,181,60,113,188,181,
60,124,171,181,60,116,154,181,60,89,137,181,60,43,120,181,60,233,102,181,60,149,85,181,60,46,68,181,60,180,50,181,60,39,33,181,60,135,15,181,60,213,253,180,60,15,236,180,60,54,218,180,60,74,200,180,60,76,182,180,60,58,164,180,60,22,146,180,60,223,127,180,60,149,109,180,60,56,91,180,60,200,72,180,60,69,54,180,60,176,35,180,60,8,17,180,60,77,254,179,60,127,235,179,60,158,216,179,60,170,197,179,60,164,178,179,60,139,159,179,60,95,140,179,60,33,121,179,60,207,101,179,60,107,82,179,60,244,62,179,60,107,
43,179,60,207,23,179,60,32,4,179,60,94,240,178,60,138,220,178,60,163,200,178,60,170,180,178,60,157,160,178,60,126,140,178,60,77,120,178,60,9,100,178,60,178,79,178,60,73,59,178,60,205,38,178,60,62,18,178,60,157,253,177,60,234,232,177,60,36,212,177,60,75,191,177,60,96,170,177,60,98,149,177,60,82,128,177,60,47,107,177,60,250,85,177,60,178,64,177,60,88,43,177,60,235,21,177,60,108,0,177,60,218,234,176,60,54,213,176,60,128,191,176,60,183,169,176,60,220,147,176,60,238,125,176,60,238,103,176,60,220,81,176,
60,183,59,176,60,128,37,176,60,55,15,176,60,219,248,175,60,109,226,175,60,237,203,175,60,90,181,175,60,181,158,175,60,254,135,175,60,53,113,175,60,89,90,175,60,107,67,175,60,107,44,175,60,89,21,175,60,52,254,174,60,254,230,174,60,181,207,174,60,90,184,174,60,236,160,174,60,109,137,174,60,220,113,174,60,56,90,174,60,130,66,174,60,186,42,174,60,224,18,174,60,244,250,173,60,246,226,173,60,230,202,173,60,196,178,173,60,143,154,173,60,73,130,173,60,241,105,173,60,134,81,173,60,10,57,173,60,124,32,173,
60,219,7,173,60,41,239,172,60,101,214,172,60,143,189,172,60,167,164,172,60,173,139,172,60,161,114,172,60,131,89,172,60,84,64,172,60,18,39,172,60,191,13,172,60,90,244,171,60,227,218,171,60,90,193,171,60,191,167,171,60,19,142,171,60,85,116,171,60,133,90,171,60,163,64,171,60,176,38,171,60,170,12,171,60,148,242,170,60,107,216,170,60,49,190,170,60,229,163,170,60,135,137,170,60,24,111,170,60,151,84,170,60,4,58,170,60,96,31,170,60,170,4,170,60,226,233,169,60,9,207,169,60,31,180,169,60,35,153,169,60,21,126,
169,60,246,98,169,60,197,71,169,60,130,44,169,60,47,17,169,60,201,245,168,60,83,218,168,60,202,190,168,60,49,163,168,60,134,135,168,60,201,107,168,60,251,79,168,60,28,52,168,60,43,24,168,60,41,252,167,60,21,224,167,60,241,195,167,60,187,167,167,60,115,139,167,60,26,111,167,60,176,82,167,60,53,54,167,60,168,25,167,60,11,253,166,60,91,224,166,60,155,195,166,60,202,166,166,60,231,137,166,60,243,108,166,60,238,79,166,60,216,50,166,60,176,21,166,60,120,248,165,60,46,219,165,60,211,189,165,60,103,160,165,
60,234,130,165,60,92,101,165,60,189,71,165,60,13,42,165,60,76,12,165,60,122,238,164,60,151,208,164,60,162,178,164,60,157,148,164,60,135,118,164,60,96,88,164,60,40,58,164,60,223,27,164,60,134,253,163,60,27,223,163,60,159,192,163,60,19,162,163,60,118,131,163,60,200,100,163,60,9,70,163,60,57,39,163,60,89,8,163,60,103,233,162,60,101,202,162,60,82,171,162,60,47,140,162,60,251,108,162,60,182,77,162,60,96,46,162,60,250,14,162,60,131,239,161,60,251,207,161,60,99,176,161,60,186,144,161,60,0,113,161,60,54,
81,161,60,91,49,161,60,112,17,161,60,116,241,160,60,104,209,160,60,75,177,160,60,30,145,160,60,224,112,160,60,145,80,160,60,51,48,160,60,195,15,160,60,68,239,159,60,180,206,159,60,19,174,159,60,98,141,159,60,161,108,159,60,207,75,159,60,237,42,159,60,251,9,159,60,248,232,158,60,229,199,158,60,194,166,158,60,143,133,158,60,75,100,158,60,247,66,158,60,147,33,158,60,30,0,158,60,153,222,157,60,5,189,157,60,96,155,157,60,171,121,157,60,229,87,157,60,16,54,157,60,42,20,157,60,53,242,156,60,47,208,156,60,
25,174,156,60,244,139,156,60,190,105,156,60,120,71,156,60,34,37,156,60,189,2,156,60,71,224,155,60,193,189,155,60,43,155,155,60,134,120,155,60,208,85,155,60,11,51,155,60,54,16,155,60,81,237,154,60,92,202,154,60,87,167,154,60,67,132,154,60,30,97,154,60,234,61,154,60,166,26,154,60,83,247,153,60,239,211,153,60,124,176,153,60,249,140,153,60,103,105,153,60,197,69,153,60,19,34,153,60,81,254,152,60,128,218,152,60,160,182,152,60,175,146,152,60,176,110,152,60,160,74,152,60,129,38,152,60,83,2,152,60,21,222,
151,60,199,185,151,60,107,149,151,60,254,112,151,60,130,76,151,60,247,39,151,60,92,3,151,60,178,222,150,60,249,185,150,60,48,149,150,60,88,112,150,60,112,75,150,60,122,38,150,60,116,1,150,60,94,220,149,60,58,183,149,60,6,146,149,60,195,108,149,60,112,71,149,60,15,34,149,60,158,252,148,60,30,215,148,60,143,177,148,60,241,139,148,60,68,102,148,60,135,64,148,60,188,26,148,60,225,244,147,60,248,206,147,60,255,168,147,60,248,130,147,60,225,92,147,60,188,54,147,60,135,16,147,60,68,234,146,60,241,195,146,
60,144,157,146,60,32,119,146,60,161,80,146,60,19,42,146,60,118,3,146,60,202,220,145,60,16,182,145,60,71,143,145,60,111,104,145,60,136,65,145,60,146,26,145,60,142,243,144,60,123,204,144,60,90,165,144,60,41,126,144,60,235,86,144,60,157,47,144,60,65,8,144,60,214,224,143,60,93,185,143,60,213,145,143,60,62,106,143,60,153,66,143,60,230,26,143,60,36,243,142,60,83,203,142,60,116,163,142,60,135,123,142,60,139,83,142,60,129,43,142,60,104,3,142,60,65,219,141,60,12,179,141,60,200,138,141,60,118,98,141,60,22,
58,141,60,167,17,141,60,42,233,140,60,159,192,140,60,6,152,140,60,94,111,140,60,168,70,140,60,228,29,140,60,18,245,139,60,50,204,139,60,68,163,139,60,71,122,139,60,61,81,139,60,36,40,139,60,253,254,138,60,201,213,138,60,134,172,138,60,53,131,138,60,215,89,138,60,106,48,138,60,239,6,138,60,103,221,137,60,208,179,137,60,44,138,137,60,122,96,137,60,186,54,137,60,236,12,137,60,16,227,136,60,39,185,136,60,47,143,136,60,42,101,136,60,24,59,136,60,247,16,136,60,201,230,135,60,141,188,135,60,68,146,135,60,
236,103,135,60,136,61,135,60,21,19,135,60,149,232,134,60,8,190,134,60,108,147,134,60,196,104,134,60,14,62,134,60],"i8",4,y.a+215040);
Q([74,19,134,60,121,232,133,60,154,189,133,60,174,146,133,60,180,103,133,60,173,60,133,60,153,17,133,60,120,230,132,60,73,187,132,60,12,144,132,60,195,100,132,60,108,57,132,60,7,14,132,60,150,226,131,60,23,183,131,60,139,139,131,60,242,95,131,60,76,52,131,60,152,8,131,60,216,220,130,60,10,177,130,60,47,133,130,60,71,89,130,60,82,45,130,60,80,1,130,60,65,213,129,60,37,169,129,60,252,124,129,60,198,80,129,60,131,36,129,60,52,248,128,60,215,203,128,60,109,159,128,60,247,114,128,60,115,70,128,60,227,
25,128,60,140,218,127,60,56,129,127,60,203,39,127,60,68,206,126,60,164,116,126,60,235,26,126,60,24,193,125,60,43,103,125,60,38,13,125,60,7,179,124,60,207,88,124,60,125,254,123,60,19,164,123,60,143,73,123,60,243,238,122,60,61,148,122,60,110,57,122,60,134,222,121,60,134,131,121,60,108,40,121,60,58,205,120,60,239,113,120,60,139,22,120,60,15,187,119,60,121,95,119,60,203,3,119,60,5,168,118,60,38,76,118,60,46,240,117,60,30,148,117,60,246,55,117,60,181,219,116,60,92,127,116,60,234,34,116,60,96,198,115,60,
190,105,115,60,4,13,115,60,49,176,114,60,71,83,114,60,68,246,113,60,42,153,113,60,247,59,113,60,172,222,112,60,74,129,112,60,207,35,112,60,61,198,111,60,147,104,111,60,209,10,111,60,248,172,110,60,6,79,110,60,254,240,109,60,221,146,109,60,165,52,109,60,86,214,108,60,239,119,108,60,112,25,108,60,219,186,107,60,45,92,107,60,105,253,106,60,141,158,106,60,154,63,106,60,144,224,105,60,111,129,105,60,55,34,105,60,231,194,104,60,129,99,104,60,4,4,104,60,111,164,103,60,196,68,103,60,2,229,102,60,41,133,102,
60,57,37,102,60,51,197,101,60,22,101,101,60,226,4,101,60,152,164,100,60,55,68,100,60,192,227,99,60,50,131,99,60,142,34,99,60,211,193,98,60,2,97,98,60,26,0,98,60,29,159,97,60,9,62,97,60,223,220,96,60,159,123,96,60,72,26,96,60,220,184,95,60,90,87,95,60,193,245,94,60,19,148,94,60,79,50,94,60,117,208,93,60,133,110,93,60,128,12,93,60,100,170,92,60,51,72,92,60,237,229,91,60,144,131,91,60,31,33,91,60,151,190,90,60,251,91,90,60,72,249,89,60,129,150,89,60,164,51,89,60,178,208,88,60,170,109,88,60,142,10,88,
60,92,167,87,60,21,68,87,60,185,224,86,60,72,125,86,60,194,25,86,60,39,182,85,60,119,82,85,60,178,238,84,60,216,138,84,60,234,38,84,60,231,194,83,60,207,94,83,60,162,250,82,60,97,150,82,60,11,50,82,60,161,205,81,60,34,105,81,60,143,4,81,60,232,159,80,60,44,59,80,60,92,214,79,60,119,113,79,60,126,12,79,60,113,167,78,60,80,66,78,60,27,221,77,60,210,119,77,60,117,18,77,60,4,173,76,60,127,71,76,60,230,225,75,60,57,124,75,60,121,22,75,60,164,176,74,60,188,74,74,60,193,228,73,60,177,126,73,60,143,24,73,
60,88,178,72,60,14,76,72,60,177,229,71,60,64,127,71,60,188,24,71,60,37,178,70,60,123,75,70,60,189,228,69,60,236,125,69,60,8,23,69,60,17,176,68,60,6,73,68,60,233,225,67,60,185,122,67,60,118,19,67,60,32,172,66,60,183,68,66,60,60,221,65,60,173,117,65,60,12,14,65,60,89,166,64,60,146,62,64,60,186,214,63,60,206,110,63,60,209,6,63,60,193,158,62,60,158,54,62,60,105,206,61,60,34,102,61,60,201,253,60,60,93,149,60,60,223,44,60,60,79,196,59,60,174,91,59,60,250,242,58,60,52,138,58,60,92,33,58,60,114,184,57,60,
119,79,57,60,105,230,56,60,74,125,56,60,25,20,56,60,215,170,55,60,131,65,55,60,29,216,54,60,166,110,54,60,29,5,54,60,131,155,53,60,216,49,53,60,27,200,52,60,77,94,52,60,109,244,51,60,125,138,51,60,123,32,51,60,104,182,50,60,68,76,50,60,15,226,49,60,201,119,49,60,114,13,49,60,11,163,48,60,146,56,48,60,9,206,47,60,110,99,47,60,196,248,46,60,8,142,46,60,60,35,46,60,95,184,45,60,114,77,45,60,116,226,44,60,102,119,44,60,71,12,44,60,24,161,43,60,217,53,43,60,138,202,42,60,42,95,42,60,186,243,41,60,58,136,
41,60,170,28,41,60,10,177,40,60,90,69,40,60,154,217,39,60,202,109,39,60,234,1,39,60,251,149,38,60,252,41,38,60,237,189,37,60,206,81,37,60,160,229,36,60,98,121,36,60,21,13,36,60,184,160,35,60,76,52,35,60,208,199,34,60,69,91,34,60,171,238,33,60,1,130,33,60,73,21,33,60,129,168,32,60,170,59,32,60,196,206,31,60,207,97,31,60,203,244,30,60,184,135,30,60,151,26,30,60,102,173,29,60,39,64,29,60,217,210,28,60,124,101,28,60,16,248,27,60,150,138,27,60,14,29,27,60,119,175,26,60,209,65,26,60,29,212,25,60,91,102,
25,60,139,248,24,60,172,138,24,60,191,28,24,60,195,174,23,60,186,64,23,60,163,210,22,60,125,100,22,60,74,246,21,60,8,136,21,60,185,25,21,60,92,171,20,60,241,60,20,60,120,206,19,60,242,95,19,60,94,241,18,60,188,130,18,60,13,20,18,60,80,165,17,60,134,54,17,60,174,199,16,60,201,88,16,60,215,233,15,60,215,122,15,60,202,11,15,60,176,156,14,60,137,45,14,60,84,190,13,60,19,79,13,60,197,223,12,60,105,112,12,60,1,1,12,60,140,145,11,60,10,34,11,60,123,178,10,60,224,66,10,60,56,211,9,60,131,99,9,60,194,243,
8,60,244,131,8,60,26,20,8,60,51,164,7,60,64,52,7,60,65,196,6,60,53,84,6,60,29,228,5,60,249,115,5,60,201,3,5,60,140,147,4,60,68,35,4,60,239,178,3,60,143,66,3,60,34,210,2,60,170,97,2,60,38,241,1,60,150,128,1,60,251,15,1,60,84,159,0,60,161,46,0,60,197,123,255,59,49,154,254,59,134,184,253,59,196,214,252,59,236,244,251,59,253,18,251,59,247,48,250,59,219,78,249,59,168,108,248,59,95,138,247,59,0,168,246,59,139,197,245,59,255,226,244,59,94,0,244,59,167,29,243,59,218,58,242,59,248,87,241,59,0,117,240,59,243,
145,239,59,208,174,238,59,152,203,237,59,75,232,236,59,233,4,236,59,114,33,235,59,230,61,234,59,69,90,233,59,144,118,232,59,198,146,231,59,231,174,230,59,244,202,229,59,237,230,228,59,210,2,228,59,163,30,227,59,95,58,226,59,8,86,225,59,157,113,224,59,30,141,223,59,140,168,222,59,230,195,221,59,44,223,220,59,96,250,219,59,128,21,219,59,141,48,218,59,134,75,217,59,109,102,216,59,66,129,215,59,3,156,214,59,178,182,213,59,78,209,212,59,216,235,211,59,79,6,211,59,180,32,210,59,7,59,209,59,72,85,208,59,
119,111,207,59,148,137,206,59,159,163,205,59,153,189,204,59,129,215,203,59,87,241,202,59,28,11,202,59,208,36,201,59,114,62,200,59,4,88,199,59,132,113,198,59,244,138,197,59,83,164,196,59,161,189,195,59,222,214,194,59,11,240,193,59,40,9,193,59,52,34,192,59,48,59,191,59,28,84,190,59,248,108,189,59,195,133,188,59,127,158,187,59,44,183,186,59,200,207,185,59,85,232,184,59,211,0,184,59,65,25,183,59,160,49,182,59,240,73,181,59,49,98,180,59,99,122,179,59,134,146,178,59,154,170,177,59,160,194,176,59,151,218,
175,59,127,242,174,59,89,10,174,59,37,34,173,59,227,57,172,59,146,81,171,59,52,105,170,59,199,128,169,59,77,152,168,59,197,175,167,59,48,199,166,59,141,222,165,59,221,245,164,59,31,13,164,59,84,36,163,59,124,59,162,59,151,82,161,59,165,105,160,59,167,128,159,59,155,151,158,59,131,174,157,59,94,197,156,59,45,220,155,59,240,242,154,59,166,9,154,59,81,32,153,59,239,54,152,59,129,77,151,59,8,100,150,59,131,122,149,59,242,144,148,59,85,167,147,59,173,189,146,59,250,211,145,59,59,234,144,59,114,0,144,59,
157,22,143,59,189,44,142,59,211,66,141,59,221,88,140,59,221,110,139,59,211,132,138,59,190,154,137,59,158,176,136,59,117,198,135,59,65,220,134,59,3,242,133,59,187,7,133,59,105,29,132,59,14,51,131,59,168,72,130,59,57,94,129,59,193,115,128,59,127,18,127,59,104,61,125,59,64,104,123,59,5,147,121,59,185,189,119,59,90,232,117,59,234,18,116,59,104,61,114,59,214,103,112,59,50,146,110,59,125,188,108,59,184,230,106,59,226,16,105,59,253,58,103,59,7,101,101,59,1,143,99,59,236,184,97,59,199,226,95,59,147,12,94,
59,79,54,92,59,253,95,90,59,157,137,88,59,45,179,86,59,176,220,84,59,37,6,83,59,139,47,81,59,228,88,79,59,48,130,77,59,110,171,75,59,159,212,73,59,195,253,71,59,218,38,70,59,229,79,68,59,228,120,66,59,215,161,64,59,189,202,62,59,152,243,60,59,104,28,59,59,44,69,57,59,229,109,55,59,147,150,53,59,54,191,51,59,207,231,49,59,93,16,48,59,225,56,46,59,91,97,44,59,204,137,42,59,51,178,40,59,145,218,38,59,229,2,37,59,49,43,35,59,115,83,33,59,173,123,31,59,223,163,29,59,9,204,27,59,42,244,25,59,68,28,24,59,
87,68,22,59,97,108,20,59,101,148,18,59,98,188,16,59,88,228,14,59,71,12,13,59,48,52,11,59,18,92,9,59,239,131,7,59,198,171,5,59,151,211,3,59,98,251,1,59,41,35,0,59,213,149,252,58,78,229,248,58,190,52,245,58,37,132,241,58,132,211,237,58,218,34,234,58,41,114,230,58,112,193,226,58,177,16,223,58,235,95,219,58,30,175,215,58,76,254,211,58,117,77,208,58,153,156,204,58,184,235,200,58,211,58,197,58,234,137,193,58,254,216,189,58,15,40,186,58,29,119,182,58,41,198,178,58,51,21,175,58,60,100,171,58,67,179,167,58,
74,2,164,58,81,81,160,58,88,160,156,58,96,239,152,58,104,62,149,58,114,141,145,58,125,220,141,58,139,43,138,58,155,122,134,58,174,201,130,58,136,49,126,58,187,207,118,58,247,109,111,58,60,12,104,58,138,170,96,58,227,72,89,58,71,231,81,58,184,133,74,58,53,36,67,58,191,194,59,58,89,97,52,58,1,0,45,58,185,158,37,58,130,61,30,58,92,220,22,58,73,123,15,58,73,26,8,58,93,185,0,58,11,177,242,57,135,239,227,57,47,46,213,57,6,109,198,57,12,172,183,57,67,235,168,57,173,42,154,57,75,106,139,57,61,84,121,57,84,
212,91,57,221,84,62,57,219,213,32,57,81,87,3,57,133,178,203,56,100,183,144,56,143,122,43,56,161,33,86,55,63,207,128,183,123,85,54,184,143,32,150,184,62,21,209,184,98,4,6,185,142,125,35,185,31,246,64,185,18,110,94,185,101,229,123,185,10,174,140,185,14,105,155,185,188,35,170,185,20,222,184,185,20,152,199,185,186,81,214,185,4,11,229,185,242,195,243,185,65,62,1,186,88,154,8,186,63,246,15,186,244,81,23,186,119,173,30,186,199,8,38,186,227,99,45,186,202,190,52,186,124,25,60,186,248,115,67,186,60,206,74,
186,73,40,82,186,29,130,89,186,184,219,96,186,24,53,104,186,62,142,111,186,40,231,118,186,214,63,126,186,35,204,130,186,60,120,134,186,54,36,138,186,16,208,141,186,202,123,145,186,99,39,149,186,219,210,152,186,50,126,156,186,104,41,160,186,123,212,163,186,108,127,167,186,57,42,171,186,228,212,174,186,107,127,178,186,205,41,182,186,12,212,185,186,37,126,189,186,26,40,193,186,233,209,196,186,145,123,200,186,20,37,204,186,111,206,207,186,164,119,211,186,177,32,215,186,150,201,218,186,83,114,222,186,
231,26,226,186,82,195,229,186,147,107,233,186,171,19,237,186,152,187,240,186,91,99,244,186,243,10,248,186,96,178,251,186,160,89,255,186,90,128,1,187,206,83,3,187,44,39,5,187,115,250,6,187,163,205,8,187,188,160,10,187,189,115,12,187,168,70,14,187,123,25,16,187,53,236,17,187,216,190,19,187,99,145,21,187,213,99,23,187,47,54,25,187,112,8,27,187,152,218,28,187,167,172,30,187,156,126,32,187,120,80,34,187,58,34,36,187,227,243,37,187,113,197,39,187,229,150,41,187,62,104,43,187,125,57,45,187,161,10,47,187,
169,219,48,187,151,172,50,187,105,125,52,187,31,78,54,187,186,30,56,187,56,239,57,187,155,191,59,187,225,143,61,187,10,96,63,187,23,48,65,187,6,0,67,187,216,207,68,187,141,159,70,187,37,111,72,187,159,62,74,187,250,13,76,187,56,221,77,187,87,172,79,187,88,123,81,187,58,74,83,187,254,24,85,187,162,231,86,187,39,182,88,187,140,132,90,187,210,82,92,187,248,32,94,187,254,238,95,187,228,188,97,187,169,138,99,187,78,88,101,187,210,37,103,187,53,243,104,187,119,192,106,187,152,141,108,187,150,90,110,187,
116,39,112,187,47,244,113,187,200,192,115,187,63,141,117,187,148,89,119,187,198,37,121,187,212,241,122,187,192,189,124,187,137,137,126,187,151,42,128,187,88,16,129,187,7,246,129,187,164,219,130,187,47,193,131,187,167,166,132,187,14,140,133,187,98,113,134,187,163,86,135,187,210,59,136,187,238,32,137,187,248,5,138,187,239,234,138,187,210,207,139,187,163,180,140,187,97,153,141,187,11,126,142,187,162,98,143,187,38,71,144,187,150,43,145,187,243,15,146,187,60,244,146,187,113,216,147,187,146,188,148,187,
160,160,149,187,153,132,150,187,126,104,151,187,79,76,152,187,11,48,153,187,180,19,154,187,71,247,154,187,198,218,155,187,48,190,156,187,134,161,157,187,199,132,158,187,242,103,159,187,9,75,160,187,10,46,161,187,246,16,162,187,205,243,162,187,142,214,163,187,58,185,164,187,208,155,165,187,80,126,166,187,187,96,167,187,15,67,168,187,78,37,169,187,118,7,170,187,137,233,170,187,133,203,171,187,106,173,172,187,58,143,173,187,242,112,174,187,148,82,175,187,31,52,176,187,148,21,177,187,241,246,177,187,
56,216,178,187,103,185,179,187,127,154,180,187,128,123,181,187,106,92,182,187,59,61,183,187,246,29,184,187,153,254,184,187,36,223,185,187,151,191,186,187,242,159,187,187,53,128,188,187,96,96,189,187,115,64,190,187,109,32,191,187,80,0,192,187,25,224,192,187,202,191,193,187,99,159,194,187,226,126,195,187,73,94,196,187,151,61,197,187,204,28,198,187,231,251,198,187,234,218,199,187,211,185,200,187,163,152,201,187,89,119,202,187,246,85,203,187,121,52,204,187,226,18,205,187,50,241,205,187,103,207,206,187,
131,173,207,187,132,139,208,187,107,105,209,187,56,71,210,187,234,36,211,187,130,2,212,187,0,224,212,187,98,189,213,187,170,154,214,187,215,119,215,187,234,84,216,187,225,49,217,187,189,14,218,187,126,235,218,187,35,200,219,187,173,164,220,187,28,129,221,187,111,93,222,187,167,57,223,187,195,21,224,187,194,241,224,187,166,205,225,187,110,169,226,187,26,133,227,187,170,96,228,187,30,60,229,187,117,23,230,187,175,242,230,187,205,205,231,187,207,168,232,187,180,131,233,187,123,94,234,187,38,57,235,187,
180,19,236,187,37,238,236,187,121,200,237,187,176,162,238,187,201,124,239,187,197,86,240,187,163,48,241,187,100,10,242,187,7,228,242,187,140,189,243,187,243,150,244,187,60,112,245,187,104,73,246,187,117,34,247,187,100,251,247,187,52,212,248,187,230,172,249,187,122,133,250,187,239,93,251,187,70,54,252,187,125,14,253,187,150,230,253,187,144,190,254,187,107,150,255,187,20,55,0,188,226,162,0,188,161,14,1,188,80,122,1,188,239,229,1,188,126,81,2,188,254,188,2,188,110,40,3,188,206,147,3,188,30,255,3,188,
94,106,4,188,142,213,4,188,174,64,5,188,190,171,5,188,189,22,6,188,173,129,6,188,140,236,6,188,91,87,7,188,25,194,7,188,199,44,8,188,101,151,8,188,242,1,9,188,111,108,9,188,219,214,9,188,55,65,10,188,130,171,10,188,188,21,11,188,230,127,11,188,255,233,11,188,7,84,12,188,254,189,12,188,229,39,13,188,186,145,13,188,126,251,13,188,50,101,14,188,212,206,14,188,101,56,15,188,229,161,15,188,84,11,16,188,178,116,16,188,254,221,16,188,57,71,17,188,99,176,17,188,123,25,18,188,130,130,18,188,119,235,18,188,
91,84,19,188,45,189,19,188,238,37,20,188,157,142,20,188,58,247,20,188,198,95,21,188,63,200,21,188,167,48,22,188,253,152,22,188,65,1,23,188,116,105,23,188,148,209,23,188,162,57,24,188,158,161,24,188,136,9,25,188,96,113,25,188,37,217,25,188,217,64,26,188,122,168,26,188,8,16,27,188,133,119,27,188,239,222,27,188,70,70,28,188,139,173,28,188,189,20,29,188,221,123,29,188,235,226,29,188,229,73,30,188,205,176,30,188,162,23,31,188,100,126,31,188,20,229,31,188,177,75,32,188,58,178,32,188,177,24,33,188,21,127,
33,188,102,229,33,188,163,75,34,188,206,177,34,188,229,23,35,188,234,125,35,188,219,227,35,188,184,73,36,188,131,175,36,188,58,21,37,188,221,122,37,188,109,224,37,188,234,69,38,188,83,171,38,188,169,16,39,188,235,117,39,188,25,219,39,188,52,64,40,188,58,165,40,188,46,10,41,188,13,111,41,188,216,211,41,188,144,56,42,188,52,157,42,188,195,1,43,188,63,102,43,188,167,202,43,188,250,46,44,188,57,147,44,188,101,247,44,188,124,91,45,188,126,191,45,188,109,35,46,188,71,135,46,188,13,235,46,188,190,78,47,
188,91,178,47,188,227,21,48,188,87,121,48,188,182,220,48,188,1,64,49,188,55,163,49,188,88,6,50,188,101,105,50,188,93,204,50,188,64,47,51,188,14,146,51,188,199,244,51,188,107,87,52,188,251,185,52,188,117,28,53,188,218,126,53,188,42,225,53,188,102,67,54,188,139,165,54,188,156,7,55,188,152,105,55,188,126,203,55,188,79,45,56,188,10,143,56,188,176,240,56,188,65,82,57,188,188,179,57,188,33,21,58,188,114,118,58,188,172,215,58,188,209,56,59,188,224,153,59,188,217,250,59,188,189,91,60,188,139,188,60,188,67,
29,61,188,229,125,61,188,114,222,61,188,232,62,62,188,72,159,62,188,147,255,62,188,199,95,63,188,229,191,63,188,237,31,64,188,223,127,64,188,187,223,64,188,128,63,65,188,47,159,65,188,200,254,65,188,74,94,66,188,182,189,66,188,12,29,67,188,75,124,67,188,116,219,67,188,134,58,68,188,129,153,68,188,102,248,68,188,52,87,69,188,235,181,69,188,140,20,70,188,22,115,70,188,137,209,70,188,229,47,71,188,42,142,71,188,89,236,71,188,112,74,72,188,112,168,72,188,90,6,73,188,44,100,73,188,231,193,73,188,139,31,
74,188,24,125,74,188,141,218,74,188,235,55,75,188,50,149,75,188,98,242,75,188,122,79,76,188,123,172,76,188,100,9,77,188,54,102,77,188,241,194,77,188,147,31,78,188,30,124,78,188,146,216,78,188,238,52,79,188,50,145,79,188,94,237,79,188,115,73,80,188,112,165,80,188,85,1,81,188,33,93,81,188,215,184,81,188,116,20,82,188,249,111,82,188,102,203,82,188,187,38,83,188,248,129,83,188,28,221,83,188,41,56,84,188,29,147,84,188,249,237,84,188,189,72,85,188,104,163,85,188,251,253,85,188,118,88,86,188,216,178,86,
188,34,13,87,188,83,103,87,188,108,193,87,188,108,27,88,188,83,117,88,188,34,207,88,188,216,40,89,188,118,130,89,188,250,219,89,188,102,53,90,188,185,142,90,188,243,231,90,188,20,65,91,188,29,154,91,188,12,243,91,188,226,75,92,188,160,164,92,188,68,253,92,188,207,85,93,188,65,174,93,188,154,6,94,188,217,94,94,188,0,183,94,188,13,15,95,188,0,103,95,188,219,190,95,188,156,22,96,188,67,110,96,188,209,197,96,188,70,29,97,188,161,116,97,188,226,203,97,188,10,35,98,188,24,122,98,188,13,209,98,188,232,39,
99,188,169,126,99,188,80,213,99,188,222,43,100,188,81,130,100,188,171,216,100,188,235,46,101,188,17,133,101,188,29,219,101,188,15,49,102,188,231,134,102,188,165,220,102,188,73,50,103,188,210,135,103,188,66,221,103,188,151,50,104,188,210,135,104,188,243,220,104,188,249,49,105,188,229,134,105,188,183,219,105,188,110,48,106,188,11,133,106,188,141,217,106,188,245,45,107,188,66,130,107,188,117,214,107,188,141,42,108,188,139,126,108,188,109,210,108,188,54,38,109,188,227,121,109,188,117,205,109,188,237,
32,110,188,74,116,110,188,140,199,110,188,179,26,111,188,191,109,111,188,177,192,111,188,135,19,112,188,66,102,112,188,226,184,112,188,103,11,113,188,209,93,113,188,31,176,113,188,83,2,114,188,107,84,114,188,104,166,114,188,74,248,114,188,16,74,115,188,187,155,115,188,75,237,115,188,191,62,116,188,24,144,116,188,85,225,116,188,119,50,117,188,125,131,117,188,103,212,117,188,54,37,118,188,234,117,118,188,129,198,118,188,253,22,119,188,93,103,119,188,162,183,119,188,203,7,120,188,215,87,120,188,200,
167,120,188,157,247,120,188,86,71,121,188,243,150,121,188,117,230,121,188,218,53,122,188,35,133,122,188,80,212,122,188,97,35,123,188,85,114,123,188,46,193,123,188,234,15,124,188,138,94,124,188,14,173,124,188,118,251,124,188,193,73,125,188,240,151,125,188,2,230,125,188,248,51,126,188,210,129,126,188,143,207,126,188,47,29,127,188,179,106,127,188,27,184,127,188,179,2,128,188,74,41,128,188,211,79,128,188,77,118,128,188,185,156,128,188,23,195,128,188,102,233,128,188,167,15,129,188,217,53,129,188,253,91,
129,188,19,130,129,188,26,168,129,188,19,206,129,188,253,243,129,188,217,25,130,188,166,63,130,188,100,101,130,188,20,139,130,188,182,176,130,188,73,214,130,188,205,251,130,188,66,33,131,188,169,70,131,188,2,108,131,188,76,145,131,188,135,182,131,188,179,219,131,188,209,0,132,188,224,37,132,188,224,74,132,188,209,111,132,188,180,148,132,188,136,185,132,188,77,222,132,188,3,3,133,188,171,39,133,188,68,76,133,188,206,112,133,188,73,149,133,188,181,185,133,188,18,222,133,188,96,2,134,188,160,38,134,
188,208,74,134,188,242,110,134,188,5,147,134,188,8,183,134,188,253,218,134,188,227,254,134,188,185,34,135,188,129,70,135,188,58,106,135,188,227,141,135,188,126,177,135,188,9,213,135,188,133,248,135,188,243,27,136,188,81,63,136,188,160,98,136,188,224,133,136,188,16,169,136,188,50,204,136,188,68,239,136,188,71,18,137,188,59,53,137,188,32,88,137,188,245,122,137,188,187,157,137,188,114,192,137,188,26,227,137,188,178,5,138,188,59,40,138,188,181,74,138,188,31,109,138,188,122,143,138,188,198,177,138,188,
2,212,138,188,47,246,138,188,76,24,139,188,90,58,139,188,89,92,139,188,72,126,139,188,40,160,139,188,248,193,139,188,185,227,139,188,106,5,140,188,12,39,140,188,158,72,140,188,33,106,140,188,148,139,140,188,248,172,140,188,76,206,140,188,144,239,140,188,197,16,141,188,234,49,141,188,0,83,141,188,6,116,141,188,252,148,141,188,227,181,141,188,186,214,141,188,130,247,141,188,57,24,142,188,225,56,142,188,121,89,142,188,2,122,142,188,123,154,142,188,228,186,142,188,61,219,142,188,134,251,142,188,192,27,
143,188,234,59,143,188,4,92,143,188,14,124,143,188,9,156,143,188,243,187,143,188,206,219,143,188,152,251,143,188,83,27,144,188,254,58,144,188,153,90,144,188,36,122,144,188,160,153,144,188,11,185,144,188,102,216,144,188,177,247,144,188,237,22,145,188,24,54,145,188,51,85,145,188,62,116,145,188,58,147,145,188,37,178,145,188,0,209,145,188,203,239,145,188,134,14,146,188,49,45,146,188,203,75,146,188,86,106,146,188,209,136,146,188,59,167,146,188,149,197,146,188,223,227,146,188,25,2,147,188,67,32,147,188,
92,62,147,188,102,92,147,188,95,122,147,188,72,152,147,188,32,182,147,188,232,211,147,188,161,241,147,188,72,15,148,188,224,44,148,188,103,74,148,188,222,103,148,188,69,133,148,188,155,162,148,188,225,191,148,188,22,221,148,188,59,250,148,188,80,23,149,188,85,52,149,188,73,81,149,188,44,110,149,188,255,138,149,188,194,167,149,188,117,196,149,188,22,225,149,188,168,253,149,188,41,26,150,188,153,54,150,188,249,82,150,188,73,111,150,188,136,139,150,188,182,167,150,188,212,195,150,188,225,223,150,188,
222,251,150,188,202,23,151,188,166,51,151,188,113,79,151,188,43,107,151,188,213,134,151,188,110,162,151,188,247,189,151,188,111,217,151,188,214,244,151,188,44,16,152,188,114,43,152,188,168,70,152,188,204,97,152,188,224,124,152,188,227,151,152,188,214,178,152,188,183,205,152,188,136,232,152,188,72,3,153,188,248,29,153,188,150,56,153,188,36,83,153,188,161,109,153,188,14,136,153,188,105,162,153,188,180,188,153,188,238,214,153,188,23,241,153,188,47,11,154,188,54,37,154,188,44,63,154,188,18,89,154,188,
231,114,154,188,170,140,154,188,93,166,154,188,255,191,154,188,144,217,154,188,16,243,154,188,127,12,155,188,221,37,155,188,42,63,155,188,103,88,155,188,146,113,155,188,172,138,155,188,181,163,155,188,173,188,155,188,149,213,155,188,107,238,155,188,48,7,156,188,228,31,156,188,135,56,156,188,25,81,156,188,154,105,156,188,9,130,156,188,104,154,156,188,182,178,156,188,242,202,156,188,30,227,156,188,56,251,156,188,65,19,157,188,57,43,157,188,32,67,157,188,245,90,157,188,186,114,157,188,109,138,157,188,
15,162,157,188,160,185,157,188,32,209,157,188,142,232,157,188,235,255,157,188,55,23,158,188,114,46,158,188,156,69,158,188,180,92,158,188,187,115,158,188,177,138,158,188,149,161,158,188,104,184,158,188,42,207,158,188,219,229,158,188,122,252,158,188,8,19,159,188,132,41,159,188,239,63,159,188,73,86,159,188,146,108,159,188,201,130,159,188,239,152,159,188,3,175,159,188,6,197,159,188,248,218,159,188,216,240,159,188,167,6,160,188,100,28,160,188,16,50,160,188,171,71,160,188,52,93,160,188,171,114,160,188,
18,136,160,188,102,157,160,188,169,178,160,188,219,199,160,188,251,220,160,188,10,242,160,188,7,7,161,188,243,27,161,188,205,48,161,188,150,69,161,188,77,90,161,188,243,110,161,188,135,131,161,188,9,152,161,188,122,172,161,188,218,192,161,188,39,213,161,188,100,233,161,188,142,253,161,188,167,17,162,188,175,37,162,188,165,57,162,188,137,77,162,188,91,97,162,188,28,117,162,188,203,136,162,188,105,156,162,188,245,175,162,188,111,195,162,188,216,214,162,188,47,234,162,188,116,253,162,188,168,16,163,
188,202,35,163,188,218,54,163,188,216,73,163,188,197,92,163,188,160,111,163,188,105,130,163,188,33,149,163,188,199,167,163,188,91,186,163,188,221,204,163,188,78,223,163,188,172,241,163,188,249,3,164,188,53,22,164,188,94,40,164,188,118,58,164,188,124,76,164,188,112,94,164,188,82,112,164,188,34,130,164,188,225,147,164,188,141,165,164,188,40,183,164,188,177,200,164,188,41,218,164,188,142,235,164,188,225,252,164,188,35,14,165,188,83,31,165,188,113,48,165,188,125,65,165,188,119,82,165,188,95,99,165,188,
53,116,165,188,250,132,165,188,172,149,165,188,77,166,165,188,219,182,165,188,88,199,165,188,195,215,165,188,28,232,165,188,98,248,165,188,151,8,166,188,186,24,166,188,203,40,166,188,202,56,166,188,183,72,166,188,146,88,166,188,91,104,166,188,18,120,166,188,184,135,166,188,75,151,166,188,204,166,166,188,59,182,166,188,152,197,166,188,227,212,166,188,28,228,166,188,67,243,166,188,88,2,167,188,91,17,167,188,75,32,167,188,42,47,167,188,247,61,167,188,178,76,167,188,90,91,167,188,241,105,167,188,117,
120,167,188,231,134,167,188,72,149,167,188,150,163,167,188,210,177,167,188,252,191,167,188,20,206,167,188,26,220,167,188,13,234,167,188,239,247,167,188,190,5,168,188,123,19,168,188,39,33,168,188,192,46,168,188,70,60,168,188,187,73,168,188,30,87,168,188,110,100,168,188,172,113,168,188,217,126,168,188,242,139,168,188,250,152,168,188,240,165,168,188,211,178,168,188,164,191,168,188,99,204,168,188,16,217,168,188,171,229,168,188,51,242,168,188,170,254,168,188,14,11,169,188,95,23,169,188,159,35,169,188,
204,47,169,188,232,59,169,188,241,71,169,188,231,83,169,188,204,95,169,188,158,107,169,188,94,119,169,188,12,131,169,188,167,142,169,188,48,154,169,188,167,165,169,188,12,177,169,188,95,188,169,188,159,199,169,188,205,210,169,188,232,221,169,188,242,232,169,188,233,243,169,188,206,254,169,188,160,9,170,188,96,20,170,188,14,31,170,188,170,41,170,188,51,52,170,188,170,62,170,188,15,73,170,188,98,83,170,188,162,93,170,188,208,103,170,188,235,113,170,188,244,123,170,188,235,133,170,188,208,143,170,188,
162,153,170,188,98,163,170,188,15,173,170,188,170,182,170,188,51,192,170,188,170,201,170,188,14,211,170,188,96,220,170,188,159,229,170,188,204,238,170,188,231,247,170,188,240,0,171,188,230,9,171,188,201,18,171,188,155,27,171,188,90,36,171,188,6,45,171,188,160,53,171,188,40,62,171,188,158,70,171,188,1,79,171,188,81,87,171,188,144,95,171,188,188,103,171,188,213,111,171,188,220,119,171,188,209,127,171,188,180,135,171,188,131,143,171,188,65,151,171,188,236,158,171,188,133,166,171,188,11,174,171,188,127,
181,171,188,225,188,171,188,48,196,171,188,109,203,171,188,151,210,171,188,175,217,171,188,180,224,171,188,168,231,171,188,136,238,171,188,86,245,171,188,18,252,171,188,188,2,172,188,83,9,172,188,215,15,172,188,73,22,172,188,169,28,172,188,246,34,172,188,49,41,172,188,89,47,172,188,111,53,172,188,115,59,172,188,100,65,172,188,66,71,172,188,15,77,172,188,200,82,172,188,112,88,172,188,5,94,172,188,135,99,172,188,247,104,172,188,84,110,172,188,160,115,172,188,216,120,172,188,254,125,172,188,18,131,172,
188,19,136,172,188,2,141,172,188,223,145,172,188,169,150,172,188,96,155,172,188,5,160,172,188,152,164,172,188,24,169,172,188,133,173,172,188,225,177,172,188,41,182,172,188,96,186,172,188,131,190,172,188,149,194,172,188,148,198,172,188,128,202,172,188,90,206,172,188,34,210,172,188,215,213,172,188,121,217,172,188,9,221,172,188,135,224,172,188,242,227,172,188,75,231,172,188,145,234,172,188,197,237,172,188,231,240,172,188,245,243,172,188,242,246,172,188,220,249,172,188,179,252,172,188,121,255,172,188,
43,2,173,188,203,4,173,188,89,7,173,188,212,9,173,188,61,12,173,188,147,14,173,188,215,16,173,188,8,19,173,188,39,21,173,188,52,23,173,188,46,25,173,188,21,27,173,188,234,28,173,188,173,30,173,188,93,32,173,188,251,33,173,188,134,35,173,188,255,36,173,188,101,38,173,188,185,39,173,188,251,40,173,188,42,42,173,188,70,43,173,188,80,44,173,188,72,45,173,188,45,46,173,188,0,47,173,188,192,47,173,188,110,48,173,188,10,49,173,188,146,49,173,188,9,50,173,188,109,50,173,188,191,50,173,188,254,50,173,188,
43,51,173,188,69,51,173,188,77,51,173,188,66,51,173,188,37,51,173,188,246,50,173,188,180,50,173,188,96,50,173,188,249,49,173,188,128,49,173,188,245,48,173,188,87,48,173,188,166,47,173,188,227,46,173,188,14,46,173,188,38,45,173,188,44,44,173,188,32,43,173,188,1,42,173,188,208,40,173,188,140,39,173,188,54,38,173,188,205,36,173,188,82,35,173,188,197,33,173,188,37,32,173,188,115,30,173,188,175,28,173,188,216,26,173,188,239,24,173,188,243,22,173,188,229,20,173,188,196,18,173,188,145,16,173,188,76,14,173,
188,245,11,173,188,139,9,173,188,14,7,173,188,128,4,173,188,223,1,173,188,43,255,172,188,101,252,172,188,141,249,172,188,162,246,172,188,166,243,172,188,150,240,172,188,117,237,172,188,65,234,172,188,250,230,172,188,162,227,172,188,55,224,172,188,185,220,172,188,42,217,172,188,136,213,172,188,211,209,172,188,13,206,172,188,52,202,172,188,72,198,172,188,75,194,172,188,59,190,172,188,25,186,172,188,228,181,172,188,157,177,172,188,68,173,172,188,217,168,172,188,91,164,172,188,203,159,172,188,40,155,
172,188,116,150,172,188,173,145,172,188,211,140,172,188,232,135,172,188,234,130,172,188,218,125,172,188,184,120,172,188,131,115,172,188,60,110,172,188,227,104,172,188,120,99,172,188,250,93,172,188,106,88,172,188,200,82,172,188,20,77,172,188,77,71,172,188,117,65,172,188,138,59,172,188,140,53,172,188,125,47,172,188,91,41,172,188,39,35,172,188,225,28,172,188,137,22,172,188,30,16,172,188,161,9,172,188,18,3,172,188,113,252,171,188,190,245,171,188,248,238,171,188,33,232,171,188,55,225,171,188,59,218,171,
188,45,211,171,188,12,204,171,188,218,196,171,188,149,189,171,188,62,182,171,188,213,174,171,188,90,167,171,188,205,159,171,188,45,152,171,188,124,144,171,188,184,136,171,188,226,128,171,188,251,120,171,188,1,113,171,188,244,104,171,188,214,96,171,188,166,88,171,188,100,80,171,188,15,72,171,188,168,63,171,188,48,55,171,188,165,46,171,188,8,38,171,188,90,29,171,188,153,20,171,188,198,11,171,188,225,2,171,188,234,249,170,188,225,240,170,188,197,231,170,188,152,222,170,188,89,213,170,188,8,204,170,188,
165,194,170,188,47,185,170,188,168,175,170,188,15,166,170,188,100,156,170,188,167,146,170,188,215,136,170,188,246,126,170,188,3,117,170,188,254,106,170,188,231,96,170,188,190,86,170,188,131,76,170,188,54,66,170,188,215,55,170,188,102,45,170,188,228,34,170,188,79,24,170,188,169,13,170,188,240,2,170,188,38,248,169,188,73,237,169,188,91,226,169,188,91,215,169,188,73,204,169,188,38,193,169,188,240,181,169,188,168,170,169,188,79,159,169,188,228,147,169,188,103,136,169,188,216,124,169,188,55,113,169,188,
132,101,169,188,192,89,169,188,234,77,169,188,1,66,169,188,8,54,169,188,252,41,169,188,223,29,169,188,175,17,169,188,110,5,169,188,27,249,168,188,183,236,168,188,65,224,168,188,185,211,168,188,31,199,168,188,115,186,168,188,182,173,168,188,231,160,168,188,6,148,168,188,20,135,168,188,15,122,168,188,250,108,168,188,210,95,168,188,153,82,168,188,78,69,168,188,241,55,168,188,131,42,168,188,3,29,168,188,113,15,168,188,206,1,168,188,25,244,167,188,83,230,167,188,123,216,167,188,145,202,167,188,149,188,
167,188,136,174,167,188,106,160,167,188,58,146,167,188,248,131,167,188,165,117,167,188,64,103,167,188,201,88,167,188,65,74,167,188,168,59,167,188,252,44,167,188,64,30,167,188,114,15,167,188,146,0,167,188,161,241,166,188,158,226,166,188,138,211,166,188,100,196,166,188,45,181,166,188,228,165,166,188,138,150,166,188,30,135,166,188,161,119,166,188,19,104,166,188,115,88,166,188,194,72,166,188,255,56,166,188,43,41,166,188,69,25,166,188,78,9,166,188,70,249,165,188,44,233,165,188,1,217,165,188,196,200,165,
188,118,184,165,188,23,168,165,188,167,151,165,188,37,135,165,188,145,118,165,188,237,101,165,188,55,85,165,188,112,68,165,188,151,51,165,188,174,34,165,188,179,17,165,188,166,0,165,188,137,239,164,188,90,222,164,188,26,205,164,188,201,187,164,188,102,170,164,188,242,152,164,188,109,135,164,188,215,117,164,188,48,100,164,188,119,82,164,188,174,64,164,188,211,46,164,188,231,28,164,188,234,10,164,188,219,248,163,188,188,230,163,188,139,212,163,188,74,194,163,188,247,175,163,188,147,157,163,188,30,139,
163,188,152,120,163,188,1,102,163,188,88,83,163,188,159,64,163,188,213,45,163,188,249,26,163,188,13,8,163,188,16,245,162,188,1,226,162,188,226,206,162,188,177,187,162,188,112,168,162,188,30,149,162,188,186,129,162,188,70,110,162,188,193,90,162,188,43,71,162,188,132,51,162,188,204,31,162,188,3,12,162,188,41,248,161,188,62,228,161,188,67,208,161,188,54,188,161,188,25,168,161,188,235,147,161,188,172,127,161,188,92,107,161,188,251,86,161,188,138,66,161,188,7,46,161,188,116,25,161,188,208,4,161,188,28,
240,160,188,86,219,160,188,128,198,160,188,153,177,160,188,162,156,160,188,153,135,160,188,128,114,160,188,86,93,160,188,28,72,160,188,209,50,160,188,117,29,160,188,8,8,160,188,139,242,159,188,253,220,159,188,95,199,159,188,176,177,159,188,240,155,159,188,32,134,159,188,63,112,159,188,77,90,159,188,75,68,159,188,57,46,159,188,22,24,159,188,226,1,159,188,158,235,158,188,73,213,158,188,228,190,158,188,110,168,158,188,232,145,158,188,81,123,158,188,170,100,158,188,242,77,158,188,42,55,158,188,81,32,
158,188,104,9,158,188,111,242,157,188,101,219,157,188,75,196,157,188,32,173,157,188,229,149,157,188,154,126,157,188,62,103,157,188,210,79,157,188,86,56,157,188,201,32,157,188,44,9,157,188,127,241,156,188,193,217,156,188,243,193,156,188,21,170,156,188,39,146,156,188,40,122,156,188,25,98,156,188,250,73,156,188,203,49,156,188,139,25,156,188,59,1,156,188,220,232,155,188,108,208,155,188,235,183,155,188,91,159,155,188,187,134,155,188,10,110,155,188,73,85,155,188,120,60,155,188,152,35,155,188,167,10,155,
188,166,241,154,188,149,216,154,188,115,191,154,188,66,166,154,188,1,141,154,188,176,115,154,188,79,90,154,188,222,64,154,188,93,39,154,188,203,13,154,188,42,244,153,188,121,218,153,188,185,192,153,188,232,166,153,188,7,141,153,188,23,115,153,188,22,89,153,188,6,63,153,188,230,36,153,188,182,10,153,188,118,240,152,188,38,214,152,188,199,187,152,188,87,161,152,188,216,134,152,188,73,108,152,188,171,81,152,188,253,54,152,188,63,28,152,188,113,1,152,188,147,230,151,188,166,203,151,188,169,176,151,188,
157,149,151,188,129,122,151,188,85,95,151,188,25,68,151,188,206,40,151,188,115,13,151,188,9,242,150,188,143,214,150,188,6,187,150,188,109,159,150,188,196,131,150,188,12,104,150,188,69,76,150,188,109,48,150,188,135,20,150,188,145,248,149,188,139,220,149,188,118,192,149,188,82,164,149,188,30,136,149,188,218,107,149,188,136,79,149,188,38,51,149,188,180,22,149,188,51,250,148,188,163,221,148,188,3,193,148,188,84,164,148,188,150,135,148,188,201,106,148,188,236,77,148,188,0,49,148,188,4,20,148,188,250,246,
147,188,224,217,147,188,183,188,147,188,126,159,147,188,55,130,147,188,224,100,147,188,122,71,147,188,5,42,147,188,129,12,147,188,238,238,146,188,75,209,146,188,154,179,146,188,217,149,146,188,9,120,146,188,43,90,146,188,61,60,146,188,64,30,146,188,52,0,146,188,25,226,145,188,239,195,145,188,182,165,145,188,111,135,145,188,24,105,145,188,178,74,145,188,61,44,145,188,186,13,145,188,39,239,144,188,134,208,144,188,213,177,144,188,22,147,144,188,72,116,144,188,107,85,144,188,128,54,144,188,133,23,144,
188,124,248,143,188,100,217,143,188,61,186,143,188,8,155,143,188,195,123,143,188,112,92,143,188,15,61,143,188,158,29,143,188,31,254,142,188,145,222,142,188,245,190,142,188,74,159,142,188,144,127,142,188,200,95,142,188,241,63,142,188,11,32,142,188,23,0,142,188,21,224,141,188,4,192,141,188,228,159,141,188,182,127,141,188,121,95,141,188,46,63,141,188,212,30,141,188,108,254,140,188,246,221,140,188,113,189,140,188,222,156,140,188,60,124,140,188,140,91,140,188,205,58,140,188,0,26,140,188,37,249,139,188,
60,216,139,188,68,183,139,188,62,150,139,188,41,117,139,188,7,84,139,188,214,50,139,188,151,17,139,188,73,240,138,188,238,206,138,188,132,173,138,188,12,140,138,188,134,106,138,188,242,72,138,188,79,39,138,188,159,5,138,188,224,227,137,188,20,194,137,188,57,160,137,188,80,126,137,188,89,92,137,188,84,58,137,188,66,24,137,188,33,246,136,188,242,211,136,188,181,177,136,188,106,143,136,188,18,109,136,188,171,74,136,188,55,40,136,188,180,5,136,188,36,227,135,188,134,192,135,188,218,157,135,188,32,123,
135,188,88,88,135,188,131,53,135,188,160,18,135,188,175,239,134,188,176,204,134,188,164,169,134,188,137,134,134,188,98,99,134,188,44,64,134,188,233,28,134,188,152,249,133,188,57,214,133,188,205,178,133,188,83,143,133,188,204,107,133,188,55,72,133,188,149,36,133,188,229,0,133,188,39,221,132,188,92,185,132,188,131,149,132,188,157,113,132,188,170,77,132,188,169,41,132,188,154,5,132,188,126,225,131,188,85,189,131,188,30,153,131,188,218,116,131,188,137,80,131,188,42,44,131,188,190,7,131,188,69,227,130,
188,190,190,130,188,42,154,130,188,137,117,130,188,219,80,130,188,31,44,130,188,86,7,130,188,128,226,129,188,157,189,129,188,172,152,129,188,175,115,129,188,164,78,129,188,140,41,129,188,103,4,129,188,53,223,128,188,246,185,128,188,170,148,128,188,81,111,128,188,235,73,128,188,120,36,128,188,239,253,127,188,213,178,127,188,160,103,127,188,82,28,127,188,235,208,126,188,105,133,126,188,205,57,126,188,24,238,125,188,73,162,125,188,97,86,125,188,95,10,125,188,67,190,124,188,14,114,124,188,191,37,124,
188,86,217,123,188,212,140,123,188,57,64,123,188,132,243,122,188,182,166,122,188,207,89,122,188,206,12,122,188,180,191,121,188,129,114,121,188,52,37,121,188,207,215,120,188,80,138,120,188,184,60,120,188,7,239,119,188,62,161,119,188,91,83,119,188,95,5,119,188,74,183,118,188,28,105,118,188,214,26,118,188,118,204,117,188,254,125,117,188,109,47,117,188,195,224,116,188,1,146,116,188,38,67,116,188,50,244,115,188,38,165,115,188,1,86,115,188,196,6,115,188,110,183,114,188,0,104,114,188,121,24,114,188,218,
200,113,188,35,121,113,188,83,41,113,188,107,217,112,188,107,137,112,188,83,57,112,188,34,233,111,188,217,152,111,188,121,72,111,188,0,248,110,188,111,167,110,188,198,86,110,188,5,6,110,188,44,181,109,188,60,100,109,188,51,19,109,188,19,194,108,188,219,112,108,188,139,31,108,188,35,206,107,188,164,124,107,188,13,43,107,188,95,217,106,188,152,135,106,188,187,53,106,188,198,227,105,188,185,145,105,188,149,63,105,188,90,237,104,188,7,155,104,188,157,72,104,188,28,246,103,188,131,163,103,188,211,80,103,
188,12,254,102,188,46,171,102,188,57,88,102,188,44,5,102,188,9,178,101,188,207,94,101,188,125,11,101,188,21,184,100,188,150,100,100,188,0,17,100,188,83,189,99,188,144,105,99,188,181,21,99,188,196,193,98,188,189,109,98,188,158,25,98,188,105,197,97,188,30,113,97,188,188,28,97,188,67,200,96,188,180,115,96,188,15,31,96,188,83,202,95,188,129,117,95,188,153,32,95,188,154,203,94,188,133,118,94,188,90,33,94,188,25,204,93,188,193,118,93,188,84,33,93,188,208,203,92,188,55,118,92,188,135,32,92,188,194,202,91,
188,231,116,91,188,245,30,91,188,238,200,90,188,210,114,90,188,159,28,90,188,87,198,89,188,249,111,89,188,133,25,89,188,252,194,88,188,93,108,88,188,169,21,88,188,223,190,87,188],"i8",4,y.a+225280);
Q([0,104,87,188,11,17,87,188,1,186,86,188,226,98,86,188,174,11,86,188,100,180,85,188,5,93,85,188,144,5,85,188,7,174,84,188,104,86,84,188,181,254,83,188,236,166,83,188,14,79,83,188,28,247,82,188,20,159,82,188,248,70,82,188,198,238,81,188,128,150,81,188,37,62,81,188,182,229,80,188,49,141,80,188,153,52,80,188,235,219,79,188,41,131,79,188,82,42,79,188,103,209,78,188,103,120,78,188,83,31,78,188,43,198,77,188,238,108,77,188,157,19,77,188,55,186,76,188,190,96,76,188,48,7,76,188,142,173,75,188,216,83,75,
188,14,250,74,188,48,160,74,188,61,70,74,188,55,236,73,188,29,146,73,188,239,55,73,188,173,221,72,188,88,131,72,188,238,40,72,188,113,206,71,188,224,115,71,188,60,25,71,188,132,190,70,188,184,99,70,188,217,8,70,188,230,173,69,188,224,82,69,188,198,247,68,188,153,156,68,188,89,65,68,188,5,230,67,188,159,138,67,188,37,47,67,188,151,211,66,188,247,119,66,188,67,28,66,188,125,192,65,188,163,100,65,188,183,8,65,188,183,172,64,188,165,80,64,188,127,244,63,188,71,152,63,188,252,59,63,188,159,223,62,188,
46,131,62,188,171,38,62,188,21,202,61,188,109,109,61,188,178,16,61,188,229,179,60,188,5,87,60,188,19,250,59,188,14,157,59,188,247,63,59,188,206,226,58,188,147,133,58,188,69,40,58,188,229,202,57,188,115,109,57,188,238,15,57,188,88,178,56,188,176,84,56,188,245,246,55,188,41,153,55,188,75,59,55,188,91,221,54,188,89,127,54,188,69,33,54,188,32,195,53,188,233,100,53,188,160,6,53,188,70,168,52,188,218,73,52,188,92,235,51,188,205,140,51,188,44,46,51,188,122,207,50,188,183,112,50,188,226,17,50,188,252,178,
49,188,5,84,49,188,253,244,48,188,227,149,48,188,184,54,48,188,124,215,47,188,47,120,47,188,209,24,47,188,98,185,46,188,226,89,46,188,82,250,45,188,176,154,45,188,253,58,45,188,58,219,44,188,102,123,44,188,129,27,44,188,140,187,43,188,134,91,43,188,112,251,42,188,73,155,42,188,17,59,42,188,201,218,41,188,113,122,41,188,8,26,41,188,143,185,40,188,6,89,40,188,108,248,39,188,194,151,39,188,8,55,39,188,62,214,38,188,100,117,38,188,122,20,38,188,128,179,37,188,118,82,37,188,92,241,36,188,50,144,36,188,
248,46,36,188,174,205,35,188,85,108,35,188,236,10,35,188,115,169,34,188,235,71,34,188,83,230,33,188,172,132,33,188,245,34,33,188,47,193,32,188,89,95,32,188,116,253,31,188,128,155,31,188,124,57,31,188,105,215,30,188,71,117,30,188,21,19,30,188,213,176,29,188,134,78,29,188,39,236,28,188,185,137,28,188,61,39,28,188,178,196,27,188,23,98,27,188,110,255,26,188,182,156,26,188,240,57,26,188,26,215,25,188,54,116,25,188,68,17,25,188,66,174,24,188,51,75,24,188,21,232,23,188,232,132,23,188,173,33,23,188,99,190,
22,188,12,91,22,188,166,247,21,188,49,148,21,188,175,48,21,188,30,205,20,188,128,105,20,188,211,5,20,188,24,162,19,188,79,62,19,188,121,218,18,188,148,118,18,188,161,18,18,188,161,174,17,188,147,74,17,188,119,230,16,188,78,130,16,188,23,30,16,188,210,185,15,188,128,85,15,188,32,241,14,188,179,140,14,188,56,40,14,188,176,195,13,188,26,95,13,188,120,250,12,188,200,149,12,188,10,49,12,188,64,204,11,188,105,103,11,188,132,2,11,188,146,157,10,188,148,56,10,188,136,211,9,188,111,110,9,188,74,9,9,188,24,
164,8,188,217,62,8,188,141,217,7,188,53,116,7,188,207,14,7,188,94,169,6,188,223,67,6,188,84,222,5,188,189,120,5,188,25,19,5,188,105,173,4,188,173,71,4,188,228,225,3,188,15,124,3,188,45,22,3,188,64,176,2,188,70,74,2,188,64,228,1,188,46,126,1,188,17,24,1,188,231,177,0,188,177,75,0,188,223,202,255,187,68,254,254,187,145,49,254,187,199,100,253,187,230,151,252,187,237,202,251,187,221,253,250,187,181,48,250,187,119,99,249,187,34,150,248,187,182,200,247,187,51,251,246,187,153,45,246,187,233,95,245,187,34,
146,244,187,68,196,243,187,81,246,242,187,70,40,242,187,38,90,241,187,240,139,240,187,163,189,239,187,65,239,238,187,201,32,238,187,59,82,237,187,151,131,236,187,222,180,235,187,15,230,234,187,43,23,234,187,50,72,233,187,35,121,232,187,255,169,231,187,198,218,230,187,120,11,230,187,21,60,229,187,158,108,228,187,17,157,227,187,112,205,226,187,187,253,225,187,241,45,225,187,18,94,224,187,32,142,223,187,25,190,222,187,254,237,221,187,207,29,221,187,140,77,220,187,53,125,219,187,203,172,218,187,77,220,
217,187,187,11,217,187,22,59,216,187,93,106,215,187,145,153,214,187,178,200,213,187,192,247,212,187,186,38,212,187,162,85,211,187,119,132,210,187,57,179,209,187,232,225,208,187,133,16,208,187,15,63,207,187,135,109,206,187,236,155,205,187,63,202,204,187,128,248,203,187,175,38,203,187,204,84,202,187,215,130,201,187,208,176,200,187,184,222,199,187,142,12,199,187,82,58,198,187,5,104,197,187,166,149,196,187,55,195,195,187,182,240,194,187,35,30,194,187,128,75,193,187,204,120,192,187,7,166,191,187,50,211,
190,187,75,0,190,187,85,45,189,187,77,90,188,187,53,135,187,187,13,180,186,187,213,224,185,187,141,13,185,187,52,58,184,187,204,102,183,187,83,147,182,187,203,191,181,187,52,236,180,187,140,24,180,187,214,68,179,187,15,113,178,187,58,157,177,187,85,201,176,187,97,245,175,187,94,33,175,187,76,77,174,187,43,121,173,187,251,164,172,187,189,208,171,187,112,252,170,187,20,40,170,187,170,83,169,187,50,127,168,187,171,170,167,187,23,214,166,187,116,1,166,187,195,44,165,187,4,88,164,187,56,131,163,187,93,
174,162,187,117,217,161,187,128,4,161,187,125,47,160,187,109,90,159,187,79,133,158,187,36,176,157,187,237,218,156,187,168,5,156,187,86,48,155,187,247,90,154,187,140,133,153,187,20,176,152,187,143,218,151,187,254,4,151,187,97,47,150,187,183,89,149,187,1,132,148,187,63,174,147,187,113,216,146,187,151,2,146,187,178,44,145,187,192,86,144,187,195,128,143,187,186,170,142,187,166,212,141,187,134,254,140,187,91,40,140,187,37,82,139,187,227,123,138,187,151,165,137,187,64,207,136,187,221,248,135,187,112,34,
135,187,249,75,134,187,119,117,133,187,234,158,132,187,83,200,131,187,177,241,130,187,6,27,130,187,80,68,129,187,144,109,128,187,140,45,127,187,229,127,125,187,42,210,123,187,91,36,122,187,122,118,120,187,133,200,118,187,126,26,117,187,100,108,115,187,55,190,113,187,248,15,112,187,167,97,110,187,69,179,108,187,208,4,107,187,74,86,105,187,178,167,103,187,9,249,101,187,79,74,100,187,132,155,98,187,169,236,96,187,189,61,95,187,193,142,93,187,180,223,91,187,152,48,90,187,108,129,88,187,48,210,86,187,
229,34,85,187,138,115,83,187,33,196,81,187,169,20,80,187,34,101,78,187,140,181,76,187,232,5,75,187,54,86,73,187,118,166,71,187,168,246,69,187,205,70,68,187,228,150,66,187,238,230,64,187,235,54,63,187,218,134,61,187,190,214,59,187,148,38,58,187,95,118,56,187,29,198,54,187,207,21,53,187,117,101,51,187,16,181,49,187,159,4,48,187,35,84,46,187,156,163,44,187,10,243,42,187,109,66,41,187,198,145,39,187,20,225,37,187,88,48,36,187,146,127,34,187,194,206,32,187,233,29,31,187,6,109,29,187,26,188,27,187,37,11,
26,187,38,90,24,187,31,169,22,187,16,248,20,187,248,70,19,187,216,149,17,187,176,228,15,187,128,51,14,187,72,130,12,187,9,209,10,187,195,31,9,187,117,110,7,187,33,189,5,187,198,11,4,187,100,90,2,187,252,168,0,187,27,239,253,186,50,140,250,186,61,41,247,186,61,198,243,186,50,99,240,186,28,0,237,186,252,156,233,186,211,57,230,186,159,214,226,186,99,115,223,186,29,16,220,186,208,172,216,186,122,73,213,186,28,230,209,186,183,130,206,186,75,31,203,186,216,187,199,186,95,88,196,186,224,244,192,186,91,145,
189,186,209,45,186,186,67,202,182,186,175,102,179,186,24,3,176,186,125,159,172,186,222,59,169,186,61,216,165,186,152,116,162,186,242,16,159,186,73,173,155,186,159,73,152,186,244,229,148,186,71,130,145,186,154,30,142,186,237,186,138,186,64,87,135,186,148,243,131,186,232,143,128,186,125,88,122,186,44,145,115,186,222,201,108,186,150,2,102,186,83,59,95,186,22,116,88,186,224,172,81,186,178,229,74,186,140,30,68,186,110,87,61,186,91,144,54,186,82,201,47,186,84,2,41,186,99,59,34,186,125,116,27,186,166,173,
20,186,220,230,13,186,33,32,7,186,117,89,0,186,180,37,243,185,159,152,229,185,173,11,216,185,225,126,202,185,58,242,188,185,187,101,175,185,102,217,161,185,58,77,148,185,59,193,134,185,210,106,114,185,139,83,87,185,166,60,60,185,35,38,33,185,7,16,6,185,168,244,213,184,26,202,159,184,211,64,83,184,114,222,205,183,194,17,172,53,239,92,227,55,119,250,93,56,65,34,165,56,70,70,219,56,163,180,8,57,157,197,35,57,14,214,62,57,243,229,89,57,74,245,116,57,8,2,136,57,33,137,149,57,238,15,163,57,110,150,176,
57,160,28,190,57,130,162,203,57,19,40,217,57,81,173,230,57,59,50,244,57,104,219,0,58,135,157,7,58,121,95,14,58,63,33,21,58,215,226,27,58,64,164,34,58,123,101,41,58,133,38,48,58,96,231,54,58,9,168,61,58,128,104,68,58,196,40,75,58,213,232,81,58,178,168,88,58,91,104,95,58,205,39,102,58,10,231,108,58,15,166,115,58,221,100,122,58,185,145,128,58,232,240,131,58,249,79,135,58,237,174,138,58,196,13,142,58,124,108,145,58,22,203,148,58,146,41,152,58,239,135,155,58,44,230,158,58,73,68,162,58,70,162,165,58,35,
0,169,58,223,93,172,58,122,187,175,58,243,24,179,58,75,118,182,58,128,211,185,58,147,48,189,58,130,141,192,58,79,234,195,58,248,70,199,58,124,163,202,58,221,255,205,58,24,92,209,58,47,184,212,58,32,20,216,58,235,111,219,58,145,203,222,58,15,39,226,58,103,130,229,58,152,221,232,58,161,56,236,58,130,147,239,58,59,238,242,58,204,72,246,58,51,163,249,58,113,253,252,58,195,43,0,59,184,216,1,59,152,133,3,59,98,50,5,59,23,223,6,59,183,139,8,59,64,56,10,59,180,228,11,59,17,145,13,59,87,61,15,59,135,233,16,
59,161,149,18,59,163,65,20,59,142,237,21,59,98,153,23,59,30,69,25,59,195,240,26,59,80,156,28,59,197,71,30,59,34,243,31,59,102,158,33,59,146,73,35,59,165,244,36,59,159,159,38,59,128,74,40,59,72,245,41,59,246,159,43,59,139,74,45,59,6,245,46,59,103,159,48,59,174,73,50,59,219,243,51,59,237,157,53,59,229,71,55,59,193,241,56,59,131,155,58,59,42,69,60,59,181,238,61,59,37,152,63,59,121,65,65,59,177,234,66,59,205,147,68,59,205,60,70,59,176,229,71,59,119,142,73,59,33,55,75,59,174,223,76,59,30,136,78,59,113,
48,80,59,167,216,81,59,190,128,83,59,184,40,85,59,148,208,86,59,82,120,88,59,242,31,90,59,115,199,91,59,213,110,93,59,25,22,95,59,61,189,96,59,67,100,98,59,41,11,100,59,239,177,101,59,150,88,103,59,29,255,104,59,132,165,106,59,202,75,108,59,241,241,109,59,246,151,111,59,219,61,113,59,159,227,114,59,66,137,116,59,196,46,118,59,36,212,119,59,98,121,121,59,127,30,123,59,122,195,124,59,83,104,126,59,133,6,128,59,207,216,128,59,7,171,129,59,46,125,130,59,68,79,131,59,72,33,132,59,59,243,132,59,28,197,
133,59,235,150,134,59,168,104,135,59,83,58,136,59,235,11,137,59,114,221,137,59,231,174,138,59,73,128,139,59,152,81,140,59,213,34,141,59,0,244,141,59,24,197,142,59,29,150,143,59,15,103,144,59,238,55,145,59,186,8,146,59,115,217,146,59,25,170,147,59,172,122,148,59,43,75,149,59,150,27,150,59,238,235,150,59,51,188,151,59,100,140,152,59,129,92,153,59,138,44,154,59,127,252,154,59,96,204,155,59,45,156,156,59,229,107,157,59,138,59,158,59,26,11,159,59,149,218,159,59,252,169,160,59,78,121,161,59,140,72,162,
59,180,23,163,59,200,230,163,59,199,181,164,59,177,132,165,59,133,83,166,59,68,34,167,59,238,240,167,59,131,191,168,59,2,142,169,59,107,92,170,59,191,42,171,59,253,248,171,59,37,199,172,59,55,149,173,59,51,99,174,59,26,49,175,59,234,254,175,59,163,204,176,59,71,154,177,59,212,103,178,59,74,53,179,59,170,2,180,59,243,207,180,59,37,157,181,59,65,106,182,59,69,55,183,59,51,4,184,59,10,209,184,59,201,157,185,59,113,106,186,59,2,55,187,59,123,3,188,59,221,207,188,59,39,156,189,59,89,104,190,59,116,52,
191,59,119,0,192,59,98,204,192,59,53,152,193,59,239,99,194,59,146,47,195,59,28,251,195,59,142,198,196,59,232,145,197,59,41,93,198,59,82,40,199,59,98,243,199,59,89,190,200,59,55,137,201,59,252,83,202,59,168,30,203,59,60,233,203,59,182,179,204,59,22,126,205,59,94,72,206,59,140,18,207,59,160,220,207,59,155,166,208,59,124,112,209,59,68,58,210,59,242,3,211,59,133,205,211,59,255,150,212,59,95,96,213,59,164,41,214,59,208,242,214,59,225,187,215,59,215,132,216,59,179,77,217,59,117,22,218,59,28,223,218,59,
168,167,219,59,25,112,220,59,112,56,221,59,171,0,222,59,204,200,222,59,209,144,223,59,187,88,224,59,138,32,225,59,61,232,225,59,213,175,226,59,81,119,227,59,178,62,228,59,247,5,229,59,32,205,229,59,46,148,230,59,31,91,231,59,244,33,232,59,174,232,232,59,75,175,233,59,204,117,234,59,48,60,235,59,120,2,236,59,164,200,236,59,179,142,237,59,165,84,238,59,122,26,239,59,51,224,239,59,207,165,240,59,78,107,241,59,175,48,242,59,244,245,242,59,27,187,243,59,37,128,244,59,18,69,245,59,225,9,246,59,146,206,
246,59,38,147,247,59,157,87,248,59,245,27,249,59,48,224,249,59,76,164,250,59,75,104,251,59,43,44,252,59,237,239,252,59,145,179,253,59,23,119,254,59,126,58,255,59,199,253,255,59,121,96,0,60,254,193,0,60,117,35,1,60,220,132,1,60,51,230,1,60,123,71,2,60,180,168,2,60,221,9,3,60,246,106,3,60,0,204,3,60,250,44,4,60,228,141,4,60,190,238,4,60,137,79,5,60,68,176,5,60,239,16,6,60,138,113,6,60,21,210,6,60,144,50,7,60,251,146,7,60,86,243,7,60,161,83,8,60,219,179,8,60,6,20,9,60,32,116,9,60,42,212,9,60,36,52,10,
60,13,148,10,60,230,243,10,60,174,83,11,60,102,179,11,60,14,19,12,60,165,114,12,60,43,210,12,60,161,49,13,60,6,145,13,60,91,240,13,60,158,79,14,60,209,174,14,60,243,13,15,60,5,109,15,60,5,204,15,60,244,42,16,60,211,137,16,60,160,232,16,60,93,71,17,60,8,166,17,60,162,4,18,60,43,99,18,60,163,193,18,60,10,32,19,60,95,126,19,60,163,220,19,60,214,58,20,60,247,152,20,60,7,247,20,60,6,85,21,60,242,178,21,60,206,16,22,60,152,110,22,60,80,204,22,60,246,41,23,60,139,135,23,60,14,229,23,60,128,66,24,60,223,
159,24,60,45,253,24,60,105,90,25,60,147,183,25,60,171,20,26,60,177,113,26,60,165,206,26,60,135,43,27,60,87,136,27,60,20,229,27,60,192,65,28,60,89,158,28,60,224,250,28,60,85,87,29,60,183,179,29,60,7,16,30,60,69,108,30,60,112,200,30,60,137,36,31,60,143,128,31,60,131,220,31,60,100,56,32,60,50,148,32,60,238,239,32,60,151,75,33,60,46,167,33,60,177,2,34,60,34,94,34,60,128,185,34,60,203,20,35,60,3,112,35,60,41,203,35,60,59,38,36,60,58,129,36,60,38,220,36,60,255,54,37,60,197,145,37,60,120,236,37,60,23,71,
38,60,164,161,38,60,29,252,38,60,131,86,39,60,213,176,39,60,20,11,40,60,63,101,40,60,87,191,40,60,92,25,41,60,77,115,41,60,43,205,41,60,244,38,42,60,171,128,42,60,77,218,42,60,220,51,43,60,87,141,43,60,190,230,43,60,18,64,44,60,81,153,44,60,125,242,44,60,149,75,45,60,153,164,45,60,137,253,45,60,100,86,46,60,44,175,46,60,224,7,47,60,127,96,47,60,11,185,47,60,130,17,48,60,229,105,48,60,51,194,48,60,109,26,49,60,147,114,49,60,165,202,49,60,162,34,50,60,138,122,50,60,94,210,50,60,30,42,51,60,201,129,
51,60,95,217,51,60,225,48,52,60,78,136,52,60,167,223,52,60,234,54,53,60,25,142,53,60,51,229,53,60,57,60,54,60,41,147,54,60,4,234,54,60,203,64,55,60,124,151,55,60,25,238,55,60,160,68,56,60,19,155,56,60,112,241,56,60,184,71,57,60,235,157,57,60,9,244,57,60,17,74,58,60,4,160,58,60,226,245,58,60,170,75,59,60,93,161,59,60,251,246,59,60,131,76,60,60,246,161,60,60,83,247,60,60,154,76,61,60,204,161,61,60,232,246,61,60,239,75,62,60,224,160,62,60,187,245,62,60,128,74,63,60,48,159,63,60,202,243,63,60,78,72,64,
60,188,156,64,60,20,241,64,60,86,69,65,60,130,153,65,60,152,237,65,60,152,65,66,60,130,149,66,60,85,233,66,60,19,61,67,60,186,144,67,60,75,228,67,60,198,55,68,60,43,139,68,60,121,222,68,60,177,49,69,60,210,132,69,60,221,215,69,60,210,42,70,60,176,125,70,60,119,208,70,60,40,35,71,60,194,117,71,60,70,200,71,60,179,26,72,60,9,109,72,60,73,191,72,60,113,17,73,60,131,99,73,60,126,181,73,60,99,7,74,60,48,89,74,60,230,170,74,60,134,252,74,60,14,78,75,60,128,159,75,60,218,240,75,60,30,66,76,60,74,147,76,
60,95,228,76,60,93,53,77,60,67,134,77,60,19,215,77,60,203,39,78,60,107,120,78,60,245,200,78,60,103,25,79,60,194,105,79,60,5,186,79,60,48,10,80,60,69,90,80,60,65,170,80,60,38,250,80,60,244,73,81,60,170,153,81,60,72,233,81,60,206,56,82,60,61,136,82,60,148,215,82,60,211,38,83,60,251,117,83,60,10,197,83,60,2,20,84,60,226,98,84,60,170,177,84,60,89,0,85,60,241,78,85,60,113,157,85,60,217,235,85,60,40,58,86,60,96,136,86,60,127,214,86,60,134,36,87,60,117,114,87,60,76,192,87,60,10,14,88,60,176,91,88,60,62,
169,88,60,179,246,88,60,16,68,89,60,84,145,89,60,128,222,89,60,148,43,90,60,143,120,90,60,113,197,90,60,59,18,91,60,236,94,91,60,132,171,91,60,4,248,91,60,107,68,92,60,186,144,92,60,239,220,92,60,12,41,93,60,16,117,93,60,251,192,93,60,205,12,94,60,135,88,94,60,39,164,94,60,174,239,94,60,29,59,95,60,114,134,95,60,174,209,95,60,209,28,96,60,219,103,96,60,204,178,96,60,164,253,96,60,98,72,97,60,7,147,97,60,147,221,97,60,6,40,98,60,95,114,98,60,159,188,98,60,197,6,99,60,210,80,99,60,198,154,99,60,160,
228,99,60,97,46,100,60,8,120,100,60,149,193,100,60,9,11,101,60,99,84,101,60,164,157,101,60,203,230,101,60,216,47,102,60,204,120,102,60,165,193,102,60,101,10,103,60,11,83,103,60,152,155,103,60,10,228,103,60,99,44,104,60,161,116,104,60,198,188,104,60,208,4,105,60,193,76,105,60,151,148,105,60,83,220,105,60,246,35,106,60,126,107,106,60,236,178,106,60,64,250,106,60,121,65,107,60,152,136,107,60,158,207,107,60,136,22,108,60,89,93,108,60,15,164,108,60,170,234,108,60,44,49,109,60,146,119,109,60,223,189,109,
60,16,4,110,60,40,74,110,60,36,144,110,60,7,214,110,60,206,27,111,60,123,97,111,60,13,167,111,60,133,236,111,60,226,49,112,60,36,119,112,60,75,188,112,60,88,1,113,60,74,70,113,60,32,139,113,60,220,207,113,60,125,20,114,60,4,89,114,60,111,157,114,60,191,225,114,60,244,37,115,60,14,106,115,60,14,174,115,60,242,241,115,60,186,53,116,60,104,121,116,60,251,188,116,60,114,0,117,60,206,67,117,60,15,135,117,60,53,202,117,60,63,13,118,60,46,80,118,60,2,147,118,60,186,213,118,60,87,24,119,60,217,90,119,60,
63,157,119,60,137,223,119,60,184,33,120,60,204,99,120,60,196,165,120,60,160,231,120,60,97,41,121,60,6,107,121,60,143,172,121,60,253,237,121,60,79,47,122,60,133,112,122,60,160,177,122,60,159,242,122,60,130,51,123,60,73,116,123,60,244,180,123,60,131,245,123,60,247,53,124,60,78,118,124,60,138,182,124,60,169,246,124,60,173,54,125,60,148,118,125,60,96,182,125,60,15,246,125,60,162,53,126,60,26,117,126,60,117,180,126,60,179,243,126,60,214,50,127,60,220,113,127,60,198,176,127,60,148,239,127,60,35,23,128,
60,109,54,128,60,170,85,128,60,216,116,128,60,248,147,128,60,10,179,128,60,13,210,128,60,3,241,128,60,234,15,129,60,195,46,129,60,141,77,129,60,73,108,129,60,247,138,129,60,151,169,129,60,40,200,129,60,172,230,129,60,32,5,130,60,135,35,130,60,222,65,130,60,40,96,130,60,99,126,130,60,144,156,130,60,174,186,130,60,190,216,130,60,192,246,130,60,179,20,131,60,152,50,131,60,110,80,131,60,53,110,131,60,238,139,131,60,153,169,131,60,53,199,131,60,195,228,131,60,66,2,132,60,178,31,132,60,20,61,132,60,104,
90,132,60,173,119,132,60,227,148,132,60,10,178,132,60,35,207,132,60,46,236,132,60,42,9,133,60,23,38,133,60,245,66,133,60,197,95,133,60,134,124,133,60,56,153,133,60,220,181,133,60,113,210,133,60,247,238,133,60,110,11,134,60,215,39,134,60,49,68,134,60,124,96,134,60,185,124,134,60,230,152,134,60,5,181,134,60,21,209,134,60,22,237,134,60,9,9,135,60,236,36,135,60,193,64,135,60,135,92,135,60,61,120,135,60,229,147,135,60,127,175,135,60,9,203,135,60,132,230,135,60,240,1,136,60,78,29,136,60,156,56,136,60,220,
83,136,60,12,111,136,60,46,138,136,60,64,165,136,60,68,192,136,60,56,219,136,60,30,246,136,60,244,16,137,60,188,43,137,60,116,70,137,60,30,97,137,60,184,123,137,60,67,150,137,60,191,176,137,60,44,203,137,60,138,229,137,60,217,255,137,60,24,26,138,60,73,52,138,60,106,78,138,60,124,104,138,60,127,130,138,60,115,156,138,60,88,182,138,60,45,208,138,60,243,233,138,60,170,3,139,60,82,29,139,60,234,54,139,60,116,80,139,60,238,105,139,60,88,131,139,60,180,156,139,60,0,182,139,60,61,207,139,60,106,232,139,
60,136,1,140,60,151,26,140,60,151,51,140,60,135,76,140,60,104,101,140,60,57,126,140,60,252,150,140,60,174,175,140,60,82,200,140,60,230,224,140,60,106,249,140,60,223,17,141,60,69,42,141,60,155,66,141,60,226,90,141,60,25,115,141,60,65,139,141,60,90,163,141,60,99,187,141,60,92,211,141,60,70,235,141,60,32,3,142,60,235,26,142,60,167,50,142,60,83,74,142,60,239,97,142,60,124,121,142,60,249,144,142,60,102,168,142,60,197,191,142,60,19,215,142,60,82,238,142,60,129,5,143,60,161,28,143,60,177,51,143,60,177,74,
143,60,162,97,143,60,131,120,143,60,84,143,143,60,22,166,143,60,200,188,143,60,107,211,143,60,253,233,143,60,128,0,144,60,244,22,144,60,87,45,144,60,171,67,144,60,239,89,144,60,36,112,144,60,72,134,144,60,93,156,144,60,98,178,144,60,88,200,144,60,61,222,144,60,19,244,144,60,217,9,145,60,143,31,145,60,54,53,145,60,204,74,145,60,83,96,145,60,202,117,145,60,49,139,145,60,136,160,145,60,207,181,145,60,7,203,145,60,47,224,145,60,70,245,145,60,78,10,146,60,70,31,146,60,46,52,146,60,6,73,146,60,206,93,146,
60,134,114,146,60,47,135,146,60,199,155,146,60,80,176,146,60,200,196,146,60,49,217,146,60,137,237,146,60,210,1,147,60,10,22,147,60,51,42,147,60,75,62,147,60,84,82,147,60,76,102,147,60,53,122,147,60,13,142,147,60,214,161,147,60,142,181,147,60,54,201,147,60,207,220,147,60,87,240,147,60,207,3,148,60,55,23,148,60,143,42,148,60,215,61,148,60,14,81,148,60,54,100,148,60,77,119,148,60,85,138,148,60,76,157,148,60,51,176,148,60,10,195,148,60,209,213,148,60,136,232,148,60,46,251,148,60,196,13,149,60,75,32,149,
60,193,50,149,60,38,69,149,60,124,87,149,60,193,105,149,60,246,123,149,60,27,142,149,60,48,160,149,60,53,178,149,60,41,196,149,60,13,214,149,60,225,231,149,60,164,249,149,60,87,11,150,60,250,28,150,60,141,46,150,60,15,64,150,60,130,81,150,60,227,98,150,60,53,116,150,60,118,133,150,60,167,150,150,60,200,167,150,60,216,184,150,60,216,201,150,60,200,218,150,60,167,235,150,60,118,252,150,60,52,13,151,60,226,29,151,60,128,46,151,60,14,63,151,60,139,79,151,60,248,95,151,60,84,112,151,60,160,128,151,60,
219,144,151,60,7,161,151,60,33,177,151,60,44,193,151,60,37,209,151,60,15,225,151,60,232,240,151,60,176,0,152,60,105,16,152,60,16,32,152,60,167,47,152,60,46,63,152,60,165,78,152,60,10,94,152,60,96,109,152,60,165,124,152,60,217,139,152,60,253,154,152,60,16,170,152,60,19,185,152,60,6,200,152,60,231,214,152,60,185,229,152,60,122,244,152,60,42,3,153,60,202,17,153,60,89,32,153,60,216,46,153,60,70,61,153,60,163,75,153,60,240,89,153,60,45,104,153,60,89,118,153,60,116,132,153,60,127,146,153,60,121,160,153,
60,98,174,153,60,59,188,153,60,4,202,153,60,188,215,153,60,99,229,153,60,249,242,153,60,127,0,154,60,245,13,154,60,89,27,154,60,173,40,154,60,241,53,154,60,36,67,154,60,70,80,154,60,87,93,154,60,88,106,154,60,73,119,154,60,40,132,154,60,247,144,154,60,181,157,154,60,99,170,154,60,0,183,154,60,140,195,154,60,8,208,154,60,114,220,154,60,205,232,154,60,22,245,154,60,79,1,155,60,119,13,155,60,142,25,155,60,149,37,155,60,139,49,155,60,112,61,155,60,68,73,155,60,8,85,155,60,187,96,155,60,94,108,155,60,
239,119,155,60,112,131,155,60,224,142,155,60,63,154,155,60,142,165,155,60,204,176,155,60,249,187,155,60,21,199,155,60,32,210,155,60,27,221,155,60,5,232,155,60,222,242,155,60,167,253,155,60,94,8,156,60,5,19,156,60,155,29,156,60,33,40,156,60,149,50,156,60,249,60,156,60,76,71,156,60,142,81,156,60,191,91,156,60,223,101,156,60,239,111,156,60,238,121,156,60,220,131,156,60,185,141,156,60,133,151,156,60,65,161,156,60,235,170,156,60,133,180,156,60,14,190,156,60,134,199,156,60,237,208,156,60,68,218,156,60,
137,227,156,60,190,236,156,60,226,245,156,60,245,254,156,60,247,7,157,60,232,16,157,60,201,25,157,60,152,34,157,60,87,43,157,60,5,52,157,60,162,60,157,60,46,69,157,60,169,77,157,60,19,86,157,60,109,94,157,60,181,102,157,60,237,110,157,60,19,119,157,60,41,127,157,60,46,135,157,60,34,143,157,60,5,151,157,60,216,158,157,60,153,166,157,60,73,174,157,60,233,181,157,60,119,189,157,60,245,196,157,60,98,204,157,60,189,211,157,60,8,219,157,60,66,226,157,60,107,233,157,60,131,240,157,60,139,247,157,60,129,
254,157,60,102,5,158,60,59,12,158,60,254,18,158,60,177,25,158,60,82,32,158,60,227,38,158,60,98,45,158,60,209,51,158,60,47,58,158,60,124,64,158,60,184,70,158,60,227,76,158,60,253,82,158,60,6,89,158,60,254,94,158,60,229,100,158,60,187,106,158,60,128,112,158,60,53,118,158,60,216,123,158,60,106,129,158,60,236,134,158,60,92,140,158,60,187,145,158,60,10,151,158,60,71,156,158,60,116,161,158,60,143,166,158,60,154,171,158,60,148,176,158,60,124,181,158,60,84,186,158,60,27,191,158,60,208,195,158,60,117,200,
158,60,9,205,158,60,140,209,158,60,253,213,158,60,94,218,158,60,174,222,158,60,237,226,158,60,27,231,158,60,56,235,158,60,68,239,158,60,63,243,158,60,41,247,158,60,2,251,158,60,202,254,158,60,129,2,159,60,39,6,159,60,188,9,159,60,64,13,159,60,179,16,159,60,21,20,159,60,102,23,159,60,166,26,159,60,213,29,159,60,243,32,159,60,0,36,159,60,252,38,159,60,231,41,159,60,194,44,159,60,139,47,159,60,67,50,159,60,234,52,159,60,128,55,159,60,5,58,159,60,122,60,159,60,221,62,159,60,47,65,159,60,112,67,159,60,
161,69,159,60,192,71,159,60,206,73,159,60,204,75,159,60,184,77,159,60,147,79,159,60,93,81,159,60,23,83,159,60,191,84,159,60,87,86,159,60,221,87,159,60,82,89,159,60,183,90,159,60,10,92,159,60,77,93,159,60,126,94,159,60,159,95,159,60,174,96,159,60,173,97,159,60,154,98,159,60,119,99,159,60,66,100,159,60,253,100,159,60,167,101,159,60,63,102,159,60,199,102,159,60,62,103,159,60,163,103,159,60,248,103,159,60,60,104,159,60,111,104,159,60,145,104,159,60,161,104,159,60,161,104,159,60,144,104,159,60,110,104,
159,60,59,104,159,60,247,103,159,60,162,103,159,60,61,103,159,60,198,102,159,60,62,102,159,60,165,101,159,60,252,100,159,60,65,100,159,60,117,99,159,60,153,98,159,60,171,97,159,60,173,96,159,60,157,95,159,60,125,94,159,60,76,93,159,60,10,92,159,60,182,90,159,60,82,89,159,60,221,87,159,60,87,86,159,60,192,84,159,60,25,83,159,60,96,81,159,60,150,79,159,60,188,77,159,60,208,75,159,60,212,73,159,60,198,71,159,60,168,69,159,60,121,67,159,60,57,65,159,60,231,62,159,60,134,60,159,60,19,58,159,60,143,55,
159,60,250,52,159,60,85,50,159,60,158,47,159,60,215,44,159,60,255,41,159,60,21,39,159,60,27,36,159,60,16,33,159,60,245,29,159,60,200,26,159,60,138,23,159,60,60,20,159,60,221,16,159,60,108,13,159,60,235,9,159,60,89,6,159,60,182,2,159,60,3,255,158,60,62,251,158,60,105,247,158,60,131,243,158,60,140,239,158,60,132,235,158,60,107,231,158,60,65,227,158,60,7,223,158,60,187,218,158,60,95,214,158,60,242,209,158,60,116,205,158,60,230,200,158,60,70,196,158,60,150,191,158,60,213,186,158,60,3,182,158,60,32,177,
158,60,45,172,158,60,40,167,158,60,19,162,158,60,237,156,158,60,183,151,158,60,111,146,158,60,23,141,158,60,174,135,158,60,52,130,158,60,169,124,158,60,14,119,158,60,97,113,158,60,165,107,158,60,215,101,158,60,248,95,158,60,9,90,158,60,9,84,158,60,248,77,158,60,215,71,158,60,164,65,158,60,97,59,158,60,14,53,158,60,169,46,158,60,52,40,158,60,174,33,158,60,24,27,158,60,112,20,158,60,184,13,158,60,239,6,158,60,22,0,158,60,44,249,157,60,49,242,157,60,37,235,157,60,9,228,157,60,220,220,157,60,158,213,
157,60,80,206,157,60,241,198,157,60,129,191,157,60,1,184,157,60,112,176,157,60,207,168,157,60,28,161,157,60,89,153,157,60,134,145,157,60,162,137,157,60,173,129,157,60,167,121,157,60,145,113,157,60,106,105,157,60,51,97,157,60,235,88,157,60,147,80,157,60,41,72,157,60,176,63,157,60,37,55,157,60,138,46,157,60,223,37,157,60,35,29,157,60,86,20,157,60,121,11,157,60,139,2,157,60,141,249,156,60,126,240,156,60,94,231,156,60,46,222,156,60,237,212,156,60,156,203,156,60,59,194,156,60,200,184,156,60,70,175,156,
60,179,165,156,60,15,156,156,60,91,146,156,60,150,136,156,60,193,126,156,60,219,116,156,60,229,106,156,60,222,96,156,60,199,86,156,60,159,76,156,60,103,66,156,60,31,56,156,60,198,45,156,60,92,35,156,60,226,24,156,60,88,14,156,60,189,3,156,60,18,249,155,60,86,238,155,60,138,227,155,60,174,216,155,60,193,205,155,60,196,194,155,60,182,183,155,60,152,172,155,60,105,161,155,60,43,150,155,60,219,138,155,60,124,127,155,60,12,116,155,60,140,104,155,60,251,92,155,60,90,81,155,60,169,69,155,60,231,57,155,60,
21,46,155,60,51,34,155,60,64,22,155,60,62,10,155,60,42,254,154,60,7,242,154,60,211,229,154,60,143,217,154,60,59,205,154,60,214,192,154,60,97,180,154,60,220,167,154,60,71,155,154,60,161,142,154,60,236,129,154,60,37,117,154,60,79,104,154,60,105,91,154,60,114,78,154,60,107,65,154,60,84,52,154,60,45,39,154,60,245,25,154,60,173,12,154,60,86,255,153,60,237,241,153,60,117,228,153,60,237,214,153,60,84,201,153,60,172,187,153,60,243,173,153,60,42,160,153,60,81,146,153,60,104,132,153,60,111,118,153,60,101,104,
153,60,76,90,153,60,35,76,153,60,233,61,153,60,159,47,153,60,70,33,153,60,220,18,153,60,98,4,153,60,216,245,152,60,62,231,152,60,148,216,152,60,218,201,152,60,16,187,152,60,54,172,152,60,76,157,152,60,82,142,152,60,72,127,152,60,46,112,152,60,4,97,152,60,203,81,152,60,129,66,152,60,39,51,152,60,189,35,152,60,67,20,152,60,186,4,152,60,32,245,151,60,119,229,151,60,190,213,151,60,244,197,151,60,27,182,151,60,50,166,151,60,57,150,151,60,49,134,151,60,24,118,151,60,240,101,151,60,183,85,151,60,111,69,
151,60,23,53,151,60,175,36,151,60,56,20,151,60,176,3,151,60,25,243,150,60,114,226,150,60,187,209,150,60,245,192,150,60,31,176,150,60,57,159,150,60,67,142,150,60,61,125,150,60,40,108,150,60,3,91,150,60,206,73,150,60,138,56,150,60,54,39,150,60,210,21,150,60,94,4,150,60,219,242,149,60,72,225,149,60,166,207,149,60,244,189,149,60,50,172,149,60,96,154,149,60,127,136,149,60,143,118,149,60,142,100,149,60,127,82,149,60,95,64,149,60,48,46,149,60,241,27,149,60,163,9,149,60,69,247,148,60,216,228,148,60,91,210,
148,60,207,191,148,60,51,173,148,60,136,154,148,60,205,135,148,60,2,117,148,60,40,98,148,60,63,79,148,60,70,60,148,60,62,41,148,60,38,22,148,60,255,2,148,60,200,239,147,60,130,220,147,60,45,201,147,60,200,181,147,60,84,162,147,60,208,142,147,60,61,123,147,60,155,103,147,60,233,83,147,60,40,64,147,60,87,44,147,60,120,24,147,60,137,4,147,60,138,240,146,60,124,220,146,60,95,200,146,60,51,180,146,60,247,159,146,60,173,139,146,60,82,119,146,60,233,98,146,60,113,78,146,60,233,57,146,60,82,37,146,60,171,
16,146,60,246,251,145,60,49,231,145,60,93,210,145,60,122,189,145,60,136,168,145,60,135,147,145,60,118,126,145,60,87,105,145,60,40,84,145,60,234,62,145,60,157,41,145,60,65,20,145,60,214,254,144,60,92,233,144,60,211,211,144,60,58,190,144,60,147,168,144,60,221,146,144,60,23,125,144,60,67,103,144,60,95,81,144,60,109,59,144,60,107,37,144,60,91,15,144,60,60,249,143,60,13,227,143,60,208,204,143,60,132,182,143,60,41,160,143,60,191,137,143,60,70,115,143,60,190,92,143,60,39,70,143,60,130,47,143,60,205,24,143,
60,10,2,143,60,56,235,142,60,87,212,142,60,103,189,142,60,104,166,142,60,91,143,142,60,63,120,142,60,20,97,142,60,218,73,142,60,146,50,142,60,58,27,142,60,212,3,142,60,96,236,141,60,220,212,141,60,74,189,141,60,169,165,141,60,250,141,141,60,60,118,141,60,111,94,141,60,147,70,141,60,169,46,141,60,177,22,141,60,169,254,140,60,147,230,140,60,111,206,140,60,60,182,140,60,250,157,140,60,170,133,140,60,75,109,140,60,222,84,140,60,98,60,140,60,215,35,140,60,62,11,140,60,151,242,139,60,225,217,139,60,29,
193,139,60,74,168,139,60,105,143,139,60,121,118,139,60,123,93,139,60,110,68,139,60,83,43,139,60,42,18,139,60,242,248,138,60,172,223,138,60,88,198,138,60,245,172,138,60,132,147,138,60,4,122,138,60,118,96,138,60,218,70,138,60,48,45,138,60,119,19,138,60,176,249,137,60,219,223,137,60,248,197,137,60,6,172,137,60,6,146,137,60,248,119,137,60,220,93,137,60,177,67,137,60,121,41,137,60,50,15,137,60,221,244,136,60,122,218,136,60,9,192,136,60,137,165,136,60,252,138,136,60,96,112,136,60,183,85,136,60,255,58,136,
60,57,32,136,60,102,5,136,60,132,234,135,60,148,207,135,60,150,180,135,60,138,153,135,60,112,126,135,60,73,99,135,60,19,72,135,60,207,44,135,60,126,17,135,60,30,246,134,60,177,218,134,60,53,191,134,60,172,163,134,60,21,136,134,60,112,108,134,60,189,80,134,60,253,52,134,60,46,25,134,60,82,253,133,60,104,225,133,60,112,197,133,60,107,169,133,60,87,141,133,60,54,113,133,60,7,85,133,60,203,56,133,60,129,28,133,60,41,0,133,60,195,227,132,60,80,199,132,60,207,170,132,60,64,142,132,60,164,113,132,60,250,
84,132,60,66,56,132,60,125,27,132,60,171,254,131,60,202,225,131,60,221,196,131,60,225,167,131,60,216,138,131,60,194,109,131,60,158,80,131,60,109,51,131,60,46,22,131,60,226,248,130,60,136,219,130,60,33,190,130,60,172,160,130,60,42,131,130,60,154,101,130,60,254,71,130,60,83,42,130,60,156,12,130,60,215,238,129,60,5,209,129,60,37,179,129,60,56,149,129,60,62,119,129,60,55,89,129,60,34,59,129,60,0,29,129,60,209,254,128,60,148,224,128,60,75,194,128,60,244,163,128,60,144,133,128,60,31,103,128,60,160,72,128,
60,21,42,128,60,124,11,128,60,172,217,127,60,71,156,127,60,199,94,127,60,45,33,127,60,121,227,126,60,170,165,126,60,194,103,126,60,191,41,126,60,163,235,125,60,108,173,125,60,28,111,125,60,178,48,125,60,45,242,124,60,143,179,124,60,215,116,124,60,5,54,124,60,26,247,123,60,20,184,123,60,245,120,123,60,188,57,123,60,106,250,122,60,254,186,122,60,120,123,122,60,216,59,122,60,31,252,121,60,77,188,121,60,97,124,121,60,91,60,121,60,60,252,120,60,4,188,120,60,178,123,120,60,71,59,120,60,194,250,119,60,36,
186,119,60,109,121,119,60,156,56,119,60,179,247,118,60,176,182,118,60,148,117,118,60,94,52,118,60,16,243,117,60,169,177,117,60,40,112,117,60,143,46,117,60,220,236,116,60,17,171,116,60,44,105,116,60,47,39,116,60,24,229,115,60,233,162,115,60,161,96,115,60,64,30,115,60,199,219,114,60,53,153,114,60,138,86,114,60,198,19,114,60,234,208,113,60,245,141,113,60,231,74,113,60,193,7,113,60,130,196,112,60,43,129,112,60,187,61,112,60,51,250,111,60,147,182,111,60,218,114,111,60,9,47,111,60,31,235,110,60,29,167,
110,60,3,99,110,60,209,30,110,60,134,218,109,60,35,150,109,60,168,81,109,60,21,13,109,60,106,200,108,60,167,131,108,60,203,62,108,60,216,249,107,60,205,180,107,60,170,111,107,60,111,42,107,60,28,229,106,60,177,159,106,60,46,90,106,60,148,20,106,60,226,206,105,60,24,137,105,60,54,67,105,60,61,253,104,60,44,183,104,60,4,113,104,60,195,42,104,60,108,228,103,60,253,157,103,60,118,87,103,60,216,16,103,60,35,202,102,60,86,131,102,60,113,60,102,60,118,245,101,60,99,174,101,60,57,103,101,60,248,31,101,60,
159,216,100,60,47,145,100,60,168,73,100,60,10,2,100,60,85,186,99,60,137,114,99,60,166,42,99,60,172,226,98,60,155,154,98,60,115,82,98,60,52,10,98,60,222,193,97,60,114,121,97,60,238,48,97,60,84,232,96,60,163,159,96,60,220,86,96,60,254,13,96,60,9,197,95,60,253,123,95,60,219,50,95,60,163,233,94,60,84,160,94,60,238,86,94,60,114,13,94,60,224,195,93,60,55,122,93,60,120,48,93,60,162,230,92,60,182,156,92,60,180,82,92,60,156,8,92,60,110,190,91,60,41,116,91,60,206,41,91,60,94,223,90,60,215,148,90,60,58,74,90,
60,135,255,89,60,190,180,89,60,223,105,89,60,235,30,89,60,224,211,88,60,192,136,88,60,137,61,88,60,62,242,87,60,220,166,87,60,100,91,87,60,215,15,87,60,53,196,86,60,124,120,86,60,175,44,86,60,203,224,85,60,210,148,85,60,196,72,85,60,160,252,84,60,103,176,84,60,24,100,84,60,180,23,84,60,59,203,83,60,173,126,83,60,9,50,83,60,80,229,82,60,130,152,82,60,158,75,82,60,166,254,81,60,153,177,81,60,118,100,81,60,63,23,81,60,242,201,80,60,145,124,80,60,26,47,80,60,143,225,79,60,239,147,79,60,58,70,79,60,113,
248,78,60,146,170,78,60,159,92,78,60,152,14,78,60,123,192,77,60,74,114,77,60,5,36,77,60,171,213,76,60,60,135,76,60,185,56,76,60,34,234,75,60,118,155,75,60,181,76,75,60,225,253,74,60,248,174,74,60,251,95,74,60,233,16,74,60,196,193,73,60,138,114,73,60,60,35,73,60,218,211,72,60,100,132,72,60,218,52,72,60,60,229,71,60,138,149,71,60,196,69,71,60,235,245,70,60,253,165,70,60,251,85,70,60,230,5,70,60,189,181,69,60,128,101,69,60,48,21,69,60,204,196,68,60,84,116,68,60,201,35,68,60,42,211,67,60,120,130,67,60,
178,49,67,60,217,224,66,60,237,143,66,60,237,62,66,60,217,237,65,60,179,156,65,60,121,75,65,60,44,250,64,60,204,168,64,60,88,87,64,60,210,5,64,60,56,180,63,60,139,98,63,60,204,16,63,60,249,190,62,60,19,109,62,60,27,27,62,60,15,201,61,60,241,118,61,60,192,36,61,60,124,210,60,60,38,128,60,60,189,45,60,60,65,219,59,60,178,136,59,60,17,54,59,60,93,227,58,60,151,144,58,60,190,61,58,60,211,234,57,60,214,151,57,60,198,68,57,60,163,241,56,60,111,158,56,60,40,75,56,60,207,247,55,60,99,164,55,60,230,80,55,
60,86,253,54,60,181,169,54,60,1,86,54,60,59,2,54,60,99,174,53,60,122,90,53,60,126,6,53,60,112,178,52,60,81,94,52,60,32,10,52,60,221,181,51,60,136,97,51,60,34,13,51,60,170,184,50,60,32,100,50,60,133,15,50,60,217,186,49,60,26,102,49,60,74,17,49,60,105,188,48,60,119,103,48,60,115,18,48,60,93,189,47,60,55,104,47,60,255,18,47,60,182,189,46,60,92,104,46,60,240,18,46,60,116,189,45,60,230,103,45,60,71,18,45,60,152,188,44,60,215,102,44,60,5,17,44,60,35,187,43,60,48,101,43,60,44,15,43,60,23,185,42,60,241,98,
42,60,187,12,42,60,116,182,41,60,28,96,41,60,180,9,41,60,59,179,40,60,177,92,40,60,24,6,40,60],"i8",4,y.a+235520);
Q([109,175,39,60,179,88,39,60,231,1,39,60,12,171,38,60,32,84,38,60,36,253,37,60,24,166,37,60,252,78,37,60,207,247,36,60,146,160,36,60,70,73,36,60,233,241,35,60,124,154,35,60,255,66,35,60,115,235,34,60,214,147,34,60,42,60,34,60,109,228,33,60,161,140,33,60,197,52,33,60,218,220,32,60,223,132,32,60,212,44,32,60,186,212,31,60,144,124,31,60,86,36,31,60,13,204,30,60,181,115,30,60,77,27,30,60,214,194,29,60,79,106,29,60,186,17,29,60,21,185,28,60,96,96,28,60,157,7,28,60,202,174,27,60,233,85,27,60,248,252,26,
60,248,163,26,60,234,74,26,60,204,241,25,60,159,152,25,60,100,63,25,60,25,230,24,60,192,140,24,60,88,51,24,60,226,217,23,60,93,128,23,60,201,38,23,60,38,205,22,60,117,115,22,60,181,25,22,60,231,191,21,60,11,102,21,60,32,12,21,60,38,178,20,60,31,88,20,60,9,254,19,60,228,163,19,60,178,73,19,60,113,239,18,60,34,149,18,60,198,58,18,60,91,224,17,60,225,133,17,60,90,43,17,60,197,208,16,60,35,118,16,60,114,27,16,60,179,192,15,60,231,101,15,60,13,11,15,60,37,176,14,60,47,85,14,60,44,250,13,60,27,159,13,60,
253,67,13,60,209,232,12,60,151,141,12,60,80,50,12,60,252,214,11,60,154,123,11,60,43,32,11,60,175,196,10,60,37,105,10,60,143,13,10,60,235,177,9,60,58,86,9,60,123,250,8,60,176,158,8,60,216,66,8,60,242,230,7,60,0,139,7,60,1,47,7,60,245,210,6,60,220,118,6,60,183,26,6,60,132,190,5,60,69,98,5,60,249,5,5,60,161,169,4,60,60,77,4,60,202,240,3,60,76,148,3,60,194,55,3,60,43,219,2,60,135,126,2,60,216,33,2,60,27,197,1,60,83,104,1,60,127,11,1,60,158,174,0,60,177,81,0,60,111,233,255,59,101,47,255,59,67,117,254,
59,8,187,253,59,182,0,253,59,76,70,252,59,202,139,251,59,48,209,250,59,127,22,250,59,182,91,249,59,213,160,248,59,222,229,247,59,207,42,247,59,169,111,246,59,107,180,245,59,23,249,244,59,171,61,244,59,41,130,243,59,144,198,242,59,224,10,242,59,26,79,241,59,61,147,240,59,73,215,239,59,63,27,239,59,30,95,238,59,232,162,237,59,155,230,236,59,56,42,236,59,191,109,235,59,48,177,234,59,139,244,233,59,209,55,233,59,1,123,232,59,27,190,231,59,31,1,231,59,14,68,230,59,232,134,229,59,172,201,228,59,91,12,228,
59,245,78,227,59,122,145,226,59,234,211,225,59,69,22,225,59,139,88,224,59,189,154,223,59,218,220,222,59,226,30,222,59,213,96,221,59,181,162,220,59,128,228,219,59,54,38,219,59,217,103,218,59,103,169,217,59,225,234,216,59,72,44,216,59,154,109,215,59,217,174,214,59,4,240,213,59,27,49,213,59,31,114,212,59,16,179,211,59,237,243,210,59,182,52,210,59,109,117,209,59,16,182,208,59,160,246,207,59,30,55,207,59,136,119,206,59,224,183,205,59,36,248,204,59,87,56,204,59,118,120,203,59,131,184,202,59,126,248,201,
59,103,56,201,59,61,120,200,59,1,184,199,59,179,247,198,59,82,55,198,59,224,118,197,59,92,182,196,59,199,245,195,59,31,53,195,59,102,116,194,59,156,179,193,59,192,242,192,59,211,49,192,59,212,112,191,59,196,175,190,59,164,238,189,59,114,45,189,59,47,108,188,59,219,170,187,59,119,233,186,59,1,40,186,59,124,102,185,59,229,164,184,59,62,227,183,59,135,33,183,59,192,95,182,59,232,157,181,59,0,220,180,59,8,26,180,59,0,88,179,59,232,149,178,59,193,211,177,59,137,17,177,59,67,79,176,59,236,140,175,59,134,
202,174,59,16,8,174,59,140,69,173,59,248,130,172,59,85,192,171,59,162,253,170,59,225,58,170,59,17,120,169,59,50,181,168,59,68,242,167,59,72,47,167,59,61,108,166,59,36,169,165,59,252,229,164,59,198,34,164,59,129,95,163,59,46,156,162,59,206,216,161,59,95,21,161,59,226,81,160,59,88,142,159,59,192,202,158,59,26,7,158,59,102,67,157,59,165,127,156,59,214,187,155,59,251,247,154,59,18,52,154,59,27,112,153,59,24,172,152,59,7,232,151,59,234,35,151,59,192,95,150,59,137,155,149,59,69,215,148,59,245,18,148,59,
152,78,147,59,47,138,146,59,185,197,145,59,55,1,145,59,169,60,144,59,15,120,143,59,104,179,142,59,182,238,141,59,248,41,141,59,46,101,140,59,89,160,139,59,119,219,138,59,139,22,138,59,146,81,137,59,143,140,136,59,128,199,135,59,102,2,135,59,65,61,134,59,16,120,133,59,213,178,132,59,143,237,131,59,62,40,131,59,227,98,130,59,124,157,129,59,12,216,128,59,144,18,128,59,21,154,126,59,245,14,125,59,193,131,123,59,121,248,121,59,28,109,120,59,171,225,118,59,39,86,117,59,143,202,115,59,228,62,114,59,37,179,
112,59,83,39,111,59,110,155,109,59,119,15,108,59,109,131,106,59,80,247,104,59,33,107,103,59,224,222,101,59,141,82,100,59,41,198,98,59,178,57,97,59,43,173,95,59,146,32,94,59,231,147,92,59,44,7,91,59,96,122,89,59,132,237,87,59,151,96,86,59,153,211,84,59,140,70,83,59,111,185,81,59,65,44,80,59,5,159,78,59,184,17,77,59,93,132,75,59,242,246,73,59,121,105,72,59,240,219,70,59,89,78,69,59,180,192,67,59,0,51,66,59,62,165,64,59,110,23,63,59,144,137,61,59,165,251,59,59,172,109,58,59,166,223,56,59,147,81,55,59,
114,195,53,59,69,53,52,59,12,167,50,59,198,24,49,59,115,138,47,59,21,252,45,59,170,109,44,59,52,223,42,59,178,80,41,59,36,194,39,59,140,51,38,59,232,164,36,59,57,22,35,59,127,135,33,59,187,248,31,59,236,105,30,59,19,219,28,59,48,76,27,59,67,189,25,59,76,46,24,59,75,159,22,59,65,16,21,59,45,129,19,59,17,242,17,59,235,98,16,59,189,211,14,59,134,68,13,59,70,181,11,59,254,37,10,59,175,150,8,59,87,7,7,59,247,119,5,59,143,232,3,59,33,89,2,59,170,201,0,59,90,116,254,58,82,85,251,58,59,54,248,58,24,23,245,
58,232,247,241,58,170,216,238,58,97,185,235,58,12,154,232,58,171,122,229,58,62,91,226,58,199,59,223,58,69,28,220,58,185,252,216,58,35,221,213,58,131,189,210,58,218,157,207,58,40,126,204,58,110,94,201,58,171,62,198,58,224,30,195,58,13,255,191,58,51,223,188,58,82,191,185,58,107,159,182,58,125,127,179,58,137,95,176,58,144,63,173,58,145,31,170,58,142,255,166,58,133,223,163,58,121,191,160,58,104,159,157,58,84,127,154,58,60,95,151,58,34,63,148,58,5,31,145,58,229,254,141,58,196,222,138,58,161,190,135,58,
124,158,132,58,87,126,129,58,98,188,124,58,21,124,118,58,200,59,112,58,124,251,105,58,50,187,99,58,233,122,93,58,163,58,87,58,97,250,80,58,34,186,74,58,232,121,68,58,180,57,62,58,133,249,55,58,94,185,49,58,61,121,43,58,37,57,37,58,21,249,30,58,14,185,24,58,18,121,18,58,32,57,12,58,58,249,5,58,190,114,255,57,35,243,242,57,162,115,230,57,61,244,217,57,245,116,205,57,204,245,192,57,195,118,180,57,219,247,167,57,21,121,155,57,116,250,142,57,248,123,130,57,69,251,107,57,233,254,82,57,224,2,58,57,45,7,
33,57,209,11,8,57,159,33,222,56,86,44,172,56,152,111,116,56,15,136,16,56,102,136,50,55,245,8,93,183,235,36,27,184,228,5,127,184,144,114,177,184,73,97,227,184,140,167,10,185,252,157,35,185,242,147,60,185,107,137,85,185,100,126,110,185,110,185,131,185,103,51,144,185,29,173,156,185,141,38,169,185,183,159,181,185,154,24,194,185,51,145,206,185,130,9,219,185,134,129,231,185,60,249,243,185,82,56,0,186,222,115,6,186,66,175,12,186,125,234,18,186,142,37,25,186,116,96,31,186,48,155,37,186,191,213,43,186,34,
16,50,186,88,74,56,186,97,132,62,186,59,190,68,186,230,247,74,186,97,49,81,186,171,106,87,186,197,163,93,186,173,220,99,186,99,21,106,186,229,77,112,186,52,134,118,186,79,190,124,186,26,123,129,186,242,150,132,186,175,178,135,186,80,206,138,186,214,233,141,186,63,5,145,186,140,32,148,186,188,59,151,186,207,86,154,186,197,113,157,186,157,140,160,186,86,167,163,186,242,193,166,186,110,220,169,186,203,246,172,186,9,17,176,186,40,43,179,186,38,69,182,186,3,95,185,186,192,120,188,186,92,146,191,186,215,
171,194,186,48,197,197,186,102,222,200,186,123,247,203,186,108,16,207,186,59,41,210,186,230,65,213,186,110,90,216,186,209,114,219,186,17,139,222,186,43,163,225,186,33,187,228,186,241,210,231,186,156,234,234,186,33,2,238,186,127,25,241,186,183,48,244,186,200,71,247,186,177,94,250,186,115,117,253,186,7,70,0,187,63,209,1,187,100,92,3,187,116,231,4,187,112,114,6,187,86,253,7,187,40,136,9,187,229,18,11,187,140,157,12,187,31,40,14,187,155,178,15,187,2,61,17,187,82,199,18,187,141,81,20,187,178,219,21,187,
192,101,23,187,183,239,24,187,152,121,26,187,98,3,28,187,20,141,29,187,176,22,31,187,52,160,32,187,161,41,34,187,246,178,35,187,51,60,37,187,88,197,38,187,101,78,40,187,90,215,41,187,54,96,43,187,249,232,44,187,164,113,46,187,53,250,47,187,174,130,49,187,13,11,51,187,82,147,52,187,126,27,54,187,145,163,55,187,137,43,57,187,103,179,58,187,43,59,60,187,212,194,61,187,99,74,63,187,215,209,64,187,48,89,66,187,110,224,67,187,145,103,69,187,152,238,70,187,132,117,72,187,84,252,73,187,8,131,75,187,160,9,
77,187,28,144,78,187,123,22,80,187,190,156,81,187,228,34,83,187,238,168,84,187,218,46,86,187,170,180,87,187,91,58,89,187,240,191,90,187,103,69,92,187,191,202,93,187,250,79,95,187,23,213,96,187,22,90,98,187,246,222,99,187,183,99,101,187,90,232,102,187,222,108,104,187,66,241,105,187,136,117,107,187,174,249,108,187,180,125,110,187,155,1,112,187,98,133,113,187,8,9,115,187,143,140,116,187,245,15,118,187,59,147,119,187,96,22,121,187,100,153,122,187,71,28,124,187,9,159,125,187,170,33,127,187,20,82,128,187,
67,19,129,187,97,212,129,187,110,149,130,187,106,86,131,187,85,23,132,187,46,216,132,187,246,152,133,187,173,89,134,187,83,26,135,187,230,218,135,187,105,155,136,187,217,91,137,187,56,28,138,187,133,220,138,187,192,156,139,187,233,92,140,187,0,29,141,187,5,221,141,187,247,156,142,187,216,92,143,187,166,28,144,187,97,220,144,187,10,156,145,187,160,91,146,187,35,27,147,187,148,218,147,187,242,153,148,187,61,89,149,187,117,24,150,187,154,215,150,187,171,150,151,187,169,85,152,187,148,20,153,187,108,
211,153,187,48,146,154,187,225,80,155,187,126,15,156,187,7,206,156,187,124,140,157,187,222,74,158,187,43,9,159,187,101,199,159,187,138,133,160,187,155,67,161,187,152,1,162,187,129,191,162,187,85,125,163,187,20,59,164,187,191,248,164,187,86,182,165,187,216,115,166,187,68,49,167,187,156,238,167,187,223,171,168,187,13,105,169,187,38,38,170,187,42,227,170,187,24,160,171,187,241,92,172,187,181,25,173,187,99,214,173,187,251,146,174,187,126,79,175,187,235,11,176,187,67,200,176,187,132,132,177,187,175,64,
178,187,197,252,178,187,196,184,179,187,173,116,180,187,128,48,181,187,60,236,181,187,226,167,182,187,114,99,183,187,235,30,184,187,77,218,184,187,153,149,185,187,205,80,186,187,235,11,187,187,242,198,187,187,226,129,188,187,187,60,189,187,124,247,189,187,38,178,190,187,185,108,191,187,53,39,192,187,153,225,192,187,229,155,193,187,26,86,194,187,55,16,195,187,60,202,195,187,42,132,196,187,255,61,197,187,189,247,197,187,98,177,198,187,239,106,199,187,100,36,200,187,192,221,200,187,5,151,201,187,48,
80,202,187,67,9,203,187,62,194,203,187,32,123,204,187,233,51,205,187,153,236,205,187,48,165,206,187,174,93,207,187,19,22,208,187,95,206,208,187,146,134,209,187,171,62,210,187,171,246,210,187,146,174,211,187,95,102,212,187,19,30,213,187,172,213,213,187,44,141,214,187,147,68,215,187,223,251,215,187,17,179,216,187,41,106,217,187,40,33,218,187,11,216,218,187,213,142,219,187,132,69,220,187,25,252,220,187,148,178,221,187,244,104,222,187,57,31,223,187,99,213,223,187,115,139,224,187,104,65,225,187,65,247,
225,187,0,173,226,187,164,98,227,187,45,24,228,187,154,205,228,187,236,130,229,187,35,56,230,187,62,237,230,187,61,162,231,187,33,87,232,187,234,11,233,187,150,192,233,187,39,117,234,187,156,41,235,187,245,221,235,187,50,146,236,187,83,70,237,187,87,250,237,187,63,174,238,187,11,98,239,187,187,21,240,187,78,201,240,187,197,124,241,187,30,48,242,187,92,227,242,187,124,150,243,187,128,73,244,187,102,252,244,187,48,175,245,187,221,97,246,187,108,20,247,187,222,198,247,187,51,121,248,187,107,43,249,187,
133,221,249,187,130,143,250,187,97,65,251,187,34,243,251,187,198,164,252,187,76,86,253,187,180,7,254,187,255,184,254,187,43,106,255,187,156,13,0,188,20,102,0,188,125,190,0,188,215,22,1,188,34,111,1,188,93,199,1,188,137,31,2,188,166,119,2,188,179,207,2,188,178,39,3,188,160,127,3,188,128,215,3,188,79,47,4,188,16,135,4,188,193,222,4,188,98,54,5,188,243,141,5,188,117,229,5,188,232,60,6,188,74,148,6,188,157,235,6,188,224,66,7,188,20,154,7,188,55,241,7,188,75,72,8,188,78,159,8,188,66,246,8,188,37,77,9,
188,249,163,9,188,189,250,9,188,112,81,10,188,19,168,10,188,167,254,10,188,41,85,11,188,156,171,11,188,255,1,12,188,81,88,12,188,147,174,12,188,196,4,13,188,229,90,13,188,245,176,13,188,246,6,14,188,229,92,14,188,196,178,14,188,147,8,15,188,80,94,15,188,253,179,15,188,154,9,16,188,38,95,16,188,161,180,16,188,11,10,17,188,100,95,17,188,173,180,17,188,228,9,18,188,11,95,18,188,32,180,18,188,37,9,19,188,25,94,19,188,251,178,19,188,205,7,20,188,141,92,20,188,60,177,20,188,218,5,21,188,103,90,21,188,227,
174,21,188,77,3,22,188,166,87,22,188,237,171,22,188,35,0,23,188,72,84,23,188,91,168,23,188,92,252,23,188,76,80,24,188,43,164,24,188,248,247,24,188,179,75,25,188,93,159,25,188,244,242,25,188,123,70,26,188,239,153,26,188,81,237,26,188,162,64,27,188,225,147,27,188,14,231,27,188,41,58,28,188,49,141,28,188,40,224,28,188,13,51,29,188,224,133,29,188,161,216,29,188,79,43,30,188,236,125,30,188,118,208,30,188,238,34,31,188,83,117,31,188,167,199,31,188,232,25,32,188,22,108,32,188,50,190,32,188,60,16,33,188,
51,98,33,188,24,180,33,188,234,5,34,188,170,87,34,188,87,169,34,188,241,250,34,188,121,76,35,188,238,157,35,188,80,239,35,188,160,64,36,188,220,145,36,188,6,227,36,188,29,52,37,188,33,133,37,188,18,214,37,188,241,38,38,188,188,119,38,188,116,200,38,188,25,25,39,188,171,105,39,188,42,186,39,188,150,10,40,188,238,90,40,188,51,171,40,188,101,251,40,188,132,75,41,188,144,155,41,188,136,235,41,188,108,59,42,188,61,139,42,188,251,218,42,188,166,42,43,188,60,122,43,188,192,201,43,188,47,25,44,188,139,104,
44,188,212,183,44,188,9,7,45,188,42,86,45,188,55,165,45,188,49,244,45,188,22,67,46,188,232,145,46,188,166,224,46,188,81,47,47,188,231,125,47,188,105,204,47,188,215,26,48,188,50,105,48,188,120,183,48,188,170,5,49,188,200,83,49,188,210,161,49,188,200,239,49,188,169,61,50,188,119,139,50,188,48,217,50,188,212,38,51,188,101,116,51,188,225,193,51,188,73,15,52,188,156,92,52,188,219,169,52,188,5,247,52,188,27,68,53,188,28,145,53,188,9,222,53,188,225,42,54,188,164,119,54,188,83,196,54,188,237,16,55,188,114,
93,55,188,227,169,55,188,62,246,55,188,133,66,56,188,184,142,56,188,213,218,56,188,221,38,57,188,208,114,57,188,175,190,57,188,120,10,58,188,45,86,58,188,204,161,58,188,86,237,58,188,203,56,59,188,43,132,59,188,118,207,59,188,171,26,60,188,204,101,60,188,215,176,60,188,204,251,60,188,173,70,61,188,120,145,61,188,46,220,61,188,206,38,62,188,88,113,62,188,206,187,62,188,46,6,63,188,120,80,63,188,172,154,63,188,204,228,63,188,213,46,64,188,201,120,64,188,167,194,64,188,111,12,65,188,34,86,65,188,191,
159,65,188,70,233,65,188,183,50,66,188,19,124,66,188,88,197,66,188,136,14,67,188,161,87,67,188,165,160,67,188,146,233,67,188,106,50,68,188,44,123,68,188,215,195,68,188,108,12,69,188,236,84,69,188,85,157,69,188,167,229,69,188,228,45,70,188,10,118,70,188,26,190,70,188,20,6,71,188,247,77,71,188,196,149,71,188,123,221,71,188,27,37,72,188,164,108,72,188,23,180,72,188,116,251,72,188,186,66,73,188,234,137,73,188,2,209,73,188,5,24,74,188,240,94,74,188,197,165,74,188,131,236,74,188,43,51,75,188,187,121,75,
188,53,192,75,188,152,6,76,188,229,76,76,188,26,147,76,188,56,217,76,188,64,31,77,188,48,101,77,188,10,171,77,188,204,240,77,188,119,54,78,188,12,124,78,188,137,193,78,188,239,6,79,188,62,76,79,188,118,145,79,188,150,214,79,188,159,27,80,188,145,96,80,188,108,165,80,188,48,234,80,188,220,46,81,188,112,115,81,188,238,183,81,188,83,252,81,188,162,64,82,188,217,132,82,188,248,200,82,188,0,13,83,188,240,80,83,188,201,148,83,188,138,216,83,188,51,28,84,188,197,95,84,188,63,163,84,188,161,230,84,188,236,
41,85,188,31,109,85,188,58,176,85,188,61,243,85,188,40,54,86,188,251,120,86,188,183,187,86,188,90,254,86,188,230,64,87,188,90,131,87,188,181,197,87,188,249,7,88,188,36,74,88,188,56,140,88,188,51,206,88,188,22,16,89,188,225,81,89,188,148,147,89,188,46,213,89,188,177,22,90,188,27,88,90,188,108,153,90,188,166,218,90,188,199,27,91,188,207,92,91,188,192,157,91,188,151,222,91,188,87,31,92,188,254,95,92,188,140,160,92,188,2,225,92,188,95,33,93,188,164,97,93,188,208,161,93,188,228,225,93,188,223,33,94,188,
193,97,94,188,138,161,94,188,59,225,94,188,211,32,95,188,82,96,95,188,184,159,95,188,6,223,95,188,59,30,96,188,87,93,96,188,90,156,96,188,68,219,96,188,21,26,97,188,205,88,97,188,108,151,97,188,242,213,97,188,95,20,98,188,179,82,98,188,238,144,98,188,15,207,98,188,24,13,99,188,7,75,99,188,222,136,99,188,155,198,99,188,62,4,100,188,201,65,100,188,58,127,100,188,146,188,100,188,208,249,100,188,246,54,101,188,1,116,101,188,244,176,101,188,205,237,101,188,140,42,102,188,50,103,102,188,191,163,102,188,
50,224,102,188,139,28,103,188,203,88,103,188,241,148,103,188,254,208,103,188,241,12,104,188,202,72,104,188,138,132,104,188,48,192,104,188,188,251,104,188,46,55,105,188,135,114,105,188,198,173,105,188,235,232,105,188,246,35,106,188,231,94,106,188,191,153,106,188,124,212,106,188,31,15,107,188,169,73,107,188,25,132,107,188,110,190,107,188,170,248,107,188,203,50,108,188,210,108,108,188,192,166,108,188,147,224,108,188,76,26,109,188,234,83,109,188,111,141,109,188,217,198,109,188,42,0,110,188,96,57,110,
188,123,114,110,188,125,171,110,188,100,228,110,188,48,29,111,188,226,85,111,188,122,142,111,188,248,198,111,188,91,255,111,188,163,55,112,188,210,111,112,188,229,167,112,188,222,223,112,188,189,23,113,188,129,79,113,188,42,135,113,188,185,190,113,188,45,246,113,188,135,45,114,188,197,100,114,188,234,155,114,188,243,210,114,188,226,9,115,188,182,64,115,188,111,119,115,188,13,174,115,188,145,228,115,188,250,26,116,188,71,81,116,188,122,135,116,188,146,189,116,188,144,243,116,188,114,41,117,188,57,
95,117,188,229,148,117,188,118,202,117,188,237,255,117,188,72,53,118,188,136,106,118,188,173,159,118,188,183,212,118,188,166,9,119,188,121,62,119,188,50,115,119,188,207,167,119,188,81,220,119,188,184,16,120,188,3,69,120,188,52,121,120,188,73,173,120,188,67,225,120,188,33,21,121,188,228,72,121,188,140,124,121,188,24,176,121,188,137,227,121,188,222,22,122,188,24,74,122,188,55,125,122,188,58,176,122,188,33,227,122,188,237,21,123,188,158,72,123,188,51,123,123,188,172,173,123,188,10,224,123,188,76,18,
124,188,114,68,124,188,125,118,124,188,108,168,124,188,64,218,124,188,247,11,125,188,147,61,125,188,19,111,125,188,120,160,125,188,192,209,125,188,237,2,126,188,254,51,126,188,243,100,126,188,205,149,126,188,138,198,126,188,44,247,126,188,177,39,127,188,27,88,127,188,104,136,127,188,154,184,127,188,176,232,127,188,85,12,128,188,68,36,128,188,36,60,128,188,247,83,128,188,188,107,128,188,115,131,128,188,27,155,128,188,182,178,128,188,66,202,128,188,193,225,128,188,49,249,128,188,147,16,129,188,231,
39,129,188,45,63,129,188,101,86,129,188,142,109,129,188,170,132,129,188,183,155,129,188,182,178,129,188,167,201,129,188,138,224,129,188,95,247,129,188,37,14,130,188,222,36,130,188,136,59,130,188,35,82,130,188,177,104,130,188,48,127,130,188,161,149,130,188,4,172,130,188,88,194,130,188,159,216,130,188,215,238,130,188,0,5,131,188,28,27,131,188,41,49,131,188,39,71,131,188,24,93,131,188,250,114,131,188,206,136,131,188,147,158,131,188,74,180,131,188,243,201,131,188,141,223,131,188,25,245,131,188,150,10,
132,188,5,32,132,188,102,53,132,188,184,74,132,188,252,95,132,188,49,117,132,188,88,138,132,188,113,159,132,188,123,180,132,188,119,201,132,188,100,222,132,188,66,243,132,188,18,8,133,188,212,28,133,188,135,49,133,188,44,70,133,188,194,90,133,188,74,111,133,188,195,131,133,188,45,152,133,188,137,172,133,188,215,192,133,188,22,213,133,188,70,233,133,188,104,253,133,188,123,17,134,188,127,37,134,188,117,57,134,188,92,77,134,188,53,97,134,188,255,116,134,188,187,136,134,188,103,156,134,188,6,176,134,
188,149,195,134,188,22,215,134,188,136,234,134,188,236,253,134,188,65,17,135,188,135,36,135,188,190,55,135,188,231,74,135,188,1,94,135,188,12,113,135,188,9,132,135,188,247,150,135,188,214,169,135,188,166,188,135,188,104,207,135,188,27,226,135,188,191,244,135,188,84,7,136,188,219,25,136,188,83,44,136,188,188,62,136,188,22,81,136,188,97,99,136,188,158,117,136,188,204,135,136,188,235,153,136,188,251,171,136,188,252,189,136,188,239,207,136,188,210,225,136,188,167,243,136,188,109,5,137,188,36,23,137,188,
204,40,137,188,101,58,137,188,240,75,137,188,107,93,137,188,216,110,137,188,53,128,137,188,132,145,137,188,196,162,137,188,245,179,137,188,23,197,137,188,42,214,137,188,46,231,137,188,35,248,137,188,9,9,138,188,224,25,138,188,168,42,138,188,98,59,138,188,12,76,138,188,167,92,138,188,51,109,138,188,177,125,138,188,31,142,138,188,126,158,138,188,206,174,138,188,16,191,138,188,66,207,138,188,101,223,138,188,121,239,138,188,126,255,138,188,116,15,139,188,91,31,139,188,51,47,139,188,252,62,139,188,182,
78,139,188,96,94,139,188,252,109,139,188,136,125,139,188,6,141,139,188,116,156,139,188,211,171,139,188,35,187,139,188,100,202,139,188,150,217,139,188,185,232,139,188,204,247,139,188,209,6,140,188,198,21,140,188,172,36,140,188,131,51,140,188,75,66,140,188,4,81,140,188,173,95,140,188,71,110,140,188,211,124,140,188,78,139,140,188,187,153,140,188,25,168,140,188,103,182,140,188,166,196,140,188,214,210,140,188,247,224,140,188,8,239,140,188,11,253,140,188,254,10,141,188,225,24,141,188,182,38,141,188,123,
52,141,188,49,66,141,188,216,79,141,188,112,93,141,188,248,106,141,188,113,120,141,188,219,133,141,188,53,147,141,188,128,160,141,188,188,173,141,188,233,186,141,188,6,200,141,188,20,213,141,188,19,226,141,188,2,239,141,188,226,251,141,188,179,8,142,188,116,21,142,188,38,34,142,188,201,46,142,188,93,59,142,188,225,71,142,188,85,84,142,188,187,96,142,188,17,109,142,188,87,121,142,188,143,133,142,188,183,145,142,188,207,157,142,188,216,169,142,188,210,181,142,188,189,193,142,188,152,205,142,188,99,
217,142,188,32,229,142,188,205,240,142,188,106,252,142,188,248,7,143,188,119,19,143,188,230,30,143,188,70,42,143,188,150,53,143,188,215,64,143,188,9,76,143,188,43,87,143,188,62,98,143,188,65,109,143,188,53,120,143,188,25,131,143,188,238,141,143,188,180,152,143,188,106,163,143,188,16,174,143,188,167,184,143,188,47,195,143,188,167,205,143,188,16,216,143,188,105,226,143,188,178,236,143,188,237,246,143,188,23,1,144,188,51,11,144,188,62,21,144,188,59,31,144,188,39,41,144,188,5,51,144,188,210,60,144,188,
145,70,144,188,63,80,144,188,223,89,144,188,110,99,144,188,239,108,144,188,95,118,144,188,192,127,144,188,18,137,144,188,84,146,144,188,135,155,144,188,169,164,144,188,189,173,144,188,193,182,144,188,181,191,144,188,154,200,144,188,111,209,144,188,53,218,144,188,235,226,144,188,146,235,144,188,41,244,144,188,176,252,144,188,40,5,145,188,144,13,145,188,233,21,145,188,50,30,145,188,108,38,145,188,150,46,145,188,176,54,145,188,187,62,145,188,182,70,145,188,162,78,145,188,126,86,145,188,74,94,145,188,
7,102,145,188,181,109,145,188,82,117,145,188,224,124,145,188,95,132,145,188,206,139,145,188,45,147,145,188,124,154,145,188,188,161,145,188,237,168,145,188,14,176,145,188,31,183,145,188,32,190,145,188,18,197,145,188,244,203,145,188,199,210,145,188,138,217,145,188,62,224,145,188,225,230,145,188,117,237,145,188,250,243,145,188,111,250,145,188,212,0,146,188,42,7,146,188,111,13,146,188,166,19,146,188,204,25,146,188,227,31,146,188,235,37,146,188,226,43,146,188,202,49,146,188,163,55,146,188,107,61,146,188,
36,67,146,188,206,72,146,188,104,78,146,188,242,83,146,188,108,89,146,188,215,94,146,188,50,100,146,188,125,105,146,188,185,110,146,188,229,115,146,188,2,121,146,188,14,126,146,188,11,131,146,188,249,135,146,188,214,140,146,188,164,145,146,188,99,150,146,188,17,155,146,188,176,159,146,188,64,164,146,188,191,168,146,188,47,173,146,188,144,177,146,188,224,181,146,188,33,186,146,188,82,190,146,188,116,194,146,188,134,198,146,188,136,202,146,188,122,206,146,188,93,210,146,188,48,214,146,188,244,217,146,
188,168,221,146,188,76,225,146,188,224,228,146,188,101,232,146,188,217,235,146,188,63,239,146,188,148,242,146,188,218,245,146,188,16,249,146,188,55,252,146,188,78,255,146,188,85,2,147,188,76,5,147,188,52,8,147,188,12,11,147,188,212,13,147,188,141,16,147,188,54,19,147,188,207,21,147,188,89,24,147,188,210,26,147,188,60,29,147,188,151,31,147,188,226,33,147,188,29,36,147,188,72,38,147,188,100,40,147,188,112,42,147,188,108,44,147,188,89,46,147,188,53,48,147,188,3,50,147,188,192,51,147,188,110,53,147,188,
12,55,147,188,154,56,147,188,25,58,147,188,136,59,147,188,231,60,147,188,55,62,147,188,119,63,147,188,167,64,147,188,200,65,147,188,217,66,147,188,218,67,147,188,203,68,147,188,173,69,147,188,127,70,147,188,66,71,147,188,244,71,147,188,151,72,147,188,43,73,147,188,174,73,147,188,34,74,147,188,135,74,147,188,219,74,147,188,32,75,147,188,85,75,147,188,123,75,147,188,145,75,147,188,151,75,147,188,142,75,147,188,117,75,147,188,76,75,147,188,19,75,147,188,203,74,147,188,115,74,147,188,12,74,147,188,149,
73,147,188,14,73,147,188,119,72,147,188,209,71,147,188,27,71,147,188,86,70,147,188,128,69,147,188,156,68,147,188,167,67,147,188,163,66,147,188,143,65,147,188,108,64,147,188,57,63,147,188,246,61,147,188,163,60,147,188,65,59,147,188,208,57,147,188,78,56,147,188,189,54,147,188,29,53,147,188,108,51,147,188,172,49,147,188,221,47,147,188,254,45,147,188,15,44,147,188,16,42,147,188,2,40,147,188,229,37,147,188,183,35,147,188,122,33,147,188,46,31,147,188,209,28,147,188,101,26,147,188,234,23,147,188,95,21,147,
188,196,18,147,188,26,16,147,188,96,13,147,188,150,10,147,188,189,7,147,188,213,4,147,188,220,1,147,188,212,254,146,188,189,251,146,188,150,248,146,188,95,245,146,188,25,242,146,188,195,238,146,188,93,235,146,188,232,231,146,188,100,228,146,188,207,224,146,188,44,221,146,188,120,217,146,188,181,213,146,188,227,209,146,188,1,206,146,188,15,202,146,188,14,198,146,188,253,193,146,188,221,189,146,188,173,185,146,188,110,181,146,188,31,177,146,188,192,172,146,188,82,168,146,188,213,163,146,188,71,159,
146,188,171,154,146,188,255,149,146,188,67,145,146,188,120,140,146,188,157,135,146,188,179,130,146,188,185,125,146,188,176,120,146,188,151,115,146,188,111,110,146,188,55,105,146,188,239,99,146,188,153,94,146,188,50,89,146,188,189,83,146,188,55,78,146,188,163,72,146,188,254,66,146,188,75,61,146,188,135,55,146,188,181,49,146,188,211,43,146,188,225,37,146,188,224,31,146,188,208,25,146,188,176,19,146,188,128,13,146,188,65,7,146,188,243,0,146,188,149,250,145,188,40,244,145,188,172,237,145,188,32,231,145,
188,132,224,145,188,217,217,145,188,31,211,145,188,85,204,145,188,124,197,145,188,148,190,145,188,156,183,145,188,149,176,145,188,126,169,145,188,88,162,145,188,34,155,145,188,221,147,145,188,137,140,145,188,38,133,145,188,179,125,145,188,48,118,145,188,159,110,145,188,254,102,145,188,77,95,145,188,141,87,145,188,190,79,145,188,224,71,145,188,242,63,145,188,245,55,145,188,232,47,145,188,205,39,145,188,162,31,145,188,103,23,145,188,29,15,145,188,196,6,145,188,92,254,144,188,229,245,144,188,94,237,
144,188,199,228,144,188,34,220,144,188,109,211,144,188,169,202,144,188,214,193,144,188,243,184,144,188,1,176,144,188,0,167,144,188,240,157,144,188,208,148,144,188,162,139,144,188,99,130,144,188,22,121,144,188,186,111,144,188,78,102,144,188,211,92,144,188,73,83,144,188,175,73,144,188,7,64,144,188,79,54,144,188,136,44,144,188,178,34,144,188,204,24,144,188,216,14,144,188,212,4,144,188,193,250,143,188,159,240,143,188,110,230,143,188,46,220,143,188,222,209,143,188,128,199,143,188,18,189,143,188,149,178,
143,188,9,168,143,188,110,157,143,188,195,146,143,188,10,136,143,188,66,125,143,188,106,114,143,188,131,103,143,188,142,92,143,188,137,81,143,188,117,70,143,188,82,59,143,188,32,48,143,188,223,36,143,188,142,25,143,188,47,14,143,188,193,2,143,188,68,247,142,188,183,235,142,188,28,224,142,188,113,212,142,188,184,200,142,188,240,188,142,188,24,177,142,188,50,165,142,188,60,153,142,188,56,141,142,188,37,129,142,188,2,117,142,188,209,104,142,188,145,92,142,188,65,80,142,188,227,67,142,188,118,55,142,
188,250,42,142,188,111,30,142,188,213,17,142,188,44,5,142,188,116,248,141,188,174,235,141,188,216,222,141,188,244,209,141,188,0,197,141,188,254,183,141,188,237,170,141,188,205,157,141,188,158,144,141,188,97,131,141,188,20,118,141,188,185,104,141,188,78,91,141,188,213,77,141,188,77,64,141,188,183,50,141,188,17,37,141,188,93,23,141,188,154,9,141,188,200,251,140,188,231,237,140,188,248,223,140,188,250,209,140,188,237,195,140,188,209,181,140,188,166,167,140,188,109,153,140,188,37,139,140,188,206,124,
140,188,105,110,140,188,245,95,140,188,114,81,140,188,224,66,140,188,64,52,140,188,145,37,140,188,211,22,140,188,7,8,140,188,44,249,139,188,66,234,139,188,74,219,139,188,67,204,139,188,46,189,139,188,9,174,139,188,215,158,139,188,149,143,139,188,69,128,139,188,230,112,139,188,121,97,139,188,253,81,139,188,115,66,139,188,218,50,139,188,50,35,139,188,124,19,139,188,184,3,139,188,228,243,138,188,3,228,138,188,18,212,138,188,20,196,138,188,6,180,138,188,234,163,138,188,192,147,138,188,135,131,138,188,
64,115,138,188,234,98,138,188,134,82,138,188,19,66,138,188,146,49,138,188,2,33,138,188,100,16,138,188,184,255,137,188,253,238,137,188,52,222,137,188,92,205,137,188,118,188,137,188,129,171,137,188,127,154,137,188,109,137,137,188,78,120,137,188,32,103,137,188,227,85,137,188,153,68,137,188,64,51,137,188,216,33,137,188,99,16,137,188,223,254,136,188,77,237,136,188,172,219,136,188,253,201,136,188,64,184,136,188,117,166,136,188,155,148,136,188,179,130,136,188,189,112,136,188,185,94,136,188,166,76,136,188,
133,58,136,188,86,40,136,188,25,22,136,188,206,3,136,188,116,241,135,188,12,223,135,188,150,204,135,188,18,186,135,188,128,167,135,188,224,148,135,188,49,130,135,188,116,111,135,188,170,92,135,188,209,73,135,188,234,54,135,188,245,35,135,188,242,16,135,188,224,253,134,188,193,234,134,188,148,215,134,188,88,196,134,188,15,177,134,188,184,157,134,188,82,138,134,188,223,118,134,188,93,99,134,188,206,79,134,188,48,60,134,188,133,40,134,188,204,20,134,188,4,1,134,188,47,237,133,188,76,217,133,188,91,197,
133,188,91,177,133,188,78,157,133,188,52,137,133,188,11,117,133,188,212,96,133,188,144,76,133,188,61,56,133,188,221,35,133,188,111,15,133,188,243,250,132,188,105,230,132,188,210,209,132,188,44,189,132,188,121,168,132,188,184,147,132,188,233,126,132,188,13,106,132,188,35,85,132,188,42,64,132,188,37,43,132,188,17,22,132,188,240,0,132,188,193,235,131,188,132,214,131,188,58,193,131,188,226,171,131,188,124,150,131,188,9,129,131,188,136,107,131,188,249,85,131,188,93,64,131,188,179,42,131,188,252,20,131,
188,54,255,130,188,100,233,130,188,131,211,130,188,149,189,130,188,154,167,130,188,145,145,130,188,122,123,130,188,86,101,130,188,37,79,130,188,230,56,130,188,153,34,130,188,63,12,130,188,215,245,129,188,98,223,129,188,224,200,129,188,80,178,129,188,178,155,129,188,7,133,129,188,79,110,129,188,137,87,129,188,182,64,129,188,213,41,129,188,232,18,129,188,236,251,128,188,228,228,128,188,206,205,128,188,170,182,128,188,122,159,128,188,60,136,128,188,240,112,128,188,152,89,128,188,50,66,128,188,191,42,
128,188,62,19,128,188,97,247,127,188,43,200,127,188,219,152,127,188,112,105,127,188,235,57,127,188,75,10,127,188,145,218,126,188,189,170,126,188,206,122,126,188,197,74,126,188,162,26,126,188,100,234,125,188,13,186,125,188,154,137,125,188,14,89,125,188,104,40,125,188,167,247,124,188,204,198,124,188,215,149,124,188,200,100,124,188,159,51,124,188,92,2,124,188,255,208,123,188,135,159,123,188,246,109,123,188,75,60,123,188,134,10,123,188,167,216,122,188,174,166,122,188,155,116,122,188,110,66,122,188,39,
16,122,188,199,221,121,188,77,171,121,188,185,120,121,188,11,70,121,188,68,19,121,188,99,224,120,188,104,173,120,188,83,122,120,188,37,71,120,188,222,19,120,188,124,224,119,188,2,173,119,188,109,121,119,188,191,69,119,188,248,17,119,188,23,222,118,188,29,170,118,188,9,118,118,188,220,65,118,188,149,13,118,188,53,217,117,188,188,164,117,188,42,112,117,188,126,59,117,188,185,6,117,188,219,209,116,188,227,156,116,188,210,103,116,188,168,50,116,188,101,253,115,188,9,200,115,188,148,146,115,188,6,93,115,
188,94,39,115,188,158,241,114,188,197,187,114,188,210,133,114,188,199,79,114,188,163,25,114,188,101,227,113,188,15,173,113,188,160,118,113,188,25,64,113,188,120,9,113,188,191,210,112,188,237,155,112,188,2,101,112,188,254,45,112,188,226,246,111,188,173,191,111,188,96,136,111,188,250,80,111,188,123,25,111,188,228,225,110,188,52,170,110,188,107,114,110,188,139,58,110,188,145,2,110,188,128,202,109,188,85,146,109,188,19,90,109,188,184,33,109,188,69,233,108,188,185,176,108,188,21,120,108,188,89,63,108,
188,133,6,108,188,152,205,107,188,147,148,107,188,118,91,107,188,65,34,107,188,244,232,106,188,143,175,106,188,17,118,106,188,124,60,106,188,206,2,106,188,9,201,105,188,44,143,105,188,54,85,105,188,41,27,105,188,4,225,104,188,199,166,104,188,114,108,104,188,6,50,104,188,129,247,103,188,229,188,103,188,49,130,103,188,102,71,103,188,130,12,103,188,135,209,102,188,117,150,102,188,75,91,102,188,9,32,102,188,176,228,101,188,63,169,101,188,182,109,101,188,23,50,101,188,95,246,100,188,145,186,100,188,171,
126,100,188,173,66,100,188,152,6,100,188,108,202,99,188,41,142,99,188,206,81,99,188,93,21,99,188,211,216,98,188,51,156,98,188,124,95,98,188,173,34,98,188,200,229,97,188,203,168,97,188,183,107,97,188,140,46,97,188,75,241,96,188,242,179,96,188,130,118,96,188,252,56,96,188,94,251,95,188,170,189,95,188,223,127,95,188,253,65,95,188,4,4,95,188,244,197,94,188,206,135,94,188,145,73,94,188,62,11,94,188,211,204,93,188,82,142,93,188,187,79,93,188,13,17,93,188,73,210,92,188,109,147,92,188,124,84,92,188,116,21,
92,188,86,214,91,188,33,151,91,188,214,87,91,188,116,24,91,188,252,216,90,188,110,153,90,188,202,89,90,188,15,26,90,188,63,218,89,188,88,154,89,188,90,90,89,188,71,26,89,188,30,218,88,188,223,153,88,188,137,89,88,188,30,25,88,188,156,216,87,188,5,152,87,188,88,87,87,188,149,22,87,188,188,213,86,188,205,148,86,188,200,83,86,188,174,18,86,188,126,209,85,188,56,144,85,188,220,78,85,188,107,13,85,188,228,203,84,188,72,138,84,188,149,72,84,188,206,6,84,188,241,196,83,188,254,130,83,188,246,64,83,188,216,
254,82,188,165,188,82,188,93,122,82,188,255,55,82,188,140,245,81,188,4,179,81,188,103,112,81,188,180,45,81,188,236,234,80,188,15,168,80,188,28,101,80,188,21,34,80,188,248,222,79,188,199,155,79,188,128,88,79,188,37,21,79,188,180,209,78,188,47,142,78,188,148,74,78,188,229,6,78,188,33,195,77,188,72,127,77,188,90,59,77,188,87,247,76,188,64,179,76,188,20,111,76,188,211,42,76,188,126,230,75,188,20,162,75,188,150,93,75,188,2,25,75,188,91,212,74,188,159,143,74,188,206,74,74,188,233,5,74,188,240,192,73,188,
226,123,73,188,192,54,73,188,137,241,72,188,63,172,72,188,224,102,72,188,108,33,72,188,229,219,71,188,73,150,71,188,154,80,71,188,214,10,71,188,254,196,70,188,18,127,70,188,18,57,70,188,254,242,69,188,214,172,69,188,154,102,69,188,74,32,69,188,231,217,68,188,111,147,68,188,228,76,68,188,69,6,68,188,146,191,67,188,204,120,67,188,241,49,67,188,4,235,66,188,2,164,66,188,237,92,66,188,197,21,66,188,136,206,65,188,57,135,65,188,214,63,65,188,95,248,64,188,213,176,64,188,56,105,64,188,135,33,64,188,195,
217,63,188,236,145,63,188,2,74,63,188,4,2,63,188,243,185,62,188,207,113,62,188,152,41,62,188,77,225,61,188,240,152,61,188,128,80,61,188,252,7,61,188,102,191,60,188,189,118,60,188,1,46,60,188,50,229,59,188,80,156,59,188,91,83,59,188,83,10,59,188,57,193,58,188,12,120,58,188,205,46,58,188,122,229,57,188,21,156,57,188,158,82,57,188,20,9,57,188,119,191,56,188,200,117,56,188,6,44,56,188,50,226,55,188,76,152,55,188,83,78,55,188,72,4,55,188,43,186,54,188,251,111,54,188,185,37,54,188,101,219,53,188,255,144,
53,188,134,70,53,188,252,251,52,188,95,177,52,188,176,102,52,188,240,27,52,188,29,209,51,188,56,134,51,188,66,59,51,188,57,240,50,188,31,165,50,188,243,89,50,188,181,14,50,188,101,195,49,188,4,120,49,188,145,44,49,188,12,225,48,188,117,149,48,188,205,73,48,188,20,254,47,188,73,178,47,188,108,102,47,188,126,26,47,188,127,206,46,188,110,130,46,188,75,54,46,188,24,234,45,188,211,157,45,188,125,81,45,188,21,5,45,188,157,184,44,188,19,108,44,188,120,31,44,188,204,210,43,188,15,134,43,188,65,57,43,188,
98,236,42,188,113,159,42,188,112,82,42,188,94,5,42,188,60,184,41,188,8,107,41,188,195,29,41,188,110,208,40,188,8,131,40,188,145,53,40,188,10,232,39,188,114,154,39,188,201,76,39,188,16,255,38,188,70,177,38,188,108,99,38,188,129,21,38,188,134,199,37,188,122,121,37,188,94,43,37,188,50,221,36,188,245,142,36,188,168,64,36,188,75,242,35,188,222,163,35,188,96,85,35,188,211,6,35,188,53,184,34,188,135,105,34,188,201,26,34,188,251,203,33,188,29,125,33,188,48,46,33,188,50,223,32,188,36,144,32,188,7,65,32,188,
218,241,31,188,156,162,31,188,80,83,31,188,243,3,31,188,135,180,30,188,11,101,30,188,128,21,30,188,229,197,29,188,59,118,29,188,129,38,29,188,183,214,28,188,222,134,28,188,246,54,28,188,255,230,27,188,248,150,27,188,225,70,27,188,188,246,26,188,135,166,26,188,67,86,26,188,240,5,26,188,142,181,25,188,29,101,25,188,157,20,25,188,13,196,24,188,111,115,24,188,194,34,24,188,5,210,23,188,58,129,23,188,96,48,23,188,120,223,22,188,128,142,22,188,122,61,22,188,101,236,21,188,65,155,21,188,15,74,21,188,206,
248,20,188,127,167,20,188,33,86,20,188,180,4,20,188,57,179,19,188,176,97,19,188,24,16,19,188,114,190,18,188,190,108,18,188,251,26,18,188,42,201,17,188,75,119,17,188,93,37,17,188,98,211,16,188,88,129,16,188,64,47,16,188,26,221,15,188,231,138,15,188,165,56,15,188,85,230,14,188,247,147,14,188,140,65,14,188,18,239,13,188,139,156,13,188,246,73,13,188,84,247,12,188,163,164,12,188,229,81,12,188,26,255,11,188,64,172,11,188,90,89,11,188,101,6,11,188,99,179,10,188,84,96,10,188,56,13,10,188,13,186,9,188,214,
102,9,188,145,19,9,188,63,192,8,188,224,108,8,188,116,25,8,188,250,197,7,188,116,114,7,188,224,30,7,188,63,203,6,188,145,119,6,188,214,35,6,188,14,208,5,188,58,124,5,188,88,40,5,188,105,212,4,188,110,128,4,188,102,44,4,188,81,216,3,188,48,132,3,188,2,48,3,188,199,219,2,188,127,135,2,188,43,51,2,188,203,222,1,188,94,138,1,188,228,53,1,188,95,225,0,188,204,140,0,188,46,56,0,188,6,199,255,187,152,29,255,187,17,116,254,187,114,202,253,187,186,32,253,187,234,118,252,187,2,205,251,187,2,35,251,187,234,
120,250,187,186,206,249,187],"i8",4,y.a+245760);
Q([114,36,249,187,18,122,248,187,155,207,247,187,11,37,247,187,101,122,246,187,166,207,245,187,208,36,245,187,227,121,244,187,222,206,243,187,195,35,243,187,144,120,242,187,70,205,241,187,228,33,241,187,108,118,240,187,221,202,239,187,56,31,239,187,123,115,238,187,168,199,237,187,190,27,237,187,190,111,236,187,167,195,235,187,122,23,235,187,54,107,234,187,221,190,233,187,109,18,233,187,231,101,232,187,75,185,231,187,153,12,231,187,210,95,230,187,244,178,229,187,1,6,229,187,248,88,228,187,218,171,
227,187,166,254,226,187,92,81,226,187,254,163,225,187,138,246,224,187,0,73,224,187,98,155,223,187,175,237,222,187,230,63,222,187,9,146,221,187,23,228,220,187,16,54,220,187,245,135,219,187,196,217,218,187,128,43,218,187,38,125,217,187,185,206,216,187,55,32,216,187,161,113,215,187,247,194,214,187,56,20,214,187,102,101,213,187,127,182,212,187,133,7,212,187,119,88,211,187,85,169,210,187,32,250,209,187,214,74,209,187,122,155,208,187,10,236,207,187,135,60,207,187,240,140,206,187,70,221,205,187,137,45,205,
187,185,125,204,187,214,205,203,187,224,29,203,187,215,109,202,187,188,189,201,187,141,13,201,187,76,93,200,187,249,172,199,187,147,252,198,187,27,76,198,187,144,155,197,187,243,234,196,187,68,58,196,187,131,137,195,187,176,216,194,187,203,39,194,187,212,118,193,187,203,197,192,187,177,20,192,187,133,99,191,187,71,178,190,187,248,0,190,187,151,79,189,187,37,158,188,187,162,236,187,187,13,59,187,187,104,137,186,187,177,215,185,187,233,37,185,187,17,116,184,187,40,194,183,187,45,16,183,187,35,94,182,
187,7,172,181,187,219,249,180,187,159,71,180,187,82,149,179,187,245,226,178,187,136,48,178,187,11,126,177,187,125,203,176,187,224,24,176,187,50,102,175,187,117,179,174,187,168,0,174,187,203,77,173,187,223,154,172,187,227,231,171,187,215,52,171,187,189,129,170,187,147,206,169,187,89,27,169,187,17,104,168,187,185,180,167,187,82,1,167,187,221,77,166,187,88,154,165,187,197,230,164,187,35,51,164,187,115,127,163,187,179,203,162,187,230,23,162,187,10,100,161,187,31,176,160,187,38,252,159,187,32,72,159,187,
11,148,158,187,232,223,157,187,183,43,157,187,120,119,156,187,43,195,155,187,208,14,155,187,104,90,154,187,243,165,153,187,112,241,152,187,223,60,152,187,65,136,151,187,150,211,150,187,221,30,150,187,24,106,149,187,69,181,148,187,101,0,148,187,121,75,147,187,127,150,146,187,121,225,145,187,103,44,145,187,71,119,144,187,27,194,143,187,227,12,143,187,158,87,142,187,77,162,141,187,240,236,140,187,135,55,140,187,17,130,139,187,144,204,138,187,2,23,138,187,105,97,137,187,196,171,136,187,20,246,135,187,
88,64,135,187,144,138,134,187,189,212,133,187,222,30,133,187,244,104,132,187,255,178,131,187,255,252,130,187,243,70,130,187,221,144,129,187,188,218,128,187,144,36,128,187,178,220,126,187,47,112,125,187,150,3,124,187,233,150,122,187,38,42,121,187,79,189,119,187,99,80,118,187,99,227,116,187,79,118,115,187,38,9,114,187,233,155,112,187,153,46,111,187,53,193,109,187,189,83,108,187,50,230,106,187,147,120,105,187,226,10,104,187,29,157,102,187,70,47,101,187,92,193,99,187,96,83,98,187,81,229,96,187,48,119,
95,187,253,8,94,187,184,154,92,187,98,44,91,187,250,189,89,187,128,79,88,187,246,224,86,187,90,114,85,187,173,3,84,187,240,148,82,187,34,38,81,187,67,183,79,187,84,72,78,187,85,217,76,187,70,106,75,187,39,251,73,187,248,139,72,187,186,28,71,187,108,173,69,187,15,62,68,187,163,206,66,187,40,95,65,187,158,239,63,187,5,128,62,187,94,16,61,187,169,160,59,187,230,48,58,187,20,193,56,187,53,81,55,187,72,225,53,187,77,113,52,187,69,1,51,187,48,145,49,187,13,33,48,187,222,176,46,187,162,64,45,187,89,208,
43,187,3,96,42,187,162,239,40,187,52,127,39,187,186,14,38,187,52,158,36,187,163,45,35,187,6,189,33,187,93,76,32,187,170,219,30,187,235,106,29,187,33,250,27,187,76,137,26,187,109,24,25,187,132,167,23,187,144,54,22,187,145,197,20,187,137,84,19,187,119,227,17,187,91,114,16,187,54,1,15,187,7,144,13,187,207,30,12,187,142,173,10,187,68,60,9,187,241,202,7,187,149,89,6,187,49,232,4,187,197,118,3,187,80,5,2,187,211,147,0,187,158,68,254,186,133,97,251,186,94,126,248,186,40,155,245,186,227,183,242,186,144,212,
239,186,47,241,236,186,192,13,234,186,68,42,231,186,188,70,228,186,38,99,225,186,132,127,222,186,215,155,219,186,29,184,216,186,88,212,213,186,136,240,210,186,173,12,208,186,199,40,205,186,216,68,202,186,222,96,199,186,219,124,196,186,207,152,193,186,185,180,190,186,155,208,187,186,117,236,184,186,70,8,182,186,16,36,179,186,210,63,176,186,142,91,173,186,66,119,170,186,240,146,167,186,152,174,164,186,58,202,161,186,214,229,158,186,109,1,156,186,255,28,153,186,141,56,150,186,22,84,147,186,155,111,144,
186,28,139,141,186,154,166,138,186,21,194,135,186,141,221,132,186,2,249,129,186,234,40,126,186,205,95,120,186,173,150,114,186,138,205,108,186,101,4,103,186,63,59,97,186,24,114,91,186,241,168,85,186,202,223,79,186,165,22,74,186,130,77,68,186,97,132,62,186,66,187,56,186,40,242,50,186,18,41,45,186,0,96,39,186,244,150,33,186,238,205,27,186,239,4,22,186,247,59,16,186,7,115,10,186,32,170,4,186,132,194,253,185,219,48,242,185,70,159,230,185,200,13,219,185,97,124,207,185,19,235,195,185,222,89,184,185,196,
200,172,185,198,55,161,185,229,166,149,185,35,22,138,185,3,11,125,185,1,234,101,185,67,201,78,185,205,168,55,185,160,136,32,185,190,104,9,185,87,146,228,184,211,83,182,184,246,21,136,184,137,177,51,184,12,113,174,183,77,226,167,53,109,106,195,55,220,41,62,56,125,78,141,56,67,135,187,56,59,191,233,56,48,251,11,57,87,22,35,57,16,49,58,57,87,75,81,57,44,101,104,57,139,126,127,57,185,75,139,57,239,215,150,57,231,99,162,57,159,239,173,57,23,123,185,57,76,6,197,57,61,145,208,57,234,27,220,57,81,166,231,
57,114,48,243,57,73,186,254,57,236,33,5,58,142,230,10,58,10,171,16,58,95,111,22,58,141,51,28,58,147,247,33,58,113,187,39,58,38,127,45,58,177,66,51,58,18,6,57,58,72,201,62,58,83,140,68,58,50,79,74,58,227,17,80,58,104,212,85,58,191,150,91,58,231,88,97,58,224,26,103,58,169,220,108,58,66,158,114,58,170,95,120,58,225,32,126,58,243,240,129,58,91,209,132,58,170,177,135,58,223,145,138,58,250,113,141,58,250,81,144,58,223,49,147,58,170,17,150,58,88,241,152,58,235,208,155,58,97,176,158,58,187,143,161,58,249,
110,164,58,25,78,167,58,28,45,170,58,1,12,173,58,201,234,175,58,114,201,178,58,253,167,181,58,104,134,184,58,181,100,187,58,226,66,190,58,239,32,193,58,220,254,195,58,169,220,198,58,86,186,201,58,225,151,204,58,75,117,207,58,147,82,210,58,186,47,213,58,190,12,216,58,160,233,218,58,95,198,221,58,250,162,224,58,115,127,227,58,200,91,230,58,248,55,233,58,5,20,236,58,237,239,238,58,176,203,241,58,77,167,244,58,198,130,247,58,24,94,250,58,68,57,253,58,37,10,0,59,149,119,1,59,241,228,2,59,57,82,4,59,110,
191,5,59,142,44,7,59,155,153,8,59,147,6,10,59,119,115,11,59,70,224,12,59,1,77,14,59,166,185,15,59,55,38,17,59,178,146,18,59,25,255,19,59,105,107,21,59,164,215,22,59,202,67,24,59,217,175,25,59,210,27,27,59,182,135,28,59,130,243,29,59,57,95,31,59,216,202,32,59,97,54,34,59,211,161,35,59,46,13,37,59,113,120,38,59,157,227,39,59,177,78,41,59,174,185,42,59,147,36,44,59,96,143,45,59,21,250,46,59,177,100,48,59,53,207,49,59,160,57,51,59,243,163,52,59,45,14,54,59,77,120,55,59,85,226,56,59,67,76,58,59,23,182,
59,59,210,31,61,59,115,137,62,59,250,242,63,59,103,92,65,59,186,197,66,59,243,46,68,59,17,152,69,59,20,1,71,59,252,105,72,59,202,210,73,59,124,59,75,59,19,164,76,59,142,12,78,59,238,116,79,59,50,221,80,59,91,69,82,59,103,173,83,59,87,21,85,59,43,125,86,59,226,228,87,59,125,76,89,59,251,179,90,59,92,27,92,59,160,130,93,59,199,233,94,59,209,80,96,59,189,183,97,59,139,30,99,59,59,133,100,59,206,235,101,59,66,82,103,59,153,184,104,59,209,30,106,59,234,132,107,59,229,234,108,59,192,80,110,59,125,182,111,
59,27,28,113,59,154,129,114,59,249,230,115,59,56,76,117,59,88,177,118,59,88,22,120,59,56,123,121,59,248,223,122,59,151,68,124,59,22,169,125,59,117,13,127,59,217,56,128,59,232,234,128,59,230,156,129,59,211,78,130,59,176,0,131,59,124,178,131,59,55,100,132,59,225,21,133,59,123,199,133,59,3,121,134,59,122,42,135,59,224,219,135,59,53,141,136,59,121,62,137,59,171,239,137,59,204,160,138,59,219,81,139,59,216,2,140,59,196,179,140,59,158,100,141,59,103,21,142,59,29,198,142,59,194,118,143,59,84,39,144,59,213,
215,144,59,67,136,145,59,159,56,146,59,232,232,146,59,31,153,147,59,68,73,148,59,86,249,148,59,86,169,149,59,67,89,150,59,29,9,151,59,228,184,151,59,153,104,152,59,58,24,153,59,200,199,153,59,68,119,154,59,172,38,155,59,1,214,155,59,66,133,156,59,112,52,157,59,139,227,157,59,146,146,158,59,133,65,159,59,101,240,159,59,49,159,160,59,233,77,161,59,142,252,161,59,30,171,162,59,154,89,163,59,2,8,164,59,86,182,164,59,150,100,165,59,193,18,166,59,216,192,166,59,219,110,167,59,201,28,168,59,162,202,168,
59,103,120,169,59,23,38,170,59,178,211,170,59,56,129,171,59,169,46,172,59,5,220,172,59,76,137,173,59,126,54,174,59,155,227,174,59,162,144,175,59,148,61,176,59,113,234,176,59,56,151,177,59,233,67,178,59,132,240,178,59,10,157,179,59,122,73,180,59,213,245,180,59,25,162,181,59,71,78,182,59,95,250,182,59,97,166,183,59,77,82,184,59,34,254,184,59,225,169,185,59,138,85,186,59,28,1,187,59,151,172,187,59,252,87,188,59,74,3,189,59,130,174,189,59,162,89,190,59,171,4,191,59,158,175,191,59,121,90,192,59,62,5,193,
59,235,175,193,59,128,90,194,59,255,4,195,59,102,175,195,59,181,89,196,59,237,3,197,59,14,174,197,59,22,88,198,59,7,2,199,59,224,171,199,59,161,85,200,59,74,255,200,59,219,168,201,59,84,82,202,59,181,251,202,59,254,164,203,59,46,78,204,59,70,247,204,59,69,160,205,59,44,73,206,59,250,241,206,59,176,154,207,59,77,67,208,59,209,235,208,59,60,148,209,59,142,60,210,59,199,228,210,59,231,140,211,59,238,52,212,59,220,220,212,59,177,132,213,59,108,44,214,59,14,212,214,59,150,123,215,59,5,35,216,59,90,202,
216,59,149,113,217,59,183,24,218,59,190,191,218,59,172,102,219,59,128,13,220,59,58,180,220,59,218,90,221,59,96,1,222,59,203,167,222,59,28,78,223,59,83,244,223,59,112,154,224,59,113,64,225,59,89,230,225,59,37,140,226,59,215,49,227,59,110,215,227,59,235,124,228,59,76,34,229,59,147,199,229,59,190,108,230,59,206,17,231,59,196,182,231,59,158,91,232,59,92,0,233,59,255,164,233,59,135,73,234,59,243,237,234,59,68,146,235,59,121,54,236,59,147,218,236,59,144,126,237,59,114,34,238,59,56,198,238,59,226,105,239,
59,111,13,240,59,225,176,240,59,55,84,241,59,112,247,241,59,141,154,242,59,142,61,243,59,114,224,243,59,58,131,244,59,229,37,245,59,115,200,245,59,229,106,246,59,58,13,247,59,115,175,247,59,142,81,248,59,140,243,248,59,110,149,249,59,50,55,250,59,217,216,250,59,99,122,251,59,208,27,252,59,31,189,252,59,81,94,253,59,101,255,253,59,92,160,254,59,53,65,255,59,240,225,255,59,71,65,0,60,135,145,0,60,184,225,0,60,218,49,1,60,237,129,1,60,241,209,1,60,230,33,2,60,204,113,2,60,163,193,2,60,106,17,3,60,35,
97,3,60,204,176,3,60,102,0,4,60,240,79,4,60,108,159,4,60,216,238,4,60,52,62,5,60,129,141,5,60,191,220,5,60,237,43,6,60,12,123,6,60,27,202,6,60,26,25,7,60,10,104,7,60,235,182,7,60,187,5,8,60,124,84,8,60,45,163,8,60,207,241,8,60,96,64,9,60,226,142,9,60,84,221,9,60,182,43,10,60,8,122,10,60,74,200,10,60,124,22,11,60,158,100,11,60,176,178,11,60,178,0,12,60,164,78,12,60,134,156,12,60,87,234,12,60,24,56,13,60,201,133,13,60,106,211,13,60,251,32,14,60,123,110,14,60,234,187,14,60,74,9,15,60,153,86,15,60,215,
163,15,60,5,241,15,60,35,62,16,60,47,139,16,60,44,216,16,60,23,37,17,60,242,113,17,60,189,190,17,60,118,11,18,60,31,88,18,60,184,164,18,60,63,241,18,60,181,61,19,60,27,138,19,60,112,214,19,60,180,34,20,60,230,110,20,60,8,187,20,60,25,7,21,60,25,83,21,60,8,159,21,60,229,234,21,60,178,54,22,60,109,130,22,60,23,206,22,60,176,25,23,60,56,101,23,60,174,176,23,60,19,252,23,60,103,71,24,60,169,146,24,60,218,221,24,60,249,40,25,60,7,116,25,60,4,191,25,60,238,9,26,60,200,84,26,60,144,159,26,60,70,234,26,60,
234,52,27,60,125,127,27,60,254,201,27,60,109,20,28,60,203,94,28,60,23,169,28,60,81,243,28,60,121,61,29,60,143,135,29,60,147,209,29,60,133,27,30,60,102,101,30,60,52,175,30,60,240,248,30,60,155,66,31,60,51,140,31,60,185,213,31,60,45,31,32,60,142,104,32,60,222,177,32,60,27,251,32,60,70,68,33,60,94,141,33,60,101,214,33,60,88,31,34,60,58,104,34,60,9,177,34,60,198,249,34,60,112,66,35,60,7,139,35,60,141,211,35,60,255,27,36,60,95,100,36,60,172,172,36,60,231,244,36,60,15,61,37,60,36,133,37,60,39,205,37,60,
23,21,38,60,244,92,38,60,190,164,38,60,117,236,38,60,25,52,39,60,171,123,39,60,41,195,39,60,149,10,40,60,238,81,40,60,51,153,40,60,102,224,40,60,133,39,41,60,145,110,41,60,139,181,41,60,113,252,41,60,67,67,42,60,3,138,42,60,175,208,42,60,72,23,43,60,206,93,43,60,65,164,43,60,160,234,43,60,235,48,44,60,35,119,44,60,72,189,44,60,90,3,45,60,87,73,45,60,66,143,45,60,24,213,45,60,219,26,46,60,139,96,46,60,39,166,46,60,175,235,46,60,35,49,47,60,132,118,47,60,209,187,47,60,10,1,48,60,48,70,48,60,65,139,
48,60,63,208,48,60,41,21,49,60,255,89,49,60,193,158,49,60,110,227,49,60,8,40,50,60,142,108,50,60,0,177,50,60,94,245,50,60,168,57,51,60,221,125,51,60,255,193,51,60,12,6,52,60,5,74,52,60,233,141,52,60,186,209,52,60,118,21,53,60,30,89,53,60,177,156,53,60,48,224,53,60,155,35,54,60,241,102,54,60,51,170,54,60,96,237,54,60,121,48,55,60,125,115,55,60,109,182,55,60,72,249,55,60,14,60,56,60,192,126,56,60,93,193,56,60,230,3,57,60,89,70,57,60,184,136,57,60,2,203,57,60,56,13,58,60,88,79,58,60,100,145,58,60,91,
211,58,60,61,21,59,60,10,87,59,60,193,152,59,60,100,218,59,60,242,27,60,60,107,93,60,60,207,158,60,60,30,224,60,60,88,33,61,60,124,98,61,60,139,163,61,60,133,228,61,60,106,37,62,60,58,102,62,60,244,166,62,60,154,231,62,60,41,40,63,60,164,104,63,60,9,169,63,60,88,233,63,60,147,41,64,60,183,105,64,60,199,169,64,60,192,233,64,60,165,41,65,60,115,105,65,60,44,169,65,60,208,232,65,60,94,40,66,60,214,103,66,60,57,167,66,60,134,230,66,60,189,37,67,60,222,100,67,60,234,163,67,60,223,226,67,60,191,33,68,60,
137,96,68,60,62,159,68,60,220,221,68,60,100,28,69,60,215,90,69,60,51,153,69,60,122,215,69,60,170,21,70,60,197,83,70,60,201,145,70,60,183,207,70,60,143,13,71,60,81,75,71,60,253,136,71,60,147,198,71,60,18,4,72,60,123,65,72,60,206,126,72,60,11,188,72,60,49,249,72,60,65,54,73,60,58,115,73,60,29,176,73,60,234,236,73,60,161,41,74,60,64,102,74,60,202,162,74,60,61,223,74,60,153,27,75,60,223,87,75,60,14,148,75,60,38,208,75,60,40,12,76,60,20,72,76,60,232,131,76,60,166,191,76,60,77,251,76,60,222,54,77,60,88,
114,77,60,187,173,77,60,7,233,77,60,60,36,78,60,90,95,78,60,98,154,78,60,82,213,78,60,44,16,79,60,239,74,79,60,155,133,79,60,47,192,79,60,173,250,79,60,20,53,80,60,99,111,80,60,156,169,80,60,189,227,80,60,200,29,81,60,187,87,81,60,151,145,81,60,91,203,81,60,9,5,82,60,159,62,82,60,30,120,82,60,134,177,82,60,214,234,82,60,15,36,83,60,49,93,83,60,59,150,83,60,46,207,83,60,10,8,84,60,206,64,84,60,122,121,84,60,15,178,84,60,141,234,84,60,243,34,85,60,65,91,85,60,120,147,85,60,151,203,85,60,159,3,86,60,
143,59,86,60,103,115,86,60,40,171,86,60,209,226,86,60,98,26,87,60,219,81,87,60,61,137,87,60,135,192,87,60,185,247,87,60,211,46,88,60,213,101,88,60,191,156,88,60,146,211,88,60,77,10,89,60,239,64,89,60,122,119,89,60,236,173,89,60,71,228,89,60,138,26,90,60,180,80,90,60,199,134,90,60,193,188,90,60,163,242,90,60,109,40,91,60,31,94,91,60,185,147,91,60,59,201,91,60,164,254,91,60,245,51,92,60,46,105,92,60,79,158,92,60,87,211,92,60,71,8,93,60,30,61,93,60,222,113,93,60,132,166,93,60,19,219,93,60,137,15,94,
60,230,67,94,60,43,120,94,60,88,172,94,60,108,224,94,60,104,20,95,60,74,72,95,60,21,124,95,60,199,175,95,60,96,227,95,60,225,22,96,60,72,74,96,60,152,125,96,60,206,176,96,60,236,227,96,60,241,22,97,60,222,73,97,60,177,124,97,60,108,175,97,60,14,226,97,60,151,20,98,60,8,71,98,60,95,121,98,60,158,171,98,60,196,221,98,60,208,15,99,60,196,65,99,60,159,115,99,60,97,165,99,60,10,215,99,60,154,8,100,60,16,58,100,60,110,107,100,60,179,156,100,60,222,205,100,60,241,254,100,60,234,47,101,60,202,96,101,60,146,
145,101,60,63,194,101,60,212,242,101,60,79,35,102,60,177,83,102,60,250,131,102,60,42,180,102,60,64,228,102,60,61,20,103,60,33,68,103,60,235,115,103,60,156,163,103,60,52,211,103,60,178,2,104,60,22,50,104,60,98,97,104,60,147,144,104,60,172,191,104,60,170,238,104,60,144,29,105,60,91,76,105,60,13,123,105,60,166,169,105,60,37,216,105,60,138,6,106,60,214,52,106,60,8,99,106,60,33,145,106,60,31,191,106,60,4,237,106,60,208,26,107,60,129,72,107,60,25,118,107,60,151,163,107,60,252,208,107,60,70,254,107,60,119,
43,108,60,142,88,108,60,139,133,108,60,110,178,108,60,55,223,108,60,230,11,109,60,124,56,109,60,247,100,109,60,89,145,109,60,160,189,109,60,206,233,109,60,225,21,110,60,219,65,110,60,186,109,110,60,128,153,110,60,43,197,110,60,189,240,110,60,52,28,111,60,145,71,111,60,212,114,111,60,252,157,111,60,11,201,111,60,255,243,111,60,217,30,112,60,153,73,112,60,63,116,112,60,203,158,112,60,60,201,112,60,147,243,112,60,207,29,113,60,242,71,113,60,250,113,113,60,231,155,113,60,186,197,113,60,115,239,113,60,
18,25,114,60,150,66,114,60,255,107,114,60,79,149,114,60,131,190,114,60,158,231,114,60,157,16,115,60,131,57,115,60,77,98,115,60,253,138,115,60,147,179,115,60,14,220,115,60,111,4,116,60,181,44,116,60,224,84,116,60,241,124,116,60,231,164,116,60,194,204,116,60,131,244,116,60,41,28,117,60,180,67,117,60,36,107,117,60,122,146,117,60,181,185,117,60,214,224,117,60,219,7,118,60,198,46,118,60,150,85,118,60,75,124,118,60,230,162,118,60,101,201,118,60,202,239,118,60,19,22,119,60,66,60,119,60,86,98,119,60,79,136,
119,60,45,174,119,60,240,211,119,60,153,249,119,60,38,31,120,60,152,68,120,60,239,105,120,60,43,143,120,60,77,180,120,60,83,217,120,60,62,254,120,60,14,35,121,60,195,71,121,60,92,108,121,60,219,144,121,60,63,181,121,60,135,217,121,60,180,253,121,60,198,33,122,60,189,69,122,60,153,105,122,60,89,141,122,60,255,176,122,60,137,212,122,60,248,247,122,60,75,27,123,60,131,62,123,60,160,97,123,60,162,132,123,60,136,167,123,60,84,202,123,60,3,237,123,60,152,15,124,60,17,50,124,60,110,84,124,60,176,118,124,
60,215,152,124,60,227,186,124,60,211,220,124,60,167,254,124,60,96,32,125,60,254,65,125,60,128,99,125,60,231,132,125,60,50,166,125,60,98,199,125,60,118,232,125,60,111,9,126,60,76,42,126,60,13,75,126,60,179,107,126,60,61,140,126,60,172,172,126,60,255,204,126,60,55,237,126,60,83,13,127,60,83,45,127,60,56,77,127,60,1,109,127,60,174,140,127,60,63,172,127,60,181,203,127,60,15,235,127,60,39,5,128,60,184,20,128,60,60,36,128,60,177,51,128,60,25,67,128,60,115,82,128,60,191,97,128,60,253,112,128,60,45,128,128,
60,79,143,128,60,99,158,128,60,106,173,128,60,98,188,128,60,77,203,128,60,41,218,128,60,248,232,128,60,185,247,128,60,107,6,129,60,16,21,129,60,167,35,129,60,48,50,129,60,171,64,129,60,23,79,129,60,118,93,129,60,199,107,129,60,10,122,129,60,63,136,129,60,102,150,129,60,127,164,129,60,138,178,129,60,135,192,129,60,117,206,129,60,86,220,129,60,41,234,129,60,238,247,129,60,164,5,130,60,77,19,130,60,231,32,130,60,116,46,130,60,242,59,130,60,99,73,130,60,197,86,130,60,25,100,130,60,95,113,130,60,151,126,
130,60,193,139,130,60,221,152,130,60,235,165,130,60,235,178,130,60,220,191,130,60,191,204,130,60,149,217,130,60,92,230,130,60,21,243,130,60,192,255,130,60,93,12,131,60,235,24,131,60,108,37,131,60,222,49,131,60,66,62,131,60,152,74,131,60,224,86,131,60,26,99,131,60,69,111,131,60,98,123,131,60,114,135,131,60,115,147,131,60,101,159,131,60,74,171,131,60,32,183,131,60,232,194,131,60,162,206,131,60,78,218,131,60,236,229,131,60,123,241,131,60,252,252,131,60,111,8,132,60,212,19,132,60,42,31,132,60,114,42,
132,60,172,53,132,60,216,64,132,60,245,75,132,60,4,87,132,60,5,98,132,60,248,108,132,60,220,119,132,60,179,130,132,60,122,141,132,60,52,152,132,60,223,162,132,60,124,173,132,60,11,184,132,60,140,194,132,60,254,204,132,60,98,215,132,60,183,225,132,60,255,235,132,60,55,246,132,60,98,0,133,60,126,10,133,60,141,20,133,60,140,30,133,60,126,40,133,60,97,50,133,60,53,60,133,60,252,69,133,60,180,79,133,60,94,89,133,60,249,98,133,60,134,108,133,60,5,118,133,60,117,127,133,60,215,136,133,60,43,146,133,60,112,
155,133,60,167,164,133,60,207,173,133,60,233,182,133,60,245,191,133,60,243,200,133,60,226,209,133,60,194,218,133,60,149,227,133,60,89,236,133,60,14,245,133,60,181,253,133,60,78,6,134,60,216,14,134,60,84,23,134,60,194,31,134,60,33,40,134,60,113,48,134,60,180,56,134,60,232,64,134,60,13,73,134,60,36,81,134,60,45,89,134,60,39,97,134,60,19,105,134,60,240,112,134,60,191,120,134,60,127,128,134,60,50,136,134,60,213,143,134,60,106,151,134,60,241,158,134,60,105,166,134,60,211,173,134,60,47,181,134,60,123,188,
134,60,186,195,134,60,234,202,134,60,12,210,134,60,31,217,134,60,35,224,134,60,26,231,134,60,1,238,134,60,219,244,134,60,165,251,134,60,98,2,135,60,15,9,135,60,175,15,135,60,64,22,135,60,194,28,135,60,54,35,135,60,155,41,135,60,242,47,135,60,59,54,135,60,117,60,135,60,160,66,135,60,189,72,135,60,204,78,135,60,204,84,135,60,189,90,135,60,161,96,135,60,117,102,135,60,59,108,135,60,243,113,135,60,156,119,135,60,54,125,135,60,194,130,135,60,64,136,135,60,175,141,135,60,15,147,135,60,97,152,135,60,165,
157,135,60,217,162,135,60,0,168,135,60,24,173,135,60,33,178,135,60,28,183,135,60,8,188,135,60,230,192,135,60,181,197,135,60,118,202,135,60,40,207,135,60,204,211,135,60,97,216,135,60,232,220,135,60,96,225,135,60,202,229,135,60,37,234,135,60,113,238,135,60,175,242,135,60,223,246,135,60,0,251,135,60,18,255,135,60,22,3,136,60,11,7,136,60,242,10,136,60,202,14,136,60,148,18,136,60,79,22,136,60,252,25,136,60,154,29,136,60,41,33,136,60,170,36,136,60,29,40,136,60,129,43,136,60,214,46,136,60,29,50,136,60,85,
53,136,60,127,56,136,60,154,59,136,60,167,62,136,60,165,65,136,60,148,68,136,60,117,71,136,60,72,74,136,60,12,77,136,60,193,79,136,60,104,82,136,60,0,85,136,60,138,87,136,60,5,90,136,60,113,92,136,60,207,94,136,60,31,97,136,60,96,99,136,60,146,101,136,60,182,103,136,60,203,105,136,60,210,107,136,60,202,109,136,60,180,111,136,60,143,113,136,60,91,115,136,60,25,117,136,60,201,118,136,60,106,120,136,60,252,121,136,60,128,123,136,60,245,124,136,60,92,126,136,60,180,127,136,60,253,128,136,60,56,130,136,
60,101,131,136,60,131,132,136,60,146,133,136,60,147,134,136,60,133,135,136,60,105,136,136,60,62,137,136,60,5,138,136,60,189,138,136,60,102,139,136,60,1,140,136,60,142,140,136,60,12,141,136,60,123,141,136,60,220,141,136,60,46,142,136,60,114,142,136,60,167,142,136,60,206,142,136,60,230,142,136,60,240,142,136,60,235,142,136,60,216,142,136,60,182,142,136,60,133,142,136,60,70,142,136,60,249,141,136,60,156,141,136,60,50,141,136,60,185,140,136,60,49,140,136,60,155,139,136,60,246,138,136,60,67,138,136,60,
129,137,136,60,177,136,136,60,210,135,136,60,229,134,136,60,233,133,136,60,222,132,136,60,198,131,136,60,158,130,136,60,104,129,136,60,36,128,136,60,209,126,136,60,112,125,136,60,0,124,136,60,129,122,136,60,244,120,136,60,89,119,136,60,175,117,136,60,246,115,136,60,47,114,136,60,90,112,136,60,118,110,136,60,132,108,136,60,131,106,136,60,115,104,136,60,86,102,136,60,41,100,136,60,238,97,136,60,165,95,136,60,77,93,136,60,231,90,136,60,114,88,136,60,239,85,136,60,93,83,136,60,189,80,136,60,14,78,136,
60,81,75,136,60,134,72,136,60,172,69,136,60,195,66,136,60,204,63,136,60,199,60,136,60,179,57,136,60,145,54,136,60,96,51,136,60,33,48,136,60,211,44,136,60,119,41,136,60,12,38,136,60,147,34,136,60,12,31,136,60,118,27,136,60,210,23,136,60,31,20,136,60,94,16,136,60,143,12,136,60,177,8,136,60,196,4,136,60,201,0,136,60,192,252,135,60,169,248,135,60,130,244,135,60,78,240,135,60,11,236,135,60,186,231,135,60,90,227,135,60,236,222,135,60,112,218,135,60,229,213,135,60,76,209,135,60,164,204,135,60,238,199,135,
60,42,195,135,60,87,190,135,60,118,185,135,60,134,180,135,60,137,175,135,60,124,170,135,60,98,165,135,60,57,160,135,60,2,155,135,60,188,149,135,60,104,144,135,60,6,139,135,60,149,133,135,60,22,128,135,60,136,122,135,60,237,116,135,60,67,111,135,60,138,105,135,60,196,99,135,60,239,93,135,60,11,88,135,60,26,82,135,60,26,76,135,60,12,70,135,60,239,63,135,60,196,57,135,60,139,51,135,60,68,45,135,60,238,38,135,60,138,32,135,60,23,26,135,60,151,19,135,60,8,13,135,60,107,6,135,60,191,255,134,60,6,249,134,
60,62,242,134,60,104,235,134,60,131,228,134,60,145,221,134,60,144,214,134,60,128,207,134,60,99,200,134,60,55,193,134,60,253,185,134,60,181,178,134,60,95,171,134,60,250,163,134,60,136,156,134,60,7,149,134,60,119,141,134,60,218,133,134,60,46,126,134,60,117,118,134,60,173,110,134,60,214,102,134,60,242,94,134,60,255,86,134,60,255,78,134,60,240,70,134,60,211,62,134,60,167,54,134,60,110,46,134,60,38,38,134,60,209,29,134,60,109,21,134,60,251,12,134,60,123,4,134,60,237,251,133,60,80,243,133,60,166,234,133,
60,237,225,133,60,38,217,133,60,81,208,133,60,110,199,133,60,125,190,133,60,126,181,133,60,113,172,133,60,86,163,133,60,44,154,133,60,245,144,133,60,175,135,133,60,91,126,133,60,250,116,133,60,138,107,133,60,12,98,133,60,128,88,133,60,230,78,133,60,62,69,133,60,136,59,133,60,196,49,133,60,242,39,133,60,18,30,133,60,36,20,133,60,40,10,133,60,30,0,133,60,6,246,132,60,224,235,132,60,172,225,132,60,105,215,132,60,25,205,132,60,187,194,132,60,79,184,132,60,213,173,132,60,77,163,132,60,183,152,132,60,20,
142,132,60,98,131,132,60,162,120,132,60,212,109,132,60,249,98,132,60,15,88,132,60,24,77,132,60,18,66,132,60,255,54,132,60,222,43,132,60,175,32,132,60,114,21,132,60,39,10,132,60,207,254,131,60,104,243,131,60,243,231,131,60,113,220,131,60,225,208,131,60,67,197,131,60,151,185,131,60,221,173,131,60,22,162,131,60,64,150,131,60,93,138,131,60,108,126,131,60,109,114,131,60,97,102,131,60,70,90,131,60,30,78,131,60,232,65,131,60,164,53,131,60,83,41,131,60,243,28,131,60,134,16,131,60,11,4,131,60,131,247,130,
60,236,234,130,60,72,222,130,60,150,209,130,60,215,196,130,60,9,184,130,60,46,171,130,60,70,158,130,60,79,145,130,60,75,132,130,60,57,119,130,60,26,106,130,60,237,92,130,60,178,79,130,60,105,66,130,60,19,53,130,60,175,39,130,60,62,26,130,60,191,12,130,60,50,255,129,60,151,241,129,60,239,227,129,60,58,214,129,60,119,200,129,60,166,186,129,60,199,172,129,60,219,158,129,60,226,144,129,60,218,130,129,60,198,116,129,60,163,102,129,60,116,88,129,60,54,74,129,60,235,59,129,60,147,45,129,60,45,31,129,60,
185,16,129,60,56,2,129,60,170,243,128,60,13,229,128,60,100,214,128,60,173,199,128,60,232,184,128,60,22,170,128,60,55,155,128,60,74,140,128,60,80,125,128,60,72,110,128,60,50,95,128,60,16,80,128,60,224,64,128,60,162,49,128,60,87,34,128,60,255,18,128,60,153,3,128,60,76,232,127,60,75,201,127,60,47,170,127,60,248,138,127,60,167,107,127,60,59,76,127,60,181,44,127,60,19,13,127,60,87,237,126,60,129,205,126,60,143,173,126,60,132,141,126,60,93,109,126,60,28,77,126,60,192,44,126,60,74,12,126,60,186,235,125,
60,14,203,125,60,73,170,125,60,104,137,125,60,110,104,125,60,88,71,125,60,41,38,125,60,223,4,125,60,122,227,124,60,251,193,124,60,98,160,124,60,174,126,124,60,224,92,124,60,248,58,124,60,245,24,124,60,216,246,123,60,161,212,123,60,79,178,123,60,227,143,123,60,93,109,123,60,189,74,123,60,3,40,123,60,46,5,123,60,63,226,122,60,54,191,122,60,19,156,122,60,213,120,122,60,126,85,122,60,12,50,122,60,129,14,122,60,219,234,121,60,27,199,121,60,65,163,121,60,77,127,121,60,63,91,121,60,24,55,121,60,214,18,121,
60,122,238,120,60,4,202,120,60,117,165,120,60,203,128,120,60,8,92,120,60,43,55,120,60,51,18,120,60,34,237,119,60,248,199,119,60,179,162,119,60,85,125,119,60,221,87,119,60,75,50,119,60,159,12,119,60,218,230,118,60,251,192,118,60,2,155,118,60,239,116,118,60,195,78,118,60,126,40,118,60,30,2,118,60,166,219,117,60,19,181,117,60,103,142,117,60,162,103,117,60,194,64,117,60,202,25,117,60,184,242,116,60,140,203,116,60,71,164,116,60,233,124,116,60,113,85,116,60,224,45,116,60,53,6,116,60,113,222,115,60,148,
182,115,60,157,142,115,60,141,102,115,60,100,62,115,60,33,22,115,60,197,237,114,60,80,197,114,60,194,156,114,60,26,116,114,60,90,75,114,60,128,34,114,60,141,249,113,60,129,208,113,60,92,167,113,60,29,126,113,60,198,84,113,60,86,43,113,60,204,1,113,60,42,216,112,60,110,174,112,60,154,132,112,60,172,90,112,60,166,48,112,60,135,6,112,60,79,220,111,60,254,177,111,60,148,135,111,60,17,93,111,60,117,50,111,60,193,7,111,60,244,220,110,60,14,178,110,60,15,135,110,60,248,91,110,60,200,48,110,60,127,5,110,
60,29,218,109,60,163,174,109,60,17,131,109,60,101,87,109,60,161,43,109,60,197,255,108,60,208,211,108,60,194,167,108,60,156,123,108,60,93,79,108,60,6,35,108,60,151,246,107,60,15,202,107,60,110,157,107,60,181,112,107,60,228,67,107,60,251,22,107,60,249,233,106,60,223,188,106,60,172,143,106,60,97,98,106,60,254,52,106,60,131,7,106,60,240,217,105,60,68,172,105,60,128,126,105,60,164,80,105,60,176,34,105,60,164,244,104,60,128,198,104,60,67,152,104,60,239,105,104,60,130,59,104,60,254,12,104,60,98,222,103,
60,173,175,103,60,225,128,103,60,253,81,103,60,0,35,103,60,236,243,102,60,193,196,102,60,125,149,102,60,33,102,102,60,174,54,102,60,35,7,102,60,128,215,101,60,197,167,101,60,243,119,101,60,9,72,101,60,7,24,101,60,238,231,100,60,189,183,100,60,116,135,100,60,20,87,100,60,156,38,100,60,13,246,99,60,102,197,99,60,168,148,99,60,210,99,99,60,229,50,99,60,224,1,99,60,196,208,98,60,145,159,98,60,70,110,98,60,228,60,98,60,106,11,98,60,218,217,97,60,50,168,97,60,114,118,97,60,156,68,97,60,174,18,97,60,169,
224,96,60,141,174,96,60,90,124,96,60,15,74,96,60,174,23,96,60,53,229,95,60,165,178,95,60,255,127,95,60,65,77,95,60,108,26,95,60,129,231,94,60,126,180,94,60,101,129,94,60,52,78,94,60,237,26,94,60,143,231,93,60,26,180,93,60,142,128,93,60,235,76,93,60,50,25,93,60,98,229,92,60,123,177,92,60,125,125,92,60,105,73,92,60,62,21,92,60,253,224,91,60,165,172,91,60,54,120,91,60,177,67,91,60,21,15,91,60,99,218,90,60,154,165,90,60,187,112,90,60,198,59,90,60,185,6,90,60,151,209,89,60,94,156,89,60,15,103,89,60,170,
49,89,60,46,252,88,60,156,198,88,60,243,144,88,60,53,91,88,60,96,37,88,60,117,239,87,60,116,185,87,60,93,131,87,60,47,77,87,60,236,22,87,60,147,224,86,60,35,170,86,60,157,115,86,60,2,61,86,60,80,6,86,60,137,207,85,60,172,152,85,60,184,97,85,60,175,42,85,60,144,243,84,60,91,188,84,60,17,133,84,60,176,77,84,60,58,22,84,60,174,222,83,60,13,167,83,60,86,111,83,60,137,55,83,60,166,255,82,60,174,199,82,60,160,143,82,60,125,87,82,60,68,31,82,60,246,230,81,60,146,174,81,60,25,118,81,60,139,61,81,60,230,4,
81,60,45,204,80,60,94,147,80,60,122,90,80,60,129,33,80,60,114,232,79,60,78,175,79,60,21,118,79,60,198,60,79,60,99,3,79,60,234,201,78,60,92,144,78,60,185,86,78,60,1,29,78,60,52,227,77,60,82,169,77,60,91,111,77,60,79,53,77,60,45,251,76,60,247,192,76,60,173,134,76,60,77,76,76,60,216,17,76,60,79,215,75,60,176,156,75,60,253,97,75,60,53,39,75,60,89,236,74,60,104,177,74,60,98,118,74,60,71,59,74,60,24,0,74,60,212,196,73,60,124,137,73,60,15,78,73,60,142,18,73,60,248,214,72,60,77,155,72,60,143,95,72,60,187,
35,72,60,212,231,71,60,216,171,71,60,200,111,71,60,163,51,71,60,106,247,70,60,29,187,70,60,187,126,70,60,70,66,70,60,188,5,70,60,30,201,69,60,108,140,69,60,166,79,69,60,204,18,69,60,222,213,68,60,219,152,68,60,197,91,68,60,155,30,68,60,93,225,67,60,10,164,67,60,165,102,67,60,43,41,67,60,157,235,66,60,252,173,66,60,70,112,66,60,125,50,66,60,161,244,65,60,176,182,65,60,172,120,65,60,148,58,65,60,105,252,64,60,42,190,64,60,215,127,64,60,113,65,64,60,248,2,64,60,107,196,63,60,202,133,63,60,22,71,63,60,
79,8,63,60,116,201,62,60,134,138,62,60,133,75,62,60,112,12,62,60,72,205,61,60,13,142,61,60,190,78,61,60,93,15,61,60,232,207,60,60,96,144,60,60,197,80,60,60,23,17,60,60,86,209,59,60,130,145,59,60,155,81,59,60,161,17,59,60,148,209,58,60,116,145,58,60,65,81,58,60,252,16,58,60,163,208,57,60,56,144,57,60,186,79,57,60,41,15,57,60,134,206,56,60,208,141,56,60,7,77,56,60,44,12,56,60,62,203,55,60,61,138,55,60,42,73,55,60,4,8,55,60,204,198,54,60,129,133,54,60,36,68,54,60,181,2,54,60,51,193,53,60,159,127,53,
60,249,61,53,60,64,252,52,60,117,186,52,60,152,120,52,60,168,54,52,60,167,244,51,60,147,178,51,60,109,112,51,60,53,46,51,60,235,235,50,60,143,169,50,60,33,103,50,60,161,36,50,60,15,226,49,60,107,159,49,60,181,92,49,60,237,25,49,60,20,215,48,60,41,148,48,60,43,81,48,60,29,14,48,60,252,202,47,60,202,135,47,60,134,68,47,60,48,1,47,60,201,189,46,60,81,122,46,60,198,54,46,60,43,243,45,60,126,175,45,60,191,107,45,60,239,39,45,60,13,228,44,60,26,160,44,60,22,92,44,60,1,24,44,60,218,211,43,60,162,143,43,
60,89,75,43,60,254,6,43,60,147,194,42,60,22,126,42,60,136,57,42,60,233,244,41,60,57,176,41,60,120,107,41,60,166,38,41,60,195,225,40,60,208,156,40,60,203,87,40,60,181,18,40,60,143,205,39,60,88,136,39,60,16,67,39,60,183,253,38,60,77,184,38,60,211,114,38,60,72,45,38,60,173,231,37,60,1,162,37,60,68,92,37,60,119,22,37,60,154,208,36,60,171,138,36,60,173,68,36,60,158,254,35,60,126,184,35,60,79,114,35,60,15,44,35,60,190,229,34,60,94,159,34,60,237,88,34,60,108,18,34,60,219,203,33,60,57,133,33,60,136,62,33,
60,198,247,32,60,244,176,32,60,19,106,32,60,33,35,32,60,31,220,31,60,14,149,31,60,236,77,31,60,187,6,31,60,122,191,30,60,41,120,30,60,200,48,30,60,88,233,29,60,215,161,29,60,72,90,29,60,168,18,29,60,249,202,28,60,58,131,28,60,108,59,28,60,142,243,27,60,160,171,27,60,163,99,27,60,151,27,27,60,123,211,26,60,80,139,26,60,22,67,26,60,204,250,25,60,115,178,25,60,11,106,25,60,147,33,25,60,12,217,24,60,118,144,24,60,209,71,24,60,29,255,23,60,90,182,23,60,136,109,23,60,166,36,23,60,182,219,22,60,183,146,
22,60,169,73,22,60,140,0,22,60,96,183,21,60,37,110,21,60,220,36,21,60,132,219,20,60,29,146,20,60,167,72,20,60,35,255,19,60,144,181,19,60,238,107,19,60,62,34,19,60,128,216,18,60,179,142,18,60,215,68,18,60,237,250,17,60,244,176,17,60,238,102,17,60,216,28,17,60,181,210,16,60,131,136,16,60,67,62,16,60,245,243,15,60,152,169,15,60,46,95,15,60,181,20,15,60,46,202,14,60,153,127,14,60,246,52,14,60,69,234,13,60,134,159,13,60,185,84,13,60,223,9,13,60,246,190,12,60,0,116,12,60,251,40,12,60,233,221,11,60,201,
146,11,60,156,71,11,60,97,252,10,60,24,177,10,60,193,101,10,60,93,26,10,60,236,206,9,60,109,131,9,60,224,55,9,60,70,236,8,60,159,160,8,60,234,84,8,60,40,9,8,60,88,189,7,60,123,113,7,60,145,37,7,60,154,217,6,60,149,141,6,60,131,65,6,60,101,245,5,60,57,169,5,60,0,93,5,60,186,16,5,60,103,196,4,60,7,120,4,60,154,43,4,60,32,223,3,60,153,146,3,60,6,70,3,60,101,249,2,60,184,172,2,60,254,95,2,60,56,19,2,60,100,198,1,60,132,121,1,60,152,44,1,60,159,223,0,60,153,146,0,60,135,69,0,60,209,240,255,59,123,86,255,
59,12,188,254,59,132,33,254,59,227,134,253,59,42,236,252,59,89,81,252,59,110,182,251,59,108,27,251,59,81,128,250,59,30,229,249,59,210,73,249,59,110,174,248,59,243,18,248,59,95,119,247,59,179,219,246,59,239,63,246,59,20,164,245,59,32,8,245,59,21,108,244,59,243,207,243,59,184,51,243,59,103,151,242,59,253,250,241,59,125,94,241,59,229,193,240,59,54,37,240,59,112,136,239,59,146,235,238,59,158,78,238,59,146,177,237,59,112,20,237,59,55,119,236,59,231,217,235,59,128,60,235,59,3,159,234,59,111,1,234,59,196,
99,233,59,3,198,232,59,44,40,232,59,63,138,231,59,59,236,230,59,33,78,230,59,241,175,229,59,171,17,229,59,78,115,228,59,220,212,227,59,85,54,227,59,183,151,226,59,4,249,225,59,59,90,225,59,92,187,224,59,104,28,224,59,95,125,223,59,64,222,222,59,12,63,222,59,194,159,221,59,100,0,221,59,240,96,220,59,103,193,219,59,202,33,219,59,23,130,218,59,80,226,217,59,115,66,217,59,131,162,216,59,125,2,216,59,99,98,215,59,53,194,214,59,242,33,214,59,154,129,213,59,47,225,212,59,175,64,212,59,27,160,211,59,115,
255,210,59,183,94,210,59,231,189,209,59,3,29,209,59,11,124,208,59,0,219,207,59,224,57,207,59,174,152,206,59,103,247,205,59,14,86,205,59,160,180,204,59,32,19,204,59,140,113,203,59,229,207,202,59,43,46,202,59,94,140,201,59,126,234,200,59,139,72,200,59,133,166,199,59,108,4,199,59,65,98,198,59,3,192,197,59,178,29,197,59,79,123,196,59,217,216,195,59,81,54,195,59,183,147,194,59,10,241,193,59,75,78,193,59,122,171,192,59,152,8,192,59,163,101,191,59,156,194,190,59,131,31,190,59,89,124,189,59,29,217,188,59,
207,53,188,59,112,146,187,59,0,239,186,59,125,75,186,59,234,167,185,59,69,4,185,59,143,96,184,59,200,188,183,59,240,24,183,59,7,117,182,59,13,209,181,59,2,45,181,59,230,136,180,59,186,228,179,59,125,64,179,59,47,156,178,59,209,247,177,59,98,83,177,59,227,174,176,59,84,10,176,59,180,101,175,59,5,193,174,59,69,28,174,59,117,119,173,59,149,210,172,59,165,45,172,59],"i8",4,y.a+256E3);
Q([166,136,171,59,150,227,170,59,119,62,170,59,73,153,169,59,11,244,168,59,189,78,168,59,96,169,167,59,244,3,167,59,120,94,166,59,237,184,165,59,83,19,165,59,170,109,164,59,242,199,163,59,43,34,163,59,86,124,162,59,113,214,161,59,126,48,161,59,124,138,160,59,108,228,159,59,77,62,159,59,31,152,158,59,228,241,157,59,153,75,157,59,65,165,156,59,219,254,155,59,102,88,155,59,228,177,154,59,83,11,154,59,181,100,153,59,9,190,152,59,79,23,152,59,136,112,151,59,179,201,150,59,208,34,150,59,224,123,149,59,
227,212,148,59,216,45,148,59,192,134,147,59,155,223,146,59,105,56,146,59,42,145,145,59,221,233,144,59,132,66,144,59,30,155,143,59,172,243,142,59,44,76,142,59,160,164,141,59,8,253,140,59,99,85,140,59,178,173,139,59,244,5,139,59,42,94,138,59,84,182,137,59,114,14,137,59,132,102,136,59,138,190,135,59,131,22,135,59,114,110,134,59,84,198,133,59,42,30,133,59,245,117,132,59,181,205,131,59,105,37,131,59,17,125,130,59,175,212,129,59,65,44,129,59,199,131,128,59,134,182,127,59,103,101,126,59,51,20,125,59,232,
194,123,59,136,113,122,59,18,32,121,59,135,206,119,59,230,124,118,59,49,43,117,59,102,217,115,59,135,135,114,59,146,53,113,59,138,227,111,59,109,145,110,59,59,63,109,59,246,236,107,59,157,154,106,59,47,72,105,59,174,245,103,59,26,163,102,59,114,80,101,59,183,253,99,59,232,170,98,59,7,88,97,59,19,5,96,59,12,178,94,59,242,94,93,59,199,11,92,59,136,184,90,59,56,101,89,59,214,17,88,59,98,190,86,59,220,106,85,59,68,23,84,59,155,195,82,59,225,111,81,59,22,28,80,59,58,200,78,59,77,116,77,59,79,32,76,59,
64,204,74,59,33,120,73,59,242,35,72,59,179,207,70,59,100,123,69,59,5,39,68,59,150,210,66,59,23,126,65,59,137,41,64,59,236,212,62,59,64,128,61,59,132,43,60,59,186,214,58,59,225,129,57,59,250,44,56,59,4,216,54,59,255,130,53,59,237,45,52,59,205,216,50,59,158,131,49,59,98,46,48,59,25,217,46,59,194,131,45,59,93,46,44,59,236,216,42,59,109,131,41,59,226,45,40,59,74,216,38,59,165,130,37,59,244,44,36,59,54,215,34,59,109,129,33,59,151,43,32,59,182,213,30,59,201,127,29,59,208,41,28,59,204,211,26,59,188,125,
25,59,161,39,24,59,124,209,22,59,75,123,21,59,16,37,20,59,202,206,18,59,122,120,17,59,31,34,16,59,186,203,14,59,75,117,13,59,211,30,12,59,80,200,10,59,196,113,9,59,47,27,8,59,144,196,6,59,232,109,5,59,56,23,4,59,126,192,2,59,187,105,1,59,240,18,0,59,57,120,253,58,130,202,250,58,186,28,248,58,226,110,245,58,250,192,242,58,3,19,240,58,253,100,237,58,231,182,234,58,196,8,232,58,146,90,229,58,81,172,226,58,4,254,223,58,168,79,221,58,64,161,218,58,202,242,215,58,72,68,213,58,186,149,210,58,32,231,207,
58,122,56,205,58,200,137,202,58,12,219,199,58,68,44,197,58,114,125,194,58,150,206,191,58,175,31,189,58,191,112,186,58,197,193,183,58,195,18,181,58,183,99,178,58,163,180,175,58,134,5,173,58,97,86,170,58,53,167,167,58,1,248,164,58,199,72,162,58,133,153,159,58,60,234,156,58,238,58,154,58,153,139,151,58,63,220,148,58,223,44,146,58,122,125,143,58,16,206,140,58,161,30,138,58,46,111,135,58,184,191,132,58,61,16,130,58,126,193,126,58,124,98,121,58,116,3,116,58,103,164,110,58,85,69,105,58,63,230,99,58,38,135,
94,58,10,40,89,58,236,200,83,58,203,105,78,58,170,10,73,58,136,171,67,58,102,76,62,58,69,237,56,58,36,142,51,58,6,47,46,58,234,207,40,58,208,112,35,58,186,17,30,58,168,178,24,58,154,83,19,58,146,244,13,58,143,149,8,58,146,54,3,58,57,175,251,57,92,241,240,57,144,51,230,57,212,117,219,57,43,184,208,57,149,250,197,57,19,61,187,57,167,127,176,57,82,194,165,57,21,5,155,57,241,71,144,57,231,138,133,57,241,155,117,57,77,34,96,57,228,168,74,57,185,47,53,57,206,182,31,57,37,62,10,57,127,139,233,56,67,155,
190,56,152,171,147,56,8,121,81,56,44,56,247,55,141,1,23,55,30,104,64,183,33,243,5,184,224,202,91,184,157,208,152,184,21,187,195,184,209,164,238,184,231,198,12,185,3,59,34,185,188,174,55,185,13,34,77,185,246,148,98,185,116,7,120,185,194,188,134,185,146,117,145,185,42,46,156,185,135,230,166,185,169,158,177,185,142,86,188,185,54,14,199,185,160,197,209,185,201,124,220,185,178,51,231,185,89,234,241,185,188,160,252,185,110,171,3,186,91,6,9,186,36,97,14,186,202,187,19,186,75,22,25,186,167,112,30,186,222,
202,35,186,238,36,41,186,216,126,46,186,155,216,51,186,53,50,57,186,168,139,62,186,241,228,67,186,17,62,73,186,6,151,78,186,209,239,83,186,113,72,89,186,229,160,94,186,45,249,99,186,71,81,105,186,53,169,110,186,244,0,116,186,132,88,121,186,229,175,126,186,139,3,130,186,12,175,132,186,116,90,135,186,195,5,138,186,250,176,140,186,23,92,143,186,26,7,146,186,4,178,148,186,212,92,151,186,137,7,154,186,35,178,156,186,163,92,159,186,7,7,162,186,79,177,164,186,124,91,167,186,141,5,170,186,129,175,172,186,
88,89,175,186,19,3,178,186,176,172,180,186,48,86,183,186,146,255,185,186,214,168,188,186,252,81,191,186,3,251,193,186,235,163,196,186,179,76,199,186,93,245,201,186,230,157,204,186,80,70,207,186,153,238,209,186,193,150,212,186,201,62,215,186,175,230,217,186,116,142,220,186,23,54,223,186,153,221,225,186,247,132,228,186,52,44,231,186,77,211,233,186,68,122,236,186,22,33,239,186,198,199,241,186,81,110,244,186,184,20,247,186,250,186,249,186,24,97,252,186,16,7,255,186,114,214,0,187,73,41,2,187,12,124,3,
187,189,206,4,187,90,33,6,187,228,115,7,187,91,198,8,187,190,24,10,187,13,107,11,187,72,189,12,187,111,15,14,187,130,97,15,187,128,179,16,187,106,5,18,187,63,87,19,187,0,169,20,187,171,250,21,187,66,76,23,187,195,157,24,187,47,239,25,187,133,64,27,187,198,145,28,187,241,226,29,187,7,52,31,187,6,133,32,187,239,213,33,187,194,38,35,187,126,119,36,187,36,200,37,187,179,24,39,187,43,105,40,187,140,185,41,187,214,9,43,187,8,90,44,187,36,170,45,187,39,250,46,187,19,74,48,187,232,153,49,187,164,233,50,187,
72,57,52,187,212,136,53,187,71,216,54,187,162,39,56,187,228,118,57,187,14,198,58,187,31,21,60,187,22,100,61,187,244,178,62,187,185,1,64,187,101,80,65,187,246,158,66,187,111,237,67,187,205,59,69,187,17,138,70,187,59,216,71,187,74,38,73,187,64,116,74,187,26,194,75,187,218,15,77,187,127,93,78,187,9,171,79,187,120,248,80,187,204,69,82,187,4,147,83,187,33,224,84,187,34,45,86,187,7,122,87,187,208,198,88,187,125,19,90,187,14,96,91,187,130,172,92,187,219,248,93,187,22,69,95,187,53,145,96,187,54,221,97,187,
27,41,99,187,226,116,100,187,141,192,101,187,25,12,103,187,136,87,104,187,218,162,105,187,13,238,106,187,35,57,108,187,26,132,109,187,243,206,110,187,174,25,112,187,74,100,113,187,200,174,114,187,38,249,115,187,102,67,117,187,135,141,118,187,136,215,119,187,106,33,121,187,45,107,122,187,208,180,123,187,83,254,124,187,183,71,126,187,250,144,127,187,14,109,128,187,144,17,129,187,1,182,129,187,98,90,130,187,179,254,130,187,243,162,131,187,34,71,132,187,65,235,132,187,80,143,133,187,78,51,134,187,59,
215,134,187,23,123,135,187,226,30,136,187,157,194,136,187,70,102,137,187,222,9,138,187,101,173,138,187,219,80,139,187,64,244,139,187,147,151,140,187,213,58,141,187,5,222,141,187,36,129,142,187,49,36,143,187,45,199,143,187,22,106,144,187,238,12,145,187,180,175,145,187,104,82,146,187,10,245,146,187,154,151,147,187,24,58,148,187,131,220,148,187,220,126,149,187,35,33,150,187,88,195,150,187,121,101,151,187,137,7,152,187,134,169,152,187,112,75,153,187,71,237,153,187,12,143,154,187,189,48,155,187,92,210,
155,187,231,115,156,187,96,21,157,187,197,182,157,187,24,88,158,187,86,249,158,187,130,154,159,187,154,59,160,187,159,220,160,187,144,125,161,187,109,30,162,187,55,191,162,187,237,95,163,187,143,0,164,187,30,161,164,187,152,65,165,187,255,225,165,187,81,130,166,187,143,34,167,187,185,194,167,187,207,98,168,187,209,2,169,187,190,162,169,187,150,66,170,187,90,226,170,187,10,130,171,187,164,33,172,187,42,193,172,187,156,96,173,187,248,255,173,187,64,159,174,187,114,62,175,187,144,221,175,187,152,124,
176,187,139,27,177,187,105,186,177,187,50,89,178,187,229,247,178,187,131,150,179,187,11,53,180,187,126,211,180,187,219,113,181,187,34,16,182,187,84,174,182,187,112,76,183,187,118,234,183,187,102,136,184,187,64,38,185,187,4,196,185,187,177,97,186,187,73,255,186,187,202,156,187,187,53,58,188,187,137,215,188,187,200,116,189,187,239,17,190,187,0,175,190,187,250,75,191,187,222,232,191,187,170,133,192,187,96,34,193,187,255,190,193,187,135,91,194,187,248,247,194,187,82,148,195,187,149,48,196,187,192,204,
196,187,212,104,197,187,209,4,198,187,183,160,198,187,132,60,199,187,59,216,199,187,218,115,200,187,97,15,201,187,208,170,201,187,39,70,202,187,103,225,202,187,143,124,203,187,158,23,204,187,150,178,204,187,118,77,205,187,61,232,205,187,236,130,206,187,131,29,207,187,1,184,207,187,103,82,208,187,181,236,208,187,234,134,209,187,6,33,210,187,10,187,210,187,245,84,211,187,199,238,211,187,128,136,212,187,32,34,213,187,167,187,213,187,22,85,214,187,107,238,214,187,167,135,215,187,201,32,216,187,211,185,
216,187,195,82,217,187,153,235,217,187,86,132,218,187,250,28,219,187,132,181,219,187,244,77,220,187,75,230,220,187,135,126,221,187,170,22,222,187,179,174,222,187,162,70,223,187,119,222,223,187,50,118,224,187,210,13,225,187,88,165,225,187,197,60,226,187,22,212,226,187,77,107,227,187,106,2,228,187,109,153,228,187,84,48,229,187,33,199,229,187,211,93,230,187,107,244,230,187,232,138,231,187,73,33,232,187,144,183,232,187,188,77,233,187,204,227,233,187,194,121,234,187,156,15,235,187,91,165,235,187,255,58,
236,187,135,208,236,187,244,101,237,187,69,251,237,187,123,144,238,187,149,37,239,187,148,186,239,187,118,79,240,187,61,228,240,187,232,120,241,187,119,13,242,187,234,161,242,187,65,54,243,187,124,202,243,187,155,94,244,187,157,242,244,187,131,134,245,187,77,26,246,187,250,173,246,187,139,65,247,187,0,213,247,187,87,104,248,187,147,251,248,187,177,142,249,187,179,33,250,187,151,180,250,187,95,71,251,187,10,218,251,187,152,108,252,187,9,255,252,187,93,145,253,187,148,35,254,187,173,181,254,187,169,
71,255,187,136,217,255,187,164,53,0,188,118,126,0,188,57,199,0,188,238,15,1,188,147,88,1,188,42,161,1,188,178,233,1,188,42,50,2,188,148,122,2,188,239,194,2,188,59,11,3,188,120,83,3,188,166,155,3,188,196,227,3,188,212,43,4,188,212,115,4,188,198,187,4,188,168,3,5,188,122,75,5,188,62,147,5,188,242,218,5,188,151,34,6,188,45,106,6,188,179,177,6,188,42,249,6,188,145,64,7,188,233,135,7,188,49,207,7,188,106,22,8,188,147,93,8,188,173,164,8,188,183,235,8,188,178,50,9,188,156,121,9,188,119,192,9,188,67,7,10,
188,254,77,10,188,170,148,10,188,70,219,10,188,210,33,11,188,79,104,11,188,187,174,11,188,24,245,11,188,100,59,12,188,161,129,12,188,205,199,12,188,234,13,13,188,246,83,13,188,243,153,13,188,223,223,13,188,187,37,14,188,135,107,14,188,66,177,14,188,238,246,14,188,137,60,15,188,20,130,15,188,143,199,15,188,249,12,16,188,83,82,16,188,156,151,16,188,213,220,16,188,254,33,17,188,22,103,17,188,29,172,17,188,20,241,17,188,251,53,18,188,209,122,18,188,150,191,18,188,75,4,19,188,239,72,19,188,130,141,19,
188,4,210,19,188,118,22,20,188,215,90,20,188,39,159,20,188,102,227,20,188,149,39,21,188,178,107,21,188,191,175,21,188,186,243,21,188,165,55,22,188,127,123,22,188,71,191,22,188,255,2,23,188,165,70,23,188,58,138,23,188,191,205,23,188,50,17,24,188,147,84,24,188,228,151,24,188,35,219,24,188,81,30,25,188,110,97,25,188,122,164,25,188,116,231,25,188,92,42,26,188,52,109,26,188,249,175,26,188,174,242,26,188,81,53,27,188,226,119,27,188,98,186,27,188,208,252,27,188,45,63,28,188,120,129,28,188,177,195,28,188,
217,5,29,188,239,71,29,188,243,137,29,188,229,203,29,188,198,13,30,188,149,79,30,188,82,145,30,188,253,210,30,188,150,20,31,188,30,86,31,188,147,151,31,188,247,216,31,188,72,26,32,188,136,91,32,188,181,156,32,188,208,221,32,188,218,30,33,188,209,95,33,188,182,160,33,188,136,225,33,188,73,34,34,188,247,98,34,188,148,163,34,188,29,228,34,188,149,36,35,188,250,100,35,188,77,165,35,188,141,229,35,188,187,37,36,188,215,101,36,188,224,165,36,188,215,229,36,188,187,37,37,188,141,101,37,188,76,165,37,188,
248,228,37,188,146,36,38,188,25,100,38,188,142,163,38,188,240,226,38,188,63,34,39,188,123,97,39,188,165,160,39,188,188,223,39,188,192,30,40,188,177,93,40,188,143,156,40,188,91,219,40,188,19,26,41,188,185,88,41,188,76,151,41,188,203,213,41,188,56,20,42,188,146,82,42,188,216,144,42,188,12,207,42,188,44,13,43,188,57,75,43,188,51,137,43,188,26,199,43,188,238,4,44,188,174,66,44,188,91,128,44,188,245,189,44,188,124,251,44,188,239,56,45,188,79,118,45,188,155,179,45,188,212,240,45,188,250,45,46,188,12,107,
46,188,11,168,46,188,246,228,46,188,206,33,47,188,146,94,47,188,66,155,47,188,223,215,47,188,105,20,48,188,222,80,48,188,64,141,48,188,143,201,48,188,201,5,49,188,240,65,49,188,3,126,49,188,3,186,49,188,238,245,49,188,198,49,50,188,138,109,50,188,57,169,50,188,213,228,50,188,93,32,51,188,210,91,51,188,50,151,51,188,126,210,51,188,182,13,52,188,218,72,52,188,234,131,52,188,230,190,52,188,205,249,52,188,161,52,53,188,96,111,53,188,12,170,53,188,163,228,53,188,37,31,54,188,148,89,54,188,238,147,54,188,
52,206,54,188,102,8,55,188,131,66,55,188,140,124,55,188,128,182,55,188,96,240,55,188,44,42,56,188,227,99,56,188,134,157,56,188,20,215,56,188,141,16,57,188,242,73,57,188,67,131,57,188,127,188,57,188,166,245,57,188,185,46,58,188,183,103,58,188,160,160,58,188,116,217,58,188,52,18,59,188,223,74,59,188,117,131,59,188,247,187,59,188,99,244,59,188,187,44,60,188,254,100,60,188,44,157,60,188,69,213,60,188,73,13,61,188,56,69,61,188,18,125,61,188,215,180,61,188,136,236,61,188,35,36,62,188,169,91,62,188,26,147,
62,188,117,202,62,188,188,1,63,188,238,56,63,188,10,112,63,188,17,167,63,188,3,222,63,188,224,20,64,188,167,75,64,188,89,130,64,188,246,184,64,188,126,239,64,188,240,37,65,188,77,92,65,188,148,146,65,188,198,200,65,188,226,254,65,188,233,52,66,188,219,106,66,188,183,160,66,188,126,214,66,188,47,12,67,188,202,65,67,188,80,119,67,188,192,172,67,188,27,226,67,188,96,23,68,188,143,76,68,188,169,129,68,188,173,182,68,188,155,235,68,188,116,32,69,188,54,85,69,188,227,137,69,188,122,190,69,188,251,242,69,
188,103,39,70,188,188,91,70,188,252,143,70,188,38,196,70,188,57,248,70,188,55,44,71,188,31,96,71,188,241,147,71,188,173,199,71,188,82,251,71,188,226,46,72,188,92,98,72,188,191,149,72,188,13,201,72,188,68,252,72,188,101,47,73,188,112,98,73,188,101,149,73,188,67,200,73,188,12,251,73,188,190,45,74,188,89,96,74,188,223,146,74,188,78,197,74,188,167,247,74,188,233,41,75,188,21,92,75,188,43,142,75,188,42,192,75,188,19,242,75,188,230,35,76,188,161,85,76,188,71,135,76,188,214,184,76,188,78,234,76,188,176,
27,77,188,251,76,77,188,48,126,77,188,78,175,77,188,85,224,77,188,70,17,78,188,32,66,78,188,228,114,78,188,145,163,78,188,39,212,78,188,166,4,79,188,14,53,79,188,96,101,79,188,155,149,79,188,191,197,79,188,204,245,79,188,195,37,80,188,162,85,80,188,107,133,80,188,29,181,80,188,184,228,80,188,60,20,81,188,169,67,81,188,255,114,81,188,62,162,81,188,101,209,81,188,118,0,82,188,112,47,82,188,83,94,82,188,31,141,82,188,211,187,82,188,113,234,82,188,247,24,83,188,102,71,83,188,190,117,83,188,255,163,83,
188,40,210,83,188,59,0,84,188,54,46,84,188,26,92,84,188,230,137,84,188,155,183,84,188,57,229,84,188,192,18,85,188,47,64,85,188,135,109,85,188,199,154,85,188,240,199,85,188,1,245,85,188,252,33,86,188,222,78,86,188,169,123,86,188,93,168,86,188,249,212,86,188,126,1,87,188,235,45,87,188,64,90,87,188,126,134,87,188,165,178,87,188,179,222,87,188,170,10,88,188,138,54,88,188,82,98,88,188,2,142,88,188,154,185,88,188,27,229,88,188,132,16,89,188,213,59,89,188,14,103,89,188,48,146,89,188,57,189,89,188,43,232,
89,188,6,19,90,188,200,61,90,188,114,104,90,188,5,147,90,188,128,189,90,188,226,231,90,188,45,18,91,188,96,60,91,188,123,102,91,188,126,144,91,188,105,186,91,188,59,228,91,188,246,13,92,188,153,55,92,188,36,97,92,188,151,138,92,188,241,179,92,188,52,221,92,188,94,6,93,188,112,47,93,188,106,88,93,188,76,129,93,188,22,170,93,188,199,210,93,188,97,251,93,188,226,35,94,188,75,76,94,188,155,116,94,188,211,156,94,188,243,196,94,188,251,236,94,188,234,20,95,188,193,60,95,188,128,100,95,188,38,140,95,188,
180,179,95,188,42,219,95,188,135,2,96,188,203,41,96,188,248,80,96,188,11,120,96,188,7,159,96,188,233,197,96,188,180,236,96,188,101,19,97,188,255,57,97,188,127,96,97,188,231,134,97,188,55,173,97,188,110,211,97,188,140,249,97,188,146,31,98,188,127,69,98,188,83,107,98,188,15,145,98,188,178,182,98,188,61,220,98,188,174,1,99,188,7,39,99,188,72,76,99,188,111,113,99,188,126,150,99,188,116,187,99,188,81,224,99,188,21,5,100,188,193,41,100,188,83,78,100,188,205,114,100,188,46,151,100,188,118,187,100,188,166,
223,100,188,188,3,101,188,185,39,101,188,158,75,101,188,106,111,101,188,28,147,101,188,182,182,101,188,54,218,101,188,158,253,101,188,237,32,102,188,34,68,102,188,63,103,102,188,67,138,102,188,45,173,102,188,254,207,102,188,183,242,102,188,86,21,103,188,220,55,103,188,73,90,103,188,157,124,103,188,216,158,103,188,249,192,103,188,2,227,103,188,241,4,104,188,199,38,104,188,132,72,104,188,39,106,104,188,177,139,104,188,35,173,104,188,122,206,104,188,185,239,104,188,222,16,105,188,234,49,105,188,221,
82,105,188,182,115,105,188,118,148,105,188,28,181,105,188,170,213,105,188,30,246,105,188,120,22,106,188,185,54,106,188,225,86,106,188,239,118,106,188,228,150,106,188,191,182,106,188,129,214,106,188,42,246,106,188,185,21,107,188,46,53,107,188,138,84,107,188,205,115,107,188,245,146,107,188,5,178,107,188,251,208,107,188,215,239,107,188,154,14,108,188,67,45,108,188,210,75,108,188,72,106,108,188,165,136,108,188,231,166,108,188,16,197,108,188,32,227,108,188,22,1,109,188,242,30,109,188,180,60,109,188,93,
90,109,188,236,119,109,188,97,149,109,188,188,178,109,188,254,207,109,188,38,237,109,188,53,10,110,188,41,39,110,188,4,68,110,188,197,96,110,188,108,125,110,188,249,153,110,188,109,182,110,188,199,210,110,188,6,239,110,188,44,11,111,188,57,39,111,188,43,67,111,188,3,95,111,188,194,122,111,188,102,150,111,188,241,177,111,188,98,205,111,188,185,232,111,188,246,3,112,188,24,31,112,188,33,58,112,188,16,85,112,188,229,111,112,188,160,138,112,188,66,165,112,188,201,191,112,188,54,218,112,188,137,244,112,
188,193,14,113,188,224,40,113,188,229,66,113,188,208,92,113,188,161,118,113,188,87,144,113,188,244,169,113,188,118,195,113,188,222,220,113,188,45,246,113,188,97,15,114,188,123,40,114,188,122,65,114,188,96,90,114,188,43,115,114,188,221,139,114,188,116,164,114,188,241,188,114,188,83,213,114,188,156,237,114,188,202,5,115,188,222,29,115,188,216,53,115,188,183,77,115,188,125,101,115,188,40,125,115,188,185,148,115,188,47,172,115,188,139,195,115,188,205,218,115,188,245,241,115,188,2,9,116,188,245,31,116,
188,206,54,116,188,140,77,116,188,48,100,116,188,186,122,116,188,41,145,116,188,126,167,116,188,185,189,116,188,217,211,116,188,222,233,116,188,202,255,116,188,155,21,117,188,81,43,117,188,238,64,117,188,111,86,117,188,215,107,117,188,36,129,117,188,86,150,117,188,110,171,117,188,107,192,117,188,78,213,117,188,23,234,117,188,197,254,117,188,89,19,118,188,210,39,118,188,48,60,118,188,116,80,118,188,158,100,118,188,173,120,118,188,161,140,118,188,123,160,118,188,59,180,118,188,224,199,118,188,106,219,
118,188,218,238,118,188,47,2,119,188,106,21,119,188,138,40,119,188,143,59,119,188,122,78,119,188,74,97,119,188,0,116,119,188,155,134,119,188,27,153,119,188,129,171,119,188,204,189,119,188,252,207,119,188,18,226,119,188,13,244,119,188,238,5,120,188,180,23,120,188,95,41,120,188,239,58,120,188,101,76,120,188,192,93,120,188,1,111,120,188,38,128,120,188,49,145,120,188,34,162,120,188,247,178,120,188,178,195,120,188,82,212,120,188,216,228,120,188,67,245,120,188,147,5,121,188,200,21,121,188,226,37,121,188,
226,53,121,188,199,69,121,188,145,85,121,188,64,101,121,188,213,116,121,188,79,132,121,188,174,147,121,188,242,162,121,188,28,178,121,188,42,193,121,188,30,208,121,188,247,222,121,188,181,237,121,188,89,252,121,188,225,10,122,188,79,25,122,188,162,39,122,188,218,53,122,188,247,67,122,188,250,81,122,188,225,95,122,188,174,109,122,188,96,123,122,188,247,136,122,188,115,150,122,188,212,163,122,188,26,177,122,188,70,190,122,188,86,203,122,188,76,216,122,188,39,229,122,188,231,241,122,188,140,254,122,
188,22,11,123,188,133,23,123,188,217,35,123,188,19,48,123,188,49,60,123,188,53,72,123,188,29,84,123,188,235,95,123,188,158,107,123,188,54,119,123,188,179,130,123,188,21,142,123,188,92,153,123,188,136,164,123,188,153,175,123,188,143,186,123,188,106,197,123,188,42,208,123,188,208,218,123,188,90,229,123,188,201,239,123,188,30,250,123,188,87,4,124,188,118,14,124,188,121,24,124,188,98,34,124,188,47,44,124,188,226,53,124,188,121,63,124,188,246,72,124,188,87,82,124,188,158,91,124,188,201,100,124,188,218,
109,124,188,207,118,124,188,170,127,124,188,105,136,124,188,14,145,124,188,152,153,124,188,6,162,124,188,90,170,124,188,146,178,124,188,175,186,124,188,178,194,124,188,153,202,124,188,102,210,124,188,23,218,124,188,173,225,124,188,41,233,124,188,137,240,124,188,206,247,124,188,249,254,124,188,8,6,125,188,252,12,125,188,213,19,125,188,147,26,125,188,54,33,125,188,190,39,125,188,43,46,125,188,125,52,125,188,180,58,125,188,208,64,125,188,209,70,125,188,182,76,125,188,129,82,125,188,49,88,125,188,197,
93,125,188,63,99,125,188,157,104,125,188,225,109,125,188,9,115,125,188,23,120,125,188,9,125,125,188,224,129,125,188,156,134,125,188,61,139,125,188,195,143,125,188,46,148,125,188,126,152,125,188,179,156,125,188,205,160,125,188,204,164,125,188,176,168,125,188,120,172,125,188,38,176,125,188,185,179,125,188,48,183,125,188,141,186,125,188,206,189,125,188,244,192,125,188,0,196,125,188,240,198,125,188,197,201,125,188,127,204,125,188,30,207,125,188,162,209,125,188,11,212,125,188,89,214,125,188,140,216,125,
188,164,218,125,188,161,220,125,188,131,222,125,188,73,224,125,188,245,225,125,188,134,227,125,188,251,228,125,188,86,230,125,188,149,231,125,188,185,232,125,188,195,233,125,188,177,234,125,188,132,235,125,188,61,236,125,188,218,236,125,188,92,237,125,188,195,237,125,188,15,238,125,188,65,238,125,188,87,238,125,188,82,238,125,188,50,238,125,188,247,237,125,188,161,237,125,188,48,237,125,188,163,236,125,188,252,235,125,188,58,235,125,188,93,234,125,188,101,233,125,188,82,232,125,188,36,231,125,188,
218,229,125,188,118,228,125,188,247,226,125,188,93,225,125,188,168,223,125,188,216,221,125,188,236,219,125,188,230,217,125,188,197,215,125,188,137,213,125,188,50,211,125,188,192,208,125,188,51,206,125,188,139,203,125,188,200,200,125,188,234,197,125,188,241,194,125,188,221,191,125,188,174,188,125,188,100,185,125,188,255,181,125,188,128,178,125,188,229,174,125,188,47,171,125,188,95,167,125,188,115,163,125,188,109,159,125,188,75,155,125,188,15,151,125,188,184,146,125,188,70,142,125,188,185,137,125,188,
16,133,125,188,78,128,125,188,112,123,125,188,119,118,125,188,99,113,125,188,53,108,125,188,235,102,125,188,135,97,125,188,8,92,125,188,110,86,125,188,185,80,125,188,233,74,125,188,254,68,125,188,248,62,125,188,216,56,125,188,157,50,125,188,71,44,125,188,213,37,125,188,74,31,125,188,163,24,125,188,225,17,125,188,5,11,125,188,14,4,125,188,252,252,124,188,207,245,124,188,135,238,124,188,37,231,124,188,167,223,124,188,15,216,124,188,92,208,124,188,142,200,124,188,166,192,124,188,163,184,124,188,133,
176,124,188,76,168,124,188,248,159,124,188,138,151,124,188,1,143,124,188,93,134,124,188,158,125,124,188,197,116,124,188,209,107,124,188,194,98,124,188,152,89,124,188,84,80,124,188,245,70,124,188,123,61,124,188,231,51,124,188,56,42,124,188,110,32,124,188,137,22,124,188,138,12,124,188,112,2,124,188,60,248,123,188,236,237,123,188,131,227,123,188,254,216,123,188,95,206,123,188,165,195,123,188,209,184,123,188,225,173,123,188,216,162,123,188,179,151,123,188,116,140,123,188,27,129,123,188,167,117,123,188,
24,106,123,188,111,94,123,188,171,82,123,188,204,70,123,188,211,58,123,188,192,46,123,188,145,34,123,188,73,22,123,188,229,9,123,188,104,253,122,188,207,240,122,188,28,228,122,188,79,215,122,188,103,202,122,188,101,189,122,188,72,176,122,188,17,163,122,188,191,149,122,188,83,136,122,188,204,122,122,188,43,109,122,188,111,95,122,188,153,81,122,188,168,67,122,188,157,53,122,188,120,39,122,188,56,25,122,188,222,10,122,188,105,252,121,188,218,237,121,188,49,223,121,188,109,208,121,188,143,193,121,188,
150,178,121,188,131,163,121,188,86,148,121,188,14,133,121,188,173,117,121,188,48,102,121,188,154,86,121,188,233,70,121,188,30,55,121,188,56,39,121,188,57,23,121,188,31,7,121,188,234,246,120,188,156,230,120,188,51,214,120,188,176,197,120,188,19,181,120,188,92,164,120,188,138,147,120,188,158,130,120,188,152,113,120,188,120,96,120,188,61,79,120,188,233,61,120,188,122,44,120,188,241,26,120,188,78,9,120,188,145,247,119,188,185,229,119,188,200,211,119,188,188,193,119,188,150,175,119,188,87,157,119,188,
253,138,119,188,137,120,119,188,251,101,119,188,83,83,119,188,145,64,119,188,181,45,119,188,190,26,119,188,174,7,119,188,132,244,118,188,64,225,118,188,226,205,118,188,105,186,118,188,215,166,118,188,43,147,118,188,101,127,118,188,133,107,118,188,139,87,118,188,119,67,118,188,73,47,118,188,2,27,118,188,160,6,118,188,37,242,117,188,143,221,117,188,224,200,117,188,23,180,117,188,52,159,117,188,56,138,117,188,33,117,117,188,241,95,117,188,167,74,117,188,67,53,117,188,197,31,117,188,45,10,117,188,124,
244,116,188,177,222,116,188,204,200,116,188,206,178,116,188,182,156,116,188,132,134,116,188,56,112,116,188,211,89,116,188,84,67,116,188,187,44,116,188,9,22,116,188,61,255,115,188,88,232,115,188,88,209,115,188,64,186,115,188,13,163,115,188,193,139,115,188,92,116,115,188,221,92,115,188,68,69,115,188,146,45,115,188,198,21,115,188,225,253,114,188,226,229,114,188,202,205,114,188,152,181,114,188,77,157,114,188,232,132,114,188,106,108,114,188,210,83,114,188,33,59,114,188,87,34,114,188,115,9,114,188,118,
240,113,188,95,215,113,188,47,190,113,188,230,164,113,188,131,139,113,188,7,114,113,188,114,88,113,188,195,62,113,188,252,36,113,188,26,11,113,188,32,241,112,188,12,215,112,188,223,188,112,188,153,162,112,188,58,136,112,188,193,109,112,188,47,83,112,188,132,56,112,188,192,29,112,188,226,2,112,188,236,231,111,188,220,204,111,188,179,177,111,188,114,150,111,188,23,123,111,188,163,95,111,188,21,68,111,188,111,40,111,188,176,12,111,188,216,240,110,188,230,212,110,188,220,184,110,188,185,156,110,188,125,
128,110,188,39,100,110,188,185,71,110,188,50,43,110,188,146,14,110,188,217,241,109,188,7,213,109,188,28,184,109,188,25,155,109,188,252,125,109,188,199,96,109,188,121,67,109,188,18,38,109,188,146,8,109,188,250,234,108,188,72,205,108,188,126,175,108,188,155,145,108,188,160,115,108,188,139,85,108,188,94,55,108,188,25,25,108,188,186,250,107,188,67,220,107,188,179,189,107,188,11,159,107,188,74,128,107,188,112,97,107,188,126,66,107,188,115,35,107,188,80,4,107,188,20,229,106,188,192,197,106,188,83,166,106,
188,205,134,106,188,47,103,106,188,121,71,106,188,170,39,106,188,195,7,106,188,195,231,105,188,171,199,105,188,122,167,105,188,49,135,105,188,207,102,105,188,86,70,105,188,196,37,105,188,25,5,105,188,86,228,104,188,123,195,104,188,136,162,104,188,124,129,104,188,88,96,104,188,28,63,104,188,200,29,104,188,91,252,103,188,215,218,103,188,58,185,103,188,133,151,103,188,183,117,103,188,210,83,103,188,212,49,103,188,191,15,103,188,145,237,102,188,75,203,102,188,238,168,102,188,120,134,102,188,234,99,102,
188,68,65,102,188,134,30,102,188,176,251,101,188,194,216,101,188,188,181,101,188,159,146,101,188,105,111,101,188,28,76,101,188,182,40,101,188,57,5,101,188,164,225,100,188,247,189,100,188,50,154,100,188,85,118,100,188,97,82,100,188,85,46,100,188,49,10,100,188,245,229,99,188,162,193,99,188,55,157,99,188,180,120,99,188,26,84,99,188,104,47,99,188,158,10,99,188,189,229,98,188,196,192,98,188,179,155,98,188,139,118,98,188,75,81,98,188,244,43,98,188,133,6,98,188,255,224,97,188,98,187,97,188,172,149,97,188,
224,111,97,188,252,73,97,188,0,36,97,188,237,253,96,188,195,215,96,188,130,177,96,188,41,139,96,188,184,100,96,188,49,62,96,188,146,23,96,188,220,240,95,188,14,202,95,188,41,163,95,188,45,124,95,188,26,85,95,188,240,45,95,188,174,6,95,188,86,223,94,188,230,183,94,188,95,144,94,188,193,104,94,188,12,65,94,188,64,25,94,188,93,241,93,188,98,201,93,188,81,161,93,188,41,121,93,188,233,80,93,188,147,40,93,188,38,0,93,188,162,215,92,188,7,175,92,188,85,134,92,188,140,93,92,188,173,52,92,188,182,11,92,188,
169,226,91,188,133,185,91,188,74,144,91,188,249,102,91,188,144,61,91,188,17,20,91,188,124,234,90,188,207,192,90,188,12,151,90,188,50,109,90,188,66,67,90,188,59,25,90,188,29,239,89,188,233,196,89,188,158,154,89,188,61,112,89,188,197,69,89,188,55,27,89,188,146,240,88,188,215,197,88,188,6,155,88,188,30,112,88,188,31,69,88,188,10,26,88,188,223,238,87,188,157,195,87,188,70,152,87,188,215,108,87,188,83,65,87,188,184,21,87,188,7,234,86,188,64,190,86,188,99,146,86,188,111,102,86,188,101,58,86,188,69,14,86,
188,15,226,85,188,195,181,85,188,97,137,85,188,232,92,85,188,90,48,85,188,182,3,85,188,251,214,84,188,43,170,84,188,68,125,84,188,72,80,84,188,54,35,84,188,13,246,83,188,207,200,83,188,123,155,83,188,17,110,83,188,146,64,83,188,252,18,83,188,81,229,82,188,144,183,82,188,185,137,82,188,205,91,82,188,203,45,82,188,179,255,81,188,133,209,81,188,66,163,81,188,233,116,81,188,122,70,81,188,246,23,81,188,93,233,80,188,174,186,80,188,233,139,80,188,15,93,80,188,31,46,80,188,26,255,79,188,255,207,79,188,207,
160,79,188,138,113,79,188,47,66,79,188,191,18,79,188,57,227,78,188,158,179,78,188,238,131,78,188,41,84,78,188,78,36,78,188,94,244,77,188,89,196,77,188,63,148,77,188,15,100,77,188,203,51,77,188,113,3,77,188,2,211,76,188,126,162,76,188,229,113,76,188,55,65,76,188,116,16,76,188,156,223,75,188,175,174,75,188,173,125,75,188,150,76,75,188,106,27,75,188,42,234,74,188,212,184,74,188,106,135,74,188,234,85,74,188,86,36,74,188,173,242,73,188,240,192,73,188,29,143,73,188,54,93,73,188,58,43,73,188,42,249,72,188,
5,199,72,188,203,148,72,188,125,98,72,188,26,48,72,188,162,253,71,188,22,203,71,188,118,152,71,188,193,101,71,188,247,50,71,188,25,0,71,188,39,205,70,188,32,154,70,188,5,103,70,188,213,51,70,188,145,0,70,188,57,205,69,188,205,153,69,188,76,102,69,188,183,50,69,188,14,255,68,188,80,203,68,188,126,151,68,188,153,99,68,188,159,47,68,188,145,251,67,188,110,199,67,188,56,147,67,188,238,94,67,188,144,42,67,188,29,246,66,188,151,193,66,188,253,140,66,188,79,88,66,188,141,35,66,188,183,238,65,188,205,185,
65,188,207,132,65,188,190,79,65,188,153,26,65,188,96,229,64,188,19,176,64,188,178,122,64,188,62,69,64,188,182,15,64,188,27,218,63,188,108,164,63,188,169,110,63,188,211,56,63,188,233,2,63,188,235,204,62,188,218,150,62,188,182,96,62,188,126,42,62,188,51,244,61,188,212,189,61,188,98,135,61,188,220,80,61,188,67,26,61,188,151,227,60,188,216,172,60,188,5,118,60,188,31,63,60,188,38,8,60,188,25,209,59,188,250,153,59,188,199,98,59,188,129,43,59,188,40,244,58,188,188,188,58,188,61,133,58,188,171,77,58,188,
5,22,58,188,77,222,57,188,130,166,57,188,164,110,57,188,179,54,57,188,175,254,56,188,153,198,56,188,111,142,56,188,51,86,56,188,227,29,56,188,129,229,55,188,13,173,55,188,133,116,55,188,235,59,55,188,63,3,55,188,127,202,54,188,173,145,54,188,200,88,54,188,209,31,54,188,200,230,53,188,171,173,53,188,125,116,53,188,59,59,53,188,232,1,53,188,130,200,52,188,9,143,52,188,126,85,52,188,225,27,52,188,50,226,51,188,112,168,51,188,156,110,51,188,181,52,51,188,189,250,50,188,178,192,50,188,149,134,50,188,102,
76,50,188,37,18,50,188,210,215,49,188,108,157,49,188,245,98,49,188,108,40,49,188,208,237,48,188,35,179,48,188,99,120,48,188,146,61,48,188,175,2,48,188,186,199,47,188,179,140,47,188,155,81,47,188,112,22,47,188,52,219,46,188,230,159,46,188,135,100,46,188,21,41,46,188,146,237,45,188,254,177,45,188,87,118,45,188,160,58,45,188,214,254,44,188,251,194,44,188,15,135,44,188,17,75,44,188,2,15,44,188,225,210,43,188,175,150,43,188,107,90,43,188,22,30,43,188,176,225,42,188,56,165,42,188,176,104,42,188,22,44,42,
188,106,239,41,188,174,178,41,188,224,117,41,188,2,57,41,188,18,252,40,188,17,191,40,188,255,129,40,188,220,68,40,188,168,7,40,188,99,202,39,188,13,141,39,188,166,79,39,188,46,18,39,188,165,212,38,188,11,151,38,188,97,89,38,188,166,27,38,188,218,221,37,188,253,159,37,188,16,98,37,188,18,36,37,188,3,230,36,188,227,167,36,188,179,105,36,188,115,43,36,188,34,237,35,188,192,174,35,188,78,112,35,188,203,49,35,188,56,243,34,188,148,180,34,188,225,117,34,188,28,55,34,188,72,248,33,188,99,185,33,188,109,
122,33,188,104,59,33,188,82,252,32,188,44,189,32,188,246,125,32,188,176,62,32,188,89,255,31,188,243,191,31,188,124,128,31,188,246,64,31,188,95,1,31,188,184,193,30,188,2,130,30,188,59,66,30,188,101,2,30,188,127,194,29,188,137,130,29,188,131,66,29,188,109,2,29,188,71,194,28,188,18,130,28,188,205,65,28,188,120,1,28,188,20,193,27,188,160,128,27,188,29,64,27,188,137,255,26,188,231,190,26,188,53,126,26,188,115,61,26,188,162,252,25,188,193,187,25,188,209,122,25,188,210,57,25,188,195,248,24,188,165,183,24,
188,120,118,24,188,59,53,24,188,239,243,23,188,148,178,23,188,42,113,23,188,176,47,23,188,40,238,22,188,144,172,22,188,234,106,22,188,52,41,22,188,111,231,21,188,155,165,21,188,185,99,21,188,199,33,21,188,198,223,20,188,183,157,20,188,153,91,20,188,108,25,20,188,48,215,19,188,229,148,19,188,140,82,19,188,36,16,19,188,173,205,18,188,40,139,18,188,148,72,18,188,241,5,18,188,64,195,17,188,128,128,17,188,178,61,17,188,213,250,16,188,234,183,16,188,241,116,16,188,233,49,16,188,210,238,15,188,174,171,15,
188,123,104,15,188,58,37,15,188,234,225,14,188,140,158,14,188,33,91,14,188,167,23,14,188,30,212,13,188,136,144,13,188,228,76,13,188,50,9,13,188,113,197,12,188,163,129,12,188,198,61,12,188,220,249,11,188,228,181,11,188,222,113,11,188,202,45,11,188,168,233,10,188,121,165,10,188,60,97,10,188,241,28,10,188,152,216,9,188,50,148,9,188,190,79,9,188,60,11,9,188,173,198,8,188,17,130,8,188,102,61,8,188,175,248,7,188,234,179,7,188,23,111,7,188,55,42,7,188,74,229,6,188,79,160,6,188,71,91,6,188,50,22,6,188,15,
209,5,188,223,139,5,188,162,70,5,188,88,1,5,188,1,188,4,188,156,118,4,188,43,49,4,188,172,235,3,188,33,166,3,188,136,96,3,188,227,26,3,188,48,213,2,188,113,143,2,188,165,73,2,188,204,3,2,188,230,189,1,188,243,119,1,188,244,49,1,188,232,235,0,188,207,165,0,188,170,95,0,188,119,25,0,188,114,166,255,187,219,25,255,187,43,141,254,187,99,0,254,187,129,115,253,187,135,230,252,187,115,89,252,187,71,204,251,187,2,63,251,187,165,177,250,187,47,36,250,187,160,150,249,187,249,8,249,187,57,123,248,187,97,237,
247,187,113,95,247,187,104,209,246,187,72,67,246,187,15,181,245,187,190,38,245,187,85,152,244,187,212,9,244,187,60,123,243,187,139,236,242,187,195,93,242,187,227,206,241,187,235,63,241,187,220,176,240,187,181,33,240,187,119,146,239,187,34,3,239,187,181,115,238,187,49,228,237,187,149,84,237,187,227,196,236,187,25,53,236,187,56,165,235,187,65,21,235,187,50,133,234,187,13,245,233,187,209,100,233,187,126,212,232,187,20,68,232,187,148,179,231,187,254,34,231,187,80,146,230,187,141,1,230,187,179,112,229,
187,195,223,228,187,188,78,228,187,160,189,227,187,109,44,227,187,36,155,226,187,197,9,226,187,81,120,225,187,198,230,224,187,38,85,224,187,112,195,223,187,164,49,223,187,195,159,222,187,204,13,222,187,191,123,221,187,157,233,220,187,102,87,220,187,26,197,219,187,184,50,219,187,65,160,218,187,181,13,218,187,20,123,217,187,94,232,216,187,147,85,216,187,179,194,215,187,190,47,215,187,181,156,214,187,151,9,214,187,100,118,213,187,28,227,212,187,193,79,212,187,80,188,211,187,204,40,211,187,51,149,210,
187,134,1,210,187,196,109,209,187,239,217,208,187,5,70,208,187,8,178,207,187,246,29,207,187,209,137,206,187,152,245,205,187,75,97,205,187,234,204,204,187,118,56,204,187,238,163,203,187,83,15,203,187,164,122,202,187,226,229,201,187,13,81,201,187,36,188,200,187,41,39,200,187,26,146,199,187,248,252,198,187,195,103,198,187,123,210,197,187,32,61,197,187,179,167,196,187,50,18,196,187,160,124,195,187,250,230,194,187,66,81,194,187,119,187,193,187,154,37,193,187,171,143,192,187,169,249,191,187,149,99,191,
187,111,205,190,187,55,55,190,187,237,160,189,187,145,10,189,187,35,116,188,187,163,221,187,187,17,71,187,187,109,176,186,187,184,25,186,187,242,130,185,187,25,236,184,187,48,85,184,187,52,190,183,187,40,39,183,187,10,144,182,187,219,248,181,187,155,97,181,187,74,202,180,187,232,50,180,187,117,155,179,187,241,3,179,187,92,108,178,187,182,212,177,187,0,61,177,187,57,165,176,187,97,13,176,187,121,117,175,187,128,221,174,187,119,69,174,187,94,173,173,187,53,21,173,187,251,124,172,187,177,228,171,187,
87,76,171,187,237,179,170,187,116,27,170,187,234,130,169,187,80,234,168,187,167,81,168,187,238,184,167,187,38,32,167,187,78,135,166,187,102,238,165,187,111,85,165,187,105,188,164,187,83,35,164,187,47,138,163,187,251,240,162,187,183,87,162,187,101,190,161,187,4,37,161,187,148,139,160,187,21,242,159,187,136,88,159,187,236,190,158,187,65,37,158,187,135,139,157,187,191,241,156,187,233,87,156,187,4,190,155,187,17,36,155,187,15,138,154,187,255,239,153,187,226,85,153,187,182,187,152,187,124,33,152,187,52,
135,151,187,223,236,150,187,123,82,150,187,10,184,149,187,139,29,149,187,255,130,148,187,101,232,147,187,189,77,147,187,9,179,146,187,70,24,146,187,119,125,145,187,154,226,144,187,176,71,144,187,185,172,143,187,181,17,143,187,165,118,142,187,135,219,141,187,92,64,141,187,37,165,140,187,225,9,140,187,144,110,139,187,51,211,138,187,201,55,138,187,83,156,137,187,208,0,137,187,65,101,136,187,166,201,135,187,255,45,135,187,75,146,134,187,140,246,133,187,193,90,133,187,233,190,132,187,6,35,132,187,23,135,
131,187,28,235,130,187,22,79,130,187,4,179,129,187,231,22,129,187,190,122,128,187,19,189,127,187,148,132,126,187,255,75,125,187,83,19,124,187,144,218,122,187,184,161,121,187,202,104,120,187,197,47,119,187,171,246,117,187,124,189,116,187,55,132,115,187,220,74,114,187,109,17,113,187,232,215,111,187,79,158,110,187,160,100,109,187,221,42,108,187,6,241,106,187,26,183,105,187,26,125,104,187,5,67,103,187,221,8,102,187,161,206,100,187,81,148,99,187,237,89,98,187,118,31,97,187,235,228,95,187,78,170,94,187,
157,111,93,187,217,52,92,187,2,250,90,187,25,191,89,187,29,132,88,187,15,73,87,187,238,13,86,187,188,210,84,187,119,151,83,187,32,92,82,187,184,32,81,187,62,229,79,187,178,169,78,187,21,110,77,187],"i8",4,y.a+266240);
Q([103,50,76,187,168,246,74,187,215,186,73,187,246,126,72,187,4,67,71,187,2,7,70,187,239,202,68,187,204,142,67,187,152,82,66,187,85,22,65,187,2,218,63,187,158,157,62,187,44,97,61,187,169,36,60,187,24,232,58,187,119,171,57,187,198,110,56,187,7,50,55,187,57,245,53,187,93,184,52,187,113,123,51,187,120,62,50,187,112,1,49,187,89,196,47,187,53,135,46,187,3,74,45,187,195,12,44,187,117,207,42,187,26,146,41,187,177,84,40,187,59,23,39,187,184,217,37,187,40,156,36,187,139,94,35,187,225,32,34,187,43,227,32,187,
104,165,31,187,153,103,30,187,189,41,29,187,214,235,27,187,227,173,26,187,228,111,25,187,217,49,24,187,194,243,22,187,161,181,21,187,115,119,20,187,59,57,19,187,248,250,17,187,170,188,16,187,81,126,15,187,238,63,14,187,128,1,13,187,7,195,11,187,133,132,10,187,248,69,9,187,98,7,8,187,193,200,6,187,23,138,5,187,100,75,4,187,167,12,3,187,224,205,1,187,17,143,0,187,113,160,254,186,174,34,252,186,218,164,249,186,245,38,247,186,254,168,244,186,247,42,242,186,224,172,239,186,184,46,237,186,128,176,234,186,
57,50,232,186,226,179,229,186,125,53,227,186,8,183,224,186,133,56,222,186,243,185,219,186,84,59,217,186,166,188,214,186,236,61,212,186,36,191,209,186,79,64,207,186,109,193,204,186,127,66,202,186,132,195,199,186,126,68,197,186,108,197,194,186,79,70,192,186,38,199,189,186,243,71,187,186,181,200,184,186,109,73,182,186,26,202,179,186,190,74,177,186,89,203,174,186,234,75,172,186,114,204,169,186,242,76,167,186,105,205,164,186,216,77,162,186,63,206,159,186,158,78,157,186,246,206,154,186,70,79,152,186,144,
207,149,186,212,79,147,186,17,208,144,186,72,80,142,186,121,208,139,186,164,80,137,186,203,208,134,186,236,80,132,186,9,209,129,186,66,162,126,186,106,162,121,186,138,162,116,186,163,162,111,186,181,162,106,186,192,162,101,186,198,162,96,186,199,162,91,186,195,162,86,186,187,162,81,186,176,162,76,186,161,162,71,186,144,162,66,186,125,162,61,186,104,162,56,186,83,162,51,186,61,162,46,186,39,162,41,186,18,162,36,186,254,161,31,186,235,161,26,186,219,161,21,186,206,161,16,186,196,161,11,186,190,161,
6,186,188,161,1,186,127,67,249,185,144,67,239,185,174,67,229,185,216,67,219,185,16,68,209,185,88,68,199,185,176,68,189,185,25,69,179,185,148,69,169,185,35,70,159,185,198,70,149,185,127,71,139,185,78,72,129,185,106,146,110,185,105,148,90,185,156,150,70,185,4,153,50,185,164,155,30,185,126,158,10,185,41,67,237,184,210,73,197,184,251,80,157,184,82,177,106,184,192,193,26,184,144,166,149,183,136,65,163,53,106,12,170,55,42,241,36,56,226,218,116,56,171,97,162,56,62,85,202,56,38,72,242,56,47,29,13,57,242,
21,33,57,89,14,53,57,98,6,73,57,10,254,92,57,81,245,112,57,26,118,130,57,87,113,140,57,97,108,150,57,53,103,160,57,211,97,170,57,58,92,180,57,104,86,190,57,92,80,200,57,22,74,210,57,148,67,220,57,213,60,230,57,216,53,240,57,157,46,250,57,145,19,2,58,179,15,7,58,180,11,12,58,147,7,17,58,80,3,22,58,235,254,26,58,98,250,31,58,182,245,36,58,230,240,41,58,241,235,46,58,214,230,51,58,150,225,56,58,48,220,61,58,163,214,66,58,238,208,71,58,18,203,76,58,13,197,81,58,223,190,86,58,136,184,91,58,7,178,96,58,
91,171,101,58,132,164,106,58,130,157,111,58,84,150,116,58,249,142,121,58,112,135,126,58,221,191,129,58,235,59,132,58,226,183,134,58,193,51,137,58,136,175,139,58,55,43,142,58,205,166,144,58,75,34,147,58,176,157,149,58,252,24,152,58,46,148,154,58,71,15,157,58,69,138,159,58,42,5,162,58,243,127,164,58,162,250,166,58,54,117,169,58,175,239,171,58,12,106,174,58,77,228,176,58,114,94,179,58,123,216,181,58,104,82,184,58,55,204,186,58,233,69,189,58,126,191,191,58,245,56,194,58,78,178,196,58,137,43,199,58,166,
164,201,58,164,29,204,58,131,150,206,58,67,15,209,58,227,135,211,58,99,0,214,58,196,120,216,58,4,241,218,58,36,105,221,58,35,225,223,58,0,89,226,58,189,208,228,58,88,72,231,58,209,191,233,58,40,55,236,58,93,174,238,58,111,37,241,58,94,156,243,58,42,19,246,58,211,137,248,58,88,0,251,58,185,118,253,58,246,236,255,58,135,49,1,59,129,108,2,59,104,167,3,59,61,226,4,59,255,28,6,59,174,87,7,59,75,146,8,59,212,204,9,59,73,7,11,59,172,65,12,59,251,123,13,59,54,182,14,59,94,240,15,59,113,42,17,59,113,100,18,
59,92,158,19,59,51,216,20,59,246,17,22,59,164,75,23,59,61,133,24,59,194,190,25,59,50,248,26,59,140,49,28,59,210,106,29,59,2,164,30,59,29,221,31,59,34,22,33,59,17,79,34,59,235,135,35,59,174,192,36,59,92,249,37,59,243,49,39,59,116,106,40,59,222,162,41,59,50,219,42,59,111,19,44,59,149,75,45,59,164,131,46,59,157,187,47,59,125,243,48,59,71,43,50,59,249,98,51,59,147,154,52,59,21,210,53,59,128,9,55,59,211,64,56,59,13,120,57,59,47,175,58,59,57,230,59,59,42,29,61,59,3,84,62,59,194,138,63,59,105,193,64,59,
247,247,65,59,108,46,67,59,199,100,68,59,9,155,69,59,49,209,70,59,64,7,72,59,53,61,73,59,16,115,74,59,209,168,75,59,119,222,76,59,3,20,78,59,117,73,79,59,205,126,80,59,9,180,81,59,43,233,82,59,50,30,84,59,30,83,85,59,238,135,86,59,163,188,87,59,61,241,88,59,187,37,90,59,30,90,91,59,100,142,92,59,143,194,93,59,157,246,94,59,144,42,96,59,102,94,97,59,31,146,98,59,188,197,99,59,60,249,100,59,159,44,102,59,230,95,103,59,15,147,104,59,27,198,105,59,10,249,106,59,219,43,108,59,142,94,109,59,36,145,110,
59,156,195,111,59,246,245,112,59,50,40,114,59,79,90,115,59,79,140,116,59,47,190,117,59,241,239,118,59,149,33,120,59,25,83,121,59,127,132,122,59,197,181,123,59,237,230,124,59,244,23,126,59,221,72,127,59,211,60,128,59,39,213,128,59,108,109,129,59,160,5,130,59,197,157,130,59,217,53,131,59,221,205,131,59,209,101,132,59,181,253,132,59,136,149,133,59,75,45,134,59,254,196,134,59,159,92,135,59,49,244,135,59,177,139,136,59,33,35,137,59,128,186,137,59,206,81,138,59,11,233,138,59,55,128,139,59,83,23,140,59,
93,174,140,59,85,69,141,59,61,220,141,59,19,115,142,59,216,9,143,59,140,160,143,59,46,55,144,59,191,205,144,59,61,100,145,59,171,250,145,59,6,145,146,59,80,39,147,59,136,189,147,59,174,83,148,59,194,233,148,59,196,127,149,59,180,21,150,59,145,171,150,59,93,65,151,59,22,215,151,59,189,108,152,59,81,2,153,59,211,151,153,59,67,45,154,59,160,194,154,59,234,87,155,59,33,237,155,59,70,130,156,59,88,23,157,59,87,172,157,59,67,65,158,59,28,214,158,59,226,106,159,59,149,255,159,59,53,148,160,59,193,40,161,
59,58,189,161,59,160,81,162,59,242,229,162,59,49,122,163,59,92,14,164,59,116,162,164,59,120,54,165,59,104,202,165,59,69,94,166,59,13,242,166,59,194,133,167,59,98,25,168,59,239,172,168,59,104,64,169,59,204,211,169,59,28,103,170,59,88,250,170,59,127,141,171,59,146,32,172,59,145,179,172,59,123,70,173,59,81,217,173,59,18,108,174,59,190,254,174,59,85,145,175,59,216,35,176,59,69,182,176,59,158,72,177,59,226,218,177,59,17,109,178,59,42,255,178,59,47,145,179,59,30,35,180,59,248,180,180,59,188,70,181,59,108,
216,181,59,5,106,182,59,137,251,182,59,248,140,183,59,81,30,184,59,148,175,184,59,193,64,185,59,217,209,185,59,218,98,186,59,198,243,186,59,156,132,187,59,91,21,188,59,5,166,188,59,152,54,189,59,21,199,189,59,124,87,190,59,205,231,190,59,7,120,191,59,42,8,192,59,55,152,192,59,46,40,193,59,13,184,193,59,214,71,194,59,137,215,194,59,36,103,195,59,169,246,195,59,22,134,196,59,109,21,197,59,172,164,197,59,213,51,198,59,230,194,198,59,224,81,199,59,195,224,199,59,142,111,200,59,66,254,200,59,222,140,201,
59,99,27,202,59,209,169,202,59,39,56,203,59,101,198,203,59,139,84,204,59,153,226,204,59,144,112,205,59,110,254,205,59,53,140,206,59,228,25,207,59,122,167,207,59,249,52,208,59,95,194,208,59,173,79,209,59,226,220,209,59,255,105,210,59,4,247,210,59,240,131,211,59,196,16,212,59,127,157,212,59,33,42,213,59,171,182,213,59,27,67,214,59,115,207,214,59,178,91,215,59,216,231,215,59,230,115,216,59,218,255,216,59,180,139,217,59,118,23,218,59,30,163,218,59,174,46,219,59,35,186,219,59,128,69,220,59,195,208,220,
59,236,91,221,59,252,230,221,59,242,113,222,59,206,252,222,59,145,135,223,59,58,18,224,59,201,156,224,59,62,39,225,59,153,177,225,59,218,59,226,59,1,198,226,59,14,80,227,59,1,218,227,59,217,99,228,59,151,237,228,59,59,119,229,59,196,0,230,59,51,138,230,59,135,19,231,59,193,156,231,59,224,37,232,59,228,174,232,59,206,55,233,59,156,192,233,59,80,73,234,59,233,209,234,59,103,90,235,59,202,226,235,59,18,107,236,59,63,243,236,59,80,123,237,59,70,3,238,59,33,139,238,59,225,18,239,59,133,154,239,59,14,34,
240,59,123,169,240,59,205,48,241,59,3,184,241,59,29,63,242,59,27,198,242,59,254,76,243,59,197,211,243,59,112,90,244,59,255,224,244,59,114,103,245,59,201,237,245,59,3,116,246,59,34,250,246,59,36,128,247,59,10,6,248,59,212,139,248,59,129,17,249,59,18,151,249,59,135,28,250,59,222,161,250,59,26,39,251,59,56,172,251,59,58,49,252,59,31,182,252,59,231,58,253,59,146,191,253,59,33,68,254,59,146,200,254,59,230,76,255,59,30,209,255,59,156,42,0,60,154,108,0,60,138,174,0,60,107,240,0,60,62,50,1,60,2,116,1,60,
183,181,1,60,93,247,1,60,244,56,2,60,125,122,2,60,247,187,2,60,98,253,2,60,190,62,3,60,11,128,3,60,73,193,3,60,121,2,4,60,153,67,4,60,170,132,4,60,172,197,4,60,159,6,5,60,131,71,5,60,88,136,5,60,30,201,5,60,213,9,6,60,124,74,6,60,20,139,6,60,157,203,6,60,22,12,7,60,129,76,7,60,220,140,7,60,39,205,7,60,99,13,8,60,144,77,8,60,173,141,8,60,187,205,8,60,186,13,9,60,168,77,9,60,136,141,9,60,87,205,9,60,24,13,10,60,200,76,10,60,105,140,10,60,250,203,10,60,124,11,11,60,237,74,11,60,79,138,11,60,162,201,
11,60,228,8,12,60,23,72,12,60,58,135,12,60,77,198,12,60,80,5,13,60,67,68,13,60,38,131,13,60,249,193,13,60,188,0,14,60,111,63,14,60,18,126,14,60,165,188,14,60,40,251,14,60,155,57,15,60,254,119,15,60,80,182,15,60,147,244,15,60,197,50,16,60,230,112,16,60,248,174,16,60,249,236,16,60,234,42,17,60,203,104,17,60,155,166,17,60,91,228,17,60,10,34,18,60,169,95,18,60,55,157,18,60,181,218,18,60,35,24,19,60,127,85,19,60,204,146,19,60,7,208,19,60,50,13,20,60,77,74,20,60,87,135,20,60,80,196,20,60,56,1,21,60,16,
62,21,60,214,122,21,60,140,183,21,60,50,244,21,60,198,48,22,60,74,109,22,60,188,169,22,60,30,230,22,60,111,34,23,60,174,94,23,60,221,154,23,60,251,214,23,60,8,19,24,60,4,79,24,60,238,138,24,60,200,198,24,60,144,2,25,60,71,62,25,60,238,121,25,60,130,181,25,60,6,241,25,60,121,44,26,60,218,103,26,60,41,163,26,60,104,222,26,60,149,25,27,60,177,84,27,60,187,143,27,60,180,202,27,60,156,5,28,60,114,64,28,60,55,123,28,60,234,181,28,60,139,240,28,60,27,43,29,60,154,101,29,60,7,160,29,60,98,218,29,60,172,20,
30,60,228,78,30,60,10,137,30,60,30,195,30,60,33,253,30,60,18,55,31,60,241,112,31,60,191,170,31,60,122,228,31,60,36,30,32,60,188,87,32,60,66,145,32,60,182,202,32,60,24,4,33,60,104,61,33,60,166,118,33,60,210,175,33,60,236,232,33,60,244,33,34,60,234,90,34,60,206,147,34,60,160,204,34,60,95,5,35,60,12,62,35,60,168,118,35,60,48,175,35,60,167,231,35,60,12,32,36,60,94,88,36,60,158,144,36,60,203,200,36,60,230,0,37,60,239,56,37,60,229,112,37,60,201,168,37,60,155,224,37,60,90,24,38,60,6,80,38,60,160,135,38,
60,40,191,38,60,157,246,38,60,255,45,39,60,79,101,39,60,140,156,39,60,183,211,39,60,207,10,40,60,212,65,40,60,198,120,40,60,166,175,40,60,115,230,40,60,45,29,41,60,213,83,41,60,105,138,41,60,235,192,41,60,90,247,41,60,182,45,42,60,255,99,42,60,54,154,42,60,89,208,42,60,105,6,43,60,103,60,43,60,81,114,43,60,40,168,43,60,236,221,43,60,158,19,44,60,60,73,44,60,199,126,44,60,63,180,44,60,163,233,44,60,245,30,45,60,51,84,45,60,94,137,45,60,118,190,45,60,122,243,45,60,108,40,46,60,74,93,46,60,20,146,46,
60,204,198,46,60,112,251,46,60,0,48,47,60,125,100,47,60,231,152,47,60,61,205,47,60,128,1,48,60,176,53,48,60,203,105,48,60,212,157,48,60,200,209,48,60,170,5,49,60,119,57,49,60,49,109,49,60,215,160,49,60,106,212,49,60,233,7,50,60,84,59,50,60,172,110,50,60,240,161,50,60,32,213,50,60,60,8,51,60,69,59,51,60,57,110,51,60,26,161,51,60,231,211,51,60,160,6,52,60,70,57,52,60,215,107,52,60,84,158,52,60,190,208,52,60,19,3,53,60,85,53,53,60,130,103,53,60,156,153,53,60,161,203,53,60,146,253,53,60,112,47,54,60,
57,97,54,60,238,146,54,60,142,196,54,60,27,246,54,60,147,39,55,60,248,88,55,60,72,138,55,60,131,187,55,60,171,236,55,60,190,29,56,60,189,78,56,60,167,127,56,60,126,176,56,60,64,225,56,60,237,17,57,60,134,66,57,60,11,115,57,60,123,163,57,60,215,211,57,60,30,4,58,60,81,52,58,60,111,100,58,60,121,148,58,60,110,196,58,60,78,244,58,60,26,36,59,60,210,83,59,60,116,131,59,60,3,179,59,60,124,226,59,60,225,17,60,60,49,65,60,60,108,112,60,60,147,159,60,60,165,206,60,60,162,253,60,60,138,44,61,60,93,91,61,60,
28,138,61,60,198,184,61,60,91,231,61,60,219,21,62,60,70,68,62,60,156,114,62,60,221,160,62,60,9,207,62,60,33,253,62,60,35,43,63,60,16,89,63,60,232,134,63,60,172,180,63,60,90,226,63,60,243,15,64,60,119,61,64,60,230,106,64,60,63,152,64,60,132,197,64,60,179,242,64,60,206,31,65,60,211,76,65,60,194,121,65,60,157,166,65,60,98,211,65,60,18,0,66,60,173,44,66,60,50,89,66,60,162,133,66,60,253,177,66,60,66,222,66,60,114,10,67,60,141,54,67,60,146,98,67,60,129,142,67,60,92,186,67,60,32,230,67,60,208,17,68,60,106,
61,68,60,238,104,68,60,93,148,68,60,182,191,68,60,249,234,68,60,39,22,69,60,64,65,69,60,67,108,69,60,48,151,69,60,7,194,69,60,201,236,69,60,117,23,70,60,12,66,70,60,141,108,70,60,248,150,70,60,77,193,70,60,141,235,70,60,182,21,71,60,202,63,71,60,200,105,71,60,177,147,71,60,131,189,71,60,64,231,71,60,230,16,72,60,119,58,72,60,242,99,72,60,87,141,72,60,166,182,72,60,223,223,72,60,2,9,73,60,15,50,73,60,6,91,73,60,231,131,73,60,178,172,73,60,103,213,73,60,6,254,73,60,143,38,74,60,2,79,74,60,94,119,74,
60,165,159,74,60,213,199,74,60,239,239,74,60,243,23,75,60,225,63,75,60,184,103,75,60,122,143,75,60,37,183,75,60,185,222,75,60,56,6,76,60,160,45,76,60,242,84,76,60,46,124,76,60,83,163,76,60,98,202,76,60,91,241,76,60,61,24,77,60,9,63,77,60,190,101,77,60,93,140,77,60,230,178,77,60,88,217,77,60,180,255,77,60,249,37,78,60,40,76,78,60,64,114,78,60,65,152,78,60,45,190,78,60,1,228,78,60,191,9,79,60,103,47,79,60,247,84,79,60,114,122,79,60,213,159,79,60,34,197,79,60,88,234,79,60,120,15,80,60,129,52,80,60,115,
89,80,60,79,126,80,60,20,163,80,60,194,199,80,60,89,236,80,60,218,16,81,60,67,53,81,60,150,89,81,60,210,125,81,60,248,161,81,60,6,198,81,60,254,233,81,60,223,13,82,60,169,49,82,60,92,85,82,60,248,120,82,60,125,156,82,60,236,191,82,60,67,227,82,60,131,6,83,60,173,41,83,60,191,76,83,60,187,111,83,60,159,146,83,60,109,181,83,60,35,216,83,60,194,250,83,60,75,29,84,60,188,63,84,60,22,98,84,60,89,132,84,60,133,166,84,60,154,200,84,60,151,234,84,60,126,12,85,60,77,46,85,60,5,80,85,60,166,113,85,60,48,147,
85,60,162,180,85,60,254,213,85,60,66,247,85,60,110,24,86,60,132,57,86,60,130,90,86,60,105,123,86,60,57,156,86,60,241,188,86,60,146,221,86,60,28,254,86,60,142,30,87,60,233,62,87,60,45,95,87,60,89,127,87,60,110,159,87,60,107,191,87,60,81,223,87,60,32,255,87,60,215,30,88,60,118,62,88,60,254,93,88,60,111,125,88,60,200,156,88,60,10,188,88,60,52,219,88,60,71,250,88,60,66,25,89,60,37,56,89,60,241,86,89,60,165,117,89,60,66,148,89,60,199,178,89,60,53,209,89,60,139,239,89,60,201,13,90,60,240,43,90,60,255,73,
90,60,246,103,90,60,214,133,90,60,158,163,90,60,78,193,90,60,231,222,90,60,103,252,90,60,208,25,91,60,34,55,91,60,91,84,91,60,125,113,91,60,135,142,91,60,122,171,91,60,84,200,91,60,23,229,91,60,194,1,92,60,85,30,92,60,208,58,92,60,51,87,92,60,126,115,92,60,178,143,92,60,206,171,92,60,210,199,92,60,189,227,92,60,145,255,92,60,78,27,93,60,242,54,93,60,126,82,93,60,242,109,93,60,78,137,93,60,147,164,93,60,191,191,93,60,211,218,93,60,208,245,93,60,180,16,94,60,128,43,94,60,52,70,94,60,209,96,94,60,85,
123,94,60,193,149,94,60,21,176,94,60,81,202,94,60,117,228,94,60,128,254,94,60,116,24,95,60,80,50,95,60,19,76,95,60,190,101,95,60,81,127,95,60,204,152,95,60,47,178,95,60,122,203,95,60,172,228,95,60,198,253,95,60,200,22,96,60,178,47,96,60,132,72,96,60,61,97,96,60,222,121,96,60,103,146,96,60,216,170,96,60,48,195,96,60,112,219,96,60,152,243,96,60,167,11,97,60,159,35,97,60,125,59,97,60,68,83,97,60,242,106,97,60,136,130,97,60,6,154,97,60,107,177,97,60,184,200,97,60,236,223,97,60,9,247,97,60,12,14,98,60,
248,36,98,60,203,59,98,60,133,82,98,60,39,105,98,60,177,127,98,60,34,150,98,60,123,172,98,60,187,194,98,60,227,216,98,60,243,238,98,60,234,4,99,60,200,26,99,60,142,48,99,60,60,70,99,60,209,91,99,60,77,113,99,60,177,134,99,60,253,155,99,60,48,177,99,60,74,198,99,60,76,219,99,60,53,240,99,60,6,5,100,60,190,25,100,60,94,46,100,60,229,66,100,60,83,87,100,60,169,107,100,60,230,127,100,60,11,148,100,60,23,168,100,60,10,188,100,60,229,207,100,60,167,227,100,60,80,247,100,60,225,10,101,60,89,30,101,60,185,
49,101,60,0,69,101,60,46,88,101,60,67,107,101,60,64,126,101,60,36,145,101,60,239,163,101,60,162,182,101,60,60,201,101,60,189,219,101,60,37,238,101,60,117,0,102,60,172,18,102,60,202,36,102,60,208,54,102,60,188,72,102,60,144,90,102,60,75,108,102,60,238,125,102,60,119,143,102,60,232,160,102,60,64,178,102,60,127,195,102,60,166,212,102,60,179,229,102,60,168,246,102,60,132,7,103,60,71,24,103,60,241,40,103,60,130,57,103,60,251,73,103,60,91,90,103,60,161,106,103,60,207,122,103,60,229,138,103,60,225,154,103,
60,196,170,103,60,143,186,103,60,64,202,103,60,217,217,103,60,88,233,103,60,191,248,103,60,13,8,104,60,66,23,104,60,94,38,104,60,98,53,104,60,76,68,104,60,29,83,104,60,213,97,104,60,117,112,104,60,251,126,104,60,105,141,104,60,189,155,104,60,249,169,104,60,28,184,104,60,37,198,104,60,22,212,104,60,238,225,104,60,172,239,104,60,82,253,104,60,223,10,105,60,83,24,105,60,173,37,105,60,239,50,105,60,24,64,105,60,39,77,105,60,30,90,105,60,252,102,105,60,192,115,105,60,108,128,105,60,254,140,105,60,120,
153,105,60,216,165,105,60,32,178,105,60,78,190,105,60,100,202,105,60,96,214,105,60,67,226,105,60,13,238,105,60,190,249,105,60,86,5,106,60,213,16,106,60,59,28,106,60,136,39,106,60,187,50,106,60,214,61,106,60,216,72,106,60,192,83,106,60,143,94,106,60,69,105,106,60,227,115,106,60,103,126,106,60,209,136,106,60,35,147,106,60,92,157,106,60,123,167,106,60,130,177,106,60,111,187,106,60,67,197,106,60,254,206,106,60,160,216,106,60,41,226,106,60,153,235,106,60,239,244,106,60,45,254,106,60,81,7,107,60,92,16,
107,60,78,25,107,60,38,34,107,60,230,42,107,60,141,51,107,60,26,60,107,60,142,68,107,60,233,76,107,60,43,85,107,60,83,93,107,60,99,101,107,60,89,109,107,60,54,117,107,60,250,124,107,60,165,132,107,60,55,140,107,60,175,147,107,60,14,155,107,60,84,162,107,60,129,169,107,60,149,176,107,60,144,183,107,60,113,190,107,60,57,197,107,60,232,203,107,60,126,210,107,60,250,216,107,60,94,223,107,60,168,229,107,60,217,235,107,60,241,241,107,60,239,247,107,60,212,253,107,60,161,3,108,60,84,9,108,60,237,14,108,
60,110,20,108,60,213,25,108,60,35,31,108,60,88,36,108,60,116,41,108,60,118,46,108,60,96,51,108,60,48,56,108,60,231,60,108,60,132,65,108,60,9,70,108,60,116,74,108,60,198,78,108,60,255,82,108,60,31,87,108,60,37,91,108,60,18,95,108,60,230,98,108,60,161,102,108,60,66,106,108,60,203,109,108,60,58,113,108,60,144,116,108,60,204,119,108,60,240,122,108,60,250,125,108,60,235,128,108,60,195,131,108,60,129,134,108,60,39,137,108,60,179,139,108,60,38,142,108,60,128,144,108,60,192,146,108,60,232,148,108,60,246,
150,108,60,235,152,108,60,198,154,108,60,137,156,108,60,50,158,108,60,194,159,108,60,57,161,108,60,151,162,108,60,219,163,108,60,6,165,108,60,24,166,108,60,17,167,108,60,241,167,108,60,183,168,108,60,101,169,108,60,249,169,108,60,115,170,108,60,213,170,108,60,29,171,108,60,77,171,108,60,99,171,108,60,96,171,108,60,67,171,108,60,14,171,108,60,191,170,108,60,87,170,108,60,214,169,108,60,60,169,108,60,137,168,108,60,188,167,108,60,214,166,108,60,215,165,108,60,191,164,108,60,142,163,108,60,67,162,108,
60,224,160,108,60,99,159,108,60,205,157,108,60,30,156,108,60,86,154,108,60,116,152,108,60,121,150,108,60,102,148,108,60,57,146,108,60,243,143,108,60,148,141,108,60,27,139,108,60,138,136,108,60,223,133,108,60,27,131,108,60,63,128,108,60,73,125,108,60,57,122,108,60,17,119,108,60,208,115,108,60,117,112,108,60,2,109,108,60,117,105,108,60,207,101,108,60,16,98,108,60,56,94,108,60,71,90,108,60,61,86,108,60,25,82,108,60,221,77,108,60,135,73,108,60,25,69,108,60,145,64,108,60,240,59,108,60,54,55,108,60,99,
50,108,60,119,45,108,60,114,40,108,60,84,35,108,60,29,30,108,60,205,24,108,60,99,19,108,60,225,13,108,60,70,8,108,60,145,2,108,60,196,252,107,60,221,246,107,60,222,240,107,60,197,234,107,60,148,228,107,60,73,222,107,60,229,215,107,60,105,209,107,60,211,202,107,60,36,196,107,60,93,189,107,60,124,182,107,60,130,175,107,60,112,168,107,60,68,161,107,60,0,154,107,60,162,146,107,60,44,139,107,60,156,131,107,60,244,123,107,60,50,116,107,60,88,108,107,60,101,100,107,60,89,92,107,60,52,84,107,60,246,75,107,
60,159,67,107,60,47,59,107,60,166,50,107,60,4,42,107,60,73,33,107,60,118,24,107,60,137,15,107,60,132,6,107,60,102,253,106,60,47,244,106,60,223,234,106,60,118,225,106,60,244,215,106,60,90,206,106,60,166,196,106,60,218,186,106,60,245,176,106,60,247,166,106,60,224,156,106,60,177,146,106,60,104,136,106,60,7,126,106,60,141,115,106,60,250,104,106,60,79,94,106,60,138,83,106,60,173,72,106,60,183,61,106,60,168,50,106,60,129,39,106,60,64,28,106,60,231,16,106,60,117,5,106,60,235,249,105,60,72,238,105,60,140,
226,105,60,183,214,105,60,201,202,105,60,195,190,105,60,164,178,105,60,109,166,105,60,29,154,105,60,180,141,105,60,50,129,105,60,152,116,105,60,229,103,105,60,25,91,105,60,53,78,105,60,56,65,105,60,34,52,105,60,244,38,105,60,173,25,105,60,78,12,105,60,214,254,104,60,69,241,104,60,156,227,104,60,218,213,104,60,0,200,104,60,13,186,104,60,1,172,104,60,221,157,104,60,160,143,104,60,75,129,104,60,221,114,104,60,87,100,104,60,184,85,104,60,1,71,104,60,49,56,104,60,72,41,104,60,71,26,104,60,46,11,104,60,
252,251,103,60,178,236,103,60,79,221,103,60,212,205,103,60,64,190,103,60,148,174,103,60,208,158,103,60,243,142,103,60,253,126,103,60,239,110,103,60,201,94,103,60,138,78,103,60,51,62,103,60,196,45,103,60,60,29,103,60,156,12,103,60,228,251,102,60,19,235,102,60,42,218,102,60,40,201,102,60,15,184,102,60,221,166,102,60,146,149,102,60,47,132,102,60,180,114,102,60,33,97,102,60,118,79,102,60,178,61,102,60,214,43,102,60,226,25,102,60,213,7,102,60,176,245,101,60,115,227,101,60,30,209,101,60,177,190,101,60,
43,172,101,60,142,153,101,60,216,134,101,60,10,116,101,60,36,97,101,60,37,78,101,60,15,59,101,60,224,39,101,60,154,20,101,60,59,1,101,60,196,237,100,60,53,218,100,60,142,198,100,60,207,178,100,60,247,158,100,60,8,139,100,60,1,119,100,60,226,98,100,60,170,78,100,60,91,58,100,60,244,37,100,60,116,17,100,60,221,252,99,60,46,232,99,60,102,211,99,60,135,190,99,60,144,169,99,60,129,148,99,60,90,127,99,60,27,106,99,60,196,84,99,60,86,63,99,60,207,41,99,60,49,20,99,60,123,254,98,60,172,232,98,60,198,210,
98,60,201,188,98,60,179,166,98,60,134,144,98,60,64,122,98,60,227,99,98,60,111,77,98,60,226,54,98,60,62,32,98,60,130,9,98,60,174,242,97,60,194,219,97,60,191,196,97,60,164,173,97,60,114,150,97,60,40,127,97,60,198,103,97,60,76,80,97,60,187,56,97,60,18,33,97,60,81,9,97,60,121,241,96,60,138,217,96,60,130,193,96,60,100,169,96,60,45,145,96,60,223,120,96,60,122,96,96,60,253,71,96,60,104,47,96,60,188,22,96,60,248,253,95,60,29,229,95,60,43,204,95,60,33,179,95,60,255,153,95,60,198,128,95,60,118,103,95,60,14,
78,95,60,143,52,95,60,249,26,95,60,75,1,95,60,134,231,94,60,169,205,94,60,181,179,94,60,170,153,94,60,135,127,94,60,77,101,94,60,252,74,94,60,148,48,94,60,20,22,94,60,125,251,93,60,206,224,93,60,9,198,93,60,44,171,93,60,56,144,93,60,45,117,93,60,11,90,93,60,209,62,93,60,129,35,93,60,25,8,93,60,154,236,92,60,4,209,92,60,87,181,92,60,147,153,92,60,183,125,92,60,197,97,92,60,188,69,92,60,155,41,92,60,100,13,92,60,21,241,91,60,176,212,91,60,51,184,91,60,160,155,91,60,245,126,91,60,52,98,91,60,91,69,91,
60,108,40,91,60,102,11,91,60,73,238,90,60,21,209,90,60,202,179,90,60,104,150,90,60,240,120,90,60,97,91,90,60,186,61,90,60,253,31,90,60,42,2,90,60,63,228,89,60,62,198,89,60,38,168,89,60,247,137,89,60,177,107,89,60,85,77,89,60,226,46,89,60,89,16,89,60,184,241,88,60,1,211,88,60,52,180,88,60,80,149,88,60,85,118,88,60,68,87,88,60,28,56,88,60,221,24,88,60,136,249,87,60,28,218,87,60,154,186,87,60,2,155,87,60,83,123,87,60,141,91,87,60,177,59,87,60,190,27,87,60,181,251,86,60,150,219,86,60,96,187,86,60,20,
155,86,60,177,122,86,60,56,90,86,60,169,57,86,60,4,25,86,60,72,248,85,60,117,215,85,60,141,182,85,60,142,149,85,60,121,116,85,60,78,83,85,60,12,50,85,60,180,16,85,60,70,239,84,60,194,205,84,60,40,172,84,60,120,138,84,60,177,104,84,60,212,70,84,60,225,36,84,60,216,2,84,60,185,224,83,60,132,190,83,60,57,156,83,60,216,121,83,60,97,87,83,60,212,52,83,60,49,18,83,60,120,239,82,60,168,204,82,60,195,169,82,60,201,134,82,60,184,99,82,60,145,64,82,60,84,29,82,60,2,250,81,60,154,214,81,60,28,179,81,60,136,
143,81,60,222,107,81,60,30,72,81,60,73,36,81,60,94,0,81,60,93,220,80,60,71,184,80,60,27,148,80,60,217,111,80,60,129,75,80,60,20,39,80,60,145,2,80,60,249,221,79,60,75,185,79,60,135,148,79,60,174,111,79,60,192,74,79,60,187,37,79,60,162,0,79,60,114,219,78,60,46,182,78,60,211,144,78,60,100,107,78,60,223,69,78,60,68,32,78,60,148,250,77,60,207,212,77,60,244,174,77,60,4,137,77,60,255,98,77,60,228,60,77,60,180,22,77,60,111,240,76,60,21,202,76,60,165,163,76,60,32,125,76,60,134,86,76,60,214,47,76,60,18,9,76,
60,56,226,75,60,73,187,75,60,69,148,75,60,44,109,75,60,254,69,75,60,187,30,75,60,98,247,74,60,245,207,74,60,115,168,74,60,219,128,74,60,47,89,74,60,109,49,74,60,151,9,74,60,172,225,73,60,172,185,73,60,151,145,73,60,109,105,73,60,46,65,73,60,218,24,73,60,114,240,72,60,245,199,72,60,99,159,72,60,188,118,72,60,0,78,72,60,48,37,72,60,75,252,71,60,81,211,71,60,67,170,71,60,32,129,71,60,232,87,71,60,155,46,71,60,59,5,71,60,197,219,70,60,59,178,70,60,156,136,70,60,233,94,70,60,33,53,70,60,69,11,70,60,84,
225,69,60,79,183,69,60,54,141,69,60,8,99,69,60,197,56,69,60,110,14,69,60,3,228,68,60,132,185,68,60,240,142,68,60,71,100,68,60,139,57,68,60,186,14,68,60,213,227,67,60,220,184,67,60,207,141,67,60,173,98,67,60,119,55,67,60,45,12,67,60,207,224,66,60,93,181,66,60,214,137,66,60,60,94,66,60,141,50,66,60,203,6,66,60,244,218,65,60,10,175,65,60,11,131,65,60,249,86,65,60,210,42,65,60,152,254,64,60,74,210,64,60,231,165,64,60,113,121,64,60,231,76,64,60,74,32,64,60,152,243,63,60,211,198,63,60,250,153,63,60,13,
109,63,60,12,64,63,60,248,18,63,60,208,229,62,60,148,184,62,60,69,139,62,60,226,93,62,60,107,48,62,60,225,2,62,60,67,213,61,60,146,167,61,60,205,121,61,60,245,75,61,60,9,30,61,60,10,240,60,60,247,193,60,60,209,147,60,60,151,101,60,60,74,55,60,60,234,8,60,60,118,218,59,60,239,171,59,60,85,125,59,60,167,78,59,60,230,31,59,60,18,241,58,60,43,194,58,60,48,147,58,60,35,100,58,60,2,53,58,60,206,5,58,60,134,214,57,60,44,167,57,60,191,119,57,60,62,72,57,60,171,24,57,60,4,233,56,60,75,185,56,60,126,137,56,
60,159,89,56,60,172,41,56,60,167,249,55,60,143,201,55,60,100,153,55,60,38,105,55,60,213,56,55,60,114,8,55,60,251,215,54,60,114,167,54,60,214,118,54,60,40,70,54,60,102,21,54,60,146,228,53,60,172,179,53,60,179,130,53,60,167,81,53,60,136,32,53,60,87,239,52,60,20,190,52,60,189,140,52,60,85,91,52,60,218,41,52,60,76,248,51,60,172,198,51,60,249,148,51,60,52,99,51,60,93,49,51,60,116,255,50,60,120,205,50,60,105,155,50,60,73,105,50,60,22,55,50,60,209,4,50,60,121,210,49,60,16,160,49,60,148,109,49,60,6,59,49,
60,102,8,49,60,180,213,48,60,240,162,48,60,25,112,48,60,49,61,48,60,55,10,48,60,42,215,47,60,12,164,47,60,220,112,47,60,153,61,47,60,69,10,47,60,223,214,46,60,103,163,46,60,221,111,46,60,65,60,46,60,148,8,46,60,213,212,45,60,4,161,45,60,33,109,45,60,44,57,45,60,38,5,45,60,14,209,44,60,229,156,44,60,170,104,44,60,93,52,44,60,255,255,43,60,143,203,43,60,13,151,43,60,122,98,43,60,214,45,43,60,32,249,42,60,89,196,42,60,128,143,42,60,150,90,42,60,154,37,42,60,142,240,41,60,111,187,41,60,64,134,41,60,255,
80,41,60,173,27,41,60,74,230,40,60,213,176,40,60,80,123,40,60,185,69,40,60,17,16,40,60,88,218,39,60,141,164,39,60,178,110,39,60,198,56,39,60,200,2,39,60,186,204,38,60,155,150,38,60,106,96,38,60,41,42,38,60,215,243,37,60,116,189,37,60,0,135,37,60,123,80,37,60,230,25,37,60,63,227,36,60,136,172,36,60,192,117,36,60,232,62,36,60,254,7,36,60,4,209,35,60,250,153,35,60,223,98,35,60,179,43,35,60,118,244,34,60,41,189,34,60,204,133,34,60,94,78,34,60,223,22,34,60,80,223,33,60,177,167,33,60,1,112,33,60,65,56,
33,60,112,0,33,60,143,200,32,60,158,144,32,60,157,88,32,60,139,32,32,60,105,232,31,60,55,176,31,60,244,119,31,60,162,63,31,60,63,7,31,60,204,206,30,60,73,150,30,60,182,93,30,60,19,37,30,60,96,236,29,60,157,179,29,60,202,122,29,60,231,65,29,60,244,8,29,60,241,207,28,60,222,150,28,60,188,93,28,60,137,36,28,60,71,235,27,60,245,177,27,60,147,120,27,60,34,63,27,60,161,5,27,60,16,204,26,60,111,146,26,60,191,88,26,60,255,30,26,60,48,229,25,60,81,171,25,60,99,113,25,60,101,55,25,60,88,253,24,60,59,195,24,
60,15,137,24,60,211,78,24,60,136,20,24,60,45,218,23,60,196,159,23,60,75,101,23,60,194,42,23,60,43,240,22,60,132,181,22,60,206,122,22,60,9,64,22,60,52,5,22,60,81,202,21,60,94,143,21,60,93,84,21,60,76,25,21,60,44,222,20,60,254,162,20,60,192,103,20,60,115,44,20,60,24,241,19,60,173,181,19,60,52,122,19,60,172,62,19,60,21,3,19,60,111,199,18,60,186,139,18,60,247,79,18,60,37,20,18,60,68,216,17,60,85,156,17,60,87,96,17,60,74,36,17,60,47,232,16,60,5,172,16,60,205,111,16,60,134,51,16,60,48,247,15,60,205,186,
15,60,90,126,15,60,218,65,15,60,74,5,15,60,173,200,14,60,1,140,14,60,71,79,14,60,127,18,14,60,168,213,13,60,196,152,13,60,209,91,13,60,207,30,13,60,192,225,12,60,162,164,12,60,119,103,12,60,61,42,12,60,246,236,11,60,160,175,11,60,60,114,11,60,203,52,11,60,75,247,10,60,189,185,10,60,34,124,10,60,121,62,10,60,194,0,10,60,253,194,9,60,42,133,9,60,74,71,9,60,91,9,9,60,96,203,8,60,86,141,8,60,63,79,8,60,26,17,8,60,232,210,7,60,168,148,7,60,90,86,7,60,255,23,7,60,151,217,6,60,33,155,6,60,157,92,6,60,12,
30,6,60,110,223,5,60,194,160,5,60,10,98,5,60,67,35,5,60,112,228,4,60,143,165,4,60,161,102,4,60,166,39,4,60,158,232,3,60,136,169,3,60,102,106,3,60,54,43,3,60,249,235,2,60,176,172,2,60,89,109,2,60,245,45,2,60,132,238,1,60,7,175,1,60,124,111,1,60,229,47,1,60,65,240,0,60,144,176,0,60,210,112,0,60,7,49,0,60,96,226,255,59,152,98,255,59,182,226,254,59,187,98,254,59,167,226,253,59,122,98,253,59,52,226,252,59,213,97,252,59,92,225,251,59,203,96,251,59,32,224,250,59,93,95,250,59,129,222,249,59,140,93,249,59,
127,220,248,59,89,91,248,59,26,218,247,59,195,88,247,59,83,215,246,59,203,85,246,59,42,212,245,59,113,82,245,59,160,208,244,59,183,78,244,59,182,204,243,59,156,74,243,59,106,200,242,59,33,70,242,59,191,195,241,59,70,65,241,59,181,190,240,59,12,60,240,59,75,185,239,59,115,54,239,59,131,179,238,59,123,48,238,59,92,173,237,59,38,42,237,59,216,166,236,59,115,35,236,59,247,159,235,59,99,28,235,59,184,152,234,59,247,20,234,59,30,145,233,59,46,13,233,59,39,137,232,59,10,5,232,59,213,128,231,59,138,252,230,
59,40,120,230,59,176,243,229,59,33,111,229,59,123,234,228,59,191,101,228,59,236,224,227,59,3,92,227,59,4,215,226,59,239,81,226,59,195,204,225,59,129,71,225,59,42,194,224,59,188,60,224,59,56,183,223,59,158,49,223,59,239,171,222,59,41,38,222,59,78,160,221,59,93,26,221,59,87,148,220,59,59,14,220,59,9,136,219,59,194,1,219,59,102,123,218,59,244,244,217,59,109,110,217,59,209,231,216,59,32,97,216,59,89,218,215,59,126,83,215,59,141,204,214,59,136,69,214,59,109,190,213,59,62,55,213,59,250,175,212,59,161,40,
212,59,52,161,211,59,178,25,211,59,28,146,210,59,113,10,210,59,177,130,209,59,222,250,208,59,246,114,208,59,249,234,207,59,233,98,207,59,196,218,206,59,140,82,206,59,63,202,205,59,222,65,205,59,106,185,204,59,225,48,204,59,69,168,203,59,149,31,203,59,209,150,202,59,250,13,202,59,15,133,201,59,17,252,200,59,255,114,200,59,218,233,199,59,162,96,199,59,86,215,198,59,247,77,198,59,133,196,197,59,0,59,197,59,104,177,196,59,189,39,196,59,254,157,195,59,46,20,195,59,74,138,194,59,83,0,194,59,74,118,193,
59,46,236,192,59,0,98,192,59,191,215,191,59,108,77,191,59,6,195,190,59,142,56,190,59,4,174,189,59,103,35,189,59,184,152,188,59,248,13,188,59,37,131,187,59,64,248,186,59,73,109,186,59,65,226,185,59,38,87,185,59,250,203,184,59,188,64,184,59,109,181,183,59,12,42,183,59,153,158,182,59,21,19,182,59,128,135,181,59,217,251,180,59,33,112,180,59,88,228,179,59,125,88,179,59,146,204,178,59,149,64,178,59,136,180,177,59,105,40,177,59,58,156,176,59,250,15,176,59,169,131,175,59,72,247,174,59,213,106,174,59,83,222,
173,59,191,81,173,59,28,197,172,59,104,56,172,59,163,171,171,59,207,30,171,59,234,145,170,59,245,4,170,59,240,119,169,59,219,234,168,59,182,93,168,59,129,208,167,59,60,67,167,59,231,181,166,59,131,40,166,59,15,155,165,59,139,13,165,59,248,127,164,59,85,242,163,59,163,100,163,59,225,214,162,59,16,73,162,59,48,187,161,59,65,45,161,59,67,159,160,59,53,17,160,59,25,131,159,59,237,244,158,59,179,102,158,59,105,216,157,59,17,74,157,59,171,187,156,59,53,45,156,59,177,158,155,59,31,16,155,59,126,129,154,
59,207,242,153,59,17,100,153,59,69,213,152,59,107,70,152,59,130,183,151,59,140,40,151,59,135,153,150,59,116,10,150,59,84,123,149,59,37,236,148,59,233,92,148,59,159,205,147,59,71,62,147,59,226,174,146,59,111,31,146,59,239,143,145,59,97,0,145,59,198,112,144,59,29,225,143,59,103,81,143,59,164,193,142,59,212,49,142,59,247,161,141,59,12,18,141,59,21,130,140,59,17,242,139,59,0,98,139,59,226,209,138,59,184,65,138,59,128,177,137,59,60,33,137,59,236,144,136,59,143,0,136,59,38,112,135,59,176,223,134,59,46,
79,134,59,160,190,133,59,6,46,133,59,95,157,132,59,173,12,132,59,238,123,131,59,36,235,130,59,77,90,130,59,107,201,129,59,125,56,129,59,132,167,128,59,126,22,128,59,219,10,127,59,163,232,125,59,83,198,124,59,237,163,123,59,112,129,122,59,220,94,121,59,50,60,120,59,114,25,119,59,156,246,117,59,175,211,116,59,173,176,115,59,149,141,114,59,103,106,113,59,36,71,112,59,203,35,111,59,93,0,110,59,217,220,108,59,65,185,107,59,148,149,106,59,209,113,105,59,251,77,104,59,15,42,103,59,15,6,102,59,251,225,100,
59,211,189,99,59,150,153,98,59,70,117,97,59,225,80,96,59,105,44,95,59,222,7,94,59,63,227,92,59,140,190,91,59,198,153,90,59,238,116,89,59,2,80,88,59,3,43,87,59,242,5,86,59,206,224,84,59,151,187,83,59,78,150,82,59,243,112,81,59,134,75,80,59,7,38,79,59,118,0,78,59,211,218,76,59,30,181,75,59,88,143,74,59,129,105,73,59,152,67,72,59,159,29,71,59,148,247,69,59,120,209,68,59,76,171,67,59,15,133,66,59,193,94,65,59,99,56,64,59,245,17,63,59,118,235,61,59,232,196,60,59,73,158,59,59,155,119,58,59,221,80,57,59,
16,42,56,59,51,3,55,59,71,220,53,59,76,181,52,59,65,142,51,59,40,103,50,59,0,64,49,59,201,24,48,59,132,241,46,59,49,202,45,59,207,162,44,59,94,123,43,59,224,83,42,59,84,44,41,59,186,4,40,59,19,221,38,59,93,181,37,59,155,141,36,59,203,101,35,59,238,61,34,59,4,22,33,59,12,238,31,59,8,198,30,59,248,157,29,59,219,117,28,59,177,77,27,59,123,37,26,59,57,253,24,59,234,212,23,59,144,172,22,59,42,132,21,59,184,91,20,59,59,51,19,59,178,10,18,59,30,226,16,59,127,185,15,59,212,144,14,59,31,104,13,59,95,63,12,
59,148,22,11,59,190,237,9,59,222,196,8,59,244,155,7,59,0,115,6,59,1,74,5,59,248,32,4,59,230,247,2,59,202,206,1,59,164,165,0,59,234,248,254,58,120,166,252,58,245,83,250,58,95,1,248,58,183,174,245,58,254,91,243,58,51,9,241,58,86,182,238,58,105,99,236,58,107,16,234,58,93,189,231,58,63,106,229,58,16,23,227,58,210,195,224,58,132,112,222,58,39,29,220,58,187,201,217,58,65,118,215,58,184,34,213,58,32,207,210,58,123,123,208,58,200,39,206,58,7,212,203,58,58,128,201,58,95,44,199,58,119,216,196,58,131,132,194,
58,131,48,192,58,119,220,189,58,95,136,187,58,59,52,185,58,13,224,182,58,211,139,180,58,142,55,178,58,63,227,175,58,230,142,173,58,131,58,171,58,22,230,168,58,159,145,166,58,32,61,164,58],"i8",4,y.a+276480);
Q([151,232,161,58,5,148,159,58,107,63,157,58,201,234,154,58,30,150,152,58,108,65,150,58,178,236,147,58,241,151,145,58,41,67,143,58,91,238,140,58,133,153,138,58,170,68,136,58,200,239,133,58,225,154,131,58,244,69,129,58,3,226,125,58,20,56,121,58,28,142,116,58,27,228,111,58,17,58,107,58,255,143,102,58,229,229,97,58,197,59,93,58,157,145,88,58,112,231,83,58,61,61,79,58,5,147,74,58,200,232,69,58,135,62,65,58,67,148,60,58,251,233,55,58,177,63,51,58,101,149,46,58,23,235,41,58,200,64,37,58,120,150,32,58,40,
236,27,58,216,65,23,58,138,151,18,58,60,237,13,58,241,66,9,58,167,152,4,58,194,220,255,57,59,136,246,57,189,51,237,57,71,223,227,57,219,138,218,57,121,54,209,57,35,226,199,57,217,141,190,57,158,57,181,57,112,229,171,57,82,145,162,57,69,61,153,57,74,233,143,57,97,149,134,57,22,131,122,57,148,219,103,57,61,52,85,57,19,141,66,57,25,230,47,57,79,63,29,57,184,152,10,57,171,228,239,56,85,152,202,56,113,76,165,56,3,1,128,56,28,108,53,56,91,174,213,55,12,13,1,55,113,62,41,183,209,194,233,183,25,114,63,184,
212,0,133,184,5,72,170,184,157,142,207,184,152,212,244,184,249,12,13,185,83,175,31,185,88,81,50,185,7,243,68,185,93,148,87,185,89,53,106,185,248,213,124,185,28,187,135,185,12,11,145,185,203,90,154,185,88,170,163,185,177,249,172,185,214,72,182,185,198,151,191,185,128,230,200,185,3,53,210,185,77,131,219,185,95,209,228,185,54,31,238,185,210,108,247,185,25,93,0,186,171,3,5,186,29,170,9,186,112,80,14,186,163,246,18,186,181,156,23,186,167,66,28,186,119,232,32,186,36,142,37,186,176,51,42,186,24,217,46,186,
93,126,51,186,126,35,56,186,123,200,60,186,83,109,65,186,5,18,70,186,145,182,74,186,247,90,79,186,54,255,83,186,77,163,88,186,61,71,93,186,4,235,97,186,163,142,102,186,24,50,107,186,99,213,111,186,131,120,116,186,121,27,121,186,68,190,125,186,113,48,129,186,171,129,131,186,205,210,133,186,218,35,136,186,207,116,138,186,173,197,140,186,116,22,143,186,35,103,145,186,186,183,147,186,57,8,150,186,160,88,152,186,238,168,154,186,36,249,156,186,64,73,159,186,67,153,161,186,44,233,163,186,252,56,166,186,
177,136,168,186,76,216,170,186,205,39,173,186,50,119,175,186,125,198,177,186,172,21,180,186,192,100,182,186,184,179,184,186,148,2,187,186,84,81,189,186,247,159,191,186,125,238,193,186,231,60,196,186,51,139,198,186,98,217,200,186,115,39,203,186,102,117,205,186,58,195,207,186,241,16,210,186,136,94,212,186,1,172,214,186,90,249,216,186,148,70,219,186,174,147,221,186,169,224,223,186,131,45,226,186,61,122,228,186,214,198,230,186,78,19,233,186,165,95,235,186,219,171,237,186,239,247,239,186,225,67,242,186,
177,143,244,186,95,219,246,186,234,38,249,186,82,114,251,186,151,189,253,186,93,4,0,187,220,41,1,187,73,79,2,187,164,116,3,187,237,153,4,187,36,191,5,187,73,228,6,187,91,9,8,187,90,46,9,187,70,83,10,187,32,120,11,187,231,156,12,187,154,193,13,187,59,230,14,187,200,10,16,187,65,47,17,187,167,83,18,187,249,119,19,187,56,156,20,187,98,192,21,187,120,228,22,187,123,8,24,187,104,44,25,187,66,80,26,187,7,116,27,187,183,151,28,187,82,187,29,187,217,222,30,187,74,2,32,187,166,37,33,187,237,72,34,187,31,108,
35,187,59,143,36,187,65,178,37,187,50,213,38,187,13,248,39,187,210,26,41,187,128,61,42,187,25,96,43,187,155,130,44,187,7,165,45,187,92,199,46,187,154,233,47,187,193,11,49,187,210,45,50,187,203,79,51,187,174,113,52,187,121,147,53,187,44,181,54,187,200,214,55,187,77,248,56,187,185,25,58,187,14,59,59,187,74,92,60,187,111,125,61,187,123,158,62,187,111,191,63,187,74,224,64,187,13,1,66,187,183,33,67,187,72,66,68,187,192,98,69,187,32,131,70,187,101,163,71,187,146,195,72,187,165,227,73,187,159,3,75,187,126,
35,76,187,68,67,77,187,241,98,78,187,131,130,79,187,251,161,80,187,88,193,81,187,156,224,82,187,196,255,83,187,211,30,85,187,198,61,86,187,158,92,87,187,92,123,88,187,254,153,89,187,134,184,90,187,242,214,91,187,66,245,92,187,119,19,94,187,144,49,95,187,142,79,96,187,111,109,97,187,52,139,98,187,222,168,99,187,107,198,100,187,219,227,101,187,47,1,103,187,103,30,104,187,130,59,105,187,128,88,106,187,97,117,107,187,36,146,108,187,203,174,109,187,84,203,110,187,192,231,111,187,14,4,113,187,63,32,114,
187,82,60,115,187,71,88,116,187,30,116,117,187,215,143,118,187,113,171,119,187,237,198,120,187,75,226,121,187,138,253,122,187,170,24,124,187,172,51,125,187,142,78,126,187,82,105,127,187,251,65,128,187,62,207,128,187,112,92,129,187,147,233,129,187,167,118,130,187,170,3,131,187,157,144,131,187,129,29,132,187,84,170,132,187,23,55,133,187,202,195,133,187,109,80,134,187,0,221,134,187,130,105,135,187,244,245,135,187,85,130,136,187,166,14,137,187,230,154,137,187,22,39,138,187,53,179,138,187,67,63,139,187,
64,203,139,187,45,87,140,187,8,227,140,187,211,110,141,187,141,250,141,187,53,134,142,187,205,17,143,187,83,157,143,187,200,40,144,187,43,180,144,187,125,63,145,187,190,202,145,187,238,85,146,187,11,225,146,187,24,108,147,187,18,247,147,187,251,129,148,187,210,12,149,187,151,151,149,187,75,34,150,187,236,172,150,187,123,55,151,187,249,193,151,187,100,76,152,187,189,214,152,187,4,97,153,187,56,235,153,187,91,117,154,187,106,255,154,187,104,137,155,187,83,19,156,187,43,157,156,187,241,38,157,187,164,
176,157,187,68,58,158,187,210,195,158,187,76,77,159,187,180,214,159,187,9,96,160,187,75,233,160,187,121,114,161,187,149,251,161,187,158,132,162,187,147,13,163,187,117,150,163,187,67,31,164,187,254,167,164,187,166,48,165,187,58,185,165,187,187,65,166,187,40,202,166,187,129,82,167,187,199,218,167,187,249,98,168,187,23,235,168,187,33,115,169,187,23,251,169,187,249,130,170,187,199,10,171,187,129,146,171,187,38,26,172,187,184,161,172,187,53,41,173,187,158,176,173,187,242,55,174,187,50,191,174,187,94,70,
175,187,117,205,175,187,119,84,176,187,101,219,176,187,62,98,177,187,2,233,177,187,177,111,178,187,75,246,178,187,209,124,179,187,65,3,180,187,157,137,180,187,227,15,181,187,20,150,181,187,48,28,182,187,54,162,182,187,40,40,183,187,3,174,183,187,202,51,184,187,123,185,184,187,22,63,185,187,156,196,185,187,12,74,186,187,102,207,186,187,171,84,187,187,218,217,187,187,243,94,188,187,246,227,188,187,227,104,189,187,186,237,189,187,123,114,190,187,38,247,190,187,186,123,191,187,56,0,192,187,160,132,192,
187,242,8,193,187,45,141,193,187,82,17,194,187,96,149,194,187,88,25,195,187,57,157,195,187,3,33,196,187,183,164,196,187,84,40,197,187,218,171,197,187,73,47,198,187,161,178,198,187,226,53,199,187,12,185,199,187,31,60,200,187,27,191,200,187,255,65,201,187,205,196,201,187,131,71,202,187,33,202,202,187,169,76,203,187,24,207,203,187,112,81,204,187,177,211,204,187,218,85,205,187,235,215,205,187,229,89,206,187,198,219,206,187,144,93,207,187,66,223,207,187,220,96,208,187,94,226,208,187,200,99,209,187,26,
229,209,187,84,102,210,187,117,231,210,187,126,104,211,187,111,233,211,187,72,106,212,187,8,235,212,187,175,107,213,187,62,236,213,187,181,108,214,187,18,237,214,187,88,109,215,187,132,237,215,187,151,109,216,187,146,237,216,187,116,109,217,187,61,237,217,187,237,108,218,187,132,236,218,187,2,108,219,187,102,235,219,187,178,106,220,187,228,233,220,187,253,104,221,187,252,231,221,187,226,102,222,187,175,229,222,187,98,100,223,187,251,226,223,187,123,97,224,187,225,223,224,187,46,94,225,187,97,220,
225,187,122,90,226,187,121,216,226,187,94,86,227,187,41,212,227,187,218,81,228,187,113,207,228,187,238,76,229,187,81,202,229,187,153,71,230,187,200,196,230,187,220,65,231,187,213,190,231,187,180,59,232,187,121,184,232,187,35,53,233,187,179,177,233,187,39,46,234,187,130,170,234,187,193,38,235,187,230,162,235,187,240,30,236,187,223,154,236,187,179,22,237,187,108,146,237,187,10,14,238,187,141,137,238,187,245,4,239,187,65,128,239,187,115,251,239,187,137,118,240,187,132,241,240,187,99,108,241,187,39,231,
241,187,208,97,242,187,93,220,242,187,206,86,243,187,36,209,243,187,94,75,244,187,125,197,244,187,127,63,245,187,102,185,245,187,49,51,246,187,224,172,246,187,115,38,247,187,234,159,247,187,69,25,248,187,132,146,248,187,166,11,249,187,173,132,249,187,151,253,249,187,101,118,250,187,22,239,250,187,172,103,251,187,36,224,251,187,128,88,252,187,192,208,252,187,227,72,253,187,233,192,253,187,211,56,254,187,160,176,254,187,80,40,255,187,227,159,255,187,173,11,0,188,89,71,0,188,248,130,0,188,135,190,0,
188,8,250,0,188,123,53,1,188,223,112,1,188,52,172,1,188,123,231,1,188,179,34,2,188,220,93,2,188,247,152,2,188,3,212,2,188,0,15,3,188,239,73,3,188,206,132,3,188,159,191,3,188,97,250,3,188,20,53,4,188,184,111,4,188,77,170,4,188,212,228,4,188,75,31,5,188,179,89,5,188,12,148,5,188,87,206,5,188,146,8,6,188,190,66,6,188,219,124,6,188,233,182,6,188,232,240,6,188,215,42,7,188,183,100,7,188,136,158,7,188,74,216,7,188,253,17,8,188,160,75,8,188,52,133,8,188,185,190,8,188,46,248,8,188,148,49,9,188,234,106,9,
188,49,164,9,188,105,221,9,188,145,22,10,188,170,79,10,188,179,136,10,188,172,193,10,188,150,250,10,188,112,51,11,188,59,108,11,188,246,164,11,188,162,221,11,188,61,22,12,188,201,78,12,188,70,135,12,188,178,191,12,188,15,248,12,188,92,48,13,188,153,104,13,188,198,160,13,188,228,216,13,188,241,16,14,188,239,72,14,188,221,128,14,188,186,184,14,188,136,240,14,188,70,40,15,188,244,95,15,188,145,151,15,188,31,207,15,188,157,6,16,188,10,62,16,188,103,117,16,188,180,172,16,188,241,227,16,188,30,27,17,188,
59,82,17,188,71,137,17,188,67,192,17,188,47,247,17,188,10,46,18,188,213,100,18,188,144,155,18,188,58,210,18,188,212,8,19,188,94,63,19,188,215,117,19,188,64,172,19,188,152,226,19,188,224,24,20,188,23,79,20,188,61,133,20,188,83,187,20,188,89,241,20,188,78,39,21,188,50,93,21,188,5,147,21,188,200,200,21,188,122,254,21,188,28,52,22,188,173,105,22,188,44,159,22,188,156,212,22,188,250,9,23,188,71,63,23,188,132,116,23,188,176,169,23,188,203,222,23,188,213,19,24,188,206,72,24,188,182,125,24,188,141,178,24,
188,83,231,24,188,8,28,25,188,172,80,25,188,63,133,25,188,193,185,25,188,50,238,25,188,146,34,26,188,224,86,26,188,30,139,26,188,74,191,26,188,101,243,26,188,111,39,27,188,103,91,27,188,79,143,27,188,37,195,27,188,233,246,27,188,157,42,28,188,63,94,28,188,207,145,28,188,78,197,28,188,188,248,28,188,25,44,29,188,100,95,29,188,157,146,29,188,197,197,29,188,219,248,29,188,224,43,30,188,212,94,30,188,182,145,30,188,134,196,30,188,68,247,30,188,241,41,31,188,141,92,31,188,22,143,31,188,142,193,31,188,
244,243,31,188,73,38,32,188,140,88,32,188,189,138,32,188,220,188,32,188,233,238,32,188,229,32,33,188,206,82,33,188,166,132,33,188,108,182,33,188,32,232,33,188,194,25,34,188,82,75,34,188,208,124,34,188,61,174,34,188,151,223,34,188,223,16,35,188,21,66,35,188,57,115,35,188,75,164,35,188,75,213,35,188,56,6,36,188,20,55,36,188,221,103,36,188,148,152,36,188,57,201,36,188,204,249,36,188,76,42,37,188,187,90,37,188,23,139,37,188,96,187,37,188,152,235,37,188,189,27,38,188,207,75,38,188,208,123,38,188,189,171,
38,188,153,219,38,188,98,11,39,188,24,59,39,188,189,106,39,188,78,154,39,188,205,201,39,188,58,249,39,188,148,40,40,188,219,87,40,188,16,135,40,188,50,182,40,188,66,229,40,188,63,20,41,188,42,67,41,188,1,114,41,188,198,160,41,188,121,207,41,188,24,254,41,188,165,44,42,188,31,91,42,188,134,137,42,188,219,183,42,188,28,230,42,188,75,20,43,188,103,66,43,188,112,112,43,188,102,158,43,188,73,204,43,188,26,250,43,188,215,39,44,188,129,85,44,188,25,131,44,188,157,176,44,188,15,222,44,188,109,11,45,188,184,
56,45,188,241,101,45,188,22,147,45,188,40,192,45,188,39,237,45,188,18,26,46,188,235,70,46,188,176,115,46,188,99,160,46,188,2,205,46,188,141,249,46,188,6,38,47,188,107,82,47,188,189,126,47,188,252,170,47,188,39,215,47,188,63,3,48,188,68,47,48,188,53,91,48,188,19,135,48,188,221,178,48,188,148,222,48,188,56,10,49,188,200,53,49,188,69,97,49,188,174,140,49,188,4,184,49,188,70,227,49,188,116,14,50,188,144,57,50,188,151,100,50,188,139,143,50,188,107,186,50,188,56,229,50,188,241,15,51,188,150,58,51,188,40,
101,51,188,166,143,51,188,16,186,51,188,103,228,51,188,170,14,52,188,217,56,52,188,244,98,52,188,251,140,52,188,239,182,52,188,207,224,52,188,155,10,53,188,83,52,53,188,247,93,53,188,136,135,53,188,4,177,53,188,109,218,53,188,194,3,54,188,2,45,54,188,47,86,54,188,72,127,54,188,76,168,54,188,61,209,54,188,26,250,54,188,226,34,55,188,151,75,55,188,55,116,55,188,196,156,55,188,60,197,55,188,160,237,55,188,240,21,56,188,44,62,56,188,84,102,56,188,103,142,56,188,102,182,56,188,82,222,56,188,40,6,57,188,
235,45,57,188,153,85,57,188,51,125,57,188,185,164,57,188,42,204,57,188,135,243,57,188,208,26,58,188,4,66,58,188,36,105,58,188,48,144,58,188,39,183,58,188,10,222,58,188,216,4,59,188,146,43,59,188,55,82,59,188,200,120,59,188,69,159,59,188,173,197,59,188,0,236,59,188,63,18,60,188,105,56,60,188,127,94,60,188,128,132,60,188,109,170,60,188,69,208,60,188,8,246,60,188,183,27,61,188,81,65,61,188,214,102,61,188,71,140,61,188,163,177,61,188,234,214,61,188,28,252,61,188,58,33,62,188,67,70,62,188,55,107,62,188,
23,144,62,188,225,180,62,188,151,217,62,188,56,254,62,188,196,34,63,188,60,71,63,188,158,107,63,188,236,143,63,188,36,180,63,188,72,216,63,188,87,252,63,188,81,32,64,188,54,68,64,188,6,104,64,188,193,139,64,188,103,175,64,188,248,210,64,188,116,246,64,188,218,25,65,188,44,61,65,188,105,96,65,188,145,131,65,188,163,166,65,188,161,201,65,188,137,236,65,188,93,15,66,188,27,50,66,188,196,84,66,188,88,119,66,188,214,153,66,188,64,188,66,188,148,222,66,188,211,0,67,188,252,34,67,188,17,69,67,188,16,103,
67,188,250,136,67,188,207,170,67,188,142,204,67,188,56,238,67,188,205,15,68,188,76,49,68,188,182,82,68,188,11,116,68,188,74,149,68,188,116,182,68,188,137,215,68,188,136,248,68,188,114,25,69,188,70,58,69,188,5,91,69,188,174,123,69,188,66,156,69,188,192,188,69,188,41,221,69,188,124,253,69,188,186,29,70,188,226,61,70,188,245,93,70,188,242,125,70,188,218,157,70,188,172,189,70,188,104,221,70,188,15,253,70,188,160,28,71,188,28,60,71,188,129,91,71,188,210,122,71,188,12,154,71,188,49,185,71,188,64,216,71,
188,58,247,71,188,29,22,72,188,235,52,72,188,164,83,72,188,70,114,72,188,211,144,72,188,74,175,72,188,171,205,72,188,246,235,72,188,44,10,73,188,76,40,73,188,86,70,73,188,74,100,73,188,40,130,73,188,240,159,73,188,163,189,73,188,63,219,73,188,198,248,73,188,55,22,74,188,146,51,74,188,215,80,74,188,6,110,74,188,31,139,74,188,34,168,74,188,15,197,74,188,230,225,74,188,167,254,74,188,82,27,75,188,231,55,75,188,102,84,75,188,207,112,75,188,34,141,75,188,95,169,75,188,134,197,75,188,150,225,75,188,145,
253,75,188,117,25,76,188,68,53,76,188,252,80,76,188,158,108,76,188,42,136,76,188,160,163,76,188,0,191,76,188,73,218,76,188,125,245,76,188,154,16,77,188,161,43,77,188,145,70,77,188,108,97,77,188,48,124,77,188,222,150,77,188,118,177,77,188,247,203,77,188,98,230,77,188,183,0,78,188,246,26,78,188,30,53,78,188,48,79,78,188,44,105,78,188,17,131,78,188,224,156,78,188,153,182,78,188,59,208,78,188,199,233,78,188,61,3,79,188,156,28,79,188,228,53,79,188,23,79,79,188,51,104,79,188,56,129,79,188,39,154,79,188,
0,179,79,188,194,203,79,188,110,228,79,188,3,253,79,188,129,21,80,188,234,45,80,188,59,70,80,188,119,94,80,188,155,118,80,188,170,142,80,188,161,166,80,188,130,190,80,188,77,214,80,188,1,238,80,188,158,5,81,188,37,29,81,188,149,52,81,188,239,75,81,188,50,99,81,188,94,122,81,188,116,145,81,188,115,168,81,188,92,191,81,188,46,214,81,188,233,236,81,188,142,3,82,188,28,26,82,188,147,48,82,188,243,70,82,188,61,93,82,188,113,115,82,188,141,137,82,188,147,159,82,188,130,181,82,188,90,203,82,188,27,225,82,
188,198,246,82,188,90,12,83,188,216,33,83,188,62,55,83,188,142,76,83,188,199,97,83,188,233,118,83,188,244,139,83,188,233,160,83,188,198,181,83,188,141,202,83,188,61,223,83,188,214,243,83,188,89,8,84,188,196,28,84,188,25,49,84,188,87,69,84,188,125,89,84,188,141,109,84,188,134,129,84,188,105,149,84,188,52,169,84,188,232,188,84,188,134,208,84,188,12,228,84,188,124,247,84,188,213,10,85,188,22,30,85,188,65,49,85,188,85,68,85,188,82,87,85,188,56,106,85,188,7,125,85,188,190,143,85,188,95,162,85,188,233,
180,85,188,92,199,85,188,184,217,85,188,253,235,85,188,43,254,85,188,66,16,86,188,65,34,86,188,42,52,86,188,252,69,86,188,183,87,86,188,90,105,86,188,231,122,86,188,92,140,86,188,186,157,86,188,2,175,86,188,50,192,86,188,75,209,86,188,77,226,86,188,56,243,86,188,11,4,87,188,200,20,87,188,110,37,87,188,252,53,87,188,115,70,87,188,211,86,87,188,28,103,87,188,78,119,87,188,105,135,87,188,108,151,87,188,88,167,87,188,46,183,87,188,235,198,87,188,146,214,87,188,34,230,87,188,154,245,87,188,251,4,88,188,
69,20,88,188,120,35,88,188,147,50,88,188,152,65,88,188,133,80,88,188,91,95,88,188,25,110,88,188,193,124,88,188,81,139,88,188,202,153,88,188,43,168,88,188,118,182,88,188,169,196,88,188,196,210,88,188,201,224,88,188,182,238,88,188,140,252,88,188,75,10,89,188,242,23,89,188,130,37,89,188,251,50,89,188,93,64,89,188,167,77,89,188,218,90,89,188,245,103,89,188,249,116,89,188,230,129,89,188,188,142,89,188,122,155,89,188,33,168,89,188,176,180,89,188,41,193,89,188,137,205,89,188,211,217,89,188,5,230,89,188,
32,242,89,188,35,254,89,188,15,10,90,188,228,21,90,188,161,33,90,188,71,45,90,188,214,56,90,188,77,68,90,188,172,79,90,188,245,90,90,188,38,102,90,188,63,113,90,188,65,124,90,188,44,135,90,188,255,145,90,188,187,156,90,188,96,167,90,188,237,177,90,188,98,188,90,188,193,198,90,188,7,209,90,188,55,219,90,188,79,229,90,188,79,239,90,188,56,249,90,188,10,3,91,188,196,12,91,188,102,22,91,188,242,31,91,188,101,41,91,188,194,50,91,188,7,60,91,188,52,69,91,188,74,78,91,188,72,87,91,188,47,96,91,188,255,104,
91,188,183,113,91,188,87,122,91,188,224,130,91,188,82,139,91,188,172,147,91,188,239,155,91,188,26,164,91,188,45,172,91,188,42,180,91,188,14,188,91,188,219,195,91,188,145,203,91,188,47,211,91,188,182,218,91,188,37,226,91,188,125,233,91,188,189,240,91,188,229,247,91,188,246,254,91,188,240,5,92,188,210,12,92,188,157,19,92,188,80,26,92,188,235,32,92,188,111,39,92,188,220,45,92,188,49,52,92,188,110,58,92,188,148,64,92,188,162,70,92,188,153,76,92,188,120,82,92,188,64,88,92,188,240,93,92,188,137,99,92,188,
10,105,92,188,116,110,92,188,198,115,92,188,0,121,92,188,36,126,92,188,47,131,92,188,35,136,92,188,255,140,92,188,196,145,92,188,113,150,92,188,7,155,92,188,133,159,92,188,236,163,92,188,59,168,92,188,115,172,92,188,147,176,92,188,155,180,92,188,140,184,92,188,102,188,92,188,40,192,92,188,210,195,92,188,101,199,92,188,224,202,92,188,67,206,92,188,144,209,92,188,196,212,92,188,225,215,92,188,231,218,92,188,213,221,92,188,171,224,92,188,106,227,92,188,17,230,92,188,161,232,92,188,25,235,92,188,121,
237,92,188,195,239,92,188,244,241,92,188,14,244,92,188,17,246,92,188,251,247,92,188,207,249,92,188,139,251,92,188,47,253,92,188,188,254,92,188,49,0,93,188,142,1,93,188,212,2,93,188,3,4,93,188,26,5,93,188,25,6,93,188,1,7,93,188,210,7,93,188,139,8,93,188,44,9,93,188,182,9,93,188,40,10,93,188,131,10,93,188,198,10,93,188,241,10,93,188,6,11,93,188,2,11,93,188,231,10,93,188,181,10,93,188,107,10,93,188,9,10,93,188,144,9,93,188,0,9,93,188,88,8,93,188,152,7,93,188,193,6,93,188,210,5,93,188,204,4,93,188,175,
3,93,188,122,2,93,188,45,1,93,188,201,255,92,188,77,254,92,188,186,252,92,188,15,251,92,188,77,249,92,188,116,247,92,188,131,245,92,188,122,243,92,188,90,241,92,188,34,239,92,188,211,236,92,188,109,234,92,188,239,231,92,188,89,229,92,188,172,226,92,188,232,223,92,188,12,221,92,188,24,218,92,188,13,215,92,188,235,211,92,188,177,208,92,188,96,205,92,188,247,201,92,188,119,198,92,188,224,194,92,188,49,191,92,188,106,187,92,188,140,183,92,188,151,179,92,188,138,175,92,188,102,171,92,188,42,167,92,188,
215,162,92,188,109,158,92,188,235,153,92,188,81,149,92,188,161,144,92,188,216,139,92,188,249,134,92,188,2,130,92,188,244,124,92,188,206,119,92,188,145,114,92,188,60,109,92,188,208,103,92,188,77,98,92,188,178,92,92,188,0,87,92,188,55,81,92,188,86,75,92,188,94,69,92,188,78,63,92,188,39,57,92,188,233,50,92,188,147,44,92,188,38,38,92,188,162,31,92,188,6,25,92,188,83,18,92,188,137,11,92,188,167,4,92,188,175,253,91,188,158,246,91,188,119,239,91,188,56,232,91,188,226,224,91,188,116,217,91,188,239,209,91,
188,83,202,91,188,160,194,91,188,213,186,91,188,243,178,91,188,250,170,91,188,234,162,91,188,194,154,91,188,131,146,91,188,45,138,91,188,191,129,91,188,59,121,91,188,159,112,91,188,235,103,91,188,33,95,91,188,63,86,91,188,71,77,91,188,54,68,91,188,15,59,91,188,209,49,91,188,123,40,91,188,14,31,91,188,138,21,91,188,239,11,91,188,60,2,91,188,114,248,90,188,146,238,90,188,154,228,90,188,139,218,90,188,100,208,90,188,39,198,90,188,210,187,90,188,103,177,90,188,228,166,90,188,74,156,90,188,153,145,90,
188,208,134,90,188,241,123,90,188,251,112,90,188,237,101,90,188,201,90,90,188,141,79,90,188,58,68,90,188,208,56,90,188,79,45,90,188,184,33,90,188,9,22,90,188,66,10,90,188,101,254,89,188,113,242,89,188,102,230,89,188,68,218,89,188,11,206,89,188,186,193,89,188,83,181,89,188,213,168,89,188,64,156,89,188,148,143,89,188,208,130,89,188,246,117,89,188,5,105,89,188,253,91,89,188,222,78,89,188,168,65,89,188,91,52,89,188,247,38,89,188,124,25,89,188,235,11,89,188,66,254,88,188,131,240,88,188,172,226,88,188,
191,212,88,188,187,198,88,188,160,184,88,188,110,170,88,188,37,156,88,188,197,141,88,188,79,127,88,188,194,112,88,188,29,98,88,188,98,83,88,188,145,68,88,188,168,53,88,188,168,38,88,188,146,23,88,188,101,8,88,188,33,249,87,188,199,233,87,188,86,218,87,188,205,202,87,188,47,187,87,188,121,171,87,188,173,155,87,188,202,139,87,188,208,123,87,188,191,107,87,188,152,91,87,188,90,75,87,188,6,59,87,188,155,42,87,188,25,26,87,188,128,9,87,188,209,248,86,188,11,232,86,188,46,215,86,188,59,198,86,188,49,181,
86,188,17,164,86,188,218,146,86,188,141,129,86,188,40,112,86,188,174,94,86,188,28,77,86,188,116,59,86,188,182,41,86,188,225,23,86,188,245,5,86,188,243,243,85,188,219,225,85,188,172,207,85,188,102,189,85,188,10,171,85,188,151,152,85,188,14,134,85,188,111,115,85,188,185,96,85,188,236,77,85,188,9,59,85,188,16,40,85,188,0,21,85,188,218,1,85,188,158,238,84,188,75,219,84,188,225,199,84,188,98,180,84,188,204,160,84,188,31,141,84,188,92,121,84,188,131,101,84,188,148,81,84,188,142,61,84,188,114,41,84,188,
64,21,84,188,247,0,84,188,152,236,83,188,35,216,83,188,151,195,83,188,246,174,83,188,62,154,83,188,111,133,83,188,139,112,83,188,144,91,83,188,128,70,83,188,88,49,83,188,27,28,83,188,200,6,83,188,94,241,82,188,223,219,82,188,73,198,82,188,157,176,82,188,219,154,82,188,2,133,82,188,20,111,82,188,16,89,82,188,245,66,82,188,197,44,82,188,126,22,82,188,33,0,82,188,175,233,81,188,38,211,81,188,135,188,81,188,210,165,81,188,8,143,81,188,39,120,81,188,48,97,81,188,35,74,81,188,1,51,81,188,200,27,81,188,
122,4,81,188,21,237,80,188,155,213,80,188,11,190,80,188,101,166,80,188,169,142,80,188,215,118,80,188,239,94,80,188,241,70,80,188,222,46,80,188,181,22,80,188,118,254,79,188,33,230,79,188,182,205,79,188,54,181,79,188,160,156,79,188,244,131,79,188,50,107,79,188,91,82,79,188,109,57,79,188,107,32,79,188,82,7,79,188,36,238,78,188,224,212,78,188,134,187,78,188,23,162,78,188,146,136,78,188,248,110,78,188,72,85,78,188,130,59,78,188,167,33,78,188,182,7,78,188,176,237,77,188,148,211,77,188,98,185,77,188,27,
159,77,188,191,132,77,188,76,106,77,188,197,79,77,188,40,53,77,188,117,26,77,188,173,255,76,188,208,228,76,188,221,201,76,188,213,174,76,188,183,147,76,188,132,120,76,188,60,93,76,188,222,65,76,188,107,38,76,188,226,10,76,188,68,239,75,188,145,211,75,188,200,183,75,188,235,155,75,188,248,127,75,188,239,99,75,188,210,71,75,188,159,43,75,188,87,15,75,188,249,242,74,188,135,214,74,188,255,185,74,188,98,157,74,188,176,128,74,188,233,99,74,188,13,71,74,188,27,42,74,188,21,13,74,188,249,239,73,188,200,
210,73,188,130,181,73,188,40,152,73,188,184,122,73,188,51,93,73,188,153,63,73,188,234,33,73,188,38,4,73,188,77,230,72,188,95,200,72,188,92,170,72,188,68,140,72,188,23,110,72,188,214,79,72,188,127,49,72,188,20,19,72,188,147,244,71,188,254,213,71,188,84,183,71,188,149,152,71,188,194,121,71,188,217,90,71,188,220,59,71,188,202,28,71,188,163,253,70,188,103,222,70,188,23,191,70,188,178,159,70,188,56,128,70,188,170,96,70,188,7,65,70,188,79,33,70,188,131,1,70,188,162,225,69,188,172,193,69,188,162,161,69,
188,131,129,69,188,80,97,69,188,8,65,69,188,172,32,69,188,59,0,69,188,181,223,68,188,27,191,68,188,109,158,68,188,170,125,68,188,210,92,68,188,230,59,68,188,230,26,68,188,209,249,67,188,168,216,67,188,107,183,67,188,25,150,67,188,179,116,67,188,56,83,67,188,169,49,67,188,6,16,67,188,78,238,66,188,131,204,66,188,163,170,66,188,174,136,66,188,166,102,66,188,137,68,66,188,88,34,66,188,19,0,66,188,186,221,65,188,76,187,65,188,203,152,65,188,53,118,65,188,139,83,65,188,205,48,65,188,252,13,65,188,21,235,
64,188,27,200,64,188,13,165,64,188,235,129,64,188,181,94,64,188,107,59,64,188,13,24,64,188,155,244,63,188,21,209,63,188,123,173,63,188,205,137,63,188,11,102,63,188,54,66,63,188,76,30,63,188,79,250,62,188,62,214,62,188,25,178,62,188,224,141,62,188,148,105,62,188,52,69,62,188,192,32,62,188,56,252,61,188,157,215,61,188,238,178,61,188,43,142,61,188,84,105,61,188,106,68,61,188,109,31,61,188,91,250,60,188,54,213,60,188,254,175,60,188,178,138,60,188,82,101,60,188,223,63,60,188,88,26,60,188,190,244,59,188,
16,207,59,188,79,169,59,188,123,131,59,188,147,93,59,188,151,55,59,188,136,17,59,188,102,235,58,188,49,197,58,188,232,158,58,188,140,120,58,188,28,82,58,188,153,43,58,188,3,5,58,188,90,222,57,188,157,183,57,188,205,144,57,188,234,105,57,188,244,66,57,188,234,27,57,188,206,244,56,188,158,205,56,188,91,166,56,188,5,127,56,188,156,87,56,188,32,48,56,188,145,8,56,188,239,224,55,188,57,185,55,188,113,145,55,188,150,105,55,188,168,65,55,188,167,25,55,188,147,241,54,188,108,201,54,188,50,161,54,188,229,
120,54,188,133,80,54,188,19,40,54,188,142,255,53,188,246,214,53,188,75,174,53,188,141,133,53,188,189,92,53,188,217,51,53,188,228,10,53,188,219,225,52,188,192,184,52,188,146,143,52,188,81,102,52,188,254,60,52,188,152,19,52,188,32,234,51,188,149,192,51,188,248,150,51,188,72,109,51,188,133,67,51,188,176,25,51,188,201,239,50,188,207,197,50,188,194,155,50,188,163,113,50,188,114,71,50,188,46,29,50,188,216,242,49,188,112,200,49,188,245,157,49,188,104,115,49,188,201,72,49,188,23,30,49,188,84,243,48,188,125,
200,48,188,149,157,48,188,155,114,48,188,142,71,48,188,111,28,48,188,62,241,47,188,251,197,47,188,166,154,47,188,62,111,47,188,197,67,47,188,58,24,47,188,156,236,46,188,237,192,46,188,43,149,46,188,88,105,46,188,114,61,46,188,123,17,46,188,114,229,45,188,87,185,45,188,42,141,45,188,235,96,45,188,154,52,45,188,56,8,45,188,195,219,44,188,61,175,44,188,165,130,44,188,252,85,44,188,64,41,44,188,115,252,43,188,149,207,43,188,164,162,43,188,162,117,43,188,143,72,43,188,106,27,43,188,51,238,42,188,234,192,
42,188,144,147,42,188,37,102,42,188,168,56,42,188,26,11,42,188,122,221,41,188,200,175,41,188,5,130,41,188,49,84,41,188,76,38,41,188,85,248,40,188,77,202,40,188,51,156,40,188,8,110,40,188,204,63,40,188,126,17,40,188,32,227,39,188,176,180,39,188,47,134,39,188,156,87,39,188,249,40,39,188,68,250,38,188,126,203,38,188,168,156,38,188,192,109,38,188,199,62,38,188,189,15,38,188,162,224,37,188,118,177,37,188,57,130,37,188,235,82,37,188,140,35,37,188,28,244,36,188,155,196,36,188,9,149,36,188,103,101,36,188,
180,53,36,188,240,5,36,188,27,214,35,188,53,166,35,188,63,118,35,188,55,70,35,188,31,22,35,188,247,229,34,188,190,181,34,188,116,133,34,188,25,85,34,188,174,36,34,188,50,244,33,188,166,195,33,188,9,147,33,188,92,98,33,188,158,49,33,188,208,0,33,188,241,207,32,188,2,159,32,188,2,110,32,188,242,60,32,188,210,11,32,188,161,218,31,188,96,169,31,188,15,120,31,188,173,70,31,188,59,21,31,188,185,227,30,188,39,178,30,188,132,128,30,188,209,78,30,188,14,29,30,188,59,235,29,188,88,185,29,188,101,135,29,188,
97,85,29,188,78,35,29,188,42,241,28,188,247,190,28,188,180,140,28,188,96,90,28,188,253,39,28,188,138,245,27,188,6,195,27,188,115,144,27,188,209,93,27,188,30,43,27,188,91,248,26,188,137,197,26,188,167,146,26,188,181,95,26,188,180,44,26,188,162,249,25,188,129,198,25,188,81,147,25,188,17,96,25,188,193,44,25,188,97,249,24,188,242,197,24,188,116,146,24,188,230,94,24,188,72,43,24,188,155,247,23,188,223,195,23,188,19,144,23,188,55,92,23,188,77,40,23,188,83,244,22,188,73,192,22,188,48,140,22,188,8,88,22,
188,209,35,22,188,138,239,21,188,53,187,21,188,207,134,21,188,91,82,21,188,216,29,21,188,69,233,20,188,164,180,20,188,243,127,20,188,51,75,20,188,100,22,20,188,134,225,19,188,153,172,19,188,158,119,19,188,147,66,19,188,121,13,19,188,80,216,18,188,25,163,18,188,210,109,18,188,125,56,18,188,25,3,18,188,166,205,17,188,36,152,17,188,148,98,17,188,245,44,17,188,71,247,16,188,138,193,16,188,191,139,16,188,229,85,16,188,253,31,16,188,5,234,15,188,0,180,15,188,236,125,15,188,201,71,15,188,152,17,15,188,88,
219,14,188,10,165,14,188,173,110,14,188,66,56,14,188,201,1,14,188,65,203,13,188,171,148,13,188,7,94,13,188,84,39,13,188,147,240,12,188,196,185,12,188,231,130,12,188,251,75,12,188,2,21,12,188,250,221,11,188,228,166,11,188,192,111,11,188,142,56,11,188,77,1,11,188,255,201,10,188,163,146,10,188,57,91,10,188,192,35,10,188,58,236,9,188,166,180,9,188,4,125,9,188,85,69,9,188,151,13,9,188,204,213,8,188,242,157,8,188,11,102,8,188,23,46,8,188,20,246,7,188,4,190,7,188,230,133,7,188,187,77,7,188,130,21,7,188,
59,221,6,188,231,164,6,188,133,108,6,188,22,52,6,188,153,251,5,188,15,195,5,188,119,138,5,188,210,81,5,188,31,25,5,188,95,224,4,188,146,167,4,188,184,110,4,188,208,53,4,188,218,252,3,188,216,195,3,188,200,138,3,188,171,81,3,188,129,24,3,188,74,223,2,188,6,166,2,188,180,108,2,188,85,51,2,188,234,249,1,188,113,192,1,188,235,134,1,188,89,77,1,188,185,19,1,188,12,218,0,188,83,160,0,188,141,102,0,188,185,44,0,188,178,229,255,187,217,113,255,187,229,253,254,187,216,137,254,187,178,21,254,187,114,161,253,
187,25,45,253,187,166,184,252,187,26,68,252,187,117,207,251,187,183,90,251,187,224,229,250,187,239,112,250,187,230,251,249,187,195,134,249,187,136,17,249,187,51,156,248,187,198,38,248,187,64,177,247,187,162,59,247,187,234,197,246,187,26,80,246,187,50,218,245,187,49,100,245,187,23,238,244,187,229,119,244,187,155,1,244,187,56,139,243,187,189,20,243,187,42,158,242,187,126,39,242,187,187,176,241,187,223,57,241,187,236,194,240,187,224,75,240,187,189,212,239,187,129,93,239,187,46,230,238,187,195,110,238,
187,64,247,237,187,166,127,237,187,244,7,237,187,42,144,236,187,73,24,236,187,81,160,235,187,65,40,235,187,26,176,234,187,219,55,234,187,133,191,233,187,24,71,233,187,148,206,232,187,248,85,232,187,70,221,231,187,124,100,231,187,156,235,230,187,165,114,230,187,151,249,229,187,114,128,229,187,54,7,229,187,228,141,228,187,123,20,228,187,251,154,227,187,101,33,227,187,184,167,226,187,245,45,226,187,28,180,225,187,44,58,225,187,38,192,224,187,10,70,224,187,215,203,223,187,143,81,223,187,48,215,222,187,
187,92,222,187,49,226,221,187,144,103,221,187,217,236,220,187,13,114,220,187,43,247,219,187,51,124,219,187,38,1,219,187,3,134,218,187,203,10,218,187,125,143,217,187,25,20,217,187,160,152,216,187,18,29,216,187,111,161,215,187,182,37,215,187,232,169,214,187,5,46,214,187,13,178,213,187,0,54,213,187,221,185,212,187,166,61,212,187,90,193,211,187,250,68,211,187,132,200,210,187,250,75,210,187,91,207,209,187,168,82,209,187,224,213,208,187,3,89,208,187,18,220,207,187,13,95,207,187,243,225,206,187,197,100,
206,187,131,231,205,187,45,106,205,187,194,236,204,187,68,111,204,187,177,241,203,187,10,116,203,187,80,246,202,187,130,120,202,187,159,250,201,187,170,124,201,187,160,254,200,187,131,128,200,187,82,2,200,187,14,132,199,187,182,5,199,187,74,135,198,187,204,8,198,187,58,138,197,187,149,11,197,187,220,140,196,187,16,14,196,187,50,143,195,187,64,16,195,187,59,145,194,187,35,18,194,187,249,146,193,187,187,19,193,187,107,148,192,187,8,21,192,187,146,149,191,187,10,22,191,187,111,150,190,187,194,22,190,
187,2,151,189,187,48,23,189,187,75,151,188,187,84,23,188,187,75,151,187,187,47,23,187,187,2,151,186,187,194,22,186,187,113,150,185,187,13,22,185,187,152,149,184,187,16,21,184,187,119,148,183,187,204,19,183,187,16,147,182,187,65,18,182,187,97,145,181,187,112,16,181,187,109,143,180,187,89,14,180,187,51,141,179,187,252,11,179,187,180,138,178,187,90,9,178,187,239,135,177,187,116,6,177,187,231,132,176,187,73,3,176,187,154,129,175,187,219,255,174,187,10,126,174,187,41,252,173,187,55,122,173,187,52,248,
172,187,33,118,172,187,253,243,171,187,201,113,171,187,132,239,170,187,47,109,170,187,202,234,169,187,84,104,169,187,206,229,168,187,56,99,168,187,146,224,167,187,219,93,167,187,21,219,166,187,63,88,166,187,89,213,165,187,99,82,165,187,93,207,164,187,72,76,164,187,34,201,163,187,238,69,163,187,169,194,162,187,85,63,162,187,242,187,161,187,128,56,161,187,253,180,160,187,108,49,160,187,204,173,159,187,28,42,159,187,93,166,158,187,143,34,158,187,178,158,157,187,199,26,157,187,204,150,156,187,194,18,
156,187,170,142,155,187,131,10,155,187,77,134,154,187,9,2,154,187,182,125,153,187,84,249,152,187,229,116,152,187,102,240,151,187,218,107,151,187,63,231,150,187,150,98,150,187,222,221,149,187,25,89,149,187,70,212,148,187,100,79,148,187,117,202,147,187,119,69,147,187,108,192,146,187,83,59,146,187,45,182,145,187,248,48,145,187,183,171,144,187,103,38,144,187,10,161,143,187,160,27,143,187,40,150,142,187,163,16,142,187,17,139,141,187,113,5,141,187,196,127,140,187,10,250,139,187,67,116,139,187,112,238,138,
187,143,104,138,187,161,226,137,187,167,92,137,187,159,214,136,187,139,80,136,187,107,202,135,187,61,68,135,187,4,190,134,187,189,55,134,187,107,177,133,187,12,43,133,187,160,164,132,187,41,30,132,187,165,151,131,187,21,17,131,187,121,138,130,187,209,3,130,187,29,125,129,187,93,246,128,187,145,111,128,187,114,209,127,187,171,195,126,187,205,181,125,187,216,167,124,187,203,153,123,187,167,139,122,187,109,125,121,187,28,111,120,187,179,96,119,187,53,82,118,187,160,67,117,187,244,52,116,187,50,38,115,
187,90,23,114,187,109,8,113,187,105,249,111,187,79,234,110,187,32,219,109,187,219,203,108,187,129,188,107,187,17,173,106,187,140,157,105,187,242,141,104,187,67,126,103,187,128,110,102,187,167,94,101,187,186,78,100,187,184,62,99,187,162,46,98,187,119,30,97,187,56,14,96,187,230,253,94,187,127,237,93,187,4,221,92,187,118,204,91,187,212,187,90,187,31,171,89,187,86,154,88,187,122,137,87,187,138,120,86,187,136,103,85,187,115,86,84,187,74,69,83,187,16,52,82,187,194,34,81,187,98,17,80,187,240,255,78,187,
108,238,77,187,213,220,76,187,44,203,75,187,114,185,74,187,165,167,73,187,199,149,72,187,216,131,71,187,215,113,70,187,196,95,69,187,161,77,68,187,108,59,67,187,38,41,66,187,208,22,65,187,104,4,64,187,240,241,62,187,104,223,61,187,207,204,60,187,38,186,59,187,109,167,58,187,163,148,57,187,202,129,56,187,225,110,55,187,232,91,54,187,223,72,53,187,199,53,52,187,160,34,51,187,105,15,50,187,35,252,48,187,206,232,47,187,107,213,46,187,248,193,45,187,119,174,44,187,231,154,43,187,73,135,42,187,156,115,
41,187,225,95,40,187,24,76,39,187,65,56,38,187,93,36,37,187,106,16,36,187,106,252,34,187,92,232,33,187,65,212,32,187,24,192,31,187,227,171,30,187,160,151,29,187,80,131,28,187,244,110,27,187,139,90,26,187,21,70,25,187,146,49,24,187,4,29,23,187,105,8,22,187,194,243,20,187,15,223,19,187,80,202,18,187,133,181,17,187,174,160,16,187,204,139,15,187,223,118,14,187,230,97,13,187,226,76,12,187,210,55,11,187,184,34,10,187,147,13,9,187,99,248,7,187,41,227,6,187,228,205,5,187,149,184,4,187,59,163,3,187,215,141,
2,187,105,120,1,187,241,98,0,187,223,154,254,186,200,111,252,186,158,68,250,186,97,25,248,186,18,238,245,186,176,194,243,186,59,151,241,186,181,107,239,186,28,64,237,186,114,20,235,186,183,232,232,186,235,188,230,186,14,145,228,186,32,101,226,186,34,57,224,186,19,13,222,186,245,224,219,186,199,180,217,186,137,136,215,186,60,92,213,186,225,47,211,186,118,3,209,186,253,214,206,186,117,170,204,186,224,125,202,186,60,81,200,186,139,36,198,186,205,247,195,186,1,203,193,186,40,158,191,186,67,113,189,186,
81,68,187,186,83,23,185,186,73,234,182,186,52,189,180,186,18,144,178,186,230,98,176,186,174,53,174,186,108,8,172,186,31,219,169,186,199,173,167,186,101,128,165,186,250,82,163,186,133,37,161,186,6,248,158,186,126,202,156,186,237,156,154,186,83,111,152,186,177,65,150,186,7,20,148,186,84,230,145,186,154,184,143,186,216,138,141,186,15,93,139,186,62,47,137,186,103,1,135,186,137,211,132,186,165,165,130,186,186,119,128,186,147,147,124,186,167,55,120,186,175,219,115,186,173,127,111,186,161,35,107,186,139,
199,102,186,108,107,98,186,69,15,94,186,21,179,89,186,221,86,85,186,158,250,80,186,89,158,76,186,13,66,72,186,187,229,67,186,99,137,63,186,7,45,59,186,166,208,54,186,65,116,50,186,217,23,46,186,109,187,41,186,255,94,37,186,143,2,33,186,28,166,28,186,169,73,24,186,53,237,19,186,193,144,15,186,76,52,11,186,216,215,6,186,102,123,2,186,233,61,252,185,11,133,243,185,50,204,234,185,94,19,226,185,146,90,217,185,205,161,208,185,16,233,199,185,94,48,191,185,181,119,182,185,24,191,173,185,136,6,165,185,4,78,
156,185,143,149,147,185,41,221,138,185,211,36,130,185,29,217,114,185,183,104,97,185,118,248,79,185,93,136,62,185,110,24,45,185,169,168,27,185,18,57,10,185,84,147,241,184,229,180,206,184,219,214,171,184,58,249,136,184,11,56,76,184,131,126,6,184,198,139,129,183,161,57,158,53,12,81,149,55,65,94,16,56,246,18,86,56,79,227,141,56,153,188,176,56,84,149,211,56,126,109,246,56,137,162,12,57,7,14,30,57,55,121,47,57,22,228,64,57,163,78,82,57,220,184,99,57,191,34,117,57,37,70,131,57,191,250,139,57,42,175,148,
57,103,99,157,57,116,23,166,57,81,203,174,57,253,126,183,57,118,50,192,57,188,229,200,57,206,152,209,57],"i8",4,y.a+286720);
Q([171,75,218,57,82,254,226,57,194,176,235,57,250,98,244,57,249,20,253,57,96,227,2,58,37,60,7,58,205,148,11,58,87,237,15,58,194,69,20,58,13,158,24,58,58,246,28,58,70,78,33,58,50,166,37,58,252,253,41,58,165,85,46,58,45,173,50,58,146,4,55,58,212,91,59,58,243,178,63,58,238,9,68,58,197,96,72,58,119,183,76,58,4,14,81,58,108,100,85,58,174,186,89,58,201,16,94,58,189,102,98,58,137,188,102,58,46,18,107,58,171,103,111,58,254,188,115,58,41,18,120,58,42,103,124,58,0,94,128,58,86,136,130,58,150,178,132,58,193,
220,134,58,214,6,137,58,212,48,139,58,188,90,141,58,141,132,143,58,72,174,145,58,235,215,147,58,119,1,150,58,235,42,152,58,72,84,154,58,140,125,156,58,184,166,158,58,204,207,160,58,198,248,162,58,168,33,165,58,113,74,167,58,32,115,169,58,181,155,171,58,49,196,173,58,147,236,175,58,218,20,178,58,6,61,180,58,24,101,182,58,15,141,184,58,234,180,186,58,170,220,188,58,79,4,191,58,215,43,193,58,67,83,195,58,147,122,197,58,198,161,199,58,221,200,201,58,214,239,203,58,178,22,206,58,112,61,208,58,17,100,210,
58,148,138,212,58,248,176,214,58,62,215,216,58,101,253,218,58,110,35,221,58,87,73,223,58,33,111,225,58,204,148,227,58,86,186,229,58,193,223,231,58,11,5,234,58,53,42,236,58,62,79,238,58,38,116,240,58,237,152,242,58,147,189,244,58,23,226,246,58,121,6,249,58,185,42,251,58,215,78,253,58,210,114,255,58,85,203,0,59,48,221,1,59,249,238,2,59,177,0,4,59,86,18,5,59,234,35,6,59,108,53,7,59,219,70,8,59,56,88,9,59,131,105,10,59,188,122,11,59,225,139,12,59,244,156,13,59,245,173,14,59,226,190,15,59,188,207,16,59,
131,224,17,59,55,241,18,59,215,1,20,59,100,18,21,59,221,34,22,59,66,51,23,59,148,67,24,59,209,83,25,59,251,99,26,59,16,116,27,59,17,132,28,59,254,147,29,59,214,163,30,59,153,179,31,59,72,195,32,59,226,210,33,59,103,226,34,59,215,241,35,59,49,1,37,59,119,16,38,59,167,31,39,59,193,46,40,59,198,61,41,59,181,76,42,59,142,91,43,59,81,106,44,59,254,120,45,59,149,135,46,59,22,150,47,59,128,164,48,59,212,178,49,59,17,193,50,59,55,207,51,59,70,221,52,59,63,235,53,59,32,249,54,59,234,6,56,59,157,20,57,59,57,
34,58,59,188,47,59,59,41,61,60,59,125,74,61,59,186,87,62,59,223,100,63,59,235,113,64,59,224,126,65,59,188,139,66,59,127,152,67,59,43,165,68,59,189,177,69,59,55,190,70,59,152,202,71,59,224,214,72,59,15,227,73,59,36,239,74,59,33,251,75,59,4,7,77,59,205,18,78,59,125,30,79,59,20,42,80,59,144,53,81,59,242,64,82,59,59,76,83,59,105,87,84,59,124,98,85,59,118,109,86,59,85,120,87,59,25,131,88,59,195,141,89,59,82,152,90,59,198,162,91,59,30,173,92,59,92,183,93,59,126,193,94,59,133,203,95,59,113,213,96,59,65,
223,97,59,245,232,98,59,141,242,99,59,10,252,100,59,106,5,102,59,175,14,103,59,215,23,104,59,227,32,105,59,210,41,106,59,164,50,107,59,91,59,108,59,244,67,109,59,112,76,110,59,207,84,111,59,18,93,112,59,55,101,113,59,62,109,114,59,40,117,115,59,245,124,116,59,164,132,117,59,53,140,118,59,169,147,119,59,254,154,120,59,53,162,121,59,78,169,122,59,73,176,123,59,38,183,124,59,227,189,125,59,131,196,126,59,3,203,127,59,178,104,128,59,212,235,128,59,230,110,129,59,232,241,129,59,218,116,130,59,189,247,
130,59,145,122,131,59,84,253,131,59,7,128,132,59,171,2,133,59,63,133,133,59,194,7,134,59,54,138,134,59,154,12,135,59,237,142,135,59,48,17,136,59,99,147,136,59,133,21,137,59,151,151,137,59,153,25,138,59,138,155,138,59,107,29,139,59,59,159,139,59,250,32,140,59,169,162,140,59,71,36,141,59,212,165,141,59,80,39,142,59,188,168,142,59,22,42,143,59,96,171,143,59,152,44,144,59,191,173,144,59,213,46,145,59,218,175,145,59,205,48,146,59,176,177,146,59,128,50,147,59,64,179,147,59,237,51,148,59,138,180,148,59,
20,53,149,59,141,181,149,59,245,53,150,59,74,182,150,59,142,54,151,59,192,182,151,59,224,54,152,59,238,182,152,59,234,54,153,59,212,182,153,59,172,54,154,59,114,182,154,59,37,54,155,59,198,181,155,59,85,53,156,59,209,180,156,59,59,52,157,59,147,179,157,59,216,50,158,59,10,178,158,59,42,49,159,59,55,176,159,59,50,47,160,59,25,174,160,59,238,44,161,59,175,171,161,59,94,42,162,59,250,168,162,59,131,39,163,59,249,165,163,59,91,36,164,59,170,162,164,59,230,32,165,59,15,159,165,59,36,29,166,59,38,155,166,
59,21,25,167,59,240,150,167,59,183,20,168,59,107,146,168,59,11,16,169,59,151,141,169,59,16,11,170,59,117,136,170,59,198,5,171,59,2,131,171,59,43,0,172,59,64,125,172,59,65,250,172,59,46,119,173,59,7,244,173,59,203,112,174,59,123,237,174,59,23,106,175,59,158,230,175,59,17,99,176,59,111,223,176,59,185,91,177,59,238,215,177,59,15,84,178,59,27,208,178,59,18,76,179,59,245,199,179,59,194,67,180,59,123,191,180,59,31,59,181,59,173,182,181,59,39,50,182,59,140,173,182,59,219,40,183,59,22,164,183,59,59,31,184,
59,74,154,184,59,69,21,185,59,42,144,185,59,249,10,186,59,180,133,186,59,88,0,187,59,231,122,187,59,96,245,187,59,196,111,188,59,18,234,188,59,74,100,189,59,108,222,189,59,121,88,190,59,111,210,190,59,80,76,191,59,26,198,191,59,206,63,192,59,109,185,192,59,245,50,193,59,102,172,193,59,194,37,194,59,7,159,194,59,54,24,195,59,78,145,195,59,80,10,196,59,59,131,196,59,16,252,196,59,206,116,197,59,118,237,197,59,6,102,198,59,128,222,198,59,227,86,199,59,48,207,199,59,101,71,200,59,131,191,200,59,139,55,
201,59,123,175,201,59,84,39,202,59,22,159,202,59,193,22,203,59,85,142,203,59,209,5,204,59,54,125,204,59,131,244,204,59,185,107,205,59,216,226,205,59,222,89,206,59,206,208,206,59,166,71,207,59,102,190,207,59,14,53,208,59,158,171,208,59,23,34,209,59,120,152,209,59,192,14,210,59,241,132,210,59,10,251,210,59,11,113,211,59,243,230,211,59,196,92,212,59,124,210,212,59,28,72,213,59,163,189,213,59,19,51,214,59,105,168,214,59,168,29,215,59,206,146,215,59,219,7,216,59,207,124,216,59,172,241,216,59,111,102,217,
59,25,219,217,59,171,79,218,59,36,196,218,59,132,56,219,59,203,172,219,59,250,32,220,59,15,149,220,59,11,9,221,59,238,124,221,59,184,240,221,59,104,100,222,59,255,215,222,59,125,75,223,59,226,190,223,59,45,50,224,59,95,165,224,59,119,24,225,59,118,139,225,59,91,254,225,59,39,113,226,59,217,227,226,59,113,86,227,59,239,200,227,59,84,59,228,59,158,173,228,59,207,31,229,59,230,145,229,59,227,3,230,59,198,117,230,59,142,231,230,59,61,89,231,59,209,202,231,59,75,60,232,59,171,173,232,59,241,30,233,59,
28,144,233,59,45,1,234,59,35,114,234,59,255,226,234,59,192,83,235,59,102,196,235,59,242,52,236,59,100,165,236,59,186,21,237,59,246,133,237,59,23,246,237,59,29,102,238,59,8,214,238,59,216,69,239,59,142,181,239,59,40,37,240,59,167,148,240,59,11,4,241,59,84,115,241,59,129,226,241,59,147,81,242,59,138,192,242,59,102,47,243,59,38,158,243,59,203,12,244,59,84,123,244,59,194,233,244,59,20,88,245,59,74,198,245,59,101,52,246,59,100,162,246,59,71,16,247,59,15,126,247,59,187,235,247,59,74,89,248,59,190,198,248,
59,22,52,249,59,82,161,249,59,114,14,250,59,117,123,250,59,93,232,250,59,40,85,251,59,215,193,251,59,106,46,252,59,224,154,252,59,58,7,253,59,120,115,253,59,153,223,253,59,158,75,254,59,134,183,254,59,81,35,255,59,0,143,255,59,146,250,255,59,4,51,0,60,176,104,0,60,78,158,0,60,222,211,0,60,95,9,1,60,209,62,1,60,53,116,1,60,139,169,1,60,210,222,1,60,11,20,2,60,53,73,2,60,80,126,2,60,93,179,2,60,91,232,2,60,74,29,3,60,43,82,3,60,253,134,3,60,192,187,3,60,117,240,3,60,27,37,4,60,178,89,4,60,58,142,4,
60,179,194,4,60,30,247,4,60,121,43,5,60,198,95,5,60,4,148,5,60,51,200,5,60,83,252,5,60,100,48,6,60,102,100,6,60,89,152,6,60,61,204,6,60,17,0,7,60,215,51,7,60,142,103,7,60,53,155,7,60,206,206,7,60,87,2,8,60,209,53,8,60,60,105,8,60,152,156,8,60,228,207,8,60,33,3,9,60,79,54,9,60,110,105,9,60,125,156,9,60,125,207,9,60,109,2,10,60,78,53,10,60,32,104,10,60,226,154,10,60,149,205,10,60,56,0,11,60,204,50,11,60,81,101,11,60,197,151,11,60,43,202,11,60,128,252,11,60,199,46,12,60,253,96,12,60,36,147,12,60,59,
197,12,60,67,247,12,60,58,41,13,60,35,91,13,60,251,140,13,60,196,190,13,60,125,240,13,60,38,34,14,60,191,83,14,60,72,133,14,60,194,182,14,60,44,232,14,60,134,25,15,60,208,74,15,60,10,124,15,60,52,173,15,60,78,222,15,60,88,15,16,60,82,64,16,60,60,113,16,60,22,162,16,60,224,210,16,60,154,3,17,60,68,52,17,60,222,100,17,60,103,149,17,60,224,197,17,60,74,246,17,60,163,38,18,60,235,86,18,60,36,135,18,60,76,183,18,60,100,231,18,60,108,23,19,60,99,71,19,60,74,119,19,60,33,167,19,60,231,214,19,60,157,6,20,
60,67,54,20,60,216,101,20,60,93,149,20,60,209,196,20,60,53,244,20,60,136,35,21,60,202,82,21,60,253,129,21,60,30,177,21,60,47,224,21,60,47,15,22,60,31,62,22,60,254,108,22,60,205,155,22,60,139,202,22,60,56,249,22,60,212,39,23,60,96,86,23,60,219,132,23,60,69,179,23,60,158,225,23,60,231,15,24,60,31,62,24,60,70,108,24,60,92,154,24,60,97,200,24,60,85,246,24,60,57,36,25,60,11,82,25,60,205,127,25,60,125,173,25,60,29,219,25,60,171,8,26,60,41,54,26,60,150,99,26,60,241,144,26,60,59,190,26,60,117,235,26,60,157,
24,27,60,180,69,27,60,186,114,27,60,175,159,27,60,146,204,27,60,101,249,27,60,38,38,28,60,214,82,28,60,116,127,28,60,2,172,28,60,126,216,28,60,233,4,29,60,66,49,29,60,138,93,29,60,193,137,29,60,231,181,29,60,251,225,29,60,253,13,30,60,238,57,30,60,206,101,30,60,156,145,30,60,89,189,30,60,5,233,30,60,158,20,31,60,39,64,31,60,157,107,31,60,3,151,31,60,86,194,31,60,152,237,31,60,201,24,32,60,231,67,32,60,244,110,32,60,240,153,32,60,218,196,32,60,178,239,32,60,120,26,33,60,45,69,33,60,207,111,33,60,97,
154,33,60,224,196,33,60,77,239,33,60,169,25,34,60,243,67,34,60,43,110,34,60,81,152,34,60,101,194,34,60,104,236,34,60,88,22,35,60,54,64,35,60,3,106,35,60,190,147,35,60,102,189,35,60,253,230,35,60,129,16,36,60,244,57,36,60,84,99,36,60,163,140,36,60,223,181,36,60,9,223,36,60,34,8,37,60,40,49,37,60,28,90,37,60,253,130,37,60,205,171,37,60,138,212,37,60,53,253,37,60,206,37,38,60,85,78,38,60,201,118,38,60,43,159,38,60,123,199,38,60,185,239,38,60,228,23,39,60,253,63,39,60,4,104,39,60,248,143,39,60,217,183,
39,60,169,223,39,60,102,7,40,60,16,47,40,60,169,86,40,60,46,126,40,60,161,165,40,60,2,205,40,60,80,244,40,60,140,27,41,60,181,66,41,60,204,105,41,60,208,144,41,60,193,183,41,60,160,222,41,60,108,5,42,60,38,44,42,60,205,82,42,60,97,121,42,60,227,159,42,60,81,198,42,60,174,236,42,60,247,18,43,60,46,57,43,60,82,95,43,60,99,133,43,60,98,171,43,60,77,209,43,60,38,247,43,60,236,28,44,60,160,66,44,60,64,104,44,60,206,141,44,60,72,179,44,60,176,216,44,60,5,254,44,60,71,35,45,60,118,72,45,60,146,109,45,60,
155,146,45,60,145,183,45,60,116,220,45,60,68,1,46,60,1,38,46,60,171,74,46,60,66,111,46,60,198,147,46,60,54,184,46,60,148,220,46,60,223,0,47,60,22,37,47,60,59,73,47,60,76,109,47,60,74,145,47,60,53,181,47,60,12,217,47,60,209,252,47,60,130,32,48,60,32,68,48,60,170,103,48,60,34,139,48,60,134,174,48,60,215,209,48,60,21,245,48,60,63,24,49,60,86,59,49,60,89,94,49,60,74,129,49,60,39,164,49,60,240,198,49,60,166,233,49,60,73,12,50,60,216,46,50,60,84,81,50,60,188,115,50,60,17,150,50,60,83,184,50,60,128,218,
50,60,155,252,50,60,162,30,51,60,149,64,51,60,117,98,51,60,65,132,51,60,250,165,51,60,159,199,51,60,49,233,51,60,175,10,52,60,25,44,52,60,112,77,52,60,179,110,52,60,226,143,52,60,254,176,52,60,6,210,52,60,250,242,52,60,218,19,53,60,167,52,53,60,96,85,53,60,6,118,53,60,151,150,53,60,21,183,53,60,127,215,53,60,214,247,53,60,24,24,54,60,71,56,54,60,98,88,54,60,105,120,54,60,92,152,54,60,59,184,54,60,6,216,54,60,190,247,54,60,97,23,55,60,241,54,55,60,108,86,55,60,212,117,55,60,40,149,55,60,104,180,55,
60,148,211,55,60,171,242,55,60,175,17,56,60,159,48,56,60,123,79,56,60,67,110,56,60,246,140,56,60,150,171,56,60,33,202,56,60,153,232,56,60,252,6,57,60,76,37,57,60,135,67,57,60,174,97,57,60,193,127,57,60,191,157,57,60,170,187,57,60,128,217,57,60,66,247,57,60,240,20,58,60,138,50,58,60,16,80,58,60,129,109,58,60,222,138,58,60,39,168,58,60,91,197,58,60,124,226,58,60,136,255,58,60,127,28,59,60,99,57,59,60,50,86,59,60,236,114,59,60,147,143,59,60,37,172,59,60,162,200,59,60,12,229,59,60,97,1,60,60,161,29,60,
60,205,57,60,60,229,85,60,60,232,113,60,60,215,141,60,60,177,169,60,60,119,197,60,60,40,225,60,60,197,252,60,60,78,24,61,60,194,51,61,60,33,79,61,60,108,106,61,60,162,133,61,60,196,160,61,60,209,187,61,60,202,214,61,60,174,241,61,60,126,12,62,60,57,39,62,60,223,65,62,60,113,92,62,60,238,118,62,60,86,145,62,60,170,171,62,60,233,197,62,60,20,224,62,60,41,250,62,60,43,20,63,60,23,46,63,60,239,71,63,60,178,97,63,60,96,123,63,60,250,148,63,60,126,174,63,60,239,199,63,60,74,225,63,60,144,250,63,60,194,
19,64,60,223,44,64,60,231,69,64,60,219,94,64,60,185,119,64,60,131,144,64,60,56,169,64,60,216,193,64,60,99,218,64,60,218,242,64,60,59,11,65,60,136,35,65,60,191,59,65,60,226,83,65,60,240,107,65,60,233,131,65,60,205,155,65,60,156,179,65,60,86,203,65,60,252,226,65,60,140,250,65,60,7,18,66,60,110,41,66,60,191,64,66,60,251,87,66,60,35,111,66,60,53,134,66,60,50,157,66,60,26,180,66,60,238,202,66,60,172,225,66,60,85,248,66,60,233,14,67,60,104,37,67,60,210,59,67,60,39,82,67,60,103,104,67,60,145,126,67,60,167,
148,67,60,167,170,67,60,147,192,67,60,105,214,67,60,42,236,67,60,214,1,68,60,108,23,68,60,238,44,68,60,90,66,68,60,178,87,68,60,244,108,68,60,32,130,68,60,56,151,68,60,58,172,68,60,40,193,68,60,0,214,68,60,194,234,68,60,112,255,68,60,8,20,69,60,139,40,69,60,249,60,69,60,81,81,69,60,148,101,69,60,194,121,69,60,219,141,69,60,222,161,69,60,204,181,69,60,164,201,69,60,104,221,69,60,22,241,69,60,174,4,70,60,50,24,70,60,160,43,70,60,248,62,70,60,59,82,70,60,105,101,70,60,130,120,70,60,133,139,70,60,115,
158,70,60,75,177,70,60,14,196,70,60,187,214,70,60,83,233,70,60,214,251,70,60,67,14,71,60,155,32,71,60,221,50,71,60,10,69,71,60,34,87,71,60,36,105,71,60,16,123,71,60,231,140,71,60,169,158,71,60,85,176,71,60,235,193,71,60,108,211,71,60,216,228,71,60,46,246,71,60,110,7,72,60,153,24,72,60,175,41,72,60,175,58,72,60,153,75,72,60,110,92,72,60,45,109,72,60,215,125,72,60,107,142,72,60,233,158,72,60,82,175,72,60,166,191,72,60,227,207,72,60,12,224,72,60,30,240,72,60,27,0,73,60,3,16,73,60,212,31,73,60,145,47,
73,60,55,63,73,60,200,78,73,60,67,94,73,60,169,109,73,60,249,124,73,60,51,140,73,60,88,155,73,60,103,170,73,60,96,185,73,60,68,200,73,60,18,215,73,60,202,229,73,60,108,244,73,60,249,2,74,60,112,17,74,60,210,31,74,60,30,46,74,60,84,60,74,60,116,74,74,60,127,88,74,60,116,102,74,60,83,116,74,60,28,130,74,60,208,143,74,60,110,157,74,60,246,170,74,60,104,184,74,60,197,197,74,60,12,211,74,60,61,224,74,60,88,237,74,60,94,250,74,60,78,7,75,60,40,20,75,60,236,32,75,60,154,45,75,60,51,58,75,60,182,70,75,60,
35,83,75,60,122,95,75,60,187,107,75,60,231,119,75,60,253,131,75,60,253,143,75,60,231,155,75,60,187,167,75,60,121,179,75,60,34,191,75,60,181,202,75,60,50,214,75,60,153,225,75,60,234,236,75,60,37,248,75,60,75,3,76,60,90,14,76,60,84,25,76,60,56,36,76,60,6,47,76,60,190,57,76,60,96,68,76,60,236,78,76,60,99,89,76,60,195,99,76,60,14,110,76,60,67,120,76,60,97,130,76,60,106,140,76,60,93,150,76,60,58,160,76,60,2,170,76,60,179,179,76,60,78,189,76,60,212,198,76,60,67,208,76,60,157,217,76,60,225,226,76,60,14,
236,76,60,38,245,76,60,40,254,76,60,20,7,77,60,234,15,77,60,170,24,77,60,84,33,77,60,232,41,77,60,102,50,77,60,206,58,77,60,33,67,77,60,93,75,77,60,131,83,77,60,148,91,77,60,142,99,77,60,114,107,77,60,65,115,77,60,249,122,77,60,156,130,77,60,40,138,77,60,159,145,77,60,0,153,77,60,74,160,77,60,127,167,77,60,157,174,77,60,166,181,77,60,153,188,77,60,117,195,77,60,60,202,77,60,236,208,77,60,135,215,77,60,12,222,77,60,122,228,77,60,211,234,77,60,22,241,77,60,66,247,77,60,89,253,77,60,90,3,78,60,68,9,
78,60,25,15,78,60,215,20,78,60,128,26,78,60,19,32,78,60,143,37,78,60,246,42,78,60,70,48,78,60,129,53,78,60,165,58,78,60,180,63,78,60,172,68,78,60,143,73,78,60,91,78,78,60,17,83,78,60,178,87,78,60,60,92,78,60,176,96,78,60,15,101,78,60,87,105,78,60,137,109,78,60,165,113,78,60,171,117,78,60,156,121,78,60,118,125,78,60,58,129,78,60,232,132,78,60,128,136,78,60,2,140,78,60,110,143,78,60,196,146,78,60,4,150,78,60,45,153,78,60,65,156,78,60,63,159,78,60,39,162,78,60,249,164,78,60,180,167,78,60,90,170,78,60,
234,172,78,60,99,175,78,60,199,177,78,60,20,180,78,60,76,182,78,60,109,184,78,60,121,186,78,60,110,188,78,60,77,190,78,60,23,192,78,60,202,193,78,60,103,195,78,60,239,196,78,60,96,198,78,60,187,199,78,60,0,201,78,60,47,202,78,60,73,203,78,60,76,204,78,60,57,205,78,60,16,206,78,60,209,206,78,60,124,207,78,60,17,208,78,60,144,208,78,60,249,208,78,60,76,209,78,60,137,209,78,60,175,209,78,60,192,209,78,60,187,209,78,60,160,209,78,60,111,209,78,60,40,209,78,60,203,208,78,60,87,208,78,60,206,207,78,60,
47,207,78,60,122,206,78,60,175,205,78,60,205,204,78,60,214,203,78,60,201,202,78,60,166,201,78,60,109,200,78,60,29,199,78,60,184,197,78,60,61,196,78,60,172,194,78,60,5,193,78,60,72,191,78,60,117,189,78,60,140,187,78,60,141,185,78,60,120,183,78,60,77,181,78,60,12,179,78,60,181,176,78,60,72,174,78,60,197,171,78,60,44,169,78,60,125,166,78,60,185,163,78,60,222,160,78,60,237,157,78,60,231,154,78,60,202,151,78,60,151,148,78,60,79,145,78,60,241,141,78,60,124,138,78,60,242,134,78,60,82,131,78,60,156,127,78,
60,208,123,78,60,238,119,78,60,246,115,78,60,232,111,78,60,196,107,78,60,139,103,78,60,59,99,78,60,214,94,78,60,90,90,78,60,201,85,78,60,34,81,78,60,101,76,78,60,146,71,78,60,169,66,78,60,170,61,78,60,149,56,78,60,107,51,78,60,43,46,78,60,212,40,78,60,104,35,78,60,230,29,78,60,78,24,78,60,161,18,78,60,221,12,78,60,4,7,78,60,20,1,78,60,15,251,77,60,244,244,77,60,196,238,77,60,125,232,77,60,32,226,77,60,174,219,77,60,38,213,77,60,136,206,77,60,212,199,77,60,11,193,77,60,44,186,77,60,54,179,77,60,43,
172,77,60,11,165,77,60,212,157,77,60,136,150,77,60,38,143,77,60,174,135,77,60,32,128,77,60,125,120,77,60,196,112,77,60,245,104,77,60,16,97,77,60,21,89,77,60,5,81,77,60,223,72,77,60,164,64,77,60,82,56,77,60,235,47,77,60,110,39,77,60,219,30,77,60,51,22,77,60,117,13,77,60,161,4,77,60,184,251,76,60,185,242,76,60,164,233,76,60,122,224,76,60,57,215,76,60,228,205,76,60,120,196,76,60,247,186,76,60,96,177,76,60,179,167,76,60,241,157,76,60,25,148,76,60,44,138,76,60,41,128,76,60,16,118,76,60,226,107,76,60,158,
97,76,60,68,87,76,60,213,76,76,60,80,66,76,60,182,55,76,60,6,45,76,60,64,34,76,60,101,23,76,60,117,12,76,60,110,1,76,60,83,246,75,60,33,235,75,60,218,223,75,60,126,212,75,60,12,201,75,60,132,189,75,60,231,177,75,60,52,166,75,60,108,154,75,60,143,142,75,60,155,130,75,60,147,118,75,60,117,106,75,60,65,94,75,60,248,81,75,60,153,69,75,60,37,57,75,60,156,44,75,60,253,31,75,60,72,19,75,60,127,6,75,60,159,249,74,60,171,236,74,60,161,223,74,60,129,210,74,60,76,197,74,60,2,184,74,60,162,170,74,60,45,157,74,
60,162,143,74,60,2,130,74,60,77,116,74,60,131,102,74,60,163,88,74,60,173,74,74,60,163,60,74,60,131,46,74,60,77,32,74,60,3,18,74,60,163,3,74,60,45,245,73,60,163,230,73,60,3,216,73,60,78,201,73,60,131,186,73,60,164,171,73,60,175,156,73,60,165,141,73,60,133,126,73,60,80,111,73,60,7,96,73,60,167,80,73,60,51,65,73,60,169,49,73,60,11,34,73,60,87,18,73,60,142,2,73,60,175,242,72,60,188,226,72,60,179,210,72,60,149,194,72,60,98,178,72,60,26,162,72,60,189,145,72,60,75,129,72,60,195,112,72,60,38,96,72,60,117,
79,72,60,174,62,72,60,210,45,72,60,225,28,72,60,219,11,72,60,192,250,71,60,144,233,71,60,75,216,71,60,241,198,71,60,129,181,71,60,253,163,71,60,100,146,71,60,182,128,71,60,242,110,71,60,26,93,71,60,45,75,71,60,43,57,71,60,19,39,71,60,231,20,71,60,166,2,71,60,80,240,70,60,229,221,70,60,102,203,70,60,209,184,70,60,39,166,70,60,105,147,70,60,149,128,70,60,173,109,70,60,176,90,70,60,158,71,70,60,119,52,70,60,60,33,70,60,235,13,70,60,134,250,69,60,12,231,69,60,125,211,69,60,217,191,69,60,33,172,69,60,
83,152,69,60,113,132,69,60,123,112,69,60,111,92,69,60,79,72,69,60,26,52,69,60,208,31,69,60,114,11,69,60,255,246,68,60,119,226,68,60,219,205,68,60,42,185,68,60,100,164,68,60,138,143,68,60,154,122,68,60,151,101,68,60,127,80,68,60,82,59,68,60,16,38,68,60,186,16,68,60,79,251,67,60,208,229,67,60,60,208,67,60,148,186,67,60,215,164,67,60,6,143,67,60,32,121,67,60,38,99,67,60,23,77,67,60,243,54,67,60,187,32,67,60,111,10,67,60,14,244,66,60,153,221,66,60,15,199,66,60,113,176,66,60,191,153,66,60,248,130,66,60,
29,108,66,60,45,85,66,60,41,62,66,60,16,39,66,60,228,15,66,60,163,248,65,60,77,225,65,60,227,201,65,60,101,178,65,60,211,154,65,60,44,131,65,60,113,107,65,60,162,83,65,60,191,59,65,60,199,35,65,60,187,11,65,60,155,243,64,60,103,219,64,60,30,195,64,60,193,170,64,60,81,146,64,60,203,121,64,60,50,97,64,60,133,72,64,60,195,47,64,60,238,22,64,60,4,254,63,60,6,229,63,60,244,203,63,60,206,178,63,60,148,153,63,60,70,128,63,60,228,102,63,60,110,77,63,60,228,51,63,60,70,26,63,60,148,0,63,60,206,230,62,60,243,
204,62,60,5,179,62,60,3,153,62,60,238,126,62,60,196,100,62,60,134,74,62,60,52,48,62,60,207,21,62,60,85,251,61,60,200,224,61,60,39,198,61,60,114,171,61,60,169,144,61,60,205,117,61,60,220,90,61,60,216,63,61,60,192,36,61,60,148,9,61,60,85,238,60,60,2,211,60,60,155,183,60,60,32,156,60,60,146,128,60,60,240,100,60,60,58,73,60,60,113,45,60,60,148,17,60,60,163,245,59,60,159,217,59,60,135,189,59,60,91,161,59,60,28,133,59,60,202,104,59,60,99,76,59,60,234,47,59,60,92,19,59,60,188,246,58,60,7,218,58,60,63,189,
58,60,100,160,58,60,117,131,58,60,115,102,58,60,93,73,58,60,52,44,58,60,248,14,58,60,168,241,57,60,68,212,57,60,206,182,57,60,68,153,57,60,166,123,57,60,245,93,57,60,49,64,57,60,90,34,57,60,111,4,57,60,113,230,56,60,96,200,56,60,59,170,56,60,4,140,56,60,185,109,56,60,90,79,56,60,233,48,56,60,100,18,56,60,205,243,55,60,34,213,55,60,99,182,55,60,146,151,55,60,174,120,55,60,182,89,55,60,172,58,55,60,142,27,55,60,93,252,54,60,26,221,54,60,195,189,54,60,89,158,54,60,220,126,54,60,76,95,54,60,170,63,54,
60,244,31,54,60,43,0,54,60,79,224,53,60,97,192,53,60,95,160,53,60,75,128,53,60,36,96,53,60,233,63,53,60,156,31,53,60,61,255,52,60,202,222,52,60,69,190,52,60,172,157,52,60,1,125,52,60,67,92,52,60,115,59,52,60,143,26,52,60,153,249,51,60,145,216,51,60,117,183,51,60,71,150,51,60,6,117,51,60,179,83,51,60,77,50,51,60,212,16,51,60,73,239,50,60,171,205,50,60,251,171,50,60,56,138,50,60,98,104,50,60,122,70,50,60,127,36,50,60,114,2,50,60,83,224,49,60,33,190,49,60,220,155,49,60,133,121,49,60,28,87,49,60,160,
52,49,60,18,18,49,60,114,239,48,60,191,204,48,60,250,169,48,60,34,135,48,60,56,100,48,60,60,65,48,60,45,30,48,60,13,251,47,60,218,215,47,60,148,180,47,60,61,145,47,60,211,109,47,60,88,74,47,60,202,38,47,60,41,3,47,60,119,223,46,60,179,187,46,60,220,151,46,60,243,115,46,60,249,79,46,60,236,43,46,60,205,7,46,60,156,227,45,60,89,191,45,60,4,155,45,60,157,118,45,60,37,82,45,60,154,45,45,60,253,8,45,60,78,228,44,60,142,191,44,60,187,154,44,60,215,117,44,60,225,80,44,60,217,43,44,60,191,6,44,60,148,225,
43,60,86,188,43,60,7,151,43,60,166,113,43,60,51,76,43,60,175,38,43,60,25,1,43,60,113,219,42,60,183,181,42,60,236,143,42,60,16,106,42,60,33,68,42,60,33,30,42,60,16,248,41,60,236,209,41,60,184,171,41,60,113,133,41,60,26,95,41,60,176,56,41,60,53,18,41,60,169,235,40,60,11,197,40,60,92,158,40,60,156,119,40,60,202,80,40,60,230,41,40,60,242,2,40,60,236,219,39,60,212,180,39,60,171,141,39,60,113,102,39,60,38,63,39,60,201,23,39,60,92,240,38,60,220,200,38,60,76,161,38,60,171,121,38,60,248,81,38,60,52,42,38,
60,95,2,38,60,121,218,37,60,130,178,37,60,121,138,37,60,96,98,37,60,54,58,37,60,250,17,37,60,174,233,36,60,80,193,36,60,226,152,36,60,98,112,36,60,210,71,36,60,48,31,36,60,126,246,35,60,187,205,35,60,231,164,35,60,2,124,35,60,12,83,35,60,6,42,35,60,238,0,35,60,198,215,34,60,141,174,34,60,67,133,34,60,233,91,34,60,126,50,34,60,2,9,34,60,117,223,33,60,216,181,33,60,42,140,33,60,108,98,33,60,156,56,33,60,189,14,33,60,204,228,32,60,204,186,32,60,186,144,32,60,152,102,32,60,102,60,32,60,35,18,32,60,208,
231,31,60,108,189,31,60,248,146,31,60,115,104,31,60,222,61,31,60,57,19,31,60,131,232,30,60,189,189,30,60,231,146,30,60,0,104,30,60,9,61,30,60,2,18,30,60,234,230,29,60,195,187,29,60,139,144,29,60,67,101,29,60,234,57,29,60,130,14,29,60,10,227,28,60,129,183,28,60,232,139,28,60,64,96,28,60,135,52,28,60,190,8,28,60,229,220,27,60,252,176,27,60,3,133,27,60,251,88,27,60,226,44,27,60,185,0,27,60,129,212,26,60,56,168,26,60,224,123,26,60,120,79,26,60,0,35,26,60,120,246,25,60,225,201,25,60,57,157,25,60,130,112,
25,60,188,67,25,60,229,22,25,60,255,233,24,60,9,189,24,60,4,144,24,60,239,98,24,60,202,53,24,60,150,8,24,60,82,219,23,60,254,173,23,60,156,128,23,60,41,83,23,60,167,37,23,60,22,248,22,60,117,202,22,60,197,156,22,60,5,111,22,60,54,65,22,60,87,19,22,60,106,229,21,60,109,183,21,60,96,137,21,60,68,91,21,60,25,45,21,60,223,254,20,60,150,208,20,60,61,162,20,60,213,115,20,60,94,69,20,60,216,22,20,60,66,232,19,60,158,185,19,60,234,138,19,60,40,92,19,60,86,45,19,60,118,254,18,60,134,207,18,60,135,160,18,60,
121,113,18,60,93,66,18,60,49,19,18,60,247,227,17,60,174,180,17,60,85,133,17,60,238,85,17,60,120,38,17,60,244,246,16,60,96,199,16,60,190,151,16,60,13,104,16,60,78,56,16,60,127,8,16,60,162,216,15,60,182,168,15,60,188,120,15,60,179,72,15,60,155,24,15,60,117,232,14,60,64,184,14,60,253,135,14,60,171,87,14,60,75,39,14,60,220,246,13,60,95,198,13,60,212,149,13,60,58,101,13,60,145,52,13,60,218,3,13,60,21,211,12,60,66,162,12,60,96,113,12,60,112,64,12,60,114,15,12,60,101,222,11,60,74,173,11,60,33,124,11,60,
234,74,11,60,165,25,11,60,81,232,10,60,240,182,10,60,128,133,10,60,2,84,10,60,118,34,10,60,221,240,9,60,53,191,9,60,127,141,9,60,187,91,9,60,233,41,9,60,10,248,8,60,28,198,8,60,33,148,8,60,23,98,8,60,0,48,8,60,219,253,7,60,168,203,7,60,104,153,7,60,26,103,7,60,190,52,7,60,84,2,7,60,221,207,6,60,87,157,6,60,197,106,6,60,36,56,6,60,118,5,6,60,187,210,5,60,242,159,5,60,27,109,5,60,55,58,5,60,70,7,5,60,71,212,4,60,58,161,4,60,32,110,4,60,249,58,4,60,196,7,4,60,130,212,3,60,51,161,3,60,214,109,3,60,108,
58,3,60,245,6,3,60,112,211,2,60,222,159,2,60,63,108,2,60,147,56,2,60,218,4,2,60,19,209,1,60,64,157,1,60,95,105,1,60,113,53,1,60,119,1,1,60,111,205,0,60,90,153,0,60,56,101,0,60,9,49,0,60,156,249,255,59,10,145,255,59,95,40,255,59,155,191,254,59,188,86,254,59,196,237,253,59,178,132,253,59,135,27,253,59,67,178,252,59,228,72,252,59,109,223,251,59,220,117,251,59,49,12,251,59,110,162,250,59,145,56,250,59,155,206,249,59,140,100,249,59,99,250,248,59,34,144,248,59,199,37,248,59,84,187,247,59,200,80,247,59,
34,230,246,59,100,123,246,59,142,16,246,59,158,165,245,59,150,58,245,59,117,207,244,59,59,100,244,59,233,248,243,59,127,141,243,59,252,33,243,59,96,182,242,59,173,74,242,59,224,222,241,59,252,114,241,59,255,6,241,59,234,154,240,59,189,46,240,59,120,194,239,59,27,86,239,59,166,233,238,59,25,125,238,59,116,16,238,59,183,163,237,59,226,54,237,59,246,201,236,59,241,92,236,59,213,239,235,59,162,130,235,59,87,21,235,59,244,167,234,59,122,58,234,59,232,204,233,59,63,95,233,59,127,241,232,59,167,131,232,
59,184,21,232,59,178,167,231,59,149,57,231,59,96,203,230,59,21,93,230,59,178,238,229,59,57,128,229,59,169,17,229,59,1,163,228,59,67,52,228,59,110,197,227,59,130,86,227,59,128,231,226,59,103,120,226,59,55,9,226,59,241,153,225,59,149,42,225,59,33,187,224,59,152,75,224,59,248,219,223,59,66,108,223,59,117,252,222,59,147,140,222,59,154,28,222,59,139,172,221,59,102,60,221,59,43,204,220,59,217,91,220,59,114,235,219,59,245,122,219,59,99,10,219,59,186,153,218,59,252,40,218,59,40,184,217,59,62,71,217,59,63,
214,216,59,42,101,216,59,0,244,215,59,192,130,215,59,107,17,215,59,1,160,214,59,129,46,214,59,236,188,213,59,66,75,213,59,130,217,212,59,174,103,212,59,196,245,211,59,198,131,211,59,178,17,211,59,138,159,210,59,76,45,210,59,250,186,209,59,147,72,209,59,23,214,208,59,135,99,208,59,226,240,207,59,40,126,207,59,90,11,207,59,120,152,206,59,129,37,206,59,117,178,205,59,86,63,205,59,34,204,204,59,217,88,204,59,125,229,203,59,12,114,203,59,136,254,202,59,239,138,202,59,66,23,202,59,129,163,201,59,173,47,
201,59,196,187,200,59,200,71,200,59,184,211,199,59,149,95,199,59,93,235,198,59,18,119,198,59,180,2,198,59,66,142,197,59,189,25,197,59,36,165,196,59,120,48,196,59,184,187,195,59,230,70,195,59,0,210,194,59,7,93,194,59,250,231,193,59,219,114,193,59,169,253,192,59,100,136,192,59,12,19,192,59,161,157,191,59,35,40,191,59,147,178,190,59,239,60,190,59,58,199,189,59,113,81,189,59,150,219,188,59,169,101,188,59,169,239,187,59,150,121,187,59,113,3,187,59,58,141,186,59,241,22,186,59,150,160,185,59,40,42,185,59,
168,179,184,59,22,61,184,59,115,198,183,59,189,79,183,59,245,216,182,59,28,98,182,59,48,235,181,59,51,116,181,59,36,253,180,59,4,134,180,59,210,14,180,59,142,151,179,59,57,32,179,59,211,168,178,59,91,49,178,59,209,185,177,59,55,66,177,59,139,202,176,59,206,82,176,59,0,219,175,59,32,99,175,59,48,235,174,59,47,115,174,59,28,251,173,59,249,130,173,59,197,10,173,59,128,146,172,59,43,26,172,59,197,161,171,59,78,41,171,59,198,176,170,59,46,56,170,59,134,191,169,59,205,70,169,59,4,206,168,59,42,85,168,59,
64,220,167,59,70,99,167,59,60,234,166,59,33,113,166,59,247,247,165,59,188,126,165,59,114,5,165,59,23,140,164,59,173,18,164,59,51,153,163,59,169,31,163,59,15,166,162,59,102,44,162,59,173,178,161,59,228,56,161,59,12,191,160,59,37,69,160,59,46,203,159,59,40,81,159,59,18,215,158,59,238,92,158,59,186,226,157,59,119,104,157,59,36,238,156,59,195,115,156,59,83,249,155,59,212,126,155,59,69,4,155,59,169,137,154,59,253,14,154,59,66,148,153,59,121,25,153,59,161,158,152,59,187,35,152,59,198,168,151,59,195,45,
151,59,177,178,150,59,145,55,150,59,98,188,149,59,37,65,149,59,218,197,148,59,129,74,148,59,26,207,147,59,164,83,147,59,33,216,146,59,144,92,146,59,241,224,145,59,67,101,145,59,137,233,144,59,192,109,144,59,234,241,143,59,6,118,143,59,20,250,142,59,21,126,142,59,8,2,142,59,238,133,141,59,199,9,141,59,146,141,140,59,80,17,140,59,1,149,139,59,164,24,139,59,59,156,138,59,196,31,138,59,64,163,137,59,176,38,137,59,18,170,136,59,104,45,136,59,177,176,135,59,237,51,135,59,28,183,134,59,63,58,134,59,85,189,
133,59,94,64,133,59,91,195,132,59,76,70,132,59,48,201,131,59,8,76,131,59,212,206,130,59,147,81,130,59,70,212,129,59,237,86,129,59,136,217,128,59,23,92,128,59,53,189,127,59,35,194,126,59,249,198,125,59,184,203,124,59,96,208,123,59,240,212,122,59,104,217,121,59,202,221,120,59,20,226,119,59,71,230,118,59,100,234,117,59,106,238,116,59,89,242,115,59,49,246,114,59,243,249,113,59,159,253,112,59,53,1,112,59,180,4,111,59,29,8,110,59,113,11,109,59,174,14,108,59,214,17,107,59,232,20,106,59,229,23,105,59,205,
26,104,59,159,29,103,59,92,32,102,59,4,35,101,59,150,37,100,59,20,40,99,59,126,42,98,59,210,44,97,59,19,47,96,59,62,49,95,59,86,51,94,59,89,53,93,59,72,55,92,59,35,57,91,59,234,58,90,59,157,60,89,59,61,62,88,59,201,63,87,59,66,65,86,59,167,66,85,59,249,67,84,59,56,69,83,59,99,70,82,59,124,71,81,59,130,72,80,59,118,73,79,59,86,74,78,59,36,75,77,59,224,75,76,59,138,76,75,59,33,77,74,59,166,77,73,59,25,78,72,59,123,78,71,59,202,78,70,59,8,79,69,59,53,79,68,59,80,79,67,59,89,79,66,59,82,79,65,59,57,79,
64,59,15,79,63,59,213,78,62,59,137,78,61,59,45,78,60,59,192,77,59,59,67,77,58,59,182,76,57,59,24,76,56,59,106,75,55,59,172,74,54,59,222,73,53,59,1,73,52,59,19,72,51,59,22,71,50,59,10,70,49,59,238,68,48,59,194,67,47,59,136,66,46,59,63,65,45,59,230,63,44,59,127,62,43,59,9,61,42,59,132,59,41,59,241,57,40,59,79,56,39,59,159,54,38,59,225,52,37,59,21,51,36,59,59,49,35,59,82,47,34,59,92,45,33,59,89,43,32,59,72,41,31,59,41,39,30,59,253,36,29,59,196,34,28,59,125,32,27,59,42,30,26,59,202,27,25,59,93,25,24,
59,227,22,23,59,93,20,22,59,202,17,21,59,43,15,20,59,127,12,19,59,199,9,18,59,4,7,17,59,52,4,16,59,89,1,15,59,113,254,13,59,127,251,12,59,128,248,11,59,118,245,10,59,97,242,9,59,65,239,8,59,22,236,7,59,224,232,6,59,159,229,5,59,83,226,4,59,252,222,3,59,155,219,2,59,48,216,1,59,186,212,0,59,116,162,255,58,96,155,253,58,56,148,251,58,252,140,249,58,172,133,247,58,74,126,245,58,212,118,243,58,75,111,241,58,175,103,239,58,1,96,237,58,65,88,235,58,111,80,233,58,139,72,231,58,149,64,229,58,142,56,227,58,
118,48,225,58,77,40,223,58,19,32,221,58,201,23,219,58,110,15,217,58,3,7,215,58,137,254,212,58,254,245,210,58,101,237,208,58,188,228,206,58,4,220,204,58,61,211,202,58,104,202,200,58,133,193,198,58,147,184,196,58,147,175,194,58,134,166,192,58,107,157,190,58,67,148,188,58,14,139,186,58,205,129,184,58,126,120,182,58,35,111,180,58,188,101,178,58,73,92,176,58,203,82,174,58,64,73,172,58,171,63,170,58,10,54,168,58,95,44,166,58,169,34,164,58,232,24,162,58,30,15,160,58,73,5,158,58,106,251,155,58,130,241,153,
58,145,231,151,58,151,221,149,58,147,211,147,58,135,201,145,58,114,191,143,58,86,181,141,58,49,171,139,58,4,161,137,58,208,150,135,58,148,140,133,58,81,130,131,58,7,120,129,58,110,219,126,58,192,198,122,58,5,178,118,58,62,157,114,58,108,136,110,58,142,115,106,58,165,94,102,58,178,73,98,58,181,52,94,58,175,31,90,58,159,10,86,58,135,245,81,58,102,224,77,58,61,203,73,58,14,182,69,58,215,160,65,58,154,139,61,58,86,118,57,58,13,97,53,58,191,75,49,58,108,54,45,58,21,33,41,58,186,11,37,58,91,246,32,58,249,
224,28,58,149,203,24,58,47,182,20,58,198,160,16,58,93,139,12,58,243,117,8,58,136,96,4,58,29,75,0,58,102,107,248,57,147,64,240,57,195,21,232,57,247,234,223,57,47,192,215,57,108,149,207,57,175,106,199,57,249,63,191,57,75,21,183,57,166,234,174,57,10,192,166,57,121,149,158,57,243,106,150,57,121,64,142,57,12,22,134,57,91,215,123,57,187,130,107,57,59,46,91,57,219,217,74,57,159,133,58,57,135,49,42,57,149,221,25,57,203,137,9,57,85,108,242,56,108,197,209,56,221,30,177,56,172,120,144,56,185,165,95,56,227,90,
30,56,188,33,186,55,134,61,222,54,121,2,22,183,16,144,205,183,133,14,40,184,15,84,105,184,79,76,149,184,23,238,181,184,90,143,214,184,22,48,247,184,35,232,11,185,245,55,28,185,125,135,44,185,186,214,60,185,172,37,77,185,79,116,93,185,162,194,109,185,163,16,126,185,41,47,135,185,213,85,143,185,87,124,151,185,171,162,159,185,211,200,167,185,205,238,175,185,152,20,184,185,51,58,192,185,158,95,200,185,215,132,208,185,222,169,216,185,178,206,224,185,81,243,232,185,188,23,241,185,241,59,249,185,248,175,
0,186,219,193,4,186,162,211,8,186,77,229,12,186,219,246,16,186,75,8,21,186,157,25,25,186,209,42,29,186,230,59,33,186,220,76,37,186,178,93,41,186,104,110,45,186,254,126,49,186,115,143,53,186,199,159,57,186,248,175,61,186,8,192,65,186,245,207,69,186,190,223,73,186,101,239,77,186,231,254,81,186,69,14,86,186,126,29,90,186,146,44,94,186,128,59,98,186,72,74,102,186,234,88,106,186,101,103,110,186,184,117,114,186,228,131,118,186,231,145,122,186,194,159,126,186,186,86,129,186,126,93,131,186,45,100,133,186,
199,106,135,186,75,113,137,186,186,119,139,186,19,126,141,186,86,132,143,186,130,138,145,186,153,144,147,186,152,150,149,186,129,156,151,186,82,162,153,186,13,168,155,186,175,173,157,186,58,179,159,186,173,184,161,186,8,190,163,186,74,195,165,186,116,200,167,186,133,205,169,186,124,210,171,186,91,215,173,186,32,220,175,186,203,224,177,186,93,229,179,186,212,233,181,186,49,238,183,186,116,242,185,186,156,246,187,186,169,250,189,186,154,254,191,186,113,2,194,186,43,6,196,186,202,9,198,186,77,13,200,
186,180,16,202,186,254,19,204,186,43,23,206,186,60,26,208,186,47,29,210,186,6,32,212,186,190,34,214,186,89,37,216,186,214,39,218,186,53,42,220,186,118,44,222,186,152,46,224,186,155,48,226,186,127,50,228,186,68,52,230,186,233,53,232,186,111,55,234,186,213,56,236,186,27,58,238,186,65,59,240,186],"i8",4,y.a+296960);
Q([70,60,242,186,43,61,244,186,238,61,246,186,145,62,248,186,18,63,250,186,114,63,252,186,175,63,254,186,230,31,0,187,227,31,1,187,206,31,2,187,169,31,3,187,114,31,4,187,41,31,5,187,207,30,6,187,99,30,7,187,229,29,8,187,86,29,9,187,180,28,10,187,0,28,11,187,58,27,12,187,98,26,13,187,119,25,14,187,122,24,15,187,106,23,16,187,71,22,17,187,17,21,18,187,200,19,19,187,109,18,20,187,254,16,21,187,123,15,22,187,230,13,23,187,60,12,24,187,128,10,25,187,175,8,26,187,203,6,27,187,211,4,28,187,198,2,29,187,
166,0,30,187,113,254,30,187,40,252,31,187,203,249,32,187,89,247,33,187,210,244,34,187,55,242,35,187,135,239,36,187,194,236,37,187,231,233,38,187,248,230,39,187,243,227,40,187,217,224,41,187,169,221,42,187,100,218,43,187,9,215,44,187,153,211,45,187,18,208,46,187,117,204,47,187,195,200,48,187,250,196,49,187,27,193,50,187,37,189,51,187,25,185,52,187,246,180,53,187,188,176,54,187,108,172,55,187,5,168,56,187,134,163,57,187,241,158,58,187,68,154,59,187,128,149,60,187,164,144,61,187,177,139,62,187,166,134,
63,187,132,129,64,187,74,124,65,187,247,118,66,187,141,113,67,187,10,108,68,187,111,102,69,187,188,96,70,187,240,90,71,187,12,85,72,187,15,79,73,187,249,72,74,187,202,66,75,187,130,60,76,187,34,54,77,187,168,47,78,187,20,41,79,187,103,34,80,187,161,27,81,187,193,20,82,187,200,13,83,187,180,6,84,187,135,255,84,187,64,248,85,187,222,240,86,187,99,233,87,187,204,225,88,187,28,218,89,187,81,210,90,187,107,202,91,187,107,194,92,187,80,186,93,187,26,178,94,187,201,169,95,187,92,161,96,187,213,152,97,187,
50,144,98,187,116,135,99,187,154,126,100,187,164,117,101,187,147,108,102,187,102,99,103,187,29,90,104,187,184,80,105,187,55,71,106,187,153,61,107,187,223,51,108,187,9,42,109,187,22,32,110,187,7,22,111,187,218,11,112,187,145,1,113,187,43,247,113,187,168,236,114,187,8,226,115,187,74,215,116,187,111,204,117,187,119,193,118,187,97,182,119,187,45,171,120,187,220,159,121,187,108,148,122,187,223,136,123,187,52,125,124,187,107,113,125,187,131,101,126,187,125,89,127,187,172,38,128,187,139,160,128,187,90,26,
129,187,25,148,129,187,202,13,130,187,107,135,130,187,252,0,131,187,126,122,131,187,240,243,131,187,82,109,132,187,165,230,132,187,232,95,133,187,27,217,133,187,62,82,134,187,81,203,134,187,85,68,135,187,72,189,135,187,43,54,136,187,254,174,136,187,193,39,137,187,116,160,137,187,22,25,138,187,168,145,138,187,42,10,139,187,156,130,139,187,252,250,139,187,77,115,140,187,140,235,140,187,188,99,141,187,218,219,141,187,232,83,142,187,229,203,142,187,209,67,143,187,172,187,143,187,119,51,144,187,48,171,
144,187,217,34,145,187,112,154,145,187,246,17,146,187,107,137,146,187,207,0,147,187,34,120,147,187,99,239,147,187,147,102,148,187,178,221,148,187,191,84,149,187,187,203,149,187,165,66,150,187,125,185,150,187,68,48,151,187,250,166,151,187,157,29,152,187,47,148,152,187,175,10,153,187,28,129,153,187,121,247,153,187,195,109,154,187,251,227,154,187,33,90,155,187,52,208,155,187,54,70,156,187,37,188,156,187,3,50,157,187,205,167,157,187,134,29,158,187,44,147,158,187,192,8,159,187,65,126,159,187,175,243,159,
187,11,105,160,187,85,222,160,187,139,83,161,187,175,200,161,187,192,61,162,187,190,178,162,187,170,39,163,187,130,156,163,187,71,17,164,187,250,133,164,187,153,250,164,187,37,111,165,187,158,227,165,187,4,88,166,187,86,204,166,187,150,64,167,187,193,180,167,187,218,40,168,187,223,156,168,187,208,16,169,187,174,132,169,187,120,248,169,187,47,108,170,187,210,223,170,187,97,83,171,187,220,198,171,187,68,58,172,187,152,173,172,187,215,32,173,187,3,148,173,187,27,7,174,187,31,122,174,187,14,237,174,187,
234,95,175,187,177,210,175,187,100,69,176,187,2,184,176,187,141,42,177,187,3,157,177,187,100,15,178,187,177,129,178,187,233,243,178,187,13,102,179,187,28,216,179,187,23,74,180,187,253,187,180,187,206,45,181,187,138,159,181,187,49,17,182,187,196,130,182,187,65,244,182,187,170,101,183,187,253,214,183,187,60,72,184,187,101,185,184,187,121,42,185,187,120,155,185,187,97,12,186,187,54,125,186,187,244,237,186,187,158,94,187,187,50,207,187,187,176,63,188,187,25,176,188,187,109,32,189,187,170,144,189,187,
210,0,190,187,229,112,190,187,225,224,190,187,200,80,191,187,153,192,191,187,84,48,192,187,249,159,192,187,136,15,193,187,1,127,193,187,99,238,193,187,176,93,194,187,231,204,194,187,7,60,195,187,17,171,195,187,5,26,196,187,226,136,196,187,169,247,196,187,89,102,197,187,243,212,197,187,119,67,198,187,228,177,198,187,58,32,199,187,121,142,199,187,162,252,199,187,180,106,200,187,175,216,200,187,148,70,201,187,97,180,201,187,24,34,202,187,183,143,202,187,64,253,202,187,177,106,203,187,11,216,203,187,
79,69,204,187,123,178,204,187,143,31,205,187,141,140,205,187,115,249,205,187,65,102,206,187,249,210,206,187,152,63,207,187,33,172,207,187,145,24,208,187,234,132,208,187,44,241,208,187,85,93,209,187,103,201,209,187,98,53,210,187,68,161,210,187,14,13,211,187,193,120,211,187,92,228,211,187,222,79,212,187,73,187,212,187,155,38,213,187,214,145,213,187,248,252,213,187,2,104,214,187,244,210,214,187,205,61,215,187,142,168,215,187,55,19,216,187,199,125,216,187,63,232,216,187,158,82,217,187,229,188,217,187,
19,39,218,187,41,145,218,187,38,251,218,187,10,101,219,187,213,206,219,187,135,56,220,187,33,162,220,187,162,11,221,187,10,117,221,187,88,222,221,187,142,71,222,187,171,176,222,187,174,25,223,187,153,130,223,187,106,235,223,187,34,84,224,187,193,188,224,187,70,37,225,187,178,141,225,187,5,246,225,187,62,94,226,187,93,198,226,187,99,46,227,187,80,150,227,187,35,254,227,187,220,101,228,187,124,205,228,187,2,53,229,187,110,156,229,187,192,3,230,187,248,106,230,187,22,210,230,187,27,57,231,187,5,160,
231,187,214,6,232,187,140,109,232,187,40,212,232,187,171,58,233,187,18,161,233,187,96,7,234,187,147,109,234,187,172,211,234,187,171,57,235,187,143,159,235,187,89,5,236,187,8,107,236,187,157,208,236,187,24,54,237,187,119,155,237,187,188,0,238,187,230,101,238,187,246,202,238,187,235,47,239,187,197,148,239,187,132,249,239,187,40,94,240,187,177,194,240,187,32,39,241,187,115,139,241,187,171,239,241,187,200,83,242,187,202,183,242,187,177,27,243,187,125,127,243,187,45,227,243,187,194,70,244,187,60,170,244,
187,154,13,245,187,221,112,245,187,4,212,245,187,16,55,246,187,1,154,246,187,214,252,246,187,143,95,247,187,44,194,247,187,174,36,248,187,21,135,248,187,95,233,248,187,141,75,249,187,160,173,249,187,151,15,250,187,114,113,250,187,49,211,250,187,212,52,251,187,91,150,251,187,197,247,251,187,20,89,252,187,71,186,252,187,93,27,253,187,87,124,253,187,53,221,253,187,246,61,254,187,155,158,254,187,36,255,254,187,144,95,255,187,224,191,255,187,10,16,0,188,21,64,0,188,18,112,0,188,1,160,0,188,225,207,0,188,
179,255,0,188,119,47,1,188,44,95,1,188,211,142,1,188,108,190,1,188,246,237,1,188,113,29,2,188,222,76,2,188,61,124,2,188,141,171,2,188,206,218,2,188,1,10,3,188,38,57,3,188,59,104,3,188,66,151,3,188,59,198,3,188,37,245,3,188,0,36,4,188,204,82,4,188,138,129,4,188,57,176,4,188,218,222,4,188,107,13,5,188,238,59,5,188,98,106,5,188,199,152,5,188,29,199,5,188,100,245,5,188,157,35,6,188,199,81,6,188,225,127,6,188,237,173,6,188,234,219,6,188,216,9,7,188,183,55,7,188,134,101,7,188,71,147,7,188,249,192,7,188,
156,238,7,188,47,28,8,188,180,73,8,188,41,119,8,188,144,164,8,188,231,209,8,188,47,255,8,188,103,44,9,188,145,89,9,188,171,134,9,188,182,179,9,188,178,224,9,188,159,13,10,188,124,58,10,188,74,103,10,188,9,148,10,188,184,192,10,188,88,237,10,188,232,25,11,188,105,70,11,188,219,114,11,188,61,159,11,188,144,203,11,188,212,247,11,188,7,36,12,188,44,80,12,188,64,124,12,188,70,168,12,188,59,212,12,188,34,0,13,188,248,43,13,188,191,87,13,188,118,131,13,188,30,175,13,188,182,218,13,188,62,6,14,188,183,49,
14,188,32,93,14,188,121,136,14,188,194,179,14,188,252,222,14,188,37,10,15,188,63,53,15,188,74,96,15,188,68,139,15,188,47,182,15,188,9,225,15,188,212,11,16,188,143,54,16,188,58,97,16,188,213,139,16,188,96,182,16,188,219,224,16,188,70,11,17,188,161,53,17,188,236,95,17,188,39,138,17,188,82,180,17,188,109,222,17,188,119,8,18,188,114,50,18,188,93,92,18,188,55,134,18,188,1,176,18,188,187,217,18,188,101,3,19,188,255,44,19,188,136,86,19,188,1,128,19,188,106,169,19,188,195,210,19,188,11,252,19,188,68,37,20,
188,107,78,20,188,131,119,20,188,138,160,20,188,129,201,20,188,103,242,20,188,61,27,21,188,2,68,21,188,183,108,21,188,92,149,21,188,240,189,21,188,116,230,21,188,231,14,22,188,74,55,22,188,156,95,22,188,221,135,22,188,14,176,22,188,47,216,22,188,63,0,23,188,62,40,23,188,45,80,23,188,11,120,23,188,216,159,23,188,148,199,23,188,64,239,23,188,220,22,24,188,102,62,24,188,224,101,24,188,73,141,24,188,161,180,24,188,233,219,24,188,32,3,25,188,70,42,25,188,91,81,25,188,95,120,25,188,82,159,25,188,53,198,
25,188,6,237,25,188,199,19,26,188,119,58,26,188,22,97,26,188,164,135,26,188,33,174,26,188,141,212,26,188,232,250,26,188,50,33,27,188,106,71,27,188,146,109,27,188,169,147,27,188,175,185,27,188,164,223,27,188,135,5,28,188,90,43,28,188,27,81,28,188,203,118,28,188,106,156,28,188,248,193,28,188,117,231,28,188,224,12,29,188,59,50,29,188,132,87,29,188,188,124,29,188,226,161,29,188,247,198,29,188,251,235,29,188,238,16,30,188,207,53,30,188,159,90,30,188,94,127,30,188,11,164,30,188,167,200,30,188,50,237,30,
188,171,17,31,188,19,54,31,188,105,90,31,188,174,126,31,188,225,162,31,188,3,199,31,188,19,235,31,188,18,15,32,188,0,51,32,188,219,86,32,188,166,122,32,188,95,158,32,188,6,194,32,188,155,229,32,188,31,9,33,188,146,44,33,188,242,79,33,188,65,115,33,188,127,150,33,188,171,185,33,188,197,220,33,188,205,255,33,188,196,34,34,188,169,69,34,188,124,104,34,188,61,139,34,188,237,173,34,188,139,208,34,188,23,243,34,188,145,21,35,188,250,55,35,188,80,90,35,188,149,124,35,188,200,158,35,188,233,192,35,188,248,
226,35,188,246,4,36,188,225,38,36,188,187,72,36,188,130,106,36,188,56,140,36,188,219,173,36,188,109,207,36,188,236,240,36,188,90,18,37,188,182,51,37,188,255,84,37,188,55,118,37,188,92,151,37,188,112,184,37,188,113,217,37,188,96,250,37,188,61,27,38,188,8,60,38,188,193,92,38,188,104,125,38,188,252,157,38,188,127,190,38,188,239,222,38,188,77,255,38,188,153,31,39,188,211,63,39,188,250,95,39,188,15,128,39,188,18,160,39,188,2,192,39,188,225,223,39,188,173,255,39,188,102,31,40,188,14,63,40,188,163,94,40,
188,38,126,40,188,150,157,40,188,244,188,40,188,64,220,40,188,121,251,40,188,160,26,41,188,180,57,41,188,182,88,41,188,165,119,41,188,131,150,41,188,77,181,41,188,5,212,41,188,171,242,41,188,62,17,42,188,191,47,42,188,45,78,42,188,136,108,42,188,209,138,42,188,8,169,42,188,44,199,42,188,61,229,42,188,60,3,43,188,40,33,43,188,2,63,43,188,200,92,43,188,125,122,43,188,30,152,43,188,173,181,43,188,42,211,43,188,147,240,43,188,234,13,44,188,46,43,44,188,96,72,44,188,126,101,44,188,138,130,44,188,132,159,
44,188,106,188,44,188,62,217,44,188,255,245,44,188,173,18,45,188,72,47,45,188,209,75,45,188,71,104,45,188,170,132,45,188,250,160,45,188,55,189,45,188,97,217,45,188,120,245,45,188,125,17,46,188,111,45,46,188,77,73,46,188,25,101,46,188,210,128,46,188,120,156,46,188,11,184,46,188,139,211,46,188,248,238,46,188,82,10,47,188,153,37,47,188,205,64,47,188,238,91,47,188,252,118,47,188,247,145,47,188,223,172,47,188,179,199,47,188,117,226,47,188,36,253,47,188,191,23,48,188,72,50,48,188,189,76,48,188,32,103,48,
188,111,129,48,188,171,155,48,188,212,181,48,188,233,207,48,188,236,233,48,188,219,3,49,188,183,29,49,188,128,55,49,188,54,81,49,188,216,106,49,188,104,132,49,188,228,157,49,188,77,183,49,188,162,208,49,188,229,233,49,188,20,3,50,188,47,28,50,188,56,53,50,188,45,78,50,188,15,103,50,188,221,127,50,188,153,152,50,188,64,177,50,188,213,201,50,188,86,226,50,188,196,250,50,188,30,19,51,188,101,43,51,188,153,67,51,188,185,91,51,188,198,115,51,188,191,139,51,188,165,163,51,188,120,187,51,188,55,211,51,188,
226,234,51,188,123,2,52,188,255,25,52,188,112,49,52,188,206,72,52,188,24,96,52,188,79,119,52,188,114,142,52,188,130,165,52,188,126,188,52,188,102,211,52,188,59,234,52,188,253,0,53,188,171,23,53,188,69,46,53,188,204,68,53,188,63,91,53,188,158,113,53,188,234,135,53,188,35,158,53,188,71,180,53,188,88,202,53,188,86,224,53,188,63,246,53,188,21,12,54,188,216,33,54,188,134,55,54,188,33,77,54,188,169,98,54,188,28,120,54,188,124,141,54,188,201,162,54,188,1,184,54,188,38,205,54,188,55,226,54,188,52,247,54,
188,30,12,55,188,243,32,55,188,181,53,55,188,100,74,55,188,254,94,55,188,133,115,55,188,247,135,55,188,86,156,55,188,162,176,55,188,217,196,55,188,253,216,55,188,12,237,55,188,8,1,56,188,240,20,56,188,196,40,56,188,133,60,56,188,49,80,56,188,202,99,56,188,78,119,56,188,191,138,56,188,28,158,56,188,101,177,56,188,154,196,56,188,187,215,56,188,200,234,56,188,193,253,56,188,167,16,57,188,120,35,57,188,53,54,57,188,223,72,57,188,116,91,57,188,246,109,57,188,99,128,57,188,189,146,57,188,2,165,57,188,52,
183,57,188,81,201,57,188,91,219,57,188,80,237,57,188,50,255,57,188,255,16,58,188,185,34,58,188,94,52,58,188,239,69,58,188,108,87,58,188,213,104,58,188,42,122,58,188,107,139,58,188,152,156,58,188,177,173,58,188,182,190,58,188,166,207,58,188,131,224,58,188,75,241,58,188,255,1,59,188,160,18,59,188,44,35,59,188,163,51,59,188,7,68,59,188,87,84,59,188,146,100,59,188,185,116,59,188,204,132,59,188,203,148,59,188,182,164,59,188,141,180,59,188,79,196,59,188,253,211,59,188,151,227,59,188,29,243,59,188,142,2,
60,188,235,17,60,188,53,33,60,188,105,48,60,188,138,63,60,188,150,78,60,188,143,93,60,188,114,108,60,188,66,123,60,188,253,137,60,188,165,152,60,188,55,167,60,188,182,181,60,188,32,196,60,188,118,210,60,188,184,224,60,188,229,238,60,188,255,252,60,188,3,11,61,188,244,24,61,188,208,38,61,188,152,52,61,188,76,66,61,188,235,79,61,188,118,93,61,188,236,106,61,188,78,120,61,188,156,133,61,188,214,146,61,188,251,159,61,188,12,173,61,188,8,186,61,188,240,198,61,188,196,211,61,188,131,224,61,188,46,237,61,
188,197,249,61,188,71,6,62,188,181,18,62,188,14,31,62,188,83,43,62,188,132,55,62,188,160,67,62,188,168,79,62,188,155,91,62,188,122,103,62,188,69,115,62,188,251,126,62,188,157,138,62,188,42,150,62,188,163,161,62,188,7,173,62,188,87,184,62,188,146,195,62,188,185,206,62,188,204,217,62,188,202,228,62,188,179,239,62,188,137,250,62,188,73,5,63,188,245,15,63,188,141,26,63,188,16,37,63,188,127,47,63,188,217,57,63,188,31,68,63,188,80,78,63,188,109,88,63,188,117,98,63,188,105,108,63,188,72,118,63,188,19,128,
63,188,201,137,63,188,107,147,63,188,248,156,63,188,113,166,63,188,213,175,63,188,37,185,63,188,96,194,63,188,134,203,63,188,152,212,63,188,150,221,63,188,127,230,63,188,83,239,63,188,19,248,63,188,190,0,64,188,85,9,64,188,215,17,64,188,69,26,64,188,158,34,64,188,227,42,64,188,19,51,64,188,46,59,64,188,53,67,64,188,39,75,64,188,5,83,64,188,206,90,64,188,130,98,64,188,34,106,64,188,174,113,64,188,37,121,64,188,135,128,64,188,212,135,64,188,13,143,64,188,50,150,64,188,66,157,64,188,61,164,64,188,36,
171,64,188,246,177,64,188,179,184,64,188,92,191,64,188,240,197,64,188,112,204,64,188,219,210,64,188,49,217,64,188,115,223,64,188,160,229,64,188,185,235,64,188,189,241,64,188,172,247,64,188,135,253,64,188,77,3,65,188,254,8,65,188,155,14,65,188,36,20,65,188,151,25,65,188,246,30,65,188,65,36,65,188,118,41,65,188,151,46,65,188,164,51,65,188,156,56,65,188,127,61,65,188,78,66,65,188,8,71,65,188,173,75,65,188,62,80,65,188,186,84,65,188,33,89,65,188,116,93,65,188,178,97,65,188,220,101,65,188,240,105,65,188,
241,109,65,188,220,113,65,188,179,117,65,188,117,121,65,188,35,125,65,188,188,128,65,188,64,132,65,188,176,135,65,188,11,139,65,188,82,142,65,188,132,145,65,188,161,148,65,188,169,151,65,188,157,154,65,188,124,157,65,188,71,160,65,188,253,162,65,188,158,165,65,188,43,168,65,188,163,170,65,188,6,173,65,188,85,175,65,188,143,177,65,188,180,179,65,188,197,181,65,188,193,183,65,188,168,185,65,188,123,187,65,188,57,189,65,188,227,190,65,188,120,192,65,188,248,193,65,188,100,195,65,188,187,196,65,188,253,
197,65,188,43,199,65,188,68,200,65,188,72,201,65,188,56,202,65,188,19,203,65,188,217,203,65,188,139,204,65,188,40,205,65,188,177,205,65,188,37,206,65,188,132,206,65,188,207,206,65,188,5,207,65,188,38,207,65,188,51,207,65,188,43,207,65,188,15,207,65,188,222,206,65,188,152,206,65,188,62,206,65,188,207,205,65,188,75,205,65,188,179,204,65,188,6,204,65,188,69,203,65,188,110,202,65,188,132,201,65,188,132,200,65,188,113,199,65,188,72,198,65,188,11,197,65,188,185,195,65,188,83,194,65,188,216,192,65,188,72,
191,65,188,164,189,65,188,235,187,65,188,30,186,65,188,60,184,65,188,70,182,65,188,58,180,65,188,27,178,65,188,230,175,65,188,158,173,65,188,64,171,65,188,206,168,65,188,71,166,65,188,172,163,65,188,252,160,65,188,56,158,65,188,95,155,65,188,114,152,65,188,112,149,65,188,89,146,65,188,46,143,65,188,238,139,65,188,154,136,65,188,49,133,65,188,179,129,65,188,33,126,65,188,123,122,65,188,192,118,65,188,240,114,65,188,12,111,65,188,19,107,65,188,6,103,65,188,229,98,65,188,174,94,65,188,99,90,65,188,4,
86,65,188,144,81,65,188,8,77,65,188,107,72,65,188,186,67,65,188,244,62,65,188,25,58,65,188,43,53,65,188,39,48,65,188,15,43,65,188,227,37,65,188,162,32,65,188,77,27,65,188,227,21,65,188,101,16,65,188,210,10,65,188,43,5,65,188,111,255,64,188,159,249,64,188,186,243,64,188,193,237,64,188,179,231,64,188,145,225,64,188,91,219,64,188,16,213,64,188,177,206,64,188,61,200,64,188,181,193,64,188,24,187,64,188,103,180,64,188,162,173,64,188,200,166,64,188,217,159,64,188,215,152,64,188,191,145,64,188,148,138,64,
188,84,131,64,188,0,124,64,188,151,116,64,188,26,109,64,188,136,101,64,188,227,93,64,188,40,86,64,188,90,78,64,188,119,70,64,188,127,62,64,188,116,54,64,188,84,46,64,188,31,38,64,188,215,29,64,188,122,21,64,188,8,13,64,188,131,4,64,188,233,251,63,188,58,243,63,188,119,234,63,188,161,225,63,188,181,216,63,188,182,207,63,188,162,198,63,188,122,189,63,188,61,180,63,188,236,170,63,188,135,161,63,188,14,152,63,188,129,142,63,188,223,132,63,188,41,123,63,188,94,113,63,188,128,103,63,188,141,93,63,188,134,
83,63,188,107,73,63,188,59,63,63,188,247,52,63,188,160,42,63,188,51,32,63,188,179,21,63,188,31,11,63,188,118,0,63,188,185,245,62,188,232,234,62,188,3,224,62,188,9,213,62,188,251,201,62,188,218,190,62,188,164,179,62,188,90,168,62,188,252,156,62,188,137,145,62,188,3,134,62,188,104,122,62,188,185,110,62,188,247,98,62,188,32,87,62,188,53,75,62,188,53,63,62,188,34,51,62,188,251,38,62,188,191,26,62,188,112,14,62,188,13,2,62,188,149,245,61,188,9,233,61,188,106,220,61,188,182,207,61,188,238,194,61,188,18,
182,61,188,35,169,61,188,31,156,61,188,7,143,61,188,219,129,61,188,155,116,61,188,72,103,61,188,224,89,61,188,100,76,61,188,212,62,61,188,49,49,61,188,121,35,61,188,173,21,61,188,206,7,61,188,218,249,60,188,211,235,60,188,184,221,60,188,136,207,60,188,69,193,60,188,238,178,60,188,131,164,60,188,4,150,60,188,114,135,60,188,203,120,60,188,17,106,60,188,66,91,60,188,96,76,60,188,106,61,60,188,97,46,60,188,67,31,60,188,17,16,60,188,204,0,60,188,115,241,59,188,6,226,59,188,133,210,59,188,241,194,59,188,
73,179,59,188,141,163,59,188,189,147,59,188,217,131,59,188,226,115,59,188,215,99,59,188,184,83,59,188,134,67,59,188,64,51,59,188,230,34,59,188,120,18,59,188,247,1,59,188,98,241,58,188,185,224,58,188,253,207,58,188,45,191,58,188,74,174,58,188,82,157,58,188,71,140,58,188,41,123,58,188,247,105,58,188,177,88,58,188,88,71,58,188,235,53,58,188,106,36,58,188,214,18,58,188,46,1,58,188,115,239,57,188,164,221,57,188,194,203,57,188,204,185,57,188,194,167,57,188,166,149,57,188,117,131,57,188,49,113,57,188,218,
94,57,188,111,76,57,188,240,57,57,188,94,39,57,188,185,20,57,188,0,2,57,188,52,239,56,188,84,220,56,188,97,201,56,188,91,182,56,188,65,163,56,188,20,144,56,188,211,124,56,188,127,105,56,188,23,86,56,188,157,66,56,188,14,47,56,188,109,27,56,188,184,7,56,188,240,243,55,188,20,224,55,188,38,204,55,188,35,184,55,188,14,164,55,188,229,143,55,188,170,123,55,188,90,103,55,188,248,82,55,188,130,62,55,188,249,41,55,188,93,21,55,188,174,0,55,188,235,235,54,188,22,215,54,188,45,194,54,188,49,173,54,188,33,152,
54,188,255,130,54,188,201,109,54,188,129,88,54,188,37,67,54,188,182,45,54,188,52,24,54,188,159,2,54,188,247,236,53,188,59,215,53,188,109,193,53,188,140,171,53,188,151,149,53,188,144,127,53,188,117,105,53,188,72,83,53,188,7,61,53,188,180,38,53,188,77,16,53,188,212,249,52,188,71,227,52,188,168,204,52,188,246,181,52,188,48,159,52,188,88,136,52,188,109,113,52,188,111,90,52,188,94,67,52,188,58,44,52,188,4,21,52,188,186,253,51,188,94,230,51,188,239,206,51,188,109,183,51,188,216,159,51,188,48,136,51,188,
118,112,51,188,169,88,51,188,201,64,51,188,214,40,51,188,209,16,51,188,184,248,50,188,141,224,50,188,80,200,50,188,255,175,50,188,156,151,50,188,39,127,50,188,158,102,50,188,3,78,50,188,85,53,50,188,149,28,50,188,194,3,50,188,220,234,49,188,228,209,49,188,217,184,49,188,188,159,49,188,140,134,49,188,74,109,49,188,245,83,49,188,141,58,49,188,19,33,49,188,134,7,49,188,231,237,48,188,53,212,48,188,113,186,48,188,155,160,48,188,178,134,48,188,182,108,48,188,168,82,48,188,136,56,48,188,85,30,48,188,16,
4,48,188,184,233,47,188,79,207,47,188,210,180,47,188,68,154,47,188,163,127,47,188,239,100,47,188,42,74,47,188,82,47,47,188,104,20,47,188,107,249,46,188,93,222,46,188,60,195,46,188,9,168,46,188,195,140,46,188,107,113,46,188,2,86,46,188,134,58,46,188,247,30,46,188,87,3,46,188,164,231,45,188,224,203,45,188,9,176,45,188,32,148,45,188,37,120,45,188,24,92,45,188,249,63,45,188,199,35,45,188,132,7,45,188,47,235,44,188,199,206,44,188,78,178,44,188,195,149,44,188,37,121,44,188,118,92,44,188,181,63,44,188,225,
34,44,188,252,5,44,188,5,233,43,188,252,203,43,188,225,174,43,188,180,145,43,188,117,116,43,188,37,87,43,188,194,57,43,188,78,28,43,188,200,254,42,188,48,225,42,188,135,195,42,188,203,165,42,188,254,135,42,188,31,106,42,188,46,76,42,188,44,46,42,188,24,16,42,188,242,241,41,188,186,211,41,188,113,181,41,188,22,151,41,188,170,120,41,188,43,90,41,188,156,59,41,188,250,28,41,188,71,254,40,188,131,223,40,188,173,192,40,188,197,161,40,188,204,130,40,188,193,99,40,188,165,68,40,188,119,37,40,188,56,6,40,
188,231,230,39,188,133,199,39,188,17,168,39,188,141,136,39,188,246,104,39,188,78,73,39,188,149,41,39,188,203,9,39,188,239,233,38,188,1,202,38,188,3,170,38,188,243,137,38,188,210,105,38,188,159,73,38,188,91,41,38,188,6,9,38,188,160,232,37,188,41,200,37,188,160,167,37,188,6,135,37,188,91,102,37,188,159,69,37,188,209,36,37,188,243,3,37,188,3,227,36,188,2,194,36,188,240,160,36,188,206,127,36,188,153,94,36,188,84,61,36,188,254,27,36,188,151,250,35,188,31,217,35,188,150,183,35,188,252,149,35,188,81,116,
35,188,149,82,35,188,200,48,35,188,234,14,35,188,251,236,34,188,251,202,34,188,235,168,34,188,201,134,34,188,151,100,34,188,84,66,34,188,0,32,34,188,155,253,33,188,38,219,33,188,160,184,33,188,8,150,33,188,97,115,33,188,168,80,33,188,223,45,33,188,5,11,33,188,27,232,32,188,31,197,32,188,20,162,32,188,247,126,32,188,202,91,32,188,140,56,32,188,62,21,32,188,223,241,31,188,112,206,31,188,240,170,31,188,95,135,31,188,190,99,31,188,13,64,31,188,75,28,31,188,120,248,30,188,150,212,30,188,162,176,30,188,
159,140,30,188,138,104,30,188,102,68,30,188,49,32,30,188,236,251,29,188,150,215,29,188,49,179,29,188,187,142,29,188,52,106,29,188,157,69,29,188,246,32,29,188,63,252,28,188,120,215,28,188,160,178,28,188,184,141,28,188,193,104,28,188,184,67,28,188,160,30,28,188,120,249,27,188,63,212,27,188,247,174,27,188,158,137,27,188,53,100,27,188,189,62,27,188,52,25,27,188,155,243,26,188,242,205,26,188,57,168,26,188,113,130,26,188,152,92,26,188,175,54,26,188,183,16,26,188,175,234,25,188,150,196,25,188,110,158,25,
188,54,120,25,188,238,81,25,188,151,43,25,188,47,5,25,188,184,222,24,188,49,184,24,188,155,145,24,188,244,106,24,188,62,68,24,188,120,29,24,188,163,246,23,188,190,207,23,188,201,168,23,188,197,129,23,188,177,90,23,188,141,51,23,188,90,12,23,188,23,229,22,188,197,189,22,188,99,150,22,188,242,110,22,188,113,71,22,188,225,31,22,188,65,248,21,188,146,208,21,188,211,168,21,188,5,129,21,188,40,89,21,188,59,49,21,188,63,9,21,188,52,225,20,188,25,185,20,188,239,144,20,188,182,104,20,188,109,64,20,188,21,
24,20,188,174,239,19,188,56,199,19,188,179,158,19,188,30,118,19,188,123,77,19,188,200,36,19,188,6,252,18,188,53,211,18,188,84,170,18,188,101,129,18,188,103,88,18,188,90,47,18,188,61,6,18,188,18,221,17,188,215,179,17,188,142,138,17,188,54,97,17,188,207,55,17,188,89,14,17,188,212,228,16,188,64,187,16,188,157,145,16,188,236,103,16,188,44,62,16,188,92,20,16,188,127,234,15,188,146,192,15,188,151,150,15,188,140,108,15,188,116,66,15,188,76,24,15,188,22,238,14,188,209,195,14,188,126,153,14,188,27,111,14,
188,171,68,14,188,44,26,14,188,158,239,13,188,1,197,13,188,86,154,13,188,157,111,13,188,213,68,13,188,255,25,13,188,26,239,12,188,39,196,12,188,37,153,12,188,21,110,12,188,247,66,12,188,202,23,12,188,143,236,11,188,69,193,11,188,238,149,11,188,136,106,11,188,19,63,11,188,145,19,11,188,0,232,10,188,97,188,10,188,180,144,10,188,249,100,10,188,47,57,10,188,88,13,10,188,114,225,9,188,126,181,9,188,125,137,9,188,109,93,9,188,79,49,9,188,35,5,9,188,233,216,8,188,161,172,8,188,75,128,8,188,231,83,8,188,
117,39,8,188,246,250,7,188,104,206,7,188,205,161,7,188,36,117,7,188,109,72,7,188,168,27,7,188,213,238,6,188,245,193,6,188,7,149,6,188,11,104,6,188,1,59,6,188,234,13,6,188,197,224,5,188,146,179,5,188,82,134,5,188,4,89,5,188,169,43,5,188,64,254,4,188,201,208,4,188,69,163,4,188,179,117,4,188,20,72,4,188,104,26,4,188,174,236,3,188,230,190,3,188,17,145,3,188,47,99,3,188,63,53,3,188,66,7,3,188,56,217,2,188,32,171,2,188,251,124,2,188,201,78,2,188,138,32,2,188,61,242,1,188,227,195,1,188,124,149,1,188,8,103,
1,188,134,56,1,188,248,9,1,188,92,219,0,188,179,172,0,188,253,125,0,188,58,79,0,188,106,32,0,188,26,227,255,187,70,133,255,187,88,39,255,187,81,201,254,187,47,107,254,187,243,12,254,187,158,174,253,187,47,80,253,187,166,241,252,187,4,147,252,187,72,52,252,187,114,213,251,187,131,118,251,187,122,23,251,187,88,184,250,187,28,89,250,187,199,249,249,187,89,154,249,187,209,58,249,187,48,219,248,187,118,123,248,187,163,27,248,187,183,187,247,187,177,91,247,187,146,251,246,187,91,155,246,187,10,59,246,187,
161,218,245,187,31,122,245,187,131,25,245,187,207,184,244,187,3,88,244,187,29,247,243,187,31,150,243,187,8,53,243,187,217,211,242,187,145,114,242,187,48,17,242,187,183,175,241,187,38,78,241,187,124,236,240,187,186,138,240,187,223,40,240,187,237,198,239,187,226,100,239,187,191,2,239,187,132,160,238,187,48,62,238,187,197,219,237,187,65,121,237,187,166,22,237,187,243,179,236,187,40,81,236,187,69,238,235,187,74,139,235,187,55,40,235,187,13,197,234,187,203,97,234,187,113,254,233,187,0,155,233,187,120,
55,233,187,215,211,232,187,32,112,232,187,81,12,232,187,106,168,231,187,108,68,231,187,87,224,230,187,43,124,230,187,231,23,230,187,141,179,229,187,27,79,229,187,146,234,228,187,242,133,228,187,59,33,228,187,109,188,227,187,137,87,227,187,141,242,226,187,123,141,226,187,82,40,226,187,18,195,225,187,187,93,225,187,78,248,224,187,202,146,224,187,47,45,224,187,127,199,223,187,183,97,223,187,217,251,222,187,229,149,222,187,219,47,222,187,186,201,221,187,131,99,221,187,53,253,220,187,210,150,220,187,88,
48,220,187,201,201,219,187,35,99,219,187,103,252,218,187,150,149,218,187,174,46,218,187,177,199,217,187,158,96,217,187,117,249,216,187,54,146,216,187,226,42,216,187,120,195,215,187,248,91,215,187,99,244,214,187,184,140,214,187,248,36,214,187,35,189,213,187,56,85,213,187,56,237,212,187,34,133,212,187,248,28,212,187,184,180,211,187,99,76,211,187,248,227,210,187,121,123,210,187,229,18,210,187,60,170,209,187,125,65,209,187,170,216,208,187,194,111,208,187,198,6,208,187,180,157,207,187,142,52,207,187,83,
203,206,187,4,98,206,187,160,248,205,187,39,143,205,187,154,37,205,187,249,187,204,187,67,82,204,187,121,232,203,187,155,126,203,187,168,20,203,187,161,170,202,187,134,64,202,187,87,214,201,187,19,108,201,187,188,1,201,187,81,151,200,187,210,44,200,187,62,194,199,187,152,87,199,187,221,236,198,187,14,130,198,187,44,23,198,187,54,172,197,187,45,65,197,187,15,214,196,187,223,106,196,187,155,255,195,187,67,148,195,187,216,40,195,187,90,189,194,187,200,81,194,187,35,230,193,187,107,122,193,187,160,14,
193,187,194,162,192,187,208,54,192,187,204,202,191,187,180,94,191,187,138,242,190,187,77,134,190,187,253,25,190,187,154,173,189,187,36,65,189,187,156,212,188,187,1,104,188,187,83,251,187,187,147,142,187,187,192,33,187,187,219,180,186,187,227,71,186,187,217,218,185,187,189,109,185,187,142,0,185,187,77,147,184,187,250,37,184,187,149,184,183,187,30,75,183,187,148,221,182,187,249,111,182,187,76,2,182,187,140,148,181,187,187,38,181,187,216,184,180,187,227,74,180,187,221,220,179,187,197,110,179,187,155,
0,179,187,96,146,178,187,19,36,178,187,180,181,177,187,68,71,177,187,195,216,176,187,48,106,176,187,140,251,175,187,215,140,175,187,17,30,175,187,57,175,174,187,80,64,174,187,86,209,173,187,76,98,173,187,48,243,172,187,3,132,172,187,197,20,172,187,119,165,171,187,24,54,171,187,167,198,170,187,39,87,170,187,149,231,169,187,243,119,169,187,65,8,169,187,126,152,168,187,170,40,168,187,198,184,167,187,210,72,167,187,205,216,166,187,184,104,166,187,147,248,165,187,94,136,165,187,24,24,165,187,195,167,164,
187,93,55,164,187,232,198,163,187,98,86,163,187,205,229,162,187,40,117,162,187,115,4,162,187,174,147,161,187,217,34,161,187,245,177,160,187,1,65,160,187,254,207,159,187,235,94,159,187,201,237,158,187,151,124,158,187,86,11,158,187,6,154,157,187,166,40,157,187,55,183,156,187,185,69,156,187,44,212,155,187,144,98,155,187,228,240,154,187,42,127,154,187,97,13,154,187,137,155,153,187,162,41,153,187,172,183,152,187,167,69,152,187,148,211,151,187,114,97,151,187,66,239,150,187,3,125,150,187,181,10,150,187,
89,152,149,187,239,37,149,187,118,179,148,187,239,64,148,187,90,206,147,187,182,91,147,187,5,233,146,187,69,118,146,187,119,3,146,187,155,144,145,187,177,29,145,187,186,170,144,187,180,55,144,187,160,196,143,187,127,81,143,187,80,222,142,187,19,107,142,187,201,247,141,187,113,132,141,187,12,17,141,187,153,157,140,187,25,42,140,187,139,182,139,187,240,66,139,187,71,207,138,187,146,91,138,187,207,231,137,187,255,115,137,187,34,0,137,187,56,140,136,187,65,24,136,187,61,164,135,187,44,48,135,187,14,188,
134,187,227,71,134,187,172,211,133,187,104,95,133,187,23,235,132,187,186,118,132,187,80,2,132,187,218,141,131,187,87,25,131,187,200,164,130,187,44,48,130,187,132,187,129,187,208,70,129,187,16,210,128,187,67,93,128,187,213,208,127,187,11,231,126,187,42,253,125,187,48,19,125,187,31,41,124,187,246,62,123,187,181,84,122,187,93,106,121,187,237,127,120,187,102,149,119,187,200,170,118,187,19,192,117,187,70,213,116,187,99,234,115,187,105,255,114,187,88,20,114,187,48,41,113,187,242,61,112,187,157,82,111,187,
50,103,110,187,177,123,109,187,25,144,108,187,108,164,107,187,168,184,106,187,207,204,105,187,224,224,104,187,219,244,103,187,193,8,103,187,145,28,102,187,76,48,101,187,241,67,100,187,130,87,99,187,253,106,98,187,100,126,97,187,181,145,96,187,242,164,95,187,26,184,94,187,45,203,93,187,45,222,92,187,23,241,91,187,238,3,91,187,176,22,90,187,94,41,89,187,248,59,88,187,127,78,87,187,241,96,86,187,80,115,85,187,155,133,84,187,211,151,83,187,248,169,82,187,9,188,81,187,7,206,80,187,242,223,79,187,202,241,
78,187,143,3,78,187,65,21,77,187,225,38,76,187,110,56,75,187,232,73,74,187,80,91,73,187,166,108,72,187,234,125,71,187,28,143,70,187,60,160,69,187,73,177,68,187,70,194,67,187,48,211,66,187,9,228,65,187,208,244,64,187,134,5,64,187,43,22,63,187,190,38,62,187,65,55,61,187,178,71,60,187,19,88,59,187,99,104,58,187,162,120,57,187,209,136,56,187,239,152,55,187,253,168,54,187,250,184,53,187,232,200,52,187,197,216,51,187,146,232,50,187,80,248,49,187,253,7,49,187,156,23,48,187,42,39,47,187,169,54,46,187,25,
70,45,187,121,85,44,187,202,100,43,187,13,116,42,187,64,131,41,187,100,146,40,187,122,161,39,187,129,176,38,187,121,191,37,187,99,206,36,187,63,221,35,187,12,236,34,187,203,250,33,187,125,9,33,187,32,24,32,187,181,38,31,187,61,53,30,187,183,67,29,187,35,82,28,187,130,96,27,187,212,110,26,187,24,125,25,187,80,139,24,187,122,153,23,187,151,167,22,187,168,181,21,187,172,195,20,187,163,209,19,187,141,223,18,187,107,237,17,187,61,251,16,187,3,9,16,187,188,22,15,187,106,36,14,187,11,50,13,187,161,63,12,
187,43,77,11,187,169,90,10,187,28,104,9,187,132,117,8,187,224,130,7,187,49,144,6,187,118,157,5,187,177,170,4,187,225,183,3,187,6,197,2,187,33,210,1,187,48,223,0,187,107,216,255,186,97,242,253,186,66,12,252,186,15,38,250,186,199,63,248,186,108,89,246,186,252,114,244,186,122,140,242,186,227,165,240,186,58,191,238,186,126,216,236,186,174,241,234,186,205,10,233,186,217,35,231,186,210,60,229,186,186,85,227,186,144,110,225,186,85,135,223,186,8,160,221,186,170,184,219,186,59,209,217,186,187,233,215,186,
43,2,214,186,139,26,212,186,218,50,210,186,25,75,208,186,73,99,206,186,105,123,204,186,122,147,202,186,124,171,200,186,111,195,198,186,83,219,196,186,40,243,194,186,240,10,193,186,169,34,191,186,85,58,189,186,242,81,187,186,130,105,185,186,5,129,183,186,123,152,181,186,228,175,179,186,65,199,177,186,145,222,175,186,212,245,173,186,12,13,172,186,56,36,170,186,88,59,168,186,108,82,166,186,118,105,164,186,116,128,162,186,104,151,160,186,81,174,158,186,47,197,156,186,3,220,154,186,206,242,152,186,142,
9,151,186,69,32,149,186,242,54,147,186,151,77,145,186,50,100,143,186,196,122,141,186,78,145,139,186,208,167,137,186,73,190,135,186,186,212,133,186,36,235,131,186,134,1,130,186,224,23,128,186,104,92,124,186,1,137,120,186,140,181,116,186,11,226,112,186,125,14,109,186,226,58,105,186,60,103,101,186,138,147,97,186,205,191,93,186,5,236,89,186,52,24,86,186,88,68,82,186,115,112,78,186,133,156,74,186,142,200,70,186,143,244,66,186,136,32,63,186,122,76,59,186,101,120,55,186,73,164,51,186,40,208,47,186,0,252,
43,186,211,39,40,186,161,83,36,186,107,127,32,186,48,171,28,186,242,214,24,186,177,2,21,186,108,46,17,186,37,90,13,186,220,133,9,186,145,177,5,186,69,221,1,186,241,17,252,185,87,105,244,185,188,192,236,185,34,24,229,185,137,111,221,185,243,198,213,185,96,30,206,185,209,117,198,185,71,205,190,185,195,36,183,185,68,124,175,185,205,211,167,185,95,43,160,185,249,130,152,185,156,218,144,185,74,50,137,185,4,138,129,185,147,195,115,185,56,115,100,185,248,34,85,185,214,210,69,185,210,130,54,185,239,50,39,
185,45,227,23,185,144,147,8,185,47,136,242,184,140,233,211,184,58,75,181,184,60,173,150,184,44,31,112,184,150,228,50,184,118,85,235,183,140,198,97,183,121,213,152,53,86,252,131,55,168,105,254,55,161,106,60,56,138,159,121,56,197,105,155,56,77,3,186,56,89,156,216,56,231,52,247,56,122,230,10,57,61,50,26,57,189,125,41,57,246,200,56,57,233,19,72,57,146,94,87,57,240,168,102,57,3,243,117,57,100,158,130,57,30,67,138,57,176,231,145,57,24,140,153,57,87,48,161,57,106,212,168,57,81,120,176,57,12,28,184,57,154,
191,191,57,249,98,199,57,41,6,207,57,41,169,214,57,249,75,222,57,151,238,229,57,3,145,237,57,60,51,245,57,64,213,252,57,136,59,2,58,85,12,6,58,8,221,9,58,158,173,13,58,25,126,17,58,119,78,21,58,184,30,25,58,220,238,28,58,227,190,32,58,203,142,36,58,150,94,40,58,65,46,44,58,205,253,47,58,58,205,51,58,134,156,55,58,178,107,59,58,189,58,63,58,168,9,67,58,112,216,70,58,22,167,74,58,154,117,78,58,251,67,82,58,57,18,86,58,83,224,89,58,73,174,93,58,27,124,97,58,200,73,101,58,79,23,105,58,177,228,108,58,
237,177,112,58,2,127,116,58,240,75,120,58,184,24,124,58,87,229,127,58,231,216,129,58,15,191,131,58,34,165,133,58,32,139,135,58,10,113,137,58,222,86,139,58,157,60,141,58,71,34,143,58,219,7,145,58,89,237,146,58,194,210,148,58,20,184,150,58,79,157,152,58,116,130,154,58,130,103,156,58,121,76,158,58,89,49,160,58,33,22,162,58,210,250,163,58,106,223,165,58,235,195,167,58,84,168,169,58,164,140,171,58,219,112,173,58,249,84,175,58,255,56,177,58,235,28,179,58,190,0,181,58,119,228,182,58,22,200,184,58,155,171,
186,58,6,143,188,58,87,114,190,58,140,85,192,58,167,56,194,58,167,27,196,58,140,254,197,58,85,225,199,58,3,196,201,58,148,166,203,58,10,137,205,58,99,107,207,58,160,77,209,58,193,47,211,58,196,17,213,58,171,243,214,58,116,213,216,58,32,183,218,58,174,152,220,58,30,122,222,58,112,91,224,58,164,60,226,58,186,29,228,58,177,254,229,58,137,223,231,58,66,192,233,58,220,160,235,58,86,129,237,58,177,97,239,58,236,65,241,58,7,34,243,58,2,2,245,58,220,225,246,58,150,193,248,58,47,161,250,58,167,128,252,58,
254,95,254,58,154,31,0,59,35,15,1,59,156,254,1,59,4,238,2,59,91,221,3,59,161,204,4,59,213,187,5,59,248,170,6,59,10,154,7,59,10,137,8,59,248,119,9,59,212,102,10,59,159,85,11,59,87,68,12,59,254,50,13,59,146,33,14,59,20,16,15,59,132,254,15,59,225,236,16,59,44,219,17,59,100,201,18,59,137,183,19,59,155,165,20,59,155,147,21,59,135,129,22,59,96,111,23,59,38,93,24,59,217,74,25,59,120,56,26,59,3,38,27,59,123,19,28,59,223,0,29,59,47,238,29,59,108,219,30,59,148,200,31,59,168,181,32,59,168,162,33,59,148,143,
34,59,107,124,35,59,46,105,36,59,220,85,37,59,117,66,38,59,249,46,39,59,105,27,40,59,196,7,41,59,9,244,41,59,57,224,42,59,84,204,43,59,90,184,44,59,74,164,45,59,36,144,46,59,233,123,47,59,152,103,48,59,49,83,49,59,180,62,50,59,33,42,51,59,120,21,52,59,185,0,53,59,227,235,53,59,246,214,54,59,244,193,55,59,218,172,56,59,170,151,57,59,99,130,58,59,5,109,59,59,144,87,60,59,4,66,61,59,96,44,62,59,165,22,63,59,211,0,64,59,233,234,64,59,232,212,65,59,207,190,66,59,158,168,67,59,85,146,68,59,244,123,69,59,
123,101,70,59,234,78,71,59,65,56,72,59],"i8",4,y.a+307200);
Q([127,33,73,59,165,10,74,59,178,243,74,59,166,220,75,59,130,197,76,59,69,174,77,59,239,150,78,59,128,127,79,59,247,103,80,59,86,80,81,59,155,56,82,59,198,32,83,59,216,8,84,59,209,240,84,59,176,216,85,59,116,192,86,59,31,168,87,59,176,143,88,59,39,119,89,59,132,94,90,59,198,69,91,59,238,44,92,59,252,19,93,59,239,250,93,59,199,225,94,59,133,200,95,59,39,175,96,59,175,149,97,59,28,124,98,59,109,98,99,59,163,72,100,59,190,46,101,59,190,20,102,59,162,250,102,59,106,224,103,59,23,198,104,59,168,171,105,
59,29,145,106,59,117,118,107,59,178,91,108,59,211,64,109,59,215,37,110,59,191,10,111,59,139,239,111,59,58,212,112,59,204,184,113,59,66,157,114,59,155,129,115,59,215,101,116,59,246,73,117,59,247,45,118,59,220,17,119,59,163,245,119,59,77,217,120,59,217,188,121,59,72,160,122,59,153,131,123,59,204,102,124,59,226,73,125,59,217,44,126,59,179,15,127,59,110,242,127,59,134,106,128,59,197,219,128,59,245,76,129,59,22,190,129,59,40,47,130,59,42,160,130,59,29,17,131,59,0,130,131,59,212,242,131,59,153,99,132,59,
77,212,132,59,243,68,133,59,136,181,133,59,14,38,134,59,132,150,134,59,234,6,135,59,65,119,135,59,135,231,135,59,190,87,136,59,228,199,136,59,251,55,137,59,1,168,137,59,248,23,138,59,222,135,138,59,180,247,138,59,121,103,139,59,47,215,139,59,212,70,140,59,104,182,140,59,237,37,141,59,96,149,141,59,195,4,142,59,22,116,142,59,88,227,142,59,137,82,143,59,170,193,143,59,185,48,144,59,184,159,144,59,166,14,145,59,131,125,145,59,80,236,145,59,11,91,146,59,181,201,146,59,78,56,147,59,214,166,147,59,77,21,
148,59,179,131,148,59,7,242,148,59,74,96,149,59,124,206,149,59,156,60,150,59,171,170,150,59,168,24,151,59,148,134,151,59,110,244,151,59,55,98,152,59,238,207,152,59,147,61,153,59,38,171,153,59,168,24,154,59,24,134,154,59,118,243,154,59,194,96,155,59,252,205,155,59,36,59,156,59,58,168,156,59,62,21,157,59,48,130,157,59,15,239,157,59,220,91,158,59,151,200,158,59,64,53,159,59,214,161,159,59,90,14,160,59,203,122,160,59,42,231,160,59,118,83,161,59,176,191,161,59,215,43,162,59,236,151,162,59,237,3,163,59,
220,111,163,59,184,219,163,59,129,71,164,59,56,179,164,59,219,30,165,59,107,138,165,59,232,245,165,59,83,97,166,59,170,204,166,59,238,55,167,59,30,163,167,59,60,14,168,59,70,121,168,59,61,228,168,59,32,79,169,59,240,185,169,59,173,36,170,59,86,143,170,59,235,249,170,59,109,100,171,59,219,206,171,59,54,57,172,59,125,163,172,59,176,13,173,59,207,119,173,59,218,225,173,59,210,75,174,59,181,181,174,59,133,31,175,59,64,137,175,59,231,242,175,59,123,92,176,59,250,197,176,59,101,47,177,59,187,152,177,59,
254,1,178,59,44,107,178,59,69,212,178,59,75,61,179,59,59,166,179,59,24,15,180,59,223,119,180,59,147,224,180,59,49,73,181,59,187,177,181,59,48,26,182,59,144,130,182,59,220,234,182,59,19,83,183,59,52,187,183,59,65,35,184,59,57,139,184,59,28,243,184,59,234,90,185,59,163,194,185,59,71,42,186,59,213,145,186,59,78,249,186,59,178,96,187,59,1,200,187,59,58,47,188,59,94,150,188,59,109,253,188,59,102,100,189,59,73,203,189,59,23,50,190,59,207,152,190,59,114,255,190,59,255,101,191,59,118,204,191,59,216,50,192,
59,36,153,192,59,90,255,192,59,122,101,193,59,132,203,193,59,120,49,194,59,86,151,194,59,30,253,194,59,208,98,195,59,108,200,195,59,241,45,196,59,97,147,196,59,186,248,196,59,253,93,197,59,41,195,197,59,64,40,198,59,63,141,198,59,41,242,198,59,251,86,199,59,183,187,199,59,93,32,200,59,236,132,200,59,100,233,200,59,198,77,201,59,17,178,201,59,69,22,202,59,98,122,202,59,105,222,202,59,88,66,203,59,49,166,203,59,242,9,204,59,157,109,204,59,48,209,204,59,173,52,205,59,18,152,205,59,96,251,205,59,150,
94,206,59,182,193,206,59,190,36,207,59,175,135,207,59,136,234,207,59,74,77,208,59,245,175,208,59,136,18,209,59,3,117,209,59,103,215,209,59,180,57,210,59,232,155,210,59,5,254,210,59,10,96,211,59,247,193,211,59,205,35,212,59,139,133,212,59,48,231,212,59,190,72,213,59,52,170,213,59,146,11,214,59,215,108,214,59,5,206,214,59,26,47,215,59,24,144,215,59,253,240,215,59,202,81,216,59,126,178,216,59,26,19,217,59,158,115,217,59,9,212,217,59,92,52,218,59,151,148,218,59,185,244,218,59,194,84,219,59,179,180,219,
59,139,20,220,59,74,116,220,59,241,211,220,59,127,51,221,59,244,146,221,59,80,242,221,59,148,81,222,59,190,176,222,59,208,15,223,59,200,110,223,59,168,205,223,59,110,44,224,59,27,139,224,59,175,233,224,59,42,72,225,59,140,166,225,59,213,4,226,59,4,99,226,59,26,193,226,59,22,31,227,59,249,124,227,59,195,218,227,59,115,56,228,59,10,150,228,59,135,243,228,59,234,80,229,59,52,174,229,59,100,11,230,59,123,104,230,59,119,197,230,59,90,34,231,59,35,127,231,59,211,219,231,59,104,56,232,59,227,148,232,59,
69,241,232,59,140,77,233,59,186,169,233,59,205,5,234,59,198,97,234,59,165,189,234,59,106,25,235,59,20,117,235,59,165,208,235,59,27,44,236,59,118,135,236,59,184,226,236,59,223,61,237,59,235,152,237,59,221,243,237,59,180,78,238,59,113,169,238,59,20,4,239,59,155,94,239,59,8,185,239,59,90,19,240,59,146,109,240,59,175,199,240,59,177,33,241,59,152,123,241,59,100,213,241,59,21,47,242,59,171,136,242,59,39,226,242,59,135,59,243,59,204,148,243,59,246,237,243,59,5,71,244,59,249,159,244,59,210,248,244,59,143,
81,245,59,49,170,245,59,184,2,246,59,36,91,246,59,116,179,246,59,168,11,247,59,193,99,247,59,191,187,247,59,161,19,248,59,104,107,248,59,19,195,248,59,162,26,249,59,22,114,249,59,110,201,249,59,170,32,250,59,203,119,250,59,207,206,250,59,184,37,251,59,133,124,251,59,54,211,251,59,203,41,252,59,69,128,252,59,162,214,252,59,227,44,253,59,8,131,253,59,17,217,253,59,253,46,254,59,206,132,254,59,130,218,254,59,26,48,255,59,150,133,255,59,246,218,255,59,28,24,0,60,176,66,0,60,53,109,0,60,172,151,0,60,21,
194,0,60,111,236,0,60,187,22,1,60,249,64,1,60,41,107,1,60,74,149,1,60,93,191,1,60,97,233,1,60,87,19,2,60,63,61,2,60,24,103,2,60,227,144,2,60,160,186,2,60,78,228,2,60,237,13,3,60,126,55,3,60,0,97,3,60,116,138,3,60,218,179,3,60,49,221,3,60,121,6,4,60,179,47,4,60,222,88,4,60,250,129,4,60,8,171,4,60,7,212,4,60,247,252,4,60,217,37,5,60,172,78,5,60,113,119,5,60,38,160,5,60,205,200,5,60,101,241,5,60,238,25,6,60,105,66,6,60,212,106,6,60,49,147,6,60,127,187,6,60,190,227,6,60,238,11,7,60,16,52,7,60,34,92,7,
60,37,132,7,60,26,172,7,60,255,211,7,60,214,251,7,60,157,35,8,60,86,75,8,60,255,114,8,60,154,154,8,60,37,194,8,60,162,233,8,60,15,17,9,60,109,56,9,60,188,95,9,60,252,134,9,60,44,174,9,60,78,213,9,60,96,252,9,60,99,35,10,60,87,74,10,60,60,113,10,60,18,152,10,60,216,190,10,60,143,229,10,60,54,12,11,60,207,50,11,60,88,89,11,60,209,127,11,60,59,166,11,60,150,204,11,60,226,242,11,60,30,25,12,60,75,63,12,60,104,101,12,60,118,139,12,60,116,177,12,60,99,215,12,60,67,253,12,60,19,35,13,60,211,72,13,60,132,
110,13,60,37,148,13,60,183,185,13,60,57,223,13,60,172,4,14,60,15,42,14,60,98,79,14,60,166,116,14,60,218,153,14,60,254,190,14,60,19,228,14,60,24,9,15,60,13,46,15,60,243,82,15,60,201,119,15,60,143,156,15,60,69,193,15,60,236,229,15,60,131,10,16,60,10,47,16,60,129,83,16,60,232,119,16,60,63,156,16,60,135,192,16,60,191,228,16,60,230,8,17,60,254,44,17,60,6,81,17,60,254,116,17,60,230,152,17,60,190,188,17,60,134,224,17,60,62,4,18,60,230,39,18,60,126,75,18,60,7,111,18,60,126,146,18,60,230,181,18,60,62,217,
18,60,134,252,18,60,189,31,19,60,229,66,19,60,252,101,19,60,4,137,19,60,251,171,19,60,225,206,19,60,184,241,19,60,127,20,20,60,53,55,20,60,219,89,20,60,113,124,20,60,246,158,20,60,107,193,20,60,208,227,20,60,37,6,21,60,105,40,21,60,157,74,21,60,193,108,21,60,212,142,21,60,215,176,21,60,202,210,21,60,172,244,21,60,126,22,22,60,63,56,22,60,240,89,22,60,145,123,22,60,33,157,22,60,160,190,22,60,15,224,22,60,110,1,23,60,188,34,23,60,249,67,23,60,38,101,23,60,67,134,23,60,79,167,23,60,74,200,23,60,53,233,
23,60,15,10,24,60,217,42,24,60,145,75,24,60,58,108,24,60,209,140,24,60,88,173,24,60,206,205,24,60,52,238,24,60,137,14,25,60,205,46,25,60,0,79,25,60,35,111,25,60,53,143,25,60,54,175,25,60,39,207,25,60,6,239,25,60,213,14,26,60,147,46,26,60,64,78,26,60,220,109,26,60,104,141,26,60,226,172,26,60,76,204,26,60,165,235,26,60,237,10,27,60,36,42,27,60,74,73,27,60,95,104,27,60,99,135,27,60,86,166,27,60,57,197,27,60,10,228,27,60,202,2,28,60,122,33,28,60,24,64,28,60,165,94,28,60,33,125,28,60,140,155,28,60,230,
185,28,60,47,216,28,60,103,246,28,60,142,20,29,60,164,50,29,60,168,80,29,60,156,110,29,60,126,140,29,60,79,170,29,60,15,200,29,60,190,229,29,60,91,3,30,60,231,32,30,60,99,62,30,60,204,91,30,60,37,121,30,60,108,150,30,60,163,179,30,60,199,208,30,60,219,237,30,60,221,10,31,60,206,39,31,60,174,68,31,60,124,97,31,60,57,126,31,60,229,154,31,60,127,183,31,60,8,212,31,60,127,240,31,60,229,12,32,60,58,41,32,60,125,69,32,60,175,97,32,60,208,125,32,60,222,153,32,60,220,181,32,60,200,209,32,60,162,237,32,60,
108,9,33,60,35,37,33,60,201,64,33,60,94,92,33,60,224,119,33,60,82,147,33,60,178,174,33,60,0,202,33,60,61,229,33,60,104,0,34,60,129,27,34,60,137,54,34,60,127,81,34,60,100,108,34,60,55,135,34,60,248,161,34,60,168,188,34,60,70,215,34,60,210,241,34,60,77,12,35,60,182,38,35,60,13,65,35,60,83,91,35,60,135,117,35,60,169,143,35,60,185,169,35,60,183,195,35,60,164,221,35,60,127,247,35,60,72,17,36,60,0,43,36,60,165,68,36,60,57,94,36,60,187,119,36,60,43,145,36,60,137,170,36,60,214,195,36,60,16,221,36,60,57,246,
36,60,79,15,37,60,84,40,37,60,71,65,37,60,40,90,37,60,247,114,37,60,180,139,37,60,96,164,37,60,249,188,37,60,128,213,37,60,246,237,37,60,89,6,38,60,170,30,38,60,234,54,38,60,23,79,38,60,50,103,38,60,59,127,38,60,51,151,38,60,24,175,38,60,235,198,38,60,172,222,38,60,91,246,38,60,248,13,39,60,131,37,39,60,252,60,39,60,98,84,39,60,183,107,39,60,249,130,39,60,42,154,39,60,72,177,39,60,84,200,39,60,77,223,39,60,53,246,39,60,11,13,40,60,206,35,40,60,127,58,40,60,30,81,40,60,170,103,40,60,37,126,40,60,141,
148,40,60,227,170,40,60,39,193,40,60,88,215,40,60,119,237,40,60,132,3,41,60,127,25,41,60,103,47,41,60,62,69,41,60,1,91,41,60,179,112,41,60,82,134,41,60,223,155,41,60,89,177,41,60,193,198,41,60,23,220,41,60,91,241,41,60,140,6,42,60,170,27,42,60,183,48,42,60,177,69,42,60,152,90,42,60,109,111,42,60,48,132,42,60,224,152,42,60,126,173,42,60,10,194,42,60,131,214,42,60,233,234,42,60,61,255,42,60,127,19,43,60,174,39,43,60,202,59,43,60,213,79,43,60,204,99,43,60,177,119,43,60,132,139,43,60,68,159,43,60,242,
178,43,60,141,198,43,60,21,218,43,60,139,237,43,60,239,0,44,60,64,20,44,60,126,39,44,60,170,58,44,60,195,77,44,60,201,96,44,60,189,115,44,60,159,134,44,60,109,153,44,60,41,172,44,60,211,190,44,60,106,209,44,60,238,227,44,60,96,246,44,60,191,8,45,60,11,27,45,60,68,45,45,60,107,63,45,60,128,81,45,60,129,99,45,60,112,117,45,60,76,135,45,60,22,153,45,60,204,170,45,60,112,188,45,60,2,206,45,60,128,223,45,60,236,240,45,60,69,2,46,60,140,19,46,60,191,36,46,60,224,53,46,60,238,70,46,60,234,87,46,60,210,104,
46,60,168,121,46,60,107,138,46,60,27,155,46,60,184,171,46,60,67,188,46,60,187,204,46,60,32,221,46,60,114,237,46,60,177,253,46,60,221,13,47,60,247,29,47,60,254,45,47,60,242,61,47,60,211,77,47,60,161,93,47,60,92,109,47,60,4,125,47,60,154,140,47,60,29,156,47,60,140,171,47,60,233,186,47,60,51,202,47,60,106,217,47,60,142,232,47,60,159,247,47,60,158,6,48,60,137,21,48,60,97,36,48,60,39,51,48,60,217,65,48,60,121,80,48,60,5,95,48,60,127,109,48,60,230,123,48,60,57,138,48,60,122,152,48,60,168,166,48,60,194,
180,48,60,202,194,48,60,191,208,48,60,161,222,48,60,111,236,48,60,43,250,48,60,212,7,49,60,105,21,49,60,236,34,49,60,92,48,49,60,184,61,49,60,2,75,49,60,56,88,49,60,92,101,49,60,108,114,49,60,105,127,49,60,84,140,49,60,43,153,49,60,239,165,49,60,160,178,49,60,62,191,49,60,201,203,49,60,65,216,49,60,166,228,49,60,247,240,49,60,54,253,49,60,97,9,50,60,121,21,50,60,127,33,50,60,113,45,50,60,80,57,50,60,27,69,50,60,212,80,50,60,122,92,50,60,12,104,50,60,139,115,50,60,248,126,50,60,81,138,50,60,150,149,
50,60,201,160,50,60,233,171,50,60,245,182,50,60,238,193,50,60,212,204,50,60,167,215,50,60,103,226,50,60,19,237,50,60,173,247,50,60,51,2,51,60,166,12,51,60,6,23,51,60,82,33,51,60,139,43,51,60,178,53,51,60,197,63,51,60,196,73,51,60,177,83,51,60,138,93,51,60,80,103,51,60,3,113,51,60,163,122,51,60,47,132,51,60,168,141,51,60,14,151,51,60,97,160,51,60,160,169,51,60,205,178,51,60,230,187,51,60,235,196,51,60,222,205,51,60,189,214,51,60,137,223,51,60,66,232,51,60,231,240,51,60,121,249,51,60,248,1,52,60,100,
10,52,60,188,18,52,60,1,27,52,60,51,35,52,60,81,43,52,60,93,51,52,60,85,59,52,60,57,67,52,60,11,75,52,60,201,82,52,60,116,90,52,60,11,98,52,60,143,105,52,60,0,113,52,60,94,120,52,60,168,127,52,60,223,134,52,60,3,142,52,60,19,149,52,60,16,156,52,60,250,162,52,60,208,169,52,60,147,176,52,60,67,183,52,60,223,189,52,60,105,196,52,60,222,202,52,60,65,209,52,60,144,215,52,60,204,221,52,60,244,227,52,60,9,234,52,60,11,240,52,60,250,245,52,60,213,251,52,60,157,1,53,60,81,7,53,60,242,12,53,60,128,18,53,60,
251,23,53,60,98,29,53,60,181,34,53,60,246,39,53,60,35,45,53,60,60,50,53,60,67,55,53,60,54,60,53,60,21,65,53,60,226,69,53,60,155,74,53,60,64,79,53,60,210,83,53,60,81,88,53,60,189,92,53,60,21,97,53,60,89,101,53,60,139,105,53,60,169,109,53,60,180,113,53,60,171,117,53,60,143,121,53,60,95,125,53,60,29,129,53,60,198,132,53,60,93,136,53,60,224,139,53,60,80,143,53,60,172,146,53,60,245,149,53,60,43,153,53,60,77,156,53,60,92,159,53,60,87,162,53,60,63,165,53,60,20,168,53,60,213,170,53,60,131,173,53,60,30,176,
53,60,165,178,53,60,25,181,53,60,122,183,53,60,199,185,53,60,1,188,53,60,39,190,53,60,58,192,53,60,58,194,53,60,38,196,53,60,255,197,53,60,197,199,53,60,119,201,53,60,22,203,53,60,161,204,53,60,25,206,53,60,126,207,53,60,207,208,53,60,13,210,53,60,56,211,53,60,79,212,53,60,83,213,53,60,67,214,53,60,32,215,53,60,234,215,53,60,161,216,53,60,68,217,53,60,211,217,53,60,80,218,53,60,185,218,53,60,14,219,53,60,80,219,53,60,127,219,53,60,155,219,53,60,163,219,53,60,152,219,53,60,121,219,53,60,71,219,53,
60,2,219,53,60,169,218,53,60,61,218,53,60,190,217,53,60,43,217,53,60,133,216,53,60,204,215,53,60,255,214,53,60,31,214,53,60,44,213,53,60,37,212,53,60,11,211,53,60,222,209,53,60,157,208,53,60,73,207,53,60,225,205,53,60,102,204,53,60,216,202,53,60,55,201,53,60,130,199,53,60,186,197,53,60,223,195,53,60,240,193,53,60,238,191,53,60,217,189,53,60,176,187,53,60,116,185,53,60,37,183,53,60,194,180,53,60,76,178,53,60,195,175,53,60,38,173,53,60,119,170,53,60,180,167,53,60,221,164,53,60,243,161,53,60,246,158,
53,60,230,155,53,60,194,152,53,60,140,149,53,60,65,146,53,60,228,142,53,60,115,139,53,60,239,135,53,60,88,132,53,60,173,128,53,60,240,124,53,60,30,121,53,60,58,117,53,60,66,113,53,60,56,109,53,60,25,105,53,60,232,100,53,60,163,96,53,60,76,92,53,60,224,87,53,60,98,83,53,60,208,78,53,60,43,74,53,60,115,69,53,60,168,64,53,60,201,59,53,60,216,54,53,60,211,49,53,60,186,44,53,60,143,39,53,60,80,34,53,60,254,28,53,60,153,23,53,60,33,18,53,60,150,12,53,60,247,6,53,60,69,1,53,60,128,251,52,60,168,245,52,60,
188,239,52,60,190,233,52,60,172,227,52,60,135,221,52,60,79,215,52,60,4,209,52,60,165,202,52,60,51,196,52,60,175,189,52,60,23,183,52,60,108,176,52,60,173,169,52,60,220,162,52,60,248,155,52,60,0,149,52,60,245,141,52,60,215,134,52,60,166,127,52,60,98,120,52,60,11,113,52,60,161,105,52,60,35,98,52,60,147,90,52,60,239,82,52,60,56,75,52,60,110,67,52,60,145,59,52,60,161,51,52,60,158,43,52,60,136,35,52,60,95,27,52,60,35,19,52,60,211,10,52,60,113,2,52,60,251,249,51,60,115,241,51,60,215,232,51,60,41,224,51,
60,103,215,51,60,147,206,51,60,171,197,51,60,176,188,51,60,163,179,51,60,130,170,51,60,78,161,51,60,8,152,51,60,174,142,51,60,65,133,51,60,194,123,51,60,47,114,51,60,137,104,51,60,209,94,51,60,5,85,51,60,39,75,51,60,53,65,51,60,49,55,51,60,26,45,51,60,239,34,51,60,178,24,51,60,98,14,51,60,255,3,51,60,137,249,50,60,0,239,50,60,100,228,50,60,182,217,50,60,244,206,50,60,31,196,50,60,56,185,50,60,62,174,50,60,49,163,50,60,17,152,50,60,222,140,50,60,152,129,50,60,64,118,50,60,212,106,50,60,86,95,50,60,
197,83,50,60,33,72,50,60,106,60,50,60,161,48,50,60,196,36,50,60,213,24,50,60,211,12,50,60,190,0,50,60,151,244,49,60,92,232,49,60,15,220,49,60,175,207,49,60,61,195,49,60,183,182,49,60,31,170,49,60,116,157,49,60,183,144,49,60,230,131,49,60,3,119,49,60,13,106,49,60,5,93,49,60,233,79,49,60,188,66,49,60,123,53,49,60,40,40,49,60,194,26,49,60,73,13,49,60,190,255,48,60,31,242,48,60,111,228,48,60,172,214,48,60,214,200,48,60,237,186,48,60,242,172,48,60,228,158,48,60,195,144,48,60,144,130,48,60,75,116,48,60,
242,101,48,60,136,87,48,60,10,73,48,60,122,58,48,60,216,43,48,60,34,29,48,60,91,14,48,60,129,255,47,60,148,240,47,60,148,225,47,60,131,210,47,60,94,195,47,60,39,180,47,60,222,164,47,60,130,149,47,60,20,134,47,60,147,118,47,60,0,103,47,60,90,87,47,60,162,71,47,60,215,55,47,60,250,39,47,60,11,24,47,60,9,8,47,60,244,247,46,60,205,231,46,60,148,215,46,60,73,199,46,60,235,182,46,60,122,166,46,60,248,149,46,60,98,133,46,60,187,116,46,60,1,100,46,60,53,83,46,60,86,66,46,60,102,49,46,60,98,32,46,60,77,15,
46,60,37,254,45,60,235,236,45,60,159,219,45,60,64,202,45,60,207,184,45,60,76,167,45,60,183,149,45,60,15,132,45,60,85,114,45,60,137,96,45,60,171,78,45,60,186,60,45,60,184,42,45,60,163,24,45,60,123,6,45,60,66,244,44,60,247,225,44,60,153,207,44,60,41,189,44,60,167,170,44,60,19,152,44,60,109,133,44,60,181,114,44,60,234,95,44,60,14,77,44,60,31,58,44,60,30,39,44,60,12,20,44,60,231,0,44,60,176,237,43,60,103,218,43,60,12,199,43,60,159,179,43,60,32,160,43,60,143,140,43,60,236,120,43,60,55,101,43,60,112,81,
43,60,150,61,43,60,172,41,43,60,175,21,43,60,160,1,43,60,127,237,42,60,76,217,42,60,7,197,42,60,177,176,42,60,72,156,42,60,206,135,42,60,66,115,42,60,164,94,42,60,244,73,42,60,50,53,42,60,94,32,42,60,120,11,42,60,129,246,41,60,120,225,41,60,93,204,41,60,48,183,41,60,242,161,41,60,161,140,41,60,63,119,41,60,203,97,41,60,70,76,41,60,174,54,41,60,5,33,41,60,74,11,41,60,126,245,40,60,160,223,40,60,176,201,40,60,174,179,40,60,155,157,40,60,118,135,40,60,63,113,40,60,247,90,40,60,157,68,40,60,50,46,40,
60,181,23,40,60,38,1,40,60,134,234,39,60,212,211,39,60,17,189,39,60,60,166,39,60,85,143,39,60,93,120,39,60,84,97,39,60,57,74,39,60,12,51,39,60,206,27,39,60,127,4,39,60,30,237,38,60,171,213,38,60,39,190,38,60,146,166,38,60,235,142,38,60,51,119,38,60,105,95,38,60,142,71,38,60,162,47,38,60,164,23,38,60,149,255,37,60,117,231,37,60,67,207,37,60,0,183,37,60,171,158,37,60,69,134,37,60,206,109,37,60,70,85,37,60,172,60,37,60,1,36,37,60,69,11,37,60,120,242,36,60,153,217,36,60,169,192,36,60,168,167,36,60,150,
142,36,60,114,117,36,60,62,92,36,60,248,66,36,60,161,41,36,60,57,16,36,60,192,246,35,60,53,221,35,60,154,195,35,60,237,169,35,60,48,144,35,60,97,118,35,60,129,92,35,60,144,66,35,60,142,40,35,60,124,14,35,60,88,244,34,60,35,218,34,60,221,191,34,60,134,165,34,60,30,139,34,60,165,112,34,60,28,86,34,60,129,59,34,60,213,32,34,60,25,6,34,60,75,235,33,60,109,208,33,60,126,181,33,60,126,154,33,60,109,127,33,60,75,100,33,60,25,73,33,60,214,45,33,60,129,18,33,60,29,247,32,60,167,219,32,60,32,192,32,60,137,
164,32,60,225,136,32,60,41,109,32,60,95,81,32,60,133,53,32,60,154,25,32,60,159,253,31,60,147,225,31,60,118,197,31,60,73,169,31,60,11,141,31,60,188,112,31,60,93,84,31,60,237,55,31,60,109,27,31,60,220,254,30,60,58,226,30,60,136,197,30,60,197,168,30,60,242,139,30,60,15,111,30,60,27,82,30,60,22,53,30,60,1,24,30,60,220,250,29,60,166,221,29,60,96,192,29,60,9,163,29,60,162,133,29,60,42,104,29,60,162,74,29,60,10,45,29,60,98,15,29,60,169,241,28,60,224,211,28,60,6,182,28,60,28,152,28,60,34,122,28,60,24,92,
28,60,253,61,28,60,210,31,28,60,151,1,28,60,76,227,27,60,241,196,27,60,133,166,27,60,9,136,27,60,125,105,27,60,225,74,27,60,53,44,27,60,121,13,27,60,172,238,26,60,208,207,26,60,227,176,26,60,230,145,26,60,218,114,26,60,189,83,26,60,144,52,26,60,83,21,26,60,7,246,25,60,170,214,25,60,61,183,25,60,192,151,25,60,52,120,25,60,151,88,25,60,235,56,25,60,47,25,25,60,98,249,24,60,134,217,24,60,154,185,24,60,159,153,24,60,147,121,24,60,120,89,24,60,76,57,24,60,17,25,24,60,199,248,23,60,108,216,23,60,2,184,
23,60,136,151,23,60,254,118,23,60,101,86,23,60,188,53,23,60,3,21,23,60,59,244,22,60,99,211,22,60,123,178,22,60,132,145,22,60,125,112,22,60,103,79,22,60,65,46,22,60,11,13,22,60,198,235,21,60,113,202,21,60,13,169,21,60,154,135,21,60,23,102,21,60,132,68,21,60,226,34,21,60,49,1,21,60,112,223,20,60,160,189,20,60,192,155,20,60,209,121,20,60,210,87,20,60,197,53,20,60,168,19,20,60,123,241,19,60,64,207,19,60,245,172,19,60,154,138,19,60,49,104,19,60,184,69,19,60,48,35,19,60,153,0,19,60,243,221,18,60,61,187,
18,60,121,152,18,60,165,117,18,60,194,82,18,60,208,47,18,60,206,12,18,60,190,233,17,60,159,198,17,60,112,163,17,60,51,128,17,60,230,92,17,60,139,57,17,60,32,22,17,60,167,242,16,60,30,207,16,60,135,171,16,60,225,135,16,60,43,100,16,60,103,64,16,60,148,28,16,60,178,248,15,60,194,212,15,60,194,176,15,60,180,140,15,60,150,104,15,60,106,68,15,60,47,32,15,60,230,251,14,60,142,215,14,60,39,179,14,60,177,142,14,60,44,106,14,60,153,69,14,60,247,32,14,60,71,252,13,60,136,215,13,60,186,178,13,60,222,141,13,
60,243,104,13,60,250,67,13,60,242,30,13,60,219,249,12,60,182,212,12,60,130,175,12,60,64,138,12,60,240,100,12,60,145,63,12,60,35,26,12,60,168,244,11,60,29,207,11,60,133,169,11,60,222,131,11,60,40,94,11,60,100,56,11,60,146,18,11,60,178,236,10,60,195,198,10,60,198,160,10,60,187,122,10,60,162,84,10,60,122,46,10,60,68,8,10,60,0,226,9,60,174,187,9,60,78,149,9,60,223,110,9,60,98,72,9,60,216,33,9,60,63,251,8,60,152,212,8,60,227,173,8,60,32,135,8,60,79,96,8,60,112,57,8,60,131,18,8,60,136,235,7,60,126,196,
7,60,104,157,7,60,67,118,7,60,16,79,7,60,207,39,7,60,129,0,7,60,36,217,6,60,186,177,6,60,66,138,6,60,188,98,6,60,40,59,6,60,135,19,6,60,216,235,5,60,27,196,5,60,80,156,5,60,120,116,5,60,146,76,5,60,158,36,5,60,157,252,4,60,142,212,4,60,113,172,4,60,71,132,4,60,15,92,4,60,202,51,4,60,119,11,4,60,23,227,3,60,169,186,3,60,45,146,3,60,165,105,3,60,14,65,3,60,106,24,3,60,185,239,2,60,251,198,2,60,47,158,2,60,85,117,2,60,110,76,2,60,122,35,2,60,121,250,1,60,106,209,1,60,78,168,1,60,37,127,1,60,239,85,1,
60,171,44,1,60,90,3,1,60,252,217,0,60,145,176,0,60,24,135,0,60,147,93,0,60,0,52,0,60,96,10,0,60,103,193,255,59,243,109,255,59,101,26,255,59,189,198,254,59,251,114,254,59,30,31,254,59,40,203,253,59,24,119,253,59,239,34,253,59,171,206,252,59,77,122,252,59,214,37,252,59,69,209,251,59,154,124,251,59,214,39,251,59,248,210,250,59,0,126,250,59,239,40,250,59,197,211,249,59,129,126,249,59,35,41,249,59,172,211,248,59,28,126,248,59,114,40,248,59,175,210,247,59,211,124,247,59,221,38,247,59,207,208,246,59,167,
122,246,59,102,36,246,59,12,206,245,59,153,119,245,59,13,33,245,59,104,202,244,59,170,115,244,59,211,28,244,59,228,197,243,59,219,110,243,59,186,23,243,59,128,192,242,59,45,105,242,59,194,17,242,59,62,186,241,59,161,98,241,59,236,10,241,59,31,179,240,59,57,91,240,59,58,3,240,59,35,171,239,59,244,82,239,59,172,250,238,59,76,162,238,59,212,73,238,59,68,241,237,59,155,152,237,59,219,63,237,59,2,231,236,59,17,142,236,59,8,53,236,59,231,219,235,59,175,130,235,59,94,41,235,59,245,207,234,59,117,118,234,
59,221,28,234,59,45,195,233,59,102,105,233,59,134,15,233,59,143,181,232,59,129,91,232,59,91,1,232,59,29,167,231,59,200,76,231,59,92,242,230,59,216,151,230,59,60,61,230,59,138,226,229,59,192,135,229,59,223,44,229,59,231,209,228,59,215,118,228,59,176,27,228,59,115,192,227,59,30,101,227,59,178,9,227,59,47,174,226,59,150,82,226,59,229,246,225,59,30,155,225,59,63,63,225,59,74,227,224,59,62,135,224,59,28,43,224,59,227,206,223,59,147,114,223,59,45,22,223,59,176,185,222,59,28,93,222,59,115,0,222,59,178,163,
221,59,220,70,221,59,239,233,220,59,235,140,220,59,210,47,220,59,162,210,219,59,92,117,219,59,0,24,219,59,142,186,218,59,6,93,218,59,103,255,217,59,179,161,217,59,233,67,217,59,9,230,216,59,19,136,216,59,7,42,216,59,229,203,215,59,174,109,215,59,97,15,215,59,254,176,214,59,134,82,214,59,248,243,213,59,85,149,213,59,156,54,213,59,205,215,212,59,233,120,212,59,240,25,212,59,226,186,211,59,190,91,211,59,133,252,210,59,54,157,210,59,211,61,210,59,90,222,209,59,205,126,209,59,42,31,209,59,114,191,208,
59,165,95,208,59,196,255,207,59,205,159,207,59,194,63,207,59,161,223,206,59,108,127,206,59,35,31,206,59,196,190,205,59,81,94,205,59,202,253,204,59,45,157,204,59,125,60,204,59,184,219,203,59,222,122,203,59,240,25,203,59,237,184,202,59,215,87,202,59,172,246,201,59,109,149,201,59,25,52,201,59,178,210,200,59,54,113,200,59,166,15,200,59,2,174,199,59,75,76,199,59,127,234,198,59,159,136,198,59,172,38,198,59,165,196,197,59,138,98,197,59,91,0,197,59,25,158,196,59,195,59,196,59,89,217,195,59,220,118,195,59,
75,20,195,59,167,177,194,59,239,78,194,59,36,236,193,59,69,137,193,59,84,38,193,59,79,195,192,59,54,96,192,59,11,253,191,59,204,153,191,59,123,54,191,59,22,211,190,59,158,111,190,59,20,12,190,59,118,168,189,59,197,68,189,59,2,225,188,59,44,125,188,59,67,25,188,59,71,181,187,59,57,81,187,59,24,237,186,59,228,136,186,59,158,36,186,59,69,192,185,59,218,91,185,59,93,247,184,59,205,146,184,59,43,46,184,59,118,201,183,59,175,100,183,59,214,255,182,59,235,154,182,59,238,53,182,59,223,208,181,59,189,107,
181,59,138,6,181,59,68,161,180,59,237,59,180,59,132,214,179,59,9,113,179,59,124,11,179,59,222,165,178,59,46,64,178,59,108,218,177,59,153,116,177,59,180,14,177,59,189,168,176,59,181,66,176,59,156,220,175,59,113,118,175,59,53,16,175,59,232,169,174,59,137,67,174,59,25,221,173,59,152,118,173,59,6,16,173,59,99,169,172,59,174,66,172,59,233,219,171,59,19,117,171,59,44,14,171,59,52,167,170,59,43,64,170,59,17,217,169,59,231,113,169,59,172,10,169,59,96,163,168,59,4,60,168,59,151,212,167,59,25,109,167,59,139,
5,167,59,237,157,166,59,62,54,166,59,127,206,165,59,176,102,165,59,208,254,164,59,225,150,164,59,225,46,164,59,209,198,163,59,176,94,163,59,128,246,162,59,64,142,162,59,240,37,162,59,144,189,161,59,32,85,161,59,160,236,160,59,17,132,160,59,114,27,160,59,195,178,159,59,4,74,159,59,54,225,158,59,89,120,158,59,107,15,158,59,111,166,157,59,99,61,157,59,71,212,156,59,29,107,156,59,227,1,156,59,153,152,155,59,65,47,155,59,217,197,154,59,99,92,154,59,221,242,153,59,72,137,153,59,165,31,153,59,242,181,152,
59,49,76,152,59,96,226,151,59,129,120,151,59,147,14,151,59,151,164,150,59,139,58,150,59,114,208,149,59,73,102,149,59,18,252,148,59,205,145,148,59,121,39,148,59,23,189,147,59,166,82,147,59,39,232,146,59,154,125,146,59,255,18,146,59,86,168,145,59,158,61,145,59,216,210,144,59,5,104,144,59,35,253,143,59,51,146,143,59,54,39,143,59,43,188,142,59,17,81,142,59,235,229,141,59,182,122,141,59,116,15,141,59,36,164,140,59,198,56,140,59,91,205,139,59,227,97,139,59,93,246,138,59,202,138,138,59,41,31,138,59,123,
179,137,59,192,71,137,59,248,219,136,59,34,112,136,59,63,4,136,59,80,152,135,59,83,44,135,59,73,192,134,59,50,84,134,59,15,232,133,59,222,123,133,59,161,15,133,59,87,163,132,59,0,55,132,59,157,202,131,59,45,94,131,59,177,241,130,59,39,133,130,59,146,24,130,59,240,171,129,59,65,63,129,59,135,210,128,59,192,101,128,59,217,241,127,59,26,24,127,59,67,62,126,59,83,100,125,59,75,138,124,59,44,176,123,59,244,213,122,59,165,251,121,59,61,33,121,59,190,70,120,59,40,108,119,59,122,145,118,59,180,182,117,59,
216,219,116,59,228,0,116,59,217,37,115,59,183,74,114,59,126,111,113,59,46,148,112,59,199,184,111,59,74,221,110,59,182,1,110,59,12,38,109,59,75,74,108,59,116,110,107,59,135,146,106,59,131,182,105,59,106,218,104,59,59,254,103,59,246,33,103,59,155,69,102,59,42,105,101,59,164,140,100,59,9,176,99,59,88,211,98,59,146,246,97,59,182,25,97,59,198,60,96,59,193,95,95,59,166,130,94,59,119,165,93,59,51,200,92,59,219,234,91,59,110,13,91,59,237,47,90,59,87,82,89,59,173,116,88,59,239,150,87,59,29,185,86,59,54,219,
85,59,60,253,84,59,46,31,84,59,13,65,83,59,216,98,82,59,143,132,81,59,51,166,80,59,196,199,79,59,65,233,78,59,171,10,78,59,3,44,77,59,71,77,76,59,121,110,75,59,151,143,74,59,163,176,73,59,157,209,72,59,132,242,71,59,88,19,71,59,27,52,70,59,203,84,69,59,105,117,68,59,245,149,67,59,111,182,66,59,215,214,65,59,46,247,64,59,115,23,64,59,166,55,63,59,200,87,62,59,217,119,61,59,216,151,60,59,198,183,59,59,163,215,58,59,112,247,57,59,43,23,57,59,213,54,56,59,111,86,55,59,248,117,54,59,113,149,53,59,217,
180,52,59,49,212,51,59,121,243,50,59,177,18,50,59,216,49,49,59,240,80,48,59,248,111,47,59,240,142,46,59,216,173,45,59,177,204,44,59,123,235,43,59,53,10,43,59,223,40,42,59,123,71,41,59,7,102,40,59,133,132,39,59,243,162,38,59,83,193,37,59,164,223,36,59,231,253,35,59,27,28,35,59,64,58,34,59,87,88,33,59,96,118,32,59,91,148,31,59,72,178,30,59,39,208,29,59,248,237,28,59,187,11,28,59,112,41,27,59,24,71,26,59,179,100,25,59,64,130,24,59,191,159,23,59,50,189,22,59,151,218,21,59,240,247,20,59,60,21,20,59,122,
50,19,59,172,79,18,59,210,108,17,59,235,137,16,59,247,166,15,59,247,195,14,59,235,224,13,59,211,253,12,59,174,26,12,59,126,55,11,59,66,84,10,59,250,112,9,59,166,141,8,59,71,170,7,59,220,198,6,59,102,227,5,59,229,255,4,59,88,28,4,59,193,56,3,59,30,85,2,59,112,113,1,59,184,141,0,59,233,83,255,58,78,140,253,58,157,196,251,58,216,252,249,58,254,52,248,58,15,109,246,58,12,165,244,58,245,220,242,58,202,20,241,58,139,76,239,58,57,132,237,58,211,187,235,58,90,243,233,58,207,42,232,58,48,98,230,58,127,153,
228,58,187,208,226,58,229,7,225,58,254,62,223,58,4,118,221,58,249,172,219,58,220,227,217,58,174,26,216,58,111,81,214,58,31,136,212,58,191,190,210,58,78,245,208,58,204,43,207,58,59,98,205,58,154,152,203,58,233,206,201,58,40,5,200,58,88,59,198,58,121,113,196,58,139,167,194,58,142,221,192,58,131,19,191,58,105,73,189,58,65,127,187,58,11,181,185,58,199,234,183,58,117,32,182,58,23,86,180,58,170,139,178,58,49,193,176,58,171,246,174,58,25,44,173,58,121,97,171,58,206,150,169,58,22,204,167,58,83,1,166,58,132,
54,164,58,169,107,162,58,195,160,160,58,210,213,158,58,214,10,157,58,207,63,155,58,190,116,153,58,162,169,151,58,124,222,149,58,76,19,148,58,18,72,146,58,207,124,144,58,130,177,142,58,44,230,140,58,205,26,139,58,101,79,137,58,245,131,135,58,124,184,133,58,251,236,131,58,113,33,130,58,224,85,128,58,143,20,125,58,78,125,121,58,255,229,117,58,161,78,114,58,54,183,110,58,189,31,107,58,55,136,103,58,164,240,99,58,5,89,96,58,90,193,92,58,163,41,89,58,226,145,85,58,21,250,81,58,62,98,78,58,93,202,74,58,
115,50,71,58,127,154,67,58,130,2,64,58,125,106,60,58,112,210,56,58,91,58,53,58,63,162,49,58,27,10,46,58,242,113,42,58,194,217,38,58,140,65,35,58,80,169,31,58,16,17,28,58,203,120,24,58,130,224,20,58,52,72,17,58,228,175,13,58,144,23,10,58,57,127,6,58,224,230,2,58,11,157,254,57,82,108,247,57,150,59,240,57,217,10,233,57,27,218,225,57,93,169,218,57,159,120,211,57,227,71,204,57,41,23,197,57,114,230,189,57,190,181,182,57,15,133,175,57,102,84,168,57,194,35,161,57,37,243,153,57,143,194,146,57,2,146,139,57,
126,97,132,57,7,98,122,57,39,1,108,57,94,160,93,57,173,63,79,57,22,223,64,57,154,126,50,57,59,30,36,57,250,189,21,57,217,93,7,57,178,251,241,56,249,59,213,56,136,124,184,56,100,189,155,56,28,253,125,56,20,128,68,56,183,3,11,56,19,16,163,55,147,104,192,54,161,180,5,183,64,205,181,183,79,95,20,184,48,215,77,184,30,167,131,184,54,98,160,184,222,28,189,184,18,215,217,184,208,144,246,184,10,165,9,185,109,1,24,185,145,93,38,185,115,185,52,185,19,21,67,185,109,112,81,185,130,203,95,185,80,38,110,185,212,
128,124,185,135,109,133,185,126,154,140,185,78,199,147,185,246,243,154,185,118,32,162,185,205,76,169,185,250,120,176,185,253,164,183,185,212,208,190,185,127,252,197,185,253,39,205,185,78,83,212,185,112,126,219,185,99,169,226,185,38,212,233,185,184,254,240,185,25,41,248,185,72,83,255,185,162,62,3,186,134,211,6,186,79,104,10,186,254,252,13,186,146,145,17,186,11,38,21,186,104,186,24,186,169,78,28,186,205,226,31,186,212,118,35,186,190,10,39,186,139,158,42,186,57,50,46,186,201,197,49,186,58,89,53,186,
140,236,56,186,190,127,60,186,209,18,64,186,195,165,67,186,148,56,71,186,69,203,74,186,212,93,78,186,65,240,81,186,140,130,85,186,180,20,89,186,185,166,92,186,155,56,96,186,89,202,99,186,243,91,103,186,105,237,106,186,186,126,110,186,229,15,114,186,235,160,117,186,203,49,121,186,133,194,124,186,140,41,128,186,194,241,129,186,228,185,131,186,242,129,133,186,236,73,135,186,210,17,137,186,163,217,138,186,96,161,140,186,7,105,142,186,154,48,144,186,23,248,145,186,127,191,147,186,209,134,149,186,14,78,
151,186,52,21,153,186,68,220,154,186,62,163,156,186,34,106,158,186,238,48,160,186,164,247,161,186,66,190,163,186,201,132,165,186,57,75,167,186,145,17,169,186,209,215,170,186,249,157,172,186,8,100,174,186,255,41,176,186,222,239,177,186,164,181,179,186,80,123,181,186,228,64,183,186,94,6,185,186,191,203,186,186,5,145,188,186,50,86,190,186,69,27,192,186,61,224,193,186,27,165,195,186,222,105,197,186,135,46,199,186,20,243,200,186,134,183,202,186,220,123,204,186,23,64,206,186,54,4,208,186,57,200,209,186,
32,140,211,186,235,79,213,186,153,19,215,186,42,215,216,186,158,154,218,186,245,93,220,186,47,33,222,186,75,228,223,186,74,167,225,186,43,106,227,186,238,44,229,186,146,239,230,186,24,178,232,186,128,116,234,186,200,54,236,186,242,248,237,186,252,186,239,186,232,124,241,186,179,62,243,186,95,0,245,186,235,193,246,186,87,131,248,186,163,68,250,186,206,5,252,186,216,198,253,186,194,135,255,186,69,164,0,187,153,132,1,187,220,100,2,187,14,69,3,187,48,37,4,187,64,5,5,187,63,229,5,187,46,197,6,187,11,165,
7,187,214,132,8,187,144,100,9,187,57,68,10,187,208,35,11,187,85,3,12,187,201,226,12,187,42,194,13,187,122,161,14,187,183,128,15,187,227,95,16,187,252,62,17,187,3,30,18,187,247,252,18,187,217,219,19,187,168,186,20,187,100,153,21,187,14,120,22,187,165,86,23,187,41,53,24,187,153,19,25,187,247,241,25,187,65,208,26,187,120,174,27,187,155,140,28,187,171,106,29,187,167,72,30,187,144,38,31,187,100,4,32,187,37,226,32,187,210,191,33,187,107,157,34,187,239,122,35,187,95,88,36,187,187,53,37,187,3,19,38,187,54,
240,38,187,84,205,39,187,93,170,40,187,82,135,41,187,50,100,42,187,253,64,43,187,178,29,44,187,83,250,44,187,222,214,45,187,84,179,46,187,180,143,47,187,255,107,48,187,53,72,49,187,84,36,50,187,94,0,51,187,82,220,51,187,47,184,52,187,247,147,53,187,169,111,54,187,68,75,55,187,201,38,56,187,55,2,57,187,143,221,57,187,209,184,58,187,251,147,59,187,15,111,60,187,12,74,61,187,242,36,62,187,193,255,62,187,120,218,63,187,25,181,64,187,162,143,65,187,20,106,66,187,110,68,67,187,176,30,68,187,219,248,68,
187,238,210,69,187,233,172,70,187,204,134,71,187,152,96,72,187,75,58,73,187,229,19,74,187,104,237,74,187,210,198,75,187,35,160,76,187,92,121,77,187,124,82,78,187,132,43,79,187,114,4,80,187,72,221,80,187,4,182,81,187,168,142,82,187,50,103,83,187,163,63,84,187,250,23,85,187,56,240,85,187,93,200,86,187,104,160,87,187,89,120,88,187,48,80,89,187,237,39,90,187,144,255,90,187,25,215,91,187,136,174,92,187,221,133,93,187,23,93,94,187,55,52,95,187,61,11,96,187,39,226,96,187,247,184,97,187,172,143,98,187,71,
102,99,187,198,60,100,187,42,19,101,187,115,233,101,187,161,191,102,187,179,149,103,187,170,107,104,187,134,65,105,187,70,23,106,187,234,236,106,187,115,194,107,187,223,151,108,187,48,109,109,187,101,66,110,187,125,23,111,187,121,236,111,187,89,193,112,187,29,150,113,187,196,106,114,187,79,63,115,187,189,19,116,187,14,232,116,187,66,188,117,187,90,144,118,187,84,100,119,187,50,56,120,187,242,11,121,187,149,223,121,187,27,179,122,187,131,134,123,187,206,89,124,187,251,44,125,187,10,0,126,187,252,210,
126,187,208,165,127,187,67,60,128,187,143,165,128,187,204,14,129,187,249,119,129,187,24,225,129,187,40,74,130,187,40,179,130,187,25,28,131,187,250,132,131,187,205,237,131,187,144,86,132,187,67,191,132,187,231,39,133,187,123,144,133,187],"i8",4,y.a+317440);
Q([0,249,133,187,117,97,134,187,219,201,134,187,49,50,135,187,119,154,135,187,173,2,136,187,212,106,136,187,235,210,136,187,241,58,137,187,232,162,137,187,207,10,138,187,166,114,138,187,108,218,138,187,35,66,139,187,201,169,139,187,96,17,140,187,230,120,140,187,91,224,140,187,193,71,141,187,21,175,141,187,90,22,142,187,142,125,142,187,178,228,142,187,197,75,143,187,199,178,143,187,185,25,144,187,154,128,144,187,106,231,144,187,42,78,145,187,217,180,145,187,119,27,146,187,4,130,146,187,128,232,146,
187,236,78,147,187,70,181,147,187,143,27,148,187,199,129,148,187,238,231,148,187,4,78,149,187,9,180,149,187,252,25,150,187,222,127,150,187,175,229,150,187,110,75,151,187,28,177,151,187,184,22,152,187,67,124,152,187,189,225,152,187,37,71,153,187,123,172,153,187,191,17,154,187,242,118,154,187,19,220,154,187,34,65,155,187,32,166,155,187,11,11,156,187,229,111,156,187,173,212,156,187,99,57,157,187,6,158,157,187,152,2,158,187,23,103,158,187,133,203,158,187,224,47,159,187,40,148,159,187,95,248,159,187,131,
92,160,187,149,192,160,187,149,36,161,187,130,136,161,187,92,236,161,187,36,80,162,187,218,179,162,187,124,23,163,187,13,123,163,187,138,222,163,187,245,65,164,187,77,165,164,187,146,8,165,187,196,107,165,187,228,206,165,187,240,49,166,187,234,148,166,187,209,247,166,187,164,90,167,187,100,189,167,187,18,32,168,187,172,130,168,187,51,229,168,187,166,71,169,187,7,170,169,187,84,12,170,187,141,110,170,187,179,208,170,187,198,50,171,187,198,148,171,187,177,246,171,187,137,88,172,187,78,186,172,187,255,
27,173,187,156,125,173,187,38,223,173,187,155,64,174,187,253,161,174,187,75,3,175,187,134,100,175,187,172,197,175,187,190,38,176,187,188,135,176,187,167,232,176,187,125,73,177,187,63,170,177,187,237,10,178,187,134,107,178,187,12,204,178,187,125,44,179,187,218,140,179,187,34,237,179,187,86,77,180,187,118,173,180,187,129,13,181,187,120,109,181,187,90,205,181,187,39,45,182,187,224,140,182,187,132,236,182,187,20,76,183,187,143,171,183,187,245,10,184,187,70,106,184,187,130,201,184,187,170,40,185,187,188,
135,185,187,185,230,185,187,162,69,186,187,117,164,186,187,52,3,187,187,221,97,187,187,113,192,187,187,240,30,188,187,89,125,188,187,173,219,188,187,236,57,189,187,22,152,189,187,42,246,189,187,41,84,190,187,18,178,190,187,230,15,191,187,164,109,191,187,77,203,191,187,224,40,192,187,93,134,192,187,197,227,192,187,23,65,193,187,83,158,193,187,121,251,193,187,138,88,194,187,132,181,194,187,105,18,195,187,55,111,195,187,240,203,195,187,147,40,196,187,31,133,196,187,150,225,196,187,246,61,197,187,64,
154,197,187,116,246,197,187,146,82,198,187,153,174,198,187,138,10,199,187,101,102,199,187,41,194,199,187,214,29,200,187,110,121,200,187,238,212,200,187,89,48,201,187,172,139,201,187,233,230,201,187,15,66,202,187,31,157,202,187,24,248,202,187,250,82,203,187,197,173,203,187,121,8,204,187,23,99,204,187,158,189,204,187,13,24,205,187,102,114,205,187,167,204,205,187,210,38,206,187,229,128,206,187,225,218,206,187,198,52,207,187,148,142,207,187,75,232,207,187,234,65,208,187,114,155,208,187,227,244,208,187,
60,78,209,187,126,167,209,187,168,0,210,187,187,89,210,187,182,178,210,187,154,11,211,187,102,100,211,187,26,189,211,187,183,21,212,187,60,110,212,187,169,198,212,187,255,30,213,187,60,119,213,187,98,207,213,187,112,39,214,187,102,127,214,187,68,215,214,187,10,47,215,187,184,134,215,187,78,222,215,187,204,53,216,187,49,141,216,187,127,228,216,187,180,59,217,187,209,146,217,187,214,233,217,187,194,64,218,187,150,151,218,187,82,238,218,187,245,68,219,187,128,155,219,187,242,241,219,187,76,72,220,187,
141,158,220,187,181,244,220,187,197,74,221,187,188,160,221,187,155,246,221,187,97,76,222,187,14,162,222,187,162,247,222,187,30,77,223,187,128,162,223,187,202,247,223,187,251,76,224,187,18,162,224,187,17,247,224,187,247,75,225,187,195,160,225,187,119,245,225,187,17,74,226,187,146,158,226,187,250,242,226,187,73,71,227,187,126,155,227,187,154,239,227,187,157,67,228,187,134,151,228,187,86,235,228,187,13,63,229,187,170,146,229,187,45,230,229,187,151,57,230,187,232,140,230,187,31,224,230,187,60,51,231,
187,63,134,231,187,41,217,231,187,249,43,232,187,175,126,232,187,75,209,232,187,206,35,233,187,55,118,233,187,133,200,233,187,186,26,234,187,213,108,234,187,214,190,234,187,188,16,235,187,137,98,235,187,60,180,235,187,212,5,236,187,82,87,236,187,182,168,236,187,0,250,236,187,47,75,237,187,69,156,237,187,64,237,237,187,32,62,238,187,230,142,238,187,146,223,238,187,35,48,239,187,154,128,239,187,246,208,239,187,55,33,240,187,94,113,240,187,107,193,240,187,92,17,241,187,51,97,241,187,240,176,241,187,
145,0,242,187,24,80,242,187,132,159,242,187,213,238,242,187,11,62,243,187,39,141,243,187,39,220,243,187,12,43,244,187,215,121,244,187,134,200,244,187,26,23,245,187,147,101,245,187,241,179,245,187,52,2,246,187,92,80,246,187,104,158,246,187,89,236,246,187,47,58,247,187,234,135,247,187,137,213,247,187,13,35,248,187,117,112,248,187,194,189,248,187,244,10,249,187,10,88,249,187,4,165,249,187,227,241,249,187,166,62,250,187,78,139,250,187,218,215,250,187,74,36,251,187,159,112,251,187,216,188,251,187,245,
8,252,187,246,84,252,187,219,160,252,187,165,236,252,187,83,56,253,187,228,131,253,187,90,207,253,187,180,26,254,187,242,101,254,187,19,177,254,187,25,252,254,187,3,71,255,187,208,145,255,187,129,220,255,187,139,19,0,188,199,56,0,188,246,93,0,188,22,131,0,188,40,168,0,188,44,205,0,188,33,242,0,188,9,23,1,188,226,59,1,188,173,96,1,188,105,133,1,188,24,170,1,188,184,206,1,188,74,243,1,188,205,23,2,188,67,60,2,188,170,96,2,188,2,133,2,188,76,169,2,188,136,205,2,188,182,241,2,188,213,21,3,188,229,57,
3,188,232,93,3,188,219,129,3,188,193,165,3,188,151,201,3,188,96,237,3,188,26,17,4,188,197,52,4,188,98,88,4,188,240,123,4,188,112,159,4,188,225,194,4,188,67,230,4,188,151,9,5,188,220,44,5,188,19,80,5,188,59,115,5,188,84,150,5,188,95,185,5,188,91,220,5,188,72,255,5,188,39,34,6,188,247,68,6,188,184,103,6,188,106,138,6,188,14,173,6,188,162,207,6,188,40,242,6,188,160,20,7,188,8,55,7,188,98,89,7,188,172,123,7,188,232,157,7,188,21,192,7,188,51,226,7,188,66,4,8,188,66,38,8,188,52,72,8,188,22,106,8,188,234,
139,8,188,174,173,8,188,99,207,8,188,10,241,8,188,161,18,9,188,42,52,9,188,163,85,9,188,13,119,9,188,105,152,9,188,181,185,9,188,242,218,9,188,32,252,9,188,63,29,10,188,79,62,10,188,79,95,10,188,65,128,10,188,35,161,10,188,246,193,10,188,186,226,10,188,111,3,11,188,20,36,11,188,171,68,11,188,50,101,11,188,169,133,11,188,18,166,11,188,107,198,11,188,181,230,11,188,240,6,12,188,27,39,12,188,55,71,12,188,68,103,12,188,65,135,12,188,47,167,12,188,13,199,12,188,220,230,12,188,156,6,13,188,76,38,13,188,
237,69,13,188,127,101,13,188,0,133,13,188,115,164,13,188,214,195,13,188,41,227,13,188,109,2,14,188,162,33,14,188,199,64,14,188,220,95,14,188,226,126,14,188,216,157,14,188,191,188,14,188,150,219,14,188,94,250,14,188,22,25,15,188,190,55,15,188,87,86,15,188,223,116,15,188,89,147,15,188,194,177,15,188,28,208,15,188,103,238,15,188,161,12,16,188,204,42,16,188,231,72,16,188,242,102,16,188,238,132,16,188,218,162,16,188,182,192,16,188,130,222,16,188,62,252,16,188,235,25,17,188,136,55,17,188,21,85,17,188,146,
114,17,188,255,143,17,188,93,173,17,188,170,202,17,188,232,231,17,188,21,5,18,188,51,34,18,188,65,63,18,188,63,92,18,188,45,121,18,188,11,150,18,188,217,178,18,188,151,207,18,188,69,236,18,188,227,8,19,188,113,37,19,188,239,65,19,188,93,94,19,188,186,122,19,188,8,151,19,188,70,179,19,188,116,207,19,188,145,235,19,188,159,7,20,188,156,35,20,188,137,63,20,188,102,91,20,188,51,119,20,188,240,146,20,188,156,174,20,188,57,202,20,188,197,229,20,188,65,1,21,188,173,28,21,188,8,56,21,188,84,83,21,188,143,
110,21,188,186,137,21,188,212,164,21,188,222,191,21,188,216,218,21,188,194,245,21,188,155,16,22,188,100,43,22,188,29,70,22,188,198,96,22,188,94,123,22,188,229,149,22,188,93,176,22,188,196,202,22,188,26,229,22,188,96,255,22,188,150,25,23,188,187,51,23,188,208,77,23,188,213,103,23,188,201,129,23,188,172,155,23,188,127,181,23,188,66,207,23,188,244,232,23,188,149,2,24,188,38,28,24,188,167,53,24,188,23,79,24,188,118,104,24,188,197,129,24,188,4,155,24,188,50,180,24,188,79,205,24,188,91,230,24,188,87,255,
24,188,67,24,25,188,30,49,25,188,232,73,25,188,162,98,25,188,74,123,25,188,227,147,25,188,106,172,25,188,225,196,25,188,71,221,25,188,157,245,25,188,226,13,26,188,22,38,26,188,57,62,26,188,76,86,26,188,78,110,26,188,63,134,26,188,32,158,26,188,239,181,26,188,174,205,26,188,92,229,26,188,250,252,26,188,134,20,27,188,2,44,27,188,109,67,27,188,199,90,27,188,16,114,27,188,73,137,27,188,112,160,27,188,135,183,27,188,141,206,27,188,130,229,27,188,102,252,27,188,57,19,28,188,251,41,28,188,172,64,28,188,
77,87,28,188,220,109,28,188,91,132,28,188,200,154,28,188,37,177,28,188,113,199,28,188,171,221,28,188,213,243,28,188,238,9,29,188,245,31,29,188,236,53,29,188,210,75,29,188,166,97,29,188,106,119,29,188,29,141,29,188,190,162,29,188,79,184,29,188,206,205,29,188,60,227,29,188,154,248,29,188,230,13,30,188,33,35,30,188,75,56,30,188,100,77,30,188,107,98,30,188,98,119,30,188,71,140,30,188,28,161,30,188,223,181,30,188,145,202,30,188,50,223,30,188,193,243,30,188,64,8,31,188,173,28,31,188,9,49,31,188,84,69,31,
188,142,89,31,188,182,109,31,188,205,129,31,188,211,149,31,188,200,169,31,188,172,189,31,188,126,209,31,188,63,229,31,188,238,248,31,188,141,12,32,188,26,32,32,188,150,51,32,188,0,71,32,188,90,90,32,188,161,109,32,188,216,128,32,188,253,147,32,188,17,167,32,188,20,186,32,188,5,205,32,188,229,223,32,188,179,242,32,188,112,5,33,188,28,24,33,188,182,42,33,188,63,61,33,188,183,79,33,188,29,98,33,188,114,116,33,188,181,134,33,188,231,152,33,188,7,171,33,188,22,189,33,188,20,207,33,188,0,225,33,188,219,
242,33,188,164,4,34,188,91,22,34,188,2,40,34,188,150,57,34,188,26,75,34,188,139,92,34,188,236,109,34,188,58,127,34,188,119,144,34,188,163,161,34,188,189,178,34,188,198,195,34,188,189,212,34,188,162,229,34,188,118,246,34,188,57,7,35,188,234,23,35,188,137,40,35,188,23,57,35,188,147,73,35,188,253,89,35,188,86,106,35,188,157,122,35,188,211,138,35,188,247,154,35,188,9,171,35,188,10,187,35,188,249,202,35,188,215,218,35,188,163,234,35,188,93,250,35,188,6,10,36,188,157,25,36,188,34,41,36,188,149,56,36,188,
247,71,36,188,72,87,36,188,134,102,36,188,179,117,36,188,206,132,36,188,216,147,36,188,207,162,36,188,181,177,36,188,138,192,36,188,76,207,36,188,253,221,36,188,156,236,36,188,41,251,36,188,165,9,37,188,15,24,37,188,103,38,37,188,173,52,37,188,226,66,37,188,5,81,37,188,22,95,37,188,21,109,37,188,2,123,37,188,222,136,37,188,168,150,37,188,96,164,37,188,6,178,37,188,155,191,37,188,29,205,37,188,142,218,37,188,237,231,37,188,58,245,37,188,117,2,38,188,159,15,38,188,182,28,38,188,188,41,38,188,176,54,
38,188,146,67,38,188,98,80,38,188,33,93,38,188,205,105,38,188,104,118,38,188,240,130,38,188,103,143,38,188,204,155,38,188,31,168,38,188,96,180,38,188,144,192,38,188,173,204,38,188,184,216,38,188,178,228,38,188,153,240,38,188,111,252,38,188,51,8,39,188,229,19,39,188,132,31,39,188,18,43,39,188,142,54,39,188,248,65,39,188,81,77,39,188,151,88,39,188,203,99,39,188,237,110,39,188,253,121,39,188,252,132,39,188,232,143,39,188,194,154,39,188,139,165,39,188,65,176,39,188,230,186,39,188,120,197,39,188,248,207,
39,188,103,218,39,188,195,228,39,188,14,239,39,188,70,249,39,188,108,3,40,188,129,13,40,188,131,23,40,188,116,33,40,188,82,43,40,188,30,53,40,188,216,62,40,188,129,72,40,188,23,82,40,188,155,91,40,188,13,101,40,188,109,110,40,188,187,119,40,188,247,128,40,188,33,138,40,188,57,147,40,188,63,156,40,188,51,165,40,188,20,174,40,188,228,182,40,188,162,191,40,188,77,200,40,188,230,208,40,188,110,217,40,188,227,225,40,188,70,234,40,188,151,242,40,188,214,250,40,188,3,3,41,188,30,11,41,188,39,19,41,188,29,
27,41,188,2,35,41,188,212,42,41,188,148,50,41,188,66,58,41,188,223,65,41,188,104,73,41,188,224,80,41,188,70,88,41,188,154,95,41,188,219,102,41,188,10,110,41,188,40,117,41,188,51,124,41,188,44,131,41,188,19,138,41,188,231,144,41,188,170,151,41,188,90,158,41,188,249,164,41,188,133,171,41,188,255,177,41,188,103,184,41,188,188,190,41,188,0,197,41,188,49,203,41,188,81,209,41,188,94,215,41,188,89,221,41,188,65,227,41,188,24,233,41,188,220,238,41,188,143,244,41,188,47,250,41,188,189,255,41,188,57,5,42,188,
162,10,42,188,250,15,42,188,63,21,42,188,114,26,42,188,147,31,42,188,162,36,42,188,159,41,42,188,137,46,42,188,98,51,42,188,40,56,42,188,220,60,42,188,125,65,42,188,13,70,42,188,138,74,42,188,245,78,42,188,78,83,42,188,149,87,42,188,202,91,42,188,236,95,42,188,253,99,42,188,251,103,42,188,231,107,42,188,192,111,42,188,136,115,42,188,61,119,42,188,224,122,42,188,113,126,42,188,240,129,42,188,92,133,42,188,183,136,42,188,255,139,42,188,53,143,42,188,89,146,42,188,106,149,42,188,106,152,42,188,87,155,
42,188,50,158,42,188,251,160,42,188,177,163,42,188,86,166,42,188,232,168,42,188,104,171,42,188,214,173,42,188,49,176,42,188,123,178,42,188,178,180,42,188,215,182,42,188,234,184,42,188,234,186,42,188,217,188,42,188,181,190,42,188,127,192,42,188,55,194,42,188,221,195,42,188,112,197,42,188,241,198,42,188,96,200,42,188,189,201,42,188,8,203,42,188,64,204,42,188,103,205,42,188,123,206,42,188,124,207,42,188,108,208,42,188,74,209,42,188,21,210,42,188,206,210,42,188,117,211,42,188,10,212,42,188,140,212,42,
188,253,212,42,188,91,213,42,188,167,213,42,188,224,213,42,188,8,214,42,188,30,214,42,188,33,214,42,188,18,214,42,188,241,213,42,188,189,213,42,188,120,213,42,188,32,213,42,188,182,212,42,188,58,212,42,188,172,211,42,188,12,211,42,188,89,210,42,188,148,209,42,188,189,208,42,188,212,207,42,188,217,206,42,188,204,205,42,188,172,204,42,188,122,203,42,188,55,202,42,188,225,200,42,188,120,199,42,188,254,197,42,188,113,196,42,188,211,194,42,188,34,193,42,188,95,191,42,188,138,189,42,188,162,187,42,188,
169,185,42,188,157,183,42,188,128,181,42,188,80,179,42,188,14,177,42,188,186,174,42,188,83,172,42,188,219,169,42,188,80,167,42,188,180,164,42,188,5,162,42,188,68,159,42,188,113,156,42,188,139,153,42,188,148,150,42,188,139,147,42,188,111,144,42,188,65,141,42,188,2,138,42,188,176,134,42,188,76,131,42,188,214,127,42,188,78,124,42,188,179,120,42,188,7,117,42,188,72,113,42,188,120,109,42,188,149,105,42,188,160,101,42,188,153,97,42,188,128,93,42,188,85,89,42,188,24,85,42,188,201,80,42,188,104,76,42,188,
245,71,42,188,111,67,42,188,216,62,42,188,46,58,42,188,115,53,42,188,165,48,42,188,197,43,42,188,212,38,42,188,208,33,42,188,186,28,42,188,146,23,42,188,88,18,42,188,12,13,42,188,175,7,42,188,63,2,42,188,189,252,41,188,41,247,41,188,130,241,41,188,202,235,41,188,0,230,41,188,36,224,41,188,54,218,41,188,54,212,41,188,36,206,41,188,0,200,41,188,202,193,41,188,130,187,41,188,40,181,41,188,188,174,41,188,62,168,41,188,174,161,41,188,12,155,41,188,88,148,41,188,146,141,41,188,186,134,41,188,208,127,41,
188,213,120,41,188,199,113,41,188,167,106,41,188,118,99,41,188,50,92,41,188,221,84,41,188,117,77,41,188,252,69,41,188,113,62,41,188,212,54,41,188,37,47,41,188,100,39,41,188,145,31,41,188,172,23,41,188,181,15,41,188,173,7,41,188,146,255,40,188,102,247,40,188,40,239,40,188,216,230,40,188,118,222,40,188,2,214,40,188,124,205,40,188,229,196,40,188,59,188,40,188,128,179,40,188,179,170,40,188,212,161,40,188,227,152,40,188,225,143,40,188,204,134,40,188,166,125,40,188,110,116,40,188,36,107,40,188,201,97,40,
188,91,88,40,188,220,78,40,188,75,69,40,188,168,59,40,188,243,49,40,188,45,40,40,188,85,30,40,188,107,20,40,188,111,10,40,188,98,0,40,188,67,246,39,188,18,236,39,188,207,225,39,188,123,215,39,188,20,205,39,188,157,194,39,188,19,184,39,188,120,173,39,188,203,162,39,188,12,152,39,188,59,141,39,188,89,130,39,188,101,119,39,188,96,108,39,188,73,97,39,188,32,86,39,188,229,74,39,188,153,63,39,188,59,52,39,188,204,40,39,188,75,29,39,188,184,17,39,188,20,6,39,188,94,250,38,188,150,238,38,188,189,226,38,188,
210,214,38,188,213,202,38,188,199,190,38,188,167,178,38,188,118,166,38,188,51,154,38,188,223,141,38,188,121,129,38,188,1,117,38,188,120,104,38,188,222,91,38,188,49,79,38,188,116,66,38,188,164,53,38,188,196,40,38,188,209,27,38,188,205,14,38,188,184,1,38,188,145,244,37,188,89,231,37,188,15,218,37,188,180,204,37,188,71,191,37,188,201,177,37,188,57,164,37,188,152,150,37,188,229,136,37,188,33,123,37,188,76,109,37,188,101,95,37,188,109,81,37,188,99,67,37,188,72,53,37,188,27,39,37,188,221,24,37,188,142,
10,37,188,45,252,36,188,187,237,36,188,55,223,36,188,162,208,36,188,252,193,36,188,69,179,36,188,124,164,36,188,162,149,36,188,182,134,36,188,185,119,36,188,171,104,36,188,140,89,36,188,91,74,36,188,25,59,36,188,197,43,36,188,97,28,36,188,235,12,36,188,100,253,35,188,203,237,35,188,34,222,35,188,103,206,35,188,154,190,35,188,189,174,35,188,207,158,35,188,207,142,35,188,190,126,35,188,156,110,35,188,104,94,35,188,36,78,35,188,206,61,35,188,103,45,35,188,239,28,35,188,102,12,35,188,203,251,34,188,32,
235,34,188,99,218,34,188,150,201,34,188,183,184,34,188,199,167,34,188,198,150,34,188,180,133,34,188,144,116,34,188,92,99,34,188,23,82,34,188,193,64,34,188,89,47,34,188,225,29,34,188,87,12,34,188,189,250,33,188,17,233,33,188,85,215,33,188,135,197,33,188,168,179,33,188,185,161,33,188,184,143,33,188,167,125,33,188,133,107,33,188,81,89,33,188,13,71,33,188,184,52,33,188,82,34,33,188,219,15,33,188,83,253,32,188,186,234,32,188,16,216,32,188,85,197,32,188,138,178,32,188,174,159,32,188,192,140,32,188,194,
121,32,188,179,102,32,188,148,83,32,188,99,64,32,188,34,45,32,188,208,25,32,188,109,6,32,188,249,242,31,188,116,223,31,188,223,203,31,188,57,184,31,188,130,164,31,188,187,144,31,188,227,124,31,188,250,104,31,188,0,85,31,188,246,64,31,188,219,44,31,188,175,24,31,188,114,4,31,188,37,240,30,188,200,219,30,188,89,199,30,188,218,178,30,188,75,158,30,188,170,137,30,188,249,116,30,188,56,96,30,188,102,75,30,188,131,54,30,188,144,33,30,188,140,12,30,188,120,247,29,188,83,226,29,188,30,205,29,188,216,183,
29,188,129,162,29,188,26,141,29,188,163,119,29,188,27,98,29,188,130,76,29,188,218,54,29,188,32,33,29,188,87,11,29,188,124,245,28,188,146,223,28,188,151,201,28,188,139,179,28,188,111,157,28,188,67,135,28,188,7,113,28,188,186,90,28,188,92,68,28,188,239,45,28,188,113,23,28,188,226,0,28,188,68,234,27,188,149,211,27,188,213,188,27,188,6,166,27,188,38,143,27,188,54,120,27,188,54,97,27,188,37,74,27,188,4,51,27,188,211,27,27,188,146,4,27,188,65,237,26,188,223,213,26,188,109,190,26,188,235,166,26,188,89,143,
26,188,183,119,26,188,5,96,26,188,66,72,26,188,111,48,26,188,141,24,26,188,154,0,26,188,151,232,25,188,132,208,25,188,97,184,25,188,46,160,25,188,235,135,25,188,151,111,25,188,52,87,25,188,193,62,25,188,62,38,25,188,171,13,25,188,7,245,24,188,84,220,24,188,145,195,24,188,190,170,24,188,219,145,24,188,232,120,24,188,230,95,24,188,211,70,24,188,176,45,24,188,126,20,24,188,60,251,23,188,233,225,23,188,135,200,23,188,22,175,23,188,148,149,23,188,3,124,23,188,97,98,23,188,176,72,23,188,239,46,23,188,31,
21,23,188,63,251,22,188,79,225,22,188,79,199,22,188,63,173,22,188,32,147,22,188,241,120,22,188,179,94,22,188,100,68,22,188,7,42,22,188,153,15,22,188,28,245,21,188,143,218,21,188,243,191,21,188,71,165,21,188,139,138,21,188,192,111,21,188,229,84,21,188,251,57,21,188,1,31,21,188,248,3,21,188,223,232,20,188,183,205,20,188,127,178,20,188,56,151,20,188,225,123,20,188,123,96,20,188,5,69,20,188,128,41,20,188,236,13,20,188,72,242,19,188,148,214,19,188,210,186,19,188,0,159,19,188,30,131,19,188,46,103,19,188,
45,75,19,188,30,47,19,188,255,18,19,188,209,246,18,188,148,218,18,188,72,190,18,188,236,161,18,188,129,133,18,188,7,105,18,188,125,76,18,188,228,47,18,188,60,19,18,188,133,246,17,188,191,217,17,188,234,188,17,188,5,160,17,188,18,131,17,188,15,102,17,188,253,72,17,188,220,43,17,188,172,14,17,188,109,241,16,188,31,212,16,188,194,182,16,188,85,153,16,188,218,123,16,188,80,94,16,188,183,64,16,188,15,35,16,188,87,5,16,188,145,231,15,188,188,201,15,188,216,171,15,188,230,141,15,188,228,111,15,188,211,81,
15,188,180,51,15,188,133,21,15,188,72,247,14,188,252,216,14,188,161,186,14,188,56,156,14,188,191,125,14,188,56,95,14,188,162,64,14,188,253,33,14,188,74,3,14,188,136,228,13,188,183,197,13,188,215,166,13,188,233,135,13,188,236,104,13,188,225,73,13,188,198,42,13,188,157,11,13,188,102,236,12,188,32,205,12,188,203,173,12,188,104,142,12,188,246,110,12,188,118,79,12,188,231,47,12,188,74,16,12,188,158,240,11,188,228,208,11,188,27,177,11,188,68,145,11,188,94,113,11,188,106,81,11,188,103,49,11,188,86,17,11,
188,55,241,10,188,9,209,10,188,205,176,10,188,131,144,10,188,42,112,10,188,195,79,10,188,77,47,10,188,202,14,10,188,56,238,9,188,151,205,9,188,233,172,9,188,44,140,9,188,97,107,9,188,136,74,9,188,161,41,9,188,171,8,9,188,168,231,8,188,150,198,8,188,118,165,8,188,72,132,8,188,12,99,8,188,193,65,8,188,105,32,8,188,3,255,7,188,142,221,7,188,12,188,7,188,123,154,7,188,221,120,7,188,48,87,7,188,118,53,7,188,173,19,7,188,215,241,6,188,243,207,6,188,0,174,6,188,0,140,6,188,242,105,6,188,214,71,6,188,173,
37,6,188,117,3,6,188,48,225,5,188,221,190,5,188,124,156,5,188,13,122,5,188,144,87,5,188,6,53,5,188,110,18,5,188,200,239,4,188,21,205,4,188,84,170,4,188,133,135,4,188,169,100,4,188,190,65,4,188,199,30,4,188,193,251,3,188,174,216,3,188,142,181,3,188,96,146,3,188,36,111,3,188,219,75,3,188,132,40,3,188,32,5,3,188,174,225,2,188,47,190,2,188,163,154,2,188,9,119,2,188,97,83,2,188,172,47,2,188,234,11,2,188,26,232,1,188,61,196,1,188,83,160,1,188,91,124,1,188,86,88,1,188,67,52,1,188,36,16,1,188,247,235,0,188,
189,199,0,188,117,163,0,188,32,127,0,188,191,90,0,188,79,54,0,188,211,17,0,188,148,218,255,187,102,145,255,187,31,72,255,187,189,254,254,187,66,181,254,187,172,107,254,187,251,33,254,187,49,216,253,187,77,142,253,187,79,68,253,187,54,250,252,187,4,176,252,187,184,101,252,187,81,27,252,187,209,208,251,187,55,134,251,187,132,59,251,187,182,240,250,187,207,165,250,187,206,90,250,187,179,15,250,187,127,196,249,187,49,121,249,187,202,45,249,187,73,226,248,187,174,150,248,187,250,74,248,187,44,255,247,
187,70,179,247,187,69,103,247,187,44,27,247,187,248,206,246,187,172,130,246,187,71,54,246,187,200,233,245,187,48,157,245,187,127,80,245,187,180,3,245,187,209,182,244,187,213,105,244,187,191,28,244,187,145,207,243,187,73,130,243,187,233,52,243,187,112,231,242,187,222,153,242,187,51,76,242,187,111,254,241,187,147,176,241,187,157,98,241,187,143,20,241,187,105,198,240,187,42,120,240,187,210,41,240,187,98,219,239,187,217,140,239,187,56,62,239,187,126,239,238,187,172,160,238,187,193,81,238,187,190,2,238,
187,163,179,237,187,111,100,237,187,35,21,237,187,191,197,236,187,67,118,236,187,175,38,236,187,2,215,235,187,62,135,235,187,97,55,235,187,109,231,234,187,96,151,234,187,60,71,234,187,255,246,233,187,171,166,233,187,63,86,233,187,187,5,233,187,31,181,232,187,108,100,232,187,161,19,232,187,190,194,231,187,195,113,231,187,177,32,231,187,136,207,230,187,71,126,230,187,238,44,230,187,126,219,229,187,246,137,229,187,88,56,229,187,161,230,228,187,212,148,228,187,239,66,228,187,243,240,227,187,224,158,227,
187,181,76,227,187,116,250,226,187,27,168,226,187,171,85,226,187,36,3,226,187,135,176,225,187,210,93,225,187,6,11,225,187,36,184,224,187,42,101,224,187,26,18,224,187,243,190,223,187,181,107,223,187,97,24,223,187,245,196,222,187,116,113,222,187,219,29,222,187,44,202,221,187,103,118,221,187,139,34,221,187,152,206,220,187,143,122,220,187,112,38,220,187,58,210,219,187,239,125,219,187,140,41,219,187,20,213,218,187,133,128,218,187,224,43,218,187,37,215,217,187,84,130,217,187,109,45,217,187,112,216,216,
187,93,131,216,187,52,46,216,187,244,216,215,187,160,131,215,187,53,46,215,187,180,216,214,187,30,131,214,187,114,45,214,187,176,215,213,187,217,129,213,187,235,43,213,187,233,213,212,187,209,127,212,187,163,41,212,187,96,211,211,187,7,125,211,187,153,38,211,187,22,208,210,187,125,121,210,187,207,34,210,187,12,204,209,187,51,117,209,187,69,30,209,187,67,199,208,187,43,112,208,187,254,24,208,187,188,193,207,187,101,106,207,187,249,18,207,187,120,187,206,187,226,99,206,187,55,12,206,187,120,180,205,
187,164,92,205,187,187,4,205,187,189,172,204,187,171,84,204,187,132,252,203,187,72,164,203,187,248,75,203,187,148,243,202,187,27,155,202,187,141,66,202,187,236,233,201,187,53,145,201,187,107,56,201,187,140,223,200,187,153,134,200,187,146,45,200,187,119,212,199,187,71,123,199,187,4,34,199,187,172,200,198,187,64,111,198,187,193,21,198,187,45,188,197,187,134,98,197,187,202,8,197,187,251,174,196,187,24,85,196,187,33,251,195,187,23,161,195,187,249,70,195,187,199,236,194,187,130,146,194,187,41,56,194,187,
189,221,193,187,61,131,193,187,170,40,193,187,3,206,192,187,73,115,192,187,124,24,192,187,155,189,191,187,167,98,191,187,160,7,191,187,134,172,190,187,89,81,190,187,24,246,189,187,197,154,189,187,94,63,189,187,229,227,188,187,88,136,188,187,185,44,188,187,7,209,187,187,66,117,187,187,106,25,187,187,128,189,186,187,131,97,186,187,115,5,186,187,80,169,185,187,27,77,185,187,212,240,184,187,122,148,184,187,13,56,184,187,142,219,183,187,253,126,183,187,89,34,183,187,163,197,182,187,219,104,182,187,0,12,
182,187,20,175,181,187,21,82,181,187,4,245,180,187,225,151,180,187,172,58,180,187,101,221,179,187,12,128,179,187,161,34,179,187,36,197,178,187,150,103,178,187,245,9,178,187,67,172,177,187,127,78,177,187,170,240,176,187,195,146,176,187,202,52,176,187,192,214,175,187,164,120,175,187,119,26,175,187,56,188,174,187,232,93,174,187,135,255,173,187,20,161,173,187,144,66,173,187,251,227,172,187,84,133,172,187,157,38,172,187,212,199,171,187,250,104,171,187,16,10,171,187,20,171,170,187,7,76,170,187,234,236,
169,187,187,141,169,187,124,46,169,187,44,207,168,187,203,111,168,187,89,16,168,187,215,176,167,187,68,81,167,187,161,241,166,187,237,145,166,187,40,50,166,187,83,210,165,187,110,114,165,187,120,18,165,187,114,178,164,187,92,82,164,187,53,242,163,187,254,145,163,187,183,49,163,187,96,209,162,187,249,112,162,187,130,16,162,187,250,175,161,187,99,79,161,187,188,238,160,187,5,142,160,187,62,45,160,187,103,204,159,187,128,107,159,187,138,10,159,187,132,169,158,187,111,72,158,187,73,231,157,187,21,134,
157,187,208,36,157,187,124,195,156,187,25,98,156,187,167,0,156,187,37,159,155,187,147,61,155,187,243,219,154,187,67,122,154,187,132,24,154,187,182,182,153,187,217,84,153,187,236,242,152,187,241,144,152,187,231,46,152,187,206,204,151,187,165,106,151,187,110,8,151,187,41,166,150,187,212,67,150,187,113,225,149,187,255,126,149,187,126,28,149,187,239,185,148,187,81,87,148,187,164,244,147,187,234,145,147,187,32,47,147,187,73,204,146,187,99,105,146,187,110,6,146,187,107,163,145,187,91,64,145,187,59,221,
144,187,14,122,144,187,211,22,144,187,138,179,143,187,50,80,143,187,205,236,142,187,89,137,142,187,216,37,142,187,73,194,141,187,172,94,141,187,1,251,140,187,73,151,140,187,131,51,140,187,175,207,139,187,206,107,139,187,223,7,139,187,226,163,138,187,217,63,138,187,193,219,137,187,156,119,137,187,106,19,137,187,43,175,136,187,222,74,136,187,133,230,135,187,29,130,135,187,169,29,135,187,40,185,134,187,154,84,134,187,254,239,133,187,86,139,133,187,161,38,133,187,223,193,132,187,16,93,132,187,52,248,
131,187,75,147,131,187,86,46,131,187,84,201,130,187,70,100,130,187,43,255,129,187,3,154,129,187,207,52,129,187,142,207,128,187,65,106,128,187,232,4,128,187,4,63,127,187,32,116,126,187,36,169,125,187,15,222,124,187,226,18,124,187,156,71,123,187,63,124,122,187,201,176,121,187,60,229,120,187,150,25,120,187,217,77,119,187,4,130,118,187,23,182,117,187,19,234,116,187,247,29,116,187,196,81,115,187,122,133,114,187,25,185,113,187,160,236,112,187,17,32,112,187,106,83,111,187,173,134,110,187,216,185,109,187,
238,236,108,187,236,31,108,187,212,82,107,187,166,133,106,187,97,184,105,187,6,235,104,187,149,29,104,187,14,80,103,187,113,130,102,187,190,180,101,187,245,230,100,187,22,25,100,187,34,75,99,187,24,125,98,187,249,174,97,187,196,224,96,187,122,18,96,187,27,68,95,187,167,117,94,187,29,167,93,187,127,216,92,187,204,9,92,187,4,59,91,187,39,108,90,187,54,157,89,187,48,206,88,187,22,255,87,187,232,47,87,187,165,96,86,187,78,145,85,187,227,193,84,187,100,242,83,187,209,34,83,187,43,83,82,187,112,131,81,
187,162,179,80,187,193,227,79,187,203,19,79,187,195,67,78,187,167,115,77,187,120,163,76,187,54,211,75,187,225,2,75,187,121,50,74,187,254,97,73,187,113,145,72,187,208,192,71,187,29,240,70,187,88,31,70,187,128,78,69,187,150,125,68,187,153,172,67,187,139,219,66,187,106,10,66,187,56,57,65,187,243,103,64,187,157,150,63,187,53,197,62,187,187,243,61,187,48,34,61,187,148,80,60,187,230,126,59,187,38,173,58,187,86,219,57,187,116,9,57,187,130,55,56,187,126,101,55,187,106,147,54,187,69,193,53,187,15,239,52,187,
201,28,52,187,114,74,51,187,11,120,50,187,148,165,49,187,12,211,48,187,116,0,48,187,205,45,47,187,21,91,46,187,77,136,45,187,118,181,44,187,143,226,43,187,152,15,43,187,146,60,42,187,124,105,41,187,87,150,40,187,35,195,39,187,224,239,38,187,141,28,38,187,44,73,37,187,188,117,36,187,61,162,35,187,175,206,34,187,19,251,33,187,104,39,33,187,174,83,32,187,231,127,31,187,17,172,30,187,44,216,29,187,58,4,29,187,58,48,28,187,44,92,27,187,16,136,26,187,230,179,25,187,175,223,24,187,106,11,24,187,23,55,23,
187,183,98,22,187,74,142,21,187,208,185,20,187,73,229,19,187,180,16,19,187,19,60,18,187,101,103,17,187,170,146,16,187,226,189,15,187,14,233,14,187,46,20,14,187,65,63,13,187,71,106,12,187,66,149,11,187,48,192,10,187,18,235,9,187,232,21,9,187,179,64,8,187,113,107,7,187,36,150,6,187,204,192,5,187,104,235,4,187,248,21,4,187,125,64,3,187,247,106,2,187,102,149,1,187,201,191,0,187,68,212,255,186,224,40,254,186,102,125,252,186,215,209,250,186,50,38,249,186,120,122,247,186,170,206,245,186,199,34,244,186,207,
118,242,186,195,202,240,186,163,30,239,186,110,114,237,186,38,198,235,186,203,25,234,186,92,109,232,186,218,192,230,186,68,20,229,186,156,103,227,186,225,186,225,186,19,14,224,186,52,97,222,186,65,180,220,186,61,7,219,186,40,90,217,186,0,173,215,186,199,255,213,186,125,82,212,186,33,165,210,186,181,247,208,186,56,74,207,186,170,156,205,186,12,239,203,186,94,65,202,186,160,147,200,186,209,229,198,186,244,55,197,186,6,138,195,186,10,220,193,186,254,45,192,186,227,127,190,186,186,209,188,186,130,35,
187,186,59,117,185,186,230,198,183,186,132,24,182,186,19,106,180,186,149,187,178,186,9,13,177,186,111,94,175,186,201,175,173,186,22,1,172,186,86,82,170,186,137,163,168,186,176,244,166,186,202,69,165,186,216,150,163,186,219,231,161,186,210,56,160,186,189,137,158,186,157,218,156,186,114,43,155,186,59,124,153,186,250,204,151,186,175,29,150,186,88,110,148,186,248,190,146,186,141,15,145,186,25,96,143,186,155,176,141,186,19,1,140,186,130,81,138,186,231,161,136,186,68,242,134,186,151,66,133,186,227,146,
131,186,37,227,129,186,95,51,128,186,35,7,125,186,119,167,121,186,188,71,118,186,242,231,114,186,25,136,111,186,49,40,108,186,60,200,104,186,56,104,101,186,40,8,98,186,10,168,94,186,224,71,91,186,169,231,87,186,102,135,84,186,24,39,81,186,191,198,77,186,90,102,74,186,236,5,71,186,115,165,67,186,240,68,64,186,100,228,60,186,207,131,57,186,49,35,54,186,139,194,50,186,221,97,47,186,39,1,44,186,106,160,40,186,167,63,37,186,220,222,33,186,12,126,30,186,53,29,27,186,89,188,23,186,120,91,20,186,147,250,
16,186,169,153,13,186,187,56,10,186,201,215,6,186,212,118,3,186,220,21,0,186,195,105,249,185,202,167,242,185,204,229,235,185,204,35,229,185,202,97,222,185,198,159,215,185,193,221,208,185,188,27,202,185,184,89,195,185,181,151,188,185,180,213,181,185,182,19,175,185,187,81,168,185,196,143,161,185,211,205,154,185,231,11,148,185,1,74,141,185,35,136,134,185,152,140,127,185,251,8,114,185,113,133,100,185,251,1,87,185,154,126,73,185,80,251,59,185,30,120,46,185,6,245,32,185,9,114,19,185,40,239,5,185,204,216,
240,184,133,211,213,184,128,206,186,184,192,201,159,184,71,197,132,184,49,130,83,184,110,122,29,184,150,230,206,183,55,179,69,183,126,32,147,53,146,120,106,55,28,69,225,55,59,166,38,56,37,169,92,56,164,85,137,56,78,86,164,56,142,86,191,56,97,86,218,56,197,85,245,56,91,42,8,57,154,169,21,57,156,40,35,57,96,167,48,57,230,37,62,57,43,164,75,57,46,34,89,57,238,159,102,57,106,29,116,57,79,205,128,57,198,139,135,57,25,74,142,57,70,8,149,57,77,198,155,57,46,132,162,57,231,65,169,57,120,255,175,57,225,188,
182,57,32,122,189,57,52,55,196,57,30,244,202,57,220,176,209,57,110,109,216,57,211,41,223,57,10,230,229,57,18,162,236,57,235,93,243,57,148,25,250,57,135,106,0,58,42,200,3,58,181,37,7,58,38,131,10,58,125,224,13,58,187,61,17,58,222,154,20,58,230,247,23,58,211,84,27,58,164,177,30,58,89,14,34,58,243,106,37,58,111,199,40,58,207,35,44,58,17,128,47,58,54,220,50,58,61,56,54,58,37,148,57,58,238,239,60,58,153,75,64,58,36,167,67,58,143,2,71,58,218,93,74,58,4,185,77,58,14,20,81,58,246,110,84,58,189,201,87,58,
98,36,91,58,229,126,94,58,69,217,97,58,130,51,101,58,155,141,104,58,145,231,107,58,99,65,111,58,16,155,114,58,153,244,117,58,252,77,121,58,58,167,124,58,41,0,128,58,162,172,129,58,8,89,131,58,90,5,133,58,153,177,134,58,195,93,136,58,218,9,138,58,221,181,139,58,203,97,141,58,165,13,143,58,106,185,144,58,26,101,146,58,181,16,148,58,59,188,149,58,172,103,151,58,7,19,153,58,76,190,154,58,123,105,156,58,149,20,158,58,152,191,159,58,132,106,161,58,90,21,163,58,25,192,164,58,193,106,166,58,82,21,168,58,
203,191,169,58,45,106,171,58,120,20,173,58,170,190,174,58,197,104,176,58,199,18,178,58,177,188,179,58,130,102,181,58,58,16,183,58,218,185,184,58,96,99,186,58,206,12,188,58,33,182,189,58,92,95,191,58,124,8,193,58,130,177,194,58,110,90,196,58,64,3,198,58,248,171,199,58,148,84,201,58,22,253,202,58,125,165,204,58,201,77,206,58,249,245,207,58,14,158,209,58,6,70,211,58,228,237,212,58,165,149,214,58,73,61,216,58,210,228,217,58,61,140,219,58,140,51,221,58,190,218,222,58,211,129,224,58,203,40,226,58,165,207,
227,58,97,118,229,58,0,29,231,58,128,195,232,58,227,105,234,58,39,16,236,58,76,182,237,58,83,92,239,58,59,2,241,58,4,168,242,58,174,77,244,58,57,243,245,58,163,152,247,58,238,61,249,58,26,227,250,58,37,136,252,58,16,45,254,58,218,209,255,58,66,187,0,59,134,141,1,59,186,95,2,59,222,49,3,59,241,3,4,59,243,213,4,59,228,167,5,59,197,121,6,59,148,75,7,59,82,29,8,59,255,238,8,59,155,192,9,59,38,146,10,59,159,99,11,59,7,53,12,59,93,6,13,59,161,215,13,59,212,168,14,59,244,121,15,59,3,75,16,59,0,28,17,59,
234,236,17,59,195,189,18,59,137,142,19,59,61,95,20,59,222,47,21,59,109,0,22,59,233,208,22,59,82,161,23,59,169,113,24,59,237,65,25,59,30,18,26,59,59,226,26,59,70,178,27,59,61,130,28,59,33,82,29,59,242,33,30,59,175,241,30,59,89,193,31,59,239,144,32,59,113,96,33,59,223,47,34,59,58,255,34,59,128,206,35,59,178,157,36,59,209,108,37,59,219,59,38,59,208,10,39,59,177,217,39,59,126,168,40,59,54,119,41,59,218,69,42,59,104,20,43,59,226,226,43,59,71,177,44,59,151,127,45,59,210,77,46,59,247,27,47,59,8,234,47,59,
3,184,48,59,232,133,49,59,184,83,50,59,115,33,51,59,23,239,51,59,166,188,52,59,31,138,53,59,130,87,54,59,207,36,55,59,6,242,55,59,39,191,56,59,50,140,57,59,38,89,58,59,4,38,59,59,203,242,59,59,123,191,60,59,21,140,61,59,152,88,62,59,4,37,63,59,90,241,63,59,152,189,64,59,191,137,65,59,207,85,66,59,199,33,67,59,168,237,67,59,114,185,68,59,36,133,69,59,191,80,70,59,66,28,71,59,173,231,71,59,0,179,72,59,59,126,73,59,95,73,74,59,106,20,75,59,93,223,75,59,55,170,76,59,249,116,77,59,163,63,78,59,52,10,79,
59,173,212,79,59,13,159,80,59,84,105,81,59,130,51,82,59,152,253,82,59,148,199,83,59,119,145,84,59,65,91,85,59,241,36,86,59,137,238,86,59,7,184,87,59,107,129,88,59,182,74,89,59,231,19,90,59,254,220,90,59,251,165,91,59,223,110,92,59,168,55,93,59,87,0,94,59,236,200,94,59,103,145,95,59,200,89,96,59,14,34,97,59,57,234,97,59,74,178,98,59,64,122,99,59,28,66,100,59,220,9,101,59,130,209,101,59,13,153,102,59,124,96,103,59,209,39,104,59,10,239,104,59,40,182,105,59,42,125,106,59,17,68,107,59,220,10,108,59,140,
209,108,59,32,152,109,59,152,94,110,59,244,36,111,59,53,235,111,59,89,177,112,59,97,119,113,59,77,61,114,59,28,3,115,59,207,200,115,59,102,142,116,59,224,83,117,59,61,25,118,59,126,222,118,59,162,163,119,59,169,104,120,59,147,45,121,59,96,242,121,59,16,183,122,59,163,123,123,59,24,64,124,59,113,4,125,59,171,200,125,59,200,140,126,59,200,80,127,59,85,10,128,59,55,108,128,59,10,206,128,59,206,47,129,59,132,145,129,59,42,243,129,59,193,84,130,59,73,182,130,59,194,23,131,59,43,121,131,59,134,218,131,
59,209,59,132,59,13,157,132,59,57,254,132,59,86,95,133,59,100,192,133,59,98,33,134,59,81,130,134,59,48,227,134,59,255,67,135,59,191,164,135,59,111,5,136,59,16,102,136,59,160,198,136,59,33,39,137,59,146,135,137,59,244,231,137,59,69,72,138,59,134,168,138,59,184,8,139,59,217,104,139,59,234,200,139,59,235,40,140,59,221,136,140,59,189,232,140,59,142,72,141,59,78,168,141,59,255,7,142,59,158,103,142,59,46,199,142,59,173,38,143,59,27,134,143,59,121,229,143,59,199,68,144,59,4,164,144,59,48,3,145,59,76,98,
145,59,86,193,145,59,81,32,146,59,58,127,146,59,19,222,146,59,219,60,147,59,146,155,147,59,56,250,147,59,205,88,148,59,81,183,148,59,196,21,149,59,38,116,149,59,119,210,149,59,182,48,150,59,229,142,150,59,2,237,150,59,14,75,151,59,9,169,151,59,242,6,152,59,202,100,152,59,145,194,152,59,70,32,153,59,234,125,153,59,124,219,153,59,252,56,154,59,107,150,154,59,201,243,154,59,20,81,155,59,78,174,155,59,118,11,156,59,141,104,156,59,145,197,156,59,132,34,157,59,101,127,157,59,51,220,157,59,240,56,158,59,
155,149,158,59,52,242,158,59,186,78,159,59,47,171,159,59,145,7,160,59,225,99,160,59,31,192,160,59],"i8",4,y.a+327680);
Q([74,28,161,59,100,120,161,59,106,212,161,59,95,48,162,59,65,140,162,59,17,232,162,59,206,67,163,59,120,159,163,59,16,251,163,59,149,86,164,59,8,178,164,59,104,13,165,59,181,104,165,59,240,195,165,59,23,31,166,59,44,122,166,59,46,213,166,59,29,48,167,59,249,138,167,59,194,229,167,59,120,64,168,59,27,155,168,59,171,245,168,59,39,80,169,59,145,170,169,59,231,4,170,59,42,95,170,59,90,185,170,59,119,19,171,59,128,109,171,59,118,199,171,59,88,33,172,59,39,123,172,59,226,212,172,59,138,46,173,59,30,136,
173,59,159,225,173,59,12,59,174,59,101,148,174,59,170,237,174,59,220,70,175,59,250,159,175,59,4,249,175,59,251,81,176,59,221,170,176,59,171,3,177,59,102,92,177,59,12,181,177,59,159,13,178,59,29,102,178,59,136,190,178,59,222,22,179,59,31,111,179,59,77,199,179,59,103,31,180,59,108,119,180,59,93,207,180,59,57,39,181,59,1,127,181,59,181,214,181,59,84,46,182,59,222,133,182,59,84,221,182,59,182,52,183,59,3,140,183,59,59,227,183,59,95,58,184,59,109,145,184,59,103,232,184,59,77,63,185,59,29,150,185,59,217,
236,185,59,127,67,186,59,17,154,186,59,142,240,186,59,246,70,187,59,73,157,187,59,134,243,187,59,175,73,188,59,194,159,188,59,193,245,188,59,170,75,189,59,126,161,189,59,60,247,189,59,229,76,190,59,121,162,190,59,248,247,190,59,97,77,191,59,181,162,191,59,243,247,191,59,27,77,192,59,47,162,192,59,44,247,192,59,20,76,193,59,230,160,193,59,163,245,193,59,74,74,194,59,219,158,194,59,86,243,194,59,187,71,195,59,11,156,195,59,69,240,195,59,104,68,196,59,118,152,196,59,110,236,196,59,80,64,197,59,27,148,
197,59,209,231,197,59,113,59,198,59,250,142,198,59,109,226,198,59,202,53,199,59,16,137,199,59,65,220,199,59,91,47,200,59,94,130,200,59,76,213,200,59,34,40,201,59,227,122,201,59,141,205,201,59,32,32,202,59,157,114,202,59,3,197,202,59,82,23,203,59,139,105,203,59,173,187,203,59,185,13,204,59,173,95,204,59,139,177,204,59,82,3,205,59,2,85,205,59,156,166,205,59,30,248,205,59,137,73,206,59,222,154,206,59,27,236,206,59,65,61,207,59,80,142,207,59,73,223,207,59,41,48,208,59,243,128,208,59,166,209,208,59,65,
34,209,59,197,114,209,59,50,195,209,59,135,19,210,59,197,99,210,59,235,179,210,59,250,3,211,59,242,83,211,59,210,163,211,59,154,243,211,59,75,67,212,59,229,146,212,59,102,226,212,59,208,49,213,59,35,129,213,59,93,208,213,59,128,31,214,59,139,110,214,59,126,189,214,59,90,12,215,59,29,91,215,59,201,169,215,59,92,248,215,59,216,70,216,59,59,149,216,59,135,227,216,59,186,49,217,59,213,127,217,59,217,205,217,59,195,27,218,59,150,105,218,59,81,183,218,59,243,4,219,59,125,82,219,59,239,159,219,59,72,237,
219,59,137,58,220,59,177,135,220,59,193,212,220,59,185,33,221,59,152,110,221,59,94,187,221,59,12,8,222,59,161,84,222,59,30,161,222,59,130,237,222,59,205,57,223,59,0,134,223,59,25,210,223,59,26,30,224,59,2,106,224,59,210,181,224,59,136,1,225,59,38,77,225,59,170,152,225,59,22,228,225,59,104,47,226,59,162,122,226,59,194,197,226,59,202,16,227,59,184,91,227,59,141,166,227,59,73,241,227,59,236,59,228,59,117,134,228,59,229,208,228,59,60,27,229,59,122,101,229,59,158,175,229,59,169,249,229,59,154,67,230,59,
114,141,230,59,48,215,230,59,213,32,231,59,97,106,231,59,211,179,231,59,43,253,231,59,105,70,232,59,142,143,232,59,154,216,232,59,139,33,233,59,99,106,233,59,33,179,233,59,197,251,233,59,80,68,234,59,192,140,234,59,23,213,234,59,84,29,235,59,119,101,235,59,127,173,235,59,110,245,235,59,67,61,236,59,254,132,236,59,158,204,236,59,37,20,237,59,145,91,237,59,228,162,237,59,28,234,237,59,57,49,238,59,61,120,238,59,38,191,238,59,245,5,239,59,170,76,239,59,68,147,239,59,196,217,239,59,41,32,240,59,116,102,
240,59,165,172,240,59,187,242,240,59,182,56,241,59,151,126,241,59,93,196,241,59,9,10,242,59,154,79,242,59,16,149,242,59,108,218,242,59,173,31,243,59,211,100,243,59,222,169,243,59,206,238,243,59,164,51,244,59,95,120,244,59,255,188,244,59,132,1,245,59,238,69,245,59,61,138,245,59,113,206,245,59,138,18,246,59,136,86,246,59,107,154,246,59,51,222,246,59,223,33,247,59,113,101,247,59,231,168,247,59,66,236,247,59,130,47,248,59,166,114,248,59,176,181,248,59,158,248,248,59,112,59,249,59,39,126,249,59,195,192,
249,59,67,3,250,59,168,69,250,59,242,135,250,59,32,202,250,59,50,12,251,59,41,78,251,59,4,144,251,59,196,209,251,59,104,19,252,59,240,84,252,59,93,150,252,59,173,215,252,59,227,24,253,59,252,89,253,59,250,154,253,59,219,219,253,59,161,28,254,59,75,93,254,59,217,157,254,59,76,222,254,59,162,30,255,59,220,94,255,59,251,158,255,59,253,222,255,59,114,15,0,60,87,47,0,60,46,79,0,60,247,110,0,60,177,142,0,60,94,174,0,60,253,205,0,60,142,237,0,60,16,13,1,60,132,44,1,60,235,75,1,60,67,107,1,60,140,138,1,60,
200,169,1,60,246,200,1,60,21,232,1,60,38,7,2,60,41,38,2,60,29,69,2,60,4,100,2,60,220,130,2,60,165,161,2,60,97,192,2,60,14,223,2,60,173,253,2,60,61,28,3,60,191,58,3,60,51,89,3,60,152,119,3,60,240,149,3,60,56,180,3,60,114,210,3,60,158,240,3,60,188,14,4,60,203,44,4,60,203,74,4,60,189,104,4,60,161,134,4,60,118,164,4,60,60,194,4,60,244,223,4,60,158,253,4,60,57,27,5,60,198,56,5,60,67,86,5,60,179,115,5,60,20,145,5,60,102,174,5,60,169,203,5,60,222,232,5,60,5,6,6,60,28,35,6,60,37,64,6,60,32,93,6,60,12,122,
6,60,233,150,6,60,183,179,6,60,119,208,6,60,40,237,6,60,202,9,7,60,93,38,7,60,226,66,7,60,88,95,7,60,191,123,7,60,24,152,7,60,97,180,7,60,156,208,7,60,200,236,7,60,229,8,8,60,244,36,8,60,243,64,8,60,228,92,8,60,198,120,8,60,152,148,8,60,92,176,8,60,18,204,8,60,184,231,8,60,79,3,9,60,215,30,9,60,81,58,9,60,187,85,9,60,23,113,9,60,99,140,9,60,161,167,9,60,207,194,9,60,239,221,9,60,255,248,9,60,1,20,10,60,243,46,10,60,214,73,10,60,171,100,10,60,112,127,10,60,38,154,10,60,205,180,10,60,101,207,10,60,
238,233,10,60,103,4,11,60,210,30,11,60,45,57,11,60,122,83,11,60,183,109,11,60,229,135,11,60,4,162,11,60,19,188,11,60,19,214,11,60,5,240,11,60,231,9,12,60,185,35,12,60,125,61,12,60,49,87,12,60,214,112,12,60,107,138,12,60,242,163,12,60,105,189,12,60,209,214,12,60,41,240,12,60,114,9,13,60,172,34,13,60,214,59,13,60,242,84,13,60,253,109,13,60,250,134,13,60,231,159,13,60,196,184,13,60,146,209,13,60,81,234,13,60,1,3,14,60,160,27,14,60,49,52,14,60,178,76,14,60,36,101,14,60,134,125,14,60,216,149,14,60,28,
174,14,60,79,198,14,60,115,222,14,60,136,246,14,60,141,14,15,60,131,38,15,60,105,62,15,60,63,86,15,60,6,110,15,60,190,133,15,60,101,157,15,60,254,180,15,60,134,204,15,60,255,227,15,60,105,251,15,60,194,18,16,60,13,42,16,60,71,65,16,60,114,88,16,60,141,111,16,60,153,134,16,60,148,157,16,60,129,180,16,60,93,203,16,60,42,226,16,60,231,248,16,60,148,15,17,60,50,38,17,60,192,60,17,60,62,83,17,60,172,105,17,60,11,128,17,60,90,150,17,60,153,172,17,60,200,194,17,60,232,216,17,60,247,238,17,60,247,4,18,60,
231,26,18,60,199,48,18,60,152,70,18,60,88,92,18,60,9,114,18,60,170,135,18,60,59,157,18,60,188,178,18,60,45,200,18,60,142,221,18,60,223,242,18,60,33,8,19,60,82,29,19,60,116,50,19,60,134,71,19,60,136,92,19,60,121,113,19,60,91,134,19,60,45,155,19,60,239,175,19,60,161,196,19,60,67,217,19,60,213,237,19,60,86,2,20,60,200,22,20,60,42,43,20,60,124,63,20,60,190,83,20,60,240,103,20,60,17,124,20,60,35,144,20,60,36,164,20,60,22,184,20,60,247,203,20,60,201,223,20,60,138,243,20,60,59,7,21,60,220,26,21,60,109,46,
21,60,238,65,21,60,94,85,21,60,191,104,21,60,15,124,21,60,79,143,21,60,127,162,21,60,159,181,21,60,175,200,21,60,174,219,21,60,158,238,21,60,125,1,22,60,76,20,22,60,10,39,22,60,185,57,22,60,87,76,22,60,229,94,22,60,99,113,22,60,208,131,22,60,45,150,22,60,122,168,22,60,183,186,22,60,228,204,22,60,0,223,22,60,12,241,22,60,7,3,23,60,243,20,23,60,206,38,23,60,152,56,23,60,83,74,23,60,253,91,23,60,150,109,23,60,32,127,23,60,153,144,23,60,1,162,23,60,89,179,23,60,161,196,23,60,217,213,23,60,0,231,23,60,
23,248,23,60,29,9,24,60,19,26,24,60,249,42,24,60,206,59,24,60,147,76,24,60,71,93,24,60,235,109,24,60,126,126,24,60,1,143,24,60,116,159,24,60,214,175,24,60,40,192,24,60,105,208,24,60,153,224,24,60,186,240,24,60,201,0,25,60,201,16,25,60,183,32,25,60,150,48,25,60,99,64,25,60,33,80,25,60,205,95,25,60,106,111,25,60,245,126,25,60,112,142,25,60,219,157,25,60,53,173,25,60,127,188,25,60,184,203,25,60,224,218,25,60,248,233,25,60,255,248,25,60,246,7,26,60,220,22,26,60,177,37,26,60,118,52,26,60,42,67,26,60,206,
81,26,60,97,96,26,60,228,110,26,60,85,125,26,60,183,139,26,60,7,154,26,60,71,168,26,60,118,182,26,60,149,196,26,60,163,210,26,60,160,224,26,60,141,238,26,60,105,252,26,60,52,10,27,60,239,23,27,60,153,37,27,60,50,51,27,60,187,64,27,60,51,78,27,60,154,91,27,60,241,104,27,60,54,118,27,60,107,131,27,60,144,144,27,60,163,157,27,60,166,170,27,60,153,183,27,60,122,196,27,60,75,209,27,60,11,222,27,60,186,234,27,60,88,247,27,60,230,3,28,60,99,16,28,60,207,28,28,60,42,41,28,60,117,53,28,60,175,65,28,60,216,
77,28,60,240,89,28,60,247,101,28,60,238,113,28,60,212,125,28,60,169,137,28,60,109,149,28,60,32,161,28,60,195,172,28,60,85,184,28,60,214,195,28,60,70,207,28,60,165,218,28,60,243,229,28,60,49,241,28,60,94,252,28,60,121,7,29,60,132,18,29,60,127,29,29,60,104,40,29,60,64,51,29,60,8,62,29,60,191,72,29,60,100,83,29,60,249,93,29,60,125,104,29,60,240,114,29,60,83,125,29,60,164,135,29,60,229,145,29,60,20,156,29,60,51,166,29,60,65,176,29,60,61,186,29,60,41,196,29,60,4,206,29,60,206,215,29,60,136,225,29,60,48,
235,29,60,199,244,29,60,77,254,29,60,195,7,30,60,39,17,30,60,123,26,30,60,190,35,30,60,239,44,30,60,16,54,30,60,32,63,30,60,30,72,30,60,12,81,30,60,233,89,30,60,181,98,30,60,112,107,30,60,26,116,30,60,179,124,30,60,59,133,30,60,178,141,30,60,24,150,30,60,109,158,30,60,177,166,30,60,228,174,30,60,6,183,30,60,23,191,30,60,23,199,30,60,7,207,30,60,229,214,30,60,178,222,30,60,110,230,30,60,25,238,30,60,179,245,30,60,60,253,30,60,180,4,31,60,27,12,31,60,113,19,31,60,182,26,31,60,234,33,31,60,13,41,31,
60,30,48,31,60,31,55,31,60,15,62,31,60,238,68,31,60,187,75,31,60,120,82,31,60,36,89,31,60,190,95,31,60,72,102,31,60,192,108,31,60,40,115,31,60,126,121,31,60,196,127,31,60,248,133,31,60,27,140,31,60,45,146,31,60,46,152,31,60,30,158,31,60,253,163,31,60,203,169,31,60,136,175,31,60,52,181,31,60,206,186,31,60,88,192,31,60,209,197,31,60,56,203,31,60,142,208,31,60,212,213,31,60,8,219,31,60,43,224,31,60,61,229,31,60,62,234,31,60,46,239,31,60,13,244,31,60,219,248,31,60,151,253,31,60,67,2,32,60,221,6,32,60,
103,11,32,60,223,15,32,60,70,20,32,60,156,24,32,60,225,28,32,60,21,33,32,60,56,37,32,60,74,41,32,60,74,45,32,60,58,49,32,60,24,53,32,60,230,56,32,60,162,60,32,60,77,64,32,60,231,67,32,60,112,71,32,60,232,74,32,60,78,78,32,60,164,81,32,60,232,84,32,60,28,88,32,60,62,91,32,60,79,94,32,60,79,97,32,60,62,100,32,60,28,103,32,60,233,105,32,60,164,108,32,60,79,111,32,60,232,113,32,60,113,116,32,60,232,118,32,60,78,121,32,60,163,123,32,60,231,125,32,60,25,128,32,60,59,130,32,60,75,132,32,60,75,134,32,60,
57,136,32,60,22,138,32,60,226,139,32,60,157,141,32,60,71,143,32,60,224,144,32,60,104,146,32,60,222,147,32,60,67,149,32,60,152,150,32,60,219,151,32,60,13,153,32,60,46,154,32,60,62,155,32,60,61,156,32,60,42,157,32,60,7,158,32,60,210,158,32,60,141,159,32,60,54,160,32,60,206,160,32,60,85,161,32,60,203,161,32,60,48,162,32,60,131,162,32,60,198,162,32,60,247,162,32,60,24,163,32,60,39,163,32,60,37,163,32,60,18,163,32,60,238,162,32,60,185,162,32,60,115,162,32,60,28,162,32,60,180,161,32,60,58,161,32,60,176,
160,32,60,20,160,32,60,103,159,32,60,169,158,32,60,218,157,32,60,250,156,32,60,9,156,32,60,7,155,32,60,244,153,32,60,208,152,32,60,154,151,32,60,84,150,32,60,252,148,32,60,148,147,32,60,26,146,32,60,143,144,32,60,243,142,32,60,70,141,32,60,136,139,32,60,185,137,32,60,217,135,32,60,232,133,32,60,230,131,32,60,211,129,32,60,174,127,32,60,121,125,32,60,50,123,32,60,219,120,32,60,114,118,32,60,249,115,32,60,110,113,32,60,210,110,32,60,38,108,32,60,104,105,32,60,153,102,32,60,185,99,32,60,200,96,32,60,
198,93,32,60,180,90,32,60,144,87,32,60,91,84,32,60,20,81,32,60,189,77,32,60,85,74,32,60,220,70,32,60,82,67,32,60,183,63,32,60,11,60,32,60,78,56,32,60,128,52,32,60,160,48,32,60,176,44,32,60,175,40,32,60,157,36,32,60,122,32,32,60,70,28,32,60,1,24,32,60,171,19,32,60,68,15,32,60,203,10,32,60,66,6,32,60,168,1,32,60,253,252,31,60,65,248,31,60,117,243,31,60,151,238,31,60,168,233,31,60,168,228,31,60,151,223,31,60,118,218,31,60,67,213,31,60,255,207,31,60,171,202,31,60,69,197,31,60,207,191,31,60,71,186,31,
60,175,180,31,60,6,175,31,60,76,169,31,60,129,163,31,60,165,157,31,60,184,151,31,60,186,145,31,60,171,139,31,60,140,133,31,60,91,127,31,60,26,121,31,60,199,114,31,60,100,108,31,60,240,101,31,60,107,95,31,60,213,88,31,60,47,82,31,60,119,75,31,60,175,68,31,60,213,61,31,60,235,54,31,60,240,47,31,60,228,40,31,60,199,33,31,60,154,26,31,60,91,19,31,60,12,12,31,60,172,4,31,60,59,253,30,60,185,245,30,60,38,238,30,60,131,230,30,60,207,222,30,60,10,215,30,60,52,207,30,60,77,199,30,60,86,191,30,60,77,183,30,
60,52,175,30,60,10,167,30,60,208,158,30,60,132,150,30,60,40,142,30,60,187,133,30,60,62,125,30,60,175,116,30,60,16,108,30,60,96,99,30,60,159,90,30,60,206,81,30,60,235,72,30,60,248,63,30,60,245,54,30,60,224,45,30,60,187,36,30,60,133,27,30,60,63,18,30,60,232,8,30,60,128,255,29,60,7,246,29,60,126,236,29,60,228,226,29,60,57,217,29,60,125,207,29,60,177,197,29,60,213,187,29,60,231,177,29,60,233,167,29,60,218,157,29,60,187,147,29,60,139,137,29,60,74,127,29,60,249,116,29,60,151,106,29,60,37,96,29,60,161,85,
29,60,14,75,29,60,105,64,29,60,180,53,29,60,239,42,29,60,25,32,29,60,50,21,29,60,58,10,29,60,51,255,28,60,26,244,28,60,241,232,28,60,183,221,28,60,109,210,28,60,19,199,28,60,167,187,28,60,44,176,28,60,159,164,28,60,2,153,28,60,85,141,28,60,151,129,28,60,201,117,28,60,234,105,28,60,250,93,28,60,251,81,28,60,234,69,28,60,201,57,28,60,152,45,28,60,86,33,28,60,4,21,28,60,161,8,28,60,46,252,27,60,170,239,27,60,22,227,27,60,114,214,27,60,189,201,27,60,248,188,27,60,34,176,27,60,60,163,27,60,69,150,27,60,
62,137,27,60,39,124,27,60,255,110,27,60,199,97,27,60,127,84,27,60,38,71,27,60,189,57,27,60,67,44,27,60,185,30,27,60,31,17,27,60,117,3,27,60,186,245,26,60,239,231,26,60,19,218,26,60,39,204,26,60,43,190,26,60,31,176,26,60,2,162,26,60,213,147,26,60,152,133,26,60,74,119,26,60,236,104,26,60,126,90,26,60,0,76,26,60,114,61,26,60,211,46,26,60,36,32,26,60,101,17,26,60,149,2,26,60,182,243,25,60,198,228,25,60,198,213,25,60,182,198,25,60,149,183,25,60,101,168,25,60,36,153,25,60,211,137,25,60,114,122,25,60,1,
107,25,60,128,91,25,60,239,75,25,60,77,60,25,60,156,44,25,60,218,28,25,60,8,13,25,60,38,253,24,60,52,237,24,60,50,221,24,60,32,205,24,60,254,188,24,60,203,172,24,60,137,156,24,60,55,140,24,60,213,123,24,60,98,107,24,60,224,90,24,60,77,74,24,60,171,57,24,60,249,40,24,60,54,24,24,60,100,7,24,60,130,246,23,60,143,229,23,60,141,212,23,60,123,195,23,60,89,178,23,60,39,161,23,60,229,143,23,60,147,126,23,60,49,109,23,60,191,91,23,60,62,74,23,60,172,56,23,60,11,39,23,60,90,21,23,60,153,3,23,60,200,241,22,
60,231,223,22,60,247,205,22,60,246,187,22,60,230,169,22,60,198,151,22,60,150,133,22,60,87,115,22,60,7,97,22,60,168,78,22,60,57,60,22,60,187,41,22,60,44,23,22,60,142,4,22,60,224,241,21,60,35,223,21,60,85,204,21,60,120,185,21,60,139,166,21,60,143,147,21,60,131,128,21,60,103,109,21,60,60,90,21,60,1,71,21,60,182,51,21,60,92,32,21,60,242,12,21,60,120,249,20,60,239,229,20,60,86,210,20,60,174,190,20,60,246,170,20,60,46,151,20,60,87,131,20,60,112,111,20,60,122,91,20,60,116,71,20,60,95,51,20,60,58,31,20,60,
6,11,20,60,194,246,19,60,110,226,19,60,12,206,19,60,153,185,19,60,24,165,19,60,134,144,19,60,230,123,19,60,54,103,19,60,118,82,19,60,167,61,19,60,201,40,19,60,219,19,19,60,222,254,18,60,210,233,18,60,182,212,18,60,138,191,18,60,80,170,18,60,6,149,18,60,173,127,18,60,68,106,18,60,204,84,18,60,69,63,18,60,175,41,18,60,9,20,18,60,84,254,17,60,143,232,17,60,188,210,17,60,217,188,17,60,231,166,17,60,230,144,17,60,213,122,17,60,182,100,17,60,135,78,17,60,73,56,17,60,251,33,17,60,159,11,17,60,51,245,16,
60,185,222,16,60,47,200,16,60,150,177,16,60,238,154,16,60,55,132,16,60,112,109,16,60,155,86,16,60,183,63,16,60,195,40,16,60,193,17,16,60,175,250,15,60,142,227,15,60,95,204,15,60,32,181,15,60,210,157,15,60,118,134,15,60,10,111,15,60,143,87,15,60,6,64,15,60,109,40,15,60,198,16,15,60,16,249,14,60,74,225,14,60,118,201,14,60,147,177,14,60,161,153,14,60,160,129,14,60,144,105,14,60,114,81,14,60,68,57,14,60,8,33,14,60,189,8,14,60,99,240,13,60,251,215,13,60,131,191,13,60,253,166,13,60,104,142,13,60,196,117,
13,60,18,93,13,60,80,68,13,60,128,43,13,60,162,18,13,60,180,249,12,60,184,224,12,60,174,199,12,60,148,174,12,60,108,149,12,60,53,124,12,60,240,98,12,60,156,73,12,60,58,48,12,60,200,22,12,60,73,253,11,60,186,227,11,60,29,202,11,60,114,176,11,60,184,150,11,60,239,124,11,60,24,99,11,60,51,73,11,60,63,47,11,60,60,21,11,60,43,251,10,60,12,225,10,60,222,198,10,60,161,172,10,60,87,146,10,60,253,119,10,60,150,93,10,60,32,67,10,60,155,40,10,60,9,14,10,60,104,243,9,60,184,216,9,60,250,189,9,60,46,163,9,60,
84,136,9,60,107,109,9,60,116,82,9,60,111,55,9,60,91,28,9,60,57,1,9,60,9,230,8,60,203,202,8,60,127,175,8,60,36,148,8,60,187,120,8,60,68,93,8,60,191,65,8,60,43,38,8,60,138,10,8,60,218,238,7,60,28,211,7,60,81,183,7,60,119,155,7,60,143,127,7,60,152,99,7,60,148,71,7,60,130,43,7,60,98,15,7,60,52,243,6,60,247,214,6,60,173,186,6,60,85,158,6,60,239,129,6,60,122,101,6,60,248,72,6,60,104,44,6,60,202,15,6,60,30,243,5,60,101,214,5,60,157,185,5,60,199,156,5,60,228,127,5,60,243,98,5,60,244,69,5,60,231,40,5,60,204,
11,5,60,164,238,4,60,110,209,4,60,42,180,4,60,216,150,4,60,120,121,4,60,11,92,4,60,144,62,4,60,8,33,4,60,113,3,4,60,205,229,3,60,27,200,3,60,92,170,3,60,143,140,3,60,181,110,3,60,204,80,3,60,215,50,3,60,211,20,3,60,194,246,2,60,164,216,2,60,120,186,2,60,62,156,2,60,247,125,2,60,162,95,2,60,64,65,2,60,209,34,2,60,84,4,2,60,201,229,1,60,49,199,1,60,140,168,1,60,217,137,1,60,25,107,1,60,75,76,1,60,112,45,1,60,136,14,1,60,146,239,0,60,143,208,0,60,127,177,0,60,98,146,0,60,55,115,0,60,254,83,0,60,185,
52,0,60,102,21,0,60,13,236,255,59,51,173,255,59,62,110,255,59,47,47,255,59,5,240,254,59,194,176,254,59,100,113,254,59,235,49,254,59,89,242,253,59,172,178,253,59,229,114,253,59,3,51,253,59,8,243,252,59,243,178,252,59,195,114,252,59,121,50,252,59,22,242,251,59,152,177,251,59,1,113,251,59,79,48,251,59,132,239,250,59,158,174,250,59,159,109,250,59,134,44,250,59,83,235,249,59,6,170,249,59,160,104,249,59,32,39,249,59,134,229,248,59,211,163,248,59,6,98,248,59,31,32,248,59,31,222,247,59,5,156,247,59,210,89,
247,59,133,23,247,59,31,213,246,59,159,146,246,59,6,80,246,59,83,13,246,59,135,202,245,59,162,135,245,59,164,68,245,59,140,1,245,59,91,190,244,59,17,123,244,59,174,55,244,59,49,244,243,59,156,176,243,59,237,108,243,59,38,41,243,59,69,229,242,59,75,161,242,59,57,93,242,59,13,25,242,59,201,212,241,59,107,144,241,59,245,75,241,59,102,7,241,59,190,194,240,59,254,125,240,59,36,57,240,59,50,244,239,59,40,175,239,59,4,106,239,59,200,36,239,59,116,223,238,59,7,154,238,59,129,84,238,59,227,14,238,59,45,201,
237,59,94,131,237,59,119,61,237,59,119,247,236,59,95,177,236,59,47,107,236,59,230,36,236,59,133,222,235,59,12,152,235,59,123,81,235,59,209,10,235,59,16,196,234,59,54,125,234,59,69,54,234,59,59,239,233,59,25,168,233,59,224,96,233,59,142,25,233,59,36,210,232,59,163,138,232,59,10,67,232,59,89,251,231,59,144,179,231,59,175,107,231,59,183,35,231,59,167,219,230,59,127,147,230,59,64,75,230,59,233,2,230,59,123,186,229,59,245,113,229,59,87,41,229,59,162,224,228,59,214,151,228,59,242,78,228,59,247,5,228,59,
228,188,227,59,186,115,227,59,121,42,227,59,33,225,226,59,177,151,226,59,42,78,226,59,140,4,226,59,215,186,225,59,11,113,225,59,40,39,225,59,46,221,224,59,28,147,224,59,244,72,224,59,181,254,223,59,95,180,223,59,242,105,223,59,110,31,223,59,212,212,222,59,34,138,222,59,90,63,222,59,123,244,221,59,134,169,221,59,122,94,221,59,87,19,221,59,30,200,220,59,206,124,220,59,103,49,220,59,235,229,219,59,87,154,219,59,174,78,219,59,237,2,219,59,23,183,218,59,42,107,218,59,39,31,218,59,14,211,217,59,222,134,
217,59,152,58,217,59,61,238,216,59,203,161,216,59,66,85,216,59,164,8,216,59,240,187,215,59,38,111,215,59,70,34,215,59,80,213,214,59,68,136,214,59,34,59,214,59,234,237,213,59,157,160,213,59,58,83,213,59,193,5,213,59,50,184,212,59,142,106,212,59,212,28,212,59,4,207,211,59,31,129,211,59,37,51,211,59,21,229,210,59,239,150,210,59,180,72,210,59,100,250,209,59,254,171,209,59,131,93,209,59,243,14,209,59,77,192,208,59,146,113,208,59,194,34,208,59,221,211,207,59,227,132,207,59,211,53,207,59,175,230,206,59,
118,151,206,59,39,72,206,59,196,248,205,59,75,169,205,59,190,89,205,59,28,10,205,59,101,186,204,59,154,106,204,59,185,26,204,59,196,202,203,59,186,122,203,59,156,42,203,59,105,218,202,59,33,138,202,59,197,57,202,59,84,233,201,59,207,152,201,59,54,72,201,59,136,247,200,59,197,166,200,59,239,85,200,59,4,5,200,59,4,180,199,59,241,98,199,59,201,17,199,59,141,192,198,59,61,111,198,59,217,29,198,59,97,204,197,59,213,122,197,59,53,41,197,59,129,215,196,59,185,133,196,59,221,51,196,59,237,225,195,59,234,
143,195,59,210,61,195,59,167,235,194,59,105,153,194,59,22,71,194,59,176,244,193,59,54,162,193,59,169,79,193,59,8,253,192,59,84,170,192,59,140,87,192,59,177,4,192,59,195,177,191,59,193,94,191,59,171,11,191,59,131,184,190,59,71,101,190,59,248,17,190,59,150,190,189,59,33,107,189,59,152,23,189,59,253,195,188,59,78,112,188,59,141,28,188,59,184,200,187,59,209,116,187,59,215,32,187,59,202,204,186,59,170,120,186,59,119,36,186,59,49,208,185,59,217,123,185,59,110,39,185,59,241,210,184,59,97,126,184,59,190,
41,184,59,9,213,183,59,65,128,183,59,103,43,183,59,122,214,182,59,123,129,182,59,106,44,182,59,70,215,181,59,16,130,181,59,200,44,181,59,110,215,180,59,1,130,180,59,131,44,180,59,242,214,179,59,79,129,179,59,154,43,179,59,211,213,178,59,251,127,178,59,16,42,178,59,19,212,177,59,5,126,177,59,229,39,177,59,179,209,176,59,111,123,176,59,26,37,176,59,179,206,175,59,58,120,175,59,176,33,175,59,20,203,174,59,102,116,174,59,168,29,174,59,215,198,173,59,246,111,173,59,3,25,173,59,254,193,172,59,233,106,172,
59,194,19,172,59,138,188,171,59,65,101,171,59,230,13,171,59,123,182,170,59,254,94,170,59,113,7,170,59,210,175,169,59,34,88,169,59,98,0,169,59,145,168,168,59,174,80,168,59,188,248,167,59,184,160,167,59,163,72,167,59,126,240,166,59,72,152,166,59,2,64,166,59,171,231,165,59,67,143,165,59,203,54,165,59,67,222,164,59,170,133,164,59,0,45,164,59,71,212,163,59,125,123,163,59,162,34,163,59,184,201,162,59,189,112,162,59,178,23,162,59,151,190,161,59,108,101,161,59,49,12,161,59,230,178,160,59,139,89,160,59,32,
0,160,59,165,166,159,59,26,77,159,59,127,243,158,59,213,153,158,59,26,64,158,59,80,230,157,59,119,140,157,59,142,50,157,59,149,216,156,59,140,126,156,59,117,36,156,59,77,202,155,59,22,112,155,59,208,21,155,59,123,187,154,59,22,97,154,59,161,6,154,59,30,172,153,59,139,81,153,59,233,246,152,59,56,156,152,59,120,65,152,59,169,230,151,59,203,139,151,59,222,48,151,59,226,213,150,59,215,122,150,59,189,31,150,59,148,196,149,59,93,105,149,59,23,14,149,59,194,178,148,59,94,87,148,59,236,251,147,59,107,160,
147,59,220,68,147,59,62,233,146,59,145,141,146,59,215,49,146,59,13,214,145,59,54,122,145,59,80,30,145,59,92,194,144,59,89,102,144,59,73,10,144,59,42,174,143,59,253,81,143,59,194,245,142,59,121,153,142,59,34,61,142,59,189,224,141,59,74,132,141,59,201,39,141,59,58,203,140,59,157,110,140,59,243,17,140,59,59,181,139,59,117,88,139,59,162,251,138,59,193,158,138,59,210,65,138,59,214,228,137,59,204,135,137,59,181,42,137,59,144,205,136,59,94,112,136,59,31,19,136,59,211,181,135,59,121,88,135,59,18,251,134,
59,157,157,134,59,28,64,134,59,141,226,133,59,242,132,133,59,73,39,133,59,147,201,132,59,209,107,132,59,1,14,132,59,37,176,131,59,60,82,131,59,70,244,130,59,67,150,130,59,52,56,130,59,24,218,129,59,239,123,129,59,186,29,129,59,120,191,128,59,41,97,128,59,206,2,128,59,206,72,127,59,231,139,126,59,231,206,125,59,206,17,125,59,157,84,124,59,83,151,123,59,241,217,122,59,118,28,122,59,228,94,121,59,57,161,120,59,118,227,119,59,155,37,119,59,168,103,118,59,158,169,117,59,123,235,116,59,65,45,116,59,240,
110,115,59,135,176,114,59,6,242,113,59,110,51,113,59,191,116,112,59,249,181,111,59,27,247,110,59,39,56,110,59,28,121,109,59,249,185,108,59,192,250,107,59,112,59,107,59,10,124,106,59,141,188,105,59,250,252,104,59,80,61,104,59,144,125,103,59,186,189,102,59,205,253,101,59,203,61,101,59,179,125,100,59,132,189,99,59,64,253,98,59,230,60,98,59,119,124,97,59,242,187,96,59,87,251,95,59,167,58,95,59,226,121,94,59,7,185,93,59,24,248,92,59,19,55,92,59,249,117,91,59,202,180,90,59,135,243,89,59,46,50,89,59,193,
112,88,59,64,175,87,59,170,237,86,59,255,43,86,59,64,106,85,59,109,168,84,59,134,230,83,59,138,36,83,59,123,98,82,59,88,160,81,59,32,222,80,59,213,27,80,59,118,89,79,59,4,151,78,59,126,212,77,59,229,17,77,59,56,79,76,59,120,140,75,59,165,201,74,59,191,6,74,59,197,67,73,59,185,128,72,59,154,189,71,59,104,250,70,59,35,55,70,59,204,115,69,59,98,176,68,59,230,236,67,59,87,41,67,59,182,101,66,59,3,162,65,59,61,222,64,59,102,26,64,59,124,86,63,59,129,146,62,59,116,206,61,59,85,10,61,59,36,70,60,59,226,
129,59,59,143,189,58,59,42,249,57,59,180,52,57,59,44,112,56,59,147,171,55,59,234,230,54,59,47,34,54,59,99,93,53,59,135,152,52,59,154,211,51,59,156,14,51,59,142,73,50,59,111,132,49,59,64,191,48,59,0,250,47,59,176,52,47,59,80,111,46,59,224,169,45,59,96,228,44,59,208,30,44,59,48,89,43,59,129,147,42,59,194,205,41,59,243,7,41,59,21,66,40,59,39,124,39,59,42,182,38,59,30,240,37,59,2,42,37,59,216,99,36,59,158,157,35,59,86,215,34,59,255,16,34,59,153,74,33,59,36,132,32,59,161,189,31,59,15,247,30,59,111,48,
30,59,193,105,29,59,4,163,28,59,57,220,27,59,96,21,27,59,121,78,26,59,133,135,25,59,130,192,24,59,114,249,23,59,83,50,23,59,40,107,22,59,239,163,21,59,168,220,20,59,84,21,20,59,243,77,19,59,133,134,18,59,9,191,17,59,129,247,16,59,236,47,16,59,74,104,15,59,155,160,14,59,223,216,13,59,23,17,13,59,67,73,12,59,98,129,11,59,116,185,10,59,123,241,9,59,117,41,9,59,99,97,8,59,70,153,7,59,28,209,6,59,230,8,6,59,165,64,5,59,88,120,4,59,0,176,3,59,156,231,2,59,44,31,2,59,178,86,1,59,44,142,0,59,53,139,255,58,
253,249,253,58,175,104,252,58,75,215,250,58,209,69,249,58,66,180,247,58,158,34,246,58,228,144,244,58,22,255,242,58,50,109,241,58,58,219,239,58,46,73,238,58,13,183,236,58,216,36,235,58,144,146,233,58,51,0,232,58,195,109,230,58,63,219,228,58,168,72,227,58,254,181,225,58,66,35,224,58,114,144,222,58,144,253,220,58,155,106,219,58,148,215,217,58,123,68,216,58,80,177,214,58,19,30,213,58,196,138,211,58,101,247,209,58,243,99,208,58,113,208,206,58,222,60,205,58,58,169,203,58,134,21,202,58,193,129,200,58,236,
237,198,58,7,90,197,58,18,198,195,58,13,50,194,58,249,157,192,58,213,9,191,58,162,117,189,58,96,225,187,58,15,77,186,58,175,184,184,58,65,36,183,58,196,143,181,58,57,251,179,58,160,102,178,58,249,209,176,58,69,61,175,58,131,168,173,58,179,19,172,58,215,126,170,58,237,233,168,58,246,84,167,58,243,191,165,58,227,42,164,58,199,149,162,58,159,0,161,58,107,107,159,58,42,214,157,58,222,64,156,58,135,171,154,58,36,22,153,58,182,128,151,58,61,235,149,58,185,85,148,58,43,192,146,58,146,42,145,58,239,148,143,
58,65,255,141,58,138,105,140,58,200,211,138,58,254,61,137,58,41,168,135,58,75,18,134,58,100,124,132,58,117,230,130,58,124,80,129,58,245,116,127,58,225,72,124,58,189,28,121,58,137,240,117,58,68,196,114,58,240,151,111,58,141,107,108,58,27,63,105,58,154,18,102,58,11,230,98,58,110,185,95,58,196,140,92,58,12,96,89,58,71,51,86,58,118,6,83,58,153,217,79,58,176,172,76,58,187,127,73,58,187,82,70,58,176,37,67,58,155,248,63,58,124,203,60,58,82,158,57,58,32,113,54,58,228,67,51,58,159,22,48,58,82,233,44,58,252,
187,41,58,159,142,38,58,59,97,35,58,207,51,32,58,92,6,29,58,227,216,25,58,100,171,22,58,223,125,19,58,85,80,16,58,197,34,13,58,49,245,9,58,153,199,6,58,252,153,3,58,91,108,0,58,111,125,250,57,33,34,244,57,206,198,237,57,118,107,231,57,26,16,225,57,186,180,218,57,88,89,212,57,243,253,205,57,142,162,199,57,39,71,193,57,192,235,186,57,90,144,180,57,246,52,174,57,147,217,167,57,51,126,161,57,214,34,155,57,126,199,148,57,42,108,142,57,219,16,136,57,147,181,129,57,162,180,118,57,45,254,105,57,200,71,93,
57,117,145,80,57,53,219,67,57,9,37,55,57,242,110,42,57,242,184,29,57,11,3,17,57,61,77,4,57,20,47,239,56,231,195,213,56,245,88,188,56,65,238,162,56,206,131,137,56,61,51,96,56,105,95,45,56,80,24,245,55,251,114,143,55,125,59,167,54,228,79,239,182,131,117,161,183,217,138,3,184,64,90,54,184,238,40,105,184,112,251,141,184,8,98,167,184,60,200,192,184,9,46,218,184,109,147,243,184,51,124,6,185,120,46,19,185,132,224,31,185,86,146,44,185,237,67,57,185,71,245,69,185,99,166,82,185,64,87,95,185,220,7,108,185,54,
184,120,185,38,180,130,185,15,12,137,185,213,99,143,185,119,187,149,185,244,18,156,185,77,106,162,185,127,193,168,185,140,24,175,185,113,111,181,185,46,198,187,185,195,28,194,185,47,115,200,185,113,201,206,185,137,31,213,185,117,117,219,185,54,203,225,185,202,32,232,185,49,118,238,185,107,203,244,185,117,32,251,185,168,186,0,186,254,228,3,186,60,15,7,186,97,57,10,186,109,99,13,186,96,141,16,186,57,183,19,186,248,224,22,186,157,10,26,186,40,52,29,186,151,93,32,186,235,134,35,186,36,176,38,186,64,217,
41,186,65,2,45,186,37,43,48,186,235,83,51,186,149,124,54,186,33,165,57,186,143,205,60,186,222,245,63,186,15,30,67,186,33,70,70,186,20,110,73,186,231,149,76,186,154,189,79,186,45,229,82,186,160,12,86,186,241,51,89,186,33,91,92,186,47,130,95,186,28,169,98,186,230,207,101,186,141,246,104,186,18,29,108,186,115,67,111,186,177,105,114,186,202,143,117,186,191,181,120,186,144,219,123,186,60,1,127,186,97,19,129,186,18,166,130,186,175,56,132,186,57,203,133,186,176,93,135,186,20,240,136,186,99,130,138,186,159,
20,140,186,199,166,141,186,219,56,143,186,219,202,144,186,198,92,146,186,156,238,147,186,94,128,149,186,11,18,151,186,162,163,152,186,36,53,154,186,145,198,155,186,232,87,157,186,41,233,158,186,85,122,160,186,106,11,162,186,105,156,163,186,81,45,165,186,35,190,166,186,222,78,168,186,130,223,169,186,15,112,171,186,132,0,173,186,226,144,174,186,41,33,176,186,88,177,177,186,110,65,179,186,109,209,180,186,83,97,182,186,33,241,183,186,214,128,185,186,115,16,187,186,246,159,188,186,97,47,190,186,178,190,
191,186,234,77,193,186,8,221,194,186,12,108,196,186,246,250,197,186,199,137,199,186,125,24,201,186,24,167,202,186,153,53,204,186,255,195,205,186,75,82,207,186,123,224,208,186,144,110,210,186,137,252,211,186,103,138,213,186,42,24,215,186,208,165,216,186,90,51,218,186,200,192,219,186,26,78,221,186,79,219,222,186,103,104,224,186,99,245,225,186,65,130,227,186,2,15,229,186,166,155,230,186,44,40,232,186,149,180,233,186,223,64,235,186,12,205,236,186,27,89,238,186,11,229,239,186,220,112,241,186,143,252,242,
186,35,136,244,186,152,19,246,186,238,158,247,186,36,42,249,186,59,181,250,186,51,64,252,186,10,203,253,186,194,85,255,186,45,112,0,187,104,53,1,187,147,250,1,187,174,191,2,187,185,132,3,187,179,73,4,187,157,14,5,187,117,211,5,187,62,152,6,187,245,92,7,187,155,33,8,187,49,230,8,187,181,170,9,187,41,111,10,187,139,51,11,187,220,247,11,187,27,188,12,187,73,128,13,187,101,68,14,187,112,8,15,187,105,204,15,187,81,144,16,187,38,84,17,187,234,23,18,187,156,219,18,187,59,159,19,187,200,98,20,187,67,38,21,
187,172,233,21,187,2,173,22,187,70,112,23,187,119,51,24,187,150,246,24,187,162,185,25,187,155,124,26,187,129,63,27,187,84,2,28,187,20,197,28,187,193,135,29,187,91,74,30,187,225,12,31,187,84,207,31,187,179,145,32,187,255,83,33,187,56,22,34,187,93,216,34,187,109,154,35,187,107,92,36,187,84,30,37,187,41,224,37,187,234,161,38,187,151,99,39,187,47,37,40,187,179,230,40,187,35,168,41,187,127,105,42,187,197,42,43,187,247,235,43,187,21,173,44,187,29,110,45,187,17,47,46,187,240,239,46,187,185,176,47,187,110,
113,48,187,13,50,49,187,151,242,49,187,12,179,50,187,107,115,51,187,181,51,52,187,233,243,52,187,7,180,53,187,16,116,54,187,3,52,55,187,223,243,55,187,166,179,56,187,87,115,57,187,242,50,58,187,118,242,58,187,228,177,59,187,60,113,60,187,125,48,61,187,168,239,61,187,188,174,62,187,186,109,63,187,160,44,64,187,112,235,64,187,41,170,65,187,203,104,66,187,85,39,67,187,201,229,67,187,37,164,68,187,106,98,69,187,152,32,70,187,174,222,70,187,172,156,71,187,147,90,72,187,98,24,73,187,25,214,73,187,185,147,
74,187,64,81,75,187,176,14,76,187,7,204,76,187,71,137,77,187,110,70,78,187,124,3,79,187,114,192,79,187,80,125,80,187,21,58,81,187,194,246,81,187,85,179,82,187,208,111,83,187,51,44,84,187,124,232,84,187,172,164,85,187,195,96,86,187,193,28,87,187,165,216,87,187,112,148,88,187,34,80,89,187,186,11,90,187,57,199,90,187,158,130,91,187,233,61,92,187,27,249,92,187,51,180,93,187,48,111,94,187,20,42,95,187,222,228,95,187,141,159,96,187,34,90,97,187,157,20,98,187,253,206,98,187,67,137,99,187,111,67,100,187,
127,253,100,187,117,183,101,187,81,113,102,187,17,43,103,187,182,228,103,187,65,158,104,187,176,87,105,187,4,17,106,187,61,202,106,187,90,131,107,187,92,60,108,187,67,245,108,187,14,174,109,187,190,102,110,187,81,31,111,187,201,215,111,187,38,144,112,187,102,72,113,187,138,0,114,187,146,184,114,187,126,112,115,187,78,40,116,187,1,224,116,187,152,151,117,187,19,79,118,187,113,6,119,187,179,189,119,187,216,116,120,187,224,43,121,187,203,226,121,187,153,153,122,187,75,80,123,187,223,6,124,187,86,189,
124,187,176,115,125,187,237,41,126,187,12,224,126,187,14,150,127,187,249,37,128,187,221,128,128,187,177,219,128,187,119,54,129,187,46,145,129,187,214,235,129,187,111,70,130,187,249,160,130,187,116,251,130,187,224,85,131,187,60,176,131,187,138,10,132,187,200,100,132,187,248,190,132,187,23,25,133,187,40,115,133,187,41,205,133,187,27,39,134,187,254,128,134,187,209,218,134,187,148,52,135,187,72,142,135,187,237,231,135,187,129,65,136,187,7,155,136,187,124,244,136,187,226,77,137,187,56,167,137,187,127,
0,138,187,181,89,138,187,220,178,138,187,243,11,139,187,249,100,139,187,240,189,139,187,215,22,140,187,174,111,140,187,117,200,140,187,44,33,141,187,210,121,141,187,105,210,141,187,239,42,142,187,101,131,142,187,203,219,142,187,32,52,143,187,101,140,143,187,154,228,143,187,190,60,144,187,209,148,144,187,213,236,144,187,199,68,145,187,169,156,145,187,123,244,145,187,60,76,146,187,236,163,146,187,140,251,146,187,26,83,147,187,152,170,147,187,5,2,148,187,98,89,148,187,173,176,148,187,232,7,149,187,17,
95,149,187,42,182,149,187,49,13,150,187,40,100,150,187,13,187,150,187,225,17,151,187,164,104,151,187,86,191,151,187,246,21,152,187,134,108,152,187,4,195,152,187,112,25,153,187,203,111,153,187,21,198,153,187,78,28,154,187,117,114,154,187,138,200,154,187,142,30,155,187,128,116,155,187,96,202,155,187,47,32,156,187,237,117,156,187,152,203,156,187,50,33,157,187,186,118,157,187,48,204,157,187,148,33,158,187,230,118,158,187,39,204,158,187,85,33,159,187,113,118,159,187,124,203,159,187,116,32,160,187,90,117,
160,187,46,202,160,187,240,30,161,187,160,115,161,187,61,200,161,187,200,28,162,187,65,113,162,187,167,197,162,187,251,25,163,187,61,110,163,187,108,194,163,187,137,22,164,187,147,106,164,187,138,190,164,187,111,18,165,187,65,102,165,187,1,186,165,187,174,13,166,187,72,97,166,187,208,180,166,187,69,8,167,187,167,91,167,187,246,174,167,187,50,2,168,187,91,85,168,187,113,168,168,187,116,251,168,187,100,78,169,187,66,161,169,187,12,244,169,187,195,70,170,187,102,153,170,187,247,235,170,187,116,62,171,
187,222,144,171,187,53,227,171,187,120,53,172,187,168,135,172,187,197,217,172,187,206,43,173,187,196,125,173,187,166,207,173,187,117,33,174,187,48,115,174,187,216,196,174,187,108,22,175,187,236,103,175,187,89,185,175,187,178,10,176,187,247,91,176,187,40,173,176,187,69,254,176,187,79,79,177,187,69,160,177,187,39,241,177,187,244,65,178,187,174,146,178,187,84,227,178,187,230,51,179,187,100,132,179,187,205,212,179,187,35,37,180,187,100,117,180,187,145,197,180,187,170,21,181,187,174,101,181,187,158,181,
181,187,122,5,182,187],"i8",4,y.a+337920);
Q([66,85,182,187,245,164,182,187,147,244,182,187,29,68,183,187,147,147,183,187,244,226,183,187,64,50,184,187,120,129,184,187,156,208,184,187,170,31,185,187,164,110,185,187,137,189,185,187,90,12,186,187,21,91,186,187,188,169,186,187,78,248,186,187,203,70,187,187,51,149,187,187,134,227,187,187,197,49,188,187,238,127,188,187,2,206,188,187,1,28,189,187,235,105,189,187,192,183,189,187,127,5,190,187,42,83,190,187,191,160,190,187,63,238,190,187,169,59,191,187,255,136,191,187,63,214,191,187,105,35,192,187,
126,112,192,187,126,189,192,187,104,10,193,187,61,87,193,187,252,163,193,187,166,240,193,187,58,61,194,187,184,137,194,187,32,214,194,187,115,34,195,187,177,110,195,187,216,186,195,187,234,6,196,187,230,82,196,187,204,158,196,187,156,234,196,187,86,54,197,187,250,129,197,187,136,205,197,187,1,25,198,187,99,100,198,187,175,175,198,187,229,250,198,187,5,70,199,187,15,145,199,187,3,220,199,187,224,38,200,187,167,113,200,187,88,188,200,187,243,6,201,187,119,81,201,187,229,155,201,187,60,230,201,187,125,
48,202,187,168,122,202,187,188,196,202,187,186,14,203,187,161,88,203,187,113,162,203,187,43,236,203,187,206,53,204,187,91,127,204,187,209,200,204,187,48,18,205,187,120,91,205,187,170,164,205,187,197,237,205,187,201,54,206,187,182,127,206,187,140,200,206,187,76,17,207,187,244,89,207,187,133,162,207,187,0,235,207,187,99,51,208,187,175,123,208,187,229,195,208,187,3,12,209,187,9,84,209,187,249,155,209,187,210,227,209,187,147,43,210,187,61,115,210,187,207,186,210,187,75,2,211,187,175,73,211,187,251,144,
211,187,48,216,211,187,78,31,212,187,84,102,212,187,67,173,212,187,26,244,212,187,218,58,213,187,130,129,213,187,19,200,213,187,139,14,214,187,237,84,214,187,54,155,214,187,104,225,214,187,130,39,215,187,132,109,215,187,110,179,215,187,65,249,215,187,252,62,216,187,158,132,216,187,41,202,216,187,156,15,217,187,247,84,217,187,58,154,217,187,101,223,217,187,120,36,218,187,115,105,218,187,85,174,218,187,32,243,218,187,210,55,219,187,108,124,219,187,238,192,219,187,88,5,220,187,169,73,220,187,226,141,
220,187,3,210,220,187,11,22,221,187,251,89,221,187,211,157,221,187,146,225,221,187,57,37,222,187,199,104,222,187,61,172,222,187,154,239,222,187,222,50,223,187,10,118,223,187,30,185,223,187,24,252,223,187,250,62,224,187,196,129,224,187,116,196,224,187,12,7,225,187,139,73,225,187,241,139,225,187,62,206,225,187,115,16,226,187,142,82,226,187,145,148,226,187,123,214,226,187,75,24,227,187,3,90,227,187,162,155,227,187,39,221,227,187,148,30,228,187,231,95,228,187,34,161,228,187,67,226,228,187,75,35,229,187,
58,100,229,187,15,165,229,187,204,229,229,187,111,38,230,187,248,102,230,187,105,167,230,187,192,231,230,187,253,39,231,187,34,104,231,187,44,168,231,187,30,232,231,187,246,39,232,187,180,103,232,187,89,167,232,187,228,230,232,187,86,38,233,187,174,101,233,187,236,164,233,187,17,228,233,187,28,35,234,187,13,98,234,187,229,160,234,187,162,223,234,187,70,30,235,187,209,92,235,187,65,155,235,187,152,217,235,187,212,23,236,187,247,85,236,187,0,148,236,187,239,209,236,187,195,15,237,187,126,77,237,187,
31,139,237,187,166,200,237,187,18,6,238,187,101,67,238,187,157,128,238,187,188,189,238,187,192,250,238,187,170,55,239,187,121,116,239,187,47,177,239,187,202,237,239,187,75,42,240,187,177,102,240,187,253,162,240,187,47,223,240,187,71,27,241,187,67,87,241,187,38,147,241,187,238,206,241,187,156,10,242,187,47,70,242,187,167,129,242,187,5,189,242,187,73,248,242,187,113,51,243,187,128,110,243,187,115,169,243,187,76,228,243,187,10,31,244,187,174,89,244,187,54,148,244,187,164,206,244,187,247,8,245,187,48,
67,245,187,77,125,245,187,80,183,245,187,55,241,245,187,4,43,246,187,182,100,246,187,77,158,246,187,201,215,246,187,42,17,247,187,112,74,247,187,155,131,247,187,171,188,247,187,159,245,247,187,121,46,248,187,56,103,248,187,219,159,248,187,99,216,248,187,208,16,249,187,34,73,249,187,88,129,249,187,116,185,249,187,116,241,249,187,88,41,250,187,34,97,250,187,208,152,250,187,98,208,250,187,218,7,251,187,53,63,251,187,118,118,251,187,155,173,251,187,164,228,251,187,146,27,252,187,101,82,252,187,27,137,
252,187,183,191,252,187,54,246,252,187,155,44,253,187,227,98,253,187,16,153,253,187,33,207,253,187,23,5,254,187,240,58,254,187,174,112,254,187,81,166,254,187,215,219,254,187,66,17,255,187,145,70,255,187,196,123,255,187,219,176,255,187,214,229,255,187,91,13,0,188,188,39,0,188,16,66,0,188,86,92,0,188,142,118,0,188,183,144,0,188,211,170,0,188,225,196,0,188,225,222,0,188,210,248,0,188,182,18,1,188,140,44,1,188,83,70,1,188,12,96,1,188,184,121,1,188,85,147,1,188,228,172,1,188,101,198,1,188,216,223,1,188,
60,249,1,188,147,18,2,188,219,43,2,188,22,69,2,188,66,94,2,188,95,119,2,188,111,144,2,188,112,169,2,188,100,194,2,188,73,219,2,188,31,244,2,188,232,12,3,188,162,37,3,188,78,62,3,188,235,86,3,188,123,111,3,188,252,135,3,188,111,160,3,188,211,184,3,188,41,209,3,188,113,233,3,188,170,1,4,188,214,25,4,188,242,49,4,188,1,74,4,188,1,98,4,188,242,121,4,188,213,145,4,188,170,169,4,188,112,193,4,188,40,217,4,188,210,240,4,188,109,8,5,188,249,31,5,188,119,55,5,188,231,78,5,188,72,102,5,188,155,125,5,188,223,
148,5,188,21,172,5,188,60,195,5,188,84,218,5,188,94,241,5,188,90,8,6,188,71,31,6,188,37,54,6,188,245,76,6,188,182,99,6,188,105,122,6,188,13,145,6,188,163,167,6,188,41,190,6,188,162,212,6,188,11,235,6,188,102,1,7,188,178,23,7,188,240,45,7,188,31,68,7,188,63,90,7,188,81,112,7,188,84,134,7,188,72,156,7,188,45,178,7,188,4,200,7,188,204,221,7,188,133,243,7,188,48,9,8,188,204,30,8,188,89,52,8,188,215,73,8,188,71,95,8,188,167,116,8,188,249,137,8,188,61,159,8,188,113,180,8,188,150,201,8,188,173,222,8,188,
181,243,8,188,174,8,9,188,152,29,9,188,115,50,9,188,64,71,9,188,253,91,9,188,172,112,9,188,76,133,9,188,221,153,9,188,95,174,9,188,210,194,9,188,54,215,9,188,139,235,9,188,210,255,9,188,9,20,10,188,49,40,10,188,75,60,10,188,85,80,10,188,81,100,10,188,61,120,10,188,27,140,10,188,233,159,10,188,169,179,10,188,90,199,10,188,251,218,10,188,142,238,10,188,17,2,11,188,133,21,11,188,235,40,11,188,65,60,11,188,136,79,11,188,193,98,11,188,234,117,11,188,4,137,11,188,15,156,11,188,10,175,11,188,247,193,11,
188,213,212,11,188,163,231,11,188,99,250,11,188,19,13,12,188,180,31,12,188,70,50,12,188,201,68,12,188,60,87,12,188,161,105,12,188,246,123,12,188,60,142,12,188,115,160,12,188,155,178,12,188,179,196,12,188,189,214,12,188,183,232,12,188,161,250,12,188,125,12,13,188,73,30,13,188,7,48,13,188,181,65,13,188,83,83,13,188,227,100,13,188,99,118,13,188,211,135,13,188,53,153,13,188,135,170,13,188,202,187,13,188,254,204,13,188,34,222,13,188,55,239,13,188,61,0,14,188,51,17,14,188,26,34,14,188,242,50,14,188,187,
67,14,188,116,84,14,188,29,101,14,188,183,117,14,188,66,134,14,188,190,150,14,188,42,167,14,188,135,183,14,188,212,199,14,188,18,216,14,188,65,232,14,188,96,248,14,188,112,8,15,188,112,24,15,188,97,40,15,188,66,56,15,188,20,72,15,188,215,87,15,188,138,103,15,188,45,119,15,188,194,134,15,188,70,150,15,188,187,165,15,188,33,181,15,188,119,196,15,188,190,211,15,188,245,226,15,188,29,242,15,188,53,1,16,188,62,16,16,188,55,31,16,188,33,46,16,188,251,60,16,188,198,75,16,188,129,90,16,188,44,105,16,188,
200,119,16,188,84,134,16,188,209,148,16,188,63,163,16,188,156,177,16,188,234,191,16,188,41,206,16,188,88,220,16,188,119,234,16,188,135,248,16,188,135,6,17,188,119,20,17,188,88,34,17,188,41,48,17,188,235,61,17,188,157,75,17,188,63,89,17,188,210,102,17,188,85,116,17,188,201,129,17,188,44,143,17,188,128,156,17,188,197,169,17,188,250,182,17,188,31,196,17,188,52,209,17,188,58,222,17,188,48,235,17,188,22,248,17,188,237,4,18,188,180,17,18,188,107,30,18,188,19,43,18,188,170,55,18,188,50,68,18,188,171,80,
18,188,19,93,18,188,108,105,18,188,182,117,18,188,239,129,18,188,25,142,18,188,51,154,18,188,61,166,18,188,55,178,18,188,34,190,18,188,253,201,18,188,200,213,18,188,131,225,18,188,47,237,18,188,202,248,18,188,86,4,19,188,210,15,19,188,63,27,19,188,155,38,19,188,232,49,19,188,37,61,19,188,82,72,19,188,112,83,19,188,125,94,19,188,123,105,19,188,105,116,19,188,71,127,19,188,21,138,19,188,211,148,19,188,130,159,19,188,32,170,19,188,175,180,19,188,46,191,19,188,157,201,19,188,252,211,19,188,76,222,19,
188,139,232,19,188,187,242,19,188,219,252,19,188,235,6,20,188,235,16,20,188,219,26,20,188,187,36,20,188,139,46,20,188,76,56,20,188,252,65,20,188,157,75,20,188,46,85,20,188,174,94,20,188,31,104,20,188,128,113,20,188,209,122,20,188,19,132,20,188,68,141,20,188,101,150,20,188,119,159,20,188,120,168,20,188,106,177,20,188,75,186,20,188,29,195,20,188,222,203,20,188,144,212,20,188,50,221,20,188,196,229,20,188,70,238,20,188,184,246,20,188,26,255,20,188,108,7,21,188,174,15,21,188,224,23,21,188,2,32,21,188,
20,40,21,188,22,48,21,188,8,56,21,188,234,63,21,188,189,71,21,188,127,79,21,188,49,87,21,188,211,94,21,188,101,102,21,188,232,109,21,188,90,117,21,188,188,124,21,188,14,132,21,188,81,139,21,188,131,146,21,188,165,153,21,188,183,160,21,188,185,167,21,188,172,174,21,188,142,181,21,188,96,188,21,188,34,195,21,188,212,201,21,188,118,208,21,188,8,215,21,188,138,221,21,188,252,227,21,188,94,234,21,188,176,240,21,188,242,246,21,188,36,253,21,188,69,3,22,188,87,9,22,188,89,15,22,188,74,21,22,188,44,27,22,
188,253,32,22,188,191,38,22,188,112,44,22,188,18,50,22,188,163,55,22,188,36,61,22,188,150,66,22,188,247,71,22,188,72,77,22,188,137,82,22,188,186,87,22,188,219,92,22,188,235,97,22,188,236,102,22,188,221,107,22,188,189,112,22,188,142,117,22,188,78,122,22,188,255,126,22,188,159,131,22,188,47,136,22,188,175,140,22,188,31,145,22,188,127,149,22,188,207,153,22,188,15,158,22,188,63,162,22,188,94,166,22,188,110,170,22,188,109,174,22,188,93,178,22,188,60,182,22,188,11,186,22,188,202,189,22,188,121,193,22,188,
24,197,22,188,167,200,22,188,38,204,22,188,148,207,22,188,243,210,22,188,65,214,22,188,128,217,22,188,174,220,22,188,204,223,22,188,218,226,22,188,216,229,22,188,198,232,22,188,164,235,22,188,114,238,22,188,47,241,22,188,221,243,22,188,122,246,22,188,7,249,22,188,132,251,22,188,241,253,22,188,78,0,23,188,155,2,23,188,216,4,23,188,5,7,23,188,33,9,23,188,46,11,23,188,42,13,23,188,22,15,23,188,242,16,23,188,190,18,23,188,122,20,23,188,38,22,23,188,194,23,23,188,78,25,23,188,201,26,23,188,53,28,23,188,
144,29,23,188,219,30,23,188,22,32,23,188,65,33,23,188,92,34,23,188,103,35,23,188,98,36,23,188,76,37,23,188,39,38,23,188,241,38,23,188,172,39,23,188,86,40,23,188,240,40,23,188,122,41,23,188,244,41,23,188,94,42,23,188,184,42,23,188,1,43,23,188,59,43,23,188,100,43,23,188,126,43,23,188,135,43,23,188,128,43,23,188,105,43,23,188,66,43,23,188,11,43,23,188,196,42,23,188,109,42,23,188,6,42,23,188,142,41,23,188,7,41,23,188,111,40,23,188,199,39,23,188,16,39,23,188,72,38,23,188,112,37,23,188,136,36,23,188,144,
35,23,188,136,34,23,188,112,33,23,188,71,32,23,188,15,31,23,188,199,29,23,188,110,28,23,188,6,27,23,188,141,25,23,188,4,24,23,188,108,22,23,188,195,20,23,188,10,19,23,188,65,17,23,188,104,15,23,188,127,13,23,188,134,11,23,188,125,9,23,188,100,7,23,188,59,5,23,188,1,3,23,188,184,0,23,188,95,254,22,188,245,251,22,188,124,249,22,188,242,246,22,188,89,244,22,188,175,241,22,188,246,238,22,188,44,236,22,188,82,233,22,188,105,230,22,188,111,227,22,188,101,224,22,188,75,221,22,188,34,218,22,188,232,214,22,
188,158,211,22,188,68,208,22,188,219,204,22,188,97,201,22,188,215,197,22,188,61,194,22,188,147,190,22,188,217,186,22,188,16,183,22,188,54,179,22,188,76,175,22,188,82,171,22,188,72,167,22,188,47,163,22,188,5,159,22,188,203,154,22,188,129,150,22,188,40,146,22,188,190,141,22,188,68,137,22,188,187,132,22,188,33,128,22,188,120,123,22,188,190,118,22,188,245,113,22,188,27,109,22,188,50,104,22,188,57,99,22,188,48,94,22,188,22,89,22,188,237,83,22,188,180,78,22,188,107,73,22,188,18,68,22,188,170,62,22,188,
49,57,22,188,168,51,22,188,15,46,22,188,103,40,22,188,175,34,22,188,230,28,22,188,14,23,22,188,38,17,22,188,46,11,22,188,38,5,22,188,14,255,21,188,230,248,21,188,175,242,21,188,103,236,21,188,16,230,21,188,169,223,21,188,50,217,21,188,171,210,21,188,20,204,21,188,109,197,21,188,183,190,21,188,240,183,21,188,26,177,21,188,52,170,21,188,62,163,21,188,56,156,21,188,34,149,21,188,253,141,21,188,200,134,21,188,131,127,21,188,46,120,21,188,201,112,21,188,84,105,21,188,208,97,21,188,60,90,21,188,152,82,
21,188,228,74,21,188,32,67,21,188,77,59,21,188,106,51,21,188,119,43,21,188,116,35,21,188,98,27,21,188,64,19,21,188,14,11,21,188,204,2,21,188,122,250,20,188,25,242,20,188,168,233,20,188,39,225,20,188,151,216,20,188,246,207,20,188,70,199,20,188,135,190,20,188,183,181,20,188,216,172,20,188,233,163,20,188,235,154,20,188,220,145,20,188,190,136,20,188,145,127,20,188,83,118,20,188,6,109,20,188,170,99,20,188,61,90,20,188,193,80,20,188,53,71,20,188,154,61,20,188,239,51,20,188,52,42,20,188,106,32,20,188,144,
22,20,188,166,12,20,188,173,2,20,188,164,248,19,188,140,238,19,188,99,228,19,188,44,218,19,188,228,207,19,188,141,197,19,188,39,187,19,188,176,176,19,188,43,166,19,188,149,155,19,188,240,144,19,188,60,134,19,188,120,123,19,188,164,112,19,188,193,101,19,188,206,90,19,188,204,79,19,188,186,68,19,188,153,57,19,188,104,46,19,188,40,35,19,188,216,23,19,188,120,12,19,188,9,1,19,188,139,245,18,188,253,233,18,188,95,222,18,188,178,210,18,188,246,198,18,188,42,187,18,188,79,175,18,188,100,163,18,188,106,151,
18,188,96,139,18,188,71,127,18,188,30,115,18,188,230,102,18,188,159,90,18,188,72,78,18,188,225,65,18,188,108,53,18,188,230,40,18,188,82,28,18,188,174,15,18,188,251,2,18,188,56,246,17,188,102,233,17,188,132,220,17,188,148,207,17,188,147,194,17,188,132,181,17,188,101,168,17,188,55,155,17,188,249,141,17,188,172,128,17,188,80,115,17,188,229,101,17,188,106,88,17,188,224,74,17,188,70,61,17,188,158,47,17,188,230,33,17,188,30,20,17,188,72,6,17,188,98,248,16,188,109,234,16,188,105,220,16,188,85,206,16,188,
50,192,16,188,0,178,16,188,191,163,16,188,111,149,16,188,15,135,16,188,160,120,16,188,34,106,16,188,149,91,16,188,248,76,16,188,77,62,16,188,146,47,16,188,200,32,16,188,239,17,16,188,7,3,16,188,15,244,15,188,9,229,15,188,243,213,15,188,206,198,15,188,155,183,15,188,88,168,15,188,6,153,15,188,164,137,15,188,52,122,15,188,181,106,15,188,38,91,15,188,137,75,15,188,220,59,15,188,33,44,15,188,86,28,15,188,125,12,15,188,148,252,14,188,156,236,14,188,149,220,14,188,128,204,14,188,91,188,14,188,39,172,14,
188,229,155,14,188,147,139,14,188,50,123,14,188,195,106,14,188,68,90,14,188,183,73,14,188,26,57,14,188,111,40,14,188,181,23,14,188,236,6,14,188,19,246,13,188,44,229,13,188,55,212,13,188,50,195,13,188,30,178,13,188,252,160,13,188,202,143,13,188,138,126,13,188,59,109,13,188,221,91,13,188,112,74,13,188,245,56,13,188,106,39,13,188,209,21,13,188,41,4,13,188,115,242,12,188,173,224,12,188,217,206,12,188,246,188,12,188,4,171,12,188,3,153,12,188,244,134,12,188,214,116,12,188,169,98,12,188,110,80,12,188,35,
62,12,188,203,43,12,188,99,25,12,188,237,6,12,188,104,244,11,188,212,225,11,188,50,207,11,188,129,188,11,188,194,169,11,188,243,150,11,188,23,132,11,188,43,113,11,188,49,94,11,188,41,75,11,188,17,56,11,188,236,36,11,188,183,17,11,188,116,254,10,188,35,235,10,188,195,215,10,188,84,196,10,188,215,176,10,188,76,157,10,188,178,137,10,188,9,118,10,188,82,98,10,188,140,78,10,188,184,58,10,188,214,38,10,188,229,18,10,188,230,254,9,188,216,234,9,188,187,214,9,188,145,194,9,188,88,174,9,188,16,154,9,188,186,
133,9,188,86,113,9,188,227,92,9,188,98,72,9,188,211,51,9,188,53,31,9,188,137,10,9,188,207,245,8,188,6,225,8,188,47,204,8,188,74,183,8,188,86,162,8,188,84,141,8,188,68,120,8,188,38,99,8,188,249,77,8,188,190,56,8,188,117,35,8,188,30,14,8,188,184,248,7,188,68,227,7,188,195,205,7,188,50,184,7,188,148,162,7,188,232,140,7,188,45,119,7,188,100,97,7,188,141,75,7,188,168,53,7,188,181,31,7,188,180,9,7,188,164,243,6,188,135,221,6,188,91,199,6,188,34,177,6,188,218,154,6,188,132,132,6,188,32,110,6,188,175,87,
6,188,47,65,6,188,161,42,6,188,5,20,6,188,91,253,5,188,164,230,5,188,222,207,5,188,10,185,5,188,41,162,5,188,57,139,5,188,59,116,5,188,48,93,5,188,23,70,5,188,239,46,5,188,186,23,5,188,119,0,5,188,38,233,4,188,200,209,4,188,91,186,4,188,225,162,4,188,89,139,4,188,195,115,4,188,31,92,4,188,109,68,4,188,174,44,4,188,225,20,4,188,6,253,3,188,29,229,3,188,38,205,3,188,34,181,3,188,16,157,3,188,241,132,3,188,196,108,3,188,137,84,3,188,64,60,3,188,234,35,3,188,134,11,3,188,20,243,2,188,149,218,2,188,8,
194,2,188,110,169,2,188,198,144,2,188,16,120,2,188,77,95,2,188,124,70,2,188,158,45,2,188,178,20,2,188,184,251,1,188,177,226,1,188,157,201,1,188,123,176,1,188,75,151,1,188,14,126,1,188,196,100,1,188,108,75,1,188,7,50,1,188,148,24,1,188,20,255,0,188,134,229,0,188,236,203,0,188,67,178,0,188,141,152,0,188,202,126,0,188,250,100,0,188,28,75,0,188,49,49,0,188,57,23,0,188,102,250,255,187,64,198,255,187,255,145,255,187,164,93,255,187,46,41,255,187,158,244,254,187,243,191,254,187,46,139,254,187,78,86,254,187,
84,33,254,187,64,236,253,187,17,183,253,187,200,129,253,187,101,76,253,187,231,22,253,187,79,225,252,187,157,171,252,187,208,117,252,187,234,63,252,187,233,9,252,187,206,211,251,187,153,157,251,187,74,103,251,187,224,48,251,187,93,250,250,187,192,195,250,187,8,141,250,187,55,86,250,187,76,31,250,187,70,232,249,187,39,177,249,187,238,121,249,187,155,66,249,187,46,11,249,187,168,211,248,187,8,156,248,187,77,100,248,187,122,44,248,187,140,244,247,187,133,188,247,187,100,132,247,187,41,76,247,187,213,
19,247,187,103,219,246,187,224,162,246,187,63,106,246,187,133,49,246,187,177,248,245,187,195,191,245,187,189,134,245,187,156,77,245,187,99,20,245,187,16,219,244,187,163,161,244,187,30,104,244,187,127,46,244,187,198,244,243,187,245,186,243,187,10,129,243,187,6,71,243,187,233,12,243,187,179,210,242,187,100,152,242,187,251,93,242,187,122,35,242,187,223,232,241,187,44,174,241,187,95,115,241,187,122,56,241,187,124,253,240,187,100,194,240,187,52,135,240,187,235,75,240,187,137,16,240,187,14,213,239,187,
123,153,239,187,207,93,239,187,10,34,239,187,44,230,238,187,54,170,238,187,38,110,238,187,255,49,238,187,191,245,237,187,102,185,237,187,244,124,237,187,106,64,237,187,200,3,237,187,13,199,236,187,58,138,236,187,78,77,236,187,74,16,236,187,46,211,235,187,249,149,235,187,172,88,235,187,70,27,235,187,201,221,234,187,51,160,234,187,133,98,234,187,190,36,234,187,224,230,233,187,234,168,233,187,219,106,233,187,180,44,233,187,118,238,232,187,31,176,232,187,176,113,232,187,41,51,232,187,139,244,231,187,
212,181,231,187,6,119,231,187,32,56,231,187,33,249,230,187,12,186,230,187,222,122,230,187,153,59,230,187,59,252,229,187,199,188,229,187,58,125,229,187,150,61,229,187,218,253,228,187,7,190,228,187,28,126,228,187,26,62,228,187,0,254,227,187,207,189,227,187,134,125,227,187,38,61,227,187,175,252,226,187,32,188,226,187,121,123,226,187,188,58,226,187,231,249,225,187,251,184,225,187,248,119,225,187,222,54,225,187,172,245,224,187,99,180,224,187,4,115,224,187,141,49,224,187,255,239,223,187,90,174,223,187,
158,108,223,187,203,42,223,187,225,232,222,187,225,166,222,187,201,100,222,187,155,34,222,187,86,224,221,187,250,157,221,187,135,91,221,187,253,24,221,187,93,214,220,187,166,147,220,187,217,80,220,187,245,13,220,187,250,202,219,187,233,135,219,187,193,68,219,187,130,1,219,187,46,190,218,187,194,122,218,187,65,55,218,187,169,243,217,187,250,175,217,187,54,108,217,187,91,40,217,187,106,228,216,187,98,160,216,187,68,92,216,187,17,24,216,187,199,211,215,187,102,143,215,187,240,74,215,187,100,6,215,187,
194,193,214,187,9,125,214,187,59,56,214,187,87,243,213,187,93,174,213,187,77,105,213,187,39,36,213,187,235,222,212,187,154,153,212,187,51,84,212,187,182,14,212,187,35,201,211,187,123,131,211,187,189,61,211,187,233,247,210,187,0,178,210,187,1,108,210,187,237,37,210,187,195,223,209,187,132,153,209,187,47,83,209,187,197,12,209,187,70,198,208,187,177,127,208,187,7,57,208,187,72,242,207,187,115,171,207,187,138,100,207,187,139,29,207,187,119,214,206,187,77,143,206,187,15,72,206,187,188,0,206,187,83,185,
205,187,214,113,205,187,67,42,205,187,156,226,204,187,224,154,204,187,14,83,204,187,40,11,204,187,46,195,203,187,30,123,203,187,250,50,203,187,192,234,202,187,115,162,202,187,16,90,202,187,153,17,202,187,13,201,201,187,109,128,201,187,184,55,201,187,239,238,200,187,17,166,200,187,31,93,200,187,24,20,200,187,253,202,199,187,206,129,199,187,138,56,199,187,50,239,198,187,198,165,198,187,69,92,198,187,177,18,198,187,8,201,197,187,75,127,197,187,122,53,197,187,149,235,196,187,156,161,196,187,142,87,196,
187,109,13,196,187,56,195,195,187,239,120,195,187,146,46,195,187,34,228,194,187,157,153,194,187,5,79,194,187,89,4,194,187,153,185,193,187,198,110,193,187,222,35,193,187,228,216,192,187,213,141,192,187,180,66,192,187,126,247,191,187,53,172,191,187,217,96,191,187,105,21,191,187,230,201,190,187,79,126,190,187,166,50,190,187,232,230,189,187,24,155,189,187,52,79,189,187,61,3,189,187,51,183,188,187,22,107,188,187,230,30,188,187,163,210,187,187,76,134,187,187,227,57,187,187,102,237,186,187,215,160,186,187,
53,84,186,187,128,7,186,187,184,186,185,187,221,109,185,187,240,32,185,187,239,211,184,187,221,134,184,187,183,57,184,187,127,236,183,187,52,159,183,187,214,81,183,187,102,4,183,187,228,182,182,187,79,105,182,187,167,27,182,187,237,205,181,187,33,128,181,187,67,50,181,187,82,228,180,187,78,150,180,187,57,72,180,187,17,250,179,187,216,171,179,187,140,93,179,187,45,15,179,187,189,192,178,187,59,114,178,187,167,35,178,187,1,213,177,187,73,134,177,187,127,55,177,187,163,232,176,187,181,153,176,187,181,
74,176,187,164,251,175,187,129,172,175,187,76,93,175,187,5,14,175,187,173,190,174,187,68,111,174,187,200,31,174,187,59,208,173,187,157,128,173,187,237,48,173,187,44,225,172,187,89,145,172,187,117,65,172,187,128,241,171,187,121,161,171,187,97,81,171,187,56,1,171,187,254,176,170,187,178,96,170,187,86,16,170,187,232,191,169,187,105,111,169,187,217,30,169,187,56,206,168,187,134,125,168,187,196,44,168,187,240,219,167,187,12,139,167,187,22,58,167,187,16,233,166,187,249,151,166,187,210,70,166,187,153,245,
165,187,81,164,165,187,247,82,165,187,141,1,165,187,18,176,164,187,135,94,164,187,236,12,164,187,63,187,163,187,131,105,163,187,182,23,163,187,217,197,162,187,235,115,162,187,238,33,162,187,224,207,161,187,194,125,161,187,147,43,161,187,85,217,160,187,6,135,160,187,168,52,160,187,57,226,159,187,186,143,159,187,44,61,159,187,141,234,158,187,223,151,158,187,33,69,158,187,82,242,157,187,117,159,157,187,135,76,157,187,138,249,156,187,125,166,156,187,96,83,156,187,52,0,156,187,248,172,155,187,173,89,155,
187,82,6,155,187,232,178,154,187,110,95,154,187,229,11,154,187,77,184,153,187,165,100,153,187,238,16,153,187,40,189,152,187,83,105,152,187,110,21,152,187,122,193,151,187,119,109,151,187,101,25,151,187,69,197,150,187,21,113,150,187,214,28,150,187,136,200,149,187,43,116,149,187,191,31,149,187,69,203,148,187,188,118,148,187,36,34,148,187,125,205,147,187,200,120,147,187,4,36,147,187,49,207,146,187,80,122,146,187,97,37,146,187,99,208,145,187,86,123,145,187,59,38,145,187,18,209,144,187,218,123,144,187,
148,38,144,187,63,209,143,187,221,123,143,187,108,38,143,187,237,208,142,187,96,123,142,187,197,37,142,187,27,208,141,187,100,122,141,187,159,36,141,187,204,206,140,187,234,120,140,187,251,34,140,187,255,204,139,187,244,118,139,187,219,32,139,187,181,202,138,187,129,116,138,187,64,30,138,187,241,199,137,187,148,113,137,187,42,27,137,187,178,196,136,187,45,110,136,187,154,23,136,187,250,192,135,187,76,106,135,187,146,19,135,187,201,188,134,187,244,101,134,187,17,15,134,187,34,184,133,187,37,97,133,
187,27,10,133,187,4,179,132,187,223,91,132,187,174,4,132,187,112,173,131,187,37,86,131,187,205,254,130,187,105,167,130,187,247,79,130,187,121,248,129,187,237,160,129,187,86,73,129,187,177,241,128,187,0,154,128,187,66,66,128,187,240,212,127,187,67,37,127,187,124,117,126,187,157,197,125,187,165,21,125,187,148,101,124,187,106,181,123,187,40,5,123,187,205,84,122,187,90,164,121,187,207,243,120,187,43,67,120,187,111,146,119,187,155,225,118,187,174,48,118,187,170,127,117,187,142,206,116,187,90,29,116,187,
14,108,115,187,171,186,114,187,48,9,114,187,157,87,113,187,243,165,112,187,49,244,111,187,88,66,111,187,104,144,110,187,97,222,109,187,67,44,109,187,13,122,108,187,193,199,107,187,94,21,107,187,228,98,106,187,83,176,105,187,172,253,104,187,238,74,104,187,26,152,103,187,47,229,102,187,46,50,102,187,22,127,101,187,233,203,100,187,165,24,100,187,75,101,99,187,220,177,98,187,86,254,97,187,187,74,97,187,10,151,96,187,67,227,95,187,102,47,95,187,116,123,94,187,109,199,93,187,80,19,93,187,30,95,92,187,215,
170,91,187,123,246,90,187,10,66,90,187,131,141,89,187,232,216,88,187,56,36,88,187,115,111,87,187,154,186,86,187,172,5,86,187,169,80,85,187,146,155,84,187,102,230,83,187,39,49,83,187,211,123,82,187,107,198,81,187,239,16,81,187,94,91,80,187,186,165,79,187,3,240,78,187,55,58,78,187,88,132,77,187,101,206,76,187,94,24,76,187,68,98,75,187,23,172,74,187,215,245,73,187,131,63,73,187,28,137,72,187,162,210,71,187,21,28,71,187,117,101,70,187,194,174,69,187,253,247,68,187,37,65,68,187,58,138,67,187,61,211,66,
187,45,28,66,187,11,101,65,187,214,173,64,187,144,246,63,187,55,63,63,187,204,135,62,187,79,208,61,187,192,24,61,187,32,97,60,187,110,169,59,187,169,241,58,187,212,57,58,187,237,129,57,187,244,201,56,187,234,17,56,187,207,89,55,187,162,161,54,187,101,233,53,187,22,49,53,187,182,120,52,187,70,192,51,187,196,7,51,187,50,79,50,187,143,150,49,187,220,221,48,187,24,37,48,187,67,108,47,187,95,179,46,187,106,250,45,187,100,65,45,187,79,136,44,187,42,207,43,187,244,21,43,187,175,92,42,187,90,163,41,187,245,
233,40,187,128,48,40,187,252,118,39,187,104,189,38,187,197,3,38,187,19,74,37,187,81,144,36,187,128,214,35,187,160,28,35,187,177,98,34,187,179,168,33,187,166,238,32,187,139,52,32,187,96,122,31,187,39,192,30,187,223,5,30,187,137,75,29,187,37,145,28,187,178,214,27,187,49,28,27,187,161,97,26,187,4,167,25,187,88,236,24,187,159,49,24,187,216,118,23,187,3,188,22,187,32,1,22,187,47,70,21,187,49,139,20,187,38,208,19,187,13,21,19,187,231,89,18,187,179,158,17,187,115,227,16,187,37,40,16,187,202,108,15,187,99,
177,14,187,238,245,13,187,109,58,13,187,223,126,12,187,69,195,11,187,158,7,11,187,234,75,10,187,42,144,9,187,94,212,8,187,134,24,8,187,161,92,7,187,177,160,6,187,180,228,5,187,171,40,5,187,151,108,4,187,119,176,3,187,75,244,2,187,20,56,2,187,209,123,1,187,131,191,0,187,41,3,0,187,137,141,254,186,168,20,253,186,178,155,251,186,165,34,250,186,131,169,248,186,75,48,247,186,253,182,245,186,154,61,244,186,33,196,242,186,147,74,241,186,241,208,239,186,57,87,238,186,109,221,236,186,141,99,235,186,152,233,
233,186,143,111,232,186,114,245,230,186,65,123,229,186,252,0,228,186,164,134,226,186,56,12,225,186,185,145,223,186,39,23,222,186,130,156,220,186,203,33,219,186,0,167,217,186,36,44,216,186,53,177,214,186,52,54,213,186,33,187,211,186,252,63,210,186,197,196,208,186,126,73,207,186,36,206,205,186,186,82,204,186,62,215,202,186,178,91,201,186,21,224,199,186,103,100,198,186,169,232,196,186,219,108,195,186,253,240,193,186,15,117,192,186,17,249,190,186,4,125,189,186,231,0,188,186,187,132,186,186,127,8,185,
186,53,140,183,186,220,15,182,186,116,147,180,186,254,22,179,186,122,154,177,186,231,29,176,186,71,161,174,186,152,36,173,186,220,167,171,186,19,43,170,186,60,174,168,186,87,49,167,186,102,180,165,186,104,55,164,186,93,186,162,186,70,61,161,186,34,192,159,186,242,66,158,186,182,197,156,186,110,72,155,186,26,203,153,186,187,77,152,186,80,208,150,186,217,82,149,186,88,213,147,186,204,87,146,186,53,218,144,186,147,92,143,186,231,222,141,186,48,97,140,186,111,227,138,186,164,101,137,186,208,231,135,186,
241,105,134,186,9,236,132,186,24,110,131,186,30,240,129,186,26,114,128,186,27,232,125,186,240,235,122,186,181,239,119,186,104,243,116,186,11,247,113,186,158,250,110,186,33,254,107,186,148,1,105,186,248,4,102,186,77,8,99,186,147,11,96,186,204,14,93,186,246,17,90,186,18,21,87,186,33,24,84,186,35,27,81,186,25,30,78,186,2,33,75,186,222,35,72,186,176,38,69,186,117,41,66,186,48,44,63,186,224,46,60,186,133,49,57,186,32,52,54,186,177,54,51,186,57,57,48,186,183,59,45,186,45,62,42,186,154,64,39,186,255,66,
36,186,92,69,33,186,177,71,30,186,255,73,27,186,70,76,24,186,134,78,21,186,192,80,18,186,244,82,15,186,35,85,12,186,76,87,9,186,111,89,6,186,142,91,3,186,169,93,0,186,127,191,250,185,165,195,244,185,195,199,238,185,220,203,232,185,238,207,226,185,252,211,220,185,5,216,214,185,10,220,208,185,12,224,202,185,12,228,196,185,10,232,190,185,7,236,184,185,3,240,178,185,255,243,172,185,252,247,166,185,250,251,160,185,250,255,154,185,253,3,149,185,3,8,143,185,13,12,137,185,28,16,131,185,95,40,122,185,145,
48,110,185,209,56,98,185,31,65,86,185,124,73,74,185,234,81,62,185,106,90,50,185,253,98,38,185,165,107,26,185,98,116,14,185,54,125,2,185,70,12,237,184,83,30,213,184,149,48,189,184,15,67,165,184,197,85,141,184,111,209,106,184,212,247,58,184,190,30,11,184,100,140,182,183,211,184,45,183,133,38,141,53,15,0,81,55,107,44,200,55,195,235,19,56,169,192,67,56,225,148,115,56,51,180,145,56,154,157,169,56,163,134,193,56,74,111,217,56,142,87,241,56,182,159,4,57,113,147,16,57,246,134,28,57,68,122,40,57,91,109,52,
57,56,96,64,57,218,82,76,57,65,69,88,57,106,55,100,57,85,41,112,57,0,27,124,57,53,6,132,57,201,254,137,57,59,247,143,57,139,239,149,57,184,231,155,57,193,223,161,57,166,215,167,57,102,207,173,57,1,199,179,57,117,190,185,57,194,181,191,57,232,172,197,57,230,163,203,57,187,154,209,57,103,145,215,57,233,135,221,57,64,126,227,57,108,116,233,57,109,106,239,57,64,96,245,57,231,85,251,57,176,165,0,58,85,160,3,58,227,154,6,58,88,149,9,58,182,143,12,58,251,137,15,58,40,132,18,58,59,126,21,58,53,120,24,58,
21,114,27,58,219,107,30,58,135,101,33,58,24,95,36,58,142,88,39,58,233,81,42,58,40,75,45,58,75,68,48,58,82,61,51,58,61,54,54,58,10,47,57,58,186,39,60,58,77,32,63,58,194,24,66,58,25,17,69,58,82,9,72,58,107,1,75,58,102,249,77,58,65,241,80,58,252,232,83,58,152,224,86,58,19,216,89,58,109,207,92,58,167,198,95,58,191,189,98,58,181,180,101,58,138,171,104,58,60,162,107,58,204,152,110,58,57,143,113,58,131,133,116,58,170,123,119,58,172,113,122,58,139,103,125,58,162,46,128,58,109,169,129,58,37,36,131,58,203,
158,132,58,93,25,134,58,221,147,135,58,74,14,137,58,163,136,138,58,232,2,140,58,27,125,141,58,57,247,142,58,67,113,144,58,58,235,145,58,28,101,147,58,233,222,148,58,162,88,150,58,71,210,151,58,214,75,153,58,81,197,154,58,182,62,156,58,6,184,157,58,65,49,159,58,102,170,160,58,117,35,162,58,110,156,163,58,81,21,165,58,30,142,166,58,212,6,168,58,116,127,169,58,253,247,170,58,111,112,172,58,202,232,173,58,14,97,175,58,58,217,176,58,79,81,178,58,76,201,179,58,50,65,181,58,255,184,182,58,181,48,184,58,
82,168,185,58,215,31,187,58,67,151,188,58,150,14,190,58,208,133,191,58,242,252,192,58,250,115,194,58,233,234,195,58,190,97,197,58,121,216,198,58,27,79,200,58,163,197,201,58,16,60,203,58,100,178,204,58,156,40,206,58,187,158,207,58,190,20,209,58,167,138,210,58,116,0,212,58,38,118,213,58,189,235,214,58,56,97,216,58,152,214,217,58,220,75,219,58,4,193,220,58,15,54,222,58,255,170,223,58,210,31,225,58,136,148,226,58,34,9,228,58,158,125,229,58,254,241,230,58,64,102,232,58,101,218,233,58,108,78,235,58,86,
194,236,58,34,54,238,58,208,169,239,58,96,29,241,58,209,144,242,58,36,4,244,58,89,119,245,58,111,234,246,58,101,93,248,58,61,208,249,58,246,66,251,58,143,181,252,58,8,40,254,58,98,154,255,58,78,134,0,59,91,63,1,59,88,248,1,59,69,177,2,59,34,106,3,59,238,34,4,59,170,219,4,59,86,148,5,59,241,76,6,59,123,5,7,59,245,189,7,59,94,118,8,59,182,46,9,59,254,230,9,59,52,159,10,59,89,87,11,59,110,15,12,59,113,199,12,59,98,127,13,59,67,55,14,59,17,239,14,59,207,166,15,59,123,94,16,59,21,22,17,59,157,205,17,59,
20,133,18,59,121,60,19,59,204,243,19,59,12,171,20,59,59,98,21,59,87,25,22,59,98,208,22,59,90,135,23,59,63,62,24,59,18,245,24,59,210,171,25,59,128,98,26,59,27,25,27,59,164,207,27,59,25,134,28,59,124,60,29,59,203,242,29,59,8,169,30,59,49,95,31,59,71,21,32,59,74,203,32,59,57,129,33,59,21,55,34,59,221,236,34,59,146,162,35,59,51,88,36,59,192,13,37,59,58,195,37,59,159,120,38,59,241,45,39,59,47,227,39,59,88,152,40,59,109,77,41,59,110,2,42,59,91,183,42,59,51,108,43,59,247,32,44,59,166,213,44,59,64,138,45,
59,198,62,46,59,55,243,46,59,147,167,47,59,218,91,48,59,12,16,49,59,41,196,49,59,49,120,50,59,36,44,51,59,1,224,51,59,201,147,52,59,123,71,53,59,24,251,53,59,160,174,54,59,17,98,55,59,109,21,56,59,179,200,56,59,227,123,57,59,253,46,58,59,2,226,58,59,240,148,59,59,199,71,60,59,137,250,60,59,52,173,61,59,201,95,62,59,71,18,63,59,175,196,63,59,0,119,64,59,58,41,65,59,94,219,65,59,107,141,66,59,97,63,67,59,64,241,67,59,7,163,68,59,184,84,69,59,81,6,70,59,211,183,70,59,62,105,71,59,146,26,72,59,205,203,
72,59,242,124,73,59,254,45,74,59,243,222,74,59,208,143,75,59,149,64,76,59,67,241,76,59,216,161,77,59,85,82,78,59,186,2,79,59,7,179,79,59,59,99,80,59,87,19,81,59,91,195,81,59,70,115,82,59,25,35,83,59,210,210,83,59,116,130,84,59,252,49,85,59,107,225,85,59,194,144,86,59,255,63,87,59,36,239,87,59,47,158,88,59,33,77,89,59,250,251,89,59,185,170,90,59,95,89,91,59,235,7,92,59,94,182,92,59,183,100,93,59,246,18,94,59,28,193,94,59,39,111,95,59,25,29,96,59,241,202,96,59,174,120,97,59,82,38,98,59,219,211,98,59,
74,129,99,59,158,46,100,59,216,219,100,59,248,136,101,59,253,53,102,59,231,226,102,59,183,143,103,59,107,60,104,59,5,233,104,59,132,149,105,59,232,65,106,59,49,238,106,59,95,154,107,59,113,70,108,59,105,242,108,59,68,158,109,59,5,74,110,59,170,245,110,59,51,161,111,59,161,76,112,59,243,247,112,59,41,163,113,59,67,78,114,59,66,249,114,59,36,164,115,59,235,78,116,59,149,249,116,59,35,164,117,59,149,78,118,59,234,248,118,59,35,163,119,59,64,77,120,59,64,247,120,59,35,161,121,59,234,74,122,59,148,244,
122,59,33,158,123,59,145,71,124,59,228,240,124,59,27,154,125,59,52,67,126,59,48,236,126,59,15,149,127,59,232,30,128,59,58,115,128,59,125,199,128,59,178,27,129,59,216,111,129,59,239,195,129,59,247,23,130,59,240,107,130,59,218,191,130,59,181,19,131,59,130,103,131,59,63,187,131,59,237,14,132,59,140,98,132,59,28,182,132,59,157,9,133,59,15,93,133,59,113,176,133,59,196,3,134,59,8,87,134,59,60,170,134,59,98,253,134,59,119,80,135,59,126,163,135,59,116,246,135,59,92,73,136,59,51,156,136,59,252,238,136,59,
180,65,137,59,93,148,137,59,246,230,137,59,128,57,138,59,250,139,138,59,100,222,138,59,190,48,139,59,8,131,139,59,67,213,139,59,109,39,140,59,136,121,140,59,147,203,140,59,142,29,141,59,120,111,141,59,83,193,141,59,29,19,142,59,216,100,142,59,130,182,142,59,28,8,143,59,165,89,143,59,31,171,143,59,136,252,143,59,225,77,144,59,41,159,144,59,97,240,144,59,137,65,145,59,160,146,145,59,166,227,145,59,157,52,146,59,130,133,146,59,87,214,146,59,27,39,147,59,207,119,147,59,114,200,147,59,4,25,148,59,133,
105,148,59,246,185,148,59,86,10,149,59,164,90,149,59,226,170,149,59,16,251,149,59,44,75,150,59,55,155,150,59,49,235,150,59,26,59,151,59,242,138,151,59,185,218,151,59,110,42,152,59,19,122,152,59,166,201,152,59,40,25,153,59,153,104,153,59,248,183,153,59,70,7,154,59,131,86,154,59,174,165,154,59,200,244,154,59,208,67,155,59,199,146,155,59,172,225,155,59,128,48,156,59,66,127,156,59,243,205,156,59,145,28,157,59,30,107,157,59,154,185,157,59,3,8,158,59,91,86,158,59,161,164,158,59,213,242,158,59,247,64,159,
59,8,143,159,59,6,221,159,59,242,42,160,59,205,120,160,59,149,198,160,59,75,20,161,59,239,97,161,59,129,175,161,59,1,253,161,59,111,74,162,59,202,151,162,59,19,229,162,59,74,50,163,59,110,127,163,59,128,204,163,59,128,25,164,59,109,102,164,59,72,179,164,59,16,0,165,59,198,76,165,59,105,153,165,59,250,229,165,59,120,50,166,59,227,126,166,59,60,203,166,59,130,23,167,59,182,99,167,59,214,175,167,59,228,251,167,59,223,71,168,59,199,147,168,59,156,223,168,59,94,43,169,59,13,119,169,59,170,194,169,59,51,
14,170,59,169,89,170,59,13,165,170,59,93,240,170,59,154,59,171,59,195,134,171,59,218,209,171,59,221,28,172,59,206,103,172,59,170,178,172,59,116,253,172,59,42,72,173,59,205,146,173,59,92,221,173,59,216,39,174,59,65,114,174,59,150,188,174,59,216,6,175,59,5,81,175,59,32,155,175,59,39,229,175,59,26,47,176,59,249,120,176,59,197,194,176,59,125,12,177,59,33,86,177,59,178,159,177,59,46,233,177,59,151,50,178,59,236,123,178,59,45,197,178,59,90,14,179,59,115,87,179,59,120,160,179,59,105,233,179,59,70,50,180,
59,15,123,180,59,196,195,180,59,101,12,181,59,241,84,181,59,105,157,181,59,205,229,181,59,29,46,182,59,89,118,182,59,128,190,182,59,147,6,183,59,145,78,183,59,123,150,183,59,81,222,183,59,18,38,184,59,191,109,184,59,87,181,184,59,218,252,184,59,73,68,185,59,164,139,185,59,233,210,185,59,26,26,186,59,55,97,186,59,63,168,186,59,49,239,186,59,16,54,187,59,217,124,187,59,141,195,187,59,45,10,188,59,184,80,188,59,46,151,188,59,142,221,188,59,218,35,189,59,17,106,189,59,51,176,189,59,64,246,189,59,56,60,
190,59,26,130,190,59,232,199,190,59,160,13,191,59,67,83,191,59,209,152,191,59,73,222,191,59,173,35,192,59,251,104,192,59,51,174,192,59,86,243,192,59,100,56,193,59,93,125,193,59,64,194,193,59,13,7,194,59,197,75,194,59,104,144,194,59,244,212,194,59,108,25,195,59,205,93,195,59,26,162,195,59,80,230,195,59,113,42,196,59,124,110,196,59,113,178,196,59,80,246,196,59,26,58,197,59,205,125,197,59,107,193,197,59],"i8",4,y.a+348160);
Q([243,4,198,59,101,72,198,59,194,139,198,59,8,207,198,59,56,18,199,59,82,85,199,59,86,152,199,59,68,219,199,59,28,30,200,59,222,96,200,59,138,163,200,59,31,230,200,59,158,40,201,59,7,107,201,59,90,173,201,59,150,239,201,59,189,49,202,59,204,115,202,59,198,181,202,59,169,247,202,59,117,57,203,59,44,123,203,59,203,188,203,59,84,254,203,59,199,63,204,59,35,129,204,59,105,194,204,59,152,3,205,59,176,68,205,59,177,133,205,59,156,198,205,59,113,7,206,59,46,72,206,59,213,136,206,59,101,201,206,59,222,9,
207,59,64,74,207,59,139,138,207,59,192,202,207,59,222,10,208,59,228,74,208,59,212,138,208,59,173,202,208,59,110,10,209,59,25,74,209,59,173,137,209,59,41,201,209,59,143,8,210,59,221,71,210,59,20,135,210,59,52,198,210,59,60,5,211,59,46,68,211,59,8,131,211,59,203,193,211,59,118,0,212,59,10,63,212,59,135,125,212,59,237,187,212,59,59,250,212,59,113,56,213,59,144,118,213,59,152,180,213,59,136,242,213,59,96,48,214,59,33,110,214,59,203,171,214,59,92,233,214,59,215,38,215,59,57,100,215,59,132,161,215,59,183,
222,215,59,210,27,216,59,214,88,216,59,193,149,216,59,149,210,216,59,82,15,217,59,246,75,217,59,130,136,217,59,247,196,217,59,83,1,218,59,152,61,218,59,196,121,218,59,217,181,218,59,214,241,218,59,186,45,219,59,135,105,219,59,59,165,219,59,215,224,219,59,91,28,220,59,199,87,220,59,27,147,220,59,86,206,220,59,122,9,221,59,133,68,221,59,119,127,221,59,82,186,221,59,20,245,221,59,190,47,222,59,79,106,222,59,200,164,222,59,40,223,222,59,113,25,223,59,160,83,223,59,183,141,223,59,182,199,223,59,156,1,
224,59,105,59,224,59,30,117,224,59,187,174,224,59,62,232,224,59,169,33,225,59,252,90,225,59,53,148,225,59,86,205,225,59,94,6,226,59,78,63,226,59,36,120,226,59,226,176,226,59,135,233,226,59,19,34,227,59,135,90,227,59,225,146,227,59,34,203,227,59,75,3,228,59,90,59,228,59,81,115,228,59,46,171,228,59,243,226,228,59,158,26,229,59,49,82,229,59,170,137,229,59,10,193,229,59,81,248,229,59,127,47,230,59,147,102,230,59,143,157,230,59,113,212,230,59,58,11,231,59,234,65,231,59,128,120,231,59,253,174,231,59,97,
229,231,59,171,27,232,59,220,81,232,59,244,135,232,59,242,189,232,59,215,243,232,59,162,41,233,59,84,95,233,59,236,148,233,59,107,202,233,59,208,255,233,59,27,53,234,59,77,106,234,59,102,159,234,59,101,212,234,59,74,9,235,59,21,62,235,59,199,114,235,59,95,167,235,59,221,219,235,59,66,16,236,59,140,68,236,59,189,120,236,59,213,172,236,59,210,224,236,59,181,20,237,59,127,72,237,59,47,124,237,59,196,175,237,59,64,227,237,59,162,22,238,59,234,73,238,59,24,125,238,59,44,176,238,59,37,227,238,59,5,22,239,
59,203,72,239,59,118,123,239,59,8,174,239,59,127,224,239,59,220,18,240,59,31,69,240,59,72,119,240,59,87,169,240,59,75,219,240,59,37,13,241,59,229,62,241,59,138,112,241,59,21,162,241,59,134,211,241,59,221,4,242,59,25,54,242,59,59,103,242,59,66,152,242,59,47,201,242,59,1,250,242,59,185,42,243,59,87,91,243,59,218,139,243,59,66,188,243,59,144,236,243,59,195,28,244,59,220,76,244,59,218,124,244,59,190,172,244,59,135,220,244,59,53,12,245,59,200,59,245,59,65,107,245,59,159,154,245,59,227,201,245,59,12,249,
245,59,26,40,246,59,13,87,246,59,229,133,246,59,162,180,246,59,69,227,246,59,205,17,247,59,58,64,247,59,140,110,247,59,195,156,247,59,223,202,247,59,224,248,247,59,199,38,248,59,146,84,248,59,66,130,248,59,216,175,248,59,82,221,248,59,177,10,249,59,245,55,249,59,30,101,249,59,44,146,249,59,31,191,249,59,247,235,249,59,179,24,250,59,84,69,250,59,219,113,250,59,70,158,250,59,149,202,250,59,202,246,250,59,227,34,251,59,225,78,251,59,195,122,251,59,139,166,251,59,55,210,251,59,199,253,251,59,61,41,252,
59,150,84,252,59,213,127,252,59,248,170,252,59,0,214,252,59,236,0,253,59,189,43,253,59,114,86,253,59,12,129,253,59,138,171,253,59,237,213,253,59,52,0,254,59,95,42,254,59,112,84,254,59,100,126,254,59,61,168,254,59,250,209,254,59,156,251,254,59,34,37,255,59,140,78,255,59,218,119,255,59,13,161,255,59,36,202,255,59,32,243,255,59,0,14,0,60,98,34,0,60,182,54,0,60,252,74,0,60,52,95,0,60,94,115,0,60,123,135,0,60,137,155,0,60,138,175,0,60,124,195,0,60,97,215,0,60,56,235,0,60,0,255,0,60,187,18,1,60,104,38,
1,60,7,58,1,60,151,77,1,60,26,97,1,60,143,116,1,60,246,135,1,60,78,155,1,60,153,174,1,60,214,193,1,60,4,213,1,60,37,232,1,60,55,251,1,60,60,14,2,60,50,33,2,60,26,52,2,60,244,70,2,60,192,89,2,60,126,108,2,60,46,127,2,60,208,145,2,60,99,164,2,60,233,182,2,60,96,201,2,60,201,219,2,60,36,238,2,60,113,0,3,60,175,18,3,60,224,36,3,60,2,55,3,60,22,73,3,60,28,91,3,60,20,109,3,60,253,126,3,60,216,144,3,60,165,162,3,60,100,180,3,60,21,198,3,60,183,215,3,60,75,233,3,60,209,250,3,60,72,12,4,60,177,29,4,60,12,
47,4,60,89,64,4,60,151,81,4,60,200,98,4,60,233,115,4,60,253,132,4,60,2,150,4,60,249,166,4,60,225,183,4,60,187,200,4,60,135,217,4,60,69,234,4,60,244,250,4,60,149,11,5,60,39,28,5,60,171,44,5,60,33,61,5,60,136,77,5,60,225,93,5,60,43,110,5,60,103,126,5,60,149,142,5,60,180,158,5,60,197,174,5,60,199,190,5,60,187,206,5,60,161,222,5,60,120,238,5,60,65,254,5,60,251,13,6,60,166,29,6,60,68,45,6,60,210,60,6,60,83,76,6,60,196,91,6,60,40,107,6,60,124,122,6,60,195,137,6,60,250,152,6,60,36,168,6,60,62,183,6,60,75,
198,6,60,72,213,6,60,56,228,6,60,24,243,6,60,234,1,7,60,174,16,7,60,99,31,7,60,9,46,7,60,161,60,7,60,42,75,7,60,165,89,7,60,17,104,7,60,110,118,7,60,189,132,7,60,253,146,7,60,47,161,7,60,82,175,7,60,102,189,7,60,108,203,7,60,99,217,7,60,76,231,7,60,38,245,7,60,241,2,8,60,174,16,8,60,92,30,8,60,251,43,8,60,140,57,8,60,14,71,8,60,129,84,8,60,230,97,8,60,59,111,8,60,131,124,8,60,187,137,8,60,229,150,8,60,0,164,8,60,13,177,8,60,11,190,8,60,250,202,8,60,218,215,8,60,171,228,8,60,110,241,8,60,34,254,8,
60,200,10,9,60,94,23,9,60,230,35,9,60,96,48,9,60,202,60,9,60,38,73,9,60,114,85,9,60,176,97,9,60,224,109,9,60,0,122,9,60,18,134,9,60,21,146,9,60,9,158,9,60,239,169,9,60,197,181,9,60,141,193,9,60,70,205,9,60,240,216,9,60,139,228,9,60,24,240,9,60,150,251,9,60,4,7,10,60,100,18,10,60,182,29,10,60,248,40,10,60,43,52,10,60,80,63,10,60,102,74,10,60,109,85,10,60,101,96,10,60,78,107,10,60,40,118,10,60,244,128,10,60,177,139,10,60,94,150,10,60,253,160,10,60,141,171,10,60,14,182,10,60,128,192,10,60,227,202,10,
60,56,213,10,60,125,223,10,60,180,233,10,60,219,243,10,60,244,253,10,60,254,7,11,60,249,17,11,60,229,27,11,60,194,37,11,60,144,47,11,60,79,57,11,60,255,66,11,60,161,76,11,60,51,86,11,60,182,95,11,60,43,105,11,60,144,114,11,60,231,123,11,60,46,133,11,60,103,142,11,60,144,151,11,60,171,160,11,60,183,169,11,60,179,178,11,60,161,187,11,60,128,196,11,60,80,205,11,60,16,214,11,60,194,222,11,60,101,231,11,60,249,239,11,60,125,248,11,60,243,0,12,60,90,9,12,60,178,17,12,60,250,25,12,60,52,34,12,60,95,42,12,
60,122,50,12,60,135,58,12,60,133,66,12,60,115,74,12,60,83,82,12,60,35,90,12,60,229,97,12,60,151,105,12,60,59,113,12,60,207,120,12,60,84,128,12,60,203,135,12,60,50,143,12,60,138,150,12,60,211,157,12,60,13,165,12,60,56,172,12,60,84,179,12,60,97,186,12,60,95,193,12,60,78,200,12,60,45,207,12,60,254,213,12,60,192,220,12,60,114,227,12,60,21,234,12,60,170,240,12,60,47,247,12,60,165,253,12,60,12,4,13,60,100,10,13,60,173,16,13,60,231,22,13,60,17,29,13,60,45,35,13,60,57,41,13,60,55,47,13,60,37,53,13,60,4,59,
13,60,212,64,13,60,149,70,13,60,71,76,13,60,234,81,13,60,126,87,13,60,2,93,13,60,119,98,13,60,222,103,13,60,53,109,13,60,125,114,13,60,182,119,13,60,224,124,13,60,250,129,13,60,6,135,13,60,2,140,13,60,240,144,13,60,206,149,13,60,157,154,13,60,93,159,13,60,14,164,13,60,175,168,13,60,66,173,13,60,197,177,13,60,57,182,13,60,158,186,13,60,244,190,13,60,59,195,13,60,115,199,13,60,155,203,13,60,181,207,13,60,191,211,13,60,186,215,13,60,166,219,13,60,131,223,13,60,81,227,13,60,15,231,13,60,190,234,13,60,
95,238,13,60,240,241,13,60,114,245,13,60,228,248,13,60,72,252,13,60,156,255,13,60,226,2,14,60,24,6,14,60,63,9,14,60,87,12,14,60,95,15,14,60,89,18,14,60,67,21,14,60,30,24,14,60,234,26,14,60,167,29,14,60,85,32,14,60,243,34,14,60,131,37,14,60,3,40,14,60,116,42,14,60,214,44,14,60,41,47,14,60,108,49,14,60,161,51,14,60,198,53,14,60,220,55,14,60,227,57,14,60,219,59,14,60,195,61,14,60,157,63,14,60,103,65,14,60,34,67,14,60,206,68,14,60,107,70,14,60,248,71,14,60,119,73,14,60,230,74,14,60,70,76,14,60,151,77,
14,60,217,78,14,60,12,80,14,60,47,81,14,60,67,82,14,60,73,83,14,60,63,84,14,60,37,85,14,60,253,85,14,60,198,86,14,60,127,87,14,60,41,88,14,60,196,88,14,60,80,89,14,60,205,89,14,60,58,90,14,60,153,90,14,60,232,90,14,60,40,91,14,60,89,91,14,60,123,91,14,60,141,91,14,60,145,91,14,60,133,91,14,60,106,91,14,60,64,91,14,60,7,91,14,60,191,90,14,60,103,90,14,60,1,90,14,60,139,89,14,60,6,89,14,60,114,88,14,60,207,87,14,60,29,87,14,60,91,86,14,60,139,85,14,60,171,84,14,60,188,83,14,60,190,82,14,60,177,81,14,
60,149,80,14,60,105,79,14,60,47,78,14,60,229,76,14,60,140,75,14,60,36,74,14,60,173,72,14,60,39,71,14,60,146,69,14,60,237,67,14,60,58,66,14,60,119,64,14,60,165,62,14,60,196,60,14,60,212,58,14,60,213,56,14,60,199,54,14,60,170,52,14,60,125,50,14,60,66,48,14,60,247,45,14,60,157,43,14,60,52,41,14,60,188,38,14,60,53,36,14,60,159,33,14,60,250,30,14,60,69,28,14,60,130,25,14,60,175,22,14,60,206,19,14,60,221,16,14,60,221,13,14,60,206,10,14,60,176,7,14,60,131,4,14,60,71,1,14,60,252,253,13,60,161,250,13,60,56,
247,13,60,192,243,13,60,56,240,13,60,162,236,13,60,252,232,13,60,71,229,13,60,131,225,13,60,177,221,13,60,207,217,13,60,222,213,13,60,222,209,13,60,207,205,13,60,177,201,13,60,132,197,13,60,72,193,13,60,253,188,13,60,162,184,13,60,57,180,13,60,193,175,13,60,58,171,13,60,163,166,13,60,254,161,13,60,74,157,13,60,135,152,13,60,180,147,13,60,211,142,13,60,226,137,13,60,227,132,13,60,213,127,13,60,183,122,13,60,139,117,13,60,80,112,13,60,5,107,13,60,172,101,13,60,68,96,13,60,204,90,13,60,70,85,13,60,177,
79,13,60,13,74,13,60,89,68,13,60,151,62,13,60,198,56,13,60,230,50,13,60,247,44,13,60,249,38,13,60,236,32,13,60,208,26,13,60,165,20,13,60,108,14,13,60,35,8,13,60,203,1,13,60,101,251,12,60,239,244,12,60,107,238,12,60,216,231,12,60,53,225,12,60,132,218,12,60,196,211,12,60,245,204,12,60,23,198,12,60,43,191,12,60,47,184,12,60,36,177,12,60,11,170,12,60,227,162,12,60,171,155,12,60,101,148,12,60,16,141,12,60,172,133,12,60,58,126,12,60,184,118,12,60,40,111,12,60,137,103,12,60,218,95,12,60,30,88,12,60,82,80,
12,60,119,72,12,60,142,64,12,60,149,56,12,60,142,48,12,60,120,40,12,60,83,32,12,60,32,24,12,60,221,15,12,60,140,7,12,60,44,255,11,60,189,246,11,60,64,238,11,60,180,229,11,60,24,221,11,60,110,212,11,60,182,203,11,60,238,194,11,60,24,186,11,60,51,177,11,60,63,168,11,60,61,159,11,60,43,150,11,60,11,141,11,60,221,131,11,60,159,122,11,60,83,113,11,60,248,103,11,60,142,94,11,60,22,85,11,60,143,75,11,60,249,65,11,60,84,56,11,60,161,46,11,60,223,36,11,60,15,27,11,60,47,17,11,60,65,7,11,60,69,253,10,60,57,
243,10,60,32,233,10,60,247,222,10,60,192,212,10,60,122,202,10,60,37,192,10,60,194,181,10,60,80,171,10,60,208,160,10,60,64,150,10,60,163,139,10,60,246,128,10,60,59,118,10,60,114,107,10,60,154,96,10,60,179,85,10,60,190,74,10,60,186,63,10,60,167,52,10,60,134,41,10,60,86,30,10,60,24,19,10,60,203,7,10,60,112,252,9,60,6,241,9,60,142,229,9,60,7,218,9,60,113,206,9,60,205,194,9,60,27,183,9,60,90,171,9,60,138,159,9,60,172,147,9,60,192,135,9,60,197,123,9,60,187,111,9,60,163,99,9,60,125,87,9,60,72,75,9,60,5,
63,9,60,179,50,9,60,82,38,9,60,228,25,9,60,103,13,9,60,219,0,9,60,65,244,8,60,152,231,8,60,226,218,8,60,28,206,8,60,73,193,8,60,103,180,8,60,118,167,8,60,119,154,8,60,106,141,8,60,78,128,8,60,36,115,8,60,236,101,8,60,165,88,8,60,80,75,8,60,237,61,8,60,123,48,8,60,251,34,8,60,109,21,8,60,208,7,8,60,37,250,7,60,108,236,7,60,164,222,7,60,206,208,7,60,234,194,7,60,248,180,7,60,247,166,7,60,232,152,7,60,203,138,7,60,159,124,7,60,102,110,7,60,30,96,7,60,200,81,7,60,99,67,7,60,240,52,7,60,112,38,7,60,225,
23,7,60,67,9,7,60,152,250,6,60,222,235,6,60,22,221,6,60,64,206,6,60,92,191,6,60,106,176,6,60,106,161,6,60,91,146,6,60,62,131,6,60,19,116,6,60,218,100,6,60,147,85,6,60,62,70,6,60,219,54,6,60,105,39,6,60,234,23,6,60,92,8,6,60,193,248,5,60,23,233,5,60,95,217,5,60,153,201,5,60,197,185,5,60,227,169,5,60,243,153,5,60,246,137,5,60,234,121,5,60,208,105,5,60,168,89,5,60,114,73,5,60,46,57,5,60,220,40,5,60,124,24,5,60,14,8,5,60,146,247,4,60,8,231,4,60,113,214,4,60,203,197,4,60,23,181,4,60,86,164,4,60,134,147,
4,60,169,130,4,60,190,113,4,60,197,96,4,60,190,79,4,60,169,62,4,60,134,45,4,60,86,28,4,60,23,11,4,60,203,249,3,60,113,232,3,60,9,215,3,60,147,197,3,60,16,180,3,60,126,162,3,60,223,144,3,60,50,127,3,60,120,109,3,60,175,91,3,60,217,73,3,60,245,55,3,60,3,38,3,60,4,20,3,60,247,1,3,60,220,239,2,60,179,221,2,60,125,203,2,60,57,185,2,60,231,166,2,60,136,148,2,60,27,130,2,60,160,111,2,60,24,93,2,60,129,74,2,60,222,55,2,60,45,37,2,60,110,18,2,60,161,255,1,60,199,236,1,60,223,217,1,60,234,198,1,60,231,179,
1,60,215,160,1,60,185,141,1,60,141,122,1,60,84,103,1,60,13,84,1,60,185,64,1,60,87,45,1,60,232,25,1,60,108,6,1,60,225,242,0,60,74,223,0,60,165,203,0,60,242,183,0,60,50,164,0,60,100,144,0,60,137,124,0,60,161,104,0,60,171,84,0,60,168,64,0,60,151,44,0,60,121,24,0,60,78,4,0,60,42,224,255,59,158,183,255,59,247,142,255,59,53,102,255,59,89,61,255,59,98,20,255,59,80,235,254,59,36,194,254,59,221,152,254,59,124,111,254,59,0,70,254,59,105,28,254,59,184,242,253,59,236,200,253,59,6,159,253,59,5,117,253,59,234,
74,253,59,181,32,253,59,101,246,252,59,251,203,252,59,118,161,252,59,215,118,252,59,29,76,252,59,74,33,252,59,92,246,251,59,83,203,251,59,49,160,251,59,244,116,251,59,157,73,251,59,43,30,251,59,160,242,250,59,250,198,250,59,59,155,250,59,97,111,250,59,109,67,250,59,94,23,250,59,54,235,249,59,244,190,249,59,152,146,249,59,33,102,249,59,145,57,249,59,231,12,249,59,34,224,248,59,68,179,248,59,76,134,248,59,58,89,248,59,14,44,248,59,201,254,247,59,105,209,247,59,240,163,247,59,93,118,247,59,176,72,247,
59,233,26,247,59,9,237,246,59,14,191,246,59,251,144,246,59,205,98,246,59,134,52,246,59,37,6,246,59,171,215,245,59,23,169,245,59,105,122,245,59,162,75,245,59,194,28,245,59,199,237,244,59,180,190,244,59,135,143,244,59,64,96,244,59,224,48,244,59,103,1,244,59,212,209,243,59,40,162,243,59,98,114,243,59,132,66,243,59,140,18,243,59,122,226,242,59,80,178,242,59,12,130,242,59,175,81,242,59,57,33,242,59,169,240,241,59,1,192,241,59,63,143,241,59,100,94,241,59,112,45,241,59,99,252,240,59,61,203,240,59,254,153,
240,59,166,104,240,59,53,55,240,59,171,5,240,59,8,212,239,59,77,162,239,59,120,112,239,59,138,62,239,59,132,12,239,59,101,218,238,59,45,168,238,59,220,117,238,59,114,67,238,59,240,16,238,59,85,222,237,59,161,171,237,59,213,120,237,59,240,69,237,59,242,18,237,59,220,223,236,59,173,172,236,59,102,121,236,59,6,70,236,59,141,18,236,59,253,222,235,59,83,171,235,59,145,119,235,59,183,67,235,59,196,15,235,59,185,219,234,59,150,167,234,59,90,115,234,59,6,63,234,59,154,10,234,59,22,214,233,59,121,161,233,
59,196,108,233,59,247,55,233,59,17,3,233,59,20,206,232,59,254,152,232,59,208,99,232,59,138,46,232,59,45,249,231,59,183,195,231,59,41,142,231,59,131,88,231,59,197,34,231,59,239,236,230,59,2,183,230,59,252,128,230,59,223,74,230,59,169,20,230,59,92,222,229,59,247,167,229,59,123,113,229,59,230,58,229,59,58,4,229,59,118,205,228,59,155,150,228,59,168,95,228,59,157,40,228,59,122,241,227,59,64,186,227,59,239,130,227,59,134,75,227,59,5,20,227,59,109,220,226,59,190,164,226,59,247,108,226,59,24,53,226,59,35,
253,225,59,22,197,225,59,241,140,225,59,181,84,225,59,98,28,225,59,248,227,224,59,119,171,224,59,222,114,224,59,46,58,224,59,103,1,224,59,137,200,223,59,147,143,223,59,135,86,223,59,99,29,223,59,41,228,222,59,215,170,222,59,111,113,222,59,239,55,222,59,89,254,221,59,171,196,221,59,231,138,221,59,12,81,221,59,26,23,221,59,17,221,220,59,242,162,220,59,187,104,220,59,110,46,220,59,11,244,219,59,144,185,219,59,255,126,219,59,87,68,219,59,153,9,219,59,196,206,218,59,216,147,218,59,214,88,218,59,190,29,
218,59,143,226,217,59,73,167,217,59,237,107,217,59,123,48,217,59,242,244,216,59,83,185,216,59,158,125,216,59,210,65,216,59,240,5,216,59,248,201,215,59,233,141,215,59,196,81,215,59,138,21,215,59,57,217,214,59,210,156,214,59,84,96,214,59,193,35,214,59,24,231,213,59,88,170,213,59,131,109,213,59,152,48,213,59,151,243,212,59,127,182,212,59,82,121,212,59,16,60,212,59,183,254,211,59,72,193,211,59,196,131,211,59,42,70,211,59,122,8,211,59,181,202,210,59,218,140,210,59,233,78,210,59,226,16,210,59,198,210,209,
59,149,148,209,59,78,86,209,59,241,23,209,59,127,217,208,59,248,154,208,59,91,92,208,59,168,29,208,59,225,222,207,59,3,160,207,59,17,97,207,59,9,34,207,59,236,226,206,59,186,163,206,59,115,100,206,59,22,37,206,59,164,229,205,59,29,166,205,59,129,102,205,59,208,38,205,59,10,231,204,59,47,167,204,59,63,103,204,59,58,39,204,59,32,231,203,59,241,166,203,59,173,102,203,59,84,38,203,59,231,229,202,59,101,165,202,59,206,100,202,59,34,36,202,59,97,227,201,59,140,162,201,59,162,97,201,59,164,32,201,59,145,
223,200,59,105,158,200,59,45,93,200,59,220,27,200,59,119,218,199,59,253,152,199,59,111,87,199,59,204,21,199,59,21,212,198,59,74,146,198,59,107,80,198,59,119,14,198,59,111,204,197,59,82,138,197,59,34,72,197,59,221,5,197,59,132,195,196,59,23,129,196,59,150,62,196,59,1,252,195,59,87,185,195,59,154,118,195,59,201,51,195,59,228,240,194,59,235,173,194,59,222,106,194,59,189,39,194,59,136,228,193,59,64,161,193,59,227,93,193,59,115,26,193,59,240,214,192,59,88,147,192,59,173,79,192,59,239,11,192,59,28,200,
191,59,54,132,191,59,61,64,191,59,48,252,190,59,16,184,190,59,220,115,190,59,148,47,190,59,58,235,189,59,204,166,189,59,74,98,189,59,182,29,189,59,14,217,188,59,82,148,188,59,132,79,188,59,162,10,188,59,173,197,187,59,165,128,187,59,138,59,187,59,92,246,186,59,27,177,186,59,199,107,186,59,96,38,186,59,230,224,185,59,89,155,185,59,185,85,185,59,6,16,185,59,64,202,184,59,104,132,184,59,125,62,184,59,127,248,183,59,110,178,183,59,75,108,183,59,20,38,183,59,204,223,182,59,113,153,182,59,3,83,182,59,130,
12,182,59,240,197,181,59,74,127,181,59,147,56,181,59,200,241,180,59,236,170,180,59,253,99,180,59,252,28,180,59,232,213,179,59,194,142,179,59,138,71,179,59,64,0,179,59,228,184,178,59,117,113,178,59,245,41,178,59,98,226,177,59,189,154,177,59,6,83,177,59,62,11,177,59,99,195,176,59,118,123,176,59,120,51,176,59,103,235,175,59,69,163,175,59,17,91,175,59,203,18,175,59,116,202,174,59,10,130,174,59,143,57,174,59,3,241,173,59,101,168,173,59,181,95,173,59,244,22,173,59,33,206,172,59,60,133,172,59,71,60,172,
59,63,243,171,59,39,170,171,59,253,96,171,59,193,23,171,59,117,206,170,59,23,133,170,59,168,59,170,59,39,242,169,59,150,168,169,59,243,94,169,59,63,21,169,59,122,203,168,59,164,129,168,59,189,55,168,59,197,237,167,59,189,163,167,59,163,89,167,59,120,15,167,59,60,197,166,59,240,122,166,59,147,48,166,59,37,230,165,59,166,155,165,59,23,81,165,59,118,6,165,59,198,187,164,59,4,113,164,59,50,38,164,59,80,219,163,59,93,144,163,59,89,69,163,59,69,250,162,59,33,175,162,59,236,99,162,59,167,24,162,59,82,205,
161,59,236,129,161,59,118,54,161,59,240,234,160,59,90,159,160,59,179,83,160,59,252,7,160,59,54,188,159,59,95,112,159,59,120,36,159,59,129,216,158,59,122,140,158,59,99,64,158,59,61,244,157,59,6,168,157,59,192,91,157,59,106,15,157,59,4,195,156,59,142,118,156,59,9,42,156,59,116,221,155,59,207,144,155,59,27,68,155,59,87,247,154,59,131,170,154,59,160,93,154,59,174,16,154,59,172,195,153,59,155,118,153,59,122,41,153,59,74,220,152,59,11,143,152,59,188,65,152,59,94,244,151,59,241,166,151,59,117,89,151,59,
233,11,151,59,79,190,150,59,165,112,150,59,237,34,150,59,37,213,149,59,78,135,149,59,105,57,149,59,116,235,148,59,113,157,148,59,94,79,148,59,61,1,148,59,13,179,147,59,207,100,147,59,129,22,147,59,37,200,146,59,186,121,146,59,65,43,146,59,185,220,145,59,35,142,145,59,126,63,145,59,202,240,144,59,8,162,144,59,56,83,144,59,89,4,144,59,108,181,143,59,113,102,143,59,103,23,143,59,79,200,142,59,41,121,142,59,245,41,142,59,178,218,141,59,98,139,141,59,3,60,141,59,150,236,140,59,27,157,140,59,147,77,140,
59,252,253,139,59,87,174,139,59,165,94,139,59,228,14,139,59,22,191,138,59,58,111,138,59,81,31,138,59,89,207,137,59,84,127,137,59,65,47,137,59,33,223,136,59,243,142,136,59,184,62,136,59,111,238,135,59,24,158,135,59,180,77,135,59,67,253,134,59,196,172,134,59,56,92,134,59,159,11,134,59,249,186,133,59,69,106,133,59,132,25,133,59,182,200,132,59,218,119,132,59,242,38,132,59,252,213,131,59,250,132,131,59,234,51,131,59,206,226,130,59,164,145,130,59,110,64,130,59,43,239,129,59,219,157,129,59,126,76,129,59,
21,251,128,59,159,169,128,59,28,88,128,59,140,6,128,59,224,105,127,59,142,198,126,59,35,35,126,59,160,127,125,59,3,220,124,59,78,56,124,59,127,148,123,59,152,240,122,59,152,76,122,59,128,168,121,59,79,4,121,59,6,96,120,59,164,187,119,59,42,23,119,59,151,114,118,59,237,205,117,59,42,41,117,59,79,132,116,59,92,223,115,59,82,58,115,59,47,149,114,59,245,239,113,59,163,74,113,59,57,165,112,59,184,255,111,59,31,90,111,59,111,180,110,59,167,14,110,59,201,104,109,59,211,194,108,59,197,28,108,59,161,118,107,
59,102,208,106,59,20,42,106,59,171,131,105,59,43,221,104,59,148,54,104,59,231,143,103,59,35,233,102,59,73,66,102,59,88,155,101,59,81,244,100,59,51,77,100,59,0,166,99,59,182,254,98,59,86,87,98,59,224,175,97,59,84,8,97,59,178,96,96,59,251,184,95,59,45,17,95,59,74,105,94,59,82,193,93,59,67,25,93,59,32,113,92,59,231,200,91,59,153,32,91,59,53,120,90,59,188,207,89,59,47,39,89,59,140,126,88,59,212,213,87,59,7,45,87,59,38,132,86,59,48,219,85,59,37,50,85,59,5,137,84,59,209,223,83,59,137,54,83,59,44,141,82,
59,187,227,81,59,53,58,81,59,156,144,80,59,238,230,79,59,44,61,79,59,86,147,78,59,109,233,77,59,111,63,77,59,94,149,76,59,57,235,75,59,1,65,75,59,181,150,74,59,86,236,73,59,227,65,73,59,93,151,72,59,195,236,71,59,23,66,71,59,87,151,70,59,133,236,69,59,159,65,69,59,167,150,68,59,155,235,67,59,125,64,67,59,77,149,66,59,9,234,65,59,179,62,65,59,75,147,64,59,209,231,63,59,68,60,63,59,164,144,62,59,243,228,61,59,48,57,61,59,90,141,60,59,115,225,59,59,122,53,59,59,111,137,58,59,82,221,57,59,35,49,57,59,
227,132,56,59,146,216,55,59,47,44,55,59,187,127,54,59,53,211,53,59,158,38,53,59,246,121,52,59,61,205,51,59,115,32,51,59,152,115,50,59,172,198,49,59,175,25,49,59,162,108,48,59,132,191,47,59,86,18,47,59,23,101,46,59,199,183,45,59,103,10,45,59,247,92,44,59,119,175,43,59,230,1,43,59,70,84,42,59,150,166,41,59,213,248,40,59,5,75,40,59,37,157,39,59,53,239,38,59,54,65,38,59,39,147,37,59,9,229,36,59,219,54,36,59,158,136,35,59,82,218,34,59,247,43,34,59,140,125,33,59,19,207,32,59,138,32,32,59,243,113,31,59,
76,195,30,59,151,20,30,59,212,101,29,59,1,183,28,59,33,8,28,59,50,89,27,59,52,170,26,59,40,251,25,59,14,76,25,59,230,156,24,59,175,237,23,59,107,62,23,59,25,143,22,59,185,223,21,59,75,48,21,59,207,128,20,59,70,209,19,59,175,33,19,59,11,114,18,59,89,194,17,59,154,18,17,59,206,98,16,59,244,178,15,59,14,3,15,59,26,83,14,59,25,163,13,59,12,243,12,59,241,66,12,59,202,146,11,59,150,226,10,59,86,50,10,59,9,130,9,59,176,209,8,59,74,33,8,59,216,112,7,59,89,192,6,59,207,15,6,59,56,95,5,59,150,174,4,59,231,
253,3,59,45,77,3,59,103,156,2,59,149,235,1,59,183,58,1,59,206,137,0,59,179,177,255,58,179,79,254,58,156,237,252,58,111,139,251,58,43,41,250,58,209,198,248,58,97,100,247,58,219,1,246,58,64,159,244,58,142,60,243,58,199,217,241,58,235,118,240,58,249,19,239,58,243,176,237,58,215,77,236,58,167,234,234,58,98,135,233,58,9,36,232,58,155,192,230,58,26,93,229,58,132,249,227,58,218,149,226,58,29,50,225,58,76,206,223,58,103,106,222,58,112,6,221,58,101,162,219,58,71,62,218,58,22,218,216,58,211,117,215,58,125,
17,214,58,21,173,212,58,155,72,211,58,14,228,209,58,112,127,208,58,191,26,207,58,254,181,205,58,42,81,204,58,70,236,202,58,80,135,201,58,73,34,200,58,49,189,198,58,9,88,197,58,207,242,195,58,134,141,194,58,44,40,193,58,194,194,191,58,72,93,190,58,190,247,188,58,37,146,187,58,124,44,186,58,195,198,184,58,251,96,183,58,37,251,181,58,63,149,180,58,74,47,179,58,71,201,177,58,53,99,176,58,21,253,174,58,231,150,173,58,171,48,172,58,97,202,170,58,9,100,169,58,163,253,167,58,48,151,166,58,176,48,165,58,34,
202,163,58,136,99,162,58,224,252,160,58,44,150,159,58,108,47,158,58,159,200,156,58,198,97,155,58,224,250,153,58,239,147,152,58,242,44,151,58,233,197,149,58,213,94,148,58,181,247,146,58,139,144,145,58,85,41,144,58,20,194,142,58,201,90,141,58,114,243,139,58,18,140,138,58,167,36,137,58,50,189,135,58,179,85,134,58,42,238,132,58,151,134,131,58,251,30,130,58,86,183,128,58,78,159,126,58,222,207,123,58,92,0,121,58,201,48,118,58,36,97,115,58,110,145,112,58,168,193,109,58,209,241,106,58,234,33,104,58,243,81,
101,58,237,129,98,58,216,177,95,58,179,225,92,58,128,17,90,58,63,65,87,58,240,112,84,58,147,160,81,58,40,208,78,58,177,255,75,58,44,47,73,58,156,94,70,58,255,141,67,58,86,189,64,58,161,236,61,58,225,27,59,58,22,75,56,58,65,122,53,58,97,169,50,58,118,216,47,58,130,7,45,58,133,54,42,58,126,101,39,58,111,148,36,58,87,195,33,58,54,242,30,58,14,33,28,58,221,79,25,58,166,126,22,58,103,173,19,58,34,220,16,58,214,10,14,58,131,57,11,58,43,104,8,58,205,150,5,58,106,197,2,58,5,232,255,57,43,69,250,57,73,162,
244,57,94,255,238,57,108,92,233,57,115,185,227,57,116,22,222,57,110,115,216,57,100,208,210,57,84,45,205,57,65,138,199,57,43,231,193,57,17,68,188,57,246,160,182,57,216,253,176,57,186,90,171,57,155,183,165,57,125,20,160,57,95,113,154,57,67,206,148,57,41,43,143,57,17,136,137,57,253,228,131,57,216,131,124,57,191,61,113,57,177,247,101,57,173,177,90,57,182,107,79,57,204,37,68,57,242,223,56,57,39,154,45,57,109,84,34,57,198,14,23,57,50,201,11,57,180,131,0,57,149,124,234,56,242,241,211,56,127,103,189,56,64,
221,166,56,54,83,144,56,199,146,115,56,151,127,70,56,225,108,25,56,82,181,216,55,208,35,125,55,54,190,145,54,207,198,214,182,210,209,143,183,196,240,233,183,64,7,34,184,127,21,79,184,24,35,124,184,4,152,148,184,38,30,171,184,237,163,193,184,89,41,216,184,103,174,238,184,138,153,2,185,175,219,13,185,161,29,25,185,96,95,36,185,233,160,47,185,60,226,58,185,88,35,70,185,59,100,81,185,228,164,92,185,82,229,103,185,131,37,115,185,119,101,126,185,150,210,132,185,81,114,138,185,236,17,144,185,101,177,149,
185,188,80,155,185,242,239,160,185,4,143,166,185,243,45,172,185,189,204,177,185,99,107,183,185,228,9,189,185,63,168,194,185,115,70,200,185,128,228,205,185,102,130,211,185,35,32,217,185,183,189,222,185,34,91,228,185,99,248,233,185,121,149,239,185,100,50,245,185,36,207,250,185,219,53,0,186,14,4,3,186,42,210,5,186,47,160,8,186,28,110,11,186,242,59,14,186,176,9,17,186,85,215,19,186,226,164,22,186,86,114,25,186,177,63,28,186,242,12,31,186,26,218,33,186,39,167,36,186,26,116,39,186,242,64,42,186,176,13,
45,186,82,218,47,186,216,166,50,186,67,115,53,186,146,63,56,186,196,11,59,186,217,215,61,186,209,163,64,186,172,111,67,186,105,59,70,186,9,7,73,186,138,210,75,186,236,157,78,186,48,105,81,186,85,52,84,186,90,255,86,186,63,202,89,186,5,149,92,186,170,95,95,186,46,42,98,186,146,244,100,186,212,190,103,186,245,136,106,186,245,82,109,186,210,28,112,186,140,230,114,186,37,176,117,186,154,121,120,186,235,66,123,186,26,12,126,186,146,106,128,186,5,207,129,186,102,51,131,186,181,151,132,186,241,251,133,186,
26,96,135,186,49,196,136,186,52,40,138,186,37,140,139,186,2,240,140,186,204,83,142,186,130,183,143,186,37,27,145,186,180,126,146,186,47,226,147,186,149,69,149,186,232,168,150,186,38,12,152,186,79,111,153,186,100,210,154,186,100,53,156,186,79,152,157,186,36,251,158,186,229,93,160,186,144,192,161,186,37,35,163,186,165,133,164,186,14,232,165,186,98,74,167,186,159,172,168,186,199,14,170,186,215,112,171,186,209,210,172,186,181,52,174,186,129,150,175,186,54,248,176,186,212,89,178,186,91,187,179,186,202,
28,181,186,34,126,182,186,98,223,183,186,138,64,185,186,154,161,186,186,145,2,188,186,112,99,189,186,55,196,190,186,229,36,192,186,123,133,193,186,247,229,194,186,90,70,196,186,164,166,197,186,213,6,199,186,236,102,200,186,233,198,201,186,205,38,203,186,150,134,204,186,70,230,205,186,219,69,207,186,86,165,208,186,182,4,210,186,251,99,211,186,38,195,212,186,54,34,214,186,43,129,215,186,4,224,216,186,194,62,218,186,100,157,219,186,235,251,220,186,86,90,222,186,164,184,223,186,215,22,225,186,238,116,
226,186,232,210,227,186,197,48,229,186,134,142,230,186,41,236,231,186,176,73,233,186,26,167,234,186,102,4,236,186,149,97,237,186,167,190,238,186,154,27,240,186,112,120,241,186,40,213,242,186,194,49,244,186,61,142,245,186,154,234,246,186,216,70,248,186,248,162,249,186,249,254,250,186,218,90,252,186,157,182,253,186,64,18,255,186,226,54,0,187,148,228,0,187,54,146,1,187,201,63,2,187,75,237,2,187,189,154,3,187,31,72,4,187,113,245,4,187,179,162,5,187,228,79,6,187,5,253,6,187,21,170,7,187,21,87,8,187,4,
4,9,187,226,176,9,187,176,93,10,187,108,10,11,187,24,183,11,187,179,99,12,187,60,16,13,187,181,188,13,187,28,105,14,187,114,21,15,187,183,193,15,187,234,109,16,187,12,26,17,187,28,198,17,187,27,114,18,187,8,30,19,187,227,201,19,187,172,117,20,187,99,33,21,187,8,205,21,187,156,120,22,187,29,36,23,187,140,207,23,187,232,122,24,187,50,38,25,187,106,209,25,187,144,124,26,187,162,39,27,187,163,210,27,187,144,125,28,187,107,40,29,187,51,211,29,187,232,125,30,187,138,40,31,187,25,211,31,187,148,125,32,187,
253,39,33,187,82,210,33,187,148,124,34,187,195,38,35,187,222,208,35,187,230,122,36,187,218,36,37,187,186,206,37,187,135,120,38,187,64,34,39,187,229,203,39,187,118,117,40,187,243,30,41,187,92,200,41,187,176,113,42,187,241,26,43,187,29,196,43,187,53,109,44,187,56,22,45,187,39,191,45,187,1,104,46,187,199,16,47,187,120,185,47,187,20,98,48,187,155,10,49,187,13,179,49,187,107,91,50,187,179,3,51,187,230,171,51,187,4,84,52,187,13,252,52,187,0,164,53,187,222,75,54,187,167,243,54,187,90,155,55,187,247,66,56,
187,127,234,56,187,240,145,57,187,76,57,58,187,147,224,58,187,195,135,59,187,221,46,60,187,225,213,60,187,207,124,61,187,167,35,62,187,104,202,62,187,19,113,63,187,168,23,64,187,38,190,64,187,142,100,65,187,223,10,66,187,25,177,66,187,60,87,67,187,73,253,67,187,62,163,68,187,29,73,69,187,229,238,69,187,149,148,70,187,47,58,71,187,177,223,71,187,28,133,72,187,111,42,73,187,171,207,73,187,207,116,74,187,220,25,75,187,209,190,75,187,175,99,76,187,117,8,77,187,34,173,77,187,184,81,78,187,54,246,78,187,
156,154,79,187,234,62,80,187,31,227,80,187,61,135,81,187,66,43,82,187,46,207,82,187,2,115,83,187,190,22,84,187,97,186,84,187,235,93,85,187,93,1,86,187,181,164,86,187,245,71,87,187,28,235,87,187,42,142,88,187,31,49,89,187,251,211,89,187,190,118,90,187,103,25,91,187,247,187,91,187,110,94,92,187,203,0,93,187,15,163,93,187,57,69,94,187,73,231,94,187,64,137,95,187,29,43,96,187,224,204,96,187,137,110,97,187,24,16,98,187,141,177,98,187,232,82,99,187,41,244,99,187,79,149,100,187,91,54,101,187,77,215,101,
187,36,120,102,187,225,24,103,187,131,185,103,187,11,90,104,187,120,250,104,187,202,154,105,187,1,59,106,187,30,219,106,187,31,123,107,187,5,27,108,187,209,186,108,187,129,90,109,187,22,250,109,187,143,153,110,187,237,56,111,187,48,216,111,187,87,119,112,187,99,22,113,187,83,181,113,187,40,84,114,187,224,242,114,187,125,145,115,187,254,47,116,187,99,206,116,187,172,108,117,187,217,10,118,187,234,168,118,187,222,70,119,187,182,228,119,187,114,130,120,187,18,32,121,187,149,189,121,187,252,90,122,187,
70,248,122,187,115,149,123,187,132,50,124,187,119,207,124,187,78,108,125,187,8,9,126,187,166,165,126,187,38,66,127,187,137,222,127,187,103,61,128,187,124,139,128,187,129,217,128,187,120,39,129,187,96,117,129,187,58,195,129,187,5,17,130,187,193,94,130,187,110,172,130,187,12,250,130,187,155,71,131,187,28,149,131,187,141,226,131,187,240,47,132,187,67,125,132,187,135,202,132,187,189,23,133,187,227,100,133,187,250,177,133,187,2,255,133,187,250,75,134,187,228,152,134,187,190,229,134,187,137,50,135,187,
68,127,135,187,240,203,135,187,141,24,136,187,26,101,136,187,152,177,136,187,6,254,136,187,101,74,137,187,180,150,137,187,244,226,137,187,36,47,138,187,68,123,138,187,85,199,138,187,86,19,139,187,71,95,139,187,41,171,139,187,251,246,139,187,188,66,140,187,110,142,140,187,16,218,140,187,163,37,141,187,37,113,141,187,151,188,141,187,249,7,142,187,75,83,142,187,142,158,142,187,192,233,142,187,225,52,143,187,243,127,143,187,244,202,143,187,230,21,144,187,199,96,144,187,151,171,144,187,88,246,144,187,
8,65,145,187,167,139,145,187,55,214,145,187,181,32,146,187,36,107,146,187,129,181,146,187,207,255,146,187,11,74,147,187,56,148,147,187,83,222,147,187,94,40,148,187,88,114,148,187,65,188,148,187,26,6,149,187,226,79,149,187,153,153,149,187,64,227,149,187,213,44,150,187,89,118,150,187,205,191,150,187,48,9,151,187,129,82,151,187,194,155,151,187,242,228,151,187,16,46,152,187,30,119,152,187,26,192,152,187,5,9,153,187,223,81,153,187,168,154,153,187,96,227,153,187,6,44,154,187,155,116,154,187,30,189,154,
187,145,5,155,187,241,77,155,187,65,150,155,187,127,222,155,187,171,38,156,187,198,110,156,187,208,182,156,187,200,254,156,187,174,70,157,187,131,142,157,187,70,214,157,187,247,29,158,187,150,101,158,187,36,173,158,187,160,244,158,187,11,60,159,187,99,131,159,187,170,202,159,187,222,17,160,187,1,89,160,187,18,160,160,187,17,231,160,187,254,45,161,187,217,116,161,187,161,187,161,187,88,2,162,187,253,72,162,187,143,143,162,187,15,214,162,187,125,28,163,187,217,98,163,187,35,169,163,187,90,239,163,187,
127,53,164,187,146,123,164,187,146,193,164,187,128,7,165,187,91,77,165,187,36,147,165,187,219,216,165,187,127,30,166,187,16,100,166,187,143,169,166,187,251,238,166,187,85,52,167,187,156,121,167,187,208,190,167,187,242,3,168,187,1,73,168,187,253,141,168,187,230,210,168,187,189,23,169,187,128,92,169,187,49,161,169,187,207,229,169,187,90,42,170,187,210,110,170,187,55,179,170,187,137,247,170,187,200,59,171,187,244,127,171,187,12,196,171,187,18,8,172,187,5,76,172,187,228,143,172,187,176,211,172,187,105,
23,173,187,15,91,173,187,161,158,173,187,32,226,173,187,140,37,174,187,228,104,174,187,41,172,174,187,91,239,174,187,121,50,175,187,131,117,175,187,122,184,175,187,94,251,175,187,46,62,176,187,234,128,176,187,147,195,176,187,40,6,177,187,170,72,177,187,24,139,177,187,114,205,177,187,184,15,178,187,235,81,178,187,10,148,178,187,21,214,178,187,12,24,179,187,239,89,179,187,190,155,179,187,122,221,179,187,33,31,180,187,181,96,180,187,52,162,180,187,160,227,180,187,247,36,181,187,58,102,181,187,106,167,
181,187,133,232,181,187,140,41,182,187,126,106,182,187,93,171,182,187,39,236,182,187,221,44,183,187,127,109,183,187,12,174,183,187,133,238,183,187,234,46,184,187,58,111,184,187,118,175,184,187,157,239,184,187,176,47,185,187,174,111,185,187,152,175,185,187,110,239,185,187,46,47,186,187,218,110,186,187,114,174,186,187,245,237,186,187,99,45,187,187,188,108,187,187,1,172,187,187,49,235,187,187,76,42,188,187,83,105,188,187,68,168,188,187,33,231,188,187,233,37,189,187,156,100,189,187,58,163,189,187,195,
225,189,187,55,32,190,187,150,94,190,187,224,156,190,187,21,219,190,187,53,25,191,187,64,87,191,187,53,149,191,187,22,211,191,187,225,16,192,187,151,78,192,187,56,140,192,187,196,201,192,187,58,7,193,187,155,68,193,187,231,129,193,187,29,191,193,187,62,252,193,187,74,57,194,187,64,118,194,187,32,179,194,187,236,239,194,187,161,44,195,187,66,105,195,187,204,165,195,187,65,226,195,187,161,30,196,187,235,90,196,187,31,151,196,187,61,211,196,187,70,15,197,187,58,75,197,187,23,135,197,187,223,194,197,
187,144,254,197,187,45,58,198,187,179,117,198,187,35,177,198,187,126,236,198,187,194,39,199,187,241,98,199,187,10,158,199,187,12,217,199,187,249,19,200,187,208,78,200,187,144,137,200,187,59,196,200,187,208,254,200,187,78,57,201,187,182,115,201,187,8,174,201,187,68,232,201,187,106,34,202,187,121,92,202,187,115,150,202,187,85,208,202,187,34,10,203,187,216,67,203,187,120,125,203,187,2,183,203,187,117,240,203,187,210,41,204,187,24,99,204,187,72,156,204,187,98,213,204,187,101,14,205,187,81,71,205,187,
39,128,205,187,230,184,205,187,143,241,205,187,33,42,206,187,156,98,206,187,1,155,206,187,79,211,206,187,134,11,207,187,167,67,207,187,177,123,207,187,164,179,207,187,128,235,207,187,69,35,208,187,244,90,208,187],"i8",4,y.a+358400);
Q([140,146,208,187,13,202,208,187,119,1,209,187,202,56,209,187,6,112,209,187,43,167,209,187,57,222,209,187,48,21,210,187,16,76,210,187,217,130,210,187,139,185,210,187,38,240,210,187,170,38,211,187,22,93,211,187,108,147,211,187,170,201,211,187,209,255,211,187,224,53,212,187,217,107,212,187,186,161,212,187,132,215,212,187,55,13,213,187,210,66,213,187,86,120,213,187,194,173,213,187,24,227,213,187,85,24,214,187,123,77,214,187,138,130,214,187,130,183,214,187,97,236,214,187,42,33,215,187,218,85,215,187,
116,138,215,187,245,190,215,187,95,243,215,187,177,39,216,187,236,91,216,187,15,144,216,187,26,196,216,187,14,248,216,187,234,43,217,187,174,95,217,187,90,147,217,187,239,198,217,187,108,250,217,187,208,45,218,187,29,97,218,187,83,148,218,187,112,199,218,187,117,250,218,187,99,45,219,187,56,96,219,187,246,146,219,187,155,197,219,187,40,248,219,187,158,42,220,187,251,92,220,187,65,143,220,187,110,193,220,187,131,243,220,187,128,37,221,187,101,87,221,187,49,137,221,187,230,186,221,187,130,236,221,187,
6,30,222,187,114,79,222,187,197,128,222,187,0,178,222,187,35,227,222,187,46,20,223,187,32,69,223,187,250,117,223,187,187,166,223,187,100,215,223,187,245,7,224,187,109,56,224,187,204,104,224,187,20,153,224,187,66,201,224,187,89,249,224,187,86,41,225,187,59,89,225,187,8,137,225,187,188,184,225,187,87,232,225,187,218,23,226,187,68,71,226,187,149,118,226,187,206,165,226,187,238,212,226,187,245,3,227,187,228,50,227,187,185,97,227,187,118,144,227,187,26,191,227,187,166,237,227,187,24,28,228,187,114,74,
228,187,179,120,228,187,219,166,228,187,234,212,228,187,224,2,229,187,189,48,229,187,129,94,229,187,44,140,229,187,190,185,229,187,56,231,229,187,152,20,230,187,223,65,230,187,13,111,230,187,34,156,230,187,30,201,230,187,0,246,230,187,202,34,231,187,123,79,231,187,18,124,231,187,144,168,231,187,245,212,231,187,64,1,232,187,115,45,232,187,140,89,232,187,140,133,232,187,115,177,232,187,64,221,232,187,244,8,233,187,142,52,233,187,16,96,233,187,120,139,233,187,198,182,233,187,251,225,233,187,23,13,234,
187,25,56,234,187,2,99,234,187,209,141,234,187,135,184,234,187,35,227,234,187,166,13,235,187,15,56,235,187,95,98,235,187,149,140,235,187,177,182,235,187,180,224,235,187,158,10,236,187,109,52,236,187,35,94,236,187,192,135,236,187,66,177,236,187,171,218,236,187,250,3,237,187,48,45,237,187,75,86,237,187,77,127,237,187,53,168,237,187,4,209,237,187,184,249,237,187,83,34,238,187,212,74,238,187,59,115,238,187,136,155,238,187,187,195,238,187,212,235,238,187,212,19,239,187,185,59,239,187,133,99,239,187,54,
139,239,187,206,178,239,187,75,218,239,187,175,1,240,187,248,40,240,187,40,80,240,187,61,119,240,187,56,158,240,187,26,197,240,187,225,235,240,187,142,18,241,187,33,57,241,187,153,95,241,187,248,133,241,187,60,172,241,187,102,210,241,187,118,248,241,187,108,30,242,187,71,68,242,187,9,106,242,187,176,143,242,187,60,181,242,187,175,218,242,187,7,0,243,187,69,37,243,187,104,74,243,187,113,111,243,187,96,148,243,187,52,185,243,187,238,221,243,187,142,2,244,187,19,39,244,187,125,75,244,187,205,111,244,
187,3,148,244,187,30,184,244,187,31,220,244,187,6,0,245,187,209,35,245,187,130,71,245,187,25,107,245,187,149,142,245,187,247,177,245,187,62,213,245,187,106,248,245,187,124,27,246,187,115,62,246,187,79,97,246,187,17,132,246,187,184,166,246,187,69,201,246,187,183,235,246,187,14,14,247,187,74,48,247,187,108,82,247,187,114,116,247,187,95,150,247,187,48,184,247,187,230,217,247,187,130,251,247,187,3,29,248,187,105,62,248,187,181,95,248,187,229,128,248,187,251,161,248,187,245,194,248,187,213,227,248,187,
154,4,249,187,68,37,249,187,211,69,249,187,71,102,249,187,161,134,249,187,223,166,249,187,2,199,249,187,11,231,249,187,248,6,250,187,202,38,250,187,130,70,250,187,30,102,250,187,159,133,250,187,5,165,250,187,80,196,250,187,128,227,250,187,149,2,251,187,143,33,251,187,110,64,251,187,50,95,251,187,218,125,251,187,103,156,251,187,218,186,251,187,49,217,251,187,109,247,251,187,141,21,252,187,147,51,252,187,125,81,252,187,76,111,252,187,0,141,252,187,152,170,252,187,21,200,252,187,119,229,252,187,190,
2,253,187,234,31,253,187,250,60,253,187,238,89,253,187,200,118,253,187,134,147,253,187,41,176,253,187,176,204,253,187,29,233,253,187,109,5,254,187,163,33,254,187,189,61,254,187,187,89,254,187,158,117,254,187,102,145,254,187,18,173,254,187,163,200,254,187,24,228,254,187,114,255,254,187,177,26,255,187,211,53,255,187,219,80,255,187,199,107,255,187,151,134,255,187,76,161,255,187,229,187,255,187,99,214,255,187,197,240,255,187,134,5,0,188,156,18,0,188,163,31,0,188,157,44,0,188,137,57,0,188,104,70,0,188,
56,83,0,188,251,95,0,188,176,108,0,188,87,121,0,188,240,133,0,188,123,146,0,188,249,158,0,188,105,171,0,188,203,183,0,188,31,196,0,188,101,208,0,188,157,220,0,188,200,232,0,188,228,244,0,188,243,0,1,188,244,12,1,188,230,24,1,188,203,36,1,188,163,48,1,188,108,60,1,188,39,72,1,188,213,83,1,188,116,95,1,188,6,107,1,188,137,118,1,188,255,129,1,188,103,141,1,188,193,152,1,188,13,164,1,188,75,175,1,188,123,186,1,188,157,197,1,188,178,208,1,188,184,219,1,188,176,230,1,188,154,241,1,188,119,252,1,188,69,
7,2,188,6,18,2,188,184,28,2,188,93,39,2,188,243,49,2,188,124,60,2,188,246,70,2,188,99,81,2,188,193,91,2,188,18,102,2,188,84,112,2,188,137,122,2,188,175,132,2,188,200,142,2,188,210,152,2,188,206,162,2,188,189,172,2,188,157,182,2,188,112,192,2,188,52,202,2,188,234,211,2,188,146,221,2,188,44,231,2,188,185,240,2,188,55,250,2,188,167,3,3,188,9,13,3,188,92,22,3,188,162,31,3,188,218,40,3,188,4,50,3,188,31,59,3,188,45,68,3,188,44,77,3,188,29,86,3,188,1,95,3,188,214,103,3,188,157,112,3,188,86,121,3,188,1,
130,3,188,157,138,3,188,44,147,3,188,173,155,3,188,31,164,3,188,131,172,3,188,218,180,3,188,34,189,3,188,92,197,3,188,135,205,3,188,165,213,3,188,181,221,3,188,182,229,3,188,169,237,3,188,142,245,3,188,101,253,3,188,46,5,4,188,233,12,4,188,150,20,4,188,52,28,4,188,196,35,4,188,70,43,4,188,186,50,4,188,32,58,4,188,120,65,4,188,193,72,4,188,252,79,4,188,41,87,4,188,72,94,4,188,89,101,4,188,92,108,4,188,80,115,4,188,54,122,4,188,14,129,4,188,216,135,4,188,148,142,4,188,65,149,4,188,224,155,4,188,113,
162,4,188,244,168,4,188,105,175,4,188,207,181,4,188,40,188,4,188,114,194,4,188,174,200,4,188,219,206,4,188,251,212,4,188,12,219,4,188,15,225,4,188,4,231,4,188,234,236,4,188,194,242,4,188,141,248,4,188,72,254,4,188,246,3,5,188,149,9,5,188,39,15,5,188,170,20,5,188,30,26,5,188,133,31,5,188,221,36,5,188,39,42,5,188,99,47,5,188,145,52,5,188,176,57,5,188,193,62,5,188,196,67,5,188,184,72,5,188,159,77,5,188,119,82,5,188,65,87,5,188,252,91,5,188,169,96,5,188,72,101,5,188,217,105,5,188,92,110,5,188,208,114,
5,188,54,119,5,188,142,123,5,188,215,127,5,188,19,132,5,188,64,136,5,188,94,140,5,188,111,144,5,188,113,148,5,188,101,152,5,188,75,156,5,188,34,160,5,188,235,163,5,188,166,167,5,188,83,171,5,188,241,174,5,188,129,178,5,188,3,182,5,188,118,185,5,188,219,188,5,188,50,192,5,188,123,195,5,188,181,198,5,188,226,201,5,188,255,204,5,188,15,208,5,188,16,211,5,188,3,214,5,188,232,216,5,188,190,219,5,188,134,222,5,188,64,225,5,188,236,227,5,188,137,230,5,188,24,233,5,188,153,235,5,188,11,238,5,188,111,240,
5,188,197,242,5,188,13,245,5,188,70,247,5,188,113,249,5,188,142,251,5,188,156,253,5,188,156,255,5,188,142,1,6,188,114,3,6,188,71,5,6,188,14,7,6,188,199,8,6,188,113,10,6,188,13,12,6,188,155,13,6,188,27,15,6,188,140,16,6,188,239,17,6,188,68,19,6,188,138,20,6,188,194,21,6,188,236,22,6,188,8,24,6,188,21,25,6,188,20,26,6,188,4,27,6,188,231,27,6,188,187,28,6,188,129,29,6,188,56,30,6,188,226,30,6,188,125,31,6,188,9,32,6,188,136,32,6,188,248,32,6,188,90,33,6,188,173,33,6,188,243,33,6,188,42,34,6,188,82,34,
6,188,109,34,6,188,121,34,6,188,119,34,6,188,102,34,6,188,72,34,6,188,27,34,6,188,224,33,6,188,150,33,6,188,62,33,6,188,216,32,6,188,100,32,6,188,225,31,6,188,81,31,6,188,178,30,6,188,4,30,6,188,73,29,6,188,127,28,6,188,166,27,6,188,192,26,6,188,203,25,6,188,200,24,6,188,183,23,6,188,152,22,6,188,106,21,6,188,46,20,6,188,228,18,6,188,139,17,6,188,36,16,6,188,175,14,6,188,44,13,6,188,155,11,6,188,251,9,6,188,77,8,6,188,145,6,6,188,198,4,6,188,237,2,6,188,6,1,6,188,17,255,5,188,14,253,5,188,252,250,
5,188,220,248,5,188,174,246,5,188,113,244,5,188,39,242,5,188,206,239,5,188,103,237,5,188,242,234,5,188,110,232,5,188,220,229,5,188,60,227,5,188,142,224,5,188,210,221,5,188,7,219,5,188,46,216,5,188,71,213,5,188,82,210,5,188,79,207,5,188,61,204,5,188,29,201,5,188,239,197,5,188,179,194,5,188,104,191,5,188,16,188,5,188,169,184,5,188,52,181,5,188,176,177,5,188,31,174,5,188,127,170,5,188,210,166,5,188,22,163,5,188,75,159,5,188,115,155,5,188,141,151,5,188,152,147,5,188,149,143,5,188,132,139,5,188,101,135,
5,188,56,131,5,188,252,126,5,188,178,122,5,188,91,118,5,188,245,113,5,188,129,109,5,188,254,104,5,188,110,100,5,188,207,95,5,188,35,91,5,188,104,86,5,188,159,81,5,188,200,76,5,188,227,71,5,188,239,66,5,188,238,61,5,188,222,56,5,188,193,51,5,188,149,46,5,188,91,41,5,188,19,36,5,188,189,30,5,188,88,25,5,188,230,19,5,188,102,14,5,188,215,8,5,188,59,3,5,188,144,253,4,188,215,247,4,188,16,242,4,188,59,236,4,188,88,230,4,188,103,224,4,188,104,218,4,188,91,212,4,188,63,206,4,188,22,200,4,188,223,193,4,188,
153,187,4,188,70,181,4,188,228,174,4,188,116,168,4,188,247,161,4,188,107,155,4,188,209,148,4,188,41,142,4,188,116,135,4,188,176,128,4,188,222,121,4,188,254,114,4,188,16,108,4,188,20,101,4,188,11,94,4,188,243,86,4,188,205,79,4,188,153,72,4,188,87,65,4,188,7,58,4,188,169,50,4,188,62,43,4,188,196,35,4,188,60,28,4,188,166,20,4,188,3,13,4,188,81,5,4,188,145,253,3,188,196,245,3,188,232,237,3,188,255,229,3,188,7,222,3,188,2,214,3,188,239,205,3,188,205,197,3,188,158,189,3,188,97,181,3,188,22,173,3,188,189,
164,3,188,87,156,3,188,226,147,3,188,95,139,3,188,207,130,3,188,48,122,3,188,132,113,3,188,202,104,3,188,2,96,3,188,44,87,3,188,72,78,3,188,86,69,3,188,87,60,3,188,74,51,3,188,46,42,3,188,5,33,3,188,206,23,3,188,138,14,3,188,55,5,3,188,215,251,2,188,104,242,2,188,236,232,2,188,98,223,2,188,203,213,2,188,37,204,2,188,114,194,2,188,177,184,2,188,226,174,2,188,5,165,2,188,27,155,2,188,34,145,2,188,28,135,2,188,8,125,2,188,231,114,2,188,184,104,2,188,122,94,2,188,48,84,2,188,215,73,2,188,113,63,2,188,
253,52,2,188,123,42,2,188,235,31,2,188,78,21,2,188,163,10,2,188,235,255,1,188,36,245,1,188,80,234,1,188,110,223,1,188,127,212,1,188,130,201,1,188,119,190,1,188,94,179,1,188,56,168,1,188,4,157,1,188,195,145,1,188,116,134,1,188,23,123,1,188,173,111,1,188,53,100,1,188,175,88,1,188,28,77,1,188,123,65,1,188,204,53,1,188,16,42,1,188,70,30,1,188,111,18,1,188,138,6,1,188,151,250,0,188,151,238,0,188,138,226,0,188,110,214,0,188,69,202,0,188,15,190,0,188,203,177,0,188,122,165,0,188,27,153,0,188,174,140,0,188,
52,128,0,188,172,115,0,188,23,103,0,188,117,90,0,188,196,77,0,188,7,65,0,188,60,52,0,188,99,39,0,188,125,26,0,188,137,13,0,188,136,0,0,188,243,230,255,187,187,204,255,187,104,178,255,187,251,151,255,187,114,125,255,187,206,98,255,187,16,72,255,187,55,45,255,187,67,18,255,187,52,247,254,187,10,220,254,187,198,192,254,187,103,165,254,187,237,137,254,187,88,110,254,187,168,82,254,187,222,54,254,187,249,26,254,187,249,254,253,187,223,226,253,187,170,198,253,187,90,170,253,187,240,141,253,187,107,113,
253,187,203,84,253,187,17,56,253,187,60,27,253,187,77,254,252,187,67,225,252,187,30,196,252,187,223,166,252,187,134,137,252,187,18,108,252,187,131,78,252,187,218,48,252,187,22,19,252,187,56,245,251,187,64,215,251,187,45,185,251,187,255,154,251,187,184,124,251,187,85,94,251,187,217,63,251,187,66,33,251,187,145,2,251,187,197,227,250,187,223,196,250,187,223,165,250,187,196,134,250,187,143,103,250,187,64,72,250,187,215,40,250,187,83,9,250,187,181,233,249,187,253,201,249,187,43,170,249,187,63,138,249,
187,56,106,249,187,23,74,249,187,220,41,249,187,135,9,249,187,24,233,248,187,143,200,248,187,236,167,248,187,47,135,248,187,87,102,248,187,102,69,248,187,90,36,248,187,53,3,248,187,245,225,247,187,156,192,247,187,40,159,247,187,155,125,247,187,244,91,247,187,51,58,247,187,88,24,247,187,99,246,246,187,84,212,246,187,43,178,246,187,233,143,246,187,140,109,246,187,22,75,246,187,134,40,246,187,220,5,246,187,25,227,245,187,60,192,245,187,69,157,245,187,52,122,245,187,10,87,245,187,198,51,245,187,104,16,
245,187,241,236,244,187,96,201,244,187,181,165,244,187,241,129,244,187,19,94,244,187,28,58,244,187,11,22,244,187,224,241,243,187,156,205,243,187,63,169,243,187,200,132,243,187,55,96,243,187,141,59,243,187,202,22,243,187,237,241,242,187,247,204,242,187,232,167,242,187,191,130,242,187,124,93,242,187,33,56,242,187,172,18,242,187,30,237,241,187,118,199,241,187,181,161,241,187,219,123,241,187,232,85,241,187,219,47,241,187,182,9,241,187,119,227,240,187,31,189,240,187,173,150,240,187,35,112,240,187,128,
73,240,187,195,34,240,187,237,251,239,187,255,212,239,187,247,173,239,187,214,134,239,187,156,95,239,187,73,56,239,187,222,16,239,187,89,233,238,187,187,193,238,187,4,154,238,187,53,114,238,187,76,74,238,187,75,34,238,187,49,250,237,187,254,209,237,187,178,169,237,187,78,129,237,187,208,88,237,187,58,48,237,187,139,7,237,187,195,222,236,187,227,181,236,187,234,140,236,187,216,99,236,187,174,58,236,187,107,17,236,187,15,232,235,187,155,190,235,187,14,149,235,187,105,107,235,187,171,65,235,187,213,
23,235,187,230,237,234,187,222,195,234,187,190,153,234,187,134,111,234,187,53,69,234,187,204,26,234,187,74,240,233,187,176,197,233,187,254,154,233,187,51,112,233,187,80,69,233,187,85,26,233,187,65,239,232,187,21,196,232,187,209,152,232,187,117,109,232,187,0,66,232,187,116,22,232,187,207,234,231,187,18,191,231,187,61,147,231,187,79,103,231,187,74,59,231,187,44,15,231,187,247,226,230,187,169,182,230,187,68,138,230,187,198,93,230,187,49,49,230,187,131,4,230,187,190,215,229,187,225,170,229,187,236,125,
229,187,222,80,229,187,186,35,229,187,125,246,228,187,40,201,228,187,188,155,228,187,56,110,228,187,156,64,228,187,232,18,228,187,29,229,227,187,58,183,227,187,63,137,227,187,45,91,227,187,3,45,227,187,193,254,226,187,104,208,226,187,247,161,226,187,111,115,226,187,207,68,226,187,24,22,226,187,73,231,225,187,98,184,225,187,101,137,225,187,79,90,225,187,35,43,225,187,223,251,224,187,131,204,224,187,17,157,224,187,135,109,224,187,229,61,224,187,45,14,224,187,93,222,223,187,118,174,223,187,119,126,223,
187,98,78,223,187,53,30,223,187,241,237,222,187,150,189,222,187,36,141,222,187,155,92,222,187,251,43,222,187,67,251,221,187,117,202,221,187,143,153,221,187,147,104,221,187,128,55,221,187,86,6,221,187,20,213,220,187,188,163,220,187,77,114,220,187,199,64,220,187,43,15,220,187,119,221,219,187,173,171,219,187,204,121,219,187,212,71,219,187,198,21,219,187,161,227,218,187,101,177,218,187,18,127,218,187,169,76,218,187,41,26,218,187,147,231,217,187,230,180,217,187,34,130,217,187,72,79,217,187,88,28,217,187,
81,233,216,187,51,182,216,187,255,130,216,187,181,79,216,187,84,28,216,187,221,232,215,187,80,181,215,187,172,129,215,187,242,77,215,187,33,26,215,187,59,230,214,187,62,178,214,187,43,126,214,187,1,74,214,187,194,21,214,187,108,225,213,187,1,173,213,187,127,120,213,187,231,67,213,187,57,15,213,187,117,218,212,187,155,165,212,187,171,112,212,187,165,59,212,187,137,6,212,187,88,209,211,187,16,156,211,187,178,102,211,187,63,49,211,187,182,251,210,187,23,198,210,187,98,144,210,187,152,90,210,187,183,
36,210,187,193,238,209,187,182,184,209,187,148,130,209,187,93,76,209,187,17,22,209,187,175,223,208,187,55,169,208,187,170,114,208,187,7,60,208,187,79,5,208,187,129,206,207,187,158,151,207,187,165,96,207,187,151,41,207,187,116,242,206,187,59,187,206,187,237,131,206,187,138,76,206,187,17,21,206,187,131,221,205,187,224,165,205,187,40,110,205,187,91,54,205,187,120,254,204,187,128,198,204,187,115,142,204,187,81,86,204,187,26,30,204,187,206,229,203,187,109,173,203,187,247,116,203,187,108,60,203,187,204,
3,203,187,23,203,202,187,78,146,202,187,111,89,202,187,124,32,202,187,115,231,201,187,86,174,201,187,36,117,201,187,222,59,201,187,131,2,201,187,19,201,200,187,142,143,200,187,245,85,200,187,71,28,200,187,132,226,199,187,173,168,199,187,194,110,199,187,194,52,199,187,173,250,198,187,132,192,198,187,70,134,198,187,244,75,198,187,142,17,198,187,19,215,197,187,132,156,197,187,225,97,197,187,42,39,197,187,94,236,196,187,126,177,196,187,137,118,196,187,129,59,196,187,100,0,196,187,51,197,195,187,238,137,
195,187,149,78,195,187,40,19,195,187,167,215,194,187,18,156,194,187,105,96,194,187,172,36,194,187,219,232,193,187,246,172,193,187,253,112,193,187,241,52,193,187,208,248,192,187,156,188,192,187,84,128,192,187,248,67,192,187,137,7,192,187,6,203,191,187,111,142,191,187,196,81,191,187,6,21,191,187,52,216,190,187,79,155,190,187,86,94,190,187,74,33,190,187,42,228,189,187,247,166,189,187,176,105,189,187,86,44,189,187,232,238,188,187,104,177,188,187,211,115,188,187,44,54,188,187,113,248,187,187,163,186,187,
187,194,124,187,187,206,62,187,187,198,0,187,187,171,194,186,187,125,132,186,187,60,70,186,187,232,7,186,187,129,201,185,187,7,139,185,187,122,76,185,187,218,13,185,187,39,207,184,187,98,144,184,187,137,81,184,187,157,18,184,187,159,211,183,187,142,148,183,187,106,85,183,187,51,22,183,187,234,214,182,187,142,151,182,187,31,88,182,187,158,24,182,187,10,217,181,187,99,153,181,187,170,89,181,187,223,25,181,187,1,218,180,187,16,154,180,187,13,90,180,187,248,25,180,187,208,217,179,187,150,153,179,187,
73,89,179,187,235,24,179,187,122,216,178,187,246,151,178,187,97,87,178,187,185,22,178,187,255,213,177,187,51,149,177,187,85,84,177,187,101,19,177,187,99,210,176,187,79,145,176,187,41,80,176,187,240,14,176,187,166,205,175,187,74,140,175,187,220,74,175,187,92,9,175,187,203,199,174,187,39,134,174,187,114,68,174,187,171,2,174,187,211,192,173,187,233,126,173,187,237,60,173,187,223,250,172,187,192,184,172,187,143,118,172,187,77,52,172,187,249,241,171,187,148,175,171,187,29,109,171,187,149,42,171,187,251,
231,170,187,80,165,170,187,148,98,170,187,198,31,170,187,231,220,169,187,247,153,169,187,246,86,169,187,227,19,169,187,191,208,168,187,138,141,168,187,68,74,168,187,237,6,168,187,133,195,167,187,12,128,167,187,129,60,167,187,230,248,166,187,58,181,166,187,125,113,166,187,175,45,166,187,208,233,165,187,225,165,165,187,224,97,165,187,207,29,165,187,173,217,164,187,123,149,164,187,55,81,164,187,227,12,164,187,127,200,163,187,10,132,163,187,132,63,163,187,238,250,162,187,71,182,162,187,144,113,162,187,
200,44,162,187,240,231,161,187,7,163,161,187,14,94,161,187,5,25,161,187,236,211,160,187,194,142,160,187,136,73,160,187,62,4,160,187,227,190,159,187,121,121,159,187,254,51,159,187,116,238,158,187,217,168,158,187,46,99,158,187,115,29,158,187,168,215,157,187,205,145,157,187,227,75,157,187,232,5,157,187,222,191,156,187,196,121,156,187,153,51,156,187,96,237,155,187,22,167,155,187,189,96,155,187,84,26,155,187,219,211,154,187,83,141,154,187,187,70,154,187,20,0,154,187,93,185,153,187,151,114,153,187,193,
43,153,187,220,228,152,187,231,157,152,187,227,86,152,187,208,15,152,187,173,200,151,187,123,129,151,187,58,58,151,187,234,242,150,187,138,171,150,187,27,100,150,187,158,28,150,187,17,213,149,187,116,141,149,187,201,69,149,187,15,254,148,187,70,182,148,187,110,110,148,187,135,38,148,187,145,222,147,187,141,150,147,187,121,78,147,187,87,6,147,187,38,190,146,187,230,117,146,187,151,45,146,187,58,229,145,187,206,156,145,187,84,84,145,187,203,11,145,187,51,195,144,187,141,122,144,187,217,49,144,187,22,
233,143,187,68,160,143,187,100,87,143,187,118,14,143,187,122,197,142,187,111,124,142,187,86,51,142,187,46,234,141,187,249,160,141,187,181,87,141,187,99,14,141,187,3,197,140,187,149,123,140,187,25,50,140,187,143,232,139,187,247,158,139,187,81,85,139,187,157,11,139,187,219,193,138,187,11,120,138,187,45,46,138,187,66,228,137,187,73,154,137,187,66,80,137,187,45,6,137,187,11,188,136,187,219,113,136,187,158,39,136,187,82,221,135,187,250,146,135,187,147,72,135,187,32,254,134,187,159,179,134,187,16,105,134,
187,116,30,134,187,203,211,133,187,20,137,133,187,80,62,133,187,127,243,132,187,161,168,132,187,181,93,132,187,188,18,132,187,182,199,131,187,163,124,131,187,131,49,131,187,86,230,130,187,28,155,130,187,213,79,130,187,129,4,130,187,32,185,129,187,178,109,129,187,55,34,129,187,175,214,128,187,27,139,128,187,122,63,128,187,152,231,127,187,35,80,127,187,149,184,126,187,237,32,126,187,44,137,125,187,82,241,124,187,96,89,124,187,84,193,123,187,47,41,123,187,241,144,122,187,154,248,121,187,43,96,121,187,
163,199,120,187,3,47,120,187,73,150,119,187,120,253,118,187,142,100,118,187,139,203,117,187,113,50,117,187,62,153,116,187,243,255,115,187,144,102,115,187,21,205,114,187,130,51,114,187,215,153,113,187,20,0,113,187,57,102,112,187,71,204,111,187,61,50,111,187,28,152,110,187,227,253,109,187,146,99,109,187,42,201,108,187,171,46,108,187,21,148,107,187,103,249,106,187,163,94,106,187,199,195,105,187,212,40,105,187,203,141,104,187,170,242,103,187,115,87,103,187,37,188,102,187,193,32,102,187,69,133,101,187,
180,233,100,187,12,78,100,187,77,178,99,187,120,22,99,187,141,122,98,187,140,222,97,187,116,66,97,187,71,166,96,187,3,10,96,187,170,109,95,187,59,209,94,187,182,52,94,187,27,152,93,187,106,251,92,187,164,94,92,187,201,193,91,187,216,36,91,187,209,135,90,187,181,234,89,187,132,77,89,187,62,176,88,187,226,18,88,187,114,117,87,187,237,215,86,187,82,58,86,187,163,156,85,187,223,254,84,187,6,97,84,187,24,195,83,187,22,37,83,187,0,135,82,187,213,232,81,187,149,74,81,187,65,172,80,187,217,13,80,187,93,111,
79,187,204,208,78,187,40,50,78,187,112,147,77,187,163,244,76,187,195,85,76,187,207,182,75,187,199,23,75,187,171,120,74,187,124,217,73,187,58,58,73,187,228,154,72,187,122,251,71,187,253,91,71,187,109,188,70,187,202,28,70,187,19,125,69,187,74,221,68,187,110,61,68,187,126,157,67,187,124,253,66,187,103,93,66,187,63,189,65,187,5,29,65,187,184,124,64,187,88,220,63,187,230,59,63,187,98,155,62,187,203,250,61,187,34,90,61,187,103,185,60,187,154,24,60,187,187,119,59,187,201,214,58,187,198,53,58,187,177,148,
57,187,138,243,56,187,82,82,56,187,8,177,55,187,172,15,55,187,63,110,54,187,192,204,53,187,48,43,53,187,143,137,52,187,220,231,51,187,25,70,51,187,68,164,50,187,94,2,50,187,103,96,49,187,95,190,48,187,71,28,48,187,30,122,47,187,228,215,46,187,153,53,46,187,62,147,45,187,210,240,44,187,86,78,44,187,202,171,43,187,45,9,43,187,128,102,42,187,195,195,41,187,246,32,41,187,25,126,40,187,44,219,39,187,47,56,39,187,35,149,38,187,6,242,37,187,218,78,37,187,158,171,36,187,83,8,36,187,249,100,35,187,143,193,
34,187,21,30,34,187,141,122,33,187,245,214,32,187,78,51,32,187,152,143,31,187,211,235,30,187,255,71,30,187,28,164,29,187,43,0,29,187,43,92,28,187,28,184,27,187,255,19,27,187,211,111,26,187,153,203,25,187,80,39,25,187,249,130,24,187,148,222,23,187,33,58,23,187,160,149,22,187,16,241,21,187,115,76,21,187,200,167,20,187,15,3,20,187,72,94,19,187,116,185,18,187,146,20,18,187,162,111,17,187,165,202,16,187,155,37,16,187,131,128,15,187,95,219,14,187,44,54,14,187,237,144,13,187,161,235,12,187,72,70,12,187,
226,160,11,187,111,251,10,187,239,85,10,187,99,176,9,187,202,10,9,187,36,101,8,187,114,191,7,187,180,25,7,187,233,115,6,187,18,206,5,187,47,40,5,187,63,130,4,187,68,220,3,187,60,54,3,187,41,144,2,187,9,234,1,187,222,67,1,187,167,157,0,187,202,238,255,186,46,162,254,186,123,85,253,186,177,8,252,186,208,187,250,186,217,110,249,186,203,33,248,186,167,212,246,186,109,135,245,186,28,58,244,186,182,236,242,186,58,159,241,186,168,81,240,186,1,4,239,186,69,182,237,186,115,104,236,186,140,26,235,186,145,204,
233,186,128,126,232,186,91,48,231,186,33,226,229,186,211,147,228,186,113,69,227,186,251,246,225,186,113,168,224,186,211,89,223,186,33,11,222,186,92,188,220,186,131,109,219,186,151,30,218,186,152,207,216,186,134,128,215,186,97,49,214,186,42,226,212,186,224,146,211,186,131,67,210,186,20,244,208,186,148,164,207,186,1,85,206,186,92,5,205,186,166,181,203,186,222,101,202,186,4,22,201,186,26,198,199,186,30,118,198,186,17,38,197,186,243,213,195,186,197,133,194,186,134,53,193,186,54,229,191,186,215,148,190,
186,103,68,189,186,231,243,187,186,87,163,186,186,184,82,185,186,9,2,184,186,74,177,182,186,124,96,181,186,159,15,180,186,179,190,178,186,184,109,177,186,174,28,176,186,150,203,174,186,111,122,173,186,58,41,172,186,247,215,170,186,165,134,169,186,70,53,168,186,217,227,166,186,94,146,165,186,214,64,164,186,64,239,162,186,158,157,161,186,238,75,160,186,49,250,158,186,104,168,157,186,146,86,156,186,175,4,155,186,192,178,153,186,197,96,152,186,190,14,151,186,170,188,149,186,139,106,148,186,97,24,147,
186,43,198,145,186,233,115,144,186,156,33,143,186,69,207,141,186,226,124,140,186,116,42,139,186,252,215,137,186,121,133,136,186,236,50,135,186,85,224,133,186,179,141,132,186,8,59,131,186,83,232,129,186,148,149,128,186,150,133,126,186,243,223,123,186,60,58,121,186,116,148,118,186,154,238,115,186,174,72,113,186,176,162,110,186,162,252,107,186,131,86,105,186,83,176,102,186,19,10,100,186,195,99,97,186,99,189,94,186,244,22,92,186,118,112,89,186,233,201,86,186,78,35,84,186,164,124,81,186,236,213,78,186,
39,47,76,186,84,136,73,186,116,225,70,186,135,58,68,186,142,147,65,186,136,236,62,186,118,69,60,186,89,158,57,186,48,247,54,186,252,79,52,186,190,168,49,186,116,1,47,186,32,90,44,186,195,178,41,186,91,11,39,186,234,99,36,186,112,188,33,186,237,20,31,186,98,109,28,186,206,197,25,186,50,30,23,186,143,118,20,186,228,206,17,186,49,39,15,186,120,127,12,186,184,215,9,186,242,47,7,186,38,136,4,186,84,224,1,186,249,112,254,185,64,33,249,185,124,209,243,185,176,129,238,185,219,49,233,185,253,225,227,185,24,
146,222,185,45,66,217,185,58,242,211,185,66,162,206,185,68,82,201,185,66,2,196,185,59,178,190,185,49,98,185,185,36,18,180,185,20,194,174,185,3,114,169,185,240,33,164,185,220,209,158,185,200,129,153,185,180,49,148,185,162,225,142,185,144,145,137,185,129,65,132,185,233,226,125,185,213,66,115,185,202,162,104,185,199,2,94,185,206,98,83,185,223,194,72,185,253,34,62,185,39,131,51,185,96,227,40,185,169,67,30,185,1,164,19,185,108,4,9,185,210,201,252,184,244,138,231,184,64,76,210,184,184,13,189,184,95,207,
167,184,55,145,146,184,131,166,122,184,4,43,80,184,243,175,37,184,173,106,246,183,99,118,161,183,38,6,25,183,164,243,134,53,248,192,58,55,170,80,178,55,221,159,3,56,210,22,46,56,46,141,88,56,120,129,129,56,7,188,150,56,69,246,171,56,45,48,193,56,190,105,214,56,246,162,235,56,233,109,0,57,40,10,11,57,55,166,21,57,21,66,32,57,192,221,42,57,56,121,53,57,123,20,64,57,137,175,74,57,95,74,85,57,254,228,95,57,100,127,106,57,143,25,117,57,127,179,127,57,153,38,133,57,84,115,138,57,240,191,143,57,108,12,149,
57,199,88,154,57,1,165,159,57,25,241,164,57,16,61,170,57,227,136,175,57,148,212,180,57,32,32,186,57,136,107,191,57,203,182,196,57,232,1,202,57,224,76,207,57,176,151,212,57,90,226,217,57,219,44,223,57,53,119,228,57,101,193,233,57,108,11,239,57,73,85,244,57,251,158,249,57,130,232,254,57,239,24,2,58,134,189,4,58,7,98,7,58,114,6,10,58,197,170,12,58,1,79,15,58,38,243,17,58,51,151,20,58,39,59,23,58,4,223,25,58,199,130,28,58,114,38,31,58,4,202,33,58,124,109,36,58,218,16,39,58,30,180,41,58,72,87,44,58,87,
250,46,58,75,157,49,58,36,64,52,58,226,226,54,58,132,133,57,58,10,40,60,58,116,202,62,58,193,108,65,58,241,14,68,58,4,177,70,58,250,82,73,58,209,244,75,58,139,150,78,58,39,56,81,58,164,217,83,58,3,123,86,58,66,28,89,58,98,189,91,58,98,94,94,58,67,255,96,58,3,160,99,58,163,64,102,58,34,225,104,58,128,129,107,58,189,33,110,58,216,193,112,58,209,97,115,58,168,1,118,58,93,161,120,58,239,64,123,58,94,224,125,58,213,63,128,58,105,143,129,58,235,222,130,58,91,46,132,58,185,125,133,58,5,205,134,58,62,28,
136,58,101,107,137,58,120,186,138,58,121,9,140,58,103,88,141,58,66,167,142,58,10,246,143,58,190,68,145,58,94,147,146,58,235,225,147,58,100,48,149,58,201,126,150,58,26,205,151,58,87,27,153,58,127,105,154,58,147,183,155,58,146,5,157,58,124,83,158,58,82,161,159,58,18,239,160,58,189,60,162,58,83,138,163,58,211,215,164,58,61,37,166,58,146,114,167,58,209,191,168,58,250,12,170,58,13,90,171,58,9,167,172,58,239,243,173,58,190,64,175,58,119,141,176,58,24,218,177,58,163,38,179,58,22,115,180,58,115,191,181,58,
183,11,183,58,229,87,184,58,250,163,185,58,248,239,186,58,222,59,188,58,171,135,189,58,97,211,190,58,254,30,192,58,131,106,193,58,238,181,194,58,66,1,196,58,124,76,197,58,157,151,198,58,165,226,199,58,147,45,201,58,105,120,202,58,36,195,203,58,198,13,205,58,78,88,206,58,188,162,207,58,15,237,208,58,73,55,210,58,104,129,211,58,108,203,212,58,86,21,214,58,37,95,215,58,217,168,216,58,114,242,217,58,240,59,219,58,82,133,220,58,153,206,221,58,196,23,223,58,211,96,224,58,199,169,225,58,158,242,226,58,89,
59,228,58,248,131,229,58,123,204,230,58,225,20,232,58,42,93,233,58,86,165,234,58,101,237,235,58,87,53,237,58,44,125,238,58,228,196,239,58,126,12,241,58,250,83,242,58,88,155,243,58,153,226,244,58,187,41,246,58,191,112,247,58,165,183,248,58,109,254,249,58,22,69,251,58,160,139,252,58,11,210,253,58,87,24,255,58,66,47,0,59,73,210,0,59,64,117,1,59,39,24,2,59,255,186,2,59,198,93,3,59,126,0,4,59,38,163,4,59,189,69,5,59,69,232,5,59,188,138,6,59,34,45,7,59,121,207,7,59,191,113,8,59,244,19,9,59,25,182,9,59,
45,88,10,59,49,250,10,59,35,156,11,59,5,62,12,59,214,223,12,59,150,129,13,59,69,35,14,59,227,196,14,59,112,102,15,59,235,7,16,59,85,169,16,59,174,74,17,59,245,235,17,59,43,141,18,59,79,46,19,59,98,207,19,59,99,112,20,59,82,17,21,59,47,178,21,59,250,82,22,59,180,243,22,59,91,148,23,59,240,52,24,59,115,213,24,59,228,117,25,59,67,22,26,59,143,182,26,59,201,86,27,59,240,246,27,59,4,151,28,59,6,55,29,59,246,214,29,59,210,118,30,59,156,22,31,59,83,182,31,59,247,85,32,59,136,245,32,59,6,149,33,59,112,52,
34,59,200,211,34,59,12,115,35,59,61,18,36,59,90,177,36,59,100,80,37,59,91,239,37,59,61,142,38,59,12,45,39,59,200,203,39,59,111,106,40,59,3,9,41,59,131,167,41,59,239,69,42,59,70,228,42,59,138,130,43,59,185,32,44,59,212,190,44,59,219,92,45,59,205,250,45,59,171,152,46,59,117,54,47,59,42,212,47,59,202,113,48,59,85,15,49,59,204,172,49,59,46,74,50,59,123,231,50,59,179,132,51,59,214,33,52,59,228,190,52,59,220,91,53,59,192,248,53,59,142,149,54,59,71,50,55,59,234,206,55,59,120,107,56,59,241,7,57,59,83,164,
57,59,160,64,58,59,216,220,58,59,249,120,59,59,5,21,60,59,251,176,60,59,219,76,61,59,164,232,61,59,88,132,62,59,245,31,63,59,124,187,63,59,237,86,64,59,72,242,64,59,140,141,65,59,185,40,66,59,208,195,66,59,208,94,67,59,186,249,67,59,141,148,68,59,73,47,69,59,238,201,69,59,124,100,70,59,244,254,70,59,84,153,71,59,157,51,72,59,207,205,72,59,233,103,73,59,236,1,74,59,216,155,74,59,172,53,75,59,105,207,75,59,15,105,76,59,156,2,77,59,18,156,77,59,112,53,78,59,183,206,78,59,229,103,79,59,252,0,80,59,250,
153,80,59,225,50,81,59,175,203,81,59,101,100,82,59,3,253,82,59,136,149,83,59,245,45,84,59,74,198,84,59,134,94,85,59,170,246,85,59,181,142,86,59,167,38,87,59,128,190,87,59,65,86,88,59,233,237,88,59,120,133,89,59,237,28,90,59,74,180,90,59,142,75,91,59,184,226,91,59,201,121,92,59,193,16,93,59,160,167,93,59,101,62,94,59,16,213,94,59,162,107,95,59,26,2,96,59,121,152,96,59,190,46,97,59,233,196,97,59,250,90,98,59,242,240,98,59,207,134,99,59,146,28,100,59,59,178,100,59,202,71,101,59,63,221,101,59,153,114,
102,59,217,7,103,59,255,156,103,59,10,50,104,59,251,198,104,59,209,91,105,59,140,240,105,59,45,133,106,59,179,25,107,59,30,174,107,59,110,66,108,59,163,214,108,59,189,106,109,59,188,254,109,59,160,146,110,59,105,38,111,59,22,186,111,59,168,77,112,59,31,225,112,59,122,116,113,59,186,7,114,59,222,154,114,59,231,45,115,59,212,192,115,59,165,83,116,59,90,230,116,59,244,120,117,59,113,11,118,59,211,157,118,59,24,48,119,59,66,194,119,59,79,84,120,59,64,230,120,59,21,120,121,59,205,9,122,59,106,155,122,
59,233,44,123,59,76,190,123,59,147,79,124,59,189,224,124,59,202,113,125,59,186,2,126,59,142,147,126,59,68,36,127,59,222,180,127,59,174,34,128,59,221,106,128,59,255,178,128,59,18,251,128,59,22,67,129,59,11,139,129,59,242,210,129,59,202,26,130,59,148,98,130,59,78,170,130,59,250,241,130,59,151,57,131,59,37,129,131,59,165,200,131,59,21,16,132,59,119,87,132,59,201,158,132,59,13,230,132,59,65,45,133,59,103,116,133,59,125,187,133,59,132,2,134,59,124,73,134,59,101,144,134,59,63,215,134,59,10,30,135,59,197,
100,135,59,113,171,135,59,14,242,135,59,156,56,136,59,26,127,136,59,136,197,136,59,232,11,137,59,55,82,137,59,120,152,137,59,168,222,137,59,202,36,138,59,219,106,138,59,222,176,138,59,208,246,138,59,179,60,139,59,134,130,139,59,74,200,139,59,253,13,140,59,161,83,140,59,54,153,140,59,186,222,140,59,47,36,141,59,147,105,141,59,232,174,141,59,45,244,141,59,98,57,142,59,135,126,142,59,156,195,142,59,160,8,143,59,149,77,143,59,122,146,143,59,78,215,143,59,19,28,144,59,199,96,144,59,107,165,144,59,255,
233,144,59,130,46,145,59,246,114,145,59,88,183,145,59,171,251,145,59,237,63,146,59,31,132,146,59,64,200,146,59,81,12,147,59,82,80,147,59,65,148,147,59,33,216,147,59,240,27,148,59,174,95,148,59,91,163,148,59,248,230,148,59,133,42,149,59,0,110,149,59,107,177,149,59,197,244,149,59,14,56,150,59,71,123,150,59,110,190,150,59,133,1,151,59,139,68,151,59,128,135,151,59,100,202,151,59,55,13,152,59,249,79,152,59,170,146,152,59,74,213,152,59,216,23,153,59,86,90,153,59,195,156,153,59,30,223,153,59,104,33,154,
59,161,99,154,59,201,165,154,59,224,231,154,59,229,41,155,59,217,107,155,59,187,173,155,59,141,239,155,59,76,49,156,59,251,114,156,59,152,180,156,59,35,246,156,59,157,55,157,59,5,121,157,59,92,186,157,59,161,251,157,59,213,60,158,59,247,125,158,59,7,191,158,59,5,0,159,59,242,64,159,59,205,129,159,59,151,194,159,59,78,3,160,59,244,67,160,59,136,132,160,59,10,197,160,59,122,5,161,59,216,69,161,59,36,134,161,59,95,198,161,59,135,6,162,59,157,70,162,59,161,134,162,59,147,198,162,59,115,6,163,59,65,70,
163,59,253,133,163,59,166,197,163,59,61,5,164,59,194,68,164,59,53,132,164,59,150,195,164,59,228,2,165,59,32,66,165,59,73,129,165,59,96,192,165,59,101,255,165,59,87,62,166,59,55,125,166,59,4,188,166,59,191,250,166,59,103,57,167,59,253,119,167,59,128,182,167,59,240,244,167,59,78,51,168,59,153,113,168,59,209,175,168,59,247,237,168,59,10,44,169,59,10,106,169,59,248,167,169,59,210,229,169,59,154,35,170,59,79,97,170,59,241,158,170,59,128,220,170,59,252,25,171,59,101,87,171,59,188,148,171,59,255,209,171,
59,47,15,172,59,76,76,172,59,86,137,172,59,77,198,172,59,49,3,173,59,1,64,173,59,191,124,173,59,105,185,173,59,0,246,173,59,131,50,174,59,244,110,174,59,81,171,174,59,155,231,174,59,209,35,175,59,244,95,175,59,4,156,175,59,0,216,175,59,233,19,176,59,190,79,176,59,128,139,176,59,46,199,176,59,201,2,177,59,80,62,177,59,196,121,177,59,36,181,177,59,112,240,177,59,169,43,178,59,206,102,178,59,223,161,178,59,220,220,178,59,198,23,179,59,156,82,179,59,94,141,179,59,13,200,179,59,167,2,180,59,46,61,180,
59,160,119,180,59,255,177,180,59,74,236,180,59,129,38,181,59,164,96,181,59,178,154,181,59,173,212,181,59,148,14,182,59,103,72,182,59,37,130,182,59,208,187,182,59,102,245,182,59,232,46,183,59,86,104,183,59,175,161,183,59,245,218,183,59,38,20,184,59,67,77,184,59,75,134,184,59,63,191,184,59,31,248,184,59,235,48,185,59,162,105,185,59,68,162,185,59,211,218,185,59,76,19,186,59,177,75,186,59,2,132,186,59,62,188,186,59,102,244,186,59,121,44,187,59,119,100,187,59,97,156,187,59,54,212,187,59,246,11,188,59,
162,67,188,59,57,123,188,59,187,178,188,59,41,234,188,59,129,33,189,59,197,88,189,59,244,143,189,59,15,199,189,59,20,254,189,59,4,53,190,59,224,107,190,59,166,162,190,59,88,217,190,59,245,15,191,59,124,70,191,59,239,124,191,59,76,179,191,59,149,233,191,59,200,31,192,59,231,85,192,59,240,139,192,59,228,193,192,59,195,247,192,59,140,45,193,59,65,99,193,59,224,152,193,59,106,206,193,59,222,3,194,59,61,57,194,59,135,110,194,59,188,163,194,59,219,216,194,59,229,13,195,59,218,66,195,59,185,119,195,59,130,
172,195,59,54,225,195,59,213,21,196,59,94,74,196,59,210,126,196,59,48,179,196,59,120,231,196,59,171,27,197,59,200,79,197,59,208,131,197,59,194,183,197,59,158,235,197,59,100,31,198,59,21,83,198,59,176,134,198,59,54,186,198,59,165,237,198,59,255,32,199,59,67,84,199,59,113,135,199,59,137,186,199,59,139,237,199,59,120,32,200,59,78,83,200,59,15,134,200,59,185,184,200,59,78,235,200,59,205,29,201,59,53,80,201,59,136,130,201,59,196,180,201,59,234,230,201,59,251,24,202,59,245,74,202,59,217,124,202,59,167,
174,202,59,94,224,202,59,0,18,203,59,139,67,203,59,0,117,203,59,95,166,203,59,167,215,203,59,217,8,204,59,245,57,204,59,251,106,204,59,234,155,204,59,195,204,204,59,133,253,204,59,49,46,205,59,198,94,205,59,69,143,205,59,174,191,205,59,0,240,205,59,60,32,206,59,97,80,206,59,111,128,206,59,103,176,206,59,73,224,206,59,19,16,207,59,199,63,207,59,101,111,207,59,236,158,207,59,92,206,207,59,181,253,207,59,248,44,208,59,36,92,208,59,57,139,208,59,56,186,208,59,31,233,208,59,240,23,209,59,170,70,209,59,
77,117,209,59,218,163,209,59,79,210,209,59,174,0,210,59,245,46,210,59,38,93,210,59,64,139,210,59,66,185,210,59,46,231,210,59,3,21,211,59,193,66,211,59,103,112,211,59,247,157,211,59,111,203,211,59,209,248,211,59,27,38,212,59,78,83,212,59,106,128,212,59,111,173,212,59,93,218,212,59,51,7,213,59,243,51,213,59,155,96,213,59,43,141,213,59,165,185,213,59,7,230,213,59,82,18,214,59,133,62,214,59],"i8",4,y.a+368640);
Q([162,106,214,59,166,150,214,59,148,194,214,59,106,238,214,59,40,26,215,59,208,69,215,59,95,113,215,59,216,156,215,59,57,200,215,59,130,243,215,59,180,30,216,59,206,73,216,59,209,116,216,59,188,159,216,59,143,202,216,59,75,245,216,59,240,31,217,59,124,74,217,59,242,116,217,59,79,159,217,59,149,201,217,59,195,243,217,59,217,29,218,59,216,71,218,59,190,113,218,59,142,155,218,59,69,197,218,59,228,238,218,59,108,24,219,59,220,65,219,59,52,107,219,59,116,148,219,59,156,189,219,59,173,230,219,59,165,15,
220,59,134,56,220,59,78,97,220,59,255,137,220,59,152,178,220,59,24,219,220,59,129,3,221,59,210,43,221,59,11,84,221,59,43,124,221,59,52,164,221,59,36,204,221,59,252,243,221,59,189,27,222,59,101,67,222,59,245,106,222,59,109,146,222,59,204,185,222,59,20,225,222,59,67,8,223,59,90,47,223,59,89,86,223,59,63,125,223,59,14,164,223,59,196,202,223,59,97,241,223,59,231,23,224,59,84,62,224,59,169,100,224,59,229,138,224,59,9,177,224,59,21,215,224,59,8,253,224,59,227,34,225,59,165,72,225,59,79,110,225,59,225,147,
225,59,90,185,225,59,186,222,225,59,2,4,226,59,50,41,226,59,73,78,226,59,71,115,226,59,45,152,226,59,251,188,226,59,176,225,226,59,76,6,227,59,207,42,227,59,58,79,227,59,141,115,227,59,198,151,227,59,231,187,227,59,239,223,227,59,223,3,228,59,182,39,228,59,116,75,228,59,26,111,228,59,166,146,228,59,26,182,228,59,117,217,228,59,184,252,228,59,225,31,229,59,242,66,229,59,234,101,229,59,201,136,229,59,143,171,229,59,60,206,229,59,209,240,229,59,76,19,230,59,175,53,230,59,249,87,230,59,42,122,230,59,
65,156,230,59,64,190,230,59,38,224,230,59,243,1,231,59,167,35,231,59,66,69,231,59,196,102,231,59,44,136,231,59,124,169,231,59,179,202,231,59,209,235,231,59,213,12,232,59,193,45,232,59,147,78,232,59,76,111,232,59,236,143,232,59,115,176,232,59,225,208,232,59,53,241,232,59,113,17,233,59,147,49,233,59,156,81,233,59,139,113,233,59,98,145,233,59,31,177,233,59,195,208,233,59,78,240,233,59,191,15,234,59,23,47,234,59,86,78,234,59,124,109,234,59,136,140,234,59,123,171,234,59,84,202,234,59,20,233,234,59,187,
7,235,59,72,38,235,59,188,68,235,59,23,99,235,59,88,129,235,59,127,159,235,59,141,189,235,59,130,219,235,59,93,249,235,59,31,23,236,59,200,52,236,59,86,82,236,59,204,111,236,59,39,141,236,59,105,170,236,59,146,199,236,59,161,228,236,59,151,1,237,59,115,30,237,59,53,59,237,59,222,87,237,59,109,116,237,59,226,144,237,59,62,173,237,59,129,201,237,59,169,229,237,59,184,1,238,59,173,29,238,59,137,57,238,59,75,85,238,59,243,112,238,59,129,140,238,59,246,167,238,59,81,195,238,59,146,222,238,59,186,249,238,
59,199,20,239,59,187,47,239,59,149,74,239,59,86,101,239,59,252,127,239,59,137,154,239,59,252,180,239,59,85,207,239,59,148,233,239,59,185,3,240,59,197,29,240,59,182,55,240,59,142,81,240,59,76,107,240,59,240,132,240,59,122,158,240,59,234,183,240,59,64,209,240,59,124,234,240,59,158,3,241,59,167,28,241,59,149,53,241,59,105,78,241,59,36,103,241,59,196,127,241,59,74,152,241,59,183,176,241,59,9,201,241,59,65,225,241,59,96,249,241,59,100,17,242,59,78,41,242,59,30,65,242,59,212,88,242,59,112,112,242,59,242,
135,242,59,89,159,242,59,167,182,242,59,218,205,242,59,244,228,242,59,243,251,242,59,216,18,243,59,163,41,243,59,84,64,243,59,234,86,243,59,103,109,243,59,201,131,243,59,17,154,243,59,63,176,243,59,82,198,243,59,76,220,243,59,43,242,243,59,240,7,244,59,154,29,244,59,43,51,244,59,161,72,244,59,253,93,244,59,63,115,244,59,102,136,244,59,115,157,244,59,102,178,244,59,63,199,244,59,253,219,244,59,161,240,244,59,42,5,245,59,153,25,245,59,238,45,245,59,41,66,245,59,73,86,245,59,79,106,245,59,58,126,245,
59,11,146,245,59,194,165,245,59,94,185,245,59,224,204,245,59,72,224,245,59,149,243,245,59,200,6,246,59,224,25,246,59,222,44,246,59,193,63,246,59,138,82,246,59,57,101,246,59,205,119,246,59,71,138,246,59,166,156,246,59,234,174,246,59,21,193,246,59,36,211,246,59,25,229,246,59,244,246,246,59,180,8,247,59,90,26,247,59,229,43,247,59,86,61,247,59,172,78,247,59,232,95,247,59,9,113,247,59,15,130,247,59,251,146,247,59,205,163,247,59,132,180,247,59,32,197,247,59,161,213,247,59,9,230,247,59,85,246,247,59,135,
6,248,59,158,22,248,59,155,38,248,59,125,54,248,59,69,70,248,59,242,85,248,59,132,101,248,59,252,116,248,59,89,132,248,59,155,147,248,59,195,162,248,59,208,177,248,59,194,192,248,59,154,207,248,59,87,222,248,59,249,236,248,59,129,251,248,59,238,9,249,59,65,24,249,59,120,38,249,59,149,52,249,59,152,66,249,59,127,80,249,59,76,94,249,59,254,107,249,59,150,121,249,59,19,135,249,59,117,148,249,59,188,161,249,59,233,174,249,59,250,187,249,59,242,200,249,59,206,213,249,59,144,226,249,59,54,239,249,59,194,
251,249,59,52,8,250,59,138,20,250,59,198,32,250,59,231,44,250,59,237,56,250,59,217,68,250,59,170,80,250,59,95,92,250,59,251,103,250,59,123,115,250,59,224,126,250,59,43,138,250,59,91,149,250,59,112,160,250,59,106,171,250,59,74,182,250,59,15,193,250,59,184,203,250,59,71,214,250,59,188,224,250,59,21,235,250,59,83,245,250,59,119,255,250,59,128,9,251,59,110,19,251,59,65,29,251,59,249,38,251,59,151,48,251,59,25,58,251,59,129,67,251,59,206,76,251,59,0,86,251,59,23,95,251,59,19,104,251,59,245,112,251,59,
187,121,251,59,103,130,251,59,248,138,251,59,110,147,251,59,201,155,251,59,9,164,251,59,46,172,251,59,57,180,251,59,40,188,251,59,253,195,251,59,183,203,251,59,85,211,251,59,217,218,251,59,66,226,251,59,144,233,251,59,196,240,251,59,220,247,251,59,217,254,251,59,188,5,252,59,131,12,252,59,48,19,252,59,194,25,252,59,57,32,252,59,149,38,252,59,214,44,252,59,252,50,252,59,7,57,252,59,247,62,252,59,205,68,252,59,135,74,252,59,39,80,252,59,171,85,252,59,21,91,252,59,100,96,252,59,151,101,252,59,176,106,
252,59,174,111,252,59,145,116,252,59,89,121,252,59,6,126,252,59,153,130,252,59,16,135,252,59,108,139,252,59,174,143,252,59,212,147,252,59,224,151,252,59,208,155,252,59,166,159,252,59,97,163,252,59,1,167,252,59,133,170,252,59,239,173,252,59,62,177,252,59,114,180,252,59,140,183,252,59,138,186,252,59,109,189,252,59,53,192,252,59,227,194,252,59,117,197,252,59,237,199,252,59,73,202,252,59,139,204,252,59,178,206,252,59,189,208,252,59,174,210,252,59,132,212,252,59,63,214,252,59,223,215,252,59,100,217,252,
59,206,218,252,59,30,220,252,59,82,221,252,59,107,222,252,59,106,223,252,59,77,224,252,59,22,225,252,59,196,225,252,59,86,226,252,59,206,226,252,59,43,227,252,59,109,227,252,59,148,227,252,59,160,227,252,59,145,227,252,59,104,227,252,59,35,227,252,59,196,226,252,59,73,226,252,59,180,225,252,59,4,225,252,59,56,224,252,59,82,223,252,59,81,222,252,59,54,221,252,59,255,219,252,59,173,218,252,59,65,217,252,59,185,215,252,59,23,214,252,59,89,212,252,59,129,210,252,59,142,208,252,59,128,206,252,59,88,204,
252,59,20,202,252,59,181,199,252,59,60,197,252,59,168,194,252,59,248,191,252,59,46,189,252,59,73,186,252,59,74,183,252,59,47,180,252,59,250,176,252,59,169,173,252,59,62,170,252,59,184,166,252,59,23,163,252,59,91,159,252,59,133,155,252,59,147,151,252,59,135,147,252,59,96,143,252,59,30,139,252,59,193,134,252,59,74,130,252,59,183,125,252,59,10,121,252,59,66,116,252,59,95,111,252,59,97,106,252,59,73,101,252,59,22,96,252,59,199,90,252,59,95,85,252,59,219,79,252,59,60,74,252,59,131,68,252,59,175,62,252,
59,192,56,252,59,183,50,252,59,147,44,252,59,83,38,252,59,250,31,252,59,133,25,252,59,246,18,252,59,75,12,252,59,135,5,252,59,167,254,251,59,173,247,251,59,151,240,251,59,104,233,251,59,29,226,251,59,184,218,251,59,56,211,251,59,157,203,251,59,232,195,251,59,24,188,251,59,45,180,251,59,39,172,251,59,7,164,251,59,204,155,251,59,119,147,251,59,7,139,251,59,124,130,251,59,214,121,251,59,22,113,251,59,59,104,251,59,69,95,251,59,53,86,251,59,10,77,251,59,197,67,251,59,101,58,251,59,234,48,251,59,85,39,
251,59,165,29,251,59,218,19,251,59,245,9,251,59,245,255,250,59,219,245,250,59,166,235,250,59,87,225,250,59,237,214,250,59,104,204,250,59,201,193,250,59,15,183,250,59,58,172,250,59,76,161,250,59,66,150,250,59,30,139,250,59,224,127,250,59,135,116,250,59,19,105,250,59,133,93,250,59,220,81,250,59,25,70,250,59,60,58,250,59,68,46,250,59,49,34,250,59,4,22,250,59,189,9,250,59,91,253,249,59,222,240,249,59,71,228,249,59,150,215,249,59,202,202,249,59,228,189,249,59,227,176,249,59,200,163,249,59,147,150,249,
59,67,137,249,59,217,123,249,59,84,110,249,59,181,96,249,59,252,82,249,59,40,69,249,59,58,55,249,59,50,41,249,59,15,27,249,59,210,12,249,59,122,254,248,59,8,240,248,59,124,225,248,59,214,210,248,59,21,196,248,59,58,181,248,59,68,166,248,59,53,151,248,59,11,136,248,59,199,120,248,59,104,105,248,59,240,89,248,59,93,74,248,59,175,58,248,59,232,42,248,59,6,27,248,59,11,11,248,59,245,250,247,59,196,234,247,59,122,218,247,59,21,202,247,59,150,185,247,59,253,168,247,59,74,152,247,59,125,135,247,59,150,118,
247,59,148,101,247,59,121,84,247,59,67,67,247,59,243,49,247,59,137,32,247,59,5,15,247,59,103,253,246,59,174,235,246,59,220,217,246,59,240,199,246,59,233,181,246,59,201,163,246,59,142,145,246,59,58,127,246,59,203,108,246,59,67,90,246,59,160,71,246,59,228,52,246,59,13,34,246,59,29,15,246,59,19,252,245,59,238,232,245,59,176,213,245,59,88,194,245,59,230,174,245,59,90,155,245,59,180,135,245,59,244,115,245,59,26,96,245,59,38,76,245,59,25,56,245,59,242,35,245,59,176,15,245,59,85,251,244,59,225,230,244,59,
82,210,244,59,169,189,244,59,231,168,244,59,11,148,244,59,21,127,244,59,6,106,244,59,220,84,244,59,153,63,244,59,60,42,244,59,198,20,244,59,54,255,243,59,140,233,243,59,200,211,243,59,235,189,243,59,243,167,243,59,227,145,243,59,184,123,243,59,116,101,243,59,23,79,243,59,159,56,243,59,15,34,243,59,100,11,243,59,160,244,242,59,194,221,242,59,203,198,242,59,186,175,242,59,144,152,242,59,76,129,242,59,239,105,242,59,120,82,242,59,231,58,242,59,61,35,242,59,122,11,242,59,157,243,241,59,167,219,241,59,
151,195,241,59,110,171,241,59,43,147,241,59,207,122,241,59,89,98,241,59,203,73,241,59,34,49,241,59,97,24,241,59,134,255,240,59,145,230,240,59,132,205,240,59,93,180,240,59,28,155,240,59,195,129,240,59,80,104,240,59,196,78,240,59,30,53,240,59,96,27,240,59,136,1,240,59,150,231,239,59,140,205,239,59,104,179,239,59,44,153,239,59,214,126,239,59,102,100,239,59,222,73,239,59,61,47,239,59,130,20,239,59,174,249,238,59,194,222,238,59,188,195,238,59,157,168,238,59,101,141,238,59,20,114,238,59,169,86,238,59,38,
59,238,59,138,31,238,59,213,3,238,59,7,232,237,59,31,204,237,59,31,176,237,59,6,148,237,59,212,119,237,59,137,91,237,59,37,63,237,59,168,34,237,59,18,6,237,59,100,233,236,59,156,204,236,59,188,175,236,59,195,146,236,59,177,117,236,59,134,88,236,59,66,59,236,59,230,29,236,59,113,0,236,59,227,226,235,59,60,197,235,59,125,167,235,59,165,137,235,59,180,107,235,59,170,77,235,59,136,47,235,59,77,17,235,59,250,242,234,59,142,212,234,59,9,182,234,59,108,151,234,59,182,120,234,59,231,89,234,59,0,59,234,59,
0,28,234,59,232,252,233,59,183,221,233,59,110,190,233,59,12,159,233,59,146,127,233,59,255,95,233,59,84,64,233,59,144,32,233,59,180,0,233,59,192,224,232,59,179,192,232,59,142,160,232,59,80,128,232,59,250,95,232,59,140,63,232,59,6,31,232,59,103,254,231,59,175,221,231,59,224,188,231,59,248,155,231,59,248,122,231,59,224,89,231,59,175,56,231,59,103,23,231,59,6,246,230,59,141,212,230,59,252,178,230,59,82,145,230,59,145,111,230,59,183,77,230,59,198,43,230,59,188,9,230,59,154,231,229,59,96,197,229,59,14,
163,229,59,164,128,229,59,34,94,229,59,136,59,229,59,214,24,229,59,13,246,228,59,43,211,228,59,49,176,228,59,31,141,228,59,246,105,228,59,180,70,228,59,91,35,228,59,234,255,227,59,97,220,227,59,192,184,227,59,7,149,227,59,55,113,227,59,79,77,227,59,79,41,227,59,55,5,227,59,8,225,226,59,192,188,226,59,98,152,226,59,235,115,226,59,93,79,226,59,183,42,226,59,250,5,226,59,37,225,225,59,56,188,225,59,52,151,225,59,24,114,225,59,229,76,225,59,154,39,225,59,56,2,225,59,190,220,224,59,45,183,224,59,132,145,
224,59,196,107,224,59,236,69,224,59,253,31,224,59,247,249,223,59,217,211,223,59,164,173,223,59,87,135,223,59,243,96,223,59,120,58,223,59,230,19,223,59,60,237,222,59,123,198,222,59,163,159,222,59,180,120,222,59,173,81,222,59,143,42,222,59,90,3,222,59,14,220,221,59,171,180,221,59,49,141,221,59,159,101,221,59,246,61,221,59,55,22,221,59,96,238,220,59,114,198,220,59,110,158,220,59,82,118,220,59,31,78,220,59,214,37,220,59,117,253,219,59,254,212,219,59,111,172,219,59,202,131,219,59,14,91,219,59,59,50,219,
59,81,9,219,59,80,224,218,59,57,183,218,59,11,142,218,59,198,100,218,59,106,59,218,59,247,17,218,59,110,232,217,59,206,190,217,59,24,149,217,59,75,107,217,59,103,65,217,59,109,23,217,59,92,237,216,59,52,195,216,59,246,152,216,59,161,110,216,59,54,68,216,59,180,25,216,59,28,239,215,59,109,196,215,59,168,153,215,59,205,110,215,59,219,67,215,59,211,24,215,59,180,237,214,59,127,194,214,59,52,151,214,59,210,107,214,59,90,64,214,59,204,20,214,59,39,233,213,59,108,189,213,59,156,145,213,59,180,101,213,59,
183,57,213,59,164,13,213,59,122,225,212,59,58,181,212,59,228,136,212,59,120,92,212,59,247,47,212,59,94,3,212,59,176,214,211,59,236,169,211,59,18,125,211,59,34,80,211,59,28,35,211,59,1,246,210,59,207,200,210,59,135,155,210,59,42,110,210,59,182,64,210,59,45,19,210,59,142,229,209,59,217,183,209,59,15,138,209,59,47,92,209,59,57,46,209,59,45,0,209,59,12,210,208,59,212,163,208,59,136,117,208,59,37,71,208,59,174,24,208,59,32,234,207,59,125,187,207,59,196,140,207,59,246,93,207,59,19,47,207,59,26,0,207,59,
11,209,206,59,231,161,206,59,174,114,206,59,95,67,206,59,251,19,206,59,129,228,205,59,242,180,205,59,78,133,205,59,148,85,205,59,198,37,205,59,226,245,204,59,232,197,204,59,218,149,204,59,182,101,204,59,125,53,204,59,47,5,204,59,204,212,203,59,84,164,203,59,199,115,203,59,37,67,203,59,109,18,203,59,161,225,202,59,191,176,202,59,201,127,202,59,190,78,202,59,157,29,202,59,104,236,201,59,30,187,201,59,191,137,201,59,75,88,201,59,195,38,201,59,37,245,200,59,115,195,200,59,172,145,200,59,208,95,200,59,
224,45,200,59,219,251,199,59,193,201,199,59,147,151,199,59,80,101,199,59,248,50,199,59,140,0,199,59,11,206,198,59,117,155,198,59,203,104,198,59,13,54,198,59,58,3,198,59,83,208,197,59,87,157,197,59,71,106,197,59,34,55,197,59,233,3,197,59,156,208,196,59,58,157,196,59,196,105,196,59,58,54,196,59,156,2,196,59,233,206,195,59,34,155,195,59,71,103,195,59,88,51,195,59,84,255,194,59,61,203,194,59,17,151,194,59,209,98,194,59,126,46,194,59,22,250,193,59,154,197,193,59,10,145,193,59,103,92,193,59,175,39,193,
59,227,242,192,59,4,190,192,59,17,137,192,59,9,84,192,59,238,30,192,59,192,233,191,59,125,180,191,59,39,127,191,59,189,73,191,59,63,20,191,59,173,222,190,59,8,169,190,59,79,115,190,59,131,61,190,59,163,7,190,59,175,209,189,59,168,155,189,59,142,101,189,59,96,47,189,59,30,249,188,59,201,194,188,59,96,140,188,59,229,85,188,59,85,31,188,59,179,232,187,59,253,177,187,59,51,123,187,59,87,68,187,59,103,13,187,59,100,214,186,59,78,159,186,59,36,104,186,59,232,48,186,59,152,249,185,59,53,194,185,59,191,138,
185,59,54,83,185,59,154,27,185,59,235,227,184,59,41,172,184,59,84,116,184,59,107,60,184,59,113,4,184,59,99,204,183,59,66,148,183,59,14,92,183,59,200,35,183,59,111,235,182,59,2,179,182,59,132,122,182,59,242,65,182,59,78,9,182,59,151,208,181,59,205,151,181,59,241,94,181,59,2,38,181,59,1,237,180,59,237,179,180,59,198,122,180,59,141,65,180,59,66,8,180,59,228,206,179,59,115,149,179,59,241,91,179,59,91,34,179,59,180,232,178,59,250,174,178,59,46,117,178,59,79,59,178,59,94,1,178,59,91,199,177,59,70,141,177,
59,31,83,177,59,229,24,177,59,153,222,176,59,59,164,176,59,203,105,176,59,73,47,176,59,181,244,175,59,15,186,175,59,87,127,175,59,141,68,175,59,177,9,175,59,195,206,174,59,196,147,174,59,178,88,174,59,143,29,174,59,89,226,173,59,18,167,173,59,185,107,173,59,79,48,173,59,211,244,172,59,69,185,172,59,165,125,172,59,244,65,172,59,49,6,172,59,93,202,171,59,119,142,171,59,127,82,171,59,118,22,171,59,92,218,170,59,48,158,170,59,242,97,170,59,164,37,170,59,68,233,169,59,210,172,169,59,79,112,169,59,187,
51,169,59,22,247,168,59,95,186,168,59,151,125,168,59,190,64,168,59,212,3,168,59,217,198,167,59,204,137,167,59,175,76,167,59,128,15,167,59,65,210,166,59,240,148,166,59,142,87,166,59,28,26,166,59,152,220,165,59,4,159,165,59,95,97,165,59,168,35,165,59,225,229,164,59,10,168,164,59,33,106,164,59,40,44,164,59,30,238,163,59,3,176,163,59,216,113,163,59,156,51,163,59,79,245,162,59,242,182,162,59,132,120,162,59,6,58,162,59,119,251,161,59,216,188,161,59,40,126,161,59,104,63,161,59,152,0,161,59,183,193,160,59,
198,130,160,59,196,67,160,59,178,4,160,59,144,197,159,59,94,134,159,59,27,71,159,59,200,7,159,59,101,200,158,59,242,136,158,59,111,73,158,59,220,9,158,59,57,202,157,59,134,138,157,59,194,74,157,59,239,10,157,59,12,203,156,59,25,139,156,59,22,75,156,59,3,11,156,59,225,202,155,59,174,138,155,59,108,74,155,59,26,10,155,59,184,201,154,59,71,137,154,59,198,72,154,59,53,8,154,59,149,199,153,59,229,134,153,59,38,70,153,59,87,5,153,59,121,196,152,59,139,131,152,59,141,66,152,59,129,1,152,59,100,192,151,59,
57,127,151,59,254,61,151,59,180,252,150,59,91,187,150,59,242,121,150,59,122,56,150,59,243,246,149,59,93,181,149,59,184,115,149,59,3,50,149,59,64,240,148,59,109,174,148,59,140,108,148,59,155,42,148,59,155,232,147,59,141,166,147,59,112,100,147,59,67,34,147,59,8,224,146,59,190,157,146,59,101,91,146,59,254,24,146,59,136,214,145,59,3,148,145,59,111,81,145,59,205,14,145,59,28,204,144,59,92,137,144,59,142,70,144,59,177,3,144,59,198,192,143,59,205,125,143,59,196,58,143,59,174,247,142,59,137,180,142,59,86,
113,142,59,20,46,142,59,196,234,141,59,102,167,141,59,249,99,141,59,127,32,141,59,246,220,140,59,94,153,140,59,185,85,140,59,6,18,140,59,68,206,139,59,117,138,139,59,151,70,139,59,172,2,139,59,178,190,138,59,171,122,138,59,150,54,138,59,115,242,137,59,65,174,137,59,3,106,137,59,182,37,137,59,91,225,136,59,243,156,136,59,125,88,136,59,250,19,136,59,105,207,135,59,202,138,135,59,29,70,135,59,99,1,135,59,156,188,134,59,199,119,134,59,228,50,134,59,244,237,133,59,247,168,133,59,236,99,133,59,212,30,133,
59,175,217,132,59,124,148,132,59,60,79,132,59,239,9,132,59,149,196,131,59,45,127,131,59,184,57,131,59,54,244,130,59,167,174,130,59,11,105,130,59,98,35,130,59,172,221,129,59,233,151,129,59,25,82,129,59,60,12,129,59,83,198,128,59,92,128,128,59,89,58,128,59,145,232,127,59,87,92,127,59,3,208,126,59,150,67,126,59,16,183,125,59,112,42,125,59,184,157,124,59,230,16,124,59,251,131,123,59,247,246,122,59,218,105,122,59,164,220,121,59,85,79,121,59,237,193,120,59,108,52,120,59,211,166,119,59,33,25,119,59,87,139,
118,59,116,253,117,59,121,111,117,59,101,225,116,59,57,83,116,59,245,196,115,59,152,54,115,59,36,168,114,59,151,25,114,59,242,138,113,59,53,252,112,59,97,109,112,59,116,222,111,59,112,79,111,59,84,192,110,59,32,49,110,59,213,161,109,59,114,18,109,59,247,130,108,59,102,243,107,59,188,99,107,59,252,211,106,59,36,68,106,59,53,180,105,59,47,36,105,59,18,148,104,59,222,3,104,59,147,115,103,59,49,227,102,59,185,82,102,59,41,194,101,59,131,49,101,59,198,160,100,59,243,15,100,59,9,127,99,59,9,238,98,59,242,
92,98,59,197,203,97,59,130,58,97,59,41,169,96,59,185,23,96,59,51,134,95,59,152,244,94,59,230,98,94,59,31,209,93,59,65,63,93,59,78,173,92,59,69,27,92,59,39,137,91,59,243,246,90,59,169,100,90,59,74,210,89,59,213,63,89,59,76,173,88,59,173,26,88,59,248,135,87,59,47,245,86,59,80,98,86,59,93,207,85,59,84,60,85,59,55,169,84,59,4,22,84,59,189,130,83,59,98,239,82,59,241,91,82,59,108,200,81,59,211,52,81,59,37,161,80,59,98,13,80,59,139,121,79,59,160,229,78,59,161,81,78,59,142,189,77,59,102,41,77,59,43,149,76,
59,219,0,76,59,120,108,75,59,1,216,74,59,117,67,74,59,215,174,73,59,36,26,73,59,94,133,72,59,133,240,71,59,152,91,71,59,151,198,70,59,132,49,70,59,93,156,69,59,34,7,69,59,213,113,68,59,116,220,67,59,1,71,67,59,123,177,66,59,225,27,66,59,53,134,65,59,118,240,64,59,164,90,64,59,192,196,63,59,201,46,63,59,192,152,62,59,164,2,62,59,117,108,61,59,53,214,60,59,226,63,60,59,125,169,59,59,6,19,59,59,124,124,58,59,225,229,57,59,52,79,57,59,117,184,56,59,164,33,56,59,193,138,55,59,204,243,54,59,198,92,54,59,
175,197,53,59,134,46,53,59,75,151,52,59,255,255,51,59,162,104,51,59,51,209,50,59,179,57,50,59,35,162,49,59,129,10,49,59,206,114,48,59,10,219,47,59,53,67,47,59,80,171,46,59,90,19,46,59,83,123,45,59,59,227,44,59,19,75,44,59,218,178,43,59,145,26,43,59,56,130,42,59,207,233,41,59,85,81,41,59,203,184,40,59,49,32,40,59,134,135,39,59,204,238,38,59,2,86,38,59,40,189,37,59,63,36,37,59,69,139,36,59,60,242,35,59,36,89,35,59,252,191,34,59,196,38,34,59,125,141,33,59,39,244,32,59,193,90,32,59,77,193,31,59,201,39,
31,59,54,142,30,59,148,244,29,59,227,90,29,59,35,193,28,59,85,39,28,59,119,141,27,59,139,243,26,59,145,89,26,59,135,191,25,59,112,37,25,59,74,139,24,59,21,241,23,59,211,86,23,59,130,188,22,59,34,34,22,59,181,135,21,59,58,237,20,59,177,82,20,59,26,184,19,59,117,29,19,59,194,130,18,59,2,232,17,59,51,77,17,59,88,178,16,59,111,23,16,59,120,124,15,59,116,225,14,59,99,70,14,59,68,171,13,59,24,16,13,59,223,116,12,59,153,217,11,59,71,62,11,59,231,162,10,59,122,7,10,59,0,108,9,59,122,208,8,59,231,52,8,59,
72,153,7,59,156,253,6,59,227,97,6,59,30,198,5,59,77,42,5,59,111,142,4,59,134,242,3,59,144,86,3,59,142,186,2,59,128,30,2,59,102,130,1,59,64,230,0,59,14,74,0,59,162,91,255,58,15,35,254,58,102,234,252,58,166,177,251,58,206,120,250,58,224,63,249,58,219,6,248,58,191,205,246,58,141,148,245,58,69,91,244,58,230,33,243,58,113,232,241,58,231,174,240,58,70,117,239,58,144,59,238,58,197,1,237,58,228,199,235,58,237,141,234,58,226,83,233,58,194,25,232,58,140,223,230,58,66,165,229,58,228,106,228,58,113,48,227,58,
233,245,225,58,77,187,224,58,158,128,223,58,218,69,222,58,2,11,221,58,23,208,219,58,24,149,218,58,6,90,217,58,225,30,216,58,168,227,214,58,92,168,213,58,254,108,212,58,140,49,211,58,8,246,209,58,114,186,208,58,201,126,207,58,14,67,206,58,65,7,205,58,98,203,203,58,112,143,202,58,110,83,201,58,89,23,200,58,52,219,198,58,253,158,197,58,180,98,196,58,91,38,195,58,241,233,193,58,118,173,192,58,234,112,191,58,78,52,190,58,161,247,188,58,229,186,187,58,24,126,186,58,59,65,185,58,78,4,184,58,81,199,182,58,
69,138,181,58,42,77,180,58,255,15,179,58,197,210,177,58,124,149,176,58,36,88,175,58,189,26,174,58,71,221,172,58,195,159,171,58,49,98,170,58,144,36,169,58,225,230,167,58,36,169,166,58,90,107,165,58,129,45,164,58,155,239,162,58,168,177,161,58,167,115,160,58,153,53,159,58,126,247,157,58,86,185,156,58,33,123,155,58,223,60,154,58,145,254,152,58,55,192,151,58,208,129,150,58,93,67,149,58,222,4,148,58,83,198,146,58,189,135,145,58,27,73,144,58,109,10,143,58,180,203,141,58,240,140,140,58,33,78,139,58,71,15,
138,58,98,208,136,58,114,145,135,58,120,82,134,58,115,19,133,58,100,212,131,58,75,149,130,58,40,86,129,58,252,22,128,58,138,175,125,58,9,49,123,58,118,178,120,58,208,51,118,58,23,181,115,58,76,54,113,58,112,183,110,58,129,56,108,58,130,185,105,58,113,58,103,58,80,187,100,58,29,60,98,58,219,188,95,58,137,61,93,58,39,190,90,58,181,62,88,58,52,191,85,58,164,63,83,58,6,192,80,58,89,64,78,58,158,192,75,58,213,64,73,58,254,192,70,58,26,65,68,58,41,193,65,58,43,65,63,58,33,193,60,58,10,65,58,58,231,192,
55,58,185,64,53,58,127,192,50,58,57,64,48,58,233,191,45,58,142,63,43,58,41,191,40,58,186,62,38,58,64,190,35,58,189,61,33,58,49,189,30,58,155,60,28,58,253,187,25,58,86,59,23,58,167,186,20,58,240,57,18,58,49,185,15,58,107,56,13,58,157,183,10,58,201,54,8,58,238,181,5,58,12,53,3,58,36,180,0,58,109,102,252,57,134,100,247,57,149,98,242,57,153,96,237,57,148,94,232,57,134,92,227,57,111,90,222,57,80,88,217,57,41,86,212,57,252,83,207,57,200,81,202,57,142,79,197,57,79,77,192,57,11,75,187,57,195,72,182,57,119,
70,177,57,39,68,172,57,213,65,167,57,129,63,162,57,43,61,157,57,212,58,152,57,125,56,147,57,37,54,142,57,206,51,137,57,120,49,132,57,71,94,126,57,162,89,116,57,2,85,106,57,105,80,96,57,215,75,86,57,78,71,76,57,206,66,66,57,88,62,56,57,238,57,46,57,145,53,36,57,66,49,26,57,1,45,16,57,209,40,6,57,98,73,248,56,71,65,228,56,82,57,208,56,133,49,188,56,226,41,168,56,109,34,148,56,38,27,128,56,31,40,88,56,88,26,48,56,252,12,8,56,28,0,192,55,76,206,95,55,237,120,126,54,209,31,193,182,7,94,128,183,19,115,
208,183,135,67,16,184,249,76,56,184,218,85,96,184,19,47,132,184,237,50,152,184,120,54,172,184,178,57,192,184,153,60,212,184,44,63,232,184,103,65,252,184,165,33,8,185,104,34,18,185,252,34,28,185,97,35,38,185,149,35,48,185,151,35,58,185,102,35,68,185,1,35,78,185,103,34,88,185,150,33,98,185,142,32,108,185,78,31,118,185,234,14,128,185,17,14,133,185,25,13,138,185,3,12,143,185,206,10,148,185,122,9,153,185,6,8,158,185,114,6,163,185,189,4,168,185,230,2,173,185,237,0,178,185,210,254,182,185,148,252,187,185,
50,250,192,185,172,247,197,185,1,245,202,185,50,242,207,185,60,239,212,185,33,236,217,185,222,232,222,185,116,229,227,185,227,225,232,185,41,222,237,185,70,218,242,185,58,214,247,185,4,210,252,185,210,230,0,186,140,100,3,186,49,226,5,186,191,95,8,186,55,221,10,186,153,90,13,186,228,215,15,186,24,85,18,186,52,210,20,186,57,79,23,186,38,204,25,186,251,72,28,186,183,197,30,186,91,66,33,186,230,190,35,186,88,59,38,186,176,183,40,186,238,51,43,186,19,176,45,186,29,44,48,186,13,168,50,186,226,35,53,186,
156,159,55,186,59,27,58,186,190,150,60,186,38,18,63,186,113,141,65,186,160,8,68,186,178,131,70,186,168,254,72,186,128,121,75,186,59,244,77,186,217,110,80,186,88,233,82,186,185,99,85,186,252,221,87,186,32,88,90,186,37,210,92,186,11,76,95,186,209,197,97,186,120,63,100,186,255,184,102,186,101,50,105,186,171,171,107,186,208,36,110,186,212,157,112,186,183,22,115,186,120,143,117,186,23,8,120,186,148,128,122,186,239,248,124,186,39,113,127,186,158,244,128,186,151,48,130,186,126,108,131,186,84,168,132,186,
23,228,133,186,201,31,135,186,104,91,136,186,245,150,137,186,111,210,138,186,215,13,140,186,44,73,141,186,110,132,142,186,157,191,143,186,185,250,144,186,194,53,146,186,183,112,147,186,153,171,148,186,103,230,149,186,33,33,151,186,200,91,152,186,90,150,153,186,216,208,154,186,66,11,156,186,152,69,157,186,216,127,158,186,5,186,159,186,28,244,160,186,30,46,162,186,12,104,163,186,228,161,164,186,166,219,165,186,84,21,167,186,235,78,168,186,109,136,169,186,217,193,170,186,47,251,171,186,111,52,173,186,
153,109,174,186,172,166,175,186,169,223,176,186,143,24,178,186,94,81,179,186,23,138,180,186,184,194,181,186,67,251,182,186,182,51,184,186,17,108,185,186,85,164,186,186,130,220,187,186,150,20,189,186,147,76,190,186,120,132,191,186,68,188,192,186,248,243,193,186,148,43,195,186,23,99,196,186,130,154,197,186,211,209,198,186,12,9,200,186,43,64,201,186,50,119,202,186,31,174,203,186,242,228,204,186,172,27,206,186,76,82,207,186,211,136,208,186,63,191,209,186,145,245,210,186,202,43,212,186,231,97,213,186,
234,151,214,186,211,205,215,186,161,3,217,186,84,57,218,186,236,110,219,186,105,164,220,186,202,217,221,186,16,15,223,186,59,68,224,186,74,121,225,186,62,174,226,186,21,227,227,186,208,23,229,186,112,76,230,186,243,128,231,186,89,181,232,186,163,233,233,186,209,29,235,186,225,81,236,186,213,133,237,186,172,185,238,186,101,237,239,186,1,33,241,186,128,84,242,186,226,135,243,186,37,187,244,186,75,238,245,186,83,33,247,186,61,84,248,186,9,135,249,186,182,185,250,186,69,236,251,186,181,30,253,186,7,81,
254,186,58,131,255,186,167,90,0,187,162,243,0,187,141,140,1,187,104,37,2,187,51,190,2,187,239,86,3,187,155,239,3,187,55,136,4,187,195,32,5,187,63,185,5,187,171,81,6,187,7,234,6,187,82,130,7,187,142,26,8,187,185,178,8,187,211,74,9,187,221,226,9,187,215,122,10,187,192,18,11,187,152,170,11,187,96,66,12,187,23,218,12,187,189,113,13,187,82,9,14,187,214,160,14,187,73,56,15,187,171,207,15,187,252,102,16,187,59,254,16,187,106,149,17,187,135,44,18,187,146,195,18,187,141,90,19,187,117,241,19,187,76,136,20,
187,18,31,21,187,198,181,21,187,103,76,22,187,248,226,22,187,118,121,23,187,226,15,24,187,60,166,24,187,132,60,25,187,186,210,25,187,222,104,26,187,240,254,26,187,239,148,27,187,220,42,28,187,182,192,28,187,126,86,29,187,52,236,29,187,214,129,30,187,102,23,31,187,227,172,31,187,78,66,32,187,165,215,32,187,234,108,33,187,28,2,34,187,58,151,34,187,70,44,35,187,62,193,35,187,35,86,36,187,245,234,36,187,179,127,37,187,94,20,38,187,245,168,38,187,121,61,39,187,233,209,39,187,70,102,40,187,143,250,40,187,
196,142,41,187,229,34,42,187,242,182,42,187,236,74,43,187,209,222,43,187,162,114,44,187,95,6,45,187,8,154,45,187,157,45,46,187,29,193,46,187,137,84,47,187,224,231,47,187,35,123,48,187,81,14,49,187,107,161,49,187,112,52,50,187,96,199,50,187,59,90,51,187,2,237,51,187,179,127,52,187,80,18,53,187,215,164,53,187,74,55,54,187,167,201,54,187,239,91,55,187,33,238,55,187,63,128,56,187,71,18,57,187,57,164,57,187,22,54,58,187,221,199,58,187,143,89,59,187,43,235,59,187,177,124,60,187,33,14,61,187,123,159,61,
187,192,48,62,187,238,193,62,187,7,83,63,187,9,228,63,187,245,116,64,187,203,5,65,187,138,150,65,187,51,39,66,187,198,183,66,187,66,72,67,187,168,216,67,187,247,104,68,187,47,249,68,187,81,137,69,187,92,25,70,187,80,169,70,187,45,57,71,187,243,200,71,187,162,88,72,187,59,232,72,187,188,119,73,187,37,7,74,187,120,150,74,187,179,37,75,187,215,180,75,187,227,67,76,187,216,210,76,187,182,97,77,187,124,240,77,187,42,127,78,187,192,13,79,187,63,156,79,187,166,42,80,187,245,184,80,187,44,71,81,187,75,213,
81,187,81,99,82,187,64,241,82,187,23,127,83,187,213,12,84,187,123,154,84,187,9,40,85,187,126,181,85,187,219,66,86,187,32,208,86,187,75,93,87,187,94,234,87,187,89,119,88,187,58,4,89,187,3,145,89,187,179,29,90,187,74,170,90,187,200,54,91,187,45,195,91,187,121,79,92,187,172,219,92,187,197,103,93,187,198,243,93,187,173,127,94,187,122,11,95,187,46,151,95,187,201,34,96,187,74,174,96,187,177,57,97,187,255,196,97,187,51,80,98,187,77,219,98,187,78,102,99,187,52,241,99,187,1,124,100,187,179,6,101,187,76,145,
101,187,202,27,102,187,46,166,102,187,120,48,103,187,168,186,103,187,189,68,104,187,184,206,104,187,153,88,105,187,95,226,105,187,10,108,106,187,155,245,106,187,17,127,107,187,108,8,108,187,172,145,108,187,210,26,109,187,221,163,109,187,205,44,110,187,161,181,110,187,91,62,111,187,250,198,111,187,125,79,112,187,229,215,112,187,50,96,113,187,100,232,113,187,122,112,114,187,116,248,114,187,83,128,115,187,23,8,116,187,191,143,116,187,75,23,117,187,188,158,117,187,16,38,118,187,73,173,118,187,102,52,
119,187,103,187,119,187,76,66,120,187,21,201,120,187,194,79,121,187,83,214,121,187,199,92,122,187,31,227,122,187,91,105,123,187,122,239,123,187,125,117,124,187,100,251,124,187,45,129,125,187,219,6,126,187,107,140,126,187,223,17,127,187,54,151,127,187,56,14,128,187,199,80,128,187,71,147,128,187,185,213,128,187,28,24,129,187,113,90,129,187,183,156,129,187,238,222,129,187,23,33,130,187,49,99,130,187,61,165,130,187,58,231,130,187,40,41,131,187,7,107,131,187,216,172,131,187,153,238,131,187,76,48,132,187,
240,113,132,187,133,179,132,187,12,245,132,187,131,54,133,187,235,119,133,187,68,185,133,187,142,250,133,187,202,59,134,187,246,124,134,187,19,190,134,187,32,255,134,187,31,64,135,187,15,129,135,187,239,193,135,187,192,2,136,187,130,67,136,187,52,132,136,187,215,196,136,187,107,5,137,187,240,69,137,187,101,134,137,187,202,198,137,187,32,7,138,187,103,71,138,187,158,135,138,187,198,199,138,187,222,7,139,187,231,71,139,187,224,135,139,187,201,199,139,187,163,7,140,187,109,71,140,187,39,135,140,187,
209,198,140,187,108,6,141,187,247,69,141,187,114,133,141,187,222,196,141,187,57,4,142,187,133,67,142,187,192,130,142,187,236,193,142,187,8,1,143,187,20,64,143,187,16,127,143,187,251,189,143,187,215,252,143,187,163,59,144,187,94,122,144,187,9,185,144,187,164,247,144,187,47,54,145,187,170,116,145,187,21,179,145,187,111,241,145,187,185,47,146,187,242,109,146,187,28,172,146,187,53,234,146,187,61,40,147,187,53,102,147,187,29,164,147,187,244,225,147,187,187,31,148,187,113,93,148,187,23,155,148,187,172,
216,148,187,48,22,149,187,164,83,149,187,7,145,149,187,90,206,149,187,156,11,150,187,205,72,150,187,237,133,150,187,253,194,150,187,252,255,150,187,234,60,151,187,199,121,151,187,147,182,151,187,79,243,151,187,249,47,152,187,147,108,152,187,27,169,152,187,147,229,152,187,250,33,153,187,79,94,153,187,148,154,153,187,199,214,153,187,234,18,154,187,251,78,154,187,251,138,154,187,234,198,154,187,200,2,155,187,148,62,155,187,79,122,155,187,249,181,155,187,146,241,155,187,25,45,156,187,143,104,156,187,
244,163,156,187,71,223,156,187,137,26,157,187,185,85,157,187,216,144,157,187,229,203,157,187,225,6,158,187,203,65,158,187,164,124,158,187,107,183,158,187,33,242,158,187,197,44,159,187,87,103,159,187,216,161,159,187,71,220,159,187,164,22,160,187,239,80,160,187,41,139,160,187,81,197,160,187,103,255,160,187,107,57,161,187,93,115,161,187,62,173,161,187,12,231,161,187,201,32,162,187,115,90,162,187,12,148,162,187,147,205,162,187,7,7,163,187,106,64,163,187,186,121,163,187,249,178,163,187,37,236,163,187,
63,37,164,187,71,94,164,187,61,151,164,187,32,208,164,187,242,8,165,187,177,65,165,187,93,122,165,187,248,178,165,187,128,235,165,187,246,35,166,187,89,92,166,187,170,148,166,187,233,204,166,187,21,5,167,187,47,61,167,187,54,117,167,187,43,173,167,187,13,229,167,187,221,28,168,187,154,84,168,187,68,140,168,187,220,195,168,187,97,251,168,187,212,50,169,187,52,106,169,187,129,161,169,187,187,216,169,187,227,15,170,187,248,70,170,187,250,125,170,187,233,180,170,187,198,235,170,187,143,34,171,187,70,
89,171,187,234,143,171,187,123,198,171,187,249,252,171,187,100,51,172,187,188,105,172,187,1,160,172,187,51,214,172,187,82,12,173,187,94,66,173,187,86,120,173,187,60,174,173,187,14,228,173,187,206,25,174,187,122,79,174,187,19,133,174,187,152,186,174,187,11,240,174,187,106,37,175,187,182,90,175,187,238,143,175,187,19,197,175,187,37,250,175,187,36,47,176,187,15,100,176,187,231,152,176,187,171,205,176,187,92,2,177,187,249,54,177,187,131,107,177,187,249,159,177,187,92,212,177,187,171,8,178,187,230,60,
178,187,14,113,178,187,35,165,178,187,35,217,178,187,16,13,179,187,234,64,179,187,175,116,179,187,97,168,179,187,255,219,179,187,138,15,180,187,0,67,180,187,99,118,180,187,178,169,180,187,237,220,180,187,20,16,181,187,39,67,181,187,39,118,181,187,18,169,181,187,234,219,181,187,173,14,182,187,93,65,182,187,248,115,182,187,128,166,182,187,243,216,182,187,82,11,183,187,158,61,183,187,213,111,183,187,248,161,183,187,7,212,183,187,1,6,184,187,232,55,184,187,186,105,184,187,120,155,184,187,34,205,184,187,
183,254,184,187,56,48,185,187,165,97,185,187,254,146,185,187,66,196,185,187,114,245,185,187,141,38,186,187,148,87,186,187,135,136,186,187,101,185,186,187,47,234,186,187,228,26,187,187,133,75,187,187,17,124,187,187,136,172,187,187,235,220,187,187,58,13,188,187,116,61,188,187,153,109,188,187,169,157,188,187,165,205,188,187,141,253,188,187,95,45,189,187,29,93,189,187,198,140,189,187,90,188,189,187,218,235,189,187,69,27,190,187,155,74,190,187,220,121,190,187,8,169,190,187,32,216,190,187,34,7,191,187,
16,54,191,187,232,100,191,187,172,147,191,187,91,194,191,187,245,240,191,187,122,31,192,187,233,77,192,187,68,124,192,187,138,170,192,187,186,216,192,187,214,6,193,187,220,52,193,187,206,98,193,187,170,144,193,187,113,190,193,187,35,236,193,187,192,25,194,187,71,71,194,187,185,116,194,187,22,162,194,187,94,207,194,187,144,252,194,187,173,41,195,187,181,86,195,187,167,131,195,187,133,176,195,187,76,221,195,187,255,9,196,187,155,54,196,187,35,99,196,187,149,143,196,187,242,187,196,187,57,232,196,187,
106,20,197,187,134,64,197,187,141,108,197,187,126,152,197,187,89,196,197,187,31,240,197,187,207,27,198,187,106,71,198,187,239,114,198,187,94,158,198,187,184,201,198,187,252,244,198,187,42,32,199,187,67,75,199,187,70,118,199,187,51,161,199,187,10,204,199,187,203,246,199,187,119,33,200,187,13,76,200,187,141,118,200,187,247,160,200,187,76,203,200,187,138,245,200,187,179,31,201,187,197,73,201,187,194,115,201,187,169,157,201,187,121,199,201,187,52,241,201,187,217,26,202,187,104,68,202,187,224,109,202,
187,67,151,202,187,144,192,202,187,198,233,202,187,231,18,203,187,241,59,203,187,229,100,203,187,195,141,203,187,139,182,203,187,61,223,203,187,216,7,204,187,93,48,204,187,204,88,204,187,37,129,204,187,104,169,204,187,148,209,204,187,170,249,204,187,170,33,205,187,147,73,205,187,102,113,205,187,35,153,205,187,201,192,205,187,89,232,205,187,210,15,206,187,54,55,206,187,130,94,206,187,184,133,206,187,216,172,206,187,226,211,206,187,212,250,206,187,177,33,207,187,118,72,207,187,38,111,207,187,190,149,
207,187,65,188,207,187,172,226,207,187,1,9,208,187,63,47,208,187,103,85,208,187,120,123,208,187,115,161,208,187,87,199,208,187,36,237,208,187,218,18,209,187,122,56,209,187,3,94,209,187,117,131,209,187,208,168,209,187,21,206,209,187,67,243,209,187,90,24,210,187,90,61,210,187,68,98,210,187,22,135,210,187,210,171,210,187,119,208,210,187,5,245,210,187,124,25,211,187,220,61,211,187,38,98,211,187,88,134,211,187,115,170,211,187,120,206,211,187,101,242,211,187,60,22,212,187,251,57,212,187,164,93,212,187,
53,129,212,187,175,164,212,187,18,200,212,187,95,235,212,187,148,14,213,187,178,49,213,187,185,84,213,187,168,119,213,187,129,154,213,187,66,189,213,187,236,223,213,187,128,2,214,187,251,36,214,187,96,71,214,187,173,105,214,187,228,139,214,187,3,174,214,187,10,208,214,187,251,241,214,187,212,19,215,187,149,53,215,187,64,87,215,187,211,120,215,187,79,154,215,187,179,187,215,187,0,221,215,187],"i8",4,y.a+378880);
Q([54,254,215,187,84,31,216,187,91,64,216,187,75,97,216,187,35,130,216,187,227,162,216,187,140,195,216,187,30,228,216,187,152,4,217,187,251,36,217,187,70,69,217,187,122,101,217,187,150,133,217,187,155,165,217,187,136,197,217,187,93,229,217,187,27,5,218,187,193,36,218,187,80,68,218,187,199,99,218,187,39,131,218,187,110,162,218,187,159,193,218,187,183,224,218,187,184,255,218,187,161,30,219,187,114,61,219,187,44,92,219,187,206,122,219,187,88,153,219,187,203,183,219,187,38,214,219,187,105,244,219,187,
148,18,220,187,167,48,220,187,163,78,220,187,135,108,220,187,83,138,220,187,7,168,220,187,163,197,220,187,40,227,220,187,148,0,221,187,233,29,221,187,38,59,221,187,75,88,221,187,88,117,221,187,77,146,221,187,42,175,221,187,239,203,221,187,156,232,221,187,50,5,222,187,175,33,222,187,20,62,222,187,97,90,222,187,151,118,222,187,180,146,222,187,185,174,222,187,166,202,222,187,123,230,222,187,56,2,223,187,221,29,223,187,106,57,223,187,223,84,223,187,60,112,223,187,128,139,223,187,173,166,223,187,193,193,
223,187,189,220,223,187,161,247,223,187,109,18,224,187,33,45,224,187,188,71,224,187,64,98,224,187,171,124,224,187,254,150,224,187,56,177,224,187,91,203,224,187,101,229,224,187,87,255,224,187,49,25,225,187,242,50,225,187,155,76,225,187,44,102,225,187,164,127,225,187,5,153,225,187,76,178,225,187,124,203,225,187,147,228,225,187,146,253,225,187,121,22,226,187,71,47,226,187,252,71,226,187,154,96,226,187,31,121,226,187,139,145,226,187,223,169,226,187,27,194,226,187,63,218,226,187,73,242,226,187,60,10,227,
187,22,34,227,187,215,57,227,187,128,81,227,187,17,105,227,187,137,128,227,187,232,151,227,187,47,175,227,187,94,198,227,187,116,221,227,187,113,244,227,187,86,11,228,187,35,34,228,187,215,56,228,187,114,79,228,187,244,101,228,187,95,124,228,187,176,146,228,187,233,168,228,187,9,191,228,187,17,213,228,187,0,235,228,187,214,0,229,187,148,22,229,187,57,44,229,187,198,65,229,187,57,87,229,187,149,108,229,187,215,129,229,187,1,151,229,187,18,172,229,187,10,193,229,187,234,213,229,187,177,234,229,187,
95,255,229,187,244,19,230,187,113,40,230,187,213,60,230,187,32,81,230,187,83,101,230,187,109,121,230,187,110,141,230,187,86,161,230,187,37,181,230,187,220,200,230,187,121,220,230,187,254,239,230,187,106,3,231,187,190,22,231,187,248,41,231,187,26,61,231,187,35,80,231,187,19,99,231,187,234,117,231,187,168,136,231,187,77,155,231,187,218,173,231,187,77,192,231,187,168,210,231,187,234,228,231,187,19,247,231,187,35,9,232,187,26,27,232,187,248,44,232,187,189,62,232,187,105,80,232,187,253,97,232,187,119,
115,232,187,216,132,232,187,33,150,232,187,80,167,232,187,103,184,232,187,100,201,232,187,73,218,232,187,21,235,232,187,199,251,232,187,97,12,233,187,225,28,233,187,73,45,233,187,151,61,233,187,205,77,233,187,233,93,233,187,237,109,233,187,215,125,233,187,169,141,233,187,97,157,233,187,0,173,233,187,134,188,233,187,243,203,233,187,71,219,233,187,130,234,233,187,164,249,233,187,173,8,234,187,157,23,234,187,115,38,234,187,49,53,234,187,213,67,234,187,97,82,234,187,211,96,234,187,44,111,234,187,108,
125,234,187,147,139,234,187,160,153,234,187,149,167,234,187,112,181,234,187,50,195,234,187,219,208,234,187,107,222,234,187,226,235,234,187,64,249,234,187,132,6,235,187,175,19,235,187,193,32,235,187,186,45,235,187,154,58,235,187,96,71,235,187,13,84,235,187,162,96,235,187,28,109,235,187,126,121,235,187,198,133,235,187,246,145,235,187,12,158,235,187,8,170,235,187,236,181,235,187,182,193,235,187,103,205,235,187,255,216,235,187,126,228,235,187,227,239,235,187,47,251,235,187,98,6,236,187,124,17,236,187,
124,28,236,187,99,39,236,187,49,50,236,187,229,60,236,187,128,71,236,187,2,82,236,187,107,92,236,187,186,102,236,187,241,112,236,187,13,123,236,187,17,133,236,187,251,142,236,187,204,152,236,187,132,162,236,187,34,172,236,187,167,181,236,187,19,191,236,187,101,200,236,187,158,209,236,187,190,218,236,187,196,227,236,187,177,236,236,187,133,245,236,187,64,254,236,187,225,6,237,187,105,15,237,187,215,23,237,187,44,32,237,187,104,40,237,187,138,48,237,187,147,56,237,187,131,64,237,187,89,72,237,187,22,
80,237,187,186,87,237,187,68,95,237,187,181,102,237,187,13,110,237,187,75,117,237,187,112,124,237,187,124,131,237,187,110,138,237,187,71,145,237,187,6,152,237,187,172,158,237,187,57,165,237,187,172,171,237,187,6,178,237,187,70,184,237,187,110,190,237,187,123,196,237,187,112,202,237,187,75,208,237,187,12,214,237,187,181,219,237,187,68,225,237,187,185,230,237,187,21,236,237,187,88,241,237,187,129,246,237,187,145,251,237,187,136,0,238,187,101,5,238,187,40,10,238,187,211,14,238,187,100,19,238,187,219,
23,238,187,58,28,238,187,126,32,238,187,170,36,238,187,188,40,238,187,180,44,238,187,147,48,238,187,89,52,238,187,5,56,238,187,152,59,238,187,18,63,238,187,114,66,238,187,185,69,238,187,230,72,238,187,250,75,238,187,245,78,238,187,214,81,238,187,158,84,238,187,76,87,238,187,225,89,238,187,93,92,238,187,191,94,238,187,7,97,238,187,55,99,238,187,77,101,238,187,73,103,238,187,44,105,238,187,246,106,238,187,167,108,238,187,62,110,238,187,187,111,238,187,31,113,238,187,106,114,238,187,155,115,238,187,
179,116,238,187,178,117,238,187,151,118,238,187,99,119,238,187,21,120,238,187,174,120,238,187,46,121,238,187,148,121,238,187,225,121,238,187,21,122,238,187,47,122,238,187,47,122,238,187,23,122,238,187,229,121,238,187,153,121,238,187,52,121,238,187,182,120,238,187,30,120,238,187,109,119,238,187,163,118,238,187,191,117,238,187,194,116,238,187,172,115,238,187,124,114,238,187,51,113,238,187,208,111,238,187,84,110,238,187,191,108,238,187,17,107,238,187,73,105,238,187,103,103,238,187,108,101,238,187,88,
99,238,187,43,97,238,187,228,94,238,187,132,92,238,187,11,90,238,187,120,87,238,187,204,84,238,187,7,82,238,187,40,79,238,187,48,76,238,187,30,73,238,187,243,69,238,187,175,66,238,187,82,63,238,187,219,59,238,187,75,56,238,187,162,52,238,187,223,48,238,187,3,45,238,187,14,41,238,187,255,36,238,187,216,32,238,187,150,28,238,187,60,24,238,187,200,19,238,187,59,15,238,187,149,10,238,187,213,5,238,187,252,0,238,187,10,252,237,187,255,246,237,187,218,241,237,187,156,236,237,187,69,231,237,187,213,225,
237,187,75,220,237,187,168,214,237,187,236,208,237,187,22,203,237,187,40,197,237,187,32,191,237,187,255,184,237,187,196,178,237,187,112,172,237,187,4,166,237,187,126,159,237,187,222,152,237,187,38,146,237,187,84,139,237,187,105,132,237,187,101,125,237,187,72,118,237,187,17,111,237,187,194,103,237,187,89,96,237,187,215,88,237,187,60,81,237,187,136,73,237,187,186,65,237,187,211,57,237,187,212,49,237,187,187,41,237,187,136,33,237,187,61,25,237,187,217,16,237,187,91,8,237,187,197,255,236,187,21,247,236,
187,76,238,236,187,106,229,236,187,111,220,236,187,91,211,236,187,45,202,236,187,231,192,236,187,136,183,236,187,15,174,236,187,125,164,236,187,211,154,236,187,15,145,236,187,50,135,236,187,60,125,236,187,45,115,236,187,5,105,236,187,196,94,236,187,106,84,236,187,247,73,236,187,107,63,236,187,198,52,236,187,8,42,236,187,49,31,236,187,64,20,236,187,55,9,236,187,21,254,235,187,218,242,235,187,134,231,235,187,25,220,235,187,147,208,235,187,244,196,235,187,60,185,235,187,107,173,235,187,129,161,235,187,
126,149,235,187,99,137,235,187,46,125,235,187,225,112,235,187,122,100,235,187,251,87,235,187,98,75,235,187,177,62,235,187,231,49,235,187,4,37,235,187,9,24,235,187,244,10,235,187,198,253,234,187,128,240,234,187,33,227,234,187,169,213,234,187,24,200,234,187,110,186,234,187,172,172,234,187,208,158,234,187,220,144,234,187,207,130,234,187,170,116,234,187,107,102,234,187,20,88,234,187,164,73,234,187,27,59,234,187,121,44,234,187,191,29,234,187,236,14,234,187,0,0,234,187,252,240,233,187,223,225,233,187,169,
210,233,187,90,195,233,187,243,179,233,187,115,164,233,187,218,148,233,187,41,133,233,187,95,117,233,187,124,101,233,187,129,85,233,187,109,69,233,187,64,53,233,187,251,36,233,187,157,20,233,187,38,4,233,187,151,243,232,187,240,226,232,187,47,210,232,187,86,193,232,187,101,176,232,187,91,159,232,187,57,142,232,187,254,124,232,187,170,107,232,187,62,90,232,187,185,72,232,187,28,55,232,187,102,37,232,187,152,19,232,187,178,1,232,187,178,239,231,187,155,221,231,187,107,203,231,187,34,185,231,187,193,
166,231,187,72,148,231,187,182,129,231,187,12,111,231,187,73,92,231,187,110,73,231,187,123,54,231,187,111,35,231,187,75,16,231,187,14,253,230,187,186,233,230,187,76,214,230,187,199,194,230,187,41,175,230,187,115,155,230,187,164,135,230,187,189,115,230,187,190,95,230,187,167,75,230,187,119,55,230,187,48,35,230,187,207,14,230,187,87,250,229,187,198,229,229,187,30,209,229,187,93,188,229,187,131,167,229,187,146,146,229,187,136,125,229,187,103,104,229,187,45,83,229,187,219,61,229,187,112,40,229,187,238,
18,229,187,83,253,228,187,161,231,228,187,214,209,228,187,243,187,228,187,249,165,228,187,230,143,228,187,187,121,228,187,120,99,228,187,28,77,228,187,169,54,228,187,30,32,228,187,123,9,228,187,192,242,227,187,237,219,227,187,2,197,227,187,255,173,227,187,228,150,227,187,177,127,227,187,102,104,227,187,3,81,227,187,136,57,227,187,246,33,227,187,75,10,227,187,137,242,226,187,175,218,226,187,188,194,226,187,178,170,226,187,145,146,226,187,87,122,226,187,6,98,226,187,156,73,226,187,27,49,226,187,131,
24,226,187,210,255,225,187,10,231,225,187,42,206,225,187,50,181,225,187,34,156,225,187,251,130,225,187,188,105,225,187,102,80,225,187,247,54,225,187,113,29,225,187,212,3,225,187,31,234,224,187,82,208,224,187,109,182,224,187,113,156,224,187,93,130,224,187,50,104,224,187,239,77,224,187,149,51,224,187,35,25,224,187,154,254,223,187,249,227,223,187,64,201,223,187,112,174,223,187,137,147,223,187,138,120,223,187,115,93,223,187,70,66,223,187,0,39,223,187,164,11,223,187,48,240,222,187,164,212,222,187,1,185,
222,187,71,157,222,187,117,129,222,187,140,101,222,187,140,73,222,187,117,45,222,187,70,17,222,187,255,244,221,187,162,216,221,187,45,188,221,187,161,159,221,187,254,130,221,187,68,102,221,187,114,73,221,187,137,44,221,187,137,15,221,187,114,242,220,187,67,213,220,187,254,183,220,187,161,154,220,187,45,125,220,187,162,95,220,187,0,66,220,187,71,36,220,187,119,6,220,187,143,232,219,187,145,202,219,187,124,172,219,187,79,142,219,187,12,112,219,187,178,81,219,187,64,51,219,187,184,20,219,187,25,246,
218,187,99,215,218,187,150,184,218,187,178,153,218,187,183,122,218,187,165,91,218,187,125,60,218,187,61,29,218,187,231,253,217,187,122,222,217,187,246,190,217,187,91,159,217,187,169,127,217,187,225,95,217,187,2,64,217,187,12,32,217,187,0,0,217,187,221,223,216,187,163,191,216,187,82,159,216,187,235,126,216,187,109,94,216,187,217,61,216,187,45,29,216,187,108,252,215,187,147,219,215,187,164,186,215,187,159,153,215,187,131,120,215,187,80,87,215,187,7,54,215,187,168,20,215,187,50,243,214,187,165,209,214,
187,2,176,214,187,73,142,214,187,121,108,214,187,147,74,214,187,150,40,214,187,131,6,214,187,90,228,213,187,26,194,213,187,196,159,213,187,87,125,213,187,212,90,213,187,59,56,213,187,140,21,213,187,199,242,212,187,235,207,212,187,249,172,212,187,241,137,212,187,210,102,212,187,157,67,212,187,83,32,212,187,242,252,211,187,123,217,211,187,238,181,211,187,74,146,211,187,145,110,211,187,193,74,211,187,220,38,211,187,224,2,211,187,207,222,210,187,167,186,210,187,106,150,210,187,22,114,210,187,173,77,210,
187,45,41,210,187,152,4,210,187,237,223,209,187,43,187,209,187,84,150,209,187,103,113,209,187,101,76,209,187,76,39,209,187,30,2,209,187,218,220,208,187,128,183,208,187,16,146,208,187,138,108,208,187,239,70,208,187,62,33,208,187,120,251,207,187,155,213,207,187,170,175,207,187,162,137,207,187,133,99,207,187,82,61,207,187,9,23,207,187,171,240,206,187,56,202,206,187,175,163,206,187,16,125,206,187,92,86,206,187,146,47,206,187,179,8,206,187,191,225,205,187,181,186,205,187,149,147,205,187,96,108,205,187,
22,69,205,187,183,29,205,187,66,246,204,187,183,206,204,187,24,167,204,187,99,127,204,187,153,87,204,187,185,47,204,187,197,7,204,187,187,223,203,187,155,183,203,187,103,143,203,187,30,103,203,187,191,62,203,187,75,22,203,187,194,237,202,187,36,197,202,187,113,156,202,187,169,115,202,187,203,74,202,187,217,33,202,187,210,248,201,187,181,207,201,187,132,166,201,187,62,125,201,187,227,83,201,187,114,42,201,187,237,0,201,187,83,215,200,187,165,173,200,187,225,131,200,187,8,90,200,187,27,48,200,187,25,
6,200,187,2,220,199,187,214,177,199,187,150,135,199,187,65,93,199,187,215,50,199,187,89,8,199,187,197,221,198,187,30,179,198,187,97,136,198,187,144,93,198,187,170,50,198,187,176,7,198,187,161,220,197,187,126,177,197,187,70,134,197,187,250,90,197,187,153,47,197,187,35,4,197,187,154,216,196,187,252,172,196,187,73,129,196,187,130,85,196,187,167,41,196,187,183,253,195,187,179,209,195,187,155,165,195,187,110,121,195,187,45,77,195,187,216,32,195,187,111,244,194,187,241,199,194,187,95,155,194,187,185,110,
194,187,255,65,194,187,49,21,194,187,79,232,193,187,88,187,193,187,78,142,193,187,47,97,193,187,253,51,193,187,182,6,193,187,92,217,192,187,237,171,192,187,106,126,192,187,212,80,192,187,42,35,192,187,107,245,191,187,153,199,191,187,179,153,191,187,185,107,191,187,172,61,191,187,138,15,191,187,85,225,190,187,12,179,190,187,175,132,190,187,63,86,190,187,187,39,190,187,35,249,189,187,119,202,189,187,184,155,189,187,230,108,189,187,255,61,189,187,5,15,189,187,248,223,188,187,215,176,188,187,162,129,
188,187,90,82,188,187,255,34,188,187,144,243,187,187,14,196,187,187,120,148,187,187,207,100,187,187,18,53,187,187,67,5,187,187,95,213,186,187,105,165,186,187,95,117,186,187,66,69,186,187,18,21,186,187,206,228,185,187,120,180,185,187,14,132,185,187,145,83,185,187,1,35,185,187,94,242,184,187,167,193,184,187,222,144,184,187,1,96,184,187,18,47,184,187,15,254,183,187,250,204,183,187,209,155,183,187,150,106,183,187,71,57,183,187,230,7,183,187,114,214,182,187,235,164,182,187,81,115,182,187,164,65,182,187,
229,15,182,187,19,222,181,187,46,172,181,187,54,122,181,187,44,72,181,187,15,22,181,187,223,227,180,187,156,177,180,187,71,127,180,187,224,76,180,187,101,26,180,187,217,231,179,187,57,181,179,187,135,130,179,187,195,79,179,187,236,28,179,187,3,234,178,187,7,183,178,187,249,131,178,187,217,80,178,187,166,29,178,187,97,234,177,187,10,183,177,187,160,131,177,187,36,80,177,187,149,28,177,187,245,232,176,187,66,181,176,187,125,129,176,187,166,77,176,187,189,25,176,187,194,229,175,187,181,177,175,187,149,
125,175,187,100,73,175,187,32,21,175,187,203,224,174,187,99,172,174,187,234,119,174,187,94,67,174,187,193,14,174,187,18,218,173,187,81,165,173,187,126,112,173,187,153,59,173,187,163,6,173,187,154,209,172,187,128,156,172,187,84,103,172,187,23,50,172,187,200,252,171,187,103,199,171,187,245,145,171,187,113,92,171,187,219,38,171,187,52,241,170,187,123,187,170,187,177,133,170,187,213,79,170,187,232,25,170,187,233,227,169,187,217,173,169,187,183,119,169,187,132,65,169,187,64,11,169,187,235,212,168,187,
132,158,168,187,11,104,168,187,130,49,168,187,231,250,167,187,59,196,167,187,126,141,167,187,176,86,167,187,208,31,167,187,224,232,166,187,222,177,166,187,204,122,166,187,168,67,166,187,115,12,166,187,45,213,165,187,214,157,165,187,111,102,165,187,246,46,165,187,108,247,164,187,210,191,164,187,39,136,164,187,106,80,164,187,157,24,164,187,192,224,163,187,209,168,163,187,210,112,163,187,194,56,163,187,161,0,163,187,112,200,162,187,46,144,162,187,219,87,162,187,120,31,162,187,4,231,161,187,128,174,161,
187,235,117,161,187,70,61,161,187,144,4,161,187,202,203,160,187,243,146,160,187,12,90,160,187,20,33,160,187,12,232,159,187,244,174,159,187,204,117,159,187,147,60,159,187,74,3,159,187,241,201,158,187,135,144,158,187,14,87,158,187,132,29,158,187,234,227,157,187,64,170,157,187,134,112,157,187,188,54,157,187,226,252,156,187,248,194,156,187,253,136,156,187,243,78,156,187,217,20,156,187,175,218,155,187,117,160,155,187,44,102,155,187,210,43,155,187,105,241,154,187,240,182,154,187,103,124,154,187,206,65,
154,187,38,7,154,187,110,204,153,187,166,145,153,187,207,86,153,187,232,27,153,187,241,224,152,187,235,165,152,187,214,106,152,187,177,47,152,187,124,244,151,187,56,185,151,187,229,125,151,187,130,66,151,187,16,7,151,187,142,203,150,187,253,143,150,187,93,84,150,187,173,24,150,187,239,220,149,187,33,161,149,187,67,101,149,187,87,41,149,187,92,237,148,187,81,177,148,187,55,117,148,187,14,57,148,187,215,252,147,187,144,192,147,187,58,132,147,187,213,71,147,187,97,11,147,187,223,206,146,187,77,146,146,
187,173,85,146,187,253,24,146,187,63,220,145,187,114,159,145,187,151,98,145,187,172,37,145,187,179,232,144,187,171,171,144,187,149,110,144,187,112,49,144,187,60,244,143,187,250,182,143,187,169,121,143,187,74,60,143,187,220,254,142,187,96,193,142,187,213,131,142,187,60,70,142,187,148,8,142,187,222,202,141,187,26,141,141,187,71,79,141,187,103,17,141,187,119,211,140,187,122,149,140,187,110,87,140,187,85,25,140,187,45,219,139,187,247,156,139,187,178,94,139,187,96,32,139,187,0,226,138,187,145,163,138,
187,21,101,138,187,139,38,138,187,243,231,137,187,76,169,137,187,152,106,137,187,214,43,137,187,7,237,136,187,41,174,136,187,62,111,136,187,69,48,136,187,62,241,135,187,41,178,135,187,7,115,135,187,215,51,135,187,153,244,134,187,78,181,134,187,246,117,134,187,143,54,134,187,28,247,133,187,154,183,133,187,12,120,133,187,112,56,133,187,198,248,132,187,15,185,132,187,75,121,132,187,121,57,132,187,154,249,131,187,174,185,131,187,181,121,131,187,174,57,131,187,154,249,130,187,121,185,130,187,75,121,130,
187,16,57,130,187,200,248,129,187,114,184,129,187,16,120,129,187,161,55,129,187,36,247,128,187,155,182,128,187,5,118,128,187,98,53,128,187,99,233,127,187,234,103,127,187,86,230,126,187,170,100,126,187,227,226,125,187,4,97,125,187,10,223,124,187,248,92,124,187,204,218,123,187,135,88,123,187,41,214,122,187,178,83,122,187,33,209,121,187,120,78,121,187,182,203,120,187,219,72,120,187,231,197,119,187,218,66,119,187,180,191,118,187,118,60,118,187,31,185,117,187,176,53,117,187,40,178,116,187,136,46,116,187,
207,170,115,187,254,38,115,187,20,163,114,187,19,31,114,187,249,154,113,187,199,22,113,187,125,146,112,187,27,14,112,187,162,137,111,187,16,5,111,187,102,128,110,187,165,251,109,187,204,118,109,187,219,241,108,187,211,108,108,187,179,231,107,187,123,98,107,187,45,221,106,187,198,87,106,187,73,210,105,187,180,76,105,187,8,199,104,187,69,65,104,187,107,187,103,187,121,53,103,187,113,175,102,187,82,41,102,187,28,163,101,187,207,28,101,187,107,150,100,187,241,15,100,187,96,137,99,187,184,2,99,187,250,
123,98,187,37,245,97,187,58,110,97,187,57,231,96,187,33,96,96,187,244,216,95,187,175,81,95,187,85,202,94,187,229,66,94,187,95,187,93,187,194,51,93,187,16,172,92,187,72,36,92,187,106,156,91,187,119,20,91,187,110,140,90,187,79,4,90,187,27,124,89,187,209,243,88,187,114,107,88,187,253,226,87,187,115,90,87,187,212,209,86,187,31,73,86,187,86,192,85,187,119,55,85,187,131,174,84,187,122,37,84,187,93,156,83,187,42,19,83,187,227,137,82,187,135,0,82,187,22,119,81,187,145,237,80,187,247,99,80,187,73,218,79,187,
134,80,79,187,175,198,78,187,195,60,78,187,195,178,77,187,175,40,77,187,135,158,76,187,74,20,76,187,250,137,75,187,150,255,74,187,29,117,74,187,145,234,73,187,241,95,73,187,61,213,72,187,118,74,72,187,155,191,71,187,172,52,71,187,170,169,70,187,148,30,70,187,107,147,69,187,47,8,69,187,223,124,68,187,124,241,67,187,6,102,67,187,125,218,66,187,225,78,66,187,50,195,65,187,112,55,65,187,155,171,64,187,179,31,64,187,184,147,63,187,171,7,63,187,139,123,62,187,89,239,61,187,20,99,61,187,188,214,60,187,82,
74,60,187,214,189,59,187,72,49,59,187,167,164,58,187,244,23,58,187,47,139,57,187,88,254,56,187,111,113,56,187,117,228,55,187,104,87,55,187,73,202,54,187,25,61,54,187,215,175,53,187,132,34,53,187,30,149,52,187,168,7,52,187,32,122,51,187,134,236,50,187,219,94,50,187,31,209,49,187,82,67,49,187,116,181,48,187,132,39,48,187,131,153,47,187,114,11,47,187,80,125,46,187,28,239,45,187,216,96,45,187,131,210,44,187,30,68,44,187,168,181,43,187,33,39,43,187,138,152,42,187,227,9,42,187,43,123,41,187,99,236,40,187,
138,93,40,187,161,206,39,187,169,63,39,187,160,176,38,187,135,33,38,187,94,146,37,187,38,3,37,187,221,115,36,187,133,228,35,187,29,85,35,187,165,197,34,187,30,54,34,187,135,166,33,187,225,22,33,187,44,135,32,187,103,247,31,187,146,103,31,187,175,215,30,187,188,71,30,187,187,183,29,187,170,39,29,187,138,151,28,187,92,7,28,187,30,119,27,187,210,230,26,187,119,86,26,187,13,198,25,187,149,53,25,187,14,165,24,187,120,20,24,187,213,131,23,187,34,243,22,187,98,98,22,187,147,209,21,187,182,64,21,187,203,
175,20,187,210,30,20,187,203,141,19,187,182,252,18,187,147,107,18,187,98,218,17,187,36,73,17,187,215,183,16,187,125,38,16,187,22,149,15,187,161,3,15,187,30,114,14,187,143,224,13,187,241,78,13,187,71,189,12,187,143,43,12,187,202,153,11,187,249,7,11,187,26,118,10,187,46,228,9,187,53,82,9,187,47,192,8,187,29,46,8,187,254,155,7,187,210,9,7,187,153,119,6,187,84,229,5,187,3,83,5,187,165,192,4,187,59,46,4,187,196,155,3,187,66,9,3,187,179,118,2,187,24,228,1,187,113,81,1,187,190,190,0,187,255,43,0,187,103,
50,255,186,186,12,254,186,245,230,252,186,25,193,251,186,38,155,250,186,27,117,249,186,250,78,248,186,194,40,247,186,115,2,246,186,13,220,244,186,145,181,243,186,254,142,242,186,86,104,241,186,151,65,240,186,194,26,239,186,215,243,237,186,215,204,236,186,192,165,235,186,149,126,234,186,84,87,233,186,254,47,232,186,146,8,231,186,18,225,229,186,124,185,228,186,210,145,227,186,20,106,226,186,65,66,225,186,89,26,224,186,93,242,222,186,77,202,221,186,41,162,220,186,241,121,219,186,166,81,218,186,70,41,
217,186,211,0,216,186,77,216,214,186,180,175,213,186,7,135,212,186,71,94,211,186,117,53,210,186,144,12,209,186,152,227,207,186,141,186,206,186,112,145,205,186,65,104,204,186,0,63,203,186,172,21,202,186,71,236,200,186,208,194,199,186,71,153,198,186,173,111,197,186,2,70,196,186,69,28,195,186,119,242,193,186,151,200,192,186,167,158,191,186,167,116,190,186,149,74,189,186,115,32,188,186,65,246,186,186,254,203,185,186,171,161,184,186,72,119,183,186,214,76,182,186,83,34,181,186,193,247,179,186,31,205,178,
186,110,162,177,186,174,119,176,186,222,76,175,186,255,33,174,186,18,247,172,186,22,204,171,186,11,161,170,186,241,117,169,186,201,74,168,186,147,31,167,186,79,244,165,186,252,200,164,186,156,157,163,186,46,114,162,186,178,70,161,186,41,27,160,186,146,239,158,186,238,195,157,186,61,152,156,186,127,108,155,186,180,64,154,186,220,20,153,186,247,232,151,186,6,189,150,186,9,145,149,186,255,100,148,186,233,56,147,186,199,12,146,186,153,224,144,186,96,180,143,186,26,136,142,186,202,91,141,186,109,47,140,
186,6,3,139,186,147,214,137,186,22,170,136,186,141,125,135,186,250,80,134,186,92,36,133,186,179,247,131,186,0,203,130,186,67,158,129,186,124,113,128,186,85,137,126,186,159,47,124,186,213,213,121,186,247,123,119,186,7,34,117,186,4,200,114,186,238,109,112,186,198,19,110,186,140,185,107,186,64,95,105,186,227,4,103,186,116,170,100,186,244,79,98,186,100,245,95,186,195,154,93,186,18,64,91,186,80,229,88,186,127,138,86,186,159,47,84,186,175,212,81,186,176,121,79,186,162,30,77,186,134,195,74,186,92,104,72,
186,35,13,70,186,221,177,67,186,137,86,65,186,40,251,62,186,186,159,60,186,64,68,58,186,184,232,55,186,37,141,53,186,133,49,51,186,218,213,48,186,35,122,46,186,97,30,44,186,148,194,41,186,188,102,39,186,218,10,37,186,237,174,34,186,247,82,32,186,247,246,29,186,237,154,27,186,218,62,25,186,190,226,22,186,153,134,20,186,108,42,18,186,55,206,15,186,249,113,13,186,180,21,11,186,104,185,8,186,20,93,6,186,185,0,4,186,88,164,1,186,223,143,254,185,3,215,249,185,26,30,245,185,39,101,240,185,40,172,235,185,
31,243,230,185,12,58,226,185,240,128,221,185,202,199,216,185,156,14,212,185,103,85,207,185,42,156,202,185,230,226,197,185,155,41,193,185,75,112,188,185,245,182,183,185,155,253,178,185,60,68,174,185,217,138,169,185,115,209,164,185,10,24,160,185,158,94,155,185,49,165,150,185,195,235,145,185,83,50,141,185,227,120,136,185,115,191,131,185,8,12,126,185,44,153,116,185,84,38,107,185,127,179,97,185,176,64,88,185,232,205,78,185,38,91,69,185,109,232,59,185,190,117,50,185,24,3,41,185,126,144,31,185,240,29,22,
185,112,171,12,185,254,56,3,185,55,141,243,184,146,168,224,184,16,196,205,184,179,223,186,184,125,251,167,184,112,23,149,184,141,51,130,184,174,159,94,184,159,216,56,184,242,17,19,184,87,151,218,183,155,11,143,183,120,1,7,183,10,148,128,53,163,36,39,55,111,26,159,55,146,161,234,55,216,19,27,56,98,214,64,56,98,152,102,56,234,44,134,56,90,13,153,56,128,237,171,56,88,205,190,56,225,172,209,56,26,140,228,56,0,107,247,56,200,36,5,57,229,147,14,57,214,2,24,57,153,113,33,57,45,224,42,57,146,78,52,57,199,
188,61,57,202,42,71,57,155,152,80,57,56,6,90,57,161,115,99,57,212,224,108,57,209,77,118,57,150,186,127,57,145,147,132,57,187,73,137,57,199,255,141,57,182,181,146,57,135,107,151,57,56,33,156,57,203,214,160,57,62,140,165,57,144,65,170,57,194,246,174,57,210,171,179,57,193,96,184,57,142,21,189,57,55,202,193,57,190,126,198,57,33,51,203,57,95,231,207,57,121,155,212,57,110,79,217,57,61,3,222,57,230,182,226,57,104,106,231,57,194,29,236,57,245,208,240,57,0,132,245,57,226,54,250,57,155,233,254,57,21,206,1,
58,72,39,4,58,101,128,6,58,108,217,8,58,94,50,11,58,57,139,13,58,255,227,15,58,173,60,18,58,69,149,20,58,198,237,22,58,47,70,25,58,129,158,27,58,187,246,29,58,220,78,32,58,230,166,34,58,215,254,36,58,175,86,39,58,110,174,41,58,19,6,44,58,159,93,46,58,17,181,48,58,105,12,51,58,167,99,53,58,202,186,55,58,211,17,58,58,192,104,60,58,146,191,62,58,73,22,65,58,227,108,67,58,98,195,69,58,196,25,72,58,10,112,74,58,51,198,76,58,63,28,79,58,45,114,81,58,254,199,83,58,177,29,86,58,71,115,88,58,190,200,90,58,
22,30,93,58,80,115,95,58,106,200,97,58,101,29,100,58,65,114,102,58,253,198,104,58,153,27,107,58,21,112,109,58,112,196,111,58,171,24,114,58,196,108,116,58,189,192,118,58,147,20,121,58,72,104,123,58,219,187,125,58,166,7,128,58,77,49,129,58,227,90,130,58,103,132,131,58,218,173,132,58,59,215,133,58,138,0,135,58,199,41,136,58,243,82,137,58,11,124,138,58,18,165,139,58,6,206,140,58,231,246,141,58,182,31,143,58,114,72,144,58,27,113,145,58,177,153,146,58,52,194,147,58,163,234,148,58,255,18,150,58,71,59,151,
58,124,99,152,58,157,139,153,58,170,179,154,58,163,219,155,58,135,3,157,58,88,43,158,58,20,83,159,58,187,122,160,58,78,162,161,58,204,201,162,58,53,241,163,58,137,24,165,58,200,63,166,58,241,102,167,58,6,142,168,58,4,181,169,58,237,219,170,58,193,2,172,58,126,41,173,58,37,80,174,58,183,118,175,58,50,157,176,58,150,195,177,58,228,233,178,58,28,16,180,58,61,54,181,58,71,92,182,58,58,130,183,58,22,168,184,58,218,205,185,58,136,243,186,58,30,25,188,58,156,62,189,58,2,100,190,58,81,137,191,58,136,174,
192,58,167,211,193,58,173,248,194,58,156,29,196,58,114,66,197,58,47,103,198,58,212,139,199,58,95,176,200,58,210,212,201,58,44,249,202,58,109,29,204,58,149,65,205,58,163,101,206,58,151,137,207,58,114,173,208,58,51,209,209,58,219,244,210,58,104,24,212,58,219,59,213,58,52,95,214,58,115,130,215,58,151,165,216,58,161,200,217,58,144,235,218,58,100,14,220,58,29,49,221,58,187,83,222,58,62,118,223,58,166,152,224,58,242,186,225,58,34,221,226,58,55,255,227,58,48,33,229,58,14,67,230,58,207,100,231,58,116,134,
232,58,253,167,233,58,105,201,234,58,185,234,235,58,236,11,237,58,3,45,238,58,253,77,239,58,218,110,240,58,153,143,241,58,60,176,242,58,193,208,243,58,40,241,244,58,115,17,246,58,159,49,247,58,174,81,248,58,158,113,249,58,113,145,250,58,37,177,251,58,188,208,252,58,51,240,253,58,141,15,255,58,100,23,0,59,242,166,0,59,112,54,1,59,223,197,1,59,63,85,2,59,143,228,2,59,207,115,3,59,255,2,4,59,32,146,4,59,49,33,5,59,50,176,5,59,35,63,6,59,4,206,6,59,213,92,7,59,149,235,7,59,70,122,8,59,230,8,9,59,118,
151,9,59,246,37,10,59,101,180,10,59,196,66,11,59,18,209,11,59,79,95,12,59,124,237,12,59,152,123,13,59,163,9,14,59,158,151,14,59,136,37,15,59,96,179,15,59,40,65,16,59,222,206,16,59,132,92,17,59,24,234,17,59,155,119,18,59,13,5,19,59,109,146,19,59,188,31,20,59,249,172,20,59,37,58,21,59,64,199,21,59,72,84,22,59,63,225,22,59,36,110,23,59,248,250,23,59,185,135,24,59,105,20,25,59,6,161,25,59,146,45,26,59,11,186,26,59,114,70,27,59,199,210,27,59,10,95,28,59,58,235,28,59,88,119,29,59,99,3,30,59,92,143,30,59,
67,27,31,59,22,167,31,59,215,50,32,59,134,190,32,59,33,74,33,59,170,213,33,59,32,97,34,59,130,236,34,59,210,119,35,59,15,3,36,59,56,142,36,59,78,25,37,59,81,164,37,59,65,47,38,59,30,186,38,59,230,68,39,59,156,207,39,59,62,90,40,59,204,228,40,59,71,111,41,59,174,249,41,59,1,132,42,59,64,14,43,59,107,152,43,59,131,34,44,59,134,172,44,59,118,54,45,59,81,192,45,59,24,74,46,59,203,211,46,59,106,93,47,59,244,230,47,59,106,112,48,59,204,249,48,59,25,131,49,59,81,12,50,59,117,149,50,59,132,30,51,59,127,167,
51,59,100,48,52,59,53,185,52,59,241,65,53,59,152,202,53,59,42,83,54,59,167,219,54,59,14,100,55,59,97,236,55,59,158,116,56,59,199,252,56,59,217,132,57,59,215,12,58,59,191,148,58,59,145,28,59,59,78,164,59,59,245,43,60,59,134,179,60,59,2,59,61,59,104,194,61,59,185,73,62,59,243,208,62,59,23,88,63,59,38,223,63,59,30,102,64,59,0,237,64,59,204,115,65,59,130,250,65,59,33,129,66,59,170,7,67,59,29,142,67,59,122,20,68,59,191,154,68,59,239,32,69,59,7,167,69,59,9,45,70,59,245,178,70,59,201,56,71,59,135,190,71,
59,46,68,72,59,189,201,72,59,54,79,73,59,152,212,73,59,227,89,74,59,22,223,74,59,51,100,75,59,56,233,75,59,38,110,76,59,252,242,76,59,187,119,77,59,99,252,77,59,243,128,78,59,107,5,79,59,204,137,79,59,21,14,80,59,70,146,80,59,96,22,81,59,97,154,81,59,75,30,82,59,29,162,82,59,215,37,83,59,120,169,83,59,2,45,84,59,115,176,84,59,205,51,85,59,13,183,85,59,54,58,86,59,70,189,86,59,62,64,87,59,29,195,87,59,228,69,88,59,146,200,88,59,39,75,89,59,164,205,89,59,8,80,90,59,83,210,90,59,133,84,91,59,158,214,
91,59,159,88,92,59,134,218,92,59,84,92,93,59,9,222,93,59,165,95,94,59,40,225,94,59,145,98,95,59,225,227,95,59,24,101,96,59,53,230,96,59,57,103,97,59,35,232,97,59,243,104,98,59,170,233,98,59,71,106,99,59,203,234,99,59,52,107,100,59,132,235,100,59,186,107,101,59,214,235,101,59,215,107,102,59,191,235,102,59,141,107,103,59,64,235,103,59,217,106,104,59,88,234,104,59,189,105,105,59,7,233,105,59,54,104,106,59,76,231,106,59,70,102,107,59,38,229,107,59,236,99,108,59,150,226,108,59,38,97,109,59,156,223,109,
59,246,93,110,59,53,220,110,59,90,90,111,59,99,216,111,59,82,86,112,59,37,212,112,59,221,81,113,59,122,207,113,59,252,76,114,59,98,202,114,59,173,71,115,59,221,196,115,59,241,65,116,59,233,190,116,59,199,59,117,59,136,184,117,59,46,53,118,59,184,177,118,59,38,46,119,59,121,170,119,59,175,38,120,59,202,162,120,59,201,30,121,59,171,154,121,59,114,22,122,59,28,146,122,59,171,13,123,59,29,137,123,59,115,4,124,59,172,127,124,59,201,250,124,59,202,117,125,59,174,240,125,59,118,107,126,59,33,230,126,59,
176,96,127,59,34,219,127,59,187,42,128,59,216,103,128,59,229,164,128,59,229,225,128,59,214,30,129,59,184,91,129,59,140,152,129,59,81,213,129,59,8,18,130,59,177,78,130,59,74,139,130,59,213,199,130,59,82,4,131,59,191,64,131,59,30,125,131,59,111,185,131,59,176,245,131,59,227,49,132,59,7,110,132,59,28,170,132,59,34,230,132,59,25,34,133,59,2,94,133,59,220,153,133,59,166,213,133,59,98,17,134,59,14,77,134,59,172,136,134,59,59,196,134,59,186,255,134,59,43,59,135,59,140,118,135,59,222,177,135,59,33,237,135,
59,85,40,136,59,122,99,136,59,143,158,136,59,149,217,136,59,140,20,137,59,116,79,137,59,76,138,137,59,21,197,137,59,206,255,137,59,120,58,138,59,19,117,138,59,158,175,138,59,26,234,138,59,134,36,139,59,227,94,139,59,48,153,139,59,110,211,139,59,156,13,140,59,186,71,140,59,201,129,140,59,200,187,140,59,184,245,140,59,151,47,141,59,103,105,141,59,40,163,141,59,216,220,141,59,121,22,142,59,10,80,142,59,139,137,142,59,252,194,142,59,93,252,142,59,175,53,143,59,240,110,143,59,33,168,143,59,67,225,143,
59,84,26,144,59,86,83,144,59,71,140,144,59,41,197,144,59,250,253,144,59,187,54,145,59,108,111,145,59,13,168,145,59,157,224,145,59,30,25,146,59,142,81,146,59,238,137,146,59,61,194,146,59,124,250,146,59,171,50,147,59,202,106,147,59,216,162,147,59,214,218,147,59,196,18,148,59,161,74,148,59,109,130,148,59,41,186,148,59,213,241,148,59,112,41,149,59,250,96,149,59,116,152,149,59,222,207,149,59,54,7,150,59,126,62,150,59,182,117,150,59,220,172,150,59,242,227,150,59,248,26,151,59,236,81,151,59,208,136,151,
59,163,191,151,59,101,246,151,59,22,45,152,59,183,99,152,59,70,154,152,59,197,208,152,59,51,7,153,59,144,61,153,59,219,115,153,59,22,170,153,59,64,224,153,59,89,22,154,59,97,76,154,59,87,130,154,59,61,184,154,59,17,238,154,59,212,35,155,59,135,89,155,59,39,143,155,59,183,196,155,59,54,250,155,59,163,47,156,59,255,100,156,59,74,154,156,59,131,207,156,59,171,4,157,59,194,57,157,59,199,110,157,59,187,163,157,59,157,216,157,59,110,13,158,59,46,66,158,59,220,118,158,59,121,171,158,59,4,224,158,59,125,
20,159,59,229,72,159,59,59,125,159,59,128,177,159,59,179,229,159,59,213,25,160,59,229,77,160,59,227,129,160,59,207,181,160,59,170,233,160,59,115,29,161,59,42,81,161,59,207,132,161,59,98,184,161,59,228,235,161,59,84,31,162,59,178,82,162,59,254,133,162,59,56,185,162,59,96,236,162,59,118,31,163,59,123,82,163,59,109,133,163,59,77,184,163,59,27,235,163,59,215,29,164,59,129,80,164,59,25,131,164,59,159,181,164,59,19,232,164,59,116,26,165,59,195,76,165,59,0,127,165,59,43,177,165,59,68,227,165,59,74,21,166,
59,62,71,166,59,32,121,166,59,239,170,166,59,173,220,166,59,87,14,167,59,240,63,167,59,118,113,167,59,233,162,167,59,74,212,167,59,153,5,168,59,213,54,168,59,255,103,168,59,22,153,168,59,26,202,168,59,12,251,168,59,236,43,169,59,185,92,169,59,115,141,169,59,26,190,169,59,175,238,169,59,50,31,170,59,161,79,170,59,254,127,170,59,72,176,170,59,127,224,170,59,164,16,171,59,182,64,171,59,181,112,171,59,161,160,171,59,122,208,171,59,65,0,172,59,244,47,172,59,149,95,172,59,35,143,172,59,157,190,172,59,5,
238,172,59,90,29,173,59,156,76,173,59,203,123,173,59,231,170,173,59,239,217,173,59,229,8,174,59,200,55,174,59,151,102,174,59,83,149,174,59,252,195,174,59,146,242,174,59,21,33,175,59,133,79,175,59,225,125,175,59,42,172,175,59,96,218,175,59,131,8,176,59,146,54,176,59,142,100,176,59,119,146,176,59,76,192,176,59,14,238,176,59,189,27,177,59,88,73,177,59,224,118,177,59,84,164,177,59,181,209,177,59,2,255,177,59,60,44,178,59,98,89,178,59,117,134,178,59,117,179,178,59,96,224,178,59,56,13,179,59,253,57,179,
59,174,102,179,59,75,147,179,59,213,191,179,59,75,236,179,59,173,24,180,59,251,68,180,59,54,113,180,59,93,157,180,59,113,201,180,59,112,245,180,59,92,33,181,59,52,77,181,59,248,120,181,59,168,164,181,59,69,208,181,59,205,251,181,59,66,39,182,59,163,82,182,59,239,125,182,59,40,169,182,59,77,212,182,59,94,255,182,59,91,42,183,59,68,85,183,59,25,128,183,59,217,170,183,59,134,213,183,59,31,0,184,59,163,42,184,59,20,85,184,59,112,127,184,59,184,169,184,59,236,211,184,59,12,254,184,59,23,40,185,59,15,82,
185,59,242,123,185,59,193,165,185,59,123,207,185,59,34,249,185,59,180,34,186,59,49,76,186,59,155,117,186,59,240,158,186,59,48,200,186,59,93,241,186,59,117,26,187,59,120,67,187,59,103,108,187,59,66,149,187,59,8,190,187,59,186,230,187,59,87,15,188,59,223,55,188,59,84,96,188,59,179,136,188,59,254,176,188,59,53,217,188,59,87,1,189,59,100,41,189,59,92,81,189,59,64,121,189,59,16,161,189,59,203,200,189,59,113,240,189,59,2,24,190,59,127,63,190,59,230,102,190,59,58,142,190,59,120,181,190,59,162,220,190,59,
182,3,191,59,182,42,191,59,162,81,191,59,120,120,191,59,57,159,191,59,230,197,191,59,126,236,191,59,1,19,192,59,111,57,192,59,200,95,192,59,12,134,192,59,59,172,192,59,85,210,192,59,90,248,192,59,75,30,193,59,38,68,193,59,236,105,193,59,157,143,193,59,57,181,193,59,192,218,193,59,50,0,194,59,143,37,194,59,214,74,194,59,9,112,194,59,38,149,194,59,46,186,194,59,33,223,194,59,255,3,195,59,200,40,195,59,123,77,195,59,25,114,195,59,162,150,195,59,22,187,195,59,117,223,195,59,190,3,196,59,241,39,196,59,
16,76,196,59,25,112,196,59,13,148,196,59,235,183,196,59,181,219,196,59,104,255,196,59,7,35,197,59,143,70,197,59,3,106,197,59,97,141,197,59,170,176,197,59,221,211,197,59,250,246,197,59,2,26,198,59,245,60,198,59,210,95,198,59,154,130,198,59,76,165,198,59,232,199,198,59,111,234,198,59,224,12,199,59,60,47,199,59,130,81,199,59,178,115,199,59,205,149,199,59,210,183,199,59,194,217,199,59,155,251,199,59,95,29,200,59,14,63,200,59,166,96,200,59,41,130,200,59,150,163,200,59,238,196,200,59,47,230,200,59,91,7,
201,59,113,40,201,59,114,73,201,59,92,106,201,59,49,139,201,59,239,171,201,59,152,204,201,59,43,237,201,59,168,13,202,59,15,46,202,59,97,78,202,59,156,110,202,59,193,142,202,59,209,174,202,59,202,206,202,59,174,238,202,59,123,14,203,59,51,46,203,59,212,77,203,59,96,109,203,59,213,140,203,59,53,172,203,59,126,203,203,59,178,234,203,59,207,9,204,59,214,40,204,59,199,71,204,59,162,102,204,59,103,133,204,59,21,164,204,59,174,194,204,59,48,225,204,59,156,255,204,59,242,29,205,59,50,60,205,59,91,90,205,
59,111,120,205,59,108,150,205,59,83,180,205,59,35,210,205,59,221,239,205,59,129,13,206,59,15,43,206,59,135,72,206,59,232,101,206,59,51,131,206,59,103,160,206,59,133,189,206,59,141,218,206,59,126,247,206,59,89,20,207,59,30,49,207,59,204,77,207,59,100,106,207,59,229,134,207,59,80,163,207,59,165,191,207,59,227,219,207,59,10,248,207,59,27,20,208,59,22,48,208,59,250,75,208,59,200,103,208,59,127,131,208,59,31,159,208,59,169,186,208,59,29,214,208,59,122,241,208,59,192,12,209,59,240,39,209,59,9,67,209,59,
12,94,209,59,248,120,209,59,205,147,209,59,140,174,209,59,52,201,209,59,197,227,209,59,64,254,209,59,164,24,210,59,241,50,210,59,40,77,210,59,72,103,210,59,81,129,210,59,68,155,210,59,31,181,210,59,229,206,210,59,147,232,210,59,42,2,211,59,171,27,211,59,21,53,211,59,105,78,211,59,165,103,211,59,203,128,211,59,217,153,211,59,209,178,211,59,179,203,211,59,125,228,211,59,48,253,211,59,205,21,212,59,83,46,212,59,193,70,212,59,25,95,212,59,90,119,212,59,133,143,212,59,152,167,212,59,148,191,212,59,121,
215,212,59,72,239,212,59,255,6,213,59,160,30,213,59,41,54,213,59,156,77,213,59,247,100,213,59,60,124,213,59,106,147,213,59,128,170,213,59],"i8",4,y.a+389120);
Q([128,193,213,59,104,216,213,59,58,239,213,59,244,5,214,59,151,28,214,59,36,51,214,59,153,73,214,59,247,95,214,59,62,118,214,59,110,140,214,59,135,162,214,59,137,184,214,59,115,206,214,59,71,228,214,59,3,250,214,59,168,15,215,59,54,37,215,59,173,58,215,59,13,80,215,59,86,101,215,59,135,122,215,59,161,143,215,59,164,164,215,59,144,185,215,59,100,206,215,59,34,227,215,59,200,247,215,59,87,12,216,59,206,32,216,59,47,53,216,59,120,73,216,59,170,93,216,59,196,113,216,59,199,133,216,59,179,153,216,59,
136,173,216,59,69,193,216,59,235,212,216,59,122,232,216,59,242,251,216,59,82,15,217,59,155,34,217,59,204,53,217,59,230,72,217,59,233,91,217,59,212,110,217,59,168,129,217,59,101,148,217,59,10,167,217,59,152,185,217,59,14,204,217,59,109,222,217,59,181,240,217,59,229,2,218,59,254,20,218,59,255,38,218,59,233,56,218,59,187,74,218,59,118,92,218,59,26,110,218,59,166,127,218,59,27,145,218,59,120,162,218,59,189,179,218,59,235,196,218,59,2,214,218,59,1,231,218,59,233,247,218,59,185,8,219,59,114,25,219,59,19,
42,219,59,156,58,219,59,14,75,219,59,105,91,219,59,172,107,219,59,215,123,219,59,235,139,219,59,231,155,219,59,204,171,219,59,153,187,219,59,79,203,219,59,237,218,219,59,115,234,219,59,226,249,219,59,57,9,220,59,121,24,220,59,161,39,220,59,177,54,220,59,170,69,220,59,139,84,220,59,84,99,220,59,6,114,220,59,160,128,220,59,35,143,220,59,142,157,220,59,225,171,220,59,29,186,220,59,65,200,220,59,77,214,220,59,65,228,220,59,30,242,220,59,228,255,220,59,145,13,221,59,39,27,221,59,165,40,221,59,11,54,221,
59,90,67,221,59,145,80,221,59,176,93,221,59,184,106,221,59,168,119,221,59,128,132,221,59,64,145,221,59,233,157,221,59,122,170,221,59,243,182,221,59,84,195,221,59,158,207,221,59,208,219,221,59,234,231,221,59,236,243,221,59,215,255,221,59,170,11,222,59,101,23,222,59,8,35,222,59,147,46,222,59,7,58,222,59,99,69,222,59,167,80,222,59,211,91,222,59,232,102,222,59,229,113,222,59,201,124,222,59,150,135,222,59,76,146,222,59,233,156,222,59,111,167,222,59,220,177,222,59,50,188,222,59,113,198,222,59,151,208,222,
59,165,218,222,59,156,228,222,59,123,238,222,59,65,248,222,59,241,1,223,59,136,11,223,59,7,21,223,59,111,30,223,59,190,39,223,59,246,48,223,59,22,58,223,59,30,67,223,59,14,76,223,59,230,84,223,59,167,93,223,59,79,102,223,59,224,110,223,59,88,119,223,59,185,127,223,59,2,136,223,59,51,144,223,59,76,152,223,59,78,160,223,59,55,168,223,59,9,176,223,59,194,183,223,59,100,191,223,59,238,198,223,59,95,206,223,59,185,213,223,59,251,220,223,59,37,228,223,59,56,235,223,59,50,242,223,59,20,249,223,59,223,255,
223,59,145,6,224,59,44,13,224,59,174,19,224,59,25,26,224,59,108,32,224,59,167,38,224,59,202,44,224,59,213,50,224,59,200,56,224,59,163,62,224,59,102,68,224,59,17,74,224,59,164,79,224,59,32,85,224,59,131,90,224,59,207,95,224,59,2,101,224,59,30,106,224,59,33,111,224,59,13,116,224,59,225,120,224,59,156,125,224,59,64,130,224,59,204,134,224,59,64,139,224,59,156,143,224,59,224,147,224,59,12,152,224,59,32,156,224,59,28,160,224,59,0,164,224,59,204,167,224,59,129,171,224,59,29,175,224,59,161,178,224,59,14,
182,224,59,98,185,224,59,159,188,224,59,195,191,224,59,208,194,224,59,196,197,224,59,161,200,224,59,101,203,224,59,18,206,224,59,167,208,224,59,36,211,224,59,136,213,224,59,213,215,224,59,10,218,224,59,39,220,224,59,44,222,224,59,25,224,224,59,238,225,224,59,171,227,224,59,80,229,224,59,222,230,224,59,83,232,224,59,176,233,224,59,245,234,224,59,35,236,224,59,56,237,224,59,54,238,224,59,27,239,224,59,233,239,224,59,158,240,224,59,60,241,224,59,194,241,224,59,47,242,224,59,133,242,224,59,195,242,224,
59,233,242,224,59,247,242,224,59,237,242,224,59,203,242,224,59,145,242,224,59,63,242,224,59,213,241,224,59,84,241,224,59,186,240,224,59,9,240,224,59,63,239,224,59,94,238,224,59,100,237,224,59,83,236,224,59,42,235,224,59,233,233,224,59,143,232,224,59,30,231,224,59,150,229,224,59,245,227,224,59,60,226,224,59,107,224,224,59,131,222,224,59,130,220,224,59,106,218,224,59,58,216,224,59,241,213,224,59,145,211,224,59,25,209,224,59,137,206,224,59,225,203,224,59,34,201,224,59,74,198,224,59,91,195,224,59,83,
192,224,59,52,189,224,59,253,185,224,59,174,182,224,59,71,179,224,59,200,175,224,59,49,172,224,59,131,168,224,59,188,164,224,59,222,160,224,59,232,156,224,59,218,152,224,59,180,148,224,59,119,144,224,59,33,140,224,59,180,135,224,59,46,131,224,59,145,126,224,59,220,121,224,59,16,117,224,59,43,112,224,59,47,107,224,59,26,102,224,59,238,96,224,59,170,91,224,59,79,86,224,59,219,80,224,59,80,75,224,59,173,69,224,59,242,63,224,59,31,58,224,59,52,52,224,59,50,46,224,59,24,40,224,59,230,33,224,59,156,27,
224,59,59,21,224,59,194,14,224,59,49,8,224,59,136,1,224,59,199,250,223,59,239,243,223,59,255,236,223,59,247,229,223,59,216,222,223,59,160,215,223,59,81,208,223,59,235,200,223,59,108,193,223,59,214,185,223,59,40,178,223,59,98,170,223,59,133,162,223,59,144,154,223,59,131,146,223,59,95,138,223,59,34,130,223,59,207,121,223,59,99,113,223,59,224,104,223,59,69,96,223,59,146,87,223,59,200,78,223,59,230,69,223,59,237,60,223,59,219,51,223,59,178,42,223,59,114,33,223,59,26,24,223,59,170,14,223,59,35,5,223,59,
132,251,222,59,205,241,222,59,255,231,222,59,25,222,222,59,27,212,222,59,6,202,222,59,218,191,222,59,149,181,222,59,58,171,222,59,198,160,222,59,59,150,222,59,153,139,222,59,223,128,222,59,13,118,222,59,36,107,222,59,35,96,222,59,11,85,222,59,219,73,222,59,148,62,222,59,53,51,222,59,190,39,222,59,48,28,222,59,139,16,222,59,206,4,222,59,250,248,221,59,14,237,221,59,11,225,221,59,240,212,221,59,190,200,221,59,116,188,221,59,19,176,221,59,154,163,221,59,10,151,221,59,99,138,221,59,164,125,221,59,205,
112,221,59,224,99,221,59,219,86,221,59,190,73,221,59,138,60,221,59,63,47,221,59,220,33,221,59,98,20,221,59,208,6,221,59,40,249,220,59,103,235,220,59,144,221,220,59,161,207,220,59,155,193,220,59,125,179,220,59,72,165,220,59,252,150,220,59,153,136,220,59,30,122,220,59,140,107,220,59,227,92,220,59,34,78,220,59,74,63,220,59,91,48,220,59,84,33,220,59,55,18,220,59,2,3,220,59,182,243,219,59,82,228,219,59,216,212,219,59,70,197,219,59,157,181,219,59,221,165,219,59,5,150,219,59,23,134,219,59,17,118,219,59,
244,101,219,59,192,85,219,59,117,69,219,59,19,53,219,59,153,36,219,59,8,20,219,59,97,3,219,59,162,242,218,59,204,225,218,59,223,208,218,59,219,191,218,59,192,174,218,59,141,157,218,59,68,140,218,59,228,122,218,59,108,105,218,59,222,87,218,59,56,70,218,59,124,52,218,59,168,34,218,59,190,16,218,59,188,254,217,59,164,236,217,59,116,218,217,59,46,200,217,59,208,181,217,59,92,163,217,59,209,144,217,59,46,126,217,59,117,107,217,59,165,88,217,59,190,69,217,59,192,50,217,59,171,31,217,59,128,12,217,59,61,
249,216,59,228,229,216,59,116,210,216,59,237,190,216,59,79,171,216,59,154,151,216,59,206,131,216,59,236,111,216,59,243,91,216,59,227,71,216,59,188,51,216,59,127,31,216,59,43,11,216,59,192,246,215,59,62,226,215,59,165,205,215,59,246,184,215,59,48,164,215,59,84,143,215,59,96,122,215,59,86,101,215,59,54,80,215,59,254,58,215,59,176,37,215,59,76,16,215,59,209,250,214,59,63,229,214,59,150,207,214,59,215,185,214,59,2,164,214,59,21,142,214,59,19,120,214,59,249,97,214,59,201,75,214,59,131,53,214,59,38,31,
214,59,178,8,214,59,40,242,213,59,136,219,213,59,209,196,213,59,3,174,213,59,31,151,213,59,37,128,213,59,20,105,213,59,237,81,213,59,175,58,213,59,91,35,213,59,240,11,213,59,111,244,212,59,216,220,212,59,42,197,212,59,102,173,212,59,140,149,212,59,155,125,212,59,148,101,212,59,119,77,212,59,67,53,212,59,249,28,212,59,153,4,212,59,34,236,211,59,149,211,211,59,242,186,211,59,57,162,211,59,105,137,211,59,132,112,211,59,136,87,211,59,118,62,211,59,77,37,211,59,15,12,211,59,186,242,210,59,79,217,210,59,
206,191,210,59,55,166,210,59,138,140,210,59,199,114,210,59,238,88,210,59,254,62,210,59,249,36,210,59,221,10,210,59,171,240,209,59,100,214,209,59,6,188,209,59,147,161,209,59,9,135,209,59,105,108,209,59,180,81,209,59,232,54,209,59,7,28,209,59,15,1,209,59,2,230,208,59,223,202,208,59,166,175,208,59,87,148,208,59,242,120,208,59,119,93,208,59,230,65,208,59,64,38,208,59,132,10,208,59,178,238,207,59,202,210,207,59,204,182,207,59,185,154,207,59,144,126,207,59,81,98,207,59,252,69,207,59,146,41,207,59,18,13,
207,59,124,240,206,59,209,211,206,59,15,183,206,59,57,154,206,59,76,125,206,59,74,96,206,59,51,67,206,59,5,38,206,59,195,8,206,59,106,235,205,59,252,205,205,59,121,176,205,59,224,146,205,59,49,117,205,59,109,87,205,59,147,57,205,59,164,27,205,59,160,253,204,59,134,223,204,59,86,193,204,59,17,163,204,59,183,132,204,59,71,102,204,59,194,71,204,59,40,41,204,59,120,10,204,59,179,235,203,59,216,204,203,59,233,173,203,59,228,142,203,59,201,111,203,59,153,80,203,59,85,49,203,59,250,17,203,59,139,242,202,
59,6,211,202,59,108,179,202,59,189,147,202,59,249,115,202,59,32,84,202,59,49,52,202,59,45,20,202,59,21,244,201,59,231,211,201,59,164,179,201,59,76,147,201,59,223,114,201,59,92,82,201,59,197,49,201,59,25,17,201,59,88,240,200,59,129,207,200,59,150,174,200,59,150,141,200,59,129,108,200,59,87,75,200,59,24,42,200,59,196,8,200,59,91,231,199,59,221,197,199,59,75,164,199,59,164,130,199,59,231,96,199,59,22,63,199,59,49,29,199,59,54,251,198,59,39,217,198,59,3,183,198,59,202,148,198,59,124,114,198,59,26,80,
198,59,163,45,198,59,23,11,198,59,119,232,197,59,194,197,197,59,249,162,197,59,26,128,197,59,40,93,197,59,32,58,197,59,4,23,197,59,212,243,196,59,143,208,196,59,53,173,196,59,199,137,196,59,69,102,196,59,174,66,196,59,2,31,196,59,66,251,195,59,110,215,195,59,133,179,195,59,136,143,195,59,118,107,195,59,80,71,195,59,22,35,195,59,200,254,194,59,101,218,194,59,237,181,194,59,98,145,194,59,194,108,194,59,14,72,194,59,70,35,194,59,105,254,193,59,121,217,193,59,116,180,193,59,91,143,193,59,46,106,193,59,
236,68,193,59,151,31,193,59,45,250,192,59,176,212,192,59,30,175,192,59,120,137,192,59,191,99,192,59,241,61,192,59,15,24,192,59,25,242,191,59,15,204,191,59,242,165,191,59,192,127,191,59,122,89,191,59,33,51,191,59,180,12,191,59,50,230,190,59,157,191,190,59,244,152,190,59,56,114,190,59,103,75,190,59,131,36,190,59,138,253,189,59,127,214,189,59,95,175,189,59,44,136,189,59,229,96,189,59,138,57,189,59,28,18,189,59,154,234,188,59,4,195,188,59,91,155,188,59,158,115,188,59,205,75,188,59,233,35,188,59,242,251,
187,59,231,211,187,59,200,171,187,59,150,131,187,59,81,91,187,59,248,50,187,59,139,10,187,59,12,226,186,59,120,185,186,59,210,144,186,59,24,104,186,59,74,63,186,59,106,22,186,59,118,237,185,59,110,196,185,59,84,155,185,59,38,114,185,59,229,72,185,59,145,31,185,59,41,246,184,59,175,204,184,59,33,163,184,59,128,121,184,59,204,79,184,59,4,38,184,59,42,252,183,59,61,210,183,59,60,168,183,59,41,126,183,59,2,84,183,59,201,41,183,59,124,255,182,59,29,213,182,59,170,170,182,59,37,128,182,59,141,85,182,59,
226,42,182,59,35,0,182,59,83,213,181,59,111,170,181,59,120,127,181,59,111,84,181,59,83,41,181,59,36,254,180,59,226,210,180,59,142,167,180,59,39,124,180,59,173,80,180,59,33,37,180,59,130,249,179,59,208,205,179,59,12,162,179,59,53,118,179,59,76,74,179,59,80,30,179,59,65,242,178,59,32,198,178,59,236,153,178,59,166,109,178,59,78,65,178,59,227,20,178,59,102,232,177,59,214,187,177,59,52,143,177,59,127,98,177,59,185,53,177,59,223,8,177,59,244,219,176,59,246,174,176,59,230,129,176,59,196,84,176,59,144,39,
176,59,73,250,175,59,240,204,175,59,133,159,175,59,8,114,175,59,121,68,175,59,215,22,175,59,36,233,174,59,95,187,174,59,135,141,174,59,157,95,174,59,162,49,174,59,148,3,174,59,117,213,173,59,67,167,173,59,0,121,173,59,171,74,173,59,67,28,173,59,202,237,172,59,63,191,172,59,163,144,172,59,244,97,172,59,52,51,172,59,98,4,172,59,126,213,171,59,136,166,171,59,129,119,171,59,104,72,171,59,62,25,171,59,1,234,170,59,180,186,170,59,84,139,170,59,227,91,170,59,97,44,170,59,204,252,169,59,39,205,169,59,112,
157,169,59,167,109,169,59,205,61,169,59,225,13,169,59,228,221,168,59,214,173,168,59,182,125,168,59,133,77,168,59,67,29,168,59,239,236,167,59,138,188,167,59,20,140,167,59,141,91,167,59,244,42,167,59,74,250,166,59,143,201,166,59,195,152,166,59,229,103,166,59,247,54,166,59,247,5,166,59,230,212,165,59,197,163,165,59,146,114,165,59,78,65,165,59,249,15,165,59,147,222,164,59,29,173,164,59,149,123,164,59,252,73,164,59,83,24,164,59,153,230,163,59,205,180,163,59,242,130,163,59,5,81,163,59,7,31,163,59,249,236,
162,59,218,186,162,59,170,136,162,59,105,86,162,59,24,36,162,59,183,241,161,59,68,191,161,59,193,140,161,59,45,90,161,59,137,39,161,59,213,244,160,59,15,194,160,59,58,143,160,59,83,92,160,59,93,41,160,59,86,246,159,59,62,195,159,59,22,144,159,59,222,92,159,59,149,41,159,59,61,246,158,59,211,194,158,59,90,143,158,59,208,91,158,59,54,40,158,59,140,244,157,59,210,192,157,59,7,141,157,59,44,89,157,59,65,37,157,59,71,241,156,59,60,189,156,59,33,137,156,59,245,84,156,59,186,32,156,59,111,236,155,59,20,
184,155,59,169,131,155,59,46,79,155,59,164,26,155,59,9,230,154,59,95,177,154,59,164,124,154,59,218,71,154,59,0,19,154,59,22,222,153,59,29,169,153,59,20,116,153,59,251,62,153,59,211,9,153,59,154,212,152,59,83,159,152,59,251,105,152,59,148,52,152,59,30,255,151,59,152,201,151,59,2,148,151,59,93,94,151,59,169,40,151,59,229,242,150,59,17,189,150,59,47,135,150,59,61,81,150,59,59,27,150,59,42,229,149,59,10,175,149,59,219,120,149,59,156,66,149,59,78,12,149,59,241,213,148,59,133,159,148,59,10,105,148,59,127,
50,148,59,230,251,147,59,61,197,147,59,133,142,147,59,190,87,147,59,232,32,147,59,3,234,146,59,16,179,146,59,13,124,146,59,251,68,146,59,218,13,146,59,171,214,145,59,109,159,145,59,31,104,145,59,195,48,145,59,89,249,144,59,223,193,144,59,87,138,144,59,192,82,144,59,26,27,144,59,102,227,143,59,163,171,143,59,209,115,143,59,241,59,143,59,2,4,143,59,5,204,142,59,249,147,142,59,223,91,142,59,182,35,142,59,127,235,141,59,57,179,141,59,229,122,141,59,130,66,141,59,17,10,141,59,146,209,140,59,5,153,140,
59,105,96,140,59,191,39,140,59,7,239,139,59,64,182,139,59,108,125,139,59,137,68,139,59,152,11,139,59,153,210,138,59,140,153,138,59,113,96,138,59,72,39,138,59,16,238,137,59,203,180,137,59,120,123,137,59,23,66,137,59,168,8,137,59,43,207,136,59,160,149,136,59,7,92,136,59,97,34,136,59,173,232,135,59,235,174,135,59,27,117,135,59,61,59,135,59,82,1,135,59,89,199,134,59,83,141,134,59,63,83,134,59,29,25,134,59,238,222,133,59,177,164,133,59,103,106,133,59,15,48,133,59,169,245,132,59,55,187,132,59,183,128,132,
59,41,70,132,59,142,11,132,59,230,208,131,59,48,150,131,59,109,91,131,59,157,32,131,59,192,229,130,59,213,170,130,59,221,111,130,59,216,52,130,59,198,249,129,59,167,190,129,59,122,131,129,59,65,72,129,59,250,12,129,59,167,209,128,59,70,150,128,59,217,90,128,59,95,31,128,59,174,199,127,59,134,80,127,59,68,217,126,59,232,97,126,59,114,234,125,59,227,114,125,59,59,251,124,59,121,131,124,59,157,11,124,59,168,147,123,59,154,27,123,59,114,163,122,59,50,43,122,59,216,178,121,59,101,58,121,59,217,193,120,
59,52,73,120,59,118,208,119,59,159,87,119,59,175,222,118,59,166,101,118,59,133,236,117,59,74,115,117,59,248,249,116,59,140,128,116,59,8,7,116,59,108,141,115,59,183,19,115,59,233,153,114,59,4,32,114,59,6,166,113,59,240,43,113,59,193,177,112,59,123,55,112,59,28,189,111,59,165,66,111,59,23,200,110,59,112,77,110,59,177,210,109,59,219,87,109,59,237,220,108,59,231,97,108,59,202,230,107,59,149,107,107,59,72,240,106,59,228,116,106,59,104,249,105,59,213,125,105,59,43,2,105,59,105,134,104,59,144,10,104,59,
160,142,103,59,152,18,103,59,122,150,102,59,68,26,102,59,248,157,101,59,148,33,101,59,26,165,100,59,137,40,100,59,225,171,99,59,34,47,99,59,77,178,98,59,97,53,98,59,95,184,97,59,70,59,97,59,22,190,96,59,208,64,96,59,116,195,95,59,2,70,95,59,121,200,94,59,218,74,94,59,37,205,93,59,90,79,93,59,120,209,92,59,129,83,92,59,116,213,91,59,81,87,91,59,24,217,90,59,202,90,90,59,101,220,89,59,235,93,89,59,92,223,88,59,182,96,88,59,252,225,87,59,44,99,87,59,70,228,86,59,75,101,86,59,59,230,85,59,22,103,85,59,
219,231,84,59,140,104,84,59,39,233,83,59,173,105,83,59,31,234,82,59,123,106,82,59,195,234,81,59,245,106,81,59,19,235,80,59,29,107,80,59,17,235,79,59,242,106,79,59,189,234,78,59,116,106,78,59,23,234,77,59,165,105,77,59,31,233,76,59,133,104,76,59,214,231,75,59,20,103,75,59,61,230,74,59,82,101,74,59,84,228,73,59,65,99,73,59,27,226,72,59,224,96,72,59,146,223,71,59,48,94,71,59,187,220,70,59,50,91,70,59,149,217,69,59,229,87,69,59,33,214,68,59,74,84,68,59,96,210,67,59,99,80,67,59,82,206,66,59,46,76,66,59,
247,201,65,59,173,71,65,59,80,197,64,59,224,66,64,59,93,192,63,59,199,61,63,59,31,187,62,59,99,56,62,59,149,181,61,59,181,50,61,59,194,175,60,59,188,44,60,59,164,169,59,59,122,38,59,59,61,163,58,59,238,31,58,59,141,156,57,59,25,25,57,59,148,149,56,59,252,17,56,59,83,142,55,59,151,10,55,59,202,134,54,59,235,2,54,59,250,126,53,59,247,250,52,59,226,118,52,59,188,242,51,59,133,110,51,59,60,234,50,59,225,101,50,59,117,225,49,59,248,92,49,59,105,216,48,59,202,83,48,59,25,207,47,59,87,74,47,59,132,197,46,
59,160,64,46,59,171,187,45,59,165,54,45,59,142,177,44,59,102,44,44,59,46,167,43,59,229,33,43,59,140,156,42,59,34,23,42,59,167,145,41,59,28,12,41,59,129,134,40,59,213,0,40,59,25,123,39,59,77,245,38,59,113,111,38,59,133,233,37,59,136,99,37,59,124,221,36,59,96,87,36,59,51,209,35,59,247,74,35,59,172,196,34,59,80,62,34,59,229,183,33,59,106,49,33,59,224,170,32,59,70,36,32,59,157,157,31,59,229,22,31,59,29,144,30,59,70,9,30,59,96,130,29,59,106,251,28,59,102,116,28,59,82,237,27,59,48,102,27,59,254,222,26,
59,190,87,26,59,111,208,25,59,18,73,25,59,165,193,24,59,42,58,24,59,161,178,23,59,8,43,23,59,98,163,22,59,173,27,22,59,234,147,21,59,24,12,21,59,56,132,20,59,74,252,19,59,78,116,19,59,68,236,18,59,44,100,18,59,6,220,17,59,210,83,17,59,144,203,16,59,65,67,16,59,228,186,15,59,121,50,15,59,0,170,14,59,122,33,14,59,231,152,13,59,70,16,13,59,152,135,12,59,220,254,11,59,19,118,11,59,61,237,10,59,90,100,10,59,106,219,9,59,109,82,9,59,99,201,8,59,76,64,8,59,40,183,7,59,247,45,7,59,186,164,6,59,111,27,6,59,
25,146,5,59,181,8,5,59,70,127,4,59,201,245,3,59,65,108,3,59,172,226,2,59,11,89,2,59,93,207,1,59,164,69,1,59,222,187,0,59,12,50,0,59,93,80,255,58,138,60,254,58,159,40,253,58,157,20,252,58,130,0,251,58,81,236,249,58,8,216,248,58,169,195,247,58,50,175,246,58,164,154,245,58,255,133,244,58,68,113,243,58,114,92,242,58,138,71,241,58,139,50,240,58,119,29,239,58,76,8,238,58,11,243,236,58,180,221,235,58,71,200,234,58,197,178,233,58,46,157,232,58,128,135,231,58,190,113,230,58,231,91,229,58,250,69,228,58,248,
47,227,58,226,25,226,58,183,3,225,58,119,237,223,58,35,215,222,58,187,192,221,58,62,170,220,58,173,147,219,58,8,125,218,58,80,102,217,58,131,79,216,58,163,56,215,58,175,33,214,58,168,10,213,58,142,243,211,58,96,220,210,58,31,197,209,58,204,173,208,58,101,150,207,58,236,126,206,58,96,103,205,58,194,79,204,58,18,56,203,58,79,32,202,58,122,8,201,58,147,240,199,58,154,216,198,58,143,192,197,58,115,168,196,58,69,144,195,58,5,120,194,58,181,95,193,58,83,71,192,58,224,46,191,58,92,22,190,58,199,253,188,
58,34,229,187,58,108,204,186,58,165,179,185,58,206,154,184,58,231,129,183,58,240,104,182,58,233,79,181,58,209,54,180,58,170,29,179,58,116,4,178,58,45,235,176,58,216,209,175,58,115,184,174,58,255,158,173,58,123,133,172,58,233,107,171,58,72,82,170,58,152,56,169,58,218,30,168,58,13,5,167,58,50,235,165,58,72,209,164,58,81,183,163,58,75,157,162,58,55,131,161,58,22,105,160,58,231,78,159,58,171,52,158,58,97,26,157,58,9,0,156,58,165,229,154,58,51,203,153,58,181,176,152,58,41,150,151,58,145,123,150,58,237,
96,149,58,60,70,148,58,126,43,147,58,180,16,146,58,222,245,144,58,252,218,143,58,15,192,142,58,21,165,141,58,16,138,140,58,255,110,139,58,227,83,138,58,188,56,137,58,137,29,136,58,75,2,135,58,2,231,133,58,175,203,132,58,81,176,131,58,232,148,130,58,117,121,129,58,247,93,128,58,222,132,126,58,186,77,124,58,130,22,122,58,55,223,119,58,215,167,117,58,101,112,115,58,223,56,113,58,71,1,111,58,156,201,108,58,222,145,106,58,15,90,104,58,46,34,102,58,59,234,99,58,54,178,97,58,33,122,95,58,250,65,93,58,195,
9,91,58,124,209,88,58,36,153,86,58,188,96,84,58,69,40,82,58,190,239,79,58,40,183,77,58,130,126,75,58,206,69,73,58,12,13,71,58,59,212,68,58,92,155,66,58,111,98,64,58,117,41,62,58,109,240,59,58,88,183,57,58,54,126,55,58,8,69,53,58,205,11,51,58,134,210,48,58,51,153,46,58,212,95,44,58,106,38,42,58,245,236,39,58,116,179,37,58,233,121,35,58,83,64,33,58,180,6,31,58,10,205,28,58,86,147,26,58,152,89,24,58,210,31,22,58,2,230,19,58,41,172,17,58,72,114,15,58,95,56,13,58,109,254,10,58,115,196,8,58,114,138,6,58,
105,80,4,58,89,22,2,58,133,184,255,57,73,68,251,57,1,208,246,57,172,91,242,57,76,231,237,57,223,114,233,57,104,254,228,57,230,137,224,57,90,21,220,57,196,160,215,57,38,44,211,57,126,183,206,57,206,66,202,57,23,206,197,57,88,89,193,57,147,228,188,57,199,111,184,57,245,250,179,57,30,134,175,57,66,17,171,57,98,156,166,57,125,39,162,57,149,178,157,57,171,61,153,57,189,200,148,57,206,83,144,57,221,222,139,57,235,105,135,57,248,244,130,57,11,0,125,57,38,22,116,57,66,44,107,57,98,66,98,57,132,88,89,57,171,
110,80,57,216,132,71,57,11,155,62,57,69,177,53,57,135,199,44,57,211,221,35,57,40,244,26,57,137,10,18,57,246,32,9,57,112,55,0,57,239,155,238,56,28,201,220,56,105,246,202,56,215,35,185,56,105,81,167,56,32,127,149,56,254,172,131,56,11,182,99,56,112,18,64,56,47,111,28,56,150,152,241,55,145,83,170,55,174,30,70,55,118,95,94,54,128,218,173,182,155,112,101,183,19,249,185,183,116,156,0,184,226,59,36,184,209,218,71,184,60,121,107,184,144,139,135,184,61,90,153,184,162,40,171,184,189,246,188,184,142,196,206,
184,18,146,224,184,70,95,242,184,21,22,2,185,93,252,10,185,123,226,19,185,110,200,28,185,53,174,37,185,206,147,46,185,58,121,55,185,118,94,64,185,130,67,73,185,94,40,82,185,7,13,91,185,126,241,99,185,193,213,108,185,207,185,117,185,167,157,126,185,165,192,131,185,90,50,136,185,243,163,140,185,111,21,145,185,206,134,149,185,15,248,153,185,50,105,158,185,55,218,162,185,29,75,167,185,227,187,171,185,137,44,176,185,14,157,180,185,115,13,185,185,182,125,189,185,215,237,193,185,214,93,198,185,178,205,202,
185,106,61,207,185,255,172,211,185,112,28,216,185,188,139,220,185,227,250,224,185,228,105,229,185,191,216,233,185,115,71,238,185,0,182,242,185,102,36,247,185,163,146,251,185,92,0,0,186,82,55,2,186,52,110,4,186,0,165,6,186,184,219,8,186,89,18,11,186,230,72,13,186,92,127,15,186,188,181,17,186,6,236,19,186,57,34,22,186,86,88,24,186,91,142,26,186,73,196,28,186,32,250,30,186,223,47,33,186,134,101,35,186,20,155,37,186,138,208,39,186,232,5,42,186,44,59,44,186,88,112,46,186,106,165,48,186,98,218,50,186,64,
15,53,186,5,68,55,186,175,120,57,186,62,173,59,186,179,225,61,186,12,22,64,186,75,74,66,186,110,126,68,186,117,178,70,186,96,230,72,186,47,26,75,186,225,77,77,186,119,129,79,186,240,180,81,186,76,232,83,186,139,27,86,186,172,78,88,186,175,129,90,186,148,180,92,186,90,231,94,186,2,26,97,186,140,76,99,186,246,126,101,186,66,177,103,186,109,227,105,186,121,21,108,186,102,71,110,186,49,121,112,186,221,170,114,186,104,220,116,186,210,13,119,186,27,63,121,186,67,112,123,186,73,161,125,186,46,210,127,186,
120,1,129,186,200,25,130,186,7,50,131,186,52,74,132,186,81,98,133,186,91,122,134,186,84,146,135,186,59,170,136,186,16,194,137,186,211,217,138,186,131,241,139,186,34,9,141,186,174,32,142,186,40,56,143,186,143,79,144,186,227,102,145,186,37,126,146,186,83,149,147,186,110,172,148,186,119,195,149,186,107,218,150,186,77,241,151,186,27,8,153,186,213,30,154,186,123,53,155,186,14,76,156,186,141,98,157,186,247,120,158,186,77,143,159,186,143,165,160,186,189,187,161,186,214,209,162,186,218,231,163,186,201,253,
164,186,163,19,166,186,105,41,167,186,25,63,168,186,180,84,169,186,58,106,170,186,170,127,171,186,4,149,172,186,73,170,173,186,120,191,174,186,145,212,175,186,148,233,176,186,129,254,177,186,87,19,179,186,23,40,180,186,193,60,181,186,84,81,182,186,208,101,183,186,53,122,184,186,132,142,185,186,187,162,186,186,219,182,187,186,228,202,188,186,213,222,189,186,175,242,190,186,113,6,192,186,27,26,193,186,173,45,194,186,40,65,195,186,138,84,196,186,212,103,197,186,6,123,198,186,31,142,199,186,32,161,200,
186,8,180,201,186,215,198,202,186,142,217,203,186,43,236,204,186,175,254,205,186,26,17,207,186,108,35,208,186,164,53,209,186,195,71,210,186,200,89,211,186,179,107,212,186,132,125,213,186,59,143,214,186,216,160,215,186,91,178,216,186,195,195,217,186,17,213,218,186,68,230,219,186,93,247,220,186,90,8,222,186,61,25,223,186,5,42,224,186,178,58,225,186,67,75,226,186,185,91,227,186,19,108,228,186,82,124,229,186,117,140,230,186,125,156,231,186,104,172,232,186,55,188,233,186,235,203,234,186,129,219,235,186,
252,234,236,186,90,250,237,186,155,9,239,186,192,24,240,186,200,39,241,186,179,54,242,186,129,69,243,186,49,84,244,186,197,98,245,186,59,113,246,186,147,127,247,186,206,141,248,186,235,155,249,186,235,169,250,186,204,183,251,186,144,197,252,186,53,211,253,186,188,224,254,186,36,238,255,186,183,125,0,187,77,4,1,187,211,138,1,187,74,17,2,187,178,151,2,187,10,30,3,187,82,164,3,187,139,42,4,187,180,176,4,187,205,54,5,187,215,188,5,187,208,66,6,187,186,200,6,187,148,78,7,187,94,212,7,187,23,90,8,187,193,
223,8,187,90,101,9,187,227,234,9,187,92,112,10,187,197,245,10,187,29,123,11,187,100,0,12,187,155,133,12,187,194,10,13,187,216,143,13,187,221,20,14,187,210,153,14,187,181,30,15,187,136,163,15,187,74,40,16,187,251,172,16,187,156,49,17,187,43,182,17,187,168,58,18,187,21,191,18,187,113,67,19,187,187,199,19,187,244,75,20,187,27,208,20,187,49,84,21,187,54,216,21,187,41,92,22,187,10,224,22,187,218,99,23,187,152,231,23,187,69,107,24,187,223,238,24,187,104,114,25,187,223,245,25,187,67,121,26,187,150,252,26,
187,215,127,27,187,5,3,28,187,34,134,28,187,44,9,29,187,35,140,29,187,9,15,30,187,220,145,30,187,156,20,31,187,74,151,31,187,230,25,32,187,111,156,32,187,229,30,33,187,72,161,33,187,153,35,34,187,215,165,34,187,2,40,35,187,26,170,35,187,31,44,36,187,17,174,36,187,240,47,37,187,188,177,37,187,116,51,38,187,25,181,38,187,171,54,39,187,42,184,39,187,149,57,40,187,237,186,40,187,49,60,41,187,98,189,41,187,127,62,42,187,136,191,42,187,126,64,43,187,95,193,43,187,45,66,44,187,231,194,44,187,142,67,45,187,
32,196,45,187,158,68,46,187,8,197,46,187,93,69,47,187,159,197,47,187,204,69,48,187,230,197,48,187,234,69,49,187,218,197,49,187,182,69,50,187,126,197,50,187,48,69,51,187,206,196,51,187,88,68,52,187,204,195,52,187,44,67,53,187,119,194,53,187,174,65,54,187,207,192,54,187,219,63,55,187,210,190,55,187,180,61,56,187,129,188,56,187,57,59,57,187,220,185,57,187,105,56,58,187,225,182,58,187,67,53,59,187,144,179,59,187,200,49,60,187,234,175,60,187,246,45,61,187,237,171,61,187,206,41,62,187,153,167,62,187,79,
37,63,187,238,162,63,187,120,32,64,187,235,157,64,187,73,27,65,187,145,152,65,187,194,21,66,187,221,146,66,187,227,15,67,187,209,140,67,187,170,9,68,187,108,134,68,187,24,3,69,187,173,127,69,187,43,252,69,187,148,120,70,187,229,244,70,187,32,113,71,187,68,237,71,187,81,105,72,187,72,229,72,187,39,97,73,187,240,220,73,187,162,88,74,187,60,212,74,187,192,79,75,187,44,203,75,187,129,70,76,187,191,193,76,187,230,60,77,187,245,183,77,187,237,50,78,187,206,173,78,187,151,40,79,187,73,163,79,187,227,29,
80,187,101,152,80,187,208,18,81,187,35,141,81,187,94,7,82,187,129,129,82,187,140,251,82,187,128,117,83,187,91,239,83,187,31,105,84,187,202,226,84,187,94,92,85,187,217,213,85,187,60,79,86,187,134,200,86,187,184,65,87,187,210,186,87,187,212,51,88,187,189,172,88,187,141,37,89,187,69,158,89,187,228,22,90,187,107,143,90,187,217,7,91,187,46,128,91,187,106,248,91,187,142,112,92,187,152,232,92,187,138,96,93,187,98,216,93,187,34,80,94,187,200,199,94,187,85,63,95,187,201,182,95,187,36,46,96,187,102,165,96,
187,142,28,97,187,156,147,97,187,146,10,98,187,109,129,98,187,47,248,98,187,216,110,99,187,103,229,99,187,220,91,100,187,56,210,100,187,122,72,101,187,162,190,101,187,176,52,102,187,164,170,102,187,126,32,103,187,62,150,103,187,228,11,104,187,112,129,104,187,226,246,104,187,57,108,105,187,118,225,105,187,153,86,106,187,162,203,106,187,144,64,107,187,100,181,107,187,29,42,108,187,188,158,108,187,64,19,109,187,170,135,109,187,248,251,109,187,44,112,110,187,70,228,110,187,68,88,111,187,40,204,111,187,
240,63,112,187,158,179,112,187,48,39,113,187,168,154,113,187,5,14,114,187,70,129,114,187,108,244,114,187,119,103,115,187,102,218,115,187,59,77,116,187,243,191,116,187,145,50,117,187,19,165,117,187,121,23,118,187,196,137,118,187,243,251,118,187,6,110,119,187,254,223,119,187,218,81,120,187,154,195,120,187,63,53,121,187,199,166,121,187,52,24,122,187,132,137,122,187,185,250,122,187,209,107,123,187,206,220,123,187,174,77,124,187,114,190,124,187,25,47,125,187,165,159,125,187,20,16,126,187,102,128,126,187,
156,240,126,187,182,96,127,187,179,208,127,187,74,32,128,187,44,88,128,187,255,143,128,187,197,199,128,187,123,255,128,187,36,55,129,187,190,110,129,187,74,166,129,187,199,221,129,187,53,21,130,187,149,76,130,187,231,131,130,187,42,187,130,187,94,242,130,187,132,41,131,187,155,96,131,187,164,151,131,187,158,206,131,187,137,5,132,187,102,60,132,187,51,115,132,187,242,169,132,187,162,224,132,187,68,23,133,187,214,77,133,187,90,132,133,187,207,186,133,187,53,241,133,187,140,39,134,187,212,93,134,187,
13,148,134,187,55,202,134,187,82,0,135,187,95,54,135,187,92,108,135,187,74,162,135,187,41,216,135,187,249,13,136,187,185,67,136,187,107,121,136,187,13,175,136,187,160,228,136,187,36,26,137,187,153,79,137,187,254,132,137,187,85,186,137,187,155,239,137,187,211,36,138,187,251,89,138,187,20,143,138,187,29,196,138,187,24,249,138,187,2,46,139,187,221,98,139,187,169,151,139,187,101,204,139,187,18,1,140,187,175,53,140,187,60,106,140,187,186,158,140,187,41,211,140,187,136,7,141,187,215,59,141,187,22,112,141,
187,70,164,141,187,102,216,141,187,118,12,142,187,119,64,142,187,104,116,142,187,73,168,142,187,26,220,142,187,219,15,143,187,141,67,143,187,46,119,143,187,192,170,143,187,66,222,143,187,180,17,144,187,22,69,144,187,104,120,144,187,170,171,144,187,220,222,144,187,254,17,145,187,16,69,145,187,17,120,145,187,3,171,145,187,229,221,145,187,182,16,146,187,119,67,146,187,40,118,146,187,201,168,146,187,90,219,146,187,218,13,147,187,74,64,147,187,170,114,147,187,250,164,147,187,57,215,147,187,104,9,148,187,
135,59,148,187,149,109,148,187,146,159,148,187,128,209,148,187,93,3,149,187,41,53,149,187,229,102,149,187,144,152,149,187,43,202,149,187,182,251,149,187,48,45,150,187,153,94,150,187,241,143,150,187,57,193,150,187,113,242,150,187,151,35,151,187,174,84,151,187,179,133,151,187,167,182,151,187,139,231,151,187,94,24,152,187,33,73,152,187,210,121,152,187,115,170,152,187,3,219,152,187,130,11,153,187,240,59,153,187,77,108,153,187,154,156,153,187,213,204,153,187,255,252,153,187,25,45,154,187,33,93,154,187,
25,141,154,187,255,188,154,187,213,236,154,187,153,28,155,187,76,76,155,187,238,123,155,187,127,171,155,187,255,218,155,187,110,10,156,187,203,57,156,187,24,105,156,187,83,152,156,187,125,199,156,187,149,246,156,187,156,37,157,187,147,84,157,187,119,131,157,187,75,178,157,187,13,225,157,187,189,15,158,187,93,62,158,187,234,108,158,187,103,155,158,187,210,201,158,187,43,248,158,187,115,38,159,187,170,84,159,187,207,130,159,187,227,176,159,187,229,222,159,187,213,12,160,187,180,58,160,187,129,104,160,
187,60,150,160,187,230,195,160,187,127,241,160,187,5,31,161,187,122,76,161,187,221,121,161,187,47,167,161,187,110,212,161,187,156,1,162,187,184,46,162,187,194,91,162,187,187,136,162,187,162,181,162,187,118,226,162,187,57,15,163,187,234,59,163,187,137,104,163,187,22,149,163,187,146,193,163,187,251,237,163,187,82,26,164,187,151,70,164,187,202,114,164,187,236,158,164,187,251,202,164,187,248,246,164,187,227,34,165,187,188,78,165,187,130,122,165,187,55,166,165,187,217,209,165,187,106,253,165,187,232,40,
166,187,84,84,166,187,173,127,166,187,244,170,166,187,42,214,166,187,76,1,167,187,93,44,167,187,91,87,167,187,71,130,167,187,33,173,167,187,232,215,167,187,157,2,168,187,63,45,168,187,207,87,168,187,76,130,168,187,184,172,168,187,16,215,168,187,86,1,169,187,138,43,169,187,171,85,169,187,186,127,169,187,182,169,169,187,159,211,169,187,118,253,169,187,58,39,170,187,236,80,170,187,139,122,170,187,24,164,170,187,145,205,170,187,248,246,170,187,77,32,171,187,142,73,171,187,189,114,171,187,217,155,171,
187,227,196,171,187,217,237,171,187,189,22,172,187,142,63,172,187,77,104,172,187,248,144,172,187,144,185,172,187,22,226,172,187,137,10,173,187,233,50,173,187,53,91,173,187,111,131,173,187,150,171,173,187,170,211,173,187,171,251,173,187,154,35,174,187,117,75,174,187,61,115,174,187,242,154,174,187,147,194,174,187,34,234,174,187,158,17,175,187,7,57,175,187,92,96,175,187,158,135,175,187,205,174,175,187,233,213,175,187,242,252,175,187,232,35,176,187,202,74,176,187,153,113,176,187,85,152,176,187,254,190,
176,187,147,229,176,187,21,12,177,187,132,50,177,187,224,88,177,187,40,127,177,187,92,165,177,187,126,203,177,187,140,241,177,187,134,23,178,187,110,61,178,187,65,99,178,187,2,137,178,187,174,174,178,187,72,212,178,187,206,249,178,187,64,31,179,187,159,68,179,187,234,105,179,187,34,143,179,187,70,180,179,187,87,217,179,187,84,254,179,187,61,35,180,187,19,72,180,187,213,108,180,187,132,145,180,187,31,182,180,187,166,218,180,187,25,255,180,187,121,35,181,187,197,71,181,187,254,107,181,187,34,144,181,
187,51,180,181,187,48,216,181,187,25,252,181,187,239,31,182,187,177,67,182,187,94,103,182,187,248,138,182,187,126,174,182,187,241,209,182,187,79,245,182,187,153,24,183,187,208,59,183,187,243,94,183,187,1,130,183,187,252,164,183,187,227,199,183,187,181,234,183,187,116,13,184,187,31,48,184,187,182,82,184,187,56,117,184,187,167,151,184,187,2,186,184,187,72,220,184,187,123,254,184,187,153,32,185,187,163,66,185,187,153,100,185,187,123,134,185,187,73,168,185,187,2,202,185,187,168,235,185,187,57,13,186,
187,182,46,186,187,31,80,186,187,115,113,186,187,180,146,186,187,224,179,186,187,247,212,186,187,251,245,186,187,234,22,187,187,197,55,187,187,139,88,187,187,62,121,187,187,219,153,187,187,101,186,187,187,218,218,187,187,59,251,187,187,135,27,188,187,191,59,188,187,227,91,188,187,242,123,188,187,236,155,188,187,210,187,188,187,164,219,188,187,97,251,188,187,10,27,189,187,158,58,189,187,30,90,189,187,137,121,189,187,224,152,189,187,34,184,189,187,79,215,189,187,104,246,189,187,108,21,190,187,92,52,
190,187,55,83,190,187,253,113,190,187,175,144,190,187,76,175,190,187,213,205,190,187,72,236,190,187,167,10,191,187,242,40,191,187,39,71,191,187,72,101,191,187,85,131,191,187,76,161,191,187,47,191,191,187,253,220,191,187,182,250,191,187,90,24,192,187,234,53,192,187,101,83,192,187,202,112,192,187,27,142,192,187,88,171,192,187,127,200,192,187,146,229,192,187,143,2,193,187,120,31,193,187,76,60,193,187,11,89,193,187,181,117,193,187,74,146,193,187,202,174,193,187,53,203,193,187,139,231,193,187,204,3,194,
187,248,31,194,187,15,60,194,187,18,88,194,187,255,115,194,187,215,143,194,187,154,171,194,187,72,199,194,187,225,226,194,187,101,254,194,187,211,25,195,187,45,53,195,187,114,80,195,187,161,107,195,187,187,134,195,187,193,161,195,187,177,188,195,187,139,215,195,187,81,242,195,187,2,13,196,187,157,39,196,187,35,66,196,187,148,92,196,187,240,118,196,187,54,145,196,187,103,171,196,187,131,197,196,187,138,223,196,187,124,249,196,187,88,19,197,187,31,45,197,187,208,70,197,187,109,96,197,187,243,121,197,
187,101,147,197,187,193,172,197,187,8,198,197,187,58,223,197,187,86,248,197,187,93,17,198,187,78,42,198,187,43,67,198,187,241,91,198,187,162,116,198,187,62,141,198,187,197,165,198,187,54,190,198,187,145,214,198,187,215,238,198,187,8,7,199,187,35,31,199,187,41,55,199,187,25,79,199,187,243,102,199,187,184,126,199,187,104,150,199,187,2,174,199,187,135,197,199,187,246,220,199,187,79,244,199,187,147,11,200,187,193,34,200,187,218,57,200,187,221,80,200,187,202,103,200,187,162,126,200,187,101,149,200,187,
17,172,200,187,168,194,200,187,42,217,200,187,149,239,200,187,236,5,201,187,44,28,201,187,87,50,201,187,108,72,201,187,107,94,201,187,85,116,201,187,41,138,201,187,231,159,201,187,143,181,201,187,34,203,201,187,159,224,201,187,7,246,201,187,88,11,202,187,148,32,202,187,186,53,202,187,202,74,202,187,197,95,202,187,169,116,202,187,120,137,202,187,49,158,202,187,212,178,202,187,98,199,202,187,217,219,202,187,59,240,202,187,135,4,203,187,189,24,203,187,221,44,203,187,231,64,203,187,220,84,203,187,186,
104,203,187,131,124,203,187,54,144,203,187,211,163,203,187,90,183,203,187,203,202,203,187,38,222,203,187,107,241,203,187,154,4,204,187,179,23,204,187,183,42,204,187,164,61,204,187,123,80,204,187,61,99,204,187,232,117,204,187,126,136,204,187,253,154,204,187,103,173,204,187,186,191,204,187,247,209,204,187,31,228,204,187,48,246,204,187,44,8,205,187,17,26,205,187,224,43,205,187,153,61,205,187,60,79,205,187,201,96,205,187,64,114,205,187,161,131,205,187,236,148,205,187,33,166,205,187,64,183,205,187,72,
200,205,187,59,217,205,187,23,234,205,187,221,250,205,187,141,11,206,187,39,28,206,187,171,44,206,187,25,61,206,187,112,77,206,187,177,93,206,187,221,109,206,187,242,125,206,187,240,141,206,187,217,157,206,187,172,173,206,187,104,189,206,187,14,205,206,187,158,220,206,187,24,236,206,187,123,251,206,187,200,10,207,187,255,25,207,187,32,41,207,187,43,56,207,187,31,71,207,187,253,85,207,187,197,100,207,187,119,115,207,187,18,130,207,187,151,144,207,187,6,159,207,187,94,173,207,187,161,187,207,187,205,
201,207,187,226,215,207,187,226,229,207,187,203,243,207,187,158,1,208,187,90,15,208,187,0,29,208,187],"i8",4,y.a+399360);
Q([144,42,208,187,10,56,208,187,109,69,208,187,186,82,208,187,240,95,208,187,17,109,208,187,26,122,208,187,14,135,208,187,235,147,208,187,178,160,208,187,98,173,208,187,252,185,208,187,128,198,208,187,238,210,208,187,68,223,208,187,133,235,208,187,175,247,208,187,195,3,209,187,192,15,209,187,167,27,209,187,120,39,209,187,50,51,209,187,214,62,209,187,100,74,209,187,218,85,209,187,59,97,209,187,133,108,209,187,185,119,209,187,214,130,209,187,221,141,209,187,205,152,209,187,167,163,209,187,107,174,209,
187,24,185,209,187,175,195,209,187,47,206,209,187,152,216,209,187,236,226,209,187,40,237,209,187,79,247,209,187,95,1,210,187,88,11,210,187,59,21,210,187,7,31,210,187,189,40,210,187,93,50,210,187,230,59,210,187,88,69,210,187,180,78,210,187,249,87,210,187,40,97,210,187,65,106,210,187,67,115,210,187,46,124,210,187,3,133,210,187,194,141,210,187,105,150,210,187,251,158,210,187,118,167,210,187,218,175,210,187,40,184,210,187,95,192,210,187,128,200,210,187,138,208,210,187,126,216,210,187,91,224,210,187,33,
232,210,187,209,239,210,187,107,247,210,187,238,254,210,187,90,6,211,187,176,13,211,187,239,20,211,187,24,28,211,187,42,35,211,187,38,42,211,187,11,49,211,187,218,55,211,187,146,62,211,187,51,69,211,187,190,75,211,187,50,82,211,187,144,88,211,187,215,94,211,187,7,101,211,187,33,107,211,187,37,113,211,187,17,119,211,187,232,124,211,187,167,130,211,187,80,136,211,187,227,141,211,187,95,147,211,187,196,152,211,187,19,158,211,187,75,163,211,187,108,168,211,187,119,173,211,187,108,178,211,187,73,183,211,
187,17,188,211,187,193,192,211,187,91,197,211,187,223,201,211,187,75,206,211,187,161,210,211,187,225,214,211,187,10,219,211,187,28,223,211,187,24,227,211,187,253,230,211,187,204,234,211,187,132,238,211,187,37,242,211,187,176,245,211,187,36,249,211,187,130,252,211,187,201,255,211,187,249,2,212,187,19,6,212,187,22,9,212,187,3,12,212,187,217,14,212,187,152,17,212,187,65,20,212,187,211,22,212,187,78,25,212,187,179,27,212,187,1,30,212,187,57,32,212,187,90,34,212,187,101,36,212,187,89,38,212,187,54,40,
212,187,252,41,212,187,173,43,212,187,70,45,212,187,201,46,212,187,53,48,212,187,139,49,212,187,202,50,212,187,242,51,212,187,4,53,212,187,255,53,212,187,228,54,212,187,178,55,212,187,106,56,212,187,10,57,212,187,149,57,212,187,8,58,212,187,101,58,212,187,172,58,212,187,220,58,212,187,245,58,212,187,248,58,212,187,228,58,212,187,185,58,212,187,120,58,212,187,33,58,212,187,178,57,212,187,46,57,212,187,146,56,212,187,224,55,212,187,24,55,212,187,56,54,212,187,67,53,212,187,54,52,212,187,20,51,212,187,
218,49,212,187,138,48,212,187,36,47,212,187,166,45,212,187,19,44,212,187,104,42,212,187,167,40,212,187,208,38,212,187,226,36,212,187,222,34,212,187,195,32,212,187,145,30,212,187,73,28,212,187,234,25,212,187,117,23,212,187,233,20,212,187,70,18,212,187,142,15,212,187,190,12,212,187,216,9,212,187,220,6,212,187,201,3,212,187,159,0,212,187,95,253,211,187,8,250,211,187,155,246,211,187,23,243,211,187,125,239,211,187,204,235,211,187,5,232,211,187,39,228,211,187,51,224,211,187,41,220,211,187,7,216,211,187,
208,211,211,187,129,207,211,187,29,203,211,187,161,198,211,187,16,194,211,187,103,189,211,187,169,184,211,187,212,179,211,187,232,174,211,187,230,169,211,187,205,164,211,187,158,159,211,187,89,154,211,187,253,148,211,187,138,143,211,187,2,138,211,187,98,132,211,187,172,126,211,187,224,120,211,187,254,114,211,187,4,109,211,187,245,102,211,187,207,96,211,187,147,90,211,187,64,84,211,187,215,77,211,187,87,71,211,187,193,64,211,187,21,58,211,187,82,51,211,187,121,44,211,187,137,37,211,187,131,30,211,
187,102,23,211,187,52,16,211,187,235,8,211,187,139,1,211,187,21,250,210,187,137,242,210,187,230,234,210,187,45,227,210,187,94,219,210,187,120,211,210,187,124,203,210,187,106,195,210,187,65,187,210,187,2,179,210,187,172,170,210,187,65,162,210,187,191,153,210,187,38,145,210,187,120,136,210,187,179,127,210,187,216,118,210,187,230,109,210,187,222,100,210,187,192,91,210,187,140,82,210,187,65,73,210,187,224,63,210,187,105,54,210,187,219,44,210,187,56,35,210,187,126,25,210,187,173,15,210,187,199,5,210,187,
202,251,209,187,183,241,209,187,142,231,209,187,79,221,209,187,249,210,209,187,141,200,209,187,11,190,209,187,115,179,209,187,197,168,209,187,0,158,209,187,37,147,209,187,53,136,209,187,45,125,209,187,16,114,209,187,221,102,209,187,147,91,209,187,51,80,209,187,190,68,209,187,49,57,209,187,143,45,209,187,215,33,209,187,9,22,209,187,36,10,209,187,42,254,208,187,25,242,208,187,242,229,208,187,181,217,208,187,98,205,208,187,249,192,208,187,122,180,208,187,229,167,208,187,58,155,208,187,120,142,208,187,
161,129,208,187,180,116,208,187,176,103,208,187,151,90,208,187,103,77,208,187,34,64,208,187,198,50,208,187,85,37,208,187,206,23,208,187,48,10,208,187,125,252,207,187,179,238,207,187,212,224,207,187,223,210,207,187,211,196,207,187,178,182,207,187,123,168,207,187,46,154,207,187,203,139,207,187,82,125,207,187,195,110,207,187,30,96,207,187,100,81,207,187,147,66,207,187,173,51,207,187,176,36,207,187,158,21,207,187,118,6,207,187,56,247,206,187,229,231,206,187,123,216,206,187,252,200,206,187,103,185,206,
187,188,169,206,187,251,153,206,187,36,138,206,187,56,122,206,187,53,106,206,187,29,90,206,187,240,73,206,187,172,57,206,187,83,41,206,187,228,24,206,187,95,8,206,187,197,247,205,187,20,231,205,187,79,214,205,187,115,197,205,187,130,180,205,187,123,163,205,187,94,146,205,187,43,129,205,187,227,111,205,187,134,94,205,187,18,77,205,187,137,59,205,187,235,41,205,187,54,24,205,187,109,6,205,187,141,244,204,187,152,226,204,187,141,208,204,187,109,190,204,187,55,172,204,187,236,153,204,187,139,135,204,
187,20,117,204,187,136,98,204,187,231,79,204,187,48,61,204,187,99,42,204,187,129,23,204,187,137,4,204,187,124,241,203,187,90,222,203,187,34,203,203,187,212,183,203,187,113,164,203,187,249,144,203,187,107,125,203,187,200,105,203,187,15,86,203,187,65,66,203,187,94,46,203,187,101,26,203,187,87,6,203,187,51,242,202,187,250,221,202,187,172,201,202,187,72,181,202,187,207,160,202,187,65,140,202,187,157,119,202,187,228,98,202,187,22,78,202,187,51,57,202,187,58,36,202,187,44,15,202,187,9,250,201,187,208,228,
201,187,131,207,201,187,32,186,201,187,167,164,201,187,26,143,201,187,119,121,201,187,192,99,201,187,243,77,201,187,17,56,201,187,25,34,201,187,13,12,201,187,235,245,200,187,181,223,200,187,105,201,200,187,8,179,200,187,146,156,200,187,7,134,200,187,103,111,200,187,178,88,200,187,232,65,200,187,8,43,200,187,20,20,200,187,11,253,199,187,237,229,199,187,185,206,199,187,113,183,199,187,20,160,199,187,161,136,199,187,26,113,199,187,126,89,199,187,205,65,199,187,7,42,199,187,44,18,199,187,60,250,198,187,
55,226,198,187,30,202,198,187,239,177,198,187,172,153,198,187,84,129,198,187,231,104,198,187,101,80,198,187,207,55,198,187,35,31,198,187,99,6,198,187,142,237,197,187,164,212,197,187,166,187,197,187,146,162,197,187,106,137,197,187,46,112,197,187,220,86,197,187,118,61,197,187,251,35,197,187,108,10,197,187,199,240,196,187,15,215,196,187,65,189,196,187,95,163,196,187,104,137,196,187,93,111,196,187,61,85,196,187,9,59,196,187,192,32,196,187,98,6,196,187,240,235,195,187,105,209,195,187,206,182,195,187,30,
156,195,187,90,129,195,187,129,102,195,187,148,75,195,187,146,48,195,187,124,21,195,187,82,250,194,187,19,223,194,187,191,195,194,187,88,168,194,187,219,140,194,187,75,113,194,187,166,85,194,187,237,57,194,187,31,30,194,187,61,2,194,187,71,230,193,187,60,202,193,187,30,174,193,187,234,145,193,187,163,117,193,187,71,89,193,187,216,60,193,187,84,32,193,187,187,3,193,187,15,231,192,187,78,202,192,187,121,173,192,187,144,144,192,187,147,115,192,187,130,86,192,187,92,57,192,187,35,28,192,187,213,254,191,
187,115,225,191,187,254,195,191,187,116,166,191,187,214,136,191,187,36,107,191,187,94,77,191,187,132,47,191,187,150,17,191,187,148,243,190,187,127,213,190,187,85,183,190,187,23,153,190,187,197,122,190,187,96,92,190,187,230,61,190,187,89,31,190,187,184,0,190,187,3,226,189,187,58,195,189,187,93,164,189,187,109,133,189,187,104,102,189,187,80,71,189,187,36,40,189,187,228,8,189,187,145,233,188,187,42,202,188,187,175,170,188,187,33,139,188,187,126,107,188,187,200,75,188,187,255,43,188,187,34,12,188,187,
49,236,187,187,44,204,187,187,20,172,187,187,233,139,187,187,169,107,187,187,86,75,187,187,240,42,187,187,118,10,187,187,233,233,186,187,72,201,186,187,148,168,186,187,204,135,186,187,240,102,186,187,2,70,186,187,0,37,186,187,234,3,186,187,193,226,185,187,133,193,185,187,53,160,185,187,210,126,185,187,91,93,185,187,209,59,185,187,52,26,185,187,132,248,184,187,192,214,184,187,233,180,184,187,255,146,184,187,2,113,184,187,241,78,184,187,205,44,184,187,150,10,184,187,76,232,183,187,239,197,183,187,126,
163,183,187,250,128,183,187,100,94,183,187,186,59,183,187,253,24,183,187,45,246,182,187,74,211,182,187,84,176,182,187,74,141,182,187,46,106,182,187,255,70,182,187,189,35,182,187,104,0,182,187,0,221,181,187,133,185,181,187,247,149,181,187,86,114,181,187,163,78,181,187,220,42,181,187,3,7,181,187,23,227,180,187,24,191,180,187,6,155,180,187,225,118,180,187,170,82,180,187,96,46,180,187,3,10,180,187,147,229,179,187,17,193,179,187,124,156,179,187,212,119,179,187,26,83,179,187,77,46,179,187,109,9,179,187,
123,228,178,187,118,191,178,187,95,154,178,187,53,117,178,187,248,79,178,187,169,42,178,187,71,5,178,187,211,223,177,187,77,186,177,187,180,148,177,187,8,111,177,187,74,73,177,187,122,35,177,187,151,253,176,187,162,215,176,187,155,177,176,187,129,139,176,187,85,101,176,187,22,63,176,187,198,24,176,187,99,242,175,187,237,203,175,187,102,165,175,187,204,126,175,187,32,88,175,187,98,49,175,187,146,10,175,187,175,227,174,187,186,188,174,187,180,149,174,187,155,110,174,187,112,71,174,187,51,32,174,187,
227,248,173,187,130,209,173,187,15,170,173,187,138,130,173,187,243,90,173,187,73,51,173,187,142,11,173,187,193,227,172,187,226,187,172,187,241,147,172,187,239,107,172,187,218,67,172,187,179,27,172,187,123,243,171,187,49,203,171,187,213,162,171,187,103,122,171,187,232,81,171,187,86,41,171,187,179,0,171,187,255,215,170,187,56,175,170,187,96,134,170,187,118,93,170,187,123,52,170,187,110,11,170,187,79,226,169,187,31,185,169,187,222,143,169,187,138,102,169,187,37,61,169,187,175,19,169,187,39,234,168,187,
142,192,168,187,227,150,168,187,39,109,168,187,89,67,168,187,122,25,168,187,138,239,167,187,136,197,167,187,117,155,167,187,80,113,167,187,26,71,167,187,211,28,167,187,123,242,166,187,17,200,166,187,150,157,166,187,10,115,166,187,109,72,166,187,191,29,166,187,255,242,165,187,46,200,165,187,76,157,165,187,89,114,165,187,85,71,165,187,64,28,165,187,25,241,164,187,226,197,164,187,154,154,164,187,65,111,164,187,214,67,164,187,91,24,164,187,207,236,163,187,50,193,163,187,132,149,163,187,197,105,163,187,
245,61,163,187,20,18,163,187,35,230,162,187,33,186,162,187,14,142,162,187,234,97,162,187,181,53,162,187,112,9,162,187,26,221,161,187,179,176,161,187,60,132,161,187,180,87,161,187,27,43,161,187,114,254,160,187,184,209,160,187,237,164,160,187,18,120,160,187,39,75,160,187,43,30,160,187,30,241,159,187,1,196,159,187,212,150,159,187,150,105,159,187,71,60,159,187,232,14,159,187,121,225,158,187,250,179,158,187,106,134,158,187,202,88,158,187,25,43,158,187,88,253,157,187,135,207,157,187,166,161,157,187,180,
115,157,187,179,69,157,187,161,23,157,187,127,233,156,187,77,187,156,187,10,141,156,187,184,94,156,187,85,48,156,187,227,1,156,187,96,211,155,187,205,164,155,187,43,118,155,187,120,71,155,187,181,24,155,187,227,233,154,187,0,187,154,187,14,140,154,187,12,93,154,187,249,45,154,187,215,254,153,187,166,207,153,187,100,160,153,187,19,113,153,187,177,65,153,187,64,18,153,187,192,226,152,187,48,179,152,187,144,131,152,187,224,83,152,187,33,36,152,187,82,244,151,187,115,196,151,187,133,148,151,187,135,100,
151,187,122,52,151,187,94,4,151,187,49,212,150,187,246,163,150,187,171,115,150,187,80,67,150,187,230,18,150,187,109,226,149,187,228,177,149,187,76,129,149,187,165,80,149,187,238,31,149,187,40,239,148,187,83,190,148,187,110,141,148,187,122,92,148,187,120,43,148,187,101,250,147,187,68,201,147,187,20,152,147,187,212,102,147,187,134,53,147,187,40,4,147,187,187,210,146,187,64,161,146,187,181,111,146,187,27,62,146,187,114,12,146,187,187,218,145,187,244,168,145,187,30,119,145,187,58,69,145,187,71,19,145,
187,69,225,144,187,52,175,144,187,20,125,144,187,230,74,144,187,168,24,144,187,93,230,143,187,2,180,143,187,153,129,143,187,33,79,143,187,154,28,143,187,5,234,142,187,97,183,142,187,174,132,142,187,237,81,142,187,30,31,142,187,64,236,141,187,83,185,141,187,88,134,141,187,78,83,141,187,55,32,141,187,16,237,140,187,219,185,140,187,152,134,140,187,71,83,140,187,231,31,140,187,121,236,139,187,253,184,139,187,114,133,139,187,218,81,139,187,51,30,139,187,126,234,138,187,186,182,138,187,233,130,138,187,
9,79,138,187,27,27,138,187,32,231,137,187,22,179,137,187,254,126,137,187,216,74,137,187,164,22,137,187,99,226,136,187,19,174,136,187,181,121,136,187,74,69,136,187,208,16,136,187,73,220,135,187,180,167,135,187,17,115,135,187,96,62,135,187,162,9,135,187,214,212,134,187,252,159,134,187,20,107,134,187,31,54,134,187,28,1,134,187,12,204,133,187,238,150,133,187,194,97,133,187,137,44,133,187,66,247,132,187,238,193,132,187,140,140,132,187,29,87,132,187,160,33,132,187,22,236,131,187,126,182,131,187,217,128,
131,187,39,75,131,187,104,21,131,187,155,223,130,187,193,169,130,187,217,115,130,187,229,61,130,187,227,7,130,187,212,209,129,187,184,155,129,187,142,101,129,187,88,47,129,187,20,249,128,187,196,194,128,187,102,140,128,187,251,85,128,187,131,31,128,187,254,209,127,187,218,100,127,187,157,247,126,187,70,138,126,187,213,28,126,187,75,175,125,187,167,65,125,187,233,211,124,187,17,102,124,187,33,248,123,187,22,138,123,187,242,27,123,187,181,173,122,187,94,63,122,187,238,208,121,187,101,98,121,187,195,
243,120,187,7,133,120,187,51,22,120,187,69,167,119,187,62,56,119,187,30,201,118,187,230,89,118,187,148,234,117,187,42,123,117,187,167,11,117,187,11,156,116,187,86,44,116,187,137,188,115,187,163,76,115,187,165,220,114,187,142,108,114,187,95,252,113,187,23,140,113,187,183,27,113,187,62,171,112,187,174,58,112,187,5,202,111,187,68,89,111,187,107,232,110,187,121,119,110,187,112,6,110,187,79,149,109,187,22,36,109,187,197,178,108,187,92,65,108,187,219,207,107,187,67,94,107,187,147,236,106,187,203,122,106,
187,236,8,106,187,245,150,105,187,231,36,105,187,193,178,104,187,132,64,104,187,48,206,103,187,196,91,103,187,65,233,102,187,167,118,102,187,246,3,102,187,45,145,101,187,78,30,101,187,87,171,100,187,74,56,100,187,38,197,99,187,234,81,99,187,152,222,98,187,48,107,98,187,176,247,97,187,26,132,97,187,109,16,97,187,170,156,96,187,208,40,96,187,224,180,95,187,217,64,95,187,188,204,94,187,137,88,94,187,63,228,93,187,223,111,93,187,106,251,92,187,221,134,92,187,59,18,92,187,131,157,91,187,181,40,91,187,
209,179,90,187,215,62,90,187,199,201,89,187,161,84,89,187,102,223,88,187,21,106,88,187,175,244,87,187,51,127,87,187,161,9,87,187,250,147,86,187,61,30,86,187,107,168,85,187,132,50,85,187,136,188,84,187,118,70,84,187,79,208,83,187,19,90,83,187,194,227,82,187,92,109,82,187,225,246,81,187,81,128,81,187,172,9,81,187,242,146,80,187,36,28,80,187,65,165,79,187,73,46,79,187,61,183,78,187,28,64,78,187,230,200,77,187,156,81,77,187,62,218,76,187,203,98,76,187,68,235,75,187,168,115,75,187,249,251,74,187,53,132,
74,187,93,12,74,187,113,148,73,187,114,28,73,187,94,164,72,187,54,44,72,187,250,179,71,187,171,59,71,187,72,195,70,187,209,74,70,187,70,210,69,187,168,89,69,187,246,224,68,187,49,104,68,187,89,239,67,187,108,118,67,187,109,253,66,187,90,132,66,187,52,11,66,187,251,145,65,187,175,24,65,187,80,159,64,187,221,37,64,187,88,172,63,187,192,50,63,187,20,185,62,187,86,63,62,187,134,197,61,187,162,75,61,187,172,209,60,187,163,87,60,187,136,221,59,187,90,99,59,187,25,233,58,187,198,110,58,187,97,244,57,187,
234,121,57,187,96,255,56,187,196,132,56,187,22,10,56,187,85,143,55,187,131,20,55,187,159,153,54,187,168,30,54,187,160,163,53,187,134,40,53,187,90,173,52,187,29,50,52,187,205,182,51,187,109,59,51,187,250,191,50,187,118,68,50,187,224,200,49,187,57,77,49,187,129,209,48,187,183,85,48,187,221,217,47,187,240,93,47,187,243,225,46,187,229,101,46,187,197,233,45,187,148,109,45,187,83,241,44,187,1,117,44,187,157,248,43,187,41,124,43,187,164,255,42,187,15,131,42,187,105,6,42,187,178,137,41,187,235,12,41,187,
19,144,40,187,43,19,40,187,50,150,39,187,41,25,39,187,16,156,38,187,230,30,38,187,173,161,37,187,99,36,37,187,9,167,36,187,159,41,36,187,38,172,35,187,156,46,35,187,2,177,34,187,89,51,34,187,160,181,33,187,215,55,33,187,255,185,32,187,23,60,32,187,31,190,31,187,24,64,31,187,2,194,30,187,220,67,30,187,167,197,29,187,98,71,29,187,14,201,28,187,172,74,28,187,58,204,27,187,185,77,27,187,41,207,26,187,138,80,26,187,220,209,25,187,31,83,25,187,84,212,24,187,121,85,24,187,145,214,23,187,153,87,23,187,147,
216,22,187,126,89,22,187,91,218,21,187,42,91,21,187,234,219,20,187,156,92,20,187,63,221,19,187,212,93,19,187,92,222,18,187,213,94,18,187,64,223,17,187,157,95,17,187,236,223,16,187,45,96,16,187,97,224,15,187,134,96,15,187,158,224,14,187,168,96,14,187,165,224,13,187,148,96,13,187,118,224,12,187,74,96,12,187,17,224,11,187,202,95,11,187,118,223,10,187,21,95,10,187,167,222,9,187,43,94,9,187,163,221,8,187,13,93,8,187,107,220,7,187,188,91,7,187,255,218,6,187,54,90,6,187,97,217,5,187,126,88,5,187,143,215,
4,187,147,86,4,187,139,213,3,187,118,84,3,187,85,211,2,187,40,82,2,187,238,208,1,187,168,79,1,187,85,206,0,187,247,76,0,187,25,151,255,186,44,148,254,186,39,145,253,186,10,142,252,186,213,138,251,186,137,135,250,186,37,132,249,186,170,128,248,186,23,125,247,186,109,121,246,186,172,117,245,186,212,113,244,186,229,109,243,186,224,105,242,186,195,101,241,186,144,97,240,186,71,93,239,186,232,88,238,186,114,84,237,186,230,79,236,186,68,75,235,186,140,70,234,186,190,65,233,186,219,60,232,186,226,55,231,
186,211,50,230,186,176,45,229,186,119,40,228,186,40,35,227,186,197,29,226,186,77,24,225,186,192,18,224,186,31,13,223,186,105,7,222,186,158,1,221,186,191,251,219,186,204,245,218,186,196,239,217,186,169,233,216,186,121,227,215,186,54,221,214,186,223,214,213,186,117,208,212,186,247,201,211,186,101,195,210,186,193,188,209,186,9,182,208,186,62,175,207,186,96,168,206,186,112,161,205,186,109,154,204,186,87,147,203,186,46,140,202,186,243,132,201,186,166,125,200,186,71,118,199,186,214,110,198,186,83,103,197,
186,190,95,196,186,23,88,195,186,94,80,194,186,148,72,193,186,185,64,192,186,205,56,191,186,207,48,190,186,192,40,189,186,160,32,188,186,112,24,187,186,46,16,186,186,220,7,185,186,122,255,183,186,7,247,182,186,132,238,181,186,241,229,180,186,77,221,179,186,154,212,178,186,215,203,177,186,4,195,176,186,33,186,175,186,47,177,174,186,46,168,173,186,29,159,172,186,253,149,171,186,206,140,170,186,144,131,169,186,68,122,168,186,232,112,167,186,126,103,166,186,5,94,165,186,126,84,164,186,233,74,163,186,
70,65,162,186,148,55,161,186,213,45,160,186,7,36,159,186,44,26,158,186,67,16,157,186,77,6,156,186,73,252,154,186,57,242,153,186,26,232,152,186,239,221,151,186,183,211,150,186,114,201,149,186,33,191,148,186,194,180,147,186,87,170,146,186,224,159,145,186,93,149,144,186,205,138,143,186,49,128,142,186,138,117,141,186,214,106,140,186,23,96,139,186,76,85,138,186,118,74,137,186,148,63,136,186,167,52,135,186,175,41,134,186,171,30,133,186,157,19,132,186,132,8,131,186,96,253,129,186,50,242,128,186,241,205,
127,186,107,183,125,186,208,160,123,186,32,138,121,186,92,115,119,186,133,92,117,186,154,69,115,186,155,46,113,186,137,23,111,186,100,0,109,186,45,233,106,186,227,209,104,186,134,186,102,186,23,163,100,186,151,139,98,186,5,116,96,186,97,92,94,186,173,68,92,186,231,44,90,186,16,21,88,186,41,253,85,186,50,229,83,186,42,205,81,186,19,181,79,186,236,156,77,186,182,132,75,186,112,108,73,186,27,84,71,186,184,59,69,186,70,35,67,186,198,10,65,186,56,242,62,186,156,217,60,186,242,192,58,186,59,168,56,186,
119,143,54,186,166,118,52,186,200,93,50,186,221,68,48,186,230,43,46,186,227,18,44,186,213,249,41,186,186,224,39,186,149,199,37,186,100,174,35,186,40,149,33,186,226,123,31,186,145,98,29,186,53,73,27,186,208,47,25,186,97,22,23,186,232,252,20,186,102,227,18,186,219,201,16,186,70,176,14,186,170,150,12,186,4,125,10,186,86,99,8,186,161,73,6,186,227,47,4,186,30,22,2,186,163,248,255,185,252,196,251,185,71,145,247,185,133,93,243,185,182,41,239,185,218,245,234,185,242,193,230,185,255,141,226,185,0,90,222,185,
247,37,218,185,227,241,213,185,198,189,209,185,159,137,205,185,112,85,201,185,56,33,197,185,248,236,192,185,176,184,188,185,98,132,184,185,13,80,180,185,177,27,176,185,80,231,171,185,233,178,167,185,126,126,163,185,14,74,159,185,154,21,155,185,35,225,150,185,168,172,146,185,43,120,142,185,172,67,138,185,43,15,134,185,168,218,129,185,75,76,123,185,67,227,114,185,61,122,106,185,55,17,98,185,51,168,89,185,49,63,81,185,52,214,72,185,59,109,64,185,71,4,56,185,90,155,47,185,116,50,39,185,151,201,30,185,
194,96,22,185,247,247,13,185,56,143,5,185,7,77,250,184,184,123,233,184,133,170,216,184,110,217,199,184,118,8,183,184,158,55,166,184,232,102,149,184,86,150,132,184,213,139,103,184,77,235,69,184,23,75,36,184,56,171,2,184,101,23,194,183,42,178,125,183,27,110,238,182,186,39,116,53,100,186,21,55,79,24,142,55,141,82,209,55,243,69,10,56,40,226,43,56,228,125,77,56,34,25,111,56,239,89,136,56,11,39,153,56,227,243,169,56,117,192,186,56,191,140,203,56,192,88,220,56,117,36,237,56,221,239,253,56,123,93,7,57,224,
194,15,57,27,40,24,57,44,141,32,57,18,242,40,57,204,86,49,57,89,187,57,57,185,31,66,57,234,131,74,57,235,231,82,57,189,75,91,57,93,175,99,57,203,18,108,57,5,118,116,57,12,217,124,57,239,157,130,57,61,207,134,57,112,0,139,57,136,49,143,57,131,98,147,57,97,147,151,57,34,196,155,57,198,244,159,57,76,37,164,57,179,85,168,57,252,133,172,57,37,182,176,57,47,230,180,57,24,22,185,57,225,69,189,57,137,117,193,57,15,165,197,57,115,212,201,57,181,3,206,57,212,50,210,57,207,97,214,57,167,144,218,57,91,191,222,
57,234,237,226,57,84,28,231,57,153,74,235,57,183,120,239,57,176,166,243,57,129,212,247,57,43,2,252,57,215,23,0,58,132,46,2,58,29,69,4,58,161,91,6,58,16,114,8,58,107,136,10,58,176,158,12,58,224,180,14,58,251,202,16,58,255,224,18,58,237,246,20,58,198,12,23,58,135,34,25,58,50,56,27,58,198,77,29,58,67,99,31,58,168,120,33,58,246,141,35,58,44,163,37,58,73,184,39,58,79,205,41,58,60,226,43,58,16,247,45,58,204,11,48,58,110,32,50,58,247,52,52,58,102,73,54,58,187,93,56,58,246,113,58,58,24,134,60,58,30,154,62,
58,10,174,64,58,219,193,66,58,145,213,68,58,43,233,70,58,170,252,72,58,13,16,75,58,84,35,77,58,127,54,79,58,142,73,81,58,127,92,83,58,84,111,85,58,12,130,87,58,166,148,89,58,35,167,91,58,130,185,93,58,195,203,95,58,229,221,97,58,234,239,99,58,208,1,102,58,150,19,104,58,62,37,106,58,198,54,108,58,47,72,110,58,121,89,112,58,162,106,114,58,171,123,116,58,147,140,118,58,91,157,120,58,2,174,122,58,136,190,124,58,237,206,126,58,152,111,128,58,169,119,129,58,169,127,130,58,152,135,131,58,117,143,132,58,
66,151,133,58,252,158,134,58,166,166,135,58,62,174,136,58,196,181,137,58,56,189,138,58,154,196,139,58,234,203,140,58,40,211,141,58,84,218,142,58,109,225,143,58,116,232,144,58,105,239,145,58,74,246,146,58,25,253,147,58,213,3,149,58,126,10,150,58,19,17,151,58,150,23,152,58,5,30,153,58,97,36,154,58,169,42,155,58,221,48,156,58,254,54,157,58,10,61,158,58,3,67,159,58,232,72,160,58,184,78,161,58,116,84,162,58,28,90,163,58,175,95,164,58,45,101,165,58,151,106,166,58,236,111,167,58,44,117,168,58,86,122,169,
58,108,127,170,58,108,132,171,58,87,137,172,58,44,142,173,58,236,146,174,58,150,151,175,58,42,156,176,58,168,160,177,58,17,165,178,58,99,169,179,58,158,173,180,58,196,177,181,58,211,181,182,58,203,185,183,58,173,189,184,58,120,193,185,58,44,197,186,58,200,200,187,58,78,204,188,58,189,207,189,58,20,211,190,58,84,214,191,58,124,217,192,58,141,220,193,58,134,223,194,58,103,226,195,58,48,229,196,58,225,231,197,58,121,234,198,58,250,236,199,58,98,239,200,58,178,241,201,58,233,243,202,58,7,246,203,58,12,
248,204,58,249,249,205,58,204,251,206,58,135,253,207,58,40,255,208,58,175,0,210,58,30,2,211,58,114,3,212,58,173,4,213,58,207,5,214,58,214,6,215,58,195,7,216,58,151,8,217,58,80,9,218,58,239,9,219,58,115,10,220,58,221,10,221,58,44,11,222,58,97,11,223,58,122,11,224,58,121,11,225,58,93,11,226,58,37,11,227,58,211,10,228,58,101,10,229,58,219,9,230,58,54,9,231,58,117,8,232,58,153,7,233,58,161,6,234,58,140,5,235,58,92,4,236,58,15,3,237,58,166,1,238,58,33,0,239,58,127,254,239,58,192,252,240,58,229,250,241,
58,237,248,242,58,216,246,243,58,166,244,244,58,87,242,245,58,235,239,246,58,97,237,247,58,186,234,248,58,246,231,249,58,19,229,250,58,19,226,251,58,245,222,252,58,185,219,253,58,95,216,254,58,231,212,255,58,168,104,0,59,206,230,0,59,228,100,1,59,235,226,1,59,227,96,2,59,203,222,2,59,164,92,3,59,110,218,3,59,40,88,4,59,210,213,4,59,108,83,5,59,247,208,5,59,114,78,6,59,222,203,6,59,57,73,7,59,133,198,7,59,192,67,8,59,236,192,8,59,7,62,9,59,19,187,9,59,14,56,10,59,249,180,10,59,211,49,11,59,158,174,
11,59,88,43,12,59,1,168,12,59,155,36,13,59,35,161,13,59,155,29,14,59,3,154,14,59,89,22,15,59,159,146,15,59,212,14,16,59,249,138,16,59,12,7,17,59,15,131,17,59,0,255,17,59,225,122,18,59,176,246,18,59,111,114,19,59,28,238,19,59,184,105,20,59,66,229,20,59,188,96,21,59,36,220,21,59,122,87,22,59,191,210,22,59,242,77,23,59,20,201,23,59,36,68,24,59,35,191,24,59,16,58,25,59,235,180,25,59,180,47,26,59,107,170,26,59,16,37,27,59,164,159,27,59,37,26,28,59,148,148,28,59,241,14,29,59,60,137,29,59,116,3,30,59,155,
125,30,59,175,247,30,59,176,113,31,59,159,235,31,59,124,101,32,59,70,223,32,59,253,88,33,59,162,210,33,59,52,76,34,59,180,197,34,59,32,63,35,59,122,184,35,59,193,49,36,59,245,170,36,59,22,36,37,59,36,157,37,59,31,22,38,59,6,143,38,59,219,7,39,59,156,128,39,59,74,249,39,59,229,113,40,59,108,234,40,59,224,98,41,59,64,219,41,59,141,83,42,59,198,203,42,59,236,67,43,59,254,187,43,59,252,51,44,59,231,171,44,59,189,35,45,59,128,155,45,59,47,19,46,59,202,138,46,59,81,2,47,59,195,121,47,59,34,241,47,59,108,
104,48,59,163,223,48,59,197,86,49,59,210,205,49,59,204,68,50,59,177,187,50,59,129,50,51,59,61,169,51,59,228,31,52,59,119,150,52,59,245,12,53,59,95,131,53,59,179,249,53,59,243,111,54,59,30,230,54,59,52,92,55,59,54,210,55,59,34,72,56,59,249,189,56,59,187,51,57,59,104,169,57,59,0,31,58,59,131,148,58,59,240,9,59,59,72,127,59,59,138,244,59,59,184,105,60,59,207,222,60,59,209,83,61,59,190,200,61,59,149,61,62,59,86,178,62,59,2,39,63,59,152,155,63,59,24,16,64,59,130,132,64,59,215,248,64,59,21,109,65,59,62,
225,65,59,80,85,66,59,76,201,66,59,50,61,67,59,2,177,67,59,188,36,68,59,96,152,68,59,237,11,69,59,100,127,69,59,196,242,69,59,14,102,70,59,65,217,70,59,94,76,71,59,101,191,71,59,84,50,72,59,45,165,72,59,239,23,73,59,155,138,73,59,47,253,73,59,173,111,74,59,20,226,74,59,100,84,75,59,156,198,75,59,190,56,76,59,201,170,76,59,188,28,77,59,152,142,77,59,93,0,78,59,11,114,78,59,161,227,78,59,32,85,79,59,136,198,79,59,216,55,80,59,16,169,80,59,49,26,81,59,58,139,81,59,44,252,81,59,6,109,82,59,200,221,82,
59,114,78,83,59,5,191,83,59,127,47,84,59,226,159,84,59,45,16,85,59,95,128,85,59,122,240,85,59,124,96,86,59,103,208,86,59,57,64,87,59,242,175,87,59,148,31,88,59,29,143,88,59,142,254,88,59,230,109,89,59,38,221,89,59,77,76,90,59,92,187,90,59,82,42,91,59,47,153,91,59,244,7,92,59,160,118,92,59,51,229,92,59,174,83,93,59,15,194,93,59,88,48,94,59,135,158,94,59,158,12,95,59,155,122,95,59,127,232,95,59,74,86,96,59,252,195,96,59,149,49,97,59,20,159,97,59,123,12,98,59,199,121,98,59,250,230,98,59,20,84,99,59,
21,193,99,59,251,45,100,59,200,154,100,59,124,7,101,59,22,116,101,59,150,224,101,59,252,76,102,59,73,185,102,59,123,37,103,59,148,145,103,59,147,253,103,59,119,105,104,59,66,213,104,59,243,64,105,59,137,172,105,59,6,24,106,59,104,131,106,59,176,238,106,59,221,89,107,59,240,196,107,59,233,47,108,59,200,154,108,59,140,5,109,59,53,112,109,59,196,218,109,59,56,69,110,59,146,175,110,59,209,25,111,59,245,131,111,59,254,237,111,59,237,87,112,59,193,193,112,59,121,43,113,59,23,149,113,59,154,254,113,59,2,
104,114,59,79,209,114,59,129,58,115,59,151,163,115,59,146,12,116,59,115,117,116,59,55,222,116,59,225,70,117,59,111,175,117,59,226,23,118,59,57,128,118,59,117,232,118,59,149,80,119,59,154,184,119,59,131,32,120,59,80,136,120,59,2,240,120,59,151,87,121,59,18,191,121,59,112,38,122,59,178,141,122,59,217,244,122,59,227,91,123,59,210,194,123,59,164,41,124,59,91,144,124,59,245,246,124,59,115,93,125,59,213,195,125,59,27,42,126,59,68,144,126,59,81,246,126,59,66,92,127,59,22,194,127,59,231,19,128,59,181,70,
128,59,116,121,128,59,37,172,128,59,200,222,128,59,93,17,129,59,227,67,129,59,91,118,129,59,196,168,129,59,31,219,129,59,107,13,130,59,170,63,130,59,217,113,130,59,250,163,130,59,13,214,130,59,17,8,131,59,7,58,131,59,238,107,131,59,198,157,131,59,144,207,131,59,75,1,132,59,247,50,132,59,149,100,132,59,36,150,132,59,165,199,132,59,23,249,132,59,122,42,133,59,206,91,133,59,19,141,133,59,74,190,133,59,113,239,133,59,138,32,134,59,148,81,134,59,144,130,134,59,124,179,134,59,89,228,134,59,39,21,135,59,
231,69,135,59,151,118,135,59,57,167,135,59,203,215,135,59,78,8,136,59,195,56,136,59,40,105,136,59,126,153,136,59,197,201,136,59,253,249,136,59,37,42,137,59,63,90,137,59,73,138,137,59,68,186,137,59,48,234,137,59,13,26,138,59,218,73,138,59,152,121,138,59,71,169,138,59,230,216,138,59,118,8,139,59,247,55,139,59,104,103,139,59,202,150,139,59,28,198,139,59,95,245,139,59,146,36,140,59,182,83,140,59,203,130,140,59,208,177,140,59,197,224,140,59,171,15,141,59,129,62,141,59,72,109,141,59,255,155,141,59,167,
202,141,59,62,249,141,59,199,39,142,59,63,86,142,59,168,132,142,59,1,179,142,59,74,225,142,59,131,15,143,59,173,61,143,59,199,107,143,59,209,153,143,59,203,199,143,59,181,245,143,59,144,35,144,59,90,81,144,59,21,127,144,59,192,172,144,59,91,218,144,59,229,7,145,59,96,53,145,59,203,98,145,59,38,144,145,59,113,189,145,59,171,234,145,59,214,23,146,59,241,68,146,59,251,113,146,59,245,158,146,59,223,203,146,59,185,248,146,59,131,37,147,59,61,82,147,59,230,126,147,59,127,171,147,59,8,216,147,59,129,4,148,
59,233,48,148,59,65,93,148,59,137,137,148,59,192,181,148,59,231,225,148,59,254,13,149,59,4,58,149,59,250,101,149,59,223,145,149,59,180,189,149,59,120,233,149,59,44,21,150,59,208,64,150,59,98,108,150,59,229,151,150,59,87,195,150,59,184,238,150,59,9,26,151,59,73,69,151,59,120,112,151,59,151,155,151,59,165,198,151,59,163,241,151,59,143,28,152,59,107,71,152,59,55,114,152,59,241,156,152,59,155,199,152,59,52,242,152,59,189,28,153,59,52,71,153,59,155,113,153,59,241,155,153,59,53,198,153,59,106,240,153,59,
141,26,154,59,159,68,154,59,160,110,154,59,145,152,154,59,112,194,154,59,63,236,154,59,252,21,155,59,168,63,155,59,68,105,155,59,206,146,155,59,72,188,155,59,176,229,155,59,7,15,156,59,77,56,156,59,130,97,156,59,166,138,156,59,184,179,156,59,186,220,156,59,170,5,157,59,137,46,157,59,87,87,157,59,19,128,157,59,191,168,157,59,89,209,157,59,225,249,157,59,89,34,158,59,191,74,158,59,20,115,158,59,87,155,158,59,137,195,158,59,170,235,158,59,185,19,159,59,183,59,159,59,164,99,159,59,127,139,159,59,72,179,
159,59,0,219,159,59,167,2,160,59,60,42,160,59,191,81,160,59,49,121,160,59,146,160,160,59,225,199,160,59,30,239,160,59,74,22,161,59,100,61,161,59,108,100,161,59,99,139,161,59,72,178,161,59,28,217,161,59,221,255,161,59,141,38,162,59,44,77,162,59,184,115,162,59,51,154,162,59,156,192,162,59,243,230,162,59,57,13,163,59,108,51,163,59,142,89,163,59,158,127,163,59,156,165,163,59,136,203,163,59,99,241,163,59,43,23,164,59,226,60,164,59,134,98,164,59,25,136,164,59,153,173,164,59,8,211,164,59,101,248,164,59,
175,29,165,59,232,66,165,59,15,104,165,59,35,141,165,59,38,178,165,59,22,215,165,59,244,251,165,59,192,32,166,59,122,69,166,59,34,106,166,59,184,142,166,59,60,179,166,59,173,215,166,59,12,252,166,59,89,32,167,59,148,68,167,59,189,104,167,59,211,140,167,59,215,176,167,59,201,212,167,59,168,248,167,59,117,28,168,59,48,64,168,59,216,99,168,59,110,135,168,59,242,170,168,59,99,206,168,59,194,241,168,59,15,21,169,59,73,56,169,59,113,91,169,59,134,126,169,59,137,161,169,59,121,196,169,59,87,231,169,59,34,
10,170,59,219,44,170,59,129,79,170,59,21,114,170,59,150,148,170,59,5,183,170,59,96,217,170,59,170,251,170,59,225,29,171,59,5,64,171,59,22,98,171,59,21,132,171,59,1,166,171,59,219,199,171,59,162,233,171,59,86,11,172,59,247,44,172,59,134,78,172,59,2,112,172,59,107,145,172,59,193,178,172,59,5,212,172,59,54,245,172,59,84,22,173,59,95,55,173,59,87,88,173,59,61,121,173,59,15,154,173,59,207,186,173,59,124,219,173,59,22,252,173,59,157,28,174,59,17,61,174,59,114,93,174,59,192,125,174,59,252,157,174,59,36,
190,174,59,57,222,174,59,60,254,174,59,43,30,175,59,7,62,175,59,208,93,175,59,135,125,175,59,42,157,175,59,186,188,175,59,55,220,175,59,161,251,175,59,247,26,176,59,59,58,176,59,108,89,176,59,137,120,176,59,147,151,176,59,138,182,176,59,110,213,176,59,63,244,176,59,252,18,177,59,166,49,177,59,61,80,177,59,193,110,177,59,50,141,177,59,143,171,177,59,217,201,177,59,15,232,177,59,51,6,178,59,67,36,178,59,64,66,178,59,41,96,178,59,255,125,178,59,194,155,178,59,113,185,178,59,13,215,178,59,149,244,178,
59,11,18,179,59,108,47,179,59,187,76,179,59,246,105,179,59,29,135,179,59,49,164,179,59,49,193,179,59,30,222,179,59,248,250,179,59,190,23,180,59,112,52,180,59,15,81,180,59,155,109,180,59,19,138,180,59,119,166,180,59,200,194,180,59,5,223,180,59,46,251,180,59,68,23,181,59,71,51,181,59,53,79,181,59,17,107,181,59,216,134,181,59,140,162,181,59,44,190,181,59,184,217,181,59,49,245,181,59,150,16,182,59,232,43,182,59,37,71,182,59,79,98,182,59,101,125,182,59,104,152,182,59,86,179,182,59,49,206,182,59,248,232,
182,59,172,3,183,59,75,30,183,59,215,56,183,59,79,83,183,59,179,109,183,59,3,136,183,59,63,162,183,59,104,188,183,59,124,214,183,59,125,240,183,59,106,10,184,59,67,36,184,59,8,62,184,59,185,87,184,59,86,113,184,59,223,138,184,59,84,164,184,59,182,189,184,59,3,215,184,59,60,240,184,59,98,9,185,59,115,34,185,59,113,59,185,59,90,84,185,59,47,109,185,59,241,133,185,59,158,158,185,59,55,183,185,59,188,207,185,59,45,232,185,59,138,0,186,59,211,24,186,59,8,49,186,59,40,73,186,59,53,97,186,59,45,121,186,
59,18,145,186,59,226,168,186,59,158,192,186,59,70,216,186,59,217,239,186,59,89,7,187,59,196,30,187,59,27,54,187,59,94,77,187,59,141,100,187,59,167,123,187,59,173,146,187,59,159,169,187,59,125,192,187,59,70,215,187,59,251,237,187,59,156,4,188,59,41,27,188,59,161,49,188,59,5,72,188,59,85,94,188,59,144,116,188,59,183,138,188,59,202,160,188,59,200,182,188,59,178,204,188,59,136,226,188,59,73,248,188,59,246,13,189,59,143,35,189,59,19,57,189,59,131,78,189,59,222,99,189,59,37,121,189,59,87,142,189,59,117,
163,189,59,127,184,189,59,116,205,189,59,85,226,189,59,33,247,189,59,217,11,190,59,124,32,190,59,11,53,190,59,133,73,190,59,235,93,190,59,61,114,190,59,121,134,190,59,162,154,190,59,181,174,190,59,181,194,190,59,159,214,190,59,117,234,190,59,55,254,190,59,228,17,191,59,124,37,191,59,0,57,191,59,111,76,191,59,202,95,191,59,16,115,191,59,65,134,191,59,94,153,191,59,102,172,191,59,90,191,191,59,57,210,191,59,3,229,191,59,185,247,191,59,90,10,192,59,230,28,192,59,94,47,192,59,193,65,192,59,15,84,192,
59,72,102,192,59,109,120,192,59,125,138,192,59,121,156,192,59,96,174,192,59,50,192,192,59,239,209,192,59,151,227,192,59,43,245,192,59,170,6,193,59,20,24,193,59,106,41,193,59,171,58,193,59,215,75,193,59,238,92,193,59,240,109,193,59,222,126,193,59,183,143,193,59,123,160,193,59,42,177,193,59,196,193,193,59,74,210,193,59,187,226,193,59,23,243,193,59,94,3,194,59,144,19,194,59,173,35,194,59,182,51,194,59,169,67,194,59,136,83,194,59,82,99,194,59,7,115,194,59,167,130,194,59,50,146,194,59,169,161,194,59,10,
177,194,59,86,192,194,59,142,207,194,59,177,222,194,59,191,237,194,59,183,252,194,59,155,11,195,59,106,26,195,59,36,41,195,59,201,55,195,59,89,70,195,59,212,84,195,59,59,99,195,59,140,113,195,59,200,127,195,59,239,141,195,59,2,156,195,59,255,169,195,59,231,183,195,59,186,197,195,59,121,211,195,59,34,225,195,59,182,238,195,59,53,252,195,59,160,9,196,59,245,22,196,59,53,36,196,59,96,49,196,59,118,62,196,59,119,75,196,59,99,88,196,59,58,101,196,59,252,113,196,59,169,126,196,59,64,139,196,59,195,151,
196,59,49,164,196,59,137,176,196,59,205,188,196,59,251,200,196,59,20,213,196,59,24,225,196,59,7,237,196,59,225,248,196,59,166,4,197,59,86,16,197,59,240,27,197,59,118,39,197,59,230,50,197,59,65,62,197,59,135,73,197,59,184,84,197,59,212,95,197,59,219,106,197,59,204,117,197,59,169,128,197,59,112,139,197,59,34,150,197,59,191,160,197,59,71,171,197,59,185,181,197,59,23,192,197,59,95,202,197,59,146,212,197,59,176,222,197,59,185,232,197,59,172,242,197,59,138,252,197,59,83,6,198,59,7,16,198,59,166,25,198,
59,48,35,198,59,164,44,198,59,3,54,198,59,77,63,198,59,130,72,198,59,161,81,198,59,171,90,198,59,160,99,198,59,128,108,198,59,75,117,198,59,0,126,198,59,160,134,198,59,43,143,198,59,161,151,198,59,1,160,198,59,76,168,198,59,130,176,198,59,163,184,198,59,174,192,198,59,165,200,198,59,133,208,198,59,81,216,198,59,8,224,198,59,169,231,198,59,53,239,198,59,171,246,198,59,12,254,198,59,89,5,199,59,143,12,199,59,177,19,199,59,189,26,199,59,180,33,199,59,150,40,199,59,98,47,199,59,25,54,199,59,187,60,199,
59,72,67,199,59,191,73,199,59,33,80,199,59,110,86,199,59,165,92,199,59,199,98,199,59,212,104,199,59,203,110,199,59,174,116,199,59,123,122,199,59,50,128,199,59,212,133,199,59,97,139,199,59,217,144,199,59,59,150,199,59,137,155,199,59,192,160,199,59,227,165,199,59,240,170,199,59],"i8",4,y.a+409600);
Q([232,175,199,59,202,180,199,59,151,185,199,59,79,190,199,59,242,194,199,59,127,199,199,59,247,203,199,59,90,208,199,59,167,212,199,59,223,216,199,59,1,221,199,59,15,225,199,59,7,229,199,59,233,232,199,59,183,236,199,59,111,240,199,59,17,244,199,59,159,247,199,59,23,251,199,59,121,254,199,59,199,1,200,59,255,4,200,59,34,8,200,59,47,11,200,59,39,14,200,59,10,17,200,59,215,19,200,59,143,22,200,59,50,25,200,59,191,27,200,59,55,30,200,59,154,32,200,59,232,34,200,59,32,37,200,59,66,39,200,59,80,41,200,
59,72,43,200,59,43,45,200,59,248,46,200,59,176,48,200,59,83,50,200,59,224,51,200,59,89,53,200,59,187,54,200,59,9,56,200,59,65,57,200,59,100,58,200,59,113,59,200,59,105,60,200,59,76,61,200,59,26,62,200,59,210,62,200,59,117,63,200,59,2,64,200,59,123,64,200,59,221,64,200,59,43,65,200,59,99,65,200,59,134,65,200,59,148,65,200,59,140,65,200,59,111,65,200,59,61,65,200,59,245,64,200,59,152,64,200,59,38,64,200,59,158,63,200,59,2,63,200,59,79,62,200,59,136,61,200,59,171,60,200,59,185,59,200,59,178,58,200,59,
149,57,200,59,99,56,200,59,28,55,200,59,191,53,200,59,77,52,200,59,198,50,200,59,41,49,200,59,120,47,200,59,177,45,200,59,212,43,200,59,227,41,200,59,220,39,200,59,192,37,200,59,142,35,200,59,72,33,200,59,236,30,200,59,122,28,200,59,244,25,200,59,88,23,200,59,167,20,200,59,224,17,200,59,5,15,200,59,20,12,200,59,14,9,200,59,243,5,200,59,194,2,200,59,124,255,199,59,33,252,199,59,176,248,199,59,43,245,199,59,144,241,199,59,224,237,199,59,27,234,199,59,64,230,199,59,80,226,199,59,75,222,199,59,49,218,
199,59,1,214,199,59,189,209,199,59,99,205,199,59,244,200,199,59,111,196,199,59,214,191,199,59,39,187,199,59,99,182,199,59,138,177,199,59,156,172,199,59,152,167,199,59,127,162,199,59,81,157,199,59,14,152,199,59,182,146,199,59,72,141,199,59,198,135,199,59,46,130,199,59,129,124,199,59,191,118,199,59,232,112,199,59,251,106,199,59,249,100,199,59,227,94,199,59,183,88,199,59,118,82,199,59,31,76,199,59,180,69,199,59,52,63,199,59,158,56,199,59,243,49,199,59,51,43,199,59,94,36,199,59,116,29,199,59,117,22,199,
59,97,15,199,59,55,8,199,59,249,0,199,59,165,249,198,59,61,242,198,59,191,234,198,59,44,227,198,59,132,219,198,59,199,211,198,59,245,203,198,59,14,196,198,59,18,188,198,59,0,180,198,59,218,171,198,59,159,163,198,59,78,155,198,59,233,146,198,59,110,138,198,59,223,129,198,59,58,121,198,59,129,112,198,59,178,103,198,59,206,94,198,59,214,85,198,59,200,76,198,59,166,67,198,59,110,58,198,59,33,49,198,59,192,39,198,59,73,30,198,59,190,20,198,59,29,11,198,59,104,1,198,59,157,247,197,59,190,237,197,59,202,
227,197,59,192,217,197,59,162,207,197,59,111,197,197,59,39,187,197,59,202,176,197,59,88,166,197,59,209,155,197,59,54,145,197,59,133,134,197,59,192,123,197,59,229,112,197,59,246,101,197,59,242,90,197,59,217,79,197,59,171,68,197,59,104,57,197,59,16,46,197,59,164,34,197,59,35,23,197,59,140,11,197,59,225,255,196,59,34,244,196,59,77,232,196,59,99,220,196,59,101,208,196,59,82,196,196,59,42,184,196,59,237,171,196,59,156,159,196,59,54,147,196,59,187,134,196,59,43,122,196,59,134,109,196,59,205,96,196,59,255,
83,196,59,28,71,196,59,37,58,196,59,24,45,196,59,248,31,196,59,194,18,196,59,119,5,196,59,24,248,195,59,164,234,195,59,28,221,195,59,127,207,195,59,205,193,195,59,6,180,195,59,43,166,195,59,59,152,195,59,55,138,195,59,30,124,195,59,240,109,195,59,173,95,195,59,86,81,195,59,235,66,195,59,106,52,195,59,214,37,195,59,44,23,195,59,110,8,195,59,155,249,194,59,180,234,194,59,184,219,194,59,168,204,194,59,131,189,194,59,74,174,194,59,252,158,194,59,153,143,194,59,34,128,194,59,151,112,194,59,246,96,194,
59,66,81,194,59,121,65,194,59,155,49,194,59,169,33,194,59,163,17,194,59,136,1,194,59,88,241,193,59,21,225,193,59,188,208,193,59,79,192,193,59,206,175,193,59,57,159,193,59,143,142,193,59,208,125,193,59,254,108,193,59,22,92,193,59,27,75,193,59,11,58,193,59,231,40,193,59,174,23,193,59,97,6,193,59,0,245,192,59,138,227,192,59,0,210,192,59,98,192,192,59,175,174,192,59,232,156,192,59,13,139,192,59,30,121,192,59,26,103,192,59,2,85,192,59,214,66,192,59,149,48,192,59,65,30,192,59,216,11,192,59,91,249,191,59,
201,230,191,59,36,212,191,59,106,193,191,59,156,174,191,59,186,155,191,59,195,136,191,59,185,117,191,59,154,98,191,59,104,79,191,59,33,60,191,59,198,40,191,59,87,21,191,59,211,1,191,59,60,238,190,59,145,218,190,59,209,198,190,59,254,178,190,59,22,159,190,59,26,139,190,59,11,119,190,59,231,98,190,59,175,78,190,59,99,58,190,59,4,38,190,59,144,17,190,59,8,253,189,59,108,232,189,59,189,211,189,59,249,190,189,59,34,170,189,59,54,149,189,59,55,128,189,59,35,107,189,59,252,85,189,59,193,64,189,59,114,43,
189,59,15,22,189,59,152,0,189,59,13,235,188,59,111,213,188,59,188,191,188,59,246,169,188,59,28,148,188,59,46,126,188,59,45,104,188,59,23,82,188,59,238,59,188,59,177,37,188,59,97,15,188,59,252,248,187,59,132,226,187,59,248,203,187,59,88,181,187,59,165,158,187,59,222,135,187,59,3,113,187,59,21,90,187,59,19,67,187,59,253,43,187,59,212,20,187,59,151,253,186,59,70,230,186,59,226,206,186,59,106,183,186,59,222,159,186,59,63,136,186,59,141,112,186,59,199,88,186,59,237,64,186,59,0,41,186,59,255,16,186,59,
235,248,185,59,195,224,185,59,136,200,185,59,57,176,185,59,215,151,185,59,97,127,185,59,216,102,185,59,59,78,185,59,139,53,185,59,200,28,185,59,241,3,185,59,7,235,184,59,9,210,184,59,248,184,184,59,212,159,184,59,156,134,184,59,81,109,184,59,243,83,184,59,129,58,184,59,252,32,184,59,100,7,184,59,185,237,183,59,250,211,183,59,40,186,183,59,66,160,183,59,74,134,183,59,62,108,183,59,31,82,183,59,237,55,183,59,168,29,183,59,79,3,183,59,227,232,182,59,101,206,182,59,211,179,182,59,45,153,182,59,117,126,
182,59,170,99,182,59,204,72,182,59,218,45,182,59,213,18,182,59,190,247,181,59,147,220,181,59,86,193,181,59,5,166,181,59,161,138,181,59,42,111,181,59,161,83,181,59,4,56,181,59,84,28,181,59,146,0,181,59,188,228,180,59,212,200,180,59,217,172,180,59,203,144,180,59,169,116,180,59,118,88,180,59,47,60,180,59,213,31,180,59,105,3,180,59,233,230,179,59,87,202,179,59,178,173,179,59,251,144,179,59,48,116,179,59,83,87,179,59,99,58,179,59,96,29,179,59,75,0,179,59,35,227,178,59,232,197,178,59,155,168,178,59,59,
139,178,59,200,109,178,59,66,80,178,59,170,50,178,59,0,21,178,59,66,247,177,59,115,217,177,59,144,187,177,59,155,157,177,59,148,127,177,59,122,97,177,59,77,67,177,59,14,37,177,59,189,6,177,59,89,232,176,59,226,201,176,59,89,171,176,59,190,140,176,59,16,110,176,59,80,79,176,59,125,48,176,59,152,17,176,59,161,242,175,59,151,211,175,59,123,180,175,59,77,149,175,59,12,118,175,59,185,86,175,59,84,55,175,59,220,23,175,59,83,248,174,59,183,216,174,59,8,185,174,59,72,153,174,59,117,121,174,59,144,89,174,
59,153,57,174,59,144,25,174,59,117,249,173,59,71,217,173,59,8,185,173,59,182,152,173,59,82,120,173,59,220,87,173,59,84,55,173,59,186,22,173,59,14,246,172,59,80,213,172,59,128,180,172,59,158,147,172,59,170,114,172,59,164,81,172,59,140,48,172,59,99,15,172,59,39,238,171,59,217,204,171,59,122,171,171,59,8,138,171,59,133,104,171,59,240,70,171,59,73,37,171,59,144,3,171,59,198,225,170,59,234,191,170,59,252,157,170,59,252,123,170,59,234,89,170,59,199,55,170,59,146,21,170,59,75,243,169,59,243,208,169,59,137,
174,169,59,13,140,169,59,128,105,169,59,225,70,169,59,49,36,169,59,110,1,169,59,155,222,168,59,182,187,168,59,191,152,168,59,183,117,168,59,157,82,168,59,113,47,168,59,53,12,168,59,231,232,167,59,135,197,167,59,22,162,167,59,147,126,167,59,255,90,167,59,90,55,167,59,163,19,167,59,219,239,166,59,2,204,166,59,23,168,166,59,27,132,166,59,14,96,166,59,239,59,166,59,192,23,166,59,127,243,165,59,44,207,165,59,201,170,165,59,84,134,165,59,206,97,165,59,55,61,165,59,143,24,165,59,214,243,164,59,11,207,164,
59,48,170,164,59,67,133,164,59,70,96,164,59,55,59,164,59,23,22,164,59,230,240,163,59,165,203,163,59,82,166,163,59,238,128,163,59,121,91,163,59,244,53,163,59,93,16,163,59,182,234,162,59,253,196,162,59,52,159,162,59,90,121,162,59,111,83,162,59,116,45,162,59,103,7,162,59,74,225,161,59,28,187,161,59,221,148,161,59,141,110,161,59,45,72,161,59,188,33,161,59,58,251,160,59,168,212,160,59,5,174,160,59,81,135,160,59,141,96,160,59,184,57,160,59,211,18,160,59,221,235,159,59,214,196,159,59,191,157,159,59,151,
118,159,59,95,79,159,59,22,40,159,59,189,0,159,59,84,217,158,59,218,177,158,59,79,138,158,59,181,98,158,59,10,59,158,59,78,19,158,59,130,235,157,59,166,195,157,59,185,155,157,59,189,115,157,59,175,75,157,59,146,35,157,59,101,251,156,59,39,211,156,59,217,170,156,59,122,130,156,59,12,90,156,59,142,49,156,59,255,8,156,59,96,224,155,59,177,183,155,59,242,142,155,59,35,102,155,59,68,61,155,59,85,20,155,59,86,235,154,59,71,194,154,59,39,153,154,59,248,111,154,59,185,70,154,59,106,29,154,59,11,244,153,59,
157,202,153,59,30,161,153,59,144,119,153,59,241,77,153,59,67,36,153,59,133,250,152,59,184,208,152,59,218,166,152,59,237,124,152,59,240,82,152,59,227,40,152,59,199,254,151,59,155,212,151,59,95,170,151,59,20,128,151,59,185,85,151,59,79,43,151,59,213,0,151,59,75,214,150,59,178,171,150,59,9,129,150,59,81,86,150,59,137,43,150,59,178,0,150,59,203,213,149,59,213,170,149,59,208,127,149,59,187,84,149,59,151,41,149,59,99,254,148,59,32,211,148,59,206,167,148,59,109,124,148,59,252,80,148,59,124,37,148,59,236,
249,147,59,78,206,147,59,160,162,147,59,227,118,147,59,23,75,147,59,60,31,147,59,81,243,146,59,88,199,146,59,79,155,146,59,55,111,146,59,17,67,146,59,219,22,146,59,150,234,145,59,66,190,145,59,223,145,145,59,110,101,145,59,237,56,145,59,93,12,145,59,191,223,144,59,18,179,144,59,85,134,144,59,138,89,144,59,176,44,144,59,200,255,143,59,208,210,143,59,202,165,143,59,181,120,143,59,145,75,143,59,95,30,143,59,29,241,142,59,206,195,142,59,111,150,142,59,2,105,142,59,134,59,142,59,252,13,142,59,99,224,141,
59,188,178,141,59,6,133,141,59,65,87,141,59,110,41,141,59,141,251,140,59,157,205,140,59,159,159,140,59,146,113,140,59,119,67,140,59,77,21,140,59,21,231,139,59,207,184,139,59,123,138,139,59,24,92,139,59,167,45,139,59,40,255,138,59,154,208,138,59,254,161,138,59,84,115,138,59,156,68,138,59,214,21,138,59,1,231,137,59,31,184,137,59,46,137,137,59,47,90,137,59,35,43,137,59,8,252,136,59,223,204,136,59,168,157,136,59,99,110,136,59,17,63,136,59,176,15,136,59,65,224,135,59,197,176,135,59,59,129,135,59,162,81,
135,59,252,33,135,59,73,242,134,59,135,194,134,59,184,146,134,59,218,98,134,59,240,50,134,59,247,2,134,59,241,210,133,59,221,162,133,59,187,114,133,59,140,66,133,59,79,18,133,59,5,226,132,59,173,177,132,59,71,129,132,59,212,80,132,59,84,32,132,59,198,239,131,59,42,191,131,59,130,142,131,59,203,93,131,59,8,45,131,59,54,252,130,59,88,203,130,59,108,154,130,59,115,105,130,59,109,56,130,59,89,7,130,59,56,214,129,59,10,165,129,59,207,115,129,59,134,66,129,59,49,17,129,59,206,223,128,59,94,174,128,59,225,
124,128,59,87,75,128,59,192,25,128,59,55,208,127,59,213,108,127,59,88,9,127,59,194,165,126,59,18,66,126,59,71,222,125,59,99,122,125,59,102,22,125,59,78,178,124,59,29,78,124,59,210,233,123,59,110,133,123,59,240,32,123,59,88,188,122,59,167,87,122,59,221,242,121,59,249,141,121,59,252,40,121,59,229,195,120,59,182,94,120,59,109,249,119,59,11,148,119,59,143,46,119,59,251,200,118,59,78,99,118,59,135,253,117,59,168,151,117,59,176,49,117,59,159,203,116,59,117,101,116,59,50,255,115,59,215,152,115,59,98,50,
115,59,214,203,114,59,48,101,114,59,114,254,113,59,156,151,113,59,173,48,113,59,165,201,112,59,133,98,112,59,77,251,111,59,253,147,111,59,148,44,111,59,19,197,110,59,122,93,110,59,201,245,109,59,0,142,109,59,30,38,109,59,37,190,108,59,20,86,108,59,235,237,107,59,170,133,107,59,81,29,107,59,224,180,106,59,88,76,106,59,184,227,105,59,0,123,105,59,49,18,105,59,74,169,104,59,76,64,104,59,54,215,103,59,9,110,103,59,197,4,103,59,105,155,102,59,246,49,102,59,107,200,101,59,202,94,101,59,17,245,100,59,65,
139,100,59,91,33,100,59,93,183,99,59,72,77,99,59,28,227,98,59,218,120,98,59,128,14,98,59,16,164,97,59,137,57,97,59,236,206,96,59,56,100,96,59,109,249,95,59,139,142,95,59,147,35,95,59,133,184,94,59,96,77,94,59,37,226,93,59,212,118,93,59,108,11,93,59,238,159,92,59,90,52,92,59,175,200,91,59,239,92,91,59,24,241,90,59,44,133,90,59,42,25,90,59,17,173,89,59,227,64,89,59,159,212,88,59,69,104,88,59,214,251,87,59,80,143,87,59,182,34,87,59,5,182,86,59,63,73,86,59,100,220,85,59,115,111,85,59,108,2,85,59,81,149,
84,59,32,40,84,59,217,186,83,59,126,77,83,59,13,224,82,59,135,114,82,59,236,4,82,59,61,151,81,59,120,41,81,59,158,187,80,59,175,77,80,59,171,223,79,59,147,113,79,59,102,3,79,59,36,149,78,59,206,38,78,59,98,184,77,59,227,73,77,59,79,219,76,59,166,108,76,59,233,253,75,59,23,143,75,59,49,32,75,59,55,177,74,59,41,66,74,59,6,211,73,59,208,99,73,59,133,244,72,59,38,133,72,59,179,21,72,59,45,166,71,59,146,54,71,59,227,198,70,59,33,87,70,59,75,231,69,59,97,119,69,59,99,7,69,59,82,151,68,59,46,39,68,59,245,
182,67,59,170,70,67,59,75,214,66,59,216,101,66,59,82,245,65,59,185,132,65,59,13,20,65,59,77,163,64,59,122,50,64,59,148,193,63,59,155,80,63,59,144,223,62,59,113,110,62,59,63,253,61,59,250,139,61,59,163,26,61,59,57,169,60,59,188,55,60,59,44,198,59,59,138,84,59,59,213,226,58,59,14,113,58,59,52,255,57,59,72,141,57,59,74,27,57,59,57,169,56,59,22,55,56,59,224,196,55,59,153,82,55,59,63,224,54,59,211,109,54,59,85,251,53,59,197,136,53,59,36,22,53,59,112,163,52,59,170,48,52,59,211,189,51,59,234,74,51,59,239,
215,50,59,227,100,50,59,197,241,49,59,149,126,49,59,84,11,49,59,2,152,48,59,158,36,48,59,40,177,47,59,162,61,47,59,10,202,46,59,97,86,46,59,167,226,45,59,219,110,45,59,255,250,44,59,17,135,44,59,19,19,44,59,4,159,43,59,227,42,43,59,178,182,42,59,113,66,42,59,30,206,41,59,187,89,41,59,71,229,40,59,195,112,40,59,46,252,39,59,136,135,39,59,211,18,39,59,12,158,38,59,54,41,38,59,79,180,37,59,88,63,37,59,81,202,36,59,58,85,36,59,18,224,35,59,219,106,35,59,147,245,34,59,60,128,34,59,213,10,34,59,94,149,
33,59,215,31,33,59,64,170,32,59,154,52,32,59,228,190,31,59,30,73,31,59,73,211,30,59,101,93,30,59,113,231,29,59,110,113,29,59,91,251,28,59,57,133,28,59,8,15,28,59,199,152,27,59,120,34,27,59,25,172,26,59,172,53,26,59,47,191,25,59,163,72,25,59,9,210,24,59,96,91,24,59,167,228,23,59,225,109,23,59,11,247,22,59,39,128,22,59,52,9,22,59,51,146,21,59,35,27,21,59,5,164,20,59,216,44,20,59,158,181,19,59,84,62,19,59,253,198,18,59,151,79,18,59,35,216,17,59,162,96,17,59,18,233,16,59,116,113,16,59,200,249,15,59,14,
130,15,59,71,10,15,59,114,146,14,59,143,26,14,59,158,162,13,59,160,42,13,59,148,178,12,59,122,58,12,59,83,194,11,59,31,74,11,59,221,209,10,59,142,89,10,59,50,225,9,59,200,104,9,59,81,240,8,59,206,119,8,59,61,255,7,59,159,134,7,59,244,13,7,59,60,149,6,59,119,28,6,59,166,163,5,59,199,42,5,59,220,177,4,59,229,56,4,59,224,191,3,59,207,70,3,59,178,205,2,59,136,84,2,59,82,219,1,59,15,98,1,59,192,232,0,59,101,111,0,59,251,235,255,58,20,249,254,58,21,6,254,58,253,18,253,58,206,31,252,58,134,44,251,58,39,
57,250,58,176,69,249,58,34,82,248,58,124,94,247,58,191,106,246,58,234,118,245,58,254,130,244,58,251,142,243,58,225,154,242,58,176,166,241,58,105,178,240,58,10,190,239,58,150,201,238,58,10,213,237,58,105,224,236,58,177,235,235,58,227,246,234,58,254,1,234,58,4,13,233,58,244,23,232,58,206,34,231,58,147,45,230,58,66,56,229,58,220,66,228,58,96,77,227,58,207,87,226,58,41,98,225,58,110,108,224,58,158,118,223,58,185,128,222,58,191,138,221,58,177,148,220,58,142,158,219,58,87,168,218,58,12,178,217,58,172,187,
216,58,56,197,215,58,177,206,214,58,21,216,213,58,102,225,212,58,163,234,211,58,204,243,210,58,226,252,209,58,228,5,209,58,211,14,208,58,175,23,207,58,120,32,206,58,46,41,205,58,209,49,204,58,98,58,203,58,223,66,202,58,74,75,201,58,163,83,200,58,234,91,199,58,30,100,198,58,64,108,197,58,80,116,196,58,78,124,195,58,58,132,194,58,20,140,193,58,221,147,192,58,149,155,191,58,59,163,190,58,208,170,189,58,83,178,188,58,197,185,187,58,39,193,186,58,119,200,185,58,183,207,184,58,230,214,183,58,5,222,182,
58,19,229,181,58,17,236,180,58,254,242,179,58,219,249,178,58,168,0,178,58,102,7,177,58,19,14,176,58,177,20,175,58,63,27,174,58,190,33,173,58,45,40,172,58,140,46,171,58,221,52,170,58,31,59,169,58,81,65,168,58,117,71,167,58,137,77,166,58,144,83,165,58,135,89,164,58,112,95,163,58,75,101,162,58,23,107,161,58,213,112,160,58,133,118,159,58,40,124,158,58,188,129,157,58,67,135,156,58,188,140,155,58,39,146,154,58,133,151,153,58,214,156,152,58,25,162,151,58,79,167,150,58,121,172,149,58,149,177,148,58,165,182,
147,58,167,187,146,58,158,192,145,58,136,197,144,58,101,202,143,58,54,207,142,58,251,211,141,58,180,216,140,58,97,221,139,58,2,226,138,58,151,230,137,58,33,235,136,58,159,239,135,58,18,244,134,58,121,248,133,58,213,252,132,58,38,1,132,58,108,5,131,58,167,9,130,58,215,13,129,58,253,17,128,58,48,44,126,58,81,52,124,58,93,60,122,58,84,68,120,58,55,76,118,58,6,84,116,58,194,91,114,58,105,99,112,58,253,106,110,58,126,114,108,58,235,121,106,58,70,129,104,58,142,136,102,58,195,143,100,58,230,150,98,58,248,
157,96,58,247,164,94,58,229,171,92,58,193,178,90,58,140,185,88,58,71,192,86,58,240,198,84,58,137,205,82,58,17,212,80,58,138,218,78,58,242,224,76,58,75,231,74,58,148,237,72,58,206,243,70,58,249,249,68,58,21,0,67,58,34,6,65,58,33,12,63,58,18,18,61,58,244,23,59,58,201,29,57,58,144,35,55,58,74,41,53,58,247,46,51,58,150,52,49,58,41,58,47,58,176,63,45,58,42,69,43,58,152,74,41,58,249,79,39,58,80,85,37,58,154,90,35,58,218,95,33,58,14,101,31,58,56,106,29,58,87,111,27,58,107,116,25,58,117,121,23,58,117,126,
21,58,108,131,19,58,89,136,17,58,60,141,15,58,22,146,13,58,232,150,11,58,176,155,9,58,112,160,7,58,40,165,5,58,215,169,3,58,127,174,1,58,62,102,255,57,111,111,251,57,145,120,247,57,166,129,243,57,172,138,239,57,165,147,235,57,146,156,231,57,114,165,227,57,70,174,223,57,15,183,219,57,204,191,215,57,127,200,211,57,39,209,207,57,197,217,203,57,90,226,199,57,230,234,195,57,105,243,191,57,228,251,187,57,88,4,184,57,196,12,180,57,41,21,176,57,135,29,172,57,224,37,168,57,50,46,164,57,128,54,160,57,201,62,
156,57,13,71,152,57,77,79,148,57,138,87,144,57,196,95,140,57,251,103,136,57,47,112,132,57,98,120,128,57,39,1,121,57,136,17,113,57,231,33,105,57,70,50,97,57,166,66,89,57,7,83,81,57,106,99,73,57,209,115,65,57,59,132,57,57,170,148,49,57,30,165,41,57,153,181,33,57,27,198,25,57,166,214,17,57,57,231,9,57,214,247,1,57,251,16,244,56,97,50,228,56,224,83,212,56,121,117,196,56,46,151,180,56,1,185,164,56,244,218,148,56,7,253,132,56,123,62,106,56,48,131,74,56,50,200,42,56,131,13,11,56,79,166,214,55,68,50,151,
55,220,125,47,55,139,98,66,54,40,150,156,182,59,45,77,183,226,6,166,183,82,118,229,183,115,114,18,184,75,41,50,184,175,223,81,184,154,149,113,184,133,165,136,184,254,127,152,184,53,90,168,184,42,52,184,184,218,13,200,184,68,231,215,184,102,192,231,184,62,153,247,184,230,184,3,185,6,165,11,185,255,144,19,185,208,124,27,185,120,104,35,185,246,83,43,185,73,63,51,185,113,42,59,185,108,21,67,185,58,0,75,185,219,234,82,185,76,213,90,185,142,191,98,185,159,169,106,185,127,147,114,185,44,125,122,185,83,51,
129,185,247,39,133,185,128,28,137,185,238,16,141,185,65,5,145,185,120,249,148,185,147,237,152,185,146,225,156,185,116,213,160,185,56,201,164,185,223,188,168,185,104,176,172,185,210,163,176,185,29,151,180,185,73,138,184,185,85,125,188,185,64,112,192,185,11,99,196,185,181,85,200,185,62,72,204,185,164,58,208,185,232,44,212,185,10,31,216,185,8,17,220,185,227,2,224,185,153,244,227,185,43,230,231,185,153,215,235,185,225,200,239,185,3,186,243,185,0,171,247,185,213,155,251,185,132,140,255,185,134,190,1,186,
182,182,3,186,210,174,5,186,217,166,7,186,204,158,9,186,170,150,11,186,116,142,13,186,40,134,15,186,199,125,17,186,80,117,19,186,195,108,21,186,33,100,23,186,104,91,25,186,153,82,27,186,180,73,29,186,183,64,31,186,164,55,33,186,121,46,35,186,55,37,37,186,222,27,39,186,108,18,41,186,226,8,43,186,65,255,44,186,134,245,46,186,179,235,48,186,199,225,50,186,195,215,52,186,164,205,54,186,109,195,56,186,27,185,58,186,176,174,60,186,42,164,62,186,138,153,64,186,208,142,66,186,251,131,68,186,11,121,70,186,
255,109,72,186,217,98,74,186,151,87,76,186,57,76,78,186,191,64,80,186,41,53,82,186,118,41,84,186,167,29,86,186,187,17,88,186,178,5,90,186,140,249,91,186,72,237,93,186,231,224,95,186,103,212,97,186,202,199,99,186,15,187,101,186,53,174,103,186,60,161,105,186,37,148,107,186,238,134,109,186,152,121,111,186,35,108,113,186,142,94,115,186,217,80,117,186,4,67,119,186,14,53,121,186,248,38,123,186,194,24,125,186,106,10,127,186,249,125,128,186,172,118,129,186,78,111,130,186,223,103,131,186,95,96,132,186,207,
88,133,186,45,81,134,186,121,73,135,186,181,65,136,186,223,57,137,186,247,49,138,186,254,41,139,186,242,33,140,186,213,25,141,186,166,17,142,186,101,9,143,186,17,1,144,186,172,248,144,186,51,240,145,186,169,231,146,186,11,223,147,186,91,214,148,186,153,205,149,186,195,196,150,186,218,187,151,186,222,178,152,186,207,169,153,186,172,160,154,186,119,151,155,186,45,142,156,186,208,132,157,186,95,123,158,186,219,113,159,186,66,104,160,186,149,94,161,186,212,84,162,186,255,74,163,186,22,65,164,186,24,55,
165,186,6,45,166,186,223,34,167,186,163,24,168,186,82,14,169,186,237,3,170,186,114,249,170,186,226,238,171,186,61,228,172,186,131,217,173,186,179,206,174,186,206,195,175,186,211,184,176,186,194,173,177,186,155,162,178,186,94,151,179,186,12,140,180,186,163,128,181,186,35,117,182,186,142,105,183,186,226,93,184,186,31,82,185,186,70,70,186,186,86,58,187,186,79,46,188,186,49,34,189,186,252,21,190,186,176,9,191,186,77,253,191,186,210,240,192,186,64,228,193,186,150,215,194,186,213,202,195,186,252,189,196,
186,11,177,197,186,2,164,198,186,224,150,199,186,167,137,200,186,86,124,201,186,236,110,202,186,105,97,203,186,206,83,204,186,27,70,205,186,78,56,206,186,105,42,207,186,107,28,208,186,83,14,209,186,35,0,210,186,217,241,210,186,118,227,211,186,249,212,212,186,99,198,213,186,180,183,214,186,234,168,215,186,7,154,216,186,9,139,217,186,242,123,218,186,192,108,219,186,116,93,220,186,14,78,221,186,141,62,222,186,242,46,223,186,60,31,224,186,108,15,225,186,128,255,225,186,122,239,226,186,88,223,227,186,
28,207,228,186,196,190,229,186,81,174,230,186,194,157,231,186,24,141,232,186,82,124,233,186,113,107,234,186,115,90,235,186,90,73,236,186,37,56,237,186,211,38,238,186,102,21,239,186,220,3,240,186,53,242,240,186,114,224,241,186,147,206,242,186,150,188,243,186,125,170,244,186,71,152,245,186,244,133,246,186,132,115,247,186,247,96,248,186,76,78,249,186,132,59,250,186,159,40,251,186,156,21,252,186,123,2,253,186,61,239,253,186,224,219,254,186,102,200,255,186,103,90,0,187,139,208,0,187,161,70,1,187,167,188,
1,187,158,50,2,187,134,168,2,187,95,30,3,187,40,148,3,187,226,9,4,187,140,127,4,187,39,245,4,187,178,106,5,187,45,224,5,187,153,85,6,187,245,202,6,187,66,64,7,187,126,181,7,187,171,42,8,187,200,159,8,187,213,20,9,187,210,137,9,187,191,254,9,187,155,115,10,187,104,232,10,187,36,93,11,187,208,209,11,187,108,70,12,187,248,186,12,187,115,47,13,187,222,163,13,187,56,24,14,187,130,140,14,187,187,0,15,187,227,116,15,187,251,232,15,187,2,93,16,187,249,208,16,187,222,68,17,187,179,184,17,187,119,44,18,187,
42,160,18,187,203,19,19,187,92,135,19,187,220,250,19,187,74,110,20,187,168,225,20,187,244,84,21,187,47,200,21,187,88,59,22,187,112,174,22,187,119,33,23,187,108,148,23,187,80,7,24,187,34,122,24,187,227,236,24,187,146,95,25,187,47,210,25,187,186,68,26,187,52,183,26,187,156,41,27,187,242,155,27,187,54,14,28,187,103,128,28,187,135,242,28,187,149,100,29,187,145,214,29,187,123,72,30,187,82,186,30,187,23,44,31,187,202,157,31,187,106,15,32,187,248,128,32,187,115,242,32,187,221,99,33,187,51,213,33,187,119,
70,34,187,168,183,34,187,199,40,35,187,211,153,35,187,204,10,36,187,178,123,36,187,133,236,36,187,70,93,37,187,243,205,37,187,142,62,38,187,21,175,38,187,137,31,39,187,235,143,39,187,57,0,40,187,115,112,40,187,155,224,40,187,175,80,41,187,176,192,41,187,157,48,42,187,119,160,42,187,62,16,43,187,240,127,43,187,144,239,43,187,27,95,44,187,147,206,44,187,247,61,45,187,72,173,45,187,132,28,46,187,173,139,46,187,194,250,46,187,195,105,47,187,176,216,47,187,136,71,48,187,77,182,48,187,253,36,49,187,154,
147,49,187,34,2,50,187,150,112,50,187,245,222,50,187,64,77,51,187,119,187,51,187,153,41,52,187,167,151,52,187,160,5,53,187,133,115,53,187,85,225,53,187,16,79,54,187,183,188,54,187,72,42,55,187,197,151,55,187,46,5,56,187,129,114,56,187,191,223,56,187,232,76,57,187,252,185,57,187,252,38,58,187,230,147,58,187,186,0,59,187,122,109,59,187,36,218,59,187,186,70,60,187,57,179,60,187,164,31,61,187,248,139,61,187,56,248,61,187,98,100,62,187,118,208,62,187,117,60,63,187,94,168,63,187,49,20,64,187,239,127,64,
187,151,235,64,187,40,87,65,187,165,194,65,187,11,46,66,187,91,153,66,187,149,4,67,187,185,111,67,187,199,218,67,187,191,69,68,187,161,176,68,187,109,27,69,187,34,134,69,187,193,240,69,187,74,91,70,187,188,197,70,187,24,48,71,187,93,154,71,187,140,4,72,187,164,110,72,187,165,216,72,187,144,66,73,187,100,172,73,187,34,22,74,187,201,127,74,187,89,233,74,187,210,82,75,187,52,188,75,187,127,37,76,187,179,142,76,187,208,247,76,187,214,96,77,187,197,201,77,187,157,50,78,187,93,155,78,187,6,4,79,187,152,
108,79,187,19,213,79,187,118,61,80,187,194,165,80,187,246,13,81,187,19,118,81,187,25,222,81,187,6,70,82,187,220,173,82,187,155,21,83,187,65,125,83,187,208,228,83,187,72,76,84,187,167,179,84,187,238,26,85,187,30,130,85,187,53,233,85,187,53,80,86,187,28,183,86,187,235,29,87,187,163,132,87,187,66,235,87,187,200,81,88,187,55,184,88,187,141,30,89,187,203,132,89,187,241,234,89,187,254,80,90,187,242,182,90,187,206,28,91,187,146,130,91,187,61,232,91,187,207,77,92,187,73,179,92,187,170,24,93,187,242,125,93,
187,34,227,93,187,56,72,94,187,54,173,94,187,27,18,95,187,230,118,95,187,153,219,95,187,51,64,96,187,180,164,96,187,27,9,97,187,106,109,97,187,159,209,97,187,187,53,98,187,190,153,98,187,167,253,98,187,119,97,99,187,46,197,99,187,203,40,100,187,78,140,100,187,184,239,100,187,9,83,101,187,64,182,101,187,93,25,102,187,97,124,102,187,75,223,102,187,27,66,103,187,209,164,103,187,110,7,104,187,240,105,104,187,89,204,104,187,168,46,105,187,220,144,105,187,247,242,105,187,248,84,106,187,222,182,106,187,
170,24,107,187,93,122,107,187,244,219,107,187,114,61,108,187,213,158,108,187,30,0,109,187,77,97,109,187,97,194,109,187,90,35,110,187,57,132,110,187,254,228,110,187,168,69,111,187,55,166,111,187,172,6,112,187,5,103,112,187,69,199,112,187,105,39,113,187,115,135,113,187,97,231,113,187,53,71,114,187,238,166,114,187,140,6,115,187,14,102,115,187,118,197,115,187,195,36,116,187,244,131,116,187,11,227,116,187,6,66,117,187,230,160,117,187,170,255,117,187,84,94,118,187,226,188,118,187,84,27,119,187,171,121,
119,187,231,215,119,187,7,54,120,187,11,148,120,187,244,241,120,187,194,79,121,187,115,173,121,187,9,11,122,187,131,104,122,187,226,197,122,187,37,35,123,187,75,128,123,187,86,221,123,187,69,58,124,187,24,151,124,187,207,243,124,187,106,80,125,187,233,172,125,187,75,9,126,187,146,101,126,187,188,193,126,187,203,29,127,187,188,121,127,187,146,213,127,187,166,24,128,187,116,70,128,187,52,116,128,187,230,161,128,187,138,207,128,187,32,253,128,187,167,42,129,187,32,88,129,187,138,133,129,187,231,178,
129,187,53,224,129,187,116,13,130,187,165,58,130,187,200,103,130,187,220,148,130,187,226,193,130,187,218,238,130,187,195,27,131,187,157,72,131,187,105,117,131,187,39,162,131,187,213,206,131,187,118,251,131,187,7,40,132,187,139,84,132,187,255,128,132,187,101,173,132,187,188,217,132,187,5,6,133,187,62,50,133,187,106,94,133,187,134,138,133,187,148,182,133,187,146,226,133,187,131,14,134,187,100,58,134,187,54,102,134,187,250,145,134,187,175,189,134,187,85,233,134,187,236,20,135,187,116,64,135,187,237,
107,135,187,87,151,135,187,179,194,135,187,255,237,135,187,60,25,136,187,107,68,136,187,138,111,136,187,154,154,136,187,156,197,136,187,142,240,136,187,113,27,137,187,69,70,137,187,10,113,137,187,191,155,137,187,102,198,137,187,253,240,137,187,133,27,138,187,254,69,138,187,104,112,138,187,194,154,138,187,14,197,138,187,74,239,138,187,118,25,139,187,147,67,139,187,161,109,139,187,160,151,139,187,143,193,139,187,111,235,139,187,64,21,140,187,1,63,140,187,178,104,140,187,85,146,140,187,231,187,140,187,
107,229,140,187,222,14,141,187,66,56,141,187,151,97,141,187,220,138,141,187,18,180,141,187,56,221,141,187,78,6,142,187,85,47,142,187,76,88,142,187,52,129,142,187,12,170,142,187,212,210,142,187,140,251,142,187,53,36,143,187,206,76,143,187,88,117,143,187,209,157,143,187,59,198,143,187,149,238,143,187,223,22,144,187,26,63,144,187,68,103,144,187,95,143,144,187,106,183,144,187,101,223,144,187,80,7,145,187,43,47,145,187,246,86,145,187,177,126,145,187,92,166,145,187,248,205,145,187,131,245,145,187,254,28,
146,187,105,68,146,187,197,107,146,187,16,147,146,187,75,186,146,187,118,225,146,187,145,8,147,187,155,47,147,187,150,86,147,187,128,125,147,187,91,164,147,187,37,203,147,187,223,241,147,187,136,24,148,187,34,63,148,187,171,101,148,187,36,140,148,187,141,178,148,187,229,216,148,187,45,255,148,187,101,37,149,187,140,75,149,187,163,113,149,187,170,151,149,187,160,189,149,187,134,227,149,187,92,9,150,187,33,47,150,187,214,84,150,187,122,122,150,187,14,160,150,187,145,197,150,187,4,235,150,187,102,16,
151,187,184,53,151,187,249,90,151,187,41,128,151,187,73,165,151,187,89,202,151,187,88,239,151,187,70,20,152,187,35,57,152,187,240,93,152,187,173,130,152,187,88,167,152,187,243,203,152,187,125,240,152,187,247,20,153,187,96,57,153,187,184,93,153,187,255,129,153,187,53,166,153,187,91,202,153,187,112,238,153,187,116,18,154,187,103,54,154,187,74,90,154,187,27,126,154,187,220,161,154,187,139,197,154,187,42,233,154,187,184,12,155,187,53,48,155,187,161,83,155,187,252,118,155,187,70,154,155,187,128,189,155,
187,168,224,155,187,191,3,156,187,197,38,156,187,186,73,156,187,158,108,156,187,113,143,156,187,51,178,156,187,227,212,156,187,131,247,156,187,17,26,157,187,143,60,157,187,251,94,157,187,86,129,157,187,160,163,157,187,217,197,157,187,0,232,157,187,22,10,158,187,27,44,158,187,15,78,158,187,241,111,158,187,195,145,158,187,131,179,158,187,49,213,158,187,207,246,158,187,91,24,159,187,213,57,159,187,63,91,159,187,151,124,159,187,221,157,159,187,18,191,159,187,54,224,159,187,73,1,160,187,73,34,160,187,
57,67,160,187,23,100,160,187,228,132,160,187,159,165,160,187,72,198,160,187,224,230,160,187,103,7,161,187,220,39,161,187,63,72,161,187,145,104,161,187,210,136,161,187,1,169,161,187,30,201,161,187,41,233,161,187,35,9,162,187,12,41,162,187,226,72,162,187,167,104,162,187,91,136,162,187,252,167,162,187,140,199,162,187,11,231,162,187,119,6,163,187,210,37,163,187,27,69,163,187,82,100,163,187,120,131,163,187,140,162,163,187,142,193,163,187,126,224,163,187,92,255,163,187,41,30,164,187,228,60,164,187,140,
91,164,187,35,122,164,187,168,152,164,187,28,183,164,187,125,213,164,187,204,243,164,187,10,18,165,187,53,48,165,187,79,78,165,187,87,108,165,187,76,138,165,187,48,168,165,187,2,198,165,187,194,227,165,187,111,1,166,187,11,31,166,187,149,60,166,187,12,90,166,187,114,119,166,187,197,148,166,187,6,178,166,187,54,207,166,187,83,236,166,187,94,9,167,187,87,38,167,187,62,67,167,187,18,96,167,187,213,124,167,187,133,153,167,187,35,182,167,187,175,210,167,187,41,239,167,187,144,11,168,187,229,39,168,187,
40,68,168,187,89,96,168,187,119,124,168,187,132,152,168,187,126,180,168,187,101,208,168,187,59,236,168,187,254,7,169,187,174,35,169,187,77,63,169,187,217,90,169,187,82,118,169,187,186,145,169,187,14,173,169,187,81,200,169,187,129,227,169,187,159,254,169,187,170,25,170,187,163,52,170,187,137,79,170,187,93,106,170,187,31,133,170,187,206,159,170,187,106,186,170,187,244,212,170,187,108,239,170,187,209,9,171,187,35,36,171,187,99,62,171,187,145,88,171,187,172,114,171,187,180,140,171,187,170,166,171,187,
141,192,171,187,93,218,171,187,27,244,171,187,199,13,172,187,95,39,172,187,230,64,172,187,89,90,172,187,186,115,172,187,8,141,172,187,67,166,172,187,108,191,172,187,130,216,172,187,134,241,172,187,118,10,173,187,84,35,173,187,32,60,173,187,216,84,173,187,126,109,173,187,17,134,173,187,145,158,173,187,254,182,173,187,89,207,173,187,161,231,173,187,214,255,173,187,248,23,174,187,8,48,174,187,4,72,174,187,238,95,174,187,197,119,174,187,137,143,174,187,58,167,174,187,217,190,174,187,100,214,174,187,221,
237,174,187,66,5,175,187,149,28,175,187,213,51,175,187,2,75,175,187,28,98,175,187,35,121,175,187,23,144,175,187,248,166,175,187,198,189,175,187,129,212,175,187,41,235,175,187,190,1,176,187,64,24,176,187,175,46,176,187,11,69,176,187,85,91,176,187,139,113,176,187,173,135,176,187,189,157,176,187,186,179,176,187,164,201,176,187,123,223,176,187,62,245,176,187,239,10,177,187,140,32,177,187,23,54,177,187,142,75,177,187,242,96,177,187,67,118,177,187,128,139,177,187,171,160,177,187,194,181,177,187,199,202,
177,187,184,223,177,187,150,244,177,187,96,9,178,187,24,30,178,187,188,50,178,187,77,71,178,187,203,91,178,187,54,112,178,187,141,132,178,187,209,152,178,187,2,173,178,187,32,193,178,187,42,213,178,187,33,233,178,187,5,253,178,187,214,16,179,187,147,36,179,187,61,56,179,187,211,75,179,187,86,95,179,187,198,114,179,187,35,134,179,187,108,153,179,187,162,172,179,187,197,191,179,187,212,210,179,187,208,229,179,187,184,248,179,187,141,11,180,187,79,30,180,187,253,48,180,187,152,67,180,187,32,86,180,187,
148,104,180,187,244,122,180,187,65,141,180,187,123,159,180,187,161,177,180,187,180,195,180,187,180,213,180,187,160,231,180,187,120,249,180,187,61,11,181,187,239,28,181,187,141,46,181,187,23,64,181,187,142,81,181,187,242,98,181,187,65,116,181,187,126,133,181,187,167,150,181,187,188,167,181,187,190,184,181,187,172,201,181,187,135,218,181,187,78,235,181,187,2,252,181,187,162,12,182,187,46,29,182,187,167,45,182,187,13,62,182,187,94,78,182,187,156,94,182,187,199,110,182,187,222,126,182,187,225,142,182,
187,209,158,182,187,173,174,182,187,117,190,182,187,42,206,182,187,203,221,182,187,88,237,182,187,210,252,182,187,56,12,183,187,139,27,183,187,201,42,183,187,244,57,183,187,12,73,183,187,16,88,183,187,0,103,183,187,220,117,183,187,164,132,183,187,89,147,183,187,251,161,183,187,136,176,183,187,2,191,183,187,104,205,183,187,186,219,183,187,248,233,183,187,35,248,183,187,58,6,184,187,61,20,184,187,45,34,184,187,9,48,184,187,209,61,184,187,133,75,184,187,37,89,184,187,178,102,184,187,43,116,184,187,144,
129,184,187,225,142,184,187,30,156,184,187,72,169,184,187,94,182,184,187,96,195,184,187,78,208,184,187,40,221,184,187,239,233,184,187,161,246,184,187,64,3,185,187,203,15,185,187,66,28,185,187,165,40,185,187,245,52,185,187,48,65,185,187,88,77,185,187,108,89,185,187,108,101,185,187,88,113,185,187,48,125,185,187,244,136,185,187,165,148,185,187,65,160,185,187,202,171,185,187,62,183,185,187,159,194,185,187,236,205,185,187,37,217,185,187,74,228,185,187,91,239,185,187,89,250,185,187,66,5,186,187,23,16,186,
187,217,26,186,187,134,37,186,187,32,48,186,187,165,58,186,187,23,69,186,187,117,79,186,187,190,89,186,187,244,99,186,187,22,110,186,187,36,120,186,187,30,130,186,187,3,140,186,187,213,149,186,187,147,159,186,187,61,169,186,187,211,178,186,187,85,188,186,187,195,197,186,187,29,207,186,187,99,216,186,187,149,225,186,187,179,234,186,187,189,243,186,187,179,252,186,187,149,5,187,187,99,14,187,187,29,23,187,187,195,31,187,187,85,40,187,187,211,48,187,187,61,57,187,187,147,65,187,187,213,73,187,187,2,
82,187,187,28,90,187,187,34,98,187,187,19,106,187,187,241,113,187,187,187,121,187,187,112,129,187,187,18,137,187,187,159,144,187,187,24,152,187,187,126,159,187,187,207,166,187,187,12,174,187,187,53,181,187,187,74,188,187,187,75,195,187,187,56,202,187,187,17,209,187,187,214,215,187,187,134,222,187,187,35,229,187,187,171,235,187,187,32,242,187,187,128,248,187,187,204,254,187,187,5,5,188,187,41,11,188,187,57,17,188,187,53,23,188,187,29,29,188,187,240,34,188,187,176,40,188,187,91,46,188,187,243,51,188,
187,118,57,188,187,229,62,188,187,65,68,188,187,136,73,188,187,187,78,188,187,217,83,188,187,228,88,188,187,219,93,188,187,189,98,188,187,140,103,188,187,70,108,188,187,236,112,188,187,126,117,188,187,252,121,188,187,102,126,188,187,188,130,188,187,253,134,188,187,43,139,188,187,68,143,188,187,73,147,188,187,58,151,188,187,23,155,188,187,224,158,188,187,149,162,188,187,53,166,188,187,194,169,188,187,58,173,188,187,159,176,188,187,239,179,188,187,43,183,188,187,83,186,188,187,102,189,188,187,102,192,
188,187,81,195,188,187,41,198,188,187,236,200,188,187,155,203,188,187,54,206,188,187,189,208,188,187,48,211,188,187,142,213,188,187,217,215,188,187,15,218,188,187,49,220,188,187,63,222,188,187,57,224,188,187,31,226,188,187,241,227,188,187,174,229,188,187,88,231,188,187,237,232,188,187,110,234,188,187,219,235,188,187,52,237,188,187,121,238,188,187,170,239,188,187,198,240,188,187,207,241,188,187,195,242,188,187,163,243,188,187,111,244,188,187,39,245,188,187,203,245,188,187,91,246,188,187,214,246,188,
187,62,247,188,187,145,247,188,187,209,247,188,187,252,247,188,187,19,248,188,187,21,248,188,187,4,248,188,187,223,247,188,187,165,247,188,187,88,247,188,187,246,246,188,187,128,246,188,187,246,245,188,187,88,245,188,187,166,244,188,187,224,243,188,187,6,243,188,187,23,242,188,187,21,241,188,187,254,239,188,187,212,238,188,187,149,237,188,187,66,236,188,187,219,234,188,187,96,233,188,187,209,231,188,187,45,230,188,187,118,228,188,187,170,226,188,187,203,224,188,187,215,222,188,187,208,220,188,187,
180,218,188,187,132,216,188,187,64,214,188,187,232,211,188,187,124,209,188,187,252,206,188,187,104,204,188,187,191,201,188,187],"i8",4,y.a+419840);
Q([3,199,188,187,51,196,188,187,78,193,188,187,86,190,188,187,73,187,188,187,41,184,188,187,244,180,188,187,171,177,188,187,79,174,188,187,222,170,188,187,89,167,188,187,192,163,188,187,19,160,188,187,82,156,188,187,125,152,188,187,148,148,188,187,151,144,188,187,134,140,188,187,97,136,188,187,40,132,188,187,219,127,188,187,122,123,188,187,5,119,188,187,124,114,188,187,222,109,188,187,45,105,188,187,104,100,188,187,143,95,188,187,162,90,188,187,161,85,188,187,140,80,188,187,99,75,188,187,38,70,188,
187,213,64,188,187,112,59,188,187,247,53,188,187,106,48,188,187,201,42,188,187,20,37,188,187,75,31,188,187,110,25,188,187,125,19,188,187,121,13,188,187,96,7,188,187,52,1,188,187,243,250,187,187,159,244,187,187,54,238,187,187,186,231,187,187,42,225,187,187,134,218,187,187,206,211,187,187,2,205,187,187,34,198,187,187,46,191,187,187,38,184,187,187,11,177,187,187,219,169,187,187,152,162,187,187,65,155,187,187,214,147,187,187,87,140,187,187,196,132,187,187,29,125,187,187,98,117,187,187,148,109,187,187,
178,101,187,187,187,93,187,187,177,85,187,187,148,77,187,187,98,69,187,187,28,61,187,187,195,52,187,187,86,44,187,187,213,35,187,187,64,27,187,187,151,18,187,187,219,9,187,187,11,1,187,187,39,248,186,187,47,239,186,187,35,230,186,187,4,221,186,187,208,211,186,187,138,202,186,187,47,193,186,187,192,183,186,187,62,174,186,187,168,164,186,187,254,154,186,187,65,145,186,187,111,135,186,187,138,125,186,187,146,115,186,187,133,105,186,187,101,95,186,187,49,85,186,187,234,74,186,187,142,64,186,187,31,54,
186,187,157,43,186,187,6,33,186,187,92,22,186,187,158,11,186,187,205,0,186,187,232,245,185,187,239,234,185,187,227,223,185,187,195,212,185,187,143,201,185,187,71,190,185,187,236,178,185,187,126,167,185,187,252,155,185,187,102,144,185,187,188,132,185,187,255,120,185,187,47,109,185,187,74,97,185,187,82,85,185,187,71,73,185,187,40,61,185,187,245,48,185,187,175,36,185,187,85,24,185,187,232,11,185,187,103,255,184,187,211,242,184,187,43,230,184,187,112,217,184,187,161,204,184,187,190,191,184,187,200,178,
184,187,191,165,184,187,162,152,184,187,113,139,184,187,45,126,184,187,214,112,184,187,107,99,184,187,237,85,184,187,91,72,184,187,182,58,184,187,253,44,184,187,49,31,184,187,81,17,184,187,94,3,184,187,88,245,183,187,62,231,183,187,17,217,183,187,208,202,183,187,124,188,183,187,21,174,183,187,154,159,183,187,12,145,183,187,106,130,183,187,181,115,183,187,237,100,183,187,17,86,183,187,35,71,183,187,32,56,183,187,11,41,183,187,226,25,183,187,166,10,183,187,86,251,182,187,243,235,182,187,125,220,182,
187,244,204,182,187,87,189,182,187,168,173,182,187,228,157,182,187,14,142,182,187,36,126,182,187,40,110,182,187,24,94,182,187,244,77,182,187,190,61,182,187,116,45,182,187,23,29,182,187,167,12,182,187,36,252,181,187,141,235,181,187,228,218,181,187,39,202,181,187,87,185,181,187,116,168,181,187,126,151,181,187,116,134,181,187,88,117,181,187,41,100,181,187,230,82,181,187,144,65,181,187,39,48,181,187,171,30,181,187,29,13,181,187,123,251,180,187,197,233,180,187,253,215,180,187,34,198,180,187,52,180,180,
187,51,162,180,187,31,144,180,187,247,125,180,187,189,107,180,187,112,89,180,187,16,71,180,187,157,52,180,187,23,34,180,187,126,15,180,187,210,252,179,187,19,234,179,187,65,215,179,187,92,196,179,187,101,177,179,187,90,158,179,187,61,139,179,187,12,120,179,187,201,100,179,187,115,81,179,187,10,62,179,187,142,42,179,187,0,23,179,187,94,3,179,187,170,239,178,187,227,219,178,187,9,200,178,187,29,180,178,187,29,160,178,187,11,140,178,187,230,119,178,187,174,99,178,187,100,79,178,187,7,59,178,187,151,
38,178,187,20,18,178,187,127,253,177,187,215,232,177,187,28,212,177,187,79,191,177,187,111,170,177,187,124,149,177,187,119,128,177,187,95,107,177,187,52,86,177,187,247,64,177,187,167,43,177,187,68,22,177,187,207,0,177,187,72,235,176,187,173,213,176,187,1,192,176,187,65,170,176,187,111,148,176,187,139,126,176,187,148,104,176,187,139,82,176,187,111,60,176,187,64,38,176,187,255,15,176,187,172,249,175,187,70,227,175,187,206,204,175,187,67,182,175,187,166,159,175,187,246,136,175,187,52,114,175,187,96,
91,175,187,121,68,175,187,128,45,175,187,116,22,175,187,86,255,174,187,38,232,174,187,227,208,174,187,142,185,174,187,39,162,174,187,174,138,174,187,34,115,174,187,132,91,174,187,211,67,174,187,17,44,174,187,60,20,174,187,84,252,173,187,91,228,173,187,79,204,173,187,50,180,173,187,2,156,173,187,191,131,173,187,107,107,173,187,4,83,173,187,140,58,173,187,1,34,173,187,100,9,173,187,181,240,172,187,244,215,172,187,32,191,172,187,59,166,172,187,67,141,172,187,58,116,172,187,30,91,172,187,241,65,172,187,
177,40,172,187,95,15,172,187,251,245,171,187,134,220,171,187,254,194,171,187,100,169,171,187,185,143,171,187,251,117,171,187,44,92,171,187,74,66,171,187,87,40,171,187,82,14,171,187,58,244,170,187,17,218,170,187,214,191,170,187,138,165,170,187,43,139,170,187,186,112,170,187,56,86,170,187,164,59,170,187,254,32,170,187,70,6,170,187,125,235,169,187,162,208,169,187,181,181,169,187,182,154,169,187,166,127,169,187,131,100,169,187,80,73,169,187,10,46,169,187,179,18,169,187,74,247,168,187,207,219,168,187,
67,192,168,187,165,164,168,187,246,136,168,187,53,109,168,187,98,81,168,187,126,53,168,187,136,25,168,187,129,253,167,187,104,225,167,187,61,197,167,187,2,169,167,187,180,140,167,187,85,112,167,187,229,83,167,187,99,55,167,187,207,26,167,187,43,254,166,187,116,225,166,187,173,196,166,187,212,167,166,187,233,138,166,187,238,109,166,187,224,80,166,187,194,51,166,187,146,22,166,187,81,249,165,187,254,219,165,187,154,190,165,187,37,161,165,187,159,131,165,187,7,102,165,187,94,72,165,187,164,42,165,187,
217,12,165,187,252,238,164,187,15,209,164,187,16,179,164,187,0,149,164,187,222,118,164,187,172,88,164,187,104,58,164,187,20,28,164,187,174,253,163,187,55,223,163,187,175,192,163,187,22,162,163,187,108,131,163,187,177,100,163,187,229,69,163,187,8,39,163,187,26,8,163,187,27,233,162,187,11,202,162,187,234,170,162,187,184,139,162,187,117,108,162,187,33,77,162,187,189,45,162,187,71,14,162,187,193,238,161,187,41,207,161,187,129,175,161,187,200,143,161,187,255,111,161,187,36,80,161,187,57,48,161,187,61,
16,161,187,48,240,160,187,18,208,160,187,228,175,160,187,165,143,160,187,85,111,160,187,244,78,160,187,131,46,160,187,2,14,160,187,111,237,159,187,204,204,159,187,24,172,159,187,84,139,159,187,127,106,159,187,154,73,159,187,164,40,159,187,157,7,159,187,134,230,158,187,95,197,158,187,38,164,158,187,222,130,158,187,133,97,158,187,27,64,158,187,161,30,158,187,23,253,157,187,124,219,157,187,209,185,157,187,21,152,157,187,74,118,157,187,109,84,157,187,129,50,157,187,132,16,157,187,118,238,156,187,89,204,
156,187,43,170,156,187,237,135,156,187,159,101,156,187,64,67,156,187,209,32,156,187,82,254,155,187,195,219,155,187,36,185,155,187,116,150,155,187,180,115,155,187,229,80,155,187,5,46,155,187,21,11,155,187,21,232,154,187,5,197,154,187,228,161,154,187,180,126,154,187,116,91,154,187,36,56,154,187,195,20,154,187,83,241,153,187,211,205,153,187,67,170,153,187,163,134,153,187,243,98,153,187,51,63,153,187,99,27,153,187,131,247,152,187,148,211,152,187,149,175,152,187,134,139,152,187,103,103,152,187,56,67,152,
187,250,30,152,187,171,250,151,187,77,214,151,187,224,177,151,187,98,141,151,187,213,104,151,187,56,68,151,187,140,31,151,187,208,250,150,187,4,214,150,187,41,177,150,187,62,140,150,187,67,103,150,187,57,66,150,187,32,29,150,187,247,247,149,187,190,210,149,187,118,173,149,187,30,136,149,187,183,98,149,187,65,61,149,187,187,23,149,187,37,242,148,187,128,204,148,187,204,166,148,187,9,129,148,187,54,91,148,187,83,53,148,187,98,15,148,187,97,233,147,187,81,195,147,187,49,157,147,187,3,119,147,187,197,
80,147,187,120,42,147,187,27,4,147,187,176,221,146,187,53,183,146,187,171,144,146,187,18,106,146,187,106,67,146,187,179,28,146,187,237,245,145,187,23,207,145,187,51,168,145,187,64,129,145,187,61,90,145,187,44,51,145,187,11,12,145,187,220,228,144,187,157,189,144,187,80,150,144,187,244,110,144,187,137,71,144,187,15,32,144,187,134,248,143,187,238,208,143,187,72,169,143,187,146,129,143,187,206,89,143,187,251,49,143,187,26,10,143,187,41,226,142,187,42,186,142,187,28,146,142,187,0,106,142,187,212,65,142,
187,154,25,142,187,82,241,141,187,251,200,141,187,149,160,141,187,33,120,141,187,158,79,141,187,12,39,141,187,108,254,140,187,190,213,140,187,1,173,140,187,53,132,140,187,91,91,140,187,115,50,140,187,124,9,140,187,118,224,139,187,99,183,139,187,65,142,139,187,16,101,139,187,210,59,139,187,132,18,139,187,41,233,138,187,191,191,138,187,71,150,138,187,193,108,138,187,45,67,138,187,138,25,138,187,217,239,137,187,26,198,137,187,77,156,137,187,114,114,137,187,136,72,137,187,145,30,137,187,139,244,136,187,
120,202,136,187,86,160,136,187,38,118,136,187,232,75,136,187,156,33,136,187,67,247,135,187,219,204,135,187,101,162,135,187,225,119,135,187,80,77,135,187,176,34,135,187,3,248,134,187,72,205,134,187,127,162,134,187,168,119,134,187,196,76,134,187,209,33,134,187,209,246,133,187,195,203,133,187,168,160,133,187,126,117,133,187,71,74,133,187,3,31,133,187,176,243,132,187,80,200,132,187,227,156,132,187,104,113,132,187,223,69,132,187,73,26,132,187,165,238,131,187,244,194,131,187,53,151,131,187,105,107,131,
187,143,63,131,187,168,19,131,187,179,231,130,187,177,187,130,187,161,143,130,187,133,99,130,187,91,55,130,187,35,11,130,187,222,222,129,187,140,178,129,187,45,134,129,187,192,89,129,187,71,45,129,187,192,0,129,187,43,212,128,187,138,167,128,187,219,122,128,187,32,78,128,187,87,33,128,187,2,233,127,187,60,143,127,187,92,53,127,187,98,219,126,187,77,129,126,187,31,39,126,187,215,204,125,187,117,114,125,187,249,23,125,187,99,189,124,187,179,98,124,187,234,7,124,187,7,173,123,187,10,82,123,187,243,246,
122,187,195,155,122,187,122,64,122,187,22,229,121,187,154,137,121,187,3,46,121,187,84,210,120,187,139,118,120,187,168,26,120,187,173,190,119,187,152,98,119,187,106,6,119,187,34,170,118,187,194,77,118,187,72,241,117,187,182,148,117,187,10,56,117,187,69,219,116,187,104,126,116,187,113,33,116,187,98,196,115,187,58,103,115,187,249,9,115,187,159,172,114,187,45,79,114,187,162,241,113,187,254,147,113,187,66,54,113,187,109,216,112,187,127,122,112,187,122,28,112,187,91,190,111,187,37,96,111,187,214,1,111,
187,110,163,110,187,239,68,110,187,87,230,109,187,167,135,109,187,223,40,109,187,255,201,108,187,7,107,108,187,246,11,108,187,206,172,107,187,142,77,107,187,54,238,106,187,198,142,106,187,62,47,106,187,159,207,105,187,231,111,105,187,24,16,105,187,50,176,104,187,52,80,104,187,30,240,103,187,240,143,103,187,172,47,103,187,79,207,102,187,220,110,102,187,81,14,102,187,174,173,101,187,245,76,101,187,36,236,100,187,60,139,100,187,60,42,100,187,38,201,99,187,248,103,99,187,180,6,99,187,88,165,98,187,230,
67,98,187,93,226,97,187,188,128,97,187,5,31,97,187,56,189,96,187,83,91,96,187,88,249,95,187,70,151,95,187,29,53,95,187,222,210,94,187,137,112,94,187,28,14,94,187,154,171,93,187,1,73,93,187,81,230,92,187,140,131,92,187,176,32,92,187,190,189,91,187,181,90,91,187,151,247,90,187,98,148,90,187,23,49,90,187,182,205,89,187,64,106,89,187,179,6,89,187,16,163,88,187,88,63,88,187,137,219,87,187,165,119,87,187,172,19,87,187,156,175,86,187,119,75,86,187,60,231,85,187,236,130,85,187,134,30,85,187,11,186,84,187,
122,85,84,187,212,240,83,187,25,140,83,187,72,39,83,187,98,194,82,187,103,93,82,187,86,248,81,187,49,147,81,187,246,45,81,187,166,200,80,187,66,99,80,187,200,253,79,187,57,152,79,187,150,50,79,187,222,204,78,187,17,103,78,187,47,1,78,187,56,155,77,187,45,53,77,187,13,207,76,187,217,104,76,187,144,2,76,187,51,156,75,187,193,53,75,187,59,207,74,187,160,104,74,187,242,1,74,187,47,155,73,187,87,52,73,187,108,205,72,187,108,102,72,187,88,255,71,187,49,152,71,187,245,48,71,187,165,201,70,187,65,98,70,187,
202,250,69,187,63,147,69,187,159,43,69,187,237,195,68,187,38,92,68,187,76,244,67,187,94,140,67,187,93,36,67,187,72,188,66,187,31,84,66,187,227,235,65,187,148,131,65,187,50,27,65,187,188,178,64,187,51,74,64,187,151,225,63,187,231,120,63,187,37,16,63,187,79,167,62,187,102,62,62,187,107,213,61,187,92,108,61,187,58,3,61,187,6,154,60,187,191,48,60,187,101,199,59,187,248,93,59,187,121,244,58,187,231,138,58,187,67,33,58,187,139,183,57,187,194,77,57,187,230,227,56,187,247,121,56,187,247,15,56,187,228,165,
55,187,190,59,55,187,135,209,54,187,61,103,54,187,225,252,53,187,115,146,53,187,243,39,53,187,97,189,52,187,189,82,52,187,7,232,51,187,63,125,51,187,102,18,51,187,122,167,50,187,125,60,50,187,110,209,49,187,78,102,49,187,28,251,48,187,216,143,48,187,131,36,48,187,29,185,47,187,165,77,47,187,28,226,46,187,129,118,46,187,213,10,46,187,24,159,45,187,74,51,45,187,106,199,44,187,122,91,44,187,120,239,43,187,102,131,43,187,66,23,43,187,14,171,42,187,201,62,42,187,115,210,41,187,12,102,41,187,148,249,40,
187,12,141,40,187,115,32,40,187,201,179,39,187,15,71,39,187,69,218,38,187,106,109,38,187,126,0,38,187,131,147,37,187,119,38,37,187,90,185,36,187,46,76,36,187,241,222,35,187,164,113,35,187,71,4,35,187,218,150,34,187,93,41,34,187,209,187,33,187,52,78,33,187,135,224,32,187,203,114,32,187,255,4,32,187,35,151,31,187,55,41,31,187,60,187,30,187,49,77,30,187,23,223,29,187,237,112,29,187,180,2,29,187,107,148,28,187,19,38,28,187,172,183,27,187,54,73,27,187,176,218,26,187,27,108,26,187,119,253,25,187,197,142,
25,187,3,32,25,187,50,177,24,187,82,66,24,187,99,211,23,187,102,100,23,187,89,245,22,187,62,134,22,187,20,23,22,187,220,167,21,187,149,56,21,187,64,201,20,187,220,89,20,187,105,234,19,187,232,122,19,187,89,11,19,187,188,155,18,187,16,44,18,187,86,188,17,187,142,76,17,187,183,220,16,187,211,108,16,187,225,252,15,187,224,140,15,187,210,28,15,187,182,172,14,187,140,60,14,187,84,204,13,187,15,92,13,187,187,235,12,187,90,123,12,187,236,10,12,187,112,154,11,187,230,41,11,187,80,185,10,187,171,72,10,187,
249,215,9,187,58,103,9,187,110,246,8,187,148,133,8,187,174,20,8,187,186,163,7,187,185,50,7,187,171,193,6,187,144,80,6,187,104,223,5,187,51,110,5,187,242,252,4,187,163,139,4,187,72,26,4,187,224,168,3,187,108,55,3,187,235,197,2,187,93,84,2,187,195,226,1,187,29,113,1,187,106,255,0,187,170,141,0,187,222,27,0,187,13,84,255,186,69,112,254,186,100,140,253,186,107,168,252,186,90,196,251,186,49,224,250,186,240,251,249,186,151,23,249,186,38,51,248,186,158,78,247,186,254,105,246,186,71,133,245,186,120,160,244,
186,146,187,243,186,149,214,242,186,129,241,241,186,85,12,241,186,19,39,240,186,186,65,239,186,74,92,238,186,196,118,237,186,39,145,236,186,116,171,235,186,170,197,234,186,203,223,233,186,213,249,232,186,201,19,232,186,167,45,231,186,111,71,230,186,34,97,229,186,191,122,228,186,70,148,227,186,184,173,226,186,20,199,225,186,92,224,224,186,142,249,223,186,171,18,223,186,179,43,222,186,166,68,221,186,133,93,220,186,79,118,219,186,4,143,218,186,165,167,217,186,49,192,216,186,169,216,215,186,13,241,214,
186,93,9,214,186,153,33,213,186,193,57,212,186,213,81,211,186,214,105,210,186,194,129,209,186,156,153,208,186,98,177,207,186,20,201,206,186,180,224,205,186,64,248,204,186,185,15,204,186,32,39,203,186,115,62,202,186,180,85,201,186,226,108,200,186,254,131,199,186,7,155,198,186,254,177,197,186,227,200,196,186,181,223,195,186,118,246,194,186,37,13,194,186,193,35,193,186,76,58,192,186,198,80,191,186,45,103,190,186,132,125,189,186,201,147,188,186,252,169,187,186,31,192,186,186,48,214,185,186,49,236,184,
186,32,2,184,186,255,23,183,186,206,45,182,186,139,67,181,186,56,89,180,186,213,110,179,186,98,132,178,186,222,153,177,186,74,175,176,186,167,196,175,186,243,217,174,186,48,239,173,186,93,4,173,186,122,25,172,186,136,46,171,186,134,67,170,186,117,88,169,186,85,109,168,186,38,130,167,186,232,150,166,186,155,171,165,186,63,192,164,186,213,212,163,186,92,233,162,186,212,253,161,186,62,18,161,186,154,38,160,186,231,58,159,186,39,79,158,186,88,99,157,186,123,119,156,186,145,139,155,186,153,159,154,186,
147,179,153,186,128,199,152,186,95,219,151,186,49,239,150,186,246,2,150,186,174,22,149,186,89,42,148,186,246,61,147,186,135,81,146,186,11,101,145,186,131,120,144,186,238,139,143,186,77,159,142,186,159,178,141,186,229,197,140,186,31,217,139,186,77,236,138,186,111,255,137,186,133,18,137,186,143,37,136,186,142,56,135,186,129,75,134,186,105,94,133,186,69,113,132,186,23,132,131,186,221,150,130,186,152,169,129,186,72,188,128,186,218,157,127,186,15,195,125,186,46,232,123,186,57,13,122,186,47,50,120,186,
16,87,118,186,220,123,116,186,148,160,114,186,56,197,112,186,200,233,110,186,69,14,109,186,174,50,107,186,4,87,105,186,70,123,103,186,118,159,101,186,147,195,99,186,157,231,97,186,149,11,96,186,123,47,94,186,79,83,92,186,18,119,90,186,194,154,88,186,98,190,86,186,240,225,84,186,110,5,83,186,219,40,81,186,55,76,79,186,131,111,77,186,191,146,75,186,234,181,73,186,7,217,71,186,19,252,69,186,17,31,68,186,255,65,66,186,222,100,64,186,174,135,62,186,112,170,60,186,36,205,58,186,202,239,56,186,97,18,55,
186,235,52,53,186,103,87,51,186,214,121,49,186,56,156,47,186,141,190,45,186,213,224,43,186,17,3,42,186,64,37,40,186,99,71,38,186,122,105,36,186,134,139,34,186,134,173,32,186,122,207,30,186,99,241,28,186,66,19,27,186,22,53,25,186,223,86,23,186,158,120,21,186,82,154,19,186,253,187,17,186,158,221,15,186,53,255,13,186,195,32,12,186,72,66,10,186,196,99,8,186,56,133,6,186,162,166,4,186,4,200,2,186,95,233,0,186,98,21,254,185,246,87,250,185,124,154,246,185,243,220,242,185,92,31,239,185,183,97,235,185,4,164,
231,185,68,230,227,185,120,40,224,185,159,106,220,185,186,172,216,185,202,238,212,185,206,48,209,185,200,114,205,185,184,180,201,185,157,246,197,185,121,56,194,185,76,122,190,185,22,188,186,185,216,253,182,185,146,63,179,185,68,129,175,185,240,194,171,185,148,4,168,185,50,70,164,185,203,135,160,185,93,201,156,185,235,10,153,185,116,76,149,185,248,141,145,185,121,207,141,185,245,16,138,185,111,82,134,185,230,147,130,185,182,170,125,185,156,45,118,185,126,176,110,185,94,51,103,185,61,182,95,185,26,
57,88,185,248,187,80,185,215,62,73,185,184,193,65,185,155,68,58,185,129,199,50,185,107,74,43,185,90,205,35,185,79,80,28,185,74,211,20,185,77,86,13,185,87,217,5,185,214,184,252,184,16,191,237,184,95,197,222,184,196,203,207,184,66,210,192,184,217,216,177,184,139,223,162,184,91,230,147,184,72,237,132,184,172,232,107,184,11,247,77,184,176,5,48,184,158,20,18,184,180,71,232,183,203,102,172,183,16,13,97,183,200,155,210,182,31,254,102,53,53,44,6,55,9,231,125,55,40,208,186,55,255,171,246,55,130,67,25,56,151,
48,55,56,61,29,85,56,112,9,115,56,150,122,136,56,56,112,151,56,155,101,166,56,191,90,181,56,161,79,196,56,64,68,211,56,155,56,226,56,175,44,241,56,62,16,0,57,255,137,7,57,155,3,15,57,17,125,22,57,96,246,29,57,135,111,37,57,133,232,44,57,90,97,52,57,4,218,59,57,132,82,67,57,216,202,74,57,255,66,82,57,248,186,89,57,196,50,97,57,96,170,104,57,205,33,112,57,9,153,119,57,19,16,127,57,118,67,131,57,201,254,134,57,2,186,138,57,32,117,142,57,36,48,146,57,13,235,149,57,218,165,153,57,140,96,157,57,33,27,161,
57,154,213,164,57,246,143,168,57,52,74,172,57,84,4,176,57,86,190,179,57,58,120,183,57,254,49,187,57,163,235,190,57,41,165,194,57,142,94,198,57,210,23,202,57,245,208,205,57,247,137,209,57,216,66,213,57,150,251,216,57,49,180,220,57,170,108,224,57,255,36,228,57,49,221,231,57,62,149,235,57,39,77,239,57,234,4,243,57,137,188,246,57,2,116,250,57,84,43,254,57,64,241,0,58,195,204,2,58,50,168,4,58,141,131,6,58,212,94,8,58,7,58,10,58,37,21,12,58,47,240,13,58,36,203,15,58,4,166,17,58,206,128,19,58,131,91,21,
58,35,54,23,58,173,16,25,58,33,235,26,58,126,197,28,58,197,159,30,58,246,121,32,58,16,84,34,58,19,46,36,58,254,7,38,58,211,225,39,58,143,187,41,58,52,149,43,58,193,110,45,58,54,72,47,58,146,33,49,58,214,250,50,58,1,212,52,58,19,173,54,58,12,134,56,58,236,94,58,58,178,55,60,58,94,16,62,58,241,232,63,58,105,193,65,58,199,153,67,58,11,114,69,58,52,74,71,58,66,34,73,58,52,250,74,58,12,210,76,58,200,169,78,58,104,129,80,58,237,88,82,58,85,48,84,58,161,7,86,58,209,222,87,58,228,181,89,58,218,140,91,58,
179,99,93,58,111,58,95,58,14,17,97,58,143,231,98,58,242,189,100,58,55,148,102,58,94,106,104,58,102,64,106,58,80,22,108,58,27,236,109,58,199,193,111,58,84,151,113,58,193,108,115,58,15,66,117,58,61,23,119,58,75,236,120,58,58,193,122,58,7,150,124,58,180,106,126,58,160,31,128,58,214,9,129,58,251,243,129,58,16,222,130,58,20,200,131,58,7,178,132,58,233,155,133,58,186,133,134,58,122,111,135,58,40,89,136,58,198,66,137,58,81,44,138,58,204,21,139,58,52,255,139,58,140,232,140,58,209,209,141,58,4,187,142,58,
37,164,143,58,53,141,144,58,50,118,145,58,28,95,146,58,245,71,147,58,186,48,148,58,110,25,149,58,14,2,150,58,156,234,150,58,23,211,151,58,127,187,152,58,212,163,153,58,22,140,154,58,68,116,155,58,96,92,156,58,103,68,157,58,91,44,158,58,60,20,159,58,9,252,159,58,194,227,160,58,103,203,161,58,248,178,162,58,117,154,163,58,222,129,164,58,51,105,165,58,115,80,166,58,158,55,167,58,181,30,168,58,184,5,169,58,165,236,169,58,126,211,170,58,66,186,171,58,240,160,172,58,138,135,173,58,14,110,174,58,125,84,
175,58,215,58,176,58,27,33,177,58,73,7,178,58,98,237,178,58,101,211,179,58,81,185,180,58,40,159,181,58,233,132,182,58,148,106,183,58,40,80,184,58,166,53,185,58,13,27,186,58,94,0,187,58,152,229,187,58,188,202,188,58,200,175,189,58,190,148,190,58,157,121,191,58,100,94,192,58,20,67,193,58,173,39,194,58,47,12,195,58,153,240,195,58,235,212,196,58,38,185,197,58,73,157,198,58,84,129,199,58,71,101,200,58,33,73,201,58,228,44,202,58,143,16,203,58,33,244,203,58,154,215,204,58,252,186,205,58,68,158,206,58,116,
129,207,58,139,100,208,58,137,71,209,58,110,42,210,58,58,13,211,58,236,239,211,58,134,210,212,58,6,181,213,58,108,151,214,58,185,121,215,58,237,91,216,58,6,62,217,58,6,32,218,58,236,1,219,58,183,227,219,58,105,197,220,58,0,167,221,58,126,136,222,58,224,105,223,58,40,75,224,58,86,44,225,58,105,13,226,58,97,238,226,58,62,207,227,58,1,176,228,58,168,144,229,58,52,113,230,58,165,81,231,58,251,49,232,58,53,18,233,58,83,242,233,58,87,210,234,58,62,178,235,58,9,146,236,58,185,113,237,58,77,81,238,58,197,
48,239,58,32,16,240,58,95,239,240,58,130,206,241,58,137,173,242,58,115,140,243,58,64,107,244,58,241,73,245,58,133,40,246,58,252,6,247,58,86,229,247,58,147,195,248,58,178,161,249,58,181,127,250,58,154,93,251,58,98,59,252,58,12,25,253,58,153,246,253,58,8,212,254,58,89,177,255,58,70,71,0,59,209,181,0,59,77,36,1,59,185,146,1,59,22,1,2,59,101,111,2,59,164,221,2,59,212,75,3,59,244,185,3,59,5,40,4,59,7,150,4,59,249,3,5,59,220,113,5,59,175,223,5,59,115,77,6,59,39,187,6,59,204,40,7,59,96,150,7,59,229,3,8,
59,91,113,8,59,192,222,8,59,21,76,9,59,91,185,9,59,144,38,10,59,182,147,10,59,203,0,11,59,209,109,11,59,198,218,11,59,171,71,12,59,128,180,12,59,68,33,13,59,248,141,13,59,156,250,13,59,47,103,14,59,178,211,14,59,37,64,15,59,135,172,15,59,216,24,16,59,24,133,16,59,72,241,16,59,103,93,17,59,118,201,17,59,115,53,18,59,96,161,18,59,60,13,19,59,7,121,19,59,192,228,19,59,105,80,20,59,1,188,20,59,136,39,21,59,253,146,21,59,97,254,21,59,180,105,22,59,246,212,22,59,38,64,23,59,69,171,23,59,82,22,24,59,78,
129,24,59,57,236,24,59,18,87,25,59,217,193,25,59,143,44,26,59,51,151,26,59,197,1,27,59,69,108,27,59,180,214,27,59,16,65,28,59,91,171,28,59,148,21,29,59,187,127,29,59,208,233,29,59,211,83,30,59,195,189,30,59,162,39,31,59,110,145,31,59,40,251,31,59,207,100,32,59,101,206,32,59,232,55,33,59,88,161,33,59,182,10,34,59,1,116,34,59,58,221,34,59,97,70,35,59,116,175,35,59,117,24,36,59,100,129,36,59,63,234,36,59,8,83,37,59,190,187,37,59,97,36,38,59,240,140,38,59,109,245,38,59,215,93,39,59,46,198,39,59,114,46,
40,59,163,150,40,59,192,254,40,59,202,102,41,59,193,206,41,59,165,54,42,59,117,158,42,59,49,6,43,59,219,109,43,59,113,213,43,59,243,60,44,59,98,164,44,59,189,11,45,59,4,115,45,59,56,218,45,59,88,65,46,59,100,168,46,59,92,15,47,59,65,118,47,59,17,221,47,59,206,67,48,59,118,170,48,59,11,17,49,59,139,119,49,59,248,221,49,59,80,68,50,59,148,170,50,59,195,16,51,59,223,118,51,59,230,220,51,59,217,66,52,59,183,168,52,59,129,14,53,59,54,116,53,59,215,217,53,59,99,63,54,59,219,164,54,59,62,10,55,59,140,111,
55,59,197,212,55,59,234,57,56,59,250,158,56,59,245,3,57,59,219,104,57,59,172,205,57,59,104,50,58,59,15,151,58,59,161,251,58,59,30,96,59,59,134,196,59,59,217,40,60,59,22,141,60,59,62,241,60,59,81,85,61,59,78,185,61,59,54,29,62,59,9,129,62,59,198,228,62,59,109,72,63,59,255,171,63,59,124,15,64,59,226,114,64,59,51,214,64,59,111,57,65,59,148,156,65,59,164,255,65,59,158,98,66,59,130,197,66,59,80,40,67,59,8,139,67,59,170,237,67,59,55,80,68,59,173,178,68,59,12,21,69,59,86,119,69,59,138,217,69,59,167,59,70,
59,174,157,70,59,159,255,70,59,121,97,71,59,61,195,71,59,235,36,72,59,130,134,72,59,2,232,72,59,108,73,73,59,191,170,73,59,252,11,74,59,34,109,74,59,49,206,74,59,42,47,75,59,12,144,75,59,214,240,75,59,138,81,76,59,40,178,76,59,174,18,77,59,29,115,77,59,117,211,77,59,182,51,78,59,224,147,78,59,243,243,78,59,239,83,79,59,211,179,79,59,160,19,80,59,86,115,80,59,245,210,80,59,124,50,81,59,235,145,81,59,68,241,81,59,132,80,82,59,174,175,82,59,191,14,83,59,185,109,83,59,156,204,83,59,102,43,84,59,25,138,
84,59,181,232,84,59,56,71,85,59,164,165,85,59,247,3,86,59,51,98,86,59,87,192,86,59,99,30,87,59,86,124,87,59,50,218,87,59,246,55,88,59,161,149,88,59,53,243,88,59,176,80,89,59,18,174,89,59,93,11,90,59,143,104,90,59,169,197,90,59,170,34,91,59,147,127,91,59,100,220,91,59,28,57,92,59,187,149,92,59,66,242,92,59,176,78,93,59,6,171,93,59,67,7,94,59,103,99,94,59,114,191,94,59,100,27,95,59,62,119,95,59,255,210,95,59,166,46,96,59,53,138,96,59,171,229,96,59,8,65,97,59,76,156,97,59,118,247,97,59,136,82,98,59,
128,173,98,59,95,8,99,59,37,99,99,59,209,189,99,59,100,24,100,59,222,114,100,59,62,205,100,59,133,39,101,59,179,129,101,59,198,219,101,59,193,53,102,59,162,143,102,59,105,233,102,59,22,67,103,59,170,156,103,59,36,246,103,59,132,79,104,59,203,168,104,59,248,1,105,59,10,91,105,59,3,180,105,59,226,12,106,59,167,101,106,59,82,190,106,59,227,22,107,59,89,111,107,59,182,199,107,59,249,31,108,59,33,120,108,59,47,208,108,59,35,40,109,59,252,127,109,59,187,215,109,59,96,47,110,59,234,134,110,59,90,222,110,
59,176,53,111,59,235,140,111,59,11,228,111,59,17,59,112,59,252,145,112,59,205,232,112,59,130,63,113,59,29,150,113,59,158,236,113,59,3,67,114,59,78,153,114,59,126,239,114,59,147,69,115,59,141,155,115,59,108,241,115,59,48,71,116,59,217,156,116,59,103,242,116,59,218,71,117,59,50,157,117,59,110,242,117,59,143,71,118,59,150,156,118,59,128,241,118,59,80,70,119,59,4,155,119,59,157,239,119,59,26,68,120,59,124,152,120,59,195,236,120,59,238,64,121,59,253,148,121,59,241,232,121,59,201,60,122,59,134,144,122,
59,39,228,122,59,172,55,123,59,21,139,123,59,99,222,123,59,149,49,124,59,171,132,124,59,165,215,124,59,131,42,125,59,69,125,125,59,236,207,125,59,118,34,126,59,228,116,126,59,54,199,126,59,108,25,127,59,134,107,127,59,132,189,127,59,179,7,128,59,149,48,128,59,106,89,128,59,48,130,128,59,232,170,128,59,146,211,128,59,46,252,128,59,188,36,129,59,59,77,129,59,172,117,129,59,15,158,129,59,99,198,129,59,170,238,129,59,226,22,130,59,11,63,130,59,38,103,130,59,51,143,130,59,50,183,130,59,34,223,130,59,4,
7,131,59,215,46,131,59,156,86,131,59,82,126,131,59,250,165,131,59,147,205,131,59,30,245,131,59,155,28,132,59,8,68,132,59,104,107,132,59,184,146,132,59,250,185,132,59,46,225,132,59,83,8,133,59,105,47,133,59,113,86,133,59,106,125,133,59,84,164,133,59,48,203,133,59,252,241,133,59,187,24,134,59,106,63,134,59,11,102,134,59,157,140,134,59,32,179,134,59,148,217,134,59,249,255,134,59,80,38,135,59,152,76,135,59,209,114,135,59,251,152,135,59,22,191,135,59,34,229,135,59,32,11,136,59,14,49,136,59,237,86,136,
59,190,124,136,59,127,162,136,59,50,200,136,59,213,237,136,59,106,19,137,59,239,56,137,59,102,94,137,59,205,131,137,59,37,169,137,59,110,206,137,59,168,243,137,59,211,24,138,59,239,61,138,59,251,98,138,59,249,135,138,59,231,172,138,59,198,209,138,59,149,246,138,59,86,27,139,59,7,64,139,59,169,100,139,59,60,137,139,59,191,173,139,59,51,210,139,59,152,246,139,59,238,26,140,59,52,63,140,59,106,99,140,59,146,135,140,59,170,171,140,59,178,207,140,59,171,243,140,59,149,23,141,59,111,59,141,59,58,95,141,
59,245,130,141,59,161,166,141,59,61,202,141,59,202,237,141,59,71,17,142,59,181,52,142,59,19,88,142,59,98,123,142,59,161,158,142,59,208,193,142,59,240,228,142,59,0,8,143,59,0,43,143,59,241,77,143,59,210,112,143,59,164,147,143,59,101,182,143,59,23,217,143,59,186,251,143,59,76,30,144,59,207,64,144,59,66,99,144,59,165,133,144,59,249,167,144,59,60,202,144,59,112,236,144,59,148,14,145,59,168,48,145,59,172,82,145,59,161,116,145,59,133,150,145,59,90,184,145,59,31,218,145,59,211,251,145,59,120,29,146,59,13,
63,146,59,146,96,146,59,7,130,146,59,107,163,146,59,192,196,146,59,5,230,146,59,58,7,147,59,95,40,147,59,115,73,147,59,120,106,147,59,108,139,147,59,81,172,147,59,37,205,147,59,233,237,147,59,157,14,148,59,65,47,148,59,213,79,148,59,88,112,148,59,204,144,148,59,47,177,148,59,130,209,148,59,196,241,148,59,247,17,149,59,25,50,149,59,43,82,149,59,45,114,149,59,30,146,149,59,255,177,149,59,208,209,149,59,144,241,149,59,64,17,150,59,224,48,150,59,111,80,150,59,238,111,150,59,93,143,150,59,187,174,150,
59,8,206,150,59,70,237,150,59,115,12,151,59,143,43,151,59,155,74,151,59,150,105,151,59,129,136,151,59,92,167,151,59,38,198,151,59,223,228,151,59,136,3,152,59,33,34,152,59,168,64,152,59,32,95,152,59,134,125,152,59,220,155,152,59,34,186,152,59,86,216,152,59,123,246,152,59,142,20,153,59,145,50,153,59,131,80,153,59,101,110,153,59,53,140,153,59,246,169,153,59,165,199,153,59,68,229,153,59,210,2,154,59,79,32,154,59,187,61,154,59,23,91,154,59,98,120,154,59,156,149,154,59,197,178,154,59,222,207,154,59,229,
236,154,59,220,9,155,59,194,38,155,59,151,67,155,59,91,96,155,59,14,125,155,59,177,153,155,59,66,182,155,59,195,210,155,59,51,239,155,59,145,11,156,59,223,39,156,59,28,68,156,59,72,96,156,59,99,124,156,59,108,152,156,59,101,180,156,59,77,208,156,59,36,236,156,59,234,7,157,59,158,35,157,59,66,63,157,59,213,90,157,59,86,118,157,59,199,145,157,59,38,173,157,59,116,200,157,59,177,227,157,59,221,254,157,59,248,25,158,59,1,53,158,59,250,79,158,59,225,106,158,59,183,133,158,59,124,160,158,59,48,187,158,
59,210,213,158,59,100,240,158,59,228,10,159,59,82,37,159,59,176,63,159,59,252,89,159,59,55,116,159,59,97,142,159,59,121,168,159,59,128,194,159,59,118,220,159,59,91,246,159,59,46,16,160,59,239,41,160,59,160,67,160,59,63,93,160,59,204,118,160,59,73,144,160,59,179,169,160,59,13,195,160,59,85,220,160,59,140,245,160,59,177,14,161,59,196,39,161,59,199,64,161,59,183,89,161,59,151,114,161,59,101,139,161,59,33,164,161,59,204,188,161,59,101,213,161,59,237,237,161,59,99,6,162,59,200,30,162,59,27,55,162,59,93,
79,162,59,141,103,162,59,171,127,162,59,184,151,162,59,179,175,162,59,157,199,162,59,117,223,162,59,60,247,162,59,240,14,163,59,148,38,163,59,37,62,163,59,165,85,163,59,19,109,163,59,112,132,163,59,186,155,163,59,244,178,163,59,27,202,163,59,49,225,163,59,53,248,163,59,39,15,164,59,8,38,164,59,214,60,164,59,147,83,164,59,63,106,164,59,216,128,164,59,96,151,164,59,214,173,164,59,58,196,164,59,140,218,164,59,205,240,164,59,251,6,165,59,24,29,165,59,35,51,165,59,28,73,165,59,3,95,165,59,217,116,165,
59,156,138,165,59,78,160,165,59,238,181,165,59,124,203,165,59,248,224,165,59,98,246,165,59,186,11,166,59,0,33,166,59,52,54,166,59,86,75,166,59,103,96,166,59,101,117,166,59,82,138,166,59,44,159,166,59,244,179,166,59,171,200,166,59,79,221,166,59,226,241,166,59,98,6,167,59,209,26,167,59,45,47,167,59,119,67,167,59,176,87,167,59,214,107,167,59,234,127,167,59,236,147,167,59,220,167,167,59,186,187,167,59,134,207,167,59,63,227,167,59,231,246,167,59,125,10,168,59,0,30,168,59,113,49,168,59,208,68,168,59,29,
88,168,59,88,107,168,59,129,126,168,59,151,145,168,59,156,164,168,59,142,183,168,59,110,202,168,59,59,221,168,59,247,239,168,59,160,2,169,59,55,21,169,59,188,39,169,59,47,58,169,59,143,76,169,59,222,94,169,59,26,113,169,59,67,131,169,59,91,149,169,59,96,167,169,59,83,185,169,59,51,203,169,59,2,221,169,59,190,238,169,59,104,0,170,59,255,17,170,59,132,35,170,59,247,52,170,59,87,70,170,59,165,87,170,59,225,104,170,59,11,122,170,59,34,139,170,59,39,156,170,59,25,173,170,59,249,189,170,59,198,206,170,
59,130,223,170,59,43,240,170,59,193,0,171,59,69,17,171,59,183,33,171,59,22,50,171,59,99,66,171,59,157,82,171,59,197,98,171,59,219,114,171,59,222,130,171,59,206,146,171,59,172,162,171,59,120,178,171,59,49,194,171,59,216,209,171,59,108,225,171,59,238,240,171,59,94,0,172,59,186,15,172,59,5,31,172,59,60,46,172,59,98,61,172,59,117,76,172,59,117,91,172,59,99,106,172,59,62,121,172,59,6,136,172,59,189,150,172,59,96,165,172,59,241,179,172,59,112,194,172,59,220,208,172,59,53,223,172,59,124,237,172,59,176,251,
172,59,209,9,173,59,224,23,173,59,221,37,173,59,199,51,173,59,158,65,173,59,99,79,173,59,21,93,173,59,180,106,173,59,65,120,173,59,187,133,173,59,34,147,173,59,119,160,173,59,185,173,173,59,233,186,173,59,6,200,173,59,16,213,173,59,8,226,173,59,237,238,173,59,191,251,173,59,127,8,174,59,43,21,174,59,198,33,174,59,77,46,174,59,194,58,174,59,36,71,174,59,116,83,174,59,177,95,174,59,219,107,174,59,242,119,174,59,247,131,174,59,232,143,174,59,200,155,174,59,148,167,174,59,78,179,174,59,245,190,174,59,
137,202,174,59,10,214,174,59,121,225,174,59,213,236,174,59,30,248,174,59,85,3,175,59,121,14,175,59,138,25,175,59,136,36,175,59,115,47,175,59,76,58,175,59,18,69,175,59,197,79,175,59,101,90,175,59,242,100,175,59,109,111,175,59,213,121,175,59,42,132,175,59,108,142,175,59,156,152,175,59,184,162,175,59,194,172,175,59,185,182,175,59,157,192,175,59,111,202,175,59,45,212,175,59,217,221,175,59,114,231,175,59,248,240,175,59,107,250,175,59,203,3,176,59,25,13,176,59,83,22,176,59,123,31,176,59,144,40,176,59,146,
49,176,59,129,58,176,59,94,67,176,59,39,76,176,59,222,84,176,59,129,93,176,59,18,102,176,59,144,110,176,59,251,118,176,59,84,127,176,59,153,135,176,59,203,143,176,59,235,151,176,59,247,159,176,59,241,167,176,59,216,175,176,59,172,183,176,59,109,191,176,59,27,199,176,59,182,206,176,59,63,214,176,59,180,221,176,59,22,229,176,59,102,236,176,59,163,243,176,59,204,250,176,59,227,1,177,59,231,8,177,59,216,15,177,59,182,22,177,59,129,29,177,59,57,36,177,59,222,42,177,59,113,49,177,59,240,55,177,59,92,62,
177,59,182,68,177,59,252,74,177,59,48,81,177,59,80,87,177,59,94,93,177,59,89,99,177,59,64,105,177,59,21,111,177,59,215,116,177,59,134,122,177,59,34,128,177,59,171,133,177,59,33,139,177,59,132,144,177,59,212,149,177,59,17,155,177,59,59,160,177,59,82,165,177,59,86,170,177,59,72,175,177,59,38,180,177,59,241,184,177,59,169,189,177,59,79,194,177,59,225,198,177,59,96,203,177,59,205,207,177,59,38,212,177,59,109,216,177,59,160,220,177,59,192,224,177,59,206,228,177,59,200,232,177,59,176,236,177,59,132,240,
177,59,70,244,177,59,244,247,177,59,144,251,177,59,25,255,177,59,142,2,178,59,241,5,178,59,64,9,178,59,125,12,178,59,167,15,178,59,189,18,178,59,193,21,178,59,177,24,178,59,143,27,178,59,90,30,178,59,17,33,178,59,182,35,178,59,72,38,178,59,199,40,178,59,50,43,178,59,139,45,178,59,209,47,178,59,3,50,178,59,35,52,178,59,48,54,178,59,41,56,178,59,16,58,178,59,228,59,178,59,165,61,178,59,82,63,178,59,237,64,178,59,117,66,178,59,234,67,178,59,76,69,178,59,154,70,178,59,214,71,178,59,255,72,178,59,21,74,
178,59,24,75,178,59,7,76,178,59,228,76,178,59,174,77,178,59,101,78,178,59,9,79,178,59,154,79,178,59,24,80,178,59,131,80,178,59,219,80,178,59,32,81,178,59,82,81,178,59,112,81,178,59,124,81,178,59,118,81,178,59,92,81,178,59,47,81,178,59,239,80,178,59,156,80,178,59,54,80,178,59,189,79,178,59,49,79,178,59,147,78,178,59,225,77,178,59,28,77,178,59,68,76,178,59,90,75,178,59,92,74,178,59,75,73,178,59,40,72,178,59,241,70,178,59,168,69,178,59,75,68,178,59,220,66,178,59,90,65,178,59,196,63,178,59,28,62,178,
59,97,60,178,59,147,58,178,59,177,56,178,59,189,54,178,59,182,52,178,59,156,50,178,59,112,48,178,59,48,46,178,59,221,43,178,59,119,41,178,59,255,38,178,59,115,36,178,59,212,33,178,59,35,31,178,59,95,28,178,59,135,25,178,59,157,22,178,59,160,19,178,59,144,16,178,59,109,13,178,59,55,10,178,59,238,6,178,59,146,3,178,59,36,0,178,59,162,252,177,59,14,249,177,59,102,245,177,59,172,241,177,59,223,237,177,59,255,233,177,59,12,230,177,59,6,226,177,59,238,221,177,59,194,217,177,59,132,213,177,59,50,209,177,
59,206,204,177,59,87,200,177,59,205,195,177,59,48,191,177,59,129,186,177,59,190,181,177,59,233,176,177,59,0,172,177,59,5,167,177,59,247,161,177,59,215,156,177,59,163,151,177,59,92,146,177,59,3,141,177,59,151,135,177,59,24,130,177,59,134,124,177,59,226,118,177,59,42,113,177,59,96,107,177,59,131,101,177,59,147,95,177,59,144,89,177,59,123,83,177,59,82,77,177,59,23,71,177,59,201,64,177,59,104,58,177,59,245,51,177,59,111,45,177,59,214,38,177,59,42,32,177,59,107,25,177,59,154,18,177,59,182,11,177,59,191,
4,177,59,181,253,176,59,153,246,176,59,106,239,176,59,40,232,176,59,211,224,176,59,108,217,176,59,241,209,176,59,101,202,176,59,197,194,176,59,19,187,176,59,78,179,176,59,118,171,176,59,139,163,176,59,142,155,176,59,126,147,176,59,92,139,176,59,39,131,176,59,223,122,176,59,132,114,176,59,23,106,176,59,151,97,176,59,4,89,176,59,95,80,176,59,167,71,176,59,220,62,176,59,255,53,176,59,15,45,176,59,12,36,176,59,247,26,176,59,207,17,176,59,149,8,176,59,72,255,175,59,232,245,175,59,117,236,175,59],"i8",
4,y.a+430080);
Q([240,226,175,59,89,217,175,59,175,207,175,59,242,197,175,59,35,188,175,59,65,178,175,59,76,168,175,59,69,158,175,59,43,148,175,59,255,137,175,59,192,127,175,59,111,117,175,59,11,107,175,59,148,96,175,59,11,86,175,59,112,75,175,59,194,64,175,59,1,54,175,59,46,43,175,59,72,32,175,59,80,21,175,59,69,10,175,59,40,255,174,59,249,243,174,59,182,232,174,59,98,221,174,59,251,209,174,59,129,198,174,59,245,186,174,59,87,175,174,59,166,163,174,59,226,151,174,59,12,140,174,59,36,128,174,59,41,116,174,59,28,
104,174,59,253,91,174,59,203,79,174,59,134,67,174,59,48,55,174,59,199,42,174,59,75,30,174,59,189,17,174,59,29,5,174,59,106,248,173,59,165,235,173,59,206,222,173,59,228,209,173,59,232,196,173,59,217,183,173,59,185,170,173,59,133,157,173,59,64,144,173,59,232,130,173,59,126,117,173,59,2,104,173,59,115,90,173,59,210,76,173,59,31,63,173,59,90,49,173,59,130,35,173,59,152,21,173,59,155,7,173,59,141,249,172,59,108,235,172,59,57,221,172,59,244,206,172,59,156,192,172,59,51,178,172,59,183,163,172,59,41,149,
172,59,137,134,172,59,214,119,172,59,17,105,172,59,59,90,172,59,82,75,172,59,87,60,172,59,73,45,172,59,42,30,172,59,248,14,172,59,180,255,171,59,95,240,171,59,247,224,171,59,125,209,171,59,240,193,171,59,82,178,171,59,162,162,171,59,223,146,171,59,11,131,171,59,36,115,171,59,44,99,171,59,33,83,171,59,4,67,171,59,214,50,171,59,149,34,171,59,66,18,171,59,221,1,171,59,102,241,170,59,222,224,170,59,67,208,170,59,150,191,170,59,215,174,170,59,7,158,170,59,36,141,170,59,47,124,170,59,41,107,170,59,16,90,
170,59,230,72,170,59,169,55,170,59,91,38,170,59,251,20,170,59,137,3,170,59,5,242,169,59,111,224,169,59,199,206,169,59,14,189,169,59,66,171,169,59,101,153,169,59,118,135,169,59,117,117,169,59,98,99,169,59,62,81,169,59,8,63,169,59,191,44,169,59,101,26,169,59,250,7,169,59,124,245,168,59,237,226,168,59,76,208,168,59,153,189,168,59,213,170,168,59,255,151,168,59,23,133,168,59,29,114,168,59,18,95,168,59,245,75,168,59,198,56,168,59,134,37,168,59,51,18,168,59,208,254,167,59,90,235,167,59,211,215,167,59,59,
196,167,59,145,176,167,59,213,156,167,59,7,137,167,59,40,117,167,59,55,97,167,59,53,77,167,59,33,57,167,59,252,36,167,59,197,16,167,59,125,252,166,59,35,232,166,59,183,211,166,59,58,191,166,59,172,170,166,59,12,150,166,59,90,129,166,59,151,108,166,59,195,87,166,59,221,66,166,59,230,45,166,59,221,24,166,59,195,3,166,59,151,238,165,59,90,217,165,59,12,196,165,59,172,174,165,59,59,153,165,59,185,131,165,59,37,110,165,59,127,88,165,59,201,66,165,59,1,45,165,59,40,23,165,59,61,1,165,59,65,235,164,59,52,
213,164,59,22,191,164,59,230,168,164,59,165,146,164,59,83,124,164,59,240,101,164,59,123,79,164,59,245,56,164,59,94,34,164,59,182,11,164,59,252,244,163,59,50,222,163,59,86,199,163,59,105,176,163,59,107,153,163,59,92,130,163,59,59,107,163,59,10,84,163,59,199,60,163,59,116,37,163,59,15,14,163,59,153,246,162,59,18,223,162,59,122,199,162,59,209,175,162,59,23,152,162,59,76,128,162,59,112,104,162,59,131,80,162,59,133,56,162,59,118,32,162,59,86,8,162,59,37,240,161,59,227,215,161,59,144,191,161,59,44,167,
161,59,184,142,161,59,50,118,161,59,156,93,161,59,244,68,161,59,60,44,161,59,115,19,161,59,153,250,160,59,174,225,160,59,179,200,160,59,166,175,160,59,137,150,160,59,91,125,160,59,28,100,160,59,205,74,160,59,109,49,160,59,252,23,160,59,122,254,159,59,231,228,159,59,68,203,159,59,144,177,159,59,204,151,159,59,246,125,159,59,17,100,159,59,26,74,159,59,19,48,159,59,251,21,159,59,210,251,158,59,153,225,158,59,80,199,158,59,245,172,158,59,139,146,158,59,15,120,158,59,131,93,158,59,231,66,158,59,58,40,
158,59,124,13,158,59,174,242,157,59,208,215,157,59,225,188,157,59,225,161,157,59,209,134,157,59,177,107,157,59,128,80,157,59,63,53,157,59,238,25,157,59,140,254,156,59,25,227,156,59,150,199,156,59,3,172,156,59,96,144,156,59,172,116,156,59,232,88,156,59,20,61,156,59,47,33,156,59,58,5,156,59,53,233,155,59,31,205,155,59,250,176,155,59,196,148,155,59,125,120,155,59,39,92,155,59,192,63,155,59,74,35,155,59,195,6,155,59,44,234,154,59,132,205,154,59,205,176,154,59,5,148,154,59,46,119,154,59,70,90,154,59,78,
61,154,59,70,32,154,59,47,3,154,59,7,230,153,59,207,200,153,59,135,171,153,59,47,142,153,59,199,112,153,59,79,83,153,59,199,53,153,59,47,24,153,59,135,250,152,59,207,220,152,59,8,191,152,59,48,161,152,59,72,131,152,59,81,101,152,59,74,71,152,59,51,41,152,59,12,11,152,59,213,236,151,59,143,206,151,59,57,176,151,59,211,145,151,59,93,115,151,59,215,84,151,59,66,54,151,59,157,23,151,59,232,248,150,59,35,218,150,59,79,187,150,59,108,156,150,59,120,125,150,59,117,94,150,59,98,63,150,59,64,32,150,59,14,
1,150,59,204,225,149,59,123,194,149,59,26,163,149,59,170,131,149,59,42,100,149,59,155,68,149,59,252,36,149,59,78,5,149,59,144,229,148,59,195,197,148,59,230,165,148,59,250,133,148,59,254,101,148,59,243,69,148,59,217,37,148,59,175,5,148,59,118,229,147,59,45,197,147,59,214,164,147,59,110,132,147,59,248,99,147,59,114,67,147,59,221,34,147,59,57,2,147,59,133,225,146,59,194,192,146,59,240,159,146,59,15,127,146,59,31,94,146,59,31,61,146,59,16,28,146,59,242,250,145,59,197,217,145,59,137,184,145,59,62,151,
145,59,227,117,145,59,122,84,145,59,1,51,145,59,121,17,145,59,227,239,144,59,61,206,144,59,136,172,144,59,197,138,144,59,242,104,144,59,16,71,144,59,32,37,144,59,32,3,144,59,18,225,143,59,245,190,143,59,200,156,143,59,141,122,143,59,67,88,143,59,235,53,143,59,131,19,143,59,12,241,142,59,135,206,142,59,243,171,142,59,80,137,142,59,159,102,142,59,223,67,142,59,16,33,142,59,50,254,141,59,69,219,141,59,74,184,141,59,65,149,141,59,40,114,141,59,1,79,141,59,203,43,141,59,135,8,141,59,52,229,140,59,211,
193,140,59,99,158,140,59,228,122,140,59,87,87,140,59,188,51,140,59,18,16,140,59,89,236,139,59,146,200,139,59,189,164,139,59,217,128,139,59,231,92,139,59,230,56,139,59,215,20,139,59,185,240,138,59,142,204,138,59,84,168,138,59,11,132,138,59,180,95,138,59,79,59,138,59,220,22,138,59,90,242,137,59,203,205,137,59,44,169,137,59,128,132,137,59,198,95,137,59,253,58,137,59,38,22,137,59,65,241,136,59,78,204,136,59,77,167,136,59,62,130,136,59,32,93,136,59,245,55,136,59,187,18,136,59,116,237,135,59,30,200,135,
59,187,162,135,59,73,125,135,59,202,87,135,59,60,50,135,59,161,12,135,59,248,230,134,59,64,193,134,59,123,155,134,59,168,117,134,59,199,79,134,59,217,41,134,59,220,3,134,59,210,221,133,59,186,183,133,59,148,145,133,59,96,107,133,59,31,69,133,59,208,30,133,59,115,248,132,59,8,210,132,59,144,171,132,59,10,133,132,59,119,94,132,59,214,55,132,59,39,17,132,59,107,234,131,59,161,195,131,59,201,156,131,59,228,117,131,59,242,78,131,59,242,39,131,59,228,0,131,59,201,217,130,59,161,178,130,59,107,139,130,59,
40,100,130,59,215,60,130,59,121,21,130,59,14,238,129,59,149,198,129,59,15,159,129,59,123,119,129,59,218,79,129,59,44,40,129,59,113,0,129,59,168,216,128,59,211,176,128,59,240,136,128,59,255,96,128,59,2,57,128,59,247,16,128,59,191,209,127,59,118,129,127,59,18,49,127,59,147,224,126,59,251,143,126,59,73,63,126,59,124,238,125,59,150,157,125,59,149,76,125,59,122,251,124,59,70,170,124,59,247,88,124,59,143,7,124,59,13,182,123,59,113,100,123,59,187,18,123,59,236,192,122,59,2,111,122,59,255,28,122,59,227,202,
121,59,173,120,121,59,93,38,121,59,244,211,120,59,113,129,120,59,213,46,120,59,32,220,119,59,81,137,119,59,104,54,119,59,103,227,118,59,76,144,118,59,24,61,118,59,202,233,117,59,100,150,117,59,228,66,117,59,75,239,116,59,153,155,116,59,207,71,116,59,235,243,115,59,238,159,115,59,216,75,115,59,170,247,114,59,98,163,114,59,2,79,114,59,137,250,113,59,247,165,113,59,77,81,113,59,138,252,112,59,174,167,112,59,185,82,112,59,173,253,111,59,135,168,111,59,73,83,111,59,243,253,110,59,132,168,110,59,253,82,
110,59,93,253,109,59,166,167,109,59,214,81,109,59,237,251,108,59,237,165,108,59,212,79,108,59,163,249,107,59,91,163,107,59,250,76,107,59,129,246,106,59,240,159,106,59,71,73,106,59,135,242,105,59,174,155,105,59,190,68,105,59,182,237,104,59,150,150,104,59,94,63,104,59,15,232,103,59,168,144,103,59,42,57,103,59,148,225,102,59,230,137,102,59,33,50,102,59,69,218,101,59,81,130,101,59,70,42,101,59,35,210,100,59,233,121,100,59,152,33,100,59,48,201,99,59,176,112,99,59,26,24,99,59,108,191,98,59,167,102,98,59,
203,13,98,59,216,180,97,59,207,91,97,59,174,2,97,59,118,169,96,59,40,80,96,59,195,246,95,59,71,157,95,59,180,67,95,59,11,234,94,59,75,144,94,59,116,54,94,59,135,220,93,59,131,130,93,59,105,40,93,59,56,206,92,59,241,115,92,59,148,25,92,59,32,191,91,59,150,100,91,59,245,9,91,59,63,175,90,59,114,84,90,59,143,249,89,59,150,158,89,59,135,67,89,59,98,232,88,59,38,141,88,59,213,49,88,59,110,214,87,59,241,122,87,59,95,31,87,59,182,195,86,59,248,103,86,59,36,12,86,59,58,176,85,59,59,84,85,59,38,248,84,59,
252,155,84,59,188,63,84,59,102,227,83,59,252,134,83,59,123,42,83,59,230,205,82,59,59,113,82,59,123,20,82,59,165,183,81,59,186,90,81,59,187,253,80,59,166,160,80,59,123,67,80,59,60,230,79,59,232,136,79,59,127,43,79,59,1,206,78,59,110,112,78,59,199,18,78,59,10,181,77,59,57,87,77,59,83,249,76,59,88,155,76,59,73,61,76,59,37,223,75,59,236,128,75,59,159,34,75,59,62,196,74,59,200,101,74,59,61,7,74,59,158,168,73,59,235,73,73,59,36,235,72,59,72,140,72,59,89,45,72,59,85,206,71,59,60,111,71,59,16,16,71,59,208,
176,70,59,124,81,70,59,20,242,69,59,152,146,69,59,8,51,69,59,100,211,68,59,172,115,68,59,225,19,68,59,2,180,67,59,15,84,67,59,9,244,66,59,239,147,66,59,193,51,66,59,128,211,65,59,43,115,65,59,195,18,65,59,72,178,64,59,185,81,64,59,23,241,63,59,98,144,63,59,154,47,63,59,190,206,62,59,207,109,62,59,205,12,62,59,184,171,61,59,144,74,61,59,85,233,60,59,7,136,60,59,167,38,60,59,51,197,59,59,173,99,59,59,19,2,59,59,103,160,58,59,169,62,58,59,215,220,57,59,243,122,57,59,253,24,57,59,244,182,56,59,217,84,
56,59,171,242,55,59,106,144,55,59,24,46,55,59,179,203,54,59,59,105,54,59,178,6,54,59,22,164,53,59,105,65,53,59,169,222,52,59,215,123,52,59,243,24,52,59,253,181,51,59,245,82,51,59,219,239,50,59,175,140,50,59,114,41,50,59,35,198,49,59,194,98,49,59,79,255,48,59,203,155,48,59,53,56,48,59,142,212,47,59,213,112,47,59,10,13,47,59,46,169,46,59,65,69,46,59,67,225,45,59,51,125,45,59,18,25,45,59,223,180,44,59,156,80,44,59,71,236,43,59,225,135,43,59,106,35,43,59,227,190,42,59,74,90,42,59,160,245,41,59,230,144,
41,59,26,44,41,59,62,199,40,59,81,98,40,59,83,253,39,59,69,152,39,59,38,51,39,59,247,205,38,59,183,104,38,59,102,3,38,59,5,158,37,59,148,56,37,59,18,211,36,59,128,109,36,59,222,7,36,59,43,162,35,59,104,60,35,59,149,214,34,59,178,112,34,59,191,10,34,59,188,164,33,59,169,62,33,59,134,216,32,59,83,114,32,59,16,12,32,59,190,165,31,59,91,63,31,59,233,216,30,59,104,114,30,59,214,11,30,59,53,165,29,59,133,62,29,59,197,215,28,59,245,112,28,59,23,10,28,59,40,163,27,59,43,60,27,59,30,213,26,59,2,110,26,59,
215,6,26,59,156,159,25,59,83,56,25,59,250,208,24,59,147,105,24,59,28,2,24,59,151,154,23,59,2,51,23,59,95,203,22,59,173,99,22,59,236,251,21,59,29,148,21,59,62,44,21,59,82,196,20,59,86,92,20,59,76,244,19,59,52,140,19,59,13,36,19,59,216,187,18,59,148,83,18,59,66,235,17,59,226,130,17,59,116,26,17,59,247,177,16,59,108,73,16,59,211,224,15,59,44,120,15,59,119,15,15,59,180,166,14,59,228,61,14,59,5,213,13,59,24,108,13,59,30,3,13,59,22,154,12,59,0,49,12,59,221,199,11,59,172,94,11,59,109,245,10,59,33,140,10,
59,199,34,10,59,96,185,9,59,236,79,9,59,106,230,8,59,219,124,8,59,63,19,8,59,149,169,7,59,223,63,7,59,27,214,6,59,74,108,6,59,108,2,6,59,129,152,5,59,137,46,5,59,132,196,4,59,115,90,4,59,84,240,3,59,41,134,3,59,241,27,3,59,173,177,2,59,91,71,2,59,254,220,1,59,147,114,1,59,28,8,1,59,153,157,0,59,9,51,0,59,219,144,255,58,138,187,254,58,33,230,253,58,159,16,253,58,5,59,252,58,82,101,251,58,136,143,250,58,165,185,249,58,170,227,248,58,152,13,248,58,110,55,247,58,43,97,246,58,210,138,245,58,96,180,244,
58,216,221,243,58,55,7,243,58,128,48,242,58,177,89,241,58,204,130,240,58,207,171,239,58,187,212,238,58,145,253,237,58,80,38,237,58,248,78,236,58,137,119,235,58,4,160,234,58,105,200,233,58,184,240,232,58,240,24,232,58,18,65,231,58,30,105,230,58,20,145,229,58,245,184,228,58,191,224,227,58,116,8,227,58,20,48,226,58,158,87,225,58,18,127,224,58,114,166,223,58,188,205,222,58,241,244,221,58,17,28,221,58,28,67,220,58,18,106,219,58,244,144,218,58,193,183,217,58,121,222,216,58,29,5,216,58,172,43,215,58,40,
82,214,58,143,120,213,58,225,158,212,58,32,197,211,58,75,235,210,58,99,17,210,58,102,55,209,58,86,93,208,58,50,131,207,58,251,168,206,58,176,206,205,58,82,244,204,58,225,25,204,58,93,63,203,58,198,100,202,58,28,138,201,58,95,175,200,58,144,212,199,58,173,249,198,58,185,30,198,58,177,67,197,58,152,104,196,58,108,141,195,58,46,178,194,58,222,214,193,58,124,251,192,58,8,32,192,58,130,68,191,58,235,104,190,58,66,141,189,58,135,177,188,58,187,213,187,58,222,249,186,58,239,29,186,58,239,65,185,58,222,101,
184,58,188,137,183,58,138,173,182,58,70,209,181,58,242,244,180,58,141,24,180,58,24,60,179,58,146,95,178,58,252,130,177,58,86,166,176,58,159,201,175,58,217,236,174,58,2,16,174,58,28,51,173,58,38,86,172,58,32,121,171,58,10,156,170,58,230,190,169,58,177,225,168,58,110,4,168,58,27,39,167,58,185,73,166,58,72,108,165,58,200,142,164,58,57,177,163,58,156,211,162,58,240,245,161,58,53,24,161,58,108,58,160,58,148,92,159,58,174,126,158,58,186,160,157,58,184,194,156,58,168,228,155,58,138,6,155,58,94,40,154,58,
36,74,153,58,221,107,152,58,136,141,151,58,38,175,150,58,183,208,149,58,58,242,148,58,176,19,148,58,24,53,147,58,116,86,146,58,195,119,145,58,5,153,144,58,59,186,143,58,100,219,142,58,128,252,141,58,144,29,141,58,148,62,140,58,139,95,139,58,118,128,138,58,85,161,137,58,41,194,136,58,240,226,135,58,171,3,135,58,91,36,134,58,0,69,133,58,152,101,132,58,38,134,131,58,168,166,130,58,31,199,129,58,139,231,128,58,235,7,128,58,130,80,126,58,24,145,124,58,153,209,122,58,4,18,121,58,90,82,119,58,155,146,117,
58,199,210,115,58,223,18,114,58,227,82,112,58,210,146,110,58,173,210,108,58,117,18,107,58,40,82,105,58,201,145,103,58,86,209,101,58,208,16,100,58,55,80,98,58,140,143,96,58,206,206,94,58,254,13,93,58,27,77,91,58,39,140,89,58,33,203,87,58,10,10,86,58,225,72,84,58,167,135,82,58,91,198,80,58,0,5,79,58,147,67,77,58,22,130,75,58,137,192,73,58,236,254,71,58,62,61,70,58,130,123,68,58,181,185,66,58,218,247,64,58,239,53,63,58,245,115,61,58,237,177,59,58,214,239,57,58,177,45,56,58,125,107,54,58,60,169,52,58,
237,230,50,58,144,36,49,58,37,98,47,58,174,159,45,58,41,221,43,58,152,26,42,58,250,87,40,58,79,149,38,58,152,210,36,58,213,15,35,58,6,77,33,58,44,138,31,58,69,199,29,58,84,4,28,58,87,65,26,58,79,126,24,58,61,187,22,58,32,248,20,58,248,52,19,58,198,113,17,58,138,174,15,58,69,235,13,58,245,39,12,58,157,100,10,58,59,161,8,58,207,221,6,58,91,26,5,58,222,86,3,58,89,147,1,58,151,159,255,57,107,24,252,57,47,145,248,57,228,9,245,57,138,130,241,57,32,251,237,57,169,115,234,57,35,236,230,57,143,100,227,57,
239,220,223,57,65,85,220,57,135,205,216,57,192,69,213,57,238,189,209,57,16,54,206,57,40,174,202,57,52,38,199,57,55,158,195,57,47,22,192,57,30,142,188,57,3,6,185,57,224,125,181,57,181,245,177,57,129,109,174,57,70,229,170,57,3,93,167,57,186,212,163,57,106,76,160,57,20,196,156,57,184,59,153,57,87,179,149,57,240,42,146,57,133,162,142,57,22,26,139,57,163,145,135,57,44,9,132,57,178,128,128,57,107,240,121,57,109,223,114,57,107,206,107,57,102,189,100,57,94,172,93,57,84,155,86,57,74,138,79,57,63,121,72,57,
52,104,65,57,43,87,58,57,36,70,51,57,31,53,44,57,30,36,37,57,33,19,30,57,41,2,23,57,55,241,15,57,76,224,8,57,103,207,1,57,22,125,245,56,110,91,231,56,218,57,217,56,90,24,203,56,241,246,188,56,158,213,174,56,101,180,160,56,70,147,146,56,67,114,132,56,188,162,108,56,48,97,80,56,229,31,52,56,221,222,23,56,58,60,247,55,77,187,190,55,251,58,134,55,145,118,27,55,229,225,41,54,141,8,141,182,162,127,55,183,199,60,148,183,254,184,204,183,57,154,2,184,141,215,30,184,122,20,59,184,251,80,87,184,15,141,115,184,
89,228,135,184,240,1,150,184,75,31,164,184,106,60,178,184,74,89,192,184,234,117,206,184,72,146,220,184,99,174,234,184,58,202,248,184,229,114,3,185,138,128,10,185,10,142,17,185,101,155,24,185,154,168,31,185,168,181,38,185,143,194,45,185,77,207,52,185,226,219,59,185,78,232,66,185,143,244,73,185,164,0,81,185,142,12,88,185,75,24,95,185,219,35,102,185,60,47,109,185,110,58,116,185,113,69,123,185,34,40,129,185,114,173,132,185,169,50,136,185,199,183,139,185,204,60,143,185,182,193,146,185,134,70,150,185,59,
203,153,185,212,79,157,185,82,212,160,185,180,88,164,185,250,220,167,185,35,97,171,185,47,229,174,185,29,105,178,185,238,236,181,185,160,112,185,185,52,244,188,185,169,119,192,185,254,250,195,185,52,126,199,185,74,1,203,185,63,132,206,185,19,7,210,185,199,137,213,185,88,12,217,185,200,142,220,185,21,17,224,185,64,147,227,185,72,21,231,185,44,151,234,185,236,24,238,185,137,154,241,185,1,28,245,185,83,157,248,185,129,30,252,185,137,159,255,185,53,144,1,186,147,80,3,186,221,16,5,186,20,209,6,186,55,
145,8,186,70,81,10,186,65,17,12,186,40,209,13,186,250,144,15,186,184,80,17,186,96,16,19,186,244,207,20,186,114,143,22,186,219,78,24,186,46,14,26,186,108,205,27,186,147,140,29,186,165,75,31,186,160,10,33,186,132,201,34,186,82,136,36,186,9,71,38,186,168,5,40,186,49,196,41,186,162,130,43,186,251,64,45,186,61,255,46,186,102,189,48,186,120,123,50,186,113,57,52,186,81,247,53,186,25,181,55,186,200,114,57,186,93,48,59,186,218,237,60,186,61,171,62,186,134,104,64,186,181,37,66,186,203,226,67,186,198,159,69,
186,166,92,71,186,108,25,73,186,24,214,74,186,168,146,76,186,29,79,78,186,119,11,80,186,182,199,81,186,217,131,83,186,223,63,85,186,202,251,86,186,153,183,88,186,75,115,90,186,225,46,92,186,89,234,93,186,181,165,95,186,244,96,97,186,21,28,99,186,25,215,100,186,255,145,102,186,199,76,104,186,114,7,106,186,253,193,107,186,107,124,109,186,186,54,111,186,234,240,112,186,251,170,114,186,237,100,116,186,191,30,118,186,114,216,119,186,6,146,121,186,121,75,123,186,205,4,125,186,0,190,126,186,137,59,128,186,
2,24,129,186,107,244,129,186,195,208,130,186,11,173,131,186,66,137,132,186,104,101,133,186,125,65,134,186,129,29,135,186,117,249,135,186,87,213,136,186,40,177,137,186,231,140,138,186,150,104,139,186,50,68,140,186,190,31,141,186,55,251,141,186,159,214,142,186,245,177,143,186,57,141,144,186,107,104,145,186,139,67,146,186,152,30,147,186,147,249,147,186,124,212,148,186,83,175,149,186,23,138,150,186,200,100,151,186,102,63,152,186,242,25,153,186,107,244,153,186,208,206,154,186,35,169,155,186,98,131,156,
186,142,93,157,186,167,55,158,186,172,17,159,186,158,235,159,186,124,197,160,186,70,159,161,186,252,120,162,186,159,82,163,186,45,44,164,186,168,5,165,186,14,223,165,186,96,184,166,186,157,145,167,186,198,106,168,186,219,67,169,186,219,28,170,186,198,245,170,186,156,206,171,186,94,167,172,186,10,128,173,186,162,88,174,186,36,49,175,186,145,9,176,186,233,225,176,186,43,186,177,186,87,146,178,186,111,106,179,186,112,66,180,186,91,26,181,186,49,242,181,186,241,201,182,186,154,161,183,186,46,121,184,
186,171,80,185,186,18,40,186,186,99,255,186,186,157,214,187,186,192,173,188,186,205,132,189,186,195,91,190,186,162,50,191,186,106,9,192,186,27,224,192,186,181,182,193,186,56,141,194,186,164,99,195,186,248,57,196,186,53,16,197,186,90,230,197,186,103,188,198,186,93,146,199,186,59,104,200,186,1,62,201,186,175,19,202,186,69,233,202,186,195,190,203,186,40,148,204,186,117,105,205,186,170,62,206,186,198,19,207,186,202,232,207,186,181,189,208,186,135,146,209,186,64,103,210,186,224,59,211,186,103,16,212,186,
213,228,212,186,42,185,213,186,102,141,214,186,136,97,215,186,145,53,216,186,128,9,217,186,85,221,217,186,17,177,218,186,179,132,219,186,58,88,220,186,168,43,221,186,252,254,221,186,54,210,222,186,85,165,223,186,90,120,224,186,69,75,225,186,21,30,226,186,202,240,226,186,101,195,227,186,229,149,228,186,74,104,229,186,148,58,230,186,196,12,231,186,216,222,231,186,208,176,232,186,174,130,233,186,112,84,234,186,22,38,235,186,162,247,235,186,17,201,236,186,101,154,237,186,156,107,238,186,184,60,239,186,
184,13,240,186,156,222,240,186,100,175,241,186,16,128,242,186,159,80,243,186,18,33,244,186,104,241,244,186,161,193,245,186,190,145,246,186,191,97,247,186,162,49,248,186,105,1,249,186,18,209,249,186,158,160,250,186,14,112,251,186,96,63,252,186,148,14,253,186,171,221,253,186,165,172,254,186,129,123,255,186,32,37,0,187,112,140,0,187,177,243,0,187,228,90,1,187,7,194,1,187,27,41,2,187,33,144,2,187,23,247,2,187,254,93,3,187,213,196,3,187,158,43,4,187,87,146,4,187,0,249,4,187,155,95,5,187,38,198,5,187,161,
44,6,187,13,147,6,187,105,249,6,187,182,95,7,187,243,197,7,187,33,44,8,187,62,146,8,187,76,248,8,187,75,94,9,187,57,196,9,187,23,42,10,187,230,143,10,187,164,245,10,187,83,91,11,187,241,192,11,187,127,38,12,187,253,139,12,187,107,241,12,187,201,86,13,187,23,188,13,187,84,33,14,187,129,134,14,187,157,235,14,187,169,80,15,187,164,181,15,187,144,26,16,187,106,127,16,187,52,228,16,187,237,72,17,187,150,173,17,187,45,18,18,187,180,118,18,187,43,219,18,187,144,63,19,187,229,163,19,187,40,8,20,187,91,108,
20,187,124,208,20,187,141,52,21,187,141,152,21,187,123,252,21,187,88,96,22,187,36,196,22,187,223,39,23,187,136,139,23,187,32,239,23,187,167,82,24,187,28,182,24,187,128,25,25,187,211,124,25,187,19,224,25,187,67,67,26,187,96,166,26,187,108,9,27,187,103,108,27,187,79,207,27,187,38,50,28,187,235,148,28,187,158,247,28,187,63,90,29,187,206,188,29,187,76,31,30,187,183,129,30,187,16,228,30,187,87,70,31,187,140,168,31,187,175,10,32,187,192,108,32,187,190,206,32,187,170,48,33,187,131,146,33,187,75,244,33,187,
0,86,34,187,162,183,34,187,50,25,35,187,175,122,35,187,26,220,35,187,114,61,36,187,184,158,36,187,235,255,36,187,11,97,37,187,24,194,37,187,19,35,38,187,250,131,38,187,207,228,38,187,145,69,39,187,64,166,39,187,220,6,40,187,100,103,40,187,218,199,40,187,61,40,41,187,140,136,41,187,200,232,41,187,241,72,42,187,7,169,42,187,9,9,43,187,248,104,43,187,212,200,43,187,156,40,44,187,81,136,44,187,242,231,44,187,127,71,45,187,249,166,45,187,96,6,46,187,178,101,46,187,241,196,46,187,29,36,47,187,52,131,47,
187,56,226,47,187,39,65,48,187,3,160,48,187,203,254,48,187,127,93,49,187,31,188,49,187,171,26,50,187,34,121,50,187,134,215,50,187,213,53,51,187,17,148,51,187,55,242,51,187,74,80,52,187,72,174,52,187,50,12,53,187,8,106,53,187,201,199,53,187,118,37,54,187,14,131,54,187,145,224,54,187,0,62,55,187,91,155,55,187,160,248,55,187,209,85,56,187,238,178,56,187,245,15,57,187,232,108,57,187,197,201,57,187,142,38,58,187,66,131,58,187,225,223,58,187,107,60,59,187,224,152,59,187,64,245,59,187,138,81,60,187,192,
173,60,187,224,9,61,187,235,101,61,187,225,193,61,187,194,29,62,187,141,121,62,187,67,213,62,187,227,48,63,187,110,140,63,187,227,231,63,187,67,67,64,187,142,158,64,187,194,249,64,187,225,84,65,187,235,175,65,187,223,10,66,187,189,101,66,187,133,192,66,187,55,27,67,187,211,117,67,187,90,208,67,187,203,42,68,187,37,133,68,187,106,223,68,187,153,57,69,187,177,147,69,187,180,237,69,187,160,71,70,187,118,161,70,187,54,251,70,187,223,84,71,187,115,174,71,187,240,7,72,187,86,97,72,187,166,186,72,187,224,
19,73,187,3,109,73,187,16,198,73,187,6,31,74,187,230,119,74,187,175,208,74,187,97,41,75,187,253,129,75,187,130,218,75,187,240,50,76,187,71,139,76,187,136,227,76,187,177,59,77,187,196,147,77,187,192,235,77,187,164,67,78,187,114,155,78,187,41,243,78,187,201,74,79,187,81,162,79,187,194,249,79,187,29,81,80,187,96,168,80,187,139,255,80,187,160,86,81,187,157,173,81,187,130,4,82,187,81,91,82,187,7,178,82,187,167,8,83,187,47,95,83,187,159,181,83,187,248,11,84,187,57,98,84,187,98,184,84,187,116,14,85,187,
110,100,85,187,80,186,85,187,27,16,86,187,206,101,86,187,104,187,86,187,235,16,87,187,86,102,87,187,170,187,87,187,229,16,88,187,8,102,88,187,19,187,88,187,6,16,89,187,224,100,89,187,163,185,89,187,77,14,90,187,224,98,90,187,90,183,90,187,187,11,91,187,4,96,91,187,53,180,91,187,78,8,92,187,78,92,92,187,54,176,92,187,5,4,93,187,187,87,93,187,89,171,93,187,223,254,93,187,76,82,94,187,160,165,94,187,219,248,94,187,254,75,95,187,8,159,95,187,249,241,95,187,209,68,96,187,144,151,96,187,55,234,96,187,196,
60,97,187,57,143,97,187,148,225,97,187,215,51,98,187,0,134,98,187,17,216,98,187,8,42,99,187,230,123,99,187,171,205,99,187,86,31,100,187,233,112,100,187,98,194,100,187,194,19,101,187,8,101,101,187,53,182,101,187,72,7,102,187,66,88,102,187,35,169,102,187,234,249,102,187,151,74,103,187,43,155,103,187,166,235,103,187,6,60,104,187,77,140,104,187,122,220,104,187,142,44,105,187,135,124,105,187,103,204,105,187,45,28,106,187,217,107,106,187,107,187,106,187,228,10,107,187,66,90,107,187,134,169,107,187,176,
248,107,187,193,71,108,187,183,150,108,187,147,229,108,187,84,52,109,187,252,130,109,187,137,209,109,187,252,31,110,187,85,110,110,187,147,188,110,187,183,10,111,187,193,88,111,187,176,166,111,187,133,244,111,187,64,66,112,187,223,143,112,187,101,221,112,187,207,42,113,187,31,120,113,187,85,197,113,187,112,18,114,187,112,95,114,187,85,172,114,187,32,249,114,187,208,69,115,187,101,146,115,187,223,222,115,187,62,43,116,187,131,119,116,187,172,195,116,187,186,15,117,187,174,91,117,187,134,167,117,187,
68,243,117,187,230,62,118,187,109,138,118,187,217,213,118,187,42,33,119,187,96,108,119,187,122,183,119,187,121,2,120,187,93,77,120,187,37,152,120,187,210,226,120,187,100,45,121,187,218,119,121,187,53,194,121,187,116,12,122,187,152,86,122,187,160,160,122,187,141,234,122,187,94,52,123,187,20,126,123,187,174,199,123,187,44,17,124,187,142,90,124,187,213,163,124,187,0,237,124,187,15,54,125,187,2,127,125,187,217,199,125,187,149,16,126,187,53,89,126,187,184,161,126,187,32,234,126,187,107,50,127,187,155,
122,127,187,175,194,127,187,83,5,128,187,65,41,128,187,32,77,128,187,242,112,128,187,181,148,128,187,106,184,128,187,18,220,128,187,171,255,128,187,53,35,129,187,178,70,129,187,33,106,129,187,129,141,129,187,211,176,129,187,23,212,129,187,76,247,129,187,116,26,130,187,141,61,130,187,152,96,130,187,148,131,130,187,130,166,130,187,98,201,130,187,51,236,130,187,247,14,131,187,171,49,131,187,82,84,131,187,234,118,131,187,115,153,131,187,238,187,131,187,91,222,131,187,185,0,132,187,9,35,132,187,74,69,
132,187,125,103,132,187,162,137,132,187,183,171,132,187,191,205,132,187,183,239,132,187,161,17,133,187,125,51,133,187,74,85,133,187,8,119,133,187,184,152,133,187,89,186,133,187,236,219,133,187,112,253,133,187,229,30,134,187,75,64,134,187,163,97,134,187,236,130,134,187,39,164,134,187,82,197,134,187,111,230,134,187,125,7,135,187,125,40,135,187,109,73,135,187,79,106,135,187,34,139,135,187,230,171,135,187,156,204,135,187,66,237,135,187,218,13,136,187,99,46,136,187,220,78,136,187,71,111,136,187,163,143,
136,187,241,175,136,187,47,208,136,187,94,240,136,187,126,16,137,187,144,48,137,187,146,80,137,187,133,112,137,187,105,144,137,187,63,176,137,187,5,208,137,187,188,239,137,187,100,15,138,187,253,46,138,187,135,78,138,187,2,110,138,187,110,141,138,187,202,172,138,187,24,204,138,187,86,235,138,187,133,10,139,187,165,41,139,187,182,72,139,187,183,103,139,187,170,134,139,187,141,165,139,187,97,196,139,187,37,227,139,187,219,1,140,187,129,32,140,187,24,63,140,187,159,93,140,187,23,124,140,187,128,154,
140,187,218,184,140,187,36,215,140,187,95,245,140,187,138,19,141,187,167,49,141,187,179,79,141,187,177,109,141,187,158,139,141,187,125,169,141,187,76,199,141,187,12,229,141,187,188,2,142,187,92,32,142,187,238,61,142,187,111,91,142,187,225,120,142,187,68,150,142,187,151,179,142,187,219,208,142,187,15,238,142,187,51,11,143,187,72,40,143,187,77,69,143,187,67,98,143,187,41,127,143,187,255,155,143,187,198,184,143,187,125,213,143,187,37,242,143,187,189,14,144,187,69,43,144,187,189,71,144,187,38,100,144,
187,127,128,144,187,200,156,144,187,2,185,144,187,44,213,144,187,70,241,144,187,80,13,145,187,75,41,145,187,54,69,145,187,17,97,145,187,220,124,145,187,151,152,145,187,67,180,145,187,222,207,145,187,106,235,145,187,230,6,146,187,82,34,146,187,174,61,146,187,250,88,146,187,55,116,146,187,99,143,146,187,128,170,146,187,140,197,146,187,137,224,146,187,118,251,146,187,82,22,147,187,31,49,147,187,220,75,147,187,137,102,147,187,37,129,147,187,178,155,147,187,47,182,147,187,155,208,147,187,248,234,147,187,
68,5,148,187,129,31,148,187,173,57,148,187,201,83,148,187,214,109,148,187,210,135,148,187,190,161,148,187,153,187,148,187,101,213,148,187,33,239,148,187,204,8,149,187,103,34,149,187,242,59,149,187,109,85,149,187,215,110,149,187,50,136,149,187,124,161,149,187,182,186,149,187,223,211,149,187,249,236,149,187,2,6,150,187,251,30,150,187,228,55,150,187,188,80,150,187,132,105,150,187,60,130,150,187,227,154,150,187,122,179,150,187,1,204,150,187,119,228,150,187,221,252,150,187,51,21,151,187,120,45,151,187,
173,69,151,187,209,93,151,187,230,117,151,187,233,141,151,187,221,165,151,187,191,189,151,187,146,213,151,187,84,237,151,187,5,5,152,187,166,28,152,187,55,52,152,187,183,75,152,187,38,99,152,187,133,122,152,187,212,145,152,187,18,169,152,187,64,192,152,187,92,215,152,187,105,238,152,187,101,5,153,187,80,28,153,187,43,51,153,187,245,73,153,187,174,96,153,187,87,119,153,187,240,141,153,187,119,164,153,187,238,186,153,187,85,209,153,187,171,231,153,187,240,253,153,187,36,20,154,187,72,42,154,187,91,
64,154,187,94,86,154,187,80,108,154,187,49,130,154,187,1,152,154,187,193,173,154,187,112,195,154,187,14,217,154,187,155,238,154,187,24,4,155,187,132,25,155,187,223,46,155,187,41,68,155,187,99,89,155,187,140,110,155,187,164,131,155,187,171,152,155,187,161,173,155,187,135,194,155,187,92,215,155,187,32,236,155,187,211,0,156,187,117,21,156,187,6,42,156,187,135,62,156,187,246,82,156,187,85,103,156,187,163,123,156,187,224,143,156,187,12,164,156,187,39,184,156,187,49,204,156,187,42,224,156,187,18,244,156,
187,234,7,157,187,176,27,157,187,101,47,157,187,10,67,157,187,157,86,157,187,32,106,157,187,145,125,157,187,242,144,157,187,65,164,157,187,128,183,157,187,173,202,157,187,202,221,157,187,213,240,157,187,207,3,158,187,185,22,158,187,145,41,158,187,88,60,158,187,14,79,158,187,179,97,158,187,71,116,158,187,202,134,158,187,60,153,158,187,157,171,158,187,236,189,158,187,43,208,158,187,88,226,158,187,116,244,158,187,127,6,159,187,121,24,159,187,98,42,159,187,57,60,159,187,0,78,159,187,181,95,159,187,89,
113,159,187,236,130,159,187,110,148,159,187,222,165,159,187,62,183,159,187,140,200,159,187,201,217,159,187,244,234,159,187,15,252,159,187,24,13,160,187,16,30,160,187,247,46,160,187,204,63,160,187,144,80,160,187,67,97,160,187,229,113,160,187,117,130,160,187,244,146,160,187,98,163,160,187,190,179,160,187,10,196,160,187,68,212,160,187,108,228,160,187,131,244,160,187,137,4,161,187,126,20,161,187,97,36,161,187,51,52,161,187,244,67,161,187,163,83,161,187,65,99,161,187,205,114,161,187,72,130,161,187,178,
145,161,187,10,161,161,187,81,176,161,187,135,191,161,187,171,206,161,187,190,221,161,187,191,236,161,187,175,251,161,187,141,10,162,187,90,25,162,187,22,40,162,187,192,54,162,187,89,69,162,187,224,83,162,187,86,98,162,187,187,112,162,187,14,127,162,187,79,141,162,187,127,155,162,187,158,169,162,187,171,183,162,187,166,197,162,187,144,211,162,187,105,225,162,187,48,239,162,187,229,252,162,187,137,10,163,187,28,24,163,187,157,37,163,187,12,51,163,187,106,64,163,187,182,77,163,187,241,90,163,187,26,
104,163,187,50,117,163,187,56,130,163,187,45,143,163,187,16,156,163,187,225,168,163,187,161,181,163,187,80,194,163,187,236,206,163,187,120,219,163,187,241,231,163,187,89,244,163,187,175,0,164,187,244,12,164,187,39,25,164,187,73,37,164,187,89,49,164,187,87,61,164,187,68,73,164,187,31,85,164,187,232,96,164,187,160,108,164,187,70,120,164,187,218,131,164,187,93,143,164,187,206,154,164,187,46,166,164,187,124,177,164,187,184,188,164,187,226,199,164,187,251,210,164,187,2,222,164,187,248,232,164,187,220,
243,164,187,174,254,164,187,110,9,165,187,29,20,165,187,186,30,165,187,69,41,165,187,191,51,165,187,39,62,165,187,125,72,165,187,193,82,165,187,244,92,165,187,21,103,165,187,36,113,165,187,34,123,165,187,13,133,165,187,232,142,165,187,176,152,165,187,102,162,165,187,11,172,165,187,158,181,165,187,32,191,165,187,143,200,165,187,237,209,165,187,57,219,165,187,115,228,165,187,156,237,165,187,179,246,165,187,184,255,165,187,171,8,166,187,140,17,166,187,92,26,166,187,26,35,166,187,198,43,166,187,96,52,
166,187,232,60,166,187,95,69,166,187,196,77,166,187,23,86,166,187,88,94,166,187,136,102,166,187,165,110,166,187,177,118,166,187,171,126,166,187,147,134,166,187,106,142,166,187,46,150,166,187,225,157,166,187,130,165,166,187,17,173,166,187,142,180,166,187,249,187,166,187,83,195,166,187,155,202,166,187,209,209,166,187,245,216,166,187,7,224,166,187,7,231,166,187,246,237,166,187,210,244,166,187,157,251,166,187,86,2,167,187,253,8,167,187,146,15,167,187,21,22,167,187,135,28,167,187,231,34,167,187,52,41,
167,187,112,47,167,187,154,53,167,187,178,59,167,187,185,65,167,187,173,71,167,187,143,77,167,187,96,83,167,187,31,89,167,187,204,94,167,187,103,100,167,187,240,105,167,187,103,111,167,187,204,116,167,187,32,122,167,187,97,127,167,187,145,132,167,187,175,137,167,187,187,142,167,187,180,147,167,187,157,152,167,187,115,157,167,187,55,162,167,187,233,166,167,187,138,171,167,187,24,176,167,187,149,180,167,187,0,185,167,187,89,189,167,187,160,193,167,187,213,197,167,187,248,201,167,187,9,206,167,187,8,
210,167,187,246,213,167,187,209,217,167,187,155,221,167,187,82,225,167,187,248,228,167,187,140,232,167,187,14,236,167,187,126,239,167,187,220,242,167,187,40,246,167,187,98,249,167,187,139,252,167,187,161,255,167,187,165,2,168,187,152,5,168,187,121,8,168,187,71,11,168,187,4,14,168,187,175,16,168,187,72,19,168,187,207,21,168,187,68,24,168,187,167,26,168,187,249,28,168,187,56,31,168,187,101,33,168,187,129,35,168,187,138,37,168,187,130,39,168,187,104,41,168,187,60,43,168,187,254,44,168,187,173,46,168,
187,76,48,168,187,216,49,168,187,82,51,168,187,186,52,168,187,16,54,168,187,85,55,168,187,135,56,168,187,168,57,168,187,183,58,168,187,179,59,168,187,158,60,168,187,119,61,168,187,62,62,168,187,243,62,168,187,150,63,168,187,40,64,168,187,167,64,168,187,20,65,168,187,112,65,168,187,186,65,168,187,241,65,168,187,23,66,168,187,43,66,168,187,45,66,168,187,29,66,168,187,251,65,168,187,199,65,168,187,130,65,168,187,42,65,168,187,192,64,168,187,69,64,168,187,184,63,168,187,24,63,168,187,103,62,168,187,164,
61,168,187,207,60,168,187,233,59,168,187,240,58,168,187,229,57,168,187,201,56,168,187,154,55,168,187,90,54,168,187,8,53,168,187,164,51,168,187,46,50,168,187,166,48,168,187,12,47,168,187,97,45,168,187,163,43,168,187,212,41,168,187,243,39,168,187,0,38,168,187,251,35,168,187,228,33,168,187,187,31,168,187,129,29,168,187,52,27,168,187,214,24,168,187,102,22,168,187,227,19,168,187,80,17,168,187,170,14,168,187,242,11,168,187,41,9,168,187,77,6,168,187,96,3,168,187,97,0,168,187,80,253,167,187,45,250,167,187,
249,246,167,187,179,243,167,187,90,240,167,187,240,236,167,187,116,233,167,187,231,229,167,187,71,226,167,187,150,222,167,187,210,218,167,187,253,214,167,187,22,211,167,187,30,207,167,187,19,203,167,187,247,198,167,187,201,194,167,187,137,190,167,187,55,186,167,187,212,181,167,187,94,177,167,187,215,172,167,187,62,168,167,187,148,163,167,187,215,158,167,187,9,154,167,187,41,149,167,187,55,144,167,187,51,139,167,187,30,134,167,187,247,128,167,187,190,123,167,187,115,118,167,187,23,113,167,187,168,
107,167,187,40,102,167,187,151,96,167,187,243,90,167,187,62,85,167,187,119,79,167,187,158,73,167,187,180,67,167,187,184,61,167,187,170,55,167,187,138,49,167,187,89,43,167,187,22,37,167,187,193,30,167,187,91,24,167,187,226,17,167,187,89,11,167,187,189,4,167,187,16,254,166,187,81,247,166,187,128,240,166,187,158,233,166,187,170,226,166,187,164,219,166,187,140,212,166,187,99,205,166,187,41,198,166,187,220,190,166,187,126,183,166,187,14,176,166,187,141,168,166,187,250,160,166,187,85,153,166,187,159,145,
166,187,215,137,166,187,253,129,166,187,18,122,166,187,21,114,166,187,7,106,166,187,231,97,166,187,181,89,166,187,114,81,166,187,29,73,166,187,182,64,166,187,62,56,166,187,181,47,166,187,25,39,166,187,108,30,166,187,174,21,166,187,222,12,166,187,252,3,166,187,9,251,165,187,5,242,165,187,238,232,165,187,198,223,165,187,141,214,165,187,66,205,165,187,230,195,165,187,120,186,165,187,248,176,165,187,103,167,165,187,197,157,165,187,17,148,165,187,75,138,165,187,116,128,165,187,140,118,165,187,146,108,
165,187,134,98,165,187,105,88,165,187,59,78,165,187,251,67,165,187,169,57,165,187,70,47,165,187,210,36,165,187,76,26,165,187,181,15,165,187,12,5,165,187,82,250,164,187,135,239,164,187,170,228,164,187,187,217,164,187,187,206,164,187,170,195,164,187,135,184,164,187,83,173,164,187,14,162,164,187,183,150,164,187,79,139,164,187,213,127,164,187,75,116,164,187,174,104,164,187,1,93,164,187,66,81,164,187,113,69,164,187,143,57,164,187,156,45,164,187,152,33,164,187,130,21,164,187,91,9,164,187,35,253,163,187,
217,240,163,187,126,228,163,187,18,216,163,187,149,203,163,187,6,191,163,187,102,178,163,187,180,165,163,187,242,152,163,187,30,140,163,187,57,127,163,187,66,114,163,187,59,101,163,187,34,88,163,187,248,74,163,187,188,61,163,187,112,48,163,187,18,35,163,187,163,21,163,187,35,8,163,187,146,250,162,187,239,236,162,187,59,223,162,187,119,209,162,187,160,195,162,187,185,181,162,187,193,167,162,187,183,153,162,187,157,139,162,187,113,125,162,187,52,111,162,187,230,96,162,187,135,82,162,187,23,68,162,187,
150,53,162,187,3,39,162,187,96,24,162,187,171,9,162,187,229,250,161,187,15,236,161,187,39,221,161,187,46,206,161,187,36,191,161,187,9,176,161,187,222,160,161,187,161,145,161,187,83,130,161,187],"i8",4,y.a+440320);
Q([244,114,161,187,132,99,161,187,3,84,161,187,113,68,161,187,206,52,161,187,26,37,161,187,85,21,161,187,127,5,161,187,153,245,160,187,161,229,160,187,152,213,160,187,127,197,160,187,84,181,160,187,25,165,160,187,205,148,160,187,112,132,160,187,2,116,160,187,131,99,160,187,243,82,160,187,82,66,160,187,161,49,160,187,222,32,160,187,11,16,160,187,39,255,159,187,50,238,159,187,44,221,159,187,22,204,159,187,238,186,159,187,182,169,159,187,109,152,159,187,20,135,159,187,169,117,159,187,46,100,159,187,
162,82,159,187,5,65,159,187,88,47,159,187,154,29,159,187,203,11,159,187,235,249,158,187,251,231,158,187,250,213,158,187,232,195,158,187,198,177,158,187,147,159,158,187,79,141,158,187,250,122,158,187,149,104,158,187,32,86,158,187,153,67,158,187,2,49,158,187,91,30,158,187,163,11,158,187,218,248,157,187,1,230,157,187,23,211,157,187,28,192,157,187,17,173,157,187,246,153,157,187,201,134,157,187,141,115,157,187,64,96,157,187,226,76,157,187,116,57,157,187,245,37,157,187,102,18,157,187,198,254,156,187,22,
235,156,187,85,215,156,187,132,195,156,187,162,175,156,187,176,155,156,187,174,135,156,187,155,115,156,187,120,95,156,187,68,75,156,187,0,55,156,187,172,34,156,187,71,14,156,187,210,249,155,187,76,229,155,187,182,208,155,187,16,188,155,187,89,167,155,187,147,146,155,187,187,125,155,187,212,104,155,187,220,83,155,187,212,62,155,187,188,41,155,187,147,20,155,187,90,255,154,187,17,234,154,187,184,212,154,187,79,191,154,187,213,169,154,187,75,148,154,187,177,126,154,187,7,105,154,187,76,83,154,187,129,
61,154,187,167,39,154,187,188,17,154,187,193,251,153,187,181,229,153,187,154,207,153,187,111,185,153,187,51,163,153,187,231,140,153,187,140,118,153,187,32,96,153,187,164,73,153,187,24,51,153,187,124,28,153,187,209,5,153,187,21,239,152,187,73,216,152,187,109,193,152,187,129,170,152,187,133,147,152,187,121,124,152,187,93,101,152,187,50,78,152,187,246,54,152,187,170,31,152,187,79,8,152,187,227,240,151,187,104,217,151,187,221,193,151,187,66,170,151,187,151,146,151,187,220,122,151,187,18,99,151,187,55,
75,151,187,77,51,151,187,83,27,151,187,73,3,151,187,48,235,150,187,6,211,150,187,205,186,150,187,132,162,150,187,43,138,150,187,195,113,150,187,75,89,150,187,195,64,150,187,44,40,150,187,132,15,150,187,206,246,149,187,7,222,149,187,49,197,149,187,75,172,149,187,86,147,149,187,81,122,149,187,60,97,149,187,24,72,149,187,228,46,149,187,160,21,149,187,77,252,148,187,235,226,148,187,121,201,148,187,247,175,148,187,102,150,148,187,197,124,148,187,21,99,148,187,85,73,148,187,134,47,148,187,168,21,148,187,
186,251,147,187,188,225,147,187,175,199,147,187,147,173,147,187,103,147,147,187,44,121,147,187,226,94,147,187,136,68,147,187,31,42,147,187,166,15,147,187,30,245,146,187,135,218,146,187,225,191,146,187,43,165,146,187,102,138,146,187,145,111,146,187,174,84,146,187,187,57,146,187,185,30,146,187,167,3,146,187,135,232,145,187,87,205,145,187,24,178,145,187,202,150,145,187,109,123,145,187,0,96,145,187,133,68,145,187,250,40,145,187,96,13,145,187,183,241,144,187,255,213,144,187,56,186,144,187,98,158,144,187,
124,130,144,187,136,102,144,187,133,74,144,187,114,46,144,187,81,18,144,187,33,246,143,187,225,217,143,187,147,189,143,187,54,161,143,187,201,132,143,187,78,104,143,187,196,75,143,187,43,47,143,187,131,18,143,187,204,245,142,187,7,217,142,187,50,188,142,187,79,159,142,187,93,130,142,187,92,101,142,187,76,72,142,187,45,43,142,187,0,14,142,187,196,240,141,187,121,211,141,187,31,182,141,187,183,152,141,187,64,123,141,187,186,93,141,187,38,64,141,187,130,34,141,187,209,4,141,187,16,231,140,187,65,201,
140,187,99,171,140,187,119,141,140,187,124,111,140,187,114,81,140,187,90,51,140,187,52,21,140,187,254,246,139,187,187,216,139,187,104,186,139,187,8,156,139,187,152,125,139,187,26,95,139,187,142,64,139,187,244,33,139,187,74,3,139,187,147,228,138,187,205,197,138,187,249,166,138,187,22,136,138,187,37,105,138,187,37,74,138,187,23,43,138,187,251,11,138,187,209,236,137,187,152,205,137,187,81,174,137,187,252,142,137,187,152,111,137,187,38,80,137,187,166,48,137,187,24,17,137,187,123,241,136,187,208,209,136,
187,24,178,136,187,80,146,136,187,123,114,136,187,152,82,136,187,166,50,136,187,167,18,136,187,153,242,135,187,125,210,135,187,83,178,135,187,28,146,135,187,214,113,135,187,130,81,135,187,32,49,135,187,176,16,135,187,50,240,134,187,166,207,134,187,12,175,134,187,100,142,134,187,174,109,134,187,235,76,134,187,25,44,134,187,57,11,134,187,76,234,133,187,81,201,133,187,72,168,133,187,49,135,133,187,12,102,133,187,218,68,133,187,154,35,133,187,76,2,133,187,240,224,132,187,134,191,132,187,15,158,132,187,
138,124,132,187,247,90,132,187,87,57,132,187,169,23,132,187,237,245,131,187,36,212,131,187,77,178,131,187,104,144,131,187,118,110,131,187,119,76,131,187,105,42,131,187,78,8,131,187,38,230,130,187,240,195,130,187,173,161,130,187,92,127,130,187,254,92,130,187,146,58,130,187,24,24,130,187,146,245,129,187,254,210,129,187,92,176,129,187,173,141,129,187,241,106,129,187,39,72,129,187,80,37,129,187,108,2,129,187,122,223,128,187,123,188,128,187,111,153,128,187,86,118,128,187,47,83,128,187,251,47,128,187,186,
12,128,187,215,210,127,187,32,140,127,187,79,69,127,187,99,254,126,187,93,183,126,187,61,112,126,187,2,41,126,187,173,225,125,187,62,154,125,187,181,82,125,187,18,11,125,187,85,195,124,187,126,123,124,187,140,51,124,187,129,235,123,187,92,163,123,187,29,91,123,187,196,18,123,187,81,202,122,187,197,129,122,187,30,57,122,187,94,240,121,187,132,167,121,187,145,94,121,187,131,21,121,187,92,204,120,187,28,131,120,187,194,57,120,187,78,240,119,187,193,166,119,187,27,93,119,187,91,19,119,187,129,201,118,
187,142,127,118,187,130,53,118,187,93,235,117,187,30,161,117,187,198,86,117,187,85,12,117,187,202,193,116,187,39,119,116,187,106,44,116,187,148,225,115,187,166,150,115,187,158,75,115,187,125,0,115,187,67,181,114,187,240,105,114,187,133,30,114,187,0,211,113,187,99,135,113,187,173,59,113,187,222,239,112,187,247,163,112,187,246,87,112,187,221,11,112,187,172,191,111,187,98,115,111,187,255,38,111,187,132,218,110,187,240,141,110,187,68,65,110,187,127,244,109,187,162,167,109,187,172,90,109,187,159,13,109,
187,121,192,108,187,58,115,108,187,228,37,108,187,117,216,107,187,238,138,107,187,79,61,107,187,152,239,106,187,200,161,106,187,225,83,106,187,226,5,106,187,202,183,105,187,155,105,105,187,84,27,105,187,245,204,104,187,126,126,104,187,240,47,104,187,73,225,103,187,139,146,103,187,181,67,103,187,200,244,102,187,195,165,102,187,166,86,102,187,114,7,102,187,38,184,101,187,195,104,101,187,72,25,101,187,182,201,100,187,12,122,100,187,75,42,100,187,115,218,99,187,132,138,99,187,125,58,99,187,95,234,98,
187,42,154,98,187,221,73,98,187,122,249,97,187,255,168,97,187,110,88,97,187,197,7,97,187,6,183,96,187,47,102,96,187,66,21,96,187,61,196,95,187,34,115,95,187,240,33,95,187,167,208,94,187,72,127,94,187,210,45,94,187,69,220,93,187,161,138,93,187,231,56,93,187,23,231,92,187,48,149,92,187,50,67,92,187,30,241,91,187,243,158,91,187,179,76,91,187,91,250,90,187,238,167,90,187,106,85,90,187,208,2,90,187,32,176,89,187,89,93,89,187,124,10,89,187,138,183,88,187,129,100,88,187,98,17,88,187,45,190,87,187,227,106,
87,187,130,23,87,187,11,196,86,187,127,112,86,187,221,28,86,187,37,201,85,187,87,117,85,187,116,33,85,187,122,205,84,187,108,121,84,187,71,37,84,187,13,209,83,187,190,124,83,187,89,40,83,187,222,211,82,187,79,127,82,187,169,42,82,187,239,213,81,187,31,129,81,187,58,44,81,187,63,215,80,187,48,130,80,187,11,45,80,187,209,215,79,187,130,130,79,187,30,45,79,187,165,215,78,187,23,130,78,187,116,44,78,187,188,214,77,187,239,128,77,187,13,43,77,187,23,213,76,187,12,127,76,187,236,40,76,187,183,210,75,187,
110,124,75,187,16,38,75,187,158,207,74,187,23,121,74,187,123,34,74,187,203,203,73,187,7,117,73,187,46,30,73,187,65,199,72,187,63,112,72,187,41,25,72,187,255,193,71,187,193,106,71,187,111,19,71,187,8,188,70,187,141,100,70,187,255,12,70,187,92,181,69,187,165,93,69,187,218,5,69,187,252,173,68,187,9,86,68,187,3,254,67,187,233,165,67,187,187,77,67,187,122,245,66,187,36,157,66,187,187,68,66,187,63,236,65,187,175,147,65,187,11,59,65,187,84,226,64,187,137,137,64,187,171,48,64,187,186,215,63,187,181,126,63,
187,157,37,63,187,114,204,62,187,51,115,62,187,226,25,62,187,125,192,61,187,5,103,61,187,121,13,61,187,219,179,60,187,42,90,60,187,102,0,60,187,143,166,59,187,165,76,59,187,168,242,58,187,153,152,58,187,118,62,58,187,65,228,57,187,249,137,57,187,159,47,57,187,50,213,56,187,178,122,56,187,32,32,56,187,123,197,55,187,196,106,55,187,250,15,55,187,30,181,54,187,48,90,54,187,47,255,53,187,29,164,53,187,247,72,53,187,192,237,52,187,118,146,52,187,27,55,52,187,173,219,51,187,45,128,51,187,156,36,51,187,
248,200,50,187,66,109,50,187,123,17,50,187,161,181,49,187,182,89,49,187,185,253,48,187,170,161,48,187,138,69,48,187,88,233,47,187,20,141,47,187,191,48,47,187,88,212,46,187,224,119,46,187,87,27,46,187,187,190,45,187,15,98,45,187,81,5,45,187,130,168,44,187,162,75,44,187,176,238,43,187,173,145,43,187,153,52,43,187,116,215,42,187,62,122,42,187,247,28,42,187,159,191,41,187,54,98,41,187,188,4,41,187,50,167,40,187,150,73,40,187,234,235,39,187,45,142,39,187,95,48,39,187,128,210,38,187,145,116,38,187,145,
22,38,187,129,184,37,187,96,90,37,187,47,252,36,187,238,157,36,187,156,63,36,187,57,225,35,187,199,130,35,187,68,36,35,187,177,197,34,187,13,103,34,187,90,8,34,187,150,169,33,187,195,74,33,187,223,235,32,187,235,140,32,187,232,45,32,187,212,206,31,187,177,111,31,187,126,16,31,187,59,177,30,187,232,81,30,187,134,242,29,187,20,147,29,187,146,51,29,187,1,212,28,187,96,116,28,187,176,20,28,187,240,180,27,187,33,85,27,187,66,245,26,187,84,149,26,187,87,53,26,187,75,213,25,187,47,117,25,187,4,21,25,187,
202,180,24,187,129,84,24,187,41,244,23,187,194,147,23,187,76,51,23,187,199,210,22,187,51,114,22,187,144,17,22,187,223,176,21,187,30,80,21,187,79,239,20,187,114,142,20,187,133,45,20,187,138,204,19,187,129,107,19,187,105,10,19,187,66,169,18,187,13,72,18,187,202,230,17,187,120,133,17,187,24,36,17,187,170,194,16,187,45,97,16,187,162,255,15,187,10,158,15,187,99,60,15,187,174,218,14,187,234,120,14,187,25,23,14,187,58,181,13,187,77,83,13,187,83,241,12,187,74,143,12,187,52,45,12,187,16,203,11,187,222,104,
11,187,158,6,11,187,81,164,10,187,247,65,10,187,143,223,9,187,25,125,9,187,150,26,9,187,5,184,8,187,103,85,8,187,188,242,7,187,4,144,7,187,62,45,7,187,107,202,6,187,139,103,6,187,158,4,6,187,164,161,5,187,156,62,5,187,136,219,4,187,103,120,4,187,57,21,4,187,254,177,3,187,182,78,3,187,98,235,2,187,0,136,2,187,146,36,2,187,24,193,1,187,145,93,1,187,253,249,0,187,92,150,0,187,176,50,0,187,237,157,255,186,97,214,254,186,189,14,254,186,1,71,253,186,43,127,252,186,62,183,251,186,56,239,250,186,25,39,250,
186,227,94,249,186,148,150,248,186,45,206,247,186,175,5,247,186,24,61,246,186,106,116,245,186,164,171,244,186,198,226,243,186,209,25,243,186,196,80,242,186,160,135,241,186,101,190,240,186,18,245,239,186,169,43,239,186,40,98,238,186,144,152,237,186,226,206,236,186,29,5,236,186,65,59,235,186,78,113,234,186,69,167,233,186,38,221,232,186,240,18,232,186,164,72,231,186,66,126,230,186,202,179,229,186,59,233,228,186,151,30,228,186,221,83,227,186,13,137,226,186,40,190,225,186,45,243,224,186,28,40,224,186,
246,92,223,186,187,145,222,186,106,198,221,186,5,251,220,186,138,47,220,186,250,99,219,186,86,152,218,186,156,204,217,186,206,0,217,186,235,52,216,186,244,104,215,186,232,156,214,186,200,208,213,186,148,4,213,186,75,56,212,186,238,107,211,186,125,159,210,186,249,210,209,186,96,6,209,186,180,57,208,186,244,108,207,186,32,160,206,186,57,211,205,186,62,6,205,186,48,57,204,186,15,108,203,186,218,158,202,186,147,209,201,186,56,4,201,186,203,54,200,186,74,105,199,186,183,155,198,186,18,206,197,186,89,0,
197,186,143,50,196,186,178,100,195,186,194,150,194,186,192,200,193,186,173,250,192,186,135,44,192,186,79,94,191,186,5,144,190,186,170,193,189,186,60,243,188,186,190,36,188,186,45,86,187,186,139,135,186,186,216,184,185,186,20,234,184,186,62,27,184,186,87,76,183,186,96,125,182,186,87,174,181,186,62,223,180,186,19,16,180,186,216,64,179,186,141,113,178,186,49,162,177,186,197,210,176,186,72,3,176,186,187,51,175,186,30,100,174,186,113,148,173,186,180,196,172,186,231,244,171,186,10,37,171,186,29,85,170,
186,33,133,169,186,22,181,168,186,251,228,167,186,208,20,167,186,150,68,166,186,78,116,165,186,246,163,164,186,143,211,163,186,25,3,163,186,148,50,162,186,1,98,161,186,94,145,160,186,174,192,159,186,238,239,158,186,33,31,158,186,69,78,157,186,91,125,156,186,99,172,155,186,92,219,154,186,72,10,154,186,38,57,153,186,246,103,152,186,184,150,151,186,109,197,150,186,20,244,149,186,174,34,149,186,59,81,148,186,186,127,147,186,44,174,146,186,145,220,145,186,233,10,145,186,52,57,144,186,114,103,143,186,164,
149,142,186,201,195,141,186,225,241,140,186,237,31,140,186,236,77,139,186,223,123,138,186,198,169,137,186,161,215,136,186,112,5,136,186,51,51,135,186,234,96,134,186,149,142,133,186,53,188,132,186,201,233,131,186,81,23,131,186,207,68,130,186,64,114,129,186,167,159,128,186,5,154,127,186,165,244,125,186,48,79,124,186,165,169,122,186,4,4,121,186,78,94,119,186,131,184,117,186,163,18,116,186,174,108,114,186,164,198,112,186,133,32,111,186,82,122,109,186,11,212,107,186,176,45,106,186,66,135,104,186,191,224,
102,186,41,58,101,186,128,147,99,186,196,236,97,186,244,69,96,186,18,159,94,186,30,248,92,186,23,81,91,186,253,169,89,186,210,2,88,186,149,91,86,186,70,180,84,186,229,12,83,186,116,101,81,186,241,189,79,186,93,22,78,186,184,110,76,186,2,199,74,186,61,31,73,186,102,119,71,186,128,207,69,186,138,39,68,186,132,127,66,186,110,215,64,186,73,47,63,186,21,135,61,186,210,222,59,186,128,54,58,186,31,142,56,186,176,229,54,186,50,61,53,186,166,148,51,186,12,236,49,186,101,67,48,186,175,154,46,186,237,241,44,
186,29,73,43,186,63,160,41,186,85,247,39,186,95,78,38,186,91,165,36,186,75,252,34,186,48,83,33,186,8,170,31,186,212,0,30,186,148,87,28,186,73,174,26,186,243,4,25,186,145,91,23,186,37,178,21,186,173,8,20,186,44,95,18,186,159,181,16,186,9,12,15,186,104,98,13,186,189,184,11,186,9,15,10,186,75,101,8,186,132,187,6,186,179,17,5,186,218,103,3,186,248,189,1,186,13,20,0,186,50,212,252,185,59,128,249,185,51,44,246,185,27,216,242,185,244,131,239,185,190,47,236,185,120,219,232,185,36,135,229,185,194,50,226,185,
83,222,222,185,214,137,219,185,75,53,216,185,180,224,212,185,17,140,209,185,98,55,206,185,167,226,202,185,224,141,199,185,15,57,196,185,51,228,192,185,77,143,189,185,94,58,186,185,100,229,182,185,98,144,179,185,86,59,176,185,66,230,172,185,38,145,169,185,3,60,166,185,216,230,162,185,166,145,159,185,109,60,156,185,46,231,152,185,233,145,149,185,158,60,146,185,78,231,142,185,249,145,139,185,160,60,136,185,66,231,132,185,225,145,129,185,248,120,124,185,40,206,117,185,82,35,111,185,120,120,104,185,153,
205,97,185,183,34,91,185,210,119,84,185,236,204,77,185,4,34,71,185,27,119,64,185,51,204,57,185,75,33,51,185,101,118,44,185,129,203,37,185,161,32,31,185,195,117,24,185,235,202,17,185,23,32,11,185,73,117,4,185,4,149,251,184,132,63,238,184,20,234,224,184,181,148,211,184,104,63,198,184,48,234,184,184,14,149,171,184,2,64,158,184,15,235,144,184,54,150,131,184,239,130,108,184,172,217,81,184,165,48,55,184,221,135,28,184,87,223,1,184,43,110,206,183,54,30,153,183,173,157,71,183,69,0,186,182,137,194,89,53,81,
110,240,54,210,208,98,55,141,180,166,55,250,255,219,55,85,165,8,56,77,74,35,56,225,238,61,56,14,147,88,56,210,54,115,56,20,237,134,56,137,62,148,56,196,143,161,56,197,224,174,56,138,49,188,56,17,130,201,56,91,210,214,56,100,34,228,56,43,114,241,56,176,193,254,56,120,8,6,57,246,175,12,57,80,87,19,57,133,254,25,57,150,165,32,57,129,76,39,57,69,243,45,57,227,153,52,57,89,64,59,57,166,230,65,57,202,140,72,57,196,50,79,57,147,216,85,57,55,126,92,57,176,35,99,57,251,200,105,57,25,110,112,57,9,19,119,57,
202,183,125,57,46,46,130,57,94,128,133,57,118,210,136,57,117,36,140,57,91,118,143,57,40,200,146,57,219,25,150,57,115,107,153,57,241,188,156,57,84,14,160,57,155,95,163,57,199,176,166,57,215,1,170,57,203,82,173,57,161,163,176,57,91,244,179,57,248,68,183,57,118,149,186,57,215,229,189,57,25,54,193,57,60,134,196,57,64,214,199,57,37,38,203,57,233,117,206,57,142,197,209,57,18,21,213,57,117,100,216,57,182,179,219,57,215,2,223,57,213,81,226,57,176,160,229,57,106,239,232,57,0,62,236,57,114,140,239,57,193,218,
242,57,236,40,246,57,243,118,249,57,213,196,252,57,73,9,0,58,20,176,1,58,205,86,3,58,114,253,4,58,5,164,6,58,131,74,8,58,239,240,9,58,70,151,11,58,138,61,13,58,185,227,14,58,212,137,16,58,219,47,18,58,205,213,19,58,170,123,21,58,114,33,23,58,37,199,24,58,194,108,26,58,74,18,28,58,188,183,29,58,25,93,31,58,95,2,33,58,143,167,34,58,169,76,36,58,172,241,37,58,153,150,39,58,110,59,41,58,45,224,42,58,212,132,44,58,99,41,46,58,219,205,47,58,60,114,49,58,132,22,51,58,180,186,52,58,204,94,54,58,203,2,56,
58,178,166,57,58,128,74,59,58,53,238,60,58,208,145,62,58,83,53,64,58,187,216,65,58,10,124,67,58,64,31,69,58,91,194,70,58,92,101,72,58,66,8,74,58,14,171,75,58,192,77,77,58,86,240,78,58,209,146,80,58,49,53,82,58,118,215,83,58,159,121,85,58,172,27,87,58,157,189,88,58,114,95,90,58,43,1,92,58,199,162,93,58,71,68,95,58,170,229,96,58,240,134,98,58,25,40,100,58,36,201,101,58,18,106,103,58,226,10,105,58,149,171,106,58,41,76,108,58,159,236,109,58,247,140,111,58,49,45,113,58,75,205,114,58,71,109,116,58,36,13,
118,58,225,172,119,58,127,76,121,58,254,235,122,58,93,139,124,58,156,42,126,58,187,201,127,58,93,180,128,58,204,131,129,58,43,83,130,58,121,34,131,58,183,241,131,58,228,192,132,58,1,144,133,58,13,95,134,58,9,46,135,58,243,252,135,58,204,203,136,58,149,154,137,58,76,105,138,58,242,55,139,58,135,6,140,58,10,213,140,58,124,163,141,58,220,113,142,58,42,64,143,58,103,14,144,58,146,220,144,58,171,170,145,58,178,120,146,58,167,70,147,58,138,20,148,58,91,226,148,58,25,176,149,58,197,125,150,58,94,75,151,
58,229,24,152,58,89,230,152,58,186,179,153,58,9,129,154,58,68,78,155,58,109,27,156,58,130,232,156,58,132,181,157,58,115,130,158,58,79,79,159,58,23,28,160,58,204,232,160,58,109,181,161,58,250,129,162,58,116,78,163,58,218,26,164,58,44,231,164,58,105,179,165,58,147,127,166,58,169,75,167,58,170,23,168,58,151,227,168,58,111,175,169,58,51,123,170,58,226,70,171,58,125,18,172,58,3,222,172,58,116,169,173,58,208,116,174,58,23,64,175,58,73,11,176,58,102,214,176,58,109,161,177,58,95,108,178,58,60,55,179,58,3,
2,180,58,180,204,180,58,80,151,181,58,214,97,182,58,70,44,183,58,160,246,183,58,229,192,184,58,19,139,185,58,43,85,186,58,44,31,187,58,24,233,187,58,236,178,188,58,171,124,189,58,82,70,190,58,227,15,191,58,94,217,191,58,193,162,192,58,13,108,193,58,67,53,194,58,97,254,194,58,104,199,195,58,88,144,196,58,48,89,197,58,242,33,198,58,155,234,198,58,45,179,199,58,167,123,200,58,10,68,201,58,85,12,202,58,135,212,202,58,162,156,203,58,165,100,204,58,143,44,205,58,97,244,205,58,27,188,206,58,189,131,207,
58,70,75,208,58,182,18,209,58,14,218,209,58,77,161,210,58,115,104,211,58,128,47,212,58,116,246,212,58,79,189,213,58,17,132,214,58,186,74,215,58,74,17,216,58,192,215,216,58,28,158,217,58,95,100,218,58,137,42,219,58,152,240,219,58,142,182,220,58,106,124,221,58,44,66,222,58,212,7,223,58,98,205,223,58,213,146,224,58,47,88,225,58,110,29,226,58,146,226,226,58,156,167,227,58,140,108,228,58,96,49,229,58,26,246,229,58,185,186,230,58,61,127,231,58,166,67,232,58,244,7,233,58,39,204,233,58,63,144,234,58,59,84,
235,58,28,24,236,58,225,219,236,58,139,159,237,58,25,99,238,58,139,38,239,58,226,233,239,58,28,173,240,58,59,112,241,58,61,51,242,58,36,246,242,58,238,184,243,58,156,123,244,58,45,62,245,58,163,0,246,58,251,194,246,58,55,133,247,58,86,71,248,58,89,9,249,58,62,203,249,58,7,141,250,58,179,78,251,58,65,16,252,58,179,209,252,58,7,147,253,58,62,84,254,58,87,21,255,58,83,214,255,58,153,75,0,59,249,171,0,59,75,12,1,59,141,108,1,59,193,204,1,59,230,44,2,59,251,140,2,59,2,237,2,59,249,76,3,59,226,172,3,59,
187,12,4,59,133,108,4,59,64,204,4,59,235,43,5,59,135,139,5,59,20,235,5,59,145,74,6,59,255,169,6,59,94,9,7,59,173,104,7,59,236,199,7,59,28,39,8,59,60,134,8,59,76,229,8,59,77,68,9,59,62,163,9,59,31,2,10,59,240,96,10,59,177,191,10,59,99,30,11,59,5,125,11,59,150,219,11,59,24,58,12,59,137,152,12,59,234,246,12,59,60,85,13,59,125,179,13,59,173,17,14,59,206,111,14,59,222,205,14,59,222,43,15,59,205,137,15,59,173,231,15,59,123,69,16,59,57,163,16,59,231,0,17,59,132,94,17,59,17,188,17,59,140,25,18,59,247,118,
18,59,82,212,18,59,156,49,19,59,212,142,19,59,252,235,19,59,20,73,20,59,26,166,20,59,15,3,21,59,243,95,21,59,199,188,21,59,137,25,22,59,58,118,22,59,218,210,22,59,105,47,23,59,231,139,23,59,83,232,23,59,174,68,24,59,248,160,24,59,48,253,24,59,87,89,25,59,109,181,25,59,113,17,26,59,99,109,26,59,68,201,26,59,20,37,27,59,210,128,27,59,126,220,27,59,24,56,28,59,161,147,28,59,24,239,28,59,125,74,29,59,208,165,29,59,18,1,30,59,65,92,30,59,95,183,30,59,106,18,31,59,100,109,31,59,75,200,31,59,33,35,32,59,
228,125,32,59,149,216,32,59,52,51,33,59,192,141,33,59,58,232,33,59,162,66,34,59,248,156,34,59,59,247,34,59,108,81,35,59,138,171,35,59,150,5,36,59,143,95,36,59,117,185,36,59,73,19,37,59,11,109,37,59,185,198,37,59,85,32,38,59,222,121,38,59,85,211,38,59,184,44,39,59,9,134,39,59,71,223,39,59,113,56,40,59,137,145,40,59,142,234,40,59,128,67,41,59,94,156,41,59,42,245,41,59,226,77,42,59,135,166,42,59,25,255,42,59,152,87,43,59,3,176,43,59,91,8,44,59,159,96,44,59,208,184,44,59,238,16,45,59,248,104,45,59,239,
192,45,59,210,24,46,59,162,112,46,59,94,200,46,59,6,32,47,59,155,119,47,59,27,207,47,59,136,38,48,59,226,125,48,59,39,213,48,59,89,44,49,59,118,131,49,59,128,218,49,59,118,49,50,59,87,136,50,59,37,223,50,59,222,53,51,59,132,140,51,59,21,227,51,59,146,57,52,59,251,143,52,59,79,230,52,59,144,60,53,59,188,146,53,59,211,232,53,59,214,62,54,59,197,148,54,59,159,234,54,59,101,64,55,59,22,150,55,59,179,235,55,59,59,65,56,59,174,150,56,59,13,236,56,59,87,65,57,59,140,150,57,59,172,235,57,59,184,64,58,59,
175,149,58,59,145,234,58,59,93,63,59,59,21,148,59,59,184,232,59,59,70,61,60,59,191,145,60,59,35,230,60,59,114,58,61,59,171,142,61,59,208,226,61,59,223,54,62,59,217,138,62,59,189,222,62,59,140,50,63,59,70,134,63,59,235,217,63,59,122,45,64,59,243,128,64,59,87,212,64,59,166,39,65,59,223,122,65,59,2,206,65,59,16,33,66,59,8,116,66,59,234,198,66,59,183,25,67,59,110,108,67,59,15,191,67,59,154,17,68,59,15,100,68,59,111,182,68,59,184,8,69,59,236,90,69,59,9,173,69,59,17,255,69,59,2,81,70,59,222,162,70,59,163,
244,70,59,82,70,71,59,235,151,71,59,109,233,71,59,218,58,72,59,48,140,72,59,111,221,72,59,153,46,73,59,172,127,73,59,168,208,73,59,142,33,74,59,94,114,74,59,23,195,74,59,186,19,75,59,69,100,75,59,187,180,75,59,25,5,76,59,97,85,76,59,147,165,76,59,173,245,76,59,177,69,77,59,158,149,77,59,116,229,77,59,51,53,78,59,219,132,78,59,108,212,78,59,231,35,79,59,74,115,79,59,150,194,79,59,203,17,80,59,233,96,80,59,240,175,80,59,224,254,80,59,185,77,81,59,122,156,81,59,36,235,81,59,183,57,82,59,50,136,82,59,
150,214,82,59,227,36,83,59,24,115,83,59,54,193,83,59,60,15,84,59,43,93,84,59,3,171,84,59,194,248,84,59,106,70,85,59,251,147,85,59,116,225,85,59,213,46,86,59,30,124,86,59,80,201,86,59,105,22,87,59,107,99,87,59,85,176,87,59,40,253,87,59,226,73,88,59,132,150,88,59,15,227,88,59,129,47,89,59,219,123,89,59,30,200,89,59,72,20,90,59,90,96,90,59,84,172,90,59,53,248,90,59,255,67,91,59,176,143,91,59,73,219,91,59,201,38,92,59,49,114,92,59,129,189,92,59,185,8,93,59,216,83,93,59,222,158,93,59,204,233,93,59,162,
52,94,59,95,127,94,59,3,202,94,59,143,20,95,59,2,95,95,59,92,169,95,59,158,243,95,59,199,61,96,59,215,135,96,59,207,209,96,59,173,27,97,59,115,101,97,59,32,175,97,59,180,248,97,59,47,66,98,59,145,139,98,59,218,212,98,59,10,30,99,59,33,103,99,59,31,176,99,59,4,249,99,59,207,65,100,59,130,138,100,59,27,211,100,59,155,27,101,59,1,100,101,59,79,172,101,59,131,244,101,59,158,60,102,59,159,132,102,59,135,204,102,59,86,20,103,59,11,92,103,59,166,163,103,59,40,235,103,59,145,50,104,59,224,121,104,59,21,193,
104,59,49,8,105,59,51,79,105,59,27,150,105,59,234,220,105,59,158,35,106,59,57,106,106,59,187,176,106,59,34,247,106,59,112,61,107,59,163,131,107,59,189,201,107,59,189,15,108,59,163,85,108,59,111,155,108,59,33,225,108,59,184,38,109,59,54,108,109,59,154,177,109,59,227,246,109,59,18,60,110,59,39,129,110,59,34,198,110,59,3,11,111,59,201,79,111,59,117,148,111,59,7,217,111,59,126,29,112,59,219,97,112,59,29,166,112,59,70,234,112,59,83,46,113,59,70,114,113,59,31,182,113,59,221,249,113,59,128,61,114,59,9,129,
114,59,119,196,114,59,203,7,115,59,4,75,115,59,34,142,115,59,38,209,115,59,14,20,116,59,220,86,116,59,143,153,116,59,40,220,116,59,165,30,117,59,7,97,117,59,79,163,117,59,124,229,117,59,141,39,118,59,132,105,118,59,95,171,118,59,32,237,118,59,197,46,119,59,80,112,119,59,191,177,119,59,19,243,119,59,76,52,120,59,106,117,120,59,108,182,120,59,83,247,120,59,31,56,121,59,208,120,121,59,101,185,121,59,223,249,121,59,62,58,122,59,129,122,122,59,168,186,122,59,181,250,122,59,165,58,123,59,123,122,123,59,
52,186,123,59,210,249,123,59,85,57,124,59,188,120,124,59,7,184,124,59,55,247,124,59,75,54,125,59,67,117,125,59,31,180,125,59,224,242,125,59,133,49,126,59,14,112,126,59,123,174,126,59,204,236,126,59,2,43,127,59,27,105,127,59,25,167,127,59,251,228,127,59,96,17,128,59,53,48,128,59,252,78,128,59,181,109,128,59,95,140,128,59,252,170,128,59,139,201,128,59,11,232,128,59,126,6,129,59,226,36,129,59,56,67,129,59,128,97,129,59,186,127,129,59,230,157,129,59,4,188,129,59,19,218,129,59,21,248,129,59,8,22,130,59,
237,51,130,59,195,81,130,59,140,111,130,59,70,141,130,59,242,170,130,59,144,200,130,59,31,230,130,59,160,3,131,59,19,33,131,59,120,62,131,59,206,91,131,59,22,121,131,59,79,150,131,59,122,179,131,59,151,208,131,59,165,237,131,59,165,10,132,59,151,39,132,59,122,68,132,59,79,97,132,59,21,126,132,59,205,154,132,59,118,183,132,59,17,212,132,59,158,240,132,59,28,13,133,59,139,41,133,59,236,69,133,59,62,98,133,59,130,126,133,59,183,154,133,59,222,182,133,59,246,210,133,59,0,239,133,59,251,10,134,59,231,
38,134,59,197,66,134,59,148,94,134,59,85,122,134,59,6,150,134,59,170,177,134,59,62,205,134,59,196,232,134,59,59,4,135,59,163,31,135,59,253,58,135,59,72,86,135,59,132,113,135,59,178,140,135,59,209,167,135,59,225,194,135,59,226,221,135,59,212,248,135,59,184,19,136,59,141,46,136,59,82,73,136,59,10,100,136,59,178,126,136,59,75,153,136,59,214,179,136,59,82,206,136,59,191,232,136,59,28,3,137,59,108,29,137,59,172,55,137,59,221,81,137,59,255,107,137,59,18,134,137,59,23,160,137,59,12,186,137,59,243,211,137,
59,202,237,137,59,147,7,138,59,76,33,138,59,247,58,138,59,146,84,138,59,30,110,138,59,156,135,138,59,10,161,138,59,105,186,138,59,185,211,138,59,250,236,138,59,44,6,139,59,79,31,139,59,99,56,139,59,104,81,139,59,93,106,139,59,68,131,139,59,27,156,139,59,227,180,139,59,156,205,139,59,69,230,139,59,224,254,139,59,107,23,140,59,231,47,140,59,84,72,140,59,178,96,140,59,0,121,140,59,63,145,140,59,111,169,140,59,144,193,140,59,161,217,140,59,163,241,140,59,150,9,141,59,122,33,141,59,78,57,141,59,19,81,
141,59,200,104,141,59,111,128,141,59,5,152,141,59,141,175,141,59,5,199,141,59,110,222,141,59,199,245,141,59,17,13,142,59,76,36,142,59,119,59,142,59,147,82,142,59,159,105,142,59,156,128,142,59,137,151,142,59,103,174,142,59,54,197,142,59,245,219,142,59,164,242,142,59,69,9,143,59,213,31,143,59,86,54,143,59,200,76,143,59,42,99,143,59,124,121,143,59,191,143,143,59,243,165,143,59,22,188,143,59,43,210,143,59,47,232,143,59,37,254,143,59,10,20,144,59,224,41,144,59,166,63,144,59,93,85,144,59,4,107,144,59,155,
128,144,59,35,150,144,59,155,171,144,59,4,193,144,59,93,214,144,59,166,235,144,59,223,0,145,59,9,22,145,59,35,43,145,59,46,64,145,59,40,85,145,59,19,106,145,59,238,126,145,59,186,147,145,59,117,168,145,59,33,189,145,59,190,209,145,59,74,230,145,59,199,250,145,59,52,15,146,59,145,35,146,59,222,55,146,59,27,76,146,59,73,96,146,59,103,116,146,59,117,136,146,59,115,156,146,59,97,176,146,59,64,196,146,59,14,216,146,59,205,235,146,59,124,255,146,59,27,19,147,59,170,38,147,59,41,58,147,59,152,77,147,59,
247,96,147,59,71,116,147,59,134,135,147,59,182,154,147,59,213,173,147,59,229,192,147,59,229,211,147,59,212,230,147,59,180,249,147,59,132,12,148,59,68,31,148,59,243,49,148,59,147,68,148,59,35,87,148,59,163,105,148,59,19,124,148,59,114,142,148,59,194,160,148,59,2,179,148,59,49,197,148,59,81,215,148,59,96,233,148,59,96,251,148,59,79,13,149,59,46,31,149,59,253,48,149,59,188,66,149,59,107,84,149,59,10,102,149,59,153,119,149,59,24,137,149,59,134,154,149,59,228,171,149,59,51,189,149,59,113,206,149,59,159,
223,149,59,188,240,149,59,202,1,150,59,199,18,150,59,181,35,150,59,146,52,150,59,94,69,150,59,27,86,150,59,200,102,150,59,100,119,150,59,240,135,150,59,108,152,150,59,215,168,150,59,50,185,150,59,126,201,150,59,184,217,150,59,227,233,150,59,253,249,150,59,7,10,151,59,1,26,151,59,235,41,151,59,196,57,151,59,141,73,151,59,70,89,151,59,238,104,151,59,134,120,151,59,14,136,151,59,133,151,151,59,236,166,151,59,67,182,151,59,137,197,151,59,191,212,151,59,229,227,151,59,251,242,151,59,0,2,152,59,244,16,
152,59,217,31,152,59,173,46,152,59,112,61,152,59,35,76,152,59,198,90,152,59,88,105,152,59,218,119,152,59,76,134,152,59,173,148,152,59,254,162,152,59,62,177,152,59,110,191,152,59,142,205,152,59,157,219,152,59,155,233,152,59,138,247,152,59,103,5,153,59,53,19,153,59,241,32,153,59,158,46,153,59,58,60,153,59,197,73,153,59,64,87,153,59,170,100,153,59,4,114,153,59,78,127,153,59,135,140,153,59,175,153,153,59,199,166,153,59,206,179,153,59,197,192,153,59,172,205,153,59,129,218,153,59,71,231,153,59,252,243,
153,59,160,0,154,59,52,13,154,59,183,25,154,59,41,38,154,59,139,50,154,59,221,62,154,59,30,75,154,59,78,87,154,59,110,99,154,59,125,111,154,59,123,123,154,59,105,135,154,59,71,147,154,59,20,159,154,59,208,170,154,59,123,182,154,59,22,194,154,59,161,205,154,59,27,217,154,59,132,228,154,59,220,239,154,59,36,251,154,59,91,6,155,59,130,17,155,59,152,28,155,59,157,39,155,59,146,50,155,59,118,61,155,59,73,72,155,59,12,83,155,59,190,93,155,59,96,104,155,59,240,114,155,59,112,125,155,59,224,135,155,59,62,
146,155,59,140,156,155,59,202,166,155,59,246,176,155,59,18,187,155,59,29,197,155,59,24,207,155,59,2,217,155,59,219,226,155,59,163,236,155,59,91,246,155,59,2,0,156,59,152,9,156,59,30,19,156,59,146,28,156,59,246,37,156,59,74,47,156,59,140,56,156,59,190,65,156,59,223,74,156,59,240,83,156,59,239,92,156,59,222,101,156,59,188,110,156,59,138,119,156,59,70,128,156,59,242,136,156,59,141,145,156,59,23,154,156,59,145,162,156,59,249,170,156,59,81,179,156,59,153,187,156,59,207,195,156,59,245,203,156,59,9,212,
156,59,13,220,156,59,1,228,156,59,227,235,156,59,181,243,156,59,117,251,156,59,38,3,157,59,197,10,157,59,83,18,157,59,209,25,157,59,62,33,157,59,153,40,157,59,229,47,157,59,31,55,157,59,73,62,157,59,97,69,157,59,105,76,157,59,96,83,157,59,70,90,157,59,28,97,157,59,224,103,157,59,148,110,157,59,55,117,157,59,201,123,157,59,74,130,157,59,186,136,157,59,26,143,157,59,104,149,157,59,166,155,157,59,211,161,157,59,239,167,157,59,250,173,157,59,245,179,157,59,222,185,157,59,183,191,157,59,127,197,157,59,
54,203,157,59,220,208,157,59,113,214,157,59,245,219,157,59,105,225,157,59,203,230,157,59,29,236,157,59,94,241,157,59,142,246,157,59,173,251,157,59,187,0,158,59,185,5,158,59,165,10,158,59,129,15,158,59,75,20,158,59,5,25,158,59,174,29,158,59,70,34,158,59,205,38,158,59,67,43,158,59,169,47,158,59,253,51,158,59,65,56,158,59,115,60,158,59,149,64,158,59,166,68,158,59,166,72,158,59,149,76,158,59,115,80,158,59,65,84,158,59,253,87,158,59,169,91,158,59,67,95,158,59,205,98,158,59,70,102,158,59,174,105,158,59,
5,109,158,59,75,112,158,59,128,115,158,59,164,118,158,59,184,121,158,59,186,124,158,59,172,127,158,59,140,130,158,59,92,133,158,59,27,136,158,59,201,138,158,59,102,141,158,59,242,143,158,59,109,146,158,59,216,148,158,59,49,151,158,59,122,153,158,59,177,155,158,59,216,157,158,59,238,159,158,59,242,161,158,59,230,163,158,59,201,165,158,59,156,167,158,59,93,169,158,59,13,171,158,59,172,172,158,59,59,174,158,59,185,175,158,59,37,177,158,59,129,178,158,59,204,179,158,59,6,181,158,59,47,182,158,59,71,183,
158,59,78,184,158,59,68,185,158,59,42,186,158,59,254,186,158,59,194,187,158,59,117,188,158,59,22,189,158,59,167,189,158,59,39,190,158,59,150,190,158,59,244,190,158,59,66,191,158,59,126,191,158,59,170,191,158,59,196,191,158,59,206,191,158,59,199,191,158,59,174,191,158,59,133,191,158,59,76,191,158,59,1,191,158,59,165,190,158,59,56,190,158,59,187,189,158,59,44,189,158,59,141,188,158,59,221,187,158,59,28,187,158,59,74,186,158,59,103,185,158,59,116,184,158,59,111,183,158,59,89,182,158,59,51,181,158,59,
252,179,158,59,180,178,158,59,91,177,158,59,241,175,158,59,118,174,158,59,235,172,158,59,78,171,158,59,161,169,158,59,227,167,158,59,19,166,158,59,51,164,158,59,67,162,158,59,65,160,158,59,46,158,158,59,11,156,158,59,215,153,158,59,146,151,158,59,60,149,158,59,213,146,158,59,93,144,158,59,213,141,158,59,59,139,158,59,145,136,158,59,214,133,158,59,10,131,158,59,46,128,158,59,64,125,158,59,66,122,158,59,50,119,158,59,18,116,158,59,225,112,158,59,160,109,158,59,77,106,158,59,234,102,158,59,118,99,158,
59,241,95,158,59,91,92,158,59,180,88,158,59,253,84,158,59,52,81,158,59,91,77,158,59,114,73,158,59,119,69,158,59,107,65,158,59,79,61,158,59,34,57,158,59,228,52,158,59,150,48,158,59,54,44,158,59,198,39,158,59,69,35,158,59,179,30,158,59,17,26,158,59,94,21,158,59,153,16,158,59,197,11,158,59,223,6,158,59,233,1,158,59,226,252,157,59,202,247,157,59,161,242,157,59,104,237,157,59,30,232,157,59,195,226,157,59,87,221,157,59,219,215,157,59,78,210,157,59,176,204,157,59,1,199,157,59,66,193,157,59,114,187,157,59,
145,181,157,59,160,175,157,59,158,169,157,59,139,163,157,59,103,157,157,59,51,151,157,59,238,144,157,59,152,138,157,59,50,132,157,59,187,125,157,59,51,119,157,59,155,112,157,59,242,105,157,59,56,99,157,59,110,92,157,59,146,85,157,59,167,78,157,59,170,71,157,59,157,64,157,59,127,57,157,59,81,50,157,59,18,43,157,59,194,35,157,59,98,28,157,59,241,20,157,59,112,13,157,59,221,5,157,59,59,254,156,59,135,246,156,59,195,238,156,59,238,230,156,59,9,223,156,59,19,215,156,59,13,207,156,59,246,198,156,59,206,
190,156,59,150,182,156,59,77,174,156,59,244,165,156,59,138,157,156,59,15,149,156,59,132,140,156,59,232,131,156,59,60,123,156,59,127,114,156,59,178,105,156,59,212,96,156,59,230,87,156,59,231,78,156,59,215,69,156,59,183,60,156,59,135,51,156,59,70,42,156,59,244,32,156,59,146,23,156,59,32,14,156,59,157,4,156,59,9,251,155,59,101,241,155,59,177,231,155,59,236,221,155,59,22,212,155,59,48,202,155,59,58,192,155,59,51,182,155,59,28,172,155,59,244,161,155,59,188,151,155,59,115,141,155,59,26,131,155,59,177,120,
155,59,55,110,155,59,172,99,155,59,18,89,155,59,103,78,155,59,171,67,155,59,223,56,155,59,3,46,155,59,22,35,155,59,25,24,155,59,11,13,155,59,238,1,155,59,191,246,154,59,129,235,154,59,50,224,154,59,211,212,154,59,99,201,154,59,227,189,154,59,83,178,154,59,178,166,154,59,1,155,154,59,64,143,154,59,110,131,154,59,140,119,154,59,154,107,154,59,152,95,154,59,133,83,154,59,98,71,154,59,47,59,154,59,235,46,154,59,151,34,154,59,51,22,154,59,191,9,154,59,58,253,153,59,166,240,153,59,1,228,153,59,75,215,153,
59,134,202,153,59,176,189,153,59,202,176,153,59,212,163,153,59,206,150,153,59,183,137,153,59,144,124,153,59,89,111,153,59,18,98,153,59,187,84,153,59,84,71,153,59,220,57,153,59,85,44,153,59,189,30,153,59,21,17,153,59,93,3,153,59,149,245,152,59,188,231,152,59,212,217,152,59,219,203,152,59,211,189,152,59,186,175,152,59,145,161,152,59,88,147,152,59,15,133,152,59,182,118,152,59,77,104,152,59,212,89,152,59,75,75,152,59,178,60,152,59,9,46,152,59,79,31,152,59,134,16,152,59,173,1,152,59,196,242,151,59,202,
227,151,59,193,212,151,59,168,197,151,59,127,182,151,59,70,167,151,59,252,151,151,59,163,136,151,59,58,121,151,59,193,105,151,59,57,90,151,59,160,74,151,59,247,58,151,59,62,43,151,59,118,27,151,59,158,11,151,59,181,251,150,59,189,235,150,59,181,219,150,59,157,203,150,59,117,187,150,59,62,171,150,59,246,154,150,59,159,138,150,59,56,122,150,59,193,105,150,59,58,89,150,59,164,72,150,59,253,55,150,59,71,39,150,59,129,22,150,59,172,5,150,59,198,244,149,59,209,227,149,59,204,210,149,59,183,193,149,59,147,
176,149,59,95,159,149,59,27,142,149,59,199,124,149,59,100,107,149,59,241,89,149,59,110,72,149,59,220,54,149,59,58,37,149,59,136,19,149,59,199,1,149,59,246,239,148,59,21,222,148,59,37,204,148,59,37,186,148,59,22,168,148,59,246,149,148,59,200,131,148,59,137,113,148,59,60,95,148,59,222,76,148,59,113,58,148,59,245,39,148,59,105,21,148,59,205,2,148,59,34,240,147,59,103,221,147,59,157,202,147,59,195,183,147,59,218,164,147,59,225,145,147,59,217,126,147,59,194,107,147,59,154,88,147,59,100,69,147,59,30,50,
147,59,201,30,147,59,100,11,147,59,239,247,146,59,108,228,146,59,217,208,146,59,54,189,146,59,132,169,146,59,195,149,146,59,243,129,146,59,19,110,146,59,35,90,146,59,37,70,146,59,23,50,146,59,250,29,146,59,205,9,146,59,145,245,145,59],"i8",4,y.a+450560);
Q([70,225,145,59,235,204,145,59,130,184,145,59,9,164,145,59,128,143,145,59,233,122,145,59,66,102,145,59,140,81,145,59,199,60,145,59,243,39,145,59,15,19,145,59,28,254,144,59,27,233,144,59,9,212,144,59,233,190,144,59,186,169,144,59,123,148,144,59,45,127,144,59,209,105,144,59,101,84,144,59,234,62,144,59,95,41,144,59,198,19,144,59,30,254,143,59,103,232,143,59,160,210,143,59,203,188,143,59,230,166,143,59,243,144,143,59,240,122,143,59,223,100,143,59,190,78,143,59,143,56,143,59,80,34,143,59,3,12,143,59,
166,245,142,59,59,223,142,59,193,200,142,59,55,178,142,59,159,155,142,59,248,132,142,59,66,110,142,59,125,87,142,59,170,64,142,59,199,41,142,59,214,18,142,59,213,251,141,59,198,228,141,59,168,205,141,59,123,182,141,59,64,159,141,59,246,135,141,59,156,112,141,59,53,89,141,59,190,65,141,59,56,42,141,59,164,18,141,59,1,251,140,59,80,227,140,59,143,203,140,59,192,179,140,59,227,155,140,59,246,131,140,59,251,107,140,59,242,83,140,59,217,59,140,59,178,35,140,59,125,11,140,59,56,243,139,59,229,218,139,59,
132,194,139,59,20,170,139,59,149,145,139,59,8,121,139,59,109,96,139,59,194,71,139,59,10,47,139,59,66,22,139,59,109,253,138,59,136,228,138,59,150,203,138,59,148,178,138,59,133,153,138,59,103,128,138,59,58,103,138,59,255,77,138,59,182,52,138,59,94,27,138,59,247,1,138,59,131,232,137,59,0,207,137,59,111,181,137,59,207,155,137,59,33,130,137,59,101,104,137,59,154,78,137,59,193,52,137,59,218,26,137,59,228,0,137,59,224,230,136,59,206,204,136,59,174,178,136,59,127,152,136,59,67,126,136,59,248,99,136,59,159,
73,136,59,55,47,136,59,194,20,136,59,62,250,135,59,172,223,135,59,12,197,135,59,94,170,135,59,162,143,135,59,215,116,135,59,255,89,135,59,24,63,135,59,36,36,135,59,33,9,135,59,16,238,134,59,242,210,134,59,197,183,134,59,138,156,134,59,65,129,134,59,235,101,134,59,134,74,134,59,19,47,134,59,147,19,134,59,4,248,133,59,103,220,133,59,189,192,133,59,5,165,133,59,62,137,133,59,106,109,133,59,136,81,133,59,153,53,133,59,155,25,133,59,143,253,132,59,118,225,132,59,79,197,132,59,26,169,132,59,215,140,132,
59,135,112,132,59,41,84,132,59,189,55,132,59,67,27,132,59,188,254,131,59,39,226,131,59,132,197,131,59,211,168,131,59,21,140,131,59,74,111,131,59,112,82,131,59,137,53,131,59,148,24,131,59,146,251,130,59,130,222,130,59,101,193,130,59,58,164,130,59,1,135,130,59,187,105,130,59,104,76,130,59,6,47,130,59,152,17,130,59,28,244,129,59,146,214,129,59,251,184,129,59,86,155,129,59,164,125,129,59,229,95,129,59,24,66,129,59,62,36,129,59,86,6,129,59,97,232,128,59,95,202,128,59,80,172,128,59,51,142,128,59,8,112,
128,59,209,81,128,59,140,51,128,59,58,21,128,59,180,237,127,59,219,176,127,59,231,115,127,59,216,54,127,59,176,249,126,59,108,188,126,59,15,127,126,59,151,65,126,59,5,4,126,59,88,198,125,59,146,136,125,59,177,74,125,59,181,12,125,59,160,206,124,59,112,144,124,59,39,82,124,59,195,19,124,59,69,213,123,59,173,150,123,59,251,87,123,59,47,25,123,59,73,218,122,59,73,155,122,59,48,92,122,59,252,28,122,59,174,221,121,59,71,158,121,59,198,94,121,59,43,31,121,59,118,223,120,59,168,159,120,59,192,95,120,59,
190,31,120,59,163,223,119,59,110,159,119,59,31,95,119,59,183,30,119,59,53,222,118,59,154,157,118,59,230,92,118,59,24,28,118,59,48,219,117,59,47,154,117,59,21,89,117,59,225,23,117,59,149,214,116,59,47,149,116,59,175,83,116,59,23,18,116,59,101,208,115,59,154,142,115,59,182,76,115,59,185,10,115,59,163,200,114,59,115,134,114,59,43,68,114,59,202,1,114,59,80,191,113,59,188,124,113,59,16,58,113,59,76,247,112,59,110,180,112,59,119,113,112,59,104,46,112,59,64,235,111,59,255,167,111,59,166,100,111,59,51,33,
111,59,169,221,110,59,5,154,110,59,73,86,110,59,117,18,110,59,135,206,109,59,130,138,109,59,100,70,109,59,45,2,109,59,223,189,108,59,119,121,108,59,248,52,108,59,96,240,107,59,176,171,107,59,231,102,107,59,7,34,107,59,14,221,106,59,253,151,106,59,212,82,106,59,146,13,106,59,57,200,105,59,200,130,105,59,62,61,105,59,157,247,104,59,228,177,104,59,18,108,104,59,41,38,104,59,40,224,103,59,15,154,103,59,223,83,103,59,150,13,103,59,54,199,102,59,190,128,102,59,47,58,102,59,135,243,101,59,201,172,101,59,
242,101,101,59,4,31,101,59,255,215,100,59,226,144,100,59,173,73,100,59,97,2,100,59,254,186,99,59,131,115,99,59,241,43,99,59,72,228,98,59,135,156,98,59,175,84,98,59,192,12,98,59,186,196,97,59,156,124,97,59,104,52,97,59,28,236,96,59,185,163,96,59,63,91,96,59,175,18,96,59,7,202,95,59,72,129,95,59,115,56,95,59,134,239,94,59,131,166,94,59,105,93,94,59,56,20,94,59,240,202,93,59,145,129,93,59,28,56,93,59,145,238,92,59,238,164,92,59,53,91,92,59,102,17,92,59,127,199,91,59,131,125,91,59,112,51,91,59,70,233,
90,59,6,159,90,59,176,84,90,59,68,10,90,59,193,191,89,59,39,117,89,59,120,42,89,59,178,223,88,59,215,148,88,59,229,73,88,59,220,254,87,59,190,179,87,59,138,104,87,59,64,29,87,59,224,209,86,59,105,134,86,59,221,58,86,59,59,239,85,59,131,163,85,59,182,87,85,59,210,11,85,59,217,191,84,59,202,115,84,59,165,39,84,59,107,219,83,59,27,143,83,59,182,66,83,59,59,246,82,59,170,169,82,59,4,93,82,59,72,16,82,59,119,195,81,59,145,118,81,59,149,41,81,59,132,220,80,59,94,143,80,59,34,66,80,59,209,244,79,59,107,
167,79,59,240,89,79,59,95,12,79,59,186,190,78,59,255,112,78,59,47,35,78,59,75,213,77,59,81,135,77,59,67,57,77,59,31,235,76,59,231,156,76,59,154,78,76,59,56,0,76,59,193,177,75,59,54,99,75,59,150,20,75,59,225,197,74,59,24,119,74,59,58,40,74,59,71,217,73,59,64,138,73,59,37,59,73,59,245,235,72,59,176,156,72,59,87,77,72,59,234,253,71,59,104,174,71,59,211,94,71,59,40,15,71,59,106,191,70,59,152,111,70,59,177,31,70,59,182,207,69,59,167,127,69,59,132,47,69,59,77,223,68,59,2,143,68,59,164,62,68,59,49,238,67,
59,170,157,67,59,16,77,67,59,97,252,66,59,159,171,66,59,201,90,66,59,224,9,66,59,226,184,65,59,209,103,65,59,173,22,65,59,117,197,64,59,41,116,64,59,202,34,64,59,88,209,63,59,210,127,63,59,56,46,63,59,139,220,62,59,203,138,62,59,248,56,62,59,17,231,61,59,23,149,61,59,10,67,61,59,234,240,60,59,183,158,60,59,112,76,60,59,23,250,59,59,171,167,59,59,43,85,59,59,153,2,59,59,243,175,58,59,59,93,58,59,112,10,58,59,146,183,57,59,162,100,57,59,159,17,57,59,137,190,56,59,96,107,56,59,37,24,56,59,215,196,55,
59,118,113,55,59,4,30,55,59,126,202,54,59,230,118,54,59,60,35,54,59,127,207,53,59,176,123,53,59,207,39,53,59,220,211,52,59,214,127,52,59,190,43,52,59,148,215,51,59,87,131,51,59,9,47,51,59,169,218,50,59,54,134,50,59,178,49,50,59,28,221,49,59,115,136,49,59,185,51,49,59,237,222,48,59,16,138,48,59,32,53,48,59,31,224,47,59,12,139,47,59,231,53,47,59,177,224,46,59,105,139,46,59,16,54,46,59,165,224,45,59,41,139,45,59,155,53,45,59,252,223,44,59,75,138,44,59,137,52,44,59,182,222,43,59,210,136,43,59,220,50,
43,59,213,220,42,59,189,134,42,59,148,48,42,59,90,218,41,59,15,132,41,59,179,45,41,59,70,215,40,59,200,128,40,59,57,42,40,59,153,211,39,59,232,124,39,59,39,38,39,59,85,207,38,59,114,120,38,59,126,33,38,59,122,202,37,59,102,115,37,59,64,28,37,59,11,197,36,59,196,109,36,59,110,22,36,59,6,191,35,59,143,103,35,59,7,16,35,59,111,184,34,59,198,96,34,59,14,9,34,59,69,177,33,59,108,89,33,59,131,1,33,59,138,169,32,59,129,81,32,59,103,249,31,59,62,161,31,59,5,73,31,59,188,240,30,59,99,152,30,59,251,63,30,59,
130,231,29,59,250,142,29,59,99,54,29,59,187,221,28,59,4,133,28,59,61,44,28,59,103,211,27,59,129,122,27,59,140,33,27,59,135,200,26,59,115,111,26,59,80,22,26,59,29,189,25,59,219,99,25,59,138,10,25,59,41,177,24,59,186,87,24,59,59,254,23,59,173,164,23,59,16,75,23,59,100,241,22,59,169,151,22,59,223,61,22,59,6,228,21,59,31,138,21,59,40,48,21,59,35,214,20,59,15,124,20,59,236,33,20,59,187,199,19,59,123,109,19,59,44,19,19,59,207,184,18,59,99,94,18,59,233,3,18,59,96,169,17,59,201,78,17,59,36,244,16,59,112,
153,16,59,174,62,16,59,221,227,15,59,255,136,15,59,18,46,15,59,23,211,14,59,14,120,14,59,247,28,14,59,210,193,13,59,159,102,13,59,94,11,13,59,15,176,12,59,178,84,12,59,72,249,11,59,207,157,11,59,73,66,11,59,181,230,10,59,20,139,10,59,101,47,10,59,168,211,9,59,222,119,9,59,6,28,9,59,32,192,8,59,46,100,8,59,45,8,8,59,32,172,7,59,5,80,7,59,221,243,6,59,167,151,6,59,101,59,6,59,21,223,5,59,184,130,5,59,78,38,5,59,215,201,4,59,83,109,4,59,194,16,4,59,36,180,3,59,121,87,3,59,193,250,2,59,253,157,2,59,43,
65,2,59,77,228,1,59,98,135,1,59,107,42,1,59,103,205,0,59,86,112,0,59,57,19,0,59,30,108,255,58,178,177,254,58,45,247,253,58,143,60,253,58,216,129,252,58,9,199,251,58,33,12,251,58,32,81,250,58,8,150,249,58,215,218,248,58,142,31,248,58,44,100,247,58,179,168,246,58,33,237,245,58,120,49,245,58,183,117,244,58,222,185,243,58,237,253,242,58,229,65,242,58,198,133,241,58,143,201,240,58,64,13,240,58,218,80,239,58,94,148,238,58,202,215,237,58,30,27,237,58,92,94,236,58,132,161,235,58,148,228,234,58,142,39,234,
58,113,106,233,58,61,173,232,58,243,239,231,58,146,50,231,58,28,117,230,58,143,183,229,58,235,249,228,58,50,60,228,58,99,126,227,58,126,192,226,58,131,2,226,58,114,68,225,58,76,134,224,58,16,200,223,58,190,9,223,58,87,75,222,58,219,140,221,58,73,206,220,58,162,15,220,58,231,80,219,58,22,146,218,58,48,211,217,58,53,20,217,58,37,85,216,58,1,150,215,58,200,214,214,58,123,23,214,58,25,88,213,58,162,152,212,58,24,217,211,58,121,25,211,58,198,89,210,58,255,153,209,58,36,218,208,58,53,26,208,58,50,90,207,
58,27,154,206,58,241,217,205,58,179,25,205,58,98,89,204,58,253,152,203,58,133,216,202,58,250,23,202,58,91,87,201,58,170,150,200,58,229,213,199,58,13,21,199,58,35,84,198,58,38,147,197,58,22,210,196,58,243,16,196,58,190,79,195,58,119,142,194,58,29,205,193,58,177,11,193,58,50,74,192,58,162,136,191,58,255,198,190,58,75,5,190,58,133,67,189,58,172,129,188,58,194,191,187,58,199,253,186,58,186,59,186,58,155,121,185,58,107,183,184,58,42,245,183,58,216,50,183,58,116,112,182,58,255,173,181,58,122,235,180,58,
227,40,180,58,60,102,179,58,132,163,178,58,187,224,177,58,225,29,177,58,248,90,176,58,253,151,175,58,243,212,174,58,216,17,174,58,173,78,173,58,114,139,172,58,39,200,171,58,204,4,171,58,97,65,170,58,230,125,169,58,92,186,168,58,194,246,167,58,24,51,167,58,96,111,166,58,151,171,165,58,192,231,164,58,217,35,164,58,228,95,163,58,223,155,162,58,203,215,161,58,169,19,161,58,119,79,160,58,56,139,159,58,233,198,158,58,140,2,158,58,32,62,157,58,166,121,156,58,30,181,155,58,136,240,154,58,227,43,154,58,49,
103,153,58,112,162,152,58,162,221,151,58,198,24,151,58,220,83,150,58,229,142,149,58,224,201,148,58,205,4,148,58,174,63,147,58,128,122,146,58,70,181,145,58,255,239,144,58,170,42,144,58,73,101,143,58,219,159,142,58,96,218,141,58,216,20,141,58,68,79,140,58,163,137,139,58,245,195,138,58,59,254,137,58,117,56,137,58,163,114,136,58,197,172,135,58,218,230,134,58,228,32,134,58,226,90,133,58,212,148,132,58,186,206,131,58,148,8,131,58,99,66,130,58,39,124,129,58,223,181,128,58,24,223,127,58,91,82,126,58,136,
197,124,58,159,56,123,58,160,171,121,58,140,30,120,58,97,145,118,58,33,4,117,58,204,118,115,58,98,233,113,58,227,91,112,58,79,206,110,58,167,64,109,58,234,178,107,58,25,37,106,58,52,151,104,58,58,9,103,58,45,123,101,58,13,237,99,58,217,94,98,58,145,208,96,58,55,66,95,58,202,179,93,58,74,37,92,58,183,150,90,58,18,8,89,58,90,121,87,58,145,234,85,58,181,91,84,58,200,204,82,58,201,61,81,58,185,174,79,58,151,31,78,58,100,144,76,58,33,1,75,58,204,113,73,58,103,226,71,58,242,82,70,58,108,195,68,58,214,51,
67,58,49,164,65,58,123,20,64,58,182,132,62,58,225,244,60,58,253,100,59,58,11,213,57,58,9,69,56,58,248,180,54,58,217,36,53,58,171,148,51,58,111,4,50,58,37,116,48,58,205,227,46,58,103,83,45,58,244,194,43,58,115,50,42,58,229,161,40,58,74,17,39,58,162,128,37,58,237,239,35,58,43,95,34,58,93,206,32,58,131,61,31,58,157,172,29,58,171,27,28,58,173,138,26,58,163,249,24,58,142,104,23,58,110,215,21,58,67,70,20,58,13,181,18,58,204,35,17,58,128,146,15,58,42,1,14,58,202,111,12,58,96,222,10,58,235,76,9,58,109,187,
7,58,230,41,6,58,85,152,4,58,186,6,3,58,23,117,1,58,214,198,255,57,108,163,252,57,240,127,249,57,100,92,246,57,200,56,243,57,27,21,240,57,95,241,236,57,147,205,233,57,184,169,230,57,206,133,227,57,213,97,224,57,207,61,221,57,187,25,218,57,153,245,214,57,106,209,211,57,46,173,208,57,230,136,205,57,145,100,202,57,49,64,199,57,197,27,196,57,79,247,192,57,205,210,189,57,65,174,186,57,171,137,183,57,11,101,180,57,97,64,177,57,175,27,174,57,243,246,170,57,48,210,167,57,100,173,164,57,144,136,161,57,181,
99,158,57,211,62,155,57,234,25,152,57,250,244,148,57,5,208,145,57,9,171,142,57,9,134,139,57,3,97,136,57,248,59,133,57,233,22,130,57,172,227,125,57,126,153,119,57,73,79,113,57,14,5,107,57,206,186,100,57,136,112,94,57,63,38,88,57,242,219,81,57,162,145,75,57,80,71,69,57,253,252,62,57,169,178,56,57,84,104,50,57,1,30,44,57,174,211,37,57,93,137,31,57,15,63,25,57,196,244,18,57,124,170,12,57,58,96,6,57,252,21,0,57,137,151,243,56,39,3,231,56,211,110,218,56,143,218,205,56,92,70,193,56,59,178,180,56,47,30,168,
56,55,138,155,56,86,246,142,56,140,98,130,56,184,157,107,56,141,118,82,56,152,79,57,56,223,40,32,56,98,2,7,56,73,184,219,55,83,108,169,55,206,65,110,55,21,172,9,55,19,94,20,54,93,239,125,182,245,13,36,183,101,79,132,183,37,151,182,183,53,222,232,183,73,146,13,184,26,181,38,184,139,215,63,184,154,249,88,184,68,27,114,184,67,158,133,184,175,46,146,184,228,190,158,184,226,78,171,184,166,222,183,184,48,110,196,184,126,253,208,184,143,140,221,184,97,27,234,184,244,169,246,184,34,156,1,185,42,227,7,185,
15,42,14,185,210,112,20,185,113,183,26,185,237,253,32,185,68,68,39,185,118,138,45,185,130,208,51,185,103,22,58,185,37,92,64,185,187,161,70,185,40,231,76,185,109,44,83,185,135,113,89,185,119,182,95,185,59,251,101,185,211,63,108,185,63,132,114,185,126,200,120,185,143,12,127,185,57,168,130,185,18,202,133,185,212,235,136,185,125,13,140,185,13,47,143,185,133,80,146,185,227,113,149,185,40,147,152,185,83,180,155,185,99,213,158,185,89,246,161,185,52,23,165,185,244,55,168,185,152,88,171,185,32,121,174,185,
140,153,177,185,220,185,180,185,14,218,183,185,35,250,186,185,27,26,190,185,244,57,193,185,175,89,196,185,76,121,199,185,202,152,202,185,41,184,205,185,104,215,208,185,135,246,211,185,133,21,215,185,100,52,218,185,33,83,221,185,189,113,224,185,56,144,227,185,144,174,230,185,199,204,233,185,219,234,236,185,204,8,240,185,153,38,243,185,68,68,246,185,202,97,249,185,44,127,252,185,106,156,255,185,193,92,1,186,59,235,2,186,162,121,4,186,246,7,6,186,55,150,7,186,101,36,9,186,127,178,10,186,134,64,12,186,
121,206,13,186,88,92,15,186,35,234,16,186,218,119,18,186,124,5,20,186,10,147,21,186,131,32,23,186,231,173,24,186,54,59,26,186,112,200,27,186,148,85,29,186,163,226,30,186,156,111,32,186,127,252,33,186,77,137,35,186,4,22,37,186,164,162,38,186,46,47,40,186,162,187,41,186,254,71,43,186,68,212,44,186,114,96,46,186,137,236,47,186,136,120,49,186,112,4,51,186,64,144,52,186,248,27,54,186,151,167,55,186,31,51,57,186,141,190,58,186,227,73,60,186,33,213,61,186,69,96,63,186,80,235,64,186,66,118,66,186,26,1,68,
186,217,139,69,186,126,22,71,186,9,161,72,186,122,43,74,186,208,181,75,186,12,64,77,186,46,202,78,186,52,84,80,186,32,222,81,186,240,103,83,186,166,241,84,186,64,123,86,186,190,4,88,186,32,142,89,186,103,23,91,186,145,160,92,186,160,41,94,186,145,178,95,186,103,59,97,186,31,196,98,186,187,76,100,186,57,213,101,186,155,93,103,186,223,229,104,186,5,110,106,186,14,246,107,186,249,125,109,186,197,5,111,186,116,141,112,186,4,21,114,186,118,156,115,186,201,35,117,186,253,170,118,186,19,50,120,186,9,185,
121,186,224,63,123,186,151,198,124,186,47,77,126,186,166,211,127,186,255,172,128,186,27,112,129,186,39,51,130,186,34,246,130,186,14,185,131,186,232,123,132,186,179,62,133,186,109,1,134,186,22,196,134,186,174,134,135,186,54,73,136,186,173,11,137,186,19,206,137,186,104,144,138,186,172,82,139,186,222,20,140,186,255,214,140,186,15,153,141,186,14,91,142,186,251,28,143,186,215,222,143,186,160,160,144,186,89,98,145,186,255,35,146,186,147,229,146,186,22,167,147,186,134,104,148,186,228,41,149,186,48,235,149,
186,106,172,150,186,145,109,151,186,166,46,152,186,168,239,152,186,152,176,153,186,117,113,154,186,63,50,155,186,246,242,155,186,155,179,156,186,44,116,157,186,170,52,158,186,21,245,158,186,109,181,159,186,178,117,160,186,227,53,161,186,1,246,161,186,11,182,162,186,1,118,163,186,228,53,164,186,179,245,164,186,110,181,165,186,21,117,166,186,168,52,167,186,39,244,167,186,145,179,168,186,232,114,169,186,42,50,170,186,88,241,170,186,113,176,171,186,117,111,172,186,101,46,173,186,64,237,173,186,6,172,
174,186,184,106,175,186,84,41,176,186,220,231,176,186,78,166,177,186,171,100,178,186,242,34,179,186,37,225,179,186,66,159,180,186,73,93,181,186,59,27,182,186,23,217,182,186,221,150,183,186,141,84,184,186,40,18,185,186,173,207,185,186,27,141,186,186,115,74,187,186,181,7,188,186,225,196,188,186,246,129,189,186,245,62,190,186,222,251,190,186,175,184,191,186,107,117,192,186,15,50,193,186,156,238,193,186,19,171,194,186,114,103,195,186,187,35,196,186,236,223,196,186,6,156,197,186,9,88,198,186,244,19,199,
186,200,207,199,186,132,139,200,186,41,71,201,186,182,2,202,186,43,190,202,186,136,121,203,186,206,52,204,186,251,239,204,186,17,171,205,186,14,102,206,186,243,32,207,186,191,219,207,186,116,150,208,186,15,81,209,186,147,11,210,186,253,197,210,186,79,128,211,186,136,58,212,186,169,244,212,186,176,174,213,186,158,104,214,186,116,34,215,186,48,220,215,186,211,149,216,186,92,79,217,186,205,8,218,186,36,194,218,186,97,123,219,186,132,52,220,186,142,237,220,186,127,166,221,186,85,95,222,186,17,24,223,
186,180,208,223,186,60,137,224,186,171,65,225,186,255,249,225,186,57,178,226,186,88,106,227,186,93,34,228,186,71,218,228,186,23,146,229,186,205,73,230,186,103,1,231,186,231,184,231,186,76,112,232,186,149,39,233,186,196,222,233,186,216,149,234,186,208,76,235,186,174,3,236,186,111,186,236,186,22,113,237,186,161,39,238,186,16,222,238,186,100,148,239,186,156,74,240,186,184,0,241,186,185,182,241,186,157,108,242,186,102,34,243,186,18,216,243,186,162,141,244,186,22,67,245,186,110,248,245,186,169,173,246,
186,200,98,247,186,203,23,248,186,176,204,248,186,121,129,249,186,38,54,250,186,181,234,250,186,40,159,251,186,126,83,252,186,182,7,253,186,210,187,253,186,208,111,254,186,177,35,255,186,117,215,255,186,141,69,0,187,82,159,0,187,7,249,0,187,174,82,1,187,70,172,1,187,207,5,2,187,73,95,2,187,180,184,2,187,17,18,3,187,94,107,3,187,156,196,3,187,203,29,4,187,235,118,4,187,251,207,4,187,253,40,5,187,239,129,5,187,210,218,5,187,165,51,6,187,105,140,6,187,30,229,6,187,196,61,7,187,90,150,7,187,224,238,7,
187,87,71,8,187,190,159,8,187,22,248,8,187,94,80,9,187,150,168,9,187,191,0,10,187,215,88,10,187,224,176,10,187,218,8,11,187,195,96,11,187,156,184,11,187,102,16,12,187,31,104,12,187,201,191,12,187,98,23,13,187,236,110,13,187,101,198,13,187,206,29,14,187,39,117,14,187,112,204,14,187,168,35,15,187,209,122,15,187,232,209,15,187,240,40,16,187,231,127,16,187,206,214,16,187,164,45,17,187,105,132,17,187,31,219,17,187,195,49,18,187,87,136,18,187,218,222,18,187,77,53,19,187,175,139,19,187,0,226,19,187,64,56,
20,187,112,142,20,187,143,228,20,187,156,58,21,187,153,144,21,187,133,230,21,187,96,60,22,187,42,146,22,187,227,231,22,187,138,61,23,187,33,147,23,187,166,232,23,187,27,62,24,187,126,147,24,187,207,232,24,187,16,62,25,187,63,147,25,187,92,232,25,187,104,61,26,187,99,146,26,187,76,231,26,187,36,60,27,187,234,144,27,187,159,229,27,187,66,58,28,187,211,142,28,187,83,227,28,187,193,55,29,187,29,140,29,187,104,224,29,187,160,52,30,187,199,136,30,187,220,220,30,187,223,48,31,187,208,132,31,187,174,216,
31,187,123,44,32,187,54,128,32,187,223,211,32,187,117,39,33,187,250,122,33,187,108,206,33,187,204,33,34,187,26,117,34,187,85,200,34,187,126,27,35,187,149,110,35,187,153,193,35,187,139,20,36,187,107,103,36,187,56,186,36,187,242,12,37,187,154,95,37,187,47,178,37,187,177,4,38,187,33,87,38,187,127,169,38,187,201,251,38,187,1,78,39,187,37,160,39,187,55,242,39,187,55,68,40,187,35,150,40,187,252,231,40,187,195,57,41,187,118,139,41,187,22,221,41,187,163,46,42,187,29,128,42,187,132,209,42,187,216,34,43,187,
25,116,43,187,70,197,43,187,96,22,44,187,103,103,44,187,91,184,44,187,59,9,45,187,7,90,45,187,193,170,45,187,103,251,45,187,249,75,46,187,120,156,46,187,227,236,46,187,59,61,47,187,127,141,47,187,175,221,47,187,204,45,48,187,212,125,48,187,202,205,48,187,171,29,49,187,121,109,49,187,50,189,49,187,216,12,50,187,106,92,50,187,232,171,50,187,82,251,50,187,168,74,51,187,234,153,51,187,24,233,51,187,49,56,52,187,55,135,52,187,40,214,52,187,6,37,53,187,207,115,53,187,131,194,53,187,36,17,54,187,176,95,
54,187,39,174,54,187,139,252,54,187,218,74,55,187,20,153,55,187,58,231,55,187,75,53,56,187,72,131,56,187,49,209,56,187,4,31,57,187,195,108,57,187,110,186,57,187,3,8,58,187,132,85,58,187,240,162,58,187,71,240,58,187,138,61,59,187,183,138,59,187,208,215,59,187,212,36,60,187,195,113,60,187,156,190,60,187,97,11,61,187,17,88,61,187,172,164,61,187,49,241,61,187,162,61,62,187,253,137,62,187,67,214,62,187,116,34,63,187,143,110,63,187,149,186,63,187,134,6,64,187,98,82,64,187,40,158,64,187,216,233,64,187,116,
53,65,187,249,128,65,187,106,204,65,187,196,23,66,187,10,99,66,187,57,174,66,187,83,249,66,187,87,68,67,187,70,143,67,187,31,218,67,187,226,36,68,187,143,111,68,187,38,186,68,187,168,4,69,187,20,79,69,187,106,153,69,187,169,227,69,187,211,45,70,187,231,119,70,187,229,193,70,187,205,11,71,187,159,85,71,187,91,159,71,187,0,233,71,187,144,50,72,187,9,124,72,187,108,197,72,187,184,14,73,187,239,87,73,187,15,161,73,187,24,234,73,187,12,51,74,187,233,123,74,187,175,196,74,187,95,13,75,187,249,85,75,187,
124,158,75,187,232,230,75,187,62,47,76,187,125,119,76,187,166,191,76,187,184,7,77,187,179,79,77,187,152,151,77,187,101,223,77,187,28,39,78,187,189,110,78,187,70,182,78,187,184,253,78,187,20,69,79,187,89,140,79,187,134,211,79,187,157,26,80,187,157,97,80,187,133,168,80,187,87,239,80,187,17,54,81,187,181,124,81,187,65,195,81,187,182,9,82,187,20,80,82,187,90,150,82,187,137,220,82,187,161,34,83,187,162,104,83,187,139,174,83,187,93,244,83,187,24,58,84,187,187,127,84,187,71,197,84,187,187,10,85,187,23,80,
85,187,92,149,85,187,138,218,85,187,160,31,86,187,158,100,86,187,133,169,86,187,84,238,86,187,11,51,87,187,170,119,87,187,50,188,87,187,162,0,88,187,250,68,88,187,58,137,88,187,99,205,88,187,115,17,89,187,108,85,89,187,76,153,89,187,21,221,89,187,197,32,90,187,94,100,90,187,222,167,90,187,71,235,90,187,151,46,91,187,207,113,91,187,239,180,91,187,247,247,91,187,230,58,92,187,190,125,92,187,125,192,92,187,35,3,93,187,178,69,93,187,40,136,93,187,133,202,93,187,202,12,94,187,247,78,94,187,11,145,94,187,
7,211,94,187,235,20,95,187,181,86,95,187,103,152,95,187,1,218,95,187,130,27,96,187,234,92,96,187,58,158,96,187,113,223,96,187,143,32,97,187,148,97,97,187,129,162,97,187,85,227,97,187,16,36,98,187,178,100,98,187,59,165,98,187,172,229,98,187,3,38,99,187,66,102,99,187,103,166,99,187,116,230,99,187,103,38,100,187,65,102,100,187,3,166,100,187,171,229,100,187,58,37,101,187,176,100,101,187,13,164,101,187,80,227,101,187,122,34,102,187,139,97,102,187,131,160,102,187,97,223,102,187,38,30,103,187,210,92,103,
187,100,155,103,187,221,217,103,187,61,24,104,187,131,86,104,187,175,148,104,187,194,210,104,187,188,16,105,187,156,78,105,187,98,140,105,187,15,202,105,187,162,7,106,187,27,69,106,187,123,130,106,187,193,191,106,187,237,252,106,187,0,58,107,187,249,118,107,187,216,179,107,187,157,240,107,187,72,45,108,187,218,105,108,187,81,166,108,187,175,226,108,187,242,30,109,187,28,91,109,187,44,151,109,187,33,211,109,187,253,14,110,187,191,74,110,187,102,134,110,187,243,193,110,187,103,253,110,187,192,56,111,
187,255,115,111,187,35,175,111,187,46,234,111,187,30,37,112,187,244,95,112,187,175,154,112,187,81,213,112,187,216,15,113,187,68,74,113,187,151,132,113,187,206,190,113,187,236,248,113,187,238,50,114,187,215,108,114,187,165,166,114,187,88,224,114,187,241,25,115,187,111,83,115,187,211,140,115,187,28,198,115,187,74,255,115,187,94,56,116,187,87,113,116,187,53,170,116,187,249,226,116,187,162,27,117,187,48,84,117,187,163,140,117,187,251,196,117,187,57,253,117,187,92,53,118,187,99,109,118,187,80,165,118,
187,34,221,118,187,217,20,119,187,117,76,119,187,246,131,119,187,92,187,119,187,167,242,119,187,215,41,120,187,236,96,120,187,230,151,120,187,196,206,120,187,136,5,121,187,48,60,121,187,189,114,121,187,47,169,121,187,134,223,121,187,193,21,122,187,225,75,122,187,230,129,122,187,208,183,122,187,158,237,122,187,81,35,123,187,232,88,123,187,100,142,123,187,197,195,123,187,10,249,123,187,51,46,124,187,66,99,124,187,52,152,124,187,11,205,124,187,199,1,125,187,103,54,125,187,235,106,125,187,84,159,125,
187,161,211,125,187,211,7,126,187,233,59,126,187,227,111,126,187,194,163,126,187,132,215,126,187,43,11,127,187,182,62,127,187,38,114,127,187,121,165,127,187,177,216,127,187,231,5,128,187,103,31,128,187,217,56,128,187,61,82,128,187,147,107,128,187,219,132,128,187,21,158,128,187,65,183,128,187,96,208,128,187,112,233,128,187,114,2,129,187,102,27,129,187,76,52,129,187,36,77,129,187,238,101,129,187,170,126,129,187,88,151,129,187,247,175,129,187,137,200,129,187,12,225,129,187,130,249,129,187,233,17,130,
187,66,42,130,187,141,66,130,187,202,90,130,187,248,114,130,187,25,139,130,187,43,163,130,187,47,187,130,187,37,211,130,187,12,235,130,187,230,2,131,187,177,26,131,187,110,50,131,187,28,74,131,187,189,97,131,187,79,121,131,187,211,144,131,187,72,168,131,187,176,191,131,187,8,215,131,187,83,238,131,187,143,5,132,187,189,28,132,187,221,51,132,187,238,74,132,187,241,97,132,187,230,120,132,187,204,143,132,187,164,166,132,187,109,189,132,187,40,212,132,187,213,234,132,187,115,1,133,187,2,24,133,187,132,
46,133,187,246,68,133,187,91,91,133,187,177,113,133,187,248,135,133,187,49,158,133,187,91,180,133,187,119,202,133,187,133,224,133,187,132,246,133,187,116,12,134,187,86,34,134,187,41,56,134,187,238,77,134,187,164,99,134,187,76,121,134,187,229,142,134,187,111,164,134,187,235,185,134,187,88,207,134,187,183,228,134,187,7,250,134,187,72,15,135,187,123,36,135,187,159,57,135,187,181,78,135,187,188,99,135,187,180,120,135,187,157,141,135,187,120,162,135,187,68,183,135,187,2,204,135,187,176,224,135,187,80,
245,135,187,226,9,136,187,100,30,136,187,216,50,136,187,61,71,136,187,147,91,136,187,219,111,136,187,20,132,136,187,62,152,136,187,89,172,136,187,101,192,136,187,99,212,136,187,82,232,136,187,50,252,136,187,3,16,137,187,197,35,137,187,121,55,137,187,30,75,137,187,179,94,137,187,58,114,137,187,178,133,137,187,28,153,137,187,118,172,137,187,193,191,137,187,254,210,137,187,44,230,137,187,74,249,137,187,90,12,138,187,91,31,138,187,77,50,138,187,48,69,138,187,4,88,138,187,201,106,138,187,127,125,138,187,
39,144,138,187,191,162,138,187,72,181,138,187,194,199,138,187,45,218,138,187,138,236,138,187,215,254,138,187,21,17,139,187,68,35,139,187,100,53,139,187,118,71,139,187,120,89,139,187,107,107,139,187,79,125,139,187,36,143,139,187,233,160,139,187,160,178,139,187,72,196,139,187,224,213,139,187,106,231,139,187,228,248,139,187,80,10,140,187,172,27,140,187,249,44,140,187,55,62,140,187,101,79,140,187,133,96,140,187,149,113,140,187,151,130,140,187,137,147,140,187,108,164,140,187,64,181,140,187,4,198,140,187,
186,214,140,187,96,231,140,187,247,247,140,187,127,8,141,187,247,24,141,187,97,41,141,187,187,57,141,187,6,74,141,187,66,90,141,187,110,106,141,187,139,122,141,187,153,138,141,187,152,154,141,187,135,170,141,187,104,186,141,187,56,202,141,187,250,217,141,187,172,233,141,187,79,249,141,187,227,8,142,187,103,24,142,187,220,39,142,187,66,55,142,187,153,70,142,187,224,85,142,187,24,101,142,187,64,116,142,187,89,131,142,187,99,146,142,187,93,161,142,187,72,176,142,187,36,191,142,187,240,205,142,187,173,
220,142,187,91,235,142,187,249,249,142,187,135,8,143,187,7,23,143,187,119,37,143,187,215,51,143,187,40,66,143,187,106,80,143,187,156,94,143,187,191,108,143,187,210,122,143,187,214,136,143,187,203,150,143,187,176,164,143,187,133,178,143,187,75,192,143,187,2,206,143,187,169,219,143,187,65,233,143,187,201,246,143,187,65,4,144,187,171,17,144,187,4,31,144,187,79,44,144,187,137,57,144,187,180,70,144,187,208,83,144,187,220,96,144,187,217,109,144,187,198,122,144,187,164,135,144,187,114,148,144,187,48,161,
144,187,223,173,144,187,126,186,144,187,14,199,144,187,142,211,144,187,255,223,144,187,96,236,144,187,178,248,144,187,244,4,145,187,38,17,145,187,73,29,145,187,92,41,145,187,95,53,145,187,83,65,145,187,56,77,145,187,13,89,145,187,210,100,145,187,135,112,145,187,45,124,145,187,195,135,145,187,74,147,145,187,193,158,145,187,40,170,145,187,128,181,145,187,200,192,145,187,1,204,145,187,41,215,145,187,67,226,145,187,76,237,145,187,70,248,145,187,48,3,146,187,10,14,146,187,213,24,146,187,144,35,146,187,
60,46,146,187,215,56,146,187,99,67,146,187,224,77,146,187,76,88,146,187,169,98,146,187,246,108,146,187,52,119,146,187,98,129,146,187,128,139,146,187,142,149,146,187,141,159,146,187,123,169,146,187,91,179,146,187,42,189,146,187,234,198,146,187,154,208,146,187,58,218,146,187,202,227,146,187,75,237,146,187,188,246,146,187,29,0,147,187,111,9,147,187,176,18,147,187,226,27,147,187,4,37,147,187,23,46,147,187,25,55,147,187,12,64,147,187,239,72,147,187,194,81,147,187,134,90,147,187,57,99,147,187,221,107,147,
187,113,116,147,187,245,124,147,187,106,133,147,187,206,141,147,187,35,150,147,187,104,158,147,187,157,166,147,187,195,174,147,187,216,182,147,187,222,190,147,187,212,198,147,187,186,206,147,187,144,214,147,187,87,222,147,187,14,230,147,187,180,237,147,187,75,245,147,187,210,252,147,187,74,4,148,187,177,11,148,187,9,19,148,187,80,26,148,187,136,33,148,187,176,40,148,187,200,47,148,187,209,54,148,187,201,61,148,187,177,68,148,187,138,75,148,187,83,82,148,187,12,89,148,187,181,95,148,187,78,102,148,
187,216,108,148,187,81,115,148,187,187,121,148,187,20,128,148,187,94,134,148,187,152,140,148,187,194,146,148,187,220,152,148,187,230,158,148,187,225,164,148,187,203,170,148,187,166,176,148,187,112,182,148,187,43,188,148,187,214,193,148,187,113,199,148,187,252,204,148,187,119,210,148,187,226,215,148,187,62,221,148,187,137,226,148,187,197,231,148,187,240,236,148,187,12,242,148,187,24,247,148,187,20,252,148,187,0,1,149,187,220,5,149,187,168,10,149,187,100,15,149,187,16,20,149,187,172,24,149,187,57,29,
149,187,181,33,149,187,34,38,149,187,126,42,149,187,203,46,149,187,8,51,149,187,53,55,149,187,81,59,149,187,94,63,149,187,91,67,149,187,72,71,149,187,38,75,149,187,243,78,149,187,176,82,149,187,93,86,149,187,251,89,149,187,136,93,149,187,6,97,149,187,115,100,149,187,209,103,149,187,30,107,149,187,92,110,149,187,138,113,149,187,168,116,149,187,182,119,149,187,180,122,149,187,162,125,149,187,128,128,149,187,78,131,149,187,12,134,149,187,186,136,149,187,88,139,149,187,231,141,149,187,101,144,149,187,
211,146,149,187,50,149,149,187,128,151,149,187,191,153,149,187,237,155,149,187,12,158,149,187,27,160,149,187,25,162,149,187,8,164,149,187,231,165,149,187,182,167,149,187,117,169,149,187,36,171,149,187,195,172,149,187,82,174,149,187,209,175,149,187,64,177,149,187,159,178,149,187,239,179,149,187,46,181,149,187,93,182,149,187,125,183,149,187,140,184,149,187,140,185,149,187,123,186,149,187,91,187,149,187,43,188,149,187,234,188,149,187,154,189,149,187,58,190,149,187,202,190,149,187,74,191,149,187,186,
191,149,187,26,192,149,187,106,192,149,187,170,192,149,187,218,192,149,187,250,192,149,187,11,193,149,187,11,193,149,187,252,192,149,187,220,192,149,187,173,192,149,187,109,192,149,187,30,192,149,187,191,191,149,187,79,191,149,187,208,190,149,187,65,190,149,187,162,189,149,187,243,188,149,187,53,188,149,187,102,187,149,187,135,186,149,187,152,185,149,187,154,184,149,187,139,183,149,187,109,182,149,187,63,181,149,187,0,180,149,187,178,178,149,187,84,177,149,187,230,175,149,187,104,174,149,187,218,
172,149,187,61,171,149,187,143,169,149,187,209,167,149,187,4,166,149,187,39,164,149,187,57,162,149,187,60,160,149,187,47,158,149,187,18,156,149,187,229,153,149,187,168,151,149,187,92,149,149,187,255,146,149,187,147,144,149,187,22,142,149,187,138,139,149,187,238,136,149,187,66,134,149,187,134,131,149,187,186,128,149,187,222,125,149,187,243,122,149,187,247,119,149,187,236,116,149,187,209,113,149,187,166,110,149,187,107,107,149,187,32,104,149,187,198,100,149,187,91,97,149,187,225,93,149,187,86,90,149,
187,188,86,149,187,18,83,149,187,89,79,149,187,143,75,149,187,182,71,149,187,204,67,149,187,211,63,149,187,202,59,149,187,177,55,149,187,137,51,149,187,80,47,149,187,8,43,149,187,176,38,149,187,72,34,149,187,208,29,149,187,72,25,149,187,177,20,149,187,10,16,149,187,83,11,149,187,140,6,149,187,181,1,149,187,207,252,148,187,216,247,148,187,210,242,148,187,188,237,148,187,151,232,148,187,97,227,148,187,28,222,148,187,199,216,148,187,98,211,148,187,238,205,148,187,105,200,148,187,213,194,148,187,49,189,
148,187,126,183,148,187,186,177,148,187,231,171,148,187,4,166,148,187,18,160,148,187,15,154,148,187,253,147,148,187,219,141,148,187,170,135,148,187,104,129,148,187,23,123,148,187,182,116,148,187,70,110,148,187,198,103,148,187,54,97,148,187,150,90,148,187,231,83,148,187,39,77,148,187,89,70,148,187,122,63,148,187,140,56,148,187,142,49,148,187,128,42,148,187,99,35,148,187,54,28,148,187,249,20,148,187,173,13,148,187,81,6,148,187,229,254,147,187,106,247,147,187,223,239,147,187,69,232,147,187,154,224,147,
187,224,216,147,187,23,209,147,187,62,201,147,187,85,193,147,187,92,185,147,187,84,177,147,187,60,169,147,187,21,161,147,187,222,152,147,187,151,144,147,187,65,136,147,187,219,127,147,187,102,119,147,187,225,110,147,187,77,102,147,187,168,93,147,187,245,84,147,187,49,76,147,187,94,67,147,187,124,58,147,187,138,49,147,187,136,40,147,187,119,31,147,187,87,22,147,187,38,13,147,187,231,3,147,187,151,250,146,187,56,241,146,187,202,231,146,187,76,222,146,187,191,212,146,187,34,203,146,187,117,193,146,187,
185,183,146,187,238,173,146,187,19,164,146,187,41,154,146,187,47,144,146,187,37,134,146,187,12,124,146,187,228,113,146,187,172,103,146,187,101,93,146,187,14,83,146,187,168,72,146,187,51,62,146,187,174,51,146,187,25,41,146,187,117,30,146,187,194,19,146,187,255,8,146,187,45,254,145,187,75,243,145,187,90,232,145,187,90,221,145,187,74,210,145,187,43,199,145,187,253,187,145,187,191,176,145,187,113,165,145,187,21,154,145,187,169,142,145,187,45,131,145,187,163,119,145,187,9,108,145,187,95,96,145,187,166,
84,145,187,222,72,145,187,7,61,145,187,32,49,145,187,42,37,145,187,37,25,145,187,16,13,145,187,236,0,145,187,185,244,144,187,119,232,144,187,37,220,144,187,196,207,144,187,84,195,144,187,212,182,144,187,69,170,144,187,167,157,144,187,250,144,144,187,62,132,144,187,114,119,144,187,151,106,144,187,173,93,144,187,179,80,144,187,171,67,144,187,147,54,144,187,108,41,144,187,54,28,144,187,240,14,144,187,156,1,144,187,56,244,143,187,197,230,143,187,67,217,143,187,178,203,143,187,18,190,143,187,99,176,143,
187,164,162,143,187,214,148,143,187,249,134,143,187,14,121,143,187,19,107,143,187,8,93,143,187,239,78,143,187,199,64,143,187,144,50,143,187,73,36,143,187,244,21,143,187,143,7,143,187,28,249,142,187,153,234,142,187,7,220,142,187,103,205,142,187,183,190,142,187,248,175,142,187,42,161,142,187,78,146,142,187,98,131,142,187,103,116,142,187,93,101,142,187,69,86,142,187,29,71,142,187,230,55,142,187,161,40,142,187,76,25,142,187,233,9,142,187,119,250,141,187,245,234,141,187,101,219,141,187,198,203,141,187,
24,188,141,187,91,172,141,187,143,156,141,187,180,140,141,187,203,124,141,187,210,108,141,187,203,92,141,187,181,76,141,187,144,60,141,187,92,44,141,187,25,28,141,187,200,11,141,187,103,251,140,187,248,234,140,187,122,218,140,187,238,201,140,187,82,185,140,187,168,168,140,187,239,151,140,187,39,135,140,187,80,118,140,187,107,101,140,187,119,84,140,187,116,67,140,187,99,50,140,187,66,33,140,187,19,16,140,187,214,254,139,187,138,237,139,187,46,220,139,187,197,202,139,187,76,185,139,187,197,167,139,
187,48,150,139,187,139,132,139,187,216,114,139,187,23,97,139,187,71,79,139,187,104,61,139,187,122,43,139,187,126,25,139,187,116,7,139,187,91,245,138,187,51,227,138,187,253,208,138,187,184,190,138,187,100,172,138,187,2,154,138,187,146,135,138,187,19,117,138,187,133,98,138,187,233,79,138,187,63,61,138,187,134,42,138,187,190,23,138,187,232,4,138,187,4,242,137,187,17,223,137,187,16,204,137,187,0,185,137,187,226,165,137,187,181,146,137,187,122,127,137,187,49,108,137,187,217,88,137,187,115,69,137,187,254,
49,137,187,123,30,137,187,234,10,137,187,74,247,136,187,156,227,136,187,224,207,136,187,21,188,136,187,60,168,136,187,85,148,136,187,95,128,136,187,91,108,136,187,73,88,136,187,41,68,136,187,250,47,136,187,189,27,136,187,114,7,136,187,25,243,135,187,177,222,135,187,59,202,135,187,183,181,135,187,37,161,135,187,133,140,135,187,214,119,135,187,25,99,135,187,78,78,135,187,117,57,135,187,142,36,135,187,153,15,135,187,149,250,134,187,132,229,134,187,100,208,134,187,54,187,134,187,250,165,134,187,176,144,
134,187,88,123,134,187,242,101,134,187,126,80,134,187,252,58,134,187,108,37,134,187,206,15,134,187,33,250,133,187,103,228,133,187,159,206,133,187,201,184,133,187,229,162,133,187,243,140,133,187,243,118,133,187,229,96,133,187,201,74,133,187,159,52,133,187,103,30,133,187,34,8,133,187,206,241,132,187,109,219,132,187,253,196,132,187,128,174,132,187,245,151,132,187,92,129,132,187,182,106,132,187,1,84,132,187,63,61,132,187,111,38,132,187,145,15,132,187,165,248,131,187,172,225,131,187,165,202,131,187,144,
179,131,187,109,156,131,187,61,133,131,187,255,109,131,187,179,86,131,187,89,63,131,187,242,39,131,187,125,16,131,187,251,248,130,187,106,225,130,187,205,201,130,187,33,178,130,187,104,154,130,187,161,130,130,187,205,106,130,187,235,82,130,187,251,58,130,187,254,34,130,187,244,10,130,187,220,242,129,187,182,218,129,187,131,194,129,187,66,170,129,187],"i8",4,y.a+460800);
Q([244,145,129,187,152,121,129,187,46,97,129,187,184,72,129,187,52,48,129,187,162,23,129,187,3,255,128,187,86,230,128,187,156,205,128,187,213,180,128,187,0,156,128,187,30,131,128,187,46,106,128,187,50,81,128,187,39,56,128,187,16,31,128,187,235,5,128,187,113,217,127,187,242,166,127,187,88,116,127,187,164,65,127,187,213,14,127,187,236,219,126,187,232,168,126,187,201,117,126,187,145,66,126,187,61,15,126,187,208,219,125,187,71,168,125,187,165,116,125,187,232,64,125,187,17,13,125,187,32,217,124,187,20,
165,124,187,238,112,124,187,173,60,124,187,83,8,124,187,222,211,123,187,80,159,123,187,167,106,123,187,227,53,123,187,6,1,123,187,15,204,122,187,254,150,122,187,210,97,122,187,141,44,122,187,46,247,121,187,180,193,121,187,33,140,121,187,116,86,121,187,173,32,121,187,204,234,120,187,209,180,120,187,189,126,120,187,142,72,120,187,70,18,120,187,228,219,119,187,105,165,119,187,211,110,119,187,36,56,119,187,92,1,119,187,122,202,118,187,126,147,118,187,104,92,118,187,57,37,118,187,241,237,117,187,143,182,
117,187,19,127,117,187,126,71,117,187,208,15,117,187,8,216,116,187,39,160,116,187,44,104,116,187,24,48,116,187,235,247,115,187,165,191,115,187,69,135,115,187,204,78,115,187,58,22,115,187,142,221,114,187,202,164,114,187,236,107,114,187,245,50,114,187,230,249,113,187,189,192,113,187,123,135,113,187,32,78,113,187,172,20,113,187,31,219,112,187,121,161,112,187,186,103,112,187,226,45,112,187,242,243,111,187,232,185,111,187,198,127,111,187,139,69,111,187,55,11,111,187,203,208,110,187,69,150,110,187,168,
91,110,187,241,32,110,187,34,230,109,187,58,171,109,187,58,112,109,187,33,53,109,187,239,249,108,187,165,190,108,187,67,131,108,187,200,71,108,187,53,12,108,187,137,208,107,187,197,148,107,187,232,88,107,187,243,28,107,187,230,224,106,187,193,164,106,187,131,104,106,187,45,44,106,187,191,239,105,187,57,179,105,187,155,118,105,187,228,57,105,187,22,253,104,187,47,192,104,187,49,131,104,187,26,70,104,187,235,8,104,187,165,203,103,187,70,142,103,187,208,80,103,187,66,19,103,187,155,213,102,187,221,151,
102,187,8,90,102,187,26,28,102,187,21,222,101,187,248,159,101,187,195,97,101,187,119,35,101,187,19,229,100,187,151,166,100,187,4,104,100,187,90,41,100,187,151,234,99,187,190,171,99,187,204,108,99,187,196,45,99,187,164,238,98,187,108,175,98,187,29,112,98,187,183,48,98,187,58,241,97,187,165,177,97,187,249,113,97,187,54,50,97,187,91,242,96,187,106,178,96,187,97,114,96,187,65,50,96,187,10,242,95,187,188,177,95,187,87,113,95,187,219,48,95,187,72,240,94,187,159,175,94,187,222,110,94,187,6,46,94,187,23,
237,93,187,18,172,93,187,246,106,93,187,195,41,93,187,121,232,92,187,24,167,92,187,161,101,92,187,19,36,92,187,111,226,91,187,180,160,91,187,226,94,91,187,250,28,91,187,251,218,90,187,230,152,90,187,186,86,90,187,120,20,90,187,32,210,89,187,177,143,89,187,43,77,89,187,144,10,89,187,222,199,88,187,22,133,88,187,55,66,88,187,67,255,87,187,56,188,87,187,23,121,87,187,224,53,87,187,147,242,86,187,48,175,86,187,182,107,86,187,39,40,86,187,130,228,85,187,199,160,85,187,246,92,85,187,15,25,85,187,18,213,
84,187,255,144,84,187,215,76,84,187,152,8,84,187,68,196,83,187,219,127,83,187,91,59,83,187,198,246,82,187,28,178,82,187,92,109,82,187,134,40,82,187,154,227,81,187,154,158,81,187,131,89,81,187,88,20,81,187,22,207,80,187,192,137,80,187,84,68,80,187,211,254,79,187,60,185,79,187,144,115,79,187,207,45,79,187,249,231,78,187,14,162,78,187,13,92,78,187,247,21,78,187,205,207,77,187,141,137,77,187,56,67,77,187,206,252,76,187,79,182,76,187,188,111,76,187,19,41,76,187,85,226,75,187,131,155,75,187,156,84,75,187,
160,13,75,187,143,198,74,187,106,127,74,187,48,56,74,187,225,240,73,187,125,169,73,187,5,98,73,187,121,26,73,187,216,210,72,187,34,139,72,187,88,67,72,187,122,251,71,187,135,179,71,187,127,107,71,187,100,35,71,187,52,219,70,187,239,146,70,187,151,74,70,187,42,2,70,187,169,185,69,187,20,113,69,187,106,40,69,187,173,223,68,187,220,150,68,187,246,77,68,187,253,4,68,187,239,187,67,187,206,114,67,187,152,41,67,187,79,224,66,187,242,150,66,187,129,77,66,187,252,3,66,187,100,186,65,187,184,112,65,187,248,
38,65,187,36,221,64,187,61,147,64,187,66,73,64,187,52,255,63,187,18,181,63,187,221,106,63,187,148,32,63,187,55,214,62,187,200,139,62,187,69,65,62,187,174,246,61,187,4,172,61,187,71,97,61,187,119,22,61,187,148,203,60,187,157,128,60,187,147,53,60,187,118,234,59,187,70,159,59,187,3,84,59,187,173,8,59,187,68,189,58,187,199,113,58,187,56,38,58,187,150,218,57,187,226,142,57,187,26,67,57,187,64,247,56,187,82,171,56,187,82,95,56,187,64,19,56,187,26,199,55,187,227,122,55,187,152,46,55,187,59,226,54,187,203,
149,54,187,73,73,54,187,180,252,53,187,13,176,53,187,84,99,53,187,136,22,53,187,170,201,52,187,185,124,52,187,182,47,52,187,161,226,51,187,122,149,51,187,65,72,51,187,245,250,50,187,151,173,50,187,40,96,50,187,166,18,50,187,18,197,49,187,108,119,49,187,180,41,49,187,235,219,48,187,15,142,48,187,34,64,48,187,35,242,47,187,18,164,47,187,239,85,47,187,186,7,47,187,116,185,46,187,29,107,46,187,179,28,46,187,56,206,45,187,172,127,45,187,14,49,45,187,94,226,44,187,157,147,44,187,203,68,44,187,231,245,43,
187,242,166,43,187,235,87,43,187,212,8,43,187,171,185,42,187,113,106,42,187,37,27,42,187,201,203,41,187,91,124,41,187,221,44,41,187,77,221,40,187,172,141,40,187,251,61,40,187,56,238,39,187,100,158,39,187,128,78,39,187,139,254,38,187,133,174,38,187,110,94,38,187,70,14,38,187,14,190,37,187,197,109,37,187,108,29,37,187,1,205,36,187,135,124,36,187,251,43,36,187,96,219,35,187,179,138,35,187,247,57,35,187,42,233,34,187,76,152,34,187,95,71,34,187,97,246,33,187,82,165,33,187,52,84,33,187,5,3,33,187,198,177,
32,187,119,96,32,187,24,15,32,187,169,189,31,187,42,108,31,187,155,26,31,187,252,200,30,187,77,119,30,187,142,37,30,187,192,211,29,187,225,129,29,187,243,47,29,187,245,221,28,187,232,139,28,187,202,57,28,187,157,231,27,187,97,149,27,187,21,67,27,187,185,240,26,187,78,158,26,187,211,75,26,187,73,249,25,187,176,166,25,187,7,84,25,187,79,1,25,187,136,174,24,187,177,91,24,187,203,8,24,187,214,181,23,187,210,98,23,187,191,15,23,187,157,188,22,187,107,105,22,187,43,22,22,187,220,194,21,187,125,111,21,187,
16,28,21,187,148,200,20,187,9,117,20,187,112,33,20,187,199,205,19,187,16,122,19,187,75,38,19,187,118,210,18,187,147,126,18,187,162,42,18,187,162,214,17,187,147,130,17,187,118,46,17,187,74,218,16,187,16,134,16,187,200,49,16,187,114,221,15,187,13,137,15,187,154,52,15,187,24,224,14,187,137,139,14,187,235,54,14,187,63,226,13,187,133,141,13,187,189,56,13,187,232,227,12,187,4,143,12,187,18,58,12,187,18,229,11,187,5,144,11,187,233,58,11,187,192,229,10,187,137,144,10,187,68,59,10,187,242,229,9,187,146,144,
9,187,37,59,9,187,170,229,8,187,33,144,8,187,139,58,8,187,231,228,7,187,54,143,7,187,120,57,7,187,172,227,6,187,211,141,6,187,236,55,6,187,249,225,5,187,248,139,5,187,234,53,5,187,207,223,4,187,167,137,4,187,113,51,4,187,47,221,3,187,224,134,3,187,131,48,3,187,26,218,2,187,164,131,2,187,33,45,2,187,146,214,1,187,245,127,1,187,76,41,1,187,150,210,0,187,211,123,0,187,4,37,0,187,81,156,255,186,128,238,254,186,151,64,254,186,148,146,253,186,121,228,252,186,68,54,252,186,247,135,251,186,146,217,250,186,
19,43,250,186,125,124,249,186,205,205,248,186,6,31,248,186,38,112,247,186,46,193,246,186,30,18,246,186,245,98,245,186,181,179,244,186,93,4,244,186,237,84,243,186,101,165,242,186,198,245,241,186,15,70,241,186,64,150,240,186,90,230,239,186,92,54,239,186,71,134,238,186,27,214,237,186,216,37,237,186,126,117,236,186,12,197,235,186,132,20,235,186,229,99,234,186,47,179,233,186,98,2,233,186,126,81,232,186,132,160,231,186,116,239,230,186,77,62,230,186,16,141,229,186,188,219,228,186,82,42,228,186,210,120,227,
186,60,199,226,186,144,21,226,186,207,99,225,186,247,177,224,186,9,0,224,186,6,78,223,186,238,155,222,186,191,233,221,186,124,55,221,186,35,133,220,186,180,210,219,186,48,32,219,186,152,109,218,186,234,186,217,186,39,8,217,186,79,85,216,186,98,162,215,186,97,239,214,186,75,60,214,186,32,137,213,186,225,213,212,186,141,34,212,186,37,111,211,186,168,187,210,186,23,8,210,186,114,84,209,186,185,160,208,186,236,236,207,186,11,57,207,186,22,133,206,186,14,209,205,186,241,28,205,186,193,104,204,186,125,
180,203,186,38,0,203,186,188,75,202,186,62,151,201,186,173,226,200,186,8,46,200,186,81,121,199,186,134,196,198,186,169,15,198,186,185,90,197,186,181,165,196,186,160,240,195,186,119,59,195,186,60,134,194,186,238,208,193,186,142,27,193,186,28,102,192,186,151,176,191,186,0,251,190,186,87,69,190,186,156,143,189,186,207,217,188,186,240,35,188,186,0,110,187,186,253,183,186,186,233,1,186,186,195,75,185,186,140,149,184,186,67,223,183,186,233,40,183,186,126,114,182,186,2,188,181,186,116,5,181,186,213,78,180,
186,38,152,179,186,101,225,178,186,148,42,178,186,178,115,177,186,191,188,176,186,187,5,176,186,168,78,175,186,131,151,174,186,79,224,173,186,10,41,173,186,180,113,172,186,79,186,171,186,218,2,171,186,84,75,170,186,191,147,169,186,26,220,168,186,101,36,168,186,161,108,167,186,205,180,166,186,233,252,165,186,246,68,165,186,244,140,164,186,227,212,163,186,194,28,163,186,146,100,162,186,83,172,161,186,5,244,160,186,168,59,160,186,60,131,159,186,194,202,158,186,57,18,158,186,161,89,157,186,251,160,156,
186,70,232,155,186,131,47,155,186,178,118,154,186,211,189,153,186,229,4,153,186,234,75,152,186,224,146,151,186,201,217,150,186,164,32,150,186,113,103,149,186,48,174,148,186,226,244,147,186,134,59,147,186,29,130,146,186,167,200,145,186,35,15,145,186,146,85,144,186,244,155,143,186,73,226,142,186,145,40,142,186,204,110,141,186,251,180,140,186,28,251,139,186,49,65,139,186,58,135,138,186,53,205,137,186,37,19,137,186,8,89,136,186,223,158,135,186,170,228,134,186,105,42,134,186,27,112,133,186,194,181,132,
186,93,251,131,186,236,64,131,186,111,134,130,186,231,203,129,186,83,17,129,186,180,86,128,186,18,56,127,186,166,194,125,186,36,77,124,186,139,215,122,186,220,97,121,186,23,236,119,186,61,118,118,186,76,0,117,186,70,138,115,186,43,20,114,186,250,157,112,186,180,39,111,186,90,177,109,186,234,58,108,186,103,196,106,186,206,77,105,186,33,215,103,186,97,96,102,186,140,233,100,186,163,114,99,186,167,251,97,186,151,132,96,186,116,13,95,186,62,150,93,186,245,30,92,186,153,167,90,186,42,48,89,186,169,184,
87,186,21,65,86,186,111,201,84,186,183,81,83,186,237,217,81,186,17,98,80,186,35,234,78,186,36,114,77,186,20,250,75,186,243,129,74,186,192,9,73,186,125,145,71,186,41,25,70,186,197,160,68,186,80,40,67,186,204,175,65,186,55,55,64,186,146,190,62,186,221,69,61,186,25,205,59,186,70,84,58,186,99,219,56,186,113,98,55,186,112,233,53,186,97,112,52,186,66,247,50,186,22,126,49,186,219,4,48,186,146,139,46,186,58,18,45,186,213,152,43,186,99,31,42,186,227,165,40,186,85,44,39,186,186,178,37,186,18,57,36,186,94,191,
34,186,156,69,33,186,206,203,31,186,244,81,30,186,13,216,28,186,26,94,27,186,28,228,25,186,17,106,24,186,251,239,22,186,217,117,21,186,173,251,19,186,116,129,18,186,49,7,17,186,227,140,15,186,139,18,14,186,40,152,12,186,186,29,11,186,67,163,9,186,193,40,8,186,53,174,6,186,160,51,5,186,1,185,3,186,88,62,2,186,167,195,0,186,216,145,254,185,81,156,251,185,184,166,248,185,13,177,245,185,82,187,242,185,134,197,239,185,170,207,236,185,190,217,233,185,194,227,230,185,183,237,227,185,157,247,224,185,116,
1,222,185,61,11,219,185,247,20,216,185,164,30,213,185,67,40,210,185,214,49,207,185,91,59,204,185,212,68,201,185,64,78,198,185,161,87,195,185,246,96,192,185,64,106,189,185,127,115,186,185,179,124,183,185,221,133,180,185,253,142,177,185,19,152,174,185,32,161,171,185,36,170,168,185,31,179,165,185,18,188,162,185,253,196,159,185,224,205,156,185,187,214,153,185,143,223,150,185,93,232,147,185,36,241,144,185,229,249,141,185,159,2,139,185,85,11,136,185,5,20,133,185,176,28,130,185,172,74,126,185,241,91,120,
185,45,109,114,185,98,126,108,185,144,143,102,185,184,160,96,185,219,177,90,185,249,194,84,185,19,212,78,185,41,229,72,185,60,246,66,185,77,7,61,185,93,24,55,185,107,41,49,185,121,58,43,185,135,75,37,185,150,92,31,185,166,109,25,185,185,126,19,185,206,143,13,185,231,160,7,185,4,178,1,185,74,134,247,184,152,168,235,184,241,202,223,184,88,237,211,184,204,15,200,184,81,50,188,184,230,84,176,184,141,119,164,184,72,154,152,184,24,189,140,184,253,223,128,184,243,5,106,184,30,76,82,184,123,146,58,184,15,
217,34,184,219,31,11,184,196,205,230,183,77,92,183,183,86,235,135,183,202,245,48,183,246,43,164,182,84,139,76,53,122,76,215,54,146,130,74,55,213,174,148,55,190,27,196,55,254,135,243,55,201,121,17,56,57,47,41,56,77,228,64,56,3,153,88,56,88,77,112,56,165,0,132,56,107,218,143,56,253,179,155,56,89,141,167,56,127,102,179,56,109,63,191,56,33,24,203,56,155,240,214,56,218,200,226,56,219,160,238,56,158,120,250,56,17,40,3,57,178,19,9,57,50,255,14,57,145,234,20,57,206,213,26,57,231,192,32,57,221,171,38,57,175,
150,44,57,92,129,50,57,228,107,56,57,69,86,62,57,128,64,68,57,148,42,74,57,128,20,80,57,67,254,85,57,221,231,91,57,77,209,97,57,147,186,103,57,174,163,109,57,157,140,115,57,95,117,121,57,245,93,127,57,47,163,130,57,76,151,133,57,81,139,136,57,63,127,139,57,21,115,142,57,210,102,145,57,119,90,148,57,3,78,151,57,118,65,154,57,207,52,157,57,14,40,160,57,50,27,163,57,61,14,166,57,44,1,169,57,0,244,171,57,185,230,174,57,86,217,177,57,215,203,180,57,59,190,183,57,131,176,186,57,174,162,189,57,187,148,192,
57,171,134,195,57,125,120,198,57,48,106,201,57,197,91,204,57,59,77,207,57,145,62,210,57,200,47,213,57,224,32,216,57,215,17,219,57,173,2,222,57,99,243,224,57,248,227,227,57,107,212,230,57,189,196,233,57,237,180,236,57,250,164,239,57,229,148,242,57,172,132,245,57,81,116,248,57,209,99,251,57,46,83,254,57,51,161,0,58,190,24,2,58,53,144,3,58,154,7,5,58,237,126,6,58,44,246,7,58,89,109,9,58,114,228,10,58,120,91,12,58,106,210,13,58,73,73,15,58,20,192,16,58,203,54,18,58,110,173,19,58,253,35,21,58,119,154,
22,58,221,16,24,58,45,135,25,58,105,253,26,58,144,115,28,58,162,233,29,58,158,95,31,58,133,213,32,58,86,75,34,58,18,193,35,58,183,54,37,58,71,172,38,58,192,33,40,58,34,151,41,58,110,12,43,58,163,129,44,58,194,246,45,58,201,107,47,58,185,224,48,58,146,85,50,58,83,202,51,58,252,62,53,58,142,179,54,58,8,40,56,58,105,156,57,58,179,16,59,58,228,132,60,58,252,248,61,58,251,108,63,58,226,224,64,58,176,84,66,58,100,200,67,58,255,59,69,58,128,175,70,58,232,34,72,58,54,150,73,58,106,9,75,58,132,124,76,58,132,
239,77,58,105,98,79,58,52,213,80,58,228,71,82,58,121,186,83,58,243,44,85,58,81,159,86,58,149,17,88,58,189,131,89,58,201,245,90,58,185,103,92,58,142,217,93,58,70,75,95,58,226,188,96,58,98,46,98,58,197,159,99,58,12,17,101,58,53,130,102,58,66,243,103,58,49,100,105,58,3,213,106,58,184,69,108,58,79,182,109,58,200,38,111,58,35,151,112,58,96,7,114,58,127,119,115,58,127,231,116,58,97,87,118,58,36,199,119,58,201,54,121,58,78,166,122,58,180,21,124,58,251,132,125,58,35,244,126,58,149,49,128,58,9,233,128,58,
110,160,129,58,194,87,130,58,6,15,131,58,57,198,131,58,93,125,132,58,112,52,133,58,115,235,133,58,101,162,134,58,71,89,135,58,24,16,136,58,217,198,136,58,136,125,137,58,39,52,138,58,181,234,138,58,50,161,139,58,158,87,140,58,248,13,141,58,66,196,141,58,122,122,142,58,161,48,143,58,182,230,143,58,186,156,144,58,172,82,145,58,140,8,146,58,91,190,146,58,24,116,147,58,195,41,148,58,92,223,148,58,226,148,149,58,87,74,150,58,186,255,150,58,10,181,151,58,72,106,152,58,116,31,153,58,141,212,153,58,147,137,
154,58,135,62,155,58,104,243,155,58,54,168,156,58,242,92,157,58,154,17,158,58,47,198,158,58,178,122,159,58,33,47,160,58,125,227,160,58,197,151,161,58,251,75,162,58,28,0,163,58,43,180,163,58,37,104,164,58,12,28,165,58,223,207,165,58,158,131,166,58,74,55,167,58,225,234,167,58,101,158,168,58,212,81,169,58,47,5,170,58,118,184,170,58,168,107,171,58,198,30,172,58,207,209,172,58,196,132,173,58,164,55,174,58,112,234,174,58,39,157,175,58,200,79,176,58,85,2,177,58,205,180,177,58,48,103,178,58,126,25,179,58,
182,203,179,58,217,125,180,58,231,47,181,58,223,225,181,58,194,147,182,58,143,69,183,58,71,247,183,58,233,168,184,58,116,90,185,58,235,11,186,58,75,189,186,58,149,110,187,58,201,31,188,58,230,208,188,58,238,129,189,58,223,50,190,58,186,227,190,58,126,148,191,58,44,69,192,58,195,245,192,58,68,166,193,58,173,86,194,58,0,7,195,58,60,183,195,58,97,103,196,58,111,23,197,58,102,199,197,58,70,119,198,58,14,39,199,58,191,214,199,58,89,134,200,58,219,53,201,58,70,229,201,58,153,148,202,58,212,67,203,58,247,
242,203,58,3,162,204,58,247,80,205,58,211,255,205,58,150,174,206,58,66,93,207,58,213,11,208,58,81,186,208,58,179,104,209,58,254,22,210,58,48,197,210,58,73,115,211,58,74,33,212,58,50,207,212,58,1,125,213,58,184,42,214,58,85,216,214,58,218,133,215,58,69,51,216,58,152,224,216,58,209,141,217,58,241,58,218,58,247,231,218,58,228,148,219,58,184,65,220,58,114,238,220,58,19,155,221,58,154,71,222,58,7,244,222,58,90,160,223,58,147,76,224,58,179,248,224,58,184,164,225,58,163,80,226,58,117,252,226,58,43,168,227,
58,200,83,228,58,74,255,228,58,178,170,229,58,255,85,230,58,49,1,231,58,73,172,231,58,70,87,232,58,40,2,233,58,240,172,233,58,156,87,234,58,46,2,235,58,164,172,235,58,255,86,236,58,63,1,237,58,100,171,237,58,109,85,238,58,91,255,238,58,45,169,239,58,228,82,240,58,127,252,240,58,255,165,241,58,98,79,242,58,170,248,242,58,214,161,243,58,230,74,244,58,218,243,244,58,177,156,245,58,109,69,246,58,12,238,246,58,143,150,247,58,245,62,248,58,63,231,248,58,109,143,249,58,126,55,250,58,114,223,250,58,73,135,
251,58,4,47,252,58,162,214,252,58,34,126,253,58,134,37,254,58,205,204,254,58,246,115,255,58,129,13,0,59,249,96,0,59,98,180,0,59,188,7,1,59,7,91,1,59,68,174,1,59,113,1,2,59,144,84,2,59,160,167,2,59,162,250,2,59,148,77,3,59,119,160,3,59,75,243,3,59,16,70,4,59,198,152,4,59,109,235,4,59,5,62,5,59,141,144,5,59,7,227,5,59,113,53,6,59,203,135,6,59,23,218,6,59,83,44,7,59,128,126,7,59,157,208,7,59,171,34,8,59,169,116,8,59,152,198,8,59,119,24,9,59,71,106,9,59,7,188,9,59,184,13,10,59,88,95,10,59,233,176,10,
59,107,2,11,59,220,83,11,59,62,165,11,59,143,246,11,59,209,71,12,59,3,153,12,59,37,234,12,59,55,59,13,59,57,140,13,59,43,221,13,59,13,46,14,59,223,126,14,59,161,207,14,59,82,32,15,59,243,112,15,59,132,193,15,59,5,18,16,59,117,98,16,59,213,178,16,59,37,3,17,59,100,83,17,59,147,163,17,59,177,243,17,59,191,67,18,59,188,147,18,59,169,227,18,59,133,51,19,59,80,131,19,59,11,211,19,59,181,34,20,59,79,114,20,59,215,193,20,59,79,17,21,59,182,96,21,59,12,176,21,59,81,255,21,59,133,78,22,59,168,157,22,59,187,
236,22,59,188,59,23,59,172,138,23,59,139,217,23,59,89,40,24,59,22,119,24,59,194,197,24,59,92,20,25,59,229,98,25,59,93,177,25,59,196,255,25,59,25,78,26,59,93,156,26,59,143,234,26,59,176,56,27,59,192,134,27,59,190,212,27,59,170,34,28,59,133,112,28,59,78,190,28,59,6,12,29,59,172,89,29,59,64,167,29,59,195,244,29,59,52,66,30,59,147,143,30,59,224,220,30,59,27,42,31,59,69,119,31,59,92,196,31,59,98,17,32,59,86,94,32,59,55,171,32,59,7,248,32,59,196,68,33,59,112,145,33,59,9,222,33,59,144,42,34,59,5,119,34,
59,104,195,34,59,185,15,35,59,247,91,35,59,35,168,35,59,60,244,35,59,67,64,36,59,56,140,36,59,26,216,36,59,234,35,37,59,168,111,37,59,82,187,37,59,235,6,38,59,112,82,38,59,227,157,38,59,68,233,38,59,145,52,39,59,204,127,39,59,245,202,39,59,10,22,40,59,13,97,40,59,253,171,40,59,218,246,40,59,164,65,41,59,91,140,41,59,255,214,41,59,144,33,42,59,14,108,42,59,121,182,42,59,210,0,43,59,22,75,43,59,72,149,43,59,103,223,43,59,114,41,44,59,107,115,44,59,80,189,44,59,33,7,45,59,224,80,45,59,139,154,45,59,
34,228,45,59,167,45,46,59,23,119,46,59,117,192,46,59,191,9,47,59,245,82,47,59,24,156,47,59,39,229,47,59,34,46,48,59,10,119,48,59,223,191,48,59,159,8,49,59,76,81,49,59,229,153,49,59,106,226,49,59,220,42,50,59,57,115,50,59,131,187,50,59,185,3,51,59,219,75,51,59,233,147,51,59,227,219,51,59,201,35,52,59,155,107,52,59,89,179,52,59,2,251,52,59,152,66,53,59,25,138,53,59,134,209,53,59,223,24,54,59,36,96,54,59,85,167,54,59,113,238,54,59,121,53,55,59,108,124,55,59,75,195,55,59,22,10,56,59,204,80,56,59,110,
151,56,59,251,221,56,59,115,36,57,59,215,106,57,59,39,177,57,59,98,247,57,59,136,61,58,59,154,131,58,59,150,201,58,59,127,15,59,59,82,85,59,59,17,155,59,59,186,224,59,59,79,38,60,59,207,107,60,59,58,177,60,59,144,246,60,59,210,59,61,59,254,128,61,59,21,198,61,59,23,11,62,59,4,80,62,59,221,148,62,59,159,217,62,59,77,30,63,59,230,98,63,59,105,167,63,59,215,235,63,59,48,48,64,59,116,116,64,59,162,184,64,59,187,252,64,59,190,64,65,59,173,132,65,59,133,200,65,59,73,12,66,59,246,79,66,59,143,147,66,59,
17,215,66,59,127,26,67,59,214,93,67,59,24,161,67,59,69,228,67,59,91,39,68,59,92,106,68,59,71,173,68,59,29,240,68,59,221,50,69,59,135,117,69,59,27,184,69,59,153,250,69,59,1,61,70,59,84,127,70,59,144,193,70,59,183,3,71,59,200,69,71,59,194,135,71,59,167,201,71,59,117,11,72,59,45,77,72,59,208,142,72,59,92,208,72,59,210,17,73,59,49,83,73,59,123,148,73,59,174,213,73,59,203,22,74,59,210,87,74,59,194,152,74,59,156,217,74,59,96,26,75,59,13,91,75,59,163,155,75,59,36,220,75,59,142,28,76,59,225,92,76,59,30,157,
76,59,68,221,76,59,83,29,77,59,76,93,77,59,47,157,77,59,250,220,77,59,175,28,78,59,78,92,78,59,213,155,78,59,70,219,78,59,160,26,79,59,227,89,79,59,16,153,79,59,37,216,79,59,36,23,80,59,11,86,80,59,220,148,80,59,150,211,80,59,57,18,81,59,196,80,81,59,57,143,81,59,151,205,81,59,221,11,82,59,13,74,82,59,37,136,82,59,38,198,82,59,16,4,83,59,227,65,83,59,158,127,83,59,67,189,83,59,207,250,83,59,69,56,84,59,163,117,84,59,234,178,84,59,26,240,84,59,50,45,85,59,51,106,85,59,28,167,85,59,238,227,85,59,168,
32,86,59,75,93,86,59,214,153,86,59,73,214,86,59,165,18,87,59,234,78,87,59,22,139,87,59,43,199,87,59,41,3,88,59,14,63,88,59,220,122,88,59,146,182,88,59,48,242,88,59,183,45,89,59,37,105,89,59,124,164,89,59,187,223,89,59,226,26,90,59,241,85,90,59,232,144,90,59,199,203,90,59,142,6,91,59,61,65,91,59,212,123,91,59,83,182,91,59,186,240,91,59,9,43,92,59,63,101,92,59,94,159,92,59,100,217,92,59,82,19,93,59,40,77,93,59,229,134,93,59,138,192,93,59,23,250,93,59,140,51,94,59,232,108,94,59,44,166,94,59,87,223,94,
59,106,24,95,59,101,81,95,59,71,138,95,59,17,195,95,59,194,251,95,59,90,52,96,59,218,108,96,59,66,165,96,59,145,221,96,59,199,21,97,59,228,77,97,59,233,133,97,59,214,189,97,59,169,245,97,59,100,45,98,59,6,101,98,59,143,156,98,59,0,212,98,59,87,11,99,59,150,66,99,59,188,121,99,59,201,176,99,59,189,231,99,59,153,30,100,59,91,85,100,59,4,140,100,59,149,194,100,59,12,249,100,59,106,47,101,59,175,101,101,59,219,155,101,59,238,209,101,59,232,7,102,59,201,61,102,59,145,115,102,59,63,169,102,59,212,222,102,
59,80,20,103,59,179,73,103,59,253,126,103,59,45,180,103,59,68,233,103,59,65,30,104,59,37,83,104,59,240,135,104,59,162,188,104,59,58,241,104,59,184,37,105,59,29,90,105,59,105,142,105,59,155,194,105,59,180,246,105,59,179,42,106,59,152,94,106,59,100,146,106,59,23,198,106,59,175,249,106,59,46,45,107,59,148,96,107,59,224,147,107,59,18,199,107,59,42,250,107,59,41,45,108,59,13,96,108,59,217,146,108,59,138,197,108,59,33,248,108,59,159,42,109,59,3,93,109,59,76,143,109,59,124,193,109,59,146,243,109,59,142,
37,110,59,113,87,110,59,57,137,110,59,231,186,110,59,123,236,110,59,245,29,111,59,85,79,111,59,155,128,111,59,199,177,111,59,217,226,111,59,209,19,112,59,174,68,112,59,113,117,112,59,27,166,112,59,169,214,112,59,30,7,113,59,121,55,113,59,185,103,113,59,223,151,113,59,234,199,113,59,220,247,113,59,179,39,114,59,111,87,114,59,17,135,114,59,153,182,114,59,7,230,114,59,90,21,115,59,146,68,115,59,176,115,115,59,180,162,115,59,157,209,115,59,107,0,116,59,31,47,116,59,185,93,116,59,56,140,116,59,156,186,
116,59,229,232,116,59,20,23,117,59,41,69,117,59,35,115,117,59,2,161,117,59,198,206,117,59,111,252,117,59,254,41,118,59,114,87,118,59,204,132,118,59,10,178,118,59,46,223,118,59,55,12,119,59,37,57,119,59,248,101,119,59,176,146,119,59,78,191,119,59,208,235,119,59,56,24,120,59,132,68,120,59,182,112,120,59,205,156,120,59,200,200,120,59,169,244,120,59,110,32,121,59,25,76,121,59,168,119,121,59,29,163,121,59,118,206,121,59,180,249,121,59,215,36,122,59,223,79,122,59,204,122,122,59,157,165,122,59,84,208,122,
59,239,250,122,59,111,37,123,59,211,79,123,59,29,122,123,59,75,164,123,59,94,206,123,59,85,248,123,59,49,34,124,59,242,75,124,59,152,117,124,59,34,159,124,59,144,200,124,59,227,241,124,59,27,27,125,59,56,68,125,59,57,109,125,59,30,150,125,59,232,190,125,59,150,231,125,59,41,16,126,59,161,56,126,59,253,96,126,59,61,137,126,59,97,177,126,59,107,217,126,59,88,1,127,59,42,41,127,59,224,80,127,59,123,120,127,59,249,159,127,59,93,199,127,59,164,238,127,59,232,10,128,59,112,30,128,59,234,49,128,59,86,69,
128,59,181,88,128,59,5,108,128,59,72,127,128,59,124,146,128,59,163,165,128,59,188,184,128,59,199,203,128,59,196,222,128,59,178,241,128,59,147,4,129,59,103,23,129,59,44,42,129,59,227,60,129,59,140,79,129,59,39,98,129,59,180,116,129,59,51,135,129,59,164,153,129,59,7,172,129,59,92,190,129,59,163,208,129,59,220,226,129,59,7,245,129,59,36,7,130,59,51,25,130,59,52,43,130,59,39,61,130,59,11,79,130,59,226,96,130,59,170,114,130,59,100,132,130,59,17,150,130,59,175,167,130,59,63,185,130,59,192,202,130,59,52,
220,130,59,154,237,130,59,241,254,130,59,58,16,131,59,118,33,131,59,162,50,131,59,193,67,131,59,210,84,131,59,212,101,131,59,200,118,131,59,174,135,131,59,134,152,131,59,80,169,131,59,11,186,131,59,184,202,131,59,87,219,131,59,232,235,131,59,106,252,131,59,222,12,132,59,68,29,132,59,156,45,132,59,229,61,132,59,32,78,132,59,77,94,132,59,108,110,132,59,124,126,132,59,126,142,132,59,114,158,132,59,87,174,132,59,46,190,132,59,247,205,132,59,177,221,132,59,93,237,132,59,251,252,132,59,138,12,133,59,11,
28,133,59,126,43,133,59,226,58,133,59,56,74,133,59,127,89,133,59,185,104,133,59,227,119,133,59,0,135,133,59,14,150,133,59,13,165,133,59,254,179,133,59,225,194,133,59,181,209,133,59,123,224,133,59,51,239,133,59,220,253,133,59,118,12,134,59,3,27,134,59,128,41,134,59,240,55,134,59,80,70,134,59,163,84,134,59,230,98,134,59,28,113,134,59,67,127,134,59,91,141,134,59,101,155,134,59,96,169,134,59,77,183,134,59,44,197,134,59,252,210,134,59,189,224,134,59,112,238,134,59,20,252,134,59,170,9,135,59,49,23,135,
59,170,36,135,59,20,50,135,59,111,63,135,59,188,76,135,59,251,89,135,59,43,103,135,59,76,116,135,59,95,129,135,59,99,142,135,59,88,155,135,59,63,168,135,59,24,181,135,59,226,193,135,59,157,206,135,59,73,219,135,59,231,231,135,59,119,244,135,59,247,0,136,59,105,13,136,59,205,25,136,59,33,38,136,59,104,50,136,59,159,62,136,59,200,74,136,59,226,86,136,59,238,98,136,59,235,110,136,59,217,122,136,59,184,134,136,59,137,146,136,59,75,158,136,59,255,169,136,59,164,181,136,59,58,193,136,59,193,204,136,59,
58,216,136,59,164,227,136,59,255,238,136,59,76,250,136,59,138,5,137,59,185,16,137,59,217,27,137,59,235,38,137,59,238,49,137,59,226,60,137,59,199,71,137,59,158,82,137,59,102,93,137,59,31,104,137,59,202,114,137,59,101,125,137,59,242,135,137,59,112,146,137,59,224,156,137,59,65,167,137,59,146,177,137,59,213,187,137,59,10,198,137,59,47,208,137,59,70,218,137,59,78,228,137,59,71,238,137,59,49,248,137,59,13,2,138,59,217,11,138,59,151,21,138,59,70,31,138,59,230,40,138,59,120,50,138,59,250,59,138,59,110,69,
138,59,211,78,138,59,41,88,138,59,112,97,138,59,169,106,138,59,210,115,138,59,237,124,138,59,249,133,138,59,246,142,138,59,228,151,138,59,195,160,138,59,148,169,138,59,85,178,138,59,8,187,138,59,172,195,138,59,65,204,138,59,199,212,138,59,62,221,138,59,166,229,138,59,255,237,138,59,74,246,138,59,133,254,138,59,178,6,139,59,208,14,139,59,223,22,139,59,223,30,139,59,208,38,139,59,178,46,139,59,133,54,139,59,74,62,139,59,255,69,139,59,166,77,139,59,61,85,139,59,198,92,139,59,64,100,139,59,171,107,139,
59,7,115,139,59,84,122,139,59,146,129,139,59,193,136,139,59,225,143,139,59,242,150,139,59,244,157,139,59,232,164,139,59,204,171,139,59,161,178,139,59,104,185,139,59,31,192,139,59,200,198,139,59,98,205,139,59,236,211,139,59,104,218,139,59,213,224,139,59,50,231,139,59,129,237,139,59,193,243,139,59,242,249,139,59,20,0,140,59,38,6,140,59,42,12,140,59,31,18,140,59,5,24,140,59,220,29,140,59,164,35,140,59,93,41,140,59,7,47,140,59,162,52,140,59,46,58,140,59,171,63,140,59,25,69,140,59,120,74,140,59,200,79,
140,59,9,85,140,59,59,90,140,59,94,95,140,59,114,100,140,59,119,105,140,59,109,110,140,59,84,115,140,59,44,120,140,59,245,124,140,59,175,129,140,59,90,134,140,59,246,138,140,59,131,143,140,59,1,148,140,59,112,152,140,59,207,156,140,59,32,161,140,59,98,165,140,59,149,169,140,59,185,173,140,59,205,177,140,59,211,181,140,59,202,185,140,59,177,189,140,59,138,193,140,59,84,197,140,59,14,201,140,59,186,204,140,59,86,208,140,59,228,211,140,59,98,215,140,59,210,218,140,59,50,222,140,59,131,225,140,59,198,
228,140,59,249,231,140,59,29,235,140,59,50,238,140,59,56,241,140,59,48,244,140,59,24,247,140,59,241,249,140,59,187,252,140,59,118,255,140,59,33,2,141,59,190,4,141,59,76,7,141,59,203,9,141,59,59,12,141,59,155,14,141,59,237,16,141,59,48,19,141,59,99,21,141,59,136,23,141,59,157,25,141,59,164,27,141,59,155,29,141,59,131,31,141,59,93,33,141,59,39,35,141,59,226,36,141,59,142,38,141,59,43,40,141,59,185,41,141,59,56,43,141,59,168,44,141,59,9,46,141,59,91,47,141,59,158,48,141,59,210,49,141,59,247,50,141,59,
12,52,141,59,19,53,141,59,11,54,141,59,243,54,141,59,205,55,141,59,151,56,141,59,83,57,141,59,255,57,141,59,156,58,141,59,43,59,141,59,170,59,141,59,26,60,141,59,123,60,141,59,206,60,141,59,17,61,141,59,69,61,141,59,106,61,141,59,128,61,141,59,135,61,141,59,127,61,141,59,104,61,141,59,66,61,141,59,13,61,141,59,200,60,141,59,117,60,141,59,19,60,141,59,162,59,141,59,33,59,141,59,146,58,141,59,244,57,141,59,70,57,141,59,138,56,141,59,191,55,141,59,228,54,141,59,251,53,141,59,2,53,141,59,251,51,141,59,
228,50,141,59,191,49,141,59,138,48,141,59,70,47,141,59,244,45,141,59,146,44,141,59,34,43,141,59,162,41,141,59,19,40,141,59,118,38,141,59,201,36,141,59,14,35,141,59,67,33,141,59,105,31,141,59,129,29,141,59,137,27,141,59,130,25,141,59,109,23,141,59,72,21,141,59,21,19,141,59,210,16,141,59,128,14,141,59,32,12,141,59,176,9,141,59,50,7,141,59,164,4,141,59,8,2,141,59,92,255,140,59,162,252,140,59,216,249,140,59,0,247,140,59,25,244,140,59,34,241,140,59,29,238,140,59,9,235,140,59,230,231,140,59,179,228,140,
59,114,225,140,59,34,222,140,59,195,218,140,59,85,215,140,59,216,211,140,59,76,208,140,59,177,204,140,59,7,201,140,59,79,197,140,59,135,193,140,59,176,189,140,59,203,185,140,59,214,181,140,59,211,177,140,59,193,173,140,59,159,169,140,59,111,165,140,59,48,161,140,59,226,156,140,59,133,152,140,59,25,148,140,59,159,143,140,59,21,139,140,59,124,134,140,59,213,129,140,59,30,125,140,59,89,120,140,59,133,115,140,59,162,110,140,59,176,105,140,59,175,100,140,59,159,95,140,59,129,90,140,59,83,85,140,59,23,
80,140,59,204,74,140,59,114,69,140,59,9,64,140,59,145,58,140,59,10,53,140,59,117,47,140,59,208,41,140,59,29,36,140,59,91,30,140,59,138,24,140,59,170,18,140,59,188,12,140,59,190,6,140,59,178,0,140,59,151,250,139,59,109,244,139,59,52,238,139,59,237,231,139,59,150,225,139,59,49,219,139,59,189,212,139,59,58,206,139,59,169,199,139,59,8,193,139,59,89,186,139,59,155,179,139,59,206,172,139,59,243,165,139,59,8,159,139,59,15,152,139,59,7,145,139,59,241,137,139,59,203,130,139,59,151,123,139,59,84,116,139,59,
2,109,139,59,162,101,139,59,50,94,139,59,180,86,139,59,40,79,139,59,140,71,139,59,226,63,139,59,41,56,139,59,98,48,139,59,139,40,139,59,166,32,139,59,178,24,139,59,176,16,139,59,159,8,139,59,127,0,139,59,80,248,138,59,19,240,138,59,199,231,138,59,108,223,138,59,3,215,138,59,139,206,138,59,4,198,138,59,111,189,138,59,203,180,138,59,24,172,138,59,87,163,138,59,135,154,138,59,168,145,138,59,187,136,138,59,191,127,138,59,180,118,138,59,155,109,138,59,115,100,138,59,61,91,138,59,248,81,138,59,164,72,138,
59,66,63,138,59,209,53,138,59,82,44,138,59,196,34,138,59,39,25,138,59,124,15,138,59,194,5,138,59,250,251,137,59,35,242,137,59,61,232,137,59,73,222,137,59,71,212,137,59,54,202,137,59,22,192,137,59,232,181,137,59,171,171,137,59,95,161,137,59,6,151,137,59,157,140,137,59,38,130,137,59,161,119,137,59,13,109,137,59,107,98,137,59,186,87,137,59,251,76,137,59,45,66,137,59,80,55,137,59,102,44,137,59,108,33,137,59,101,22,137,59,78,11,137,59,42,0,137,59,247,244,136,59,181,233,136,59,101,222,136,59,7,211,136,
59,154,199,136,59,31,188,136,59,149,176,136,59,253,164,136,59,87,153,136,59,162,141,136,59,222,129,136,59,13,118,136,59,45,106,136,59,62,94,136,59,66,82,136,59,54,70,136,59,29,58,136,59,245,45,136,59,191,33,136,59,122,21,136,59,39,9,136,59,198,252,135,59,87,240,135,59,217,227,135,59,77,215,135,59,178,202,135,59,10,190,135,59,82,177,135,59,141,164,135,59,185,151,135,59,216,138,135,59,231,125,135,59,233,112,135,59,220,99,135,59,193,86,135,59,152,73,135,59,97,60,135,59,27,47,135,59,199,33,135,59,101,
20,135,59,245,6,135,59,118,249,134,59,233,235,134,59,78,222,134,59,165,208,134,59,238,194,134,59,40,181,134,59,85,167,134,59,115,153,134,59,131,139,134,59,133,125,134,59,120,111,134,59,94,97,134,59,53,83,134,59,255,68,134,59,186,54,134,59,103,40,134,59,6,26,134,59,151,11,134,59,26,253,133,59,142,238,133,59,245,223,133,59,77,209,133,59,152,194,133,59,212,179,133,59,3,165,133,59,35,150,133,59,53,135,133,59,57,120,133,59,48,105,133,59,24,90,133,59,242,74,133,59,190,59,133,59,125,44,133,59,45,29,133,
59,207,13,133,59,99,254,132,59,233,238,132,59,98,223,132,59,204,207,132,59,41,192,132,59,119,176,132,59,184,160,132,59,234,144,132,59,15,129,132,59,38,113,132,59,47,97,132,59,42,81,132,59,23,65,132,59,246,48,132,59,199,32,132,59,139,16,132,59,64,0,132,59,232,239,131,59,130,223,131,59,14,207,131,59,140,190,131,59,253,173,131,59,95,157,131,59,180,140,131,59,251,123,131,59,52,107,131,59,96,90,131,59,126,73,131,59,141,56,131,59,144,39,131,59,132,22,131,59,107,5,131,59,67,244,130,59,15,227,130,59,204,
209,130,59,124,192,130,59,30,175,130,59,178,157,130,59,57,140,130,59,178,122,130,59,29,105,130,59,122,87,130,59,202,69,130,59,13,52,130,59,65,34,130,59,104,16,130,59,130,254,129,59,141,236,129,59,140,218,129,59,124,200,129,59,95,182,129,59,52,164,129,59,252,145,129,59,183,127,129,59,99,109,129,59,2,91,129,59,148,72,129,59,24,54,129,59,142,35,129,59,247,16,129,59,83,254,128,59,161,235,128,59,225,216,128,59,20,198,128,59,58,179,128,59,82,160,128,59,92,141,128,59,89,122,128,59,73,103,128,59,43,84,128,
59,0,65,128,59,199,45,128,59,129,26,128,59,46,7,128,59,154,231,127,59,190,192,127,59,199,153,127,59,181,114,127,59,136,75,127,59,65,36,127,59,223,252,126,59,99,213,126,59,203,173,126,59,25,134,126,59,77,94,126,59,102,54,126,59,100,14,126,59,72,230,125,59,17,190,125,59,192,149,125,59,84,109,125,59,206,68,125,59,45,28,125,59,114,243,124,59,156,202,124,59,172,161,124,59,162,120,124,59,125,79,124,59,62,38,124,59,228,252,123,59,112,211,123,59,226,169,123,59,58,128,123,59,119,86,123,59,154,44,123,59,163,
2,123,59,146,216,122,59,103,174,122,59,33,132,122,59,193,89,122,59,71,47,122,59,179,4,122,59,5,218,121,59,61,175,121,59,90,132,121,59,94,89,121,59,71,46,121,59,23,3,121,59,205,215,120,59,104,172,120,59,234,128,120,59,82,85,120,59,160,41,120,59,212,253,119,59,238,209,119,59,239,165,119,59,213,121,119,59,162,77,119,59,85,33,119,59,238,244,118,59,109,200,118,59,211,155,118,59,31,111,118,59,81,66,118,59,106,21,118,59,105,232,117,59,78,187,117,59,26,142,117,59,204,96,117,59,101,51,117,59,228,5,117,59,
73,216,116,59,149,170,116,59,200,124,116,59,225,78,116,59,225,32,116,59,199,242,115,59,148,196,115,59,71,150,115,59,225,103,115,59,98,57,115,59,201,10,115,59,23,220,114,59,76,173,114,59,103,126,114,59,106,79,114,59,83,32,114,59,35,241,113,59,217,193,113,59,119,146,113,59,251,98,113,59,103,51,113,59,185,3,113,59,242,211,112,59,18,164,112,59,25,116,112,59,7,68,112,59,220,19,112,59,152,227,111,59,59,179,111,59,197,130,111,59,55,82,111,59,143,33,111,59,207,240,110,59,245,191,110,59,3,143,110,59,248,93,
110,59,212,44,110,59,152,251,109,59,67,202,109,59,213,152,109,59,78,103,109,59,175,53,109,59,247,3,109,59,39,210,108,59,62,160,108,59,60,110,108,59,34,60,108,59,239,9,108,59,164,215,107,59,64,165,107,59,196,114,107,59,47,64,107,59,130,13,107,59,188,218,106,59,222,167,106,59,232,116,106,59,217,65,106,59,179,14,106,59,115,219,105,59,28,168,105,59,172,116,105,59,36,65,105,59,132,13,105,59,204,217,104,59,251,165,104,59,19,114,104,59,18,62,104,59,249,9,104,59,200,213,103,59,127,161,103,59,30,109,103,59,
165,56,103,59,21,4,103,59,108,207,102,59,171,154,102,59,210,101,102,59,226,48,102,59,217,251,101,59,185,198,101,59,129,145,101,59,49,92,101,59,201,38,101,59,74,241,100,59,179,187,100,59,4,134,100,59,62,80,100,59,96,26,100,59,106,228,99,59,93,174,99,59,56,120,99,59,251,65,99,59,167,11,99,59,60,213,98,59,185,158,98,59,31,104,98,59,109,49,98,59,163,250,97,59],"i8",4,y.a+471040);
Q([195,195,97,59,203,140,97,59,187,85,97,59,149,30,97,59,87,231,96,59,2,176,96,59,149,120,96,59,18,65,96,59,119,9,96,59,197,209,95,59,251,153,95,59,27,98,95,59,36,42,95,59,21,242,94,59,240,185,94,59,179,129,94,59,96,73,94,59,245,16,94,59,116,216,93,59,219,159,93,59,44,103,93,59,102,46,93,59,137,245,92,59,149,188,92,59,138,131,92,59,105,74,92,59,49,17,92,59,226,215,91,59,124,158,91,59,0,101,91,59,109,43,91,59,195,241,90,59,3,184,90,59,44,126,90,59,63,68,90,59,59,10,90,59,33,208,89,59,240,149,89,59,
169,91,89,59,75,33,89,59,215,230,88,59,77,172,88,59,172,113,88,59,245,54,88,59,39,252,87,59,67,193,87,59,73,134,87,59,57,75,87,59,19,16,87,59,214,212,86,59,132,153,86,59,27,94,86,59,156,34,86,59,7,231,85,59,92,171,85,59,155,111,85,59,196,51,85,59,215,247,84,59,212,187,84,59,187,127,84,59,140,67,84,59,72,7,84,59,237,202,83,59,125,142,83,59,247,81,83,59,91,21,83,59,170,216,82,59,227,155,82,59,6,95,82,59,19,34,82,59,11,229,81,59,237,167,81,59,186,106,81,59,113,45,81,59,19,240,80,59,159,178,80,59,21,
117,80,59,119,55,80,59,194,249,79,59,249,187,79,59,26,126,79,59,38,64,79,59,28,2,79,59,253,195,78,59,201,133,78,59,128,71,78,59,33,9,78,59,173,202,77,59,37,140,77,59,135,77,77,59,212,14,77,59,11,208,76,59,46,145,76,59,60,82,76,59,53,19,76,59,25,212,75,59,232,148,75,59,162,85,75,59,71,22,75,59,216,214,74,59,83,151,74,59,186,87,74,59,12,24,74,59,73,216,73,59,114,152,73,59,133,88,73,59,133,24,73,59,111,216,72,59,69,152,72,59,7,88,72,59,179,23,72,59,76,215,71,59,208,150,71,59,63,86,71,59,154,21,71,59,
225,212,70,59,19,148,70,59,49,83,70,59,58,18,70,59,47,209,69,59,16,144,69,59,221,78,69,59,150,13,69,59,58,204,68,59,202,138,68,59,70,73,68,59,174,7,68,59,2,198,67,59,66,132,67,59,110,66,67,59,134,0,67,59,138,190,66,59,122,124,66,59,86,58,66,59,30,248,65,59,211,181,65,59,115,115,65,59,0,49,65,59,121,238,64,59,222,171,64,59,48,105,64,59,110,38,64,59,152,227,63,59,175,160,63,59,178,93,63,59,162,26,63,59,126,215,62,59,70,148,62,59,252,80,62,59,157,13,62,59,43,202,61,59,166,134,61,59,14,67,61,59,98,255,
60,59,163,187,60,59,209,119,60,59,235,51,60,59,242,239,59,59,230,171,59,59,199,103,59,59,149,35,59,59,80,223,58,59,247,154,58,59,140,86,58,59,13,18,58,59,124,205,57,59,216,136,57,59,32,68,57,59,86,255,56,59,121,186,56,59,137,117,56,59,135,48,56,59,114,235,55,59,73,166,55,59,15,97,55,59,193,27,55,59,97,214,54,59,238,144,54,59,105,75,54,59,209,5,54,59,39,192,53,59,106,122,53,59,154,52,53,59,185,238,52,59,196,168,52,59,190,98,52,59,165,28,52,59,122,214,51,59,60,144,51,59,236,73,51,59,138,3,51,59,22,
189,50,59,144,118,50,59,247,47,50,59,76,233,49,59,144,162,49,59,193,91,49,59,224,20,49,59,237,205,48,59,233,134,48,59,210,63,48,59,170,248,47,59,111,177,47,59,35,106,47,59,197,34,47,59,85,219,46,59,212,147,46,59,64,76,46,59,155,4,46,59,229,188,45,59,29,117,45,59,67,45,45,59,87,229,44,59,91,157,44,59,76,85,44,59,44,13,44,59,251,196,43,59,184,124,43,59,100,52,43,59,255,235,42,59,136,163,42,59,0,91,42,59,103,18,42,59,189,201,41,59,1,129,41,59,52,56,41,59,86,239,40,59,103,166,40,59,103,93,40,59,86,20,
40,59,52,203,39,59,1,130,39,59,189,56,39,59,104,239,38,59,2,166,38,59,140,92,38,59,4,19,38,59,108,201,37,59,195,127,37,59,9,54,37,59,63,236,36,59,100,162,36,59,120,88,36,59,124,14,36,59,111,196,35,59,82,122,35,59,36,48,35,59,230,229,34,59,151,155,34,59,56,81,34,59,200,6,34,59,72,188,33,59,184,113,33,59,24,39,33,59,103,220,32,59,166,145,32,59,213,70,32,59,244,251,31,59,3,177,31,59,1,102,31,59,240,26,31,59,206,207,30,59,157,132,30,59,91,57,30,59,10,238,29,59,169,162,29,59,55,87,29,59,183,11,29,59,38,
192,28,59,133,116,28,59,213,40,28,59,21,221,27,59,69,145,27,59,102,69,27,59,119,249,26,59,121,173,26,59,107,97,26,59,78,21,26,59,33,201,25,59,228,124,25,59,153,48,25,59,61,228,24,59,211,151,24,59,89,75,24,59,208,254,23,59,56,178,23,59,144,101,23,59,217,24,23,59,20,204,22,59,63,127,22,59,90,50,22,59,103,229,21,59,101,152,21,59,84,75,21,59,52,254,20,59,5,177,20,59,199,99,20,59,122,22,20,59,31,201,19,59,181,123,19,59,59,46,19,59,180,224,18,59,29,147,18,59,120,69,18,59,196,247,17,59,2,170,17,59,49,92,
17,59,81,14,17,59,99,192,16,59,103,114,16,59,92,36,16,59,67,214,15,59,27,136,15,59,230,57,15,59,161,235,14,59,79,157,14,59,238,78,14,59,127,0,14,59,2,178,13,59,119,99,13,59,222,20,13,59,55,198,12,59,129,119,12,59,190,40,12,59,237,217,11,59,14,139,11,59,32,60,11,59,37,237,10,59,29,158,10,59,6,79,10,59,226,255,9,59,176,176,9,59,112,97,9,59,35,18,9,59,200,194,8,59,95,115,8,59,233,35,8,59,101,212,7,59,212,132,7,59,53,53,7,59,137,229,6,59,208,149,6,59,9,70,6,59,53,246,5,59,83,166,5,59,101,86,5,59,105,
6,5,59,96,182,4,59,74,102,4,59,38,22,4,59,246,197,3,59,185,117,3,59,110,37,3,59,23,213,2,59,178,132,2,59,65,52,2,59,195,227,1,59,56,147,1,59,160,66,1,59,251,241,0,59,74,161,0,59,140,80,0,59,130,255,255,58,211,93,255,58,11,188,254,58,42,26,254,58,48,120,253,58,29,214,252,58,241,51,252,58,172,145,251,58,78,239,250,58,215,76,250,58,72,170,249,58,161,7,249,58,224,100,248,58,7,194,247,58,22,31,247,58,13,124,246,58,235,216,245,58,177,53,245,58,95,146,244,58,245,238,243,58,115,75,243,58,217,167,242,58,40,
4,242,58,94,96,241,58,125,188,240,58,132,24,240,58,116,116,239,58,76,208,238,58,12,44,238,58,182,135,237,58,72,227,236,58,195,62,236,58,38,154,235,58,115,245,234,58,169,80,234,58,200,171,233,58,207,6,233,58,192,97,232,58,155,188,231,58,94,23,231,58,12,114,230,58,162,204,229,58,34,39,229,58,140,129,228,58,224,219,227,58,29,54,227,58,68,144,226,58,85,234,225,58,80,68,225,58,53,158,224,58,4,248,223,58,189,81,223,58,97,171,222,58,239,4,222,58,103,94,221,58,202,183,220,58,23,17,220,58,79,106,219,58,114,
195,218,58,127,28,218,58,119,117,217,58,90,206,216,58,40,39,216,58,225,127,215,58,133,216,214,58,21,49,214,58,143,137,213,58,245,225,212,58,70,58,212,58,131,146,211,58,171,234,210,58,191,66,210,58,191,154,209,58,170,242,208,58,129,74,208,58,68,162,207,58,243,249,206,58,142,81,206,58,21,169,205,58,136,0,205,58,231,87,204,58,51,175,203,58,107,6,203,58,143,93,202,58,161,180,201,58,158,11,201,58,136,98,200,58,95,185,199,58,35,16,199,58,212,102,198,58,114,189,197,58,252,19,197,58,116,106,196,58,217,192,
195,58,43,23,195,58,107,109,194,58,151,195,193,58,178,25,193,58,185,111,192,58,175,197,191,58,146,27,191,58,99,113,190,58,33,199,189,58,206,28,189,58,104,114,188,58,241,199,187,58,103,29,187,58,204,114,186,58,31,200,185,58,96,29,185,58,143,114,184,58,174,199,183,58,186,28,183,58,181,113,182,58,159,198,181,58,120,27,181,58,63,112,180,58,245,196,179,58,155,25,179,58,47,110,178,58,178,194,177,58,37,23,177,58,134,107,176,58,215,191,175,58,24,20,175,58,72,104,174,58,103,188,173,58,118,16,173,58,117,100,
172,58,99,184,171,58,66,12,171,58,16,96,170,58,206,179,169,58,124,7,169,58,27,91,168,58,169,174,167,58,40,2,167,58,151,85,166,58,246,168,165,58,70,252,164,58,135,79,164,58,184,162,163,58,218,245,162,58,236,72,162,58,240,155,161,58,228,238,160,58,201,65,160,58,160,148,159,58,103,231,158,58,32,58,158,58,202,140,157,58,101,223,156,58,241,49,156,58,112,132,155,58,223,214,154,58,65,41,154,58,148,123,153,58,217,205,152,58,15,32,152,58,56,114,151,58,83,196,150,58,95,22,150,58,94,104,149,58,79,186,148,58,
51,12,148,58,9,94,147,58,209,175,146,58,139,1,146,58,57,83,145,58,217,164,144,58,107,246,143,58,241,71,143,58,105,153,142,58,212,234,141,58,51,60,141,58,132,141,140,58,201,222,139,58,1,48,139,58,44,129,138,58,74,210,137,58,92,35,137,58,98,116,136,58,91,197,135,58,72,22,135,58,40,103,134,58,253,183,133,58,197,8,133,58,129,89,132,58,50,170,131,58,214,250,130,58,111,75,130,58,252,155,129,58,125,236,128,58,243,60,128,58,186,26,127,58,120,187,125,58,30,92,124,58,175,252,122,58,40,157,121,58,140,61,120,
58,217,221,118,58,17,126,117,58,50,30,116,58,62,190,114,58,53,94,113,58,21,254,111,58,225,157,110,58,152,61,109,58,57,221,107,58,198,124,106,58,62,28,105,58,162,187,103,58,241,90,102,58,44,250,100,58,83,153,99,58,102,56,98,58,102,215,96,58,81,118,95,58,41,21,94,58,238,179,92,58,160,82,91,58,63,241,89,58,202,143,88,58,67,46,87,58,170,204,85,58,254,106,84,58,64,9,83,58,111,167,81,58,141,69,80,58,152,227,78,58,146,129,77,58,123,31,76,58,82,189,74,58,23,91,73,58,204,248,71,58,112,150,70,58,3,52,69,58,
133,209,67,58,247,110,66,58,88,12,65,58,169,169,63,58,234,70,62,58,27,228,60,58,60,129,59,58,78,30,58,58,80,187,56,58,67,88,55,58,39,245,53,58,252,145,52,58,193,46,51,58,120,203,49,58,33,104,48,58,187,4,47,58,71,161,45,58,196,61,44,58,52,218,42,58,149,118,41,58,233,18,40,58,48,175,38,58,105,75,37,58,149,231,35,58,180,131,34,58,197,31,33,58,202,187,31,58,195,87,30,58,174,243,28,58,142,143,27,58,97,43,26,58,40,199,24,58,227,98,23,58,147,254,21,58,55,154,20,58,207,53,19,58,92,209,17,58,222,108,16,58,
85,8,15,58,193,163,13,58,34,63,12,58,121,218,10,58,197,117,9,58,7,17,8,58,63,172,6,58,109,71,5,58,145,226,3,58,171,125,2,58,188,24,1,58,135,103,255,57,131,157,252,57,109,211,249,57,69,9,247,57,12,63,244,57,194,116,241,57,102,170,238,57,250,223,235,57,125,21,233,57,241,74,230,57,84,128,227,57,168,181,224,57,237,234,221,57,35,32,219,57,74,85,216,57,99,138,213,57,110,191,210,57,107,244,207,57,91,41,205,57,62,94,202,57,20,147,199,57,222,199,196,57,155,252,193,57,76,49,191,57,242,101,188,57,140,154,185,
57,27,207,182,57,160,3,180,57,26,56,177,57,138,108,174,57,241,160,171,57,77,213,168,57,161,9,166,57,235,61,163,57,45,114,160,57,103,166,157,57,152,218,154,57,194,14,152,57,228,66,149,57,255,118,146,57,19,171,143,57,33,223,140,57,41,19,138,57,42,71,135,57,38,123,132,57,28,175,129,57,27,198,125,57,245,45,120,57,197,149,114,57,141,253,108,57,77,101,103,57,6,205,97,57,185,52,92,57,101,156,86,57,13,4,81,57,175,107,75,57,77,211,69,57,232,58,64,57,128,162,58,57,21,10,53,57,169,113,47,57,59,217,41,57,205,
64,36,57,94,168,30,57,241,15,25,57,132,119,19,57,26,223,13,57,177,70,8,57,76,174,2,57,212,43,250,56,25,251,238,56,103,202,227,56,193,153,216,56,37,105,205,56,152,56,194,56,24,8,183,56,168,215,171,56,72,167,160,56,251,118,149,56,192,70,138,56,51,45,126,56,17,205,103,56,29,109,81,56,88,13,59,56,197,173,36,56,102,78,14,56,124,222,239,55,159,32,195,55,56,99,150,55,155,76,83,55,141,167,243,54,244,111,1,54,227,106,100,182,81,144,18,183,194,4,108,183,1,188,162,183,4,117,207,183,101,45,252,183,144,114,20,
184,24,206,42,184,71,41,65,184,29,132,87,184,149,222,109,184,87,28,130,184,51,73,141,184,221,117,152,184,84,162,163,184,150,206,174,184,163,250,185,184,121,38,197,184,24,82,208,184,125,125,219,184,168,168,230,184,151,211,241,184,74,254,252,184,96,20,4,185,123,169,9,185,118,62,15,185,80,211,20,185,9,104,26,185,160,252,31,185,21,145,37,185,102,37,43,185,148,185,48,185,158,77,54,185,130,225,59,185,66,117,65,185,219,8,71,185,78,156,76,185,154,47,82,185,189,194,87,185,185,85,93,185,139,232,98,185,52,123,
104,185,179,13,110,185,7,160,115,185,47,50,121,185,44,196,126,185,254,42,130,185,208,243,132,185,138,188,135,185,46,133,138,185,186,77,141,185,46,22,144,185,138,222,146,185,206,166,149,185,250,110,152,185,12,55,155,185,5,255,157,185,229,198,160,185,171,142,163,185,87,86,166,185,232,29,169,185,95,229,171,185,187,172,174,185,251,115,177,185,32,59,180,185,41,2,183,185,22,201,185,185,230,143,188,185,154,86,191,185,48,29,194,185,170,227,196,185,5,170,199,185,67,112,202,185,99,54,205,185,100,252,207,185,
70,194,210,185,9,136,213,185,173,77,216,185,49,19,219,185,149,216,221,185,216,157,224,185,252,98,227,185,254,39,230,185,223,236,232,185,159,177,235,185,61,118,238,185,185,58,241,185,18,255,243,185,73,195,246,185,94,135,249,185,78,75,252,185,28,15,255,185,99,233,0,186,37,75,2,186,214,172,3,186,116,14,5,186,0,112,6,186,121,209,7,186,224,50,9,186,51,148,10,186,115,245,11,186,161,86,13,186,186,183,14,186,193,24,16,186,179,121,17,186,146,218,18,186,93,59,20,186,20,156,21,186,183,252,22,186,69,93,24,186,
191,189,25,186,36,30,27,186,116,126,28,186,175,222,29,186,213,62,31,186,230,158,32,186,226,254,33,186,200,94,35,186,152,190,36,186,82,30,38,186,247,125,39,186,133,221,40,186,253,60,42,186,95,156,43,186,170,251,44,186,223,90,46,186,252,185,47,186,3,25,49,186,242,119,50,186,203,214,51,186,139,53,53,186,52,148,54,186,198,242,55,186,64,81,57,186,161,175,58,186,235,13,60,186,28,108,61,186,52,202,62,186,53,40,64,186,28,134,65,186,235,227,66,186,160,65,68,186,60,159,69,186,192,252,70,186,41,90,72,186,121,
183,73,186,175,20,75,186,204,113,76,186,206,206,77,186,182,43,79,186,132,136,80,186,56,229,81,186,209,65,83,186,79,158,84,186,178,250,85,186,250,86,87,186,39,179,88,186,57,15,90,186,47,107,91,186,10,199,92,186,201,34,94,186,108,126,95,186,243,217,96,186,93,53,98,186,172,144,99,186,222,235,100,186,243,70,102,186,236,161,103,186,200,252,104,186,134,87,106,186,40,178,107,186,172,12,109,186,19,103,110,186,92,193,111,186,135,27,113,186,149,117,114,186,132,207,115,186,86,41,117,186,9,131,118,186,157,220,
119,186,19,54,121,186,106,143,122,186,162,232,123,186,188,65,125,186,182,154,126,186,145,243,127,186,38,166,128,186,116,82,129,186,178,254,129,186,224,170,130,186,254,86,131,186,12,3,132,186,10,175,132,186,247,90,133,186,213,6,134,186,161,178,134,186,94,94,135,186,10,10,136,186,165,181,136,186,48,97,137,186,170,12,138,186,19,184,138,186,108,99,139,186,179,14,140,186,234,185,140,186,15,101,141,186,35,16,142,186,38,187,142,186,24,102,143,186,249,16,144,186,199,187,144,186,133,102,145,186,49,17,146,
186,203,187,146,186,84,102,147,186,203,16,148,186,48,187,148,186,131,101,149,186,196,15,150,186,243,185,150,186,16,100,151,186,26,14,152,186,19,184,152,186,249,97,153,186,205,11,154,186,142,181,154,186,61,95,155,186,217,8,156,186,98,178,156,186,217,91,157,186,61,5,158,186,142,174,158,186,204,87,159,186,247,0,160,186,15,170,160,186,19,83,161,186,5,252,161,186,227,164,162,186,174,77,163,186,101,246,163,186,9,159,164,186,153,71,165,186,22,240,165,186,127,152,166,186,212,64,167,186,21,233,167,186,67,
145,168,186,92,57,169,186,97,225,169,186,82,137,170,186,47,49,171,186,248,216,171,186,172,128,172,186,76,40,173,186,215,207,173,186,78,119,174,186,177,30,175,186,254,197,175,186,55,109,176,186,91,20,177,186,106,187,177,186,100,98,178,186,73,9,179,186,25,176,179,186,212,86,180,186,122,253,180,186,10,164,181,186,133,74,182,186,235,240,182,186,59,151,183,186,117,61,184,186,154,227,184,186,169,137,185,186,162,47,186,186,134,213,186,186,83,123,187,186,11,33,188,186,172,198,188,186,56,108,189,186,173,17,
190,186,12,183,190,186,85,92,191,186,135,1,192,186,163,166,192,186,168,75,193,186,151,240,193,186,111,149,194,186,48,58,195,186,219,222,195,186,110,131,196,186,235,39,197,186,81,204,197,186,159,112,198,186,215,20,199,186,247,184,199,186,0,93,200,186,242,0,201,186,205,164,201,186,143,72,202,186,59,236,202,186,207,143,203,186,75,51,204,186,175,214,204,186,252,121,205,186,48,29,206,186,77,192,206,186,82,99,207,186,62,6,208,186,19,169,208,186,207,75,209,186,116,238,209,186,255,144,210,186,115,51,211,
186,206,213,211,186,16,120,212,186,58,26,213,186,75,188,213,186,67,94,214,186,35,0,215,186,234,161,215,186,151,67,216,186,44,229,216,186,168,134,217,186,10,40,218,186,84,201,218,186,132,106,219,186,155,11,220,186,152,172,220,186,124,77,221,186,71,238,221,186,248,142,222,186,143,47,223,186,12,208,223,186,112,112,224,186,186,16,225,186,234,176,225,186,0,81,226,186,252,240,226,186,222,144,227,186,165,48,228,186,83,208,228,186,230,111,229,186,95,15,230,186,189,174,230,186,1,78,231,186,42,237,231,186,
57,140,232,186,44,43,233,186,6,202,233,186,196,104,234,186,103,7,235,186,240,165,235,186,93,68,236,186,176,226,236,186,231,128,237,186,3,31,238,186,4,189,238,186,233,90,239,186,179,248,239,186,97,150,240,186,244,51,241,186,108,209,241,186,200,110,242,186,8,12,243,186,44,169,243,186,52,70,244,186,32,227,244,186,241,127,245,186,165,28,246,186,62,185,246,186,186,85,247,186,26,242,247,186,93,142,248,186,132,42,249,186,143,198,249,186,125,98,250,186,79,254,250,186,4,154,251,186,157,53,252,186,24,209,252,
186,119,108,253,186,185,7,254,186,222,162,254,186,230,61,255,186,209,216,255,186,207,57,0,187,40,135,0,187,114,212,0,187,173,33,1,187,217,110,1,187,247,187,1,187,5,9,2,187,6,86,2,187,247,162,2,187,217,239,2,187,173,60,3,187,114,137,3,187,39,214,3,187,206,34,4,187,102,111,4,187,238,187,4,187,104,8,5,187,211,84,5,187,46,161,5,187,122,237,5,187,183,57,6,187,229,133,6,187,4,210,6,187,19,30,7,187,19,106,7,187,4,182,7,187,229,1,8,187,183,77,8,187,122,153,8,187,45,229,8,187,208,48,9,187,100,124,9,187,233,
199,9,187,94,19,10,187,195,94,10,187,24,170,10,187,94,245,10,187,148,64,11,187,187,139,11,187,209,214,11,187,216,33,12,187,207,108,12,187,183,183,12,187,142,2,13,187,85,77,13,187,13,152,13,187,180,226,13,187,75,45,14,187,211,119,14,187,74,194,14,187,177,12,15,187,8,87,15,187,79,161,15,187,134,235,15,187,172,53,16,187,194,127,16,187,200,201,16,187,190,19,17,187,163,93,17,187,120,167,17,187,60,241,17,187,241,58,18,187,148,132,18,187,39,206,18,187,170,23,19,187,28,97,19,187,125,170,19,187,206,243,19,
187,14,61,20,187,61,134,20,187,92,207,20,187,106,24,21,187,103,97,21,187,84,170,21,187,48,243,21,187,250,59,22,187,180,132,22,187,93,205,22,187,245,21,23,187,125,94,23,187,243,166,23,187,88,239,23,187,172,55,24,187,239,127,24,187,32,200,24,187,65,16,25,187,81,88,25,187,79,160,25,187,60,232,25,187,24,48,26,187,226,119,26,187,155,191,26,187,67,7,27,187,218,78,27,187,95,150,27,187,210,221,27,187,53,37,28,187,133,108,28,187,196,179,28,187,242,250,28,187,14,66,29,187,24,137,29,187,17,208,29,187,248,22,
30,187,206,93,30,187,145,164,30,187,67,235,30,187,228,49,31,187,114,120,31,187,238,190,31,187,89,5,32,187,178,75,32,187,249,145,32,187,45,216,32,187,80,30,33,187,97,100,33,187,96,170,33,187,77,240,33,187,40,54,34,187,240,123,34,187,167,193,34,187,75,7,35,187,221,76,35,187,93,146,35,187,202,215,35,187,38,29,36,187,111,98,36,187,165,167,36,187,201,236,36,187,219,49,37,187,219,118,37,187,200,187,37,187,162,0,38,187,106,69,38,187,32,138,38,187,194,206,38,187,83,19,39,187,208,87,39,187,59,156,39,187,148,
224,39,187,217,36,40,187,12,105,40,187,44,173,40,187,58,241,40,187,52,53,41,187,28,121,41,187,241,188,41,187,178,0,42,187,97,68,42,187,253,135,42,187,135,203,42,187,253,14,43,187,96,82,43,187,176,149,43,187,236,216,43,187,22,28,44,187,45,95,44,187,48,162,44,187,32,229,44,187,254,39,45,187,199,106,45,187,126,173,45,187,33,240,45,187,177,50,46,187,45,117,46,187,151,183,46,187,236,249,46,187,47,60,47,187,93,126,47,187,121,192,47,187,129,2,48,187,117,68,48,187,86,134,48,187,35,200,48,187,220,9,49,187,
130,75,49,187,20,141,49,187,147,206,49,187,253,15,50,187,84,81,50,187,152,146,50,187,199,211,50,187,227,20,51,187,234,85,51,187,222,150,51,187,190,215,51,187,138,24,52,187,66,89,52,187,230,153,52,187,118,218,52,187,242,26,53,187,90,91,53,187,174,155,53,187,238,219,53,187,25,28,54,187,49,92,54,187,52,156,54,187,35,220,54,187,254,27,55,187,196,91,55,187,118,155,55,187,20,219,55,187,158,26,56,187,19,90,56,187,116,153,56,187,192,216,56,187,248,23,57,187,27,87,57,187,42,150,57,187,36,213,57,187,10,20,
58,187,219,82,58,187,152,145,58,187,64,208,58,187,211,14,59,187,82,77,59,187,188,139,59,187,17,202,59,187,82,8,60,187,126,70,60,187,149,132,60,187,151,194,60,187,132,0,61,187,92,62,61,187,32,124,61,187,206,185,61,187,104,247,61,187,237,52,62,187,92,114,62,187,183,175,62,187,252,236,62,187,45,42,63,187,72,103,63,187,79,164,63,187,64,225,63,187,28,30,64,187,226,90,64,187,148,151,64,187,48,212,64,187,183,16,65,187,41,77,65,187,133,137,65,187,205,197,65,187,254,1,66,187,27,62,66,187,34,122,66,187,19,
182,66,187,239,241,66,187,182,45,67,187,103,105,67,187,2,165,67,187,136,224,67,187,249,27,68,187,83,87,68,187,153,146,68,187,200,205,68,187,226,8,69,187,230,67,69,187,213,126,69,187,173,185,69,187,112,244,69,187,29,47,70,187,181,105,70,187,54,164,70,187,162,222,70,187,247,24,71,187,55,83,71,187,97,141,71,187,117,199,71,187,115,1,72,187,91,59,72,187,45,117,72,187,233,174,72,187,143,232,72,187,31,34,73,187,152,91,73,187,252,148,73,187,73,206,73,187,128,7,74,187,161,64,74,187,172,121,74,187,161,178,
74,187,127,235,74,187,71,36,75,187,248,92,75,187,148,149,75,187,24,206,75,187,135,6,76,187,223,62,76,187,33,119,76,187,76,175,76,187,97,231,76,187,95,31,77,187,71,87,77,187,24,143,77,187,211,198,77,187,119,254,77,187,4,54,78,187,123,109,78,187,219,164,78,187,37,220,78,187,87,19,79,187,115,74,79,187,121,129,79,187,103,184,79,187,63,239,79,187,0,38,80,187,170,92,80,187,62,147,80,187,186,201,80,187,32,0,81,187,110,54,81,187,166,108,81,187,199,162,81,187,209,216,81,187,195,14,82,187,159,68,82,187,100,
122,82,187,18,176,82,187,168,229,82,187,40,27,83,187,144,80,83,187,225,133,83,187,27,187,83,187,62,240,83,187,74,37,84,187,62,90,84,187,27,143,84,187,225,195,84,187,144,248,84,187,39,45,85,187,167,97,85,187,16,150,85,187,97,202,85,187,155,254,85,187,189,50,86,187,200,102,86,187,188,154,86,187,152,206,86,187,92,2,87,187,9,54,87,187,159,105,87,187,29,157,87,187,131,208,87,187,210,3,88,187,9,55,88,187,40,106,88,187,48,157,88,187,32,208,88,187,249,2,89,187,186,53,89,187,99,104,89,187,244,154,89,187,109,
205,89,187,207,255,89,187,25,50,90,187,75,100,90,187,101,150,90,187,103,200,90,187,81,250,90,187,36,44,91,187,222,93,91,187,129,143,91,187,11,193,91,187,126,242,91,187,216,35,92,187,27,85,92,187,69,134,92,187,88,183,92,187,82,232,92,187,52,25,93,187,254,73,93,187,176,122,93,187,74,171,93,187,203,219,93,187,52,12,94,187,133,60,94,187,190,108,94,187,223,156,94,187,231,204,94,187,215,252,94,187,175,44,95,187,110,92,95,187,21,140,95,187,164,187,95,187,26,235,95,187,119,26,96,187,189,73,96,187,234,120,
96,187,254,167,96,187,250,214,96,187,221,5,97,187,168,52,97,187,91,99,97,187,244,145,97,187,118,192,97,187,222,238,97,187,46,29,98,187,102,75,98,187,132,121,98,187,138,167,98,187,120,213,98,187,76,3,99,187,8,49,99,187,171,94,99,187,54,140,99,187,167,185,99,187,0,231,99,187,64,20,100,187,103,65,100,187,118,110,100,187,107,155,100,187,72,200,100,187,11,245,100,187,182,33,101,187,72,78,101,187,193,122,101,187,33,167,101,187,104,211,101,187,150,255,101,187,170,43,102,187,166,87,102,187,137,131,102,187,
83,175,102,187,3,219,102,187,155,6,103,187,25,50,103,187,127,93,103,187,203,136,103,187,254,179,103,187,23,223,103,187,24,10,104,187,255,52,104,187,205,95,104,187,130,138,104,187,30,181,104,187,160,223,104,187,9,10,105,187,88,52,105,187,143,94,105,187,171,136,105,187,175,178,105,187,153,220,105,187,106,6,106,187,33,48,106,187,191,89,106,187,67,131,106,187,174,172,106,187,0,214,106,187,56,255,106,187,86,40,107,187,91,81,107,187,71,122,107,187,24,163,107,187,209,203,107,187,111,244,107,187,244,28,108,
187,96,69,108,187,177,109,108,187,233,149,108,187,8,190,108,187,12,230,108,187,247,13,109,187,201,53,109,187,128,93,109,187,30,133,109,187,162,172,109,187,12,212,109,187,93,251,109,187,147,34,110,187,176,73,110,187,179,112,110,187,156,151,110,187,107,190,110,187,33,229,110,187,188,11,111,187,62,50,111,187,165,88,111,187,243,126,111,187,39,165,111,187,64,203,111,187,64,241,111,187,38,23,112,187,241,60,112,187,163,98,112,187,59,136,112,187,184,173,112,187,28,211,112,187,101,248,112,187,148,29,113,187,
170,66,113,187,165,103,113,187,133,140,113,187,76,177,113,187,249,213,113,187,139,250,113,187,3,31,114,187,97,67,114,187,165,103,114,187,206,139,114,187,221,175,114,187,210,211,114,187,173,247,114,187,109,27,115,187,19,63,115,187,159,98,115,187,16,134,115,187,103,169,115,187,164,204,115,187,198,239,115,187,206,18,116,187,187,53,116,187,142,88,116,187,71,123,116,187,229,157,116,187,105,192,116,187,210,226,116,187,32,5,117,187,85,39,117,187,110,73,117,187,109,107,117,187,82,141,117,187,28,175,117,187,
204,208,117,187,97,242,117,187,219,19,118,187,59,53,118,187,128,86,118,187,170,119,118,187,186,152,118,187,175,185,118,187,138,218,118,187,74,251,118,187,239,27,119,187,121,60,119,187,233,92,119,187,62,125,119,187,120,157,119,187,152,189,119,187,156,221,119,187,134,253,119,187,86,29,120,187,10,61,120,187,164,92,120,187,34,124,120,187,134,155,120,187,207,186,120,187,253,217,120,187,17,249,120,187,9,24,121,187,231,54,121,187,170,85,121,187,81,116,121,187,222,146,121,187,80,177,121,187,167,207,121,187,
227,237,121,187,4,12,122,187,10,42,122,187,245,71,122,187,197,101,122,187,122,131,122,187,20,161,122,187,147,190,122,187,247,219,122,187,63,249,122,187,109,22,123,187,128,51,123,187,119,80,123,187,84,109,123,187,21,138,123,187,187,166,123,187,70,195,123,187,182,223,123,187,11,252,123,187,69,24,124,187,99,52,124,187,102,80,124,187,78,108,124,187,27,136,124,187,205,163,124,187,99,191,124,187,222,218,124,187,62,246,124,187,131,17,125,187,172,44,125,187,186,71,125,187,173,98,125,187,132,125,125,187,65,
152,125,187,225,178,125,187,103,205,125,187,209,231,125,187,32,2,126,187,83,28,126,187,107,54,126,187,104,80,126,187,73,106,126,187,15,132,126,187,186,157,126,187,73,183,126,187,189,208,126,187,21,234,126,187,82,3,127,187,115,28,127,187,121,53,127,187,99,78,127,187,50,103,127,187,230,127,127,187,126,152,127,187,250,176,127,187,91,201,127,187,160,225,127,187,202,249,127,187,236,8,128,187,230,20,128,187,209,32,128,187,175,44,128,187,127,56,128,187,65,68,128,187,246,79,128,187,156,91,128,187,53,103,
128,187,192,114,128,187,61,126,128,187,173,137,128,187,14,149,128,187,98,160,128,187,168,171,128,187,224,182,128,187,10,194,128,187,39,205,128,187,53,216,128,187,54,227,128,187,41,238,128,187,14,249,128,187,229,3,129,187,174,14,129,187,105,25,129,187,23,36,129,187,183,46,129,187,72,57,129,187,204,67,129,187,66,78,129,187,170,88,129,187,5,99,129,187,81,109,129,187,143,119,129,187,192,129,129,187,226,139,129,187,247,149,129,187,254,159,129,187,247,169,129,187,225,179,129,187,190,189,129,187,141,199,
129,187,79,209,129,187,2,219,129,187,167,228,129,187,62,238,129,187,200,247,129,187,67,1,130,187,176,10,130,187,16,20,130,187,97,29,130,187,165,38,130,187,219,47,130,187,2,57,130,187,28,66,130,187,40,75,130,187,37,84,130,187,21,93,130,187,247,101,130,187,202,110,130,187,144,119,130,187,72,128,130,187,242,136,130,187,141,145,130,187,27,154,130,187,155,162,130,187,12,171,130,187,112,179,130,187,198,187,130,187,14,196,130,187,71,204,130,187,115,212,130,187,144,220,130,187,160,228,130,187,162,236,130,
187,149,244,130,187,123,252,130,187,82,4,131,187,27,12,131,187,215,19,131,187,132,27,131,187,35,35,131,187,181,42,131,187,56,50,131,187,173,57,131,187,20,65,131,187,109,72,131,187,184,79,131,187,245,86,131,187,35,94,131,187,68,101,131,187,87,108,131,187,91,115,131,187,82,122,131,187,58,129,131,187,20,136,131,187,225,142,131,187,159,149,131,187,79,156,131,187,241,162,131,187,133,169,131,187,10,176,131,187,130,182,131,187,236,188,131,187,71,195,131,187,148,201,131,187,212,207,131,187,5,214,131,187,
40,220,131,187,61,226,131,187,68,232,131,187,60,238,131,187,39,244,131,187,3,250,131,187,210,255,131,187,146,5,132,187,68,11,132,187,232,16,132,187,126,22,132,187,6,28,132,187,127,33,132,187,235,38,132,187,72,44,132,187,151,49,132,187,216,54,132,187,11,60,132,187,48,65,132,187,71,70,132,187,79,75,132,187,73,80,132,187,54,85,132,187,20,90,132,187,228,94,132,187,165,99,132,187,89,104,132,187,254,108,132,187,150,113,132,187,31,118,132,187,154,122,132,187,7,127,132,187,102,131,132,187,182,135,132,187,
248,139,132,187,45,144,132,187,83,148,132,187,107,152,132,187,116,156,132,187,112,160,132,187,93,164,132,187,60,168,132,187,13,172,132,187,208,175,132,187,133,179,132,187,44,183,132,187,196,186,132,187,78,190,132,187,202,193,132,187,56,197,132,187,152,200,132,187,233,203,132,187,45,207,132,187,98,210,132,187,137,213,132,187,162,216,132,187,172,219,132,187,169,222,132,187,151,225,132,187,119,228,132,187,73,231,132,187,13,234,132,187,194,236,132,187,105,239,132,187,3,242,132,187,142,244,132,187,10,
247,132,187,121,249,132,187,217,251,132,187,44,254,132,187,112,0,133,187,166,2,133,187,205,4,133,187,231,6,133,187,242,8,133,187,239,10,133,187,222,12,133,187,191,14,133,187,146,16,133,187,86,18,133,187,12,20,133,187,180,21,133,187,78,23,133,187,218,24,133,187,87,26,133,187,198,27,133,187,39,29,133,187,122,30,133,187,191,31,133,187,246,32,133,187,30,34,133,187,56,35,133,187,68,36,133,187,66,37,133,187,49,38,133,187,19,39,133,187,230,39,133,187,171,40,133,187,98,41,133,187,11,42,133,187,165,42,133,
187,49,43,133,187,176,43,133,187,32,44,133,187,129,44,133,187,213,44,133,187,26,45,133,187,82,45,133,187,123,45,133,187,150,45,133,187,162,45,133,187,161,45,133,187,145,45,133,187,115,45,133,187,71,45,133,187,13,45,133,187,197,44,133,187,110,44,133,187,10,44,133,187,151,43,133,187,22,43,133,187,134,42,133,187,233,41,133,187,61,41,133,187,132,40,133,187,188,39,133,187,230,38,133,187,2,38,133,187,15,37,133,187,15,36,133,187,0,35,133,187,227,33,133,187,184,32,133,187,127,31,133,187,56,30,133,187,226,
28,133,187,127,27,133,187,13,26,133,187,141,24,133,187,255,22,133,187,99,21,133,187,184,19,133,187,0,18,133,187,57,16,133,187,100,14,133,187,130,12,133,187,144,10,133,187,145,8,133,187,132,6,133,187,104,4,133,187,63,2,133,187,7,0,133,187,193,253,132,187,109,251,132,187,11,249,132,187,155,246,132,187,28,244,132,187,144,241,132,187,245,238,132,187,77,236,132,187,150,233,132,187,209,230,132,187,254,227,132,187,28,225,132,187,45,222,132,187,48,219,132,187,36,216,132,187,11,213,132,187,227,209,132,187,
173,206,132,187,105,203,132,187,23,200,132,187,183,196,132,187,73,193,132,187,204,189,132,187,66,186,132,187,170,182,132,187,3,179,132,187,78,175,132,187,140,171,132,187,187,167,132,187,220,163,132,187,239,159,132,187,244,155,132,187,235,151,132,187,212,147,132,187,175,143,132,187,124,139,132,187,58,135,132,187,235,130,132,187,142,126,132,187,34,122,132,187,169,117,132,187,33,113,132,187,139,108,132,187,232,103,132,187,54,99,132,187,118,94,132,187,169,89,132,187,205,84,132,187,227,79,132,187,235,
74,132,187,229,69,132,187,210,64,132,187,176,59,132,187,128,54,132,187,66,49,132,187,246,43,132,187,156,38,132,187,52,33,132,187,190,27,132,187,58,22,132,187,169,16,132,187,9,11,132,187,91,5,132,187,159,255,131,187,213,249,131,187,253,243,131,187,23,238,131,187,36,232,131,187,34,226,131,187,18,220,131,187,245,213,131,187,201,207,131,187,143,201,131,187,72,195,131,187,242,188,131,187,143,182,131,187,30,176,131,187,158,169,131,187,17,163,131,187,118,156,131,187,205,149,131,187,22,143,131,187,81,136,
131,187,126,129,131,187,157,122,131,187,175,115,131,187,178,108,131,187,168,101,131,187,143,94,131,187,105,87,131,187,53,80,131,187,243,72,131,187,163,65,131,187,69,58,131,187,217,50,131,187,96,43,131,187,216,35,131,187,67,28,131,187,160,20,131,187,239,12,131,187,48,5,131,187,99,253,130,187,136,245,130,187,160,237,130,187,170,229,130,187,165,221,130,187,147,213,130,187,116,205,130,187,70,197,130,187,11,189,130,187,193,180,130,187,106,172,130,187,5,164,130,187,147,155,130,187,18,147,130,187,132,138,
130,187,232,129,130,187,62,121,130,187,135,112,130,187,193,103,130,187,238,94,130,187,13,86,130,187,30,77,130,187,34,68,130,187,24,59,130,187,0,50,130,187,218,40,130,187,166,31,130,187,101,22,130,187,22,13,130,187,186,3,130,187,79,250,129,187,215,240,129,187,81,231,129,187,190,221,129,187,28,212,129,187,110,202,129,187,177,192,129,187,231,182,129,187,15,173,129,187,41,163,129,187,53,153,129,187,52,143,129,187,38,133,129,187,9,123,129,187,223,112,129,187,167,102,129,187,98,92,129,187,15,82,129,187,
174,71,129,187,64,61,129,187,196,50,129,187,59,40,129,187,164,29,129,187,255,18,129,187,77,8,129,187,141,253,128,187,191,242,128,187,228,231,128,187,251,220,128,187,5,210,128,187,1,199,128,187,239,187,128,187,208,176,128,187,164,165,128,187,105,154,128,187,34,143,128,187,204,131,128,187,106,120,128,187,249,108,128,187,123,97,128,187,240,85,128,187,87,74,128,187,177,62,128,187,253,50,128,187,59,39,128,187,108,27,128,187,144,15,128,187,166,3,128,187,93,239,127,187,83,215,127,187,47,191,127,187,239,
166,127,187,148,142,127,187,31,118,127,187,143,93,127,187,227,68,127,187,29,44,127,187,60,19,127,187,65,250,126,187,42,225,126,187,248,199,126,187,172,174,126,187,69,149,126,187,195,123,126,187,39,98,126,187,111,72,126,187,157,46,126,187,176,20,126,187,169,250,125,187,134,224,125,187,73,198,125,187,241,171,125,187,127,145,125,187,242,118,125,187,74,92,125,187,136,65,125,187,171,38,125,187,179,11,125,187,161,240,124,187,116,213,124,187,45,186,124,187,203,158,124,187,78,131,124,187,183,103,124,187,
6,76,124,187,57,48,124,187,83,20,124,187,82,248,123,187,54,220,123,187,0,192,123,187,176,163,123,187,69,135,123,187,191,106,123,187,31,78,123,187,101,49,123,187,145,20,123,187,162,247,122,187,152,218,122,187,117,189,122,187,55,160,122,187,222,130,122,187,108,101,122,187,223,71,122,187,56,42,122,187,118,12,122,187,155,238,121,187,165,208,121,187,148,178,121,187,106,148,121,187,37,118,121,187,199,87,121,187,78,57,121,187,187,26,121,187,13,252,120,187,70,221,120,187,101,190,120,187,105,159,120,187,83,
128,120,187,36,97,120,187,218,65,120,187,118,34,120,187,248,2,120,187,96,227,119,187,175,195,119,187,227,163,119,187,253,131,119,187,253,99,119,187,227,67,119,187,176,35,119,187,98,3,119,187,251,226,118,187,121,194,118,187,222,161,118,187,41,129,118,187,90,96,118,187,113,63,118,187,111,30,118,187,83,253,117,187,28,220,117,187,205,186,117,187,99,153,117,187,224,119,117,187,66,86,117,187,140,52,117,187,187,18,117,187,209,240,116,187,205,206,116,187,176,172,116,187,121,138,116,187,40,104,116,187,190,
69,116,187,58,35,116,187,157,0,116,187,230,221,115,187,21,187,115,187,43,152,115,187,40,117,115,187,11,82,115,187,212,46,115,187,132,11,115,187,27,232,114,187,152,196,114,187,252,160,114,187,70,125,114,187,119,89,114,187,143,53,114,187,141,17,114,187,114,237,113,187,62,201,113,187,240,164,113,187,137,128,113,187,9,92,113,187,112,55,113,187,189,18,113,187,241,237,112,187,12,201,112,187,14,164,112,187,247,126,112,187,198,89,112,187,125,52,112,187,26,15,112,187,158,233,111,187,9,196,111,187,91,158,111,
187,148,120,111,187,180,82,111,187,187,44,111,187,169,6,111,187,126,224,110,187,58,186,110,187,221,147,110,187,103,109,110,187,216,70,110,187,49,32,110,187,112,249,109,187,151,210,109,187,165,171,109,187,154,132,109,187,118,93,109,187,57,54,109,187,228,14,109,187,117,231,108,187,239,191,108,187,79,152,108,187,151,112,108,187,198,72,108,187,220,32,108,187,218,248,107,187,191,208,107,187,139,168,107,187,63,128,107,187,218,87,107,187,93,47,107,187,199,6,107,187,25,222,106,187,82,181,106,187,115,140,
106,187,123,99,106,187,107,58,106,187,66,17,106,187,1,232,105,187,167,190,105,187,54,149,105,187,171,107,105,187,9,66,105,187,78,24,105,187,123,238,104,187,143,196,104,187,140,154,104,187,112,112,104,187,59,70,104,187,239,27,104,187,139,241,103,187,14,199,103,187,121,156,103,187,204,113,103,187,7,71,103,187,41,28,103,187,52,241,102,187,39,198,102,187,1,155,102,187,196,111,102,187,110,68,102,187,1,25,102,187,124,237,101,187,222,193,101,187,41,150,101,187,92,106,101,187,119,62,101,187,122,18,101,187,
101,230,100,187,57,186,100,187,244,141,100,187,152,97,100,187,36,53,100,187,153,8,100,187,245,219,99,187,58,175,99,187,103,130,99,187,125,85,99,187,123,40,99,187,97,251,98,187,48,206,98,187,231,160,98,187,134,115,98,187,14,70,98,187,127,24,98,187,216,234,97,187,25,189,97,187,67,143,97,187,86,97,97,187,81,51,97,187,52,5,97,187,1,215,96,187,182,168,96,187,83,122,96,187,217,75,96,187,72,29,96,187,160,238,95,187,224,191,95,187,9,145,95,187,27,98,95,187,22,51,95,187,250,3,95,187,198,212,94,187,123,165,
94,187,25,118,94,187,160,70,94,187,16,23,94,187,105,231,93,187,171,183,93,187,214,135,93,187,234,87,93,187,230,39,93,187,204,247,92,187,155,199,92,187,83,151,92,187,245,102,92,187,127,54,92,187,242,5,92,187,79,213,91,187,149,164,91,187,196,115,91,187,220,66,91,187,222,17,91,187,200,224,90,187,156,175,90,187,90,126,90,187,1,77,90,187,145,27,90,187,10,234,89,187,109,184,89,187,186,134,89,187,239,84,89,187,15,35,89,187,24,241,88,187,10,191,88,187,230,140,88,187,171,90,88,187,90,40,88,187,243,245,87,
187,117,195,87,187,225,144,87,187,55,94,87,187,118,43,87,187,159,248,86,187,178,197,86,187,174,146,86,187,148,95,86,187,100,44,86,187,30,249,85,187,194,197,85,187,80,146,85,187,199,94,85,187,41,43,85,187,116,247,84,187,170,195,84,187,201,143,84,187,210,91,84,187,198,39,84,187,163,243,83,187,107,191,83,187,28,139,83,187,184,86,83,187,62,34,83,187,174,237,82,187,8,185,82,187,77,132,82,187,123,79,82,187,148,26,82,187,151,229,81,187,133,176,81,187,93,123,81,187,31,70,81,187,204,16,81,187,99,219,80,187,
228,165,80,187,80,112,80,187,166,58,80,187,231,4,80,187,19,207,79,187,40,153,79,187,41,99,79,187,20,45,79,187,234,246,78,187,170,192,78,187,85,138,78,187,234,83,78,187,107,29,78,187,214,230,77,187,44,176,77,187,108,121,77,187,151,66,77,187,174,11,77,187,175,212,76,187,155,157,76,187,113,102,76,187,51,47,76,187,224,247,75,187,119,192,75,187,250,136,75,187,104,81,75,187,192,25,75,187,4,226,74,187,51,170,74,187,77,114,74,187,82,58,74,187,66,2,74,187,30,202,73,187,228,145,73,187,150,89,73,187,51,33,73,
187,188,232,72,187,47,176,72,187,142,119,72,187,217,62,72,187,14,6,72,187,48,205,71,187,60,148,71,187,52,91,71,187,24,34,71,187,231,232,70,187,161,175,70,187,71,118,70,187,217,60,70,187,86,3,70,187,191,201,69,187,20,144,69,187,84,86,69,187,128,28,69,187,152,226,68,187,155,168,68,187,138,110,68,187,101,52,68,187,44,250,67,187,223,191,67,187,125,133,67,187,8,75,67,187,126,16,67,187,225,213,66,187,47,155,66,187,105,96,66,187,144,37,66,187,162,234,65,187,160,175,65,187,139,116,65,187,98,57,65,187,37,
254,64,187,212,194,64,187,111,135,64,187],"i8",4,y.a+481280);
Q([246,75,64,187,106,16,64,187,202,212,63,187,23,153,63,187,79,93,63,187,116,33,63,187,134,229,62,187,132,169,62,187,110,109,62,187,69,49,62,187,8,245,61,187,184,184,61,187,84,124,61,187,221,63,61,187,82,3,61,187,181,198,60,187,3,138,60,187,63,77,60,187,103,16,60,187,124,211,59,187,125,150,59,187,108,89,59,187,71,28,59,187,15,223,58,187,196,161,58,187,102,100,58,187,244,38,58,187,112,233,57,187,216,171,57,187,46,110,57,187,113,48,57,187,160,242,56,187,189,180,56,187,199,118,56,187,190,56,56,187,162,
250,55,187,115,188,55,187,49,126,55,187,221,63,55,187,118,1,55,187,252,194,54,187,112,132,54,187,209,69,54,187,31,7,54,187,91,200,53,187,132,137,53,187,154,74,53,187,158,11,53,187,144,204,52,187,111,141,52,187,59,78,52,187,245,14,52,187,157,207,51,187,50,144,51,187,181,80,51,187,38,17,51,187,133,209,50,187,209,145,50,187,11,82,50,187,51,18,50,187,72,210,49,187,76,146,49,187,61,82,49,187,28,18,49,187,233,209,48,187,164,145,48,187,78,81,48,187,229,16,48,187,106,208,47,187,221,143,47,187,63,79,47,187,
142,14,47,187,204,205,46,187,248,140,46,187,18,76,46,187,26,11,46,187,17,202,45,187,245,136,45,187,201,71,45,187,138,6,45,187,58,197,44,187,216,131,44,187,101,66,44,187,225,0,44,187,74,191,43,187,163,125,43,187,233,59,43,187,31,250,42,187,67,184,42,187,85,118,42,187,87,52,42,187,71,242,41,187,37,176,41,187,243,109,41,187,175,43,41,187,90,233,40,187,244,166,40,187,125,100,40,187,244,33,40,187,91,223,39,187,176,156,39,187,245,89,39,187,40,23,39,187,75,212,38,187,92,145,38,187,93,78,38,187,77,11,38,
187,44,200,37,187,250,132,37,187,183,65,37,187,100,254,36,187,255,186,36,187,138,119,36,187,5,52,36,187,111,240,35,187,200,172,35,187,16,105,35,187,72,37,35,187,112,225,34,187,135,157,34,187,141,89,34,187,131,21,34,187,105,209,33,187,62,141,33,187,3,73,33,187,183,4,33,187,91,192,32,187,239,123,32,187,115,55,32,187,230,242,31,187,74,174,31,187,157,105,31,187,224,36,31,187,19,224,30,187,53,155,30,187,72,86,30,187,75,17,30,187,62,204,29,187,33,135,29,187,243,65,29,187,182,252,28,187,106,183,28,187,13,
114,28,187,160,44,28,187,36,231,27,187,152,161,27,187,253,91,27,187,81,22,27,187,150,208,26,187,203,138,26,187,241,68,26,187,7,255,25,187,14,185,25,187,5,115,25,187,237,44,25,187,197,230,24,187,142,160,24,187,71,90,24,187,241,19,24,187,140,205,23,187,23,135,23,187,148,64,23,187,0,250,22,187,94,179,22,187,173,108,22,187,236,37,22,187,28,223,21,187,62,152,21,187,80,81,21,187,83,10,21,187,71,195,20,187,44,124,20,187,2,53,20,187,202,237,19,187,130,166,19,187,44,95,19,187,198,23,19,187,82,208,18,187,208,
136,18,187,62,65,18,187,158,249,17,187,239,177,17,187,50,106,17,187,102,34,17,187,139,218,16,187,162,146,16,187,170,74,16,187,164,2,16,187,144,186,15,187,109,114,15,187,59,42,15,187,251,225,14,187,173,153,14,187,81,81,14,187,230,8,14,187,109,192,13,187,230,119,13,187,81,47,13,187,174,230,12,187,252,157,12,187,61,85,12,187,111,12,12,187,148,195,11,187,170,122,11,187,178,49,11,187,173,232,10,187,154,159,10,187,120,86,10,187,73,13,10,187,12,196,9,187,194,122,9,187,105,49,9,187,3,232,8,187,144,158,8,
187,14,85,8,187,127,11,8,187,227,193,7,187,57,120,7,187,129,46,7,187,188,228,6,187,233,154,6,187,9,81,6,187,28,7,6,187,33,189,5,187,25,115,5,187,4,41,5,187,225,222,4,187,177,148,4,187,116,74,4,187,42,0,4,187,210,181,3,187,110,107,3,187,252,32,3,187,126,214,2,187,242,139,2,187,89,65,2,187,180,246,1,187,1,172,1,187,66,97,1,187,118,22,1,187,156,203,0,187,183,128,0,187,196,53,0,187,137,213,255,186,113,63,255,186,64,169,254,186,245,18,254,186,145,124,253,186,20,230,252,186,126,79,252,186,207,184,251,186,
7,34,251,186,38,139,250,186,44,244,249,186,25,93,249,186,238,197,248,186,170,46,248,186,78,151,247,186,217,255,246,186,76,104,246,186,166,208,245,186,232,56,245,186,18,161,244,186,35,9,244,186,29,113,243,186,254,216,242,186,199,64,242,186,121,168,241,186,18,16,241,186,148,119,240,186,254,222,239,186,81,70,239,186,140,173,238,186,175,20,238,186,187,123,237,186,175,226,236,186,140,73,236,186,82,176,235,186,1,23,235,186,152,125,234,186,24,228,233,186,130,74,233,186,212,176,232,186,16,23,232,186,52,125,
231,186,66,227,230,186,58,73,230,186,26,175,229,186,228,20,229,186,152,122,228,186,53,224,227,186,188,69,227,186,44,171,226,186,135,16,226,186,203,117,225,186,249,218,224,186,17,64,224,186,19,165,223,186,255,9,223,186,213,110,222,186,149,211,221,186,64,56,221,186,213,156,220,186,85,1,220,186,191,101,219,186,19,202,218,186,82,46,218,186,124,146,217,186,145,246,216,186,144,90,216,186,122,190,215,186,80,34,215,186,16,134,214,186,187,233,213,186,82,77,213,186,212,176,212,186,65,20,212,186,153,119,211,
186,221,218,210,186,12,62,210,186,39,161,209,186,45,4,209,186,31,103,208,186,253,201,207,186,198,44,207,186,124,143,206,186,29,242,205,186,171,84,205,186,36,183,204,186,138,25,204,186,219,123,203,186,26,222,202,186,68,64,202,186,91,162,201,186,94,4,201,186,78,102,200,186,42,200,199,186,244,41,199,186,169,139,198,186,76,237,197,186,220,78,197,186,88,176,196,186,194,17,196,186,24,115,195,186,92,212,194,186,141,53,194,186,171,150,193,186,183,247,192,186,176,88,192,186,150,185,191,186,106,26,191,186,
43,123,190,186,219,219,189,186,120,60,189,186,2,157,188,186,123,253,187,186,226,93,187,186,54,190,186,186,121,30,186,186,170,126,185,186,201,222,184,186,214,62,184,186,210,158,183,186,188,254,182,186,149,94,182,186,92,190,181,186,18,30,181,186,182,125,180,186,73,221,179,186,203,60,179,186,60,156,178,186,156,251,177,186,235,90,177,186,41,186,176,186,86,25,176,186,114,120,175,186,126,215,174,186,121,54,174,186,100,149,173,186,61,244,172,186,7,83,172,186,192,177,171,186,105,16,171,186,2,111,170,186,
138,205,169,186,2,44,169,186,107,138,168,186,195,232,167,186,12,71,167,186,68,165,166,186,109,3,166,186,134,97,165,186,144,191,164,186,138,29,164,186,116,123,163,186,80,217,162,186,27,55,162,186,216,148,161,186,133,242,160,186,35,80,160,186,178,173,159,186,51,11,159,186,164,104,158,186,6,198,157,186,89,35,157,186,158,128,156,186,212,221,155,186,252,58,155,186,21,152,154,186,31,245,153,186,27,82,153,186,9,175,152,186,233,11,152,186,186,104,151,186,125,197,150,186,50,34,150,186,217,126,149,186,115,
219,148,186,254,55,148,186,124,148,147,186,236,240,146,186,78,77,146,186,163,169,145,186,234,5,145,186,36,98,144,186,80,190,143,186,112,26,143,186,130,118,142,186,134,210,141,186,126,46,141,186,105,138,140,186,71,230,139,186,23,66,139,186,219,157,138,186,147,249,137,186,61,85,137,186,219,176,136,186,109,12,136,186,242,103,135,186,107,195,134,186,215,30,134,186,55,122,133,186,139,213,132,186,211,48,132,186,14,140,131,186,62,231,130,186,98,66,130,186,122,157,129,186,134,248,128,186,134,83,128,186,246,
92,127,186,201,18,126,186,133,200,124,186,41,126,123,186,183,51,122,186,47,233,120,186,143,158,119,186,218,83,118,186,15,9,117,186,45,190,115,186,53,115,114,186,40,40,113,186,5,221,111,186,205,145,110,186,127,70,109,186,29,251,107,186,165,175,106,186,24,100,105,186,118,24,104,186,192,204,102,186,245,128,101,186,22,53,100,186,35,233,98,186,28,157,97,186,0,81,96,186,209,4,95,186,142,184,93,186,56,108,92,186,206,31,91,186,81,211,89,186,193,134,88,186,30,58,87,186,104,237,85,186,160,160,84,186,197,83,
83,186,215,6,82,186,215,185,80,186,197,108,79,186,161,31,78,186,107,210,76,186,36,133,75,186,203,55,74,186,96,234,72,186,228,156,71,186,87,79,70,186,185,1,69,186,11,180,67,186,75,102,66,186,123,24,65,186,154,202,63,186,169,124,62,186,168,46,61,186,150,224,59,186,117,146,58,186,68,68,57,186,4,246,55,186,180,167,54,186,84,89,53,186,230,10,52,186,104,188,50,186,220,109,49,186,64,31,48,186,150,208,46,186,222,129,45,186,23,51,44,186,66,228,42,186,95,149,41,186,110,70,40,186,111,247,38,186,98,168,37,186,
72,89,36,186,32,10,35,186,236,186,33,186,170,107,32,186,91,28,31,186,255,204,29,186,151,125,28,186,34,46,27,186,161,222,25,186,19,143,24,186,122,63,23,186,212,239,21,186,34,160,20,186,101,80,19,186,156,0,18,186,200,176,16,186,233,96,15,186,254,16,14,186,9,193,12,186,8,113,11,186,253,32,10,186,231,208,8,186,199,128,7,186,156,48,6,186,104,224,4,186,41,144,3,186,224,63,2,186,142,239,0,186,100,62,255,185,153,157,252,185,188,252,249,185,204,91,247,185,202,186,244,185,182,25,242,185,145,120,239,185,91,
215,236,185,19,54,234,185,187,148,231,185,83,243,228,185,218,81,226,185,82,176,223,185,186,14,221,185,18,109,218,185,92,203,215,185,151,41,213,185,196,135,210,185,226,229,207,185,243,67,205,185,246,161,202,185,236,255,199,185,212,93,197,185,176,187,194,185,128,25,192,185,67,119,189,185,251,212,186,185,166,50,184,185,71,144,181,185,220,237,178,185,103,75,176,185,231,168,173,185,93,6,171,185,201,99,168,185,43,193,165,185,132,30,163,185,212,123,160,185,27,217,157,185,90,54,155,185,144,147,152,185,190,
240,149,185,229,77,147,185,4,171,144,185,28,8,142,185,45,101,139,185,56,194,136,185,60,31,134,185,59,124,131,185,52,217,128,185,78,108,124,185,42,38,119,185,252,223,113,185,198,153,108,185,134,83,103,185,63,13,98,185,240,198,92,185,154,128,87,185,62,58,82,185,220,243,76,185,116,173,71,185,8,103,66,185,152,32,61,185,36,218,55,185,174,147,50,185,52,77,45,185,185,6,40,185,61,192,34,185,192,121,29,185,66,51,24,185,197,236,18,185,73,166,13,185,207,95,8,185,86,25,3,185,192,165,251,184,219,24,241,184,253,
139,230,184,39,255,219,184,91,114,209,184,154,229,198,184,229,88,188,184,61,204,177,184,163,63,167,184,25,179,156,184,159,38,146,184,54,154,135,184,193,27,122,184,61,3,101,184,227,234,79,184,181,210,58,184,181,186,37,184,230,162,16,184,148,22,247,183,197,231,204,183,101,185,162,183,241,22,113,183,7,188,28,183,42,196,144,182,195,109,63,53,134,157,192,54,151,165,52,55,167,125,132,55,241,167,174,55,163,209,216,55,93,125,1,56,153,145,22,56,130,165,43,56,23,185,64,56,85,204,85,56,58,223,106,56,196,241,
127,56,249,129,138,56,223,10,149,56,149,147,159,56,24,28,170,56,105,164,180,56,133,44,191,56,107,180,201,56,27,60,212,56,148,195,222,56,211,74,233,56,217,209,243,56,164,88,254,56,153,111,4,57,194,178,9,57,204,245,14,57,181,56,20,57,127,123,25,57,40,190,30,57,175,0,36,57,20,67,41,57,87,133,46,57,118,199,51,57,114,9,57,57,74,75,62,57,253,140,67,57,139,206,72,57,243,15,78,57,52,81,83,57,78,146,88,57,65,211,93,57,12,20,99,57,174,84,104,57,39,149,109,57,118,213,114,57,155,21,120,57,149,85,125,57,178,74,
129,57,131,234,131,57,62,138,134,57,226,41,137,57,111,201,139,57,230,104,142,57,69,8,145,57,140,167,147,57,188,70,150,57,211,229,152,57,209,132,155,57,183,35,158,57,132,194,160,57,55,97,163,57,209,255,165,57,81,158,168,57,183,60,171,57,2,219,173,57,51,121,176,57,73,23,179,57,67,181,181,57,34,83,184,57,228,240,186,57,139,142,189,57,22,44,192,57,131,201,194,57,212,102,197,57,8,4,200,57,30,161,202,57,22,62,205,57,240,218,207,57,172,119,210,57,74,20,213,57,200,176,215,57,39,77,218,57,103,233,220,57,135,
133,223,57,135,33,226,57,103,189,228,57,39,89,231,57,197,244,233,57,66,144,236,57,159,43,239,57,217,198,241,57,241,97,244,57,232,252,246,57,187,151,249,57,109,50,252,57,251,204,254,57,179,179,0,58,214,0,2,58,232,77,3,58,232,154,4,58,213,231,5,58,176,52,7,58,121,129,8,58,47,206,9,58,210,26,11,58,98,103,12,58,223,179,13,58,74,0,15,58,160,76,16,58,228,152,17,58,20,229,18,58,48,49,20,58,56,125,21,58,44,201,22,58,13,21,24,58,216,96,25,58,144,172,26,58,51,248,27,58,193,67,29,58,59,143,30,58,159,218,31,
58,239,37,33,58,41,113,34,58,78,188,35,58,93,7,37,58,87,82,38,58,59,157,39,58,9,232,40,58,193,50,42,58,99,125,43,58,239,199,44,58,100,18,46,58,195,92,47,58,10,167,48,58,59,241,49,58,85,59,51,58,88,133,52,58,68,207,53,58,24,25,55,58,213,98,56,58,122,172,57,58,7,246,58,58,124,63,60,58,217,136,61,58,30,210,62,58,75,27,64,58,95,100,65,58,91,173,66,58,61,246,67,58,7,63,69,58,184,135,70,58,80,208,71,58,206,24,73,58,51,97,74,58,126,169,75,58,176,241,76,58,200,57,78,58,198,129,79,58,169,201,80,58,115,17,
82,58,34,89,83,58,182,160,84,58,48,232,85,58,143,47,87,58,212,118,88,58,253,189,89,58,11,5,91,58,253,75,92,58,213,146,93,58,144,217,94,58,48,32,96,58,180,102,97,58,28,173,98,58,104,243,99,58,151,57,101,58,170,127,102,58,161,197,103,58,123,11,105,58,56,81,106,58,216,150,107,58,92,220,108,58,194,33,110,58,10,103,111,58,53,172,112,58,67,241,113,58,51,54,115,58,5,123,116,58,184,191,117,58,78,4,119,58,198,72,120,58,31,141,121,58,89,209,122,58,117,21,124,58,114,89,125,58,80,157,126,58,15,225,127,58,88,
146,128,58,24,52,129,58,200,213,129,58,105,119,130,58,250,24,131,58,123,186,131,58,236,91,132,58,76,253,132,58,157,158,133,58,222,63,134,58,14,225,134,58,46,130,135,58,61,35,136,58,60,196,136,58,43,101,137,58,8,6,138,58,214,166,138,58,146,71,139,58,62,232,139,58,217,136,140,58,98,41,141,58,219,201,141,58,67,106,142,58,154,10,143,58,223,170,143,58,20,75,144,58,55,235,144,58,72,139,145,58,72,43,146,58,55,203,146,58,20,107,147,58,223,10,148,58,153,170,148,58,64,74,149,58,214,233,149,58,90,137,150,58,
204,40,151,58,44,200,151,58,122,103,152,58,182,6,153,58,223,165,153,58,247,68,154,58,251,227,154,58,238,130,155,58,206,33,156,58,155,192,156,58,86,95,157,58,254,253,157,58,147,156,158,58,21,59,159,58,133,217,159,58,225,119,160,58,43,22,161,58,97,180,161,58,132,82,162,58,148,240,162,58,145,142,163,58,122,44,164,58,80,202,164,58,19,104,165,58,194,5,166,58,93,163,166,58,229,64,167,58,89,222,167,58,185,123,168,58,5,25,169,58,61,182,169,58,98,83,170,58,114,240,170,58,110,141,171,58,86,42,172,58,42,199,
172,58,233,99,173,58,148,0,174,58,43,157,174,58,173,57,175,58,27,214,175,58,115,114,176,58,184,14,177,58,231,170,177,58,2,71,178,58,7,227,178,58,248,126,179,58,212,26,180,58,154,182,180,58,76,82,181,58,232,237,181,58,111,137,182,58,225,36,183,58,61,192,183,58,132,91,184,58,181,246,184,58,209,145,185,58,215,44,186,58,199,199,186,58,161,98,187,58,102,253,187,58,21,152,188,58,174,50,189,58,48,205,189,58,157,103,190,58,243,1,191,58,52,156,191,58,94,54,192,58,113,208,192,58,110,106,193,58,85,4,194,58,
37,158,194,58,223,55,195,58,130,209,195,58,14,107,196,58,131,4,197,58,226,157,197,58,41,55,198,58,90,208,198,58,116,105,199,58,118,2,200,58,97,155,200,58,54,52,201,58,242,204,201,58,152,101,202,58,38,254,202,58,156,150,203,58,251,46,204,58,67,199,204,58,114,95,205,58,138,247,205,58,139,143,206,58,115,39,207,58,67,191,207,58,252,86,208,58,156,238,208,58,37,134,209,58,149,29,210,58,237,180,210,58,44,76,211,58,84,227,211,58,98,122,212,58,89,17,213,58,55,168,213,58,252,62,214,58,169,213,214,58,61,108,
215,58,184,2,216,58,26,153,216,58,99,47,217,58,148,197,217,58,171,91,218,58,170,241,218,58,143,135,219,58,91,29,220,58,13,179,220,58,167,72,221,58,39,222,221,58,141,115,222,58,218,8,223,58,14,158,223,58,40,51,224,58,40,200,224,58,14,93,225,58,219,241,225,58,141,134,226,58,38,27,227,58,165,175,227,58,9,68,228,58,84,216,228,58,132,108,229,58,154,0,230,58,150,148,230,58,120,40,231,58,63,188,231,58,235,79,232,58,125,227,232,58,245,118,233,58,82,10,234,58,148,157,234,58,187,48,235,58,199,195,235,58,185,
86,236,58,143,233,236,58,75,124,237,58,235,14,238,58,113,161,238,58,219,51,239,58,42,198,239,58,93,88,240,58,117,234,240,58,114,124,241,58,83,14,242,58,25,160,242,58,195,49,243,58,81,195,243,58,196,84,244,58,27,230,244,58,86,119,245,58,117,8,246,58,120,153,246,58,95,42,247,58,42,187,247,58,217,75,248,58,108,220,248,58,226,108,249,58,60,253,249,58,122,141,250,58,155,29,251,58,160,173,251,58,136,61,252,58,84,205,252,58,3,93,253,58,149,236,253,58,10,124,254,58,99,11,255,58,158,154,255,58,222,20,0,59,
95,92,0,59,210,163,0,59,53,235,0,59,138,50,1,59,209,121,1,59,9,193,1,59,50,8,2,59,76,79,2,59,88,150,2,59,85,221,2,59,67,36,3,59,34,107,3,59,242,177,3,59,180,248,3,59,103,63,4,59,10,134,4,59,159,204,4,59,37,19,5,59,155,89,5,59,3,160,5,59,91,230,5,59,165,44,6,59,223,114,6,59,10,185,6,59,38,255,6,59,51,69,7,59,48,139,7,59,30,209,7,59,253,22,8,59,204,92,8,59,140,162,8,59,61,232,8,59,222,45,9,59,112,115,9,59,242,184,9,59,101,254,9,59,200,67,10,59,28,137,10,59,96,206,10,59,148,19,11,59,185,88,11,59,206,
157,11,59,212,226,11,59,201,39,12,59,175,108,12,59,133,177,12,59,76,246,12,59,2,59,13,59,169,127,13,59,63,196,13,59,198,8,14,59,61,77,14,59,164,145,14,59,250,213,14,59,65,26,15,59,120,94,15,59,158,162,15,59,181,230,15,59,187,42,16,59,177,110,16,59,151,178,16,59,108,246,16,59,50,58,17,59,231,125,17,59,140,193,17,59,32,5,18,59,164,72,18,59,24,140,18,59,123,207,18,59,206,18,19,59,16,86,19,59,66,153,19,59,99,220,19,59,116,31,20,59,116,98,20,59,99,165,20,59,66,232,20,59,16,43,21,59,206,109,21,59,122,176,
21,59,22,243,21,59,162,53,22,59,28,120,22,59,134,186,22,59,222,252,22,59,38,63,23,59,93,129,23,59,131,195,23,59,152,5,24,59,156,71,24,59,143,137,24,59,113,203,24,59,66,13,25,59,1,79,25,59,176,144,25,59,78,210,25,59,218,19,26,59,85,85,26,59,191,150,26,59,23,216,26,59,95,25,27,59,149,90,27,59,185,155,27,59,205,220,27,59,207,29,28,59,191,94,28,59,158,159,28,59,108,224,28,59,40,33,29,59,210,97,29,59,107,162,29,59,243,226,29,59,105,35,30,59,205,99,30,59,32,164,30,59,97,228,30,59,144,36,31,59,173,100,31,
59,185,164,31,59,179,228,31,59,155,36,32,59,113,100,32,59,54,164,32,59,232,227,32,59,137,35,33,59,24,99,33,59,148,162,33,59,255,225,33,59,88,33,34,59,159,96,34,59,211,159,34,59,246,222,34,59,6,30,35,59,5,93,35,59,241,155,35,59,203,218,35,59,147,25,36,59,72,88,36,59,236,150,36,59,125,213,36,59,251,19,37,59,104,82,37,59,193,144,37,59,9,207,37,59,62,13,38,59,97,75,38,59,113,137,38,59,111,199,38,59,90,5,39,59,51,67,39,59,249,128,39,59,173,190,39,59,78,252,39,59,220,57,40,59,88,119,40,59,192,180,40,59,
23,242,40,59,90,47,41,59,139,108,41,59,169,169,41,59,180,230,41,59,172,35,42,59,146,96,42,59,100,157,42,59,36,218,42,59,209,22,43,59,107,83,43,59,241,143,43,59,101,204,43,59,198,8,44,59,20,69,44,59,78,129,44,59,118,189,44,59,138,249,44,59,140,53,45,59,122,113,45,59,85,173,45,59,28,233,45,59,209,36,46,59,114,96,46,59,0,156,46,59,122,215,46,59,225,18,47,59,53,78,47,59,118,137,47,59,163,196,47,59,188,255,47,59,194,58,48,59,181,117,48,59,148,176,48,59,96,235,48,59,24,38,49,59,188,96,49,59,77,155,49,59,
202,213,49,59,52,16,50,59,138,74,50,59,204,132,50,59,251,190,50,59,21,249,50,59,28,51,51,59,16,109,51,59,239,166,51,59,187,224,51,59,114,26,52,59,22,84,52,59,166,141,52,59,34,199,52,59,138,0,53,59,222,57,53,59,30,115,53,59,74,172,53,59,99,229,53,59,102,30,54,59,86,87,54,59,50,144,54,59,250,200,54,59,173,1,55,59,77,58,55,59,216,114,55,59,79,171,55,59,177,227,55,59,0,28,56,59,58,84,56,59,96,140,56,59,113,196,56,59,110,252,56,59,87,52,57,59,43,108,57,59,235,163,57,59,151,219,57,59,45,19,58,59,176,74,
58,59,30,130,58,59,119,185,58,59,188,240,58,59,237,39,59,59,8,95,59,59,15,150,59,59,2,205,59,59,224,3,60,59,169,58,60,59,93,113,60,59,253,167,60,59,136,222,60,59,254,20,61,59,95,75,61,59,172,129,61,59,227,183,61,59,6,238,61,59,20,36,62,59,13,90,62,59,241,143,62,59,192,197,62,59,123,251,62,59,32,49,63,59,176,102,63,59,43,156,63,59,145,209,63,59,226,6,64,59,30,60,64,59,69,113,64,59,87,166,64,59,83,219,64,59,59,16,65,59,13,69,65,59,202,121,65,59,113,174,65,59,4,227,65,59,129,23,66,59,233,75,66,59,59,
128,66,59,120,180,66,59,160,232,66,59,179,28,67,59,176,80,67,59,151,132,67,59,105,184,67,59,38,236,67,59,205,31,68,59,95,83,68,59,219,134,68,59,65,186,68,59,146,237,68,59,206,32,69,59,244,83,69,59,4,135,69,59,254,185,69,59,227,236,69,59,178,31,70,59,108,82,70,59,15,133,70,59,157,183,70,59,21,234,70,59,120,28,71,59,196,78,71,59,251,128,71,59,28,179,71,59,39,229,71,59,28,23,72,59,251,72,72,59,196,122,72,59,120,172,72,59,21,222,72,59,156,15,73,59,14,65,73,59,105,114,73,59,174,163,73,59,222,212,73,59,
247,5,74,59,250,54,74,59,230,103,74,59,189,152,74,59,126,201,74,59,40,250,74,59,188,42,75,59,58,91,75,59,162,139,75,59,243,187,75,59,47,236,75,59,83,28,76,59,98,76,76,59,90,124,76,59,60,172,76,59,7,220,76,59,189,11,77,59,91,59,77,59,227,106,77,59,85,154,77,59,177,201,77,59,245,248,77,59,36,40,78,59,59,87,78,59,61,134,78,59,39,181,78,59,252,227,78,59,185,18,79,59,96,65,79,59,240,111,79,59,106,158,79,59,205,204,79,59,25,251,79,59,79,41,80,59,109,87,80,59,117,133,80,59,103,179,80,59,65,225,80,59,5,15,
81,59,178,60,81,59,72,106,81,59,199,151,81,59,48,197,81,59,129,242,81,59,188,31,82,59,223,76,82,59,236,121,82,59,226,166,82,59,193,211,82,59,136,0,83,59,57,45,83,59,211,89,83,59,86,134,83,59,193,178,83,59,22,223,83,59,83,11,84,59,122,55,84,59,137,99,84,59,129,143,84,59,98,187,84,59,44,231,84,59,222,18,85,59,121,62,85,59,254,105,85,59,106,149,85,59,192,192,85,59,254,235,85,59,37,23,86,59,53,66,86,59,45,109,86,59,14,152,86,59,216,194,86,59,138,237,86,59,37,24,87,59,168,66,87,59,20,109,87,59,104,151,
87,59,165,193,87,59,203,235,87,59,217,21,88,59,208,63,88,59,175,105,88,59,118,147,88,59,38,189,88,59,190,230,88,59,63,16,89,59,168,57,89,59,249,98,89,59,51,140,89,59,85,181,89,59,96,222,89,59,82,7,90,59,45,48,90,59,241,88,90,59,156,129,90,59,48,170,90,59,172,210,90,59,16,251,90,59,93,35,91,59,145,75,91,59,174,115,91,59,179,155,91,59,160,195,91,59,117,235,91,59,51,19,92,59,216,58,92,59,101,98,92,59,219,137,92,59,56,177,92,59,126,216,92,59,172,255,92,59,193,38,93,59,191,77,93,59,164,116,93,59,114,155,
93,59,39,194,93,59,196,232,93,59,74,15,94,59,183,53,94,59,12,92,94,59,72,130,94,59,109,168,94,59,122,206,94,59,110,244,94,59,74,26,95,59,14,64,95,59,186,101,95,59,77,139,95,59,200,176,95,59,43,214,95,59,118,251,95,59,168,32,96,59,194,69,96,59,196,106,96,59,173,143,96,59,126,180,96,59,55,217,96,59,215,253,96,59,95,34,97,59,206,70,97,59,37,107,97,59,100,143,97,59,138,179,97,59,151,215,97,59,141,251,97,59,105,31,98,59,45,67,98,59,217,102,98,59,108,138,98,59,231,173,98,59,73,209,98,59,146,244,98,59,195,
23,99,59,219,58,99,59,218,93,99,59,193,128,99,59,144,163,99,59,69,198,99,59,226,232,99,59,102,11,100,59,210,45,100,59,37,80,100,59,95,114,100,59,128,148,100,59,137,182,100,59,121,216,100,59,80,250,100,59,14,28,101,59,180,61,101,59,64,95,101,59,180,128,101,59,15,162,101,59,82,195,101,59,123,228,101,59,139,5,102,59,131,38,102,59,97,71,102,59,39,104,102,59,212,136,102,59,104,169,102,59,227,201,102,59,69,234,102,59,142,10,103,59,190,42,103,59,212,74,103,59,210,106,103,59,183,138,103,59,131,170,103,59,
54,202,103,59,208,233,103,59,80,9,104,59,184,40,104,59,7,72,104,59,60,103,104,59,88,134,104,59,91,165,104,59,69,196,104,59,22,227,104,59,206,1,105,59,108,32,105,59,242,62,105,59,94,93,105,59,177,123,105,59,234,153,105,59,11,184,105,59,18,214,105,59,0,244,105,59,212,17,106,59,144,47,106,59,50,77,106,59,187,106,106,59,42,136,106,59,128,165,106,59,189,194,106,59,224,223,106,59,234,252,106,59,219,25,107,59,178,54,107,59,112,83,107,59,21,112,107,59,160,140,107,59,18,169,107,59,106,197,107,59,169,225,107,
59,206,253,107,59,218,25,108,59,204,53,108,59,165,81,108,59,101,109,108,59,11,137,108,59,151,164,108,59,10,192,108,59,99,219,108,59,163,246,108,59,201,17,109,59,214,44,109,59,201,71,109,59,163,98,109,59,98,125,109,59,9,152,109,59,149,178,109,59,8,205,109,59,98,231,109,59,162,1,110,59,200,27,110,59,212,53,110,59,199,79,110,59,160,105,110,59,95,131,110,59,5,157,110,59,145,182,110,59,3,208,110,59,92,233,110,59,154,2,111,59,191,27,111,59,203,52,111,59,188,77,111,59,148,102,111,59,82,127,111,59,246,151,
111,59,128,176,111,59,240,200,111,59,71,225,111,59,132,249,111,59,167,17,112,59,176,41,112,59,159,65,112,59,117,89,112,59,48,113,112,59,210,136,112,59,90,160,112,59,199,183,112,59,27,207,112,59,85,230,112,59,117,253,112,59,124,20,113,59,104,43,113,59,58,66,113,59,242,88,113,59,145,111,113,59,21,134,113,59,127,156,113,59,208,178,113,59,6,201,113,59,34,223,113,59,37,245,113,59,13,11,114,59,219,32,114,59,143,54,114,59,42,76,114,59,170,97,114,59,16,119,114,59,92,140,114,59,142,161,114,59,165,182,114,
59,163,203,114,59,135,224,114,59,80,245,114,59,0,10,115,59,149,30,115,59,16,51,115,59,113,71,115,59,184,91,115,59,229,111,115,59,247,131,115,59,239,151,115,59,206,171,115,59,146,191,115,59,59,211,115,59,203,230,115,59,65,250,115,59,156,13,116,59,221,32,116,59,3,52,116,59,16,71,116,59,2,90,116,59,218,108,116,59,152,127,116,59,60,146,116,59,197,164,116,59,52,183,116,59,137,201,116,59,195,219,116,59,227,237,116,59,233,255,116,59,213,17,117,59,166,35,117,59,93,53,117,59,250,70,117,59,124,88,117,59,228,
105,117,59,50,123,117,59,101,140,117,59,126,157,117,59,125,174,117,59,97,191,117,59,43,208,117,59,218,224,117,59,111,241,117,59,234,1,118,59,74,18,118,59,144,34,118,59,188,50,118,59,205,66,118,59,196,82,118,59,160,98,118,59,98,114,118,59,10,130,118,59,151,145,118,59,9,161,118,59,97,176,118,59,159,191,118,59,194,206,118,59,203,221,118,59,185,236,118,59,141,251,118,59,71,10,119,59,230,24,119,59,106,39,119,59,212,53,119,59,36,68,119,59,89,82,119,59,115,96,119,59,115,110,119,59,88,124,119,59,35,138,119,
59,212,151,119,59,106,165,119,59,229,178,119,59,70,192,119,59,140,205,119,59,184,218,119,59,201,231,119,59,192,244,119,59,156,1,120,59,93,14,120,59,4,27,120,59,145,39,120,59,3,52,120,59,90,64,120,59,151,76,120,59,185,88,120,59,192,100,120,59,173,112,120,59,128,124,120,59,55,136,120,59,213,147,120,59,87,159,120,59,191,170,120,59,13,182,120,59,63,193,120,59,87,204,120,59,85,215,120,59,56,226,120,59,0,237,120,59,174,247,120,59,65,2,121,59,185,12,121,59,23,23,121,59,90,33,121,59,130,43,121,59,144,53,
121,59,131,63,121,59,91,73,121,59,25,83,121,59,188,92,121,59,69,102,121,59,179,111,121,59,6,121,121,59,62,130,121,59,92,139,121,59,95,148,121,59,72,157,121,59,22,166,121,59,201,174,121,59,97,183,121,59,223,191,121,59,66,200,121,59,138,208,121,59,184,216,121,59,203,224,121,59,195,232,121,59,161,240,121,59,100,248,121,59,12,0,122,59,153,7,122,59,12,15,122,59,100,22,122,59,161,29,122,59,196,36,122,59,204,43,122,59,185,50,122,59,139,57,122,59,67,64,122,59,224,70,122,59,99,77,122,59,202,83,122,59,23,90,
122,59,73,96,122,59,97,102,122,59,93,108,122,59,63,114,122,59,6,120,122,59,179,125,122,59,69,131,122,59,188,136,122,59,24,142,122,59,89,147,122,59,128,152,122,59,140,157,122,59,126,162,122,59,84,167,122,59,16,172,122,59,177,176,122,59,55,181,122,59,163,185,122,59,244,189,122,59,42,194,122,59,69,198,122,59,70,202,122,59,44,206,122,59,247,209,122,59,168,213,122,59,61,217,122,59,184,220,122,59,24,224,122,59,94,227,122,59,136,230,122,59,152,233,122,59,142,236,122,59,104,239,122,59,40,242,122,59,205,244,
122,59,87,247,122,59,198,249,122,59,27,252,122,59,85,254,122,59,116,0,123,59,121,2,123,59,98,4,123,59,49,6,123,59,230,7,123,59,127,9,123,59,254,10,123,59,98,12,123,59,171,13,123,59,218,14,123,59,237,15,123,59,231,16,123,59,197,17,123,59,136,18,123,59,49,19,123,59,191,19,123,59,51,20,123,59,140,20,123,59,201,20,123,59,237,20,123,59,245,20,123,59,227,20,123,59,182,20,123,59,110,20,123,59,12,20,123,59,143,19,123,59,247,18,123,59,68,18,123,59,119,17,123,59,143,16,123,59,140,15,123,59,111,14,123,59,54,
13,123,59,228,11,123,59,118,10,123,59,238,8,123,59,75,7,123,59,141,5,123,59,181,3,123,59,194,1,123,59,180,255,122,59,139,253,122,59,72,251,122,59,234,248,122,59,114,246,122,59,223,243,122,59,49,241,122,59,104,238,122,59,133,235,122,59,135,232,122,59,110,229,122,59,59,226,122,59,237,222,122,59,133,219,122,59,1,216,122,59,99,212,122,59,171,208,122,59,216,204,122,59,234,200,122,59,225,196,122,59,190,192,122,59,128,188,122,59,40,184,122,59,181,179,122,59,39,175,122,59,127,170,122,59,188,165,122,59,222,
160,122,59,230,155,122,59,211,150,122,59,166,145,122,59,94,140,122,59,251,134,122,59,126,129,122,59,230,123,122,59,52,118,122,59,103,112,122,59,127,106,122,59,125,100,122,59,96,94,122,59,41,88,122,59,215,81,122,59,106,75,122,59,227,68,122,59,66,62,122,59,133,55,122,59,175,48,122,59,190,41,122,59,178,34,122,59,139,27,122,59,74,20,122,59,239,12,122,59,121,5,122,59,233,253,121,59,62,246,121,59,120,238,121,59,152,230,121,59,158,222,121,59,137,214,121,59,89,206,121,59,15,198,121,59,171,189,121,59,44,181,
121,59,146,172,121,59,222,163,121,59,16,155,121,59,39,146,121,59,36,137,121,59,6,128,121,59,206,118,121,59,123,109,121,59,14,100,121,59,135,90,121,59,229,80,121,59,41,71,121,59,82,61,121,59,97,51,121,59,85,41,121,59,47,31,121,59,239,20,121,59,148,10,121,59,31,0,121,59,143,245,120,59,230,234,120,59,33,224,120,59,67,213,120,59,74,202,120,59,54,191,120,59,9,180,120,59,193,168,120,59,95,157,120,59,226,145,120,59,75,134,120,59,154,122,120,59,206,110,120,59,232,98,120,59,232,86,120,59,206,74,120,59,153,
62,120,59,74,50,120,59,225,37,120,59,93,25,120,59,191,12,120,59,7,0,120,59,53,243,119,59,73,230,119,59,66,217,119,59,33,204,119,59,230,190,119,59,144,177,119,59,33,164,119,59,151,150,119,59,243,136,119,59,53,123,119,59,92,109,119,59,106,95,119,59,93,81,119,59,54,67,119,59,245,52,119,59,154,38,119,59,37,24,119,59,150,9,119,59,236,250,118,59,41,236,118,59,75,221,118,59,83,206,118,59,65,191,118,59,21,176,118,59,207,160,118,59,111,145,118,59,245,129,118,59,97,114,118,59,179,98,118,59,235,82,118,59,8,
67,118,59,12,51,118,59,246,34,118,59,197,18,118,59,123,2,118,59,23,242,117,59,152,225,117,59,0,209,117,59,78,192,117,59,130,175,117,59,156,158,117,59,156,141,117,59,130,124,117,59,78,107,117,59,0,90,117,59,152,72,117,59,23,55,117,59,123,37,117,59,198,19,117,59,247,1,117,59,13,240,116,59,11,222,116,59,238,203,116,59,183,185,116,59,103,167,116,59,252,148,116,59,120,130,116,59,218,111,116,59,35,93,116,59,81,74,116,59,102,55,116,59,97,36,116,59,66,17,116,59,10,254,115,59,184,234,115,59,76,215,115,59,
198,195,115,59,39,176,115,59,109,156,115,59,155,136,115,59,174,116,115,59,168,96,115,59,136,76,115,59,79,56,115,59,252,35,115,59,143,15,115,59,9,251,114,59,105,230,114,59,175,209,114,59,220,188,114,59,240,167,114,59,233,146,114,59,201,125,114,59,144,104,114,59,61,83,114,59,209,61,114,59,75,40,114,59,171,18,114,59,242,252,113,59,32,231,113,59,52,209,113,59,46,187,113,59,15,165,113,59,215,142,113,59,133,120,113,59,26,98,113,59,149,75,113,59,247,52,113,59,64,30,113,59,111,7,113,59,133,240,112,59,129,
217,112,59,100,194,112,59,46,171,112,59,222,147,112,59,117,124,112,59,243,100,112,59,88,77,112,59,163,53,112,59,213,29,112,59,237,5,112,59,237,237,111,59,211,213,111,59,160,189,111,59,83,165,111,59,238,140,111,59,111,116,111,59,215,91,111,59,38,67,111,59,92,42,111,59,120,17,111,59,124,248,110,59,102,223,110,59,55,198,110,59,239,172,110,59,142,147,110,59,20,122,110,59,129,96,110,59,213,70,110,59,16,45,110,59,49,19,110,59,58,249,109,59,42,223,109,59,0,197,109,59,190,170,109,59,99,144,109,59,238,117,
109,59,97,91,109,59,187,64,109,59,252,37,109,59,36,11,109,59,51,240,108,59,41,213,108,59,7,186,108,59,203,158,108,59,119,131,108,59,9,104,108,59,131,76,108,59,229,48,108,59,45,21,108,59,92,249,107,59,115,221,107,59,113,193,107,59,86,165,107,59,35,137,107,59,215,108,107,59,114,80,107,59,244,51,107,59,94,23,107,59,175,250,106,59,231,221,106,59,7,193,106,59,14,164,106,59,253,134,106,59,210,105,106,59,144,76,106,59,52,47,106,59,192,17,106,59,52,244,105,59,143,214,105,59,209,184,105,59,251,154,105,59,
13,125,105,59,6,95,105,59,230,64,105,59,175,34,105,59,94,4,105,59,245,229,104,59,116,199,104,59,218,168,104,59,40,138,104,59,94,107,104,59,123,76,104,59,128,45,104,59,109,14,104,59,65,239,103,59,253,207,103,59,161,176,103,59,44,145,103,59,159,113,103,59,250,81,103,59,61,50,103,59,103,18,103,59,121,242,102,59,115,210,102,59,85,178,102,59,31,146,102,59,208,113,102,59,106,81,102,59,235,48,102,59,84,16,102,59,165,239,101,59,222,206,101,59,255,173,101,59,8,141,101,59,249,107,101,59,210,74,101,59,147,41,
101,59,59,8,101,59,204,230,100,59,69,197,100,59,166,163,100,59,239,129,100,59,33,96,100,59,58,62,100,59,59,28,100,59,37,250,99,59,247,215,99,59,176,181,99,59,83,147,99,59,221,112,99,59,79,78,99,59,170,43,99,59,237,8,99,59,24,230,98,59,44,195,98,59,39,160,98,59,11,125,98,59,216,89,98,59,141,54,98,59,42,19,98,59,175,239,97,59,29,204,97,59,115,168,97,59,178,132,97,59,217,96,97,59,233,60,97,59,225,24,97,59,193,244,96,59,138,208,96,59,60,172,96,59,214,135,96,59,88,99,96,59,195,62,96,59,23,26,96,59,83,
245,95,59,120,208,95,59,134,171,95,59,124,134,95,59,91,97,95,59,35,60,95,59,211,22,95,59,108,241,94,59,238,203,94,59,88,166,94,59,171,128,94,59,231,90,94,59,12,53,94,59,26,15,94,59,16,233,93,59,239,194,93,59,184,156,93,59,105,118,93,59,2,80,93,59,133,41,93,59,241,2,93,59,70,220,92,59,131,181,92,59,170,142,92,59,186,103,92,59,179,64,92,59,148,25,92,59,95,242,91,59,19,203,91,59,176,163,91,59,54,124,91,59,165,84,91,59,253,44,91,59,63,5,91,59,105,221,90,59,125,181,90,59,122,141,90,59,96,101,90,59,48,
61,90,59,233,20,90,59,139,236,89,59,22,196,89,59,139,155,89,59,233,114,89,59,48,74,89,59,97,33,89,59,123,248,88,59,127,207,88,59,107,166,88,59,66,125,88,59,2,84,88,59,171,42,88,59,62,1,88,59,186,215,87,59,32,174,87,59,112,132,87,59,169,90,87,59,203,48,87,59,215,6,87,59,205,220,86,59,173,178,86,59,118,136,86,59,41,94,86,59,197,51,86,59,76,9,86,59,188,222,85,59,21,180,85,59,89,137,85,59,134,94,85,59,157,51,85,59,158,8,85,59,137,221,84,59,94,178,84,59,28,135,84,59,197,91,84,59,87,48,84,59,212,4,84,59,
58,217,83,59,138,173,83,59,197,129,83,59,233,85,83,59,248,41,83,59,240,253,82,59,211,209,82,59,159,165,82,59,86,121,82,59,247,76,82,59,130,32,82,59,247,243,81,59,87,199,81,59,160,154,81,59,212,109,81,59,243,64,81,59,251,19,81,59,238,230,80,59,203,185,80,59,146,140,80,59,68,95,80,59,224,49,80,59,103,4,80,59,216,214,79,59,51,169,79,59,121,123,79,59,169,77,79,59,196,31,79,59,201,241,78,59,185,195,78,59,148,149,78,59,89,103,78,59,8,57,78,59,163,10,78,59,39,220,77,59,151,173,77,59,241,126,77,59,54,80,
77,59,102,33,77,59,128,242,76,59,133,195,76,59,117,148,76,59,80,101,76,59,21,54,76,59,198,6,76,59,97,215,75,59,231,167,75,59,88,120,75,59,180,72,75,59,251,24,75,59,45,233,74,59,74,185,74,59,82,137,74,59,69,89,74,59,35,41,74,59,236,248,73,59,160,200,73,59,63,152,73,59,201,103,73,59,63,55,73,59,160,6,73,59,236,213,72,59,35,165,72,59,69,116,72,59,83,67,72,59,76,18,72,59,48,225,71,59,0,176,71,59,186,126,71,59,97,77,71,59,242,27,71,59,111,234,70,59,216,184,70,59,44,135,70,59,107,85,70,59,150,35,70,59,
173,241,69,59,175,191,69,59,157,141,69,59,118,91,69,59,59,41,69,59,235,246,68,59,135,196,68,59,15,146,68,59,130,95,68,59,225,44,68,59,44,250,67,59,99,199,67,59,134,148,67,59,148,97,67,59,142,46,67,59,116,251,66,59,70,200,66,59,3,149,66,59,173,97,66,59,67,46,66,59,196,250,65,59,50,199,65,59,139,147,65,59,209,95,65,59,2,44,65,59,32,248,64,59,42,196,64,59,32,144,64,59,2,92,64,59,208,39,64,59,139,243,63,59,49,191,63,59,196,138,63,59,67,86,63,59,175,33,63,59,6,237,62,59,74,184,62,59,123,131,62,59,151,
78,62,59,161,25,62,59,150,228,61,59,120,175,61,59,71,122,61,59,1,69,61,59,169,15,61,59,61,218,60,59,189,164,60,59,43,111,60,59,132,57,60,59,203,3,60,59,254,205,59,59,29,152,59,59,42,98,59,59,35,44,59,59,8,246,58,59,219,191,58,59,154,137,58,59,71,83,58,59,224,28,58,59,102,230,57,59,216,175,57,59,56,121,57,59,133,66,57,59,190,11,57,59,229,212,56,59,248,157,56,59,249,102,56,59,230,47,56,59,193,248,55,59,137,193,55,59,62,138,55,59,224,82,55,59,111,27,55,59,235,227,54,59,85,172,54,59,172,116,54,59,240,
60,54,59,33,5,54,59,64,205,53,59,76,149,53,59,69,93,53,59,44,37,53,59,0,237,52,59,194,180,52,59,113,124,52,59,13,68,52,59,152,11,52,59,15,211,51,59,116,154,51,59,199,97,51,59,7,41,51,59,53,240,50,59,81,183,50,59,90,126,50,59,81,69,50,59,54,12,50,59,8,211,49,59,201,153,49,59,119,96,49,59,19,39,49,59,156,237,48,59,20,180,48,59,121,122,48,59,205,64,48,59,14,7,48,59,61,205,47,59,91,147,47,59,102,89,47,59,96,31,47,59,71,229,46,59,29,171,46,59,224,112,46,59,146,54,46,59,50,252,45,59,192,193,45,59,61,135,
45,59,168,76,45,59,1,18,45,59,72,215,44,59,125,156,44,59,161,97,44,59,180,38,44,59,180,235,43,59,164,176,43,59,129,117,43,59,77,58,43,59,8,255,42,59,177,195,42,59,73,136,42,59,207,76,42,59,68,17,42,59,167,213,41,59,249,153,41,59,58,94,41,59,106,34,41,59,136,230,40,59,149,170,40,59,145,110,40,59,123,50,40,59,85,246,39,59,29,186,39,59,212,125,39,59,122,65,39,59,15,5,39,59,147,200,38,59,6,140,38,59,104,79,38,59,185,18,38,59,250,213,37,59,41,153,37,59,71,92,37,59,85,31,37,59,81,226,36,59,61,165,36,59,
24,104,36,59,227,42,36,59,156,237,35,59,69,176,35,59,221,114,35,59,101,53,35,59,220,247,34,59,67,186,34,59,152,124,34,59,222,62,34,59,18,1,34,59,55,195,33,59,75,133,33,59,78,71,33,59,65,9,33,59,36,203,32,59,246,140,32,59,184,78,32,59,106,16,32,59,11,210,31,59,156,147,31,59],"i8",4,y.a+491520);
Q([29,85,31,59,142,22,31,59,239,215,30,59,63,153,30,59,127,90,30,59,176,27,30,59,208,220,29,59,224,157,29,59,224,94,29,59,208,31,29,59,177,224,28,59,129,161,28,59,65,98,28,59,242,34,28,59,147,227,27,59,36,164,27,59,165,100,27,59,22,37,27,59,120,229,26,59,202,165,26,59,12,102,26,59,63,38,26,59,98,230,25,59,117,166,25,59,121,102,25,59,109,38,25,59,82,230,24,59,39,166,24,59,237,101,24,59,163,37,24,59,74,229,23,59,226,164,23,59,106,100,23,59,227,35,23,59,77,227,22,59,167,162,22,59,242,97,22,59,46,33,
22,59,91,224,21,59,120,159,21,59,135,94,21,59,134,29,21,59,119,220,20,59,88,155,20,59,42,90,20,59,237,24,20,59,162,215,19,59,71,150,19,59,221,84,19,59,101,19,19,59,222,209,18,59,71,144,18,59,163,78,18,59,239,12,18,59,44,203,17,59,91,137,17,59,124,71,17,59,141,5,17,59,144,195,16,59,132,129,16,59,106,63,16,59,65,253,15,59,10,187,15,59,196,120,15,59,112,54,15,59,13,244,14,59,156,177,14,59,29,111,14,59,143,44,14,59,243,233,13,59,73,167,13,59,144,100,13,59,201,33,13,59,244,222,12,59,17,156,12,59,32,89,
12,59,32,22,12,59,19,211,11,59,247,143,11,59,205,76,11,59,150,9,11,59,80,198,10,59,252,130,10,59,155,63,10,59,43,252,9,59,174,184,9,59,35,117,9,59,138,49,9,59,228,237,8,59,47,170,8,59,109,102,8,59,157,34,8,59,192,222,7,59,213,154,7,59,220,86,7,59,214,18,7,59,194,206,6,59,161,138,6,59,114,70,6,59,54,2,6,59,236,189,5,59,149,121,5,59,49,53,5,59,191,240,4,59,64,172,4,59,180,103,4,59,26,35,4,59,116,222,3,59,192,153,3,59,254,84,3,59,48,16,3,59,85,203,2,59,108,134,2,59,119,65,2,59,116,252,1,59,101,183,1,
59,72,114,1,59,31,45,1,59,233,231,0,59,165,162,0,59,85,93,0,59,249,23,0,59,30,165,255,58,49,26,255,58,43,143,254,58,12,4,254,58,211,120,253,58,129,237,252,58,22,98,252,58,145,214,251,58,244,74,251,58,61,191,250,58,110,51,250,58,133,167,249,58,132,27,249,58,106,143,248,58,55,3,248,58,235,118,247,58,135,234,246,58,11,94,246,58,117,209,245,58,200,68,245,58,2,184,244,58,36,43,244,58,45,158,243,58,30,17,243,58,247,131,242,58,185,246,241,58,98,105,241,58,243,219,240,58,108,78,240,58,205,192,239,58,23,51,
239,58,73,165,238,58,99,23,238,58,101,137,237,58,81,251,236,58,36,109,236,58,224,222,235,58,133,80,235,58,19,194,234,58,137,51,234,58,232,164,233,58,48,22,233,58,97,135,232,58,123,248,231,58,126,105,231,58,106,218,230,58,64,75,230,58,254,187,229,58,166,44,229,58,55,157,228,58,178,13,228,58,22,126,227,58,100,238,226,58,155,94,226,58,188,206,225,58,199,62,225,58,188,174,224,58,154,30,224,58,99,142,223,58,21,254,222,58,177,109,222,58,56,221,221,58,168,76,221,58,3,188,220,58,72,43,220,58,120,154,219,
58,146,9,219,58,150,120,218,58,133,231,217,58,95,86,217,58,35,197,216,58,210,51,216,58,107,162,215,58,240,16,215,58,95,127,214,58,186,237,213,58,255,91,213,58,47,202,212,58,75,56,212,58,82,166,211,58,68,20,211,58,33,130,210,58,234,239,209,58,158,93,209,58,62,203,208,58,201,56,208,58,64,166,207,58,163,19,207,58,242,128,206,58,44,238,205,58,82,91,205,58,100,200,204,58,98,53,204,58,77,162,203,58,35,15,203,58,229,123,202,58,148,232,201,58,47,85,201,58,183,193,200,58,43,46,200,58,139,154,199,58,216,6,
199,58,18,115,198,58,56,223,197,58,75,75,197,58,75,183,196,58,56,35,196,58,18,143,195,58,217,250,194,58,141,102,194,58,46,210,193,58,188,61,193,58,55,169,192,58,160,20,192,58,246,127,191,58,58,235,190,58,107,86,190,58,138,193,189,58,150,44,189,58,144,151,188,58,120,2,188,58,77,109,187,58,17,216,186,58,194,66,186,58,98,173,185,58,239,23,185,58,107,130,184,58,213,236,183,58,45,87,183,58,115,193,182,58,168,43,182,58,204,149,181,58,221,255,180,58,222,105,180,58,205,211,179,58,171,61,179,58,119,167,178,
58,50,17,178,58,221,122,177,58,118,228,176,58,254,77,176,58,118,183,175,58,220,32,175,58,50,138,174,58,119,243,173,58,171,92,173,58,207,197,172,58,226,46,172,58,229,151,171,58,215,0,171,58,185,105,170,58,139,210,169,58,76,59,169,58,253,163,168,58,159,12,168,58,48,117,167,58,177,221,166,58,34,70,166,58,132,174,165,58,214,22,165,58,24,127,164,58,74,231,163,58,109,79,163,58,128,183,162,58,132,31,162,58,121,135,161,58,94,239,160,58,52,87,160,58,251,190,159,58,178,38,159,58,91,142,158,58,244,245,157,58,
127,93,157,58,251,196,156,58,104,44,156,58,198,147,155,58,21,251,154,58,86,98,154,58,136,201,153,58,172,48,153,58,194,151,152,58,201,254,151,58,194,101,151,58,172,204,150,58,136,51,150,58,87,154,149,58,23,1,149,58,201,103,148,58,110,206,147,58,4,53,147,58,141,155,146,58,8,2,146,58,117,104,145,58,213,206,144,58,39,53,144,58,108,155,143,58,163,1,143,58,206,103,142,58,234,205,141,58,250,51,141,58,252,153,140,58,242,255,139,58,218,101,139,58,182,203,138,58,132,49,138,58,70,151,137,58,251,252,136,58,164,
98,136,58,63,200,135,58,207,45,135,58,81,147,134,58,200,248,133,58,50,94,133,58,143,195,132,58,225,40,132,58,38,142,131,58,95,243,130,58,140,88,130,58,173,189,129,58,195,34,129,58,204,135,128,58,147,217,127,58,119,163,126,58,68,109,125,58,249,54,124,58,152,0,123,58,31,202,121,58,144,147,120,58,234,92,119,58,46,38,118,58,91,239,116,58,114,184,115,58,115,129,114,58,94,74,113,58,51,19,112,58,242,219,110,58,156,164,109,58,49,109,108,58,176,53,107,58,25,254,105,58,110,198,104,58,174,142,103,58,217,86,
102,58,239,30,101,58,241,230,99,58,222,174,98,58,183,118,97,58,124,62,96,58,45,6,95,58,202,205,93,58,83,149,92,58,201,92,91,58,43,36,90,58,122,235,88,58,181,178,87,58,222,121,86,58,243,64,85,58,246,7,84,58,230,206,82,58,195,149,81,58,142,92,80,58,70,35,79,58,237,233,77,58,129,176,76,58,3,119,75,58,116,61,74,58,211,3,73,58,32,202,71,58,92,144,70,58,135,86,69,58,160,28,68,58,169,226,66,58,161,168,65,58,136,110,64,58,94,52,63,58,36,250,61,58,217,191,60,58,126,133,59,58,20,75,58,58,153,16,57,58,14,214,
55,58,116,155,54,58,202,96,53,58,17,38,52,58,72,235,50,58,113,176,49,58,138,117,48,58,148,58,47,58,144,255,45,58,125,196,44,58,91,137,43,58,43,78,42,58,237,18,41,58,161,215,39,58,70,156,38,58,222,96,37,58,104,37,36,58,229,233,34,58,84,174,33,58,182,114,32,58,10,55,31,58,82,251,29,58,141,191,28,58,186,131,27,58,220,71,26,58,240,11,25,58,249,207,23,58,244,147,22,58,228,87,21,58,200,27,20,58,160,223,18,58,108,163,17,58,45,103,16,58,226,42,15,58,140,238,13,58,43,178,12,58,190,117,11,58,71,57,10,58,196,
252,8,58,56,192,7,58,160,131,6,58,254,70,5,58,82,10,4,58,156,205,2,58,219,144,1,58,17,84,0,58,123,46,254,57,191,180,251,57,241,58,249,57,16,193,246,57,29,71,244,57,24,205,241,57,0,83,239,57,215,216,236,57,157,94,234,57,81,228,231,57,244,105,229,57,135,239,226,57,10,117,224,57,125,250,221,57,223,127,219,57,50,5,217,57,118,138,214,57,171,15,212,57,209,148,209,57,233,25,207,57,242,158,204,57,238,35,202,57,220,168,199,57,188,45,197,57,143,178,194,57,86,55,192,57,15,188,189,57,188,64,187,57,94,197,184,
57,243,73,182,57,125,206,179,57,251,82,177,57,111,215,174,57,216,91,172,57,54,224,169,57,138,100,167,57,212,232,164,57,20,109,162,57,75,241,159,57,120,117,157,57,157,249,154,57,185,125,152,57,205,1,150,57,216,133,147,57,220,9,145,57,216,141,142,57,204,17,140,57,186,149,137,57,161,25,135,57,129,157,132,57,91,33,130,57,94,74,127,57,251,81,122,57,140,89,117,57,20,97,112,57,145,104,107,57,5,112,102,57,112,119,97,57,210,126,92,57,45,134,87,57,129,141,82,57,206,148,77,57,21,156,72,57,86,163,67,57,146,170,
62,57,201,177,57,57,253,184,52,57,44,192,47,57,89,199,42,57,131,206,37,57,172,213,32,57,210,220,27,57,248,227,22,57,30,235,17,57,68,242,12,57,106,249,7,57,146,0,3,57,119,15,252,56,206,29,242,56,43,44,232,56,143,58,222,56,250,72,212,56,111,87,202,56,237,101,192,56,118,116,182,56,11,131,172,56,172,145,162,56,93,160,152,56,28,175,142,56,235,189,132,56,151,153,117,56,125,183,97,56,138,213,77,56,191,243,57,56,32,18,38,56,173,48,18,56,212,158,252,55,176,220,212,55,242,26,173,55,160,89,133,55,123,49,59,
55,56,97,215,54,105,133,225,53,40,57,77,182,65,204,2,183,47,73,82,183,134,226,144,183,231,159,184,183,184,92,224,183,121,12,4,184,74,234,23,184,204,199,43,184,253,164,63,184,219,129,83,184,99,94,103,184,148,58,123,184,54,139,135,184,244,120,145,184,132,102,155,184,227,83,165,184,17,65,175,184,14,46,185,184,215,26,195,184,109,7,205,184,205,243,214,184,247,223,224,184,234,203,234,184,164,183,244,184,37,163,254,184,54,71,4,185,187,60,9,185,35,50,14,185,107,39,19,185,149,28,24,185,158,17,29,185,135,6,
34,185,79,251,38,185,246,239,43,185,122,228,48,185,221,216,53,185,28,205,58,185,56,193,63,185,47,181,68,185,3,169,73,185,177,156,78,185,57,144,83,185,155,131,88,185,215,118,93,185,235,105,98,185,216,92,103,185,156,79,108,185,56,66,113,185,170,52,118,185,243,38,123,185,136,12,128,185,130,133,130,185,102,254,132,185,52,119,135,185,236,239,137,185,141,104,140,185,23,225,142,185,139,89,145,185,231,209,147,185,44,74,150,185,89,194,152,185,110,58,155,185,106,178,157,185,78,42,160,185,25,162,162,185,203,
25,165,185,100,145,167,185,227,8,170,185,72,128,172,185,147,247,174,185,196,110,177,185,218,229,179,185,213,92,182,185,180,211,184,185,121,74,187,185,33,193,189,185,174,55,192,185,30,174,194,185,114,36,197,185,169,154,199,185,195,16,202,185,192,134,204,185,160,252,206,185,97,114,209,185,4,232,211,185,138,93,214,185,240,210,216,185,56,72,219,185,96,189,221,185,106,50,224,185,83,167,226,185,29,28,229,185,198,144,231,185,80,5,234,185,184,121,236,185,0,238,238,185,38,98,241,185,43,214,243,185,14,74,246,
185,208,189,248,185,111,49,251,185,235,164,253,185,35,12,0,186,190,69,1,186,72,127,2,186,192,184,3,186,38,242,4,186,122,43,6,186,188,100,7,186,236,157,8,186,9,215,9,186,20,16,11,186,12,73,12,186,241,129,13,186,196,186,14,186,131,243,15,186,47,44,17,186,200,100,18,186,78,157,19,186,192,213,20,186,30,14,22,186,104,70,23,186,158,126,24,186,193,182,25,186,207,238,26,186,201,38,28,186,174,94,29,186,126,150,30,186,58,206,31,186,226,5,33,186,116,61,34,186,241,116,35,186,88,172,36,186,171,227,37,186,232,
26,39,186,15,82,40,186,32,137,41,186,28,192,42,186,2,247,43,186,209,45,45,186,138,100,46,186,45,155,47,186,185,209,48,186,47,8,50,186,142,62,51,186,214,116,52,186,7,171,53,186,32,225,54,186,35,23,56,186,14,77,57,186,225,130,58,186,157,184,59,186,65,238,60,186,205,35,62,186,65,89,63,186,157,142,64,186,225,195,65,186,12,249,66,186,30,46,68,186,24,99,69,186,249,151,70,186,193,204,71,186,112,1,73,186,6,54,74,186,130,106,75,186,229,158,76,186,47,211,77,186,94,7,79,186,116,59,80,186,112,111,81,186,82,163,
82,186,25,215,83,186,199,10,85,186,89,62,86,186,209,113,87,186,47,165,88,186,113,216,89,186,153,11,91,186,166,62,92,186,151,113,93,186,109,164,94,186,39,215,95,186,198,9,97,186,73,60,98,186,176,110,99,186,251,160,100,186,42,211,101,186,61,5,103,186,52,55,104,186,14,105,105,186,203,154,106,186,108,204,107,186,239,253,108,186,86,47,110,186,160,96,111,186,204,145,112,186,219,194,113,186,205,243,114,186,161,36,116,186,87,85,117,186,239,133,118,186,105,182,119,186,198,230,120,186,3,23,122,186,35,71,123,
186,36,119,124,186,6,167,125,186,202,214,126,186,55,3,128,186,250,154,128,186,174,50,129,186,81,202,129,186,229,97,130,186,106,249,130,186,222,144,131,186,67,40,132,186,151,191,132,186,220,86,133,186,17,238,133,186,53,133,134,186,73,28,135,186,77,179,135,186,65,74,136,186,37,225,136,186,247,119,137,186,186,14,138,186,108,165,138,186,13,60,139,186,158,210,139,186,29,105,140,186,141,255,140,186,235,149,141,186,56,44,142,186,116,194,142,186,159,88,143,186,186,238,143,186,194,132,144,186,186,26,145,186,
161,176,145,186,118,70,146,186,57,220,146,186,235,113,147,186,140,7,148,186,27,157,148,186,152,50,149,186,4,200,149,186,94,93,150,186,166,242,150,186,220,135,151,186,0,29,152,186,18,178,152,186,18,71,153,186,0,220,153,186,219,112,154,186,165,5,155,186,92,154,155,186,0,47,156,186,146,195,156,186,18,88,157,186,127,236,157,186,217,128,158,186,33,21,159,186,86,169,159,186,120,61,160,186,135,209,160,186,132,101,161,186,109,249,161,186,67,141,162,186,6,33,163,186,182,180,163,186,83,72,164,186,220,219,164,
186,82,111,165,186,180,2,166,186,3,150,166,186,63,41,167,186,103,188,167,186,123,79,168,186,123,226,168,186,104,117,169,186,65,8,170,186,6,155,170,186,183,45,171,186,84,192,171,186,221,82,172,186,81,229,172,186,178,119,173,186,254,9,174,186,54,156,174,186,89,46,175,186,104,192,175,186,99,82,176,186,73,228,176,186,26,118,177,186,215,7,178,186,126,153,178,186,18,43,179,186,144,188,179,186,249,77,180,186,77,223,180,186,140,112,181,186,183,1,182,186,204,146,182,186,203,35,183,186,182,180,183,186,139,
69,184,186,75,214,184,186,245,102,185,186,138,247,185,186,9,136,186,186,114,24,187,186,198,168,187,186,4,57,188,186,44,201,188,186,63,89,189,186,59,233,189,186,34,121,190,186,242,8,191,186,172,152,191,186,80,40,192,186,222,183,192,186,86,71,193,186,183,214,193,186,2,102,194,186,54,245,194,186,84,132,195,186,92,19,196,186,76,162,196,186,38,49,197,186,233,191,197,186,150,78,198,186,43,221,198,186,170,107,199,186,17,250,199,186,98,136,200,186,156,22,201,186,190,164,201,186,201,50,202,186,189,192,202,
186,153,78,203,186,94,220,203,186,12,106,204,186,162,247,204,186,33,133,205,186,136,18,206,186,215,159,206,186,14,45,207,186,46,186,207,186,54,71,208,186,38,212,208,186,254,96,209,186,190,237,209,186,102,122,210,186,246,6,211,186,109,147,211,186,204,31,212,186,19,172,212,186,66,56,213,186,88,196,213,186,86,80,214,186,59,220,214,186,8,104,215,186,187,243,215,186,87,127,216,186,217,10,217,186,67,150,217,186,147,33,218,186,203,172,218,186,234,55,219,186,240,194,219,186,220,77,220,186,176,216,220,186,
106,99,221,186,11,238,221,186,147,120,222,186,1,3,223,186,86,141,223,186,145,23,224,186,179,161,224,186,187,43,225,186,169,181,225,186,126,63,226,186,57,201,226,186,218,82,227,186,97,220,227,186,206,101,228,186,34,239,228,186,91,120,229,186,122,1,230,186,127,138,230,186,105,19,231,186,58,156,231,186,240,36,232,186,139,173,232,186,13,54,233,186,115,190,233,186,191,70,234,186,241,206,234,186,8,87,235,186,4,223,235,186,229,102,236,186,171,238,236,186,87,118,237,186,231,253,237,186,93,133,238,186,184,
12,239,186,247,147,239,186,27,27,240,186,36,162,240,186,18,41,241,186,228,175,241,186,155,54,242,186,55,189,242,186,183,67,243,186,27,202,243,186,100,80,244,186,145,214,244,186,163,92,245,186,153,226,245,186,115,104,246,186,49,238,246,186,211,115,247,186,89,249,247,186,195,126,248,186,17,4,249,186,67,137,249,186,88,14,250,186,82,147,250,186,47,24,251,186,239,156,251,186,147,33,252,186,27,166,252,186,134,42,253,186,213,174,253,186,7,51,254,186,28,183,254,186,21,59,255,186,241,190,255,186,88,33,0,187,
41,99,0,187,235,164,0,187,159,230,0,187,69,40,1,187,220,105,1,187,100,171,1,187,222,236,1,187,73,46,2,187,165,111,2,187,243,176,2,187,50,242,2,187,99,51,3,187,132,116,3,187,151,181,3,187,155,246,3,187,144,55,4,187,118,120,4,187,77,185,4,187,21,250,4,187,207,58,5,187,121,123,5,187,21,188,5,187,161,252,5,187,30,61,6,187,141,125,6,187,236,189,6,187,60,254,6,187,124,62,7,187,174,126,7,187,208,190,7,187,228,254,7,187,231,62,8,187,220,126,8,187,193,190,8,187,151,254,8,187,94,62,9,187,21,126,9,187,189,189,
9,187,85,253,9,187,222,60,10,187,87,124,10,187,193,187,10,187,27,251,10,187,102,58,11,187,161,121,11,187,204,184,11,187,232,247,11,187,244,54,12,187,241,117,12,187,221,180,12,187,186,243,12,187,136,50,13,187,69,113,13,187,242,175,13,187,144,238,13,187,30,45,14,187,156,107,14,187,10,170,14,187,104,232,14,187,182,38,15,187,244,100,15,187,34,163,15,187,63,225,15,187,77,31,16,187,75,93,16,187,57,155,16,187,22,217,16,187,227,22,17,187,160,84,17,187,77,146,17,187,234,207,17,187,118,13,18,187,242,74,18,
187,93,136,18,187,185,197,18,187,4,3,19,187,62,64,19,187,104,125,19,187,130,186,19,187,139,247,19,187,131,52,20,187,108,113,20,187,67,174,20,187,10,235,20,187,192,39,21,187,102,100,21,187,251,160,21,187,128,221,21,187,243,25,22,187,86,86,22,187,169,146,22,187,234,206,22,187,27,11,23,187,58,71,23,187,73,131,23,187,72,191,23,187,53,251,23,187,17,55,24,187,220,114,24,187,151,174,24,187,64,234,24,187,217,37,25,187,96,97,25,187,214,156,25,187,60,216,25,187,144,19,26,187,211,78,26,187,4,138,26,187,37,197,
26,187,53,0,27,187,51,59,27,187,32,118,27,187,251,176,27,187,198,235,27,187,127,38,28,187,38,97,28,187,189,155,28,187,66,214,28,187,181,16,29,187,23,75,29,187,104,133,29,187,167,191,29,187,213,249,29,187,241,51,30,187,251,109,30,187,244,167,30,187,220,225,30,187,177,27,31,187,117,85,31,187,40,143,31,187,200,200,31,187,87,2,32,187,213,59,32,187,64,117,32,187,154,174,32,187,226,231,32,187,24,33,33,187,60,90,33,187,78,147,33,187,79,204,33,187,61,5,34,187,25,62,34,187,228,118,34,187,157,175,34,187,67,
232,34,187,216,32,35,187,90,89,35,187,202,145,35,187,41,202,35,187,117,2,36,187,175,58,36,187,214,114,36,187,236,170,36,187,239,226,36,187,224,26,37,187,191,82,37,187,140,138,37,187,70,194,37,187,238,249,37,187,131,49,38,187,7,105,38,187,119,160,38,187,214,215,38,187,34,15,39,187,91,70,39,187,130,125,39,187,151,180,39,187,152,235,39,187,136,34,40,187,101,89,40,187,47,144,40,187,230,198,40,187,139,253,40,187,30,52,41,187,157,106,41,187,10,161,41,187,100,215,41,187,172,13,42,187,224,67,42,187,2,122,
42,187,17,176,42,187,13,230,42,187,246,27,43,187,205,81,43,187,144,135,43,187,65,189,43,187,223,242,43,187,105,40,44,187,225,93,44,187,70,147,44,187,152,200,44,187,214,253,44,187,2,51,45,187,26,104,45,187,32,157,45,187,18,210,45,187,241,6,46,187,189,59,46,187,117,112,46,187,27,165,46,187,173,217,46,187,44,14,47,187,152,66,47,187,240,118,47,187,53,171,47,187,103,223,47,187,133,19,48,187,144,71,48,187,136,123,48,187,108,175,48,187,61,227,48,187,250,22,49,187,164,74,49,187,58,126,49,187,188,177,49,187,
44,229,49,187,135,24,50,187,207,75,50,187,3,127,50,187,36,178,50,187,49,229,50,187,43,24,51,187,16,75,51,187,226,125,51,187,160,176,51,187,75,227,51,187,226,21,52,187,101,72,52,187,212,122,52,187,47,173,52,187,118,223,52,187,170,17,53,187,202,67,53,187,213,117,53,187,205,167,53,187,177,217,53,187,129,11,54,187,61,61,54,187,229,110,54,187,121,160,54,187,248,209,54,187,100,3,55,187,188,52,55,187,255,101,55,187,47,151,55,187,74,200,55,187,81,249,55,187,68,42,56,187,34,91,56,187,237,139,56,187,163,188,
56,187,69,237,56,187,211,29,57,187,76,78,57,187,177,126,57,187,2,175,57,187,62,223,57,187,102,15,58,187,121,63,58,187,121,111,58,187,99,159,58,187,57,207,58,187,251,254,58,187,168,46,59,187,65,94,59,187,197,141,59,187,53,189,59,187,144,236,59,187,214,27,60,187,8,75,60,187,38,122,60,187,46,169,60,187,34,216,60,187,1,7,61,187,204,53,61,187,130,100,61,187,35,147,61,187,175,193,61,187,39,240,61,187,138,30,62,187,216,76,62,187,17,123,62,187,53,169,62,187,69,215,62,187,63,5,63,187,37,51,63,187,245,96,63,
187,177,142,63,187,88,188,63,187,234,233,63,187,103,23,64,187,207,68,64,187,34,114,64,187,95,159,64,187,136,204,64,187,156,249,64,187,154,38,65,187,132,83,65,187,88,128,65,187,23,173,65,187,193,217,65,187,86,6,66,187,213,50,66,187,64,95,66,187,149,139,66,187,213,183,66,187,255,227,66,187,21,16,67,187,21,60,67,187,255,103,67,187,213,147,67,187,149,191,67,187,63,235,67,187,213,22,68,187,84,66,68,187,191,109,68,187,20,153,68,187,83,196,68,187,125,239,68,187,145,26,69,187,144,69,69,187,122,112,69,187,
78,155,69,187,12,198,69,187,181,240,69,187,72,27,70,187,198,69,70,187,45,112,70,187,128,154,70,187,188,196,70,187,227,238,70,187,244,24,71,187,240,66,71,187,214,108,71,187,166,150,71,187,96,192,71,187,4,234,71,187,147,19,72,187,12,61,72,187,111,102,72,187,188,143,72,187,244,184,72,187,21,226,72,187,33,11,73,187,22,52,73,187,246,92,73,187,192,133,73,187,116,174,73,187,18,215,73,187,154,255,73,187,12,40,74,187,103,80,74,187,173,120,74,187,221,160,74,187,247,200,74,187,250,240,74,187,232,24,75,187,191,
64,75,187,129,104,75,187,44,144,75,187,193,183,75,187,64,223,75,187,168,6,76,187,251,45,76,187,55,85,76,187,93,124,76,187,109,163,76,187,102,202,76,187,73,241,76,187,22,24,77,187,205,62,77,187,109,101,77,187,247,139,77,187,107,178,77,187,200,216,77,187,15,255,77,187,63,37,78,187,89,75,78,187,93,113,78,187,74,151,78,187,32,189,78,187,225,226,78,187,138,8,79,187,29,46,79,187,154,83,79,187,0,121,79,187,80,158,79,187,137,195,79,187,171,232,79,187,183,13,80,187,172,50,80,187,139,87,80,187,83,124,80,187,
5,161,80,187,159,197,80,187,35,234,80,187,145,14,81,187,231,50,81,187,39,87,81,187,80,123,81,187,99,159,81,187,94,195,81,187,67,231,81,187,17,11,82,187,201,46,82,187,105,82,82,187,243,117,82,187,102,153,82,187,194,188,82,187,7,224,82,187,53,3,83,187,76,38,83,187,77,73,83,187,54,108,83,187,9,143,83,187,197,177,83,187,105,212,83,187,247,246,83,187,110,25,84,187,205,59,84,187,22,94,84,187,72,128,84,187,98,162,84,187,102,196,84,187,82,230,84,187,40,8,85,187,230,41,85,187,141,75,85,187,29,109,85,187,150,
142,85,187,248,175,85,187,66,209,85,187,118,242,85,187,146,19,86,187,151,52,86,187,133,85,86,187,92,118,86,187,27,151,86,187,195,183,86,187,84,216,86,187,206,248,86,187,48,25,87,187,123,57,87,187,175,89,87,187,203,121,87,187,208,153,87,187,190,185,87,187,149,217,87,187,84,249,87,187,251,24,88,187,139,56,88,187,4,88,88,187,102,119,88,187,176,150,88,187,226,181,88,187,253,212,88,187,1,244,88,187,237,18,89,187,194,49,89,187,127,80,89,187,37,111,89,187,179,141,89,187,41,172,89,187,136,202,89,187,208,
232,89,187,0,7,90,187,24,37,90,187,25,67,90,187,2,97,90,187,211,126,90,187,141,156,90,187,48,186,90,187,186,215,90,187,45,245,90,187,136,18,91,187,204,47,91,187,248,76,91,187,12,106,91,187,8,135,91,187,237,163,91,187,186,192,91,187,111,221,91,187,13,250,91,187,147,22,92,187,1,51,92,187,87,79,92,187,149,107,92,187,188,135,92,187,203,163,92,187,193,191,92,187,160,219,92,187,104,247,92,187,23,19,93,187,174,46,93,187,46,74,93,187,150,101,93,187,229,128,93,187,29,156,93,187,61,183,93,187,69,210,93,187,
53,237,93,187,13,8,94,187,206,34,94,187,118,61,94,187,6,88,94,187,126,114,94,187,222,140,94,187,38,167,94,187,86,193,94,187,111,219,94,187,111,245,94,187,87,15,95,187,39,41,95,187,222,66,95,187,126,92,95,187,6,118,95,187,117,143,95,187,205,168,95,187,12,194,95,187,51,219,95,187,66,244,95,187,57,13,96,187,24,38,96,187,223,62,96,187,141,87,96,187,35,112,96,187,161,136,96,187,7,161,96,187,85,185,96,187,138,209,96,187,167,233,96,187,172,1,97,187,153,25,97,187,110,49,97,187,42,73,97,187,206,96,97,187,
89,120,97,187,204,143,97,187,40,167,97,187,106,190,97,187,149,213,97,187,167,236,97,187,160,3,98,187,130,26,98,187,75,49,98,187,251,71,98,187,148,94,98,187,20,117,98,187,123,139,98,187,202,161,98,187,1,184,98,187,32,206,98,187,37,228,98,187,19,250,98,187,232,15,99,187,165,37,99,187,73,59,99,187,213,80,99,187,72,102,99,187,163,123,99,187,229,144,99,187,15,166,99,187,32,187,99,187,25,208,99,187,249,228,99,187,193,249,99,187,112,14,100,187,7,35,100,187,133,55,100,187,235,75,100,187,56,96,100,187,109,
116,100,187,137,136,100,187,140,156,100,187,119,176,100,187,73,196,100,187,3,216,100,187,164,235,100,187,44,255,100,187,156,18,101,187,243,37,101,187,50,57,101,187,88,76,101,187,101,95,101,187,90,114,101,187,54,133,101,187,249,151,101,187,164,170,101,187,54,189,101,187,175,207,101,187,16,226,101,187,87,244,101,187,135,6,102,187,157,24,102,187,155,42,102,187,128,60,102,187,76,78,102,187,0,96,102,187,155,113,102,187,29,131,102,187,134,148,102,187,215,165,102,187,14,183,102,187,45,200,102,187,52,217,
102,187,33,234,102,187,246,250,102,187,178,11,103,187,85,28,103,187,223,44,103,187,80,61,103,187,169,77,103,187,233,93,103,187,16,110,103,187,30,126,103,187,19,142,103,187,240,157,103,187,179,173,103,187,94,189,103,187,240,204,103,187,105,220,103,187,201,235,103,187,17,251,103,187,63,10,104,187,84,25,104,187,81,40,104,187,53,55,104,187,0,70,104,187,178,84,104,187,75,99,104,187,203,113,104,187,50,128,104,187,128,142,104,187,181,156,104,187,210,170,104,187,213,184,104,187,192,198,104,187,145,212,104,
187,74,226,104,187,233,239,104,187,112,253,104,187,222,10,105,187,50,24,105,187,110,37,105,187,145,50,105,187,155,63,105,187,139,76,105,187,99,89,105,187,34,102,105,187,200,114,105,187,85,127,105,187,200,139,105,187,35,152,105,187,101,164,105,187,142,176,105,187,157,188,105,187,148,200,105,187,114,212,105,187,54,224,105,187,226,235,105,187,116,247,105,187,238,2,106,187,78,14,106,187,149,25,106,187,196,36,106,187,217,47,106,187,213,58,106,187,184,69,106,187,130,80,106,187,51,91,106,187,203,101,106,
187,74,112,106,187,175,122,106,187,252,132,106,187,48,143,106,187,74,153,106,187,75,163,106,187,52,173,106,187,3,183,106,187,185,192,106,187,86,202,106,187,217,211,106,187,68,221,106,187,150,230,106,187,206,239,106,187,237,248,106,187,244,1,107,187,225,10,107,187,181,19,107,187,112,28,107,187,17,37,107,187,154,45,107,187,9,54,107,187,95,62,107,187,157,70,107,187,192,78,107,187,203,86,107,187,189,94,107,187,149,102,107,187,85,110,107,187,251,117,107,187,136,125,107,187,252,132,107,187,87,140,107,187,
152,147,107,187,193,154,107,187,208,161,107,187,198,168,107,187,163,175,107,187,103,182,107,187,17,189,107,187,162,195,107,187,27,202,107,187,122,208,107,187,192,214,107,187,236,220,107,187,0,227,107,187,250,232,107,187,219,238,107,187,163,244,107,187,82,250,107,187,231,255,107,187,99,5,108,187,199,10,108,187,17,16,108,187,65,21,108,187,89,26,108,187,87,31,108,187,60,36,108,187,8,41,108,187,187,45,108,187,85,50,108,187,213,54,108,187,60,59,108,187,138,63,108,187,191,67,108,187,219,71,108,187,221,
75,108,187,198,79,108,187,150,83,108,187,77,87,108,187,235,90,108,187,111,94,108,187,218,97,108,187,44,101,108,187,101,104,108,187,132,107,108,187,139,110,108,187,120,113,108,187,76,116,108,187,6,119,108,187,168,121,108,187,48,124,108,187,159,126,108,187,245,128,108,187,50,131,108,187,85,133,108,187,96,135,108,187,81,137,108,187,41,139,108,187,231,140,108,187,141,142,108,187,25,144,108,187,140,145,108,187,230,146,108,187,39,148,108,187,78,149,108,187,93,150,108,187,82,151,108,187,46,152,108,187,240,
152,108,187,154,153,108,187,42,154,108,187,161,154,108,187,255,154,108,187,68,155,108,187,111,155,108,187,130,155,108,187,123,155,108,187,91,155,108,187,34,155,108,187,207,154,108,187,100,154,108,187,223,153,108,187,65,153,108,187,138,152,108,187,186,151,108,187,208,150,108,187,206,149,108,187,178,148,108,187,125,147,108,187,47,146,108,187,200,144,108,187,71,143,108,187,174,141,108,187,251,139,108,187,47,138,108,187,74,136,108,187,75,134,108,187,52,132,108,187,3,130,108,187,186,127,108,187,87,125,
108,187,219,122,108,187,70,120,108,187,152,117,108,187,208,114,108,187,240,111,108,187,246,108,108,187,227,105,108,187,183,102,108,187,114,99,108,187,20,96,108,187,157,92,108,187,12,89,108,187,99,85,108,187,160,81,108,187,196,77,108,187,207,73,108,187,193,69,108,187,154,65,108,187,90,61,108,187,1,57,108,187,143,52,108,187,3,48,108,187,95,43,108,187,161,38,108,187,202,33,108,187,219,28,108,187,210,23,108,187,176,18,108,187,117,13,108,187,33,8,108,187,180,2,108,187,46,253,107,187,142,247,107,187,214,
241,107,187,5,236,107,187,27,230,107,187,23,224,107,187,251,217,107,187,197,211,107,187,119,205,107,187,15,199,107,187,143,192,107,187,245,185,107,187,67,179,107,187,119,172,107,187,147,165,107,187,149,158,107,187,127,151,107,187,79,144,107,187,7,137,107,187,165,129,107,187,43,122,107,187,151,114,107,187,235,106,107,187,38,99,107,187,71,91,107,187,80,83,107,187,64,75,107,187,23,67,107,187,212,58,107,187,121,50,107,187,5,42,107,187,120,33,107,187,211,24,107,187,20,16,107,187,60,7,107,187,76,254,106,
187,66,245,106,187,32,236,106,187,228,226,106,187,144,217,106,187,35,208,106,187,157,198,106,187,254,188,106,187,71,179,106,187,118,169,106,187,141,159,106,187,139,149,106,187,112,139,106,187,60,129,106,187,239,118,106,187,137,108,106,187,11,98,106,187,116,87,106,187,196,76,106,187,251,65,106,187,25,55,106,187,31,44,106,187,11,33,106,187,223,21,106,187,154,10,106,187,61,255,105,187,198,243,105,187,55,232,105,187,143,220,105,187,207,208,105,187,245,196,105,187,3,185,105,187,248,172,105,187,213,160,
105,187,153,148,105,187,68,136,105,187,214,123,105,187,79,111,105,187,176,98,105,187,249,85,105,187,40,73,105,187,63,60,105,187,61,47,105,187,35,34,105,187,240,20,105,187,164,7,105,187,63,250,104,187,194,236,104,187,45,223,104,187,126,209,104,187,184,195,104,187,216,181,104,187,224,167,104,187,207,153,104,187,166,139,104,187,100,125,104,187,10,111,104,187,151,96,104,187,11,82,104,187,103,67,104,187,170,52,104,187,213,37,104,187,231,22,104,187,225,7,104,187,194,248,103,187,139,233,103,187,59,218,103,
187,211,202,103,187,82,187,103,187,185,171,103,187,8,156,103,187,61,140,103,187,91,124,103,187,96,108,103,187,76,92,103,187,32,76,103,187,220,59,103,187,127,43,103,187,10,27,103,187,125,10,103,187,215,249,102,187,25,233,102,187,66,216,102,187,83,199,102,187,75,182,102,187,44,165,102,187,244,147,102,187,163,130,102,187,58,113,102,187,185,95,102,187,32,78,102,187,110,60,102,187,164,42,102,187,194,24,102,187,200,6,102,187,181,244,101,187,138,226,101,187,71,208,101,187,235,189,101,187,120,171,101,187,
236,152,101,187,71,134,101,187,139,115,101,187,183,96,101,187,202,77,101,187,197,58,101,187,168,39,101,187,115,20,101,187,37,1,101,187,192,237,100,187,66,218,100,187,172,198,100,187,255,178,100,187,57,159,100,187,90,139,100,187,100,119,100,187,86,99,100,187,48,79,100,187,242,58,100,187,155,38,100,187,45,18,100,187,166,253,99,187,8,233,99,187,81,212,99,187,131,191,99,187,157,170,99,187,158,149,99,187,136,128,99,187,89,107,99,187,19,86,99,187,181,64,99,187,63,43,99,187,177,21,99,187,11,0,99,187,77,
234,98,187,119,212,98,187,138,190,98,187,132,168,98,187,103,146,98,187,50,124,98,187,229,101,98,187,128,79,98,187,3,57,98,187,111,34,98,187,194,11,98,187,254,244,97,187,35,222,97,187,47,199,97,187,36,176,97,187,1,153,97,187,198,129,97,187,115,106,97,187,9,83,97,187,135,59,97,187,238,35,97,187,60,12,97,187,116,244,96,187,147,220,96,187,155,196,96,187,139,172,96,187,100,148,96,187,36,124,96,187,206,99,96,187,96,75,96,187,218,50,96,187,60,26,96,187,135,1,96,187,187,232,95,187,215,207,95,187,219,182,
95,187,200,157,95,187,158,132,95,187,92,107,95,187,3,82,95,187,146,56,95,187,9,31,95,187,105,5,95,187,178,235,94,187,228,209,94,187,254,183,94,187,0,158,94,187,235,131,94,187,191,105,94,187,124,79,94,187,33,53,94,187,175,26,94,187,37,0,94,187,132,229,93,187,204,202,93,187,253,175,93,187,22,149,93,187,25,122,93,187,3,95,93,187,215,67,93,187,148,40,93,187,57,13,93,187,199,241,92,187,62,214,92,187,157,186,92,187,230,158,92,187,23,131,92,187,50,103,92,187,53,75,92,187,33,47,92,187,246,18,92,187,180,246,
91,187,90,218,91,187,234,189,91,187,99,161,91,187,197,132,91,187,15,104,91,187,67,75,91,187,96,46,91,187,101,17,91,187,84,244,90,187,44,215,90,187,237,185,90,187,151,156,90,187,42,127,90,187,166,97,90,187,11,68,90,187,90,38,90,187,145,8,90,187,178,234,89,187,188,204,89,187,175,174,89,187,139,144,89,187,81,114,89,187,0,84,89,187,152,53,89,187,25,23,89,187,131,248,88,187,215,217,88,187,20,187,88,187,58,156,88,187,74,125,88,187,67,94,88,187,38,63,88,187,241,31,88,187,166,0,88,187,69,225,87,187,205,193,
87,187,62,162,87,187,153,130,87,187,221,98,87,187,11,67,87,187,34,35,87,187,35,3,87,187,13,227,86,187,225,194,86,187,158,162,86,187,69,130,86,187,213,97,86,187,79,65,86,187,179,32,86,187,0,0,86,187,55,223,85,187,87,190,85,187,97,157,85,187,85,124,85,187,51,91,85,187,250,57,85,187,171,24,85,187,69,247,84,187,202,213,84,187,56,180,84,187,143,146,84,187,209,112,84,187,253,78,84,187,18,45,84,187,17,11,84,187,250,232,83,187,205,198,83,187,137,164,83,187,48,130,83,187,193,95,83,187,59,61,83,187,159,26,
83,187,238,247,82,187,38,213,82,187,72,178,82,187,85,143,82,187,75,108,82,187,43,73,82,187,246,37,82,187,170,2,82,187,73,223,81,187,209,187,81,187,68,152,81,187,161,116,81,187,232,80,81,187,25,45,81,187,53,9,81,187,58,229,80,187,42,193,80,187,4,157,80,187,200,120,80,187,119,84,80,187,15,48,80,187,146,11,80,187,0,231,79,187,88,194,79,187,154,157,79,187,198,120,79,187,221,83,79,187,222,46,79,187,201,9,79,187,159,228,78,187,96,191,78,187,11,154,78,187,160,116,78,187,32,79,78,187,138,41,78,187,223,3,
78,187,30,222,77,187,72,184,77,187,93,146,77,187,92,108,77,187,69,70,77,187,26,32,77,187,217,249,76,187,130,211,76,187,23,173,76,187,150,134,76,187,255,95,76,187,84,57,76,187,147,18,76,187,189,235,75,187,209,196,75,187,209,157,75,187,187,118,75,187,144,79,75,187,80,40,75,187,251,0,75,187,144,217,74,187,17,178,74,187,125,138,74,187,211,98,74,187,20,59,74,187,65,19,74,187,88,235,73,187,90,195,73,187,71,155,73,187,32,115,73,187,227,74,73,187,146,34,73,187,43,250,72,187,176,209,72,187,32,169,72,187,123,
128,72,187,193,87,72,187,242,46,72,187,15,6,72,187,22,221,71,187,9,180,71,187,231,138,71,187,177,97,71,187,102,56,71,187,6,15,71,187,145,229,70,187,8,188,70,187,106,146,70,187,183,104,70,187,240,62,70,187,20,21,70,187,36,235,69,187,31,193,69,187,6,151,69,187,216,108,69,187,149,66,69,187,62,24,69,187,211,237,68,187,83,195,68,187,191,152,68,187,22,110,68,187,89,67,68,187,136,24,68,187,162,237,67,187,168,194,67,187,154,151,67,187,120,108,67,187,65,65,67,187,246,21,67,187,150,234,66,187,35,191,66,187,
155,147,66,187,255,103,66,187,79,60,66,187,139,16,66,187,178,228,65,187,198,184,65,187,197,140,65,187,177,96,65,187,136,52,65,187,76,8,65,187,251,219,64,187,150,175,64,187,30,131,64,187,145,86,64,187,241,41,64,187,61,253,63,187,116,208,63,187,152,163,63,187,168,118,63,187,165,73,63,187,141,28,63,187,98,239,62,187,35,194,62,187,208,148,62,187,105,103,62,187,239,57,62,187,97,12,62,187,192,222,61,187,10,177,61,187,65,131,61,187,101,85,61,187,117,39,61,187,113,249,60,187,90,203,60,187,47,157,60,187,241,
110,60,187,159,64,60,187,58,18,60,187,193,227,59,187,53,181,59,187,150,134,59,187,227,87,59,187,29,41,59,187,67,250,58,187,86,203,58,187,86,156,58,187,67,109,58,187,28,62,58,187,226,14,58,187,149,223,57,187,53,176,57,187,193,128,57,187,58,81,57,187,160,33,57,187,243,241,56,187,51,194,56,187,96,146,56,187,122,98,56,187,129,50,56,187,117,2,56,187,85,210,55,187,35,162,55,187,222,113,55,187,134,65,55,187,27,17,55,187,157,224,54,187,12,176,54,187,105,127,54,187,178,78,54,187,233,29,54,187,13,237,53,187,
30,188,53,187,29,139,53,187,8,90,53,187,226,40,53,187,168,247,52,187,92,198,52,187,253,148,52,187,139,99,52,187,7,50,52,187,113,0,52,187,199,206,51,187,12,157,51,187,61,107,51,187,93,57,51,187,106,7,51,187,100,213,50,187,76,163,50,187,34,113,50,187,229,62,50,187,150,12,50,187,52,218,49,187,192,167,49,187,58,117,49,187,162,66,49,187,247,15,49,187,59,221,48,187,108,170,48,187,138,119,48,187,151,68,48,187,146,17,48,187,122,222,47,187,80,171,47,187,21,120,47,187,199,68,47,187,103,17,47,187,245,221,46,
187,114,170,46,187,220,118,46,187,52,67,46,187,123,15,46,187,175,219,45,187,210,167,45,187,227,115,45,187,226,63,45,187,207,11,45,187,170,215,44,187,116,163,44,187,44,111,44,187,210,58,44,187,103,6,44,187,234,209,43,187,91,157,43,187,187,104,43,187,9,52,43,187,69,255,42,187,112,202,42,187,138,149,42,187,146,96,42,187,136,43,42,187,109,246,41,187,65,193,41,187,3,140,41,187,179,86,41,187,83,33,41,187,225,235,40,187,94,182,40,187,201,128,40,187,35,75,40,187,108,21,40,187,164,223,39,187,202,169,39,187,
223,115,39,187,228,61,39,187,215,7,39,187,184,209,38,187,137,155,38,187,73,101,38,187,248,46,38,187,149,248,37,187,34,194,37,187,158,139,37,187,9,85,37,187,98,30,37,187,171,231,36,187,227,176,36,187,11,122,36,187,33,67,36,187,39,12,36,187,27,213,35,187,255,157,35,187,211,102,35,187,149,47,35,187,71,248,34,187,232,192,34,187,121,137,34,187,249,81,34,187,105,26,34,187,199,226,33,187,22,171,33,187,83,115,33,187,129,59,33,187,157,3,33,187,170,203,32,187,166,147,32,187,145,91,32,187,108,35,32,187,55,235,
31,187,242,178,31,187,156,122,31,187,54,66,31,187,192,9,31,187,57,209,30,187,162,152,30,187,251,95,30,187,68,39,30,187,125,238,29,187,165,181,29,187,190,124,29,187,199,67,29,187,191,10,29,187,167,209,28,187,128,152,28,187,72,95,28,187,1,38,28,187,170,236,27,187,66,179,27,187,203,121,27,187,68,64,27,187,174,6,27,187,7,205,26,187,81,147,26,187,139,89,26,187,181,31,26,187,208,229,25,187,218,171,25,187,214,113,25,187,193,55,25,187,157,253,24,187,106,195,24,187,39,137,24,187,212,78,24,187,114,20,24,187,
1,218,23,187,128,159,23,187,239,100,23,187,79,42,23,187,160,239,22,187,226,180,22,187,20,122,22,187,55,63,22,187,75,4,22,187,79,201,21,187,68,142,21,187,42,83,21,187,1,24,21,187,201,220,20,187,129,161,20,187,43,102,20,187,197,42,20,187,81,239,19,187,205,179,19,187,59,120,19,187,153,60,19,187,233,0,19,187,41,197,18,187,91,137,18,187,126,77,18,187,146,17,18,187,151,213,17,187,142,153,17,187,117,93,17,187,78,33,17,187,24,229,16,187,212,168,16,187,129,108,16,187,31,48,16,187,175,243,15,187,48,183,15,
187,163,122,15,187,7,62,15,187,92,1,15,187,163,196,14,187,220,135,14,187,6,75,14,187,34,14,14,187,48,209,13,187,47,148,13,187,32,87,13,187,2,26,13,187,214,220,12,187,156,159,12,187,84,98,12,187,254,36,12,187,153,231,11,187,39,170,11,187,166,108,11,187,23,47,11,187,122,241,10,187,207,179,10,187,22,118,10,187,79,56,10,187,123,250,9,187,152,188,9,187,167,126,9,187,169,64,9,187,156,2,9,187,130,196,8,187,90,134,8,187,36,72,8,187,225,9,8,187,144,203,7,187,49,141,7,187,196,78,7,187,74,16,7,187,194,209,6,
187,45,147,6,187,138,84,6,187,218,21,6,187,28,215,5,187,81,152,5,187,120,89,5,187,146,26,5,187,158,219,4,187,157,156,4,187,143,93,4,187,115,30,4,187,74,223,3,187,20,160,3,187,209,96,3,187,128,33,3,187,34,226,2,187,183,162,2,187,63,99,2,187,186,35,2,187,40,228,1,187,137,164,1,187,220,100,1,187,35,37,1,187,93,229,0,187,138,165,0,187,170,101,0,187,189,37,0,187,135,203,255,186,121,75,255,186],"i8",4,y.a+501760);
Q([83,203,254,186,18,75,254,186,185,202,253,186,70,74,253,186,185,201,252,186,19,73,252,186,84,200,251,186,124,71,251,186,138,198,250,186,128,69,250,186,92,196,249,186,32,67,249,186,202,193,248,186,92,64,248,186,212,190,247,186,52,61,247,186,124,187,246,186,170,57,246,186,192,183,245,186,190,53,245,186,163,179,244,186,112,49,244,186,36,175,243,186,192,44,243,186,67,170,242,186,175,39,242,186,2,165,241,186,61,34,241,186,96,159,240,186,107,28,240,186,94,153,239,186,58,22,239,186,253,146,238,186,169,
15,238,186,61,140,237,186,185,8,237,186,30,133,236,186,107,1,236,186,160,125,235,186,191,249,234,186,198,117,234,186,181,241,233,186,141,109,233,186,78,233,232,186,248,100,232,186,139,224,231,186,7,92,231,186,108,215,230,186,185,82,230,186,240,205,229,186,17,73,229,186,26,196,228,186,13,63,228,186,233,185,227,186,174,52,227,186,93,175,226,186,246,41,226,186,120,164,225,186,227,30,225,186,57,153,224,186,120,19,224,186,161,141,223,186,179,7,223,186,176,129,222,186,151,251,221,186,103,117,221,186,34,
239,220,186,199,104,220,186,86,226,219,186,208,91,219,186,51,213,218,186,129,78,218,186,186,199,217,186,221,64,217,186,234,185,216,186,226,50,216,186,197,171,215,186,147,36,215,186,75,157,214,186,238,21,214,186,124,142,213,186,245,6,213,186,89,127,212,186,168,247,211,186,226,111,211,186,8,232,210,186,24,96,210,186,20,216,209,186,251,79,209,186,206,199,208,186,140,63,208,186,53,183,207,186,203,46,207,186,75,166,206,186,184,29,206,186,16,149,205,186,84,12,205,186,132,131,204,186,160,250,203,186,168,
113,203,186,156,232,202,186,124,95,202,186,72,214,201,186,0,77,201,186,165,195,200,186,54,58,200,186,179,176,199,186,29,39,199,186,115,157,198,186,182,19,198,186,230,137,197,186,2,0,197,186,11,118,196,186,0,236,195,186,227,97,195,186,178,215,194,186,111,77,194,186,24,195,193,186,175,56,193,186,50,174,192,186,163,35,192,186,2,153,191,186,77,14,191,186,134,131,190,186,172,248,189,186,192,109,189,186,193,226,188,186,176,87,188,186,141,204,187,186,88,65,187,186,16,182,186,186,182,42,186,186,74,159,185,
186,204,19,185,186,60,136,184,186,154,252,183,186,230,112,183,186,32,229,182,186,73,89,182,186,96,205,181,186,101,65,181,186,89,181,180,186,59,41,180,186,12,157,179,186,204,16,179,186,122,132,178,186,23,248,177,186,162,107,177,186,29,223,176,186,134,82,176,186,223,197,175,186,38,57,175,186,93,172,174,186,131,31,174,186,151,146,173,186,156,5,173,186,143,120,172,186,114,235,171,186,68,94,171,186,6,209,170,186,184,67,170,186,89,182,169,186,234,40,169,186,106,155,168,186,218,13,168,186,59,128,167,186,
139,242,166,186,203,100,166,186,251,214,165,186,27,73,165,186,43,187,164,186,44,45,164,186,29,159,163,186,254,16,163,186,208,130,162,186,146,244,161,186,69,102,161,186,232,215,160,186,124,73,160,186,0,187,159,186,118,44,159,186,220,157,158,186,51,15,158,186,123,128,157,186,180,241,156,186,222,98,156,186,249,211,155,186,5,69,155,186,3,182,154,186,242,38,154,186,210,151,153,186,164,8,153,186,103,121,152,186,28,234,151,186,194,90,151,186,90,203,150,186,228,59,150,186,95,172,149,186,204,28,149,186,44,
141,148,186,125,253,147,186,192,109,147,186,246,221,146,186,29,78,146,186,55,190,145,186,67,46,145,186,65,158,144,186,50,14,144,186,21,126,143,186,234,237,142,186,179,93,142,186,110,205,141,186,27,61,141,186,187,172,140,186,79,28,140,186,213,139,139,186,78,251,138,186,185,106,138,186,24,218,137,186,107,73,137,186,176,184,136,186,232,39,136,186,20,151,135,186,51,6,135,186,70,117,134,186,76,228,133,186,70,83,133,186,51,194,132,186,20,49,132,186,233,159,131,186,177,14,131,186,109,125,130,186,30,236,
129,186,194,90,129,186,90,201,128,186,230,55,128,186,205,76,127,186,183,41,126,186,136,6,125,186,67,227,123,186,230,191,122,186,115,156,121,186,232,120,120,186,70,85,119,186,142,49,118,186,191,13,117,186,218,233,115,186,223,197,114,186,205,161,113,186,165,125,112,186,103,89,111,186,19,53,110,186,169,16,109,186,42,236,107,186,150,199,106,186,236,162,105,186,45,126,104,186,88,89,103,186,111,52,102,186,113,15,101,186,94,234,99,186,54,197,98,186,250,159,97,186,170,122,96,186,69,85,95,186,204,47,94,186,
63,10,93,186,158,228,91,186,234,190,90,186,34,153,89,186,70,115,88,186,87,77,87,186,85,39,86,186,63,1,85,186,22,219,83,186,219,180,82,186,141,142,81,186,44,104,80,186,184,65,79,186,51,27,78,186,154,244,76,186,240,205,75,186,52,167,74,186,102,128,73,186,134,89,72,186,148,50,71,186,145,11,70,186,124,228,68,186,86,189,67,186,31,150,66,186,215,110,65,186,125,71,64,186,20,32,63,186,153,248,61,186,14,209,60,186,114,169,59,186,198,129,58,186,10,90,57,186,62,50,56,186,98,10,55,186,118,226,53,186,122,186,
52,186,111,146,51,186,84,106,50,186,42,66,49,186,241,25,48,186,169,241,46,186,82,201,45,186,236,160,44,186,119,120,43,186,244,79,42,186,98,39,41,186,194,254,39,186,20,214,38,186,88,173,37,186,141,132,36,186,181,91,35,186,207,50,34,186,220,9,33,186,219,224,31,186,205,183,30,186,177,142,29,186,137,101,28,186,83,60,27,186,17,19,26,186,194,233,24,186,102,192,23,186,254,150,22,186,138,109,21,186,9,68,20,186,124,26,19,186,228,240,17,186,63,199,16,186,143,157,15,186,211,115,14,186,12,74,13,186,57,32,12,
186,91,246,10,186,114,204,9,186,126,162,8,186,127,120,7,186,118,78,6,186,97,36,5,186,67,250,3,186,26,208,2,186,231,165,1,186,169,123,0,186,196,162,254,185,34,78,252,185,108,249,249,185,163,164,247,185,199,79,245,185,216,250,242,185,215,165,240,185,196,80,238,185,159,251,235,185,104,166,233,185,31,81,231,185,197,251,228,185,91,166,226,185,223,80,224,185,84,251,221,185,184,165,219,185,11,80,217,185,80,250,214,185,133,164,212,185,170,78,210,185,193,248,207,185,201,162,205,185,194,76,203,185,173,246,
200,185,138,160,198,185,90,74,196,185,28,244,193,185,209,157,191,185,120,71,189,185,19,241,186,185,162,154,184,185,36,68,182,185,155,237,179,185,5,151,177,185,100,64,175,185,184,233,172,185,1,147,170,185,64,60,168,185,115,229,165,185,157,142,163,185,188,55,161,185,210,224,158,185,222,137,156,185,226,50,154,185,220,219,151,185,205,132,149,185,182,45,147,185,150,214,144,185,111,127,142,185,64,40,140,185,9,209,137,185,204,121,135,185,135,34,133,185,59,203,130,185,233,115,128,185,34,57,124,185,101,138,
119,185,157,219,114,185,202,44,110,185,237,125,105,185,5,207,100,185,20,32,96,185,26,113,91,185,24,194,86,185,13,19,82,185,251,99,77,185,226,180,72,185,195,5,68,185,158,86,63,185,115,167,58,185,67,248,53,185,14,73,49,185,214,153,44,185,154,234,39,185,91,59,35,185,26,140,30,185,214,220,25,185,146,45,21,185,76,126,16,185,5,207,11,185,191,31,7,185,121,112,2,185,104,130,251,184,225,35,242,184,94,197,232,184,224,102,223,184,104,8,214,184,247,169,204,184,142,75,195,184,46,237,185,184,216,142,176,184,141,
48,167,184,77,210,157,184,27,116,148,184,247,21,139,184,225,183,129,184,184,179,112,184,207,247,93,184,10,60,75,184,106,128,56,184,243,196,37,184,165,9,19,184,131,78,0,184,31,39,219,183,150,177,181,183,113,60,144,183,104,143,85,183,197,166,10,183,4,252,126,182,194,125,50,53,148,27,172,54,193,242,32,55,185,214,107,55,213,92,155,55,198,205,192,55,44,62,230,55,1,215,5,56,163,142,24,56,248,69,43,56,1,253,61,56,185,179,80,56,32,106,99,56,51,32,118,56,248,106,132,56,171,197,141,56,50,32,151,56,138,122,
160,56,180,212,169,56,173,46,179,56,119,136,188,56,14,226,197,56,114,59,207,56,163,148,216,56,159,237,225,56,102,70,235,56,245,158,244,56,77,247,253,56,182,167,3,57,169,83,8,57,126,255,12,57,54,171,17,57,207,86,22,57,73,2,27,57,164,173,31,57,224,88,36,57,251,3,41,57,245,174,45,57,205,89,50,57,132,4,55,57,25,175,59,57,139,89,64,57,217,3,69,57,4,174,73,57,11,88,78,57,236,1,83,57,169,171,87,57,63,85,92,57,176,254,96,57,250,167,101,57,28,81,106,57,23,250,110,57,233,162,115,57,147,75,120,57,19,244,124,
57,53,206,128,57,75,34,131,57,76,118,133,57,55,202,135,57,13,30,138,57,204,113,140,57,117,197,142,57,8,25,145,57,131,108,147,57,232,191,149,57,53,19,152,57,107,102,154,57,137,185,156,57,142,12,159,57,124,95,161,57,81,178,163,57,13,5,166,57,176,87,168,57,57,170,170,57,170,252,172,57,0,79,175,57,60,161,177,57,94,243,179,57,102,69,182,57,83,151,184,57,37,233,186,57,219,58,189,57,118,140,191,57,245,221,193,57,88,47,196,57,159,128,198,57,202,209,200,57,216,34,203,57,200,115,205,57,156,196,207,57,82,21,
210,57,234,101,212,57,101,182,214,57,193,6,217,57,255,86,219,57,30,167,221,57,30,247,223,57,255,70,226,57,192,150,228,57,98,230,230,57,228,53,233,57,70,133,235,57,135,212,237,57,168,35,240,57,168,114,242,57,134,193,244,57,67,16,247,57,223,94,249,57,89,173,251,57,176,251,253,57,243,36,0,58,252,75,1,58,244,114,2,58,218,153,3,58,175,192,4,58,114,231,5,58,35,14,7,58,194,52,8,58,79,91,9,58,201,129,10,58,50,168,11,58,135,206,12,58,202,244,13,58,250,26,15,58,24,65,16,58,34,103,17,58,25,141,18,58,253,178,
19,58,206,216,20,58,139,254,21,58,52,36,23,58,202,73,24,58,76,111,25,58,186,148,26,58,20,186,27,58,89,223,28,58,139,4,30,58,167,41,31,58,176,78,32,58,163,115,33,58,130,152,34,58,76,189,35,58,0,226,36,58,160,6,38,58,42,43,39,58,159,79,40,58,254,115,41,58,72,152,42,58,124,188,43,58,153,224,44,58,161,4,46,58,147,40,47,58,110,76,48,58,51,112,49,58,226,147,50,58,122,183,51,58,251,218,52,58,101,254,53,58,185,33,55,58,245,68,56,58,26,104,57,58,40,139,58,58,30,174,59,58,252,208,60,58,195,243,61,58,114,22,
63,58,9,57,64,58,136,91,65,58,239,125,66,58,62,160,67,58,116,194,68,58,145,228,69,58,150,6,71,58,130,40,72,58,86,74,73,58,16,108,74,58,177,141,75,58,57,175,76,58,167,208,77,58,252,241,78,58,55,19,80,58,89,52,81,58,96,85,82,58,78,118,83,58,34,151,84,58,219,183,85,58,122,216,86,58,255,248,87,58,105,25,89,58,184,57,90,58,237,89,91,58,6,122,92,58,5,154,93,58,232,185,94,58,176,217,95,58,93,249,96,58,238,24,98,58,100,56,99,58,190,87,100,58,252,118,101,58,29,150,102,58,35,181,103,58,13,212,104,58,218,242,
105,58,139,17,107,58,31,48,108,58,151,78,109,58,242,108,110,58,47,139,111,58,80,169,112,58,84,199,113,58,58,229,114,58,3,3,116,58,174,32,117,58,60,62,118,58,172,91,119,58,254,120,120,58,50,150,121,58,72,179,122,58,64,208,123,58,25,237,124,58,212,9,126,58,112,38,127,58,119,33,128,58,167,175,128,58,199,61,129,58,215,203,129,58,216,89,130,58,201,231,130,58,171,117,131,58,124,3,132,58,62,145,132,58,241,30,133,58,147,172,133,58,37,58,134,58,167,199,134,58,25,85,135,58,123,226,135,58,205,111,136,58,14,
253,136,58,63,138,137,58,96,23,138,58,112,164,138,58,112,49,139,58,95,190,139,58,61,75,140,58,11,216,140,58,200,100,141,58,116,241,141,58,16,126,142,58,154,10,143,58,20,151,143,58,124,35,144,58,212,175,144,58,26,60,145,58,79,200,145,58,115,84,146,58,134,224,146,58,135,108,147,58,118,248,147,58,85,132,148,58,33,16,149,58,220,155,149,58,134,39,150,58,29,179,150,58,163,62,151,58,23,202,151,58,122,85,152,58,202,224,152,58,8,108,153,58,52,247,153,58,78,130,154,58,86,13,155,58,76,152,155,58,47,35,156,58,
0,174,156,58,191,56,157,58,107,195,157,58,5,78,158,58,140,216,158,58,1,99,159,58,98,237,159,58,177,119,160,58,238,1,161,58,23,140,161,58,45,22,162,58,49,160,162,58,33,42,163,58,255,179,163,58,201,61,164,58,128,199,164,58,36,81,165,58,181,218,165,58,50,100,166,58,155,237,166,58,242,118,167,58,52,0,168,58,100,137,168,58,127,18,169,58,135,155,169,58,123,36,170,58,91,173,170,58,39,54,171,58,224,190,171,58,132,71,172,58,21,208,172,58,145,88,173,58,249,224,173,58,77,105,174,58,141,241,174,58,184,121,175,
58,208,1,176,58,210,137,176,58,192,17,177,58,154,153,177,58,95,33,178,58,15,169,178,58,171,48,179,58,50,184,179,58,164,63,180,58,1,199,180,58,74,78,181,58,125,213,181,58,155,92,182,58,164,227,182,58,152,106,183,58,119,241,183,58,65,120,184,58,245,254,184,58,148,133,185,58,30,12,186,58,146,146,186,58,240,24,187,58,57,159,187,58,108,37,188,58,138,171,188,58,146,49,189,58,132,183,189,58,96,61,190,58,38,195,190,58,215,72,191,58,113,206,191,58,245,83,192,58,99,217,192,58,187,94,193,58,253,227,193,58,40,
105,194,58,61,238,194,58,60,115,195,58,36,248,195,58,245,124,196,58,176,1,197,58,85,134,197,58,227,10,198,58,90,143,198,58,186,19,199,58,3,152,199,58,54,28,200,58,82,160,200,58,86,36,201,58,68,168,201,58,26,44,202,58,218,175,202,58,130,51,203,58,18,183,203,58,140,58,204,58,238,189,204,58,57,65,205,58,108,196,205,58,136,71,206,58,140,202,206,58,120,77,207,58,77,208,207,58,10,83,208,58,175,213,208,58,61,88,209,58,178,218,209,58,16,93,210,58,85,223,210,58,131,97,211,58,152,227,211,58,149,101,212,58,
122,231,212,58,71,105,213,58,251,234,213,58,151,108,214,58,27,238,214,58,134,111,215,58,216,240,215,58,18,114,216,58,51,243,216,58,60,116,217,58,44,245,217,58,3,118,218,58,193,246,218,58,102,119,219,58,242,247,219,58,102,120,220,58,192,248,220,58,1,121,221,58,41,249,221,58,56,121,222,58,45,249,222,58,9,121,223,58,204,248,223,58,117,120,224,58,5,248,224,58,123,119,225,58,216,246,225,58,27,118,226,58,69,245,226,58,84,116,227,58,74,243,227,58,38,114,228,58,232,240,228,58,144,111,229,58,31,238,229,58,
147,108,230,58,237,234,230,58,45,105,231,58,82,231,231,58,94,101,232,58,79,227,232,58,38,97,233,58,226,222,233,58,132,92,234,58,11,218,234,58,120,87,235,58,203,212,235,58,2,82,236,58,31,207,236,58,33,76,237,58,8,201,237,58,213,69,238,58,134,194,238,58,29,63,239,58,153,187,239,58,249,55,240,58,62,180,240,58,105,48,241,58,120,172,241,58,107,40,242,58,68,164,242,58,1,32,243,58,162,155,243,58,41,23,244,58,147,146,244,58,226,13,245,58,22,137,245,58,46,4,246,58,42,127,246,58,10,250,246,58,207,116,247,58,
119,239,247,58,4,106,248,58,117,228,248,58,201,94,249,58,2,217,249,58,31,83,250,58,31,205,250,58,3,71,251,58,203,192,251,58,119,58,252,58,6,180,252,58,121,45,253,58,207,166,253,58,9,32,254,58,38,153,254,58,39,18,255,58,11,139,255,58,233,1,0,59,63,62,0,59,133,122,0,59,190,182,0,59,232,242,0,59,4,47,1,59,17,107,1,59,15,167,1,59,255,226,1,59,225,30,2,59,179,90,2,59,120,150,2,59,45,210,2,59,212,13,3,59,108,73,3,59,246,132,3,59,112,192,3,59,220,251,3,59,58,55,4,59,136,114,4,59,200,173,4,59,248,232,4,59,
26,36,5,59,45,95,5,59,49,154,5,59,38,213,5,59,12,16,6,59,227,74,6,59,171,133,6,59,100,192,6,59,14,251,6,59,169,53,7,59,52,112,7,59,177,170,7,59,30,229,7,59,124,31,8,59,203,89,8,59,11,148,8,59,60,206,8,59,93,8,9,59,111,66,9,59,113,124,9,59,100,182,9,59,72,240,9,59,28,42,10,59,225,99,10,59,151,157,10,59,61,215,10,59,212,16,11,59,91,74,11,59,210,131,11,59,58,189,11,59,146,246,11,59,219,47,12,59,20,105,12,59,62,162,12,59,87,219,12,59,97,20,13,59,92,77,13,59,70,134,13,59,33,191,13,59,236,247,13,59,167,
48,14,59,83,105,14,59,238,161,14,59,122,218,14,59,245,18,15,59,97,75,15,59,189,131,15,59,9,188,15,59,69,244,15,59,112,44,16,59,140,100,16,59,152,156,16,59,148,212,16,59,127,12,17,59,90,68,17,59,38,124,17,59,225,179,17,59,139,235,17,59,38,35,18,59,176,90,18,59,43,146,18,59,148,201,18,59,238,0,19,59,55,56,19,59,112,111,19,59,152,166,19,59,176,221,19,59,184,20,20,59,175,75,20,59,149,130,20,59,108,185,20,59,49,240,20,59,230,38,21,59,139,93,21,59,31,148,21,59,162,202,21,59,21,1,22,59,119,55,22,59,201,
109,22,59,10,164,22,59,58,218,22,59,89,16,23,59,104,70,23,59,101,124,23,59,82,178,23,59,47,232,23,59,250,29,24,59,180,83,24,59,94,137,24,59,247,190,24,59,126,244,24,59,245,41,25,59,91,95,25,59,176,148,25,59,244,201,25,59,39,255,25,59,73,52,26,59,89,105,26,59,89,158,26,59,71,211,26,59,37,8,27,59,241,60,27,59,172,113,27,59,86,166,27,59,238,218,27,59,118,15,28,59,236,67,28,59,81,120,28,59,164,172,28,59,230,224,28,59,23,21,29,59,54,73,29,59,68,125,29,59,65,177,29,59,44,229,29,59,6,25,30,59,206,76,30,
59,133,128,30,59,42,180,30,59,190,231,30,59,64,27,31,59,177,78,31,59,16,130,31,59,93,181,31,59,153,232,31,59,195,27,32,59,220,78,32,59,226,129,32,59,215,180,32,59,187,231,32,59,140,26,33,59,76,77,33,59,250,127,33,59,150,178,33,59,32,229,33,59,153,23,34,59,255,73,34,59,84,124,34,59,150,174,34,59,199,224,34,59,230,18,35,59,243,68,35,59,238,118,35,59,214,168,35,59,173,218,35,59,114,12,36,59,36,62,36,59,197,111,36,59,83,161,36,59,207,210,36,59,58,4,37,59,145,53,37,59,215,102,37,59,11,152,37,59,44,201,
37,59,59,250,37,59,56,43,38,59,34,92,38,59,250,140,38,59,192,189,38,59,115,238,38,59,20,31,39,59,163,79,39,59,31,128,39,59,137,176,39,59,224,224,39,59,37,17,40,59,88,65,40,59,119,113,40,59,133,161,40,59,128,209,40,59,104,1,41,59,61,49,41,59,0,97,41,59,177,144,41,59,79,192,41,59,218,239,41,59,82,31,42,59,184,78,42,59,11,126,42,59,75,173,42,59,121,220,42,59,147,11,43,59,155,58,43,59,145,105,43,59,115,152,43,59,66,199,43,59,255,245,43,59,169,36,44,59,63,83,44,59,195,129,44,59,52,176,44,59,146,222,44,
59,221,12,45,59,21,59,45,59,58,105,45,59,76,151,45,59,75,197,45,59,55,243,45,59,16,33,46,59,213,78,46,59,136,124,46,59,39,170,46,59,180,215,46,59,45,5,47,59,147,50,47,59,229,95,47,59,37,141,47,59,81,186,47,59,106,231,47,59,111,20,48,59,98,65,48,59,65,110,48,59,12,155,48,59,197,199,48,59,105,244,48,59,251,32,49,59,121,77,49,59,228,121,49,59,59,166,49,59,127,210,49,59,175,254,49,59,204,42,50,59,213,86,50,59,203,130,50,59,173,174,50,59,124,218,50,59,55,6,51,59,222,49,51,59,114,93,51,59,243,136,51,59,
95,180,51,59,184,223,51,59,253,10,52,59,47,54,52,59,77,97,52,59,87,140,52,59,77,183,52,59,47,226,52,59,254,12,53,59,185,55,53,59,96,98,53,59,244,140,53,59,115,183,53,59,222,225,53,59,54,12,54,59,122,54,54,59,170,96,54,59,198,138,54,59,206,180,54,59,194,222,54,59,162,8,55,59,110,50,55,59,38,92,55,59,201,133,55,59,89,175,55,59,213,216,55,59,61,2,56,59,144,43,56,59,208,84,56,59,251,125,56,59,19,167,56,59,22,208,56,59,4,249,56,59,223,33,57,59,166,74,57,59,88,115,57,59,246,155,57,59,128,196,57,59,245,
236,57,59,86,21,58,59,163,61,58,59,219,101,58,59,0,142,58,59,15,182,58,59,11,222,58,59,242,5,59,59,197,45,59,59,131,85,59,59,45,125,59,59,194,164,59,59,67,204,59,59,175,243,59,59,7,27,60,59,74,66,60,59,121,105,60,59,148,144,60,59,153,183,60,59,139,222,60,59,103,5,61,59,47,44,61,59,226,82,61,59,129,121,61,59,11,160,61,59,129,198,61,59,225,236,61,59,46,19,62,59,101,57,62,59,135,95,62,59,149,133,62,59,142,171,62,59,115,209,62,59,66,247,62,59,253,28,63,59,163,66,63,59,52,104,63,59,177,141,63,59,24,179,
63,59,107,216,63,59,168,253,63,59,209,34,64,59,229,71,64,59,228,108,64,59,206,145,64,59,163,182,64,59,99,219,64,59,14,0,65,59,164,36,65,59,37,73,65,59,145,109,65,59,232,145,65,59,42,182,65,59,87,218,65,59,111,254,65,59,113,34,66,59,95,70,66,59,55,106,66,59,251,141,66,59,169,177,66,59,66,213,66,59,198,248,66,59,52,28,67,59,142,63,67,59,210,98,67,59,1,134,67,59,26,169,67,59,31,204,67,59,14,239,67,59,232,17,68,59,172,52,68,59,92,87,68,59,246,121,68,59,122,156,68,59,233,190,68,59,67,225,68,59,136,3,69,
59,183,37,69,59,208,71,69,59,212,105,69,59,195,139,69,59,157,173,69,59,96,207,69,59,15,241,69,59,168,18,70,59,43,52,70,59,153,85,70,59,241,118,70,59,52,152,70,59,97,185,70,59,121,218,70,59,123,251,70,59,104,28,71,59,63,61,71,59,0,94,71,59,172,126,71,59,66,159,71,59,194,191,71,59,45,224,71,59,130,0,72,59,193,32,72,59,235,64,72,59,255,96,72,59,253,128,72,59,229,160,72,59,184,192,72,59,117,224,72,59,28,0,73,59,173,31,73,59,41,63,73,59,143,94,73,59,222,125,73,59,25,157,73,59,61,188,73,59,75,219,73,59,
68,250,73,59,38,25,74,59,243,55,74,59,170,86,74,59,75,117,74,59,214,147,74,59,75,178,74,59,170,208,74,59,243,238,74,59,38,13,75,59,67,43,75,59,74,73,75,59,59,103,75,59,22,133,75,59,219,162,75,59,138,192,75,59,35,222,75,59,166,251,75,59,19,25,76,59,106,54,76,59,170,83,76,59,213,112,76,59,233,141,76,59,231,170,76,59,207,199,76,59,161,228,76,59,93,1,77,59,3,30,77,59,146,58,77,59,11,87,77,59,110,115,77,59,187,143,77,59,241,171,77,59,18,200,77,59,28,228,77,59,16,0,78,59,237,27,78,59,180,55,78,59,101,83,
78,59,0,111,78,59,132,138,78,59,242,165,78,59,73,193,78,59,139,220,78,59,182,247,78,59,202,18,79,59,200,45,79,59,176,72,79,59,129,99,79,59,60,126,79,59,225,152,79,59,111,179,79,59,231,205,79,59,72,232,79,59,147,2,80,59,199,28,80,59,229,54,80,59,236,80,80,59,221,106,80,59,183,132,80,59,123,158,80,59,40,184,80,59,191,209,80,59,63,235,80,59,169,4,81,59,252,29,81,59,56,55,81,59,94,80,81,59,109,105,81,59,102,130,81,59,72,155,81,59,20,180,81,59,200,204,81,59,103,229,81,59,238,253,81,59,95,22,82,59,185,
46,82,59,253,70,82,59,42,95,82,59,64,119,82,59,63,143,82,59,40,167,82,59,250,190,82,59,181,214,82,59,90,238,82,59,232,5,83,59,95,29,83,59,191,52,83,59,9,76,83,59,59,99,83,59,87,122,83,59,93,145,83,59,75,168,83,59,34,191,83,59,227,213,83,59,141,236,83,59,32,3,84,59,156,25,84,59,2,48,84,59,80,70,84,59,136,92,84,59,168,114,84,59,178,136,84,59,165,158,84,59,129,180,84,59,70,202,84,59,244,223,84,59,140,245,84,59,12,11,85,59,117,32,85,59,200,53,85,59,3,75,85,59,40,96,85,59,53,117,85,59,44,138,85,59,11,
159,85,59,212,179,85,59,133,200,85,59,32,221,85,59,163,241,85,59,16,6,86,59,101,26,86,59,164,46,86,59,203,66,86,59,219,86,86,59,212,106,86,59,182,126,86,59,130,146,86,59,53,166,86,59,210,185,86,59,88,205,86,59,199,224,86,59,30,244,86,59,95,7,87,59,136,26,87,59,154,45,87,59,149,64,87,59,121,83,87,59,70,102,87,59,251,120,87,59,154,139,87,59,33,158,87,59,145,176,87,59,234,194,87,59,44,213,87,59,86,231,87,59,105,249,87,59,101,11,88,59,74,29,88,59,24,47,88,59,206,64,88,59,109,82,88,59,245,99,88,59,101,
117,88,59,191,134,88,59,1,152,88,59,44,169,88,59,63,186,88,59,59,203,88,59,32,220,88,59,238,236,88,59,164,253,88,59,68,14,89,59,203,30,89,59,60,47,89,59,149,63,89,59,215,79,89,59,1,96,89,59,20,112,89,59,16,128,89,59,244,143,89,59,193,159,89,59,119,175,89,59,21,191,89,59,156,206,89,59,12,222,89,59,100,237,89,59,165,252,89,59,206,11,90,59,224,26,90,59,219,41,90,59,190,56,90,59,138,71,90,59,62,86,90,59,219,100,90,59,97,115,90,59,207,129,90,59,37,144,90,59,100,158,90,59,140,172,90,59,157,186,90,59,149,
200,90,59,119,214,90,59,65,228,90,59,243,241,90,59,142,255,90,59,17,13,91,59,125,26,91,59,210,39,91,59,15,53,91,59,52,66,91,59,66,79,91,59,57,92,91,59,24,105,91,59,223,117,91,59,143,130,91,59,40,143,91,59,169,155,91,59,18,168,91,59,100,180,91,59,158,192,91,59,193,204,91,59,204,216,91,59,192,228,91,59,156,240,91,59,96,252,91,59,13,8,92,59,163,19,92,59,32,31,92,59,135,42,92,59,213,53,92,59,12,65,92,59,44,76,92,59,52,87,92,59,36,98,92,59,253,108,92,59,190,119,92,59,103,130,92,59,249,140,92,59,116,151,
92,59,214,161,92,59,33,172,92,59,85,182,92,59,113,192,92,59,117,202,92,59,98,212,92,59,55,222,92,59,244,231,92,59,154,241,92,59,40,251,92,59,158,4,93,59,253,13,93,59,68,23,93,59,115,32,93,59,139,41,93,59,139,50,93,59,116,59,93,59,69,68,93,59,254,76,93,59,159,85,93,59,41,94,93,59,155,102,93,59,246,110,93,59,57,119,93,59,100,127,93,59,119,135,93,59,115,143,93,59,87,151,93,59,36,159,93,59,216,166,93,59,117,174,93,59,251,181,93,59,104,189,93,59,190,196,93,59,253,203,93,59,35,211,93,59,50,218,93,59,41,
225,93,59,9,232,93,59,208,238,93,59,129,245,93,59,25,252,93,59,153,2,94,59,2,9,94,59,84,15,94,59,141,21,94,59,175,27,94,59,185,33,94,59,171,39,94,59,134,45,94,59,73,51,94,59,244,56,94,59,135,62,94,59,3,68,94,59,103,73,94,59,179,78,94,59,232,83,94,59,4,89,94,59,9,94,94,59,247,98,94,59,204,103,94,59,138,108,94,59,48,113,94,59,191,117,94,59,53,122,94,59,148,126,94,59,219,130,94,59,11,135,94,59,34,139,94,59,34,143,94,59,11,147,94,59,219,150,94,59,148,154,94,59,53,158,94,59,190,161,94,59,47,165,94,59,
137,168,94,59,203,171,94,59,245,174,94,59,8,178,94,59,3,181,94,59,230,183,94,59,177,186,94,59,101,189,94,59,0,192,94,59,132,194,94,59,241,196,94,59,69,199,94,59,130,201,94,59,167,203,94,59,180,205,94,59,170,207,94,59,136,209,94,59,78,211,94,59,252,212,94,59,147,214,94,59,18,216,94,59,121,217,94,59,201,218,94,59,0,220,94,59,32,221,94,59,40,222,94,59,25,223,94,59,241,223,94,59,178,224,94,59,92,225,94,59,237,225,94,59,103,226,94,59,201,226,94,59,19,227,94,59,70,227,94,59,97,227,94,59,100,227,94,59,79,
227,94,59,35,227,94,59,223,226,94,59,131,226,94,59,16,226,94,59,133,225,94,59,226,224,94,59,39,224,94,59,85,223,94,59,107,222,94,59,105,221,94,59,79,220,94,59,30,219,94,59,213,217,94,59,117,216,94,59,252,214,94,59,108,213,94,59,197,211,94,59,5,210,94,59,46,208,94,59,63,206,94,59,57,204,94,59,27,202,94,59,229,199,94,59,151,197,94,59,50,195,94,59,181,192,94,59,33,190,94,59,116,187,94,59,176,184,94,59,213,181,94,59,225,178,94,59,214,175,94,59,180,172,94,59,121,169,94,59,39,166,94,59,190,162,94,59,60,
159,94,59,164,155,94,59,243,151,94,59,43,148,94,59,75,144,94,59,83,140,94,59,68,136,94,59,29,132,94,59,223,127,94,59,137,123,94,59,27,119,94,59,150,114,94,59,249,109,94,59,68,105,94,59,120,100,94,59,148,95,94,59,153,90,94,59,134,85,94,59,91,80,94,59,25,75,94,59,191,69,94,59,78,64,94,59,197,58,94,59,36,53,94,59,108,47,94,59,156,41,94,59,181,35,94,59,182,29,94,59,159,23,94,59,113,17,94,59,44,11,94,59,207,4,94,59,90,254,93,59,206,247,93,59,42,241,93,59,111,234,93,59,156,227,93,59,177,220,93,59,175,213,
93,59,150,206,93,59,101,199,93,59,28,192,93,59,188,184,93,59,69,177,93,59,182,169,93,59,15,162,93,59,81,154,93,59,123,146,93,59,142,138,93,59,138,130,93,59,110,122,93,59,58,114,93,59,240,105,93,59,141,97,93,59,19,89,93,59,130,80,93,59,217,71,93,59,25,63,93,59,65,54,93,59,82,45,93,59,76,36,93,59,46,27,93,59,248,17,93,59,171,8,93,59,71,255,92,59,204,245,92,59,57,236,92,59,142,226,92,59,204,216,92,59,243,206,92,59,3,197,92,59,251,186,92,59,219,176,92,59,165,166,92,59,87,156,92,59,241,145,92,59,116,135,
92,59,224,124,92,59,53,114,92,59,114,103,92,59,152,92,92,59,166,81,92,59,158,70,92,59,126,59,92,59,70,48,92,59,248,36,92,59,146,25,92,59,20,14,92,59,128,2,92,59,212,246,91,59,17,235,91,59,55,223,91,59,69,211,91,59,60,199,91,59,28,187,91,59,229,174,91,59,150,162,91,59,49,150,91,59,180,137,91,59,31,125,91,59,116,112,91,59,177,99,91,59,215,86,91,59,230,73,91,59,222,60,91,59,191,47,91,59,136,34,91,59,59,21,91,59,214,7,91,59,90,250,90,59,199,236,90,59,28,223,90,59,91,209,90,59,131,195,90,59,147,181,90,
59,140,167,90,59,110,153,90,59,57,139,90,59,237,124,90,59,138,110,90,59,16,96,90,59,127,81,90,59,214,66,90,59,23,52,90,59,65,37,90,59,83,22,90,59,79,7,90,59,51,248,89,59,1,233,89,59,183,217,89,59,87,202,89,59,223,186,89,59,81,171,89,59,171,155,89,59,239,139,89,59,28,124,89,59,49,108,89,59,48,92,89,59,24,76,89,59,233,59,89,59,163,43,89,59,70,27,89,59,210,10,89,59,71,250,88,59,165,233,88,59,237,216,88,59,29,200,88,59,55,183,88,59,58,166,88,59,38,149,88,59,251,131,88,59,185,114,88,59,97,97,88,59,241,
79,88,59,107,62,88,59,206,44,88,59,26,27,88,59,80,9,88,59,110,247,87,59,118,229,87,59,104,211,87,59,66,193,87,59,6,175,87,59,179,156,87,59,73,138,87,59,200,119,87,59,49,101,87,59,131,82,87,59,191,63,87,59,228,44,87,59,242,25,87,59,233,6,87,59,202,243,86,59,148,224,86,59,71,205,86,59,228,185,86,59,106,166,86,59,218,146,86,59,51,127,86,59,118,107,86,59,161,87,86,59,183,67,86,59,182,47,86,59,158,27,86,59,111,7,86,59,42,243,85,59,207,222,85,59,93,202,85,59,213,181,85,59,54,161,85,59,128,140,85,59,181,
119,85,59,210,98,85,59,217,77,85,59,202,56,85,59,165,35,85,59,104,14,85,59,22,249,84,59,173,227,84,59,46,206,84,59,152,184,84,59,236,162,84,59,42,141,84,59,81,119,84,59,98,97,84,59,92,75,84,59,64,53,84,59,14,31,84,59,198,8,84,59,103,242,83,59,242,219,83,59,103,197,83,59,197,174,83,59,14,152,83,59,64,129,83,59,91,106,83,59,97,83,83,59,80,60,83,59,41,37,83,59,236,13,83,59,153,246,82,59,48,223,82,59,176,199,82,59,27,176,82,59,111,152,82,59,173,128,82,59,213,104,82,59,231,80,82,59,226,56,82,59,200,32,
82,59,152,8,82,59,81,240,81,59,245,215,81,59,130,191,81,59,250,166,81,59,91,142,81,59,166,117,81,59,220,92,81,59,251,67,81,59,5,43,81,59,248,17,81,59,214,248,80,59,158,223,80,59,79,198,80,59,235,172,80,59,113,147,80,59,225,121,80,59,59,96,80,59,128,70,80,59,174,44,80,59,199,18,80,59,202,248,79,59,183,222,79,59,142,196,79,59,79,170,79,59,251,143,79,59,145,117,79,59,17,91,79,59,123,64,79,59,208,37,79,59,15,11,79,59,56,240,78,59,76,213,78,59,73,186,78,59,49,159,78,59,4,132,78,59,193,104,78,59,104,77,
78,59,250,49,78,59,118,22,78,59,220,250,77,59,45,223,77,59,104,195,77,59,142,167,77,59,158,139,77,59,153,111,77,59,126,83,77,59,77,55,77,59,7,27,77,59,172,254,76,59,59,226,76,59,181,197,76,59,25,169,76,59,104,140,76,59,161,111,76,59,197,82,76,59,212,53,76,59,205,24,76,59,177,251,75,59,128,222,75,59,57,193,75,59,221,163,75,59,107,134,75,59,228,104,75,59,72,75,75,59,151,45,75,59,209,15,75,59,245,241,74,59,4,212,74,59,253,181,74,59,226,151,74,59,177,121,74,59,108,91,74,59,17,61,74,59,160,30,74,59,27,
0,74,59,129,225,73,59,209,194,73,59,13,164,73,59,51,133,73,59,68,102,73,59,64,71,73,59,40,40,73,59,250,8,73,59,183,233,72,59,95,202,72,59,242,170,72,59,112,139,72,59,217,107,72,59,46,76,72,59,109,44,72,59,151,12,72,59,173,236,71,59,174,204,71,59,153,172,71,59,112,140,71,59,50,108,71,59,224,75,71,59,120,43,71,59,252,10,71,59,107,234,70,59,197,201,70,59,10,169,70,59,59,136,70,59,87,103,70,59,94,70,70,59,80,37,70,59,46,4,70,59,247,226,69,59,172,193,69,59,76,160,69,59,215,126,69,59,77,93,69,59,175,59,
69,59,253,25,69,59,54,248,68,59,90,214,68,59,106,180,68,59,101,146,68,59,76,112,68,59,30,78,68,59,220,43,68,59,133,9,68,59,26,231,67,59,155,196,67,59,7,162,67,59,95,127,67,59,162,92,67,59,209,57,67,59,236,22,67,59,242,243,66,59,228,208,66,59,194,173,66,59,139,138,66,59,64,103,66,59,225,67,66,59,110,32,66,59,230,252,65,59,74,217,65,59,154,181,65,59,214,145,65,59,254,109,65,59,17,74,65,59,17,38,65,59,252,1,65,59,211,221,64,59,150,185,64,59,69,149,64,59,224,112,64,59,103,76,64,59,218,39,64,59,57,3,64,
59,132,222,63,59,187,185,63,59,222,148,63,59,237,111,63,59,232,74,63,59,208,37,63,59,163,0,63,59,99,219,62,59,14,182,62,59,166,144,62,59,42,107,62,59,155,69,62,59,247,31,62,59,64,250,61,59,117,212,61,59,150,174,61,59,163,136,61,59,157,98,61,59,131,60,61,59,86,22,61,59,20,240,60,59,191,201,60,59,87,163,60,59,219,124,60,59,75,86,60,59,168,47,60,59,241,8,60,59,39,226,59,59,73,187,59,59,88,148,59,59,83,109,59,59,59,70,59,59,15,31,59,59,208,247,58,59,125,208,58,59,23,169,58,59,158,129,58,59,17,90,58,59,
113,50,58,59,190,10,58,59,247,226,57,59,29,187,57,59,48,147,57,59,47,107,57,59,27,67,57,59,244,26,57,59,186,242,56,59,109,202,56,59,12,162,56,59,152,121,56,59,18,81,56,59,120,40,56,59,203,255,55,59,11,215,55,59,55,174,55,59,81,133,55,59,88,92,55,59,76,51,55,59,44,10,55,59,250,224,54,59,181,183,54,59,93,142,54,59,242,100,54,59,116,59,54,59,227,17,54,59,64,232,53,59,137,190,53,59,192,148,53,59,228,106,53,59,245,64,53,59,243,22,53,59,222,236,52,59,183,194,52,59,125,152,52,59,49,110,52,59,209,67,52,59,
95,25,52,59,219,238,51,59,68,196,51,59,154,153,51,59,221,110,51,59,14,68,51,59,45,25,51,59,57,238,50,59,50,195,50,59,25,152,50,59,238,108,50,59,176,65,50,59,95,22,50,59,252,234,49,59,135,191,49,59,0,148,49,59,102,104,49,59,185,60,49,59,251,16,49,59,42,229,48,59,70,185,48,59,81,141,48,59,73,97,48,59,47,53,48,59,3,9,48,59,197,220,47,59,116,176,47,59,17,132,47,59,157,87,47,59,22,43,47,59,125,254,46,59,210,209,46,59,20,165,46,59,69,120,46,59,100,75,46,59,113,30,46,59,108,241,45,59,85,196,45,59,44,151,
45,59,241,105,45,59,164,60,45,59,69,15,45,59,212,225,44,59,82,180,44,59,190,134,44,59,24,89,44,59,96,43,44,59,150,253,43,59,187,207,43,59,206,161,43,59,207,115,43,59,191,69,43,59,157,23,43,59,105,233,42,59,36,187,42,59,205,140,42,59,100,94,42,59,234,47,42,59,95,1,42,59,194,210,41,59,19,164,41,59,83,117,41,59,129,70,41,59,159,23,41,59,170,232,40,59,164,185,40,59,141,138,40,59,101,91,40,59,43,44,40,59,224,252,39,59,131,205,39,59,22,158,39,59,151,110,39,59,6,63,39,59,101,15,39,59,178,223,38,59,239,175,
38,59,26,128,38,59,52,80,38,59,61,32,38,59,52,240,37,59,27,192,37,59,241,143,37,59,181,95,37,59,105,47,37,59,12,255,36,59,157,206,36,59,30,158,36,59,142,109,36,59,237,60,36,59,59,12,36,59,120,219,35,59,164,170,35,59,192,121,35,59,203,72,35,59,197,23,35,59,174,230,34,59,134,181,34,59,78,132,34,59,5,83,34,59,172,33,34,59,66,240,33,59,199,190,33,59,59,141,33,59,159,91,33,59,243,41,33,59,54,248,32,59,104,198,32,59,138,148,32,59,155,98,32,59,156,48,32,59,141,254,31,59,109,204,31,59,61,154,31,59,252,103,
31,59,171,53,31,59,74,3,31,59,216,208,30,59,87,158,30,59,197,107,30,59,34,57,30,59,112,6,30,59,173,211,29,59,218,160,29,59,247,109,29,59,4,59,29,59,1,8,29,59,237,212,28,59,202,161,28,59,150,110,28,59,83,59,28,59,255,7,28,59,156,212,27,59,41,161,27,59,165,109,27,59,18,58,27,59,111,6,27,59,188,210,26,59,249,158,26,59,39,107,26,59,68,55,26,59,82,3,26,59,80,207,25,59,63,155,25,59,29,103,25,59,236,50,25,59,172,254,24,59,92,202,24,59,252,149,24,59,140,97,24,59,13,45,24,59,126,248,23,59,224,195,23,59,51,
143,23,59,118,90,23,59,169,37,23,59,205,240,22,59,226,187,22,59,231,134,22,59,221,81,22,59,195,28,22,59,154,231,21,59,98,178,21,59,27,125,21,59,196,71,21,59,95,18,21,59,234,220,20,59,101,167,20,59,210,113,20,59,47,60,20,59,126,6,20,59,189,208,19,59,237,154,19,59,14,101,19,59,33,47,19,59,36,249,18,59,24,195,18,59,253,140,18,59,212,86,18,59,155,32,18,59,84,234,17,59,253,179,17,59,152,125,17,59,36,71,17,59,161,16,17,59,16,218,16,59,112,163,16,59,193,108,16,59,3,54,16,59,55,255,15,59,92,200,15,59,114,
145,15,59,122,90,15,59,115,35,15,59,94,236,14,59,58,181,14,59,8,126,14,59,199,70,14,59,120,15,14,59,26,216,13,59,174,160,13,59,51,105,13,59,170,49,13,59,19,250,12,59,110,194,12,59,186,138,12,59,248,82,12,59,40,27,12,59,73,227,11,59,92,171,11,59,97,115,11,59,88,59,11,59,65,3,11,59,28,203,10,59,233,146,10,59,167,90,10,59,88,34,10,59,250,233,9,59,143,177,9,59,22,121,9,59,142,64,9,59,249,7,9,59,86,207,8,59,165,150,8,59,231,93,8,59,26,37,8,59,64,236,7,59,87,179,7,59,98,122,7,59,94,65,7,59,77,8,7,59,46,
207,6,59,1,150,6,59,199,92,6,59,128,35,6,59,42,234,5,59,199,176,5,59,87,119,5,59,217,61,5,59,78,4,5,59,181,202,4,59,15,145,4,59,91,87,4,59,154,29,4,59,204,227,3,59,241,169,3,59,8,112,3,59,17,54,3,59,14,252,2,59,253,193,2,59,224,135,2,59,181,77,2,59,124,19,2,59,55,217,1,59,229,158,1,59,133,100,1,59,25,42,1,59,159,239,0,59,25,181,0,59,134,122,0,59,229,63,0,59,56,5,0,59,251,148,255,58,109,31,255,58,197,169,254,58,4,52,254,58,41,190,253,58,52,72,253,58,38,210,252,58,254,91,252,58,189,229,251,58,99,111,
251,58,239,248,250,58,98,130,250,58,188,11,250,58,253,148,249,58,37,30,249,58,52,167,248,58,41,48,248,58,6,185,247,58,202,65,247,58,117,202,246,58,8,83,246,58,129,219,245,58,226,99,245,58,42,236,244,58,90,116,244,58,113,252,243,58,112,132,243,58,86,12,243,58,36,148,242,58,217,27,242,58,119,163,241,58,252,42,241,58,105,178,240,58,189,57,240,58,250,192,239,58,31,72,239,58,43,207,238,58,32,86,238,58,253,220,237,58,194,99,237,58,112,234,236,58,5,113,236,58,131,247,235,58,234,125,235,58,57,4,235,58,112,
138,234,58,144,16,234,58,153,150,233,58,138,28,233,58,100,162,232,58,38,40,232,58,210,173,231,58,102,51,231,58,227,184,230,58,73,62,230,58,153,195,229,58,209,72,229,58,242,205,228,58,253,82,228,58,241,215,227,58,206,92,227,58,148,225,226,58,68,102,226,58,222,234,225,58,96,111,225,58,205,243,224,58,34,120,224,58,98,252,223,58,139,128,223,58,158,4,223,58,155,136,222,58,130,12,222,58,82,144,221,58,13,20,221,58,177,151,220,58,64,27,220,58,185,158,219,58,28,34,219,58,105,165,218,58,160,40,218,58,194,171,
217,58,206,46,217,58,197,177,216,58,166,52,216,58,113,183,215,58,40,58,215,58,201,188,214,58,84,63,214,58,202,193,213,58,44,68,213,58,120,198,212,58,175,72,212,58,208,202,211,58,221,76,211,58,213,206,210,58,185,80,210,58,135,210,209,58,64,84,209,58,229,213,208,58,117,87,208,58,241,216,207,58,88,90,207,58,171,219,206,58,233,92,206,58,19,222,205,58,40,95,205,58,41,224,204,58,22,97,204,58,239,225,203,58,179,98,203,58,100,227,202,58,0,100,202,58,137,228,201,58,254,100,201,58,95,229,200,58,172,101,200,
58,229,229,199,58,10,102,199,58,28,230,198,58,27,102,198,58,6,230,197,58,221,101,197,58,161,229,196,58,82,101,196,58,239,228,195,58,121,100,195,58,240,227,194,58,84,99,194,58],"i8",4,y.a+512E3);
Q([165,226,193,58,226,97,193,58,13,225,192,58,37,96,192,58,41,223,191,58,27,94,191,58,251,220,190,58,199,91,190,58,129,218,189,58,41,89,189,58,189,215,188,58,64,86,188,58,176,212,187,58,13,83,187,58,88,209,186,58,145,79,186,58,184,205,185,58,204,75,185,58,207,201,184,58,191,71,184,58,157,197,183,58,106,67,183,58,36,193,182,58,205,62,182,58,100,188,181,58,233,57,181,58,93,183,180,58,191,52,180,58,15,178,179,58,78,47,179,58,124,172,178,58,152,41,178,58,162,166,177,58,156,35,177,58,132,160,176,58,91,
29,176,58,33,154,175,58,214,22,175,58,122,147,174,58,13,16,174,58,143,140,173,58,0,9,173,58,97,133,172,58,176,1,172,58,239,125,171,58,30,250,170,58,60,118,170,58,73,242,169,58,70,110,169,58,51,234,168,58,15,102,168,58,219,225,167,58,151,93,167,58,66,217,166,58,222,84,166,58,105,208,165,58,229,75,165,58,80,199,164,58,172,66,164,58,247,189,163,58,51,57,163,58,96,180,162,58,124,47,162,58,137,170,161,58,135,37,161,58,117,160,160,58,83,27,160,58,34,150,159,58,226,16,159,58,147,139,158,58,52,6,158,58,198,
128,157,58,73,251,156,58,189,117,156,58,34,240,155,58,120,106,155,58,192,228,154,58,248,94,154,58,34,217,153,58,60,83,153,58,73,205,152,58,70,71,152,58,54,193,151,58,22,59,151,58,232,180,150,58,172,46,150,58,98,168,149,58,9,34,149,58,162,155,148,58,45,21,148,58,170,142,147,58,25,8,147,58,122,129,146,58,205,250,145,58,18,116,145,58,73,237,144,58,115,102,144,58,143,223,143,58,157,88,143,58,157,209,142,58,145,74,142,58,118,195,141,58,79,60,141,58,25,181,140,58,215,45,140,58,136,166,139,58,43,31,139,
58,193,151,138,58,74,16,138,58,198,136,137,58,53,1,137,58,151,121,136,58,236,241,135,58,53,106,135,58,113,226,134,58,160,90,134,58,195,210,133,58,217,74,133,58,226,194,132,58,223,58,132,58,208,178,131,58,180,42,131,58,141,162,130,58,89,26,130,58,24,146,129,58,204,9,129,58,116,129,128,58,31,242,127,58,62,225,126,58,70,208,125,58,54,191,124,58,15,174,123,58,208,156,122,58,122,139,121,58,13,122,120,58,137,104,119,58,238,86,118,58,60,69,117,58,115,51,116,58,148,33,115,58,158,15,114,58,146,253,112,58,
112,235,111,58,56,217,110,58,233,198,109,58,133,180,108,58,11,162,107,58,124,143,106,58,214,124,105,58,28,106,104,58,76,87,103,58,103,68,102,58,108,49,101,58,93,30,100,58,57,11,99,58,0,248,97,58,179,228,96,58,81,209,95,58,219,189,94,58,80,170,93,58,178,150,92,58,255,130,91,58,56,111,90,58,94,91,89,58,111,71,88,58,110,51,87,58,88,31,86,58,48,11,85,58,244,246,83,58,165,226,82,58,67,206,81,58,206,185,80,58,71,165,79,58,173,144,78,58,0,124,77,58,65,103,76,58,111,82,75,58,139,61,74,58,150,40,73,58,142,
19,72,58,116,254,70,58,73,233,69,58,12,212,68,58,190,190,67,58,94,169,66,58,237,147,65,58,107,126,64,58,216,104,63,58,52,83,62,58,127,61,61,58,185,39,60,58,227,17,59,58,252,251,57,58,5,230,56,58,254,207,55,58,231,185,54,58,192,163,53,58,137,141,52,58,66,119,51,58,236,96,50,58,134,74,49,58,16,52,48,58,140,29,47,58,248,6,46,58,85,240,44,58,163,217,43,58,227,194,42,58,19,172,41,58,53,149,40,58,73,126,39,58,78,103,38,58,69,80,37,58,46,57,36,58,9,34,35,58,214,10,34,58,150,243,32,58,71,220,31,58,235,196,
30,58,130,173,29,58,12,150,28,58,136,126,27,58,247,102,26,58,89,79,25,58,175,55,24,58,247,31,23,58,51,8,22,58,99,240,20,58,134,216,19,58,157,192,18,58,168,168,17,58,167,144,16,58,154,120,15,58,129,96,14,58,93,72,13,58,45,48,12,58,241,23,11,58,171,255,9,58,89,231,8,58,252,206,7,58,148,182,6,58,33,158,5,58,163,133,4,58,27,109,3,58,137,84,2,58,236,59,1,58,68,35,0,58,38,21,254,57,175,227,251,57,37,178,249,57,134,128,247,57,213,78,245,57,16,29,243,57,57,235,240,57,79,185,238,57,82,135,236,57,67,85,234,
57,35,35,232,57,241,240,229,57,173,190,227,57,88,140,225,57,242,89,223,57,123,39,221,57,244,244,218,57,92,194,216,57,181,143,214,57,253,92,212,57,54,42,210,57,96,247,207,57,122,196,205,57,134,145,203,57,131,94,201,57,114,43,199,57,82,248,196,57,37,197,194,57,233,145,192,57,161,94,190,57,75,43,188,57,232,247,185,57,120,196,183,57,252,144,181,57,116,93,179,57,223,41,177,57,63,246,174,57,147,194,172,57,219,142,170,57,25,91,168,57,76,39,166,57,116,243,163,57,145,191,161,57,165,139,159,57,174,87,157,57,
174,35,155,57,164,239,152,57,146,187,150,57,118,135,148,57,81,83,146,57,36,31,144,57,238,234,141,57,177,182,139,57,107,130,137,57,30,78,135,57,202,25,133,57,110,229,130,57,12,177,128,57,70,249,124,57,103,144,120,57,123,39,116,57,132,190,111,57,130,85,107,57,116,236,102,57,92,131,98,57,58,26,94,57,14,177,89,57,218,71,85,57,156,222,80,57,87,117,76,57,10,12,72,57,181,162,67,57,90,57,63,57,249,207,58,57,146,102,54,57,38,253,49,57,180,147,45,57,63,42,41,57,197,192,36,57,72,87,32,57,200,237,27,57,70,132,
23,57,193,26,19,57,59,177,14,57,180,71,10,57,45,222,5,57,165,116,1,57,58,22,250,56,45,67,241,56,34,112,232,56,26,157,223,56,23,202,214,56,25,247,205,56,34,36,197,56,49,81,188,56,73,126,179,56,106,171,170,56,149,216,161,56,203,5,153,56,13,51,144,56,92,96,135,56,112,27,125,56,71,118,107,56,61,209,89,56,84,44,72,56,142,135,54,56,237,226,36,56,114,62,19,56,33,154,1,56,244,235,223,55,0,164,188,55,103,92,153,55,96,42,108,55,185,156,37,55,195,31,190,54,16,31,196,53,251,28,56,182,242,34,233,182,198,26,59,
183,143,209,128,183,60,21,164,183,103,88,199,183,12,155,234,183,148,238,6,184,91,143,24,184,217,47,42,184,13,208,59,184,245,111,77,184,142,15,95,184,215,174,112,184,231,38,129,184,57,246,137,184,96,197,146,184,91,148,155,184,42,99,164,184,203,49,173,184,61,0,182,184,127,206,190,184,146,156,199,184,115,106,208,184,33,56,217,184,156,5,226,184,227,210,234,184,245,159,243,184,209,108,252,184,187,156,2,185,241,2,7,185,12,105,11,185,9,207,15,185,232,52,20,185,170,154,24,185,78,0,29,185,211,101,33,185,56,
203,37,185,126,48,42,185,164,149,46,185,169,250,50,185,141,95,55,185,80,196,59,185,240,40,64,185,110,141,68,185,201,241,72,185,1,86,77,185,20,186,81,185,4,30,86,185,206,129,90,185,115,229,94,185,243,72,99,185,76,172,103,185,126,15,108,185,138,114,112,185,109,213,116,185,41,56,121,185,188,154,125,185,147,254,128,185,179,47,131,185,191,96,133,185,181,145,135,185,150,194,137,185,97,243,139,185,22,36,142,185,181,84,144,185,61,133,146,185,175,181,148,185,11,230,150,185,79,22,153,185,124,70,155,185,145,
118,157,185,142,166,159,185,116,214,161,185,65,6,164,185,246,53,166,185,146,101,168,185,22,149,170,185,128,196,172,185,209,243,174,185,8,35,177,185,37,82,179,185,41,129,181,185,18,176,183,185,224,222,185,185,148,13,188,185,44,60,190,185,170,106,192,185,12,153,194,185,82,199,196,185,125,245,198,185,139,35,201,185,125,81,203,185,82,127,205,185,10,173,207,185,166,218,209,185,36,8,212,185,132,53,214,185,199,98,216,185,236,143,218,185,242,188,220,185,218,233,222,185,164,22,225,185,78,67,227,185,218,111,
229,185,69,156,231,185,146,200,233,185,190,244,235,185,203,32,238,185,183,76,240,185,131,120,242,185,46,164,244,185,183,207,246,185,32,251,248,185,103,38,251,185,141,81,253,185,145,124,255,185,185,211,0,186,25,233,1,186,103,254,2,186,164,19,4,186,207,40,5,186,233,61,6,186,241,82,7,186,231,103,8,186,203,124,9,186,157,145,10,186,93,166,11,186,11,187,12,186,166,207,13,186,46,228,14,186,164,248,15,186,7,13,17,186,88,33,18,186,149,53,19,186,191,73,20,186,214,93,21,186,217,113,22,186,201,133,23,186,166,
153,24,186,111,173,25,186,36,193,26,186,197,212,27,186,82,232,28,186,202,251,29,186,47,15,31,186,127,34,32,186,187,53,33,186,226,72,34,186,245,91,35,186,242,110,36,186,219,129,37,186,175,148,38,186,109,167,39,186,22,186,40,186,170,204,41,186,41,223,42,186,145,241,43,186,228,3,45,186,33,22,46,186,72,40,47,186,89,58,48,186,84,76,49,186,57,94,50,186,7,112,51,186,191,129,52,186,96,147,53,186,234,164,54,186,94,182,55,186,186,199,56,186,0,217,57,186,46,234,58,186,69,251,59,186,68,12,61,186,44,29,62,186,
252,45,63,186,181,62,64,186,85,79,65,186,222,95,66,186,79,112,67,186,167,128,68,186,231,144,69,186,15,161,70,186,30,177,71,186,20,193,72,186,242,208,73,186,183,224,74,186,98,240,75,186,245,255,76,186,111,15,78,186,207,30,79,186,21,46,80,186,66,61,81,186,86,76,82,186,80,91,83,186,48,106,84,186,245,120,85,186,161,135,86,186,51,150,87,186,170,164,88,186,7,179,89,186,73,193,90,186,112,207,91,186,125,221,92,186,111,235,93,186,70,249,94,186,2,7,96,186,162,20,97,186,39,34,98,186,145,47,99,186,223,60,100,
186,18,74,101,186,41,87,102,186,36,100,103,186,3,113,104,186,198,125,105,186,108,138,106,186,246,150,107,186,100,163,108,186,182,175,109,186,234,187,110,186,2,200,111,186,253,211,112,186,219,223,113,186,156,235,114,186,64,247,115,186,199,2,117,186,48,14,118,186,123,25,119,186,169,36,120,186,185,47,121,186,171,58,122,186,127,69,123,186,54,80,124,186,206,90,125,186,71,101,126,186,163,111,127,186,240,60,128,186,255,193,128,186,254,70,129,186,239,203,129,186,208,80,130,186,161,213,130,186,98,90,131,186,
21,223,131,186,183,99,132,186,73,232,132,186,204,108,133,186,63,241,133,186,162,117,134,186,245,249,134,186,56,126,135,186,107,2,136,186,142,134,136,186,161,10,137,186,163,142,137,186,149,18,138,186,119,150,138,186,72,26,139,186,9,158,139,186,186,33,140,186,90,165,140,186,233,40,141,186,103,172,141,186,213,47,142,186,50,179,142,186,126,54,143,186,186,185,143,186,228,60,144,186,254,191,144,186,6,67,145,186,253,197,145,186,227,72,146,186,184,203,146,186,124,78,147,186,46,209,147,186,207,83,148,186,
95,214,148,186,221,88,149,186,73,219,149,186,164,93,150,186,238,223,150,186,37,98,151,186,75,228,151,186,95,102,152,186,97,232,152,186,82,106,153,186,48,236,153,186,253,109,154,186,183,239,154,186,95,113,155,186,245,242,155,186,121,116,156,186,235,245,156,186,74,119,157,186,151,248,157,186,209,121,158,186,249,250,158,186,14,124,159,186,17,253,159,186,1,126,160,186,223,254,160,186,169,127,161,186,97,0,162,186,6,129,162,186,153,1,163,186,24,130,163,186,132,2,164,186,221,130,164,186,35,3,165,186,86,
131,165,186,118,3,166,186,130,131,166,186,123,3,167,186,97,131,167,186,51,3,168,186,242,130,168,186,157,2,169,186,52,130,169,186,184,1,170,186,41,129,170,186,133,0,171,186,206,127,171,186,3,255,171,186,36,126,172,186,49,253,172,186,42,124,173,186,15,251,173,186,224,121,174,186,157,248,174,186,69,119,175,186,217,245,175,186,89,116,176,186,197,242,176,186,28,113,177,186,95,239,177,186,141,109,178,186,167,235,178,186,172,105,179,186,156,231,179,186,120,101,180,186,62,227,180,186,240,96,181,186,141,222,
181,186,22,92,182,186,137,217,182,186,231,86,183,186,48,212,183,186,100,81,184,186,131,206,184,186,140,75,185,186,129,200,185,186,96,69,186,186,41,194,186,186,221,62,187,186,124,187,187,186,5,56,188,186,120,180,188,186,214,48,189,186,30,173,189,186,81,41,190,186,109,165,190,186,116,33,191,186,101,157,191,186,64,25,192,186,5,149,192,186,180,16,193,186,76,140,193,186,207,7,194,186,59,131,194,186,145,254,194,186,209,121,195,186,251,244,195,186,14,112,196,186,11,235,196,186,241,101,197,186,192,224,197,
186,122,91,198,186,28,214,198,186,168,80,199,186,29,203,199,186,123,69,200,186,194,191,200,186,242,57,201,186,12,180,201,186,14,46,202,186,250,167,202,186,206,33,203,186,139,155,203,186,49,21,204,186,192,142,204,186,55,8,205,186,151,129,205,186,224,250,205,186,17,116,206,186,43,237,206,186,45,102,207,186,24,223,207,186,235,87,208,186,166,208,208,186,74,73,209,186,213,193,209,186,73,58,210,186,165,178,210,186,234,42,211,186,22,163,211,186,42,27,212,186,38,147,212,186,10,11,213,186,213,130,213,186,
137,250,213,186,36,114,214,186,167,233,214,186,18,97,215,186,100,216,215,186,157,79,216,186,191,198,216,186,199,61,217,186,183,180,217,186,142,43,218,186,77,162,218,186,243,24,219,186,128,143,219,186,244,5,220,186,79,124,220,186,146,242,220,186,187,104,221,186,203,222,221,186,194,84,222,186,160,202,222,186,101,64,223,186,17,182,223,186,163,43,224,186,28,161,224,186,124,22,225,186,194,139,225,186,239,0,226,186,2,118,226,186,252,234,226,186,220,95,227,186,162,212,227,186,79,73,228,186,225,189,228,186,
90,50,229,186,186,166,229,186,255,26,230,186,42,143,230,186,60,3,231,186,51,119,231,186,16,235,231,186,211,94,232,186,124,210,232,186,11,70,233,186,127,185,233,186,217,44,234,186,25,160,234,186,63,19,235,186,73,134,235,186,58,249,235,186,15,108,236,186,203,222,236,186,107,81,237,186,241,195,237,186,92,54,238,186,172,168,238,186,226,26,239,186,252,140,239,186,252,254,239,186,225,112,240,186,170,226,240,186,89,84,241,186,237,197,241,186,101,55,242,186,194,168,242,186,4,26,243,186,43,139,243,186,54,
252,243,186,38,109,244,186,250,221,244,186,179,78,245,186,81,191,245,186,210,47,246,186,57,160,246,186,131,16,247,186,178,128,247,186,197,240,247,186,189,96,248,186,152,208,248,186,88,64,249,186,252,175,249,186,131,31,250,186,239,142,250,186,63,254,250,186,114,109,251,186,138,220,251,186,133,75,252,186,100,186,252,186,38,41,253,186,205,151,253,186,87,6,254,186,196,116,254,186,21,227,254,186,74,81,255,186,98,191,255,186,175,22,0,187,158,77,0,187,127,132,0,187,82,187,0,187,22,242,0,187,204,40,1,187,
115,95,1,187,12,150,1,187,151,204,1,187,19,3,2,187,128,57,2,187,223,111,2,187,47,166,2,187,113,220,2,187,164,18,3,187,201,72,3,187,223,126,3,187,230,180,3,187,223,234,3,187,200,32,4,187,164,86,4,187,112,140,4,187,45,194,4,187,220,247,4,187,124,45,5,187,13,99,5,187,143,152,5,187,2,206,5,187,103,3,6,187,188,56,6,187,3,110,6,187,58,163,6,187,99,216,6,187,124,13,7,187,135,66,7,187,130,119,7,187,111,172,7,187,76,225,7,187,26,22,8,187,217,74,8,187,137,127,8,187,41,180,8,187,186,232,8,187,61,29,9,187,176,
81,9,187,19,134,9,187,103,186,9,187,172,238,9,187,226,34,10,187,8,87,10,187,31,139,10,187,39,191,10,187,31,243,10,187,8,39,11,187,225,90,11,187,171,142,11,187,101,194,11,187,16,246,11,187,171,41,12,187,54,93,12,187,178,144,12,187,31,196,12,187,124,247,12,187,201,42,13,187,6,94,13,187,52,145,13,187,82,196,13,187,96,247,13,187,95,42,14,187,78,93,14,187,45,144,14,187,252,194,14,187,187,245,14,187,107,40,15,187,10,91,15,187,154,141,15,187,26,192,15,187,138,242,15,187,234,36,16,187,58,87,16,187,122,137,
16,187,170,187,16,187,202,237,16,187,218,31,17,187,218,81,17,187,201,131,17,187,169,181,17,187,120,231,17,187,56,25,18,187,231,74,18,187,134,124,18,187,20,174,18,187,147,223,18,187,1,17,19,187,95,66,19,187,173,115,19,187,234,164,19,187,23,214,19,187,52,7,20,187,64,56,20,187,60,105,20,187,40,154,20,187,3,203,20,187,205,251,20,187,136,44,21,187,49,93,21,187,202,141,21,187,83,190,21,187,203,238,21,187,51,31,22,187,138,79,22,187,208,127,22,187,6,176,22,187,43,224,22,187,63,16,23,187,67,64,23,187,54,112,
23,187,24,160,23,187,234,207,23,187,171,255,23,187,91,47,24,187,250,94,24,187,136,142,24,187,6,190,24,187,115,237,24,187,206,28,25,187,25,76,25,187,83,123,25,187,125,170,25,187,149,217,25,187,156,8,26,187,146,55,26,187,119,102,26,187,76,149,26,187,15,196,26,187,193,242,26,187,98,33,27,187,242,79,27,187,113,126,27,187,222,172,27,187,59,219,27,187,134,9,28,187,192,55,28,187,233,101,28,187,1,148,28,187,8,194,28,187,253,239,28,187,225,29,29,187,179,75,29,187,117,121,29,187,37,167,29,187,195,212,29,187,
81,2,30,187,204,47,30,187,55,93,30,187,144,138,30,187,216,183,30,187,14,229,30,187,50,18,31,187,70,63,31,187,71,108,31,187,55,153,31,187,22,198,31,187,227,242,31,187,158,31,32,187,72,76,32,187,224,120,32,187,103,165,32,187,220,209,32,187,63,254,32,187,145,42,33,187,208,86,33,187,254,130,33,187,27,175,33,187,37,219,33,187,30,7,34,187,5,51,34,187,218,94,34,187,158,138,34,187,79,182,34,187,239,225,34,187,125,13,35,187,248,56,35,187,98,100,35,187,186,143,35,187,0,187,35,187,52,230,35,187,87,17,36,187,
103,60,36,187,101,103,36,187,81,146,36,187,43,189,36,187,243,231,36,187,168,18,37,187,76,61,37,187,222,103,37,187,93,146,37,187,202,188,37,187,37,231,37,187,110,17,38,187,165,59,38,187,202,101,38,187,220,143,38,187,220,185,38,187,202,227,38,187,165,13,39,187,110,55,39,187,37,97,39,187,201,138,39,187,91,180,39,187,219,221,39,187,73,7,40,187,163,48,40,187,236,89,40,187,34,131,40,187,70,172,40,187,87,213,40,187,86,254,40,187,66,39,41,187,27,80,41,187,226,120,41,187,151,161,41,187,57,202,41,187,200,242,
41,187,69,27,42,187,175,67,42,187,7,108,42,187,76,148,42,187,126,188,42,187,158,228,42,187,171,12,43,187,165,52,43,187,140,92,43,187,97,132,43,187,35,172,43,187,210,211,43,187,111,251,43,187,248,34,44,187,111,74,44,187,211,113,44,187,36,153,44,187,98,192,44,187,142,231,44,187,166,14,45,187,172,53,45,187,158,92,45,187,126,131,45,187,75,170,45,187,5,209,45,187,171,247,45,187,63,30,46,187,192,68,46,187,46,107,46,187,136,145,46,187,208,183,46,187,4,222,46,187,38,4,47,187,52,42,47,187,47,80,47,187,24,
118,47,187,236,155,47,187,174,193,47,187,93,231,47,187,248,12,48,187,128,50,48,187,245,87,48,187,87,125,48,187,165,162,48,187,225,199,48,187,9,237,48,187,29,18,49,187,30,55,49,187,12,92,49,187,231,128,49,187,174,165,49,187,98,202,49,187,3,239,49,187,144,19,50,187,9,56,50,187,112,92,50,187,195,128,50,187,2,165,50,187,46,201,50,187,70,237,50,187,75,17,51,187,61,53,51,187,26,89,51,187,229,124,51,187,156,160,51,187,63,196,51,187,206,231,51,187,74,11,52,187,179,46,52,187,8,82,52,187,73,117,52,187,118,
152,52,187,144,187,52,187,150,222,52,187,137,1,53,187,104,36,53,187,51,71,53,187,234,105,53,187,142,140,53,187,29,175,53,187,154,209,53,187,2,244,53,187,86,22,54,187,151,56,54,187,196,90,54,187,221,124,54,187,226,158,54,187,211,192,54,187,177,226,54,187,122,4,55,187,48,38,55,187,209,71,55,187,95,105,55,187,217,138,55,187,63,172,55,187,145,205,55,187,207,238,55,187,248,15,56,187,14,49,56,187,16,82,56,187,254,114,56,187,216,147,56,187,158,180,56,187,79,213,56,187,237,245,56,187,118,22,57,187,236,54,
57,187,77,87,57,187,154,119,57,187,211,151,57,187,248,183,57,187,8,216,57,187,5,248,57,187,237,23,58,187,193,55,58,187,129,87,58,187,45,119,58,187,196,150,58,187,71,182,58,187,182,213,58,187,16,245,58,187,87,20,59,187,137,51,59,187,166,82,59,187,176,113,59,187,164,144,59,187,133,175,59,187,81,206,59,187,9,237,59,187,173,11,60,187,60,42,60,187,182,72,60,187,29,103,60,187,110,133,60,187,172,163,60,187,213,193,60,187,233,223,60,187,233,253,60,187,212,27,61,187,171,57,61,187,110,87,61,187,28,117,61,187,
181,146,61,187,58,176,61,187,170,205,61,187,6,235,61,187,77,8,62,187,127,37,62,187,157,66,62,187,167,95,62,187,155,124,62,187,123,153,62,187,71,182,62,187,253,210,62,187,159,239,62,187,45,12,63,187,165,40,63,187,9,69,63,187,88,97,63,187,147,125,63,187,185,153,63,187,202,181,63,187,198,209,63,187,173,237,63,187,128,9,64,187,62,37,64,187,231,64,64,187,123,92,64,187,251,119,64,187,102,147,64,187,187,174,64,187,252,201,64,187,40,229,64,187,64,0,65,187,66,27,65,187,47,54,65,187,8,81,65,187,204,107,65,
187,122,134,65,187,20,161,65,187,153,187,65,187,9,214,65,187,100,240,65,187,170,10,66,187,218,36,66,187,246,62,66,187,253,88,66,187,239,114,66,187,204,140,66,187,148,166,66,187,71,192,66,187,229,217,66,187,109,243,66,187,225,12,67,187,64,38,67,187,137,63,67,187,189,88,67,187,221,113,67,187,231,138,67,187,220,163,67,187,188,188,67,187,134,213,67,187,60,238,67,187,220,6,68,187,104,31,68,187,222,55,68,187,63,80,68,187,138,104,68,187,193,128,68,187,226,152,68,187,238,176,68,187,229,200,68,187,198,224,
68,187,146,248,68,187,73,16,69,187,235,39,69,187,119,63,69,187,239,86,69,187,80,110,69,187,157,133,69,187,212,156,69,187,246,179,69,187,3,203,69,187,250,225,69,187,220,248,69,187,168,15,70,187,95,38,70,187,1,61,70,187,141,83,70,187,4,106,70,187,102,128,70,187,178,150,70,187,233,172,70,187,10,195,70,187,22,217,70,187,12,239,70,187,237,4,71,187,185,26,71,187,111,48,71,187,15,70,71,187,155,91,71,187,16,113,71,187,112,134,71,187,187,155,71,187,240,176,71,187,16,198,71,187,26,219,71,187,14,240,71,187,
237,4,72,187,182,25,72,187,106,46,72,187,8,67,72,187,145,87,72,187,4,108,72,187,98,128,72,187,170,148,72,187,220,168,72,187,249,188,72,187,0,209,72,187,241,228,72,187,205,248,72,187,147,12,73,187,68,32,73,187,223,51,73,187,100,71,73,187,211,90,73,187,45,110,73,187,113,129,73,187,160,148,73,187,185,167,73,187,188,186,73,187,169,205,73,187,129,224,73,187,67,243,73,187,239,5,74,187,133,24,74,187,6,43,74,187,113,61,74,187,198,79,74,187,6,98,74,187,47,116,74,187,67,134,74,187,65,152,74,187,42,170,74,187,
252,187,74,187,185,205,74,187,96,223,74,187,241,240,74,187,108,2,75,187,210,19,75,187,33,37,75,187,91,54,75,187,127,71,75,187,141,88,75,187,133,105,75,187,103,122,75,187,52,139,75,187,234,155,75,187,139,172,75,187,22,189,75,187,139,205,75,187,234,221,75,187,51,238,75,187,102,254,75,187,131,14,76,187,139,30,76,187,124,46,76,187,88,62,76,187,29,78,76,187,205,93,76,187,103,109,76,187,234,124,76,187,88,140,76,187,176,155,76,187,242,170,76,187,29,186,76,187,51,201,76,187,51,216,76,187,29,231,76,187,241,
245,76,187,175,4,77,187,86,19,77,187,232,33,77,187,100,48,77,187,202,62,77,187,26,77,77,187,83,91,77,187,119,105,77,187,133,119,77,187,124,133,77,187,94,147,77,187,41,161,77,187,223,174,77,187,126,188,77,187,7,202,77,187,123,215,77,187,216,228,77,187,31,242,77,187,80,255,77,187,107,12,78,187,111,25,78,187,94,38,78,187,55,51,78,187,249,63,78,187,165,76,78,187,60,89,78,187,188,101,78,187,38,114,78,187,122,126,78,187,183,138,78,187,223,150,78,187,240,162,78,187,236,174,78,187,209,186,78,187,160,198,
78,187,88,210,78,187,251,221,78,187,136,233,78,187,254,244,78,187,94,0,79,187,168,11,79,187,220,22,79,187,249,33,79,187,1,45,79,187,242,55,79,187,205,66,79,187,146,77,79,187,64,88,79,187,217,98,79,187,91,109,79,187,199,119,79,187,29,130,79,187,92,140,79,187,134,150,79,187,153,160,79,187,150,170,79,187,124,180,79,187,77,190,79,187,7,200,79,187,171,209,79,187,57,219,79,187,176,228,79,187,17,238,79,187,92,247,79,187,145,0,80,187,175,9,80,187,184,18,80,187,170,27,80,187,133,36,80,187,75,45,80,187,250,
53,80,187,147,62,80,187,21,71,80,187,129,79,80,187,215,87,80,187,23,96,80,187,65,104,80,187,84,112,80,187,81,120,80,187,55,128,80,187,8,136,80,187,193,143,80,187,101,151,80,187,243,158,80,187,106,166,80,187,202,173,80,187,21,181,80,187,73,188,80,187,103,195,80,187,111,202,80,187,96,209,80,187,59,216,80,187,255,222,80,187,174,229,80,187,70,236,80,187,199,242,80,187,51,249,80,187,136,255,80,187,198,5,81,187,239,11,81,187,1,18,81,187,252,23,81,187,226,29,81,187,177,35,81,187,105,41,81,187,12,47,81,187,
152,52,81,187,13,58,81,187,109,63,81,187,182,68,81,187,232,73,81,187,5,79,81,187,11,84,81,187,250,88,81,187,211,93,81,187,150,98,81,187,67,103,81,187,217,107,81,187,89,112,81,187,195,116,81,187,22,121,81,187,83,125,81,187,121,129,81,187,137,133,81,187,131,137,81,187,102,141,81,187,51,145,81,187,234,148,81,187,138,152,81,187,20,156,81,187,136,159,81,187,229,162,81,187,44,166,81,187,93,169,81,187,119,172,81,187,123,175,81,187,104,178,81,187,63,181,81,187,0,184,81,187,170,186,81,187,62,189,81,187,188,
191,81,187,35,194,81,187,116,196,81,187,175,198,81,187,211,200,81,187,225,202,81,187,217,204,81,187,186,206,81,187,133,208,81,187,57,210,81,187,215,211,81,187,95,213,81,187,208,214,81,187,43,216,81,187,112,217,81,187,158,218,81,187,182,219,81,187,184,220,81,187,163,221,81,187,120,222,81,187,55,223,81,187,223,223,81,187,113,224,81,187,236,224,81,187,81,225,81,187,160,225,81,187,217,225,81,187,251,225,81,187,7,226,81,187,252,225,81,187,219,225,81,187,164,225,81,187,86,225,81,187,242,224,81,187,120,
224,81,187,232,223,81,187,65,223,81,187,131,222,81,187,176,221,81,187,198,220,81,187,198,219,81,187,175,218,81,187,130,217,81,187,63,216,81,187,230,214,81,187,118,213,81,187,240,211,81,187,83,210,81,187,160,208,81,187,215,206,81,187,248,204,81,187,2,203,81,187,246,200,81,187,212,198,81,187,155,196,81,187,76,194,81,187,231,191,81,187,107,189,81,187,217,186,81,187,49,184,81,187,115,181,81,187,158,178,81,187,179,175,81,187,178,172,81,187,154,169,81,187,108,166,81,187,40,163,81,187,206,159,81,187,93,
156,81,187,214,152,81,187,57,149,81,187,133,145,81,187,188,141,81,187,220,137,81,187,229,133,81,187,217,129,81,187,182,125,81,187,125,121,81,187,46,117,81,187,200,112,81,187,77,108,81,187,187,103,81,187,19,99,81,187,84,94,81,187,127,89,81,187,149,84,81,187,147,79,81,187,124,74,81,187,79,69,81,187,11,64,81,187,177,58,81,187,65,53,81,187,186,47,81,187,30,42,81,187,107,36,81,187,162,30,81,187,195,24,81,187,206,18,81,187,194,12,81,187,160,6,81,187,105,0,81,187,26,250,80,187,182,243,80,187,60,237,80,187,
171,230,80,187,5,224,80,187,72,217,80,187,117,210,80,187,140,203,80,187,141,196,80,187,119,189,80,187,76,182,80,187,10,175,80,187,178,167,80,187,68,160,80,187,192,152,80,187,38,145,80,187,118,137,80,187,176,129,80,187,211,121,80,187,225,113,80,187,216,105,80,187,186,97,80,187,133,89,80,187,58,81,80,187,217,72,80,187,98,64,80,187,213,55,80,187,50,47,80,187,121,38,80,187,170,29,80,187,196,20,80,187,201,11,80,187,184,2,80,187,144,249,79,187,83,240,79,187,0,231,79,187,150,221,79,187,23,212,79,187,129,
202,79,187,214,192,79,187,21,183,79,187,61,173,79,187,80,163,79,187,76,153,79,187,51,143,79,187,4,133,79,187,191,122,79,187,99,112,79,187,242,101,79,187,107,91,79,187,206,80,79,187,27,70,79,187,82,59,79,187,115,48,79,187,127,37,79,187,116,26,79,187,83,15,79,187,29,4,79,187,208,248,78,187,110,237,78,187,246,225,78,187,104,214,78,187,196,202,78,187,10,191,78,187,59,179,78,187,85,167,78,187,90,155,78,187,73,143,78,187,34,131,78,187,229,118,78,187,146,106,78,187,42,94,78,187,171,81,78,187,23,69,78,187,
109,56,78,187,174,43,78,187,216,30,78,187,237,17,78,187,236,4,78,187,213,247,77,187,168,234,77,187,102,221,77,187,14,208,77,187,160,194,77,187,29,181,77,187,131,167,77,187,212,153,77,187,16,140,77,187,53,126,77,187,69,112,77,187,63,98,77,187,36,84,77,187,243,69,77,187,172,55,77,187,79,41,77,187,221,26,77,187,85,12,77,187,184,253,76,187,5,239,76,187,60,224,76,187,93,209,76,187,105,194,76,187,96,179,76,187,65,164,76,187,12,149,76,187,194,133,76,187,98,118,76,187,236,102,76,187,97,87,76,187,192,71,76,
187,10,56,76,187,62,40,76,187,93,24,76,187,102,8,76,187,90,248,75,187,56,232,75,187,1,216,75,187,180,199,75,187,82,183,75,187,218,166,75,187,77,150,75,187,170,133,75,187,242,116,75,187,36,100,75,187,65,83,75,187,72,66,75,187,58,49,75,187,23,32,75,187,222,14,75,187,144,253,74,187,45,236,74,187,180,218,74,187,37,201,74,187,130,183,74,187,201,165,74,187,250,147,74,187,23,130,74,187,30,112,74,187,15,94,74,187,235,75,74,187,178,57,74,187,100,39,74,187,1,21,74,187,136,2,74,187,250,239,73,187,86,221,73,
187,158,202,73,187,208,183,73,187,236,164,73,187,244,145,73,187,231,126,73,187,196,107,73,187,140,88,73,187,63,69,73,187,220,49,73,187,101,30,73,187,216,10,73,187,54,247,72,187,127,227,72,187,179,207,72,187,210,187,72,187,219,167,72,187,208,147,72,187,175,127,72,187,121,107,72,187,47,87,72,187,207,66,72,187,90,46,72,187,208,25,72,187,49,5,72,187,125,240,71,187,180,219,71,187,214,198,71,187,227,177,71,187,219,156,71,187,190,135,71,187,139,114,71,187,68,93,71,187,233,71,71,187,120,50,71,187,242,28,
71,187,87,7,71,187,167,241,70,187,227,219,70,187,9,198,70,187,27,176,70,187,24,154,70,187,0,132,70,187,211,109,70,187,145,87,70,187,58,65,70,187,207,42,70,187,78,20,70,187,185,253,69,187,15,231,69,187,81,208,69,187,125,185,69,187,149,162,69,187,152,139,69,187,135,116,69,187,96,93,69,187,37,70,69,187,213,46,69,187,113,23,69,187,247,255,68,187,106,232,68,187,199,208,68,187,16,185,68,187,68,161,68,187,99,137,68,187,110,113,68,187,101,89,68,187,70,65,68,187,19,41,68,187,204,16,68,187,112,248,67,187,255,
223,67,187,122,199,67,187,224,174,67,187,50,150,67,187,111,125,67,187,152,100,67,187,173,75,67,187,172,50,67,187,152,25,67,187,111,0,67,187,49,231,66,187,223,205,66,187,121,180,66,187,254,154,66,187,111,129,66,187,203,103,66,187,19,78,66,187,71,52,66,187,102,26,66,187,113,0,66,187,104,230,65,187,74,204,65,187,24,178,65,187,210,151,65,187,120,125,65,187,9,99,65,187,134,72,65,187,238,45,65,187,67,19,65,187,131,248,64,187,175,221,64,187,199,194,64,187,203,167,64,187,186,140,64,187,150,113,64,187,93,
86,64,187,16,59,64,187,175,31,64,187,58,4,64,187,177,232,63,187,19,205,63,187,98,177,63,187,157,149,63,187,195,121,63,187,213,93,63,187,212,65,63,187,190,37,63,187,149,9,63,187,87,237,62,187,6,209,62,187,160,180,62,187,39,152,62,187,154,123,62,187,248,94,62,187,67,66,62,187,122,37,62,187,157,8,62,187,172,235,61,187,168,206,61,187,143,177,61,187,99,148,61,187,35,119,61,187,207,89,61,187,103,60,61,187,236,30,61,187,92,1,61,187,185,227,60,187,3,198,60,187,56,168,60,187,90,138,60,187,104,108,60,187,99,
78,60,187,73,48,60,187,29,18,60,187,220,243,59,187,136,213,59,187,32,183,59,187,165,152,59,187,22,122,59,187,115,91,59,187,189,60,59,187,244,29,59,187,22,255,58,187,38,224,58,187,34,193,58,187,10,162,58,187,223,130,58,187,160,99,58,187,78,68,58,187,233,36,58,187,112,5,58,187,227,229,57,187,68,198,57,187,145,166,57,187,202,134,57,187,240,102,57,187,3,71,57,187,3,39,57,187,239,6,57,187,200,230,56,187,141,198,56,187,64,166,56,187,223,133,56,187,107,101,56,187,228,68,56,187,73,36,56,187,155,3,56,187,
218,226,55,187,6,194,55,187,31,161,55,187,37,128,55,187,23,95,55,187,247,61,55,187,195,28,55,187,124,251,54,187,34,218,54,187,182,184,54,187,54,151,54,187,163,117,54,187,253,83,54,187,68,50,54,187,120,16,54,187,153,238,53,187,168,204,53,187,163,170,53,187,139,136,53,187,97,102,53,187,36,68,53,187,211,33,53,187,112,255,52,187,250,220,52,187,114,186,52,187,214,151,52,187,40,117,52,187,103,82,52,187,147,47,52,187,172,12,52,187,179,233,51,187,167,198,51,187,136,163,51,187,87,128,51,187,18,93,51,187,188,
57,51,187,82,22,51,187,214,242,50,187,72,207,50,187,167,171,50,187,243,135,50,187,44,100,50,187,84,64,50,187,104,28,50,187,106,248,49,187,90,212,49,187,55,176,49,187,2,140,49,187,186,103,49,187,96,67,49,187,243,30,49,187,116,250,48,187,227,213,48,187,63,177,48,187,137,140,48,187,192,103,48,187,230,66,48,187,249,29,48,187,249,248,47,187,232,211,47,187,196,174,47,187,142,137,47,187,69,100,47,187,235,62,47,187,126,25,47,187,255,243,46,187,110,206,46,187,203,168,46,187,22,131,46,187,78,93,46,187,117,
55,46,187,137,17,46,187,140,235,45,187,124,197,45,187,90,159,45,187,39,121,45,187,225,82,45,187,137,44,45,187,32,6,45,187,164,223,44,187,23,185,44,187,120,146,44,187,198,107,44,187,3,69,44,187,46,30,44,187,72,247,43,187,79,208,43,187,69,169,43,187,40,130,43,187,250,90,43,187,187,51,43,187,105,12,43,187,6,229,42,187,145,189,42,187,11,150,42,187,115,110,42,187,201,70,42,187,13,31,42,187,64,247,41,187,98,207,41,187,114,167,41,187,112,127,41,187,92,87,41,187,56,47,41,187,1,7,41,187,185,222,40,187,96,
182,40,187,245,141,40,187,121,101,40,187,235,60,40,187,76,20,40,187,156,235,39,187,218,194,39,187,7,154,39,187,35,113,39,187,45,72,39,187,38,31,39,187,14,246,38,187,228,204,38,187,169,163,38,187,93,122,38,187,0,81,38,187,145,39,38,187,18,254,37,187,129,212,37,187,223,170,37,187,44,129,37,187,104,87,37,187,147,45,37,187,173,3,37,187,182,217,36,187,173,175,36,187,148,133,36,187,106,91,36,187,46,49,36,187,226,6,36,187,133,220,35,187,23,178,35,187,152,135,35,187,8,93,35,187,104,50,35,187,182,7,35,187,
244,220,34,187,33,178,34,187,61,135,34,187,72,92,34,187,67,49,34,187,45,6,34,187,6,219,33,187,207,175,33,187,134,132,33,187,46,89,33,187,196,45,33,187,74,2,33,187,191,214,32,187,36,171,32,187,120,127,32,187,188,83,32,187,239,39,32,187,18,252,31,187,36,208,31,187,38,164,31,187,23,120,31,187,248,75,31,187,200,31,31,187,136,243,30,187,56,199,30,187,215,154,30,187,102,110,30,187,229,65,30,187,83,21,30,187,178,232,29,187,0,188,29,187,61,143,29,187,107,98,29,187,136,53,29,187,149,8,29,187,146,219,28,187,
127,174,28,187,92,129,28,187,40,84,28,187,229,38,28,187,145,249,27,187,46,204,27,187,186,158,27,187,54,113,27,187,163,67,27,187,255,21,27,187,76,232,26,187,137,186,26,187,181,140,26,187,210,94,26,187,223,48,26,187,221,2,26,187,202,212,25,187,168,166,25,187,117,120,25,187,51,74,25,187,226,27,25,187,128,237,24,187,15,191,24,187,142,144,24,187,254,97,24,187,94,51,24,187,174,4,24,187,239,213,23,187,32,167,23,187,66,120,23,187,84,73,23,187,86,26,23,187,73,235,22,187,45,188,22,187,1,141,22,187,198,93,22,
187,123,46,22,187,33,255,21,187,183,207,21,187,62,160,21,187,182,112,21,187,31,65,21,187,120,17,21,187,194,225,20,187,252,177,20,187,40,130,20,187,68,82,20,187,81,34,20,187,79,242,19,187,62,194,19,187,29,146,19,187,238,97,19,187,175,49,19,187,98,1,19,187,5,209,18,187,153,160,18,187,31,112,18,187,149,63,18,187,252,14,18,187,85,222,17,187,158,173,17,187,217,124,17,187,5,76,17,187,34,27,17,187,48,234,16,187,47,185,16,187,31,136,16,187,1,87,16,187,212,37,16,187,152,244,15,187,78,195,15,187,244,145,15,
187,141,96,15,187,22,47,15,187,145,253,14,187,253,203,14,187,91,154,14,187,170,104,14,187,235,54,14,187,29,5,14,187,64,211,13,187,86,161,13,187,92,111,13,187,85,61,13,187,62,11,13,187,26,217,12,187,231,166,12,187,166,116,12,187,86,66,12,187,248,15,12,187,140,221,11,187,18,171,11,187,137,120,11,187,242,69,11,187,77,19,11,187,154,224,10,187,217,173,10,187,9,123,10,187,44,72,10,187,64,21,10,187,70,226,9,187,63,175,9,187,41,124,9,187,5,73,9,187,211,21,9,187,148,226,8,187,70,175,8,187,235,123,8,187,129,
72,8,187,10,21,8,187,133,225,7,187,242,173,7,187,81,122,7,187,163,70,7,187,231,18,7,187,29,223,6,187,69,171,6,187,96,119,6,187,109,67,6,187,108,15,6,187,94,219,5,187,66,167,5,187,24,115,5,187,225,62,5,187,157,10,5,187,75,214,4,187,235,161,4,187,126,109,4,187,4,57,4,187,124,4,4,187,231,207,3,187,68,155,3,187,148,102,3,187,215,49,3,187,12,253,2,187,53,200,2,187,79,147,2,187,93,94,2,187,94,41,2,187,81,244,1,187,55,191,1,187,16,138,1,187,220,84,1,187,154,31,1,187,76,234,0,187,241,180,0,187,136,127,0,
187,19,74,0,187,144,20,0,187,2,190,255,186,201,82,255,186,119,231,254,186,10,124,254,186,132,16,254,186,228,164,253,186,43,57,253,186,88,205,252,186,108,97,252,186,101,245,251,186,70,137,251,186,13,29,251,186,187,176,250,186,79,68,250,186,202,215,249,186,44,107,249,186,117,254,248,186,164,145,248,186,187,36,248,186,184,183,247,186,156,74,247,186,104,221,246,186,26,112,246,186,180,2,246,186,53,149,245,186,157,39,245,186,236,185,244,186,35,76,244,186,65,222,243,186,71,112,243,186,51,2,243,186,8,148,
242,186,196,37,242,186,104,183,241,186,243,72,241,186,102,218,240,186,193,107,240,186,3,253,239,186,45,142,239,186,64,31,239,186,58,176,238,186,28,65,238,186,230,209,237,186,153,98,237,186,51,243,236,186,182,131,236,186,33,20,236,186,116,164,235,186,175,52,235,186,211,196,234,186,223,84,234,186,212,228,233,186,177,116,233,186,119,4,233,186,37,148,232,186,188,35,232,186,60,179,231,186,164,66,231,186,245,209,230,186,47,97,230,186,82,240,229,186,94,127,229,186,83,14,229,186,49,157,228,186,248,43,228,
186,168,186,227,186,66,73,227,186,196,215,226,186,48,102,226,186,133,244,225,186,196,130,225,186,236,16,225,186,253,158,224,186,248,44,224,186,221,186,223,186,171,72,223,186,98,214,222,186,4,100,222,186,143,241,221,186,4,127,221,186,99,12,221,186,172,153,220,186,223,38,220,186,252,179,219,186,3,65,219,186,244,205,218,186,207,90,218,186,148,231,217,186,68,116,217,186,222,0,217,186,98,141,216,186,209,25,216,186,42,166,215,186,109,50,215,186,155,190,214,186,180,74,214,186,183,214,213,186,166,98,213,
186,126,238,212,186,66,122,212,186,240,5,212,186,138,145,211,186,14,29,211,186,125,168,210,186,216,51,210,186,29,191,209,186,77,74,209,186,105,213,208,186,112,96,208,186,98,235,207,186,64,118,207,186,9,1,207,186,189,139,206,186,93,22,206,186,233,160,205,186,96,43,205,186,194,181,204,186,17,64,204,186,75,202,203,186,113,84,203,186,130,222,202,186,128,104,202,186,105,242,201,186,63,124,201,186,0,6,201,186,174,143,200,186,72,25,200,186,206,162,199,186,64,44,199,186,158,181,198,186,233,62,198,186,32,
200,197,186,68,81,197,186,84,218,196,186,81,99,196,186,58,236,195,186,16,117,195,186,211,253,194,186,130,134,194,186,30,15,194,186,167,151,193,186,29,32,193,186,128,168,192,186,207,48,192,186,12,185,191,186,54,65,191,186,77,201,190,186,81,81,190,186,67,217,189,186,34,97,189,186,238,232,188,186,167,112,188,186,78,248,187,186,227,127,187,186,101,7,187,186,213,142,186,186,50,22,186,186,125,157,185,186,182,36,185,186,220,171,184,186,241,50,184,186,243,185,183,186,228,64,183,186,194,199,182,186,142,78,
182,186,73,213,181,186,242,91,181,186,137,226,180,186,14,105,180,186,129,239,179,186,227,117,179,186,51,252,178,186,114,130,178,186,159,8,178,186,187,142,177,186,198,20,177,186,191,154,176,186,167,32,176,186,126,166,175,186,67,44,175,186,248,177,174,186,155,55,174,186,45,189,173,186,175,66,173,186,31,200,172,186,127,77,172,186,206,210,171,186,12,88,171,186,57,221,170,186,86,98,170,186,98,231,169,186,94,108,169,186,73,241,168,186,36,118,168,186,238,250,167,186,168,127,167,186,82,4,167,186,235,136,
166,186,117,13,166,186,238,145,165,186,87,22,165,186,176,154,164,186,249,30,164,186,50,163,163,186,91,39,163,186,117,171,162,186,127,47,162,186,121,179,161,186,99,55,161,186,62,187,160,186,9,63,160,186,197,194,159,186,113,70,159,186,14,202,158,186,156,77,158,186,26,209,157,186,137,84,157,186,233,215,156,186,58,91,156,186,123,222,155,186,174,97,155,186,209,228,154,186,230,103,154,186,236,234,153,186,227,109,153,186,203,240,152,186,165,115,152,186,112,246,151,186,44,121,151,186,218,251,150,186,121,
126,150,186,10,1,150,186,140,131,149,186,0,6,149,186,102,136,148,186,190,10,148,186,7,141,147,186,67,15,147,186,112,145,146,186,143,19,146,186,160,149,145,186,163,23,145,186,153,153,144,186,128,27,144,186,90,157,143,186,38,31,143,186,229,160,142,186,150,34,142,186,57,164,141,186,207,37,141,186,87,167,140,186,211,40,140,186,64,170,139,186,161,43,139,186,244,172,138,186,58,46,138,186,115,175,137,186,159,48,137,186],"i8",4,y.a+522240);
Q([190,177,136,186,208,50,136,186,213,179,135,186,205,52,135,186,184,181,134,186,151,54,134,186,105,183,133,186,46,56,133,186,231,184,132,186,147,57,132,186,50,186,131,186,198,58,131,186,77,187,130,186,199,59,130,186,53,188,129,186,152,60,129,186,238,188,128,186,55,61,128,186,235,122,127,186,78,123,126,186,154,123,125,186,206,123,124,186,234,123,123,186,239,123,122,186,220,123,121,186,178,123,120,186,113,123,119,186,25,123,118,186,169,122,117,186,35,122,116,186,134,121,115,186,210,120,114,186,8,120,
113,186,39,119,112,186,48,118,111,186,34,117,110,186,255,115,109,186,197,114,108,186,118,113,107,186,16,112,106,186,149,110,105,186,4,109,104,186,94,107,103,186,162,105,102,186,209,103,101,186,235,101,100,186,240,99,99,186,224,97,98,186,187,95,97,186,129,93,96,186,50,91,95,186,208,88,94,186,88,86,93,186,204,83,92,186,45,81,91,186,121,78,90,186,177,75,89,186,213,72,88,186,229,69,87,186,226,66,86,186,203,63,85,186,161,60,84,186,99,57,83,186,18,54,82,186,174,50,81,186,55,47,80,186,173,43,79,186,17,40,
78,186,97,36,77,186,159,32,76,186,203,28,75,186,228,24,74,186,235,20,73,186,224,16,72,186,195,12,71,186,148,8,70,186,83,4,69,186,0,0,68,186,156,251,66,186,38,247,65,186,159,242,64,186,7,238,63,186,94,233,62,186,163,228,61,186,216,223,60,186,251,218,59,186,14,214,58,186,17,209,57,186,3,204,56,186,228,198,55,186,181,193,54,186,118,188,53,186,39,183,52,186,200,177,51,186,90,172,50,186,219,166,49,186,77,161,48,186,175,155,47,186,2,150,46,186,70,144,45,186,122,138,44,186,159,132,43,186,182,126,42,186,
189,120,41,186,182,114,40,186,160,108,39,186,124,102,38,186,73,96,37,186,8,90,36,186,185,83,35,186,91,77,34,186,240,70,33,186,118,64,32,186,239,57,31,186,91,51,30,186,185,44,29,186,9,38,28,186,76,31,27,186,130,24,26,186,170,17,25,186,198,10,24,186,213,3,23,186,215,252,21,186,205,245,20,186,181,238,19,186,146,231,18,186,98,224,17,186,38,217,16,186,222,209,15,186,137,202,14,186,41,195,13,186,189,187,12,186,70,180,11,186,195,172,10,186,52,165,9,186,154,157,8,186,245,149,7,186,69,142,6,186,137,134,5,
186,195,126,4,186,242,118,3,186,22,111,2,186,48,103,1,186,64,95,0,186,137,174,254,185,127,158,252,185,96,142,250,185,45,126,248,185,230,109,246,185,140,93,244,185,30,77,242,185,158,60,240,185,10,44,238,185,100,27,236,185,171,10,234,185,224,249,231,185,2,233,229,185,19,216,227,185,19,199,225,185,1,182,223,185,222,164,221,185,169,147,219,185,101,130,217,185,15,113,215,185,170,95,213,185,52,78,211,185,174,60,209,185,25,43,207,185,117,25,205,185,193,7,203,185,254,245,200,185,45,228,198,185,77,210,196,
185,95,192,194,185,98,174,192,185,88,156,190,185,65,138,188,185,27,120,186,185,233,101,184,185,170,83,182,185,94,65,180,185,5,47,178,185,160,28,176,185,47,10,174,185,178,247,171,185,42,229,169,185,150,210,167,185,247,191,165,185,77,173,163,185,152,154,161,185,217,135,159,185,15,117,157,185,60,98,155,185,94,79,153,185,119,60,151,185,134,41,149,185,140,22,147,185,137,3,145,185,126,240,142,185,106,221,140,185,77,202,138,185,41,183,136,185,252,163,134,185,200,144,132,185,140,125,130,185,74,106,128,185,
0,174,124,185,95,135,120,185,177,96,116,185,246,57,112,185,47,19,108,185,92,236,103,185,126,197,99,185,149,158,95,185,162,119,91,185,164,80,87,185,157,41,83,185,141,2,79,185,116,219,74,185,83,180,70,185,43,141,66,185,250,101,62,185,195,62,58,185,134,23,54,185,66,240,49,185,249,200,45,185,171,161,41,185,88,122,37,185,1,83,33,185,166,43,29,185,72,4,25,185,230,220,20,185,131,181,16,185,29,142,12,185,182,102,8,185,77,63,4,185,228,23,0,185,245,224,247,184,34,146,239,184,81,67,231,184,129,244,222,184,181,
165,214,184,237,86,206,184,41,8,198,184,107,185,189,184,180,106,181,184,4,28,173,184,92,205,164,184,190,126,156,184,41,48,148,184,160,225,139,184,34,147,131,184,99,137,118,184,156,236,101,184,243,79,85,184,104,179,68,184,254,22,52,184,182,122,35,184,146,222,18,184,148,66,2,184,123,77,227,183,33,22,194,183,29,223,160,183,229,80,127,183,75,228,60,183,230,240,244,182,142,53,96,182,194,205,37,53,138,140,153,54,208,46,15,55,117,150,81,55,152,254,137,55,123,49,171,55,225,99,204,55,199,149,237,55,148,99,
7,56,1,252,23,56,40,148,40,56,8,44,57,56,159,195,73,56,235,90,90,56,235,241,106,56,156,136,123,56,126,15,134,56,134,90,142,56,99,165,150,56,22,240,158,56,157,58,167,56,248,132,175,56,37,207,183,56,36,25,192,56,244,98,200,56,148,172,208,56,4,246,216,56,65,63,225,56,76,136,233,56,35,209,241,56,197,25,250,56,25,49,1,57,53,85,5,57,53,121,9,57,25,157,13,57,225,192,17,57,140,228,21,57,26,8,26,57,138,43,30,57,219,78,34,57,15,114,38,57,35,149,42,57,23,184,46,57,236,218,50,57,160,253,54,57,52,32,59,57,166,
66,63,57,247,100,67,57,38,135,71,57,50,169,75,57,27,203,79,57,225,236,83,57,130,14,88,57,0,48,92,57,89,81,96,57,140,114,100,57,154,147,104,57,130,180,108,57,67,213,112,57,222,245,116,57,81,22,121,57,156,54,125,57,96,171,128,57,93,187,130,57,70,203,132,57,25,219,134,57,216,234,136,57,130,250,138,57,22,10,141,57,149,25,143,57,254,40,145,57,80,56,147,57,141,71,149,57,178,86,151,57,194,101,153,57,186,116,155,57,155,131,157,57,100,146,159,57,22,161,161,57,176,175,163,57,50,190,165,57,156,204,167,57,238,
218,169,57,38,233,171,57,70,247,173,57,76,5,176,57,58,19,178,57,13,33,180,57,199,46,182,57,103,60,184,57,237,73,186,57,88,87,188,57,169,100,190,57,222,113,192,57,249,126,194,57,248,139,196,57,220,152,198,57,164,165,200,57,80,178,202,57,224,190,204,57,83,203,206,57,170,215,208,57,228,227,210,57,1,240,212,57,1,252,214,57,227,7,217,57,168,19,219,57,79,31,221,57,215,42,223,57,65,54,225,57,141,65,227,57,186,76,229,57,200,87,231,57,182,98,233,57,134,109,235,57,53,120,237,57,197,130,239,57,53,141,241,57,
132,151,243,57,179,161,245,57,193,171,247,57,175,181,249,57,123,191,251,57,38,201,253,57,175,210,255,57,11,238,0,58,174,242,1,58,63,247,2,58,192,251,3,58,47,0,5,58,141,4,6,58,217,8,7,58,19,13,8,58,60,17,9,58,83,21,10,58,87,25,11,58,74,29,12,58,43,33,13,58,249,36,14,58,181,40,15,58,94,44,16,58,245,47,17,58,121,51,18,58,234,54,19,58,73,58,20,58,148,61,21,58,204,64,22,58,241,67,23,58,2,71,24,58,0,74,25,58,235,76,26,58,193,79,27,58,132,82,28,58,52,85,29,58,207,87,30,58,86,90,31,58,200,92,32,58,39,95,
33,58,113,97,34,58,166,99,35,58,199,101,36,58,211,103,37,58,202,105,38,58,173,107,39,58,122,109,40,58,50,111,41,58,213,112,42,58,98,114,43,58,218,115,44,58,60,117,45,58,137,118,46,58,191,119,47,58,224,120,48,58,235,121,49,58,224,122,50,58,190,123,51,58,135,124,52,58,56,125,53,58,211,125,54,58,88,126,55,58,198,126,56,58,28,127,57,58,92,127,58,58,133,127,59,58,151,127,60,58,145,127,61,58,116,127,62,58,64,127,63,58,244,126,64,58,144,126,65,58,20,126,66,58,129,125,67,58,213,124,68,58,17,124,69,58,53,
123,70,58,65,122,71,58,52,121,72,58,15,120,73,58,209,118,74,58,122,117,75,58,11,116,76,58,130,114,77,58,225,112,78,58,38,111,79,58,82,109,80,58,100,107,81,58,94,105,82,58,61,103,83,58,3,101,84,58,175,98,85,58,65,96,86,58,185,93,87,58,23,91,88,58,91,88,89,58,132,85,90,58,147,82,91,58,136,79,92,58,97,76,93,58,33,73,94,58,197,69,95,58,78,66,96,58,188,62,97,58,15,59,98,58,71,55,99,58,100,51,100,58,101,47,101,58,74,43,102,58,20,39,103,58,194,34,104,58,84,30,105,58,202,25,106,58,36,21,107,58,98,16,108,
58,132,11,109,58,137,6,110,58,114,1,111,58,62,252,111,58,237,246,112,58,128,241,113,58,246,235,114,58,78,230,115,58,138,224,116,58,168,218,117,58,169,212,118,58,141,206,119,58,83,200,120,58,252,193,121,58,134,187,122,58,243,180,123,58,66,174,124,58,115,167,125,58,134,160,126,58,123,153,127,58,40,73,128,58,132,197,128,58,209,65,129,58,14,190,129,58,60,58,130,58,91,182,130,58,106,50,131,58,105,174,131,58,89,42,132,58,57,166,132,58,10,34,133,58,203,157,133,58,124,25,134,58,29,149,134,58,175,16,135,58,
48,140,135,58,162,7,136,58,3,131,136,58,84,254,136,58,150,121,137,58,199,244,137,58,231,111,138,58,248,234,138,58,248,101,139,58,232,224,139,58,199,91,140,58,150,214,140,58,85,81,141,58,2,204,141,58,159,70,142,58,44,193,142,58,168,59,143,58,18,182,143,58,108,48,144,58,182,170,144,58,238,36,145,58,21,159,145,58,43,25,146,58,48,147,146,58,36,13,147,58,7,135,147,58,217,0,148,58,153,122,148,58,72,244,148,58,229,109,149,58,114,231,149,58,236,96,150,58,85,218,150,58,173,83,151,58,243,204,151,58,39,70,152,
58,73,191,152,58,90,56,153,58,89,177,153,58,70,42,154,58,33,163,154,58,234,27,155,58,161,148,155,58,70,13,156,58,216,133,156,58,89,254,156,58,199,118,157,58,35,239,157,58,109,103,158,58,165,223,158,58,202,87,159,58,220,207,159,58,220,71,160,58,201,191,160,58,164,55,161,58,108,175,161,58,34,39,162,58,196,158,162,58,84,22,163,58,209,141,163,58,59,5,164,58,146,124,164,58,214,243,164,58,7,107,165,58,37,226,165,58,48,89,166,58,39,208,166,58,12,71,167,58,221,189,167,58,154,52,168,58,69,171,168,58,219,33,
169,58,95,152,169,58,206,14,170,58,42,133,170,58,115,251,170,58,168,113,171,58,201,231,171,58,214,93,172,58,208,211,172,58,181,73,173,58,135,191,173,58,68,53,174,58,238,170,174,58,132,32,175,58,5,150,175,58,114,11,176,58,203,128,176,58,16,246,176,58,65,107,177,58,93,224,177,58,100,85,178,58,88,202,178,58,54,63,179,58,1,180,179,58,182,40,180,58,87,157,180,58,227,17,181,58,91,134,181,58,190,250,181,58,11,111,182,58,68,227,182,58,105,87,183,58,120,203,183,58,114,63,184,58,87,179,184,58,39,39,185,58,
225,154,185,58,135,14,186,58,23,130,186,58,146,245,186,58,247,104,187,58,72,220,187,58,130,79,188,58,168,194,188,58,183,53,189,58,177,168,189,58,150,27,190,58,101,142,190,58,30,1,191,58,193,115,191,58,78,230,191,58,198,88,192,58,39,203,192,58,115,61,193,58,169,175,193,58,200,33,194,58,210,147,194,58,197,5,195,58,163,119,195,58,106,233,195,58,26,91,196,58,180,204,196,58,56,62,197,58,166,175,197,58,253,32,198,58,62,146,198,58,104,3,199,58,123,116,199,58,120,229,199,58,94,86,200,58,45,199,200,58,229,
55,201,58,135,168,201,58,18,25,202,58,133,137,202,58,226,249,202,58,40,106,203,58,87,218,203,58,110,74,204,58,111,186,204,58,88,42,205,58,42,154,205,58,229,9,206,58,136,121,206,58,20,233,206,58,137,88,207,58,230,199,207,58,44,55,208,58,90,166,208,58,112,21,209,58,111,132,209,58,86,243,209,58,37,98,210,58,221,208,210,58,124,63,211,58,4,174,211,58,116,28,212,58,204,138,212,58,12,249,212,58,52,103,213,58,67,213,213,58,59,67,214,58,26,177,214,58,226,30,215,58,145,140,215,58,39,250,215,58,165,103,216,
58,11,213,216,58,88,66,217,58,141,175,217,58,169,28,218,58,173,137,218,58,152,246,218,58,106,99,219,58,36,208,219,58,197,60,220,58,77,169,220,58,188,21,221,58,18,130,221,58,80,238,221,58,116,90,222,58,128,198,222,58,114,50,223,58,75,158,223,58,11,10,224,58,178,117,224,58,63,225,224,58,179,76,225,58,14,184,225,58,80,35,226,58,120,142,226,58,135,249,226,58,124,100,227,58,87,207,227,58,25,58,228,58,194,164,228,58,80,15,229,58,197,121,229,58,32,228,229,58,98,78,230,58,137,184,230,58,151,34,231,58,138,
140,231,58,100,246,231,58,36,96,232,58,201,201,232,58,85,51,233,58,198,156,233,58,29,6,234,58,90,111,234,58,125,216,234,58,133,65,235,58,115,170,235,58,70,19,236,58,0,124,236,58,158,228,236,58,34,77,237,58,140,181,237,58,218,29,238,58,15,134,238,58,40,238,238,58,39,86,239,58,11,190,239,58,212,37,240,58,130,141,240,58,21,245,240,58,142,92,241,58,235,195,241,58,46,43,242,58,85,146,242,58,97,249,242,58,82,96,243,58,40,199,243,58,226,45,244,58,130,148,244,58,5,251,244,58,110,97,245,58,187,199,245,58,
237,45,246,58,3,148,246,58,254,249,246,58,221,95,247,58,160,197,247,58,72,43,248,58,212,144,248,58,69,246,248,58,153,91,249,58,210,192,249,58,239,37,250,58,240,138,250,58,213,239,250,58,158,84,251,58,75,185,251,58,220,29,252,58,81,130,252,58,170,230,252,58,231,74,253,58,7,175,253,58,11,19,254,58,243,118,254,58,190,218,254,58,109,62,255,58,0,162,255,58,187,2,0,59,104,52,0,59,6,102,0,59,151,151,0,59,25,201,0,59,140,250,0,59,242,43,1,59,72,93,1,59,145,142,1,59,203,191,1,59,247,240,1,59,20,34,2,59,35,
83,2,59,35,132,2,59,21,181,2,59,248,229,2,59,205,22,3,59,147,71,3,59,74,120,3,59,243,168,3,59,141,217,3,59,25,10,4,59,150,58,4,59,4,107,4,59,100,155,4,59,180,203,4,59,247,251,4,59,42,44,5,59,78,92,5,59,100,140,5,59,107,188,5,59,99,236,5,59,76,28,6,59,39,76,6,59,242,123,6,59,175,171,6,59,92,219,6,59,251,10,7,59,139,58,7,59,11,106,7,59,125,153,7,59,223,200,7,59,51,248,7,59,120,39,8,59,173,86,8,59,211,133,8,59,234,180,8,59,242,227,8,59,235,18,9,59,213,65,9,59,175,112,9,59,123,159,9,59,55,206,9,59,227,
252,9,59,129,43,10,59,15,90,10,59,142,136,10,59,254,182,10,59,94,229,10,59,175,19,11,59,240,65,11,59,34,112,11,59,69,158,11,59,88,204,11,59,91,250,11,59,80,40,12,59,52,86,12,59,10,132,12,59,207,177,12,59,133,223,12,59,44,13,13,59,195,58,13,59,74,104,13,59,194,149,13,59,42,195,13,59,130,240,13,59,203,29,14,59,4,75,14,59,45,120,14,59,71,165,14,59,81,210,14,59,75,255,14,59,53,44,15,59,16,89,15,59,218,133,15,59,149,178,15,59,64,223,15,59,219,11,16,59,102,56,16,59,226,100,16,59,77,145,16,59,168,189,16,
59,244,233,16,59,47,22,17,59,90,66,17,59,118,110,17,59,129,154,17,59,125,198,17,59,104,242,17,59,67,30,18,59,14,74,18,59,201,117,18,59,116,161,18,59,14,205,18,59,153,248,18,59,19,36,19,59,125,79,19,59,215,122,19,59,32,166,19,59,90,209,19,59,131,252,19,59,155,39,20,59,164,82,20,59,156,125,20,59,132,168,20,59,91,211,20,59,34,254,20,59,217,40,21,59,127,83,21,59,21,126,21,59,154,168,21,59,15,211,21,59,115,253,21,59,199,39,22,59,10,82,22,59,61,124,22,59,95,166,22,59,113,208,22,59,114,250,22,59,98,36,23,
59,66,78,23,59,17,120,23,59,208,161,23,59,126,203,23,59,27,245,23,59,168,30,24,59,36,72,24,59,143,113,24,59,233,154,24,59,51,196,24,59,107,237,24,59,147,22,25,59,171,63,25,59,177,104,25,59,166,145,25,59,139,186,25,59,95,227,25,59,34,12,26,59,212,52,26,59,117,93,26,59,5,134,26,59,132,174,26,59,242,214,26,59,79,255,26,59,155,39,27,59,214,79,27,59,0,120,27,59,25,160,27,59,33,200,27,59,24,240,27,59,254,23,28,59,211,63,28,59,150,103,28,59,72,143,28,59,234,182,28,59,122,222,28,59,248,5,29,59,102,45,29,
59,194,84,29,59,14,124,29,59,71,163,29,59,112,202,29,59,135,241,29,59,141,24,30,59,130,63,30,59,101,102,30,59,55,141,30,59,248,179,30,59,167,218,30,59,69,1,31,59,209,39,31,59,76,78,31,59,182,116,31,59,14,155,31,59,85,193,31,59,138,231,31,59,174,13,32,59,192,51,32,59,192,89,32,59,175,127,32,59,141,165,32,59,89,203,32,59,19,241,32,59,188,22,33,59,83,60,33,59,216,97,33,59,76,135,33,59,174,172,33,59,255,209,33,59,61,247,33,59,106,28,34,59,134,65,34,59,143,102,34,59,135,139,34,59,109,176,34,59,65,213,
34,59,4,250,34,59,180,30,35,59,83,67,35,59,224,103,35,59,91,140,35,59,197,176,35,59,28,213,35,59,98,249,35,59,149,29,36,59,183,65,36,59,198,101,36,59,196,137,36,59,176,173,36,59,138,209,36,59,82,245,36,59,7,25,37,59,171,60,37,59,61,96,37,59,189,131,37,59,42,167,37,59,134,202,37,59,207,237,37,59,6,17,38,59,44,52,38,59,63,87,38,59,64,122,38,59,46,157,38,59,11,192,38,59,213,226,38,59,142,5,39,59,52,40,39,59,199,74,39,59,73,109,39,59,184,143,39,59,21,178,39,59,96,212,39,59,152,246,39,59,190,24,40,59,
210,58,40,59,211,92,40,59,194,126,40,59,159,160,40,59,105,194,40,59,33,228,40,59,199,5,41,59,90,39,41,59,219,72,41,59,73,106,41,59,165,139,41,59,238,172,41,59,37,206,41,59,73,239,41,59,91,16,42,59,90,49,42,59,71,82,42,59,33,115,42,59,233,147,42,59,158,180,42,59,65,213,42,59,209,245,42,59,78,22,43,59,185,54,43,59,17,87,43,59,86,119,43,59,137,151,43,59,169,183,43,59,183,215,43,59,177,247,43,59,153,23,44,59,111,55,44,59,49,87,44,59,225,118,44,59,126,150,44,59,8,182,44,59,128,213,44,59,228,244,44,59,
54,20,45,59,117,51,45,59,162,82,45,59,187,113,45,59,194,144,45,59,181,175,45,59,150,206,45,59,100,237,45,59,31,12,46,59,199,42,46,59,92,73,46,59,222,103,46,59,78,134,46,59,170,164,46,59,243,194,46,59,42,225,46,59,77,255,46,59,93,29,47,59,91,59,47,59,69,89,47,59,28,119,47,59,224,148,47,59,146,178,47,59,48,208,47,59,187,237,47,59,51,11,48,59,151,40,48,59,233,69,48,59,39,99,48,59,83,128,48,59,107,157,48,59,112,186,48,59,98,215,48,59,65,244,48,59,12,17,49,59,196,45,49,59,105,74,49,59,251,102,49,59,122,
131,49,59,229,159,49,59,61,188,49,59,130,216,49,59,179,244,49,59,209,16,50,59,220,44,50,59,212,72,50,59,184,100,50,59,137,128,50,59,70,156,50,59,241,183,50,59,135,211,50,59,11,239,50,59,123,10,51,59,215,37,51,59,32,65,51,59,86,92,51,59,121,119,51,59,135,146,51,59,131,173,51,59,107,200,51,59,63,227,51,59,0,254,51,59,174,24,52,59,72,51,52,59,206,77,52,59,65,104,52,59,161,130,52,59,236,156,52,59,37,183,52,59,73,209,52,59,91,235,52,59,88,5,53,59,66,31,53,59,25,57,53,59,219,82,53,59,138,108,53,59,38,134,
53,59,174,159,53,59,34,185,53,59,130,210,53,59,207,235,53,59,8,5,54,59,46,30,54,59,64,55,54,59,62,80,54,59,40,105,54,59,255,129,54,59,193,154,54,59,113,179,54,59,12,204,54,59,147,228,54,59,7,253,54,59,103,21,55,59,179,45,55,59,236,69,55,59,16,94,55,59,33,118,55,59,30,142,55,59,7,166,55,59,220,189,55,59,158,213,55,59,75,237,55,59,229,4,56,59,107,28,56,59,221,51,56,59,59,75,56,59,133,98,56,59,187,121,56,59,221,144,56,59,235,167,56,59,229,190,56,59,204,213,56,59,158,236,56,59,93,3,57,59,7,26,57,59,157,
48,57,59,32,71,57,59,142,93,57,59,233,115,57,59,47,138,57,59,98,160,57,59,128,182,57,59,138,204,57,59,128,226,57,59,99,248,57,59,49,14,58,59,235,35,58,59,145,57,58,59,34,79,58,59,160,100,58,59,10,122,58,59,95,143,58,59,161,164,58,59,206,185,58,59,231,206,58,59,236,227,58,59,220,248,58,59,185,13,59,59,130,34,59,59,54,55,59,59,214,75,59,59,98,96,59,59,217,116,59,59,61,137,59,59,140,157,59,59,199,177,59,59,238,197,59,59,0,218,59,59,254,237,59,59,232,1,60,59,190,21,60,59,128,41,60,59,45,61,60,59,198,
80,60,59,74,100,60,59,187,119,60,59,23,139,60,59,94,158,60,59,146,177,60,59,177,196,60,59,187,215,60,59,178,234,60,59,148,253,60,59,98,16,61,59,27,35,61,59,192,53,61,59,80,72,61,59,204,90,61,59,52,109,61,59,136,127,61,59,199,145,61,59,241,163,61,59,7,182,61,59,9,200,61,59,246,217,61,59,207,235,61,59,148,253,61,59,68,15,62,59,223,32,62,59,102,50,62,59,217,67,62,59,55,85,62,59,128,102,62,59,182,119,62,59,214,136,62,59,226,153,62,59,218,170,62,59,189,187,62,59,140,204,62,59,70,221,62,59,236,237,62,59,
125,254,62,59,249,14,63,59,97,31,63,59,180,47,63,59,243,63,63,59,30,80,63,59,51,96,63,59,52,112,63,59,33,128,63,59,249,143,63,59,188,159,63,59,107,175,63,59,5,191,63,59,139,206,63,59,252,221,63,59,88,237,63,59,160,252,63,59,211,11,64,59,241,26,64,59,251,41,64,59,240,56,64,59,209,71,64,59,157,86,64,59,84,101,64,59,247,115,64,59,132,130,64,59,254,144,64,59,98,159,64,59,178,173,64,59,237,187,64,59,20,202,64,59,37,216,64,59,34,230,64,59,11,244,64,59,222,1,65,59,157,15,65,59,71,29,65,59,221,42,65,59,93,
56,65,59,201,69,65,59,33,83,65,59,99,96,65,59,145,109,65,59,170,122,65,59,174,135,65,59,157,148,65,59,120,161,65,59,62,174,65,59,239,186,65,59,139,199,65,59,19,212,65,59,134,224,65,59,228,236,65,59,45,249,65,59,97,5,66,59,129,17,66,59,139,29,66,59,129,41,66,59,98,53,66,59,47,65,66,59,230,76,66,59,137,88,66,59,23,100,66,59,143,111,66,59,244,122,66,59,67,134,66,59,125,145,66,59,163,156,66,59,179,167,66,59,175,178,66,59,150,189,66,59,104,200,66,59,38,211,66,59,206,221,66,59,97,232,66,59,224,242,66,59,
74,253,66,59,159,7,67,59,223,17,67,59,10,28,67,59,32,38,67,59,33,48,67,59,13,58,67,59,229,67,67,59,167,77,67,59,85,87,67,59,238,96,67,59,113,106,67,59,224,115,67,59,58,125,67,59,127,134,67,59,175,143,67,59,202,152,67,59,209,161,67,59,194,170,67,59,158,179,67,59,102,188,67,59,24,197,67,59,181,205,67,59,62,214,67,59,178,222,67,59,16,231,67,59,90,239,67,59,143,247,67,59,174,255,67,59,185,7,68,59,175,15,68,59,144,23,68,59,92,31,68,59,18,39,68,59,180,46,68,59,65,54,68,59,185,61,68,59,28,69,68,59,106,76,
68,59,163,83,68,59,199,90,68,59,214,97,68,59,208,104,68,59,181,111,68,59,133,118,68,59,64,125,68,59,230,131,68,59,119,138,68,59,243,144,68,59,90,151,68,59,172,157,68,59,233,163,68,59,17,170,68,59,36,176,68,59,34,182,68,59,11,188,68,59,223,193,68,59,158,199,68,59,72,205,68,59,221,210,68,59,92,216,68,59,199,221,68,59,29,227,68,59,94,232,68,59,137,237,68,59,160,242,68,59,162,247,68,59,143,252,68,59,102,1,69,59,41,6,69,59,214,10,69,59,111,15,69,59,242,19,69,59,97,24,69,59,186,28,69,59,254,32,69,59,46,
37,69,59,72,41,69,59,77,45,69,59,62,49,69,59,25,53,69,59,223,56,69,59,144,60,69,59,44,64,69,59,179,67,69,59,37,71,69,59,130,74,69,59,202,77,69,59,253,80,69,59,26,84,69,59,35,87,69,59,23,90,69,59,245,92,69,59,191,95,69,59,116,98,69,59,19,101,69,59,158,103,69,59,19,106,69,59,115,108,69,59,191,110,69,59,245,112,69,59,22,115,69,59,35,117,69,59,26,119,69,59,252,120,69,59,201,122,69,59,129,124,69,59,36,126,69,59,178,127,69,59,43,129,69,59,143,130,69,59,221,131,69,59,23,133,69,59,60,134,69,59,75,135,69,
59,70,136,69,59,44,137,69,59,252,137,69,59,184,138,69,59,94,139,69,59,240,139,69,59,108,140,69,59,212,140,69,59,38,141,69,59,99,141,69,59,139,141,69,59,159,141,69,59,157,141,69,59,134,141,69,59,90,141,69,59,25,141,69,59,195,140,69,59,89,140,69,59,217,139,69,59,68,139,69,59,154,138,69,59,219,137,69,59,7,137,69,59,30,136,69,59,32,135,69,59,12,134,69,59,228,132,69,59,167,131,69,59,85,130,69,59,238,128,69,59,114,127,69,59,225,125,69,59,59,124,69,59,128,122,69,59,175,120,69,59,202,118,69,59,208,116,69,
59,193,114,69,59,157,112,69,59,100,110,69,59,22,108,69,59,179,105,69,59,59,103,69,59,174,100,69,59,12,98,69,59,85,95,69,59,137,92,69,59,168,89,69,59,178,86,69,59,167,83,69,59,135,80,69,59,82,77,69,59,8,74,69,59,170,70,69,59,54,67,69,59,173,63,69,59,16,60,69,59,93,56,69,59,150,52,69,59,185,48,69,59,200,44,69,59,194,40,69,59,166,36,69,59,118,32,69,59,49,28,69,59,215,23,69,59,104,19,69,59,228,14,69,59,75,10,69,59,157,5,69,59,219,0,69,59,3,252,68,59,23,247,68,59,21,242,68,59,255,236,68,59,212,231,68,
59,148,226,68,59,63,221,68,59,213,215,68,59,86,210,68,59,195,204,68,59,26,199,68,59,93,193,68,59,138,187,68,59,163,181,68,59,167,175,68,59,150,169,68,59,113,163,68,59,54,157,68,59,231,150,68,59,131,144,68,59,9,138,68,59,124,131,68,59,217,124,68,59,33,118,68,59,85,111,68,59,115,104,68,59,125,97,68,59,114,90,68,59,83,83,68,59,30,76,68,59,213,68,68,59,119,61,68,59,4,54,68,59,124,46,68,59,224,38,68,59,46,31,68,59,104,23,68,59,141,15,68,59,158,7,68,59,153,255,67,59,128,247,67,59,82,239,67,59,16,231,67,
59,184,222,67,59,76,214,67,59,203,205,67,59,54,197,67,59,139,188,67,59,204,179,67,59,248,170,67,59,16,162,67,59,19,153,67,59,1,144,67,59,218,134,67,59,159,125,67,59,79,116,67,59,234,106,67,59,113,97,67,59,226,87,67,59,64,78,67,59,136,68,67,59,188,58,67,59,219,48,67,59,230,38,67,59,220,28,67,59,189,18,67,59,138,8,67,59,66,254,66,59,229,243,66,59,116,233,66,59,238,222,66,59,84,212,66,59,165,201,66,59,225,190,66,59,9,180,66,59,28,169,66,59,27,158,66,59,5,147,66,59,218,135,66,59,155,124,66,59,71,113,
66,59,223,101,66,59,98,90,66,59,209,78,66,59,43,67,66,59,113,55,66,59,162,43,66,59,190,31,66,59,198,19,66,59,186,7,66,59,153,251,65,59,99,239,65,59,25,227,65,59,187,214,65,59,72,202,65,59,193,189,65,59,37,177,65,59,116,164,65,59,176,151,65,59,214,138,65,59,233,125,65,59,231,112,65,59,208,99,65,59,165,86,65,59,102,73,65,59,18,60,65,59,170,46,65,59,45,33,65,59,156,19,65,59,247,5,65,59,61,248,64,59,111,234,64,59,141,220,64,59,150,206,64,59,139,192,64,59,107,178,64,59,55,164,64,59,239,149,64,59,147,135,
64,59,34,121,64,59,157,106,64,59,4,92,64,59,86,77,64,59,148,62,64,59,190,47,64,59,211,32,64,59,212,17,64,59,193,2,64,59,154,243,63,59,95,228,63,59,15,213,63,59,171,197,63,59,51,182,63,59,166,166,63,59,6,151,63,59,81,135,63,59,136,119,63,59,171,103,63,59,185,87,63,59,180,71,63,59,154,55,63,59,108,39,63,59,42,23,63,59,212,6,63,59,106,246,62,59,235,229,62,59,89,213,62,59,178,196,62,59,248,179,62,59,41,163,62,59,70,146,62,59,79,129,62,59,68,112,62,59,37,95,62,59,242,77,62,59,171,60,62,59,80,43,62,59,
224,25,62,59,93,8,62,59,198,246,61,59,27,229,61,59,91,211,61,59,136,193,61,59,161,175,61,59,166,157,61,59,151,139,61,59,116,121,61,59,61,103,61,59,242,84,61,59,147,66,61,59,32,48,61,59,154,29,61,59,255,10,61,59,81,248,60,59,142,229,60,59,184,210,60,59,206,191,60,59,208,172,60,59,190,153,60,59,153,134,60,59,95,115,60,59,18,96,60,59,177,76,60,59,60,57,60,59,180,37,60,59,23,18,60,59,103,254,59,59,163,234,59,59,203,214,59,59,224,194,59,59,225,174,59,59,206,154,59,59,167,134,59,59,109,114,59,59,31,94,
59,59,189,73,59,59,72,53,59,59,191,32,59,59,34,12,59,59,114,247,58,59,174,226,58,59,214,205,58,59,235,184,58,59,236,163,58,59,217,142,58,59,179,121,58,59,121,100,58,59,44,79,58,59,203,57,58,59,87,36,58,59,207,14,58,59,52,249,57,59,133,227,57,59,194,205,57,59,236,183,57,59,3,162,57,59,6,140,57,59,245,117,57,59,210,95,57,59,154,73,57,59,79,51,57,59,241,28,57,59,128,6,57,59,250,239,56,59,98,217,56,59,182,194,56,59,247,171,56,59,36,149,56,59,62,126,56,59,69,103,56,59,56,80,56,59,24,57,56,59,229,33,56,
59,158,10,56,59,69,243,55,59,215,219,55,59,87,196,55,59,195,172,55,59,28,149,55,59,98,125,55,59,149,101,55,59,180,77,55,59,192,53,55,59,185,29,55,59,159,5,55,59,113,237,54,59,48,213,54,59,221,188,54,59,118,164,54,59,252,139,54,59,110,115,54,59,206,90,54,59,27,66,54,59,84,41,54,59,123,16,54,59,142,247,53,59,142,222,53,59,124,197,53,59,86,172,53,59,29,147,53,59,209,121,53,59,114,96,53,59,1,71,53,59,124,45,53,59,228,19,53,59,58,250,52,59,124,224,52,59,171,198,52,59,200,172,52,59,210,146,52,59,200,120,
52,59,172,94,52,59,125,68,52,59,59,42,52,59,231,15,52,59,127,245,51,59,5,219,51,59,119,192,51,59,215,165,51,59,37,139,51,59,95,112,51,59,135,85,51,59,156,58,51,59,158,31,51,59,141,4,51,59,106,233,50,59,52,206,50,59,236,178,50,59,144,151,50,59,34,124,50,59,162,96,50,59,14,69,50,59,104,41,50,59,176,13,50,59,229,241,49,59,7,214,49,59,23,186,49,59,20,158,49,59,254,129,49,59,215,101,49,59,156,73,49,59,79,45,49,59,240,16,49,59,126,244,48,59,249,215,48,59,98,187,48,59,185,158,48,59,253,129,48,59,47,101,
48,59,78,72,48,59,91,43,48,59,86,14,48,59,62,241,47,59,20,212,47,59,215,182,47,59,136,153,47,59,39,124,47,59,179,94,47,59,46,65,47,59,150,35,47,59,235,5,47,59,47,232,46,59,96,202,46,59,127,172,46,59,139,142,46,59,134,112,46,59,110,82,46,59,68,52,46,59,8,22,46,59,186,247,45,59,90,217,45,59,231,186,45,59,99,156,45,59,204,125,45,59,35,95,45,59,105,64,45,59,156,33,45,59,189,2,45,59,204,227,44,59,201,196,44,59,180,165,44,59,141,134,44,59,84,103,44,59,10,72,44,59,173,40,44,59,62,9,44,59,189,233,43,59,43,
202,43,59,134,170,43,59,208,138,43,59,8,107,43,59,46,75,43,59,66,43,43,59,69,11,43,59,53,235,42,59,20,203,42,59,225,170,42,59,156,138,42,59,70,106,42,59,221,73,42,59,99,41,42,59,216,8,42,59,58,232,41,59,139,199,41,59,203,166,41,59,248,133,41,59,20,101,41,59,31,68,41,59,23,35,41,59,255,1,41,59,212,224,40,59,152,191,40,59,75,158,40,59,236,124,40,59,123,91,40,59,249,57,40,59,102,24,40,59,193,246,39,59,11,213,39,59,67,179,39,59,106,145,39,59,127,111,39,59,131,77,39,59,117,43,39,59,87,9,39,59,38,231,38,
59,229,196,38,59,146,162,38,59,46,128,38,59,184,93,38,59,50,59,38,59,154,24,38,59,241,245,37,59,54,211,37,59,107,176,37,59,142,141,37,59,160,106,37,59,161,71,37,59,144,36,37,59,111,1,37,59,60,222,36,59,248,186,36,59,164,151,36,59,62,116,36,59,199,80,36,59,63,45,36,59,166,9,36,59,252,229,35,59,65,194,35,59,117,158,35,59,152,122,35,59,170,86,35,59,171,50,35,59,156,14,35,59,123,234,34,59,73,198,34,59,7,162,34,59,180,125,34,59,80,89,34,59,219,52,34,59,85,16,34,59,191,235,33,59,23,199,33,59,95,162,33,
59,150,125,33,59,189,88,33,59,211,51,33,59,216,14,33,59,204,233,32,59,176,196,32,59,131,159,32,59,70,122,32,59,247,84,32,59,153,47,32,59,41,10,32,59,169,228,31,59,25,191,31,59,120,153,31,59,199,115,31,59,5,78,31,59,50,40,31,59,79,2,31,59,92,220,30,59,88,182,30,59,68,144,30,59,31,106,30,59,234,67,30,59,165,29,30,59,79,247,29,59,233,208,29,59,115,170,29,59,236,131,29,59,85,93,29,59,174,54,29,59,247,15,29,59,47,233,28,59,87,194,28,59,111,155,28,59,119,116,28,59,111,77,28,59,86,38,28,59,45,255,27,59,
245,215,27,59,172,176,27,59,83,137,27,59,234,97,27,59,113,58,27,59,232,18,27,59,78,235,26,59,165,195,26,59,236,155,26,59,35,116,26,59,74,76,26,59,98,36,26,59,105,252,25,59,96,212,25,59,72,172,25,59,31,132,25,59,231,91,25,59,159,51,25,59,71,11,25,59,223,226,24,59,104,186,24,59,225,145,24,59,74,105,24,59,164,64,24,59,237,23,24,59,39,239,23,59,82,198,23,59,108,157,23,59,120,116,23,59,115,75,23,59,95,34,23,59,59,249,22,59,8,208,22,59,198,166,22,59,115,125,22,59,18,84,22,59,161,42,22,59,32,1,22,59,144,
215,21,59,240,173,21,59,65,132,21,59,131,90,21,59,181,48,21,59,216,6,21,59,236,220,20,59,240,178,20,59,229,136,20,59,203,94,20,59,161,52,20,59,105,10,20,59,33,224,19,59,201,181,19,59,99,139,19,59,237,96,19,59,105,54,19,59,213,11,19,59,50,225,18,59,128,182,18,59,191,139,18,59,238,96,18,59,15,54,18,59,33,11,18,59,36,224,17,59,23,181,17,59,252,137,17,59,210,94,17,59,153,51,17,59,81,8,17,59,250,220,16,59,148,177,16,59,32,134,16,59,156,90,16,59,10,47,16,59,105,3,16,59,185,215,15,59,250,171,15,59,45,128,
15,59,81,84,15,59,102,40,15,59,109,252,14,59,101,208,14,59,78,164,14,59,40,120,14,59,244,75,14,59,178,31,14,59,97,243,13,59,1,199,13,59,147,154,13,59,22,110,13,59,139,65,13,59,241,20,13,59,73,232,12,59,146,187,12,59,205,142,12,59,250,97,12,59,24,53,12,59,40,8,12,59,41,219,11,59,28,174,11,59,1,129,11,59,216,83,11,59,160,38,11,59,90,249,10,59,6,204,10,59,164,158,10,59,51,113,10,59,181,67,10,59,40,22,10,59,141,232,9,59,228,186,9,59,45,141,9,59,104,95,9,59,148,49,9,59,179,3,9,59,196,213,8,59,199,167,
8,59,187,121,8,59,162,75,8,59,123,29,8,59,70,239,7,59,3,193,7,59,179,146,7,59,84,100,7,59,232,53,7,59,109,7,7,59,229,216,6,59,80,170,6,59,172,123,6,59,251,76,6,59,60,30,6,59,111,239,5,59,149,192,5,59,173,145,5,59,183,98,5,59,180,51,5,59,164,4,5,59,133,213,4,59,89,166,4,59,32,119,4,59,217,71,4,59,133,24,4,59,35,233,3,59,180,185,3,59,55,138,3,59,173,90,3,59,21,43,3,59,112,251,2,59,190,203,2,59,255,155,2,59,50,108,2,59,88,60,2,59,112,12,2,59,124,220,1,59,122,172,1,59,107,124,1,59,79,76,1,59,37,28,1,
59,239,235,0,59,171,187,0,59,91,139,0,59,253,90,0,59,146,42,0,59,53,244,255,58,43,147,255,58,7,50,255,58,202,208,254,58,114,111,254,58,1,14,254,58,118,172,253,58,209,74,253,58,18,233,252,58,58,135,252,58,72,37,252,58,60,195,251,58,23,97,251,58,216,254,250,58,128,156,250,58,15,58,250,58,132,215,249,58,223,116,249,58,34,18,249,58,75,175,248,58,91,76,248,58,81,233,247,58,47,134,247,58,244,34,247,58,159,191,246,58,49,92,246,58,171,248,245,58,11,149,245,58,83,49,245,58,130,205,244,58,152,105,244,58,149,
5,244,58,121,161,243,58,69,61,243,58,249,216,242,58,147,116,242,58,21,16,242,58,127,171,241,58,208,70,241,58,9,226,240,58,41,125,240,58,49,24,240,58,33,179,239,58,249,77,239,58,184,232,238,58,95,131,238,58,238,29,238,58,101,184,237,58,196,82,237,58,11,237,236,58,58,135,236,58,82,33,236,58,81,187,235,58,57,85,235,58,8,239,234,58,192,136,234,58,97,34,234,58,234,187,233,58,91,85,233,58,180,238,232,58,247,135,232,58,33,33,232,58,53,186,231,58,48,83,231,58,21,236,230,58,226,132,230,58,152,29,230,58,55,
182,229,58,191,78,229,58,48,231,228,58,137,127,228,58,204,23,228,58,248,175,227,58,12,72,227,58,10,224,226,58,241,119,226,58,193,15,226,58,123,167,225,58,29,63,225,58,169,214,224,58,31,110,224,58,126,5,224,58,198,156,223,58,248,51,223,58,20,203,222,58,25,98,222,58,7,249,221,58,224,143,221,58,162,38,221,58,78,189,220,58,228,83,220,58,99,234,219,58,205,128,219,58,32,23,219,58,94,173,218,58,134,67,218,58,151,217,217,58,147,111,217,58,121,5,217,58,74,155,216,58,4,49,216,58,169,198,215,58,57,92,215,58,
178,241,214,58,23,135,214,58,101,28,214,58,159,177,213,58,194,70,213,58,209,219,212,58,202,112,212,58,174,5,212,58,125,154,211,58,55,47,211,58,219,195,210,58,106,88,210,58,229,236,209,58,74,129,209,58,154,21,209,58,214,169,208,58,253,61,208,58,15,210,207,58,12,102,207,58,244,249,206,58,200,141,206,58,135,33,206,58,49,181,205,58,200,72,205,58,73,220,204,58,182,111,204,58,15,3,204,58,83,150,203,58,131,41,203,58,159,188,202,58,167,79,202,58,154,226,201,58,122,117,201,58,69,8,201,58,252,154,200,58,159,
45,200,58,47,192,199,58,170,82,199,58,18,229,198,58,102,119,198,58,166,9,198,58,210,155,197,58,235,45,197,58,240,191,196,58,226,81,196,58,192,227,195,58,139,117,195,58,66,7,195,58,230,152,194,58,119,42,194,58,244,187,193,58,94,77,193,58,181,222,192,58,249,111,192,58,41,1,192,58,71,146,191,58,82,35,191,58,73,180,190,58,46,69,190,58,0,214,189,58,191,102,189,58,108,247,188,58,6,136,188,58,141,24,188,58,1,169,187,58,99,57,187,58,178,201,186,58,239,89,186,58,26,234,185,58,50,122,185,58,56,10,185,58,43,
154,184,58,12,42,184,58,219,185,183,58,152,73,183,58,67,217,182,58,220,104,182,58,99,248,181,58,215,135,181,58,58,23,181,58,140,166,180,58,203,53,180,58,248,196,179,58,20,84,179,58,30,227,178,58,23,114,178,58,254,0,178,58,211,143,177,58,151,30,177,58,74,173,176,58,235,59,176,58,123,202,175,58,250,88,175,58,103,231,174,58,195,117,174,58,14,4,174,58,72,146,173,58,113,32,173,58,137,174,172,58,144,60,172,58,134,202,171,58,107,88,171,58,64,230,170,58,4,116,170,58,183,1,170,58,89,143,169,58,235,28,169,
58,108,170,168,58,221,55,168,58,61,197,167,58,141,82,167,58,204,223,166,58,251,108,166,58,26,250,165,58,41,135,165,58,40,20,165,58,22,161,164,58,244,45,164,58,195,186,163,58,129,71,163,58,47,212,162,58,206,96,162,58,93,237,161,58,220,121,161,58,75,6,161,58,170,146,160,58,250,30,160,58,59,171,159,58,108,55,159,58,141,195,158,58,159,79,158,58,161,219,157,58,148,103,157,58,120,243,156,58,77,127,156,58,18,11,156,58,201,150,155,58,112,34,155,58,8,174,154,58,145,57,154,58,11,197,153,58,119,80,153,58,211,
219,152,58,33,103,152,58,96,242,151,58,144,125,151,58,178,8,151,58,197,147,150,58,201,30,150,58,191,169,149,58,167,52,149,58,128,191,148,58,75,74,148,58,7,213,147,58,181,95,147,58,85,234,146,58,231,116,146,58,107,255,145,58,225,137,145,58,72,20,145,58,162,158,144,58,238,40,144,58,44,179,143,58,92,61,143,58,126,199,142,58,147,81,142,58,154,219,141,58,148,101,141,58,127,239,140,58,94,121,140,58,47,3,140,58,242,140,139,58,168,22,139,58,81,160,138,58,237,41,138,58,123,179,137,58,252,60,137,58,112,198,
136,58,215,79,136,58,49,217,135,58,127,98,135,58,191,235,134,58,242,116,134,58,24,254,133,58,50,135,133,58,63,16,133,58,64,153,132,58,51,34,132,58,27,171,131,58,245,51,131,58,195,188,130,58,133,69,130,58,59,206,129,58,228,86,129,58,129,223,128,58,17,104,128,58,44,225,127,58,29,242,126,58,245,2,126,58,182,19,125,58,95,36,124,58,240,52,123,58,105,69,122,58,203,85,121,58,21,102,120,58,72,118,119,58,99,134,118,58,104,150,117,58,85,166,116,58,43,182,115,58,234,197,114,58,146,213,113,58,36,229,112,58,159,
244,111,58,4,4,111,58,82,19,110,58,138,34,109,58,172,49,108,58,183,64,107,58,173,79,106,58,141,94,105,58,87,109,104,58,11,124,103,58,170,138,102,58,51,153,101,58,167,167,100,58,5,182,99,58,79,196,98,58,131,210,97,58,162,224,96,58,173,238,95,58,162,252,94,58,131,10,94,58,80,24,93,58,8,38,92,58,171,51,91,58,58,65,90,58,182,78,89,58,29,92,88,58,112,105,87,58,175,118,86,58,218,131,85,58,242,144,84,58,247,157,83,58,231,170,82,58,197,183,81,58,143,196,80,58,70,209,79,58,234,221,78,58,123,234,77,58,250,
246,76,58,101,3,76,58,190,15,75,58,4,28,74,58,56,40,73,58,90,52,72,58,105,64,71,58,103,76,70,58,82,88,69,58,43,100,68,58,243,111,67,58,169,123,66,58,77,135,65,58,223,146,64,58,97,158,63,58,209,169,62,58,47,181,61,58,125,192,60,58,186,203,59,58,230,214,58,58,1,226,57,58,11,237,56,58,5,248,55,58,238,2,55,58,199,13,54,58,143,24,53,58,72,35,52,58,240,45,51,58,136,56,50,58,17,67,49,58,138,77,48,58,243,87,47,58,76,98,46,58,150,108,45,58,209,118,44,58,253,128,43,58,25,139,42,58,38,149,41,58,37,159,40,58],
"i8",4,y.a+532480);
Q([20,169,39,58,245,178,38,58,199,188,37,58,139,198,36,58,64,208,35,58,231,217,34,58,128,227,33,58,10,237,32,58,135,246,31,58,245,255,30,58,86,9,30,58,169,18,29,58,239,27,28,58,39,37,27,58,82,46,26,58,111,55,25,58,127,64,24,58,130,73,23,58,120,82,22,58,98,91,21,58,62,100,20,58,14,109,19,58,209,117,18,58,136,126,17,58,50,135,16,58,209,143,15,58,99,152,14,58,233,160,13,58,99,169,12,58,209,177,11,58,51,186,10,58,138,194,9,58,213,202,8,58,21,211,7,58,74,219,6,58,115,227,5,58,145,235,4,58,165,243,3,58,
173,251,2,58,170,3,2,58,157,11,1,58,133,19,0,58,198,54,254,57,109,70,252,57,255,85,250,57,125,101,248,57,230,116,246,57,60,132,244,57,126,147,242,57,172,162,240,57,199,177,238,57,207,192,236,57,196,207,234,57,166,222,232,57,118,237,230,57,52,252,228,57,223,10,227,57,120,25,225,57,0,40,223,57,119,54,221,57,220,68,219,57,48,83,217,57,115,97,215,57,166,111,213,57,200,125,211,57,218,139,209,57,221,153,207,57,207,167,205,57,177,181,203,57,133,195,201,57,73,209,199,57,254,222,197,57,164,236,195,57,60,250,
193,57,198,7,192,57,65,21,190,57,175,34,188,57,15,48,186,57,97,61,184,57,166,74,182,57,222,87,180,57,9,101,178,57,39,114,176,57,57,127,174,57,62,140,172,57,56,153,170,57,38,166,168,57,8,179,166,57,222,191,164,57,170,204,162,57,106,217,160,57,32,230,158,57,203,242,156,57,108,255,154,57,2,12,153,57,143,24,151,57,17,37,149,57,138,49,147,57,250,61,145,57,97,74,143,57,191,86,141,57,20,99,139,57,96,111,137,57,165,123,135,57,225,135,133,57,21,148,131,57,66,160,129,57,206,88,127,57,10,113,123,57,55,137,119,
57,87,161,115,57,106,185,111,57,112,209,107,57,105,233,103,57,86,1,100,57,56,25,96,57,15,49,92,57,218,72,88,57,156,96,84,57,83,120,80,57,1,144,76,57,166,167,72,57,66,191,68,57,214,214,64,57,98,238,60,57,231,5,57,57,101,29,53,57,220,52,49,57,76,76,45,57,183,99,41,57,29,123,37,57,126,146,33,57,218,169,29,57,50,193,25,57,134,216,21,57,215,239,17,57,38,7,14,57,113,30,10,57,187,53,6,57,3,77,2,57,148,200,252,56,33,247,244,56,172,37,237,56,56,84,229,56,197,130,221,56,83,177,213,56,228,223,205,56,120,14,
198,56,17,61,190,56,175,107,182,56,83,154,174,56,253,200,166,56,175,247,158,56,106,38,151,56,45,85,143,56,251,131,135,56,168,101,127,56,113,195,111,56,83,33,96,56,81,127,80,56,106,221,64,56,162,59,49,56,249,153,33,56,114,248,17,56,15,87,2,56,159,107,229,55,110,41,198,55,141,231,166,55,0,166,135,55,147,201,80,55,218,71,18,55,186,141,167,54,14,53,170,53,69,227,36,182,235,110,207,182,68,53,38,183,54,178,100,183,34,151,145,183,181,212,176,183,208,17,208,183,111,78,239,183,72,69,7,184,23,227,22,184,163,
128,38,184,235,29,54,184,237,186,69,184,168,87,85,184,25,244,100,184,63,144,116,184,12,22,130,184,210,227,137,184,111,177,145,184,228,126,153,184,47,76,161,184,80,25,169,184,69,230,176,184,14,179,184,184,170,127,192,184,25,76,200,184,89,24,208,184,105,228,215,184,73,176,223,184,248,123,231,184,118,71,239,184,192,18,247,184,215,221,254,184,93,84,3,185,179,57,7,185,239,30,11,185,15,4,15,185,19,233,18,185,251,205,22,185,198,178,26,185,117,151,30,185,5,124,34,185,120,96,38,185,205,68,42,185,2,41,46,185,
25,13,50,185,16,241,53,185,231,212,57,185,157,184,61,185,51,156,65,185,168,127,69,185,251,98,73,185,44,70,77,185,58,41,81,185,38,12,85,185,238,238,88,185,146,209,92,185,19,180,96,185,111,150,100,185,166,120,104,185,184,90,108,185,164,60,112,185,105,30,116,185,8,0,120,185,129,225,123,185,209,194,127,185,253,209,129,185,126,194,131,185,234,178,133,185,65,163,135,185,132,147,137,185,178,131,139,185,203,115,141,185,206,99,143,185,188,83,145,185,148,67,147,185,86,51,149,185,2,35,151,185,152,18,153,185,
23,2,155,185,127,241,156,185,208,224,158,185,11,208,160,185,45,191,162,185,56,174,164,185,44,157,166,185,7,140,168,185,202,122,170,185,117,105,172,185,7,88,174,185,128,70,176,185,224,52,178,185,39,35,180,185,85,17,182,185,105,255,183,185,99,237,185,185,67,219,187,185,8,201,189,185,180,182,191,185,68,164,193,185,186,145,195,185,21,127,197,185,84,108,199,185,120,89,201,185,128,70,203,185,108,51,205,185,61,32,207,185,241,12,209,185,136,249,210,185,3,230,212,185,97,210,214,185,162,190,216,185,197,170,
218,185,203,150,220,185,179,130,222,185,125,110,224,185,42,90,226,185,183,69,228,185,39,49,230,185,119,28,232,185,169,7,234,185,188,242,235,185,175,221,237,185,130,200,239,185,54,179,241,185,202,157,243,185,62,136,245,185,146,114,247,185,196,92,249,185,215,70,251,185,200,48,253,185,152,26,255,185,35,130,0,186,234,118,1,186,159,107,2,186,68,96,3,186,216,84,4,186,90,73,5,186,203,61,6,186,43,50,7,186,121,38,8,186,182,26,9,186,225,14,10,186,250,2,11,186,1,247,11,186,247,234,12,186,218,222,13,186,171,
210,14,186,106,198,15,186,22,186,16,186,176,173,17,186,55,161,18,186,172,148,19,186,13,136,20,186,92,123,21,186,152,110,22,186,193,97,23,186,214,84,24,186,217,71,25,186,200,58,26,186,163,45,27,186,107,32,28,186,31,19,29,186,191,5,30,186,75,248,30,186,196,234,31,186,40,221,32,186,120,207,33,186,180,193,34,186,219,179,35,186,238,165,36,186,237,151,37,186,214,137,38,186,171,123,39,186,107,109,40,186,22,95,41,186,172,80,42,186,45,66,43,186,152,51,44,186,238,36,45,186,46,22,46,186,89,7,47,186,111,248,
47,186,110,233,48,186,88,218,49,186,43,203,50,186,233,187,51,186,144,172,52,186,33,157,53,186,156,141,54,186,0,126,55,186,77,110,56,186,132,94,57,186,164,78,58,186,173,62,59,186,160,46,60,186,123,30,61,186,63,14,62,186,236,253,62,186,129,237,63,186,255,220,64,186,101,204,65,186,180,187,66,186,235,170,67,186,10,154,68,186,17,137,69,186,0,120,70,186,215,102,71,186,150,85,72,186,60,68,73,186,202,50,74,186,63,33,75,186,156,15,76,186,224,253,76,186,11,236,77,186,29,218,78,186,22,200,79,186,246,181,80,
186,189,163,81,186,106,145,82,186,254,126,83,186,120,108,84,186,217,89,85,186,32,71,86,186,77,52,87,186,97,33,88,186,90,14,89,186,57,251,89,186,254,231,90,186,169,212,91,186,57,193,92,186,175,173,93,186,11,154,94,186,75,134,95,186,113,114,96,186,124,94,97,186,108,74,98,186,64,54,99,186,250,33,100,186,152,13,101,186,27,249,101,186,131,228,102,186,207,207,103,186,255,186,104,186,20,166,105,186,12,145,106,186,233,123,107,186,170,102,108,186,78,81,109,186,215,59,110,186,67,38,111,186,146,16,112,186,197,
250,112,186,220,228,113,186,213,206,114,186,178,184,115,186,114,162,116,186,21,140,117,186,155,117,118,186,4,95,119,186,79,72,120,186,125,49,121,186,142,26,122,186,129,3,123,186,86,236,123,186,13,213,124,186,167,189,125,186,35,166,126,186,128,142,127,186,96,59,128,186,112,175,128,186,114,35,129,186,100,151,129,186,71,11,130,186,27,127,130,186,223,242,130,186,148,102,131,186,57,218,131,186,207,77,132,186,86,193,132,186,204,52,133,186,52,168,133,186,139,27,134,186,211,142,134,186,11,2,135,186,51,117,
135,186,75,232,135,186,83,91,136,186,75,206,136,186,52,65,137,186,12,180,137,186,212,38,138,186,140,153,138,186,52,12,139,186,203,126,139,186,82,241,139,186,201,99,140,186,48,214,140,186,134,72,141,186,203,186,141,186,0,45,142,186,37,159,142,186,56,17,143,186,59,131,143,186,46,245,143,186,15,103,144,186,224,216,144,186,160,74,145,186,79,188,145,186,237,45,146,186,122,159,146,186,246,16,147,186,97,130,147,186,187,243,147,186,3,101,148,186,59,214,148,186,97,71,149,186,118,184,149,186,121,41,150,186,
107,154,150,186,75,11,151,186,26,124,151,186,216,236,151,186,132,93,152,186,30,206,152,186,166,62,153,186,29,175,153,186,130,31,154,186,213,143,154,186,22,0,155,186,70,112,155,186,99,224,155,186,110,80,156,186,104,192,156,186,79,48,157,186,36,160,157,186,231,15,158,186,151,127,158,186,53,239,158,186,193,94,159,186,59,206,159,186,162,61,160,186,247,172,160,186,57,28,161,186,105,139,161,186,134,250,161,186,144,105,162,186,136,216,162,186,109,71,163,186,63,182,163,186,254,36,164,186,170,147,164,186,
68,2,165,186,202,112,165,186,62,223,165,186,158,77,166,186,236,187,166,186,38,42,167,186,77,152,167,186,97,6,168,186,97,116,168,186,78,226,168,186,40,80,169,186,239,189,169,186,161,43,170,186,65,153,170,186,205,6,171,186,69,116,171,186,170,225,171,186,251,78,172,186,56,188,172,186,97,41,173,186,119,150,173,186,121,3,174,186,103,112,174,186,64,221,174,186,6,74,175,186,184,182,175,186,86,35,176,186,224,143,176,186,85,252,176,186,182,104,177,186,3,213,177,186,60,65,178,186,97,173,178,186,113,25,179,
186,108,133,179,186,83,241,179,186,38,93,180,186,228,200,180,186,141,52,181,186,34,160,181,186,162,11,182,186,13,119,182,186,99,226,182,186,165,77,183,186,210,184,183,186,234,35,184,186,237,142,184,186,218,249,184,186,179,100,185,186,119,207,185,186,38,58,186,186,191,164,186,186,67,15,187,186,178,121,187,186,12,228,187,186,80,78,188,186,127,184,188,186,153,34,189,186,157,140,189,186,139,246,189,186,100,96,190,186,39,202,190,186,213,51,191,186,109,157,191,186,239,6,192,186,92,112,192,186,178,217,192,
186,243,66,193,186,30,172,193,186,51,21,194,186,50,126,194,186,27,231,194,186,237,79,195,186,170,184,195,186,81,33,196,186,225,137,196,186,91,242,196,186,191,90,197,186,12,195,197,186,67,43,198,186,100,147,198,186,110,251,198,186,98,99,199,186,63,203,199,186,5,51,200,186,181,154,200,186,79,2,201,186,209,105,201,186,61,209,201,186,146,56,202,186,208,159,202,186,247,6,203,186,8,110,203,186,1,213,203,186,228,59,204,186,175,162,204,186,99,9,205,186,0,112,205,186,134,214,205,186,245,60,206,186,77,163,
206,186,141,9,207,186,182,111,207,186,199,213,207,186,193,59,208,186,164,161,208,186,111,7,209,186,34,109,209,186,190,210,209,186,67,56,210,186,176,157,210,186,5,3,211,186,66,104,211,186,103,205,211,186,117,50,212,186,107,151,212,186,72,252,212,186,14,97,213,186,188,197,213,186,82,42,214,186,208,142,214,186,54,243,214,186,131,87,215,186,184,187,215,186,213,31,216,186,218,131,216,186,199,231,216,186,155,75,217,186,87,175,217,186,250,18,218,186,133,118,218,186,247,217,218,186,81,61,219,186,146,160,
219,186,187,3,220,186,202,102,220,186,193,201,220,186,160,44,221,186,101,143,221,186,18,242,221,186,166,84,222,186,33,183,222,186,131,25,223,186,204,123,223,186,252,221,223,186,19,64,224,186,16,162,224,186,245,3,225,186,192,101,225,186,115,199,225,186,11,41,226,186,139,138,226,186,241,235,226,186,62,77,227,186,113,174,227,186,139,15,228,186,140,112,228,186,115,209,228,186,64,50,229,186,244,146,229,186,142,243,229,186,14,84,230,186,116,180,230,186,193,20,231,186,244,116,231,186,13,213,231,186,12,53,
232,186,242,148,232,186,189,244,232,186,110,84,233,186,5,180,233,186,131,19,234,186,230,114,234,186,46,210,234,186,93,49,235,186,113,144,235,186,108,239,235,186,75,78,236,186,17,173,236,186,188,11,237,186,76,106,237,186,194,200,237,186,30,39,238,186,95,133,238,186,134,227,238,186,145,65,239,186,131,159,239,186,89,253,239,186,21,91,240,186,182,184,240,186,60,22,241,186,167,115,241,186,248,208,241,186,45,46,242,186,72,139,242,186,71,232,242,186,44,69,243,186,245,161,243,186,163,254,243,186,55,91,244,
186,175,183,244,186,11,20,245,186,77,112,245,186,115,204,245,186,126,40,246,186,109,132,246,186,65,224,246,186,250,59,247,186,151,151,247,186,25,243,247,186,127,78,248,186,201,169,248,186,248,4,249,186,11,96,249,186,3,187,249,186,223,21,250,186,159,112,250,186,67,203,250,186,203,37,251,186,56,128,251,186,136,218,251,186,189,52,252,186,213,142,252,186,210,232,252,186,178,66,253,186,119,156,253,186,31,246,253,186,171,79,254,186,27,169,254,186,110,2,255,186,166,91,255,186,193,180,255,186,224,6,0,187,
81,51,0,187,180,95,0,187,8,140,0,187,79,184,0,187,135,228,0,187,177,16,1,187,205,60,1,187,218,104,1,187,217,148,1,187,201,192,1,187,172,236,1,187,128,24,2,187,69,68,2,187,252,111,2,187,165,155,2,187,63,199,2,187,202,242,2,187,72,30,3,187,182,73,3,187,22,117,3,187,104,160,3,187,171,203,3,187,223,246,3,187,5,34,4,187,28,77,4,187,37,120,4,187,31,163,4,187,10,206,4,187,231,248,4,187,181,35,5,187,116,78,5,187,36,121,5,187,198,163,5,187,89,206,5,187,221,248,5,187,83,35,6,187,185,77,6,187,17,120,6,187,90,
162,6,187,148,204,6,187,191,246,6,187,219,32,7,187,232,74,7,187,231,116,7,187,214,158,7,187,182,200,7,187,136,242,7,187,74,28,8,187,254,69,8,187,162,111,8,187,55,153,8,187,190,194,8,187,53,236,8,187,157,21,9,187,246,62,9,187,64,104,9,187,122,145,9,187,166,186,9,187,194,227,9,187,207,12,10,187,205,53,10,187,188,94,10,187,155,135,10,187,107,176,10,187,44,217,10,187,222,1,11,187,128,42,11,187,19,83,11,187,151,123,11,187,11,164,11,187,112,204,11,187,197,244,11,187,11,29,12,187,66,69,12,187,105,109,12,
187,129,149,12,187,137,189,12,187,130,229,12,187,107,13,13,187,69,53,13,187,15,93,13,187,201,132,13,187,117,172,13,187,16,212,13,187,156,251,13,187,24,35,14,187,133,74,14,187,226,113,14,187,47,153,14,187,109,192,14,187,155,231,14,187,185,14,15,187,199,53,15,187,198,92,15,187,181,131,15,187,148,170,15,187,100,209,15,187,36,248,15,187,211,30,16,187,115,69,16,187,4,108,16,187,132,146,16,187,244,184,16,187,85,223,16,187,165,5,17,187,230,43,17,187,23,82,17,187,56,120,17,187,72,158,17,187,73,196,17,187,
58,234,17,187,27,16,18,187,236,53,18,187,173,91,18,187,93,129,18,187,254,166,18,187,142,204,18,187,15,242,18,187,127,23,19,187,223,60,19,187,47,98,19,187,111,135,19,187,159,172,19,187,190,209,19,187,206,246,19,187,205,27,20,187,188,64,20,187,154,101,20,187,105,138,20,187,39,175,20,187,212,211,20,187,114,248,20,187,255,28,21,187,124,65,21,187,232,101,21,187,68,138,21,187,144,174,21,187,203,210,21,187,246,246,21,187,16,27,22,187,26,63,22,187,20,99,22,187,253,134,22,187,214,170,22,187,158,206,22,187,
85,242,22,187,253,21,23,187,147,57,23,187,25,93,23,187,143,128,23,187,244,163,23,187,72,199,23,187,139,234,23,187,191,13,24,187,225,48,24,187,243,83,24,187,244,118,24,187,228,153,24,187,196,188,24,187,147,223,24,187,81,2,25,187,255,36,25,187,156,71,25,187,40,106,25,187,163,140,25,187,14,175,25,187,104,209,25,187,177,243,25,187,233,21,26,187,16,56,26,187,38,90,26,187,44,124,26,187,33,158,26,187,5,192,26,187,215,225,26,187,153,3,27,187,75,37,27,187,235,70,27,187,122,104,27,187,248,137,27,187,101,171,
27,187,193,204,27,187,13,238,27,187,71,15,28,187,112,48,28,187,136,81,28,187,143,114,28,187,133,147,28,187,106,180,28,187,62,213,28,187,0,246,28,187,178,22,29,187,82,55,29,187,226,87,29,187,96,120,29,187,205,152,29,187,40,185,29,187,115,217,29,187,172,249,29,187,212,25,30,187,235,57,30,187,241,89,30,187,229,121,30,187,200,153,30,187,154,185,30,187,90,217,30,187,10,249,30,187,167,24,31,187,52,56,31,187,175,87,31,187,25,119,31,187,113,150,31,187,184,181,31,187,238,212,31,187,18,244,31,187,37,19,32,
187,38,50,32,187,22,81,32,187,245,111,32,187,194,142,32,187,125,173,32,187,39,204,32,187,192,234,32,187,71,9,33,187,188,39,33,187,32,70,33,187,115,100,33,187,179,130,33,187,227,160,33,187,0,191,33,187,12,221,33,187,7,251,33,187,239,24,34,187,199,54,34,187,140,84,34,187,64,114,34,187,226,143,34,187,115,173,34,187,242,202,34,187,95,232,34,187,186,5,35,187,4,35,35,187,60,64,35,187,98,93,35,187,118,122,35,187,121,151,35,187,106,180,35,187,73,209,35,187,22,238,35,187,210,10,36,187,123,39,36,187,19,68,
36,187,153,96,36,187,13,125,36,187,111,153,36,187,192,181,36,187,254,209,36,187,43,238,36,187,69,10,37,187,78,38,37,187,69,66,37,187,41,94,37,187,252,121,37,187,189,149,37,187,108,177,37,187,9,205,37,187,148,232,37,187,13,4,38,187,116,31,38,187,200,58,38,187,11,86,38,187,60,113,38,187,91,140,38,187,103,167,38,187,98,194,38,187,74,221,38,187,33,248,38,187,229,18,39,187,151,45,39,187,55,72,39,187,197,98,39,187,64,125,39,187,170,151,39,187,1,178,39,187,70,204,39,187,121,230,39,187,154,0,40,187,168,26,
40,187,165,52,40,187,143,78,40,187,103,104,40,187,44,130,40,187,223,155,40,187,128,181,40,187,15,207,40,187,140,232,40,187,246,1,41,187,78,27,41,187,147,52,41,187,198,77,41,187,231,102,41,187,246,127,41,187,242,152,41,187,219,177,41,187,179,202,41,187,120,227,41,187,42,252,41,187,202,20,42,187,88,45,42,187,211,69,42,187,60,94,42,187,147,118,42,187,215,142,42,187,8,167,42,187,39,191,42,187,52,215,42,187,46,239,42,187,21,7,43,187,234,30,43,187,173,54,43,187,93,78,43,187,250,101,43,187,133,125,43,187,
254,148,43,187,100,172,43,187,183,195,43,187,247,218,43,187,38,242,43,187,65,9,44,187,74,32,44,187,64,55,44,187,36,78,44,187,245,100,44,187,179,123,44,187,95,146,44,187,248,168,44,187,126,191,44,187,242,213,44,187,83,236,44,187,161,2,45,187,221,24,45,187,6,47,45,187,28,69,45,187,31,91,45,187,16,113,45,187,238,134,45,187,185,156,45,187,114,178,45,187,24,200,45,187,171,221,45,187,43,243,45,187,152,8,46,187,243,29,46,187,58,51,46,187,111,72,46,187,145,93,46,187,161,114,46,187,157,135,46,187,135,156,
46,187,94,177,46,187,34,198,46,187,211,218,46,187,113,239,46,187,252,3,47,187,116,24,47,187,218,44,47,187,45,65,47,187,108,85,47,187,153,105,47,187,179,125,47,187,186,145,47,187,174,165,47,187,143,185,47,187,93,205,47,187,24,225,47,187,192,244,47,187,85,8,48,187,215,27,48,187,70,47,48,187,162,66,48,187,235,85,48,187,33,105,48,187,69,124,48,187,85,143,48,187,82,162,48,187,60,181,48,187,18,200,48,187,214,218,48,187,135,237,48,187,37,0,49,187,175,18,49,187,39,37,49,187,139,55,49,187,221,73,49,187,27,
92,49,187,70,110,49,187,94,128,49,187,99,146,49,187,85,164,49,187,52,182,49,187,255,199,49,187,183,217,49,187,93,235,49,187,239,252,49,187,110,14,50,187,217,31,50,187,50,49,50,187,119,66,50,187,169,83,50,187,200,100,50,187,212,117,50,187,204,134,50,187,177,151,50,187,132,168,50,187,66,185,50,187,238,201,50,187,134,218,50,187,11,235,50,187,125,251,50,187,220,11,51,187,39,28,51,187,95,44,51,187,132,60,51,187,149,76,51,187,147,92,51,187,126,108,51,187,86,124,51,187,26,140,51,187,203,155,51,187,105,171,
51,187,243,186,51,187,106,202,51,187,206,217,51,187,30,233,51,187,91,248,51,187,132,7,52,187,155,22,52,187,158,37,52,187,141,52,52,187,105,67,52,187,50,82,52,187,231,96,52,187,137,111,52,187,24,126,52,187,147,140,52,187,251,154,52,187,79,169,52,187,144,183,52,187,190,197,52,187,216,211,52,187,223,225,52,187,210,239,52,187,178,253,52,187,126,11,53,187,55,25,53,187,221,38,53,187,111,52,53,187,237,65,53,187,88,79,53,187,176,92,53,187,244,105,53,187,37,119,53,187,66,132,53,187,76,145,53,187,66,158,53,
187,37,171,53,187,244,183,53,187,176,196,53,187,88,209,53,187,236,221,53,187,110,234,53,187,219,246,53,187,53,3,54,187,124,15,54,187,175,27,54,187,206,39,54,187,218,51,54,187,211,63,54,187,184,75,54,187,137,87,54,187,71,99,54,187,241,110,54,187,135,122,54,187,10,134,54,187,122,145,54,187,214,156,54,187,30,168,54,187,83,179,54,187,116,190,54,187,129,201,54,187,123,212,54,187,98,223,54,187,52,234,54,187,243,244,54,187,159,255,54,187,55,10,55,187,187,20,55,187,44,31,55,187,137,41,55,187,210,51,55,187,
8,62,55,187,42,72,55,187,56,82,55,187,51,92,55,187,26,102,55,187,238,111,55,187,174,121,55,187,90,131,55,187,243,140,55,187,120,150,55,187,233,159,55,187,70,169,55,187,144,178,55,187,199,187,55,187,233,196,55,187,248,205,55,187,243,214,55,187,219,223,55,187,175,232,55,187,111,241,55,187,27,250,55,187,180,2,56,187,57,11,56,187,170,19,56,187,8,28,56,187,82,36,56,187,136,44,56,187,171,52,56,187,185,60,56,187,181,68,56,187,156,76,56,187,112,84,56,187,48,92,56,187,220,99,56,187,116,107,56,187,249,114,
56,187,106,122,56,187,199,129,56,187,17,137,56,187,71,144,56,187,105,151,56,187,119,158,56,187,114,165,56,187,89,172,56,187,44,179,56,187,235,185,56,187,151,192,56,187,47,199,56,187,179,205,56,187,35,212,56,187,128,218,56,187,201,224,56,187,254,230,56,187,31,237,56,187,45,243,56,187,39,249,56,187,13,255,56,187,223,4,57,187,157,10,57,187,72,16,57,187,223,21,57,187,98,27,57,187,210,32,57,187,45,38,57,187,117,43,57,187,169,48,57,187,202,53,57,187,214,58,57,187,207,63,57,187,180,68,57,187,133,73,57,187,
66,78,57,187,236,82,57,187,130,87,57,187,4,92,57,187,114,96,57,187,204,100,57,187,19,105,57,187,70,109,57,187,101,113,57,187,112,117,57,187,104,121,57,187,75,125,57,187,27,129,57,187,215,132,57,187,128,136,57,187,20,140,57,187,149,143,57,187,2,147,57,187,91,150,57,187,160,153,57,187,210,156,57,187,239,159,57,187,249,162,57,187,240,165,57,187,210,168,57,187,160,171,57,187,91,174,57,187,2,177,57,187,149,179,57,187,20,182,57,187,128,184,57,187,216,186,57,187,28,189,57,187,76,191,57,187,104,193,57,187,
112,195,57,187,101,197,57,187,70,199,57,187,19,201,57,187,205,202,57,187,114,204,57,187,4,206,57,187,130,207,57,187,236,208,57,187,66,210,57,187,133,211,57,187,179,212,57,187,206,213,57,187,213,214,57,187,201,215,57,187,168,216,57,187,116,217,57,187,44,218,57,187,208,218,57,187,96,219,57,187,221,219,57,187,70,220,57,187,155,220,57,187,220,220,57,187,9,221,57,187,35,221,57,187,41,221,57,187,27,221,57,187,249,220,57,187,196,220,57,187,122,220,57,187,29,220,57,187,172,219,57,187,40,219,57,187,143,218,
57,187,227,217,57,187,35,217,57,187,80,216,57,187,104,215,57,187,109,214,57,187,94,213,57,187,59,212,57,187,4,211,57,187,186,209,57,187,92,208,57,187,234,206,57,187,100,205,57,187,203,203,57,187,30,202,57,187,93,200,57,187,136,198,57,187,160,196,57,187,164,194,57,187,148,192,57,187,112,190,57,187,57,188,57,187,237,185,57,187,142,183,57,187,28,181,57,187,149,178,57,187,251,175,57,187,77,173,57,187,140,170,57,187,183,167,57,187,206,164,57,187,209,161,57,187,192,158,57,187,156,155,57,187,100,152,57,
187,25,149,57,187,185,145,57,187,70,142,57,187,191,138,57,187,37,135,57,187,119,131,57,187,181,127,57,187,223,123,57,187,246,119,57,187,249,115,57,187,232,111,57,187,196,107,57,187,140,103,57,187,64,99,57,187,225,94,57,187,110,90,57,187,231,85,57,187,77,81,57,187,159,76,57,187,221,71,57,187,7,67,57,187,30,62,57,187,34,57,57,187,17,52,57,187,237,46,57,187,182,41,57,187,106,36,57,187,11,31,57,187,153,25,57,187,18,20,57,187,121,14,57,187,203,8,57,187,10,3,57,187,53,253,56,187,77,247,56,187,81,241,56,
187,65,235,56,187,30,229,56,187,231,222,56,187,157,216,56,187,63,210,56,187,205,203,56,187,72,197,56,187,175,190,56,187,3,184,56,187,67,177,56,187,112,170,56,187,136,163,56,187,142,156,56,187,128,149,56,187,94,142,56,187,41,135,56,187,224,127,56,187,131,120,56,187,19,113,56,187,144,105,56,187,249,97,56,187,78,90,56,187,144,82,56,187,191,74,56,187,217,66,56,187,225,58,56,187,213,50,56,187,181,42,56,187,130,34,56,187,59,26,56,187,225,17,56,187,115,9,56,187,242,0,56,187,94,248,55,187,182,239,55,187,
250,230,55,187,43,222,55,187,72,213,55,187,83,204,55,187,73,195,55,187,44,186,55,187,252,176,55,187,184,167,55,187,97,158,55,187,247,148,55,187,121,139,55,187,231,129,55,187,66,120,55,187,138,110,55,187,191,100,55,187,224,90,55,187,237,80,55,187,231,70,55,187,206,60,55,187,162,50,55,187,98,40,55,187,14,30,55,187,168,19,55,187,46,9,55,187,160,254,54,187,0,244,54,187,75,233,54,187,132,222,54,187,169,211,54,187,187,200,54,187,186,189,54,187,165,178,54,187,125,167,54,187,66,156,54,187,243,144,54,187,
146,133,54,187,28,122,54,187,148,110,54,187,248,98,54,187,73,87,54,187,135,75,54,187,178,63,54,187,201,51,54,187,205,39,54,187,190,27,54,187,155,15,54,187,101,3,54,187,28,247,53,187,192,234,53,187,81,222,53,187,207,209,53,187,57,197,53,187,144,184,53,187,212,171,53,187,5,159,53,187,34,146,53,187,44,133,53,187,36,120,53,187,8,107,53,187,217,93,53,187,150,80,53,187,65,67,53,187,217,53,53,187,93,40,53,187,206,26,53,187,45,13,53,187,120,255,52,187,176,241,52,187,213,227,52,187,230,213,52,187,229,199,
52,187,209,185,52,187,170,171,52,187,111,157,52,187,34,143,52,187,193,128,52,187,78,114,52,187,199,99,52,187,46,85,52,187,129,70,52,187,193,55,52,187,239,40,52,187,9,26,52,187,17,11,52,187,5,252,51,187,231,236,51,187,181,221,51,187,113,206,51,187,26,191,51,187,175,175,51,187,50,160,51,187,162,144,51,187,255,128,51,187,73,113,51,187,128,97,51,187,164,81,51,187,182,65,51,187,180,49,51,187,160,33,51,187,120,17,51,187,62,1,51,187,241,240,50,187,145,224,50,187,31,208,50,187,153,191,50,187,1,175,50,187,
86,158,50,187,152,141,50,187,199,124,50,187,228,107,50,187,238,90,50,187,229,73,50,187,201,56,50,187,154,39,50,187,89,22,50,187,5,5,50,187,158,243,49,187,37,226,49,187,152,208,49,187,249,190,49,187,72,173,49,187,132,155,49,187,173,137,49,187,195,119,49,187,199,101,49,187,184,83,49,187,150,65,49,187,98,47,49,187,27,29,49,187,194,10,49,187,85,248,48,187,215,229,48,187,69,211,48,187,161,192,48,187,235,173,48,187,34,155,48,187,70,136,48,187,88,117,48,187,88,98,48,187,68,79,48,187,31,60,48,187,230,40,
48,187,155,21,48,187,62,2,48,187,206,238,47,187,76,219,47,187,183,199,47,187,16,180,47,187,87,160,47,187,139,140,47,187,172,120,47,187,187,100,47,187,184,80,47,187,162,60,47,187,122,40,47,187,63,20,47,187,242,255,46,187,147,235,46,187,33,215,46,187,157,194,46,187,7,174,46,187,94,153,46,187,163,132,46,187,214,111,46,187,246,90,46,187,4,70,46,187,0,49,46,187,234,27,46,187,193,6,46,187,134,241,45,187,57,220,45,187,217,198,45,187,103,177,45,187,227,155,45,187,77,134,45,187,165,112,45,187,234,90,45,187,
30,69,45,187,63,47,45,187,78,25,45,187,75,3,45,187,53,237,44,187,14,215,44,187,212,192,44,187,137,170,44,187,43,148,44,187,187,125,44,187,57,103,44,187,165,80,44,187,255,57,44,187,71,35,44,187,125,12,44,187,161,245,43,187,179,222,43,187,178,199,43,187,160,176,43,187,124,153,43,187,70,130,43,187,254,106,43,187,164,83,43,187,56,60,43,187,186,36,43,187,42,13,43,187,136,245,42,187,213,221,42,187,15,198,42,187,56,174,42,187,79,150,42,187,84,126,42,187,71,102,42,187,40,78,42,187,247,53,42,187,181,29,42,
187,97,5,42,187,251,236,41,187,131,212,41,187,249,187,41,187,94,163,41,187,177,138,41,187,242,113,41,187,34,89,41,187,63,64,41,187,75,39,41,187,70,14,41,187,47,245,40,187,6,220,40,187,203,194,40,187,127,169,40,187,33,144,40,187,177,118,40,187,48,93,40,187,157,67,40,187,249,41,40,187,67,16,40,187,124,246,39,187,163,220,39,187,184,194,39,187,188,168,39,187,175,142,39,187,144,116,39,187,95,90,39,187,29,64,39,187,202,37,39,187,101,11,39,187,238,240,38,187,102,214,38,187,205,187,38,187,34,161,38,187,102,
134,38,187,153,107,38,187,186,80,38,187,202,53,38,187,200,26,38,187,181,255,37,187,145,228,37,187,91,201,37,187,21,174,37,187,188,146,37,187,83,119,37,187,216,91,37,187,76,64,37,187,175,36,37,187,1,9,37,187,65,237,36,187,112,209,36,187,142,181,36,187,155,153,36,187,151,125,36,187,129,97,36,187,91,69,36,187,35,41,36,187,218,12,36,187,128,240,35,187,21,212,35,187,153,183,35,187,12,155,35,187,109,126,35,187,190,97,35,187,254,68,35,187,44,40,35,187,74,11,35,187,87,238,34,187,82,209,34,187,61,180,34,187,
23,151,34,187,224,121,34,187,152,92,34,187,63,63,34,187,213,33,34,187,90,4,34,187,206,230,33,187,50,201,33,187,132,171,33,187,198,141,33,187,247,111,33,187,23,82,33,187,39,52,33,187,37,22,33,187,19,248,32,187,240,217,32,187,189,187,32,187,120,157,32,187,35,127,32,187,189,96,32,187,71,66,32,187,192,35,32,187,40,5,32,187,127,230,31,187,198,199,31,187,253,168,31,187,34,138,31,187,55,107,31,187,60,76,31,187,48,45,31,187,19,14,31,187,230,238,30,187,169,207,30,187,91,176,30,187,252,144,30,187,141,113,30,
187,13,82,30,187,125,50,30,187,221,18,30,187,44,243,29,187,107,211,29,187,153,179,29,187,183,147,29,187,196,115,29,187,193,83,29,187,174,51,29,187,139,19,29,187,87,243,28,187,19,211,28,187,191,178,28,187,90,146,28,187,229,113,28,187,96,81,28,187,203,48,28,187,37,16,28,187,111,239,27,187,169,206,27,187,211,173,27,187,237,140,27,187,247,107,27,187,240,74,27,187,217,41,27,187,179,8,27,187,124,231,26,187,53,198,26,187,222,164,26,187,119,131,26,187,0,98,26,187,121,64,26,187,226,30,26,187,59,253,25,187,
132,219,25,187,189,185,25,187,230,151,25,187,0,118,25,187,9,84,25,187,2,50,25,187,236,15,25,187,198,237,24,187,144,203,24,187,74,169,24,187,244,134,24,187,142,100,24,187,25,66,24,187,148,31,24,187,255,252,23,187,90,218,23,187,166,183,23,187,226,148,23,187,14,114,23,187,43,79,23,187,56,44,23,187,53,9,23,187,35,230,22,187,1,195,22,187,207,159,22,187,142,124,22,187,61,89,22,187,221,53,22,187,109,18,22,187,238,238,21,187,95,203,21,187,193,167,21,187,19,132,21,187,86,96,21,187,137,60,21,187,173,24,21,
187,193,244,20,187,198,208,20,187,188,172,20,187,162,136,20,187,121,100,20,187,65,64,20,187,249,27,20,187,162,247,19,187,60,211,19,187,198,174,19,187,65,138,19,187,173,101,19,187,10,65,19,187,87,28,19,187,150,247,18,187,197,210,18,187,229,173,18,187,245,136,18,187,247,99,18,187,234,62,18,187,205,25,18,187,161,244,17,187,103,207,17,187,29,170,17,187,196,132,17,187,93,95,17,187,230,57,17,187,96,20,17,187,203,238,16,187,40,201,16,187,117,163,16,187,179,125,16,187,227,87,16,187,4,50,16,187,22,12,16,187,
25,230,15,187,13,192,15,187,242,153,15,187,201,115,15,187,144,77,15,187,73,39,15,187,243,0,15,187,143,218,14,187,28,180,14,187,154,141,14,187,9,103,14,187,106,64,14,187,188,25,14,187,255,242,13,187,52,204,13,187,90,165,13,187,114,126,13,187,123,87,13,187,118,48,13,187,98,9,13,187,63,226,12,187,14,187,12,187,207,147,12,187,129,108,12,187,36,69,12,187,185,29,12,187,64,246,11,187,184,206,11,187,34,167,11,187,126,127,11,187,203,87,11,187,10,48,11,187,59,8,11,187,93,224,10,187,113,184,10,187,119,144,10,
187,110,104,10,187,88,64,10,187,51,24,10,187,0,240,9,187,191,199,9,187,111,159,9,187,18,119,9,187,166,78,9,187,44,38,9,187,164,253,8,187,14,213,8,187,106,172,8,187,184,131,8,187,248,90,8,187,42,50,8,187,79,9,8,187,101,224,7,187,109,183,7,187,103,142,7,187,83,101,7,187,50,60,7,187,2,19,7,187,197,233,6,187,122,192,6,187,33,151,6,187,186,109,6,187,69,68,6,187,195,26,6,187,51,241,5,187,149,199,5,187,234,157,5,187,48,116,5,187,105,74,5,187,149,32,5,187,179,246,4,187,195,204,4,187,198,162,4,187,187,120,
4,187,162,78,4,187,124,36,4,187,72,250,3,187,7,208,3,187,185,165,3,187,92,123,3,187,243,80,3,187,124,38,3,187,247,251,2,187,102,209,2,187,198,166,2,187,26,124,2,187,96,81,2,187,153,38,2,187,196,251,1,187,226,208,1,187,243,165,1,187,247,122,1,187,237,79,1,187,214,36,1,187,178,249,0,187,129,206,0,187,67,163,0,187,247,119,0,187,159,76,0,187,57,33,0,187,140,235,255,186,140,148,255,186,114,61,255,186,62,230,254,186,240,142,254,186,137,55,254,186,7,224,253,186,107,136,253,186,181,48,253,186,230,216,252,
186,252,128,252,186,249,40,252,186,220,208,251,186,166,120,251,186,86,32,251,186,236,199,250,186,105,111,250,186,204,22,250,186,22,190,249,186,70,101,249,186,93,12,249,186,90,179,248,186,62,90,248,186,9,1,248,186,187,167,247,186,83,78,247,186,210,244,246,186,56,155,246,186,133,65,246,186,185,231,245,186,211,141,245,186,213,51,245,186,190,217,244,186,142,127,244,186,69,37,244,186,227,202,243,186,104,112,243,186,213,21,243,186,41,187,242,186,100,96,242,186,135,5,242,186,144,170,241,186,130,79,241,186,
91,244,240,186,27,153,240,186,195,61,240,186,82,226,239,186,202,134,239,186,40,43,239,186,111,207,238,186,157,115,238,186,179,23,238,186,177,187,237,186,151,95,237,186,101,3,237,186,26,167,236,186,184,74,236,186,61,238,235,186,171,145,235,186,1,53,235,186,63,216,234,186,101,123,234,186,115,30,234,186,106,193,233,186,73,100,233,186,16,7,233,186,191,169,232,186,87,76,232,186,216,238,231,186,65,145,231,186,146,51,231,186,204,213,230,186,239,119,230,186,251,25,230,186,239,187,229,186,204,93,229,186,145,
255,228,186,64,161,228,186,215,66,228,186,87,228,227,186,192,133,227,186,19,39,227,186,78,200,226,186,114,105,226,186,127,10,226,186,118,171,225,186,85,76,225,186,30,237,224,186,209,141,224,186,108,46,224,186,241,206,223,186,95,111,223,186,183,15,223,186,248,175,222,186,35,80,222,186,55,240,221,186,53,144,221,186,28,48,221,186,237,207,220,186,168,111,220,186,77,15,220,186,219,174,219,186,83,78,219,186,182,237,218,186,2,141,218,186,56,44,218,186,88,203,217,186,98,106,217,186,86,9,217,186,52,168,216,
186,253,70,216,186,176,229,215,186,77,132,215,186,212,34,215,186,70,193,214,186,162,95,214,186,232,253,213,186,25,156,213,186,52,58,213,186,58,216,212,186,43,118,212,186,6,20,212,186,204,177,211,186,124,79,211,186,24,237,210,186,158,138,210,186,15,40,210,186,107,197,209,186,177,98,209,186,227,255,208,186,0,157,208,186,8,58,208,186,251,214,207,186,217,115,207,186,162,16,207,186,86,173,206,186,246,73,206,186,129,230,205,186,247,130,205,186,89,31,205,186,166,187,204,186,223,87,204,186,3,244,203,186,
19,144,203,186,14,44,203,186,245,199,202,186,200,99,202,186,135,255,201,186,49,155,201,186,199,54,201,186,73,210,200,186,182,109,200,186,16,9,200,186,86,164,199,186,136,63,199,186,166,218,198,186,175,117,198,186,166,16,198,186,136,171,197,186,86,70,197,186,17,225,196,186,184,123,196,186,76,22,196,186,204,176,195,186,56,75,195,186,145,229,194,186,215,127,194,186,9,26,194,186,40,180,193,186,51,78,193,186,43,232,192,186,16,130,192,186,226,27,192,186,160,181,191,186,76,79,191,186,228,232,190,186,106,
130,190,186,220,27,190,186,59,181,189,186,136,78,189,186,194,231,188,186,233,128,188,186,253,25,188,186,254,178,187,186,237,75,187,186,201,228,186,186,147,125,186,186,74,22,186,186,239,174,185,186,129,71,185,186,0,224,184,186,110,120,184,186,201,16,184,186,18,169,183,186,72,65,183,186,109,217,182,186,127,113,182,186,127,9,182,186,109,161,181,186,73,57,181,186,19,209,180,186,203,104,180,186,114,0,180,186,6,152,179,186,137,47,179,186,250,198,178,186,89,94,178,186,167,245,177,186,227,140,177,186,13,
36,177,186,38,187,176,186,45,82,176,186,35,233,175,186,8,128,175,186,219,22,175,186,157,173,174,186,78,68,174,186,237,218,173,186,124,113,173,186,249,7,173,186,101,158,172,186,192,52,172,186,10,203,171,186,67,97,171,186,108,247,170,186,131,141,170,186,138,35,170,186,128,185,169,186,101,79,169,186,57,229,168,186,253,122,168,186,177,16,168,186,83,166,167,186,230,59,167,186,103,209,166,186,217,102,166,186,58,252,165,186,139,145,165,186,203,38,165,186,252,187,164,186,28,81,164,186,44,230,163,186,43,123,
163,186,27,16,163,186,251,164,162,186,203,57,162,186,139,206,161,186,59,99,161,186,220,247,160,186,108,140,160,186,237,32,160,186,94,181,159,186,192,73,159,186,18,222,158,186,84,114,158,186,135,6,158,186,171,154,157,186,191,46,157,186,195,194,156,186,185,86,156,186,159,234,155,186,118,126,155,186,62,18,155,186,246,165,154,186,160,57,154,186,58,205,153,186,198,96,153,186,66,244,152,186,176,135,152,186,15,27,152,186,95,174,151,186,160,65,151,186,211,212,150,186,247,103,150,186,12,251,149,186,19,142,
149,186,11,33,149,186,245,179,148,186,208,70,148,186,157,217,147,186,91,108,147,186,11,255,146,186,173,145,146,186,65,36,146,186,198,182,145,186,62,73,145,186,167,219,144,186,3,110,144,186,80,0,144,186,144,146,143,186,193,36,143,186,229,182,142,186,251,72,142,186,3,219,141,186,253,108,141,186,234,254,140,186,202,144,140,186,155,34,140,186,95,180,139,186,22,70,139,186,191,215,138,186,91,105,138,186,234,250,137,186,107,140,137,186,223,29,137,186,70,175,136,186,160,64,136,186,237,209,135,186,44,99,135,
186,95,244,134,186,133,133,134,186,157,22,134,186,169,167,133,186,168,56,133,186,155,201,132,186,128,90,132,186,89,235,131,186,37,124,131,186,229,12,131,186,152,157,130,186,63,46,130,186,217,190,129,186,103,79,129,186,233,223,128,186,94,112,128,186,199,0,128,186,71,34,127,186,233,66,126,186,114,99,125,186,227,131,124,186,59,164,123,186,124,196,122,186,166,228,121,186,183,4,121,186,177,36,120,186,147,68,119,186,93,100,118,186,17,132,117,186,173,163,116,186,50,195,115,186,160,226,114,186,246,1,114,
186,54,33,113,186,95,64,112,186,114,95,111,186,109,126,110,186,83,157,109,186,34,188,108,186,218,218,107,186,124,249,106,186,8,24,106,186,127,54,105,186,223,84,104,186,41,115,103,186,94,145,102,186,124,175,101,186,134,205,100,186,122,235,99,186,88,9,99,186,33,39,98,186,213,68,97,186,116,98,96,186,254,127,95,186,115,157,94,186,211,186,93,186,30,216,92,186,85,245,91,186,120,18,91,186,134,47,90,186,127,76,89,186,100,105,88,186,54,134,87,186,243,162,86,186,156,191,85,186,49,220,84,186,179,248,83,186,
33,21,83,186,123,49,82,186,194,77,81,186,246,105,80,186,22,134,79,186,35,162,78,186,29,190,77,186,4,218,76,186,216,245,75,186,153,17,75,186,72,45,74,186,228,72,73,186,109,100,72,186,228,127,71,186,73,155,70,186,155,182,69,186,219,209,68,186,10,237,67,186,38,8,67,186,49,35,66,186,41,62,65,186,17,89,64,186,230,115,63,186,170,142,62,186,93,169,61,186,255,195,60,186,143,222,59,186,14,249,58,186,124,19,58,186,218,45,57,186,39,72,56,186,98,98,55,186,142,124,54,186,169,150,53,186,179,176,52,186,173,202,
51,186,151,228,50,186,113,254,49,186,59,24,49,186,245,49,48,186,159,75,47,186,57,101,46,186,196,126,45,186,63,152,44,186,171,177,43,186,8,203,42,186,85,228,41,186,147,253,40,186,194,22,40,186,226,47,39,186,243,72,38,186,246,97,37,186,233,122,36,186,207,147,35,186,166,172,34,186,110,197,33,186,40,222,32,186,212,246,31,186,114,15,31,186,2,40,30,186,132,64,29,186,248,88,28,186,95,113,27,186,184,137,26,186,3,162,25,186,65,186,24,186,114,210,23,186,150,234,22,186,172,2,22,186,182,26,21,186,178,50,20,186,
162,74,19,186,133,98,18,186,91,122,17,186,37,146,16,186,227,169,15,186,148,193,14,186,57,217,13,186,209,240,12,186,94,8,12,186,223,31,11,186,84,55,10,186,189,78,9,186,27,102,8,186,108,125,7,186,179,148,6,186,238,171,5,186,30,195,4,186,67,218,3,186,93,241,2,186,107,8,2,186,111,31,1,186,104,54,0,186,173,154,254,185,117,200,252,185,39,246,250,185,197,35,249,185,79,81,247,185,196,126,245,185,37,172,243,185,113,217,241,185,170,6,240,185,208,51,238,185,226,96,236,185,225,141,234,185,204,186,232,185,165,
231,230,185,108,20,229,185,32,65,227,185,194,109,225,185,81,154,223,185,207,198,221,185,59,243,219,185,150,31,218,185,224,75,216,185,24,120,214,185,64,164,212,185,87,208,210,185,93,252,208,185,83,40,207,185,57,84,205,185,16,128,203,185,214,171,201,185,141,215,199,185,53,3,198,185,206,46,196,185,87,90,194,185,210,133,192,185,63,177,190,185,157,220,188,185,237,7,187,185,47,51,185,185,100,94,183,185,139,137,181,185,164,180,179,185,177,223,177,185,176,10,176,185,163,53,174,185,137,96,172,185,99,139,170,
185,48,182,168,185,242,224,166,185,168,11,165,185,82,54,163,185,241,96,161,185,133,139,159,185,13,182,157,185,139,224,155,185,254,10,154,185,103,53,152,185,198,95,150,185,27,138,148,185,102,180,146,185,167,222,144,185],"i8",4,y.a+542720);
Q([223,8,143,185,13,51,141,185,51,93,139,185,80,135,137,185,100,177,135,185,111,219,133,185,115,5,132,185,110,47,130,185,97,89,128,185,154,6,125,185,99,90,121,185,29,174,117,185,201,1,114,185,103,85,110,185,248,168,106,185,124,252,102,185,243,79,99,185,94,163,95,185,189,246,91,185,17,74,88,185,90,157,84,185,152,240,80,185,204,67,77,185,247,150,73,185,23,234,69,185,47,61,66,185,62,144,62,185,69,227,58,185,67,54,55,185,59,137,51,185,43,220,47,185,20,47,44,185,248,129,40,185,213,212,36,185,173,39,33,
185,127,122,29,185,77,205,25,185,22,32,22,185,220,114,18,185,158,197,14,185,93,24,11,185,25,107,7,185,210,189,3,185,138,16,0,185,127,198,248,184,233,107,241,184,81,17,234,184,183,182,226,184,30,92,219,184,134,1,212,184,238,166,204,184,90,76,197,184,200,241,189,184,58,151,182,184,176,60,175,184,44,226,167,184,175,135,160,184,56,45,153,184,200,210,145,184,98,120,138,184,4,30,131,184,98,135,119,184,209,210,104,184,87,30,90,184,246,105,75,184,176,181,60,184,133,1,46,184,120,77,31,184,138,153,16,184,189,
229,1,184,36,100,230,183,22,253,200,183,82,150,171,183,220,47,142,183,111,147,97,183,205,199,38,183,179,249,215,182,108,202,68,182,143,110,25,53,87,191,136,54,78,79,254,54,213,238,57,55,46,181,116,55,87,189,151,55,167,31,181,55,131,129,210,55,233,226,239,55,235,161,6,56,34,82,21,56,26,2,36,56,209,177,50,56,68,97,65,56,115,16,80,56,92,191,94,56,253,109,109,56,85,28,124,56,49,101,133,56,17,188,140,56,202,18,148,56,92,105,155,56,197,191,162,56,5,22,170,56,26,108,177,56,5,194,184,56,196,23,192,56,87,
109,199,56,188,194,206,56,244,23,214,56,253,108,221,56,214,193,228,56,127,22,236,56,247,106,243,56,61,191,250,56,168,9,1,57,152,179,4,57,110,93,8,57,41,7,12,57,202,176,15,57,79,90,19,57,184,3,23,57,6,173,26,57,55,86,30,57,75,255,33,57,66,168,37,57,28,81,41,57,215,249,44,57,116,162,48,57,243,74,52,57,82,243,55,57,145,155,59,57,177,67,63,57,176,235,66,57,143,147,70,57,77,59,74,57,233,226,77,57,99,138,81,57,187,49,85,57,241,216,88,57,3,128,92,57,242,38,96,57,189,205,99,57,100,116,103,57,230,26,107,57,
68,193,110,57,124,103,114,57,142,13,118,57,122,179,121,57,64,89,125,57,112,127,128,57,43,82,130,57,211,36,132,57,103,247,133,57,231,201,135,57,82,156,137,57,169,110,139,57,235,64,141,57,24,19,143,57,47,229,144,57,50,183,146,57,30,137,148,57,245,90,150,57,182,44,152,57,97,254,153,57,246,207,155,57,116,161,157,57,219,114,159,57,44,68,161,57,101,21,163,57,135,230,164,57,145,183,166,57,132,136,168,57,95,89,170,57,34,42,172,57,205,250,173,57,95,203,175,57,216,155,177,57,57,108,179,57,129,60,181,57,175,
12,183,57,196,220,184,57,191,172,186,57,161,124,188,57,105,76,190,57,22,28,192,57,169,235,193,57,33,187,195,57,127,138,197,57,194,89,199,57,234,40,201,57,246,247,202,57,231,198,204,57,188,149,206,57,117,100,208,57,18,51,210,57,147,1,212,57,247,207,213,57,63,158,215,57,106,108,217,57,120,58,219,57,104,8,221,57,59,214,222,57,241,163,224,57,136,113,226,57,2,63,228,57,93,12,230,57,155,217,231,57,185,166,233,57,185,115,235,57,154,64,237,57,91,13,239,57,254,217,240,57,128,166,242,57,228,114,244,57,39,63,
246,57,74,11,248,57,77,215,249,57,47,163,251,57,241,110,253,57,146,58,255,57,9,131,0,58,184,104,1,58,87,78,2,58,228,51,3,58,97,25,4,58,205,254,4,58,40,228,5,58,114,201,6,58,170,174,7,58,209,147,8,58,230,120,9,58,234,93,10,58,221,66,11,58,189,39,12,58,140,12,13,58,73,241,13,58,243,213,14,58,140,186,15,58,18,159,16,58,134,131,17,58,232,103,18,58,55,76,19,58,116,48,20,58,158,20,21,58,181,248,21,58,185,220,22,58,170,192,23,58,136,164,24,58,83,136,25,58,11,108,26,58,176,79,27,58,65,51,28,58,190,22,29,
58,40,250,29,58,126,221,30,58,192,192,31,58,238,163,32,58,9,135,33,58,15,106,34,58,1,77,35,58,223,47,36,58,168,18,37,58,93,245,37,58,254,215,38,58,137,186,39,58,0,157,40,58,99,127,41,58,176,97,42,58,232,67,43,58,11,38,44,58,25,8,45,58,17,234,45,58,245,203,46,58,194,173,47,58,122,143,48,58,29,113,49,58,169,82,50,58,32,52,51,58,129,21,52,58,204,246,52,58,0,216,53,58,30,185,54,58,39,154,55,58,24,123,56,58,243,91,57,58,184,60,58,58,102,29,59,58,253,253,59,58,125,222,60,58,230,190,61,58,56,159,62,58,115,
127,63,58,151,95,64,58,163,63,65,58,152,31,66,58,117,255,66,58,59,223,67,58,233,190,68,58,127,158,69,58,254,125,70,58,100,93,71,58,178,60,72,58,233,27,73,58,6,251,73,58,12,218,74,58,249,184,75,58,206,151,76,58,137,118,77,58,45,85,78,58,183,51,79,58,41,18,80,58,129,240,80,58,192,206,81,58,231,172,82,58,244,138,83,58,231,104,84,58,194,70,85,58,130,36,86,58,41,2,87,58,182,223,87,58,42,189,88,58,132,154,89,58,195,119,90,58,233,84,91,58,244,49,92,58,229,14,93,58,188,235,93,58,120,200,94,58,26,165,95,58,
161,129,96,58,13,94,97,58,95,58,98,58,150,22,99,58,177,242,99,58,178,206,100,58,151,170,101,58,98,134,102,58,16,98,103,58,164,61,104,58,28,25,105,58,120,244,105,58,185,207,106,58,221,170,107,58,230,133,108,58,211,96,109,58,164,59,110,58,89,22,111,58,241,240,111,58,109,203,112,58,205,165,113,58,16,128,114,58,55,90,115,58,64,52,116,58,45,14,117,58,254,231,117,58,177,193,118,58,71,155,119,58,192,116,120,58,28,78,121,58,91,39,122,58,124,0,123,58,127,217,123,58,101,178,124,58,46,139,125,58,216,99,126,
58,101,60,127,58,106,10,128,58,146,118,128,58,172,226,128,58,182,78,129,58,177,186,129,58,157,38,130,58,122,146,130,58,71,254,130,58,5,106,131,58,180,213,131,58,83,65,132,58,227,172,132,58,99,24,133,58,212,131,133,58,53,239,133,58,135,90,134,58,201,197,134,58,251,48,135,58,29,156,135,58,48,7,136,58,51,114,136,58,38,221,136,58,9,72,137,58,220,178,137,58,159,29,138,58,81,136,138,58,244,242,138,58,135,93,139,58,9,200,139,58,123,50,140,58,221,156,140,58,47,7,141,58,112,113,141,58,161,219,141,58,193,69,
142,58,209,175,142,58,208,25,143,58,191,131,143,58,157,237,143,58,106,87,144,58,39,193,144,58,211,42,145,58,110,148,145,58,248,253,145,58,114,103,146,58,218,208,146,58,50,58,147,58,120,163,147,58,173,12,148,58,210,117,148,58,229,222,148,58,231,71,149,58,216,176,149,58,183,25,150,58,133,130,150,58,66,235,150,58,237,83,151,58,135,188,151,58,15,37,152,58,134,141,152,58,236,245,152,58,63,94,153,58,129,198,153,58,178,46,154,58,208,150,154,58,221,254,154,58,216,102,155,58,193,206,155,58,152,54,156,58,93,
158,156,58,17,6,157,58,178,109,157,58,65,213,157,58,190,60,158,58,41,164,158,58,129,11,159,58,200,114,159,58,252,217,159,58,29,65,160,58,45,168,160,58,42,15,161,58,20,118,161,58,236,220,161,58,178,67,162,58,100,170,162,58,5,17,163,58,146,119,163,58,13,222,163,58,117,68,164,58,202,170,164,58,13,17,165,58,60,119,165,58,89,221,165,58,98,67,166,58,89,169,166,58,61,15,167,58,13,117,167,58,203,218,167,58,117,64,168,58,12,166,168,58,144,11,169,58,0,113,169,58,93,214,169,58,167,59,170,58,222,160,170,58,0,
6,171,58,16,107,171,58,12,208,171,58,244,52,172,58,201,153,172,58,138,254,172,58,55,99,173,58,208,199,173,58,86,44,174,58,200,144,174,58,38,245,174,58,112,89,175,58,167,189,175,58,201,33,176,58,215,133,176,58,209,233,176,58,183,77,177,58,137,177,177,58,71,21,178,58,240,120,178,58,133,220,178,58,6,64,179,58,115,163,179,58,203,6,180,58,15,106,180,58,62,205,180,58,88,48,181,58,95,147,181,58,80,246,181,58,45,89,182,58,245,187,182,58,169,30,183,58,72,129,183,58,209,227,183,58,71,70,184,58,167,168,184,
58,242,10,185,58,41,109,185,58,74,207,185,58,86,49,186,58,78,147,186,58,48,245,186,58,253,86,187,58,181,184,187,58,87,26,188,58,229,123,188,58,93,221,188,58,191,62,189,58,13,160,189,58,68,1,190,58,103,98,190,58,116,195,190,58,107,36,191,58,77,133,191,58,25,230,191,58,207,70,192,58,112,167,192,58,251,7,193,58,112,104,193,58,207,200,193,58,25,41,194,58,77,137,194,58,106,233,194,58,114,73,195,58,100,169,195,58,63,9,196,58,5,105,196,58,180,200,196,58,77,40,197,58,209,135,197,58,61,231,197,58,148,70,198,
58,212,165,198,58,254,4,199,58,17,100,199,58,14,195,199,58,245,33,200,58,197,128,200,58,126,223,200,58,33,62,201,58,173,156,201,58,34,251,201,58,129,89,202,58,201,183,202,58,251,21,203,58,21,116,203,58,25,210,203,58,5,48,204,58,219,141,204,58,154,235,204,58,66,73,205,58,210,166,205,58,76,4,206,58,174,97,206,58,250,190,206,58,46,28,207,58,75,121,207,58,80,214,207,58,63,51,208,58,22,144,208,58,213,236,208,58,125,73,209,58,14,166,209,58,135,2,210,58,233,94,210,58,51,187,210,58,101,23,211,58,128,115,
211,58,131,207,211,58,111,43,212,58,66,135,212,58,254,226,212,58,162,62,213,58,46,154,213,58,162,245,213,58,255,80,214,58,67,172,214,58,111,7,215,58,131,98,215,58,128,189,215,58,100,24,216,58,47,115,216,58,227,205,216,58,126,40,217,58,1,131,217,58,108,221,217,58,191,55,218,58,249,145,218,58,26,236,218,58,36,70,219,58,20,160,219,58,236,249,219,58,172,83,220,58,83,173,220,58,225,6,221,58,87,96,221,58,180,185,221,58,248,18,222,58,36,108,222,58,54,197,222,58,48,30,223,58,17,119,223,58,217,207,223,58,
136,40,224,58,30,129,224,58,155,217,224,58,255,49,225,58,74,138,225,58,123,226,225,58,148,58,226,58,147,146,226,58,121,234,226,58,70,66,227,58,249,153,227,58,147,241,227,58,20,73,228,58,123,160,228,58,201,247,228,58,253,78,229,58,24,166,229,58,26,253,229,58,1,84,230,58,207,170,230,58,132,1,231,58,30,88,231,58,159,174,231,58,6,5,232,58,84,91,232,58,135,177,232,58,161,7,233,58,161,93,233,58,134,179,233,58,82,9,234,58,4,95,234,58,156,180,234,58,26,10,235,58,125,95,235,58,199,180,235,58,246,9,236,58,
11,95,236,58,6,180,236,58,230,8,237,58,172,93,237,58,88,178,237,58,234,6,238,58,97,91,238,58,189,175,238,58,255,3,239,58,39,88,239,58,52,172,239,58,38,0,240,58,254,83,240,58,187,167,240,58,93,251,240,58,229,78,241,58,82,162,241,58,164,245,241,58,220,72,242,58,248,155,242,58,250,238,242,58,225,65,243,58,172,148,243,58,93,231,243,58,243,57,244,58,109,140,244,58,205,222,244,58,17,49,245,58,59,131,245,58,73,213,245,58,60,39,246,58,19,121,246,58,208,202,246,58,113,28,247,58,247,109,247,58,97,191,247,58,
176,16,248,58,227,97,248,58,251,178,248,58,248,3,249,58,217,84,249,58,158,165,249,58,72,246,249,58,214,70,250,58,72,151,250,58,159,231,250,58,218,55,251,58,249,135,251,58,253,215,251,58,228,39,252,58,176,119,252,58,96,199,252,58,244,22,253,58,107,102,253,58,199,181,253,58,7,5,254,58,43,84,254,58,51,163,254,58,31,242,254,58,238,64,255,58,161,143,255,58,57,222,255,58,90,22,0,59,137,61,0,59,170,100,0,59,189,139,0,59,194,178,0,59,185,217,0,59,161,0,1,59,123,39,1,59,71,78,1,59,5,117,1,59,180,155,1,59,
85,194,1,59,232,232,1,59,108,15,2,59,226,53,2,59,74,92,2,59,164,130,2,59,239,168,2,59,43,207,2,59,89,245,2,59,121,27,3,59,138,65,3,59,141,103,3,59,130,141,3,59,104,179,3,59,63,217,3,59,8,255,3,59,194,36,4,59,110,74,4,59,11,112,4,59,154,149,4,59,26,187,4,59,139,224,4,59,238,5,5,59,66,43,5,59,136,80,5,59,191,117,5,59,231,154,5,59,0,192,5,59,11,229,5,59,7,10,6,59,245,46,6,59,211,83,6,59,163,120,6,59,100,157,6,59,22,194,6,59,185,230,6,59,78,11,7,59,212,47,7,59,74,84,7,59,178,120,7,59,11,157,7,59,86,193,
7,59,145,229,7,59,189,9,8,59,219,45,8,59,233,81,8,59,233,117,8,59,217,153,8,59,186,189,8,59,141,225,8,59,80,5,9,59,5,41,9,59,170,76,9,59,64,112,9,59,199,147,9,59,64,183,9,59,168,218,9,59,2,254,9,59,77,33,10,59,136,68,10,59,181,103,10,59,210,138,10,59,224,173,10,59,223,208,10,59,206,243,10,59,175,22,11,59,128,57,11,59,65,92,11,59,244,126,11,59,151,161,11,59,43,196,11,59,176,230,11,59,37,9,12,59,139,43,12,59,225,77,12,59,40,112,12,59,96,146,12,59,137,180,12,59,162,214,12,59,171,248,12,59,165,26,13,
59,144,60,13,59,107,94,13,59,55,128,13,59,243,161,13,59,160,195,13,59,61,229,13,59,202,6,14,59,72,40,14,59,183,73,14,59,22,107,14,59,101,140,14,59,165,173,14,59,213,206,14,59,246,239,14,59,6,17,15,59,8,50,15,59,249,82,15,59,219,115,15,59,173,148,15,59,112,181,15,59,34,214,15,59,197,246,15,59,89,23,16,59,220,55,16,59,80,88,16,59,180,120,16,59,8,153,16,59,77,185,16,59,129,217,16,59,166,249,16,59,187,25,17,59,192,57,17,59,181,89,17,59,154,121,17,59,112,153,17,59,53,185,17,59,235,216,17,59,144,248,17,
59,38,24,18,59,172,55,18,59,33,87,18,59,135,118,18,59,221,149,18,59,35,181,18,59,89,212,18,59,126,243,18,59,148,18,19,59,154,49,19,59,143,80,19,59,117,111,19,59,74,142,19,59,15,173,19,59,197,203,19,59,106,234,19,59,255,8,20,59,131,39,20,59,248,69,20,59,92,100,20,59,177,130,20,59,245,160,20,59,40,191,20,59,76,221,20,59,96,251,20,59,99,25,21,59,86,55,21,59,56,85,21,59,11,115,21,59,205,144,21,59,126,174,21,59,32,204,21,59,177,233,21,59,50,7,22,59,162,36,22,59,2,66,22,59,82,95,22,59,145,124,22,59,192,
153,22,59,223,182,22,59,237,211,22,59,234,240,22,59,216,13,23,59,180,42,23,59,129,71,23,59,61,100,23,59,232,128,23,59,131,157,23,59,13,186,23,59,135,214,23,59,240,242,23,59,73,15,24,59,145,43,24,59,201,71,24,59,240,99,24,59,7,128,24,59,13,156,24,59,2,184,24,59,231,211,24,59,187,239,24,59,126,11,25,59,49,39,25,59,211,66,25,59,100,94,25,59,229,121,25,59,85,149,25,59,181,176,25,59,3,204,25,59,65,231,25,59,111,2,26,59,139,29,26,59,151,56,26,59,146,83,26,59,124,110,26,59,86,137,26,59,30,164,26,59,214,
190,26,59,125,217,26,59,19,244,26,59,152,14,27,59,13,41,27,59,113,67,27,59,195,93,27,59,5,120,27,59,54,146,27,59,86,172,27,59,102,198,27,59,100,224,27,59,81,250,27,59,46,20,28,59,249,45,28,59,180,71,28,59,93,97,28,59,246,122,28,59,126,148,28,59,244,173,28,59,90,199,28,59,174,224,28,59,242,249,28,59,36,19,29,59,70,44,29,59,86,69,29,59,86,94,29,59,68,119,29,59,33,144,29,59,237,168,29,59,169,193,29,59,82,218,29,59,235,242,29,59,115,11,30,59,233,35,30,59,79,60,30,59,163,84,30,59,230,108,30,59,24,133,
30,59,57,157,30,59,72,181,30,59,71,205,30,59,52,229,30,59,16,253,30,59,218,20,31,59,148,44,31,59,60,68,31,59,211,91,31,59,88,115,31,59,205,138,31,59,48,162,31,59,130,185,31,59,194,208,31,59,241,231,31,59,15,255,31,59,28,22,32,59,23,45,32,59,1,68,32,59,217,90,32,59,160,113,32,59,86,136,32,59,250,158,32,59,141,181,32,59,15,204,32,59,127,226,32,59,222,248,32,59,43,15,33,59,103,37,33,59,146,59,33,59,171,81,33,59,178,103,33,59,168,125,33,59,141,147,33,59,96,169,33,59,34,191,33,59,210,212,33,59,113,234,
33,59,254,255,33,59,122,21,34,59,228,42,34,59,60,64,34,59,131,85,34,59,185,106,34,59,221,127,34,59,239,148,34,59,240,169,34,59,223,190,34,59,189,211,34,59,137,232,34,59,67,253,34,59,236,17,35,59,131,38,35,59,9,59,35,59,124,79,35,59,223,99,35,59,47,120,35,59,110,140,35,59,155,160,35,59,183,180,35,59,193,200,35,59,185,220,35,59,159,240,35,59,116,4,36,59,55,24,36,59,233,43,36,59,136,63,36,59,22,83,36,59,146,102,36,59,253,121,36,59,85,141,36,59,156,160,36,59,209,179,36,59,245,198,36,59,6,218,36,59,6,
237,36,59,244,255,36,59,208,18,37,59,154,37,37,59,83,56,37,59,250,74,37,59,142,93,37,59,17,112,37,59,131,130,37,59,226,148,37,59,47,167,37,59,107,185,37,59,149,203,37,59,172,221,37,59,178,239,37,59,166,1,38,59,136,19,38,59,89,37,38,59,23,55,38,59,195,72,38,59,94,90,38,59,230,107,38,59,93,125,38,59,194,142,38,59,20,160,38,59,85,177,38,59,132,194,38,59,161,211,38,59,171,228,38,59,164,245,38,59,139,6,39,59,96,23,39,59,35,40,39,59,211,56,39,59,114,73,39,59,255,89,39,59,122,106,39,59,227,122,39,59,57,
139,39,59,126,155,39,59,177,171,39,59,209,187,39,59,224,203,39,59,220,219,39,59,198,235,39,59,159,251,39,59,101,11,40,59,25,27,40,59,187,42,40,59,75,58,40,59,200,73,40,59,52,89,40,59,142,104,40,59,213,119,40,59,10,135,40,59,46,150,40,59,63,165,40,59,61,180,40,59,42,195,40,59,5,210,40,59,205,224,40,59,131,239,40,59,39,254,40,59,185,12,41,59,57,27,41,59,167,41,41,59,2,56,41,59,75,70,41,59,130,84,41,59,167,98,41,59,185,112,41,59,185,126,41,59,168,140,41,59,131,154,41,59,77,168,41,59,4,182,41,59,169,
195,41,59,60,209,41,59,189,222,41,59,43,236,41,59,136,249,41,59,209,6,42,59,9,20,42,59,46,33,42,59,65,46,42,59,66,59,42,59,48,72,42,59,13,85,42,59,215,97,42,59,142,110,42,59,51,123,42,59,198,135,42,59,71,148,42,59,181,160,42,59,17,173,42,59,91,185,42,59,146,197,42,59,183,209,42,59,202,221,42,59,202,233,42,59,184,245,42,59,148,1,43,59,93,13,43,59,20,25,43,59,185,36,43,59,75,48,43,59,203,59,43,59,56,71,43,59,147,82,43,59,220,93,43,59,18,105,43,59,54,116,43,59,71,127,43,59,70,138,43,59,51,149,43,59,
13,160,43,59,213,170,43,59,139,181,43,59,46,192,43,59,190,202,43,59,61,213,43,59,168,223,43,59,2,234,43,59,73,244,43,59,125,254,43,59,159,8,44,59,175,18,44,59,172,28,44,59,151,38,44,59,111,48,44,59,53,58,44,59,232,67,44,59,137,77,44,59,23,87,44,59,147,96,44,59,253,105,44,59,84,115,44,59,152,124,44,59,202,133,44,59,234,142,44,59,247,151,44,59,242,160,44,59,218,169,44,59,175,178,44,59,114,187,44,59,35,196,44,59,193,204,44,59,77,213,44,59,198,221,44,59,44,230,44,59,128,238,44,59,194,246,44,59,241,254,
44,59,14,7,45,59,24,15,45,59,15,23,45,59,244,30,45,59,198,38,45,59,134,46,45,59,52,54,45,59,206,61,45,59,87,69,45,59,204,76,45,59,47,84,45,59,128,91,45,59,190,98,45,59,234,105,45,59,3,113,45,59,9,120,45,59,253,126,45,59,222,133,45,59,173,140,45,59,105,147,45,59,19,154,45,59,170,160,45,59,46,167,45,59,160,173,45,59,0,180,45,59,76,186,45,59,135,192,45,59,174,198,45,59,195,204,45,59,198,210,45,59,182,216,45,59,147,222,45,59,94,228,45,59,22,234,45,59,187,239,45,59,78,245,45,59,207,250,45,59,61,0,46,59,
152,5,46,59,224,10,46,59,22,16,46,59,58,21,46,59,75,26,46,59,73,31,46,59,52,36,46,59,13,41,46,59,212,45,46,59,136,50,46,59,41,55,46,59,184,59,46,59,52,64,46,59,157,68,46,59,244,72,46,59,56,77,46,59,105,81,46,59,136,85,46,59,149,89,46,59,142,93,46,59,118,97,46,59,74,101,46,59,12,105,46,59,187,108,46,59,88,112,46,59,226,115,46,59,89,119,46,59,190,122,46,59,16,126,46,59,80,129,46,59,125,132,46,59,151,135,46,59,159,138,46,59,148,141,46,59,119,144,46,59,71,147,46,59,4,150,46,59,174,152,46,59,70,155,46,
59,204,157,46,59,63,160,46,59,159,162,46,59,236,164,46,59,39,167,46,59,79,169,46,59,101,171,46,59,104,173,46,59,89,175,46,59,54,177,46,59,2,179,46,59,186,180,46,59,96,182,46,59,243,183,46,59,116,185,46,59,226,186,46,59,62,188,46,59,135,189,46,59,189,190,46,59,224,191,46,59,241,192,46,59,240,193,46,59,220,194,46,59,181,195,46,59,123,196,46,59,47,197,46,59,208,197,46,59,95,198,46,59,219,198,46,59,69,199,46,59,156,199,46,59,224,199,46,59,17,200,46,59,49,200,46,59,61,200,46,59,55,200,46,59,30,200,46,
59,243,199,46,59,181,199,46,59,100,199,46,59,1,199,46,59,139,198,46,59,3,198,46,59,104,197,46,59,186,196,46,59,250,195,46,59,39,195,46,59,66,194,46,59,74,193,46,59,63,192,46,59,34,191,46,59,242,189,46,59,176,188,46,59,91,187,46,59,244,185,46,59,122,184,46,59,237,182,46,59,78,181,46,59,156,179,46,59,215,177,46,59,1,176,46,59,23,174,46,59,27,172,46,59,12,170,46,59,235,167,46,59,183,165,46,59,113,163,46,59,24,161,46,59,172,158,46,59,46,156,46,59,158,153,46,59,251,150,46,59,69,148,46,59,125,145,46,59,
162,142,46,59,181,139,46,59,181,136,46,59,162,133,46,59,125,130,46,59,70,127,46,59,252,123,46,59,159,120,46,59,48,117,46,59,175,113,46,59,26,110,46,59,116,106,46,59,187,102,46,59,239,98,46,59,17,95,46,59,32,91,46,59,29,87,46,59,7,83,46,59,223,78,46,59,164,74,46,59,87,70,46,59,247,65,46,59,133,61,46,59,0,57,46,59,105,52,46,59,191,47,46,59,3,43,46,59,52,38,46,59,83,33,46,59,95,28,46,59,89,23,46,59,65,18,46,59,22,13,46,59,216,7,46,59,136,2,46,59,38,253,45,59,177,247,45,59,42,242,45,59,144,236,45,59,
228,230,45,59,37,225,45,59,84,219,45,59,112,213,45,59,123,207,45,59,114,201,45,59,87,195,45,59,42,189,45,59,235,182,45,59,153,176,45,59,52,170,45,59,189,163,45,59,52,157,45,59,152,150,45,59,234,143,45,59,42,137,45,59,87,130,45,59,114,123,45,59,122,116,45,59,112,109,45,59,84,102,45,59,37,95,45,59,228,87,45,59,145,80,45,59,43,73,45,59,179,65,45,59,41,58,45,59,140,50,45,59,221,42,45,59,27,35,45,59,71,27,45,59,97,19,45,59,105,11,45,59,94,3,45,59,65,251,44,59,18,243,44,59,208,234,44,59,124,226,44,59,22,
218,44,59,157,209,44,59,18,201,44,59,117,192,44,59,197,183,44,59,4,175,44,59,48,166,44,59,73,157,44,59,81,148,44,59,70,139,44,59,41,130,44,59,250,120,44,59,184,111,44,59,101,102,44,59,255,92,44,59,134,83,44,59,252,73,44,59,95,64,44,59,176,54,44,59,239,44,44,59,28,35,44,59,55,25,44,59,63,15,44,59,53,5,44,59,25,251,43,59,235,240,43,59,170,230,43,59,88,220,43,59,243,209,43,59,124,199,43,59,243,188,43,59,88,178,43,59,171,167,43,59,235,156,43,59,26,146,43,59,54,135,43,59,64,124,43,59,56,113,43,59,30,102,
43,59,242,90,43,59,180,79,43,59,99,68,43,59,1,57,43,59,140,45,43,59,6,34,43,59,109,22,43,59,194,10,43,59,6,255,42,59,55,243,42,59,86,231,42,59,99,219,42,59,94,207,42,59,71,195,42,59,30,183,42,59,227,170,42,59,150,158,42,59,55,146,42,59,198,133,42,59,67,121,42,59,174,108,42,59,7,96,42,59,78,83,42,59,131,70,42,59,166,57,42,59,183,44,42,59,182,31,42,59,163,18,42,59,127,5,42,59,72,248,41,59,0,235,41,59,165,221,41,59,57,208,41,59,187,194,41,59,42,181,41,59,136,167,41,59,212,153,41,59,15,140,41,59,55,126,
41,59,77,112,41,59,82,98,41,59,69,84,41,59,37,70,41,59,244,55,41,59,178,41,41,59,93,27,41,59,247,12,41,59,126,254,40,59,244,239,40,59,88,225,40,59,171,210,40,59,235,195,40,59,26,181,40,59,55,166,40,59,67,151,40,59,60,136,40,59,36,121,40,59,250,105,40,59,190,90,40,59,113,75,40,59,18,60,40,59,161,44,40,59,30,29,40,59,138,13,40,59,228,253,39,59,44,238,39,59,99,222,39,59,136,206,39,59,155,190,39,59,157,174,39,59,141,158,39,59,108,142,39,59,56,126,39,59,244,109,39,59,157,93,39,59,53,77,39,59,187,60,39,
59,48,44,39,59,147,27,39,59,229,10,39,59,37,250,38,59,83,233,38,59,112,216,38,59,124,199,38,59,118,182,38,59,94,165,38,59,53,148,38,59,250,130,38,59,174,113,38,59,80,96,38,59,225,78,38,59,96,61,38,59,206,43,38,59,42,26,38,59,117,8,38,59,175,246,37,59,215,228,37,59,238,210,37,59,243,192,37,59,230,174,37,59,201,156,37,59,154,138,37,59,89,120,37,59,8,102,37,59,164,83,37,59,48,65,37,59,170,46,37,59,19,28,37,59,106,9,37,59,176,246,36,59,229,227,36,59,9,209,36,59,27,190,36,59,28,171,36,59,11,152,36,59,
233,132,36,59,182,113,36,59,114,94,36,59,29,75,36,59,182,55,36,59,62,36,36,59,181,16,36,59,27,253,35,59,111,233,35,59,178,213,35,59,228,193,35,59,5,174,35,59,21,154,35,59,19,134,35,59,1,114,35,59,221,93,35,59,168,73,35,59,98,53,35,59,11,33,35,59,163,12,35,59,41,248,34,59,159,227,34,59,3,207,34,59,87,186,34,59,153,165,34,59,203,144,34,59,235,123,34,59,250,102,34,59,248,81,34,59,230,60,34,59,194,39,34,59,141,18,34,59,71,253,33,59,241,231,33,59,137,210,33,59,16,189,33,59,135,167,33,59,236,145,33,59,
65,124,33,59,132,102,33,59,183,80,33,59,217,58,33,59,234,36,33,59,234,14,33,59,217,248,32,59,184,226,32,59,133,204,32,59,66,182,32,59,238,159,32,59,137,137,32,59,19,115,32,59,141,92,32,59,246,69,32,59,78,47,32,59,149,24,32,59,203,1,32,59,241,234,31,59,6,212,31,59,10,189,31,59,254,165,31,59,225,142,31,59,179,119,31,59,116,96,31,59,37,73,31,59,197,49,31,59,85,26,31,59,212,2,31,59,66,235,30,59,159,211,30,59,236,187,30,59,41,164,30,59,85,140,30,59,112,116,30,59,123,92,30,59,117,68,30,59,94,44,30,59,56,
20,30,59,0,252,29,59,184,227,29,59,96,203,29,59,247,178,29,59,125,154,29,59,244,129,29,59,89,105,29,59,175,80,29,59,243,55,29,59,40,31,29,59,76,6,29,59,95,237,28,59,99,212,28,59,85,187,28,59,56,162,28,59,10,137,28,59,204,111,28,59,125,86,28,59,30,61,28,59,175,35,28,59,48,10,28,59,160,240,27,59,0,215,27,59,80,189,27,59,143,163,27,59,191,137,27,59,222,111,27,59,236,85,27,59,235,59,27,59,217,33,27,59,184,7,27,59,134,237,26,59,68,211,26,59,241,184,26,59,143,158,26,59,28,132,26,59,154,105,26,59,7,79,26,
59,100,52,26,59,178,25,26,59,239,254,25,59,28,228,25,59,57,201,25,59,70,174,25,59,67,147,25,59,47,120,25,59,12,93,25,59,217,65,25,59,150,38,25,59,68,11,25,59,225,239,24,59,110,212,24,59,235,184,24,59,89,157,24,59,182,129,24,59,4,102,24,59,65,74,24,59,111,46,24,59,141,18,24,59,155,246,23,59,154,218,23,59,136,190,23,59,103,162,23,59,54,134,23,59,245,105,23,59,165,77,23,59,69,49,23,59,213,20,23,59,85,248,22,59,198,219,22,59,39,191,22,59,120,162,22,59,185,133,22,59,235,104,22,59,13,76,22,59,32,47,22,
59,35,18,22,59,22,245,21,59,250,215,21,59,207,186,21,59,147,157,21,59,72,128,21,59,238,98,21,59,132,69,21,59,11,40,21,59,130,10,21,59,233,236,20,59,65,207,20,59,138,177,20,59,195,147,20,59,237,117,20,59,7,88,20,59,18,58,20,59,14,28,20,59,250,253,19,59,214,223,19,59,164,193,19,59,98,163,19,59,17,133,19,59,176,102,19,59,64,72,19,59,193,41,19,59,51,11,19,59,149,236,18,59,232,205,18,59,44,175,18,59,97,144,18,59,134,113,18,59,156,82,18,59,163,51,18,59,155,20,18,59,132,245,17,59,93,214,17,59,40,183,17,
59,227,151,17,59,143,120,17,59,45,89,17,59,187,57,17,59,58,26,17,59,170,250,16,59,11,219,16,59,93,187,16,59,160,155,16,59,211,123,16,59,248,91,16,59,14,60,16,59,22,28,16,59,14,252,15,59,247,219,15,59,209,187,15,59,157,155,15,59,89,123,15,59,7,91,15,59,166,58,15,59,54,26,15,59,183,249,14,59,42,217,14,59,141,184,14,59,226,151,14,59,40,119,14,59,96,86,14,59,136,53,14,59,162,20,14,59,173,243,13,59,170,210,13,59,152,177,13,59,119,144,13,59,71,111,13,59,9,78,13,59,189,44,13,59,97,11,13,59,247,233,12,59,
127,200,12,59,248,166,12,59,98,133,12,59,190,99,12,59,12,66,12,59,75,32,12,59,123,254,11,59,157,220,11,59,176,186,11,59,182,152,11,59,172,118,11,59,148,84,11,59,110,50,11,59,58,16,11,59,247,237,10,59,165,203,10,59,70,169,10,59,216,134,10,59,92,100,10,59,209,65,10,59,56,31,10,59,145,252,9,59,220,217,9,59,25,183,9,59,71,148,9,59,103,113,9,59,121,78,9,59,125,43,9,59,114,8,9,59,90,229,8,59,51,194,8,59,254,158,8,59,187,123,8,59,106,88,8,59,11,53,8,59,158,17,8,59,35,238,7,59,154,202,7,59,3,167,7,59,94,
131,7,59,171,95,7,59,234,59,7,59,27,24,7,59,62,244,6,59,83,208,6,59,90,172,6,59,84,136,6,59,63,100,6,59,29,64,6,59,237,27,6,59,175,247,5,59,99,211,5,59,10,175,5,59,163,138,5,59,46,102,5,59,171,65,5,59,27,29,5,59,125,248,4,59,209,211,4,59,23,175,4,59,80,138,4,59,123,101,4,59,153,64,4,59,169,27,4,59,171,246,3,59,160,209,3,59,136,172,3,59,97,135,3,59,46,98,3,59,236,60,3,59,158,23,3,59,65,242,2,59,216,204,2,59,96,167,2,59,220,129,2,59,74,92,2,59,170,54,2,59,254,16,2,59,68,235,1,59,124,197,1,59,167,159,
1,59,197,121,1,59,214,83,1,59,217,45,1,59,207,7,1,59,184,225,0,59,147,187,0,59,98,149,0,59,35,111,0,59,215,72,0,59,126,34,0,59,47,248,255,58,72,171,255,58,71,94,255,58,43,17,255,58,246,195,254,58,166,118,254,58,61,41,254,58,185,219,253,58,27,142,253,58,99,64,253,58,145,242,252,58,166,164,252,58,160,86,252,58,129,8,252,58,71,186,251,58,244,107,251,58,135,29,251,58,1,207,250,58,97,128,250,58,167,49,250,58,211,226,249,58,230,147,249,58,223,68,249,58,191,245,248,58,133,166,248,58,50,87,248,58,198,7,248,
58,64,184,247,58,161,104,247,58,232,24,247,58,22,201,246,58,43,121,246,58,39,41,246,58,9,217,245,58,210,136,245,58,131,56,245,58,26,232,244,58,152,151,244,58,253,70,244,58,73,246,243,58,125,165,243,58,151,84,243,58,152,3,243,58,129,178,242,58,81,97,242,58,8,16,242,58,166,190,241,58,44,109,241,58,153,27,241,58,237,201,240,58,41,120,240,58,76,38,240,58,87,212,239,58,73,130,239,58,35,48,239,58,229,221,238,58,142,139,238,58,30,57,238,58,151,230,237,58,247,147,237,58,63,65,237,58,111,238,236,58,134,155,
236,58,134,72,236,58,109,245,235,58,60,162,235,58,244,78,235,58,147,251,234,58,26,168,234,58,138,84,234,58,226,0,234,58,33,173,233,58,73,89,233,58,89,5,233,58,82,177,232,58,51,93,232,58,252,8,232,58,173,180,231,58,71,96,231,58,202,11,231,58,53,183,230,58,136,98,230,58,196,13,230,58,233,184,229,58,246,99,229,58,236,14,229,58,202,185,228,58,146,100,228,58,66,15,228,58,219,185,227,58,92,100,227,58,199,14,227,58,27,185,226,58,87,99,226,58,125,13,226,58,139,183,225,58,131,97,225,58,100,11,225,58,46,181,
224,58,225,94,224,58,125,8,224,58,3,178,223,58,114,91,223,58,202,4,223,58,12,174,222,58,55,87,222,58,75,0,222,58,73,169,221,58,49,82,221,58,2,251,220,58,188,163,220,58,97,76,220,58,239,244,219,58,102,157,219,58,200,69,219,58,19,238,218,58,72,150,218,58,103,62,218,58,112,230,217,58,98,142,217,58,63,54,217,58,6,222,216,58,182,133,216,58,81,45,216,58,214,212,215,58,69,124,215,58,159,35,215,58,226,202,214,58,16,114,214,58,40,25,214,58,43,192,213,58,23,103,213,58,239,13,213,58,177,180,212,58,93,91,212,
58,244,1,212,58,117,168,211,58,225,78,211,58,56,245,210,58,121,155,210,58,165,65,210,58,188,231,209,58,190,141,209,58,170,51,209,58,130,217,208,58,68,127,208,58,241,36,208,58,138,202,207,58,13,112,207,58,123,21,207,58,213,186,206,58,26,96,206,58,74,5,206,58,101,170,205,58,107,79,205,58,93,244,204,58,58,153,204,58,2,62,204,58,182,226,203,58,86,135,203,58,225,43,203,58,87,208,202,58,185,116,202,58,7,25,202,58,64,189,201,58,101,97,201,58,118,5,201,58,114,169,200,58,91,77,200,58,47,241,199,58,239,148,
199,58,155,56,199,58,51,220,198,58,183,127,198,58,39,35,198,58,131,198,197,58,204,105,197,58,0,13,197,58,33,176,196,58,46,83,196,58,39,246,195,58,13,153,195,58,223,59,195,58,157,222,194,58,72,129,194,58,224,35,194,58,99,198,193,58,212,104,193,58,49,11,193,58,123,173,192,58,177,79,192,58,212,241,191,58,228,147,191,58,225,53,191,58,203,215,190,58,161,121,190,58,101,27,190,58,21,189,189,58,178,94,189,58,61,0,189,58,180,161,188,58,25,67,188,58,107,228,187,58,170,133,187,58,215,38,187,58,240,199,186,58,
247,104,186,58,236,9,186,58,205,170,185,58,157,75,185,58,89,236,184,58,4,141,184,58,155,45,184,58,33,206,183,58,148,110,183,58,245,14,183,58,67,175,182,58,128,79,182,58,170,239,181,58,194,143,181,58,200,47,181,58,188,207,180,58,158,111,180,58,110,15,180,58,44,175,179,58,216,78,179,58,114,238,178,58,250,141,178,58,113,45,178,58,214,204,177,58,41,108,177,58,107,11,177,58,155,170,176,58,185,73,176,58,198,232,175,58,194,135,175,58,172,38,175,58,132,197,174,58,76,100,174,58,2,3,174,58,166,161,173,58,58,
64,173,58,188,222,172,58,45,125,172,58,141,27,172,58,220,185,171,58,26,88,171,58,71,246,170,58,99,148,170,58,110,50,170,58,104,208,169,58,81,110,169,58,42,12,169,58,242,169,168,58,169,71,168,58,80,229,167,58,230,130,167,58,107,32,167,58,224,189,166,58,68,91,166,58,152,248,165,58,220,149,165,58,15,51,165,58,50,208,164,58,68,109,164,58,71,10,164,58,57,167,163,58,27,68,163,58,237,224,162,58,175,125,162,58,96,26,162,58,2,183,161,58,148,83,161,58,22,240,160,58,136,140,160,58,235,40,160,58,61,197,159,58,
128,97,159,58,179,253,158,58,215,153,158,58,235,53,158,58,239,209,157,58,228,109,157,58,201,9,157,58,159,165,156,58,102,65,156,58,29,221,155,58,197,120,155,58,93,20,155,58,231,175,154,58,97,75,154,58,204,230,153,58,40,130,153,58,117,29,153,58,179,184,152,58,226,83,152,58,2,239,151,58,20,138,151,58,22,37,151,58,10,192,150,58,238,90,150,58,197,245,149,58,140,144,149,58,69,43,149,58,239,197,148,58,139,96,148,58,24,251,147,58,151,149,147,58,7,48,147,58,105,202,146,58,189,100,146,58,3,255,145,58,58,153,
145,58,99,51,145,58,126,205,144,58,138,103,144,58,137,1,144,58,122,155,143,58,93,53,143,58,49,207,142,58,248,104,142,58,177,2,142,58,93,156,141,58,250,53,141,58,138,207,140,58,12,105,140,58,128,2,140,58,231,155,139,58,65,53,139,58,140,206,138,58,203,103,138,58,252,0,138,58,31,154,137,58,54,51,137,58,63,204,136,58,58,101,136,58,41,254,135,58,10,151,135,58,223,47,135,58,166,200,134,58,96,97,134,58,13,250,133,58,174,146,133,58,65,43,133,58,200,195,132,58,65,92,132,58,175,244,131,58,15,141,131,58,98,
37,131,58,169,189,130,58,228,85,130,58,18,238,129,58,51,134,129,58,72,30,129,58,81,182,128,58,77,78,128,58,121,204,127,58,64,252,126,58,239,43,126,58,133,91,125,58,3,139,124,58,105,186,123,58,182,233,122,58,236,24,122,58,10,72,121,58,16,119,120,58,254,165,119,58,212,212,118,58,147,3,118,58,58,50,117,58,202,96,116,58,67,143,115,58,164,189,114,58,238,235,113,58,34,26,113,58,62,72,112,58,67,118,111,58,50,164,110,58,9,210,109,58,203,255,108,58,117,45,108,58,9,91,107,58,135,136,106,58,239,181,105,58,64,
227,104,58,124,16,104,58,161,61,103,58,177,106,102,58,170,151,101,58,142,196,100,58,93,241,99,58,21,30,99,58,185,74,98,58,71,119,97,58,191,163,96,58,35,208,95,58,113,252,94,58,170,40,94,58,207,84,93,58,222,128,92,58,217,172,91,58,191,216,90,58,145,4,90,58,78,48,89,58,247,91,88,58,139,135,87,58,11,179,86,58,120,222,85,58,208,9,85,58,20,53,84,58,68,96,83,58,97,139,82,58,105,182,81,58,95,225,80,58,64,12,80,58,15,55,79,58,202,97,78,58,113,140,77,58,6,183,76,58,136,225,75,58,246,11,75,58,82,54,74,58,155,
96,73,58,210,138,72,58,245,180,71,58,6,223,70,58,5,9,70,58,242,50,69,58,204,92,68,58,148,134,67,58,74,176,66,58,238,217,65,58,128,3,65,58,1,45,64,58,111,86,63,58,204,127,62,58,24,169,61,58,82,210,60,58,123,251,59,58,146,36,59,58,153,77,58,58,142,118,57,58,114,159,56,58,70,200,55,58,9,241,54,58,187,25,54,58,92,66,53,58,237,106,52,58,109,147,51,58,221,187,50,58,61,228,49,58,140,12,49,58,204,52,48,58,252,92,47,58,27,133,46,58,43,173,45,58,43,213,44,58,28,253,43,58,253,36,43,58,206,76,42,58,145,116,41,
58,68,156,40,58,231,195,39,58,124,235,38,58,2,19,38,58,121,58,37,58,225,97,36,58,58,137,35,58,133,176,34,58,193,215,33,58,239,254,32,58,14,38,32,58,31,77,31,58,34,116,30,58,23,155,29,58,254,193,28,58,215,232,27,58,162,15,27,58,96,54,26,58,16,93,25,58,178,131,24,58,71,170,23,58,206,208,22,58,73,247,21,58,182,29,21,58,22,68,20,58,105,106,19,58,175,144,18,58,232,182,17,58,21,221,16,58,53,3,16,58,73,41,15,58,80,79,14,58,74,117,13,58,57,155,12,58,27,193,11,58,242,230,10,58,188,12,10,58,122,50,9,58,45,
88,8,58,212,125,7,58,111,163,6,58,255,200,5,58,131,238,4,58,252,19,4,58,106,57,3,58,204,94,2,58,36,132,1,58,112,169,0,58,100,157,255,57,210,231,253,57,42,50,252,57,109,124,250,57,155,198,248,57,180,16,247,57,185,90,245,57,169,164,243,57,133,238,241,57,76,56,240,57,0,130,238,57,160,203,236,57,44,21,235,57,165,94,233,57,11,168,231,57,94,241,229,57,158,58,228,57,203,131,226,57,230,204,224,57,239,21,223,57,229,94,221,57,202,167,219,57,156,240,217,57,94,57,216,57,14,130,214,57,172,202,212,57,58,19,211,
57,183,91,209,57,35,164,207,57,127,236,205,57,203,52,204,57,6,125,202,57,50,197,200,57,77,13,199,57,90,85,197,57,87,157,195,57,69,229,193,57,35,45,192,57,243,116,190,57,181,188,188,57,104,4,187,57,13,76,185,57,163,147,183,57,44,219,181,57,167,34,180,57,21,106,178,57,117,177,176,57,201,248,174,57,15,64,173,57,72,135,171,57,117,206,169,57,150,21,168,57,170,92,166,57,178,163,164,57,174,234,162,57,159,49,161,57,132,120,159,57,94,191,157,57,45,6,156,57,241,76,154,57,170,147,152,57,88,218,150,57,253,32,
149,57,151,103,147,57,38,174,145,57,173,244,143,57,41,59,142,57,156,129,140,57,6,200,138,57,103,14,137,57,190,84,135,57,13,155,133,57,84,225,131,57,146,39,130,57,200,109,128,57,236,103,125,57,56,244,121,57,117,128,118,57,163,12,115,57,195,152,111,57,213,36,108,57,217,176,104,57,207,60,101,57,185,200,97,57,149,84,94,57,102,224,90,57,42,108,87,57,227,247,83,57,145,131,80,57,52,15,77,57,205,154,73,57,91,38,70,57,224,177,66,57,92,61,63,57,206,200,59,57,56,84,56,57,154,223,52,57,243,106,49,57,69,246,45,
57,145,129,42,57,213,12,39,57,19,152,35,57,75,35,32,57,125,174,28,57,170,57,25,57,210,196,21,57,246,79,18,57,21,219,14,57,48,102,11,57,72,241,7,57,93,124,4,57,112,7,1,57,255,36,251,56,27,59,244,56,52,81,237,56,74,103,230,56,94,125,223,56,113,147,216,56,133,169,209,56,152,191,202,56,173,213,195,56,196,235,188,56,221,1,182,56,250,23,175,56,27,46,168,56,64,68,161,56,108,90,154,56,158,112,147,56,214,134,140,56,23,157,133,56,192,102,125,56,101,147,111,56,30,192,97,56,237,236,83,56,211,25,70,56,209,70,
56,56,233,115,42,56,28,161,28,56,108,206,14,56,219,251,0,56,210,82,230,55,50,174,202,55,215,9,175,55,196,101,147,55,249,131,111,55,8,61,56,55,184,246,0,55,34,98,147,54,197,96,147,53,175,96,19,182,109,55,184,182,129,94,19,183,134,160,74,183,223,240,128,183,19,145,156,183,219,48,184,183,53,208,211,183,28,111,239,183,200,134,5,184,198,85,19,184,135,36,33,184,9,243,46,184,75,193,60,184,75,143,74,184,8,93,88,184],"i8",4,y.a+552960);
Q([129,42,102,184,180,247,115,184,80,226,128,184,161,200,135,184,205,174,142,184,211,148,149,184,179,122,156,184,107,96,163,184,251,69,170,184,98,43,177,184,159,16,184,184,178,245,190,184,155,218,197,184,87,191,204,184,231,163,211,184,73,136,218,184,126,108,225,184,132,80,232,184,90,52,239,184,1,24,246,184,118,251,252,184,93,239,1,185,230,96,5,185,85,210,8,185,170,67,12,185,229,180,15,185,5,38,19,185,11,151,22,185,245,7,26,185,195,120,29,185,117,233,32,185,11,90,36,185,131,202,39,185,223,58,43,185,
29,171,46,185,61,27,50,185,63,139,53,185,34,251,56,185,230,106,60,185,139,218,63,185,16,74,67,185,117,185,70,185,185,40,74,185,221,151,77,185,223,6,81,185,192,117,84,185,127,228,87,185,28,83,91,185,150,193,94,185,237,47,98,185,32,158,101,185,48,12,105,185,28,122,108,185,227,231,111,185,133,85,115,185,2,195,118,185,90,48,122,185,139,157,125,185,75,133,128,185,190,59,130,185,29,242,131,185,104,168,133,185,159,94,135,185,194,20,137,185,209,202,138,185,204,128,140,185,178,54,142,185,131,236,143,185,63,
162,145,185,230,87,147,185,120,13,149,185,244,194,150,185,91,120,152,185,172,45,154,185,231,226,155,185,11,152,157,185,25,77,159,185,17,2,161,185,241,182,162,185,187,107,164,185,110,32,166,185,9,213,167,185,141,137,169,185,249,61,171,185,77,242,172,185,138,166,174,185,174,90,176,185,186,14,178,185,173,194,179,185,135,118,181,185,73,42,183,185,241,221,184,185,128,145,186,185,246,68,188,185,81,248,189,185,148,171,191,185,188,94,193,185,202,17,195,185,189,196,196,185,150,119,198,185,84,42,200,185,248,
220,201,185,128,143,203,185,237,65,205,185,63,244,206,185,117,166,208,185,143,88,210,185,141,10,212,185,111,188,213,185,53,110,215,185,222,31,217,185,106,209,218,185,218,130,220,185,44,52,222,185,98,229,223,185,122,150,225,185,116,71,227,185,80,248,228,185,15,169,230,185,175,89,232,185,49,10,234,185,149,186,235,185,218,106,237,185,0,27,239,185,7,203,240,185,239,122,242,185,184,42,244,185,97,218,245,185,234,137,247,185,83,57,249,185,157,232,250,185,198,151,252,185,206,70,254,185,182,245,255,185,63,
210,0,186,146,169,1,186,212,128,2,186,6,88,3,186,39,47,4,186,56,6,5,186,55,221,5,186,37,180,6,186,2,139,7,186,206,97,8,186,137,56,9,186,50,15,10,186,202,229,10,186,81,188,11,186,197,146,12,186,40,105,13,186,121,63,14,186,185,21,15,186,230,235,15,186,1,194,16,186,10,152,17,186,1,110,18,186,229,67,19,186,183,25,20,186,119,239,20,186,36,197,21,186,190,154,22,186,69,112,23,186,186,69,24,186,27,27,25,186,106,240,25,186,165,197,26,186,205,154,27,186,226,111,28,186,228,68,29,186,210,25,30,186,172,238,30,
186,115,195,31,186,38,152,32,186,197,108,33,186,80,65,34,186,199,21,35,186,42,234,35,186,121,190,36,186,180,146,37,186,218,102,38,186,236,58,39,186,233,14,40,186,210,226,40,186,166,182,41,186,101,138,42,186,15,94,43,186,165,49,44,186,37,5,45,186,144,216,45,186,230,171,46,186,39,127,47,186,82,82,48,186,104,37,49,186,104,248,49,186,82,203,50,186,39,158,51,186,230,112,52,186,143,67,53,186,34,22,54,186,159,232,54,186,5,187,55,186,86,141,56,186,144,95,57,186,179,49,58,186,192,3,59,186,183,213,59,186,151,
167,60,186,96,121,61,186,18,75,62,186,173,28,63,186,49,238,63,186,158,191,64,186,244,144,65,186,50,98,66,186,89,51,67,186,105,4,68,186,97,213,68,186,65,166,69,186,10,119,70,186,187,71,71,186,84,24,72,186,212,232,72,186,61,185,73,186,142,137,74,186,199,89,75,186,231,41,76,186,238,249,76,186,222,201,77,186,180,153,78,186,114,105,79,186,23,57,80,186,164,8,81,186,23,216,81,186,114,167,82,186,179,118,83,186,219,69,84,186,234,20,85,186,224,227,85,186,188,178,86,186,126,129,87,186,39,80,88,186,183,30,89,
186,44,237,89,186,136,187,90,186,202,137,91,186,241,87,92,186,255,37,93,186,242,243,93,186,203,193,94,186,138,143,95,186,46,93,96,186,184,42,97,186,39,248,97,186,124,197,98,186,181,146,99,186,212,95,100,186,216,44,101,186,193,249,101,186,142,198,102,186,65,147,103,186,216,95,104,186,84,44,105,186,180,248,105,186,249,196,106,186,34,145,107,186,48,93,108,186,33,41,109,186,247,244,109,186,177,192,110,186,79,140,111,186,208,87,112,186,54,35,113,186,127,238,113,186,172,185,114,186,188,132,115,186,176,
79,116,186,135,26,117,186,66,229,117,186,224,175,118,186,96,122,119,186,196,68,120,186,11,15,121,186,53,217,121,186,65,163,122,186,49,109,123,186,2,55,124,186,183,0,125,186,78,202,125,186,199,147,126,186,35,93,127,186,48,19,128,186,192,119,128,186,65,220,128,186,179,64,129,186,22,165,129,186,106,9,130,186,175,109,130,186,228,209,130,186,11,54,131,186,34,154,131,186,41,254,131,186,34,98,132,186,11,198,132,186,228,41,133,186,175,141,133,186,105,241,133,186,20,85,134,186,176,184,134,186,60,28,135,186,
184,127,135,186,36,227,135,186,129,70,136,186,206,169,136,186,11,13,137,186,57,112,137,186,86,211,137,186,99,54,138,186,97,153,138,186,78,252,138,186,44,95,139,186,249,193,139,186,182,36,140,186,99,135,140,186,0,234,140,186,140,76,141,186,8,175,141,186,116,17,142,186,207,115,142,186,26,214,142,186,84,56,143,186,126,154,143,186,152,252,143,186,161,94,144,186,153,192,144,186,128,34,145,186,87,132,145,186,29,230,145,186,210,71,146,186,119,169,146,186,10,11,147,186,141,108,147,186,254,205,147,186,95,
47,148,186,175,144,148,186,237,241,148,186,27,83,149,186,55,180,149,186,66,21,150,186,60,118,150,186,37,215,150,186,252,55,151,186,194,152,151,186,119,249,151,186,26,90,152,186,171,186,152,186,44,27,153,186,154,123,153,186,247,219,153,186,67,60,154,186,125,156,154,186,165,252,154,186,187,92,155,186,192,188,155,186,178,28,156,186,147,124,156,186,98,220,156,186,31,60,157,186,203,155,157,186,100,251,157,186,235,90,158,186,96,186,158,186,194,25,159,186,19,121,159,186,82,216,159,186,126,55,160,186,152,
150,160,186,159,245,160,186,149,84,161,186,120,179,161,186,72,18,162,186,6,113,162,186,177,207,162,186,74,46,163,186,209,140,163,186,68,235,163,186,165,73,164,186,244,167,164,186,47,6,165,186,88,100,165,186,110,194,165,186,113,32,166,186,97,126,166,186,62,220,166,186,9,58,167,186,192,151,167,186,100,245,167,186,245,82,168,186,115,176,168,186,222,13,169,186,54,107,169,186,122,200,169,186,171,37,170,186,201,130,170,186,212,223,170,186,203,60,171,186,174,153,171,186,127,246,171,186,59,83,172,186,229,
175,172,186,122,12,173,186,252,104,173,186,106,197,173,186,197,33,174,186,12,126,174,186,63,218,174,186,94,54,175,186,106,146,175,186,97,238,175,186,69,74,176,186,21,166,176,186,209,1,177,186,120,93,177,186,12,185,177,186,140,20,178,186,247,111,178,186,78,203,178,186,145,38,179,186,192,129,179,186,219,220,179,186,225,55,180,186,211,146,180,186,176,237,180,186,121,72,181,186,46,163,181,186,206,253,181,186,89,88,182,186,208,178,182,186,51,13,183,186,128,103,183,186,185,193,183,186,221,27,184,186,237,
117,184,186,232,207,184,186,205,41,185,186,158,131,185,186,91,221,185,186,2,55,186,186,148,144,186,186,17,234,186,186,121,67,187,186,204,156,187,186,10,246,187,186,51,79,188,186,70,168,188,186,68,1,189,186,45,90,189,186,1,179,189,186,192,11,190,186,105,100,190,186,252,188,190,186,122,21,191,186,227,109,191,186,54,198,191,186,116,30,192,186,156,118,192,186,174,206,192,186,171,38,193,186,146,126,193,186,99,214,193,186,31,46,194,186,196,133,194,186,84,221,194,186,206,52,195,186,50,140,195,186,129,227,
195,186,185,58,196,186,219,145,196,186,231,232,196,186,221,63,197,186,189,150,197,186,135,237,197,186,58,68,198,186,216,154,198,186,95,241,198,186,208,71,199,186,42,158,199,186,110,244,199,186,156,74,200,186,179,160,200,186,180,246,200,186,158,76,201,186,114,162,201,186,47,248,201,186,214,77,202,186,102,163,202,186,223,248,202,186,66,78,203,186,142,163,203,186,195,248,203,186,225,77,204,186,232,162,204,186,217,247,204,186,178,76,205,186,117,161,205,186,33,246,205,186,181,74,206,186,51,159,206,186,
154,243,206,186,233,71,207,186,33,156,207,186,66,240,207,186,76,68,208,186,63,152,208,186,26,236,208,186,222,63,209,186,139,147,209,186,32,231,209,186,158,58,210,186,4,142,210,186,83,225,210,186,138,52,211,186,170,135,211,186,178,218,211,186,163,45,212,186,124,128,212,186,61,211,212,186,230,37,213,186,120,120,213,186,242,202,213,186,84,29,214,186,159,111,214,186,209,193,214,186,235,19,215,186,238,101,215,186,217,183,215,186,171,9,216,186,101,91,216,186,8,173,216,186,146,254,216,186,4,80,217,186,94,
161,217,186,160,242,217,186,201,67,218,186,218,148,218,186,211,229,218,186,180,54,219,186,124,135,219,186,44,216,219,186,195,40,220,186,66,121,220,186,168,201,220,186,246,25,221,186,43,106,221,186,72,186,221,186,76,10,222,186,55,90,222,186,9,170,222,186,195,249,222,186,100,73,223,186,237,152,223,186,92,232,223,186,179,55,224,186,240,134,224,186,21,214,224,186,33,37,225,186,20,116,225,186,238,194,225,186,174,17,226,186,86,96,226,186,229,174,226,186,90,253,226,186,182,75,227,186,249,153,227,186,35,
232,227,186,52,54,228,186,43,132,228,186,9,210,228,186,205,31,229,186,121,109,229,186,10,187,229,186,131,8,230,186,225,85,230,186,39,163,230,186,82,240,230,186,100,61,231,186,93,138,231,186,60,215,231,186,1,36,232,186,173,112,232,186,62,189,232,186,182,9,233,186,21,86,233,186,89,162,233,186,132,238,233,186,148,58,234,186,139,134,234,186,104,210,234,186,43,30,235,186,212,105,235,186,98,181,235,186,215,0,236,186,50,76,236,186,114,151,236,186,152,226,236,186,165,45,237,186,151,120,237,186,110,195,237,
186,44,14,238,186,207,88,238,186,88,163,238,186,198,237,238,186,26,56,239,186,84,130,239,186,115,204,239,186,119,22,240,186,98,96,240,186,49,170,240,186,230,243,240,186,129,61,241,186,0,135,241,186,102,208,241,186,176,25,242,186,224,98,242,186,245,171,242,186,239,244,242,186,206,61,243,186,147,134,243,186,61,207,243,186,203,23,244,186,63,96,244,186,152,168,244,186,214,240,244,186,249,56,245,186,1,129,245,186,238,200,245,186,192,16,246,186,118,88,246,186,18,160,246,186,146,231,246,186,247,46,247,186,
65,118,247,186,112,189,247,186,131,4,248,186,123,75,248,186,88,146,248,186,25,217,248,186,191,31,249,186,74,102,249,186,185,172,249,186,12,243,249,186,68,57,250,186,97,127,250,186,97,197,250,186,71,11,251,186,16,81,251,186,190,150,251,186,81,220,251,186,199,33,252,186,34,103,252,186,97,172,252,186,133,241,252,186,140,54,253,186,120,123,253,186,72,192,253,186,251,4,254,186,147,73,254,186,15,142,254,186,111,210,254,186,179,22,255,186,219,90,255,186,231,158,255,186,215,226,255,186,85,19,0,187,49,53,
0,187,255,86,0,187,191,120,0,187,112,154,0,187,19,188,0,187,169,221,0,187,48,255,0,187,169,32,1,187,19,66,1,187,112,99,1,187,190,132,1,187,254,165,1,187,48,199,1,187,84,232,1,187,105,9,2,187,112,42,2,187,105,75,2,187,84,108,2,187,48,141,2,187,254,173,2,187,190,206,2,187,111,239,2,187,18,16,3,187,166,48,3,187,44,81,3,187,164,113,3,187,13,146,3,187,104,178,3,187,181,210,3,187,243,242,3,187,34,19,4,187,67,51,4,187,86,83,4,187,90,115,4,187,79,147,4,187,54,179,4,187,15,211,4,187,217,242,4,187,148,18,5,
187,65,50,5,187,223,81,5,187,111,113,5,187,240,144,5,187,98,176,5,187,198,207,5,187,27,239,5,187,98,14,6,187,153,45,6,187,194,76,6,187,221,107,6,187,232,138,6,187,229,169,6,187,212,200,6,187,179,231,6,187,132,6,7,187,70,37,7,187,249,67,7,187,157,98,7,187,51,129,7,187,185,159,7,187,49,190,7,187,154,220,7,187,244,250,7,187,64,25,8,187,124,55,8,187,170,85,8,187,200,115,8,187,216,145,8,187,217,175,8,187,203,205,8,187,174,235,8,187,130,9,9,187,71,39,9,187,253,68,9,187,164,98,9,187,60,128,9,187,197,157,
9,187,63,187,9,187,170,216,9,187,5,246,9,187,82,19,10,187,144,48,10,187,191,77,10,187,222,106,10,187,239,135,10,187,240,164,10,187,226,193,10,187,197,222,10,187,153,251,10,187,94,24,11,187,19,53,11,187,185,81,11,187,81,110,11,187,216,138,11,187,81,167,11,187,187,195,11,187,21,224,11,187,96,252,11,187,155,24,12,187,200,52,12,187,229,80,12,187,243,108,12,187,241,136,12,187,224,164,12,187,192,192,12,187,145,220,12,187,82,248,12,187,4,20,13,187,166,47,13,187,57,75,13,187,189,102,13,187,49,130,13,187,
150,157,13,187,235,184,13,187,49,212,13,187,104,239,13,187,143,10,14,187,166,37,14,187,174,64,14,187,167,91,14,187,144,118,14,187,106,145,14,187,52,172,14,187,238,198,14,187,153,225,14,187,53,252,14,187,192,22,15,187,61,49,15,187,169,75,15,187,7,102,15,187,84,128,15,187,146,154,15,187,192,180,15,187,223,206,15,187,238,232,15,187,237,2,16,187,221,28,16,187,189,54,16,187,141,80,16,187,78,106,16,187,254,131,16,187,160,157,16,187,49,183,16,187,179,208,16,187,37,234,16,187,135,3,17,187,217,28,17,187,28,
54,17,187,79,79,17,187,114,104,17,187,133,129,17,187,137,154,17,187,124,179,17,187,96,204,17,187,52,229,17,187,248,253,17,187,173,22,18,187,81,47,18,187,230,71,18,187,106,96,18,187,223,120,18,187,68,145,18,187,153,169,18,187,222,193,18,187,19,218,18,187,56,242,18,187,77,10,19,187,82,34,19,187,71,58,19,187,45,82,19,187,2,106,19,187,199,129,19,187,124,153,19,187,33,177,19,187,183,200,19,187,60,224,19,187,177,247,19,187,22,15,20,187,107,38,20,187,176,61,20,187,229,84,20,187,9,108,20,187,30,131,20,187,
34,154,20,187,23,177,20,187,251,199,20,187,207,222,20,187,147,245,20,187,71,12,21,187,235,34,21,187,126,57,21,187,2,80,21,187,117,102,21,187,216,124,21,187,43,147,21,187,109,169,21,187,160,191,21,187,194,213,21,187,212,235,21,187,213,1,22,187,199,23,22,187,168,45,22,187,121,67,22,187,57,89,22,187,233,110,22,187,137,132,22,187,25,154,22,187,153,175,22,187,8,197,22,187,102,218,22,187,181,239,22,187,243,4,23,187,33,26,23,187,62,47,23,187,75,68,23,187,71,89,23,187,52,110,23,187,16,131,23,187,219,151,
23,187,150,172,23,187,65,193,23,187,219,213,23,187,101,234,23,187,222,254,23,187,71,19,24,187,159,39,24,187,231,59,24,187,31,80,24,187,70,100,24,187,92,120,24,187,98,140,24,187,88,160,24,187,61,180,24,187,18,200,24,187,214,219,24,187,137,239,24,187,44,3,25,187,191,22,25,187,64,42,25,187,178,61,25,187,18,81,25,187,99,100,25,187,162,119,25,187,209,138,25,187,240,157,25,187,254,176,25,187,251,195,25,187,231,214,25,187,195,233,25,187,143,252,25,187,73,15,26,187,243,33,26,187,141,52,26,187,22,71,26,187,
142,89,26,187,245,107,26,187,76,126,26,187,146,144,26,187,200,162,26,187,236,180,26,187,0,199,26,187,3,217,26,187,246,234,26,187,216,252,26,187,169,14,27,187,105,32,27,187,25,50,27,187,184,67,27,187,70,85,27,187,195,102,27,187,48,120,27,187,140,137,27,187,215,154,27,187,17,172,27,187,59,189,27,187,83,206,27,187,91,223,27,187,82,240,27,187,56,1,28,187,14,18,28,187,210,34,28,187,134,51,28,187,41,68,28,187,187,84,28,187,60,101,28,187,173,117,28,187,12,134,28,187,91,150,28,187,152,166,28,187,197,182,
28,187,225,198,28,187,236,214,28,187,230,230,28,187,207,246,28,187,168,6,29,187,111,22,29,187,37,38,29,187,203,53,29,187,96,69,29,187,227,84,29,187,86,100,29,187,184,115,29,187,8,131,29,187,72,146,29,187,119,161,29,187,149,176,29,187,162,191,29,187,158,206,29,187,137,221,29,187,99,236,29,187,43,251,29,187,227,9,30,187,138,24,30,187,32,39,30,187,165,53,30,187,25,68,30,187,123,82,30,187,205,96,30,187,14,111,30,187,62,125,30,187,92,139,30,187,106,153,30,187,102,167,30,187,82,181,30,187,44,195,30,187,
245,208,30,187,173,222,30,187,84,236,30,187,234,249,30,187,111,7,31,187,227,20,31,187,70,34,31,187,151,47,31,187,216,60,31,187,7,74,31,187,37,87,31,187,50,100,31,187,46,113,31,187,25,126,31,187,242,138,31,187,187,151,31,187,114,164,31,187,24,177,31,187,173,189,31,187,49,202,31,187,164,214,31,187,5,227,31,187,86,239,31,187,149,251,31,187,195,7,32,187,223,19,32,187,235,31,32,187,229,43,32,187,206,55,32,187,166,67,32,187,109,79,32,187,35,91,32,187,199,102,32,187,90,114,32,187,220,125,32,187,76,137,32,
187,172,148,32,187,250,159,32,187,55,171,32,187,98,182,32,187,125,193,32,187,134,204,32,187,126,215,32,187,100,226,32,187,57,237,32,187,253,247,32,187,176,2,33,187,82,13,33,187,226,23,33,187,97,34,33,187,206,44,33,187,43,55,33,187,118,65,33,187,176,75,33,187,216,85,33,187,239,95,33,187,245,105,33,187,234,115,33,187,205,125,33,187,159,135,33,187,95,145,33,187,14,155,33,187,172,164,33,187,57,174,33,187,180,183,33,187,30,193,33,187,119,202,33,187,190,211,33,187,244,220,33,187,24,230,33,187,43,239,33,
187,45,248,33,187,30,1,34,187,253,9,34,187,203,18,34,187,135,27,34,187,50,36,34,187,204,44,34,187,84,53,34,187,203,61,34,187,48,70,34,187,132,78,34,187,199,86,34,187,248,94,34,187,24,103,34,187,39,111,34,187,36,119,34,187,16,127,34,187,234,134,34,187,179,142,34,187,107,150,34,187,17,158,34,187,165,165,34,187,41,173,34,187,155,180,34,187,251,187,34,187,74,195,34,187,136,202,34,187,180,209,34,187,207,216,34,187,216,223,34,187,208,230,34,187,183,237,34,187,140,244,34,187,79,251,34,187,2,2,35,187,162,
8,35,187,50,15,35,187,176,21,35,187,28,28,35,187,119,34,35,187,193,40,35,187,249,46,35,187,31,53,35,187,53,59,35,187,56,65,35,187,43,71,35,187,11,77,35,187,219,82,35,187,153,88,35,187,69,94,35,187,224,99,35,187,106,105,35,187,226,110,35,187,72,116,35,187,157,121,35,187,225,126,35,187,19,132,35,187,52,137,35,187,67,142,35,187,65,147,35,187,45,152,35,187,8,157,35,187,209,161,35,187,137,166,35,187,47,171,35,187,196,175,35,187,71,180,35,187,185,184,35,187,26,189,35,187,105,193,35,187,166,197,35,187,210,
201,35,187,236,205,35,187,245,209,35,187,237,213,35,187,211,217,35,187,167,221,35,187,106,225,35,187,28,229,35,187,188,232,35,187,74,236,35,187,199,239,35,187,51,243,35,187,141,246,35,187,213,249,35,187,12,253,35,187,50,0,36,187,70,3,36,187,72,6,36,187,57,9,36,187,25,12,36,187,231,14,36,187,164,17,36,187,79,20,36,187,232,22,36,187,112,25,36,187,231,27,36,187,76,30,36,187,159,32,36,187,225,34,36,187,18,37,36,187,49,39,36,187,62,41,36,187,58,43,36,187,37,45,36,187,254,46,36,187,197,48,36,187,123,50,
36,187,32,52,36,187,179,53,36,187,52,55,36,187,164,56,36,187,3,58,36,187,80,59,36,187,139,60,36,187,181,61,36,187,206,62,36,187,213,63,36,187,202,64,36,187,174,65,36,187,129,66,36,187,66,67,36,187,241,67,36,187,143,68,36,187,28,69,36,187,151,69,36,187,0,70,36,187,88,70,36,187,159,70,36,187,212,70,36,187,248,70,36,187,10,71,36,187,10,71,36,187,249,70,36,187,215,70,36,187,163,70,36,187,94,70,36,187,7,70,36,187,159,69,36,187,37,69,36,187,153,68,36,187,253,67,36,187,78,67,36,187,143,66,36,187,190,65,
36,187,219,64,36,187,231,63,36,187,225,62,36,187,202,61,36,187,161,60,36,187,103,59,36,187,28,58,36,187,191,56,36,187,81,55,36,187,209,53,36,187,63,52,36,187,157,50,36,187,232,48,36,187,35,47,36,187,75,45,36,187,99,43,36,187,105,41,36,187,93,39,36,187,64,37,36,187,18,35,36,187,210,32,36,187,129,30,36,187,30,28,36,187,170,25,36,187,36,23,36,187,141,20,36,187,228,17,36,187,43,15,36,187,95,12,36,187,130,9,36,187,148,6,36,187,149,3,36,187,132,0,36,187,97,253,35,187,45,250,35,187,232,246,35,187,145,243,
35,187,41,240,35,187,175,236,35,187,37,233,35,187,136,229,35,187,218,225,35,187,27,222,35,187,75,218,35,187,105,214,35,187,118,210,35,187,113,206,35,187,91,202,35,187,51,198,35,187,250,193,35,187,176,189,35,187,85,185,35,187,232,180,35,187,105,176,35,187,218,171,35,187,56,167,35,187,134,162,35,187,194,157,35,187,237,152,35,187,7,148,35,187,15,143,35,187,6,138,35,187,235,132,35,187,191,127,35,187,130,122,35,187,51,117,35,187,211,111,35,187,98,106,35,187,224,100,35,187,76,95,35,187,167,89,35,187,240,
83,35,187,40,78,35,187,79,72,35,187,101,66,35,187,105,60,35,187,92,54,35,187,62,48,35,187,14,42,35,187,205,35,35,187,123,29,35,187,23,23,35,187,163,16,35,187,29,10,35,187,133,3,35,187,221,252,34,187,35,246,34,187,88,239,34,187,123,232,34,187,142,225,34,187,143,218,34,187,127,211,34,187,93,204,34,187,43,197,34,187,231,189,34,187,146,182,34,187,44,175,34,187,180,167,34,187,44,160,34,187,146,152,34,187,230,144,34,187,42,137,34,187,93,129,34,187,126,121,34,187,142,113,34,187,141,105,34,187,122,97,34,
187,87,89,34,187,34,81,34,187,220,72,34,187,133,64,34,187,29,56,34,187,164,47,34,187,25,39,34,187,126,30,34,187,209,21,34,187,19,13,34,187,68,4,34,187,100,251,33,187,114,242,33,187,112,233,33,187,92,224,33,187,56,215,33,187,2,206,33,187,187,196,33,187,99,187,33,187,250,177,33,187,128,168,33,187,244,158,33,187,88,149,33,187,170,139,33,187,236,129,33,187,28,120,33,187,60,110,33,187,74,100,33,187,71,90,33,187,52,80,33,187,15,70,33,187,217,59,33,187,146,49,33,187,58,39,33,187,209,28,33,187,87,18,33,187,
204,7,33,187,48,253,32,187,131,242,32,187,197,231,32,187,246,220,32,187,22,210,32,187,37,199,32,187,35,188,32,187,16,177,32,187,237,165,32,187,184,154,32,187,114,143,32,187,27,132,32,187,180,120,32,187,59,109,32,187,178,97,32,187,23,86,32,187,108,74,32,187,176,62,32,187,226,50,32,187,4,39,32,187,21,27,32,187,22,15,32,187,5,3,32,187,227,246,31,187,177,234,31,187,109,222,31,187,25,210,31,187,180,197,31,187,62,185,31,187,183,172,31,187,32,160,31,187,119,147,31,187,190,134,31,187,244,121,31,187,25,109,
31,187,46,96,31,187,49,83,31,187,36,70,31,187,6,57,31,187,215,43,31,187,151,30,31,187,71,17,31,187,230,3,31,187,116,246,30,187,241,232,30,187,94,219,30,187,186,205,30,187,5,192,30,187,64,178,30,187,105,164,30,187,130,150,30,187,139,136,30,187,130,122,30,187,105,108,30,187,63,94,30,187,5,80,30,187,186,65,30,187,94,51,30,187,242,36,30,187,117,22,30,187,231,7,30,187,73,249,29,187,154,234,29,187,218,219,29,187,10,205,29,187,41,190,29,187,56,175,29,187,54,160,29,187,35,145,29,187,0,130,29,187,204,114,
29,187,136,99,29,187,51,84,29,187,206,68,29,187,88,53,29,187,209,37,29,187,58,22,29,187,147,6,29,187,219,246,28,187,18,231,28,187,57,215,28,187,79,199,28,187,85,183,28,187,75,167,28,187,48,151,28,187,5,135,28,187,201,118,28,187,124,102,28,187,32,86,28,187,178,69,28,187,53,53,28,187,167,36,28,187,8,20,28,187,89,3,28,187,154,242,27,187,203,225,27,187,235,208,27,187,250,191,27,187,250,174,27,187,232,157,27,187,199,140,27,187,149,123,27,187,83,106,27,187,1,89,27,187,158,71,27,187,43,54,27,187,168,36,
27,187,20,19,27,187,112,1,27,187,188,239,26,187,248,221,26,187,35,204,26,187,62,186,26,187,73,168,26,187,67,150,26,187,46,132,26,187,8,114,26,187,210,95,26,187,140,77,26,187,53,59,26,187,207,40,26,187,88,22,26,187,209,3,26,187,58,241,25,187,146,222,25,187,219,203,25,187,20,185,25,187,60,166,25,187,84,147,25,187,92,128,25,187,84,109,25,187,60,90,25,187,20,71,25,187,220,51,25,187,148,32,25,187,59,13,25,187,211,249,24,187,91,230,24,187,210,210,24,187,58,191,24,187,145,171,24,187,217,151,24,187,17,132,
24,187,56,112,24,187,80,92,24,187,88,72,24,187,79,52,24,187,55,32,24,187,15,12,24,187,215,247,23,187,143,227,23,187,55,207,23,187,207,186,23,187,87,166,23,187,208,145,23,187,56,125,23,187,145,104,23,187,218,83,23,187,19,63,23,187,60,42,23,187,86,21,23,187,95,0,23,187,89,235,22,187,67,214,22,187,29,193,22,187,231,171,22,187,162,150,22,187,77,129,22,187,232,107,22,187,115,86,22,187,239,64,22,187,91,43,22,187,183,21,22,187,4,0,22,187,65,234,21,187,110,212,21,187,139,190,21,187,153,168,21,187,152,146,
21,187,134,124,21,187,101,102,21,187,52,80,21,187,244,57,21,187,164,35,21,187,69,13,21,187,214,246,20,187,87,224,20,187,201,201,20,187,43,179,20,187,126,156,20,187,193,133,20,187,245,110,20,187,25,88,20,187,46,65,20,187,51,42,20,187,41,19,20,187,15,252,19,187,230,228,19,187,173,205,19,187,101,182,19,187,14,159,19,187,167,135,19,187,49,112,19,187,171,88,19,187,22,65,19,187,113,41,19,187,190,17,19,187,251,249,18,187,40,226,18,187,70,202,18,187,85,178,18,187,85,154,18,187,69,130,18,187,38,106,18,187,
248,81,18,187,186,57,18,187,109,33,18,187,17,9,18,187,166,240,17,187,44,216,17,187,162,191,17,187,9,167,17,187,97,142,17,187,170,117,17,187,227,92,17,187,14,68,17,187,41,43,17,187,53,18,17,187,50,249,16,187,32,224,16,187,255,198,16,187,207,173,16,187,143,148,16,187,65,123,16,187,227,97,16,187,119,72,16,187,251,46,16,187,113,21,16,187,215,251,15,187,47,226,15,187,119,200,15,187,177,174,15,187,219,148,15,187,247,122,15,187,3,97,15,187,1,71,15,187,240,44,15,187,208,18,15,187,161,248,14,187,99,222,14,
187,22,196,14,187,187,169,14,187,80,143,14,187,215,116,14,187,79,90,14,187,184,63,14,187,18,37,14,187,94,10,14,187,154,239,13,187,200,212,13,187,232,185,13,187,248,158,13,187,250,131,13,187,237,104,13,187,209,77,13,187,167,50,13,187,110,23,13,187,38,252,12,187,208,224,12,187,107,197,12,187,247,169,12,187,117,142,12,187,228,114,12,187,68,87,12,187,150,59,12,187,218,31,12,187,15,4,12,187,53,232,11,187,77,204,11,187,86,176,11,187,81,148,11,187,61,120,11,187,27,92,11,187,234,63,11,187,171,35,11,187,93,
7,11,187,1,235,10,187,150,206,10,187,30,178,10,187,150,149,10,187,1,121,10,187,93,92,10,187,170,63,10,187,233,34,10,187,26,6,10,187,61,233,9,187,81,204,9,187,87,175,9,187,79,146,9,187,56,117,9,187,20,88,9,187,225,58,9,187,159,29,9,187,80,0,9,187,242,226,8,187,134,197,8,187,12,168,8,187,132,138,8,187,237,108,8,187,73,79,8,187,150,49,8,187,214,19,8,187,7,246,7,187,42,216,7,187,63,186,7,187,70,156,7,187,62,126,7,187,41,96,7,187,6,66,7,187,213,35,7,187,150,5,7,187,72,231,6,187,237,200,6,187,132,170,6,
187,13,140,6,187,136,109,6,187,245,78,6,187,84,48,6,187,166,17,6,187,233,242,5,187,31,212,5,187,71,181,5,187,96,150,5,187,109,119,5,187,107,88,5,187,91,57,5,187,62,26,5,187,19,251,4,187,218,219,4,187,148,188,4,187,63,157,4,187,221,125,4,187,110,94,4,187,240,62,4,187,101,31,4,187,204,255,3,187,38,224,3,187,114,192,3,187,177,160,3,187,225,128,3,187,5,97,3,187,26,65,3,187,34,33,3,187,29,1,3,187,10,225,2,187,233,192,2,187,187,160,2,187,128,128,2,187,55,96,2,187,225,63,2,187,125,31,2,187,11,255,1,187,
141,222,1,187,0,190,1,187,103,157,1,187,192,124,1,187,12,92,1,187,74,59,1,187,123,26,1,187,159,249,0,187,181,216,0,187,191,183,0,187,186,150,0,187,169,117,0,187,138,84,0,187,95,51,0,187,38,18,0,187,190,225,255,186,24,159,255,186,86,92,255,186,123,25,255,186,133,214,254,186,117,147,254,186,74,80,254,186,6,13,254,186,167,201,253,186,46,134,253,186,155,66,253,186,238,254,252,186,39,187,252,186,69,119,252,186,74,51,252,186,53,239,251,186,6,171,251,186,189,102,251,186,90,34,251,186,221,221,250,186,71,
153,250,186,150,84,250,186,204,15,250,186,232,202,249,186,235,133,249,186,212,64,249,186,163,251,248,186,88,182,248,186,244,112,248,186,119,43,248,186,224,229,247,186,47,160,247,186,101,90,247,186,130,20,247,186,133,206,246,186,111,136,246,186,63,66,246,186,246,251,245,186,148,181,245,186,25,111,245,186,132,40,245,186,214,225,244,186,15,155,244,186,47,84,244,186,54,13,244,186,36,198,243,186,249,126,243,186,181,55,243,186,87,240,242,186,225,168,242,186,82,97,242,186,170,25,242,186,233,209,241,186,
16,138,241,186,29,66,241,186,18,250,240,186,239,177,240,186,178,105,240,186,93,33,240,186,239,216,239,186,105,144,239,186,202,71,239,186,18,255,238,186,66,182,238,186,90,109,238,186,89,36,238,186,64,219,237,186,14,146,237,186,196,72,237,186,98,255,236,186,231,181,236,186,84,108,236,186,169,34,236,186,230,216,235,186,10,143,235,186,23,69,235,186,11,251,234,186,232,176,234,186,172,102,234,186,88,28,234,186,237,209,233,186,105,135,233,186,206,60,233,186,26,242,232,186,79,167,232,186,108,92,232,186,113,
17,232,186,95,198,231,186,53,123,231,186,243,47,231,186,154,228,230,186,41,153,230,186,160,77,230,186,0,2,230,186,72,182,229,186,121,106,229,186,146,30,229,186,148,210,228,186,127,134,228,186,82,58,228,186,14,238,227,186,179,161,227,186,65,85,227,186,183,8,227,186,22,188,226,186,94,111,226,186,143,34,226,186,168,213,225,186,171,136,225,186,151,59,225,186,108,238,224,186,41,161,224,186,208,83,224,186,96,6,224,186,217,184,223,186,60,107,223,186,135,29,223,186,188,207,222,186,218,129,222,186,226,51,
222,186,210,229,221,186,173,151,221,186,112,73,221,186,29,251,220,186,180,172,220,186,52,94,220,186,157,15,220,186,241,192,219,186,46,114,219,186,84,35,219,186,100,212,218,186,94,133,218,186,66,54,218,186,15,231,217,186,199,151,217,186,104,72,217,186,243,248,216,186,104,169,216,186,199,89,216,186,16,10,216,186,67,186,215,186,96,106,215,186,103,26,215,186,88,202,214,186,52,122,214,186,250,41,214,186,170,217,213,186,68,137,213,186,200,56,213,186,55,232,212,186,144,151,212,186,212,70,212,186,2,246,211,
186,27,165,211,186,30,84,211,186,12,3,211,186,228,177,210,186,167,96,210,186,84,15,210,186,236,189,209,186,111,108,209,186,221,26,209,186,54,201,208,186,121,119,208,186,167,37,208,186,192,211,207,186,196,129,207,186,179,47,207,186,141,221,206,186,83,139,206,186,3,57,206,186,158,230,205,186,36,148,205,186,150,65,205,186,243,238,204,186,59,156,204,186,110,73,204,186,141,246,203,186,151,163,203,186,141,80,203,186,109,253,202,186,58,170,202,186,242,86,202,186,149,3,202,186,36,176,201,186,159,92,201,186,
5,9,201,186,87,181,200,186,148,97,200,186,190,13,200,186,211,185,199,186,212,101,199,186,193,17,199,186,154,189,198,186,94,105,198,186,15,21,198,186,172,192,197,186,52,108,197,186,169,23,197,186,10,195,196,186,87,110,196,186,144,25,196,186,182,196,195,186,200,111,195,186,198,26,195,186,176,197,194,186,135,112,194,186,74,27,194,186,249,197,193,186,149,112,193,186,30,27,193,186,147,197,192,186,245,111,192,186,67,26,192,186,126,196,191,186,166,110,191,186,186,24,191,186,188,194,190,186,170,108,190,186,
132,22,190,186,76,192,189,186,1,106,189,186,162,19,189,186,49,189,188,186,173,102,188,186,21,16,188,186,107,185,187,186,174,98,187,186,222,11,187,186,251,180,186,186,6,94,186,186,254,6,186,186,227,175,185,186,182,88,185,186,118,1,185,186,35,170,184,186,190,82,184,186,70,251,183,186,188,163,183,186,32,76,183,186,113,244,182,186,175,156,182,186,220,68,182,186,246,236,181,186,254,148,181,186,244,60,181,186,216,228,180,186,169,140,180,186,105,52,180,186,22,220,179,186,177,131,179,186,59,43,179,186,178,
210,178,186,24,122,178,186,108,33,178,186,174,200,177,186,222,111,177,186,252,22,177,186,9,190,176,186,4,101,176,186,238,11,176,186,198,178,175,186,140,89,175,186,65,0,175,186,228,166,174,186,118,77,174,186,247,243,173,186,102,154,173,186,196,64,173,186,16,231,172,186,76,141,172,186,118,51,172,186,143,217,171,186,151,127,171,186,141,37,171,186,115,203,170,186,72,113,170,186,11,23,170,186,190,188,169,186,96,98,169,186,241,7,169,186,113,173,168,186,225,82,168,186,63,248,167,186,141,157,167,186,202,
66,167,186,247,231,166,186,19,141,166,186,31,50,166,186,26,215,165,186,4,124,165,186,222,32,165,186,168,197,164,186,97,106,164,186,10,15,164,186,163,179,163,186,44,88,163,186,164,252,162,186,12,161,162,186,100,69,162,186,172,233,161,186,228,141,161,186,12,50,161,186,36,214,160,186,44,122,160,186,36,30,160,186,12,194,159,186,228,101,159,186,173,9,159,186,102,173,158,186,15,81,158,186,169,244,157,186,51,152,157,186,173,59,157,186,24,223,156,186,115,130,156,186,191,37,156,186,251,200,155,186,40,108,
155,186,70,15,155,186,84,178,154,186,84,85,154,186,68,248,153,186,36,155,153,186,246,61,153,186,184,224,152,186,108,131,152,186,16,38,152,186,166,200,151,186,44,107,151,186,164,13,151,186,12,176,150,186,102,82,150,186,177,244,149,186,238,150,149,186,27,57,149,186,58,219,148,186,75,125,148,186,76,31,148,186,64,193,147,186,36,99,147,186,250,4,147,186,194,166,146,186,124,72,146,186,39,234,145,186,195,139,145,186,82,45,145,186,210,206,144,186,68,112,144,186,168,17,144,186,254,178,143,186,69,84,143,186,
127,245,142,186,171,150,142,186,201,55,142,186,216,216,141,186,218,121,141,186,207,26,141,186,181,187,140,186,141,92,140,186,88,253,139,186,22,158,139,186,197,62,139,186,103,223,138,186,252,127,138,186,131,32,138,186,252,192,137,186,104,97,137,186,199,1,137,186,24,162,136,186,92,66,136,186,147,226,135,186,189,130,135,186,217,34,135,186,232,194,134,186,234,98,134,186,223,2,134,186,199,162,133,186,162,66,133,186,113,226,132,186,50,130,132,186,230,33,132,186,142,193,131,186,40,97,131,186,182,0,131,186,
56,160,130,186,172,63,130,186,21,223,129,186,112,126,129,186,191,29,129,186,1,189,128,186,56,92,128,186,194,246,127,186,253,52,127,186,31,115,126,186,40,177,125,186,25,239,124,186,241,44,124,186,177,106,123,186,89,168,122,186,233,229,121,186,96,35,121,186,192,96,120,186,7,158,119,186,55,219,118,186,79,24,118,186,80,85,117,186,56,146,116,186,10,207,115,186,196,11,115,186,102,72,114,186,241,132,113,186,101,193,112,186,194,253,111,186,8,58,111,186,55,118,110,186,80,178,109,186,81,238,108,186,60,42,108,
186,16,102,107,186,206,161,106,186,117,221,105,186,6,25,105,186,129,84,104,186,229,143,103,186,51,203,102,186,108,6,102,186,142,65,101,186,155,124,100,186,145,183,99,186,114,242,98,186,62,45,98,186,244,103,97,186,148,162,96,186,32,221,95,186,149,23,95,186,246,81,94,186,66,140,93,186,120,198,92,186,154,0,92,186,167,58,91,186,159,116,90,186,130,174,89,186,81,232,88,186,11,34,88,186,177,91,87,186,66,149,86,186,192,206,85,186,41,8,85,186,125,65,84,186,190,122,83,186,235,179,82,186,4,237,81,186,10,38,
81,186,251,94,80,186,217,151,79,186,164,208,78,186,91,9,78,186,255,65,77,186,143,122,76,186,12,179,75,186,118,235,74,186,206,35,74,186,18,92,73,186,67,148,72,186,98,204,71,186,110,4,71,186,103,60,70,186,78,116,69,186,35,172,68,186,229,227,67,186,149,27,67,186,50,83,66,186,190,138,65,186,55,194,64,186,159,249,63,186,245,48,63,186,57,104,62,186,107,159,61,186,140,214,60,186,156,13,60,186,153,68,59,186,134,123,58,186,97,178,57,186,44,233,56,186,229,31,56,186,141,86,55,186,36,141,54,186,171,195,53,186,
32,250,52,186,133,48,52,186,218,102,51,186,30,157,50,186,81,211,49,186,117,9,49,186,136,63,48,186,138,117,47,186,125,171,46,186,96,225,45,186,51,23,45,186,246,76,44,186,170,130,43,186,78,184,42,186,226,237,41,186,103,35,41,186,220,88,40,186,66,142,39,186,153,195,38,186,225,248,37,186,26,46,37,186,68,99,36,186,95,152,35,186,107,205,34,186,104,2,34,186,87,55,33,186,55,108,32,186,9,161,31,186,205,213,30,186,130,10,30,186,41,63,29,186,194,115,28,186,77,168,27,186,202,220,26,186,57,17,26,186,155,69,25,
186,239,121,24,186,53,174,23,186,109,226,22,186,153,22,22,186,182,74,21,186,199,126,20,186,203,178,19,186,193,230,18,186,170,26,18,186,135,78,17,186,87,130,16,186,26,182,15,186,208,233,14,186,122,29,14,186,23,81,13,186,168,132,12,186,45,184,11,186,165,235,10,186,17,31,10,186,113,82,9,186,198,133,8,186,14,185,7,186,74,236,6,186,123,31,6,186,161,82,5,186,186,133,4,186,200,184,3,186,203,235,2,186,195,30,2,186,175,81,1,186,145,132,0,186,206,110,255,185,101,212,253,185,230,57,252,185,81,159,250,185,167,
4,249,185,232,105,247,185,20,207,245,185,43,52,244,185,46,153,242,185,28,254,240,185,245,98,239,185,187,199,237,185,108,44,236,185,10,145,234,185,148,245,232,185,11,90,231,185,110,190,229,185,190,34,228,185,251,134,226,185,38,235,224,185,62,79,223,185,67,179,221,185,55,23,220,185,24,123,218,185,231,222,216,185,164,66,215,185,80,166,213,185,235,9,212,185,116,109,210,185,236,208,208,185,84,52,207,185,171,151,205,185,241,250,203,185,39,94,202,185,76,193,200,185,98,36,199,185,103,135,197,185,94,234,195,
185,68,77,194,185,27,176,192,185,228,18,191,185,157,117,189,185,71,216,187,185,227,58,186,185,112,157,184,185,239,255,182,185,96,98,181,185,195,196,179,185,24,39,178,185,95,137,176,185,154,235,174,185,198,77,173,185,230,175,171,185,249,17,170,185,255,115,168,185,249,213,166,185,230,55,165,185,199,153,163,185,156,251,161,185,101,93,160,185,34,191,158,185,212,32,157,185,123,130,155,185,22,228,153,185,166,69,152,185,44,167,150,185,167,8,149,185,23,106,147,185,125,203,145,185,217,44,144,185,43,142,142,
185,115,239,140,185,178,80,139,185,231,177,137,185,19,19,136,185,53,116,134,185,79,213,132,185,96,54,131,185,105,151,129,185,209,240,127,185,193,178,124,185,160,116,121,185,112,54,118,185,48,248,114,185,226,185,111,185,132,123,108,185,24,61,105,185,158,254,101,185,22,192,98,185,129,129,95,185,223,66,92,185,48,4,89,185,117,197,85,185,174,134,82,185,219,71,79,185,254,8,76,185,21,202,72,185,33,139,69,185,35,76,66,185,28,13,63,185,11,206,59,185,240,142,56,185,205,79,53,185,161,16,50,185,109,209,46,185,
50,146,43,185,238,82,40,185,164,19,37,185,83,212,33,185,251,148,30,185,158,85,27,185,58,22,24,185,210,214,20,185,100,151,17,185,241,87,14,185,122,24,11,185,255,216,7,185,129,153,4,185,255,89,1,185,244,52,252,184,229,181,245,184,209,54,239,184,186,183,232,184,159,56,226,184,130,185,219,184,99,58,213,184,67,187,206,184,35,60,200,184,2,189,193,184,227,61,187,184,198,190,180,184,170,63,174,184,146,192,167,184,126,65,161,184,110,194,154,184,99,67,148,184,94,196,141,184,95,69,135,184,104,198,128,184,240,
142,116,184,35,145,103,184,103,147,90,184,192,149,77,184,46,152,64,184,178,154,51,184,79,157,38,184,5,160,25,184,213,162,12,184,133,75,255,183,154,81,229,183,237,87,203,183,129,94,177,183,88,101,151,183,235,216,122,183,184,231,70,183,28,247,18,183,58,14,190,182,3,95,44,182,53,111,13,53,232,19,115,54,155,100,225,54,233,158,36,55,197,138,88,55,239,58,134,55,23,48,160,55,216,36,186,55,47,25,212,55,25,13,238,55,73,0,4,56,205,249,16,56,23,243,29,56,36,236,42,56,244,228,55,56,134,221,68,56,215,213,81,56,
231,205,94,56,180,197,107,56,61,189,120,56,64,218,130,56,190,85,137,56,24,209,143,56,77,76,150,56,93,199,156,56,70,66,163,56,9,189,169,56,163,55,176,56,22,178,182,56,96,44,189,56,127,166,195,56,117,32,202,56,63,154,208,56,222,19,215,56,81,141,221,56,150,6,228,56,173,127,234,56,150,248,240,56,80,113,247,56,218,233,253,56,26,49,2,57,46,109,5,57,41,169,8,57,11,229,11,57,211,32,15,57,129,92,18,57,21,152,21,57,142,211,24,57,236,14,28,57,47,74,31,57,86,133,34,57,97,192,37,57,80,251,40,57,34,54,44,57,215,
112,47,57,110,171,50,57,232,229,53,57,68,32,57,57,129,90,60,57,159,148,63,57,159,206,66,57,127,8,70,57,63,66,73,57,223,123,76,57,94,181,79,57,188,238,82,57,250,39,86,57,22,97,89,57,16,154,92,57,232,210,95,57,157,11,99,57,47,68,102,57,158,124,105,57,234,180,108,57,18,237,111,57,21,37,115,57,244,92,118,57,174,148,121,57,67,204,124,57,217,1,128,57,126,157,129,57,15,57,131,57,141,212,132,57,248,111,134,57,79,11,136,57,146,166,137,57,193,65,139,57,220,220,140,57,227,119,142,57,213,18,144,57,178,173,145,
57,123,72,147,57,47,227,148,57,205,125,150,57,86,24,152,57,202,178,153,57,39,77,155,57,112,231,156,57,161,129,158,57,189,27,160,57,195,181,161,57,178,79,163,57,138,233,164,57,75,131,166,57,245,28,168,57,136,182,169,57,4,80,171,57,104,233,172,57,180,130,174,57,233,27,176,57,5,181,177,57],"i8",4,y.a+563200);
Q([9,78,179,57,245,230,180,57,200,127,182,57,131,24,184,57,36,177,185,57,173,73,187,57,28,226,188,57,114,122,190,57,174,18,192,57,208,170,193,57,217,66,195,57,200,218,196,57,156,114,198,57,86,10,200,57,245,161,201,57,121,57,203,57,227,208,204,57,49,104,206,57,100,255,207,57,124,150,209,57,120,45,211,57,89,196,212,57,29,91,214,57,197,241,215,57,81,136,217,57,193,30,219,57,20,181,220,57,74,75,222,57,100,225,223,57,96,119,225,57,63,13,227,57,0,163,228,57,164,56,230,57,42,206,231,57,146,99,233,57,221,
248,234,57,8,142,236,57,22,35,238,57,4,184,239,57,212,76,241,57,133,225,242,57,23,118,244,57,138,10,246,57,221,158,247,57,16,51,249,57,36,199,250,57,24,91,252,57,236,238,253,57,159,130,255,57,25,139,0,58,210,84,1,58,123,30,2,58,19,232,2,58,155,177,3,58,18,123,4,58,121,68,5,58,206,13,6,58,19,215,6,58,71,160,7,58,105,105,8,58,123,50,9,58,123,251,9,58,106,196,10,58,72,141,11,58,20,86,12,58,207,30,13,58,120,231,13,58,15,176,14,58,149,120,15,58,8,65,16,58,106,9,17,58,186,209,17,58,247,153,18,58,35,98,
19,58,60,42,20,58,66,242,20,58,54,186,21,58,24,130,22,58,231,73,23,58,163,17,24,58,77,217,24,58,228,160,25,58,103,104,26,58,216,47,27,58,54,247,27,58,128,190,28,58,183,133,29,58,219,76,30,58,235,19,31,58,232,218,31,58,209,161,32,58,167,104,33,58,105,47,34,58,23,246,34,58,176,188,35,58,54,131,36,58,168,73,37,58,6,16,38,58,79,214,38,58,133,156,39,58,165,98,40,58,177,40,41,58,169,238,41,58,140,180,42,58,90,122,43,58,20,64,44,58,184,5,45,58,72,203,45,58,194,144,46,58,39,86,47,58,119,27,48,58,178,224,
48,58,215,165,49,58,231,106,50,58,226,47,51,58,198,244,51,58,149,185,52,58,78,126,53,58,242,66,54,58,127,7,55,58,246,203,55,58,88,144,56,58,163,84,57,58,215,24,58,58,246,220,58,58,253,160,59,58,239,100,60,58,202,40,61,58,142,236,61,58,59,176,62,58,210,115,63,58,81,55,64,58,186,250,64,58,11,190,65,58,70,129,66,58,105,68,67,58,116,7,68,58,105,202,68,58,70,141,69,58,11,80,70,58,185,18,71,58,79,213,71,58,205,151,72,58,51,90,73,58,129,28,74,58,184,222,74,58,214,160,75,58,220,98,76,58,201,36,77,58,159,
230,77,58,91,168,78,58,0,106,79,58,140,43,80,58,255,236,80,58,89,174,81,58,154,111,82,58,195,48,83,58,211,241,83,58,201,178,84,58,167,115,85,58,107,52,86,58,22,245,86,58,167,181,87,58,31,118,88,58,125,54,89,58,194,246,89,58,237,182,90,58,255,118,91,58,246,54,92,58,212,246,92,58,151,182,93,58,65,118,94,58,208,53,95,58,69,245,95,58,160,180,96,58,224,115,97,58,6,51,98,58,17,242,98,58,1,177,99,58,215,111,100,58,146,46,101,58,50,237,101,58,184,171,102,58,34,106,103,58,113,40,104,58,165,230,104,58,189,
164,105,58,187,98,106,58,157,32,107,58,99,222,107,58,14,156,108,58,157,89,109,58,16,23,110,58,104,212,110,58,164,145,111,58,195,78,112,58,199,11,113,58,175,200,113,58,122,133,114,58,41,66,115,58,188,254,115,58,50,187,116,58,140,119,117,58,202,51,118,58,234,239,118,58,238,171,119,58,213,103,120,58,159,35,121,58,77,223,121,58,221,154,122,58,80,86,123,58,166,17,124,58,222,204,124,58,250,135,125,58,248,66,126,58,216,253,126,58,155,184,127,58,160,57,128,58,228,150,128,58,24,244,128,58,62,81,129,58,85,
174,129,58,93,11,130,58,86,104,130,58,64,197,130,58,26,34,131,58,230,126,131,58,162,219,131,58,79,56,132,58,237,148,132,58,123,241,132,58,250,77,133,58,106,170,133,58,202,6,134,58,27,99,134,58,92,191,134,58,141,27,135,58,176,119,135,58,194,211,135,58,197,47,136,58,184,139,136,58,155,231,136,58,111,67,137,58,51,159,137,58,231,250,137,58,139,86,138,58,31,178,138,58,164,13,139,58,24,105,139,58,124,196,139,58,208,31,140,58,20,123,140,58,72,214,140,58,108,49,141,58,127,140,141,58,131,231,141,58,118,66,
142,58,88,157,142,58,43,248,142,58,236,82,143,58,158,173,143,58,63,8,144,58,207,98,144,58,79,189,144,58,191,23,145,58,29,114,145,58,107,204,145,58,169,38,146,58,213,128,146,58,241,218,146,58,252,52,147,58,246,142,147,58,224,232,147,58,184,66,148,58,128,156,148,58,54,246,148,58,220,79,149,58,112,169,149,58,243,2,150,58,101,92,150,58,198,181,150,58,22,15,151,58,85,104,151,58,130,193,151,58,158,26,152,58,169,115,152,58,162,204,152,58,138,37,153,58,96,126,153,58,37,215,153,58,216,47,154,58,122,136,154,
58,10,225,154,58,137,57,155,58,245,145,155,58,80,234,155,58,154,66,156,58,209,154,156,58,247,242,156,58,11,75,157,58,13,163,157,58,253,250,157,58,219,82,158,58,168,170,158,58,98,2,159,58,10,90,159,58,160,177,159,58,35,9,160,58,149,96,160,58,245,183,160,58,66,15,161,58,125,102,161,58,165,189,161,58,187,20,162,58,191,107,162,58,177,194,162,58,144,25,163,58,92,112,163,58,22,199,163,58,189,29,164,58,82,116,164,58,212,202,164,58,68,33,165,58,161,119,165,58,235,205,165,58,34,36,166,58,70,122,166,58,88,
208,166,58,87,38,167,58,67,124,167,58,28,210,167,58,225,39,168,58,148,125,168,58,52,211,168,58,193,40,169,58,59,126,169,58,161,211,169,58,244,40,170,58,52,126,170,58,97,211,170,58,123,40,171,58,129,125,171,58,116,210,171,58,83,39,172,58,31,124,172,58,216,208,172,58,125,37,173,58,14,122,173,58,140,206,173,58,247,34,174,58,77,119,174,58,144,203,174,58,192,31,175,58,219,115,175,58,227,199,175,58,215,27,176,58,183,111,176,58,132,195,176,58,60,23,177,58,224,106,177,58,113,190,177,58,237,17,178,58,86,101,
178,58,170,184,178,58,234,11,179,58,23,95,179,58,46,178,179,58,50,5,180,58,34,88,180,58,253,170,180,58,196,253,180,58,118,80,181,58,21,163,181,58,158,245,181,58,20,72,182,58,116,154,182,58,193,236,182,58,249,62,183,58,28,145,183,58,42,227,183,58,36,53,184,58,10,135,184,58,218,216,184,58,150,42,185,58,61,124,185,58,207,205,185,58,77,31,186,58,181,112,186,58,9,194,186,58,72,19,187,58,113,100,187,58,134,181,187,58,134,6,188,58,112,87,188,58,70,168,188,58,6,249,188,58,177,73,189,58,71,154,189,58,200,
234,189,58,52,59,190,58,138,139,190,58,203,219,190,58,246,43,191,58,13,124,191,58,13,204,191,58,248,27,192,58,206,107,192,58,142,187,192,58,57,11,193,58,206,90,193,58,78,170,193,58,184,249,193,58,12,73,194,58,74,152,194,58,115,231,194,58,134,54,195,58,131,133,195,58,106,212,195,58,59,35,196,58,247,113,196,58,156,192,196,58,44,15,197,58,166,93,197,58,9,172,197,58,87,250,197,58,142,72,198,58,175,150,198,58,186,228,198,58,175,50,199,58,142,128,199,58,86,206,199,58,9,28,200,58,164,105,200,58,42,183,200,
58,153,4,201,58,242,81,201,58,52,159,201,58,96,236,201,58,117,57,202,58,116,134,202,58,92,211,202,58,46,32,203,58,233,108,203,58,141,185,203,58,27,6,204,58,146,82,204,58,242,158,204,58,60,235,204,58,110,55,205,58,138,131,205,58,143,207,205,58,125,27,206,58,84,103,206,58,20,179,206,58,189,254,206,58,80,74,207,58,203,149,207,58,47,225,207,58,124,44,208,58,177,119,208,58,208,194,208,58,215,13,209,58,200,88,209,58,160,163,209,58,98,238,209,58,12,57,210,58,159,131,210,58,27,206,210,58,127,24,211,58,204,
98,211,58,1,173,211,58,31,247,211,58,37,65,212,58,19,139,212,58,235,212,212,58,170,30,213,58,82,104,213,58,226,177,213,58,90,251,213,58,187,68,214,58,4,142,214,58,53,215,214,58,78,32,215,58,80,105,215,58,57,178,215,58,11,251,215,58,197,67,216,58,103,140,216,58,240,212,216,58,98,29,217,58,188,101,217,58,253,173,217,58,39,246,217,58,56,62,218,58,49,134,218,58,18,206,218,58,219,21,219,58,139,93,219,58,36,165,219,58,164,236,219,58,11,52,220,58,90,123,220,58,145,194,220,58,175,9,221,58,181,80,221,58,163,
151,221,58,120,222,221,58,52,37,222,58,216,107,222,58,99,178,222,58,213,248,222,58,47,63,223,58,113,133,223,58,153,203,223,58,169,17,224,58,160,87,224,58,126,157,224,58,68,227,224,58,240,40,225,58,132,110,225,58,255,179,225,58,96,249,225,58,169,62,226,58,217,131,226,58,240,200,226,58,238,13,227,58,211,82,227,58,158,151,227,58,81,220,227,58,234,32,228,58,107,101,228,58,210,169,228,58,31,238,228,58,84,50,229,58,111,118,229,58,113,186,229,58,90,254,229,58,41,66,230,58,223,133,230,58,123,201,230,58,254,
12,231,58,104,80,231,58,184,147,231,58,238,214,231,58,11,26,232,58,15,93,232,58,248,159,232,58,200,226,232,58,127,37,233,58,28,104,233,58,159,170,233,58,8,237,233,58,87,47,234,58,141,113,234,58,169,179,234,58,171,245,234,58,147,55,235,58,98,121,235,58,22,187,235,58,176,252,235,58,49,62,236,58,151,127,236,58,228,192,236,58,22,2,237,58,46,67,237,58,44,132,237,58,17,197,237,58,218,5,238,58,138,70,238,58,32,135,238,58,155,199,238,58,252,7,239,58,67,72,239,58,111,136,239,58,129,200,239,58,121,8,240,58,
86,72,240,58,25,136,240,58,194,199,240,58,80,7,241,58,195,70,241,58,28,134,241,58,91,197,241,58,127,4,242,58,136,67,242,58,119,130,242,58,75,193,242,58,5,0,243,58,163,62,243,58,39,125,243,58,145,187,243,58,223,249,243,58,19,56,244,58,44,118,244,58,42,180,244,58,14,242,244,58,214,47,245,58,132,109,245,58,22,171,245,58,142,232,245,58,234,37,246,58,44,99,246,58,83,160,246,58,94,221,246,58,79,26,247,58,36,87,247,58,222,147,247,58,126,208,247,58,1,13,248,58,106,73,248,58,184,133,248,58,234,193,248,58,
1,254,248,58,253,57,249,58,221,117,249,58,162,177,249,58,76,237,249,58,219,40,250,58,78,100,250,58,165,159,250,58,225,218,250,58,2,22,251,58,7,81,251,58,241,139,251,58,191,198,251,58,113,1,252,58,8,60,252,58,131,118,252,58,227,176,252,58,39,235,252,58,79,37,253,58,92,95,253,58,77,153,253,58,34,211,253,58,219,12,254,58,121,70,254,58,250,127,254,58,96,185,254,58,170,242,254,58,216,43,255,58,235,100,255,58,225,157,255,58,187,214,255,58,189,7,0,59,14,36,0,59,81,64,0,59,134,92,0,59,173,120,0,59,198,148,
0,59,210,176,0,59,206,204,0,59,189,232,0,59,158,4,1,59,113,32,1,59,53,60,1,59,236,87,1,59,148,115,1,59,47,143,1,59,187,170,1,59,56,198,1,59,168,225,1,59,10,253,1,59,93,24,2,59,162,51,2,59,217,78,2,59,2,106,2,59,28,133,2,59,40,160,2,59,38,187,2,59,22,214,2,59,248,240,2,59,203,11,3,59,143,38,3,59,70,65,3,59,238,91,3,59,136,118,3,59,20,145,3,59,145,171,3,59,0,198,3,59,96,224,3,59,178,250,3,59,246,20,4,59,43,47,4,59,82,73,4,59,106,99,4,59,116,125,4,59,112,151,4,59,93,177,4,59,59,203,4,59,12,229,4,59,
205,254,4,59,128,24,5,59,37,50,5,59,187,75,5,59,67,101,5,59,188,126,5,59,39,152,5,59,131,177,5,59,208,202,5,59,15,228,5,59,63,253,5,59,97,22,6,59,116,47,6,59,121,72,6,59,110,97,6,59,86,122,6,59,46,147,6,59,248,171,6,59,179,196,6,59,96,221,6,59,254,245,6,59,141,14,7,59,14,39,7,59,128,63,7,59,227,87,7,59,55,112,7,59,125,136,7,59,180,160,7,59,220,184,7,59,246,208,7,59,0,233,7,59,252,0,8,59,233,24,8,59,199,48,8,59,151,72,8,59,88,96,8,59,9,120,8,59,172,143,8,59,64,167,8,59,198,190,8,59,60,214,8,59,164,
237,8,59,252,4,9,59,70,28,9,59,129,51,9,59,173,74,9,59,202,97,9,59,216,120,9,59,215,143,9,59,200,166,9,59,169,189,9,59,123,212,9,59,63,235,9,59,243,1,10,59,153,24,10,59,47,47,10,59,182,69,10,59,47,92,10,59,152,114,10,59,242,136,10,59,62,159,10,59,122,181,10,59,167,203,10,59,197,225,10,59,212,247,10,59,212,13,11,59,197,35,11,59,167,57,11,59,122,79,11,59,61,101,11,59,242,122,11,59,151,144,11,59,45,166,11,59,180,187,11,59,44,209,11,59,149,230,11,59,239,251,11,59,57,17,12,59,116,38,12,59,160,59,12,59,
189,80,12,59,202,101,12,59,201,122,12,59,184,143,12,59,152,164,12,59,104,185,12,59,42,206,12,59,220,226,12,59,127,247,12,59,18,12,13,59,151,32,13,59,12,53,13,59,113,73,13,59,200,93,13,59,15,114,13,59,71,134,13,59,111,154,13,59,136,174,13,59,146,194,13,59,140,214,13,59,119,234,13,59,83,254,13,59,31,18,14,59,220,37,14,59,138,57,14,59,40,77,14,59,183,96,14,59,54,116,14,59,166,135,14,59,7,155,14,59,88,174,14,59,153,193,14,59,203,212,14,59,238,231,14,59,1,251,14,59,5,14,15,59,249,32,15,59,222,51,15,59,
180,70,15,59,121,89,15,59,48,108,15,59,214,126,15,59,110,145,15,59,246,163,15,59,110,182,15,59,215,200,15,59,48,219,15,59,121,237,15,59,179,255,15,59,222,17,16,59,249,35,16,59,4,54,16,59,0,72,16,59,236,89,16,59,200,107,16,59,149,125,16,59,83,143,16,59,0,161,16,59,158,178,16,59,45,196,16,59,172,213,16,59,27,231,16,59,122,248,16,59,202,9,17,59,10,27,17,59,59,44,17,59,92,61,17,59,109,78,17,59,110,95,17,59,96,112,17,59,66,129,17,59,20,146,17,59,215,162,17,59,138,179,17,59,45,196,17,59,193,212,17,59,68,
229,17,59,184,245,17,59,28,6,18,59,113,22,18,59,182,38,18,59,234,54,18,59,16,71,18,59,37,87,18,59,43,103,18,59,32,119,18,59,6,135,18,59,220,150,18,59,163,166,18,59,89,182,18,59,0,198,18,59,151,213,18,59,30,229,18,59,149,244,18,59,253,3,19,59,84,19,19,59,156,34,19,59,212,49,19,59,252,64,19,59,20,80,19,59,28,95,19,59,20,110,19,59,252,124,19,59,213,139,19,59,158,154,19,59,86,169,19,59,255,183,19,59,152,198,19,59,33,213,19,59,154,227,19,59,3,242,19,59,92,0,20,59,165,14,20,59,223,28,20,59,8,43,20,59,33,
57,20,59,43,71,20,59,36,85,20,59,14,99,20,59,231,112,20,59,177,126,20,59,106,140,20,59,20,154,20,59,173,167,20,59,55,181,20,59,176,194,20,59,26,208,20,59,115,221,20,59,189,234,20,59,246,247,20,59,32,5,21,59,57,18,21,59,66,31,21,59,60,44,21,59,37,57,21,59,254,69,21,59,199,82,21,59,128,95,21,59,41,108,21,59,194,120,21,59,75,133,21,59,196,145,21,59,45,158,21,59,133,170,21,59,206,182,21,59,6,195,21,59,46,207,21,59,71,219,21,59,79,231,21,59,71,243,21,59,47,255,21,59,6,11,22,59,206,22,22,59,133,34,22,59,
45,46,22,59,196,57,22,59,75,69,22,59,194,80,22,59,41,92,22,59,127,103,22,59,198,114,22,59,252,125,22,59,34,137,22,59,56,148,22,59,62,159,22,59,51,170,22,59,25,181,22,59,238,191,22,59,179,202,22,59,104,213,22,59,13,224,22,59,161,234,22,59,37,245,22,59,153,255,22,59,253,9,23,59,81,20,23,59,148,30,23,59,199,40,23,59,234,50,23,59,253,60,23,59,0,71,23,59,242,80,23,59,212,90,23,59,166,100,23,59,103,110,23,59,25,120,23,59,186,129,23,59,74,139,23,59,203,148,23,59,59,158,23,59,155,167,23,59,235,176,23,59,
42,186,23,59,90,195,23,59,120,204,23,59,135,213,23,59,134,222,23,59,116,231,23,59,81,240,23,59,31,249,23,59,220,1,24,59,137,10,24,59,38,19,24,59,178,27,24,59,46,36,24,59,154,44,24,59,245,52,24,59,64,61,24,59,123,69,24,59,165,77,24,59,192,85,24,59,201,93,24,59,195,101,24,59,172,109,24,59,133,117,24,59,77,125,24,59,5,133,24,59,173,140,24,59,69,148,24,59,204,155,24,59,67,163,24,59,169,170,24,59,255,177,24,59,69,185,24,59,122,192,24,59,160,199,24,59,180,206,24,59,185,213,24,59,173,220,24,59,144,227,24,
59,99,234,24,59,38,241,24,59,217,247,24,59,123,254,24,59,13,5,25,59,142,11,25,59,255,17,25,59,96,24,25,59,176,30,25,59,240,36,25,59,31,43,25,59,62,49,25,59,77,55,25,59,75,61,25,59,57,67,25,59,23,73,25,59,228,78,25,59,161,84,25,59,77,90,25,59,233,95,25,59,117,101,25,59,240,106,25,59,91,112,25,59,181,117,25,59,255,122,25,59,56,128,25,59,98,133,25,59,122,138,25,59,131,143,25,59,122,148,25,59,98,153,25,59,57,158,25,59,0,163,25,59,182,167,25,59,92,172,25,59,241,176,25,59,118,181,25,59,235,185,25,59,79,
190,25,59,162,194,25,59,230,198,25,59,25,203,25,59,59,207,25,59,77,211,25,59,79,215,25,59,64,219,25,59,32,223,25,59,241,226,25,59,177,230,25,59,96,234,25,59,255,237,25,59,141,241,25,59,12,245,25,59,121,248,25,59,214,251,25,59,35,255,25,59,96,2,26,59,140,5,26,59,167,8,26,59,178,11,26,59,173,14,26,59,151,17,26,59,113,20,26,59,58,23,26,59,243,25,26,59,155,28,26,59,51,31,26,59,187,33,26,59,50,36,26,59,153,38,26,59,239,40,26,59,53,43,26,59,106,45,26,59,143,47,26,59,163,49,26,59,167,51,26,59,155,53,26,
59,126,55,26,59,81,57,26,59,19,59,26,59,197,60,26,59,102,62,26,59,247,63,26,59,120,65,26,59,232,66,26,59,71,68,26,59,150,69,26,59,213,70,26,59,3,72,26,59,33,73,26,59,47,74,26,59,44,75,26,59,24,76,26,59,244,76,26,59,192,77,26,59,123,78,26,59,38,79,26,59,192,79,26,59,74,80,26,59,196,80,26,59,45,81,26,59,133,81,26,59,205,81,26,59,5,82,26,59,44,82,26,59,67,82,26,59,74,82,26,59,64,82,26,59,37,82,26,59,251,81,26,59,191,81,26,59,116,81,26,59,24,81,26,59,171,80,26,59,46,80,26,59,161,79,26,59,3,79,26,59,85,
78,26,59,150,77,26,59,199,76,26,59,232,75,26,59,248,74,26,59,248,73,26,59,231,72,26,59,198,71,26,59,148,70,26,59,82,69,26,59,0,68,26,59,157,66,26,59,42,65,26,59,167,63,26,59,19,62,26,59,110,60,26,59,186,58,26,59,244,56,26,59,31,55,26,59,57,53,26,59,67,51,26,59,60,49,26,59,37,47,26,59,253,44,26,59,198,42,26,59,125,40,26,59,37,38,26,59,188,35,26,59,66,33,26,59,185,30,26,59,31,28,26,59,116,25,26,59,185,22,26,59,238,19,26,59,18,17,26,59,38,14,26,59,42,11,26,59,29,8,26,59,0,5,26,59,211,1,26,59,149,254,
25,59,71,251,25,59,233,247,25,59,122,244,25,59,251,240,25,59,107,237,25,59,204,233,25,59,27,230,25,59,91,226,25,59,138,222,25,59,169,218,25,59,183,214,25,59,182,210,25,59,163,206,25,59,129,202,25,59,78,198,25,59,11,194,25,59,184,189,25,59,84,185,25,59,224,180,25,59,92,176,25,59,199,171,25,59,34,167,25,59,109,162,25,59,168,157,25,59,210,152,25,59,236,147,25,59,245,142,25,59,239,137,25,59,216,132,25,59,177,127,25,59,121,122,25,59,49,117,25,59,217,111,25,59,113,106,25,59,248,100,25,59,112,95,25,59,215,
89,25,59,45,84,25,59,116,78,25,59,170,72,25,59,208,66,25,59,230,60,25,59,235,54,25,59,224,48,25,59,197,42,25,59,154,36,25,59,95,30,25,59,19,24,25,59,183,17,25,59,75,11,25,59,207,4,25,59,66,254,24,59,166,247,24,59,249,240,24,59,60,234,24,59,111,227,24,59,145,220,24,59,163,213,24,59,166,206,24,59,152,199,24,59,121,192,24,59,75,185,24,59,13,178,24,59,190,170,24,59,95,163,24,59,240,155,24,59,113,148,24,59,226,140,24,59,66,133,24,59,147,125,24,59,211,117,24,59,3,110,24,59,36,102,24,59,52,94,24,59,51,86,
24,59,35,78,24,59,3,70,24,59,210,61,24,59,146,53,24,59,65,45,24,59,224,36,24,59,111,28,24,59,238,19,24,59,93,11,24,59,188,2,24,59,11,250,23,59,74,241,23,59,121,232,23,59,151,223,23,59,166,214,23,59,164,205,23,59,147,196,23,59,113,187,23,59,64,178,23,59,254,168,23,59,173,159,23,59,75,150,23,59,217,140,23,59,88,131,23,59,198,121,23,59,37,112,23,59,115,102,23,59,177,92,23,59,224,82,23,59,254,72,23,59,12,63,23,59,11,53,23,59,249,42,23,59,216,32,23,59,166,22,23,59,101,12,23,59,20,2,23,59,178,247,22,59,
65,237,22,59,192,226,22,59,47,216,22,59,142,205,22,59,221,194,22,59,28,184,22,59,76,173,22,59,107,162,22,59,123,151,22,59,122,140,22,59,106,129,22,59,74,118,22,59,26,107,22,59,218,95,22,59,138,84,22,59,42,73,22,59,187,61,22,59,60,50,22,59,172,38,22,59,14,27,22,59,95,15,22,59,160,3,22,59,210,247,21,59,243,235,21,59,5,224,21,59,7,212,21,59,250,199,21,59,220,187,21,59,175,175,21,59,114,163,21,59,37,151,21,59,201,138,21,59,93,126,21,59,225,113,21,59,85,101,21,59,185,88,21,59,14,76,21,59,83,63,21,59,136,
50,21,59,174,37,21,59,196,24,21,59,202,11,21,59,192,254,20,59,167,241,20,59,126,228,20,59,70,215,20,59,253,201,20,59,166,188,20,59,62,175,20,59,199,161,20,59,64,148,20,59,169,134,20,59,3,121,20,59,77,107,20,59,136,93,20,59,179,79,20,59,206,65,20,59,218,51,20,59,214,37,20,59,195,23,20,59,160,9,20,59,109,251,19,59,43,237,19,59,217,222,19,59,120,208,19,59,7,194,19,59,135,179,19,59,247,164,19,59,88,150,19,59,169,135,19,59,235,120,19,59,29,106,19,59,63,91,19,59,82,76,19,59,86,61,19,59,74,46,19,59,47,31,
19,59,4,16,19,59,201,0,19,59,128,241,18,59,38,226,18,59,190,210,18,59,70,195,18,59,190,179,18,59,39,164,18,59,129,148,18,59,204,132,18,59,6,117,18,59,50,101,18,59,78,85,18,59,91,69,18,59,88,53,18,59,70,37,18,59,37,21,18,59,245,4,18,59,181,244,17,59,101,228,17,59,7,212,17,59,153,195,17,59,28,179,17,59,143,162,17,59,243,145,17,59,72,129,17,59,142,112,17,59,196,95,17,59,235,78,17,59,3,62,17,59,12,45,17,59,5,28,17,59,240,10,17,59,203,249,16,59,150,232,16,59,83,215,16,59,0,198,16,59,158,180,16,59,45,163,
16,59,173,145,16,59,30,128,16,59,127,110,16,59,210,92,16,59,21,75,16,59,73,57,16,59,110,39,16,59,132,21,16,59,139,3,16,59,130,241,15,59,107,223,15,59,69,205,15,59,15,187,15,59,202,168,15,59,119,150,15,59,20,132,15,59,162,113,15,59,33,95,15,59,146,76,15,59,243,57,15,59,69,39,15,59,136,20,15,59,188,1,15,59,226,238,14,59,248,219,14,59,255,200,14,59,247,181,14,59,225,162,14,59,187,143,14,59,135,124,14,59,67,105,14,59,241,85,14,59,144,66,14,59,32,47,14,59,161,27,14,59,19,8,14,59,118,244,13,59,203,224,
13,59,16,205,13,59,71,185,13,59,111,165,13,59,136,145,13,59,146,125,13,59,142,105,13,59,122,85,13,59,88,65,13,59,40,45,13,59,232,24,13,59,154,4,13,59,60,240,12,59,209,219,12,59,86,199,12,59,205,178,12,59,53,158,12,59,142,137,12,59,216,116,12,59,20,96,12,59,66,75,12,59,96,54,12,59,112,33,12,59,113,12,12,59,100,247,11,59,72,226,11,59,29,205,11,59,228,183,11,59,156,162,11,59,70,141,11,59,225,119,11,59,109,98,11,59,235,76,11,59,91,55,11,59,188,33,11,59,14,12,11,59,82,246,10,59,135,224,10,59,174,202,10,
59,198,180,10,59,208,158,10,59,203,136,10,59,184,114,10,59,150,92,10,59,102,70,10,59,40,48,10,59,219,25,10,59,128,3,10,59,22,237,9,59,158,214,9,59,23,192,9,59,131,169,9,59,223,146,9,59,46,124,9,59,110,101,9,59,160,78,9,59,195,55,9,59,216,32,9,59,223,9,9,59,216,242,8,59,194,219,8,59,158,196,8,59,108,173,8,59,43,150,8,59,221,126,8,59,128,103,8,59,21,80,8,59,155,56,8,59,20,33,8,59,126,9,8,59,218,241,7,59,40,218,7,59,104,194,7,59,153,170,7,59,189,146,7,59,210,122,7,59,218,98,7,59,211,74,7,59,190,50,7,
59,155,26,7,59,106,2,7,59,43,234,6,59,222,209,6,59,130,185,6,59,25,161,6,59,162,136,6,59,29,112,6,59,137,87,6,59,232,62,6,59,57,38,6,59,124,13,6,59,177,244,5,59,216,219,5,59,241,194,5,59,252,169,5,59,249,144,5,59,233,119,5,59,202,94,5,59,158,69,5,59,99,44,5,59,27,19,5,59,197,249,4,59,98,224,4,59,240,198,4,59,113,173,4,59,228,147,4,59,73,122,4,59,160,96,4,59,233,70,4,59,37,45,4,59,83,19,4,59,116,249,3,59,134,223,3,59,139,197,3,59,130,171,3,59,108,145,3,59,72,119,3,59,22,93,3,59,214,66,3,59,137,40,
3,59,47,14,3,59,199,243,2,59,81,217,2,59,205,190,2,59,60,164,2,59,158,137,2,59,241,110,2,59,56,84,2,59,113,57,2,59,156,30,2,59,186,3,2,59,202,232,1,59,205,205,1,59,194,178,1,59,170,151,1,59,133,124,1,59,82,97,1,59,17,70,1,59,195,42,1,59,104,15,1,59,0,244,0,59,138,216,0,59,6,189,0,59,118,161,0,59,216,133,0,59,45,106,0,59,116,78,0,59,174,50,0,59,219,22,0,59,245,245,255,58,25,190,255,58,35,134,255,58,19,78,255,58,232,21,255,58,163,221,254,58,67,165,254,58,201,108,254,58,53,52,254,58,134,251,253,58,189,
194,253,58,218,137,253,58,221,80,253,58,197,23,253,58,147,222,252,58,71,165,252,58,225,107,252,58,96,50,252,58,198,248,251,58,17,191,251,58,67,133,251,58,90,75,251,58,87,17,251,58,59,215,250,58,4,157,250,58,180,98,250,58,74,40,250,58,197,237,249,58,39,179,249,58,112,120,249,58,158,61,249,58,179,2,249,58,173,199,248,58,143,140,248,58,86,81,248,58,4,22,248,58,152,218,247,58,19,159,247,58,116,99,247,58,187,39,247,58,233,235,246,58,253,175,246,58,248,115,246,58,218,55,246,58,162,251,245,58,80,191,245,
58,230,130,245,58,98,70,245,58,196,9,245,58,14,205,244,58,62,144,244,58,84,83,244,58,82,22,244,58,54,217,243,58,2,156,243,58,180,94,243,58,77,33,243,58,205,227,242,58,51,166,242,58,129,104,242,58,182,42,242,58,210,236,241,58,213,174,241,58,191,112,241,58,144,50,241,58,72,244,240,58,232,181,240,58,110,119,240,58,220,56,240,58,49,250,239,58,110,187,239,58,145,124,239,58,156,61,239,58,143,254,238,58,104,191,238,58,41,128,238,58,210,64,238,58,98,1,238,58,217,193,237,58,57,130,237,58,127,66,237,58,173,
2,237,58,195,194,236,58,192,130,236,58,165,66,236,58,114,2,236,58,39,194,235,58,195,129,235,58,71,65,235,58,179,0,235,58,6,192,234,58,66,127,234,58,101,62,234,58,112,253,233,58,99,188,233,58,63,123,233,58,2,58,233,58,173,248,232,58,64,183,232,58,187,117,232,58,31,52,232,58,106,242,231,58,158,176,231,58,186,110,231,58,190,44,231,58,170,234,230,58,127,168,230,58,60,102,230,58,225,35,230,58,111,225,229,58,229,158,229,58,68,92,229,58,139,25,229,58,186,214,228,58,210,147,228,58,211,80,228,58,188,13,228,
58,141,202,227,58,72,135,227,58,235,67,227,58,118,0,227,58,235,188,226,58,72,121,226,58,142,53,226,58,188,241,225,58,212,173,225,58,212,105,225,58,190,37,225,58,144,225,224,58,75,157,224,58,239,88,224,58,124,20,224,58,242,207,223,58,82,139,223,58,154,70,223,58,204,1,223,58,230,188,222,58,234,119,222,58,215,50,222,58,173,237,221,58,109,168,221,58,22,99,221,58,168,29,221,58,36,216,220,58,137,146,220,58,215,76,220,58,15,7,220,58,48,193,219,58,59,123,219,58,48,53,219,58,14,239,218,58,213,168,218,58,135,
98,218,58,34,28,218,58,166,213,217,58,21,143,217,58,109,72,217,58,175,1,217,58,219,186,216,58,240,115,216,58,240,44,216,58,217,229,215,58,172,158,215,58,106,87,215,58,17,16,215,58,162,200,214,58,30,129,214,58,131,57,214,58,211,241,213,58,13,170,213,58,49,98,213,58,63,26,213,58,56,210,212,58,27,138,212,58,232,65,212,58,159,249,211,58,65,177,211,58,205,104,211,58,68,32,211,58,165,215,210,58,241,142,210,58,39,70,210,58,72,253,209,58,83,180,209,58,73,107,209,58,42,34,209,58,245,216,208,58,171,143,208,
58,76,70,208,58,216,252,207,58,78,179,207,58,176,105,207,58,252,31,207,58,51,214,206,58,85,140,206,58,98,66,206,58,90,248,205,58,61,174,205,58,11,100,205,58,196,25,205,58,105,207,204,58,248,132,204,58,115,58,204,58,217,239,203,58,42,165,203,58,103,90,203,58,143,15,203,58,162,196,202,58,161,121,202,58,139,46,202,58,96,227,201,58,33,152,201,58,206,76,201,58,102,1,201,58,234,181,200,58,89,106,200,58,180,30,200,58,251,210,199,58,45,135,199,58,75,59,199,58,85,239,198,58,75,163,198,58,44,87,198,58,250,
10,198,58,179,190,197,58,88,114,197,58,234,37,197,58,103,217,196,58,208,140,196,58,38,64,196,58,103,243,195,58,149,166,195,58,175,89,195,58,181,12,195,58,167,191,194,58,134,114,194,58,81,37,194,58,8,216,193,58,171,138,193,58,59,61,193,58,184,239,192,58,33,162,192,58,118,84,192,58,184,6,192,58,231,184,191,58,2,107,191,58,10,29,191,58,254,206,190,58,223,128,190,58,173,50,190,58,104,228,189,58,16,150,189,58,164,71,189,58,37,249,188,58,147,170,188,58,238,91,188,58,54,13,188,58,107,190,187,58,142,111,
187,58,157,32,187,58,153,209,186,58,130,130,186,58,89,51,186,58,29,228,185,58,206,148,185,58,108,69,185,58,248,245,184,58,113,166,184,58,216,86,184,58,43,7,184,58,109,183,183,58,155,103,183,58,184,23,183,58,194,199,182,58,185,119,182,58,158,39,182,58,113,215,181,58,49,135,181,58,223,54,181,58,123,230,180,58,5,150,180,58,124,69,180,58,226,244,179,58,53,164,179,58,118,83,179,58,165,2,179,58,194,177,178,58,206,96,178,58,199,15,178,58,174,190,177,58,132,109,177,58,72,28,177,58,249,202,176,58,154,121,
176,58,40,40,176,58,165,214,175,58,16,133,175,58,105,51,175,58,177,225,174,58,231,143,174,58,12,62,174,58,32,236,173,58,33,154,173,58,18,72,173,58,241,245,172,58,191,163,172,58,123,81,172,58,38,255,171,58,192,172,171,58,73,90,171,58,193,7,171,58,39,181,170,58,125,98,170,58,193,15,170,58,244,188,169,58,23,106,169,58,40,23,169,58,40,196,168,58,24,113,168,58,247,29,168,58,197,202,167,58,130,119,167,58,46,36,167,58,202,208,166,58,85,125,166,58,207,41,166,58,57,214,165,58,146,130,165,58,219,46,165,58,
19,219,164,58,59,135,164,58,83,51,164,58,90,223,163,58,80,139,163,58,54,55,163,58,13,227,162,58,210,142,162,58,136,58,162,58,45,230,161,58,195,145,161,58,72,61,161,58,189,232,160,58,34,148,160,58,119,63,160,58,189,234,159,58,242,149,159,58,23,65,159,58,45,236,158,58,50,151,158,58,40,66,158,58,15,237,157,58,229,151,157,58,172,66,157,58,99,237,156,58,11,152,156,58,163,66,156,58,44,237,155,58,165,151,155,58,14,66,155,58,105,236,154,58,180,150,154,58,239,64,154,58,27,235,153,58,56,149,153,58,70,63,153,
58,69,233,152,58,52,147,152,58,20,61,152,58,230,230,151,58,168,144,151,58,91,58,151,58,255,227,150,58,148,141,150,58,27,55,150,58,146,224,149,58,251,137,149,58,85,51,149,58,160,220,148,58,221,133,148,58,10,47,148,58,41,216,147,58,58,129,147,58,60,42,147,58,47,211,146,58,20,124,146,58,235,36,146,58,179,205,145,58,109,118,145,58,24,31,145,58,181,199,144,58,68,112,144,58,196,24,144,58,55,193,143,58,155,105,143,58,241,17,143,58,57,186,142,58,115,98,142,58,159,10,142,58,189,178,141,58,205,90,141,58,207,
2,141,58,195,170,140,58,169,82,140,58,130,250,139,58,77,162,139,58,10,74,139,58,186,241,138,58,92,153,138,58,240,64,138,58,119,232,137,58,240,143,137,58,91,55,137,58,186,222,136,58,11,134,136,58,78,45,136,58,132,212,135,58,173,123,135,58,201,34,135,58,215,201,134,58,216,112,134,58,204,23,134,58,179,190,133,58,141,101,133,58,90,12,133,58,26,179,132,58,205,89,132,58,114,0,132,58,12,167,131,58,152,77,131,58,23,244,130,58,138,154,130,58,240,64,130,58,73,231,129,58,149,141,129,58,213,51,129,58,9,218,128,
58,48,128,128,58,74,38,128,58,175,152,127,58,178,228,126,58,156,48,126,58,110,124,125,58,38,200,124,58,199,19,124,58,78,95,123,58,190,170,122,58,21,246,121,58,83,65,121,58,122,140,120,58,136,215,119,58,127,34,119,58,93,109,118,58,36,184,117,58,211,2,117,58,106,77,116,58,234,151,115,58,82,226,114,58,162,44,114,58,219,118,113,58,253,192,112,58,7,11,112,58,251,84,111,58,215,158,110,58,156,232,109,58,75,50,109,58,226,123,108,58,99,197,107,58,205,14,107,58,32,88,106,58,93,161,105,58,131,234,104,58,147,
51,104,58,140,124,103,58,111,197,102,58,61,14,102,58,244,86,101,58,149,159,100,58,32,232,99,58,149,48,99,58,244,120,98,58,62,193,97,58,114,9,97,58,145,81,96,58,154,153,95,58,141,225,94,58,108,41,94,58,53,113,93,58,233,184,92,58,136,0,92,58,17,72,91,58,134,143,90,58,230,214,89,58,50,30,89,58,104,101,88,58,138,172,87,58,152,243,86,58,145,58,86,58,117,129,85,58,70,200,84,58,2,15,84,58,170,85,83,58,61,156,82,58,189,226,81,58,41,41,81,58,129,111,80,58,198,181,79,58,246,251,78,58,19,66,78,58,29,136,77,
58,19,206,76,58,246,19,76,58,197,89,75,58,129,159,74,58,42,229,73,58,192,42,73,58,67,112,72,58,180,181,71,58,17,251,70,58,92,64,70,58,147,133,69,58,185,202,68,58,204,15,68,58,204,84,67,58,186,153,66,58,150,222,65,58,96,35,65,58,23,104,64,58,189,172,63,58,80,241,62,58,210,53,62,58,66,122,61,58,160,190,60,58,236,2,60,58,39,71,59,58,81,139,58,58,105,207,57,58,112,19,57,58,101,87,56,58,73,155,55,58,29,223,54,58,223,34,54,58,144,102,53,58,49,170,52,58,192,237,51,58,63,49,51,58,174,116,50,58,12,184,49,
58,89,251,48,58,150,62,48,58,195,129,47,58,224,196,46,58,236,7,46,58,233,74,45,58,213,141,44,58,177,208,43,58,126,19,43,58,59,86,42,58,232,152,41,58,134,219,40,58,20,30,40,58,147,96,39,58,3,163,38,58,99,229,37,58,180,39,37,58,246,105,36,58,41,172,35,58,77,238,34,58,98,48,34,58,104,114,33,58,96,180,32,58,73,246,31,58,36,56,31,58,240,121,30,58,173,187,29,58,93,253,28,58,254,62,28,58,145,128,27,58,22,194,26,58,141,3,26,58,246,68,25,58,81,134,24,58,158,199,23,58,222,8,23,58,16,74,22,58,53,139,21,58,77,
204,20,58,87,13,20,58,83,78,19,58,67,143,18,58,37,208,17,58,251,16,17,58,195,81,16,58,127,146,15,58,46,211,14,58,208,19,14,58,101,84,13,58,238,148,12,58,107,213,11,58,219,21,11,58,63,86,10,58,150,150,9,58,226,214,8,58,33,23,8,58,85,87,7,58,124,151,6,58,152,215,5,58,168,23,5,58,172,87,4,58,165,151,3,58,146,215,2,58,116,23,2,58,75,87,1,58,22,151,0,58,173,173,255,57,23,45,254,57,107,172,252,57,169,43,251,57,209,170,249,57,228,41,248,57,226,168,246,57,202,39,245,57,157,166,243,57,92,37,242,57,5,164,240,
57,154,34,239,57,27,161,237,57,135,31,236,57,224,157,234,57,36,28,233,57,85,154,231,57,114,24,230,57,123,150,228,57,113,20,227,57,85,146,225,57,37,16,224,57,226,141,222,57,141,11,221,57,37,137,219,57,171,6,218,57,31,132,216,57,129,1,215,57,209,126,213,57,15,252,211,57,60,121,210,57,88,246,208,57,98,115,207,57,92,240,205,57,68,109,204,57,28,234,202,57,227,102,201,57,154,227,199,57,65,96,198,57,215,220,196,57,94,89,195,57,213,213,193,57,61,82,192,57,149,206,190,57,221,74,189,57,23,199,187,57,66,67,
186,57,94,191,184,57,108,59,183,57,107,183,181,57,92,51,180,57,62,175,178,57,19,43,177,57,218,166,175,57,147,34,174,57,63,158,172,57,222,25,171,57,111,149,169,57,244,16,168,57,108,140,166,57,215,7,165,57,53,131,163,57,136,254,161,57,206,121,160,57,8,245,158,57,54,112,157,57,89,235,155,57,112,102,154,57,124,225,152,57,125,92,151,57,114,215,149,57,93,82,148,57,61,205,146,57,19,72,145,57,222,194,143,57,159,61,142,57,86,184,140,57,3,51,139,57,166,173,137,57,64,40,136,57,208,162,134,57,87,29,133,57,213,
151,131,57,74,18,130,57,183,140,128,57,53,14,126,57,236,2,123,57,146,247,119,57,40,236,116,57,174,224,113,57,37,213,110,57,141,201,107,57,229,189,104,57,47,178,101,57,107,166,98,57,153,154,95,57,185,142,92,57,204,130,89,57,210,118,86,57,203,106,83,57,185,94,80,57,154,82,77,57,111,70,74,57,58,58,71,57,249,45,68,57,173,33,65,57,88,21,62,57,248,8,59,57,142,252,55,57,27,240,52,57,160,227,49,57,27,215,46,57,142,202,43,57,249,189,40,57,92,177,37,57,184,164,34,57,13,152,31,57,91,139,28,57,162,126,25,57,
227,113,22,57,31,101,19,57,85,88,16,57,134,75,13,57,178,62,10,57,218,49,7,57,254,36,4,57,29,24,1,57,115,22,252,56,165,252,245,56,209,226,239,56,248,200,233,56,27,175,227,56,58,149,221,56,86,123,215,56,111,97,209,56,135,71,203,56,157,45,197,56,179,19,191,56,201,249,184,56,223,223,178,56,247,197,172,56,18,172,166,56,46,146,160,56,79,120,154,56,115,94,148,56,156,68,142,56,202,42,136,56,254,16,130,56,114,238,119,56,246,186,107,56,138,135,95,56,48,84,83,56,231,32,71,56,178,237,58,56,147,186,46,56,137,
135,34,56,151,84,22,56,190,33,10,56,255,221,251,55,185,120,227,55,172,19,203,55,219,174,178,55,73,74,154,55,249,229,129,55,217,3,83,55,77,60,34,55,166,234,226,54,226,93,129,54,183,146,126,53,224,111,3,182,233,64,163,182,69,100,2,183,100,39,51,183,204,233,99,183,188,85,138,183,50,182,162,183,69,22,187,183,242,117,211,183,54,213,235,183,8,26,2,184,62,73,14,184,61,120,26,184,1,167,38,184,140,213,50,184,218,3,63,184,235,49,75,184,190,95,87,184,81,141,99,184,163,186,111,184,179,231,123,184,63,10,132,184,
131,32,138,184,163,54,144,184,160,76,150,184,120,98,156,184,43,120,162,184,184,141,168,184,32,163,174,184,96,184,180,184,120,205,186,184,104,226,192,184,47,247,198,184,205,11,205,184,64,32,211,184,137,52,217,184,166,72,223,184,151,92,229,184,91,112,235,184,242,131,241,184,90,151,247,184,148,170,253,184,207,222,1,185,60,232,4,185,145,241,7,185,205,250,10,185,241,3,14,185,251,12,17,185,235,21,20,185,193,30,23,185,125,39,26,185,31,48,29,185,165,56,32,185,17,65,35,185,97,73,38,185,149,81,41,185,172,89,
44,185,168,97,47,185,134,105,50,185,71,113,53,185,235,120,56,185,113,128,59,185,217,135,62,185,34,143,65,185,77,150,68,185,88,157,71,185,68,164,74,185,17,171,77,185,189,177,80,185,73,184,83,185,180,190,86,185,255,196,89,185,40,203,92,185,47,209,95,185,20,215,98,185,215,220,101,185,120,226,104,185,245,231,107,185,80,237,110,185,134,242,113,185,153,247,116,185,136,252,119,185,82,1,123,185,247,5,126,185,60,133,128,185,105,7,130,185,131,137,131,185,139,11,133,185,127,141,134,185,95,15,136,185,45,145,
137,185,230,18,139,185,140,148,140,185,29,22,142,185,155,151,143,185,4,25,145,185,88,154,146,185,152,27,148,185,196,156,149,185,218,29,151,185,219,158,152,185,198,31,154,185,157,160,155,185,93,33,157,185,8,162,158,185,157,34,160,185,28,163,161,185,133,35,163,185,215,163,164,185,19,36,166,185,55,164,167,185,70,36,169,185,61,164,170,185,28,36,172,185,229,163,173,185,150,35,175,185,47,163,176,185,177,34,178,185,26,162,179,185,107,33,181,185,164,160,182,185,197,31,184,185,205,158,185,185,188,29,187,185,
146,156,188,185,79,27,190,185,243,153,191,185,125,24,193,185,238,150,194,185,69,21,196,185,131,147,197,185,166,17,199,185,175,143,200,185,158,13,202,185,114,139,203,185,43,9,205,185,202,134,206,185,78,4,208,185,182,129,209,185,3,255,210,185,53,124,212,185,75,249,213,185,69,118,215,185,36,243,216,185,230,111,218,185,140,236,219,185,22,105,221,185,131,229,222,185,212,97,224,185,7,222,225,185,30,90,227,185,23,214,228,185,243,81,230,185,177,205,231,185,82,73,233,185,213,196,234,185,58,64,236,185,129,
187,237,185,170,54,239,185,180,177,240,185,160,44,242,185,109,167,243,185,27,34,245,185,170,156,246,185,25,23,248,185,106,145,249,185,155,11,251,185,172,133,252,185,157,255,253,185,110,121,255,185,144,121,0,186,88,54,1,186,16,243,1,186,184,175,2,186,80,108,3,186,215,40,4,186,77,229,4,186,179,161,5,186,8,94,6,186,77,26,7,186,128,214,7,186,163,146,8,186,181,78,9,186,181,10,10,186,165,198,10,186,131,130,11,186,80,62,12,186,11,250,12,186,181,181,13,186,77,113,14,186,212,44,15,186,73,232,15,186,173,163,
16,186,254,94,17,186,62,26,18,186,107,213,18,186,135,144,19,186,144,75,20,186,135,6,21,186,108,193,21,186,62,124,22,186,254,54,23,186,171,241,23,186,70,172,24,186,206,102,25,186],"i8",4,y.a+573440);
Q([67,33,26,186,166,219,26,186,245,149,27,186,50,80,28,186,91,10,29,186,113,196,29,186,116,126,30,186,100,56,31,186,64,242,31,186,9,172,32,186,190,101,33,186,96,31,34,186,238,216,34,186,104,146,35,186,206,75,36,186,33,5,37,186,95,190,37,186,138,119,38,186,160,48,39,186,162,233,39,186,144,162,40,186,105,91,41,186,46,20,42,186,222,204,42,186,122,133,43,186,1,62,44,186,115,246,44,186,209,174,45,186,25,103,46,186,77,31,47,186,107,215,47,186,117,143,48,186,105,71,49,186,72,255,49,186,17,183,50,186,197,
110,51,186,100,38,52,186,237,221,52,186,96,149,53,186,190,76,54,186,6,4,55,186,56,187,55,186,83,114,56,186,89,41,57,186,73,224,57,186,35,151,58,186,230,77,59,186,147,4,60,186,42,187,60,186,170,113,61,186,19,40,62,186,102,222,62,186,163,148,63,186,200,74,64,186,215,0,65,186,206,182,65,186,175,108,66,186,120,34,67,186,43,216,67,186,198,141,68,186,74,67,69,186,182,248,69,186,11,174,70,186,73,99,71,186,111,24,72,186,125,205,72,186,115,130,73,186,82,55,74,186,25,236,74,186,200,160,75,186,94,85,76,186,
221,9,77,186,67,190,77,186,146,114,78,186,199,38,79,186,229,218,79,186,234,142,80,186,214,66,81,186,170,246,81,186,101,170,82,186,7,94,83,186,144,17,84,186,1,197,84,186,88,120,85,186,150,43,86,186,188,222,86,186,200,145,87,186,186,68,88,186,148,247,88,186,83,170,89,186,250,92,90,186,135,15,91,186,250,193,91,186,83,116,92,186,147,38,93,186,184,216,93,186,196,138,94,186,182,60,95,186,141,238,95,186,75,160,96,186,238,81,97,186,119,3,98,186,229,180,98,186,57,102,99,186,115,23,100,186,146,200,100,186,
150,121,101,186,127,42,102,186,78,219,102,186,2,140,103,186,154,60,104,186,24,237,104,186,123,157,105,186,194,77,106,186,238,253,106,186,255,173,107,186,245,93,108,186,207,13,109,186,141,189,109,186,48,109,110,186,183,28,111,186,34,204,111,186,114,123,112,186,166,42,113,186,189,217,113,186,185,136,114,186,153,55,115,186,92,230,115,186,3,149,116,186,142,67,117,186,252,241,117,186,78,160,118,186,131,78,119,186,156,252,119,186,152,170,120,186,120,88,121,186,58,6,122,186,224,179,122,186,104,97,123,186,
212,14,124,186,34,188,124,186,84,105,125,186,104,22,126,186,94,195,126,186,56,112,127,186,122,14,128,186,201,100,128,186,9,187,128,186,59,17,129,186,94,103,129,186,113,189,129,186,118,19,130,186,108,105,130,186,83,191,130,186,43,21,131,186,243,106,131,186,173,192,131,186,87,22,132,186,243,107,132,186,127,193,132,186,252,22,133,186,105,108,133,186,199,193,133,186,22,23,134,186,85,108,134,186,133,193,134,186,166,22,135,186,183,107,135,186,185,192,135,186,170,21,136,186,141,106,136,186,96,191,136,186,
35,20,137,186,214,104,137,186,121,189,137,186,13,18,138,186,145,102,138,186,5,187,138,186,106,15,139,186,190,99,139,186,3,184,139,186,55,12,140,186,91,96,140,186,112,180,140,186,116,8,141,186,104,92,141,186,76,176,141,186,32,4,142,186,228,87,142,186,151,171,142,186,58,255,142,186,205,82,143,186,80,166,143,186,194,249,143,186,35,77,144,186,116,160,144,186,181,243,144,186,229,70,145,186,5,154,145,186,20,237,145,186,18,64,146,186,0,147,146,186,221,229,146,186,169,56,147,186,101,139,147,186,16,222,147,
186,170,48,148,186,51,131,148,186,171,213,148,186,18,40,149,186,104,122,149,186,174,204,149,186,226,30,150,186,5,113,150,186,23,195,150,186,24,21,151,186,8,103,151,186,231,184,151,186,180,10,152,186,112,92,152,186,27,174,152,186,181,255,152,186,61,81,153,186,180,162,153,186,25,244,153,186,109,69,154,186,176,150,154,186,225,231,154,186,0,57,155,186,14,138,155,186,10,219,155,186,244,43,156,186,205,124,156,186,148,205,156,186,73,30,157,186,237,110,157,186,127,191,157,186,255,15,158,186,109,96,158,186,
201,176,158,186,19,1,159,186,75,81,159,186,113,161,159,186,133,241,159,186,135,65,160,186,119,145,160,186,85,225,160,186,32,49,161,186,218,128,161,186,129,208,161,186,22,32,162,186,152,111,162,186,9,191,162,186,103,14,163,186,178,93,163,186,235,172,163,186,18,252,163,186,38,75,164,186,39,154,164,186,22,233,164,186,243,55,165,186,188,134,165,186,116,213,165,186,24,36,166,186,170,114,166,186,41,193,166,186,149,15,167,186,238,93,167,186,53,172,167,186,104,250,167,186,137,72,168,186,151,150,168,186,146,
228,168,186,122,50,169,186,78,128,169,186,16,206,169,186,191,27,170,186,90,105,170,186,227,182,170,186,88,4,171,186,186,81,171,186,8,159,171,186,68,236,171,186,108,57,172,186,129,134,172,186,130,211,172,186,112,32,173,186,74,109,173,186,17,186,173,186,197,6,174,186,101,83,174,186,241,159,174,186,106,236,174,186,207,56,175,186,33,133,175,186,95,209,175,186,137,29,176,186,159,105,176,186,162,181,176,186,145,1,177,186,108,77,177,186,51,153,177,186,230,228,177,186,133,48,178,186,17,124,178,186,136,199,
178,186,235,18,179,186,59,94,179,186,118,169,179,186,157,244,179,186,176,63,180,186,175,138,180,186,153,213,180,186,111,32,181,186,49,107,181,186,223,181,181,186,121,0,182,186,254,74,182,186,110,149,182,186,203,223,182,186,18,42,183,186,70,116,183,186,101,190,183,186,111,8,184,186,101,82,184,186,70,156,184,186,18,230,184,186,202,47,185,186,110,121,185,186,252,194,185,186,118,12,186,186,219,85,186,186,43,159,186,186,102,232,186,186,141,49,187,186,158,122,187,186,155,195,187,186,131,12,188,186,86,85,
188,186,19,158,188,186,188,230,188,186,80,47,189,186,206,119,189,186,56,192,189,186,140,8,190,186,203,80,190,186,245,152,190,186,10,225,190,186,9,41,191,186,243,112,191,186,200,184,191,186,136,0,192,186,50,72,192,186,198,143,192,186,70,215,192,186,175,30,193,186,4,102,193,186,66,173,193,186,108,244,193,186,127,59,194,186,125,130,194,186,101,201,194,186,56,16,195,186,245,86,195,186,156,157,195,186,46,228,195,186,170,42,196,186,16,113,196,186,96,183,196,186,154,253,196,186,190,67,197,186,205,137,197,
186,197,207,197,186,168,21,198,186,116,91,198,186,42,161,198,186,203,230,198,186,85,44,199,186,201,113,199,186,39,183,199,186,111,252,199,186,161,65,200,186,188,134,200,186,194,203,200,186,176,16,201,186,137,85,201,186,75,154,201,186,247,222,201,186,141,35,202,186,12,104,202,186,116,172,202,186,199,240,202,186,2,53,203,186,39,121,203,186,54,189,203,186,46,1,204,186,15,69,204,186,218,136,204,186,142,204,204,186,44,16,205,186,178,83,205,186,34,151,205,186,123,218,205,186,190,29,206,186,233,96,206,186,
254,163,206,186,252,230,206,186,227,41,207,186,179,108,207,186,108,175,207,186,14,242,207,186,153,52,208,186,13,119,208,186,106,185,208,186,176,251,208,186,222,61,209,186,246,127,209,186,246,193,209,186,223,3,210,186,177,69,210,186,108,135,210,186,16,201,210,186,156,10,211,186,17,76,211,186,110,141,211,186,180,206,211,186,227,15,212,186,250,80,212,186,250,145,212,186,226,210,212,186,179,19,213,186,108,84,213,186,14,149,213,186,152,213,213,186,11,22,214,186,102,86,214,186,169,150,214,186,212,214,214,
186,232,22,215,186,228,86,215,186,201,150,215,186,149,214,215,186,74,22,216,186,231,85,216,186,108,149,216,186,217,212,216,186,46,20,217,186,107,83,217,186,145,146,217,186,158,209,217,186,147,16,218,186,112,79,218,186,54,142,218,186,227,204,218,186,120,11,219,186,245,73,219,186,89,136,219,186,166,198,219,186,218,4,220,186,246,66,220,186,250,128,220,186,229,190,220,186,184,252,220,186,115,58,221,186,22,120,221,186,160,181,221,186,18,243,221,186,107,48,222,186,172,109,222,186,212,170,222,186,228,231,
222,186,219,36,223,186,186,97,223,186,128,158,223,186,45,219,223,186,194,23,224,186,62,84,224,186,162,144,224,186,237,204,224,186,31,9,225,186,57,69,225,186,57,129,225,186,33,189,225,186,240,248,225,186,166,52,226,186,68,112,226,186,200,171,226,186,51,231,226,186,134,34,227,186,192,93,227,186,224,152,227,186,232,211,227,186,215,14,228,186,172,73,228,186,105,132,228,186,12,191,228,186,150,249,228,186,7,52,229,186,95,110,229,186,158,168,229,186,196,226,229,186,208,28,230,186,195,86,230,186,157,144,
230,186,93,202,230,186,4,4,231,186,146,61,231,186,7,119,231,186,98,176,231,186,163,233,231,186,203,34,232,186,218,91,232,186,207,148,232,186,171,205,232,186,109,6,233,186,22,63,233,186,165,119,233,186,26,176,233,186,118,232,233,186,184,32,234,186,225,88,234,186,240,144,234,186,229,200,234,186,192,0,235,186,130,56,235,186,42,112,235,186,184,167,235,186,44,223,235,186,135,22,236,186,199,77,236,186,238,132,236,186,251,187,236,186,238,242,236,186,199,41,237,186,134,96,237,186,43,151,237,186,182,205,237,
186,38,4,238,186,125,58,238,186,186,112,238,186,221,166,238,186,229,220,238,186,212,18,239,186,168,72,239,186,98,126,239,186,2,180,239,186,136,233,239,186,243,30,240,186,69,84,240,186,123,137,240,186,152,190,240,186,154,243,240,186,130,40,241,186,80,93,241,186,3,146,241,186,156,198,241,186,26,251,241,186,126,47,242,186,199,99,242,186,246,151,242,186,11,204,242,186,5,0,243,186,228,51,243,186,169,103,243,186,83,155,243,186,226,206,243,186,87,2,244,186,178,53,244,186,241,104,244,186,22,156,244,186,32,
207,244,186,16,2,245,186,229,52,245,186,158,103,245,186,62,154,245,186,194,204,245,186,44,255,245,186,122,49,246,186,174,99,246,186,199,149,246,186,197,199,246,186,168,249,246,186,112,43,247,186,29,93,247,186,175,142,247,186,39,192,247,186,131,241,247,186,196,34,248,186,234,83,248,186,245,132,248,186,229,181,248,186,185,230,248,186,115,23,249,186,17,72,249,186,149,120,249,186,253,168,249,186,74,217,249,186,123,9,250,186,146,57,250,186,141,105,250,186,109,153,250,186,49,201,250,186,218,248,250,186,
104,40,251,186,219,87,251,186,50,135,251,186,109,182,251,186,142,229,251,186,147,20,252,186,124,67,252,186,74,114,252,186,252,160,252,186,147,207,252,186,15,254,252,186,111,44,253,186,179,90,253,186,220,136,253,186,233,182,253,186,218,228,253,186,176,18,254,186,106,64,254,186,9,110,254,186,140,155,254,186,243,200,254,186,62,246,254,186,110,35,255,186,130,80,255,186,122,125,255,186,87,170,255,186,23,215,255,186,222,1,0,187,35,24,0,187,89,46,0,187,130,68,0,187,156,90,0,187,169,112,0,187,168,134,0,187,
153,156,0,187,123,178,0,187,80,200,0,187,23,222,0,187,208,243,0,187,123,9,1,187,23,31,1,187,166,52,1,187,39,74,1,187,153,95,1,187,254,116,1,187,85,138,1,187,157,159,1,187,215,180,1,187,4,202,1,187,34,223,1,187,50,244,1,187,52,9,2,187,40,30,2,187,14,51,2,187,229,71,2,187,175,92,2,187,106,113,2,187,23,134,2,187,182,154,2,187,71,175,2,187,202,195,2,187,62,216,2,187,164,236,2,187,252,0,3,187,70,21,3,187,130,41,3,187,175,61,3,187,206,81,3,187,223,101,3,187,226,121,3,187,214,141,3,187,188,161,3,187,148,
181,3,187,94,201,3,187,25,221,3,187,198,240,3,187,101,4,4,187,245,23,4,187,119,43,4,187,235,62,4,187,80,82,4,187,167,101,4,187,240,120,4,187,42,140,4,187,86,159,4,187,116,178,4,187,131,197,4,187,132,216,4,187,119,235,4,187,91,254,4,187,48,17,5,187,247,35,5,187,176,54,5,187,91,73,5,187,247,91,5,187,132,110,5,187,3,129,5,187,116,147,5,187,214,165,5,187,42,184,5,187,111,202,5,187,166,220,5,187,206,238,5,187,232,0,6,187,243,18,6,187,240,36,6,187,222,54,6,187,189,72,6,187,143,90,6,187,81,108,6,187,5,126,
6,187,171,143,6,187,66,161,6,187,202,178,6,187,68,196,6,187,175,213,6,187,12,231,6,187,90,248,6,187,154,9,7,187,202,26,7,187,237,43,7,187,0,61,7,187,5,78,7,187,252,94,7,187,228,111,7,187,189,128,7,187,135,145,7,187,67,162,7,187,240,178,7,187,143,195,7,187,31,212,7,187,160,228,7,187,18,245,7,187,118,5,8,187,203,21,8,187,18,38,8,187,73,54,8,187,114,70,8,187,141,86,8,187,152,102,8,187,149,118,8,187,131,134,8,187,98,150,8,187,51,166,8,187,245,181,8,187,168,197,8,187,76,213,8,187,226,228,8,187,104,244,
8,187,224,3,9,187,73,19,9,187,164,34,9,187,239,49,9,187,44,65,9,187,90,80,9,187,121,95,9,187,138,110,9,187,139,125,9,187,126,140,9,187,98,155,9,187,54,170,9,187,253,184,9,187,180,199,9,187,92,214,9,187,246,228,9,187,128,243,9,187,252,1,10,187,105,16,10,187,199,30,10,187,22,45,10,187,87,59,10,187,136,73,10,187,170,87,10,187,190,101,10,187,194,115,10,187,184,129,10,187,159,143,10,187,119,157,10,187,64,171,10,187,249,184,10,187,164,198,10,187,64,212,10,187,206,225,10,187,76,239,10,187,187,252,10,187,
27,10,11,187,108,23,11,187,174,36,11,187,226,49,11,187,6,63,11,187,27,76,11,187,33,89,11,187,24,102,11,187,1,115,11,187,218,127,11,187,164,140,11,187,95,153,11,187,11,166,11,187,168,178,11,187,55,191,11,187,182,203,11,187,38,216,11,187,134,228,11,187,216,240,11,187,27,253,11,187,79,9,12,187,116,21,12,187,137,33,12,187,144,45,12,187,135,57,12,187,111,69,12,187,73,81,12,187,19,93,12,187,206,104,12,187,122,116,12,187,23,128,12,187,165,139,12,187,35,151,12,187,147,162,12,187,243,173,12,187,69,185,12,
187,135,196,12,187,186,207,12,187,222,218,12,187,242,229,12,187,248,240,12,187,238,251,12,187,214,6,13,187,174,17,13,187,119,28,13,187,49,39,13,187,219,49,13,187,119,60,13,187,3,71,13,187,128,81,13,187,238,91,13,187,77,102,13,187,156,112,13,187,221,122,13,187,14,133,13,187,48,143,13,187,67,153,13,187,70,163,13,187,59,173,13,187,32,183,13,187,246,192,13,187,189,202,13,187,116,212,13,187,28,222,13,187,181,231,13,187,63,241,13,187,186,250,13,187,37,4,14,187,129,13,14,187,206,22,14,187,12,32,14,187,58,
41,14,187,89,50,14,187,105,59,14,187,105,68,14,187,91,77,14,187,61,86,14,187,16,95,14,187,211,103,14,187,135,112,14,187,44,121,14,187,194,129,14,187,72,138,14,187,191,146,14,187,39,155,14,187,128,163,14,187,201,171,14,187,3,180,14,187,46,188,14,187,73,196,14,187,85,204,14,187,82,212,14,187,63,220,14,187,29,228,14,187,236,235,14,187,171,243,14,187,91,251,14,187,252,2,15,187,142,10,15,187,16,18,15,187,131,25,15,187,230,32,15,187,58,40,15,187,127,47,15,187,181,54,15,187,219,61,15,187,242,68,15,187,249,
75,15,187,241,82,15,187,218,89,15,187,180,96,15,187,126,103,15,187,56,110,15,187,228,116,15,187,128,123,15,187,12,130,15,187,138,136,15,187,248,142,15,187,86,149,15,187,165,155,15,187,229,161,15,187,21,168,15,187,55,174,15,187,72,180,15,187,75,186,15,187,61,192,15,187,33,198,15,187,245,203,15,187,186,209,15,187,111,215,15,187,21,221,15,187,172,226,15,187,51,232,15,187,171,237,15,187,19,243,15,187,108,248,15,187,182,253,15,187,240,2,16,187,27,8,16,187,55,13,16,187,67,18,16,187,63,23,16,187,45,28,16,
187,10,33,16,187,217,37,16,187,152,42,16,187,71,47,16,187,232,51,16,187,120,56,16,187,250,60,16,187,108,65,16,187,206,69,16,187,33,74,16,187,101,78,16,187,153,82,16,187,190,86,16,187,212,90,16,187,218,94,16,187,208,98,16,187,183,102,16,187,143,106,16,187,88,110,16,187,16,114,16,187,186,117,16,187,84,121,16,187,223,124,16,187,90,128,16,187,198,131,16,187,34,135,16,187,111,138,16,187,172,141,16,187,218,144,16,187,249,147,16,187,8,151,16,187,8,154,16,187,248,156,16,187,217,159,16,187,171,162,16,187,
109,165,16,187,31,168,16,187,194,170,16,187,86,173,16,187,218,175,16,187,79,178,16,187,181,180,16,187,11,183,16,187,81,185,16,187,136,187,16,187,176,189,16,187,200,191,16,187,209,193,16,187,202,195,16,187,180,197,16,187,143,199,16,187,90,201,16,187,21,203,16,187,194,204,16,187,94,206,16,187,236,207,16,187,106,209,16,187,216,210,16,187,55,212,16,187,135,213,16,187,199,214,16,187,247,215,16,187,25,217,16,187,42,218,16,187,45,219,16,187,32,220,16,187,3,221,16,187,215,221,16,187,156,222,16,187,81,223,
16,187,247,223,16,187,141,224,16,187,20,225,16,187,140,225,16,187,244,225,16,187,77,226,16,187,150,226,16,187,207,226,16,187,250,226,16,187,21,227,16,187,32,227,16,187,28,227,16,187,9,227,16,187,230,226,16,187,180,226,16,187,114,226,16,187,33,226,16,187,193,225,16,187,81,225,16,187,210,224,16,187,67,224,16,187,165,223,16,187,247,222,16,187,59,222,16,187,110,221,16,187,146,220,16,187,167,219,16,187,173,218,16,187,163,217,16,187,137,216,16,187,96,215,16,187,40,214,16,187,225,212,16,187,138,211,16,187,
35,210,16,187,173,208,16,187,40,207,16,187,148,205,16,187,240,203,16,187,60,202,16,187,121,200,16,187,167,198,16,187,198,196,16,187,213,194,16,187,212,192,16,187,197,190,16,187,166,188,16,187,119,186,16,187,57,184,16,187,236,181,16,187,143,179,16,187,36,177,16,187,168,174,16,187,29,172,16,187,131,169,16,187,218,166,16,187,33,164,16,187,89,161,16,187,129,158,16,187,155,155,16,187,164,152,16,187,159,149,16,187,138,146,16,187,101,143,16,187,50,140,16,187,239,136,16,187,156,133,16,187,59,130,16,187,202,
126,16,187,73,123,16,187,186,119,16,187,27,116,16,187,108,112,16,187,175,108,16,187,226,104,16,187,5,101,16,187,26,97,16,187,31,93,16,187,20,89,16,187,251,84,16,187,210,80,16,187,154,76,16,187,82,72,16,187,251,67,16,187,149,63,16,187,32,59,16,187,155,54,16,187,7,50,16,187,100,45,16,187,177,40,16,187,239,35,16,187,30,31,16,187,62,26,16,187,78,21,16,187,79,16,16,187,65,11,16,187,35,6,16,187,246,0,16,187,186,251,15,187,111,246,15,187,21,241,15,187,171,235,15,187,50,230,15,187,169,224,15,187,18,219,15,
187,107,213,15,187,181,207,15,187,240,201,15,187,27,196,15,187,55,190,15,187,68,184,15,187,66,178,15,187,49,172,15,187,16,166,15,187,225,159,15,187,161,153,15,187,83,147,15,187,246,140,15,187,137,134,15,187,13,128,15,187,130,121,15,187,232,114,15,187,63,108,15,187,134,101,15,187,190,94,15,187,232,87,15,187,2,81,15,187,12,74,15,187,8,67,15,187,244,59,15,187,210,52,15,187,160,45,15,187,95,38,15,187,14,31,15,187,175,23,15,187,65,16,15,187,195,8,15,187,54,1,15,187,155,249,14,187,240,241,14,187,54,234,
14,187,108,226,14,187,148,218,14,187,173,210,14,187,182,202,14,187,177,194,14,187,156,186,14,187,120,178,14,187,69,170,14,187,4,162,14,187,179,153,14,187,82,145,14,187,227,136,14,187,101,128,14,187,216,119,14,187,60,111,14,187,144,102,14,187,214,93,14,187,12,85,14,187,52,76,14,187,76,67,14,187,86,58,14,187,80,49,14,187,60,40,14,187,24,31,14,187,230,21,14,187,164,12,14,187,83,3,14,187,244,249,13,187,133,240,13,187,8,231,13,187,123,221,13,187,223,211,13,187,53,202,13,187,123,192,13,187,179,182,13,187,
220,172,13,187,245,162,13,187,0,153,13,187,252,142,13,187,233,132,13,187,198,122,13,187,149,112,13,187,85,102,13,187,7,92,13,187,169,81,13,187,60,71,13,187,193,60,13,187,54,50,13,187,157,39,13,187,244,28,13,187,61,18,13,187,119,7,13,187,162,252,12,187,191,241,12,187,204,230,12,187,202,219,12,187,186,208,12,187,155,197,12,187,109,186,12,187,48,175,12,187,228,163,12,187,138,152,12,187,32,141,12,187,168,129,12,187,33,118,12,187,140,106,12,187,231,94,12,187,52,83,12,187,114,71,12,187,161,59,12,187,193,
47,12,187,211,35,12,187,214,23,12,187,202,11,12,187,175,255,11,187,133,243,11,187,77,231,11,187,6,219,11,187,177,206,11,187,76,194,11,187,217,181,11,187,88,169,11,187,199,156,11,187,40,144,11,187,122,131,11,187,189,118,11,187,242,105,11,187,24,93,11,187,48,80,11,187,56,67,11,187,51,54,11,187,30,41,11,187,251,27,11,187,201,14,11,187,137,1,11,187,58,244,10,187,220,230,10,187,112,217,10,187,245,203,10,187,107,190,10,187,211,176,10,187,44,163,10,187,119,149,10,187,179,135,10,187,225,121,10,187,0,108,
10,187,17,94,10,187,18,80,10,187,6,66,10,187,235,51,10,187,193,37,10,187,137,23,10,187,66,9,10,187,237,250,9,187,137,236,9,187,23,222,9,187,151,207,9,187,7,193,9,187,106,178,9,187,190,163,9,187,3,149,9,187,58,134,9,187,99,119,9,187,125,104,9,187,137,89,9,187,134,74,9,187,117,59,9,187,85,44,9,187,39,29,9,187,235,13,9,187,160,254,8,187,71,239,8,187,223,223,8,187,105,208,8,187,229,192,8,187,83,177,8,187,178,161,8,187,2,146,8,187,69,130,8,187,121,114,8,187,159,98,8,187,182,82,8,187,191,66,8,187,186,50,
8,187,167,34,8,187,133,18,8,187,85,2,8,187,23,242,7,187,202,225,7,187,111,209,7,187,6,193,7,187,143,176,7,187,10,160,7,187,118,143,7,187,212,126,7,187,36,110,7,187,102,93,7,187,153,76,7,187,190,59,7,187,213,42,7,187,222,25,7,187,217,8,7,187,198,247,6,187,164,230,6,187,117,213,6,187,55,196,6,187,235,178,6,187,145,161,6,187,41,144,6,187,179,126,6,187,47,109,6,187,156,91,6,187,252,73,6,187,78,56,6,187,145,38,6,187,198,20,6,187,238,2,6,187,7,241,5,187,18,223,5,187,16,205,5,187,255,186,5,187,224,168,5,
187,180,150,5,187,121,132,5,187,48,114,5,187,218,95,5,187,117,77,5,187,3,59,5,187,130,40,5,187,244,21,5,187,88,3,5,187,173,240,4,187,245,221,4,187,47,203,4,187,91,184,4,187,122,165,4,187,138,146,4,187,140,127,4,187,129,108,4,187,104,89,4,187,65,70,4,187,12,51,4,187,201,31,4,187,121,12,4,187,26,249,3,187,174,229,3,187,52,210,3,187,173,190,3,187,23,171,3,187,116,151,3,187,195,131,3,187,4,112,3,187,56,92,3,187,94,72,3,187,118,52,3,187,128,32,3,187,125,12,3,187,108,248,2,187,78,228,2,187,33,208,2,187,
231,187,2,187,160,167,2,187,74,147,2,187,232,126,2,187,119,106,2,187,249,85,2,187,109,65,2,187,212,44,2,187,45,24,2,187,121,3,2,187,182,238,1,187,231,217,1,187,10,197,1,187,31,176,1,187,39,155,1,187,33,134,1,187,14,113,1,187,237,91,1,187,191,70,1,187,131,49,1,187,58,28,1,187,227,6,1,187,127,241,0,187,13,220,0,187,142,198,0,187,2,177,0,187,104,155,0,187,193,133,0,187,12,112,0,187,74,90,0,187,123,68,0,187,158,46,0,187,180,24,0,187,188,2,0,187,111,217,255,186,75,173,255,186,12,129,255,186,178,84,255,
186,62,40,255,186,175,251,254,186,6,207,254,186,66,162,254,186,100,117,254,186,107,72,254,186,88,27,254,186,42,238,253,186,226,192,253,186,127,147,253,186,2,102,253,186,107,56,253,186,185,10,253,186,237,220,252,186,7,175,252,186,6,129,252,186,235,82,252,186,182,36,252,186,102,246,251,186,253,199,251,186,121,153,251,186,219,106,251,186,34,60,251,186,80,13,251,186,100,222,250,186,93,175,250,186,61,128,250,186,2,81,250,186,173,33,250,186,63,242,249,186,182,194,249,186,20,147,249,186,87,99,249,186,129,
51,249,186,144,3,249,186,134,211,248,186,98,163,248,186,36,115,248,186,204,66,248,186,91,18,248,186,207,225,247,186,42,177,247,186,108,128,247,186,147,79,247,186,161,30,247,186,149,237,246,186,112,188,246,186,49,139,246,186,216,89,246,186,102,40,246,186,218,246,245,186,53,197,245,186,118,147,245,186,158,97,245,186,172,47,245,186,160,253,244,186,124,203,244,186,62,153,244,186,230,102,244,186,118,52,244,186,235,1,244,186,72,207,243,186,139,156,243,186,181,105,243,186,198,54,243,186,190,3,243,186,156,
208,242,186,97,157,242,186,13,106,242,186,160,54,242,186,26,3,242,186,123,207,241,186,194,155,241,186,241,103,241,186,7,52,241,186,3,0,241,186,231,203,240,186,178,151,240,186,99,99,240,186,252,46,240,186,124,250,239,186,227,197,239,186,50,145,239,186,103,92,239,186,132,39,239,186,136,242,238,186,115,189,238,186,70,136,238,186,255,82,238,186,161,29,238,186,41,232,237,186,153,178,237,186,240,124,237,186,47,71,237,186,85,17,237,186,99,219,236,186,88,165,236,186,52,111,236,186,249,56,236,186,164,2,236,
186,56,204,235,186,179,149,235,186,21,95,235,186,96,40,235,186,146,241,234,186,171,186,234,186,173,131,234,186,150,76,234,186,103,21,234,186,31,222,233,186,192,166,233,186,73,111,233,186,185,55,233,186,17,0,233,186,81,200,232,186,121,144,232,186,137,88,232,186,130,32,232,186,98,232,231,186,42,176,231,186,218,119,231,186,114,63,231,186,243,6,231,186,92,206,230,186,172,149,230,186,229,92,230,186,7,36,230,186,16,235,229,186,2,178,229,186,220,120,229,186,158,63,229,186,73,6,229,186,220,204,228,186,88,
147,228,186,188,89,228,186,8,32,228,186,61,230,227,186,90,172,227,186,96,114,227,186,79,56,227,186,38,254,226,186,229,195,226,186,141,137,226,186,30,79,226,186,152,20,226,186,250,217,225,186,69,159,225,186,121,100,225,186,150,41,225,186,155,238,224,186,137,179,224,186,96,120,224,186,32,61,224,186,201,1,224,186,91,198,223,186,214,138,223,186,57,79,223,186,134,19,223,186,188,215,222,186,219,155,222,186,227,95,222,186,212,35,222,186,174,231,221,186,113,171,221,186,30,111,221,186,180,50,221,186,51,246,
220,186,155,185,220,186,237,124,220,186,40,64,220,186,76,3,220,186,90,198,219,186,81,137,219,186,49,76,219,186,251,14,219,186,175,209,218,186,76,148,218,186,210,86,218,186,66,25,218,186,156,219,217,186,223,157,217,186,12,96,217,186,35,34,217,186,35,228,216,186,13,166,216,186,225,103,216,186,159,41,216,186,70,235,215,186,215,172,215,186,83,110,215,186,184,47,215,186,7,241,214,186,63,178,214,186,98,115,214,186,111,52,214,186,102,245,213,186,71,182,213,186,18,119,213,186,199,55,213,186,102,248,212,186,
240,184,212,186,99,121,212,186,193,57,212,186,9,250,211,186,60,186,211,186,88,122,211,186,95,58,211,186,81,250,210,186,44,186,210,186,242,121,210,186,163,57,210,186,62,249,209,186,196,184,209,186,52,120,209,186,142,55,209,186,212,246,208,186,3,182,208,186,30,117,208,186,35,52,208,186,19,243,207,186,237,177,207,186,179,112,207,186,99,47,207,186,253,237,206,186,131,172,206,186,244,106,206,186,79,41,206,186,150,231,205,186,199,165,205,186,227,99,205,186,234,33,205,186,221,223,204,186,186,157,204,186,
131,91,204,186,54,25,204,186,213,214,203,186,95,148,203,186,212,81,203,186,52,15,203,186,128,204,202,186,183,137,202,186,217,70,202,186,231,3,202,186,224,192,201,186,196,125,201,186,148,58,201,186,79,247,200,186,246,179,200,186,136,112,200,186,6,45,200,186,112,233,199,186,197,165,199,186,5,98,199,186,50,30,199,186,74,218,198,186,77,150,198,186,61,82,198,186,24,14,198,186,223,201,197,186,146,133,197,186,49,65,197,186,188,252,196,186,51,184,196,186,149,115,196,186,228,46,196,186,30,234,195,186,69,165,
195,186,88,96,195,186,87,27,195,186,66,214,194,186,25,145,194,186,220,75,194,186,140,6,194,186,40,193,193,186,176,123,193,186,37,54,193,186,134,240,192,186,211,170,192,186,12,101,192,186,50,31,192,186,69,217,191,186,68,147,191,186,48,77,191,186,8,7,191,186,204,192,190,186,126,122,190,186,28,52,190,186,167,237,189,186,30,167,189,186,130,96,189,186,211,25,189,186,17,211,188,186,59,140,188,186,83,69,188,186,87,254,187,186,72,183,187,186,38,112,187,186,241,40,187,186,170,225,186,186,79,154,186,186,225,
82,186,186,96,11,186,186,205,195,185,186,39,124,185,186,110,52,185,186,162,236,184,186,195,164,184,186,210,92,184,186,206,20,184,186,183,204,183,186,142,132,183,186,82,60,183,186,4,244,182,186,163,171,182,186,47,99,182,186,170,26,182,186,17,210,181,186,103,137,181,186,170,64,181,186,218,247,180,186,249,174,180,186,5,102,180,186,254,28,180,186,230,211,179,186,187,138,179,186,127,65,179,186,48,248,178,186,207,174,178,186,92,101,178,186,215,27,178,186,64,210,177,186,151,136,177,186,220,62,177,186,15,
245,176,186,48,171,176,186,64,97,176,186,62,23,176,186,42,205,175,186,4,131,175,186,204,56,175,186,131,238,174,186,40,164,174,186,188,89,174,186,62,15,174,186,174,196,173,186,13,122,173,186,91,47,173,186,151,228,172,186,193,153,172,186,219,78,172,186,226,3,172,186,217,184,171,186,190,109,171,186,146,34,171,186,85,215,170,186,6,140,170,186,167,64,170,186,54,245,169,186,180,169,169,186,33,94,169,186,125,18,169,186,201,198,168,186,3,123,168,186,44,47,168,186,68,227,167,186,75,151,167,186,66,75,167,186,
40,255,166,186,253,178,166,186,193,102,166,186,116,26,166,186,23,206,165,186,170,129,165,186,43,53,165,186,156,232,164,186,253,155,164,186,77,79,164,186,140,2,164,186,187,181,163,186,218,104,163,186,232,27,163,186,230,206,162,186,211,129,162,186,177,52,162,186,126,231,161,186,59,154,161,186,231,76,161,186,132,255,160,186,16,178,160,186,140,100,160,186,249,22,160,186,85,201,159,186,161,123,159,186,221,45,159,186,10,224,158,186,38,146,158,186,51,68,158,186,48,246,157,186,29,168,157,186,250,89,157,186,
200,11,157,186,133,189,156,186,52,111,156,186,210,32,156,186,97,210,155,186,225,131,155,186,81,53,155,186,177,230,154,186,2,152,154,186,68,73,154,186,118,250,153,186,153,171,153,186,172,92,153,186,176,13,153,186,165,190,152,186,139,111,152,186,98,32,152,186,41,209,151,186,226,129,151,186,139,50,151,186,37,227,150,186,176,147,150,186,44,68,150,186,154,244,149,186,248,164,149,186,71,85,149,186,136,5,149,186,186,181,148,186,221,101,148,186,241,21,148,186,247,197,147,186,238,117,147,186,214,37,147,186,
176,213,146,186,123,133,146,186,55,53,146,186,229,228,145,186,133,148,145,186,22,68,145,186,153,243,144,186,13,163,144,186,115,82,144,186,203,1,144,186,20,177,143,186,79,96,143,186,124,15,143,186,155,190,142,186,172,109,142,186,175,28,142,186,163,203,141,186,138,122,141,186,98,41,141,186,45,216,140,186,234,134,140,186,152,53,140,186,57,228,139,186,205,146,139,186,82,65,139,186,201,239,138,186,51,158,138,186,144,76,138,186,222,250,137,186,31,169,137,186,82,87,137,186,120,5,137,186,145,179,136,186,
156,97,136,186,153,15,136,186,137,189,135,186,108,107,135,186,65,25,135,186,9,199,134,186,196,116,134,186,113,34,134,186,18,208,133,186,165,125,133,186,43,43,133,186,164,216,132,186,16,134,132,186,111,51,132,186,193,224,131,186,6,142,131,186,62,59,131,186,105,232,130,186,135,149,130,186,153,66,130,186,158,239,129,186,150,156,129,186,129,73,129,186,96,246,128,186,50,163,128,186,247,79,128,186,96,249,127,186,184,82,127,186,248,171,126,186,31,5,126,186,45,94,125,186,34,183,124,186,255,15,124,186,195,
104,123,186,110,193,122,186,1,26,122,186,123,114,121,186,221,202,120,186,39,35,120,186,89,123,119,186,114,211,118,186,116,43,118,186,93,131,117,186,47,219,116,186,232,50,116,186,138,138,115,186,20,226,114,186,135,57,114,186,226,144,113,186,37,232,112,186,82,63,112,186,102,150,111,186,100,237,110,186,74,68,110,186,25,155,109,186,209,241,108,186,114,72,108,186,253,158,107,186,112,245,106,186,205,75,106,186,18,162,105,186,66,248,104,186,90,78,104,186,93,164,103,186,72,250,102,186,30,80,102,186,221,165,
101,186,134,251,100,186,25,81,100,186,149,166,99,186,252,251,98,186,77,81,98,186,136,166,97,186,173,251,96,186,189,80,96,186,183,165,95,186,155,250,94,186,106,79,94,186,36,164,93,186,200,248,92,186,87,77,92,186,209,161,91,186,53,246,90,186,133,74,90,186,192,158,89,186,229,242,88,186,246,70,88,186,242,154,87,186,218,238,86,186,173,66,86,186,107,150,85,186,21,234,84,186,170,61,84,186,44,145,83,186,152,228,82,186,241,55,82,186,54,139,81,186,102,222,80,186,131,49,80,186,140,132,79,186,129,215,78,186,
98,42,78,186,48,125,77,186,234,207,76,186,144,34,76,186,35,117,75,186,163,199,74,186,15,26,74,186,104,108,73,186,174,190,72,186,225,16,72,186,1,99,71,186,14,181,70,186,8,7,70,186,240,88,69,186,196,170,68,186,134,252,67,186,54,78,67,186,211,159,66,186,93,241,65,186,214,66,65,186,60,148,64,186,143,229,63,186,209,54,63,186,1,136,62,186,30,217,61,186,42,42,61,186,36,123,60,186,12,204,59,186,226,28,59,186,167,109,58,186,90,190,57,186,252,14,57,186,141,95,56,186,12,176,55,186,122,0,55,186,215,80,54,186,
34,161,53,186,93,241,52,186,135,65,52,186,159,145,51,186,167,225,50,186,159,49,50,186,134,129,49,186,92,209,48,186,33,33,48,186,214,112,47,186,123,192,46,186,16,16,46,186,148,95,45,186,9,175,44,186,109,254,43,186,193,77,43,186,5,157,42,186,58,236,41,186,95,59,41,186,116,138,40,186,121,217,39,186,111,40,39,186,86,119,38,186,45,198,37,186,244,20,37,186,173,99,36,186,86,178,35,186,241,0,35,186,124,79,34,186,248,157,33,186,102,236,32,186,197,58,32,186,21,137,31,186,86,215,30,186,137,37,30,186,173,115,
29,186,195,193,28,186,203,15,28,186,196,93,27,186,175,171,26,186,140,249,25,186,91,71,25,186,28,149,24,186,207,226,23,186,117,48,23,186,12,126,22,186,150,203,21,186,18,25,21,186,129,102,20,186,227,179,19,186,55,1,19,186,125,78,18,186,183,155,17,186,227,232,16,186,3,54,16,186,21,131,15,186,26,208,14,186,19,29,14,186,255,105,13,186,222,182,12,186,176,3,12,186,118,80,11,186,48,157,10,186,221,233,9,186,126,54,9,186,18,131,8,186,155,207,7,186,23,28,7,186,135,104,6,186,236,180,5,186,68,1,5,186,145,77,4,
186,210,153,3,186,7,230,2,186,49,50,2,186,79,126,1,186,98,202,0,186,106,22,0,186,205,196,254,185,175,92,253,185,123,244,251,185,49,140,250,185,209,35,249,185,91,187,247,185,208,82,246,185,48,234,244,185,122,129,243,185,174,24,242,185,206,175,240,185,217,70,239,185,207,221,237,185,177,116,236,185,127,11,235,185,56,162,233,185,221,56,232,185,110,207,230,185,235,101,229,185,84,252,227,185,171,146,226,185,237,40,225,185,29,191,223,185,57,85,222,185,67,235,220,185,58,129,219,185,30,23,218,185,240,172,
216,185,176,66,215,185,93,216,213,185,249,109,212,185,131,3,211,185,251,152,209,185,97,46,208,185,182,195,206,185,250,88,205,185,45,238,203,185,79,131,202,185,96,24,201,185,97,173,199,185,81,66,198,185,48,215,196,185,0,108,195,185,192,0,194,185,111,149,192,185,16,42,191,185,160,190,189,185,33,83,188,185,147,231,186,185,246,123,185,185,74,16,184,185,143,164,182,185,197,56,181,185,237,204,179,185,7,97,178,185,18,245,176,185,16,137,175,185,255,28,174,185,225,176,172,185,181,68,171,185,124,216,169,185,
53,108,168,185,226,255,166,185,129,147,165,185,20,39,164,185,154,186,162,185,20,78,161,185,129,225,159,185,226,116,158,185,54,8,157,185,127,155,155,185,189,46,154,185,238,193,152,185,21,85,151,185,48,232,149,185,63,123,148,185,68,14,147,185,62,161,145,185,45,52,144,185,18,199,142,185,237,89,141,185,189,236,139,185,131,127,138,185,63,18,137,185,241,164,135,185,154,55,134,185,58,202,132,185,208,92,131,185,93,239,129,185,224,129,128,185,183,40,126,185,156,77,123,185,111,114,120,185,50,151,117,185,229,
187,114,185,135,224,111,185,25,5,109,185,156,41,106,185,15,78,103,185,116,114,100,185,202,150,97,185,17,187,94,185,75,223,91,185,118,3,89,185,149,39,86,185,166,75,83,185,170,111,80,185,162,147,77,185,142,183,74,185,110,219,71,185,66,255,68,185,11,35,66,185,201,70,63,185,124,106,60,185,37,142,57,185,195,177,54,185,88,213,51,185,228,248,48,185,102,28,46,185,224,63,43,185,81,99,40,185,186,134,37,185,26,170,34,185,116,205,31,185,197,240,28,185,16,20,26,185,84,55,23,185,146,90,20,185,202,125,17,185,251,
160,14,185,40,196,11,185,79,231,8,185,113,10,6,185,143,45,3,185,168,80,0,185,123,231,250,184,158,45,245,184,187,115,239,184,209,185,233,184,227,255,227,184,239,69,222,184,247,139,216,184,251,209,210,184,252,23,205,184,251,93,199,184,248,163,193,184,243,233,187,184,238,47,182,184,234,117,176,184,229,187,170,184,226,1,165,184,225,71,159,184,226,141,153,184,230,211,147,184,238,25,142,184,250,95,136,184,10,166,130,184,66,216,121,184,122,100,110,184,193,240,98,184,22,125,87,184,122,9,76,184,240,149,64,
184,120,34,53,184,19,175,41,184,196,59,30,184,138,200,18,184,103,85,7,184,185,196,247,183,215,222,224,183,43,249,201,183,182,19,179,183,125,46,156,183,128,73,133,183,132,201,92,183,140,0,47,183,29,56,1,183,117,224,166,182,170,163,22,182,237,220,1,53,177,143,87,54,210,82,199,54,64,110,17,55,109,50,63,55,234,245,108,55,90,92,141,55,98,61,164,55,11,30,187,55,83,254,209,55,55,222,232,55,181,189,255,55,101,78,11,56,186,189,22,56,216,44,34,56,191,155,45,56,108,10,57,56,223,120,68,56,22,231,79,56,16,85,
91,56,204,194,102,56,74,48,114,56,134,157,125,56,64,133,132,56,156,59,138,56,214,241,143,56,238,167,149,56,226,93,155,56,178,19,161,56,94,201,166,56,228,126,172,56,69,52,178,56,128,233,183,56,147,158,189,56,127,83,195,56,68,8,201,56,223,188,206,56,81,113,212,56,153,37,218,56,183,217,223,56,169,141,229,56,112,65,235,56,10,245,240,56,119,168,246,56,183,91,252,56,100,7,1,57,214,224,3,57,48,186,6,57,113,147,9,57,155,108,12,57,172,69,15,57,164,30,18,57,131,247,20,57,72,208,23,57,243,168,26,57,133,129,
29,57,252,89,32,57,88,50,35,57,153,10,38,57,191,226,40,57,202,186,43,57,184,146,46,57,138,106,49,57,64,66,52,57,217,25,55,57,85,241,57,57,179,200,60,57,244,159,63,57,23,119,66,57,27,78,69,57,1,37,72,57,200,251,74,57,111,210,77,57,247,168,80,57,95,127,83,57,168,85,86,57,207,43,89,57,214,1,92,57,188,215,94,57,129,173,97,57,36,131,100,57,165,88,103,57,4,46,106,57,64,3,109,57,90,216,111,57,80,173,114,57,35,130,117,57,210,86,120,57,93,43,123,57,196,255,125,57,3,106,128,57,18,212,129,57,14,62,131,57,247,
167,132,57,206,17,134,57,145,123,135,57,65,229,136,57,222,78,138,57,103,184,139,57,221,33,141,57,63,139,142,57,141,244,143,57,198,93,145,57,236,198,146,57,253,47,148,57,249,152,149,57,225,1,151,57,180,106,152,57,114,211,153,57,27,60,155,57,175,164,156,57,45,13,158,57,149,117,159,57,232,221,160,57,37,70,162,57,76,174,163,57,92,22,165,57,87,126,166,57,59,230,167,57,8,78,169,57,190,181,170,57,94,29,172,57,230,132,173,57,87,236,174,57,177,83,176,57,243,186,177,57,30,34,179,57,49,137,180,57,43,240,181,
57,14,87,183,57,216,189,184,57,139,36,186,57,36,139,187,57,165,241,188,57,13,88,190,57,91,190,191,57,145,36,193,57,174,138,194,57,177,240,195,57,154,86,197,57,106,188,198,57,31,34,200,57,187,135,201,57,61,237,202,57,164,82,204,57,241,183,205,57,35,29,207,57,58,130,208,57,54,231,209,57,24,76,211,57,222,176,212,57,137,21,214,57,24,122,215,57,139,222,216,57,227,66,218,57,31,167,219,57,63,11,221,57,66,111,222,57,41,211,223,57,244,54,225,57,162,154,226,57,51,254,227,57,167,97,229,57,254,196,230,57,56,
40,232,57,84,139,233,57,83,238,234,57,52,81,236,57,247,179,237,57,156,22,239,57,35,121,240,57,140,219,241,57,214,61,243,57,2,160,244,57,15,2,246,57,253,99,247,57,204,197,248,57,124,39,250,57,12,137,251,57,126,234,252,57,207,75,254,57,1,173,255,57,9,135,0,58,130,55,1,58,235,231,1,58,68,152,2,58,140,72,3,58,197,248,3,58,236,168,4,58,4,89,5,58,10,9,6,58,1,185,6,58,230,104,7,58,187,24,8,58,127,200,8,58,50,120,9,58,212,39,10,58,101,215,10,58,229,134,11,58,84,54,12,58,177,229,12,58,254,148,13,58,57,68,
14,58,98,243,14,58,122,162,15,58,128,81,16,58,117,0,17,58,87,175,17,58,40,94,18,58,231,12,19,58,149,187,19,58,48,106,20,58,185,24,21,58,47,199,21,58,148,117,22,58,230,35,23,58,38,210,23,58,83,128,24,58,110,46,25,58,118,220,25,58,108,138,26,58,79,56,27,58,31,230,27,58,220,147,28,58,134,65,29,58,29,239,29,58,161,156,30,58,17,74,31,58,111,247,31,58,185,164,32,58,240,81,33,58,19,255,33,58,35,172,34,58,31,89,35,58,8,6,36,58,220,178,36,58,157,95,37,58,74,12,38,58,227,184,38,58,104,101,39,58,217,17,40,58,
54,190,40,58,127,106,41,58,179,22,42,58,211,194,42,58,222,110,43,58,213,26,44,58,183,198,44,58,132,114,45,58,61,30,46,58,225,201,46,58,112,117,47,58,235,32,48,58,80,204,48,58,160,119,49,58,219,34,50,58,1,206,50,58,17,121,51,58,12,36,52,58,241,206,52,58,194,121,53,58,124,36,54,58,33,207,54,58,176,121,55,58,41,36,56,58,141,206,56,58,218,120,57,58,18,35,58,58,51,205,58,58,63,119,59,58,52,33,60,58,19,203,60,58,219,116,61,58,141,30,62,58,41,200,62,58,174,113,63,58,28,27,64,58,116,196,64,58,181,109,65,
58,223,22,66,58,242,191,66,58,239,104,67,58,212,17,68,58,162,186,68,58,89,99,69,58,249,11,70,58,129,180,70,58,242,92,71,58,76,5,72,58,142,173,72,58,184,85,73,58,203,253,73,58,198,165,74,58,169,77,75,58,117,245,75,58,40,157,76,58,196,68,77,58,71,236,77,58,178,147,78,58,5,59,79,58],"i8",4,y.a+583680);
Q([64,226,79,58,98,137,80,58,108,48,81,58,94,215,81,58,55,126,82,58,247,36,83,58,159,203,83,58,46,114,84,58,164,24,85,58,1,191,85,58,69,101,86,58,113,11,87,58,131,177,87,58,124,87,88,58,91,253,88,58,34,163,89,58,207,72,90,58,99,238,90,58,221,147,91,58,61,57,92,58,132,222,92,58,178,131,93,58,197,40,94,58,191,205,94,58,159,114,95,58,100,23,96,58,16,188,96,58,162,96,97,58,25,5,98,58,118,169,98,58,185,77,99,58,226,241,99,58,240,149,100,58,228,57,101,58,189,221,101,58,123,129,102,58,31,37,103,58,168,200,
103,58,22,108,104,58,105,15,105,58,161,178,105,58,190,85,106,58,192,248,106,58,167,155,107,58,115,62,108,58,35,225,108,58,184,131,109,58,50,38,110,58,144,200,110,58,210,106,111,58,249,12,112,58,4,175,112,58,244,80,113,58,199,242,113,58,127,148,114,58,26,54,115,58,154,215,115,58,254,120,116,58,69,26,117,58,112,187,117,58,127,92,118,58,113,253,118,58,72,158,119,58,1,63,120,58,158,223,120,58,31,128,121,58,130,32,122,58,201,192,122,58,243,96,123,58,1,1,124,58,241,160,124,58,196,64,125,58,122,224,125,
58,20,128,126,58,143,31,127,58,238,190,127,58,24,47,128,58,170,126,128,58,45,206,128,58,161,29,129,58,7,109,129,58,94,188,129,58,166,11,130,58,223,90,130,58,9,170,130,58,36,249,130,58,48,72,131,58,45,151,131,58,28,230,131,58,251,52,132,58,202,131,132,58,139,210,132,58,61,33,133,58,223,111,133,58,114,190,133,58,246,12,134,58,107,91,134,58,208,169,134,58,38,248,134,58,108,70,135,58,163,148,135,58,202,226,135,58,226,48,136,58,235,126,136,58,228,204,136,58,205,26,137,58,167,104,137,58,113,182,137,58,
43,4,138,58,214,81,138,58,113,159,138,58,252,236,138,58,119,58,139,58,226,135,139,58,62,213,139,58,137,34,140,58,197,111,140,58,241,188,140,58,13,10,141,58,24,87,141,58,20,164,141,58,255,240,141,58,219,61,142,58,166,138,142,58,97,215,142,58,12,36,143,58,166,112,143,58,48,189,143,58,170,9,144,58,20,86,144,58,109,162,144,58,182,238,144,58,238,58,145,58,22,135,145,58,46,211,145,58,53,31,146,58,43,107,146,58,17,183,146,58,230,2,147,58,170,78,147,58,94,154,147,58,1,230,147,58,147,49,148,58,21,125,148,
58,133,200,148,58,229,19,149,58,52,95,149,58,114,170,149,58,159,245,149,58,188,64,150,58,199,139,150,58,193,214,150,58,170,33,151,58,130,108,151,58,73,183,151,58,255,1,152,58,164,76,152,58,55,151,152,58,185,225,152,58,42,44,153,58,138,118,153,58,216,192,153,58,21,11,154,58,65,85,154,58,91,159,154,58,100,233,154,58,91,51,155,58,65,125,155,58,21,199,155,58,216,16,156,58,137,90,156,58,40,164,156,58,182,237,156,58,50,55,157,58,157,128,157,58,245,201,157,58,60,19,158,58,113,92,158,58,149,165,158,58,166,
238,158,58,166,55,159,58,147,128,159,58,111,201,159,58,57,18,160,58,240,90,160,58,150,163,160,58,42,236,160,58,171,52,161,58,27,125,161,58,120,197,161,58,195,13,162,58,252,85,162,58,34,158,162,58,55,230,162,58,57,46,163,58,40,118,163,58,6,190,163,58,209,5,164,58,137,77,164,58,48,149,164,58,195,220,164,58,68,36,165,58,179,107,165,58,15,179,165,58,89,250,165,58,143,65,166,58,180,136,166,58,197,207,166,58,196,22,167,58,176,93,167,58,138,164,167,58,80,235,167,58,4,50,168,58,165,120,168,58,51,191,168,
58,174,5,169,58,23,76,169,58,108,146,169,58,174,216,169,58,221,30,170,58,250,100,170,58,3,171,170,58,249,240,170,58,220,54,171,58,172,124,171,58,104,194,171,58,18,8,172,58,168,77,172,58,43,147,172,58,155,216,172,58,247,29,173,58,64,99,173,58,118,168,173,58,152,237,173,58,166,50,174,58,162,119,174,58,138,188,174,58,94,1,175,58,31,70,175,58,204,138,175,58,101,207,175,58,235,19,176,58,94,88,176,58,188,156,176,58,7,225,176,58,62,37,177,58,98,105,177,58,113,173,177,58,109,241,177,58,85,53,178,58,41,121,
178,58,234,188,178,58,150,0,179,58,46,68,179,58,179,135,179,58,35,203,179,58,127,14,180,58,199,81,180,58,252,148,180,58,28,216,180,58,40,27,181,58,31,94,181,58,3,161,181,58,210,227,181,58,141,38,182,58,52,105,182,58,199,171,182,58,69,238,182,58,175,48,183,58,4,115,183,58,69,181,183,58,114,247,183,58,138,57,184,58,141,123,184,58,125,189,184,58,87,255,184,58,29,65,185,58,207,130,185,58,107,196,185,58,244,5,186,58,103,71,186,58,198,136,186,58,16,202,186,58,69,11,187,58,102,76,187,58,114,141,187,58,104,
206,187,58,75,15,188,58,24,80,188,58,208,144,188,58,115,209,188,58,2,18,189,58,123,82,189,58,224,146,189,58,47,211,189,58,105,19,190,58,142,83,190,58,158,147,190,58,153,211,190,58,127,19,191,58,80,83,191,58,11,147,191,58,177,210,191,58,66,18,192,58,190,81,192,58,36,145,192,58,117,208,192,58,177,15,193,58,215,78,193,58,232,141,193,58,227,204,193,58,201,11,194,58,153,74,194,58,84,137,194,58,250,199,194,58,137,6,195,58,4,69,195,58,104,131,195,58,183,193,195,58,240,255,195,58,20,62,196,58,34,124,196,
58,26,186,196,58,252,247,196,58,201,53,197,58,128,115,197,58,32,177,197,58,172,238,197,58,33,44,198,58,128,105,198,58,201,166,198,58,253,227,198,58,26,33,199,58,33,94,199,58,19,155,199,58,238,215,199,58,179,20,200,58,98,81,200,58,251,141,200,58,126,202,200,58,235,6,201,58,65,67,201,58,129,127,201,58,171,187,201,58,191,247,201,58,188,51,202,58,163,111,202,58,116,171,202,58,46,231,202,58,210,34,203,58,96,94,203,58,215,153,203,58,56,213,203,58,130,16,204,58,181,75,204,58,211,134,204,58,217,193,204,58,
201,252,204,58,162,55,205,58,101,114,205,58,17,173,205,58,167,231,205,58,37,34,206,58,141,92,206,58,223,150,206,58,25,209,206,58,61,11,207,58,74,69,207,58,64,127,207,58,31,185,207,58,231,242,207,58,153,44,208,58,51,102,208,58,183,159,208,58,36,217,208,58,121,18,209,58,184,75,209,58,223,132,209,58,240,189,209,58,233,246,209,58,203,47,210,58,150,104,210,58,74,161,210,58,231,217,210,58,109,18,211,58,219,74,211,58,50,131,211,58,114,187,211,58,155,243,211,58,172,43,212,58,166,99,212,58,137,155,212,58,
84,211,212,58,8,11,213,58,164,66,213,58,41,122,213,58,151,177,213,58,237,232,213,58,44,32,214,58,83,87,214,58,98,142,214,58,90,197,214,58,58,252,214,58,3,51,215,58,180,105,215,58,77,160,215,58,207,214,215,58,57,13,216,58,139,67,216,58,198,121,216,58,233,175,216,58,244,229,216,58,231,27,217,58,194,81,217,58,134,135,217,58,50,189,217,58,197,242,217,58,65,40,218,58,165,93,218,58,241,146,218,58,37,200,218,58,65,253,218,58,69,50,219,58,49,103,219,58,5,156,219,58,193,208,219,58,100,5,220,58,240,57,220,
58,99,110,220,58,191,162,220,58,2,215,220,58,45,11,221,58,63,63,221,58,58,115,221,58,28,167,221,58,230,218,221,58,151,14,222,58,49,66,222,58,178,117,222,58,26,169,222,58,106,220,222,58,162,15,223,58,193,66,223,58,200,117,223,58,183,168,223,58,141,219,223,58,74,14,224,58,239,64,224,58,123,115,224,58,239,165,224,58,74,216,224,58,141,10,225,58,183,60,225,58,200,110,225,58,193,160,225,58,161,210,225,58,104,4,226,58,23,54,226,58,173,103,226,58,42,153,226,58,142,202,226,58,218,251,226,58,12,45,227,58,38,
94,227,58,39,143,227,58,15,192,227,58,222,240,227,58,149,33,228,58,50,82,228,58,183,130,228,58,34,179,228,58,116,227,228,58,174,19,229,58,206,67,229,58,214,115,229,58,196,163,229,58,153,211,229,58,86,3,230,58,249,50,230,58,130,98,230,58,243,145,230,58,75,193,230,58,137,240,230,58,174,31,231,58,186,78,231,58,173,125,231,58,134,172,231,58,70,219,231,58,237,9,232,58,123,56,232,58,239,102,232,58,74,149,232,58,139,195,232,58,179,241,232,58,194,31,233,58,183,77,233,58,147,123,233,58,85,169,233,58,254,214,
233,58,141,4,234,58,3,50,234,58,95,95,234,58,162,140,234,58,203,185,234,58,219,230,234,58,209,19,235,58,173,64,235,58,112,109,235,58,25,154,235,58,168,198,235,58,30,243,235,58,122,31,236,58,188,75,236,58,228,119,236,58,243,163,236,58,232,207,236,58,195,251,236,58,133,39,237,58,44,83,237,58,186,126,237,58,46,170,237,58,136,213,237,58,200,0,238,58,238,43,238,58,250,86,238,58,236,129,238,58,197,172,238,58,131,215,238,58,39,2,239,58,178,44,239,58,34,87,239,58,120,129,239,58,181,171,239,58,215,213,239,
58,223,255,239,58,205,41,240,58,161,83,240,58,90,125,240,58,250,166,240,58,127,208,240,58,234,249,240,58,59,35,241,58,114,76,241,58,143,117,241,58,145,158,241,58,121,199,241,58,70,240,241,58,250,24,242,58,147,65,242,58,18,106,242,58,118,146,242,58,192,186,242,58,240,226,242,58,5,11,243,58,0,51,243,58,225,90,243,58,167,130,243,58,82,170,243,58,228,209,243,58,90,249,243,58,182,32,244,58,248,71,244,58,31,111,244,58,44,150,244,58,30,189,244,58,245,227,244,58,178,10,245,58,84,49,245,58,220,87,245,58,73,
126,245,58,155,164,245,58,211,202,245,58,240,240,245,58,243,22,246,58,218,60,246,58,167,98,246,58,89,136,246,58,241,173,246,58,110,211,246,58,208,248,246,58,23,30,247,58,67,67,247,58,85,104,247,58,75,141,247,58,39,178,247,58,232,214,247,58,142,251,247,58,26,32,248,58,138,68,248,58,223,104,248,58,26,141,248,58,57,177,248,58,62,213,248,58,40,249,248,58,246,28,249,58,170,64,249,58,67,100,249,58,192,135,249,58,35,171,249,58,107,206,249,58,151,241,249,58,169,20,250,58,159,55,250,58,122,90,250,58,58,125,
250,58,223,159,250,58,105,194,250,58,216,228,250,58,43,7,251,58,100,41,251,58,129,75,251,58,131,109,251,58,106,143,251,58,53,177,251,58,229,210,251,58,122,244,251,58,244,21,252,58,83,55,252,58,150,88,252,58,190,121,252,58,202,154,252,58,187,187,252,58,145,220,252,58,76,253,252,58,235,29,253,58,111,62,253,58,215,94,253,58,36,127,253,58,86,159,253,58,108,191,253,58,103,223,253,58,70,255,253,58,10,31,254,58,178,62,254,58,63,94,254,58,176,125,254,58,6,157,254,58,64,188,254,58,95,219,254,58,99,250,254,
58,74,25,255,58,22,56,255,58,199,86,255,58,92,117,255,58,213,147,255,58,51,178,255,58,117,208,255,58,156,238,255,58,83,6,0,59,75,21,0,59,53,36,0,59,16,51,0,59,223,65,0,59,159,80,0,59,81,95,0,59,246,109,0,59,140,124,0,59,21,139,0,59,144,153,0,59,253,167,0,59,92,182,0,59,173,196,0,59,241,210,0,59,38,225,0,59,78,239,0,59,103,253,0,59,115,11,1,59,113,25,1,59,96,39,1,59,66,53,1,59,22,67,1,59,220,80,1,59,148,94,1,59,63,108,1,59,219,121,1,59,105,135,1,59,233,148,1,59,91,162,1,59,192,175,1,59,22,189,1,59,
94,202,1,59,152,215,1,59,197,228,1,59,227,241,1,59,243,254,1,59,246,11,2,59,234,24,2,59,208,37,2,59,168,50,2,59,115,63,2,59,47,76,2,59,221,88,2,59,125,101,2,59,15,114,2,59,147,126,2,59,9,139,2,59,113,151,2,59,202,163,2,59,22,176,2,59,84,188,2,59,131,200,2,59,165,212,2,59,184,224,2,59,189,236,2,59,181,248,2,59,158,4,3,59,121,16,3,59,70,28,3,59,4,40,3,59,181,51,3,59,88,63,3,59,236,74,3,59,114,86,3,59,234,97,3,59,84,109,3,59,176,120,3,59,254,131,3,59,61,143,3,59,111,154,3,59,146,165,3,59,167,176,3,59,
174,187,3,59,167,198,3,59,145,209,3,59,110,220,3,59,60,231,3,59,252,241,3,59,174,252,3,59,81,7,4,59,231,17,4,59,110,28,4,59,231,38,4,59,82,49,4,59,175,59,4,59,253,69,4,59,61,80,4,59,111,90,4,59,147,100,4,59,168,110,4,59,176,120,4,59,169,130,4,59,148,140,4,59,112,150,4,59,62,160,4,59,254,169,4,59,176,179,4,59,84,189,4,59,233,198,4,59,112,208,4,59,233,217,4,59,84,227,4,59,176,236,4,59,254,245,4,59,61,255,4,59,111,8,5,59,146,17,5,59,167,26,5,59,173,35,5,59,166,44,5,59,143,53,5,59,107,62,5,59,56,71,5,
59,248,79,5,59,168,88,5,59,75,97,5,59,223,105,5,59,101,114,5,59,220,122,5,59,69,131,5,59,160,139,5,59,237,147,5,59,43,156,5,59,91,164,5,59,124,172,5,59,143,180,5,59,148,188,5,59,139,196,5,59,115,204,5,59,76,212,5,59,24,220,5,59,213,227,5,59,132,235,5,59,36,243,5,59,182,250,5,59,58,2,6,59,175,9,6,59,22,17,6,59,110,24,6,59,185,31,6,59,244,38,6,59,34,46,6,59,65,53,6,59,82,60,6,59,84,67,6,59,72,74,6,59,45,81,6,59,4,88,6,59,205,94,6,59,135,101,6,59,51,108,6,59,209,114,6,59,96,121,6,59,225,127,6,59,83,
134,6,59,183,140,6,59,12,147,6,59,83,153,6,59,140,159,6,59,182,165,6,59,210,171,6,59,224,177,6,59,223,183,6,59,207,189,6,59,177,195,6,59,133,201,6,59,75,207,6,59,1,213,6,59,170,218,6,59,68,224,6,59,207,229,6,59,77,235,6,59,187,240,6,59,28,246,6,59,110,251,6,59,177,0,7,59,230,5,7,59,12,11,7,59,37,16,7,59,46,21,7,59,41,26,7,59,22,31,7,59,244,35,7,59,196,40,7,59,134,45,7,59,57,50,7,59,221,54,7,59,115,59,7,59,251,63,7,59,116,68,7,59,222,72,7,59,59,77,7,59,136,81,7,59,200,85,7,59,248,89,7,59,27,94,7,59,
47,98,7,59,52,102,7,59,43,106,7,59,19,110,7,59,237,113,7,59,185,117,7,59,118,121,7,59,37,125,7,59,197,128,7,59,86,132,7,59,217,135,7,59,78,139,7,59,180,142,7,59,12,146,7,59,85,149,7,59,144,152,7,59,188,155,7,59,218,158,7,59,234,161,7,59,235,164,7,59,221,167,7,59,193,170,7,59,150,173,7,59,93,176,7,59,22,179,7,59,192,181,7,59,91,184,7,59,232,186,7,59,103,189,7,59,215,191,7,59,56,194,7,59,139,196,7,59,208,198,7,59,6,201,7,59,46,203,7,59,71,205,7,59,82,207,7,59,78,209,7,59,60,211,7,59,27,213,7,59,236,
214,7,59,174,216,7,59,98,218,7,59,7,220,7,59,158,221,7,59,38,223,7,59,160,224,7,59,11,226,7,59,104,227,7,59,182,228,7,59,246,229,7,59,40,231,7,59,74,232,7,59,95,233,7,59,101,234,7,59,92,235,7,59,69,236,7,59,32,237,7,59,236,237,7,59,169,238,7,59,88,239,7,59,249,239,7,59,139,240,7,59,15,241,7,59,132,241,7,59,235,241,7,59,67,242,7,59,140,242,7,59,200,242,7,59,244,242,7,59,19,243,7,59,34,243,7,59,36,243,7,59,23,243,7,59,251,242,7,59,209,242,7,59,152,242,7,59,81,242,7,59,252,241,7,59,152,241,7,59,38,241,
7,59,165,240,7,59,21,240,7,59,120,239,7,59,203,238,7,59,17,238,7,59,71,237,7,59,112,236,7,59,138,235,7,59,149,234,7,59,146,233,7,59,128,232,7,59,96,231,7,59,50,230,7,59,245,228,7,59,170,227,7,59,80,226,7,59,232,224,7,59,113,223,7,59,236,221,7,59,89,220,7,59,183,218,7,59,6,217,7,59,72,215,7,59,122,213,7,59,159,211,7,59,180,209,7,59,188,207,7,59,181,205,7,59,159,203,7,59,123,201,7,59,73,199,7,59,8,197,7,59,185,194,7,59,92,192,7,59,240,189,7,59,117,187,7,59,236,184,7,59,85,182,7,59,175,179,7,59,251,
176,7,59,57,174,7,59,104,171,7,59,137,168,7,59,155,165,7,59,159,162,7,59,148,159,7,59,124,156,7,59,84,153,7,59,31,150,7,59,219,146,7,59,136,143,7,59,39,140,7,59,184,136,7,59,58,133,7,59,174,129,7,59,20,126,7,59,107,122,7,59,180,118,7,59,239,114,7,59,27,111,7,59,56,107,7,59,72,103,7,59,73,99,7,59,60,95,7,59,32,91,7,59,246,86,7,59,189,82,7,59,119,78,7,59,34,74,7,59,190,69,7,59,76,65,7,59,204,60,7,59,62,56,7,59,161,51,7,59,246,46,7,59,61,42,7,59,117,37,7,59,159,32,7,59,186,27,7,59,200,22,7,59,199,17,
7,59,183,12,7,59,154,7,7,59,110,2,7,59,51,253,6,59,235,247,6,59,148,242,6,59,47,237,6,59,187,231,6,59,57,226,6,59,169,220,6,59,11,215,6,59,95,209,6,59,164,203,6,59,218,197,6,59,3,192,6,59,29,186,6,59,41,180,6,59,39,174,6,59,23,168,6,59,248,161,6,59,203,155,6,59,144,149,6,59,70,143,6,59,239,136,6,59,137,130,6,59,21,124,6,59,146,117,6,59,1,111,6,59,99,104,6,59,182,97,6,59,250,90,6,59,49,84,6,59,89,77,6,59,115,70,6,59,127,63,6,59,125,56,6,59,108,49,6,59,77,42,6,59,32,35,6,59,229,27,6,59,156,20,6,59,
69,13,6,59,223,5,6,59,107,254,5,59,233,246,5,59,89,239,5,59,187,231,5,59,14,224,5,59,84,216,5,59,139,208,5,59,180,200,5,59,207,192,5,59,220,184,5,59,219,176,5,59,204,168,5,59,174,160,5,59,130,152,5,59,73,144,5,59,1,136,5,59,171,127,5,59,71,119,5,59,213,110,5,59,84,102,5,59,198,93,5,59,42,85,5,59,127,76,5,59,199,67,5,59,0,59,5,59,43,50,5,59,72,41,5,59,88,32,5,59,89,23,5,59,76,14,5,59,49,5,5,59,8,252,4,59,209,242,4,59,140,233,4,59,57,224,4,59,215,214,4,59,104,205,4,59,235,195,4,59,96,186,4,59,199,176,
4,59,32,167,4,59,106,157,4,59,167,147,4,59,214,137,4,59,247,127,4,59,10,118,4,59,15,108,4,59,6,98,4,59,239,87,4,59,202,77,4,59,151,67,4,59,86,57,4,59,8,47,4,59,171,36,4,59,64,26,4,59,200,15,4,59,65,5,4,59,173,250,3,59,11,240,3,59,90,229,3,59,156,218,3,59,208,207,3,59,246,196,3,59,15,186,3,59,25,175,3,59,21,164,3,59,4,153,3,59,229,141,3,59,184,130,3,59,125,119,3,59,52,108,3,59,221,96,3,59,121,85,3,59,7,74,3,59,134,62,3,59,248,50,3,59,93,39,3,59,179,27,3,59,252,15,3,59,55,4,3,59,100,248,2,59,131,236,
2,59,148,224,2,59,152,212,2,59,142,200,2,59,118,188,2,59,81,176,2,59,29,164,2,59,220,151,2,59,141,139,2,59,49,127,2,59,198,114,2,59,78,102,2,59,201,89,2,59,53,77,2,59,148,64,2,59,229,51,2,59,41,39,2,59,95,26,2,59,135,13,2,59,161,0,2,59,174,243,1,59,173,230,1,59,158,217,1,59,130,204,1,59,88,191,1,59,33,178,1,59,220,164,1,59,137,151,1,59,41,138,1,59,187,124,1,59,63,111,1,59,182,97,1,59,31,84,1,59,123,70,1,59,201,56,1,59,9,43,1,59,60,29,1,59,98,15,1,59,122,1,1,59,132,243,0,59,129,229,0,59,112,215,0,
59,81,201,0,59,38,187,0,59,236,172,0,59,165,158,0,59,81,144,0,59,239,129,0,59,128,115,0,59,3,101,0,59,120,86,0,59,225,71,0,59,59,57,0,59,137,42,0,59,200,27,0,59,251,12,0,59,63,252,255,58,111,222,255,58,131,192,255,58,124,162,255,58,91,132,255,58,30,102,255,58,199,71,255,58,86,41,255,58,201,10,255,58,34,236,254,58,96,205,254,58,131,174,254,58,139,143,254,58,121,112,254,58,77,81,254,58,5,50,254,58,163,18,254,58,38,243,253,58,143,211,253,58,221,179,253,58,16,148,253,58,41,116,253,58,40,84,253,58,11,
52,253,58,213,19,253,58,131,243,252,58,24,211,252,58,145,178,252,58,241,145,252,58,53,113,252,58,96,80,252,58,112,47,252,58,101,14,252,58,65,237,251,58,1,204,251,58,168,170,251,58,52,137,251,58,166,103,251,58,253,69,251,58,58,36,251,58,93,2,251,58,102,224,250,58,84,190,250,58,40,156,250,58,226,121,250,58,130,87,250,58,7,53,250,58,114,18,250,58,195,239,249,58,250,204,249,58,23,170,249,58,26,135,249,58,3,100,249,58,209,64,249,58,134,29,249,58,32,250,248,58,160,214,248,58,7,179,248,58,83,143,248,58,
134,107,248,58,158,71,248,58,156,35,248,58,129,255,247,58,76,219,247,58,252,182,247,58,147,146,247,58,16,110,247,58,115,73,247,58,188,36,247,58,236,255,246,58,1,219,246,58,253,181,246,58,223,144,246,58,168,107,246,58,86,70,246,58,235,32,246,58,102,251,245,58,200,213,245,58,16,176,245,58,62,138,245,58,82,100,245,58,77,62,245,58,46,24,245,58,246,241,244,58,164,203,244,58,57,165,244,58,180,126,244,58,21,88,244,58,93,49,244,58,140,10,244,58,161,227,243,58,157,188,243,58,127,149,243,58,72,110,243,58,247,
70,243,58,141,31,243,58,10,248,242,58,109,208,242,58,183,168,242,58,232,128,242,58,255,88,242,58,254,48,242,58,227,8,242,58,174,224,241,58,97,184,241,58,250,143,241,58,122,103,241,58,225,62,241,58,47,22,241,58,99,237,240,58,127,196,240,58,130,155,240,58,107,114,240,58,59,73,240,58,243,31,240,58,145,246,239,58,22,205,239,58,131,163,239,58,214,121,239,58,16,80,239,58,50,38,239,58,59,252,238,58,42,210,238,58,1,168,238,58,191,125,238,58,100,83,238,58,241,40,238,58,100,254,237,58,191,211,237,58,1,169,
237,58,43,126,237,58,59,83,237,58,51,40,237,58,19,253,236,58,217,209,236,58,135,166,236,58,29,123,236,58,153,79,236,58,254,35,236,58,73,248,235,58,124,204,235,58,151,160,235,58,153,116,235,58,131,72,235,58,84,28,235,58,12,240,234,58,173,195,234,58,53,151,234,58,164,106,234,58,251,61,234,58,58,17,234,58,96,228,233,58,111,183,233,58,100,138,233,58,66,93,233,58,7,48,233,58,181,2,233,58,74,213,232,58,198,167,232,58,43,122,232,58,119,76,232,58,172,30,232,58,200,240,231,58,204,194,231,58,184,148,231,58,
140,102,231,58,72,56,231,58,236,9,231,58,121,219,230,58,237,172,230,58,73,126,230,58,141,79,230,58,185,32,230,58,206,241,229,58,203,194,229,58,175,147,229,58,124,100,229,58,50,53,229,58,207,5,229,58,85,214,228,58,195,166,228,58,25,119,228,58,87,71,228,58,126,23,228,58,142,231,227,58,133,183,227,58,101,135,227,58,46,87,227,58,222,38,227,58,120,246,226,58,250,197,226,58,100,149,226,58,183,100,226,58,242,51,226,58,22,3,226,58,35,210,225,58,24,161,225,58,246,111,225,58,188,62,225,58,107,13,225,58,3,220,
224,58,132,170,224,58,237,120,224,58,63,71,224,58,122,21,224,58,157,227,223,58,170,177,223,58,159,127,223,58,125,77,223,58,68,27,223,58,244,232,222,58,141,182,222,58,15,132,222,58,122,81,222,58,206,30,222,58,11,236,221,58,49,185,221,58,64,134,221,58,56,83,221,58,26,32,221,58,228,236,220,58,152,185,220,58,52,134,220,58,186,82,220,58,41,31,220,58,130,235,219,58,196,183,219,58,239,131,219,58,3,80,219,58,1,28,219,58,232,231,218,58,184,179,218,58,114,127,218,58,21,75,218,58,162,22,218,58,24,226,217,58,
120,173,217,58,193,120,217,58,244,67,217,58,17,15,217,58,23,218,216,58,6,165,216,58,223,111,216,58,162,58,216,58,79,5,216,58,229,207,215,58,101,154,215,58,207,100,215,58,35,47,215,58,96,249,214,58,135,195,214,58,152,141,214,58,147,87,214,58,120,33,214,58,71,235,213,58,0,181,213,58,163,126,213,58,47,72,213,58,166,17,213,58,7,219,212,58,82,164,212,58,135,109,212,58,166,54,212,58,175,255,211,58,162,200,211,58,128,145,211,58,71,90,211,58,249,34,211,58,150,235,210,58,28,180,210,58,141,124,210,58,232,68,
210,58,46,13,210,58,94,213,209,58,120,157,209,58,125,101,209,58,108,45,209,58,70,245,208,58,10,189,208,58,184,132,208,58,82,76,208,58,214,19,208,58,68,219,207,58,157,162,207,58,225,105,207,58,15,49,207,58,40,248,206,58,44,191,206,58,27,134,206,58,244,76,206,58,184,19,206,58,103,218,205,58,1,161,205,58,134,103,205,58,245,45,205,58,80,244,204,58,149,186,204,58,197,128,204,58,225,70,204,58,231,12,204,58,217,210,203,58,181,152,203,58,125,94,203,58,48,36,203,58,206,233,202,58,87,175,202,58,203,116,202,
58,43,58,202,58,118,255,201,58,172,196,201,58,205,137,201,58,218,78,201,58,210,19,201,58,181,216,200,58,132,157,200,58,63,98,200,58,228,38,200,58,118,235,199,58,242,175,199,58,91,116,199,58,174,56,199,58,238,252,198,58,25,193,198,58,47,133,198,58,50,73,198,58,32,13,198,58,250,208,197,58,191,148,197,58,112,88,197,58,13,28,197,58,150,223,196,58,11,163,196,58,108,102,196,58,184,41,196,58,240,236,195,58,21,176,195,58,37,115,195,58,33,54,195,58,10,249,194,58,222,187,194,58,159,126,194,58,75,65,194,58,
228,3,194,58,105,198,193,58,218,136,193,58,56,75,193,58,129,13,193,58,183,207,192,58,217,145,192,58,232,83,192,58,227,21,192,58,202,215,191,58,157,153,191,58,93,91,191,58,10,29,191,58,163,222,190,58,40,160,190,58,154,97,190,58,249,34,190,58,68,228,189,58,124,165,189,58,160,102,189,58,178,39,189,58,175,232,188,58,154,169,188,58,113,106,188,58,53,43,188,58,230,235,187,58,132,172,187,58,15,109,187,58,134,45,187,58,235,237,186,58,60,174,186,58,122,110,186,58,166,46,186,58,190,238,185,58,195,174,185,58,
182,110,185,58,150,46,185,58,98,238,184,58,28,174,184,58,195,109,184,58,88,45,184,58,217,236,183,58,72,172,183,58,165,107,183,58,238,42,183,58,37,234,182,58,73,169,182,58,91,104,182,58,90,39,182,58,71,230,181,58,33,165,181,58,233,99,181,58,158,34,181,58,65,225,180,58,209,159,180,58,79,94,180,58,187,28,180,58,20,219,179,58,91,153,179,58,144,87,179,58,179,21,179,58,196,211,178,58,194,145,178,58,174,79,178,58,136,13,178,58,80,203,177,58,6,137,177,58,170,70,177,58,60,4,177,58,188,193,176,58,43,127,176,
58,135,60,176,58,209,249,175,58,10,183,175,58,48,116,175,58,69,49,175,58,72,238,174,58,58,171,174,58,25,104,174,58,231,36,174,58,164,225,173,58,79,158,173,58,232,90,173,58,111,23,173,58,229,211,172,58,74,144,172,58,157,76,172,58,223,8,172,58,15,197,171,58,46,129,171,58,60,61,171,58,56,249,170,58,35,181,170,58,252,112,170,58,197,44,170,58,124,232,169,58,34,164,169,58,183,95,169,58,59,27,169,58,173,214,168,58,15,146,168,58,96,77,168,58,159,8,168,58,206,195,167,58,235,126,167,58,248,57,167,58,244,244,
166,58,223,175,166,58,185,106,166,58,131,37,166,58,59,224,165,58,227,154,165,58,122,85,165,58,1,16,165,58,119,202,164,58,220,132,164,58,49,63,164,58,117,249,163,58,168,179,163,58,203,109,163,58,222,39,163,58,224,225,162,58,210,155,162,58,179,85,162,58,132,15,162,58,69,201,161,58,246,130,161,58,150,60,161,58,38,246,160,58,166,175,160,58,21,105,160,58,117,34,160,58,196,219,159,58,3,149,159,58,50,78,159,58,82,7,159,58,97,192,158,58,96,121,158,58,80,50,158,58,47,235,157,58,255,163,157,58,190,92,157,58,
110,21,157,58,15,206,156,58,159,134,156,58,32,63,156,58,145,247,155,58,242,175,155,58,68,104,155,58,134,32,155,58,185,216,154,58,220,144,154,58,239,72,154,58,244,0,154,58,232,184,153,58,206,112,153,58,164,40,153,58,106,224,152,58,33,152,152,58,201,79,152,58,98,7,152,58,236,190,151,58,102,118,151,58,209,45,151,58,45,229,150,58,122,156,150,58,184,83,150,58,231,10,150,58,7,194,149,58,24,121,149,58,26,48,149,58,13,231,148,58,241,157,148,58,198,84,148,58,141,11,148,58,68,194,147,58,237,120,147,58,136,
47,147,58,19,230,146,58,144,156,146,58,254,82,146,58,94,9,146,58,175,191,145,58,242,117,145,58,38,44,145,58,75,226,144,58,98,152,144,58,107,78,144,58,101,4,144,58,81,186,143,58,47,112,143,58,255,37,143,58,192,219,142,58,115,145,142,58,24,71,142,58,174,252,141,58,55,178,141,58,177,103,141,58,29,29,141,58,124,210,140,58,204,135,140,58,14,61,140,58,67,242,139,58,105,167,139,58,130,92,139,58,141,17,139,58,138,198,138,58,121,123,138,58,90,48,138,58,46,229,137,58,244,153,137,58,173,78,137,58,88,3,137,58,
245,183,136,58,133,108,136,58,7,33,136,58,123,213,135,58,227,137,135,58,60,62,135,58,137,242,134,58,200,166,134,58,250,90,134,58,30,15,134,58,53,195,133,58,63,119,133,58,60,43,133,58,44,223,132,58,14,147,132,58,228,70,132,58,172,250,131,58,103,174,131,58,22,98,131,58,183,21,131,58,75,201,130,58,211,124,130,58,77,48,130,58,187,227,129,58,28,151,129,58,112,74,129,58,184,253,128,58,242,176,128,58,32,100,128,58,66,23,128,58,173,148,127,58,190,250,126,58,181,96,126,58,147,198,125,58,89,44,125,58,5,146,
124,58,153,247,123,58,20,93,123,58,118,194,122,58,191,39,122,58,240,140,121,58,9,242,120,58,9,87,120,58,240,187,119,58,192,32,119,58,119,133,118,58,22,234,117,58,157,78,117,58,11,179,116,58,98,23,116,58,161,123,115,58,200,223,114,58,216,67,114,58,207,167,113,58,175,11,113,58,119,111,112,58,40,211,111,58,194,54,111,58,68,154,110,58,174,253,109,58,2,97,109,58,62,196,108,58,99,39,108,58,113,138,107,58,104,237,106,58,72,80,106,58,18,179,105,58,196,21,105,58,96,120,104,58,229,218,103,58,84,61,103,58,172,
159,102,58,238,1,102,58,25,100,101,58,46,198,100,58,45,40,100,58,21,138,99,58,232,235,98,58,164,77,98,58,74,175,97,58,219,16,97,58,85,114,96,58,186,211,95,58,9,53,95,58,67,150,94,58,103,247,93,58,117,88,93,58,110,185,92,58,82,26,92,58,32,123,91,58,217,219,90,58,125,60,90,58,11,157,89,58,133,253,88,58,234,93,88,58,58,190,87,58,117,30,87,58,155,126,86,58,172,222,85,58,169,62,85,58,145,158,84,58,101,254,83,58,37,94,83,58,208,189,82,58,102,29,82,58,233,124,81,58,87,220,80,58,177,59,80,58,247,154,79,58,
42,250,78,58,72,89,78,58,83,184,77,58,73,23,77,58,44,118,76,58,252,212,75,58,184,51,75,58,96,146,74,58,245,240,73,58,119,79,73,58,229,173,72,58,64,12,72,58,136,106,71,58,189,200,70,58,223,38,70,58,238,132,69,58,235,226,68,58,212,64,68,58,171,158,67,58,111,252,66,58,32,90,66,58,191,183,65,58,75,21,65,58,197,114,64,58,45,208,63,58,130,45,63,58,198,138,62,58,247,231,61,58,22,69,61,58,35,162,60,58,30,255,59,58,7,92,59,58,223,184,58,58,165,21,58,58,89,114,57,58,252,206,56,58,141,43,56,58,13,136,55,58,
123,228,54,58,216,64,54,58,36,157,53,58,95,249,52,58,137,85,52,58,161,177,51,58,169,13,51,58,160,105,50,58,134,197,49,58,91,33,49,58,32,125,48,58,212,216,47,58,119,52,47,58,11,144,46,58,141,235,45,58,0,71,45,58,98,162,44,58,180,253,43,58,245,88,43,58,39,180,42,58,73,15,42,58,91,106,41,58,93,197,40,58,79,32,40,58,50,123,39,58,4,214,38,58,200,48,38,58,124,139,37,58,32,230,36,58,181,64,36,58,59,155,35,58,178,245,34,58,25,80,34,58,114,170,33,58,187,4,33,58,246,94,32,58,33,185,31,58,62,19,31,58,76,109,
30,58,76,199,29,58,61,33,29,58,31,123,28,58,243,212,27,58,184,46,27,58,112,136,26,58,25,226,25,58,180,59,25,58,64,149,24,58,191,238,23,58,48,72,23,58,147,161,22,58,232,250,21,58,47,84,21,58,105,173,20,58,149,6,20,58,179,95,19,58,197,184,18,58,200,17,18,58,191,106,17,58,168,195,16,58,132,28,16,58,82,117,15,58,20,206,14,58,201,38,14,58,113,127,13,58,12,216,12,58,154,48,12,58,28,137,11,58,145,225,10,58,249,57,10,58,85,146,9,58,165,234,8,58,232,66,8,58,31,155,7,58,74,243,6,58,104,75,6,58,123,163,5,58,
129,251,4,58,124,83,4,58,107,171,3,58,78,3,3,58,37,91,2,58,241,178,1,58,177,10,1,58,102,98,0,58,30,116,255,57,90,35,254,57,127,210,252,57,142,129,251,57,134,48,250,57,105,223,248,57,53,142,247,57,235,60,246,57,140,235,244,57,23,154,243,57,141,72,242,57,238,246,240,57,57,165,239,57,111,83,238,57,145,1,237,57,158,175,235,57,150,93,234,57,121,11,233,57,73,185,231,57,4,103,230,57,171,20,229,57,63,194,227,57,190,111,226,57,43,29,225,57,131,202,223,57,200,119,222,57,251,36,221,57,26,210,219,57,38,127,218,
57,31,44,217,57,6,217,215,57,219,133,214,57,157,50,213,57,77,223,211,57,235,139,210,57,119,56,209,57,241,228,207,57,90,145,206,57,177,61,205,57,247,233,203,57,44,150,202,57,80,66,201,57,98,238,199,57,100,154,198,57,86,70,197,57,55,242,195,57,8,158,194,57,200,73,193,57,121,245,191,57,25,161,190,57,170,76,189,57,43,248,187,57,157,163,186,57,255,78,185,57,83,250,183,57,151,165,182,57,204,80,181,57,243,251,179,57,11,167,178,57,20,82,177,57,15,253,175,57,252,167,174,57,219,82,173,57,172,253,171,57,111,
168,170,57,37,83,169,57,205,253,167,57,104,168,166,57,246,82,165,57,118,253,163,57,234,167,162,57,81,82,161,57,171,252,159,57,249,166,158,57,59,81,157,57,112,251,155,57,153,165,154,57,183,79,153,57,200,249,151,57,206,163,150,57,201,77,149,57,184,247,147,57,156,161,146,57,117,75,145,57,67,245,143,57,7,159,142,57,191,72,141,57,110,242,139,57,17,156,138,57,171,69,137,57,59,239,135,57,193,152,134,57,61,66,133,57,175,235,131,57,24,149,130,57,120,62,129,57,156,207,127,57,55,34,125,57,192,116,122,57,55,
199,119,57,157,25,117,57,243,107,114,57,55,190,111,57,107,16,109,57,143,98,106,57,164,180,103,57,169,6,101,57,158,88,98,57,133,170,95,57,93,252,92,57,39,78,90,57,226,159,87,57,144,241,84,57,48,67,82,57,195,148,79,57,73,230,76,57,195,55,74,57,48,137,71,57,145,218,68,57,230,43,66,57,48,125,63,57,110,206,60,57,162,31,58,57,202,112,55,57,233,193,52,57,253,18,50,57,8,100,47,57,9,181,44,57,1,6,42,57,240,86,39,57,215,167,36,57,181,248,33,57,139,73,31,57,89,154,28,57,31,235,25,57,223,59,23,57,151,140,20,
57,73,221,17,57,245,45,15,57,154,126,12,57,58,207,9,57,212,31,7,57,105,112,4,57,249,192,1,57,9,35,254,56,23,196,248,56,29,101,243,56,27,6,238,56,19,167,232,56,4,72,227,56,239,232,221,56,213,137,216,56,182,42,211,56,147,203,205,56,109,108,200,56,67,13,195,56,23,174,189,56,234,78,184,56,187,239,178,56,139,144,173,56,91,49,168,56,44,210,162,56,253,114,157,56,209,19,152,56,166,180,146,56,126,85,141,56,90,246,135,56,57,151,130,56,58,112,122,56,12,178,111,56,233,243,100,56,210,53,90,56,201,119,79,56,206,
185,68,56,227,251,57,56,9,62,47,56,65,128,36,56,140,194,25,56,236,4,15,56,97,71,4,56,218,19,243,55,33,153,221,55,153,30,200,55,70,164,178,55,42,42,157,55,69,176,135,55,57,109,100,55,97,122,57,55,8,136,14,55,101,44,199,54,150,147,98,54,83,66,91,53,79,224,233,181,70,87,144,182,68,53,230,182,2,9,30,183,190,246,72,183,210,227,115,183,29,104,143,183,248,221,164,183,120,83,186,183,155,200,207,183,95,61,229,183,193,177,250,183,223,18,8,184,171,204,18,184,67,134,29,184,165,63,40,184,208,248,50,184,196,177,
61,184,127,106,72,184,0,35,83,184,70,219,93,184,79,147,104,184,28,75,115,184,169,2,126,184,252,92,132,184,130,184,137,184,232,19,143,184,44,111,148,184,78,202,153,184,77,37,159,184,41,128,164,184,226,218,169,184,117,53,175,184,228,143,180,184,46,234,185,184,81,68,191,184,78,158,196,184,35,248,201,184,209,81,207,184,86,171,212,184,178,4,218,184,229,93,223,184,238,182,228,184,204,15,234,184,127,104,239,184,6,193,244,184,97,25,250,184,143,113,255,184,200,100,2,185,177,16,5,185,131,188,7,185,62,104,10,
185,224,19,13,185,106,191,15,185,220,106,18,185,54,22,21,185,118,193,23,185,157,108,26,185,170,23,29,185,158,194,31,185,119,109,34,185,54,24,37,185,218,194,39,185,100,109,42,185,210,23,45,185,36,194,47,185,91,108,50,185,118,22,53,185,116,192,55,185,85,106,58,185,26,20,61,185,193,189,63,185,75,103,66,185,183,16,69,185,5,186,71,185,53,99,74,185,70,12,77,185,56,181,79,185,11,94,82,185,190,6,85,185,82,175,87,185,198,87,90,185,25,0,93,185,75,168,95,185,93,80,98,185,78,248,100,185,29,160,103,185,202,71,
106,185,85,239,108,185,190,150,111,185,5,62,114,185,41,229,116,185,41,140,119,185,6,51,122,185,191,217,124,185,85,128,127,185,99,19,129,185,137,102,130,185,157,185,131,185,158,12,133,185,141,95,134,185,105,178,135,185,50,5,137,185,231,87,138,185,138,170,139,185,25,253,140,185,148,79,142,185,252,161,143,185,80,244,144,185,144,70,146,185,188,152,147,185,212,234,148,185,216,60,150,185,199,142,151,185,161,224,152,185,102,50,154,185,23,132,155,185,178,213,156,185,57,39,158,185,170,120,159,185,5,202,160,
185,75,27,162,185,123,108,163,185,149,189,164,185,153,14,166,185,135,95,167,185,95,176,168,185,32,1,170,185,203,81,171,185,94,162,172,185,219,242,173,185,65,67,175,185,144,147,176,185,200,227,177,185,232,51,179,185,240,131,180,185,225,211,181,185,186,35,183,185,123,115,184,185,36,195,185,185,181,18,187,185,45,98,188,185,141,177,189,185,212,0,191,185,2,80,192,185,23,159,193,185,19,238,194,185,246,60,196,185,192,139,197,185,112,218,198,185,6,41,200,185,131,119,201,185,230,197,202,185,46,20,204,185,
93,98,205,185,113,176,206,185,107,254,207,185,74,76,209,185,14,154,210,185,183,231,211,185,70,53,213,185,185,130,214,185,17,208,215,185,78,29,217,185,111,106,218,185,116,183,219,185,94,4,221,185,43,81,222,185,221,157,223,185,114,234,224,185,234,54,226,185,71,131,227,185,134,207,228,185,169,27,230,185,175,103,231,185,152,179,232,185,99,255,233,185,18,75,235,185,162,150,236,185,21,226,237,185,107,45,239,185,162,120,240,185,188,195,241,185,183,14,243,185,148,89,244,185,83,164,245,185,243,238,246,185,
116,57,248,185,214,131,249,185,26,206,250,185,62,24,252,185,67,98,253,185,41,172,254,185,239,245,255,185,203,159,0,186,142,68,1,186,66,233,1,186,229,141,2,186,120,50,3,186,252,214,3,186,111,123,4,186,209,31,5,186,35,196,5,186,101,104,6,186,150,12,7,186,183,176,7,186,199,84,8,186,199,248,8,186,181,156,9,186,147,64,10,186,96,228,10,186,28,136,11,186,199,43,12,186,96,207,12,186,233,114,13,186,96,22,14,186,198,185,14,186,27,93,15,186,94,0,16,186,144,163,16,186,176,70,17,186,190,233,17,186,187,140,18,
186,166,47,19,186,127,210,19,186,70,117,20,186,252,23,21,186,159,186,21,186,48,93,22,186,175,255,22,186,27,162,23,186,118,68,24,186,190,230,24,186,243,136,25,186,22,43,26,186,39,205,26,186,36,111,27,186,15,17,28,186,232,178,28,186,173,84,29,186,96,246,29,186,255,151,30,186,140,57,31,186,5,219,31,186,107,124,32,186,190,29,33,186,254,190,33,186,42,96,34,186,67,1,35,186,72,162,35,186,58,67,36,186,24,228,36,186,227,132,37,186,153,37,38,186,60,198,38,186,203,102,39,186,70,7,40,186,173,167,40,186,0,72,
41,186,63,232,41,186,105,136,42,186,127,40,43,186,129,200,43,186,110,104,44,186,71,8,45,186,12,168,45,186,187,71,46,186,86,231,46,186,221,134,47,186,78,38,48,186,171,197,48,186,242,100,49,186,37,4,50,186,66,163,50,186,75,66,51,186,62,225,51,186,28,128,52,186,228,30,53,186,151,189,53,186,53,92,54,186,189,250,54,186,48,153,55,186,141,55,56,186,212,213,56,186,5,116,57,186,33,18,58,186,38,176,58,186,22,78,59,186,240,235,59,186,179,137,60,186,96,39,61,186,247,196,61,186,120,98,62,186,226,255,62,186,54,
157,63,186,116,58,64,186,154,215,64,186,171,116,65,186,164,17,66,186,135,174,66,186,83,75,67,186,8,232,67,186,166,132,68,186,45,33,69,186,157,189,69,186,246,89,70,186,56,246,70,186,98,146,71,186,117,46,72,186,113,202,72,186,85,102,73,186,34,2,74,186,215,157,74,186,116,57,75,186,250,212,75,186,104,112,76,186,190,11,77,186,252,166,77,186,34,66,78,186,48,221,78,186,39,120,79,186,4,19,80,186,202,173,80,186,120,72,81,186,13,227,81,186,137,125,82,186,238,23,83,186,57,178,83,186,108,76,84,186,135,230,84,
186,136,128,85,186,113,26,86,186,65,180,86,186,249,77,87,186,151,231,87,186,28,129,88,186,136,26,89,186,219,179,89,186,20,77,90,186,53,230,90,186,60,127,91,186,41,24,92,186,253,176,92,186,184,73,93,186,89,226,93,186,224,122,94,186,78,19,95,186,162,171,95,186,220,67,96,186,252,219,96,186,2,116,97,186,238,11,98,186,192,163,98,186,120,59,99,186,21,211,99,186,153,106,100,186,1,2,101,186,80,153,101,186,132,48,102,186,158,199,102,186,157,94,103,186,129,245,103,186,75,140,104,186,249,34,105,186,141,185,
105,186,7,80,106,186,101,230,106,186,168,124,107,186,208,18,108,186,221,168,108,186,207,62,109,186,165,212,109,186,96,106,110,186,0,0,111,186,132,149,111,186,237,42,112,186,58,192,112,186,108,85,113,186,130,234,113,186,124,127,114,186,90,20,115,186,29,169,115,186,196,61,116,186,78,210,116,186,189,102,117,186,15,251,117,186,69,143,118,186,95,35,119,186,93,183,119,186,63,75,120,186,4,223,120,186,172,114,121,186,56,6,122,186,168,153,122,186],"i8",4,y.a+593920);
Q([250,44,123,186,48,192,123,186,74,83,124,186,70,230,124,186,38,121,125,186,232,11,126,186,142,158,126,186,22,49,127,186,130,195,127,186,232,42,128,186,1,116,128,186,10,189,128,186,6,6,129,186,242,78,129,186,208,151,129,186,159,224,129,186,95,41,130,186,16,114,130,186,179,186,130,186,70,3,131,186,203,75,131,186,64,148,131,186,167,220,131,186,255,36,132,186,72,109,132,186,129,181,132,186,172,253,132,186,199,69,133,186,211,141,133,186,208,213,133,186,190,29,134,186,157,101,134,186,108,173,134,186,
44,245,134,186,221,60,135,186,126,132,135,186,16,204,135,186,147,19,136,186,6,91,136,186,106,162,136,186,190,233,136,186,2,49,137,186,56,120,137,186,93,191,137,186,115,6,138,186,121,77,138,186,112,148,138,186,87,219,138,186,46,34,139,186,245,104,139,186,173,175,139,186,84,246,139,186,236,60,140,186,116,131,140,186,236,201,140,186,85,16,141,186,173,86,141,186,245,156,141,186,45,227,141,186,86,41,142,186,110,111,142,186,118,181,142,186,110,251,142,186,85,65,143,186,45,135,143,186,244,204,143,186,171,
18,144,186,82,88,144,186,233,157,144,186,111,227,144,186,229,40,145,186,74,110,145,186,159,179,145,186,228,248,145,186,24,62,146,186,60,131,146,186,79,200,146,186,82,13,147,186,68,82,147,186,37,151,147,186,246,219,147,186,182,32,148,186,101,101,148,186,4,170,148,186,146,238,148,186,15,51,149,186,124,119,149,186,215,187,149,186,34,0,150,186,92,68,150,186,133,136,150,186,157,204,150,186,164,16,151,186,154,84,151,186,127,152,151,186,83,220,151,186,22,32,152,186,199,99,152,186,104,167,152,186,248,234,
152,186,118,46,153,186,227,113,153,186,63,181,153,186,137,248,153,186,195,59,154,186,235,126,154,186,1,194,154,186,7,5,155,186,251,71,155,186,221,138,155,186,174,205,155,186,110,16,156,186,28,83,156,186,184,149,156,186,67,216,156,186,188,26,157,186,36,93,157,186,122,159,157,186,191,225,157,186,241,35,158,186,18,102,158,186,34,168,158,186,31,234,158,186,11,44,159,186,229,109,159,186,173,175,159,186,99,241,159,186,7,51,160,186,153,116,160,186,26,182,160,186,136,247,160,186,228,56,161,186,47,122,161,
186,103,187,161,186,141,252,161,186,161,61,162,186,163,126,162,186,147,191,162,186,112,0,163,186,59,65,163,186,244,129,163,186,155,194,163,186,48,3,164,186,178,67,164,186,34,132,164,186,127,196,164,186,202,4,165,186,3,69,165,186,41,133,165,186,61,197,165,186,62,5,166,186,44,69,166,186,9,133,166,186,210,196,166,186,137,4,167,186,45,68,167,186,191,131,167,186,62,195,167,186,170,2,168,186,3,66,168,186,74,129,168,186,126,192,168,186,159,255,168,186,173,62,169,186,169,125,169,186,145,188,169,186,103,251,
169,186,42,58,170,186,217,120,170,186,118,183,170,186,0,246,170,186,119,52,171,186,218,114,171,186,43,177,171,186,104,239,171,186,147,45,172,186,170,107,172,186,174,169,172,186,158,231,172,186,124,37,173,186,70,99,173,186,253,160,173,186,161,222,173,186,49,28,174,186,174,89,174,186,24,151,174,186,110,212,174,186,177,17,175,186,224,78,175,186,252,139,175,186,4,201,175,186,249,5,176,186,218,66,176,186,168,127,176,186,98,188,176,186,8,249,176,186,155,53,177,186,26,114,177,186,133,174,177,186,221,234,
177,186,33,39,178,186,81,99,178,186,109,159,178,186,118,219,178,186,106,23,179,186,75,83,179,186,24,143,179,186,209,202,179,186,118,6,180,186,7,66,180,186,132,125,180,186,237,184,180,186,67,244,180,186,132,47,181,186,176,106,181,186,201,165,181,186,206,224,181,186,191,27,182,186,155,86,182,186,99,145,182,186,23,204,182,186,183,6,183,186,66,65,183,186,185,123,183,186,28,182,183,186,107,240,183,186,165,42,184,186,202,100,184,186,220,158,184,186,217,216,184,186,193,18,185,186,149,76,185,186,85,134,185,
186,0,192,185,186,150,249,185,186,24,51,186,186,133,108,186,186,222,165,186,186,34,223,186,186,81,24,187,186,108,81,187,186,113,138,187,186,99,195,187,186,63,252,187,186,7,53,188,186,186,109,188,186,88,166,188,186,225,222,188,186,85,23,189,186,181,79,189,186,255,135,189,186,53,192,189,186,86,248,189,186,98,48,190,186,88,104,190,186,58,160,190,186,7,216,190,186,190,15,191,186,97,71,191,186,238,126,191,186,102,182,191,186,202,237,191,186,23,37,192,186,80,92,192,186,116,147,192,186,130,202,192,186,123,
1,193,186,95,56,193,186,45,111,193,186,230,165,193,186,138,220,193,186,25,19,194,186,146,73,194,186,245,127,194,186,67,182,194,186,124,236,194,186,159,34,195,186,173,88,195,186,165,142,195,186,136,196,195,186,85,250,195,186,13,48,196,186,175,101,196,186,59,155,196,186,178,208,196,186,19,6,197,186,94,59,197,186,148,112,197,186,179,165,197,186,190,218,197,186,178,15,198,186,144,68,198,186,89,121,198,186,12,174,198,186,169,226,198,186,48,23,199,186,162,75,199,186,253,127,199,186,66,180,199,186,114,232,
199,186,139,28,200,186,143,80,200,186,124,132,200,186,84,184,200,186,21,236,200,186,192,31,201,186,85,83,201,186,212,134,201,186,61,186,201,186,144,237,201,186,205,32,202,186,243,83,202,186,3,135,202,186,253,185,202,186,224,236,202,186,174,31,203,186,101,82,203,186,6,133,203,186,144,183,203,186,4,234,203,186,97,28,204,186,169,78,204,186,217,128,204,186,244,178,204,186,248,228,204,186,229,22,205,186,188,72,205,186,124,122,205,186,38,172,205,186,185,221,205,186,54,15,206,186,156,64,206,186,236,113,
206,186,37,163,206,186,71,212,206,186,82,5,207,186,71,54,207,186,37,103,207,186,237,151,207,186,157,200,207,186,55,249,207,186,186,41,208,186,38,90,208,186,124,138,208,186,186,186,208,186,226,234,208,186,243,26,209,186,237,74,209,186,208,122,209,186,156,170,209,186,81,218,209,186,239,9,210,186,118,57,210,186,230,104,210,186,63,152,210,186,129,199,210,186,172,246,210,186,192,37,211,186,189,84,211,186,162,131,211,186,113,178,211,186,40,225,211,186,200,15,212,186,81,62,212,186,195,108,212,186,29,155,
212,186,97,201,212,186,140,247,212,186,161,37,213,186,158,83,213,186,132,129,213,186,83,175,213,186,10,221,213,186,170,10,214,186,51,56,214,186,164,101,214,186,254,146,214,186,64,192,214,186,107,237,214,186,126,26,215,186,122,71,215,186,94,116,215,186,43,161,215,186,224,205,215,186,126,250,215,186,4,39,216,186,114,83,216,186,201,127,216,186,8,172,216,186,47,216,216,186,63,4,217,186,55,48,217,186,24,92,217,186,224,135,217,186,145,179,217,186,42,223,217,186,172,10,218,186,21,54,218,186,103,97,218,186,
161,140,218,186,195,183,218,186,206,226,218,186,192,13,219,186,154,56,219,186,93,99,219,186,8,142,219,186,154,184,219,186,21,227,219,186,120,13,220,186,195,55,220,186,245,97,220,186,16,140,220,186,19,182,220,186,253,223,220,186,208,9,221,186,138,51,221,186,45,93,221,186,183,134,221,186,41,176,221,186,131,217,221,186,197,2,222,186,238,43,222,186,0,85,222,186,249,125,222,186,218,166,222,186,162,207,222,186,83,248,222,186,235,32,223,186,107,73,223,186,210,113,223,186,34,154,223,186,88,194,223,186,119,
234,223,186,125,18,224,186,107,58,224,186,64,98,224,186,253,137,224,186,161,177,224,186,45,217,224,186,161,0,225,186,252,39,225,186,62,79,225,186,105,118,225,186,122,157,225,186,115,196,225,186,83,235,225,186,27,18,226,186,203,56,226,186,97,95,226,186,223,133,226,186,69,172,226,186,146,210,226,186,198,248,226,186,225,30,227,186,228,68,227,186,206,106,227,186,159,144,227,186,88,182,227,186,248,219,227,186,127,1,228,186,237,38,228,186,67,76,228,186,127,113,228,186,163,150,228,186,174,187,228,186,161,
224,228,186,122,5,229,186,58,42,229,186,226,78,229,186,113,115,229,186,231,151,229,186,67,188,229,186,135,224,229,186,178,4,230,186,196,40,230,186,189,76,230,186,157,112,230,186,100,148,230,186,18,184,230,186,167,219,230,186,35,255,230,186,134,34,231,186,208,69,231,186,0,105,231,186,24,140,231,186,22,175,231,186,251,209,231,186,200,244,231,186,122,23,232,186,20,58,232,186,149,92,232,186,252,126,232,186,75,161,232,186,127,195,232,186,155,229,232,186,158,7,233,186,135,41,233,186,87,75,233,186,14,109,
233,186,171,142,233,186,47,176,233,186,154,209,233,186,235,242,233,186,35,20,234,186,66,53,234,186,71,86,234,186,51,119,234,186,5,152,234,186,191,184,234,186,94,217,234,186,228,249,234,186,81,26,235,186,164,58,235,186,222,90,235,186,255,122,235,186,5,155,235,186,243,186,235,186,199,218,235,186,129,250,235,186,34,26,236,186,169,57,236,186,22,89,236,186,106,120,236,186,165,151,236,186,198,182,236,186,205,213,236,186,186,244,236,186,142,19,237,186,73,50,237,186,233,80,237,186,112,111,237,186,222,141,
237,186,49,172,237,186,107,202,237,186,139,232,237,186,146,6,238,186,126,36,238,186,81,66,238,186,10,96,238,186,170,125,238,186,47,155,238,186,155,184,238,186,237,213,238,186,37,243,238,186,68,16,239,186,72,45,239,186,51,74,239,186,3,103,239,186,186,131,239,186,87,160,239,186,219,188,239,186,68,217,239,186,147,245,239,186,200,17,240,186,228,45,240,186,229,73,240,186,205,101,240,186,155,129,240,186,78,157,240,186,232,184,240,186,104,212,240,186,205,239,240,186,25,11,241,186,74,38,241,186,98,65,241,
186,95,92,241,186,67,119,241,186,12,146,241,186,188,172,241,186,81,199,241,186,204,225,241,186,45,252,241,186,116,22,242,186,161,48,242,186,179,74,242,186,172,100,242,186,138,126,242,186,78,152,242,186,248,177,242,186,136,203,242,186,254,228,242,186,89,254,242,186,155,23,243,186,194,48,243,186,206,73,243,186,193,98,243,186,153,123,243,186,87,148,243,186,251,172,243,186,133,197,243,186,244,221,243,186,73,246,243,186,132,14,244,186,164,38,244,186,170,62,244,186,150,86,244,186,103,110,244,186,30,134,
244,186,187,157,244,186,61,181,244,186,165,204,244,186,243,227,244,186,38,251,244,186,63,18,245,186,61,41,245,186,33,64,245,186,235,86,245,186,154,109,245,186,47,132,245,186,169,154,245,186,9,177,245,186,79,199,245,186,122,221,245,186,138,243,245,186,128,9,246,186,92,31,246,186,29,53,246,186,195,74,246,186,79,96,246,186,193,117,246,186,24,139,246,186,84,160,246,186,118,181,246,186,125,202,246,186,106,223,246,186,60,244,246,186,244,8,247,186,145,29,247,186,20,50,247,186,124,70,247,186,201,90,247,186,
252,110,247,186,20,131,247,186,17,151,247,186,244,170,247,186,188,190,247,186,106,210,247,186,253,229,247,186,117,249,247,186,211,12,248,186,22,32,248,186,62,51,248,186,76,70,248,186,63,89,248,186,23,108,248,186,212,126,248,186,119,145,248,186,255,163,248,186,109,182,248,186,191,200,248,186,247,218,248,186,21,237,248,186,23,255,248,186,255,16,249,186,204,34,249,186,126,52,249,186,21,70,249,186,146,87,249,186,244,104,249,186,59,122,249,186,103,139,249,186,121,156,249,186,112,173,249,186,76,190,249,
186,13,207,249,186,179,223,249,186,62,240,249,186,175,0,250,186,5,17,250,186,64,33,250,186,96,49,250,186,101,65,250,186,80,81,250,186,31,97,250,186,212,112,250,186,110,128,250,186,236,143,250,186,81,159,250,186,154,174,250,186,200,189,250,186,219,204,250,186,212,219,250,186,177,234,250,186,116,249,250,186,28,8,251,186,169,22,251,186,26,37,251,186,113,51,251,186,173,65,251,186,207,79,251,186,213,93,251,186,192,107,251,186,144,121,251,186,69,135,251,186,224,148,251,186,95,162,251,186,195,175,251,186,
13,189,251,186,59,202,251,186,79,215,251,186,71,228,251,186,37,241,251,186,231,253,251,186,143,10,252,186,27,23,252,186,141,35,252,186,227,47,252,186,31,60,252,186,63,72,252,186,69,84,252,186,47,96,252,186,254,107,252,186,179,119,252,186,76,131,252,186,202,142,252,186,46,154,252,186,118,165,252,186,163,176,252,186,181,187,252,186,172,198,252,186,136,209,252,186,73,220,252,186,239,230,252,186,122,241,252,186,233,251,252,186,62,6,253,186,120,16,253,186,150,26,253,186,154,36,253,186,130,46,253,186,79,
56,253,186,1,66,253,186,152,75,253,186,20,85,253,186,117,94,253,186,187,103,253,186,230,112,253,186,245,121,253,186,234,130,253,186,195,139,253,186,130,148,253,186,37,157,253,186,173,165,253,186,26,174,253,186,107,182,253,186,162,190,253,186,190,198,253,186,190,206,253,186,163,214,253,186,110,222,253,186,29,230,253,186,177,237,253,186,41,245,253,186,135,252,253,186,202,3,254,186,241,10,254,186,253,17,254,186,238,24,254,186,196,31,254,186,127,38,254,186,31,45,254,186,163,51,254,186,13,58,254,186,91,
64,254,186,142,70,254,186,166,76,254,186,162,82,254,186,132,88,254,186,75,94,254,186,246,99,254,186,134,105,254,186,251,110,254,186,85,116,254,186,147,121,254,186,183,126,254,186,191,131,254,186,172,136,254,186,126,141,254,186,53,146,254,186,209,150,254,186,81,155,254,186,183,159,254,186,1,164,254,186,48,168,254,186,68,172,254,186,61,176,254,186,26,180,254,186,220,183,254,186,132,187,254,186,16,191,254,186,128,194,254,186,214,197,254,186,17,201,254,186,48,204,254,186,52,207,254,186,29,210,254,186,
235,212,254,186,158,215,254,186,53,218,254,186,178,220,254,186,19,223,254,186,89,225,254,186,132,227,254,186,147,229,254,186,136,231,254,186,97,233,254,186,31,235,254,186,195,236,254,186,74,238,254,186,183,239,254,186,9,241,254,186,63,242,254,186,90,243,254,186,91,244,254,186,63,245,254,186,9,246,254,186,184,246,254,186,75,247,254,186,196,247,254,186,33,248,254,186,99,248,254,186,138,248,254,186,150,248,254,186,134,248,254,186,92,248,254,186,22,248,254,186,181,247,254,186,57,247,254,186,162,246,254,
186,240,245,254,186,35,245,254,186,58,244,254,186,54,243,254,186,24,242,254,186,222,240,254,186,137,239,254,186,25,238,254,186,141,236,254,186,231,234,254,186,38,233,254,186,73,231,254,186,81,229,254,186,63,227,254,186,17,225,254,186,200,222,254,186,99,220,254,186,228,217,254,186,74,215,254,186,149,212,254,186,196,209,254,186,216,206,254,186,210,203,254,186,176,200,254,186,115,197,254,186,27,194,254,186,168,190,254,186,26,187,254,186,113,183,254,186,173,179,254,186,206,175,254,186,211,171,254,186,
190,167,254,186,141,163,254,186,66,159,254,186,219,154,254,186,90,150,254,186,189,145,254,186,5,141,254,186,51,136,254,186,69,131,254,186,60,126,254,186,24,121,254,186,218,115,254,186,128,110,254,186,11,105,254,186,123,99,254,186,208,93,254,186,10,88,254,186,42,82,254,186,46,76,254,186,23,70,254,186,229,63,254,186,152,57,254,186,48,51,254,186,174,44,254,186,16,38,254,186,87,31,254,186,131,24,254,186,149,17,254,186,139,10,254,186,103,3,254,186,39,252,253,186,205,244,253,186,87,237,253,186,199,229,
253,186,28,222,253,186,86,214,253,186,117,206,253,186,121,198,253,186,98,190,253,186,48,182,253,186,227,173,253,186,124,165,253,186,249,156,253,186,92,148,253,186,164,139,253,186,209,130,253,186,227,121,253,186,218,112,253,186,182,103,253,186,120,94,253,186,30,85,253,186,170,75,253,186,27,66,253,186,113,56,253,186,172,46,253,186,205,36,253,186,210,26,253,186,189,16,253,186,141,6,253,186,66,252,252,186,221,241,252,186,92,231,252,186,193,220,252,186,11,210,252,186,58,199,252,186,79,188,252,186,73,177,
252,186,40,166,252,186,236,154,252,186,150,143,252,186,36,132,252,186,152,120,252,186,242,108,252,186,48,97,252,186,84,85,252,186,94,73,252,186,76,61,252,186,32,49,252,186,217,36,252,186,119,24,252,186,251,11,252,186,100,255,251,186,179,242,251,186,231,229,251,186,0,217,251,186,254,203,251,186,226,190,251,186,172,177,251,186,90,164,251,186,238,150,251,186,104,137,251,186,199,123,251,186,11,110,251,186,53,96,251,186,68,82,251,186,56,68,251,186,18,54,251,186,210,39,251,186,118,25,251,186,1,11,251,186,
113,252,250,186,198,237,250,186,1,223,250,186,33,208,250,186,39,193,250,186,18,178,250,186,227,162,250,186,153,147,250,186,53,132,250,186,182,116,250,186,29,101,250,186,106,85,250,186,156,69,250,186,179,53,250,186,177,37,250,186,147,21,250,186,92,5,250,186,10,245,249,186,157,228,249,186,22,212,249,186,117,195,249,186,186,178,249,186,228,161,249,186,243,144,249,186,233,127,249,186,196,110,249,186,133,93,249,186,43,76,249,186,183,58,249,186,41,41,249,186,129,23,249,186,190,5,249,186,225,243,248,186,
234,225,248,186,216,207,248,186,172,189,248,186,102,171,248,186,6,153,248,186,140,134,248,186,247,115,248,186,72,97,248,186,127,78,248,186,156,59,248,186,158,40,248,186,135,21,248,186,85,2,248,186,9,239,247,186,163,219,247,186,35,200,247,186,137,180,247,186,212,160,247,186,6,141,247,186,29,121,247,186,27,101,247,186,254,80,247,186,199,60,247,186,119,40,247,186,12,20,247,186,135,255,246,186,232,234,246,186,47,214,246,186,92,193,246,186,111,172,246,186,104,151,246,186,72,130,246,186,13,109,246,186,
184,87,246,186,73,66,246,186,193,44,246,186,30,23,246,186,98,1,246,186,140,235,245,186,155,213,245,186,145,191,245,186,109,169,245,186,48,147,245,186,216,124,245,186,102,102,245,186,219,79,245,186,54,57,245,186,119,34,245,186,158,11,245,186,172,244,244,186,160,221,244,186,122,198,244,186,58,175,244,186,224,151,244,186,109,128,244,186,224,104,244,186,58,81,244,186,121,57,244,186,159,33,244,186,171,9,244,186,158,241,243,186,119,217,243,186,55,193,243,186,220,168,243,186,104,144,243,186,219,119,243,
186,52,95,243,186,115,70,243,186,153,45,243,186,165,20,243,186,152,251,242,186,113,226,242,186,49,201,242,186,215,175,242,186,100,150,242,186,215,124,242,186,49,99,242,186,113,73,242,186,152,47,242,186,165,21,242,186,153,251,241,186,115,225,241,186,53,199,241,186,220,172,241,186,107,146,241,186,224,119,241,186,59,93,241,186,126,66,241,186,167,39,241,186,182,12,241,186,173,241,240,186,138,214,240,186,78,187,240,186,248,159,240,186,138,132,240,186,2,105,240,186,97,77,240,186,166,49,240,186,211,21,240,
186,230,249,239,186,224,221,239,186,193,193,239,186,137,165,239,186,55,137,239,186,205,108,239,186,73,80,239,186,173,51,239,186,247,22,239,186,40,250,238,186,64,221,238,186,63,192,238,186,37,163,238,186,242,133,238,186,166,104,238,186,66,75,238,186,196,45,238,186,45,16,238,186,125,242,237,186,180,212,237,186,211,182,237,186,216,152,237,186,196,122,237,186,152,92,237,186,83,62,237,186,245,31,237,186,126,1,237,186,238,226,236,186,70,196,236,186,132,165,236,186,170,134,236,186,183,103,236,186,172,72,
236,186,136,41,236,186,74,10,236,186,245,234,235,186,134,203,235,186,255,171,235,186,95,140,235,186,167,108,235,186,214,76,235,186,236,44,235,186,234,12,235,186,207,236,234,186,155,204,234,186,79,172,234,186,235,139,234,186,109,107,234,186,216,74,234,186,42,42,234,186,99,9,234,186,132,232,233,186,140,199,233,186,124,166,233,186,84,133,233,186,19,100,233,186,185,66,233,186,72,33,233,186,190,255,232,186,27,222,232,186,97,188,232,186,142,154,232,186,162,120,232,186,159,86,232,186,131,52,232,186,78,18,
232,186,2,240,231,186,157,205,231,186,32,171,231,186,139,136,231,186,222,101,231,186,25,67,231,186,59,32,231,186,69,253,230,186,56,218,230,186,18,183,230,186,212,147,230,186,125,112,230,186,15,77,230,186,137,41,230,186,235,5,230,186,53,226,229,186,102,190,229,186,128,154,229,186,130,118,229,186,108,82,229,186,62,46,229,186,248,9,229,186,154,229,228,186,36,193,228,186,151,156,228,186,241,119,228,186,52,83,228,186,95,46,228,186,114,9,228,186,109,228,227,186,81,191,227,186,29,154,227,186,209,116,227,
186,109,79,227,186,242,41,227,186,95,4,227,186,180,222,226,186,242,184,226,186,24,147,226,186,39,109,226,186,29,71,226,186,253,32,226,186,197,250,225,186,117,212,225,186,13,174,225,186,143,135,225,186,248,96,225,186,74,58,225,186,133,19,225,186,168,236,224,186,180,197,224,186,169,158,224,186,134,119,224,186,75,80,224,186,250,40,224,186,145,1,224,186,17,218,223,186,121,178,223,186,202,138,223,186,4,99,223,186,39,59,223,186,50,19,223,186,38,235,222,186,3,195,222,186,201,154,222,186,119,114,222,186,
15,74,222,186,143,33,222,186,249,248,221,186,75,208,221,186,134,167,221,186,170,126,221,186,183,85,221,186,173,44,221,186,140,3,221,186,84,218,220,186,5,177,220,186,160,135,220,186,35,94,220,186,143,52,220,186,229,10,220,186,35,225,219,186,75,183,219,186,92,141,219,186,86,99,219,186,57,57,219,186,6,15,219,186,188,228,218,186,91,186,218,186,227,143,218,186,85,101,218,186,176,58,218,186,244,15,218,186,34,229,217,186,57,186,217,186,57,143,217,186,35,100,217,186,246,56,217,186,179,13,217,186,89,226,216,
186,233,182,216,186,98,139,216,186,197,95,216,186,17,52,216,186,71,8,216,186,103,220,215,186,112,176,215,186,99,132,215,186,63,88,215,186,5,44,215,186,181,255,214,186,78,211,214,186,209,166,214,186,62,122,214,186,149,77,214,186,213,32,214,186,0,244,213,186,20,199,213,186,18,154,213,186,250,108,213,186,203,63,213,186,135,18,213,186,44,229,212,186,188,183,212,186,53,138,212,186,153,92,212,186,230,46,212,186,30,1,212,186,63,211,211,186,75,165,211,186,64,119,211,186,32,73,211,186,234,26,211,186,158,236,
210,186,60,190,210,186,197,143,210,186,55,97,210,186,148,50,210,186,219,3,210,186,12,213,209,186,40,166,209,186,46,119,209,186,30,72,209,186,249,24,209,186,190,233,208,186,109,186,208,186,7,139,208,186,139,91,208,186,250,43,208,186,83,252,207,186,151,204,207,186,197,156,207,186,222,108,207,186,225,60,207,186,207,12,207,186,168,220,206,186,107,172,206,186,25,124,206,186,177,75,206,186,52,27,206,186,162,234,205,186,251,185,205,186,62,137,205,186,108,88,205,186,133,39,205,186,137,246,204,186,119,197,
204,186,81,148,204,186,21,99,204,186,196,49,204,186,94,0,204,186,227,206,203,186,83,157,203,186,174,107,203,186,244,57,203,186,37,8,203,186,66,214,202,186,73,164,202,186,59,114,202,186,24,64,202,186,225,13,202,186,149,219,201,186,52,169,201,186,190,118,201,186,51,68,201,186,148,17,201,186,224,222,200,186,23,172,200,186,57,121,200,186,71,70,200,186,64,19,200,186,37,224,199,186,245,172,199,186,177,121,199,186,87,70,199,186,234,18,199,186,104,223,198,186,209,171,198,186,38,120,198,186,103,68,198,186,
147,16,198,186,170,220,197,186,174,168,197,186,157,116,197,186,119,64,197,186,62,12,197,186,240,215,196,186,142,163,196,186,23,111,196,186,141,58,196,186,238,5,196,186,59,209,195,186,116,156,195,186,153,103,195,186,169,50,195,186,166,253,194,186,143,200,194,186,99,147,194,186,36,94,194,186,208,40,194,186,105,243,193,186,238,189,193,186,95,136,193,186,188,82,193,186,5,29,193,186,58,231,192,186,91,177,192,186,105,123,192,186,99,69,192,186,73,15,192,186,28,217,191,186,218,162,191,186,133,108,191,186,
29,54,191,186,160,255,190,186,17,201,190,186,109,146,190,186,182,91,190,186,236,36,190,186,14,238,189,186,28,183,189,186,23,128,189,186,255,72,189,186,211,17,189,186,148,218,188,186,66,163,188,186,220,107,188,186,99,52,188,186,214,252,187,186,54,197,187,186,132,141,187,186,189,85,187,186,228,29,187,186,247,229,186,186,248,173,186,186,229,117,186,186,191,61,186,186,134,5,186,186,58,205,185,186,219,148,185,186,105,92,185,186,228,35,185,186,76,235,184,186,161,178,184,186,227,121,184,186,19,65,184,186,
47,8,184,186,57,207,183,186,48,150,183,186,20,93,183,186,229,35,183,186,164,234,182,186,79,177,182,186,233,119,182,186,111,62,182,186,227,4,182,186,69,203,181,186,147,145,181,186,207,87,181,186,249,29,181,186,16,228,180,186,21,170,180,186,7,112,180,186,231,53,180,186,180,251,179,186,111,193,179,186,24,135,179,186,175,76,179,186,51,18,179,186,164,215,178,186,4,157,178,186,81,98,178,186,140,39,178,186,181,236,177,186,204,177,177,186,209,118,177,186,195,59,177,186,164,0,177,186,114,197,176,186,46,138,
176,186,217,78,176,186,113,19,176,186,248,215,175,186,108,156,175,186,207,96,175,186,32,37,175,186,95,233,174,186,140,173,174,186,167,113,174,186,177,53,174,186,169,249,173,186,143,189,173,186,99,129,173,186,38,69,173,186,215,8,173,186,119,204,172,186,5,144,172,186,129,83,172,186,236,22,172,186,69,218,171,186,141,157,171,186,196,96,171,186,233,35,171,186,252,230,170,186,254,169,170,186,239,108,170,186,207,47,170,186,157,242,169,186,90,181,169,186,6,120,169,186,160,58,169,186,42,253,168,186,162,191,
168,186,9,130,168,186,95,68,168,186,164,6,168,186,216,200,167,186,250,138,167,186,12,77,167,186,13,15,167,186,253,208,166,186,220,146,166,186,170,84,166,186,103,22,166,186,19,216,165,186,175,153,165,186,57,91,165,186,179,28,165,186,28,222,164,186,117,159,164,186,189,96,164,186,244,33,164,186,26,227,163,186,48,164,163,186,54,101,163,186,42,38,163,186,15,231,162,186,226,167,162,186,166,104,162,186,89,41,162,186,251,233,161,186,141,170,161,186,15,107,161,186,128,43,161,186,225,235,160,186,50,172,160,
186,115,108,160,186,163,44,160,186,195,236,159,186,211,172,159,186,211,108,159,186,195,44,159,186,162,236,158,186,114,172,158,186,50,108,158,186,225,43,158,186,129,235,157,186,16,171,157,186,144,106,157,186,0,42,157,186,96,233,156,186,176,168,156,186,240,103,156,186,33,39,156,186,66,230,155,186,83,165,155,186,84,100,155,186,70,35,155,186,40,226,154,186,251,160,154,186,189,95,154,186,113,30,154,186,21,221,153,186,169,155,153,186,46,90,153,186,163,24,153,186,9,215,152,186,96,149,152,186,167,83,152,
186,223,17,152,186,7,208,151,186,33,142,151,186,43,76,151,186,37,10,151,186,17,200,150,186,238,133,150,186,187,67,150,186,121,1,150,186,40,191,149,186,200,124,149,186,90,58,149,186,220,247,148,186,79,181,148,186,179,114,148,186,8,48,148,186,79,237,147,186,134,170,147,186,175,103,147,186,201,36,147,186,212,225,146,186,209,158,146,186,190,91,146,186,157,24,146,186,110,213,145,186,48,146,145,186,227,78,145,186,135,11,145,186,30,200,144,186,165,132,144,186,30,65,144,186,137,253,143,186,229,185,143,186,
51,118,143,186,115,50,143,186,164,238,142,186,199,170,142,186,219,102,142,186,226,34,142,186,218,222,141,186,196,154,141,186,159,86,141,186,109,18,141,186,45,206,140,186,222,137,140,186,130,69,140,186,23,1,140,186,158,188,139,186,24,120,139,186,132,51,139,186,225,238,138,186,49,170,138,186,115,101,138,186,167,32,138,186,206,219,137,186,230,150,137,186,241,81,137,186,238,12,137,186,222,199,136,186,192,130,136,186,148,61,136,186,91,248,135,186,20,179,135,186,192,109,135,186,94,40,135,186,239,226,134,
186,114,157,134,186,232,87,134,186,81,18,134,186,172,204,133,186,250,134,133,186,58,65,133,186,110,251,132,186,148,181,132,186,173,111,132,186,185,41,132,186,183,227,131,186,169,157,131,186,142,87,131,186,101,17,131,186,48,203,130,186,237,132,130,186,158,62,130,186,65,248,129,186,216,177,129,186,98,107,129,186,223,36,129,186,79,222,128,186,179,151,128,186,10,81,128,186,84,10,128,186,34,135,127,186,131,249,126,186,204,107,126,186,251,221,125,186,17,80,125,186,13,194,124,186,241,51,124,186,188,165,
123,186,110,23,123,186,8,137,122,186,136,250,121,186,240,107,121,186,63,221,120,186,118,78,120,186,148,191,119,186,153,48,119,186,134,161,118,186,91,18,118,186,24,131,117,186,188,243,116,186,73,100,116,186,189,212,115,186,25,69,115,186,93,181,114,186,138,37,114,186,158,149,113,186,155,5,113,186,128,117,112,186,77,229,111,186,3,85,111,186,161,196,110,186,39,52,110,186,151,163,109,186,239,18,109,186,47,130,108,186,89,241,107,186,107,96,107,186,102,207,106,186,74,62,106,186,23,173,105,186,205,27,105,
186,109,138,104,186,245,248,103,186,103,103,103,186,194,213,102,186,7,68,102,186,53,178,101,186,76,32,101,186,77,142,100,186,56,252,99,186,12,106,99,186,202,215,98,186,114,69,98,186,4,179,97,186,128,32,97,186,229,141,96,186,53,251,95,186,111,104,95,186,147,213,94,186,162,66,94,186,154,175,93,186,126,28,93,186,75,137,92,186,3,246,91,186,166,98,91,186,51,207,90,186,171,59,90,186,14,168,89,186,91,20,89,186,147,128,88,186,183,236,87,186,197,88,87,186,191,196,86,186,163,48,86,186,115,156,85,186,46,8,85,
186,212,115,84,186,102,223,83,186,227,74,83,186,75,182,82,186,160,33,82,186,223,140,81,186,11,248,80,186,34,99,80,186,37,206,79,186,20,57,79,186,239,163,78,186,182,14,78,186,105,121,77,186,8,228,76,186,148,78,76,186,11,185,75,186,111,35,75,186,192,141,74,186,252,247,73,186,38,98,73,186,59,204,72,186,62,54,72,186,45,160,71,186,9,10,71,186,210,115,70,186,136,221,69,186,42,71,69,186,186,176,68,186,55,26,68,186,161,131,67,186,248,236,66,186,60,86,66,186,110,191,65,186,141,40,65,186,154,145,64,186,148,
250,63,186,124,99,63,186,81,204,62,186,20,53,62,186,197,157,61,186,100,6,61,186,241,110,60,186,108,215,59,186,212,63,59,186,43,168,58,186,112,16,58,186,163,120,57,186,197,224,56,186,213,72,56,186,211,176,55,186,192,24,55,186,155,128,54,186,101,232,53,186,30,80,53,186,197,183,52,186,92,31,52,186,225,134,51,186,85,238,50,186,184,85,50,186,10,189,49,186,75,36,49,186,124,139,48,186,155,242,47,186,171,89,47,186,169,192,46,186,151,39,46,186,116,142,45,186,65,245,44,186,254,91,44,186,170,194,43,186,71,41,
43,186,211,143,42,186,79,246,41,186,186,92,41,186,22,195,40,186,98,41,40,186,159,143,39,186,203,245,38,186,232,91,38,186,245,193,37,186,242,39,37,186,224,141,36,186,191,243,35,186,142,89,35,186,78,191,34,186,255,36,34,186,160,138,33,186,50,240,32,186,182,85,32,186,42,187,31,186,143,32,31,186,230,133,30,186,46,235,29,186,103,80,29,186,145,181,28,186,173,26,28,186,186,127,27,186,185,228,26,186,169,73,26,186,139,174,25,186,95,19,25,186,36,120,24,186,219,220,23,186,133,65,23,186,32,166,22,186,173,10,
22,186,45,111,21,186,159,211,20,186,2,56,20,186,89,156,19,186,161,0,19,186,220,100,18,186,10,201,17,186,42,45,17,186,61,145,16,186,66,245,15,186,59,89,15,186,38,189,14,186,4,33,14,186,213,132,13,186,153,232,12,186,80,76,12,186,250,175,11,186,152,19,11,186,41,119,10,186,173,218,9,186,36,62,9,186,144,161,8,186,238,4,8,186,65,104,7,186,135,203,6,186,192,46,6,186,238,145,5,186,15,245,4,186,37,88,4,186,46,187,3,186,44,30,3,186,30,129,2,186,4,228,1,186,222,70,1,186,173,169,0,186,112,12,0,186,78,222,254,
185,166,163,253,185,232,104,252,185,18,46,251,185,39,243,249,185,37,184,248,185,12,125,247,185,222,65,246,185,153,6,245,185,63,203,243,185,207,143,242,185,73,84,241,185,174,24,240,185,254,220,238,185,57,161,237,185,94,101,236,185,111,41,235,185,106,237,233,185,82,177,232,185,36,117,231,185,226,56,230,185,140,252,228,185,34,192,227,185,164,131,226,185,18,71,225,185,109,10,224,185,179,205,222,185,231,144,221,185,7,84,220,185,19,23,219,185,13,218,217,185,244,156,216,185,200,95,215,185,137,34,214,185,
56,229,212,185,213,167,211,185,95,106,210,185,215,44,209,185,61,239,207,185,145,177,206,185,212,115,205,185,5,54,204,185,36,248,202,185,50,186,201,185,47,124,200,185,27,62,199,185,246,255,197,185,192,193,196,185,122,131,195,185,35,69,194,185,187,6,193,185,68,200,191,185,188,137,190,185,36,75,189,185,125,12,188,185,197,205,186,185,254,142,185,185,40,80,184,185,66,17,183,185,77,210,181,185,73,147,180,185,54,84,179,185,21,21,178,185,228,213,176,185,165,150,175,185,88,87,174,185,253,23,173,185,147,216,
171,185,27,153,170,185,150,89,169,185,2,26,168,185,98,218,166,185,179,154,165,185,248,90,164,185,47,27,163,185,89,219,161,185,118,155,160,185,135,91,159,185,139,27,158,185,130,219,156,185,109,155,155,185,75,91,154,185,30,27,153,185,228,218,151,185,159,154,150,185,78,90,149,185,241,25,148,185,137,217,146,185,22,153,145,185,151,88,144,185,14,24,143,185,121,215,141,185,218,150,140,185,48,86,139,185,124,21,138,185,189,212,136,185,244,147,135,185,33,83,134,185,67,18,133,185,92,209,131,185,108,144,130,
185,113,79,129,185,110,14,128,185,193,154,125,185,149,24,123,185,86,150,120,185,6,20,118,185,164,145,115,185,49,15,113,185,173,140,110,185,24,10,108,185,114,135,105,185,189,4,103,185,247,129,100,185,34,255,97,185,62,124,95,185,74,249,92,185,72,118,90,185,55,243,87,185,23,112,85,185,234,236,82,185,174,105,80,185,102,230,77,185,15,99,75,185,172,223,72,185,61,92,70,185,193,216,67,185,56,85,65,185,164,209,62,185,4,78,60,185,89,202,57,185,162,70,55,185,225,194,52,185,21,63,50,185,63,187,47,185,95,55,45,
185,117,179,42,185,130,47,40,185,133,171,37,185,128,39,35,185,114,163,32,185,91,31,30,185,60,155,27,185,22,23,25,185,231,146,22,185,178,14,20,185,117,138,17,185,49,6,15,185,231,129,12,185,151,253,9,185,65,121,7,185,228,244,4,185,131,112,2,185,56,216,255,184,97,207,250,184,128,198,245,184,151,189,240,184,165,180,235,184,171,171,230,184,171,162,225,184,163,153,220,184,150,144,215,184,131,135,210,184,107,126,205,184,78,117,200,184,46,108,195,184,10,99,190,184,227,89,185,184,186,80,180,184,143,71,175,
184,99,62,170,184,54,53,165,184,8,44,160,184,220,34,155,184,176,25,150,184,133,16,145,184,92,7,140,184,54,254,134,184,19,245,129,184,230,215,121,184,175,197,111,184,129,179,101,184,93,161,91,184,69,143,81,184,57,125,71,184,59,107,61,184,75,89,51,184,107,71,41,184,156,53,31,184,222,35,21,184,52,18,11,184,157,0,1,184,54,222,237,183,95,187,217,183,182,152,197,183,62,118,177,183,248,83,157,183,231,49,137,183,25,32,106,183,215,220,65,183,11,154,25,183,115,175,226,182,206,43,146,182,93,82,3,182,22,134,
237,52,180,177,62,54,51,216,175,54,49,43,0,55,177,105,40,55,147,167,80,55,213,228,120,55,185,144,144,55,178,174,164,55,84,204,184,55,157,233,204,55,139,6,225,55,28,35,245,55,166,159,4,56,142,173,14,56,68,187,24,56,199,200,34,56,22,214,44,56,47,227,54,56,19,240,64,56,191,252,74,56,51,9,85,56,110,21,95,56,110,33,105,56,51,45,115,56,187,56,125,56,3,162,131,56,137,167,136,56,239,172,141,56,52,178,146,56,89,183,151,56,92,188,156,56,62,193,161,56,252,197,166,56,152,202,171,56,16,207,176,56,100,211,181,
56,147,215,186,56,157,219,191,56,129,223,196,56,63,227,201,56,214,230,206,56,70,234,211,56,142,237,216,56,173,240,221,56,164,243,226,56,113,246,231,56,20,249,236,56,141,251,241,56,218,253,246,56,252,255,251,56,249,128,0,57,222,1,3,57,172,130,5,57,99,3,8,57,3,132,10,57,140,4,13,57,253,132,15,57,86,5,18,57,151,133,20,57,191,5,23,57,207,133,25,57,198,5,28,57,163,133,30,57,103,5,33,57,17,133,35,57,162,4,38,57,24,132,40,57,115,3,43,57,180,130,45,57,217,1,48,57,227,128,50,57,210,255,52,57,164,126,55,57,
91,253,57,57,245,123,60,57,114,250,62,57,210,120,65,57,22,247,67,57,59,117,70,57,67,243,72,57,45,113,75,57,249,238,77,57,166,108,80,57,53,234,82,57,164,103,85,57,244,228,87,57,37,98,90,57,53,223,92,57,38,92,95,57,246,216,97,57,166,85,100,57,52,210,102,57,162,78,105,57,238,202,107,57,24,71,110,57,33,195,112,57,7,63,115,57,203,186,117,57,108,54,120,57,234,177,122,57,69,45,125,57,124,168,127,57,200,17,129,57,63,79,130,57,165,140,131,57,248,201,132,57,57,7,134,57,103,68,135,57,131,129,136,57,140,190,
137,57,130,251,138,57,100,56,140,57,52,117,141,57,240,177,142,57,153,238,143,57,46,43,145,57,176,103,146,57,29,164,147,57,119,224,148,57,189,28,150,57,238,88,151,57,11,149,152,57,19,209,153,57,7,13,155,57,230,72,156,57,176,132,157,57,101,192,158,57,5,252,159,57,144,55,161,57,5,115,162,57,101,174,163,57,175,233,164,57,227,36,166,57,1,96,167,57,9,155,168,57,251,213,169,57,215,16,171,57,156,75,172,57,74,134,173,57,226,192,174,57,99,251,175,57,205,53,177,57,32,112,178,57,92,170,179,57,128,228,180,57,
141,30,182,57,130,88,183,57,96,146,184,57,37,204,185,57,211,5,187,57,104,63,188,57,230,120,189,57,74,178,190,57,151,235,191,57,202,36,193,57,229,93,194,57,231,150,195,57,208,207,196,57,159,8,198,57,86,65,199,57,243,121,200,57,118,178,201,57,224,234,202,57,47,35,204,57,101,91,205,57,129,147,206,57,131,203,207,57,106,3,209,57,55,59,210,57,233,114,211,57,129,170,212,57,253,225,213,57,95,25,215,57,166,80,216,57,209,135,217,57,225,190,218,57,214,245,219,57,175,44,221,57,108,99,222,57,13,154,223,57,147,
208,224,57,252,6,226,57,73,61,227,57,121,115,228,57,141,169,229,57,133,223,230,57,96,21,232,57,29,75,233,57,190,128,234,57,66,182,235,57,168,235,236,57,241,32,238,57,29,86,239,57,42,139,240,57,26,192,241,57,237,244,242,57,161,41,244,57,55,94,245,57,174,146,246,57,8,199,247,57,66,251,248,57,94,47,250,57,92,99,251,57,58,151,252,57,249,202,253,57,153,254,254,57,13,25,0,58,190,178,0,58,95,76,1,58,240,229,1,58,113,127,2,58,226,24,3,58,67,178,3,58,148,75,4,58,213,228,4,58,6,126,5,58,39,23,6,58,55,176,6,
58,54,73,7,58,38,226,7,58,4,123,8,58,211,19,9,58,144,172,9,58,61,69,10,58,217,221,10,58,100,118,11,58,222,14,12,58,71,167,12,58,160,63,13,58,231,215,13,58,29,112,14,58,65,8,15,58,85,160,15,58,87,56,16,58,72,208,16,58,39,104,17,58,245,255,17,58,177,151,18,58,91,47,19,58,244,198,19,58,123,94,20,58,240,245,20,58,84,141,21,58,165,36,22,58,228,187,22,58,17,83,23,58,44,234,23,58,53,129,24,58,44,24,25,58,16,175,25,58,226,69,26,58,161,220,26,58,78,115,27,58,232,9,28,58,112,160,28,58,229,54,29,58,71,205,29,
58,150,99,30,58,211,249,30,58,252,143,31,58,19,38,32,58,22,188,32,58,6,82,33,58,227,231,33,58,173,125,34,58,99,19,35,58,7,169,35,58,150,62,36,58,18,212,36,58,123,105,37,58,208,254,37,58,17,148,38,58,63,41,39,58,88,190,39,58,94,83,40,58,80,232,40,58,46,125,41,58,248,17,42,58,174,166,42,58,79,59,43,58,221,207,43,58,86,100,44,58,186,248,44,58,11,141,45,58,70,33,46,58,110,181,46,58,128,73,47,58,126,221,47,58,104,113,48,58,60,5,49,58,252,152,49,58,166,44,50,58,60,192,50,58,189,83,51,58,41,231,51,58,127,
122,52,58,193,13,53,58,237,160,53,58,3,52,54,58,5,199,54,58,241,89,55,58,199,236,55,58,136,127,56,58,51,18,57,58,201,164,57,58,73,55,58,58,179,201,58,58,7,92,59,58,69,238,59,58,109,128,60,58,128,18,61,58,124,164,61,58,98,54,62,58,49,200,62,58,235,89,63,58,142,235,63,58,27,125,64,58,145,14,65,58,241,159,65,58,58,49,66,58,109,194,66,58,136,83,67,58,142,228,67,58,124,117,68,58,83,6,69,58,20,151,69,58,189,39,70,58,80,184,70,58,203,72,71,58,47,217,71,58,124,105,72,58,178,249,72,58,208,137,73,58,215,25,
74,58,199,169,74,58,159,57,75,58,95,201,75,58,8,89,76,58,153,232,76,58,18,120,77,58,115,7,78,58,189,150,78,58,239,37,79,58,8,181,79,58,10,68,80,58,244,210,80,58,197,97,81,58,126,240,81,58,31,127,82,58,168,13,83,58,24,156,83,58,112,42,84,58,175,184,84,58,213,70,85,58,228,212,85,58,217,98,86,58,181,240,86,58,121,126,87,58,36,12,88,58,182,153,88,58,47,39,89,58,143,180,89,58,214,65,90,58,4,207,90,58,25,92,91,58,20,233,91,58,246,117,92,58,191,2,93,58,110,143,93,58,4,28,94,58,128,168,94,58,227,52,95,58,
44,193,95,58,91,77,96,58,112,217,96,58,108,101,97,58,78,241,97,58,22,125,98,58,195,8,99,58,87,148,99,58,209,31,100,58,48,171,100,58,117,54,101,58,160,193,101,58,177,76,102,58,167,215,102,58,131,98,103,58,68,237,103,58,235,119,104,58,119,2,105,58,233,140,105,58,63,23,106,58,123,161,106,58,156,43,107,58,162,181,107,58,142,63,108,58,94,201,108,58,19,83,109,58,173,220,109,58,44,102,110,58,143,239,110,58,216,120,111,58,4,2,112,58,22,139,112,58,12,20,113,58,231,156,113,58,166,37,114,58,73,174,114,58,209,
54,115,58,61,191,115,58,141,71,116,58,193,207,116,58,218,87,117,58,214,223,117,58,182,103,118,58,123,239,118,58,35,119,119,58,175,254,119,58,31,134,120,58,115,13,121,58,170,148,121,58,197,27,122,58,195,162,122,58,165,41,123,58,106,176,123,58,19,55,124,58,159,189,124,58,14,68,125,58,97,202,125,58,150,80,126,58,175,214,126,58,171,92,127,58,138,226,127,58,38,52,128,58,248,118,128,58,188,185,128,58,113,252,128,58,24,63,129,58,176,129,129,58,57,196,129,58,179,6,130,58,31,73,130,58,124,139,130,58,202,205,
130,58,10,16,131,58,58,82,131,58,92,148,131,58,110,214,131,58,114,24,132,58,103,90,132,58,77,156,132,58,36,222,132,58,236,31,133,58,165,97,133,58,78,163,133,58,233,228,133,58,116,38,134,58,240,103,134,58,94,169,134,58,187,234,134,58,10,44,135,58,73,109,135,58,121,174,135,58,154,239,135,58,172,48,136,58,174,113,136,58,160,178,136,58,131,243,136,58,87,52,137,58,27,117,137,58,208,181,137,58,117,246,137,58,11,55,138,58,145,119,138,58,7,184,138,58,110,248,138,58,197,56,139,58,12,121,139,58,68,185,139,
58,108,249,139,58,132,57,140,58,141,121,140,58,133,185,140,58,110,249,140,58,71,57,141,58,16,121,141,58,201,184,141,58,114,248,141,58],"i8",4,y.a+604160);
Q([11,56,142,58,148,119,142,58,13,183,142,58,118,246,142,58,207,53,143,58,24,117,143,58,81,180,143,58,122,243,143,58,146,50,144,58,154,113,144,58,146,176,144,58,122,239,144,58,81,46,145,58,25,109,145,58,207,171,145,58,118,234,145,58,12,41,146,58,146,103,146,58,7,166,146,58,108,228,146,58,192,34,147,58,4,97,147,58,55,159,147,58,90,221,147,58,108,27,148,58,109,89,148,58,94,151,148,58,63,213,148,58,14,19,149,58,205,80,149,58,123,142,149,58,24,204,149,58,165,9,150,58,33,71,150,58,140,132,150,58,230,193,
150,58,47,255,150,58,104,60,151,58,143,121,151,58,165,182,151,58,171,243,151,58,159,48,152,58,131,109,152,58,85,170,152,58,22,231,152,58,199,35,153,58,102,96,153,58,244,156,153,58,113,217,153,58,220,21,154,58,55,82,154,58,128,142,154,58,183,202,154,58,222,6,155,58,243,66,155,58,247,126,155,58,234,186,155,58,203,246,155,58,155,50,156,58,89,110,156,58,6,170,156,58,161,229,156,58,43,33,157,58,163,92,157,58,10,152,157,58,95,211,157,58,163,14,158,58,213,73,158,58,245,132,158,58,4,192,158,58,1,251,158,
58,236,53,159,58,197,112,159,58,141,171,159,58,67,230,159,58,231,32,160,58,121,91,160,58,250,149,160,58,104,208,160,58,197,10,161,58,15,69,161,58,72,127,161,58,111,185,161,58,132,243,161,58,134,45,162,58,119,103,162,58,85,161,162,58,34,219,162,58,220,20,163,58,133,78,163,58,27,136,163,58,158,193,163,58,16,251,163,58,112,52,164,58,189,109,164,58,248,166,164,58,32,224,164,58,54,25,165,58,58,82,165,58,44,139,165,58,11,196,165,58,216,252,165,58,146,53,166,58,58,110,166,58,207,166,166,58,82,223,166,58,
194,23,167,58,32,80,167,58,107,136,167,58,164,192,167,58,202,248,167,58,221,48,168,58,222,104,168,58,204,160,168,58,167,216,168,58,112,16,169,58,38,72,169,58,201,127,169,58,89,183,169,58,214,238,169,58,65,38,170,58,153,93,170,58,221,148,170,58,15,204,170,58,46,3,171,58,58,58,171,58,51,113,171,58,26,168,171,58,237,222,171,58,173,21,172,58,90,76,172,58,243,130,172,58,122,185,172,58,238,239,172,58,78,38,173,58,156,92,173,58,214,146,173,58,253,200,173,58,17,255,173,58,17,53,174,58,254,106,174,58,216,
160,174,58,159,214,174,58,82,12,175,58,242,65,175,58,126,119,175,58,247,172,175,58,93,226,175,58,175,23,176,58,238,76,176,58,25,130,176,58,49,183,176,58,53,236,176,58,38,33,177,58,3,86,177,58,204,138,177,58,130,191,177,58,36,244,177,58,179,40,178,58,46,93,178,58,149,145,178,58,233,197,178,58,40,250,178,58,84,46,179,58,108,98,179,58,113,150,179,58,97,202,179,58,62,254,179,58,7,50,180,58,188,101,180,58,93,153,180,58,234,204,180,58,100,0,181,58,201,51,181,58,26,103,181,58,87,154,181,58,129,205,181,58,
150,0,182,58,151,51,182,58,132,102,182,58,93,153,182,58,34,204,182,58,211,254,182,58,111,49,183,58,247,99,183,58,107,150,183,58,203,200,183,58,23,251,183,58,78,45,184,58,113,95,184,58,128,145,184,58,123,195,184,58,97,245,184,58,51,39,185,58,240,88,185,58,153,138,185,58,45,188,185,58,174,237,185,58,25,31,186,58,112,80,186,58,179,129,186,58,225,178,186,58,251,227,186,58,0,21,187,58,240,69,187,58,204,118,187,58,147,167,187,58,70,216,187,58,228,8,188,58,109,57,188,58,226,105,188,58,65,154,188,58,141,
202,188,58,195,250,188,58,229,42,189,58,241,90,189,58,233,138,189,58,205,186,189,58,155,234,189,58,84,26,190,58,249,73,190,58,137,121,190,58,3,169,190,58,105,216,190,58,186,7,191,58,246,54,191,58,29,102,191,58,47,149,191,58,44,196,191,58,19,243,191,58,230,33,192,58,164,80,192,58,76,127,192,58,224,173,192,58,94,220,192,58,199,10,193,58,27,57,193,58,90,103,193,58,131,149,193,58,152,195,193,58,151,241,193,58,128,31,194,58,85,77,194,58,20,123,194,58,190,168,194,58,83,214,194,58,210,3,195,58,59,49,195,
58,144,94,195,58,207,139,195,58,248,184,195,58,13,230,195,58,11,19,196,58,244,63,196,58,200,108,196,58,134,153,196,58,47,198,196,58,194,242,196,58,63,31,197,58,167,75,197,58,249,119,197,58,54,164,197,58,93,208,197,58,111,252,197,58,106,40,198,58,80,84,198,58,33,128,198,58,219,171,198,58,128,215,198,58,15,3,199,58,136,46,199,58,236,89,199,58,58,133,199,58,114,176,199,58,148,219,199,58,160,6,200,58,150,49,200,58,118,92,200,58,65,135,200,58,246,177,200,58,148,220,200,58,29,7,201,58,144,49,201,58,236,
91,201,58,51,134,201,58,100,176,201,58,126,218,201,58,131,4,202,58,113,46,202,58,74,88,202,58,12,130,202,58,184,171,202,58,78,213,202,58,206,254,202,58,56,40,203,58,139,81,203,58,201,122,203,58,240,163,203,58,1,205,203,58,251,245,203,58,224,30,204,58,174,71,204,58,101,112,204,58,7,153,204,58,146,193,204,58,7,234,204,58,101,18,205,58,173,58,205,58,223,98,205,58,250,138,205,58,255,178,205,58,237,218,205,58,197,2,206,58,135,42,206,58,49,82,206,58,198,121,206,58,68,161,206,58,171,200,206,58,252,239,206,
58,54,23,207,58,90,62,207,58,103,101,207,58,94,140,207,58,62,179,207,58,7,218,207,58,186,0,208,58,86,39,208,58,219,77,208,58,73,116,208,58,161,154,208,58,226,192,208,58,13,231,208,58,32,13,209,58,29,51,209,58,3,89,209,58,211,126,209,58,139,164,209,58,45,202,209,58,183,239,209,58,43,21,210,58,136,58,210,58,207,95,210,58,254,132,210,58,22,170,210,58,24,207,210,58,2,244,210,58,214,24,211,58,146,61,211,58,56,98,211,58,198,134,211,58,62,171,211,58,159,207,211,58,232,243,211,58,27,24,212,58,54,60,212,58,
58,96,212,58,39,132,212,58,253,167,212,58,188,203,212,58,100,239,212,58,245,18,213,58,110,54,213,58,209,89,213,58,28,125,213,58,80,160,213,58,109,195,213,58,114,230,213,58,96,9,214,58,55,44,214,58,247,78,214,58,159,113,214,58,49,148,214,58,170,182,214,58,13,217,214,58,88,251,214,58,140,29,215,58,168,63,215,58,173,97,215,58,155,131,215,58,113,165,215,58,48,199,215,58,216,232,215,58,104,10,216,58,224,43,216,58,65,77,216,58,139,110,216,58,189,143,216,58,216,176,216,58,219,209,216,58,198,242,216,58,154,
19,217,58,87,52,217,58,252,84,217,58,137,117,217,58,255,149,217,58,93,182,217,58,163,214,217,58,210,246,217,58,233,22,218,58,233,54,218,58,209,86,218,58,161,118,218,58,90,150,218,58,251,181,218,58,132,213,218,58,245,244,218,58,79,20,219,58,145,51,219,58,187,82,219,58,205,113,219,58,200,144,219,58,171,175,219,58,118,206,219,58,41,237,219,58,197,11,220,58,72,42,220,58,180,72,220,58,8,103,220,58,68,133,220,58,104,163,220,58,116,193,220,58,104,223,220,58,69,253,220,58,9,27,221,58,181,56,221,58,74,86,
221,58,199,115,221,58,43,145,221,58,120,174,221,58,172,203,221,58,201,232,221,58,206,5,222,58,186,34,222,58,143,63,222,58,75,92,222,58,240,120,222,58,124,149,222,58,240,177,222,58,76,206,222,58,144,234,222,58,188,6,223,58,208,34,223,58,204,62,223,58,175,90,223,58,123,118,223,58,46,146,223,58,201,173,223,58,76,201,223,58,183,228,223,58,9,0,224,58,67,27,224,58,101,54,224,58,111,81,224,58,97,108,224,58,58,135,224,58,251,161,224,58,164,188,224,58,52,215,224,58,172,241,224,58,12,12,225,58,84,38,225,58,
131,64,225,58,154,90,225,58,152,116,225,58,127,142,225,58,76,168,225,58,2,194,225,58,159,219,225,58,36,245,225,58,144,14,226,58,228,39,226,58,31,65,226,58,66,90,226,58,77,115,226,58,63,140,226,58,25,165,226,58,218,189,226,58,131,214,226,58,19,239,226,58,139,7,227,58,234,31,227,58,49,56,227,58,95,80,227,58,117,104,227,58,114,128,227,58,86,152,227,58,34,176,227,58,214,199,227,58,113,223,227,58,243,246,227,58,93,14,228,58,174,37,228,58,231,60,228,58,7,84,228,58,14,107,228,58,253,129,228,58,211,152,228,
58,145,175,228,58,53,198,228,58,193,220,228,58,53,243,228,58,144,9,229,58,210,31,229,58,251,53,229,58,12,76,229,58,4,98,229,58,227,119,229,58,170,141,229,58,88,163,229,58,237,184,229,58,105,206,229,58,205,227,229,58,23,249,229,58,73,14,230,58,99,35,230,58,99,56,230,58,75,77,230,58,26,98,230,58,208,118,230,58,109,139,230,58,242,159,230,58,93,180,230,58,176,200,230,58,234,220,230,58,11,241,230,58,19,5,231,58,3,25,231,58,217,44,231,58,151,64,231,58,59,84,231,58,199,103,231,58,58,123,231,58,148,142,231,
58,213,161,231,58,254,180,231,58,13,200,231,58,3,219,231,58,225,237,231,58,165,0,232,58,81,19,232,58,227,37,232,58,93,56,232,58,189,74,232,58,5,93,232,58,52,111,232,58,73,129,232,58,70,147,232,58,42,165,232,58,244,182,232,58,166,200,232,58,62,218,232,58,190,235,232,58,37,253,232,58,114,14,233,58,166,31,233,58,194,48,233,58,196,65,233,58,174,82,233,58,126,99,233,58,53,116,233,58,211,132,233,58,88,149,233,58,196,165,233,58,23,182,233,58,80,198,233,58,113,214,233,58,120,230,233,58,103,246,233,58,60,
6,234,58,248,21,234,58,155,37,234,58,37,53,234,58,150,68,234,58,237,83,234,58,44,99,234,58,81,114,234,58,93,129,234,58,80,144,234,58,42,159,234,58,234,173,234,58,146,188,234,58,32,203,234,58,149,217,234,58,241,231,234,58,51,246,234,58,92,4,235,58,109,18,235,58,100,32,235,58,65,46,235,58,6,60,235,58,177,73,235,58,67,87,235,58,188,100,235,58,28,114,235,58,98,127,235,58,143,140,235,58,163,153,235,58,157,166,235,58,127,179,235,58,71,192,235,58,245,204,235,58,139,217,235,58,7,230,235,58,106,242,235,58,
180,254,235,58,228,10,236,58,251,22,236,58,249,34,236,58,221,46,236,58,169,58,236,58,90,70,236,58,243,81,236,58,114,93,236,58,216,104,236,58,37,116,236,58,88,127,236,58,114,138,236,58,114,149,236,58,90,160,236,58,40,171,236,58,220,181,236,58,119,192,236,58,249,202,236,58,98,213,236,58,177,223,236,58,231,233,236,58,3,244,236,58,6,254,236,58,240,7,237,58,193,17,237,58,120,27,237,58,21,37,237,58,153,46,237,58,4,56,237,58,86,65,237,58,142,74,237,58,173,83,237,58,178,92,237,58,158,101,237,58,112,110,237,
58,42,119,237,58,201,127,237,58,80,136,237,58,189,144,237,58,16,153,237,58,74,161,237,58,107,169,237,58,114,177,237,58,96,185,237,58,53,193,237,58,240,200,237,58,146,208,237,58,26,216,237,58,137,223,237,58,222,230,237,58,26,238,237,58,61,245,237,58,70,252,237,58,53,3,238,58,12,10,238,58,200,16,238,58,108,23,238,58,246,29,238,58,102,36,238,58,189,42,238,58,251,48,238,58,31,55,238,58,42,61,238,58,27,67,238,58,243,72,238,58,177,78,238,58,86,84,238,58,226,89,238,58,84,95,238,58,173,100,238,58,236,105,
238,58,17,111,238,58,30,116,238,58,16,121,238,58,234,125,238,58,170,130,238,58,80,135,238,58,221,139,238,58,81,144,238,58,171,148,238,58,235,152,238,58,18,157,238,58,32,161,238,58,20,165,238,58,239,168,238,58,176,172,238,58,88,176,238,58,231,179,238,58,92,183,238,58,183,186,238,58,249,189,238,58,34,193,238,58,49,196,238,58,38,199,238,58,3,202,238,58,197,204,238,58,111,207,238,58,254,209,238,58,117,212,238,58,210,214,238,58,21,217,238,58,63,219,238,58,79,221,238,58,71,223,238,58,36,225,238,58,232,
226,238,58,147,228,238,58,36,230,238,58,156,231,238,58,250,232,238,58,63,234,238,58,107,235,238,58,125,236,238,58,117,237,238,58,84,238,238,58,26,239,238,58,198,239,238,58,89,240,238,58,210,240,238,58,50,241,238,58,120,241,238,58,165,241,238,58,185,241,238,58,179,241,238,58,147,241,238,58,91,241,238,58,8,241,238,58,157,240,238,58,24,240,238,58,121,239,238,58,193,238,238,58,240,237,238,58,5,237,238,58,1,236,238,58,227,234,238,58,172,233,238,58,92,232,238,58,242,230,238,58,110,229,238,58,210,227,238,
58,27,226,238,58,76,224,238,58,99,222,238,58,97,220,238,58,69,218,238,58,16,216,238,58,193,213,238,58,89,211,238,58,216,208,238,58,61,206,238,58,137,203,238,58,188,200,238,58,213,197,238,58,212,194,238,58,187,191,238,58,136,188,238,58,59,185,238,58,214,181,238,58,87,178,238,58,190,174,238,58,12,171,238,58,65,167,238,58,92,163,238,58,95,159,238,58,71,155,238,58,23,151,238,58,205,146,238,58,105,142,238,58,237,137,238,58,87,133,238,58,168,128,238,58,223,123,238,58,253,118,238,58,2,114,238,58,237,108,
238,58,191,103,238,58,120,98,238,58,24,93,238,58,158,87,238,58,11,82,238,58,94,76,238,58,153,70,238,58,186,64,238,58,193,58,238,58,176,52,238,58,133,46,238,58,65,40,238,58,228,33,238,58,109,27,238,58,221,20,238,58,52,14,238,58,114,7,238,58,150,0,238,58,161,249,237,58,147,242,237,58,108,235,237,58,43,228,237,58,209,220,237,58,94,213,237,58,210,205,237,58,44,198,237,58,110,190,237,58,150,182,237,58,165,174,237,58,154,166,237,58,119,158,237,58,58,150,237,58,228,141,237,58,117,133,237,58,237,124,237,
58,76,116,237,58,145,107,237,58,190,98,237,58,209,89,237,58,203,80,237,58,172,71,237,58,115,62,237,58,34,53,237,58,184,43,237,58,52,34,237,58,151,24,237,58,225,14,237,58,18,5,237,58,42,251,236,58,41,241,236,58,15,231,236,58,220,220,236,58,143,210,236,58,42,200,236,58,171,189,236,58,20,179,236,58,99,168,236,58,153,157,236,58,182,146,236,58,187,135,236,58,166,124,236,58,120,113,236,58,49,102,236,58,209,90,236,58,88,79,236,58,198,67,236,58,28,56,236,58,88,44,236,58,123,32,236,58,133,20,236,58,118,8,
236,58,78,252,235,58,14,240,235,58,180,227,235,58,65,215,235,58,182,202,235,58,17,190,235,58,84,177,235,58,126,164,235,58,142,151,235,58,134,138,235,58,101,125,235,58,43,112,235,58,216,98,235,58,109,85,235,58,232,71,235,58,75,58,235,58,148,44,235,58,197,30,235,58,221,16,235,58,220,2,235,58,195,244,234,58,144,230,234,58,69,216,234,58,225,201,234,58,100,187,234,58,206,172,234,58,32,158,234,58,89,143,234,58,121,128,234,58,128,113,234,58,110,98,234,58,68,83,234,58,1,68,234,58,165,52,234,58,49,37,234,
58,164,21,234,58,254,5,234,58,63,246,233,58,104,230,233,58,120,214,233,58,111,198,233,58,78,182,233,58,20,166,233,58,193,149,233,58,86,133,233,58,210,116,233,58,53,100,233,58,128,83,233,58,178,66,233,58,204,49,233,58,205,32,233,58,181,15,233,58,133,254,232,58,60,237,232,58,219,219,232,58,97,202,232,58,207,184,232,58,36,167,232,58,96,149,232,58,132,131,232,58,144,113,232,58,131,95,232,58,93,77,232,58,31,59,232,58,201,40,232,58,90,22,232,58,211,3,232,58,51,241,231,58,123,222,231,58,170,203,231,58,193,
184,231,58,191,165,231,58,165,146,231,58,115,127,231,58,40,108,231,58,197,88,231,58,74,69,231,58,182,49,231,58,10,30,231,58,69,10,231,58,104,246,230,58,115,226,230,58,102,206,230,58,64,186,230,58,2,166,230,58,172,145,230,58,61,125,230,58,182,104,230,58,23,84,230,58,96,63,230,58,144,42,230,58,169,21,230,58,169,0,230,58,144,235,229,58,96,214,229,58,23,193,229,58,183,171,229,58,62,150,229,58,173,128,229,58,4,107,229,58,66,85,229,58,105,63,229,58,119,41,229,58,110,19,229,58,76,253,228,58,18,231,228,58,
192,208,228,58,86,186,228,58,212,163,228,58,58,141,228,58,136,118,228,58,190,95,228,58,220,72,228,58,226,49,228,58,208,26,228,58,166,3,228,58,100,236,227,58,10,213,227,58,152,189,227,58,15,166,227,58,109,142,227,58,179,118,227,58,226,94,227,58,248,70,227,58,247,46,227,58,222,22,227,58,173,254,226,58,100,230,226,58,4,206,226,58,139,181,226,58,251,156,226,58,83,132,226,58,147,107,226,58,188,82,226,58,204,57,226,58,197,32,226,58,167,7,226,58,112,238,225,58,34,213,225,58,188,187,225,58,62,162,225,58,
169,136,225,58,252,110,225,58,55,85,225,58,91,59,225,58,103,33,225,58,92,7,225,58,57,237,224,58,254,210,224,58,172,184,224,58,66,158,224,58,193,131,224,58,40,105,224,58,119,78,224,58,175,51,224,58,208,24,224,58,217,253,223,58,202,226,223,58,164,199,223,58,103,172,223,58,18,145,223,58,166,117,223,58,34,90,223,58,135,62,223,58,213,34,223,58,11,7,223,58,42,235,222,58,49,207,222,58,33,179,222,58,250,150,222,58,188,122,222,58,102,94,222,58,249,65,222,58,116,37,222,58,217,8,222,58,38,236,221,58,92,207,
221,58,122,178,221,58,130,149,221,58,114,120,221,58,75,91,221,58,13,62,221,58,183,32,221,58,75,3,221,58,199,229,220,58,45,200,220,58,123,170,220,58,178,140,220,58,210,110,220,58,219,80,220,58,205,50,220,58,168,20,220,58,108,246,219,58,25,216,219,58,175,185,219,58,46,155,219,58,150,124,219,58,231,93,219,58,33,63,219,58,68,32,219,58,80,1,219,58,69,226,218,58,36,195,218,58,236,163,218,58,156,132,218,58,54,101,218,58,185,69,218,58,38,38,218,58,123,6,218,58,186,230,217,58,226,198,217,58,243,166,217,58,
237,134,217,58,209,102,217,58,158,70,217,58,84,38,217,58,244,5,217,58,125,229,216,58,239,196,216,58,75,164,216,58,144,131,216,58,190,98,216,58,214,65,216,58,216,32,216,58,194,255,215,58,151,222,215,58,84,189,215,58,251,155,215,58,140,122,215,58,6,89,215,58,106,55,215,58,183,21,215,58,238,243,214,58,14,210,214,58,24,176,214,58,12,142,214,58,233,107,214,58,176,73,214,58,96,39,214,58,250,4,214,58,126,226,213,58,236,191,213,58,67,157,213,58,132,122,213,58,175,87,213,58,195,52,213,58,193,17,213,58,169,
238,212,58,123,203,212,58,55,168,212,58,220,132,212,58,108,97,212,58,229,61,212,58,72,26,212,58,149,246,211,58,204,210,211,58,237,174,211,58,248,138,211,58,236,102,211,58,203,66,211,58,148,30,211,58,71,250,210,58,228,213,210,58,107,177,210,58,219,140,210,58,55,104,210,58,124,67,210,58,171,30,210,58,196,249,209,58,200,212,209,58,181,175,209,58,141,138,209,58,79,101,209,58,252,63,209,58,146,26,209,58,19,245,208,58,126,207,208,58,211,169,208,58,19,132,208,58,61,94,208,58,81,56,208,58,79,18,208,58,56,
236,207,58,12,198,207,58,201,159,207,58,114,121,207,58,4,83,207,58,129,44,207,58,233,5,207,58,59,223,206,58,119,184,206,58,158,145,206,58,176,106,206,58,172,67,206,58,147,28,206,58,100,245,205,58,32,206,205,58,198,166,205,58,87,127,205,58,211,87,205,58,57,48,205,58,139,8,205,58,198,224,204,58,237,184,204,58,254,144,204,58,250,104,204,58,225,64,204,58,179,24,204,58,112,240,203,58,23,200,203,58,169,159,203,58,38,119,203,58,142,78,203,58,225,37,203,58,31,253,202,58,71,212,202,58,91,171,202,58,90,130,
202,58,67,89,202,58,24,48,202,58,216,6,202,58,131,221,201,58,25,180,201,58,153,138,201,58,5,97,201,58,93,55,201,58,159,13,201,58,204,227,200,58,229,185,200,58,233,143,200,58,216,101,200,58,178,59,200,58,120,17,200,58,41,231,199,58,197,188,199,58,76,146,199,58,191,103,199,58,29,61,199,58,103,18,199,58,156,231,198,58,188,188,198,58,200,145,198,58,191,102,198,58,161,59,198,58,111,16,198,58,41,229,197,58,206,185,197,58,95,142,197,58,219,98,197,58,67,55,197,58,150,11,197,58,213,223,196,58,0,180,196,58,
22,136,196,58,24,92,196,58,6,48,196,58,223,3,196,58,164,215,195,58,85,171,195,58,242,126,195,58,122,82,195,58,238,37,195,58,79,249,194,58,154,204,194,58,210,159,194,58,246,114,194,58,5,70,194,58,1,25,194,58,232,235,193,58,188,190,193,58,123,145,193,58,39,100,193,58,190,54,193,58,66,9,193,58,177,219,192,58,13,174,192,58,85,128,192,58,136,82,192,58,168,36,192,58,181,246,191,58,173,200,191,58,146,154,191,58,98,108,191,58,32,62,191,58,201,15,191,58,95,225,190,58,224,178,190,58,79,132,190,58,169,85,190,
58,240,38,190,58,36,248,189,58,67,201,189,58,80,154,189,58,72,107,189,58,46,60,189,58,255,12,189,58,189,221,188,58,104,174,188,58,255,126,188,58,131,79,188,58,244,31,188,58,81,240,187,58,154,192,187,58,209,144,187,58,244,96,187,58,3,49,187,58,0,1,187,58,233,208,186,58,191,160,186,58,130,112,186,58,49,64,186,58,206,15,186,58,87,223,185,58,205,174,185,58,48,126,185,58,128,77,185,58,189,28,185,58,231,235,184,58,253,186,184,58,1,138,184,58,242,88,184,58,208,39,184,58,155,246,183,58,83,197,183,58,248,
147,183,58,138,98,183,58,9,49,183,58,118,255,182,58,207,205,182,58,22,156,182,58,75,106,182,58,108,56,182,58,123,6,182,58,119,212,181,58,96,162,181,58,55,112,181,58,251,61,181,58,172,11,181,58,75,217,180,58,215,166,180,58,81,116,180,58,184,65,180,58,13,15,180,58,79,220,179,58,127,169,179,58,156,118,179,58,167,67,179,58,159,16,179,58,134,221,178,58,89,170,178,58,27,119,178,58,202,67,178,58,103,16,178,58,242,220,177,58,106,169,177,58,208,117,177,58,36,66,177,58,102,14,177,58,150,218,176,58,179,166,
176,58,191,114,176,58,184,62,176,58,159,10,176,58,117,214,175,58,56,162,175,58,233,109,175,58,136,57,175,58,22,5,175,58,145,208,174,58,251,155,174,58,82,103,174,58,152,50,174,58,204,253,173,58,238,200,173,58,255,147,173,58,253,94,173,58,234,41,173,58,198,244,172,58,143,191,172,58,71,138,172,58,237,84,172,58,130,31,172,58,5,234,171,58,118,180,171,58,214,126,171,58,36,73,171,58,97,19,171,58,140,221,170,58,166,167,170,58,175,113,170,58,166,59,170,58,139,5,170,58,96,207,169,58,35,153,169,58,212,98,169,
58,117,44,169,58,4,246,168,58,129,191,168,58,238,136,168,58,73,82,168,58,147,27,168,58,205,228,167,58,244,173,167,58,11,119,167,58,17,64,167,58,6,9,167,58,233,209,166,58,188,154,166,58,126,99,166,58,46,44,166,58,206,244,165,58,93,189,165,58,219,133,165,58,72,78,165,58,164,22,165,58,239,222,164,58,42,167,164,58,84,111,164,58,109,55,164,58,117,255,163,58,109,199,163,58,84,143,163,58,42,87,163,58,240,30,163,58,165,230,162,58,74,174,162,58,222,117,162,58,97,61,162,58,212,4,162,58,55,204,161,58,137,147,
161,58,202,90,161,58,251,33,161,58,28,233,160,58,45,176,160,58,45,119,160,58,28,62,160,58,252,4,160,58,203,203,159,58,138,146,159,58,57,89,159,58,216,31,159,58,102,230,158,58,228,172,158,58,83,115,158,58,177,57,158,58,255,255,157,58,61,198,157,58,107,140,157,58,137,82,157,58,151,24,157,58,149,222,156,58,131,164,156,58,98,106,156,58,48,48,156,58,239,245,155,58,158,187,155,58,61,129,155,58,204,70,155,58,76,12,155,58,187,209,154,58,28,151,154,58,108,92,154,58,173,33,154,58,222,230,153,58,0,172,153,58,
18,113,153,58,20,54,153,58,7,251,152,58,235,191,152,58,191,132,152,58,132,73,152,58,57,14,152,58,223,210,151,58,117,151,151,58,253,91,151,58,117,32,151,58,221,228,150,58,55,169,150,58,129,109,150,58,188,49,150,58,231,245,149,58,4,186,149,58,17,126,149,58,16,66,149,58,255,5,149,58,223,201,148,58,177,141,148,58,115,81,148,58,38,21,148,58,202,216,147,58,96,156,147,58,230,95,147,58,94,35,147,58,199,230,146,58,33,170,146,58,108,109,146,58,168,48,146,58,214,243,145,58,245,182,145,58,5,122,145,58,7,61,145,
58,250,255,144,58,222,194,144,58,180,133,144,58,123,72,144,58,52,11,144,58,222,205,143,58,122,144,143,58,7,83,143,58,134,21,143,58,247,215,142,58,89,154,142,58,173,92,142,58,242,30,142,58,41,225,141,58,82,163,141,58,109,101,141,58,121,39,141,58,120,233,140,58,104,171,140,58,74,109,140,58,30,47,140,58,227,240,139,58,155,178,139,58,69,116,139,58,225,53,139,58,110,247,138,58,238,184,138,58,96,122,138,58,196,59,138,58,26,253,137,58,98,190,137,58,157,127,137,58,202,64,137,58,232,1,137,58,250,194,136,58,
253,131,136,58,243,68,136,58,219,5,136,58,182,198,135,58,131,135,135,58,66,72,135,58,244,8,135,58,152,201,134,58,47,138,134,58,184,74,134,58,52,11,134,58,163,203,133,58,4,140,133,58,88,76,133,58,158,12,133,58,215,204,132,58,3,141,132,58,34,77,132,58,51,13,132,58,56,205,131,58,47,141,131,58,25,77,131,58,246,12,131,58,197,204,130,58,136,140,130,58,62,76,130,58,231,11,130,58,130,203,129,58,17,139,129,58,147,74,129,58,8,10,129,58,112,201,128,58,203,136,128,58,26,72,128,58,92,7,128,58,33,141,127,58,114,
11,127,58,169,137,126,58,198,7,126,58,203,133,125,58,182,3,125,58,136,129,124,58,65,255,123,58,225,124,123,58,104,250,122,58,214,119,122,58,43,245,121,58,103,114,121,58,139,239,120,58,150,108,120,58,136,233,119,58,97,102,119,58,34,227,118,58,203,95,118,58,91,220,117,58,210,88,117,58,49,213,116,58,120,81,116,58,167,205,115,58,190,73,115,58,188,197,114,58,163,65,114,58,113,189,113,58,40,57,113,58,198,180,112,58,77,48,112,58,188,171,111,58,20,39,111,58,83,162,110,58,123,29,110,58,140,152,109,58,133,
19,109,58,103,142,108,58,49,9,108,58,228,131,107,58,127,254,106,58,4,121,106,58,113,243,105,58,199,109,105,58,7,232,104,58,47,98,104,58,64,220,103,58,59,86,103,58,30,208,102,58,235,73,102,58,161,195,101,58,65,61,101,58,202,182,100,58,60,48,100,58,152,169,99,58,222,34,99,58,13,156,98,58,38,21,98,58,41,142,97,58,21,7,97,58,236,127,96,58,172,248,95,58,86,113,95,58,235,233,94,58,105,98,94,58,210,218,93,58,37,83,93,58,98,203,92,58,138,67,92,58,156,187,91,58,152,51,91,58,127,171,90,58,80,35,90,58,13,155,
89,58,179,18,89,58,69,138,88,58,193,1,88,58,40,121,87,58,123,240,86,58,184,103,86,58,224,222,85,58,243,85,85,58,241,204,84,58,219,67,84,58,176,186,83,58,112,49,83,58,28,168,82,58,179,30,82,58,53,149,81,58,163,11,81,58,253,129,80,58,66,248,79,58,115,110,79,58,144,228,78,58,153,90,78,58,141,208,77,58,110,70,77,58,59,188,76,58,243,49,76,58,152,167,75,58,41,29,75,58,167,146,74,58,16,8,74,58,102,125,73,58,169,242,72,58,216,103,72,58,243,220,71,58,251,81,71,58,240,198,70,58,209,59,70,58,160,176,69,58,91,
37,69,58,3,154,68,58,152,14,68,58,26,131,67,58,137,247,66,58,229,107,66,58,47,224,65,58,101,84,65,58,137,200,64,58,155,60,64,58,154,176,63,58,134,36,63,58,96,152,62,58,40,12,62,58,221,127,61,58,128,243,60,58,16,103,60,58,143,218,59,58,251,77,59,58,86,193,58,58,158,52,58,58,213,167,57,58,250,26,57,58,13,142,56,58,14,1,56,58,253,115,55,58,219,230,54,58,168,89,54,58,99,204,53,58,12,63,53,58,164,177,52,58,43,36,52,58,160,150,51,58,5,9,51,58,88,123,50,58,154,237,49,58,203,95,49,58,235,209,48,58,251,67,
48,58,249,181,47,58,231,39,47,58,196,153,46,58,144,11,46,58,76,125,45,58,247,238,44,58,145,96,44,58,28,210,43,58,150,67,43,58,255,180,42,58,89,38,42,58,162,151,41,58,219,8,41,58,4,122,40,58,29,235,39,58,38,92,39,58,31,205,38,58,9,62,38,58,226,174,37,58,172,31,37,58,103,144,36,58,18,1,36,58,173,113,35,58,57,226,34,58,181,82,34,58,34,195,33,58,128,51,33,58,207,163,32,58,14,20,32,58,63,132,31,58,96,244,30,58,114,100,30,58,118,212,29,58,107,68,29,58,80,180,28,58,40,36,28,58,240,147,27,58,170,3,27,58,
85,115,26,58,242,226,25,58,129,82,25,58,1,194,24,58,115,49,24,58,214,160,23,58,44,16,23,58,115,127,22,58,172,238,21,58,215,93,21,58,245,204,20,58,4,60,20,58,6,171,19,58,250,25,19,58,224,136,18,58,184,247,17,58,131,102,17,58,65,213,16,58,241,67,16,58,148,178,15,58,41,33,15,58,177,143,14,58,44,254,13,58,154,108,13,58,251,218,12,58,78,73,12,58,149,183,11,58,207,37,11,58,252,147,10,58,28,2,10,58,48,112,9,58,54,222,8,58,49,76,8,58,31,186,7,58,0,40,7,58,213,149,6,58,157,3,6,58,90,113,5,58,10,223,4,58,174,
76,4,58,69,186,3,58,209,39,3,58,81,149,2,58,197,2,2,58,45,112,1,58,137,221,0,58,218,74,0,58,62,112,255,57,176,74,254,57,12,37,253,57,80,255,251,57,126,217,250,57,149,179,249,57,150,141,248,57,128,103,247,57,83,65,246,57,17,27,245,57,184,244,243,57,74,206,242,57,197,167,241,57,43,129,240,57,123,90,239,57,182,51,238,57,219,12,237,57,236,229,235,57,231,190,234,57,205,151,233,57,158,112,232,57,91,73,231,57,3,34,230,57,150,250,228,57,21,211,227,57,128,171,226,57,215,131,225,57,26,92,224,57,73,52,223,57,
100,12,222,57,107,228,220,57,95,188,219,57,64,148,218,57,14,108,217,57,200,67,216,57,111,27,215,57,4,243,213,57,134,202,212,57,245,161,211,57,81,121,210,57,156,80,209,57,212,39,208,57,250,254,206,57,14,214,205,57,16,173,204,57,0,132,203,57,223,90,202,57,172,49,201,57,104,8,200,57,18,223,198,57,172,181,197,57,52,140,196,57,172,98,195,57,18,57,194,57,105,15,193,57,174,229,191,57,227,187,190,57,9,146,189,57,29,104,188,57,34,62,187,57,23,20,186,57,253,233,184,57,210,191,183,57,152,149,182,57,79,107,181,
57,247,64,180,57,143,22,179,57,25,236,177,57,147,193,176,57,255,150,175,57,92,108,174,57,171,65,173,57,235,22,172,57,29,236,170,57,65,193,169,57,87,150,168,57,95,107,167,57,89,64,166,57,69,21,165,57,36,234,163,57,246,190,162,57,187,147,161,57,114,104,160,57,28,61,159,57,186,17,158,57,74,230,156,57,206,186,155,57,70,143,154,57,177,99,153,57,16,56,152,57,99,12,151,57,170,224,149,57,229,180,148,57,20,137,147,57,55,93,146,57,80,49,145,57,92,5,144,57,94,217,142,57,84,173,141,57,63,129,140,57,32,85,139,
57,245,40,138,57,192,252,136,57,129,208,135,57,55,164,134,57,227,119,133,57,133,75,132,57,29,31,131,57,171,242,129,57,47,198,128,57,83,51,127,57,54,218,124,57,5,129,122,57,194,39,120,57,109,206,117,57,6,117,115,57,141,27,113,57,2,194,110,57,103,104,108,57,186,14,106,57,253,180,103,57,47,91,101,57,81,1,99,57,99,167,96,57,101,77,94,57,88,243,91,57,60,153,89,57,16,63,87,57,214,228,84,57,141,138,82,57,55,48,80,57,210,213,77,57,95,123,75,57,223,32,73,57,82,198,70,57,184,107,68,57,17,17,66,57,94,182,63,
57,159,91,61,57,211,0,59,57,252,165,56,57,26,75,54,57,44,240,51,57,51,149,49,57,48,58,47,57,34,223,44,57,10,132,42,57,232,40,40,57,188,205,37,57,135,114,35,57,73,23,33,57,2,188,30,57,178,96,28,57,89,5,26,57,249,169,23,57,144,78,21,57,32,243,18,57,169,151,16,57,42,60,14,57,164,224,11,57,24,133,9,57,133,41,7,57,236,205,4,57,77,114,2,57,169,22,0,57,254,117,251,56,159,190,246,56,55,7,242,56,198,79,237,56,76,152,232,56,201,224,227,56,63,41,223,56,173,113,218,56,21,186,213,56,118,2,209,56,209,74,204,56,
40,147,199,56,121,219,194,56,198,35,190,56,15,108,185,56,85,180,180,56,152,252,175,56,217,68,171,56,24,141,166,56,86,213,161,56,147,29,157,56,207,101,152,56,12,174,147,56,74,246,142,56,137,62,138,56,202,134,133,56,12,207,128,56,164,46,120,56,54,191,110,56,207,79,101,56,112,224,91,56,27,113,82,56,209,1,73,56,146,146,63,56,96,35,54,56,59,180,44,56,36,69,35,56,29,214,25,56,39,103,16,56,66,248,6,56,223,18,251,55,97,53,232,55,13,88,213,55,227,122,194,55,230,157,175,55,25,193,156,55,124,228,137,55,38,16,
110,55,190,87,72,55,195,159,34,55,118,208,249,54,82,98,174,54,69,234,69,54,124,71,60,53,252,136,207,181,195,152,126,182,111,181,202,182,176,14,11,183,22,194,48,183,230,116,86,183,28,39,124,183,90,236,144,183,212,196,163,183,252,156,182,183,206,116,201,183,73,76,220,183,107,35,239,183,25,253,0,184,78,104,10,184,83,211,19,184,40,62,29,184,203,168,38,184,60,19,48,184,121,125,57,184,129,231,66,184,84,81,76,184,240,186,85,184,85,36,95,184,129,141,104,184,116,246,113,184,44,95,123,184,212,99,130,184,244,
23,135,184,245,203,139,184,215,127,144,184,153,51,149,184,59,231,153,184,188,154,158,184,28,78,163,184,90,1,168,184,117,180,172,184,110,103,177,184,68,26,182,184,246,204,186,184,131,127,191,184,236,49,196,184,48,228,200,184,77,150,205,184,69,72,210,184,22,250,214,184,191,171,219,184,65,93,224,184,155,14,229,184,203,191,233,184,211,112,238,184,177,33,243,184,100,210,247,184,237,130,252,184,165,153,0,185,190,241,2,185,193,73,5,185,173,161,7,185,131,249,9,185,66,81,12,185,234,168,14,185,123,0,17,185,
244,87,19,185,85,175,21,185,158,6,24,185,206,93,26,185,230,180,28,185,229,11,31,185,203,98,33,185,152,185,35,185,75,16,38,185,229,102,40,185,100,189,42,185,201,19,45,185,19,106,47,185,66,192,49,185,87,22,52,185,80,108,54,185,45,194,56,185,239,23,59,185,149,109,61,185,30,195,63,185,139,24,66,185,219,109,68,185,14,195,70,185,36,24,73,185,28,109,75,185,246,193,77,185,178,22,80,185,80,107,82,185,208,191,84,185,48,20,87,185,114,104,89,185,148,188,91,185,151,16,94,185,122,100,96,185,62,184,98,185,224,11,
101,185,99,95,103,185,196,178,105,185,5,6,108,185,36,89,110,185,34,172,112,185,254,254,114,185,185,81,117,185,81,164,119,185,198,246,121,185,25,73,124,185,73,155,126,185,171,118,128,185,159,159,129,185,130,200,130,185,83,241,131,185,18,26,133,185,190,66,134,185,88,107,135,185,224,147,136,185,85,188,137,185,183,228,138,185,7,13,140,185,68,53,141,185,109,93,142,185,132,133,143,185,135,173,144,185,118,213,145,185,82,253,146,185,27,37,148,185,207,76,149,185,112,116,150,185,253,155,151,185,117,195,152,
185,217,234,153,185,41,18,155,185,100,57,156,185,139,96,157,185,157,135,158,185,153,174,159,185,129,213,160,185,84,252,161,185,18,35,163,185,186,73,164,185,76,112,165,185,201,150,166,185,48,189,167,185,130,227,168,185,189,9,170,185,226,47,171,185,241,85,172,185,234,123,173,185,204,161,174,185,152,199,175,185,77,237,176,185,235,18,178,185,114,56,179,185,226,93,180,185,58,131,181,185,124,168,182,185,166,205,183,185,184,242,184,185,179,23,186,185,150,60,187,185,97,97,188,185,20,134,189,185,175,170,190,
185,50,207,191,185,156,243,192,185,237,23,194,185,38,60,195,185,71,96,196,185,78,132,197,185,60,168,198,185,17,204,199,185,205,239,200,185,112,19,202,185,249,54,203,185,104,90,204,185,190,125,205,185,250,160,206,185,28,196,207,185,36,231,208,185,17,10,210,185,229,44,211,185,158,79,212,185,60,114,213,185,192,148,214,185,40,183,215,185,118,217,216,185,169,251,217,185,193,29,219,185,189,63,220,185,158,97,221,185,100,131,222,185,14,165,223,185,156,198,224,185,14,232,225,185,100,9,227,185,158,42,228,185,
188,75,229,185,190,108,230,185,163,141,231,185,107,174,232,185,23,207,233,185,166,239,234,185,24,16,236,185,109,48,237,185,165,80,238,185,191,112,239,185,188,144,240,185,156,176,241,185,93,208,242,185,1,240,243,185,136,15,245,185,240,46,246,185,58,78,247,185,102,109,248,185,115,140,249,185,98,171,250,185,50,202,251,185,228,232,252,185,119,7,254,185,235,37,255,185,32,34,0,186,59,177,0,186,70,64,1,186,65,207,1,186,45,94,2,186,9,237,2,186,213,123,3,186,145,10,4,186,61,153,4,186,217,39,5,186,101,182,
5,186,224,68,6,186,76,211,6,186,167,97,7,186,242,239,7,186,44,126,8,186,86,12,9,186,111,154,9,186,120,40,10,186,112,182,10,186,88,68,11,186,46,210,11,186,244,95,12,186,169,237,12,186,77,123,13,186,224,8,14,186,98,150,14,186,211,35,15,186,51,177,15,186,129,62,16,186,191,203,16,186,234,88,17,186,5,230,17,186,14,115,18,186,5,0,19,186,235,140,19,186,192,25,20,186,130,166,20,186,51,51,21,186,210,191,21,186,95,76,22,186,219,216,22,186,68,101,23,186,155,241,23,186,225,125,24,186,20,10,25,186,53,150,25,186,
67,34,26,186,63,174,26,186,41,58,27,186,1,198,27,186,198,81,28,186,120,221,28,186,24,105,29,186,165,244,29,186,32,128,30,186,135,11,31,186,220,150,31,186,30,34,32,186,77,173,32,186,105,56,33,186,114,195,33,186,104,78,34,186,74,217,34,186,26,100,35,186,214,238,35,186,127,121,36,186,20,4,37,186,150,142,37,186,5,25,38,186,95,163,38,186,167,45,39,186,218,183,39,186,250,65,40,186,6,204,40,186,254,85,41,186,226,223,41,186,179,105,42,186,111,243,42,186,23,125,43,186,171,6,44,186,43,144,44,186,151,25,45,
186,238,162,45,186,49,44,46,186,95,181,46,186,121,62,47,186,127,199,47,186,112,80,48,186,76,217,48,186,20,98,49,186,199,234,49,186,101,115,50,186,238,251,50,186,98,132,51,186,194,12,52,186,12,149,52,186,65,29,53,186,97,165,53,186,108,45,54,186,98,181,54,186,66,61,55,186,13,197,55,186,195,76,56,186,99,212,56,186,237,91,57,186,98,227,57,186,194,106,58,186,11,242,58,186,63,121,59,186,93,0,60,186,102,135,60,186,88,14,61,186,52,149,61,186,251,27,62,186,171,162,62,186,69,41,63,186,201,175,63,186,55,54,
64,186,142,188,64,186,207,66,65,186,250,200,65,186,14,79,66,186,12,213,66,186,243,90,67,186,195,224,67,186,125,102,68,186,32,236,68,186,172,113,69,186,34,247,69,186,128,124,70,186,200,1,71,186,249,134,71,186,18,12,72,186,21,145,72,186,0,22,73,186,212,154,73,186,145,31,74,186,54,164,74,186,196,40,75,186,59,173,75,186,154,49,76,186,225,181,76,186,17,58,77,186,42,190,77,186,42,66,78,186,19,198,78,186,228,73,79,186,158,205,79,186,63,81,80,186,200,212,80,186,57,88,81,186,147,219,81,186,212,94,82,186,253,
225,82,186,13,101,83,186,6,232,83,186,230,106,84,186,173,237,84,186,92,112,85,186,243,242,85,186,113,117,86,186,215,247,86,186,35,122,87,186,88,252,87,186,115,126,88,186,117,0,89,186,95,130,89,186,48,4,90,186,231,133,90,186,134,7,91,186,12,137,91,186,120,10,92,186,203,139,92,186,6,13,93,186,38,142,93,186,46,15,94,186,28,144,94,186,240,16,95,186,171,145,95,186,77,18,96,186,213,146,96,186,67,19,97,186,151,147,97,186,210,19,98,186,243,147,98,186,250,19,99,186,231,147,99,186,186,19,100,186,115,147,100,
186,18,19,101,186,151,146,101,186,2,18,102,186,83,145,102,186,137,16,103,186,165,143,103,186,166,14,104,186,141,141,104,186,90,12,105,186,12,139,105,186,163,9,106,186,32,136,106,186,130,6,107,186,202,132,107,186,246,2,108,186,8,129,108,186,255,254,108,186,219,124,109,186,156,250,109,186,65,120,110,186,204,245,110,186,60,115,111,186,144,240,111,186,201,109,112,186,231,234,112,186,233,103,113,186,209,228,113,186,156,97,114,186,76,222,114,186,225,90,115,186,90,215,115,186,183,83,116,186,249,207,116,
186,30,76,117,186,40,200,117,186,22,68,118,186,233,191,118,186,159,59,119,186,57,183,119,186,183,50,120,186,26,174,120,186,96,41,121,186,137,164,121,186,151,31,122,186,136,154,122,186,93,21,123,186,21,144,123,186,177,10,124,186,49,133,124,186,147,255,124,186,218,121,125,186,3,244,125,186,16,110,126,186,1,232,126,186,212,97,127,186,138,219,127,186,146,42,128,186,80,103,128,186,0,164,128,186,162,224,128,186,52,29,129,186,185,89,129,186,46,150,129,186,149,210,129,186,237,14,130,186,55,75,130,186,114,
135,130,186,158,195,130,186,188,255,130,186,203,59,131,186,203,119,131,186,188,179,131,186,158,239,131,186,114,43,132,186,54,103,132,186,236,162,132,186,146,222,132,186,42,26,133,186,179,85,133,186,45,145,133,186,151,204,133,186,243,7,134,186,64,67,134,186,125,126,134,186,172,185,134,186,203,244,134,186,219,47,135,186,220,106,135,186,205,165,135,186,176,224,135,186,131,27,136,186,71,86,136,186,251,144,136,186,160,203,136,186,54,6,137,186,189,64,137,186,52,123,137,186,155,181,137,186,243,239,137,186,
60,42,138,186,117,100,138,186,159,158,138,186,185,216,138,186,195,18,139,186,190,76,139,186,169,134,139,186,133,192,139,186,81,250,139,186,13,52,140,186,186,109,140,186,86,167,140,186,227,224,140,186,97,26,141,186,206,83,141,186,44,141,141,186,122,198,141,186,183,255,141,186,229,56,142,186,4,114,142,186,18,171,142,186,16,228,142,186,254,28,143,186,220,85,143,186,170,142,143,186,104,199,143,186,22,0,144,186,180,56,144,186,66,113,144,186,192,169,144,186,45,226,144,186,138,26,145,186,215,82,145,186,
20,139,145,186,65,195,145,186,93,251,145,186,105,51,146,186,100,107,146,186,80,163,146,186,43,219,146,186,245,18,147,186,175,74,147,186,89,130,147,186,242,185,147,186,123,241,147,186,243,40,148,186,90,96,148,186,177,151,148,186,248,206,148,186,46,6,149,186,83,61,149,186,104,116,149,186,108,171,149,186,95,226,149,186,66,25,150,186,20,80,150,186,213,134,150,186,133,189,150,186,37,244,150,186,179,42,151,186,49,97,151,186,158,151,151,186,250,205,151,186,70,4,152,186,128,58,152,186,169,112,152,186,194,
166,152,186,201,220,152,186,192,18,153,186,165,72,153,186,121,126,153,186,61,180,153,186,239,233,153,186],"i8",4,y.a+614400);
Q([144,31,154,186,32,85,154,186,159,138,154,186,12,192,154,186,104,245,154,186,180,42,155,186,237,95,155,186,22,149,155,186,45,202,155,186,51,255,155,186,40,52,156,186,11,105,156,186,221,157,156,186,158,210,156,186,77,7,157,186,235,59,157,186,119,112,157,186,242,164,157,186,91,217,157,186,179,13,158,186,249,65,158,186,46,118,158,186,81,170,158,186,98,222,158,186,98,18,159,186,80,70,159,186,45,122,159,186,248,173,159,186,177,225,159,186,88,21,160,186,238,72,160,186,114,124,160,186,228,175,160,186,
68,227,160,186,147,22,161,186,207,73,161,186,250,124,161,186,19,176,161,186,26,227,161,186,15,22,162,186,242,72,162,186,195,123,162,186,130,174,162,186,47,225,162,186,202,19,163,186,83,70,163,186,202,120,163,186,47,171,163,186,130,221,163,186,195,15,164,186,241,65,164,186,13,116,164,186,23,166,164,186,15,216,164,186,245,9,165,186,200,59,165,186,137,109,165,186,56,159,165,186,213,208,165,186,95,2,166,186,215,51,166,186,60,101,166,186,143,150,166,186,208,199,166,186,254,248,166,186,26,42,167,186,35,
91,167,186,26,140,167,186,255,188,167,186,208,237,167,186,144,30,168,186,60,79,168,186,215,127,168,186,94,176,168,186,211,224,168,186,53,17,169,186,133,65,169,186,194,113,169,186,236,161,169,186,4,210,169,186,8,2,170,186,250,49,170,186,218,97,170,186,166,145,170,186,96,193,170,186,7,241,170,186,155,32,171,186,28,80,171,186,138,127,171,186,229,174,171,186,46,222,171,186,99,13,172,186,134,60,172,186,149,107,172,186,146,154,172,186,123,201,172,186,81,248,172,186,21,39,173,186,197,85,173,186,98,132,173,
186,237,178,173,186,100,225,173,186,199,15,174,186,24,62,174,186,86,108,174,186,128,154,174,186,151,200,174,186,155,246,174,186,139,36,175,186,105,82,175,186,51,128,175,186,234,173,175,186,141,219,175,186,29,9,176,186,154,54,176,186,3,100,176,186,89,145,176,186,155,190,176,186,202,235,176,186,230,24,177,186,238,69,177,186,227,114,177,186,196,159,177,186,146,204,177,186,76,249,177,186,242,37,178,186,133,82,178,186,5,127,178,186,112,171,178,186,200,215,178,186,13,4,179,186,62,48,179,186,91,92,179,186,
100,136,179,186,90,180,179,186,60,224,179,186,10,12,180,186,197,55,180,186,107,99,180,186,254,142,180,186,125,186,180,186,233,229,180,186,64,17,181,186,132,60,181,186,179,103,181,186,207,146,181,186,215,189,181,186,203,232,181,186,170,19,182,186,118,62,182,186,46,105,182,186,210,147,182,186,98,190,182,186,222,232,182,186,70,19,183,186,154,61,183,186,218,103,183,186,5,146,183,186,29,188,183,186,32,230,183,186,15,16,184,186,234,57,184,186,177,99,184,186,100,141,184,186,2,183,184,186,140,224,184,186,
2,10,185,186,100,51,185,186,177,92,185,186,235,133,185,186,15,175,185,186,32,216,185,186,28,1,186,186,4,42,186,186,215,82,186,186,150,123,186,186,65,164,186,186,215,204,186,186,88,245,186,186,198,29,187,186,30,70,187,186,99,110,187,186,147,150,187,186,174,190,187,186,181,230,187,186,167,14,188,186,132,54,188,186,77,94,188,186,2,134,188,186,162,173,188,186,45,213,188,186,163,252,188,186,5,36,189,186,82,75,189,186,139,114,189,186,175,153,189,186,190,192,189,186,184,231,189,186,158,14,190,186,111,53,
190,186,43,92,190,186,210,130,190,186,101,169,190,186,226,207,190,186,75,246,190,186,159,28,191,186,222,66,191,186,8,105,191,186,30,143,191,186,30,181,191,186,10,219,191,186,224,0,192,186,162,38,192,186,78,76,192,186,230,113,192,186,104,151,192,186,214,188,192,186,47,226,192,186,114,7,193,186,161,44,193,186,186,81,193,186,190,118,193,186,173,155,193,186,135,192,193,186,76,229,193,186,252,9,194,186,151,46,194,186,28,83,194,186,141,119,194,186,232,155,194,186,46,192,194,186,94,228,194,186,122,8,195,
186,128,44,195,186,113,80,195,186,76,116,195,186,18,152,195,186,195,187,195,186,95,223,195,186,229,2,196,186,86,38,196,186,178,73,196,186,248,108,196,186,41,144,196,186,68,179,196,186,74,214,196,186,59,249,196,186,22,28,197,186,220,62,197,186,140,97,197,186,39,132,197,186,172,166,197,186,28,201,197,186,118,235,197,186,186,13,198,186,233,47,198,186,3,82,198,186,7,116,198,186,245,149,198,186,206,183,198,186,145,217,198,186,62,251,198,186,214,28,199,186,88,62,199,186,197,95,199,186,28,129,199,186,93,
162,199,186,136,195,199,186,158,228,199,186,158,5,200,186,136,38,200,186,93,71,200,186,27,104,200,186,196,136,200,186,87,169,200,186,213,201,200,186,60,234,200,186,142,10,201,186,202,42,201,186,240,74,201,186,0,107,201,186,250,138,201,186,222,170,201,186,173,202,201,186,101,234,201,186,8,10,202,186,148,41,202,186,11,73,202,186,108,104,202,186,182,135,202,186,235,166,202,186,10,198,202,186,19,229,202,186,5,4,203,186,226,34,203,186,169,65,203,186,89,96,203,186,244,126,203,186,120,157,203,186,230,187,
203,186,63,218,203,186,129,248,203,186,173,22,204,186,194,52,204,186,194,82,204,186,172,112,204,186,127,142,204,186,60,172,204,186,227,201,204,186,116,231,204,186,238,4,205,186,83,34,205,186,161,63,205,186,217,92,205,186,250,121,205,186,5,151,205,186,250,179,205,186,217,208,205,186,161,237,205,186,84,10,206,186,239,38,206,186,117,67,206,186,228,95,206,186,60,124,206,186,127,152,206,186,171,180,206,186,192,208,206,186,191,236,206,186,168,8,207,186,123,36,207,186,54,64,207,186,220,91,207,186,107,119,
207,186,227,146,207,186,70,174,207,186,145,201,207,186,198,228,207,186,229,255,207,186,237,26,208,186,222,53,208,186,185,80,208,186,126,107,208,186,44,134,208,186,195,160,208,186,68,187,208,186,174,213,208,186,2,240,208,186,63,10,209,186,101,36,209,186,117,62,209,186,110,88,209,186,80,114,209,186,28,140,209,186,209,165,209,186,112,191,209,186,248,216,209,186,105,242,209,186,195,11,210,186,7,37,210,186,52,62,210,186,74,87,210,186,74,112,210,186,51,137,210,186,5,162,210,186,192,186,210,186,101,211,
210,186,242,235,210,186,105,4,211,186,201,28,211,186,19,53,211,186,69,77,211,186,97,101,211,186,102,125,211,186,84,149,211,186,43,173,211,186,235,196,211,186,149,220,211,186,39,244,211,186,163,11,212,186,8,35,212,186,86,58,212,186,141,81,212,186,173,104,212,186,182,127,212,186,168,150,212,186,131,173,212,186,71,196,212,186,245,218,212,186,139,241,212,186,10,8,213,186,115,30,213,186,196,52,213,186,255,74,213,186,34,97,213,186,46,119,213,186,36,141,213,186,2,163,213,186,201,184,213,186,121,206,213,
186,19,228,213,186,149,249,213,186,0,15,214,186,83,36,214,186,144,57,214,186,182,78,214,186,197,99,214,186,188,120,214,186,157,141,214,186,102,162,214,186,24,183,214,186,179,203,214,186,55,224,214,186,164,244,214,186,249,8,215,186,55,29,215,186,95,49,215,186,111,69,215,186,103,89,215,186,73,109,215,186,19,129,215,186,199,148,215,186,99,168,215,186,231,187,215,186,85,207,215,186,171,226,215,186,234,245,215,186,18,9,216,186,34,28,216,186,28,47,216,186,254,65,216,186,200,84,216,186,124,103,216,186,24,
122,216,186,156,140,216,186,10,159,216,186,96,177,216,186,159,195,216,186,199,213,216,186,215,231,216,186,208,249,216,186,177,11,217,186,123,29,217,186,46,47,217,186,202,64,217,186,78,82,217,186,186,99,217,186,16,117,217,186,78,134,217,186,116,151,217,186,131,168,217,186,123,185,217,186,91,202,217,186,36,219,217,186,214,235,217,186,112,252,217,186,242,12,218,186,94,29,218,186,177,45,218,186,238,61,218,186,18,78,218,186,32,94,218,186,22,110,218,186,244,125,218,186,187,141,218,186,107,157,218,186,3,
173,218,186,131,188,218,186,236,203,218,186,62,219,218,186,120,234,218,186,154,249,218,186,165,8,219,186,152,23,219,186,116,38,219,186,57,53,219,186,230,67,219,186,123,82,219,186,249,96,219,186,95,111,219,186,173,125,219,186,228,139,219,186,4,154,219,186,12,168,219,186,252,181,219,186,213,195,219,186,150,209,219,186,64,223,219,186,210,236,219,186,76,250,219,186,175,7,220,186,250,20,220,186,46,34,220,186,74,47,220,186,78,60,220,186,59,73,220,186,16,86,220,186,205,98,220,186,115,111,220,186,1,124,220,
186,120,136,220,186,215,148,220,186,30,161,220,186,77,173,220,186,101,185,220,186,102,197,220,186,78,209,220,186,31,221,220,186,216,232,220,186,122,244,220,186,4,0,221,186,118,11,221,186,209,22,221,186,19,34,221,186,62,45,221,186,82,56,221,186,78,67,221,186,50,78,221,186,254,88,221,186,179,99,221,186,79,110,221,186,213,120,221,186,66,131,221,186,152,141,221,186,214,151,221,186,252,161,221,186,11,172,221,186,1,182,221,186,224,191,221,186,168,201,221,186,87,211,221,186,239,220,221,186,111,230,221,186,
215,239,221,186,40,249,221,186,97,2,222,186,130,11,222,186,139,20,222,186,125,29,222,186,86,38,222,186,24,47,222,186,194,55,222,186,85,64,222,186,208,72,222,186,50,81,222,186,125,89,222,186,177,97,222,186,204,105,222,186,208,113,222,186,188,121,222,186,144,129,222,186,76,137,222,186,241,144,222,186,126,152,222,186,243,159,222,186,80,167,222,186,149,174,222,186,195,181,222,186,216,188,222,186,214,195,222,186,188,202,222,186,139,209,222,186,65,216,222,186,224,222,222,186,103,229,222,186,214,235,222,
186,45,242,222,186,108,248,222,186,148,254,222,186,164,4,223,186,155,10,223,186,124,16,223,186,68,22,223,186,244,27,223,186,141,33,223,186,14,39,223,186,119,44,223,186,200,49,223,186,1,55,223,186,34,60,223,186,44,65,223,186,30,70,223,186,248,74,223,186,186,79,223,186,100,84,223,186,246,88,223,186,113,93,223,186,212,97,223,186,31,102,223,186,82,106,223,186,109,110,223,186,112,114,223,186,92,118,223,186,47,122,223,186,235,125,223,186,143,129,223,186,27,133,223,186,144,136,223,186,236,139,223,186,49,
143,223,186,94,146,223,186,114,149,223,186,112,152,223,186,85,155,223,186,34,158,223,186,216,160,223,186,117,163,223,186,251,165,223,186,105,168,223,186,191,170,223,186,254,172,223,186,36,175,223,186,51,177,223,186,42,179,223,186,9,181,223,186,208,182,223,186,127,184,223,186,23,186,223,186,150,187,223,186,254,188,223,186,78,190,223,186,134,191,223,186,166,192,223,186,175,193,223,186,159,194,223,186,120,195,223,186,57,196,223,186,226,196,223,186,115,197,223,186,237,197,223,186,78,198,223,186,152,198,
223,186,202,198,223,186,228,198,223,186,230,198,223,186,209,198,223,186,163,198,223,186,94,198,223,186,1,198,223,186,140,197,223,186,0,197,223,186,91,196,223,186,159,195,223,186,203,194,223,186,223,193,223,186,219,192,223,186,192,191,223,186,141,190,223,186,65,189,223,186,223,187,223,186,100,186,223,186,209,184,223,186,39,183,223,186,101,181,223,186,139,179,223,186,153,177,223,186,144,175,223,186,111,173,223,186,54,171,223,186,229,168,223,186,124,166,223,186,252,163,223,186,100,161,223,186,180,158,
223,186,236,155,223,186,13,153,223,186,21,150,223,186,6,147,223,186,224,143,223,186,161,140,223,186,75,137,223,186,221,133,223,186,87,130,223,186,186,126,223,186,4,123,223,186,56,119,223,186,83,115,223,186,86,111,223,186,66,107,223,186,22,103,223,186,211,98,223,186,119,94,223,186,4,90,223,186,121,85,223,186,215,80,223,186,29,76,223,186,75,71,223,186,97,66,223,186,96,61,223,186,71,56,223,186,22,51,223,186,206,45,223,186,109,40,223,186,246,34,223,186,102,29,223,186,191,23,223,186,0,18,223,186,42,12,
223,186,60,6,223,186,54,0,223,186,24,250,222,186,227,243,222,186,150,237,222,186,50,231,222,186,182,224,222,186,34,218,222,186,119,211,222,186,180,204,222,186,217,197,222,186,231,190,222,186,221,183,222,186,188,176,222,186,131,169,222,186,50,162,222,186,202,154,222,186,74,147,222,186,179,139,222,186,4,132,222,186,61,124,222,186,95,116,222,186,105,108,222,186,92,100,222,186,55,92,222,186,250,83,222,186,166,75,222,186,59,67,222,186,183,58,222,186,29,50,222,186,107,41,222,186,161,32,222,186,192,23,222,
186,199,14,222,186,183,5,222,186,143,252,221,186,79,243,221,186,249,233,221,186,138,224,221,186,4,215,221,186,103,205,221,186,178,195,221,186,230,185,221,186,2,176,221,186,7,166,221,186,245,155,221,186,202,145,221,186,137,135,221,186,48,125,221,186,191,114,221,186,56,104,221,186,152,93,221,186,226,82,221,186,19,72,221,186,46,61,221,186,49,50,221,186,29,39,221,186,241,27,221,186,174,16,221,186,83,5,221,186,225,249,220,186,88,238,220,186,184,226,220,186,0,215,220,186,48,203,220,186,74,191,220,186,76,
179,220,186,54,167,220,186,10,155,220,186,198,142,220,186,106,130,220,186,248,117,220,186,110,105,220,186,205,92,220,186,20,80,220,186,69,67,220,186,94,54,220,186,95,41,220,186,74,28,220,186,29,15,220,186,217,1,220,186,126,244,219,186,11,231,219,186,129,217,219,186,224,203,219,186,40,190,219,186,89,176,219,186,114,162,219,186,117,148,219,186,96,134,219,186,52,120,219,186,240,105,219,186,150,91,219,186,36,77,219,186,155,62,219,186,251,47,219,186,68,33,219,186,118,18,219,186,145,3,219,186,149,244,218,
186,129,229,218,186,86,214,218,186,21,199,218,186,188,183,218,186,76,168,218,186,197,152,218,186,39,137,218,186,114,121,218,186,166,105,218,186,195,89,218,186,201,73,218,186,184,57,218,186,144,41,218,186,80,25,218,186,250,8,218,186,141,248,217,186,9,232,217,186,110,215,217,186,188,198,217,186,243,181,217,186,19,165,217,186,28,148,217,186,14,131,217,186,233,113,217,186,174,96,217,186,91,79,217,186,242,61,217,186,113,44,217,186,218,26,217,186,44,9,217,186,103,247,216,186,139,229,216,186,152,211,216,
186,143,193,216,186,111,175,216,186,55,157,216,186,233,138,216,186,133,120,216,186,9,102,216,186,119,83,216,186,206,64,216,186,14,46,216,186,55,27,216,186,74,8,216,186,69,245,215,186,43,226,215,186,249,206,215,186,177,187,215,186,82,168,215,186,220,148,215,186,80,129,215,186,173,109,215,186,243,89,215,186,34,70,215,186,59,50,215,186,62,30,215,186,41,10,215,186,255,245,214,186,189,225,214,186,101,205,214,186,246,184,214,186,113,164,214,186,213,143,214,186,35,123,214,186,90,102,214,186,122,81,214,186,
132,60,214,186,120,39,214,186,85,18,214,186,27,253,213,186,203,231,213,186,100,210,213,186,231,188,213,186,84,167,213,186,170,145,213,186,234,123,213,186,19,102,213,186,38,80,213,186,34,58,213,186,8,36,213,186,216,13,213,186,145,247,212,186,52,225,212,186,192,202,212,186,54,180,212,186,150,157,212,186,224,134,212,186,19,112,212,186,48,89,212,186,54,66,212,186,39,43,212,186,1,20,212,186,197,252,211,186,114,229,211,186,9,206,211,186,138,182,211,186,245,158,211,186,74,135,211,186,136,111,211,186,177,
87,211,186,195,63,211,186,191,39,211,186,164,15,211,186,116,247,210,186,46,223,210,186,209,198,210,186,94,174,210,186,213,149,210,186,55,125,210,186,130,100,210,186,183,75,210,186,213,50,210,186,222,25,210,186,209,0,210,186,174,231,209,186,117,206,209,186,38,181,209,186,193,155,209,186,70,130,209,186,181,104,209,186,14,79,209,186,81,53,209,186,126,27,209,186,149,1,209,186,151,231,208,186,130,205,208,186,88,179,208,186,23,153,208,186,193,126,208,186,85,100,208,186,212,73,208,186,60,47,208,186,143,
20,208,186,204,249,207,186,243,222,207,186,4,196,207,186,0,169,207,186,229,141,207,186,181,114,207,186,112,87,207,186,21,60,207,186,164,32,207,186,29,5,207,186,129,233,206,186,207,205,206,186,7,178,206,186,42,150,206,186,55,122,206,186,46,94,206,186,16,66,206,186,221,37,206,186,148,9,206,186,53,237,205,186,193,208,205,186,55,180,205,186,152,151,205,186,227,122,205,186,25,94,205,186,57,65,205,186,68,36,205,186,57,7,205,186,25,234,204,186,228,204,204,186,153,175,204,186,57,146,204,186,195,116,204,186,
56,87,204,186,152,57,204,186,226,27,204,186,23,254,203,186,55,224,203,186,65,194,203,186,54,164,203,186,22,134,203,186,225,103,203,186,150,73,203,186,54,43,203,186,193,12,203,186,55,238,202,186,151,207,202,186,227,176,202,186,25,146,202,186,58,115,202,186,70,84,202,186,61,53,202,186,30,22,202,186,235,246,201,186,163,215,201,186,69,184,201,186,210,152,201,186,75,121,201,186,174,89,201,186,253,57,201,186,54,26,201,186,91,250,200,186,106,218,200,186,101,186,200,186,74,154,200,186,27,122,200,186,215,
89,200,186,126,57,200,186,16,25,200,186,141,248,199,186,245,215,199,186,73,183,199,186,135,150,199,186,177,117,199,186,198,84,199,186,199,51,199,186,178,18,199,186,137,241,198,186,75,208,198,186,249,174,198,186,145,141,198,186,21,108,198,186,133,74,198,186,223,40,198,186,38,7,198,186,87,229,197,186,116,195,197,186,124,161,197,186,112,127,197,186,79,93,197,186,26,59,197,186,208,24,197,186,113,246,196,186,254,211,196,186,119,177,196,186,219,142,196,186,43,108,196,186,102,73,196,186,141,38,196,186,159,
3,196,186,157,224,195,186,135,189,195,186,92,154,195,186,29,119,195,186,202,83,195,186,98,48,195,186,230,12,195,186,86,233,194,186,177,197,194,186,248,161,194,186,43,126,194,186,74,90,194,186,85,54,194,186,75,18,194,186,45,238,193,186,251,201,193,186,181,165,193,186,91,129,193,186,237,92,193,186,107,56,193,186,212,19,193,186,42,239,192,186,107,202,192,186,153,165,192,186,178,128,192,186,184,91,192,186,169,54,192,186,135,17,192,186,80,236,191,186,6,199,191,186,168,161,191,186,54,124,191,186,176,86,
191,186,22,49,191,186,104,11,191,186,167,229,190,186,209,191,190,186,232,153,190,186,235,115,190,186,219,77,190,186,182,39,190,186,126,1,190,186,51,219,189,186,211,180,189,186,96,142,189,186,217,103,189,186,63,65,189,186,145,26,189,186,207,243,188,186,250,204,188,186,17,166,188,186,21,127,188,186,5,88,188,186,225,48,188,186,171,9,188,186,96,226,187,186,2,187,187,186,145,147,187,186,12,108,187,186,116,68,187,186,201,28,187,186,10,245,186,186,56,205,186,186,82,165,186,186,89,125,186,186,77,85,186,186,
45,45,186,186,251,4,186,186,181,220,185,186,91,180,185,186,239,139,185,186,111,99,185,186,220,58,185,186,54,18,185,186,125,233,184,186,177,192,184,186,210,151,184,186,223,110,184,186,218,69,184,186,193,28,184,186,149,243,183,186,87,202,183,186,5,161,183,186,160,119,183,186,41,78,183,186,158,36,183,186,1,251,182,186,80,209,182,186,141,167,182,186,183,125,182,186,206,83,182,186,210,41,182,186,195,255,181,186,162,213,181,186,110,171,181,186,39,129,181,186,205,86,181,186,96,44,181,186,225,1,181,186,79,
215,180,186,171,172,180,186,244,129,180,186,42,87,180,186,77,44,180,186,94,1,180,186,93,214,179,186,73,171,179,186,34,128,179,186,233,84,179,186,157,41,179,186,63,254,178,186,206,210,178,186,75,167,178,186,182,123,178,186,14,80,178,186,84,36,178,186,135,248,177,186,168,204,177,186,183,160,177,186,179,116,177,186,157,72,177,186,117,28,177,186,58,240,176,186,238,195,176,186,143,151,176,186,30,107,176,186,155,62,176,186,5,18,176,186,94,229,175,186,164,184,175,186,216,139,175,186,250,94,175,186,11,50,
175,186,9,5,175,186,245,215,174,186,207,170,174,186,151,125,174,186,77,80,174,186,241,34,174,186,132,245,173,186,4,200,173,186,115,154,173,186,207,108,173,186,26,63,173,186,83,17,173,186,122,227,172,186,144,181,172,186,148,135,172,186,134,89,172,186,102,43,172,186,52,253,171,186,241,206,171,186,156,160,171,186,54,114,171,186,190,67,171,186,52,21,171,186,153,230,170,186,236,183,170,186,46,137,170,186,94,90,170,186,125,43,170,186,138,252,169,186,134,205,169,186,112,158,169,186,73,111,169,186,17,64,
169,186,199,16,169,186,108,225,168,186,255,177,168,186,130,130,168,186,242,82,168,186,82,35,168,186,160,243,167,186,222,195,167,186,10,148,167,186,36,100,167,186,46,52,167,186,38,4,167,186,14,212,166,186,228,163,166,186,169,115,166,186,93,67,166,186,0,19,166,186,146,226,165,186,19,178,165,186,132,129,165,186,227,80,165,186,49,32,165,186,110,239,164,186,155,190,164,186,182,141,164,186,193,92,164,186,187,43,164,186,164,250,163,186,124,201,163,186,67,152,163,186,250,102,163,186,160,53,163,186,54,4,163,
186,186,210,162,186,46,161,162,186,146,111,162,186,228,61,162,186,39,12,162,186,88,218,161,186,121,168,161,186,138,118,161,186,138,68,161,186,121,18,161,186,89,224,160,186,39,174,160,186,229,123,160,186,147,73,160,186,49,23,160,186,190,228,159,186,59,178,159,186,167,127,159,186,3,77,159,186,79,26,159,186,139,231,158,186,182,180,158,186,210,129,158,186,221,78,158,186,216,27,158,186,195,232,157,186,157,181,157,186,104,130,157,186,34,79,157,186,205,27,157,186,103,232,156,186,242,180,156,186,108,129,
156,186,215,77,156,186,50,26,156,186,124,230,155,186,183,178,155,186,226,126,155,186,253,74,155,186,8,23,155,186,4,227,154,186,240,174,154,186,204,122,154,186,152,70,154,186,84,18,154,186,1,222,153,186,158,169,153,186,44,117,153,186,170,64,153,186,24,12,153,186,119,215,152,186,198,162,152,186,6,110,152,186,54,57,152,186,87,4,152,186,104,207,151,186,106,154,151,186,92,101,151,186,63,48,151,186,19,251,150,186,215,197,150,186,140,144,150,186,50,91,150,186,200,37,150,186,79,240,149,186,199,186,149,186,
48,133,149,186,138,79,149,186,212,25,149,186,15,228,148,186,59,174,148,186,88,120,148,186,102,66,148,186,101,12,148,186,85,214,147,186,54,160,147,186,8,106,147,186,203,51,147,186,127,253,146,186,36,199,146,186,187,144,146,186,66,90,146,186,187,35,146,186,36,237,145,186,127,182,145,186,204,127,145,186,9,73,145,186,56,18,145,186,88,219,144,186,105,164,144,186,108,109,144,186,96,54,144,186,70,255,143,186,29,200,143,186,229,144,143,186,159,89,143,186,75,34,143,186,232,234,142,186,118,179,142,186,246,
123,142,186,104,68,142,186,203,12,142,186,32,213,141,186,103,157,141,186,159,101,141,186,201,45,141,186,228,245,140,186,242,189,140,186,241,133,140,186,226,77,140,186,197,21,140,186,154,221,139,186,96,165,139,186,25,109,139,186,195,52,139,186,96,252,138,186,238,195,138,186,111,139,138,186,225,82,138,186,70,26,138,186,156,225,137,186,229,168,137,186,32,112,137,186,76,55,137,186,108,254,136,186,125,197,136,186,128,140,136,186,118,83,136,186,94,26,136,186,57,225,135,186,5,168,135,186,196,110,135,186,
117,53,135,186,25,252,134,186,175,194,134,186,56,137,134,186,179,79,134,186,33,22,134,186,129,220,133,186,211,162,133,186,25,105,133,186,80,47,133,186,123,245,132,186,152,187,132,186,167,129,132,186,170,71,132,186,159,13,132,186,135,211,131,186,97,153,131,186,47,95,131,186,239,36,131,186,162,234,130,186,72,176,130,186,225,117,130,186,108,59,130,186,235,0,130,186,93,198,129,186,193,139,129,186,25,81,129,186,99,22,129,186,161,219,128,186,210,160,128,186,246,101,128,186,13,43,128,186,46,224,127,186,
41,106,127,186,10,244,126,186,210,125,126,186,128,7,126,186,21,145,125,186,145,26,125,186,243,163,124,186,60,45,124,186,107,182,123,186,130,63,123,186,127,200,122,186,99,81,122,186,47,218,121,186,225,98,121,186,123,235,120,186,251,115,120,186,99,252,119,186,178,132,119,186,232,12,119,186,6,149,118,186,11,29,118,186,247,164,117,186,203,44,117,186,135,180,116,186,42,60,116,186,181,195,115,186,39,75,115,186,130,210,114,186,196,89,114,186,238,224,113,186,255,103,113,186,249,238,112,186,219,117,112,186,
165,252,111,186,87,131,111,186,241,9,111,186,115,144,110,186,222,22,110,186,49,157,109,186,108,35,109,186,144,169,108,186,156,47,108,186,145,181,107,186,110,59,107,186,52,193,106,186,227,70,106,186,122,204,105,186,251,81,105,186,100,215,104,186,182,92,104,186,240,225,103,186,20,103,103,186,33,236,102,186,23,113,102,186,247,245,101,186,191,122,101,186,113,255,100,186,12,132,100,186,144,8,100,186,254,140,99,186,85,17,99,186,150,149,98,186,192,25,98,186,212,157,97,186,210,33,97,186,185,165,96,186,138,
41,96,186,69,173,95,186,234,48,95,186,121,180,94,186,242,55,94,186,85,187,93,186,162,62,93,186,217,193,92,186,251,68,92,186,6,200,91,186,252,74,91,186,221,205,90,186,168,80,90,186,93,211,89,186,253,85,89,186,135,216,88,186,252,90,88,186,92,221,87,186,166,95,87,186,220,225,86,186,252,99,86,186,7,230,85,186,253,103,85,186,222,233,84,186,170,107,84,186,97,237,83,186,3,111,83,186,145,240,82,186,10,114,82,186,110,243,81,186,189,116,81,186,248,245,80,186,31,119,80,186,49,248,79,186,47,121,79,186,24,250,
78,186,237,122,78,186,174,251,77,186,91,124,77,186,243,252,76,186,119,125,76,186,232,253,75,186,68,126,75,186,141,254,74,186,194,126,74,186,226,254,73,186,240,126,73,186,233,254,72,186,207,126,72,186,161,254,71,186,96,126,71,186,11,254,70,186,163,125,70,186,39,253,69,186,152,124,69,186,246,251,68,186,65,123,68,186,120,250,67,186,157,121,67,186,174,248,66,186,172,119,66,186,152,246,65,186,112,117,65,186,54,244,64,186,233,114,64,186,137,241,63,186,23,112,63,186,146,238,62,186,250,108,62,186,80,235,
61,186,148,105,61,186,197,231,60,186,228,101,60,186,241,227,59,186,235,97,59,186,211,223,58,186,169,93,58,186,109,219,57,186,31,89,57,186,191,214,56,186,77,84,56,186,202,209,55,186,52,79,55,186,141,204,54,186,212,73,54,186,10,199,53,186,46,68,53,186,65,193,52,186,66,62,52,186,49,187,51,186,16,56,51,186,221,180,50,186,153,49,50,186,68,174,49,186,221,42,49,186,102,167,48,186,221,35,48,186,68,160,47,186,154,28,47,186,222,152,46,186,19,21,46,186,54,145,45,186,73,13,45,186,75,137,44,186,60,5,44,186,29,
129,43,186,238,252,42,186,174,120,42,186,94,244,41,186,254,111,41,186,141,235,40,186,12,103,40,186,123,226,39,186,218,93,39,186,42,217,38,186,105,84,38,186,152,207,37,186,183,74,37,186,199,197,36,186,199,64,36,186,183,187,35,186,152,54,35,186,105,177,34,186,43,44,34,186,221,166,33,186,128,33,33,186,19,156,32,186,152,22,32,186,13,145,31,186,115,11,31,186,201,133,30,186,17,0,30,186,74,122,29,186,116,244,28,186,143,110,28,186,155,232,27,186,152,98,27,186,135,220,26,186,103,86,26,186,57,208,25,186,252,
73,25,186,176,195,24,186,86,61,24,186,238,182,23,186,119,48,23,186,242,169,22,186,95,35,22,186,190,156,21,186,15,22,21,186,82,143,20,186,134,8,20,186,173,129,19,186,198,250,18,186,209,115,18,186,207,236,17,186,191,101,17,186,161,222,16,186,118,87,16,186,61,208,15,186,246,72,15,186,163,193,14,186,65,58,14,186,211,178,13,186,87,43,13,186,207,163,12,186,57,28,12,186,150,148,11,186,230,12,11,186,41,133,10,186,95,253,9,186,137,117,9,186,166,237,8,186,182,101,8,186,185,221,7,186,176,85,7,186,154,205,6,
186,120,69,6,186,73,189,5,186,14,53,5,186,198,172,4,186,115,36,4,186,19,156,3,186,167,19,3,186,47,139,2,186,171,2,2,186,27,122,1,186,127,241,0,186,215,104,0,186,71,192,255,185,200,174,254,185,50,157,253,185,133,139,252,185,193,121,251,185,229,103,250,185,243,85,249,185,234,67,248,185,202,49,247,185,148,31,246,185,72,13,245,185,229,250,243,185,107,232,242,185,220,213,241,185,55,195,240,185,124,176,239,185,171,157,238,185,196,138,237,185,200,119,236,185,183,100,235,185,144,81,234,185,85,62,233,185,
4,43,232,185,158,23,231,185,35,4,230,185,148,240,228,185,240,220,227,185,56,201,226,185,107,181,225,185,138,161,224,185,149,141,223,185,140,121,222,185,111,101,221,185,62,81,220,185,250,60,219,185,162,40,218,185,55,20,217,185,184,255,215,185,38,235,214,185,129,214,213,185,201,193,212,185,255,172,211,185,33,152,210,185,49,131,209,185,47,110,208,185,26,89,207,185,242,67,206,185,185,46,205,185,110,25,204,185,16,4,203,185,161,238,201,185,32,217,200,185,142,195,199,185,234,173,198,185,53,152,197,185,111,
130,196,185,151,108,195,185,175,86,194,185,181,64,193,185,171,42,192,185,145,20,191,185,101,254,189,185,42,232,188,185,222,209,187,185,130,187,186,185,22,165,185,185,154,142,184,185,14,120,183,185,114,97,182,185,199,74,181,185,12,52,180,185,66,29,179,185,105,6,178,185,129,239,176,185,138,216,175,185,131,193,174,185,110,170,173,185,75,147,172,185,25,124,171,185,216,100,170,185,137,77,169,185,44,54,168,185,193,30,167,185,72,7,166,185,193,239,164,185,44,216,163,185,138,192,162,185,218,168,161,185,29,
145,160,185,83,121,159,185,123,97,158,185,151,73,157,185,166,49,156,185,167,25,155,185,157,1,154,185,133,233,152,185,98,209,151,185,49,185,150,185,245,160,149,185,173,136,148,185,89,112,147,185,248,87,146,185,141,63,145,185,21,39,144,185,146,14,143,185,4,246,141,185,106,221,140,185,197,196,139,185,22,172,138,185,91,147,137,185,150,122,136,185,197,97,135,185,235,72,134,185,6,48,133,185,22,23,132,185,29,254,130,185,25,229,129,185,11,204,128,185,232,101,127,185,165,51,125,185,80,1,123,185,231,206,120,
185,108,156,118,185,222,105,116,185,62,55,114,185,139,4,112,185,199,209,109,185,242,158,107,185,11,108,105,185,19,57,103,185,10,6,101,185,240,210,98,185,198,159,96,185,140,108,94,185,66,57,92,185,232,5,90,185,127,210,87,185,6,159,85,185,127,107,83,185,233,55,81,185,68,4,79,185,145,208,76,185,208,156,74,185,1,105,72,185,36,53,70,185,59,1,68,185,68,205,65,185,64,153,63,185,47,101,61,185,18,49,59,185,233,252,56,185,181,200,54,185,116,148,52,185,40,96,50,185,208,43,48,185,110,247,45,185,1,195,43,185,
137,142,41,185,8,90,39,185,124,37,37,185,230,240,34,185,71,188,32,185,158,135,30,185,236,82,28,185,49,30,26,185,110,233,23,185,162,180,21,185,207,127,19,185,243,74,17,185,15,22,15,185,36,225,12,185,50,172,10,185,57,119,8,185,57,66,6,185,51,13,4,185,38,216,1,185,38,70,255,184,245,219,250,184,184,113,246,184,113,7,242,184,32,157,237,184,197,50,233,184,97,200,228,184,244,93,224,184,126,243,219,184,1,137,215,184,124,30,211,184,241,179,206,184,95,73,202,184,199,222,197,184,41,116,193,184,135,9,189,184,
224,158,184,184,52,52,180,184,133,201,175,184,211,94,171,184,31,244,166,184,104,137,162,184,175,30,158,184,245,179,153,184,58,73,149,184,127,222,144,184,196,115,140,184,10,9,136,184,81,158,131,184,50,103,126,184,199,145,117,184,96,188,108,184,0,231,99,184,166,17,91,184,84,60,82,184,11,103,73,184,203,145,64,184,150,188,55,184,109,231,46,184,80,18,38,184,65,61,29,184,64,104,20,184,78,147,11,184,109,190,2,184,57,211,243,183,189,41,226,183,103,128,208,183,57,215,190,183,52,46,173,183,92,133,155,183,177,
220,137,183,108,104,112,183,216,23,77,183,171,199,41,183,233,119,6,183,40,81,198,182,197,102,127,182,31,90,228,181,0,86,216,52,155,64,40,54,58,186,154,54,28,83,225,54,119,245,19,55,212,64,55,55,161,139,90,55,219,213,125,55,190,143,144,55,66,52,162,55,118,216,179,55,89,124,197,55,232,31,215,55,35,195,232,55,7,102,250,55,73,4,6,56,97,213,14,56,75,166,23,56,5,119,32,56,144,71,41,56,233,23,50,56,17,232,58,56,5,184,67,56,198,135,76,56,81,87,85,56,167,38,94,56,199,245,102,56,174,196,111,56,94,147,120,56,
234,176,128,56,7,24,133,56,7,127,137,56,233,229,141,56,172,76,146,56,80,179,150,56,213,25,155,56,57,128,159,56,125,230,163,56,160,76,168,56,162,178,172,56,130,24,177,56,63,126,181,56,218,227,185,56,81,73,190,56,165,174,194,56,212,19,199,56,223,120,203,56,196,221,207,56,132,66,212,56,30,167,216,56,145,11,221,56,222,111,225,56,2,212,229,56,255,55,234,56,212,155,238,56,127,255,242,56,2,99,247,56,90,198,251,56,196,20,0,57,70,70,2,57,178,119,4,57,8,169,6,57,73,218,8,57,114,11,11,57,134,60,13,57,131,109,
15,57,104,158,17,57,55,207,19,57,238,255,21,57,141,48,24,57,20,97,26,57,132,145,28,57,218,193,30,57,25,242,32,57,62,34,35,57,74,82,37,57,61,130,39,57,23,178,41,57,215,225,43,57,124,17,46,57,8,65,48,57,121,112,50,57,207,159,52,57,10,207,54,57,43,254,56,57,47,45,59,57,25,92,61,57,230,138,63,57,151,185,65,57,44,232,67,57,164,22,70,57,0,69,72,57,63,115,74,57,96,161,76,57,100,207,78,57,74,253,80,57,18,43,83,57,188,88,85,57,72,134,87,57,181,179,89,57,4,225,91,57,51,14,94,57,67,59,96,57,51,104,98,57,3,149,
100,57,180,193,102,57,68,238,104,57,180,26,107,57,3,71,109,57,50,115,111,57,63,159,113,57,42,203,115,57,244,246,117,57,157,34,120,57,35,78,122,57,135,121,124,57,200,164,126,57,243,103,128,57,113,125,129,57,221,146,130,57,56,168,131,57,129,189,132,57,183,210,133,57,220,231,134,57,238,252,135,57,239,17,137,57,220,38,138,57,184,59,139,57,128,80,140,57,54,101,141,57,217,121,142,57,105,142,143,57,230,162,144,57,80,183,145,57,166,203,146,57,233,223,147,57,25,244,148,57,53,8,150,57,61,28,151,57,49,48,152,
57,17,68,153,57,221,87,154,57,149,107,155,57,56,127,156,57,199,146,157,57,65,166,158,57,167,185,159,57,248,204,160,57,52,224,161,57,91,243,162,57,109,6,164,57,105,25,165,57,81,44,166,57,34,63,167,57,223,81,168,57,133,100,169,57,22,119,170,57,145,137,171,57,245,155,172,57,68,174,173,57,124,192,174,57,158,210,175,57,169,228,176,57,158,246,177,57,124,8,179,57,67,26,180,57,244,43,181,57,141,61,182,57,15,79,183,57,122,96,184,57,205,113,185,57,9,131,186,57,45,148,187,57,58,165,188,57,47,182,189,57,11,199,
190,57,208,215,191,57,124,232,192,57,17,249,193,57,140,9,195,57,240,25,196,57,58,42,197,57,108,58,198,57,133,74,199,57,133,90,200,57,108,106,201,57,58,122,202,57,239,137,203,57,138,153,204,57,12,169,205,57,116,184,206,57,194,199,207,57,246,214,208,57,17,230,209,57,17,245,210,57,247,3,212,57,195,18,213,57,116,33,214,57,11,48,215,57,135,62,216,57,233,76,217,57,48,91,218,57,91,105,219,57,108,119,220,57,97,133,221,57,59,147,222,57,250,160,223,57,157,174,224,57,37,188,225,57,145,201,226,57,224,214,227,
57,20,228,228,57,44,241,229,57,40,254,230,57,7,11,232,57,202,23,233,57,113,36,234,57,251,48,235,57,104,61,236,57,184,73,237,57,236,85,238,57,2,98,239,57,251,109,240,57,215,121,241,57,149,133,242,57,54,145,243,57,185,156,244,57,31,168,245,57,103,179,246,57,144,190,247,57,156,201,248,57,138,212,249,57,89,223,250,57,10,234,251,57,156,244,252,57,16,255,253,57,101,9,255,57,206,9,0,58,217,142,0,58,214,19,1,58,194,152,1,58,159,29,2,58,108,162,2,58,42,39,3,58,216,171,3,58,117,48,4,58,3,181,4,58,130,57,5,
58,240,189,5,58,78,66,6,58,155,198,6,58,217,74,7,58,7,207,7,58,36,83,8,58,49,215,8,58,45,91,9,58,25,223,9,58,245,98,10,58,192,230,10,58,122,106,11,58,36,238,11,58,189,113,12,58,69,245,12,58,188,120,13,58,35,252,13,58,120,127,14,58,189,2,15,58,241,133,15,58,19,9,16,58,37,140,16,58,37,15,17,58,20,146,17,58,241,20,18,58,190,151,18,58,121,26,19,58,34,157,19,58,186,31,20,58,64,162,20,58,181,36,21,58,24,167,21,58,105,41,22,58,169,171,22,58,214,45,23,58,242,175,23,58,252,49,24,58,244,179,24,58,218,53,25,
58,174,183,25,58,111,57,26,58,30,187,26,58,188,60,27,58,70,190,27,58,191,63,28,58,37,193,28,58,120,66,29,58,185,195,29,58,232,68,30,58,4,198,30,58,13,71,31,58,3,200,31,58,231,72,32,58,183,201,32,58,117,74,33,58,32,203,33,58,184,75,34,58,61,204,34,58,175,76,35,58,13,205,35,58,89,77,36,58,145,205,36,58,182,77,37,58,199,205,37,58,197,77,38,58,176,205,38,58,135,77,39,58,75,205,39,58,250,76,40,58,151,204,40,58,31,76,41,58,148,203,41,58,245,74,42,58,66,202,42,58,123,73,43,58,160,200,43,58,177,71,44,58,
174,198,44,58,150,69,45,58,107,196,45,58,43,67,46,58,215,193,46,58,111,64,47,58,242,190,47,58,97,61,48,58,187,187,48,58,1,58,49,58,50,184,49,58,79,54,50,58,87,180,50,58,74,50,51,58,40,176,51,58,241,45,52,58,166,171,52,58,69,41,53,58,208,166,53,58,69,36,54,58,165,161,54,58,240,30,55,58,38,156,55,58,71,25,56,58,82,150,56,58,72,19,57,58,41,144,57,58,244,12,58,58,169,137,58,58,73,6,59,58,211,130,59,58,72,255,59,58,167,123,60,58,240,247,60,58,35,116,61,58,64,240,61,58,72,108,62,58,57,232,62,58,21,100,
63,58,218,223,63,58,137,91,64,58,34,215,64,58,165,82,65,58,17,206,65,58,104,73,66,58,167,196,66,58,209,63,67,58,228,186,67,58,224,53,68,58,198,176,68,58,149,43,69,58,77,166,69,58,239,32,70,58,122,155,70,58,238,21,71,58,75,144,71,58,146,10,72,58,193,132,72,58,217,254,72,58,218,120,73,58,196,242,73,58,151,108,74,58,83,230,74,58,247,95,75,58,132,217,75,58,250,82,76,58,88,204,76,58,159,69,77,58,206,190,77,58,230,55,78,58,230,176,78,58,206,41,79,58,159,162,79,58,88,27,80,58,249,147,80,58,130,12,81,58,
243,132,81,58,77,253,81,58,142,117,82,58,183,237,82,58,200,101,83,58,193,221,83,58,162,85,84,58,106,205,84,58,27,69,85,58,178,188,85,58,50,52,86,58,153,171,86,58,231,34,87,58,29,154,87,58,59,17,88,58,63,136,88,58,43,255,88,58,255,117,89,58,185,236,89,58,91,99,90,58,227,217,90,58,83,80,91,58,170,198,91,58,232,60,92,58,13,179,92,58,24,41,93,58,11,159,93,58,228,20,94,58,164,138,94,58,74,0,95,58,216,117,95,58,75,235,95,58,166,96,96,58,231,213,96,58,14,75,97,58,28,192,97,58,16,53,98,58,234,169,98,58,171,
30,99,58,82,147,99,58,223,7,100,58,82,124,100,58,171,240,100,58,234,100,101,58,16,217,101,58,27,77,102,58,12,193,102,58,227,52,103,58,159,168,103,58,66,28,104,58,202,143,104,58,56,3,105,58,139,118,105,58,196,233,105,58,226,92,106,58,230,207,106,58,207,66,107,58,158,181,107,58,82,40,108,58,235,154,108,58,106,13,109,58,205,127,109,58,22,242,109,58,68,100,110,58,87,214,110,58,79,72,111,58,44,186,111,58,238,43,112,58,148,157,112,58,32,15,113,58,144,128,113,58,229,241,113,58,31,99,114,58,61,212,114,58,
64,69,115,58,39,182,115,58,243,38,116,58,164,151,116,58,57,8,117,58,178,120,117,58,15,233,117,58,81,89,118,58,119,201,118,58,129,57,119,58,111,169,119,58,66,25,120,58,248,136,120,58,147,248,120,58,17,104,121,58,115,215,121,58,185,70,122,58,227,181,122,58,241,36,123,58,227,147,123,58,184,2,124,58,113,113,124,58,13,224,124,58,141,78,125,58,240,188,125,58,55,43,126,58,98,153,126,58,111,7,127,58,97,117,127,58,53,227,127,58,118,40,128,58,68,95,128,58,3,150,128,58,179,204,128,58,85,3,129,58,233,57,129,
58,110,112,129,58,228,166,129,58,76,221,129,58,166,19,130,58,241,73,130,58,45,128,130,58,90,182,130,58,121,236,130,58,137,34,131,58,139,88,131,58,126,142,131,58,98,196,131,58,55,250,131,58,253,47,132,58,181,101,132,58,94,155,132,58,248,208,132,58,131,6,133,58,255,59,133,58,108,113,133,58,203,166,133,58,26,220,133,58,90,17,134,58,140,70,134,58,174,123,134,58,193,176,134,58,197,229,134,58,187,26,135,58,161,79,135,58,119,132,135,58,63,185,135,58,248,237,135,58,161,34,136,58,59,87,136,58,198,139,136,
58,66,192,136,58,174,244,136,58,11,41,137,58,89,93,137,58,151,145,137,58,198,197,137,58,230,249,137,58,246,45,138,58,246,97,138,58,232,149,138,58,202,201,138,58,156,253,138,58,95,49,139,58,18,101,139,58,182,152,139,58,74,204,139,58,207,255,139,58,68,51,140,58,169,102,140,58,255,153,140,58,69,205,140,58,123,0,141,58,161,51,141,58,184,102,141,58,191,153,141,58,183,204,141,58,158,255,141,58,118,50,142,58,62,101,142,58,246,151,142,58,158,202,142,58,54,253,142,58,190,47,143,58,55,98,143,58,159,148,143,
58,248,198,143,58,64,249,143,58,120,43,144,58,161,93,144,58,185,143,144,58,193,193,144,58,185,243,144,58,161,37,145,58,121,87,145,58,65,137,145,58,248,186,145,58,160,236,145,58,55,30,146,58,190,79,146,58,52,129,146,58,154,178,146,58,240,227,146,58,54,21,147,58,107,70,147,58,144,119,147,58,165,168,147,58,169,217,147,58,157,10,148,58,128,59,148,58,83,108,148,58,22,157,148,58,200,205,148,58,105,254,148,58,250,46,149,58,122,95,149,58,234,143,149,58,73,192,149,58,152,240,149,58,214,32,150,58,3,81,150,
58,32,129,150,58,44,177,150,58,39,225,150,58,17,17,151,58,235,64,151,58,180,112,151,58,108,160,151,58,20,208,151,58,171,255,151,58,48,47,152,58,165,94,152,58,9,142,152,58,92,189,152,58,159,236,152,58,208,27,153,58,240,74,153,58,0,122,153,58,254,168,153,58,235,215,153,58,200,6,154,58,147,53,154,58,77,100,154,58,246,146,154,58,142,193,154,58,21,240,154,58,139,30,155,58,240,76,155,58,67,123,155,58,134,169,155,58,183,215,155,58,214,5,156,58,229,51,156,58,226,97,156,58,206,143,156,58,169,189,156,58,115,
235,156,58,43,25,157,58,210,70,157,58,103,116,157,58,235,161,157,58,93,207,157,58,191,252,157,58,14,42,158,58,76,87,158,58,121,132,158,58,148,177,158,58,158,222,158,58,150,11,159,58,125,56,159,58,82,101,159,58,22,146,159,58,199,190,159,58,104,235,159,58,246,23,160,58,115,68,160,58,223,112,160,58,56,157,160,58,128,201,160,58,182,245,160,58,219,33,161,58,237,77,161,58,238,121,161,58],"i8",4,y.a+624640);
Q([221,165,161,58,186,209,161,58,134,253,161,58,63,41,162,58,231,84,162,58,125,128,162,58,1,172,162,58,115,215,162,58,211,2,163,58,33,46,163,58,93,89,163,58,135,132,163,58,159,175,163,58,165,218,163,58,154,5,164,58,124,48,164,58,76,91,164,58,9,134,164,58,181,176,164,58,79,219,164,58,214,5,165,58,76,48,165,58,175,90,165,58,0,133,165,58,63,175,165,58,107,217,165,58,134,3,166,58,142,45,166,58,131,87,166,58,103,129,166,58,56,171,166,58,247,212,166,58,164,254,166,58,62,40,167,58,198,81,167,58,59,123,167,
58,158,164,167,58,239,205,167,58,45,247,167,58,89,32,168,58,114,73,168,58,121,114,168,58,109,155,168,58,79,196,168,58,30,237,168,58,219,21,169,58,133,62,169,58,28,103,169,58,161,143,169,58,20,184,169,58,115,224,169,58,192,8,170,58,251,48,170,58,35,89,170,58,56,129,170,58,58,169,170,58,42,209,170,58,6,249,170,58,209,32,171,58,136,72,171,58,45,112,171,58,190,151,171,58,61,191,171,58,169,230,171,58,3,14,172,58,73,53,172,58,125,92,172,58,157,131,172,58,171,170,172,58,166,209,172,58,142,248,172,58,99,
31,173,58,37,70,173,58,212,108,173,58,112,147,173,58,249,185,173,58,111,224,173,58,210,6,174,58,34,45,174,58,95,83,174,58,136,121,174,58,159,159,174,58,162,197,174,58,147,235,174,58,112,17,175,58,58,55,175,58,241,92,175,58,149,130,175,58,37,168,175,58,162,205,175,58,12,243,175,58,99,24,176,58,167,61,176,58,215,98,176,58,244,135,176,58,254,172,176,58,244,209,176,58,215,246,176,58,167,27,177,58,99,64,177,58,12,101,177,58,161,137,177,58,35,174,177,58,146,210,177,58,237,246,177,58,53,27,178,58,106,63,
178,58,139,99,178,58,152,135,178,58,146,171,178,58,120,207,178,58,75,243,178,58,10,23,179,58,182,58,179,58,78,94,179,58,211,129,179,58,68,165,179,58,161,200,179,58,235,235,179,58,33,15,180,58,67,50,180,58,82,85,180,58,77,120,180,58,52,155,180,58,8,190,180,58,200,224,180,58,116,3,181,58,13,38,181,58,145,72,181,58,2,107,181,58,96,141,181,58,169,175,181,58,222,209,181,58,0,244,181,58,14,22,182,58,8,56,182,58,238,89,182,58,192,123,182,58,127,157,182,58,41,191,182,58,192,224,182,58,66,2,183,58,177,35,
183,58,12,69,183,58,82,102,183,58,133,135,183,58,164,168,183,58,174,201,183,58,165,234,183,58,136,11,184,58,86,44,184,58,17,77,184,58,183,109,184,58,74,142,184,58,200,174,184,58,50,207,184,58,136,239,184,58,202,15,185,58,248,47,185,58,18,80,185,58,23,112,185,58,9,144,185,58,230,175,185,58,174,207,185,58,99,239,185,58,4,15,186,58,144,46,186,58,8,78,186,58,107,109,186,58,187,140,186,58,246,171,186,58,28,203,186,58,47,234,186,58,45,9,187,58,23,40,187,58,236,70,187,58,173,101,187,58,90,132,187,58,242,
162,187,58,118,193,187,58,230,223,187,58,65,254,187,58,135,28,188,58,186,58,188,58,215,88,188,58,225,118,188,58,214,148,188,58,182,178,188,58,130,208,188,58,57,238,188,58,220,11,189,58,106,41,189,58,228,70,189,58,73,100,189,58,153,129,189,58,213,158,189,58,253,187,189,58,16,217,189,58,14,246,189,58,247,18,190,58,204,47,190,58,140,76,190,58,56,105,190,58,207,133,190,58,81,162,190,58,191,190,190,58,24,219,190,58,92,247,190,58,139,19,191,58,166,47,191,58,172,75,191,58,157,103,191,58,122,131,191,58,66,
159,191,58,244,186,191,58,147,214,191,58,28,242,191,58,144,13,192,58,240,40,192,58,59,68,192,58,113,95,192,58,146,122,192,58,158,149,192,58,150,176,192,58,120,203,192,58,70,230,192,58,254,0,193,58,162,27,193,58,49,54,193,58,171,80,193,58,16,107,193,58,96,133,193,58,155,159,193,58,193,185,193,58,210,211,193,58,206,237,193,58,181,7,194,58,136,33,194,58,69,59,194,58,237,84,194,58,128,110,194,58,254,135,194,58,102,161,194,58,186,186,194,58,249,211,194,58,35,237,194,58,55,6,195,58,55,31,195,58,33,56,195,
58,246,80,195,58,182,105,195,58,97,130,195,58,247,154,195,58,119,179,195,58,227,203,195,58,57,228,195,58,122,252,195,58,166,20,196,58,188,44,196,58,190,68,196,58,170,92,196,58,129,116,196,58,67,140,196,58,239,163,196,58,134,187,196,58,8,211,196,58,117,234,196,58,204,1,197,58,14,25,197,58,59,48,197,58,82,71,197,58,84,94,197,58,65,117,197,58,25,140,197,58,219,162,197,58,136,185,197,58,31,208,197,58,161,230,197,58,14,253,197,58,101,19,198,58,167,41,198,58,211,63,198,58,234,85,198,58,236,107,198,58,216,
129,198,58,175,151,198,58,112,173,198,58,28,195,198,58,178,216,198,58,51,238,198,58,159,3,199,58,245,24,199,58,53,46,199,58,96,67,199,58,117,88,199,58,117,109,199,58,96,130,199,58,53,151,199,58,244,171,199,58,158,192,199,58,50,213,199,58,177,233,199,58,26,254,199,58,110,18,200,58,172,38,200,58,212,58,200,58,231,78,200,58,228,98,200,58,204,118,200,58,158,138,200,58,90,158,200,58,1,178,200,58,146,197,200,58,13,217,200,58,115,236,200,58,195,255,200,58,254,18,201,58,35,38,201,58,50,57,201,58,43,76,201,
58,15,95,201,58,221,113,201,58,149,132,201,58,56,151,201,58,197,169,201,58,60,188,201,58,158,206,201,58,233,224,201,58,31,243,201,58,63,5,202,58,74,23,202,58,63,41,202,58,30,59,202,58,231,76,202,58,154,94,202,58,56,112,202,58,191,129,202,58,49,147,202,58,142,164,202,58,212,181,202,58,5,199,202,58,31,216,202,58,36,233,202,58,19,250,202,58,236,10,203,58,176,27,203,58,93,44,203,58,245,60,203,58,119,77,203,58,227,93,203,58,57,110,203,58,121,126,203,58,163,142,203,58,183,158,203,58,182,174,203,58,158,
190,203,58,113,206,203,58,46,222,203,58,213,237,203,58,102,253,203,58,225,12,204,58,70,28,204,58,149,43,204,58,206,58,204,58,241,73,204,58,254,88,204,58,245,103,204,58,215,118,204,58,162,133,204,58,87,148,204,58,247,162,204,58,128,177,204,58,243,191,204,58,81,206,204,58,152,220,204,58,202,234,204,58,229,248,204,58,234,6,205,58,218,20,205,58,179,34,205,58,118,48,205,58,35,62,205,58,187,75,205,58,60,89,205,58,167,102,205,58,252,115,205,58,59,129,205,58,100,142,205,58,119,155,205,58,115,168,205,58,90,
181,205,58,43,194,205,58,229,206,205,58,138,219,205,58,24,232,205,58,144,244,205,58,243,0,206,58,63,13,206,58,117,25,206,58,149,37,206,58,158,49,206,58,146,61,206,58,112,73,206,58,55,85,206,58,232,96,206,58,131,108,206,58,8,120,206,58,119,131,206,58,208,142,206,58,18,154,206,58,63,165,206,58,85,176,206,58,85,187,206,58,63,198,206,58,19,209,206,58,209,219,206,58,120,230,206,58,9,241,206,58,132,251,206,58,233,5,207,58,56,16,207,58,113,26,207,58,147,36,207,58,159,46,207,58,149,56,207,58,117,66,207,58,
62,76,207,58,242,85,207,58,143,95,207,58,22,105,207,58,135,114,207,58,225,123,207,58,37,133,207,58,83,142,207,58,107,151,207,58,109,160,207,58,88,169,207,58,45,178,207,58,236,186,207,58,149,195,207,58,40,204,207,58,164,212,207,58,10,221,207,58,89,229,207,58,147,237,207,58,182,245,207,58,195,253,207,58,186,5,208,58,154,13,208,58,101,21,208,58,25,29,208,58,182,36,208,58,62,44,208,58,175,51,208,58,10,59,208,58,78,66,208,58,125,73,208,58,149,80,208,58,151,87,208,58,130,94,208,58,87,101,208,58,22,108,
208,58,191,114,208,58,81,121,208,58,206,127,208,58,51,134,208,58,131,140,208,58,188,146,208,58,223,152,208,58,236,158,208,58,226,164,208,58,194,170,208,58,140,176,208,58,64,182,208,58,221,187,208,58,100,193,208,58,212,198,208,58,46,204,208,58,114,209,208,58,160,214,208,58,184,219,208,58,185,224,208,58,163,229,208,58,120,234,208,58,54,239,208,58,222,243,208,58,111,248,208,58,235,252,208,58,79,1,209,58,158,5,209,58,214,9,209,58,248,13,209,58,4,18,209,58,249,21,209,58,216,25,209,58,161,29,209,58,84,
33,209,58,240,36,209,58,117,40,209,58,229,43,209,58,62,47,209,58,129,50,209,58,173,53,209,58,196,56,209,58,195,59,209,58,173,62,209,58,128,65,209,58,61,68,209,58,228,70,209,58,116,73,209,58,238,75,209,58,82,78,209,58,159,80,209,58,214,82,209,58,247,84,209,58,1,87,209,58,245,88,209,58,211,90,209,58,155,92,209,58,76,94,209,58,231,95,209,58,107,97,209,58,217,98,209,58,49,100,209,58,115,101,209,58,158,102,209,58,179,103,209,58,178,104,209,58,154,105,209,58,108,106,209,58,40,107,209,58,205,107,209,58,
92,108,209,58,213,108,209,58,56,109,209,58,132,109,209,58,186,109,209,58,218,109,209,58,227,109,209,58,214,109,209,58,179,109,209,58,121,109,209,58,41,109,209,58,195,108,209,58,71,108,209,58,180,107,209,58,11,107,209,58,76,106,209,58,118,105,209,58,138,104,209,58,136,103,209,58,112,102,209,58,65,101,209,58,252,99,209,58,161,98,209,58,47,97,209,58,168,95,209,58,10,94,209,58,85,92,209,58,139,90,209,58,170,88,209,58,179,86,209,58,165,84,209,58,130,82,209,58,72,80,209,58,248,77,209,58,145,75,209,58,21,
73,209,58,130,70,209,58,217,67,209,58,25,65,209,58,68,62,209,58,88,59,209,58,86,56,209,58,62,53,209,58,15,50,209,58,202,46,209,58,111,43,209,58,254,39,209,58,119,36,209,58,217,32,209,58,37,29,209,58,91,25,209,58,123,21,209,58,132,17,209,58,120,13,209,58,85,9,209,58,28,5,209,58,205,0,209,58,103,252,208,58,235,247,208,58,90,243,208,58,178,238,208,58,243,233,208,58,31,229,208,58,52,224,208,58,52,219,208,58,29,214,208,58,240,208,208,58,173,203,208,58,83,198,208,58,228,192,208,58,94,187,208,58,194,181,
208,58,16,176,208,58,72,170,208,58,106,164,208,58,118,158,208,58,107,152,208,58,75,146,208,58,20,140,208,58,199,133,208,58,100,127,208,58,235,120,208,58,92,114,208,58,183,107,208,58,251,100,208,58,42,94,208,58,66,87,208,58,69,80,208,58,49,73,208,58,7,66,208,58,200,58,208,58,114,51,208,58,6,44,208,58,132,36,208,58,236,28,208,58,61,21,208,58,121,13,208,58,159,5,208,58,175,253,207,58,168,245,207,58,140,237,207,58,90,229,207,58,17,221,207,58,179,212,207,58,63,204,207,58,180,195,207,58,20,187,207,58,93,
178,207,58,145,169,207,58,175,160,207,58,182,151,207,58,168,142,207,58,132,133,207,58,73,124,207,58,249,114,207,58,147,105,207,58,23,96,207,58,133,86,207,58,221,76,207,58,31,67,207,58,75,57,207,58,97,47,207,58,97,37,207,58,76,27,207,58,32,17,207,58,223,6,207,58,135,252,206,58,26,242,206,58,151,231,206,58,254,220,206,58,79,210,206,58,138,199,206,58,176,188,206,58,191,177,206,58,185,166,206,58,157,155,206,58,107,144,206,58,35,133,206,58,197,121,206,58,82,110,206,58,200,98,206,58,41,87,206,58,116,75,
206,58,169,63,206,58,201,51,206,58,211,39,206,58,198,27,206,58,165,15,206,58,109,3,206,58,31,247,205,58,188,234,205,58,67,222,205,58,181,209,205,58,16,197,205,58,86,184,205,58,134,171,205,58,161,158,205,58,165,145,205,58,148,132,205,58,110,119,205,58,49,106,205,58,223,92,205,58,119,79,205,58,250,65,205,58,103,52,205,58,190,38,205,58,0,25,205,58,44,11,205,58,66,253,204,58,67,239,204,58,46,225,204,58,3,211,204,58,195,196,204,58,109,182,204,58,2,168,204,58,129,153,204,58,234,138,204,58,62,124,204,58,
125,109,204,58,165,94,204,58,185,79,204,58,182,64,204,58,158,49,204,58,113,34,204,58,46,19,204,58,214,3,204,58,104,244,203,58,228,228,203,58,75,213,203,58,157,197,203,58,217,181,203,58,0,166,203,58,17,150,203,58,12,134,203,58,243,117,203,58,196,101,203,58,127,85,203,58,37,69,203,58,182,52,203,58,49,36,203,58,151,19,203,58,231,2,203,58,34,242,202,58,72,225,202,58,88,208,202,58,83,191,202,58,56,174,202,58,9,157,202,58,195,139,202,58,105,122,202,58,249,104,202,58,116,87,202,58,218,69,202,58,42,52,202,
58,101,34,202,58,139,16,202,58,156,254,201,58,151,236,201,58,125,218,201,58,78,200,201,58,9,182,201,58,176,163,201,58,65,145,201,58,189,126,201,58,35,108,201,58,117,89,201,58,177,70,201,58,216,51,201,58,234,32,201,58,231,13,201,58,207,250,200,58,162,231,200,58,95,212,200,58,8,193,200,58,155,173,200,58,25,154,200,58,130,134,200,58,214,114,200,58,21,95,200,58,63,75,200,58,84,55,200,58,84,35,200,58,62,15,200,58,20,251,199,58,213,230,199,58,129,210,199,58,23,190,199,58,153,169,199,58,6,149,199,58,94,
128,199,58,161,107,199,58,207,86,199,58,232,65,199,58,236,44,199,58,219,23,199,58,181,2,199,58,122,237,198,58,43,216,198,58,199,194,198,58,77,173,198,58,191,151,198,58,28,130,198,58,100,108,198,58,152,86,198,58,182,64,198,58,192,42,198,58,181,20,198,58,149,254,197,58,97,232,197,58,23,210,197,58,185,187,197,58,71,165,197,58,191,142,197,58,35,120,197,58,114,97,197,58,172,74,197,58,210,51,197,58,227,28,197,58,223,5,197,58,199,238,196,58,154,215,196,58,88,192,196,58,2,169,196,58,151,145,196,58,23,122,
196,58,131,98,196,58,218,74,196,58,29,51,196,58,75,27,196,58,101,3,196,58,106,235,195,58,91,211,195,58,55,187,195,58,254,162,195,58,178,138,195,58,80,114,195,58,218,89,195,58,80,65,195,58,177,40,195,58,254,15,195,58,54,247,194,58,90,222,194,58,106,197,194,58,101,172,194,58,76,147,194,58,30,122,194,58,220,96,194,58,134,71,194,58,27,46,194,58,157,20,194,58,9,251,193,58,98,225,193,58,166,199,193,58,214,173,193,58,241,147,193,58,249,121,193,58,236,95,193,58,203,69,193,58,150,43,193,58,76,17,193,58,239,
246,192,58,125,220,192,58,247,193,192,58,93,167,192,58,174,140,192,58,236,113,192,58,21,87,192,58,43,60,192,58,44,33,192,58,25,6,192,58,242,234,191,58,183,207,191,58,104,180,191,58,5,153,191,58,142,125,191,58,3,98,191,58,100,70,191,58,177,42,191,58,234,14,191,58,15,243,190,58,32,215,190,58,29,187,190,58,6,159,190,58,220,130,190,58,157,102,190,58,75,74,190,58,229,45,190,58,106,17,190,58,220,244,189,58,59,216,189,58,133,187,189,58,188,158,189,58,222,129,189,58,237,100,189,58,233,71,189,58,208,42,189,
58,164,13,189,58,100,240,188,58,16,211,188,58,169,181,188,58,46,152,188,58,159,122,188,58,253,92,188,58,71,63,188,58,125,33,188,58,160,3,188,58,175,229,187,58,171,199,187,58,147,169,187,58,103,139,187,58,40,109,187,58,213,78,187,58,111,48,187,58,246,17,187,58,104,243,186,58,200,212,186,58,20,182,186,58,76,151,186,58,113,120,186,58,130,89,186,58,129,58,186,58,107,27,186,58,67,252,185,58,7,221,185,58,183,189,185,58,85,158,185,58,223,126,185,58,85,95,185,58,185,63,185,58,9,32,185,58,70,0,185,58,111,
224,184,58,134,192,184,58,137,160,184,58,121,128,184,58,85,96,184,58,31,64,184,58,213,31,184,58,120,255,183,58,8,223,183,58,133,190,183,58,239,157,183,58,70,125,183,58,137,92,183,58,186,59,183,58,215,26,183,58,226,249,182,58,217,216,182,58,190,183,182,58,143,150,182,58,78,117,182,58,249,83,182,58,146,50,182,58,23,17,182,58,138,239,181,58,234,205,181,58,55,172,181,58,113,138,181,58,152,104,181,58,172,70,181,58,174,36,181,58,156,2,181,58,120,224,180,58,65,190,180,58,248,155,180,58,155,121,180,58,44,
87,180,58,170,52,180,58,22,18,180,58,111,239,179,58,181,204,179,58,232,169,179,58,9,135,179,58,23,100,179,58,18,65,179,58,251,29,179,58,210,250,178,58,149,215,178,58,71,180,178,58,229,144,178,58,113,109,178,58,235,73,178,58,82,38,178,58,167,2,178,58,233,222,177,58,25,187,177,58,54,151,177,58,65,115,177,58,58,79,177,58,32,43,177,58,244,6,177,58,181,226,176,58,100,190,176,58,1,154,176,58,140,117,176,58,4,81,176,58,106,44,176,58,190,7,176,58,255,226,175,58,47,190,175,58,76,153,175,58,87,116,175,58,79,
79,175,58,54,42,175,58,11,5,175,58,205,223,174,58,125,186,174,58,27,149,174,58,167,111,174,58,33,74,174,58,137,36,174,58,223,254,173,58,35,217,173,58,85,179,173,58,118,141,173,58,132,103,173,58,128,65,173,58,106,27,173,58,66,245,172,58,9,207,172,58,189,168,172,58,96,130,172,58,241,91,172,58,112,53,172,58,221,14,172,58,57,232,171,58,131,193,171,58,187,154,171,58,225,115,171,58,245,76,171,58,248,37,171,58,233,254,170,58,201,215,170,58,151,176,170,58,83,137,170,58,254,97,170,58,151,58,170,58,30,19,170,
58,148,235,169,58,248,195,169,58,75,156,169,58,140,116,169,58,188,76,169,58,219,36,169,58,232,252,168,58,227,212,168,58,205,172,168,58,166,132,168,58,109,92,168,58,35,52,168,58,199,11,168,58,91,227,167,58,220,186,167,58,77,146,167,58,172,105,167,58,250,64,167,58,55,24,167,58,99,239,166,58,125,198,166,58,135,157,166,58,127,116,166,58,101,75,166,58,59,34,166,58,0,249,165,58,179,207,165,58,86,166,165,58,231,124,165,58,104,83,165,58,215,41,165,58,53,0,165,58,131,214,164,58,191,172,164,58,234,130,164,
58,5,89,164,58,14,47,164,58,7,5,164,58,239,218,163,58,198,176,163,58,140,134,163,58,65,92,163,58,230,49,163,58,121,7,163,58,252,220,162,58,110,178,162,58,208,135,162,58,32,93,162,58,96,50,162,58,144,7,162,58,174,220,161,58,188,177,161,58,186,134,161,58,167,91,161,58,131,48,161,58,79,5,161,58,10,218,160,58,180,174,160,58,79,131,160,58,216,87,160,58,81,44,160,58,186,0,160,58,18,213,159,58,90,169,159,58,146,125,159,58,185,81,159,58,208,37,159,58,214,249,158,58,204,205,158,58,178,161,158,58,135,117,158,
58,77,73,158,58,2,29,158,58,167,240,157,58,59,196,157,58,192,151,157,58,52,107,157,58,152,62,157,58,236,17,157,58,48,229,156,58,100,184,156,58,136,139,156,58,155,94,156,58,159,49,156,58,147,4,156,58,118,215,155,58,74,170,155,58,14,125,155,58,194,79,155,58,102,34,155,58,250,244,154,58,126,199,154,58,242,153,154,58,87,108,154,58,172,62,154,58,241,16,154,58,38,227,153,58,75,181,153,58,97,135,153,58,103,89,153,58,93,43,153,58,68,253,152,58,27,207,152,58,226,160,152,58,154,114,152,58,66,68,152,58,219,
21,152,58,100,231,151,58,221,184,151,58,71,138,151,58,162,91,151,58,237,44,151,58,41,254,150,58,85,207,150,58,114,160,150,58,127,113,150,58,125,66,150,58,108,19,150,58,75,228,149,58,27,181,149,58,220,133,149,58,141,86,149,58,48,39,149,58,195,247,148,58,71,200,148,58,187,152,148,58,33,105,148,58,119,57,148,58,190,9,148,58,247,217,147,58,32,170,147,58,58,122,147,58,69,74,147,58,65,26,147,58,46,234,146,58,12,186,146,58,219,137,146,58,155,89,146,58,76,41,146,58,238,248,145,58,130,200,145,58,6,152,145,
58,124,103,145,58,227,54,145,58,59,6,145,58,133,213,144,58,191,164,144,58,235,115,144,58,8,67,144,58,23,18,144,58,23,225,143,58,8,176,143,58,235,126,143,58,191,77,143,58,132,28,143,58,59,235,142,58,228,185,142,58,126,136,142,58,9,87,142,58,134,37,142,58,244,243,141,58,84,194,141,58,166,144,141,58,233,94,141,58,30,45,141,58,69,251,140,58,93,201,140,58,103,151,140,58,99,101,140,58,80,51,140,58,47,1,140,58,0,207,139,58,195,156,139,58,120,106,139,58,30,56,139,58,183,5,139,58,65,211,138,58,189,160,138,
58,43,110,138,58,139,59,138,58,222,8,138,58,34,214,137,58,88,163,137,58,128,112,137,58,154,61,137,58,166,10,137,58,165,215,136,58,150,164,136,58,120,113,136,58,77,62,136,58,20,11,136,58,206,215,135,58,121,164,135,58,23,113,135,58,168,61,135,58,42,10,135,58,159,214,134,58,6,163,134,58,96,111,134,58,172,59,134,58,234,7,134,58,27,212,133,58,62,160,133,58,84,108,133,58,92,56,133,58,87,4,133,58,69,208,132,58,37,156,132,58,248,103,132,58,189,51,132,58,117,255,131,58,31,203,131,58,189,150,131,58,77,98,131,
58,207,45,131,58,69,249,130,58,173,196,130,58,8,144,130,58,86,91,130,58,151,38,130,58,203,241,129,58,241,188,129,58,11,136,129,58,23,83,129,58,22,30,129,58,9,233,128,58,238,179,128,58,199,126,128,58,146,73,128,58,81,20,128,58,5,190,127,58,78,83,127,58,126,232,126,58,149,125,126,58,145,18,126,58,116,167,125,58,62,60,125,58,238,208,124,58,132,101,124,58,2,250,123,58,102,142,123,58,176,34,123,58,226,182,122,58,250,74,122,58,249,222,121,58,223,114,121,58,172,6,121,58,96,154,120,58,251,45,120,58,125,193,
119,58,230,84,119,58,54,232,118,58,110,123,118,58,141,14,118,58,147,161,117,58,128,52,117,58,85,199,116,58,17,90,116,58,181,236,115,58,65,127,115,58,180,17,115,58,14,164,114,58,81,54,114,58,123,200,113,58,141,90,113,58,134,236,112,58,104,126,112,58,49,16,112,58,227,161,111,58,124,51,111,58,254,196,110,58,104,86,110,58,185,231,109,58,243,120,109,58,22,10,109,58,32,155,108,58,19,44,108,58,239,188,107,58,178,77,107,58,95,222,106,58,244,110,106,58,113,255,105,58,215,143,105,58,38,32,105,58,93,176,104,
58,125,64,104,58,135,208,103,58,120,96,103,58,83,240,102,58,23,128,102,58,196,15,102,58,90,159,101,58,217,46,101,58,65,190,100,58,147,77,100,58,205,220,99,58,241,107,99,58,255,250,98,58,245,137,98,58,214,24,98,58,159,167,97,58,83,54,97,58,239,196,96,58,118,83,96,58,230,225,95,58,64,112,95,58,132,254,94,58,177,140,94,58,201,26,94,58,202,168,93,58,181,54,93,58,139,196,92,58,74,82,92,58,244,223,91,58,136,109,91,58,6,251,90,58,110,136,90,58,192,21,90,58,253,162,89,58,37,48,89,58,55,189,88,58,51,74,88,
58,26,215,87,58,236,99,87,58,168,240,86,58,79,125,86,58,225,9,86,58,93,150,85,58,197,34,85,58,23,175,84,58,84,59,84,58,125,199,83,58,144,83,83,58,142,223,82,58,120,107,82,58,77,247,81,58,13,131,81,58,184,14,81,58,79,154,80,58,209,37,80,58,63,177,79,58,152,60,79,58,221,199,78,58,13,83,78,58,41,222,77,58,49,105,77,58,36,244,76,58,4,127,76,58,207,9,76,58,134,148,75,58,41,31,75,58,184,169,74,58,51,52,74,58,154,190,73,58,237,72,73,58,45,211,72,58,88,93,72,58,112,231,71,58,117,113,71,58,102,251,70,58,67,
133,70,58,13,15,70,58,195,152,69,58,102,34,69,58,245,171,68,58,114,53,68,58,219,190,67,58,49,72,67,58,115,209,66,58,163,90,66,58,192,227,65,58,201,108,65,58,192,245,64,58,164,126,64,58,117,7,64,58,51,144,63,58,222,24,63,58,119,161,62,58,253,41,62,58,112,178,61,58,209,58,61,58,32,195,60,58,92,75,60,58,133,211,59,58,157,91,59,58,162,227,58,58,149,107,58,58,117,243,57,58,68,123,57,58,0,3,57,58,171,138,56,58,67,18,56,58,201,153,55,58,62,33,55,58,161,168,54,58,242,47,54,58,49,183,53,58,95,62,53,58,123,
197,52,58,133,76,52,58,126,211,51,58,102,90,51,58,60,225,50,58,1,104,50,58,180,238,49,58,86,117,49,58,231,251,48,58,103,130,48,58,213,8,48,58,51,143,47,58,128,21,47,58,187,155,46,58,230,33,46,58,0,168,45,58,9,46,45,58,2,180,44,58,233,57,44,58,192,191,43,58,135,69,43,58,61,203,42,58,226,80,42,58,119,214,41,58,252,91,41,58,112,225,40,58,212,102,40,58,40,236,39,58,108,113,39,58,159,246,38,58,194,123,38,58,214,0,38,58,217,133,37,58,205,10,37,58,177,143,36,58,132,20,36,58,73,153,35,58,253,29,35,58,162,
162,34,58,55,39,34,58,188,171,33,58,51,48,33,58,153,180,32,58,240,56,32,58,56,189,31,58,113,65,31,58,154,197,30,58,181,73,30,58,192,205,29,58,188,81,29,58,169,213,28,58,135,89,28,58,86,221,27,58,22,97,27,58,200,228,26,58,106,104,26,58,254,235,25,58,131,111,25,58,250,242,24,58,98,118,24,58,188,249,23,58,7,125,23,58,68,0,23,58,114,131,22,58,146,6,22,58,164,137,21,58,168,12,21,58,158,143,20,58,133,18,20,58,95,149,19,58,42,24,19,58,232,154,18,58,151,29,18,58,57,160,17,58,205,34,17,58,84,165,16,58,205,
39,16,58,56,170,15,58,149,44,15,58,230,174,14,58,40,49,14,58,94,179,13,58,134,53,13,58,160,183,12,58,174,57,12,58,174,187,11,58,161,61,11,58,135,191,10,58,96,65,10,58,44,195,9,58,235,68,9,58,158,198,8,58,67,72,8,58,220,201,7,58,104,75,7,58,231,204,6,58,90,78,6,58,192,207,5,58,26,81,5,58,104,210,4,58,169,83,4,58,221,212,3,58,6,86,3,58,34,215,2,58,50,88,2,58,54,217,1,58,45,90,1,58,25,219,0,58,249,91,0,58,154,185,255,57,42,187,254,57,163,188,253,57,4,190,252,57,78,191,251,57,128,192,250,57,155,193,249,
57,160,194,248,57,141,195,247,57,100,196,246,57,35,197,245,57,205,197,244,57,95,198,243,57,220,198,242,57,66,199,241,57,145,199,240,57,203,199,239,57,239,199,238,57,253,199,237,57,245,199,236,57,215,199,235,57,164,199,234,57,92,199,233,57,254,198,232,57,139,198,231,57,3,198,230,57,101,197,229,57,179,196,228,57,236,195,227,57,17,195,226,57,33,194,225,57,28,193,224,57,3,192,223,57,214,190,222,57,149,189,221,57,63,188,220,57,214,186,219,57,89,185,218,57,200,183,217,57,36,182,216,57,108,180,215,57,161,
178,214,57,194,176,213,57,208,174,212,57,204,172,211,57,180,170,210,57,137,168,209,57,76,166,208,57,252,163,207,57,154,161,206,57,37,159,205,57,158,156,204,57,4,154,203,57,89,151,202,57,156,148,201,57,204,145,200,57,235,142,199,57,249,139,198,57,244,136,197,57,223,133,196,57,184,130,195,57,128,127,194,57,54,124,193,57,220,120,192,57,113,117,191,57,245,113,190,57,104,110,189,57,203,106,188,57,30,103,187,57,96,99,186,57,146,95,185,57,179,91,184,57,197,87,183,57,199,83,182,57,185,79,181,57,155,75,180,
57,110,71,179,57,49,67,178,57,229,62,177,57,137,58,176,57,31,54,175,57,165,49,174,57,29,45,173,57,133,40,172,57,223,35,171,57,43,31,170,57,104,26,169,57,150,21,168,57,183,16,167,57,201,11,166,57,205,6,165,57,195,1,164,57,171,252,162,57,134,247,161,57,83,242,160,57,18,237,159,57,196,231,158,57,105,226,157,57,0,221,156,57,139,215,155,57,9,210,154,57,121,204,153,57,221,198,152,57,53,193,151,57,127,187,150,57,190,181,149,57,240,175,148,57,22,170,147,57,48,164,146,57,62,158,145,57,64,152,144,57,54,146,
143,57,32,140,142,57,0,134,141,57,211,127,140,57,156,121,139,57,89,115,138,57,11,109,137,57,178,102,136,57,78,96,135,57,223,89,134,57,102,83,133,57,226,76,132,57,84,70,131,57,188,63,130,57,25,57,129,57,108,50,128,57,106,87,126,57,233,73,124,57,84,60,122,57,172,46,120,57,240,32,118,57,34,19,116,57,65,5,114,57,77,247,111,57,71,233,109,57,48,219,107,57,6,205,105,57,203,190,103,57,126,176,101,57,33,162,99,57,178,147,97,57,51,133,95,57,163,118,93,57,3,104,91,57,83,89,89,57,147,74,87,57,196,59,85,57,229,
44,83,57,247,29,81,57,250,14,79,57,239,255,76,57,213,240,74,57,172,225,72,57,118,210,70,57,49,195,68,57,224,179,66,57,128,164,64,57,20,149,62,57,154,133,60,57,20,118,58,57,129,102,56,57,226,86,54,57,55,71,52,57,128,55,50,57,190,39,48,57,240,23,46,57,23,8,44,57,51,248,41,57,68,232,39,57,74,216,37,57,71,200,35,57,57,184,33,57,33,168,31,57,0,152,29,57,213,135,27,57,161,119,25,57,100,103,23,57,30,87,21,57,208,70,19,57,121,54,17,57,26,38,15,57,179,21,13,57,69,5,11,57,207,244,8,57,82,228,6,57,206,211,4,
57,67,195,2,57,178,178,0,57,52,68,253,56,248,34,249,56,177,1,245,56,94,224,240,56,0,191,236,56,151,157,232,56,37,124,228,56,169,90,224,56,35,57,220,56,149,23,216,56,255,245,211,56,97,212,207,56,187,178,203,56,14,145,199,56,91,111,195,56,162,77,191,56,227,43,187,56,31,10,183,56,86,232,178,56,137,198,174,56,183,164,170,56,227,130,166,56,11,97,162,56,49,63,158,56,85,29,154,56,119,251,149,56,151,217,145,56,183,183,141,56,215,149,137,56,246,115,133,56,22,82,129,56,111,96,122,56,179,28,114,56,252,216,105,
56,73,149,97,56,155,81,89,56,244,13,81,56,84,202,72,56,188,134,64,56,44,67,56,56,167,255,47,56,44,188,39,56,189,120,31,56,90,53,23,56,5,242,14,56,190,174,6,56,12,215,252,55,187,80,236,55,141,202,219,55,129,68,203,55,155,190,186,55,220,56,170,55,70,179,153,55,218,45,137,55,53,81,113,55,17,71,80,55,77,61,47,55,236,51,14,55,227,85,218,54,194,68,152,54,248,104,44,54,191,40,33,53,140,165,183,181,220,237,95,182,130,3,178,182,23,15,244,182,212,12,27,183,150,17,60,183,207,21,93,183,122,25,126,183,75,142,
143,183,142,15,160,183,134,144,176,183,48,17,193,183,138,145,209,183,148,17,226,183,75,145,242,183,87,136,1,184,221,199,9,184,54,7,18,184,99,70,26,184,99,133,34,184,51,196,42,184,212,2,51,184,69,65,59,184,132,127,67,184,145,189,75,184,108,251,83,184,18,57,92,184,131,118,100,184,191,179,108,184,196,240,116,184,146,45,125,184,20,181,130,184,66,211,134,184,83,241,138,184,71,15,143,184,29,45,147,184,212,74,151,184,109,104,155,184,230,133,159,184,64,163,163,184,122,192,167,184,147,221,171,184,140,250,
175,184,99,23,180,184,24,52,184,184,171,80,188,184,27,109,192,184,104,137,196,184,146,165,200,184,151,193,204,184,120,221,208,184,52,249,212,184,203,20,217,184,61,48,221,184,136,75,225,184,172,102,229,184,169,129,233,184,127,156,237,184,45,183,241,184,179,209,245,184,16,236,249,184,67,6,254,184,39,16,1,185,22,29,3,185,241,41,5,185,182,54,7,185,102,67,9,185,255,79,11,185,131,92,13,185,240,104,15,185,71,117,17,185,134,129,19,185,175,141,21,185,193,153,23,185,187,165,25,185,157,177,27,185,104,189,29,
185,26,201,31,185,181,212,33,185,54,224,35,185,159,235,37,185,239,246,39,185,38,2,42,185,68,13,44,185,72,24,46,185,50,35,48,185,2,46,50,185,184,56,52,185,83,67,54,185,212,77,56,185,58,88,58,185,132,98,60,185,180,108,62,185,199,118,64,185,192,128,66,185,156,138,68,185,92,148,70,185,255,157,72,185,134,167,74,185,240,176,76,185,61,186,78,185,109,195,80,185,127,204,82,185,116,213,84,185,75,222,86,185,3,231,88,185,157,239,90,185,25,248,92,185,118,0,95,185,180,8,97,185,211,16,99,185,210,24,101,185,178,
32,103,185,114,40,105,185,17,48,107,185,145,55,109,185,240,62,111,185,46,70,113,185,76,77,115,185,72,84,117,185,35,91,119,185,221,97,121,185,116,104,123,185,234,110,125,185,61,117,127,185,183,189,128,185,190,192,129,185,180,195,130,185,153,198,131,185,107,201,132,185,44,204,133,185,219,206,134,185,120,209,135,185,3,212,136,185,124,214,137,185,227,216,138,185,55,219,139,185,121,221,140,185,168,223,141,185,197,225,142,185,206,227,143,185,197,229,144,185,169,231,145,185,121,233,146,185,55,235,147,185,
225,236,148,185,119,238,149,185,251,239,150,185,106,241,151,185,198,242,152,185,13,244,153,185,65,245,154,185,97,246,155,185,109,247,156,185,100,248,157,185,71,249,158,185,21,250,159,185,207,250,160,185,116,251,161,185,4,252,162,185,128,252,163,185,230,252,164,185,55,253,165,185,115,253,166,185,154,253,167,185,171,253,168,185,166,253,169,185,140,253,170,185,92,253,171,185,23,253,172,185,187,252,173,185,73,252,174,185,193,251,175,185,35,251,176,185,110,250,177,185,163,249,178,185,194,248,179,185,201,
247,180,185,186,246,181,185,148,245,182,185,86,244,183,185,2,243,184,185,150,241,185,185,20,240,186,185,121,238,187,185,199,236,188,185,254,234,189,185,28,233,190,185,35,231,191,185,18,229,192,185,233,226,193,185,167,224,194,185,78,222,195,185,220,219,196,185,81,217,197,185,174,214,198,185,242,211,199,185,30,209,200,185,48,206,201,185,41,203,202,185,10,200,203,185,209,196,204,185,127,193,205,185,19,190,206,185,142,186,207,185,239,182,208,185,55,179,209,185,100,175,210,185,120,171,211,185,114,167,
212,185,81,163,213,185,23,159,214,185,194,154,215,185,82,150,216,185,200,145,217,185,35,141,218,185,100,136,219,185,137,131,220,185,148,126,221,185,132,121,222,185,88,116,223,185,17,111,224,185,175,105,225,185,49,100,226,185,152,94,227,185,227,88,228,185,18,83,229,185,37,77,230,185,28,71,231,185,248,64,232,185,183,58,233,185,89,52,234,185,223,45,235,185,73,39,236,185,150,32,237,185,199,25,238,185,218,18,239,185,209,11,240,185,171,4,241,185,103,253,241,185,6,246,242,185,136,238,243,185,237,230,244,
185,52,223,245,185,93,215,246,185,105,207,247,185,87,199,248,185,39,191,249,185,217,182,250,185,108,174,251,185,226,165,252,185,57,157,253,185,113,148,254,185,140,139,255,185,68,65,0,186,178,188,0,186,17,56,1,186,96,179,1,186,160,46,2,186,209,169,2,186,241,36,3,186,2,160,3,186,4,27,4,186,245,149,4,186,215,16,5,186,169,139,5,186,107,6,6,186,29,129,6,186,191,251,6,186,81,118,7,186,210,240,7,186,68,107,8,186,165,229,8,186,246,95,9,186,55,218,9,186,103,84,10,186,135,206,10,186,151,72,11,186,149,194,11,
186,132,60,12,186,97,182,12,186,46,48,13,186,235,169,13,186,150,35,14,186,49,157,14,186,187,22,15,186,52,144,15,186,156,9,16,186,242,130,16,186,56,252,16,186,109,117,17,186,144,238,17,186,163,103,18,186,164,224,18,186,147,89,19,186,114,210,19,186,63,75,20,186,250,195,20,186,164,60,21,186,60,181,21,186,195,45,22,186,56,166,22,186,155,30,23,186,237,150,23,186,45,15,24,186,91,135,24,186,119,255,24,186,129,119,25,186,121,239,25,186,95,103,26,186,50,223,26,186,244,86,27,186,164,206,27,186,65,70,28,186,
204,189,28,186,68,53,29,186,171,172,29,186,254,35,30,186,64,155,30,186,110,18,31,186,138,137,31,186,148,0,32,186,139,119,32,186,111,238,32,186,64,101,33,186,254,219,33,186,170,82,34,186,66,201,34,186,200,63,35,186,58,182,35,186,154,44,36,186,230,162,36,186,31,25,37,186,69,143,37,186,88,5,38,186,87,123,38,186,67,241,38,186,28,103,39,186,225,220,39,186,147,82,40,186,49,200,40,186,187,61,41,186,50,179,41,186,149,40,42,186,228,157,42,186,32,19,43,186,72,136,43,186,91,253,43,186,91,114,44,186,71,231,44,
186,31,92,45,186,227,208,45,186,146,69,46,186,46,186,46,186,181,46,47,186,40,163,47,186,135,23,48,186,209,139,48,186,7,0,49,186,40,116,49,186,53,232,49,186,45,92,50,186,17,208,50,186,224,67,51,186,154,183,51,186,64,43,52,186,209,158,52,186,77,18,53,186,180,133,53,186,6,249,53,186,67,108,54,186,107,223,54,186,127,82,55,186,124,197,55,186,101,56,56,186,57,171,56,186,247,29,57,186,160,144,57,186,52,3,58,186,178,117,58,186,27,232,58,186,110,90,59,186,172,204,59,186,212,62,60,186,231,176,60,186,228,34,
61,186,203,148,61,186,156,6,62,186,88,120,62,186,254,233,62,186,142,91,63,186,7,205,63,186,107,62,64,186,185,175,64,186,241,32,65,186,18,146,65,186,30,3,66,186,19,116,66,186,242,228,66,186,186,85,67,186,109,198,67,186,8,55,68,186,142,167,68,186,253,23,69,186,85,136,69,186,151,248,69,186,194,104,70,186,214,216,70,186,212,72,71,186,187,184,71,186,139,40,72,186,68,152,72,186,230,7,73,186,113,119,73,186,230,230,73,186,67,86,74,186,137,197,74,186,184,52,75,186,208,163,75,186,209,18,76,186,186,129,76,186,
140,240,76,186,71,95,77,186,234,205,77,186,118,60,78,186,234,170,78,186,71,25,79,186,140,135,79,186,185,245,79,186,207,99,80,186,205,209,80,186,180,63,81,186,130,173,81,186,57,27,82,186,216,136,82,186,95,246,82,186,206,99,83,186,37,209,83,186,100,62,84,186,138,171,84,186,153,24,85,186,143,133,85,186,109,242,85,186,51,95,86,186,224,203,86,186,117,56,87,186,242,164,87,186,86,17,88,186,162,125,88,186,213,233,88,186,239,85,89,186,241,193,89,186,218,45,90,186,171,153,90,186,99,5,91,186,1,113,91,186,135,
220,91,186,244,71,92,186,73,179,92,186,132,30,93,186,166,137,93,186,175,244,93,186,159,95,94,186,117,202,94,186,51,53,95,186,215,159,95,186,98,10,96,186,212,116,96,186,44,223,96,186,107,73,97,186,144,179,97,186,156,29,98,186,142,135,98,186,103,241,98,186,38,91,99,186,204,196,99,186,87,46,100,186,201,151,100,186,33,1,101,186,96,106,101,186,132,211,101,186,143,60,102,186,127,165,102,186,86,14,103,186,18,119,103,186,180,223,103,186,60,72,104,186,170,176,104,186,254,24,105,186,56,129,105,186,87,233,105,
186,91,81,106,186,70,185,106,186,22,33,107,186,203,136,107,186,102,240,107,186,231,87,108,186,77,191,108,186,152,38,109,186,200,141,109,186,222,244,109,186,217,91,110,186,185,194,110,186,126,41,111,186,41,144,111,186,184,246,111,186,45,93,112,186,134,195,112,186,197,41,113,186,232,143,113,186,240,245,113,186,221,91,114,186,175,193,114,186,102,39,115,186,1,141,115,186,129,242,115,186,229,87,116,186,46,189,116,186,92,34,117,186,110,135,117,186,100,236,117,186,63,81,118,186,255,181,118,186,162,26,119,
186,42,127,119,186,151,227,119,186,231,71,120,186,27,172,120,186,52,16,121,186,49,116,121,186,18,216,121,186,215,59,122,186,128,159,122,186,12,3,123,186,125,102,123,186,209,201,123,186,10,45,124,186,38,144,124,186,38,243,124,186,9,86,125,186,208,184,125,186,123,27,126,186,9,126,126,186,123,224,126,186,208,66,127,186,9,165,127,186,147,3,128,186,147,52,128,186,132,101,128,186,103,150,128,186,60,199,128,186,2,248,128,186,186,40,129,186,100,89,129,186,255,137,129,186,139,186,129,186,9,235,129,186,121,
27,130,186,218,75,130,186,45,124,130,186,113,172,130,186,166,220,130,186,205,12,131,186,229,60,131,186,238,108,131,186,233,156,131,186,213,204,131,186,179,252,131,186,130,44,132,186,66,92,132,186,243,139,132,186,149,187,132,186,41,235,132,186,174,26,133,186,36,74,133,186,139,121,133,186,227,168,133,186,45,216,133,186,103,7,134,186,147,54,134,186,176,101,134,186,189,148,134,186,188,195,134,186,172,242,134,186,140,33,135,186,94,80,135,186,33,127,135,186,212,173,135,186,120,220,135,186,14,11,136,186,
148,57,136,186,11,104,136,186,115,150,136,186,203,196,136,186,21,243,136,186,79,33,137,186,122,79,137,186,150,125,137,186,162,171,137,186,159,217,137,186,141,7,138,186,107,53,138,186,59,99,138,186,250,144,138,186,171,190,138,186,76,236,138,186,221,25,139,186,95,71,139,186,210,116,139,186,53,162,139,186,137,207,139,186,205,252,139,186,1,42,140,186,38,87,140,186,60,132,140,186,66,177,140,186,56,222,140,186,31,11,141,186,246,55,141,186,189,100,141,186,117,145,141,186,29,190,141,186,181,234,141,186,61,
23,142,186,182,67,142,186,31,112,142,186,120,156,142,186,194,200,142,186,251,244,142,186,37,33,143,186,63,77,143,186,73,121,143,186,67,165,143,186,46,209,143,186,8,253,143,186,210,40,144,186,141,84,144,186,55,128,144,186,210,171,144,186,92,215,144,186,215,2,145,186,65,46,145,186,155,89,145,186,230,132,145,186,32,176,145,186,74,219,145,186,100,6,146,186,109,49,146,186,103,92,146,186,80,135,146,186,42,178,146,186,243,220,146,186,171,7,147,186,84,50,147,186,236,92,147,186,116,135,147,186,236,177,147,
186,83,220,147,186,170,6,148,186,241,48,148,186,39,91,148,186,77,133,148,186,99,175,148,186,104,217,148,186,93,3,149,186,65,45,149,186,21,87,149,186,216,128,149,186,139,170,149,186,45,212,149,186,191,253,149,186,64,39,150,186,176,80,150,186,16,122,150,186,96,163,150,186,159,204,150,186,205,245,150,186,234,30,151,186,247,71,151,186,244,112,151,186,223,153,151,186,186,194,151,186,132,235,151,186,61,20,152,186,230,60,152,186,126,101,152,186,5,142,152,186,123,182,152,186,224,222,152,186,53,7,153,186,
121,47,153,186,171,87,153,186,205,127,153,186,222,167,153,186,223,207,153,186,206,247,153,186,172,31,154,186,121,71,154,186,54,111,154,186,225,150,154,186,123,190,154,186,4,230,154,186,125,13,155,186,228,52,155,186,58,92,155,186,127,131,155,186,179,170,155,186,214,209,155,186,231,248,155,186,232,31,156,186,215,70,156,186,181,109,156,186,130,148,156,186,62,187,156,186,232,225,156,186,130,8,157,186,10,47,157,186,128,85,157,186,230,123,157,186,58,162,157,186,125,200,157,186,174,238,157,186,207,20,158,
186,221,58,158,186,219,96,158,186,199,134,158,186,162,172,158,186,107,210,158,186,35,248,158,186,201,29,159,186,94,67,159,186,225,104,159,186,83,142,159,186,179,179,159,186,2,217,159,186,64,254,159,186,107,35,160,186,133,72,160,186,142,109,160,186,133,146,160,186,106,183,160,186,62,220,160,186,0,1,161,186,177,37,161,186,80,74,161,186,221,110,161,186,88,147,161,186,194,183,161,186,26,220,161,186,96,0,162,186,149,36,162,186,184,72,162,186,201,108,162,186,200,144,162,186,181,180,162,186,145,216,162,
186,90,252,162,186,18,32,163,186,184,67,163,186,76,103,163,186,207,138,163,186,63,174,163,186,157,209,163,186,234,244,163,186,36,24,164,186,77,59,164,186,99,94,164,186,104,129,164,186,90,164,164,186,59,199,164,186,10,234,164,186,198,12,165,186],"i8",4,y.a+634880);
Q([113,47,165,186,9,82,165,186,143,116,165,186,3,151,165,186,101,185,165,186,181,219,165,186,243,253,165,186,31,32,166,186,56,66,166,186,64,100,166,186,53,134,166,186,24,168,166,186,233,201,166,186,167,235,166,186,83,13,167,186,237,46,167,186,117,80,167,186,235,113,167,186,78,147,167,186,159,180,167,186,221,213,167,186,9,247,167,186,35,24,168,186,43,57,168,186,32,90,168,186,3,123,168,186,211,155,168,186,145,188,168,186,60,221,168,186,213,253,168,186,92,30,169,186,208,62,169,186,50,95,169,186,129,
127,169,186,190,159,169,186,232,191,169,186,0,224,169,186,5,0,170,186,248,31,170,186,216,63,170,186,165,95,170,186,96,127,170,186,9,159,170,186,158,190,170,186,33,222,170,186,146,253,170,186,240,28,171,186,59,60,171,186,115,91,171,186,153,122,171,186,172,153,171,186,173,184,171,186,154,215,171,186,117,246,171,186,62,21,172,186,243,51,172,186,150,82,172,186,38,113,172,186,163,143,172,186,14,174,172,186,101,204,172,186,170,234,172,186,220,8,173,186,251,38,173,186,7,69,173,186,1,99,173,186,231,128,173,
186,187,158,173,186,123,188,173,186,41,218,173,186,196,247,173,186,76,21,174,186,193,50,174,186,35,80,174,186,114,109,174,186,174,138,174,186,215,167,174,186,237,196,174,186,240,225,174,186,224,254,174,186,189,27,175,186,135,56,175,186,62,85,175,186,226,113,175,186,115,142,175,186,241,170,175,186,91,199,175,186,179,227,175,186,247,255,175,186,40,28,176,186,70,56,176,186,81,84,176,186,73,112,176,186,46,140,176,186,255,167,176,186,189,195,176,186,104,223,176,186,0,251,176,186,133,22,177,186,246,49,
177,186,84,77,177,186,159,104,177,186,215,131,177,186,251,158,177,186,12,186,177,186,10,213,177,186,244,239,177,186,203,10,178,186,143,37,178,186,63,64,178,186,220,90,178,186,102,117,178,186,220,143,178,186,63,170,178,186,143,196,178,186,203,222,178,186,244,248,178,186,9,19,179,186,11,45,179,186,249,70,179,186,212,96,179,186,156,122,179,186,80,148,179,186,240,173,179,186,126,199,179,186,247,224,179,186,93,250,179,186,176,19,180,186,239,44,180,186,27,70,180,186,51,95,180,186,55,120,180,186,40,145,
180,186,5,170,180,186,207,194,180,186,133,219,180,186,40,244,180,186,182,12,181,186,50,37,181,186,153,61,181,186,238,85,181,186,46,110,181,186,91,134,181,186,116,158,181,186,121,182,181,186,107,206,181,186,73,230,181,186,19,254,181,186,202,21,182,186,109,45,182,186,252,68,182,186,120,92,182,186,223,115,182,186,51,139,182,186,116,162,182,186,160,185,182,186,185,208,182,186,190,231,182,186,175,254,182,186,140,21,183,186,85,44,183,186,11,67,183,186,173,89,183,186,59,112,183,186,181,134,183,186,27,157,
183,186,110,179,183,186,172,201,183,186,215,223,183,186,238,245,183,186,241,11,184,186,224,33,184,186,187,55,184,186,130,77,184,186,53,99,184,186,213,120,184,186,96,142,184,186,215,163,184,186,59,185,184,186,139,206,184,186,198,227,184,186,238,248,184,186,1,14,185,186,1,35,185,186,236,55,185,186,196,76,185,186,135,97,185,186,55,118,185,186,211,138,185,186,90,159,185,186,205,179,185,186,45,200,185,186,120,220,185,186,175,240,185,186,210,4,186,186,225,24,186,186,220,44,186,186,195,64,186,186,150,84,
186,186,85,104,186,186,255,123,186,186,150,143,186,186,24,163,186,186,134,182,186,186,224,201,186,186,38,221,186,186,87,240,186,186,117,3,187,186,126,22,187,186,115,41,187,186,84,60,187,186,33,79,187,186,217,97,187,186,126,116,187,186,14,135,187,186,138,153,187,186,241,171,187,186,69,190,187,186,132,208,187,186,175,226,187,186,197,244,187,186,200,6,188,186,182,24,188,186,144,42,188,186,85,60,188,186,7,78,188,186,164,95,188,186,44,113,188,186,161,130,188,186,1,148,188,186,77,165,188,186,132,182,188,
186,167,199,188,186,182,216,188,186,176,233,188,186,150,250,188,186,104,11,189,186,37,28,189,186,206,44,189,186,99,61,189,186,227,77,189,186,79,94,189,186,167,110,189,186,234,126,189,186,24,143,189,186,50,159,189,186,56,175,189,186,42,191,189,186,7,207,189,186,207,222,189,186,131,238,189,186,35,254,189,186,174,13,190,186,37,29,190,186,136,44,190,186,213,59,190,186,15,75,190,186,52,90,190,186,68,105,190,186,64,120,190,186,40,135,190,186,251,149,190,186,185,164,190,186,99,179,190,186,249,193,190,186,
122,208,190,186,230,222,190,186,62,237,190,186,130,251,190,186,177,9,191,186,203,23,191,186,209,37,191,186,194,51,191,186,159,65,191,186,103,79,191,186,27,93,191,186,186,106,191,186,68,120,191,186,186,133,191,186,27,147,191,186,104,160,191,186,160,173,191,186,196,186,191,186,211,199,191,186,205,212,191,186,179,225,191,186,132,238,191,186,65,251,191,186,232,7,192,186,124,20,192,186,250,32,192,186,101,45,192,186,186,57,192,186,251,69,192,186,39,82,192,186,62,94,192,186,65,106,192,186,47,118,192,186,
9,130,192,186,206,141,192,186,126,153,192,186,26,165,192,186,160,176,192,186,19,188,192,186,112,199,192,186,185,210,192,186,237,221,192,186,13,233,192,186,23,244,192,186,14,255,192,186,239,9,193,186,188,20,193,186,116,31,193,186,23,42,193,186,165,52,193,186,31,63,193,186,132,73,193,186,213,83,193,186,16,94,193,186,55,104,193,186,73,114,193,186,71,124,193,186,48,134,193,186,4,144,193,186,195,153,193,186,109,163,193,186,3,173,193,186,132,182,193,186,240,191,193,186,72,201,193,186,139,210,193,186,184,
219,193,186,210,228,193,186,214,237,193,186,198,246,193,186,161,255,193,186,103,8,194,186,24,17,194,186,181,25,194,186,60,34,194,186,175,42,194,186,13,51,194,186,87,59,194,186,139,67,194,186,171,75,194,186,182,83,194,186,172,91,194,186,142,99,194,186,90,107,194,186,18,115,194,186,181,122,194,186,67,130,194,186,189,137,194,186,33,145,194,186,113,152,194,186,172,159,194,186,210,166,194,186,227,173,194,186,223,180,194,186,199,187,194,186,154,194,194,186,88,201,194,186,1,208,194,186,149,214,194,186,21,
221,194,186,127,227,194,186,213,233,194,186,22,240,194,186,66,246,194,186,89,252,194,186,92,2,195,186,73,8,195,186,34,14,195,186,230,19,195,186,149,25,195,186,47,31,195,186,180,36,195,186,37,42,195,186,128,47,195,186,199,52,195,186,249,57,195,186,22,63,195,186,30,68,195,186,17,73,195,186,240,77,195,186,186,82,195,186,110,87,195,186,14,92,195,186,153,96,195,186,15,101,195,186,113,105,195,186,189,109,195,186,245,113,195,186,23,118,195,186,37,122,195,186,30,126,195,186,2,130,195,186,209,133,195,186,
140,137,195,186,49,141,195,186,194,144,195,186,62,148,195,186,164,151,195,186,246,154,195,186,52,158,195,186,92,161,195,186,111,164,195,186,110,167,195,186,87,170,195,186,44,173,195,186,236,175,195,186,151,178,195,186,45,181,195,186,175,183,195,186,27,186,195,186,115,188,195,186,181,190,195,186,227,192,195,186,252,194,195,186,0,197,195,186,239,198,195,186,202,200,195,186,143,202,195,186,64,204,195,186,219,205,195,186,98,207,195,186,212,208,195,186,49,210,195,186,121,211,195,186,173,212,195,186,203,
213,195,186,213,214,195,186,202,215,195,186,170,216,195,186,117,217,195,186,43,218,195,186,204,218,195,186,89,219,195,186,208,219,195,186,51,220,195,186,129,220,195,186,186,220,195,186,222,220,195,186,238,220,195,186,232,220,195,186,206,220,195,186,159,220,195,186,91,220,195,186,2,220,195,186,148,219,195,186,17,219,195,186,122,218,195,186,206,217,195,186,13,217,195,186,55,216,195,186,76,215,195,186,76,214,195,186,56,213,195,186,14,212,195,186,208,210,195,186,125,209,195,186,21,208,195,186,153,206,
195,186,7,205,195,186,97,203,195,186,166,201,195,186,214,199,195,186,241,197,195,186,248,195,195,186,233,193,195,186,198,191,195,186,142,189,195,186,66,187,195,186,224,184,195,186,106,182,195,186,222,179,195,186,62,177,195,186,138,174,195,186,192,171,195,186,226,168,195,186,238,165,195,186,230,162,195,186,202,159,195,186,152,156,195,186,82,153,195,186,247,149,195,186,135,146,195,186,2,143,195,186,105,139,195,186,187,135,195,186,248,131,195,186,32,128,195,186,52,124,195,186,50,120,195,186,28,116,195,
186,242,111,195,186,178,107,195,186,94,103,195,186,245,98,195,186,119,94,195,186,229,89,195,186,62,85,195,186,130,80,195,186,177,75,195,186,204,70,195,186,210,65,195,186,195,60,195,186,160,55,195,186,103,50,195,186,26,45,195,186,185,39,195,186,66,34,195,186,183,28,195,186,24,23,195,186,99,17,195,186,154,11,195,186,188,5,195,186,202,255,194,186,195,249,194,186,167,243,194,186,119,237,194,186,49,231,194,186,216,224,194,186,105,218,194,186,230,211,194,186,78,205,194,186,162,198,194,186,225,191,194,186,
11,185,194,186,33,178,194,186,34,171,194,186,14,164,194,186,230,156,194,186,169,149,194,186,88,142,194,186,242,134,194,186,119,127,194,186,232,119,194,186,68,112,194,186,139,104,194,186,190,96,194,186,221,88,194,186,231,80,194,186,220,72,194,186,188,64,194,186,136,56,194,186,64,48,194,186,227,39,194,186,113,31,194,186,235,22,194,186,81,14,194,186,161,5,194,186,222,252,193,186,5,244,193,186,24,235,193,186,23,226,193,186,1,217,193,186,215,207,193,186,152,198,193,186,69,189,193,186,221,179,193,186,96,
170,193,186,208,160,193,186,42,151,193,186,113,141,193,186,162,131,193,186,192,121,193,186,200,111,193,186,189,101,193,186,157,91,193,186,104,81,193,186,31,71,193,186,194,60,193,186,80,50,193,186,202,39,193,186,47,29,193,186,128,18,193,186,188,7,193,186,229,252,192,186,248,241,192,186,248,230,192,186,227,219,192,186,185,208,192,186,123,197,192,186,41,186,192,186,195,174,192,186,72,163,192,186,185,151,192,186,21,140,192,186,93,128,192,186,145,116,192,186,176,104,192,186,188,92,192,186,178,80,192,186,
149,68,192,186,99,56,192,186,29,44,192,186,195,31,192,186,84,19,192,186,209,6,192,186,58,250,191,186,142,237,191,186,207,224,191,186,251,211,191,186,19,199,191,186,22,186,191,186,5,173,191,186,225,159,191,186,167,146,191,186,90,133,191,186,249,119,191,186,131,106,191,186,249,92,191,186,91,79,191,186,169,65,191,186,226,51,191,186,8,38,191,186,25,24,191,186,22,10,191,186,255,251,190,186,212,237,190,186,148,223,190,186,65,209,190,186,217,194,190,186,94,180,190,186,206,165,190,186,42,151,190,186,114,
136,190,186,166,121,190,186,198,106,190,186,210,91,190,186,202,76,190,186,174,61,190,186,125,46,190,186,57,31,190,186,225,15,190,186,116,0,190,186,244,240,189,186,95,225,189,186,183,209,189,186,251,193,189,186,42,178,189,186,70,162,189,186,78,146,189,186,65,130,189,186,33,114,189,186,237,97,189,186,165,81,189,186,73,65,189,186,217,48,189,186,85,32,189,186,189,15,189,186,18,255,188,186,82,238,188,186,127,221,188,186,152,204,188,186,156,187,188,186,141,170,188,186,107,153,188,186,52,136,188,186,233,
118,188,186,139,101,188,186,25,84,188,186,147,66,188,186,249,48,188,186,76,31,188,186,138,13,188,186,181,251,187,186,204,233,187,186,208,215,187,186,191,197,187,186,155,179,187,186,99,161,187,186,24,143,187,186,185,124,187,186,70,106,187,186,191,87,187,186,37,69,187,186,119,50,187,186,181,31,187,186,224,12,187,186,247,249,186,186,250,230,186,186,234,211,186,186,198,192,186,186,142,173,186,186,67,154,186,186,229,134,186,186,114,115,186,186,236,95,186,186,83,76,186,186,166,56,186,186,229,36,186,186,
17,17,186,186,42,253,185,186,47,233,185,186,32,213,185,186,254,192,185,186,200,172,185,186,127,152,185,186,34,132,185,186,178,111,185,186,47,91,185,186,152,70,185,186,237,49,185,186,48,29,185,186,94,8,185,186,122,243,184,186,130,222,184,186,118,201,184,186,87,180,184,186,37,159,184,186,224,137,184,186,135,116,184,186,26,95,184,186,155,73,184,186,8,52,184,186,98,30,184,186,168,8,184,186,220,242,183,186,252,220,183,186,8,199,183,186,2,177,183,186,232,154,183,186,187,132,183,186,122,110,183,186,39,88,
183,186,192,65,183,186,70,43,183,186,185,20,183,186,25,254,182,186,101,231,182,186,159,208,182,186,197,185,182,186,216,162,182,186,216,139,182,186,197,116,182,186,159,93,182,186,102,70,182,186,25,47,182,186,186,23,182,186,71,0,182,186,194,232,181,186,41,209,181,186,125,185,181,186,191,161,181,186,237,137,181,186,9,114,181,186,17,90,181,186,6,66,181,186,233,41,181,186,184,17,181,186,117,249,180,186,31,225,180,186,181,200,180,186,57,176,180,186,170,151,180,186,8,127,180,186,83,102,180,186,140,77,180,
186,177,52,180,186,196,27,180,186,195,2,180,186,176,233,179,186,139,208,179,186,82,183,179,186,7,158,179,186,168,132,179,186,56,107,179,186,180,81,179,186,29,56,179,186,116,30,179,186,185,4,179,186,234,234,178,186,9,209,178,186,21,183,178,186,14,157,178,186,245,130,178,186,201,104,178,186,139,78,178,186,58,52,178,186,214,25,178,186,96,255,177,186,215,228,177,186,60,202,177,186,142,175,177,186,205,148,177,186,250,121,177,186,21,95,177,186,28,68,177,186,18,41,177,186,245,13,177,186,197,242,176,186,
131,215,176,186,47,188,176,186,200,160,176,186,79,133,176,186,195,105,176,186,37,78,176,186,117,50,176,186,178,22,176,186,221,250,175,186,245,222,175,186,251,194,175,186,239,166,175,186,208,138,175,186,160,110,175,186,93,82,175,186,7,54,175,186,160,25,175,186,38,253,174,186,154,224,174,186,252,195,174,186,75,167,174,186,136,138,174,186,179,109,174,186,204,80,174,186,211,51,174,186,200,22,174,186,170,249,173,186,123,220,173,186,57,191,173,186,230,161,173,186,128,132,173,186,8,103,173,186,126,73,173,
186,226,43,173,186,52,14,173,186,116,240,172,186,162,210,172,186,190,180,172,186,200,150,172,186,192,120,172,186,166,90,172,186,123,60,172,186,61,30,172,186,237,255,171,186,140,225,171,186,24,195,171,186,147,164,171,186,252,133,171,186,83,103,171,186,153,72,171,186,204,41,171,186,238,10,171,186,254,235,170,186,252,204,170,186,232,173,170,186,195,142,170,186,140,111,170,186,67,80,170,186,233,48,170,186,125,17,170,186,255,241,169,186,111,210,169,186,206,178,169,186,28,147,169,186,87,115,169,186,130,
83,169,186,154,51,169,186,161,19,169,186,150,243,168,186,122,211,168,186,77,179,168,186,13,147,168,186,189,114,168,186,91,82,168,186,231,49,168,186,98,17,168,186,203,240,167,186,36,208,167,186,106,175,167,186,159,142,167,186,195,109,167,186,214,76,167,186,215,43,167,186,199,10,167,186,165,233,166,186,115,200,166,186,47,167,166,186,217,133,166,186,115,100,166,186,251,66,166,186,114,33,166,186,215,255,165,186,44,222,165,186,111,188,165,186,161,154,165,186,194,120,165,186,210,86,165,186,209,52,165,186,
190,18,165,186,155,240,164,186,102,206,164,186,33,172,164,186,202,137,164,186,98,103,164,186,234,68,164,186,96,34,164,186,197,255,163,186,25,221,163,186,93,186,163,186,143,151,163,186,177,116,163,186,193,81,163,186,193,46,163,186,175,11,163,186,141,232,162,186,90,197,162,186,23,162,162,186,194,126,162,186,93,91,162,186,230,55,162,186,95,20,162,186,200,240,161,186,31,205,161,186,102,169,161,186,156,133,161,186,193,97,161,186,214,61,161,186,218,25,161,186,206,245,160,186,176,209,160,186,130,173,160,
186,68,137,160,186,245,100,160,186,149,64,160,186,37,28,160,186,165,247,159,186,19,211,159,186,114,174,159,186,191,137,159,186,253,100,159,186,42,64,159,186,70,27,159,186,82,246,158,186,78,209,158,186,57,172,158,186,20,135,158,186,222,97,158,186,152,60,158,186,66,23,158,186,220,241,157,186,101,204,157,186,222,166,157,186,71,129,157,186,159,91,157,186,231,53,157,186,31,16,157,186,71,234,156,186,95,196,156,186,102,158,156,186,94,120,156,186,69,82,156,186,28,44,156,186,227,5,156,186,154,223,155,186,
65,185,155,186,216,146,155,186,95,108,155,186,214,69,155,186,60,31,155,186,147,248,154,186,218,209,154,186,17,171,154,186,56,132,154,186,79,93,154,186,87,54,154,186,78,15,154,186,54,232,153,186,13,193,153,186,213,153,153,186,141,114,153,186,54,75,153,186,206,35,153,186,87,252,152,186,208,212,152,186,57,173,152,186,147,133,152,186,221,93,152,186,23,54,152,186,66,14,152,186,93,230,151,186,104,190,151,186,100,150,151,186,80,110,151,186,45,70,151,186,250,29,151,186,183,245,150,186,101,205,150,186,4,165,
150,186,147,124,150,186,19,84,150,186,131,43,150,186,228,2,150,186,53,218,149,186,119,177,149,186,170,136,149,186,205,95,149,186,225,54,149,186,230,13,149,186,219,228,148,186,193,187,148,186,152,146,148,186,96,105,148,186,24,64,148,186,193,22,148,186,91,237,147,186,230,195,147,186,98,154,147,186,206,112,147,186,44,71,147,186,122,29,147,186,185,243,146,186,233,201,146,186,10,160,146,186,29,118,146,186,32,76,146,186,20,34,146,186,249,247,145,186,207,205,145,186,150,163,145,186,79,121,145,186,248,78,
145,186,147,36,145,186,31,250,144,186,155,207,144,186,10,165,144,186,105,122,144,186,185,79,144,186,251,36,144,186,46,250,143,186,82,207,143,186,104,164,143,186,111,121,143,186,103,78,143,186,80,35,143,186,43,248,142,186,248,204,142,186,181,161,142,186,100,118,142,186,5,75,142,186,151,31,142,186,26,244,141,186,143,200,141,186,246,156,141,186,78,113,141,186,151,69,141,186,211,25,141,186,255,237,140,186,30,194,140,186,46,150,140,186,47,106,140,186,35,62,140,186,8,18,140,186,222,229,139,186,167,185,
139,186,97,141,139,186,13,97,139,186,170,52,139,186,58,8,139,186,187,219,138,186,46,175,138,186,148,130,138,186,234,85,138,186,51,41,138,186,110,252,137,186,155,207,137,186,185,162,137,186,202,117,137,186,204,72,137,186,193,27,137,186,168,238,136,186,128,193,136,186,75,148,136,186,8,103,136,186,183,57,136,186,88,12,136,186,235,222,135,186,113,177,135,186,233,131,135,186,82,86,135,186,174,40,135,186,253,250,134,186,61,205,134,186,112,159,134,186,149,113,134,186,173,67,134,186,183,21,134,186,179,231,
133,186,162,185,133,186,131,139,133,186,86,93,133,186,28,47,133,186,213,0,133,186,127,210,132,186,29,164,132,186,173,117,132,186,47,71,132,186,164,24,132,186,12,234,131,186,102,187,131,186,179,140,131,186,242,93,131,186,37,47,131,186,74,0,131,186,97,209,130,186,107,162,130,186,105,115,130,186,88,68,130,186,59,21,130,186,16,230,129,186,217,182,129,186,148,135,129,186,66,88,129,186,227,40,129,186,119,249,128,186,253,201,128,186,119,154,128,186,228,106,128,186,67,59,128,186,150,11,128,186,184,183,127,
186,41,88,127,186,129,248,126,186,191,152,126,186,227,56,126,186,237,216,125,186,222,120,125,186,181,24,125,186,115,184,124,186,23,88,124,186,161,247,123,186,18,151,123,186,106,54,123,186,168,213,122,186,205,116,122,186,216,19,122,186,202,178,121,186,163,81,121,186,99,240,120,186,10,143,120,186,151,45,120,186,12,204,119,186,104,106,119,186,170,8,119,186,212,166,118,186,228,68,118,186,220,226,117,186,187,128,117,186,130,30,117,186,47,188,116,186,196,89,116,186,65,247,115,186,164,148,115,186,240,49,
115,186,34,207,114,186,60,108,114,186,62,9,114,186,40,166,113,186,249,66,113,186,178,223,112,186,82,124,112,186,218,24,112,186,74,181,111,186,163,81,111,186,226,237,110,186,10,138,110,186,26,38,110,186,18,194,109,186,242,93,109,186,186,249,108,186,107,149,108,186,3,49,108,186,132,204,107,186,237,103,107,186,63,3,107,186,121,158,106,186,155,57,106,186,166,212,105,186,153,111,105,186,117,10,105,186,58,165,104,186,231,63,104,186,125,218,103,186,251,116,103,186,99,15,103,186,179,169,102,186,236,67,102,
186,14,222,101,186,25,120,101,186,13,18,101,186,234,171,100,186,176,69,100,186,95,223,99,186,247,120,99,186,121,18,99,186,228,171,98,186,56,69,98,186,118,222,97,186,156,119,97,186,173,16,97,186,167,169,96,186,138,66,96,186,87,219,95,186,14,116,95,186,174,12,95,186,56,165,94,186,171,61,94,186,9,214,93,186,80,110,93,186,129,6,93,186,156,158,92,186,161,54,92,186,145,206,91,186,106,102,91,186,45,254,90,186,218,149,90,186,114,45,90,186,244,196,89,186,96,92,89,186,182,243,88,186,247,138,88,186,34,34,88,
186,56,185,87,186,56,80,87,186,35,231,86,186,248,125,86,186,184,20,86,186,99,171,85,186,248,65,85,186,121,216,84,186,228,110,84,186,57,5,84,186,122,155,83,186,166,49,83,186,189,199,82,186,190,93,82,186,171,243,81,186,131,137,81,186,70,31,81,186,245,180,80,186,142,74,80,186,19,224,79,186,132,117,79,186,224,10,79,186,39,160,78,186,90,53,78,186,120,202,77,186,130,95,77,186,119,244,76,186,88,137,76,186,37,30,76,186,222,178,75,186,130,71,75,186,19,220,74,186,143,112,74,186,247,4,74,186,76,153,73,186,140,
45,73,186,184,193,72,186,209,85,72,186,213,233,71,186,198,125,71,186,164,17,71,186,109,165,70,186,35,57,70,186,197,204,69,186,84,96,69,186,207,243,68,186,55,135,68,186,140,26,68,186,205,173,67,186,251,64,67,186,21,212,66,186,28,103,66,186,17,250,65,186,242,140,65,186,192,31,65,186,123,178,64,186,34,69,64,186,183,215,63,186,58,106,63,186,169,252,62,186,5,143,62,186,79,33,62,186,134,179,61,186,171,69,61,186,188,215,60,186,188,105,60,186,168,251,59,186,130,141,59,186,74,31,59,186,0,177,58,186,163,66,
58,186,52,212,57,186,178,101,57,186,31,247,56,186,121,136,56,186,193,25,56,186,247,170,55,186,27,60,55,186,46,205,54,186,46,94,54,186,28,239,53,186,249,127,53,186,196,16,53,186,125,161,52,186,36,50,52,186,186,194,51,186,62,83,51,186,177,227,50,186,18,116,50,186,98,4,50,186,161,148,49,186,206,36,49,186,234,180,48,186,244,68,48,186,237,212,47,186,214,100,47,186,173,244,46,186,115,132,46,186,40,20,46,186,204,163,45,186,95,51,45,186,226,194,44,186,83,82,44,186,180,225,43,186,4,113,43,186,67,0,43,186,
114,143,42,186,144,30,42,186,158,173,41,186,155,60,41,186,136,203,40,186,100,90,40,186,48,233,39,186,236,119,39,186,152,6,39,186,51,149,38,186,190,35,38,186,57,178,37,186,164,64,37,186,255,206,36,186,74,93,36,186,133,235,35,186,177,121,35,186,204,7,35,186,216,149,34,186,212,35,34,186,193,177,33,186,157,63,33,186,107,205,32,186,40,91,32,186,214,232,31,186,117,118,31,186,5,4,31,186,133,145,30,186,246,30,30,186,87,172,29,186,170,57,29,186,237,198,28,186,33,84,28,186,70,225,27,186,93,110,27,186,100,251,
26,186,92,136,26,186,70,21,26,186,33,162,25,186,237,46,25,186,170,187,24,186,89,72,24,186,249,212,23,186,138,97,23,186,14,238,22,186,130,122,22,186,232,6,22,186,64,147,21,186,138,31,21,186,197,171,20,186,242,55,20,186,17,196,19,186,34,80,19,186,37,220,18,186,26,104,18,186,1,244,17,186,217,127,17,186,165,11,17,186,98,151,16,186,17,35,16,186,179,174,15,186,71,58,15,186,206,197,14,186,71,81,14,186,178,220,13,186,16,104,13,186,97,243,12,186,164,126,12,186,218,9,12,186,2,149,11,186,30,32,11,186,44,171,
10,186,45,54,10,186,33,193,9,186,8,76,9,186,226,214,8,186,175,97,8,186,111,236,7,186,35,119,7,186,201,1,7,186,99,140,6,186,240,22,6,186,113,161,5,186,229,43,5,186,77,182,4,186,168,64,4,186,246,202,3,186,56,85,3,186,110,223,2,186,152,105,2,186,181,243,1,186,198,125,1,186,204,7,1,186,197,145,0,186,177,27,0,186,37,75,255,185,207,94,254,185,97,114,253,185,220,133,252,185,63,153,251,185,139,172,250,185,191,191,249,185,220,210,248,185,226,229,247,185,209,248,246,185,168,11,246,185,105,30,245,185,20,49,
244,185,167,67,243,185,36,86,242,185,139,104,241,185,219,122,240,185,21,141,239,185,56,159,238,185,70,177,237,185,62,195,236,185,31,213,235,185,236,230,234,185,162,248,233,185,67,10,233,185,206,27,232,185,68,45,231,185,165,62,230,185,240,79,229,185,39,97,228,185,73,114,227,185,85,131,226,185,77,148,225,185,48,165,224,185,255,181,223,185,185,198,222,185,95,215,221,185,241,231,220,185,111,248,219,185,216,8,219,185,46,25,218,185,111,41,217,185,157,57,216,185,183,73,215,185,190,89,214,185,177,105,213,
185,145,121,212,185,94,137,211,185,23,153,210,185,190,168,209,185,81,184,208,185,210,199,207,185,64,215,206,185,155,230,205,185,228,245,204,185,26,5,204,185,62,20,203,185,80,35,202,185,79,50,201,185,61,65,200,185,25,80,199,185,226,94,198,185,154,109,197,185,65,124,196,185,214,138,195,185,89,153,194,185,203,167,193,185,44,182,192,185,124,196,191,185,187,210,190,185,233,224,189,185,6,239,188,185,18,253,187,185,14,11,187,185,249,24,186,185,212,38,185,185,158,52,184,185,89,66,183,185,3,80,182,185,157,
93,181,185,39,107,180,185,162,120,179,185,12,134,178,185,104,147,177,185,179,160,176,185,239,173,175,185,28,187,174,185,58,200,173,185,73,213,172,185,73,226,171,185,57,239,170,185,27,252,169,185,239,8,169,185,180,21,168,185,106,34,167,185,18,47,166,185,171,59,165,185,55,72,164,185,180,84,163,185,36,97,162,185,133,109,161,185,217,121,160,185,31,134,159,185,88,146,158,185,131,158,157,185,161,170,156,185,177,182,155,185,181,194,154,185,171,206,153,185,148,218,152,185,113,230,151,185,65,242,150,185,4,
254,149,185,187,9,149,185,101,21,148,185,3,33,147,185,148,44,146,185,26,56,145,185,147,67,144,185,1,79,143,185,98,90,142,185,184,101,141,185,3,113,140,185,66,124,139,185,117,135,138,185,157,146,137,185,186,157,136,185,204,168,135,185,211,179,134,185,207,190,133,185,192,201,132,185,167,212,131,185,130,223,130,185,84,234,129,185,27,245,128,185,175,255,127,185,20,21,126,185,101,42,124,185,162,63,122,185,203,84,120,185,225,105,118,185,227,126,116,185,210,147,114,185,175,168,112,185,120,189,110,185,47,
210,108,185,212,230,106,185,103,251,104,185,231,15,103,185,86,36,101,185,180,56,99,185,0,77,97,185,59,97,95,185,102,117,93,185,127,137,91,185,137,157,89,185,130,177,87,185,106,197,85,185,67,217,83,185,13,237,81,185,199,0,80,185,114,20,78,185,13,40,76,185,154,59,74,185,25,79,72,185,136,98,70,185,234,117,68,185,62,137,66,185,132,156,64,185,188,175,62,185,231,194,60,185,5,214,58,185,22,233,56,185,26,252,54,185,17,15,53,185,253,33,51,185,220,52,49,185,175,71,47,185,118,90,45,185,50,109,43,185,226,127,
41,185,136,146,39,185,34,165,37,185,178,183,35,185,55,202,33,185,179,220,31,185,35,239,29,185,139,1,28,185,232,19,26,185,60,38,24,185,135,56,22,185,200,74,20,185,1,93,18,185,49,111,16,185,89,129,14,185,120,147,12,185,144,165,10,185,159,183,8,185,167,201,6,185,168,219,4,185,161,237,2,185,148,255,0,185,254,34,254,184,200,70,250,184,134,106,246,184,55,142,242,184,220,177,238,184,117,213,234,184,4,249,230,184,135,28,227,184,1,64,223,184,112,99,219,184,214,134,215,184,51,170,211,184,136,205,207,184,212,
240,203,184,24,20,200,184,85,55,196,184,139,90,192,184,186,125,188,184,228,160,184,184,7,196,180,184,37,231,176,184,62,10,173,184,83,45,169,184,100,80,165,184,112,115,161,184,122,150,157,184,129,185,153,184,133,220,149,184,135,255,145,184,136,34,142,184,135,69,138,184,133,104,134,184,131,139,130,184,3,93,125,184,0,163,117,184,255,232,109,184,0,47,102,184,4,117,94,184,13,187,86,184,26,1,79,184,45,71,71,184,71,141,63,184,104,211,55,184,146,25,48,184,196,95,40,184,1,166,32,184,72,236,24,184,155,50,17,
184,250,120,9,184,102,191,1,184,192,11,244,183,209,152,228,183,3,38,213,183,85,179,197,183,201,64,182,183,98,206,166,183,33,92,151,183,7,234,135,183,44,240,112,183,160,12,82,183,109,41,51,183,150,70,20,183,60,200,234,182,18,4,173,182,104,129,94,182,160,248,197,181,173,56,196,52,188,8,20,54,75,196,135,54,75,131,197,54,172,160,1,55,54,127,32,55,63,93,63,55,197,58,94,55,197,23,125,55,29,250,141,55,17,104,157,55,188,213,172,55,30,67,188,55,52,176,203,55,253,28,219,55,119,137,234,55,161,245,249,55,188,
176,4,56,126,102,12,56,21,28,20,56,129,209,27,56,192,134,35,56,210,59,43,56,182,240,50,56,108,165,58,56,242,89,66,56,71,14,74,56,107,194,81,56,93,118,89,56,28,42,97,56,168,221,104,56,255,144,112,56,32,68,120,56,12,247,127,56,224,212,131,56,31,174,135,56,65,135,139,56,70,96,143,56,46,57,147,56,249,17,151,56,166,234,154,56,52,195,158,56,164,155,162,56,244,115,166,56,37,76,170,56,54,36,174,56,39,252,177,56,247,211,181,56,166,171,185,56,51,131,189,56,158,90,193,56,230,49,197,56,12,9,201,56,15,224,204,
56,238,182,208,56,169,141,212,56,63,100,216,56,177,58,220,56,253,16,224,56,36,231,227,56,36,189,231,56,254,146,235,56,178,104,239,56,62,62,243,56,162,19,247,56,222,232,250,56,242,189,254,56,110,73,1,57,207,51,3,57,27,30,5,57,81,8,7,57,115,242,8,57,127,220,10,57,117,198,12,57,86,176,14,57,32,154,16,57,212,131,18,57,114,109,20,57,249,86,22,57,105,64,24,57,194,41,26,57,3,19,28,57,46,252,29,57,64,229,31,57,59,206,33,57,29,183,35,57,231,159,37,57,153,136,39,57,50,113,41,57,178,89,43,57,25,66,45,57,102,
42,47,57,154,18,49,57,181,250,50,57,181,226,52,57,155,202,54,57,103,178,56,57,25,154,58,57,176,129,60,57,43,105,62,57,140,80,64,57,209,55,66,57,251,30,68,57,9,6,70,57,252,236,71,57,210,211,73,57,139,186,75,57,40,161,77,57,169,135,79,57,12,110,81,57,83,84,83,57,124,58,85,57,135,32,87,57,117,6,89,57,69,236,90,57,246,209,92,57,138,183,94,57,254,156,96,57,84,130,98,57,139,103,100,57,163,76,102,57,156,49,104,57,117,22,106,57,46,251,107,57,200,223,109,57,65,196,111,57,154,168,113,57,210,140,115,57,234,
112,117,57,225,84,119,57,182,56,121,57,106,28,123,57,253,255,124,57,110,227,126,57,94,99,128,57,245,84,129,57,122,70,130,57,238,55,131,57,81,41,132,57,162,26,133,57,225,11,134,57,15,253,134,57,44,238,135,57,54,223,136,57,46,208,137,57,20,193,138,57,233,177,139,57,170,162,140,57,90,147,141,57,247,131,142,57,129,116,143,57,249,100,144,57,94,85,145,57,176,69,146,57,240,53,147,57,28,38,148,57,53,22,149,57,59,6,150,57,45,246,150,57,12,230,151,57,216,213,152,57,144,197,153,57,52,181,154,57,196,164,155,
57,64,148,156,57,168,131,157,57,252,114,158,57,60,98,159,57,104,81,160,57,127,64,161,57,130,47,162,57,112,30,163,57,73,13,164,57,13,252,164,57,189,234,165,57,87,217,166,57,220,199,167,57,77,182,168,57,167,164,169,57,237,146,170,57,29,129,171,57,55,111,172,57,59,93,173,57,42,75,174,57,3,57,175,57,198,38,176,57,115,20,177,57,9,2,178,57,137,239,178,57,243,220,179,57,71,202,180,57,131,183,181,57,169,164,182,57,185,145,183,57,177,126,184,57,147,107,185,57,93,88,186,57,16,69,187,57,172,49,188,57,49,30,
189,57,158,10,190,57,243,246,190,57,49,227,191,57,88,207,192,57,102,187,193,57,92,167,194,57,58,147,195,57,1,127,196,57,175,106,197,57,68,86,198,57,193,65,199,57,38,45,200,57,114,24,201,57,165,3,202,57,192,238,202,57,193,217,203,57,170,196,204,57,121,175,205,57,48,154,206,57,205,132,207,57,80,111,208,57,186,89,209,57,11,68,210,57,66,46,211,57,95,24,212,57,98,2,213,57,75,236,213,57,26,214,214,57,207,191,215,57,106,169,216,57,234,146,217,57,80,124,218,57,155,101,219,57,204,78,220,57,226,55,221,57,221,
32,222,57,189,9,223,57,130,242,223,57,44,219,224,57,187,195,225,57,47,172,226,57,135,148,227,57,196,124,228,57,229,100,229,57,234,76,230,57,212,52,231,57,161,28,232,57,83,4,233,57,233,235,233,57,98,211,234,57,191,186,235,57,0,162,236,57,37,137,237,57,45,112,238,57,24,87,239,57,230,61,240,57,152,36,241,57,45,11,242,57,165,241,242,57,255,215,243,57,61,190,244,57,93,164,245,57,96,138,246,57,69,112,247,57,13,86,248,57,183,59,249,57,67,33,250,57,177,6,251,57,2,236,251,57,52,209,252,57,72,182,253,57,62,
155,254,57,22,128,255,57,104,50,0,58,181,164,0,58,243,22,1,58,34,137,1,58,65,251,1,58,81,109,2,58,81,223,2,58,66,81,3,58,36,195,3,58,245,52,4,58,183,166,4,58,105,24,5,58,12,138,5,58,159,251,5,58,33,109,6,58,148,222,6,58,247,79,7,58,74,193,7,58,141,50,8,58,192,163,8,58,226,20,9,58,245,133,9,58,247,246,9,58,233,103,10,58,203,216,10,58,156,73,11,58,93,186,11,58,13,43,12,58,173,155,12,58,60,12,13,58,187,124,13,58,41,237,13,58,134,93,14,58,211,205,14,58,15,62,15,58,58,174,15,58,84,30,16,58,93,142,16,58,
85,254,16,58,61,110,17,58,19,222,17,58,216,77,18,58,140,189,18,58,46,45,19,58,192,156,19,58,64,12,20,58,175,123,20,58,12,235,20,58,88,90,21,58,147,201,21,58,188,56,22,58,212,167,22,58,218,22,23,58,206,133,23,58,176,244,23,58,129,99,24,58,64,210,24,58,238,64,25,58,137,175,25,58,18,30,26,58,138,140,26,58,239,250,26,58,67,105,27,58,132,215,27,58,179,69,28,58,208,179,28,58,219,33,29,58,211,143,29,58,186,253,29,58,141,107,30,58,79,217,30,58,254,70,31,58,154,180,31,58,36,34,32,58,155,143,32,58,0,253,32,
58,82,106,33,58,145,215,33,58,190,68,34,58,215,177,34,58,222,30,35,58,210,139,35,58,179,248,35,58,129,101,36,58,60,210,36,58,228,62,37,58,120,171,37,58,250,23,38,58,104,132,38,58,195,240,38,58,11,93,39,58,64,201,39,58,97,53,40,58,110,161,40,58,104,13,41,58,79,121,41,58,34,229,41,58,226,80,42,58,141,188,42,58,38,40,43,58,170,147,43,58,27,255,43,58,119,106,44,58,192,213,44,58,245,64,45,58,22,172,45,58,35,23,46,58,28,130,46,58,1,237,46,58,210,87,47,58,143,194,47,58,55,45,48,58,203,151,48,58,75,2,49,
58,183,108,49,58,14,215,49,58,81,65,50,58,127,171,50,58,152,21,51,58,158,127,51,58,142,233,51,58,106,83,52,58,49,189,52,58,228,38,53,58,129,144,53,58,10,250,53,58,126,99,54,58,221,204,54,58,40,54,55,58,93,159,55,58,125,8,56,58,136,113,56,58,126,218,56,58,95,67,57,58,42,172,57,58,225,20,58,58,130,125,58,58,14,230,58,58,132,78,59,58,229,182,59,58,49,31,60,58,103,135,60,58,135,239,60,58,146,87,61,58,135,191,61,58,103,39,62,58,49,143,62,58,229,246,62,58,131,94,63,58,12,198,63,58,126,45,64,58,219,148,
64,58,34,252,64,58,83,99,65,58,109,202,65,58,114,49,66,58,97,152,66,58,57,255,66,58,251,101,67,58,167,204,67,58,61,51,68,58,188,153,68,58,37,0,69,58,119,102,69,58,179,204,69,58,217,50,70,58,232,152,70,58,224,254,70,58,194,100,71,58,141,202,71,58,66,48,72,58,223,149,72,58,102,251,72,58,214,96,73,58,47,198,73,58,114,43,74,58,157,144,74,58,177,245,74,58,175,90,75,58,149,191,75,58,100,36,76,58,28,137,76,58,189,237,76,58,70,82,77,58,185,182,77,58,20,27,78,58,87,127,78,58,131,227,78,58,152,71,79,58,150,
171,79,58,123,15,80,58,74,115,80,58,0,215,80,58,159,58,81,58,38,158,81,58,150,1,82,58,238,100,82,58,46,200,82,58,86,43,83,58,102,142,83,58,95,241,83,58,63,84,84,58,8,183,84,58,184,25,85,58,80,124,85,58,209,222,85,58,57,65,86,58,136,163,86,58,192,5,87,58,223,103,87,58,230,201,87,58,213,43,88,58,171,141,88,58,105,239,88,58,15,81,89,58,155,178,89,58,16,20,90,58,107,117,90,58,174,214,90,58,217,55,91,58,235,152,91,58,228,249,91,58,196,90,92,58,139,187,92,58,58,28,93,58,207,124,93,58,76,221,93,58,175,61,
94,58,250,157,94,58,44,254,94,58,68,94,95,58,68,190,95,58,42,30,96,58,247,125,96,58,170,221,96,58,69,61,97,58,198,156,97,58,46,252,97,58,124,91,98,58,177,186,98,58,204,25,99,58,206,120,99,58,183,215,99,58,133,54,100,58,59,149,100,58,214,243,100,58,88,82,101,58,192,176,101,58,14,15,102,58,66,109,102,58,93,203,102,58,94,41,103,58,68,135,103,58,17,229,103,58,196,66,104,58,92,160,104,58,219,253,104,58,63,91,105,58,138,184,105,58,186,21,106,58,208,114,106,58,203,207,106,58,173,44,107,58,116,137,107,58,
32,230,107,58,178,66,108,58,42,159,108,58,135,251,108,58,202,87,109,58,242,179,109,58,255,15,110,58,242,107,110,58,202,199,110,58,136,35,111,58,43,127,111,58,179,218,111,58,32,54,112,58,114,145,112,58,169,236,112,58,198,71,113,58,199,162,113,58,173,253,113,58,121,88,114,58,41,179,114,58,190,13,115,58,56,104,115,58,151,194,115,58,219,28,116,58,3,119,116,58,16,209,116,58,2,43,117,58,216,132,117,58,147,222,117,58,51,56,118,58,183,145,118,58,31,235,118,58,108,68,119,58,158,157,119,58,179,246,119,58,173,
79,120,58,140,168,120,58,78,1,121,58,245,89,121,58,129,178,121,58,240,10,122,58,67,99,122,58,123,187,122,58,150,19,123,58,150,107,123,58,122,195,123,58,65,27,124,58,237,114,124,58,124,202,124,58,239,33,125,58,70,121,125,58,129,208,125,58,160,39,126,58,162,126,126,58,136,213,126,58,82,44,127,58,255,130,127,58,144,217,127,58,2,24,128,58,46,67,128,58,76,110,128,58,91,153,128,58,92,196,128,58,79,239,128,58,51,26,129,58,10,69,129,58,209,111,129,58,139,154,129,58,54,197,129,58,210,239,129,58,96,26,130,
58,224,68,130,58,81,111,130,58,180,153,130,58,8,196,130,58,78,238,130,58,133,24,131,58,173,66,131,58,199,108,131,58,211,150,131,58,208,192,131,58,190,234,131,58,157,20,132,58,110,62,132,58,49,104,132,58,228,145,132,58,137,187,132,58,31,229,132,58,167,14,133,58,31,56,133,58,137,97,133,58,228,138,133,58,49,180,133,58,110,221,133,58,157,6,134,58,188,47,134,58,205,88,134,58,208,129,134,58,195,170,134,58,167,211,134,58,124,252,134,58,67,37,135,58,250,77,135,58,162,118,135,58,60,159,135,58,198,199,135,
58,66,240,135,58,174,24,136,58,11,65,136,58,90,105,136,58,153,145,136,58,201,185,136,58,234,225,136,58,251,9,137,58,254,49,137,58,242,89,137,58,214,129,137,58,171,169,137,58,113,209,137,58,39,249,137,58,207,32,138,58,103,72,138,58,240,111,138,58,105,151,138,58,211,190,138,58,46,230,138,58,122,13,139,58,182,52,139,58,227,91,139,58,0,131,139,58,14,170,139,58,13,209,139,58,252,247,139,58,220,30,140,58,172,69,140,58,109,108,140,58,30,147,140,58,192,185,140,58,82,224,140,58,212,6,141,58,72,45,141,58,171,
83,141,58,255,121,141,58,67,160,141,58,120,198,141,58,157,236,141,58,179,18,142,58,185,56,142,58,175,94,142,58,149,132,142,58,108,170,142,58,51,208,142,58,234,245,142,58,146,27,143,58,41,65,143,58,177,102,143,58,41,140,143,58,146,177,143,58,234,214,143,58,51,252,143,58,108,33,144,58,149,70,144,58,174,107,144,58,183,144,144,58,176,181,144,58,154,218,144,58,115,255,144,58,61,36,145,58,246,72,145,58,160,109,145,58,57,146,145,58,195,182,145,58,60,219,145,58,165,255,145,58,255,35,146,58,72,72,146,58,129,
108,146,58,170,144,146,58,195,180,146,58,204,216,146,58,197,252,146,58,173,32,147,58,134,68,147,58,78,104,147,58,6,140,147,58,174,175,147,58,69,211,147,58,205,246,147,58,68,26,148,58,171,61,148,58,1,97,148,58,71,132,148,58,125,167,148,58,163,202,148,58,184,237,148,58,189,16,149,58,178,51,149,58,150,86,149,58,106,121,149,58,45,156,149,58,224,190,149,58,130,225,149,58,20,4,150,58,150,38,150,58,7,73,150,58,104,107,150,58,184,141,150,58,248,175,150,58,39,210,150,58,69,244,150,58,83,22,151,58,81,56,151,
58,62,90,151,58,26,124,151,58,230,157,151,58,161,191,151,58,75,225,151,58,229,2,152,58,110,36,152,58,231,69,152,58,79,103,152,58,166,136,152,58,236,169,152,58,34,203,152,58,71,236,152,58,91,13,153,58,94,46,153,58,81,79,153,58,51,112,153,58,4,145,153,58,196,177,153,58,115,210,153,58,18,243,153,58,160,19,154,58,29,52,154,58,137,84,154,58,228,116,154,58,46,149,154,58,103,181,154,58,144,213,154,58,167,245,154,58,174,21,155,58,163,53,155,58,136,85,155,58,91,117,155,58,30,149,155,58,207,180,155,58,112,
212,155,58,255,243,155,58,126,19,156,58,235,50,156,58,71,82,156,58,147,113,156,58,205,144,156,58,246,175,156,58,14,207,156,58,20,238,156,58,10,13,157,58,238,43,157,58,194,74,157,58,132,105,157,58,53,136,157,58,212,166,157,58,99,197,157,58,224,227,157,58,76,2,158,58,167,32,158,58,241,62,158,58,41,93,158,58,80,123,158,58,101,153,158,58,106,183,158,58,93,213,158,58,62,243,158,58,15,17,159,58,206,46,159,58,123,76,159,58,24,106,159,58,163,135,159,58,28,165,159,58,132,194,159,58,219,223,159,58,32,253,159,
58,84,26,160,58,118,55,160,58,135,84,160,58,134,113,160,58,116,142,160,58,80,171,160,58,27,200,160,58,212,228,160,58,124,1,161,58,18,30,161,58,151,58,161,58,10,87,161,58,108,115,161,58,188,143,161,58,250,171,161,58,39,200,161,58,66,228,161,58,75,0,162,58,67,28,162,58,41,56,162,58,254,83,162,58,193,111,162,58,114,139,162,58,17,167,162,58,159,194,162,58,27,222,162,58,134,249,162,58,222,20,163,58,37,48,163,58,90,75,163,58,125,102,163,58,143,129,163,58,143,156,163,58,124,183,163,58,89,210,163,58,35,237,
163,58,219,7,164,58,130,34,164,58,23,61,164,58,154,87,164,58,11,114,164,58,106,140,164,58,183,166,164,58,243,192,164,58,28,219,164,58,52,245,164,58,57,15,165,58],"i8",4,y.a+645120);
Q([45,41,165,58,15,67,165,58,222,92,165,58,156,118,165,58,72,144,165,58,226,169,165,58,106,195,165,58,224,220,165,58,67,246,165,58,149,15,166,58,213,40,166,58,3,66,166,58,30,91,166,58,40,116,166,58,31,141,166,58,5,166,166,58,216,190,166,58,153,215,166,58,73,240,166,58,230,8,167,58,112,33,167,58,233,57,167,58,80,82,167,58,164,106,167,58,230,130,167,58,22,155,167,58,52,179,167,58,64,203,167,58,58,227,167,58,33,251,167,58,246,18,168,58,185,42,168,58,105,66,168,58,8,90,168,58,148,113,168,58,14,137,168,
58,117,160,168,58,202,183,168,58,13,207,168,58,62,230,168,58,92,253,168,58,104,20,169,58,98,43,169,58,74,66,169,58,31,89,169,58,225,111,169,58,146,134,169,58,48,157,169,58,187,179,169,58,52,202,169,58,155,224,169,58,240,246,169,58,50,13,170,58,97,35,170,58,126,57,170,58,137,79,170,58,129,101,170,58,103,123,170,58,59,145,170,58,251,166,170,58,170,188,170,58,70,210,170,58,207,231,170,58,70,253,170,58,171,18,171,58,253,39,171,58,60,61,171,58,105,82,171,58,131,103,171,58,139,124,171,58,128,145,171,58,
99,166,171,58,51,187,171,58,241,207,171,58,156,228,171,58,52,249,171,58,186,13,172,58,45,34,172,58,141,54,172,58,219,74,172,58,23,95,172,58,63,115,172,58,85,135,172,58,89,155,172,58,73,175,172,58,39,195,172,58,243,214,172,58,171,234,172,58,81,254,172,58,229,17,173,58,101,37,173,58,211,56,173,58,46,76,173,58,119,95,173,58,172,114,173,58,207,133,173,58,224,152,173,58,221,171,173,58,200,190,173,58,160,209,173,58,101,228,173,58,23,247,173,58,183,9,174,58,68,28,174,58,190,46,174,58,37,65,174,58,121,83,
174,58,187,101,174,58,234,119,174,58,6,138,174,58,15,156,174,58,5,174,174,58,233,191,174,58,185,209,174,58,119,227,174,58,34,245,174,58,186,6,175,58,63,24,175,58,177,41,175,58,16,59,175,58,92,76,175,58,150,93,175,58,189,110,175,58,208,127,175,58,209,144,175,58,191,161,175,58,154,178,175,58,97,195,175,58,22,212,175,58,184,228,175,58,71,245,175,58,196,5,176,58,45,22,176,58,131,38,176,58,198,54,176,58,246,70,176,58,19,87,176,58,29,103,176,58,20,119,176,58,249,134,176,58,202,150,176,58,136,166,176,58,
51,182,176,58,203,197,176,58,80,213,176,58,194,228,176,58,33,244,176,58,109,3,177,58,165,18,177,58,203,33,177,58,222,48,177,58,221,63,177,58,202,78,177,58,163,93,177,58,105,108,177,58,29,123,177,58,189,137,177,58,74,152,177,58,196,166,177,58,42,181,177,58,126,195,177,58,191,209,177,58,236,223,177,58,6,238,177,58,13,252,177,58,1,10,178,58,226,23,178,58,176,37,178,58,106,51,178,58,17,65,178,58,166,78,178,58,39,92,178,58,148,105,178,58,239,118,178,58,54,132,178,58,107,145,178,58,140,158,178,58,154,171,
178,58,148,184,178,58,124,197,178,58,80,210,178,58,17,223,178,58,190,235,178,58,89,248,178,58,224,4,179,58,84,17,179,58,181,29,179,58,3,42,179,58,61,54,179,58,100,66,179,58,120,78,179,58,121,90,179,58,102,102,179,58,64,114,179,58,7,126,179,58,186,137,179,58,90,149,179,58,231,160,179,58,97,172,179,58,199,183,179,58,26,195,179,58,90,206,179,58,135,217,179,58,160,228,179,58,166,239,179,58,152,250,179,58,119,5,180,58,67,16,180,58,252,26,180,58,161,37,180,58,51,48,180,58,177,58,180,58,29,69,180,58,117,
79,180,58,185,89,180,58,234,99,180,58,8,110,180,58,19,120,180,58,10,130,180,58,238,139,180,58,190,149,180,58,123,159,180,58,37,169,180,58,187,178,180,58,62,188,180,58,174,197,180,58,10,207,180,58,83,216,180,58,136,225,180,58,170,234,180,58,185,243,180,58,180,252,180,58,156,5,181,58,113,14,181,58,50,23,181,58,224,31,181,58,122,40,181,58,1,49,181,58,116,57,181,58,212,65,181,58,33,74,181,58,90,82,181,58,128,90,181,58,146,98,181,58,145,106,181,58,125,114,181,58,85,122,181,58,25,130,181,58,203,137,181,
58,104,145,181,58,243,152,181,58,106,160,181,58,205,167,181,58,29,175,181,58,90,182,181,58,131,189,181,58,153,196,181,58,155,203,181,58,138,210,181,58,101,217,181,58,45,224,181,58,225,230,181,58,130,237,181,58,16,244,181,58,138,250,181,58,240,0,182,58,67,7,182,58,131,13,182,58,175,19,182,58,200,25,182,58,205,31,182,58,191,37,182,58,157,43,182,58,104,49,182,58,31,55,182,58,195,60,182,58,83,66,182,58,208,71,182,58,57,77,182,58,143,82,182,58,210,87,182,58,1,93,182,58,28,98,182,58,36,103,182,58,24,108,
182,58,249,112,182,58,199,117,182,58,129,122,182,58,39,127,182,58,186,131,182,58,58,136,182,58,166,140,182,58,254,144,182,58,67,149,182,58,117,153,182,58,147,157,182,58,157,161,182,58,148,165,182,58,120,169,182,58,72,173,182,58,4,177,182,58,173,180,182,58,67,184,182,58,197,187,182,58,51,191,182,58,142,194,182,58,214,197,182,58,10,201,182,58,42,204,182,58,55,207,182,58,48,210,182,58,22,213,182,58,233,215,182,58,168,218,182,58,83,221,182,58,235,223,182,58,111,226,182,58,224,228,182,58,62,231,182,58,
136,233,182,58,190,235,182,58,225,237,182,58,240,239,182,58,236,241,182,58,213,243,182,58,169,245,182,58,107,247,182,58,25,249,182,58,179,250,182,58,58,252,182,58,173,253,182,58,13,255,182,58,89,0,183,58,146,1,183,58,184,2,183,58,202,3,183,58,200,4,183,58,179,5,183,58,138,6,183,58,78,7,183,58,254,7,183,58,155,8,183,58,37,9,183,58,154,9,183,58,253,9,183,58,76,10,183,58,135,10,183,58,175,10,183,58,195,10,183,58,196,10,183,58,178,10,183,58,140,10,183,58,82,10,183,58,5,10,183,58,165,9,183,58,49,9,183,
58,169,8,183,58,14,8,183,58,96,7,183,58,158,6,183,58,201,5,183,58,224,4,183,58,227,3,183,58,212,2,183,58,176,1,183,58,122,0,183,58,48,255,182,58,210,253,182,58,97,252,182,58,220,250,182,58,68,249,182,58,153,247,182,58,218,245,182,58,7,244,182,58,34,242,182,58,40,240,182,58,27,238,182,58,251,235,182,58,200,233,182,58,129,231,182,58,38,229,182,58,184,226,182,58,55,224,182,58,162,221,182,58,250,218,182,58,62,216,182,58,111,213,182,58,140,210,182,58,150,207,182,58,141,204,182,58,112,201,182,58,64,198,
182,58,252,194,182,58,165,191,182,58,59,188,182,58,189,184,182,58,44,181,182,58,135,177,182,58,207,173,182,58,4,170,182,58,37,166,182,58,50,162,182,58,45,158,182,58,20,154,182,58,231,149,182,58,168,145,182,58,84,141,182,58,238,136,182,58,116,132,182,58,231,127,182,58,70,123,182,58,146,118,182,58,203,113,182,58,240,108,182,58,2,104,182,58,1,99,182,58,236,93,182,58,196,88,182,58,136,83,182,58,58,78,182,58,216,72,182,58,98,67,182,58,217,61,182,58,61,56,182,58,142,50,182,58,203,44,182,58,245,38,182,58,
12,33,182,58,15,27,182,58,255,20,182,58,220,14,182,58,165,8,182,58,91,2,182,58,254,251,181,58,142,245,181,58,10,239,181,58,115,232,181,58,201,225,181,58,11,219,181,58,59,212,181,58,87,205,181,58,95,198,181,58,85,191,181,58,55,184,181,58,6,177,181,58,194,169,181,58,106,162,181,58,255,154,181,58,129,147,181,58,240,139,181,58,76,132,181,58,148,124,181,58,201,116,181,58,235,108,181,58,250,100,181,58,245,92,181,58,222,84,181,58,179,76,181,58,117,68,181,58,36,60,181,58,191,51,181,58,72,43,181,58,189,34,
181,58,31,26,181,58,110,17,181,58,170,8,181,58,210,255,180,58,232,246,180,58,234,237,180,58,217,228,180,58,181,219,180,58,126,210,180,58,52,201,180,58,215,191,180,58,102,182,180,58,227,172,180,58,76,163,180,58,163,153,180,58,230,143,180,58,22,134,180,58,51,124,180,58,61,114,180,58,52,104,180,58,24,94,180,58,232,83,180,58,166,73,180,58,81,63,180,58,233,52,180,58,109,42,180,58,223,31,180,58,61,21,180,58,137,10,180,58,193,255,179,58,231,244,179,58,249,233,179,58,249,222,179,58,229,211,179,58,191,200,
179,58,133,189,179,58,57,178,179,58,217,166,179,58,103,155,179,58,226,143,179,58,73,132,179,58,158,120,179,58,224,108,179,58,15,97,179,58,43,85,179,58,52,73,179,58,42,61,179,58,13,49,179,58,221,36,179,58,154,24,179,58,69,12,179,58,221,255,178,58,97,243,178,58,211,230,178,58,50,218,178,58,126,205,178,58,183,192,178,58,222,179,178,58,241,166,178,58,242,153,178,58,224,140,178,58,187,127,178,58,131,114,178,58,57,101,178,58,219,87,178,58,107,74,178,58,232,60,178,58,83,47,178,58,170,33,178,58,239,19,178,
58,33,6,178,58,64,248,177,58,76,234,177,58,70,220,177,58,45,206,177,58,1,192,177,58,195,177,177,58,114,163,177,58,14,149,177,58,151,134,177,58,14,120,177,58,114,105,177,58,195,90,177,58,2,76,177,58,46,61,177,58,71,46,177,58,78,31,177,58,66,16,177,58,35,1,177,58,242,241,176,58,174,226,176,58,87,211,176,58,238,195,176,58,115,180,176,58,228,164,176,58,67,149,176,58,144,133,176,58,202,117,176,58,241,101,176,58,6,86,176,58,8,70,176,58,248,53,176,58,213,37,176,58,160,21,176,58,88,5,176,58,254,244,175,58,
145,228,175,58,18,212,175,58,128,195,175,58,220,178,175,58,37,162,175,58,92,145,175,58,128,128,175,58,146,111,175,58,146,94,175,58,127,77,175,58,89,60,175,58,33,43,175,58,215,25,175,58,122,8,175,58,11,247,174,58,138,229,174,58,246,211,174,58,80,194,174,58,152,176,174,58,205,158,174,58,240,140,174,58,0,123,174,58,254,104,174,58,234,86,174,58,196,68,174,58,139,50,174,58,64,32,174,58,227,13,174,58,115,251,173,58,241,232,173,58,93,214,173,58,183,195,173,58,255,176,173,58,52,158,173,58,87,139,173,58,104,
120,173,58,102,101,173,58,83,82,173,58,45,63,173,58,245,43,173,58,171,24,173,58,78,5,173,58,224,241,172,58,95,222,172,58,205,202,172,58,40,183,172,58,113,163,172,58,168,143,172,58,205,123,172,58,224,103,172,58,224,83,172,58,207,63,172,58,172,43,172,58,118,23,172,58,47,3,172,58,213,238,171,58,106,218,171,58,236,197,171,58,93,177,171,58,187,156,171,58,8,136,171,58,66,115,171,58,107,94,171,58,130,73,171,58,134,52,171,58,121,31,171,58,90,10,171,58,41,245,170,58,230,223,170,58,145,202,170,58,42,181,170,
58,178,159,170,58,39,138,170,58,139,116,170,58,221,94,170,58,29,73,170,58,75,51,170,58,104,29,170,58,114,7,170,58,107,241,169,58,82,219,169,58,39,197,169,58,235,174,169,58,156,152,169,58,60,130,169,58,203,107,169,58,71,85,169,58,178,62,169,58,11,40,169,58,83,17,169,58,136,250,168,58,172,227,168,58,191,204,168,58,192,181,168,58,175,158,168,58,140,135,168,58,88,112,168,58,19,89,168,58,187,65,168,58,83,42,168,58,216,18,168,58,76,251,167,58,175,227,167,58,0,204,167,58,63,180,167,58,109,156,167,58,137,
132,167,58,148,108,167,58,141,84,167,58,117,60,167,58,76,36,167,58,17,12,167,58,196,243,166,58,102,219,166,58,247,194,166,58,118,170,166,58,228,145,166,58,65,121,166,58,140,96,166,58,198,71,166,58,238,46,166,58,5,22,166,58,11,253,165,58,0,228,165,58,227,202,165,58,181,177,165,58,117,152,165,58,36,127,165,58,194,101,165,58,79,76,165,58,203,50,165,58,53,25,165,58,142,255,164,58,214,229,164,58,13,204,164,58,50,178,164,58,71,152,164,58,74,126,164,58,60,100,164,58,29,74,164,58,237,47,164,58,171,21,164,
58,89,251,163,58,245,224,163,58,129,198,163,58,251,171,163,58,100,145,163,58,189,118,163,58,4,92,163,58,58,65,163,58,95,38,163,58,116,11,163,58,119,240,162,58,105,213,162,58,75,186,162,58,27,159,162,58,219,131,162,58,137,104,162,58,39,77,162,58,180,49,162,58,48,22,162,58,155,250,161,58,245,222,161,58,62,195,161,58,119,167,161,58,158,139,161,58,181,111,161,58,187,83,161,58,177,55,161,58,149,27,161,58,105,255,160,58,44,227,160,58,222,198,160,58,128,170,160,58,17,142,160,58,145,113,160,58,1,85,160,58,
96,56,160,58,174,27,160,58,235,254,159,58,24,226,159,58,53,197,159,58,64,168,159,58,60,139,159,58,38,110,159,58,0,81,159,58,202,51,159,58,131,22,159,58,43,249,158,58,195,219,158,58,74,190,158,58,193,160,158,58,40,131,158,58,126,101,158,58,195,71,158,58,248,41,158,58,29,12,158,58,49,238,157,58,53,208,157,58,41,178,157,58,12,148,157,58,223,117,157,58,161,87,157,58,84,57,157,58,245,26,157,58,135,252,156,58,8,222,156,58,121,191,156,58,218,160,156,58,43,130,156,58,107,99,156,58,155,68,156,58,187,37,156,
58,203,6,156,58,202,231,155,58,185,200,155,58,153,169,155,58,104,138,155,58,39,107,155,58,214,75,155,58,116,44,155,58,3,13,155,58,130,237,154,58,240,205,154,58,79,174,154,58,157,142,154,58,220,110,154,58,10,79,154,58,41,47,154,58,56,15,154,58,54,239,153,58,37,207,153,58,4,175,153,58,211,142,153,58,146,110,153,58,65,78,153,58,224,45,153,58,111,13,153,58,239,236,152,58,95,204,152,58,191,171,152,58,15,139,152,58,79,106,152,58,128,73,152,58,161,40,152,58,178,7,152,58,179,230,151,58,165,197,151,58,135,
164,151,58,89,131,151,58,28,98,151,58,207,64,151,58,114,31,151,58,6,254,150,58,138,220,150,58,255,186,150,58,100,153,150,58,185,119,150,58,255,85,150,58,54,52,150,58,93,18,150,58,116,240,149,58,124,206,149,58,116,172,149,58,93,138,149,58,55,104,149,58,1,70,149,58,188,35,149,58,103,1,149,58,3,223,148,58,144,188,148,58,13,154,148,58,123,119,148,58,217,84,148,58,41,50,148,58,105,15,148,58,153,236,147,58,187,201,147,58,205,166,147,58,208,131,147,58,196,96,147,58,168,61,147,58,126,26,147,58,68,247,146,
58,251,211,146,58,163,176,146,58,60,141,146,58,198,105,146,58,65,70,146,58,172,34,146,58,9,255,145,58,86,219,145,58,149,183,145,58,196,147,145,58,229,111,145,58,246,75,145,58,249,39,145,58,237,3,145,58,209,223,144,58,167,187,144,58,110,151,144,58,38,115,144,58,207,78,144,58,105,42,144,58,245,5,144,58,114,225,143,58,223,188,143,58,63,152,143,58,143,115,143,58,208,78,143,58,3,42,143,58,39,5,143,58,61,224,142,58,67,187,142,58,59,150,142,58,37,113,142,58,255,75,142,58,204,38,142,58,137,1,142,58,56,220,
141,58,216,182,141,58,106,145,141,58,237,107,141,58,98,70,141,58,200,32,141,58,32,251,140,58,105,213,140,58,164,175,140,58,208,137,140,58,238,99,140,58,254,61,140,58,255,23,140,58,242,241,139,58,214,203,139,58,172,165,139,58,116,127,139,58,45,89,139,58,216,50,139,58,117,12,139,58,4,230,138,58,132,191,138,58,246,152,138,58,90,114,138,58,176,75,138,58,247,36,138,58,48,254,137,58,92,215,137,58,121,176,137,58,136,137,137,58,137,98,137,58,123,59,137,58,96,20,137,58,55,237,136,58,0,198,136,58,186,158,136,
58,103,119,136,58,6,80,136,58,150,40,136,58,25,1,136,58,142,217,135,58,245,177,135,58,78,138,135,58,154,98,135,58,215,58,135,58,7,19,135,58,40,235,134,58,60,195,134,58,67,155,134,58,59,115,134,58,38,75,134,58,3,35,134,58,210,250,133,58,147,210,133,58,71,170,133,58,238,129,133,58,134,89,133,58,17,49,133,58,142,8,133,58,254,223,132,58,96,183,132,58,181,142,132,58,252,101,132,58,54,61,132,58,98,20,132,58,128,235,131,58,145,194,131,58,149,153,131,58,139,112,131,58,116,71,131,58,80,30,131,58,30,245,130,
58,222,203,130,58,146,162,130,58,56,121,130,58,208,79,130,58,92,38,130,58,218,252,129,58,75,211,129,58,175,169,129,58,5,128,129,58,78,86,129,58,139,44,129,58,186,2,129,58,219,216,128,58,240,174,128,58,248,132,128,58,242,90,128,58,224,48,128,58,192,6,128,58,38,185,127,58,179,100,127,58,38,16,127,58,126,187,126,58,189,102,126,58,226,17,126,58,237,188,125,58,222,103,125,58,182,18,125,58,116,189,124,58,24,104,124,58,162,18,124,58,19,189,123,58,106,103,123,58,167,17,123,58,204,187,122,58,214,101,122,58,
199,15,122,58,159,185,121,58,94,99,121,58,3,13,121,58,142,182,120,58,1,96,120,58,90,9,120,58,154,178,119,58,193,91,119,58,207,4,119,58,196,173,118,58,160,86,118,58,99,255,117,58,13,168,117,58,158,80,117,58,22,249,116,58,117,161,116,58,187,73,116,58,233,241,115,58,254,153,115,58,250,65,115,58,222,233,114,58,169,145,114,58,91,57,114,58,245,224,113,58,118,136,113,58,223,47,113,58,48,215,112,58,104,126,112,58,136,37,112,58,143,204,111,58,126,115,111,58,85,26,111,58,20,193,110,58,187,103,110,58,73,14,
110,58,192,180,109,58,30,91,109,58,101,1,109,58,147,167,108,58,169,77,108,58,168,243,107,58,143,153,107,58,94,63,107,58,21,229,106,58,181,138,106,58,60,48,106,58,173,213,105,58,5,123,105,58,70,32,105,58,112,197,104,58,129,106,104,58,124,15,104,58,95,180,103,58,43,89,103,58,223,253,102,58,124,162,102,58,2,71,102,58,113,235,101,58,200,143,101,58,8,52,101,58,49,216,100,58,68,124,100,58,63,32,100,58,35,196,99,58,240,103,99,58,166,11,99,58,70,175,98,58,206,82,98,58,64,246,97,58,155,153,97,58,223,60,97,
58,13,224,96,58,36,131,96,58,36,38,96,58,14,201,95,58,226,107,95,58,159,14,95,58,69,177,94,58,213,83,94,58,79,246,93,58,179,152,93,58,0,59,93,58,55,221,92,58,88,127,92,58,98,33,92,58,87,195,91,58,54,101,91,58,254,6,91,58,177,168,90,58,77,74,90,58,212,235,89,58,69,141,89,58,160,46,89,58,229,207,88,58,20,113,88,58,46,18,88,58,50,179,87,58,33,84,87,58,250,244,86,58,189,149,86,58,107,54,86,58,3,215,85,58,134,119,85,58,244,23,85,58,76,184,84,58,143,88,84,58,189,248,83,58,214,152,83,58,217,56,83,58,199,
216,82,58,161,120,82,58,101,24,82,58,20,184,81,58,174,87,81,58,51,247,80,58,164,150,80,58,255,53,80,58,70,213,79,58,120,116,79,58,149,19,79,58,158,178,78,58,146,81,78,58,113,240,77,58,60,143,77,58,243,45,77,58,148,204,76,58,34,107,76,58,155,9,76,58,0,168,75,58,80,70,75,58,140,228,74,58,180,130,74,58,200,32,74,58,200,190,73,58,179,92,73,58,139,250,72,58,78,152,72,58,254,53,72,58,154,211,71,58,33,113,71,58,149,14,71,58,246,171,70,58,66,73,70,58,123,230,69,58,160,131,69,58,177,32,69,58,175,189,68,58,
153,90,68,58,112,247,67,58,51,148,67,58,227,48,67,58,128,205,66,58,9,106,66,58,127,6,66,58,225,162,65,58,49,63,65,58,109,219,64,58,150,119,64,58,172,19,64,58,175,175,63,58,160,75,63,58,125,231,62,58,71,131,62,58,254,30,62,58,163,186,61,58,53,86,61,58,180,241,60,58,32,141,60,58,122,40,60,58,193,195,59,58,245,94,59,58,24,250,58,58,39,149,58,58,36,48,58,58,15,203,57,58,231,101,57,58,173,0,57,58,97,155,56,58,3,54,56,58,146,208,55,58,16,107,55,58,123,5,55,58,212,159,54,58,27,58,54,58,80,212,53,58,116,
110,53,58,133,8,53,58,133,162,52,58,115,60,52,58,79,214,51,58,25,112,51,58,210,9,51,58,121,163,50,58,15,61,50,58,147,214,49,58,5,112,49,58,102,9,49,58,182,162,48,58,244,59,48,58,33,213,47,58,61,110,47,58,72,7,47,58,65,160,46,58,42,57,46,58,1,210,45,58,199,106,45,58,124,3,45,58,32,156,44,58,180,52,44,58,54,205,43,58,168,101,43,58,9,254,42,58,89,150,42,58,152,46,42,58,199,198,41,58,229,94,41,58,243,246,40,58,240,142,40,58,220,38,40,58,185,190,39,58,132,86,39,58,64,238,38,58,235,133,38,58,134,29,38,
58,17,181,37,58,139,76,37,58,246,227,36,58,80,123,36,58,155,18,36,58,213,169,35,58,0,65,35,58,26,216,34,58,37,111,34,58,32,6,34,58,11,157,33,58,230,51,33,58,178,202,32,58,110,97,32,58,27,248,31,58,184,142,31,58,69,37,31,58,196,187,30,58,50,82,30,58,146,232,29,58,226,126,29,58,34,21,29,58,84,171,28,58,118,65,28,58,137,215,27,58,142,109,27,58,131,3,27,58,105,153,26,58,64,47,26,58,8,197,25,58,193,90,25,58,108,240,24,58,8,134,24,58,149,27,24,58,19,177,23,58,131,70,23,58,228,219,22,58,55,113,22,58,123,
6,22,58,176,155,21,58,216,48,21,58,240,197,20,58,251,90,20,58,247,239,19,58,229,132,19,58,197,25,19,58,151,174,18,58,90,67,18,58,16,216,17,58,183,108,17,58,81,1,17,58,221,149,16,58,91,42,16,58,202,190,15,58,45,83,15,58,129,231,14,58,200,123,14,58,1,16,14,58,45,164,13,58,75,56,13,58,91,204,12,58,94,96,12,58,84,244,11,58,60,136,11,58,23,28,11,58,229,175,10,58,165,67,10,58,88,215,9,58,255,106,9,58,152,254,8,58,36,146,8,58,163,37,8,58,21,185,7,58,122,76,7,58,210,223,6,58,29,115,6,58,92,6,6,58,142,153,
5,58,179,44,5,58,204,191,4,58,216,82,4,58,215,229,3,58,202,120,3,58,177,11,3,58,139,158,2,58,89,49,2,58,27,196,1,58,208,86,1,58,121,233,0,58,22,124,0,58,166,14,0,58,86,66,255,57,71,103,254,57,32,140,253,57,226,176,252,57,139,213,251,57,29,250,250,57,151,30,250,57,250,66,249,57,69,103,248,57,121,139,247,57,150,175,246,57,156,211,245,57,138,247,244,57,98,27,244,57,35,63,243,57,205,98,242,57,96,134,241,57,221,169,240,57,67,205,239,57,147,240,238,57,204,19,238,57,240,54,237,57,253,89,236,57,244,124,235,
57,213,159,234,57,161,194,233,57,86,229,232,57,246,7,232,57,129,42,231,57,246,76,230,57,85,111,229,57,160,145,228,57,213,179,227,57,245,213,226,57,0,248,225,57,246,25,225,57,215,59,224,57,164,93,223,57,92,127,222,57,255,160,221,57,142,194,220,57,9,228,219,57,112,5,219,57,194,38,218,57,0,72,217,57,42,105,216,57,65,138,215,57,67,171,214,57,50,204,213,57,13,237,212,57,213,13,212,57,138,46,211,57,43,79,210,57,184,111,209,57,51,144,208,57,155,176,207,57,240,208,206,57,50,241,205,57,97,17,205,57,125,49,
204,57,135,81,203,57,127,113,202,57,100,145,201,57,55,177,200,57,247,208,199,57,166,240,198,57,67,16,198,57,205,47,197,57,70,79,196,57,173,110,195,57,3,142,194,57,71,173,193,57,121,204,192,57,155,235,191,57,171,10,191,57,170,41,190,57,151,72,189,57,116,103,188,57,64,134,187,57,252,164,186,57,166,195,185,57,64,226,184,57,202,0,184,57,67,31,183,57,172,61,182,57,4,92,181,57,77,122,180,57,133,152,179,57,174,182,178,57,199,212,177,57,208,242,176,57,201,16,176,57,179,46,175,57,142,76,174,57,89,106,173,
57,21,136,172,57,194,165,171,57,95,195,170,57,238,224,169,57,110,254,168,57,223,27,168,57,65,57,167,57,149,86,166,57,218,115,165,57,17,145,164,57,58,174,163,57,84,203,162,57,96,232,161,57,95,5,161,57,79,34,160,57,50,63,159,57,6,92,158,57,206,120,157,57,135,149,156,57,52,178,155,57,210,206,154,57,100,235,153,57,232,7,153,57,96,36,152,57,202,64,151,57,40,93,150,57,121,121,149,57,189,149,148,57,244,177,147,57,31,206,146,57,62,234,145,57,80,6,145,57,86,34,144,57,80,62,143,57,62,90,142,57,32,118,141,57,
247,145,140,57,193,173,139,57,128,201,138,57,52,229,137,57,220,0,137,57,120,28,136,57,10,56,135,57,144,83,134,57,11,111,133,57,123,138,132,57,224,165,131,57,59,193,130,57,139,220,129,57,208,247,128,57,11,19,128,57,119,92,126,57,195,146,124,57,251,200,122,57,31,255,120,57,47,53,119,57,43,107,117,57,19,161,115,57,232,214,113,57,170,12,112,57,88,66,110,57,244,119,108,57,125,173,106,57,244,226,104,57,88,24,103,57,170,77,101,57,235,130,99,57,25,184,97,57,54,237,95,57,66,34,94,57,61,87,92,57,39,140,90,
57,0,193,88,57,200,245,86,57,128,42,85,57,40,95,83,57,192,147,81,57,72,200,79,57,193,252,77,57,42,49,76,57,132,101,74,57,207,153,72,57,11,206,70,57,56,2,69,57,87,54,67,57,104,106,65,57,107,158,63,57,96,210,61,57,71,6,60,57,33,58,58,57,237,109,56,57,172,161,54,57,95,213,52,57,5,9,51,57,158,60,49,57,43,112,47,57,171,163,45,57,32,215,43,57,137,10,42,57,231,61,40,57,57,113,38,57,128,164,36,57,188,215,34,57,237,10,33,57,20,62,31,57,48,113,29,57,66,164,27,57,74,215,25,57,72,10,24,57,60,61,22,57,39,112,
20,57,9,163,18,57,226,213,16,57,178,8,15,57,121,59,13,57,55,110,11,57,238,160,9,57,156,211,7,57,67,6,6,57,225,56,4,57,120,107,2,57,8,158,0,57,34,161,253,56,37,6,250,56,27,107,246,56,4,208,242,56,225,52,239,56,176,153,235,56,116,254,231,56,45,99,228,56,218,199,224,56,124,44,221,56,20,145,217,56,162,245,213,56,38,90,210,56,161,190,206,56,19,35,203,56,124,135,199,56,222,235,195,56,55,80,192,56,138,180,188,56,213,24,185,56,26,125,181,56,88,225,177,56,145,69,174,56,196,169,170,56,243,13,167,56,28,114,
163,56,66,214,159,56,99,58,156,56,129,158,152,56,156,2,149,56,180,102,145,56,202,202,141,56,222,46,138,56,240,146,134,56,1,247,130,56,35,182,126,56,66,126,119,56,98,70,112,56,130,14,105,56,164,214,97,56,200,158,90,56,238,102,83,56,25,47,76,56,72,247,68,56,125,191,61,56,183,135,54,56,249,79,47,56,66,24,40,56,147,224,32,56,237,168,25,56,82,113,18,56,193,57,11,56,59,2,4,56,132,149,249,55,171,38,235,55,238,183,220,55,78,73,206,55,204,218,191,55,107,108,177,55,43,254,162,55,14,144,148,55,22,34,134,55,
137,104,111,55,52,141,82,55,51,178,53,55,135,215,24,55,104,250,247,54,121,70,190,54,72,147,132,54,182,193,21,54,192,121,9,53,108,6,162,181,47,99,68,182,184,224,155,182,246,142,213,182,37,158,7,183,89,116,36,183,17,74,65,183,77,31,94,183,7,244,122,183,31,228,139,183,247,77,154,183,139,183,168,183,215,32,183,183,220,137,197,183,152,242,211,183,8,91,226,183,44,195,240,183,2,43,255,183,68,201,6,184,223,252,13,184,80,48,21,184,151,99,28,184,179,150,35,184,164,201,42,184,104,252,49,184,255,46,57,184,105,
97,64,184,163,147,71,184,174,197,78,184,137,247,85,184,51,41,93,184,171,90,100,184,241,139,107,184,3,189,114,184,226,237,121,184,70,143,128,184,128,39,132,184,159,191,135,184,162,87,139,184,138,239,142,184,85,135,146,184,3,31,150,184,149,182,153,184,9,78,157,184,95,229,160,184,151,124,164,184,176,19,168,184,171,170,171,184,134,65,175,184,65,216,178,184,220,110,182,184,87,5,186,184,177,155,189,184,234,49,193,184,1,200,196,184,246,93,200,184,200,243,203,184,120,137,207,184,5,31,211,184,110,180,214,
184,180,73,218,184,213,222,221,184,209,115,225,184,168,8,229,184,90,157,232,184,230,49,236,184,76,198,239,184,140,90,243,184,164,238,246,184,149,130,250,184,95,22,254,184,0,213,0,185,188,158,2,185,100,104,4,185,248,49,6,185,119,251,7,185,224,196,9,185,53,142,11,185,116,87,13,185,157,32,15,185,177,233,16,185,175,178,18,185,151,123,20,185,104,68,22,185,35,13,24,185,200,213,25,185,85,158,27,185,203,102,29,185,43,47,31,185,114,247,32,185,162,191,34,185,187,135,36,185,187,79,38,185,163,23,40,185,115,223,
41,185,42,167,43,185,200,110,45,185,77,54,47,185,186,253,48,185,13,197,50,185,70,140,52,185,102,83,54,185,108,26,56,185,88,225,57,185,41,168,59,185,224,110,61,185,125,53,63,185,254,251,64,185,101,194,66,185,176,136,68,185,224,78,70,185,245,20,72,185,238,218,73,185,202,160,75,185,139,102,77,185,47,44,79,185,183,241,80,185,34,183,82,185,112,124,84,185,161,65,86,185,181,6,88,185,172,203,89,185,133,144,91,185,64,85,93,185,221,25,95,185,91,222,96,185,188,162,98,185,254,102,100,185,33,43,102,185,37,239,
103,185,10,179,105,185,208,118,107,185,118,58,109,185,253,253,110,185,100,193,112,185,170,132,114,185,209,71,116,185,215,10,118,185,188,205,119,185,129,144,121,185,36,83,123,185,167,21,125,185,8,216,126,185,36,77,128,185,51,46,129,185,49,15,130,185,29,240,130,185,249,208,131,185,196,177,132,185,125,146,133,185,37,115,134,185,187,83,135,185,64,52,136,185,179,20,137,185,20,245,137,185,99,213,138,185,161,181,139,185,204,149,140,185,229,117,141,185,236,85,142,185,225,53,143,185,195,21,144,185,146,245,
144,185,79,213,145,185,250,180,146,185,145,148,147,185,22,116,148,185,135,83,149,185,230,50,150,185,49,18,151,185,105,241,151,185,142,208,152,185,159,175,153,185,157,142,154,185,135,109,155,185,94,76,156,185,32,43,157,185,207,9,158,185,106,232,158,185,240,198,159,185,99,165,160,185,193,131,161,185,11,98,162,185,64,64,163,185,97,30,164,185,109,252,164,185,100,218,165,185,71,184,166,185,21,150,167,185,206,115,168,185,113,81,169,185,0,47,170,185,121,12,171,185,221,233,171,185,43,199,172,185,100,164,
173,185,135,129,174,185,149,94,175,185,140,59,176,185,110,24,177,185,58,245,177,185,240,209,178,185,143,174,179,185,24,139,180,185,139,103,181,185,232,67,182,185,46,32,183,185,93,252,183,185,117,216,184,185,119,180,185,185,98,144,186,185,54,108,187,185,243,71,188,185,152,35,189,185,39,255,189,185,157,218,190,185,253,181,191,185,69,145,192,185,117,108,193,185,142,71,194,185,143,34,195,185,120,253,195,185,73,216,196,185,2,179,197,185,163,141,198,185,43,104,199,185,155,66,200,185,243,28,201,185,50,247,
201,185,89,209,202,185,103,171,203,185,92,133,204,185,56,95,205,185,251,56,206,185,166,18,207,185,55,236,207,185,175,197,208,185,13,159,209,185,82,120,210,185,126,81,211,185,144,42,212,185,136,3,213,185,103,220,213,185,44,181,214,185,215,141,215,185,103,102,216,185,222,62,217,185,58,23,218,185,125,239,218,185,164,199,219,185,178,159,220,185,164,119,221,185,124,79,222,185,58,39,223,185,220,254,223,185,100,214,224,185,209,173,225,185,34,133,226,185,88,92,227,185,115,51,228,185,115,10,229,185,87,225,
229,185,32,184,230,185,205,142,231,185,94,101,232,185,212,59,233,185,46,18,234,185,108,232,234,185,141,190,235,185,147,148,236,185,124,106,237,185,73,64,238,185,250,21,239,185,142,235,239,185,5,193,240,185,96,150,241,185,158,107,242,185,191,64,243,185,196,21,244,185,171,234,244,185,117,191,245,185,34,148,246,185,178,104,247,185,36,61,248,185,121,17,249,185,176,229,249,185,202,185,250,185,198,141,251,185,164,97,252,185,100,53,253,185,7,9,254,185,139,220,254,185,241,175,255,185,157,65,0,186,49,171,
0,186,183,20,1,186,45,126,1,186,148,231,1,186,236,80,2,186,52,186,2,186,109,35,3,186,151,140,3,186,177,245,3,186,187,94,4,186,182,199,4,186,161,48,5,186,125,153,5,186,73,2,6,186,5,107,6,186,177,211,6,186,78,60,7,186,218,164,7,186,87,13,8,186,195,117,8,186,32,222,8,186,109,70,9,186,169,174,9,186,213,22,10,186,242,126,10,186,253,230,10,186,249,78,11,186,228,182,11,186,191,30,12,186,138,134,12,186,68,238,12,186,238,85,13,186,135,189,13,186,16,37,14,186,135,140,14,186,239,243,14,186,69,91,15,186,139,
194,15,186,192,41,16,186,229,144,16,186,248,247,16,186,251,94,17,186,236,197,17,186,205,44,18,186,157,147,18,186,91,250,18,186,8,97,19,186,165,199,19,186,48,46,20,186,170,148,20,186,18,251,20,186,105,97,21,186,175,199,21,186,228,45,22,186,7,148,22,186,24,250,22,186,24,96,23,186,7,198,23,186,228,43,24,186,175,145,24,186,104,247,24,186,16,93,25,186,166,194,25,186,42,40,26,186,156,141,26,186,253,242,26,186,75,88,27,186,136,189,27,186,178,34,28,186,203,135,28,186,209,236,28,186,197,81,29,186,167,182,
29,186,119,27,30,186,52,128,30,186,224,228,30,186,120,73,31,186,255,173,31,186,115,18,32,186,212,118,32,186,35,219,32,186,96,63,33,186,138,163,33,186,161,7,34,186,165,107,34,186,151,207,34,186,118,51,35,186,67,151,35,186,252,250,35,186,163,94,36,186,54,194,36,186,183,37,37,186,37,137,37,186,127,236,37,186,199,79,38,186,251,178,38,186,29,22,39,186,43,121,39,186,38,220,39,186,13,63,40,186,225,161,40,186,162,4,41,186,80,103,41,186,234,201,41,186,112,44,42,186,227,142,42,186,67,241,42,186,143,83,43,186,
199,181,43,186,236,23,44,186,252,121,44,186,249,219,44,186,227,61,45,186,184,159,45,186,122,1,46,186,39,99,46,186,193,196,46,186,71,38,47,186,185,135,47,186,22,233,47,186,96,74,48,186,149,171,48,186,182,12,49,186,195,109,49,186,188,206,49,186,160,47,50,186,112,144,50,186,43,241,50,186,211,81,51,186,101,178,51,186,227,18,52,186,77,115,52,186,162,211,52,186,226,51,53,186,14,148,53,186,37,244,53,186,40,84,54,186,21,180,54,186,238,19,55,186,178,115,55,186,97,211,55,186,251,50,56,186,128,146,56,186,240,
241,56,186,75,81,57,186,145,176,57,186,194,15,58,186,221,110,58,186,228,205,58,186,213,44,59,186,177,139,59,186,119,234,59,186,40,73,60,186,196,167,60,186,75,6,61,186,188,100,61,186,23,195,61,186,93,33,62,186,141,127,62,186,168,221,62,186,173,59,63,186,156,153,63,186,118,247,63,186,58,85,64,186,232,178,64,186,128,16,65,186,2,110,65,186,110,203,65,186,197,40,66,186,5,134,66,186,47,227,66,186,68,64,67,186,66,157,67,186,42,250,67,186,251,86,68,186,183,179,68,186,92,16,69,186,235,108,69,186,100,201,69,
186,198,37,70,186,18,130,70,186,72,222,70,186,103,58,71,186,111,150,71,186,97,242,71,186,60,78,72,186,1,170,72,186,175,5,73,186,70,97,73,186,198,188,73,186,48,24,74,186,131,115,74,186,191,206,74,186,228,41,75,186,243,132,75,186,234,223,75,186,202,58,76,186,147,149,76,186,70,240,76,186,225,74,77,186,100,165,77,186,209,255,77,186,39,90,78,186,101,180,78,186,140,14,79,186,156,104,79,186,148,194,79,186,117,28,80,186,62,118,80,186,240,207,80,186,138,41,81,186,13,131,81,186,121,220,81,186,204,53,82,186,
8,143,82,186,45,232,82,186,57,65,83,186,46,154,83,186,11,243,83,186,209,75,84,186,126,164,84,186,19,253,84,186,145,85,85,186,247,173,85,186,68,6,86,186,122,94,86,186,151,182,86,186,156,14,87,186,138,102,87,186,95,190,87,186,27,22,88,186,192,109,88,186,76,197,88,186,192,28,89,186,28,116,89,186,95,203,89,186,137,34,90,186,156,121,90,186,149,208,90,186,119,39,91,186,63,126,91,186,239,212,91,186,135,43,92,186,5,130,92,186,107,216,92,186,185,46,93,186,237,132,93,186,9,219,93,186,12,49,94,186,246,134,94,
186,199,220,94,186,127,50,95,186,30,136,95,186,164,221,95,186,17,51,96,186,101,136,96,186,160,221,96,186,193,50,97,186,202,135,97,186,185,220,97,186,143,49,98,186,76,134,98,186,239,218,98,186,121,47,99,186,234,131,99,186,65,216,99,186,127,44,100,186,163,128,100,186,174,212,100,186,159,40,101,186,119,124,101,186,53,208,101,186,217,35,102,186,99,119,102,186,212,202,102,186,43,30,103,186,105,113,103,186,140,196,103,186,150,23,104,186,134,106,104,186,91,189,104,186,23,16,105,186,185,98,105,186,65,181,
105,186,175,7,106,186,3,90,106,186,60,172,106,186,92,254,106,186,97,80,107,186,76,162,107,186,28,244,107,186,211,69,108,186,111,151,108,186,241,232,108,186,88,58,109,186,165,139,109,186,216,220,109,186,240,45,110,186,237,126,110,186,208,207,110,186,153,32,111,186,71,113,111,186,218,193,111,186,82,18,112,186,176,98,112,186,243,178,112,186,28,3,113,186,41,83,113,186,28,163,113,186,243,242,113,186,176,66,114,186,82,146,114,186,217,225,114,186,69,49,115,186,150,128,115,186,204,207,115,186,231,30,116,
186,231,109,116,186,203,188,116,186,149,11,117,186,67,90,117,186,214,168,117,186,78,247,117,186,170,69,118,186,235,147,118,186,17,226,118,186,27,48,119,186,10,126,119,186,221,203,119,186,149,25,120,186,49,103,120,186,178,180,120,186,24,2,121,186,97,79,121,186,143,156,121,186,161,233,121,186,152,54,122,186,115,131,122,186,50,208,122,186,213,28,123,186,93,105,123,186,200,181,123,186,24,2,124,186,76,78,124,186,100,154,124,186,96,230,124,186,63,50,125,186,3,126,125,186,171,201,125,186,55,21,126,186,166,
96,126,186,250,171,126,186,49,247,126,186,76,66,127,186,75,141,127,186,45,216,127,186,122,17,128,186,207,54,128,186,21,92,128,186,78,129,128,186,120,166,128,186,148,203,128,186,162,240,128,186,162,21,129,186,147,58,129,186,118,95,129,186,75,132,129,186,17,169,129,186,201,205,129,186,115,242,129,186,14,23,130,186,155,59,130,186,26,96,130,186,138,132,130,186,236,168,130,186,64,205,130,186,132,241,130,186,187,21,131,186,227,57,131,186,253,93,131,186,8,130,131,186,4,166,131,186,242,201,131,186,210,237,
131,186,162,17,132,186,101,53,132,186,24,89,132,186,190,124,132,186,84,160,132,186,220,195,132,186,85,231,132,186,192,10,133,186,28,46,133,186,105,81,133,186,168,116,133,186,215,151,133,186,249,186,133,186,11,222,133,186,15,1,134,186,3,36,134,186,234,70,134,186,193,105,134,186,137,140,134,186,67,175,134,186,238,209,134,186,138,244,134,186,23,23,135,186,149,57,135,186,4,92,135,186,101,126,135,186,182,160,135,186,249,194,135,186,45,229,135,186,81,7,136,186,103,41,136,186,110,75,136,186,102,109,136,
186,78,143,136,186,40,177,136,186,243,210,136,186,174,244,136,186,91,22,137,186,249,55,137,186,135,89,137,186,6,123,137,186,119,156,137,186,216,189,137,186,42,223,137,186,108,0,138,186,160,33,138,186,196,66,138,186,218,99,138,186,224,132,138,186,214,165,138,186,190,198,138,186,150,231,138,186,95,8,139,186,25,41,139,186,196,73,139,186,95,106,139,186,235,138,139,186,104,171,139,186,213,203,139,186,51,236,139,186,129,12,140,186,193,44,140,186,240,76,140,186,17,109,140,186,34,141,140,186,36,173,140,186,
22,205,140,186,248,236,140,186,204,12,141,186,143,44,141,186,68,76,141,186,233,107,141,186,126,139,141,186,4,171,141,186,122,202,141,186,225,233,141,186,56,9,142,186,127,40,142,186,183,71,142,186,224,102,142,186,249,133,142,186,2,165,142,186,251,195,142,186,229,226,142,186,191,1,143,186,138,32,143,186,69,63,143,186,240,93,143,186,140,124,143,186,24,155,143,186,148,185,143,186,0,216,143,186,93,246,143,186,170,20,144,186,231,50,144,186,20,81,144,186,49,111,144,186,63,141,144,186,61,171,144,186,43,201,
144,186,9,231,144,186,216,4,145,186,150,34,145,186,69,64,145,186,227,93,145,186,114,123,145,186,241,152,145,186,96,182,145,186,191,211,145,186,14,241,145,186,77,14,146,186,125,43,146,186,156,72,146,186,171,101,146,186,170,130,146,186,154,159,146,186,121,188,146,186,72,217,146,186,7,246,146,186,182,18,147,186,85,47,147,186,228,75,147,186,99,104,147,186,210,132,147,186,48,161,147,186,127,189,147,186,189,217,147,186,235,245,147,186,9,18,148,186,23,46,148,186,21,74,148,186,2,102,148,186,224,129,148,186,
173,157,148,186,106,185,148,186,22,213,148,186,179,240,148,186,63,12,149,186,187,39,149,186,39,67,149,186,130,94,149,186,205,121,149,186,8,149,149,186,50,176,149,186,76,203,149,186,86,230,149,186,80,1,150,186,57,28,150,186,18,55,150,186,218,81,150,186,146,108,150,186,57,135,150,186,209,161,150,186,87,188,150,186,206,214,150,186,52,241,150,186,137,11,151,186,206,37,151,186,3,64,151,186,39,90,151,186,58,116,151,186,61,142,151,186,48,168,151,186,18,194,151,186,227,219,151,186,164,245,151,186,85,15,152,
186,245,40,152,186,132,66,152,186,3,92,152,186,113,117,152,186,207,142,152,186,27,168,152,186,88,193,152,186,132,218,152,186,159,243,152,186,169,12,153,186,163,37,153,186,140,62,153,186,100,87,153,186,44,112,153,186,227,136,153,186,138,161,153,186,31,186,153,186,164,210,153,186,25,235,153,186,124,3,154,186,207,27,154,186,17,52,154,186,66,76,154,186,99,100,154,186,114,124,154,186,113,148,154,186,95,172,154,186,61,196,154,186,9,220,154,186,197,243,154,186,112,11,155,186,10,35,155,186,147,58,155,186,
11,82,155,186,114,105,155,186,201,128,155,186,14,152,155,186,67,175,155,186,103,198,155,186,122,221,155,186,124,244,155,186,109,11,156,186,77,34,156,186,28,57,156,186,218,79,156,186,136,102,156,186,36,125,156,186,175,147,156,186,41,170,156,186,147,192,156,186,235,214,156,186,50,237,156,186,105,3,157,186,142,25,157,186,162,47,157,186,165,69,157,186,151,91,157,186,120,113,157,186,72,135,157,186,7,157,157,186,180,178,157,186,81,200,157,186,221,221,157,186,87,243,157,186,192,8,158,186,25,30,158,186,96,
51,158,186,149,72,158,186,186,93,158,186,206,114,158,186,208,135,158,186,193,156,158,186,161,177,158,186,112,198,158,186,46,219,158,186,218,239,158,186,118,4,159,186,255,24,159,186,120,45,159,186,224,65,159,186,54,86,159,186,123,106,159,186,175,126,159,186,209,146,159,186,227,166,159,186,226,186,159,186,209,206,159,186,174,226,159,186,122,246,159,186,53,10,160,186,223,29,160,186,119,49,160,186,253,68,160,186,115,88,160,186,215,107,160,186,42,127,160,186,107,146,160,186,155,165,160,186,185,184,160,
186,199,203,160,186,194,222,160,186,173,241,160,186,134,4,161,186,77,23,161,186,4,42,161,186,168,60,161,186,60,79,161,186,190,97,161,186,46,116,161,186,141,134,161,186,219,152,161,186,23,171,161,186,65,189,161,186,90,207,161,186,98,225,161,186,88,243,161,186],"i8",4,y.a+655360);
Q([61,5,162,186,16,23,162,186,209,40,162,186,130,58,162,186,32,76,162,186,173,93,162,186,41,111,162,186,147,128,162,186,235,145,162,186,50,163,162,186,103,180,162,186,139,197,162,186,157,214,162,186,158,231,162,186,141,248,162,186,106,9,163,186,54,26,163,186,240,42,163,186,153,59,163,186,48,76,163,186,181,92,163,186,41,109,163,186,139,125,163,186,219,141,163,186,26,158,163,186,71,174,163,186,99,190,163,186,108,206,163,186,101,222,163,186,75,238,163,186,32,254,163,186,227,13,164,186,148,29,164,186,
52,45,164,186,194,60,164,186,63,76,164,186,169,91,164,186,2,107,164,186,73,122,164,186,127,137,164,186,162,152,164,186,180,167,164,186,181,182,164,186,163,197,164,186,128,212,164,186,75,227,164,186,4,242,164,186,171,0,165,186,65,15,165,186,197,29,165,186,55,44,165,186,151,58,165,186,230,72,165,186,34,87,165,186,77,101,165,186,102,115,165,186,110,129,165,186,99,143,165,186,71,157,165,186,24,171,165,186,216,184,165,186,134,198,165,186,35,212,165,186,173,225,165,186,38,239,165,186,140,252,165,186,225,
9,166,186,36,23,166,186,85,36,166,186,117,49,166,186,130,62,166,186,125,75,166,186,103,88,166,186,63,101,166,186,4,114,166,186,184,126,166,186,90,139,166,186,234,151,166,186,104,164,166,186,213,176,166,186,47,189,166,186,119,201,166,186,174,213,166,186,210,225,166,186,229,237,166,186,229,249,166,186,212,5,167,186,177,17,167,186,123,29,167,186,52,41,167,186,219,52,167,186,112,64,167,186,243,75,167,186,100,87,167,186,195,98,167,186,16,110,167,186,75,121,167,186,116,132,167,186,139,143,167,186,144,154,
167,186,131,165,167,186,99,176,167,186,50,187,167,186,239,197,167,186,154,208,167,186,51,219,167,186,186,229,167,186,47,240,167,186,146,250,167,186,227,4,168,186,34,15,168,186,78,25,168,186,105,35,168,186,114,45,168,186,104,55,168,186,77,65,168,186,31,75,168,186,224,84,168,186,142,94,168,186,42,104,168,186,181,113,168,186,45,123,168,186,147,132,168,186,231,141,168,186,41,151,168,186,89,160,168,186,119,169,168,186,130,178,168,186,124,187,168,186,100,196,168,186,57,205,168,186,252,213,168,186,174,222,
168,186,77,231,168,186,218,239,168,186,85,248,168,186,189,0,169,186,20,9,169,186,89,17,169,186,139,25,169,186,172,33,169,186,186,41,169,186,182,49,169,186,160,57,169,186,120,65,169,186,61,73,169,186,241,80,169,186,146,88,169,186,34,96,169,186,159,103,169,186,10,111,169,186,99,118,169,186,169,125,169,186,222,132,169,186,0,140,169,186,17,147,169,186,15,154,169,186,251,160,169,186,213,167,169,186,156,174,169,186,82,181,169,186,245,187,169,186,134,194,169,186,5,201,169,186,114,207,169,186,205,213,169,
186,21,220,169,186,75,226,169,186,112,232,169,186,130,238,169,186,129,244,169,186,111,250,169,186,74,0,170,186,20,6,170,186,203,11,170,186,111,17,170,186,2,23,170,186,131,28,170,186,241,33,170,186,77,39,170,186,151,44,170,186,207,49,170,186,244,54,170,186,7,60,170,186,9,65,170,186,248,69,170,186,212,74,170,186,159,79,170,186,87,84,170,186,253,88,170,186,145,93,170,186,19,98,170,186,131,102,170,186,224,106,170,186,43,111,170,186,100,115,170,186,139,119,170,186,159,123,170,186,161,127,170,186,145,131,
170,186,111,135,170,186,59,139,170,186,244,142,170,186,156,146,170,186,49,150,170,186,179,153,170,186,36,157,170,186,130,160,170,186,207,163,170,186,9,167,170,186,48,170,170,186,70,173,170,186,73,176,170,186,58,179,170,186,25,182,170,186,230,184,170,186,160,187,170,186,73,190,170,186,223,192,170,186,98,195,170,186,212,197,170,186,51,200,170,186,128,202,170,186,187,204,170,186,228,206,170,186,251,208,170,186,255,210,170,186,241,212,170,186,209,214,170,186,159,216,170,186,90,218,170,186,3,220,170,186,
154,221,170,186,31,223,170,186,146,224,170,186,242,225,170,186,64,227,170,186,124,228,170,186,166,229,170,186,189,230,170,186,195,231,170,186,182,232,170,186,151,233,170,186,101,234,170,186,34,235,170,186,204,235,170,186,100,236,170,186,234,236,170,186,94,237,170,186,191,237,170,186,14,238,170,186,75,238,170,186,118,238,170,186,143,238,170,186,149,238,170,186,137,238,170,186,107,238,170,186,59,238,170,186,249,237,170,186,164,237,170,186,62,237,170,186,197,236,170,186,58,236,170,186,156,235,170,186,
237,234,170,186,43,234,170,186,87,233,170,186,113,232,170,186,121,231,170,186,111,230,170,186,82,229,170,186,35,228,170,186,226,226,170,186,143,225,170,186,42,224,170,186,178,222,170,186,41,221,170,186,141,219,170,186,223,217,170,186,31,216,170,186,76,214,170,186,104,212,170,186,113,210,170,186,105,208,170,186,78,206,170,186,33,204,170,186,225,201,170,186,144,199,170,186,44,197,170,186,183,194,170,186,47,192,170,186,149,189,170,186,233,186,170,186,42,184,170,186,90,181,170,186,120,178,170,186,131,
175,170,186,124,172,170,186,99,169,170,186,56,166,170,186,251,162,170,186,172,159,170,186,74,156,170,186,215,152,170,186,81,149,170,186,185,145,170,186,15,142,170,186,84,138,170,186,133,134,170,186,165,130,170,186,179,126,170,186,175,122,170,186,152,118,170,186,112,114,170,186,53,110,170,186,232,105,170,186,138,101,170,186,25,97,170,186,150,92,170,186,1,88,170,186,90,83,170,186,160,78,170,186,213,73,170,186,248,68,170,186,9,64,170,186,7,59,170,186,244,53,170,186,206,48,170,186,151,43,170,186,77,38,
170,186,242,32,170,186,132,27,170,186,4,22,170,186,115,16,170,186,207,10,170,186,25,5,170,186,81,255,169,186,119,249,169,186,140,243,169,186,142,237,169,186,126,231,169,186,92,225,169,186,40,219,169,186,226,212,169,186,139,206,169,186,33,200,169,186,165,193,169,186,23,187,169,186,120,180,169,186,198,173,169,186,2,167,169,186,45,160,169,186,69,153,169,186,75,146,169,186,64,139,169,186,34,132,169,186,243,124,169,186,178,117,169,186,94,110,169,186,249,102,169,186,130,95,169,186,249,87,169,186,94,80,
169,186,177,72,169,186,242,64,169,186,33,57,169,186,63,49,169,186,74,41,169,186,68,33,169,186,43,25,169,186,1,17,169,186,197,8,169,186,119,0,169,186,23,248,168,186,165,239,168,186,34,231,168,186,140,222,168,186,229,213,168,186,44,205,168,186,97,196,168,186,132,187,168,186,149,178,168,186,149,169,168,186,131,160,168,186,94,151,168,186,40,142,168,186,225,132,168,186,135,123,168,186,28,114,168,186,158,104,168,186,15,95,168,186,111,85,168,186,188,75,168,186,248,65,168,186,34,56,168,186,58,46,168,186,
64,36,168,186,53,26,168,186,23,16,168,186,232,5,168,186,168,251,167,186,85,241,167,186,241,230,167,186,123,220,167,186,244,209,167,186,91,199,167,186,176,188,167,186,243,177,167,186,36,167,167,186,68,156,167,186,82,145,167,186,79,134,167,186,58,123,167,186,19,112,167,186,219,100,167,186,144,89,167,186,53,78,167,186,199,66,167,186,72,55,167,186,183,43,167,186,21,32,167,186,97,20,167,186,155,8,167,186,196,252,166,186,219,240,166,186,225,228,166,186,213,216,166,186,183,204,166,186,136,192,166,186,71,
180,166,186,245,167,166,186,145,155,166,186,27,143,166,186,148,130,166,186,252,117,166,186,81,105,166,186,150,92,166,186,201,79,166,186,234,66,166,186,250,53,166,186,248,40,166,186,229,27,166,186,192,14,166,186,138,1,166,186,66,244,165,186,233,230,165,186,126,217,165,186,2,204,165,186,116,190,165,186,213,176,165,186,37,163,165,186,99,149,165,186,143,135,165,186,171,121,165,186,180,107,165,186,173,93,165,186,148,79,165,186,105,65,165,186,45,51,165,186,224,36,165,186,130,22,165,186,18,8,165,186,144,
249,164,186,254,234,164,186,90,220,164,186,164,205,164,186,222,190,164,186,6,176,164,186,28,161,164,186,34,146,164,186,22,131,164,186,248,115,164,186,202,100,164,186,138,85,164,186,57,70,164,186,214,54,164,186,99,39,164,186,222,23,164,186,72,8,164,186,160,248,163,186,232,232,163,186,30,217,163,186,67,201,163,186,86,185,163,186,89,169,163,186,74,153,163,186,42,137,163,186,249,120,163,186,183,104,163,186,100,88,163,186,255,71,163,186,137,55,163,186,3,39,163,186,107,22,163,186,194,5,163,186,7,245,162,
186,60,228,162,186,96,211,162,186,114,194,162,186,115,177,162,186,100,160,162,186,67,143,162,186,17,126,162,186,206,108,162,186,122,91,162,186,22,74,162,186,160,56,162,186,25,39,162,186,129,21,162,186,216,3,162,186,29,242,161,186,82,224,161,186,119,206,161,186,138,188,161,186,140,170,161,186,125,152,161,186,93,134,161,186,44,116,161,186,235,97,161,186,152,79,161,186,52,61,161,186,192,42,161,186,59,24,161,186,165,5,161,186,253,242,160,186,70,224,160,186,125,205,160,186,163,186,160,186,185,167,160,
186,189,148,160,186,177,129,160,186,148,110,160,186,102,91,160,186,40,72,160,186,216,52,160,186,120,33,160,186,7,14,160,186,134,250,159,186,243,230,159,186,80,211,159,186,156,191,159,186,216,171,159,186,2,152,159,186,28,132,159,186,38,112,159,186,30,92,159,186,6,72,159,186,221,51,159,186,164,31,159,186,90,11,159,186,255,246,158,186,148,226,158,186,24,206,158,186,139,185,158,186,238,164,158,186,64,144,158,186,130,123,158,186,179,102,158,186,211,81,158,186,227,60,158,186,226,39,158,186,209,18,158,186,
175,253,157,186,125,232,157,186,59,211,157,186,231,189,157,186,132,168,157,186,15,147,157,186,139,125,157,186,246,103,157,186,80,82,157,186,154,60,157,186,212,38,157,186,253,16,157,186,21,251,156,186,30,229,156,186,22,207,156,186,253,184,156,186,212,162,156,186,155,140,156,186,82,118,156,186,248,95,156,186,142,73,156,186,19,51,156,186,136,28,156,186,237,5,156,186,66,239,155,186,134,216,155,186,186,193,155,186,222,170,155,186,242,147,155,186,245,124,155,186,232,101,155,186,203,78,155,186,158,55,155,
186,96,32,155,186,19,9,155,186,181,241,154,186,71,218,154,186,201,194,154,186,58,171,154,186,156,147,154,186,237,123,154,186,47,100,154,186,96,76,154,186,129,52,154,186,146,28,154,186,147,4,154,186,132,236,153,186,101,212,153,186,54,188,153,186,247,163,153,186,168,139,153,186,72,115,153,186,217,90,153,186,90,66,153,186,203,41,153,186,44,17,153,186,125,248,152,186,190,223,152,186,239,198,152,186,17,174,152,186,34,149,152,186,35,124,152,186,21,99,152,186,247,73,152,186,201,48,152,186,139,23,152,186,
61,254,151,186,223,228,151,186,114,203,151,186,245,177,151,186,104,152,151,186,203,126,151,186,30,101,151,186,98,75,151,186,150,49,151,186,186,23,151,186,207,253,150,186,211,227,150,186,201,201,150,186,174,175,150,186,132,149,150,186,74,123,150,186,0,97,150,186,167,70,150,186,62,44,150,186,198,17,150,186,62,247,149,186,167,220,149,186,255,193,149,186,73,167,149,186,130,140,149,186,173,113,149,186,199,86,149,186,210,59,149,186,206,32,149,186,186,5,149,186,151,234,148,186,100,207,148,186,34,180,148,
186,208,152,148,186,111,125,148,186,255,97,148,186,127,70,148,186,240,42,148,186,81,15,148,186,163,243,147,186,229,215,147,186,25,188,147,186,61,160,147,186,81,132,147,186,86,104,147,186,76,76,147,186,51,48,147,186,11,20,147,186,211,247,146,186,140,219,146,186,53,191,146,186,208,162,146,186,91,134,146,186,215,105,146,186,68,77,146,186,162,48,146,186,241,19,146,186,48,247,145,186,97,218,145,186,130,189,145,186,148,160,145,186,151,131,145,186,139,102,145,186,112,73,145,186,70,44,145,186,12,15,145,186,
196,241,144,186,109,212,144,186,7,183,144,186,145,153,144,186,13,124,144,186,122,94,144,186,216,64,144,186,39,35,144,186,103,5,144,186,152,231,143,186,186,201,143,186,206,171,143,186,210,141,143,186,200,111,143,186,175,81,143,186,135,51,143,186,80,21,143,186,10,247,142,186,182,216,142,186,83,186,142,186,225,155,142,186,96,125,142,186,209,94,142,186,50,64,142,186,134,33,142,186,202,2,142,186,0,228,141,186,39,197,141,186,63,166,141,186,73,135,141,186,68,104,141,186,49,73,141,186,15,42,141,186,222,10,
141,186,159,235,140,186,81,204,140,186,245,172,140,186,138,141,140,186,17,110,140,186,137,78,140,186,243,46,140,186,78,15,140,186,155,239,139,186,217,207,139,186,9,176,139,186,43,144,139,186,62,112,139,186,67,80,139,186,57,48,139,186,33,16,139,186,250,239,138,186,198,207,138,186,131,175,138,186,49,143,138,186,210,110,138,186,100,78,138,186,232,45,138,186,93,13,138,186,197,236,137,186,30,204,137,186,105,171,137,186,165,138,137,186,212,105,137,186,245,72,137,186,7,40,137,186,11,7,137,186,1,230,136,
186,233,196,136,186,195,163,136,186,143,130,136,186,76,97,136,186,252,63,136,186,158,30,136,186,49,253,135,186,183,219,135,186,46,186,135,186,152,152,135,186,244,118,135,186,66,85,135,186,130,51,135,186,179,17,135,186,216,239,134,186,238,205,134,186,246,171,134,186,240,137,134,186,221,103,134,186,188,69,134,186,141,35,134,186,80,1,134,186,5,223,133,186,173,188,133,186,71,154,133,186,211,119,133,186,82,85,133,186,195,50,133,186,38,16,133,186,123,237,132,186,195,202,132,186,253,167,132,186,41,133,132,
186,72,98,132,186,90,63,132,186,93,28,132,186,83,249,131,186,60,214,131,186,23,179,131,186,229,143,131,186,165,108,131,186,87,73,131,186,252,37,131,186,148,2,131,186,30,223,130,186,155,187,130,186,10,152,130,186,108,116,130,186,193,80,130,186,8,45,130,186,66,9,130,186,110,229,129,186,142,193,129,186,160,157,129,186,164,121,129,186,156,85,129,186,134,49,129,186,99,13,129,186,50,233,128,186,245,196,128,186,170,160,128,186,82,124,128,186,237,87,128,186,123,51,128,186,251,14,128,186,222,212,127,186,171,
139,127,186,94,66,127,186,246,248,126,186,117,175,126,186,217,101,126,186,36,28,126,186,84,210,125,186,107,136,125,186,103,62,125,186,74,244,124,186,19,170,124,186,194,95,124,186,87,21,124,186,210,202,123,186,52,128,123,186,124,53,123,186,170,234,122,186,191,159,122,186,186,84,122,186,155,9,122,186,99,190,121,186,17,115,121,186,166,39,121,186,34,220,120,186,132,144,120,186,205,68,120,186,252,248,119,186,18,173,119,186,15,97,119,186,242,20,119,186,188,200,118,186,109,124,118,186,5,48,118,186,132,227,
117,186,234,150,117,186,55,74,117,186,106,253,116,186,133,176,116,186,135,99,116,186,112,22,116,186,63,201,115,186,247,123,115,186,149,46,115,186,26,225,114,186,135,147,114,186,219,69,114,186,23,248,113,186,57,170,113,186,67,92,113,186,53,14,113,186,14,192,112,186,206,113,112,186,118,35,112,186,6,213,111,186,125,134,111,186,220,55,111,186,34,233,110,186,80,154,110,186,102,75,110,186,100,252,109,186,73,173,109,186,22,94,109,186,203,14,109,186,104,191,108,186,237,111,108,186,90,32,108,186,175,208,107,
186,236,128,107,186,17,49,107,186,30,225,106,186,19,145,106,186,241,64,106,186,183,240,105,186,100,160,105,186,251,79,105,186,121,255,104,186,224,174,104,186,47,94,104,186,103,13,104,186,135,188,103,186,143,107,103,186,128,26,103,186,90,201,102,186,28,120,102,186,199,38,102,186,91,213,101,186,215,131,101,186,60,50,101,186,138,224,100,186,192,142,100,186,223,60,100,186,232,234,99,186,217,152,99,186,179,70,99,186,118,244,98,186,34,162,98,186,183,79,98,186,54,253,97,186,157,170,97,186,237,87,97,186,
39,5,97,186,74,178,96,186,86,95,96,186,76,12,96,186,43,185,95,186,243,101,95,186,164,18,95,186,64,191,94,186,196,107,94,186,50,24,94,186,138,196,93,186,203,112,93,186,246,28,93,186,10,201,92,186,9,117,92,186,241,32,92,186,194,204,91,186,126,120,91,186,35,36,91,186,178,207,90,186,43,123,90,186,143,38,90,186,220,209,89,186,19,125,89,186,52,40,89,186,63,211,88,186,53,126,88,186,20,41,88,186,222,211,87,186,146,126,87,186,48,41,87,186,185,211,86,186,44,126,86,186,137,40,86,186,209,210,85,186,3,125,85,
186,32,39,85,186,39,209,84,186,25,123,84,186,246,36,84,186,189,206,83,186,111,120,83,186,11,34,83,186,147,203,82,186,5,117,82,186,98,30,82,186,170,199,81,186,220,112,81,186,250,25,81,186,3,195,80,186,246,107,80,186,213,20,80,186,159,189,79,186,84,102,79,186,244,14,79,186,127,183,78,186,246,95,78,186,88,8,78,186,165,176,77,186,222,88,77,186,2,1,77,186,17,169,76,186,12,81,76,186,242,248,75,186,196,160,75,186,130,72,75,186,43,240,74,186,192,151,74,186,64,63,74,186,172,230,73,186,4,142,73,186,72,53,73,
186,120,220,72,186,147,131,72,186,155,42,72,186,142,209,71,186,110,120,71,186,57,31,71,186,241,197,70,186,149,108,70,186,36,19,70,186,160,185,69,186,9,96,69,186,93,6,69,186,158,172,68,186,203,82,68,186,229,248,67,186,235,158,67,186,221,68,67,186,188,234,66,186,136,144,66,186,64,54,66,186,229,219,65,186,118,129,65,186,244,38,65,186,95,204,64,186,183,113,64,186,251,22,64,186,44,188,63,186,74,97,63,186,86,6,63,186,78,171,62,186,51,80,62,186,5,245,61,186,196,153,61,186,112,62,61,186,10,227,60,186,144,
135,60,186,4,44,60,186,101,208,59,186,180,116,59,186,240,24,59,186,25,189,58,186,48,97,58,186,52,5,58,186,38,169,57,186,5,77,57,186,210,240,56,186,140,148,56,186,52,56,56,186,202,219,55,186,78,127,55,186,191,34,55,186,30,198,54,186,107,105,54,186,166,12,54,186,207,175,53,186,230,82,53,186,235,245,52,186,222,152,52,186,191,59,52,186,143,222,51,186,76,129,51,186,248,35,51,186,146,198,50,186,26,105,50,186,145,11,50,186,246,173,49,186,73,80,49,186,139,242,48,186,188,148,48,186,219,54,48,186,232,216,47,
186,228,122,47,186,207,28,47,186,169,190,46,186,113,96,46,186,40,2,46,186,206,163,45,186,99,69,45,186,230,230,44,186,89,136,44,186,187,41,44,186,11,203,43,186,75,108,43,186,122,13,43,186,152,174,42,186,165,79,42,186,161,240,41,186,141,145,41,186,104,50,41,186,50,211,40,186,236,115,40,186,149,20,40,186,46,181,39,186,182,85,39,186,46,246,38,186,149,150,38,186,236,54,38,186,51,215,37,186,105,119,37,186,143,23,37,186,165,183,36,186,171,87,36,186,160,247,35,186,134,151,35,186,91,55,35,186,33,215,34,186,
214,118,34,186,124,22,34,186,17,182,33,186,151,85,33,186,14,245,32,186,116,148,32,186,203,51,32,186,18,211,31,186,73,114,31,186,113,17,31,186,137,176,30,186,146,79,30,186,139,238,29,186,117,141,29,186,79,44,29,186,26,203,28,186,214,105,28,186,131,8,28,186,32,167,27,186,174,69,27,186,45,228,26,186,157,130,26,186,254,32,26,186,80,191,25,186,147,93,25,186,199,251,24,186,236,153,24,186,2,56,24,186,10,214,23,186,3,116,23,186,237,17,23,186,200,175,22,186,149,77,22,186,83,235,21,186,2,137,21,186,163,38,
21,186,54,196,20,186,186,97,20,186,48,255,19,186,151,156,19,186,240,57,19,186,59,215,18,186,120,116,18,186,166,17,18,186,199,174,17,186,217,75,17,186,221,232,16,186,211,133,16,186,187,34,16,186,150,191,15,186,98,92,15,186,33,249,14,186,209,149,14,186,116,50,14,186,10,207,13,186,145,107,13,186,11,8,13,186,120,164,12,186,215,64,12,186,40,221,11,186,108,121,11,186,163,21,11,186,204,177,10,186,232,77,10,186,246,233,9,186,247,133,9,186,235,33,9,186,210,189,8,186,172,89,8,186,121,245,7,186,56,145,7,186,
235,44,7,186,145,200,6,186,42,100,6,186,181,255,5,186,53,155,5,186,167,54,5,186,12,210,4,186,101,109,4,186,178,8,4,186,241,163,3,186,36,63,3,186,75,218,2,186,101,117,2,186,114,16,2,186,116,171,1,186,105,70,1,186,81,225,0,186,45,124,0,186,253,22,0,186,131,99,255,185,242,152,254,185,73,206,253,185,136,3,253,185,175,56,252,185,191,109,251,185,182,162,250,185,149,215,249,185,93,12,249,185,14,65,248,185,166,117,247,185,40,170,246,185,146,222,245,185,228,18,245,185,32,71,244,185,68,123,243,185,82,175,242,
185,72,227,241,185,40,23,241,185,241,74,240,185,164,126,239,185,63,178,238,185,197,229,237,185,52,25,237,185,140,76,236,185,207,127,235,185,251,178,234,185,17,230,233,185,17,25,233,185,252,75,232,185,208,126,231,185,143,177,230,185,57,228,229,185,204,22,229,185,75,73,228,185,180,123,227,185,7,174,226,185,70,224,225,185,111,18,225,185,132,68,224,185,131,118,223,185,110,168,222,185,68,218,221,185,5,12,221,185,178,61,220,185,74,111,219,185,206,160,218,185,61,210,217,185,153,3,217,185,224,52,216,185,
19,102,215,185,50,151,214,185,61,200,213,185,53,249,212,185,24,42,212,185,233,90,211,185,165,139,210,185,78,188,209,185,228,236,208,185,103,29,208,185,214,77,207,185,50,126,206,185,124,174,205,185,178,222,204,185,214,14,204,185,230,62,203,185,229,110,202,185,208,158,201,185,169,206,200,185,112,254,199,185,36,46,199,185,199,93,198,185,87,141,197,185,213,188,196,185,65,236,195,185,155,27,195,185,227,74,194,185,26,122,193,185,63,169,192,185,83,216,191,185,85,7,191,185,70,54,190,185,38,101,189,185,244,
147,188,185,178,194,187,185,94,241,186,185,250,31,186,185,132,78,185,185,254,124,184,185,104,171,183,185,193,217,182,185,9,8,182,185,65,54,181,185,105,100,180,185,128,146,179,185,136,192,178,185,127,238,177,185,103,28,177,185,62,74,176,185,6,120,175,185,190,165,174,185,103,211,173,185,0,1,173,185,138,46,172,185,4,92,171,185,112,137,170,185,204,182,169,185,25,228,168,185,87,17,168,185,134,62,167,185,167,107,166,185,184,152,165,185,188,197,164,185,176,242,163,185,151,31,163,185,110,76,162,185,56,121,
161,185,244,165,160,185,161,210,159,185,65,255,158,185,210,43,158,185,86,88,157,185,204,132,156,185,52,177,155,185,143,221,154,185,221,9,154,185,29,54,153,185,80,98,152,185,117,142,151,185,142,186,150,185,153,230,149,185,152,18,149,185,138,62,148,185,111,106,147,185,71,150,146,185,19,194,145,185,210,237,144,185,133,25,144,185,44,69,143,185,199,112,142,185,85,156,141,185,215,199,140,185,78,243,139,185,184,30,139,185,23,74,138,185,106,117,137,185,178,160,136,185,238,203,135,185,31,247,134,185,68,34,
134,185,94,77,133,185,109,120,132,185,113,163,131,185,106,206,130,185,89,249,129,185,60,36,129,185,21,79,128,185,197,243,126,185,77,73,125,185,191,158,123,185,29,244,121,185,102,73,120,185,155,158,118,185,188,243,116,185,200,72,115,185,193,157,113,185,167,242,111,185,121,71,110,185,56,156,108,185,227,240,106,185,124,69,105,185,3,154,103,185,118,238,101,185,216,66,100,185,39,151,98,185,100,235,96,185,143,63,95,185,169,147,93,185,178,231,91,185,169,59,90,185,143,143,88,185,100,227,86,185,40,55,85,185,
220,138,83,185,127,222,81,185,19,50,80,185,150,133,78,185,9,217,76,185,109,44,75,185,193,127,73,185,6,211,71,185,60,38,70,185,99,121,68,185,124,204,66,185,133,31,65,185,128,114,63,185,109,197,61,185,76,24,60,185,29,107,58,185,225,189,56,185,151,16,55,185,63,99,53,185,219,181,51,185,105,8,50,185,235,90,48,185,96,173,46,185,201,255,44,185,37,82,43,185,118,164,41,185,186,246,39,185,243,72,38,185,32,155,36,185,66,237,34,185,89,63,33,185,101,145,31,185,102,227,29,185,92,53,28,185,72,135,26,185,41,217,
24,185,1,43,23,185,207,124,21,185,146,206,19,185,77,32,18,185,254,113,16,185,165,195,14,185,68,21,13,185,218,102,11,185,103,184,9,185,236,9,8,185,104,91,6,185,221,172,4,185,73,254,2,185,174,79,1,185,22,66,255,184,193,228,251,184,94,135,248,184,237,41,245,184,110,204,241,184,225,110,238,184,72,17,235,184,162,179,231,184,240,85,228,184,50,248,224,184,104,154,221,184,147,60,218,184,179,222,214,184,201,128,211,184,213,34,208,184,215,196,204,184,207,102,201,184,190,8,198,184,165,170,194,184,131,76,191,
184,90,238,187,184,41,144,184,184,240,49,181,184,177,211,177,184,107,117,174,184,31,23,171,184,205,184,167,184,117,90,164,184,25,252,160,184,184,157,157,184,82,63,154,184,232,224,150,184,123,130,147,184,10,36,144,184,151,197,140,184,32,103,137,184,168,8,134,184,46,170,130,184,100,151,126,184,106,218,119,184,110,29,113,184,114,96,106,184,118,163,99,184,122,230,92,184,127,41,86,184,134,108,79,184,144,175,72,184,158,242,65,184,175,53,59,184,198,120,52,184,226,187,45,184,4,255,38,184,45,66,32,184,94,
133,25,184,152,200,18,184,219,11,12,184,39,79,5,184,252,36,253,183,193,171,239,183,158,50,226,183,149,185,212,183,166,64,199,183,212,199,185,183,32,79,172,183,139,214,158,183,22,94,145,183,196,229,131,183,42,219,108,183,22,235,81,183,79,251,54,183,216,11,28,183,179,28,1,183,198,91,204,182,216,126,150,182,63,69,65,182,140,28,171,181,123,57,177,52,22,219,1,54,99,141,109,54,5,159,172,54,128,118,226,54,142,38,12,55,106,17,39,55,210,251,65,55,194,229,92,55,55,207,119,55,23,92,137,55,83,208,150,55,77,68,
164,55,4,184,177,55,119,43,191,55,164,158,204,55,138,17,218,55,38,132,231,55,121,246,244,55,64,52,1,56,29,237,7,56,211,165,14,56,97,94,21,56,198,22,28,56,2,207,34,56,20,135,41,56,251,62,48,56,183,246,54,56,70,174,61,56,169,101,68,56,222,28,75,56,228,211,81,56,188,138,88,56,99,65,95,56,219,247,101,56,33,174,108,56,53,100,115,56,22,26,122,56,226,103,128,56,159,194,131,56,66,29,135,56,202,119,138,56,55,210,141,56,136,44,145,56,190,134,148,56,215,224,151,56,212,58,155,56,180,148,158,56,119,238,161,56,
29,72,165,56,164,161,168,56,13,251,171,56,88,84,175,56,131,173,178,56,143,6,182,56,124,95,185,56,72,184,188,56,244,16,192,56,127,105,195,56,233,193,198,56,50,26,202,56,89,114,205,56,93,202,208,56,63,34,212,56,254,121,215,56,154,209,218,56,18,41,222,56,103,128,225,56,151,215,228,56,162,46,232,56,137,133,235,56,74,220,238,56,229,50,242,56,90,137,245,56,169,223,248,56,209,53,252,56,210,139,255,56,213,112,1,57,174,27,3,57,115,198,4,57,35,113,6,57,191,27,8,57,71,198,9,57,185,112,11,57,23,27,13,57,95,197,
14,57,146,111,16,57,176,25,18,57,183,195,19,57,169,109,21,57,133,23,23,57,75,193,24,57,251,106,26,57,147,20,28,57,21,190,29,57,129,103,31,57,213,16,33,57,17,186,34,57,55,99,36,57,69,12,38,57,58,181,39,57,24,94,41,57,222,6,43,57,140,175,44,57,33,88,46,57,157,0,48,57,1,169,49,57,75,81,51,57,125,249,52,57,148,161,54,57,147,73,56,57,120,241,57,57,66,153,59,57,243,64,61,57,138,232,62,57,6,144,64,57,103,55,66,57,174,222,67,57,217,133,69,57,234,44,71,57,223,211,72,57,185,122,74,57,120,33,76,57,26,200,77,
57,160,110,79,57,11,21,81,57,89,187,82,57,138,97,84,57,159,7,86,57,151,173,87,57,114,83,89,57,47,249,90,57,208,158,92,57,82,68,94,57,183,233,95,57,254,142,97,57,39,52,99,57,50,217,100,57,31,126,102,57,236,34,104,57,155,199,105,57,43,108,107,57,156,16,109,57,238,180,110,57,32,89,112,57,51,253,113,57,37,161,115,57,248,68,117,57,171,232,118,57,61,140,120,57,175,47,122,57,0,211,123,57,48,118,125,57,64,25,127,57,23,94,128,57,125,47,129,57,211,0,130,57,24,210,130,57,75,163,131,57,110,116,132,57,128,69,
133,57,128,22,134,57,111,231,134,57,77,184,135,57,26,137,136,57,212,89,137,57,126,42,138,57,21,251,138,57,155,203,139,57,15,156,140,57,113,108,141,57,192,60,142,57,254,12,143,57,41,221,143,57,66,173,144,57,73,125,145,57,61,77,146,57,31,29,147,57,238,236,147,57,170,188,148,57,84,140,149,57,234,91,150,57,110,43,151,57,222,250,151,57,60,202,152,57,134,153,153,57,188,104,154,57,224,55,155,57,239,6,156,57,236,213,156,57,212,164,157,57,169,115,158,57,106,66,159,57,23,17,160,57,176,223,160,57,53,174,161,
57,165,124,162,57,2,75,163,57,74,25,164,57,125,231,164,57,157,181,165,57,167,131,166,57,157,81,167,57,126,31,168,57,74,237,168,57,1,187,169,57,163,136,170,57,48,86,171,57,168,35,172,57,11,241,172,57,88,190,173,57,144,139,174,57,178,88,175,57,191,37,176,57,182,242,176,57,151,191,177,57,98,140,178,57,23,89,179,57,183,37,180,57,64,242,180,57,179,190,181,57,15,139,182,57,85,87,183,57,133,35,184,57,158,239,184,57,161,187,185,57,141,135,186,57,98,83,187,57,32,31,188,57,200,234,188,57,88,182,189,57,209,
129,190,57,51,77,191,57,126,24,192,57,177,227,192,57,205,174,193,57,209,121,194,57,189,68,195,57,146,15,196,57,79,218,196,57,245,164,197,57,130,111,198,57,247,57,199,57,84,4,200,57,153,206,200,57,198,152,201,57,218,98,202,57,214,44,203,57,185,246,203,57,131,192,204,57,53,138,205,57,207,83,206,57,79,29,207,57,182,230,207,57,4,176,208,57,57,121,209,57,85,66,210,57,88,11,211,57,65,212,211,57,17,157,212,57,200,101,213,57,100,46,214,57,231,246,214,57,81,191,215,57,160,135,216,57,214,79,217,57,241,23,218,
57,243,223,218,57,218,167,219,57,167,111,220,57,89,55,221,57,241,254,221,57,111,198,222,57,210,141,223,57,26,85,224,57,72,28,225,57,91,227,225,57,83,170,226,57,48,113,227,57,242,55,228,57,152,254,228,57,36,197,229,57,148,139,230,57,232,81,231,57,34,24,232,57,63,222,232,57,65,164,233,57,40,106,234,57,242,47,235,57,161,245,235,57,51,187,236,57,170,128,237,57,4,70,238,57,67,11,239,57,100,208,239,57,106,149,240,57,83,90,241,57,32,31,242,57,208,227,242,57,99,168,243,57,218,108,244,57,51,49,245,57,112,
245,245,57,144,185,246,57,146,125,247,57,120,65,248,57,64,5,249,57,235,200,249,57,121,140,250,57,233,79,251,57,59,19,252,57,112,214,252,57,135,153,253,57,128,92,254,57,91,31,255,57,25,226,255,57,92,82,0,58,157,179,0,58,206,20,1,58,241,117,1,58,4,215,1,58,8,56,2,58,252,152,2,58,226,249,2,58,184,90,3,58,127,187,3,58,54,28,4,58,222,124,4,58,118,221,4,58,255,61,5,58,120,158,5,58,225,254,5,58,59,95,6,58,134,191,6,58,192,31,7,58,235,127,7,58,6,224,7,58,17,64,8,58,12,160,8,58,247,255,8,58,211,95,9,58,158,
191,9,58,89,31,10,58,4,127,10,58,159,222,10,58,42,62,11,58,165,157,11,58,15,253,11,58,105,92,12,58,179,187,12,58,237,26,13,58,22,122,13,58,47,217,13,58,55,56,14,58,46,151,14,58,21,246,14,58,236,84,15,58,178,179,15,58,103,18,16,58,12,113,16,58,160,207,16,58,35,46,17,58,149,140,17,58,246,234,17,58,71,73,18,58,134,167,18,58,181,5,19,58,210,99,19,58,223,193,19,58,218,31,20,58,196,125,20,58,158,219,20,58,102,57,21,58,28,151,21,58,194,244,21,58,86,82,22,58,217,175,22,58,74,13,23,58,170,106,23,58,248,199,
23,58,53,37,24,58,97,130,24,58,123,223,24,58,131,60,25,58,121,153,25,58,94,246,25,58,49,83,26,58,243,175,26,58,162,12,27,58,64,105,27,58,204,197,27,58,70,34,28,58,174,126,28,58,4,219,28,58,72,55,29,58,122,147,29,58,154,239,29,58,167,75,30,58,163,167,30,58,140,3,31,58,99,95,31,58,40,187,31,58,218,22,32,58,122,114,32,58,8,206,32,58,131,41,33,58,236,132,33,58,66,224,33,58,134,59,34,58,183,150,34,58,213,241,34,58,225,76,35,58,218,167,35,58,192,2,36,58,148,93,36,58,85,184,36,58,3,19,37,58,158,109,37,58,
38,200,37,58,155,34,38,58,253,124,38,58,76,215,38,58,136,49,39,58,177,139,39,58,199,229,39,58,202,63,40,58,186,153,40,58,150,243,40,58,95,77,41,58,20,167,41,58,183,0,42,58,70,90,42,58,193,179,42,58,41,13,43,58,125,102,43,58,190,191,43,58,236,24,44,58,6,114,44,58,12,203,44,58,254,35,45,58,221,124,45,58,168,213,45,58,95,46,46,58,3,135,46,58,146,223,46,58,14,56,47,58,118,144,47,58,201,232,47,58,9,65,48,58,53,153,48,58,76,241,48,58,80,73,49,58,63,161,49,58,27,249,49,58,226,80,50,58,148,168,50,58,51,0,
51,58,189,87,51,58,51,175,51,58,148,6,52,58,225,93,52,58,26,181,52,58,62,12,53,58,77,99,53,58,72,186,53,58,46,17,54,58,0,104,54,58,189,190,54,58,101,21,55,58,249,107,55,58,120,194,55,58,226,24,56,58,55,111,56,58,119,197,56,58,162,27,57,58,185,113,57,58,186,199,57,58,167,29,58,58,126,115,58,58,64,201,58,58,237,30,59,58,133,116,59,58,8,202,59,58,118,31,60,58,206,116,60,58,17,202,60,58,63,31,61,58,87,116,61,58,90,201,61,58,72,30,62,58,32,115,62,58,226,199,62,58,143,28,63,58,39,113,63,58,168,197,63,58,
21,26,64,58,107,110,64,58,172,194,64,58,215,22,65,58,236,106,65,58,236,190,65,58,214,18,66,58,169,102,66,58,103,186,66,58,15,14,67,58,161,97,67,58,29,181,67,58,131,8,68,58,211,91,68,58,13,175,68,58,48,2,69,58,62,85,69,58,53,168,69,58,22,251,69,58,225,77,70,58,149,160,70,58,51,243,70,58,187,69,71,58,45,152,71,58,135,234,71,58,204,60,72,58,250,142,72,58,17,225,72,58,18,51,73,58,252,132,73,58,208,214,73,58,141,40,74,58,51,122,74,58,194,203,74,58,59,29,75,58,157,110,75,58,232,191,75,58,28,17,76,58,57,
98,76,58,64,179,76,58,47,4,77,58,8,85,77,58,201,165,77,58,115,246,77,58,7,71,78,58,131,151,78,58,232,231,78,58,54,56,79,58,108,136,79,58,139,216,79,58,147,40,80,58,132,120,80,58,94,200,80,58,32,24,81,58,202,103,81,58,93,183,81,58,217,6,82,58,61,86,82,58,138,165,82,58,191,244,82,58,220,67,83,58,226,146,83,58,208,225,83,58,167,48,84,58,101,127,84,58,12,206,84,58,156,28,85,58,19,107,85,58,114,185,85,58,186,7,86,58,234,85,86,58,2,164,86,58,1,242,86,58,233,63,87,58,185,141,87,58,113,219,87,58,16,41,88,
58,152,118,88,58,7,196,88,58,94,17,89,58,157,94,89,58,195,171,89,58,210,248,89,58,200,69,90,58,165,146,90,58,107,223,90,58,24,44,91,58,172,120,91,58,40,197,91,58,139,17,92,58,214,93,92,58,9,170,92,58,34,246,92,58,36,66,93,58,12,142,93,58,220,217,93,58,147,37,94,58,49,113,94,58,183,188,94,58,36,8,95,58,120,83,95,58,179,158,95,58,213,233,95,58,222,52,96,58,207,127,96,58,166,202,96,58,100,21,97,58,10,96,97,58,150,170,97,58,9,245,97,58,99,63,98,58,164,137,98,58,203,211,98,58,218,29,99,58,207,103,99,58,
171,177,99,58,110,251,99,58,23,69,100,58,167,142,100,58,29,216,100,58,122,33,101,58,190,106,101,58,232,179,101,58,249,252,101,58,240,69,102,58,205,142,102,58,145,215,102,58,60,32,103,58,204,104,103,58,67,177,103,58,160,249,103,58,228,65,104,58,14,138,104,58,30,210,104,58,20,26,105,58,240,97,105,58,178,169,105,58,91,241,105,58,233,56,106,58,94,128,106,58,185,199,106,58,249,14,107,58,32,86,107,58,44,157,107,58,30,228,107,58,247,42,108,58,181,113,108,58,88,184,108,58,226,254,108,58,81,69,109,58,166,
139,109,58,225,209,109,58,2,24,110,58,8,94,110,58,243,163,110,58,197,233,110,58,123,47,111,58,24,117,111,58,154,186,111,58,1,0,112,58,78,69,112,58,128,138,112,58,151,207,112,58,148,20,113,58,119,89,113,58,62,158,113,58,235,226,113,58,125,39,114,58,245,107,114,58,81,176,114,58,147,244,114,58,186,56,115,58,198,124,115,58,183,192,115,58,141,4,116,58,73,72,116,58,233,139,116,58,110,207,116,58,216,18,117,58,39,86,117,58,92,153,117,58,116,220,117,58,114,31,118,58,85,98,118,58,28,165,118,58,201,231,118,
58,89,42,119,58,207,108,119,58,42,175,119,58,105,241,119,58,140,51,120,58,149,117,120,58,130,183,120,58,83,249,120,58,9,59,121,58,164,124,121,58,35,190,121,58,134,255,121,58,206,64,122,58,251,129,122,58,11,195,122,58,0,4,123,58,218,68,123,58,152,133,123,58,58,198,123,58,192,6,124,58,43,71,124,58,121,135,124,58,172,199,124,58,195,7,125,58,191,71,125,58,158,135,125,58,98,199,125,58,9,7,126,58,149,70,126,58,4,134,126,58,88,197,126,58,143,4,127,58,171,67,127,58,170,130,127,58,141,193,127,58,42,0,128,
58,128,31,128,58,199,62,128,58,0,94,128,58,44,125,128,58,73,156,128,58,88,187,128,58,88,218,128,58,75,249,128,58,47,24,129,58,5,55,129,58,205,85,129,58,135,116,129,58,51,147,129,58,208,177,129,58,95,208,129,58,224,238,129,58,83,13,130,58,183,43,130,58,13,74,130,58,85,104,130,58,142,134,130,58,185,164,130,58,214,194,130,58,228,224,130,58,228,254,130,58,213,28,131,58,184,58,131,58,141,88,131,58,84,118,131,58,12,148,131,58,181,177,131,58,80,207,131,58,221,236,131,58,91,10,132,58,202,39,132,58,43,69,
132,58,126,98,132,58,194,127,132,58,248,156,132,58,31,186,132,58,55,215,132,58,65,244,132,58,61,17,133,58,41,46,133,58,8,75,133,58,215,103,133,58,152,132,133,58,74,161,133,58,238,189,133,58,131,218,133,58,9,247,133,58,129,19,134,58,234,47,134,58,68,76,134,58,144,104,134,58,205,132,134,58,251,160,134,58,26,189,134,58,43,217,134,58,45,245,134,58,32,17,135,58,4,45,135,58,218,72,135,58,161,100,135,58,89,128,135,58,2,156,135,58,156,183,135,58,39,211,135,58,164,238,135,58,18,10,136,58,113,37,136,58,192,
64,136,58,1,92,136,58,52,119,136,58,87,146,136,58,107,173,136,58,112,200,136,58,103,227,136,58,78,254,136,58,39,25,137,58,240,51,137,58,170,78,137,58,86,105,137,58,242,131,137,58,128,158,137,58,254,184,137,58,109,211,137,58,206,237,137,58,31,8,138,58,97,34,138,58,148,60,138,58,184,86,138,58,205,112,138,58,211,138,138,58,201,164,138,58,177,190,138,58,137,216,138,58,82,242,138,58,12,12,139,58,183,37,139,58,83,63,139,58,223,88,139,58,92,114,139,58,202,139,139,58,41,165,139,58,121,190,139,58,185,215,
139,58,234,240,139,58,12,10,140,58,31,35,140,58,34,60,140,58,22,85,140,58,250,109,140,58,208,134,140,58,150,159,140,58,77,184,140,58,244,208,140,58,140,233,140,58,21,2,141,58,142,26,141,58,248,50,141,58,82,75,141,58,158,99,141,58,217,123,141,58,6,148,141,58,35,172,141,58,48,196,141,58,46,220,141,58,29,244,141,58,252,11,142,58,203,35,142,58,140,59,142,58,60,83,142,58,222,106,142,58,111,130,142,58,241,153,142,58,100,177,142,58,199,200,142,58,27,224,142,58,95,247,142,58,147,14,143,58,184,37,143,58,206,
60,143,58,212,83,143,58,202,106,143,58,176,129,143,58,135,152,143,58,79,175,143,58,6,198,143,58,174,220,143,58,71,243,143,58,208,9,144,58,73,32,144,58,178,54,144,58,12,77,144,58,86,99,144,58,145,121,144,58,187,143,144,58,214,165,144,58,226,187,144,58,221,209,144,58,201,231,144,58,165,253,144,58,113,19,145,58,46,41,145,58,219,62,145,58,120,84,145,58,5,106,145,58,130,127,145,58,240,148,145,58,78,170,145,58,156,191,145,58,218,212,145,58,8,234,145,58,39,255,145,58,54,20,146,58,52,41,146,58,35,62,146,
58,3,83,146,58,210,103,146,58,145,124,146,58,64,145,146,58,224,165,146,58,112,186,146,58,239,206,146,58,95,227,146,58,191,247,146,58,15,12,147,58,79,32,147,58,127,52,147,58,159,72,147,58,175,92,147,58,175,112,147,58,159,132,147,58,127,152,147,58,79,172,147,58,15,192,147,58,191,211,147,58,95,231,147,58,239,250,147,58,111,14,148,58,223,33,148,58,63,53,148,58,143,72,148,58,207,91,148,58,254,110,148,58,30,130,148,58,45,149,148,58,45,168,148,58,28,187,148,58,251,205,148,58,202,224,148,58,137,243,148,58,
56,6,149,58,215,24,149,58,101,43,149,58,228,61,149,58,82,80,149,58,176,98,149,58,254,116,149,58,60,135,149,58,106,153,149,58,135,171,149,58,148,189,149,58,145,207,149,58,126,225,149,58,90,243,149,58,39,5,150,58,227,22,150,58,143,40,150,58,42,58,150,58,182,75,150,58,49,93,150,58,156,110,150,58,246,127,150,58,65,145,150,58,123,162,150,58,164,179,150,58,190,196,150,58,199,213,150,58,192,230,150,58,168,247,150,58,129,8,151,58,73,25,151,58,0,42,151,58,167,58,151,58,62,75,151,58,197,91,151,58,59,108,151,
58,161,124,151,58,246,140,151,58,60,157,151,58,112,173,151,58,149,189,151,58,169,205,151,58,172,221,151,58,159,237,151,58,130,253,151,58,85,13,152,58,22,29,152,58,200,44,152,58,105,60,152,58,250,75,152,58,122,91,152,58,234,106,152,58,73,122,152,58,152,137,152,58,214,152,152,58,4,168,152,58,34,183,152,58,47,198,152,58,43,213,152,58,23,228,152,58,243,242,152,58,190,1,153,58,120,16,153,58,34,31,153,58,188,45,153,58,69,60,153,58,189,74,153,58,37,89,153,58,125,103,153,58,195,117,153,58,250,131,153,58,
32,146,153,58,53,160,153,58,57,174,153,58,45,188,153,58,17,202,153,58,228,215,153,58,166,229,153,58,88,243,153,58,249,0,154,58,138,14,154,58,10,28,154,58,121,41,154,58,216,54,154,58,38,68,154,58,100,81,154,58,145,94,154,58,173,107,154,58,185,120,154,58,180,133,154,58,158,146,154,58,120,159,154,58,65,172,154,58,250,184,154,58,161,197,154,58,57,210,154,58,191,222,154,58,53,235,154,58,154,247,154,58,239,3,155,58,50,16,155,58,101,28,155,58,136,40,155,58,154,52,155,58,155,64,155,58,139,76,155,58,107,88,
155,58,57,100,155,58,248,111,155,58,165,123,155,58,66,135,155,58,206,146,155,58,73,158,155,58,180,169,155,58,14,181,155,58,87,192,155,58,143,203,155,58,183,214,155,58,205,225,155,58,211,236,155,58,201,247,155,58,173,2,156,58,129,13,156,58,68,24,156,58,246,34,156,58,152,45,156,58],"i8",4,y.a+665600);
Q([41,56,156,58,168,66,156,58,24,77,156,58,118,87,156,58,195,97,156,58,0,108,156,58,44,118,156,58,71,128,156,58,82,138,156,58,75,148,156,58,52,158,156,58,12,168,156,58,211,177,156,58,137,187,156,58,46,197,156,58,195,206,156,58,71,216,156,58,185,225,156,58,28,235,156,58,109,244,156,58,173,253,156,58,221,6,157,58,251,15,157,58,9,25,157,58,6,34,157,58,242,42,157,58,205,51,157,58,152,60,157,58,81,69,157,58,250,77,157,58,146,86,157,58,25,95,157,58,143,103,157,58,244,111,157,58,72,120,157,58,139,128,157,
58,190,136,157,58,224,144,157,58,240,152,157,58,240,160,157,58,223,168,157,58,189,176,157,58,138,184,157,58,70,192,157,58,242,199,157,58,140,207,157,58,21,215,157,58,142,222,157,58,246,229,157,58,76,237,157,58,146,244,157,58,199,251,157,58,235,2,158,58,254,9,158,58,0,17,158,58,241,23,158,58,210,30,158,58,161,37,158,58,95,44,158,58,13,51,158,58,169,57,158,58,53,64,158,58,175,70,158,58,25,77,158,58,114,83,158,58,186,89,158,58,240,95,158,58,22,102,158,58,43,108,158,58,47,114,158,58,34,120,158,58,4,126,
158,58,213,131,158,58,150,137,158,58,69,143,158,58,227,148,158,58,112,154,158,58,237,159,158,58,88,165,158,58,178,170,158,58,252,175,158,58,52,181,158,58,91,186,158,58,114,191,158,58,119,196,158,58,108,201,158,58,79,206,158,58,34,211,158,58,228,215,158,58,148,220,158,58,52,225,158,58,194,229,158,58,64,234,158,58,173,238,158,58,8,243,158,58,83,247,158,58,141,251,158,58,182,255,158,58,205,3,159,58,212,7,159,58,202,11,159,58,175,15,159,58,130,19,159,58,69,23,159,58,247,26,159,58,152,30,159,58,40,34,
159,58,166,37,159,58,20,41,159,58,113,44,159,58,189,47,159,58,248,50,159,58,33,54,159,58,58,57,159,58,66,60,159,58,57,63,159,58,31,66,159,58,244,68,159,58,184,71,159,58,106,74,159,58,12,77,159,58,157,79,159,58,29,82,159,58,140,84,159,58,234,86,159,58,55,89,159,58,115,91,159,58,157,93,159,58,183,95,159,58,192,97,159,58,184,99,159,58,159,101,159,58,117,103,159,58,58,105,159,58,238,106,159,58,145,108,159,58,34,110,159,58,163,111,159,58,19,113,159,58,114,114,159,58,192,115,159,58,253,116,159,58,41,118,
159,58,68,119,159,58,78,120,159,58,71,121,159,58,47,122,159,58,6,123,159,58,204,123,159,58,129,124,159,58,37,125,159,58,184,125,159,58,58,126,159,58,171,126,159,58,11,127,159,58,90,127,159,58,152,127,159,58,197,127,159,58,225,127,159,58,236,127,159,58,230,127,159,58,207,127,159,58,168,127,159,58,111,127,159,58,37,127,159,58,202,126,159,58,94,126,159,58,226,125,159,58,84,125,159,58,181,124,159,58,6,124,159,58,69,123,159,58,116,122,159,58,145,121,159,58,158,120,159,58,153,119,159,58,132,118,159,58,
93,117,159,58,38,116,159,58,222,114,159,58,132,113,159,58,26,112,159,58,159,110,159,58,19,109,159,58,118,107,159,58,200,105,159,58,9,104,159,58,57,102,159,58,88,100,159,58,102,98,159,58,99,96,159,58,80,94,159,58,43,92,159,58,246,89,159,58,175,87,159,58,88,85,159,58,239,82,159,58,118,80,159,58,236,77,159,58,81,75,159,58,165,72,159,58,232,69,159,58,26,67,159,58,59,64,159,58,75,61,159,58,75,58,159,58,57,55,159,58,23,52,159,58,227,48,159,58,159,45,159,58,74,42,159,58,228,38,159,58,109,35,159,58,229,31,
159,58,76,28,159,58,163,24,159,58,232,20,159,58,29,17,159,58,65,13,159,58,83,9,159,58,85,5,159,58,71,1,159,58,39,253,158,58,246,248,158,58,181,244,158,58,98,240,158,58,255,235,158,58,139,231,158,58,6,227,158,58,112,222,158,58,202,217,158,58,18,213,158,58,74,208,158,58,113,203,158,58,135,198,158,58,140,193,158,58,129,188,158,58,100,183,158,58,55,178,158,58,249,172,158,58,170,167,158,58,74,162,158,58,217,156,158,58,88,151,158,58,198,145,158,58,35,140,158,58,111,134,158,58,171,128,158,58,213,122,158,
58,239,116,158,58,248,110,158,58,240,104,158,58,216,98,158,58,175,92,158,58,117,86,158,58,42,80,158,58,206,73,158,58,98,67,158,58,229,60,158,58,87,54,158,58,185,47,158,58,9,41,158,58,73,34,158,58,120,27,158,58,151,20,158,58,165,13,158,58,162,6,158,58,142,255,157,58,105,248,157,58,52,241,157,58,238,233,157,58,152,226,157,58,49,219,157,58,185,211,157,58,48,204,157,58,151,196,157,58,236,188,157,58,50,181,157,58,102,173,157,58,138,165,157,58,157,157,157,58,160,149,157,58,146,141,157,58,115,133,157,58,
68,125,157,58,4,117,157,58,179,108,157,58,82,100,157,58,224,91,157,58,93,83,157,58,202,74,157,58,38,66,157,58,114,57,157,58,173,48,157,58,215,39,157,58,241,30,157,58,250,21,157,58,242,12,157,58,218,3,157,58,178,250,156,58,120,241,156,58,47,232,156,58,212,222,156,58,105,213,156,58,238,203,156,58,98,194,156,58,197,184,156,58,24,175,156,58,90,165,156,58,140,155,156,58,173,145,156,58,190,135,156,58,190,125,156,58,174,115,156,58,141,105,156,58,92,95,156,58,26,85,156,58,199,74,156,58,101,64,156,58,241,
53,156,58,109,43,156,58,217,32,156,58,52,22,156,58,127,11,156,58,186,0,156,58,227,245,155,58,253,234,155,58,6,224,155,58,254,212,155,58,231,201,155,58,190,190,155,58,134,179,155,58,60,168,155,58,227,156,155,58,121,145,155,58,255,133,155,58,116,122,155,58,217,110,155,58,45,99,155,58,113,87,155,58,165,75,155,58,201,63,155,58,220,51,155,58,222,39,155,58,209,27,155,58,179,15,155,58,132,3,155,58,70,247,154,58,247,234,154,58,151,222,154,58,40,210,154,58,168,197,154,58,24,185,154,58,119,172,154,58,198,159,
154,58,5,147,154,58,52,134,154,58,82,121,154,58,96,108,154,58,94,95,154,58,76,82,154,58,41,69,154,58,247,55,154,58,179,42,154,58,96,29,154,58,253,15,154,58,137,2,154,58,5,245,153,58,113,231,153,58,205,217,153,58,24,204,153,58,84,190,153,58,127,176,153,58,154,162,153,58,165,148,153,58,159,134,153,58,138,120,153,58,100,106,153,58,47,92,153,58,233,77,153,58,147,63,153,58,45,49,153,58,183,34,153,58,48,20,153,58,154,5,153,58,244,246,152,58,61,232,152,58,119,217,152,58,160,202,152,58,185,187,152,58,195,
172,152,58,188,157,152,58,165,142,152,58,126,127,152,58,72,112,152,58,1,97,152,58,170,81,152,58,67,66,152,58,204,50,152,58,70,35,152,58,175,19,152,58,8,4,152,58,81,244,151,58,139,228,151,58,180,212,151,58,206,196,151,58,215,180,151,58,209,164,151,58,187,148,151,58,149,132,151,58,94,116,151,58,25,100,151,58,195,83,151,58,93,67,151,58,231,50,151,58,98,34,151,58,205,17,151,58,39,1,151,58,115,240,150,58,174,223,150,58,217,206,150,58,245,189,150,58,0,173,150,58,252,155,150,58,233,138,150,58,197,121,150,
58,146,104,150,58,78,87,150,58,252,69,150,58,153,52,150,58,39,35,150,58,164,17,150,58,19,0,150,58,113,238,149,58,192,220,149,58,255,202,149,58,46,185,149,58,78,167,149,58,94,149,149,58,94,131,149,58,79,113,149,58,48,95,149,58,1,77,149,58,195,58,149,58,117,40,149,58,24,22,149,58,170,3,149,58,46,241,148,58,161,222,148,58,6,204,148,58,90,185,148,58,159,166,148,58,213,147,148,58,251,128,148,58,17,110,148,58,24,91,148,58,15,72,148,58,247,52,148,58,207,33,148,58,152,14,148,58,81,251,147,58,251,231,147,
58,149,212,147,58,32,193,147,58,156,173,147,58,8,154,147,58,100,134,147,58,178,114,147,58,239,94,147,58,30,75,147,58,61,55,147,58,76,35,147,58,76,15,147,58,61,251,146,58,31,231,146,58,241,210,146,58,180,190,146,58,103,170,146,58,11,150,146,58,160,129,146,58,38,109,146,58,156,88,146,58,3,68,146,58,90,47,146,58,163,26,146,58,220,5,146,58,6,241,145,58,33,220,145,58,44,199,145,58,40,178,145,58,21,157,145,58,243,135,145,58,194,114,145,58,129,93,145,58,50,72,145,58,211,50,145,58,101,29,145,58,231,7,145,
58,91,242,144,58,192,220,144,58,21,199,144,58,92,177,144,58,147,155,144,58,187,133,144,58,212,111,144,58,222,89,144,58,217,67,144,58,197,45,144,58,162,23,144,58,112,1,144,58,47,235,143,58,223,212,143,58,128,190,143,58,18,168,143,58,149,145,143,58,9,123,143,58,110,100,143,58,196,77,143,58,11,55,143,58,68,32,143,58,109,9,143,58,136,242,142,58,147,219,142,58,144,196,142,58,126,173,142,58,93,150,142,58,45,127,142,58,238,103,142,58,161,80,142,58,68,57,142,58,217,33,142,58,95,10,142,58,215,242,141,58,63,
219,141,58,153,195,141,58,228,171,141,58,32,148,141,58,78,124,141,58,109,100,141,58,125,76,141,58,126,52,141,58,113,28,141,58,85,4,141,58,42,236,140,58,241,211,140,58,169,187,140,58,83,163,140,58,238,138,140,58,122,114,140,58,248,89,140,58,103,65,140,58,199,40,140,58,25,16,140,58,92,247,139,58,145,222,139,58,184,197,139,58,207,172,139,58,217,147,139,58,211,122,139,58,192,97,139,58,157,72,139,58,109,47,139,58,46,22,139,58,224,252,138,58,132,227,138,58,26,202,138,58,161,176,138,58,26,151,138,58,132,
125,138,58,224,99,138,58,46,74,138,58,109,48,138,58,158,22,138,58,193,252,137,58,213,226,137,58,219,200,137,58,211,174,137,58,188,148,137,58,151,122,137,58,100,96,137,58,35,70,137,58,211,43,137,58,117,17,137,58,9,247,136,58,143,220,136,58,7,194,136,58,112,167,136,58,204,140,136,58,25,114,136,58,88,87,136,58,137,60,136,58,171,33,136,58,192,6,136,58,198,235,135,58,191,208,135,58,169,181,135,58,134,154,135,58,84,127,135,58,20,100,135,58,198,72,135,58,107,45,135,58,1,18,135,58,137,246,134,58,3,219,134,
58,112,191,134,58,206,163,134,58,31,136,134,58,97,108,134,58,150,80,134,58,189,52,134,58,213,24,134,58,224,252,133,58,221,224,133,58,205,196,133,58,174,168,133,58,130,140,133,58,71,112,133,58,255,83,133,58,170,55,133,58,70,27,133,58,213,254,132,58,86,226,132,58,201,197,132,58,46,169,132,58,134,140,132,58,208,111,132,58,13,83,132,58,59,54,132,58,92,25,132,58,112,252,131,58,117,223,131,58,110,194,131,58,88,165,131,58,53,136,131,58,4,107,131,58,198,77,131,58,122,48,131,58,33,19,131,58,186,245,130,58,
70,216,130,58,196,186,130,58,53,157,130,58,152,127,130,58,238,97,130,58,54,68,130,58,113,38,130,58,158,8,130,58,190,234,129,58,209,204,129,58,214,174,129,58,206,144,129,58,184,114,129,58,149,84,129,58,101,54,129,58,40,24,129,58,221,249,128,58,133,219,128,58,31,189,128,58,173,158,128,58,45,128,128,58,160,97,128,58,5,67,128,58,94,36,128,58,169,5,128,58,206,205,127,58,47,144,127,58,119,82,127,58,164,20,127,58,183,214,126,58,175,152,126,58,142,90,126,58,82,28,126,58,252,221,125,58,140,159,125,58,2,97,
125,58,94,34,125,58,159,227,124,58,199,164,124,58,213,101,124,58,200,38,124,58,162,231,123,58,98,168,123,58,8,105,123,58,148,41,123,58,7,234,122,58,95,170,122,58,158,106,122,58,195,42,122,58,207,234,121,58,192,170,121,58,152,106,121,58,87,42,121,58,252,233,120,58,135,169,120,58,249,104,120,58,81,40,120,58,144,231,119,58,181,166,119,58,193,101,119,58,179,36,119,58,140,227,118,58,76,162,118,58,242,96,118,58,128,31,118,58,243,221,117,58,78,156,117,58,144,90,117,58,184,24,117,58,199,214,116,58,189,148,
116,58,154,82,116,58,94,16,116,58,9,206,115,58,155,139,115,58,20,73,115,58,116,6,115,58,187,195,114,58,233,128,114,58,254,61,114,58,251,250,113,58,223,183,113,58,169,116,113,58,92,49,113,58,245,237,112,58,118,170,112,58,222,102,112,58,46,35,112,58,101,223,111,58,131,155,111,58,137,87,111,58,119,19,111,58,76,207,110,58,8,139,110,58,172,70,110,58,56,2,110,58,172,189,109,58,7,121,109,58,73,52,109,58,116,239,108,58,134,170,108,58,128,101,108,58,98,32,108,58,44,219,107,58,222,149,107,58,120,80,107,58,
249,10,107,58,99,197,106,58,180,127,106,58,238,57,106,58,16,244,105,58,25,174,105,58,11,104,105,58,229,33,105,58,168,219,104,58,82,149,104,58,229,78,104,58,96,8,104,58,196,193,103,58,15,123,103,58,67,52,103,58,96,237,102,58,101,166,102,58,82,95,102,58,40,24,102,58,231,208,101,58,142,137,101,58,30,66,101,58,150,250,100,58,247,178,100,58,64,107,100,58,115,35,100,58,142,219,99,58,146,147,99,58,126,75,99,58,84,3,99,58,18,187,98,58,186,114,98,58,74,42,98,58,195,225,97,58,37,153,97,58,113,80,97,58,165,
7,97,58,194,190,96,58,201,117,96,58,185,44,96,58,146,227,95,58,84,154,95,58,255,80,95,58,148,7,95,58,18,190,94,58,121,116,94,58,202,42,94,58,4,225,93,58,40,151,93,58,53,77,93,58,44,3,93,58,12,185,92,58,213,110,92,58,137,36,92,58,38,218,91,58,172,143,91,58,29,69,91,58,119,250,90,58,187,175,90,58,232,100,90,58,0,26,90,58,1,207,89,58,236,131,89,58,193,56,89,58,129,237,88,58,42,162,88,58,189,86,88,58,58,11,88,58,161,191,87,58,243,115,87,58,46,40,87,58,84,220,86,58,100,144,86,58,95,68,86,58,67,248,85,
58,18,172,85,58,203,95,85,58,111,19,85,58,253,198,84,58,118,122,84,58,217,45,84,58,38,225,83,58,94,148,83,58,129,71,83,58,142,250,82,58,134,173,82,58,105,96,82,58,54,19,82,58,238,197,81,58,145,120,81,58,31,43,81,58,151,221,80,58,251,143,80,58,73,66,80,58,130,244,79,58,167,166,79,58,182,88,79,58,176,10,79,58,150,188,78,58,103,110,78,58,34,32,78,58,201,209,77,58,91,131,77,58,217,52,77,58,66,230,76,58,150,151,76,58,213,72,76,58,0,250,75,58,22,171,75,58,24,92,75,58,5,13,75,58,222,189,74,58,162,110,74,
58,82,31,74,58,237,207,73,58,116,128,73,58,231,48,73,58,70,225,72,58,144,145,72,58,198,65,72,58,232,241,71,58,246,161,71,58,240,81,71,58,214,1,71,58,167,177,70,58,101,97,70,58,15,17,70,58,165,192,69,58,39,112,69,58,149,31,69,58,239,206,68,58,54,126,68,58,104,45,68,58,135,220,67,58,147,139,67,58,138,58,67,58,110,233,66,58,63,152,66,58,252,70,66,58,165,245,65,58,59,164,65,58,190,82,65,58,45,1,65,58,137,175,64,58,209,93,64,58,7,12,64,58,41,186,63,58,55,104,63,58,51,22,63,58,27,196,62,58,240,113,62,58,
178,31,62,58,98,205,61,58,254,122,61,58,135,40,61,58,253,213,60,58,96,131,60,58,177,48,60,58,238,221,59,58,25,139,59,58,49,56,59,58,54,229,58,58,41,146,58,58,8,63,58,58,214,235,57,58,144,152,57,58,57,69,57,58,206,241,56,58,81,158,56,58,194,74,56,58,32,247,55,58,108,163,55,58,166,79,55,58,205,251,54,58,226,167,54,58,229,83,54,58,213,255,53,58,180,171,53,58,128,87,53,58,58,3,53,58,227,174,52,58,121,90,52,58,253,5,52,58,111,177,51,58,208,92,51,58,30,8,51,58,91,179,50,58,134,94,50,58,159,9,50,58,166,
180,49,58,156,95,49,58,128,10,49,58,82,181,48,58,19,96,48,58,194,10,48,58,96,181,47,58,236,95,47,58,103,10,47,58,209,180,46,58,41,95,46,58,112,9,46,58,165,179,45,58,202,93,45,58,221,7,45,58,222,177,44,58,207,91,44,58,175,5,44,58,126,175,43,58,59,89,43,58,232,2,43,58,131,172,42,58,14,86,42,58,136,255,41,58,241,168,41,58,73,82,41,58,144,251,40,58,199,164,40,58,237,77,40,58,2,247,39,58,7,160,39,58,251,72,39,58,223,241,38,58,178,154,38,58,116,67,38,58,38,236,37,58,200,148,37,58,90,61,37,58,219,229,36,
58,75,142,36,58,172,54,36,58,252,222,35,58,60,135,35,58,108,47,35,58,140,215,34,58,156,127,34,58,156,39,34,58,140,207,33,58,108,119,33,58,60,31,33,58,252,198,32,58,172,110,32,58,77,22,32,58,221,189,31,58,94,101,31,58,207,12,31,58,49,180,30,58,131,91,30,58,198,2,30,58,249,169,29,58,28,81,29,58,48,248,28,58,52,159,28,58,42,70,28,58,15,237,27,58,230,147,27,58,173,58,27,58,101,225,26,58,14,136,26,58,168,46,26,58,50,213,25,58,174,123,25,58,26,34,25,58,120,200,24,58,198,110,24,58,6,21,24,58,54,187,23,58,
88,97,23,58,107,7,23,58,111,173,22,58,101,83,22,58,75,249,21,58,36,159,21,58,237,68,21,58,168,234,20,58,84,144,20,58,242,53,20,58,130,219,19,58,2,129,19,58,117,38,19,58,217,203,18,58,47,113,18,58,119,22,18,58,176,187,17,58,219,96,17,58,248,5,17,58,7,171,16,58,8,80,16,58,251,244,15,58,224,153,15,58,183,62,15,58,127,227,14,58,58,136,14,58,232,44,14,58,135,209,13,58,24,118,13,58,156,26,13,58,18,191,12,58,123,99,12,58,214,7,12,58,35,172,11,58,99,80,11,58,149,244,10,58,186,152,10,58,209,60,10,58,219,224,
9,58,216,132,9,58,199,40,9,58,169,204,8,58,126,112,8,58,70,20,8,58,0,184,7,58,174,91,7,58,78,255,6,58,225,162,6,58,104,70,6,58,225,233,5,58,77,141,5,58,173,48,5,58,0,212,4,58,70,119,4,58,127,26,4,58,171,189,3,58,203,96,3,58,222,3,3,58,229,166,2,58,223,73,2,58,204,236,1,58,173,143,1,58,130,50,1,58,74,213,0,58,5,120,0,58,181,26,0,58,176,122,255,57,222,191,254,57,243,4,254,57,240,73,253,57,213,142,252,57,162,211,251,57,86,24,251,57,243,92,250,57,120,161,249,57,228,229,248,57,57,42,248,57,119,110,247,
57,156,178,246,57,170,246,245,57,161,58,245,57,128,126,244,57,72,194,243,57,249,5,243,57,147,73,242,57,21,141,241,57,129,208,240,57,214,19,240,57,20,87,239,57,59,154,238,57,75,221,237,57,69,32,237,57,41,99,236,57,246,165,235,57,172,232,234,57,77,43,234,57,215,109,233,57,75,176,232,57,169,242,231,57,241,52,231,57,35,119,230,57,64,185,229,57,71,251,228,57,56,61,228,57,19,127,227,57,218,192,226,57,138,2,226,57,38,68,225,57,172,133,224,57,29,199,223,57,121,8,223,57,193,73,222,57,243,138,221,57,16,204,
220,57,25,13,220,57,13,78,219,57,236,142,218,57,183,207,217,57,110,16,217,57,16,81,216,57,158,145,215,57,24,210,214,57,125,18,214,57,207,82,213,57,13,147,212,57,55,211,211,57,77,19,211,57,79,83,210,57,62,147,209,57,25,211,208,57,225,18,208,57,150,82,207,57,55,146,206,57,197,209,205,57,64,17,205,57,168,80,204,57,253,143,203,57,63,207,202,57,110,14,202,57,138,77,201,57,148,140,200,57,140,203,199,57,113,10,199,57,67,73,198,57,3,136,197,57,177,198,196,57,77,5,196,57,215,67,195,57,79,130,194,57,181,192,
193,57,9,255,192,57,75,61,192,57,124,123,191,57,155,185,190,57,169,247,189,57,165,53,189,57,144,115,188,57,105,177,187,57,50,239,186,57,233,44,186,57,144,106,185,57,37,168,184,57,170,229,183,57,30,35,183,57,129,96,182,57,212,157,181,57,22,219,180,57,72,24,180,57,105,85,179,57,122,146,178,57,123,207,177,57,108,12,177,57,77,73,176,57,29,134,175,57,223,194,174,57,144,255,173,57,49,60,173,57,195,120,172,57,70,181,171,57,185,241,170,57,28,46,170,57,113,106,169,57,182,166,168,57,236,226,167,57,19,31,167,
57,43,91,166,57,52,151,165,57,47,211,164,57,26,15,164,57,248,74,163,57,198,134,162,57,134,194,161,57,56,254,160,57,219,57,160,57,113,117,159,57,248,176,158,57,113,236,157,57,220,39,157,57,57,99,156,57,137,158,155,57,203,217,154,57,255,20,154,57,37,80,153,57,62,139,152,57,74,198,151,57,73,1,151,57,58,60,150,57,30,119,149,57,245,177,148,57,191,236,147,57,124,39,147,57,45,98,146,57,208,156,145,57,103,215,144,57,242,17,144,57,112,76,143,57,225,134,142,57,71,193,141,57,160,251,140,57,237,53,140,57,46,
112,139,57,99,170,138,57,140,228,137,57,169,30,137,57,186,88,136,57,192,146,135,57,187,204,134,57,170,6,134,57,141,64,133,57,101,122,132,57,50,180,131,57,244,237,130,57,171,39,130,57,86,97,129,57,247,154,128,57,26,169,127,57,49,28,126,57,50,143,124,57,31,2,123,57,246,116,121,57,184,231,119,57,102,90,118,57,0,205,116,57,133,63,115,57,246,177,113,57,83,36,112,57,156,150,110,57,210,8,109,57,244,122,107,57,3,237,105,57,254,94,104,57,231,208,102,57,189,66,101,57,129,180,99,57,50,38,98,57,208,151,96,57,
93,9,95,57,215,122,93,57,64,236,91,57,151,93,90,57,221,206,88,57,17,64,87,57,53,177,85,57,71,34,84,57,73,147,82,57,57,4,81,57,26,117,79,57,234,229,77,57,170,86,76,57,90,199,74,57,251,55,73,57,139,168,71,57,13,25,70,57,127,137,68,57,225,249,66,57,53,106,65,57,122,218,63,57,177,74,62,57,217,186,60,57,243,42,59,57,254,154,57,57,252,10,56,57,236,122,54,57,206,234,52,57,163,90,51,57,107,202,49,57,37,58,48,57,211,169,46,57,116,25,45,57,8,137,43,57,144,248,41,57,11,104,40,57,122,215,38,57,222,70,37,57,53,
182,35,57,129,37,34,57,194,148,32,57,247,3,31,57,33,115,29,57,65,226,27,57,85,81,26,57,95,192,24,57,94,47,23,57,83,158,21,57,63,13,20,57,32,124,18,57,247,234,16,57,197,89,15,57,137,200,13,57,68,55,12,57,246,165,10,57,159,20,9,57,64,131,7,57,215,241,5,57,103,96,4,57,238,206,2,57,108,61,1,57,199,87,255,56,165,52,252,56,117,17,249,56,53,238,245,56,231,202,242,56,139,167,239,56,33,132,236,56,169,96,233,56,37,61,230,56,147,25,227,56,245,245,223,56,75,210,220,56,149,174,217,56,211,138,214,56,7,103,211,
56,47,67,208,56,77,31,205,56,97,251,201,56,107,215,198,56,108,179,195,56,99,143,192,56,82,107,189,56,56,71,186,56,22,35,183,56,236,254,179,56,186,218,176,56,130,182,173,56,67,146,170,56,253,109,167,56,177,73,164,56,96,37,161,56,8,1,158,56,172,220,154,56,75,184,151,56,230,147,148,56,124,111,145,56,15,75,142,56,158,38,139,56,42,2,136,56,179,221,132,56,58,185,129,56,125,41,125,56,131,224,118,56,133,151,112,56,134,78,106,56,133,5,100,56,131,188,93,56,129,115,87,56,128,42,81,56,127,225,74,56,129,152,68,
56,133,79,62,56,140,6,56,56,150,189,49,56,166,116,43,56,186,43,37,56,212,226,30,56,245,153,24,56,29,81,18,56,76,8,12,56,132,191,5,56,139,237,254,55,33,92,242,55,204,202,229,55,142,57,217,55,103,168,204,55,89,23,192,55,101,134,179,55,141,245,166,55,210,100,154,55,54,212,141,55,185,67,129,55,186,102,105,55,70,70,80,55,27,38,55,55,57,6,30,55,164,230,4,55,188,142,215,54,213,80,165,54,45,39,102,54,15,174,1,54,197,178,233,52,213,127,142,181,176,180,43,182,247,19,136,182,204,76,186,182,211,132,236,182,3,
94,15,183,47,121,40,183,236,147,65,183,55,174,90,183,13,200,115,183,182,112,134,183,41,253,146,183,93,137,159,183,81,21,172,183,4,161,184,183,117,44,197,183,162,183,209,183,139,66,222,183,45,205,234,183,135,87,247,183,204,240,1,184,175,53,8,184,109,122,14,184,4,191,20,184,116,3,27,184,188,71,33,184,220,139,39,184,210,207,45,184,158,19,52,184,65,87,58,184,183,154,64,184,3,222,70,184,33,33,77,184,19,100,83,184,214,166,89,184,107,233,95,184,209,43,102,184,7,110,108,184,13,176,114,184,226,241,120,184,
132,51,127,184,122,186,130,184,25,219,133,184,158,251,136,184,8,28,140,184,88,60,143,184,141,92,146,184,167,124,149,184,165,156,152,184,135,188,155,184,78,220,158,184,247,251,161,184,132,27,165,184,243,58,168,184,69,90,171,184,122,121,174,184,143,152,177,184,135,183,180,184,95,214,183,184,25,245,186,184,178,19,190,184,44,50,193,184,134,80,196,184,191,110,199,184,216,140,202,184,207,170,205,184,165,200,208,184,89,230,211,184,234,3,215,184,90,33,218,184,166,62,221,184,207,91,224,184,213,120,227,184,
183,149,230,184,117,178,233,184,14,207,236,184,131,235,239,184,210,7,243,184,252,35,246,184,1,64,249,184,223,91,252,184,150,119,255,184,148,73,1,185,72,215,2,185,234,100,4,185,119,242,5,185,240,127,7,185,85,13,9,185,166,154,10,185,226,39,12,185,9,181,13,185,28,66,15,185,25,207,16,185,2,92,18,185,213,232,19,185,146,117,21,185,58,2,23,185,204,142,24,185,72,27,26,185,174,167,27,185,253,51,29,185,54,192,30,185,88,76,32,185,100,216,33,185,88,100,35,185,53,240,36,185,251,123,38,185,170,7,40,185,64,147,
41,185,191,30,43,185,38,170,44,185,117,53,46,185,172,192,47,185,202,75,49,185,208,214,50,185,188,97,52,185,144,236,53,185,75,119,55,185,236,1,57,185,116,140,58,185,226,22,60,185,55,161,61,185,114,43,63,185,146,181,64,185,153,63,66,185,132,201,67,185,86,83,69,185,12,221,70,185,168,102,72,185,41,240,73,185,142,121,75,185,216,2,77,185,6,140,78,185,25,21,80,185,16,158,81,185,235,38,83,185,170,175,84,185,76,56,86,185,210,192,87,185,59,73,89,185,135,209,90,185,182,89,92,185,200,225,93,185,189,105,95,185,
148,241,96,185,78,121,98,185,234,0,100,185,104,136,101,185,199,15,103,185,9,151,104,185,44,30,106,185,48,165,107,185,21,44,109,185,220,178,110,185,131,57,112,185,12,192,113,185,117,70,115,185,190,204,116,185,231,82,118,185,241,216,119,185,218,94,121,185,164,228,122,185,77,106,124,185,213,239,125,185,61,117,127,185,66,125,128,185,213,63,129,185,87,2,130,185,201,196,130,185,41,135,131,185,121,73,132,185,185,11,133,185,231,205,133,185,4,144,134,185,16,82,135,185,10,20,136,185,244,213,136,185,204,151,
137,185,146,89,138,185,71,27,139,185,235,220,139,185,124,158,140,185,252,95,141,185,106,33,142,185,198,226,142,185,16,164,143,185,72,101,144,185,110,38,145,185,129,231,145,185,130,168,146,185,113,105,147,185,77,42,148,185,23,235,148,185,206,171,149,185,114,108,150,185,3,45,151,185,130,237,151,185,237,173,152,185,70,110,153,185,139,46,154,185,189,238,154,185,220,174,155,185,231,110,156,185,223,46,157,185,196,238,157,185,149,174,158,185,82,110,159,185,251,45,160,185,145,237,160,185,18,173,161,185,128,
108,162,185,217,43,163,185,31,235,163,185,80,170,164,185,109,105,165,185,117,40,166,185,105,231,166,185,73,166,167,185,19,101,168,185,202,35,169,185,107,226,169,185,247,160,170,185,111,95,171,185,209,29,172,185,31,220,172,185,87,154,173,185,122,88,174,185,136,22,175,185,128,212,175,185,99,146,176,185,48,80,177,185,231,13,178,185,137,203,178,185,21,137,179,185,139,70,180,185,236,3,181,185,54,193,181,185,106,126,182,185,136,59,183,185,143,248,183,185,129,181,184,185,92,114,185,185,32,47,186,185,206,
235,186,185,101,168,187,185,229,100,188,185,79,33,189,185,162,221,189,185,222,153,190,185,2,86,191,185,16,18,192,185,6,206,192,185,230,137,193,185,174,69,194,185,94,1,195,185,247,188,195,185,120,120,196,185,226,51,197,185,52,239,197,185,110,170,198,185,145,101,199,185,155,32,200,185,141,219,200,185,104,150,201,185,42,81,202,185,212,11,203,185,101,198,203,185,222,128,204,185,63,59,205,185,135,245,205,185,182,175,206,185,205,105,207,185,203,35,208,185,176,221,208,185,124,151,209,185,47,81,210,185,201,
10,211,185,73,196,211,185,177,125,212,185,255,54,213,185,52,240,213,185,79,169,214,185,81,98,215,185,57,27,216,185,8,212,216,185,188,140,217,185,87,69,218,185,216,253,218,185,63,182,219,185,140,110,220,185,190,38,221,185,215,222,221,185,213,150,222,185,185,78,223,185,130,6,224,185,49,190,224,185,197,117,225,185,62,45,226,185,157,228,226,185,225,155,227,185,10,83,228,185,24,10,229,185,11,193,229,185,227,119,230,185,160,46,231,185,65,229,231,185,199,155,232,185,50,82,233,185,129,8,234,185,181,190,234,
185,204,116,235,185,201,42,236,185,169,224,236,185,110,150,237,185,22,76,238,185,163,1,239,185,19,183,239,185,104,108,240,185,160,33,241,185,187,214,241,185,187,139,242,185,158,64,243,185,100,245,243,185,14,170,244,185,155,94,245,185,11,19,246,185,95,199,246,185,150,123,247,185,175,47,248,185,172,227,248,185,139,151,249,185,78,75,250,185,243,254,250,185,122,178,251,185,229,101,252,185,49,25,253,185,97,204,253,185,114,127,254,185,102,50,255,185,60,229,255,185,250,75,0,186,71,165,0,186,134,254,0,186,
181,87,1,186,213,176,1,186,230,9,2,186,232,98,2,186,218,187,2,186,190,20,3,186,146,109,3,186,87,198,3,186,12,31,4,186,179,119,4,186,74,208,4,186,209,40,5,186,73,129,5,186,177,217,5,186,10,50,6,186,84,138,6,186,141,226,6,186,183,58,7,186,210,146,7,186,220,234,7,186,215,66,8,186,194,154,8,186,158,242,8,186,105,74,9,186,37,162,9,186,208,249,9,186,108,81,10,186,248,168,10,186,115,0,11,186,223,87,11,186,58,175,11,186,133,6,12,186,192,93,12,186,235,180,12,186,6,12,13,186,16,99,13,186,10,186,13,186,244,
16,14,186,205,103,14,186,150,190,14,186,79,21,15,186,246,107,15,186,142,194,15,186,21,25,16,186,139,111,16,186,240,197,16,186,69,28,17,186,137,114,17,186,189,200,17,186,224,30,18,186,241,116,18,186,242,202,18,186,227,32,19,186,194,118,19,186,144,204,19,186,77,34,20,186,249,119,20,186,149,205,20,186,31,35,21,186,152,120,21,186,0,206,21,186,86,35,22,186,156,120,22,186,208,205,22,186,243,34,23,186,4,120,23,186,4,205,23,186,243,33,24,186,208,118,24,186,156,203,24,186,86,32,25,186,255,116,25,186,150,201,
25,186,28,30,26,186,144,114,26,186,242,198,26,186,67,27,27,186,130,111,27,186,175,195,27,186,202,23,28,186,212,107,28,186,203,191,28,186,177,19,29,186,133,103,29,186,70,187,29,186,246,14,30,186,148,98,30,186,31,182,30,186,153,9,31,186,0,93,31,186,85,176,31,186,152,3,32,186,201,86,32,186,231,169,32,186,243,252,32,186,237,79,33,186,212,162,33,186,169,245,33,186,108,72,34,186,28,155,34,186,185,237,34,186,68,64,35,186,188,146,35,186,34,229,35,186,117,55,36,186,181,137,36,186,227,219,36,186,254,45,37,
186,6,128,37,186,251,209,37,186,222,35,38,186,173,117,38,186,106,199,38,186,20,25,39,186,171,106,39,186,46,188,39,186,159,13,40,186,253,94,40,186,71,176,40,186,126,1,41,186,163,82,41,186,180,163,41,186,177,244,41,186,156,69,42,186,115,150,42,186,55,231,42,186,231,55,43,186,132,136,43,186,14,217,43,186,132,41,44,186,231,121,44,186,54,202,44,186,113,26,45,186,153,106,45,186,173,186,45,186,174,10,46,186,155,90,46,186,116,170,46,186,57,250,46,186,235,73,47,186,137,153,47,186,19,233,47,186,137,56,48,186,
235,135,48,186,57,215,48,186,116,38,49,186,154,117,49,186,172,196,49,186,170,19,50,186,148,98,50,186,106,177,50,186,44,0,51,186,217,78,51,186,114,157,51,186,247,235,51,186,104,58,52,186,196,136,52,186,12,215,52,186,64,37,53,186,95,115,53,186,105,193,53,186,96,15,54,186,65,93,54,186,14,171,54,186,199,248,54,186,107,70,55,186,250,147,55,186,117,225,55,186,219,46,56,186,44,124,56,186,104,201,56,186,144,22,57,186,163,99,57,186,160,176,57,186,137,253,57,186,94,74,58,186,29,151,58,186,199,227,58,186,92,
48,59,186,220,124,59,186,71,201,59,186,157,21,60,186,222,97,60,186,9,174,60,186,32,250,60,186,33,70,61,186,13,146,61,186,227,221,61,186,165,41,62,186,81,117,62,186,231,192,62,186,104,12,63,186,212,87,63,186,42,163,63,186,107,238,63,186,150,57,64,186,172,132,64,186,172,207,64,186,151,26,65,186,107,101,65,186,42,176,65,186,212,250,65,186,103,69,66,186,229,143,66,186,77,218,66,186,160,36,67,186,220,110,67,186,3,185,67,186,19,3,68,186,14,77,68,186,243,150,68,186,193,224,68,186,122,42,69,186,28,116,69,
186,169,189,69,186,31,7,70,186,127,80,70,186,201,153,70,186,253,226,70,186,27,44,71,186,34,117,71,186,19,190,71,186,238,6,72,186,178,79,72,186,96,152,72,186,247,224,72,186,120,41,73,186,227,113,73,186,55,186,73,186,116,2,74,186,155,74,74,186,172,146,74,186,166,218,74,186,137,34,75,186,85,106,75,186,11,178,75,186,170,249,75,186,50,65,76,186,164,136,76,186,254,207,76,186,66,23,77,186,111,94,77,186,133,165,77,186,132,236,77,186,108,51,78,186,61,122,78,186,247,192,78,186,154,7,79,186,38,78,79,186,155,
148,79,186,249,218,79,186,64,33,80,186,111,103,80,186,135,173,80,186,136,243,80,186,114,57,81,186,68,127,81,186,0,197,81,186,163,10,82,186,48,80,82,186,165,149,82,186,2,219,82,186,72,32,83,186,119,101,83,186,142,170,83,186,142,239,83,186,117,52,84,186,70,121,84,186,255,189,84,186,160,2,85,186,41,71,85,186,155,139,85,186,245,207,85,186,55,20,86,186,97,88,86,186,116,156,86,186,111,224,86,186,82,36,87,186,29,104,87,186,208,171,87,186,107,239,87,186,238,50,88,186,89,118,88,186,172,185,88,186,231,252,
88,186,10,64,89,186,21,131,89,186,8,198,89,186,226,8,90,186,165,75,90,186,79,142,90,186,225,208,90,186,91,19,91,186,188,85,91,186,5,152,91,186,54,218,91,186,78,28,92,186,78,94,92,186,54,160,92,186,5,226,92,186,187,35,93,186,89,101,93,186,223,166,93,186,76,232,93,186,160,41,94,186,220,106,94,186,255,171,94,186,10,237,94,186,252,45,95,186,213,110,95,186,149,175,95,186,61,240,95,186,204,48,96,186,66,113,96,186,159,177,96,186,227,241,96,186,15,50,97,186,33,114,97,186,27,178,97,186,252,241,97,186,195,
49,98,186,114,113,98,186,7,177,98,186,132,240,98,186,232,47,99,186,50,111,99,186,99,174,99,186,123,237,99,186,122,44,100,186,96,107,100,186,44,170,100,186,223,232,100,186,121,39,101,186,250,101,101,186,97,164,101,186,175,226,101,186,227,32,102,186,254,94,102,186,0,157,102,186,232,218,102,186,183,24,103,186,108,86,103,186,8,148,103,186,138,209,103,186,242,14,104,186,65,76,104,186,119,137,104,186,146,198,104,186,148,3,105,186,125,64,105,186,75,125,105,186,0,186,105,186,155,246,105,186,28,51,106,186,
132,111,106,186,209,171,106,186,5,232,106,186,31,36,107,186,31,96,107,186,5,156,107,186,209,215,107,186,131,19,108,186,27,79,108,186,153,138,108,186,253,197,108,186,71,1,109,186,119,60,109,186,140,119,109,186,136,178,109,186,105,237,109,186,48,40,110,186,221,98,110,186,112,157,110,186,233,215,110,186,71,18,111,186,139,76,111,186,180,134,111,186,195,192,111,186,184,250,111,186,147,52,112,186,83,110,112,186,248,167,112,186,131,225,112,186,244,26,113,186,74,84,113,186,134,141,113,186,167,198,113,186,
173,255,113,186,153,56,114,186,106,113,114,186,33,170,114,186,189,226,114,186,62,27,115,186,165,83,115,186,241,139,115,186,34,196,115,186,56,252,115,186,52,52,116,186,20,108,116,186,218,163,116,186,133,219,116,186,21,19,117,186,138,74,117,186,229,129,117,186,36,185,117,186,72,240,117,186,82,39,118,186,64,94,118,186,20,149,118,186,204,203,118,186,105,2,119,186,235,56,119,186,82,111,119,186,158,165,119,186,207,219,119,186,228,17,120,186,223,71,120,186,190,125,120,186,130,179,120,186,42,233,120,186,
183,30,121,186,42,84,121,186,128,137,121,186,188,190,121,186,220,243,121,186,224,40,122,186,201,93,122,186,151,146,122,186,73,199,122,186,224,251,122,186,92,48,123,186,187,100,123,186,0,153,123,186,40,205,123,186,54,1,124,186,39,53,124,186,253,104,124,186,184,156,124,186,86,208,124,186,217,3,125,186,65,55,125,186,140,106,125,186,188,157,125,186,209,208,125,186,201,3,126,186,166,54,126,186,102,105,126,186,11,156,126,186,148,206,126,186,2,1,127,186,83,51,127,186,137,101,127,186,162,151,127,186,160,
201,127,186,129,251,127,186,164,22,128,186,120,47,128,186,63,72,128,186,248,96,128,186,163,121,128,186,64,146,128,186,206,170,128,186,79,195,128,186,193,219,128,186,38,244,128,186,124,12,129,186,197,36,129,186,255,60,129,186,43,85,129,186,73,109,129,186,89,133,129,186,90,157,129,186,78,181,129,186,51,205,129,186,11,229,129,186,212,252,129,186,142,20,130,186,59,44,130,186,218,67,130,186,106,91,130,186,236,114,130,186,96,138,130,186,197,161,130,186,28,185,130,186,102,208,130,186,160,231,130,186,205,
254,130,186,235,21,131,186,251,44,131,186,253,67,131,186,240,90,131,186,213,113,131,186,172,136,131,186,116,159,131,186,46,182,131,186,217,204,131,186,119,227,131,186,6,250,131,186,134,16,132,186,248,38,132,186,92,61,132,186,177,83,132,186,248,105,132,186,49,128,132,186,91,150,132,186,118,172,132,186,131,194,132,186,130,216,132,186,114,238,132,186,84,4,133,186,39,26,133,186,236,47,133,186,162,69,133,186,74,91,133,186,228,112,133,186,110,134,133,186,234,155,133,186,88,177,133,186,183,198,133,186,8,
220,133,186,74,241,133,186,125,6,134,186,162,27,134,186,184,48,134,186,192,69,134,186,185,90,134,186,164,111,134,186,128,132,134,186,77,153,134,186,11,174,134,186,187,194,134,186,93,215,134,186,239,235,134,186,115,0,135,186,233,20,135,186,79,41,135,186,167,61,135,186,240,81,135,186,43,102,135,186,87,122,135,186,116,142,135,186,130,162,135,186,130,182,135,186,115,202,135,186,85,222,135,186,40,242,135,186,237,5,136,186,163,25,136,186,74,45,136,186,226,64,136,186,108,84,136,186,231,103,136,186,83,123,
136,186,176,142,136,186,254,161,136,186,61,181,136,186,110,200,136,186,144,219,136,186,163,238,136,186,167,1,137,186,156,20,137,186,130,39,137,186,90,58,137,186,34,77,137,186,220,95,137,186,135,114,137,186,35,133,137,186,176,151,137,186,46,170,137,186,157,188,137,186,253,206,137,186,78,225,137,186,144,243,137,186,196,5,138,186,232,23,138,186,253,41,138,186,4,60,138,186,251,77,138,186,228,95,138,186,189,113,138,186,136,131,138,186,67,149,138,186,240,166,138,186,141,184,138,186,27,202,138,186,155,219,
138,186,11,237,138,186,108,254,138,186,191,15,139,186,2,33,139,186,54,50,139,186,91,67,139,186,113,84,139,186,120,101,139,186,112,118,139,186,88,135,139,186,50,152,139,186,252,168,139,186,184,185,139,186,100,202,139,186,1,219,139,186,143,235,139,186,14,252,139,186,126,12,140,186,222,28,140,186,48,45,140,186,114,61,140,186,165,77,140,186,201,93,140,186,222,109,140,186,227,125,140,186,217,141,140,186,193,157,140,186,153,173,140,186,97,189,140,186,27,205,140,186,197,220,140,186,96,236,140,186,236,251,
140,186,105,11,141,186,214,26,141,186,52,42,141,186,131,57,141,186,194,72,141,186,243,87,141,186,20,103,141,186,38,118,141,186,40,133,141,186,27,148,141,186,255,162,141,186,212,177,141,186,153,192,141,186,79,207,141,186,246,221,141,186,141,236,141,186,21,251,141,186,142,9,142,186,248,23,142,186,82,38,142,186,156,52,142,186,216,66,142,186,4,81,142,186,32,95,142,186,46,109,142,186,44,123,142,186,26,137,142,186,249,150,142,186,201,164,142,186,137,178,142,186,58,192,142,186,220,205,142,186,110,219,142,
186,241,232,142,186,100,246,142,186,200,3,143,186,29,17,143,186,98,30,143,186,152,43,143,186,190,56,143,186,213,69,143,186,220,82,143,186,212,95,143,186,189,108,143,186,150,121,143,186,95,134,143,186,25,147,143,186,196,159,143,186,95,172,143,186,235,184,143,186,103,197,143,186,211,209,143,186,49,222,143,186,126,234,143,186,188,246,143,186,235,2,144,186,10,15,144,186,26,27,144,186,26,39,144,186,11,51,144,186,236,62,144,186,189,74,144,186,127,86,144,186,50,98,144,186,213,109,144,186,104,121,144,186,
236,132,144,186,96,144,144,186,197,155,144,186,26,167,144,186,96,178,144,186,150,189,144,186,188,200,144,186,211,211,144,186,218,222,144,186,210,233,144,186,186,244,144,186,147,255,144,186,92,10,145,186,21,21,145,186,191,31,145,186,89,42,145,186,227,52,145,186,94,63,145,186,201,73,145,186,37,84,145,186,113,94,145,186,173,104,145,186,218,114,145,186,247,124,145,186,5,135,145,186,3,145,145,186,241,154,145,186,208,164,145,186,158,174,145,186,94,184,145,186,13,194,145,186,173,203,145,186,62,213,145,186,
190,222,145,186,47,232,145,186,144,241,145,186,226,250,145,186,36,4,146,186,86,13,146,186,121,22,146,186,140,31,146,186,143,40,146,186,130,49,146,186,102,58,146,186,58,67,146,186,255,75,146,186,179,84,146,186,88,93,146,186,238,101,146,186,115,110,146,186,233,118,146,186,79,127,146,186,166,135,146,186,236,143,146,186,35,152,146,186,74,160,146,186,98,168,146,186,106,176,146,186,98,184,146,186,74,192,146,186,35,200,146,186,235,207,146,186,165,215,146,186,78,223,146,186,231,230,146,186,113,238,146,186,
235,245,146,186,86,253,146,186,176,4,147,186,251,11,147,186,54,19,147,186,97,26,147,186,125,33,147,186,137,40,147,186,133,47,147,186,113,54,147,186,77,61,147,186,26,68,147,186,215,74,147,186,132,81,147,186,33,88,147,186,175,94,147,186,44,101,147,186,154,107,147,186,249,113,147,186,71,120,147,186,134,126,147,186,180,132,147,186,211,138,147,186,227,144,147,186,226,150,147,186,210,156,147,186,177,162,147,186,129,168,147,186,65,174,147,186,242,179,147,186,146,185,147,186,35,191,147,186,164,196,147,186,
21,202,147,186,119,207,147,186,200,212,147,186,10,218,147,186,60,223,147,186,94,228,147,186,112,233,147,186,114,238,147,186,101,243,147,186,72,248,147,186,27,253,147,186,222,1,148,186,145,6,148,186,52,11,148,186,200,15,148,186,76,20,148,186,192,24,148,186,36,29,148,186,120,33,148,186,189,37,148,186,241,41,148,186,22,46,148,186,43,50,148,186],"i8",4,y.a+675840);
Q([48,54,148,186,37,58,148,186,11,62,148,186,224,65,148,186,166,69,148,186,92,73,148,186,2,77,148,186,152,80,148,186,31,84,148,186,149,87,148,186,252,90,148,186,83,94,148,186,154,97,148,186,209,100,148,186,248,103,148,186,16,107,148,186,23,110,148,186,15,113,148,186,247,115,148,186,207,118,148,186,151,121,148,186,80,124,148,186,248,126,148,186,145,129,148,186,26,132,148,186,147,134,148,186,252,136,148,186,85,139,148,186,159,141,148,186,216,143,148,186,2,146,148,186,28,148,148,186,38,150,148,186,32,
152,148,186,11,154,148,186,229,155,148,186,176,157,148,186,107,159,148,186,22,161,148,186,177,162,148,186,60,164,148,186,183,165,148,186,35,167,148,186,127,168,148,186,202,169,148,186,6,171,148,186,51,172,148,186,79,173,148,186,91,174,148,186,88,175,148,186,69,176,148,186,34,177,148,186,239,177,148,186,172,178,148,186,90,179,148,186,247,179,148,186,133,180,148,186,3,181,148,186,113,181,148,186,207,181,148,186,29,182,148,186,92,182,148,186,139,182,148,186,170,182,148,186,185,182,148,186,184,182,148,
186,167,182,148,186,135,182,148,186,86,182,148,186,22,182,148,186,198,181,148,186,103,181,148,186,247,180,148,186,120,180,148,186,232,179,148,186,73,179,148,186,154,178,148,186,220,177,148,186,13,177,148,186,47,176,148,186,65,175,148,186,67,174,148,186,53,173,148,186,23,172,148,186,234,170,148,186,172,169,148,186,95,168,148,186,2,167,148,186,150,165,148,186,25,164,148,186,141,162,148,186,241,160,148,186,69,159,148,186,137,157,148,186,190,155,148,186,227,153,148,186,248,151,148,186,253,149,148,186,
242,147,148,186,216,145,148,186,173,143,148,186,115,141,148,186,42,139,148,186,208,136,148,186,103,134,148,186,238,131,148,186,101,129,148,186,204,126,148,186,35,124,148,186,107,121,148,186,163,118,148,186,203,115,148,186,228,112,148,186,237,109,148,186,230,106,148,186,207,103,148,186,168,100,148,186,114,97,148,186,44,94,148,186,214,90,148,186,113,87,148,186,251,83,148,186,118,80,148,186,225,76,148,186,61,73,148,186,137,69,148,186,197,65,148,186,241,61,148,186,14,58,148,186,26,54,148,186,24,50,148,
186,5,46,148,186,227,41,148,186,177,37,148,186,111,33,148,186,29,29,148,186,188,24,148,186,75,20,148,186,203,15,148,186,59,11,148,186,155,6,148,186,235,1,148,186,44,253,147,186,93,248,147,186,126,243,147,186,143,238,147,186,145,233,147,186,132,228,147,186,102,223,147,186,57,218,147,186,252,212,147,186,176,207,147,186,84,202,147,186,232,196,147,186,109,191,147,186,226,185,147,186,71,180,147,186,157,174,147,186,227,168,147,186,25,163,147,186,64,157,147,186,87,151,147,186,95,145,147,186,87,139,147,186,
63,133,147,186,24,127,147,186,225,120,147,186,154,114,147,186,68,108,147,186,222,101,147,186,105,95,147,186,228,88,147,186,79,82,147,186,171,75,147,186,247,68,147,186,52,62,147,186,97,55,147,186,127,48,147,186,141,41,147,186,139,34,147,186,122,27,147,186,89,20,147,186,41,13,147,186,233,5,147,186,153,254,146,186,59,247,146,186,204,239,146,186,78,232,146,186,193,224,146,186,36,217,146,186,119,209,146,186,187,201,146,186,239,193,146,186,20,186,146,186,41,178,146,186,47,170,146,186,38,162,146,186,13,
154,146,186,228,145,146,186,172,137,146,186,100,129,146,186,13,121,146,186,167,112,146,186,49,104,146,186,171,95,146,186,22,87,146,186,114,78,146,186,190,69,146,186,251,60,146,186,40,52,146,186,70,43,146,186,84,34,146,186,83,25,146,186,67,16,146,186,35,7,146,186,244,253,145,186,181,244,145,186,103,235,145,186,10,226,145,186,157,216,145,186,32,207,145,186,149,197,145,186,250,187,145,186,79,178,145,186,150,168,145,186,205,158,145,186,244,148,145,186,12,139,145,186,21,129,145,186,14,119,145,186,249,
108,145,186,211,98,145,186,159,88,145,186,91,78,145,186,8,68,145,186,165,57,145,186,51,47,145,186,178,36,145,186,34,26,145,186,130,15,145,186,211,4,145,186,21,250,144,186,71,239,144,186,106,228,144,186,126,217,144,186,131,206,144,186,120,195,144,186,94,184,144,186,53,173,144,186,253,161,144,186,181,150,144,186,94,139,144,186,248,127,144,186,131,116,144,186,255,104,144,186,107,93,144,186,200,81,144,186,22,70,144,186,85,58,144,186,132,46,144,186,165,34,144,186,182,22,144,186,184,10,144,186,171,254,
143,186,142,242,143,186,99,230,143,186,40,218,143,186,223,205,143,186,134,193,143,186,30,181,143,186,167,168,143,186,33,156,143,186,139,143,143,186,231,130,143,186,51,118,143,186,113,105,143,186,159,92,143,186,190,79,143,186,207,66,143,186,208,53,143,186,194,40,143,186,165,27,143,186,121,14,143,186,62,1,143,186,244,243,142,186,154,230,142,186,50,217,142,186,187,203,142,186,53,190,142,186,160,176,142,186,252,162,142,186,73,149,142,186,134,135,142,186,181,121,142,186,213,107,142,186,230,93,142,186,
232,79,142,186,219,65,142,186,192,51,142,186,149,37,142,186,91,23,142,186,18,9,142,186,187,250,141,186,84,236,141,186,223,221,141,186,91,207,141,186,200,192,141,186,38,178,141,186,117,163,141,186,181,148,141,186,230,133,141,186,9,119,141,186,29,104,141,186,33,89,141,186,24,74,141,186,255,58,141,186,215,43,141,186,161,28,141,186,92,13,141,186,8,254,140,186,165,238,140,186,51,223,140,186,179,207,140,186,36,192,140,186,134,176,140,186,217,160,140,186,30,145,140,186,84,129,140,186,123,113,140,186,147,
97,140,186,157,81,140,186,152,65,140,186,133,49,140,186,98,33,140,186,49,17,140,186,241,0,140,186,163,240,139,186,70,224,139,186,218,207,139,186,96,191,139,186,215,174,139,186,63,158,139,186,153,141,139,186,228,124,139,186,33,108,139,186,79,91,139,186,110,74,139,186,127,57,139,186,129,40,139,186,117,23,139,186,90,6,139,186,49,245,138,186,248,227,138,186,178,210,138,186,93,193,138,186,249,175,138,186,135,158,138,186,7,141,138,186,119,123,138,186,218,105,138,186,46,88,138,186,115,70,138,186,170,52,
138,186,211,34,138,186,237,16,138,186,249,254,137,186,246,236,137,186,229,218,137,186,197,200,137,186,151,182,137,186,91,164,137,186,16,146,137,186,183,127,137,186,79,109,137,186,217,90,137,186,85,72,137,186,195,53,137,186,34,35,137,186,114,16,137,186,181,253,136,186,233,234,136,186,15,216,136,186,38,197,136,186,47,178,136,186,42,159,136,186,23,140,136,186,246,120,136,186,198,101,136,186,136,82,136,186,59,63,136,186,225,43,136,186,120,24,136,186,1,5,136,186,124,241,135,186,233,221,135,186,71,202,
135,186,152,182,135,186,218,162,135,186,14,143,135,186,52,123,135,186,75,103,135,186,85,83,135,186,81,63,135,186,62,43,135,186,29,23,135,186,239,2,135,186,178,238,134,186,103,218,134,186,14,198,134,186,167,177,134,186,50,157,134,186,175,136,134,186,29,116,134,186,126,95,134,186,209,74,134,186,22,54,134,186,77,33,134,186,118,12,134,186,145,247,133,186,158,226,133,186,157,205,133,186,142,184,133,186,113,163,133,186,70,142,133,186,13,121,133,186,199,99,133,186,114,78,133,186,16,57,133,186,160,35,133,
186,34,14,133,186,150,248,132,186,252,226,132,186,84,205,132,186,159,183,132,186,220,161,132,186,11,140,132,186,44,118,132,186,63,96,132,186,69,74,132,186,61,52,132,186,39,30,132,186,3,8,132,186,210,241,131,186,147,219,131,186,70,197,131,186,235,174,131,186,131,152,131,186,13,130,131,186,138,107,131,186,249,84,131,186,90,62,131,186,173,39,131,186,243,16,131,186,43,250,130,186,86,227,130,186,115,204,130,186,130,181,130,186,132,158,130,186,121,135,130,186,95,112,130,186,56,89,130,186,4,66,130,186,194,
42,130,186,115,19,130,186,22,252,129,186,171,228,129,186,52,205,129,186,174,181,129,186,27,158,129,186,123,134,129,186,205,110,129,186,18,87,129,186,74,63,129,186,116,39,129,186,144,15,129,186,159,247,128,186,161,223,128,186,150,199,128,186,125,175,128,186,86,151,128,186,35,127,128,186,226,102,128,186,148,78,128,186,56,54,128,186,207,29,128,186,89,5,128,186,172,217,127,186,138,168,127,186,79,119,127,186,248,69,127,186,136,20,127,186,252,226,126,186,87,177,126,186,151,127,126,186,189,77,126,186,200,
27,126,186,185,233,125,186,144,183,125,186,76,133,125,186,238,82,125,186,118,32,125,186,228,237,124,186,56,187,124,186,113,136,124,186,144,85,124,186,149,34,124,186,128,239,123,186,81,188,123,186,8,137,123,186,165,85,123,186,40,34,123,186,145,238,122,186,224,186,122,186,21,135,122,186,48,83,122,186,49,31,122,186,24,235,121,186,230,182,121,186,153,130,121,186,51,78,121,186,179,25,121,186,26,229,120,186,102,176,120,186,153,123,120,186,178,70,120,186,178,17,120,186,152,220,119,186,100,167,119,186,23,
114,119,186,176,60,119,186,48,7,119,186,150,209,118,186,226,155,118,186,22,102,118,186,47,48,118,186,48,250,117,186,22,196,117,186,228,141,117,186,152,87,117,186,51,33,117,186,180,234,116,186,29,180,116,186,108,125,116,186,162,70,116,186,190,15,116,186,193,216,115,186,172,161,115,186,125,106,115,186,53,51,115,186,212,251,114,186,90,196,114,186,198,140,114,186,26,85,114,186,85,29,114,186,119,229,113,186,128,173,113,186,112,117,113,186,71,61,113,186,5,5,113,186,171,204,112,186,55,148,112,186,171,91,
112,186,6,35,112,186,73,234,111,186,114,177,111,186,131,120,111,186,124,63,111,186,91,6,111,186,34,205,110,186,209,147,110,186,103,90,110,186,228,32,110,186,73,231,109,186,149,173,109,186,201,115,109,186,229,57,109,186,232,255,108,186,210,197,108,186,165,139,108,186,95,81,108,186,0,23,108,186,138,220,107,186,251,161,107,186,84,103,107,186,149,44,107,186,189,241,106,186,205,182,106,186,198,123,106,186,166,64,106,186,110,5,106,186,30,202,105,186,182,142,105,186,54,83,105,186,158,23,105,186,238,219,
104,186,39,160,104,186,71,100,104,186,79,40,104,186,64,236,103,186,25,176,103,186,218,115,103,186,131,55,103,186,21,251,102,186,142,190,102,186,240,129,102,186,59,69,102,186,110,8,102,186,137,203,101,186,141,142,101,186,121,81,101,186,78,20,101,186,11,215,100,186,176,153,100,186,63,92,100,186,181,30,100,186,21,225,99,186,93,163,99,186,142,101,99,186,167,39,99,186,169,233,98,186,148,171,98,186,104,109,98,186,36,47,98,186,202,240,97,186,88,178,97,186,207,115,97,186,47,53,97,186,120,246,96,186,170,183,
96,186,197,120,96,186,201,57,96,186,182,250,95,186,140,187,95,186,75,124,95,186,243,60,95,186,132,253,94,186,255,189,94,186,99,126,94,186,176,62,94,186,230,254,93,186,6,191,93,186,15,127,93,186,1,63,93,186,221,254,92,186,162,190,92,186,81,126,92,186,233,61,92,186,107,253,91,186,214,188,91,186,42,124,91,186,104,59,91,186,144,250,90,186,162,185,90,186,157,120,90,186,130,55,90,186,80,246,89,186,8,181,89,186,171,115,89,186,54,50,89,186,172,240,88,186,12,175,88,186,85,109,88,186,137,43,88,186,166,233,
87,186,173,167,87,186,159,101,87,186,122,35,87,186,63,225,86,186,239,158,86,186,136,92,86,186,12,26,86,186,122,215,85,186,210,148,85,186,21,82,85,186,65,15,85,186,88,204,84,186,90,137,84,186,69,70,84,186,27,3,84,186,220,191,83,186,135,124,83,186,28,57,83,186,156,245,82,186,7,178,82,186,91,110,82,186,155,42,82,186,197,230,81,186,218,162,81,186,217,94,81,186,196,26,81,186,153,214,80,186,88,146,80,186,3,78,80,186,152,9,80,186,24,197,79,186,131,128,79,186,217,59,79,186,26,247,78,186,70,178,78,186,93,
109,78,186,95,40,78,186,76,227,77,186,36,158,77,186,231,88,77,186,150,19,77,186,47,206,76,186,180,136,76,186,36,67,76,186,127,253,75,186,198,183,75,186,248,113,75,186,21,44,75,186,30,230,74,186,18,160,74,186,241,89,74,186,188,19,74,186,115,205,73,186,21,135,73,186,163,64,73,186,28,250,72,186,129,179,72,186,209,108,72,186,14,38,72,186,54,223,71,186,73,152,71,186,73,81,71,186,52,10,71,186,12,195,70,186,207,123,70,186,126,52,70,186,25,237,69,186,160,165,69,186,19,94,69,186,114,22,69,186,189,206,68,186,
244,134,68,186,23,63,68,186,38,247,67,186,34,175,67,186,10,103,67,186,222,30,67,186,158,214,66,186,75,142,66,186,228,69,66,186,106,253,65,186,219,180,65,186,58,108,65,186,133,35,65,186,188,218,64,186,224,145,64,186,240,72,64,186,237,255,63,186,214,182,63,186,173,109,63,186,112,36,63,186,31,219,62,186,188,145,62,186,69,72,62,186,187,254,61,186,30,181,61,186,110,107,61,186,170,33,61,186,212,215,60,186,235,141,60,186,238,67,60,186,223,249,59,186,189,175,59,186,135,101,59,186,63,27,59,186,229,208,58,
186,119,134,58,186,246,59,58,186,99,241,57,186,189,166,57,186,5,92,57,186,58,17,57,186,92,198,56,186,108,123,56,186,105,48,56,186,83,229,55,186,43,154,55,186,241,78,55,186,164,3,55,186,69,184,54,186,212,108,54,186,80,33,54,186,186,213,53,186,18,138,53,186,87,62,53,186,138,242,52,186,172,166,52,186,187,90,52,186,183,14,52,186,162,194,51,186,123,118,51,186,66,42,51,186,247,221,50,186,154,145,50,186,43,69,50,186,170,248,49,186,24,172,49,186,115,95,49,186,189,18,49,186,245,197,48,186,28,121,48,186,48,
44,48,186,52,223,47,186,37,146,47,186,5,69,47,186,212,247,46,186,145,170,46,186,60,93,46,186,214,15,46,186,95,194,45,186,214,116,45,186,60,39,45,186,145,217,44,186,212,139,44,186,6,62,44,186,39,240,43,186,55,162,43,186,54,84,43,186,36,6,43,186,0,184,42,186,204,105,42,186,134,27,42,186,48,205,41,186,200,126,41,186,80,48,41,186,199,225,40,186,45,147,40,186,130,68,40,186,199,245,39,186,251,166,39,186,30,88,39,186,48,9,39,186,50,186,38,186,35,107,38,186,4,28,38,186,212,204,37,186,147,125,37,186,67,46,
37,186,225,222,36,186,112,143,36,186,238,63,36,186,91,240,35,186,185,160,35,186,6,81,35,186,67,1,35,186,112,177,34,186,140,97,34,186,153,17,34,186,149,193,33,186,129,113,33,186,94,33,33,186,42,209,32,186,231,128,32,186,147,48,32,186,48,224,31,186,188,143,31,186,57,63,31,186,167,238,30,186,4,158,30,186,82,77,30,186,144,252,29,186,190,171,29,186,221,90,29,186,237,9,29,186,236,184,28,186,221,103,28,186,189,22,28,186,143,197,27,186,81,116,27,186,3,35,27,186,167,209,26,186,59,128,26,186,192,46,26,186,
53,221,25,186,155,139,25,186,243,57,25,186,59,232,24,186,116,150,24,186,158,68,24,186,185,242,23,186,197,160,23,186,194,78,23,186,176,252,22,186,143,170,22,186,96,88,22,186,33,6,22,186,212,179,21,186,120,97,21,186,14,15,21,186,148,188,20,186,13,106,20,186,118,23,20,186,209,196,19,186,30,114,19,186,92,31,19,186,139,204,18,186,172,121,18,186,191,38,18,186,196,211,17,186,186,128,17,186,162,45,17,186,123,218,16,186,71,135,16,186,4,52,16,186,179,224,15,186,84,141,15,186,231,57,15,186,108,230,14,186,227,
146,14,186,76,63,14,186,167,235,13,186,244,151,13,186,52,68,13,186,101,240,12,186,137,156,12,186,159,72,12,186,167,244,11,186,162,160,11,186,143,76,11,186,110,248,10,186,64,164,10,186,4,80,10,186,187,251,9,186,101,167,9,186,1,83,9,186,143,254,8,186,17,170,8,186,133,85,8,186,235,0,8,186,69,172,7,186,145,87,7,186,208,2,7,186,2,174,6,186,39,89,6,186,62,4,6,186,73,175,5,186,71,90,5,186,56,5,5,186,28,176,4,186,243,90,4,186,189,5,4,186,122,176,3,186,43,91,3,186,207,5,3,186,102,176,2,186,241,90,2,186,111,
5,2,186,224,175,1,186,69,90,1,186,157,4,1,186,233,174,0,186,40,89,0,186,91,3,0,186,3,91,255,185,56,175,254,185,84,3,254,185,87,87,253,185,66,171,252,185,20,255,251,185,207,82,251,185,113,166,250,185,250,249,249,185,108,77,249,185,198,160,248,185,8,244,247,185,50,71,247,185,68,154,246,185,62,237,245,185,33,64,245,185,237,146,244,185,160,229,243,185,61,56,243,185,194,138,242,185,47,221,241,185,134,47,241,185,197,129,240,185,238,211,239,185,255,37,239,185,249,119,238,185,221,201,237,185,170,27,237,185,
96,109,236,185,255,190,235,185,137,16,235,185,251,97,234,185,87,179,233,185,157,4,233,185,205,85,232,185,230,166,231,185,233,247,230,185,215,72,230,185,174,153,229,185,112,234,228,185,27,59,228,185,177,139,227,185,50,220,226,185,156,44,226,185,242,124,225,185,49,205,224,185,92,29,224,185,113,109,223,185,113,189,222,185,92,13,222,185,50,93,221,185,243,172,220,185,159,252,219,185,54,76,219,185,184,155,218,185,38,235,217,185,127,58,217,185,195,137,216,185,243,216,215,185,15,40,215,185,22,119,214,185,
9,198,213,185,232,20,213,185,179,99,212,185,106,178,211,185,13,1,211,185,156,79,210,185,24,158,209,185,127,236,208,185,211,58,208,185,19,137,207,185,64,215,206,185,90,37,206,185,96,115,205,185,83,193,204,185,51,15,204,185,255,92,203,185,185,170,202,185,96,248,201,185,243,69,201,185,116,147,200,185,226,224,199,185,62,46,199,185,135,123,198,185,189,200,197,185,225,21,197,185,243,98,196,185,242,175,195,185,224,252,194,185,187,73,194,185,132,150,193,185,59,227,192,185,224,47,192,185,115,124,191,185,245,
200,190,185,101,21,190,185,195,97,189,185,16,174,188,185,75,250,187,185,117,70,187,185,141,146,186,185,149,222,185,185,139,42,185,185,112,118,184,185,69,194,183,185,8,14,183,185,186,89,182,185,92,165,181,185,237,240,180,185,109,60,180,185,221,135,179,185,61,211,178,185,140,30,178,185,202,105,177,185,249,180,176,185,23,0,176,185,37,75,175,185,35,150,174,185,18,225,173,185,240,43,173,185,191,118,172,185,126,193,171,185,45,12,171,185,205,86,170,185,93,161,169,185,222,235,168,185,80,54,168,185,178,128,
167,185,5,203,166,185,73,21,166,185,127,95,165,185,165,169,164,185,188,243,163,185,197,61,163,185,190,135,162,185,170,209,161,185,134,27,161,185,84,101,160,185,20,175,159,185,198,248,158,185,105,66,158,185,254,139,157,185,133,213,156,185,254,30,156,185,105,104,155,185,198,177,154,185,21,251,153,185,87,68,153,185,139,141,152,185,177,214,151,185,202,31,151,185,214,104,150,185,212,177,149,185,197,250,148,185,169,67,148,185,127,140,147,185,73,213,146,185,6,30,146,185,182,102,145,185,89,175,144,185,239,
247,143,185,121,64,143,185,246,136,142,185,103,209,141,185,203,25,141,185,35,98,140,185,111,170,139,185,175,242,138,185,226,58,138,185,10,131,137,185,37,203,136,185,53,19,136,185,57,91,135,185,49,163,134,185,29,235,133,185,254,50,133,185,212,122,132,185,158,194,131,185,93,10,131,185,16,82,130,185,185,153,129,185,86,225,128,185,232,40,128,185,224,224,126,185,217,111,125,185,188,254,123,185,138,141,122,185,67,28,121,185,231,170,119,185,118,57,118,185,240,199,116,185,85,86,115,185,166,228,113,185,226,
114,112,185,11,1,111,185,31,143,109,185,32,29,108,185,13,171,106,185,230,56,105,185,172,198,103,185,95,84,102,185,254,225,100,185,139,111,99,185,5,253,97,185,108,138,96,185,193,23,95,185,3,165,93,185,52,50,92,185,82,191,90,185,95,76,89,185,90,217,87,185,67,102,86,185,27,243,84,185,226,127,83,185,151,12,82,185,60,153,80,185,208,37,79,185,84,178,77,185,199,62,76,185,41,203,74,185,124,87,73,185,191,227,71,185,241,111,70,185,21,252,68,185,40,136,67,185,45,20,66,185,34,160,64,185,8,44,63,185,223,183,61,
185,167,67,60,185,97,207,58,185,13,91,57,185,170,230,55,185,57,114,54,185,186,253,52,185,45,137,51,185,147,20,50,185,235,159,48,185,54,43,47,185,116,182,45,185,165,65,44,185,201,204,42,185,224,87,41,185,234,226,39,185,233,109,38,185,219,248,36,185,193,131,35,185,155,14,34,185,105,153,32,185,43,36,31,185,227,174,29,185,142,57,28,185,47,196,26,185,197,78,25,185,80,217,23,185,208,99,22,185,70,238,20,185,177,120,19,185,18,3,18,185,105,141,16,185,182,23,15,185,250,161,13,185,52,44,12,185,100,182,10,185,
139,64,9,185,169,202,7,185,190,84,6,185,203,222,4,185,206,104,3,185,201,242,1,185,188,124,0,185,78,13,254,184,19,33,251,184,200,52,248,184,110,72,245,184,5,92,242,184,141,111,239,184,7,131,236,184,115,150,233,184,208,169,230,184,32,189,227,184,99,208,224,184,153,227,221,184,194,246,218,184,223,9,216,184,240,28,213,184,246,47,210,184,240,66,207,184,222,85,204,184,195,104,201,184,156,123,198,184,108,142,195,184,50,161,192,184,238,179,189,184,161,198,186,184,76,217,183,184,237,235,180,184,135,254,177,
184,24,17,175,184,162,35,172,184,37,54,169,184,161,72,166,184,22,91,163,184,132,109,160,184,237,127,157,184,80,146,154,184,173,164,151,184,5,183,148,184,89,201,145,184,168,219,142,184,242,237,139,184,57,0,137,184,125,18,134,184,189,36,131,184,250,54,128,184,105,146,122,184,217,182,116,184,69,219,110,184,174,255,104,184,21,36,99,184,121,72,93,184,220,108,87,184,61,145,81,184,159,181,75,184,1,218,69,184,100,254,63,184,200,34,58,184,47,71,52,184,153,107,46,184,6,144,40,184,119,180,34,184,237,216,28,
184,104,253,22,184,233,33,17,184,113,70,11,184,0,107,5,184,47,31,255,183,109,104,243,183,191,177,231,183,35,251,219,183,156,68,208,183,43,142,196,183,210,215,184,183,144,33,173,183,105,107,161,183,92,181,149,183,108,255,137,183,49,147,124,183,200,39,101,183,159,188,77,183,184,81,54,183,22,231,30,183,187,124,7,183,84,37,224,182,203,81,177,182,223,126,130,182,42,89,39,182,203,107,147,181,51,96,159,52,31,25,227,53,172,43,79,54,169,100,150,54,187,50,197,54,9,0,244,54,70,102,17,55,32,204,40,55,144,49,
64,55,147,150,87,55,39,251,110,55,165,47,131,55,124,225,142,55,24,147,154,55,120,68,166,55,154,245,177,55,125,166,189,55,31,87,201,55,128,7,213,55,159,183,224,55,121,103,236,55,15,23,248,55,47,227,1,56,178,186,7,56,18,146,13,56,76,105,19,56,96,64,25,56,78,23,31,56,21,238,36,56,181,196,42,56,44,155,48,56,123,113,54,56,160,71,60,56,155,29,66,56,108,243,71,56,17,201,77,56,139,158,83,56,215,115,89,56,247,72,95,56,233,29,101,56,173,242,106,56,66,199,112,56,167,155,118,56,220,111,124,56,240,33,129,56,217,
11,132,56,169,245,134,56,96,223,137,56,254,200,140,56,129,178,143,56,234,155,146,56,56,133,149,56,108,110,152,56,132,87,155,56,129,64,158,56,98,41,161,56,39,18,164,56,208,250,166,56,92,227,169,56,202,203,172,56,28,180,175,56,80,156,178,56,101,132,181,56,93,108,184,56,54,84,187,56,240,59,190,56,139,35,193,56,6,11,196,56,97,242,198,56,157,217,201,56,184,192,204,56,178,167,207,56,139,142,210,56,67,117,213,56,217,91,216,56,77,66,219,56,159,40,222,56,207,14,225,56,219,244,227,56,196,218,230,56,138,192,
233,56,44,166,236,56,170,139,239,56,4,113,242,56,56,86,245,56,72,59,248,56,50,32,251,56,247,4,254,56,203,116,0,57,7,231,1,57,48,89,3,57,70,203,4,57,72,61,6,57,54,175,7,57,16,33,9,57,215,146,10,57,137,4,12,57,39,118,13,57,176,231,14,57,36,89,16,57,132,202,17,57,207,59,19,57,5,173,20,57,37,30,22,57,48,143,23,57,38,0,25,57,6,113,26,57,208,225,27,57,131,82,29,57,33,195,30,57,168,51,32,57,25,164,33,57,116,20,35,57,183,132,36,57,228,244,37,57,249,100,39,57,247,212,40,57,222,68,42,57,173,180,43,57,101,36,
45,57,5,148,46,57,140,3,48,57,252,114,49,57,83,226,50,57,146,81,52,57,184,192,53,57,198,47,55,57,186,158,56,57,150,13,58,57,88,124,59,57,1,235,60,57,145,89,62,57,6,200,63,57,98,54,65,57,164,164,66,57,204,18,68,57,218,128,69,57,205,238,70,57,166,92,72,57,99,202,73,57,7,56,75,57,143,165,76,57,251,18,78,57,77,128,79,57,131,237,80,57,157,90,82,57,156,199,83,57,127,52,85,57,70,161,86,57,240,13,88,57,126,122,89,57,240,230,90,57,69,83,92,57,125,191,93,57,152,43,95,57,150,151,96,57,118,3,98,57,58,111,99,
57,224,218,100,57,104,70,102,57,210,177,103,57,30,29,105,57,76,136,106,57,91,243,107,57,77,94,109,57,31,201,110,57,211,51,112,57,104,158,113,57,222,8,115,57,52,115,116,57,107,221,117,57,131,71,119,57,123,177,120,57,84,27,122,57,12,133,123,57,164,238,124,57,28,88,126,57,116,193,127,57,85,149,128,57,224,73,129,57,91,254,129,57,197,178,130,57,31,103,131,57,104,27,132,57,160,207,132,57,200,131,133,57,223,55,134,57,228,235,134,57,217,159,135,57,189,83,136,57,143,7,137,57,80,187,137,57,0,111,138,57,159,
34,139,57,44,214,139,57,167,137,140,57,17,61,141,57,105,240,141,57,176,163,142,57,228,86,143,57,7,10,144,57,24,189,144,57,23,112,145,57,3,35,146,57,222,213,146,57,166,136,147,57,91,59,148,57,255,237,148,57,144,160,149,57,14,83,150,57,122,5,151,57,211,183,151,57,25,106,152,57,76,28,153,57,109,206,153,57,122,128,154,57,117,50,155,57,92,228,155,57,48,150,156,57,241,71,157,57,158,249,157,57,56,171,158,57,190,92,159,57,49,14,160,57,144,191,160,57,220,112,161,57,20,34,162,57,55,211,162,57,71,132,163,57,
67,53,164,57,43,230,164,57,254,150,165,57,190,71,166,57,105,248,166,57,255,168,167,57,130,89,168,57,239,9,169,57,72,186,169,57,141,106,170,57,188,26,171,57,215,202,171,57,221,122,172,57,206,42,173,57,170,218,173,57,113,138,174,57,35,58,175,57,191,233,175,57,71,153,176,57,184,72,177,57,21,248,177,57,91,167,178,57,141,86,179,57,168,5,180,57,174,180,180,57,158,99,181,57,120,18,182,57,60,193,182,57,234,111,183,57,130,30,184,57,4,205,184,57,111,123,185,57,197,41,186,57,4,216,186,57,44,134,187,57,62,52,
188,57,57,226,188,57,30,144,189,57,236,61,190,57,163,235,190,57,67,153,191,57,204,70,192,57,62,244,192,57,153,161,193,57,221,78,194,57,10,252,194,57,31,169,195,57,29,86,196,57,3,3,197,57,210,175,197,57,138,92,198,57,42,9,199,57,178,181,199,57,34,98,200,57,122,14,201,57,186,186,201,57,227,102,202,57,243,18,203,57,235,190,203,57,203,106,204,57,147,22,205,57,66,194,205,57,217,109,206,57,87,25,207,57,189,196,207,57,10,112,208,57,62,27,209,57,90,198,209,57,92,113,210,57,70,28,211,57,23,199,211,57,207,
113,212,57,109,28,213,57,243,198,213,57,95,113,214,57,178,27,215,57,235,197,215,57,11,112,216,57,17,26,217,57,254,195,217,57,209,109,218,57,138,23,219,57,42,193,219,57,175,106,220,57,27,20,221,57,108,189,221,57,164,102,222,57,193,15,223,57,196,184,223,57,173,97,224,57,123,10,225,57,47,179,225,57,200,91,226,57,71,4,227,57,171,172,227,57,245,84,228,57,36,253,228,57,55,165,229,57,48,77,230,57,14,245,230,57,209,156,231,57,121,68,232,57,5,236,232,57,118,147,233,57,204,58,234,57,7,226,234,57,38,137,235,
57,41,48,236,57,17,215,236,57,221,125,237,57,141,36,238,57,34,203,238,57,155,113,239,57,248,23,240,57,56,190,240,57,93,100,241,57,102,10,242,57,82,176,242,57,34,86,243,57,214,251,243,57,109,161,244,57,232,70,245,57,70,236,245,57,136,145,246,57,173,54,247,57,181,219,247,57,160,128,248,57,111,37,249,57,32,202,249,57,181,110,250,57,44,19,251,57,134,183,251,57,195,91,252,57,227,255,252,57,230,163,253,57,203,71,254,57,146,235,254,57,60,143,255,57,100,25,0,58,27,107,0,58,196,188,0,58,93,14,1,58,232,95,
1,58,100,177,1,58,208,2,2,58,46,84,2,58,124,165,2,58,188,246,2,58,236,71,3,58,13,153,3,58,31,234,3,58,33,59,4,58,21,140,4,58,249,220,4,58,205,45,5,58,147,126,5,58,73,207,5,58,239,31,6,58,134,112,6,58,14,193,6,58,134,17,7,58,238,97,7,58,71,178,7,58,144,2,8,58,202,82,8,58,244,162,8,58,14,243,8,58,24,67,9,58,19,147,9,58,253,226,9,58,216,50,10,58,163,130,10,58,94,210,10,58,9,34,11,58,164,113,11,58,47,193,11,58,170,16,12,58,21,96,12,58,112,175,12,58,187,254,12,58,245,77,13,58,32,157,13,58,58,236,13,58,
68,59,14,58,61,138,14,58,38,217,14,58,255,39,15,58,199,118,15,58,127,197,15,58,39,20,16,58,190,98,16,58,68,177,16,58,186,255,16,58,31,78,17,58,116,156,17,58,184,234,17,58,235,56,18,58,14,135,18,58,31,213,18,58,33,35,19,58,17,113,19,58,240,190,19,58,191,12,20,58,124,90,20,58,41,168,20,58,197,245,20,58,79,67,21,58,201,144,21,58,49,222,21,58,137,43,22,58,207,120,22,58,4,198,22,58,40,19,23,58,59,96,23,58,61,173,23,58,45,250,23,58,12,71,24,58,217,147,24,58,150,224,24,58,64,45,25,58,218,121,25,58,98,198,
25,58,216,18,26,58,61,95,26,58,144,171,26,58,210,247,26,58,2,68,27,58,32,144,27,58,45,220,27,58,40,40,28,58,17,116,28,58,233,191,28,58,175,11,29,58,98,87,29,58,4,163,29,58,148,238,29,58,19,58,30,58,127,133,30,58,217,208,30,58,33,28,31,58,87,103,31,58,123,178,31,58,141,253,31,58,141,72,32,58,123,147,32,58,86,222,32,58,31,41,33,58,214,115,33,58,123,190,33,58,13,9,34,58,141,83,34,58,251,157,34,58,86,232,34,58,159,50,35,58,213,124,35,58,249,198,35,58,10,17,36,58,9,91,36,58,245,164,36,58,206,238,36,58,
149,56,37,58,73,130,37,58,235,203,37,58,122,21,38,58,246,94,38,58,95,168,38,58,181,241,38,58,249,58,39,58,41,132,39,58,71,205,39,58,81,22,40,58,73,95,40,58,46,168,40,58,0,241,40,58,190,57,41,58,106,130,41,58,2,203,41,58,136,19,42,58,250,91,42,58,89,164,42,58,164,236,42,58,221,52,43,58,2,125,43,58,20,197,43,58,18,13,44,58,253,84,44,58,213,156,44,58,153,228,44,58,74,44,45,58,231,115,45,58,113,187,45,58,231,2,46,58,74,74,46,58,153,145,46,58,212,216,46,58,252,31,47,58,16,103,47,58,16,174,47,58,253,244,
47,58,213,59,48,58,154,130,48,58,75,201,48,58,233,15,49,58,114,86,49,58,231,156,49,58,73,227,49,58,150,41,50,58,208,111,50,58,245,181,50,58,7,252,50,58,4,66,51,58,237,135,51,58,194,205,51,58,131,19,52,58,48,89,52,58,200,158,52,58,76,228,52,58,188,41,53,58,24,111,53,58,95,180,53,58,146,249,53,58,176,62,54,58,187,131,54,58,176,200,54,58,145,13,55,58,94,82,55,58,22,151,55,58,186,219,55,58,73,32,56,58,195,100,56,58,41,169,56,58,122,237,56,58,182,49,57,58,222,117,57,58,240,185,57,58,238,253,57,58,216,
65,58,58,172,133,58,58,108,201,58,58,22,13,59,58,172,80,59,58,45,148,59,58,153,215,59,58,240,26,60,58,50,94,60,58,95,161,60,58,118,228,60,58,121,39,61,58,102,106,61,58,63,173,61,58,2,240,61,58,176,50,62,58,73,117,62,58,204,183,62,58,58,250,62,58,147,60,63,58,215,126,63,58,5,193,63,58,30,3,64,58,33,69,64,58,15,135,64,58,231,200,64,58,170,10,65,58,88,76,65,58,240,141,65,58,114,207,65,58,223,16,66,58,54,82,66,58,119,147,66,58,163,212,66,58,185,21,67,58,185,86,67,58,164,151,67,58,121,216,67,58,56,25,
68,58,225,89,68,58,116,154,68,58,241,218,68,58,89,27,69,58,170,91,69,58,230,155,69,58,12,220,69,58,27,28,70,58,21,92,70,58,248,155,70,58,198,219,70,58,125,27,71,58,30,91,71,58,169,154,71,58,30,218,71,58,124,25,72,58,197,88,72,58,247,151,72,58,19,215,72,58,24,22,73,58,7,85,73,58,224,147,73,58,162,210,73,58,78,17,74,58,228,79,74,58,99,142,74,58,204,204,74,58,30,11,75,58,89,73,75,58,126,135,75,58,141,197,75,58,132,3,76,58,101,65,76,58,48,127,76,58,228,188,76,58,129,250,76,58,7,56,77,58,119,117,77,58,
208,178,77,58,18,240,77,58,61,45,78,58,81,106,78,58,78,167,78,58,53,228,78,58,5,33,79,58,189,93,79,58,95,154,79,58,234,214,79,58,93,19,80,58,186,79,80,58,0,140,80,58,46,200,80,58,69,4,81,58,70,64,81,58,47,124,81,58,0,184,81,58,187,243,81,58,95,47,82,58,235,106,82,58,96,166,82,58,189,225,82,58,3,29,83,58,50,88,83,58,74,147,83,58,74,206,83,58,51,9,84,58,4,68,84,58,190,126,84,58,96,185,84,58,235,243,84,58,94,46,85,58,186,104,85,58,254,162,85,58,42,221,85,58,63,23,86,58,60,81,86,58,34,139,86,58,240,196,
86,58,166,254,86,58,68,56,87,58,203,113,87,58,58,171,87,58,145,228,87,58,208,29,88,58,247,86,88,58,7,144,88,58,254,200,88,58,222,1,89,58,166,58,89,58,85,115,89,58,237,171,89,58,109,228,89,58,213,28,90,58,36,85,90,58,92,141,90,58,123,197,90,58,131,253,90,58,114,53,91,58,73,109,91,58,8,165,91,58,174,220,91,58,61,20,92,58,179,75,92,58,17,131,92,58,87,186,92,58,132,241,92,58,153,40,93,58,149,95,93,58,122,150,93,58,69,205,93,58,249,3,94,58,148,58,94,58,22,113,94,58,128,167,94,58,210,221,94,58,11,20,95,
58,43,74,95,58,51,128,95,58,34,182,95,58,249,235,95,58,183,33,96,58,92,87,96,58,233,140,96,58,93,194,96,58,184,247,96,58,250,44,97,58,36,98,97,58,53,151,97,58,45,204,97,58,12,1,98,58,211,53,98,58,129,106,98,58,21,159,98,58,145,211,98,58,244,7,99,58,62,60,99,58,111,112,99,58,135,164,99,58,134,216,99,58,108,12,100,58,57,64,100,58,237,115,100,58,136,167,100,58,9,219,100,58,114,14,101,58,193,65,101,58,248,116,101,58,21,168,101,58,24,219,101,58,3,14,102,58,212,64,102,58,141,115,102,58,43,166,102,58,177,
216,102,58,29,11,103,58,112,61,103,58,170,111,103,58,202,161,103,58,208,211,103,58,190,5,104,58,145,55,104,58,76,105,104,58,237,154,104,58,116,204,104,58,226,253,104,58,54,47,105,58,113,96,105,58,147,145,105,58,154,194,105,58,136,243,105,58,93,36,106,58,23,85,106,58,184,133,106,58,64,182,106,58,174,230,106,58,2,23,107,58,60,71,107,58,92,119,107,58,99,167,107,58,80,215,107,58,35,7,108,58,220,54,108,58,123,102,108,58,1,150,108,58,109,197,108,58,190,244,108,58,246,35,109,58,20,83,109,58,24,130,109,58,
2,177,109,58,210,223,109,58,135,14,110,58,35,61,110,58,165,107,110,58,13,154,110,58,90,200,110,58,142,246,110,58,167,36,111,58,167,82,111,58,140,128,111,58,87,174,111,58,7,220,111,58,158,9,112,58,26,55,112,58,124,100,112,58,196,145,112,58,241,190,112,58,5,236,112,58,253,24,113,58,220,69,113,58,160,114,113,58,74,159,113,58,217,203,113,58,79,248,113,58,169,36,114,58,233,80,114,58,15,125,114,58,26,169,114,58,11,213,114,58,225,0,115,58,157,44,115,58,62,88,115,58,197,131,115,58,49,175,115,58,131,218,115,
58,186,5,116,58,214,48,116,58,215,91,116,58,190,134,116,58,139,177,116,58,60,220,116,58,211,6,117,58,80,49,117,58,177,91,117,58,248,133,117,58,36,176,117,58,53,218,117,58,44,4,118,58,7,46,118,58,200,87,118,58,110,129,118,58,249,170,118,58,105,212,118,58,190,253,118,58,249,38,119,58,24,80,119,58,29,121,119,58,6,162,119,58,213,202,119,58,137,243,119,58,33,28,120,58,159,68,120,58,1,109,120,58,73,149,120,58,117,189,120,58,135,229,120,58,125,13,121,58,88,53,121,58,24,93,121,58,189,132,121,58,71,172,121,
58,182,211,121,58,9,251,121,58,65,34,122,58,94,73,122,58,96,112,122,58,71,151,122,58,18,190,122,58,194,228,122,58,87,11,123,58,208,49,123,58,47,88,123,58,113,126,123,58,153,164,123,58,165,202,123,58,150,240,123,58,107,22,124,58,37,60,124,58,196,97,124,58,71,135,124,58,175,172,124,58,251,209,124,58,44,247,124,58,65,28,125,58,59,65,125,58,25,102,125,58,220,138,125,58,131,175,125,58,15,212,125,58,127,248,125,58,211,28,126,58,12,65,126,58,42,101,126,58,43,137,126,58,17,173,126,58,220,208,126,58,139,244,
126,58,30,24,127,58,149,59,127,58,241,94,127,58,49,130,127,58,85,165,127,58,94,200,127,58,75,235,127,58,14,7,128,58,104,24,128,58,181,41,128,58,244,58,128,58,37,76,128,58,72,93,128,58,93,110,128,58,100,127,128,58,93,144,128,58,73,161,128,58,38,178,128,58,246,194,128,58,183,211,128,58,106,228,128,58,16,245,128,58,168,5,129,58,49,22,129,58,173,38,129,58,26,55,129,58,122,71,129,58,203,87,129,58,15,104,129,58,68,120,129,58,108,136,129,58,133,152,129,58,145,168,129,58,142,184,129,58,126,200,129,58,95,
216,129,58,50,232,129,58,247,247,129,58,175,7,130,58,88,23,130,58,243,38,130,58,127,54,130,58,254,69,130,58,111,85,130,58,209,100,130,58,38,116,130,58,108,131,130,58,164,146,130,58,207,161,130,58,235,176,130,58,248,191,130,58,248,206,130,58,234,221,130,58,205,236,130,58,162,251,130,58,105,10,131,58,34,25,131,58,205,39,131,58,105,54,131,58,248,68,131,58,120,83,131,58,234,97,131,58,78,112,131,58,163,126,131,58,234,140,131,58,36,155,131,58,79,169,131,58,107,183,131,58,122,197,131,58,122,211,131,58,108,
225,131,58,80,239,131,58,37,253,131,58,236,10,132,58,165,24,132,58,80,38,132,58,236,51,132,58,122,65,132,58,250,78,132,58,108,92,132,58,207,105,132,58,36,119,132,58,107,132,132,58,163,145,132,58,205,158,132,58,233,171,132,58,246,184,132,58,245,197,132,58,230,210,132,58,201,223,132,58,157,236,132,58,98,249,132,58,26,6,133,58,195,18,133,58,94,31,133,58,234,43,133,58,104,56,133,58,216,68,133,58,57,81,133,58,140,93,133,58,208,105,133,58,6,118,133,58,46,130,133,58,71,142,133,58,82,154,133,58,79,166,133,
58,61,178,133,58,29,190,133,58,238,201,133,58,177,213,133,58,101,225,133,58,11,237,133,58,163,248,133,58,44,4,134,58,167,15,134,58,19,27,134,58,113,38,134,58,192,49,134,58,1,61,134,58,52,72,134,58,88,83,134,58,109,94,134,58,116,105,134,58,109,116,134,58,87,127,134,58,50,138,134,58,0,149,134,58,190,159,134,58,110,170,134,58,16,181,134,58,163,191,134,58,40,202,134,58,158,212,134,58,6,223,134,58,95,233,134,58,170,243,134,58,230,253,134,58,19,8,135,58,50,18,135,58,67,28,135,58,69,38,135,58,56,48,135,
58,29,58,135,58,244,67,135,58,187,77,135,58,117,87,135,58,31,97,135,58,187,106,135,58,73,116,135,58,200,125,135,58,57,135,135,58,155,144,135,58,238,153,135,58,51,163,135,58,105,172,135,58,144,181,135,58,169,190,135,58,180,199,135,58,176,208,135,58,157,217,135,58,124,226,135,58,76,235,135,58,13,244,135,58,192,252,135,58,100,5,136,58,250,13,136,58,129,22,136,58,249,30,136,58,99,39,136,58,190,47,136,58,11,56,136,58,73,64,136,58,120,72,136,58,152,80,136,58,171,88,136,58,174,96,136,58,163,104,136,58,137,
112,136,58,96,120,136,58,41,128,136,58,227,135,136,58,143,143,136,58,44,151,136,58,186,158,136,58,57,166,136,58,170,173,136,58,12,181,136,58,96,188,136,58,165,195,136,58,219,202,136,58,3,210,136,58,28,217,136,58,38,224,136,58,33,231,136,58,14,238,136,58,236,244,136,58,188,251,136,58,125,2,137,58,47,9,137,58,210,15,137,58,103,22,137,58,237,28,137,58,100,35,137,58,205,41,137,58,39,48,137,58,114,54,137,58,175,60,137,58,221,66,137,58,252,72,137,58,12,79,137,58,14,85,137,58,1,91,137,58,229,96,137,58,187,
102,137,58,130,108,137,58,58,114,137,58,227,119,137,58,126,125,137,58,10,131,137,58,136,136,137,58,246,141,137,58,86,147,137,58,167,152,137,58,233,157,137,58,29,163,137,58,66,168,137,58,88,173,137,58,96,178,137,58,88,183,137,58,66,188,137,58,30,193,137,58,234,197,137,58,168,202,137,58,87,207,137,58,247,211,137,58,137,216,137,58,12,221,137,58,128,225,137,58,229,229,137,58,59,234,137,58,131,238,137,58,188,242,137,58,231,246,137,58,2,251,137,58,15,255,137,58,13,3,138,58,252,6,138,58,221,10,138,58,175,
14,138,58,114,18,138,58,38,22,138,58,204,25,138,58,98,29,138,58,234,32,138,58,100,36,138,58,206,39,138,58,42,43,138,58,119,46,138,58,181,49,138,58,229,52,138,58,5,56,138,58,23,59,138,58,26,62,138,58,15,65,138,58,245,67,138,58,203,70,138,58,148,73,138,58,77,76,138,58,247,78,138,58,147,81,138,58,32,84,138,58,159,86,138,58,14,89,138,58,111,91,138,58,193,93,138,58,4,96,138,58,57,98,138,58,94,100,138,58,117,102,138,58,125,104,138,58,119,106,138,58,98,108,138,58,61,110,138,58,10,112,138,58,201,113,138,
58,120,115,138,58,25,117,138,58,171,118,138,58,47,120,138,58,163,121,138,58,9,123,138,58,96,124,138,58,168,125,138,58,225,126,138,58,12,128,138,58,40,129,138,58,53,130,138,58,52,131,138,58,35,132,138,58,4,133,138,58,214,133,138,58,154,134,138,58,78,135,138,58,244,135,138,58,139,136,138,58,20,137,138,58,141,137,138,58,248,137,138,58,84,138,138,58,161,138,138,58,224,138,138,58,16,139,138,58,49,139,138,58,67,139,138,58,70,139,138,58,59,139,138,58,33,139,138,58,249,138,138,58,193,138,138,58,123,138,138,
58,38,138,138,58,194,137,138,58,80,137,138,58,207,136,138,58,63,136,138,58,160,135,138,58,243,134,138,58,54,134,138,58,108,133,138,58,146,132,138,58,170,131,138,58,178,130,138,58,173,129,138,58,152,128,138,58,117,127,138,58,67,126,138,58,2,125,138,58,179,123,138,58,84,122,138,58,231,120,138,58,108,119,138,58,225,117,138,58,72,116,138,58,161,114,138,58],"i8",4,y.a+686080);
Q([234,112,138,58,37,111,138,58,81,109,138,58,110,107,138,58,125,105,138,58,125,103,138,58,110,101,138,58,81,99,138,58,36,97,138,58,234,94,138,58,160,92,138,58,72,90,138,58,225,87,138,58,107,85,138,58,231,82,138,58,84,80,138,58,178,77,138,58,1,75,138,58,66,72,138,58,117,69,138,58,152,66,138,58,173,63,138,58,179,60,138,58,171,57,138,58,147,54,138,58,110,51,138,58,57,48,138,58,246,44,138,58,164,41,138,58,68,38,138,58,213,34,138,58,87,31,138,58,202,27,138,58,47,24,138,58,133,20,138,58,205,16,138,58,
6,13,138,58,48,9,138,58,76,5,138,58,89,1,138,58,87,253,137,58,71,249,137,58,40,245,137,58,251,240,137,58,191,236,137,58,116,232,137,58,26,228,137,58,179,223,137,58,60,219,137,58,183,214,137,58,35,210,137,58,128,205,137,58,207,200,137,58,16,196,137,58,66,191,137,58,101,186,137,58,121,181,137,58,127,176,137,58,119,171,137,58,96,166,137,58,58,161,137,58,6,156,137,58,195,150,137,58,113,145,137,58,17,140,137,58,163,134,137,58,38,129,137,58,154,123,137,58,0,118,137,58,87,112,137,58,159,106,137,58,217,100,
137,58,5,95,137,58,34,89,137,58,48,83,137,58,48,77,137,58,34,71,137,58,5,65,137,58,217,58,137,58,159,52,137,58,86,46,137,58,255,39,137,58,153,33,137,58,37,27,137,58,162,20,137,58,17,14,137,58,113,7,137,58,195,0,137,58,7,250,136,58,59,243,136,58,98,236,136,58,122,229,136,58,131,222,136,58,126,215,136,58,106,208,136,58,72,201,136,58,24,194,136,58,217,186,136,58,140,179,136,58,48,172,136,58,198,164,136,58,77,157,136,58,198,149,136,58,48,142,136,58,140,134,136,58,218,126,136,58,25,119,136,58,74,111,136,
58,108,103,136,58,128,95,136,58,134,87,136,58,125,79,136,58,102,71,136,58,64,63,136,58,12,55,136,58,202,46,136,58,121,38,136,58,26,30,136,58,172,21,136,58,48,13,136,58,166,4,136,58,14,252,135,58,103,243,135,58,177,234,135,58,238,225,135,58,28,217,135,58,59,208,135,58,77,199,135,58,80,190,135,58,69,181,135,58,43,172,135,58,3,163,135,58,205,153,135,58,136,144,135,58,54,135,135,58,213,125,135,58,101,116,135,58,232,106,135,58,92,97,135,58,193,87,135,58,25,78,135,58,98,68,135,58,157,58,135,58,202,48,135,
58,232,38,135,58,249,28,135,58,251,18,135,58,239,8,135,58,212,254,134,58,171,244,134,58,117,234,134,58,48,224,134,58,220,213,134,58,123,203,134,58,11,193,134,58,141,182,134,58,1,172,134,58,103,161,134,58,190,150,134,58,8,140,134,58,67,129,134,58,112,118,134,58,143,107,134,58,160,96,134,58,162,85,134,58,151,74,134,58,125,63,134,58,85,52,134,58,31,41,134,58,219,29,134,58,137,18,134,58,41,7,134,58,187,251,133,58,62,240,133,58,180,228,133,58,27,217,133,58,116,205,133,58,192,193,133,58,253,181,133,58,
44,170,133,58,77,158,133,58,96,146,133,58,101,134,133,58,92,122,133,58,69,110,133,58,31,98,133,58,236,85,133,58,171,73,133,58,92,61,133,58,255,48,133,58,147,36,133,58,26,24,133,58,147,11,133,58,254,254,132,58,91,242,132,58,170,229,132,58,235,216,132,58,30,204,132,58,67,191,132,58,90,178,132,58,99,165,132,58,94,152,132,58,76,139,132,58,43,126,132,58,252,112,132,58,192,99,132,58,118,86,132,58,29,73,132,58,183,59,132,58,67,46,132,58,193,32,132,58,50,19,132,58,148,5,132,58,233,247,131,58,47,234,131,58,
104,220,131,58,147,206,131,58,176,192,131,58,192,178,131,58,193,164,131,58,181,150,131,58,155,136,131,58,115,122,131,58,62,108,131,58,250,93,131,58,169,79,131,58,74,65,131,58,221,50,131,58,99,36,131,58,219,21,131,58,69,7,131,58,161,248,130,58,240,233,130,58,48,219,130,58,100,204,130,58,137,189,130,58,161,174,130,58,171,159,130,58,167,144,130,58,150,129,130,58,119,114,130,58,74,99,130,58,16,84,130,58,200,68,130,58,114,53,130,58,15,38,130,58,158,22,130,58,32,7,130,58,148,247,129,58,250,231,129,58,83,
216,129,58,158,200,129,58,219,184,129,58,11,169,129,58,46,153,129,58,66,137,129,58,74,121,129,58,67,105,129,58,47,89,129,58,14,73,129,58,223,56,129,58,163,40,129,58,89,24,129,58,1,8,129,58,156,247,128,58,42,231,128,58,170,214,128,58,29,198,128,58,130,181,128,58,218,164,128,58,36,148,128,58,97,131,128,58,144,114,128,58,178,97,128,58,199,80,128,58,206,63,128,58,199,46,128,58,180,29,128,58,147,12,128,58,200,246,127,58,81,212,127,58,190,177,127,58,17,143,127,58,74,108,127,58,103,73,127,58,106,38,127,
58,82,3,127,58,32,224,126,58,211,188,126,58,107,153,126,58,233,117,126,58,76,82,126,58,149,46,126,58,195,10,126,58,215,230,125,58,208,194,125,58,175,158,125,58,115,122,125,58,29,86,125,58,172,49,125,58,33,13,125,58,124,232,124,58,188,195,124,58,225,158,124,58,237,121,124,58,222,84,124,58,181,47,124,58,113,10,124,58,19,229,123,58,155,191,123,58,9,154,123,58,92,116,123,58,150,78,123,58,181,40,123,58,185,2,123,58,164,220,122,58,117,182,122,58,43,144,122,58,199,105,122,58,74,67,122,58,178,28,122,58,0,
246,121,58,52,207,121,58,78,168,121,58,78,129,121,58,52,90,121,58,0,51,121,58,178,11,121,58,74,228,120,58,201,188,120,58,45,149,120,58,119,109,120,58,168,69,120,58,191,29,120,58,188,245,119,58,159,205,119,58,104,165,119,58,24,125,119,58,174,84,119,58,42,44,119,58,140,3,119,58,213,218,118,58,4,178,118,58,25,137,118,58,21,96,118,58,247,54,118,58,192,13,118,58,110,228,117,58,4,187,117,58,128,145,117,58,226,103,117,58,43,62,117,58,90,20,117,58,112,234,116,58,108,192,116,58,79,150,116,58,24,108,116,58,
200,65,116,58,95,23,116,58,220,236,115,58,64,194,115,58,139,151,115,58,188,108,115,58,213,65,115,58,211,22,115,58,185,235,114,58,133,192,114,58,56,149,114,58,210,105,114,58,83,62,114,58,187,18,114,58,9,231,113,58,63,187,113,58,91,143,113,58,94,99,113,58,73,55,113,58,26,11,113,58,210,222,112,58,113,178,112,58,247,133,112,58,101,89,112,58,185,44,112,58,245,255,111,58,23,211,111,58,33,166,111,58,18,121,111,58,234,75,111,58,169,30,111,58,79,241,110,58,221,195,110,58,82,150,110,58,174,104,110,58,241,58,
110,58,28,13,110,58,46,223,109,58,40,177,109,58,9,131,109,58,209,84,109,58,128,38,109,58,24,248,108,58,150,201,108,58,252,154,108,58,74,108,108,58,127,61,108,58,155,14,108,58,159,223,107,58,139,176,107,58,95,129,107,58,26,82,107,58,188,34,107,58,70,243,106,58,184,195,106,58,18,148,106,58,83,100,106,58,125,52,106,58,142,4,106,58,134,212,105,58,103,164,105,58,47,116,105,58,224,67,105,58,120,19,105,58,248,226,104,58,96,178,104,58,176,129,104,58,231,80,104,58,7,32,104,58,15,239,103,58,255,189,103,58,
215,140,103,58,151,91,103,58,63,42,103,58,207,248,102,58,72,199,102,58,168,149,102,58,241,99,102,58,34,50,102,58,59,0,102,58,61,206,101,58,38,156,101,58,248,105,101,58,179,55,101,58,85,5,101,58,224,210,100,58,84,160,100,58,176,109,100,58,244,58,100,58,33,8,100,58,54,213,99,58,52,162,99,58,26,111,99,58,232,59,99,58,160,8,99,58,64,213,98,58,200,161,98,58,57,110,98,58,147,58,98,58,214,6,98,58,1,211,97,58,21,159,97,58,17,107,97,58,247,54,97,58,197,2,97,58,124,206,96,58,28,154,96,58,165,101,96,58,22,49,
96,58,113,252,95,58,180,199,95,58,225,146,95,58,246,93,95,58,245,40,95,58,220,243,94,58,173,190,94,58,102,137,94,58,9,84,94,58,149,30,94,58,10,233,93,58,104,179,93,58,175,125,93,58,223,71,93,58,249,17,93,58,252,219,92,58,232,165,92,58,190,111,92,58,125,57,92,58,37,3,92,58,183,204,91,58,50,150,91,58,151,95,91,58,229,40,91,58,28,242,90,58,61,187,90,58,71,132,90,58,59,77,90,58,25,22,90,58,224,222,89,58,145,167,89,58,43,112,89,58,176,56,89,58,29,1,89,58,117,201,88,58,182,145,88,58,225,89,88,58,246,33,
88,58,245,233,87,58,221,177,87,58,176,121,87,58,108,65,87,58,18,9,87,58,162,208,86,58,28,152,86,58,129,95,86,58,207,38,86,58,7,238,85,58,41,181,85,58,53,124,85,58,44,67,85,58,12,10,85,58,215,208,84,58,140,151,84,58,43,94,84,58,180,36,84,58,40,235,83,58,134,177,83,58,206,119,83,58,1,62,83,58,30,4,83,58,37,202,82,58,23,144,82,58,243,85,82,58,186,27,82,58,107,225,81,58,7,167,81,58,141,108,81,58,254,49,81,58,89,247,80,58,159,188,80,58,208,129,80,58,235,70,80,58,241,11,80,58,226,208,79,58,190,149,79,58,
132,90,79,58,53,31,79,58,209,227,78,58,88,168,78,58,201,108,78,58,38,49,78,58,109,245,77,58,160,185,77,58,189,125,77,58,198,65,77,58,185,5,77,58,152,201,76,58,97,141,76,58,22,81,76,58,182,20,76,58,65,216,75,58,183,155,75,58,25,95,75,58,102,34,75,58,158,229,74,58,193,168,74,58,207,107,74,58,201,46,74,58,175,241,73,58,128,180,73,58,60,119,73,58,227,57,73,58,119,252,72,58,245,190,72,58,95,129,72,58,181,67,72,58,247,5,72,58,36,200,71,58,60,138,71,58,64,76,71,58,48,14,71,58,12,208,70,58,212,145,70,58,
135,83,70,58,38,21,70,58,177,214,69,58,40,152,69,58,138,89,69,58,217,26,69,58,19,220,68,58,58,157,68,58,76,94,68,58,75,31,68,58,53,224,67,58,12,161,67,58,207,97,67,58,126,34,67,58,25,227,66,58,160,163,66,58,20,100,66,58,115,36,66,58,191,228,65,58,248,164,65,58,28,101,65,58,45,37,65,58,43,229,64,58,20,165,64,58,235,100,64,58,173,36,64,58,92,228,63,58,248,163,63,58,128,99,63,58,245,34,63,58,87,226,62,58,165,161,62,58,224,96,62,58,7,32,62,58,27,223,61,58,28,158,61,58,10,93,61,58,228,27,61,58,172,218,
60,58,96,153,60,58,1,88,60,58,143,22,60,58,10,213,59,58,114,147,59,58,199,81,59,58,8,16,59,58,55,206,58,58,84,140,58,58,93,74,58,58,83,8,58,58,55,198,57,58,7,132,57,58,197,65,57,58,113,255,56,58,9,189,56,58,143,122,56,58,2,56,56,58,99,245,55,58,177,178,55,58,236,111,55,58,21,45,55,58,43,234,54,58,47,167,54,58,32,100,54,58,255,32,54,58,204,221,53,58,134,154,53,58,46,87,53,58,196,19,53,58,71,208,52,58,184,140,52,58,23,73,52,58,99,5,52,58,158,193,51,58,198,125,51,58,220,57,51,58,225,245,50,58,211,177,
50,58,179,109,50,58,129,41,50,58,61,229,49,58,231,160,49,58,128,92,49,58,6,24,49,58,123,211,48,58,222,142,48,58,47,74,48,58,110,5,48,58,156,192,47,58,183,123,47,58,194,54,47,58,186,241,46,58,161,172,46,58,119,103,46,58,59,34,46,58,237,220,45,58,142,151,45,58,29,82,45,58,155,12,45,58,8,199,44,58,99,129,44,58,173,59,44,58,230,245,43,58,13,176,43,58,35,106,43,58,40,36,43,58,28,222,42,58,254,151,42,58,208,81,42,58,144,11,42,58,63,197,41,58,222,126,41,58,107,56,41,58,231,241,40,58,82,171,40,58,173,100,
40,58,246,29,40,58,47,215,39,58,87,144,39,58,110,73,39,58,116,2,39,58,106,187,38,58,79,116,38,58,35,45,38,58,231,229,37,58,154,158,37,58,60,87,37,58,206,15,37,58,79,200,36,58,192,128,36,58,33,57,36,58,113,241,35,58,176,169,35,58,224,97,35,58,255,25,35,58,13,210,34,58,12,138,34,58,250,65,34,58,216,249,33,58,165,177,33,58,99,105,33,58,17,33,33,58,174,216,32,58,59,144,32,58,185,71,32,58,38,255,31,58,132,182,31,58,209,109,31,58,15,37,31,58,60,220,30,58,90,147,30,58,104,74,30,58,103,1,30,58,85,184,29,
58,52,111,29,58,3,38,29,58,195,220,28,58,115,147,28,58,19,74,28,58,164,0,28,58,37,183,27,58,151,109,27,58,249,35,27,58,76,218,26,58,144,144,26,58,196,70,26,58,233,252,25,58,254,178,25,58,5,105,25,58,252,30,25,58,228,212,24,58,188,138,24,58,134,64,24,58,64,246,23,58,235,171,23,58,136,97,23,58,21,23,23,58,147,204,22,58,3,130,22,58,99,55,22,58,181,236,21,58,247,161,21,58,43,87,21,58,80,12,21,58,103,193,20,58,110,118,20,58,103,43,20,58,82,224,19,58,45,149,19,58,250,73,19,58,185,254,18,58,105,179,18,58,
10,104,18,58,157,28,18,58,33,209,17,58,152,133,17,58,255,57,17,58,89,238,16,58,164,162,16,58,225,86,16,58,15,11,16,58,48,191,15,58,66,115,15,58,70,39,15,58,60,219,14,58,36,143,14,58,254,66,14,58,201,246,13,58,135,170,13,58,55,94,13,58,217,17,13,58,109,197,12,58,243,120,12,58,108,44,12,58,214,223,11,58,51,147,11,58,130,70,11,58,196,249,10,58,247,172,10,58,30,96,10,58,54,19,10,58,65,198,9,58,63,121,9,58,47,44,9,58,17,223,8,58,230,145,8,58,174,68,8,58,104,247,7,58,21,170,7,58,181,92,7,58,72,15,7,58,
205,193,6,58,69,116,6,58,176,38,6,58,14,217,5,58,94,139,5,58,162,61,5,58,216,239,4,58,2,162,4,58,30,84,4,58,46,6,4,58,49,184,3,58,39,106,3,58,16,28,3,58,236,205,2,58,188,127,2,58,126,49,2,58,52,227,1,58,222,148,1,58,123,70,1,58,11,248,0,58,142,169,0,58,5,91,0,58,112,12,0,58,156,123,255,57,64,222,254,57,202,64,254,57,60,163,253,57,149,5,253,57,214,103,252,57,254,201,251,57,13,44,251,57,4,142,250,57,227,239,249,57,170,81,249,57,88,179,248,57,239,20,248,57,109,118,247,57,211,215,246,57,33,57,246,57,
88,154,245,57,118,251,244,57,125,92,244,57,108,189,243,57,68,30,243,57,4,127,242,57,173,223,241,57,62,64,241,57,184,160,240,57,27,1,240,57,103,97,239,57,155,193,238,57,185,33,238,57,191,129,237,57,175,225,236,57,135,65,236,57,73,161,235,57,244,0,235,57,137,96,234,57,7,192,233,57,110,31,233,57,191,126,232,57,250,221,231,57,31,61,231,57,45,156,230,57,37,251,229,57,7,90,229,57,211,184,228,57,136,23,228,57,41,118,227,57,179,212,226,57,39,51,226,57,134,145,225,57,207,239,224,57,3,78,224,57,33,172,223,
57,42,10,223,57,29,104,222,57,251,197,221,57,196,35,221,57,120,129,220,57,23,223,219,57,161,60,219,57,21,154,218,57,117,247,217,57,192,84,217,57,247,177,216,57,25,15,216,57,38,108,215,57,31,201,214,57,3,38,214,57,211,130,213,57,142,223,212,57,54,60,212,57,201,152,211,57,72,245,210,57,179,81,210,57,10,174,209,57,77,10,209,57,125,102,208,57,152,194,207,57,160,30,207,57,148,122,206,57,117,214,205,57,66,50,205,57,252,141,204,57,163,233,203,57,54,69,203,57,182,160,202,57,35,252,201,57,125,87,201,57,196,
178,200,57,248,13,200,57,25,105,199,57,39,196,198,57,35,31,198,57,12,122,197,57,226,212,196,57,166,47,196,57,88,138,195,57,247,228,194,57,132,63,194,57,254,153,193,57,103,244,192,57,189,78,192,57,2,169,191,57,52,3,191,57,85,93,190,57,99,183,189,57,96,17,189,57,76,107,188,57,38,197,187,57,238,30,187,57,165,120,186,57,74,210,185,57,222,43,185,57,97,133,184,57,211,222,183,57,51,56,183,57,131,145,182,57,193,234,181,57,239,67,181,57,12,157,180,57,24,246,179,57,20,79,179,57,254,167,178,57,217,0,178,57,
163,89,177,57,92,178,176,57,5,11,176,57,158,99,175,57,39,188,174,57,159,20,174,57,8,109,173,57,96,197,172,57,169,29,172,57,226,117,171,57,11,206,170,57,36,38,170,57,46,126,169,57,40,214,168,57,19,46,168,57,238,133,167,57,186,221,166,57,119,53,166,57,37,141,165,57,195,228,164,57,82,60,164,57,211,147,163,57,68,235,162,57,167,66,162,57,251,153,161,57,64,241,160,57,118,72,160,57,158,159,159,57,184,246,158,57,195,77,158,57,192,164,157,57,174,251,156,57,142,82,156,57,96,169,155,57,37,0,155,57,219,86,154,
57,131,173,153,57,29,4,153,57,170,90,152,57,40,177,151,57,154,7,151,57,253,93,150,57,84,180,149,57,156,10,149,57,216,96,148,57,6,183,147,57,39,13,147,57,59,99,146,57,65,185,145,57,59,15,145,57,40,101,144,57,8,187,143,57,219,16,143,57,162,102,142,57,92,188,141,57,9,18,141,57,170,103,140,57,62,189,139,57,198,18,139,57,66,104,138,57,178,189,137,57,21,19,137,57,109,104,136,57,184,189,135,57,248,18,135,57,43,104,134,57,83,189,133,57,112,18,133,57,128,103,132,57,133,188,131,57,127,17,131,57,109,102,130,
57,80,187,129,57,39,16,129,57,244,100,128,57,106,115,127,57,214,28,126,57,44,198,124,57,109,111,123,57,152,24,122,57,173,193,120,57,173,106,119,57,152,19,118,57,109,188,116,57,46,101,115,57,218,13,114,57,113,182,112,57,244,94,111,57,98,7,110,57,188,175,108,57,2,88,107,57,52,0,106,57,83,168,104,57,93,80,103,57,84,248,101,57,56,160,100,57,8,72,99,57,198,239,97,57,112,151,96,57,8,63,95,57,141,230,93,57,0,142,92,57,96,53,91,57,174,220,89,57,234,131,88,57,20,43,87,57,44,210,85,57,50,121,84,57,39,32,83,
57,11,199,81,57,222,109,80,57,159,20,79,57,80,187,77,57,239,97,76,57,127,8,75,57,253,174,73,57,108,85,72,57,202,251,70,57,24,162,69,57,86,72,68,57,133,238,66,57,163,148,65,57,179,58,64,57,179,224,62,57,164,134,61,57,134,44,60,57,88,210,58,57,29,120,57,57,210,29,56,57,122,195,54,57,18,105,53,57,157,14,52,57,26,180,50,57,137,89,49,57,234,254,47,57,61,164,46,57,131,73,45,57,188,238,43,57,232,147,42,57,6,57,41,57,24,222,39,57,29,131,38,57,22,40,37,57,2,205,35,57,226,113,34,57,181,22,33,57,125,187,31,
57,57,96,30,57,233,4,29,57,141,169,27,57,39,78,26,57,181,242,24,57,55,151,23,57,175,59,22,57,28,224,20,57,127,132,19,57,214,40,18,57,36,205,16,57,103,113,15,57,160,21,14,57,207,185,12,57,245,93,11,57,16,2,10,57,34,166,8,57,43,74,7,57,43,238,5,57,33,146,4,57,15,54,3,57,243,217,1,57,207,125,0,57,70,67,254,56,220,138,251,56,98,210,248,56,216,25,246,56,62,97,243,56,149,168,240,56,220,239,237,56,20,55,235,56,62,126,232,56,89,197,229,56,102,12,227,56,101,83,224,56,87,154,221,56,60,225,218,56,20,40,216,
56,223,110,213,56,157,181,210,56,80,252,207,56,247,66,205,56,146,137,202,56,34,208,199,56,167,22,197,56,34,93,194,56,146,163,191,56,249,233,188,56,85,48,186,56,169,118,183,56,243,188,180,56,52,3,178,56,108,73,175,56,157,143,172,56,197,213,169,56,229,27,167,56,255,97,164,56,17,168,161,56,28,238,158,56,33,52,156,56,31,122,153,56,24,192,150,56,11,6,148,56,248,75,145,56,224,145,142,56,196,215,139,56,163,29,137,56,126,99,134,56,85,169,131,56,40,239,128,56,241,105,124,56,139,245,118,56,31,129,113,56,175,
12,108,56,58,152,102,56,193,35,97,56,69,175,91,56,199,58,86,56,71,198,80,56,197,81,75,56,66,221,69,56,191,104,64,56,60,244,58,56,186,127,53,56,58,11,48,56,188,150,42,56,64,34,37,56,199,173,31,56,83,57,26,56,226,196,20,56,119,80,15,56,17,220,9,56,177,103,4,56,176,230,253,55,12,254,242,55,120,21,232,55,245,44,221,55,132,68,210,55,38,92,199,55,220,115,188,55,168,139,177,55,138,163,166,55,133,187,155,55,152,211,144,55,197,235,133,55,28,8,118,55,230,56,96,55,236,105,74,55,47,155,52,55,178,204,30,55,119,
254,8,55,1,97,230,54,162,197,186,54,214,42,143,54,63,33,71,54,22,220,223,53,181,224,197,52,80,210,121,181,236,163,21,182,231,209,108,182,63,255,161,182,211,148,205,182,170,41,249,182,225,94,18,183,138,40,40,183,206,241,61,183,171,186,83,183,30,131,105,183,37,75,127,183,95,137,138,183,244,108,149,183,78,80,160,183,111,51,171,183,84,22,182,183,251,248,192,183,101,219,203,183,144,189,214,183,122,159,225,183,35,129,236,183,137,98,247,183,214,33,1,184,68,146,6,184,144,2,12,184,184,114,17,184,188,226,22,
184,155,82,28,184,84,194,33,184,232,49,39,184,85,161,44,184,155,16,50,184,185,127,55,184,176,238,60,184,125,93,66,184,33,204,71,184,155,58,77,184,234,168,82,184,14,23,88,184,7,133,93,184,211,242,98,184,115,96,104,184,229,205,109,184,41,59,115,184,62,168,120,184,36,21,126,184,238,192,129,184,49,119,132,184,91,45,135,184,109,227,137,184,102,153,140,184,70,79,143,184,12,5,146,184,184,186,148,184,74,112,151,184,194,37,154,184,30,219,156,184,96,144,159,184,135,69,162,184,146,250,164,184,129,175,167,184,
83,100,170,184,10,25,173,184,163,205,175,184,32,130,178,184,127,54,181,184,193,234,183,184,229,158,186,184,234,82,189,184,210,6,192,184,154,186,194,184,67,110,197,184,205,33,200,184,56,213,202,184,130,136,205,184,173,59,208,184,183,238,210,184,160,161,213,184,104,84,216,184,15,7,219,184,148,185,221,184,247,107,224,184,57,30,227,184,87,208,229,184,83,130,232,184,44,52,235,184,226,229,237,184,116,151,240,184,226,72,243,184,44,250,245,184,81,171,248,184,82,92,251,184,46,13,254,184,242,94,0,185,59,183,
1,185,112,15,3,185,147,103,4,185,162,191,5,185,158,23,7,185,134,111,8,185,91,199,9,185,27,31,11,185,200,118,12,185,97,206,13,185,230,37,15,185,86,125,16,185,178,212,17,185,249,43,19,185,44,131,20,185,73,218,21,185,81,49,23,185,69,136,24,185,34,223,25,185,235,53,27,185,157,140,28,185,58,227,29,185,193,57,31,185,50,144,32,185,141,230,33,185,210,60,35,185,0,147,36,185,23,233,37,185,24,63,39,185,1,149,40,185,212,234,41,185,143,64,43,185,52,150,44,185,192,235,45,185,53,65,47,185,147,150,48,185,216,235,
49,185,6,65,51,185,27,150,52,185,24,235,53,185,252,63,55,185,200,148,56,185,123,233,57,185,22,62,59,185,151,146,60,185,255,230,61,185,78,59,63,185,132,143,64,185,159,227,65,185,162,55,67,185,138,139,68,185,88,223,69,185,13,51,71,185,166,134,72,185,38,218,73,185,139,45,75,185,213,128,76,185,5,212,77,185,25,39,79,185,19,122,80,185,241,204,81,185,180,31,83,185,91,114,84,185,230,196,85,185,86,23,87,185,170,105,88,185,226,187,89,185,253,13,91,185,252,95,92,185,223,177,93,185,165,3,95,185,78,85,96,185,
219,166,97,185,74,248,98,185,156,73,100,185,209,154,101,185,232,235,102,185,226,60,104,185,190,141,105,185,124,222,106,185,28,47,108,185,158,127,109,185,1,208,110,185,70,32,112,185,109,112,113,185,117,192,114,185,94,16,116,185,40,96,117,185,211,175,118,185,94,255,119,185,203,78,121,185,23,158,122,185,68,237,123,185,81,60,125,185,63,139,126,185,12,218,127,185,92,148,128,185,163,59,129,185,217,226,129,185,254,137,130,185,20,49,131,185,25,216,131,185,13,127,132,185,241,37,133,185,196,204,133,185,134,
115,134,185,56,26,135,185,216,192,135,185,104,103,136,185,231,13,137,185,84,180,137,185,177,90,138,185,252,0,139,185,54,167,139,185,95,77,140,185,118,243,140,185,124,153,141,185,112,63,142,185,83,229,142,185,36,139,143,185,227,48,144,185,144,214,144,185,44,124,145,185,181,33,146,185,45,199,146,185,146,108,147,185,229,17,148,185,38,183,148,185,85,92,149,185,113,1,150,185,123,166,150,185,115,75,151,185,88,240,151,185,42,149,152,185,233,57,153,185,150,222,153,185,48,131,154,185,183,39,155,185,43,204,
155,185,140,112,156,185,218,20,157,185,21,185,157,185,60,93,158,185,80,1,159,185,81,165,159,185,63,73,160,185,24,237,160,185,223,144,161,185,145,52,162,185,48,216,162,185,187,123,163,185,51,31,164,185,150,194,164,185,230,101,165,185,33,9,166,185,72,172,166,185,91,79,167,185,90,242,167,185,69,149,168,185,27,56,169,185,221,218,169,185,138,125,170,185,34,32,171,185,166,194,171,185,22,101,172,185,112,7,173,185,182,169,173,185,231,75,174,185,2,238,174,185,9,144,175,185,251,49,176,185,215,211,176,185,158,
117,177,185,80,23,178,185,237,184,178,185,116,90,179,185,230,251,179,185,66,157,180,185,136,62,181,185,185,223,181,185,212,128,182,185,217,33,183,185,200,194,183,185,161,99,184,185,100,4,185,185,17,165,185,185,168,69,186,185,41,230,186,185,148,134,187,185,232,38,188,185,37,199,188,185,76,103,189,185,93,7,190,185,87,167,190,185,58,71,191,185,7,231,191,185,189,134,192,185,92,38,193,185,228,197,193,185,84,101,194,185,174,4,195,185,241,163,195,185,29,67,196,185,49,226,196,185,46,129,197,185,19,32,198,
185,225,190,198,185,152,93,199,185,55,252,199,185,190,154,200,185,45,57,201,185,133,215,201,185,197,117,202,185,237,19,203,185,253,177,203,185,245,79,204,185,213,237,204,185,157,139,205,185,76,41,206,185,227,198,206,185,98,100,207,185,201,1,208,185,22,159,208,185,76,60,209,185,104,217,209,185,108,118,210,185,88,19,211,185,42,176,211,185,228,76,212,185,132,233,212,185,12,134,213,185,123,34,214,185,208,190,214,185,12,91,215,185,47,247,215,185,57,147,216,185,41,47,217,185,0,203,217,185,189,102,218,185,
97,2,219,185,235,157,219,185,91,57,220,185,178,212,220,185,239,111,221,185,18,11,222,185,27,166,222,185,10,65,223,185,223,219,223,185,153,118,224,185,58,17,225,185,192,171,225,185,44,70,226,185,126,224,226,185,181,122,227,185,209,20,228,185,211,174,228,185,187,72,229,185,135,226,229,185,57,124,230,185,208,21,231,185,76,175,231,185,173,72,232,185,243,225,232,185,31,123,233,185,46,20,234,185,35,173,234,185,253,69,235,185,187,222,235,185,94,119,236,185,229,15,237,185,81,168,237,185,161,64,238,185,213,
216,238,185,238,112,239,185,235,8,240,185,205,160,240,185,146,56,241,185,59,208,241,185,201,103,242,185,58,255,242,185,144,150,243,185,201,45,244,185,229,196,244,185,230,91,245,185,202,242,245,185,146,137,246,185,61,32,247,185,203,182,247,185,61,77,248,185,147,227,248,185,203,121,249,185,231,15,250,185,230,165,250,185,200,59,251,185,141,209,251,185,53,103,252,185,192,252,252,185,46,146,253,185,126,39,254,185,177,188,254,185,199,81,255,185,192,230,255,185,205,61,0,186,44,136,0,186,124,210,0,186,189,
28,1,186,239,102,1,186,19,177,1,186,39,251,1,186,45,69,2,186,35,143,2,186,11,217,2,186,227,34,3,186,173,108,3,186,103,182,3,186,18,0,4,186,174,73,4,186,59,147,4,186,185,220,4,186,39,38,5,186,134,111,5,186,214,184,5,186,23,2,6,186,72,75,6,186,106,148,6,186,124,221,6,186,127,38,7,186,114,111,7,186,86,184,7,186,43,1,8,186,239,73,8,186,165,146,8,186,74,219,8,186,224,35,9,186,102,108,9,186,221,180,9,186,68,253,9,186,155,69,10,186,226,141,10,186,25,214,10,186,65,30,11,186,89,102,11,186,96,174,11,186,88,
246,11,186,64,62,12,186,24,134,12,186,224,205,12,186,151,21,13,186,63,93,13,186,214,164,13,186,94,236,13,186,213,51,14,186,60,123,14,186,147,194,14,186,217,9,15,186,15,81,15,186,53,152,15,186,75,223,15,186,80,38,16,186,69,109,16,186,41,180,16,186,253,250,16,186,192,65,17,186,115,136,17,186,21,207,17,186,167,21,18,186,40,92,18,186,152,162,18,186,248,232,18,186,71,47,19,186,133,117,19,186,179,187,19,186,208,1,20,186,220,71,20,186,215,141,20,186,194,211,20,186,155,25,21,186,100,95,21,186,27,165,21,186,
194,234,21,186,87,48,22,186,220,117,22,186,80,187,22,186,178,0,23,186,3,70,23,186,68,139,23,186,115,208,23,186,144,21,24,186,157,90,24,186,152,159,24,186,131,228,24,186,91,41,25,186,35,110,25,186,217,178,25,186,126,247,25,186,17,60,26,186,147,128,26,186,3,197,26,186,98,9,27,186,175,77,27,186,235,145,27,186,21,214,27,186,46,26,28,186,53,94,28,186,42,162,28,186,14,230,28,186,224,41,29,186,160,109,29,186,78,177,29,186,235,244,29,186,117,56,30,186,238,123,30,186,85,191,30,186,170,2,31,186,238,69,31,186,
31,137,31,186,62,204,31,186,75,15,32,186,70,82,32,186,47,149,32,186,6,216,32,186,203,26,33,186,126,93,33,186,31,160,33,186,173,226,33,186,41,37,34,186,147,103,34,186,235,169,34,186,48,236,34,186,99,46,35,186,131,112,35,186,145,178,35,186,141,244,35,186,119,54,36,186,77,120,36,186,18,186,36,186,196,251,36,186,99,61,37,186,240,126,37,186,106,192,37,186,209,1,38,186,38,67,38,186,104,132,38,186,152,197,38,186,181,6,39,186,191,71,39,186,182,136,39,186,154,201,39,186,108,10,40,186,43,75,40,186,214,139,
40,186,111,204,40,186,245,12,41,186,104,77,41,186,200,141,41,186,21,206,41,186,79,14,42,186,118,78,42,186,138,142,42,186,139,206,42,186,120,14,43,186,83,78,43,186,26,142,43,186,206,205,43,186,111,13,44,186,252,76,44,186,119,140,44,186,221,203,44,186,49,11,45,186,113,74,45,186,158,137,45,186,183,200,45,186,189,7,46,186,176,70,46,186,143,133,46,186,90,196,46,186,18,3,47,186,182,65,47,186,71,128,47,186,196,190,47,186,45,253,47,186,131,59,48,186,197,121,48,186,244,183,48,186,14,246,48,186,21,52,49,186,
8,114,49,186,232,175,49,186,179,237,49,186,106,43,50,186,14,105,50,186,158,166,50,186,26,228,50,186,130,33,51,186,213,94,51,186,21,156,51,186,65,217,51,186,89,22,52,186,92,83,52,186,76,144,52,186,39,205,52,186,239,9,53,186,162,70,53,186,64,131,53,186,203,191,53,186,66,252,53,186,164,56,54,186,241,116,54,186,43,177,54,186,80,237,54,186,97,41,55,186,93,101,55,186,69,161,55,186,24,221,55,186,215,24,56,186,130,84,56,186,24,144,56,186,153,203,56,186,6,7,57,186,95,66,57,186,162,125,57,186,209,184,57,186,
236,243,57,186,242,46,58,186,227,105,58,186,191,164,58,186,134,223,58,186,57,26,59,186,215,84,59,186,96,143,59,186,213,201,59,186,52,4,60,186,127,62,60,186,180,120,60,186,213,178,60,186,225,236,60,186,216,38,61,186,185,96,61,186,134,154,61,186,62,212,61,186,224,13,62,186,110,71,62,186,230,128,62,186,74,186,62,186,152,243,62,186,209,44,63,186,244,101,63,186,3,159,63,186,252,215,63,186,224,16,64,186,175,73,64,186,104,130,64,186,12,187,64,186,154,243,64,186,20,44,65,186,120,100,65,186,198,156,65,186,
255,212,65,186,34,13,66,186,48,69,66,186,41,125,66,186,12,181,66,186,217,236,66,186,145,36,67,186,51,92,67,186,191,147,67,186,54,203,67,186,151,2,68,186,227,57,68,186,25,113,68,186,57,168,68,186,67,223,68,186,55,22,69,186,22,77,69,186,223,131,69,186,146,186,69,186,47,241,69,186,182,39,70,186,40,94,70,186,131,148,70,186,200,202,70,186,248,0,71,186,17,55,71,186,21,109,71,186,2,163,71,186,218,216,71,186,155,14,72,186,70,68,72,186,219,121,72,186,90,175,72,186,195,228,72,186,21,26,73,186,82,79,73,186,
120,132,73,186,136,185,73,186,129,238,73,186,100,35,74,186,49,88,74,186,232,140,74,186,136,193,74,186,18,246,74,186,134,42,75,186,227,94,75,186,42,147,75,186,90,199,75,186,116,251,75,186,119,47,76,186,100,99,76,186,58,151,76,186,250,202,76,186,163,254,76,186,53,50,77,186,177,101,77,186,22,153,77,186,101,204,77,186,157,255,77,186,190,50,78,186,200,101,78,186,188,152,78,186,153,203,78,186,95,254,78,186,15,49,79,186,167,99,79,186,41,150,79,186,148,200,79,186,232,250,79,186,37,45,80,186,75,95,80,186,
91,145,80,186,83,195,80,186,52,245,80,186,255,38,81,186,178,88,81,186,78,138,81,186,211,187,81,186,66,237,81,186,153,30,82,186,217,79,82,186,2,129,82,186,19,178,82,186,14,227,82,186,241,19,83,186,189,68,83,186,114,117,83,186,16,166,83,186,151,214,83,186,6,7,84,186,94,55,84,186,158,103,84,186,199,151,84,186,217,199,84,186,212,247,84,186,183,39,85,186,131,87,85,186,55,135,85,186,212,182,85,186,89,230,85,186,199,21,86,186,29,69,86,186,92,116,86,186,131,163,86,186,147,210,86,186,139,1,87,186,108,48,87,
186,53,95,87,186,230,141,87,186,128,188,87,186,2,235,87,186,108,25,88,186,191,71,88,186,250,117,88,186,29,164,88,186,40,210,88,186,28,0,89,186,248,45,89,186,188,91,89,186,104,137,89,186,253,182,89,186,121,228,89,186,222,17,90,186,43,63,90,186,95,108,90,186,124,153,90,186,129,198,90,186,110,243,90,186,67,32,91,186,0,77,91,186,165,121,91,186,50,166,91,186,167,210,91,186,4,255,91,186,73,43,92,186,117,87,92,186,138,131,92,186,134,175,92,186,107,219,92,186,55,7,93,186,235,50,93,186,134,94,93,186,10,138,
93,186,117,181,93,186,200,224,93,186,3,12,94,186,37,55,94,186,47,98,94,186,33,141,94,186,250,183,94,186,187,226,94,186,100,13,95,186,245,55,95,186,108,98,95,186,204,140,95,186,19,183,95,186,66,225,95,186,88,11,96,186,86,53,96,186,59,95,96,186,7,137,96,186,188,178,96,186,87,220,96,186,218,5,97,186,69,47,97,186,151,88,97,186,208,129,97,186,240,170,97,186,248,211,97,186,232,252,97,186,190,37,98,186,124,78,98,186,34,119,98,186,174,159,98,186,34,200,98,186,125,240,98,186,191,24,99,186,233,64,99,186,250,
104,99,186,242,144,99,186,209,184,99,186,151,224,99,186,68,8,100,186,217,47,100,186,84,87,100,186,183,126,100,186,1,166,100,186,50,205,100,186,74,244,100,186,73,27,101,186,47,66,101,186,252,104,101,186,176,143,101,186,75,182,101,186,205,220,101,186,54,3,102,186,134,41,102,186,188,79,102,186,218,117,102,186,223,155,102,186,202,193,102,186,156,231,102,186,85,13,103,186,245,50,103,186,124,88,103,186,234,125,103,186,62,163,103,186,121,200,103,186,155,237,103,186,164,18,104,186,148,55,104,186,106,92,104,
186,39,129,104,186,202,165,104,186,85,202,104,186,197,238,104,186,29,19,105,186,91,55,105,186,128,91,105,186,140,127,105,186,126,163,105,186,86,199,105,186,22,235,105,186,187,14,106,186,72,50,106,186,187,85,106,186,20,121,106,186,84,156,106,186,122,191,106,186,135,226,106,186,123,5,107,186,84,40,107,186,21,75,107,186,187,109,107,186,72,144,107,186,188,178,107,186,22,213,107,186,86,247,107,186,125,25,108,186,138,59,108,186,125,93,108,186,87,127,108,186,23,161,108,186,189,194,108,186,73,228,108,186,
188,5,109,186,21,39,109,186,85,72,109,186,122,105,109,186,134,138,109,186,120,171,109,186,80,204,109,186,15,237,109,186,179,13,110,186,62,46,110,186,175,78,110,186,6,111,110,186,67,143,110,186,103,175,110,186,112,207,110,186,96,239,110,186,53,15,111,186,241,46,111,186,147,78,111,186,26,110,111,186,136,141,111,186,220,172,111,186,22,204,111,186,54,235,111,186,60,10,112,186,39,41,112,186,249,71,112,186,177,102,112,186,79,133,112,186,210,163,112,186,60,194,112,186,139,224,112,186,193,254,112,186,220,
28,113,186,221,58,113,186,196,88,113,186,145,118,113,186,68,148,113,186,220,177,113,186,90,207,113,186,191,236,113,186,9,10,114,186,56,39,114,186,78,68,114,186,73,97,114,186,42,126,114,186,241,154,114,186,158,183,114,186,48,212,114,186,168,240,114,186,6,13,115,186,73,41,115,186,114,69,115,186,129,97,115,186,118,125,115,186,80,153,115,186,16,181,115,186,181,208,115,186,64,236,115,186,177,7,116,186,7,35,116,186,67,62,116,186,100,89,116,186,107,116,116,186,88,143,116,186,42,170,116,186,226,196,116,186,
127,223,116,186,2,250,116,186,106,20,117,186,184,46,117,186,235,72,117,186,4,99,117,186,2,125,117,186,230,150,117,186,175,176,117,186,94,202,117,186,242,227,117,186,108,253,117,186,203,22,118,186,15,48,118,186,57,73,118,186,72,98,118,186,61,123,118,186,23,148,118,186,214,172,118,186,123,197,118,186,5,222,118,186,116,246,118,186,201,14,119,186,3,39,119,186,35,63,119,186,40,87,119,186,18,111,119,186,225,134,119,186,150,158,119,186,48,182,119,186,175,205,119,186,19,229,119,186,93,252,119,186,140,19,
120,186,160,42,120,186,154,65,120,186,120,88,120,186,60,111,120,186,229,133,120,186,116,156,120,186,231,178,120,186,64,201,120,186,126,223,120,186,161,245,120,186,169,11,121,186,150,33,121,186,105,55,121,186,33,77,121,186,189,98,121,186,63,120,121,186,166,141,121,186,242,162,121,186,36,184,121,186,58,205,121,186,53,226,121,186,22,247,121,186,219,11,122,186,134,32,122,186,22,53,122,186,139,73,122,186,228,93,122,186,35,114,122,186,71,134,122,186,80,154,122,186,62,174,122,186,17,194,122,186,201,213,
122,186,102,233,122,186,232,252,122,186,78,16,123,186,154,35,123,186,203,54,123,186,225,73,123,186,220,92,123,186,188,111,123,186,128,130,123,186,42,149,123,186,184,167,123,186,44,186,123,186,132,204,123,186,194,222,123,186,228,240,123,186,235,2,124,186,215,20,124,186,168,38,124,186,94,56,124,186,249,73,124,186,120,91,124,186,221,108,124,186,38,126,124,186,84,143,124,186,103,160,124,186,95,177,124,186,60,194,124,186,253,210,124,186,164,227,124,186,47,244,124,186,159,4,125,186,244,20,125,186,45,37,
125,186,76,53,125,186,79,69,125,186,55,85,125,186,4,101,125,186,182,116,125,186,76,132,125,186,199,147,125,186,39,163,125,186,108,178,125,186,149,193,125,186,164,208,125,186,151,223,125,186,110,238,125,186,43,253,125,186,204,11,126,186,82,26,126,186,189,40,126,186,12,55,126,186,64,69,126,186,89,83,126,186,87,97,126,186,57,111,126,186,0,125,126,186,171,138,126,186,60,152,126,186,177,165,126,186,11,179,126,186,73,192,126,186,108,205,126,186,116,218,126,186,96,231,126,186,49,244,126,186,231,0,127,186,
130,13,127,186,1,26,127,186,100,38,127,186,173,50,127,186,218,62,127,186,235,74,127,186,226,86,127,186,189,98,127,186,124,110,127,186,33,122,127,186,169,133,127,186,23,145,127,186,105,156,127,186,160,167,127,186,187,178,127,186,187,189,127,186,159,200,127,186,104,211,127,186,22,222,127,186,168,232,127,186,31,243,127,186,123,253,127,186,221,3,128,186,240,8,128,186,244,13,128,186,235,18,128,186,213,23,128,186,176,28,128,186,126,33,128,186,62,38,128,186,240,42,128,186,149,47,128,186,44,52,128,186,181,
56,128,186,49,61,128,186,158,65,128,186,254,69,128,186,81,74,128,186,149,78,128,186,204,82,128,186,245,86,128,186,17,91,128,186,31,95,128,186,30,99,128,186,17,103,128,186,245,106,128,186,204,110,128,186,149,114,128,186,80,118,128,186,254,121,128,186,158,125,128,186,48,129,128,186,180,132,128,186,43,136,128,186,148,139,128,186,239,142,128,186,60,146,128,186,124,149,128,186,174,152,128,186,210,155,128,186,233,158,128,186,242,161,128,186,237,164,128,186,218,167,128,186,185,170,128,186,139,173,128,186,
79,176,128,186,5,179,128,186,174,181,128,186,73,184,128,186,214,186,128,186,85,189,128,186,199,191,128,186,42,194,128,186,129,196,128,186,201,198,128,186,3,201,128,186,48,203,128,186,79,205,128,186,97,207,128,186,100,209,128,186,90,211,128,186,66,213,128,186,29,215,128,186,233,216,128,186,168,218,128,186,89,220,128,186,253,221,128,186,146,223,128,186,26,225,128,186,148,226,128,186,1,228,128,186,95,229,128,186,176,230,128,186,244,231,128,186,41,233,128,186,81,234,128,186,107,235,128,186,119,236,128,
186,117,237,128,186,102,238,128,186,73,239,128,186,30,240,128,186,230,240,128,186,160,241,128,186,76,242,128,186,234,242,128,186,122,243,128,186,253,243,128,186,114,244,128,186,218,244,128,186,51,245,128,186,127,245,128,186,189,245,128,186,238,245,128,186,16,246,128,186,37,246,128,186,44,246,128,186,38,246,128,186,18,246,128,186,240,245,128,186,192,245,128,186,130,245,128,186,55,245,128,186,222,244,128,186,120,244,128,186,3,244,128,186,129,243,128,186,241,242,128,186,84,242,128,186,169,241,128,186,
240,240,128,186,41,240,128,186,85,239,128,186,115,238,128,186,131,237,128,186,133,236,128,186,122,235,128,186,97,234,128,186,58,233,128,186,6,232,128,186,196,230,128,186,116,229,128,186,23,228,128,186,171,226,128,186,51,225,128,186,172,223,128,186,24,222,128,186,118,220,128,186,198,218,128,186,9,217,128,186,62,215,128,186,101,213,128,186,126,211,128,186,138,209,128,186,136,207,128,186,121,205,128,186,92,203,128,186,49,201,128,186,248,198,128,186,178,196,128,186,94,194,128,186,253,191,128,186,141,
189,128,186,16,187,128,186,134,184,128,186,238,181,128,186,72,179,128,186,148,176,128,186,211,173,128,186,4,171,128,186,39,168,128,186,61,165,128,186,69,162,128,186,64,159,128,186,45,156,128,186,12,153,128,186,221,149,128,186,161,146,128,186,88,143,128,186,0,140,128,186,155,136,128,186,41,133,128,186,168,129,128,186,26,126,128,186,127,122,128,186,214,118,128,186,31,115,128,186,90,111,128,186,136,107,128,186,169,103,128,186,188,99,128,186,193,95,128,186,184,91,128,186,162,87,128,186,126,83,128,186,
77,79,128,186,14,75,128,186,194,70,128,186,104,66,128,186,0,62,128,186,139,57,128,186,8,53,128,186,120,48,128,186,218,43,128,186,46,39,128,186,117,34,128,186,174,29,128,186,218,24,128,186,248,19,128,186,9,15,128,186,12,10,128,186,1,5,128,186,210,255,127,186,135,245,127,186,32,235,127,186,159,224,127,186,2,214,127,186,75,203,127,186,120,192,127,186,138,181,127,186,129,170,127,186,93,159,127,186,30,148,127,186,197,136,127,186,79,125,127,186,191,113,127,186,20,102,127,186,78,90,127,186,109,78,127,186,
113,66,127,186,90,54,127,186,40,42,127,186,219,29,127,186,115,17,127,186,240,4,127,186,82,248,126,186,153,235,126,186,197,222,126,186,214,209,126,186,204,196,126,186,167,183,126,186],"i8",4,y.a+696320);
Q([104,170,126,186,13,157,126,186,152,143,126,186,7,130,126,186,92,116,126,186,150,102,126,186,181,88,126,186,185,74,126,186,162,60,126,186,113,46,126,186,36,32,126,186,189,17,126,186,59,3,126,186,158,244,125,186,230,229,125,186,19,215,125,186,38,200,125,186,30,185,125,186,251,169,125,186,189,154,125,186,101,139,125,186,241,123,125,186,99,108,125,186,186,92,125,186,247,76,125,186,24,61,125,186,31,45,125,186,12,29,125,186,221,12,125,186,148,252,124,186,48,236,124,186,178,219,124,186,25,203,124,186,
101,186,124,186,150,169,124,186,173,152,124,186,169,135,124,186,139,118,124,186,82,101,124,186,254,83,124,186,144,66,124,186,7,49,124,186,100,31,124,186,165,13,124,186,205,251,123,186,218,233,123,186,204,215,123,186,164,197,123,186,97,179,123,186,4,161,123,186,140,142,123,186,249,123,123,186,77,105,123,186,133,86,123,186,163,67,123,186,167,48,123,186,144,29,123,186,95,10,123,186,20,247,122,186,174,227,122,186,45,208,122,186,146,188,122,186,221,168,122,186,13,149,122,186,35,129,122,186,31,109,122,
186,0,89,122,186,199,68,122,186,115,48,122,186,5,28,122,186,125,7,122,186,219,242,121,186,30,222,121,186,71,201,121,186,86,180,121,186,74,159,121,186,36,138,121,186,228,116,121,186,138,95,121,186,21,74,121,186,134,52,121,186,221,30,121,186,26,9,121,186,60,243,120,186,69,221,120,186,51,199,120,186,7,177,120,186,193,154,120,186,97,132,120,186,231,109,120,186,82,87,120,186,164,64,120,186,219,41,120,186,248,18,120,186,251,251,119,186,229,228,119,186,180,205,119,186,105,182,119,186,4,159,119,186,133,135,
119,186,236,111,119,186,57,88,119,186,108,64,119,186,133,40,119,186,132,16,119,186,105,248,118,186,53,224,118,186,230,199,118,186,125,175,118,186,251,150,118,186,95,126,118,186,168,101,118,186,216,76,118,186,238,51,118,186,235,26,118,186,205,1,118,186,150,232,117,186,68,207,117,186,217,181,117,186,84,156,117,186,182,130,117,186,254,104,117,186,43,79,117,186,64,53,117,186,58,27,117,186,27,1,117,186,226,230,116,186,143,204,116,186,35,178,116,186,157,151,116,186,254,124,116,186,68,98,116,186,114,71,
116,186,133,44,116,186,127,17,116,186,96,246,115,186,38,219,115,186,212,191,115,186,103,164,115,186,226,136,115,186,66,109,115,186,137,81,115,186,183,53,115,186,203,25,115,186,198,253,114,186,167,225,114,186,111,197,114,186,30,169,114,186,179,140,114,186,46,112,114,186,145,83,114,186,217,54,114,186,9,26,114,186,31,253,113,186,28,224,113,186,0,195,113,186,202,165,113,186,123,136,113,186,18,107,113,186,145,77,113,186,246,47,113,186,66,18,113,186,116,244,112,186,142,214,112,186,142,184,112,186,117,154,
112,186,67,124,112,186,248,93,112,186,148,63,112,186,22,33,112,186,128,2,112,186,208,227,111,186,7,197,111,186,37,166,111,186,42,135,111,186,23,104,111,186,234,72,111,186,164,41,111,186,69,10,111,186,205,234,110,186,60,203,110,186,146,171,110,186,207,139,110,186,244,107,110,186,255,75,110,186,241,43,110,186,203,11,110,186,140,235,109,186,52,203,109,186,195,170,109,186,57,138,109,186,151,105,109,186,219,72,109,186,7,40,109,186,26,7,109,186,21,230,108,186,246,196,108,186,191,163,108,186,112,130,108,
186,7,97,108,186,134,63,108,186,236,29,108,186,58,252,107,186,111,218,107,186,139,184,107,186,143,150,107,186,122,116,107,186,77,82,107,186,7,48,107,186,169,13,107,186,50,235,106,186,163,200,106,186,251,165,106,186,58,131,106,186,98,96,106,186,112,61,106,186,103,26,106,186,69,247,105,186,10,212,105,186,183,176,105,186,76,141,105,186,201,105,105,186,45,70,105,186,121,34,105,186,173,254,104,186,200,218,104,186,203,182,104,186,182,146,104,186,137,110,104,186,67,74,104,186,229,37,104,186,111,1,104,186,
225,220,103,186,59,184,103,186,125,147,103,186,166,110,103,186,184,73,103,186,177,36,103,186,147,255,102,186,92,218,102,186,13,181,102,186,166,143,102,186,40,106,102,186,145,68,102,186,226,30,102,186,28,249,101,186,61,211,101,186,71,173,101,186,57,135,101,186,19,97,101,186,213,58,101,186,127,20,101,186,17,238,100,186,140,199,100,186,239,160,100,186,58,122,100,186,109,83,100,186,137,44,100,186,140,5,100,186,121,222,99,186,77,183,99,186,10,144,99,186,175,104,99,186,61,65,99,186,179,25,99,186,17,242,
98,186,88,202,98,186,135,162,98,186,159,122,98,186,159,82,98,186,136,42,98,186,89,2,98,186,19,218,97,186,181,177,97,186,64,137,97,186,179,96,97,186,16,56,97,186,84,15,97,186,130,230,96,186,152,189,96,186,151,148,96,186,126,107,96,186,78,66,96,186,7,25,96,186,169,239,95,186,51,198,95,186,166,156,95,186,2,115,95,186,71,73,95,186,117,31,95,186,140,245,94,186,139,203,94,186,116,161,94,186,69,119,94,186,255,76,94,186,163,34,94,186,47,248,93,186,164,205,93,186,2,163,93,186,74,120,93,186,122,77,93,186,148,
34,93,186,150,247,92,186,130,204,92,186,87,161,92,186,21,118,92,186,188,74,92,186,76,31,92,186,198,243,91,186,40,200,91,186,117,156,91,186,170,112,91,186,200,68,91,186,208,24,91,186,194,236,90,186,156,192,90,186,96,148,90,186,14,104,90,186,164,59,90,186,37,15,90,186,142,226,89,186,225,181,89,186,30,137,89,186,68,92,89,186,84,47,89,186,77,2,89,186,48,213,88,186,252,167,88,186,178,122,88,186,82,77,88,186,219,31,88,186,78,242,87,186,171,196,87,186,241,150,87,186,33,105,87,186,59,59,87,186,63,13,87,186,
44,223,86,186,3,177,86,186,196,130,86,186,111,84,86,186,4,38,86,186,131,247,85,186,235,200,85,186,62,154,85,186,122,107,85,186,161,60,85,186,177,13,85,186,172,222,84,186,144,175,84,186,95,128,84,186,24,81,84,186,186,33,84,186,71,242,83,186,190,194,83,186,32,147,83,186,107,99,83,186,161,51,83,186,193,3,83,186,203,211,82,186,191,163,82,186,158,115,82,186,103,67,82,186,26,19,82,186,184,226,81,186,64,178,81,186,178,129,81,186,15,81,81,186,86,32,81,186,136,239,80,186,165,190,80,186,171,141,80,186,157,
92,80,186,121,43,80,186,63,250,79,186,240,200,79,186,140,151,79,186,18,102,79,186,131,52,79,186,223,2,79,186,37,209,78,186,86,159,78,186,114,109,78,186,120,59,78,186,106,9,78,186,70,215,77,186,13,165,77,186,191,114,77,186,92,64,77,186,227,13,77,186,86,219,76,186,180,168,76,186,252,117,76,186,48,67,76,186,78,16,76,186,88,221,75,186,76,170,75,186,44,119,75,186,247,67,75,186,173,16,75,186,78,221,74,186,218,169,74,186,82,118,74,186,180,66,74,186,2,15,74,186,59,219,73,186,96,167,73,186,112,115,73,186,
107,63,73,186,81,11,73,186,35,215,72,186,224,162,72,186,137,110,72,186,29,58,72,186,157,5,72,186,8,209,71,186,94,156,71,186,160,103,71,186,206,50,71,186,231,253,70,186,236,200,70,186,221,147,70,186,185,94,70,186,129,41,70,186,52,244,69,186,212,190,69,186,95,137,69,186,213,83,69,186,56,30,69,186,134,232,68,186,193,178,68,186,231,124,68,186,249,70,68,186,247,16,68,186,224,218,67,186,182,164,67,186,120,110,67,186,38,56,67,186,191,1,67,186,69,203,66,186,183,148,66,186,21,94,66,186,96,39,66,186,150,240,
65,186,184,185,65,186,199,130,65,186,194,75,65,186,169,20,65,186,125,221,64,186,60,166,64,186,232,110,64,186,129,55,64,186,5,0,64,186,119,200,63,186,212,144,63,186,30,89,63,186,85,33,63,186,120,233,62,186,135,177,62,186,131,121,62,186,108,65,62,186,65,9,62,186,2,209,61,186,177,152,61,186,76,96,61,186,212,39,61,186,72,239,60,186,169,182,60,186,247,125,60,186,50,69,60,186,89,12,60,186,110,211,59,186,111,154,59,186,93,97,59,186,56,40,59,186,0,239,58,186,181,181,58,186,87,124,58,186,230,66,58,186,98,
9,58,186,203,207,57,186,33,150,57,186,100,92,57,186,148,34,57,186,177,232,56,186,188,174,56,186,180,116,56,186,153,58,56,186,107,0,56,186,43,198,55,186,216,139,55,186,114,81,55,186,250,22,55,186,111,220,54,186,209,161,54,186,33,103,54,186,94,44,54,186,137,241,53,186,161,182,53,186,167,123,53,186,154,64,53,186,123,5,53,186,74,202,52,186,6,143,52,186,176,83,52,186,72,24,52,186,205,220,51,186,64,161,51,186,161,101,51,186,240,41,51,186,44,238,50,186,86,178,50,186,111,118,50,186,117,58,50,186,105,254,
49,186,74,194,49,186,26,134,49,186,216,73,49,186,132,13,49,186,30,209,48,186,166,148,48,186,29,88,48,186,129,27,48,186,211,222,47,186,20,162,47,186,67,101,47,186,96,40,47,186,107,235,46,186,101,174,46,186,77,113,46,186,35,52,46,186,232,246,45,186,155,185,45,186,61,124,45,186,205,62,45,186,75,1,45,186,184,195,44,186,20,134,44,186,94,72,44,186,150,10,44,186,190,204,43,186,212,142,43,186,216,80,43,186,203,18,43,186,173,212,42,186,126,150,42,186,62,88,42,186,236,25,42,186,137,219,41,186,21,157,41,186,
144,94,41,186,249,31,41,186,82,225,40,186,154,162,40,186,208,99,40,186,246,36,40,186,11,230,39,186,14,167,39,186,1,104,39,186,227,40,39,186,180,233,38,186,117,170,38,186,36,107,38,186,195,43,38,186,81,236,37,186,206,172,37,186,59,109,37,186,151,45,37,186,226,237,36,186,29,174,36,186,71,110,36,186,96,46,36,186,105,238,35,186,98,174,35,186,74,110,35,186,34,46,35,186,233,237,34,186,160,173,34,186,70,109,34,186,221,44,34,186,99,236,33,186,216,171,33,186,62,107,33,186,147,42,33,186,216,233,32,186,12,169,
32,186,49,104,32,186,70,39,32,186,74,230,31,186,63,165,31,186,35,100,31,186,248,34,31,186,188,225,30,186,113,160,30,186,21,95,30,186,170,29,30,186,47,220,29,186,164,154,29,186,9,89,29,186,95,23,29,186,165,213,28,186,219,147,28,186,1,82,28,186,24,16,28,186,31,206,27,186,22,140,27,186,254,73,27,186,215,7,27,186,160,197,26,186,89,131,26,186,3,65,26,186,157,254,25,186,41,188,25,186,164,121,25,186,17,55,25,186,110,244,24,186,188,177,24,186,250,110,24,186,42,44,24,186,74,233,23,186,91,166,23,186,92,99,
23,186,79,32,23,186,51,221,22,186,7,154,22,186,205,86,22,186,132,19,22,186,43,208,21,186,196,140,21,186,77,73,21,186,200,5,21,186,52,194,20,186,146,126,20,186,224,58,20,186,32,247,19,186,80,179,19,186,115,111,19,186,134,43,19,186,139,231,18,186,129,163,18,186,105,95,18,186,66,27,18,186,13,215,17,186,201,146,17,186,118,78,17,186,21,10,17,186,166,197,16,186,40,129,16,186,156,60,16,186,2,248,15,186,89,179,15,186,162,110,15,186,221,41,15,186,10,229,14,186,40,160,14,186,57,91,14,186,59,22,14,186,47,209,
13,186,21,140,13,186,237,70,13,186,183,1,13,186,115,188,12,186,33,119,12,186,193,49,12,186,84,236,11,186,216,166,11,186,79,97,11,186,184,27,11,186,19,214,10,186,96,144,10,186,159,74,10,186,209,4,10,186,246,190,9,186,12,121,9,186,21,51,9,186,17,237,8,186,255,166,8,186,224,96,8,186,179,26,8,186,120,212,7,186,48,142,7,186,219,71,7,186,121,1,7,186,9,187,6,186,140,116,6,186,1,46,6,186,106,231,5,186,197,160,5,186,19,90,5,186,84,19,5,186,136,204,4,186,174,133,4,186,200,62,4,186,213,247,3,186,212,176,3,186,
199,105,3,186,173,34,3,186,134,219,2,186,82,148,2,186,17,77,2,186,196,5,2,186,105,190,1,186,2,119,1,186,142,47,1,186,14,232,0,186,129,160,0,186,231,88,0,186,64,17,0,186,27,147,255,185,156,3,255,185,4,116,254,185,84,228,253,185,138,84,253,185,167,196,252,185,172,52,252,185,152,164,251,185,108,20,251,185,39,132,250,185,201,243,249,185,83,99,249,185,197,210,248,185,30,66,248,185,95,177,247,185,136,32,247,185,152,143,246,185,145,254,245,185,113,109,245,185,58,220,244,185,235,74,244,185,132,185,243,185,
5,40,243,185,110,150,242,185,192,4,242,185,250,114,241,185,29,225,240,185,40,79,240,185,28,189,239,185,249,42,239,185,190,152,238,185,108,6,238,185,3,116,237,185,131,225,236,185,236,78,236,185,61,188,235,185,120,41,235,185,157,150,234,185,170,3,234,185,161,112,233,185,129,221,232,185,74,74,232,185,253,182,231,185,153,35,231,185,32,144,230,185,143,252,229,185,233,104,229,185,44,213,228,185,89,65,228,185,112,173,227,185,113,25,227,185,92,133,226,185,50,241,225,185,241,92,225,185,154,200,224,185,46,
52,224,185,173,159,223,185,21,11,223,185,104,118,222,185,166,225,221,185,207,76,221,185,226,183,220,185,223,34,220,185,200,141,219,185,155,248,218,185,90,99,218,185,3,206,217,185,151,56,217,185,23,163,216,185,130,13,216,185,215,119,215,185,25,226,214,185,69,76,214,185,93,182,213,185,97,32,213,185,80,138,212,185,43,244,211,185,241,93,211,185,164,199,210,185,66,49,210,185,203,154,209,185,65,4,209,185,163,109,208,185,241,214,207,185,43,64,207,185,81,169,206,185,100,18,206,185,99,123,205,185,78,228,204,
185,38,77,204,185,234,181,203,185,155,30,203,185,56,135,202,185,195,239,201,185,57,88,201,185,157,192,200,185,238,40,200,185,44,145,199,185,86,249,198,185,110,97,198,185,115,201,197,185,101,49,197,185,69,153,196,185,18,1,196,185,204,104,195,185,116,208,194,185,9,56,194,185,140,159,193,185,253,6,193,185,91,110,192,185,167,213,191,185,225,60,191,185,9,164,190,185,31,11,190,185,35,114,189,185,21,217,188,185,246,63,188,185,196,166,187,185,129,13,187,185,45,116,186,185,198,218,185,185,79,65,185,185,198,
167,184,185,43,14,184,185,127,116,183,185,194,218,182,185,244,64,182,185,21,167,181,185,37,13,181,185,36,115,180,185,17,217,179,185,239,62,179,185,187,164,178,185,118,10,178,185,33,112,177,185,188,213,176,185,70,59,176,185,191,160,175,185,40,6,175,185,129,107,174,185,202,208,173,185,2,54,173,185,42,155,172,185,66,0,172,185,74,101,171,185,67,202,170,185,43,47,170,185,4,148,169,185,205,248,168,185,134,93,168,185,48,194,167,185,202,38,167,185,85,139,166,185,208,239,165,185,60,84,165,185,153,184,164,
185,230,28,164,185,36,129,163,185,84,229,162,185,116,73,162,185,134,173,161,185,136,17,161,185,124,117,160,185,97,217,159,185,55,61,159,185,255,160,158,185,184,4,158,185,99,104,157,185,255,203,156,185,141,47,156,185,13,147,155,185,126,246,154,185,225,89,154,185,55,189,153,185,126,32,153,185,183,131,152,185,226,230,151,185,0,74,151,185,16,173,150,185,18,16,150,185,7,115,149,185,238,213,148,185,199,56,148,185,147,155,147,185,82,254,146,185,3,97,146,185,168,195,145,185,63,38,145,185,201,136,144,185,
70,235,143,185,182,77,143,185,25,176,142,185,111,18,142,185,185,116,141,185,246,214,140,185,38,57,140,185,74,155,139,185,97,253,138,185,108,95,138,185,106,193,137,185,92,35,137,185,66,133,136,185,28,231,135,185,234,72,135,185,171,170,134,185,97,12,134,185,11,110,133,185,169,207,132,185,59,49,132,185,194,146,131,185,61,244,130,185,172,85,130,185,16,183,129,185,104,24,129,185,182,121,128,185,239,181,127,185,92,120,126,185,179,58,125,185,243,252,123,185,30,191,122,185,51,129,121,185,50,67,120,185,27,
5,119,185,239,198,117,185,173,136,116,185,86,74,115,185,234,11,114,185,105,205,112,185,211,142,111,185,41,80,110,185,106,17,109,185,150,210,107,185,174,147,106,185,178,84,105,185,162,21,104,185,126,214,102,185,71,151,101,185,251,87,100,185,156,24,99,185,42,217,97,185,165,153,96,185,12,90,95,185,96,26,94,185,162,218,92,185,209,154,91,185,237,90,90,185,247,26,89,185,239,218,87,185,212,154,86,185,167,90,85,185,105,26,84,185,25,218,82,185,183,153,81,185,67,89,80,185,191,24,79,185,41,216,77,185,130,151,
76,185,202,86,75,185,1,22,74,185,39,213,72,185,61,148,71,185,67,83,70,185,56,18,69,185,29,209,67,185,242,143,66,185,183,78,65,185,109,13,64,185,18,204,62,185,169,138,61,185,48,73,60,185,167,7,59,185,16,198,57,185,106,132,56,185,181,66,55,185,241,0,54,185,31,191,52,185,62,125,51,185,79,59,50,185,82,249,48,185,71,183,47,185,46,117,46,185,8,51,45,185,212,240,43,185,146,174,42,185,67,108,41,185,231,41,40,185,126,231,38,185,7,165,37,185,132,98,36,185,245,31,35,185,89,221,33,185,176,154,32,185,252,87,31,
185,59,21,30,185,110,210,28,185,149,143,27,185,177,76,26,185,193,9,25,185,198,198,23,185,191,131,22,185,174,64,21,185,145,253,19,185,105,186,18,185,55,119,17,185,249,51,16,185,178,240,14,185,96,173,13,185,4,106,12,185,158,38,11,185,45,227,9,185,180,159,8,185,48,92,7,185,163,24,6,185,12,213,4,185,108,145,3,185,195,77,2,185,17,10,1,185,173,140,255,184,38,5,253,184,141,125,250,184,228,245,247,184,42,110,245,184,96,230,242,184,133,94,240,184,155,214,237,184,161,78,235,184,152,198,232,184,128,62,230,184,
89,182,227,184,35,46,225,184,224,165,222,184,142,29,220,184,47,149,217,184,194,12,215,184,72,132,212,184,194,251,209,184,47,115,207,184,143,234,204,184,227,97,202,184,44,217,199,184,105,80,197,184,155,199,194,184,194,62,192,184,222,181,189,184,240,44,187,184,247,163,184,184,245,26,182,184,233,145,179,184,212,8,177,184,182,127,174,184,143,246,171,184,95,109,169,184,39,228,166,184,231,90,164,184,160,209,161,184,80,72,159,184,250,190,156,184,157,53,154,184,57,172,151,184,207,34,149,184,95,153,146,184,
233,15,144,184,109,134,141,184,236,252,138,184,102,115,136,184,219,233,133,184,76,96,131,184,185,214,128,184,67,154,124,184,13,135,119,184,208,115,114,184,141,96,109,184,68,77,104,184,247,57,99,184,164,38,94,184,77,19,89,184,243,255,83,184,150,236,78,184,55,217,73,184,213,197,68,184,114,178,63,184,14,159,58,184,170,139,53,184,70,120,48,184,227,100,43,184,130,81,38,184,34,62,33,184,196,42,28,184,106,23,23,184,19,4,18,184,192,240,12,184,113,221,7,184,40,202,2,184,201,109,251,183,78,71,241,183,224,32,
231,183,129,250,220,183,50,212,210,183,243,173,200,183,198,135,190,183,172,97,180,183,166,59,170,183,181,21,160,183,218,239,149,183,22,202,139,183,106,164,129,183,175,253,110,183,191,178,90,183,6,104,70,183,134,29,50,183,66,211,29,183,59,137,9,183,231,126,234,182,219,235,193,182,87,89,153,182,192,142,97,182,241,107,16,182,50,41,125,181,48,177,142,52,188,234,197,53,82,19,52,54,254,151,130,54,167,37,171,54,163,178,211,54,235,62,252,54,62,101,18,55,169,170,38,55,180,239,58,55,93,52,79,55,162,120,99,
55,128,188,119,55,251,255,133,55,128,33,144,55,207,66,154,55,231,99,164,55,198,132,174,55,107,165,184,55,214,197,194,55,5,230,204,55,247,5,215,55,171,37,225,55,32,69,235,55,85,100,245,55,73,131,255,55,253,208,4,56,52,224,9,56,73,239,14,56,60,254,19,56,11,13,25,56,182,27,30,56,61,42,35,56,158,56,40,56,219,70,45,56,242,84,50,56,226,98,55,56,171,112,60,56,76,126,65,56,198,139,70,56,22,153,75,56,62,166,80,56,60,179,85,56,16,192,90,56,185,204,95,56,54,217,100,56,136,229,105,56,173,241,110,56,166,253,115,
56,113,9,121,56,14,21,126,56,62,144,129,56,222,21,132,56,102,155,134,56,214,32,137,56,46,166,139,56,109,43,142,56,147,176,144,56,160,53,147,56,147,186,149,56,109,63,152,56,45,196,154,56,211,72,157,56,95,205,159,56,207,81,162,56,37,214,164,56,95,90,167,56,126,222,169,56,129,98,172,56,104,230,174,56,51,106,177,56,225,237,179,56,114,113,182,56,230,244,184,56,61,120,187,56,118,251,189,56,145,126,192,56,142,1,195,56,109,132,197,56,45,7,200,56,206,137,202,56,79,12,205,56,177,142,207,56,243,16,210,56,22,
147,212,56,24,21,215,56,249,150,217,56,186,24,220,56,89,154,222,56,215,27,225,56,51,157,227,56,110,30,230,56,134,159,232,56,124,32,235,56,79,161,237,56,0,34,240,56,141,162,242,56,246,34,245,56,60,163,247,56,94,35,250,56,91,163,252,56,52,35,255,56,116,209,0,57,60,17,2,57,241,80,3,57,147,144,4,57,34,208,5,57,158,15,7,57,7,79,8,57,92,142,9,57,159,205,10,57,205,12,12,57,232,75,13,57,239,138,14,57,226,201,15,57,193,8,17,57,139,71,18,57,65,134,19,57,227,196,20,57,112,3,22,57,232,65,23,57,76,128,24,57,154,
190,25,57,211,252,26,57,247,58,28,57,6,121,29,57,254,182,30,57,226,244,31,57,175,50,33,57,102,112,34,57,8,174,35,57,147,235,36,57,8,41,38,57,102,102,39,57,174,163,40,57,223,224,41,57,249,29,43,57,252,90,44,57,232,151,45,57,189,212,46,57,122,17,48,57,32,78,49,57,174,138,50,57,36,199,51,57,131,3,53,57,201,63,54,57,247,123,55,57,13,184,56,57,11,244,57,57,240,47,59,57,188,107,60,57,111,167,61,57,10,227,62,57,139,30,64,57,243,89,65,57,66,149,66,57,120,208,67,57,147,11,69,57,149,70,70,57,126,129,71,57,
76,188,72,57,0,247,73,57,154,49,75,57,25,108,76,57,126,166,77,57,200,224,78,57,248,26,80,57,12,85,81,57,6,143,82,57,229,200,83,57,168,2,85,57,80,60,86,57,220,117,87,57,76,175,88,57,161,232,89,57,218,33,91,57,247,90,92,57,247,147,93,57,220,204,94,57,164,5,96,57,79,62,97,57,222,118,98,57,79,175,99,57,164,231,100,57,220,31,102,57,247,87,103,57,244,143,104,57,211,199,105,57,150,255,106,57,58,55,108,57,193,110,109,57,41,166,110,57,116,221,111,57,160,20,113,57,174,75,114,57,157,130,115,57,110,185,116,57,
32,240,117,57,179,38,119,57,40,93,120,57,125,147,121,57,179,201,122,57,201,255,123,57,192,53,125,57,151,107,126,57,79,161,127,57,115,107,128,57,47,6,129,57,219,160,129,57,118,59,130,57,2,214,130,57,125,112,131,57,232,10,132,57,66,165,132,57,140,63,133,57,198,217,133,57,239,115,134,57,7,14,135,57,14,168,135,57,5,66,136,57,235,219,136,57,192,117,137,57,132,15,138,57,56,169,138,57,218,66,139,57,106,220,139,57,234,117,140,57,89,15,141,57,182,168,141,57,1,66,142,57,60,219,142,57,100,116,143,57,123,13,
144,57,129,166,144,57,117,63,145,57,87,216,145,57,39,113,146,57,229,9,147,57,145,162,147,57,44,59,148,57,180,211,148,57,42,108,149,57,142,4,150,57,223,156,150,57,30,53,151,57,75,205,151,57,102,101,152,57,109,253,152,57,99,149,153,57,69,45,154,57,21,197,154,57,211,92,155,57,125,244,155,57,20,140,156,57,153,35,157,57,10,187,157,57,105,82,158,57,180,233,158,57,236,128,159,57,17,24,160,57,34,175,160,57,32,70,161,57,11,221,161,57,226,115,162,57,166,10,163,57,86,161,163,57,242,55,164,57,122,206,164,57,
239,100,165,57,80,251,165,57,156,145,166,57,213,39,167,57,250,189,167,57,11,84,168,57,7,234,168,57,239,127,169,57,195,21,170,57,131,171,170,57,46,65,171,57,196,214,171,57,71,108,172,57,180,1,173,57,13,151,173,57,81,44,174,57,128,193,174,57,154,86,175,57,160,235,175,57,144,128,176,57,108,21,177,57,50,170,177,57,227,62,178,57,127,211,178,57,6,104,179,57,119,252,179,57,211,144,180,57,26,37,181,57,75,185,181,57,102,77,182,57,108,225,182,57,92,117,183,57,54,9,184,57,251,156,184,57,169,48,185,57,66,196,
185,57,196,87,186,57,49,235,186,57,135,126,187,57,199,17,188,57,241,164,188,57,5,56,189,57,2,203,189,57,233,93,190,57,186,240,190,57,116,131,191,57,23,22,192,57,163,168,192,57,25,59,193,57,120,205,193,57,193,95,194,57,242,241,194,57,12,132,195,57,16,22,196,57,252,167,196,57,209,57,197,57,143,203,197,57,54,93,198,57,197,238,198,57,61,128,199,57,158,17,200,57,231,162,200,57,24,52,201,57,50,197,201,57,52,86,202,57,31,231,202,57,241,119,203,57,172,8,204,57,79,153,204,57,218,41,205,57,77,186,205,57,168,
74,206,57,235,218,206,57,21,107,207,57,39,251,207,57,33,139,208,57,3,27,209,57,204,170,209,57,125,58,210,57,21,202,210,57,148,89,211,57,251,232,211,57,73,120,212,57,126,7,213,57,155,150,213,57,158,37,214,57,137,180,214,57,91,67,215,57,19,210,215,57,179,96,216,57,57,239,216,57,166,125,217,57,249,11,218,57,52,154,218,57,84,40,219,57,92,182,219,57,74,68,220,57,30,210,220,57,216,95,221,57,121,237,221,57,0,123,222,57,110,8,223,57,193,149,223,57,251,34,224,57,26,176,224,57,32,61,225,57,11,202,225,57,220,
86,226,57,147,227,226,57,48,112,227,57,178,252,227,57,26,137,228,57,103,21,229,57,154,161,229,57,179,45,230,57,176,185,230,57,148,69,231,57,92,209,231,57,9,93,232,57,156,232,232,57,20,116,233,57,113,255,233,57,179,138,234,57,217,21,235,57,229,160,235,57,214,43,236,57,171,182,236,57,101,65,237,57,3,204,237,57,134,86,238,57,238,224,238,57,58,107,239,57,107,245,239,57,128,127,240,57,121,9,241,57,86,147,241,57,24,29,242,57,190,166,242,57,72,48,243,57,182,185,243,57,8,67,244,57,62,204,244,57,87,85,245,
57,85,222,245,57,54,103,246,57,251,239,246,57,164,120,247,57,48,1,248,57,160,137,248,57,243,17,249,57,42,154,249,57,68,34,250,57,65,170,250,57,34,50,251,57,230,185,251,57,140,65,252,57,23,201,252,57,132,80,253,57,212,215,253,57,7,95,254,57,29,230,254,57,21,109,255,57,241,243,255,57,87,61,0,58,168,128,0,58,234,195,0,58,29,7,1,58,65,74,1,58,86,141,1,58,93,208,1,58,85,19,2,58,62,86,2,58,24,153,2,58,227,219,2,58,159,30,3,58,77,97,3,58,235,163,3,58,122,230,3,58,250,40,4,58,107,107,4,58,205,173,4,58,32,
240,4,58,100,50,5,58,153,116,5,58,190,182,5,58,212,248,5,58,219,58,6,58,210,124,6,58,187,190,6,58,148,0,7,58,93,66,7,58,23,132,7,58,194,197,7,58,93,7,8,58,233,72,8,58,101,138,8,58,210,203,8,58,47,13,9,58,125,78,9,58,187,143,9,58,233,208,9,58,8,18,10,58,23,83,10,58,23,148,10,58,6,213,10,58,230,21,11,58,182,86,11,58,118,151,11,58,39,216,11,58,199,24,12,58,88,89,12,58,217,153,12,58,73,218,12,58,170,26,13,58,251,90,13,58,60,155,13,58,109,219,13,58,141,27,14,58,158,91,14,58,158,155,14,58,143,219,14,58,
111,27,15,58,63,91,15,58,255,154,15,58,174,218,15,58,77,26,16,58,220,89,16,58,91,153,16,58,201,216,16,58,39,24,17,58,116,87,17,58,177,150,17,58,221,213,17,58,250,20,18,58,5,84,18,58,0,147,18,58,235,209,18,58,196,16,19,58,142,79,19,58,70,142,19,58,238,204,19,58,134,11,20,58,12,74,20,58,130,136,20,58,231,198,20,58,59,5,21,58,127,67,21,58,178,129,21,58,211,191,21,58,228,253,21,58,228,59,22,58,211,121,22,58,177,183,22,58,127,245,22,58,59,51,23,58,230,112,23,58,128,174,23,58,9,236,23,58,129,41,24,58,232,
102,24,58,61,164,24,58,130,225,24,58,181,30,25,58,215,91,25,58,231,152,25,58,231,213,25,58,213,18,26,58,178,79,26,58,125,140,26,58,55,201,26,58,224,5,27,58,119,66,27,58,253,126,27,58,114,187,27,58,213,247,27,58,38,52,28,58,102,112,28,58,148,172,28,58,177,232,28,58,188,36,29,58,181,96,29,58,157,156,29,58,115,216,29,58,55,20,30,58,234,79,30,58,139,139,30,58,26,199,30,58,151,2,31,58,3,62,31,58,92,121,31,58,164,180,31,58,218,239,31,58,254,42,32,58,16,102,32,58,16,161,32,58,254,219,32,58,218,22,33,58,
164,81,33,58,91,140,33,58,1,199,33,58,149,1,34,58,22,60,34,58,134,118,34,58,227,176,34,58,46,235,34,58,103,37,35,58,141,95,35,58,161,153,35,58,163,211,35,58,147,13,36,58,112,71,36,58,59,129,36,58,244,186,36,58,154,244,36,58,46,46,37,58,175,103,37,58,30,161,37,58,122,218,37,58,196,19,38,58,251,76,38,58,31,134,38,58,49,191,38,58,49,248,38,58,30,49,39,58,248,105,39,58,191,162,39,58,116,219,39,58,22,20,40,58,165,76,40,58,34,133,40,58,139,189,40,58,226,245,40,58,38,46,41,58,87,102,41,58,117,158,41,58,
129,214,41,58,121,14,42,58,95,70,42,58,49,126,42,58,241,181,42,58,157,237,42,58,55,37,43,58,189,92,43,58,48,148,43,58,144,203,43,58,222,2,44,58,23,58,44,58,62,113,44,58,82,168,44,58,82,223,44,58,63,22,45,58,25,77,45,58,224,131,45,58,147,186,45,58,51,241,45,58,191,39,46,58,57,94,46,58,158,148,46,58,241,202,46,58,48,1,47,58,91,55,47,58,115,109,47,58,120,163,47,58,105,217,47,58,71,15,48,58,17,69,48,58,199,122,48,58,106,176,48,58,249,229,48,58,116,27,49,58,220,80,49,58,48,134,49,58,113,187,49,58,158,
240,49,58,183,37,50,58,188,90,50,58,173,143,50,58,139,196,50,58,85,249,50,58,10,46,51,58,172,98,51,58,59,151,51,58,181,203,51,58,27,0,52,58,110,52,52,58,172,104,52,58,214,156,52,58,237,208,52,58,239,4,53,58,221,56,53,58,183,108,53,58,125,160,53,58,47,212,53,58,205,7,54,58,87,59,54,58,204,110,54,58,46,162,54,58,123,213,54,58,179,8,55,58,216,59,55,58,232,110,55,58,228,161,55,58,204,212,55,58,159,7,56,58,94,58,56,58,9,109,56,58,159,159,56,58,32,210,56,58,142,4,57,58,231,54,57,58,43,105,57,58,91,155,
57,58,118,205,57,58,125,255,57,58,111,49,58,58,77,99,58,58,22,149,58,58,202,198,58,58,106,248,58,58,245,41,59,58,108,91,59,58,205,140,59,58,26,190,59,58,83,239,59,58,118,32,60,58,133,81,60,58,127,130,60,58,100,179,60,58,53,228,60,58,240,20,61,58,151,69,61,58,40,118,61,58,165,166,61,58,13,215,61,58,96,7,62,58,158,55,62,58,199,103,62,58,219,151,62,58,218,199,62,58,196,247,62,58,153,39,63,58,89,87,63,58,4,135,63,58,153,182,63,58,26,230,63,58,133,21,64,58,219,68,64,58,28,116,64,58,72,163,64,58,95,210,
64,58,96,1,65,58,76,48,65,58,35,95,65,58,228,141,65,58,145,188,65,58,39,235,65,58,169,25,66,58,21,72,66,58,108,118,66,58,173,164,66,58,217,210,66,58,240,0,67,58,241,46,67,58,220,92,67,58,178,138,67,58,115,184,67,58,30,230,67,58,179,19,68,58,51,65,68,58,157,110,68,58,242,155,68,58,49,201,68,58,91,246,68,58,110,35,69,58,108,80,69,58,85,125,69,58,40,170,69,58,229,214,69,58,140,3,70,58,29,48,70,58,153,92,70,58,255,136,70,58,79,181,70,58,137,225,70,58,174,13,71,58,189,57,71,58,181,101,71,58,152,145,71,
58,101,189,71,58,28,233,71,58,189,20,72,58,72,64,72,58,189,107,72,58,28,151,72,58,101,194,72,58,152,237,72,58,181,24,73,58,188,67,73,58,173,110,73,58,136,153,73,58,77,196,73,58,251,238,73,58,148,25,74,58,22,68,74,58,130,110,74,58,216,152,74,58,23,195,74,58,65,237,74,58,84,23,75,58,81,65,75,58,56,107,75,58,8,149,75,58,194,190,75,58,102,232,75,58,243,17,76,58,106,59,76,58,203,100,76,58,21,142,76,58,73,183,76,58,102,224,76,58,109,9,77,58,94,50,77,58,56,91,77,58,251,131,77,58,169,172,77,58,63,213,77,
58,191,253,77,58,41,38,78,58,124,78,78,58,184,118,78,58,222,158,78,58,237,198,78,58,230,238,78,58,200,22,79,58,147,62,79,58,71,102,79,58,229,141,79,58,109,181,79,58,221,220,79,58,55,4,80,58,122,43,80,58,166,82,80,58,188,121,80,58,186,160,80,58,162,199,80,58,116,238,80,58,46,21,81,58,209,59,81,58,94,98,81,58,211,136,81,58,50,175,81,58,122,213,81,58,171,251,81,58,197,33,82,58,200,71,82,58,180,109,82,58,138,147,82,58,72,185,82,58,239,222,82,58,127,4,83,58,248,41,83,58,90,79,83,58,165,116,83,58,217,153,
83,58,246,190,83,58,252,227,83,58,234,8,84,58,194,45,84,58,130,82,84,58,43,119,84,58,189,155,84,58,56,192,84,58,155,228,84,58,232,8,85,58,29,45,85,58,59,81,85,58,65,117,85,58,49,153,85,58,9,189,85,58,201,224,85,58,115,4,86,58,5,40,86,58,128,75,86,58,227,110,86,58,47,146,86,58,100,181,86,58,129,216,86,58,135,251,86,58,118,30,87,58,77,65,87,58,12,100,87,58,180,134,87,58,69,169,87,58,190,203,87,58,32,238,87,58,106,16,88,58,157,50,88,58,184,84,88,58,187,118,88,58,167,152,88,58,124,186,88,58,57,220,88,
58,222,253,88,58,108,31,89,58,226,64,89,58,64,98,89,58,135,131,89,58,182,164,89,58,205,197,89,58,205,230,89,58,181,7,90,58,133,40,90,58,62,73,90,58,222,105,90,58,103,138,90,58,217,170,90,58,50,203,90,58,116,235,90,58,158,11,91,58,176,43,91,58,171,75,91,58,141,107,91,58,88,139,91,58,10,171,91,58,165,202,91,58,40,234,91,58,148,9,92,58,231,40,92,58,34,72,92,58,70,103,92,58,81,134,92,58,69,165,92,58,32,196,92,58,228,226,92,58,143,1,93,58,35,32,93,58,159,62,93,58,2,93,93,58,78,123,93,58,129,153,93,58,
157,183,93,58,160,213,93,58,140,243,93,58,95,17,94,58,26,47,94,58,189,76,94,58,72,106,94,58,187,135,94,58,21,165,94,58,88,194,94,58,130,223,94,58,148,252,94,58,142,25,95,58,112,54,95,58,58,83,95,58,235,111,95,58,132,140,95,58,5,169,95,58,110,197,95,58,191,225,95,58,247,253,95,58,23,26,96,58,30,54,96,58,14,82,96,58,229,109,96,58,163,137,96,58,74,165,96,58,216,192,96,58,77,220,96,58,171,247,96,58,240,18,97,58,28,46,97,58,49,73,97,58,44,100,97,58,16,127,97,58,219,153,97,58,141,180,97,58,39,207,97,58,
169,233,97,58,18,4,98,58,99,30,98,58,155,56,98,58,187,82,98,58,194,108,98,58,177,134,98,58,136,160,98,58,69,186,98,58,235,211,98,58,119,237,98,58,235,6,99,58,71,32,99,58,138,57,99,58,181,82,99,58,199,107,99,58,192,132,99,58,160,157,99,58,105,182,99,58,24,207,99,58,175,231,99,58,45,0,100,58,147,24,100,58,223,48,100,58,20,73,100,58,47,97,100,58,50,121,100,58,28,145,100,58,238,168,100,58,167,192,100,58,71,216,100,58,206,239,100,58,61,7,101,58,146,30,101,58,208,53,101,58,244,76,101,58,0,100,101,58,242,
122,101,58,204,145,101,58,142,168,101,58,54,191,101,58,198,213,101,58,61,236,101,58,155,2,102,58,224,24,102,58,12,47,102,58,32,69,102,58,27,91,102,58,252,112,102,58,197,134,102,58,117,156,102,58,13,178,102,58,139,199,102,58,240,220,102,58,61,242,102,58,112,7,103,58,139,28,103,58,141,49,103,58,118,70,103,58,69,91,103,58,252,111,103,58,154,132,103,58,31,153,103,58,139,173,103,58,222,193,103,58,25,214,103,58,58,234,103,58,66,254,103,58,49,18,104,58,7,38,104,58,196,57,104,58,104,77,104,58,243,96,104,
58,101,116,104,58,190,135,104,58,254,154,104,58,37,174,104,58,50,193,104,58,39,212,104,58,3,231,104,58,197,249,104,58,111,12,105,58,255,30,105,58,118,49,105,58,212,67,105,58,25,86,105,58,69,104,105,58,88,122,105,58,82,140,105,58,50,158,105,58,250,175,105,58,168,193,105,58,61,211,105,58,185,228,105,58,27,246,105,58,101,7,106,58,149,24,106,58,172,41,106,58,170,58,106,58,143,75,106,58,91,92,106,58,13,109,106,58,166,125,106,58,38,142,106,58,141,158,106,58,219,174,106,58,15,191,106,58,42,207,106,58,44,
223,106,58,20,239,106,58,228,254,106,58,154,14,107,58,54,30,107,58,186,45,107,58,36,61,107,58,117,76,107,58,173,91,107,58,203,106,107,58,208,121,107,58,188,136,107,58,142,151,107,58,71,166,107,58,231,180,107,58,110,195,107,58,219,209,107,58,47,224,107,58,106,238,107,58,139,252,107,58,147,10,108,58,129,24,108,58,86,38,108,58,18,52,108,58,181,65,108,58,62,79,108,58,174,92,108,58,4,106,108,58,65,119,108,58,101,132,108,58,111,145,108,58,96,158,108,58,55,171,108,58,245,183,108,58,154,196,108,58,37,209,
108,58,151,221,108,58,240,233,108,58,47,246,108,58,84,2,109,58,96,14,109,58,83,26,109,58,45,38,109,58,237,49,109,58,147,61,109,58,32,73,109,58,148,84,109,58,238,95,109,58,47,107,109,58,86,118,109,58,100,129,109,58,88,140,109,58,51,151,109,58,245,161,109,58,157,172,109,58,43,183,109,58,160,193,109,58,252,203,109,58,62,214,109,58,103,224,109,58,118,234,109,58,108,244,109,58,72,254,109,58,11,8,110,58,180,17,110,58,68,27,110,58,186,36,110,58,23,46,110,58,90,55,110,58,132,64,110,58,148,73,110,58,139,82,
110,58,104,91,110,58,43,100,110,58,214,108,110,58,102,117,110,58,221,125,110,58,59,134,110,58,127,142,110,58,170,150,110,58,187,158,110,58,178,166,110,58,144,174,110,58,85,182,110,58,0,190,110,58,145,197,110,58,9,205,110,58,103,212,110,58,172,219,110,58,215,226,110,58,233,233,110,58,225,240,110,58,192,247,110,58,133,254,110,58,48,5,111,58,194,11,111,58,59,18,111,58,154,24,111,58,223,30,111,58,11,37,111,58,29,43,111,58,21,49,111,58,245,54,111,58,186,60,111,58,102,66,111,58,248,71,111,58,113,77,111,
58,209,82,111,58,22,88,111,58,66,93,111,58,85,98,111,58,78,103,111,58,46,108,111,58,243,112,111,58,160,117,111,58,50,122,111,58,172,126,111,58,11,131,111,58,81,135,111,58,126,139,111,58,145,143,111,58,138,147,111,58,106,151,111,58,48,155,111,58,221,158,111,58,112,162,111,58,233,165,111,58,73,169,111,58,144,172,111,58,189,175,111,58,208,178,111,58,202,181,111,58,170,184,111,58,112,187,111,58,29,190,111,58,177,192,111,58,42,195,111,58,139,197,111,58,209,199,111,58,255,201,111,58,18,204,111,58,12,206,
111,58,237,207,111,58,180,209,111,58,97,211,111,58,245,212,111,58,111,214,111,58,208,215,111,58,23,217,111,58,68,218,111,58,88,219,111,58,83,220,111,58,52,221,111,58,251,221,111,58,169,222,111,58,61,223,111,58,184,223,111,58,25,224,111,58,96,224,111,58,142,224,111,58,163,224,111,58,158,224,111,58,127,224,111,58,71,224,111,58,246,223,111,58,138,223,111,58,6,223,111,58,103,222,111,58,176,221,111,58,222,220,111,58,243,219,111,58,239,218,111,58,209,217,111,58,154,216,111,58,73,215,111,58,223,213,111,
58,91,212,111,58,189,210,111,58,6,209,111,58,54,207,111,58,76,205,111,58,72,203,111,58,43,201,111,58,245,198,111,58,165,196,111,58,59,194,111,58,184,191,111,58,28,189,111,58,102,186,111,58,151,183,111,58,174,180,111,58,171,177,111,58,143,174,111,58,90,171,111,58,11,168,111,58,163,164,111,58,33,161,111,58,134,157,111,58,210,153,111,58,3,150,111,58,28,146,111,58,27,142,111,58,0,138,111,58,205,133,111,58,127,129,111,58,25,125,111,58,152,120,111,58,255,115,111,58,76,111,111,58,127,106,111,58,153,101,
111,58,154,96,111,58,129,91,111,58,79,86,111,58,4,81,111,58,159,75,111,58,33,70,111,58,137,64,111,58,216,58,111,58,13,53,111,58,41,47,111,58,44,41,111,58,22,35,111,58,230,28,111,58,156,22,111,58,58,16,111,58,189,9,111,58,40,3,111,58,121,252,110,58,177,245,110,58,208,238,110,58,213,231,110,58,193,224,110,58,147,217,110,58,77,210,110,58,237,202,110,58,115,195,110,58,225,187,110,58,53,180,110,58,111,172,110,58,145,164,110,58,153,156,110,58,136,148,110,58,93,140,110,58,25,132,110,58,188,123,110,58,70,
115,110,58,183,106,110,58,14,98,110,58,76,89,110,58,113,80,110,58,124,71,110,58,110,62,110,58,71,53,110,58,7,44,110,58,174,34,110,58,59,25,110,58,175,15,110,58,10,6,110,58,76,252,109,58,117,242,109,58,132,232,109,58,122,222,109,58,87,212,109,58,27,202,109,58,198,191,109,58,88,181,109,58,208,170,109,58,47,160,109,58,117,149,109,58,162,138,109,58,182,127,109,58,177,116,109,58,147,105,109,58,91,94,109,58,11,83,109,58,161,71,109,58,30,60,109,58,130,48,109,58,205,36,109,58,255,24,109,58,24,13,109,58,24,
1,109,58,255,244,108,58,205,232,108,58,129,220,108,58,29,208,108,58,160,195,108,58,10,183,108,58,90,170,108,58,146,157,108,58,176,144,108,58,182,131,108,58,163,118,108,58,118,105,108,58,49,92,108,58,211,78,108,58,92,65,108,58,204,51,108,58,34,38,108,58,96,24,108,58,133,10,108,58,146,252,107,58,133,238,107,58,95,224,107,58,32,210,107,58,201,195,107,58,89,181,107,58,207,166,107,58,45,152,107,58,114,137,107,58,158,122,107,58,178,107,107,58,172,92,107,58,142,77,107,58,87,62,107,58,7,47,107,58,158,31,
107,58,28,16,107,58,130,0,107,58,207,240,106,58,3,225,106,58,30,209,106,58,32,193,106,58,10,177,106,58,219,160,106,58,147,144,106,58,51,128,106,58,186,111,106,58,40,95,106,58,125,78,106,58,186,61,106,58,222,44,106,58,233,27,106,58,220,10,106,58,182,249,105,58,120,232,105,58,32,215,105,58,176,197,105,58,40,180,105,58,135,162,105,58,205,144,105,58,251,126,105,58,16,109,105,58,12,91,105,58,240,72,105,58,187,54,105,58,110,36,105,58,8,18,105,58,138,255,104,58,243,236,104,58,68,218,104,58,124,199,104,58,
156,180,104,58,163,161,104,58,146,142,104,58,104,123,104,58,38,104,104,58,203,84,104,58,88,65,104,58,204,45,104,58,40,26,104,58,108,6,104,58,151,242,103,58,170,222,103,58,164,202,103,58,134,182,103,58,80,162,103,58,1,142,103,58,154,121,103,58,27,101,103,58,131,80,103,58,211,59,103,58,11,39,103,58,42,18,103,58,49,253,102,58,32,232,102,58,246,210,102,58,181,189,102,58,91,168,102,58],"i8",4,y.a+706560);
Q([233,146,102,58,94,125,102,58,188,103,102,58,1,82,102,58,46,60,102,58,67,38,102,58,63,16,102,58,36,250,101,58,240,227,101,58,164,205,101,58,64,183,101,58,196,160,101,58,48,138,101,58,132,115,101,58,191,92,101,58,227,69,101,58,238,46,101,58,226,23,101,58,189,0,101,58,129,233,100,58,44,210,100,58,191,186,100,58,59,163,100,58,158,139,100,58,233,115,100,58,29,92,100,58,56,68,100,58,60,44,100,58,39,20,100,58,251,251,99,58,183,227,99,58,91,203,99,58,231,178,99,58,91,154,99,58,183,129,99,58,252,104,99,
58,40,80,99,58,61,55,99,58,58,30,99,58,31,5,99,58,236,235,98,58,162,210,98,58,64,185,98,58,198,159,98,58,52,134,98,58,139,108,98,58,201,82,98,58,241,56,98,58,0,31,98,58,248,4,98,58,216,234,97,58,160,208,97,58,81,182,97,58,234,155,97,58,108,129,97,58,214,102,97,58,40,76,97,58,99,49,97,58,134,22,97,58,146,251,96,58,134,224,96,58,98,197,96,58,39,170,96,58,213,142,96,58,107,115,96,58,233,87,96,58,81,60,96,58,160,32,96,58,216,4,96,58,249,232,95,58,2,205,95,58,244,176,95,58,207,148,95,58,146,120,95,58,
62,92,95,58,210,63,95,58,79,35,95,58,181,6,95,58,4,234,94,58,59,205,94,58,91,176,94,58,99,147,94,58,85,118,94,58,47,89,94,58,242,59,94,58,157,30,94,58,50,1,94,58,175,227,93,58,21,198,93,58,100,168,93,58,156,138,93,58,189,108,93,58,198,78,93,58,184,48,93,58,148,18,93,58,88,244,92,58,5,214,92,58,155,183,92,58,26,153,92,58,130,122,92,58,212,91,92,58,14,61,92,58,49,30,92,58,61,255,91,58,50,224,91,58,16,193,91,58,215,161,91,58,136,130,91,58,33,99,91,58,164,67,91,58,16,36,91,58,100,4,91,58,162,228,90,58,
202,196,90,58,218,164,90,58,212,132,90,58,182,100,90,58,131,68,90,58,56,36,90,58,214,3,90,58,94,227,89,58,207,194,89,58,42,162,89,58,110,129,89,58,155,96,89,58,177,63,89,58,177,30,89,58,154,253,88,58,109,220,88,58,41,187,88,58,207,153,88,58,93,120,88,58,214,86,88,58,56,53,88,58,131,19,88,58,184,241,87,58,214,207,87,58,222,173,87,58,208,139,87,58,171,105,87,58,111,71,87,58,29,37,87,58,181,2,87,58,55,224,86,58,162,189,86,58,247,154,86,58,53,120,86,58,93,85,86,58,111,50,86,58,106,15,86,58,80,236,85,
58,31,201,85,58,216,165,85,58,122,130,85,58,7,95,85,58,125,59,85,58,221,23,85,58,39,244,84,58,91,208,84,58,120,172,84,58,128,136,84,58,114,100,84,58,77,64,84,58,18,28,84,58,194,247,83,58,91,211,83,58,222,174,83,58,76,138,83,58,163,101,83,58,229,64,83,58,16,28,83,58,38,247,82,58,37,210,82,58,15,173,82,58,227,135,82,58,161,98,82,58,73,61,82,58,220,23,82,58,88,242,81,58,191,204,81,58,16,167,81,58,76,129,81,58,113,91,81,58,129,53,81,58,123,15,81,58,96,233,80,58,47,195,80,58,232,156,80,58,139,118,80,58,
25,80,80,58,146,41,80,58,244,2,80,58,66,220,79,58,121,181,79,58,155,142,79,58,168,103,79,58,159,64,79,58,129,25,79,58,77,242,78,58,4,203,78,58,165,163,78,58,49,124,78,58,168,84,78,58,9,45,78,58,85,5,78,58,139,221,77,58,172,181,77,58,184,141,77,58,175,101,77,58,144,61,77,58,92,21,77,58,19,237,76,58,181,196,76,58,65,156,76,58,185,115,76,58,27,75,76,58,104,34,76,58,160,249,75,58,195,208,75,58,208,167,75,58,201,126,75,58,173,85,75,58,123,44,75,58,53,3,75,58,217,217,74,58,105,176,74,58,228,134,74,58,73,
93,74,58,154,51,74,58,214,9,74,58,253,223,73,58,16,182,73,58,13,140,73,58,245,97,73,58,201,55,73,58,136,13,73,58,50,227,72,58,200,184,72,58,73,142,72,58,181,99,72,58,12,57,72,58,79,14,72,58,125,227,71,58,150,184,71,58,155,141,71,58,139,98,71,58,103,55,71,58,46,12,71,58,224,224,70,58,126,181,70,58,8,138,70,58,125,94,70,58,221,50,70,58,41,7,70,58,97,219,69,58,132,175,69,58,147,131,69,58,142,87,69,58,116,43,69,58,70,255,68,58,3,211,68,58,173,166,68,58,66,122,68,58,194,77,68,58,47,33,68,58,135,244,67,
58,204,199,67,58,252,154,67,58,23,110,67,58,31,65,67,58,19,20,67,58,242,230,66,58,190,185,66,58,117,140,66,58,25,95,66,58,168,49,66,58,35,4,66,58,139,214,65,58,222,168,65,58,30,123,65,58,74,77,65,58,97,31,65,58,101,241,64,58,85,195,64,58,50,149,64,58,250,102,64,58,175,56,64,58,80,10,64,58,221,219,63,58,86,173,63,58,188,126,63,58,14,80,63,58,76,33,63,58,119,242,62,58,142,195,62,58,146,148,62,58,130,101,62,58,94,54,62,58,39,7,62,58,220,215,61,58,126,168,61,58,13,121,61,58,136,73,61,58,239,25,61,58,
67,234,60,58,132,186,60,58,177,138,60,58,203,90,60,58,210,42,60,58,197,250,59,58,165,202,59,58,114,154,59,58,44,106,59,58,210,57,59,58,101,9,59,58,229,216,58,58,82,168,58,58,172,119,58,58,242,70,58,58,38,22,58,58,70,229,57,58,83,180,57,58,78,131,57,58,53,82,57,58,9,33,57,58,203,239,56,58,121,190,56,58,21,141,56,58,157,91,56,58,19,42,56,58,118,248,55,58,198,198,55,58,3,149,55,58,45,99,55,58,69,49,55,58,74,255,54,58,60,205,54,58,28,155,54,58,232,104,54,58,163,54,54,58,74,4,54,58,223,209,53,58,97,159,
53,58,209,108,53,58,46,58,53,58,121,7,53,58,177,212,52,58,215,161,52,58,234,110,52,58,235,59,52,58,217,8,52,58,181,213,51,58,127,162,51,58,54,111,51,58,219,59,51,58,109,8,51,58,238,212,50,58,92,161,50,58,184,109,50,58,1,58,50,58,57,6,50,58,94,210,49,58,113,158,49,58,114,106,49,58,97,54,49,58,62,2,49,58,9,206,48,58,193,153,48,58,104,101,48,58,253,48,48,58,128,252,47,58,241,199,47,58,80,147,47,58,157,94,47,58,216,41,47,58,1,245,46,58,25,192,46,58,30,139,46,58,18,86,46,58,244,32,46,58,197,235,45,58,
132,182,45,58,49,129,45,58,204,75,45,58,86,22,45,58,206,224,44,58,52,171,44,58,137,117,44,58,205,63,44,58,255,9,44,58,31,212,43,58,46,158,43,58,43,104,43,58,23,50,43,58,242,251,42,58,187,197,42,58,115,143,42,58,26,89,42,58,175,34,42,58,51,236,41,58,165,181,41,58,7,127,41,58,87,72,41,58,150,17,41,58,196,218,40,58,225,163,40,58,236,108,40,58,231,53,40,58,208,254,39,58,169,199,39,58,112,144,39,58,38,89,39,58,204,33,39,58,96,234,38,58,228,178,38,58,86,123,38,58,184,67,38,58,9,12,38,58,73,212,37,58,120,
156,37,58,150,100,37,58,164,44,37,58,161,244,36,58,141,188,36,58,105,132,36,58,52,76,36,58,238,19,36,58,152,219,35,58,49,163,35,58,185,106,35,58,49,50,35,58,152,249,34,58,239,192,34,58,54,136,34,58,108,79,34,58,145,22,34,58,166,221,33,58,171,164,33,58,160,107,33,58,132,50,33,58,88,249,32,58,27,192,32,58,207,134,32,58,114,77,32,58,5,20,32,58,135,218,31,58,250,160,31,58,93,103,31,58,175,45,31,58,241,243,30,58,36,186,30,58,70,128,30,58,88,70,30,58,90,12,30,58,77,210,29,58,47,152,29,58,2,94,29,58,196,
35,29,58,119,233,28,58,26,175,28,58,173,116,28,58,49,58,28,58,164,255,27,58,8,197,27,58,93,138,27,58,161,79,27,58,214,20,27,58,252,217,26,58,17,159,26,58,24,100,26,58,14,41,26,58,245,237,25,58,205,178,25,58,149,119,25,58,78,60,25,58,247,0,25,58,145,197,24,58,28,138,24,58,151,78,24,58,3,19,24,58,95,215,23,58,173,155,23,58,235,95,23,58,26,36,23,58,58,232,22,58,74,172,22,58,76,112,22,58,62,52,22,58,33,248,21,58,245,187,21,58,187,127,21,58,113,67,21,58,24,7,21,58,176,202,20,58,58,142,20,58,180,81,20,
58,32,21,20,58,124,216,19,58,202,155,19,58,9,95,19,58,58,34,19,58,91,229,18,58,110,168,18,58,114,107,18,58,104,46,18,58,79,241,17,58,39,180,17,58,241,118,17,58,172,57,17,58,89,252,16,58,247,190,16,58,134,129,16,58,8,68,16,58,122,6,16,58,223,200,15,58,53,139,15,58,124,77,15,58,182,15,15,58,225,209,14,58,254,147,14,58,12,86,14,58,12,24,14,58,255,217,13,58,227,155,13,58,184,93,13,58,128,31,13,58,58,225,12,58,229,162,12,58,131,100,12,58,19,38,12,58,148,231,11,58,8,169,11,58,110,106,11,58,197,43,11,58,
15,237,10,58,76,174,10,58,122,111,10,58,154,48,10,58,173,241,9,58,178,178,9,58,170,115,9,58,147,52,9,58,111,245,8,58,62,182,8,58,255,118,8,58,178,55,8,58,88,248,7,58,240,184,7,58,122,121,7,58,248,57,7,58,104,250,6,58,202,186,6,58,31,123,6,58,103,59,6,58,161,251,5,58,206,187,5,58,238,123,5,58,1,60,5,58,6,252,4,58,254,187,4,58,233,123,4,58,199,59,4,58,152,251,3,58,91,187,3,58,18,123,3,58,188,58,3,58,88,250,2,58,232,185,2,58,107,121,2,58,225,56,2,58,74,248,1,58,166,183,1,58,245,118,1,58,55,54,1,58,109,
245,0,58,150,180,0,58,178,115,0,58,194,50,0,58,137,227,255,57,118,97,255,57,73,223,254,57,3,93,254,57,164,218,253,57,44,88,253,57,155,213,252,57,241,82,252,57,46,208,251,57,82,77,251,57,94,202,250,57,81,71,250,57,43,196,249,57,237,64,249,57,150,189,248,57,38,58,248,57,158,182,247,57,254,50,247,57,70,175,246,57,117,43,246,57,140,167,245,57,139,35,245,57,113,159,244,57,64,27,244,57,247,150,243,57,150,18,243,57,29,142,242,57,140,9,242,57,227,132,241,57,35,0,241,57,75,123,240,57,91,246,239,57,84,113,
239,57,54,236,238,57,0,103,238,57,179,225,237,57,78,92,237,57,210,214,236,57,63,81,236,57,149,203,235,57,212,69,235,57,251,191,234,57,12,58,234,57,6,180,233,57,233,45,233,57,181,167,232,57,107,33,232,57,10,155,231,57,146,20,231,57,4,142,230,57,95,7,230,57,164,128,229,57,210,249,228,57,234,114,228,57,236,235,227,57,216,100,227,57,173,221,226,57,108,86,226,57,22,207,225,57,169,71,225,57,38,192,224,57,142,56,224,57,223,176,223,57,27,41,223,57,66,161,222,57,82,25,222,57,77,145,221,57,51,9,221,57,3,129,
220,57,189,248,219,57,99,112,219,57,243,231,218,57,109,95,218,57,211,214,217,57,35,78,217,57,95,197,216,57,133,60,216,57,151,179,215,57,147,42,215,57,123,161,214,57,78,24,214,57,12,143,213,57,182,5,213,57,75,124,212,57,204,242,211,57,56,105,211,57,143,223,210,57,211,85,210,57,2,204,209,57,28,66,209,57,35,184,208,57,21,46,208,57,244,163,207,57,190,25,207,57,117,143,206,57,23,5,206,57,166,122,205,57,33,240,204,57,136,101,204,57,219,218,203,57,27,80,203,57,72,197,202,57,97,58,202,57,102,175,201,57,89,
36,201,57,56,153,200,57,3,14,200,57,188,130,199,57,97,247,198,57,243,107,198,57,115,224,197,57,223,84,197,57,56,201,196,57,127,61,196,57,179,177,195,57,212,37,195,57,226,153,194,57,222,13,194,57,200,129,193,57,159,245,192,57,99,105,192,57,21,221,191,57,181,80,191,57,67,196,190,57,190,55,190,57,40,171,189,57,127,30,189,57,196,145,188,57,247,4,188,57,25,120,187,57,41,235,186,57,38,94,186,57,19,209,185,57,237,67,185,57,182,182,184,57,110,41,184,57,20,156,183,57,168,14,183,57,44,129,182,57,158,243,181,
57,254,101,181,57,78,216,180,57,141,74,180,57,186,188,179,57,215,46,179,57,226,160,178,57,221,18,178,57,199,132,177,57,160,246,176,57,105,104,176,57,32,218,175,57,200,75,175,57,95,189,174,57,229,46,174,57,91,160,173,57,193,17,173,57,22,131,172,57,92,244,171,57,145,101,171,57,182,214,170,57,203,71,170,57,208,184,169,57,197,41,169,57,171,154,168,57,128,11,168,57,70,124,167,57,252,236,166,57,163,93,166,57,58,206,165,57,194,62,165,57,58,175,164,57,163,31,164,57,252,143,163,57,71,0,163,57,130,112,162,
57,174,224,161,57,203,80,161,57,217,192,160,57,216,48,160,57,200,160,159,57,170,16,159,57,125,128,158,57,65,240,157,57,246,95,157,57,157,207,156,57,53,63,156,57,191,174,155,57,59,30,155,57,168,141,154,57,7,253,153,57,88,108,153,57,155,219,152,57,207,74,152,57,246,185,151,57,14,41,151,57,25,152,150,57,22,7,150,57,5,118,149,57,231,228,148,57,186,83,148,57,129,194,147,57,57,49,147,57,229,159,146,57,131,14,146,57,19,125,145,57,150,235,144,57,12,90,144,57,117,200,143,57,209,54,143,57,32,165,142,57,97,
19,142,57,150,129,141,57,190,239,140,57,218,93,140,57,232,203,139,57,234,57,139,57,223,167,138,57,200,21,138,57,164,131,137,57,116,241,136,57,55,95,136,57,239,204,135,57,154,58,135,57,56,168,134,57,203,21,134,57,82,131,133,57,204,240,132,57,59,94,132,57,158,203,131,57,245,56,131,57,64,166,130,57,128,19,130,57,180,128,129,57,220,237,128,57,249,90,128,57,22,144,127,57,34,106,126,57,24,68,125,57,247,29,124,57,192,247,122,57,114,209,121,57,15,171,120,57,150,132,119,57,6,94,118,57,97,55,117,57,166,16,
116,57,214,233,114,57,241,194,113,57,246,155,112,57,230,116,111,57,193,77,110,57,135,38,109,57,57,255,107,57,214,215,106,57,94,176,105,57,210,136,104,57,49,97,103,57,125,57,102,57,181,17,101,57,216,233,99,57,232,193,98,57,228,153,97,57,205,113,96,57,162,73,95,57,100,33,94,57,19,249,92,57,175,208,91,57,56,168,90,57,175,127,89,57,18,87,88,57,99,46,87,57,162,5,86,57,207,220,84,57,233,179,83,57,241,138,82,57,232,97,81,57,204,56,80,57,159,15,79,57,97,230,77,57,17,189,76,57,176,147,75,57,61,106,74,57,186,
64,73,57,38,23,72,57,129,237,70,57,203,195,69,57,5,154,68,57,46,112,67,57,72,70,66,57,81,28,65,57,74,242,63,57,51,200,62,57,12,158,61,57,214,115,60,57,144,73,59,57,59,31,58,57,214,244,56,57,98,202,55,57,224,159,54,57,78,117,53,57,174,74,52,57,255,31,51,57,65,245,49,57,117,202,48,57,155,159,47,57,179,116,46,57,188,73,45,57,184,30,44,57,166,243,42,57,135,200,41,57,89,157,40,57,31,114,39,57,215,70,38,57,130,27,37,57,32,240,35,57,177,196,34,57,53,153,33,57,173,109,32,57,24,66,31,57,119,22,30,57,201,234,
28,57,16,191,27,57,74,147,26,57,121,103,25,57,155,59,24,57,178,15,23,57,190,227,21,57,190,183,20,57,179,139,19,57,157,95,18,57,123,51,17,57,79,7,16,57,24,219,14,57,215,174,13,57,139,130,12,57,52,86,11,57,212,41,10,57,105,253,8,57,244,208,7,57,117,164,6,57,237,119,5,57,91,75,4,57,191,30,3,57,26,242,1,57,108,197,0,57,105,49,255,56,232,215,252,56,86,126,250,56,178,36,248,56,252,202,245,56,54,113,243,56,95,23,241,56,120,189,238,56,128,99,236,56,120,9,234,56,97,175,231,56,58,85,229,56,3,251,226,56,190,
160,224,56,106,70,222,56,8,236,219,56,151,145,217,56,24,55,215,56,140,220,212,56,242,129,210,56,75,39,208,56,151,204,205,56,214,113,203,56,9,23,201,56,47,188,198,56,74,97,196,56,89,6,194,56,92,171,191,56,84,80,189,56,65,245,186,56,36,154,184,56,252,62,182,56,201,227,179,56,141,136,177,56,71,45,175,56,248,209,172,56,159,118,170,56,62,27,168,56,211,191,165,56,97,100,163,56,230,8,161,56,99,173,158,56,217,81,156,56,71,246,153,56,173,154,151,56,13,63,149,56,103,227,146,56,185,135,144,56,6,44,142,56,76,
208,139,56,141,116,137,56,201,24,135,56,255,188,132,56,49,97,130,56,93,5,128,56,12,83,123,56,84,155,118,56,148,227,113,56,205,43,109,56,0,116,104,56,43,188,99,56,81,4,95,56,114,76,90,56,142,148,85,56,166,220,80,56,185,36,76,56,202,108,71,56,215,180,66,56,227,252,61,56,236,68,57,56,244,140,52,56,252,212,47,56,3,29,43,56,10,101,38,56,18,173,33,56,27,245,28,56,38,61,24,56,51,133,19,56,67,205,14,56,86,21,10,56,108,93,5,56,135,165,0,56,77,219,247,55,151,107,238,55,236,251,228,55,78,140,219,55,189,28,210,
55,58,173,200,55,199,61,191,55,100,206,181,55,19,95,172,55,212,239,162,55,169,128,153,55,146,17,144,55,145,162,134,55,76,103,122,55,166,137,103,55,48,172,84,55,237,206,65,55,224,241,46,55,9,21,28,55,107,56,9,55,17,184,236,54,198,255,198,54,249,71,161,54,91,33,119,54,208,179,43,54,180,142,192,53,254,223,166,52,217,56,90,181,64,247,1,182,22,95,77,182,216,98,140,182,130,21,178,182,135,199,215,182,225,120,253,182,199,148,17,183,196,108,36,183,102,68,55,183,171,27,74,183,145,242,92,183,22,201,111,183,
156,79,129,183,122,186,138,183,37,37,148,183,155,143,157,183,220,249,166,183,230,99,176,183,185,205,185,183,83,55,195,183,180,160,204,183,218,9,214,183,197,114,223,183,115,219,232,183,227,67,242,183,21,172,251,183,4,138,2,184,221,61,7,184,149,241,11,184,44,165,16,184,161,88,21,184,244,11,26,184,37,191,30,184,50,114,35,184,27,37,40,184,224,215,44,184,128,138,49,184,251,60,54,184,80,239,58,184,127,161,63,184,136,83,68,184,105,5,73,184,34,183,77,184,179,104,82,184,28,26,87,184,91,203,91,184,112,124,
96,184,91,45,101,184,28,222,105,184,177,142,110,184,27,63,115,184,88,239,119,184,105,159,124,184,166,167,128,184,129,255,130,184,69,87,133,184,241,174,135,184,134,6,138,184,3,94,140,184,104,181,142,184,181,12,145,184,233,99,147,184,4,187,149,184,6,18,152,184,239,104,154,184,190,191,156,184,115,22,159,184,14,109,161,184,143,195,163,184,246,25,166,184,65,112,168,184,114,198,170,184,135,28,173,184,129,114,175,184,95,200,177,184,33,30,180,184,198,115,182,184,79,201,184,184,187,30,187,184,11,116,189,184,
61,201,191,184,81,30,194,184,71,115,196,184,32,200,198,184,218,28,201,184,118,113,203,184,243,197,205,184,81,26,208,184,144,110,210,184,175,194,212,184,175,22,215,184,142,106,217,184,78,190,219,184,236,17,222,184,106,101,224,184,200,184,226,184,3,12,229,184,30,95,231,184,23,178,233,184,237,4,236,184,162,87,238,184,52,170,240,184,163,252,242,184,240,78,245,184,25,161,247,184,31,243,249,184,1,69,252,184,191,150,254,184,45,116,0,185,232,156,1,185,144,197,2,185,38,238,3,185,170,22,5,185,26,63,6,185,120,
103,7,185,195,143,8,185,251,183,9,185,32,224,10,185,50,8,12,185,48,48,13,185,26,88,14,185,241,127,15,185,180,167,16,185,99,207,17,185,254,246,18,185,133,30,20,185,248,69,21,185,86,109,22,185,160,148,23,185,213,187,24,185,246,226,25,185,1,10,27,185,248,48,28,185,217,87,29,185,165,126,30,185,92,165,31,185,253,203,32,185,136,242,33,185,254,24,35,185,94,63,36,185,168,101,37,185,220,139,38,185,250,177,39,185,1,216,40,185,242,253,41,185,204,35,43,185,144,73,44,185,61,111,45,185,211,148,46,185,81,186,47,
185,185,223,48,185,9,5,50,185,66,42,51,185,99,79,52,185,109,116,53,185,95,153,54,185,57,190,55,185,250,226,56,185,164,7,58,185,54,44,59,185,175,80,60,185,15,117,61,185,87,153,62,185,134,189,63,185,157,225,64,185,154,5,66,185,126,41,67,185,73,77,68,185,251,112,69,185,147,148,70,185,17,184,71,185,118,219,72,185,193,254,73,185,242,33,75,185,9,69,76,185,6,104,77,185,232,138,78,185,176,173,79,185,94,208,80,185,240,242,81,185,104,21,83,185,198,55,84,185,8,90,85,185,47,124,86,185,58,158,87,185,43,192,88,
185,255,225,89,185,184,3,91,185,86,37,92,185,215,70,93,185,61,104,94,185,135,137,95,185,180,170,96,185,197,203,97,185,185,236,98,185,145,13,100,185,76,46,101,185,235,78,102,185,108,111,103,185,209,143,104,185,24,176,105,185,66,208,106,185,79,240,107,185,62,16,109,185,15,48,110,185,195,79,111,185,89,111,112,185,209,142,113,185,42,174,114,185,102,205,115,185,131,236,116,185,130,11,118,185,98,42,119,185,35,73,120,185,198,103,121,185,74,134,122,185,174,164,123,185,244,194,124,185,26,225,125,185,33,255,
126,185,132,14,128,185,104,157,128,185,60,44,129,185,0,187,129,185,180,73,130,185,88,216,130,185,236,102,131,185,111,245,131,185,227,131,132,185,70,18,133,185,153,160,133,185,219,46,134,185,13,189,134,185,47,75,135,185,64,217,135,185,64,103,136,185,48,245,136,185,15,131,137,185,221,16,138,185,154,158,138,185,70,44,139,185,225,185,139,185,107,71,140,185,229,212,140,185,77,98,141,185,163,239,141,185,233,124,142,185,29,10,143,185,64,151,143,185,81,36,144,185,81,177,144,185,63,62,145,185,28,203,145,185,
231,87,146,185,160,228,146,185,71,113,147,185,221,253,147,185,97,138,148,185,211,22,149,185,50,163,149,185,128,47,150,185,187,187,150,185,229,71,151,185,252,211,151,185,1,96,152,185,243,235,152,185,211,119,153,185,161,3,154,185,92,143,154,185,4,27,155,185,154,166,155,185,29,50,156,185,141,189,156,185,235,72,157,185,53,212,157,185,109,95,158,185,146,234,158,185,163,117,159,185,162,0,160,185,141,139,160,185,101,22,161,185,42,161,161,185,220,43,162,185,122,182,162,185,5,65,163,185,124,203,163,185,224,
85,164,185,48,224,164,185,108,106,165,185,149,244,165,185,170,126,166,185,171,8,167,185,152,146,167,185,113,28,168,185,55,166,168,185,232,47,169,185,133,185,169,185,14,67,170,185,131,204,170,185,227,85,171,185,47,223,171,185,103,104,172,185,138,241,172,185,152,122,173,185,147,3,174,185,120,140,174,185,73,21,175,185,5,158,175,185,172,38,176,185,63,175,176,185,188,55,177,185,37,192,177,185,121,72,178,185,183,208,178,185,225,88,179,185,245,224,179,185,244,104,180,185,222,240,180,185,178,120,181,185,
113,0,182,185,27,136,182,185,175,15,183,185,45,151,183,185,150,30,184,185,233,165,184,185,39,45,185,185,78,180,185,185,96,59,186,185,92,194,186,185,66,73,187,185,18,208,187,185,204,86,188,185,112,221,188,185,254,99,189,185,117,234,189,185,214,112,190,185,33,247,190,185,86,125,191,185,116,3,192,185,123,137,192,185,108,15,193,185,71,149,193,185,10,27,194,185,183,160,194,185,78,38,195,185,205,171,195,185,54,49,196,185,135,182,196,185,194,59,197,185,230,192,197,185,242,69,198,185,232,202,198,185,198,
79,199,185,141,212,199,185,60,89,200,185,213,221,200,185,86,98,201,185,191,230,201,185,17,107,202,185,75,239,202,185,110,115,203,185,121,247,203,185,108,123,204,185,72,255,204,185,11,131,205,185,183,6,206,185,75,138,206,185,199,13,207,185,43,145,207,185,118,20,208,185,170,151,208,185,197,26,209,185,200,157,209,185,179,32,210,185,133,163,210,185,63,38,211,185,224,168,211,185,105,43,212,185,217,173,212,185,49,48,213,185,112,178,213,185,150,52,214,185,164,182,214,185,152,56,215,185,116,186,215,185,55,
60,216,185,225,189,216,185,113,63,217,185,233,192,217,185,71,66,218,185,140,195,218,185,184,68,219,185,203,197,219,185,196,70,220,185,164,199,220,185,106,72,221,185,23,201,221,185,170,73,222,185,36,202,222,185,132,74,223,185,202,202,223,185,246,74,224,185,9,203,224,185,2,75,225,185,224,202,225,185,165,74,226,185,80,202,226,185,224,73,227,185,87,201,227,185,179,72,228,185,245,199,228,185,29,71,229,185,42,198,229,185,29,69,230,185,245,195,230,185,179,66,231,185,87,193,231,185,223,63,232,185,78,190,
232,185,161,60,233,185,218,186,233,185,247,56,234,185,250,182,234,185,227,52,235,185,176,178,235,185,98,48,236,185,249,173,236,185,117,43,237,185,213,168,237,185,27,38,238,185,69,163,238,185,84,32,239,185,71,157,239,185,32,26,240,185,220,150,240,185,125,19,241,185,3,144,241,185,109,12,242,185,187,136,242,185,237,4,243,185,4,129,243,185,255,252,243,185,222,120,244,185,161,244,244,185,73,112,245,185,212,235,245,185,67,103,246,185,150,226,246,185,204,93,247,185,231,216,247,185,229,83,248,185,199,206,
248,185,141,73,249,185,54,196,249,185,195,62,250,185,51,185,250,185,135,51,251,185,190,173,251,185,216,39,252,185,214,161,252,185,182,27,253,185,123,149,253,185,34,15,254,185,172,136,254,185,25,2,255,185,106,123,255,185,157,244,255,185,218,54,0,186,86,115,0,186,196,175,0,186,35,236,0,186,116,40,1,186,182,100,1,186,233,160,1,186,14,221,1,186,35,25,2,186,43,85,2,186,35,145,2,186,12,205,2,186,231,8,3,186,178,68,3,186,111,128,3,186,29,188,3,186,188,247,3,186,76,51,4,186,205,110,4,186,63,170,4,186,162,
229,4,186,246,32,5,186,59,92,5,186,113,151,5,186,151,210,5,186,175,13,6,186,183,72,6,186,176,131,6,186,154,190,6,186,116,249,6,186,64,52,7,186,252,110,7,186,168,169,7,186,70,228,7,186,212,30,8,186,82,89,8,186,194,147,8,186,33,206,8,186,114,8,9,186,179,66,9,186,228,124,9,186,6,183,9,186,24,241,9,186,27,43,10,186,14,101,10,186,241,158,10,186,197,216,10,186,137,18,11,186,62,76,11,186,226,133,11,186,119,191,11,186,253,248,11,186,114,50,12,186,216,107,12,186,46,165,12,186,116,222,12,186,170,23,13,186,
208,80,13,186,230,137,13,186,237,194,13,186,227,251,13,186,201,52,14,186,160,109,14,186,102,166,14,186,28,223,14,186,195,23,15,186,89,80,15,186,223,136,15,186,84,193,15,186,186,249,15,186,16,50,16,186,85,106,16,186,138,162,16,186,175,218,16,186,195,18,17,186,199,74,17,186,187,130,17,186,159,186,17,186,114,242,17,186,53,42,18,186,231,97,18,186,137,153,18,186,26,209,18,186,155,8,19,186,12,64,19,186,108,119,19,186,187,174,19,186,250,229,19,186,40,29,20,186,70,84,20,186,83,139,20,186,79,194,20,186,59,
249,20,186,22,48,21,186,224,102,21,186,153,157,21,186,66,212,21,186,218,10,22,186,97,65,22,186,215,119,22,186,61,174,22,186,145,228,22,186,213,26,23,186,8,81,23,186,41,135,23,186,58,189,23,186,58,243,23,186,41,41,24,186,7,95,24,186,211,148,24,186,143,202,24,186,58,0,25,186,211,53,25,186,92,107,25,186,211,160,25,186,57,214,25,186,142,11,26,186,209,64,26,186,4,118,26,186,37,171,26,186,53,224,26,186,51,21,27,186,32,74,27,186,252,126,27,186,199,179,27,186,128,232,27,186,40,29,28,186,190,81,28,186,67,
134,28,186,182,186,28,186,24,239,28,186,104,35,29,186,167,87,29,186,213,139,29,186,240,191,29,186,250,243,29,186,243,39,30,186,218,91,30,186,175,143,30,186,115,195,30,186,37,247,30,186,197,42,31,186,83,94,31,186,208,145,31,186,59,197,31,186,148,248,31,186,219,43,32,186,16,95,32,186,52,146,32,186,70,197,32,186,69,248,32,186,51,43,33,186,15,94,33,186,217,144,33,186,145,195,33,186,55,246,33,186,203,40,34,186,77,91,34,186,189,141,34,186,27,192,34,186,102,242,34,186,160,36,35,186,199,86,35,186,221,136,
35,186,224,186,35,186,209,236,35,186,175,30,36,186,124,80,36,186,54,130,36,186,222,179,36,186,116,229,36,186,247,22,37,186,104,72,37,186,199,121,37,186,19,171,37,186,77,220,37,186,116,13,38,186,137,62,38,186,140,111,38,186,124,160,38,186,89,209,38,186,36,2,39,186,221,50,39,186,131,99,39,186,22,148,39,186,151,196,39,186,6,245,39,186,97,37,40,186,170,85,40,186,225,133,40,186,4,182,40,186,21,230,40,186,19,22,41,186,255,69,41,186,216,117,41,186,158,165,41,186,81,213,41,186,241,4,42,186,127,52,42,186,
249,99,42,186,97,147,42,186,182,194,42,186,248,241,42,186,39,33,43,186,67,80,43,186,76,127,43,186,67,174,43,186,38,221,43,186,246,11,44,186,179,58,44,186,93,105,44,186,244,151,44,186,120,198,44,186,233,244,44,186,71,35,45,186,145,81,45,186,201,127,45,186,237,173,45,186,254,219,45,186,252,9,46,186,231,55,46,186,190,101,46,186,130,147,46,186,51,193,46,186,208,238,46,186,90,28,47,186,209,73,47,186,53,119,47,186,133,164,47,186,193,209,47,186,235,254,47,186,0,44,48,186,3,89,48,186,242,133,48,186,205,178,
48,186,149,223,48,186,74,12,49,186,234,56,49,186,120,101,49,186,242,145,49,186,88,190,49,186,170,234,49,186,233,22,50,186,21,67,50,186,44,111,50,186,48,155,50,186,33,199,50,186,253,242,50,186,198,30,51,186,123,74,51,186,29,118,51,186,170,161,51,186,36,205,51,186,138,248,51,186,220,35,52,186,26,79,52,186,69,122,52,186,91,165,52,186,94,208,52,186,77,251,52,186,40,38,53,186,239,80,53,186,162,123,53,186,65,166,53,186,204,208,53,186,67,251,53,186,166,37,54,186,244,79,54,186,47,122,54,186,86,164,54,186,
105,206,54,186,103,248,54,186,82,34,55,186,40,76,55,186,234,117,55,186,152,159,55,186,50,201,55,186,184,242,55,186,41,28,56,186,134,69,56,186,207,110,56,186,4,152,56,186,36,193,56,186,48,234,56,186,40,19,57,186,11,60,57,186,218,100,57,186,149,141,57,186,59,182,57,186,205,222,57,186,74,7,58,186,179,47,58,186,8,88,58,186,72,128,58,186,116,168,58,186,139,208,58,186,142,248,58,186,124,32,59,186,86,72,59,186,27,112,59,186,203,151,59,186,103,191,59,186,238,230,59,186,97,14,60,186,191,53,60,186,9,93,60,
186,61,132,60,186,94,171,60,186,105,210,60,186,96,249,60,186,66,32,61,186,15,71,61,186,200,109,61,186,107,148,61,186,250,186,61,186,117,225,61,186,218,7,62,186,43,46,62,186,102,84,62,186,141,122,62,186,159,160,62,186,157,198,62,186,133,236,62,186,88,18,63,186,23,56,63,186,192,93,63,186,85,131,63,186,212,168,63,186,63,206,63,186,148,243,63,186,213,24,64,186,1,62,64,186,23,99,64,186,25,136,64,186,5,173,64,186,220,209,64,186,159,246,64,186,76,27,65,186,228,63,65,186,103,100,65,186,212,136,65,186,45,
173,65,186,112,209,65,186,159,245,65,186,184,25,66,186,187,61,66,186,170,97,66,186,131,133,66,186,71,169,66,186,246,204,66,186,143,240,66,186,20,20,67,186,130,55,67,186,220,90,67,186,32,126,67,186,79,161,67,186,104,196,67,186,109,231,67,186,91,10,68,186,53,45,68,186,248,79,68,186,167,114,68,186,64,149,68,186,195,183,68,186,49,218,68,186,138,252,68,186,205,30,69,186,251,64,69,186,19,99,69,186,21,133,69,186,2,167,69,186,217,200,69,186,155,234,69,186,71,12,70,186,222,45,70,186,95,79,70,186,202,112,70,
186,32,146,70,186,96,179,70,186,139,212,70,186,159,245,70,186,158,22,71,186,136,55,71,186,91,88,71,186,25,121,71,186,193,153,71,186,84,186,71,186,208,218,71,186,55,251,71,186,136,27,72,186,196,59,72,186,233,91,72,186,249,123,72,186,242,155,72,186,214,187,72,186,164,219,72,186,93,251,72,186,255,26,73,186,139,58,73,186,2,90,73,186,99,121,73,186,173,152,73,186,226,183,73,186,1,215,73,186,10,246,73,186,252,20,74,186,217,51,74,186,160,82,74,186,81,113,74,186,236,143,74,186,112,174,74,186,223,204,74,186,
56,235,74,186,122,9,75,186,167,39,75,186,189,69,75,186,190,99,75,186,168,129,75,186,124,159,75,186,58,189,75,186,226,218,75,186,115,248,75,186,239,21,76,186,84,51,76,186,163,80,76,186,220,109,76,186,255,138,76,186,11,168,76,186,1,197,76,186,225,225,76,186,171,254,76,186,94,27,77,186,251,55,77,186,130,84,77,186,243,112,77,186,77,141,77,186,145,169,77,186,191,197,77,186,214,225,77,186,215,253,77,186,193,25,78,186,150,53,78,186,83,81,78,186,251,108,78,186,140,136,78,186,6,164,78,186,107,191,78,186,184,
218,78,186,240,245,78,186,17,17,79,186,27,44,79,186,15,71,79,186,236,97,79,186,179,124,79,186,100,151,79,186,254,177,79,186,129,204,79,186,238,230,79,186,68,1,80,186,132,27,80,186,173,53,80,186,192,79,80,186,188,105,80,186,161,131,80,186,112,157,80,186,41,183,80,186,202,208,80,186,85,234,80,186,202,3,81,186,39,29,81,186,111,54,81,186,159,79,81,186,185,104,81,186,188,129,81,186,168,154,81,186,126,179,81,186,61,204,81,186,229,228,81,186,119,253,81,186,242,21,82,186,86,46,82,186,163,70,82,186,218,94,
82,186,249,118,82,186,2,143,82,186,245,166,82,186,208,190,82,186,149,214,82,186,67,238,82,186,218,5,83,186,90,29,83,186,195,52,83,186,22,76,83,186,81,99,83,186,118,122,83,186,132,145,83,186,123,168,83,186,91,191,83,186,36,214,83,186,214,236,83,186,114,3,84,186,246,25,84,186,100,48,84,186,187,70,84,186,250,92,84,186,35,115,84,186,53,137,84,186,48,159,84,186,19,181,84,186,224,202,84,186,150,224,84,186,53,246,84,186,189,11,85,186,46,33,85,186,136,54,85,186,202,75,85,186,246,96,85,186,11,118,85,186,8,
139,85,186,239,159,85,186,191,180,85,186,119,201,85,186,25,222,85,186,163,242,85,186,22,7,86,186,114,27,86,186,183,47,86,186,229,67,86,186,252,87,86,186,251,107,86,186,228,127,86,186,181,147,86,186,111,167,86,186,18,187,86,186,158,206,86,186,19,226,86,186,113,245,86,186,183,8,87,186,230,27,87,186,254,46,87,186,255,65,87,186,232,84,87,186,187,103,87,186,118,122,87,186,26,141,87,186,166,159,87,186,28,178,87,186,122,196,87,186,193,214,87,186,240,232,87,186,9,251,87,186,10,13,88,186,244,30,88,186,198,
48,88,186,129,66,88,186,37,84,88,186,178,101,88,186,39,119,88,186,133,136,88,186,204,153,88,186,251,170,88,186,19,188,88,186,20,205,88,186,254,221,88,186,208,238,88,186,138,255,88,186,45,16,89,186,185,32,89,186,46,49,89,186,139,65,89,186,209,81,89,186,255,97,89,186,22,114,89,186,22,130,89,186,254,145,89,186,207,161,89,186,136,177,89,186,42,193,89,186,181,208,89,186,40,224,89,186,132,239,89,186,200,254,89,186,245,13,90,186,10,29,90,186,8,44,90,186,238,58,90,186,189,73,90,186,117,88,90,186,21,103,90,
186,157,117,90,186,14,132,90,186,104,146,90,186,170,160,90,186,213,174,90,186,232,188,90,186,227,202,90,186,199,216,90,186,148,230,90,186,73,244,90,186,230,1,91,186,108,15,91,186,219,28,91,186,50,42,91,186,113,55,91,186,153,68,91,186,169,81,91,186,162,94,91,186,131,107,91,186,77,120,91,186,255,132,91,186,153,145,91,186,28,158,91,186,136,170,91,186,219,182,91,186,24,195,91,186,60,207,91,186,73,219,91,186,63,231,91,186,28,243,91,186,227,254,91,186,145,10,92,186,40,22,92,186,168,33,92,186,15,45,92,186,
96,56,92,186,152,67,92,186,185,78,92,186,194,89,92,186,180,100,92,186,142,111,92,186,80,122,92,186,251,132,92,186,142,143,92,186,10,154,92,186,110,164,92,186,186,174,92,186,238,184,92,186,11,195,92,186,16,205,92,186,254,214,92,186,212,224,92,186,146,234,92,186,56,244,92,186,199,253,92,186,62,7,93,186,158,16,93,186,230,25,93,186,22,35,93,186,46,44,93,186,47,53,93,186,24,62,93,186,233,70,93,186,163,79,93,186,69,88,93,186,207,96,93,186,66,105,93,186,157,113,93,186,224,121,93,186,12,130,93,186,31,138,
93,186,27,146,93,186,0,154,93,186,204,161,93,186,129,169,93,186,30,177,93,186,164,184,93,186,18,192,93,186,104,199,93,186,166,206,93,186,204,213,93,186,219,220,93,186,210,227,93,186,178,234,93,186,121,241,93,186,41,248,93,186,193,254,93,186,66,5,94,186,170,11,94,186,251,17,94,186,53,24,94,186,86,30,94,186,96,36,94,186,82,42,94,186,44,48,94,186,238,53,94,186,153,59,94,186,44,65,94,186,167,70,94,186,11,76,94,186,87,81,94,186,139,86,94,186,167,91,94,186,171,96,94,186,152,101,94,186,109,106,94,186,42,
111,94,186,208,115,94,186,93,120,94,186,211,124,94,186,49,129,94,186,120,133,94,186,167,137,94,186,189,141,94,186,189,145,94,186,164,149,94,186,116,153,94,186,43,157,94,186,204,160,94,186,84,164,94,186,197,167,94,186,29,171,94,186,94,174,94,186,136,177,94,186,153,180,94,186,147,183,94,186,117,186,94,186,63,189,94,186,242,191,94,186,141,194,94,186,16,197,94,186,123,199,94,186,207,201,94,186,10,204,94,186,46,206,94,186,58,208,94,186,47,210,94,186,12,212,94,186,209,213,94,186,126,215,94,186,19,217,94,
186,145,218,94,186,247,219,94,186,69,221,94,186,124,222,94,186,154,223,94,186,161,224,94,186,144,225,94,186,104,226,94,186,40,227,94,186,208,227,94,186,96,228,94,186,216,228,94,186,57,229,94,186,130,229,94,186,179,229,94,186,205,229,94,186,207,229,94,186,185,229,94,186,139,229,94,186,70,229,94,186,233,228,94,186,116,228,94,186,231,227,94,186,67,227,94,186,135,226,94,186,179,225,94,186,200,224,94,186,197,223,94,186,170,222,94,186,119,221,94,186,45,220,94,186,203,218,94,186,81,217,94,186,192,215,94,
186,23,214,94,186,86,212,94,186,126,210,94,186,141,208,94,186,133,206,94,186,102,204,94,186,47,202,94,186,224,199,94,186,121,197,94,186,251,194,94,186,101,192,94,186,183,189,94,186,241,186,94,186,20,184,94,186,32,181,94,186,19,178,94,186,239,174,94,186,180,171,94,186,96,168,94,186,245,164,94,186,115,161,94,186,216,157,94,186,38,154,94,186,93,150,94,186,123,146,94,186,130,142,94,186,114,138,94,186,74,134,94,186,10,130,94,186,179,125,94,186,68,121,94,186,189,116,94,186,31,112,94,186,105,107,94,186,
155,102,94,186,182,97,94,186,185,92,94,186,165,87,94,186,121,82,94,186,54,77,94,186,219,71,94,186,104,66,94,186,222,60,94,186,60,55,94,186,131,49,94,186,178,43,94,186,201,37,94,186,201,31,94,186,177,25,94,186,130,19,94,186,59,13,94,186,221,6,94,186,103,0,94,186,218,249,93,186,53,243,93,186,120,236,93,186,164,229,93,186,185,222,93,186,182,215,93,186,155,208,93,186,105,201,93,186,32,194,93,186,191,186,93,186,70,179,93,186,182,171,93,186,15,164,93,186,80,156,93,186,121,148,93,186,139,140,93,186,134,
132,93,186,105,124,93,186,53,116,93,186,233,107,93,186,134,99,93,186,11,91,93,186,121,82,93,186,208,73,93,186,15,65,93,186,54,56,93,186,70,47,93,186,63,38,93,186,33,29,93,186,235,19,93,186,157,10,93,186,56,1,93,186,188,247,92,186,41,238,92,186,126,228,92,186,187,218,92,186,226,208,92,186,240,198,92,186,232,188,92,186,200,178,92,186,145,168,92,186,67,158,92,186,221,147,92,186,96,137,92,186,203,126,92,186,32,116,92,186,93,105,92,186,130,94,92,186,145,83,92,186,136,72,92,186,104,61,92,186,48,50,92,186,
225,38,92,186,123,27,92,186,254,15,92,186,105,4,92,186,190,248,91,186,251,236,91,186,32,225,91,186,47,213,91,186,38,201,91,186,6,189,91,186,207,176,91,186,129,164,91,186,27,152,91,186,158,139,91,186,10,127,91,186,95,114,91,186,157,101,91,186,196,88,91,186,211,75,91,186,203,62,91,186,172,49,91,186,118,36,91,186,41,23,91,186,197,9,91,186,74,252,90,186,183,238,90,186,13,225,90,186,77,211,90,186,117,197,90,186,134,183,90,186,128,169,90,186,99,155,90,186,47,141,90,186,228,126,90,186,130,112,90,186,9,98,
90,186,120,83,90,186,209,68,90,186,19,54,90,186,61,39,90,186,81,24,90,186,78,9,90,186,52,250,89,186,2,235,89,186,186,219,89,186,91,204,89,186,229,188,89,186,88,173,89,186,180,157,89,186,249,141,89,186,39,126,89,186,62,110,89,186,63,94,89,186,40,78,89,186,251,61,89,186,182,45,89,186,91,29,89,186,233,12,89,186,96,252,88,186,192,235,88,186,10,219,88,186,60,202,88,186,88,185,88,186,93,168,88,186,75,151,88,186,34,134,88,186,227,116,88,186,140,99,88,186,31,82,88,186,156,64,88,186,1,47,88,186,80,29,88,186,
136,11,88,186,169,249,87,186,179,231,87,186,167,213,87,186,132,195,87,186,75,177,87,186,250,158,87,186,147,140,87,186,22,122,87,186,129,103,87,186,214,84,87,186,21,66,87,186,61,47,87,186,78,28,87,186,72,9,87,186,44,246,86,186,250,226,86,186,176,207,86,186,80,188,86,186,218,168,86,186,77,149,86,186,170,129,86,186,240,109,86,186,31,90,86,186,56,70,86,186,58,50,86,186,38,30,86,186,252,9,86,186,187,245,85,186,99,225,85,186,245,204,85,186,113,184,85,186,214,163,85,186,37,143,85,186,93,122,85,186,127,101,
85,186,138,80,85,186,127,59,85,186,94,38,85,186,38,17,85,186,216,251,84,186,116,230,84,186,249,208,84,186,104,187,84,186,193,165,84,186,3,144,84,186,47,122,84,186,69,100,84,186,68,78,84,186,45,56,84,186,0,34,84,186,189,11,84,186,100,245,83,186,244,222,83,186,110,200,83,186,210,177,83,186,31,155,83,186,87,132,83,186,120,109,83,186,131,86,83,186,120,63,83,186,87,40,83,186,31,17,83,186,210,249,82,186,111,226,82,186,245,202,82,186,101,179,82,186,191,155,82,186,4,132,82,186,50,108,82,186,74,84,82,186,
76,60,82,186,56,36,82,186,14,12,82,186,206,243,81,186,120,219,81,186,12,195,81,186,138,170,81,186,242,145,81,186,69,121,81,186,129,96,81,186,167,71,81,186,184,46,81,186,178,21,81,186,151,252,80,186,102,227,80,186,31,202,80,186,194,176,80,186,79,151,80,186,199,125,80,186,41,100,80,186,117,74,80,186,171,48,80,186,203,22,80,186,214,252,79,186,203,226,79,186,170,200,79,186,115,174,79,186,39,148,79,186,197,121,79,186,77,95,79,186,192,68,79,186,29,42,79,186,100,15,79,186,150,244,78,186,178,217,78,186,184,
190,78,186,169,163,78,186,132,136,78,186,74,109,78,186,250,81,78,186,149,54,78,186,26,27,78,186,138,255,77,186,228,227,77,186,40,200,77,186,87,172,77,186,113,144,77,186,117,116,77,186],"i8",4,y.a+716800);
Q([100,88,77,186,61,60,77,186,1,32,77,186,175,3,77,186,72,231,76,186,204,202,76,186,58,174,76,186,147,145,76,186,214,116,76,186,5,88,76,186,30,59,76,186,33,30,76,186,16,1,76,186,233,227,75,186,172,198,75,186,91,169,75,186,244,139,75,186,120,110,75,186,231,80,75,186,65,51,75,186,134,21,75,186,181,247,74,186,207,217,74,186,212,187,74,186,196,157,74,186,159,127,74,186,101,97,74,186,21,67,74,186,177,36,74,186,56,6,74,186,169,231,73,186,6,201,73,186,77,170,73,186,127,139,73,186,157,108,73,186,165,77,73,
186,153,46,73,186,120,15,73,186,65,240,72,186,246,208,72,186,150,177,72,186,33,146,72,186,151,114,72,186,248,82,72,186,68,51,72,186,124,19,72,186,159,243,71,186,173,211,71,186,166,179,71,186,138,147,71,186,90,115,71,186,21,83,71,186,187,50,71,186,76,18,71,186,201,241,70,186,49,209,70,186,133,176,70,186,195,143,70,186,237,110,70,186,3,78,70,186,4,45,70,186,240,11,70,186,200,234,69,186,139,201,69,186,58,168,69,186,212,134,69,186,89,101,69,186,202,67,69,186,39,34,69,186,111,0,69,186,162,222,68,186,194,
188,68,186,204,154,68,186,195,120,68,186,165,86,68,186,114,52,68,186,43,18,68,186,208,239,67,186,97,205,67,186,221,170,67,186,69,136,67,186,153,101,67,186,216,66,67,186,3,32,67,186,26,253,66,186,28,218,66,186,11,183,66,186,229,147,66,186,171,112,66,186,93,77,66,186,251,41,66,186,132,6,66,186,250,226,65,186,91,191,65,186,169,155,65,186,226,119,65,186,7,84,65,186,24,48,65,186,21,12,65,186,255,231,64,186,212,195,64,186,149,159,64,186,66,123,64,186,219,86,64,186,97,50,64,186,210,13,64,186,48,233,63,186,
122,196,63,186,176,159,63,186,210,122,63,186,224,85,63,186,218,48,63,186,193,11,63,186,148,230,62,186,83,193,62,186,254,155,62,186,150,118,62,186,26,81,62,186,138,43,62,186,231,5,62,186,47,224,61,186,101,186,61,186,134,148,61,186,149,110,61,186,143,72,61,186,118,34,61,186,73,252,60,186,9,214,60,186,181,175,60,186,78,137,60,186,212,98,60,186,69,60,60,186,164,21,60,186,239,238,59,186,38,200,59,186,74,161,59,186,91,122,59,186,89,83,59,186,67,44,59,186,26,5,59,186,221,221,58,186,141,182,58,186,42,143,
58,186,180,103,58,186,42,64,58,186,141,24,58,186,221,240,57,186,26,201,57,186,67,161,57,186,90,121,57,186,93,81,57,186,77,41,57,186,42,1,57,186,244,216,56,186,171,176,56,186,79,136,56,186,224,95,56,186,94,55,56,186,201,14,56,186,33,230,55,186,102,189,55,186,152,148,55,186,183,107,55,186,195,66,55,186,188,25,55,186,163,240,54,186,118,199,54,186,55,158,54,186,229,116,54,186,128,75,54,186,8,34,54,186,126,248,53,186,225,206,53,186,49,165,53,186,111,123,53,186,153,81,53,186,178,39,53,186,183,253,52,186,
170,211,52,186,138,169,52,186,88,127,52,186,19,85,52,186,187,42,52,186,81,0,52,186,213,213,51,186,70,171,51,186,165,128,51,186,241,85,51,186,42,43,51,186,81,0,51,186,102,213,50,186,105,170,50,186,89,127,50,186,55,84,50,186,2,41,50,186,187,253,49,186,98,210,49,186,246,166,49,186,121,123,49,186,233,79,49,186,71,36,49,186,146,248,48,186,204,204,48,186,243,160,48,186,8,117,48,186,12,73,48,186,253,28,48,186,220,240,47,186,168,196,47,186,99,152,47,186,12,108,47,186,163,63,47,186,40,19,47,186,155,230,46,
186,252,185,46,186,75,141,46,186,136,96,46,186,179,51,46,186,205,6,46,186,212,217,45,186,202,172,45,186,174,127,45,186,128,82,45,186,65,37,45,186,239,247,44,186,140,202,44,186,24,157,44,186,145,111,44,186,249,65,44,186,79,20,44,186,148,230,43,186,199,184,43,186,233,138,43,186,249,92,43,186,247,46,43,186,228,0,43,186,191,210,42,186,137,164,42,186,66,118,42,186,233,71,42,186,126,25,42,186,2,235,41,186,117,188,41,186,215,141,41,186,39,95,41,186,102,48,41,186,147,1,41,186,175,210,40,186,186,163,40,186,
180,116,40,186,157,69,40,186,116,22,40,186,58,231,39,186,239,183,39,186,147,136,39,186,38,89,39,186,168,41,39,186,24,250,38,186,120,202,38,186,198,154,38,186,4,107,38,186,48,59,38,186,76,11,38,186,87,219,37,186,80,171,37,186,57,123,37,186,17,75,37,186,216,26,37,186,143,234,36,186,52,186,36,186,201,137,36,186,77,89,36,186,192,40,36,186,34,248,35,186,116,199,35,186,181,150,35,186,229,101,35,186,5,53,35,186,20,4,35,186,18,211,34,186,0,162,34,186,221,112,34,186,170,63,34,186,102,14,34,186,18,221,33,186,
173,171,33,186,56,122,33,186,179,72,33,186,29,23,33,186,118,229,32,186,191,179,32,186,248,129,32,186,33,80,32,186,57,30,32,186,65,236,31,186,57,186,31,186,32,136,31,186,248,85,31,186,191,35,31,186,118,241,30,186,28,191,30,186,179,140,30,186,57,90,30,186,176,39,30,186,22,245,29,186,109,194,29,186,179,143,29,186,233,92,29,186,15,42,29,186,38,247,28,186,44,196,28,186,35,145,28,186,10,94,28,186,224,42,28,186,167,247,27,186,94,196,27,186,6,145,27,186,157,93,27,186,37,42,27,186,157,246,26,186,6,195,26,
186,94,143,26,186,167,91,26,186,225,39,26,186,11,244,25,186,37,192,25,186,47,140,25,186,43,88,25,186,22,36,25,186,242,239,24,186,191,187,24,186,124,135,24,186,41,83,24,186,200,30,24,186,87,234,23,186,214,181,23,186,70,129,23,186,167,76,23,186,249,23,23,186,59,227,22,186,110,174,22,186,146,121,22,186,166,68,22,186,172,15,22,186,162,218,21,186,137,165,21,186,97,112,21,186,42,59,21,186,227,5,21,186,142,208,20,186,42,155,20,186,183,101,20,186,52,48,20,186,163,250,19,186,3,197,19,186,84,143,19,186,150,
89,19,186,201,35,19,186,238,237,18,186,3,184,18,186,10,130,18,186,2,76,18,186,235,21,18,186,198,223,17,186,146,169,17,186,79,115,17,186,253,60,17,186,157,6,17,186,46,208,16,186,177,153,16,186,37,99,16,186,139,44,16,186,226,245,15,186,42,191,15,186,101,136,15,186,144,81,15,186,173,26,15,186,188,227,14,186,189,172,14,186,175,117,14,186,147,62,14,186,104,7,14,186,48,208,13,186,233,152,13,186,148,97,13,186,48,42,13,186,191,242,12,186,63,187,12,186,177,131,12,186,21,76,12,186,107,20,12,186,179,220,11,
186,237,164,11,186,25,109,11,186,55,53,11,186,70,253,10,186,72,197,10,186,60,141,10,186,35,85,10,186,251,28,10,186,197,228,9,186,130,172,9,186,49,116,9,186,210,59,9,186,101,3,9,186,235,202,8,186,99,146,8,186,205,89,8,186,42,33,8,186,121,232,7,186,186,175,7,186,238,118,7,186,20,62,7,186,45,5,7,186,56,204,6,186,54,147,6,186,38,90,6,186,9,33,6,186,223,231,5,186,167,174,5,186,97,117,5,186,15,60,5,186,175,2,5,186,66,201,4,186,199,143,4,186,64,86,4,186,171,28,4,186,9,227,3,186,90,169,3,186,157,111,3,186,
212,53,3,186,254,251,2,186,26,194,2,186,41,136,2,186,44,78,2,186,33,20,2,186,10,218,1,186,229,159,1,186,180,101,1,186,118,43,1,186,43,241,0,186,211,182,0,186,110,124,0,186,252,65,0,186,126,7,0,186,230,153,255,185,183,36,255,185,110,175,254,185,12,58,254,185,145,196,253,185,252,78,253,185,78,217,252,185,135,99,252,185,167,237,251,185,175,119,251,185,157,1,251,185,114,139,250,185,46,21,250,185,210,158,249,185,93,40,249,185,207,177,248,185,40,59,248,185,105,196,247,185,145,77,247,185,161,214,246,185,
153,95,246,185,119,232,245,185,62,113,245,185,236,249,244,185,130,130,244,185,0,11,244,185,102,147,243,185,180,27,243,185,233,163,242,185,7,44,242,185,12,180,241,185,250,59,241,185,208,195,240,185,142,75,240,185,53,211,239,185,195,90,239,185,58,226,238,185,154,105,238,185,226,240,237,185,19,120,237,185,44,255,236,185,45,134,236,185,24,13,236,185,235,147,235,185,167,26,235,185,76,161,234,185,217,39,234,185,80,174,233,185,175,52,233,185,248,186,232,185,42,65,232,185,69,199,231,185,73,77,231,185,54,
211,230,185,12,89,230,185,204,222,229,185,118,100,229,185,9,234,228,185,133,111,228,185,235,244,227,185,58,122,227,185,116,255,226,185,151,132,226,185,163,9,226,185,154,142,225,185,122,19,225,185,68,152,224,185,249,28,224,185,151,161,223,185,32,38,223,185,146,170,222,185,239,46,222,185,54,179,221,185,103,55,221,185,131,187,220,185,137,63,220,185,122,195,219,185,85,71,219,185,26,203,218,185,202,78,218,185,101,210,217,185,235,85,217,185,91,217,216,185,183,92,216,185,253,223,215,185,46,99,215,185,74,
230,214,185,81,105,214,185,67,236,213,185,33,111,213,185,233,241,212,185,157,116,212,185,60,247,211,185,198,121,211,185,60,252,210,185,158,126,210,185,235,0,210,185,35,131,209,185,71,5,209,185,87,135,208,185,82,9,208,185,58,139,207,185,13,13,207,185,204,142,206,185,119,16,206,185,14,146,205,185,145,19,205,185,0,149,204,185,91,22,204,185,163,151,203,185,215,24,203,185,247,153,202,185,3,27,202,185,252,155,201,185,226,28,201,185,180,157,200,185,114,30,200,185,30,159,199,185,182,31,199,185,58,160,198,
185,172,32,198,185,10,161,197,185,86,33,197,185,142,161,196,185,179,33,196,185,198,161,195,185,197,33,195,185,178,161,194,185,140,33,194,185,84,161,193,185,8,33,193,185,170,160,192,185,58,32,192,185,183,159,191,185,34,31,191,185,122,158,190,185,192,29,190,185,244,156,189,185,21,28,189,185,37,155,188,185,34,26,188,185,13,153,187,185,230,23,187,185,174,150,186,185,99,21,186,185,7,148,185,185,153,18,185,185,25,145,184,185,135,15,184,185,228,141,183,185,48,12,183,185,106,138,182,185,146,8,182,185,169,
134,181,185,175,4,181,185,163,130,180,185,134,0,180,185,88,126,179,185,25,252,178,185,201,121,178,185,104,247,177,185,246,116,177,185,115,242,176,185,224,111,176,185,59,237,175,185,134,106,175,185,192,231,174,185,233,100,174,185,2,226,173,185,11,95,173,185,3,220,172,185,235,88,172,185,194,213,171,185,137,82,171,185,64,207,170,185,230,75,170,185,125,200,169,185,3,69,169,185,122,193,168,185,224,61,168,185,55,186,167,185,126,54,167,185,181,178,166,185,220,46,166,185,244,170,165,185,252,38,165,185,244,
162,164,185,222,30,164,185,183,154,163,185,129,22,163,185,60,146,162,185,232,13,162,185,132,137,161,185,17,5,161,185,144,128,160,185,255,251,159,185,95,119,159,185,176,242,158,185,242,109,158,185,38,233,157,185,74,100,157,185,96,223,156,185,104,90,156,185,96,213,155,185,74,80,155,185,38,203,154,185,243,69,154,185,178,192,153,185,99,59,153,185,5,182,152,185,153,48,152,185,31,171,151,185,151,37,151,185,1,160,150,185,93,26,150,185,171,148,149,185,235,14,149,185,29,137,148,185,66,3,148,185,88,125,147,
185,98,247,146,185,93,113,146,185,75,235,145,185,44,101,145,185,255,222,144,185,197,88,144,185,125,210,143,185,41,76,143,185,199,197,142,185,88,63,142,185,220,184,141,185,82,50,141,185,188,171,140,185,25,37,140,185,106,158,139,185,173,23,139,185,228,144,138,185,13,10,138,185,43,131,137,185,60,252,136,185,64,117,136,185,56,238,135,185,35,103,135,185,2,224,134,185,213,88,134,185,156,209,133,185,86,74,133,185,4,195,132,185,167,59,132,185,61,180,131,185,199,44,131,185,70,165,130,185,185,29,130,185,31,
150,129,185,123,14,129,185,202,134,128,185,28,254,127,185,141,238,126,185,231,222,125,185,42,207,124,185,86,191,123,185,108,175,122,185,107,159,121,185,84,143,120,185,38,127,119,185,227,110,118,185,137,94,117,185,25,78,116,185,148,61,115,185,249,44,114,185,72,28,113,185,130,11,112,185,167,250,110,185,182,233,109,185,176,216,108,185,149,199,107,185,101,182,106,185,33,165,105,185,200,147,104,185,90,130,103,185,216,112,102,185,65,95,101,185,150,77,100,185,215,59,99,185,5,42,98,185,30,24,97,185,36,6,
96,185,22,244,94,185,244,225,93,185,191,207,92,185,119,189,91,185,28,171,90,185,173,152,89,185,44,134,88,185,152,115,87,185,241,96,86,185,55,78,85,185,107,59,84,185,141,40,83,185,156,21,82,185,154,2,81,185,133,239,79,185,94,220,78,185,38,201,77,185,220,181,76,185,128,162,75,185,19,143,74,185,149,123,73,185,5,104,72,185,101,84,71,185,179,64,70,185,241,44,69,185,29,25,68,185,57,5,67,185,69,241,65,185,64,221,64,185,43,201,63,185,6,181,62,185,209,160,61,185,140,140,60,185,55,120,59,185,210,99,58,185,
94,79,57,185,218,58,56,185,71,38,55,185,165,17,54,185,243,252,52,185,51,232,51,185,99,211,50,185,133,190,49,185,152,169,48,185,157,148,47,185,147,127,46,185,123,106,45,185,85,85,44,185,33,64,43,185,223,42,42,185,143,21,41,185,49,0,40,185,197,234,38,185,76,213,37,185,198,191,36,185,50,170,35,185,146,148,34,185,228,126,33,185,41,105,32,185,98,83,31,185,142,61,30,185,173,39,29,185,192,17,28,185,198,251,26,185,193,229,25,185,175,207,24,185,145,185,23,185,104,163,22,185,50,141,21,185,241,118,20,185,165,
96,19,185,77,74,18,185,234,51,17,185,123,29,16,185,2,7,15,185,125,240,13,185,238,217,12,185,84,195,11,185,176,172,10,185,1,150,9,185,72,127,8,185,132,104,7,185,183,81,6,185,223,58,5,185,253,35,4,185,18,13,3,185,29,246,1,185,31,223,0,185,46,144,255,184,11,98,253,184,215,51,251,184,144,5,249,184,55,215,246,184,205,168,244,184,81,122,242,184,196,75,240,184,38,29,238,184,119,238,235,184,183,191,233,184,232,144,231,184,8,98,229,184,25,51,227,184,26,4,225,184,12,213,222,184,238,165,220,184,194,118,218,
184,135,71,216,184,62,24,214,184,230,232,211,184,129,185,209,184,14,138,207,184,141,90,205,184,255,42,203,184,101,251,200,184,189,203,198,184,9,156,196,184,72,108,194,184,124,60,192,184,164,12,190,184,192,220,187,184,209,172,185,184,214,124,183,184,209,76,181,184,193,28,179,184,167,236,176,184,130,188,174,184,83,140,172,184,27,92,170,184,217,43,168,184,142,251,165,184,58,203,163,184,221,154,161,184,120,106,159,184,10,58,157,184,148,9,155,184,23,217,152,184,145,168,150,184,5,120,148,184,113,71,146,
184,214,22,144,184,53,230,141,184,141,181,139,184,222,132,137,184,42,84,135,184,112,35,133,184,177,242,130,184,236,193,128,184,69,34,125,184,167,192,120,184,1,95,116,184,82,253,111,184,154,155,107,184,219,57,103,184,21,216,98,184,72,118,94,184,116,20,90,184,154,178,85,184,187,80,81,184,215,238,76,184,239,140,72,184,2,43,68,184,18,201,63,184,31,103,59,184,41,5,55,184,49,163,50,184,55,65,46,184,60,223,41,184,64,125,37,184,68,27,33,184,72,185,28,184,77,87,24,184,83,245,19,184,90,147,15,184,100,49,11,
184,112,207,6,184,126,109,2,184,33,23,252,183,78,83,243,183,131,143,234,183,193,203,225,183,11,8,217,183,95,68,208,183,193,128,199,183,47,189,190,183,172,249,181,183,56,54,173,183,213,114,164,183,130,175,155,183,66,236,146,183,20,41,138,183,251,101,129,183,236,69,113,183,14,192,95,183,94,58,78,183,220,180,60,183,140,47,43,183,111,170,25,183,135,37,8,183,171,65,237,182,185,56,202,182,60,48,167,182,56,40,132,182,95,65,66,182,158,102,248,181,26,153,88,181,45,91,126,52,43,225,171,53,91,250,27,54,250,
2,98,54,55,5,148,54,86,8,183,54,215,10,218,54,183,12,253,54,249,6,16,55,66,135,33,55,52,7,51,55,207,134,68,55,15,6,86,55,243,132,103,55,122,3,121,55,208,64,133,55,179,255,141,55,100,190,150,55,226,124,159,55,45,59,168,55,68,249,176,55,37,183,185,55,207,116,194,55,67,50,203,55,126,239,211,55,128,172,220,55,72,105,229,55,214,37,238,55,39,226,246,55,59,158,255,55,9,45,4,56,213,138,8,56,129,232,12,56,13,70,17,56,121,163,21,56,195,0,26,56,235,93,30,56,242,186,34,56,213,23,39,56,150,116,43,56,51,209,47,
56,173,45,52,56,2,138,56,56,50,230,60,56,60,66,65,56,33,158,69,56,224,249,73,56,120,85,78,56,232,176,82,56,49,12,87,56,82,103,91,56,74,194,95,56,26,29,100,56,191,119,104,56,59,210,108,56,141,44,113,56,179,134,117,56,174,224,121,56,126,58,126,56,16,74,129,56,204,118,131,56,112,163,133,56,254,207,135,56,117,252,137,56,212,40,140,56,28,85,142,56,76,129,144,56,100,173,146,56,100,217,148,56,76,5,151,56,27,49,153,56,209,92,155,56,110,136,157,56,241,179,159,56,91,223,161,56,171,10,164,56,226,53,166,56,253,
96,168,56,255,139,170,56,229,182,172,56,177,225,174,56,98,12,177,56,247,54,179,56,112,97,181,56,206,139,183,56,15,182,185,56,52,224,187,56,61,10,190,56,40,52,192,56,247,93,194,56,169,135,196,56,61,177,198,56,179,218,200,56,11,4,203,56,69,45,205,56,97,86,207,56,95,127,209,56,61,168,211,56,252,208,213,56,156,249,215,56,29,34,218,56,125,74,220,56,190,114,222,56,223,154,224,56,223,194,226,56,190,234,228,56,125,18,231,56,26,58,233,56,150,97,235,56,240,136,237,56,41,176,239,56,64,215,241,56,52,254,243,
56,6,37,246,56,181,75,248,56,65,114,250,56,170,152,252,56,240,190,254,56,137,114,0,57,136,133,1,57,117,152,2,57,80,171,3,57,25,190,4,57,207,208,5,57,115,227,6,57,4,246,7,57,130,8,9,57,238,26,10,57,71,45,11,57,140,63,12,57,191,81,13,57,222,99,14,57,234,117,15,57,226,135,16,57,199,153,17,57,151,171,18,57,85,189,19,57,254,206,20,57,147,224,21,57,20,242,22,57,128,3,24,57,216,20,25,57,28,38,26,57,75,55,27,57,101,72,28,57,107,89,29,57,91,106,30,57,54,123,31,57,252,139,32,57,173,156,33,57,73,173,34,57,207,
189,35,57,63,206,36,57,153,222,37,57,222,238,38,57,13,255,39,57,37,15,41,57,39,31,42,57,20,47,43,57,233,62,44,57,168,78,45,57,81,94,46,57,226,109,47,57,93,125,48,57,193,140,49,57,14,156,50,57,67,171,51,57,97,186,52,57,104,201,53,57,87,216,54,57,47,231,55,57,238,245,56,57,150,4,58,57,38,19,59,57,158,33,60,57,254,47,61,57,69,62,62,57,116,76,63,57,138,90,64,57,136,104,65,57,109,118,66,57,57,132,67,57,236,145,68,57,134,159,69,57,7,173,70,57,110,186,71,57,188,199,72,57,240,212,73,57,11,226,74,57,12,239,
75,57,243,251,76,57,193,8,78,57,116,21,79,57,13,34,80,57,139,46,81,57,239,58,82,57,57,71,83,57,104,83,84,57,124,95,85,57,118,107,86,57,84,119,87,57,24,131,88,57,192,142,89,57,77,154,90,57,190,165,91,57,20,177,92,57,78,188,93,57,109,199,94,57,112,210,95,57,86,221,96,57,33,232,97,57,208,242,98,57,98,253,99,57,216,7,101,57,49,18,102,57,110,28,103,57,142,38,104,57,145,48,105,57,119,58,106,57,64,68,107,57,236,77,108,57,123,87,109,57,237,96,110,57,64,106,111,57,119,115,112,57,143,124,113,57,138,133,114,
57,103,142,115,57,38,151,116,57,199,159,117,57,73,168,118,57,173,176,119,57,243,184,120,57,26,193,121,57,35,201,122,57,12,209,123,57,215,216,124,57,131,224,125,57,16,232,126,57,125,239,127,57,102,123,128,57,253,254,128,57,133,130,129,57,252,5,130,57,100,137,130,57,188,12,131,57,4,144,131,57,60,19,132,57,100,150,132,57,124,25,133,57,131,156,133,57,122,31,134,57,97,162,134,57,56,37,135,57,254,167,135,57,180,42,136,57,89,173,136,57,238,47,137,57,114,178,137,57,229,52,138,57,72,183,138,57,153,57,139,
57,218,187,139,57,10,62,140,57,42,192,140,57,56,66,141,57,53,196,141,57,33,70,142,57,252,199,142,57,197,73,143,57,126,203,143,57,37,77,144,57,186,206,144,57,63,80,145,57,177,209,145,57,19,83,146,57,98,212,146,57,160,85,147,57,205,214,147,57,231,87,148,57,240,216,148,57,231,89,149,57,204,218,149,57,159,91,150,57,97,220,150,57,16,93,151,57,173,221,151,57,56,94,152,57,176,222,152,57,22,95,153,57,107,223,153,57,172,95,154,57,219,223,154,57,248,95,155,57,3,224,155,57,250,95,156,57,223,223,156,57,178,95,
157,57,113,223,157,57,30,95,158,57,184,222,158,57,63,94,159,57,180,221,159,57,21,93,160,57,99,220,160,57,158,91,161,57,198,218,161,57,219,89,162,57,220,216,162,57,202,87,163,57,165,214,163,57,108,85,164,57,32,212,164,57,193,82,165,57,78,209,165,57,199,79,166,57,45,206,166,57,127,76,167,57,189,202,167,57,231,72,168,57,253,198,168,57,0,69,169,57,239,194,169,57,201,64,170,57,144,190,170,57,66,60,171,57,224,185,171,57,106,55,172,57,224,180,172,57,65,50,173,57,142,175,173,57,198,44,174,57,234,169,174,
57,250,38,175,57,245,163,175,57,219,32,176,57,173,157,176,57,106,26,177,57,18,151,177,57,165,19,178,57,35,144,178,57,141,12,179,57,225,136,179,57,33,5,180,57,75,129,180,57,96,253,180,57,96,121,181,57,75,245,181,57,32,113,182,57,224,236,182,57,139,104,183,57,32,228,183,57,160,95,184,57,11,219,184,57,95,86,185,57,158,209,185,57,200,76,186,57,219,199,186,57,217,66,187,57,193,189,187,57,147,56,188,57,79,179,188,57,245,45,189,57,133,168,189,57,255,34,190,57,99,157,190,57,177,23,191,57,232,145,191,57,10,
12,192,57,20,134,192,57,9,0,193,57,231,121,193,57,174,243,193,57,95,109,194,57,250,230,194,57,126,96,195,57,235,217,195,57,65,83,196,57,129,204,196,57,169,69,197,57,187,190,197,57,182,55,198,57,154,176,198,57,103,41,199,57,29,162,199,57,188,26,200,57,67,147,200,57,180,11,201,57,13,132,201,57,79,252,201,57,121,116,202,57,140,236,202,57,136,100,203,57,108,220,203,57,56,84,204,57,237,203,204,57,138,67,205,57,16,187,205,57,125,50,206,57,211,169,206,57,17,33,207,57,56,152,207,57,70,15,208,57,60,134,208,
57,26,253,208,57,224,115,209,57,142,234,209,57,36,97,210,57,162,215,210,57,7,78,211,57,84,196,211,57,137,58,212,57,165,176,212,57,168,38,213,57,148,156,213,57,102,18,214,57,32,136,214,57,193,253,214,57,74,115,215,57,186,232,215,57,17,94,216,57,79,211,216,57,116,72,217,57,129,189,217,57,116,50,218,57,78,167,218,57,16,28,219,57,184,144,219,57,71,5,220,57,188,121,220,57,25,238,220,57,92,98,221,57,133,214,221,57,150,74,222,57,141,190,222,57,106,50,223,57,46,166,223,57,216,25,224,57,104,141,224,57,223,
0,225,57,60,116,225,57,127,231,225,57,169,90,226,57,184,205,226,57,174,64,227,57,138,179,227,57,75,38,228,57,243,152,228,57,128,11,229,57,244,125,229,57,77,240,229,57,139,98,230,57,176,212,230,57,186,70,231,57,170,184,231,57,127,42,232,57,58,156,232,57,219,13,233,57,96,127,233,57,204,240,233,57,28,98,234,57,82,211,234,57,109,68,235,57,109,181,235,57,83,38,236,57,29,151,236,57,205,7,237,57,97,120,237,57,219,232,237,57,57,89,238,57,125,201,238,57,165,57,239,57,178,169,239,57,164,25,240,57,122,137,240,
57,53,249,240,57,213,104,241,57,89,216,241,57,194,71,242,57,15,183,242,57,65,38,243,57,87,149,243,57,82,4,244,57,49,115,244,57,244,225,244,57,155,80,245,57,38,191,245,57,150,45,246,57,234,155,246,57,33,10,247,57,61,120,247,57,60,230,247,57,32,84,248,57,231,193,248,57,147,47,249,57,33,157,249,57,148,10,250,57,235,119,250,57,37,229,250,57,66,82,251,57,67,191,251,57,40,44,252,57,240,152,252,57,156,5,253,57,43,114,253,57,157,222,253,57,242,74,254,57,43,183,254,57,71,35,255,57,70,143,255,57,41,251,255,
57,119,51,0,58,75,105,0,58,17,159,0,58,200,212,0,58,113,10,1,58,11,64,1,58,150,117,1,58,19,171,1,58,129,224,1,58,225,21,2,58,50,75,2,58,116,128,2,58,167,181,2,58,204,234,2,58,226,31,3,58,233,84,3,58,226,137,3,58,203,190,3,58,166,243,3,58,114,40,4,58,47,93,4,58,221,145,4,58,124,198,4,58,12,251,4,58,141,47,5,58,255,99,5,58,98,152,5,58,183,204,5,58,252,0,6,58,50,53,6,58,89,105,6,58,112,157,6,58,121,209,6,58,114,5,7,58,93,57,7,58,56,109,7,58,4,161,7,58,192,212,7,58,110,8,8,58,12,60,8,58,155,111,8,58,
26,163,8,58,138,214,8,58,235,9,9,58,60,61,9,58,126,112,9,58,177,163,9,58,212,214,9,58,232,9,10,58,236,60,10,58,224,111,10,58,197,162,10,58,155,213,10,58,97,8,11,58,23,59,11,58,190,109,11,58,85,160,11,58,221,210,11,58,85,5,12,58,189,55,12,58,21,106,12,58,94,156,12,58,151,206,12,58,192,0,13,58,217,50,13,58,227,100,13,58,221,150,13,58,199,200,13,58,161,250,13,58,107,44,14,58,37,94,14,58,207,143,14,58,106,193,14,58,244,242,14,58,111,36,15,58,217,85,15,58,51,135,15,58,126,184,15,58,184,233,15,58,226,26,
16,58,252,75,16,58,6,125,16,58,0,174,16,58,234,222,16,58,195,15,17,58,140,64,17,58,69,113,17,58,238,161,17,58,135,210,17,58,15,3,18,58,135,51,18,58,239,99,18,58,70,148,18,58,141,196,18,58,195,244,18,58,234,36,19,58,255,84,19,58,5,133,19,58,250,180,19,58,222,228,19,58,178,20,20,58,117,68,20,58,40,116,20,58,203,163,20,58,93,211,20,58,222,2,21,58,78,50,21,58,174,97,21,58,254,144,21,58,60,192,21,58,106,239,21,58,136,30,22,58,148,77,22,58,144,124,22,58,123,171,22,58,86,218,22,58,31,9,23,58,216,55,23,58,
128,102,23,58,23,149,23,58,157,195,23,58,19,242,23,58,119,32,24,58,203,78,24,58,13,125,24,58,63,171,24,58,96,217,24,58,111,7,25,58,110,53,25,58,92,99,25,58,56,145,25,58,4,191,25,58,190,236,25,58,104,26,26,58,0,72,26,58,135,117,26,58,253,162,26,58,98,208,26,58,182,253,26,58,248,42,27,58,41,88,27,58,73,133,27,58,88,178,27,58,85,223,27,58,66,12,28,58,28,57,28,58,230,101,28,58,158,146,28,58,69,191,28,58,218,235,28,58,94,24,29,58,209,68,29,58,50,113,29,58,130,157,29,58,192,201,29,58,237,245,29,58,8,34,
30,58,18,78,30,58,10,122,30,58,241,165,30,58,198,209,30,58,137,253,30,58,59,41,31,58,219,84,31,58,106,128,31,58,231,171,31,58,82,215,31,58,172,2,32,58,244,45,32,58,42,89,32,58,78,132,32,58,97,175,32,58,98,218,32,58,81,5,33,58,46,48,33,58,250,90,33,58,179,133,33,58,91,176,33,58,241,218,33,58,117,5,34,58,231,47,34,58,71,90,34,58,149,132,34,58,210,174,34,58,252,216,34,58,20,3,35,58,26,45,35,58,15,87,35,58,241,128,35,58,193,170,35,58,127,212,35,58,43,254,35,58,197,39,36,58,77,81,36,58,194,122,36,58,38,
164,36,58,119,205,36,58,182,246,36,58,227,31,37,58,254,72,37,58,6,114,37,58,252,154,37,58,224,195,37,58,178,236,37,58,113,21,38,58,30,62,38,58,185,102,38,58,65,143,38,58,183,183,38,58,27,224,38,58,108,8,39,58,171,48,39,58,215,88,39,58,241,128,39,58,249,168,39,58,238,208,39,58,208,248,39,58,160,32,40,58,94,72,40,58,9,112,40,58,161,151,40,58,39,191,40,58,155,230,40,58,251,13,41,58,73,53,41,58,133,92,41,58,174,131,41,58,196,170,41,58,199,209,41,58,184,248,41,58,150,31,42,58,98,70,42,58,26,109,42,58,
192,147,42,58,83,186,42,58,212,224,42,58,65,7,43,58,156,45,43,58,228,83,43,58,25,122,43,58,59,160,43,58,75,198,43,58,71,236,43,58,49,18,44,58,8,56,44,58,203,93,44,58,124,131,44,58,26,169,44,58,165,206,44,58,29,244,44,58,130,25,45,58,212,62,45,58,19,100,45,58,63,137,45,58,88,174,45,58,94,211,45,58,80,248,45,58,48,29,46,58,252,65,46,58,182,102,46,58,92,139,46,58,239,175,46,58,111,212,46,58,220,248,46,58,53,29,47,58,123,65,47,58,175,101,47,58,206,137,47,58,219,173,47,58,212,209,47,58,187,245,47,58,141,
25,48,58,77,61,48,58,249,96,48,58,146,132,48,58,23,168,48,58,137,203,48,58,232,238,48,58,52,18,49,58,107,53,49,58,144,88,49,58,161,123,49,58,159,158,49,58,137,193,49,58,96,228,49,58,35,7,50,58,211,41,50,58,111,76,50,58,248,110,50,58,109,145,50,58,207,179,50,58,29,214,50,58,87,248,50,58,126,26,51,58,146,60,51,58,146,94,51,58,126,128,51,58,86,162,51,58,27,196,51,58,204,229,51,58,106,7,52,58,243,40,52,58,106,74,52,58,204,107,52,58,27,141,52,58,86,174,52,58,125,207,52,58,144,240,52,58,144,17,53,58,124,
50,53,58,84,83,53,58,24,116,53,58,200,148,53,58,101,181,53,58,237,213,53,58,98,246,53,58,195,22,54,58,16,55,54,58,73,87,54,58,111,119,54,58,128,151,54,58,125,183,54,58,103,215,54,58,60,247,54,58,254,22,55,58,171,54,55,58,69,86,55,58,202,117,55,58,60,149,55,58,153,180,55,58,227,211,55,58,24,243,55,58,57,18,56,58,70,49,56,58,63,80,56,58,36,111,56,58,245,141,56,58,178,172,56,58,91,203,56,58,239,233,56,58,111,8,57,58,220,38,57,58,52,69,57,58,119,99,57,58,167,129,57,58,194,159,57,58,201,189,57,58,188,
219,57,58,155,249,57,58,101,23,58,58,27,53,58,58,189,82,58,58,74,112,58,58,195,141,58,58,40,171,58,58,121,200,58,58,181,229,58,58,221,2,59,58,240,31,59,58,239,60,59,58,218,89,59,58,176,118,59,58,114,147,59,58,31,176,59,58,184,204,59,58,61,233,59,58,173,5,60,58,9,34,60,58,80,62,60,58,131,90,60,58,161,118,60,58,171,146,60,58,160,174,60,58,129,202,60,58,77,230,60,58,4,2,61,58,168,29,61,58,54,57,61,58,176,84,61,58,21,112,61,58,102,139,61,58,162,166,61,58,202,193,61,58,221,220,61,58,219,247,61,58,197,
18,62,58,153,45,62,58,90,72,62,58,5,99,62,58,156,125,62,58,31,152,62,58,140,178,62,58,229,204,62,58,41,231,62,58,88,1,63,58,115,27,63,58,121,53,63,58,106,79,63,58,70,105,63,58,14,131,63,58,193,156,63,58,95,182,63,58,232,207,63,58,92,233,63,58,188,2,64,58,6,28,64,58,60,53,64,58,93,78,64,58,105,103,64,58,97,128,64,58,67,153,64,58,16,178,64,58,201,202,64,58,109,227,64,58,251,251,64,58,117,20,65,58,218,44,65,58,42,69,65,58,101,93,65,58,139,117,65,58,156,141,65,58,152,165,65,58,127,189,65,58,81,213,65,
58,14,237,65,58,182,4,66,58,73,28,66,58,199,51,66,58,48,75,66,58,132,98,66,58,195,121,66,58,236,144,66,58,1,168,66,58,1,191,66,58,235,213,66,58,193,236,66,58,129,3,67,58,44,26,67,58,194,48,67,58,67,71,67,58,175,93,67,58,5,116,67,58,71,138,67,58,115,160,67,58,138,182,67,58,140,204,67,58,121,226,67,58,81,248,67,58,19,14,68,58,192,35,68,58,88,57,68,58,219,78,68,58,72,100,68,58,160,121,68,58,227,142,68,58,17,164,68,58,42,185,68,58,45,206,68,58,27,227,68,58,243,247,68,58,183,12,69,58,101,33,69,58,253,
53,69,58,129,74,69,58,239,94,69,58,71,115,69,58,139,135,69,58,185,155,69,58,210,175,69,58,213,195,69,58,195,215,69,58,155,235,69,58,95,255,69,58,12,19,70,58,165,38,70,58,40,58,70,58,149,77,70,58,238,96,70,58,48,116,70,58,94,135,70,58,118,154,70,58,120,173,70,58,101,192,70,58,61,211,70,58,255,229,70,58,171,248,70,58,67,11,71,58,196,29,71,58,48,48,71,58,135,66,71,58,200,84,71,58,244,102,71,58,10,121,71,58,11,139,71,58,246,156,71,58,204,174,71,58,140,192,71,58,54,210,71,58,203,227,71,58,75,245,71,58,
180,6,72,58,9,24,72,58,71,41,72,58,113,58,72,58,132,75,72,58,130,92,72,58,106,109,72,58,61,126,72,58,250,142,72,58,162,159,72,58,52,176,72,58,176,192,72,58,23,209,72,58,104,225,72,58,163,241,72,58,201,1,73,58,217,17,73,58,211,33,73,58,184,49,73,58,135,65,73,58,65,81,73,58,228,96,73,58,114,112,73,58,235,127,73,58,77,143,73,58,154,158,73,58,210,173,73,58,243,188,73,58,255,203,73,58,245,218,73,58,213,233,73,58,160,248,73,58,85,7,74,58,244,21,74,58,126,36,74,58,241,50,74,58,79,65,74,58,151,79,74,58,202,
93,74,58,231,107,74,58,237,121,74,58,223,135,74,58,186,149,74,58,127,163,74,58,47,177,74,58,201,190,74,58,77,204,74,58,188,217,74,58,20,231,74,58,87,244,74,58,132,1,75,58,155,14,75,58,156,27,75,58,136,40,75,58,93,53,75,58,29,66,75,58,199,78,75,58,91,91,75,58,217,103,75,58,66,116,75,58,148,128,75,58,209,140,75,58,248,152,75,58,9,165,75,58,4,177,75,58,233,188,75,58,185,200,75,58,114,212,75,58,22,224,75,58,163,235,75,58,27,247,75,58,125,2,76,58,201,13,76,58,255,24,76,58,31,36,76,58,42,47,76,58,30,58,
76,58,252,68,76,58,197,79,76,58,120,90,76,58,20,101,76,58,155,111,76,58,12,122,76,58,103,132,76,58,172,142,76,58,219,152,76,58,244,162,76,58,247,172,76,58,228,182,76,58,188,192,76,58,125,202,76,58,40,212,76,58,190,221,76,58,61,231,76,58,166,240,76,58,250,249,76,58,55,3,77,58,95,12,77,58,112,21,77,58,108,30,77,58,82,39,77,58,33,48,77,58,219,56,77,58,127,65,77,58,12,74,77,58,132,82,77,58,230,90,77,58,49,99,77,58,103,107,77,58,135,115,77,58,144,123,77,58,132,131,77,58,98,139,77,58,42,147,77,58,219,154,
77,58,119,162,77,58,252,169,77,58,108,177,77,58,198,184,77,58,9,192,77,58,55,199,77,58,78,206,77,58,80,213,77,58,59,220,77,58,17,227,77,58,208,233,77,58,122,240,77,58,13,247,77,58,139,253,77,58,242,3,78,58,67,10,78,58,126,16,78,58,164,22,78,58,179,28,78,58,172,34,78,58,143,40,78,58,92,46,78,58,19,52,78,58,180,57,78,58,63,63,78,58,180,68,78,58,19,74,78,58,92,79,78,58,142,84,78,58,171,89,78,58,178,94,78,58,162,99,78,58,125,104,78,58,65,109,78,58,240,113,78,58,136,118,78,58,10,123,78,58,119,127,78,58,
205,131,78,58,13,136,78,58,55,140,78,58,75,144,78,58,73,148,78,58,49,152,78,58,3,156,78,58,191,159,78,58,101,163,78,58,244,166,78,58,110,170,78,58,209,173,78,58,31,177,78,58,86,180,78,58,120,183,78,58,131,186,78,58,120,189,78,58,88,192,78,58,33,195,78,58,212,197,78,58,113,200,78,58,248,202,78,58,105,205,78,58,196,207,78,58,9,210,78,58,55,212,78,58,80,214,78,58,83,216,78,58,63,218,78,58,22,220,78,58,214,221,78,58,129,223,78,58,21,225,78,58,148,226,78,58,252,227,78,58,78,229,78,58,138,230,78,58,176,
231,78,58,193,232,78,58,187,233,78,58,159,234,78,58,109,235,78,58,36,236,78,58,198,236,78,58,82,237,78,58,200,237,78,58,40,238,78,58,113,238,78,58,165,238,78,58,195,238,78,58,202,238,78,58,188,238,78,58,151,238,78,58,93,238,78,58,12,238,78,58,166,237,78,58,41,237,78,58,151,236,78,58,238,235,78,58,47,235,78,58,91,234,78,58,112,233,78,58,111,232,78,58,88,231,78,58,44,230,78,58,233,228,78,58,144,227,78,58,33,226,78,58,157,224,78,58,2,223,78,58,81,221,78,58,138,219,78,58,174,217,78,58,187,215,78,58,178,
213,78,58,147,211,78,58,95,209,78,58,20,207,78,58,179,204,78,58,60,202,78,58,176,199,78,58,13,197,78,58,85,194,78,58,134,191,78,58,161,188,78,58,167,185,78,58,150,182,78,58,112,179,78,58,51,176,78,58,225,172,78,58,121,169,78,58,250,165,78,58,102,162,78,58,188,158,78,58,252,154,78,58,38,151,78,58,58,147,78,58,56,143,78,58,32,139,78,58,242,134,78,58,175,130,78,58,85,126,78,58,229,121,78,58,96,117,78,58,197,112,78,58,19,108,78,58,76,103,78,58,111,98,78,58,124,93,78,58,115,88,78,58,84,83,78,58,32,78,
78,58,213,72,78,58,117,67,78,58,254,61,78,58,114,56,78,58,208,50,78,58,24,45,78,58,74,39,78,58,103,33,78,58,109,27,78,58,94,21,78,58,57,15,78,58,253,8,78,58,173,2,78,58,70,252,77,58,201,245,77,58,55,239,77,58,143,232,77,58,209,225,77,58,253,218,77,58,19,212,77,58,20,205,77,58,254,197,77,58,211,190,77,58,146,183,77,58,60,176,77,58,207,168,77,58,77,161,77,58,181,153,77,58,7,146,77,58,68,138,77,58,106,130,77,58,123,122,77,58,118,114,77,58,92,106,77,58,43,98,77,58,229,89,77,58,138,81,77,58,24,73,77,58,
145,64,77,58,244,55,77,58,65,47,77,58,121,38,77,58,155,29,77,58,167,20,77,58,157,11,77,58,126,2,77,58,73,249,76,58,255,239,76,58,158,230,76,58,40,221,76,58,157,211,76,58,252,201,76,58,69,192,76,58,120,182,76,58,150,172,76,58,158,162,76,58,145,152,76,58,109,142,76,58,53,132,76,58,230,121,76,58,130,111,76,58,9,101,76,58,122,90,76,58,213,79,76,58,27,69,76,58,75,58,76,58,101,47,76,58,106,36,76,58,89,25,76,58,51,14,76,58,248,2,76,58,166,247,75,58,63,236,75,58,195,224,75,58,49,213,75,58,138,201,75,58,205,
189,75,58,250,177,75,58,18,166,75,58,21,154,75,58,2,142,75,58,217,129,75,58,156,117,75,58,72,105,75,58,223,92,75,58,97,80,75,58,205,67,75,58,36,55,75,58,101,42,75,58,145,29,75,58,168,16,75,58,169,3,75,58,148,246,74,58,107,233,74,58,44,220,74,58,215,206,74,58,109,193,74,58,238,179,74,58,89,166,74,58,175,152,74,58,240,138,74,58,27,125,74,58,49,111,74,58,49,97,74,58,28,83,74,58,242,68,74,58,179,54,74,58,94,40,74,58,244,25,74,58,117,11,74,58,224,252,73,58,54,238,73,58,119,223,73,58,163,208,73,58,185,
193,73,58,186,178,73,58,166,163,73,58,124,148,73,58,62,133,73,58,234,117,73,58,129,102,73,58,3,87,73,58,111,71,73,58,198,55,73,58,9,40,73,58,54,24,73,58,77,8,73,58,80,248,72,58,62,232,72,58,22,216,72,58,217,199,72,58,135,183,72,58,32,167,72,58,164,150,72,58,19,134,72,58,109,117,72,58,177,100,72,58,225,83,72,58,251,66,72,58,1,50,72,58,241,32,72,58,204,15,72,58,146,254,71,58,68,237,71,58,224,219,71,58,103,202,71,58,217,184,71,58,55,167,71,58,127,149,71,58,178,131,71,58,208,113,71,58,218,95,71,58,206,
77,71,58,173,59,71,58,120,41,71,58,46,23,71,58,206,4,71,58,90,242,70,58,209,223,70,58,51,205,70,58,128,186,70,58,184,167,70,58,220,148,70,58,234,129,70,58,228,110,70,58,201,91,70,58,153,72,70,58,84,53,70,58,250,33,70,58,140,14,70,58,9,251,69,58,113,231,69,58,196,211,69,58,3,192,69,58,44,172,69,58,66,152,69,58,66,132,69,58,45,112,69,58,4,92,69,58,199,71,69,58,116,51,69,58,13,31,69,58,145,10,69,58,0,246,68,58,91,225,68,58,161,204,68,58,211,183,68,58,240,162,68,58,248,141,68,58,236,120,68,58,203,99,
68,58,150,78,68,58,76,57,68,58,237,35,68,58,122,14,68,58,242,248,67,58,86,227,67,58,165,205,67,58,224,183,67,58,6,162,67,58,24,140,67,58,21,118,67,58,254,95,67,58,211,73,67,58,146,51,67,58,62,29,67,58,213,6,67,58,88,240,66,58,198,217,66,58,32,195,66,58,101,172,66,58,150,149,66,58,179,126,66,58,187,103,66,58,175,80,66,58,143,57,66,58,90,34,66,58,17,11,66,58,180,243,65,58,67,220,65,58,189,196,65,58,35,173,65,58,116,149,65,58,178,125,65,58,219,101,65,58,240,77,65,58,241,53,65,58,221,29,65,58,182,5,65,
58,122,237,64,58,42,213,64,58,198,188,64,58,77,164,64,58,193,139,64,58,33,115,64,58,108,90,64,58,163,65,64,58,198,40,64,58,213,15,64,58,209,246,63,58,184,221,63,58,139,196,63,58,73,171,63,58,244,145,63,58,139,120,63,58,14,95,63,58,125,69,63,58,216,43,63,58,31,18,63,58,82,248,62,58,113,222,62,58,125,196,62,58,116,170,62,58,87,144,62,58,39,118,62,58,227,91,62,58,138,65,62,58,30,39,62,58,159,12,62,58,11,242,61,58,99,215,61,58,168,188,61,58,217,161,61,58,246,134,61,58,0,108,61,58,245,80,61,58,215,53,
61,58,165,26,61,58,96,255,60,58,6,228,60,58,153,200,60,58,25,173,60,58,133,145,60,58,221,117,60,58,33,90,60,58,82,62,60,58,111,34,60,58,121,6,60,58,111,234,59,58,81,206,59,58,32,178,59,58,220,149,59,58,131,121,59,58,24,93,59,58,152,64,59,58,6,36,59,58,96,7,59,58,166,234,58,58,217,205,58,58,248,176,58,58,4,148,58,58,253,118,58,58,226,89,58,58,180,60,58,58,114,31,58,58,29,2,58,58,181,228,57,58,58,199,57,58,171,169,57,58,8,140,57,58,83,110,57,58,138,80,57,58,174,50,57,58,191,20,57,58,188,246,56,58,166,
216,56,58,125,186,56,58,65,156,56,58,242,125,56,58,143,95,56,58,25,65,56,58,144,34,56,58,244,3,56,58,69,229,55,58,131,198,55,58,174,167,55,58,197,136,55,58,202,105,55,58,187,74,55,58,154,43,55,58,101,12,55,58,30,237,54,58,195,205,54,58,86,174,54,58,213,142,54,58,66,111,54,58,155,79,54,58,226,47,54,58,22,16,54,58,55,240,53,58,69,208,53,58,64,176,53,58,41,144,53,58,254,111,53,58,193,79,53,58,113,47,53,58,14,15,53,58,152,238,52,58,16,206,52,58,116,173,52,58,198,140,52,58,6,108,52,58,51,75,52,58,77,42,
52,58,84,9,52,58,72,232,51,58,43,199,51,58],"i8",4,y.a+727040);
Q([250,165,51,58,183,132,51,58,97,99,51,58,248,65,51,58,125,32,51,58,240,254,50,58,80,221,50,58,157,187,50,58,216,153,50,58,1,120,50,58,23,86,50,58,26,52,50,58,11,18,50,58,234,239,49,58,182,205,49,58,112,171,49,58,23,137,49,58,172,102,49,58,47,68,49,58,159,33,49,58,253,254,48,58,73,220,48,58,131,185,48,58,170,150,48,58,191,115,48,58,193,80,48,58,178,45,48,58,144,10,48,58,92,231,47,58,22,196,47,58,189,160,47,58,83,125,47,58,214,89,47,58,72,54,47,58,167,18,47,58,244,238,46,58,47,203,46,58,88,167,46,
58,111,131,46,58,116,95,46,58,103,59,46,58,71,23,46,58,22,243,45,58,211,206,45,58,126,170,45,58,24,134,45,58,159,97,45,58,20,61,45,58,119,24,45,58,201,243,44,58,9,207,44,58,55,170,44,58,83,133,44,58,93,96,44,58,85,59,44,58,60,22,44,58,17,241,43,58,212,203,43,58,134,166,43,58,38,129,43,58,180,91,43,58,49,54,43,58,155,16,43,58,245,234,42,58,60,197,42,58,114,159,42,58,151,121,42,58,170,83,42,58,171,45,42,58,155,7,42,58,121,225,41,58,70,187,41,58,1,149,41,58,171,110,41,58,68,72,41,58,203,33,41,58,64,
251,40,58,165,212,40,58,247,173,40,58,57,135,40,58,105,96,40,58,136,57,40,58,149,18,40,58,146,235,39,58,124,196,39,58,86,157,39,58,31,118,39,58,214,78,39,58,124,39,39,58,17,0,39,58,148,216,38,58,7,177,38,58,104,137,38,58,185,97,38,58,248,57,38,58,38,18,38,58,67,234,37,58,79,194,37,58,74,154,37,58,52,114,37,58,13,74,37,58,213,33,37,58,140,249,36,58,50,209,36,58,199,168,36,58,75,128,36,58,191,87,36,58,33,47,36,58,115,6,36,58,180,221,35,58,228,180,35,58,3,140,35,58,17,99,35,58,15,58,35,58,252,16,35,
58,216,231,34,58,164,190,34,58,95,149,34,58,9,108,34,58,162,66,34,58,43,25,34,58,164,239,33,58,11,198,33,58,98,156,33,58,169,114,33,58,223,72,33,58,4,31,33,58,25,245,32,58,30,203,32,58,18,161,32,58,246,118,32,58,201,76,32,58,139,34,32,58,62,248,31,58,224,205,31,58,113,163,31,58,243,120,31,58,100,78,31,58,196,35,31,58,21,249,30,58,85,206,30,58,133,163,30,58,164,120,30,58,180,77,30,58,179,34,30,58,162,247,29,58,129,204,29,58,80,161,29,58,15,118,29,58,189,74,29,58,92,31,29,58,234,243,28,58,105,200,28,
58,215,156,28,58,53,113,28,58,132,69,28,58,194,25,28,58,241,237,27,58,16,194,27,58,30,150,27,58,29,106,27,58,12,62,27,58,235,17,27,58,187,229,26,58,122,185,26,58,42,141,26,58,202,96,26,58,90,52,26,58,219,7,26,58,75,219,25,58,173,174,25,58,254,129,25,58,64,85,25,58,114,40,25,58,148,251,24,58,167,206,24,58,171,161,24,58,159,116,24,58,131,71,24,58,88,26,24,58,29,237,23,58,211,191,23,58,121,146,23,58,16,101,23,58,152,55,23,58,16,10,23,58,121,220,22,58,210,174,22,58,28,129,22,58,87,83,22,58,130,37,22,
58,159,247,21,58,172,201,21,58,169,155,21,58,152,109,21,58,119,63,21,58,71,17,21,58,8,227,20,58,186,180,20,58,93,134,20,58,240,87,20,58,117,41,20,58,235,250,19,58,81,204,19,58,169,157,19,58,241,110,19,58,43,64,19,58,85,17,19,58,113,226,18,58,126,179,18,58,123,132,18,58,106,85,18,58,74,38,18,58,28,247,17,58,222,199,17,58,146,152,17,58,55,105,17,58,205,57,17,58,85,10,17,58,205,218,16,58,56,171,16,58,147,123,16,58,224,75,16,58,30,28,16,58,77,236,15,58,110,188,15,58,129,140,15,58,133,92,15,58,122,44,
15,58,97,252,14,58,57,204,14,58,3,156,14,58,191,107,14,58,108,59,14,58,11,11,14,58,155,218,13,58,29,170,13,58,145,121,13,58,246,72,13,58,77,24,13,58,150,231,12,58,208,182,12,58,253,133,12,58,27,85,12,58,43,36,12,58,45,243,11,58,32,194,11,58,6,145,11,58,221,95,11,58,167,46,11,58,98,253,10,58,15,204,10,58,175,154,10,58,64,105,10,58,195,55,10,58,57,6,10,58,160,212,9,58,250,162,9,58,69,113,9,58,131,63,9,58,179,13,9,58,213,219,8,58,234,169,8,58,240,119,8,58,233,69,8,58,212,19,8,58,178,225,7,58,129,175,
7,58,67,125,7,58,248,74,7,58,158,24,7,58,56,230,6,58,195,179,6,58,65,129,6,58,178,78,6,58,21,28,6,58,106,233,5,58,178,182,5,58,237,131,5,58,26,81,5,58,58,30,5,58,76,235,4,58,81,184,4,58,73,133,4,58,51,82,4,58,16,31,4,58,224,235,3,58,163,184,3,58,88,133,3,58,0,82,3,58,155,30,3,58,41,235,2,58,170,183,2,58,29,132,2,58,132,80,2,58,221,28,2,58,41,233,1,58,105,181,1,58,155,129,1,58,192,77,1,58,217,25,1,58,228,229,0,58,227,177,0,58,212,125,0,58,185,73,0,58,145,21,0,58,184,194,255,57,52,90,255,57,151,241,
254,57,225,136,254,57,17,32,254,57,39,183,253,57,36,78,253,57,8,229,252,57,211,123,252,57,132,18,252,57,28,169,251,57,155,63,251,57,1,214,250,57,78,108,250,57,130,2,250,57,156,152,249,57,158,46,249,57,135,196,248,57,87,90,248,57,15,240,247,57,173,133,247,57,51,27,247,57,161,176,246,57,245,69,246,57,49,219,245,57,85,112,245,57,96,5,245,57,83,154,244,57,45,47,244,57,239,195,243,57,153,88,243,57,42,237,242,57,164,129,242,57,5,22,242,57,78,170,241,57,127,62,241,57,152,210,240,57,153,102,240,57,130,250,
239,57,83,142,239,57,13,34,239,57,175,181,238,57,56,73,238,57,171,220,237,57,5,112,237,57,72,3,237,57,116,150,236,57,136,41,236,57,132,188,235,57,106,79,235,57,55,226,234,57,238,116,234,57,141,7,234,57,21,154,233,57,134,44,233,57,224,190,232,57,34,81,232,57,78,227,231,57,99,117,231,57,96,7,231,57,71,153,230,57,23,43,230,57,209,188,229,57,115,78,229,57,255,223,228,57,116,113,228,57,210,2,228,57,26,148,227,57,76,37,227,57,103,182,226,57,108,71,226,57,90,216,225,57,50,105,225,57,243,249,224,57,159,138,
224,57,52,27,224,57,179,171,223,57,28,60,223,57,111,204,222,57,172,92,222,57,211,236,221,57,229,124,221,57,224,12,221,57,198,156,220,57,150,44,220,57,80,188,219,57,244,75,219,57,131,219,218,57,253,106,218,57,97,250,217,57,175,137,217,57,232,24,217,57,12,168,216,57,26,55,216,57,19,198,215,57,247,84,215,57,198,227,214,57,127,114,214,57,36,1,214,57,179,143,213,57,46,30,213,57,148,172,212,57,228,58,212,57,32,201,211,57,71,87,211,57,90,229,210,57,88,115,210,57,65,1,210,57,21,143,209,57,213,28,209,57,129,
170,208,57,24,56,208,57,154,197,207,57,9,83,207,57,99,224,206,57,169,109,206,57,218,250,205,57,248,135,205,57,1,21,205,57,247,161,204,57,216,46,204,57,165,187,203,57,95,72,203,57,5,213,202,57,151,97,202,57,21,238,201,57,127,122,201,57,214,6,201,57,25,147,200,57,73,31,200,57,101,171,199,57,110,55,199,57,99,195,198,57,69,79,198,57,19,219,197,57,207,102,197,57,119,242,196,57,12,126,196,57,142,9,196,57,253,148,195,57,88,32,195,57,161,171,194,57,215,54,194,57,250,193,193,57,11,77,193,57,8,216,192,57,243,
98,192,57,203,237,191,57,145,120,191,57,68,3,191,57,228,141,190,57,114,24,190,57,238,162,189,57,87,45,189,57,174,183,188,57,243,65,188,57,38,204,187,57,70,86,187,57,84,224,186,57,80,106,186,57,59,244,185,57,19,126,185,57,217,7,185,57,142,145,184,57,48,27,184,57,193,164,183,57,64,46,183,57,174,183,182,57,10,65,182,57,84,202,181,57,141,83,181,57,180,220,180,57,202,101,180,57,207,238,179,57,194,119,179,57,164,0,179,57,117,137,178,57,53,18,178,57,228,154,177,57,129,35,177,57,14,172,176,57,138,52,176,
57,244,188,175,57,78,69,175,57,151,205,174,57,208,85,174,57,247,221,173,57,14,102,173,57,21,238,172,57,11,118,172,57,240,253,171,57,197,133,171,57,138,13,171,57,62,149,170,57,226,28,170,57,118,164,169,57,249,43,169,57,108,179,168,57,208,58,168,57,35,194,167,57,102,73,167,57,154,208,166,57,189,87,166,57,209,222,165,57,213,101,165,57,201,236,164,57,174,115,164,57,130,250,163,57,72,129,163,57,254,7,163,57,164,142,162,57,59,21,162,57,194,155,161,57,59,34,161,57,164,168,160,57,253,46,160,57,72,181,159,
57,131,59,159,57,176,193,158,57,205,71,158,57,220,205,157,57,219,83,157,57,204,217,156,57,174,95,156,57,129,229,155,57,70,107,155,57,252,240,154,57,163,118,154,57,60,252,153,57,198,129,153,57,66,7,153,57,175,140,152,57,14,18,152,57,95,151,151,57,162,28,151,57,214,161,150,57,253,38,150,57,21,172,149,57,31,49,149,57,27,182,148,57,10,59,148,57,234,191,147,57,189,68,147,57,130,201,146,57,57,78,146,57,227,210,145,57,127,87,145,57,13,220,144,57,142,96,144,57,1,229,143,57,103,105,143,57,192,237,142,57,12,
114,142,57,74,246,141,57,123,122,141,57,159,254,140,57,181,130,140,57,191,6,140,57,188,138,139,57,172,14,139,57,143,146,138,57,101,22,138,57,47,154,137,57,235,29,137,57,155,161,136,57,63,37,136,57,214,168,135,57,96,44,135,57,222,175,134,57,79,51,134,57,181,182,133,57,14,58,133,57,90,189,132,57,155,64,132,57,207,195,131,57,247,70,131,57,20,202,130,57,36,77,130,57,40,208,129,57,33,83,129,57,13,214,128,57,238,88,128,57,134,183,127,57,25,189,126,57,149,194,125,57,250,199,124,57,72,205,123,57,126,210,
122,57,158,215,121,57,168,220,120,57,154,225,119,57,119,230,118,57,60,235,117,57,236,239,116,57,133,244,115,57,9,249,114,57,118,253,113,57,206,1,113,57,16,6,112,57,60,10,111,57,83,14,110,57,84,18,109,57,64,22,108,57,23,26,107,57,217,29,106,57,133,33,105,57,29,37,104,57,160,40,103,57,15,44,102,57,104,47,101,57,174,50,100,57,223,53,99,57,251,56,98,57,4,60,97,57,249,62,96,57,217,65,95,57,166,68,94,57,95,71,93,57,5,74,92,57,151,76,91,57,21,79,90,57,129,81,89,57,217,83,88,57,30,86,87,57,80,88,86,57,111,
90,85,57,124,92,84,57,118,94,83,57,93,96,82,57,50,98,81,57,244,99,80,57,165,101,79,57,67,103,78,57,207,104,77,57,73,106,76,57,178,107,75,57,9,109,74,57,78,110,73,57,130,111,72,57,164,112,71,57,181,113,70,57,181,114,69,57,164,115,68,57,130,116,67,57,80,117,66,57,12,118,65,57,184,118,64,57,83,119,63,57,222,119,62,57,89,120,61,57,196,120,60,57,30,121,59,57,104,121,58,57,163,121,57,57,206,121,56,57,233,121,55,57,245,121,54,57,241,121,53,57,222,121,52,57,187,121,51,57,138,121,50,57,73,121,49,57,250,120,
48,57,156,120,47,57,47,120,46,57,180,119,45,57,42,119,44,57,146,118,43,57,235,117,42,57,55,117,41,57,116,116,40,57,163,115,39,57,197,114,38,57,217,113,37,57,223,112,36,57,216,111,35,57,195,110,34,57,162,109,33,57,115,108,32,57,54,107,31,57,237,105,30,57,151,104,29,57,53,103,28,57,197,101,27,57,74,100,26,57,193,98,25,57,45,97,24,57,140,95,23,57,223,93,22,57,38,92,21,57,98,90,20,57,145,88,19,57,181,86,18,57,205,84,17,57,218,82,16,57,220,80,15,57,210,78,14,57,189,76,13,57,157,74,12,57,115,72,11,57,61,
70,10,57,253,67,9,57,178,65,8,57,93,63,7,57,253,60,6,57,147,58,5,57,31,56,4,57,161,53,3,57,25,51,2,57,135,48,1,57,235,45,0,57,140,86,254,56,47,81,252,56,191,75,250,56,60,70,248,56,167,64,246,56,255,58,244,56,70,53,242,56,123,47,240,56,159,41,238,56,177,35,236,56,179,29,234,56,163,23,232,56,131,17,230,56,82,11,228,56,18,5,226,56,193,254,223,56,96,248,221,56,240,241,219,56,113,235,217,56,227,228,215,56,69,222,213,56,153,215,211,56,223,208,209,56,22,202,207,56,63,195,205,56,91,188,203,56,105,181,201,
56,105,174,199,56,93,167,197,56,67,160,195,56,29,153,193,56,234,145,191,56,171,138,189,56,96,131,187,56,9,124,185,56,166,116,183,56,56,109,181,56,191,101,179,56,58,94,177,56,171,86,175,56,18,79,173,56,110,71,171,56,192,63,169,56,8,56,167,56,70,48,165,56,123,40,163,56,167,32,161,56,201,24,159,56,227,16,157,56,244,8,155,56,253,0,153,56,254,248,150,56,246,240,148,56,231,232,146,56,209,224,144,56,179,216,142,56,142,208,140,56,98,200,138,56,48,192,136,56,247,183,134,56,184,175,132,56,114,167,130,56,40,
159,128,56,174,45,125,56,2,29,121,56,77,12,117,56,141,251,112,56,196,234,108,56,241,217,104,56,23,201,100,56,52,184,96,56,73,167,92,56,88,150,88,56,95,133,84,56,96,116,80,56,92,99,76,56,81,82,72,56,66,65,68,56,46,48,64,56,22,31,60,56,250,13,56,56,219,252,51,56,185,235,47,56,148,218,43,56,109,201,39,56,69,184,35,56,28,167,31,56,241,149,27,56,199,132,23,56,157,115,19,56,115,98,15,56,74,81,11,56,35,64,7,56,253,46,3,56,180,59,254,55,116,25,246,55,57,247,237,55,6,213,229,55,218,178,221,55,184,144,213,
55,160,110,205,55,146,76,197,55,143,42,189,55,153,8,181,55,177,230,172,55,214,196,164,55,10,163,156,55,79,129,148,55,164,95,140,55,10,62,132,55,6,57,120,55,31,246,103,55,96,179,87,55,203,112,71,55,97,46,55,55,38,236,38,55,25,170,22,55,62,104,6,55,42,77,236,54,66,202,203,54,198,71,171,54,185,197,138,54,65,136,84,54,252,133,19,54,88,9,165,53,183,34,140,52,240,235,61,181,139,242,224,181,128,118,49,182,162,114,114,182,212,182,153,182,196,51,186,182,30,176,218,182,224,43,251,182,130,211,13,183,196,16,
30,183,181,77,46,183,81,138,62,183,153,198,78,183,138,2,95,183,34,62,111,183,95,121,127,183,32,218,135,183,98,247,143,183,116,20,152,183,85,49,160,183,5,78,168,183,131,106,176,183,205,134,184,183,227,162,192,183,196,190,200,183,111,218,208,183,228,245,216,183,33,17,225,183,38,44,233,183,241,70,241,183,131,97,249,183,236,189,0,184,250,202,4,184,233,215,8,184,185,228,12,184,106,241,16,184,251,253,20,184,108,10,25,184,189,22,29,184,237,34,33,184,251,46,37,184,232,58,41,184,178,70,45,184,90,82,49,184,
223,93,53,184,64,105,57,184,126,116,61,184,151,127,65,184,139,138,69,184,90,149,73,184,3,160,77,184,134,170,81,184,227,180,85,184,25,191,89,184,40,201,93,184,14,211,97,184,205,220,101,184,99,230,105,184,208,239,109,184,19,249,113,184,45,2,118,184,28,11,122,184,224,19,126,184,61,14,129,184,115,18,131,184,148,22,133,184,159,26,135,184,147,30,137,184,112,34,139,184,54,38,141,184,230,41,143,184,126,45,145,184,255,48,147,184,103,52,149,184,184,55,151,184,241,58,153,184,17,62,155,184,25,65,157,184,8,68,
159,184,222,70,161,184,155,73,163,184,62,76,165,184,200,78,167,184,56,81,169,184,142,83,171,184,201,85,173,184,234,87,175,184,240,89,177,184,220,91,179,184,172,93,181,184,97,95,183,184,250,96,185,184,120,98,187,184,217,99,189,184,31,101,191,184,72,102,193,184,84,103,195,184,68,104,197,184,22,105,199,184,204,105,201,184,99,106,203,184,221,106,205,184,58,107,207,184,120,107,209,184,152,107,211,184,153,107,213,184,124,107,215,184,63,107,217,184,228,106,219,184,105,106,221,184,206,105,223,184,20,105,
225,184,58,104,227,184,64,103,229,184,37,102,231,184,233,100,233,184,141,99,235,184,16,98,237,184,113,96,239,184,177,94,241,184,207,92,243,184,204,90,245,184,166,88,247,184,94,86,249,184,243,83,251,184,102,81,253,184,182,78,255,184,241,165,0,185,118,164,1,185,233,162,2,185,74,161,3,185,153,159,4,185,214,157,5,185,0,156,6,185,25,154,7,185,30,152,8,185,18,150,9,185,243,147,10,185,193,145,11,185,124,143,12,185,36,141,13,185,186,138,14,185,60,136,15,185,171,133,16,185,6,131,17,185,78,128,18,185,131,125,
19,185,164,122,20,185,177,119,21,185,170,116,22,185,143,113,23,185,97,110,24,185,30,107,25,185,198,103,26,185,91,100,27,185,218,96,28,185,70,93,29,185,156,89,30,185,222,85,31,185,11,82,32,185,34,78,33,185,37,74,34,185,18,70,35,185,235,65,36,185,173,61,37,185,90,57,38,185,242,52,39,185,116,48,40,185,224,43,41,185,54,39,42,185,118,34,43,185,159,29,44,185,179,24,45,185,176,19,46,185,151,14,47,185,103,9,48,185,33,4,49,185,195,254,49,185,79,249,50,185,196,243,51,185,34,238,52,185,104,232,53,185,152,226,
54,185,176,220,55,185,176,214,56,185,153,208,57,185,106,202,58,185,36,196,59,185,197,189,60,185,79,183,61,185,192,176,62,185,25,170,63,185,90,163,64,185,131,156,65,185,146,149,66,185,138,142,67,185,104,135,68,185,46,128,69,185,219,120,70,185,111,113,71,185,234,105,72,185,75,98,73,185,147,90,74,185,194,82,75,185,215,74,76,185,211,66,77,185,181,58,78,185,125,50,79,185,43,42,80,185,191,33,81,185,57,25,82,185,152,16,83,185,222,7,84,185,9,255,84,185,25,246,85,185,15,237,86,185,234,227,87,185,170,218,88,
185,79,209,89,185,217,199,90,185,72,190,91,185,155,180,92,185,212,170,93,185,241,160,94,185,242,150,95,185,216,140,96,185,162,130,97,185,80,120,98,185,226,109,99,185,88,99,100,185,178,88,101,185,239,77,102,185,16,67,103,185,21,56,104,185,253,44,105,185,201,33,106,185,120,22,107,185,10,11,108,185,127,255,108,185,215,243,109,185,18,232,110,185,47,220,111,185,47,208,112,185,18,196,113,185,215,183,114,185,127,171,115,185,8,159,116,185,116,146,117,185,194,133,118,185,242,120,119,185,4,108,120,185,247,
94,121,185,204,81,122,185,131,68,123,185,27,55,124,185,149,41,125,185,239,27,126,185,43,14,127,185,36,0,128,185,35,121,128,185,18,242,128,185,242,106,129,185,194,227,129,185,130,92,130,185,51,213,130,185,212,77,131,185,101,198,131,185,230,62,132,185,87,183,132,185,184,47,133,185,9,168,133,185,73,32,134,185,122,152,134,185,154,16,135,185,171,136,135,185,171,0,136,185,154,120,136,185,121,240,136,185,72,104,137,185,6,224,137,185,179,87,138,185,80,207,138,185,221,70,139,185,88,190,139,185,195,53,140,
185,29,173,140,185,103,36,141,185,159,155,141,185,198,18,142,185,221,137,142,185,226,0,143,185,214,119,143,185,186,238,143,185,139,101,144,185,76,220,144,185,252,82,145,185,154,201,145,185,38,64,146,185,162,182,146,185,12,45,147,185,100,163,147,185,171,25,148,185,224,143,148,185,3,6,149,185,21,124,149,185,21,242,149,185,3,104,150,185,223,221,150,185,170,83,151,185,98,201,151,185,8,63,152,185,157,180,152,185,31,42,153,185,143,159,153,185,237,20,154,185,57,138,154,185,114,255,154,185,153,116,155,185,
174,233,155,185,176,94,156,185,160,211,156,185,125,72,157,185,72,189,157,185,0,50,158,185,165,166,158,185,56,27,159,185,184,143,159,185,37,4,160,185,127,120,160,185,198,236,160,185,251,96,161,185,28,213,161,185,42,73,162,185,37,189,162,185,13,49,163,185,226,164,163,185,164,24,164,185,82,140,164,185,237,255,164,185,117,115,165,185,233,230,165,185,74,90,166,185,151,205,166,185,209,64,167,185,247,179,167,185,9,39,168,185,8,154,168,185,243,12,169,185,202,127,169,185,141,242,169,185,60,101,170,185,216,
215,170,185,95,74,171,185,211,188,171,185,50,47,172,185,125,161,172,185,180,19,173,185,215,133,173,185,230,247,173,185,224,105,174,185,198,219,174,185,151,77,175,185,85,191,175,185,253,48,176,185,145,162,176,185,17,20,177,185,123,133,177,185,210,246,177,185,19,104,178,185,64,217,178,185,87,74,179,185,90,187,179,185,72,44,180,185,34,157,180,185,230,13,181,185,149,126,181,185,47,239,181,185,180,95,182,185,35,208,182,185,126,64,183,185,195,176,183,185,243,32,184,185,13,145,184,185,18,1,185,185,2,113,
185,185,220,224,185,185,161,80,186,185,80,192,186,185,233,47,187,185,109,159,187,185,219,14,188,185,51,126,188,185,117,237,188,185,162,92,189,185,184,203,189,185,185,58,190,185,164,169,190,185,120,24,191,185,55,135,191,185,223,245,191,185,114,100,192,185,238,210,192,185,84,65,193,185,163,175,193,185,220,29,194,185,255,139,194,185,11,250,194,185,1,104,195,185,224,213,195,185,169,67,196,185,91,177,196,185,247,30,197,185,123,140,197,185,233,249,197,185,64,103,198,185,129,212,198,185,170,65,199,185,189,
174,199,185,184,27,200,185,157,136,200,185,107,245,200,185,33,98,201,185,192,206,201,185,72,59,202,185,185,167,202,185,19,20,203,185,85,128,203,185,128,236,203,185,147,88,204,185,143,196,204,185,116,48,205,185,65,156,205,185,246,7,206,185,148,115,206,185,26,223,206,185,137,74,207,185,223,181,207,185,30,33,208,185,69,140,208,185,84,247,208,185,75,98,209,185,43,205,209,185,242,55,210,185,161,162,210,185,56,13,211,185,183,119,211,185,30,226,211,185,108,76,212,185,163,182,212,185,193,32,213,185,198,138,
213,185,179,244,213,185,136,94,214,185,68,200,214,185,232,49,215,185,115,155,215,185,230,4,216,185,64,110,216,185,129,215,216,185,170,64,217,185,185,169,217,185,176,18,218,185,142,123,218,185,83,228,218,185,255,76,219,185,147,181,219,185,13,30,220,185,110,134,220,185,182,238,220,185,229,86,221,185,250,190,221,185,246,38,222,185,218,142,222,185,163,246,222,185,84,94,223,185,235,197,223,185,104,45,224,185,204,148,224,185,23,252,224,185,72,99,225,185,95,202,225,185,93,49,226,185,65,152,226,185,11,255,
226,185,187,101,227,185,82,204,227,185,207,50,228,185,50,153,228,185,122,255,228,185,169,101,229,185,190,203,229,185,185,49,230,185,154,151,230,185,96,253,230,185,13,99,231,185,159,200,231,185,23,46,232,185,116,147,232,185,184,248,232,185,225,93,233,185,239,194,233,185,227,39,234,185,188,140,234,185,123,241,234,185,31,86,235,185,169,186,235,185,24,31,236,185,108,131,236,185,166,231,236,185,196,75,237,185,200,175,237,185,177,19,238,185,127,119,238,185,51,219,238,185,203,62,239,185,72,162,239,185,170,
5,240,185,241,104,240,185,28,204,240,185,45,47,241,185,34,146,241,185,252,244,241,185,187,87,242,185,95,186,242,185,231,28,243,185,83,127,243,185,164,225,243,185,218,67,244,185,244,165,244,185,242,7,245,185,213,105,245,185,156,203,245,185,72,45,246,185,216,142,246,185,75,240,246,185,164,81,247,185,224,178,247,185,0,20,248,185,5,117,248,185,237,213,248,185,186,54,249,185,106,151,249,185,254,247,249,185,118,88,250,185,210,184,250,185,18,25,251,185,54,121,251,185,61,217,251,185,40,57,252,185,247,152,
252,185,169,248,252,185,63,88,253,185,184,183,253,185,21,23,254,185,85,118,254,185,121,213,254,185,128,52,255,185,106,147,255,185,56,242,255,185,116,40,0,186,190,87,0,186,250,134,0,186,39,182,0,186,70,229,0,186,86,20,1,186,88,67,1,186,76,114,1,186,48,161,1,186,7,208,1,186,206,254,1,186,136,45,2,186,50,92,2,186,206,138,2,186,92,185,2,186,218,231,2,186,74,22,3,186,172,68,3,186,254,114,3,186,66,161,3,186,119,207,3,186,158,253,3,186,181,43,4,186,190,89,4,186,184,135,4,186,163,181,4,186,128,227,4,186,
77,17,5,186,12,63,5,186,187,108,5,186,92,154,5,186,238,199,5,186,113,245,5,186,229,34,6,186,74,80,6,186,160,125,6,186,230,170,6,186,30,216,6,186,71,5,7,186,97,50,7,186,107,95,7,186,102,140,7,186,83,185,7,186,48,230,7,186,254,18,8,186,189,63,8,186,108,108,8,186,13,153,8,186,158,197,8,186,31,242,8,186,146,30,9,186,245,74,9,186,73,119,9,186,142,163,9,186,195,207,9,186,233,251,9,186,255,39,10,186,7,84,10,186,254,127,10,186,230,171,10,186,191,215,10,186,137,3,11,186,66,47,11,186,237,90,11,186,136,134,
11,186,19,178,11,186,143,221,11,186,251,8,12,186,87,52,12,186,164,95,12,186,226,138,12,186,15,182,12,186,45,225,12,186,60,12,13,186,58,55,13,186,41,98,13,186,8,141,13,186,216,183,13,186,152,226,13,186,71,13,14,186,232,55,14,186,120,98,14,186,248,140,14,186,105,183,14,186,202,225,14,186,27,12,15,186,92,54,15,186,141,96,15,186,174,138,15,186,191,180,15,186,193,222,15,186,178,8,16,186,147,50,16,186,100,92,16,186,38,134,16,186,215,175,16,186,120,217,16,186,9,3,17,186,138,44,17,186,251,85,17,186,92,127,
17,186,172,168,17,186,237,209,17,186,29,251,17,186,61,36,18,186,77,77,18,186,77,118,18,186,60,159,18,186,27,200,18,186,234,240,18,186,169,25,19,186,87,66,19,186,245,106,19,186,131,147,19,186,0,188,19,186,109,228,19,186,202,12,20,186,22,53,20,186,82,93,20,186,125,133,20,186,152,173,20,186,163,213,20,186,157,253,20,186,134,37,21,186,95,77,21,186,39,117,21,186,223,156,21,186,135,196,21,186,30,236,21,186,164,19,22,186,25,59,22,186,126,98,22,186,211,137,22,186,22,177,22,186,73,216,22,186,108,255,22,186,
126,38,23,186,127,77,23,186,111,116,23,186,78,155,23,186,29,194,23,186,219,232,23,186,136,15,24,186,37,54,24,186,176,92,24,186,43,131,24,186,149,169,24,186,238,207,24,186,54,246,24,186,110,28,25,186,148,66,25,186,170,104,25,186,174,142,25,186,162,180,25,186,132,218,25,186,86,0,26,186,23,38,26,186,199,75,26,186,101,113,26,186,243,150,26,186,112,188,26,186,219,225,26,186,53,7,27,186,127,44,27,186,183,81,27,186,222,118,27,186,244,155,27,186,249,192,27,186,237,229,27,186,207,10,28,186,161,47,28,186,97,
84,28,186,16,121,28,186,173,157,28,186,58,194,28,186,181,230,28,186,31,11,29,186,119,47,29,186,190,83,29,186,244,119,29,186,25,156,29,186,44,192,29,186,46,228,29,186,31,8,30,186,254,43,30,186,203,79,30,186,136,115,30,186,51,151,30,186,204,186,30,186,84,222,30,186,202,1,31,186,47,37,31,186,131,72,31,186,197,107,31,186,245,142,31,186,20,178,31,186,34,213,31,186,29,248,31,186,8,27,32,186,224,61,32,186,167,96,32,186,93,131,32,186,0,166,32,186,147,200,32,186,19,235,32,186,130,13,33,186,223,47,33,186,42,
82,33,186,100,116,33,186,140,150,33,186,162,184,33,186,166,218,33,186,153,252,33,186,122,30,34,186,73,64,34,186,6,98,34,186,178,131,34,186,76,165,34,186,211,198,34,186,73,232,34,186,173,9,35,186,0,43,35,186,64,76,35,186,110,109,35,186,139,142,35,186,149,175,35,186,142,208,35,186,116,241,35,186,73,18,36,186,12,51,36,186,188,83,36,186,91,116,36,186,232,148,36,186,98,181,36,186,203,213,36,186,33,246,36,186,102,22,37,186,152,54,37,186,184,86,37,186,198,118,37,186,194,150,37,186,172,182,37,186,132,214,
37,186,74,246,37,186,253,21,38,186,158,53,38,186,45,85,38,186,170,116,38,186,21,148,38,186,109,179,38,186,179,210,38,186,231,241,38,186,9,17,39,186,24,48,39,186,21,79,39,186,0,110,39,186,216,140,39,186,158,171,39,186,82,202,39,186,244,232,39,186,131,7,40,186,255,37,40,186,106,68,40,186,194,98,40,186,7,129,40,186,58,159,40,186,91,189,40,186,105,219,40,186,101,249,40,186,78,23,41,186,37,53,41,186,234,82,41,186,155,112,41,186,59,142,41,186,200,171,41,186,66,201,41,186,170,230,41,186,255,3,42,186,66,
33,42,186,114,62,42,186,143,91,42,186,154,120,42,186,146,149,42,186,120,178,42,186,75,207,42,186,12,236,42,186,185,8,43,186,84,37,43,186,221,65,43,186,83,94,43,186,182,122,43,186,6,151,43,186,68,179,43,186,111,207,43,186,135,235,43,186,140,7,44,186,127,35,44,186,95,63,44,186,44,91,44,186,230,118,44,186,142,146,44,186,34,174,44,186,164,201,44,186,19,229,44,186,112,0,45,186,185,27,45,186,240,54,45,186,19,82,45,186,36,109,45,186,34,136,45,186,13,163,45,186,229,189,45,186,170,216,45,186,92,243,45,186,
252,13,46,186,136,40,46,186,1,67,46,186,104,93,46,186,187,119,46,186,252,145,46,186,41,172,46,186,68,198,46,186,75,224,46,186,63,250,46,186,33,20,47,186,239,45,47,186,170,71,47,186,82,97,47,186,232,122,47,186,106,148,47,186,217,173,47,186,52,199,47,186,125,224,47,186,179,249,47,186,213,18,48,186,228,43,48,186,224,68,48,186,201,93,48,186,159,118,48,186,98,143,48,186,17,168,48,186,174,192,48,186,55,217,48,186,172,241,48,186,15,10,49,186,94,34,49,186,155,58,49,186,195,82,49,186,217,106,49,186,219,130,
49,186,203,154,49,186,166,178,49,186,111,202,49,186,36,226,49,186,198,249,49,186,84,17,50,186,208,40,50,186,56,64,50,186,140,87,50,186,205,110,50,186,251,133,50,186,22,157,50,186,29,180,50,186,16,203,50,186,241,225,50,186,189,248,50,186,119,15,51,186,29,38,51,186,176,60,51,186,47,83,51,186,154,105,51,186,243,127,51,186,56,150,51,186,105,172,51,186,135,194,51,186,145,216,51,186,136,238,51,186,107,4,52,186,59,26,52,186,248,47,52,186,160,69,52,186,54,91,52,186,183,112,52,186,38,134,52,186,128,155,52,
186,199,176,52,186,251,197,52,186,27,219,52,186,39,240,52,186,32,5,53,186,5,26,53,186,214,46,53,186,148,67,53,186,62,88,53,186,213,108,53,186,88,129,53,186,199,149,53,186,35,170,53,186,107,190,53,186,159,210,53,186,192,230,53,186,205,250,53,186,198,14,54,186,172,34,54,186,126,54,54,186,60,74,54,186,231,93,54,186,125,113,54,186,0,133,54,186,112,152,54,186,203,171,54,186,19,191,54,186,71,210,54,186,103,229,54,186,116,248,54,186,108,11,55,186,81,30,55,186,34,49,55,186,224,67,55,186,137,86,55,186,31,
105,55,186,161,123,55,186,15,142,55,186,105,160,55,186,175,178,55,186,226,196,55,186,0,215,55,186,11,233,55,186,2,251,55,186,229,12,56,186,180,30,56,186,112,48,56,186,23,66,56,186,170,83,56,186,42,101,56,186,150,118,56,186,238,135,56,186,49,153,56,186,97,170,56,186,125,187,56,186,133,204,56,186,122,221,56,186,90,238,56,186,38,255,56,186,222,15,57,186,130,32,57,186,19,49,57,186,143,65,57,186,247,81,57,186,76,98,57,186,140,114,57,186,185,130,57,186,209,146,57,186,213,162,57,186,198,178,57,186,162,194,
57,186,106,210,57,186,30,226,57,186,191,241,57,186,75,1,58,186,195,16,58,186,39,32,58,186,119,47,58,186,179,62,58,186,219,77,58,186,239,92,58,186,238,107,58,186,218,122,58,186,177,137,58,186,117,152,58,186,36,167,58,186,192,181,58,186,71,196,58,186,186,210,58,186,25,225,58,186,99,239,58,186,154,253,58,186,188,11,59,186,203,25,59,186,197,39,59,186,171,53,59,186,125,67,59,186,59,81,59,186,228,94,59,186,122,108,59,186,251,121,59,186,104,135,59,186,193,148,59,186,6,162,59,186,55,175,59,186,83,188,59,
186,91,201,59,186,79,214,59,186,47,227,59,186,250,239,59,186,178,252,59,186,85,9,60,186,228,21,60,186,94,34,60,186,197,46,60,186,23,59,60,186,85,71,60,186,127,83,60,186,148,95,60,186,150,107,60,186,131,119,60,186,91,131,60,186,32,143,60,186,208,154,60,186,108,166,60,186,244,177,60,186,103,189,60,186,198,200,60,186,17,212,60,186,72,223,60,186,106,234,60,186,120,245,60,186,114,0,61,186,87,11,61,186,41,22,61,186,229,32,61,186,142,43,61,186,34,54,61,186,162,64,61,186,14,75,61,186,101,85,61,186,168,95,
61,186,214,105,61,186,241,115,61,186,247,125,61,186,232,135,61,186,197,145,61,186,142,155,61,186,67,165,61,186,227,174,61,186,111,184,61,186,231,193,61,186,74,203,61,186,153,212,61,186,211,221,61,186,249,230,61,186,11,240,61,186,9,249,61,186,242,1,62,186,198,10,62,186,135,19,62,186,50,28,62,186,202,36,62,186,77,45,62,186,188,53,62,186,22,62,62,186,92,70,62,186,142,78,62,186,171,86,62,186,180,94,62,186,168,102,62,186,136,110,62,186,84,118,62,186,11,126,62,186,174,133,62,186,60,141,62,186,182,148,62,
186,28,156,62,186,109,163,62,186,170,170,62,186,210,177,62,186,230,184,62,186,230,191,62,186,209,198,62,186,168,205,62,186,106,212,62,186,24,219,62,186,177,225,62,186,54,232,62,186,167,238,62,186,3,245,62,186,74,251,62,186,126,1,63,186,156,7,63,186,167,13,63,186,157,19,63,186,126,25,63,186,75,31,63,186,4,37,63,186,168,42,63,186,56,48,63,186,179,53,63,186,26,59,63,186,108,64,63,186,170,69,63,186,212,74,63,186,233,79,63,186,234,84,63,186,214,89,63,186,173,94,63,186,113,99,63,186,31,104,63,186,186,108,
63,186,64,113,63,186,177,117,63,186,14,122,63,186,87,126,63,186,139,130,63,186,170,134,63,186,181,138,63,186,172,142,63,186,142,146,63,186,92,150,63,186,21,154,63,186,186,157,63,186,75,161,63,186,199,164,63,186,46,168,63,186,129,171,63,186,192,174,63,186,234,177,63,186,255,180,63,186,1,184,63,186,237,186,63,186,197,189,63,186,137,192,63,186,57,195,63,186,211,197,63,186,90,200,63,186,204,202,63,186,41,205,63,186,114,207,63,186,167,209,63,186,199,211,63,186,211,213,63,186,202,215,63,186,173,217,63,
186,123,219,63,186,53,221,63,186,218,222,63,186,107,224,63,186,231,225,63,186,79,227,63,186,163,228,63,186,226,229,63,186,13,231,63,186,35,232,63,186,37,233,63,186,18,234,63,186,235,234,63,186,175,235,63,186,95,236,63,186,251,236,63,186,130,237,63,186,244,237,63,186,83,238,63,186,156,238,63,186,210,238,63,186,242,238,63,186,255,238,63,186,247,238,63,186,218,238,63,186,169,238,63,186,100,238,63,186,10,238,63,186,156,237,63,186,26,237,63,186,130,236,63,186,215,235,63,186,23,235,63,186,67,234,63,186,
90,233,63,186,93,232,63,186,75,231,63,186,37,230,63,186,235,228,63,186,156,227,63,186,57,226,63,186,193,224,63,186,53,223,63,186,149,221,63,186,224,219,63,186,23,218,63,186,57,216,63,186,71,214,63,186,64,212,63,186,38,210,63,186,246,207,63,186,179,205,63,186,91,203,63,186,238,200,63,186,109,198,63,186,216,195,63,186,47,193,63,186,113,190,63,186,159,187,63,186,184,184,63,186,189,181,63,186,173,178,63,186,138,175,63,186,82,172,63,186,5,169,63,186,164,165,63,186,47,162,63,186,166,158,63,186,8,155,63,
186,85,151,63,186,143,147,63,186,180,143,63,186,197,139,63,186,193,135,63,186,169,131,63,186,125,127,63,186,61,123,63,186,232,118,63,186,126,114,63,186,1,110,63,186,111,105,63,186,201,100,63,186,15,96,63,186,64,91,63,186,93,86,63,186,101,81,63,186,90,76,63,186,58,71,63,186,6,66,63,186,189,60,63,186,96,55,63,186,239,49,63,186,106,44,63,186,209,38,63,186,35,33,63,186,97,27,63,186,138,21,63,186,160,15,63,186,161,9,63,186,142,3,63,186,102,253,62,186,43,247,62,186,219,240,62,186,119,234,62,186,254,227,
62,186,114,221,62,186,209,214,62,186,28,208,62,186,83,201,62,186,118,194,62,186,132,187,62,186,126,180,62,186,100,173,62,186,54,166,62,186,244,158,62,186,157,151,62,186,51,144,62,186,180,136,62,186,33,129,62,186,122,121,62,186,190,113,62,186,239,105,62,186,11,98,62,186,19,90,62,186,7,82,62,186,231,73,62,186,179,65,62,186,106,57,62,186,14,49,62,186,157,40,62,186,25,32,62,186,128,23,62,186,211,14,62,186,18,6,62,186,61,253,61,186,83,244,61,186,86,235,61,186,69,226,61,186,31,217,61,186,230,207,61,186,
152,198,61,186,54,189,61,186,193,179,61,186,55,170,61,186,153,160,61,186,231,150,61,186,33,141,61,186,71,131,61,186,90,121,61,186,88,111,61,186,66,101,61,186,24,91,61,186,218,80,61,186,136,70,61,186,34,60,61,186,168,49,61,186,26,39,61,186,120,28,61,186,194,17,61,186,248,6,61,186,26,252,60,186,41,241,60,186,35,230,60,186,9,219,60,186,220,207,60,186,154,196,60,186,69,185,60,186,220,173,60,186,94,162,60,186,205,150,60,186,40,139,60,186,111,127,60,186,162,115,60,186,194,103,60,186,205,91,60,186,197,79,
60,186,168,67,60,186,120,55,60,186,52,43,60,186,220,30,60,186,113,18,60,186,241,5,60,186,94,249,59,186,183,236,59,186,252,223,59,186,45,211,59,186,74,198,59,186,84,185,59,186,74,172,59,186,44,159,59,186,250,145,59,186,181,132,59,186,91,119,59,186,238,105,59,186,110,92,59,186,217,78,59,186,49,65,59,186,117,51,59,186,166,37,59,186,194,23,59,186,203,9,59,186,193,251,58,186,162,237,58,186,112,223,58,186,42,209,58,186,209,194,58,186,100,180,58,186,227,165,58,186,79,151,58,186,167,136,58,186,235,121,58,
186,28,107,58,186,57,92,58,186,66,77,58,186,56,62,58,186,26,47,58,186,233,31,58,186,164,16,58,186,76,1,58,186,224,241,57,186,96,226,57,186,205,210,57,186,38,195,57,186,108,179,57,186,159,163,57,186,189,147,57,186,201,131,57,186,192,115,57,186,165,99,57,186,117,83,57,186,51,67,57,186,221,50,57,186,115,34,57,186,246,17,57,186,101,1,57,186,193,240,56,186,10,224,56,186,63,207,56,186,97,190,56,186,111,173,56,186,106,156,56,186,82,139,56,186,38,122,56,186,231,104,56,186,148,87,56,186,47,70,56,186,181,52,
56,186,41,35,56,186,137,17,56,186,214,255,55,186,15,238,55,186,53,220,55,186,72,202,55,186,72,184,55,186,52,166,55,186,13,148,55,186,211,129,55,186,133,111,55,186,36,93,55,186,176,74,55,186,41,56,55,186,143,37,55,186,225,18,55,186,32,0,55,186,76,237,54,186,101,218,54,186,107,199,54,186,93,180,54,186,61,161,54,186,9,142,54,186,194,122,54,186,104,103,54,186,251,83,54,186,122,64,54,186,231,44,54,186,64,25,54,186,135,5,54,186,186,241,53,186,219,221,53,186,232,201,53,186,226,181,53,186,201,161,53,186,
157,141,53,186,94,121,53,186,13,101,53,186,168,80,53,186,48,60,53,186,165,39,53,186,7,19,53,186,86,254,52,186,147,233,52,186,188,212,52,186,211,191,52,186,214,170,52,186,199,149,52,186,164,128,52,186,111,107,52,186,39,86,52,186,204,64,52,186,95,43,52,186,222,21,52,186,75,0,52,186,164,234,51,186,235,212,51,186,31,191,51,186,65,169,51,186,79,147,51,186,75,125,51,186,52,103,51,186,10,81,51,186,206,58,51,186,126,36,51,186,28,14,51,186,168,247,50,186,32,225,50,186,134,202,50,186,218,179,50,186,26,157,
50,186,72,134,50,186,99,111,50,186,108,88,50,186,98,65,50,186,69,42,50,186,22,19,50,186,212,251,49,186,128,228,49,186,25,205,49,186,159,181,49,186,19,158,49,186,117,134,49,186,195,110,49,186,0,87,49,186,42,63,49,186,65,39,49,186,70,15,49,186,56,247,48,186,24,223,48,186,229,198,48,186,160,174,48,186,73,150,48,186,223,125,48,186,99,101,48,186,212,76,48,186,51,52,48,186,128,27,48,186,186,2,48,186,226,233,47,186,247,208,47,186,251,183,47,186,235,158,47,186,202,133,47,186,150,108,47,186,80,83,47,186,248,
57,47,186,142,32,47,186,17,7,47,186,130,237,46,186,225,211,46,186,45,186,46,186,103,160,46,186,144,134,46,186,166,108,46,186,169,82,46,186,155,56,46,186,123,30,46,186,72,4,46,186,3,234,45,186,173,207,45,186,68,181,45,186,201,154,45,186,60,128,45,186,157,101,45,186,235,74,45,186,40,48,45,186,83,21,45,186,108,250,44,186,115,223,44,186,103,196,44,186,74,169,44,186,27,142,44,186,218,114,44,186,135,87,44,186,34,60,44,186,171,32,44,186,35,5,44,186,136,233,43,186,220,205,43,186,29,178,43,186,77,150,43,186,
107,122,43,186,119,94,43,186,114,66,43,186,90,38,43,186,49,10,43,186,246,237,42,186,170,209,42,186,75,181,42,186,219,152,42,186,89,124,42,186,197,95,42,186,32,67,42,186,105,38,42,186,161,9,42,186,198,236,41,186,218,207,41,186,221,178,41,186,206,149,41,186,173,120,41,186,123,91,41,186,55,62,41,186,225,32,41,186,122,3,41,186,2,230,40,186,119,200,40,186,220,170,40,186,47,141,40,186,112,111,40,186,160,81,40,186,191,51,40,186,204,21,40,186,199,247,39,186,178,217,39,186,139,187,39,186,82,157,39,186,8,127,
39,186,173,96,39,186,64,66,39,186,194,35,39,186,51,5,39,186,147,230,38,186,225,199,38,186,30,169,38,186,73,138,38,186,100,107,38,186,109,76,38,186,101,45,38,186,75,14,38,186,33,239,37,186,229,207,37,186,152,176,37,186,59,145,37,186,203,113,37,186,75,82,37,186,186,50,37,186,23,19,37,186,100,243,36,186,159,211,36,186,202,179,36,186,227,147,36,186,236,115,36,186,227,83,36,186,201,51,36,186,159,19,36,186,99,243,35,186,22,211,35,186,185,178,35,186,75,146,35,186,203,113,35,186,59,81,35,186,154,48,35,186,
232,15,35,186,37,239,34,186,82,206,34,186,109,173,34,186,120,140,34,186,114,107,34,186,91,74,34,186,52,41,34,186,251,7,34,186,178,230,33,186,88,197,33,186,238,163,33,186,115,130,33,186,231,96,33,186,75,63,33,186,158,29,33,186,224,251,32,186,17,218,32,186,51,184,32,186,67,150,32,186,67,116,32,186,50,82,32,186,17,48,32,186,224,13,32,186,157,235,31,186,75,201,31,186,232,166,31,186,116,132,31,186,240,97,31,186,92,63,31,186,183,28,31,186,1,250,30,186,60,215,30,186,102,180,30,186,127,145,30,186,137,110,
30,186,130,75,30,186,106,40,30,186,67,5,30,186,11,226,29,186,195,190,29,186,106,155,29,186,2,120,29,186,137,84,29,186,0,49,29,186,103,13,29,186,190,233,28,186,4,198,28,186,59,162,28,186,97,126,28,186,119,90,28,186,125,54,28,186,115,18,28,186,89,238,27,186,47,202,27,186,245,165,27,186,171,129,27,186,81,93,27,186,231,56,27,186,109,20,27,186,227,239,26,186,73,203,26,186,159,166,26,186,230,129,26,186,28,93,26,186,67,56,26,186],"i8",4,y.a+737280);
Q([90,19,26,186,97,238,25,186,88,201,25,186,63,164,25,186,23,127,25,186,223,89,25,186,151,52,25,186,63,15,25,186,216,233,24,186,97,196,24,186,218,158,24,186,68,121,24,186,158,83,24,186,232,45,24,186,35,8,24,186,78,226,23,186,106,188,23,186,118,150,23,186,114,112,23,186,95,74,23,186,61,36,23,186,11,254,22,186,201,215,22,186,120,177,22,186,24,139,22,186,168,100,22,186,41,62,22,186,154,23,22,186,252,240,21,186,79,202,21,186,146,163,21,186,198,124,21,186,235,85,21,186,0,47,21,186,7,8,21,186,253,224,20,
186,229,185,20,186,189,146,20,186,135,107,20,186,65,68,20,186,236,28,20,186,135,245,19,186,20,206,19,186,145,166,19,186,0,127,19,186,95,87,19,186,175,47,19,186,240,7,19,186,35,224,18,186,70,184,18,186,90,144,18,186,95,104,18,186,85,64,18,186,60,24,18,186,21,240,17,186,222,199,17,186,153,159,17,186,68,119,17,186,225,78,17,186,111,38,17,186,238,253,16,186,95,213,16,186,192,172,16,186,19,132,16,186,87,91,16,186,141,50,16,186,179,9,16,186,203,224,15,186,212,183,15,186,207,142,15,186,187,101,15,186,152,
60,15,186,103,19,15,186,39,234,14,186,217,192,14,186,124,151,14,186,17,110,14,186,151,68,14,186,14,27,14,186,119,241,13,186,210,199,13,186,30,158,13,186,92,116,13,186,139,74,13,186,172,32,13,186,190,246,12,186,195,204,12,186,185,162,12,186,160,120,12,186,121,78,12,186,68,36,12,186,1,250,11,186,176,207,11,186,80,165,11,186,226,122,11,186,102,80,11,186,220,37,11,186,67,251,10,186,157,208,10,186,232,165,10,186,38,123,10,186,85,80,10,186,118,37,10,186,137,250,9,186,142,207,9,186,133,164,9,186,110,121,
9,186,74,78,9,186,23,35,9,186,214,247,8,186,136,204,8,186,43,161,8,186,193,117,8,186,73,74,8,186,195,30,8,186,47,243,7,186,141,199,7,186,222,155,7,186,33,112,7,186,86,68,7,186,125,24,7,186,151,236,6,186,163,192,6,186,162,148,6,186,146,104,6,186,118,60,6,186,75,16,6,186,19,228,5,186,206,183,5,186,123,139,5,186,26,95,5,186,172,50,5,186,48,6,5,186,167,217,4,186,17,173,4,186,109,128,4,186,187,83,4,186,253,38,4,186,49,250,3,186,87,205,3,186,112,160,3,186,124,115,3,186,123,70,3,186,108,25,3,186,81,236,
2,186,39,191,2,186,241,145,2,186,174,100,2,186,93,55,2,186,255,9,2,186,148,220,1,186,28,175,1,186,151,129,1,186,5,84,1,186,102,38,1,186,185,248,0,186,0,203,0,186,58,157,0,186,102,111,0,186,134,65,0,186,153,19,0,186,62,203,255,185,48,111,255,185,8,19,255,185,199,182,254,185,108,90,254,185,247,253,253,185,105,161,253,185,193,68,253,185,0,232,252,185,37,139,252,185,49,46,252,185,35,209,251,185,252,115,251,185,188,22,251,185,98,185,250,185,240,91,250,185,100,254,249,185,191,160,249,185,1,67,249,185,41,
229,248,185,57,135,248,185,48,41,248,185,14,203,247,185,211,108,247,185,127,14,247,185,18,176,246,185,141,81,246,185,238,242,245,185,55,148,245,185,104,53,245,185,128,214,244,185,127,119,244,185,102,24,244,185,52,185,243,185,234,89,243,185,135,250,242,185,12,155,242,185,121,59,242,185,205,219,241,185,9,124,241,185,45,28,241,185,57,188,240,185,44,92,240,185,8,252,239,185,203,155,239,185,119,59,239,185,11,219,238,185,134,122,238,185,234,25,238,185,54,185,237,185,106,88,237,185,135,247,236,185,140,150,
236,185,121,53,236,185,78,212,235,185,12,115,235,185,178,17,235,185,65,176,234,185,185,78,234,185,25,237,233,185,97,139,233,185,147,41,233,185,173,199,232,185,175,101,232,185,155,3,232,185,111,161,231,185,45,63,231,185,211,220,230,185,98,122,230,185,218,23,230,185,60,181,229,185,134,82,229,185,186,239,228,185,214,140,228,185,220,41,228,185,204,198,227,185,164,99,227,185,102,0,227,185,17,157,226,185,166,57,226,185,36,214,225,185,140,114,225,185,221,14,225,185,24,171,224,185,61,71,224,185,75,227,223,
185,67,127,223,185,37,27,223,185,240,182,222,185,166,82,222,185,69,238,221,185,206,137,221,185,66,37,221,185,159,192,220,185,230,91,220,185,24,247,219,185,52,146,219,185,58,45,219,185,42,200,218,185,4,99,218,185,201,253,217,185,120,152,217,185,18,51,217,185,150,205,216,185,5,104,216,185,94,2,216,185,162,156,215,185,208,54,215,185,233,208,214,185,237,106,214,185,220,4,214,185,182,158,213,185,122,56,213,185,41,210,212,185,195,107,212,185,73,5,212,185,185,158,211,185,20,56,211,185,91,209,210,185,140,
106,210,185,169,3,210,185,177,156,209,185,165,53,209,185,132,206,208,185,78,103,208,185,3,0,208,185,165,152,207,185,49,49,207,185,169,201,206,185,13,98,206,185,93,250,205,185,152,146,205,185,191,42,205,185,210,194,204,185,208,90,204,185,187,242,203,185,145,138,203,185,84,34,203,185,2,186,202,185,156,81,202,185,35,233,201,185,150,128,201,185,244,23,201,185,64,175,200,185,119,70,200,185,155,221,199,185,171,116,199,185,167,11,199,185,144,162,198,185,102,57,198,185,40,208,197,185,215,102,197,185,114,
253,196,185,250,147,196,185,111,42,196,185,208,192,195,185,31,87,195,185,90,237,194,185,130,131,194,185,151,25,194,185,153,175,193,185,136,69,193,185,101,219,192,185,46,113,192,185,228,6,192,185,136,156,191,185,25,50,191,185,152,199,190,185,3,93,190,185,93,242,189,185,163,135,189,185,215,28,189,185,249,177,188,185,8,71,188,185,5,220,187,185,240,112,187,185,200,5,187,185,142,154,186,185,66,47,186,185,228,195,185,185,116,88,185,185,242,236,184,185,93,129,184,185,183,21,184,185,255,169,183,185,53,62,
183,185,89,210,182,185,108,102,182,185,108,250,181,185,91,142,181,185,57,34,181,185,5,182,180,185,191,73,180,185,104,221,179,185,255,112,179,185,133,4,179,185,250,151,178,185,93,43,178,185,175,190,177,185,240,81,177,185,32,229,176,185,62,120,176,185,76,11,176,185,72,158,175,185,52,49,175,185,15,196,174,185,216,86,174,185,145,233,173,185,57,124,173,185,208,14,173,185,87,161,172,185,205,51,172,185,50,198,171,185,135,88,171,185,204,234,170,185,255,124,170,185,35,15,170,185,54,161,169,185,57,51,169,185,
43,197,168,185,13,87,168,185,223,232,167,185,161,122,167,185,83,12,167,185,245,157,166,185,134,47,166,185,8,193,165,185,122,82,165,185,220,227,164,185,46,117,164,185,113,6,164,185,164,151,163,185,199,40,163,185,218,185,162,185,222,74,162,185,210,219,161,185,183,108,161,185,141,253,160,185,83,142,160,185,10,31,160,185,177,175,159,185,73,64,159,185,210,208,158,185,76,97,158,185,183,241,157,185,18,130,157,185,95,18,157,185,157,162,156,185,204,50,156,185,236,194,155,185,253,82,155,185,255,226,154,185,
243,114,154,185,216,2,154,185,174,146,153,185,118,34,153,185,47,178,152,185,218,65,152,185,118,209,151,185,4,97,151,185,131,240,150,185,245,127,150,185,88,15,150,185,172,158,149,185,243,45,149,185,44,189,148,185,86,76,148,185,115,219,147,185,129,106,147,185,130,249,146,185,117,136,146,185,90,23,146,185,49,166,145,185,250,52,145,185,182,195,144,185,100,82,144,185,5,225,143,185,152,111,143,185,29,254,142,185,149,140,142,185,0,27,142,185,94,169,141,185,174,55,141,185,241,197,140,185,38,84,140,185,79,
226,139,185,106,112,139,185,121,254,138,185,122,140,138,185,111,26,138,185,86,168,137,185,49,54,137,185,255,195,136,185,192,81,136,185,116,223,135,185,28,109,135,185,183,250,134,185,70,136,134,185,200,21,134,185,62,163,133,185,167,48,133,185,4,190,132,185,84,75,132,185,152,216,131,185,208,101,131,185,252,242,130,185,28,128,130,185,47,13,130,185,55,154,129,185,51,39,129,185,34,180,128,185,6,65,128,185,188,155,127,185,84,181,126,185,213,206,125,185,63,232,124,185,145,1,124,185,204,26,123,185,240,51,
122,185,252,76,121,185,242,101,120,185,210,126,119,185,154,151,118,185,76,176,117,185,231,200,116,185,108,225,115,185,219,249,114,185,51,18,114,185,118,42,113,185,162,66,112,185,184,90,111,185,185,114,110,185,164,138,109,185,121,162,108,185,57,186,107,185,227,209,106,185,120,233,105,185,248,0,105,185,98,24,104,185,184,47,103,185,249,70,102,185,36,94,101,185,59,117,100,185,62,140,99,185,43,163,98,185,5,186,97,185,202,208,96,185,123,231,95,185,23,254,94,185,160,20,94,185,20,43,93,185,117,65,92,185,
194,87,91,185,252,109,90,185,33,132,89,185,52,154,88,185,51,176,87,185,30,198,86,185,247,219,85,185,188,241,84,185,111,7,84,185,14,29,83,185,155,50,82,185,21,72,81,185,125,93,80,185,210,114,79,185,20,136,78,185,69,157,77,185,99,178,76,185,111,199,75,185,105,220,74,185,82,241,73,185,40,6,73,185,237,26,72,185,160,47,71,185,66,68,70,185,210,88,69,185,81,109,68,185,191,129,67,185,28,150,66,185,104,170,65,185,163,190,64,185,205,210,63,185,230,230,62,185,239,250,61,185,231,14,61,185,207,34,60,185,167,54,
59,185,110,74,58,185,37,94,57,185,205,113,56,185,100,133,55,185,236,152,54,185,100,172,53,185,204,191,52,185,37,211,51,185,110,230,50,185,168,249,49,185,211,12,49,185,239,31,48,185,251,50,47,185,249,69,46,185,232,88,45,185,200,107,44,185,154,126,43,185,93,145,42,185,18,164,41,185,184,182,40,185,81,201,39,185,219,219,38,185,87,238,37,185,197,0,37,185,38,19,36,185,120,37,35,185,189,55,34,185,245,73,33,185,31,92,32,185,60,110,31,185,75,128,30,185,78,146,29,185,67,164,28,185,44,182,27,185,8,200,26,185,
215,217,25,185,153,235,24,185,79,253,23,185,249,14,23,185,150,32,22,185,39,50,21,185,172,67,20,185,36,85,19,185,145,102,18,185,242,119,17,185,72,137,16,185,145,154,15,185,208,171,14,185,3,189,13,185,42,206,12,185,70,223,11,185,88,240,10,185,94,1,10,185,89,18,9,185,73,35,8,185,47,52,7,185,10,69,6,185,219,85,5,185,161,102,4,185,93,119,3,185,14,136,2,185,182,152,1,185,83,169,0,185,206,115,255,184,226,148,253,184,226,181,251,184,207,214,249,184,169,247,247,184,112,24,246,184,36,57,244,184,198,89,242,
184,86,122,240,184,212,154,238,184,64,187,236,184,154,219,234,184,227,251,232,184,26,28,231,184,65,60,229,184,87,92,227,184,92,124,225,184,81,156,223,184,53,188,221,184,10,220,219,184,207,251,217,184,132,27,216,184,42,59,214,184,192,90,212,184,71,122,210,184,192,153,208,184,42,185,206,184,134,216,204,184,211,247,202,184,19,23,201,184,68,54,199,184,104,85,197,184,127,116,195,184,136,147,193,184,133,178,191,184,116,209,189,184,87,240,187,184,46,15,186,184,248,45,184,184,183,76,182,184,105,107,180,184,
16,138,178,184,172,168,176,184,60,199,174,184,194,229,172,184,60,4,171,184,172,34,169,184,18,65,167,184,109,95,165,184,191,125,163,184,6,156,161,184,68,186,159,184,121,216,157,184,164,246,155,184,199,20,154,184,225,50,152,184,242,80,150,184,250,110,148,184,251,140,146,184,244,170,144,184,228,200,142,184,206,230,140,184,175,4,139,184,138,34,137,184,94,64,135,184,43,94,133,184,241,123,131,184,177,153,129,184,214,110,127,184,61,170,123,184,154,229,119,184,235,32,116,184,49,92,112,184,109,151,108,184,
159,210,104,184,199,13,101,184,230,72,97,184,253,131,93,184,11,191,89,184,18,250,85,184,17,53,82,184,8,112,78,184,249,170,74,184,228,229,70,184,201,32,67,184,168,91,63,184,130,150,59,184,88,209,55,184,41,12,52,184,246,70,48,184,192,129,44,184,135,188,40,184,75,247,36,184,12,50,33,184,204,108,29,184,138,167,25,184,72,226,21,184,4,29,18,184,192,87,14,184,125,146,10,184,57,205,6,184,247,7,3,184,109,133,254,183,238,250,246,183,116,112,239,183,255,229,231,183,144,91,224,183,39,209,216,183,198,70,209,183,
109,188,201,183,29,50,194,183,215,167,186,183,156,29,179,183,108,147,171,183,73,9,164,183,50,127,156,183,42,245,148,183,48,107,141,183,69,225,133,183,214,174,124,183,68,155,109,183,214,135,94,183,141,116,79,183,107,97,64,183,113,78,49,183,162,59,34,183,254,40,19,183,136,22,4,183,130,8,234,182,85,228,203,182,140,192,173,182,43,157,143,182,105,244,98,182,88,175,38,182,84,214,212,181,146,159,56,181,31,167,97,52,165,183,148,53,55,156,6,54,154,219,66,54,243,25,127,54,159,171,157,54,185,201,187,54,70,231,
217,54,65,4,248,54,84,16,11,55,59,30,26,55,214,43,41,55,33,57,56,55,27,70,71,55,196,82,86,55,24,95,101,55,24,107,116,55,96,187,129,55,8,65,137,55,131,198,144,55,207,75,152,55,238,208,159,55,220,85,167,55,155,218,174,55,40,95,182,55,132,227,189,55,172,103,197,55,162,235,204,55,99,111,212,55,239,242,219,55,69,118,227,55,100,249,234,55,76,124,242,55,252,254,249,55,185,192,0,56,216,129,4,56,217,66,8,56,188,3,12,56,130,196,15,56,41,133,19,56,176,69,23,56,25,6,27,56,98,198,30,56,139,134,34,56,147,70,38,
56,122,6,42,56,64,198,45,56,229,133,49,56,103,69,53,56,199,4,57,56,3,196,60,56,29,131,64,56,19,66,68,56,229,0,72,56,146,191,75,56,27,126,79,56,126,60,83,56,188,250,86,56,211,184,90,56,196,118,94,56,142,52,98,56,49,242,101,56,173,175,105,56,0,109,109,56,43,42,113,56,45,231,116,56,6,164,120,56,181,96,124,56,157,14,128,56,202,236,129,56,226,202,131,56,229,168,133,56,209,134,135,56,168,100,137,56,104,66,139,56,18,32,141,56,166,253,142,56,34,219,144,56,136,184,146,56,215,149,148,56,14,115,150,56,45,80,
152,56,53,45,154,56,37,10,156,56,252,230,157,56,188,195,159,56,98,160,161,56,240,124,163,56,101,89,165,56,193,53,167,56,4,18,169,56,44,238,170,56,60,202,172,56,49,166,174,56,12,130,176,56,205,93,178,56,115,57,180,56,255,20,182,56,112,240,183,56,197,203,185,56,255,166,187,56,30,130,189,56,33,93,191,56,8,56,193,56,211,18,195,56,130,237,196,56,20,200,198,56,138,162,200,56,227,124,202,56,30,87,204,56,61,49,206,56,62,11,208,56,33,229,209,56,230,190,211,56,142,152,213,56,23,114,215,56,130,75,217,56,206,
36,219,56,251,253,220,56,9,215,222,56,248,175,224,56,200,136,226,56,120,97,228,56,8,58,230,56,120,18,232,56,200,234,233,56,248,194,235,56,7,155,237,56,245,114,239,56,194,74,241,56,110,34,243,56,249,249,244,56,98,209,246,56,170,168,248,56,207,127,250,56,211,86,252,56,180,45,254,56,57,2,0,57,135,237,0,57,195,216,1,57,238,195,2,57,8,175,3,57,15,154,4,57,5,133,5,57,233,111,6,57,186,90,7,57,122,69,8,57,39,48,9,57,194,26,10,57,75,5,11,57,193,239,11,57,36,218,12,57,117,196,13,57,179,174,14,57,222,152,15,
57,246,130,16,57,251,108,17,57,237,86,18,57,204,64,19,57,151,42,20,57,78,20,21,57,242,253,21,57,131,231,22,57,255,208,23,57,104,186,24,57,189,163,25,57,254,140,26,57,42,118,27,57,67,95,28,57,71,72,29,57,54,49,30,57,17,26,31,57,216,2,32,57,137,235,32,57,38,212,33,57,174,188,34,57,33,165,35,57,127,141,36,57,200,117,37,57,251,93,38,57,25,70,39,57,33,46,40,57,20,22,41,57,241,253,41,57,185,229,42,57,106,205,43,57,6,181,44,57,139,156,45,57,251,131,46,57,84,107,47,57,151,82,48,57,195,57,49,57,217,32,50,
57,216,7,51,57,193,238,51,57,146,213,52,57,77,188,53,57,241,162,54,57,125,137,55,57,243,111,56,57,81,86,57,57,152,60,58,57,199,34,59,57,223,8,60,57,223,238,60,57,199,212,61,57,152,186,62,57,80,160,63,57,241,133,64,57,121,107,65,57,233,80,66,57,65,54,67,57,128,27,68,57,167,0,69,57,181,229,69,57,171,202,70,57,135,175,71,57,75,148,72,57,246,120,73,57,136,93,74,57,1,66,75,57,96,38,76,57,166,10,77,57,211,238,77,57,230,210,78,57,223,182,79,57,191,154,80,57,132,126,81,57,48,98,82,57,194,69,83,57,58,41,84,
57,152,12,85,57,219,239,85,57,4,211,86,57,18,182,87,57,6,153,88,57,224,123,89,57,158,94,90,57,66,65,91,57,202,35,92,57,56,6,93,57,139,232,93,57,194,202,94,57,222,172,95,57,223,142,96,57,196,112,97,57,142,82,98,57,59,52,99,57,206,21,100,57,68,247,100,57,158,216,101,57,220,185,102,57,255,154,103,57,5,124,104,57,238,92,105,57,187,61,106,57,108,30,107,57,0,255,107,57,119,223,108,57,210,191,109,57,16,160,110,57,49,128,111,57,52,96,112,57,27,64,113,57,228,31,114,57,144,255,114,57,31,223,115,57,144,190,
116,57,228,157,117,57,25,125,118,57,50,92,119,57,44,59,120,57,8,26,121,57,198,248,121,57,102,215,122,57,232,181,123,57,75,148,124,57,144,114,125,57,183,80,126,57,191,46,127,57,84,6,128,57,57,117,128,57,15,228,128,57,213,82,129,57,140,193,129,57,51,48,130,57,203,158,130,57,83,13,131,57,203,123,131,57,51,234,131,57,140,88,132,57,213,198,132,57,14,53,133,57,55,163,133,57,80,17,134,57,89,127,134,57,82,237,134,57,59,91,135,57,20,201,135,57,220,54,136,57,148,164,136,57,60,18,137,57,212,127,137,57,91,237,
137,57,210,90,138,57,56,200,138,57,142,53,139,57,212,162,139,57,8,16,140,57,44,125,140,57,64,234,140,57,66,87,141,57,52,196,141,57,21,49,142,57,229,157,142,57,165,10,143,57,83,119,143,57,240,227,143,57,125,80,144,57,248,188,144,57,98,41,145,57,187,149,145,57,2,2,146,57,57,110,146,57,94,218,146,57,114,70,147,57,116,178,147,57,101,30,148,57,68,138,148,57,18,246,148,57,207,97,149,57,121,205,149,57,18,57,150,57,154,164,150,57,15,16,151,57,115,123,151,57,197,230,151,57,5,82,152,57,51,189,152,57,80,40,
153,57,90,147,153,57,82,254,153,57,56,105,154,57,12,212,154,57,206,62,155,57,126,169,155,57,27,20,156,57,166,126,156,57,30,233,156,57,133,83,157,57,216,189,157,57,26,40,158,57,73,146,158,57,101,252,158,57,110,102,159,57,101,208,159,57,74,58,160,57,27,164,160,57,218,13,161,57,134,119,161,57,31,225,161,57,165,74,162,57,24,180,162,57,120,29,163,57,198,134,163,57,0,240,163,57,39,89,164,57,58,194,164,57,59,43,165,57,40,148,165,57,2,253,165,57,201,101,166,57,124,206,166,57,28,55,167,57,169,159,167,57,34,
8,168,57,135,112,168,57,217,216,168,57,23,65,169,57,65,169,169,57,88,17,170,57,91,121,170,57,74,225,170,57,38,73,171,57,237,176,171,57,161,24,172,57,64,128,172,57,204,231,172,57,67,79,173,57,167,182,173,57,246,29,174,57,49,133,174,57,88,236,174,57,107,83,175,57,105,186,175,57,83,33,176,57,41,136,176,57,234,238,176,57,150,85,177,57,47,188,177,57,178,34,178,57,33,137,178,57,124,239,178,57,193,85,179,57,243,187,179,57,15,34,180,57,22,136,180,57,9,238,180,57,231,83,181,57,175,185,181,57,99,31,182,57,
2,133,182,57,140,234,182,57,1,80,183,57,96,181,183,57,171,26,184,57,224,127,184,57,0,229,184,57,11,74,185,57,0,175,185,57,224,19,186,57,170,120,186,57,96,221,186,57,255,65,187,57,137,166,187,57,254,10,188,57,93,111,188,57,166,211,188,57,217,55,189,57,247,155,189,57,255,255,189,57,241,99,190,57,206,199,190,57,148,43,191,57,69,143,191,57,223,242,191,57,100,86,192,57,210,185,192,57,43,29,193,57,109,128,193,57,153,227,193,57,175,70,194,57,174,169,194,57,152,12,195,57,106,111,195,57,39,210,195,57,205,
52,196,57,93,151,196,57,214,249,196,57,57,92,197,57,133,190,197,57,186,32,198,57,217,130,198,57,225,228,198,57,211,70,199,57,173,168,199,57,113,10,200,57,30,108,200,57,180,205,200,57,51,47,201,57,155,144,201,57,237,241,201,57,39,83,202,57,74,180,202,57,86,21,203,57,74,118,203,57,40,215,203,57,238,55,204,57,157,152,204,57,53,249,204,57,181,89,205,57,30,186,205,57,112,26,206,57,170,122,206,57,204,218,206,57,215,58,207,57,203,154,207,57,166,250,207,57,107,90,208,57,23,186,208,57,172,25,209,57,41,121,
209,57,142,216,209,57,219,55,210,57,16,151,210,57,45,246,210,57,51,85,211,57,32,180,211,57,246,18,212,57,179,113,212,57,88,208,212,57,229,46,213,57,90,141,213,57,182,235,213,57,251,73,214,57,38,168,214,57,58,6,215,57,53,100,215,57,24,194,215,57,226,31,216,57,148,125,216,57,46,219,216,57,174,56,217,57,22,150,217,57,102,243,217,57,157,80,218,57,187,173,218,57,192,10,219,57,172,103,219,57,128,196,219,57,59,33,220,57,221,125,220,57,102,218,220,57,213,54,221,57,44,147,221,57,106,239,221,57,143,75,222,
57,155,167,222,57,141,3,223,57,102,95,223,57,38,187,223,57,205,22,224,57,90,114,224,57,207,205,224,57,41,41,225,57,106,132,225,57,146,223,225,57,161,58,226,57,149,149,226,57,113,240,226,57,50,75,227,57,218,165,227,57,104,0,228,57,221,90,228,57,56,181,228,57,121,15,229,57,160,105,229,57,173,195,229,57,161,29,230,57,122,119,230,57,58,209,230,57,223,42,231,57,107,132,231,57,220,221,231,57,52,55,232,57,113,144,232,57,148,233,232,57,157,66,233,57,139,155,233,57,96,244,233,57,25,77,234,57,185,165,234,57,
62,254,234,57,169,86,235,57,249,174,235,57,47,7,236,57,74,95,236,57,75,183,236,57,49,15,237,57,253,102,237,57,174,190,237,57,68,22,238,57,191,109,238,57,32,197,238,57,101,28,239,57,144,115,239,57,160,202,239,57,150,33,240,57,112,120,240,57,47,207,240,57,211,37,241,57,92,124,241,57,202,210,241,57,29,41,242,57,85,127,242,57,114,213,242,57,115,43,243,57,89,129,243,57,36,215,243,57,211,44,244,57,104,130,244,57,224,215,244,57,62,45,245,57,127,130,245,57,166,215,245,57,177,44,246,57,160,129,246,57,116,
214,246,57,44,43,247,57,200,127,247,57,73,212,247,57,174,40,248,57,247,124,248,57,36,209,248,57,54,37,249,57,44,121,249,57,5,205,249,57,195,32,250,57,101,116,250,57,235,199,250,57,85,27,251,57,163,110,251,57,213,193,251,57,234,20,252,57,228,103,252,57,193,186,252,57,130,13,253,57,39,96,253,57,175,178,253,57,27,5,254,57,107,87,254,57,159,169,254,57,182,251,254,57,176,77,255,57,142,159,255,57,80,241,255,57,122,33,0,58,63,74,0,58,245,114,0,58,156,155,0,58,53,196,0,58,192,236,0,58,61,21,1,58,171,61,1,
58,11,102,1,58,92,142,1,58,159,182,1,58,211,222,1,58,249,6,2,58,17,47,2,58,26,87,2,58,20,127,2,58,0,167,2,58,221,206,2,58,172,246,2,58,108,30,3,58,30,70,3,58,193,109,3,58,85,149,3,58,219,188,3,58,82,228,3,58,187,11,4,58,21,51,4,58,96,90,4,58,156,129,4,58,202,168,4,58,233,207,4,58,249,246,4,58,250,29,5,58,237,68,5,58,208,107,5,58,165,146,5,58,107,185,5,58,34,224,5,58,203,6,6,58,100,45,6,58,239,83,6,58,107,122,6,58,215,160,6,58,53,199,6,58,132,237,6,58,196,19,7,58,245,57,7,58,22,96,7,58,41,134,7,58,
45,172,7,58,34,210,7,58,7,248,7,58,222,29,8,58,165,67,8,58,94,105,8,58,7,143,8,58,161,180,8,58,44,218,8,58,168,255,8,58,21,37,9,58,114,74,9,58,192,111,9,58,255,148,9,58,47,186,9,58,80,223,9,58,97,4,10,58,99,41,10,58,85,78,10,58,57,115,10,58,13,152,10,58,209,188,10,58,135,225,10,58,45,6,11,58,195,42,11,58,74,79,11,58,194,115,11,58,42,152,11,58,131,188,11,58,205,224,11,58,7,5,12,58,49,41,12,58,76,77,12,58,87,113,12,58,83,149,12,58,64,185,12,58,29,221,12,58,234,0,13,58,168,36,13,58,86,72,13,58,244,107,
13,58,131,143,13,58,2,179,13,58,114,214,13,58,210,249,13,58,34,29,14,58,98,64,14,58,147,99,14,58,180,134,14,58,198,169,14,58,199,204,14,58,185,239,14,58,155,18,15,58,109,53,15,58,48,88,15,58,227,122,15,58,133,157,15,58,24,192,15,58,156,226,15,58,15,5,16,58,114,39,16,58,198,73,16,58,9,108,16,58,61,142,16,58,97,176,16,58,117,210,16,58,120,244,16,58,108,22,17,58,80,56,17,58,36,90,17,58,232,123,17,58,156,157,17,58,63,191,17,58,211,224,17,58,87,2,18,58,202,35,18,58,46,69,18,58,129,102,18,58,196,135,18,
58,248,168,18,58,27,202,18,58,45,235,18,58,48,12,19,58,35,45,19,58,5,78,19,58,215,110,19,58,153,143,19,58,75,176,19,58,236,208,19,58,125,241,19,58,254,17,20,58,110,50,20,58,207,82,20,58,31,115,20,58,94,147,20,58,142,179,20,58,173,211,20,58,187,243,20,58,186,19,21,58,167,51,21,58,133,83,21,58,82,115,21,58,15,147,21,58,187,178,21,58,87,210,21,58,226,241,21,58,93,17,22,58,199,48,22,58,33,80,22,58,107,111,22,58,163,142,22,58,204,173,22,58,228,204,22,58,235,235,22,58,226,10,23,58,200,41,23,58,157,72,23,
58,98,103,23,58,22,134,23,58,186,164,23,58,77,195,23,58,208,225,23,58,65,0,24,58,162,30,24,58,243,60,24,58,51,91,24,58,98,121,24,58,128,151,24,58,142,181,24,58,138,211,24,58,119,241,24,58,82,15,25,58,28,45,25,58,214,74,25,58,127,104,25,58,23,134,25,58,159,163,25,58,21,193,25,58,123,222,25,58,208,251,25,58,20,25,26,58,71,54,26,58,105,83,26,58,122,112,26,58,123,141,26,58,106,170,26,58,73,199,26,58,23,228,26,58,211,0,27,58,127,29,27,58,26,58,27,58,164,86,27,58,28,115,27,58,132,143,27,58,219,171,27,58,
33,200,27,58,85,228,27,58,121,0,28,58,140,28,28,58,141,56,28,58,126,84,28,58,93,112,28,58,43,140,28,58,232,167,28,58,148,195,28,58,47,223,28,58,185,250,28,58,50,22,29,58,153,49,29,58,239,76,29,58,52,104,29,58,104,131,29,58,139,158,29,58,156,185,29,58,157,212,29,58,140,239,29,58,106,10,30,58,54,37,30,58,241,63,30,58,155,90,30,58,52,117,30,58,187,143,30,58,49,170,30,58,150,196,30,58,234,222,30,58,44,249,30,58,93,19,31,58,124,45,31,58,138,71,31,58,135,97,31,58,114,123,31,58,76,149,31,58,20,175,31,58,
203,200,31,58,113,226,31,58,5,252,31,58,136,21,32,58,249,46,32,58,89,72,32,58,168,97,32,58,229,122,32,58,16,148,32,58,42,173,32,58,51,198,32,58,41,223,32,58,15,248,32,58,227,16,33,58,165,41,33,58,86,66,33,58,245,90,33,58,131,115,33,58,255,139,33,58,105,164,33,58,194,188,33,58,9,213,33,58,63,237,33,58,99,5,34,58,117,29,34,58,118,53,34,58,101,77,34,58,66,101,34,58,14,125,34,58,200,148,34,58,113,172,34,58,7,196,34,58,140,219,34,58,0,243,34,58,97,10,35,58,177,33,35,58,239,56,35,58,27,80,35,58,54,103,
35,58,63,126,35,58,54,149,35,58,27,172,35,58,238,194,35,58,176,217,35,58,96,240,35,58,254,6,36,58,138,29,36,58,4,52,36,58,109,74,36,58,195,96,36,58,8,119,36,58,59,141,36,58,92,163,36,58,107,185,36,58,105,207,36,58,84,229,36,58,46,251,36,58,245,16,37,58,171,38,37,58,79,60,37,58,224,81,37,58,96,103,37,58,206,124,37,58,42,146,37,58,116,167,37,58,172,188,37,58,210,209,37,58,230,230,37,58,232,251,37,58,216,16,38,58,182,37,38,58,130,58,38,58,60,79,38,58,228,99,38,58,121,120,38,58,253,140,38,58,111,161,
38,58,207,181,38,58,28,202,38,58,88,222,38,58,129,242,38,58,153,6,39,58,158,26,39,58,145,46,39,58,114,66,39,58,65,86,39,58,253,105,39,58,168,125,39,58,64,145,39,58,199,164,39,58,59,184,39,58,157,203,39,58,237,222,39,58,42,242,39,58,86,5,40,58,111,24,40,58,118,43,40,58,107,62,40,58,77,81,40,58,30,100,40,58,220,118,40,58,136,137,40,58,33,156,40,58,169,174,40,58,30,193,40,58,129,211,40,58,209,229,40,58,16,248,40,58,60,10,41,58,86,28,41,58,93,46,41,58,82,64,41,58,53,82,41,58,6,100,41,58,196,117,41,58,
112,135,41,58,10,153,41,58,145,170,41,58,6,188,41,58,104,205,41,58,184,222,41,58,246,239,41,58,34,1,42,58,59,18,42,58,66,35,42,58,54,52,42,58,24,69,42,58,231,85,42,58,165,102,42,58,79,119,42,58,232,135,42,58,109,152,42,58,225,168,42,58,66,185,42,58,145,201,42,58,205,217,42,58,246,233,42,58,14,250,42,58,18,10,43,58,5,26,43,58,229,41,43,58,178,57,43,58,109,73,43,58,21,89,43,58,171,104,43,58,46,120,43,58,159,135,43,58,254,150,43,58,74,166,43,58,131,181,43,58,170,196,43,58,190,211,43,58,192,226,43,58,
175,241,43,58,140,0,44,58,86,15,44,58,13,30,44,58,178,44,44,58,69,59,44,58,197,73,44,58,50,88,44,58,141,102,44,58,213,116,44,58,10,131,44,58,45,145,44,58,62,159,44,58,59,173,44,58,38,187,44,58,255,200,44,58,197,214,44,58,120,228,44,58,25,242,44,58,167,255,44,58,34,13,45,58,139,26,45,58,225,39,45,58,36,53,45,58,85,66,45,58,115,79,45,58,127,92,45,58,120,105,45,58,94,118,45,58,49,131,45,58,242,143,45,58,160,156,45,58,60,169,45,58,196,181,45,58,58,194,45,58,158,206,45,58,238,218,45,58,44,231,45,58,87,
243,45,58,112,255,45,58,118,11,46,58,105,23,46,58,73,35,46,58,23,47,46,58,209,58,46,58,121,70,46,58,15,82,46,58,145,93,46,58,1,105,46,58,94,116,46,58,169,127,46,58,224,138,46,58,5,150,46,58,23,161,46,58,23,172,46,58,3,183,46,58,221,193,46,58,164,204,46,58,88,215,46,58,250,225,46,58,136,236,46,58,4,247,46,58,109,1,47,58,195,11,47,58,7,22,47,58,55,32,47,58,85,42,47,58,96,52,47,58,88,62,47,58,62,72,47,58,16,82,47,58,208,91,47,58,125,101,47,58,23,111,47,58,158,120,47,58,18,130,47,58,116,139,47,58,195,
148,47,58,254,157,47,58,40,167,47,58,62,176,47,58,65,185,47,58,49,194,47,58,15,203,47,58,218,211,47,58,146,220,47,58,55,229,47,58,201,237,47,58,72,246,47,58,181,254,47,58,14,7,48,58,85,15,48,58,137,23,48,58,170,31,48,58,184,39,48,58,179,47,48,58,155,55,48,58,112,63,48,58,51,71,48,58,226,78,48,58,127,86,48,58,9,94,48,58,128,101,48,58,228,108,48,58,53,116,48,58,115,123,48,58,158,130,48,58,183,137,48,58,188,144,48,58,175,151,48,58,142,158,48,58,91,165,48,58,21,172,48,58,188,178,48,58,80,185,48,58,209,
191,48,58,63,198,48,58,154,204,48,58,226,210,48,58,24,217,48,58,58,223,48,58,73,229,48,58,70,235,48,58,48,241,48,58,6,247,48,58,202,252,48,58,123,2,49,58,25,8,49,58,164,13,49,58,28,19,49,58,129,24,49,58,211,29,49,58,18,35,49,58,62,40,49,58,87,45,49,58,94,50,49,58,81,55,49,58,50,60,49,58,255,64,49,58,186,69,49,58,97,74,49,58,246,78,49,58,119,83,49,58,230,87,49,58,66,92,49,58,139,96,49,58,193,100,49,58,227,104,49,58,243,108,49,58,240,112,49,58,218,116,49,58,178,120,49,58,118,124,49,58,39,128,49,58,
197,131,49,58,80,135,49,58,201,138,49,58,46,142,49,58,128,145,49,58,192,148,49,58,236,151,49,58,6,155,49,58,12,158,49,58,0,161,49,58,224,163,49,58,174,166,49,58,105,169,49,58,16,172,49,58,165,174,49,58,39,177,49,58,150,179,49,58,241,181,49,58,58,184,49,58,112,186,49,58,147,188,49,58,163,190,49,58,160,192,49,58,139,194,49,58,98,196,49,58,38,198,49,58,215,199,49,58,118,201,49,58,1,203,49,58,121,204,49,58,223,205,49,58,49,207,49,58,113,208,49,58,157,209,49,58,183,210,49,58,190,211,49,58,177,212,49,58,
146,213,49,58,96,214,49,58,27,215,49,58,195,215,49,58,88,216,49,58,218,216,49,58,73,217,49,58,165,217,49,58,238,217,49,58,36,218,49,58,72,218,49,58,88,218,49,58,85,218,49,58,64,218,49,58,23,218,49,58,220,217,49,58,142,217,49,58,44,217,49,58,184,216,49,58,49,216,49,58,151,215,49,58,234,214,49,58,42,214,49,58,87,213,49,58,114,212,49,58,121,211,49,58,110,210,49,58,79,209,49,58,30,208,49,58,217,206,49,58,130,205,49,58,24,204,49,58,155,202,49,58,11,201,49,58,104,199,49,58,178,197,49,58,234,195,49,58,14,
194,49,58,32,192,49,58,30,190,49,58,10,188,49,58,227,185,49,58,169,183,49,58,92,181,49,58,252,178,49,58,137,176,49,58,4,174,49,58,107,171,49,58,192,168,49,58,2,166,49,58,49,163,49,58,77,160,49,58,86,157,49,58,76,154,49,58,48,151,49,58,0,148,49,58,190,144,49,58,105,141,49,58,1,138,49,58,134,134,49,58,249,130,49,58,88,127,49,58,165,123,49,58,223,119,49,58,6,116,49,58,26,112,49,58,27,108,49,58,10,104,49,58,229,99,49,58,174,95,49,58,100,91,49,58,7,87,49,58,152,82,49,58,21,78,49,58,128,73,49,58,216,68,
49,58,29,64,49,58,80,59,49,58,111,54,49,58,124,49,49,58,118,44,49,58,93,39,49,58,50,34,49,58,243,28,49,58,162,23,49,58,62,18,49,58,200,12,49,58,62,7,49,58,162,1,49,58,243,251,48,58,49,246,48,58,93,240,48,58,118,234,48,58,124,228,48,58,111,222,48,58,80,216,48,58,29,210,48,58,217,203,48,58,129,197,48,58,23,191,48,58,154,184,48,58,10,178,48,58,103,171,48,58,178,164,48,58,234,157,48,58,16,151,48,58,35,144,48,58,35,137,48,58,16,130,48,58,235,122,48,58,179,115,48,58,104,108,48,58,11,101,48,58,155,93,48,
58,24,86,48,58,131,78,48,58,219,70,48,58,32,63,48,58,83,55,48,58,115,47,48,58,128,39,48,58,123,31,48,58,99,23,48,58,57,15,48,58,252,6,48,58,172,254,47,58,74,246,47,58,213,237,47,58,78,229,47,58,180,220,47,58,7,212,47,58,72,203,47,58,118,194,47,58,146,185,47,58,155,176,47,58,145,167,47,58,117,158,47,58,71,149,47,58,5,140,47,58,178,130,47,58,75,121,47,58,211,111,47,58,71,102,47,58,169,92,47,58,249,82,47,58,54,73,47,58,97,63,47,58,121,53,47,58,127,43,47,58,114,33,47,58,82,23,47,58,33,13,47,58,220,2,
47,58,133,248,46,58,28,238,46,58,160,227,46,58,18,217,46,58,114,206,46,58,191,195,46,58,249,184,46,58,33,174,46,58,55,163,46,58,58,152,46,58,43,141,46,58,9,130,46,58,213,118,46,58,143,107,46,58,54,96,46,58,203,84,46,58,77,73,46,58,189,61,46,58,27,50,46,58,102,38,46,58,159,26,46,58,198,14,46,58,218,2,46,58,220,246,45,58,204,234,45,58,169,222,45,58,116,210,45,58,45,198,45,58,211,185,45,58,103,173,45,58,233,160,45,58,88,148,45,58,181,135,45,58,0,123,45,58,57,110,45,58,95,97,45,58,115,84,45,58,117,71,
45,58,101,58,45,58,66,45,45,58,13,32,45,58,198,18,45,58,109,5,45,58,1,248,44,58,132,234,44,58,244,220,44,58,82,207,44,58,157,193,44,58,215,179,44,58,254,165,44,58,20,152,44,58,23,138,44,58,8,124,44,58,230,109,44,58,179,95,44,58,110,81,44,58,22,67,44,58,172,52,44,58,48,38,44,58,162,23,44,58,2,9,44,58,80,250,43,58,140,235,43,58,182,220,43,58,206,205,43,58,211,190,43,58,199,175,43,58,168,160,43,58,120,145,43,58,53,130,43,58,225,114,43,58,122,99,43,58,2,84,43,58,119,68,43,58,218,52,43,58,44,37,43,58,
107,21,43,58,153,5,43,58,181,245,42,58,190,229,42,58,182,213,42,58,156,197,42,58,111,181,42,58,49,165,42,58,225,148,42,58,127,132,42,58,12,116,42,58,134,99,42,58,238,82,42,58,69,66,42,58,138,49,42,58,188,32,42,58,221,15,42,58,237,254,41,58,234,237,41,58,213,220,41,58,175,203,41,58,119,186,41,58,45,169,41,58,209,151,41,58,100,134,41,58,229,116,41,58,84,99,41,58,177,81,41,58,252,63,41,58,54,46,41,58,94,28,41,58,116,10,41,58,121,248,40,58,108,230,40,58,77,212,40,58,28,194,40,58,218,175,40,58,134,157,
40,58,33,139,40,58,170,120,40,58,33,102,40,58,134,83,40,58,218,64,40,58,29,46,40,58,77,27,40,58,108,8,40,58,122,245,39,58,118,226,39,58,96,207,39,58,57,188,39,58,0,169,39,58,182,149,39,58,90,130,39,58,236,110,39,58,110,91,39,58,221,71,39,58,59,52,39,58,136,32,39,58,195,12,39,58,237,248,38,58,5,229,38,58,11,209,38,58,1,189,38,58,229,168,38,58,183,148,38,58,120,128,38,58,40,108,38,58,198,87,38,58,83,67,38,58,206,46,38,58,56,26,38,58,145,5,38,58,216,240,37,58,14,220,37,58,51,199,37,58,70,178,37,58,72,
157,37,58,57,136,37,58,25,115,37,58,231,93,37,58,164,72,37,58,79,51,37,58,234,29,37,58,115,8,37,58,235,242,36,58,82,221,36,58,167,199,36,58,235,177,36,58,31,156,36,58,65,134,36,58,81,112,36,58,81,90,36,58,63,68,36,58,29,46,36,58,233,23,36,58,164,1,36,58,78,235,35,58,231,212,35,58,111,190,35,58,229,167,35,58,75,145,35,58,160,122,35,58,227,99,35,58,22,77,35,58,55,54,35,58,72,31,35,58,71,8,35,58,54,241,34,58,19,218,34,58,224,194,34,58,155,171,34,58,70,148,34,58,224,124,34,58,104,101,34,58,224,77,34,
58,71,54,34,58,157,30,34,58,226,6,34,58,22,239,33,58,58,215,33,58,76,191,33,58,78,167,33,58,63,143,33,58,31,119,33,58,238,94,33,58,173,70,33,58,90,46,33,58,247,21,33,58,132,253,32,58,255,228,32,58,106,204,32,58,195,179,32,58,13,155,32,58,69,130,32,58,109,105,32,58,132,80,32,58,139,55,32,58,128,30,32,58,101,5,32,58,58,236,31,58,254,210,31,58,177,185,31,58,84,160,31,58,230,134,31,58,103,109,31,58,216,83,31,58,56,58,31,58,136,32,31,58,200,6,31,58,246,236,30,58,21,211,30,58,34,185,30,58,32,159,30,58,
12,133,30,58,233,106,30,58,180,80,30,58,112,54,30,58,27,28,30,58,181,1,30,58,64,231,29,58,185,204,29,58,35,178,29,58,124,151,29,58,197,124,29,58,253,97,29,58,37,71,29,58,61,44,29,58,68,17,29,58,59,246,28,58,34,219,28,58,248,191,28,58,191,164,28,58,117,137,28,58,27,110,28,58,176,82,28,58,54,55,28,58,171,27,28,58,16,0,28,58,101,228,27,58,169,200,27,58,222,172,27,58,2,145,27,58,22,117,27,58,27,89,27,58,15,61,27,58,243,32,27,58,199,4,27,58,139,232,26,58,62,204,26,58,226,175,26,58,118,147,26,58,250,118,
26,58,109,90,26,58,209,61,26,58,37,33,26,58,105,4,26,58,157,231,25,58,193,202,25,58,213,173,25,58,217,144,25,58,206,115,25,58,178,86,25,58,134,57,25,58,75,28,25,58,0,255,24,58,165,225,24,58,58,196,24,58,192,166,24,58,53,137,24,58,155,107,24,58,242,77,24,58,56,48,24,58,111,18,24,58,150,244,23,58,173,214,23,58,180,184,23,58,172,154,23,58,148,124,23,58,109,94,23,58,54,64,23,58,239,33,23,58,153,3,23,58,51,229,22,58,189,198,22,58,56,168,22,58,164,137,22,58,0,107,22,58,76,76,22,58,137,45,22,58,182,14,22,
58,212,239,21,58,226,208,21,58,225,177,21,58,209,146,21,58,177,115,21,58,129,84,21,58,66,53,21,58,244,21,21,58,151,246,20,58,42,215,20,58,174,183,20,58,34,152,20,58,135,120,20,58,221,88,20,58,35,57,20,58,90,25,20,58,130,249,19,58,155,217,19,58,165,185,19,58,159,153,19,58,138,121,19,58,102,89,19,58,50,57,19,58,240,24,19,58,158,248,18,58,61,216,18,58,206,183,18,58,79,151,18,58,193,118,18,58,35,86,18,58,119,53,18,58,188,20,18,58,242,243,17,58,24,211,17,58,48,178,17,58,57,145,17,58,50,112,17,58,29,79,
17,58,249,45,17,58,198,12,17,58,132,235,16,58,51,202,16,58,211,168,16,58,100,135,16,58,231,101,16,58,90,68,16,58,191,34,16,58,21,1,16,58,92,223,15,58,149,189,15,58,190,155,15,58,217,121,15,58,230,87,15,58,227,53,15,58,210,19,15,58,178,241,14,58,131,207,14,58,70,173,14,58,250,138,14,58,159,104,14,58,54,70,14,58,190,35,14,58,56,1,14,58,163,222,13,58,255,187,13,58,77,153,13,58,141,118,13,58,190,83,13,58,224,48,13,58,244,13,13,58,250,234,12,58,241,199,12,58,217,164,12,58,180,129,12,58,127,94,12,58,61,
59,12,58,236,23,12,58,141,244,11,58,31,209,11,58,163,173,11,58,25,138,11,58,128,102,11,58,217,66,11,58,36,31,11,58,97,251,10,58,143,215,10,58,176,179,10,58,194,143,10,58,197,107,10,58,187,71,10,58,163,35,10,58,124,255,9,58,71,219,9,58,5,183,9,58,180,146,9,58,85,110,9,58,232,73,9,58,109,37,9,58,228,0,9,58,77,220,8,58,167,183,8,58,244,146,8,58,51,110,8,58,100,73,8,58,136,36,8,58,157,255,7,58,164,218,7,58,158,181,7,58,137,144,7,58,103,107,7,58,55,70,7,58,249,32,7,58,173,251,6,58,84,214,6,58,237,176,
6,58,120,139,6,58,245,101,6,58,101,64,6,58,199,26,6,58,27,245,5,58,98,207,5,58,155,169,5,58,198,131,5,58,228,93,5,58,244,55,5,58,246,17,5,58,235,235,4,58,210,197,4,58,172,159,4,58,121,121,4,58,56,83,4,58,233,44,4,58,141,6,4,58,35,224,3,58,172,185,3,58,40,147,3,58,150,108,3,58,247,69,3,58,75,31,3,58,145,248,2,58,202,209,2,58,245,170,2,58,20,132,2,58,37,93,2,58,40,54,2,58,31,15,2,58,8,232,1,58,228,192,1,58,179,153,1,58,116,114,1,58,41,75,1,58],"i8",4,y.a+747520);
Q([208,35,1,58,107,252,0,58,248,212,0,58,120,173,0,58,235,133,0,58,81,94,0,58,170,54,0,58,245,14,0,58,105,206,255,57,204,126,255,57,22,47,255,57,70,223,254,57,92,143,254,57,89,63,254,57,59,239,253,57,4,159,253,57,179,78,253,57,72,254,252,57,196,173,252,57,38,93,252,57,110,12,252,57,157,187,251,57,178,106,251,57,174,25,251,57,145,200,250,57,90,119,250,57,10,38,250,57,160,212,249,57,29,131,249,57,129,49,249,57,203,223,248,57,253,141,248,57,21,60,248,57,20,234,247,57,250,151,247,57,199,69,247,57,123,
243,246,57,22,161,246,57,152,78,246,57,1,252,245,57,81,169,245,57,136,86,245,57,167,3,245,57,173,176,244,57,154,93,244,57,110,10,244,57,42,183,243,57,205,99,243,57,87,16,243,57,201,188,242,57,35,105,242,57,100,21,242,57,140,193,241,57,156,109,241,57,148,25,241,57,116,197,240,57,59,113,240,57,234,28,240,57,128,200,239,57,255,115,239,57,101,31,239,57,180,202,238,57,234,117,238,57,8,33,238,57,14,204,237,57,252,118,237,57,210,33,237,57,145,204,236,57,55,119,236,57,198,33,236,57,61,204,235,57,156,118,
235,57,227,32,235,57,19,203,234,57,43,117,234,57,44,31,234,57,21,201,233,57,231,114,233,57,161,28,233,57,67,198,232,57,206,111,232,57,66,25,232,57,159,194,231,57,228,107,231,57,18,21,231,57,40,190,230,57,40,103,230,57,16,16,230,57,226,184,229,57,156,97,229,57,63,10,229,57,203,178,228,57,65,91,228,57,159,3,228,57,230,171,227,57,23,84,227,57,49,252,226,57,52,164,226,57,32,76,226,57,246,243,225,57,181,155,225,57,93,67,225,57,239,234,224,57,106,146,224,57,207,57,224,57,29,225,223,57,85,136,223,57,118,
47,223,57,130,214,222,57,118,125,222,57,85,36,222,57,29,203,221,57,208,113,221,57,108,24,221,57,241,190,220,57,97,101,220,57,187,11,220,57,255,177,219,57,45,88,219,57,69,254,218,57,71,164,218,57,51,74,218,57,9,240,217,57,202,149,217,57,117,59,217,57,10,225,216,57,137,134,216,57,243,43,216,57,72,209,215,57,135,118,215,57,176,27,215,57,196,192,214,57,194,101,214,57,171,10,214,57,127,175,213,57,62,84,213,57,231,248,212,57,123,157,212,57,250,65,212,57,99,230,211,57,184,138,211,57,247,46,211,57,34,211,
210,57,56,119,210,57,56,27,210,57,36,191,209,57,251,98,209,57,189,6,209,57,106,170,208,57,2,78,208,57,134,241,207,57,245,148,207,57,80,56,207,57,150,219,206,57,199,126,206,57,228,33,206,57,236,196,205,57,224,103,205,57,192,10,205,57,139,173,204,57,66,80,204,57,229,242,203,57,115,149,203,57,237,55,203,57,83,218,202,57,165,124,202,57,227,30,202,57,13,193,201,57,35,99,201,57,37,5,201,57,19,167,200,57,238,72,200,57,180,234,199,57,103,140,199,57,6,46,199,57,145,207,198,57,8,113,198,57,108,18,198,57,189,
179,197,57,250,84,197,57,35,246,196,57,57,151,196,57,59,56,196,57,42,217,195,57,6,122,195,57,206,26,195,57,132,187,194,57,38,92,194,57,180,252,193,57,48,157,193,57,153,61,193,57,238,221,192,57,49,126,192,57,96,30,192,57,125,190,191,57,135,94,191,57,126,254,190,57,98,158,190,57,51,62,190,57,242,221,189,57,158,125,189,57,55,29,189,57,190,188,188,57,50,92,188,57,148,251,187,57,227,154,187,57,32,58,187,57,74,217,186,57,98,120,186,57,104,23,186,57,91,182,185,57,60,85,185,57,11,244,184,57,200,146,184,57,
115,49,184,57,12,208,183,57,147,110,183,57,7,13,183,57,106,171,182,57,187,73,182,57,250,231,181,57,40,134,181,57,67,36,181,57,77,194,180,57,69,96,180,57,44,254,179,57,0,156,179,57,196,57,179,57,118,215,178,57,22,117,178,57,165,18,178,57,34,176,177,57,143,77,177,57,233,234,176,57,51,136,176,57,107,37,176,57,147,194,175,57,169,95,175,57,174,252,174,57,162,153,174,57,133,54,174,57,87,211,173,57,24,112,173,57,200,12,173,57,103,169,172,57,246,69,172,57,116,226,171,57,225,126,171,57,61,27,171,57,137,183,
170,57,196,83,170,57,239,239,169,57,9,140,169,57,19,40,169,57,12,196,168,57,245,95,168,57,206,251,167,57,150,151,167,57,78,51,167,57,246,206,166,57,142,106,166,57,21,6,166,57,141,161,165,57,244,60,165,57,76,216,164,57,147,115,164,57,203,14,164,57,243,169,163,57,11,69,163,57,19,224,162,57,12,123,162,57,244,21,162,57,206,176,161,57,151,75,161,57,81,230,160,57,252,128,160,57,151,27,160,57,34,182,159,57,159,80,159,57,12,235,158,57,105,133,158,57,184,31,158,57,247,185,157,57,39,84,157,57,71,238,156,57,
89,136,156,57,92,34,156,57,80,188,155,57,53,86,155,57,10,240,154,57,209,137,154,57,138,35,154,57,51,189,153,57,206,86,153,57,90,240,152,57,215,137,152,57,70,35,152,57,166,188,151,57,248,85,151,57,59,239,150,57,112,136,150,57,150,33,150,57,174,186,149,57,184,83,149,57,179,236,148,57,161,133,148,57,128,30,148,57,81,183,147,57,20,80,147,57,201,232,146,57,111,129,146,57,8,26,146,57,147,178,145,57,17,75,145,57,128,227,144,57,226,123,144,57,54,20,144,57,124,172,143,57,180,68,143,57,223,220,142,57,253,116,
142,57,13,13,142,57,15,165,141,57,4,61,141,57,236,212,140,57,198,108,140,57,147,4,140,57,83,156,139,57,5,52,139,57,171,203,138,57,67,99,138,57,207,250,137,57,77,146,137,57,190,41,137,57,34,193,136,57,122,88,136,57,196,239,135,57,2,135,135,57,51,30,135,57,88,181,134,57,111,76,134,57,122,227,133,57,121,122,133,57,107,17,133,57,80,168,132,57,41,63,132,57,246,213,131,57,182,108,131,57,106,3,131,57,18,154,130,57,173,48,130,57,61,199,129,57,192,93,129,57,55,244,128,57,162,138,128,57,1,33,128,57,168,110,
127,57,54,155,126,57,173,199,125,57,12,244,124,57,83,32,124,57,131,76,123,57,156,120,122,57,157,164,121,57,135,208,120,57,90,252,119,57,22,40,119,57,187,83,118,57,74,127,117,57,193,170,116,57,34,214,115,57,108,1,115,57,160,44,114,57,190,87,113,57,197,130,112,57,182,173,111,57,145,216,110,57,86,3,110,57,4,46,109,57,158,88,108,57,33,131,107,57,142,173,106,57,231,215,105,57,41,2,105,57,86,44,104,57,110,86,103,57,113,128,102,57,95,170,101,57,55,212,100,57,251,253,99,57,170,39,99,57,68,81,98,57,201,122,
97,57,58,164,96,57,150,205,95,57,222,246,94,57,17,32,94,57,49,73,93,57,60,114,92,57,51,155,91,57,23,196,90,57,230,236,89,57,162,21,89,57,74,62,88,57,222,102,87,57,95,143,86,57,205,183,85,57,39,224,84,57,110,8,84,57,162,48,83,57,195,88,82,57,208,128,81,57,204,168,80,57,180,208,79,57,137,248,78,57,76,32,78,57,253,71,77,57,155,111,76,57,39,151,75,57,161,190,74,57,8,230,73,57,94,13,73,57,161,52,72,57,211,91,71,57,243,130,70,57,1,170,69,57,254,208,68,57,233,247,67,57,195,30,67,57,140,69,66,57,67,108,65,
57,233,146,64,57,126,185,63,57,3,224,62,57,118,6,62,57,217,44,61,57,43,83,60,57,108,121,59,57,157,159,58,57,190,197,57,57,206,235,56,57,206,17,56,57,190,55,55,57,158,93,54,57,110,131,53,57,46,169,52,57,222,206,51,57,127,244,50,57,16,26,50,57,146,63,49,57,5,101,48,57,104,138,47,57,188,175,46,57,0,213,45,57,54,250,44,57,93,31,44,57,117,68,43,57,126,105,42,57,121,142,41,57,101,179,40,57,67,216,39,57,18,253,38,57,211,33,38,57,134,70,37,57,43,107,36,57,194,143,35,57,75,180,34,57,198,216,33,57,51,253,32,
57,147,33,32,57,229,69,31,57,42,106,30,57,97,142,29,57,139,178,28,57,168,214,27,57,184,250,26,57,187,30,26,57,177,66,25,57,154,102,24,57,119,138,23,57,71,174,22,57,10,210,21,57,193,245,20,57,108,25,20,57,10,61,19,57,157,96,18,57,35,132,17,57,157,167,16,57,11,203,15,57,110,238,14,57,197,17,14,57,16,53,13,57,80,88,12,57,132,123,11,57,174,158,10,57,203,193,9,57,222,228,8,57,230,7,8,57,227,42,7,57,212,77,6,57,188,112,5,57,152,147,4,57,106,182,3,57,49,217,2,57,238,251,1,57,161,30,1,57,73,65,0,57,208,199,
254,56,248,12,253,56,13,82,251,56,15,151,249,56,252,219,247,56,215,32,246,56,158,101,244,56,82,170,242,56,244,238,240,56,131,51,239,56,0,120,237,56,107,188,235,56,195,0,234,56,10,69,232,56,63,137,230,56,99,205,228,56,117,17,227,56,118,85,225,56,103,153,223,56,71,221,221,56,22,33,220,56,213,100,218,56,132,168,216,56,35,236,214,56,178,47,213,56,49,115,211,56,161,182,209,56,2,250,207,56,84,61,206,56,151,128,204,56,203,195,202,56,241,6,201,56,9,74,199,56,19,141,197,56,14,208,195,56,252,18,194,56,220,
85,192,56,175,152,190,56,117,219,188,56,46,30,187,56,218,96,185,56,122,163,183,56,13,230,181,56,148,40,180,56,14,107,178,56,125,173,176,56,225,239,174,56,56,50,173,56,133,116,171,56,198,182,169,56,252,248,167,56,40,59,166,56,73,125,164,56,96,191,162,56,108,1,161,56,111,67,159,56,104,133,157,56,87,199,155,56,60,9,154,56,25,75,152,56,236,140,150,56,183,206,148,56,120,16,147,56,50,82,145,56,226,147,143,56,139,213,141,56,44,23,140,56,197,88,138,56,86,154,136,56,225,219,134,56,99,29,133,56,223,94,131,
56,84,160,129,56,133,195,127,56,85,70,124,56,24,201,120,56,207,75,117,56,123,206,113,56,26,81,110,56,175,211,106,56,57,86,103,56,185,216,99,56,47,91,96,56,155,221,92,56,254,95,89,56,88,226,85,56,170,100,82,56,243,230,78,56,53,105,75,56,112,235,71,56,163,109,68,56,208,239,64,56,247,113,61,56,24,244,57,56,52,118,54,56,74,248,50,56,92,122,47,56,105,252,43,56,114,126,40,56,120,0,37,56,122,130,33,56,122,4,30,56,119,134,26,56,113,8,23,56,107,138,19,56,98,12,16,56,89,142,12,56,79,16,9,56,69,146,5,56,59,
20,2,56,98,44,253,55,81,48,246,55,66,52,239,55,54,56,232,55,46,60,225,55,42,64,218,55,45,68,211,55,53,72,204,55,68,76,197,55,91,80,190,55,122,84,183,55,162,88,176,55,212,92,169,55,17,97,162,55,89,101,155,55,173,105,148,55,14,110,141,55,125,114,134,55,244,237,126,55,12,247,112,55,67,0,99,55,156,9,85,55,23,19,71,55,183,28,57,55,124,38,43,55,104,48,29,55,125,58,15,55,187,68,1,55,75,158,230,54,121,179,202,54,4,201,174,54,239,222,146,54,122,234,109,54,226,23,54,54,54,140,252,53,87,234,140,53,158,81,106,
52,82,168,36,181,179,240,193,181,175,197,24,182,16,146,80,182,187,46,132,182,237,19,160,182,156,248,187,182,196,220,215,182,99,192,243,182,187,209,7,183,252,194,21,183,245,179,35,183,163,164,49,183,4,149,63,183,24,133,77,183,221,116,91,183,82,100,105,183,116,83,119,183,34,161,130,183,95,152,137,183,112,143,144,183,86,134,151,183,15,125,158,183,155,115,165,183,248,105,172,183,39,96,179,183,38,86,186,183,244,75,193,183,146,65,200,183,253,54,207,183,54,44,214,183,59,33,221,183,13,22,228,183,169,10,235,
183,16,255,241,183,65,243,248,183,59,231,255,183,126,109,3,184,67,231,6,184,235,96,10,184,118,218,13,184,228,83,17,184,52,205,20,184,102,70,24,184,121,191,27,184,110,56,31,184,67,177,34,184,249,41,38,184,143,162,41,184,4,27,45,184,89,147,48,184,141,11,52,184,159,131,55,184,144,251,58,184,95,115,62,184,11,235,65,184,148,98,69,184,250,217,72,184,60,81,76,184,90,200,79,184,84,63,83,184,41,182,86,184,217,44,90,184,100,163,93,184,201,25,97,184,8,144,100,184,32,6,104,184,17,124,107,184,219,241,110,184,
126,103,114,184,248,220,117,184,74,82,121,184,115,199,124,184,58,30,128,184,165,216,129,184,251,146,131,184,61,77,133,184,105,7,135,184,127,193,136,184,128,123,138,184,107,53,140,184,64,239,141,184,255,168,143,184,168,98,145,184,58,28,147,184,181,213,148,184,25,143,150,184,102,72,152,184,156,1,154,184,186,186,155,184,193,115,157,184,176,44,159,184,135,229,160,184,70,158,162,184,236,86,164,184,122,15,166,184,239,199,167,184,75,128,169,184,142,56,171,184,183,240,172,184,199,168,174,184,190,96,176,184,
155,24,178,184,93,208,179,184,6,136,181,184,148,63,183,184,8,247,184,184,96,174,186,184,158,101,188,184,193,28,190,184,201,211,191,184,181,138,193,184,133,65,195,184,58,248,196,184,210,174,198,184,78,101,200,184,174,27,202,184,242,209,203,184,25,136,205,184,34,62,207,184,15,244,208,184,223,169,210,184,145,95,212,184,37,21,214,184,156,202,215,184,244,127,217,184,47,53,219,184,75,234,220,184,72,159,222,184,39,84,224,184,231,8,226,184,136,189,227,184,9,114,229,184,107,38,231,184,174,218,232,184,209,
142,234,184,211,66,236,184,182,246,237,184,120,170,239,184,26,94,241,184,155,17,243,184,251,196,244,184,59,120,246,184,89,43,248,184,85,222,249,184,48,145,251,184,233,67,253,184,129,246,254,184,123,84,0,185,164,45,1,185,189,6,2,185,195,223,2,185,185,184,3,185,157,145,4,185,111,106,5,185,48,67,6,185,223,27,7,185,124,244,7,185,7,205,8,185,128,165,9,185,231,125,10,185,60,86,11,185,126,46,12,185,174,6,13,185,204,222,13,185,214,182,14,185,207,142,15,185,180,102,16,185,135,62,17,185,71,22,18,185,244,237,
18,185,141,197,19,185,20,157,20,185,135,116,21,185,231,75,22,185,51,35,23,185,108,250,23,185,145,209,24,185,162,168,25,185,160,127,26,185,138,86,27,185,96,45,28,185,33,4,29,185,207,218,29,185,104,177,30,185,237,135,31,185,93,94,32,185,185,52,33,185,1,11,34,185,51,225,34,185,81,183,35,185,90,141,36,185,79,99,37,185,46,57,38,185,247,14,39,185,172,228,39,185,76,186,40,185,214,143,41,185,74,101,42,185,169,58,43,185,242,15,44,185,38,229,44,185,68,186,45,185,75,143,46,185,61,100,47,185,25,57,48,185,222,
13,49,185,142,226,49,185,39,183,50,185,169,139,51,185,21,96,52,185,106,52,53,185,169,8,54,185,209,220,54,185,226,176,55,185,220,132,56,185,191,88,57,185,139,44,58,185,63,0,59,185,220,211,59,185,98,167,60,185,209,122,61,185,40,78,62,185,103,33,63,185,142,244,63,185,158,199,64,185,150,154,65,185,117,109,66,185,61,64,67,185,236,18,68,185,132,229,68,185,2,184,69,185,105,138,70,185,183,92,71,185,236,46,72,185,9,1,73,185,13,211,73,185,248,164,74,185,202,118,75,185,131,72,76,185,35,26,77,185,169,235,77,
185,23,189,78,185,107,142,79,185,165,95,80,185,198,48,81,185,206,1,82,185,187,210,82,185,143,163,83,185,73,116,84,185,233,68,85,185,111,21,86,185,219,229,86,185,45,182,87,185,100,134,88,185,129,86,89,185,131,38,90,185,107,246,90,185,56,198,91,185,235,149,92,185,130,101,93,185,255,52,94,185,97,4,95,185,167,211,95,185,211,162,96,185,227,113,97,185,216,64,98,185,178,15,99,185,112,222,99,185,18,173,100,185,153,123,101,185,4,74,102,185,83,24,103,185,134,230,103,185,158,180,104,185,153,130,105,185,120,
80,106,185,59,30,107,185,225,235,107,185,107,185,108,185,217,134,109,185,42,84,110,185,94,33,111,185,117,238,111,185,112,187,112,185,78,136,113,185,14,85,114,185,178,33,115,185,57,238,115,185,162,186,116,185,238,134,117,185,28,83,118,185,45,31,119,185,32,235,119,185,246,182,120,185,174,130,121,185,72,78,122,185,196,25,123,185,34,229,123,185,99,176,124,185,132,123,125,185,136,70,126,185,109,17,127,185,52,220,127,185,110,83,128,185,179,184,128,185,233,29,129,185,15,131,129,185,38,232,129,185,45,77,
130,185,37,178,130,185,13,23,131,185,230,123,131,185,175,224,131,185,105,69,132,185,18,170,132,185,172,14,133,185,55,115,133,185,177,215,133,185,28,60,134,185,118,160,134,185,193,4,135,185,252,104,135,185,38,205,135,185,65,49,136,185,75,149,136,185,70,249,136,185,48,93,137,185,10,193,137,185,212,36,138,185,141,136,138,185,54,236,138,185,207,79,139,185,87,179,139,185,206,22,140,185,54,122,140,185,140,221,140,185,210,64,141,185,8,164,141,185,44,7,142,185,64,106,142,185,68,205,142,185,54,48,143,185,
24,147,143,185,233,245,143,185,168,88,144,185,87,187,144,185,245,29,145,185,130,128,145,185,254,226,145,185,105,69,146,185,194,167,146,185,10,10,147,185,65,108,147,185,103,206,147,185,124,48,148,185,127,146,148,185,113,244,148,185,81,86,149,185,32,184,149,185,221,25,150,185,137,123,150,185,35,221,150,185,172,62,151,185,35,160,151,185,136,1,152,185,219,98,152,185,29,196,152,185,77,37,153,185,107,134,153,185,119,231,153,185,113,72,154,185,89,169,154,185,47,10,155,185,243,106,155,185,165,203,155,185,
69,44,156,185,210,140,156,185,78,237,156,185,183,77,157,185,14,174,157,185,82,14,158,185,132,110,158,185,164,206,158,185,177,46,159,185,172,142,159,185,148,238,159,185,106,78,160,185,45,174,160,185,221,13,161,185,123,109,161,185,6,205,161,185,126,44,162,185,227,139,162,185,54,235,162,185,118,74,163,185,163,169,163,185,188,8,164,185,195,103,164,185,183,198,164,185,152,37,165,185,101,132,165,185,32,227,165,185,199,65,166,185,91,160,166,185,220,254,166,185,74,93,167,185,164,187,167,185,235,25,168,185,
30,120,168,185,62,214,168,185,74,52,169,185,67,146,169,185,41,240,169,185,250,77,170,185,184,171,170,185,99,9,171,185,250,102,171,185,125,196,171,185,236,33,172,185,71,127,172,185,143,220,172,185,194,57,173,185,226,150,173,185,237,243,173,185,229,80,174,185,201,173,174,185,152,10,175,185,84,103,175,185,251,195,175,185,142,32,176,185,12,125,176,185,119,217,176,185,205,53,177,185,15,146,177,185,60,238,177,185,85,74,178,185,90,166,178,185,74,2,179,185,37,94,179,185,236,185,179,185,159,21,180,185,60,
113,180,185,197,204,180,185,58,40,181,185,153,131,181,185,228,222,181,185,26,58,182,185,59,149,182,185,71,240,182,185,62,75,183,185,32,166,183,185,237,0,184,185,165,91,184,185,72,182,184,185,214,16,185,185,79,107,185,185,178,197,185,185,1,32,186,185,58,122,186,185,94,212,186,185,108,46,187,185,101,136,187,185,73,226,187,185,23,60,188,185,207,149,188,185,115,239,188,185,0,73,189,185,120,162,189,185,218,251,189,185,39,85,190,185,94,174,190,185,127,7,191,185,139,96,191,185,129,185,191,185,96,18,192,
185,42,107,192,185,222,195,192,185,125,28,193,185,5,117,193,185,119,205,193,185,211,37,194,185,25,126,194,185,72,214,194,185,98,46,195,185,102,134,195,185,83,222,195,185,42,54,196,185,234,141,196,185,149,229,196,185,41,61,197,185,166,148,197,185,13,236,197,185,94,67,198,185,152,154,198,185,187,241,198,185,200,72,199,185,191,159,199,185,158,246,199,185,103,77,200,185,26,164,200,185,181,250,200,185,58,81,201,185,168,167,201,185,255,253,201,185,63,84,202,185,104,170,202,185,122,0,203,185,118,86,203,
185,90,172,203,185,39,2,204,185,221,87,204,185,124,173,204,185,4,3,205,185,116,88,205,185,206,173,205,185,16,3,206,185,58,88,206,185,78,173,206,185,74,2,207,185,46,87,207,185,252,171,207,185,177,0,208,185,79,85,208,185,214,169,208,185,69,254,208,185,157,82,209,185,220,166,209,185,5,251,209,185,21,79,210,185,14,163,210,185,239,246,210,185,184,74,211,185,105,158,211,185,2,242,211,185,132,69,212,185,237,152,212,185,63,236,212,185,120,63,213,185,154,146,213,185,163,229,213,185,148,56,214,185,109,139,
214,185,46,222,214,185,215,48,215,185,104,131,215,185,224,213,215,185,64,40,216,185,136,122,216,185,183,204,216,185,206,30,217,185,204,112,217,185,178,194,217,185,127,20,218,185,52,102,218,185,208,183,218,185,84,9,219,185,191,90,219,185,18,172,219,185,75,253,219,185,108,78,220,185,117,159,220,185,100,240,220,185,59,65,221,185,248,145,221,185,157,226,221,185,41,51,222,185,156,131,222,185,246,211,222,185,55,36,223,185,95,116,223,185,110,196,223,185,99,20,224,185,64,100,224,185,3,180,224,185,174,3,225,
185,63,83,225,185,182,162,225,185,21,242,225,185,90,65,226,185,133,144,226,185,152,223,226,185,144,46,227,185,112,125,227,185,54,204,227,185,226,26,228,185,117,105,228,185,238,183,228,185,78,6,229,185,148,84,229,185,192,162,229,185,211,240,229,185,204,62,230,185,171,140,230,185,112,218,230,185,27,40,231,185,173,117,231,185,37,195,231,185,131,16,232,185,198,93,232,185,240,170,232,185,0,248,232,185,246,68,233,185,210,145,233,185,147,222,233,185,59,43,234,185,200,119,234,185,59,196,234,185,148,16,235,
185,211,92,235,185,247,168,235,185,1,245,235,185,241,64,236,185,198,140,236,185,129,216,236,185,33,36,237,185,167,111,237,185,19,187,237,185,100,6,238,185,154,81,238,185,182,156,238,185,183,231,238,185,158,50,239,185,105,125,239,185,27,200,239,185,177,18,240,185,45,93,240,185,142,167,240,185,212,241,240,185,255,59,241,185,15,134,241,185,5,208,241,185,223,25,242,185,159,99,242,185,67,173,242,185,205,246,242,185,59,64,243,185,143,137,243,185,199,210,243,185,228,27,244,185,230,100,244,185,205,173,244,
185,152,246,244,185,73,63,245,185,222,135,245,185,87,208,245,185,182,24,246,185,249,96,246,185,32,169,246,185,45,241,246,185,29,57,247,185,243,128,247,185,172,200,247,185,74,16,248,185,205,87,248,185,52,159,248,185,128,230,248,185,175,45,249,185,195,116,249,185,188,187,249,185,152,2,250,185,89,73,250,185,254,143,250,185,136,214,250,185,245,28,251,185,71,99,251,185,124,169,251,185,150,239,251,185,148,53,252,185,118,123,252,185,60,193,252,185,229,6,253,185,115,76,253,185,229,145,253,185,58,215,253,
185,115,28,254,185,145,97,254,185,146,166,254,185,118,235,254,185,63,48,255,185,235,116,255,185,123,185,255,185,239,253,255,185,35,33,0,186,64,67,0,186,80,101,0,186,81,135,0,186,67,169,0,186,40,203,0,186,254,236,0,186,198,14,1,186,128,48,1,186,43,82,1,186,200,115,1,186,87,149,1,186,216,182,1,186,74,216,1,186,173,249,1,186,3,27,2,186,74,60,2,186,130,93,2,186,172,126,2,186,200,159,2,186,213,192,2,186,212,225,2,186,197,2,3,186,166,35,3,186,122,68,3,186,63,101,3,186,245,133,3,186,157,166,3,186,54,199,
3,186,193,231,3,186,61,8,4,186,171,40,4,186,10,73,4,186,90,105,4,186,156,137,4,186,207,169,4,186,243,201,4,186,9,234,4,186,16,10,5,186,9,42,5,186,242,73,5,186,206,105,5,186,154,137,5,186,88,169,5,186,6,201,5,186,167,232,5,186,56,8,6,186,186,39,6,186,46,71,6,186,147,102,6,186,233,133,6,186,49,165,6,186,105,196,6,186,147,227,6,186,174,2,7,186,186,33,7,186,183,64,7,186,165,95,7,186,132,126,7,186,84,157,7,186,22,188,7,186,200,218,7,186,107,249,7,186,0,24,8,186,133,54,8,186,252,84,8,186,99,115,8,186,188,
145,8,186,5,176,8,186,64,206,8,186,107,236,8,186,135,10,9,186,148,40,9,186,147,70,9,186,130,100,9,186,97,130,9,186,50,160,9,186,244,189,9,186,166,219,9,186,74,249,9,186,222,22,10,186,99,52,10,186,217,81,10,186,63,111,10,186,151,140,10,186,223,169,10,186,24,199,10,186,65,228,10,186,92,1,11,186,103,30,11,186,99,59,11,186,80,88,11,186,45,117,11,186,251,145,11,186,185,174,11,186,105,203,11,186,9,232,11,186,153,4,12,186,27,33,12,186,140,61,12,186,239,89,12,186,66,118,12,186,134,146,12,186,186,174,12,186,
223,202,12,186,244,230,12,186,250,2,13,186,240,30,13,186,215,58,13,186,175,86,13,186,119,114,13,186,47,142,13,186,216,169,13,186,113,197,13,186,251,224,13,186,118,252,13,186,224,23,14,186,60,51,14,186,135,78,14,186,195,105,14,186,240,132,14,186,12,160,14,186,26,187,14,186,23,214,14,186,5,241,14,186,227,11,15,186,178,38,15,186,113,65,15,186,32,92,15,186,191,118,15,186,79,145,15,186,207,171,15,186,64,198,15,186,160,224,15,186,241,250,15,186,51,21,16,186,100,47,16,186,134,73,16,186,151,99,16,186,153,
125,16,186,140,151,16,186,110,177,16,186,65,203,16,186,3,229,16,186,182,254,16,186,89,24,17,186,237,49,17,186,112,75,17,186,227,100,17,186,71,126,17,186,155,151,17,186,222,176,17,186,18,202,17,186,54,227,17,186,74,252,17,186,78,21,18,186,66,46,18,186,38,71,18,186,250,95,18,186,190,120,18,186,115,145,18,186,23,170,18,186,171,194,18,186,47,219,18,186,163,243,18,186,7,12,19,186,91,36,19,186,159,60,19,186,211,84,19,186,247,108,19,186,10,133,19,186,14,157,19,186,1,181,19,186,229,204,19,186,184,228,19,
186,123,252,19,186,46,20,20,186,209,43,20,186,99,67,20,186,230,90,20,186,88,114,20,186,186,137,20,186,12,161,20,186,78,184,20,186,128,207,20,186,161,230,20,186,178,253,20,186,179,20,21,186,164,43,21,186,132,66,21,186,84,89,21,186,20,112,21,186,195,134,21,186,99,157,21,186,242,179,21,186,112,202,21,186,223,224,21,186,61,247,21,186,138,13,22,186,200,35,22,186,245,57,22,186,17,80,22,186,30,102,22,186,26,124,22,186,5,146,22,186,224,167,22,186,171,189,22,186,102,211,22,186,16,233,22,186,169,254,22,186,
50,20,23,186,171,41,23,186,19,63,23,186,107,84,23,186,178,105,23,186,233,126,23,186,16,148,23,186,38,169,23,186,43,190,23,186,32,211,23,186,4,232,23,186,216,252,23,186,156,17,24,186,79,38,24,186,241,58,24,186,131,79,24,186,4,100,24,186,117,120,24,186,213,140,24,186,36,161,24,186,99,181,24,186,146,201,24,186,176,221,24,186,189,241,24,186,186,5,25,186,165,25,25,186,129,45,25,186,76,65,25,186,6,85,25,186,175,104,25,186,72,124,25,186,208,143,25,186,72,163,25,186,174,182,25,186,4,202,25,186,74,221,25,
186,127,240,25,186,163,3,26,186,182,22,26,186,185,41,26,186,171,60,26,186,140,79,26,186,92,98,26,186,28,117,26,186,203,135,26,186,105,154,26,186,246,172,26,186,115,191,26,186,223,209,26,186,58,228,26,186,132,246,26,186,190,8,27,186,231,26,27,186,255,44,27,186,6,63,27,186,252,80,27,186,225,98,27,186,182,116,27,186,122,134,27,186,45,152,27,186,207,169,27,186,96,187,27,186,224,204,27,186,80,222,27,186,174,239,27,186,252,0,28,186,57,18,28,186,101,35,28,186,128,52,28,186,138,69,28,186,131,86,28,186,108,
103,28,186,67,120,28,186,9,137,28,186,191,153,28,186,99,170,28,186,247,186,28,186,122,203,28,186,235,219,28,186,76,236,28,186,156,252,28,186,219,12,29,186,8,29,29,186,37,45,29,186,49,61,29,186,44,77,29,186,21,93,29,186,238,108,29,186,182,124,29,186,109,140,29,186,18,156,29,186,167,171,29,186,43,187,29,186,157,202,29,186,255,217,29,186,79,233,29,186,143,248,29,186,189,7,30,186,218,22,30,186,231,37,30,186,226,52,30,186,204,67,30,186,165,82,30,186,109,97,30,186,35,112,30,186,201,126,30,186,93,141,30,
186,225,155,30,186,83,170,30,186,180,184,30,186,4,199,30,186,67,213,30,186,113,227,30,186,142,241,30,186,153,255,30,186,147,13,31,186,124,27,31,186,84,41,31,186,27,55,31,186,209,68,31,186,117,82,31,186,9,96,31,186,139,109,31,186,251,122,31,186,91,136,31,186,170,149,31,186,231,162,31,186,19,176,31,186,46,189,31,186,55,202,31,186,48,215,31,186,23,228,31,186,237,240,31,186,178,253,31,186,101,10,32,186,7,23,32,186,152,35,32,186,24,48,32,186,134,60,32,186,228,72,32,186,47,85,32,186,106,97,32,186,147,109,
32,186,172,121,32,186,178,133,32,186,168,145,32,186,140,157,32,186,95,169,32,186,33,181,32,186,209,192,32,186,112,204,32,186,254,215,32,186,122,227,32,186,229,238,32,186,63,250,32,186,136,5,33,186,191,16,33,186,229,27,33,186,249,38,33,186,252,49,33,186,238,60,33,186,206,71,33,186,157,82,33,186,91,93,33,186,8,104,33,186,163,114,33,186,44,125,33,186,165,135,33,186,11,146,33,186,97,156,33,186,165,166,33,186,216,176,33,186,249,186,33,186,10,197,33,186,8,207,33,186,245,216,33,186,209,226,33,186,156,236,
33,186,85,246,33,186,253,255,33,186,147,9,34,186,24,19,34,186,139,28,34,186,237,37,34,186,62,47,34,186,125,56,34,186,171,65,34,186,199,74,34,186,210,83,34,186,203,92,34,186,180,101,34,186,138,110,34,186,79,119,34,186,3,128,34,186,165,136,34,186,54,145,34,186,182,153,34,186,36,162,34,186,128,170,34,186,203,178,34,186,5,187,34,186,45,195,34,186,68,203,34,186,73,211,34,186,61,219,34,186,31,227,34,186,240,234,34,186,175,242,34,186,93,250,34,186,249,1,35,186,132,9,35,186,253,16,35,186,101,24,35,186,188,
31,35,186,1,39,35,186,52,46,35,186,86,53,35,186,103,60,35,186,102,67,35,186,83,74,35,186,47,81,35,186,250,87,35,186,179,94,35,186,90,101,35,186,240,107,35,186,117,114,35,186,232,120,35,186,73,127,35,186,153,133,35,186,215,139,35,186,4,146,35,186,32,152,35,186,42,158,35,186,34,164,35,186,9,170,35,186,222,175,35,186,162,181,35,186,84,187,35,186,245,192,35,186,132,198,35,186,2,204,35,186,110,209,35,186,201,214,35,186,18,220,35,186,73,225,35,186,111,230,35,186,132,235,35,186,135,240,35,186,120,245,35,
186,88,250,35,186,38,255,35,186,227,3,36,186,142,8,36,186,40,13,36,186,176,17,36,186,39,22,36,186,140,26,36,186,224,30,36,186,34,35,36,186,82,39,36,186,113,43,36,186,126,47,36,186,122,51,36,186,100,55,36,186,61,59,36,186,4,63,36,186,186,66,36,186,94,70,36,186,240,73,36,186,113,77,36,186,225,80,36,186,63,84,36,186,139,87,36,186,198,90,36,186,239,93,36,186,7,97,36,186,13,100,36,186,1,103,36,186,228,105,36,186,182,108,36,186,118,111,36,186,36,114,36,186,193,116,36,186,76,119,36,186,198,121,36,186,46,
124,36,186,132,126,36,186,201,128,36,186,253,130,36,186,31,133,36,186,47,135,36,186,46,137,36,186,27,139,36,186,247,140,36,186,193,142,36,186,122,144,36,186,33,146,36,186,182,147,36,186,58,149,36,186,172,150,36,186,13,152,36,186,93,153,36,186,154,154,36,186,199,155,36,186,225,156,36,186,234,157,36,186,226,158,36,186,200,159,36,186,156,160,36,186,95,161,36,186,17,162,36,186,177,162,36,186,63,163,36,186,188,163,36,186,39,164,36,186,129,164,36,186,201,164,36,186,0,165,36,186,37,165,36,186,56,165,36,
186,58,165,36,186,43,165,36,186,10,165,36,186,215,164,36,186,147,164,36,186,61,164,36,186,214,163,36,186,94,163,36,186,211,162,36,186,56,162,36,186,138,161,36,186,204,160,36,186,251,159,36,186,26,159,36,186,38,158,36,186,34,157,36,186,11,156,36,186,227,154,36,186,170,153,36,186,95,152,36,186,3,151,36,186,149,149,36,186,22,148,36,186,133,146,36,186,226,144,36,186,47,143,36,186,105,141,36,186,146,139,36,186,170,137,36,186,176,135,36,186,165,133,36,186,136,131,36,186,90,129,36,186,26,127,36,186,201,
124,36,186,102,122,36,186,242,119,36,186,108,117,36,186,213,114,36,186,45,112,36,186,114,109,36,186,167,106,36,186,202,103,36,186,219,100,36,186,220,97,36,186,202,94,36,186,167,91,36,186,115,88,36,186,45,85,36,186,214,81,36,186,110,78,36,186,244,74,36,186,104,71,36,186,203,67,36,186,29,64,36,186,93,60,36,186,140,56,36,186,169,52,36,186,181,48,36,186,176,44,36,186,153,40,36,186,112,36,36,186,55,32,36,186,236,27,36,186,143,23,36,186,33,19,36,186,162,14,36,186,17,10,36,186,111,5,36,186,188,0,36,186,
247,251,35,186,32,247,35,186,57,242,35,186,64,237,35,186,53,232,35,186,25,227,35,186,236,221,35,186,174,216,35,186,94,211,35,186,253,205,35,186,138,200,35,186,6,195,35,186,113,189,35,186,202,183,35,186,18,178,35,186,73,172,35,186,110,166,35,186,130,160,35,186,133,154,35,186,118,148,35,186,86,142,35,186,37,136,35,186,227,129,35,186,143,123,35,186,41,117,35,186,179,110,35,186,43,104,35,186,146,97,35,186,232,90,35,186,44,84,35,186,95,77,35,186,129,70,35,186,145,63,35,186,145,56,35,186,126,49,35,186,
91,42,35,186,39,35,35,186,225,27,35,186,138,20,35,186,33,13,35,186,168,5,35,186,29,254,34,186,129,246,34,186,212,238,34,186,21,231,34,186,70,223,34,186,101,215,34,186,115,207,34,186,111,199,34,186,91,191,34,186,53,183,34,186,254,174,34,186,182,166,34,186,93,158,34,186,242,149,34,186,118,141,34,186,234,132,34,186,76,124,34,186,156,115,34,186,220,106,34,186,11,98,34,186,40,89,34,186,52,80,34,186,47,71,34,186,25,62,34,186,242,52,34,186,186,43,34,186,112,34,34,186,22,25,34,186,170,15,34,186,45,6,34,186,
160,252,33,186,1,243,33,186,81,233,33,186,143,223,33,186,189,213,33,186,218,203,33,186,230,193,33,186,224,183,33,186,202,173,33,186,162,163,33,186,106,153,33,186,32,143,33,186,198,132,33,186,90,122,33,186,221,111,33,186,79,101,33,186,177,90,33,186,1,80,33,186,64,69,33,186,111,58,33,186,140,47,33,186,152,36,33,186,147,25,33,186,126,14,33,186,87,3,33,186,31,248,32,186,215,236,32,186,125,225,32,186,19,214,32,186,151,202,32,186,11,191,32,186,110,179,32,186,192,167,32,186,1,156,32,186,49,144,32,186,80,
132,32,186,94,120,32,186,91,108,32,186,71,96,32,186,35,84,32,186,238,71,32,186,167,59,32,186,80,47,32,186,232,34,32,186,111,22,32,186,230,9,32,186,75,253,31,186,160,240,31,186,228,227,31,186,23,215,31,186,57,202,31,186,74,189,31,186,75,176,31,186,59,163,31,186,26,150,31,186,232,136,31,186,166,123,31,186,82,110,31,186,238,96,31,186,121,83,31,186,244,69,31,186,93,56,31,186,182,42,31,186,255,28,31,186,54,15,31,186,93,1,31,186,115,243,30,186,120,229,30,186,109,215,30,186,81,201,30,186,36,187,30,186,231,
172,30,186,153,158,30,186,58,144,30,186,203,129,30,186,75,115,30,186,187,100,30,186,25,86,30,186,103,71,30,186,165,56,30,186,210,41,30,186,238,26,30,186,250,11,30,186,245,252,29,186,224,237,29,186,186,222,29,186,131,207,29,186,60,192,29,186,228,176,29,186,124,161,29,186,3,146,29,186,122,130,29,186,224,114,29,186,54,99,29,186,123,83,29,186,176,67,29,186,212,51,29,186,231,35,29,186,235,19,29,186,221,3,29,186,192,243,28,186,146,227,28,186,83,211,28,186,4,195,28,186,164,178,28,186,52,162,28,186,180,145,
28,186,35,129,28,186,130,112,28,186,209,95,28,186,15,79,28,186,61,62,28,186,90,45,28,186,103,28,28,186,100,11,28,186,80,250,27,186,44,233,27,186,248,215,27,186,179,198,27,186,94,181,27,186,249,163,27,186,131,146,27,186,254,128,27,186,104,111,27,186,193,93,27,186,11,76,27,186,68,58,27,186,109,40,27,186,133,22,27,186,142,4,27,186,134,242,26,186,110,224,26,186,70,206,26,186,13,188,26,186,197,169,26,186,108,151,26,186,3,133,26,186,138,114,26,186,1,96,26,186,103,77,26,186,190,58,26,186,4,40,26,186,59,
21,26,186,97,2,26,186,119,239,25,186,125,220,25,186,115,201,25,186,89,182,25,186,47,163,25,186,244,143,25,186,170,124,25,186,80,105,25,186,229,85,25,186,107,66,25,186,225,46,25,186,70,27,25,186,156,7,25,186,226,243,24,186,23,224,24,186,61,204,24,186,83,184,24,186,89,164,24,186,79,144,24,186,53,124,24,186,11,104,24,186,209,83,24,186,135,63,24,186,46,43,24,186,196,22,24,186,75,2,24,186,194,237,23,186,41,217,23,186,128,196,23,186,199,175,23,186,255,154,23,186,39,134,23,186,62,113,23,186,71,92,23,186,
63,71,23,186,39,50,23,186,0,29,23,186,201,7,23,186,131,242,22,186,44,221,22,186,198,199,22,186,80,178,22,186,203,156,22,186,54,135,22,186,145,113,22,186,220,91,22,186,24,70,22,186,68,48,22,186,96,26,22,186,109,4,22,186,106,238,21,186,88,216,21,186,54,194,21,186,5,172,21,186,195,149,21,186,115,127,21,186,18,105,21,186,163,82,21,186,35,60,21,186,148,37,21,186,246,14,21,186,72,248,20,186,139,225,20,186,190,202,20,186,225,179,20,186,246,156,20,186,250,133,20,186,240,110,20,186,213,87,20,186,172,64,20,
186,115,41,20,186,42,18,20,186,211,250,19,186,107,227,19,186,245,203,19,186,111,180,19,186,218,156,19,186,53,133,19,186,129,109,19,186,190,85,19,186,236,61,19,186,10,38,19,186,25,14,19,186,24,246,18,186,9,222,18,186,234,197,18,186,188,173,18,186,126,149,18,186,50,125,18,186,214,100,18,186,107,76,18,186,241,51,18,186,104,27,18,186,207,2,18,186,39,234,17,186,113,209,17,186,171,184,17,186,214,159,17,186,242,134,17,186,254,109,17,186,252,84,17,186,235,59,17,186,202,34,17,186,155,9,17,186,92,240,16,186,
15,215,16,186,178,189,16,186,71,164,16,186,204,138,16,186,67,113,16,186,170,87,16,186,3,62,16,186,76,36,16,186,135,10,16,186,179,240,15,186,208,214,15,186,222,188,15,186,221,162,15,186,205,136,15,186,174,110,15,186,129,84,15,186,68,58,15,186,249,31,15,186,159,5,15,186,54,235,14,186,191,208,14,186,56,182,14,186,163,155,14,186,255,128,14,186,77,102,14,186,139,75,14,186,187,48,14,186,220,21,14,186,239,250,13,186,243,223,13,186,232,196,13,186,206,169,13,186,166,142,13,186,111,115,13,186,42,88,13,186,
214,60,13,186,115,33,13,186,2,6,13,186,130,234,12,186,244,206,12,186,87,179,12,186,172,151,12,186,242,123,12,186,41,96,12,186,83,68,12,186,109,40,12,186,121,12,12,186,119,240,11,186,102,212,11,186,71,184,11,186,25,156,11,186,221,127,11,186,147,99,11,186,58,71,11,186,210,42,11,186,93,14,11,186,217,241,10,186,71,213,10,186,166,184,10,186,247,155,10,186,58,127,10,186,110,98,10,186,149,69,10,186,173,40,10,186,182,11,10,186,178,238,9,186,159,209,9,186,126,180,9,186,79,151,9,186,18,122,9,186,198,92,9,186,
109,63,9,186,5,34,9,186,143,4,9,186,11,231,8,186,121,201,8,186,217,171,8,186,43,142,8,186,111,112,8,186,164,82,8,186,204,52,8,186,229,22,8,186,241,248,7,186,239,218,7,186,222,188,7,186,192,158,7,186,148,128,7,186,89,98,7,186,17,68,7,186,187,37,7,186,87,7,7,186,229,232,6,186,101,202,6,186,216,171,6,186,60,141,6,186,147,110,6,186,220,79,6,186,23,49,6,186,68,18,6,186,100,243,5,186,118,212,5,186,122,181,5,186,112,150,5,186,88,119,5,186,51,88,5,186,0,57,5,186,192,25,5,186,114,250,4,186,22,219,4,186,172,
187,4,186,53,156,4,186,177,124,4,186,30,93,4,186,126,61,4,186,209,29,4,186,22,254,3,186,77,222,3,186,119,190,3,186,147,158,3,186,162,126,3,186,164,94,3,186,152,62,3,186,126,30,3,186,87,254,2,186,35,222,2,186,225,189,2,186,146,157,2,186,53,125,2,186,203,92,2,186,84,60,2,186,207,27,2,186,61,251,1,186,158,218,1,186,241,185,1,186,55,153,1,186,112,120,1,186,156,87,1,186,186,54,1,186,203,21,1,186,207,244,0,186,198,211,0,186,175,178,0,186,140,145,0,186,91,112,0,186,29,79,0,186,210,45,0,186,122,12,0,186,
41,214,255,185,68,147,255,185,69,80,255,185,44,13,255,185,249,201,254,185,172,134,254,185,69,67,254,185,196,255,253,185,41,188,253,185,116,120,253,185,165,52,253,185,188,240,252,185,186,172,252,185,157,104,252,185,103,36,252,185,23,224,251,185,174,155,251,185,43,87,251,185,142,18,251,185,215,205,250,185,7,137,250,185,29,68,250,185,26,255,249,185,253,185,249,185,199,116,249,185,119,47,249,185,14,234,248,185,140,164,248,185,240,94,248,185,59,25,248,185,109,211,247,185,133,141,247,185,132,71,247,185,
106,1,247,185,55,187,246,185,234,116,246,185,133,46,246,185,6,232,245,185,111,161,245,185,190,90,245,185,244,19,245,185,18,205,244,185,22,134,244,185,2,63,244,185,213,247,243,185,142,176,243,185,48,105,243,185,184,33,243,185,40,218,242,185,127,146,242,185,189,74,242,185,226,2,242,185,240,186,241,185,228,114,241,185,192,42,241,185,131,226,240,185,46,154,240,185,193,81,240,185,59,9,240,185,156,192,239,185,230,119,239,185,23,47,239,185,47,230,238,185,48,157,238,185,24,84,238,185,232,10,238,185,160,193,
237,185,64,120,237,185,199,46,237,185,55,229,236,185,142,155,236,185,206,81,236,185,245,7,236,185,5,190,235,185,253,115,235,185,220,41,235,185,164,223,234,185,85,149,234,185,237,74,234,185,110,0,234,185,215,181,233,185,40,107,233,185,97,32,233,185,131,213,232,185,142,138,232,185,129,63,232,185,92,244,231,185,32,169,231,185,204,93,231,185,97,18,231,185,223,198,230,185,69,123,230,185,148,47,230,185,204,227,229,185,236,151,229,185,246,75,229,185,232,255,228,185,194,179,228,185,134,103,228,185,51,27,
228,185,200,206,227,185,71,130,227,185,175,53,227,185,255,232,226,185,57,156,226,185,92,79,226,185,104,2,226,185,93,181,225,185,59,104,225,185,3,27,225,185,180,205,224,185,78,128,224,185,210,50,224,185,63,229,223,185,149,151,223,185,213,73,223,185,254,251,222,185,17,174,222,185,13,96,222,185,243,17,222,185,195,195,221,185,124,117,221,185,31,39,221,185,171,216,220,185,34,138,220,185,130,59,220,185,204,236,219,185,0,158,219,185,29,79,219,185,37,0,219,185,23,177,218,185,242,97,218,185,184,18,218,185,
103,195,217,185,1,116,217,185,133,36,217,185,243,212,216,185,75,133,216,185,142,53,216,185,187,229,215,185,210,149,215,185,211,69,215,185,191,245,214,185,149,165,214,185,86,85,214,185,1,5,214,185,151,180,213,185,23,100,213,185,130,19,213,185,215,194,212,185,23,114,212,185,66,33,212,185,87,208,211,185,87,127,211,185,66,46,211,185,24,221,210,185],"i8",4,y.a+757760);
Q([217,139,210,185,132,58,210,185,27,233,209,185,156,151,209,185,9,70,209,185,96,244,208,185,163,162,208,185,208,80,208,185,233,254,207,185,237,172,207,185,220,90,207,185,183,8,207,185,124,182,206,185,46,100,206,185,202,17,206,185,82,191,205,185,197,108,205,185,36,26,205,185,110,199,204,185,164,116,204,185,197,33,204,185,210,206,203,185,202,123,203,185,174,40,203,185,126,213,202,185,58,130,202,185,226,46,202,185,117,219,201,185,244,135,201,185,95,52,201,185,182,224,200,185,249,140,200,185,40,57,200,
185,67,229,199,185,74,145,199,185,61,61,199,185,28,233,198,185,232,148,198,185,159,64,198,185,67,236,197,185,212,151,197,185,80,67,197,185,185,238,196,185,14,154,196,185,80,69,196,185,126,240,195,185,153,155,195,185,160,70,195,185,148,241,194,185,117,156,194,185,66,71,194,185,252,241,193,185,162,156,193,185,54,71,193,185,182,241,192,185,35,156,192,185,125,70,192,185,195,240,191,185,247,154,191,185,24,69,191,185,38,239,190,185,32,153,190,185,8,67,190,185,221,236,189,185,160,150,189,185,79,64,189,185,
236,233,188,185,117,147,188,185,237,60,188,185,81,230,187,185,163,143,187,185,227,56,187,185,16,226,186,185,42,139,186,185,50,52,186,185,40,221,185,185,11,134,185,185,220,46,185,185,154,215,184,185,70,128,184,185,224,40,184,185,104,209,183,185,222,121,183,185,65,34,183,185,147,202,182,185,210,114,182,185,0,27,182,185,27,195,181,185,36,107,181,185,28,19,181,185,2,187,180,185,214,98,180,185,152,10,180,185,72,178,179,185,231,89,179,185,116,1,179,185,239,168,178,185,89,80,178,185,178,247,177,185,248,
158,177,185,46,70,177,185,81,237,176,185,100,148,176,185,101,59,176,185,85,226,175,185,51,137,175,185,0,48,175,185,188,214,174,185,103,125,174,185,1,36,174,185,138,202,173,185,1,113,173,185,104,23,173,185,189,189,172,185,2,100,172,185,54,10,172,185,88,176,171,185,106,86,171,185,108,252,170,185,92,162,170,185,60,72,170,185,11,238,169,185,201,147,169,185,119,57,169,185,21,223,168,185,161,132,168,185,30,42,168,185,138,207,167,185,229,116,167,185,48,26,167,185,107,191,166,185,149,100,166,185,176,9,166,
185,186,174,165,185,180,83,165,185,157,248,164,185,119,157,164,185,65,66,164,185,250,230,163,185,164,139,163,185,62,48,163,185,199,212,162,185,65,121,162,185,171,29,162,185,6,194,161,185,80,102,161,185,139,10,161,185,183,174,160,185,210,82,160,185,222,246,159,185,219,154,159,185,200,62,159,185,165,226,158,185,115,134,158,185,50,42,158,185,225,205,157,185,129,113,157,185,18,21,157,185,148,184,156,185,6,92,156,185,105,255,155,185,189,162,155,185,2,70,155,185,56,233,154,185,95,140,154,185,119,47,154,
185,129,210,153,185,123,117,153,185,102,24,153,185,67,187,152,185,17,94,152,185,208,0,152,185,128,163,151,185,34,70,151,185,182,232,150,185,58,139,150,185,177,45,150,185,24,208,149,185,114,114,149,185,188,20,149,185,249,182,148,185,39,89,148,185,71,251,147,185,89,157,147,185,92,63,147,185,82,225,146,185,57,131,146,185,18,37,146,185,221,198,145,185,154,104,145,185,73,10,145,185,235,171,144,185,126,77,144,185,4,239,143,185,123,144,143,185,229,49,143,185,66,211,142,185,144,116,142,185,209,21,142,185,
5,183,141,185,42,88,141,185,67,249,140,185,78,154,140,185,75,59,140,185,59,220,139,185,30,125,139,185,243,29,139,185,187,190,138,185,118,95,138,185,36,0,138,185,196,160,137,185,87,65,137,185,222,225,136,185,87,130,136,185,195,34,136,185,35,195,135,185,117,99,135,185,187,3,135,185,243,163,134,185,31,68,134,185,63,228,133,185,81,132,133,185,87,36,133,185,80,196,132,185,61,100,132,185,29,4,132,185,241,163,131,185,184,67,131,185,115,227,130,185,33,131,130,185,195,34,130,185,89,194,129,185,226,97,129,
185,96,1,129,185,209,160,128,185,54,64,128,185,29,191,127,185,183,253,126,185,56,60,126,185,162,122,125,185,244,184,124,185,46,247,123,185,80,53,123,185,91,115,122,185,78,177,121,185,42,239,120,185,238,44,120,185,156,106,119,185,50,168,118,185,176,229,117,185,24,35,117,185,105,96,116,185,163,157,115,185,198,218,114,185,211,23,114,185,201,84,113,185,168,145,112,185,113,206,111,185,36,11,111,185,192,71,110,185,70,132,109,185,182,192,108,185,16,253,107,185,84,57,107,185,130,117,106,185,154,177,105,185,
156,237,104,185,137,41,104,185,97,101,103,185,35,161,102,185,207,220,101,185,103,24,101,185,233,83,100,185,85,143,99,185,173,202,98,185,240,5,98,185,30,65,97,185,56,124,96,185,60,183,95,185,44,242,94,185,7,45,94,185,206,103,93,185,129,162,92,185,31,221,91,185,169,23,91,185,31,82,90,185,129,140,89,185,206,198,88,185,8,1,88,185,47,59,87,185,65,117,86,185,64,175,85,185,43,233,84,185,3,35,84,185,200,92,83,185,121,150,82,185,23,208,81,185,162,9,81,185,25,67,80,185,126,124,79,185,208,181,78,185,15,239,
77,185,60,40,77,185,86,97,76,185,93,154,75,185,82,211,74,185,52,12,74,185,5,69,73,185,195,125,72,185,110,182,71,185,8,239,70,185,144,39,70,185,6,96,69,185,106,152,68,185,189,208,67,185,254,8,67,185,45,65,66,185,75,121,65,185,88,177,64,185,83,233,63,185,61,33,63,185,22,89,62,185,222,144,61,185,149,200,60,185,60,0,60,185,209,55,59,185,86,111,58,185,202,166,57,185,46,222,56,185,129,21,56,185,196,76,55,185,246,131,54,185,25,187,53,185,43,242,52,185,45,41,52,185,32,96,51,185,2,151,50,185,213,205,49,185,
152,4,49,185,76,59,48,185,240,113,47,185,132,168,46,185,10,223,45,185,128,21,45,185,230,75,44,185,62,130,43,185,135,184,42,185,193,238,41,185,236,36,41,185,8,91,40,185,22,145,39,185,21,199,38,185,6,253,37,185,232,50,37,185,188,104,36,185,130,158,35,185,57,212,34,185,227,9,34,185,126,63,33,185,12,117,32,185,140,170,31,185,254,223,30,185,98,21,30,185,185,74,29,185,2,128,28,185,63,181,27,185,109,234,26,185,143,31,26,185,163,84,25,185,171,137,24,185,165,190,23,185,147,243,22,185,116,40,22,185,72,93,21,
185,15,146,20,185,202,198,19,185,121,251,18,185,27,48,18,185,177,100,17,185,59,153,16,185,184,205,15,185,42,2,15,185,144,54,14,185,234,106,13,185,56,159,12,185,122,211,11,185,177,7,11,185,220,59,10,185,252,111,9,185,17,164,8,185,26,216,7,185,25,12,7,185,12,64,6,185,244,115,5,185,209,167,4,185,164,219,3,185,107,15,3,185,40,67,2,185,219,118,1,185,131,170,0,185,65,188,255,184,104,35,254,184,122,138,252,184,120,241,250,184,98,88,249,184,56,191,247,184,251,37,246,184,169,140,244,184,69,243,242,184,205,
89,241,184,66,192,239,184,164,38,238,184,243,140,236,184,48,243,234,184,91,89,233,184,115,191,231,184,121,37,230,184,110,139,228,184,80,241,226,184,34,87,225,184,226,188,223,184,144,34,222,184,46,136,220,184,187,237,218,184,55,83,217,184,163,184,215,184,254,29,214,184,74,131,212,184,133,232,210,184,176,77,209,184,204,178,207,184,217,23,206,184,214,124,204,184,196,225,202,184,163,70,201,184,116,171,199,184,53,16,198,184,233,116,196,184,142,217,194,184,37,62,193,184,174,162,191,184,41,7,190,184,151,
107,188,184,248,207,186,184,75,52,185,184,145,152,183,184,203,252,181,184,247,96,180,184,23,197,178,184,43,41,177,184,51,141,175,184,46,241,173,184,30,85,172,184,2,185,170,184,219,28,169,184,168,128,167,184,106,228,165,184,33,72,164,184,205,171,162,184,111,15,161,184,6,115,159,184,147,214,157,184,22,58,156,184,143,157,154,184,254,0,153,184,100,100,151,184,192,199,149,184,19,43,148,184,92,142,146,184,157,241,144,184,213,84,143,184,5,184,141,184,44,27,140,184,75,126,138,184,98,225,136,184,113,68,135,
184,120,167,133,184,120,10,132,184,112,109,130,184,97,208,128,184,151,102,126,184,94,44,123,184,23,242,119,184,196,183,116,184,99,125,113,184,247,66,110,184,126,8,107,184,250,205,103,184,107,147,100,184,208,88,97,184,44,30,94,184,124,227,90,184,195,168,87,184,1,110,84,184,53,51,81,184,96,248,77,184,131,189,74,184,158,130,71,184,176,71,68,184,188,12,65,184,192,209,61,184,189,150,58,184,180,91,55,184,165,32,52,184,144,229,48,184,118,170,45,184,87,111,42,184,50,52,39,184,10,249,35,184,221,189,32,184,
173,130,29,184,121,71,26,184,67,12,23,184,10,209,19,184,206,149,16,184,145,90,13,184,81,31,10,184,17,228,6,184,208,168,3,184,142,109,0,184,151,100,250,183,18,238,243,183,143,119,237,183,13,1,231,183,141,138,224,183,17,20,218,183,152,157,211,183,35,39,205,183,179,176,198,183,73,58,192,183,230,195,185,183,137,77,179,183,52,215,172,183,232,96,166,183,165,234,159,183,107,116,153,183,60,254,146,183,25,136,140,183,1,18,134,183,235,55,127,183,239,75,114,183,15,96,101,183,76,116,88,183,168,136,75,183,36,
157,62,183,193,177,49,183,129,198,36,183,101,219,23,183,110,240,10,183,62,11,252,182,239,53,226,182,244,96,200,182,78,140,174,182,2,184,148,182,33,200,117,182,251,32,66,182,151,122,14,182,245,169,181,181,172,192,28,181,31,61,71,52,238,45,128,53,126,114,231,53,164,90,39,54,32,251,90,54,88,77,135,54,165,28,161,54,119,235,186,54,201,185,212,54,153,135,238,54,114,42,4,55,212,16,17,55,242,246,29,55,200,220,42,55,87,194,55,55,157,167,68,55,152,140,81,55,71,113,94,55,169,85,107,55,189,57,120,55,192,142,
130,55,121,0,137,55,9,114,143,55,110,227,149,55,169,84,156,55,185,197,162,55,156,54,169,55,83,167,175,55,220,23,182,55,55,136,188,55,99,248,194,55,95,104,201,55,44,216,207,55,199,71,214,55,49,183,220,55,105,38,227,55,110,149,233,55,63,4,240,55,220,114,246,55,67,225,252,55,187,167,1,56,185,222,4,56,155,21,8,56,98,76,11,56,12,131,14,56,154,185,17,56,11,240,20,56,95,38,24,56,149,92,27,56,173,146,30,56,168,200,33,56,131,254,36,56,64,52,40,56,221,105,43,56,91,159,46,56,185,212,49,56,246,9,53,56,19,63,
56,56,15,116,59,56,234,168,62,56,163,221,65,56,58,18,69,56,175,70,72,56,1,123,75,56,48,175,78,56,60,227,81,56,37,23,85,56,233,74,88,56,137,126,91,56,4,178,94,56,90,229,97,56,139,24,101,56,150,75,104,56,123,126,107,56,58,177,110,56,210,227,113,56,67,22,117,56,140,72,120,56,174,122,123,56,168,172,126,56,61,239,128,56,17,136,130,56,209,32,132,56,124,185,133,56,18,82,135,56,147,234,136,56,255,130,138,56,86,27,140,56,151,179,141,56,194,75,143,56,215,227,144,56,215,123,146,56,192,19,148,56,146,171,149,
56,79,67,151,56,244,218,152,56,131,114,154,56,250,9,156,56,90,161,157,56,163,56,159,56,213,207,160,56,238,102,162,56,240,253,163,56,217,148,165,56,171,43,167,56,100,194,168,56,4,89,170,56,140,239,171,56,250,133,173,56,80,28,175,56,140,178,176,56,175,72,178,56,185,222,179,56,168,116,181,56,126,10,183,56,58,160,184,56,219,53,186,56,98,203,187,56,206,96,189,56,32,246,190,56,87,139,192,56,114,32,194,56,115,181,195,56,88,74,197,56,33,223,198,56,207,115,200,56,97,8,202,56,214,156,203,56,48,49,205,56,109,
197,206,56,141,89,208,56,145,237,209,56,119,129,211,56,65,21,213,56,238,168,214,56,125,60,216,56,238,207,217,56,66,99,219,56,119,246,220,56,143,137,222,56,136,28,224,56,99,175,225,56,32,66,227,56,190,212,228,56,60,103,230,56,156,249,231,56,221,139,233,56,254,29,235,56,255,175,236,56,225,65,238,56,163,211,239,56,69,101,241,56,198,246,242,56,40,136,244,56,104,25,246,56,136,170,247,56,135,59,249,56,101,204,250,56,34,93,252,56,189,237,253,56,55,126,255,56,72,135,0,57,99,79,1,57,109,23,2,57,102,223,2,
57,78,167,3,57,36,111,4,57,234,54,5,57,157,254,5,57,64,198,6,57,208,141,7,57,79,85,8,57,188,28,9,57,24,228,9,57,97,171,10,57,153,114,11,57,190,57,12,57,209,0,13,57,210,199,13,57,193,142,14,57,157,85,15,57,103,28,16,57,30,227,16,57,195,169,17,57,84,112,18,57,211,54,19,57,64,253,19,57,153,195,20,57,223,137,21,57,17,80,22,57,49,22,23,57,61,220,23,57,54,162,24,57,28,104,25,57,238,45,26,57,172,243,26,57,87,185,27,57,237,126,28,57,112,68,29,57,223,9,30,57,58,207,30,57,129,148,31,57,180,89,32,57,210,30,
33,57,220,227,33,57,209,168,34,57,178,109,35,57,127,50,36,57,55,247,36,57,218,187,37,57,104,128,38,57,225,68,39,57,69,9,40,57,148,205,40,57,206,145,41,57,243,85,42,57,2,26,43,57,252,221,43,57,225,161,44,57,176,101,45,57,105,41,46,57,12,237,46,57,154,176,47,57,18,116,48,57,116,55,49,57,192,250,49,57,246,189,50,57,21,129,51,57,30,68,52,57,17,7,53,57,238,201,53,57,180,140,54,57,99,79,55,57,251,17,56,57,125,212,56,57,232,150,57,57,60,89,58,57,122,27,59,57,160,221,59,57,174,159,60,57,166,97,61,57,134,
35,62,57,79,229,62,57,1,167,63,57,155,104,64,57,29,42,65,57,135,235,65,57,218,172,66,57,21,110,67,57,56,47,68,57,67,240,68,57,53,177,69,57,16,114,70,57,210,50,71,57,124,243,71,57,14,180,72,57,135,116,73,57,231,52,74,57,47,245,74,57,94,181,75,57,117,117,76,57,114,53,77,57,86,245,77,57,34,181,78,57,212,116,79,57,109,52,80,57,237,243,80,57,83,179,81,57,160,114,82,57,211,49,83,57,237,240,83,57,237,175,84,57,212,110,85,57,160,45,86,57,83,236,86,57,236,170,87,57,106,105,88,57,207,39,89,57,25,230,89,57,
73,164,90,57,95,98,91,57,90,32,92,57,58,222,92,57,0,156,93,57,172,89,94,57,60,23,95,57,178,212,95,57,13,146,96,57,77,79,97,57,113,12,98,57,123,201,98,57,105,134,99,57,60,67,100,57,244,255,100,57,144,188,101,57,17,121,102,57,118,53,103,57,192,241,103,57,237,173,104,57,255,105,105,57,245,37,106,57,207,225,106,57,141,157,107,57,47,89,108,57,180,20,109,57,30,208,109,57,107,139,110,57,155,70,111,57,175,1,112,57,166,188,112,57,129,119,113,57,63,50,114,57,224,236,114,57,100,167,115,57,203,97,116,57,21,28,
117,57,66,214,117,57,82,144,118,57,69,74,119,57,26,4,120,57,209,189,120,57,108,119,121,57,232,48,122,57,71,234,122,57,137,163,123,57,172,92,124,57,178,21,125,57,153,206,125,57,99,135,126,57,14,64,127,57,156,248,127,57,133,88,128,57,174,180,128,57,199,16,129,57,209,108,129,57,203,200,129,57,183,36,130,57,147,128,130,57,95,220,130,57,28,56,131,57,202,147,131,57,104,239,131,57,247,74,132,57,118,166,132,57,229,1,133,57,69,93,133,57,149,184,133,57,214,19,134,57,6,111,134,57,39,202,134,57,56,37,135,57,
57,128,135,57,43,219,135,57,12,54,136,57,221,144,136,57,158,235,136,57,80,70,137,57,241,160,137,57,130,251,137,57,3,86,138,57,115,176,138,57,212,10,139,57,36,101,139,57,100,191,139,57,147,25,140,57,178,115,140,57,193,205,140,57,191,39,141,57,173,129,141,57,138,219,141,57,86,53,142,57,18,143,142,57,190,232,142,57,89,66,143,57,227,155,143,57,92,245,143,57,196,78,144,57,28,168,144,57,99,1,145,57,152,90,145,57,189,179,145,57,209,12,146,57,212,101,146,57,198,190,146,57,167,23,147,57,119,112,147,57,54,
201,147,57,227,33,148,57,127,122,148,57,10,211,148,57,132,43,149,57,236,131,149,57,67,220,149,57,137,52,150,57,189,140,150,57,224,228,150,57,241,60,151,57,241,148,151,57,223,236,151,57,187,68,152,57,134,156,152,57,64,244,152,57,231,75,153,57,125,163,153,57,1,251,153,57,115,82,154,57,211,169,154,57,33,1,155,57,94,88,155,57,136,175,155,57,161,6,156,57,167,93,156,57,156,180,156,57,126,11,157,57,78,98,157,57,12,185,157,57,184,15,158,57,82,102,158,57,217,188,158,57,78,19,159,57,176,105,159,57,1,192,159,
57,62,22,160,57,106,108,160,57,131,194,160,57,137,24,161,57,125,110,161,57,94,196,161,57,45,26,162,57,233,111,162,57,146,197,162,57,41,27,163,57,172,112,163,57,29,198,163,57,123,27,164,57,199,112,164,57,255,197,164,57,37,27,165,57,55,112,165,57,55,197,165,57,35,26,166,57,252,110,166,57,195,195,166,57,118,24,167,57,22,109,167,57,163,193,167,57,28,22,168,57,130,106,168,57,213,190,168,57,21,19,169,57,65,103,169,57,90,187,169,57,96,15,170,57,81,99,170,57,48,183,170,57,251,10,171,57,178,94,171,57,86,178,
171,57,230,5,172,57,98,89,172,57,203,172,172,57,32,0,173,57,97,83,173,57,142,166,173,57,168,249,173,57,173,76,174,57,159,159,174,57,125,242,174,57,71,69,175,57,252,151,175,57,158,234,175,57,44,61,176,57,165,143,176,57,11,226,176,57,92,52,177,57,153,134,177,57,194,216,177,57,214,42,178,57,214,124,178,57,194,206,178,57,154,32,179,57,93,114,179,57,11,196,179,57,165,21,180,57,43,103,180,57,156,184,180,57,249,9,181,57,65,91,181,57,116,172,181,57,147,253,181,57,157,78,182,57,146,159,182,57,114,240,182,
57,62,65,183,57,245,145,183,57,151,226,183,57,36,51,184,57,156,131,184,57,255,211,184,57,78,36,185,57,135,116,185,57,171,196,185,57,186,20,186,57,180,100,186,57,153,180,186,57,104,4,187,57,35,84,187,57,200,163,187,57,88,243,187,57,210,66,188,57,55,146,188,57,135,225,188,57,194,48,189,57,231,127,189,57,246,206,189,57,240,29,190,57,213,108,190,57,164,187,190,57,93,10,191,57,1,89,191,57,143,167,191,57,8,246,191,57,106,68,192,57,183,146,192,57,238,224,192,57,16,47,193,57,27,125,193,57,17,203,193,57,241,
24,194,57,186,102,194,57,110,180,194,57,12,2,195,57,148,79,195,57,6,157,195,57,97,234,195,57,167,55,196,57,214,132,196,57,239,209,196,57,242,30,197,57,223,107,197,57,182,184,197,57,118,5,198,57,32,82,198,57,179,158,198,57,48,235,198,57,151,55,199,57,231,131,199,57,33,208,199,57,68,28,200,57,81,104,200,57,71,180,200,57,38,0,201,57,239,75,201,57,161,151,201,57,60,227,201,57,193,46,202,57,47,122,202,57,134,197,202,57,199,16,203,57,240,91,203,57,3,167,203,57,255,241,203,57,227,60,204,57,177,135,204,57,
104,210,204,57,8,29,205,57,145,103,205,57,2,178,205,57,93,252,205,57,160,70,206,57,204,144,206,57,225,218,206,57,223,36,207,57,198,110,207,57,149,184,207,57,77,2,208,57,238,75,208,57,119,149,208,57,233,222,208,57,67,40,209,57,134,113,209,57,177,186,209,57,197,3,210,57,193,76,210,57,166,149,210,57,115,222,210,57,41,39,211,57,199,111,211,57,77,184,211,57,187,0,212,57,18,73,212,57,81,145,212,57,120,217,212,57,135,33,213,57,126,105,213,57,94,177,213,57,37,249,213,57,213,64,214,57,108,136,214,57,236,207,
214,57,83,23,215,57,163,94,215,57,218,165,215,57,250,236,215,57,1,52,216,57,240,122,216,57,198,193,216,57,133,8,217,57,43,79,217,57,185,149,217,57,47,220,217,57,140,34,218,57,209,104,218,57,253,174,218,57,17,245,218,57,13,59,219,57,240,128,219,57,187,198,219,57,109,12,220,57,6,82,220,57,135,151,220,57,240,220,220,57,63,34,221,57,118,103,221,57,149,172,221,57,154,241,221,57,135,54,222,57,91,123,222,57,22,192,222,57,185,4,223,57,66,73,223,57,179,141,223,57,10,210,223,57,73,22,224,57,111,90,224,57,124,
158,224,57,111,226,224,57,74,38,225,57,12,106,225,57,180,173,225,57,68,241,225,57,186,52,226,57,23,120,226,57,91,187,226,57,133,254,226,57,151,65,227,57,143,132,227,57,109,199,227,57,51,10,228,57,223,76,228,57,113,143,228,57,235,209,228,57,74,20,229,57,145,86,229,57,189,152,229,57,209,218,229,57,202,28,230,57,170,94,230,57,113,160,230,57,30,226,230,57,177,35,231,57,42,101,231,57,138,166,231,57,208,231,231,57,253,40,232,57,15,106,232,57,8,171,232,57,231,235,232,57,172,44,233,57,87,109,233,57,233,173,
233,57,96,238,233,57,189,46,234,57,1,111,234,57,42,175,234,57,57,239,234,57,47,47,235,57,10,111,235,57,203,174,235,57,114,238,235,57,255,45,236,57,113,109,236,57,202,172,236,57,8,236,236,57,44,43,237,57,54,106,237,57,37,169,237,57,250,231,237,57,181,38,238,57,85,101,238,57,219,163,238,57,70,226,238,57,151,32,239,57,206,94,239,57,234,156,239,57,235,218,239,57,210,24,240,57,158,86,240,57,80,148,240,57,231,209,240,57,100,15,241,57,198,76,241,57,13,138,241,57,57,199,241,57,75,4,242,57,66,65,242,57,30,
126,242,57,223,186,242,57,133,247,242,57,17,52,243,57,130,112,243,57,216,172,243,57,18,233,243,57,50,37,244,57,55,97,244,57,33,157,244,57,240,216,244,57,164,20,245,57,61,80,245,57,187,139,245,57,29,199,245,57,101,2,246,57,145,61,246,57,162,120,246,57,152,179,246,57,115,238,246,57,50,41,247,57,214,99,247,57,95,158,247,57,205,216,247,57,31,19,248,57,86,77,248,57,113,135,248,57,113,193,248,57,86,251,248,57,31,53,249,57,205,110,249,57,95,168,249,57,213,225,249,57,49,27,250,57,112,84,250,57,148,141,250,
57,156,198,250,57,137,255,250,57,90,56,251,57,15,113,251,57,169,169,251,57,39,226,251,57,137,26,252,57,208,82,252,57,250,138,252,57,9,195,252,57,252,250,252,57,212,50,253,57,143,106,253,57,46,162,253,57,178,217,253,57,25,17,254,57,101,72,254,57,149,127,254,57,168,182,254,57,160,237,254,57,123,36,255,57,59,91,255,57,222,145,255,57,102,200,255,57,209,254,255,57,144,26,0,58,169,53,0,58,181,80,0,58,178,107,0,58,161,134,0,58,130,161,0,58,85,188,0,58,26,215,0,58,208,241,0,58,121,12,1,58,19,39,1,58,159,
65,1,58,29,92,1,58,141,118,1,58,238,144,1,58,65,171,1,58,134,197,1,58,189,223,1,58,229,249,1,58,0,20,2,58,12,46,2,58,9,72,2,58,249,97,2,58,218,123,2,58,172,149,2,58,113,175,2,58,39,201,2,58,206,226,2,58,104,252,2,58,243,21,3,58,111,47,3,58,222,72,3,58,61,98,3,58,143,123,3,58,210,148,3,58,7,174,3,58,45,199,3,58,68,224,3,58,78,249,3,58,73,18,4,58,53,43,4,58,19,68,4,58,226,92,4,58,163,117,4,58,85,142,4,58,249,166,4,58,143,191,4,58,21,216,4,58,142,240,4,58,247,8,5,58,82,33,5,58,159,57,5,58,221,81,5,58,
12,106,5,58,45,130,5,58,63,154,5,58,67,178,5,58,56,202,5,58,30,226,5,58,246,249,5,58,191,17,6,58,121,41,6,58,37,65,6,58,194,88,6,58,80,112,6,58,207,135,6,58,64,159,6,58,162,182,6,58,246,205,6,58,59,229,6,58,113,252,6,58,152,19,7,58,176,42,7,58,186,65,7,58,181,88,7,58,161,111,7,58,126,134,7,58,77,157,7,58,12,180,7,58,189,202,7,58,95,225,7,58,243,247,7,58,119,14,8,58,236,36,8,58,83,59,8,58,171,81,8,58,244,103,8,58,46,126,8,58,89,148,8,58,117,170,8,58,130,192,8,58,129,214,8,58,112,236,8,58,81,2,9,58,
34,24,9,58,229,45,9,58,152,67,9,58,61,89,9,58,211,110,9,58,90,132,9,58,209,153,9,58,58,175,9,58,148,196,9,58,222,217,9,58,26,239,9,58,71,4,10,58,100,25,10,58,115,46,10,58,114,67,10,58,99,88,10,58,68,109,10,58,22,130,10,58,217,150,10,58,141,171,10,58,50,192,10,58,200,212,10,58,79,233,10,58,199,253,10,58,47,18,11,58,137,38,11,58,211,58,11,58,14,79,11,58,58,99,11,58,86,119,11,58,100,139,11,58,98,159,11,58,81,179,11,58,49,199,11,58,2,219,11,58,196,238,11,58,118,2,12,58,25,22,12,58,173,41,12,58,49,61,
12,58,167,80,12,58,13,100,12,58,100,119,12,58,171,138,12,58,227,157,12,58,12,177,12,58,38,196,12,58,48,215,12,58,44,234,12,58,23,253,12,58,244,15,13,58,193,34,13,58,127,53,13,58,45,72,13,58,204,90,13,58,92,109,13,58,220,127,13,58,77,146,13,58,175,164,13,58,1,183,13,58,68,201,13,58,119,219,13,58,155,237,13,58,176,255,13,58,181,17,14,58,171,35,14,58,146,53,14,58,105,71,14,58,48,89,14,58,232,106,14,58,145,124,14,58,42,142,14,58,180,159,14,58,46,177,14,58,152,194,14,58,244,211,14,58,63,229,14,58,124,
246,14,58,168,7,15,58,198,24,15,58,211,41,15,58,210,58,15,58,192,75,15,58,159,92,15,58,111,109,15,58,47,126,15,58,224,142,15,58,129,159,15,58,18,176,15,58,148,192,15,58,6,209,15,58,105,225,15,58,188,241,15,58,255,1,16,58,51,18,16,58,87,34,16,58,108,50,16,58,113,66,16,58,102,82,16,58,76,98,16,58,34,114,16,58,233,129,16,58,160,145,16,58,71,161,16,58,222,176,16,58,102,192,16,58,223,207,16,58,71,223,16,58,160,238,16,58,233,253,16,58,35,13,17,58,76,28,17,58,103,43,17,58,113,58,17,58,108,73,17,58,87,88,
17,58,50,103,17,58,254,117,17,58,185,132,17,58,101,147,17,58,2,162,17,58,142,176,17,58,11,191,17,58,120,205,17,58,214,219,17,58,35,234,17,58,97,248,17,58,143,6,18,58,173,20,18,58,188,34,18,58,186,48,18,58,169,62,18,58,136,76,18,58,88,90,18,58,23,104,18,58,199,117,18,58,102,131,18,58,246,144,18,58,119,158,18,58,231,171,18,58,71,185,18,58,152,198,18,58,217,211,18,58,10,225,18,58,43,238,18,58,60,251,18,58,62,8,19,58,47,21,19,58,17,34,19,58,227,46,19,58,164,59,19,58,86,72,19,58,249,84,19,58,139,97,19,
58,13,110,19,58,127,122,19,58,226,134,19,58,53,147,19,58,119,159,19,58,170,171,19,58,205,183,19,58,224,195,19,58,227,207,19,58,214,219,19,58,185,231,19,58,140,243,19,58,79,255,19,58,2,11,20,58,166,22,20,58,57,34,20,58,189,45,20,58,48,57,20,58,147,68,20,58,231,79,20,58,42,91,20,58,94,102,20,58,129,113,20,58,149,124,20,58,153,135,20,58,140,146,20,58,112,157,20,58,67,168,20,58,7,179,20,58,186,189,20,58,94,200,20,58,241,210,20,58,117,221,20,58,232,231,20,58,76,242,20,58,159,252,20,58,227,6,21,58,22,17,
21,58,57,27,21,58,76,37,21,58,80,47,21,58,67,57,21,58,38,67,21,58,249,76,21,58,188,86,21,58,111,96,21,58,18,106,21,58,165,115,21,58,39,125,21,58,154,134,21,58,253,143,21,58,79,153,21,58,146,162,21,58,196,171,21,58,230,180,21,58,248,189,21,58,250,198,21,58,236,207,21,58,206,216,21,58,160,225,21,58,98,234,21,58,19,243,21,58,181,251,21,58,70,4,22,58,199,12,22,58,57,21,22,58,154,29,22,58,234,37,22,58,43,46,22,58,92,54,22,58,124,62,22,58,141,70,22,58,141,78,22,58,125,86,22,58,93,94,22,58,45,102,22,58,
237,109,22,58,156,117,22,58,60,125,22,58,203,132,22,58,74,140,22,58,185,147,22,58,24,155,22,58,102,162,22,58,165,169,22,58,211,176,22,58,241,183,22,58,255,190,22,58,253,197,22,58,235,204,22,58,200,211,22,58,149,218,22,58,82,225,22,58,255,231,22,58,156,238,22,58,41,245,22,58,165,251,22,58,17,2,23,58,110,8,23,58,185,14,23,58,245,20,23,58,33,27,23,58,60,33,23,58,71,39,23,58,66,45,23,58,45,51,23,58,7,57,23,58,209,62,23,58,140,68,23,58,53,74,23,58,207,79,23,58,89,85,23,58,210,90,23,58,59,96,23,58,148,
101,23,58,221,106,23,58,21,112,23,58,61,117,23,58,85,122,23,58,93,127,23,58,85,132,23,58,60,137,23,58,20,142,23,58,219,146,23,58,145,151,23,58,56,156,23,58,206,160,23,58,84,165,23,58,202,169,23,58,48,174,23,58,133,178,23,58,202,182,23,58,255,186,23,58,36,191,23,58,57,195,23,58,61,199,23,58,49,203,23,58,21,207,23,58,233,210,23,58,172,214,23,58,95,218,23,58,2,222,23,58,149,225,23,58,23,229,23,58,138,232,23,58,236,235,23,58,61,239,23,58,127,242,23,58,176,245,23,58,209,248,23,58,226,251,23,58,227,254,
23,58,211,1,24,58,179,4,24,58,131,7,24,58,67,10,24,58,242,12,24,58,146,15,24,58,33,18,24,58,159,20,24,58,14,23,24,58,108,25,24,58,186,27,24,58,248,29,24,58,38,32,24,58,67,34,24,58,80,36,24,58,77,38,24,58,58,40,24,58,22,42,24,58,226,43,24,58,158,45,24,58,74,47,24,58,229,48,24,58,113,50,24,58,236,51,24,58,86,53,24,58,177,54,24,58,251,55,24,58,53,57,24,58,95,58,24,58,121,59,24,58,130,60,24,58,123,61,24,58,100,62,24,58,61,63,24,58,6,64,24,58,190,64,24,58,102,65,24,58,254,65,24,58,133,66,24,58,253,66,
24,58,100,67,24,58,187,67,24,58,2,68,24,58,56,68,24,58,94,68,24,58,116,68,24,58,122,68,24,58,112,68,24,58,85,68,24,58,43,68,24,58,240,67,24,58,164,67,24,58,73,67,24,58,221,66,24,58,98,66,24,58,214,65,24,58,57,65,24,58,141,64,24,58,208,63,24,58,3,63,24,58,38,62,24,58,57,61,24,58,60,60,24,58,46,59,24,58,16,58,24,58,226,56,24,58,164,55,24,58,86,54,24,58,247,52,24,58,136,51,24,58,10,50,24,58,122,48,24,58,219,46,24,58,44,45,24,58,108,43,24,58,156,41,24,58,188,39,24,58,204,37,24,58,204,35,24,58,187,33,
24,58,155,31,24,58,106,29,24,58,41,27,24,58,216,24,24,58,118,22,24,58,5,20,24,58,131,17,24,58,241,14,24,58,79,12,24,58,157,9,24,58,219,6,24,58,9,4,24,58,38,1,24,58,52,254,23,58,49,251,23,58,30,248,23,58,251,244,23,58,200,241,23,58,132,238,23,58,49,235,23,58,206,231,23,58,90,228,23,58,214,224,23,58,66,221,23,58,158,217,23,58,234,213,23,58,38,210,23,58,82,206,23,58,109,202,23,58,121,198,23,58,116,194,23,58,95,190,23,58,58,186,23,58,6,182,23,58,193,177,23,58,107,173,23,58,6,169,23,58,145,164,23,58,12,
160,23,58,118,155,23,58,209,150,23,58,27,146,23,58,86,141,23,58,128,136,23,58,155,131,23,58,165,126,23,58,159,121,23,58,137,116,23,58,99,111,23,58,45,106,23,58,232,100,23,58,146,95,23,58,43,90,23,58,181,84,23,58,47,79,23,58,153,73,23,58,243,67,23,58,61,62,23,58,119,56,23,58,161,50,23,58,187,44,23,58,196,38,23,58,190,32,23,58,168,26,23,58,130,20,23,58,76,14,23,58,6,8,23,58,176,1,23,58,74,251,22,58,212,244,22,58,78,238,22,58,184,231,22,58,18,225,22,58,92,218,22,58,150,211,22,58,192,204,22,58,218,197,
22,58,229,190,22,58,223,183,22,58,202,176,22,58,164,169,22,58,111,162,22,58,41,155,22,58,212,147,22,58,111,140,22,58,250,132,22,58,117,125,22,58,224,117,22,58,59,110,22,58,135,102,22,58,194,94,22,58,238,86,22,58,9,79,22,58,21,71,22,58,17,63,22,58,253,54,22,58,217,46,22,58,166,38,22,58,98,30,22,58,15,22,22,58,172,13,22,58,57,5,22,58,182,252,21,58,35,244,21,58,129,235,21,58,206,226,21,58,12,218,21,58,58,209,21,58,88,200,21,58,103,191,21,58,101,182,21,58,84,173,21,58,51,164,21,58,2,155,21,58,194,145,
21,58,113,136,21,58,17,127,21,58,161,117,21,58,34,108,21,58,146,98,21,58,243,88,21,58,68,79,21,58,134,69,21,58,183,59,21,58,217,49,21,58,235,39,21,58,238,29,21,58,225,19,21,58,196,9,21,58,151,255,20,58,91,245,20,58,15,235,20,58,179,224,20,58,72,214,20,58,204,203,20,58,66,193,20,58,167,182,20,58,253,171,20,58,67,161,20,58,122,150,20,58,161,139,20,58,184,128,20,58,192,117,20,58,184,106,20,58,160,95,20,58,121,84,20,58,66,73,20,58,252,61,20,58,166,50,20,58,64,39,20,58,203,27,20,58,70,16,20,58,178,4,20,
58,14,249,19,58,90,237,19,58,151,225,19,58,197,213,19,58,227,201,19,58,241,189,19,58,240,177,19,58,223,165,19,58,191,153,19,58,143,141,19,58,79,129,19,58,1,117,19,58,162,104,19,58,52,92,19,58,183,79,19,58,42,67,19,58,142,54,19,58,226,41,19,58,39,29,19,58,92,16,19,58,130,3,19,58,153,246,18,58,160,233,18,58,151,220,18,58,128,207,18,58,88,194,18,58,34,181,18,58,219,167,18,58,134,154,18,58,33,141,18,58,173,127,18,58,41,114,18,58,150,100,18,58,244,86,18,58,66,73,18,58,129,59,18,58,177,45,18,58,209,31,
18,58,226,17,18,58,227,3,18,58,213,245,17,58,184,231,17,58,140,217,17,58,80,203,17,58,5,189,17,58,171,174,17,58,66,160,17,58,201,145,17,58,65,131,17,58,169,116,17,58,3,102,17,58,77,87,17,58,136,72,17,58,180,57,17,58,208,42,17,58,221,27,17,58,220,12,17,58,202,253,16,58,170,238,16,58,123,223,16,58,60,208,16,58,238,192,16,58,145,177,16,58,37,162,16,58,170,146,16,58,31,131,16,58,134,115,16,58,221,99,16,58,37,84,16,58,94,68,16,58,136,52,16,58,163,36,16,58,175,20,16,58,171,4,16,58,153,244,15,58,119,228,
15,58,71,212,15,58,7,196,15,58,185,179,15,58,91,163,15,58,238,146,15,58,115,130,15,58,232,113,15,58,78,97,15,58,166,80,15,58,238,63,15,58,39,47,15,58,82,30,15,58,109,13,15,58,122,252,14,58,119,235,14,58,102,218,14,58,69,201,14,58,22,184,14,58,216,166,14,58,139,149,14,58,47,132,14,58,196,114,14,58,74,97,14,58,193,79,14,58,42,62,14,58,131,44,14,58,206,26,14,58,10,9,14,58,55,247,13,58,85,229,13,58,101,211,13,58,101,193,13,58,87,175,13,58,58,157,13,58,14,139,13,58,212,120,13,58,139,102,13,58,50,84,13,
58,204,65,13,58,86,47,13,58,210,28,13,58,63,10,13,58,157,247,12,58,237,228,12,58,46,210,12,58,96,191,12,58,131,172,12,58,152,153,12,58,158,134,12,58,150,115,12,58,127,96,12,58,89,77,12,58,37,58,12,58,226,38,12,58,144,19,12,58,48,0,12,58,193,236,11,58,68,217,11,58,184,197,11,58,29,178,11,58,116,158,11,58,189,138,11,58,247,118,11,58,34,99,11,58,63,79,11,58,77,59,11,58,77,39,11,58,62,19,11,58,33,255,10,58,245,234,10,58,187,214,10,58,115,194,10,58,28,174,10,58,182,153,10,58,67,133,10,58,192,112,10,58,
48,92,10,58,145,71,10,58,227,50,10,58,39,30,10,58,93,9,10,58,133,244,9,58,158,223,9,58,168,202,9,58,165,181,9,58,147,160,9,58,115,139,9,58,68,118,9,58,7,97,9,58,188,75,9,58,99,54,9,58,251,32,9,58,134,11,9,58,1,246,8,58,111,224,8,58,207,202,8,58,32,181,8,58,99,159,8,58,152,137,8,58,190,115,8,58,215,93,8,58,225,71,8,58,221,49,8,58,203,27,8,58,171,5,8,58,125,239,7,58,65,217,7,58,246,194,7,58,158,172,7,58,55,150,7,58,194,127,7,58,64,105,7,58,175,82,7,58,16,60,7,58,99,37,7,58,168,14,7,58,223,247,6,58,
9,225,6,58,36,202,6,58,49,179,6,58,48,156,6,58,33,133,6,58,5,110,6,58,218,86,6,58,161,63,6,58,91,40,6,58,6,17,6,58,164,249,5,58,52,226,5,58,182,202,5,58,42,179,5,58,144,155,5,58,233,131,5,58,51,108,5,58,112,84,5,58,159,60,5,58,192,36,5,58,211,12,5,58,217,244,4,58,209,220,4,58,187,196,4,58,151,172,4,58,102,148,4,58,38,124,4,58,218,99,4,58,127,75,4,58,23,51,4,58,161,26,4,58,29,2,4,58,140,233,3,58,237,208,3,58,65,184,3,58,135,159,3,58,191,134,3,58,233,109,3,58,7,85,3,58,22,60,3,58,24,35,3,58,12,10,3,
58,243,240,2,58,204,215,2,58,152,190,2,58,86,165,2,58,7,140,2,58,171,114,2,58,64,89,2,58,201,63,2,58,68,38,2,58,177,12,2,58,17,243,1,58,100,217,1,58,169,191,1,58,225,165,1,58,11,140,1,58,40,114,1,58,56,88,1,58,58,62,1,58,47,36,1,58,23,10,1,58,241,239,0,58,190,213,0,58,126,187,0,58,48,161,0,58,214,134,0,58,110,108,0,58,248,81,0,58,118,55,0,58,230,28,0,58,73,2,0,58,62,207,255,57,208,153,255,57,71,100,255,57,163,46,255,57,230,248,254,57,14,195,254,57,28,141,254,57,16,87,254,57,233,32,254,57,169,234,
253,57,78,180,253,57,217,125,253,57,74,71,253,57,161,16,253,57,221,217,252,57,0,163,252,57,9,108,252,57,248,52,252,57,205,253,251,57,136,198,251,57,41,143,251,57,176,87,251,57,29,32,251,57,113,232,250,57,170,176,250,57,202,120,250,57,208,64,250,57,189,8,250,57,143,208,249,57,72,152,249,57,232,95,249,57,109,39,249,57,218,238,248,57,44,182,248,57,101,125,248,57,133,68,248,57,138,11,248,57,119,210,247,57,74,153,247,57,4,96,247,57,164,38,247,57,43,237,246,57,152,179,246,57,236,121,246,57,39,64,246,57,
73,6,246,57,81,204,245,57,64,146,245,57,22,88,245,57,210,29,245,57,118,227,244,57,0,169,244,57,114,110,244,57,202,51,244,57,9,249,243,57,48,190,243,57,61,131,243,57,49,72,243,57,12,13,243,57,207,209,242,57,120,150,242,57,9,91,242,57,129,31,242,57,224,227,241,57,38,168,241,57,84,108,241,57,104,48,241,57,100,244,240,57,72,184,240,57,19,124,240,57,197,63,240,57,94,3,240,57,223,198,239,57,72,138,239,57,152,77,239,57,207,16,239,57,238,211,238,57,244,150,238,57,227,89,238,57,184,28,238,57,118,223,237,57,
27,162,237,57,167,100,237,57,28,39,237,57,120,233,236,57,188,171,236,57,232,109,236,57,252,47,236,57,247,241,235,57,219,179,235,57,166,117,235,57,89,55,235,57,245,248,234,57,120,186,234,57,227,123,234,57,55,61,234,57,114,254,233,57,150,191,233,57,161,128,233,57,149,65,233,57,113,2,233,57,54,195,232,57,226,131,232,57,119,68,232,57,244,4,232,57,89,197,231,57,167,133,231,57,221,69,231,57,252,5,231,57,3,198,230,57,243,133,230,57,203,69,230,57,139,5,230,57,52,197,229,57,198,132,229,57,65,68,229,57,164,
3,229,57,239,194,228,57,36,130,228,57,65,65,228,57,71,0,228,57,53,191,227,57,13,126,227,57,205,60,227,57,118,251,226,57,8,186,226,57,131,120,226,57,231,54,226,57,52,245,225,57,106,179,225,57,137,113,225,57,145,47,225,57,130,237,224,57,93,171,224,57,32,105,224,57,205,38,224,57,99,228,223,57,226,161,223,57,74,95,223,57,156,28,223,57,215,217,222,57,251,150,222,57,9,84,222,57,0,17,222,57,225,205,221,57,171,138,221,57,95,71,221,57,252,3,221,57,131,192,220,57,243,124,220,57,77,57,220,57,145,245,219,57,
190,177,219,57,213,109,219,57,214,41,219,57,193,229,218,57,149,161,218,57,83,93,218,57,252,24,218,57,142,212,217,57,10,144,217,57,111,75,217,57,191,6,217,57,249,193,216,57,29,125,216,57,43,56,216,57,35,243,215,57,6,174,215,57,210,104,215,57,137,35,215,57,41,222,214,57,181,152,214,57,42,83,214,57,138,13,214,57,212,199,213,57,8,130,213,57,39,60,213,57,48,246,212,57,36,176,212,57,2,106,212,57,203,35,212,57,127,221,211,57,28,151,211,57,165,80,211,57,24,10,211,57,118,195,210,57,191,124,210,57,242,53,210,
57,16,239,209,57,25,168,209,57,13,97,209,57,236,25,209,57,181,210,208,57,106,139,208,57,9,68,208,57,148,252,207,57,9,181,207,57,106,109,207,57,181,37,207,57,236,221,206,57,14,150,206,57,27,78,206,57,19,6,206,57,247,189,205,57,198,117,205,57,128,45,205,57,37,229,204,57,182,156,204,57,50,84,204,57,154,11,204,57,237,194,203,57,43,122,203,57,85,49,203,57,107,232,202,57,108,159,202,57,89,86,202,57,50,13,202,57,246,195,201,57,166,122,201,57,66,49,201,57,201,231,200,57,60,158,200,57,155,84,200,57,230,10,
200,57,29,193,199,57,64,119,199,57,79,45,199,57,74,227,198,57,49,153,198,57,4,79,198,57,195,4,198,57,110,186,197,57,5,112,197,57,137,37,197,57,248,218,196,57,84,144,196,57,157,69,196,57,209,250,195,57,242,175,195,57,0,101,195,57,249,25,195,57,224,206,194,57,178,131,194,57,114,56,194,57,29,237,193,57,182,161,193,57,59,86,193,57,172,10,193,57,11,191,192,57,86,115,192,57,142,39,192,57,178,219,191,57,196,143,191,57,194,67,191,57,173,247,190,57,133,171,190,57,74,95,190,57,252,18,190,57,155,198,189,57,
39,122,189,57,160,45,189,57,6,225,188,57,90,148,188,57,154,71,188,57,200,250,187,57,227,173,187,57,235,96,187,57,225,19,187,57,196,198,186,57,148,121,186,57,82,44,186,57,253,222,185,57,149,145,185,57,27,68,185,57,143,246,184,57,240,168,184,57,63,91,184,57,124,13,184,57,166,191,183,57,190,113,183,57,195,35,183,57,183,213,182,57,152,135,182,57,103,57,182,57,36,235,181,57,207,156,181,57,104,78,181,57,238,255,180,57,99,177,180,57,198,98,180,57,23,20,180,57,86,197,179,57,131,118,179,57,159,39,179,57,168,
216,178,57,160,137,178,57,134,58,178,57,91,235,177,57,29,156,177,57,207,76,177,57,110,253,176,57,252,173,176,57,121,94,176,57,228,14,176,57,61,191,175,57,134,111,175,57,189,31,175,57,226,207,174,57,246,127,174,57,249,47,174,57,235,223,173,57,203,143,173,57,155,63,173,57,89,239,172,57,6,159,172,57,162,78,172,57,45,254,171,57,167,173,171,57,16,93,171,57,104,12,171,57,175,187,170,57,230,106,170,57,11,26,170,57,32,201,169,57,36,120,169,57,23,39,169,57,250,213,168,57,204,132,168,57,141,51,168,57,62,226,
167,57,222,144,167,57,110,63,167,57,237,237,166,57,92,156,166,57,187,74,166,57,9,249,165,57],"i8",4,y.a+768E3);
Q([70,167,165,57,116,85,165,57,145,3,165,57,158,177,164,57,155,95,164,57,135,13,164,57,100,187,163,57,48,105,163,57,236,22,163,57,153,196,162,57,53,114,162,57,193,31,162,57,62,205,161,57,170,122,161,57,7,40,161,57,84,213,160,57,145,130,160,57,191,47,160,57,220,220,159,57,234,137,159,57,233,54,159,57,216,227,158,57,183,144,158,57,135,61,158,57,71,234,157,57,248,150,157,57,153,67,157,57,43,240,156,57,174,156,156,57,33,73,156,57,134,245,155,57,218,161,155,57,32,78,155,57,87,250,154,57,126,166,154,57,
150,82,154,57,160,254,153,57,154,170,153,57,133,86,153,57,97,2,153,57,47,174,152,57,237,89,152,57,157,5,152,57,62,177,151,57,208,92,151,57,83,8,151,57,200,179,150,57,46,95,150,57,133,10,150,57,206,181,149,57,8,97,149,57,52,12,149,57,81,183,148,57,96,98,148,57,97,13,148,57,83,184,147,57,54,99,147,57,12,14,147,57,211,184,146,57,140,99,146,57,54,14,146,57,211,184,145,57,97,99,145,57,226,13,145,57,84,184,144,57,185,98,144,57,15,13,144,57,87,183,143,57,146,97,143,57,191,11,143,57,221,181,142,57,238,95,
142,57,242,9,142,57,231,179,141,57,207,93,141,57,169,7,141,57,118,177,140,57,53,91,140,57,231,4,140,57,139,174,139,57,34,88,139,57,171,1,139,57,39,171,138,57,149,84,138,57,246,253,137,57,74,167,137,57,145,80,137,57,202,249,136,57,247,162,136,57,22,76,136,57,40,245,135,57,45,158,135,57,37,71,135,57,16,240,134,57,238,152,134,57,191,65,134,57,132,234,133,57,59,147,133,57,230,59,133,57,132,228,132,57,21,141,132,57,154,53,132,57,18,222,131,57,125,134,131,57,220,46,131,57,46,215,130,57,116,127,130,57,173,
39,130,57,218,207,129,57,250,119,129,57,14,32,129,57,22,200,128,57,18,112,128,57,1,24,128,57,200,127,127,57,118,207,126,57,12,31,126,57,137,110,125,57,239,189,124,57,60,13,124,57,114,92,123,57,143,171,122,57,149,250,121,57,131,73,121,57,90,152,120,57,25,231,119,57,192,53,119,57,80,132,118,57,201,210,117,57,42,33,117,57,117,111,116,57,168,189,115,57,196,11,115,57,201,89,114,57,183,167,113,57,143,245,112,57,80,67,112,57,250,144,111,57,141,222,110,57,10,44,110,57,113,121,109,57,193,198,108,57,251,19,
108,57,30,97,107,57,44,174,106,57,35,251,105,57,5,72,105,57,209,148,104,57,134,225,103,57,38,46,103,57,177,122,102,57,38,199,101,57,133,19,101,57,207,95,100,57,3,172,99,57,34,248,98,57,44,68,98,57,33,144,97,57,1,220,96,57,204,39,96,57,130,115,95,57,35,191,94,57,175,10,94,57,38,86,93,57,137,161,92,57,216,236,91,57,18,56,91,57,56,131,90,57,73,206,89,57,70,25,89,57,47,100,88,57,4,175,87,57,197,249,86,57,114,68,86,57,11,143,85,57,144,217,84,57,2,36,84,57,96,110,83,57,171,184,82,57,226,2,82,57,5,77,81,
57,22,151,80,57,19,225,79,57,253,42,79,57,212,116,78,57,152,190,77,57,73,8,77,57,231,81,76,57,115,155,75,57,236,228,74,57,82,46,74,57,165,119,73,57,231,192,72,57,21,10,72,57,50,83,71,57,60,156,70,57,52,229,69,57,27,46,69,57,239,118,68,57,177,191,67,57,97,8,67,57,0,81,66,57,141,153,65,57,8,226,64,57,114,42,64,57,202,114,63,57,17,187,62,57,71,3,62,57,107,75,61,57,127,147,60,57,129,219,59,57,114,35,59,57,82,107,58,57,34,179,57,57,225,250,56,57,143,66,56,57,44,138,55,57,185,209,54,57,54,25,54,57,162,
96,53,57,254,167,52,57,74,239,51,57,133,54,51,57,177,125,50,57,205,196,49,57,216,11,49,57,212,82,48,57,192,153,47,57,157,224,46,57,106,39,46,57,39,110,45,57,213,180,44,57,116,251,43,57,3,66,43,57,131,136,42,57,244,206,41,57,86,21,41,57,169,91,40,57,238,161,39,57,35,232,38,57,74,46,38,57,98,116,37,57,107,186,36,57,102,0,36,57,83,70,35,57,49,140,34,57,1,210,33,57,195,23,33,57,118,93,32,57,28,163,31,57,180,232,30,57,62,46,30,57,186,115,29,57,40,185,28,57,137,254,27,57,220,67,27,57,34,137,26,57,90,206,
25,57,133,19,25,57,163,88,24,57,180,157,23,57,184,226,22,57,174,39,22,57,152,108,21,57,117,177,20,57,69,246,19,57,8,59,19,57,191,127,18,57,105,196,17,57,7,9,17,57,153,77,16,57,30,146,15,57,151,214,14,57,4,27,14,57,101,95,13,57,186,163,12,57,3,232,11,57,64,44,11,57,113,112,10,57,151,180,9,57,177,248,8,57,192,60,8,57,195,128,7,57,187,196,6,57,167,8,6,57,137,76,5,57,95,144,4,57,43,212,3,57,235,23,3,57,161,91,2,57,75,159,1,57,235,226,0,57,129,38,0,57,23,212,254,56,24,91,253,56,4,226,251,56,219,104,250,
56,158,239,248,56,77,118,247,56,231,252,245,56,109,131,244,56,224,9,243,56,63,144,241,56,138,22,240,56,194,156,238,56,231,34,237,56,249,168,235,56,248,46,234,56,228,180,232,56,190,58,231,56,133,192,229,56,58,70,228,56,221,203,226,56,110,81,225,56,237,214,223,56,90,92,222,56,182,225,220,56,1,103,219,56,59,236,217,56,99,113,216,56,123,246,214,56,130,123,213,56,121,0,212,56,95,133,210,56,53,10,209,56,251,142,207,56,178,19,206,56,88,152,204,56,239,28,203,56,119,161,201,56,239,37,200,56,88,170,198,56,
179,46,197,56,254,178,195,56,59,55,194,56,106,187,192,56,138,63,191,56,156,195,189,56,160,71,188,56,151,203,186,56,127,79,185,56,91,211,183,56,40,87,182,56,233,218,180,56,157,94,179,56,68,226,177,56,222,101,176,56,108,233,174,56,237,108,173,56,98,240,171,56,203,115,170,56,40,247,168,56,121,122,167,56,191,253,165,56,250,128,164,56,41,4,163,56,77,135,161,56,102,10,160,56,116,141,158,56,120,16,157,56,113,147,155,56,96,22,154,56,68,153,152,56,31,28,151,56,240,158,149,56,183,33,148,56,117,164,146,56,42,
39,145,56,213,169,143,56,119,44,142,56,16,175,140,56,161,49,139,56,41,180,137,56,169,54,136,56,32,185,134,56,143,59,133,56,247,189,131,56,87,64,130,56,175,194,128,56,255,137,126,56,145,142,123,56,22,147,120,56,140,151,117,56,245,155,114,56,81,160,111,56,160,164,108,56,226,168,105,56,24,173,102,56,65,177,99,56,95,181,96,56,114,185,93,56,122,189,90,56,118,193,87,56,105,197,84,56,81,201,81,56,48,205,78,56,5,209,75,56,209,212,72,56,148,216,69,56,79,220,66,56,1,224,63,56,172,227,60,56,79,231,57,56,235,
234,54,56,128,238,51,56,14,242,48,56,150,245,45,56,24,249,42,56,148,252,39,56,11,0,37,56,126,3,34,56,235,6,31,56,84,10,28,56,185,13,25,56,26,17,22,56,120,20,19,56,211,23,16,56,43,27,13,56,128,30,10,56,212,33,7,56,37,37,4,56,118,40,1,56,137,87,252,55,37,94,246,55,192,100,240,55,90,107,234,55,245,113,228,55,145,120,222,55,46,127,216,55,205,133,210,55,110,140,204,55,20,147,198,55,189,153,192,55,107,160,186,55,30,167,180,55,215,173,174,55,150,180,168,55,93,187,162,55,43,194,156,55,2,201,150,55,226,207,
144,55,204,214,138,55,192,221,132,55,126,201,125,55,147,215,113,55,193,229,101,55,9,244,89,55,108,2,78,55,235,16,66,55,136,31,54,55,67,46,42,55,31,61,30,55,28,76,18,55,60,91,6,55,255,212,244,54,209,243,220,54,240,18,197,54,95,50,173,54,31,82,149,54,105,228,122,54,66,37,75,54,205,102,27,54,36,82,215,53,78,176,111,53,127,253,66,52,112,46,14,181,135,140,166,181,25,0,3,182,24,185,50,182,58,113,98,182,62,20,137,182,108,239,160,182,36,202,184,182,101,164,208,182,42,126,232,182,185,43,0,183,30,24,12,183,
65,4,24,183,34,240,35,183,191,219,47,183,24,199,59,183,42,178,71,183,244,156,83,183,119,135,95,183,175,113,107,183,156,91,119,183,158,162,129,183,71,151,135,183,201,139,141,183,35,128,147,183,84,116,153,183,91,104,159,183,57,92,165,183,235,79,171,183,115,67,177,183,206,54,183,183,253,41,189,183,255,28,195,183,211,15,201,183,121,2,207,183,239,244,212,183,54,231,218,183,76,217,224,183,50,203,230,183,229,188,236,183,103,174,242,183,182,159,248,183,209,144,254,183,220,64,2,184,53,57,5,184,116,49,8,184,
151,41,11,184,159,33,14,184,140,25,17,184,92,17,20,184,17,9,23,184,168,0,26,184,35,248,28,184,129,239,31,184,193,230,34,184,227,221,37,184,231,212,40,184,205,203,43,184,148,194,46,184,60,185,49,184,196,175,52,184,45,166,55,184,118,156,58,184,158,146,61,184,165,136,64,184,140,126,67,184,82,116,70,184,245,105,73,184,119,95,76,184,215,84,79,184,20,74,82,184,46,63,85,184,38,52,88,184,249,40,91,184,169,29,94,184,53,18,97,184,156,6,100,184,223,250,102,184,253,238,105,184,245,226,108,184,199,214,111,184,
116,202,114,184,250,189,117,184,90,177,120,184,147,164,123,184,165,151,126,184,71,197,128,184,169,62,130,184,246,183,131,184,46,49,133,184,83,170,134,184,99,35,136,184,94,156,137,184,68,21,139,184,22,142,140,184,210,6,142,184,121,127,143,184,10,248,144,184,134,112,146,184,236,232,147,184,60,97,149,184,118,217,150,184,153,81,152,184,166,201,153,184,157,65,155,184,125,185,156,184,70,49,158,184,248,168,159,184,147,32,161,184,23,152,162,184,131,15,164,184,215,134,165,184,20,254,166,184,56,117,168,184,
69,236,169,184,57,99,171,184,21,218,172,184,216,80,174,184,131,199,175,184,21,62,177,184,141,180,178,184,237,42,180,184,51,161,181,184,96,23,183,184,115,141,184,184,108,3,186,184,75,121,187,184,16,239,188,184,187,100,190,184,75,218,191,184,193,79,193,184,28,197,194,184,92,58,196,184,129,175,197,184,139,36,199,184,122,153,200,184,77,14,202,184,5,131,203,184,160,247,204,184,32,108,206,184,132,224,207,184,203,84,209,184,246,200,210,184,4,61,212,184,246,176,213,184,203,36,215,184,131,152,216,184,29,12,
218,184,154,127,219,184,250,242,220,184,60,102,222,184,97,217,223,184,103,76,225,184,79,191,226,184,25,50,228,184,197,164,229,184,82,23,231,184,192,137,232,184,16,252,233,184,64,110,235,184,82,224,236,184,68,82,238,184,22,196,239,184,201,53,241,184,93,167,242,184,208,24,244,184,35,138,245,184,86,251,246,184,105,108,248,184,91,221,249,184,44,78,251,184,221,190,252,184,108,47,254,184,219,159,255,184,20,136,0,185,42,64,1,185,47,248,1,185,35,176,2,185,6,104,3,185,217,31,4,185,154,215,4,185,74,143,5,185,
232,70,6,185,118,254,6,185,242,181,7,185,92,109,8,185,181,36,9,185,253,219,9,185,50,147,10,185,86,74,11,185,104,1,12,185,105,184,12,185,87,111,13,185,51,38,14,185,253,220,14,185,181,147,15,185,90,74,16,185,237,0,17,185,110,183,17,185,220,109,18,185,55,36,19,185,128,218,19,185,182,144,20,185,217,70,21,185,234,252,21,185,231,178,22,185,209,104,23,185,169,30,24,185,109,212,24,185,29,138,25,185,187,63,26,185,69,245,26,185,187,170,27,185,30,96,28,185,110,21,29,185,169,202,29,185,209,127,30,185,229,52,
31,185,229,233,31,185,209,158,32,185,169,83,33,185,109,8,34,185,29,189,34,185,184,113,35,185,63,38,36,185,177,218,36,185,15,143,37,185,88,67,38,185,141,247,38,185,173,171,39,185,184,95,40,185,174,19,41,185,143,199,41,185,92,123,42,185,19,47,43,185,181,226,43,185,65,150,44,185,184,73,45,185,26,253,45,185,103,176,46,185,158,99,47,185,191,22,48,185,202,201,48,185,192,124,49,185,160,47,50,185,106,226,50,185,30,149,51,185,188,71,52,185,68,250,52,185,181,172,53,185,17,95,54,185,86,17,55,185,132,195,55,
185,156,117,56,185,158,39,57,185,136,217,57,185,92,139,58,185,26,61,59,185,192,238,59,185,80,160,60,185,200,81,61,185,41,3,62,185,116,180,62,185,167,101,63,185,194,22,64,185,199,199,64,185,180,120,65,185,137,41,66,185,71,218,66,185,237,138,67,185,123,59,68,185,242,235,68,185,81,156,69,185,152,76,70,185,198,252,70,185,221,172,71,185,219,92,72,185,194,12,73,185,144,188,73,185,69,108,74,185,227,27,75,185,103,203,75,185,211,122,76,185,39,42,77,185,97,217,77,185,131,136,78,185,140,55,79,185,124,230,79,
185,83,149,80,185,17,68,81,185,182,242,81,185,65,161,82,185,179,79,83,185,12,254,83,185,76,172,84,185,114,90,85,185,126,8,86,185,113,182,86,185,73,100,87,185,9,18,88,185,174,191,88,185,57,109,89,185,170,26,90,185,2,200,90,185,63,117,91,185,98,34,92,185,106,207,92,185,88,124,93,185,44,41,94,185,229,213,94,185,132,130,95,185,8,47,96,185,113,219,96,185,192,135,97,185,244,51,98,185,12,224,98,185,10,140,99,185,237,55,100,185,180,227,100,185,97,143,101,185,242,58,102,185,104,230,102,185,194,145,103,185,
1,61,104,185,36,232,104,185,44,147,105,185,24,62,106,185,232,232,106,185,157,147,107,185,53,62,108,185,178,232,108,185,18,147,109,185,87,61,110,185,127,231,110,185,139,145,111,185,123,59,112,185,78,229,112,185,5,143,113,185,159,56,114,185,29,226,114,185,126,139,115,185,195,52,116,185,234,221,116,185,245,134,117,185,227,47,118,185,180,216,118,185,103,129,119,185,254,41,120,185,119,210,120,185,212,122,121,185,18,35,122,185,52,203,122,185,56,115,123,185,30,27,124,185,231,194,124,185,146,106,125,185,
31,18,126,185,143,185,126,185,224,96,127,185,10,4,128,185,149,87,128,185,17,171,128,185,125,254,128,185,219,81,129,185,42,165,129,185,105,248,129,185,153,75,130,185,186,158,130,185,203,241,130,185,206,68,131,185,192,151,131,185,164,234,131,185,120,61,132,185,61,144,132,185,242,226,132,185,152,53,133,185,46,136,133,185,180,218,133,185,43,45,134,185,147,127,134,185,234,209,134,185,50,36,135,185,106,118,135,185,147,200,135,185,171,26,136,185,180,108,136,185,173,190,136,185,150,16,137,185,111,98,137,
185,56,180,137,185,241,5,138,185,153,87,138,185,50,169,138,185,187,250,138,185,52,76,139,185,156,157,139,185,244,238,139,185,60,64,140,185,116,145,140,185,156,226,140,185,179,51,141,185,185,132,141,185,176,213,141,185,150,38,142,185,107,119,142,185,48,200,142,185,228,24,143,185,136,105,143,185,27,186,143,185,158,10,144,185,16,91,144,185,113,171,144,185,193,251,144,185,1,76,145,185,48,156,145,185,78,236,145,185,91,60,146,185,88,140,146,185,67,220,146,185,29,44,147,185,231,123,147,185,159,203,147,185,
71,27,148,185,221,106,148,185,98,186,148,185,214,9,149,185,57,89,149,185,139,168,149,185,203,247,149,185,250,70,150,185,24,150,150,185,37,229,150,185,32,52,151,185,10,131,151,185,226,209,151,185,169,32,152,185,94,111,152,185,2,190,152,185,148,12,153,185,21,91,153,185,132,169,153,185,225,247,153,185,45,70,154,185,103,148,154,185,143,226,154,185,165,48,155,185,170,126,155,185,157,204,155,185,126,26,156,185,77,104,156,185,10,182,156,185,181,3,157,185,78,81,157,185,213,158,157,185,74,236,157,185,173,
57,158,185,254,134,158,185,60,212,158,185,105,33,159,185,131,110,159,185,139,187,159,185,129,8,160,185,100,85,160,185,53,162,160,185,244,238,160,185,160,59,161,185,58,136,161,185,193,212,161,185,54,33,162,185,153,109,162,185,233,185,162,185,38,6,163,185,80,82,163,185,104,158,163,185,110,234,163,185,96,54,164,185,64,130,164,185,13,206,164,185,199,25,165,185,111,101,165,185,3,177,165,185,133,252,165,185,244,71,166,185,80,147,166,185,153,222,166,185,206,41,167,185,241,116,167,185,1,192,167,185,254,10,
168,185,231,85,168,185,190,160,168,185,129,235,168,185,49,54,169,185,205,128,169,185,87,203,169,185,205,21,170,185,48,96,170,185,127,170,170,185,187,244,170,185,227,62,171,185,249,136,171,185,250,210,171,185,232,28,172,185,195,102,172,185,138,176,172,185,61,250,172,185,221,67,173,185,105,141,173,185,225,214,173,185,70,32,174,185,151,105,174,185,212,178,174,185,254,251,174,185,19,69,175,185,21,142,175,185,2,215,175,185,220,31,176,185,162,104,176,185,84,177,176,185,242,249,176,185,123,66,177,185,241,
138,177,185,83,211,177,185,160,27,178,185,218,99,178,185,255,171,178,185,16,244,178,185,12,60,179,185,245,131,179,185,201,203,179,185,137,19,180,185,52,91,180,185,203,162,180,185,78,234,180,185,188,49,181,185,22,121,181,185,91,192,181,185,140,7,182,185,168,78,182,185,175,149,182,185,162,220,182,185,129,35,183,185,74,106,183,185,255,176,183,185,159,247,183,185,43,62,184,185,162,132,184,185,3,203,184,185,80,17,185,185,137,87,185,185,172,157,185,185,186,227,185,185,180,41,186,185,152,111,186,185,103,
181,186,185,34,251,186,185,199,64,187,185,87,134,187,185,210,203,187,185,56,17,188,185,137,86,188,185,197,155,188,185,235,224,188,185,252,37,189,185,248,106,189,185,223,175,189,185,176,244,189,185,108,57,190,185,18,126,190,185,163,194,190,185,31,7,191,185,133,75,191,185,213,143,191,185,16,212,191,185,54,24,192,185,70,92,192,185,64,160,192,185,37,228,192,185,244,39,193,185,174,107,193,185,81,175,193,185,223,242,193,185,87,54,194,185,186,121,194,185,6,189,194,185,61,0,195,185,94,67,195,185,105,134,
195,185,94,201,195,185,61,12,196,185,6,79,196,185,185,145,196,185,86,212,196,185,221,22,197,185,78,89,197,185,169,155,197,185,237,221,197,185,28,32,198,185,52,98,198,185,54,164,198,185,34,230,198,185,247,39,199,185,183,105,199,185,96,171,199,185,242,236,199,185,111,46,200,185,212,111,200,185,36,177,200,185,93,242,200,185,127,51,201,185,139,116,201,185,129,181,201,185,96,246,201,185,40,55,202,185,218,119,202,185,117,184,202,185,250,248,202,185,103,57,203,185,190,121,203,185,255,185,203,185,40,250,
203,185,59,58,204,185,55,122,204,185,29,186,204,185,235,249,204,185,162,57,205,185,67,121,205,185,205,184,205,185,63,248,205,185,155,55,206,185,224,118,206,185,13,182,206,185,36,245,206,185,36,52,207,185,12,115,207,185,221,177,207,185,151,240,207,185,58,47,208,185,198,109,208,185,59,172,208,185,152,234,208,185,222,40,209,185,13,103,209,185,36,165,209,185,36,227,209,185,13,33,210,185,222,94,210,185,152,156,210,185,59,218,210,185,198,23,211,185,57,85,211,185,149,146,211,185,217,207,211,185,6,13,212,
185,28,74,212,185,25,135,212,185,255,195,212,185,206,0,213,185,132,61,213,185,35,122,213,185,170,182,213,185,26,243,213,185,113,47,214,185,177,107,214,185,217,167,214,185,234,227,214,185,226,31,215,185,194,91,215,185,139,151,215,185,59,211,215,185,212,14,216,185,85,74,216,185,189,133,216,185,14,193,216,185,70,252,216,185,103,55,217,185,111,114,217,185,95,173,217,185,55,232,217,185,247,34,218,185,159,93,218,185,46,152,218,185,166,210,218,185,4,13,219,185,75,71,219,185,121,129,219,185,143,187,219,185,
141,245,219,185,114,47,220,185,63,105,220,185,244,162,220,185,144,220,220,185,19,22,221,185,126,79,221,185,209,136,221,185,11,194,221,185,44,251,221,185,53,52,222,185,37,109,222,185,253,165,222,185,188,222,222,185,98,23,223,185,240,79,223,185,101,136,223,185,193,192,223,185,4,249,223,185,47,49,224,185,65,105,224,185,58,161,224,185,26,217,224,185,225,16,225,185,144,72,225,185,37,128,225,185,162,183,225,185,6,239,225,185,80,38,226,185,130,93,226,185,155,148,226,185,154,203,226,185,129,2,227,185,78,
57,227,185,3,112,227,185,158,166,227,185,32,221,227,185,137,19,228,185,217,73,228,185,15,128,228,185,45,182,228,185,49,236,228,185,28,34,229,185,237,87,229,185,165,141,229,185,68,195,229,185,202,248,229,185,54,46,230,185,137,99,230,185,194,152,230,185,226,205,230,185,232,2,231,185,213,55,231,185,169,108,231,185,99,161,231,185,3,214,231,185,138,10,232,185,248,62,232,185,75,115,232,185,134,167,232,185,166,219,232,185,173,15,233,185,154,67,233,185,110,119,233,185,39,171,233,185,199,222,233,185,78,18,
234,185,186,69,234,185,13,121,234,185,70,172,234,185,101,223,234,185,106,18,235,185,85,69,235,185,39,120,235,185,222,170,235,185,124,221,235,185,255,15,236,185,105,66,236,185,185,116,236,185,238,166,236,185,10,217,236,185,11,11,237,185,243,60,237,185,192,110,237,185,116,160,237,185,13,210,237,185,140,3,238,185,241,52,238,185,59,102,238,185,108,151,238,185,130,200,238,185,126,249,238,185,96,42,239,185,40,91,239,185,213,139,239,185,104,188,239,185,224,236,239,185,63,29,240,185,130,77,240,185,172,125,
240,185,187,173,240,185,176,221,240,185,138,13,241,185,74,61,241,185,239,108,241,185,122,156,241,185,234,203,241,185,64,251,241,185,123,42,242,185,156,89,242,185,162,136,242,185,141,183,242,185,94,230,242,185,20,21,243,185,176,67,243,185,49,114,243,185,151,160,243,185,226,206,243,185,19,253,243,185,41,43,244,185,36,89,244,185,5,135,244,185,202,180,244,185,117,226,244,185,5,16,245,185,122,61,245,185,213,106,245,185,20,152,245,185,57,197,245,185,66,242,245,185,49,31,246,185,5,76,246,185,189,120,246,
185,91,165,246,185,222,209,246,185,70,254,246,185,147,42,247,185,196,86,247,185,219,130,247,185,214,174,247,185,183,218,247,185,124,6,248,185,38,50,248,185,181,93,248,185,41,137,248,185,130,180,248,185,191,223,248,185,226,10,249,185,233,53,249,185,212,96,249,185,165,139,249,185,90,182,249,185,244,224,249,185,115,11,250,185,214,53,250,185,30,96,250,185,75,138,250,185,92,180,250,185,82,222,250,185,44,8,251,185,235,49,251,185,143,91,251,185,23,133,251,185,131,174,251,185,213,215,251,185,10,1,252,185,
36,42,252,185,35,83,252,185,6,124,252,185,206,164,252,185,122,205,252,185,10,246,252,185,127,30,253,185,216,70,253,185,21,111,253,185,55,151,253,185,61,191,253,185,40,231,253,185,247,14,254,185,170,54,254,185,65,94,254,185,189,133,254,185,29,173,254,185,97,212,254,185,137,251,254,185,149,34,255,185,134,73,255,185,91,112,255,185,20,151,255,185,177,189,255,185,51,228,255,185,76,5,0,186,113,24,0,186,136,43,0,186,144,62,0,186,139,81,0,186,120,100,0,186,87,119,0,186,40,138,0,186,235,156,0,186,160,175,
0,186,71,194,0,186,224,212,0,186,107,231,0,186,231,249,0,186,86,12,1,186,183,30,1,186,10,49,1,186,78,67,1,186,133,85,1,186,173,103,1,186,200,121,1,186,212,139,1,186,210,157,1,186,194,175,1,186,164,193,1,186,120,211,1,186,62,229,1,186,246,246,1,186,159,8,2,186,59,26,2,186,200,43,2,186,71,61,2,186,184,78,2,186,27,96,2,186,111,113,2,186,182,130,2,186,238,147,2,186,24,165,2,186,52,182,2,186,66,199,2,186,65,216,2,186,50,233,2,186,21,250,2,186,234,10,3,186,177,27,3,186,105,44,3,186,19,61,3,186,175,77,3,
186,61,94,3,186,188,110,3,186,45,127,3,186,144,143,3,186,228,159,3,186,43,176,3,186,99,192,3,186,140,208,3,186,167,224,3,186,180,240,3,186,179,0,4,186,164,16,4,186,134,32,4,186,89,48,4,186,31,64,4,186,214,79,4,186,126,95,4,186,25,111,4,186,165,126,4,186,34,142,4,186,146,157,4,186,242,172,4,186,69,188,4,186,137,203,4,186,191,218,4,186,230,233,4,186,255,248,4,186,9,8,5,186,6,23,5,186,243,37,5,186,210,52,5,186,163,67,5,186,102,82,5,186,26,97,5,186,191,111,5,186,86,126,5,186,223,140,5,186,89,155,5,186,
196,169,5,186,34,184,5,186,112,198,5,186,177,212,5,186,226,226,5,186,6,241,5,186,26,255,5,186,33,13,6,186,24,27,6,186,1,41,6,186,220,54,6,186,168,68,6,186,102,82,6,186,21,96,6,186,182,109,6,186,72,123,6,186,203,136,6,186,64,150,6,186,167,163,6,186,255,176,6,186,72,190,6,186,131,203,6,186,175,216,6,186,204,229,6,186,219,242,6,186,220,255,6,186,206,12,7,186,177,25,7,186,134,38,7,186,76,51,7,186,3,64,7,186,172,76,7,186,70,89,7,186,210,101,7,186,78,114,7,186,189,126,7,186,28,139,7,186,110,151,7,186,176,
163,7,186,228,175,7,186,9,188,7,186,31,200,7,186,39,212,7,186,32,224,7,186,11,236,7,186,230,247,7,186,180,3,8,186,114,15,8,186,34,27,8,186,195,38,8,186,85,50,8,186,217,61,8,186,78,73,8,186,180,84,8,186,12,96,8,186,85,107,8,186,143,118,8,186,186,129,8,186,215,140,8,186,229,151,8,186,228,162,8,186,213,173,8,186,183,184,8,186,138,195,8,186,78,206,8,186,4,217,8,186,170,227,8,186,66,238,8,186,204,248,8,186,70,3,9,186,178,13,9,186,15,24,9,186,93,34,9,186,157,44,9,186,206,54,9,186,240,64,9,186,3,75,9,186,
7,85,9,186,253,94,9,186,228,104,9,186,188,114,9,186,133,124,9,186,63,134,9,186,235,143,9,186,135,153,9,186,21,163,9,186,149,172,9,186,5,182,9,186,102,191,9,186,185,200,9,186,253,209,9,186,50,219,9,186,88,228,9,186,112,237,9,186,120,246,9,186,114,255,9,186,93,8,10,186,57,17,10,186,6,26,10,186,196,34,10,186,116,43,10,186,20,52,10,186,166,60,10,186,41,69,10,186,157,77,10,186,2,86,10,186,88,94,10,186,160,102,10,186,216,110,10,186,2,119,10,186,29,127,10,186,41,135,10,186,38,143,10,186,20,151,10,186,243,
158,10,186,195,166,10,186,133,174,10,186,55,182,10,186,219,189,10,186,112,197,10,186,246,204,10,186,109,212,10,186,213,219,10,186,46,227,10,186,120,234,10,186,179,241,10,186,224,248,10,186,253,255,10,186,12,7,11,186,11,14,11,186,252,20,11,186,222,27,11,186,177,34,11,186,117,41,11,186,42,48,11,186,208,54,11,186,103,61,11,186,239,67,11,186,104,74,11,186,211,80,11,186,46,87,11,186,123,93,11,186,184,99,11,186,231,105,11,186,6,112,11,186,23,118,11,186,25,124,11,186,11,130,11,186,239,135,11,186,196,141,
11,186,138,147,11,186,65,153,11,186,233,158,11,186,130,164,11,186,12,170,11,186,135,175,11,186,243,180,11,186,80,186,11,186,158,191,11,186,222,196,11,186,14,202,11,186,47,207,11,186,65,212,11,186,69,217,11,186,57,222,11,186,31,227,11,186,245,231,11,186,188,236,11,186,117,241,11,186,30,246,11,186,185,250,11,186,68,255,11,186,193,3,12,186,46,8,12,186,141,12,12,186,220,16,12,186,29,21,12,186,79,25,12,186,113,29,12,186,133,33,12,186,138,37,12,186,127,41,12,186,102,45,12,186,62,49,12,186,6,53,12,186,192,
56,12,186,107,60,12,186,6,64,12,186,147,67,12,186,17,71,12,186,127,74,12,186,223,77,12,186,48,81,12,186,114,84,12,186,164,87,12,186,200,90,12,186,221,93,12,186,226,96,12,186,217,99,12,186,193,102,12,186,154,105,12,186,99,108,12,186,30,111,12,186,202,113,12,186,103,116,12,186,244,118,12,186,115,121,12,186,227,123,12,186,68,126,12,186,149,128,12,186,216,130,12,186,12,133,12,186,49,135,12,186,70,137,12,186,77,139,12,186,69,141,12,186,46,143,12,186,7,145,12,186,210,146,12,186,142,148,12,186,59,150,12,
186,216,151,12,186,103,153,12,186,231,154,12,186,88,156,12,186,185,157,12,186,12,159,12,186,80,160,12,186,133,161,12,186,171,162,12,186,193,163,12,186,201,164,12,186,194,165,12,186,172,166,12,186,135,167,12,186,82,168,12,186,15,169,12,186,189,169,12,186,92,170,12,186,236,170,12,186,109,171,12,186,223,171,12,186,66,172,12,186,150,172,12,186,218,172,12,186,16,173,12,186,55,173,12,186,79,173,12,186,88,173,12,186,82,173,12,186,61,173,12,186,26,173,12,186,231,172,12,186,165,172,12,186,84,172,12,186,244,
171,12,186,133,171,12,186,7,171,12,186,123,170,12,186,223,169,12,186,52,169,12,186,123,168,12,186,178,167,12,186,218,166,12,186,244,165,12,186,254,164,12,186,250,163,12,186,231,162,12,186,196,161,12,186,147,160,12,186,83,159,12,186,3,158,12,186,165,156,12,186,56,155,12,186,188,153,12,186,49,152,12,186,151,150,12,186,238,148,12,186,54,147,12,186,111,145,12,186,153,143,12,186,181,141,12,186,193,139,12,186,190,137,12,186,173,135,12,186,141,133,12,186,93,131,12,186,31,129,12,186,210,126,12,186,118,124,
12,186,11,122,12,186,145,119,12,186,8,117,12,186,112,114,12,186,201,111,12,186,20,109,12,186,79,106,12,186,124,103,12,186,153,100,12,186,168,97,12,186,168,94,12,186,153,91,12,186,123,88,12,186,78,85,12,186,18,82,12,186,200,78,12,186,110,75,12,186,6,72,12,186,143,68,12,186,9,65,12,186,116,61,12,186,208,57,12,186,29,54,12,186,91,50,12,186,139,46,12,186,172,42,12,186,189,38,12,186,192,34,12,186,180,30,12,186,154,26,12,186,112,22,12,186,55,18,12,186,240,13,12,186,154,9,12,186,53,5,12,186,193,0,12,186,
62,252,11,186,173,247,11,186,13,243,11,186,93,238,11,186,159,233,11,186,211,228,11,186,247,223,11,186,12,219,11,186,19,214,11,186,11,209,11,186,244,203,11,186,207,198,11,186,154,193,11,186,87,188,11,186,5,183,11,186,164,177,11,186,52,172,11,186,182,166,11,186,41,161,11,186,141,155,11,186,226,149,11,186,41,144,11,186,96,138,11,186,137,132,11,186,164,126,11,186,175,120,11,186,172,114,11,186,154,108,11,186,121,102,11,186,73,96,11,186,11,90,11,186,190,83,11,186,98,77,11,186,248,70,11,186,127,64,11,186,
247,57,11,186,96,51,11,186,187,44,11,186,7,38,11,186,68,31,11,186,114,24,11,186,146,17,11,186,163,10,11,186,166,3,11,186,153,252,10,186,127,245,10,186,85,238,10,186,29,231,10,186,214,223,10,186,128,216,10,186,28,209,10,186,169,201,10,186,39,194,10,186,151,186,10,186,248,178,10,186,75,171,10,186,142,163,10,186,196,155,10,186,234,147,10,186,2,140,10,186,11,132,10,186,6,124,10,186,242,115,10,186,208,107,10,186,158,99,10,186,95,91,10,186,16,83,10,186,180,74,10,186,72,66,10,186,206,57,10,186,69,49,10,
186,174,40,10,186,8,32,10,186,84,23,10,186,145,14,10,186,191,5,10,186,223,252,9,186,241,243,9,186,244,234,9,186,232,225,9,186,206,216,9,186,165,207,9,186,110,198,9,186,40,189,9,186,212,179,9,186,113,170,9,186,0,161,9,186,128,151,9,186,241,141,9,186,85,132,9,186,169,122,9,186,240,112,9,186,39,103,9,186,81,93,9,186,108,83,9,186,120,73,9,186,118,63,9,186,101,53,9,186,70,43,9,186,25,33,9,186,221,22,9,186,147,12,9,186,58,2,9,186,211,247,8,186,94,237,8,186,218,226,8,186,71,216,8,186,167,205,8,186,248,194,
8,186,58,184,8,186,110,173,8,186,148,162,8,186,171,151,8,186,180,140,8,186,175,129,8,186,155,118,8,186,121,107,8,186,73,96,8,186,10,85,8,186,189,73,8,186,98,62,8,186,248,50,8,186,128,39,8,186,250,27,8,186,101,16,8,186,194,4,8,186,17,249,7,186,82,237,7,186,132,225,7,186,168,213,7,186,189,201,7,186,197,189,7,186,190,177,7,186,169,165,7,186,134,153,7,186,84,141,7,186,20,129,7,186,198,116,7,186,106,104,7,186,255,91,7,186,135,79,7,186,0,67,7,186,107,54,7,186,200,41,7,186,22,29,7,186,87,16,7,186,137,3,
7,186,173,246,6,186,195,233,6,186,203,220,6,186,196,207,6,186,176,194,6,186,141,181,6,186,92,168,6,186,29,155,6,186,208,141,6,186,117,128,6,186,12,115,6,186,148,101,6,186,15,88,6,186,123,74,6,186,218,60,6,186,42,47,6,186,109,33,6,186,161,19,6,186,199,5,6,186,223,247,5,186,233,233,5,186,229,219,5,186,211,205,5,186,179,191,5,186,133,177,5,186,73,163,5,186,255,148,5,186,167,134,5,186,66,120,5,186,206,105,5,186,76,91,5,186,188,76,5,186,30,62,5,186,114,47,5,186,185,32,5,186,241,17,5,186,28,3,5,186,56,
244,4,186,71,229,4,186,72,214,4,186,58,199,4,186,31,184,4,186,246,168,4,186,192,153,4,186,123,138,4,186,40,123,4,186,200,107,4,186,90,92,4,186,222,76,4,186,84,61,4,186,188,45,4,186,23,30,4,186,99,14,4,186,162,254,3,186,211,238,3,186,246,222,3,186,12,207,3,186,20,191,3,186,14,175,3,186,250,158,3,186,216,142,3,186,169,126,3,186,108,110,3,186,33,94,3,186,201,77,3,186,99,61,3,186,239,44,3,186,109,28,3,186,222,11,3,186,65,251,2,186,150,234,2,186,222,217,2,186,24,201,2,186,68,184,2,186,99,167,2,186,116,
150,2,186,120,133,2,186,110,116,2,186,86,99,2,186,49,82,2,186,254,64,2,186,189,47,2,186,111,30,2,186,20,13,2,186,170,251,1,186,52,234,1,186,175,216,1,186,30,199,1,186,126,181,1,186,209,163,1,186,23,146,1,186,79,128,1,186,122,110,1,186,151,92,1,186,166,74,1,186,169,56,1,186,157,38,1,186,133,20,1,186,94,2,1,186,43,240,0,186,234,221,0,186,155,203,0,186,63,185,0,186,214,166,0,186,95,148,0,186,219,129,0,186,74,111,0,186,171,92,0,186,255,73,0,186,69,55,0,186,127,36,0,186,170,17,0,186,146,253,255,185,180,
215,255,185,188,177,255,185,169,139,255,185,124,101,255,185,52,63,255,185,209,24,255,185,84,242,254,185,188,203,254,185,10,165,254,185,62,126,254,185,87,87,254,185,85,48,254,185,57,9,254,185,3,226,253,185,178,186,253,185,71,147,253,185,194,107,253,185,34,68,253,185,104,28,253,185,148,244,252,185,165,204,252,185,156,164,252,185,121,124,252,185,60,84,252,185,228,43,252,185,115,3,252,185,231,218,251,185,65,178,251,185,129,137,251,185,166,96,251,185,178,55,251,185,164,14,251,185,123,229,250,185,57,188,
250,185,220,146,250,185,102,105,250,185,213,63,250,185,43,22,250,185,102,236,249,185,136,194,249,185,144,152,249,185,126,110,249,185,82,68,249,185,12,26,249,185,172,239,248,185,51,197,248,185,160,154,248,185,243,111,248,185,44,69,248,185,76,26,248,185,82,239,247,185,62,196,247,185,16,153,247,185,201,109,247,185,104,66,247,185,238,22,247,185,90,235,246,185,172,191,246,185,229,147,246,185,5,104,246,185,10,60,246,185,247,15,246,185,202,227,245,185,131,183,245,185,35,139,245,185,170,94,245,185,23,50,
245,185,107,5,245,185,165,216,244,185,198,171,244,185,206,126,244,185,189,81,244,185,146,36,244,185,78,247,243,185,241,201,243,185,122,156,243,185,235,110,243,185,66,65,243,185,128,19,243,185,165,229,242,185,177,183,242,185,164,137,242,185,126,91,242,185,62,45,242,185,230,254,241,185,117,208,241,185,234,161,241,185,71,115,241,185,139,68,241,185,182,21,241,185,200,230,240,185,193,183,240,185,161,136,240,185,104,89,240,185,23,42,240,185,173,250,239,185,42,203,239,185,142,155,239,185,218,107,239,185,
13,60,239,185,39,12,239,185,41,220,238,185,17,172,238,185,226,123,238,185,153,75,238,185,57,27,238,185,191,234,237,185,45,186,237,185,131,137,237,185,192,88,237,185,228,39,237,185,240,246,236,185,228,197,236,185,191,148,236,185,130,99,236,185,45,50,236,185,191,0,236,185,57,207,235,185,155,157,235,185,228,107,235,185,21,58,235,185,46,8,235,185,47,214,234,185,23,164,234,185,232,113,234,185,160,63,234,185,64,13,234,185,200,218,233,185,56,168,233,185,144,117,233,185,208,66,233,185,248,15,233,185,8,221,
232,185,0,170,232,185,224,118,232,185,168,67,232,185,89,16,232,185,241,220,231,185,114,169,231,185,218,117,231,185,43,66,231,185,101,14,231,185,134,218,230,185,144,166,230,185,130,114,230,185,92,62,230,185,31,10,230,185,202,213,229,185,94,161,229,185,218,108,229,185,62,56,229,185,139,3,229,185,192,206,228,185,222,153,228,185,228,100,228,185,211,47,228,185,171,250,227,185,107,197,227,185,20,144,227,185,165,90,227,185,31,37,227,185,130,239,226,185,205,185,226,185,1,132,226,185,31,78,226,185,36,24,226,
185,19,226,225,185,234,171,225,185,171,117,225,185,84,63,225,185,230,8,225,185,97,210,224,185,197,155,224,185,18,101,224,185,72,46,224,185,103,247,223,185,112,192,223,185,97,137,223,185,59,82,223,185,255,26,223,185,171,227,222,185,65,172,222,185,192,116,222,185,40,61,222,185,122,5,222,185,181,205,221,185,217,149,221,185,230,93,221,185,221,37,221,185,189,237,220,185,135,181,220,185,58,125,220,185,214,68,220,185,92,12,220,185,204,211,219,185,37,155,219,185,103,98,219,185,148,41,219,185,169,240,218,
185,169,183,218,185,146,126,218,185,100,69,218,185,33,12,218,185,199,210,217,185,87,153,217,185,209,95,217,185,52,38,217,185,129,236,216,185,185,178,216,185,218,120,216,185,229,62,216,185,217,4,216,185,184,202,215,185,129,144,215,185,52,86,215,185,209,27,215,185,88,225,214,185,201,166,214,185,36,108,214,185,106,49,214,185,153,246,213,185,179,187,213,185,183,128,213,185,165,69,213,185,125,10,213,185,64,207,212,185,237,147,212,185,132,88,212,185,6,29,212,185,114,225,211,185,201,165,211,185,10,106,211,
185,53,46,211,185,75,242,210,185,76,182,210,185,55,122,210,185,13,62,210,185,205,1,210,185,120,197,209,185,14,137,209,185,142,76,209,185,249,15,209,185,79,211,208,185,143,150,208,185,186,89,208,185,209,28,208,185,210,223,207,185,189,162,207,185,148,101,207,185,86,40,207,185,3,235,206,185,154,173,206,185,29,112,206,185,139,50,206,185,227,244,205,185,39,183,205,185,86,121,205,185,112,59,205,185,118,253,204,185,102,191,204,185,66,129,204,185,9,67,204,185,187,4,204,185,89,198,203,185,226,135,203,185,
86,73,203,185,182,10,203,185,1,204,202,185,55,141,202,185,89,78,202,185,103,15,202,185,96,208,201,185,68,145,201,185,21,82,201,185,208,18,201,185,120,211,200,185,11,148,200,185,138,84,200,185,244,20,200,185,74,213,199,185,140,149,199,185,186,85,199,185,212,21,199,185,218,213,198,185,203,149,198,185,168,85,198,185,114,21,198,185,39,213,197,185,200,148,197,185,85,84,197,185,207,19,197,185,52,211,196,185,134,146,196,185,196,81,196,185,237,16,196,185,3,208,195,185,6,143,195,185,244,77,195,185,207,12,
195,185,150,203,194,185,74,138,194,185,234,72,194,185,118,7,194,185,239,197,193,185,84,132,193,185,165,66,193,185,227,0,193,185,14,191,192,185,37,125,192,185,41,59,192,185,26,249,191,185,247,182,191,185,193,116,191,185,119,50,191,185,26,240,190,185,170,173,190,185,39,107,190,185,145,40,190,185,231,229,189,185,43,163,189,185,91,96,189,185,120,29,189,185,130,218,188,185,122,151,188,185,94,84,188,185,47,17,188,185,238,205,187,185,153,138,187,185,50,71,187,185,184,3,187,185,43,192,186,185,139,124,186,
185,217,56,186,185,19,245,185,185,60,177,185,185,81,109,185,185,84,41,185,185,68,229,184,185,34,161,184,185,237,92,184,185,166,24,184,185,76,212,183,185,224,143,183,185,98,75,183,185,209,6,183,185,45,194,182,185,120,125,182,185,176,56,182,185,214,243,181,185,233,174,181,185,235,105,181,185,218,36,181,185,183,223,180,185,130,154,180,185,59,85,180,185,226,15,180,185,118,202,179,185,249,132,179,185,106,63,179,185,201,249,178,185,22,180,178,185,81,110,178,185,122,40,178,185,146,226,177,185,152,156,177,
185,139,86,177,185,110,16,177,185,62,202,176,185,253,131,176,185,170,61,176,185,70,247,175,185,208,176,175,185,73,106,175,185,176,35,175,185,5,221,174,185,73,150,174,185,124,79,174,185,158,8,174,185,173,193,173,185,172,122,173,185,153,51,173,185,118,236,172,185,64,165,172,185,250,93,172,185,163,22,172,185,58,207,171,185,192,135,171,185,53,64,171,185,153,248,170,185,236,176,170,185,47,105,170,185,96,33,170,185,128,217,169,185,143,145,169,185,142,73,169,185,123,1,169,185,88,185,168,185,36,113,168,185,
224,40,168,185,138,224,167,185,36,152,167,185,174,79,167,185,38,7,167,185,142,190,166,185,230,117,166,185,45,45,166,185,100,228,165,185,138,155,165,185,160,82,165,185,165,9,165,185,154,192,164,185,126,119,164,185,83,46,164,185,23,229,163,185,203,155,163,185,110,82,163,185,2,9,163,185,133,191,162,185,248,117,162,185,91,44,162,185,174,226,161,185,241,152,161,185,36,79,161,185,71,5,161,185,91,187,160,185,94,113,160,185,81,39,160,185,53,221,159,185,9,147,159,185,205,72,159,185,129,254,158,185,38,180,
158,185,187,105,158,185,64,31,158,185,182,212,157,185,28,138,157,185,115,63,157,185,186,244,156,185,242,169,156,185,26,95,156,185,51,20,156,185,60,201,155,185,54,126,155,185,33,51,155,185,253,231,154,185,201,156,154,185,134,81,154,185,52,6,154,185,211,186,153,185,98,111,153,185,227,35,153,185,84,216,152,185,183,140,152,185,10,65,152,185,79,245,151,185,132,169,151,185,171,93,151,185,195,17,151,185,204,197,150,185,198,121,150,185,177,45,150,185,142,225,149,185,92,149,149,185,28,73,149,185,204,252,148,
185,110,176,148,185,2,100,148,185,135,23,148,185,254,202,147,185,102,126,147,185,191,49,147,185,11,229,146,185,72,152,146,185,118,75,146,185,150,254,145,185,168,177,145,185,172,100,145,185,162,23,145,185,137,202,144,185,98,125,144,185,45,48,144,185,235,226,143,185,154,149,143,185,59,72,143,185,206,250,142,185,83,173,142,185,202,95,142,185,51,18,142,185,143,196,141,185,221,118,141,185,28,41,141,185,79,219,140,185,115,141,140,185,138,63,140,185,147,241,139,185,143,163,139,185,125,85,139,185,93,7,139,
185,48,185,138,185,246,106,138,185,174,28,138,185,88,206,137,185,245,127,137,185,133,49,137,185,8,227,136,185,125,148,136,185,229,69,136,185,64,247,135,185,142,168,135,185,207,89,135,185,2,11,135,185,41,188,134,185,66,109,134,185,78,30,134,185,78,207,133,185,64,128,133,185,38,49,133,185,254,225,132,185,202,146,132,185,137,67,132,185,60,244,131,185,225,164,131,185,122,85,131,185,6,6,131,185,134,182,130,185,249,102,130,185,95,23,130,185,185,199,129,185,7,120,129,185,71,40,129,185,124,216,128,185,164,
136,128,185,192,56,128,185,158,209,127,185,165,49,127,185,146,145,126,185,104,241,125,185,37,81,125,185,201,176,124,185,86,16,124,185,202,111,123,185,38,207,122,185,106,46,122,185,150,141,121,185,170,236,120,185],"i8",4,y.a+778240);
Q([167,75,120,185,139,170,119,185,88,9,119,185,13,104,118,185,171,198,117,185,49,37,117,185,160,131,116,185,248,225,115,185,56,64,115,185,97,158,114,185,115,252,113,185,109,90,113,185,81,184,112,185,30,22,112,185,212,115,111,185,115,209,110,185,251,46,110,185,109,140,109,185,200,233,108,185,13,71,108,185,59,164,107,185,83,1,107,185,84,94,106,185,63,187,105,185,21,24,105,185,211,116,104,185,124,209,103,185,15,46,103,185,140,138,102,185,244,230,101,185,69,67,101,185,129,159,100,185,167,251,99,185,183,
87,99,185,178,179,98,185,152,15,98,185,105,107,97,185,36,199,96,185,201,34,96,185,90,126,95,185,214,217,94,185,60,53,94,185,142,144,93,185,203,235,92,185,243,70,92,185,7,162,91,185,5,253,90,185,240,87,90,185,197,178,89,185,134,13,89,185,51,104,88,185,204,194,87,185,80,29,87,185,192,119,86,185,28,210,85,185,101,44,85,185,153,134,84,185,185,224,83,185,197,58,83,185,190,148,82,185,163,238,81,185,117,72,81,185,51,162,80,185,221,251,79,185,116,85,79,185,248,174,78,185,105,8,78,185,198,97,77,185,17,187,
76,185,72,20,76,185,108,109,75,185,126,198,74,185,124,31,74,185,104,120,73,185,65,209,72,185,8,42,72,185,188,130,71,185,94,219,70,185,237,51,70,185,106,140,69,185,212,228,68,185,45,61,68,185,115,149,67,185,167,237,66,185,202,69,66,185,218,157,65,185,217,245,64,185,198,77,64,185,161,165,63,185,107,253,62,185,35,85,62,185,201,172,61,185,94,4,61,185,226,91,60,185,85,179,59,185,182,10,59,185,7,98,58,185,70,185,57,185,116,16,57,185,146,103,56,185,158,190,55,185,154,21,55,185,133,108,54,185,96,195,53,185,
42,26,53,185,227,112,52,185,140,199,51,185,37,30,51,185,174,116,50,185,38,203,49,185,142,33,49,185,230,119,48,185,47,206,47,185,103,36,47,185,143,122,46,185,168,208,45,185,177,38,45,185,171,124,44,185,149,210,43,185,111,40,43,185,58,126,42,185,246,211,41,185,162,41,41,185,64,127,40,185,206,212,39,185,77,42,39,185,189,127,38,185,31,213,37,185,113,42,37,185,181,127,36,185,234,212,35,185,16,42,35,185,40,127,34,185,50,212,33,185,45,41,33,185,25,126,32,185,248,210,31,185,200,39,31,185,139,124,30,185,63,
209,29,185,229,37,29,185,125,122,28,185,8,207,27,185,133,35,27,185,244,119,26,185,86,204,25,185,170,32,25,185,240,116,24,185,41,201,23,185,85,29,23,185,116,113,22,185,134,197,21,185,138,25,21,185,129,109,20,185,108,193,19,185,74,21,19,185,26,105,18,185,222,188,17,185,150,16,17,185,65,100,16,185,223,183,15,185,113,11,15,185,246,94,14,185,112,178,13,185,221,5,13,185,62,89,12,185,147,172,11,185,219,255,10,185,24,83,10,185,73,166,9,185,111,249,8,185,136,76,8,185,150,159,7,185,152,242,6,185,143,69,6,185,
123,152,5,185,91,235,4,185,48,62,4,185,249,144,3,185,184,227,2,185,107,54,2,185,20,137,1,185,177,219,0,185,68,46,0,185,151,1,255,184,146,166,253,184,119,75,252,184,71,240,250,184,3,149,249,184,169,57,248,184,59,222,246,184,184,130,245,184,33,39,244,184,118,203,242,184,183,111,241,184,227,19,240,184,252,183,238,184,2,92,237,184,243,255,235,184,210,163,234,184,157,71,233,184,86,235,231,184,251,142,230,184,142,50,229,184,14,214,227,184,123,121,226,184,214,28,225,184,31,192,223,184,86,99,222,184,124,
6,221,184,143,169,219,184,145,76,218,184,129,239,216,184,96,146,215,184,46,53,214,184,235,215,212,184,152,122,211,184,51,29,210,184,190,191,208,184,56,98,207,184,162,4,206,184,253,166,204,184,71,73,203,184,129,235,201,184,172,141,200,184,199,47,199,184,210,209,197,184,207,115,196,184,188,21,195,184,154,183,193,184,106,89,192,184,43,251,190,184,221,156,189,184,130,62,188,184,23,224,186,184,159,129,185,184,25,35,184,184,133,196,182,184,228,101,181,184,53,7,180,184,120,168,178,184,175,73,177,184,216,
234,175,184,245,139,174,184,5,45,173,184,8,206,171,184,255,110,170,184,233,15,169,184,199,176,167,184,154,81,166,184,96,242,164,184,27,147,163,184,202,51,162,184,110,212,160,184,6,117,159,184,147,21,158,184,22,182,156,184,141,86,155,184,250,246,153,184,92,151,152,184,180,55,151,184,2,216,149,184,69,120,148,184,127,24,147,184,175,184,145,184,213,88,144,184,241,248,142,184,4,153,141,184,14,57,140,184,15,217,138,184,7,121,137,184,247,24,136,184,221,184,134,184,187,88,133,184,145,248,131,184,95,152,130,
184,36,56,129,184,196,175,127,184,47,239,124,184,140,46,122,184,218,109,119,184,25,173,116,184,73,236,113,184,108,43,111,184,129,106,108,184,137,169,105,184,131,232,102,184,113,39,100,184,82,102,97,184,38,165,94,184,239,227,91,184,172,34,89,184,94,97,86,184,5,160,83,184,160,222,80,184,50,29,78,184,185,91,75,184,54,154,72,184,170,216,69,184,20,23,67,184,117,85,64,184,206,147,61,184,30,210,58,184,102,16,56,184,166,78,53,184,223,140,50,184,16,203,47,184,58,9,45,184,94,71,42,184,123,133,39,184,147,195,
36,184,164,1,34,184,176,63,31,184,183,125,28,184,185,187,25,184,182,249,22,184,175,55,20,184,164,117,17,184,149,179,14,184,130,241,11,184,109,47,9,184,85,109,6,184,58,171,3,184,29,233,0,184,251,77,252,183,186,201,246,183,118,69,241,183,47,193,235,183,231,60,230,183,158,184,224,183,85,52,219,183,11,176,213,183,195,43,208,183,124,167,202,183,55,35,197,183,244,158,191,183,180,26,186,183,121,150,180,183,65,18,175,183,14,142,169,183,225,9,164,183,186,133,158,183,154,1,153,183,128,125,147,183,111,249,141,
183,102,117,136,183,102,241,130,183,223,218,122,183,6,211,111,183,67,203,100,183,150,195,89,183,2,188,78,183,134,180,67,183,37,173,56,183,222,165,45,183,181,158,34,183,169,151,23,183,188,144,12,183,239,137,1,183,135,6,237,182,116,249,214,182,169,236,192,182,39,224,170,182,241,211,148,182,18,144,125,182,227,120,81,182,90,98,37,182,247,152,242,181,151,110,154,181,63,139,4,181,59,15,47,52,232,15,92,53,125,44,198,53,189,39,15,54,111,56,59,54,82,72,103,54,176,171,137,54,203,178,159,54,119,185,181,54,177,
191,203,54,120,197,225,54,201,202,247,54,209,231,6,55,0,234,17,55,240,235,28,55,161,237,39,55,17,239,50,55,63,240,61,55,42,241,72,55,208,241,83,55,49,242,94,55,75,242,105,55,30,242,116,55,167,241,127,55,115,120,133,55,237,247,138,55,65,119,144,55,110,246,149,55,116,117,155,55,81,244,160,55,6,115,166,55,146,241,171,55,244,111,177,55,44,238,182,55,57,108,188,55,26,234,193,55,207,103,199,55,88,229,204,55,179,98,210,55,225,223,215,55,224,92,221,55,176,217,226,55,80,86,232,55,193,210,237,55,1,79,243,55,
15,203,248,55,236,70,254,55,75,225,1,56,6,159,4,56,168,92,7,56,48,26,10,56,157,215,12,56,239,148,15,56,39,82,18,56,67,15,21,56,68,204,23,56,41,137,26,56,241,69,29,56,158,2,32,56,45,191,34,56,160,123,37,56,245,55,40,56,45,244,42,56,71,176,45,56,67,108,48,56,32,40,51,56,222,227,53,56,126,159,56,56,254,90,59,56,94,22,62,56,159,209,64,56,192,140,67,56,191,71,70,56,159,2,73,56,93,189,75,56,250,119,78,56,117,50,81,56,206,236,83,56,5,167,86,56,26,97,89,56,12,27,92,56,218,212,94,56,134,142,97,56,14,72,100,
56,113,1,103,56,177,186,105,56,204,115,108,56,194,44,111,56,148,229,113,56,63,158,116,56,197,86,119,56,38,15,122,56,96,199,124,56,115,127,127,56,176,27,129,56,147,119,130,56,98,211,131,56,29,47,133,56,196,138,134,56,87,230,135,56,214,65,137,56,65,157,138,56,151,248,139,56,216,83,141,56,4,175,142,56,28,10,144,56,30,101,145,56,11,192,146,56,227,26,148,56,165,117,149,56,81,208,150,56,232,42,152,56,104,133,153,56,211,223,154,56,39,58,156,56,101,148,157,56,140,238,158,56,157,72,160,56,150,162,161,56,121,
252,162,56,68,86,164,56,249,175,165,56,150,9,167,56,27,99,168,56,137,188,169,56,223,21,171,56,28,111,172,56,66,200,173,56,80,33,175,56,69,122,176,56,33,211,177,56,229,43,179,56,144,132,180,56,34,221,181,56,155,53,183,56,251,141,184,56,65,230,185,56,110,62,187,56,129,150,188,56,123,238,189,56,90,70,191,56,31,158,192,56,202,245,193,56,91,77,195,56,209,164,196,56,44,252,197,56,109,83,199,56,147,170,200,56,157,1,202,56,140,88,203,56,96,175,204,56,25,6,206,56,182,92,207,56,55,179,208,56,156,9,210,56,229,
95,211,56,18,182,212,56,34,12,214,56,22,98,215,56,237,183,216,56,168,13,218,56,69,99,219,56,198,184,220,56,41,14,222,56,111,99,223,56,152,184,224,56,163,13,226,56,144,98,227,56,95,183,228,56,17,12,230,56,164,96,231,56,24,181,232,56,111,9,234,56,166,93,235,56,191,177,236,56,185,5,238,56,149,89,239,56,80,173,240,56,237,0,242,56,106,84,243,56,200,167,244,56,6,251,245,56,36,78,247,56,34,161,248,56,0,244,249,56,190,70,251,56,91,153,252,56,216,235,253,56,52,62,255,56,55,72,0,57,69,241,0,57,65,154,1,57,
45,67,2,57,8,236,2,57,211,148,3,57,141,61,4,57,53,230,4,57,205,142,5,57,84,55,6,57,202,223,6,57,46,136,7,57,130,48,8,57,196,216,8,57,244,128,9,57,19,41,10,57,33,209,10,57,29,121,11,57,7,33,12,57,224,200,12,57,167,112,13,57,92,24,14,57,255,191,14,57,144,103,15,57,15,15,16,57,124,182,16,57,215,93,17,57,31,5,18,57,85,172,18,57,121,83,19,57,138,250,19,57,137,161,20,57,117,72,21,57,78,239,21,57,21,150,22,57,201,60,23,57,106,227,23,57,248,137,24,57,115,48,25,57,219,214,25,57,47,125,26,57,113,35,27,57,159,
201,27,57,186,111,28,57,193,21,29,57,181,187,29,57,149,97,30,57,98,7,31,57,27,173,31,57,192,82,32,57,82,248,32,57,207,157,33,57,57,67,34,57,142,232,34,57,208,141,35,57,253,50,36,57,22,216,36,57,27,125,37,57,11,34,38,57,231,198,38,57,174,107,39,57,97,16,40,57,255,180,40,57,136,89,41,57,253,253,41,57,93,162,42,57,168,70,43,57,222,234,43,57,254,142,44,57,10,51,45,57,1,215,45,57,226,122,46,57,174,30,47,57,101,194,47,57,6,102,48,57,146,9,49,57,8,173,49,57,104,80,50,57,179,243,50,57,232,150,51,57,7,58,
52,57,16,221,52,57,3,128,53,57,224,34,54,57,168,197,54,57,88,104,55,57,243,10,56,57,119,173,56,57,229,79,57,57,61,242,57,57,126,148,58,57,168,54,59,57,188,216,59,57,185,122,60,57,159,28,61,57,111,190,61,57,39,96,62,57,201,1,63,57,84,163,63,57,199,68,64,57,35,230,64,57,104,135,65,57,150,40,66,57,172,201,66,57,171,106,67,57,147,11,68,57,99,172,68,57,27,77,69,57,188,237,69,57,68,142,70,57,181,46,71,57,15,207,71,57,80,111,72,57,121,15,73,57,138,175,73,57,131,79,74,57,100,239,74,57,44,143,75,57,220,46,
76,57,116,206,76,57,243,109,77,57,90,13,78,57,168,172,78,57,221,75,79,57,250,234,79,57,254,137,80,57,233,40,81,57,187,199,81,57,116,102,82,57,20,5,83,57,155,163,83,57,9,66,84,57,93,224,84,57,152,126,85,57,186,28,86,57,195,186,86,57,178,88,87,57,135,246,87,57,67,148,88,57,229,49,89,57,109,207,89,57,219,108,90,57,48,10,91,57,106,167,91,57,139,68,92,57,145,225,92,57,126,126,93,57,80,27,94,57,8,184,94,57,165,84,95,57,41,241,95,57,145,141,96,57,223,41,97,57,19,198,97,57,44,98,98,57,42,254,98,57,14,154,
99,57,214,53,100,57,132,209,100,57,23,109,101,57,142,8,102,57,235,163,102,57,44,63,103,57,83,218,103,57,94,117,104,57,77,16,105,57,34,171,105,57,218,69,106,57,120,224,106,57,249,122,107,57,95,21,108,57,170,175,108,57,216,73,109,57,235,227,109,57,226,125,110,57,188,23,111,57,123,177,111,57,30,75,112,57,164,228,112,57,15,126,113,57,93,23,114,57,142,176,114,57,164,73,115,57,157,226,115,57,121,123,116,57,57,20,117,57,220,172,117,57,98,69,118,57,204,221,118,57,24,118,119,57,72,14,120,57,91,166,120,57,
81,62,121,57,42,214,121,57,230,109,122,57,132,5,123,57,5,157,123,57,105,52,124,57,176,203,124,57,217,98,125,57,229,249,125,57,211,144,126,57,163,39,127,57,86,190,127,57,117,42,128,57,177,117,128,57,222,192,128,57,251,11,129,57,10,87,129,57,10,162,129,57,250,236,129,57,220,55,130,57,174,130,130,57,113,205,130,57,37,24,131,57,202,98,131,57,96,173,131,57,230,247,131,57,93,66,132,57,197,140,132,57,29,215,132,57,102,33,133,57,160,107,133,57,202,181,133,57,229,255,133,57,240,73,134,57,235,147,134,57,216,
221,134,57,180,39,135,57,129,113,135,57,62,187,135,57,235,4,136,57,137,78,136,57,23,152,136,57,150,225,136,57,4,43,137,57,99,116,137,57,177,189,137,57,240,6,138,57,31,80,138,57,62,153,138,57,77,226,138,57,76,43,139,57,59,116,139,57,26,189,139,57,233,5,140,57,168,78,140,57,86,151,140,57,244,223,140,57,131,40,141,57,0,113,141,57,110,185,141,57,203,1,142,57,24,74,142,57,85,146,142,57,129,218,142,57,157,34,143,57,168,106,143,57,163,178,143,57,142,250,143,57,104,66,144,57,49,138,144,57,234,209,144,57,
146,25,145,57,41,97,145,57,176,168,145,57,38,240,145,57,139,55,146,57,224,126,146,57,36,198,146,57,87,13,147,57,121,84,147,57,138,155,147,57,138,226,147,57,122,41,148,57,88,112,148,57,38,183,148,57,226,253,148,57,141,68,149,57,40,139,149,57,177,209,149,57,41,24,150,57,144,94,150,57,230,164,150,57,42,235,150,57,93,49,151,57,127,119,151,57,144,189,151,57,143,3,152,57,125,73,152,57,90,143,152,57,37,213,152,57,223,26,153,57,135,96,153,57,30,166,153,57,163,235,153,57,23,49,154,57,121,118,154,57,202,187,
154,57,9,1,155,57,54,70,155,57,82,139,155,57,91,208,155,57,83,21,156,57,58,90,156,57,14,159,156,57,209,227,156,57,130,40,157,57,33,109,157,57,174,177,157,57,41,246,157,57,146,58,158,57,233,126,158,57,46,195,158,57,98,7,159,57,131,75,159,57,145,143,159,57,142,211,159,57,121,23,160,57,81,91,160,57,24,159,160,57,204,226,160,57,109,38,161,57,253,105,161,57,122,173,161,57,229,240,161,57,61,52,162,57,131,119,162,57,183,186,162,57,216,253,162,57,231,64,163,57,227,131,163,57,205,198,163,57,164,9,164,57,104,
76,164,57,26,143,164,57,185,209,164,57,70,20,165,57,192,86,165,57,39,153,165,57,123,219,165,57,189,29,166,57,236,95,166,57,8,162,166,57,17,228,166,57,8,38,167,57,235,103,167,57,187,169,167,57,121,235,167,57,36,45,168,57,187,110,168,57,64,176,168,57,177,241,168,57,16,51,169,57,91,116,169,57,147,181,169,57,184,246,169,57,202,55,170,57,200,120,170,57,180,185,170,57,140,250,170,57,81,59,171,57,2,124,171,57,160,188,171,57,43,253,171,57,162,61,172,57,6,126,172,57,87,190,172,57,148,254,172,57,189,62,173,
57,212,126,173,57,214,190,173,57,197,254,173,57,160,62,174,57,104,126,174,57,28,190,174,57,188,253,174,57,73,61,175,57,194,124,175,57,39,188,175,57,121,251,175,57,182,58,176,57,224,121,176,57,246,184,176,57,248,247,176,57,230,54,177,57,193,117,177,57,135,180,177,57,57,243,177,57,216,49,178,57,98,112,178,57,216,174,178,57,59,237,178,57,137,43,179,57,195,105,179,57,233,167,179,57,250,229,179,57,248,35,180,57,225,97,180,57,182,159,180,57,119,221,180,57,36,27,181,57,188,88,181,57,64,150,181,57,175,211,
181,57,10,17,182,57,81,78,182,57,131,139,182,57,161,200,182,57,170,5,183,57,159,66,183,57,127,127,183,57,75,188,183,57,2,249,183,57,164,53,184,57,50,114,184,57,172,174,184,57,16,235,184,57,96,39,185,57,155,99,185,57,193,159,185,57,211,219,185,57,208,23,186,57,184,83,186,57,139,143,186,57,73,203,186,57,243,6,187,57,135,66,187,57,7,126,187,57,113,185,187,57,199,244,187,57,7,48,188,57,51,107,188,57,73,166,188,57,75,225,188,57,55,28,189,57,14,87,189,57,209,145,189,57,125,204,189,57,21,7,190,57,152,65,
190,57,5,124,190,57,93,182,190,57,160,240,190,57,205,42,191,57,229,100,191,57,232,158,191,57,213,216,191,57,173,18,192,57,112,76,192,57,29,134,192,57,180,191,192,57,54,249,192,57,163,50,193,57,250,107,193,57,60,165,193,57,104,222,193,57,126,23,194,57,127,80,194,57,106,137,194,57,63,194,194,57,255,250,194,57,169,51,195,57,61,108,195,57,188,164,195,57,37,221,195,57,120,21,196,57,181,77,196,57,220,133,196,57,238,189,196,57,233,245,196,57,207,45,197,57,159,101,197,57,88,157,197,57,252,212,197,57,138,
12,198,57,2,68,198,57,99,123,198,57,175,178,198,57,229,233,198,57,4,33,199,57,13,88,199,57,1,143,199,57,222,197,199,57,165,252,199,57,85,51,200,57,240,105,200,57,116,160,200,57,226,214,200,57,57,13,201,57,122,67,201,57,165,121,201,57,186,175,201,57,184,229,201,57,160,27,202,57,113,81,202,57,44,135,202,57,209,188,202,57,95,242,202,57,214,39,203,57,55,93,203,57,129,146,203,57,181,199,203,57,210,252,203,57,217,49,204,57,201,102,204,57,162,155,204,57,101,208,204,57,17,5,205,57,166,57,205,57,37,110,205,
57,141,162,205,57,222,214,205,57,24,11,206,57,59,63,206,57,72,115,206,57,61,167,206,57,28,219,206,57,228,14,207,57,149,66,207,57,47,118,207,57,178,169,207,57,31,221,207,57,116,16,208,57,178,67,208,57,217,118,208,57,233,169,208,57,226,220,208,57,196,15,209,57,143,66,209,57,66,117,209,57,223,167,209,57,100,218,209,57,210,12,210,57,41,63,210,57,105,113,210,57,145,163,210,57,163,213,210,57,156,7,211,57,127,57,211,57,74,107,211,57,254,156,211,57,155,206,211,57,32,0,212,57,142,49,212,57,228,98,212,57,35,
148,212,57,74,197,212,57,90,246,212,57,83,39,213,57,52,88,213,57,253,136,213,57,175,185,213,57,73,234,213,57,204,26,214,57,55,75,214,57,139,123,214,57,198,171,214,57,234,219,214,57,247,11,215,57,236,59,215,57,201,107,215,57,142,155,215,57,60,203,215,57,209,250,215,57,79,42,216,57,181,89,216,57,4,137,216,57,58,184,216,57,89,231,216,57,95,22,217,57,78,69,217,57,37,116,217,57,228,162,217,57,139,209,217,57,26,0,218,57,145,46,218,57,240,92,218,57,55,139,218,57,102,185,218,57,125,231,218,57,124,21,219,
57,99,67,219,57,49,113,219,57,232,158,219,57,134,204,219,57,12,250,219,57,122,39,220,57,208,84,220,57,13,130,220,57,51,175,220,57,64,220,220,57,52,9,221,57,17,54,221,57,213,98,221,57,129,143,221,57,20,188,221,57,143,232,221,57,242,20,222,57,61,65,222,57,111,109,222,57,136,153,222,57,137,197,222,57,114,241,222,57,66,29,223,57,250,72,223,57,153,116,223,57,32,160,223,57,142,203,223,57,227,246,223,57,32,34,224,57,69,77,224,57,80,120,224,57,68,163,224,57,30,206,224,57,224,248,224,57,137,35,225,57,26,78,
225,57,145,120,225,57,240,162,225,57,55,205,225,57,100,247,225,57,121,33,226,57,117,75,226,57,89,117,226,57,35,159,226,57,213,200,226,57,109,242,226,57,237,27,227,57,84,69,227,57,162,110,227,57,216,151,227,57,244,192,227,57,247,233,227,57,226,18,228,57,179,59,228,57,107,100,228,57,11,141,228,57,145,181,228,57,255,221,228,57,83,6,229,57,142,46,229,57,176,86,229,57,185,126,229,57,169,166,229,57,128,206,229,57,62,246,229,57,227,29,230,57,110,69,230,57,224,108,230,57,57,148,230,57,121,187,230,57,160,
226,230,57,173,9,231,57,161,48,231,57,124,87,231,57,62,126,231,57,230,164,231,57,117,203,231,57,234,241,231,57,71,24,232,57,137,62,232,57,179,100,232,57,195,138,232,57,186,176,232,57,151,214,232,57,91,252,232,57,6,34,233,57,151,71,233,57,14,109,233,57,108,146,233,57,177,183,233,57,220,220,233,57,237,1,234,57,229,38,234,57,196,75,234,57,137,112,234,57,52,149,234,57,198,185,234,57,62,222,234,57,156,2,235,57,225,38,235,57,12,75,235,57,30,111,235,57,22,147,235,57,244,182,235,57,184,218,235,57,99,254,
235,57,244,33,236,57,107,69,236,57,201,104,236,57,13,140,236,57,55,175,236,57,71,210,236,57,61,245,236,57,26,24,237,57,220,58,237,57,133,93,237,57,20,128,237,57,138,162,237,57,229,196,237,57,38,231,237,57,78,9,238,57,91,43,238,57,79,77,238,57,41,111,238,57,232,144,238,57,142,178,238,57,26,212,238,57,140,245,238,57,228,22,239,57,33,56,239,57,69,89,239,57,79,122,239,57,62,155,239,57,20,188,239,57,208,220,239,57,113,253,239,57,248,29,240,57,101,62,240,57,185,94,240,57,241,126,240,57,16,159,240,57,21,
191,240,57,255,222,240,57,208,254,240,57,134,30,241,57,34,62,241,57,163,93,241,57,11,125,241,57,88,156,241,57,139,187,241,57,163,218,241,57,162,249,241,57,134,24,242,57,80,55,242,57,255,85,242,57,148,116,242,57,15,147,242,57,112,177,242,57,182,207,242,57,226,237,242,57,243,11,243,57,234,41,243,57,199,71,243,57,137,101,243,57,49,131,243,57,190,160,243,57,49,190,243,57,138,219,243,57,200,248,243,57,236,21,244,57,245,50,244,57,227,79,244,57,183,108,244,57,113,137,244,57,16,166,244,57,149,194,244,57,
255,222,244,57,78,251,244,57,131,23,245,57,157,51,245,57,157,79,245,57,130,107,245,57,77,135,245,57,253,162,245,57,146,190,245,57,13,218,245,57,109,245,245,57,178,16,246,57,221,43,246,57,237,70,246,57,227,97,246,57,189,124,246,57,125,151,246,57,35,178,246,57,173,204,246,57,29,231,246,57,114,1,247,57,173,27,247,57,204,53,247,57,209,79,247,57,187,105,247,57,139,131,247,57,63,157,247,57,217,182,247,57,88,208,247,57,188,233,247,57,5,3,248,57,52,28,248,57,71,53,248,57,64,78,248,57,30,103,248,57,225,127,
248,57,137,152,248,57,23,177,248,57,137,201,248,57,224,225,248,57,29,250,248,57,63,18,249,57,69,42,249,57,49,66,249,57,2,90,249,57,184,113,249,57,83,137,249,57,211,160,249,57,56,184,249,57,130,207,249,57,177,230,249,57,197,253,249,57,190,20,250,57,156,43,250,57,95,66,250,57,7,89,250,57,148,111,250,57,6,134,250,57,93,156,250,57,152,178,250,57,185,200,250,57,191,222,250,57,169,244,250,57,121,10,251,57,45,32,251,57,198,53,251,57,68,75,251,57,167,96,251,57,239,117,251,57,28,139,251,57,46,160,251,57,36,
181,251,57,0,202,251,57,192,222,251,57,101,243,251,57,238,7,252,57,93,28,252,57,177,48,252,57,233,68,252,57,6,89,252,57,8,109,252,57,238,128,252,57,186,148,252,57,106,168,252,57,255,187,252,57,121,207,252,57,215,226,252,57,26,246,252,57,66,9,253,57,79,28,253,57,64,47,253,57,22,66,253,57,209,84,253,57,113,103,253,57,245,121,253,57,94,140,253,57,172,158,253,57,222,176,253,57,245,194,253,57,241,212,253,57,209,230,253,57,150,248,253,57,64,10,254,57,206,27,254,57,65,45,254,57,153,62,254,57,213,79,254,
57,246,96,254,57,251,113,254,57,229,130,254,57,180,147,254,57,103,164,254,57,255,180,254,57,124,197,254,57,221,213,254,57,35,230,254,57,77,246,254,57,92,6,255,57,80,22,255,57,40,38,255,57,228,53,255,57,133,69,255,57,11,85,255,57,117,100,255,57,196,115,255,57,248,130,255,57,16,146,255,57,12,161,255,57,237,175,255,57,178,190,255,57,92,205,255,57,235,219,255,57,94,234,255,57,182,248,255,57,121,3,0,58,137,10,0,58,140,17,0,58,128,24,0,58,103,31,0,58,65,38,0,58,12,45,0,58,202,51,0,58,122,58,0,58,28,65,
0,58,176,71,0,58,55,78,0,58,176,84,0,58,27,91,0,58,120,97,0,58,200,103,0,58,10,110,0,58,62,116,0,58,100,122,0,58,124,128,0,58,135,134,0,58,132,140,0,58,115,146,0,58,84,152,0,58,40,158,0,58,237,163,0,58,165,169,0,58,79,175,0,58,236,180,0,58,122,186,0,58,251,191,0,58,110,197,0,58,211,202,0,58,42,208,0,58,116,213,0,58,175,218,0,58,221,223,0,58,253,228,0,58,16,234,0,58,20,239,0,58,11,244,0,58,243,248,0,58,206,253,0,58,156,2,1,58,91,7,1,58,13,12,1,58,176,16,1,58,70,21,1,58,206,25,1,58,72,30,1,58,181,34,
1,58,20,39,1,58,100,43,1,58,167,47,1,58,220,51,1,58,4,56,1,58,29,60,1,58,41,64,1,58,39,68,1,58,23,72,1,58,249,75,1,58,205,79,1,58,147,83,1,58,76,87,1,58,247,90,1,58,148,94,1,58,35,98,1,58,164,101,1,58,24,105,1,58,125,108,1,58,213,111,1,58,31,115,1,58,91,118,1,58,137,121,1,58,170,124,1,58,188,127,1,58,193,130,1,58,184,133,1,58,161,136,1,58,124,139,1,58,74,142,1,58,9,145,1,58,187,147,1,58,95,150,1,58,245,152,1,58,125,155,1,58,247,157,1,58,100,160,1,58,194,162,1,58,19,165,1,58,86,167,1,58,139,169,1,
58,178,171,1,58,204,173,1,58,215,175,1,58,213,177,1,58,197,179,1,58,167,181,1,58,123,183,1,58,65,185,1,58,250,186,1,58,164,188,1,58,65,190,1,58,208,191,1,58,81,193,1,58,197,194,1,58,42,196,1,58,130,197,1,58,203,198,1,58,7,200,1,58,53,201,1,58,86,202,1,58,104,203,1,58,109,204,1,58,99,205,1,58,76,206,1,58,39,207,1,58,244,207,1,58,180,208,1,58,101,209,1,58,9,210,1,58,159,210,1,58,39,211,1,58,161,211,1,58,13,212,1,58,108,212,1,58,189,212,1,58,255,212,1,58,53,213,1,58,92,213,1,58,117,213,1,58,129,213,
1,58,126,213,1,58,110,213,1,58,80,213,1,58,37,213,1,58,235,212,1,58,164,212,1,58,78,212,1,58,235,211,1,58,123,211,1,58,252,210,1,58,111,210,1,58,213,209,1,58,45,209,1,58,119,208,1,58,179,207,1,58,226,206,1,58,2,206,1,58,21,205,1,58,26,204,1,58,18,203,1,58,251,201,1,58,215,200,1,58,164,199,1,58,100,198,1,58,23,197,1,58,187,195,1,58,82,194,1,58,219,192,1,58,86,191,1,58,195,189,1,58,34,188,1,58,116,186,1,58,184,184,1,58,238,182,1,58,22,181,1,58,49,179,1,58,62,177,1,58,61,175,1,58,46,173,1,58,17,171,
1,58,231,168,1,58,175,166,1,58,105,164,1,58,21,162,1,58,180,159,1,58,69,157,1,58,200,154,1,58,61,152,1,58,165,149,1,58,254,146,1,58,74,144,1,58,137,141,1,58,185,138,1,58,220,135,1,58,241,132,1,58,248,129,1,58,242,126,1,58,222,123,1,58,188,120,1,58,140,117,1,58,79,114,1,58,4,111,1,58,171,107,1,58,68,104,1,58,208,100,1,58,78,97,1,58,190,93,1,58,33,90,1,58,118,86,1,58,189,82,1,58,246,78,1,58,34,75,1,58,64,71,1,58,80,67,1,58,83,63,1,58,72,59,1,58,47,55,1,58,9,51,1,58,213,46,1,58,147,42,1,58,67,38,1,58,
230,33,1,58,123,29,1,58,3,25,1,58,124,20,1,58,232,15,1,58,71,11,1,58,152,6,1,58,219,1,1,58,16,253,0,58,56,248,0,58,82,243,0,58,95,238,0,58,94,233,0,58,79,228,0,58,50,223,0,58,8,218,0,58,209,212,0,58,139,207,0,58,56,202,0,58,216,196,0,58,106,191,0,58,238,185,0,58,100,180,0,58,205,174,0,58,41,169,0,58,118,163,0,58,182,157,0,58,233,151,0,58,14,146,0,58,37,140,0,58,47,134,0,58,43,128,0,58,26,122,0,58,251,115,0,58,206,109,0,58,148,103,0,58,76,97,0,58,247,90,0,58,148,84,0,58,36,78,0,58,166,71,0,58,26,65,
0,58,129,58,0,58,219,51,0,58,39,45,0,58,101,38,0,58,150,31,0,58,185,24,0,58,207,17,0,58,215,10,0,58,210,3,0,58,126,249,255,57,61,235,255,57,225,220,255,57,107,206,255,57,217,191,255,57,45,177,255,57,101,162,255,57,130,147,255,57,133,132,255,57,108,117,255,57,57,102,255,57,234,86,255,57,129,71,255,57,253,55,255,57,94,40,255,57,163,24,255,57,206,8,255,57,223,248,254,57,212,232,254,57,174,216,254,57,110,200,254,57,18,184,254,57,156,167,254,57,11,151,254,57,95,134,254,57,152,117,254,57,183,100,254,57,
187,83,254,57,163,66,254,57,114,49,254,57,37,32,254,57,189,14,254,57,59,253,253,57,158,235,253,57,230,217,253,57,20,200,253,57,39,182,253,57,31,164,253,57,252,145,253,57,191,127,253,57,103,109,253,57,244,90,253,57,103,72,253,57,191,53,253,57,252,34,253,57,31,16,253,57,39,253,252,57,21,234,252,57,231,214,252,57,160,195,252,57,61,176,252,57,192,156,252,57,41,137,252,57,119,117,252,57,170,97,252,57,195,77,252,57,193,57,252,57,165,37,252,57,110,17,252,57,29,253,251,57,177,232,251,57,43,212,251,57,139,
191,251,57,207,170,251,57,250,149,251,57,10,129,251,57,255,107,251,57,218,86,251,57,155,65,251,57,65,44,251,57,205,22,251,57,63,1,251,57,150,235,250,57,211,213,250,57,245,191,250,57,254,169,250,57,235,147,250,57,191,125,250,57,120,103,250,57,23,81,250,57,156,58,250,57,6,36,250,57,86,13,250,57,140,246,249,57,168,223,249,57,169,200,249,57,144,177,249,57,93,154,249,57,16,131,249,57,169,107,249,57,39,84,249,57,139,60,249,57,214,36,249,57,6,13,249,57,28,245,248,57,23,221,248,57,249,196,248,57,193,172,
248,57,110,148,248,57,2,124,248,57,123,99,248,57,219,74,248,57,32,50,248,57,75,25,248,57,93,0,248,57,84,231,247,57,49,206,247,57,245,180,247,57,158,155,247,57,46,130,247,57,163,104,247,57,255,78,247,57,65,53,247,57,105,27,247,57,119,1,247,57,107,231,246,57,69,205,246,57,6,179,246,57,172,152,246,57,57,126,246,57,172,99,246,57,5,73,246,57,68,46,246,57,106,19,246,57,118,248,245,57,104,221,245,57,65,194,245,57,255,166,245,57,164,139,245,57,48,112,245,57,161,84,245,57,249,56,245,57,56,29,245,57,92,1,245,
57,103,229,244,57,89,201,244,57,49,173,244,57,239,144,244,57,148,116,244,57,31,88,244,57,145,59,244,57,233,30,244,57,39,2,244,57,77,229,243,57,88,200,243,57,74,171,243,57,35,142,243,57,226,112,243,57,136,83,243,57,20,54,243,57,135,24,243,57,225,250,242,57,33,221,242,57,72,191,242,57,85,161,242,57,74,131,242,57,36,101,242,57,230,70,242,57,142,40,242,57,29,10,242,57,147,235,241,57,239,204,241,57,51,174,241,57,93,143,241,57,109,112,241,57,101,81,241,57,68,50,241,57,9,19,241,57,181,243,240,57,72,212,
240,57,194,180,240,57,35,149,240,57,106,117,240,57,153,85,240,57,174,53,240,57,171,21,240,57,142,245,239,57,89,213,239,57,10,181,239,57,163,148,239,57,34,116,239,57,137,83,239,57,215,50,239,57,11,18,239,57,39,241,238,57,42,208,238,57,20,175,238,57,229,141,238,57,158,108,238,57,61,75,238,57,196,41,238,57,50,8,238,57,135,230,237,57,195,196,237,57,231,162,237,57,242,128,237,57,228,94,237,57,189,60,237,57,126,26,237,57,38,248,236,57,181,213,236,57,44,179,236,57,138,144,236,57,208,109,236,57,253,74,236,
57,17,40,236,57,13,5,236,57,240,225,235,57,187,190,235,57,109,155,235,57,7,120,235,57,136,84,235,57,241,48,235,57,65,13,235,57,121,233,234,57,153,197,234,57,160,161,234,57,143,125,234,57,101,89,234,57,35,53,234,57,201,16,234,57,86,236,233,57,203,199,233,57,40,163,233,57,108,126,233,57,153,89,233,57,173,52,233,57,168,15,233,57,140,234,232,57,88,197,232,57,11,160,232,57,166,122,232,57,41,85,232,57,148,47,232,57,231,9,232,57,33,228,231,57,68,190,231,57,79,152,231,57,65,114,231,57,28,76,231,57,223,37,
231,57,137,255,230,57,28,217,230,57,151,178,230,57,250,139,230,57,68,101,230,57,120,62,230,57,147,23,230,57,150,240,229,57,130,201,229,57,85,162,229,57,17,123,229,57,181,83,229,57,66,44,229,57,182,4,229,57,19,221,228,57,88,181,228,57,134,141,228,57,156,101,228,57,154,61,228,57,128,21,228,57,79,237,227,57,7,197,227,57,167,156,227,57,47,116,227,57,159,75,227,57,249,34,227,57,58,250,226,57,100,209,226,57,119,168,226,57,114,127,226,57,86,86,226,57,35,45,226,57,216,3,226,57,117,218,225,57,252,176,225,
57,106,135,225,57,194,93,225,57,2,52,225,57,44,10,225,57,61,224,224,57,56,182,224,57,27,140,224,57,231,97,224,57,156,55,224,57,58,13,224,57,193,226,223,57,48,184,223,57,137,141,223,57,202,98,223,57,244,55,223,57,7,13,223,57,3,226,222,57,233,182,222,57,183,139,222,57,110,96,222,57,14,53,222,57,151,9,222,57,10,222,221,57,101,178,221,57,170,134,221,57,216,90,221,57,239,46,221,57,239,2,221,57,216,214,220,57,171,170,220,57,102,126,220,57,11,82,220,57,154,37,220,57,17,249,219,57,114,204,219,57,189,159,
219,57,240,114,219,57,13,70,219,57,20,25,219,57,4,236,218,57,221,190,218,57,160,145,218,57,76,100,218,57,226,54,218,57,97,9,218,57,202,219,217,57,29,174,217,57,89,128,217,57,126,82,217,57,142,36,217,57,134,246,216,57,105,200,216,57,53,154,216,57,235,107,216,57,139,61,216,57,20,15,216,57,136,224,215,57,229,177,215,57,44,131,215,57,92,84,215,57,119,37,215,57,123,246,214,57,106,199,214,57,66,152,214,57,4,105,214,57,176,57,214,57,70,10,214,57,198,218,213,57,49,171,213,57,133,123,213,57,195,75,213,57,
235,27,213,57,254,235,212,57,250,187,212,57,225,139,212,57,178,91,212,57,109,43,212,57,19,251,211,57,162,202,211,57,28,154,211,57,128,105,211,57,207,56,211,57,7,8,211,57,43,215,210,57,56,166,210,57,48,117,210,57,18,68,210,57,223,18,210,57,150,225,209,57,56,176,209,57,196,126,209,57,59,77,209,57,156,27,209,57,232,233,208,57,30,184,208,57,63,134,208,57,75,84,208,57,65,34,208,57,34,240,207,57,238,189,207,57,164,139,207,57,69,89,207,57,209,38,207,57,72,244,206,57,169,193,206,57,245,142,206,57,45,92,206,
57,79,41,206,57,92,246,205,57,84,195,205,57,54,144,205,57,4,93,205,57,189,41,205,57,97,246,204,57,240,194,204,57,106,143,204,57,207,91,204,57,31,40,204,57,90,244,203,57,128,192,203,57,146,140,203,57,143,88,203,57,119,36,203,57,74,240,202,57,8,188,202,57,178,135,202,57,71,83,202,57,200,30,202,57,52,234,201,57,139,181,201,57,205,128,201,57,251,75,201,57,21,23,201,57,26,226,200,57,10,173,200,57,230,119,200,57,174,66,200,57,97,13,200,57,255,215,199,57,138,162,199,57,0,109,199,57,97,55,199,57,175,1,199,
57,232,203,198,57,12,150,198,57,29,96,198,57,25,42,198,57,1,244,197,57,213,189,197,57,149,135,197,57,65,81,197,57,216,26,197,57,92,228,196,57,203,173,196,57,38,119,196,57,110,64,196,57,161,9,196,57,193,210,195,57,204,155,195,57,196,100,195,57,168,45,195,57,119,246,194,57,52,191,194,57,220,135,194,57,112,80,194,57,241,24,194,57,94,225,193,57,183,169,193,57,253,113,193,57,47,58,193,57,77,2,193,57,88,202,192,57,79,146,192,57,50,90,192,57,2,34,192,57,191,233,191,57,104,177,191,57,253,120,191,57,127,64,
191,57,238,7,191,57,73,207,190,57,145,150,190,57,197,93,190,57,231,36,190,57,245,235,189,57,239,178,189,57,215,121,189,57,171,64,189,57,108,7,189,57,26,206,188,57,181,148,188,57,60,91,188,57,177,33,188,57,18,232,187,57,97,174,187,57,156,116,187,57,196,58,187,57,218,0,187,57,220,198,186,57,204,140,186,57,169,82,186,57,114,24,186,57,41,222,185,57,206,163,185,57,95,105,185,57,222,46,185,57,74,244,184,57,163,185,184,57,233,126,184,57,29,68,184,57,62,9,184,57,77,206,183,57,73,147,183,57,50,88,183,57,9,
29,183,57,206,225,182,57,128,166,182,57,31,107,182,57,172,47,182,57,39,244,181,57,143,184,181,57,229,124,181,57,41,65,181,57,90,5,181,57,121,201,180,57,134,141,180,57,129,81,180,57,105,21,180,57,63,217,179,57,4,157,179,57,182,96,179,57,86,36,179,57,227,231,178,57,95,171,178,57,201,110,178,57,33,50,178,57,103,245,177,57,155,184,177,57,189,123,177,57,205,62,177,57,203,1,177,57,184,196,176,57,146,135,176,57,91,74,176,57,19,13,176,57,184,207,175,57,76,146,175,57,206,84,175,57,62,23,175,57,157,217,174,
57,235,155,174,57,38,94,174,57,81,32,174,57,105,226,173,57,112,164,173,57,102,102,173,57,75,40,173,57,30,234,172,57,223,171,172,57,144,109,172,57,46,47,172,57,188,240,171,57,57,178,171,57,164,115,171,57,254,52,171,57,70,246,170,57,126,183,170,57,165,120,170,57,186,57,170,57,190,250,169,57,178,187,169,57,148,124,169,57,101,61,169,57,38,254,168,57,213,190,168,57,116,127,168,57,1,64,168,57,126,0,168,57,234,192,167,57,69,129,167,57,144,65,167,57,202,1,167,57,242,193,166,57,11,130,166,57,18,66,166,57,
9,2,166,57,240,193,165,57,198,129,165,57,139,65,165,57,64,1,165,57,228,192,164,57,120,128,164,57,251,63,164,57,110,255,163,57,209,190,163,57,35,126,163,57,101,61,163,57,151,252,162,57,184,187,162,57,201,122,162,57,202,57,162,57,187,248,161,57,156,183,161,57,108,118,161,57,44,53,161,57,221,243,160,57,125,178,160,57,13,113,160,57,142,47,160,57,254,237,159,57,94,172,159,57,175,106,159,57,239,40,159,57,32,231,158,57,65,165,158,57,82,99,158,57,84,33,158,57,70,223,157,57,40,157,157,57,250,90,157,57,189,
24,157,57,112,214,156,57,19,148,156,57,167,81,156,57,43,15,156,57,160,204,155,57,6,138,155,57,92,71,155,57,162,4,155,57,218,193,154,57,1,127,154,57,26,60,154,57,35,249,153,57,29,182,153,57,8,115,153,57,227,47,153,57,176,236,152,57,109,169,152,57,27,102,152,57,186,34,152,57,74,223,151,57,203,155,151,57,60,88,151,57,159,20,151,57,243,208,150,57,56,141,150,57,110,73,150,57,149,5,150,57,174,193,149,57,183,125,149,57,178,57,149,57,158,245,148,57,124,177,148,57,74,109,148,57,10,41,148,57,188,228,147,57,
95,160,147,57,243,91,147,57,121,23,147,57,240,210,146,57,88,142,146,57,179,73,146,57,254,4,146,57,60,192,145,57,107,123,145,57,140,54,145,57,158,241,144,57,162,172,144,57,152,103,144,57,128,34,144,57,89,221,143,57,37,152,143,57,226,82,143,57,145,13,143,57,50,200,142,57,197,130,142,57,74,61,142,57,193,247,141,57,42,178,141,57,133,108,141,57,211,38,141,57,18,225,140,57,68,155,140,57,104,85,140,57,126,15,140,57,134,201,139,57,129,131,139,57,109,61,139,57,77,247,138,57,30,177,138,57,226,106,138,57,153,
36,138,57,66,222,137,57,221,151,137,57,107,81,137,57,236,10,137,57,95,196,136,57,197,125,136,57,29,55,136,57,105,240,135,57,166,169,135,57,215,98,135,57,250,27,135,57,17,213,134,57,26,142,134,57,22,71,134,57,4,0,134,57,230,184,133,57,187,113,133,57,130,42,133,57,61,227,132,57,235,155,132,57,140,84,132,57,32,13,132,57,167,197,131,57,33,126,131,57,142,54,131,57,239,238,130,57,67,167,130,57,138,95,130,57,197,23,130,57,243,207,129,57,20,136,129,57,41,64,129,57,49,248,128,57,44,176,128,57,27,104,128,57,
254,31,128,57,169,175,127,57,60,31,127,57,183,142,126,57,26,254,125,57,99,109,125,57,149,220,124,57,173,75,124,57,173,186,123,57,149,41,123,57,101,152,122,57,28,7,122,57,187,117,121,57,66,228,120,57,177,82,120,57,8,193,119,57,71,47,119,57,111,157,118,57,126,11,118,57,118,121,117,57,86,231,116,57,30,85,116,57,207,194,115,57,104,48,115,57,234,157,114,57,84,11,114,57,168,120,113,57,228,229,112,57,8,83,112,57,22,192,111,57,13,45,111,57,236,153,110,57,181,6,110,57,103,115,109,57,2,224,108,57,134,76,108,
57,244,184,107,57,75,37,107,57,139,145,106,57,181,253,105,57,200,105,105,57,198,213,104,57,172,65,104,57,125,173,103,57,55,25,103,57,220,132,102,57,106,240,101,57,226,91,101,57,69,199,100,57,145,50,100,57,200,157,99,57,233,8,99,57,244,115,98,57,234,222,97,57,202,73,97,57,149,180,96,57,74,31,96,57,234,137,95,57,117,244,94,57,234,94,94,57,74,201,93,57,149,51,93,57,204,157,92,57,237,7,92,57,249,113,91,57,240,219,90,57,211,69,90,57,161,175,89,57,90,25,89,57,255,130,88,57,143,236,87,57,11,86,87,57,114,
191,86,57,197,40,86,57,4,146,85,57,46,251,84,57,69,100,84,57,71,205,83,57,53,54,83,57,15,159,82,57,214,7,82,57,137,112,81,57,39,217,80,57,179,65,80,57,42,170,79,57,142,18,79,57,223,122,78,57,28,227,77,57,69,75,77,57,92,179,76,57,95,27,76,57,79,131,75,57,44,235,74,57,246,82,74,57,173,186,73,57,81,34,73,57,226,137,72,57,96,241,71,57,204,88,71,57,37,192,70,57,107,39,70,57,159,142,69,57,192,245,68,57,207,92,68,57,204,195,67,57,182,42,67,57,142,145,66,57,84,248,65,57,8,95,65,57,170,197,64,57,58,44,64,
57,184,146,63,57,36,249,62,57,127,95,62,57,200,197,61,57,255,43,61,57,37,146,60,57,57,248,59,57,60,94,59,57,45,196,58,57,13,42,58,57,220,143,57,57,154,245,56,57,71,91,56,57,226,192,55,57,109,38,55,57,231,139,54,57,80,241,53,57,168,86,53,57,239,187,52,57,38,33,52,57,76,134,51,57,98,235,50,57,103,80,50,57,92,181,49,57,65,26,49,57,21,127,48,57,217,227,47,57,141,72,47,57,49,173,46,57,197,17,46,57,74,118,45,57],"i8",4,y.a+788480);
Q([190,218,44,57,34,63,44,57,119,163,43,57,188,7,43,57,242,107,42,57,24,208,41,57,46,52,41,57,53,152,40,57,45,252,39,57,22,96,39,57,239,195,38,57,185,39,38,57,117,139,37,57,33,239,36,57,190,82,36,57,77,182,35,57,204,25,35,57,61,125,34,57,159,224,33,57,243,67,33,57,56,167,32,57,111,10,32,57,151,109,31,57,177,208,30,57,188,51,30,57,186,150,29,57,169,249,28,57,138,92,28,57,93,191,27,57,35,34,27,57,218,132,26,57,132,231,25,57,32,74,25,57,174,172,24,57,46,15,24,57,161,113,23,57,7,212,22,57,95,54,22,57,
170,152,21,57,232,250,20,57,24,93,20,57,59,191,19,57,81,33,19,57,91,131,18,57,87,229,17,57,70,71,17,57,41,169,16,57,255,10,16,57,200,108,15,57,132,206,14,57,52,48,14,57,216,145,13,57,111,243,12,57,250,84,12,57,120,182,11,57,234,23,11,57,81,121,10,57,171,218,9,57,249,59,9,57,59,157,8,57,113,254,7,57,156,95,7,57,186,192,6,57,205,33,6,57,213,130,5,57,209,227,4,57,193,68,4,57,166,165,3,57,128,6,3,57,78,103,2,57,18,200,1,57,202,40,1,57,119,137,0,57,49,212,255,56,96,149,254,56,120,86,253,56,123,23,252,
56,104,216,250,56,64,153,249,56,3,90,248,56,177,26,247,56,74,219,245,56,206,155,244,56,61,92,243,56,152,28,242,56,223,220,240,56,17,157,239,56,47,93,238,56,57,29,237,56,48,221,235,56,18,157,234,56,225,92,233,56,157,28,232,56,69,220,230,56,218,155,229,56,92,91,228,56,203,26,227,56,39,218,225,56,113,153,224,56,168,88,223,56,205,23,222,56,223,214,220,56,224,149,219,56,206,84,218,56,171,19,217,56,117,210,215,56,47,145,214,56,215,79,213,56,109,14,212,56,243,204,210,56,103,139,209,56,203,73,208,56,30,8,
207,56,96,198,205,56,145,132,204,56,179,66,203,56,196,0,202,56,197,190,200,56,182,124,199,56,151,58,198,56,105,248,196,56,43,182,195,56,221,115,194,56,129,49,193,56,21,239,191,56,154,172,190,56,17,106,189,56,120,39,188,56,209,228,186,56,28,162,185,56,88,95,184,56,134,28,183,56,166,217,181,56,184,150,180,56,189,83,179,56,179,16,178,56,156,205,176,56,120,138,175,56,71,71,174,56,8,4,173,56,189,192,171,56,100,125,170,56,255,57,169,56,142,246,167,56,15,179,166,56,133,111,165,56,239,43,164,56,76,232,162,
56,158,164,161,56,227,96,160,56,30,29,159,56,76,217,157,56,112,149,156,56,136,81,155,56,149,13,154,56,151,201,152,56,142,133,151,56,123,65,150,56,93,253,148,56,53,185,147,56,2,117,146,56,197,48,145,56,127,236,143,56,46,168,142,56,212,99,141,56,112,31,140,56,3,219,138,56,140,150,137,56,13,82,136,56,132,13,135,56,242,200,133,56,88,132,132,56,181,63,131,56,9,251,129,56,85,182,128,56,49,227,126,56,169,89,124,56,16,208,121,56,104,70,119,56,177,188,116,56,234,50,114,56,20,169,111,56,48,31,109,56,62,149,
106,56,62,11,104,56,48,129,101,56,20,247,98,56,235,108,96,56,182,226,93,56,115,88,91,56,37,206,88,56,202,67,86,56,99,185,83,56,241,46,81,56,115,164,78,56,235,25,76,56,88,143,73,56,186,4,71,56,18,122,68,56,96,239,65,56,164,100,63,56,223,217,60,56,17,79,58,56,58,196,55,56,90,57,53,56,114,174,50,56,130,35,48,56,138,152,45,56,139,13,43,56,133,130,40,56,119,247,37,56,99,108,35,56,72,225,32,56,40,86,30,56,1,203,27,56,213,63,25,56,163,180,22,56,109,41,20,56,49,158,17,56,242,18,15,56,173,135,12,56,101,252,
9,56,26,113,7,56,202,229,4,56,120,90,2,56,69,158,255,55,149,135,250,55,225,112,245,55,40,90,240,55,108,67,235,55,172,44,230,55,235,21,225,55,39,255,219,55,97,232,214,55,155,209,209,55,213,186,204,55,14,164,199,55,73,141,194,55,132,118,189,55,194,95,184,55,1,73,179,55,68,50,174,55,138,27,169,55,212,4,164,55,35,238,158,55,118,215,153,55,208,192,148,55,47,170,143,55,149,147,138,55,2,125,133,55,120,102,128,55,234,159,118,55,246,114,108,55,22,70,98,55,73,25,88,55,145,236,77,55,239,191,67,55,100,147,57,
55,241,102,47,55,152,58,37,55,89,14,27,55,54,226,16,55,47,182,6,55,139,20,249,54,245,188,228,54,159,101,208,54,139,14,188,54,187,183,167,54,49,97,147,54,221,21,126,54,238,105,85,54,151,190,44,54,222,19,4,54,141,211,182,53,84,1,75,53,220,120,33,52,87,132,244,180,225,111,142,181,62,189,223,181,146,132,24,182,197,41,65,182,52,206,105,182,237,56,137,182,90,138,157,182,94,219,177,182,247,43,198,182,36,124,218,182,225,203,238,182,151,141,1,183,3,181,11,183,53,220,21,183,43,3,32,183,228,41,42,183,95,80,
52,183,155,118,62,183,150,156,72,183,81,194,82,183,201,231,92,183,254,12,103,183,238,49,113,183,153,86,123,183,127,189,130,183,141,207,135,183,119,225,140,183,60,243,145,183,220,4,151,183,85,22,156,183,168,39,161,183,212,56,166,183,217,73,171,183,181,90,176,183,105,107,181,183,243,123,186,183,84,140,191,183,138,156,196,183,150,172,201,183,118,188,206,183,42,204,211,183,178,219,216,183,13,235,221,183,58,250,226,183,58,9,232,183,10,24,237,183,172,38,242,183,30,53,247,183,96,67,252,183,185,168,0,184,
169,47,3,184,128,182,5,184,61,61,8,184,226,195,10,184,109,74,13,184,222,208,15,184,52,87,18,184,112,221,20,184,146,99,23,184,152,233,25,184,131,111,28,184,82,245,30,184,6,123,33,184,157,0,36,184,25,134,38,184,119,11,41,184,185,144,43,184,221,21,46,184,228,154,48,184,205,31,51,184,153,164,53,184,70,41,56,184,213,173,58,184,68,50,61,184,149,182,63,184,199,58,66,184,217,190,68,184,203,66,71,184,157,198,73,184,79,74,76,184,224,205,78,184,80,81,81,184,159,212,83,184,205,87,86,184,217,218,88,184,195,93,
91,184,138,224,93,184,48,99,96,184,178,229,98,184,18,104,101,184,78,234,103,184,103,108,106,184,91,238,108,184,44,112,111,184,217,241,113,184,97,115,116,184,196,244,118,184,2,118,121,184,26,247,123,184,13,120,126,184,109,124,128,184,192,188,129,184,0,253,130,184,45,61,132,184,71,125,133,184,76,189,134,184,62,253,135,184,28,61,137,184,230,124,138,184,156,188,139,184,62,252,140,184,203,59,142,184,68,123,143,184,167,186,144,184,247,249,145,184,49,57,147,184,86,120,148,184,102,183,149,184,97,246,150,
184,70,53,152,184,21,116,153,184,207,178,154,184,115,241,155,184,1,48,157,184,121,110,158,184,219,172,159,184,38,235,160,184,91,41,162,184,121,103,163,184,128,165,164,184,112,227,165,184,74,33,167,184,12,95,168,184,183,156,169,184,74,218,170,184,198,23,172,184,43,85,173,184,119,146,174,184,172,207,175,184,200,12,177,184,204,73,178,184,184,134,179,184,139,195,180,184,70,0,182,184,232,60,183,184,113,121,184,184,226,181,185,184,57,242,186,184,118,46,188,184,155,106,189,184,166,166,190,184,151,226,191,
184,111,30,193,184,44,90,194,184,208,149,195,184,89,209,196,184,200,12,198,184,29,72,199,184,87,131,200,184,119,190,201,184,124,249,202,184,101,52,204,184,52,111,205,184,231,169,206,184,128,228,207,184,252,30,209,184,93,89,210,184,163,147,211,184,205,205,212,184,218,7,214,184,204,65,215,184,161,123,216,184,90,181,217,184,246,238,218,184,118,40,220,184,217,97,221,184,32,155,222,184,73,212,223,184,85,13,225,184,68,70,226,184,21,127,227,184,201,183,228,184,96,240,229,184,216,40,231,184,51,97,232,184,
111,153,233,184,142,209,234,184,142,9,236,184,112,65,237,184,51,121,238,184,216,176,239,184,94,232,240,184,197,31,242,184,12,87,243,184,53,142,244,184,62,197,245,184,40,252,246,184,243,50,248,184,158,105,249,184,41,160,250,184,148,214,251,184,222,12,253,184,9,67,254,184,20,121,255,184,127,87,0,185,99,242,0,185,56,141,1,185,252,39,2,185,175,194,2,185,82,93,3,185,228,247,3,185,102,146,4,185,215,44,5,185,55,199,5,185,135,97,6,185,197,251,6,185,242,149,7,185,15,48,8,185,26,202,8,185,20,100,9,185,253,
253,9,185,212,151,10,185,155,49,11,185,79,203,11,185,243,100,12,185,132,254,12,185,4,152,13,185,115,49,14,185,208,202,14,185,26,100,15,185,84,253,15,185,123,150,16,185,144,47,17,185,147,200,17,185,132,97,18,185,99,250,18,185,47,147,19,185,234,43,20,185,146,196,20,185,39,93,21,185,170,245,21,185,27,142,22,185,120,38,23,185,196,190,23,185,252,86,24,185,34,239,24,185,53,135,25,185,53,31,26,185,33,183,26,185,251,78,27,185,194,230,27,185,118,126,28,185,22,22,29,185,163,173,29,185,29,69,30,185,131,220,
30,185,214,115,31,185,21,11,32,185,65,162,32,185,89,57,33,185,93,208,33,185,78,103,34,185,43,254,34,185,243,148,35,185,168,43,36,185,73,194,36,185,214,88,37,185,78,239,37,185,179,133,38,185,3,28,39,185,62,178,39,185,102,72,40,185,121,222,40,185,119,116,41,185,97,10,42,185,54,160,42,185,246,53,43,185,162,203,43,185,57,97,44,185,187,246,44,185,40,140,45,185,128,33,46,185,195,182,46,185,241,75,47,185,9,225,47,185,13,118,48,185,251,10,49,185,211,159,49,185,151,52,50,185,68,201,50,185,220,93,51,185,95,
242,51,185,204,134,52,185,35,27,53,185,101,175,53,185,144,67,54,185,166,215,54,185,165,107,55,185,143,255,55,185,99,147,56,185,32,39,57,185,199,186,57,185,88,78,58,185,211,225,58,185,55,117,59,185,133,8,60,185,188,155,60,185,220,46,61,185,230,193,61,185,218,84,62,185,182,231,62,185,124,122,63,185,43,13,64,185,195,159,64,185,68,50,65,185,174,196,65,185,0,87,66,185,60,233,66,185,96,123,67,185,109,13,68,185,99,159,68,185,66,49,69,185,8,195,69,185,184,84,70,185,80,230,70,185,208,119,71,185,56,9,72,185,
137,154,72,185,194,43,73,185,227,188,73,185,236,77,74,185,221,222,74,185,182,111,75,185,119,0,76,185,31,145,76,185,176,33,77,185,40,178,77,185,136,66,78,185,207,210,78,185,254,98,79,185,21,243,79,185,19,131,80,185,248,18,81,185,196,162,81,185,120,50,82,185,19,194,82,185,149,81,83,185,254,224,83,185,79,112,84,185,134,255,84,185,164,142,85,185,169,29,86,185,148,172,86,185,103,59,87,185,32,202,87,185,191,88,88,185,70,231,88,185,178,117,89,185,5,4,90,185,63,146,90,185,95,32,91,185,101,174,91,185,81,60,
92,185,35,202,92,185,220,87,93,185,123,229,93,185,255,114,94,185,106,0,95,185,186,141,95,185,240,26,96,185,12,168,96,185,13,53,97,185,245,193,97,185,193,78,98,185,116,219,98,185,11,104,99,185,137,244,99,185,235,128,100,185,51,13,101,185,96,153,101,185,114,37,102,185,105,177,102,185,70,61,103,185,7,201,103,185,174,84,104,185,57,224,104,185,169,107,105,185,254,246,105,185,56,130,106,185,86,13,107,185,89,152,107,185,64,35,108,185,12,174,108,185,189,56,109,185,82,195,109,185,203,77,110,185,40,216,110,
185,106,98,111,185,144,236,111,185,154,118,112,185,136,0,113,185,90,138,113,185,16,20,114,185,169,157,114,185,39,39,115,185,137,176,115,185,206,57,116,185,247,194,116,185,3,76,117,185,243,212,117,185,199,93,118,185,126,230,118,185,24,111,119,185,150,247,119,185,247,127,120,185,59,8,121,185,99,144,121,185,109,24,122,185,91,160,122,185,43,40,123,185,223,175,123,185,118,55,124,185,239,190,124,185,75,70,125,185,138,205,125,185,171,84,126,185,176,219,126,185,150,98,127,185,96,233,127,185,6,56,128,185,
77,123,128,185,133,190,128,185,175,1,129,185,201,68,129,185,213,135,129,185,209,202,129,185,191,13,130,185,158,80,130,185,110,147,130,185,46,214,130,185,224,24,131,185,131,91,131,185,22,158,131,185,155,224,131,185,16,35,132,185,118,101,132,185,204,167,132,185,20,234,132,185,76,44,133,185,117,110,133,185,143,176,133,185,153,242,133,185,148,52,134,185,127,118,134,185,91,184,134,185,40,250,134,185,229,59,135,185,146,125,135,185,48,191,135,185,191,0,136,185,62,66,136,185,173,131,136,185,13,197,136,185,
93,6,137,185,157,71,137,185,205,136,137,185,238,201,137,185,255,10,138,185,0,76,138,185,242,140,138,185,211,205,138,185,165,14,139,185,102,79,139,185,24,144,139,185,186,208,139,185,76,17,140,185,206,81,140,185,64,146,140,185,161,210,140,185,243,18,141,185,53,83,141,185,102,147,141,185,135,211,141,185,152,19,142,185,153,83,142,185,138,147,142,185,106,211,142,185,58,19,143,185,250,82,143,185,169,146,143,185,72,210,143,185,215,17,144,185,85,81,144,185,195,144,144,185,32,208,144,185,109,15,145,185,169,
78,145,185,213,141,145,185,240,204,145,185,251,11,146,185,245,74,146,185,222,137,146,185,183,200,146,185,127,7,147,185,54,70,147,185,221,132,147,185,114,195,147,185,247,1,148,185,108,64,148,185,207,126,148,185,33,189,148,185,99,251,148,185,147,57,149,185,179,119,149,185,194,181,149,185,191,243,149,185,172,49,150,185,136,111,150,185,82,173,150,185,12,235,150,185,180,40,151,185,75,102,151,185,210,163,151,185,70,225,151,185,170,30,152,185,252,91,152,185,62,153,152,185,110,214,152,185,140,19,153,185,
153,80,153,185,149,141,153,185,128,202,153,185,89,7,154,185,32,68,154,185,215,128,154,185,123,189,154,185,14,250,154,185,144,54,155,185,0,115,155,185,95,175,155,185,172,235,155,185,231,39,156,185,17,100,156,185,41,160,156,185,47,220,156,185,36,24,157,185,7,84,157,185,216,143,157,185,151,203,157,185,68,7,158,185,224,66,158,185,106,126,158,185,226,185,158,185,72,245,158,185,156,48,159,185,222,107,159,185,14,167,159,185,44,226,159,185,56,29,160,185,50,88,160,185,26,147,160,185,240,205,160,185,180,8,
161,185,101,67,161,185,5,126,161,185,146,184,161,185,13,243,161,185,118,45,162,185,204,103,162,185,17,162,162,185,66,220,162,185,98,22,163,185,111,80,163,185,106,138,163,185,83,196,163,185,41,254,163,185,236,55,164,185,158,113,164,185,60,171,164,185,201,228,164,185,66,30,165,185,169,87,165,185,254,144,165,185,64,202,165,185,111,3,166,185,140,60,166,185,150,117,166,185,141,174,166,185,113,231,166,185,67,32,167,185,2,89,167,185,175,145,167,185,72,202,167,185,207,2,168,185,66,59,168,185,163,115,168,
185,241,171,168,185,45,228,168,185,85,28,169,185,106,84,169,185,108,140,169,185,92,196,169,185,56,252,169,185,1,52,170,185,183,107,170,185,90,163,170,185,234,218,170,185,103,18,171,185,208,73,171,185,39,129,171,185,106,184,171,185,154,239,171,185,183,38,172,185,192,93,172,185,182,148,172,185,153,203,172,185,105,2,173,185,37,57,173,185,206,111,173,185,100,166,173,185,230,220,173,185,84,19,174,185,175,73,174,185,247,127,174,185,43,182,174,185,76,236,174,185,89,34,175,185,82,88,175,185,56,142,175,185,
11,196,175,185,201,249,175,185,116,47,176,185,12,101,176,185,144,154,176,185,0,208,176,185,92,5,177,185,164,58,177,185,217,111,177,185,250,164,177,185,7,218,177,185,0,15,178,185,230,67,178,185,183,120,178,185,117,173,178,185,31,226,178,185,180,22,179,185,54,75,179,185,164,127,179,185,254,179,179,185,68,232,179,185,118,28,180,185,147,80,180,185,157,132,180,185,146,184,180,185,116,236,180,185,65,32,181,185,250,83,181,185,159,135,181,185,48,187,181,185,172,238,181,185,20,34,182,185,104,85,182,185,168,
136,182,185,211,187,182,185,234,238,182,185,237,33,183,185,219,84,183,185,181,135,183,185,123,186,183,185,44,237,183,185,201,31,184,185,81,82,184,185,197,132,184,185,36,183,184,185,111,233,184,185,165,27,185,185,198,77,185,185,211,127,185,185,204,177,185,185,175,227,185,185,127,21,186,185,57,71,186,185,223,120,186,185,112,170,186,185,236,219,186,185,84,13,187,185,167,62,187,185,229,111,187,185,14,161,187,185,35,210,187,185,35,3,188,185,13,52,188,185,227,100,188,185,165,149,188,185,81,198,188,185,
232,246,188,185,106,39,189,185,216,87,189,185,48,136,189,185,115,184,189,185,162,232,189,185,187,24,190,185,191,72,190,185,174,120,190,185,136,168,190,185,77,216,190,185,253,7,191,185,152,55,191,185,29,103,191,185,142,150,191,185,233,197,191,185,47,245,191,185,95,36,192,185,123,83,192,185,129,130,192,185,113,177,192,185,77,224,192,185,19,15,193,185,196,61,193,185,95,108,193,185,229,154,193,185,86,201,193,185,177,247,193,185,247,37,194,185,39,84,194,185,66,130,194,185,71,176,194,185,55,222,194,185,
18,12,195,185,214,57,195,185,134,103,195,185,31,149,195,185,163,194,195,185,18,240,195,185,106,29,196,185,174,74,196,185,219,119,196,185,243,164,196,185,245,209,196,185,225,254,196,185,184,43,197,185,121,88,197,185,36,133,197,185,185,177,197,185,56,222,197,185,162,10,198,185,246,54,198,185,52,99,198,185,92,143,198,185,110,187,198,185,106,231,198,185,81,19,199,185,33,63,199,185,219,106,199,185,128,150,199,185,14,194,199,185,135,237,199,185,233,24,200,185,54,68,200,185,108,111,200,185,140,154,200,185,
150,197,200,185,138,240,200,185,104,27,201,185,48,70,201,185,226,112,201,185,125,155,201,185,2,198,201,185,113,240,201,185,202,26,202,185,13,69,202,185,57,111,202,185,79,153,202,185,79,195,202,185,56,237,202,185,12,23,203,185,200,64,203,185,111,106,203,185,255,147,203,185,121,189,203,185,220,230,203,185,41,16,204,185,95,57,204,185,127,98,204,185,137,139,204,185,124,180,204,185,89,221,204,185,31,6,205,185,206,46,205,185,103,87,205,185,234,127,205,185,86,168,205,185,171,208,205,185,234,248,205,185,
18,33,206,185,35,73,206,185,30,113,206,185,2,153,206,185,208,192,206,185,135,232,206,185,39,16,207,185,176,55,207,185,35,95,207,185,126,134,207,185,196,173,207,185,242,212,207,185,9,252,207,185,10,35,208,185,244,73,208,185,199,112,208,185,131,151,208,185,41,190,208,185,183,228,208,185,47,11,209,185,143,49,209,185,217,87,209,185,12,126,209,185,40,164,209,185,44,202,209,185,26,240,209,185,241,21,210,185,177,59,210,185,90,97,210,185,236,134,210,185,102,172,210,185,202,209,210,185,23,247,210,185,76,28,
211,185,106,65,211,185,114,102,211,185,98,139,211,185,59,176,211,185,253,212,211,185,167,249,211,185,59,30,212,185,183,66,212,185,28,103,212,185,105,139,212,185,160,175,212,185,191,211,212,185,199,247,212,185,184,27,213,185,145,63,213,185,83,99,213,185,254,134,213,185,145,170,213,185,13,206,213,185,114,241,213,185,191,20,214,185,245,55,214,185,20,91,214,185,27,126,214,185,10,161,214,185,226,195,214,185,163,230,214,185,76,9,215,185,222,43,215,185,88,78,215,185,187,112,215,185,6,147,215,185,58,181,
215,185,86,215,215,185,91,249,215,185,72,27,216,185,29,61,216,185,219,94,216,185,129,128,216,185,15,162,216,185,134,195,216,185,230,228,216,185,45,6,217,185,93,39,217,185,117,72,217,185,118,105,217,185,95,138,217,185,48,171,217,185,233,203,217,185,139,236,217,185,21,13,218,185,135,45,218,185,225,77,218,185,36,110,218,185,78,142,218,185,97,174,218,185,92,206,218,185,63,238,218,185,11,14,219,185,190,45,219,185,90,77,219,185,222,108,219,185,73,140,219,185,157,171,219,185,217,202,219,185,253,233,219,
185,10,9,220,185,254,39,220,185,218,70,220,185,158,101,220,185,74,132,220,185,223,162,220,185,91,193,220,185,191,223,220,185,11,254,220,185,63,28,221,185,91,58,221,185,95,88,221,185,75,118,221,185,31,148,221,185,218,177,221,185,126,207,221,185,9,237,221,185,125,10,222,185,216,39,222,185,27,69,222,185,70,98,222,185,89,127,222,185,83,156,222,185,53,185,222,185,255,213,222,185,177,242,222,185,75,15,223,185,204,43,223,185,54,72,223,185,134,100,223,185,191,128,223,185,223,156,223,185,232,184,223,185,215,
212,223,185,175,240,223,185,110,12,224,185,21,40,224,185,163,67,224,185,25,95,224,185,119,122,224,185,188,149,224,185,233,176,224,185,254,203,224,185,250,230,224,185,222,1,225,185,170,28,225,185,93,55,225,185,247,81,225,185,121,108,225,185,227,134,225,185,52,161,225,185,109,187,225,185,141,213,225,185,149,239,225,185,132,9,226,185,91,35,226,185,25,61,226,185,191,86,226,185,76,112,226,185,192,137,226,185,28,163,226,185,96,188,226,185,139,213,226,185,157,238,226,185,151,7,227,185,120,32,227,185,64,
57,227,185,240,81,227,185,136,106,227,185,6,131,227,185,108,155,227,185,186,179,227,185,238,203,227,185,10,228,227,185,14,252,227,185,248,19,228,185,202,43,228,185,132,67,228,185,36,91,228,185,172,114,228,185,27,138,228,185,113,161,228,185,175,184,228,185,212,207,228,185,224,230,228,185,211,253,228,185,174,20,229,185,112,43,229,185,25,66,229,185,169,88,229,185,32,111,229,185,127,133,229,185,197,155,229,185,242,177,229,185,6,200,229,185,1,222,229,185,228,243,229,185,173,9,230,185,94,31,230,185,246,
52,230,185,117,74,230,185,219,95,230,185,40,117,230,185,92,138,230,185,119,159,230,185,122,180,230,185,99,201,230,185,52,222,230,185,236,242,230,185,138,7,231,185,16,28,231,185,125,48,231,185,209,68,231,185,11,89,231,185,45,109,231,185,54,129,231,185,38,149,231,185,253,168,231,185,187,188,231,185,96,208,231,185,236,227,231,185,94,247,231,185,184,10,232,185,249,29,232,185,33,49,232,185,47,68,232,185,37,87,232,185,2,106,232,185,197,124,232,185,111,143,232,185,1,162,232,185,121,180,232,185,216,198,232,
185,30,217,232,185,75,235,232,185,95,253,232,185,90,15,233,185,59,33,233,185,4,51,233,185,179,68,233,185,73,86,233,185,198,103,233,185,42,121,233,185,117,138,233,185,166,155,233,185,191,172,233,185,190,189,233,185,164,206,233,185,113,223,233,185,36,240,233,185,191,0,234,185,64,17,234,185,168,33,234,185,247,49,234,185,45,66,234,185,73,82,234,185,76,98,234,185,54,114,234,185,7,130,234,185,191,145,234,185,93,161,234,185,226,176,234,185,78,192,234,185,160,207,234,185,217,222,234,185,249,237,234,185,0,
253,234,185,237,11,235,185,193,26,235,185,124,41,235,185,30,56,235,185,166,70,235,185,21,85,235,185,106,99,235,185,167,113,235,185,202,127,235,185,211,141,235,185,196,155,235,185,155,169,235,185,89,183,235,185,253,196,235,185,136,210,235,185,250,223,235,185,82,237,235,185,145,250,235,185,183,7,236,185,195,20,236,185,182,33,236,185,143,46,236,185,80,59,236,185,246,71,236,185,132,84,236,185,248,96,236,185,83,109,236,185,148,121,236,185,188,133,236,185,202,145,236,185,191,157,236,185,155,169,236,185,
93,181,236,185,6,193,236,185,150,204,236,185,12,216,236,185,105,227,236,185,172,238,236,185,214,249,236,185,230,4,237,185,221,15,237,185,187,26,237,185,127,37,237,185,41,48,237,185,187,58,237,185,50,69,237,185,145,79,237,185,214,89,237,185,1,100,237,185,19,110,237,185,12,120,237,185,235,129,237,185,176,139,237,185,93,149,237,185,239,158,237,185,105,168,237,185,200,177,237,185,15,187,237,185,59,196,237,185,79,205,237,185,73,214,237,185,41,223,237,185,240,231,237,185,157,240,237,185,49,249,237,185,
172,1,238,185,13,10,238,185,84,18,238,185,130,26,238,185,151,34,238,185,146,42,238,185,115,50,238,185,59,58,238,185,234,65,238,185,127,73,238,185,250,80,238,185,92,88,238,185,165,95,238,185,212,102,238,185,233,109,238,185,229,116,238,185,200,123,238,185,145,130,238,185,64,137,238,185,214,143,238,185,82,150,238,185,181,156,238,185,255,162,238,185,47,169,238,185,69,175,238,185,66,181,238,185,37,187,238,185,239,192,238,185,159,198,238,185,54,204,238,185,179,209,238,185,23,215,238,185,97,220,238,185,
145,225,238,185,168,230,238,185,166,235,238,185,138,240,238,185,84,245,238,185,5,250,238,185,157,254,238,185,27,3,239,185,127,7,239,185,202,11,239,185,251,15,239,185,19,20,239,185,18,24,239,185,246,27,239,185,194,31,239,185,115,35,239,185,11,39,239,185,138,42,239,185,239,45,239,185,59,49,239,185,109,52,239,185,133,55,239,185,132,58,239,185,106,61,239,185,54,64,239,185,232,66,239,185,129,69,239,185,1,72,239,185,102,74,239,185,179,76,239,185,230,78,239,185,255,80,239,185,255,82,239,185,229,84,239,185,
178,86,239,185,101,88,239,185,255,89,239,185,127,91,239,185,230,92,239,185,51,94,239,185,102,95,239,185,128,96,239,185,129,97,239,185,104,98,239,185,54,99,239,185,234,99,239,185,133,100,239,185,6,101,239,185,109,101,239,185,187,101,239,185,240,101,239,185,11,102,239,185,13,102,239,185,245,101,239,185,196,101,239,185,121,101,239,185,20,101,239,185,151,100,239,185,255,99,239,185,78,99,239,185,132,98,239,185,160,97,239,185,163,96,239,185,140,95,239,185,92,94,239,185,19,93,239,185,176,91,239,185,51,90,
239,185,157,88,239,185,237,86,239,185,36,85,239,185,66,83,239,185,70,81,239,185,49,79,239,185,2,77,239,185,186,74,239,185,88,72,239,185,221,69,239,185,73,67,239,185,155,64,239,185,211,61,239,185,242,58,239,185,248,55,239,185,229,52,239,185,183,49,239,185,113,46,239,185,17,43,239,185,152,39,239,185,5,36,239,185,89,32,239,185,147,28,239,185,180,24,239,185,188,20,239,185,170,16,239,185,127,12,239,185,59,8,239,185,221,3,239,185,101,255,238,185,213,250,238,185,43,246,238,185,103,241,238,185,139,236,238,
185,148,231,238,185,133,226,238,185,92,221,238,185,26,216,238,185,191,210,238,185,74,205,238,185,187,199,238,185,20,194,238,185,83,188,238,185,121,182,238,185,133,176,238,185,121,170,238,185,83,164,238,185,19,158,238,185,186,151,238,185,72,145,238,185,189,138,238,185,24,132,238,185,91,125,238,185,131,118,238,185,147,111,238,185,137,104,238,185,102,97,238,185,42,90,238,185,212,82,238,185,102,75,238,185,222,67,238,185,60,60,238,185,130,52,238,185,174,44,238,185,193,36,238,185,187,28,238,185,155,20,
238,185,99,12,238,185,17,4,238,185,166,251,237,185,34,243,237,185,132,234,237,185,206,225,237,185,254,216,237,185,21,208,237,185,19,199,237,185,247,189,237,185,195,180,237,185,117,171,237,185,14,162,237,185,142,152,237,185,245,142,237,185,67,133,237,185,120,123,237,185,147,113,237,185,150,103,237,185,127,93,237,185,79,83,237,185,6,73,237,185,164,62,237,185,41,52,237,185,149,41,237,185,232,30,237,185,34,20,237,185,66,9,237,185,74,254,236,185,56,243,236,185,14,232,236,185,202,220,236,185,110,209,236,
185,248,197,236,185,105,186,236,185,194,174,236,185,1,163,236,185,39,151,236,185,53,139,236,185,41,127,236,185,5,115,236,185,199,102,236,185,112,90,236,185,1,78,236,185,121,65,236,185,215,52,236,185,29,40,236,185,74,27,236,185,93,14,236,185,88,1,236,185,58,244,235,185,3,231,235,185,179,217,235,185,75,204,235,185,201,190,235,185,47,177,235,185,123,163,235,185,175,149,235,185,202,135,235,185,204,121,235,185,182,107,235,185,134,93,235,185,62,79,235,185,220,64,235,185,98,50,235,185,208,35,235,185,36,
21,235,185,96,6,235,185,130,247,234,185,141,232,234,185,126,217,234,185,86,202,234,185,22,187,234,185,189,171,234,185,76,156,234,185,193,140,234,185,30,125,234,185,98,109,234,185,142,93,234,185,161,77,234,185,155,61,234,185,124,45,234,185,69,29,234,185,245,12,234,185,141,252,233,185,12,236,233,185,114,219,233,185,192,202,233,185,245,185,233,185,17,169,233,185,21,152,233,185,0,135,233,185,211,117,233,185,141,100,233,185,47,83,233,185,184,65,233,185,40,48,233,185,128,30,233,185,191,12,233,185,230,250,
232,185,244,232,232,185,234,214,232,185,200,196,232,185,141,178,232,185,57,160,232,185,205,141,232,185,73,123,232,185,172,104,232,185,246,85,232,185,40,67,232,185,66,48,232,185,68,29,232,185,45,10,232,185,253,246,231,185,182,227,231,185,85,208,231,185,221,188,231,185,76,169,231,185,163,149,231,185,226,129,231,185,8,110,231,185,22,90,231,185,11,70,231,185,233,49,231,185,174,29,231,185,90,9,231,185,239,244,230,185,107,224,230,185,207,203,230,185,27,183,230,185,79,162,230,185,106,141,230,185,109,120,
230,185,88,99,230,185,43,78,230,185,230,56,230,185,136,35,230,185,18,14,230,185,133,248,229,185,223,226,229,185,33,205,229,185,75,183,229,185,93,161,229,185,86,139,229,185,56,117,229,185,2,95,229,185,179,72,229,185,77,50,229,185,206,27,229,185,56,5,229,185,137,238,228,185,194,215,228,185,228,192,228,185,237,169,228,185,223,146,228,185,185,123,228,185,122,100,228,185,36,77,228,185,182,53,228,185,48,30,228,185,146,6,228,185,220,238,227,185,14,215,227,185,41,191,227,185,43,167,227,185,22,143,227,185,
233,118,227,185,164,94,227,185,72,70,227,185,211,45,227,185,71,21,227,185,163,252,226,185,231,227,226,185,20,203,226,185,40,178,226,185,37,153,226,185,11,128,226,185,217,102,226,185,142,77,226,185,45,52,226,185,179,26,226,185,34,1,226,185,122,231,225,185,186,205,225,185,226,179,225,185,242,153,225,185,235,127,225,185,205,101,225,185,151,75,225,185,73,49,225,185,228,22,225,185,103,252,224,185,211,225,224,185,39,199,224,185,100,172,224,185,137,145,224,185,151,118,224,185,141,91,224,185,108,64,224,185,
52,37,224,185,228,9,224,185,125,238,223,185,254,210,223,185,104,183,223,185,187,155,223,185,246,127,223,185,26,100,223,185,39,72,223,185,28,44,223,185,250,15,223,185,193,243,222,185,112,215,222,185,9,187,222,185,138,158,222,185,244,129,222,185,70,101,222,185,130,72,222,185,166,43,222,185,179,14,222,185,169,241,221,185,136,212,221,185,80,183,221,185,0,154,221,185,154,124,221,185,28,95,221,185,135,65,221,185,219,35,221,185,25,6,221,185,63,232,220,185,78,202,220,185,70,172,220,185,39,142,220,185,241,
111,220,185,165,81,220,185,65,51,220,185,198,20,220,185,53,246,219,185,140,215,219,185,205,184,219,185,247,153,219,185,10,123,219,185,6,92,219,185,235,60,219,185,185,29,219,185,113,254,218,185,18,223,218,185,156,191,218,185,15,160,218,185,108,128,218,185,178,96,218,185,225,64,218,185,249,32,218,185,251,0,218,185,230,224,217,185,186,192,217,185,120,160,217,185,31,128,217,185,176,95,217,185,42,63,217,185,141,30,217,185,218,253,216,185,16,221,216,185,48,188,216,185,57,155,216,185,43,122,216,185,8,89,
216,185,205,55,216,185,125,22,216,185,21,245,215,185,152,211,215,185,4,178,215,185,89,144,215,185,152,110,215,185,193,76,215,185,212,42,215,185,208,8,215,185,182,230,214,185,133,196,214,185,62,162,214,185,225,127,214,185,110,93,214,185,228,58,214,185,69,24,214,185,143,245,213,185,194,210,213,185,224,175,213,185,232,140,213,185,217,105,213,185,180,70,213,185,121,35,213,185,40,0,213,185,193,220,212,185,68,185,212,185,177,149,212,185,8,114,212,185,72,78,212,185,115,42,212,185,136,6,212,185,135,226,211,
185,111,190,211,185,66,154,211,185,255,117,211,185,167,81,211,185,56,45,211,185,179,8,211,185,25,228,210,185,104,191,210,185,162,154,210,185,198,117,210,185,212,80,210,185,205,43,210,185,176,6,210,185,125,225,209,185,52,188,209,185,214,150,209,185,97,113,209,185,216,75,209,185,56,38,209,185,131,0,209,185,185,218,208,185,216,180,208,185,227,142,208,185,215,104,208,185,182,66,208,185,128,28,208,185,52,246,207,185,210,207,207,185,91,169,207,185,207,130,207,185,45,92,207,185,118,53,207,185,169,14,207,
185,199,231,206,185,208,192,206,185,195,153,206,185,161,114,206,185,106,75,206,185,29,36,206,185,187,252,205,185,68,213,205,185,183,173,205,185,21,134,205,185,94,94,205,185,146,54,205,185,177,14,205,185,186,230,204,185,175,190,204,185,142,150,204,185,88,110,204,185,13,70,204,185,173,29,204,185,56,245,203,185,174,204,203,185,15,164,203,185,91,123,203,185,146,82,203,185,180,41,203,185,193,0,203,185,185,215,202,185,156,174,202,185,106,133,202,185,36,92,202,185,201,50,202,185,88,9,202,185,211,223,201,
185,58,182,201,185,139,140,201,185,200,98,201,185,240,56,201,185,3,15,201,185,1,229,200,185,235,186,200,185,192,144,200,185,129,102,200,185,45,60,200,185,196,17,200,185,71,231,199,185,181,188,199,185,15,146,199,185,84,103,199,185,133,60,199,185,161,17,199,185,168,230,198,185,156,187,198,185,122,144,198,185,69,101,198,185,251,57,198,185,156,14,198,185,42,227,197,185,162,183,197,185,7,140,197,185,87,96,197,185,147,52,197,185,187,8,197,185,207,220,196,185,206,176,196,185,185,132,196,185,144,88,196,185,
83,44,196,185,2,0,196,185,156,211,195,185,35,167,195,185,149,122,195,185,243,77,195,185,62,33,195,185,116,244,194,185,150,199,194,185,164,154,194,185,159,109,194,185,133,64,194,185,88,19,194,185,22,230,193,185,193,184,193,185,88,139,193,185,219,93,193,185,74,48,193,185,165,2,193,185,237,212,192,185,33,167,192,185,65,121,192,185,78,75,192,185,70,29,192,185,43,239,191,185,253,192,191,185,186,146,191,185,101,100,191,185,251,53,191,185,126,7,191,185,238,216,190,185,74,170,190,185,146,123,190,185,199,
76,190,185,232,29,190,185,246,238,189,185,241,191,189,185,216,144,189,185,172,97,189,185,108,50,189,185,25,3,189,185,179,211,188,185,58,164,188,185,173,116,188,185,13,69,188,185,89,21,188,185,147,229,187,185,185,181,187,185,204,133,187,185,204,85,187,185,185,37,187,185,147,245,186,185,89,197,186,185,13,149,186,185,173,100,186,185,59,52,186,185,181,3,186,185,29,211,185,185,113,162,185,185,179,113,185,185,226,64,185,185,253,15,185,185,6,223,184,185,252,173,184,185,224,124,184,185,176,75,184,185,110,
26,184,185,24,233,183,185,177,183,183,185,54,134,183,185,169,84,183,185,9,35,183,185,86,241,182,185,145,191,182,185,185,141,182,185,207,91,182,185,209,41,182,185,194,247,181,185,160,197,181,185,107,147,181,185,36,97,181,185,203,46,181,185,95,252,180,185,224,201,180,185,79,151,180,185,172,100,180,185,247,49,180,185,47,255,179,185,85,204,179,185,104,153,179,185,106,102,179,185,89,51,179,185,54,0,179,185,0,205,178,185,185,153,178,185,95,102,178,185,243,50,178,185,118,255,177,185,230,203,177,185,68,152,
177,185,144,100,177,185,202,48,177,185,242,252,176,185,8,201,176,185,12,149,176,185,254,96,176,185,222,44,176,185,173,248,175,185,105,196,175,185,20,144,175,185,173,91,175,185,52,39,175,185,169,242,174,185,13,190,174,185,95,137,174,185,159,84,174,185,206,31,174,185,235,234,173,185,246,181,173,185,240,128,173,185,216,75,173,185,175,22,173,185,116,225,172,185,39,172,172,185,202,118,172,185,90,65,172,185,217,11,172,185,71,214,171,185,164,160,171,185,239,106,171,185,40,53,171,185,81,255,170,185,104,201,
170,185,110,147,170,185,98,93,170,185,70,39,170,185,24,241,169,185,217,186,169,185,137,132,169,185,40,78,169,185,181,23,169,185,50,225,168,185,157,170,168,185,248,115,168,185,65,61,168,185,122,6,168,185,161,207,167,185,184,152,167,185,190,97,167,185,178,42,167,185,150,243,166,185,105,188,166,185,44,133,166,185,221,77,166,185,126,22,166,185,14,223,165,185,141,167,165,185,252,111,165,185,90,56,165,185,167,0,165,185,228,200,164,185,16,145,164,185,43,89,164,185,54,33,164,185,48,233,163,185,26,177,163,
185,244,120,163,185,189,64,163,185,117,8,163,185,29,208,162,185,181,151,162,185,60,95,162,185,180,38,162,185,26,238,161,185,113,181,161,185,183,124,161,185,237,67,161,185,19,11,161,185,40,210,160,185,46,153,160,185,35,96,160,185,9,39,160,185,222,237,159,185,163,180,159,185,88,123,159,185,253,65,159,185,146,8,159,185,23,207,158,185,140,149,158,185,242,91,158,185,71,34,158,185,141,232,157,185,194,174,157,185,232,116,157,185,254,58,157,185,5,1,157,185,251,198,156,185,226,140,156,185,186,82,156,185,129,
24,156,185,57,222,155,185,226,163,155,185,122,105,155,185,4,47,155,185,125,244,154,185,232,185,154,185,66,127,154,185,142,68,154,185,201,9,154,185,246,206,153,185,19,148,153,185,33,89,153,185,31,30,153,185,14,227,152,185,238,167,152,185,191,108,152,185,128,49,152,185,50,246,151,185,213,186,151,185,105,127,151,185,238,67,151,185,99,8,151,185,202,204,150,185,33,145,150,185,106,85,150,185,163,25,150,185,206,221,149,185,234,161,149,185,246,101,149,185,244,41,149,185,227,237,148,185,195,177,148,185,149,
117,148,185,87,57,148,185,11,253,147,185,176,192,147,185,70,132,147,185,206,71,147,185,71,11,147,185,177,206,146,185,13,146,146,185,90,85,146,185,153,24,146,185,201,219,145,185,235,158,145,185,254,97,145,185,3,37,145,185,249,231,144,185,225,170,144,185,186,109,144,185,134,48,144,185,67,243,143,185,241,181,143,185,146,120,143,185,36,59,143,185,168,253,142,185,29,192,142,185,133,130,142,185,223,68,142,185,42,7,142,185,103,201,141,185,150,139,141,185,184,77,141,185,203,15,141,185,208,209,140,185,200,
147,140,185,177,85,140,185,141,23,140,185,90,217,139,185,26,155,139,185,204,92,139,185,113,30,139,185,7,224,138,185,144,161,138,185,11,99,138,185,120,36,138,185,216,229,137,185,42,167,137,185,111,104,137,185,166,41,137,185,208,234,136,185,236,171,136,185,250,108,136,185,251,45,136,185,239,238,135,185,213,175,135,185,174,112,135,185,121,49,135,185,56,242,134,185,232,178,134,185,140,115,134,185,35,52,134,185,172,244,133,185,40,181,133,185,151,117,133,185,248,53,133,185,77,246,132,185,149,182,132,185,
207,118,132,185,253,54,132,185,29,247,131,185,49,183,131,185,55,119,131,185,49,55,131,185,30,247,130,185,254,182,130,185,209,118,130,185,151,54,130,185,81,246,129,185,254,181,129,185,158,117,129,185,49,53,129,185,184,244,128,185,50,180,128,185,159,115,128,185,0,51,128,185,170,228,127,185,57,99,127,185,176,225,126,185,14,96,126,185,83,222,125,185,127,92,125,185,147,218,124,185,141,88,124,185,111,214,123,185,57,84,123,185,233,209,122,185,130,79,122,185,2,205,121,185,105,74,121,185,185,199,120,185,240,
68,120,185,15,194,119,185,21,63,119,185,4,188,118,185,218,56,118,185,153,181,117,185,63,50,117,185,206,174,116,185,69,43,116,185,164,167,115,185,236,35,115,185,28,160,114,185,52,28,114,185,53,152,113,185,30,20,113,185,240,143,112,185,170,11,112,185,77,135,111,185,217,2,111,185,78,126,110,185,171,249,109,185,242,116,109,185,33,240,108,185,58,107,108,185,59,230,107,185,38,97,107,185,250,219,106,185,183,86,106,185,94,209,105,185,238,75,105,185,103,198,104,185,202,64,104,185,23,187,103,185,77,53,103,
185,108,175,102,185,118,41,102,185,105,163,101,185,70,29,101,185,13,151,100,185,189,16,100,185,88,138,99,185,221,3,99,185,76,125,98,185,165,246,97,185,233,111,97,185,23,233,96,185,47,98,96,185,49,219,95,185,30,84,95,185,246,204,94,185,184,69,94,185,100,190,93,185,252,54,93,185,126,175,92,185,235,39,92,185,67,160,91,185,133,24,91,185,179,144,90,185,204,8,90,185,208,128,89,185,191,248,88,185,153,112,88,185,95,232,87,185,16,96,87,185,172,215,86,185,52,79,86,185,167,198,85,185,6,62,85,185,80,181,84,185,
134,44,84,185,168,163,83,185,182,26,83,185,175,145,82,185,149,8,82,185,102,127,81,185,35,246,80,185,205,108,80,185,99,227,79,185,229,89,79,185,83,208,78,185,173,70,78,185,244,188,77,185,39,51,77,185,71,169,76,185,83,31,76,185,76,149,75,185,50,11,75,185,4,129,74,185,196,246,73,185,112,108,73,185,9,226,72,185,142,87,72,185,1,205,71,185,97,66,71,185,175,183,70,185,233,44,70,185,17,162,69,185,38,23,69,185,40,140,68,185,24,1,68,185,245,117,67,185,192,234,66,185,121,95,66,185,31,212,65,185,179,72,65,185,
52,189,64,185,164,49,64,185,1,166,63,185,77,26,63,185,134,142,62,185,174,2,62,185,196,118,61,185,200,234,60,185,186,94,60,185,154,210,59,185,105,70,59,185,39,186,58,185,211,45,58,185,109,161,57,185,246,20,57,185,110,136,56,185,213,251,55,185,42,111,55,185,110,226,54,185,161,85,54,185,195,200,53,185,213,59,53,185,213,174,52,185,196,33,52,185,163,148,51,185,113,7,51,185,46,122,50,185,219,236,49,185,119,95,49,185,3,210,48,185,126,68,48,185,233,182,47,185,68,41,47,185,142,155,46,185,201,13,46,185,243,
127,45,185,13,242,44,185,23,100,44,185,17,214,43,185,251,71,43,185,214,185,42,185,161,43,42,185,92,157,41,185,7,15,41,185,163,128,40,185,47,242,39,185,172,99,39,185,26,213,38,185,120,70,38,185,199,183,37,185,6,41,37,185,55,154,36,185,88,11,36,185,107,124,35,185,110,237,34,185,98,94,34,185,72,207,33,185,31,64,33,185,231,176,32,185,161,33,32,185,76,146,31,185,232,2,31,185,118,115,30,185,245,227,29,185,102,84,29,185,201,196,28,185,30,53,28,185,100,165,27,185,156,21,27,185,198,133,26,185,226,245,25,185,
241,101,25,185,241,213,24,185,228,69,24,185,200,181,23,185,159,37,23,185,105,149,22,185,37,5,22,185,211,116,21,185,116,228,20,185,8,84,20,185,142,195,19,185,7,51,19,185,114,162,18,185,209,17,18,185,35,129,17,185,103,240,16,185,159,95,16,185,201,206,15,185,231,61,15,185,248,172,14,185,252,27,14,185,244,138,13,185,223,249,12,185,189,104,12,185,143,215,11,185,85,70,11,185,14,181,10,185,187,35,10,185,92,146,9,185,241,0,9,185,121,111,8,185,245,221,7,185,102,76,7,185,202,186,6,185,35,41,6,185,112,151,5,
185,177,5,5,185,231,115,4,185,16,226,3,185,47,80,3,185,66,190,2,185,73,44,2,185,69,154,1,185,54,8,1,185,27,118,0,185,235,199,255,184,137,163,254,184,17,127,253,184,131,90,252,184,223,53,251,184,38,17,250,184,87,236,248,184,114,199,247,184,120,162,246,184,105,125,245,184,69,88,244,184,11,51,243,184,189,13,242,184,90,232,240,184,226,194,239,184,86,157,238,184,182,119,237,184,1,82,236,184,56,44,235,184,91,6,234,184,106,224,232,184,101,186,231,184,77,148,230,184,33,110,229,184,226,71,228,184,143,33,227,
184,41,251,225,184,177,212,224,184,37,174,223,184,134,135,222,184,213,96,221,184,18,58,220,184,60,19,219,184,83,236,217,184,89,197,216,184,76,158,215,184,46,119,214,184,253,79,213,184,187,40,212,184],"i8",4,y.a+798720);
Q([104,1,211,184,3,218,209,184,141,178,208,184,5,139,207,184,109,99,206,184,195,59,205,184,9,20,204,184,62,236,202,184,99,196,201,184,119,156,200,184,123,116,199,184,111,76,198,184,82,36,197,184,38,252,195,184,234,211,194,184,158,171,193,184,66,131,192,184,216,90,191,184,94,50,190,184,212,9,189,184,60,225,187,184,149,184,186,184,222,143,185,184,26,103,184,184,70,62,183,184,100,21,182,184,116,236,180,184,118,195,179,184,105,154,178,184,79,113,177,184,39,72,176,184,241,30,175,184,174,245,173,184,93,
204,172,184,255,162,171,184,147,121,170,184,27,80,169,184,149,38,168,184,3,253,166,184,100,211,165,184,185,169,164,184,1,128,163,184,61,86,162,184,108,44,161,184,144,2,160,184,167,216,158,184,179,174,157,184,179,132,156,184,167,90,155,184,144,48,154,184,110,6,153,184,64,220,151,184,8,178,150,184,196,135,149,184,118,93,148,184,29,51,147,184,185,8,146,184,75,222,144,184,210,179,143,184,80,137,142,184,195,94,141,184,44,52,140,184,140,9,139,184,226,222,137,184,46,180,136,184,113,137,135,184,170,94,134,
184,218,51,133,184,2,9,132,184,32,222,130,184,53,179,129,184,66,136,128,184,140,186,126,184,131,100,124,184,106,14,122,184,64,184,119,184,6,98,117,184,188,11,115,184,99,181,112,184,250,94,110,184,130,8,108,184,251,177,105,184,102,91,103,184,194,4,101,184,16,174,98,184,80,87,96,184,130,0,94,184,167,169,91,184,191,82,89,184,201,251,86,184,200,164,84,184,185,77,82,184,159,246,79,184,121,159,77,184,71,72,75,184,10,241,72,184,193,153,70,184,110,66,68,184,16,235,65,184,167,147,63,184,53,60,61,184,184,228,
58,184,50,141,56,184,163,53,54,184,10,222,51,184,104,134,49,184,190,46,47,184,11,215,44,184,81,127,42,184,142,39,40,184,196,207,37,184,242,119,35,184,25,32,33,184,57,200,30,184,83,112,28,184,102,24,26,184,115,192,23,184,122,104,21,184,123,16,19,184,119,184,16,184,110,96,14,184,96,8,12,184,78,176,9,184,55,88,7,184,27,0,5,184,252,167,2,184,217,79,0,184,103,239,251,183,20,63,247,183,187,142,242,183,94,222,237,183,251,45,233,183,148,125,228,183,42,205,223,183,188,28,219,183,75,108,214,183,216,187,209,
183,99,11,205,183,237,90,200,183,118,170,195,183,254,249,190,183,135,73,186,183,17,153,181,183,156,232,176,183,40,56,172,183,183,135,167,183,72,215,162,183,221,38,158,183,117,118,153,183,17,198,148,183,178,21,144,183,89,101,139,183,5,181,134,183,183,4,130,183,223,168,122,183,95,72,113,183,238,231,103,183,142,135,94,183,63,39,85,183,3,199,75,183,217,102,66,183,196,6,57,183,197,166,47,183,220,70,38,183,10,231,28,183,80,135,19,183,176,39,10,183,42,200,0,183,128,209,238,182,227,18,220,182,130,84,201,
182,92,150,182,182,118,216,163,182,208,26,145,182,217,186,124,182,156,64,87,182,236,198,49,182,205,77,12,182,134,170,205,181,164,186,130,181,244,47,223,180,64,11,25,52,6,27,60,53,76,248,168,53,187,225,243,53,228,100,31,54,53,216,68,54,206,74,106,54,85,222,135,54,226,150,154,54,13,79,173,54,211,6,192,54,51,190,210,54,43,117,229,54,184,43,248,54,237,112,5,55,198,203,14,55,103,38,24,55,207,128,33,55,253,218,42,55,239,52,52,55,166,142,61,55,31,232,70,55,90,65,80,55,86,154,89,55,18,243,98,55,141,75,108,
55,198,163,117,55,188,251,126,55,183,41,132,55,109,213,136,55,0,129,141,55,112,44,146,55,188,215,150,55,227,130,155,55,229,45,160,55,194,216,164,55,121,131,169,55,9,46,174,55,114,216,178,55,180,130,183,55,206,44,188,55,191,214,192,55,135,128,197,55,38,42,202,55,155,211,206,55,230,124,211,55,5,38,216,55,249,206,220,55,193,119,225,55,93,32,230,55,204,200,234,55,14,113,239,55,33,25,244,55,6,193,248,55,189,104,253,55,34,8,1,56,205,91,3,56,97,175,5,56,220,2,8,56,62,86,10,56,135,169,12,56,183,252,14,56,
206,79,17,56,203,162,19,56,174,245,21,56,120,72,24,56,38,155,26,56,186,237,28,56,51,64,31,56,145,146,33,56,212,228,35,56,251,54,38,56,6,137,40,56,245,218,42,56,200,44,45,56,126,126,47,56,23,208,49,56,147,33,52,56,242,114,54,56,51,196,56,56,87,21,59,56,92,102,61,56,67,183,63,56,11,8,66,56,181,88,68,56,64,169,70,56,171,249,72,56,247,73,75,56,35,154,77,56,47,234,79,56,26,58,82,56,229,137,84,56,144,217,86,56,25,41,89,56,129,120,91,56,200,199,93,56,237,22,96,56,240,101,98,56,208,180,100,56,143,3,103,56,
42,82,105,56,163,160,107,56,248,238,109,56,42,61,112,56,56,139,114,56,35,217,116,56,233,38,119,56,138,116,121,56,8,194,123,56,96,15,126,56,73,46,128,56,208,84,129,56,68,123,130,56,165,161,131,56,243,199,132,56,46,238,133,56,86,20,135,56,106,58,136,56,106,96,137,56,87,134,138,56,49,172,139,56,246,209,140,56,167,247,141,56,68,29,143,56,205,66,144,56,65,104,145,56,161,141,146,56,237,178,147,56,35,216,148,56,69,253,149,56,81,34,151,56,73,71,152,56,43,108,153,56,248,144,154,56,176,181,155,56,82,218,156,
56,222,254,157,56,84,35,159,56,181,71,160,56,255,107,161,56,51,144,162,56,81,180,163,56,89,216,164,56,73,252,165,56,36,32,167,56,231,67,168,56,148,103,169,56,41,139,170,56,167,174,171,56,14,210,172,56,94,245,173,56,150,24,175,56,183,59,176,56,191,94,177,56,176,129,178,56,137,164,179,56,74,199,180,56,242,233,181,56,131,12,183,56,250,46,184,56,90,81,185,56,160,115,186,56,206,149,187,56,226,183,188,56,222,217,189,56,192,251,190,56,137,29,192,56,57,63,193,56,207,96,194,56,76,130,195,56,175,163,196,56,
247,196,197,56,38,230,198,56,59,7,200,56,53,40,201,56,21,73,202,56,219,105,203,56,134,138,204,56,22,171,205,56,140,203,206,56,230,235,207,56,38,12,209,56,74,44,210,56,83,76,211,56,64,108,212,56,18,140,213,56,200,171,214,56,99,203,215,56,225,234,216,56,68,10,218,56,138,41,219,56,180,72,220,56,194,103,221,56,179,134,222,56,136,165,223,56,64,196,224,56,219,226,225,56,89,1,227,56,186,31,228,56,254,61,229,56,36,92,230,56,45,122,231,56,25,152,232,56,231,181,233,56,151,211,234,56,41,241,235,56,157,14,237,
56,243,43,238,56,43,73,239,56,69,102,240,56,63,131,241,56,28,160,242,56,217,188,243,56,120,217,244,56,248,245,245,56,89,18,247,56,155,46,248,56,189,74,249,56,192,102,250,56,163,130,251,56,103,158,252,56,11,186,253,56,143,213,254,56,243,240,255,56,28,134,0,57,173,19,1,57,47,161,1,57,161,46,2,57,2,188,2,57,83,73,3,57,147,214,3,57,195,99,4,57,227,240,4,57,242,125,5,57,240,10,6,57,221,151,6,57,186,36,7,57,134,177,7,57,65,62,8,57,236,202,8,57,133,87,9,57,13,228,9,57,132,112,10,57,234,252,10,57,63,137,
11,57,131,21,12,57,181,161,12,57,214,45,13,57,229,185,13,57,227,69,14,57,208,209,14,57,170,93,15,57,115,233,15,57,43,117,16,57,208,0,17,57,100,140,17,57,230,23,18,57,86,163,18,57,180,46,19,57,0,186,19,57,58,69,20,57,97,208,20,57,119,91,21,57,122,230,21,57,106,113,22,57,73,252,22,57,21,135,23,57,206,17,24,57,117,156,24,57,9,39,25,57,138,177,25,57,249,59,26,57,85,198,26,57,158,80,27,57,212,218,27,57,247,100,28,57,8,239,28,57,5,121,29,57,239,2,30,57,198,140,30,57,137,22,31,57,57,160,31,57,214,41,32,
57,96,179,32,57,214,60,33,57,56,198,33,57,135,79,34,57,194,216,34,57,234,97,35,57,254,234,35,57,254,115,36,57,234,252,36,57,194,133,37,57,135,14,38,57,55,151,38,57,211,31,39,57,91,168,39,57,207,48,40,57,46,185,40,57,122,65,41,57,177,201,41,57,211,81,42,57,225,217,42,57,219,97,43,57,192,233,43,57,144,113,44,57,76,249,44,57,242,128,45,57,133,8,46,57,2,144,46,57,106,23,47,57,189,158,47,57,252,37,48,57,37,173,48,57,57,52,49,57,56,187,49,57,34,66,50,57,246,200,50,57,181,79,51,57,95,214,51,57,243,92,52,
57,114,227,52,57,219,105,53,57,46,240,53,57,108,118,54,57,148,252,54,57,166,130,55,57,163,8,56,57,137,142,56,57,90,20,57,57,21,154,57,57,185,31,58,57,72,165,58,57,192,42,59,57,34,176,59,57,110,53,60,57,163,186,60,57,194,63,61,57,203,196,61,57,189,73,62,57,153,206,62,57,94,83,63,57,12,216,63,57,164,92,64,57,37,225,64,57,143,101,65,57,226,233,65,57,30,110,66,57,68,242,66,57,82,118,67,57,73,250,67,57,42,126,68,57,242,1,69,57,164,133,69,57,63,9,70,57,194,140,70,57,45,16,71,57,130,147,71,57,190,22,72,
57,227,153,72,57,241,28,73,57,231,159,73,57,197,34,74,57,139,165,74,57,58,40,75,57,209,170,75,57,79,45,76,57,182,175,76,57,5,50,77,57,60,180,77,57,90,54,78,57,97,184,78,57,79,58,79,57,37,188,79,57,226,61,80,57,135,191,80,57,20,65,81,57,136,194,81,57,227,67,82,57,38,197,82,57,81,70,83,57,98,199,83,57,91,72,84,57,59,201,84,57,2,74,85,57,176,202,85,57,70,75,86,57,194,203,86,57,37,76,87,57,111,204,87,57,160,76,88,57,184,204,88,57,182,76,89,57,155,204,89,57,102,76,90,57,25,204,90,57,177,75,91,57,48,203,
91,57,150,74,92,57,226,201,92,57,20,73,93,57,45,200,93,57,43,71,94,57,16,198,94,57,219,68,95,57,140,195,95,57,35,66,96,57,160,192,96,57,3,63,97,57,75,189,97,57,122,59,98,57,142,185,98,57,136,55,99,57,104,181,99,57,45,51,100,57,215,176,100,57,104,46,101,57,221,171,101,57,56,41,102,57,121,166,102,57,158,35,103,57,169,160,103,57,153,29,104,57,110,154,104,57,41,23,105,57,200,147,105,57,76,16,106,57,182,140,106,57,4,9,107,57,55,133,107,57,79,1,108,57,75,125,108,57,44,249,108,57,242,116,109,57,157,240,
109,57,44,108,110,57,159,231,110,57,247,98,111,57,52,222,111,57,84,89,112,57,89,212,112,57,66,79,113,57,16,202,113,57,193,68,114,57,87,191,114,57,209,57,115,57,47,180,115,57,112,46,116,57,150,168,116,57,159,34,117,57,140,156,117,57,93,22,118,57,18,144,118,57,170,9,119,57,38,131,119,57,134,252,119,57,201,117,120,57,239,238,120,57,249,103,121,57,230,224,121,57,183,89,122,57,107,210,122,57,2,75,123,57,124,195,123,57,217,59,124,57,26,180,124,57,61,44,125,57,68,164,125,57,45,28,126,57,249,147,126,57,168,
11,127,57,58,131,127,57,175,250,127,57,3,57,128,57,160,116,128,57,46,176,128,57,174,235,128,57,31,39,129,57,129,98,129,57,212,157,129,57,24,217,129,57,78,20,130,57,117,79,130,57,140,138,130,57,149,197,130,57,143,0,131,57,122,59,131,57,86,118,131,57,35,177,131,57,225,235,131,57,144,38,132,57,48,97,132,57,193,155,132,57,66,214,132,57,181,16,133,57,24,75,133,57,108,133,133,57,177,191,133,57,231,249,133,57,13,52,134,57,36,110,134,57,44,168,134,57,36,226,134,57,13,28,135,57,231,85,135,57,177,143,135,57,
108,201,135,57,24,3,136,57,180,60,136,57,64,118,136,57,189,175,136,57,42,233,136,57,136,34,137,57,214,91,137,57,21,149,137,57,68,206,137,57,99,7,138,57,115,64,138,57,115,121,138,57,99,178,138,57,68,235,138,57,20,36,139,57,213,92,139,57,134,149,139,57,40,206,139,57,185,6,140,57,59,63,140,57,172,119,140,57,14,176,140,57,96,232,140,57,161,32,141,57,211,88,141,57,245,144,141,57,7,201,141,57,8,1,142,57,250,56,142,57,219,112,142,57,173,168,142,57,110,224,142,57,31,24,143,57,192,79,143,57,80,135,143,57,
209,190,143,57,65,246,143,57,161,45,144,57,240,100,144,57,48,156,144,57,94,211,144,57,125,10,145,57,139,65,145,57,137,120,145,57,118,175,145,57,83,230,145,57,31,29,146,57,219,83,146,57,134,138,146,57,33,193,146,57,171,247,146,57,37,46,147,57,142,100,147,57,230,154,147,57,46,209,147,57,101,7,148,57,139,61,148,57,161,115,148,57,166,169,148,57,154,223,148,57,125,21,149,57,80,75,149,57,18,129,149,57,195,182,149,57,99,236,149,57,242,33,150,57,112,87,150,57,221,140,150,57,58,194,150,57,133,247,150,57,192,
44,151,57,233,97,151,57,1,151,151,57,9,204,151,57,255,0,152,57,228,53,152,57,184,106,152,57,123,159,152,57,45,212,152,57,205,8,153,57,93,61,153,57,219,113,153,57,72,166,153,57,163,218,153,57,238,14,154,57,39,67,154,57,79,119,154,57,101,171,154,57,106,223,154,57,94,19,155,57,64,71,155,57,17,123,155,57,208,174,155,57,126,226,155,57,26,22,156,57,165,73,156,57,30,125,156,57,134,176,156,57,221,227,156,57,33,23,157,57,84,74,157,57,118,125,157,57,133,176,157,57,132,227,157,57,112,22,158,57,75,73,158,57,
20,124,158,57,203,174,158,57,112,225,158,57,4,20,159,57,134,70,159,57,246,120,159,57,84,171,159,57,161,221,159,57,219,15,160,57,3,66,160,57,26,116,160,57,31,166,160,57,17,216,160,57,242,9,161,57,193,59,161,57,126,109,161,57,40,159,161,57,193,208,161,57,71,2,162,57,188,51,162,57,30,101,162,57,110,150,162,57,172,199,162,57,216,248,162,57,241,41,163,57,249,90,163,57,238,139,163,57,209,188,163,57,161,237,163,57,96,30,164,57,12,79,164,57,165,127,164,57,45,176,164,57,162,224,164,57,4,17,165,57,84,65,165,
57,146,113,165,57,189,161,165,57,214,209,165,57,220,1,166,57,208,49,166,57,177,97,166,57,128,145,166,57,60,193,166,57,230,240,166,57,125,32,167,57,1,80,167,57,115,127,167,57,210,174,167,57,31,222,167,57,89,13,168,57,128,60,168,57,148,107,168,57,150,154,168,57,132,201,168,57,96,248,168,57,42,39,169,57,224,85,169,57,132,132,169,57,21,179,169,57,146,225,169,57,253,15,170,57,85,62,170,57,155,108,170,57,205,154,170,57,236,200,170,57,248,246,170,57,242,36,171,57,216,82,171,57,171,128,171,57,107,174,171,
57,24,220,171,57,179,9,172,57,57,55,172,57,173,100,172,57,14,146,172,57,91,191,172,57,150,236,172,57,189,25,173,57,209,70,173,57,210,115,173,57,191,160,173,57,153,205,173,57,96,250,173,57,20,39,174,57,180,83,174,57,65,128,174,57,187,172,174,57,33,217,174,57,116,5,175,57,180,49,175,57,224,93,175,57,248,137,175,57,253,181,175,57,239,225,175,57,205,13,176,57,152,57,176,57,79,101,176,57,243,144,176,57,131,188,176,57,0,232,176,57,105,19,177,57,190,62,177,57,0,106,177,57,46,149,177,57,73,192,177,57,79,
235,177,57,67,22,178,57,34,65,178,57,238,107,178,57,166,150,178,57,74,193,178,57,218,235,178,57,87,22,179,57,192,64,179,57,21,107,179,57,86,149,179,57,132,191,179,57,157,233,179,57,163,19,180,57,148,61,180,57,114,103,180,57,60,145,180,57,242,186,180,57,148,228,180,57,34,14,181,57,156,55,181,57,2,97,181,57,84,138,181,57,146,179,181,57,188,220,181,57,210,5,182,57,211,46,182,57,193,87,182,57,154,128,182,57,96,169,182,57,17,210,182,57,174,250,182,57,55,35,183,57,171,75,183,57,12,116,183,57,88,156,183,
57,144,196,183,57,180,236,183,57,195,20,184,57,190,60,184,57,165,100,184,57,120,140,184,57,54,180,184,57,224,219,184,57,117,3,185,57,246,42,185,57,99,82,185,57,187,121,185,57,255,160,185,57,46,200,185,57,73,239,185,57,80,22,186,57,66,61,186,57,31,100,186,57,232,138,186,57,156,177,186,57,60,216,186,57,200,254,186,57,62,37,187,57,161,75,187,57,238,113,187,57,39,152,187,57,75,190,187,57,91,228,187,57,86,10,188,57,60,48,188,57,14,86,188,57,203,123,188,57,115,161,188,57,6,199,188,57,133,236,188,57,239,
17,189,57,68,55,189,57,133,92,189,57,176,129,189,57,199,166,189,57,201,203,189,57,182,240,189,57,142,21,190,57,82,58,190,57,0,95,190,57,154,131,190,57,30,168,190,57,142,204,190,57,233,240,190,57,46,21,191,57,95,57,191,57,123,93,191,57,130,129,191,57,116,165,191,57,81,201,191,57,24,237,191,57,203,16,192,57,105,52,192,57,241,87,192,57,101,123,192,57,195,158,192,57,12,194,192,57,65,229,192,57,96,8,193,57,105,43,193,57,94,78,193,57,61,113,193,57,8,148,193,57,189,182,193,57,93,217,193,57,231,251,193,57,
92,30,194,57,189,64,194,57,7,99,194,57,61,133,194,57,93,167,194,57,104,201,194,57,93,235,194,57,62,13,195,57,9,47,195,57,190,80,195,57,94,114,195,57,233,147,195,57,94,181,195,57,190,214,195,57,9,248,195,57,62,25,196,57,93,58,196,57,103,91,196,57,92,124,196,57,59,157,196,57,5,190,196,57,185,222,196,57,88,255,196,57,225,31,197,57,84,64,197,57,178,96,197,57,251,128,197,57,45,161,197,57,75,193,197,57,82,225,197,57,68,1,198,57,32,33,198,57,231,64,198,57,152,96,198,57,52,128,198,57,185,159,198,57,41,191,
198,57,131,222,198,57,200,253,198,57,247,28,199,57,16,60,199,57,19,91,199,57,1,122,199,57,217,152,199,57,155,183,199,57,71,214,199,57,221,244,199,57,94,19,200,57,201,49,200,57,30,80,200,57,93,110,200,57,134,140,200,57,153,170,200,57,151,200,200,57,126,230,200,57,80,4,201,57,12,34,201,57,178,63,201,57,65,93,201,57,187,122,201,57,31,152,201,57,109,181,201,57,165,210,201,57,199,239,201,57,211,12,202,57,201,41,202,57,169,70,202,57,115,99,202,57,39,128,202,57,197,156,202,57,76,185,202,57,190,213,202,57,
26,242,202,57,95,14,203,57,143,42,203,57,168,70,203,57,171,98,203,57,152,126,203,57,111,154,203,57,47,182,203,57,218,209,203,57,110,237,203,57,236,8,204,57,84,36,204,57,166,63,204,57,225,90,204,57,7,118,204,57,22,145,204,57,15,172,204,57,241,198,204,57,189,225,204,57,115,252,204,57,19,23,205,57,156,49,205,57,15,76,205,57,108,102,205,57,179,128,205,57,227,154,205,57,252,180,205,57,0,207,205,57,237,232,205,57,196,2,206,57,132,28,206,57,46,54,206,57,193,79,206,57,62,105,206,57,165,130,206,57,245,155,
206,57,47,181,206,57,82,206,206,57,95,231,206,57,86,0,207,57,54,25,207,57,255,49,207,57,178,74,207,57,79,99,207,57,213,123,207,57,68,148,207,57,157,172,207,57,223,196,207,57,11,221,207,57,33,245,207,57,31,13,208,57,8,37,208,57,217,60,208,57,148,84,208,57,57,108,208,57,198,131,208,57,62,155,208,57,158,178,208,57,232,201,208,57,28,225,208,57,56,248,208,57,62,15,209,57,46,38,209,57,6,61,209,57,201,83,209,57,116,106,209,57,9,129,209,57,135,151,209,57,238,173,209,57,62,196,209,57,120,218,209,57,155,240,
209,57,168,6,210,57,157,28,210,57,124,50,210,57,68,72,210,57,246,93,210,57,144,115,210,57,20,137,210,57,129,158,210,57,215,179,210,57,23,201,210,57,63,222,210,57,81,243,210,57,76,8,211,57,48,29,211,57,253,49,211,57,180,70,211,57,83,91,211,57,220,111,211,57,78,132,211,57,169,152,211,57,237,172,211,57,26,193,211,57,48,213,211,57,48,233,211,57,24,253,211,57,234,16,212,57,164,36,212,57,72,56,212,57,213,75,212,57,75,95,212,57,170,114,212,57,242,133,212,57,34,153,212,57,60,172,212,57,63,191,212,57,44,210,
212,57,1,229,212,57,191,247,212,57,102,10,213,57,246,28,213,57,111,47,213,57,209,65,213,57,28,84,213,57,80,102,213,57,109,120,213,57,114,138,213,57,97,156,213,57,57,174,213,57,250,191,213,57,163,209,213,57,54,227,213,57,177,244,213,57,22,6,214,57,99,23,214,57,153,40,214,57,184,57,214,57,192,74,214,57,177,91,214,57,139,108,214,57,78,125,214,57,249,141,214,57,141,158,214,57,11,175,214,57,113,191,214,57,192,207,214,57,248,223,214,57,24,240,214,57,34,0,215,57,20,16,215,57,239,31,215,57,179,47,215,57,
96,63,215,57,245,78,215,57,116,94,215,57,219,109,215,57,43,125,215,57,99,140,215,57,133,155,215,57,143,170,215,57,130,185,215,57,94,200,215,57,35,215,215,57,208,229,215,57,102,244,215,57,229,2,216,57,77,17,216,57,157,31,216,57,214,45,216,57,248,59,216,57,3,74,216,57,246,87,216,57,210,101,216,57,151,115,216,57,68,129,216,57,218,142,216,57,89,156,216,57,193,169,216,57,17,183,216,57,74,196,216,57,108,209,216,57,118,222,216,57,105,235,216,57,69,248,216,57,9,5,217,57,182,17,217,57,76,30,217,57,202,42,
217,57,49,55,217,57,129,67,217,57,185,79,217,57,218,91,217,57,228,103,217,57,214,115,217,57,177,127,217,57,117,139,217,57,33,151,217,57,182,162,217,57,51,174,217,57,153,185,217,57,232,196,217,57,31,208,217,57,63,219,217,57,71,230,217,57,57,241,217,57,18,252,217,57,213,6,218,57,128,17,218,57,19,28,218,57,143,38,218,57,244,48,218,57,65,59,218,57,119,69,218,57,149,79,218,57,156,89,218,57,140,99,218,57,100,109,218,57,37,119,218,57,206,128,218,57,96,138,218,57,218,147,218,57,61,157,218,57,137,166,218,
57,189,175,218,57,218,184,218,57,223,193,218,57,205,202,218,57,163,211,218,57,98,220,218,57,9,229,218,57,153,237,218,57,18,246,218,57,115,254,218,57,188,6,219,57,238,14,219,57,9,23,219,57,12,31,219,57,248,38,219,57,204,46,219,57,137,54,219,57,46,62,219,57,188,69,219,57,50,77,219,57,145,84,219,57,216,91,219,57,8,99,219,57,32,106,219,57,33,113,219,57,10,120,219,57,220,126,219,57,151,133,219,57,58,140,219,57,197,146,219,57,57,153,219,57,149,159,219,57,218,165,219,57,8,172,219,57,30,178,219,57,28,184,
219,57,3,190,219,57,210,195,219,57,138,201,219,57,43,207,219,57,180,212,219,57,37,218,219,57,127,223,219,57,193,228,219,57,236,233,219,57,0,239,219,57,251,243,219,57,224,248,219,57,173,253,219,57,98,2,220,57,0,7,220,57,134,11,220,57,245,15,220,57,76,20,220,57,140,24,220,57,180,28,220,57,197,32,220,57,190,36,220,57,160,40,220,57,106,44,220,57,29,48,220,57,184,51,220,57,60,55,220,57,168,58,220,57,253,61,220,57,58,65,220,57,96,68,220,57,110,71,220,57,100,74,220,57,67,77,220,57,11,80,220,57,187,82,220,
57,84,85,220,57,213,87,220,57,62,90,220,57,145,92,220,57,203,94,220,57,238,96,220,57,250,98,220,57,238,100,220,57,202,102,220,57,143,104,220,57,61,106,220,57,211,107,220,57,81,109,220,57,185,110,220,57,8,112,220,57,64,113,220,57,97,114,220,57,106,115,220,57,91,116,220,57,53,117,220,57,248,117,220,57,163,118,220,57,55,119,220,57,179,119,220,57,23,120,220,57,101,120,220,57,154,120,220,57,184,120,220,57,191,120,220,57,174,120,220,57,134,120,220,57,70,120,220,57,239,119,220,57,128,119,220,57,250,118,
220,57,93,118,220,57,168,117,220,57,219,116,220,57,247,115,220,57,252,114,220,57,233,113,220,57,190,112,220,57,125,111,220,57,35,110,220,57,178,108,220,57,42,107,220,57,139,105,220,57,212,103,220,57,5,102,220,57,31,100,220,57,34,98,220,57,13,96,220,57,225,93,220,57,157,91,220,57,66,89,220,57,207,86,220,57,69,84,220,57,164,81,220,57,235,78,220,57,27,76,220,57,51,73,220,57,52,70,220,57,30,67,220,57,240,63,220,57,171,60,220,57,78,57,220,57,218,53,220,57,79,50,220,57,172,46,220,57,242,42,220,57,32,39,
220,57,55,35,220,57,55,31,220,57,31,27,220,57,240,22,220,57,170,18,220,57,76,14,220,57,215,9,220,57,74,5,220,57,166,0,220,57,235,251,219,57,25,247,219,57,47,242,219,57,46,237,219,57,21,232,219,57,229,226,219,57,158,221,219,57,63,216,219,57,201,210,219,57,60,205,219,57,152,199,219,57,220,193,219,57,9,188,219,57,30,182,219,57,29,176,219,57,4,170,219,57,212,163,219,57,140,157,219,57,45,151,219,57,183,144,219,57,42,138,219,57,133,131,219,57,201,124,219,57,246,117,219,57,12,111,219,57,10,104,219,57,241,
96,219,57,193,89,219,57,122,82,219,57,27,75,219,57,165,67,219,57,24,60,219,57,116,52,219,57,184,44,219,57,230,36,219,57,252,28,219,57,251,20,219,57,226,12,219,57,179,4,219,57,108,252,218,57,14,244,218,57,153,235,218,57,13,227,218,57,106,218,218,57,175,209,218,57,222,200,218,57,245,191,218,57,245,182,218,57,222,173,218,57,176,164,218,57,106,155,218,57,14,146,218,57,155,136,218,57,16,127,218,57,110,117,218,57,181,107,218,57,229,97,218,57,254,87,218,57,0,78,218,57,235,67,218,57,191,57,218,57,123,47,
218,57,33,37,218,57,176,26,218,57,39,16,218,57,136,5,218,57,209,250,217,57,3,240,217,57,31,229,217,57,35,218,217,57,17,207,217,57,231,195,217,57,166,184,217,57,79,173,217,57,224,161,217,57,90,150,217,57,190,138,217,57,10,127,217,57,64,115,217,57,94,103,217,57,102,91,217,57,87,79,217,57,48,67,217,57,243,54,217,57,159,42,217,57,52,30,217,57,178,17,217,57,25,5,217,57,106,248,216,57,163,235,216,57,198,222,216,57,209,209,216,57,198,196,216,57,164,183,216,57,107,170,216,57,27,157,216,57,181,143,216,57,
55,130,216,57,163,116,216,57,248,102,216,57,54,89,216,57,93,75,216,57,110,61,216,57,103,47,216,57,74,33,216,57,23,19,216,57,204,4,216,57,107,246,215,57,242,231,215,57,100,217,215,57,190,202,215,57,2,188,215,57,47,173,215,57,69,158,215,57,69,143,215,57,45,128,215,57,0,113,215,57,187,97,215,57,96,82,215,57,238,66,215,57,102,51,215,57,198,35,215,57,17,20,215,57,68,4,215,57,97,244,214,57,103,228,214,57,87,212,214,57,48,196,214,57,243,179,214,57,159,163,214,57,52,147,214,57,179,130,214,57,27,114,214,57,
109,97,214,57,168,80,214,57,205,63,214,57,219,46,214,57,210,29,214,57,179,12,214,57,126,251,213,57,50,234,213,57,208,216,213,57,87,199,213,57,199,181,213,57,34,164,213,57,101,146,213,57,147,128,213,57,170,110,213,57,170,92,213,57,148,74,213,57,104,56,213,57,37,38,213,57,204,19,213,57,92,1,213,57,215,238,212,57,58,220,212,57,136,201,212,57,191,182,212,57,224,163,212,57,234,144,212,57,222,125,212,57,188,106,212,57,132,87,212,57,53,68,212,57,208,48,212,57,85,29,212,57,195,9,212,57,27,246,211,57,94,226,
211,57,137,206,211,57,159,186,211,57,158,166,211,57,135,146,211,57,90,126,211,57,23,106,211,57,190,85,211,57,78,65,211,57,201,44,211,57,45,24,211,57,123,3,211,57,179,238,210,57,213,217,210,57,225,196,210,57,215,175,210,57,182,154,210,57,128,133,210,57,51,112,210,57,209,90,210,57,88,69,210,57,202,47,210,57,37,26,210,57,106,4,210,57,154,238,209,57,179,216,209,57,183,194,209,57,164,172,209,57,124,150,209,57,61,128,209,57,233,105,209,57,127,83,209,57,255,60,209,57,105,38,209,57,189,15,209,57,251,248,
208,57,36,226,208,57,54,203,208,57,51,180,208,57,26,157,208,57,235,133,208,57,166,110,208,57,75,87,208,57,219,63,208,57,85,40,208,57,185,16,208,57,7,249,207,57,64,225,207,57,99,201,207,57,112,177,207,57,104,153,207,57,73,129,207,57,22,105,207,57,204,80,207,57,109,56,207,57,248,31,207,57,109,7,207,57,205,238,206,57,24,214,206,57,76,189,206,57,107,164,206,57,117,139,206,57,105,114,206,57,71,89,206,57,16,64,206,57,195,38,206,57,97,13,206,57,233,243,205,57,92,218,205,57,185,192,205,57,1,167,205,57,52,
141,205,57,81,115,205,57,88,89,205,57,74,63,205,57,39,37,205,57,238,10,205,57,160,240,204,57,61,214,204,57,196,187,204,57,54,161,204,57,146,134,204,57,218,107,204,57,11,81,204,57,40,54,204,57,47,27,204,57,33,0,204,57,254,228,203,57,198,201,203,57,120,174,203,57,21,147,203,57,157,119,203,57,16,92,203,57,109,64,203,57,181,36,203,57,233,8,203,57,7,237,202,57,15,209,202,57,3,181,202,57,226,152,202,57,172,124,202,57,96,96,202,57,0,68,202,57,138,39,202,57,255,10,202,57,96,238,201,57,171,209,201,57,225,
180,201,57,3,152,201,57,15,123,201,57,7,94,201,57,233,64,201,57,183,35,201,57,111,6,201,57,19,233,200,57,162,203,200,57,28,174,200,57,129,144,200,57,209,114,200,57,13,85,200,57,51,55,200,57,69,25,200,57,66,251,199,57,42,221,199,57,254,190,199,57,189,160,199,57,103,130,199,57,252,99,199,57,124,69,199,57,232,38,199,57,63,8,199,57,130,233,198,57,176,202,198,57,201,171,198,57,206,140,198,57,190,109,198,57,153,78,198,57,96,47,198,57,18,16,198,57,176,240,197,57,57,209,197,57,174,177,197,57,14,146,197,57,
89,114,197,57,145,82,197,57,179,50,197,57,194,18,197,57,187,242,196,57,161,210,196,57,114,178,196,57,46,146,196,57,215,113,196,57,106,81,196,57,234,48,196,57,85,16,196,57,172,239,195,57,239,206,195,57,29,174,195,57,55,141,195,57,61,108,195,57,46,75,195,57,11,42,195,57,212,8,195,57,137,231,194,57,42,198,194,57,182,164,194,57,47,131,194,57,147,97,194,57,227,63,194,57,31,30,194,57,71,252,193,57,91,218,193,57,91,184,193,57,71,150,193,57,30,116,193,57,226,81,193,57,146,47,193,57,45,13,193,57,181,234,192,
57,41,200,192,57,137,165,192,57,213,130,192,57,13,96,192,57,49,61,192,57,65,26,192,57,62,247,191,57,39,212,191,57,251,176,191,57,188,141,191,57,106,106,191,57,3,71,191,57,137,35,191,57,251,255,190,57,89,220,190,57,163,184,190,57,218,148,190,57,253,112,190,57,13,77,190,57,8,41,190,57,241,4,190,57,197,224,189,57,134,188,189,57,52,152,189,57,205,115,189,57,84,79,189,57,198,42,189,57,38,6,189,57,113,225,188,57,170,188,188,57,207,151,188,57,224,114,188,57,222,77,188,57,200,40,188,57,159,3,188,57,99,222,
187,57,20,185,187,57,177,147,187,57,58,110,187,57,177,72,187,57,20,35,187,57,100,253,186,57,160,215,186,57,201,177,186,57,223,139,186,57,226,101,186,57,210,63,186,57,175,25,186,57,120,243,185,57,46,205,185,57,209,166,185,57,97,128,185,57,222,89,185,57,72,51,185,57,158,12,185,57,226,229,184,57,19,191,184,57,48,152,184,57,59,113,184,57,51,74,184,57,24,35,184,57,233,251,183,57,168,212,183,57,84,173,183,57,238,133,183,57,116,94,183,57,231,54,183,57,72,15,183,57,150,231,182,57,209,191,182,57,249,151,182,
57,14,112,182,57,17,72,182,57,1,32,182,57,222,247,181,57,169,207,181,57,97,167,181,57,6,127,181,57,153,86,181,57,25,46,181,57,134,5,181,57,225,220,180,57,42,180,180,57,95,139,180,57,131,98,180,57,147,57,180,57,146,16,180,57,126,231,179,57,87,190,179,57,30,149,179,57,210,107,179,57,116,66,179,57,4,25,179,57,130,239,178,57,237,197,178,57,69,156,178,57,140,114,178,57,192,72,178,57,226,30,178,57,241,244,177,57,239,202,177,57,218,160,177,57,179,118,177,57,122,76,177,57,47,34,177,57,209,247,176,57,98,205,
176,57,224,162,176,57,76,120,176,57,167,77,176,57,239,34,176,57,37,248,175,57,73,205,175,57,91,162,175,57,91,119,175,57,74,76,175,57,38,33,175,57,240,245,174,57,169,202,174,57,80,159,174,57,229,115,174,57,104,72,174,57,217,28,174,57,56,241,173,57,134,197,173,57,194,153,173,57,236,109,173,57,4,66,173,57,11,22,173,57,0,234,172,57,228,189,172,57,182,145,172,57,118,101,172,57,36,57,172,57,193,12,172,57,77,224,171,57,199,179,171,57,47,135,171,57,134,90,171,57,204,45,171,57,0,1,171,57,34,212,170,57,51,
167,170,57,51,122,170,57,33,77,170,57,254,31,170,57,202,242,169,57,132,197,169,57,45,152,169,57,197,106,169,57,76,61,169,57,193,15,169,57,37,226,168,57,120,180,168,57,186,134,168,57,234,88,168,57,10,43,168,57,24,253,167,57,21,207,167,57,1,161,167,57,220,114,167,57,166,68,167,57,95,22,167,57,7,232,166,57,158,185,166,57,36,139,166,57,154,92,166,57,254,45,166,57,81,255,165,57,148,208,165,57,197,161,165,57,230,114,165,57,246,67,165,57,245,20,165,57,228,229,164,57,193,182,164,57,142,135,164,57,75,88,164,
57,246,40,164,57,145,249,163,57,27,202,163,57,149,154,163,57,254,106,163,57,86,59,163,57,158,11,163,57,214,219,162,57,253,171,162,57,19,124,162,57,25,76,162,57,14,28,162,57,243,235,161,57,200,187,161,57,140,139,161,57,64,91,161,57,227,42,161,57,118,250,160,57,249,201,160,57,108,153,160,57,206,104,160,57,32,56,160,57,98,7,160,57,147,214,159,57,181,165,159,57,198,116,159,57,199,67,159,57,184,18,159,57,153,225,158,57,106,176,158,57,43,127,158,57,220,77,158,57,125,28,158,57,13,235,157,57,142,185,157,
57,255,135,157,57,96,86,157,57,177,36,157,57,242,242,156,57,36,193,156,57,69,143,156,57,87,93,156,57,89,43,156,57,75,249,155,57,45,199,155,57,0,149,155,57,195,98,155,57,118,48,155,57,26,254,154,57,174,203,154,57,51,153,154,57,167,102,154,57,13,52,154,57,98,1,154,57,168,206,153,57,223,155,153,57,6,105,153,57,30,54,153,57,38,3,153,57,31,208,152,57,9,157,152,57,227,105,152,57,174,54,152,57,105,3,152,57,21,208,151,57,178,156,151,57,64,105,151,57,190,53,151,57,45,2,151,57,141,206,150,57,222,154,150,57,
32,103,150,57,82,51,150,57,118,255,149,57,138,203,149,57,143,151,149,57,134,99,149,57,109,47,149,57,69,251,148,57,14,199,148,57,201,146,148,57,116,94,148,57,17,42,148,57,158,245,147,57,29,193,147,57,141,140,147,57,238,87,147,57,65,35,147,57,133,238,146,57,185,185,146,57,224,132,146,57,247,79,146,57,0,27,146,57,250,229,145,57,230,176,145,57,195,123,145,57,145,70,145,57,81,17,145,57,3,220,144,57,165,166,144,57,58,113,144,57,192,59,144,57,55,6,144,57,160,208,143,57,251,154,143,57,71,101,143,57,133,47,
143,57,181,249,142,57,214,195,142,57,233,141,142,57,238,87,142,57,228,33,142,57,205,235,141,57,167,181,141,57,115,127,141,57,49,73,141,57,225,18,141,57,131,220,140,57,22,166,140,57,156,111,140,57,20,57,140,57,125,2,140,57,217,203,139,57,39,149,139,57,102,94,139,57,152,39,139,57,188,240,138,57,211,185,138,57,219,130,138,57,213,75,138,57,194,20,138,57,161,221,137,57,115,166,137,57,54,111,137,57,236,55,137,57,148,0,137,57,47,201,136,57,188,145,136,57,60,90,136,57,173,34,136,57,18,235,135,57,105,179,
135,57,178,123,135,57,238,67,135,57,28,12,135,57,61,212,134,57,81,156,134,57,87,100,134,57,80,44,134,57,60,244,133,57,26,188,133,57,235,131,133,57,175,75,133,57,101,19,133,57,15,219,132,57,171,162,132,57,58,106,132,57,188,49,132,57,49,249,131,57,152,192,131,57,243,135,131,57,65,79,131,57,129,22,131,57,181,221,130,57,220,164,130,57,246,107,130,57,2,51,130,57,2,250,129,57,246,192,129,57,220,135,129,57,181,78,129,57,130,21,129,57,66,220,128,57,245,162,128,57,156,105,128,57,54,48,128,57,134,237,127,57,
135,122,127,57,111,7,127,57,62,148,126,57,243,32,126,57,144,173,125,57,19,58,125,57,126,198,124,57,208,82,124,57,8,223,123,57,40,107,123,57,47,247,122,57,30,131,122,57,244,14,122,57,177,154,121,57,85,38,121,57,226,177,120,57,85,61,120,57,176,200,119,57,243,83,119,57,30,223,118,57,48,106,118,57,42,245,117,57,12,128,117,57,213,10,117,57,135,149,116,57,33,32,116,57,162,170,115,57,12,53,115,57,94,191,114,57,152,73,114,57,186,211,113,57,197,93,113,57,184,231,112,57,147,113,112,57,87,251,111,57,3,133,111,
57,152,14,111,57,21,152,110,57,123,33,110,57,202,170,109,57,1,52,109,57,34,189,108,57,43,70,108,57,29,207,107,57,248,87,107,57,188,224,106,57,105,105,106,57,255,241,105,57,126,122,105,57,230,2,105,57,56,139,104,57,115,19,104,57,151,155,103,57,165,35,103,57,156,171,102,57,125,51,102,57,71,187,101,57,251,66,101,57,153,202,100,57,32,82,100,57,145,217,99,57,236,96,99,57,49,232,98,57,95,111,98,57,120,246,97,57,123,125,97,57,104,4,97,57,62,139,96,57,0,18,96,57,171,152,95,57,64,31,95,57,192,165,94,57,43,
44,94,57,127,178,93,57,191,56,93,57,233,190,92,57,253,68,92,57,252,202,91,57,230,80,91,57,186,214,90,57,122,92,90,57,36,226,89,57,185,103,89,57,57,237,88,57,164,114,88,57,250,247,87,57,60,125,87,57,104,2,87,57,128,135,86,57,131,12,86,57,113,145,85,57,75,22,85,57,16,155,84,57,193,31,84,57,93,164,83,57,229,40,83,57,88,173,82,57,183,49,82,57,2,182,81,57,57,58,81,57,91,190,80,57,106,66,80,57,100,198,79,57,74,74,79,57,29,206,78,57,220,81,78,57,134,213,77,57,29,89,77,57,161,220,76,57,16,96,76,57,109,227,
75,57,181,102,75,57,234,233,74,57,12,109,74,57,26,240,73,57,21,115,73,57,252,245,72,57,208,120,72,57,145,251,71,57,63,126,71,57,218,0,71,57,98,131,70,57,215,5,70,57,57,136,69,57,136,10,69,57,197,140,68,57,238,14,68,57,5,145,67,57,9,19,67,57,251,148,66,57,218,22,66,57,167,152,65,57,97,26,65,57,8,156,64,57,158,29,64,57,33,159,63,57,146,32,63,57,241,161,62,57,62,35,62,57,120,164,61,57,161,37,61,57,184,166,60,57,188,39,60,57,175,168,59,57,144,41,59,57,96,170,58,57,30,43,58,57,202,171,57,57,100,44,57,
57,237,172,56,57,101,45,56,57,203,173,55,57,32,46,55,57,100,174,54,57,150,46,54,57,183,174,53,57,199,46,53,57,198,174,52,57,180,46,52,57,145,174,51,57,93,46,51,57,24,174,50,57,194,45,50,57,92,173,49,57,228,44,49,57,93,172,48,57,196,43,48,57,27,171,47,57,98,42,47,57,152,169,46,57,190,40,46,57,211,167,45,57,217,38,45,57,206,165,44,57,178,36,44,57,135,163,43,57,76,34,43,57,1,161,42,57,165,31,42,57,58,158,41,57,192,28,41,57,53,155,40,57,154,25,40,57,240,151,39,57,55,22,39,57,110,148,38,57,149,18,38,57,
173,144,37,57,181,14,37,57,174,140,36,57,152,10,36,57,115,136,35,57,63,6,35,57,251,131,34,57,168,1,34,57,71,127,33,57,214,252,32,57,87,122,32,57,200,247,31,57,43,117,31,57,128,242,30,57,197,111,30,57,252,236,29,57,36,106,29,57,62,231,28,57,74,100,28,57,71,225,27,57,53,94,27,57,22,219,26,57,232,87,26,57,172,212,25,57,98,81,25,57,10,206,24,57,164,74,24,57,48,199,23,57,174,67,23,57,30,192,22,57,129,60,22,57,213,184,21,57,28,53,21,57,86,177,20,57,130,45,20,57,160,169,19,57,177,37,19,57,181,161,18,57,
171,29,18,57,148,153,17,57,112,21,17,57,62,145,16,57,0,13,16,57,180,136,15,57,92,4,15,57,246,127,14,57,132,251,13,57,5,119,13,57,121,242,12,57,224,109,12,57,59,233,11,57,137,100,11,57,202,223,10,57,255,90,10,57,40,214,9,57,68,81,9,57,84,204,8,57,87,71,8,57,79,194,7,57,58,61,7,57,25,184,6,57,236,50,6,57,179,173,5,57,110,40,5,57,30,163,4,57,193,29,4,57,89,152,3,57,229,18,3,57,101,141,2,57,218,7,2,57,67,130,1,57,161,252,0,57,244,118,0,57,117,226,255,56,237,214,254,56,77,203,253,56,152,191,252,56,204,
179,251,56,234,167,250,56,242,155,249,56,228,143,248,56,192,131,247,56,135,119,246,56,56,107,245,56,211,94,244,56,89,82,243,56,202,69,242,56,37,57,241,56,108,44,240,56,157,31,239,56,186,18,238,56,194,5,237,56,182,248,235,56,149,235,234,56,96,222,233,56,22,209,232,56,185,195,231,56,71,182,230,56,193,168,229,56,40,155,228,56,123,141,227,56,186,127,226,56,230,113,225,56,255,99,224,56,4,86,223,56,246,71,222,56,214,57,221,56,162,43,220,56,92,29,219,56,3,15,218,56,151,0,217,56,25,242,215,56,137,227,214,
56,230,212,213,56,50,198,212,56,107,183,211,56,147,168,210,56,169,153,209,56,173,138,208,56,160,123,207,56,129,108,206,56,81,93,205,56,16,78,204,56,190,62,203,56,90,47,202,56,230,31,201,56,98,16,200,56,204,0,199,56,39,241,197,56,112,225,196,56,170,209,195,56,211,193,194,56,237,177,193,56,246,161,192,56,240,145,191,56,218,129,190,56,180,113,189,56,127,97,188,56,59,81,187,56,231,64,186,56,133,48,185,56,19,32,184,56,146,15,183,56,3,255,181,56,101,238,180,56,184,221,179,56,253,204,178,56,52,188,177,56,
92,171,176,56,118,154,175,56,131,137,174,56,129,120,173,56,114,103,172,56,85,86,171,56,43,69,170,56,243,51,169,56,174,34,168,56,92,17,167,56,252,255,165,56,144,238,164,56,23,221,163,56,145,203,162,56,255,185,161,56,96,168,160,56,181,150,159,56,253,132,158,56,58,115,157,56,106,97,156,56,142,79,155,56,167,61,154,56,180,43,153,56,181,25,152,56,171,7,151,56,150,245,149,56,117,227,148,56,73,209,147,56,19,191,146,56,209,172,145,56,133,154,144,56,46,136,143,56,204,117,142,56,96,99,141,56,234,80,140,56,106,
62,139,56,223,43,138,56,75,25,137,56,172,6,136,56,4,244,134,56,83,225,133,56,151,206,132,56,211,187,131,56,5,169,130,56,46,150,129,56,78,131,128,56,203,224,126,56,231,186,124,56,242,148,122,56,236,110,120,56,213,72,118,56,174,34,116,56,118,252,113,56,45,214,111,56,213,175,109,56,109,137,107,56,245,98,105,56,110,60,103,56,216,21,101,56,51,239,98,56,128,200,96,56,190,161,94,56,238,122,92,56,15,84,90,56,36,45,88,56,43,6,86,56,36,223,83,56,17,184,81,56,240,144,79,56,195,105,77,56,138,66,75,56,69,27,73,
56,244,243,70,56,151,204,68,56,47,165,66,56,188,125,64,56,61,86,62,56,181,46,60,56],"i8",4,y.a+808960);
Q([33,7,58,56,131,223,55,56,220,183,53,56,42,144,51,56,111,104,49,56,171,64,47,56,221,24,45,56,7,241,42,56,40,201,40,56,64,161,38,56,81,121,36,56,89,81,34,56,90,41,32,56,83,1,30,56,69,217,27,56,48,177,25,56,20,137,23,56,241,96,21,56,201,56,19,56,154,16,17,56,101,232,14,56,43,192,12,56,235,151,10,56,166,111,8,56,92,71,6,56,13,31,4,56,186,246,1,56,196,156,255,55,13,76,251,55,79,251,246,55,137,170,242,55,188,89,238,55,234,8,234,55,17,184,229,55,51,103,225,55,81,22,221,55,106,197,216,55,126,116,212,55,
144,35,208,55,158,210,203,55,170,129,199,55,180,48,195,55,188,223,190,55,195,142,186,55,202,61,182,55,208,236,177,55,214,155,173,55,221,74,169,55,229,249,164,55,239,168,160,55,250,87,156,55,8,7,152,55,26,182,147,55,46,101,143,55,71,20,139,55,99,195,134,55,133,114,130,55,87,67,124,55,177,161,115,55,22,0,107,55,137,94,98,55,10,189,89,55,154,27,81,55,58,122,72,55,235,216,63,55,174,55,55,55,131,150,46,55,109,245,37,55,107,84,29,55,126,179,20,55,168,18,12,55,233,113,3,55,134,162,245,54,108,97,228,54,134,
32,211,54,214,223,193,54,94,159,176,54,31,95,159,54,28,31,142,54,174,190,121,54,162,63,87,54,24,193,52,54,20,67,18,54,50,139,223,53,87,145,154,53,60,49,43,53,109,8,5,52,74,85,209,180,246,148,114,181,101,62,190,181,132,152,1,182,47,17,36,182,47,137,70,182,129,0,105,182,145,187,133,182,135,246,150,182,32,49,168,182,90,107,185,182,53,165,202,182,173,222,219,182,193,23,237,182,112,80,254,182,92,196,7,183,75,96,16,183,4,252,24,183,135,151,33,183,211,50,42,183,230,205,50,183,192,104,59,183,95,3,68,183,
196,157,76,183,237,55,85,183,217,209,93,183,135,107,102,183,246,4,111,183,38,158,119,183,138,27,128,183,225,103,132,183,23,180,136,183,43,0,141,183,29,76,145,183,237,151,149,183,153,227,153,183,34,47,158,183,135,122,162,183,200,197,166,183,228,16,171,183,218,91,175,183,171,166,179,183,86,241,183,183,218,59,188,183,55,134,192,183,108,208,196,183,121,26,201,183,94,100,205,183,26,174,209,183,173,247,213,183,22,65,218,183,85,138,222,183,104,211,226,183,81,28,231,183,14,101,235,183,159,173,239,183,4,246,
243,183,59,62,248,183,69,134,252,183,17,103,0,184,231,138,2,184,167,174,4,184,79,210,6,184,223,245,8,184,87,25,11,184,182,60,13,184,253,95,15,184,44,131,17,184,65,166,19,184,61,201,21,184,32,236,23,184,233,14,26,184,152,49,28,184,45,84,30,184,167,118,32,184,8,153,34,184,77,187,36,184,119,221,38,184,134,255,40,184,122,33,43,184,82,67,45,184,14,101,47,184,173,134,49,184,49,168,51,184,152,201,53,184,226,234,55,184,15,12,58,184,31,45,60,184,17,78,62,184,229,110,64,184,156,143,66,184,52,176,68,184,174,
208,70,184,10,241,72,184,70,17,75,184,100,49,77,184,98,81,79,184,65,113,81,184,0,145,83,184,159,176,85,184,30,208,87,184,124,239,89,184,186,14,92,184,215,45,94,184,211,76,96,184,173,107,98,184,102,138,100,184,253,168,102,184,115,199,104,184,198,229,106,184,246,3,109,184,4,34,111,184,240,63,113,184,184,93,115,184,92,123,117,184,222,152,119,184,59,182,121,184,117,211,123,184,138,240,125,184,189,6,128,184,35,21,129,184,119,35,130,184,184,49,131,184,231,63,132,184,2,78,133,184,11,92,134,184,1,106,135,
184,228,119,136,184,179,133,137,184,111,147,138,184,24,161,139,184,173,174,140,184,47,188,141,184,156,201,142,184,246,214,143,184,60,228,144,184,110,241,145,184,140,254,146,184,149,11,148,184,138,24,149,184,106,37,150,184,53,50,151,184,236,62,152,184,142,75,153,184,27,88,154,184,147,100,155,184,246,112,156,184,67,125,157,184,123,137,158,184,158,149,159,184,170,161,160,184,161,173,161,184,130,185,162,184,78,197,163,184,3,209,164,184,162,220,165,184,42,232,166,184,156,243,167,184,248,254,168,184,61,
10,170,184,107,21,171,184,131,32,172,184,131,43,173,184,108,54,174,184,63,65,175,184,249,75,176,184,157,86,177,184,41,97,178,184,157,107,179,184,250,117,180,184,63,128,181,184,107,138,182,184,128,148,183,184,125,158,184,184,97,168,185,184,45,178,186,184,225,187,187,184,123,197,188,184,254,206,189,184,103,216,190,184,183,225,191,184,239,234,192,184,13,244,193,184,18,253,194,184,253,5,196,184,207,14,197,184,136,23,198,184,39,32,199,184,172,40,200,184,23,49,201,184,104,57,202,184,159,65,203,184,188,
73,204,184,190,81,205,184,166,89,206,184,116,97,207,184,39,105,208,184,191,112,209,184,60,120,210,184,158,127,211,184,229,134,212,184,17,142,213,184,33,149,214,184,22,156,215,184,240,162,216,184,174,169,217,184,80,176,218,184,215,182,219,184,65,189,220,184,143,195,221,184,194,201,222,184,216,207,223,184,209,213,224,184,174,219,225,184,111,225,226,184,18,231,227,184,153,236,228,184,3,242,229,184,80,247,230,184,128,252,231,184,147,1,233,184,136,6,234,184,96,11,235,184,26,16,236,184,183,20,237,184,54,
25,238,184,151,29,239,184,218,33,240,184,254,37,241,184,5,42,242,184,238,45,243,184,184,49,244,184,99,53,245,184,240,56,246,184,94,60,247,184,173,63,248,184,222,66,249,184,239,69,250,184,225,72,251,184,180,75,252,184,104,78,253,184,252,80,254,184,112,83,255,184,227,42,0,185,253,171,0,185,8,45,1,185,2,174,1,185,237,46,2,185,199,175,2,185,145,48,3,185,76,177,3,185,245,49,4,185,143,178,4,185,24,51,5,185,145,179,5,185,249,51,6,185,81,180,6,185,152,52,7,185,206,180,7,185,244,52,8,185,9,181,8,185,14,53,
9,185,1,181,9,185,228,52,10,185,182,180,10,185,118,52,11,185,38,180,11,185,197,51,12,185,82,179,12,185,206,50,13,185,57,178,13,185,147,49,14,185,219,176,14,185,18,48,15,185,56,175,15,185,76,46,16,185,78,173,16,185,63,44,17,185,30,171,17,185,235,41,18,185,167,168,18,185,81,39,19,185,233,165,19,185,111,36,20,185,227,162,20,185,69,33,21,185,149,159,21,185,211,29,22,185,254,155,22,185,24,26,23,185,31,152,23,185,20,22,24,185,246,147,24,185,198,17,25,185,131,143,25,185,46,13,26,185,199,138,26,185,77,8,
27,185,192,133,27,185,32,3,28,185,109,128,28,185,168,253,28,185,208,122,29,185,229,247,29,185,231,116,30,185,213,241,30,185,177,110,31,185,122,235,31,185,47,104,32,185,209,228,32,185,96,97,33,185,220,221,33,185,68,90,34,185,152,214,34,185,217,82,35,185,7,207,35,185,33,75,36,185,39,199,36,185,26,67,37,185,249,190,37,185,196,58,38,185,123,182,38,185,30,50,39,185,174,173,39,185,41,41,40,185,144,164,40,185,228,31,41,185,35,155,41,185,77,22,42,185,100,145,42,185,102,12,43,185,84,135,43,185,46,2,44,185,
243,124,44,185,164,247,44,185,64,114,45,185,199,236,45,185,58,103,46,185,152,225,46,185,225,91,47,185,22,214,47,185,54,80,48,185,64,202,48,185,54,68,49,185,23,190,49,185,227,55,50,185,154,177,50,185,59,43,51,185,200,164,51,185,63,30,52,185,161,151,52,185,237,16,53,185,36,138,53,185,70,3,54,185,82,124,54,185,73,245,54,185,42,110,55,185,245,230,55,185,171,95,56,185,75,216,56,185,213,80,57,185,74,201,57,185,168,65,58,185,241,185,58,185,36,50,59,185,64,170,59,185,71,34,60,185,55,154,60,185,18,18,61,185,
214,137,61,185,131,1,62,185,27,121,62,185,156,240,62,185,7,104,63,185,91,223,63,185,153,86,64,185,192,205,64,185,208,68,65,185,202,187,65,185,174,50,66,185,122,169,66,185,48,32,67,185,207,150,67,185,87,13,68,185,200,131,68,185,34,250,68,185,101,112,69,185,145,230,69,185,166,92,70,185,163,210,70,185,138,72,71,185,89,190,71,185,17,52,72,185,177,169,72,185,58,31,73,185,172,148,73,185,6,10,74,185,72,127,74,185,115,244,74,185,134,105,75,185,130,222,75,185,102,83,76,185,50,200,76,185,230,60,77,185,130,
177,77,185,7,38,78,185,115,154,78,185,200,14,79,185,4,131,79,185,40,247,79,185,52,107,80,185,40,223,80,185,4,83,81,185,199,198,81,185,114,58,82,185,4,174,82,185,126,33,83,185,224,148,83,185,41,8,84,185,90,123,84,185,113,238,84,185,113,97,85,185,87,212,85,185,37,71,86,185,218,185,86,185,118,44,87,185,249,158,87,185,99,17,88,185,180,131,88,185,236,245,88,185,11,104,89,185,17,218,89,185,254,75,90,185,209,189,90,185,139,47,91,185,44,161,91,185,180,18,92,185,34,132,92,185,119,245,92,185,178,102,93,185,
211,215,93,185,219,72,94,185,202,185,94,185,158,42,95,185,89,155,95,185,251,11,96,185,130,124,96,185,240,236,96,185,67,93,97,185,125,205,97,185,157,61,98,185,162,173,98,185,142,29,99,185,95,141,99,185,22,253,99,185,179,108,100,185,54,220,100,185,159,75,101,185,237,186,101,185,32,42,102,185,58,153,102,185,56,8,103,185,29,119,103,185,230,229,103,185,149,84,104,185,42,195,104,185,163,49,105,185,2,160,105,185,70,14,106,185,112,124,106,185,126,234,106,185,114,88,107,185,74,198,107,185,8,52,108,185,170,
161,108,185,49,15,109,185,157,124,109,185,238,233,109,185,36,87,110,185,63,196,110,185,62,49,111,185,33,158,111,185,234,10,112,185,151,119,112,185,40,228,112,185,158,80,113,185,248,188,113,185,55,41,114,185,90,149,114,185,97,1,115,185,77,109,115,185,28,217,115,185,208,68,116,185,104,176,116,185,228,27,117,185,68,135,117,185,136,242,117,185,176,93,118,185,188,200,118,185,172,51,119,185,128,158,119,185,55,9,120,185,210,115,120,185,81,222,120,185,179,72,121,185,249,178,121,185,35,29,122,185,48,135,122,
185,33,241,122,185,245,90,123,185,172,196,123,185,71,46,124,185,197,151,124,185,38,1,125,185,107,106,125,185,147,211,125,185,158,60,126,185,140,165,126,185,93,14,127,185,17,119,127,185,168,223,127,185,17,36,128,185,63,88,128,185,95,140,128,185,112,192,128,185,115,244,128,185,103,40,129,185,77,92,129,185,35,144,129,185,235,195,129,185,164,247,129,185,79,43,130,185,235,94,130,185,120,146,130,185,246,197,130,185,101,249,130,185,198,44,131,185,23,96,131,185,90,147,131,185,142,198,131,185,179,249,131,
185,201,44,132,185,208,95,132,185,200,146,132,185,177,197,132,185,139,248,132,185,86,43,133,185,18,94,133,185,191,144,133,185,93,195,133,185,235,245,133,185,107,40,134,185,219,90,134,185,60,141,134,185,142,191,134,185,209,241,134,185,4,36,135,185,40,86,135,185,61,136,135,185,67,186,135,185,57,236,135,185,32,30,136,185,248,79,136,185,192,129,136,185,120,179,136,185,34,229,136,185,188,22,137,185,70,72,137,185,193,121,137,185,45,171,137,185,137,220,137,185,213,13,138,185,18,63,138,185,63,112,138,185,
93,161,138,185,107,210,138,185,105,3,139,185,88,52,139,185,55,101,139,185,6,150,139,185,198,198,139,185,118,247,139,185,22,40,140,185,167,88,140,185,39,137,140,185,152,185,140,185,249,233,140,185,74,26,141,185,140,74,141,185,189,122,141,185,222,170,141,185,240,218,141,185,242,10,142,185,227,58,142,185,197,106,142,185,151,154,142,185,88,202,142,185,10,250,142,185,171,41,143,185,61,89,143,185,190,136,143,185,48,184,143,185,145,231,143,185,226,22,144,185,35,70,144,185,83,117,144,185,116,164,144,185,
132,211,144,185,132,2,145,185,116,49,145,185,83,96,145,185,34,143,145,185,225,189,145,185,144,236,145,185,46,27,146,185,188,73,146,185,57,120,146,185,166,166,146,185,3,213,146,185,79,3,147,185,138,49,147,185,182,95,147,185,208,141,147,185,219,187,147,185,212,233,147,185,189,23,148,185,150,69,148,185,94,115,148,185,21,161,148,185,188,206,148,185,82,252,148,185,215,41,149,185,76,87,149,185,176,132,149,185,3,178,149,185,70,223,149,185,120,12,150,185,153,57,150,185,169,102,150,185,169,147,150,185,151,
192,150,185,117,237,150,185,66,26,151,185,254,70,151,185,170,115,151,185,68,160,151,185,205,204,151,185,70,249,151,185,173,37,152,185,4,82,152,185,73,126,152,185,126,170,152,185,161,214,152,185,180,2,153,185,181,46,153,185,166,90,153,185,133,134,153,185,83,178,153,185,16,222,153,185,188,9,154,185,86,53,154,185,224,96,154,185,88,140,154,185,191,183,154,185,21,227,154,185,90,14,155,185,141,57,155,185,175,100,155,185,192,143,155,185,191,186,155,185,173,229,155,185,138,16,156,185,86,59,156,185,16,102,
156,185,184,144,156,185,79,187,156,185,213,229,156,185,73,16,157,185,172,58,157,185,254,100,157,185,62,143,157,185,108,185,157,185,137,227,157,185,148,13,158,185,142,55,158,185,118,97,158,185,76,139,158,185,17,181,158,185,197,222,158,185,102,8,159,185,246,49,159,185,117,91,159,185,225,132,159,185,60,174,159,185,133,215,159,185,189,0,160,185,227,41,160,185,247,82,160,185,249,123,160,185,233,164,160,185,200,205,160,185,148,246,160,185,79,31,161,185,248,71,161,185,143,112,161,185,20,153,161,185,136,
193,161,185,233,233,161,185,56,18,162,185,118,58,162,185,161,98,162,185,187,138,162,185,194,178,162,185,184,218,162,185,155,2,163,185,108,42,163,185,44,82,163,185,217,121,163,185,116,161,163,185,253,200,163,185,116,240,163,185,217,23,164,185,43,63,164,185,107,102,164,185,154,141,164,185,182,180,164,185,191,219,164,185,183,2,165,185,156,41,165,185,111,80,165,185,48,119,165,185,222,157,165,185,122,196,165,185,4,235,165,185,124,17,166,185,225,55,166,185,52,94,166,185,116,132,166,185,162,170,166,185,
189,208,166,185,199,246,166,185,189,28,167,185,161,66,167,185,115,104,167,185,50,142,167,185,223,179,167,185,121,217,167,185,1,255,167,185,118,36,168,185,217,73,168,185,41,111,168,185,102,148,168,185,145,185,168,185,169,222,168,185,175,3,169,185,162,40,169,185,130,77,169,185,80,114,169,185,11,151,169,185,179,187,169,185,73,224,169,185,204,4,170,185,60,41,170,185,153,77,170,185,227,113,170,185,27,150,170,185,64,186,170,185,82,222,170,185,82,2,171,185,62,38,171,185,24,74,171,185,223,109,171,185,146,
145,171,185,51,181,171,185,194,216,171,185,61,252,171,185,165,31,172,185,250,66,172,185,61,102,172,185,108,137,172,185,136,172,172,185,146,207,172,185,136,242,172,185,107,21,173,185,60,56,173,185,249,90,173,185,163,125,173,185,58,160,173,185,190,194,173,185,47,229,173,185,141,7,174,185,216,41,174,185,15,76,174,185,52,110,174,185,69,144,174,185,67,178,174,185,46,212,174,185,5,246,174,185,202,23,175,185,123,57,175,185,25,91,175,185,163,124,175,185,27,158,175,185,127,191,175,185,208,224,175,185,13,2,
176,185,55,35,176,185,78,68,176,185,82,101,176,185,66,134,176,185,30,167,176,185,232,199,176,185,158,232,176,185,64,9,177,185,207,41,177,185,75,74,177,185,179,106,177,185,8,139,177,185,73,171,177,185,119,203,177,185,146,235,177,185,153,11,178,185,140,43,178,185,108,75,178,185,56,107,178,185,241,138,178,185,150,170,178,185,39,202,178,185,165,233,178,185,16,9,179,185,102,40,179,185,170,71,179,185,217,102,179,185,245,133,179,185,253,164,179,185,242,195,179,185,210,226,179,185,160,1,180,185,89,32,180,
185,255,62,180,185,145,93,180,185,15,124,180,185,121,154,180,185,208,184,180,185,19,215,180,185,66,245,180,185,94,19,181,185,101,49,181,185,89,79,181,185,57,109,181,185,5,139,181,185,189,168,181,185,98,198,181,185,242,227,181,185,111,1,182,185,215,30,182,185,44,60,182,185,109,89,182,185,154,118,182,185,179,147,182,185,184,176,182,185,169,205,182,185,135,234,182,185,80,7,183,185,5,36,183,185,166,64,183,185,51,93,183,185,172,121,183,185,17,150,183,185,98,178,183,185,159,206,183,185,200,234,183,185,
221,6,184,185,222,34,184,185,203,62,184,185,163,90,184,185,104,118,184,185,24,146,184,185,180,173,184,185,60,201,184,185,176,228,184,185,16,0,185,185,91,27,185,185,147,54,185,185,182,81,185,185,197,108,185,185,191,135,185,185,166,162,185,185,120,189,185,185,54,216,185,185,224,242,185,185,117,13,186,185,247,39,186,185,100,66,186,185,188,92,186,185,1,119,186,185,49,145,186,185,76,171,186,185,84,197,186,185,71,223,186,185,37,249,186,185,239,18,187,185,165,44,187,185,71,70,187,185,212,95,187,185,77,121,
187,185,177,146,187,185,1,172,187,185,61,197,187,185,100,222,187,185,118,247,187,185,116,16,188,185,94,41,188,185,51,66,188,185,244,90,188,185,160,115,188,185,56,140,188,185,187,164,188,185,42,189,188,185,132,213,188,185,202,237,188,185,251,5,189,185,24,30,189,185,32,54,189,185,19,78,189,185,242,101,189,185,188,125,189,185,114,149,189,185,19,173,189,185,160,196,189,185,24,220,189,185,123,243,189,185,202,10,190,185,3,34,190,185,41,57,190,185,57,80,190,185,53,103,190,185,29,126,190,185,239,148,190,
185,173,171,190,185,87,194,190,185,235,216,190,185,107,239,190,185,214,5,191,185,44,28,191,185,110,50,191,185,155,72,191,185,179,94,191,185,182,116,191,185,165,138,191,185,126,160,191,185,67,182,191,185,244,203,191,185,143,225,191,185,22,247,191,185,135,12,192,185,228,33,192,185,44,55,192,185,96,76,192,185,126,97,192,185,136,118,192,185,124,139,192,185,92,160,192,185,39,181,192,185,221,201,192,185,126,222,192,185,11,243,192,185,130,7,193,185,229,27,193,185,50,48,193,185,107,68,193,185,142,88,193,
185,157,108,193,185,151,128,193,185,124,148,193,185,76,168,193,185,7,188,193,185,173,207,193,185,62,227,193,185,186,246,193,185,32,10,194,185,114,29,194,185,175,48,194,185,215,67,194,185,234,86,194,185,232,105,194,185,209,124,194,185,165,143,194,185,100,162,194,185,13,181,194,185,162,199,194,185,34,218,194,185,140,236,194,185,226,254,194,185,34,17,195,185,77,35,195,185,99,53,195,185,100,71,195,185,80,89,195,185,39,107,195,185,233,124,195,185,150,142,195,185,45,160,195,185,175,177,195,185,29,195,195,
185,117,212,195,185,183,229,195,185,229,246,195,185,254,7,196,185,1,25,196,185,239,41,196,185,200,58,196,185,140,75,196,185,59,92,196,185,212,108,196,185,88,125,196,185,199,141,196,185,33,158,196,185,102,174,196,185,149,190,196,185,175,206,196,185,180,222,196,185,163,238,196,185,126,254,196,185,67,14,197,185,243,29,197,185,141,45,197,185,19,61,197,185,131,76,197,185,221,91,197,185,35,107,197,185,83,122,197,185,110,137,197,185,116,152,197,185,100,167,197,185,63,182,197,185,4,197,197,185,181,211,197,
185,80,226,197,185,214,240,197,185,70,255,197,185,161,13,198,185,231,27,198,185,23,42,198,185,50,56,198,185,56,70,198,185,40,84,198,185,3,98,198,185,200,111,198,185,120,125,198,185,19,139,198,185,153,152,198,185,9,166,198,185,99,179,198,185,168,192,198,185,216,205,198,185,243,218,198,185,248,231,198,185,231,244,198,185,194,1,199,185,134,14,199,185,54,27,199,185,208,39,199,185,84,52,199,185,195,64,199,185,29,77,199,185,97,89,199,185,144,101,199,185,169,113,199,185,173,125,199,185,156,137,199,185,117,
149,199,185,56,161,199,185,230,172,199,185,127,184,199,185,2,196,199,185,112,207,199,185,200,218,199,185,10,230,199,185,56,241,199,185,79,252,199,185,82,7,200,185,62,18,200,185,21,29,200,185,215,39,200,185,131,50,200,185,26,61,200,185,155,71,200,185,7,82,200,185,93,92,200,185,158,102,200,185,201,112,200,185,223,122,200,185,223,132,200,185,201,142,200,185,158,152,200,185,94,162,200,185,8,172,200,185,156,181,200,185,27,191,200,185,133,200,200,185,216,209,200,185,23,219,200,185,63,228,200,185,82,237,
200,185,80,246,200,185,56,255,200,185,11,8,201,185,199,16,201,185,111,25,201,185,1,34,201,185,125,42,201,185,227,50,201,185,53,59,201,185,112,67,201,185,150,75,201,185,166,83,201,185,161,91,201,185,134,99,201,185,86,107,201,185,16,115,201,185,180,122,201,185,67,130,201,185,188,137,201,185,32,145,201,185,110,152,201,185,166,159,201,185,201,166,201,185,215,173,201,185,206,180,201,185,176,187,201,185,125,194,201,185,52,201,201,185,213,207,201,185,97,214,201,185,215,220,201,185,55,227,201,185,130,233,
201,185,183,239,201,185,215,245,201,185,225,251,201,185,213,1,202,185,180,7,202,185,125,13,202,185,48,19,202,185,206,24,202,185,86,30,202,185,201,35,202,185,38,41,202,185,110,46,202,185,159,51,202,185,188,56,202,185,194,61,202,185,179,66,202,185,142,71,202,185,84,76,202,185,4,81,202,185,158,85,202,185,35,90,202,185,146,94,202,185,236,98,202,185,48,103,202,185,94,107,202,185,119,111,202,185,122,115,202,185,103,119,202,185,63,123,202,185,1,127,202,185,173,130,202,185,68,134,202,185,197,137,202,185,
49,141,202,185,135,144,202,185,199,147,202,185,242,150,202,185,7,154,202,185,7,157,202,185,240,159,202,185,197,162,202,185,131,165,202,185,44,168,202,185,192,170,202,185,61,173,202,185,165,175,202,185,248,177,202,185,52,180,202,185,92,182,202,185,109,184,202,185,105,186,202,185,79,188,202,185,32,190,202,185,219,191,202,185,129,193,202,185,16,195,202,185,139,196,202,185,239,197,202,185,62,199,202,185,120,200,202,185,155,201,202,185,169,202,202,185,162,203,202,185,133,204,202,185,82,205,202,185,10,
206,202,185,172,206,202,185,56,207,202,185,175,207,202,185,16,208,202,185,92,208,202,185,146,208,202,185,178,208,202,185,189,208,202,185,178,208,202,185,146,208,202,185,92,208,202,185,17,208,202,185,175,207,202,185,57,207,202,185,172,206,202,185,10,206,202,185,83,205,202,185,134,204,202,185,163,203,202,185,171,202,202,185,157,201,202,185,122,200,202,185,65,199,202,185,242,197,202,185,142,196,202,185,20,195,202,185,133,193,202,185,224,191,202,185,38,190,202,185,86,188,202,185,112,186,202,185,117,184,
202,185,101,182,202,185,62,180,202,185,3,178,202,185,177,175,202,185,75,173,202,185,206,170,202,185,60,168,202,185,149,165,202,185,216,162,202,185,6,160,202,185,30,157,202,185,32,154,202,185,13,151,202,185,228,147,202,185,166,144,202,185,83,141,202,185,233,137,202,185,107,134,202,185,215,130,202,185,45,127,202,185,110,123,202,185,153,119,202,185,175,115,202,185,175,111,202,185,154,107,202,185,112,103,202,185,48,99,202,185,218,94,202,185,111,90,202,185,238,85,202,185,88,81,202,185,173,76,202,185,236,
71,202,185,22,67,202,185,42,62,202,185,41,57,202,185,18,52,202,185,230,46,202,185,164,41,202,185,77,36,202,185,225,30,202,185,95,25,202,185,199,19,202,185,27,14,202,185,88,8,202,185,129,2,202,185,148,252,201,185,145,246,201,185,122,240,201,185,76,234,201,185,10,228,201,185,178,221,201,185,68,215,201,185,194,208,201,185,41,202,201,185,124,195,201,185,185,188,201,185,225,181,201,185,243,174,201,185,240,167,201,185,216,160,201,185,170,153,201,185,103,146,201,185,15,139,201,185,161,131,201,185,30,124,
201,185,134,116,201,185,216,108,201,185,21,101,201,185,61,93,201,185,79,85,201,185,76,77,201,185,52,69,201,185,7,61,201,185,196,52,201,185,108,44,201,185,255,35,201,185,124,27,201,185,228,18,201,185,55,10,201,185,117,1,201,185,157,248,200,185,176,239,200,185,174,230,200,185,150,221,200,185,106,212,200,185,40,203,200,185,209,193,200,185,101,184,200,185,227,174,200,185,77,165,200,185,161,155,200,185,224,145,200,185,9,136,200,185,30,126,200,185,29,116,200,185,7,106,200,185,220,95,200,185,156,85,200,
185,71,75,200,185,221,64,200,185,93,54,200,185,200,43,200,185,30,33,200,185,96,22,200,185,139,11,200,185,162,0,200,185,164,245,199,185,144,234,199,185,104,223,199,185,42,212,199,185,216,200,199,185,112,189,199,185,243,177,199,185,97,166,199,185,186,154,199,185,254,142,199,185,45,131,199,185,71,119,199,185,76,107,199,185,60,95,199,185,23,83,199,185,220,70,199,185,141,58,199,185,41,46,199,185,176,33,199,185,34,21,199,185,126,8,199,185,198,251,198,185,249,238,198,185,23,226,198,185,32,213,198,185,20,
200,198,185,243,186,198,185,189,173,198,185,115,160,198,185,19,147,198,185,158,133,198,185,21,120,198,185,118,106,198,185,195,92,198,185,251,78,198,185,30,65,198,185,44,51,198,185,37,37,198,185,9,23,198,185,217,8,198,185,147,250,197,185,57,236,197,185,202,221,197,185,70,207,197,185,174,192,197,185,0,178,197,185,62,163,197,185,103,148,197,185,123,133,197,185,123,118,197,185,101,103,197,185,59,88,197,185,252,72,197,185,169,57,197,185,64,42,197,185,195,26,197,185,50,11,197,185,139,251,196,185,208,235,
196,185,0,220,196,185,27,204,196,185,34,188,196,185,20,172,196,185,242,155,196,185,186,139,196,185,110,123,196,185,14,107,196,185,153,90,196,185,15,74,196,185,113,57,196,185,190,40,196,185,246,23,196,185,26,7,196,185,41,246,195,185,36,229,195,185,10,212,195,185,219,194,195,185,152,177,195,185,65,160,195,185,213,142,195,185,84,125,195,185,191,107,195,185,21,90,195,185,87,72,195,185,132,54,195,185,157,36,195,185,162,18,195,185,146,0,195,185,109,238,194,185,52,220,194,185,231,201,194,185,133,183,194,
185,15,165,194,185,133,146,194,185,230,127,194,185,50,109,194,185,107,90,194,185,142,71,194,185,158,52,194,185,153,33,194,185,128,14,194,185,82,251,193,185,17,232,193,185,187,212,193,185,80,193,193,185,209,173,193,185,62,154,193,185,151,134,193,185,220,114,193,185,12,95,193,185,40,75,193,185,47,55,193,185,35,35,193,185,2,15,193,185,205,250,192,185,132,230,192,185,39,210,192,185,181,189,192,185,48,169,192,185,150,148,192,185,232,127,192,185,38,107,192,185,79,86,192,185,101,65,192,185,102,44,192,185,
84,23,192,185,45,2,192,185,243,236,191,185,164,215,191,185,65,194,191,185,202,172,191,185,63,151,191,185,160,129,191,185,237,107,191,185,38,86,191,185,75,64,191,185,92,42,191,185,89,20,191,185,66,254,190,185,23,232,190,185,217,209,190,185,134,187,190,185,31,165,190,185,165,142,190,185,22,120,190,185,116,97,190,185,189,74,190,185,243,51,190,185,21,29,190,185,36,6,190,185,30,239,189,185,4,216,189,185,215,192,189,185,150,169,189,185,65,146,189,185,217,122,189,185,92,99,189,185,204,75,189,185,40,52,189,
185,112,28,189,185,165,4,189,185,198,236,188,185,211,212,188,185,205,188,188,185,178,164,188,185,133,140,188,185,67,116,188,185,238,91,188,185,133,67,188,185,9,43,188,185,121,18,188,185,213,249,187,185,30,225,187,185,83,200,187,185,117,175,187,185,131,150,187,185,125,125,187,185,101,100,187,185,56,75,187,185,248,49,187,185,165,24,187,185,62,255,186,185,195,229,186,185,53,204,186,185,148,178,186,185,223,152,186,185,23,127,186,185,59,101,186,185,76,75,186,185,74,49,186,185,52,23,186,185,11,253,185,
185,207,226,185,185,127,200,185,185,28,174,185,185,165,147,185,185,28,121,185,185,127,94,185,185,206,67,185,185,11,41,185,185,52,14,185,185,74,243,184,185,77,216,184,185,60,189,184,185,25,162,184,185,226,134,184,185,152,107,184,185,58,80,184,185,202,52,184,185,71,25,184,185,176,253,183,185,6,226,183,185,73,198,183,185,121,170,183,185,150,142,183,185,160,114,183,185,151,86,183,185,123,58,183,185,76,30,183,185,10,2,183,185,181,229,182,185,77,201,182,185,209,172,182,185,67,144,182,185,162,115,182,185,
239,86,182,185,40,58,182,185,78,29,182,185,97,0,182,185,98,227,181,185,79,198,181,185,42,169,181,185,242,139,181,185,167,110,181,185,74,81,181,185,217,51,181,185,86,22,181,185,192,248,180,185,23,219,180,185,91,189,180,185,141,159,180,185,172,129,180,185,185,99,180,185,178,69,180,185,153,39,180,185,109,9,180,185,47,235,179,185,222,204,179,185,123,174,179,185,4,144,179,185,124,113,179,185,224,82,179,185,50,52,179,185,114,21,179,185,159,246,178,185,185,215,178,185,193,184,178,185,183,153,178,185,154,
122,178,185,106,91,178,185,40,60,178,185,212,28,178,185,109,253,177,185,244,221,177,185,105,190,177,185,203,158,177,185,26,127,177,185,88,95,177,185,131,63,177,185,156,31,177,185,162,255,176,185,150,223,176,185,120,191,176,185,72,159,176,185,5,127,176,185,176,94,176,185,73,62,176,185,208,29,176,185,68,253,175,185,166,220,175,185,247,187,175,185,53,155,175,185,96,122,175,185,122,89,175,185,130,56,175,185,120,23,175,185,91,246,174,185,45,213,174,185,236,179,174,185,153,146,174,185,53,113,174,185,190,
79,174,185,54,46,174,185,155,12,174,185,239,234,173,185,48,201,173,185,96,167,173,185,126,133,173,185,138,99,173,185,132,65,173,185,108,31,173,185,66,253,172,185,7,219,172,185,186,184,172,185,90,150,172,185,234,115,172,185,103,81,172,185,211,46,172,185,44,12,172,185,117,233,171,185,171,198,171,185,208,163,171,185,227,128,171,185,228,93,171,185,212,58,171,185,179,23,171,185,127,244,170,185,58,209,170,185,228,173,170,185,123,138,170,185,2,103,170,185,119,67,170,185,218,31,170,185,44,252,169,185,108,
216,169,185,155,180,169,185,184,144,169,185,196,108,169,185,191,72,169,185,168,36,169,185,128,0,169,185,70,220,168,185,251,183,168,185,159,147,168,185,50,111,168,185,179,74,168,185,35,38,168,185,129,1,168,185,207,220,167,185,11,184,167,185,54,147,167,185,79,110,167,185,88,73,167,185,79,36,167,185,53,255,166,185,10,218,166,185,206,180,166,185,129,143,166,185,35,106,166,185,180,68,166,185,51,31,166,185,162,249,165,185,255,211,165,185,76,174,165,185,136,136,165,185,178,98,165,185,204,60,165,185,213,
22,165,185,204,240,164,185,179,202,164,185,137,164,164,185,79,126,164,185,3,88,164,185,166,49,164,185,57,11,164,185,187,228,163,185,44,190,163,185,140,151,163,185,220,112,163,185,27,74,163,185,73,35,163,185,103,252,162,185,115,213,162,185,111,174,162,185,91,135,162,185,54,96,162,185,0,57,162,185,186,17,162,185,99,234,161,185,251,194,161,185,131,155,161,185,251,115,161,185,98,76,161,185,184,36,161,185,254,252,160,185,52,213,160,185,89,173,160,185,110,133,160,185,114,93,160,185,102,53,160,185,74,13,
160,185,29,229,159,185,224,188,159,185,147,148,159,185,53,108,159,185,199,67,159,185,73,27,159,185,186,242,158,185,28,202,158,185,109,161,158,185,174,120,158,185,223,79,158,185,0,39,158,185,16,254,157,185,17,213,157,185,1,172,157,185,225,130,157,185,177,89,157,185,114,48,157,185,34,7,157,185,194,221,156,185,82,180,156,185,210,138,156,185,67,97,156,185,163,55,156,185,243,13,156,185,52,228,155,185,101,186,155,185,134,144,155,185,151,102,155,185,152,60,155,185,137,18,155,185,107,232,154,185,61,190,154,
185,255,147,154,185,177,105,154,185,84,63,154,185,231,20,154,185,106,234,153,185,222,191,153,185,66,149,153,185,151,106,153,185,219,63,153,185,17,21,153,185,54,234,152,185,77,191,152,185,83,148,152,185,75,105,152,185,50,62,152,185,11,19,152,185,211,231,151,185,141,188,151,185,55,145,151,185,209,101,151,185,93,58,151,185,217,14,151,185,69,227,150,185,162,183,150,185,240,139,150,185,47,96,150,185,95,52,150,185,127,8,150,185,144,220,149,185,146,176,149,185,133,132,149,185,104,88,149,185,60,44,149,185,
2,0,149,185,184,211,148,185,95,167,148,185,247,122,148,185,128,78,148,185,250,33,148,185,101,245,147,185,193,200,147,185,14,156,147,185,76,111,147,185,124,66,147,185,156,21,147,185,174,232,146,185,176,187,146,185,164,142,146,185,137,97,146,185,95,52,146,185,38,7,146,185,223,217,145,185,137,172,145,185,36,127,145,185,176,81,145,185,46,36,145,185,157,246,144,185,254,200,144,185,80,155,144,185,147,109,144,185,200,63,144,185,238,17,144,185,5,228,143,185,14,182,143,185,9,136,143,185,245,89,143,185,211,
43,143,185,162,253,142,185,99,207,142,185,21,161,142,185,185,114,142,185,79,68,142,185,214,21,142,185,79,231,141,185,185,184,141,185,22,138,141,185,100,91,141,185,164,44,141,185,214,253,140,185,249,206,140,185,14,160,140,185,22,113,140,185,15,66,140,185,250,18,140,185,214,227,139,185,165,180,139,185,102,133,139,185,25,86,139,185,189,38,139,185,84,247,138,185,221,199,138,185,87,152,138,185,196,104,138,185,35,57,138,185,116,9,138,185,183,217,137,185,237,169,137,185,20,122,137,185,46,74,137,185,58,26,
137,185,56,234,136,185,40,186,136,185,11,138,136,185,224,89,136,185,167,41,136,185,97,249,135,185,13,201,135,185,172,152,135,185,60,104,135,185,192,55,135,185,53,7,135,185,158,214,134,185,248,165,134,185,70,117,134,185,133,68,134,185,184,19,134,185,220,226,133,185,244,177,133,185,254,128,133,185,251,79,133,185,234,30,133,185,204,237,132,185,161,188,132,185,104,139,132,185,35,90,132,185,208,40,132,185,111,247,131,185,2,198,131,185,135,148,131,185,0,99,131,185,107,49,131,185,201,255,130,185,26,206,
130,185,94,156,130,185,149,106,130,185,191,56,130,185,219,6,130,185,235,212,129,185,238,162,129,185,228,112,129,185,205,62,129,185,170,12,129,185,121,218,128,185,60,168,128,185,241,117,128,185,154,67,128,185,54,17,128,185,139,189,127,185,145,88,127,185,125,243,126,185,79,142,126,185,8,41,126,185,168,195,125,185,47,94,125,185,156,248,124,185,240,146,124,185,43,45,124,185,77,199,123,185,86,97,123,185,70,251,122,185,29,149,122,185,220,46,122,185,129,200,121,185,14,98,121,185,129,251,120,185,220,148,
120,185,31,46,120,185,73,199,119,185,90,96,119,185,82,249,118,185,50,146,118,185,250,42,118,185,169,195,117,185,64,92,117,185,191,244,116,185,37,141,116,185,115,37,116,185,169,189,115,185,199,85,115,185,205,237,114,185,186,133,114,185,144,29,114,185,78,181,113,185,243,76,113,185,129,228,112,185,247,123,112,185,86,19,112,185,156,170,111,185,203,65,111,185,226,216,110,185,226,111,110,185,202,6,110,185,155,157,109,185,84,52,109,185,245,202,108,185,128,97,108,185,243,247,107,185,78,142,107,185,147,36,
107,185,192,186,106,185,214,80,106,185,213,230,105,185,189,124,105,185,142,18,105,185,72,168,104,185,236,61,104,185,120,211,103,185,237,104,103,185,76,254,102,185,148,147,102,185,197,40,102,185,224,189,101,185,228,82,101,185,209,231,100,185,168,124,100,185,105,17,100,185,19,166,99,185,167,58,99,185,36,207,98,185,139,99,98,185,220,247,97,185,23,140,97,185,60,32,97,185,74,180,96,185,67,72,96,185,37,220,95,185,242,111,95,185,168,3,95,185,73,151,94,185,212,42,94,185,73,190,93,185,169,81,93,185,243,228,
92,185,39,120,92,185,70,11,92,185,79,158,91,185,67,49,91,185,33,196,90,185,234,86,90,185,157,233,89,185,60,124,89,185,197,14,89,185,56,161,88,185,151,51,88,185,225,197,87,185,21,88,87,185,53,234,86,185,63,124,86,185,53,14,86,185,22,160,85,185,225,49,85,185,153,195,84,185,59,85,84,185,201,230,83,185,66,120,83,185,166,9,83,185,246,154,82,185,50,44,82,185,89,189,81,185,108,78,81,185,106,223,80,185,84,112,80,185,42,1,80,185,236,145,79,185,153,34,79,185,50,179,78,185,184,67,78,185,41,212,77,185,134,100,
77,185,208,244,76,185,5,133,76,185,39,21,76,185,53,165,75,185,47,53,75,185,21,197,74,185,232,84,74,185,168,228,73,185,83,116,73,185,236,3,73,185,113,147,72,185,226,34,72,185,64,178,71,185,139,65,71,185,195,208,70,185,231,95,70,185,248,238,69,185,246,125,69,185,226,12,69,185,186,155,68,185,127,42,68,185,49,185,67,185,208,71,67,185,93,214,66,185,215,100,66,185,62,243,65,185,146,129,65,185,212,15,65,185,4,158,64,185,32,44,64,185,43,186,63,185,34,72,63,185,8,214,62,185,219,99,62,185,156,241,61,185,75,
127,61,185,231,12,61,185,114,154,60,185,234,39,60,185,80,181,59,185,164,66,59,185,231,207,58,185,23,93,58,185,54,234,57,185,67,119,57,185,62,4,57,185,39,145,56,185,255,29,56,185,197,170,55,185,122,55,55,185,29,196,54,185,175,80,54,185,47,221,53,185,158,105,53,185,252,245,52,185,72,130,52,185,132,14,52,185,174,154,51,185,199,38,51,185,207,178,50,185,198,62,50,185,172,202,49,185,129,86,49,185,69,226,48,185,249,109,48,185,156,249,47,185,46,133,47,185,175,16,47,185,32,156,46,185,128,39,46,185,208,178,
45,185,15,62,45,185,62,201,44,185,93,84,44,185,107,223,43,185,105,106,43,185,87,245,42,185,52,128,42,185,2,11,42,185,191,149,41,185,109,32,41,185,10,171,40,185,152,53,40,185,22,192,39,185,132,74,39,185,226,212,38,185,49,95,38,185,111,233,37,185,159,115,37,185,190,253,36,185,207,135,36,185,207,17,36,185,193,155,35,185,163,37,35,185,117,175,34,185,57,57,34,185,237,194,33,185,146,76,33,185,40,214,32,185,175,95,32,185,39,233,31,185,144,114,31,185,234,251,30,185,53,133,30,185,114,14,30,185,159,151,29,
185,190,32,29,185,207,169,28,185,208,50,28,185,196,187,27,185,168,68,27,185,127,205,26,185,70,86,26,185,0,223,25,185,171,103,25,185,72,240,24,185,215,120,24,185,88,1,24,185,202,137,23,185,47,18,23,185,133,154,22,185,206,34,22,185,8,171,21,185,53,51,21,185,84,187,20,185,102,67,20,185,105,203,19,185,95,83,19,185,72,219,18,185,35,99,18,185,240,234,17,185,176,114,17,185,99,250,16,185,8,130,16,185,160,9,16,185,43,145,15,185,168,24,15,185,25,160,14,185,124,39,14,185,211,174,13,185,28,54,13,185,88,189,12,
185,136,68,12,185,171,203,11,185,193,82,11,185,202,217,10,185,199,96,10,185,183,231,9,185,154,110,9,185,113,245,8,185,60,124,8,185,250,2,8,185,172,137,7,185,81,16,7,185,234,150,6,185,119,29,6,185,248,163,5,185,109,42,5,185,214,176,4,185,50,55,4,185,131,189,3,185,200,67,3,185,1,202,2,185,46,80,2,185,79,214,1,185,101,92,1,185,111,226,0,185,110,104,0,185,194,220,255,184,145,232,254,184,73,244,253,184,235,255,252,184,118,11,252,184,234,22,251,184,72,34,250,184,143,45,249,184,192,56,248,184,219,67,247,
184,224,78,246,184,208,89,245,184,169,100,244,184,108,111,243,184,26,122,242,184,179,132,241,184,54,143,240,184,163,153,239,184,252,163,238,184,63,174,237,184,110,184,236,184,135,194,235,184,140,204,234,184,124,214,233,184,87,224,232,184,30,234,231,184,209,243,230,184,111,253,229,184,249,6,229,184,112,16,228,184,210,25,227,184,32,35,226,184,90,44,225,184,129,53,224,184,149,62,223,184,148,71,222,184,129,80,221,184,90,89,220,184,32,98,219,184,212,106,218,184,116,115,217,184,1,124,216,184,124,132,215,
184,228,140,214,184,58,149,213,184,125,157,212,184,174,165,211,184,204,173,210,184,217,181,209,184,212,189,208,184,189,197,207,184,148,205,206,184,89,213,205,184,13,221,204,184,175,228,203,184,64,236,202,184,192,243,201,184,46,251,200,184,140,2,200,184,216,9,199,184,20,17,198,184,63,24,197,184,90,31,196,184,99,38,195,184,93,45,194,184,70,52,193,184,31,59,192,184,232,65,191,184,161,72,190,184,74,79,189,184,227,85,188,184,109,92,187,184,230,98,186,184,81,105,185,184,172,111,184,184,248,117,183,184,
53,124,182,184,98,130,181,184,129,136,180,184,145,142,179,184,146,148,178,184,133,154,177,184,105,160,176,184,62,166,175,184,5,172,174,184,190,177,173,184,105,183,172,184,6,189,171,184,149,194,170,184,23,200,169,184,138,205,168,184,240,210,167,184,73,216,166,184,148,221,165,184,210,226,164,184,3,232,163,184,38,237,162,184,61,242,161,184,71,247,160,184,68,252,159,184,53,1,159,184,25,6,158,184,240,10,157,184,188,15,156,184,123,20,155,184,46,25,154,184,213,29,153,184,112,34,152,184,255,38,151,184,131,
43,150,184,251,47,149,184,103,52,148,184,200,56,147,184,30,61,146,184,105,65,145,184,169,69,144,184,222,73,143,184,8,78,142,184,39,82,141,184,59,86,140,184,69,90,139,184,69,94,138,184,58,98,137,184,38,102,136,184,7,106,135,184,222,109,134,184,171,113,133,184,110,117,132,184,40,121,131,184,216,124,130,184,127,128,129,184,28,132,128,184,96,15,127,184,118,22,125,184,121,29,123,184,107,36,121,184,75,43,119,184,26,50,117,184,216,56,115,184,132,63,113,184,32,70,111,184,171,76,109,184,37,83,107,184,144,
89,105,184,234,95,103,184,53,102,101,184,112,108,99,184,156,114,97,184,185,120,95,184,198,126,93,184,197,132,91,184,182,138,89,184,152,144,87,184,109,150,85,184,51,156,83,184,236,161,81,184,151,167,79,184,53,173,77,184,198,178,75,184,74,184,73,184,194,189,71,184,45,195,69,184,141,200,67,184,224,205,65,184,39,211,63,184,99,216,61,184,148,221,59,184,185,226,57,184,212,231,55,184,228,236,53,184,233,241,51,184,229,246,49,184,214,251,47,184,189,0,46,184,155,5,44,184,111,10,42,184,58,15,40,184,252,19,38,
184,182,24,36,184,102,29,34,184,15,34,32,184,175,38,30,184,71,43,28,184,216,47,26,184,97,52,24,184,227,56,22,184,94,61,20,184,209,65,18,184,63,70,16,184,165,74,14,184,6,79,12,184,96,83,10,184,181,87,8,184,4,92,6,184,78,96,4,184,146,100,2,184,210,104,0,184,25,218,252,183,133,226,248,183,233,234,244,183,69,243,240,183,152,251,236,183,229,3,233,183,42,12,229,183,105,20,225,183,162,28,221,183,213,36,217,183,2,45,213,183,43,53,209,183,80,61,205,183,112,69,201,183,141,77,197,183,166,85,193,183,189,93,189,
183,210,101,185,183,229,109,181,183,246,117,177,183,6,126,173,183,22,134,169,183,37,142,165,183,52,150,161,183,69,158,157,183,86,166,153,183,105,174,149,183,125,182,145,183,148,190,141,183,174,198,137,183,203,206,133,183,235,214,129,183,32,190,123,183,114,206,115,183,205,222,107,183,52,239,99,183,165,255,91,183,35,16,84,183,174,32,76,183,71,49,68,183,239,65,60,183,166,82,52,183,110,99,44,183,72,116,36,183,51,133,28,183,49,150,20,183,68,167,12,183,107,184,4,183,78,147,249,182,244,181,233,182,201,216,
217,182,205,251,201,182,3,31,186,182,109,66,170,182,12,102,154,182,226,137,138,182,226,91,117,182,116,164,85,182,126,237,53,182,2,55,22,182,12,2,237,181,23,151,173,181,91,90,92,181,84,17,187,180,90,27,5,52,25,20,32,53,136,111,143,53,215,211,206,53,121,27,7,54,106,204,38,54,187,124,70,54,104,44,102,54],"i8",4,y.a+819200);
Q([183,237,130,54,229,196,146,54,187,155,162,54,58,114,178,54,94,72,194,54,38,30,210,54,144,243,225,54,155,200,241,54,163,206,0,55,199,184,8,55,184,162,16,55,119,140,24,55,1,118,32,55,88,95,40,55,120,72,48,55,98,49,56,55,21,26,64,55,144,2,72,55,210,234,79,55,219,210,87,55,168,186,95,55,59,162,103,55,145,137,111,55,170,112,119,55,133,87,127,55,17,159,131,55,63,146,135,55,77,133,139,55,59,120,143,55,8,107,147,55,179,93,151,55,60,80,155,55,163,66,159,55,231,52,163,55,8,39,167,55,6,25,171,55,223,10,175,
55,148,252,178,55,36,238,182,55,144,223,186,55,213,208,190,55,244,193,194,55,237,178,198,55,191,163,202,55,106,148,206,55,237,132,210,55,72,117,214,55,122,101,218,55,131,85,222,55,99,69,226,55,25,53,230,55,165,36,234,55,6,20,238,55,61,3,242,55,71,242,245,55,38,225,249,55,217,207,253,55,47,223,0,56,91,214,2,56,113,205,4,56,112,196,6,56,87,187,8,56,39,178,10,56,223,168,12,56,128,159,14,56,8,150,16,56,120,140,18,56,208,130,20,56,15,121,22,56,54,111,24,56,67,101,26,56,55,91,28,56,17,81,30,56,210,70,32,
56,121,60,34,56,6,50,36,56,121,39,38,56,209,28,40,56,14,18,42,56,48,7,44,56,56,252,45,56,36,241,47,56,244,229,49,56,169,218,51,56,65,207,53,56,190,195,55,56,30,184,57,56,98,172,59,56,136,160,61,56,146,148,63,56,127,136,65,56,78,124,67,56,0,112,69,56,147,99,71,56,9,87,73,56,97,74,75,56,154,61,77,56,180,48,79,56,176,35,81,56,141,22,83,56,74,9,85,56,232,251,86,56,102,238,88,56,197,224,90,56,3,211,92,56,33,197,94,56,30,183,96,56,251,168,98,56,183,154,100,56,82,140,102,56,204,125,104,56,36,111,106,56,
90,96,108,56,111,81,110,56,97,66,112,56,49,51,114,56,222,35,116,56,105,20,118,56,209,4,120,56,22,245,121,56,55,229,123,56,53,213,125,56,15,197,127,56,98,218,128,56,43,210,129,56,226,201,130,56,135,193,131,56,25,185,132,56,152,176,133,56,5,168,134,56,96,159,135,56,167,150,136,56,220,141,137,56,253,132,138,56,12,124,139,56,7,115,140,56,239,105,141,56,196,96,142,56,133,87,143,56,51,78,144,56,204,68,145,56,82,59,146,56,197,49,147,56,35,40,148,56,109,30,149,56,162,20,150,56,196,10,151,56,209,0,152,56,
202,246,152,56,173,236,153,56,125,226,154,56,55,216,155,56,221,205,156,56,109,195,157,56,232,184,158,56,78,174,159,56,159,163,160,56,219,152,161,56,0,142,162,56,17,131,163,56,11,120,164,56,240,108,165,56,191,97,166,56,119,86,167,56,26,75,168,56,166,63,169,56,28,52,170,56,124,40,171,56,197,28,172,56,248,16,173,56,19,5,174,56,24,249,174,56,6,237,175,56,221,224,176,56,157,212,177,56,70,200,178,56,215,187,179,56,81,175,180,56,179,162,181,56,254,149,182,56,49,137,183,56,76,124,184,56,80,111,185,56,59,
98,186,56,14,85,187,56,201,71,188,56,107,58,189,56,246,44,190,56,103,31,191,56,192,17,192,56,1,4,193,56,40,246,193,56,55,232,194,56,44,218,195,56,9,204,196,56,204,189,197,56,118,175,198,56,6,161,199,56,125,146,200,56,219,131,201,56,30,117,202,56,72,102,203,56,88,87,204,56,78,72,205,56,42,57,206,56,236,41,207,56,147,26,208,56,32,11,209,56,147,251,209,56,234,235,210,56,40,220,211,56,74,204,212,56,82,188,213,56,62,172,214,56,16,156,215,56,198,139,216,56,97,123,217,56,225,106,218,56,69,90,219,56,141,
73,220,56,186,56,221,56,203,39,222,56,193,22,223,56,154,5,224,56,87,244,224,56,248,226,225,56,125,209,226,56,230,191,227,56,50,174,228,56,97,156,229,56,116,138,230,56,106,120,231,56,68,102,232,56,0,84,233,56,159,65,234,56,34,47,235,56,135,28,236,56,206,9,237,56,248,246,237,56,5,228,238,56,244,208,239,56,198,189,240,56,121,170,241,56,15,151,242,56,135,131,243,56,224,111,244,56,28,92,245,56,57,72,246,56,56,52,247,56,24,32,248,56,218,11,249,56,125,247,249,56,1,227,250,56,102,206,251,56,173,185,252,56,
212,164,253,56,220,143,254,56,197,122,255,56,199,50,0,57,29,168,0,57,98,29,1,57,151,146,1,57,189,7,2,57,211,124,2,57,217,241,2,57,206,102,3,57,180,219,3,57,138,80,4,57,79,197,4,57,5,58,5,57,170,174,5,57,62,35,6,57,195,151,6,57,55,12,7,57,155,128,7,57,238,244,7,57,48,105,8,57,98,221,8,57,132,81,9,57,149,197,9,57,149,57,10,57,132,173,10,57,98,33,11,57,48,149,11,57,237,8,12,57,152,124,12,57,51,240,12,57,189,99,13,57,54,215,13,57,157,74,14,57,243,189,14,57,56,49,15,57,108,164,15,57,143,23,16,57,160,138,
16,57,160,253,16,57,142,112,17,57,106,227,17,57,54,86,18,57,239,200,18,57,151,59,19,57,45,174,19,57,178,32,20,57,36,147,20,57,133,5,21,57,212,119,21,57,17,234,21,57,60,92,22,57,85,206,22,57,92,64,23,57,81,178,23,57,52,36,24,57,4,150,24,57,194,7,25,57,110,121,25,57,8,235,25,57,143,92,26,57,4,206,26,57,102,63,27,57,182,176,27,57,243,33,28,57,30,147,28,57,53,4,29,57,59,117,29,57,45,230,29,57,13,87,30,57,217,199,30,57,147,56,31,57,58,169,31,57,206,25,32,57,79,138,32,57,189,250,32,57,23,107,33,57,95,219,
33,57,147,75,34,57,180,187,34,57,194,43,35,57,188,155,35,57,163,11,36,57,119,123,36,57,55,235,36,57,228,90,37,57,125,202,37,57,2,58,38,57,116,169,38,57,210,24,39,57,28,136,39,57,82,247,39,57,117,102,40,57,132,213,40,57,126,68,41,57,101,179,41,57,56,34,42,57,247,144,42,57,161,255,42,57,56,110,43,57,186,220,43,57,40,75,44,57,129,185,44,57,199,39,45,57,248,149,45,57,20,4,46,57,28,114,46,57,16,224,46,57,239,77,47,57,185,187,47,57,111,41,48,57,16,151,48,57,156,4,49,57,20,114,49,57,118,223,49,57,196,76,
50,57,253,185,50,57,33,39,51,57,48,148,51,57,42,1,52,57,15,110,52,57,222,218,52,57,153,71,53,57,62,180,53,57,206,32,54,57,73,141,54,57,174,249,54,57,254,101,55,57,57,210,55,57,94,62,56,57,109,170,56,57,103,22,57,57,76,130,57,57,26,238,57,57,211,89,58,57,119,197,58,57,4,49,59,57,124,156,59,57,222,7,60,57,41,115,60,57,95,222,60,57,127,73,61,57,137,180,61,57,125,31,62,57,90,138,62,57,34,245,62,57,211,95,63,57,110,202,63,57,243,52,64,57,97,159,64,57,185,9,65,57,251,115,65,57,38,222,65,57,58,72,66,57,
56,178,66,57,32,28,67,57,240,133,67,57,170,239,67,57,78,89,68,57,218,194,68,57,80,44,69,57,175,149,69,57,247,254,69,57,40,104,70,57,66,209,70,57,69,58,71,57,49,163,71,57,6,12,72,57,195,116,72,57,106,221,72,57,249,69,73,57,113,174,73,57,210,22,74,57,27,127,74,57,77,231,74,57,104,79,75,57,107,183,75,57,86,31,76,57,42,135,76,57,230,238,76,57,139,86,77,57,24,190,77,57,141,37,78,57,235,140,78,57,48,244,78,57,94,91,79,57,116,194,79,57,114,41,80,57,88,144,80,57,38,247,80,57,219,93,81,57,121,196,81,57,255,
42,82,57,108,145,82,57,193,247,82,57,254,93,83,57,35,196,83,57,47,42,84,57,35,144,84,57,254,245,84,57,193,91,85,57,108,193,85,57,254,38,86,57,119,140,86,57,216,241,86,57,32,87,87,57,79,188,87,57,101,33,88,57,99,134,88,57,72,235,88,57,20,80,89,57,199,180,89,57,97,25,90,57,226,125,90,57,74,226,90,57,153,70,91,57,207,170,91,57,236,14,92,57,239,114,92,57,218,214,92,57,171,58,93,57,98,158,93,57,1,2,94,57,134,101,94,57,241,200,94,57,67,44,95,57,124,143,95,57,155,242,95,57,160,85,96,57,140,184,96,57,94,
27,97,57,22,126,97,57,181,224,97,57,58,67,98,57,164,165,98,57,246,7,99,57,45,106,99,57,74,204,99,57,77,46,100,57,54,144,100,57,6,242,100,57,187,83,101,57,85,181,101,57,214,22,102,57,61,120,102,57,137,217,102,57,187,58,103,57,210,155,103,57,208,252,103,57,178,93,104,57,123,190,104,57,41,31,105,57,188,127,105,57,53,224,105,57,147,64,106,57,214,160,106,57,255,0,107,57,13,97,107,57,1,193,107,57,217,32,108,57,151,128,108,57,58,224,108,57,194,63,109,57,47,159,109,57,129,254,109,57,184,93,110,57,212,188,
110,57,212,27,111,57,186,122,111,57,133,217,111,57,52,56,112,57,200,150,112,57,65,245,112,57,158,83,113,57,224,177,113,57,7,16,114,57,18,110,114,57,2,204,114,57,214,41,115,57,143,135,115,57,44,229,115,57,173,66,116,57,19,160,116,57,93,253,116,57,140,90,117,57,158,183,117,57,149,20,118,57,112,113,118,57,47,206,118,57,210,42,119,57,89,135,119,57,197,227,119,57,20,64,120,57,71,156,120,57,94,248,120,57,89,84,121,57,55,176,121,57,250,11,122,57,160,103,122,57,42,195,122,57,152,30,123,57,233,121,123,57,
30,213,123,57,55,48,124,57,51,139,124,57,18,230,124,57,213,64,125,57,124,155,125,57,5,246,125,57,115,80,126,57,195,170,126,57,247,4,127,57,14,95,127,57,8,185,127,57,115,9,128,57,83,54,128,57,37,99,128,57,232,143,128,57,157,188,128,57,68,233,128,57,219,21,129,57,101,66,129,57,224,110,129,57,76,155,129,57,170,199,129,57,249,243,129,57,57,32,130,57,107,76,130,57,142,120,130,57,162,164,130,57,168,208,130,57,159,252,130,57,136,40,131,57,97,84,131,57,44,128,131,57,232,171,131,57,149,215,131,57,52,3,132,
57,195,46,132,57,68,90,132,57,182,133,132,57,25,177,132,57,109,220,132,57,179,7,133,57,233,50,133,57,16,94,133,57,41,137,133,57,50,180,133,57,45,223,133,57,24,10,134,57,244,52,134,57,194,95,134,57,128,138,134,57,47,181,134,57,207,223,134,57,96,10,135,57,226,52,135,57,85,95,135,57,184,137,135,57,13,180,135,57,82,222,135,57,136,8,136,57,174,50,136,57,198,92,136,57,206,134,136,57,199,176,136,57,177,218,136,57,139,4,137,57,86,46,137,57,17,88,137,57,190,129,137,57,91,171,137,57,232,212,137,57,102,254,
137,57,213,39,138,57,52,81,138,57,132,122,138,57,196,163,138,57,245,204,138,57,22,246,138,57,40,31,139,57,42,72,139,57,29,113,139,57,0,154,139,57,211,194,139,57,151,235,139,57,75,20,140,57,240,60,140,57,133,101,140,57,10,142,140,57,128,182,140,57,230,222,140,57,60,7,141,57,131,47,141,57,185,87,141,57,224,127,141,57,248,167,141,57,255,207,141,57,247,247,141,57,222,31,142,57,182,71,142,57,126,111,142,57,55,151,142,57,223,190,142,57,119,230,142,57,0,14,143,57,121,53,143,57,225,92,143,57,58,132,143,57,
131,171,143,57,187,210,143,57,228,249,143,57,253,32,144,57,5,72,144,57,254,110,144,57,230,149,144,57,191,188,144,57,135,227,144,57,63,10,145,57,231,48,145,57,127,87,145,57,7,126,145,57,127,164,145,57,230,202,145,57,61,241,145,57,132,23,146,57,187,61,146,57,226,99,146,57,248,137,146,57,254,175,146,57,244,213,146,57,217,251,146,57,174,33,147,57,115,71,147,57,39,109,147,57,203,146,147,57,95,184,147,57,226,221,147,57,85,3,148,57,183,40,148,57,9,78,148,57,75,115,148,57,124,152,148,57,156,189,148,57,173,
226,148,57,172,7,149,57,155,44,149,57,122,81,149,57,72,118,149,57,5,155,149,57,178,191,149,57,78,228,149,57,218,8,150,57,85,45,150,57,191,81,150,57,25,118,150,57,98,154,150,57,154,190,150,57,194,226,150,57,217,6,151,57,223,42,151,57,212,78,151,57,185,114,151,57,141,150,151,57,80,186,151,57,3,222,151,57,164,1,152,57,53,37,152,57,181,72,152,57,36,108,152,57,131,143,152,57,208,178,152,57,12,214,152,57,56,249,152,57,83,28,153,57,93,63,153,57,85,98,153,57,61,133,153,57,20,168,153,57,218,202,153,57,143,
237,153,57,51,16,154,57,198,50,154,57,72,85,154,57,185,119,154,57,25,154,154,57,103,188,154,57,165,222,154,57,210,0,155,57,237,34,155,57,247,68,155,57,241,102,155,57,217,136,155,57,175,170,155,57,117,204,155,57,42,238,155,57,205,15,156,57,95,49,156,57,224,82,156,57,80,116,156,57,174,149,156,57,251,182,156,57,55,216,156,57,97,249,156,57,123,26,157,57,131,59,157,57,121,92,157,57,95,125,157,57,50,158,157,57,245,190,157,57,166,223,157,57,70,0,158,57,212,32,158,57,81,65,158,57,189,97,158,57,23,130,158,
57,96,162,158,57,151,194,158,57,189,226,158,57,209,2,159,57,211,34,159,57,197,66,159,57,164,98,159,57,115,130,159,57,47,162,159,57,218,193,159,57,116,225,159,57,252,0,160,57,114,32,160,57,215,63,160,57,42,95,160,57,107,126,160,57,155,157,160,57,185,188,160,57,197,219,160,57,192,250,160,57,169,25,161,57,129,56,161,57,70,87,161,57,250,117,161,57,157,148,161,57,45,179,161,57,172,209,161,57,25,240,161,57,116,14,162,57,189,44,162,57,245,74,162,57,27,105,162,57,47,135,162,57,49,165,162,57,33,195,162,57,
255,224,162,57,204,254,162,57,134,28,163,57,47,58,163,57,198,87,163,57,75,117,163,57,190,146,163,57,31,176,163,57,110,205,163,57,171,234,163,57,214,7,164,57,239,36,164,57,246,65,164,57,236,94,164,57,207,123,164,57,160,152,164,57,95,181,164,57,12,210,164,57,167,238,164,57,48,11,165,57,167,39,165,57,11,68,165,57,94,96,165,57,159,124,165,57,205,152,165,57,233,180,165,57,243,208,165,57,235,236,165,57,209,8,166,57,165,36,166,57,102,64,166,57,21,92,166,57,178,119,166,57,61,147,166,57,182,174,166,57,28,
202,166,57,112,229,166,57,178,0,167,57,226,27,167,57,255,54,167,57,10,82,167,57,3,109,167,57,233,135,167,57,190,162,167,57,127,189,167,57,47,216,167,57,204,242,167,57,87,13,168,57,207,39,168,57,53,66,168,57,137,92,168,57,202,118,168,57,249,144,168,57,21,171,168,57,31,197,168,57,23,223,168,57,252,248,168,57,207,18,169,57,143,44,169,57,61,70,169,57,216,95,169,57,97,121,169,57,215,146,169,57,59,172,169,57,140,197,169,57,203,222,169,57,247,247,169,57,17,17,170,57,24,42,170,57,12,67,170,57,238,91,170,
57,189,116,170,57,122,141,170,57,36,166,170,57,188,190,170,57,65,215,170,57,179,239,170,57,19,8,171,57,96,32,171,57,154,56,171,57,194,80,171,57,215,104,171,57,218,128,171,57,201,152,171,57,166,176,171,57,113,200,171,57,40,224,171,57,205,247,171,57,95,15,172,57,223,38,172,57,75,62,172,57,165,85,172,57,236,108,172,57,32,132,172,57,66,155,172,57,81,178,172,57,77,201,172,57,54,224,172,57,12,247,172,57,208,13,173,57,129,36,173,57,30,59,173,57,169,81,173,57,34,104,173,57,135,126,173,57,217,148,173,57,25,
171,173,57,69,193,173,57,95,215,173,57,102,237,173,57,90,3,174,57,59,25,174,57,9,47,174,57,196,68,174,57,109,90,174,57,2,112,174,57,132,133,174,57,243,154,174,57,80,176,174,57,153,197,174,57,208,218,174,57,243,239,174,57,3,5,175,57,1,26,175,57,235,46,175,57,195,67,175,57,135,88,175,57,56,109,175,57,214,129,175,57,98,150,175,57,218,170,175,57,63,191,175,57,145,211,175,57,208,231,175,57,251,251,175,57,20,16,176,57,26,36,176,57,12,56,176,57,235,75,176,57,184,95,176,57,113,115,176,57,23,135,176,57,170,
154,176,57,41,174,176,57,150,193,176,57,239,212,176,57,53,232,176,57,104,251,176,57,136,14,177,57,149,33,177,57,142,52,177,57,116,71,177,57,71,90,177,57,7,109,177,57,180,127,177,57,77,146,177,57,211,164,177,57,70,183,177,57,165,201,177,57,242,219,177,57,43,238,177,57,81,0,178,57,99,18,178,57,98,36,178,57,78,54,178,57,39,72,178,57,236,89,178,57,158,107,178,57,61,125,178,57,200,142,178,57,64,160,178,57,165,177,178,57,246,194,178,57,53,212,178,57,95,229,178,57,119,246,178,57,123,7,179,57,107,24,179,
57,72,41,179,57,18,58,179,57,201,74,179,57,108,91,179,57,252,107,179,57,120,124,179,57,225,140,179,57,54,157,179,57,120,173,179,57,167,189,179,57,194,205,179,57,202,221,179,57,191,237,179,57,159,253,179,57,109,13,180,57,39,29,180,57,205,44,180,57,97,60,180,57,224,75,180,57,76,91,180,57,165,106,180,57,234,121,180,57,28,137,180,57,58,152,180,57,69,167,180,57,60,182,180,57,32,197,180,57,240,211,180,57,172,226,180,57,86,241,180,57,235,255,180,57,109,14,181,57,220,28,181,57,55,43,181,57,126,57,181,57,
178,71,181,57,210,85,181,57,223,99,181,57,216,113,181,57,190,127,181,57,144,141,181,57,79,155,181,57,250,168,181,57,145,182,181,57,21,196,181,57,133,209,181,57,225,222,181,57,42,236,181,57,95,249,181,57,129,6,182,57,143,19,182,57,138,32,182,57,113,45,182,57,68,58,182,57,3,71,182,57,175,83,182,57,72,96,182,57,204,108,182,57,61,121,182,57,155,133,182,57,228,145,182,57,26,158,182,57,61,170,182,57,75,182,182,57,70,194,182,57,46,206,182,57,2,218,182,57,194,229,182,57,110,241,182,57,6,253,182,57,139,8,
183,57,253,19,183,57,90,31,183,57,164,42,183,57,218,53,183,57,253,64,183,57,11,76,183,57,6,87,183,57,238,97,183,57,193,108,183,57,129,119,183,57,45,130,183,57,197,140,183,57,74,151,183,57,187,161,183,57,24,172,183,57,98,182,183,57,151,192,183,57,185,202,183,57,199,212,183,57,194,222,183,57,168,232,183,57,123,242,183,57,58,252,183,57,230,5,184,57,125,15,184,57,1,25,184,57,113,34,184,57,206,43,184,57,22,53,184,57,75,62,184,57,108,71,184,57,121,80,184,57,114,89,184,57,88,98,184,57,42,107,184,57,232,
115,184,57,146,124,184,57,40,133,184,57,171,141,184,57,26,150,184,57,117,158,184,57,188,166,184,57,239,174,184,57,15,183,184,57,26,191,184,57,18,199,184,57,246,206,184,57,199,214,184,57,131,222,184,57,44,230,184,57,192,237,184,57,65,245,184,57,175,252,184,57,8,4,185,57,77,11,185,57,127,18,185,57,157,25,185,57,167,32,185,57,157,39,185,57,127,46,185,57,78,53,185,57,8,60,185,57,175,66,185,57,66,73,185,57,193,79,185,57,44,86,185,57,132,92,185,57,199,98,185,57,247,104,185,57,18,111,185,57,26,117,185,57,
14,123,185,57,239,128,185,57,187,134,185,57,116,140,185,57,24,146,185,57,169,151,185,57,38,157,185,57,143,162,185,57,228,167,185,57,38,173,185,57,83,178,185,57,109,183,185,57,114,188,185,57,100,193,185,57,66,198,185,57,12,203,185,57,195,207,185,57,101,212,185,57,243,216,185,57,110,221,185,57,213,225,185,57,40,230,185,57,103,234,185,57,146,238,185,57,169,242,185,57,173,246,185,57,156,250,185,57,120,254,185,57,63,2,186,57,243,5,186,57,147,9,186,57,32,13,186,57,152,16,186,57,252,19,186,57,77,23,186,
57,137,26,186,57,178,29,186,57,199,32,186,57,200,35,186,57,181,38,186,57,142,41,186,57,84,44,186,57,5,47,186,57,163,49,186,57,45,52,186,57,163,54,186,57,5,57,186,57,83,59,186,57,141,61,186,57,179,63,186,57,198,65,186,57,196,67,186,57,175,69,186,57,134,71,186,57,73,73,186,57,248,74,186,57,148,76,186,57,27,78,186,57,143,79,186,57,238,80,186,57,58,82,186,57,114,83,186,57,150,84,186,57,166,85,186,57,163,86,186,57,139,87,186,57,96,88,186,57,33,89,186,57,206,89,186,57,103,90,186,57,236,90,186,57,93,91,
186,57,187,91,186,57,4,92,186,57,58,92,186,57,92,92,186,57,106,92,186,57,100,92,186,57,75,92,186,57,29,92,186,57,220,91,186,57,135,91,186,57,30,91,186,57,161,90,186,57,17,90,186,57,108,89,186,57,180,88,186,57,232,87,186,57,8,87,186,57,20,86,186,57,12,85,186,57,241,83,186,57,194,82,186,57,127,81,186,57,40,80,186,57,189,78,186,57,62,77,186,57,172,75,186,57,6,74,186,57,76,72,186,57,126,70,186,57,156,68,186,57,167,66,186,57,158,64,186,57,129,62,186,57,80,60,186,57,11,58,186,57,179,55,186,57,71,53,186,
57,199,50,186,57,51,48,186,57,140,45,186,57,208,42,186,57,1,40,186,57,30,37,186,57,40,34,186,57,29,31,186,57,255,27,186,57,205,24,186,57,136,21,186,57,46,18,186,57,193,14,186,57,64,11,186,57,171,7,186,57,3,4,186,57,71,0,186,57,119,252,185,57,147,248,185,57,156,244,185,57,144,240,185,57,114,236,185,57,63,232,185,57,249,227,185,57,159,223,185,57,49,219,185,57,175,214,185,57,26,210,185,57,113,205,185,57,181,200,185,57,228,195,185,57,0,191,185,57,9,186,185,57,253,180,185,57,222,175,185,57,171,170,185,
57,101,165,185,57,11,160,185,57,157,154,185,57,28,149,185,57,134,143,185,57,222,137,185,57,33,132,185,57,81,126,185,57,109,120,185,57,118,114,185,57,107,108,185,57,76,102,185,57,26,96,185,57,212,89,185,57,122,83,185,57,13,77,185,57,140,70,185,57,248,63,185,57,80,57,185,57,148,50,185,57,197,43,185,57,226,36,185,57,236,29,185,57,225,22,185,57,196,15,185,57,147,8,185,57,78,1,185,57,245,249,184,57,138,242,184,57,10,235,184,57,119,227,184,57,208,219,184,57,22,212,184,57,72,204,184,57,103,196,184,57,114,
188,184,57,106,180,184,57,78,172,184,57,31,164,184,57,220,155,184,57,134,147,184,57,28,139,184,57,158,130,184,57,13,122,184,57,105,113,184,57,177,104,184,57,230,95,184,57,7,87,184,57,20,78,184,57,15,69,184,57,245,59,184,57,200,50,184,57,136,41,184,57,53,32,184,57,206,22,184,57,83,13,184,57,197,3,184,57,36,250,183,57,111,240,183,57,167,230,183,57,203,220,183,57,220,210,183,57,218,200,183,57,196,190,183,57,155,180,183,57,94,170,183,57,14,160,183,57,171,149,183,57,52,139,183,57,170,128,183,57,12,118,
183,57,92,107,183,57,151,96,183,57,192,85,183,57,213,74,183,57,215,63,183,57,198,52,183,57,161,41,183,57,105,30,183,57,29,19,183,57,191,7,183,57,77,252,182,57,200,240,182,57,47,229,182,57,131,217,182,57,196,205,182,57,242,193,182,57,12,182,182,57,19,170,182,57,7,158,182,57,232,145,182,57,182,133,182,57,112,121,182,57,23,109,182,57,171,96,182,57,43,84,182,57,153,71,182,57,243,58,182,57,58,46,182,57,110,33,182,57,143,20,182,57,156,7,182,57,151,250,181,57,126,237,181,57,82,224,181,57,19,211,181,57,193,
197,181,57,92,184,181,57,227,170,181,57,88,157,181,57,185,143,181,57,7,130,181,57,67,116,181,57,107,102,181,57,128,88,181,57,130,74,181,57,113,60,181,57,77,46,181,57,21,32,181,57,203,17,181,57,110,3,181,57,254,244,180,57,122,230,180,57,228,215,180,57,59,201,180,57,127,186,180,57,175,171,180,57,205,156,180,57,216,141,180,57,208,126,180,57,181,111,180,57,135,96,180,57,70,81,180,57,242,65,180,57,139,50,180,57,17,35,180,57,132,19,180,57,229,3,180,57,50,244,179,57,109,228,179,57,149,212,179,57,170,196,
179,57,172,180,179,57,155,164,179,57,119,148,179,57,65,132,179,57,247,115,179,57,155,99,179,57,44,83,179,57,170,66,179,57,22,50,179,57,110,33,179,57,180,16,179,57,231,255,178,57,7,239,178,57,21,222,178,57,16,205,178,57,248,187,178,57,205,170,178,57,144,153,178,57,64,136,178,57,221,118,178,57,103,101,178,57,223,83,178,57,68,66,178,57,151,48,178,57,214,30,178,57,4,13,178,57,30,251,177,57,38,233,177,57,27,215,177,57,254,196,177,57,206,178,177,57,139,160,177,57,54,142,177,57,206,123,177,57,84,105,177,
57,199,86,177,57,39,68,177,57,117,49,177,57,177,30,177,57,217,11,177,57,240,248,176,57,244,229,176,57,229,210,176,57,196,191,176,57,144,172,176,57,74,153,176,57,242,133,176,57,135,114,176,57,9,95,176,57,121,75,176,57,215,55,176,57,34,36,176,57,91,16,176,57,129,252,175,57,149,232,175,57,151,212,175,57,134,192,175,57,99,172,175,57,46,152,175,57,230,131,175,57,140,111,175,57,32,91,175,57,161,70,175,57,16,50,175,57,109,29,175,57,183,8,175,57,239,243,174,57,21,223,174,57,41,202,174,57,42,181,174,57,25,
160,174,57,246,138,174,57,193,117,174,57,121,96,174,57,32,75,174,57,180,53,174,57,54,32,174,57,165,10,174,57,3,245,173,57,78,223,173,57,136,201,173,57,175,179,173,57,196,157,173,57,199,135,173,57,184,113,173,57,151,91,173,57,100,69,173,57,30,47,173,57,199,24,173,57,94,2,173,57,226,235,172,57,85,213,172,57,182,190,172,57,4,168,172,57,65,145,172,57,107,122,172,57,132,99,172,57,139,76,172,57,128,53,172,57,98,30,172,57,51,7,172,57,242,239,171,57,159,216,171,57,59,193,171,57,196,169,171,57,59,146,171,
57,161,122,171,57,245,98,171,57,55,75,171,57,103,51,171,57,133,27,171,57,146,3,171,57,141,235,170,57,118,211,170,57,77,187,170,57,18,163,170,57,198,138,170,57,104,114,170,57,248,89,170,57,119,65,170,57,227,40,170,57,63,16,170,57,136,247,169,57,192,222,169,57,230,197,169,57,251,172,169,57,254,147,169,57,239,122,169,57,207,97,169,57,157,72,169,57,89,47,169,57,4,22,169,57,157,252,168,57,37,227,168,57,156,201,168,57,0,176,168,57,84,150,168,57,149,124,168,57,198,98,168,57,228,72,168,57,242,46,168,57,238,
20,168,57,216,250,167,57,177,224,167,57,121,198,167,57,47,172,167,57,212,145,167,57,103,119,167,57,233,92,167,57,90,66,167,57,185,39,167,57,7,13,167,57,68,242,166,57,112,215,166,57,138,188,166,57,147,161,166,57,138,134,166,57,113,107,166,57,70,80,166,57,10,53,166,57,188,25,166,57,94,254,165,57,238,226,165,57,109,199,165,57,219,171,165,57,56,144,165,57,131,116,165,57,190,88,165,57,231,60,165,57,255,32,165,57,6,5,165,57,253,232,164,57,226,204,164,57,182,176,164,57,121,148,164,57,42,120,164,57,203,91,
164,57,91,63,164,57,218,34,164,57,72,6,164,57,165,233,163,57,241,204,163,57,44,176,163,57,86,147,163,57,112,118,163,57,120,89,163,57,111,60,163,57,86,31,163,57,44,2,163,57,241,228,162,57,165,199,162,57,72,170,162,57,218,140,162,57,92,111,162,57,205,81,162,57,45,52,162,57,125,22,162,57,187,248,161,57,233,218,161,57,6,189,161,57,19,159,161,57,15,129,161,57,250,98,161,57,213,68,161,57,158,38,161,57,88,8,161,57,0,234,160,57,152,203,160,57,32,173,160,57,151,142,160,57,253,111,160,57,83,81,160,57,152,50,
160,57,205,19,160,57,241,244,159,57,5,214,159,57,8,183,159,57,251,151,159,57,221,120,159,57,175,89,159,57,113,58,159,57,34,27,159,57,195,251,158,57,83,220,158,57,211,188,158,57,67,157,158,57,162,125,158,57,241,93,158,57,48,62,158,57,94,30,158,57,124,254,157,57,138,222,157,57,136,190,157,57,117,158,157,57,83,126,157,57,32,94,157,57,220,61,157,57,137,29,157,57,38,253,156,57,178,220,156,57,46,188,156,57,154,155,156,57,246,122,156,57,66,90,156,57,126,57,156,57,170,24,156,57,197,247,155,57,209,214,155,
57,205,181,155,57,184,148,155,57,148,115,155,57,96,82,155,57,28,49,155,57,200,15,155,57,99,238,154,57,240,204,154,57,108,171,154,57,216,137,154,57,52,104,154,57,129,70,154,57,190,36,154,57,234,2,154,57,8,225,153,57,21,191,153,57,18,157,153,57,0,123,153,57,222,88,153,57,173,54,153,57,107,20,153,57,26,242,152,57,185,207,152,57,73,173,152,57,201,138,152,57,57,104,152,57,154,69,152,57,235,34,152,57,44,0,152,57,94,221,151,57,129,186,151,57,147,151,151,57,151,116,151,57,139,81,151,57,111,46,151,57,68,11,
151,57,9,232,150,57,191,196,150,57,101,161,150,57,252,125,150,57,132,90,150,57,252,54,150,57,101,19,150,57,191,239,149,57,9,204,149,57,68,168,149,57,112,132,149,57,140,96,149,57,153,60,149,57,151,24,149,57,133,244,148,57,101,208,148,57,53,172,148,57,246,135,148,57,168,99,148,57,74,63,148,57,222,26,148,57,98,246,147,57,215,209,147,57,61,173,147,57,148,136,147,57,220,99,147,57,21,63,147,57,63,26,147,57,90,245,146,57,102,208,146,57,99,171,146,57,81,134,146,57,48,97,146,57,0,60,146,57,193,22,146,57,116,
241,145,57,23,204,145,57,171,166,145,57,49,129,145,57,168,91,145,57,16,54,145,57,105,16,145,57,180,234,144,57,239,196,144,57,28,159,144,57,59,121,144,57,74,83,144,57,75,45,144,57,61,7,144,57,33,225,143,57,245,186,143,57,188,148,143,57,115,110,143,57,28,72,143,57,183,33,143,57,66,251,142,57,192,212,142,57,47,174,142,57,143,135,142,57,225,96,142,57,36,58,142,57,89,19,142,57,127,236,141,57,151,197,141,57,161,158,141,57,156,119,141,57,137,80,141,57,103,41,141,57,55,2,141,57,249,218,140,57,172,179,140,
57,82,140,140,57,233,100,140,57,113,61,140,57,236,21,140,57,88,238,139,57,182,198,139,57,6,159,139,57,71,119,139,57,123,79,139,57,160,39,139,57,184,255,138,57,193,215,138,57,188,175,138,57,169,135,138,57,136,95,138,57,89,55,138,57,28,15,138,57,209,230,137,57,120,190,137,57,17,150,137,57,156,109,137,57,25,69,137,57,137,28,137,57,234,243,136,57,62,203,136,57,132,162,136,57,187,121,136,57,230,80,136,57,2,40,136,57,16,255,135,57,17,214,135,57,4,173,135,57,233,131,135,57,193,90,135,57,139,49,135,57,71,
8,135,57,246,222,134,57,151,181,134,57,42,140,134,57,176,98,134,57,40,57,134,57,147,15,134,57,240,229,133,57,64,188,133,57,130,146,133,57,182,104,133,57,221,62,133,57,247,20,133,57,3,235,132,57,2,193,132,57,244,150,132,57,216,108,132,57,174,66,132,57,120,24,132,57,52,238,131,57,227,195,131,57,132,153,131,57,24,111,131,57,159,68,131,57,25,26,131,57,134,239,130,57,229,196,130,57,55,154,130,57,124,111,130,57,180,68,130,57,223,25,130,57,253,238,129,57,13,196,129,57,17,153,129,57,7,110,129,57,241,66,129,
57,205,23,129,57,157,236,128,57,95,193,128,57,21,150,128,57,190,106,128,57,90,63,128,57,232,19,128,57,213,208,127,57,191,121,127,57,144,34,127,57,71,203,126,57,229,115,126,57,105,28,126,57,211,196,125,57,36,109,125,57,92,21,125,57,122,189,124,57,127,101,124,57,106,13,124,57,60,181,123,57,245,92,123,57,149,4,123,57,28,172,122,57,137,83,122,57,221,250,121,57,25,162,121,57,59,73,121,57,68,240,120,57,53,151,120,57,12,62,120,57,203,228,119,57,113,139,119,57,254,49,119,57,114,216,118,57,206,126,118,57,
17,37,118,57,59,203,117,57,77,113,117,57,70,23,117,57,39,189,116,57,240,98,116,57,159,8,116,57,55,174,115,57,182,83,115,57,29,249,114,57,107,158,114,57,162,67,114,57,192,232,113,57,198,141,113,57,180,50,113,57,138,215,112,57,71,124,112,57,237,32,112,57,123,197,111,57,241,105,111,57,79,14,111,57,149,178,110,57,196,86,110,57,218,250,109,57,217,158,109,57,193,66,109,57,144,230,108,57,73,138,108,57,233,45,108,57,114,209,107,57,228,116,107,57,62,24,107,57,129,187,106,57,172,94,106,57,192,1,106,57,189,
164,105,57,162,71,105,57,113,234,104,57,40,141,104,57,200,47,104,57,81,210,103,57,195,116,103,57,30,23,103,57,98,185,102,57,143,91,102,57,166,253,101,57,165,159,101,57,142,65,101,57,96,227,100,57,27,133,100,57,192,38,100,57,78,200,99,57,197,105,99,57,38,11,99,57,113,172,98,57,164,77,98,57,194,238,97,57,201,143,97,57,186,48,97,57,148,209,96,57,89,114,96,57,7,19,96,57,158,179,95,57,32,84,95,57,140,244,94,57,225,148,94,57,33,53,94,57,75,213,93,57,94,117,93,57,92,21,93,57,68,181,92,57,22,85,92,57,211,
244,91,57,121,148,91,57,11,52,91,57,134,211,90,57,236,114,90,57,60,18,90,57,119,177,89,57,156,80,89,57,172,239,88,57,167,142,88,57,140,45,88,57,92,204,87,57,22,107,87,57,188,9,87,57,76,168,86,57,199,70,86,57,45,229,85,57,126,131,85,57,186,33,85,57,225,191,84,57,243,93,84,57,240,251,83,57,217,153,83,57,172,55,83,57,107,213,82,57,21,115,82,57,171,16,82,57,43,174,81,57,152,75,81,57,239,232,80,57,51,134,80,57,97,35,80,57,124,192,79,57,130,93,79,57,115,250,78,57,81,151,78,57,26,52,78,57,207,208,77,57,
112,109,77,57,252,9,77,57,117,166,76,57,218,66,76,57,42,223,75,57,103,123,75,57,144,23,75,57,165,179,74,57,166,79,74,57,147,235,73,57,109,135,73,57,51,35,73,57,229,190,72,57,132,90,72,57,15,246,71,57,134,145,71,57,235,44,71,57,59,200,70,57,121,99,70,57,163,254,69,57,185,153,69,57,189,52,69,57,173,207,68,57,138,106,68,57,84,5,68,57,11,160,67,57,175,58,67,57,64,213,66,57,190,111,66,57,41,10,66,57,129,164,65,57,198,62,65,57,249,216,64,57,25,115,64,57,38,13,64,57,33,167,63,57,9,65,63,57,222,218,62,57,
161,116,62,57,81,14,62,57,239,167,61,57,123,65,61,57,244,218,60,57,91,116,60,57,176,13,60,57,242,166,59,57,35,64,59,57,65,217,58,57,77,114,58,57,71,11,58,57,48,164,57,57,6,61,57,57,202,213,56,57,125,110,56,57,30,7,56,57,172,159,55,57,42,56,55,57,149,208,54,57,239,104,54,57,56,1,54,57,110,153,53,57,148,49,53,57,167,201,52,57,170,97,52,57,155,249,51,57,123,145,51,57,73,41,51,57,7,193,50,57,179,88,50,57,78,240,49,57,216,135,49,57,80,31,49,57,184,182,48,57,15,78,48,57,85,229,47,57,138,124,47,57,174,19,
47,57,194,170,46,57,196,65,46,57,182,216,45,57,152,111,45,57,105,6,45,57,41,157,44,57,216,51,44,57,120,202,43,57,7,97,43,57,133,247,42,57,243,141,42,57,81,36,42,57,158,186,41,57,220,80,41,57,9,231,40,57,38,125,40,57,51,19,40,57,48,169,39,57,29,63,39,57,251,212,38,57,200,106,38,57,133,0,38,57,51,150,37,57,209,43,37,57,95,193,36,57,222,86,36,57,77,236,35,57,172,129,35,57,252,22,35,57,60,172,34,57,109,65,34,57,143,214,33,57,161,107,33,57,164,0,33,57,152,149,32,57,124,42,32,57,82,191,31,57,24,84,31,57,
207,232,30,57,119,125,30,57,16,18,30,57,155,166,29,57,22,59,29,57,131,207,28,57,225,99,28,57,48,248,27,57,112,140,27,57,162,32,27,57,197,180,26,57,217,72,26,57,223,220,25,57,215,112,25,57,192,4,25,57,155,152,24,57,103,44,24,57,37,192,23,57,213,83,23,57,119,231,22,57,11,123,22,57,144,14,22,57,8,162,21,57,113,53,21,57,205,200,20,57,26,92,20,57,90,239,19,57,140,130,19,57,176,21,19,57,198,168,18,57,207,59,18,57,202,206,17,57,183,97,17,57,151,244,16,57,106,135,16,57,47,26,16,57,230,172,15,57,145,63,15,
57,45,210,14,57,189,100,14,57,64,247,13,57,181,137,13,57,29,28,13,57,120,174,12,57,198,64,12,57,7,211,11,57,59,101,11,57,98,247,10,57,125,137,10,57,138,27,10,57,139,173,9,57,127,63,9,57,103,209,8,57,65,99,8,57,16,245,7,57,209,134,7,57,135,24,7,57,48,170,6,57,204,59,6,57,92,205,5,57,224,94,5,57,88,240,4,57,195,129,4,57,34,19,4,57,117,164,3,57,189,53,3,57,248,198,2,57,39,88,2,57,74,233,1,57,97,122,1,57,109,11,1,57,109,156,0,57,97,45,0,57,147,124,255,56,76,158,254,56,239,191,253,56,122,225,252,56,238,
2,252,56,76,36,251,56,146,69,250,56,194,102,249,56,220,135,248,56,223,168,247,56,203,201,246,56,161,234,245,56,97,11,245,56,11,44,244,56,159,76,243,56,29,109,242,56,133,141,241,56,215,173,240,56,20,206,239,56,59,238,238,56,76,14,238,56,73,46,237,56,47,78,236,56,1,110,235,56,190,141,234,56,102,173,233,56,248,204,232,56,118,236,231,56,224,11,231,56,52,43,230,56,117,74,229,56,160,105,228,56,184,136,227,56,187,167,226,56,170,198,225,56,133,229,224,56,76,4,224,56,255,34,223,56,159,65,222,56,43,96,221,
56,163,126,220,56,8,157,219,56,89,187,218,56,151,217,217,56,194,247,216,56,218,21,216,56,223,51,215,56,209,81,214,56,176,111,213,56,124,141,212,56,54,171,211,56,222,200,210,56,114,230,209,56,245,3,209,56,101,33,208,56,196,62,207,56,16,92,206,56,74,121,205,56,114,150,204,56,137,179,203,56,142,208,202,56,129,237,201,56,99,10,201,56,52,39,200,56,243,67,199,56,161,96,198,56,62,125,197,56,202,153,196,56,70,182,195,56,176,210,194,56,10,239,193,56,83,11,193,56,139,39,192,56,179,67,191,56,203,95,190,56,211,
123,189,56,202,151,188,56,178,179,187,56,137,207,186,56,81,235,185,56,9,7,185,56,177,34,184,56,74,62,183,56,212,89,182,56,78,117,181,56,184,144,180,56,20,172,179,56,96,199,178,56,158,226,177,56,204,253,176,56,236,24,176,56,254,51,175,56,0,79,174,56,244,105,173,56,218,132,172,56,177,159,171,56,123,186,170,56,54,213,169,56,227,239,168,56,130,10,168,56,19,37,167,56,151,63,166,56,13,90,165,56,118,116,164,56,209,142,163,56,31,169,162,56,95,195,161,56,147,221,160,56,185,247,159,56,210,17,159,56,223,43,
158,56,223,69,157,56,210,95,156,56,184,121,155,56,147,147,154,56,96,173,153,56,34,199,152,56,215,224,151,56,128,250,150,56,30,20,150,56,175,45,149,56,53,71,148,56,175,96,147,56,29,122,146,56,128,147,145,56,215,172,144,56,35,198,143,56,100,223,142,56,154,248,141,56,197,17,141,56,229,42,140,56,250,67,139,56,4,93,138,56,4,118,137,56,249,142,136,56,228,167,135,56,196,192,134,56,154,217,133,56,103,242,132,56,41,11,132,56,225,35,131,56,143,60,130,56,51,85,129,56,206,109,128,56,191,12,127,56,206,61,125,
56,203,110,123,56,181,159,121,56,141,208,119,56,83,1,118,56,7,50,116,56,169,98,114,56,58,147,112,56,185,195,110,56,39,244,108,56,132,36,107,56,208,84,105,56,12,133,103,56,55,181,101,56,82,229,99,56,93,21,98,56,88,69,96,56,68,117,94,56,32,165,92,56,237,212,90,56,171,4,89,56,90,52,87,56,250,99,85,56,140,147,83,56,16,195,81,56,133,242,79,56,237,33,78,56,71,81,76,56,148,128,74,56,211,175,72,56,5,223,70,56,42,14,69,56,67,61,67,56,79,108,65,56,79,155,63,56,66,202,61,56,42,249,59,56,6,40,58,56,214,86,56,
56,155,133,54,56,85,180,52,56,4,227,50,56,168,17,49,56,65,64,47,56,209,110,45,56,86,157,43,56,209,203,41,56,66,250,39,56,169,40,38,56,8,87,36,56,93,133,34,56,169,179,32,56,236,225,30,56,38,16,29,56,88,62,27,56,130,108,25,56,164,154,23,56,190,200,21,56,208,246,19,56,219,36,18,56,223,82,16,56,219,128,14,56,209,174,12,56,192,220,10,56,168,10,9,56,138,56,7,56,102,102,5,56,61,148,3,56,13,194,1,56,176,223,255,55,59,59,252,55,188,150,248,55,51,242,244,55,161,77,241,55,5,169,237,55,97,4,234,55,180,95,230,
55,0,187,226,55,68,22,223,55,129,113,219,55,183,204,215,55,231,39,212,55,16,131,208,55,52,222,204,55,83,57,201,55,110,148,197,55,131,239,193,55,149,74,190,55,163,165,186,55,174,0,183,55,182,91,179,55,187,182,175,55,190,17,172,55,192,108,168,55,192,199,164,55,191,34,161,55,190,125,157,55,189,216,153,55,188,51,150,55,187,142,146,55,188,233,142,55,190,68,139,55,193,159,135,55,199,250,131,55,208,85,128,55,182,97,121,55,211,23,114,55,248,205,106,55,37,132,99,55,91,58,92,55,155,240,84,55,230,166,77,55,
59,93,70,55,157,19,63,55,12,202,55,55,136,128,48,55,19,55,41,55,173,237,33,55,87,164,26,55,18,91,19,55,222,17,12,55,189,200,4,55,93,255,250,54,104,109,236,54,156,219,221,54,251,73,207,54,135,184,192,54,64,39,178,54,41,150,163,54,67,5,149,54,143,116,134,54,31,200,111,54,139,167,82,54,102,135,53,54,178,103,24,54,230,144,246,53,87,83,188,53,189,22,130,53,62,182,15,53,46,8,218,51,68,100,178,180,46,163,77,181,8,9,161,181,95,63,219,181,74,186,10,182,82,212,39,182,195,237,68,182,154,6,98,182,212,30,127,
182,55,27,142,182,179,166,156,182,220,49,171,182,176,188,185,182,46,71,200,182,85,209,214,182,34,91,229,182,148,228,243,182,213,54,1,183,50,123,8,183,94,191,15,183,90,3,23,183,37,71,30,183,190,138,37,183,36,206,44,183,87,17,52,183,85,84,59,183,30,151,66,183,178,217,73,183,15,28,81,183,52,94,88,183,33,160,95,183,214,225,102,183,80,35,110,183,144,100,117,183,149,165,124,183,47,243,129,183,117,147,133,183,157,51,137,183,165,211,140,183,142,115,144,183,86,19,148,183,255,178,151,183,134,82,155,183,237,
241,158,183,50,145,162,183,86,48,166,183,87,207,169,183,54,110,173,183,241,12,177,183,137,171,180,183,254,73,184,183,78,232,187,183,122,134,191,183,129,36,195,183,99,194,198,183,31,96,202,183,181,253,205,183,36,155,209,183,109,56,213,183,142,213,216,183,136,114,220,183,90,15,224,183,4,172,227,183,133,72,231,183,221,228,234,183,11,129,238,183,15,29,242,183,234,184,245,183,153,84,249,183,30,240,252,183,187,69,0,184,82,19,2,184,211,224,3,184,61,174,5,184,145,123,7,184,206,72,9,184,245,21,11,184,4,227,
12,184,252,175,14,184,221,124,16,184,166,73,18,184,87,22,20,184,241,226,21,184,114,175,23,184,219,123,25,184,43,72,27,184,98,20,29,184,129,224,30,184,135,172,32,184,115,120,34,184,69,68,36,184,254,15,38,184,158,219,39,184,35,167,41,184,141,114,43,184,222,61,45,184,19,9,47,184,46,212,48,184,46,159,50,184,19,106,52,184,220,52,54,184,138,255,55,184],"i8",4,y.a+829440);
Q([28,202,57,184,146,148,59,184,235,94,61,184,41,41,63,184,74,243,64,184,78,189,66,184,53,135,68,184,0,81,70,184,173,26,72,184,60,228,73,184,174,173,75,184,2,119,77,184,56,64,79,184,80,9,81,184,73,210,82,184,36,155,84,184,224,99,86,184,125,44,88,184,250,244,89,184,89,189,91,184,152,133,93,184,183,77,95,184,182,21,97,184,149,221,98,184,84,165,100,184,243,108,102,184,112,52,104,184,205,251,105,184,9,195,107,184,36,138,109,184,29,81,111,184,245,23,113,184,171,222,114,184,63,165,116,184,176,107,118,184,
0,50,120,184,45,248,121,184,55,190,123,184,30,132,125,184,226,73,127,184,194,135,128,184,128,106,129,184,45,77,130,184,200,47,131,184,81,18,132,184,200,244,132,184,45,215,133,184,127,185,134,184,191,155,135,184,236,125,136,184,7,96,137,184,16,66,138,184,5,36,139,184,232,5,140,184,184,231,140,184,116,201,141,184,30,171,142,184,180,140,143,184,55,110,144,184,167,79,145,184,3,49,146,184,76,18,147,184,129,243,147,184,162,212,148,184,175,181,149,184,168,150,150,184,141,119,151,184,95,88,152,184,27,57,
153,184,196,25,154,184,88,250,154,184,216,218,155,184,67,187,156,184,153,155,157,184,219,123,158,184,7,92,159,184,31,60,160,184,34,28,161,184,15,252,161,184,231,219,162,184,170,187,163,184,88,155,164,184,240,122,165,184,114,90,166,184,223,57,167,184,54,25,168,184,119,248,168,184,162,215,169,184,183,182,170,184,181,149,171,184,158,116,172,184,112,83,173,184,44,50,174,184,209,16,175,184,96,239,175,184,216,205,176,184,57,172,177,184,131,138,178,184,182,104,179,184,210,70,180,184,215,36,181,184,197,2,
182,184,156,224,182,184,91,190,183,184,2,156,184,184,146,121,185,184,10,87,186,184,107,52,187,184,179,17,188,184,228,238,188,184,252,203,189,184,252,168,190,184,228,133,191,184,180,98,192,184,107,63,193,184,10,28,194,184,144,248,194,184,254,212,195,184,82,177,196,184,142,141,197,184,177,105,198,184,187,69,199,184,171,33,200,184,131,253,200,184,65,217,201,184,229,180,202,184,113,144,203,184,226,107,204,184,58,71,205,184,120,34,206,184,156,253,206,184,167,216,207,184,151,179,208,184,109,142,209,184,
41,105,210,184,202,67,211,184,82,30,212,184,190,248,212,184,16,211,213,184,72,173,214,184,100,135,215,184,102,97,216,184,77,59,217,184,25,21,218,184,202,238,218,184,96,200,219,184,218,161,220,184,57,123,221,184,124,84,222,184,164,45,223,184,176,6,224,184,161,223,224,184,118,184,225,184,46,145,226,184,203,105,227,184,76,66,228,184,177,26,229,184,249,242,229,184,37,203,230,184,52,163,231,184,39,123,232,184,254,82,233,184,183,42,234,184,84,2,235,184,212,217,235,184,55,177,236,184,125,136,237,184,166,
95,238,184,178,54,239,184,160,13,240,184,113,228,240,184,37,187,241,184,187,145,242,184,51,104,243,184,141,62,244,184,202,20,245,184,233,234,245,184,233,192,246,184,204,150,247,184,144,108,248,184,55,66,249,184,190,23,250,184,40,237,250,184,115,194,251,184,159,151,252,184,172,108,253,184,155,65,254,184,107,22,255,184,28,235,255,184,215,95,0,185,16,202,0,185,58,52,1,185,84,158,1,185,94,8,2,185,89,114,2,185,68,220,2,185,31,70,3,185,234,175,3,185,165,25,4,185,81,131,4,185,236,236,4,185,119,86,5,185,
242,191,5,185,93,41,6,185,184,146,6,185,3,252,6,185,61,101,7,185,103,206,7,185,129,55,8,185,139,160,8,185,132,9,9,185,108,114,9,185,68,219,9,185,12,68,10,185,194,172,10,185,105,21,11,185,254,125,11,185,131,230,11,185,247,78,12,185,90,183,12,185,173,31,13,185,238,135,13,185,31,240,13,185,62,88,14,185,77,192,14,185,74,40,15,185,55,144,15,185,18,248,15,185,220,95,16,185,149,199,16,185,61,47,17,185,211,150,17,185,88,254,17,185,203,101,18,185,46,205,18,185,126,52,19,185,189,155,19,185,235,2,20,185,7,106,
20,185,17,209,20,185,10,56,21,185,241,158,21,185,198,5,22,185,137,108,22,185,58,211,22,185,218,57,23,185,103,160,23,185,227,6,24,185,77,109,24,185,164,211,24,185,234,57,25,185,29,160,25,185,62,6,26,185,77,108,26,185,74,210,26,185,52,56,27,185,12,158,27,185,209,3,28,185,133,105,28,185,37,207,28,185,179,52,29,185,47,154,29,185,152,255,29,185,238,100,30,185,50,202,30,185,99,47,31,185,129,148,31,185,141,249,31,185,133,94,32,185,107,195,32,185,62,40,33,185,254,140,33,185,170,241,33,185,68,86,34,185,203,
186,34,185,62,31,35,185,159,131,35,185,236,231,35,185,38,76,36,185,76,176,36,185,96,20,37,185,96,120,37,185,76,220,37,185,37,64,38,185,235,163,38,185,157,7,39,185,60,107,39,185,199,206,39,185,62,50,40,185,161,149,40,185,241,248,40,185,45,92,41,185,86,191,41,185,106,34,42,185,107,133,42,185,87,232,42,185,48,75,43,185,244,173,43,185,165,16,44,185,66,115,44,185,202,213,44,185,62,56,45,185,158,154,45,185,234,252,45,185,33,95,46,185,69,193,46,185,83,35,47,185,78,133,47,185,52,231,47,185,5,73,48,185,194,
170,48,185,107,12,49,185,254,109,49,185,125,207,49,185,232,48,50,185,62,146,50,185,127,243,50,185,171,84,51,185,194,181,51,185,197,22,52,185,178,119,52,185,139,216,52,185,79,57,53,185,253,153,53,185,151,250,53,185,27,91,54,185,139,187,54,185,229,27,55,185,42,124,55,185,89,220,55,185,116,60,56,185,121,156,56,185,104,252,56,185,67,92,57,185,7,188,57,185,183,27,58,185,80,123,58,185,213,218,58,185,67,58,59,185,156,153,59,185,223,248,59,185,13,88,60,185,37,183,60,185,39,22,61,185,19,117,61,185,233,211,
61,185,170,50,62,185,84,145,62,185,232,239,62,185,103,78,63,185,207,172,63,185,34,11,64,185,94,105,64,185,132,199,64,185,147,37,65,185,141,131,65,185,112,225,65,185,61,63,66,185,243,156,66,185,148,250,66,185,29,88,67,185,144,181,67,185,237,18,68,185,51,112,68,185,99,205,68,185,124,42,69,185,126,135,69,185,106,228,69,185,63,65,70,185,253,157,70,185,164,250,70,185,52,87,71,185,174,179,71,185,16,16,72,185,92,108,72,185,145,200,72,185,174,36,73,185,181,128,73,185,164,220,73,185,125,56,74,185,62,148,74,
185,232,239,74,185,123,75,75,185,246,166,75,185,90,2,76,185,167,93,76,185,220,184,76,185,250,19,77,185,1,111,77,185,239,201,77,185,199,36,78,185,135,127,78,185,47,218,78,185,191,52,79,185,56,143,79,185,153,233,79,185,227,67,80,185,20,158,80,185,46,248,80,185,48,82,81,185,26,172,81,185,236,5,82,185,166,95,82,185,72,185,82,185,210,18,83,185,68,108,83,185,158,197,83,185,224,30,84,185,10,120,84,185,27,209,84,185,20,42,85,185,245,130,85,185,189,219,85,185,109,52,86,185,5,141,86,185,132,229,86,185,235,
61,87,185,57,150,87,185,111,238,87,185,140,70,88,185,145,158,88,185,125,246,88,185,80,78,89,185,10,166,89,185,172,253,89,185,53,85,90,185,165,172,90,185,253,3,91,185,59,91,91,185,97,178,91,185,109,9,92,185,97,96,92,185,60,183,92,185,253,13,93,185,165,100,93,185,53,187,93,185,171,17,94,185,8,104,94,185,76,190,94,185,118,20,95,185,135,106,95,185,127,192,95,185,93,22,96,185,35,108,96,185,206,193,96,185,96,23,97,185,217,108,97,185,56,194,97,185,126,23,98,185,170,108,98,185,188,193,98,185,181,22,99,185,
148,107,99,185,89,192,99,185,4,21,100,185,150,105,100,185,14,190,100,185,108,18,101,185,176,102,101,185,218,186,101,185,234,14,102,185,224,98,102,185,188,182,102,185,126,10,103,185,38,94,103,185,180,177,103,185,40,5,104,185,129,88,104,185,192,171,104,185,229,254,104,185,240,81,105,185,224,164,105,185,182,247,105,185,113,74,106,185,19,157,106,185,153,239,106,185,5,66,107,185,87,148,107,185,142,230,107,185,171,56,108,185,172,138,108,185,148,220,108,185,96,46,109,185,18,128,109,185,169,209,109,185,37,
35,110,185,135,116,110,185,205,197,110,185,249,22,111,185,10,104,111,185,255,184,111,185,218,9,112,185,154,90,112,185,63,171,112,185,201,251,112,185,55,76,113,185,139,156,113,185,195,236,113,185,224,60,114,185,226,140,114,185,201,220,114,185,148,44,115,185,68,124,115,185,217,203,115,185,82,27,116,185,176,106,116,185,242,185,116,185,25,9,117,185,37,88,117,185,21,167,117,185,233,245,117,185,162,68,118,185,63,147,118,185,192,225,118,185,38,48,119,185,112,126,119,185,158,204,119,185,177,26,120,185,167,
104,120,185,130,182,120,185,65,4,121,185,228,81,121,185,107,159,121,185,214,236,121,185,37,58,122,185,88,135,122,185,111,212,122,185,106,33,123,185,73,110,123,185,12,187,123,185,178,7,124,185,60,84,124,185,170,160,124,185,252,236,124,185,50,57,125,185,75,133,125,185,72,209,125,185,40,29,126,185,236,104,126,185,147,180,126,185,30,0,127,185,141,75,127,185,223,150,127,185,20,226,127,185,151,22,128,185,21,60,128,185,132,97,128,185,230,134,128,185,57,172,128,185,126,209,128,185,180,246,128,185,220,27,
129,185,245,64,129,185,0,102,129,185,253,138,129,185,235,175,129,185,203,212,129,185,156,249,129,185,95,30,130,185,19,67,130,185,185,103,130,185,80,140,130,185,216,176,130,185,82,213,130,185,190,249,130,185,27,30,131,185,105,66,131,185,168,102,131,185,217,138,131,185,252,174,131,185,15,211,131,185,20,247,131,185,10,27,132,185,242,62,132,185,203,98,132,185,149,134,132,185,80,170,132,185,253,205,132,185,154,241,132,185,41,21,133,185,169,56,133,185,27,92,133,185,125,127,133,185,209,162,133,185,22,198,
133,185,76,233,133,185,115,12,134,185,139,47,134,185,148,82,134,185,142,117,134,185,121,152,134,185,86,187,134,185,35,222,134,185,226,0,135,185,145,35,135,185,49,70,135,185,195,104,135,185,69,139,135,185,184,173,135,185,28,208,135,185,114,242,135,185,184,20,136,185,239,54,136,185,22,89,136,185,47,123,136,185,57,157,136,185,51,191,136,185,30,225,136,185,250,2,137,185,199,36,137,185,133,70,137,185,51,104,137,185,210,137,137,185,98,171,137,185,227,204,137,185,84,238,137,185,182,15,138,185,9,49,138,185,
76,82,138,185,128,115,138,185,165,148,138,185,187,181,138,185,193,214,138,185,184,247,138,185,159,24,139,185,119,57,139,185,63,90,139,185,248,122,139,185,162,155,139,185,60,188,139,185,199,220,139,185,66,253,139,185,174,29,140,185,10,62,140,185,87,94,140,185,148,126,140,185,194,158,140,185,224,190,140,185,239,222,140,185,238,254,140,185,221,30,141,185,189,62,141,185,141,94,141,185,77,126,141,185,254,157,141,185,160,189,141,185,49,221,141,185,179,252,141,185,37,28,142,185,136,59,142,185,219,90,142,
185,30,122,142,185,81,153,142,185,117,184,142,185,137,215,142,185,141,246,142,185,129,21,143,185,102,52,143,185,59,83,143,185,0,114,143,185,181,144,143,185,90,175,143,185,240,205,143,185,117,236,143,185,235,10,144,185,81,41,144,185,167,71,144,185,237,101,144,185,35,132,144,185,73,162,144,185,95,192,144,185,101,222,144,185,92,252,144,185,66,26,145,185,24,56,145,185,223,85,145,185,149,115,145,185,59,145,145,185,209,174,145,185,88,204,145,185,206,233,145,185,52,7,146,185,138,36,146,185,208,65,146,185,
6,95,146,185,43,124,146,185,65,153,146,185,70,182,146,185,60,211,146,185,33,240,146,185,246,12,147,185,187,41,147,185,111,70,147,185,20,99,147,185,168,127,147,185,44,156,147,185,160,184,147,185,3,213,147,185,87,241,147,185,154,13,148,185,205,41,148,185,239,69,148,185,1,98,148,185,3,126,148,185,245,153,148,185,214,181,148,185,167,209,148,185,103,237,148,185,23,9,149,185,183,36,149,185,71,64,149,185,198,91,149,185,53,119,149,185,147,146,149,185,225,173,149,185,30,201,149,185,75,228,149,185,103,255,
149,185,116,26,150,185,111,53,150,185,90,80,150,185,53,107,150,185,255,133,150,185,185,160,150,185,98,187,150,185,250,213,150,185,130,240,150,185,250,10,151,185,97,37,151,185,183,63,151,185,253,89,151,185,50,116,151,185,87,142,151,185,107,168,151,185,110,194,151,185,97,220,151,185,67,246,151,185,20,16,152,185,213,41,152,185,133,67,152,185,37,93,152,185,179,118,152,185,49,144,152,185,159,169,152,185,251,194,152,185,71,220,152,185,131,245,152,185,173,14,153,185,199,39,153,185,208,64,153,185,200,89,
153,185,175,114,153,185,134,139,153,185,76,164,153,185,1,189,153,185,165,213,153,185,56,238,153,185,187,6,154,185,44,31,154,185,141,55,154,185,221,79,154,185,28,104,154,185,75,128,154,185,104,152,154,185,116,176,154,185,112,200,154,185,91,224,154,185,52,248,154,185,253,15,155,185,181,39,155,185,92,63,155,185,242,86,155,185,119,110,155,185,235,133,155,185,78,157,155,185,160,180,155,185,225,203,155,185,17,227,155,185,48,250,155,185,62,17,156,185,59,40,156,185,39,63,156,185,2,86,156,185,203,108,156,
185,132,131,156,185,44,154,156,185,194,176,156,185,72,199,156,185,188,221,156,185,31,244,156,185,114,10,157,185,179,32,157,185,227,54,157,185,1,77,157,185,15,99,157,185,11,121,157,185,247,142,157,185,209,164,157,185,154,186,157,185,82,208,157,185,248,229,157,185,141,251,157,185,18,17,158,185,133,38,158,185,230,59,158,185,55,81,158,185,118,102,158,185,164,123,158,185,193,144,158,185,204,165,158,185,198,186,158,185,175,207,158,185,135,228,158,185,77,249,158,185,2,14,159,185,166,34,159,185,56,55,159,
185,185,75,159,185,41,96,159,185,135,116,159,185,212,136,159,185,16,157,159,185,59,177,159,185,83,197,159,185,91,217,159,185,81,237,159,185,54,1,160,185,10,21,160,185,204,40,160,185,124,60,160,185,27,80,160,185,169,99,160,185,37,119,160,185,144,138,160,185,234,157,160,185,50,177,160,185,104,196,160,185,141,215,160,185,161,234,160,185,163,253,160,185,148,16,161,185,115,35,161,185,65,54,161,185,253,72,161,185,167,91,161,185,65,110,161,185,200,128,161,185,62,147,161,185,163,165,161,185,246,183,161,185,
55,202,161,185,103,220,161,185,133,238,161,185,146,0,162,185,141,18,162,185,119,36,162,185,79,54,162,185,21,72,162,185,202,89,162,185,109,107,162,185,255,124,162,185,127,142,162,185,237,159,162,185,74,177,162,185,149,194,162,185,206,211,162,185,246,228,162,185,12,246,162,185,17,7,163,185,4,24,163,185,229,40,163,185,180,57,163,185,114,74,163,185,30,91,163,185,184,107,163,185,65,124,163,185,184,140,163,185,29,157,163,185,113,173,163,185,179,189,163,185,227,205,163,185,1,222,163,185,14,238,163,185,8,
254,163,185,242,13,164,185,201,29,164,185,143,45,164,185,66,61,164,185,228,76,164,185,117,92,164,185,243,107,164,185,96,123,164,185,187,138,164,185,4,154,164,185,59,169,164,185,97,184,164,185,116,199,164,185,118,214,164,185,102,229,164,185,69,244,164,185,17,3,165,185,204,17,165,185,116,32,165,185,11,47,165,185,144,61,165,185,3,76,165,185,101,90,165,185,180,104,165,185,241,118,165,185,29,133,165,185,55,147,165,185,63,161,165,185,53,175,165,185,25,189,165,185,235,202,165,185,172,216,165,185,90,230,
165,185,246,243,165,185,129,1,166,185,250,14,166,185,96,28,166,185,181,41,166,185,248,54,166,185,41,68,166,185,72,81,166,185,85,94,166,185,80,107,166,185,57,120,166,185,16,133,166,185,214,145,166,185,137,158,166,185,42,171,166,185,185,183,166,185,55,196,166,185,162,208,166,185,251,220,166,185,67,233,166,185,120,245,166,185,155,1,167,185,173,13,167,185,172,25,167,185,153,37,167,185,117,49,167,185,62,61,167,185,245,72,167,185,155,84,167,185,46,96,167,185,175,107,167,185,30,119,167,185,123,130,167,185,
198,141,167,185,255,152,167,185,38,164,167,185,59,175,167,185,62,186,167,185,47,197,167,185,14,208,167,185,218,218,167,185,149,229,167,185,61,240,167,185,212,250,167,185,88,5,168,185,203,15,168,185,43,26,168,185,121,36,168,185,181,46,168,185,223,56,168,185,247,66,168,185,253,76,168,185,240,86,168,185,210,96,168,185,161,106,168,185,94,116,168,185,10,126,168,185,163,135,168,185,42,145,168,185,158,154,168,185,1,164,168,185,82,173,168,185,144,182,168,185,189,191,168,185,215,200,168,185,223,209,168,185,
213,218,168,185,184,227,168,185,138,236,168,185,74,245,168,185,247,253,168,185,146,6,169,185,27,15,169,185,146,23,169,185,247,31,169,185,73,40,169,185,138,48,169,185,184,56,169,185,212,64,169,185,222,72,169,185,213,80,169,185,187,88,169,185,142,96,169,185,79,104,169,185,254,111,169,185,155,119,169,185,38,127,169,185,158,134,169,185,4,142,169,185,89,149,169,185,154,156,169,185,202,163,169,185,232,170,169,185,243,177,169,185,236,184,169,185,211,191,169,185,167,198,169,185,106,205,169,185,26,212,169,
185,184,218,169,185,68,225,169,185,190,231,169,185,37,238,169,185,122,244,169,185,189,250,169,185,238,0,170,185,13,7,170,185,25,13,170,185,19,19,170,185,251,24,170,185,209,30,170,185,149,36,170,185,70,42,170,185,229,47,170,185,114,53,170,185,236,58,170,185,85,64,170,185,171,69,170,185,239,74,170,185,32,80,170,185,64,85,170,185,77,90,170,185,72,95,170,185,49,100,170,185,7,105,170,185,203,109,170,185,126,114,170,185,29,119,170,185,171,123,170,185,38,128,170,185,143,132,170,185,230,136,170,185,43,141,
170,185,93,145,170,185,125,149,170,185,139,153,170,185,135,157,170,185,112,161,170,185,71,165,170,185,12,169,170,185,191,172,170,185,96,176,170,185,238,179,170,185,106,183,170,185,211,186,170,185,43,190,170,185,112,193,170,185,163,196,170,185,196,199,170,185,210,202,170,185,207,205,170,185,185,208,170,185,144,211,170,185,86,214,170,185,9,217,170,185,170,219,170,185,57,222,170,185,182,224,170,185,32,227,170,185,120,229,170,185,190,231,170,185,241,233,170,185,19,236,170,185,34,238,170,185,31,240,170,
185,9,242,170,185,226,243,170,185,168,245,170,185,92,247,170,185,253,248,170,185,141,250,170,185,10,252,170,185,117,253,170,185,206,254,170,185,20,0,171,185,72,1,171,185,106,2,171,185,122,3,171,185,120,4,171,185,99,5,171,185,60,6,171,185,3,7,171,185,184,7,171,185,90,8,171,185,234,8,171,185,104,9,171,185,212,9,171,185,45,10,171,185,117,10,171,185,170,10,171,185,205,10,171,185,221,10,171,185,220,10,171,185,200,10,171,185,162,10,171,185,106,10,171,185,31,10,171,185,195,9,171,185,84,9,171,185,211,8,171,
185,63,8,171,185,154,7,171,185,226,6,171,185,24,6,171,185,60,5,171,185,78,4,171,185,78,3,171,185,59,2,171,185,22,1,171,185,223,255,170,185,150,254,170,185,58,253,170,185,205,251,170,185,77,250,170,185,187,248,170,185,23,247,170,185,97,245,170,185,152,243,170,185,189,241,170,185,209,239,170,185,210,237,170,185,192,235,170,185,157,233,170,185,104,231,170,185,32,229,170,185,198,226,170,185,90,224,170,185,220,221,170,185,76,219,170,185,169,216,170,185,245,213,170,185,46,211,170,185,85,208,170,185,106,
205,170,185,109,202,170,185,93,199,170,185,60,196,170,185,8,193,170,185,195,189,170,185,107,186,170,185,1,183,170,185,133,179,170,185,247,175,170,185,87,172,170,185,164,168,170,185,224,164,170,185,9,161,170,185,32,157,170,185,38,153,170,185,25,149,170,185,250,144,170,185,201,140,170,185,133,136,170,185,48,132,170,185,201,127,170,185,79,123,170,185,196,118,170,185,38,114,170,185,119,109,170,185,181,104,170,185,225,99,170,185,251,94,170,185,3,90,170,185,250,84,170,185,222,79,170,185,176,74,170,185,
111,69,170,185,29,64,170,185,185,58,170,185,67,53,170,185,187,47,170,185,33,42,170,185,116,36,170,185,182,30,170,185,230,24,170,185,3,19,170,185,15,13,170,185,9,7,170,185,241,0,170,185,198,250,169,185,138,244,169,185,60,238,169,185,219,231,169,185,105,225,169,185,229,218,169,185,79,212,169,185,167,205,169,185,236,198,169,185,32,192,169,185,66,185,169,185,82,178,169,185,80,171,169,185,60,164,169,185,23,157,169,185,223,149,169,185,149,142,169,185,58,135,169,185,204,127,169,185,77,120,169,185,187,112,
169,185,24,105,169,185,99,97,169,185,156,89,169,185,195,81,169,185,216,73,169,185,219,65,169,185,204,57,169,185,172,49,169,185,122,41,169,185,53,33,169,185,223,24,169,185,119,16,169,185,253,7,169,185,114,255,168,185,212,246,168,185,37,238,168,185,100,229,168,185,145,220,168,185,172,211,168,185,181,202,168,185,173,193,168,185,146,184,168,185,102,175,168,185,40,166,168,185,216,156,168,185,119,147,168,185,4,138,168,185,127,128,168,185,232,118,168,185,63,109,168,185,133,99,168,185,185,89,168,185,219,
79,168,185,235,69,168,185,234,59,168,185,215,49,168,185,178,39,168,185,123,29,168,185,51,19,168,185,217,8,168,185,109,254,167,185,240,243,167,185,97,233,167,185,192,222,167,185,14,212,167,185,74,201,167,185,116,190,167,185,140,179,167,185,147,168,167,185,136,157,167,185,108,146,167,185,62,135,167,185,254,123,167,185,172,112,167,185,73,101,167,185,213,89,167,185,78,78,167,185,183,66,167,185,13,55,167,185,82,43,167,185,133,31,167,185,167,19,167,185,183,7,167,185,182,251,166,185,163,239,166,185,126,
227,166,185,72,215,166,185,1,203,166,185,167,190,166,185,61,178,166,185,192,165,166,185,51,153,166,185,147,140,166,185,226,127,166,185,32,115,166,185,76,102,166,185,103,89,166,185,112,76,166,185,104,63,166,185,78,50,166,185,35,37,166,185,230,23,166,185,152,10,166,185,57,253,165,185,200,239,165,185,69,226,165,185,177,212,165,185,12,199,165,185,86,185,165,185,141,171,165,185,180,157,165,185,201,143,165,185,205,129,165,185,191,115,165,185,160,101,165,185,112,87,165,185,46,73,165,185,219,58,165,185,119,
44,165,185,1,30,165,185,122,15,165,185,226,0,165,185,56,242,164,185,125,227,164,185,177,212,164,185,211,197,164,185,228,182,164,185,228,167,164,185,211,152,164,185,176,137,164,185,124,122,164,185,55,107,164,185,225,91,164,185,121,76,164,185,1,61,164,185,119,45,164,185,219,29,164,185,47,14,164,185,113,254,163,185,162,238,163,185,195,222,163,185,209,206,163,185,207,190,163,185,188,174,163,185,151,158,163,185,97,142,163,185,26,126,163,185,194,109,163,185,89,93,163,185,223,76,163,185,84,60,163,185,184,
43,163,185,10,27,163,185,76,10,163,185,124,249,162,185,155,232,162,185,170,215,162,185,167,198,162,185,147,181,162,185,110,164,162,185,57,147,162,185,242,129,162,185,154,112,162,185,49,95,162,185,184,77,162,185,45,60,162,185,145,42,162,185,229,24,162,185,39,7,162,185,88,245,161,185,121,227,161,185,137,209,161,185,135,191,161,185,117,173,161,185,82,155,161,185,30,137,161,185,217,118,161,185,132,100,161,185,29,82,161,185,166,63,161,185,29,45,161,185,132,26,161,185,218,7,161,185,32,245,160,185,84,226,
160,185,120,207,160,185,139,188,160,185,141,169,160,185,126,150,160,185,95,131,160,185,46,112,160,185,238,92,160,185,156,73,160,185,58,54,160,185,198,34,160,185,67,15,160,185,174,251,159,185,9,232,159,185,83,212,159,185,141,192,159,185,182,172,159,185,206,152,159,185,213,132,159,185,204,112,159,185,178,92,159,185,136,72,159,185,77,52,159,185,2,32,159,185,166,11,159,185,57,247,158,185,188,226,158,185,46,206,158,185,144,185,158,185,225,164,158,185,33,144,158,185,82,123,158,185,113,102,158,185,128,81,
158,185,127,60,158,185,109,39,158,185,75,18,158,185,24,253,157,185,213,231,157,185,129,210,157,185,29,189,157,185,169,167,157,185,36,146,157,185,142,124,157,185,233,102,157,185,51,81,157,185,108,59,157,185,149,37,157,185,174,15,157,185,183,249,156,185,175,227,156,185,151,205,156,185,111,183,156,185,54,161,156,185,237,138,156,185,148,116,156,185,42,94,156,185,177,71,156,185,39,49,156,185,141,26,156,185,226,3,156,185,40,237,155,185,93,214,155,185,130,191,155,185,151,168,155,185,155,145,155,185,144,
122,155,185,116,99,155,185,72,76,155,185,12,53,155,185,192,29,155,185,100,6,155,185,248,238,154,185,124,215,154,185,239,191,154,185,83,168,154,185,167,144,154,185,234,120,154,185,30,97,154,185,65,73,154,185,84,49,154,185,88,25,154,185,75,1,154,185,47,233,153,185,3,209,153,185,198,184,153,185,122,160,153,185,30,136,153,185,178,111,153,185,53,87,153,185,170,62,153,185,14,38,153,185,98,13,153,185,166,244,152,185,219,219,152,185,0,195,152,185,21,170,152,185,26,145,152,185,15,120,152,185,245,94,152,185,
203,69,152,185,145,44,152,185,71,19,152,185,238,249,151,185,132,224,151,185,11,199,151,185,131,173,151,185,234,147,151,185,66,122,151,185,139,96,151,185,195,70,151,185,236,44,151,185,6,19,151,185,16,249,150,185,10,223,150,185,244,196,150,185,207,170,150,185,155,144,150,185,86,118,150,185,3,92,150,185,159,65,150,185,45,39,150,185,170,12,150,185,25,242,149,185,119,215,149,185,198,188,149,185,6,162,149,185,55,135,149,185,87,108,149,185,105,81,149,185,107,54,149,185,93,27,149,185,65,0,149,185,20,229,
148,185,217,201,148,185,142,174,148,185,52,147,148,185,202,119,148,185,81,92,148,185,201,64,148,185,50,37,148,185,139,9,148,185,213,237,147,185,15,210,147,185,59,182,147,185,87,154,147,185,100,126,147,185,98,98,147,185,81,70,147,185,48,42,147,185,0,14,147,185,193,241,146,185,115,213,146,185,22,185,146,185,170,156,146,185,47,128,146,185,164,99,146,185,11,71,146,185,98,42,146,185,170,13,146,185,228,240,145,185,14,212,145,185,41,183,145,185,53,154,145,185,51,125,145,185,33,96,145,185,0,67,145,185,209,
37,145,185,146,8,145,185,69,235,144,185,232,205,144,185,125,176,144,185,3,147,144,185,122,117,144,185,226,87,144,185,59,58,144,185,134,28,144,185,194,254,143,185,238,224,143,185,13,195,143,185,28,165,143,185,28,135,143,185,14,105,143,185,241,74,143,185,198,44,143,185,139,14,143,185,66,240,142,185,235,209,142,185,132,179,142,185,15,149,142,185,139,118,142,185,249,87,142,185,88,57,142,185,169,26,142,185,235,251,141,185,30,221,141,185,67,190,141,185,89,159,141,185,97,128,141,185,90,97,141,185,69,66,
141,185,33,35,141,185,239,3,141,185,174,228,140,185,95,197,140,185,1,166,140,185,149,134,140,185,27,103,140,185,146,71,140,185,251,39,140,185,86,8,140,185,162,232,139,185,224,200,139,185,15,169,139,185,48,137,139,185,67,105,139,185,72,73,139,185,62,41,139,185,38,9,139,185,0,233,138,185,204,200,138,185,137,168,138,185,57,136,138,185,218,103,138,185,109,71,138,185,242,38,138,185,104,6,138,185,209,229,137,185,44,197,137,185,120,164,137,185,182,131,137,185,231,98,137,185,9,66,137,185,29,33,137,185,35,
0,137,185,28,223,136,185,6,190,136,185,226,156,136,185,176,123,136,185,113,90,136,185,35,57,136,185,200,23,136,185,94,246,135,185,231,212,135,185,98,179,135,185,207,145,135,185,46,112,135,185,128,78,135,185,195,44,135,185,249,10,135,185,33,233,134,185,59,199,134,185,72,165,134,185,71,131,134,185,56,97,134,185,27,63,134,185,241,28,134,185,185,250,133,185,115,216,133,185,32,182,133,185,191,147,133,185,81,113,133,185,213,78,133,185,75,44,133,185,180,9,133,185,15,231,132,185,93,196,132,185,157,161,132,
185,208,126,132,185,245,91,132,185,13,57,132,185,23,22,132,185,20,243,131,185,3,208,131,185,229,172,131,185,186,137,131,185,129,102,131,185,59,67,131,185,232,31,131,185,135,252,130,185,25,217,130,185,157,181,130,185,21,146,130,185,127,110,130,185,219,74,130,185,43,39,130,185,109,3,130,185,163,223,129,185,203,187,129,185,229,151,129,185,243,115,129,185,243,79,129,185,231,43,129,185,205,7,129,185,166,227,128,185,114,191,128,185,49,155,128,185,227,118,128,185,136,82,128,185,32,46,128,185,171,9,128,185,
83,202,127,185,53,129,127,185,253,55,127,185,171,238,126,185,64,165,126,185,186,91,126,185,27,18,126,185,98,200,125,185,144,126,125,185,164,52,125,185,158,234,124,185,126,160,124,185,69,86,124,185,243,11,124,185,135,193,123,185,1,119,123,185,98,44,123,185,170,225,122,185,216,150,122,185,237,75,122,185,233,0,122,185,203,181,121,185,148,106,121,185,68,31,121,185,218,211,120,185,88,136,120,185,188,60,120,185,8,241,119,185,58,165,119,185,83,89,119,185,84,13,119,185,59,193,118,185,10,117,118,185,191,40,
118,185,92,220,117,185,224,143,117,185,75,67,117,185,158,246,116,185,215,169,116,185,248,92,116,185,1,16,116,185,241,194,115,185,200,117,115,185,135,40,115,185,45,219,114,185,187,141,114,185,48,64,114,185,141,242,113,185,209,164,113,185,253,86,113,185,17,9,113,185,13,187,112,185,240,108,112,185,187,30,112,185,110,208,111,185,9,130,111,185,140,51,111,185,247,228,110,185,74,150,110,185,132,71,110,185,167,248,109,185,178,169,109,185,165,90,109,185,128,11,109,185,67,188,108,185,239,108,108,185,130,29,
108,185,254,205,107,185,99,126,107,185,175,46,107,185,228,222,106,185,2,143,106,185,8,63,106,185,246,238,105,185,205,158,105,185,141,78,105,185,53,254,104,185,198,173,104,185,63,93,104,185,161,12,104,185,236,187,103,185,32,107,103,185,60,26,103,185,65,201,102,185,48,120,102,185,7,39,102,185,199,213,101,185,112,132,101,185,2,51,101,185,125,225,100,185,225,143,100,185,46,62,100,185,101,236,99,185,133,154,99,185,142,72,99,185,128,246,98,185,91,164,98,185,32,82,98,185,206,255,97,185,102,173,97,185,231,
90,97,185,82,8,97,185,166,181,96,185,227,98,96,185,11,16,96,185,27,189,95,185,22,106,95,185,250,22,95,185,200,195,94,185,128,112,94,185,33,29,94,185,173,201,93,185,34,118,93,185,129,34,93,185,203,206,92,185,254,122,92,185,27,39,92,185,34,211,91,185,19,127,91,185,239,42,91,185,181,214,90,185,100,130,90,185,255,45,90,185,131,217,89,185,242,132,89,185,75,48,89,185,142,219,88,185,188,134,88,185,213,49,88,185,215,220,87,185,197,135,87,185,157,50,87,185,95,221,86,185,13,136,86,185,165,50,86,185,39,221,
85,185,149,135,85,185,237,49,85,185,48,220,84,185,94,134,84,185,119,48,84,185,123,218,83,185,106,132,83,185,67,46,83,185,8,216,82,185,184,129,82,185,83,43,82,185,218,212,81,185,75,126,81,185,168,39,81,185,240,208,80,185,35,122,80,185,66,35,80,185,76,204,79,185,66,117,79,185,35,30,79,185,239,198,78,185,167,111,78,185,75,24,78,185,218,192,77,185,85,105,77,185,188,17,77,185,14,186,76,185,77,98,76,185,119,10,76,185,140,178,75,185,142,90,75,185,124,2,75,185,85,170,74,185,27,82,74,185,205,249,73,185,106,
161,73,185,244,72,73,185,106,240,72,185,205,151,72,185,27,63,72,185,86,230,71,185,125,141,71,185,144,52,71,185,144,219,70,185,124,130,70,185,85,41,70,185,26,208,69,185,204,118,69,185,106,29,69,185,245,195,68,185,108,106,68,185,209,16,68,185,34,183,67,185,95,93,67,185,138,3,67,185,161,169,66,185,166,79,66,185,151,245,65,185,117,155,65,185,64,65,65,185,249,230,64,185,158,140,64,185,48,50,64,185,176,215,63,185,29,125,63,185,119,34,63,185,190,199,62,185,243,108,62,185,21,18,62,185,36,183,61,185,33,92,
61,185,11,1,61,185,227,165,60,185,169,74,60,185,92,239,59,185,252,147,59,185,138,56,59,185,6,221,58,185,112,129,58,185,200,37,58,185,13,202,57,185,64,110,57,185,97,18,57,185,112,182,56,185,109,90,56,185,88,254,55,185,49,162,55,185,249,69,55,185,174,233,54,185,82,141,54,185,227,48,54,185,99,212,53,185,210,119,53,185,46,27,53,185,121,190,52,185,179,97,52,185,219,4,52,185,241,167,51,185,246,74,51,185,234,237,50,185,204,144,50,185,157,51,50,185,92,214,49,185,11,121,49,185,168,27,49,185,52,190,48,185,
174,96,48,185,24,3,48,185,113,165,47,185,184,71,47,185,239,233,46,185,21,140,46,185,41,46,46,185,45,208,45,185,32,114,45,185,3,20,45,185,212,181,44,185,149,87,44,185,69,249,43,185,229,154,43,185,116,60,43,185,242,221,42,185,96,127,42,185,190,32,42,185,11,194,41,185,72,99,41,185,116,4,41,185,144,165,40,185,156,70,40,185,152,231,39,185,131,136,39,185,95,41,39,185,42,202,38,185,229,106,38,185,145,11,38,185,44,172,37,185,183,76,37,185,51,237,36,185,158,141,36,185,250,45,36,185,70,206,35,185,130,110,35,
185,175,14,35,185,204,174,34,185,218,78,34,185,215,238,33,185,198,142,33,185,165,46,33,185,116,206,32,185,52,110,32,185,229,13,32,185,134,173,31,185,24,77,31,185,155,236,30,185,15,140,30,185,115,43,30,185,201,202,29,185,15,106,29,185,71,9,29,185,111,168,28,185,137,71,28,185,147,230,27,185,143,133,27,185,124,36,27,185,90,195,26,185,41,98,26,185,234,0,26,185,156,159,25,185,63,62,25,185,212,220,24,185,91,123,24,185,210,25,24,185,60,184,23,185,151,86,23,185,228,244,22,185,34,147,22,185,82,49,22,185,116,
207,21,185,136,109,21,185,141,11,21,185,132,169,20,185,110,71,20,185,73,229,19,185,22,131,19,185,214,32,19,185,135,190,18,185,43,92,18,185,193,249,17,185,73,151,17,185,195,52,17,185,48,210,16,185,143,111,16,185,224,12,16,185,36,170,15,185,90,71,15,185,131,228,14,185,158,129,14,185,172,30,14,185,173,187,13,185,160,88,13,185,134,245,12,185,95,146,12,185,43,47,12,185,233,203,11,185,155,104,11,185,63,5,11,185,215,161,10,185,97,62,10,185,222,218,9,185,79,119,9,185,179,19,9,185,10,176,8,185,84,76,8,185,
145,232,7,185,194,132,7,185,230,32,7,185,254,188,6,185,9,89,6,185,7,245,5,185,249,144,5,185,223,44,5,185,184,200,4,185,133,100,4,185,69,0,4,185,250,155,3,185,162,55,3,185,62,211,2,185,206,110,2,185,81,10,2,185,201,165,1,185,53,65,1,185,149,220,0,185,232,119,0,185,48,19,0,185,217,92,255,184,58,147,254,184,131,201,253,184,181,255,252,184,208,53,252,184,211,107,251,184,191,161,250,184,149,215,249,184,83,13,249,184,250,66,248,184,139,120,247,184,5,174,246,184,104,227,245,184,181,24,245,184,235,77,244,
184,11,131,243,184,20,184,242,184,8,237,241,184,229,33,241,184,173,86,240,184,94,139,239,184,250,191,238,184,127,244,237,184,239,40,237,184,74,93,236,184,143,145,235,184,191,197,234,184,217,249,233,184,222,45,233,184,206,97,232,184,169,149,231,184,111,201,230,184,32,253,229,184,188,48,229,184,67,100,228,184,182,151,227,184,20,203,226,184,94,254,225,184,147,49,225,184,180,100,224,184,193,151,223,184,186,202,222,184,159,253,221,184,112,48,221,184,45,99,220,184,214,149,219,184,107,200,218,184,237,250,
217,184,92,45,217,184,183,95,216,184,254,145,215,184,51,196,214,184,84,246,213,184,98,40,213,184,93,90,212,184,70,140,211,184,27,190,210,184,222,239,209,184,142,33,209,184,43,83,208,184,182,132,207,184,47,182,206,184,150,231,205,184,234,24,205,184,44,74,204,184,92,123,203,184,122,172,202,184,134,221,201,184,129,14,201,184,106,63,200,184,65,112,199,184,7,161,198,184,187,209,197,184,94,2,197,184,240,50,196,184,112,99,195,184,224,147,194,184,63,196,193,184,140,244,192,184,201,36,192,184,245,84,191,184,
17,133,190,184,28,181,189,184,22,229,188,184,0,21,188,184,218,68,187,184,164,116,186,184,94,164,185,184,7,212,184,184,161,3,184,184,43,51,183,184,165,98,182,184,15,146,181,184,106,193,180,184,181,240,179,184,241,31,179,184,30,79,178,184,59,126,177,184,74,173,176,184,73,220,175,184,57,11,175,184,27,58,174,184,237,104,173,184,177,151,172,184,103,198,171,184,13,245,170,184,166,35,170,184,48,82,169,184,172,128,168,184,25,175,167,184,121,221,166,184,202,11,166,184,14,58,165,184,68,104,164,184,108,150,
163,184,134,196,162,184,147,242,161,184,147,32,161,184,133,78,160,184,106,124,159,184,65,170,158,184,12,216,157,184,201,5,157,184,122,51,156,184,30,97,155,184,181,142,154,184,63,188,153,184,189,233,152,184,46,23,152,184,147,68,151,184,235,113,150,184,56,159,149,184,120,204,148,184,172,249,147,184,212,38,147,184,240,83,146,184,1,129,145,184,6,174,144,184,255,218,143,184,237,7,143,184,207,52,142,184,166,97,141,184,114,142,140,184,50,187,139,184,232,231,138,184,147,20,138,184,50,65,137,184,199,109,136,
184,81,154,135,184,209,198,134,184,70,243,133,184,176,31,133,184,16,76,132,184,102,120,131,184,178,164,130,184,243,208,129,184,43,253,128,184,89,41,128,184,249,170,126,184,45,3,125,184,78,91,123,184,92,179,121,184,87,11,120,184,63,99,118,184,20,187,116,184,216,18,115,184,136,106,113,184,39,194,111,184,180,25,110,184,48,113,108,184,153,200,106,184,242,31,105,184,57,119,103,184,111,206,101,184,149,37,100,184,169,124,98,184,174,211,96,184,162,42,95,184,134,129,93,184,90,216,91,184,30,47,90,184,211,133,
88,184,120,220,86,184,15,51,85,184,150,137,83,184,14,224,81,184,120,54,80,184,211,140,78,184,32,227,76,184,94,57,75,184,143,143,73,184,178,229,71,184,199,59,70,184,207,145,68,184,202,231,66,184,183,61,65,184,152,147,63,184,108,233,61,184,52,63,60,184,239,148,58,184,158,234,56,184,65,64,55,184,216,149,53,184,99,235,51,184,227,64,50,184,88,150,48,184,194,235,46,184,32,65,45,184,116,150,43,184,190,235,41,184,253,64,40,184,49,150,38,184,92,235,36,184,125,64,35,184,148,149,33,184,162,234,31,184,166,63,
30,184,161,148,28,184,148,233,26,184,125,62,25,184,94,147,23,184,54,232,21,184,7,61,20,184,207,145,18,184,143,230,16,184,71,59,15,184,248,143,13,184,162,228,11,184,68,57,10,184,224,141,8,184,116,226,6,184,2,55,5,184,137,139,3,184,11,224,1,184,134,52,0,184,245,17,253,183,212,186,249,183,168,99,246,183,112,12,243,183,46,181,239,183,227,93,236,183,141,6,233,183,46,175,229,183,198,87,226,183,86,0,223,183,221,168,219,183,92,81,216,183,211,249,212,183,68,162,209,183,173,74,206,183,16,243,202,183,109,155,
199,183,196,67,196,183,21,236,192,183,98,148,189,183,169,60,186,183,236,228,182,183,44,141,179,183,103,53,176,183,159,221,172,183,213,133,169,183,7,46,166,183,56,214,162,183,102,126,159,183,147,38,156,183,191,206,152,183,234,118,149,183,21,31,146,183,63,199,142,183,106,111,139,183,149,23,136,183,193,191,132,183,239,103,129,183,61,32,124,183,159,112,117,183,6,193,110,183,115,17,104,183,230,97,97,183,96,178,90,183,226,2,84,183,107,83,77,183,254,163,70,183,155,244,63,183,66,69,57,183,244,149,50,183,
178,230,43,183,125,55,37,183,85,136,30,183,59,217,23,183,48,42,17,183,52,123,10,183,72,204,3,183,219,58,250,182,73,221,236,182,219,127,223,182,147,34,210,182,115,197,196,182,123,104,183,182,174,11,170,182,12,175,156,182,151,82,143,182,81,246,129,182,118,52,105,182,173,124,78,182,73,197,51,182,77,14,25,182,121,175,252,181,52,67,199,181,208,215,145,181,169,218,56,181,24,15,156,180,92,77,230,51,242,152,7,53,61,102,114,53,192,152,174,53,88,253,227,53,112,176,12,54,170,97,39,54,87,18,66,54,116,194,92,
54,253,113,119,54,121,16,137,54,166,103,150,54,134,190,163,54,23,21,177,54,88,107,190,54,70,193,203,54,225,22,217,54,39,108,230,54,23,193,243,54,216,138,0,55,248,52,7,55,234,222,13,55,175,136,20,55,69,50,27,55,171,219,33,55,226,132,40,55,232,45,47,55,188,214,53,55,94,127,60,55,206,39,67,55,9,208,73,55,17,120,80,55,227,31,87,55,128,199,93,55,231,110,100,55,22,22,107,55,14,189,113,55,205,99,120,55,82,10,127,55,79,216,130,55,88,43,134,55,67,126,137,55,16,209,140,55,190,35,144,55,78,118,147,55,191,200,
150,55,16,27,154,55,66,109,157,55,84,191,160,55,69,17,164,55,21,99,167,55,196,180,170,55,81,6,174,55,189,87,177,55,6,169,180,55,45,250,183,55,49,75,187,55,17,156,190,55,206,236,193,55,103,61,197,55,220,141,200,55,44,222,203,55,87,46,207,55,92,126,210,55,60,206,213,55,245,29,217,55,137,109,220,55,245,188,223,55,58,12,227,55,88,91,230,55,78,170,233,55,28,249,236,55,193,71,240,55,61,150,243,55,145,228,246,55,186,50,250,55,186,128,253,55,72,103,0,56,29,14,2,56,221,180,3,56,135,91,5,56,27,2,7,56,154,168,
8,56,2,79,10,56,83,245,11,56,143,155,13,56,179,65,15,56,193,231,16,56,184,141,18,56,151,51,20,56,95,217,21,56,15,127,23,56,168,36,25,56,41,202,26,56,145,111,28,56,225,20,30,56,25,186,31,56,57,95,33,56,63,4,35,56,44,169,36,56,1,78,38,56,188,242,39,56,93,151,41,56,229,59,43,56,83,224,44,56,167,132,46,56,225,40,48,56,1,205,49,56,6,113,51,56,240,20,53,56,191,184,54,56,116,92,56,56,13,0,58,56,138,163,59,56,237,70,61,56,51,234,62,56,93,141,64,56,108,48,66,56,94,211,67,56,52,118,69,56,237,24,71,56,137,187,
72,56,9,94,74,56,107,0,76,56,176,162,77,56,216,68,79,56,226,230,80,56,206,136,82,56,156,42,84,56,76,204,85,56,222,109,87,56,81,15,89,56,166,176,90,56,219,81,92,56,242,242,93,56,234,147,95,56,194,52,97,56,122,213,98,56,19,118,100,56,141,22,102,56,230,182,103,56,31,87,105,56,55,247,106,56,47,151,108,56,6,55,110,56,189,214,111,56,82,118,113,56,198,21,115,56,25,181,116,56,74,84,118,56,89,243,119,56,71,146,121,56,18,49,123,56,187,207,124,56,66,110,126,56,83,6,128,56,116,213,128,56,131,164,129,56,129,115,
130,56,109,66,131,56,71,17,132,56,16,224,132,56,198,174,133,56,107,125,134,56,253,75,135,56,126,26,136,56,236,232,136,56,72,183,137,56,146,133,138,56,201,83,139,56,237,33,140,56,255,239,140,56,254,189,141,56,234,139,142,56,196,89,143,56,138,39,144,56,61,245,144,56,221,194,145,56,106,144,146,56,228,93,147,56,74,43,148,56,157,248,148,56,220,197,149,56,7,147,150,56,31,96,151,56,35,45,152,56,19,250,152,56,239,198,153,56,183,147,154,56,106,96,155,56,10,45,156,56,149,249,156,56,12,198,157,56,110,146,158,
56,187,94,159,56,244,42,160,56,25,247,160,56],"i8",4,y.a+839680);
Q([40,195,161,56,34,143,162,56,8,91,163,56,216,38,164,56,147,242,164,56,57,190,165,56,202,137,166,56,69,85,167,56,171,32,168,56,251,235,168,56,54,183,169,56,90,130,170,56,105,77,171,56,98,24,172,56,69,227,172,56,18,174,173,56,201,120,174,56,105,67,175,56,243,13,176,56,103,216,176,56,196,162,177,56,11,109,178,56,59,55,179,56,84,1,180,56,87,203,180,56,66,149,181,56,23,95,182,56,212,40,183,56,122,242,183,56,10,188,184,56,129,133,185,56,226,78,186,56,43,24,187,56,92,225,187,56,117,170,188,56,119,115,
189,56,98,60,190,56,52,5,191,56,238,205,191,56,144,150,192,56,26,95,193,56,140,39,194,56,230,239,194,56,39,184,195,56,79,128,196,56,96,72,197,56,87,16,198,56,54,216,198,56,252,159,199,56,169,103,200,56,61,47,201,56,184,246,201,56,26,190,202,56,99,133,203,56,147,76,204,56,169,19,205,56,166,218,205,56,137,161,206,56,83,104,207,56,3,47,208,56,153,245,208,56,21,188,209,56,119,130,210,56,192,72,211,56,238,14,212,56,2,213,212,56,252,154,213,56,220,96,214,56,161,38,215,56,76,236,215,56,220,177,216,56,81,
119,217,56,172,60,218,56,236,1,219,56,17,199,219,56,27,140,220,56,10,81,221,56,222,21,222,56,150,218,222,56,52,159,223,56,182,99,224,56,28,40,225,56,103,236,225,56,150,176,226,56,170,116,227,56,162,56,228,56,126,252,228,56,62,192,229,56,226,131,230,56,106,71,231,56,214,10,232,56,38,206,232,56,89,145,233,56,112,84,234,56,107,23,235,56,72,218,235,56,10,157,236,56,174,95,237,56,54,34,238,56,161,228,238,56,238,166,239,56,31,105,240,56,51,43,241,56,41,237,241,56,3,175,242,56,190,112,243,56,93,50,244,56,
222,243,244,56,65,181,245,56,135,118,246,56,175,55,247,56,185,248,247,56,165,185,248,56,115,122,249,56,35,59,250,56,181,251,250,56,41,188,251,56,127,124,252,56,182,60,253,56,207,252,253,56,201,188,254,56,164,124,255,56,49,30,0,57,0,126,0,57,191,221,0,57,112,61,1,57,16,157,1,57,161,252,1,57,35,92,2,57,149,187,2,57,247,26,3,57,74,122,3,57,141,217,3,57,192,56,4,57,227,151,4,57,247,246,4,57,251,85,5,57,238,180,5,57,210,19,6,57,166,114,6,57,105,209,6,57,29,48,7,57,193,142,7,57,84,237,7,57,215,75,8,57,
74,170,8,57,173,8,9,57,255,102,9,57,65,197,9,57,115,35,10,57,148,129,10,57,165,223,10,57,166,61,11,57,149,155,11,57,117,249,11,57,67,87,12,57,1,181,12,57,174,18,13,57,75,112,13,57,215,205,13,57,82,43,14,57,188,136,14,57,21,230,14,57,94,67,15,57,149,160,15,57,188,253,15,57,209,90,16,57,214,183,16,57,201,20,17,57,171,113,17,57,124,206,17,57,60,43,18,57,235,135,18,57,136,228,18,57,20,65,19,57,142,157,19,57,248,249,19,57,79,86,20,57,150,178,20,57,202,14,21,57,238,106,21,57,255,198,21,57,255,34,22,57,
238,126,22,57,203,218,22,57,150,54,23,57,79,146,23,57,246,237,23,57,140,73,24,57,15,165,24,57,129,0,25,57,225,91,25,57,47,183,25,57,107,18,26,57,149,109,26,57,172,200,26,57,178,35,27,57,165,126,27,57,134,217,27,57,85,52,28,57,18,143,28,57,188,233,28,57,84,68,29,57,218,158,29,57,77,249,29,57,174,83,30,57,252,173,30,57,55,8,31,57,97,98,31,57,119,188,31,57,123,22,32,57,108,112,32,57,74,202,32,57,22,36,33,57,207,125,33,57,117,215,33,57,8,49,34,57,137,138,34,57,246,227,34,57,81,61,35,57,152,150,35,57,
204,239,35,57,238,72,36,57,252,161,36,57,247,250,36,57,223,83,37,57,180,172,37,57,117,5,38,57,35,94,38,57,190,182,38,57,69,15,39,57,186,103,39,57,26,192,39,57,103,24,40,57,161,112,40,57,199,200,40,57,218,32,41,57,217,120,41,57,196,208,41,57,156,40,42,57,95,128,42,57,16,216,42,57,172,47,43,57,53,135,43,57,169,222,43,57,10,54,44,57,87,141,44,57,144,228,44,57,181,59,45,57,198,146,45,57,195,233,45,57,172,64,46,57,128,151,46,57,65,238,46,57,237,68,47,57,133,155,47,57,9,242,47,57,120,72,48,57,211,158,48,
57,26,245,48,57,77,75,49,57,106,161,49,57,116,247,49,57,105,77,50,57,73,163,50,57,21,249,50,57,204,78,51,57,111,164,51,57,253,249,51,57,118,79,52,57,218,164,52,57,42,250,52,57,100,79,53,57,138,164,53,57,155,249,53,57,152,78,54,57,127,163,54,57,81,248,54,57,14,77,55,57,182,161,55,57,73,246,55,57,199,74,56,57,48,159,56,57,131,243,56,57,194,71,57,57,235,155,57,57,254,239,57,57,253,67,58,57,230,151,58,57,186,235,58,57,120,63,59,57,33,147,59,57,180,230,59,57,50,58,60,57,154,141,60,57,237,224,60,57,42,
52,61,57,81,135,61,57,99,218,61,57,95,45,62,57,69,128,62,57,21,211,62,57,208,37,63,57,117,120,63,57,3,203,63,57,124,29,64,57,223,111,64,57,44,194,64,57,99,20,65,57,132,102,65,57,143,184,65,57,132,10,66,57,98,92,66,57,43,174,66,57,221,255,66,57,121,81,67,57,254,162,67,57,110,244,67,57,199,69,68,57,9,151,68,57,53,232,68,57,75,57,69,57,74,138,69,57,51,219,69,57,5,44,70,57,193,124,70,57,102,205,70,57,245,29,71,57,108,110,71,57,205,190,71,57,24,15,72,57,75,95,72,57,104,175,72,57,110,255,72,57,93,79,73,
57,53,159,73,57,247,238,73,57,161,62,74,57,53,142,74,57,177,221,74,57,22,45,75,57,100,124,75,57,156,203,75,57,188,26,76,57,196,105,76,57,182,184,76,57,144,7,77,57,83,86,77,57,255,164,77,57,148,243,77,57,17,66,78,57,119,144,78,57,197,222,78,57,252,44,79,57,27,123,79,57,35,201,79,57,20,23,80,57,236,100,80,57,174,178,80,57,87,0,81,57,233,77,81,57,99,155,81,57,198,232,81,57,16,54,82,57,67,131,82,57,94,208,82,57,98,29,83,57,77,106,83,57,32,183,83,57,220,3,84,57,127,80,84,57,11,157,84,57,127,233,84,57,
218,53,85,57,29,130,85,57,73,206,85,57,92,26,86,57,87,102,86,57,57,178,86,57,4,254,86,57,182,73,87,57,80,149,87,57,209,224,87,57,59,44,88,57,139,119,88,57,196,194,88,57,228,13,89,57,235,88,89,57,218,163,89,57,177,238,89,57,111,57,90,57,20,132,90,57,160,206,90,57,20,25,91,57,112,99,91,57,178,173,91,57,220,247,91,57,237,65,92,57,230,139,92,57,197,213,92,57,140,31,93,57,57,105,93,57,206,178,93,57,74,252,93,57,173,69,94,57,247,142,94,57,40,216,94,57,64,33,95,57,62,106,95,57,36,179,95,57,240,251,95,57,
164,68,96,57,62,141,96,57,190,213,96,57,38,30,97,57,116,102,97,57,169,174,97,57,197,246,97,57,199,62,98,57,176,134,98,57,128,206,98,57,54,22,99,57,210,93,99,57,85,165,99,57,190,236,99,57,14,52,100,57,69,123,100,57,97,194,100,57,100,9,101,57,78,80,101,57,29,151,101,57,211,221,101,57,111,36,102,57,242,106,102,57,90,177,102,57,169,247,102,57,222,61,103,57,248,131,103,57,249,201,103,57,224,15,104,57,174,85,104,57,97,155,104,57,250,224,104,57,120,38,105,57,221,107,105,57,40,177,105,57,89,246,105,57,111,
59,106,57,107,128,106,57,77,197,106,57,21,10,107,57,194,78,107,57,86,147,107,57,206,215,107,57,45,28,108,57,113,96,108,57,155,164,108,57,170,232,108,57,159,44,109,57,121,112,109,57,57,180,109,57,222,247,109,57,105,59,110,57,217,126,110,57,46,194,110,57,105,5,111,57,137,72,111,57,142,139,111,57,121,206,111,57,73,17,112,57,254,83,112,57,152,150,112,57,24,217,112,57,125,27,113,57,198,93,113,57,245,159,113,57,9,226,113,57,2,36,114,57,224,101,114,57,163,167,114,57,75,233,114,57,216,42,115,57,74,108,115,
57,161,173,115,57,220,238,115,57,253,47,116,57,2,113,116,57,236,177,116,57,187,242,116,57,110,51,117,57,6,116,117,57,131,180,117,57,229,244,117,57,43,53,118,57,86,117,118,57,101,181,118,57,89,245,118,57,50,53,119,57,239,116,119,57,144,180,119,57,22,244,119,57,129,51,120,57,207,114,120,57,3,178,120,57,26,241,120,57,22,48,121,57,247,110,121,57,187,173,121,57,100,236,121,57,241,42,122,57,98,105,122,57,184,167,122,57,242,229,122,57,15,36,123,57,17,98,123,57,247,159,123,57,194,221,123,57,112,27,124,57,
2,89,124,57,120,150,124,57,210,211,124,57,17,17,125,57,51,78,125,57,57,139,125,57,35,200,125,57,241,4,126,57,162,65,126,57,56,126,126,57,177,186,126,57,14,247,126,57,79,51,127,57,115,111,127,57,124,171,127,57,103,231,127,57,156,17,128,57,117,47,128,57,65,77,128,57,254,106,128,57,173,136,128,57,77,166,128,57,224,195,128,57,100,225,128,57,218,254,128,57,66,28,129,57,156,57,129,57,231,86,129,57,36,116,129,57,82,145,129,57,114,174,129,57,132,203,129,57,136,232,129,57,125,5,130,57,100,34,130,57,60,63,
130,57,6,92,130,57,194,120,130,57,111,149,130,57,14,178,130,57,158,206,130,57,32,235,130,57,147,7,131,57,248,35,131,57,79,64,131,57,151,92,131,57,208,120,131,57,251,148,131,57,24,177,131,57,37,205,131,57,37,233,131,57,22,5,132,57,248,32,132,57,203,60,132,57,145,88,132,57,71,116,132,57,239,143,132,57,136,171,132,57,19,199,132,57,143,226,132,57,252,253,132,57,91,25,133,57,171,52,133,57,236,79,133,57,31,107,133,57,66,134,133,57,88,161,133,57,94,188,133,57,86,215,133,57,63,242,133,57,25,13,134,57,229,
39,134,57,161,66,134,57,79,93,134,57,238,119,134,57,127,146,134,57,0,173,134,57,115,199,134,57,215,225,134,57,44,252,134,57,114,22,135,57,169,48,135,57,210,74,135,57,235,100,135,57,246,126,135,57,242,152,135,57,222,178,135,57,188,204,135,57,139,230,135,57,75,0,136,57,252,25,136,57,159,51,136,57,50,77,136,57,182,102,136,57,43,128,136,57,145,153,136,57,232,178,136,57,49,204,136,57,106,229,136,57,148,254,136,57,175,23,137,57,187,48,137,57,184,73,137,57,166,98,137,57,132,123,137,57,84,148,137,57,21,173,
137,57,198,197,137,57,104,222,137,57,252,246,137,57,128,15,138,57,245,39,138,57,90,64,138,57,177,88,138,57,249,112,138,57,49,137,138,57,90,161,138,57,116,185,138,57,126,209,138,57,122,233,138,57,102,1,139,57,67,25,139,57,17,49,139,57,207,72,139,57,126,96,139,57,30,120,139,57,175,143,139,57,48,167,139,57,162,190,139,57,5,214,139,57,88,237,139,57,156,4,140,57,209,27,140,57,246,50,140,57,13,74,140,57,19,97,140,57,11,120,140,57,243,142,140,57,203,165,140,57,148,188,140,57,78,211,140,57,248,233,140,57,
147,0,141,57,31,23,141,57,155,45,141,57,8,68,141,57,101,90,141,57,178,112,141,57,241,134,141,57,32,157,141,57,63,179,141,57,79,201,141,57,79,223,141,57,64,245,141,57,33,11,142,57,243,32,142,57,181,54,142,57,104,76,142,57,11,98,142,57,158,119,142,57,34,141,142,57,151,162,142,57,252,183,142,57,81,205,142,57,151,226,142,57,205,247,142,57,243,12,143,57,10,34,143,57,17,55,143,57,9,76,143,57,241,96,143,57,201,117,143,57,146,138,143,57,75,159,143,57,244,179,143,57,142,200,143,57,24,221,143,57,146,241,143,
57,252,5,144,57,87,26,144,57,162,46,144,57,222,66,144,57,9,87,144,57,37,107,144,57,50,127,144,57,46,147,144,57,27,167,144,57,248,186,144,57,197,206,144,57,130,226,144,57,48,246,144,57,205,9,145,57,91,29,145,57,217,48,145,57,72,68,145,57,166,87,145,57,245,106,145,57,52,126,145,57,99,145,145,57,130,164,145,57,145,183,145,57,145,202,145,57,128,221,145,57,96,240,145,57,48,3,146,57,240,21,146,57,160,40,146,57,64,59,146,57,208,77,146,57,80,96,146,57,192,114,146,57,33,133,146,57,113,151,146,57,178,169,146,
57,226,187,146,57,3,206,146,57,20,224,146,57,20,242,146,57,5,4,147,57,230,21,147,57,183,39,147,57,119,57,147,57,40,75,147,57,201,92,147,57,89,110,147,57,218,127,147,57,75,145,147,57,171,162,147,57,252,179,147,57,61,197,147,57,109,214,147,57,142,231,147,57,158,248,147,57,158,9,148,57,143,26,148,57,111,43,148,57,63,60,148,57,255,76,148,57,175,93,148,57,78,110,148,57,222,126,148,57,94,143,148,57,205,159,148,57,44,176,148,57,124,192,148,57,187,208,148,57,233,224,148,57,8,241,148,57,23,1,149,57,21,17,
149,57,4,33,149,57,226,48,149,57,176,64,149,57,109,80,149,57,27,96,149,57,184,111,149,57,69,127,149,57,194,142,149,57,47,158,149,57,140,173,149,57,216,188,149,57,20,204,149,57,64,219,149,57,91,234,149,57,103,249,149,57,98,8,150,57,77,23,150,57,39,38,150,57,242,52,150,57,172,67,150,57,86,82,150,57,239,96,150,57,121,111,150,57,242,125,150,57,90,140,150,57,179,154,150,57,251,168,150,57,51,183,150,57,90,197,150,57,113,211,150,57,120,225,150,57,111,239,150,57,85,253,150,57,43,11,151,57,240,24,151,57,165,
38,151,57,74,52,151,57,223,65,151,57,99,79,151,57,215,92,151,57,58,106,151,57,141,119,151,57,208,132,151,57,2,146,151,57,36,159,151,57,54,172,151,57,55,185,151,57,39,198,151,57,8,211,151,57,216,223,151,57,151,236,151,57,70,249,151,57,229,5,152,57,115,18,152,57,241,30,152,57,95,43,152,57,188,55,152,57,8,68,152,57,68,80,152,57,112,92,152,57,139,104,152,57,150,116,152,57,144,128,152,57,122,140,152,57,84,152,152,57,29,164,152,57,213,175,152,57,125,187,152,57,21,199,152,57,156,210,152,57,18,222,152,57,
120,233,152,57,206,244,152,57,19,0,153,57,72,11,153,57,108,22,153,57,127,33,153,57,130,44,153,57,117,55,153,57,87,66,153,57,40,77,153,57,233,87,153,57,154,98,153,57,58,109,153,57,201,119,153,57,72,130,153,57,182,140,153,57,20,151,153,57,98,161,153,57,158,171,153,57,202,181,153,57,230,191,153,57,241,201,153,57,235,211,153,57,213,221,153,57,175,231,153,57,119,241,153,57,48,251,153,57,215,4,154,57,110,14,154,57,245,23,154,57,107,33,154,57,208,42,154,57,37,52,154,57,105,61,154,57,156,70,154,57,191,79,
154,57,209,88,154,57,211,97,154,57,196,106,154,57,165,115,154,57,117,124,154,57,52,133,154,57,227,141,154,57,129,150,154,57,14,159,154,57,139,167,154,57,247,175,154,57,83,184,154,57,158,192,154,57,216,200,154,57,2,209,154,57,27,217,154,57,35,225,154,57,27,233,154,57,2,241,154,57,216,248,154,57,158,0,155,57,83,8,155,57,248,15,155,57,140,23,155,57,15,31,155,57,129,38,155,57,227,45,155,57,52,53,155,57,117,60,155,57,165,67,155,57,196,74,155,57,211,81,155,57,209,88,155,57,190,95,155,57,154,102,155,57,
102,109,155,57,33,116,155,57,204,122,155,57,102,129,155,57,239,135,155,57,103,142,155,57,207,148,155,57,38,155,155,57,109,161,155,57,162,167,155,57,199,173,155,57,220,179,155,57,223,185,155,57,210,191,155,57,181,197,155,57,134,203,155,57,71,209,155,57,247,214,155,57,151,220,155,57,38,226,155,57,164,231,155,57,17,237,155,57,110,242,155,57,186,247,155,57,245,252,155,57,31,2,156,57,57,7,156,57,66,12,156,57,59,17,156,57,34,22,156,57,249,26,156,57,192,31,156,57,117,36,156,57,26,41,156,57,174,45,156,57,
50,50,156,57,164,54,156,57,6,59,156,57,88,63,156,57,152,67,156,57,200,71,156,57,231,75,156,57,245,79,156,57,243,83,156,57,224,87,156,57,188,91,156,57,136,95,156,57,67,99,156,57,237,102,156,57,134,106,156,57,15,110,156,57,134,113,156,57,238,116,156,57,68,120,156,57,138,123,156,57,191,126,156,57,227,129,156,57,247,132,156,57,249,135,156,57,235,138,156,57,205,141,156,57,157,144,156,57,93,147,156,57,13,150,156,57,171,152,156,57,57,155,156,57,182,157,156,57,34,160,156,57,126,162,156,57,200,164,156,57,
3,167,156,57,44,169,156,57,69,171,156,57,77,173,156,57,68,175,156,57,42,177,156,57,0,179,156,57,197,180,156,57,121,182,156,57,29,184,156,57,176,185,156,57,50,187,156,57,164,188,156,57,4,190,156,57,84,191,156,57,148,192,156,57,194,193,156,57,224,194,156,57,237,195,156,57,234,196,156,57,213,197,156,57,176,198,156,57,123,199,156,57,52,200,156,57,221,200,156,57,117,201,156,57,253,201,156,57,115,202,156,57,218,202,156,57,47,203,156,57,115,203,156,57,167,203,156,57,203,203,156,57,221,203,156,57,223,203,
156,57,208,203,156,57,177,203,156,57,128,203,156,57,63,203,156,57,238,202,156,57,139,202,156,57,24,202,156,57,149,201,156,57,0,201,156,57,91,200,156,57,165,199,156,57,223,198,156,57,8,198,156,57,32,197,156,57,39,196,156,57,30,195,156,57,4,194,156,57,218,192,156,57,158,191,156,57,83,190,156,57,246,188,156,57,137,187,156,57,11,186,156,57,124,184,156,57,221,182,156,57,45,181,156,57,109,179,156,57,155,177,156,57,186,175,156,57,199,173,156,57,196,171,156,57,176,169,156,57,140,167,156,57,87,165,156,57,
17,163,156,57,186,160,156,57,83,158,156,57,220,155,156,57,84,153,156,57,187,150,156,57,17,148,156,57,87,145,156,57,140,142,156,57,177,139,156,57,197,136,156,57,200,133,156,57,187,130,156,57,157,127,156,57,110,124,156,57,47,121,156,57,224,117,156,57,127,114,156,57,14,111,156,57,141,107,156,57,251,103,156,57,88,100,156,57,165,96,156,57,225,92,156,57,12,89,156,57,39,85,156,57,50,81,156,57,44,77,156,57,21,73,156,57,237,68,156,57,182,64,156,57,109,60,156,57,20,56,156,57,170,51,156,57,48,47,156,57,166,
42,156,57,10,38,156,57,95,33,156,57,162,28,156,57,213,23,156,57,248,18,156,57,10,14,156,57,12,9,156,57,253,3,156,57,221,254,155,57,173,249,155,57,108,244,155,57,27,239,155,57,186,233,155,57,72,228,155,57,197,222,155,57,50,217,155,57,142,211,155,57,218,205,155,57,22,200,155,57,65,194,155,57,91,188,155,57,101,182,155,57,95,176,155,57,72,170,155,57,32,164,155,57,232,157,155,57,160,151,155,57,71,145,155,57,222,138,155,57,100,132,155,57,218,125,155,57,64,119,155,57,149,112,155,57,217,105,155,57,13,99,
155,57,49,92,155,57,68,85,155,57,71,78,155,57,57,71,155,57,27,64,155,57,237,56,155,57,174,49,155,57,95,42,155,57,0,35,155,57,144,27,155,57,15,20,155,57,127,12,155,57,221,4,155,57,44,253,154,57,106,245,154,57,152,237,154,57,181,229,154,57,195,221,154,57,191,213,154,57,172,205,154,57,136,197,154,57,83,189,154,57,15,181,154,57,186,172,154,57,85,164,154,57,223,155,154,57,89,147,154,57,195,138,154,57,29,130,154,57,102,121,154,57,159,112,154,57,199,103,154,57,224,94,154,57,232,85,154,57,224,76,154,57,199,
67,154,57,158,58,154,57,101,49,154,57,28,40,154,57,195,30,154,57,89,21,154,57,223,11,154,57,85,2,154,57,186,248,153,57,16,239,153,57,85,229,153,57,138,219,153,57,174,209,153,57,195,199,153,57,199,189,153,57,187,179,153,57,159,169,153,57,115,159,153,57,55,149,153,57,234,138,153,57,141,128,153,57,32,118,153,57,163,107,153,57,22,97,153,57,121,86,153,57,203,75,153,57,13,65,153,57,64,54,153,57,98,43,153,57,116,32,153,57,118,21,153,57,103,10,153,57,73,255,152,57,27,244,152,57,220,232,152,57,142,221,152,
57,47,210,152,57,192,198,152,57,66,187,152,57,179,175,152,57,20,164,152,57,101,152,152,57,166,140,152,57,215,128,152,57,248,116,152,57,9,105,152,57,10,93,152,57,251,80,152,57,220,68,152,57,173,56,152,57,110,44,152,57,31,32,152,57,192,19,152,57,81,7,152,57,210,250,151,57,67,238,151,57,164,225,151,57,245,212,151,57,54,200,151,57,104,187,151,57,137,174,151,57,155,161,151,57,156,148,151,57,142,135,151,57,111,122,151,57,65,109,151,57,3,96,151,57,181,82,151,57,88,69,151,57,234,55,151,57,108,42,151,57,223,
28,151,57,66,15,151,57,149,1,151,57,216,243,150,57,11,230,150,57,47,216,150,57,66,202,150,57,70,188,150,57,58,174,150,57,31,160,150,57,243,145,150,57,184,131,150,57,109,117,150,57,18,103,150,57,167,88,150,57,45,74,150,57,163,59,150,57,9,45,150,57,96,30,150,57,166,15,150,57,221,0,150,57,5,242,149,57,28,227,149,57,36,212,149,57,29,197,149,57,5,182,149,57,222,166,149,57,167,151,149,57,97,136,149,57,11,121,149,57,165,105,149,57,48,90,149,57,171,74,149,57,22,59,149,57,114,43,149,57,190,27,149,57,251,11,
149,57,40,252,148,57,69,236,148,57,83,220,148,57,82,204,148,57,64,188,148,57,32,172,148,57,239,155,148,57,175,139,148,57,96,123,148,57,1,107,148,57,147,90,148,57,21,74,148,57,135,57,148,57,234,40,148,57,62,24,148,57,130,7,148,57,183,246,147,57,220,229,147,57,242,212,147,57,249,195,147,57,239,178,147,57,215,161,147,57,175,144,147,57,120,127,147,57,49,110,147,57,219,92,147,57,118,75,147,57,1,58,147,57,125,40,147,57,233,22,147,57,70,5,147,57,148,243,146,57,211,225,146,57,2,208,146,57,34,190,146,57,50,
172,146,57,51,154,146,57,37,136,146,57,8,118,146,57,219,99,146,57,160,81,146,57,84,63,146,57,250,44,146,57,145,26,146,57,24,8,146,57,144,245,145,57,248,226,145,57,82,208,145,57,156,189,145,57,216,170,145,57,4,152,145,57,33,133,145,57,46,114,145,57,45,95,145,57,28,76,145,57,253,56,145,57,206,37,145,57,144,18,145,57,67,255,144,57,231,235,144,57,124,216,144,57,1,197,144,57,120,177,144,57,224,157,144,57,56,138,144,57,130,118,144,57,188,98,144,57,232,78,144,57,4,59,144,57,18,39,144,57,16,19,144,57,0,255,
143,57,224,234,143,57,178,214,143,57,117,194,143,57,40,174,143,57,205,153,143,57,99,133,143,57,234,112,143,57,98,92,143,57,203,71,143,57,37,51,143,57,113,30,143,57,173,9,143,57,219,244,142,57,250,223,142,57,10,203,142,57,11,182,142,57,253,160,142,57,225,139,142,57,181,118,142,57,123,97,142,57,51,76,142,57,219,54,142,57,117,33,142,57,0,12,142,57,124,246,141,57,233,224,141,57,72,203,141,57,152,181,141,57,217,159,141,57,12,138,141,57,48,116,141,57,69,94,141,57,76,72,141,57,68,50,141,57,45,28,141,57,
8,6,141,57,212,239,140,57,145,217,140,57,64,195,140,57,225,172,140,57,114,150,140,57,246,127,140,57,106,105,140,57,208,82,140,57,40,60,140,57,113,37,140,57,171,14,140,57,215,247,139,57,245,224,139,57,4,202,139,57,5,179,139,57,247,155,139,57,218,132,139,57,176,109,139,57,118,86,139,57,47,63,139,57,217,39,139,57,116,16,139,57,2,249,138,57,128,225,138,57,241,201,138,57,83,178,138,57,167,154,138,57,236,130,138,57,35,107,138,57,76,83,138,57,103,59,138,57,115,35,138,57,113,11,138,57,97,243,137,57,66,219,
137,57,21,195,137,57,218,170,137,57,145,146,137,57,58,122,137,57,212,97,137,57,96,73,137,57,222,48,137,57,78,24,137,57,176,255,136,57,3,231,136,57,73,206,136,57,128,181,136,57,169,156,136,57,196,131,136,57,209,106,136,57,208,81,136,57,193,56,136,57,164,31,136,57,120,6,136,57,63,237,135,57,248,211,135,57,163,186,135,57,63,161,135,57,206,135,135,57,79,110,135,57,194,84,135,57,38,59,135,57,125,33,135,57,198,7,135,57,2,238,134,57,47,212,134,57,78,186,134,57,95,160,134,57,99,134,134,57,89,108,134,57,65,
82,134,57,27,56,134,57,231,29,134,57,165,3,134,57,86,233,133,57,249,206,133,57,142,180,133,57,21,154,133,57,143,127,133,57,251,100,133,57,89,74,133,57,169,47,133,57,236,20,133,57,33,250,132,57,72,223,132,57,98,196,132,57,110,169,132,57,108,142,132,57,93,115,132,57,64,88,132,57,22,61,132,57,222,33,132,57,152,6,132,57,69,235,131,57,228,207,131,57,118,180,131,57,250,152,131,57,113,125,131,57,218,97,131,57,54,70,131,57,132,42,131,57,197,14,131,57,248,242,130,57,30,215,130,57,54,187,130,57,65,159,130,
57,63,131,130,57,47,103,130,57,18,75,130,57,232,46,130,57,176,18,130,57,107,246,129,57,24,218,129,57,184,189,129,57,75,161,129,57,209,132,129,57,73,104,129,57,180,75,129,57,18,47,129,57,98,18,129,57,166,245,128,57,220,216,128,57,5,188,128,57,33,159,128,57,47,130,128,57,49,101,128,57,37,72,128,57,12,43,128,57,230,13,128,57,102,225,127,57,230,166,127,57,75,108,127,57,151,49,127,57,200,246,126,57,223,187,126,57,220,128,126,57,191,69,126,57,136,10,126,57,55,207,125,57,205,147,125,57,72,88,125,57,169,
28,125,57,241,224,124,57,30,165,124,57,50,105,124,57,44,45,124,57,12,241,123,57,211,180,123,57,128,120,123,57,19,60,123,57,140,255,122,57,236,194,122,57,51,134,122,57,95,73,122,57,114,12,122,57,108,207,121,57,76,146,121,57,19,85,121,57,192,23,121,57,84,218,120,57,206,156,120,57,47,95,120,57,119,33,120,57,166,227,119,57,187,165,119,57,183,103,119,57,153,41,119,57,99,235,118,57,19,173,118,57,171,110,118,57,41,48,118,57,142,241,117,57,218,178,117,57,13,116,117,57,39,53,117,57,40,246,116,57,16,183,116,
57,223,119,116,57,149,56,116,57,51,249,115,57,183,185,115,57,35,122,115,57,118,58,115,57,176,250,114,57,210,186,114,57,219,122,114,57,203,58,114,57,163,250,113,57,98,186,113,57,8,122,113,57,150,57,113,57,11,249,112,57,104,184,112,57,172,119,112,57,216,54,112,57,236,245,111,57,231,180,111,57,202,115,111,57,149,50,111,57,71,241,110,57,225,175,110,57,99,110,110,57,204,44,110,57,30,235,109,57,87,169,109,57,120,103,109,57,129,37,109,57,114,227,108,57,75,161,108,57,12,95,108,57,182,28,108,57,71,218,107,
57,192,151,107,57,33,85,107,57,107,18,107,57,156,207,106,57,182,140,106,57,184,73,106,57,163,6,106,57,117,195,105,57,49,128,105,57,212,60,105,57,96,249,104,57,212,181,104,57,49,114,104,57,118,46,104,57,163,234,103,57,185,166,103,57,184,98,103,57,160,30,103,57,111,218,102,57,40,150,102,57,201,81,102,57,83,13,102,57,198,200,101,57,34,132,101,57,102,63,101,57,147,250,100,57,169,181,100,57,168,112,100,57,144,43,100,57,97,230,99,57,27,161,99,57,190,91,99,57,74,22,99,57,191,208,98,57,29,139,98,57,100,69,
98,57,149,255,97,57,174,185,97,57,177,115,97,57,157,45,97,57,115,231,96,57,50,161,96,57,218,90,96,57,107,20,96,57,230,205,95,57,75,135,95,57,152,64,95,57,208,249,94,57,241,178,94,57,251,107,94,57,239,36,94,57,205,221,93,57,149,150,93,57,70,79,93,57,225,7,93,57,101,192,92,57,212,120,92,57,44,49,92,57,110,233,91,57,154,161,91,57,176,89,91,57,176,17,91,57,154,201,90,57,109,129,90,57,43,57,90,57,211,240,89,57,101,168,89,57,226,95,89,57,72,23,89,57,153,206,88,57,211,133,88,57,249,60,88,57,8,244,87,57,
2,171,87,57,230,97,87,57,180,24,87,57,109,207,86,57,17,134,86,57,159,60,86,57,23,243,85,57,122,169,85,57,200,95,85,57,0,22,85,57,35,204,84,57,48,130,84,57,40,56,84,57,11,238,83,57,217,163,83,57,146,89,83,57,53,15,83,57,195,196,82,57,61,122,82,57,161,47,82,57,240,228,81,57,42,154,81,57,79,79,81,57,95,4,81,57,91,185,80,57,65,110,80,57,19,35,80,57,208,215,79,57,120,140,79,57,11,65,79,57,138,245,78,57,244,169,78,57,74,94,78,57,138,18,78,57,183,198,77,57,206,122,77,57,210,46,77,57,192,226,76,57,155,150,
76,57,97,74,76,57,18,254,75,57,175,177,75,57,56,101,75,57,173,24,75,57,14,204,74,57,90,127,74,57,146,50,74,57,182,229,73,57,198,152,73,57,193,75,73,57,169,254,72,57,125,177,72,57,61,100,72,57,232,22,72,57,128,201,71,57,5,124,71,57,117,46,71,57,209,224,70,57,26,147,70,57,79,69,70,57,112,247,69,57,126,169,69,57,120,91,69,57,94,13,69,57,49,191,68,57,240,112,68,57,156,34,68,57,52,212,67,57,185,133,67,57,43,55,67,57,137,232,66,57,212,153,66,57,11,75,66,57,48,252,65,57,65,173,65,57,63,94,65,57,42,15,65,
57,1,192,64,57,198,112,64,57,119,33,64,57,22,210,63,57,161,130,63,57,26,51,63,57,127,227,62,57,210,147,62,57,18,68,62,57,63,244,61,57,90,164,61,57,97,84,61,57,86,4,61,57,56,180,60,57,8,100,60,57,197,19,60,57,112,195,59,57,7,115,59,57,141,34,59,57,0,210,58,57,96,129,58,57,175,48,58,57,234,223,57,57,20,143,57,57,43,62,57,57,48,237,56,57,35,156,56,57,3,75,56,57,210,249,55,57,142,168,55,57,56,87,55,57,208,5,55,57,86,180,54,57,203,98,54,57,45,17,54,57,125,191,53,57,188,109,53,57,232,27,53,57,3,202,52,
57,12,120,52,57,4,38,52,57,234,211,51,57,190,129,51,57,128,47,51,57,49,221,50,57,208,138,50,57,94,56,50,57,218,229,49,57,69,147,49,57,159,64,49,57,231,237,48,57,30,155,48,57,67,72,48,57,87,245,47,57,90,162,47,57,76,79,47,57,45,252,46,57,252,168,46,57,187,85,46,57,104,2,46,57,5,175,45,57,144,91,45,57,10,8,45,57,116,180,44,57,205,96,44,57,21,13,44,57,76,185,43,57,114,101,43,57,136,17,43,57,141,189,42,57,129,105,42,57,101,21,42,57,56,193,41,57,250,108,41,57,172,24,41,57,78,196,40,57,223,111,40,57,96,
27,40,57,208,198,39,57,48,114,39,57,128,29,39,57,191,200,38,57,239,115,38,57,14,31,38,57,29,202,37,57,28,117,37,57,10,32,37,57,233,202,36,57,184,117,36,57,119,32,36,57,38,203,35,57,197,117,35,57,84,32,35,57,211,202,34,57,67,117,34,57,163,31,34,57,243,201,33,57,51,116,33,57,100,30,33,57,133,200,32,57,151,114,32,57,153,28,32,57,140,198,31,57,111,112,31,57,67,26,31,57,8,196,30,57,189,109,30,57,99,23,30,57,249,192,29,57,129,106,29,57,249,19,29,57,98,189,28,57,188,102,28,57,7,16,28,57,66,185,27,57,111,
98,27,57,141,11,27,57,156,180,26,57,156,93,26,57,141,6,26,57,112,175,25,57,67,88,25,57,8,1,25,57,190,169,24,57,102,82,24,57,255,250,23,57,137,163,23,57,5,76,23,57,114,244,22,57,209,156,22,57,33,69,22,57,99,237,21,57,150,149,21,57,188,61,21,57,210,229,20,57,219,141,20,57,214,53,20,57,194,221,19,57,160,133,19,57,112,45,19,57,50,213,18,57,230,124,18,57,140,36,18,57,36,204,17,57,174,115,17,57,42,27,17,57,153,194,16,57,249,105,16,57,76,17,16,57,145,184,15,57,201,95,15,57,242,6,15,57,15,174,14,57,29,85,
14,57,30,252,13,57,18,163,13,57,248,73,13,57,209,240,12,57,156,151,12,57,90,62,12,57,11,229,11,57,174,139,11,57,68,50,11,57,205,216,10,57,73,127,10,57,184,37,10,57,25,204,9,57,110,114,9,57,181,24,9,57,240,190,8,57,30,101,8,57,63,11,8,57,83,177,7,57,90,87,7,57,84,253,6,57,66,163,6,57,35,73,6,57,247,238,5,57,191,148,5,57,122,58,5,57,41,224,4,57,203,133,4,57,96,43,4,57,234,208,3,57,102,118,3,57,215,27,3,57,59,193,2,57,147,102,2,57,223,11,2,57,30,177,1,57,82,86,1,57,121,251,0,57,148,160,0,57,163,69,0,
57,76,213,255,56,58,31,255,56,17,105,254,56,208,178,253,56,119,252,252,56,6,70,252,56,126,143,251,56,222,216,250,56,39,34,250,56,89,107,249,56,115,180,248,56,119,253,247,56,99,70,247,56,56,143,246,56,247,215,245,56,158,32,245,56,47,105,244,56,169,177,243,56,13,250,242,56,90,66,242,56,144,138,241,56,176,210,240,56,186,26,240,56,174,98,239,56,140,170,238,56,83,242,237,56,5,58,237,56,160,129,236,56,38,201,235,56,150,16,235,56,241,87,234,56,53,159,233,56,101,230,232,56,127,45,232,56,131,116,231,56,115,
187,230,56,77,2,230,56,18,73,229,56,194,143,228,56,93,214,227,56,227,28,227,56,84,99,226,56,177,169,225,56,249,239,224,56,44,54,224,56,75,124,223,56,86,194,222,56,76,8,222,56,46,78,221,56,252,147,220,56,181,217,219,56,91,31,219,56,237,100,218,56,107,170,217,56,213,239,216,56,43,53,216,56,110,122,215,56,158,191,214,56,186,4,214,56,194,73,213,56,183,142,212,56,153,211,211,56,104,24,211,56,36,93,210,56,205,161,209,56,98,230,208,56,230,42,208,56,86,111,207,56,180,179,206,56,255,247,205,56,55,60,205,56,
93,128,204,56,113,196,203,56,115,8,203,56,98,76,202,56,63,144,201,56,11,212,200,56,196,23,200,56,107,91,199,56,1,159,198,56,133,226,197,56,247,37,197,56,88,105,196,56,167,172,195,56,229,239,194,56,18,51,194,56,45,118,193,56,55,185,192,56,48,252,191,56,25,63,191,56,240,129,190,56,182,196,189,56,108,7,189,56,17,74,188,56,165,140,187,56,41,207,186,56,157,17,186,56,0,84,185,56,83,150,184,56,149,216,183,56,200,26,183,56,234,92,182,56,253,158,181,56,0,225,180,56,242,34,180,56,214,100,179,56,169,166,178,
56,109,232,177,56,34,42,177,56,199,107,176,56,93,173,175,56,227,238,174,56,91,48,174,56,195,113,173,56,29,179,172,56,103,244,171,56,163,53,171,56,208,118,170,56,238,183,169,56,254,248,168,56,255,57,168,56,242,122,167,56,214,187,166,56,172,252,165,56,116,61,165,56,46,126,164,56,218,190,163,56,120,255,162,56,8,64,162,56,139,128,161,56,255,192,160,56,102,1,160,56,192,65,159,56,12,130,158,56,74,194,157,56,123,2,157,56,160,66,156,56,183,130,155,56,193,194,154,56,189,2,154,56,174,66,153,56,145,130,152,
56,103,194,151,56,49,2,151,56,239,65,150,56,159,129,149,56,68,193,148,56,220,0,148,56,104,64,147,56,231,127,146,56,91,191,145,56,195,254,144,56,30,62,144,56,110,125,143,56,178,188,142,56,235,251,141,56,24,59,141,56,57,122,140,56,79,185,139,56,89,248,138,56,89,55,138,56,77,118,137,56,54,181,136,56,20,244,135,56,231,50,135,56,175,113,134,56,108,176,133,56,31,239,132,56,199,45,132,56,100,108,131,56,247,170,130,56,128,233,129,56,254,39,129,56,114,102,128,56,185,73,127,56,121,198,125,56,37,67,124,56,189,
191,122,56,65,60,121,56,179,184,119,56,16,53,118,56,91,177,116,56,147,45,115,56,184,169,113,56,202,37,112,56,202,161,110,56,183,29,109,56,147,153,107,56,92,21,106,56,20,145,104,56,185,12,103,56,78,136,101,56,209,3,100,56,67,127,98,56,164,250,96,56,244,117,95,56,51,241,93,56,98,108,92,56,128,231,90,56,142,98,89,56,140,221,87,56,123,88,86,56,89,211,84,56,40,78,83,56,232,200,81,56,153,67,80,56,58,190,78,56,204,56,77,56,80,179,75,56,197,45,74,56,44,168,72,56,133,34,71,56,207,156,69,56,12,23,68,56,59,
145,66,56,92,11,65,56,112,133,63,56,118,255,61,56,112,121,60,56,92,243,58,56,60,109,57,56,15,231,55,56,214,96,54,56,144,218,52,56,63,84,51,56,225,205,49,56,120,71,48,56,2,193,46,56,130,58,45,56,246,179,43,56,95,45,42,56,189,166,40,56,16,32,39,56,89,153,37,56,151,18,36,56,203,139,34,56,244,4,33,56,20,126,31,56,42,247,29,56,54,112,28,56,57,233,26,56,50,98,25,56,34,219,23,56,9,84,22,56,231,204,20,56,189,69,19,56,138,190,17,56,78,55,16,56,11,176,14,56,191,40,13,56,108,161,11,56,17,26,10,56,174,146,8,
56,68,11,7,56,211,131,5,56,90,252,3,56,219,116,2,56,85,237,0,56,145,203,254,55,107,188,251,55,57,173,248,55,250,157,245,55,176,142,242,55,90,127,239,55,249,111,236,55,141,96,233,55,23,81,230,55,150,65,227,55,12,50,224,55,120,34,221,55,219,18,218,55,53,3,215,55,134,243,211,55,208,227,208,55,17,212,205,55,75,196,202,55,125,180,199,55,169,164,196,55,206,148,193,55,236,132,190,55,5,117,187,55,24,101,184,55,38,85,181,55,47,69,178,55,51,53,175,55,51,37,172,55,47,21,169,55,40,5,166,55,29,245,162,55,15,229,
159,55,254,212,156,55,235,196,153,55,214,180,150,55,191,164,147,55,167,148,144,55,142,132,141,55,116,116,138,55,90,100,135,55,64,84,132,55,38,68,129,55,25,104,124,55,231,71,118,55,185,39,112,55,141,7,106,55,102,231,99,55,67,199,93,55,36,167,87,55,12,135,81,55,250,102,75,55,239,70,69,55,236,38,63,55,241,6,57,55,255,230,50,55,23,199,44,55,57,167,38,55,102,135,32,55,159,103,26,55,228,71,20,55,53,40,14,55,149,8,8,55,3,233,1,55,254,146,247,54,22,84,235,54,78,21,223,54,168,214,210,54,37,152,198,54,199,
89,186,54,141,27,174,54,123,221,161,54,145,159,149,54,208,97,137,54,116,72,122,54,160,205,97,54,39,83,73,54,11,217,48,54,79,95,24,54,234,203,255,53,2,218,206,53,232,232,157,53,71,241,89,53,227,36,240,52,208,170,177,51,234,75,151,180,114,127,45,181,136,171,135,181,100,150,184,181,71,128,233,181,150,52,13,182,134,168,37,182,243,27,62,182,216,142,86,182,52,1,111,182,130,185,131,182,34,242,143,182,122,42,156,182,136,98,168,182,75,154,180,182,194,209,192,182,234,8,205,182,195,63,217,182,76,118,229,182,
132,172,241,182,104,226,253,182,252,11,5,183,153,38,11,183,11,65,17,183,81,91,23,183,105,117,29,183,85,143,35,183,19,169,41,183,161,194,47,183,1,220,53,183,48,245,59,183,47,14,66,183,253,38,72,183,153,63,78,183,2,88,84,183,56,112,90,183,58,136,96,183,8,160,102,183,161,183,108,183,3,207,114,183,48,230,120,183,37,253,126,183,241,137,130,183,52,149,133,183,90,160,136,183,99,171,139,183,79,182,142,183,30,193,145,183,207,203,148,183,98,214,151,183,214,224,154,183,44,235,157,183,98,245,160,183,121,255,
163,183,113,9,167,183,72,19,170,183,255,28,173,183,149,38,176,183,11,48,179,183,95,57,182,183,145,66,185,183,161,75,188,183,143,84,191,183,91,93,194,183,3,102,197,183,137,110,200,183,234,118,203,183,40,127,206,183,66,135,209,183,55,143,212,183,7,151,215,183,178,158,218,183,56,166,221,183,151,173,224,183,209,180,227,183,228,187,230,183,208,194,233,183,150,201,236,183,51,208,239,183,170,214,242,183,248,220,245,183,29,227,248,183,26,233,251,183,238,238,254,183,77,250,0,184,13,125,2,184,185,255,3,184,
79,130,5,184,208,4,7,184,60,135,8,184,146,9,10,184,210,139,11,184,252,13,13,184,16,144,14,184,14,18,16,184,246,147,17,184,199,21,19,184,129,151,20,184,36,25,22,184,176,154,23,184,38,28,25,184,131,157,26,184,201,30,28,184,248,159,29,184,14,33,31,184,13,162,32,184,243,34,34,184,194,163,35,184,119,36,37,184,20,165,38,184,152,37,40,184,4,166,41,184,86,38,43,184,143,166,44,184,174,38,46,184,180,166,47,184,160,38,49,184,114,166,50,184,43,38,52,184,201,165,53,184,76,37,55,184,181,164,56,184,3,36,58,184,
55,163,59,184,79,34,61,184,77,161,62,184,47,32,64,184,245,158,65,184,160,29,67,184,47,156,68,184,162,26,70,184,249,152,71,184,52,23,73,184,83,149,74,184,84,19,76,184,57,145,77,184,1,15,79,184,173,140,80,184,58,10,82,184,171,135,83,184,254,4,85,184,51,130,86,184,75,255,87,184,68,124,89,184,32,249,90,184,221,117,92,184,123,242,93,184,251,110,95,184,93,235,96,184,159,103,98,184,194,227,99,184,198,95,101,184,171,219,102,184,112,87,104,184,21,211,105,184,154,78,107,184,0,202,108,184,69,69,110,184,106,
192,111,184,111,59,113,184,82,182,114,184,21,49,116,184,184,171,117,184,57,38,119,184,152,160,120,184,215,26,122,184,243,148,123,184,238,14,125,184,199,136,126,184,63,1,128,184,10,190,128,184,195,122,129,184,107,55,130,184,2,244,130,184,135,176,131,184,251,108,132,184,93,41,133,184,174,229,133,184,237,161,134,184,26,94,135,184,53,26,136,184,62,214,136,184,54,146,137,184,27,78,138,184,238,9,139,184,175,197,139,184,93,129,140,184,249,60,141,184,131,248,141,184,250,179,142,184,94,111,143,184,176,42,
144,184,239,229,144,184,27,161,145,184,52,92,146,184,58,23,147,184,45,210,147,184,12,141,148,184,217,71,149,184,146,2,150,184,56,189,150,184,202,119,151,184,73,50,152,184,180,236,152,184,12,167,153,184,79,97,154,184,127,27,155,184,155,213,155,184,163,143,156,184,151,73,157,184,118,3,158,184,66,189,158,184,249,118,159,184,155,48,160,184,42,234,160,184,163,163,161,184,8,93,162,184,89,22,163,184,148,207,163,184,187,136,164,184,205,65,165,184,202,250,165,184,178,179,166,184,132,108,167,184,66,37,168,
184,234,221,168,184,125,150,169,184,250,78,170,184,98,7,171,184,180,191,171,184,240,119,172,184,23,48,173,184,40,232,173,184,35,160,174,184,8,88,175,184,215,15,176,184,144,199,176,184,51,127,177,184,191,54,178,184,53,238,178,184,149,165,179,184,222,92,180,184,17,20,181,184,45,203,181,184,50,130,182,184,33,57,183,184,248,239,183,184,185,166,184,184,98,93,185,184,245,19,186,184,112,202,186,184,212,128,187,184,33,55,188,184,87,237,188,184,117,163,189,184,123,89,190,184,106,15,191,184,65,197,191,184,
0,123,192,184,168,48,193,184,56,230,193,184,175,155,194,184,15,81,195,184,86,6,196,184,134,187,196,184,157,112,197,184,155,37,198,184,130,218,198,184,79,143,199,184,4,68,200,184,161,248,200,184,37,173,201,184,144,97,202,184,226,21,203,184,27,202,203,184,59,126,204,184,66,50,205,184,48,230,205,184,5,154,206,184,193,77,207,184,99,1,208,184,235,180,208,184,90,104,209,184,176,27,210,184,236,206,210,184,14,130,211,184,22,53,212,184,4,232,212,184,217,154,213,184,147,77,214,184,52,0,215,184],"i8",4,y.a+
849920);
Q([186,178,215,184,38,101,216,184,119,23,217,184,174,201,217,184,203,123,218,184,205,45,219,184,181,223,219,184,130,145,220,184,52,67,221,184,203,244,221,184,72,166,222,184,169,87,223,184,239,8,224,184,27,186,224,184,43,107,225,184,32,28,226,184,249,204,226,184,183,125,227,184,90,46,228,184,225,222,228,184,77,143,229,184,156,63,230,184,209,239,230,184,233,159,231,184,229,79,232,184,197,255,232,184,138,175,233,184,50,95,234,184,190,14,235,184,46,190,235,184,129,109,236,184,184,28,237,184,211,203,237,
184,209,122,238,184,178,41,239,184,119,216,239,184,31,135,240,184,170,53,241,184,25,228,241,184,106,146,242,184,158,64,243,184,181,238,243,184,175,156,244,184,140,74,245,184,76,248,245,184,238,165,246,184,114,83,247,184,218,0,248,184,35,174,248,184,79,91,249,184,93,8,250,184,77,181,250,184,32,98,251,184,212,14,252,184,107,187,252,184,227,103,253,184,61,20,254,184,121,192,254,184,151,108,255,184,75,12,0,185,60,98,0,185,29,184,0,185,239,13,1,185,177,99,1,185,101,185,1,185,9,15,2,185,157,100,2,185,34,
186,2,185,152,15,3,185,254,100,3,185,84,186,3,185,155,15,4,185,210,100,4,185,249,185,4,185,17,15,5,185,25,100,5,185,18,185,5,185,250,13,6,185,211,98,6,185,156,183,6,185,85,12,7,185,254,96,7,185,151,181,7,185,32,10,8,185,153,94,8,185,2,179,8,185,90,7,9,185,163,91,9,185,219,175,9,185,4,4,10,185,28,88,10,185,35,172,10,185,27,0,11,185,2,84,11,185,217,167,11,185,159,251,11,185,85,79,12,185,250,162,12,185,143,246,12,185,19,74,13,185,135,157,13,185,234,240,13,185,61,68,14,185,126,151,14,185,175,234,14,185,
208,61,15,185,223,144,15,185,222,227,15,185,204,54,16,185,169,137,16,185,117,220,16,185,48,47,17,185,218,129,17,185,115,212,17,185,251,38,18,185,114,121,18,185,216,203,18,185,45,30,19,185,113,112,19,185,163,194,19,185,196,20,20,185,212,102,20,185,210,184,20,185,192,10,21,185,155,92,21,185,102,174,21,185,31,0,22,185,198,81,22,185,92,163,22,185,225,244,22,185,83,70,23,185,181,151,23,185,4,233,23,185,66,58,24,185,110,139,24,185,137,220,24,185,146,45,25,185,137,126,25,185,110,207,25,185,65,32,26,185,
2,113,26,185,178,193,26,185,79,18,27,185,219,98,27,185,84,179,27,185,187,3,28,185,17,84,28,185,84,164,28,185,133,244,28,185,163,68,29,185,176,148,29,185,170,228,29,185,146,52,30,185,104,132,30,185,43,212,30,185,220,35,31,185,123,115,31,185,7,195,31,185,129,18,32,185,232,97,32,185,61,177,32,185,127,0,33,185,174,79,33,185,203,158,33,185,213,237,33,185,204,60,34,185,177,139,34,185,131,218,34,185,66,41,35,185,239,119,35,185,136,198,35,185,15,21,36,185,130,99,36,185,227,177,36,185,49,0,37,185,108,78,37,
185,147,156,37,185,168,234,37,185,170,56,38,185,152,134,38,185,115,212,38,185,59,34,39,185,240,111,39,185,146,189,39,185,32,11,40,185,155,88,40,185,2,166,40,185,87,243,40,185,151,64,41,185,197,141,41,185,223,218,41,185,229,39,42,185,216,116,42,185,183,193,42,185,131,14,43,185,59,91,43,185,223,167,43,185,112,244,43,185,237,64,44,185,86,141,44,185,171,217,44,185,237,37,45,185,27,114,45,185,53,190,45,185,59,10,46,185,45,86,46,185,11,162,46,185,213,237,46,185,139,57,47,185,45,133,47,185,187,208,47,185,
53,28,48,185,155,103,48,185,236,178,48,185,42,254,48,185,83,73,49,185,104,148,49,185,104,223,49,185,84,42,50,185,44,117,50,185,240,191,50,185,159,10,51,185,57,85,51,185,192,159,51,185,49,234,51,185,142,52,52,185,215,126,52,185,11,201,52,185,43,19,53,185,53,93,53,185,43,167,53,185,13,241,53,185,217,58,54,185,145,132,54,185,52,206,54,185,195,23,55,185,60,97,55,185,160,170,55,185,240,243,55,185,43,61,56,185,80,134,56,185,97,207,56,185,93,24,57,185,68,97,57,185,21,170,57,185,210,242,57,185,121,59,58,
185,11,132,58,185,136,204,58,185,240,20,59,185,66,93,59,185,127,165,59,185,167,237,59,185,186,53,60,185,183,125,60,185,159,197,60,185,113,13,61,185,46,85,61,185,213,156,61,185,103,228,61,185,227,43,62,185,74,115,62,185,155,186,62,185,215,1,63,185,253,72,63,185,13,144,63,185,8,215,63,185,236,29,64,185,188,100,64,185,117,171,64,185,24,242,64,185,166,56,65,185,29,127,65,185,127,197,65,185,203,11,66,185,1,82,66,185,33,152,66,185,43,222,66,185,31,36,67,185,253,105,67,185,196,175,67,185,118,245,67,185,
17,59,68,185,151,128,68,185,6,198,68,185,94,11,69,185,161,80,69,185,205,149,69,185,227,218,69,185,227,31,70,185,204,100,70,185,159,169,70,185,91,238,70,185,1,51,71,185,145,119,71,185,10,188,71,185,108,0,72,185,184,68,72,185,238,136,72,185,12,205,72,185,20,17,73,185,6,85,73,185,224,152,73,185,165,220,73,185,82,32,74,185,232,99,74,185,104,167,74,185,209,234,74,185,35,46,75,185,94,113,75,185,130,180,75,185,144,247,75,185,134,58,76,185,101,125,76,185,46,192,76,185,223,2,77,185,121,69,77,185,253,135,77,
185,105,202,77,185,190,12,78,185,251,78,78,185,34,145,78,185,49,211,78,185,42,21,79,185,10,87,79,185,212,152,79,185,134,218,79,185,33,28,80,185,165,93,80,185,17,159,80,185,102,224,80,185,163,33,81,185,201,98,81,185,215,163,81,185,206,228,81,185,173,37,82,185,117,102,82,185,37,167,82,185,189,231,82,185,62,40,83,185,167,104,83,185,249,168,83,185,50,233,83,185,84,41,84,185,95,105,84,185,81,169,84,185,43,233,84,185,238,40,85,185,153,104,85,185,44,168,85,185,167,231,85,185,10,39,86,185,85,102,86,185,136,
165,86,185,163,228,86,185,166,35,87,185,145,98,87,185,100,161,87,185,31,224,87,185,194,30,88,185,76,93,88,185,190,155,88,185,24,218,88,185,90,24,89,185,131,86,89,185,149,148,89,185,142,210,89,185,110,16,90,185,54,78,90,185,230,139,90,185,126,201,90,185,253,6,91,185,99,68,91,185,177,129,91,185,231,190,91,185,4,252,91,185,8,57,92,185,244,117,92,185,199,178,92,185,130,239,92,185,36,44,93,185,173,104,93,185,30,165,93,185,118,225,93,185,181,29,94,185,220,89,94,185,233,149,94,185,222,209,94,185,186,13,
95,185,125,73,95,185,40,133,95,185,185,192,95,185,49,252,95,185,145,55,96,185,215,114,96,185,5,174,96,185,26,233,96,185,21,36,97,185,247,94,97,185,193,153,97,185,113,212,97,185,8,15,98,185,134,73,98,185,235,131,98,185,54,190,98,185,105,248,98,185,130,50,99,185,130,108,99,185,104,166,99,185,53,224,99,185,233,25,100,185,132,83,100,185,5,141,100,185,109,198,100,185,187,255,100,185,240,56,101,185,12,114,101,185,14,171,101,185,246,227,101,185,197,28,102,185,122,85,102,185,22,142,102,185,152,198,102,185,
1,255,102,185,80,55,103,185,133,111,103,185,161,167,103,185,163,223,103,185,139,23,104,185,89,79,104,185,14,135,104,185,169,190,104,185,42,246,104,185,145,45,105,185,223,100,105,185,18,156,105,185,44,211,105,185,43,10,106,185,17,65,106,185,221,119,106,185,143,174,106,185,39,229,106,185,164,27,107,185,8,82,107,185,82,136,107,185,130,190,107,185,151,244,107,185,146,42,108,185,116,96,108,185,59,150,108,185,232,203,108,185,122,1,109,185,243,54,109,185,81,108,109,185,149,161,109,185,191,214,109,185,206,
11,110,185,195,64,110,185,158,117,110,185,94,170,110,185,4,223,110,185,143,19,111,185,1,72,111,185,87,124,111,185,147,176,111,185,181,228,111,185,188,24,112,185,169,76,112,185,123,128,112,185,51,180,112,185,207,231,112,185,82,27,113,185,186,78,113,185,7,130,113,185,57,181,113,185,81,232,113,185,78,27,114,185,48,78,114,185,248,128,114,185,164,179,114,185,54,230,114,185,174,24,115,185,10,75,115,185,76,125,115,185,114,175,115,185,126,225,115,185,111,19,116,185,69,69,116,185,0,119,116,185,160,168,116,
185,37,218,116,185,144,11,117,185,223,60,117,185,19,110,117,185,44,159,117,185,42,208,117,185,13,1,118,185,213,49,118,185,130,98,118,185,19,147,118,185,138,195,118,185,229,243,118,185,37,36,119,185,74,84,119,185,84,132,119,185,66,180,119,185,21,228,119,185,205,19,120,185,106,67,120,185,235,114,120,185,81,162,120,185,155,209,120,185,203,0,121,185,222,47,121,185,215,94,121,185,180,141,121,185,117,188,121,185,27,235,121,185,166,25,122,185,21,72,122,185,105,118,122,185,161,164,122,185,189,210,122,185,
190,0,123,185,164,46,123,185,110,92,123,185,28,138,123,185,174,183,123,185,37,229,123,185,128,18,124,185,192,63,124,185,228,108,124,185,236,153,124,185,216,198,124,185,169,243,124,185,94,32,125,185,247,76,125,185,117,121,125,185,214,165,125,185,28,210,125,185,70,254,125,185,84,42,126,185,70,86,126,185,28,130,126,185,214,173,126,185,117,217,126,185,247,4,127,185,93,48,127,185,168,91,127,185,214,134,127,185,233,177,127,185,223,220,127,185,221,3,128,185,60,25,128,185,141,46,128,185,208,67,128,185,5,
89,128,185,44,110,128,185,69,131,128,185,80,152,128,185,77,173,128,185,60,194,128,185,28,215,128,185,239,235,128,185,179,0,129,185,105,21,129,185,17,42,129,185,171,62,129,185,55,83,129,185,181,103,129,185,36,124,129,185,134,144,129,185,217,164,129,185,30,185,129,185,85,205,129,185,125,225,129,185,152,245,129,185,164,9,130,185,162,29,130,185,146,49,130,185,115,69,130,185,70,89,130,185,11,109,130,185,194,128,130,185,107,148,130,185,5,168,130,185,145,187,130,185,15,207,130,185,126,226,130,185,223,245,
130,185,50,9,131,185,118,28,131,185,173,47,131,185,212,66,131,185,238,85,131,185,249,104,131,185,246,123,131,185,228,142,131,185,197,161,131,185,150,180,131,185,90,199,131,185,15,218,131,185,181,236,131,185,77,255,131,185,215,17,132,185,83,36,132,185,192,54,132,185,30,73,132,185,110,91,132,185,176,109,132,185,227,127,132,185,8,146,132,185,31,164,132,185,38,182,132,185,32,200,132,185,11,218,132,185,231,235,132,185,181,253,132,185,117,15,133,185,38,33,133,185,200,50,133,185,93,68,133,185,226,85,133,
185,89,103,133,185,193,120,133,185,27,138,133,185,103,155,133,185,163,172,133,185,210,189,133,185,241,206,133,185,3,224,133,185,5,241,133,185,249,1,134,185,223,18,134,185,181,35,134,185,126,52,134,185,55,69,134,185,226,85,134,185,127,102,134,185,12,119,134,185,139,135,134,185,252,151,134,185,94,168,134,185,177,184,134,185,246,200,134,185,44,217,134,185,83,233,134,185,108,249,134,185,117,9,135,185,113,25,135,185,93,41,135,185,59,57,135,185,10,73,135,185,203,88,135,185,125,104,135,185,32,120,135,185,
180,135,135,185,58,151,135,185,177,166,135,185,25,182,135,185,114,197,135,185,189,212,135,185,249,227,135,185,38,243,135,185,69,2,136,185,84,17,136,185,85,32,136,185,71,47,136,185,43,62,136,185,255,76,136,185,197,91,136,185,124,106,136,185,36,121,136,185,190,135,136,185,72,150,136,185,196,164,136,185,49,179,136,185,143,193,136,185,222,207,136,185,31,222,136,185,80,236,136,185,115,250,136,185,135,8,137,185,140,22,137,185,130,36,137,185,106,50,137,185,66,64,137,185,12,78,137,185,199,91,137,185,114,
105,137,185,15,119,137,185,157,132,137,185,29,146,137,185,141,159,137,185,238,172,137,185,65,186,137,185,132,199,137,185,185,212,137,185,223,225,137,185,245,238,137,185,253,251,137,185,246,8,138,185,224,21,138,185,187,34,138,185,135,47,138,185,68,60,138,185,243,72,138,185,146,85,138,185,34,98,138,185,163,110,138,185,22,123,138,185,121,135,138,185,205,147,138,185,19,160,138,185,73,172,138,185,113,184,138,185,137,196,138,185,146,208,138,185,141,220,138,185,120,232,138,185,84,244,138,185,34,0,139,185,
224,11,139,185,143,23,139,185,48,35,139,185,193,46,139,185,67,58,139,185,182,69,139,185,26,81,139,185,111,92,139,185,181,103,139,185,236,114,139,185,20,126,139,185,45,137,139,185,55,148,139,185,49,159,139,185,29,170,139,185,250,180,139,185,199,191,139,185,133,202,139,185,53,213,139,185,213,223,139,185,102,234,139,185,232,244,139,185,91,255,139,185,191,9,140,185,20,20,140,185,89,30,140,185,144,40,140,185,183,50,140,185,207,60,140,185,217,70,140,185,211,80,140,185,189,90,140,185,153,100,140,185,102,
110,140,185,35,120,140,185,210,129,140,185,113,139,140,185,1,149,140,185,130,158,140,185,244,167,140,185,86,177,140,185,170,186,140,185,238,195,140,185,35,205,140,185,73,214,140,185,96,223,140,185,103,232,140,185,96,241,140,185,73,250,140,185,35,3,141,185,238,11,141,185,170,20,141,185,86,29,141,185,244,37,141,185,130,46,141,185,1,55,141,185,113,63,141,185,209,71,141,185,35,80,141,185,101,88,141,185,152,96,141,185,188,104,141,185,208,112,141,185,214,120,141,185,204,128,141,185,179,136,141,185,138,
144,141,185,83,152,141,185,12,160,141,185,182,167,141,185,81,175,141,185,220,182,141,185,89,190,141,185,198,197,141,185,36,205,141,185,114,212,141,185,178,219,141,185,226,226,141,185,3,234,141,185,20,241,141,185,23,248,141,185,10,255,141,185,238,5,142,185,194,12,142,185,136,19,142,185,62,26,142,185,229,32,142,185,124,39,142,185,5,46,142,185,126,52,142,185,232,58,142,185,66,65,142,185,142,71,142,185,202,77,142,185,246,83,142,185,20,90,142,185,34,96,142,185,33,102,142,185,17,108,142,185,241,113,142,
185,194,119,142,185,132,125,142,185,55,131,142,185,218,136,142,185,110,142,142,185,242,147,142,185,104,153,142,185,206,158,142,185,37,164,142,185,108,169,142,185,165,174,142,185,206,179,142,185,231,184,142,185,242,189,142,185,237,194,142,185,216,199,142,185,181,204,142,185,130,209,142,185,64,214,142,185,239,218,142,185,142,223,142,185,30,228,142,185,158,232,142,185,16,237,142,185,114,241,142,185,197,245,142,185,8,250,142,185,60,254,142,185,97,2,143,185,119,6,143,185,125,10,143,185,116,14,143,185,
92,18,143,185,52,22,143,185,253,25,143,185,183,29,143,185,97,33,143,185,252,36,143,185,136,40,143,185,4,44,143,185,113,47,143,185,207,50,143,185,30,54,143,185,93,57,143,185,141,60,143,185,173,63,143,185,191,66,143,185,192,69,143,185,179,72,143,185,150,75,143,185,106,78,143,185,47,81,143,185,228,83,143,185,138,86,143,185,33,89,143,185,169,91,143,185,33,94,143,185,138,96,143,185,227,98,143,185,45,101,143,185,104,103,143,185,148,105,143,185,176,107,143,185,189,109,143,185,186,111,143,185,169,113,143,
185,136,115,143,185,87,117,143,185,24,119,143,185,201,120,143,185,106,122,143,185,253,123,143,185,128,125,143,185,244,126,143,185,88,128,143,185,173,129,143,185,243,130,143,185,42,132,143,185,81,133,143,185,105,134,143,185,114,135,143,185,107,136,143,185,85,137,143,185,48,138,143,185,251,138,143,185,183,139,143,185,100,140,143,185,2,141,143,185,144,141,143,185,15,142,143,185,126,142,143,185,223,142,143,185,48,143,143,185,113,143,143,185,164,143,143,185,199,143,143,185,219,143,143,185,223,143,143,
185,213,143,143,185,187,143,143,185,145,143,143,185,89,143,143,185,17,143,143,185,186,142,143,185,83,142,143,185,222,141,143,185,89,141,143,185,196,140,143,185,33,140,143,185,110,139,143,185,172,138,143,185,218,137,143,185,250,136,143,185,10,136,143,185,11,135,143,185,252,133,143,185,222,132,143,185,177,131,143,185,117,130,143,185,42,129,143,185,207,127,143,185,101,126,143,185,236,124,143,185,99,123,143,185,203,121,143,185,36,120,143,185,110,118,143,185,168,116,143,185,211,114,143,185,239,112,143,
185,252,110,143,185,250,108,143,185,232,106,143,185,199,104,143,185,151,102,143,185,87,100,143,185,9,98,143,185,171,95,143,185,61,93,143,185,193,90,143,185,54,88,143,185,155,85,143,185,241,82,143,185,55,80,143,185,111,77,143,185,151,74,143,185,176,71,143,185,186,68,143,185,181,65,143,185,161,62,143,185,125,59,143,185,74,56,143,185,8,53,143,185,183,49,143,185,86,46,143,185,231,42,143,185,104,39,143,185,218,35,143,185,61,32,143,185,144,28,143,185,213,24,143,185,10,21,143,185,48,17,143,185,71,13,143,
185,79,9,143,185,72,5,143,185,49,1,143,185,11,253,142,185,214,248,142,185,146,244,142,185,63,240,142,185,221,235,142,185,108,231,142,185,235,226,142,185,91,222,142,185,189,217,142,185,15,213,142,185,82,208,142,185,133,203,142,185,170,198,142,185,192,193,142,185,198,188,142,185,190,183,142,185,166,178,142,185,127,173,142,185,73,168,142,185,4,163,142,185,176,157,142,185,77,152,142,185,218,146,142,185,89,141,142,185,200,135,142,185,41,130,142,185,122,124,142,185,188,118,142,185,240,112,142,185,20,107,
142,185,41,101,142,185,47,95,142,185,38,89,142,185,14,83,142,185,231,76,142,185,177,70,142,185,107,64,142,185,23,58,142,185,180,51,142,185,66,45,142,185,192,38,142,185,48,32,142,185,145,25,142,185,226,18,142,185,37,12,142,185,89,5,142,185,125,254,141,185,147,247,141,185,154,240,141,185,145,233,141,185,122,226,141,185,84,219,141,185,30,212,141,185,218,204,141,185,135,197,141,185,37,190,141,185,179,182,141,185,51,175,141,185,164,167,141,185,6,160,141,185,89,152,141,185,158,144,141,185,211,136,141,185,
249,128,141,185,16,121,141,185,25,113,141,185,18,105,141,185,253,96,141,185,217,88,141,185,165,80,141,185,99,72,141,185,18,64,141,185,178,55,141,185,67,47,141,185,198,38,141,185,57,30,141,185,158,21,141,185,243,12,141,185,58,4,141,185,114,251,140,185,155,242,140,185,182,233,140,185,193,224,140,185,190,215,140,185,172,206,140,185,139,197,140,185,91,188,140,185,28,179,140,185,206,169,140,185,114,160,140,185,7,151,140,185,141,141,140,185,4,132,140,185,109,122,140,185,199,112,140,185,17,103,140,185,78,
93,140,185,123,83,140,185,154,73,140,185,169,63,140,185,171,53,140,185,157,43,140,185,129,33,140,185,85,23,140,185,28,13,140,185,211,2,140,185,124,248,139,185,22,238,139,185,161,227,139,185,30,217,139,185,139,206,139,185,235,195,139,185,59,185,139,185,125,174,139,185,176,163,139,185,212,152,139,185,234,141,139,185,241,130,139,185,234,119,139,185,212,108,139,185,175,97,139,185,123,86,139,185,57,75,139,185,232,63,139,185,137,52,139,185,27,41,139,185,159,29,139,185,19,18,139,185,122,6,139,185,209,250,
138,185,26,239,138,185,85,227,138,185,129,215,138,185,158,203,138,185,173,191,138,185,173,179,138,185,159,167,138,185,130,155,138,185,86,143,138,185,28,131,138,185,212,118,138,185,125,106,138,185,23,94,138,185,163,81,138,185,33,69,138,185,144,56,138,185,240,43,138,185,66,31,138,185,134,18,138,185,187,5,138,185,225,248,137,185,249,235,137,185,3,223,137,185,254,209,137,185,235,196,137,185,202,183,137,185,154,170,137,185,91,157,137,185,14,144,137,185,179,130,137,185,73,117,137,185,209,103,137,185,75,
90,137,185,182,76,137,185,19,63,137,185,97,49,137,185,161,35,137,185,211,21,137,185,246,7,137,185,11,250,136,185,18,236,136,185,10,222,136,185,244,207,136,185,208,193,136,185,157,179,136,185,93,165,136,185,13,151,136,185,176,136,136,185,68,122,136,185,202,107,136,185,66,93,136,185,172,78,136,185,7,64,136,185,84,49,136,185,147,34,136,185,195,19,136,185,230,4,136,185,250,245,135,185,0,231,135,185,247,215,135,185,225,200,135,185,188,185,135,185,137,170,135,185,72,155,135,185,249,139,135,185,156,124,
135,185,49,109,135,185,183,93,135,185,47,78,135,185,153,62,135,185,245,46,135,185,67,31,135,185,131,15,135,185,181,255,134,185,217,239,134,185,238,223,134,185,246,207,134,185,239,191,134,185,218,175,134,185,184,159,134,185,135,143,134,185,72,127,134,185,252,110,134,185,161,94,134,185,56,78,134,185,193,61,134,185,61,45,134,185,170,28,134,185,9,12,134,185,90,251,133,185,158,234,133,185,211,217,133,185,250,200,133,185,20,184,133,185,32,167,133,185,29,150,133,185,13,133,133,185,239,115,133,185,195,98,
133,185,137,81,133,185,65,64,133,185,235,46,133,185,136,29,133,185,22,12,133,185,151,250,132,185,10,233,132,185,111,215,132,185,198,197,132,185,15,180,132,185,75,162,132,185,121,144,132,185,153,126,132,185,171,108,132,185,176,90,132,185,166,72,132,185,143,54,132,185,106,36,132,185,56,18,132,185,248,255,131,185,170,237,131,185,78,219,131,185,229,200,131,185,109,182,131,185,233,163,131,185,86,145,131,185,182,126,131,185,8,108,131,185,77,89,131,185,132,70,131,185,173,51,131,185,201,32,131,185,215,13,
131,185,215,250,130,185,202,231,130,185,175,212,130,185,135,193,130,185,81,174,130,185,14,155,130,185,188,135,130,185,94,116,130,185,242,96,130,185,120,77,130,185,241,57,130,185,92,38,130,185,186,18,130,185,11,255,129,185,77,235,129,185,131,215,129,185,171,195,129,185,197,175,129,185,210,155,129,185,210,135,129,185,196,115,129,185,169,95,129,185,128,75,129,185,74,55,129,185,7,35,129,185,182,14,129,185,88,250,128,185,236,229,128,185,115,209,128,185,237,188,128,185,89,168,128,185,185,147,128,185,10,
127,128,185,79,106,128,185,134,85,128,185,176,64,128,185,205,43,128,185,220,22,128,185,222,1,128,185,166,217,127,185,117,175,127,185,42,133,127,185,197,90,127,185,69,48,127,185,170,5,127,185,245,218,126,185,38,176,126,185,61,133,126,185,57,90,126,185,27,47,126,185,227,3,126,185,144,216,125,185,35,173,125,185,156,129,125,185,251,85,125,185,63,42,125,185,106,254,124,185,122,210,124,185,112,166,124,185,76,122,124,185,14,78,124,185,182,33,124,185,68,245,123,185,184,200,123,185,18,156,123,185,82,111,123,
185,120,66,123,185,132,21,123,185,118,232,122,185,79,187,122,185,13,142,122,185,178,96,122,185,60,51,122,185,173,5,122,185,4,216,121,185,66,170,121,185,101,124,121,185,111,78,121,185,95,32,121,185,54,242,120,185,243,195,120,185,150,149,120,185,32,103,120,185,144,56,120,185,230,9,120,185,35,219,119,185,70,172,119,185,80,125,119,185,65,78,119,185,23,31,119,185,213,239,118,185,121,192,118,185,3,145,118,185,117,97,118,185,204,49,118,185,11,2,118,185,48,210,117,185,60,162,117,185,47,114,117,185,8,66,117,
185,200,17,117,185,111,225,116,185,253,176,116,185,113,128,116,185,205,79,116,185,15,31,116,185,56,238,115,185,73,189,115,185,64,140,115,185,30,91,115,185,227,41,115,185,143,248,114,185,34,199,114,185,156,149,114,185,253,99,114,185,70,50,114,185,117,0,114,185,140,206,113,185,137,156,113,185,110,106,113,185,59,56,113,185,238,5,113,185,137,211,112,185,11,161,112,185,116,110,112,185,197,59,112,185,252,8,112,185,28,214,111,185,35,163,111,185,17,112,111,185,230,60,111,185,163,9,111,185,72,214,110,185,
212,162,110,185,72,111,110,185,163,59,110,185,229,7,110,185,16,212,109,185,34,160,109,185,27,108,109,185,253,55,109,185,198,3,109,185,118,207,108,185,15,155,108,185,143,102,108,185,247,49,108,185,71,253,107,185,127,200,107,185,158,147,107,185,166,94,107,185,149,41,107,185,108,244,106,185,43,191,106,185,211,137,106,185,98,84,106,185,217,30,106,185,57,233,105,185,128,179,105,185,175,125,105,185,199,71,105,185,199,17,105,185,175,219,104,185,127,165,104,185,55,111,104,185,216,56,104,185,97,2,104,185,
210,203,103,185,44,149,103,185,110,94,103,185,152,39,103,185,170,240,102,185,166,185,102,185,137,130,102,185,85,75,102,185,9,20,102,185,166,220,101,185,44,165,101,185,154,109,101,185,241,53,101,185,48,254,100,185,88,198,100,185,105,142,100,185,98,86,100,185,68,30,100,185,15,230,99,185,194,173,99,185,95,117,99,185,228,60,99,185,82,4,99,185,169,203,98,185,232,146,98,185,17,90,98,185,35,33,98,185,29,232,97,185,1,175,97,185,206,117,97,185,131,60,97,185,34,3,97,185,170,201,96,185,27,144,96,185,117,86,
96,185,184,28,96,185,229,226,95,185,250,168,95,185,249,110,95,185,225,52,95,185,179,250,94,185,110,192,94,185,18,134,94,185,160,75,94,185,23,17,94,185,119,214,93,185,193,155,93,185,244,96,93,185,17,38,93,185,24,235,92,185,7,176,92,185,225,116,92,185,164,57,92,185,81,254,91,185,232,194,91,185,104,135,91,185,210,75,91,185,37,16,91,185,99,212,90,185,138,152,90,185,155,92,90,185,150,32,90,185,123,228,89,185,73,168,89,185,2,108,89,185,165,47,89,185,49,243,88,185,168,182,88,185,8,122,88,185,83,61,88,185,
136,0,88,185,167,195,87,185,176,134,87,185,163,73,87,185,128,12,87,185,72,207,86,185,250,145,86,185,150,84,86,185,29,23,86,185,141,217,85,185,233,155,85,185,46,94,85,185,94,32,85,185,121,226,84,185,125,164,84,185,109,102,84,185,71,40,84,185,11,234,83,185,186,171,83,185,84,109,83,185,216,46,83,185,71,240,82,185,161,177,82,185,229,114,82,185,21,52,82,185,47,245,81,185,51,182,81,185,35,119,81,185,253,55,81,185,195,248,80,185,115,185,80,185,14,122,80,185,148,58,80,185,5,251,79,185,97,187,79,185,169,123,
79,185,219,59,79,185,248,251,78,185,1,188,78,185,244,123,78,185,211,59,78,185,157,251,77,185,83,187,77,185,243,122,77,185,127,58,77,185,247,249,76,185,89,185,76,185,167,120,76,185,225,55,76,185,6,247,75,185,22,182,75,185,18,117,75,185,249,51,75,185,204,242,74,185,139,177,74,185,53,112,74,185,203,46,74,185,77,237,73,185,186,171,73,185,19,106,73,185,88,40,73,185,136,230,72,185,164,164,72,185,173,98,72,185,161,32,72,185,129,222,71,185,77,156,71,185,4,90,71,185,168,23,71,185,56,213,70,185,180,146,70,
185,28,80,70,185,112,13,70,185,177,202,69,185,221,135,69,185,246,68,69,185,251,1,69,185,236,190,68,185,201,123,68,185,147,56,68,185,73,245,67,185,236,177,67,185,123,110,67,185,246,42,67,185,94,231,66,185,178,163,66,185,243,95,66,185,32,28,66,185,58,216,65,185,65,148,65,185,52,80,65,185,20,12,65,185,224,199,64,185,154,131,64,185,64,63,64,185,210,250,63,185,82,182,63,185,191,113,63,185,24,45,63,185,94,232,62,185,145,163,62,185,178,94,62,185,191,25,62,185,185,212,61,185,160,143,61,185,117,74,61,185,
54,5,61,185,229,191,60,185,129,122,60,185,10,53,60,185,128,239,59,185,228,169,59,185,53,100,59,185,115,30,59,185,158,216,58,185,183,146,58,185,190,76,58,185,178,6,58,185,147,192,57,185,98,122,57,185,30,52,57,185,200,237,56,185,96,167,56,185,229,96,56,185,88,26,56,185,184,211,55,185,7,141,55,185,67,70,55,185,108,255,54,185,132,184,54,185,138,113,54,185,125,42,54,185,94,227,53,185,46,156,53,185,235,84,53,185,150,13,53,185,47,198,52,185,183,126,52,185,44,55,52,185,144,239,51,185,226,167,51,185,33,96,
51,185,80,24,51,185,108,208,50,185,119,136,50,185,112,64,50,185,87,248,49,185,45,176,49,185,241,103,49,185,164,31,49,185,69,215,48,185,212,142,48,185,83,70,48,185,191,253,47,185,27,181,47,185,100,108,47,185,157,35,47,185,196,218,46,185,218,145,46,185,223,72,46,185,211,255,45,185,181,182,45,185,134,109,45,185,70,36,45,185,245,218,44,185,147,145,44,185,32,72,44,185,156,254,43,185,7,181,43,185,97,107,43,185,171,33,43,185,227,215,42,185,11,142,42,185,33,68,42,185,39,250,41,185,28,176,41,185,1,102,41,
185,213,27,41,185,152,209,40,185,75,135,40,185,237,60,40,185,126,242,39,185,255,167,39,185,112,93,39,185,208,18,39,185,31,200,38,185,95,125,38,185,141,50,38,185,172,231,37,185,186,156,37,185,185,81,37,185,166,6,37,185,132,187,36,185,82,112,36,185,15,37,36,185,188,217,35,185,90,142,35,185,231,66,35,185,100,247,34,185,209,171,34,185,47,96,34,185,124,20,34,185,186,200,33,185,231,124,33,185,5,49,33,185,20,229,32,185,18,153,32,185,1,77,32,185,224,0,32,185,176,180,31,185,112,104,31,185,32,28,31,185,193,
207,30,185,82,131,30,185,212,54,30,185,70,234,29,185,169,157,29,185,253,80,29,185,65,4,29,185,118,183,28,185,156,106,28,185,178,29,28,185,186,208,27,185,178,131,27,185,155,54,27,185,117,233,26,185,64,156,26,185,251,78,26,185,168,1,26,185,70,180,25,185,213,102,25,185,85,25,25,185,198,203,24,185,40,126,24,185,124,48,24,185,192,226,23,185,246,148,23,185,30,71,23,185,54,249,22,185,64,171,22,185,59,93,22,185,40,15,22,185,6,193,21,185,214,114,21,185,152,36,21,185,74,214,20,185,239,135,20,185,133,57,20,
185,13,235,19,185,134,156,19,185,241,77,19,185,78,255,18,185,157,176,18,185,221,97,18,185,16,19,18,185,52,196,17,185,75,117,17,185,83,38,17,185,77,215,16,185,57,136,16,185,24,57,16,185,232,233,15,185,171,154,15,185,96,75,15,185,7,252,14,185,160,172,14,185,43,93,14,185,169,13,14,185,25,190,13,185,124,110,13,185,209,30,13,185,24,207,12,185,82,127,12,185,126,47,12,185,157,223,11,185,175,143,11,185,179,63,11,185,170,239,10,185,147,159,10,185,112,79,10,185,63,255,9,185,0,175,9,185,181,94,9,185,92,14,9,
185,247,189,8,185,132,109,8,185,4,29,8,185,119,204,7,185,222,123,7,185,55,43,7,185,131,218,6,185,195,137,6,185,245,56,6,185,27,232,5,185,53,151,5,185,65,70,5,185,65,245,4,185,52,164,4,185,26,83,4,185,244,1,4,185,193,176,3,185,130,95,3,185,54,14,3,185,222,188,2,185,122,107,2,185,9,26,2,185,139,200,1,185,2,119,1,185,108,37,1,185,202,211,0,185,27,130,0,185,97,48,0,185,52,189,255,184,142,25,255,184,209,117,254,184,251,209,253,184,13,46,253,184,8,138,252,184,234,229,251,184,181,65,251,184,104,157,250,
184,3,249,249,184,135,84,249,184,243,175,248,184,72,11,248,184,133,102,247,184,171,193,246,184,186,28,246,184,178,119,245,184,147,210,244,184,93,45,244,184,15,136,243,184,171,226,242,184,48,61,242,184,158,151,241,184,246,241,240,184,55,76,240,184,98,166,239,184,118,0,239,184,116,90,238,184,91,180,237,184,44,14,237,184,231,103,236,184,140,193,235,184,27,27,235,184,148,116,234,184,247,205,233,184,68,39,233,184,124,128,232,184,158,217,231,184,170,50,231,184,160,139,230,184,130,228,229,184,78,61,229,
184,4,150,228,184,165,238,227,184,49,71,227,184,168,159,226,184,10,248,225,184,88,80,225,184,144,168,224,184,179,0,224,184,194,88,223,184,187,176,222,184,161,8,222,184,114,96,221,184,46,184,220,184,214,15,220,184,105,103,219,184,233,190,218,184,84,22,218,184,171,109,217,184,238,196,216,184,29,28,216,184,56,115,215,184,64,202,214,184,51,33,214,184,19,120,213,184,224,206,212,184,153,37,212,184,62,124,211,184,208,210,210,184,79,41,210,184,186,127,209,184,19,214,208,184,88,44,208,184,138,130,207,184,
169,216,206,184,182,46,206,184,175,132,205,184,150,218,204,184,106,48,204,184,44,134,203,184,219,219,202,184,119,49,202,184,1,135,201,184,121,220,200,184,223,49,200,184,50,135,199,184,116,220,198,184,163,49,198,184,193,134,197,184,204,219,196,184,198,48,196,184,174,133,195,184,133,218,194,184,74,47,194,184,253,131,193,184,159,216,192,184,47,45,192,184,175,129,191,184,29,214,190,184,122,42,190,184,197,126,189,184,0,211,188,184,42,39,188,184,67,123,187,184,76,207,186,184,67,35,186,184,42,119,185,184,
0,203,184,184,198,30,184,184,124,114,183,184,33,198,182,184,182,25,182,184,58,109,181,184,175,192,180,184,20,20,180,184,104,103,179,184,173,186,178,184,225,13,178,184,6,97,177,184,28,180,176,184,33,7,176,184,24,90,175,184,254,172,174,184,214,255,173,184,158,82,173,184,86,165,172,184,0,248,171,184,155,74,171,184,38,157,170,184,162,239,169,184,16,66,169,184,111,148,168,184,191,230,167,184,0,57,167,184,51,139,166,184,88,221,165,184,109,47,165,184,117,129,164,184,110,211,163,184,89,37,163,184,54,119,
162,184,5,201,161,184,198,26,161,184,120,108,160,184,29,190,159,184,181,15,159,184,62,97,158,184,186,178,157,184,40,4,157,184,137,85,156,184,221,166,155,184,35,248,154,184,91,73,154,184,135,154,153,184,166,235,152,184,183,60,152,184,188,141,151,184,179,222,150,184,158,47,150,184,124,128,149,184,77,209,148,184,18,34,148,184,202,114,147,184,118,195,146,184,22,20,146,184,169,100,145,184,48,181,144,184,170,5,144,184,25,86,143,184,124,166,142,184,210,246,141,184,29,71,141,184,92,151,140,184,143,231,139,
184,183,55,139,184,211,135,138,184,228,215,137,184,233,39,137,184,227,119,136,184,210,199,135,184,181,23,135,184,141,103,134,184,91,183,133,184,29,7,133,184,212,86,132,184,129,166,131,184,35,246,130,184,186,69,130,184,70,149,129,184,200,228,128,184,64,52,128,184,90,7,127,184,32,166,125,184,209,68,124,184,110,227,122,184,247,129,121,184,107,32,120,184,204,190,118,184,25,93,117,184,83,251,115,184,121,153,114,184,140,55,113,184,140,213,111,184,121,115,110,184,83,17,109,184,26,175,107,184,207,76,106,
184,113,234,104,184,1,136,103,184,128,37,102,184,236,194,100,184,70,96,99,184,143,253,97,184,198,154,96,184,236,55,95,184,1,213,93,184,4,114,92,184,247,14,91,184,217,171,89,184,171,72,88,184,108,229,86,184,29,130,85,184,189,30,84,184,78,187,82,184,206,87,81,184,63,244,79,184,161,144,78,184,243,44,77,184,54,201,75,184,106,101,74,184,142,1,73,184,164,157,71,184,172,57,70,184,164,213,68,184,143,113,67,184,107,13,66,184,57,169,64,184,250,68,63,184,172,224,61,184,81,124,60,184,232,23,59,184,115,179,57,
184,240,78,56,184,96,234,54,184,195,133,53,184,25,33,52,184,99,188,50,184,160,87,49,184,209,242,47,184,246,141,46,184,15,41,45,184,29,196,43,184,30,95,42,184,20,250,40,184,255,148,39,184,222,47,38,184,179,202,36,184,124,101,35,184,59,0,34,184,239,154,32,184,153,53,31,184,56,208,29,184,205,106,28,184,88,5,27,184,217,159,25,184,81,58,24,184,191,212,22,184,35,111,21,184,126,9,20,184,208,163,18,184,25,62,17,184,90,216,15,184,145,114,14,184,192,12,13,184,231,166,11,184,5,65,10,184,28,219,8,184,42,117,
7,184,49,15,6,184,48,169,4,184,39,67,3,184,23,221,1,184,0,119,0,184,197,33,254,183,123,85,251,183,36,137,248,183,191,188,245,183,78,240,242,183,208,35,240,183,70,87,237,183,175,138,234,183,13,190,231,183,96,241,228,183,168,36,226,183,229,87,223,183,23,139,220,183,63,190,217,183,94,241,214,183,115,36,212,183,126,87,209,183,129,138,206,183,122,189,203,183,108,240,200,183,85,35,198,183,55,86,195,183,17,137,192,183,228,187,189,183,176,238,186,183,117,33,184,183,52,84,181,183,237,134,178,183,160,185,175,
183,78,236,172,183,247,30,170,183,155,81,167,183,59,132,164,183,214,182,161,183,110,233,158,183,2,28,156,183,146,78,153,183,32,129,150,183,171,179,147,183,51,230,144,183,186,24,142,183,62,75,139,183,193,125,136,183,67,176,133,183,196,226,130,183,68,21,128,183,136,143,122,183,136,244,116,183,136,89,111,183,138,190,105,183,141,35,100,183,147,136,94,183,155,237,88,183,167,82,83,183,184,183,77,183,205,28,72,183,231,129,66,183,7,231,60,183,46,76,55,183,92,177,49,183,145,22,44,183,207,123,38,183,22,225,
32,183,103,70,27,183,193,171,21,183,38,17,16,183,151,118,10,183,19,220,4,183,56,131,254,182,100,78,243,182,171,25,232,182,15,229,220,182,144,176,209,182,49,124,198,182,241,71,187,182,211,19,176,182,215,223,164,182,0,172,153,182,77,120,142,182,192,68,131,182,180,34,112,182,58,188,89,182,19,86,67,182,65,240,44,182,200,138,22,182,169,37,0,182,206,129,211,181,8,185,166,181,11,226,115,181,150,83,26,181,117,141,129,180,245,35,198,51,22,156,228,52,226,213,75,53,253,173,146,53,36,112,191,53,98,49,236,53,
217,120,12,54,136,216,34,54,187,55,57,54,111,150,79,54,164,244,101,54,85,82,124,54,193,87,137,54,19,134,148,54,33,180,159,54,232,225,170,54,104,15,182,54,159,60,193,54,141,105,204,54,47,150,215,54,134,194,226,54,143,238,237,54,74,26,249,54,219,34,2,55,104,184,7,55,204,77,13,55,7,227,18,55,23,120,24,55,252,12,30,55,183,161,35,55,69,54,41,55,167,202,46,55,219,94,52,55,226,242,57,55,187,134,63,55,100,26,69,55,222,173,74,55,40,65,80,55,65,212,85,55,41,103,91,55,223,249,96,55,99,140,102,55,180,30,108,
55,208,176,113,55,185,66,119,55,109,212,124,55,246,50,129,55,154,251,131,55,35,196,134,55,144,140,137,55,226,84,140,55,23,29,143,55,48,229,145,55,44,173,148,55,11,117,151,55,204,60,154,55,112,4,157,55,246,203,159,55,94,147,162,55,167,90,165,55,210,33,168,55,221,232,170,55,201,175,173,55,149,118,176,55,66,61,179,55,205,3,182,55,57,202,184,55,131,144,187,55,172,86,190,55,180,28,193,55,154,226,195,55,94,168,198,55,0,110,201,55,127,51,204,55,219,248,206,55,20,190,209,55,41,131,212,55,27,72,215,55,232,
12,218,55,145,209,220,55,21,150,223,55,117,90,226,55,175,30,229,55,195,226,231,55,178,166,234,55,123,106,237,55,29,46,240,55,152,241,242,55,237,180,245,55,26,120,248,55,31,59,251,55,253,253,253,55,89,96,0,56,159,193,1,56,209,34,3,56,239,131,4,56,248,228,5,56,236,69,7,56,203,166,8,56,149,7,10,56,74,104,11,56,233,200,12,56,115,41,14,56,231,137,15,56,69,234,16,56,141,74,18,56,191,170,19,56,219,10,21,56,224,106,22,56,207,202,23,56,167,42,25,56,105,138,26,56,19,234,27,56,166,73,29,56,34,169,30,56,135,
8,32,56,211,103,33,56,9,199,34,56,38,38,36,56,43,133,37,56,24,228,38,56,237,66,40,56,170,161,41,56,77,0,43,56,216,94,44,56,75,189,45,56,164,27,47,56,228,121,48,56,11,216,49,56,24,54,51,56,12,148,52,56,229,241,53,56,166,79,55,56,76,173,56,56,215,10,58,56,73,104,59,56,160,197,60,56,221,34,62,56,254,127,63,56,5,221,64,56,241,57,66,56,194,150,67,56,119,243,68,56,17,80,70,56,143,172,71,56,242,8,73,56,57,101,74,56,99,193,75,56,114,29,77,56,100,121,78,56,58,213,79,56,243,48,81,56,143,140,82,56,15,232,83,
56,113,67,85,56,182,158,86,56,222,249,87,56,233,84,89,56,214,175,90,56,165,10,92,56,86,101,93,56,234,191,94,56,95,26,96,56,181,116,97,56,238,206,98,56,8,41,100,56,3,131,101,56,223,220,102,56,156,54,104,56,58,144,105,56,184,233,106,56,24,67,108,56,87,156,109,56,119,245,110,56,119,78,112,56,87,167,113,56,23,0,115,56,183,88,116,56,54,177,117,56,149,9,119,56,211,97,120,56,240,185,121,56,236,17,123,56,198,105,124,56,128,193,125,56,24,25,127,56,72,56,128,56,242,227,128,56,140,143,129,56,20,59,130,56,140,
230,130,56,242,145,131,56,71,61,132,56,139,232,132,56,190,147,133,56,223,62,134,56,239,233,134,56,237,148,135,56,217,63,136,56,180,234,136,56,125,149,137,56,52,64,138,56,218,234,138,56,109,149,139,56,238,63,140,56,94,234,140,56,187,148,141,56,5,63,142,56,62,233,142,56,100,147,143,56,120,61,144,56,121,231,144,56,103,145,145,56,67,59,146,56,12,229,146,56,195,142,147,56,102,56,148,56,247,225,148,56,116,139,149,56,223,52,150,56,54,222,150,56,122,135,151,56,171,48,152,56,200,217,152,56,210,130,153,56,
201,43,154,56,172,212,154,56,123,125,155,56,55,38,156,56,222,206,156,56,114,119,157,56,243,31,158,56,95,200,158,56,183,112,159,56,251,24,160,56,43,193,160,56,70,105,161,56,77,17,162,56,64,185,162,56,31,97,163,56,232,8,164,56,158,176,164,56,62,88,165,56,202,255,165,56,65,167,166,56,164,78,167,56,241,245,167,56,41,157,168,56,76,68,169,56,91,235,169,56,83,146,170,56,55,57,171,56,5,224,171,56,190,134,172,56,98,45,173,56,239,211,173,56,104,122,174,56,202,32,175,56,23,199,175,56,78,109,176,56,111,19,177,
56,122,185,177,56,112,95,178,56,79,5,179,56,24,171,179,56,202,80,180,56,103,246,180,56,237,155,181,56,92,65,182,56,182,230,182,56,248,139,183,56,36,49,184,56,57,214,184,56,56,123,185,56,32,32,186,56,240,196,186,56,170,105,187,56,77,14,188,56,217,178,188,56,77,87,189,56,171,251,189,56,241,159,190,56,32,68,191,56,55,232,191,56,55,140,192,56,31,48,193,56,240,211,193,56,168,119,194,56,74,27,195,56,211,190,195,56,68,98,196,56,158,5,197,56,223,168,197,56,9,76,198,56,26,239,198,56,19,146,199,56,244,52,200,
56,188,215,200,56,108,122,201,56,4,29,202,56,130,191,202,56,233,97,203,56,54,4,204,56,107,166,204,56,135,72,205,56,138,234,205,56,117,140,206,56,70,46,207,56,254,207,207,56,157,113,208,56,35,19,209,56,143,180,209,56,227,85,210,56,28,247,210,56,61,152,211,56,67,57,212,56,49,218,212,56,4,123,213,56,190,27,214,56,94,188,214,56,228,92,215,56,80,253,215,56,162,157,216,56,219,61,217,56,249,221,217,56,253,125,218,56,230,29,219,56,182,189,219,56,106,93,220,56,5,253,220,56,133,156,221,56,234,59,222,56,53,
219,222,56,101,122,223,56,123,25,224,56,117,184,224,56,85,87,225,56,25,246,225,56,195,148,226,56,81,51,227,56,197,209,227,56,29,112,228,56,90,14,229,56,123,172,229,56,130,74,230,56,108,232,230,56,60,134,231,56,239,35,232,56,135,193,232,56,3,95,233,56,100,252,233,56,168,153,234,56,209,54,235,56,221,211,235,56,206,112,236,56,163,13,237,56,91,170,237,56,247,70,238,56,119,227,238,56,218,127,239,56,33,28,240,56,76,184,240,56,90,84,241,56,76,240,241,56,32,140,242,56,216,39,243,56,116,195,243,56,242,94,
244,56,83,250,244,56,152,149,245,56,191,48,246,56,202,203,246,56,183,102,247,56,135,1,248,56,57,156,248,56,207,54,249,56,70,209,249,56,161,107,250,56,222,5,251,56,253,159,251,56,254,57,252,56,226,211,252,56,168,109,253,56,80,7,254,56,219,160,254,56,71,58,255,56],"i8",4,y.a+860160);
Q([149,211,255,56,99,54,0,57,236,130,0,57,102,207,0,57,208,27,1,57,44,104,1,57,120,180,1,57,181,0,2,57,227,76,2,57,2,153,2,57,17,229,2,57,17,49,3,57,1,125,3,57,226,200,3,57,180,20,4,57,118,96,4,57,41,172,4,57,204,247,4,57,96,67,5,57,227,142,5,57,88,218,5,57,188,37,6,57,17,113,6,57,87,188,6,57,140,7,7,57,178,82,7,57,200,157,7,57,206,232,7,57,196,51,8,57,170,126,8,57,129,201,8,57,71,20,9,57,253,94,9,57,164,169,9,57,58,244,9,57,192,62,10,57,54,137,10,57,156,211,10,57,242,29,11,57,56,104,11,57,109,178,
11,57,146,252,11,57,167,70,12,57,172,144,12,57,160,218,12,57,132,36,13,57,87,110,13,57,26,184,13,57,204,1,14,57,110,75,14,57,0,149,14,57,129,222,14,57,241,39,15,57,81,113,15,57,160,186,15,57,222,3,16,57,12,77,16,57,41,150,16,57,53,223,16,57,48,40,17,57,27,113,17,57,245,185,17,57,190,2,18,57,117,75,18,57,29,148,18,57,179,220,18,57,56,37,19,57,172,109,19,57,15,182,19,57,97,254,19,57,161,70,20,57,209,142,20,57,240,214,20,57,253,30,21,57,249,102,21,57,228,174,21,57,189,246,21,57,134,62,22,57,60,134,22,
57,226,205,22,57,118,21,23,57,249,92,23,57,106,164,23,57,202,235,23,57,24,51,24,57,85,122,24,57,128,193,24,57,154,8,25,57,161,79,25,57,152,150,25,57,124,221,25,57,79,36,26,57,16,107,26,57,192,177,26,57,94,248,26,57,233,62,27,57,99,133,27,57,203,203,27,57,34,18,28,57,102,88,28,57,152,158,28,57,184,228,28,57,199,42,29,57,195,112,29,57,173,182,29,57,133,252,29,57,75,66,30,57,255,135,30,57,160,205,30,57,48,19,31,57,173,88,31,57,24,158,31,57,112,227,31,57,183,40,32,57,235,109,32,57,12,179,32,57,27,248,
32,57,24,61,33,57,2,130,33,57,218,198,33,57,159,11,34,57,82,80,34,57,242,148,34,57,128,217,34,57,251,29,35,57,99,98,35,57,185,166,35,57,251,234,35,57,44,47,36,57,73,115,36,57,84,183,36,57,76,251,36,57,49,63,37,57,3,131,37,57,194,198,37,57,110,10,38,57,8,78,38,57,142,145,38,57,1,213,38,57,98,24,39,57,175,91,39,57,233,158,39,57,17,226,39,57,37,37,40,57,37,104,40,57,19,171,40,57,238,237,40,57,181,48,41,57,105,115,41,57,9,182,41,57,151,248,41,57,17,59,42,57,119,125,42,57,203,191,42,57,11,2,43,57,55,68,
43,57,80,134,43,57,85,200,43,57,71,10,44,57,38,76,44,57,240,141,44,57,167,207,44,57,75,17,45,57,219,82,45,57,87,148,45,57,192,213,45,57,20,23,46,57,85,88,46,57,130,153,46,57,156,218,46,57,161,27,47,57,147,92,47,57,113,157,47,57,59,222,47,57,241,30,48,57,147,95,48,57,33,160,48,57,155,224,48,57,1,33,49,57,83,97,49,57,145,161,49,57,186,225,49,57,208,33,50,57,209,97,50,57,190,161,50,57,151,225,50,57,92,33,51,57,13,97,51,57,169,160,51,57,49,224,51,57,164,31,52,57,3,95,52,57,78,158,52,57,132,221,52,57,
166,28,53,57,180,91,53,57,173,154,53,57,145,217,53,57,97,24,54,57,28,87,54,57,195,149,54,57,85,212,54,57,211,18,55,57,60,81,55,57,144,143,55,57,207,205,55,57,250,11,56,57,16,74,56,57,17,136,56,57,253,197,56,57,213,3,57,57,151,65,57,57,69,127,57,57,222,188,57,57,98,250,57,57,209,55,58,57,43,117,58,57,112,178,58,57,160,239,58,57,187,44,59,57,193,105,59,57,177,166,59,57,141,227,59,57,84,32,60,57,5,93,60,57,161,153,60,57,40,214,60,57,154,18,61,57,246,78,61,57,61,139,61,57,111,199,61,57,139,3,62,57,147,
63,62,57,132,123,62,57,97,183,62,57,39,243,62,57,217,46,63,57,117,106,63,57,251,165,63,57,108,225,63,57,200,28,64,57,14,88,64,57,62,147,64,57,89,206,64,57,94,9,65,57,77,68,65,57,39,127,65,57,235,185,65,57,153,244,65,57,49,47,66,57,180,105,66,57,33,164,66,57,120,222,66,57,185,24,67,57,229,82,67,57,250,140,67,57,250,198,67,57,227,0,68,57,183,58,68,57,117,116,68,57,29,174,68,57,174,231,68,57,42,33,69,57,144,90,69,57,223,147,69,57,24,205,69,57,60,6,70,57,73,63,70,57,64,120,70,57,32,177,70,57,235,233,
70,57,159,34,71,57,61,91,71,57,197,147,71,57,54,204,71,57,145,4,72,57,214,60,72,57,4,117,72,57,28,173,72,57,30,229,72,57,9,29,73,57,222,84,73,57,156,140,73,57,67,196,73,57,213,251,73,57,79,51,74,57,179,106,74,57,1,162,74,57,55,217,74,57,87,16,75,57,97,71,75,57,84,126,75,57,48,181,75,57,245,235,75,57,164,34,76,57,60,89,76,57,189,143,76,57,39,198,76,57,123,252,76,57,184,50,77,57,221,104,77,57,236,158,77,57,228,212,77,57,197,10,78,57,143,64,78,57,67,118,78,57,223,171,78,57,100,225,78,57,210,22,79,57,
41,76,79,57,105,129,79,57,146,182,79,57,164,235,79,57,158,32,80,57,130,85,80,57,78,138,80,57,3,191,80,57,161,243,80,57,40,40,81,57,151,92,81,57,239,144,81,57,48,197,81,57,90,249,81,57,108,45,82,57,103,97,82,57,74,149,82,57,22,201,82,57,203,252,82,57,104,48,83,57,238,99,83,57,92,151,83,57,179,202,83,57,242,253,83,57,26,49,84,57,42,100,84,57,35,151,84,57,4,202,84,57,205,252,84,57,127,47,85,57,25,98,85,57,156,148,85,57,7,199,85,57,90,249,85,57,149,43,86,57,185,93,86,57,197,143,86,57,185,193,86,57,149,
243,86,57,89,37,87,57,6,87,87,57,155,136,87,57,23,186,87,57,124,235,87,57,201,28,88,57,254,77,88,57,28,127,88,57,33,176,88,57,14,225,88,57,227,17,89,57,160,66,89,57,69,115,89,57,210,163,89,57,71,212,89,57,164,4,90,57,233,52,90,57,21,101,90,57,42,149,90,57,38,197,90,57,10,245,90,57,214,36,91,57,137,84,91,57,37,132,91,57,168,179,91,57,18,227,91,57,101,18,92,57,159,65,92,57,193,112,92,57,202,159,92,57,187,206,92,57,148,253,92,57,84,44,93,57,252,90,93,57,140,137,93,57,3,184,93,57,97,230,93,57,167,20,
94,57,212,66,94,57,233,112,94,57,230,158,94,57,202,204,94,57,149,250,94,57,71,40,95,57,225,85,95,57,99,131,95,57,203,176,95,57,27,222,95,57,83,11,96,57,113,56,96,57,119,101,96,57,100,146,96,57,57,191,96,57,245,235,96,57,151,24,97,57,33,69,97,57,147,113,97,57,235,157,97,57,43,202,97,57,81,246,97,57,95,34,98,57,84,78,98,57,48,122,98,57,243,165,98,57,157,209,98,57,46,253,98,57,166,40,99,57,5,84,99,57,75,127,99,57,120,170,99,57,140,213,99,57,135,0,100,57,105,43,100,57,50,86,100,57,225,128,100,57,120,
171,100,57,245,213,100,57,89,0,101,57,164,42,101,57,214,84,101,57,238,126,101,57,238,168,101,57,212,210,101,57,161,252,101,57,84,38,102,57,239,79,102,57,111,121,102,57,215,162,102,57,37,204,102,57,90,245,102,57,118,30,103,57,120,71,103,57,97,112,103,57,48,153,103,57,230,193,103,57,131,234,103,57,6,19,104,57,112,59,104,57,192,99,104,57,246,139,104,57,19,180,104,57,23,220,104,57,1,4,105,57,209,43,105,57,136,83,105,57,37,123,105,57,169,162,105,57,19,202,105,57,100,241,105,57,154,24,106,57,184,63,106,
57,187,102,106,57,165,141,106,57,117,180,106,57,43,219,106,57,200,1,107,57,74,40,107,57,179,78,107,57,3,117,107,57,56,155,107,57,84,193,107,57,86,231,107,57,62,13,108,57,12,51,108,57,192,88,108,57,91,126,108,57,219,163,108,57,66,201,108,57,143,238,108,57,193,19,109,57,218,56,109,57,217,93,109,57,190,130,109,57,137,167,109,57,58,204,109,57,209,240,109,57,78,21,110,57,177,57,110,57,249,93,110,57,40,130,110,57,61,166,110,57,55,202,110,57,24,238,110,57,222,17,111,57,139,53,111,57,29,89,111,57,149,124,
111,57,242,159,111,57,54,195,111,57,95,230,111,57,111,9,112,57,99,44,112,57,62,79,112,57,255,113,112,57,165,148,112,57,49,183,112,57,163,217,112,57,250,251,112,57,55,30,113,57,90,64,113,57,98,98,113,57,80,132,113,57,36,166,113,57,221,199,113,57,124,233,113,57,1,11,114,57,107,44,114,57,187,77,114,57,240,110,114,57,11,144,114,57,12,177,114,57,242,209,114,57,189,242,114,57,110,19,115,57,5,52,115,57,129,84,115,57,226,116,115,57,41,149,115,57,86,181,115,57,103,213,115,57,95,245,115,57,59,21,116,57,254,
52,116,57,165,84,116,57,50,116,116,57,164,147,116,57,252,178,116,57,57,210,116,57,91,241,116,57,99,16,117,57,80,47,117,57,34,78,117,57,218,108,117,57,119,139,117,57,249,169,117,57,96,200,117,57,173,230,117,57,223,4,118,57,246,34,118,57,242,64,118,57,212,94,118,57,155,124,118,57,71,154,118,57,216,183,118,57,78,213,118,57,170,242,118,57,234,15,119,57,16,45,119,57,27,74,119,57,11,103,119,57,224,131,119,57,155,160,119,57,58,189,119,57,190,217,119,57,40,246,119,57,119,18,120,57,170,46,120,57,195,74,120,
57,192,102,120,57,163,130,120,57,107,158,120,57,24,186,120,57,169,213,120,57,32,241,120,57,124,12,121,57,188,39,121,57,226,66,121,57,236,93,121,57,220,120,121,57,176,147,121,57,106,174,121,57,8,201,121,57,139,227,121,57,243,253,121,57,64,24,122,57,114,50,122,57,136,76,122,57,132,102,122,57,100,128,122,57,41,154,122,57,211,179,122,57,98,205,122,57,214,230,122,57,46,0,123,57,107,25,123,57,141,50,123,57,148,75,123,57,128,100,123,57,80,125,123,57,5,150,123,57,159,174,123,57,30,199,123,57,129,223,123,
57,201,247,123,57,246,15,124,57,7,40,124,57,253,63,124,57,216,87,124,57,151,111,124,57,60,135,124,57,196,158,124,57,50,182,124,57,132,205,124,57,187,228,124,57,214,251,124,57,214,18,125,57,187,41,125,57,132,64,125,57,50,87,125,57,196,109,125,57,59,132,125,57,151,154,125,57,215,176,125,57,252,198,125,57,5,221,125,57,243,242,125,57,197,8,126,57,124,30,126,57,24,52,126,57,151,73,126,57,252,94,126,57,69,116,126,57,114,137,126,57,132,158,126,57,123,179,126,57,86,200,126,57,21,221,126,57,185,241,126,57,
66,6,127,57,174,26,127,57,0,47,127,57,53,67,127,57,80,87,127,57,78,107,127,57,49,127,127,57,249,146,127,57,164,166,127,57,53,186,127,57,169,205,127,57,2,225,127,57,64,244,127,57,177,3,128,57,52,13,128,57,169,22,128,57,17,32,128,57,106,41,128,57,182,50,128,57,244,59,128,57,36,69,128,57,70,78,128,57,91,87,128,57,98,96,128,57,90,105,128,57,69,114,128,57,34,123,128,57,242,131,128,57,179,140,128,57,103,149,128,57,12,158,128,57,164,166,128,57,46,175,128,57,170,183,128,57,25,192,128,57,121,200,128,57,203,
208,128,57,16,217,128,57,71,225,128,57,112,233,128,57,139,241,128,57,152,249,128,57,151,1,129,57,136,9,129,57,108,17,129,57,65,25,129,57,9,33,129,57,195,40,129,57,110,48,129,57,12,56,129,57,156,63,129,57,31,71,129,57,147,78,129,57,249,85,129,57,81,93,129,57,156,100,129,57,216,107,129,57,7,115,129,57,40,122,129,57,59,129,129,57,64,136,129,57,54,143,129,57,31,150,129,57,251,156,129,57,200,163,129,57,135,170,129,57,56,177,129,57,220,183,129,57,113,190,129,57,248,196,129,57,114,203,129,57,222,209,129,
57,59,216,129,57,139,222,129,57,205,228,129,57,0,235,129,57,38,241,129,57,62,247,129,57,72,253,129,57,68,3,130,57,50,9,130,57,18,15,130,57,228,20,130,57,168,26,130,57,94,32,130,57,7,38,130,57,161,43,130,57,45,49,130,57,171,54,130,57,28,60,130,57,126,65,130,57,210,70,130,57,25,76,130,57,81,81,130,57,124,86,130,57,152,91,130,57,167,96,130,57,167,101,130,57,154,106,130,57,126,111,130,57,85,116,130,57,29,121,130,57,216,125,130,57,132,130,130,57,35,135,130,57,180,139,130,57,54,144,130,57,171,148,130,57,
18,153,130,57,106,157,130,57,181,161,130,57,242,165,130,57,32,170,130,57,65,174,130,57,84,178,130,57,88,182,130,57,79,186,130,57,56,190,130,57,19,194,130,57,223,197,130,57,158,201,130,57,79,205,130,57,241,208,130,57,134,212,130,57,13,216,130,57,133,219,130,57,240,222,130,57,77,226,130,57,156,229,130,57,220,232,130,57,15,236,130,57,52,239,130,57,74,242,130,57,83,245,130,57,78,248,130,57,58,251,130,57,25,254,130,57,234,0,131,57,172,3,131,57,97,6,131,57,8,9,131,57,160,11,131,57,43,14,131,57,168,16,131,
57,22,19,131,57,119,21,131,57,201,23,131,57,14,26,131,57,69,28,131,57,109,30,131,57,136,32,131,57,148,34,131,57,147,36,131,57,132,38,131,57,102,40,131,57,59,42,131,57,1,44,131,57,186,45,131,57,101,47,131,57,1,49,131,57,144,50,131,57,16,52,131,57,131,53,131,57,231,54,131,57,62,56,131,57,134,57,131,57,193,58,131,57,237,59,131,57,12,61,131,57,29,62,131,57,31,63,131,57,20,64,131,57,250,64,131,57,211,65,131,57,157,66,131,57,90,67,131,57,9,68,131,57,169,68,131,57,60,69,131,57,192,69,131,57,55,70,131,57,
160,70,131,57,250,70,131,57,71,71,131,57,134,71,131,57,182,71,131,57,217,71,131,57,238,71,131,57,244,71,131,57,237,71,131,57,216,71,131,57,181,71,131,57,131,71,131,57,68,71,131,57,247,70,131,57,156,70,131,57,51,70,131,57,188,69,131,57,55,69,131,57,164,68,131,57,3,68,131,57,84,67,131,57,151,66,131,57,204,65,131,57,243,64,131,57,12,64,131,57,23,63,131,57,21,62,131,57,4,61,131,57,229,59,131,57,185,58,131,57,126,57,131,57,53,56,131,57,223,54,131,57,123,53,131,57,8,52,131,57,136,50,131,57,250,48,131,57,
93,47,131,57,179,45,131,57,251,43,131,57,53,42,131,57,97,40,131,57,127,38,131,57,143,36,131,57,146,34,131,57,134,32,131,57,108,30,131,57,69,28,131,57,15,26,131,57,204,23,131,57,122,21,131,57,27,19,131,57,174,16,131,57,51,14,131,57,170,11,131,57,19,9,131,57,110,6,131,57,188,3,131,57,251,0,131,57,45,254,130,57,80,251,130,57,102,248,130,57,110,245,130,57,104,242,130,57,84,239,130,57,50,236,130,57,2,233,130,57,196,229,130,57,121,226,130,57,31,223,130,57,184,219,130,57,67,216,130,57,192,212,130,57,47,
209,130,57,144,205,130,57,228,201,130,57,41,198,130,57,97,194,130,57,139,190,130,57,167,186,130,57,181,182,130,57,181,178,130,57,168,174,130,57,140,170,130,57,99,166,130,57,44,162,130,57,231,157,130,57,148,153,130,57,52,149,130,57,197,144,130,57,73,140,130,57,191,135,130,57,39,131,130,57,129,126,130,57,206,121,130,57,12,117,130,57,61,112,130,57,96,107,130,57,118,102,130,57,125,97,130,57,119,92,130,57,99,87,130,57,65,82,130,57,17,77,130,57,212,71,130,57,137,66,130,57,48,61,130,57,201,55,130,57,84,
50,130,57,210,44,130,57,66,39,130,57,164,33,130,57,249,27,130,57,63,22,130,57,120,16,130,57,163,10,130,57,193,4,130,57,208,254,129,57,210,248,129,57,199,242,129,57,173,236,129,57,134,230,129,57,81,224,129,57,14,218,129,57,190,211,129,57,96,205,129,57,244,198,129,57,123,192,129,57,244,185,129,57,95,179,129,57,188,172,129,57,12,166,129,57,78,159,129,57,130,152,129,57,169,145,129,57,194,138,129,57,205,131,129,57,203,124,129,57,187,117,129,57,158,110,129,57,114,103,129,57,57,96,129,57,243,88,129,57,159,
81,129,57,61,74,129,57,205,66,129,57,80,59,129,57,198,51,129,57,45,44,129,57,135,36,129,57,212,28,129,57,19,21,129,57,68,13,129,57,104,5,129,57,126,253,128,57,134,245,128,57,129,237,128,57,110,229,128,57,78,221,128,57,32,213,128,57,229,204,128,57,156,196,128,57,69,188,128,57,225,179,128,57,111,171,128,57,240,162,128,57,99,154,128,57,201,145,128,57,33,137,128,57,108,128,128,57,169,119,128,57,217,110,128,57,251,101,128,57,15,93,128,57,22,84,128,57,16,75,128,57,252,65,128,57,219,56,128,57,172,47,128,
57,112,38,128,57,38,29,128,57,206,19,128,57,106,10,128,57,247,0,128,57,239,238,127,57,213,219,127,57,160,200,127,57,80,181,127,57,229,161,127,57,95,142,127,57,190,122,127,57,3,103,127,57,45,83,127,57,60,63,127,57,48,43,127,57,9,23,127,57,199,2,127,57,107,238,126,57,244,217,126,57,98,197,126,57,181,176,126,57,238,155,126,57,12,135,126,57,15,114,126,57,248,92,126,57,198,71,126,57,121,50,126,57,17,29,126,57,143,7,126,57,242,241,125,57,58,220,125,57,104,198,125,57,124,176,125,57,116,154,125,57,82,132,
125,57,22,110,125,57,191,87,125,57,77,65,125,57,193,42,125,57,26,20,125,57,89,253,124,57,125,230,124,57,134,207,124,57,118,184,124,57,74,161,124,57,4,138,124,57,164,114,124,57,41,91,124,57,148,67,124,57,229,43,124,57,27,20,124,57,54,252,123,57,56,228,123,57,30,204,123,57,235,179,123,57,157,155,123,57,53,131,123,57,178,106,123,57,21,82,123,57,94,57,123,57,141,32,123,57,161,7,123,57,155,238,122,57,123,213,122,57,64,188,122,57,236,162,122,57,125,137,122,57,243,111,122,57,80,86,122,57,147,60,122,57,187,
34,122,57,201,8,122,57,189,238,121,57,151,212,121,57,87,186,121,57,252,159,121,57,136,133,121,57,249,106,121,57,81,80,121,57,142,53,121,57,177,26,121,57,186,255,120,57,170,228,120,57,127,201,120,57,58,174,120,57,219,146,120,57,99,119,120,57,208,91,120,57,36,64,120,57,93,36,120,57,125,8,120,57,130,236,119,57,110,208,119,57,64,180,119,57,248,151,119,57,151,123,119,57,27,95,119,57,134,66,119,57,215,37,119,57,14,9,119,57,43,236,118,57,46,207,118,57,24,178,118,57,232,148,118,57,159,119,118,57,59,90,118,
57,190,60,118,57,39,31,118,57,119,1,118,57,173,227,117,57,201,197,117,57,204,167,117,57,181,137,117,57,133,107,117,57,59,77,117,57,215,46,117,57,90,16,117,57,195,241,116,57,19,211,116,57,73,180,116,57,102,149,116,57,106,118,116,57,84,87,116,57,36,56,116,57,219,24,116,57,121,249,115,57,253,217,115,57,104,186,115,57,185,154,115,57,241,122,115,57,16,91,115,57,22,59,115,57,2,27,115,57,213,250,114,57,142,218,114,57,47,186,114,57,182,153,114,57,35,121,114,57,120,88,114,57,180,55,114,57,214,22,114,57,223,
245,113,57,207,212,113,57,166,179,113,57,99,146,113,57,8,113,113,57,147,79,113,57,6,46,113,57,95,12,113,57,160,234,112,57,199,200,112,57,213,166,112,57,202,132,112,57,167,98,112,57,106,64,112,57,20,30,112,57,166,251,111,57,30,217,111,57,126,182,111,57,197,147,111,57,243,112,111,57,8,78,111,57,4,43,111,57,232,7,111,57,178,228,110,57,100,193,110,57,253,157,110,57,125,122,110,57,229,86,110,57,52,51,110,57,106,15,110,57,135,235,109,57,140,199,109,57,120,163,109,57,76,127,109,57,7,91,109,57,169,54,109,
57,51,18,109,57,164,237,108,57,253,200,108,57,61,164,108,57,100,127,108,57,115,90,108,57,106,53,108,57,72,16,108,57,14,235,107,57,187,197,107,57,80,160,107,57,204,122,107,57,48,85,107,57,124,47,107,57,175,9,107,57,202,227,106,57,205,189,106,57,183,151,106,57,138,113,106,57,68,75,106,57,229,36,106,57,111,254,105,57,224,215,105,57,57,177,105,57,122,138,105,57,163,99,105,57,179,60,105,57,172,21,105,57,140,238,104,57,85,199,104,57,5,160,104,57,157,120,104,57,29,81,104,57,134,41,104,57,214,1,104,57,14,
218,103,57,47,178,103,57,55,138,103,57,39,98,103,57,0,58,103,57,193,17,103,57,106,233,102,57,251,192,102,57,116,152,102,57,213,111,102,57,31,71,102,57,81,30,102,57,107,245,101,57,109,204,101,57,88,163,101,57,43,122,101,57,230,80,101,57,138,39,101,57,22,254,100,57,139,212,100,57,232,170,100,57,45,129,100,57,91,87,100,57,113,45,100,57,111,3,100,57,87,217,99,57,38,175,99,57,223,132,99,57,127,90,99,57,9,48,99,57,123,5,99,57,213,218,98,57,25,176,98,57,69,133,98,57,89,90,98,57,86,47,98,57,60,4,98,57,11,
217,97,57,195,173,97,57,99,130,97,57,236,86,97,57,94,43,97,57,184,255,96,57,252,211,96,57,40,168,96,57,62,124,96,57,60,80,96,57,35,36,96,57,243,247,95,57,172,203,95,57,79,159,95,57,218,114,95,57,78,70,95,57,171,25,95,57,241,236,94,57,33,192,94,57,57,147,94,57,59,102,94,57,38,57,94,57,250,11,94,57,183,222,93,57,93,177,93,57,237,131,93,57,102,86,93,57,200,40,93,57,19,251,92,57,72,205,92,57,102,159,92,57,110,113,92,57,94,67,92,57,57,21,92,57,252,230,91,57,170,184,91,57,64,138,91,57,192,91,91,57,42,45,
91,57,125,254,90,57,186,207,90,57,224,160,90,57,240,113,90,57,233,66,90,57,204,19,90,57,153,228,89,57,80,181,89,57,240,133,89,57,122,86,89,57,237,38,89,57,75,247,88,57,146,199,88,57,195,151,88,57,222,103,88,57,226,55,88,57,209,7,88,57,169,215,87,57,107,167,87,57,24,119,87,57,174,70,87,57,46,22,87,57,152,229,86,57,237,180,86,57,43,132,86,57,83,83,86,57,102,34,86,57,98,241,85,57,73,192,85,57,26,143,85,57,213,93,85,57,122,44,85,57,9,251,84,57,131,201,84,57,231,151,84,57,53,102,84,57,110,52,84,57,144,
2,84,57,158,208,83,57,149,158,83,57,119,108,83,57,68,58,83,57,251,7,83,57,156,213,82,57,40,163,82,57,158,112,82,57,255,61,82,57,74,11,82,57,128,216,81,57,161,165,81,57,172,114,81,57,162,63,81,57,131,12,81,57,78,217,80,57,4,166,80,57,164,114,80,57,48,63,80,57,166,11,80,57,7,216,79,57,83,164,79,57,138,112,79,57,172,60,79,57,184,8,79,57,176,212,78,57,146,160,78,57,95,108,78,57,24,56,78,57,187,3,78,57,73,207,77,57,195,154,77,57,40,102,77,57,119,49,77,57,178,252,76,57,216,199,76,57,233,146,76,57,230,93,
76,57,205,40,76,57,160,243,75,57,94,190,75,57,7,137,75,57,156,83,75,57,28,30,75,57,136,232,74,57,223,178,74,57,33,125,74,57,79,71,74,57,104,17,74,57,108,219,73,57,93,165,73,57,56,111,73,57,0,57,73,57,179,2,73,57,81,204,72,57,219,149,72,57,81,95,72,57,178,40,72,57,255,241,71,57,56,187,71,57,93,132,71,57,109,77,71,57,106,22,71,57,82,223,70,57,38,168,70,57,229,112,70,57,145,57,70,57,41,2,70,57,172,202,69,57,28,147,69,57,119,91,69,57,191,35,69,57,243,235,68,57,18,180,68,57,30,124,68,57,22,68,68,57,250,
11,68,57,202,211,67,57,135,155,67,57,47,99,67,57,196,42,67,57,69,242,66,57,179,185,66,57,13,129,66,57,83,72,66,57,133,15,66,57,164,214,65,57,176,157,65,57,167,100,65,57,140,43,65,57,92,242,64,57,26,185,64,57,195,127,64,57,90,70,64,57,221,12,64,57,76,211,63,57,169,153,63,57,242,95,63,57,39,38,63,57,74,236,62,57,89,178,62,57,85,120,62,57,61,62,62,57,19,4,62,57,213,201,61,57,133,143,61,57,33,85,61,57,170,26,61,57,32,224,60,57,131,165,60,57,211,106,60,57,16,48,60,57,58,245,59,57,81,186,59,57,86,127,59,
57,71,68,59,57,38,9,59,57,242,205,58,57,171,146,58,57,81,87,58,57,229,27,58,57,101,224,57,57,212,164,57,57,47,105,57,57,120,45,57,57,174,241,56,57,210,181,56,57,227,121,56,57,226,61,56,57,206,1,56,57,168,197,55,57,111,137,55,57,36,77,55,57,198,16,55,57,86,212,54,57,212,151,54,57,63,91,54,57,152,30,54,57,223,225,53,57,20,165,53,57,54,104,53,57,70,43,53,57,69,238,52,57,49,177,52,57,10,116,52,57,210,54,52,57,136,249,51,57,44,188,51,57,189,126,51,57,61,65,51,57,171,3,51,57,7,198,50,57,81,136,50,57,137,
74,50,57,176,12,50,57,196,206,49,57,199,144,49,57,184,82,49,57,151,20,49,57,101,214,48,57,33,152,48,57,203,89,48,57,100,27,48,57,235,220,47,57,97,158,47,57,197,95,47,57,23,33,47,57,88,226,46,57,136,163,46,57,166,100,46,57,179,37,46,57,174,230,45,57,152,167,45,57,113,104,45,57,57,41,45,57,239,233,44,57,148,170,44,57,40,107,44,57,170,43,44,57,28,236,43,57,124,172,43,57,204,108,43,57,10,45,43,57,55,237,42,57,83,173,42,57,94,109,42,57,89,45,42,57,66,237,41,57,26,173,41,57,226,108,41,57,153,44,41,57,63,
236,40,57,212,171,40,57,88,107,40,57,204,42,40,57,47,234,39,57,129,169,39,57,195,104,39,57,244,39,39,57,20,231,38,57,36,166,38,57,35,101,38,57,18,36,38,57,241,226,37,57,191,161,37,57,124,96,37,57,41,31,37,57,198,221,36,57,82,156,36,57,207,90,36,57,58,25,36,57,150,215,35,57,226,149,35,57,29,84,35,57,72,18,35,57,99,208,34,57,110,142,34,57,104,76,34,57,83,10,34,57,46,200,33,57,248,133,33,57,179,67,33,57,94,1,33,57,249,190,32,57,132,124,32,57,255,57,32,57,106,247,31,57,198,180,31,57,18,114,31,57,78,47,
31,57,122,236,30,57,151,169,30,57,164,102,30,57,162,35,30,57,143,224,29,57,110,157,29,57,61,90,29,57,252,22,29,57,172,211,28,57,76,144,28,57,221,76,28,57,95,9,28,57,209,197,27,57,52,130,27,57,135,62,27,57,204,250,26,57,1,183,26,57,39,115,26,57,62,47,26,57,69,235,25,57,62,167,25,57,39,99,25,57,2,31,25,57,205,218,24,57,137,150,24,57,55,82,24,57,213,13,24,57,101,201,23,57,229,132,23,57,87,64,23,57,186,251,22,57,14,183,22,57,83,114,22,57,138,45,22,57,178,232,21,57,203,163,21,57,214,94,21,57,210,25,21,
57,192,212,20,57,158,143,20,57,111,74,20,57,49,5,20,57,228,191,19,57,137,122,19,57,32,53,19,57,168,239,18,57,34,170,18,57,141,100,18,57,235,30,18,57,58,217,17,57,122,147,17,57,173,77,17,57,209,7,17,57,232,193,16,57,240,123,16,57,234,53,16,57,214,239,15,57,180,169,15,57,132,99,15,57,70,29,15,57,250,214,14,57,161,144,14,57,57,74,14,57,196,3,14,57,65,189,13,57,176,118,13,57,17,48,13,57,101,233,12,57,170,162,12,57,227,91,12,57,13,21,12,57,42,206,11,57,58,135,11,57,60,64,11,57,48,249,10,57,23,178,10,57,
241,106,10,57,189,35,10,57,124,220,9,57,45,149,9,57,209,77,9,57,104,6,9,57,242,190,8,57,110,119,8,57,221,47,8,57,63,232,7,57,148,160,7,57,220,88,7,57,23,17,7,57,68,201,6,57,101,129,6,57,121,57,6,57,127,241,5,57,121,169,5,57,102,97,5,57,70,25,5,57,26,209,4,57,224,136,4,57,154,64,4,57,71,248,3,57,231,175,3,57,123,103,3,57,2,31,3,57,124,214,2,57,234,141,2,57,76,69,2,57,160,252,1,57,233,179,1,57,36,107,1,57,84,34,1,57,119,217,0,57,142,144,0,57,152,71,0,57,44,253,255,56,16,107,255,56,219,216,254,56,142,
70,254,56,41,180,253,56,171,33,253,56,21,143,252,56,103,252,251,56,160,105,251,56,194,214,250,56,204,67,250,56,190,176,249,56,152,29,249,56,90,138,248,56,5,247,247,56,152,99,247,56,19,208,246,56,119,60,246,56,196,168,245,56,249,20,245,56,22,129,244,56,29,237,243,56,12,89,243,56,228,196,242,56,165,48,242,56,79,156,241,56,226,7,241,56,95,115,240,56,196,222,239,56,19,74,239,56,75,181,238,56,108,32,238,56,119,139,237,56,107,246,236,56,73,97,236,56,16,204,235,56,193,54,235,56,92,161,234,56,225,11,234,
56,80,118,233,56,168,224,232,56,235,74,232,56,23,181,231,56,46,31,231,56,47,137,230,56,26,243,229,56,240,92,229,56,176,198,228,56,90,48,228,56,239,153,227,56,111,3,227,56,217,108,226,56,46,214,225,56,110,63,225,56,152,168,224,56,174,17,224,56,174,122,223,56,153,227,222,56,112,76,222,56,50,181,221,56,223,29,221,56,119,134,220,56,250,238,219,56,105,87,219,56,196,191,218,56,10,40,218,56,60,144,217,56,89,248,216,56,98,96,216,56,87,200,215,56,56,48,215,56,5,152,214,56,189,255,213,56,98,103,213,56,243,
206,212,56,112,54,212,56,218,157,211,56,47,5,211,56,113,108,210,56,160,211,209,56,187,58,209,56,195,161,208,56,183,8,208,56,152,111,207,56,102,214,206,56,33,61,206,56,201,163,205,56,93,10,205,56,223,112,204,56,78,215,203,56,170,61,203,56,243,163,202,56,41,10,202,56,77,112,201,56,95,214,200,56,93,60,200,56,74,162,199,56,36,8,199,56,235,109,198,56,161,211,197,56,68,57,197,56,214,158,196,56,85,4,196,56,194,105,195,56,29,207,194,56,103,52,194,56,158,153,193,56,196,254,192,56,217,99,192,56,219,200,191,
56,205,45,191,56,173,146,190,56,123,247,189,56,56,92,189,56,228,192,188,56,127,37,188,56,8,138,187,56,129,238,186,56,232,82,186,56,63,183,185,56,133,27,185,56,186,127,184,56,222,227,183,56,241,71,183,56,244,171,182,56,231,15,182,56,201,115,181,56,155,215,180,56,92,59,180,56,13,159,179,56,174,2,179,56,62,102,178,56,191,201,177,56,48,45,177,56,145,144,176,56,226,243,175,56,35,87,175,56,84,186,174,56,118,29,174,56,136,128,173,56,138,227,172,56,126,70,172,56,97,169,171,56,54,12,171,56,251,110,170,56,
177,209,169,56,88,52,169,56,240,150,168,56,120,249,167,56,242,91,167,56,93,190,166,56,185,32,166,56,7,131,165,56,70,229,164,56,118,71,164,56,151,169,163,56,171,11,163,56,176,109,162,56,166,207,161,56,142,49,161,56,104,147,160,56,52,245,159,56,242,86,159,56,162,184,158,56,68,26,158,56,216,123,157,56,94,221,156,56,215,62,156,56,66,160,155,56,159,1,155,56,239,98,154,56,49,196,153,56,102,37,153,56,142,134,152,56,168,231,151,56,181,72,151,56,181,169,150,56,168,10,150,56,142,107,149,56,103,204,148,56,51,
45,148,56,243,141,147,56,165,238,146,56,76,79,146,56,229,175,145,56,114,16,145,56,242,112,144,56,103,209,143,56,206,49,143,56,42,146,142,56,121,242,141,56,189,82,141,56,244,178,140,56,31,19,140,56,62,115,139,56,82,211,138,56,90,51,138,56,85,147,137,56,70,243,136,56,43,83,136,56,4,179,135,56,210,18,135,56,148,114,134,56,75,210,133,56,247,49,133,56,152,145,132,56,46,241,131,56,184,80,131,56,56,176,130,56,173,15,130,56,23,111,129,56,118,206,128,56,202,45,128,56,40,26,127,56,166,216,125,56,16,151,124,
56,101,85,123,56,165,19,122,56,208,209,120,56,231,143,119,56,233,77,118,56,216,11,117,56,178,201,115,56,121,135,114,56,44,69,113,56,203,2,112,56,86,192,110,56,207,125,109,56,52,59,108,56,134,248,106,56,197,181,105,56,241,114,104,56,10,48,103,56,17,237,101,56,6,170,100,56,232,102,99,56,184,35,98,56,118,224,96,56,34,157,95,56,189,89,94,56,70,22,93,56,189,210,91,56,35,143,90,56,120,75,89,56,188,7,88,56,239,195,86,56,17,128,85,56,35,60,84,56,36,248,82,56,21,180,81,56,245,111,80,56,197,43,79,56,134,231,
77,56,54,163,76,56,215,94,75,56,104,26,74,56,234,213,72,56,93,145,71,56,192,76,70,56,21,8,69,56,90,195,67,56,145,126,66,56,185,57,65,56,211,244,63,56,223,175,62,56,220,106,61,56,203,37,60,56,172,224,58,56,128,155,57,56,69,86,56,56,254,16,55,56,169,203,53,56,70,134,52,56,215,64,51,56,91,251,49,56,209,181,48,56,60,112,47,56,153,42,46,56,234,228,44,56,47,159,43,56,104,89,42,56,148,19,41,56,181,205,39,56,202,135,38,56,212,65,37,56,210,251,35,56,196,181,34,56,172,111,33,56,136,41,32,56,90,227,30,56,33,
157,29,56,221,86,28,56,142,16,27,56,53,202,25,56,210,131,24,56,101,61,23,56,238,246,21,56,109,176,20,56,227,105,19,56,78,35,18,56,177,220,16,56,10,150,15,56,90,79,14,56,161,8,13,56,223,193,11,56,20,123,10,56,65,52,9,56,101,237,7,56,129,166,6,56,149,95,5,56,161,24,4,56,165,209,2,56,161,138,1,56,149,67,0,56,4,249,253,55,208,106,251,55,140,220,248,55,59,78,246,55,219,191,243,55,110,49,241,55,244,162,238,55,108,20,236,55,216,133,233,55,55,247,230,55,138,104,228,55,208,217,225,55,11,75,223,55,59,188,220,
55,95,45,218,55,121,158,215,55,136,15,213,55,140,128,210,55,135,241,207,55,119,98,205,55,95,211,202,55,60,68,200,55,17,181,197,55,221,37,195,55,161,150,192,55,92,7,190,55,16,120,187,55,188,232,184,55,96,89,182,55,254,201,179,55,149,58,177,55,37,171,174,55,175,27,172,55,51,140,169,55,177,252,166,55,42,109,164,55,157,221,161,55,12,78,159,55,118,190,156,55,220,46,154,55,61,159,151,55,155,15,149,55,246,127,146,55,77,240,143,55,161,96,141,55,242,208,138,55,65,65,136,55,142,177,133,55,217,33,131,55,34,
146,128,55,212,4,124,55,97,229,118,55,237,197,113,55,120,166,108,55,3,135,103,55,141,103,98,55,25,72,93,55,165,40,88,55,51,9,83,55,195,233,77,55,86,202,72,55,236,170,67,55,134,139,62,55,37,108,57,55,200,76,52,55,113,45,47,55,32,14,42,55,214,238,36,55,146,207,31,55,87,176,26,55,35,145,21,55,249,113,16,55,215,82,11,55,192,51,6,55,179,20,1,55,98,235,247,54,116,173,237,54,159,111,227,54,227,49,217,54,65,244,206,54,187,182,196,54,81,121,186,54,4,60,176,54,214,254,165,54,200,193,155,54,219,132,145,54,15,
72,135,54,205,22,122,54,195,157,101,54,5,37,81,54,146,172,60,54,110,52,40,54,155,188,19,54,54,138,254,53,224,155,213,53,57,174,172,53,68,193,131,53,15,170,53,53,24,166,199,52,74,236,143,51,195,89,127,180,217,168,17,181,168,121,99,181,106,164,154,181,42,139,195,181,16,113,236,181,12,171,10,182,30,29,31,182,189,142,51,182,230,255,71,182,152,112,92,182,207,224,112,182,69,168,130,182,227,223,140,182,65,23,151,182,94,78,161,182,56,133,171,182,207,187,181,182,33,242,191,182,46,40,202,182,243,93,212,182,
113,147,222,182,166,200,232,182,145,253,242,182,48,50,253,182,66,179,3,183,69,205,8,183,33,231,13,183,213,0,19,183,97,26,24,183,196,51,29,183,254,76,34,183,14,102,39,183,244,126,44,183,174,151,49,183,61,176,54,183,160,200,59,183,215,224,64,183,224,248,69,183,188,16,75,183,105,40,80,183,232,63,85,183,56,87,90,183,87,110,95,183,71,133,100,183,5,156,105,183,146,178,110,183,237,200,115,183,22,223,120,183,11,245,125,183,103,133,129,183,46,16,132,183,218,154,134,183,108,37,137,183,227,175,139,183,63,58,
142,183,128,196,144,183,165,78,147,183,174,216,149,183,155,98,152,183,107,236,154,183,30,118,157,183,181,255,159,183,46,137,162,183,138,18,165,183,200,155,167,183,231,36,170,183,233,173,172,183,204,54,175,183,144,191,177,183,52,72,180,183,186,208,182,183,31,89,185,183,101,225,187,183,139,105,190,183,144,241,192,183,116,121,195,183,55,1,198,183,217,136,200,183,89,16,203,183,184,151,205,183,244,30,208,183,14,166,210,183,6,45,213,183,218,179,215,183,139,58,218,183,25,193,220,183,132,71,223,183,202,205,
225,183,236,83,228,183,233,217,230,183,194,95,233,183,118,229,235,183,4,107,238,183,109,240,240,183,176,117,243,183,205,250,245,183,196,127,248,183,148,4,251,183,61,137,253,183,223,6,0,184,13,73,1,184,38,139,2,184,44,205,3,184,29,15,5,184,250,80,6,184,195,146,7,184,119,212,8,184,23,22,10,184,161,87,11,184,23,153,12,184,120,218,13,184,196,27,15,184,250,92,16,184,27,158,17,184,39,223,18,184,28,32,20,184,252,96,21,184,198,161,22,184,122,226,23,184,24,35,25,184,159,99,26,184,16,164,27,184,106,228,28,
184,173,36,30,184,218,100,31,184,240,164,32,184,238,228,33,184,213,36,35,184,165,100,36,184,93,164,37,184,253,227,38,184,134,35,40,184,247,98,41,184,80,162,42,184,144,225,43,184,184,32,45,184,200,95,46,184,191,158,47,184,158,221,48,184,99,28,50,184,16,91,51,184,163,153,52,184,30,216,53,184,126,22,55,184,198,84,56,184,244,146,57,184,8,209,58,184,2,15,60,184,226,76,61,184,168,138,62,184,83,200,63,184,228,5,65,184,91,67,66,184,183,128,67,184,248,189,68,184,31,251,69,184,42,56,71,184,26,117,72,184,238,
177,73,184,168,238,74,184,69,43,76,184,199,103,77,184,45,164,78,184,119,224,79,184,165,28,81,184,183,88,82,184,172,148,83,184,133,208,84,184,66,12,86,184,225,71,87,184,100,131,88,184,201,190,89,184,18,250,90,184,61,53,92,184,75,112,93,184,59,171,94,184,14,230,95,184,195,32,97,184,90,91,98,184,211,149,99,184,45,208,100,184,106,10,102,184,136,68,103,184,135,126,104,184,104,184,105,184,42,242,106,184,205,43,108,184,81,101,109,184,182,158,110,184,251,215,111,184,33,17,113,184,40,74,114,184,14,131,115,
184,213,187,116,184,124,244,117,184,3,45,119,184,106,101,120,184,176,157,121,184,214,213,122,184,219,13,124,184,191,69,125,184,131,125,126,184,37,181,127,184,83,118,128,184,4,18,129,184,163,173,129,184,50,73,130,184,176,228,130,184,29,128,131,184,121,27,132,184,196,182,132,184,254,81,133,184,39,237,133,184,62,136,134,184,69,35,135,184,58,190,135,184,30,89,136,184,240,243,136,184,177,142,137,184,96,41,138,184,254,195,138,184,137,94,139,184,4,249,139,184,108,147,140,184,194,45,141,184,7,200,141,184,
57,98,142,184,90,252,142,184,104,150,143,184,100,48,144,184,78,202,144,184,37,100,145,184,234,253,145,184,157,151,146,184,61,49,147,184,203,202,147,184,70,100,148,184,174,253,148,184,3,151,149,184,70,48,150,184,118,201,150,184,146,98,151,184,156,251,151,184,147,148,152,184,119,45,153,184,71,198,153,184,4,95,154,184,174,247,154,184,68,144,155,184,199,40,156,184,55,193,156,184,147,89,157,184,219,241,157,184,15,138,158,184,48,34,159,184,61,186,159,184,54,82,160,184,27,234,160,184,237,129,161,184,170,
25,162,184,83,177,162,184,231,72,163,184,104,224,163,184,212,119,164,184,44,15,165,184,111,166,165,184,158,61,166,184,185,212,166,184,190,107,167,184,175,2,168,184,140,153,168,184,83,48,169,184,6,199,169,184,163,93,170,184,44,244,170,184,160,138,171,184,254,32,172,184,72,183,172,184,124,77,173,184,155,227,173,184,164,121,174,184,153,15,175,184,119,165,175,184,64,59,176,184,244,208,176,184,146,102,177,184,26,252,177,184,140,145,178,184,233,38,179,184,47,188,179,184,96,81,180,184,122,230,180,184,127,
123,181,184,109,16,182,184,70,165,182,184,8,58,183,184,179,206,183,184,72,99,184,184,199,247,184,184,48,140,185,184,129,32,186,184,188,180,186,184,225,72,187,184,239,220,187,184,229,112,188,184,197,4,189,184,143,152,189,184,65,44,190,184,220,191,190,184,96,83,191,184,205,230,191,184,34,122,192,184,97,13,193,184,135,160,193,184,151,51,194,184,143,198,194,184,112,89,195,184,57,236,195,184,234,126,196,184,132,17,197,184,6,164,197,184,112,54,198,184,194,200,198,184,253,90,199,184,31,237,199,184,41,127,
200,184,27,17,201,184,245,162,201,184,183,52,202,184,96,198,202,184,242,87,203,184,106,233,203,184,203,122,204,184,18,12,205,184,65,157,205,184,88,46,206,184,86,191,206,184,59,80,207,184,7,225,207,184,187,113,208,184,85,2,209,184,214,146,209,184,63,35,210,184,142,179,210,184,196,67,211,184,225,211,211,184,229,99,212,184,207,243,212,184,160,131,213,184,87,19,214,184,245,162,214,184,122,50,215,184,228,193,215,184,53,81,216,184,109,224,216,184,138,111,217,184,142,254,217,184,120,141,218,184,71,28,219,
184,253,170,219,184,153,57,220,184,26,200,220,184,129,86,221,184,206,228,221,184,1,115,222,184,25,1,223,184,23,143,223,184,251,28,224,184,196,170,224,184,114,56,225,184,5,198,225,184,126,83,226,184,220,224,226,184,31,110,227,184,72,251,227,184,85,136,228,184,72,21,229,184,31,162,229,184,219,46,230,184,124,187,230,184,2,72,231,184,109,212,231,184,188,96,232,184,240,236,232,184,8,121,233,184,5,5,234,184,230,144,234,184,172,28,235,184,86,168,235,184,228,51,236,184,86,191,236,184,173,74,237,184,232,213,
237,184,6,97,238,184,9,236,238,184,240,118,239,184,186,1,240,184,105,140,240,184,251,22,241,184,112,161,241,184,202,43,242,184,7,182,242,184,40,64,243,184,44,202,243,184,19,84,244,184,222,221,244,184,140,103,245,184,30,241,245,184,146,122,246,184,234,3,247,184,37,141,247,184,67,22,248,184,68,159,248,184,40,40,249,184,238,176,249,184,152,57,250,184,36,194,250,184,147,74,251,184,229,210,251,184,25,91,252,184,48,227,252,184,42,107,253,184,6,243,253,184,196,122,254,184,100,2,255,184,231,137,255,184,166,
8,0,185,74,76,0,185,222,143,0,185,100,211,0,185,219,22,1,185,66,90,1,185,155,157,1,185,229,224,1,185,31,36,2,185,74,103,2,185,102,170,2,185,115,237,2,185,113,48,3,185,96,115,3,185,63,182,3,185,15,249,3,185,208,59,4,185,129,126,4,185,35,193,4,185,181,3,5,185,57,70,5,185,172,136,5,185,16,203,5,185,101,13,6,185,170,79,6,185,224,145,6,185,6,212,6,185,28,22,7,185,35,88,7,185,26,154,7,185,1,220,7,185,217,29,8,185,161,95,8,185,89,161,8,185,2,227,8,185,154,36,9,185,35,102,9,185,156,167,9,185,5,233,9,185,
94,42,10,185,167,107,10,185,224,172,10,185,9,238,10,185,34,47,11,185,43,112,11,185,36,177,11,185,13,242,11,185,230,50,12,185,174,115,12,185,103,180,12,185,15,245,12,185,167,53,13,185,47,118,13,185],"i8",4,y.a+870400);
Q([166,182,13,185,13,247,13,185,100,55,14,185,170,119,14,185,224,183,14,185,6,248,14,185,27,56,15,185,32,120,15,185,20,184,15,185,247,247,15,185,203,55,16,185,141,119,16,185,63,183,16,185,225,246,16,185,113,54,17,185,241,117,17,185,97,181,17,185,191,244,17,185,13,52,18,185,74,115,18,185,119,178,18,185,146,241,18,185,157,48,19,185,151,111,19,185,128,174,19,185,88,237,19,185,31,44,20,185,213,106,20,185,122,169,20,185,14,232,20,185,145,38,21,185,3,101,21,185,100,163,21,185,180,225,21,185,242,31,22,185,
32,94,22,185,60,156,22,185,71,218,22,185,65,24,23,185,41,86,23,185,1,148,23,185,199,209,23,185,123,15,24,185,30,77,24,185,176,138,24,185,49,200,24,185,160,5,25,185,253,66,25,185,73,128,25,185,132,189,25,185,173,250,25,185,197,55,26,185,202,116,26,185,191,177,26,185,161,238,26,185,114,43,27,185,50,104,27,185,223,164,27,185,123,225,27,185,6,30,28,185,126,90,28,185,229,150,28,185,57,211,28,185,124,15,29,185,173,75,29,185,205,135,29,185,218,195,29,185,213,255,29,185,191,59,30,185,150,119,30,185,91,179,
30,185,15,239,30,185,176,42,31,185,63,102,31,185,188,161,31,185,39,221,31,185,128,24,32,185,199,83,32,185,251,142,32,185,30,202,32,185,46,5,33,185,43,64,33,185,23,123,33,185,240,181,33,185,183,240,33,185,107,43,34,185,13,102,34,185,157,160,34,185,26,219,34,185,133,21,35,185,221,79,35,185,35,138,35,185,86,196,35,185,119,254,35,185,133,56,36,185,129,114,36,185,106,172,36,185,64,230,36,185,4,32,37,185,181,89,37,185,83,147,37,185,223,204,37,185,88,6,38,185,190,63,38,185,17,121,38,185,82,178,38,185,127,
235,38,185,154,36,39,185,162,93,39,185,151,150,39,185,121,207,39,185,72,8,40,185,4,65,40,185,173,121,40,185,68,178,40,185,199,234,40,185,55,35,41,185,148,91,41,185,222,147,41,185,20,204,41,185,56,4,42,185,72,60,42,185,70,116,42,185,48,172,42,185,6,228,42,185,202,27,43,185,122,83,43,185,23,139,43,185,161,194,43,185,23,250,43,185,122,49,44,185,202,104,44,185,6,160,44,185,46,215,44,185,68,14,45,185,69,69,45,185,52,124,45,185,14,179,45,185,214,233,45,185,137,32,46,185,41,87,46,185,182,141,46,185,47,196,
46,185,148,250,46,185,229,48,47,185,35,103,47,185,78,157,47,185,100,211,47,185,103,9,48,185,86,63,48,185,49,117,48,185,248,170,48,185,171,224,48,185,75,22,49,185,215,75,49,185,79,129,49,185,179,182,49,185,3,236,49,185,63,33,50,185,103,86,50,185,123,139,50,185,123,192,50,185,103,245,50,185,63,42,51,185,3,95,51,185,178,147,51,185,78,200,51,185,214,252,51,185,73,49,52,185,168,101,52,185,243,153,52,185,42,206,52,185,76,2,53,185,90,54,53,185,84,106,53,185,58,158,53,185,11,210,53,185,200,5,54,185,113,57,
54,185,5,109,54,185,133,160,54,185,240,211,54,185,71,7,55,185,138,58,55,185,184,109,55,185,209,160,55,185,214,211,55,185,198,6,56,185,162,57,56,185,106,108,56,185,28,159,56,185,186,209,56,185,68,4,57,185,184,54,57,185,24,105,57,185,100,155,57,185,154,205,57,185,188,255,57,185,201,49,58,185,194,99,58,185,165,149,58,185,116,199,58,185,46,249,58,185,211,42,59,185,99,92,59,185,223,141,59,185,69,191,59,185,150,240,59,185,211,33,60,185,250,82,60,185,13,132,60,185,11,181,60,185,243,229,60,185,199,22,61,
185,133,71,61,185,46,120,61,185,194,168,61,185,66,217,61,185,172,9,62,185,0,58,62,185,64,106,62,185,106,154,62,185,128,202,62,185,128,250,62,185,106,42,63,185,64,90,63,185,0,138,63,185,171,185,63,185,65,233,63,185,193,24,64,185,44,72,64,185,129,119,64,185,193,166,64,185,236,213,64,185,1,5,65,185,1,52,65,185,236,98,65,185,192,145,65,185,128,192,65,185,42,239,65,185,190,29,66,185,61,76,66,185,166,122,66,185,249,168,66,185,55,215,66,185,96,5,67,185,114,51,67,185,112,97,67,185,87,143,67,185,41,189,67,
185,229,234,67,185,139,24,68,185,27,70,68,185,150,115,68,185,251,160,68,185,74,206,68,185,131,251,68,185,167,40,69,185,180,85,69,185,172,130,69,185,142,175,69,185,90,220,69,185,16,9,70,185,176,53,70,185,58,98,70,185,174,142,70,185,13,187,70,185,85,231,70,185,135,19,71,185,163,63,71,185,169,107,71,185,153,151,71,185,115,195,71,185,55,239,71,185,228,26,72,185,124,70,72,185,253,113,72,185,105,157,72,185,190,200,72,185,252,243,72,185,37,31,73,185,55,74,73,185,51,117,73,185,25,160,73,185,233,202,73,185,
162,245,73,185,69,32,74,185,210,74,74,185,72,117,74,185,168,159,74,185,241,201,74,185,36,244,74,185,65,30,75,185,71,72,75,185,55,114,75,185,16,156,75,185,211,197,75,185,128,239,75,185,21,25,76,185,149,66,76,185,254,107,76,185,80,149,76,185,139,190,76,185,177,231,76,185,191,16,77,185,183,57,77,185,152,98,77,185,99,139,77,185,23,180,77,185,180,220,77,185,58,5,78,185,170,45,78,185,3,86,78,185,70,126,78,185,113,166,78,185,134,206,78,185,132,246,78,185,107,30,79,185,60,70,79,185,246,109,79,185,152,149,
79,185,36,189,79,185,153,228,79,185,247,11,80,185,63,51,80,185,111,90,80,185,136,129,80,185,139,168,80,185,118,207,80,185,75,246,80,185,8,29,81,185,175,67,81,185,62,106,81,185,183,144,81,185,24,183,81,185,99,221,81,185,150,3,82,185,178,41,82,185,183,79,82,185,165,117,82,185,124,155,82,185,60,193,82,185,228,230,82,185,117,12,83,185,240,49,83,185,82,87,83,185,158,124,83,185,211,161,83,185,240,198,83,185,246,235,83,185,229,16,84,185,188,53,84,185,124,90,84,185,37,127,84,185,183,163,84,185,49,200,84,
185,148,236,84,185,223,16,85,185,19,53,85,185,48,89,85,185,53,125,85,185,35,161,85,185,249,196,85,185,184,232,85,185,96,12,86,185,240,47,86,185,104,83,86,185,201,118,86,185,19,154,86,185,69,189,86,185,95,224,86,185,98,3,87,185,78,38,87,185,33,73,87,185,222,107,87,185,130,142,87,185,15,177,87,185,133,211,87,185,226,245,87,185,40,24,88,185,87,58,88,185,109,92,88,185,108,126,88,185,84,160,88,185,35,194,88,185,219,227,88,185,123,5,89,185,4,39,89,185,116,72,89,185,205,105,89,185,14,139,89,185,56,172,89,
185,73,205,89,185,67,238,89,185,37,15,90,185,239,47,90,185,161,80,90,185,59,113,90,185,189,145,90,185,40,178,90,185,122,210,90,185,181,242,90,185,216,18,91,185,226,50,91,185,213,82,91,185,176,114,91,185,115,146,91,185,30,178,91,185,177,209,91,185,43,241,91,185,142,16,92,185,217,47,92,185,12,79,92,185,39,110,92,185,41,141,92,185,20,172,92,185,230,202,92,185,161,233,92,185,67,8,93,185,205,38,93,185,63,69,93,185,153,99,93,185,219,129,93,185,4,160,93,185,22,190,93,185,15,220,93,185,240,249,93,185,185,
23,94,185,105,53,94,185,1,83,94,185,130,112,94,185,233,141,94,185,57,171,94,185,112,200,94,185,143,229,94,185,150,2,95,185,133,31,95,185,91,60,95,185,24,89,95,185,190,117,95,185,75,146,95,185,192,174,95,185,28,203,95,185,96,231,95,185,140,3,96,185,159,31,96,185,154,59,96,185,125,87,96,185,71,115,96,185,248,142,96,185,145,170,96,185,18,198,96,185,122,225,96,185,202,252,96,185,1,24,97,185,32,51,97,185,39,78,97,185,20,105,97,185,234,131,97,185,166,158,97,185,75,185,97,185,214,211,97,185,73,238,97,185,
164,8,98,185,230,34,98,185,15,61,98,185,32,87,98,185,24,113,98,185,248,138,98,185,191,164,98,185,109,190,98,185,3,216,98,185,128,241,98,185,229,10,99,185,48,36,99,185,99,61,99,185,126,86,99,185,128,111,99,185,105,136,99,185,57,161,99,185,240,185,99,185,143,210,99,185,21,235,99,185,131,3,100,185,216,27,100,185,19,52,100,185,55,76,100,185,65,100,100,185,51,124,100,185,11,148,100,185,203,171,100,185,115,195,100,185,1,219,100,185,118,242,100,185,211,9,101,185,23,33,101,185,66,56,101,185,84,79,101,185,
78,102,101,185,46,125,101,185,246,147,101,185,164,170,101,185,58,193,101,185,183,215,101,185,27,238,101,185,102,4,102,185,152,26,102,185,178,48,102,185,178,70,102,185,153,92,102,185,104,114,102,185,29,136,102,185,186,157,102,185,61,179,102,185,168,200,102,185,249,221,102,185,50,243,102,185,82,8,103,185,88,29,103,185,70,50,103,185,26,71,103,185,214,91,103,185,120,112,103,185,2,133,103,185,114,153,103,185,201,173,103,185,8,194,103,185,45,214,103,185,57,234,103,185,44,254,103,185,6,18,104,185,199,37,
104,185,111,57,104,185,253,76,104,185,115,96,104,185,207,115,104,185,19,135,104,185,61,154,104,185,78,173,104,185,70,192,104,185,36,211,104,185,234,229,104,185,150,248,104,185,42,11,105,185,164,29,105,185,5,48,105,185,76,66,105,185,123,84,105,185,144,102,105,185,140,120,105,185,111,138,105,185,57,156,105,185,234,173,105,185,129,191,105,185,255,208,105,185,100,226,105,185,175,243,105,185,226,4,106,185,251,21,106,185,251,38,106,185,225,55,106,185,174,72,106,185,98,89,106,185,253,105,106,185,127,122,
106,185,231,138,106,185,54,155,106,185,107,171,106,185,136,187,106,185,139,203,106,185,116,219,106,185,69,235,106,185,252,250,106,185,153,10,107,185,30,26,107,185,137,41,107,185,219,56,107,185,19,72,107,185,50,87,107,185,56,102,107,185,36,117,107,185,247,131,107,185,176,146,107,185,81,161,107,185,215,175,107,185,69,190,107,185,153,204,107,185,212,218,107,185,245,232,107,185,253,246,107,185,235,4,108,185,193,18,108,185,124,32,108,185,31,46,108,185,167,59,108,185,23,73,108,185,109,86,108,185,170,99,
108,185,205,112,108,185,215,125,108,185,199,138,108,185,158,151,108,185,91,164,108,185,255,176,108,185,138,189,108,185,251,201,108,185,83,214,108,185,145,226,108,185,181,238,108,185,193,250,108,185,179,6,109,185,139,18,109,185,74,30,109,185,239,41,109,185,123,53,109,185,237,64,109,185,70,76,109,185,134,87,109,185,172,98,109,185,184,109,109,185,171,120,109,185,132,131,109,185,68,142,109,185,235,152,109,185,120,163,109,185,235,173,109,185,69,184,109,185,134,194,109,185,172,204,109,185,186,214,109,185,
174,224,109,185,136,234,109,185,73,244,109,185,240,253,109,185,126,7,110,185,242,16,110,185,77,26,110,185,142,35,110,185,181,44,110,185,195,53,110,185,184,62,110,185,147,71,110,185,84,80,110,185,252,88,110,185,138,97,110,185,255,105,110,185,90,114,110,185,156,122,110,185,196,130,110,185,210,138,110,185,199,146,110,185,163,154,110,185,101,162,110,185,13,170,110,185,156,177,110,185,17,185,110,185,108,192,110,185,175,199,110,185,215,206,110,185,230,213,110,185,219,220,110,185,183,227,110,185,121,234,
110,185,34,241,110,185,177,247,110,185,38,254,110,185,130,4,111,185,196,10,111,185,237,16,111,185,252,22,111,185,242,28,111,185,206,34,111,185,144,40,111,185,57,46,111,185,200,51,111,185,62,57,111,185,154,62,111,185,220,67,111,185,5,73,111,185,20,78,111,185,10,83,111,185,230,87,111,185,169,92,111,185,82,97,111,185,225,101,111,185,87,106,111,185,179,110,111,185,246,114,111,185,31,119,111,185,46,123,111,185,36,127,111,185,1,131,111,185,195,134,111,185,108,138,111,185,252,141,111,185,114,145,111,185,
206,148,111,185,17,152,111,185,58,155,111,185,74,158,111,185,64,161,111,185,29,164,111,185,224,166,111,185,137,169,111,185,25,172,111,185,143,174,111,185,235,176,111,185,46,179,111,185,88,181,111,185,104,183,111,185,94,185,111,185,59,187,111,185,254,188,111,185,168,190,111,185,56,192,111,185,174,193,111,185,11,195,111,185,79,196,111,185,120,197,111,185,137,198,111,185,127,199,111,185,92,200,111,185,32,201,111,185,202,201,111,185,90,202,111,185,209,202,111,185,47,203,111,185,115,203,111,185,157,203,
111,185,174,203,111,185,165,203,111,185,130,203,111,185,71,203,111,185,241,202,111,185,130,202,111,185,250,201,111,185,88,201,111,185,156,200,111,185,199,199,111,185,216,198,111,185,208,197,111,185,175,196,111,185,116,195,111,185,31,194,111,185,177,192,111,185,41,191,111,185,136,189,111,185,205,187,111,185,249,185,111,185,11,184,111,185,4,182,111,185,228,179,111,185,169,177,111,185,86,175,111,185,233,172,111,185,98,170,111,185,194,167,111,185,8,165,111,185,53,162,111,185,73,159,111,185,67,156,111,
185,35,153,111,185,234,149,111,185,152,146,111,185,44,143,111,185,167,139,111,185,8,136,111,185,80,132,111,185,127,128,111,185,148,124,111,185,143,120,111,185,113,116,111,185,58,112,111,185,233,107,111,185,127,103,111,185,252,98,111,185,95,94,111,185,168,89,111,185,216,84,111,185,239,79,111,185,237,74,111,185,209,69,111,185,155,64,111,185,77,59,111,185,228,53,111,185,99,48,111,185,200,42,111,185,20,37,111,185,70,31,111,185,95,25,111,185,95,19,111,185,69,13,111,185,18,7,111,185,198,0,111,185,96,250,
110,185,225,243,110,185,73,237,110,185,151,230,110,185,204,223,110,185,232,216,110,185,235,209,110,185,212,202,110,185,163,195,110,185,90,188,110,185,247,180,110,185,123,173,110,185,230,165,110,185,55,158,110,185,111,150,110,185,142,142,110,185,148,134,110,185,128,126,110,185,83,118,110,185,13,110,110,185,174,101,110,185,53,93,110,185,163,84,110,185,248,75,110,185,52,67,110,185,86,58,110,185,96,49,110,185,80,40,110,185,39,31,110,185,228,21,110,185,137,12,110,185,20,3,110,185,134,249,109,185,223,239,
109,185,31,230,109,185,70,220,109,185,84,210,109,185,72,200,109,185,35,190,109,185,229,179,109,185,142,169,109,185,30,159,109,185,149,148,109,185,243,137,109,185,56,127,109,185,99,116,109,185,117,105,109,185,111,94,109,185,79,83,109,185,22,72,109,185,196,60,109,185,90,49,109,185,214,37,109,185,57,26,109,185,131,14,109,185,180,2,109,185,204,246,108,185,202,234,108,185,176,222,108,185,125,210,108,185,49,198,108,185,204,185,108,185,78,173,108,185,183,160,108,185,7,148,108,185,62,135,108,185,92,122,108,
185,98,109,108,185,78,96,108,185,33,83,108,185,220,69,108,185,125,56,108,185,6,43,108,185,117,29,108,185,204,15,108,185,10,2,108,185,47,244,107,185,59,230,107,185,47,216,107,185,9,202,107,185,203,187,107,185,115,173,107,185,3,159,107,185,123,144,107,185,217,129,107,185,30,115,107,185,75,100,107,185,95,85,107,185,90,70,107,185,61,55,107,185,6,40,107,185,183,24,107,185,79,9,107,185,206,249,106,185,53,234,106,185,131,218,106,185,184,202,106,185,213,186,106,185,216,170,106,185,195,154,106,185,150,138,
106,185,80,122,106,185,241,105,106,185,121,89,106,185,233,72,106,185,64,56,106,185,126,39,106,185,164,22,106,185,178,5,106,185,166,244,105,185,130,227,105,185,70,210,105,185,241,192,105,185,131,175,105,185,253,157,105,185,94,140,105,185,167,122,105,185,215,104,105,185,239,86,105,185,238,68,105,185,212,50,105,185,162,32,105,185,88,14,105,185,245,251,104,185,122,233,104,185,230,214,104,185,58,196,104,185,117,177,104,185,152,158,104,185,163,139,104,185,149,120,104,185,111,101,104,185,48,82,104,185,217,
62,104,185,105,43,104,185,226,23,104,185,66,4,104,185,137,240,103,185,184,220,103,185,207,200,103,185,206,180,103,185,180,160,103,185,130,140,103,185,56,120,103,185,213,99,103,185,90,79,103,185,199,58,103,185,28,38,103,185,88,17,103,185,125,252,102,185,137,231,102,185,125,210,102,185,88,189,102,185,28,168,102,185,199,146,102,185,90,125,102,185,213,103,102,185,56,82,102,185,131,60,102,185,182,38,102,185,208,16,102,185,211,250,101,185,189,228,101,185,144,206,101,185,74,184,101,185,236,161,101,185,118,
139,101,185,233,116,101,185,67,94,101,185,133,71,101,185,175,48,101,185,193,25,101,185,188,2,101,185,158,235,100,185,104,212,100,185,27,189,100,185,181,165,100,185,56,142,100,185,163,118,100,185,245,94,100,185,48,71,100,185,83,47,100,185,95,23,100,185,82,255,99,185,46,231,99,185,241,206,99,185,157,182,99,185,49,158,99,185,174,133,99,185,18,109,99,185,95,84,99,185,148,59,99,185,178,34,99,185,183,9,99,185,165,240,98,185,124,215,98,185,58,190,98,185,225,164,98,185,112,139,98,185,232,113,98,185,72,88,
98,185,144,62,98,185,193,36,98,185,218,10,98,185,220,240,97,185,198,214,97,185,152,188,97,185,83,162,97,185,247,135,97,185,130,109,97,185,247,82,97,185,84,56,97,185,153,29,97,185,199,2,97,185,221,231,96,185,220,204,96,185,196,177,96,185,148,150,96,185,77,123,96,185,238,95,96,185,120,68,96,185,235,40,96,185,70,13,96,185,138,241,95,185,182,213,95,185,204,185,95,185,202,157,95,185,176,129,95,185,128,101,95,185,56,73,95,185,217,44,95,185,99,16,95,185,213,243,94,185,48,215,94,185,116,186,94,185,161,157,
94,185,183,128,94,185,182,99,94,185,157,70,94,185,110,41,94,185,39,12,94,185,201,238,93,185,84,209,93,185,200,179,93,185,37,150,93,185,107,120,93,185,154,90,93,185,178,60,93,185,178,30,93,185,156,0,93,185,111,226,92,185,43,196,92,185,208,165,92,185,94,135,92,185,214,104,92,185,54,74,92,185,127,43,92,185,178,12,92,185,206,237,91,185,211,206,91,185,193,175,91,185,152,144,91,185,88,113,91,185,2,82,91,185,149,50,91,185,17,19,91,185,119,243,90,185,197,211,90,185,253,179,90,185,31,148,90,185,41,116,90,
185,29,84,90,185,251,51,90,185,193,19,90,185,113,243,89,185,11,211,89,185,142,178,89,185,250,145,89,185,80,113,89,185,143,80,89,185,184,47,89,185,202,14,89,185,198,237,88,185,171,204,88,185,122,171,88,185,50,138,88,185,212,104,88,185,96,71,88,185,213,37,88,185,51,4,88,185,124,226,87,185,174,192,87,185,201,158,87,185,207,124,87,185,190,90,87,185,150,56,87,185,89,22,87,185,5,244,86,185,155,209,86,185,27,175,86,185,132,140,86,185,216,105,86,185,21,71,86,185,60,36,86,185,77,1,86,185,71,222,85,185,44,
187,85,185,251,151,85,185,179,116,85,185,85,81,85,185,226,45,85,185,88,10,85,185,184,230,84,185,3,195,84,185,55,159,84,185,85,123,84,185,94,87,84,185,80,51,84,185,45,15,84,185,243,234,83,185,164,198,83,185,63,162,83,185,196,125,83,185,51,89,83,185,140,52,83,185,208,15,83,185,254,234,82,185,22,198,82,185,24,161,82,185,5,124,82,185,220,86,82,185,157,49,82,185,72,12,82,185,222,230,81,185,94,193,81,185,201,155,81,185,30,118,81,185,93,80,81,185,135,42,81,185,155,4,81,185,154,222,80,185,131,184,80,185,
87,146,80,185,21,108,80,185,189,69,80,185,81,31,80,185,206,248,79,185,55,210,79,185,138,171,79,185,199,132,79,185,240,93,79,185,2,55,79,185,0,16,79,185,232,232,78,185,187,193,78,185,121,154,78,185,33,115,78,185,180,75,78,185,50,36,78,185,155,252,77,185,239,212,77,185,45,173,77,185,86,133,77,185,106,93,77,185,105,53,77,185,83,13,77,185,40,229,76,185,232,188,76,185,147,148,76,185,40,108,76,185,169,67,76,185,21,27,76,185,107,242,75,185,173,201,75,185,218,160,75,185,242,119,75,185,245,78,75,185,227,37,
75,185,188,252,74,185,129,211,74,185,49,170,74,185,204,128,74,185,82,87,74,185,195,45,74,185,32,4,74,185,103,218,73,185,155,176,73,185,185,134,73,185,195,92,73,185,184,50,73,185,152,8,73,185,100,222,72,185,28,180,72,185,190,137,72,185,77,95,72,185,198,52,72,185,43,10,72,185,124,223,71,185,184,180,71,185,224,137,71,185,243,94,71,185,242,51,71,185,221,8,71,185,179,221,70,185,116,178,70,185,34,135,70,185,187,91,70,185,64,48,70,185,176,4,70,185,12,217,69,185,84,173,69,185,136,129,69,185,167,85,69,185,
179,41,69,185,170,253,68,185,141,209,68,185,92,165,68,185,23,121,68,185,190,76,68,185,80,32,68,185,207,243,67,185,58,199,67,185,144,154,67,185,211,109,67,185,1,65,67,185,28,20,67,185,35,231,66,185,22,186,66,185,245,140,66,185,192,95,66,185,119,50,66,185,27,5,66,185,171,215,65,185,38,170,65,185,143,124,65,185,227,78,65,185,36,33,65,185,81,243,64,185,106,197,64,185,112,151,64,185,98,105,64,185,64,59,64,185,11,13,64,185,194,222,63,185,102,176,63,185,246,129,63,185,114,83,63,185,219,36,63,185,49,246,
62,185,115,199,62,185,162,152,62,185,189,105,62,185,197,58,62,185,186,11,62,185,155,220,61,185,105,173,61,185,36,126,61,185,203,78,61,185,95,31,61,185,224,239,60,185,78,192,60,185,168,144,60,185,239,96,60,185,35,49,60,185,68,1,60,185,82,209,59,185,77,161,59,185,53,113,59,185,9,65,59,185,203,16,59,185,122,224,58,185,21,176,58,185,158,127,58,185,20,79,58,185,118,30,58,185,198,237,57,185,3,189,57,185,45,140,57,185,69,91,57,185,73,42,57,185,59,249,56,185,26,200,56,185,230,150,56,185,160,101,56,185,70,
52,56,185,218,2,56,185,92,209,55,185,203,159,55,185,39,110,55,185,113,60,55,185,168,10,55,185,204,216,54,185,222,166,54,185,221,116,54,185,202,66,54,185,165,16,54,185,109,222,53,185,35,172,53,185,198,121,53,185,87,71,53,185,213,20,53,185,66,226,52,185,156,175,52,185,227,124,52,185,25,74,52,185,60,23,52,185,77,228,51,185,75,177,51,185,56,126,51,185,19,75,51,185,219,23,51,185,145,228,50,185,53,177,50,185,199,125,50,185,71,74,50,185,181,22,50,185,17,227,49,185,91,175,49,185,148,123,49,185,186,71,49,
185,206,19,49,185,209,223,48,185,193,171,48,185,160,119,48,185,109,67,48,185,40,15,48,185,210,218,47,185,105,166,47,185,239,113,47,185,100,61,47,185,198,8,47,185,23,212,46,185,87,159,46,185,133,106,46,185,161,53,46,185,172,0,46,185,165,203,45,185,140,150,45,185,99,97,45,185,39,44,45,185,219,246,44,185,124,193,44,185,13,140,44,185,140,86,44,185,250,32,44,185,86,235,43,185,162,181,43,185,220,127,43,185,4,74,43,185,28,20,43,185,34,222,42,185,23,168,42,185,251,113,42,185,206,59,42,185,144,5,42,185,64,
207,41,185,224,152,41,185,110,98,41,185,236,43,41,185,89,245,40,185,180,190,40,185,255,135,40,185,57,81,40,185,98,26,40,185,122,227,39,185,129,172,39,185,119,117,39,185,93,62,39,185,50,7,39,185,246,207,38,185,169,152,38,185,76,97,38,185,222,41,38,185,96,242,37,185,208,186,37,185,48,131,37,185,128,75,37,185,191,19,37,185,238,219,36,185,12,164,36,185,25,108,36,185,23,52,36,185,3,252,35,185,224,195,35,185,171,139,35,185,103,83,35,185,18,27,35,185,173,226,34,185,56,170,34,185,178,113,34,185,29,57,34,
185,119,0,34,185,193,199,33,185,250,142,33,185,36,86,33,185,61,29,33,185,71,228,32,185,64,171,32,185,41,114,32,185,3,57,32,185,204,255,31,185,133,198,31,185,47,141,31,185,200,83,31,185,82,26,31,185,204,224,30,185,54,167,30,185,144,109,30,185,218,51,30,185,21,250,29,185,64,192,29,185,91,134,29,185,103,76,29,185,99,18,29,185,79,216,28,185,44,158,28,185,249,99,28,185,183,41,28,185,101,239,27,185,3,181,27,185,146,122,27,185,18,64,27,185,130,5,27,185,227,202,26,185,52,144,26,185,118,85,26,185,169,26,26,
185,205,223,25,185,225,164,25,185,230,105,25,185,220,46,25,185,194,243,24,185,154,184,24,185,98,125,24,185,27,66,24,185,197,6,24,185,96,203,23,185,236,143,23,185,105,84,23,185,215,24,23,185,54,221,22,185,134,161,22,185,199,101,22,185,250,41,22,185,29,238,21,185,50,178,21,185,55,118,21,185,47,58,21,185,23,254,20,185,240,193,20,185,187,133,20,185,119,73,20,185,37,13,20,185,196,208,19,185,84,148,19,185,214,87,19,185,73,27,19,185,174,222,18,185,4,162,18,185,76,101,18,185,133,40,18,185,176,235,17,185,
205,174,17,185,219,113,17,185,219,52,17,185,204,247,16,185,175,186,16,185,132,125,16,185,75,64,16,185,4,3,16,185,174,197,15,185,75,136,15,185,217,74,15,185,89,13,15,185,203,207,14,185,47,146,14,185,133,84,14,185,205,22,14,185,7,217,13,185,51,155,13,185,81,93,13,185,97,31,13,185,100,225,12,185,88,163,12,185,63,101,12,185,24,39,12,185,227,232,11,185,161,170,11,185,81,108,11,185,243,45,11,185,136,239,10,185,15,177,10,185,136,114,10,185,244,51,10,185,82,245,9,185,163,182,9,185,231,119,9,185,29,57,9,185,
69,250,8,185,96,187,8,185,110,124,8,185,110,61,8,185,97,254,7,185,71,191,7,185,32,128,7,185,235,64,7,185,169,1,7,185,90,194,6,185,254,130,6,185,149,67,6,185,30,4,6,185,155,196,5,185,10,133,5,185,109,69,5,185,194,5,5,185,11,198,4,185,70,134,4,185,117,70,4,185,151,6,4,185,172,198,3,185,180,134,3,185,176,70,3,185,158,6,3,185,128,198,2,185,85,134,2,185,30,70,2,185,218,5,2,185,137,197,1,185,43,133,1,185,194,68,1,185,75,4,1,185,200,195,0,185,57,131,0,185,157,66,0,185,244,1,0,185,127,130,255,184,253,0,255,
184,98,127,254,184,174,253,253,184,226,123,253,184,253,249,252,184,0,120,252,184,235,245,251,184,189,115,251,184,119,241,250,184,24,111,250,184,161,236,249,184,19,106,249,184,108,231,248,184,173,100,248,184,214,225,247,184,231,94,247,184,225,219,246,184,194,88,246,184,140,213,245,184,62,82,245,184,217,206,244,184,92,75,244,184,199,199,243,184,27,68,243,184,88,192,242,184,125,60,242,184,139,184,241,184,130,52,241,184,97,176,240,184,42,44,240,184,219,167,239,184,117,35,239,184,249,158,238,184,101,26,
238,184,187,149,237,184,250,16,237,184,34,140,236,184,52,7,236,184,47,130,235,184,19,253,234,184,225,119,234,184,153,242,233,184,58,109,233,184,196,231,232,184,57,98,232,184,151,220,231,184,223,86,231,184,18,209,230,184,46,75,230,184,52,197,229,184,36,63,229,184,254,184,228,184,195,50,228,184,113,172,227,184,10,38,227,184,142,159,226,184,252,24,226,184,84,146,225,184,151,11,225,184,196,132,224,184,220,253,223,184,223,118,223,184,205,239,222,184,165,104,222,184,105,225,221,184,23,90,221,184,176,210,
220,184,53,75,220,184,164,195,219,184,255,59,219,184,69,180,218,184,118,44,218,184,146,164,217,184,154,28,217,184,142,148,216,184,109,12,216,184,55,132,215,184,237,251,214,184,143,115,214,184,29,235,213,184,150,98,213,184,251,217,212,184,77,81,212,184,138,200,211,184,179,63,211,184,201,182,210,184,202,45,210,184,184,164,209,184,146,27,209,184,88,146,208,184,11,9,208,184,171,127,207,184,54,246,206,184,175,108,206,184,20,227,205,184,101,89,205,184,164,207,204,184,207,69,204,184,231,187,203,184,236,
49,203,184,222,167,202,184,190,29,202,184,138,147,201,184,67,9,201,184,234,126,200,184,126,244,199,184,255,105,199,184,110,223,198,184,202,84,198,184,19,202,197,184,74,63,197,184,111,180,196,184,130,41,196,184,130,158,195,184,112,19,195,184,76,136,194,184,22,253,193,184,206,113,193,184,116,230,192,184,8,91,192,184,138,207,191,184,251,67,191,184,90,184,190,184,167,44,190,184,226,160,189,184,12,21,189,184,37,137,188,184,44,253,187,184,34,113,187,184,6,229,186,184,217,88,186,184,155,204,185,184,76,64,
185,184,236,179,184,184,123,39,184,184,249,154,183,184,102,14,183,184,194,129,182,184,14,245,181,184,73,104,181,184,115,219,180,184,140,78,180,184,150,193,179,184,142,52,179,184,118,167,178,184,78,26,178,184,22,141,177,184,205,255,176,184,117,114,176,184,12,229,175,184,147,87,175,184,10,202,174,184,113,60,174,184,200,174,173,184,16,33,173,184,72,147,172,184,112,5,172,184,137,119,171,184,146,233,170,184,139,91,170,184,117,205,169,184,80,63,169,184,27,177,168,184,215,34,168,184,132,148,167,184,34,6,
167,184,177,119,166,184,48,233,165,184,161,90,165,184,3,204,164,184,86,61,164,184,154,174,163,184,208,31,163,184,246,144,162,184,15,2,162,184,24,115,161,184,20,228,160,184,1,85,160,184,223,197,159,184,175,54,159,184,113,167,158,184,37,24,158,184,203,136,157,184,99,249,156,184,236,105,156,184,104,218,155,184,214,74,155,184,54,187,154,184,137,43,154,184,205,155,153,184,5,12,153,184,46,124,152,184,74,236,151,184,89,92,151,184,90,204,150,184,78,60,150,184,53,172,149,184,14,28,149,184,218,139,148,184,
154,251,147,184,76,107,147,184,241,218,146,184,138,74,146,184,21,186,145,184,148,41,145,184,6,153,144,184,108,8,144,184,197,119,143,184,17,231,142,184,81,86,142,184,133,197,141,184,172,52,141,184,199,163,140,184,213,18,140,184,216,129,139,184,206,240,138,184,185,95,138,184,151,206,137,184,106,61,137,184,49,172,136,184,235,26,136,184,155,137,135,184,62,248,134,184,214,102,134,184,99,213,133,184,227,67,133,184,89,178,132,184,195,32,132,184,34,143,131,184,118,253,130,184,190,107,130,184,251,217,129,
184,46,72,129,184,85,182,128,184,113,36,128,184,5,37,127,184,19,1,126,184,11,221,124,184,237,184,123,184,187,148,122,184,115,112,121,184,22,76,120,184,164,39,119,184,30,3,118,184,131,222,116,184,212,185,115,184,16,149,114,184,56,112,113,184,75,75,112,184,75,38,111,184,55,1,110,184,15,220,108,184,212,182,107,184,132,145,106,184,34,108,105,184,172,70,104,184,36,33,103,184,136,251,101,184,217,213,100,184,23,176,99,184,67,138,98,184,93,100,97,184,100,62,96,184,88,24,95,184,59,242,93,184,11,204,92,184,
202,165,91,184,119,127,90,184,18,89,89,184,156,50,88,184,20,12,87,184,123,229,85,184,209,190,84,184,21,152,83,184,73,113,82,184,108,74,81,184,127,35,80,184,128,252,78,184,114,213,77,184,83,174,76,184,36,135,75,184,229,95,74,184,150,56,73,184,55,17,72,184,201,233,70,184,75,194,69,184,189,154,68,184,33,115,67,184,117,75,66,184,186,35,65,184,240,251,63,184,23,212,62,184,48,172,61,184,58,132,60,184,54,92,59,184,35,52,58,184,2,12,57,184,211,227,55,184,151,187,54,184,76,147,53,184,244,106,52,184,142,66,
51,184,27,26,50,184,154,241,48,184,12,201,47,184,113,160,46,184,202,119,45,184,21,79,44,184,84,38,43,184,134,253,41,184,172,212,40,184,197,171,39,184,210,130,38,184,211,89,37,184,201,48,36,184,178,7,35,184,144,222,33,184,98,181,32,184,41,140,31,184,228,98,30,184,148,57,29,184,57,16,28,184,211,230,26,184,99,189,25,184,231,147,24,184,97,106,23,184,209,64,22,184,54,23,21,184,146,237,19,184,227,195,18,184,42,154,17,184,103,112,16,184,155,70,15,184,197,28,14,184,229,242,12,184,252,200,11,184,10,159,10,
184,15,117,9,184,11,75,8,184,254,32,7,184,233,246,5,184,203,204,4,184,164,162,3,184,117,120,2,184,62,78,1,184,255,35,0,184,112,243,253,183,210,158,251,183,37,74,249,183,104,245,246,183,157,160,244,183,195,75,242,183,219,246,239,183,228,161,237,183,224,76,235,183,205,247,232,183,174,162,230,183,129,77,228,183,72,248,225,183,1,163,223,183,175,77,221,183,80,248,218,183,229,162,216,183,110,77,214,183,237,247,211,183,96,162,209,183,200,76,207,183,37,247,204,183,120,161,202,183,193,75,200,183,0,246,197,
183,53,160,195,183,97,74,193,183,131,244,190,183,157,158,188,183,174,72,186,183,183,242,183,183,183,156,181,183,176,70,179,183,160,240,176,183,138,154,174,183,108,68,172,183,72,238,169,183,28,152,167,183,234,65,165,183,178,235,162,183,117,149,160,183,49,63,158,183,232,232,155,183,154,146,153,183,71,60,151,183,239,229,148,183,147,143,146,183,50,57,144,183,206,226,141,183,102,140,139,183,251,53,137,183,140,223,134,183,27,137,132,183,166,50,130,183,96,184,127,183,110,11,123,183,120,94,118,183,127,177,
113,183,131,4,109,183,133,87,104,183,133,170,99,183,132,253,94,183,129,80,90,183,127,163,85,183,124,246,80,183,122,73,76,183,121,156,71,183,122,239,66,183,125,66,62,183,130,149,57,183,139,232,52,183,151,59,48,183,167,142,43,183,188,225,38,183,214,52,34,183,245,135,29,183,27,219,24,183,71,46,20,183,122,129,15,183,181,212,10,183,248,39,6,183,67,123,1,183,47,157,249,182,236,67,240,182,188,234,230,182,162,145,221,182,157,56,212,182,176,223,202,182,219,134,193,182,31,46,184,182,125,213,174,182,246,124,
165,182,139,36,156,182,61,204,146,182,14,116,137,182,253,27,128,182,25,136,109,182,122,216,90,182,31,41,72,182,10,122,53,182,62,203,34,182,187,28,16,182,9,221,250,181,55,129,213,181,6,38,176,181,121,203,138,181,39,227,74,181,180,48,0,181,131,254,85,180,86,128,169,51,141,188,191,52,11,139,42,53,80,54,117,53,7,240,159,53,30,68,197,53,105,151,234,53,243,244,7,54,199,157,26,54,47,70,45,54,42,238,63,54,181,149,82,54,206,60,101,54,116,227,119,54,210,68,133,54,174,151,142,54,78,234,151,54,175,60,161,54,
210,142,170,54,181,224,179,54,88,50,189,54,184,131,198,54,214,212,207,54,176,37,217,54,70,118,226,54,149,198,235,54,158,22,245,54,96,102,254,54,236,218,3,55,132,130,8,55,246,41,13,55,66,209,17,55,105,120,22,55,104,31,27,55,64,198,31,55,240,108,36,55,120,19,41,55,216,185,45,55,14,96,50,55,26,6,55,55,252,171,59,55,179,81,64,55,63,247,68,55,160,156,73,55,212,65,78,55,219,230,82,55,181,139,87,55,98,48,92,55,224,212,96,55,48,121,101,55,81,29,106,55,66,193,110,55,3,101,115,55,147,8,120,55,242,171,124,55,
144,167,128,55,13,249,130,55,114,74,133,55,189,155,135,55,238,236,137,55,5,62,140,55,1,143,142,55,228,223,144,55,171,48,147,55,88,129,149,55,233,209,151,55,95,34,154,55,185,114,156,55,247,194,158,55,24,19,161,55,30,99,163,55,6,179,165,55,210,2,168,55,128,82,170,55,17,162,172,55,132,241,174,55,218,64,177,55,17,144,179,55,42,223,181,55,36,46,184,55,255,124,186,55,187,203,188,55,87,26,191,55,212,104,193,55,49,183,195,55,110,5,198,55,139,83,200,55,134,161,202,55,98,239,204,55,27,61,207,55,180,138,209,
55,43,216,211,55,128,37,214,55,179,114,216,55,196,191,218,55,178,12,221,55,126,89,223,55,38,166,225,55,171,242,227,55,13,63,230,55,74,139,232,55,100,215,234,55,90,35,237,55,43,111,239,55,215,186,241,55,94,6,244,55,192,81,246,55,253,156,248,55,20,232,250,55,5,51,253,55,208,125,255,55,58,228,0,56,121,9,2,56,164,46,3,56,188,83,4,56,192,120,5,56,176,157,6,56,141,194,7,56,85,231,8,56,9,12,10,56,169,48,11,56,52,85,12,56,171,121,13,56,13,158,14,56,90,194,15,56,147,230,16,56,182,10,18,56,197,46,19,56,190,
82,20,56,162,118,21,56,112,154,22,56,40,190,23,56,203,225,24,56,88,5,26,56,207,40,27,56,48,76,28,56,123,111,29,56,175,146,30,56,205,181,31,56,212,216,32,56,197,251,33,56,158,30,35,56,97,65,36,56,13,100,37,56,162,134,38,56,31,169,39,56,133,203,40,56,211,237,41,56,10,16,43,56,41,50,44,56,48,84,45,56,31,118,46,56,246,151,47,56,181,185,48,56,91,219,49,56,233,252,50,56,94,30,52,56,187,63,53,56,254,96,54,56,41,130,55,56,59,163,56,56,51,196,57,56,18,229,58,56,216,5,60,56,132,38,61,56,23,71,62,56,143,103,
63,56,238,135,64,56,51,168,65,56,93,200,66,56,110,232,67,56,100,8,69,56,63,40,70,56,0,72,71,56,166,103,72,56,50,135,73,56,162,166,74,56,247,197,75,56,49,229,76,56,80,4,78,56,84,35,79,56,59,66,80,56,7,97,81,56,184,127,82,56,76,158,83,56,197,188,84,56,33,219,85,56,97,249,86,56,132,23,88,56,140,53,89,56,118,83,90,56,68,113,91,56,245,142,92,56,137,172,93,56,0,202,94,56,90,231,95,56,150,4,97,56,181,33,98,56,182,62,99,56,154,91,100,56,96,120,101,56,8,149,102,56,147,177,103,56,255,205,104,56,76,234,105,
56,124,6,107,56,141,34,108,56,127,62,109,56,83,90,110,56,8,118,111,56,158,145,112,56,21,173,113,56,108,200,114,56,165,227,115,56,190,254,116,56,184,25,118,56,145,52,119,56,76,79,120,56,230,105,121,56,96,132,122,56,187,158,123,56,245,184,124,56,14,211,125,56,8,237,126,56,112,3,128,56,76,144,128,56,24,29,129,56,211,169,129,56,126,54,130,56,24,195,130,56,162,79,131,56,26,220,131,56,131,104,132,56,218,244,132,56,32,129,133,56,86,13,134,56,123,153,134,56,142,37,135,56,145,177,135,56,130,61,136,56,98,201,
136,56,49,85,137,56,239,224,137,56,155,108,138,56,54,248,138,56,192,131,139,56,56,15,140,56,158,154,140,56,243,37,141,56,54,177,141,56,103,60,142,56,134,199,142,56,148,82,143,56,143,221,143,56,121,104,144,56,80,243,144,56,22,126,145,56,201,8,146,56,106,147,146,56,249,29,147,56,118,168,147,56,224,50,148,56,56,189,148,56,125,71,149,56,176,209,149,56,208,91,150,56,221,229,150,56,216,111,151,56,192,249,151,56,149,131,152,56,87,13,153,56,6,151,153,56,163,32,154,56,44,170,154,56,162,51,155,56,5,189,155,
56,85,70,156,56,145,207,156,56,187,88,157,56,208,225,157,56,211,106,158,56,194,243,158,56,157,124,159,56,101,5,160,56,25,142,160,56,185,22,161,56,70,159,161,56,190,39,162,56,35,176,162,56,116,56,163,56,177,192,163,56,218,72,164,56,239,208,164,56,239,88,165,56,220,224,165,56,180,104,166,56,119,240,166,56,39,120,167,56,194,255,167,56,72,135,168,56,186,14,169,56,24,150,169,56,96,29,170,56,148,164,170,56,179,43,171,56,190,178,171,56,179,57,172,56,148,192,172,56,96,71,173,56,22,206,173,56,184,84,174,56,
68,219,174,56,187,97,175,56,29,232,175,56,106,110,176,56,161,244,176,56,195,122,177,56,207,0,178,56,198,134,178,56,167,12,179,56,115,146,179,56,41,24,180,56,201,157,180,56,83,35,181,56,200,168,181,56,38,46,182,56,111,179,182,56,162,56,183,56,190,189,183,56,197,66,184,56,181,199,184,56,143,76,185,56,83,209,185,56,0,86,186,56,151,218,186,56,24,95,187,56,130,227,187,56,214,103,188,56,19,236,188,56,57,112,189,56,73,244,189,56,66,120,190,56,36,252,190,56,239,127,191,56,163,3,192,56,64,135,192,56,199,10,
193,56,54,142,193,56,142,17,194,56,207,148,194,56,248,23,195,56,11,155,195,56,6,30,196,56,233,160,196,56,181,35,197,56,106,166,197,56,7,41,198,56,141,171,198,56,251,45,199,56,81,176,199,56,143,50,200,56,182,180,200,56,196,54,201,56,187,184,201,56,154,58,202,56,97,188,202,56,15,62,203,56,166,191,203,56,36,65,204,56,138,194,204,56,216,67,205,56,14,197,205,56,43,70,206,56,47,199,206,56,28,72,207,56,239,200,207,56,170,73,208,56,77,202,208,56,214,74,209,56,71,203,209,56,159,75,210,56,223,203,210,56,5,
76,211,56,18,204,211,56,7,76,212,56,226,203,212,56,164,75,213,56,77,203,213,56,221,74,214,56,84,202,214,56,177,73,215,56,245,200,215,56,31,72,216,56,48,199,216,56,40,70,217,56,6,197,217,56,202,67,218,56,117,194,218,56,5,65,219,56,125,191,219,56,218,61,220,56,29,188,220,56,71,58,221,56,86,184,221,56,76,54,222,56,39,180,222,56,232,49,223,56,143,175,223,56,28,45,224,56,143,170,224,56,231,39,225,56,37,165,225,56,72,34,226,56,81,159,226,56,63,28,227,56,19,153,227,56,204,21,228,56,107,146,228,56,239,14,
229,56,87,139,229,56,166,7,230,56,217,131,230,56,241,255,230,56,239,123,231,56,209,247,231,56,152,115,232,56,68,239,232,56,213,106,233,56,75,230,233,56,165,97,234,56,228,220,234,56,8,88,235,56,16,211,235,56,253,77,236,56,206,200,236,56,132,67,237,56,30,190,237,56,157,56,238,56,255,178,238,56,70,45,239,56,114,167,239,56,129,33,240,56,116,155,240,56,76,21,241,56,7,143,241,56,166,8,242,56,41,130,242,56,144,251,242,56,219,116,243,56,10,238,243,56,28,103,244,56,18,224,244,56,236,88,245,56,169,209,245,
56,73,74,246,56,205,194,246,56,53,59,247,56,128,179,247,56,174,43,248,56,191,163,248,56,180,27,249,56,140,147,249,56,71,11,250,56,229,130,250,56,102,250,250,56,202,113,251,56,16,233,251,56,58,96,252,56,71,215,252,56,54,78,253,56,8,197,253,56,189,59,254,56,85,178,254,56,207,40,255,56,44,159,255,56,181,10,0,57,198,69,0,57,200,128,0,57,187,187,0,57,160,246,0,57,117,49,1,57,60,108,1,57,244,166,1,57,156,225,1,57,54,28,2,57,193,86,2,57,61,145,2,57,170,203,2,57,7,6,3,57,86,64,3,57,150,122,3,57,198,180,3,
57,231,238,3,57,250,40,4,57,252,98,4,57,240,156,4,57,213,214,4,57,170,16,5,57,112,74,5,57,39,132,5,57,206,189,5,57,102,247,5,57,239,48,6,57,104,106,6,57,210,163,6,57,44,221,6,57,119,22,7,57,178,79,7,57,222,136,7,57,251,193,7,57,7,251,7,57,5,52,8,57,242,108,8,57,208,165,8,57,159,222,8,57,93,23,9,57,12,80,9,57,172,136,9,57,59,193,9,57,187,249,9,57,43,50,10,57,139,106,10,57,220,162,10,57,28,219,10,57,77,19,11,57,110,75,11,57,127,131,11,57,128,187,11,57,113,243,11,57,82,43,12,57,35,99,12,57,228,154,12,
57,149,210,12,57,54,10,13,57,199,65,13,57,71,121,13,57,184,176,13,57,24,232,13,57,104,31,14,57,169,86,14,57,216,141,14,57,248,196,14,57,7,252,14,57,6,51,15,57,245,105,15,57,211,160,15,57,161,215,15,57,95,14,16,57,12,69,16,57,169,123,16,57,54,178,16,57,178,232,16,57,29,31,17,57,120,85,17,57,195,139,17,57,253,193,17,57,38,248,17,57,63,46,18,57,71,100,18,57,63,154,18,57,37,208,18,57,252,5,19,57,193,59,19,57,118,113,19,57,26,167,19,57,174,220,19,57,48,18,20,57,162,71,20,57,3,125,20,57,83,178,20,57,146,
231,20,57,193,28,21,57,222,81,21,57,235,134,21,57,230,187,21,57],"i8",4,y.a+880640);
Q([209,240,21,57,171,37,22,57,115,90,22,57,43,143,22,57,209,195,22,57,103,248,22,57,235,44,23,57,95,97,23,57,193,149,23,57,18,202,23,57,82,254,23,57,128,50,24,57,158,102,24,57,170,154,24,57,165,206,24,57,143,2,25,57,103,54,25,57,46,106,25,57,228,157,25,57,137,209,25,57,28,5,26,57,157,56,26,57,13,108,26,57,108,159,26,57,186,210,26,57,246,5,27,57,32,57,27,57,57,108,27,57,64,159,27,57,54,210,27,57,26,5,28,57,237,55,28,57,174,106,28,57,93,157,28,57,251,207,28,57,135,2,29,57,1,53,29,57,106,103,29,57,193,
153,29,57,6,204,29,57,57,254,29,57,91,48,30,57,107,98,30,57,105,148,30,57,85,198,30,57,47,248,30,57,247,41,31,57,174,91,31,57,82,141,31,57,229,190,31,57,101,240,31,57,212,33,32,57,49,83,32,57,123,132,32,57,180,181,32,57,218,230,32,57,239,23,33,57,241,72,33,57,225,121,33,57,191,170,33,57,139,219,33,57,69,12,34,57,237,60,34,57,130,109,34,57,5,158,34,57,118,206,34,57,212,254,34,57,33,47,35,57,91,95,35,57,130,143,35,57,152,191,35,57,154,239,35,57,139,31,36,57,105,79,36,57,53,127,36,57,238,174,36,57,149,
222,36,57,41,14,37,57,171,61,37,57,27,109,37,57,120,156,37,57,194,203,37,57,250,250,37,57,31,42,38,57,49,89,38,57,49,136,38,57,30,183,38,57,249,229,38,57,193,20,39,57,118,67,39,57,25,114,39,57,169,160,39,57,38,207,39,57,144,253,39,57,232,43,40,57,44,90,40,57,94,136,40,57,125,182,40,57,137,228,40,57,131,18,41,57,105,64,41,57,61,110,41,57,253,155,41,57,171,201,41,57,70,247,41,57,205,36,42,57,66,82,42,57,164,127,42,57,243,172,42,57,46,218,42,57,87,7,43,57,108,52,43,57,111,97,43,57,94,142,43,57,58,187,
43,57,3,232,43,57,185,20,44,57,92,65,44,57,235,109,44,57,103,154,44,57,208,198,44,57,38,243,44,57,104,31,45,57,152,75,45,57,180,119,45,57,188,163,45,57,177,207,45,57,147,251,45,57,98,39,46,57,29,83,46,57,196,126,46,57,89,170,46,57,217,213,46,57,71,1,47,57,161,44,47,57,231,87,47,57,26,131,47,57,57,174,47,57,69,217,47,57,61,4,48,57,34,47,48,57,243,89,48,57,177,132,48,57,91,175,48,57,241,217,48,57,115,4,49,57,226,46,49,57,62,89,49,57,133,131,49,57,185,173,49,57,217,215,49,57,229,1,50,57,222,43,50,57,
195,85,50,57,148,127,50,57,81,169,50,57,250,210,50,57,144,252,50,57,17,38,51,57,127,79,51,57,217,120,51,57,31,162,51,57,81,203,51,57,111,244,51,57,121,29,52,57,111,70,52,57,82,111,52,57,32,152,52,57,218,192,52,57,128,233,52,57,18,18,53,57,144,58,53,57,250,98,53,57,80,139,53,57,146,179,53,57,191,219,53,57,217,3,54,57,222,43,54,57,207,83,54,57,172,123,54,57,117,163,54,57,41,203,54,57,202,242,54,57,86,26,55,57,205,65,55,57,49,105,55,57,128,144,55,57,187,183,55,57,226,222,55,57,244,5,56,57,242,44,56,
57,219,83,56,57,177,122,56,57,113,161,56,57,30,200,56,57,182,238,56,57,57,21,57,57,168,59,57,57,3,98,57,57,73,136,57,57,122,174,57,57,152,212,57,57,160,250,57,57,148,32,58,57,116,70,58,57,63,108,58,57,245,145,58,57,151,183,58,57,36,221,58,57,156,2,59,57,0,40,59,57,79,77,59,57,138,114,59,57,176,151,59,57,193,188,59,57,189,225,59,57,165,6,60,57,120,43,60,57,54,80,60,57,224,116,60,57,117,153,60,57,245,189,60,57,96,226,60,57,182,6,61,57,247,42,61,57,36,79,61,57,60,115,61,57,63,151,61,57,45,187,61,57,
6,223,61,57,202,2,62,57,121,38,62,57,20,74,62,57,153,109,62,57,10,145,62,57,101,180,62,57,172,215,62,57,221,250,62,57,249,29,63,57,1,65,63,57,243,99,63,57,209,134,63,57,153,169,63,57,76,204,63,57,234,238,63,57,115,17,64,57,231,51,64,57,70,86,64,57,143,120,64,57,196,154,64,57,227,188,64,57,237,222,64,57,226,0,65,57,193,34,65,57,140,68,65,57,65,102,65,57,225,135,65,57,108,169,65,57,225,202,65,57,65,236,65,57,140,13,66,57,194,46,66,57,226,79,66,57,237,112,66,57,226,145,66,57,194,178,66,57,141,211,66,
57,67,244,66,57,227,20,67,57,109,53,67,57,226,85,67,57,66,118,67,57,141,150,67,57,194,182,67,57,225,214,67,57,235,246,67,57,223,22,68,57,190,54,68,57,136,86,68,57,60,118,68,57,218,149,68,57,99,181,68,57,214,212,68,57,52,244,68,57,124,19,69,57,175,50,69,57,204,81,69,57,211,112,69,57,197,143,69,57,161,174,69,57,103,205,69,57,24,236,69,57,179,10,70,57,57,41,70,57,168,71,70,57,2,102,70,57,71,132,70,57,117,162,70,57,142,192,70,57,145,222,70,57,127,252,70,57,86,26,71,57,24,56,71,57,196,85,71,57,90,115,
71,57,219,144,71,57,69,174,71,57,154,203,71,57,217,232,71,57,2,6,72,57,21,35,72,57,18,64,72,57,250,92,72,57,203,121,72,57,135,150,72,57,45,179,72,57,188,207,72,57,54,236,72,57,154,8,73,57,232,36,73,57,32,65,73,57,66,93,73,57,78,121,73,57,68,149,73,57,36,177,73,57,238,204,73,57,162,232,73,57,64,4,74,57,200,31,74,57,58,59,74,57,149,86,74,57,219,113,74,57,11,141,74,57,36,168,74,57,39,195,74,57,21,222,74,57,236,248,74,57,173,19,75,57,88,46,75,57,236,72,75,57,107,99,75,57,211,125,75,57,37,152,75,57,97,
178,75,57,135,204,75,57,151,230,75,57,144,0,76,57,115,26,76,57,64,52,76,57,247,77,76,57,151,103,76,57,34,129,76,57,149,154,76,57,243,179,76,57,58,205,76,57,107,230,76,57,134,255,76,57,138,24,77,57,120,49,77,57,80,74,77,57,18,99,77,57,189,123,77,57,81,148,77,57,208,172,77,57,55,197,77,57,137,221,77,57,196,245,77,57,233,13,78,57,247,37,78,57,239,61,78,57,209,85,78,57,156,109,78,57,80,133,78,57,238,156,78,57,118,180,78,57,231,203,78,57,66,227,78,57,134,250,78,57,180,17,79,57,203,40,79,57,204,63,79,57,
182,86,79,57,138,109,79,57,71,132,79,57,238,154,79,57,126,177,79,57,248,199,79,57,91,222,79,57,167,244,79,57,221,10,80,57,252,32,80,57,5,55,80,57,247,76,80,57,210,98,80,57,151,120,80,57,69,142,80,57,221,163,80,57,94,185,80,57,200,206,80,57,28,228,80,57,89,249,80,57,127,14,81,57,143,35,81,57,136,56,81,57,106,77,81,57,54,98,81,57,235,118,81,57,137,139,81,57,16,160,81,57,129,180,81,57,219,200,81,57,30,221,81,57,75,241,81,57,97,5,82,57,96,25,82,57,72,45,82,57,25,65,82,57,212,84,82,57,120,104,82,57,5,
124,82,57,124,143,82,57,219,162,82,57,36,182,82,57,86,201,82,57,113,220,82,57,117,239,82,57,99,2,83,57,57,21,83,57,249,39,83,57,162,58,83,57,52,77,83,57,175,95,83,57,20,114,83,57,97,132,83,57,152,150,83,57,184,168,83,57,192,186,83,57,178,204,83,57,141,222,83,57,81,240,83,57,255,1,84,57,149,19,84,57,20,37,84,57,125,54,84,57,206,71,84,57,9,89,84,57,44,106,84,57,57,123,84,57,47,140,84,57,13,157,84,57,213,173,84,57,134,190,84,57,31,207,84,57,162,223,84,57,14,240,84,57,99,0,85,57,161,16,85,57,199,32,85,
57,215,48,85,57,208,64,85,57,178,80,85,57,125,96,85,57,48,112,85,57,205,127,85,57,83,143,85,57,193,158,85,57,25,174,85,57,89,189,85,57,131,204,85,57,149,219,85,57,144,234,85,57,116,249,85,57,65,8,86,57,248,22,86,57,151,37,86,57,30,52,86,57,143,66,86,57,233,80,86,57,43,95,86,57,87,109,86,57,107,123,86,57,105,137,86,57,79,151,86,57,30,165,86,57,214,178,86,57,118,192,86,57,0,206,86,57,114,219,86,57,206,232,86,57,18,246,86,57,63,3,87,57,85,16,87,57,84,29,87,57,59,42,87,57,12,55,87,57,197,67,87,57,103,
80,87,57,242,92,87,57,101,105,87,57,194,117,87,57,7,130,87,57,53,142,87,57,76,154,87,57,76,166,87,57,53,178,87,57,6,190,87,57,192,201,87,57,99,213,87,57,239,224,87,57,99,236,87,57,193,247,87,57,7,3,88,57,53,14,88,57,77,25,88,57,77,36,88,57,55,47,88,57,9,58,88,57,195,68,88,57,103,79,88,57,243,89,88,57,104,100,88,57,198,110,88,57,12,121,88,57,59,131,88,57,83,141,88,57,84,151,88,57,61,161,88,57,15,171,88,57,202,180,88,57,110,190,88,57,250,199,88,57,111,209,88,57,205,218,88,57,20,228,88,57,67,237,88,
57,91,246,88,57,91,255,88,57,69,8,89,57,23,17,89,57,210,25,89,57,117,34,89,57,2,43,89,57,118,51,89,57,212,59,89,57,26,68,89,57,73,76,89,57,97,84,89,57,98,92,89,57,75,100,89,57,29,108,89,57,215,115,89,57,122,123,89,57,6,131,89,57,123,138,89,57,216,145,89,57,30,153,89,57,77,160,89,57,100,167,89,57,100,174,89,57,77,181,89,57,30,188,89,57,216,194,89,57,123,201,89,57,6,208,89,57,122,214,89,57,215,220,89,57,28,227,89,57,74,233,89,57,97,239,89,57,97,245,89,57,73,251,89,57,25,1,90,57,211,6,90,57,117,12,90,
57,0,18,90,57,115,23,90,57,207,28,90,57,20,34,90,57,66,39,90,57,88,44,90,57,86,49,90,57,62,54,90,57,14,59,90,57,199,63,90,57,104,68,90,57,242,72,90,57,101,77,90,57,192,81,90,57,4,86,90,57,49,90,90,57,70,94,90,57,69,98,90,57,43,102,90,57,251,105,90,57,179,109,90,57,83,113,90,57,221,116,90,57,79,120,90,57,170,123,90,57,237,126,90,57,25,130,90,57,46,133,90,57,43,136,90,57,17,139,90,57,224,141,90,57,151,144,90,57,55,147,90,57,192,149,90,57,49,152,90,57,139,154,90,57,206,156,90,57,249,158,90,57,13,161,
90,57,10,163,90,57,240,164,90,57,190,166,90,57,116,168,90,57,20,170,90,57,156,171,90,57,13,173,90,57,102,174,90,57,168,175,90,57,211,176,90,57,231,177,90,57,227,178,90,57,200,179,90,57,149,180,90,57,76,181,90,57,235,181,90,57,114,182,90,57,227,182,90,57,60,183,90,57,126,183,90,57,168,183,90,57,187,183,90,57,183,183,90,57,156,183,90,57,105,183,90,57,31,183,90,57,190,182,90,57,69,182,90,57,181,181,90,57,14,181,90,57,79,180,90,57,122,179,90,57,141,178,90,57,136,177,90,57,109,176,90,57,58,175,90,57,240,
173,90,57,143,172,90,57,22,171,90,57,134,169,90,57,223,167,90,57,33,166,90,57,75,164,90,57,94,162,90,57,90,160,90,57,62,158,90,57,12,156,90,57,194,153,90,57,97,151,90,57,232,148,90,57,89,146,90,57,178,143,90,57,244,140,90,57,30,138,90,57,50,135,90,57,46,132,90,57,19,129,90,57,225,125,90,57,152,122,90,57,55,119,90,57,191,115,90,57,48,112,90,57,138,108,90,57,205,104,90,57,248,100,90,57,13,97,90,57,10,93,90,57,239,88,90,57,190,84,90,57,118,80,90,57,22,76,90,57,159,71,90,57,17,67,90,57,108,62,90,57,176,
57,90,57,220,52,90,57,242,47,90,57,240,42,90,57,215,37,90,57,167,32,90,57,96,27,90,57,2,22,90,57,140,16,90,57,0,11,90,57,92,5,90,57,162,255,89,57,208,249,89,57,231,243,89,57,231,237,89,57,208,231,89,57,161,225,89,57,92,219,89,57,0,213,89,57,140,206,89,57,1,200,89,57,96,193,89,57,167,186,89,57,215,179,89,57,241,172,89,57,243,165,89,57,222,158,89,57,178,151,89,57,111,144,89,57,21,137,89,57,164,129,89,57,28,122,89,57,124,114,89,57,198,106,89,57,249,98,89,57,21,91,89,57,26,83,89,57,8,75,89,57,223,66,
89,57,159,58,89,57,72,50,89,57,218,41,89,57,85,33,89,57,185,24,89,57,6,16,89,57,60,7,89,57,91,254,88,57,99,245,88,57,84,236,88,57,47,227,88,57,242,217,88,57,159,208,88,57,52,199,88,57,179,189,88,57,27,180,88,57,108,170,88,57,166,160,88,57,201,150,88,57,213,140,88,57,202,130,88,57,169,120,88,57,113,110,88,57,33,100,88,57,187,89,88,57,62,79,88,57,171,68,88,57,0,58,88,57,63,47,88,57,102,36,88,57,119,25,88,57,114,14,88,57,85,3,88,57,33,248,87,57,215,236,87,57,118,225,87,57,254,213,87,57,112,202,87,57,
203,190,87,57,15,179,87,57,60,167,87,57,82,155,87,57,82,143,87,57,59,131,87,57,13,119,87,57,201,106,87,57,110,94,87,57,252,81,87,57,115,69,87,57,212,56,87,57,30,44,87,57,81,31,87,57,110,18,87,57,116,5,87,57,100,248,86,57,60,235,86,57,255,221,86,57,170,208,86,57,63,195,86,57,189,181,86,57,37,168,86,57,118,154,86,57,177,140,86,57,212,126,86,57,226,112,86,57,216,98,86,57,185,84,86,57,130,70,86,57,53,56,86,57,210,41,86,57,88,27,86,57,199,12,86,57,32,254,85,57,99,239,85,57,143,224,85,57,164,209,85,57,
163,194,85,57,139,179,85,57,93,164,85,57,25,149,85,57,190,133,85,57,77,118,85,57,197,102,85,57,39,87,85,57,114,71,85,57,167,55,85,57,198,39,85,57,206,23,85,57,191,7,85,57,155,247,84,57,96,231,84,57,14,215,84,57,167,198,84,57,41,182,84,57,148,165,84,57,233,148,84,57,40,132,84,57,81,115,84,57,99,98,84,57,95,81,84,57,69,64,84,57,21,47,84,57,206,29,84,57,113,12,84,57,253,250,83,57,116,233,83,57,212,215,83,57,30,198,83,57,82,180,83,57,111,162,83,57,119,144,83,57,104,126,83,57,67,108,83,57,8,90,83,57,182,
71,83,57,79,53,83,57,209,34,83,57,62,16,83,57,148,253,82,57,212,234,82,57,254,215,82,57,17,197,82,57,15,178,82,57,247,158,82,57,200,139,82,57,132,120,82,57,41,101,82,57,185,81,82,57,50,62,82,57,150,42,82,57,227,22,82,57,26,3,82,57,60,239,81,57,71,219,81,57,61,199,81,57,28,179,81,57,230,158,81,57,154,138,81,57,55,118,81,57,191,97,81,57,49,77,81,57,141,56,81,57,211,35,81,57,3,15,81,57,30,250,80,57,34,229,80,57,17,208,80,57,234,186,80,57,173,165,80,57,90,144,80,57,241,122,80,57,115,101,80,57,222,79,
80,57,52,58,80,57,117,36,80,57,159,14,80,57,180,248,79,57,179,226,79,57,156,204,79,57,112,182,79,57,46,160,79,57,214,137,79,57,105,115,79,57,230,92,79,57,77,70,79,57,159,47,79,57,219,24,79,57,1,2,79,57,18,235,78,57,13,212,78,57,242,188,78,57,194,165,78,57,125,142,78,57,34,119,78,57,177,95,78,57,43,72,78,57,143,48,78,57,222,24,78,57,23,1,78,57,59,233,77,57,73,209,77,57,66,185,77,57,38,161,77,57,244,136,77,57,172,112,77,57,79,88,77,57,221,63,77,57,86,39,77,57,185,14,77,57,6,246,76,57,62,221,76,57,97,
196,76,57,111,171,76,57,103,146,76,57,74,121,76,57,24,96,76,57,208,70,76,57,115,45,76,57,1,20,76,57,122,250,75,57,221,224,75,57,43,199,75,57,100,173,75,57,136,147,75,57,151,121,75,57,144,95,75,57,116,69,75,57,67,43,75,57,253,16,75,57,162,246,74,57,50,220,74,57,172,193,74,57,18,167,74,57,98,140,74,57,158,113,74,57,196,86,74,57,214,59,74,57,210,32,74,57,185,5,74,57,139,234,73,57,73,207,73,57,241,179,73,57,133,152,73,57,3,125,73,57,108,97,73,57,193,69,73,57,1,42,73,57,44,14,73,57,66,242,72,57,67,214,
72,57,47,186,72,57,6,158,72,57,201,129,72,57,118,101,72,57,15,73,72,57,148,44,72,57,3,16,72,57,94,243,71,57,163,214,71,57,213,185,71,57,241,156,71,57,249,127,71,57,236,98,71,57,202,69,71,57,148,40,71,57,73,11,71,57,233,237,70,57,117,208,70,57,236,178,70,57,79,149,70,57,157,119,70,57,214,89,70,57,251,59,70,57,12,30,70,57,8,0,70,57,239,225,69,57,194,195,69,57,128,165,69,57,42,135,69,57,191,104,69,57,64,74,69,57,173,43,69,57,5,13,69,57,73,238,68,57,120,207,68,57,147,176,68,57,154,145,68,57,140,114,68,
57,106,83,68,57,52,52,68,57,233,20,68,57,138,245,67,57,23,214,67,57,144,182,67,57,244,150,67,57,68,119,67,57,128,87,67,57,168,55,67,57,187,23,67,57,187,247,66,57,166,215,66,57,125,183,66,57,64,151,66,57,239,118,66,57,137,86,66,57,16,54,66,57,131,21,66,57,225,244,65,57,44,212,65,57,98,179,65,57,133,146,65,57,148,113,65,57,142,80,65,57,117,47,65,57,72,14,65,57,6,237,64,57,177,203,64,57,72,170,64,57,203,136,64,57,59,103,64,57,150,69,64,57,222,35,64,57,17,2,64,57,49,224,63,57,61,190,63,57,54,156,63,57,
27,122,63,57,235,87,63,57,169,53,63,57,82,19,63,57,232,240,62,57,106,206,62,57,217,171,62,57,51,137,62,57,123,102,62,57,174,67,62,57,206,32,62,57,219,253,61,57,211,218,61,57,185,183,61,57,139,148,61,57,73,113,61,57,244,77,61,57,139,42,61,57,15,7,61,57,127,227,60,57,220,191,60,57,38,156,60,57,92,120,60,57,127,84,60,57,142,48,60,57,138,12,60,57,115,232,59,57,72,196,59,57,10,160,59,57,185,123,59,57,84,87,59,57,221,50,59,57,82,14,59,57,180,233,58,57,2,197,58,57,62,160,58,57,102,123,58,57,123,86,58,57,
125,49,58,57,108,12,58,57,72,231,57,57,16,194,57,57,198,156,57,57,104,119,57,57,248,81,57,57,116,44,57,57,222,6,57,57,52,225,56,57,120,187,56,57,169,149,56,57,198,111,56,57,209,73,56,57,201,35,56,57,174,253,55,57,128,215,55,57,63,177,55,57,236,138,55,57,133,100,55,57,12,62,55,57,128,23,55,57,226,240,54,57,48,202,54,57,108,163,54,57,149,124,54,57,172,85,54,57,176,46,54,57,161,7,54,57,127,224,53,57,75,185,53,57,4,146,53,57,171,106,53,57,63,67,53,57,193,27,53,57,48,244,52,57,141,204,52,57,215,164,52,
57,14,125,52,57,51,85,52,57,70,45,52,57,70,5,52,57,52,221,51,57,16,181,51,57,217,140,51,57,144,100,51,57,52,60,51,57,198,19,51,57,70,235,50,57,180,194,50,57,15,154,50,57,88,113,50,57,143,72,50,57,180,31,50,57,198,246,49,57,198,205,49,57,181,164,49,57,145,123,49,57,91,82,49,57,18,41,49,57,184,255,48,57,76,214,48,57,206,172,48,57,61,131,48,57,155,89,48,57,230,47,48,57,32,6,48,57,72,220,47,57,94,178,47,57,98,136,47,57,84,94,47,57,52,52,47,57,2,10,47,57,191,223,46,57,106,181,46,57,2,139,46,57,138,96,
46,57,255,53,46,57,99,11,46,57,181,224,45,57,245,181,45,57,35,139,45,57,64,96,45,57,76,53,45,57,69,10,45,57,45,223,44,57,4,180,44,57,201,136,44,57,124,93,44,57,30,50,44,57,174,6,44,57,45,219,43,57,154,175,43,57,246,131,43,57,65,88,43,57,122,44,43,57,162,0,43,57,184,212,42,57,189,168,42,57,177,124,42,57,147,80,42,57,100,36,42,57,36,248,41,57,211,203,41,57,112,159,41,57,252,114,41,57,119,70,41,57,225,25,41,57,57,237,40,57,129,192,40,57,183,147,40,57,221,102,40,57,241,57,40,57,244,12,40,57,230,223,39,
57,199,178,39,57,151,133,39,57,86,88,39,57,5,43,39,57,162,253,38,57,46,208,38,57,170,162,38,57,20,117,38,57,110,71,38,57,183,25,38,57,239,235,37,57,23,190,37,57,45,144,37,57,51,98,37,57,40,52,37,57,12,6,37,57,224,215,36,57,163,169,36,57,86,123,36,57,247,76,36,57,136,30,36,57,9,240,35,57,121,193,35,57,216,146,35,57,39,100,35,57,102,53,35,57,148,6,35,57,177,215,34,57,190,168,34,57,187,121,34,57,167,74,34,57,131,27,34,57,79,236,33,57,10,189,33,57,181,141,33,57,79,94,33,57,218,46,33,57,84,255,32,57,189,
207,32,57,23,160,32,57,96,112,32,57,154,64,32,57,195,16,32,57,220,224,31,57,229,176,31,57,221,128,31,57,198,80,31,57,159,32,31,57,104,240,30,57,32,192,30,57,201,143,30,57,98,95,30,57,234,46,30,57,99,254,29,57,204,205,29,57,38,157,29,57,111,108,29,57,168,59,29,57,210,10,29,57,236,217,28,57,246,168,28,57,240,119,28,57,219,70,28,57,182,21,28,57,129,228,27,57,61,179,27,57,233,129,27,57,133,80,27,57,18,31,27,57,143,237,26,57,253,187,26,57,91,138,26,57,170,88,26,57,233,38,26,57,25,245,25,57,57,195,25,57,
74,145,25,57,75,95,25,57,61,45,25,57,32,251,24,57,244,200,24,57,184,150,24,57,108,100,24,57,18,50,24,57,168,255,23,57,48,205,23,57,167,154,23,57,16,104,23,57,106,53,23,57,180,2,23,57,240,207,22,57,28,157,22,57,57,106,22,57,71,55,22,57,71,4,22,57,55,209,21,57,24,158,21,57,234,106,21,57,174,55,21,57,98,4,21,57,8,209,20,57,158,157,20,57,38,106,20,57,159,54,20,57,10,3,20,57,101,207,19,57,178,155,19,57,240,103,19,57,31,52,19,57,64,0,19,57,82,204,18,57,85,152,18,57,74,100,18,57,48,48,18,57,8,252,17,57,
209,199,17,57,139,147,17,57,55,95,17,57,213,42,17,57,100,246,16,57,229,193,16,57,87,141,16,57,187,88,16,57,17,36,16,57,88,239,15,57,145,186,15,57,187,133,15,57,216,80,15,57,230,27,15,57,230,230,14,57,215,177,14,57,187,124,14,57,144,71,14,57,88,18,14,57,17,221,13,57,188,167,13,57,89,114,13,57,232,60,13,57,105,7,13,57,220,209,12,57,65,156,12,57,152,102,12,57,225,48,12,57,28,251,11,57,73,197,11,57,105,143,11,57,123,89,11,57,127,35,11,57,117,237,10,57,93,183,10,57,56,129,10,57,5,75,10,57,196,20,10,57,
118,222,9,57,25,168,9,57,176,113,9,57,57,59,9,57,180,4,9,57,33,206,8,57,130,151,8,57,212,96,8,57,25,42,8,57,81,243,7,57,124,188,7,57,152,133,7,57,168,78,7,57,170,23,7,57,159,224,6,57,135,169,6,57,97,114,6,57,46,59,6,57,238,3,6,57,160,204,5,57,70,149,5,57,222,93,5,57,105,38,5,57,231,238,4,57,88,183,4,57,188,127,4,57,19,72,4,57,93,16,4,57,153,216,3,57,201,160,3,57,236,104,3,57,2,49,3,57,11,249,2,57,7,193,2,57,247,136,2,57,217,80,2,57,175,24,2,57,120,224,1,57,52,168,1,57,228,111,1,57,135,55,1,57,29,
255,0,57,167,198,0,57,35,142,0,57,148,85,0,57,247,28,0,57,157,200,255,56,50,87,255,56,175,229,254,56,18,116,254,56,92,2,254,56,142,144,253,56,167,30,253,56,167,172,252,56,142,58,252,56,93,200,251,56,19,86,251,56,176,227,250,56,53,113,250,56,161,254,249,56,246,139,249,56,49,25,249,56,85,166,248,56,96,51,248,56,83,192,247,56,45,77,247,56,240,217,246,56,155,102,246,56,45,243,245,56,168,127,245,56,10,12,245,56,85,152,244,56,136,36,244,56,163,176,243,56,167,60,243,56,147,200,242,56,103,84,242,56,36,224,
241,56,201,107,241,56,86,247,240,56,205,130,240,56,44,14,240,56,115,153,239,56,163,36,239,56,189,175,238,56,190,58,238,56,169,197,237,56,125,80,237,56,58,219,236,56,224,101,236,56,111,240,235,56,231,122,235,56,72,5,235,56,146,143,234,56,198,25,234,56,227,163,233,56,234,45,233,56,218,183,232,56,179,65,232,56,118,203,231,56,34,85,231,56,185,222,230,56,57,104,230,56,162,241,229,56,246,122,229,56,51,4,229,56,90,141,228,56,108,22,228,56,103,159,227,56,76,40,227,56,27,177,226,56,213,57,226,56,121,194,225,
56,7,75,225,56,127,211,224,56,225,91,224,56,47,228,223,56,102,108,223,56,136,244,222,56,149,124,222,56,140,4,222,56,110,140,221,56,59,20,221,56,242,155,220,56,148,35,220,56,34,171,219,56,154,50,219,56,253,185,218,56,75,65,218,56,132,200,217,56,168,79,217,56,184,214,216,56,179,93,216,56,153,228,215,56,106,107,215,56,39,242,214,56,207,120,214,56,99,255,213,56,226,133,213,56,77,12,213,56,164,146,212,56,230,24,212,56,20,159,211,56,46,37,211,56,51,171,210,56,37,49,210,56,3,183,209,56,204,60,209,56,130,
194,208,56,36,72,208,56,178,205,207,56,44,83,207,56,147,216,206,56,230,93,206,56,37,227,205,56,81,104,205,56,105,237,204,56,110,114,204,56,95,247,203,56,61,124,203,56,8,1,203,56,191,133,202,56,100,10,202,56,245,142,201,56,115,19,201,56,222,151,200,56,54,28,200,56,123,160,199,56,174,36,199,56,205,168,198,56,218,44,198,56,212,176,197,56,187,52,197,56,144,184,196,56,82,60,196,56,2,192,195,56,159,67,195,56,42,199,194,56,163,74,194,56,9,206,193,56,93,81,193,56,159,212,192,56,207,87,192,56,236,218,191,
56,248,93,191,56,241,224,190,56,217,99,190,56,175,230,189,56,115,105,189,56,37,236,188,56,198,110,188,56,85,241,187,56,210,115,187,56,62,246,186,56,153,120,186,56,226,250,185,56,25,125,185,56,63,255,184,56,84,129,184,56,88,3,184,56,75,133,183,56,44,7,183,56,253,136,182,56,188,10,182,56,107,140,181,56,8,14,181,56,149,143,180,56,17,17,180,56,124,146,179,56,215,19,179,56,33,149,178,56,90,22,178,56,131,151,177,56,155,24,177,56,163,153,176,56,155,26,176,56,130,155,175,56,89,28,175,56,32,157,174,56,215,
29,174,56,125,158,173,56,20,31,173,56,155,159,172,56,17,32,172,56,120,160,171,56,207,32,171,56,23,161,170,56,78,33,170,56,118,161,169,56,143,33,169,56,151,161,168,56,145,33,168,56,123,161,167,56,85,33,167,56,32,161,166,56,220,32,166,56,137,160,165,56,39,32,165,56,181,159,164,56,53,31,164,56,165,158,163,56,7,30,163,56,89,157,162,56,157,28,162,56,210,155,161,56,248,26,161,56,16,154,160,56,25,25,160,56,19,152,159,56,255,22,159,56,221,149,158,56,172,20,158,56,108,147,157,56,31,18,157,56,195,144,156,56,
89,15,156,56,225,141,155,56,91,12,155,56,199,138,154,56,37,9,154,56,117,135,153,56,183,5,153,56,236,131,152,56,18,2,152,56,43,128,151,56,55,254,150,56,52,124,150,56,37,250,149,56,8,120,149,56,221,245,148,56,165,115,148,56,96,241,147,56,13,111,147,56,174,236,146,56,65,106,146,56,199,231,145,56,64,101,145,56,173,226,144,56,12,96,144,56,94,221,143,56,164,90,143,56,221,215,142,56,9,85,142,56,41,210,141,56,60,79,141,56,66,204,140,56,60,73,140,56,42,198,139,56,11,67,139,56,224,191,138,56,169,60,138,56,
102,185,137,56,22,54,137,56,187,178,136,56,83,47,136,56,223,171,135,56,96,40,135,56,212,164,134,56,61,33,134,56,154,157,133,56,236,25,133,56,50,150,132,56,108,18,132,56,155,142,131,56,190,10,131,56,214,134,130,56,226,2,130,56,227,126,129,56,217,250,128,56,196,118,128,56,72,229,127,56,241,220,126,56,132,212,125,56,1,204,124,56,105,195,123,56,186,186,122,56,246,177,121,56,29,169,120,56,46,160,119,56,42,151,118,56,17,142,117,56,227,132,116,56,160,123,115,56,73,114,114,56,220,104,113,56,91,95,112,56,
197,85,111,56,28,76,110,56,94,66,109,56,139,56,108,56,165,46,107,56,171,36,106,56,157,26,105,56,123,16,104,56,70,6,103,56,254,251,101,56,162,241,100,56,50,231,99,56,176,220,98,56,27,210,97,56,114,199,96,56,183,188,95,56,234,177,94,56,10,167,93,56,23,156,92,56,18,145,91,56,251,133,90,56,209,122,89,56,150,111,88,56,73,100,87,56,234,88,86,56,121,77,85,56,247,65,84,56,100,54,83,56,191,42,82,56,9,31,81,56,66,19,80,56,106,7,79,56,129,251,77,56,135,239,76,56,124,227,75,56,97,215,74,56,54,203,73,56,250,190,
72,56,175,178,71,56,83,166,70,56,231,153,69,56,107,141,68,56,224,128,67,56,69,116,66,56,154,103,65,56,224,90,64,56,23,78,63,56,62,65,62,56,87,52,61,56,96,39,60,56,91,26,59,56,71,13,58,56,36,0,57,56,243,242,55,56,180,229,54,56,102,216,53,56,10,203,52,56,160,189,51,56,41,176,50,56,163,162,49,56,15,149,48,56,111,135,47,56,192,121,46,56,4,108,45,56,59,94,44,56,101,80,43,56,130,66,42,56,146,52,41,56,149,38,40,56,139,24,39,56,117,10,38,56,83,252,36,56,36,238,35,56,232,223,34,56,161,209,33,56,78,195,32,
56,239,180,31,56,132,166,30,56,13,152,29,56,139,137,28,56,253,122,27,56,100,108,26,56,192,93,25,56,17,79,24,56,87,64,23,56,146,49,22,56,194,34,21,56,232,19,20,56,3,5,19,56,19,246,17,56,26,231,16,56,22,216,15,56,8,201,14,56,240,185,13,56,206,170,12,56,163,155,11,56,110,140,10,56,47,125,9,56,231,109,8,56,150,94,7,56,59,79,6,56,216,63,5,56,107,48,4,56,246,32,3,56,120,17,2,56,242,1,1,56,197,228,255,55,151,197,253,55,87,166,251,55,8,135,249,55,168,103,247,55,57,72,245,55,186,40,243,55,43,9,241,55,142,
233,238,55,225,201,236,55,38,170,234,55,93,138,232,55,133,106,230,55,159,74,228,55,171,42,226,55,170,10,224,55,156,234,221,55,128,202,219,55,88,170,217,55,34,138,215,55,225,105,213,55,147,73,211,55,58,41,209,55,212,8,207,55,99,232,204,55,231,199,202,55,96,167,200,55,206,134,198,55,49,102,196,55,138,69,194,55,217,36,192,55,30,4,190,55,89,227,187,55,139,194,185,55,179,161,183,55,211,128,181,55,234,95,179,55,248,62,177,55,254,29,175,55,252,252,172,55,242,219,170,55,224,186,168,55,199,153,166,55,167,
120,164,55,128,87,162,55,82,54,160,55,29,21,158,55,226,243,155,55,162,210,153,55,91,177,151,55,15,144,149,55,189,110,147,55,103,77,145,55,11,44,143,55,171,10,141,55,70,233,138,55,221,199,136,55,112,166,134,55,255,132,132,55,139,99,130,55,20,66,128,55,50,65,124,55,55,254,119,55,54,187,115,55,49,120,111,55,39,53,107,55,26,242,102,55,9,175,98,55,245,107,94,55,223,40,90,55,198,229,85,55,172,162,81,55,145,95,77,55,117,28,73,55,88,217,68,55,60,150,64,55,32,83,60,55,6,16,56,55,237,204,51,55,214,137,47,55,
194,70,43,55,176,3,39,55,162,192,34,55,151,125,30,55,145,58,26,55,144,247,21,55,147,180,17,55,157,113,13,55,172,46,9,55,194,235,4,55,223,168,0,55,7,204,248,54,96,70,240,54,201,192,231,54,68,59,223,54,209,181,214,54,114,48,206,54,39,171,197,54,242,37,189,54,210,160,180,54,202,27,172,54,217,150,163,54,1,18,155,54,67,141,146,54,160,8,138,54,24,132,129,54,90,255,113,54,191,246,96,54,95,238,79,54,63,230,62,54,94,222,45,54,191,214,28,54,101,207,11,54,159,144,245,53,3,131,211,53,250,117,177,53,135,105,143,
53,91,187,90,53,227,164,22,53,89,31,165,52,245,187,103,51,118,91,86,180,70,80,243,180,10,184,61,181,69,227,128,181,207,233,162,181,158,239,196,181,176,244,230,181,128,124,4,182,70,126,21,182,167,127,38,182,162,128,55,182,53,129,72,182,95,129,89,182,29,129,106,182,109,128,123,182,167,63,134,182,224,190,142,182,223,61,151,182,163,188,159,182,45,59,168,182,122,185,176,182,138,55,185,182,93,181,193,182,240,50,202,182,68,176,210,182,88,45,219,182,42,170,227,182,185,38,236,182,6,163,244,182,14,31,253,182,
105,205,2,183,39,11,7,183,194,72,11,183,57,134,15,183,140,195,19,183,186,0,24,183,195,61,28,183,167,122,32,183,100,183,36,183,250,243,40,183,106,48,45,183,178,108,49,183,210,168,53,183,201,228,57,183,152,32,62,183,62,92,66,183,186,151,70,183,12,211,74,183,51,14,79,183,47,73,83,183,255,131,87,183,164,190,91,183,28,249,95,183,104,51,100,183,134,109,104,183,118,167,108,183,56,225,112,183,204,26,117,183,48,84,121,183,101,141,125,183,53,227,128,183,159,255,130,183,241,27,133,183,42,56,135,183,75,84,137,
183,82,112,139,183,64,140,141,183,20,168,143,183,207,195,145,183,111,223,147,183,245,250,149,183,97,22,152,183,179,49,154,183,233,76,156,183,4,104,158,183,4,131,160,183,233,157,162,183,177,184,164,183,94,211,166,183,238,237,168,183,98,8,171,183,185,34,173,183,244,60,175,183,17,87,177,183,17,113,179,183,244,138,181,183,184,164,183,183,95,190,185,183,231,215,187,183,82,241,189,183,157,10,192,183,201,35,194,183,215,60,196,183,197,85,198,183,147,110,200,183,66,135,202,183,209,159,204,183,64,184,206,183,
142,208,208,183,187,232,210,183,200,0,213,183,180,24,215,183,126,48,217,183,39,72,219,183,174,95,221,183,19,119,223,183,86,142,225,183,118,165,227,183,116,188,229,183,79,211,231,183,7,234,233,183,156,0,236,183,13,23,238,183,90,45,240,183,132,67,242,183,137,89,244,183,106,111,246,183,38,133,248,183,189,154,250,183,48,176,252,183,125,197,254,183,82,109,0,184,211,119,1,184,65,130,2,184,156,140,3,184,228,150,4,184,25,161,5,184,58,171,6,184,71,181,7,184,65,191,8,184,40,201,9,184,250,210,10,184,184,220,
11,184,99,230,12,184,249,239,13,184,123,249,14,184,233,2,16,184,66,12,17,184,134,21,18,184,182,30,19,184,209,39,20,184,215,48,21,184,200,57,22,184,164,66,23,184,107,75,24,184,28,84,25,184,184,92,26,184,62,101,27,184,175,109,28,184,10,118,29,184,78,126,30,184,125,134,31,184,150,142,32,184,153,150,33,184,133,158,34,184,91,166,35,184,26,174,36,184,194,181,37,184,84,189,38,184,207,196,39,184,51,204,40,184,128,211,41,184,181,218,42,184,212,225,43,184,219,232,44,184,202,239,45,184,162,246,46,184,98,253,
47,184,10,4,49,184,154,10,50,184,18,17,51,184,114,23,52,184,186,29,53,184,234,35,54,184,0,42,55,184,255,47,56,184,228,53,57,184,177,59,58,184,101,65,59,184,0,71,60,184,129,76,61,184,234,81,62,184,57,87,63,184,111,92,64,184,139,97,65,184,141,102,66,184,118,107,67,184,69,112,68,184,249,116,69,184,148,121,70,184,21,126,71,184,123,130,72,184,199,134,73,184,248,138,74,184,15,143,75,184,11,147,76,184,236,150,77,184,178,154,78,184,93,158,79,184,237,161,80,184,98,165,81,184,187,168,82,184,249,171,83,184,
27,175,84,184,34,178,85,184,12,181,86,184,219,183,87,184,142,186,88,184,37,189,89,184,160,191,90,184,254,193,91,184,64,196,92,184,101,198,93,184,110,200,94,184,90,202,95,184,41,204,96,184,219,205,97,184,112,207,98,184,232,208,99,184,67,210,100,184,128,211,101,184,160,212,102,184,163,213,103,184,135,214,104,184,78,215,105,184,247,215,106,184,130,216,107,184,239,216,108,184,61,217,109,184,110,217,110,184,127,217,111,184,115,217,112,184,72,217,113,184,254,216,114,184,149,216,115,184,13,216,116,184,102,
215,117,184,161,214,118,184,187,213,119,184,183,212,120,184,147,211,121,184,79,210,122,184,236,208,123,184,105,207,124,184,199,205,125,184,4,204,126,184,33,202,127,184,15,100,128,184,253,226,128,184,219,97,129,184,169,224,129,184,103,95,130,184,20,222,130,184,177,92,131,184,62,219,131,184,185,89,132,184,37,216,132,184,128,86,133,184,202,212,133,184,3,83,134,184,44,209,134,184,68,79,135,184,75,205,135,184,65,75,136,184,38,201,136,184,250,70,137,184,189,196,137,184,111,66,138,184,15,192,138,184,159,
61,139,184,29,187,139,184,138,56,140,184,230,181,140,184,48,51,141,184,105,176,141,184,144,45,142,184,165,170,142,184,169,39,143,184,156,164,143,184,124,33,144,184,75,158,144,184,8,27,145,184,179,151,145,184,76,20,146,184,211,144,146,184,72,13,147,184,171,137,147,184,252,5,148,184,59,130,148,184,104,254,148,184,130,122,149,184,138,246,149,184,127,114,150,184,98,238,150,184,51,106,151,184,241,229,151,184,156,97,152,184,53,221,152,184,187,88,153,184,47,212,153,184,144,79,154,184,221,202,154,184,24,
70,155,184,64,193,155,184,85,60,156,184,87,183,156,184,70,50,157,184,34,173,157,184,235,39,158,184,160,162,158,184,66,29,159,184,209,151,159,184,76,18,160,184,180,140,160,184,9,7,161,184,74,129,161,184,119,251,161,184,145,117,162,184,151,239,162,184,137,105,163,184,104,227,163,184,51,93,164,184,234,214,164,184,141,80,165,184,28,202,165,184,151,67,166,184,254,188,166,184,80,54,167,184,143,175,167,184,185,40,168,184,207,161,168,184,209,26,169,184,191,147,169,184,152,12,170,184,92,133,170,184,13,254,
170,184,168,118,171,184,47,239,171,184,161,103,172,184,255,223,172,184,72,88,173,184,124,208,173,184,155,72,174,184,165,192,174,184,155,56,175,184,123,176,175,184,70,40,176,184,252,159,176,184,157,23,177,184,41,143,177,184,160,6,178,184,1,126,178,184,77,245,178,184,132,108,179,184,165,227,179,184,177,90,180,184,167,209,180,184,136,72,181,184,83,191,181,184,8,54,182,184,168,172,182,184,50,35,183,184,166,153,183,184,4,16,184,184,77,134,184,184,127,252,184,184,155,114,185,184,162,232,185,184,146,94,
186,184,108,212,186,184,48,74,187,184,222,191,187,184,117,53,188,184,246,170,188,184,97,32,189,184,181,149,189,184,243,10,190,184,26,128,190,184,43,245,190,184,37,106,191,184,8,223,191,184,213,83,192,184,139,200,192,184,42,61,193,184,178,177,193,184,36,38,194,184,126,154,194,184,194,14,195,184,238,130,195,184,4,247,195,184,2,107,196,184,233,222,196,184,185,82,197,184,113,198,197,184,19,58,198,184,157,173,198,184,15,33,199,184,106,148,199,184,174,7,200,184,218,122,200,184,238,237,200,184,235,96,201,
184,208,211,201,184,157,70,202,184,83,185,202,184,241,43,203,184,118,158,203,184,228,16,204,184,58,131,204,184,121,245,204,184,158,103,205,184,172,217,205,184,162,75,206,184,128,189,206,184,69,47,207,184,242,160,207,184,135,18,208,184,3,132,208,184,103,245,208,184,178,102,209,184,229,215,209,184,0,73,210,184,2,186,210,184,235,42,211,184,187,155,211,184,115,12,212,184,18,125,212,184,152,237,212,184,5,94,213,184,90,206,213,184,149,62,214,184,184,174,214,184,193,30,215,184,177,142,215,184,136,254,215,
184,70,110,216,184,235,221,216,184,119,77,217,184,233,188,217,184,66,44,218,184,129,155,218,184,167,10,219,184,179,121,219,184,166,232,219,184,128,87,220,184,63,198,220,184,229,52,221,184,114,163,221,184,228,17,222,184,61,128,222,184,124,238,222,184,161,92,223,184,172,202,223,184,157,56,224,184,117,166,224,184,50,20,225,184,213,129,225,184,93,239,225,184,204,92,226,184,32,202,226,184,91,55,227,184,122,164,227,184,128,17,228,184,107,126,228,184,59,235,228,184,241,87,229,184,141,196,229,184,14,49,230,
184,116,157,230,184,192,9,231,184,241,117,231,184,7,226,231,184,2,78,232,184,227,185,232,184,168,37,233,184,83,145,233,184,227,252,233,184,87,104,234,184,177,211,234,184,240,62,235,184,19,170,235,184,27,21,236,184,8,128,236,184,218,234,236,184,144,85,237,184,43,192,237,184,171,42,238,184,15,149,238,184,88,255,238,184,133,105,239,184,151,211,239,184,141,61,240,184,103,167,240,184,38,17,241,184,201,122,241,184,80,228,241,184,188,77,242,184,11,183,242,184,63,32,243,184,87,137,243,184,82,242,243,184,
50,91,244,184,246,195,244,184,157,44,245,184,41,149,245,184,152,253,245,184,235,101,246,184,33,206,246,184,60,54,247,184,58,158,247,184,27,6,248,184,225,109,248,184,137,213,248,184,22,61,249,184,133,164,249,184,216,11,250,184,15,115,250,184,40,218,250,184,37,65,251,184,5,168,251,184,201,14,252,184,111,117,252,184,249,219,252,184,102,66,253,184,182,168,253,184,232,14,254,184,254,116,254,184,247,218,254,184,210,64,255,184,145,166,255,184,25,6,0,185,219,56,0,185,142,107,0,185,51,158,0,185,201,208,0,
185,80,3,1,185,200,53,1,185,50,104,1,185,141,154,1,185,217,204,1,185,23,255,1,185,69,49,2,185,101,99,2,185,118,149,2,185,120,199,2,185,107,249,2,185,79,43,3,185,37,93,3,185,235,142,3,185,162,192,3,185,75,242,3,185,228,35,4,185,110,85,4,185,233,134,4,185,85,184,4,185,178,233,4,185,0,27,5,185,63,76,5,185,111,125,5,185,143,174,5,185,160,223,5,185,162,16,6,185,149,65,6,185,121,114,6,185,77,163,6,185,18,212,6,185,200,4,7,185,110,53,7,185,5,102,7,185,141,150,7,185,5,199,7,185,110,247,7,185,199,39,8,185,
17,88,8,185,75,136,8,185,118,184,8,185,146,232,8,185,158,24,9,185,154,72,9,185,135,120,9,185,101,168,9,185,50,216,9,185,241,7,10,185,159,55,10,185,62,103,10,185,205,150,10,185,77,198,10,185,188,245,10,185,29,37,11,185,109,84,11,185,173,131,11,185,222,178,11,185,255,225,11,185,16,17,12,185,18,64,12,185,3,111,12,185,229,157,12,185,183,204,12,185,120,251,12,185,42,42,13,185,204,88,13,185,94,135,13,185,224,181,13,185,82,228,13,185,180,18,14,185,6,65,14,185,72,111,14,185,122,157,14,185,156,203,14,185,
173,249,14,185,175,39,15,185,160,85,15,185,129,131,15,185,82,177,15,185,19,223,15,185,196,12,16,185,100,58,16,185,244,103,16,185,116,149,16,185,228,194,16,185,67,240,16,185,146,29,17,185,209,74,17,185,255,119,17,185,29,165,17,185,42,210,17,185,39,255,17,185,20,44,18,185,240,88,18,185,188,133,18,185,119,178,18,185,34,223,18,185,188,11,19,185,70,56,19,185,191,100,19,185,40,145,19,185,128,189,19,185,200,233,19,185,254,21,20,185,37,66,20,185,58,110,20,185,63,154,20,185,51,198,20,185,23,242,20,185,233,
29,21,185,172,73,21,185,93,117,21,185,253,160,21,185,141,204,21,185,12,248,21,185,122,35,22,185,215,78,22,185,36,122,22,185,95,165,22,185,138,208,22,185,164,251,22,185,173,38,23,185,165,81,23,185,140,124,23,185,98,167,23,185,39,210,23,185,219,252,23,185,126,39,24,185,15,82,24,185,144,124,24,185,0,167,24,185,95,209,24,185,173,251,24,185,233,37,25,185],"i8",4,y.a+890880);
Q([20,80,25,185,47,122,25,185,56,164,25,185,48,206,25,185,22,248,25,185,236,33,26,185,176,75,26,185,99,117,26,185,5,159,26,185,149,200,26,185,20,242,26,185,130,27,27,185,223,68,27,185,42,110,27,185,100,151,27,185,140,192,27,185,163,233,27,185,169,18,28,185,157,59,28,185,128,100,28,185,81,141,28,185,17,182,28,185,191,222,28,185,92,7,29,185,231,47,29,185,97,88,29,185,202,128,29,185,32,169,29,185,101,209,29,185,153,249,29,185,187,33,30,185,203,73,30,185,202,113,30,185,183,153,30,185,146,193,30,185,92,
233,30,185,20,17,31,185,186,56,31,185,79,96,31,185,209,135,31,185,66,175,31,185,161,214,31,185,239,253,31,185,43,37,32,185,84,76,32,185,108,115,32,185,114,154,32,185,103,193,32,185,73,232,32,185,26,15,33,185,216,53,33,185,133,92,33,185,31,131,33,185,168,169,33,185,31,208,33,185,132,246,33,185,215,28,34,185,23,67,34,185,70,105,34,185,99,143,34,185,109,181,34,185,102,219,34,185,77,1,35,185,33,39,35,185,227,76,35,185,147,114,35,185,49,152,35,185,189,189,35,185,55,227,35,185,158,8,36,185,244,45,36,185,
55,83,36,185,104,120,36,185,134,157,36,185,147,194,36,185,141,231,36,185,117,12,37,185,74,49,37,185,13,86,37,185,190,122,37,185,93,159,37,185,233,195,37,185,99,232,37,185,202,12,38,185,31,49,38,185,98,85,38,185,146,121,38,185,176,157,38,185,187,193,38,185,180,229,38,185,154,9,39,185,110,45,39,185,47,81,39,185,222,116,39,185,123,152,39,185,4,188,39,185,124,223,39,185,224,2,40,185,50,38,40,185,114,73,40,185,159,108,40,185,185,143,40,185,192,178,40,185,181,213,40,185,152,248,40,185,103,27,41,185,36,
62,41,185,206,96,41,185,102,131,41,185,235,165,41,185,93,200,41,185,188,234,41,185,9,13,42,185,66,47,42,185,105,81,42,185,125,115,42,185,127,149,42,185,109,183,42,185,73,217,42,185,17,251,42,185,199,28,43,185,106,62,43,185,251,95,43,185,120,129,43,185,226,162,43,185,57,196,43,185,126,229,43,185,175,6,44,185,206,39,44,185,217,72,44,185,210,105,44,185,183,138,44,185,138,171,44,185,73,204,44,185,246,236,44,185,143,13,45,185,21,46,45,185,137,78,45,185,233,110,45,185,54,143,45,185,112,175,45,185,150,207,
45,185,170,239,45,185,171,15,46,185,152,47,46,185,114,79,46,185,57,111,46,185,237,142,46,185,141,174,46,185,27,206,46,185,149,237,46,185,252,12,47,185,79,44,47,185,144,75,47,185,189,106,47,185,214,137,47,185,221,168,47,185,208,199,47,185,176,230,47,185,124,5,48,185,53,36,48,185,219,66,48,185,110,97,48,185,237,127,48,185,88,158,48,185,176,188,48,185,245,218,48,185,39,249,48,185,69,23,49,185,79,53,49,185,70,83,49,185,42,113,49,185,250,142,49,185,182,172,49,185,95,202,49,185,245,231,49,185,119,5,50,
185,230,34,50,185,64,64,50,185,136,93,50,185,188,122,50,185,220,151,50,185,233,180,50,185,226,209,50,185,199,238,50,185,153,11,51,185,87,40,51,185,2,69,51,185,153,97,51,185,28,126,51,185,139,154,51,185,231,182,51,185,47,211,51,185,100,239,51,185,133,11,52,185,146,39,52,185,139,67,52,185,113,95,52,185,66,123,52,185,0,151,52,185,171,178,52,185,65,206,52,185,196,233,52,185,51,5,53,185,142,32,53,185,213,59,53,185,8,87,53,185,40,114,53,185,52,141,53,185,44,168,53,185,15,195,53,185,224,221,53,185,156,248,
53,185,68,19,54,185,216,45,54,185,89,72,54,185,197,98,54,185,30,125,54,185,99,151,54,185,147,177,54,185,176,203,54,185,185,229,54,185,173,255,54,185,142,25,55,185,91,51,55,185,19,77,55,185,184,102,55,185,73,128,55,185,197,153,55,185,46,179,55,185,130,204,55,185,195,229,55,185,239,254,55,185,7,24,56,185,12,49,56,185,252,73,56,185,216,98,56,185,159,123,56,185,83,148,56,185,243,172,56,185,126,197,56,185,245,221,56,185,88,246,56,185,167,14,57,185,226,38,57,185,8,63,57,185,27,87,57,185,25,111,57,185,3,
135,57,185,216,158,57,185,154,182,57,185,71,206,57,185,224,229,57,185,100,253,57,185,213,20,58,185,49,44,58,185,121,67,58,185,172,90,58,185,203,113,58,185,214,136,58,185,205,159,58,185,175,182,58,185,125,205,58,185,55,228,58,185,220,250,58,185,109,17,59,185,233,39,59,185,82,62,59,185,165,84,59,185,229,106,59,185,16,129,59,185,38,151,59,185,40,173,59,185,22,195,59,185,239,216,59,185,180,238,59,185,101,4,60,185,1,26,60,185,136,47,60,185,251,68,60,185,90,90,60,185,164,111,60,185,218,132,60,185,251,153,
60,185,8,175,60,185,0,196,60,185,227,216,60,185,179,237,60,185,109,2,61,185,19,23,61,185,165,43,61,185,34,64,61,185,138,84,61,185,222,104,61,185,29,125,61,185,72,145,61,185,94,165,61,185,95,185,61,185,76,205,61,185,37,225,61,185,232,244,61,185,151,8,62,185,50,28,62,185,184,47,62,185,41,67,62,185,133,86,62,185,205,105,62,185,0,125,62,185,31,144,62,185,41,163,62,185,30,182,62,185,255,200,62,185,203,219,62,185,130,238,62,185,36,1,63,185,178,19,63,185,43,38,63,185,143,56,63,185,223,74,63,185,26,93,63,
185,64,111,63,185,81,129,63,185,78,147,63,185,54,165,63,185,9,183,63,185,199,200,63,185,113,218,63,185,5,236,63,185,133,253,63,185,241,14,64,185,71,32,64,185,137,49,64,185,181,66,64,185,205,83,64,185,208,100,64,185,191,117,64,185,152,134,64,185,93,151,64,185,13,168,64,185,168,184,64,185,46,201,64,185,159,217,64,185,252,233,64,185,67,250,64,185,118,10,65,185,148,26,65,185,157,42,65,185,145,58,65,185,112,74,65,185,58,90,65,185,239,105,65,185,144,121,65,185,27,137,65,185,146,152,65,185,244,167,65,185,
64,183,65,185,120,198,65,185,155,213,65,185,169,228,65,185,162,243,65,185,134,2,66,185,85,17,66,185,15,32,66,185,181,46,66,185,69,61,66,185,192,75,66,185,38,90,66,185,119,104,66,185,180,118,66,185,219,132,66,185,237,146,66,185,235,160,66,185,211,174,66,185,166,188,66,185,101,202,66,185,14,216,66,185,162,229,66,185,33,243,66,185,139,0,67,185,225,13,67,185,33,27,67,185,76,40,67,185,98,53,67,185,99,66,67,185,79,79,67,185,38,92,67,185,231,104,67,185,148,117,67,185,44,130,67,185,175,142,67,185,28,155,
67,185,117,167,67,185,184,179,67,185,230,191,67,185,0,204,67,185,4,216,67,185,243,227,67,185,205,239,67,185,145,251,67,185,65,7,68,185,220,18,68,185,97,30,68,185,210,41,68,185,45,53,68,185,115,64,68,185,164,75,68,185,192,86,68,185,199,97,68,185,185,108,68,185,149,119,68,185,93,130,68,185,15,141,68,185,172,151,68,185,52,162,68,185,167,172,68,185,4,183,68,185,77,193,68,185,128,203,68,185,158,213,68,185,167,223,68,185,155,233,68,185,122,243,68,185,67,253,68,185,248,6,69,185,151,16,69,185,33,26,69,185,
150,35,69,185,245,44,69,185,64,54,69,185,117,63,69,185,149,72,69,185,160,81,69,185,150,90,69,185,118,99,69,185,65,108,69,185,247,116,69,185,152,125,69,185,36,134,69,185,154,142,69,185,252,150,69,185,72,159,69,185,127,167,69,185,160,175,69,185,173,183,69,185,164,191,69,185,134,199,69,185,83,207,69,185,10,215,69,185,172,222,69,185,58,230,69,185,177,237,69,185,20,245,69,185,97,252,69,185,154,3,70,185,189,10,70,185,202,17,70,185,195,24,70,185,166,31,70,185,116,38,70,185,45,45,70,185,208,51,70,185,95,
58,70,185,216,64,70,185,59,71,70,185,138,77,70,185,195,83,70,185,231,89,70,185,246,95,70,185,240,101,70,185,212,107,70,185,163,113,70,185,93,119,70,185,2,125,70,185,145,130,70,185,11,136,70,185,112,141,70,185,191,146,70,185,250,151,70,185,31,157,70,185,47,162,70,185,41,167,70,185,14,172,70,185,222,176,70,185,153,181,70,185,63,186,70,185,207,190,70,185,74,195,70,185,176,199,70,185,0,204,70,185,59,208,70,185,97,212,70,185,114,216,70,185,110,220,70,185,84,224,70,185,37,228,70,185,224,231,70,185,135,
235,70,185,24,239,70,185,148,242,70,185,250,245,70,185,76,249,70,185,136,252,70,185,175,255,70,185,192,2,71,185,189,5,71,185,164,8,71,185,118,11,71,185,50,14,71,185,218,16,71,185,108,19,71,185,232,21,71,185,80,24,71,185,162,26,71,185,223,28,71,185,7,31,71,185,26,33,71,185,23,35,71,185,255,36,71,185,210,38,71,185,143,40,71,185,56,42,71,185,203,43,71,185,73,45,71,185,177,46,71,185,4,48,71,185,67,49,71,185,107,50,71,185,127,51,71,185,125,52,71,185,103,53,71,185,58,54,71,185,249,54,71,185,162,55,71,185,
55,56,71,185,182,56,71,185,31,57,71,185,116,57,71,185,179,57,71,185,221,57,71,185,242,57,71,185,242,57,71,185,220,57,71,185,177,57,71,185,113,57,71,185,28,57,71,185,177,56,71,185,50,56,71,185,157,55,71,185,243,54,71,185,51,54,71,185,95,53,71,185,117,52,71,185,118,51,71,185,98,50,71,185,57,49,71,185,250,47,71,185,167,46,71,185,62,45,71,185,192,43,71,185,44,42,71,185,132,40,71,185,198,38,71,185,244,36,71,185,12,35,71,185,14,33,71,185,252,30,71,185,213,28,71,185,152,26,71,185,70,24,71,185,223,21,71,
185,99,19,71,185,210,16,71,185,43,14,71,185,112,11,71,185,159,8,71,185,185,5,71,185,190,2,71,185,174,255,70,185,137,252,70,185,78,249,70,185,255,245,70,185,154,242,70,185,32,239,70,185,145,235,70,185,237,231,70,185,52,228,70,185,102,224,70,185,130,220,70,185,138,216,70,185,124,212,70,185,89,208,70,185,34,204,70,185,213,199,70,185,115,195,70,185,252,190,70,185,111,186,70,185,206,181,70,185,24,177,70,185,77,172,70,185,108,167,70,185,119,162,70,185,108,157,70,185,76,152,70,185,24,147,70,185,206,141,
70,185,111,136,70,185,251,130,70,185,115,125,70,185,213,119,70,185,34,114,70,185,90,108,70,185,125,102,70,185,139,96,70,185,132,90,70,185,104,84,70,185,55,78,70,185,241,71,70,185,150,65,70,185,38,59,70,185,161,52,70,185,7,46,70,185,88,39,70,185,148,32,70,185,187,25,70,185,205,18,70,185,203,11,70,185,179,4,70,185,134,253,69,185,68,246,69,185,238,238,69,185,130,231,69,185,2,224,69,185,108,216,69,185,194,208,69,185,3,201,69,185,46,193,69,185,69,185,69,185,71,177,69,185,52,169,69,185,13,161,69,185,208,
152,69,185,126,144,69,185,24,136,69,185,157,127,69,185,12,119,69,185,103,110,69,185,173,101,69,185,223,92,69,185,251,83,69,185,2,75,69,185,245,65,69,185,211,56,69,185,156,47,69,185,80,38,69,185,240,28,69,185,122,19,69,185,240,9,69,185,81,0,69,185,157,246,68,185,212,236,68,185,247,226,68,185,5,217,68,185,254,206,68,185,226,196,68,185,178,186,68,185,108,176,68,185,18,166,68,185,164,155,68,185,32,145,68,185,136,134,68,185,219,123,68,185,25,113,68,185,67,102,68,185,88,91,68,185,88,80,68,185,68,69,68,
185,27,58,68,185,221,46,68,185,138,35,68,185,35,24,68,185,167,12,68,185,23,1,68,185,114,245,67,185,184,233,67,185,233,221,67,185,6,210,67,185,15,198,67,185,2,186,67,185,225,173,67,185,172,161,67,185,98,149,67,185,3,137,67,185,144,124,67,185,8,112,67,185,107,99,67,185,186,86,67,185,245,73,67,185,26,61,67,185,44,48,67,185,41,35,67,185,17,22,67,185,229,8,67,185,164,251,66,185,78,238,66,185,229,224,66,185,102,211,66,185,212,197,66,185,44,184,66,185,113,170,66,185,160,156,66,185,188,142,66,185,195,128,
66,185,181,114,66,185,147,100,66,185,93,86,66,185,18,72,66,185,179,57,66,185,63,43,66,185,183,28,66,185,26,14,66,185,106,255,65,185,164,240,65,185,203,225,65,185,221,210,65,185,218,195,65,185,196,180,65,185,153,165,65,185,90,150,65,185,6,135,65,185,158,119,65,185,34,104,65,185,145,88,65,185,236,72,65,185,51,57,65,185,102,41,65,185,132,25,65,185,142,9,65,185,132,249,64,185,102,233,64,185,51,217,64,185,236,200,64,185,145,184,64,185,34,168,64,185,158,151,64,185,7,135,64,185,91,118,64,185,155,101,64,
185,199,84,64,185,222,67,64,185,226,50,64,185,209,33,64,185,172,16,64,185,115,255,63,185,38,238,63,185,197,220,63,185,80,203,63,185,199,185,63,185,41,168,63,185,120,150,63,185,178,132,63,185,217,114,63,185,235,96,63,185,234,78,63,185,212,60,63,185,170,42,63,185,109,24,63,185,27,6,63,185,181,243,62,185,60,225,62,185,174,206,62,185,12,188,62,185,87,169,62,185,141,150,62,185,176,131,62,185,191,112,62,185,185,93,62,185,160,74,62,185,115,55,62,185,50,36,62,185,221,16,62,185,117,253,61,185,248,233,61,185,
104,214,61,185,196,194,61,185,12,175,61,185,64,155,61,185,96,135,61,185,109,115,61,185,101,95,61,185,74,75,61,185,27,55,61,185,217,34,61,185,131,14,61,185,25,250,60,185,155,229,60,185,9,209,60,185,100,188,60,185,171,167,60,185,222,146,60,185,254,125,60,185,10,105,60,185,3,84,60,185,231,62,60,185,185,41,60,185,118,20,60,185,32,255,59,185,182,233,59,185,57,212,59,185,168,190,59,185,3,169,59,185,75,147,59,185,128,125,59,185,160,103,59,185,174,81,59,185,168,59,59,185,142,37,59,185,97,15,59,185,32,249,
58,185,204,226,58,185,100,204,58,185,233,181,58,185,90,159,58,185,184,136,58,185,3,114,58,185,58,91,58,185,94,68,58,185,110,45,58,185,107,22,58,185,85,255,57,185,43,232,57,185,238,208,57,185,157,185,57,185,57,162,57,185,194,138,57,185,56,115,57,185,154,91,57,185,233,67,57,185,37,44,57,185,77,20,57,185,99,252,56,185,101,228,56,185,84,204,56,185,47,180,56,185,247,155,56,185,173,131,56,185,79,107,56,185,222,82,56,185,89,58,56,185,194,33,56,185,23,9,56,185,89,240,55,185,137,215,55,185,165,190,55,185,
174,165,55,185,164,140,55,185,135,115,55,185,86,90,55,185,19,65,55,185,189,39,55,185,84,14,55,185,215,244,54,185,72,219,54,185,166,193,54,185,241,167,54,185,41,142,54,185,77,116,54,185,95,90,54,185,95,64,54,185,75,38,54,185,36,12,54,185,234,241,53,185,158,215,53,185,63,189,53,185,204,162,53,185,71,136,53,185,176,109,53,185,5,83,53,185,72,56,53,185,119,29,53,185,149,2,53,185,159,231,52,185,150,204,52,185,123,177,52,185,77,150,52,185,13,123,52,185,185,95,52,185,84,68,52,185,219,40,52,185,80,13,52,185,
178,241,51,185,1,214,51,185,62,186,51,185,104,158,51,185,128,130,51,185,133,102,51,185,120,74,51,185,87,46,51,185,37,18,51,185,224,245,50,185,136,217,50,185,30,189,50,185,162,160,50,185,19,132,50,185,113,103,50,185,189,74,50,185,247,45,50,185,30,17,50,185,51,244,49,185,53,215,49,185,37,186,49,185,3,157,49,185,206,127,49,185,135,98,49,185,46,69,49,185,194,39,49,185,69,10,49,185,180,236,48,185,18,207,48,185,93,177,48,185,150,147,48,185,189,117,48,185,210,87,48,185,212,57,48,185,196,27,48,185,162,253,
47,185,110,223,47,185,40,193,47,185,208,162,47,185,101,132,47,185,233,101,47,185,90,71,47,185,185,40,47,185,6,10,47,185,66,235,46,185,107,204,46,185,130,173,46,185,135,142,46,185,122,111,46,185,91,80,46,185,42,49,46,185,232,17,46,185,147,242,45,185,44,211,45,185,180,179,45,185,42,148,45,185,141,116,45,185,223,84,45,185,31,53,45,185,78,21,45,185,106,245,44,185,117,213,44,185,109,181,44,185,85,149,44,185,42,117,44,185,237,84,44,185,159,52,44,185,63,20,44,185,206,243,43,185,75,211,43,185,182,178,43,
185,15,146,43,185,87,113,43,185,141,80,43,185,178,47,43,185,197,14,43,185,198,237,42,185,182,204,42,185,148,171,42,185,97,138,42,185,28,105,42,185,198,71,42,185,94,38,42,185,229,4,42,185,91,227,41,185,191,193,41,185,17,160,41,185,82,126,41,185,130,92,41,185,160,58,41,185,173,24,41,185,169,246,40,185,147,212,40,185,108,178,40,185,52,144,40,185,234,109,40,185,143,75,40,185,35,41,40,185,166,6,40,185,23,228,39,185,119,193,39,185,198,158,39,185,4,124,39,185,49,89,39,185,76,54,39,185,87,19,39,185,80,240,
38,185,56,205,38,185,15,170,38,185,213,134,38,185,138,99,38,185,46,64,38,185,193,28,38,185,67,249,37,185,180,213,37,185,20,178,37,185,99,142,37,185,161,106,37,185,206,70,37,185,235,34,37,185,246,254,36,185,241,218,36,185,218,182,36,185,179,146,36,185,123,110,36,185,51,74,36,185,217,37,36,185,111,1,36,185,243,220,35,185,104,184,35,185,203,147,35,185,30,111,35,185,96,74,35,185,145,37,35,185,178,0,35,185,194,219,34,185,193,182,34,185,176,145,34,185,143,108,34,185,92,71,34,185,25,34,34,185,198,252,33,
185,98,215,33,185,238,177,33,185,105,140,33,185,211,102,33,185,45,65,33,185,119,27,33,185,176,245,32,185,217,207,32,185,242,169,32,185,250,131,32,185,242,93,32,185,217,55,32,185,176,17,32,185,119,235,31,185,45,197,31,185,212,158,31,185,106,120,31,185,239,81,31,185,101,43,31,185,202,4,31,185,31,222,30,185,100,183,30,185,153,144,30,185,190,105,30,185,211,66,30,185,215,27,30,185,204,244,29,185,176,205,29,185,132,166,29,185,73,127,29,185,253,87,29,185,161,48,29,185,54,9,29,185,186,225,28,185,46,186,28,
185,147,146,28,185,232,106,28,185,44,67,28,185,97,27,28,185,134,243,27,185,155,203,27,185,161,163,27,185,150,123,27,185,124,83,27,185,82,43,27,185,25,3,27,185,207,218,26,185,118,178,26,185,13,138,26,185,149,97,26,185,13,57,26,185,117,16,26,185,206,231,25,185,23,191,25,185,80,150,25,185,122,109,25,185,148,68,25,185,159,27,25,185,155,242,24,185,134,201,24,185,99,160,24,185,48,119,24,185,237,77,24,185,155,36,24,185,58,251,23,185,201,209,23,185,73,168,23,185,186,126,23,185,27,85,23,185,109,43,23,185,
176,1,23,185,227,215,22,185,7,174,22,185,28,132,22,185,34,90,22,185,25,48,22,185,0,6,22,185,216,219,21,185,161,177,21,185,91,135,21,185,6,93,21,185,162,50,21,185,47,8,21,185,172,221,20,185,27,179,20,185,122,136,20,185,203,93,20,185,13,51,20,185,64,8,20,185,99,221,19,185,120,178,19,185,126,135,19,185,117,92,19,185,94,49,19,185,55,6,19,185,2,219,18,185,190,175,18,185,107,132,18,185,9,89,18,185,153,45,18,185,26,2,18,185,140,214,17,185,239,170,17,185,68,127,17,185,138,83,17,185,194,39,17,185,235,251,
16,185,5,208,16,185,17,164,16,185,14,120,16,185,253,75,16,185,221,31,16,185,175,243,15,185,114,199,15,185,39,155,15,185,205,110,15,185,101,66,15,185,239,21,15,185,106,233,14,185,215,188,14,185,53,144,14,185,134,99,14,185,200,54,14,185,251,9,14,185,33,221,13,185,56,176,13,185,65,131,13,185,60,86,13,185,40,41,13,185,7,252,12,185,215,206,12,185,153,161,12,185,77,116,12,185,244,70,12,185,140,25,12,185,22,236,11,185,145,190,11,185,255,144,11,185,95,99,11,185,177,53,11,185,246,7,11,185,44,218,10,185,84,
172,10,185,110,126,10,185,123,80,10,185,122,34,10,185,107,244,9,185,78,198,9,185,35,152,9,185,235,105,9,185,165,59,9,185,81,13,9,185,239,222,8,185,128,176,8,185,3,130,8,185,121,83,8,185,225,36,8,185,59,246,7,185,136,199,7,185,199,152,7,185,249,105,7,185,29,59,7,185,52,12,7,185,61,221,6,185,57,174,6,185,39,127,6,185,8,80,6,185,220,32,6,185,162,241,5,185,91,194,5,185,6,147,5,185,165,99,5,185,54,52,5,185,185,4,5,185,48,213,4,185,153,165,4,185,245,117,4,185,68,70,4,185,134,22,4,185,187,230,3,185,226,
182,3,185,252,134,3,185,10,87,3,185,10,39,3,185,253,246,2,185,228,198,2,185,189,150,2,185,137,102,2,185,72,54,2,185,251,5,2,185,160,213,1,185,57,165,1,185,197,116,1,185,68,68,1,185,182,19,1,185,27,227,0,185,116,178,0,185,192,129,0,185,255,80,0,185,49,32,0,185,174,222,255,184,224,124,255,184,248,26,255,184,248,184,254,184,222,86,254,184,171,244,253,184,95,146,253,184,250,47,253,184,124,205,252,184,229,106,252,184,52,8,252,184,107,165,251,184,137,66,251,184,143,223,250,184,123,124,250,184,79,25,250,
184,10,182,249,184,172,82,249,184,54,239,248,184,168,139,248,184,0,40,248,184,64,196,247,184,104,96,247,184,120,252,246,184,111,152,246,184,78,52,246,184,20,208,245,184,194,107,245,184,88,7,245,184,214,162,244,184,60,62,244,184,138,217,243,184,192,116,243,184,222,15,243,184,228,170,242,184,210,69,242,184,168,224,241,184,103,123,241,184,14,22,241,184,157,176,240,184,20,75,240,184,116,229,239,184,188,127,239,184,237,25,239,184,6,180,238,184,8,78,238,184,243,231,237,184,198,129,237,184,130,27,237,184,
38,181,236,184,180,78,236,184,42,232,235,184,137,129,235,184,209,26,235,184,2,180,234,184,28,77,234,184,31,230,233,184,11,127,233,184,225,23,233,184,159,176,232,184,71,73,232,184,216,225,231,184,82,122,231,184,182,18,231,184,3,171,230,184,58,67,230,184,90,219,229,184,100,115,229,184,87,11,229,184,52,163,228,184,251,58,228,184,171,210,227,184,69,106,227,184,201,1,227,184,55,153,226,184,143,48,226,184,209,199,225,184,252,94,225,184,18,246,224,184,18,141,224,184,252,35,224,184,208,186,223,184,143,81,
223,184,56,232,222,184,203,126,222,184,72,21,222,184,176,171,221,184,2,66,221,184,63,216,220,184,102,110,220,184,120,4,220,184,117,154,219,184,92,48,219,184,46,198,218,184,235,91,218,184,147,241,217,184,37,135,217,184,162,28,217,184,11,178,216,184,94,71,216,184,157,220,215,184,198,113,215,184,219,6,215,184,219,155,214,184,198,48,214,184,156,197,213,184,94,90,213,184,11,239,212,184,164,131,212,184,40,24,212,184,151,172,211,184,242,64,211,184,57,213,210,184,107,105,210,184,137,253,209,184,147,145,209,
184,137,37,209,184,106,185,208,184,56,77,208,184,241,224,207,184,150,116,207,184,39,8,207,184,165,155,206,184,14,47,206,184,100,194,205,184,166,85,205,184,212,232,204,184,238,123,204,184,245,14,204,184,232,161,203,184,200,52,203,184,148,199,202,184,77,90,202,184,242,236,201,184,132,127,201,184,3,18,201,184,110,164,200,184,198,54,200,184,11,201,199,184,61,91,199,184,91,237,198,184,103,127,198,184,96,17,198,184,70,163,197,184,25,53,197,184,217,198,196,184,134,88,196,184,32,234,195,184,168,123,195,184,
29,13,195,184,128,158,194,184,208,47,194,184,13,193,193,184,56,82,193,184,81,227,192,184,87,116,192,184,75,5,192,184,44,150,191,184,252,38,191,184,185,183,190,184,100,72,190,184,253,216,189,184,132,105,189,184,249,249,188,184,92,138,188,184,173,26,188,184,236,170,187,184,26,59,187,184,54,203,186,184,64,91,186,184,56,235,185,184,31,123,185,184,244,10,185,184,184,154,184,184,106,42,184,184,11,186,183,184,155,73,183,184,25,217,182,184,134,104,182,184,225,247,181,184,44,135,181,184,101,22,181,184,141,
165,180,184,165,52,180,184,171,195,179,184,160,82,179,184,133,225,178,184,89,112,178,184,27,255,177,184,206,141,177,184,111,28,177,184,0,171,176,184,128,57,176,184,240,199,175,184,79,86,175,184,158,228,174,184,220,114,174,184,10,1,174,184,40,143,173,184,53,29,173,184,50,171,172,184,31,57,172,184,252,198,171,184,201,84,171,184,134,226,170,184,51,112,170,184,208,253,169,184,93,139,169,184,219,24,169,184,72,166,168,184,166,51,168,184,245,192,167,184,51,78,167,184,98,219,166,184,130,104,166,184,146,245,
165,184,146,130,165,184,132,15,165,184,102,156,164,184,56,41,164,184,252,181,163,184,176,66,163,184,85,207,162,184,235,91,162,184,114,232,161,184,234,116,161,184,83,1,161,184,174,141,160,184,249,25,160,184,54,166,159,184,100,50,159,184,131,190,158,184,147,74,158,184,149,214,157,184,137,98,157,184,110,238,156,184,68,122,156,184,12,6,156,184,198,145,155,184,114,29,155,184,15,169,154,184,158,52,154,184,31,192,153,184,146,75,153,184,247,214,152,184,78,98,152,184,151,237,151,184,210,120,151,184,255,3,
151,184,30,143,150,184,48,26,150,184,52,165,149,184,42,48,149,184,19,187,148,184,238,69,148,184,187,208,147,184,124,91,147,184,47,230,146,184,212,112,146,184,108,251,145,184,247,133,145,184,117,16,145,184,230,154,144,184,73,37,144,184,160,175,143,184,233,57,143,184,38,196,142,184,85,78,142,184,120,216,141,184,142,98,141,184,151,236,140,184,148,118,140,184,132,0,140,184,103,138,139,184,62,20,139,184,8,158,138,184,198,39,138,184,119,177,137,184,28,59,137,184,181,196,136,184,66,78,136,184,194,215,135,
184,54,97,135,184,159,234,134,184,251,115,134,184,75,253,133,184,143,134,133,184,199,15,133,184,244,152,132,184,20,34,132,184,41,171,131,184,50,52,131,184,48,189,130,184,34,70,130,184,8,207,129,184,227,87,129,184,179,224,128,184,119,105,128,184,96,228,127,184,187,245,126,184,255,6,126,184,46,24,125,184,69,41,124,184,71,58,123,184,51,75,122,184,9,92,121,184,201,108,120,184,115,125,119,184,7,142,118,184,134,158,117,184,239,174,116,184,67,191,115,184,130,207,114,184,172,223,113,184,193,239,112,184,192,
255,111,184,171,15,111,184,129,31,110,184,66,47,109,184,239,62,108,184,136,78,107,184,12,94,106,184,124,109,105,184,215,124,104,184,31,140,103,184,83,155,102,184,115,170,101,184,127,185,100,184,119,200,99,184,92,215,98,184,46,230,97,184,236,244,96,184,151,3,96,184,47,18,95,184,180,32,94,184,38,47,93,184,133,61,92,184,210,75,91,184,11,90,90,184,51,104,89,184,72,118,88,184,74,132,87,184,59,146,86,184,25,160,85,184,229,173,84,184,160,187,83,184,72,201,82,184,223,214,81,184,101,228,80,184,217,241,79,
184,59,255,78,184,140,12,78,184,204,25,77,184,251,38,76,184,25,52,75,184,38,65,74,184,35,78,73,184,14,91,72,184,233,103,71,184,180,116,70,184,110,129,69,184,24,142,68,184,178,154,67,184,60,167,66,184,182,179,65,184,32,192,64,184,122,204,63,184,197,216,62,184,0,229,61,184,43,241,60,184,72,253,59,184,85,9,59,184,83,21,58,184,66,33,57,184,34,45,56,184,243,56,55,184,181,68,54,184,105,80,53,184,14,92,52,184,165,103,51,184,46,115,50,184,168,126,49,184,20,138,48,184,115,149,47,184,195,160,46,184,6,172,45,
184,59,183,44,184,98,194,43,184,124,205,42,184,136,216,41,184,136,227,40,184,122,238,39,184,95,249,38,184,55,4,38,184,2,15,37,184,192,25,36,184,114,36,35,184,23,47,34,184,175,57,33,184,60,68,32,184,188,78,31,184,48,89,30,184,152,99,29,184,244,109,28,184,68,120,27,184,136,130,26,184,193,140,25,184,238,150,24,184,16,161,23,184,38,171,22,184,50,181,21,184,50,191,20,184,39,201,19,184,17,211,18,184,241,220,17,184,197,230,16,184,144,240,15,184,79,250,14,184,4,4,14,184,175,13,13,184,80,23,12,184,231,32,
11,184,116,42,10,184,247,51,9,184,112,61,8,184,223,70,7,184,69,80,6,184,161,89,5,184,244,98,4,184,62,108,3,184,127,117,2,184,182,126,1,184,229,135,0,184,22,34,255,183,80,52,253,183,121,70,251,183,145,88,249,183,152,106,247,183,142,124,245,183,116,142,243,183,74,160,241,183,15,178,239,183,197,195,237,183,107,213,235,183,2,231,233,183,138,248,231,183,2,10,230,183,108,27,228,183,199,44,226,183,20,62,224,183,83,79,222,183,132,96,220,183,167,113,218,183,188,130,216,183,197,147,214,183,192,164,212,183,
174,181,210,183,143,198,208,183,100,215,206,183,45,232,204,183,233,248,202,183,154,9,201,183,63,26,199,183,216,42,197,183,102,59,195,183,234,75,193,183,98,92,191,183,208,108,189,183,51,125,187,183,140,141,185,183,219,157,183,183,32,174,181,183,92,190,179,183,142,206,177,183,183,222,175,183,215,238,173,183,238,254,171,183,253,14,170,183,3,31,168,183,1,47,166,183,247,62,164,183,230,78,162,183,204,94,160,183,172,110,158,183,132,126,156,183,86,142,154,183,33,158,152,183,229,173,150,183,163,189,148,183,
91,205,146,183,13,221,144,183,186,236,142,183,97,252,140,183,2,12,139,183,159,27,137,183,55,43,135,183,202,58,133,183,88,74,131,183,227,89,129,183,211,210,126,183,216,241,122,183,214,16,119,183,205,47,115,183,190,78,111,183,169,109,107,183,143,140,103,183,111,171,99,183,74,202,95,183,34,233,91,183,245,7,88,183,197,38,84,183,146,69,80,183,92,100,76,183,36,131,72,183,234,161,68,183,174,192,64,183,114,223,60,183,53,254,56,183,248,28,53,183,187,59,49,183,127,90,45,183,68,121,41,183,10,152,37,183,210,
182,33,183,157,213,29,183,106,244,25,183,59,19,22,183,15,50,18,183,230,80,14,183,195,111,10,183,164,142,6,183,138,173,2,183,236,152,253,182,207,214,245,182,192,20,238,182,190,82,230,182,203,144,222,182,231,206,214,182,20,13,207,182,81,75,199,182,160,137,191,182,2,200,183,182,120,6,176,182,1,69,168,182,160,131,160,182,85,194,152,182,32,1,145,182,3,64,137,182,255,126,129,182,39,124,115,182,132,250,99,182,24,121,84,182,226,247,68,182,230,118,53,182,37,246,37,182,160,117,22,182,89,245,6,182,164,234,238,
181,24,235,207,181,18,236,176,181,149,237,145,181,73,223,101,181,137,228,39,181,220,213,211,180,0,202,47,180,211,37,144,51,118,245,159,52,123,239,13,53,244,226,75,53,144,234,132,53,251,226,163,53,185,218,194,53,199,209,225,53,16,100,0,54,225,222,15,54,85,89,31,54,106,211,46,54,30,77,62,54,112,198,77,54,95,63,93,54,232,183,108,54,9,48,124,54,225,211,133,54,136,143,141,54,250,74,149,54,52,6,157,54,55,193,164,54,1,124,172,54,146,54,180,54,233,240,187,54,5,171,195,54,229,100,203,54,137,30,211,54,239,
215,218,54,23,145,226,54,0,74,234,54,169,2,242,54,17,187,249,54,156,185,0,55,142,149,4,55,95,113,8,55,14,77,12,55,154,40,16,55,4,4,20,55,75,223,23,55,109,186,27,55,108,149,31,55,71,112,35,55,252,74,39,55,141,37,43,55,247,255,46,55,60,218,50,55,90,180,54,55,82,142,58,55,34,104,62,55,202,65,66,55,75,27,70,55,162,244,73,55,209,205,77,55,215,166,81,55,179,127,85,55,101,88,89,55,236,48,93,55,72,9,97,55,121,225,100,55,127,185,104,55,88,145,108,55,4,105,112,55,132,64,116,55,214,23,120,55,251,238,123,55,
241,197,127,55,92,206,129,55,169,185,131,55,221,164,133,55,250,143,135,55,255,122,137,55,235,101,139,55,191,80,141,55,122,59,143,55,28,38,145,55,165,16,147,55,21,251,148,55,107,229,150,55,168,207,152,55,203,185,154,55,211,163,156,55,193,141,158,55,149,119,160,55,78,97,162,55,236,74,164,55,111,52,166,55,214,29,168,55,34,7,170,55,82,240,171,55,103,217,173,55,95,194,175,55,59,171,177,55,250,147,179,55,156,124,181,55,34,101,183,55,138,77,185,55,213,53,187,55,3,30,189,55,19,6,191,55,4,238,192,55,216,213,
194,55,141,189,196,55,36,165,198,55,156,140,200,55,245,115,202,55,47,91,204,55,74,66,206,55,68,41,208,55,32,16,210,55,219,246,211,55,118,221,213,55,241,195,215,55,75,170,217,55,132,144,219,55,157,118,221,55,148,92,223,55,106,66,225,55,30,40,227,55,177,13,229,55,34,243,230,55,112,216,232,55,157,189,234,55,166,162,236,55,141,135,238,55,81,108,240,55,242,80,242,55,111,53,244,55,201,25,246,55,255,253,247,55,17,226,249,55,255,197,251,55,201,169,253,55,110,141,255,55,119,184,0,56,37,170,1,56,192,155,2,
56,73,141,3,56,190,126,4,56,33,112,5,56,113,97,6,56,174,82,7,56,216,67,8,56,238,52,9,56,241,37,10,56,225,22,11,56,189,7,12,56,133,248,12,56,58,233,13,56,218,217,14,56,103,202,15,56,224,186,16,56,69,171,17,56,149,155,18,56,209,139,19,56,249,123,20,56,12,108,21,56,10,92,22,56,244,75,23,56,200,59,24,56,136,43,25,56,51,27,26,56,201,10,27,56,73,250,27,56,180,233,28,56,10,217,29,56,74,200,30,56,117,183,31,56,138,166,32,56,137,149,33,56,114,132,34,56,69,115,35,56,2,98,36,56,169,80,37,56,57,63,38,56,179,
45,39,56,23,28,40,56,100,10,41,56,154,248,41,56,186,230,42,56,194,212,43,56,180,194,44,56,142,176,45,56,81,158,46,56,253,139,47,56,146,121,48,56,15,103,49,56,117,84,50,56,195,65,51,56,249,46,52,56,23,28,53,56,30,9,54,56,12,246,54,56,226,226,55,56,160,207,56,56,70,188,57,56,211,168,58,56,71,149,59,56,163,129,60,56,230,109,61,56,17,90,62,56,34,70,63,56,26,50,64,56,250,29,65,56,192,9,66,56,109,245,66,56,0,225,67,56,122,204,68,56,218,183,69,56,33,163,70,56,77,142,71,56,96,121,72,56,89,100,73,56,56,79,
74,56,253,57,75,56,167,36,76,56,55,15,77,56,172,249,77,56,7,228,78,56,72,206,79,56,109,184,80,56,120,162,81,56,104,140,82,56,61,118,83,56,246,95,84,56,149,73,85,56,24,51,86,56,128,28,87,56,204,5,88,56,252,238,88,56,17,216,89,56,10,193,90,56,231,169,91,56,169,146,92,56,78,123,93,56,215,99,94,56,67,76,95,56,148,52,96,56,199,28,97,56,223,4,98,56,217,236,98,56,183,212,99,56,120,188,100,56,29,164,101,56,164,139,102,56,14,115,103,56,91,90,104,56,138,65,105,56,156,40,106,56,145,15,107,56,104,246,107,56,
33,221,108,56,189,195,109,56,58,170,110,56,154,144,111,56,220,118,112,56,255,92,113,56,5,67,114,56,236,40,115,56,180,14,116,56,94,244,116,56,234,217,117,56,86,191,118,56,164,164,119,56,211,137,120,56,227,110,121,56,212,83,122,56,166,56,123,56,88,29,124,56,235,1,125,56,95,230,125,56,179,202,126,56,232,174,127,56,126,73,128,56,121,187,128,56,99,45,129,56,62,159,129,56,8,17,130,56,194,130,130,56,109,244,130,56,7,102,131,56,144,215,131,56,10,73,132,56,115,186,132,56,204,43,133,56,20,157,133,56,76,14,
134,56,116,127,134,56,139,240,134,56,145,97,135,56,134,210,135,56,107,67,136,56,64,180,136,56,3,37,137,56,182,149,137,56,87,6,138,56,232,118,138,56,104,231,138,56,215,87,139,56,52,200,139,56,129,56,140,56,189,168,140,56,231,24,141,56,0,137,141,56,8,249,141,56,254,104,142,56,227,216,142,56,183,72,143,56,121,184,143,56,42,40,144,56,201,151,144,56,86,7,145,56,210,118,145,56,60,230,145,56,149,85,146,56,219,196,146,56,16,52,147,56,51,163,147,56,68,18,148,56,67,129,148,56,48,240,148,56,12,95,149,56,212,
205,149,56,139,60,150,56,48,171,150,56,194,25,151,56,66,136,151,56,176,246,151,56,12,101,152,56,85,211,152,56,139,65,153,56,175,175,153,56,193,29,154,56,192,139,154,56,172,249,154,56,134,103,155,56,77,213,155,56,1,67,156,56,162,176,156,56,49,30,157,56,172,139,157,56,21,249,157,56,107,102,158,56,173,211,158,56,221,64,159,56,249,173,159,56,3,27,160,56,249,135,160,56,220,244,160,56,171,97,161,56,104,206,161,56,16,59,162,56,166,167,162,56,40,20,163,56,150,128,163,56,241,236,163,56,57,89,164,56,108,197,
164,56,140,49,165,56,153,157,165,56,145,9,166,56,118,117,166,56,71,225,166,56,3,77,167,56,172,184,167,56,65,36,168,56,194,143,168,56,47,251,168,56,136,102,169,56,205,209,169,56,253,60,170,56,25,168,170,56,33,19,171,56,21,126,171,56,244,232,171,56,191,83,172,56,117,190,172,56,23,41,173,56,164,147,173,56,29,254,173,56,129,104,174,56,208,210,174,56,11,61,175,56,49,167,175,56,66,17,176,56,62,123,176,56,37,229,176,56,248,78,177,56,181,184,177,56,94,34,178,56,241,139,178,56,111,245,178,56,216,94,179,56,
44,200,179,56,107,49,180,56,148,154,180,56,169,3,181,56,167,108,181,56,145,213,181,56,101,62,182,56,35,167,182,56,204,15,183,56,96,120,183,56,221,224,183,56,69,73,184,56,152,177,184,56,213,25,185,56,252,129,185,56,13,234,185,56,8,82,186,56,237,185,186,56,189,33,187,56,118,137,187,56,26,241,187,56,167,88,188,56,30,192,188,56,128,39,189,56,203,142,189,56,255,245,189,56,30,93,190,56,38,196,190,56,24,43,191,56,243,145,191,56,184,248,191,56,103,95,192,56,255,197,192,56,128,44,193,56,235,146,193,56,63,
249,193,56,125,95,194,56,163,197,194,56,179,43,195,56,173,145,195,56,143,247,195,56,91,93,196,56,15,195,196,56,173,40,197,56,51,142,197,56,163,243,197,56,251,88,198,56,61,190,198,56,103,35,199,56,122,136,199,56,118,237,199,56,90,82,200,56,39,183,200,56,221,27,201,56,123,128,201,56,2,229,201,56,114,73,202,56,202,173,202,56,10,18,203,56,51,118,203,56,68,218,203,56,61,62,204,56,31,162,204,56,233,5,205,56,155,105,205,56,53,205,205,56,183,48,206,56,34,148,206,56,116,247,206,56,175,90,207,56,209,189,207,
56,219,32,208,56,206,131,208,56,168,230,208,56,106,73,209,56,19,172,209,56,164,14,210,56,29,113,210,56,126,211,210,56,198,53,211,56,246,151,211,56,14,250,211,56,12,92,212,56,243,189,212,56,192,31,213,56,117,129,213,56,18,227,213,56,149,68,214,56,0,166,214,56,83,7,215,56,140,104,215,56,172,201,215,56,180,42,216,56,163,139,216,56,120,236,216,56,53,77,217,56,216,173,217,56,99,14,218,56,212,110,218,56,44,207,218,56,107,47,219,56,145,143,219,56,158,239,219,56,145,79,220,56,106,175,220,56,43,15,221,56,
210,110,221,56,95,206,221,56,211,45,222,56,46,141,222,56,110,236,222,56,150,75,223,56,163,170,223,56,151,9,224,56,113,104,224,56,49,199,224,56,216,37,225,56,101,132,225,56,215,226,225,56,48,65,226,56,111,159,226,56,148,253,226,56,159,91,227,56,144,185,227,56,102,23,228,56,35,117,228,56,197,210,228,56,77,48,229,56,187,141,229,56,15,235,229,56,72,72,230,56,103,165,230,56,107,2,231,56,85,95,231,56,37,188,231,56,218,24,232,56,116,117,232,56,244,209,232,56,90,46,233,56,164,138,233,56,212,230,233,56,233,
66,234,56,228,158,234,56,195,250,234,56,136,86,235,56,50,178,235,56,193,13,236,56,53,105,236,56,142,196,236,56,204,31,237,56,239,122,237,56,247,213,237,56,228,48,238,56,181,139,238,56,107,230,238,56,7,65,239,56,134,155,239,56,235,245,239,56,52,80,240,56,98,170,240,56,116,4,241,56,107,94,241,56,71,184,241,56,7,18,242,56,171,107,242,56,52,197,242,56,161,30,243,56,243,119,243,56,41,209,243,56,67,42,244,56,65,131,244,56,36,220,244,56,234,52,245,56,149,141,245,56,36,230,245,56,151,62,246,56,238,150,246,
56,41,239,246,56,72,71,247,56,75,159,247,56,50,247,247,56,252,78,248,56,171,166,248,56,61,254,248,56,179,85,249,56,13,173,249,56,74,4,250,56,107,91,250,56,112,178,250,56,88,9,251,56,36,96,251,56,211,182,251,56,102,13,252,56,220,99,252,56,53,186,252,56,114,16,253,56,147,102,253,56,150,188,253,56,125,18,254,56,71,104,254,56,245,189,254,56,133,19,255,56,249,104,255,56,80,190,255,56,197,9,0,57,83,52,0,57,211,94,0,57,69,137,0,57,168,179,0,57,252,221,0,57,66,8,1,57,121,50,1,57,162,92,1,57,188,134,1,57,
199,176,1,57,196,218,1,57,178,4,2,57,145,46,2,57,98,88,2,57,36,130,2,57,215,171,2,57,124,213,2,57,18,255,2,57,153,40,3,57,17,82,3,57,122,123,3,57,213,164,3,57,32,206,3,57,93,247,3,57,139,32,4,57,171,73,4,57,187,114,4,57,188,155,4,57,174,196,4,57,146,237,4,57,102,22,5,57,44,63,5,57,226,103,5,57,138,144,5,57,34,185,5,57,172,225,5,57,38,10,6,57,145,50,6,57,237,90,6,57,58,131,6,57,120,171,6,57,167,211,6,57,199,251,6,57,215,35,7,57,217,75,7,57,203,115,7,57,174,155,7,57,129,195,7,57,70,235,7,57,251,18,
8,57,161,58,8,57,55,98,8,57,190,137,8,57,54,177,8,57,159,216,8,57,248,255,8,57,66,39,9,57,125,78,9,57,168,117,9,57,195,156,9,57,207,195,9,57,204,234,9,57,186,17,10,57,151,56,10,57,102,95,10,57,37,134,10,57,212,172,10,57,116,211,10,57,4,250,10,57,133,32,11,57,246,70,11,57,87,109,11,57,169,147,11,57,236,185,11,57,30,224,11,57,65,6,12,57,85,44,12,57,88,82,12,57,76,120,12,57,48,158,12,57,5,196,12,57,202,233,12,57,127,15,13,57,36,53,13,57,185,90,13,57,63,128,13,57,181,165,13,57,27,203,13,57,113,240,13,
57,183,21,14,57,238,58,14,57,20,96,14,57,43,133,14,57,50,170,14,57,41,207,14,57,15,244,14,57,230,24,15,57,173,61,15,57,100,98,15,57,11,135,15,57,162,171,15,57,41,208,15,57,160,244,15,57,7,25,16,57,94,61,16,57,164,97,16,57,219,133,16,57,1,170,16,57,24,206,16,57,30,242,16,57,20,22,17,57,250,57,17,57,208,93,17,57,149,129,17,57,75,165,17,57,240,200,17,57,133,236,17,57,9,16,18,57,126,51,18,57,226,86,18,57,54,122,18,57,121,157,18,57,172,192,18,57,207,227,18,57,226,6,19,57,228,41,19,57,214,76,19,57,183,
111,19,57,136,146,19,57,73,181,19,57,249,215,19,57,153,250,19,57,40,29,20,57,167,63,20,57,22,98,20,57,115,132,20,57,193,166,20,57,254,200,20,57,42,235,20,57,70,13,21,57,81,47,21,57,76,81,21,57,54,115,21,57,16,149,21,57,217,182,21,57,145,216,21,57,57,250,21,57,208,27,22,57,86,61,22,57,204,94,22,57,49,128,22,57,134,161,22,57,201,194,22,57,252,227,22,57,31,5,23,57,48,38,23,57,49,71,23,57,33,104,23,57,0,137,23,57,207,169,23,57,140,202,23,57,57,235,23,57,213,11,24,57,96,44,24,57,219,76,24,57,68,109,24,
57],"i8",4,y.a+901120);
Q([157,141,24,57,228,173,24,57,27,206,24,57,65,238,24,57,86,14,25,57,90,46,25,57,77,78,25,57,47,110,25,57,0,142,25,57,192,173,25,57,111,205,25,57,13,237,25,57,154,12,26,57,23,44,26,57,130,75,26,57,220,106,26,57,36,138,26,57,92,169,26,57,131,200,26,57,153,231,26,57,157,6,27,57,145,37,27,57,115,68,27,57,68,99,27,57,4,130,27,57,179,160,27,57,80,191,27,57,221,221,27,57,88,252,27,57,194,26,28,57,27,57,28,57,98,87,28,57,152,117,28,57,189,147,28,57,209,177,28,57,211,207,28,57,197,237,28,57,164,11,29,57,
115,41,29,57,48,71,29,57,220,100,29,57,118,130,29,57,0,160,29,57,119,189,29,57,222,218,29,57,51,248,29,57,118,21,30,57,168,50,30,57,201,79,30,57,216,108,30,57,214,137,30,57,195,166,30,57,157,195,30,57,103,224,30,57,31,253,30,57,197,25,31,57,90,54,31,57,222,82,31,57,79,111,31,57,176,139,31,57,255,167,31,57,60,196,31,57,103,224,31,57,129,252,31,57,138,24,32,57,129,52,32,57,102,80,32,57,57,108,32,57,251,135,32,57,172,163,32,57,74,191,32,57,215,218,32,57,83,246,32,57,188,17,33,57,20,45,33,57,90,72,33,
57,143,99,33,57,178,126,33,57,195,153,33,57,194,180,33,57,175,207,33,57,139,234,33,57,85,5,34,57,13,32,34,57,180,58,34,57,72,85,34,57,203,111,34,57,60,138,34,57,155,164,34,57,232,190,34,57,36,217,34,57,77,243,34,57,101,13,35,57,107,39,35,57,94,65,35,57,64,91,35,57,16,117,35,57,207,142,35,57,123,168,35,57,21,194,35,57,157,219,35,57,20,245,35,57,120,14,36,57,203,39,36,57,11,65,36,57,58,90,36,57,86,115,36,57,96,140,36,57,89,165,36,57,63,190,36,57,19,215,36,57,214,239,36,57,134,8,37,57,36,33,37,57,176,
57,37,57,42,82,37,57,146,106,37,57,232,130,37,57,44,155,37,57,93,179,37,57,125,203,37,57,138,227,37,57,133,251,37,57,110,19,38,57,69,43,38,57,10,67,38,57,188,90,38,57,92,114,38,57,235,137,38,57,102,161,38,57,208,184,38,57,40,208,38,57,109,231,38,57,160,254,38,57,193,21,39,57,207,44,39,57,203,67,39,57,181,90,39,57,141,113,39,57,82,136,39,57,6,159,39,57,166,181,39,57,53,204,39,57,177,226,39,57,27,249,39,57,114,15,40,57,184,37,40,57,234,59,40,57,11,82,40,57,25,104,40,57,21,126,40,57,254,147,40,57,213,
169,40,57,154,191,40,57,76,213,40,57,235,234,40,57,121,0,41,57,244,21,41,57,92,43,41,57,178,64,41,57,246,85,41,57,39,107,41,57,69,128,41,57,82,149,41,57,75,170,41,57,50,191,41,57,7,212,41,57,201,232,41,57,121,253,41,57,22,18,42,57,161,38,42,57,25,59,42,57,127,79,42,57,210,99,42,57,18,120,42,57,64,140,42,57,91,160,42,57,100,180,42,57,90,200,42,57,62,220,42,57,15,240,42,57,205,3,43,57,121,23,43,57,19,43,43,57,153,62,43,57,13,82,43,57,110,101,43,57,189,120,43,57,249,139,43,57,35,159,43,57,57,178,43,
57,61,197,43,57,47,216,43,57,14,235,43,57,218,253,43,57,147,16,44,57,58,35,44,57,206,53,44,57,79,72,44,57,189,90,44,57,25,109,44,57,98,127,44,57,152,145,44,57,188,163,44,57,205,181,44,57,203,199,44,57,182,217,44,57,143,235,44,57,85,253,44,57,8,15,45,57,168,32,45,57,53,50,45,57,176,67,45,57,24,85,45,57,109,102,45,57,175,119,45,57,222,136,45,57,251,153,45,57,5,171,45,57,252,187,45,57,224,204,45,57,177,221,45,57,111,238,45,57,27,255,45,57,180,15,46,57,57,32,46,57,172,48,46,57,12,65,46,57,89,81,46,57,
148,97,46,57,187,113,46,57,208,129,46,57,209,145,46,57,192,161,46,57,155,177,46,57,100,193,46,57,26,209,46,57,189,224,46,57,77,240,46,57,202,255,46,57,52,15,47,57,139,30,47,57,208,45,47,57,1,61,47,57,31,76,47,57,42,91,47,57,35,106,47,57,8,121,47,57,219,135,47,57,154,150,47,57,70,165,47,57,224,179,47,57,102,194,47,57,217,208,47,57,58,223,47,57,135,237,47,57,194,251,47,57,233,9,48,57,253,23,48,57,254,37,48,57,236,51,48,57,200,65,48,57,144,79,48,57,69,93,48,57,231,106,48,57,118,120,48,57,242,133,48,
57,90,147,48,57,176,160,48,57,243,173,48,57,34,187,48,57,63,200,48,57,72,213,48,57,62,226,48,57,34,239,48,57,242,251,48,57,175,8,49,57,89,21,49,57,239,33,49,57,115,46,49,57,227,58,49,57,65,71,49,57,139,83,49,57,194,95,49,57,230,107,49,57,247,119,49,57,245,131,49,57,223,143,49,57,183,155,49,57,123,167,49,57,44,179,49,57,202,190,49,57,85,202,49,57,205,213,49,57,49,225,49,57,131,236,49,57,193,247,49,57,236,2,50,57,3,14,50,57,8,25,50,57,249,35,50,57,215,46,50,57,162,57,50,57,90,68,50,57,255,78,50,57,
144,89,50,57,14,100,50,57,121,110,50,57,209,120,50,57,22,131,50,57,71,141,50,57,101,151,50,57,112,161,50,57,104,171,50,57,76,181,50,57,29,191,50,57,219,200,50,57,134,210,50,57,30,220,50,57,162,229,50,57,19,239,50,57,113,248,50,57,187,1,51,57,242,10,51,57,23,20,51,57,39,29,51,57,37,38,51,57,15,47,51,57,230,55,51,57,170,64,51,57,90,73,51,57,247,81,51,57,129,90,51,57,248,98,51,57,91,107,51,57,171,115,51,57,232,123,51,57,18,132,51,57,40,140,51,57,43,148,51,57,27,156,51,57,247,163,51,57,192,171,51,57,
118,179,51,57,24,187,51,57,167,194,51,57,35,202,51,57,140,209,51,57,225,216,51,57,35,224,51,57,82,231,51,57,109,238,51,57,118,245,51,57,106,252,51,57,76,3,52,57,26,10,52,57,213,16,52,57,124,23,52,57,17,30,52,57,146,36,52,57,255,42,52,57,89,49,52,57,160,55,52,57,212,61,52,57,244,67,52,57,1,74,52,57,251,79,52,57,225,85,52,57,180,91,52,57,116,97,52,57,32,103,52,57,185,108,52,57,63,114,52,57,178,119,52,57,17,125,52,57,92,130,52,57,149,135,52,57,186,140,52,57,203,145,52,57,202,150,52,57,181,155,52,57,
141,160,52,57,81,165,52,57,2,170,52,57,160,174,52,57,42,179,52,57,161,183,52,57,5,188,52,57,85,192,52,57,146,196,52,57,188,200,52,57,210,204,52,57,213,208,52,57,197,212,52,57,161,216,52,57,106,220,52,57,32,224,52,57,194,227,52,57,81,231,52,57,205,234,52,57,53,238,52,57,138,241,52,57,204,244,52,57,250,247,52,57,21,251,52,57,28,254,52,57,17,1,53,57,242,3,53,57,191,6,53,57,121,9,53,57,32,12,53,57,180,14,53,57,52,17,53,57,161,19,53,57,251,21,53,57,65,24,53,57,116,26,53,57,147,28,53,57,159,30,53,57,152,
32,53,57,126,34,53,57,80,36,53,57,15,38,53,57,187,39,53,57,83,41,53,57,216,42,53,57,73,44,53,57,167,45,53,57,242,46,53,57,42,48,53,57,78,49,53,57,95,50,53,57,93,51,53,57,71,52,53,57,30,53,53,57,226,53,53,57,146,54,53,57,47,55,53,57,185,55,53,57,47,56,53,57,147,56,53,57,226,56,53,57,31,57,53,57,72,57,53,57,94,57,53,57,96,57,53,57,80,57,53,57,44,57,53,57,244,56,53,57,170,56,53,57,76,56,53,57,218,55,53,57,86,55,53,57,190,54,53,57,19,54,53,57,85,53,53,57,131,52,53,57,158,51,53,57,166,50,53,57,154,49,
53,57,123,48,53,57,73,47,53,57,4,46,53,57,171,44,53,57,63,43,53,57,192,41,53,57,46,40,53,57,136,38,53,57,207,36,53,57,3,35,53,57,35,33,53,57,48,31,53,57,42,29,53,57,17,27,53,57,229,24,53,57,165,22,53,57,82,20,53,57,236,17,53,57,114,15,53,57,230,12,53,57,70,10,53,57,146,7,53,57,204,4,53,57,242,1,53,57,5,255,52,57,5,252,52,57,242,248,52,57,204,245,52,57,146,242,52,57,69,239,52,57,229,235,52,57,113,232,52,57,235,228,52,57,81,225,52,57,164,221,52,57,228,217,52,57,17,214,52,57,42,210,52,57,49,206,52,57,
36,202,52,57,4,198,52,57,208,193,52,57,138,189,52,57,48,185,52,57,196,180,52,57,68,176,52,57,177,171,52,57,11,167,52,57,81,162,52,57,133,157,52,57,165,152,52,57,178,147,52,57,172,142,52,57,147,137,52,57,103,132,52,57,40,127,52,57,213,121,52,57,112,116,52,57,247,110,52,57,107,105,52,57,205,99,52,57,27,94,52,57,85,88,52,57,125,82,52,57,146,76,52,57,148,70,52,57,130,64,52,57,94,58,52,57,38,52,52,57,219,45,52,57,126,39,52,57,13,33,52,57,137,26,52,57,242,19,52,57,72,13,52,57,139,6,52,57,187,255,51,57,
216,248,51,57,226,241,51,57,217,234,51,57,189,227,51,57,142,220,51,57,75,213,51,57,246,205,51,57,142,198,51,57,19,191,51,57,132,183,51,57,227,175,51,57,47,168,51,57,104,160,51,57,142,152,51,57,160,144,51,57,160,136,51,57,141,128,51,57,103,120,51,57,46,112,51,57,226,103,51,57,131,95,51,57,18,87,51,57,141,78,51,57,245,69,51,57,75,61,51,57,141,52,51,57,189,43,51,57,217,34,51,57,227,25,51,57,218,16,51,57,190,7,51,57,143,254,50,57,77,245,50,57,248,235,50,57,145,226,50,57,22,217,50,57,137,207,50,57,233,
197,50,57,54,188,50,57,112,178,50,57,151,168,50,57,172,158,50,57,173,148,50,57,156,138,50,57,120,128,50,57,65,118,50,57,247,107,50,57,155,97,50,57,44,87,50,57,170,76,50,57,21,66,50,57,109,55,50,57,179,44,50,57,230,33,50,57,6,23,50,57,19,12,50,57,14,1,50,57,246,245,49,57,203,234,49,57,141,223,49,57,61,212,49,57,218,200,49,57,100,189,49,57,220,177,49,57,65,166,49,57,147,154,49,57,210,142,49,57,255,130,49,57,25,119,49,57,33,107,49,57,22,95,49,57,248,82,49,57,199,70,49,57,132,58,49,57,46,46,49,57,198,
33,49,57,75,21,49,57,189,8,49,57,29,252,48,57,106,239,48,57,165,226,48,57,205,213,48,57,226,200,48,57,229,187,48,57,213,174,48,57,179,161,48,57,126,148,48,57,54,135,48,57,220,121,48,57,112,108,48,57,241,94,48,57,95,81,48,57,187,67,48,57,5,54,48,57,60,40,48,57,96,26,48,57,114,12,48,57,114,254,47,57,95,240,47,57,57,226,47,57,1,212,47,57,183,197,47,57,90,183,47,57,235,168,47,57,105,154,47,57,213,139,47,57,47,125,47,57,118,110,47,57,171,95,47,57,205,80,47,57,221,65,47,57,219,50,47,57,198,35,47,57,159,
20,47,57,102,5,47,57,26,246,46,57,188,230,46,57,75,215,46,57,200,199,46,57,51,184,46,57,140,168,46,57,210,152,46,57,6,137,46,57,40,121,46,57,56,105,46,57,53,89,46,57,32,73,46,57,248,56,46,57,191,40,46,57,115,24,46,57,21,8,46,57,165,247,45,57,35,231,45,57,142,214,45,57,231,197,45,57,46,181,45,57,99,164,45,57,134,147,45,57,151,130,45,57,149,113,45,57,129,96,45,57,92,79,45,57,36,62,45,57,218,44,45,57,125,27,45,57,15,10,45,57,143,248,44,57,252,230,44,57,88,213,44,57,161,195,44,57,217,177,44,57,254,159,
44,57,17,142,44,57,19,124,44,57,2,106,44,57,223,87,44,57,170,69,44,57,100,51,44,57,11,33,44,57,160,14,44,57,36,252,43,57,149,233,43,57,245,214,43,57,66,196,43,57,126,177,43,57,168,158,43,57,191,139,43,57,197,120,43,57,185,101,43,57,155,82,43,57,108,63,43,57,42,44,43,57,215,24,43,57,113,5,43,57,250,241,42,57,113,222,42,57,214,202,42,57,42,183,42,57,108,163,42,57,155,143,42,57,186,123,42,57,198,103,42,57,192,83,42,57,169,63,42,57,128,43,42,57,70,23,42,57,249,2,42,57,155,238,41,57,44,218,41,57,170,197,
41,57,23,177,41,57,114,156,41,57,188,135,41,57,244,114,41,57,26,94,41,57,47,73,41,57,50,52,41,57,35,31,41,57,3,10,41,57,209,244,40,57,142,223,40,57,57,202,40,57,210,180,40,57,90,159,40,57,209,137,40,57,54,116,40,57,137,94,40,57,203,72,40,57,252,50,40,57,27,29,40,57,40,7,40,57,36,241,39,57,15,219,39,57,232,196,39,57,175,174,39,57,102,152,39,57,10,130,39,57,158,107,39,57,32,85,39,57,145,62,39,57,240,39,39,57,62,17,39,57,123,250,38,57,166,227,38,57,192,204,38,57,201,181,38,57,192,158,38,57,166,135,38,
57,123,112,38,57,62,89,38,57,241,65,38,57,146,42,38,57,33,19,38,57,160,251,37,57,13,228,37,57,105,204,37,57,180,180,37,57,238,156,37,57,23,133,37,57,46,109,37,57,52,85,37,57,41,61,37,57,14,37,37,57,224,12,37,57,162,244,36,57,83,220,36,57,243,195,36,57,129,171,36,57,255,146,36,57,107,122,36,57,199,97,36,57,17,73,36,57,75,48,36,57,115,23,36,57,138,254,35,57,145,229,35,57,134,204,35,57,107,179,35,57,63,154,35,57,1,129,35,57,179,103,35,57,84,78,35,57,228,52,35,57,99,27,35,57,209,1,35,57,47,232,34,57,
123,206,34,57,183,180,34,57,226,154,34,57,252,128,34,57,5,103,34,57,254,76,34,57,229,50,34,57,188,24,34,57,131,254,33,57,56,228,33,57,221,201,33,57,113,175,33,57,244,148,33,57,103,122,33,57,201,95,33,57,26,69,33,57,91,42,33,57,139,15,33,57,171,244,32,57,185,217,32,57,184,190,32,57,165,163,32,57,130,136,32,57,79,109,32,57,11,82,32,57,182,54,32,57,81,27,32,57,220,255,31,57,85,228,31,57,191,200,31,57,24,173,31,57,96,145,31,57,152,117,31,57,192,89,31,57,215,61,31,57,222,33,31,57,212,5,31,57,186,233,30,
57,144,205,30,57,85,177,30,57,10,149,30,57,175,120,30,57,67,92,30,57,199,63,30,57,59,35,30,57,158,6,30,57,241,233,29,57,52,205,29,57,103,176,29,57,137,147,29,57,155,118,29,57,157,89,29,57,143,60,29,57,113,31,29,57,66,2,29,57,4,229,28,57,181,199,28,57,86,170,28,57,231,140,28,57,104,111,28,57,217,81,28,57,58,52,28,57,138,22,28,57,203,248,27,57,252,218,27,57,28,189,27,57,45,159,27,57,46,129,27,57,30,99,27,57,255,68,27,57,208,38,27,57,145,8,27,57,66,234,26,57,227,203,26,57,116,173,26,57,245,142,26,57,
103,112,26,57,201,81,26,57,26,51,26,57,92,20,26,57,143,245,25,57,177,214,25,57,196,183,25,57,198,152,25,57,186,121,25,57,157,90,25,57,113,59,25,57,53,28,25,57,233,252,24,57,141,221,24,57,34,190,24,57,168,158,24,57,29,127,24,57,131,95,24,57,218,63,24,57,33,32,24,57,88,0,24,57,128,224,23,57,152,192,23,57,160,160,23,57,154,128,23,57,131,96,23,57,93,64,23,57,40,32,23,57,227,255,22,57,143,223,22,57,43,191,22,57,184,158,22,57,54,126,22,57,164,93,22,57,3,61,22,57,82,28,22,57,146,251,21,57,195,218,21,57,
228,185,21,57,247,152,21,57,250,119,21,57,237,86,21,57,209,53,21,57,167,20,21,57,108,243,20,57,35,210,20,57,203,176,20,57,99,143,20,57,236,109,20,57,102,76,20,57,209,42,20,57,45,9,20,57,122,231,19,57,183,197,19,57,230,163,19,57,5,130,19,57,22,96,19,57,23,62,19,57,9,28,19,57,237,249,18,57,193,215,18,57,135,181,18,57,61,147,18,57,229,112,18,57,125,78,18,57,7,44,18,57,130,9,18,57,238,230,17,57,75,196,17,57,154,161,17,57,217,126,17,57,10,92,17,57,44,57,17,57,63,22,17,57,67,243,16,57,57,208,16,57,32,173,
16,57,248,137,16,57,193,102,16,57,124,67,16,57,40,32,16,57,198,252,15,57,85,217,15,57,213,181,15,57,70,146,15,57,169,110,15,57,254,74,15,57,68,39,15,57,123,3,15,57,164,223,14,57,190,187,14,57,202,151,14,57,200,115,14,57,183,79,14,57,151,43,14,57,105,7,14,57,45,227,13,57,226,190,13,57,137,154,13,57,33,118,13,57,172,81,13,57,39,45,13,57,149,8,13,57,244,227,12,57,69,191,12,57,136,154,12,57,188,117,12,57,227,80,12,57,251,43,12,57,4,7,12,57,0,226,11,57,238,188,11,57,205,151,11,57,158,114,11,57,97,77,11,
57,22,40,11,57,189,2,11,57,86,221,10,57,225,183,10,57,93,146,10,57,204,108,10,57,45,71,10,57,128,33,10,57,196,251,9,57,251,213,9,57,36,176,9,57,63,138,9,57,76,100,9,57,75,62,9,57,61,24,9,57,32,242,8,57,246,203,8,57,190,165,8,57,120,127,8,57,36,89,8,57,195,50,8,57,84,12,8,57,215,229,7,57,76,191,7,57,180,152,7,57,14,114,7,57,90,75,7,57,153,36,7,57,202,253,6,57,237,214,6,57,3,176,6,57,11,137,6,57,6,98,6,57,243,58,6,57,211,19,6,57,165,236,5,57,106,197,5,57,33,158,5,57,203,118,5,57,103,79,5,57,246,39,
5,57,119,0,5,57,236,216,4,57,82,177,4,57,172,137,4,57,248,97,4,57,55,58,4,57,104,18,4,57,140,234,3,57,163,194,3,57,173,154,3,57,169,114,3,57,153,74,3,57,123,34,3,57,80,250,2,57,23,210,2,57,210,169,2,57,128,129,2,57,32,89,2,57,179,48,2,57,58,8,2,57,179,223,1,57,31,183,1,57,126,142,1,57,208,101,1,57,22,61,1,57,78,20,1,57,121,235,0,57,152,194,0,57,169,153,0,57,174,112,0,57,166,71,0,57,144,30,0,57,221,234,255,56,128,152,255,56,8,70,255,56,120,243,254,56,206,160,254,56,10,78,254,56,45,251,253,56,55,168,
253,56,39,85,253,56,254,1,253,56,187,174,252,56,95,91,252,56,235,7,252,56,92,180,251,56,181,96,251,56,245,12,251,56,27,185,250,56,41,101,250,56,29,17,250,56,249,188,249,56,187,104,249,56,101,20,249,56,246,191,248,56,110,107,248,56,205,22,248,56,20,194,247,56,66,109,247,56,87,24,247,56,83,195,246,56,55,110,246,56,3,25,246,56,181,195,245,56,80,110,245,56,210,24,245,56,59,195,244,56,140,109,244,56,197,23,244,56,230,193,243,56,238,107,243,56,222,21,243,56,182,191,242,56,118,105,242,56,29,19,242,56,173,
188,241,56,36,102,241,56,132,15,241,56,203,184,240,56,251,97,240,56,19,11,240,56,19,180,239,56,251,92,239,56,203,5,239,56,132,174,238,56,37,87,238,56,174,255,237,56,32,168,237,56,122,80,237,56,189,248,236,56,232,160,236,56,251,72,236,56,248,240,235,56,220,152,235,56,170,64,235,56,96,232,234,56,255,143,234,56,135,55,234,56,247,222,233,56,81,134,233,56,147,45,233,56,190,212,232,56,210,123,232,56,207,34,232,56,181,201,231,56,133,112,231,56,61,23,231,56,223,189,230,56,105,100,230,56,221,10,230,56,59,
177,229,56,129,87,229,56,177,253,228,56,203,163,228,56,205,73,228,56,186,239,227,56,143,149,227,56,79,59,227,56,248,224,226,56,138,134,226,56,6,44,226,56,108,209,225,56,188,118,225,56,245,27,225,56,25,193,224,56,38,102,224,56,29,11,224,56,254,175,223,56,201,84,223,56,126,249,222,56,29,158,222,56,166,66,222,56,25,231,221,56,119,139,221,56,191,47,221,56,241,211,220,56,13,120,220,56,20,28,220,56,5,192,219,56,224,99,219,56,166,7,219,56,87,171,218,56,242,78,218,56,119,242,217,56,231,149,217,56,66,57,217,
56,136,220,216,56,184,127,216,56,211,34,216,56,217,197,215,56,202,104,215,56,166,11,215,56,108,174,214,56,30,81,214,56,186,243,213,56,66,150,213,56,181,56,213,56,19,219,212,56,92,125,212,56,145,31,212,56,176,193,211,56,187,99,211,56,178,5,211,56,147,167,210,56,97,73,210,56,25,235,209,56,189,140,209,56,77,46,209,56,200,207,208,56,47,113,208,56,130,18,208,56,192,179,207,56,234,84,207,56,0,246,206,56,2,151,206,56,240,55,206,56,201,216,205,56,143,121,205,56,64,26,205,56,222,186,204,56,104,91,204,56,222,
251,203,56,64,156,203,56,142,60,203,56,200,220,202,56,239,124,202,56,2,29,202,56,2,189,201,56,238,92,201,56,198,252,200,56,139,156,200,56,60,60,200,56,218,219,199,56,101,123,199,56,220,26,199,56,64,186,198,56,145,89,198,56,207,248,197,56,249,151,197,56,16,55,197,56,21,214,196,56,6,117,196,56,228,19,196,56,175,178,195,56,103,81,195,56,13,240,194,56,160,142,194,56,31,45,194,56,141,203,193,56,231,105,193,56,47,8,193,56,100,166,192,56,134,68,192,56,150,226,191,56,148,128,191,56,127,30,191,56,88,188,190,
56,30,90,190,56,210,247,189,56,116,149,189,56,3,51,189,56,129,208,188,56,236,109,188,56,69,11,188,56,140,168,187,56,193,69,187,56,228,226,186,56,245,127,186,56,244,28,186,56,225,185,185,56,188,86,185,56,134,243,184,56,62,144,184,56,228,44,184,56,121,201,183,56,252,101,183,56,110,2,183,56,206,158,182,56,28,59,182,56,89,215,181,56,133,115,181,56,159,15,181,56,168,171,180,56,160,71,180,56,135,227,179,56,92,127,179,56,33,27,179,56,212,182,178,56,118,82,178,56,7,238,177,56,135,137,177,56,247,36,177,56,
85,192,176,56,163,91,176,56,224,246,175,56,12,146,175,56,39,45,175,56,50,200,174,56,44,99,174,56,22,254,173,56,239,152,173,56,184,51,173,56,112,206,172,56,24,105,172,56,175,3,172,56,54,158,171,56,173,56,171,56,20,211,170,56,106,109,170,56,176,7,170,56,231,161,169,56,13,60,169,56,35,214,168,56,42,112,168,56,32,10,168,56,6,164,167,56,221,61,167,56,164,215,166,56,91,113,166,56,3,11,166,56,154,164,165,56,35,62,165,56,155,215,164,56,4,113,164,56,94,10,164,56,168,163,163,56,227,60,163,56,15,214,162,56,
43,111,162,56,56,8,162,56,54,161,161,56,36,58,161,56,4,211,160,56,212,107,160,56,149,4,160,56,72,157,159,56,235,53,159,56,128,206,158,56,5,103,158,56,124,255,157,56,228,151,157,56,62,48,157,56,136,200,156,56,196,96,156,56,242,248,155,56,17,145,155,56,33,41,155,56,35,193,154,56,23,89,154,56,252,240,153,56,211,136,153,56,155,32,153,56,86,184,152,56,2,80,152,56,160,231,151,56,48,127,151,56,178,22,151,56,37,174,150,56,139,69,150,56,227,220,149,56,45,116,149,56,106,11,149,56,152,162,148,56,185,57,148,
56,204,208,147,56,209,103,147,56,201,254,146,56,179,149,146,56,144,44,146,56,95,195,145,56,32,90,145,56,213,240,144,56,124,135,144,56,22,30,144,56,162,180,143,56,33,75,143,56,147,225,142,56,248,119,142,56,80,14,142,56,155,164,141,56,217,58,141,56,10,209,140,56,46,103,140,56,69,253,139,56,80,147,139,56,77,41,139,56,62,191,138,56,35,85,138,56,250,234,137,56,197,128,137,56,132,22,137,56,54,172,136,56,220,65,136,56,117,215,135,56,2,109,135,56,130,2,135,56,247,151,134,56,95,45,134,56,187,194,133,56,11,
88,133,56,78,237,132,56,134,130,132,56,178,23,132,56,210,172,131,56,229,65,131,56,237,214,130,56,234,107,130,56,218,0,130,56,191,149,129,56,152,42,129,56,101,191,128,56,39,84,128,56,187,209,127,56,17,251,126,56,80,36,126,56,120,77,125,56,137,118,124,56,132,159,123,56,104,200,122,56,54,241,121,56,238,25,121,56,143,66,120,56,26,107,119,56,143,147,118,56,238,187,117,56,55,228,116,56,106,12,116,56,136,52,115,56,144,92,114,56,131,132,113,56,96,172,112,56,40,212,111,56,218,251,110,56,120,35,110,56,0,75,
109,56,116,114,108,56,210,153,107,56,28,193,106,56,81,232,105,56,113,15,105,56,125,54,104,56,117,93,103,56,88,132,102,56,39,171,101,56,226,209,100,56,137,248,99,56,28,31,99,56,155,69,98,56,6,108,97,56,94,146,96,56,162,184,95,56,210,222,94,56,239,4,94,56,249,42,93,56,240,80,92,56,211,118,91,56,164,156,90,56,97,194,89,56,12,232,88,56,164,13,88,56,41,51,87,56,156,88,86,56,252,125,85,56,74,163,84,56,133,200,83,56,175,237,82,56,198,18,82,56,203,55,81,56,190,92,80,56,160,129,79,56,111,166,78,56,46,203,
77,56,218,239,76,56,117,20,76,56,255,56,75,56,119,93,74,56,223,129,73,56,53,166,72,56,122,202,71,56,174,238,70,56,210,18,70,56,228,54,69,56,231,90,68,56,216,126,67,56,185,162,66,56,138,198,65,56,75,234,64,56,251,13,64,56,155,49,63,56,44,85,62,56,172,120,61,56,29,156,60,56,126,191,59,56,207,226,58,56,17,6,58,56,68,41,57,56,103,76,56,56,123,111,55,56,128,146,54,56,118,181,53,56,92,216,52,56,52,251,51,56,253,29,51,56,184,64,50,56,100,99,49,56,1,134,48,56,145,168,47,56,17,203,46,56,132,237,45,56,232,
15,45,56,63,50,44,56,135,84,43,56,194,118,42,56,239,152,41,56,14,187,40,56,32,221,39,56,36,255,38,56,27,33,38,56,5,67,37,56,226,100,36,56,177,134,35,56,115,168,34,56,41,202,33,56,210,235,32,56,110,13,32,56,253,46,31,56,128,80,30,56,247,113,29,56,97,147,28,56,191,180,27,56,16,214,26,56,86,247,25,56,144,24,25,56,190,57,24,56,224,90,23,56,246,123,22,56,1,157,21,56,0,190,20,56,244,222,19,56,221,255,18,56,186,32,18,56,141,65,17,56,84,98,16,56,16,131,15,56,194,163,14,56,105,196,13,56,5,229,12,56,151,5,
12,56,30,38,11,56,154,70,10,56,13,103,9,56,117,135,8,56,212,167,7,56,40,200,6,56,114,232,5,56,179,8,5,56,234,40,4,56,23,73,3,56,59,105,2,56,85,137,1,56,102,169,0,56,219,146,255,55,216,210,253,55,195,18,252,55,156,82,250,55,100,146,248,55,25,210,246,55,190,17,245,55,81,81,243,55,212,144,241,55,69,208,239,55,166,15,238,55,247,78,236,55,55,142,234,55,103,205,232,55,136,12,231,55,153,75,229,55,154,138,227,55,140,201,225,55,111,8,224,55,67,71,222,55,8,134,220,55,191,196,218,55,104,3,217,55,2,66,215,55,
142,128,213,55,13,191,211,55,126,253,209,55,225,59,208,55,56,122,206,55,129,184,204,55,190,246,202,55,238,52,201,55,17,115,199,55,40,177,197,55,51,239,195,55,50,45,194,55,38,107,192,55,14,169,190,55,234,230,188,55,188,36,187,55,130,98,185,55,62,160,183,55,239,221,181,55,150,27,180,55,50,89,178,55,197,150,176,55,78,212,174,55,205,17,173,55,66,79,171,55,175,140,169,55,18,202,167,55,108,7,166,55,190,68,164,55,7,130,162,55,72,191,160,55,129,252,158,55,178,57,157,55,219,118,155,55,252,179,153,55,23,241,
151,55,42,46,150,55,53,107,148,55,59,168,146,55,57,229,144,55,49,34,143,55,35,95,141,55,15,156,139,55,245,216,137,55,213,21,136,55,176,82,134,55,133,143,132,55,85,204,130,55,33,9,129,55,206,139,126,55,82,5,123,55,206,126,119,55,65,248,115,55,172,113,112,55,15,235,108,55,108,100,105,55,193,221,101,55,16,87,98,55,89,208,94,55,156,73,91,55,217,194,87,55,18,60,84,55,70,181,80,55,118,46,77,55,162,167,73,55,203,32,70,55,241,153,66,55,19,19,63,55,52,140,59,55,82,5,56,55,111,126,52,55,139,247,48,55,166,112,
45,55,192,233,41,55,219,98,38,55,245,219,34,55,17,85,31,55,45,206,27,55,75,71,24,55,106,192,20,55,140,57,17,55,177,178,13,55,216,43,10,55,2,165,6,55,48,30,3,55,197,46,255,54,51,33,248,54,170,19,241,54,43,6,234,54,184,248,226,54,80,235,219,54,245,221,212,54,167,208,205,54,103,195,198,54,54,182,191,54,21,169,184,54,4,156,177,54,5,143,170,54,23,130,163,54,59,117,156,54,115,104,149,54,192,91,142,54,33,79,135,54,151,66,128,54,72,108,114,54,145,83,100,54,8,59,86,54,178,34,72,54,141,10,58,54,157,242,43,
54,227,218,29,54,96,195,15,54,21,172,1,54,10,42,231,53,97,252,202,53,50,207,174,53,128,162,146,53,158,236,108,53,67,149,52,53,231,125,248,52,110,211,135,52,55,89,57,51,199,245,50,180,165,30,202,180,8,96,29,181,142,175,85,181,238,254,134,181,120,37,163,181,96,75,191,181,164,112,219,181,64,149,247,181,153,220,9,182,60,238,23,182,135,255,37,182,120,16,52,182,14,33,66,182,71,49,80,182,34,65,94,182,158,80,108,182,185,95,122,182,57,55,132,182,99,62,139,182,90,69,146,182,30,76,153,182,174,82,160,182,8,89,
167,182,45,95,174,182,28,101,181,182,211,106,188,182,82,112,195,182,153,117,202,182,166,122,209,182,121,127,216,182,17,132,223,182,109,136,230,182,141,140,237,182,112,144,244,182,21,148,251,182,190,75,1,183,81,205,4,183,196,78,8,183,23,208,11,183,73,81,15,183,90,210,18,183,74,83,22,183,23,212,25,183,194,84,29,183,75,213,32,183,176,85,36,183,242,213,39,183,17,86,43,183,11,214,46,183,225,85,50,183,145,213,53,183,29,85,57,183,131,212,60,183,195,83,64,183,220,210,67,183,207,81,71,183,155,208,74,183,63,
79,78,183,187,205,81,183,16,76,85,183,59,202,88,183,62,72,92,183,23,198,95,183,199,67,99,183,77,193,102,183,168,62,106,183,216,187,109,183,221,56,113,183,183,181,116,183,101,50,120,183,231,174,123,183,60,43,127,183,178,83,129,183,175,17,131,183,149,207,132,183,101,141,134,183,29,75,136,183,190,8,138,183,71,198,139,183,184,131,141,183,17,65,143,183,83,254,144,183,124,187,146,183,140,120,148,183,132,53,150,183,98,242,151,183,40,175,153,183,212,107,155,183,103,40,157,183,225,228,158,183,64,161,160,183,
134,93,162,183,177,25,164,183,195,213,165,183,185,145,167,183,149,77,169,183,86,9,171,183,252,196,172,183,134,128,174,183,245,59,176,183,73,247,177,183,129,178,179,183,156,109,181,183,156,40,183,183,127,227,184,183,70,158,186,183,240,88,188,183,125,19,190,183,237,205,191,183,63,136,193,183,116,66,195,183,140,252,196,183,134,182,198,183,98,112,200,183,31,42,202,183,190,227,203,183,63,157,205,183,161,86,207,183,228,15,209,183,8,201,210,183,13,130,212,183,242,58,214,183,184,243,215,183,94,172,217,183,
228,100,219,183,73,29,221,183,143,213,222,183,179,141,224,183,184,69,226,183,155,253,227,183,93,181,229,183,254,108,231,183,125,36,233,183,219,219,234,183,23,147,236,183,49,74,238,183,41,1,240,183,255,183,241,183,178,110,243,183,66,37,245,183,176,219,246,183,250,145,248,183,33,72,250,183,37,254,251,183,5,180,253,183,194,105,255,183,173,143,0,184,103,106,1,184,15,69,2,184,165,31,3,184,41,250,3,184,154,212,4,184,248,174,5,184,68,137,6,184,125,99,7,184,164,61,8,184,183,23,9,184,184,241,9,184,165,203,
10,184,128,165,11,184,71,127,12,184,251,88,13,184,155,50,14,184,40,12,15,184,162,229,15,184,7,191,16,184,89,152,17,184,152,113,18,184,194,74,19,184,216,35,20,184,218,252,20,184,200,213,21,184,161,174,22,184,102,135,23,184,23,96,24,184,179,56,25,184,59,17,26,184,173,233,26,184,11,194,27,184,84,154,28,184,136,114,29,184,167,74,30,184,177,34,31,184,165,250,31,184,132,210,32,184,78,170,33,184,2,130,34,184,160,89,35,184,41,49,36,184,156,8,37,184,249,223,37,184,64,183,38,184,114,142,39,184,140,101,40,184,
145,60,41,184,127,19,42,184,87,234,42,184,25,193,43,184,196,151,44,184,88,110,45,184,213,68,46,184,60,27,47,184,140,241,47,184,196,199,48,184,230,157,49,184,240,115,50,184,227,73,51,184,191,31,52,184,131,245,52,184,47,203,53,184,196,160,54,184,66,118,55,184,167,75,56,184,245,32,57,184,42,246,57,184,72,203,58,184,77,160,59,184,58,117,60,184,15,74,61,184,204,30,62,184,111,243,62,184,251,199,63,184,109,156,64,184,199,112,65,184,8,69,66,184,48,25,67,184,63,237,67,184,53,193,68,184,18,149,69,184,213,104,
70,184,127,60,71,184,16,16,72,184,135,227,72,184,229,182,73,184,40,138,74,184,82,93,75,184,99,48,76,184,89,3,77,184,53,214,77,184,247,168,78,184,158,123,79,184,44,78,80,184,159,32,81,184,247,242,81,184,53,197,82,184,88,151,83,184,97,105,84,184,79,59,85,184,33,13,86,184,217,222,86,184,118,176,87,184,248,129,88,184,94,83,89,184,169,36,90,184,216,245,90,184,236,198,91,184,229,151,92,184,194,104,93,184,131,57,94,184,40,10,95,184,177,218,95,184,30,171,96,184,112,123,97,184,165,75,98,184,189,27,99,184,
186,235,99,184,154,187,100,184,93,139,101,184,4,91,102,184,142,42,103,184,251,249,103,184,76,201,104,184,127,152,105,184,150,103,106,184,143,54,107,184,107,5,108,184,42,212,108,184,204,162,109,184,80,113,110,184,182,63,111,184,255,13,112,184,43,220,112,184,56,170,113,184,40,120,114,184,250,69,115,184,173,19,116,184,67,225,116,184,186,174,117,184,19,124,118,184,78,73,119,184,106,22,120,184,104,227,120,184,71,176,121,184,8,125,122,184,169,73,123,184,44,22,124,184,144,226,124,184,213,174,125,184,251,
122,126,184,1,71,127,184,116,9,128,184,88,111,128,184,44,213,128,184,241,58,129,184,166,160,129,184,75,6,130,184,223,107,130,184,101,209,130,184,218,54,131,184,63,156,131,184,148,1,132,184,217,102,132,184,13,204,132,184,50,49,133,184,71,150,133,184,75,251,133,184,63,96,134,184,34,197,134,184,245,41,135,184,184,142,135,184,106,243,135,184,12,88,136,184,158,188,136,184,30,33,137,184,142,133,137,184,238,233,137,184,61,78,138,184,123,178,138,184,168,22,139,184,196,122,139,184,208,222,139,184,202,66,140,
184,180,166,140,184,141,10,141,184,84,110,141,184,11,210,141,184,177,53,142,184,69,153,142,184,200,252,142,184,58,96,143,184,155,195,143,184,234,38,144,184,41,138,144,184,85,237,144,184,113,80,145,184,122,179,145,184,115,22,146,184,90,121,146,184,47,220,146,184,242,62,147,184,164,161,147,184,68,4,148,184,211,102,148,184,80,201,148,184,187,43,149,184,20,142,149,184,91,240,149,184,144,82,150,184,179,180,150,184,196,22,151,184,196,120,151,184,177,218,151,184,140,60,152,184,84,158,152,184,11,0,153,184,
175,97,153,184,65,195,153,184,193,36,154,184,46,134,154,184,137,231,154,184,209,72,155,184,7,170,155,184,43,11,156,184,60,108,156,184,58,205,156,184,37,46,157,184,254,142,157,184,197,239,157,184,120,80,158,184,25,177,158,184,167,17,159,184,34,114,159,184,138,210,159,184,223,50,160,184,33,147,160,184,80,243,160,184,108,83,161,184,117,179,161,184,106,19,162,184,77,115,162,184,28,211,162,184,216,50,163,184,129,146,163,184,23,242,163,184,153,81,164,184,7,177,164,184,98,16,165,184,170,111,165,184,222,
206,165,184,255,45,166,184,12,141,166,184,5,236,166,184,235,74,167,184,189,169,167,184,123,8,168,184,37,103,168,184,188,197,168,184,63,36,169,184,174,130,169,184,8,225,169,184,79,63,170,184,130,157,170,184,161,251,170,184,172,89,171,184,162,183,171,184,133,21,172,184,83,115,172,184,13,209,172,184,178,46,173,184,68,140,173,184,193,233,173,184,41,71,174,184,125,164,174,184,189,1,175,184,232,94,175,184,255,187,175,184,1,25,176,184,238,117,176,184,199,210,176,184,139,47,177,184,58,140,177,184,213,232,
177,184,91,69,178,184,204,161,178,184,40,254,178,184,111,90,179,184,161,182,179,184,190,18,180,184,199,110,180,184,186,202,180,184,152,38,181,184,97,130,181,184,20,222,181,184,179,57,182,184,60,149,182,184,176,240,182,184,15,76,183,184,88,167,183,184,140,2,184,184,170,93,184,184,179,184,184,184,167,19,185,184,133,110,185,184,77,201,185,184,0,36,186,184,157,126,186,184,37,217,186,184,151,51,187,184,243,141,187,184,57,232,187,184,105,66,188,184,132,156,188,184,137,246,188,184,119,80,189,184,80,170,
189,184,19,4,190,184,192,93,190,184,86,183,190,184,215,16,191,184,65,106,191,184,149,195,191,184,212,28,192,184,251,117,192,184,13,207,192,184,8,40,193,184,237,128,193,184,187,217,193,184,115,50,194,184,21,139,194,184,160,227,194,184,20,60,195,184,114,148,195,184,186,236,195,184,234,68,196,184,4,157,196,184,8,245,196,184,244,76,197,184,202,164,197,184,137,252,197,184,49,84,198,184,194,171,198,184,61,3,199,184,160,90,199,184,237,177,199,184,34,9,200,184,64,96,200,184,72,183,200,184,56,14,201,184,17,
101,201,184,210,187,201,184,125,18,202,184,16,105,202,184,140,191,202,184,241,21,203,184,62,108,203,184,116,194,203,184,147,24,204,184,154,110,204,184,137,196,204,184,97,26,205,184,34,112,205,184,202,197,205,184,92,27,206,184,213,112,206,184,55,198,206,184,129,27,207,184,179,112,207,184,206,197,207,184,209,26,208,184,187,111,208,184,142,196,208,184,73,25,209,184,236,109,209,184,119,194,209,184,234,22,210,184,69,107,210,184,136,191,210,184,179,19,211,184,197,103,211,184,192,187,211,184,162,15,212,
184,107,99,212,184,29,183,212,184,182,10,213,184,55,94,213,184,159,177,213,184,239,4,214,184,39,88,214,184,70,171,214,184,76,254,214,184,58,81,215,184,15,164,215,184,204,246,215,184,112,73,216,184,251,155,216,184,110,238,216,184,200,64,217,184,9,147,217,184,49,229,217,184,64,55,218,184,55,137,218,184,20,219,218,184,217,44,219,184,133,126,219,184,23,208,219,184,145,33,220,184,241,114,220,184,57,196,220,184,103,21,221,184,124,102,221,184,120,183,221,184,90,8,222,184,36,89,222,184,212,169,222,184,106,
250,222,184,232,74,223,184,76,155,223,184,150,235,223,184,199,59,224,184,223,139,224,184,221,219,224,184,193,43,225,184,140,123,225,184,62,203,225,184,213,26,226,184,83,106,226,184,183,185,226,184,2,9,227,184,51,88,227,184,74,167,227,184,71,246,227,184,42,69,228,184,243,147,228,184,163,226,228,184,56,49,229,184,180,127,229,184,21,206,229,184,92,28,230,184,138,106,230,184,157,184,230,184,150,6,231,184,117,84,231,184,58,162,231,184,228,239,231,184,116,61,232,184,234,138,232,184,70,216,232,184,135,37,
233,184,174,114,233,184,186,191,233,184,172,12,234,184,132,89,234,184,65,166,234,184,227,242,234,184,107,63,235,184,217,139,235,184,43,216,235,184,99,36,236,184,129,112,236,184,132,188,236,184,107,8,237,184,57,84,237,184,235,159,237,184,131,235,237,184,255,54,238,184,97,130,238,184,168,205,238,184,212,24,239,184,229,99,239,184,219,174,239,184,182,249,239,184,118,68,240,184,26,143,240,184,164,217,240,184,19,36,241,184,102,110,241,184,158,184,241,184,187,2,242,184,189,76,242,184,163,150,242,184,110,
224,242,184,30,42,243,184,178,115,243,184,43,189,243,184,136,6,244,184,202,79,244,184,241,152,244,184,252,225,244,184,235,42,245,184,191,115,245,184,119,188,245,184,20,5,246,184,149,77,246,184,250,149,246,184,68,222,246,184,113,38,247,184,131,110,247,184,122,182,247,184,84,254,247,184,19,70,248,184,181,141,248,184,60,213,248,184,167,28,249,184,246,99,249,184,41,171,249,184,63,242,249,184,58,57,250,184,25,128,250,184,220,198,250,184,130,13,251,184,12,84,251,184,122,154,251,184,204,224,251,184,2,39,
252,184,27,109,252,184,25,179,252,184,249,248,252,184,190,62,253,184,102,132,253,184,242,201,253,184,97,15,254,184,180,84,254,184,234,153,254,184,4,223,254,184,1,36,255,184,226,104,255,184,166,173,255,184,77,242,255,184,108,27,0,185,163,61,0,185,204,95,0,185,230,129,0,185,242,163,0,185,240,197,0,185,223,231,0,185,192,9,1,185,147,43,1,185,87,77,1,185,12,111,1,185,179,144,1,185,76,178,1,185,214,211,1,185,82,245,1,185,191,22,2,185,29,56,2,185,109,89,2,185,175,122,2,185,226,155,2,185,6,189,2,185,28,222,
2,185,35,255,2,185,27,32,3,185,5,65,3,185,224,97,3,185,173,130,3,185,107,163,3,185,26,196,3,185,187,228,3,185,77,5,4,185,208,37,4,185,68,70,4,185,170,102,4,185,1,135,4,185,73,167,4,185,130,199,4,185,173,231,4,185,201,7,5,185,214,39,5,185,212,71,5,185,195,103,5,185,163,135,5,185,117,167,5,185,56,199,5,185,236,230,5,185,145,6,6,185,39,38,6,185,174,69,6,185,38,101,6,185,143,132,6,185,233,163,6,185,53,195,6,185,113,226,6,185,158,1,7,185,189,32,7,185,204,63,7,185,204,94,7,185,189,125,7,185,160,156,7,185,
115,187,7,185,55,218,7,185,236,248,7,185,145,23,8,185,40,54,8,185,176,84,8,185,40,115,8,185,146,145,8,185,236,175,8,185,55,206,8,185,115,236,8,185,159,10,9,185,189,40,9,185,203,70,9,185,202,100,9,185,186,130,9,185,154,160,9,185,107,190,9,185,45,220,9,185,224,249,9,185,131,23,10,185,24,53,10,185,156,82,10,185,18,112,10,185,120,141,10,185,207,170,10,185,22,200,10,185,78,229,10,185,119,2,11,185,144,31,11,185,154,60,11,185,148,89,11,185,127,118,11,185,91,147,11,185,39,176,11,185,228,204,11,185,145,233,
11,185,47,6,12,185,189,34,12,185,60,63,12,185,171,91,12,185,11,120,12,185,91,148,12,185,156,176,12,185,205,204,12,185,238,232,12,185,0,5,13,185,3,33,13,185,245,60,13,185,217,88,13,185,172,116,13,185,112,144,13,185,36,172,13,185,201,199,13,185,94,227,13,185,227,254,13,185,89,26,14,185,191,53,14,185,21,81,14,185,92,108,14,185,147,135,14,185,186,162,14,185,209,189,14,185,217,216,14,185,209,243,14,185,185,14,15,185,145,41,15,185,90,68,15,185,18,95,15,185,187,121,15,185,85,148,15,185,222,174,15,185,87,
201,15,185,193,227,15,185,27,254,15,185,101,24,16,185,159,50,16,185,201,76,16,185,227,102,16,185,237,128,16,185,232,154,16,185,210,180,16,185,173,206,16,185,119,232,16,185,50,2,17,185,221,27,17,185,119,53,17,185,2,79,17,185,125,104,17,185,232,129,17,185,66,155,17,185,141,180,17,185,200,205,17,185,242,230,17,185,13,0,18,185,23,25,18,185,18,50,18,185,252,74,18,185,215,99,18,185,161,124,18,185,91,149,18,185,5,174,18,185,159,198,18,185,41,223,18,185,162,247,18,185,12,16,19,185,101,40,19,185,174,64,19,
185,231,88,19,185,16,113,19,185,41,137,19,185,49,161,19,185,42,185,19,185,18,209,19,185,233,232,19,185,177,0,20,185,104,24,20,185,15,48,20,185,166,71,20,185],"i8",4,y.a+911360);
Q([45,95,20,185,163,118,20,185,9,142,20,185,95,165,20,185,164,188,20,185,217,211,20,185,254,234,20,185,18,2,21,185,22,25,21,185,10,48,21,185,237,70,21,185,192,93,21,185,131,116,21,185,53,139,21,185,215,161,21,185,105,184,21,185,234,206,21,185,91,229,21,185,187,251,21,185,11,18,22,185,74,40,22,185,121,62,22,185,152,84,22,185,166,106,22,185,163,128,22,185,145,150,22,185,109,172,22,185,57,194,22,185,245,215,22,185,160,237,22,185,59,3,23,185,197,24,23,185,63,46,23,185,168,67,23,185,0,89,23,185,72,110,
23,185,128,131,23,185,167,152,23,185,189,173,23,185,195,194,23,185,184,215,23,185,156,236,23,185,112,1,24,185,51,22,24,185,230,42,24,185,136,63,24,185,26,84,24,185,154,104,24,185,11,125,24,185,106,145,24,185,185,165,24,185,247,185,24,185,37,206,24,185,66,226,24,185,78,246,24,185,73,10,25,185,52,30,25,185,14,50,25,185,215,69,25,185,144,89,25,185,56,109,25,185,207,128,25,185,85,148,25,185,203,167,25,185,48,187,25,185,132,206,25,185,199,225,25,185,250,244,25,185,27,8,26,185,44,27,26,185,45,46,26,185,
28,65,26,185,250,83,26,185,200,102,26,185,133,121,26,185,49,140,26,185,204,158,26,185,87,177,26,185,208,195,26,185,57,214,26,185,145,232,26,185,216,250,26,185,14,13,27,185,51,31,27,185,72,49,27,185,75,67,27,185,62,85,27,185,31,103,27,185,240,120,27,185,176,138,27,185,95,156,27,185,253,173,27,185,138,191,27,185,6,209,27,185,113,226,27,185,203,243,27,185,20,5,28,185,76,22,28,185,116,39,28,185,138,56,28,185,143,73,28,185,132,90,28,185,103,107,28,185,57,124,28,185,250,140,28,185,171,157,28,185,74,174,
28,185,216,190,28,185,86,207,28,185,194,223,28,185,29,240,28,185,103,0,29,185,160,16,29,185,200,32,29,185,223,48,29,185,229,64,29,185,218,80,29,185,189,96,29,185,144,112,29,185,82,128,29,185,2,144,29,185,161,159,29,185,48,175,29,185,173,190,29,185,25,206,29,185,116,221,29,185,190,236,29,185,246,251,29,185,30,11,30,185,52,26,30,185,57,41,30,185,45,56,30,185,16,71,30,185,226,85,30,185,163,100,30,185,82,115,30,185,241,129,30,185,126,144,30,185,250,158,30,185,100,173,30,185,190,187,30,185,6,202,30,185,
61,216,30,185,99,230,30,185,120,244,30,185,124,2,31,185,110,16,31,185,79,30,31,185,31,44,31,185,221,57,31,185,139,71,31,185,39,85,31,185,178,98,31,185,43,112,31,185,148,125,31,185,235,138,31,185,49,152,31,185,101,165,31,185,137,178,31,185,155,191,31,185,156,204,31,185,139,217,31,185,105,230,31,185,54,243,31,185,242,255,31,185,156,12,32,185,53,25,32,185,189,37,32,185,51,50,32,185,152,62,32,185,236,74,32,185,47,87,32,185,96,99,32,185,128,111,32,185,142,123,32,185,139,135,32,185,119,147,32,185,81,159,
32,185,26,171,32,185,210,182,32,185,121,194,32,185,14,206,32,185,145,217,32,185,4,229,32,185,100,240,32,185,180,251,32,185,242,6,33,185,31,18,33,185,58,29,33,185,69,40,33,185,61,51,33,185,36,62,33,185,250,72,33,185,191,83,33,185,114,94,33,185,20,105,33,185,164,115,33,185,35,126,33,185,144,136,33,185,236,146,33,185,55,157,33,185,112,167,33,185,152,177,33,185,174,187,33,185,179,197,33,185,166,207,33,185,136,217,33,185,89,227,33,185,24,237,33,185,198,246,33,185,98,0,34,185,237,9,34,185,102,19,34,185,
206,28,34,185,37,38,34,185,106,47,34,185,157,56,34,185,191,65,34,185,208,74,34,185,207,83,34,185,189,92,34,185,153,101,34,185,99,110,34,185,29,119,34,185,196,127,34,185,91,136,34,185,223,144,34,185,83,153,34,185,180,161,34,185,5,170,34,185,68,178,34,185,113,186,34,185,141,194,34,185,151,202,34,185,144,210,34,185,119,218,34,185,77,226,34,185,17,234,34,185,196,241,34,185,101,249,34,185,245,0,35,185,115,8,35,185,224,15,35,185,59,23,35,185,133,30,35,185,189,37,35,185,228,44,35,185,249,51,35,185,253,58,
35,185,239,65,35,185,207,72,35,185,158,79,35,185,92,86,35,185,8,93,35,185,162,99,35,185,43,106,35,185,162,112,35,185,8,119,35,185,92,125,35,185,159,131,35,185,208,137,35,185,240,143,35,185,254,149,35,185,250,155,35,185,229,161,35,185,191,167,35,185,135,173,35,185,61,179,35,185,226,184,35,185,117,190,35,185,247,195,35,185,103,201,35,185,197,206,35,185,18,212,35,185,78,217,35,185,120,222,35,185,144,227,35,185,151,232,35,185,140,237,35,185,112,242,35,185,66,247,35,185,2,252,35,185,177,0,36,185,78,5,
36,185,218,9,36,185,85,14,36,185,189,18,36,185,20,23,36,185,90,27,36,185,142,31,36,185,176,35,36,185,193,39,36,185,193,43,36,185,174,47,36,185,139,51,36,185,85,55,36,185,14,59,36,185,182,62,36,185,76,66,36,185,208,69,36,185,67,73,36,185,164,76,36,185,243,79,36,185,49,83,36,185,94,86,36,185,121,89,36,185,130,92,36,185,122,95,36,185,96,98,36,185,53,101,36,185,248,103,36,185,169,106,36,185,73,109,36,185,216,111,36,185,84,114,36,185,192,116,36,185,25,119,36,185,97,121,36,185,152,123,36,185,189,125,36,
185,208,127,36,185,210,129,36,185,194,131,36,185,161,133,36,185,110,135,36,185,42,137,36,185,212,138,36,185,108,140,36,185,243,141,36,185,105,143,36,185,204,144,36,185,31,146,36,185,95,147,36,185,142,148,36,185,172,149,36,185,184,150,36,185,179,151,36,185,155,152,36,185,115,153,36,185,57,154,36,185,237,154,36,185,144,155,36,185,33,156,36,185,160,156,36,185,14,157,36,185,107,157,36,185,182,157,36,185,239,157,36,185,23,158,36,185,46,158,36,185,50,158,36,185,38,158,36,185,8,158,36,185,216,157,36,185,
150,157,36,185,68,157,36,185,223,156,36,185,105,156,36,185,226,155,36,185,73,155,36,185,159,154,36,185,227,153,36,185,21,153,36,185,54,152,36,185,70,151,36,185,68,150,36,185,48,149,36,185,11,148,36,185,212,146,36,185,140,145,36,185,51,144,36,185,200,142,36,185,75,141,36,185,189,139,36,185,29,138,36,185,108,136,36,185,170,134,36,185,214,132,36,185,240,130,36,185,249,128,36,185,241,126,36,185,215,124,36,185,171,122,36,185,110,120,36,185,32,118,36,185,192,115,36,185,79,113,36,185,204,110,36,185,56,108,
36,185,146,105,36,185,219,102,36,185,18,100,36,185,56,97,36,185,76,94,36,185,79,91,36,185,65,88,36,185,33,85,36,185,239,81,36,185,173,78,36,185,88,75,36,185,243,71,36,185,124,68,36,185,243,64,36,185,89,61,36,185,174,57,36,185,241,53,36,185,35,50,36,185,67,46,36,185,82,42,36,185,80,38,36,185,60,34,36,185,23,30,36,185,224,25,36,185,152,21,36,185,62,17,36,185,212,12,36,185,87,8,36,185,202,3,36,185,43,255,35,185,122,250,35,185,185,245,35,185,230,240,35,185,1,236,35,185,11,231,35,185,4,226,35,185,236,
220,35,185,194,215,35,185,135,210,35,185,58,205,35,185,220,199,35,185,109,194,35,185,236,188,35,185,90,183,35,185,183,177,35,185,2,172,35,185,61,166,35,185,101,160,35,185,125,154,35,185,131,148,35,185,120,142,35,185,91,136,35,185,46,130,35,185,239,123,35,185,158,117,35,185,61,111,35,185,202,104,35,185,70,98,35,185,176,91,35,185,10,85,35,185,82,78,35,185,136,71,35,185,174,64,35,185,194,57,35,185,197,50,35,185,183,43,35,185,152,36,35,185,103,29,35,185,37,22,35,185,210,14,35,185,109,7,35,185,248,255,
34,185,113,248,34,185,217,240,34,185,48,233,34,185,117,225,34,185,170,217,34,185,205,209,34,185,223,201,34,185,224,193,34,185,208,185,34,185,174,177,34,185,123,169,34,185,56,161,34,185,227,152,34,185,124,144,34,185,5,136,34,185,125,127,34,185,227,118,34,185,56,110,34,185,125,101,34,185,176,92,34,185,210,83,34,185,226,74,34,185,226,65,34,185,209,56,34,185,174,47,34,185,123,38,34,185,54,29,34,185,224,19,34,185,121,10,34,185,2,1,34,185,121,247,33,185,223,237,33,185,51,228,33,185,119,218,33,185,170,208,
33,185,204,198,33,185,221,188,33,185,220,178,33,185,203,168,33,185,169,158,33,185,117,148,33,185,49,138,33,185,220,127,33,185,117,117,33,185,254,106,33,185,118,96,33,185,221,85,33,185,50,75,33,185,119,64,33,185,171,53,33,185,206,42,33,185,224,31,33,185,225,20,33,185,209,9,33,185,176,254,32,185,126,243,32,185,59,232,32,185,232,220,32,185,131,209,32,185,14,198,32,185,135,186,32,185,240,174,32,185,72,163,32,185,143,151,32,185,197,139,32,185,234,127,32,185,255,115,32,185,2,104,32,185,245,91,32,185,215,
79,32,185,168,67,32,185,104,55,32,185,23,43,32,185,182,30,32,185,68,18,32,185,193,5,32,185,45,249,31,185,136,236,31,185,211,223,31,185,13,211,31,185,54,198,31,185,78,185,31,185,86,172,31,185,76,159,31,185,50,146,31,185,8,133,31,185,204,119,31,185,128,106,31,185,35,93,31,185,182,79,31,185,56,66,31,185,169,52,31,185,9,39,31,185,89,25,31,185,152,11,31,185,198,253,30,185,228,239,30,185,241,225,30,185,237,211,30,185,217,197,30,185,180,183,30,185,127,169,30,185,57,155,30,185,226,140,30,185,123,126,30,185,
3,112,30,185,122,97,30,185,225,82,30,185,56,68,30,185,126,53,30,185,179,38,30,185,216,23,30,185,236,8,30,185,239,249,29,185,227,234,29,185,197,219,29,185,151,204,29,185,89,189,29,185,10,174,29,185,170,158,29,185,59,143,29,185,186,127,29,185,41,112,29,185,136,96,29,185,214,80,29,185,20,65,29,185,66,49,29,185,95,33,29,185,107,17,29,185,103,1,29,185,83,241,28,185,46,225,28,185,249,208,28,185,180,192,28,185,94,176,28,185,248,159,28,185,130,143,28,185,251,126,28,185,100,110,28,185,188,93,28,185,4,77,28,
185,60,60,28,185,100,43,28,185,123,26,28,185,130,9,28,185,121,248,27,185,95,231,27,185,53,214,27,185,251,196,27,185,177,179,27,185,86,162,27,185,235,144,27,185,112,127,27,185,229,109,27,185,74,92,27,185,158,74,27,185,226,56,27,185,22,39,27,185,58,21,27,185,78,3,27,185,81,241,26,185,69,223,26,185,40,205,26,185,251,186,26,185,190,168,26,185,113,150,26,185,20,132,26,185,166,113,26,185,41,95,26,185,156,76,26,185,254,57,26,185,80,39,26,185,147,20,26,185,197,1,26,185,232,238,25,185,250,219,25,185,252,200,
25,185,239,181,25,185,209,162,25,185,163,143,25,185,102,124,25,185,24,105,25,185,186,85,25,185,77,66,25,185,208,46,25,185,66,27,25,185,165,7,25,185,248,243,24,185,59,224,24,185,110,204,24,185,145,184,24,185,164,164,24,185,168,144,24,185,155,124,24,185,127,104,24,185,83,84,24,185,23,64,24,185,203,43,24,185,112,23,24,185,5,3,24,185,138,238,23,185,255,217,23,185,100,197,23,185,186,176,23,185,0,156,23,185,54,135,23,185,92,114,23,185,115,93,23,185,122,72,23,185,113,51,23,185,89,30,23,185,49,9,23,185,249,
243,22,185,178,222,22,185,91,201,22,185,245,179,22,185,126,158,22,185,249,136,22,185,99,115,22,185,190,93,22,185,9,72,22,185,69,50,22,185,114,28,22,185,142,6,22,185,155,240,21,185,153,218,21,185,135,196,21,185,102,174,21,185,53,152,21,185,245,129,21,185,165,107,21,185,69,85,21,185,215,62,21,185,88,40,21,185,203,17,21,185,46,251,20,185,129,228,20,185,197,205,20,185,250,182,20,185,31,160,20,185,53,137,20,185,60,114,20,185,51,91,20,185,27,68,20,185,244,44,20,185,189,21,20,185,119,254,19,185,34,231,19,
185,189,207,19,185,73,184,19,185,198,160,19,185,52,137,19,185,146,113,19,185,225,89,19,185,33,66,19,185,82,42,19,185,115,18,19,185,134,250,18,185,137,226,18,185,125,202,18,185,97,178,18,185,55,154,18,185,254,129,18,185,181,105,18,185,94,81,18,185,247,56,18,185,129,32,18,185,252,7,18,185,104,239,17,185,197,214,17,185,19,190,17,185,82,165,17,185,130,140,17,185,163,115,17,185,181,90,17,185,183,65,17,185,171,40,17,185,144,15,17,185,102,246,16,185,46,221,16,185,230,195,16,185,143,170,16,185,41,145,16,
185,181,119,16,185,49,94,16,185,159,68,16,185,254,42,16,185,78,17,16,185,143,247,15,185,194,221,15,185,229,195,15,185,250,169,15,185,0,144,15,185,248,117,15,185,224,91,15,185,186,65,15,185,133,39,15,185,65,13,15,185,239,242,14,185,142,216,14,185,30,190,14,185,159,163,14,185,18,137,14,185,119,110,14,185,204,83,14,185,19,57,14,185,76,30,14,185,117,3,14,185,144,232,13,185,157,205,13,185,155,178,13,185,139,151,13,185,108,124,13,185,62,97,13,185,2,70,13,185,183,42,13,185,94,15,13,185,247,243,12,185,129,
216,12,185,252,188,12,185,106,161,12,185,200,133,12,185,24,106,12,185,90,78,12,185,142,50,12,185,179,22,12,185,202,250,11,185,210,222,11,185,204,194,11,185,184,166,11,185,149,138,11,185,101,110,11,185,37,82,11,185,216,53,11,185,124,25,11,185,19,253,10,185,154,224,10,185,20,196,10,185,127,167,10,185,221,138,10,185,44,110,10,185,109,81,10,185,159,52,10,185,196,23,10,185,218,250,9,185,227,221,9,185,221,192,9,185,201,163,9,185,167,134,9,185,119,105,9,185,57,76,9,185,237,46,9,185,147,17,9,185,43,244,8,
185,181,214,8,185,49,185,8,185,159,155,8,185,255,125,8,185,81,96,8,185,149,66,8,185,203,36,8,185,244,6,8,185,14,233,7,185,27,203,7,185,25,173,7,185,10,143,7,185,237,112,7,185,195,82,7,185,138,52,7,185,68,22,7,185,239,247,6,185,141,217,6,185,30,187,6,185,160,156,6,185,21,126,6,185,124,95,6,185,214,64,6,185,34,34,6,185,96,3,6,185,144,228,5,185,179,197,5,185,200,166,5,185,208,135,5,185,201,104,5,185,182,73,5,185,149,42,5,185,102,11,5,185,42,236,4,185,224,204,4,185,136,173,4,185,36,142,4,185,177,110,
4,185,49,79,4,185,164,47,4,185,9,16,4,185,97,240,3,185,172,208,3,185,233,176,3,185,24,145,3,185,59,113,3,185,80,81,3,185,87,49,3,185,81,17,3,185,62,241,2,185,30,209,2,185,240,176,2,185,181,144,2,185,109,112,2,185,24,80,2,185,181,47,2,185,69,15,2,185,200,238,1,185,62,206,1,185,167,173,1,185,2,141,1,185,80,108,1,185,145,75,1,185,197,42,1,185,236,9,1,185,6,233,0,185,19,200,0,185,19,167,0,185,5,134,0,185,235,100,0,185,196,67,0,185,143,34,0,185,78,1,0,185,0,192,255,184,73,125,255,184,121,58,255,184,143,
247,254,184,139,180,254,184,109,113,254,184,54,46,254,184,228,234,253,184,122,167,253,184,245,99,253,184,87,32,253,184,159,220,252,184,206,152,252,184,227,84,252,184,222,16,252,184,192,204,251,184,137,136,251,184,56,68,251,184,206,255,250,184,75,187,250,184,174,118,250,184,248,49,250,184,40,237,249,184,64,168,249,184,62,99,249,184,35,30,249,184,239,216,248,184,162,147,248,184,59,78,248,184,188,8,248,184,36,195,247,184,114,125,247,184,168,55,247,184,197,241,246,184,200,171,246,184,179,101,246,184,
134,31,246,184,63,217,245,184,224,146,245,184,103,76,245,184,214,5,245,184,45,191,244,184,107,120,244,184,144,49,244,184,157,234,243,184,145,163,243,184,108,92,243,184,47,21,243,184,218,205,242,184,108,134,242,184,230,62,242,184,71,247,241,184,144,175,241,184,193,103,241,184,218,31,241,184,218,215,240,184,194,143,240,184,146,71,240,184,74,255,239,184,233,182,239,184,113,110,239,184,225,37,239,184,56,221,238,184,120,148,238,184,159,75,238,184,175,2,238,184,167,185,237,184,135,112,237,184,79,39,237,
184,255,221,236,184,152,148,236,184,25,75,236,184,130,1,236,184,212,183,235,184,14,110,235,184,48,36,235,184,59,218,234,184,46,144,234,184,10,70,234,184,206,251,233,184,123,177,233,184,17,103,233,184,143,28,233,184,246,209,232,184,69,135,232,184,126,60,232,184,159,241,231,184,168,166,231,184,155,91,231,184,119,16,231,184,59,197,230,184,233,121,230,184,127,46,230,184,254,226,229,184,103,151,229,184,184,75,229,184,243,255,228,184,22,180,228,184,35,104,228,184,25,28,228,184,249,207,227,184,193,131,227,
184,115,55,227,184,14,235,226,184,147,158,226,184,1,82,226,184,88,5,226,184,153,184,225,184,196,107,225,184,216,30,225,184,213,209,224,184,188,132,224,184,141,55,224,184,72,234,223,184,236,156,223,184,122,79,223,184,241,1,223,184,83,180,222,184,158,102,222,184,211,24,222,184,243,202,221,184,252,124,221,184,239,46,221,184,204,224,220,184,147,146,220,184,68,68,220,184,223,245,219,184,101,167,219,184,212,88,219,184,46,10,219,184,114,187,218,184,161,108,218,184,186,29,218,184,189,206,217,184,170,127,
217,184,130,48,217,184,68,225,216,184,241,145,216,184,137,66,216,184,11,243,215,184,119,163,215,184,207,83,215,184,16,4,215,184,61,180,214,184,84,100,214,184,87,20,214,184,67,196,213,184,27,116,213,184,222,35,213,184,139,211,212,184,36,131,212,184,167,50,212,184,22,226,211,184,112,145,211,184,180,64,211,184,228,239,210,184,255,158,210,184,5,78,210,184,247,252,209,184,211,171,209,184,155,90,209,184,79,9,209,184,237,183,208,184,119,102,208,184,237,20,208,184,78,195,207,184,154,113,207,184,211,31,207,
184,246,205,206,184,5,124,206,184,0,42,206,184,231,215,205,184,186,133,205,184,120,51,205,184,34,225,204,184,183,142,204,184,57,60,204,184,167,233,203,184,0,151,203,184,70,68,203,184,119,241,202,184,149,158,202,184,159,75,202,184,148,248,201,184,118,165,201,184,68,82,201,184,255,254,200,184,166,171,200,184,56,88,200,184,184,4,200,184,36,177,199,184,124,93,199,184,192,9,199,184,241,181,198,184,15,98,198,184,25,14,198,184,16,186,197,184,243,101,197,184,195,17,197,184,128,189,196,184,41,105,196,184,
192,20,196,184,67,192,195,184,179,107,195,184,16,23,195,184,89,194,194,184,144,109,194,184,180,24,194,184,197,195,193,184,195,110,193,184,174,25,193,184,134,196,192,184,75,111,192,184,253,25,192,184,157,196,191,184,42,111,191,184,165,25,191,184,13,196,190,184,98,110,190,184,164,24,190,184,213,194,189,184,242,108,189,184,253,22,189,184,246,192,188,184,221,106,188,184,177,20,188,184,115,190,187,184,34,104,187,184,191,17,187,184,75,187,186,184,196,100,186,184,42,14,186,184,127,183,185,184,194,96,185,
184,243,9,185,184,18,179,184,184,31,92,184,184,26,5,184,184,3,174,183,184,218,86,183,184,160,255,182,184,84,168,182,184,246,80,182,184,135,249,181,184,5,162,181,184,115,74,181,184,207,242,180,184,25,155,180,184,82,67,180,184,121,235,179,184,143,147,179,184,148,59,179,184,135,227,178,184,105,139,178,184,58,51,178,184,250,218,177,184,168,130,177,184,70,42,177,184,210,209,176,184,77,121,176,184,183,32,176,184,16,200,175,184,89,111,175,184,144,22,175,184,183,189,174,184,204,100,174,184,209,11,174,184,
197,178,173,184,169,89,173,184,124,0,173,184,62,167,172,184,240,77,172,184,145,244,171,184,33,155,171,184,161,65,171,184,17,232,170,184,112,142,170,184,191,52,170,184,254,218,169,184,44,129,169,184,74,39,169,184,88,205,168,184,86,115,168,184,67,25,168,184,33,191,167,184,238,100,167,184,172,10,167,184,89,176,166,184,247,85,166,184,132,251,165,184,2,161,165,184,112,70,165,184,206,235,164,184,29,145,164,184,91,54,164,184,138,219,163,184,170,128,163,184,186,37,163,184,186,202,162,184,171,111,162,184,
140,20,162,184,94,185,161,184,33,94,161,184,212,2,161,184,120,167,160,184,13,76,160,184,146,240,159,184,8,149,159,184,112,57,159,184,200,221,158,184,17,130,158,184,74,38,158,184,117,202,157,184,145,110,157,184,158,18,157,184,156,182,156,184,140,90,156,184,108,254,155,184,62,162,155,184,1,70,155,184,182,233,154,184,91,141,154,184,242,48,154,184,123,212,153,184,245,119,153,184,97,27,153,184,190,190,152,184,13,98,152,184,77,5,152,184,127,168,151,184,163,75,151,184,185,238,150,184,192,145,150,184,185,
52,150,184,164,215,149,184,129,122,149,184,80,29,149,184,17,192,148,184,196,98,148,184,105,5,148,184,0,168,147,184,138,74,147,184,5,237,146,184,115,143,146,184,211,49,146,184,38,212,145,184,106,118,145,184,162,24,145,184,203,186,144,184,231,92,144,184,246,254,143,184,247,160,143,184,235,66,143,184,209,228,142,184,170,134,142,184,118,40,142,184,53,202,141,184,230,107,141,184,138,13,141,184,33,175,140,184,171,80,140,184,40,242,139,184,152,147,139,184,251,52,139,184,82,214,138,184,155,119,138,184,215,
24,138,184,7,186,137,184,42,91,137,184,64,252,136,184,73,157,136,184,70,62,136,184,54,223,135,184,26,128,135,184,241,32,135,184,188,193,134,184,122,98,134,184,44,3,134,184,210,163,133,184,107,68,133,184,248,228,132,184,121,133,132,184,237,37,132,184,86,198,131,184,178,102,131,184,2,7,131,184,70,167,130,184,127,71,130,184,171,231,129,184,203,135,129,184,224,39,129,184,233,199,128,184,230,103,128,184,215,7,128,184,120,79,127,184,44,143,126,184,201,206,125,184,78,14,125,184,188,77,124,184,20,141,123,
184,84,204,122,184,126,11,122,184,144,74,121,184,141,137,120,184,114,200,119,184,65,7,119,184,250,69,118,184,156,132,117,184,41,195,116,184,159,1,116,184,254,63,115,184,72,126,114,184,124,188,113,184,155,250,112,184,163,56,112,184,150,118,111,184,115,180,110,184,59,242,109,184,237,47,109,184,138,109,108,184,17,171,107,184,132,232,106,184,225,37,106,184,42,99,105,184,93,160,104,184,124,221,103,184,134,26,103,184,123,87,102,184,91,148,101,184,40,209,100,184,223,13,100,184,131,74,99,184,18,135,98,184,
141,195,97,184,243,255,96,184,70,60,96,184,133,120,95,184,176,180,94,184,199,240,93,184,203,44,93,184,187,104,92,184,151,164,91,184,96,224,90,184,22,28,90,184,184,87,89,184,72,147,88,184,196,206,87,184,45,10,87,184,131,69,86,184,198,128,85,184,247,187,84,184,21,247,83,184,32,50,83,184,25,109,82,184,255,167,81,184,211,226,80,184,149,29,80,184,69,88,79,184,226,146,78,184,110,205,77,184,231,7,77,184,79,66,76,184,165,124,75,184,233,182,74,184,28,241,73,184,61,43,73,184,77,101,72,184,75,159,71,184,56,
217,70,184,20,19,70,184,223,76,69,184,153,134,68,184,66,192,67,184,218,249,66,184,97,51,66,184,216,108,65,184,62,166,64,184,147,223,63,184,217,24,63,184,13,82,62,184,50,139,61,184,70,196,60,184,75,253,59,184,63,54,59,184,35,111,58,184,248,167,57,184,189,224,56,184,114,25,56,184,24,82,55,184,174,138,54,184,52,195,53,184,172,251,52,184,20,52,52,184,109,108,51,184,183,164,50,184,241,220,49,184,29,21,49,184,59,77,48,184,73,133,47,184,73,189,46,184,58,245,45,184,29,45,45,184,241,100,44,184,183,156,43,
184,111,212,42,184,25,12,42,184,180,67,41,184,66,123,40,184,193,178,39,184,51,234,38,184,151,33,38,184,238,88,37,184,55,144,36,184,115,199,35,184,161,254,34,184,193,53,34,184,213,108,33,184,220,163,32,184,213,218,31,184,194,17,31,184,161,72,30,184,116,127,29,184,58,182,28,184,244,236,27,184,161,35,27,184,65,90,26,184,213,144,25,184,93,199,24,184,217,253,23,184,72,52,23,184,172,106,22,184,3,161,21,184,79,215,20,184,143,13,20,184,195,67,19,184,236,121,18,184,9,176,17,184,27,230,16,184,33,28,16,184,
28,82,15,184,12,136,14,184,241,189,13,184,203,243,12,184,154,41,12,184,94,95,11,184,23,149,10,184,198,202,9,184,106,0,9,184,3,54,8,184,146,107,7,184,23,161,6,184,146,214,5,184,2,12,5,184,104,65,4,184,197,118,3,184,23,172,2,184,96,225,1,184,159,22,1,184,212,75,0,184,255,1,255,183,67,108,253,183,117,214,251,183,148,64,250,183,161,170,248,183,155,20,247,183,131,126,245,183,89,232,243,183,30,82,242,183,209,187,240,183,114,37,239,183,2,143,237,183,130,248,235,183,240,97,234,183,77,203,232,183,154,52,231,
183,215,157,229,183,3,7,228,183,31,112,226,183,44,217,224,183,40,66,223,183,21,171,221,183,243,19,220,183,194,124,218,183,129,229,216,183,50,78,215,183,212,182,213,183,103,31,212,183,236,135,210,183,99,240,208,183,204,88,207,183,39,193,205,183,117,41,204,183,181,145,202,183,231,249,200,183,13,98,199,183,37,202,197,183,49,50,196,183,48,154,194,183,34,2,193,183,9,106,191,183,227,209,189,183,177,57,188,183,115,161,186,183,42,9,185,183,213,112,183,183,117,216,181,183,10,64,180,183,148,167,178,183,19,
15,177,183,136,118,175,183,242,221,173,183,82,69,172,183,168,172,170,183,244,19,169,183,54,123,167,183,111,226,165,183,158,73,164,183,196,176,162,183,225,23,161,183,245,126,159,183,1,230,157,183,4,77,156,183,254,179,154,183,241,26,153,183,219,129,151,183,189,232,149,183,152,79,148,183,107,182,146,183,55,29,145,183,252,131,143,183,186,234,141,183,112,81,140,183,33,184,138,183,202,30,137,183,110,133,135,183,11,236,133,183,162,82,132,183,52,185,130,183,192,31,129,183,140,12,127,183,142,217,123,183,134,
166,120,183,116,115,117,183,89,64,114,183,52,13,111,183,6,218,107,183,208,166,104,183,146,115,101,183,76,64,98,183,254,12,95,183,169,217,91,183,77,166,88,183,235,114,85,183,131,63,82,183,21,12,79,183,161,216,75,183,40,165,72,183,171,113,69,183,41,62,66,183,163,10,63,183,25,215,59,183,140,163,56,183,252,111,53,183,105,60,50,183,211,8,47,183,60,213,43,183,163,161,40,183,8,110,37,183,109,58,34,183,208,6,31,183,52,211,27,183,151,159,24,183,251,107,21,183,95,56,18,183,197,4,15,183,44,209,11,183,148,157,
8,183,255,105,5,183,108,54,2,183,183,5,254,182,157,158,247,182,137,55,241,182,125,208,234,182,121,105,228,182,126,2,222,182,141,155,215,182,166,52,209,182,201,205,202,182,248,102,196,182,52,0,190,182,124,153,183,182,210,50,177,182,55,204,170,182,170,101,164,182,45,255,157,182,193,152,151,182,101,50,145,182,27,204,138,182,228,101,132,182,127,255,123,182,94,51,111,182,102,103,98,182,152,155,85,182,245,207,72,182,128,4,60,182,57,57,47,182,33,110,34,182,59,163,21,182,135,216,8,182,13,28,248,181,119,135,
222,181,78,243,196,181,148,95,171,181,77,204,145,181,245,114,112,181,64,78,61,181,129,42,10,181,119,15,174,180,217,151,15,180,156,172,115,51,254,180,132,52,72,242,234,52,179,150,40,53,40,179,91,53,62,103,135,53,85,244,160,53,214,128,186,53,191,12,212,53,13,152,237,53,94,145,3,54,102,86,16,54,28,27,29,54,128,223,41,54,143,163,54,54,72,103,67,54,170,42,80,54,180,237,92,54,100,176,105,54,185,114,118,54,89,154,129,54,38,251,135,54,196,91,142,54,50,188,148,54,110,28,155,54,122,124,161,54,82,220,167,54,
248,59,174,54,107,155,180,54,169,250,186,54,178,89,193,54,133,184,199,54,34,23,206,54,136,117,212,54,182,211,218,54,172,49,225,54,105,143,231,54,237,236,237,54,54,74,244,54,68,167,250,54,11,130,0,55,86,176,3,55,130,222,6,55,144,12,10,55,126,58,13,55,77,104,16,55,252,149,19,55,139,195,22,55,249,240,25,55,70,30,29,55,114,75,32,55,125,120,35,55,101,165,38,55,44,210,41,55,208,254,44,55,81,43,48,55,174,87,51,55,232,131,54,55,255,175,57,55,241,219,60,55,190,7,64,55,103,51,67,55,234,94,70,55,72,138,73,55,
127,181,76,55,145,224,79,55,124,11,83,55,64,54,86,55,221,96,89,55,82,139,92,55,159,181,95,55,197,223,98,55,193,9,102,55,149,51,105,55,63,93,108,55,192,134,111,55,22,176,114,55,67,217,117,55,69,2,121,55,28,43,124,55,200,83,127,55,36,62,129,55,78,210,130,55,98,102,132,55,96,250,133,55,71,142,135,55,24,34,137,55,210,181,138,55,116,73,140,55,0,221,141,55,117,112,143,55,210,3,145,55,23,151,146,55,69,42,148,55,90,189,149,55,88,80,151,55,61,227,152,55,10,118,154,55,190,8,156,55,89,155,157,55,220,45,159,
55,69,192,160,55,149,82,162,55,204,228,163,55,233,118,165,55,236,8,167,55,213,154,168,55,164,44,170,55,89,190,171,55,244,79,173,55,115,225,174,55,216,114,176,55,35,4,178,55,82,149,179,55,101,38,181,55,94,183,182,55,59,72,184,55,252,216,185,55,161,105,187,55,42,250,188,55,150,138,190,55,231,26,192,55,26,171,193,55,49,59,195,55,44,203,196,55,9,91,198,55,200,234,199,55,107,122,201,55,240,9,203,55,87,153,204,55,160,40,206,55,203,183,207,55,216,70,209,55,199,213,210,55,151,100,212,55,72,243,213,55,218,
129,215,55,78,16,217,55,162,158,218,55,215,44,220,55,236,186,221,55,226,72,223,55,183,214,224,55,109,100,226,55,3,242,227,55,120,127,229,55,205,12,231,55,1,154,232,55,20,39,234,55,6,180,235,55,215,64,237,55,135,205,238,55,21,90,240,55,130,230,241,55,205,114,243,55,245,254,244,55,252,138,246,55,225,22,248,55,163,162,249,55,66,46,251,55,190,185,252,55,24,69,254,55,79,208,255,55,177,173,0,56,41,115,1,56,143,56,2,56,227,253,2,56,38,195,3,56,86,136,4,56,116,77,5,56,128,18,6,56,122,215,6,56,97,156,7,56,
54,97,8,56,248,37,9,56,168,234,9,56,69,175,10,56,207,115,11,56,71,56,12,56,171,252,12,56,253,192,13,56,59,133,14,56,103,73,15,56,127,13,16,56,131,209,16,56,117,149,17,56,83,89,18,56,29,29,19,56,212,224,19,56,119,164,20,56,6,104,21,56,129,43,22,56,232,238,22,56,60,178,23,56,123,117,24,56,166,56,25,56,188,251,25,56,191,190,26,56,172,129,27,56,134,68,28,56,75,7,29,56,251,201,29,56,150,140,30,56,28,79,31,56,142,17,32,56,235,211,32,56,50,150,33,56,100,88,34,56,129,26,35,56,137,220,35,56,124,158,36,56,
89,96,37,56,32,34,38,56,210,227,38,56,110,165,39,56,244,102,40,56,100,40,41,56,191,233,41,56,3,171,42,56,50,108,43,56,74,45,44,56,76,238,44,56,55,175,45,56,12,112,46,56,203,48,47,56,115,241,47,56,5,178,48,56,127,114,49,56,227,50,50,56,48,243,50,56,102,179,51,56,133,115,52,56,141,51,53,56,126,243,53,56,87,179,54,56,25,115,55,56,196,50,56,56,87,242,56,56,211,177,57,56,55,113,58,56,131,48,59,56,183,239,59,56,211,174,60,56,216,109,61,56,196,44,62,56,153,235,62,56,85,170,63,56,248,104,64,56,132,39,65,
56,247,229,65,56,81,164,66,56,147,98,67,56,188,32,68,56,204,222,68,56,196,156,69,56,163,90,70,56,104,24,71,56,21,214,71,56,169,147,72,56,35,81,73,56,132,14,74,56,204,203,74,56,250,136,75,56,14,70,76,56,10,3,77,56,235,191,77,56,179,124,78,56,96,57,79,56,244,245,79,56,110,178,80,56,206,110,81,56,20,43,82,56,64,231,82,56,81,163,83,56,72,95,84,56,36,27,85,56,230,214,85,56,142,146,86,56,26,78,87,56,140,9,88,56,227,196,88,56,32,128,89,56,65,59,90,56,71,246,90,56,50,177,91,56,2,108,92,56,183,38,93,56,80,
225,93,56,206,155,94,56,49,86,95,56,119,16,96,56,163,202,96,56,178,132,97,56,166,62,98,56,126,248,98,56,57,178,99,56,217,107,100,56,93,37,101,56,196,222,101,56,16,152,102,56,63,81,103,56,81,10,104,56,71,195,104,56,33,124,105,56,222,52,106,56,126,237,106,56,2,166,107,56,104,94,108,56,178,22,109,56,223,206,109,56,238,134,110,56,225,62,111,56,182,246,111,56,110,174,112,56,9,102,113,56,134,29,114,56,229,212,114,56,39,140,115,56,76,67,116,56,82,250,116,56,59,177,117,56,6,104,118,56,179,30,119,56,66,213,
119,56,179,139,120,56,6,66,121,56,58,248,121,56,80,174,122,56,72,100,123,56,33,26,124,56,220,207,124,56,120,133,125,56,246,58,126,56,84,240,126,56,148,165,127,56,90,45,128,56,219,135,128,56,77,226,128,56,175,60,129,56,1,151,129,56,67,241,129,56,118,75,130,56,154,165,130,56,173,255,130,56,177,89,131,56,165,179,131,56,137,13,132,56,93,103,132,56,33,193,132,56,213,26,133,56,122,116,133,56,14,206,133,56,146,39,134,56,6,129,134,56,106,218,134,56,190,51,135,56,1,141,135,56,52,230,135,56,87,63,136,56,106,
152,136,56,108,241,136,56,94,74,137,56,63,163,137,56,16,252,137,56,209,84,138,56,129,173,138,56,32,6,139,56,175,94,139,56,45,183,139,56,155,15,140,56,247,103,140,56,67,192,140,56,126,24,141,56,169,112,141,56,194,200,141,56,203,32,142,56,195,120,142,56,169,208,142,56,127,40,143,56,68,128,143,56,247,215,143,56,154,47,144,56,43,135,144,56,171,222,144,56,26,54,145,56,120,141,145,56,197,228,145,56,0,60,146,56,42,147,146,56,66,234,146,56,73,65,147,56,63,152,147,56,35,239,147,56,245,69,148,56,182,156,148,
56,102,243,148,56,4,74,149,56,144,160,149,56,10,247,149,56,115,77,150,56,202,163,150,56,15,250,150,56,66,80,151,56,100,166,151,56,115,252,151,56,113,82,152,56,92,168,152,56,54,254,152,56,253,83,153,56,179,169,153,56,86,255,153,56,232,84,154,56,103,170,154,56,211,255,154,56,46,85,155,56,118,170,155,56,172,255,155,56,208,84,156,56,225,169,156,56,224,254,156,56,205,83,157,56,167,168,157,56,110,253,157,56,35,82,158,56,197,166,158,56,85,251,158,56,210,79,159,56,60,164,159,56,148,248,159,56,216,76,160,
56,11,161,160,56,42,245,160,56,54,73,161,56,48,157,161,56,22,241,161,56,234,68,162,56,171,152,162,56,88,236,162,56,243,63,163,56,122,147,163,56,238,230,163,56,80,58,164,56,158,141,164,56,216,224,164,56,0,52,165,56,20,135,165,56,21,218,165,56,3,45,166,56,221,127,166,56,164,210,166,56,87,37,167,56,247,119,167,56,131,202,167,56,252,28,168,56,97,111,168,56,179,193,168,56,241,19,169,56,27,102,169,56,49,184,169,56,52,10,170,56,35,92,170,56,254,173,170,56,198,255,170,56,121,81,171,56,25,163,171,56,164,244,
171,56,28,70,172,56,128,151,172,56,207,232,172,56,11,58,173,56,50,139,173,56,69,220,173,56,69,45,174,56,47,126,174,56,6,207,174,56,201,31,175,56,119,112,175,56,17,193,175,56,150,17,176,56,7,98,176,56,100,178,176,56,172,2,177,56,224,82,177,56,255,162,177,56,9,243,177,56,255,66,178,56,225,146,178,56,174,226,178,56,102,50,179,56,9,130,179,56,152,209,179,56,18,33,180,56,119,112,180,56,199,191,180,56,2,15,181,56,41,94,181,56,58,173,181,56,55,252,181,56,31,75,182,56,241,153,182,56,175,232,182,56,87,55,
183,56,235,133,183,56,105,212,183,56,210,34,184,56,38,113,184,56,100,191,184,56,141,13,185,56,161,91,185,56,160,169,185,56,137,247,185,56,93,69,186,56,28,147,186,56,197,224,186,56,88,46,187,56,214,123,187,56,63,201,187,56,146,22,188,56,207,99,188,56,247,176,188,56,9,254,188,56,5,75,189,56,236,151,189,56,189,228,189,56,120,49,190,56,29,126,190,56,172,202,190,56,38,23,191,56,137,99,191,56,215,175,191,56,14,252,191,56,48,72,192,56,60,148,192,56,49,224,192,56,17,44,193,56,218,119,193,56,141,195,193,56,
42,15,194,56,177,90,194,56,34,166,194,56,124,241,194,56,192,60,195,56,238,135,195,56,5,211,195,56,6,30,196,56,241,104,196,56,197,179,196,56,130,254,196,56,42,73,197,56,186,147,197,56,52,222,197,56,152,40,198,56,228,114,198,56,27,189,198,56,58,7,199,56,67,81,199,56,53,155,199,56,16,229,199,56,213,46,200,56,130,120,200,56,25,194,200,56,153,11,201,56,2,85,201,56,84,158,201,56,143,231,201,56,179,48,202,56,193,121,202,56,183,194,202,56,150,11,203,56,93,84,203,56,14,157,203,56,168,229,203,56,42,46,204,
56,149,118,204,56,233,190,204,56,38,7,205,56,75,79,205,56,89,151,205,56,79,223,205,56,47,39,206,56,246,110,206,56,167,182,206,56,63,254,206,56,193,69,207,56,43,141,207,56,125,212,207,56,183,27,208,56,219,98,208,56,230,169,208,56,218,240,208,56,182,55,209,56,122,126,209,56,39,197,209,56,187,11,210,56,56,82,210,56,157,152,210,56,235,222,210,56,32,37,211,56,61,107,211,56,67,177,211,56,48,247,211,56,6,61,212,56,195,130,212,56,105,200,212,56,246,13,213,56,107,83,213,56,201,152,213,56,13,222,213,56,58,
35,214,56,79,104,214,56,75,173,214,56,47,242,214,56,251,54,215,56,174,123,215,56,73,192,215,56,204,4,216,56,54,73,216,56,136,141,216,56,193,209,216,56,226,21,217,56,235,89,217,56,219,157,217,56,178,225,217,56,113,37,218,56,23,105,218,56,164,172,218,56,25,240,218,56,117,51,219,56,184,118,219,56,227,185,219,56,245,252,219,56,238,63,220,56,206,130,220,56,149,197,220,56,68,8,221,56,218,74,221,56,86,141,221,56,186,207,221,56,5,18,222,56,54,84,222,56,79,150,222,56,79,216,222,56,53,26,223,56,3,92,223,56,
183,157,223,56,82,223,223,56,212,32,224,56,61,98,224,56,141,163,224,56,195,228,224,56,224,37,225,56,228,102,225,56,206,167,225,56,159,232,225,56,87,41,226,56,245,105,226,56,122,170,226,56,229,234,226,56,55,43,227,56,112,107,227,56,142,171,227,56,148,235,227,56,127,43,228,56,81,107,228,56,10,171,228,56,169,234,228,56,46,42,229,56,153,105,229,56,235,168,229,56,35,232,229,56,65,39,230,56,69,102,230,56,48,165,230,56,1,228,230,56,183,34,231,56,84,97,231,56,215,159,231,56,64,222,231,56,144,28,232,56,197,
90,232,56,224,152,232,56,225,214,232,56,200,20,233,56,149,82,233,56,71,144,233,56,224,205,233,56,94,11,234,56,195,72,234,56,13,134,234,56,61,195,234,56,82,0,235,56,78,61,235,56,47,122,235,56,245,182,235,56,162,243,235,56,52,48,236,56,171,108,236,56,9,169,236,56,75,229,236,56,116,33,237,56,130,93,237,56,117,153,237,56,78,213,237,56,12,17,238,56,176,76,238,56,57,136,238,56,167,195,238,56,251,254,238,56,52,58,239,56,82,117,239,56,86,176,239,56,63,235,239,56,13,38,240,56,193,96,240,56,90,155,240,56,215,
213,240,56,58,16,241,56,131,74,241,56,176,132,241,56,194,190,241,56,186,248,241,56,150,50,242,56,87,108,242,56,254,165,242,56,137,223,242,56,250,24,243,56,79,82,243,56,137,139,243,56,169,196,243,56,173,253,243,56,149,54,244,56,99,111,244,56,22,168,244,56,173,224,244,56,41,25,245,56,138,81,245,56,207,137,245,56,250,193,245,56,8,250,245,56,252,49,246,56,212,105,246,56,145,161,246,56,50,217,246,56,184,16,247,56,35,72,247,56,114,127,247,56,165,182,247,56,190,237,247,56,186,36,248,56,155,91,248,56,96,
146,248,56,10,201,248,56,152,255,248,56,11,54,249,56,98,108,249,56,157,162,249,56,189,216,249,56,192,14,250,56,169,68,250,56,117,122,250,56,37,176,250,56,186,229,250,56,51,27,251,56,144,80,251,56,209,133,251,56,247,186,251,56,0,240,251,56,238,36,252,56,192,89,252,56,117,142,252,56,15,195,252,56,141,247,252,56,238,43,253,56,52,96,253,56,93,148,253,56,107,200,253,56,92,252,253,56,50,48,254,56,235,99,254,56,136,151,254,56,9,203,254,56,109,254,254,56,182,49,255,56,226,100,255,56,242,151,255,56,230,202,
255,56,189,253,255,56,60,24,0,57,140,49,0,57,205,74,0,57,0,100,0,57,37,125,0,57,59,150,0,57,68,175,0,57,62,200,0,57,42,225,0,57,8,250,0,57,215,18,1,57,153,43,1,57,76,68,1,57,240,92,1,57,135,117,1,57,15,142,1,57,137,166,1,57,245,190,1,57,82,215,1,57,161,239,1,57,225,7,2,57,20,32,2,57,55,56,2,57,77,80,2,57,84,104,2,57,77,128,2,57,55,152,2,57,19,176,2,57,225,199,2,57,160,223,2,57,81,247,2,57,243,14,3,57,135,38,3,57,12,62,3,57,131,85,3,57,236,108,3,57,70,132,3,57,145,155,3,57,206,178,3,57,253,201,3,57,
29,225,3,57,46,248,3,57,49,15,4,57,38,38,4,57,11,61,4,57,227,83,4,57,172,106,4,57,102,129,4,57,17,152,4,57,174,174,4,57,61,197,4,57,189,219,4,57,46,242,4,57,145,8,5,57,229,30,5,57,42,53,5,57,97,75,5,57,137,97,5,57,162,119,5,57,173,141,5,57,169,163,5,57,150,185,5,57,117,207,5,57,69,229,5,57,6,251,5,57,185,16,6,57,93,38,6,57,242,59,6,57,120,81,6,57,240,102,6,57,89,124,6,57,179,145,6,57,254,166,6,57,59,188,6,57,104,209,6,57,135,230,6,57,152,251,6,57,153,16,7,57,140,37,7,57,111,58,7,57,68,79,7,57,10,
100,7,57,193,120,7,57,106,141,7,57,3,162,7,57,142,182,7,57,10,203,7,57,119,223,7,57,213,243,7,57,36,8,8,57,100,28,8,57,149,48,8,57,184,68,8,57,203,88,8,57,208,108,8,57,197,128,8,57,172,148,8,57,131,168,8,57,76,188,8,57,6,208,8,57,177,227,8,57,76,247,8,57,217,10,9,57,87,30,9,57,198,49,9,57,38,69,9,57,118,88,9,57,184,107,9,57,235,126,9,57,14,146,9,57,35,165,9,57,41,184,9,57,31,203,9,57,7,222,9,57,223,240,9,57,168,3,10,57,99,22,10,57,14,41,10,57,170,59,10,57,55,78,10,57,180,96,10,57,35,115,10,57,131,
133,10,57,211,151,10,57,21,170,10,57,71,188,10,57,106,206,10,57,126,224,10,57,130,242,10,57,120,4,11,57,94,22,11,57,53,40,11,57,253,57,11,57,182,75,11,57,96,93,11,57,250,110,11,57,133,128,11,57,1,146,11,57,110,163,11,57,204,180,11,57,26,198,11,57,89,215,11,57,137,232,11,57,169,249,11,57,187,10,12,57,189,27,12,57,175,44,12,57,147,61,12,57,103,78,12,57,44,95,12,57,225,111,12,57,136,128,12,57,31,145,12,57,166,161,12,57,31,178,12,57,136,194,12,57,226,210,12,57,44,227,12,57,103,243,12,57,147,3,13,57,175,
19,13,57,188,35,13,57,186,51,13,57,168,67,13,57,135,83,13,57,86,99,13,57],"i8",4,y.a+921600);
Q([22,115,13,57,199,130,13,57,104,146,13,57,250,161,13,57,125,177,13,57,240,192,13,57,84,208,13,57,168,223,13,57,237,238,13,57,34,254,13,57,72,13,14,57,95,28,14,57,102,43,14,57,94,58,14,57,70,73,14,57,31,88,14,57,232,102,14,57,162,117,14,57,76,132,14,57,231,146,14,57,114,161,14,57,238,175,14,57,91,190,14,57,184,204,14,57,5,219,14,57,67,233,14,57,113,247,14,57,144,5,15,57,159,19,15,57,159,33,15,57,143,47,15,57,112,61,15,57,65,75,15,57,3,89,15,57,181,102,15,57,88,116,15,57,235,129,15,57,110,143,15,
57,226,156,15,57,70,170,15,57,155,183,15,57,224,196,15,57,21,210,15,57,59,223,15,57,82,236,15,57,89,249,15,57,80,6,16,57,55,19,16,57,15,32,16,57,215,44,16,57,144,57,16,57,57,70,16,57,211,82,16,57,93,95,16,57,215,107,16,57,65,120,16,57,156,132,16,57,231,144,16,57,35,157,16,57,79,169,16,57,107,181,16,57,120,193,16,57,117,205,16,57,98,217,16,57,64,229,16,57,14,241,16,57,204,252,16,57,123,8,17,57,26,20,17,57,169,31,17,57,40,43,17,57,152,54,17,57,248,65,17,57,73,77,17,57,137,88,17,57,186,99,17,57,220,
110,17,57,237,121,17,57,239,132,17,57,225,143,17,57,196,154,17,57,150,165,17,57,89,176,17,57,12,187,17,57,176,197,17,57,67,208,17,57,199,218,17,57,59,229,17,57,160,239,17,57,245,249,17,57,58,4,18,57,111,14,18,57,148,24,18,57,170,34,18,57,176,44,18,57,166,54,18,57,140,64,18,57,98,74,18,57,41,84,18,57,224,93,18,57,135,103,18,57,31,113,18,57,166,122,18,57,30,132,18,57,134,141,18,57,222,150,18,57,38,160,18,57,95,169,18,57,136,178,18,57,161,187,18,57,170,196,18,57,163,205,18,57,140,214,18,57,102,223,18,
57,48,232,18,57,234,240,18,57,148,249,18,57,46,2,19,57,185,10,19,57,52,19,19,57,158,27,19,57,249,35,19,57,68,44,19,57,128,52,19,57,171,60,19,57,199,68,19,57,211,76,19,57,206,84,19,57,186,92,19,57,151,100,19,57,99,108,19,57,31,116,19,57,204,123,19,57,105,131,19,57,245,138,19,57,114,146,19,57,224,153,19,57,61,161,19,57,138,168,19,57,200,175,19,57,245,182,19,57,19,190,19,57,33,197,19,57,31,204,19,57,13,211,19,57,235,217,19,57,185,224,19,57,119,231,19,57,38,238,19,57,197,244,19,57,83,251,19,57,210,1,
20,57,65,8,20,57,160,14,20,57,239,20,20,57,46,27,20,57,94,33,20,57,125,39,20,57,140,45,20,57,140,51,20,57,124,57,20,57,91,63,20,57,43,69,20,57,235,74,20,57,155,80,20,57,59,86,20,57,204,91,20,57,76,97,20,57,188,102,20,57,29,108,20,57,109,113,20,57,174,118,20,57,222,123,20,57,255,128,20,57,16,134,20,57,17,139,20,57,2,144,20,57,227,148,20,57,180,153,20,57,117,158,20,57,38,163,20,57,200,167,20,57,89,172,20,57,219,176,20,57,76,181,20,57,174,185,20,57,255,189,20,57,65,194,20,57,115,198,20,57,149,202,20,
57,167,206,20,57,169,210,20,57,155,214,20,57,125,218,20,57,79,222,20,57,18,226,20,57,196,229,20,57,102,233,20,57,249,236,20,57,123,240,20,57,238,243,20,57,81,247,20,57,163,250,20,57,230,253,20,57,25,1,21,57,60,4,21,57,79,7,21,57,82,10,21,57,69,13,21,57,40,16,21,57,251,18,21,57,191,21,21,57,114,24,21,57,21,27,21,57,169,29,21,57,44,32,21,57,160,34,21,57,4,37,21,57,87,39,21,57,155,41,21,57,207,43,21,57,243,45,21,57,7,48,21,57,11,50,21,57,255,51,21,57,227,53,21,57,183,55,21,57,124,57,21,57,48,59,21,57,
213,60,21,57,105,62,21,57,238,63,21,57,98,65,21,57,199,66,21,57,28,68,21,57,97,69,21,57,150,70,21,57,187,71,21,57,208,72,21,57,213,73,21,57,202,74,21,57,176,75,21,57,133,76,21,57,74,77,21,57,0,78,21,57,166,78,21,57,59,79,21,57,193,79,21,57,55,80,21,57,157,80,21,57,243,80,21,57,57,81,21,57,111,81,21,57,150,81,21,57,172,81,21,57,179,81,21,57,169,81,21,57,144,81,21,57,103,81,21,57,46,81,21,57,229,80,21,57,140,80,21,57,35,80,21,57,170,79,21,57,34,79,21,57,137,78,21,57,225,77,21,57,41,77,21,57,96,76,21,
57,136,75,21,57,161,74,21,57,169,73,21,57,161,72,21,57,137,71,21,57,98,70,21,57,43,69,21,57,227,67,21,57,140,66,21,57,37,65,21,57,175,63,21,57,40,62,21,57,145,60,21,57,235,58,21,57,53,57,21,57,110,55,21,57,152,53,21,57,178,51,21,57,189,49,21,57,183,47,21,57,162,45,21,57,124,43,21,57,71,41,21,57,2,39,21,57,174,36,21,57,73,34,21,57,212,31,21,57,80,29,21,57,188,26,21,57,24,24,21,57,100,21,21,57,161,18,21,57,205,15,21,57,234,12,21,57,247,9,21,57,244,6,21,57,225,3,21,57,191,0,21,57,140,253,20,57,74,250,
20,57,248,246,20,57,150,243,20,57,37,240,20,57,163,236,20,57,18,233,20,57,113,229,20,57,193,225,20,57,0,222,20,57,48,218,20,57,80,214,20,57,96,210,20,57,96,206,20,57,81,202,20,57,50,198,20,57,3,194,20,57,196,189,20,57,118,185,20,57,24,181,20,57,170,176,20,57,44,172,20,57,159,167,20,57,1,163,20,57,84,158,20,57,152,153,20,57,203,148,20,57,239,143,20,57,4,139,20,57,8,134,20,57,253,128,20,57,226,123,20,57,183,118,20,57,125,113,20,57,50,108,20,57,217,102,20,57,111,97,20,57,246,91,20,57,109,86,20,57,212,
80,20,57,44,75,20,57,116,69,20,57,173,63,20,57,213,57,20,57,238,51,20,57,248,45,20,57,241,39,20,57,219,33,20,57,182,27,20,57,128,21,20,57,59,15,20,57,231,8,20,57,131,2,20,57,15,252,19,57,139,245,19,57,248,238,19,57,86,232,19,57,163,225,19,57,225,218,19,57,16,212,19,57,46,205,19,57,62,198,19,57,61,191,19,57,45,184,19,57,14,177,19,57,223,169,19,57,160,162,19,57,81,155,19,57,244,147,19,57,134,140,19,57,9,133,19,57,124,125,19,57,224,117,19,57,53,110,19,57,121,102,19,57,175,94,19,57,212,86,19,57,234,78,
19,57,241,70,19,57,232,62,19,57,208,54,19,57,168,46,19,57,112,38,19,57,41,30,19,57,211,21,19,57,109,13,19,57,247,4,19,57,114,252,18,57,222,243,18,57,58,235,18,57,134,226,18,57,196,217,18,57,241,208,18,57,15,200,18,57,30,191,18,57,30,182,18,57,13,173,18,57,238,163,18,57,191,154,18,57,128,145,18,57,50,136,18,57,213,126,18,57,104,117,18,57,236,107,18,57,97,98,18,57,198,88,18,57,28,79,18,57,98,69,18,57,153,59,18,57,192,49,18,57,217,39,18,57,225,29,18,57,219,19,18,57,197,9,18,57,160,255,17,57,107,245,
17,57,39,235,17,57,212,224,17,57,113,214,17,57,255,203,17,57,126,193,17,57,238,182,17,57,78,172,17,57,159,161,17,57,224,150,17,57,18,140,17,57,53,129,17,57,73,118,17,57,77,107,17,57,67,96,17,57,40,85,17,57,255,73,17,57,198,62,17,57,127,51,17,57,40,40,17,57,193,28,17,57,76,17,17,57,199,5,17,57,51,250,16,57,144,238,16,57,221,226,16,57,28,215,16,57,75,203,16,57,107,191,16,57,124,179,16,57,126,167,16,57,112,155,16,57,84,143,16,57,40,131,16,57,237,118,16,57,163,106,16,57,74,94,16,57,225,81,16,57,106,69,
16,57,227,56,16,57,78,44,16,57,169,31,16,57,245,18,16,57,50,6,16,57,96,249,15,57,127,236,15,57,143,223,15,57,144,210,15,57,129,197,15,57,100,184,15,57,56,171,15,57,252,157,15,57,178,144,15,57,88,131,15,57,240,117,15,57,120,104,15,57,242,90,15,57,93,77,15,57,184,63,15,57,5,50,15,57,66,36,15,57,113,22,15,57,144,8,15,57,161,250,14,57,163,236,14,57,150,222,14,57,122,208,14,57,79,194,14,57,21,180,14,57,204,165,14,57,116,151,14,57,13,137,14,57,152,122,14,57,19,108,14,57,128,93,14,57,222,78,14,57,45,64,
14,57,109,49,14,57,158,34,14,57,193,19,14,57,212,4,14,57,217,245,13,57,207,230,13,57,182,215,13,57,143,200,13,57,88,185,13,57,19,170,13,57,191,154,13,57,92,139,13,57,235,123,13,57,106,108,13,57,219,92,13,57,62,77,13,57,145,61,13,57,214,45,13,57,12,30,13,57,51,14,13,57,76,254,12,57,86,238,12,57,81,222,12,57,62,206,12,57,27,190,12,57,235,173,12,57,171,157,12,57,93,141,12,57,0,125,12,57,149,108,12,57,27,92,12,57,147,75,12,57,251,58,12,57,86,42,12,57,161,25,12,57,222,8,12,57,13,248,11,57,45,231,11,57,
62,214,11,57,65,197,11,57,53,180,11,57,27,163,11,57,242,145,11,57,187,128,11,57,117,111,11,57,33,94,11,57,190,76,11,57,77,59,11,57,205,41,11,57,63,24,11,57,162,6,11,57,247,244,10,57,61,227,10,57,117,209,10,57,159,191,10,57,186,173,10,57,198,155,10,57,197,137,10,57,181,119,10,57,150,101,10,57,106,83,10,57,46,65,10,57,229,46,10,57,141,28,10,57,39,10,10,57,178,247,9,57,47,229,9,57,158,210,9,57,255,191,9,57,81,173,9,57,149,154,9,57,203,135,9,57,242,116,9,57,11,98,9,57,22,79,9,57,19,60,9,57,1,41,9,57,
225,21,9,57,179,2,9,57,119,239,8,57,45,220,8,57,212,200,8,57,110,181,8,57,249,161,8,57,118,142,8,57,228,122,8,57,69,103,8,57,152,83,8,57,220,63,8,57,18,44,8,57,58,24,8,57,85,4,8,57,97,240,7,57,94,220,7,57,78,200,7,57,48,180,7,57,4,160,7,57,202,139,7,57,129,119,7,57,43,99,7,57,199,78,7,57,85,58,7,57,212,37,7,57,70,17,7,57,170,252,6,57,0,232,6,57,71,211,6,57,129,190,6,57,173,169,6,57,203,148,6,57,220,127,6,57,222,106,6,57,210,85,6,57,185,64,6,57,145,43,6,57,92,22,6,57,25,1,6,57,200,235,5,57,105,214,
5,57,253,192,5,57,130,171,5,57,250,149,5,57,100,128,5,57,193,106,5,57,15,85,5,57,80,63,5,57,131,41,5,57,168,19,5,57,191,253,4,57,201,231,4,57,197,209,4,57,180,187,4,57,148,165,4,57,103,143,4,57,45,121,4,57,228,98,4,57,143,76,4,57,43,54,4,57,186,31,4,57,59,9,4,57,174,242,3,57,20,220,3,57,109,197,3,57,184,174,3,57,245,151,3,57,37,129,3,57,71,106,3,57,91,83,3,57,98,60,3,57,92,37,3,57,72,14,3,57,39,247,2,57,248,223,2,57,188,200,2,57,114,177,2,57,27,154,2,57,182,130,2,57,68,107,2,57,196,83,2,57,55,60,
2,57,157,36,2,57,245,12,2,57,64,245,1,57,126,221,1,57,174,197,1,57,209,173,1,57,231,149,1,57,239,125,1,57,234,101,1,57,216,77,1,57,184,53,1,57,139,29,1,57,81,5,1,57,9,237,0,57,181,212,0,57,83,188,0,57,228,163,0,57,104,139,0,57,222,114,0,57,72,90,0,57,164,65,0,57,243,40,0,57,53,16,0,57,211,238,255,56,34,189,255,56,87,139,255,56,114,89,255,56,114,39,255,56,89,245,254,56,37,195,254,56,216,144,254,56,112,94,254,56,238,43,254,56,82,249,253,56,156,198,253,56,204,147,253,56,226,96,253,56,222,45,253,56,192,
250,252,56,136,199,252,56,55,148,252,56,203,96,252,56,70,45,252,56,167,249,251,56,238,197,251,56,27,146,251,56,47,94,251,56,41,42,251,56,9,246,250,56,208,193,250,56,125,141,250,56,16,89,250,56,138,36,250,56,234,239,249,56,48,187,249,56,93,134,249,56,113,81,249,56,107,28,249,56,75,231,248,56,19,178,248,56,192,124,248,56,85,71,248,56,208,17,248,56,50,220,247,56,122,166,247,56,169,112,247,56,191,58,247,56,188,4,247,56,159,206,246,56,105,152,246,56,27,98,246,56,178,43,246,56,49,245,245,56,151,190,245,
56,228,135,245,56,24,81,245,56,50,26,245,56,52,227,244,56,29,172,244,56,236,116,244,56,163,61,244,56,65,6,244,56,198,206,243,56,51,151,243,56,134,95,243,56,193,39,243,56,227,239,242,56,236,183,242,56,220,127,242,56,180,71,242,56,115,15,242,56,26,215,241,56,168,158,241,56,29,102,241,56,122,45,241,56,190,244,240,56,234,187,240,56,253,130,240,56,248,73,240,56,218,16,240,56,164,215,239,56,86,158,239,56,239,100,239,56,112,43,239,56,216,241,238,56,41,184,238,56,97,126,238,56,129,68,238,56,136,10,238,56,
120,208,237,56,79,150,237,56,14,92,237,56,182,33,237,56,69,231,236,56,188,172,236,56,27,114,236,56,98,55,236,56,145,252,235,56,168,193,235,56,167,134,235,56,142,75,235,56,94,16,235,56,22,213,234,56,181,153,234,56,62,94,234,56,174,34,234,56,6,231,233,56,71,171,233,56,113,111,233,56,130,51,233,56,124,247,232,56,95,187,232,56,42,127,232,56,221,66,232,56,121,6,232,56,253,201,231,56,106,141,231,56,191,80,231,56,253,19,231,56,36,215,230,56,51,154,230,56,43,93,230,56,12,32,230,56,214,226,229,56,136,165,
229,56,35,104,229,56,167,42,229,56,19,237,228,56,105,175,228,56,167,113,228,56,207,51,228,56,223,245,227,56,216,183,227,56,187,121,227,56,134,59,227,56,59,253,226,56,216,190,226,56,95,128,226,56,207,65,226,56,40,3,226,56,106,196,225,56,149,133,225,56,170,70,225,56,168,7,225,56,143,200,224,56,96,137,224,56,26,74,224,56,190,10,224,56,75,203,223,56,193,139,223,56,33,76,223,56,106,12,223,56,157,204,222,56,185,140,222,56,191,76,222,56,175,12,222,56,137,204,221,56,76,140,221,56,248,75,221,56,143,11,221,
56,15,203,220,56,121,138,220,56,205,73,220,56,11,9,220,56,51,200,219,56,68,135,219,56,64,70,219,56,37,5,219,56,245,195,218,56,174,130,218,56,82,65,218,56,223,255,217,56,87,190,217,56,185,124,217,56,5,59,217,56,60,249,216,56,92,183,216,56,103,117,216,56,92,51,216,56,59,241,215,56,5,175,215,56,185,108,215,56,88,42,215,56,225,231,214,56,84,165,214,56,178,98,214,56,251,31,214,56,46,221,213,56,76,154,213,56,84,87,213,56,71,20,213,56,36,209,212,56,237,141,212,56,160,74,212,56,62,7,212,56,198,195,211,56,
58,128,211,56,152,60,211,56,225,248,210,56,21,181,210,56,52,113,210,56,62,45,210,56,51,233,209,56,19,165,209,56,222,96,209,56,148,28,209,56,54,216,208,56,194,147,208,56,58,79,208,56,156,10,208,56,235,197,207,56,36,129,207,56,73,60,207,56,89,247,206,56,84,178,206,56,59,109,206,56,13,40,206,56,203,226,205,56,116,157,205,56,8,88,205,56,137,18,205,56,244,204,204,56,76,135,204,56,143,65,204,56,189,251,203,56,216,181,203,56,222,111,203,56,208,41,203,56,174,227,202,56,119,157,202,56,44,87,202,56,206,16,
202,56,91,202,201,56,212,131,201,56,57,61,201,56,138,246,200,56,199,175,200,56,241,104,200,56,6,34,200,56,7,219,199,56,245,147,199,56,207,76,199,56,149,5,199,56,71,190,198,56,230,118,198,56,113,47,198,56,232,231,197,56,76,160,197,56,156,88,197,56,216,16,197,56,1,201,196,56,23,129,196,56,25,57,196,56,7,241,195,56,227,168,195,56,170,96,195,56,95,24,195,56,0,208,194,56,142,135,194,56,9,63,194,56,112,246,193,56,197,173,193,56,6,101,193,56,52,28,193,56,79,211,192,56,87,138,192,56,76,65,192,56,46,248,191,
56,253,174,191,56,185,101,191,56,98,28,191,56,249,210,190,56,124,137,190,56,237,63,190,56,75,246,189,56,150,172,189,56,207,98,189,56,245,24,189,56,8,207,188,56,8,133,188,56,247,58,188,56,210,240,187,56,155,166,187,56,82,92,187,56,246,17,187,56,136,199,186,56,7,125,186,56,116,50,186,56,207,231,185,56,23,157,185,56,78,82,185,56,114,7,185,56,132,188,184,56,131,113,184,56,113,38,184,56,76,219,183,56,22,144,183,56,205,68,183,56,115,249,182,56,6,174,182,56,136,98,182,56,248,22,182,56,86,203,181,56,162,
127,181,56,220,51,181,56,4,232,180,56,27,156,180,56,32,80,180,56,20,4,180,56,246,183,179,56,198,107,179,56,133,31,179,56,50,211,178,56,206,134,178,56,88,58,178,56,209,237,177,56,56,161,177,56,143,84,177,56,211,7,177,56,7,187,176,56,41,110,176,56,58,33,176,56,58,212,175,56,41,135,175,56,6,58,175,56,211,236,174,56,142,159,174,56,57,82,174,56,210,4,174,56,91,183,173,56,211,105,173,56,57,28,173,56,143,206,172,56,212,128,172,56,8,51,172,56,44,229,171,56,63,151,171,56,65,73,171,56,50,251,170,56,19,173,
170,56,227,94,170,56,163,16,170,56,82,194,169,56,241,115,169,56,128,37,169,56,253,214,168,56,107,136,168,56,200,57,168,56,21,235,167,56,82,156,167,56,126,77,167,56,154,254,166,56,166,175,166,56,162,96,166,56,142,17,166,56,105,194,165,56,53,115,165,56,241,35,165,56,156,212,164,56,56,133,164,56,196,53,164,56,64,230,163,56,172,150,163,56,8,71,163,56,85,247,162,56,146,167,162,56,191,87,162,56,220,7,162,56,234,183,161,56,233,103,161,56,215,23,161,56,183,199,160,56,134,119,160,56,71,39,160,56,248,214,159,
56,153,134,159,56,43,54,159,56,174,229,158,56,34,149,158,56,134,68,158,56,219,243,157,56,33,163,157,56,88,82,157,56,128,1,157,56,152,176,156,56,162,95,156,56,157,14,156,56,136,189,155,56,101,108,155,56,51,27,155,56,242,201,154,56,162,120,154,56,67,39,154,56,214,213,153,56,90,132,153,56,207,50,153,56,54,225,152,56,142,143,152,56,215,61,152,56,18,236,151,56,62,154,151,56,92,72,151,56,108,246,150,56,109,164,150,56,95,82,150,56,68,0,150,56,26,174,149,56,225,91,149,56,155,9,149,56,70,183,148,56,228,100,
148,56,115,18,148,56,244,191,147,56,103,109,147,56,204,26,147,56,35,200,146,56,108,117,146,56,167,34,146,56,212,207,145,56,244,124,145,56,5,42,145,56,9,215,144,56,255,131,144,56,232,48,144,56,194,221,143,56,144,138,143,56,79,55,143,56,1,228,142,56,166,144,142,56,61,61,142,56,199,233,141,56,67,150,141,56,178,66,141,56,19,239,140,56,103,155,140,56,174,71,140,56,232,243,139,56,21,160,139,56,52,76,139,56,70,248,138,56,75,164,138,56,68,80,138,56,47,252,137,56,13,168,137,56,222,83,137,56,162,255,136,56,
90,171,136,56,4,87,136,56,162,2,136,56,51,174,135,56,184,89,135,56,47,5,135,56,154,176,134,56,249,91,134,56,75,7,134,56,144,178,133,56,201,93,133,56,245,8,133,56,21,180,132,56,40,95,132,56,47,10,132,56,42,181,131,56,25,96,131,56,251,10,131,56,209,181,130,56,155,96,130,56,89,11,130,56,10,182,129,56,176,96,129,56,74,11,129,56,215,181,128,56,89,96,128,56,206,10,128,56,112,106,127,56,44,191,126,56,208,19,126,56,93,104,125,56,210,188,124,56,48,17,124,56,119,101,123,56,166,185,122,56,190,13,122,56,191,
97,121,56,169,181,120,56,124,9,120,56,56,93,119,56,221,176,118,56,107,4,118,56,227,87,117,56,69,171,116,56,143,254,115,56,196,81,115,56,225,164,114,56,233,247,113,56,218,74,113,56,182,157,112,56,123,240,111,56,42,67,111,56,195,149,110,56,70,232,109,56,180,58,109,56,12,141,108,56,78,223,107,56,123,49,107,56,146,131,106,56,148,213,105,56,128,39,105,56,87,121,104,56,25,203,103,56,198,28,103,56,94,110,102,56,225,191,101,56,79,17,101,56,168,98,100,56,236,179,99,56,28,5,99,56,55,86,98,56,62,167,97,56,48,
248,96,56,14,73,96,56,215,153,95,56,140,234,94,56,46,59,94,56,187,139,93,56,52,220,92,56,153,44,92,56,234,124,91,56,40,205,90,56,81,29,90,56,103,109,89,56,106,189,88,56,89,13,88,56,53,93,87,56,253,172,86,56,179,252,85,56,85,76,85,56,227,155,84,56,95,235,83,56,200,58,83,56,30,138,82,56,98,217,81,56,146,40,81,56,176,119,80,56,187,198,79,56,180,21,79,56,154,100,78,56,110,179,77,56,48,2,77,56,224,80,76,56,125,159,75,56,8,238,74,56,130,60,74,56,233,138,73,56,63,217,72,56,131,39,72,56,181,117,71,56,214,
195,70,56,229,17,70,56,226,95,69,56,207,173,68,56,170,251,67,56,116,73,67,56,44,151,66,56,212,228,65,56,106,50,65,56,240,127,64,56,101,205,63,56,201,26,63,56,28,104,62,56,95,181,61,56,145,2,61,56,179,79,60,56,196,156,59,56,197,233,58,56,182,54,58,56,151,131,57,56,103,208,56,56,40,29,56,56,217,105,55,56,121,182,54,56,10,3,54,56,140,79,53,56,253,155,52,56,95,232,51,56,178,52,51,56,245,128,50,56,41,205,49,56,78,25,49,56,99,101,48,56,106,177,47,56,97,253,46,56,73,73,46,56,35,149,45,56,238,224,44,56,170,
44,44,56,87,120,43,56,246,195,42,56,134,15,42,56,8,91,41,56,124,166,40,56,225,241,39,56,56,61,39,56,130,136,38,56,189,211,37,56,234,30,37,56,9,106,36,56,26,181,35,56,30,0,35,56,20,75,34,56,252,149,33,56,215,224,32,56,165,43,32,56,101,118,31,56,24,193,30,56,190,11,30,56,87,86,29,56,226,160,28,56,97,235,27,56,211,53,27,56,56,128,26,56,144,202,25,56,219,20,25,56,26,95,24,56,77,169,23,56,115,243,22,56,141,61,22,56,154,135,21,56,156,209,20,56,145,27,20,56,122,101,19,56,87,175,18,56,40,249,17,56,238,66,
17,56,168,140,16,56,86,214,15,56,248,31,15,56,143,105,14,56,27,179,13,56,155,252,12,56,16,70,12,56,122,143,11,56,216,216,10,56,44,34,10,56,117,107,9,56,178,180,8,56,229,253,7,56,14,71,7,56,43,144,6,56,62,217,5,56,71,34,5,56,69,107,4,56,57,180,3,56,34,253,2,56,1,70,2,56,214,142,1,56,162,215,0,56,99,32,0,56,52,210,254,55,143,99,253,55,214,244,251,55,11,134,250,55,44,23,249,55,58,168,247,55,53,57,246,55,29,202,244,55,243,90,243,55,183,235,241,55,104,124,240,55,7,13,239,55,149,157,237,55,16,46,236,55,
122,190,234,55,211,78,233,55,26,223,231,55,80,111,230,55,117,255,228,55,137,143,227,55,141,31,226,55,128,175,224,55,99,63,223,55,53,207,221,55,247,94,220,55,170,238,218,55,77,126,217,55,224,13,216,55,99,157,214,55,216,44,213,55,61,188,211,55,147,75,210,55,219,218,208,55,19,106,207,55,62,249,205,55,89,136,204,55,103,23,203,55,103,166,201,55,88,53,200,55,60,196,198,55,19,83,197,55,220,225,195,55,151,112,194,55,70,255,192,55,231,141,191,55,124,28,190,55,4,171,188,55,128,57,187,55,239,199,185,55,82,86,
184,55,169,228,182,55,244,114,181,55,52,1,180,55,103,143,178,55,144,29,177,55,173,171,175,55,191,57,174,55,198,199,172,55,194,85,171,55,180,227,169,55,155,113,168,55,120,255,166,55,74,141,165,55,19,27,164,55,209,168,162,55,134,54,161,55,50,196,159,55,212,81,158,55,108,223,156,55,252,108,155,55,131,250,153,55,0,136,152,55,118,21,151,55,226,162,149,55,71,48,148,55,163,189,146,55,247,74,145,55,68,216,143,55,137,101,142,55,198,242,140,55,251,127,139,55,42,13,138,55,81,154,136,55,114,39,135,55,140,180,
133,55,159,65,132,55,171,206,130,55,178,91,129,55,100,209,127,55,88,235,124,55,65,5,122,55,30,31,119,55,240,56,116,55,184,82,113,55,117,108,110,55,40,134,107,55,209,159,104,55,112,185,101,55,6,211,98,55,148,236,95,55,24,6,93,55,149,31,90,55,9,57,87,55,118,82,84,55,220,107,81,55,58,133,78,55,146,158,75,55,227,183,72,55,46,209,69,55,116,234,66,55,180,3,64,55,238,28,61,55,36,54,58,55,85,79,55,55,130,104,52,55,171,129,49,55,209,154,46,55,243,179,43,55,18,205,40,55,46,230,37,55,72,255,34,55,96,24,32,55,
118,49,29,55,139,74,26,55,158,99,23,55,177,124,20,55,195,149,17,55,213,174,14,55,230,199,11,55,249,224,8,55,12,250,5,55,32,19,3,55,53,44,0,55,151,138,250,54,201,188,244,54,255,238,238,54,58,33,233,54,123,83,227,54,194,133,221,54,16,184,215,54,102,234,209,54,196,28,204,54,43,79,198,54,155,129,192,54,21,180,186,54,154,230,180,54,42,25,175,54,198,75,169,54,110,126,163,54,36,177,157,54,231,227,151,54,185,22,146,54,153,73,140,54,138,124,134,54,138,175,128,54,55,197,117,54,124,43,106,54,230,145,94,54,116,
248,82,54,42,95,71,54,7,198,59,54,13,45,48,54,62,148,36,54,154,251,24,54,35,99,13,54,218,202,1,54,128,101,236,53,173,53,213,53,61,6,190,53,51,215,166,53,146,168,143,53,181,244,112,53,34,153,66,53,110,62,20,53,60,201,203,52,220,46,94,52,231,59,19,51,29,141,20,180,170,242,166,180,102,206,1,181,117,34,48,181,126,117,94,181,190,99,134,181,52,140,157,181,31,180,180,181,126,219,203,181,77,2,227,181,137,40,250,181,25,167,8,182,161,57,20,182,221,203,31,182,203,93,43,182,106,239,54,182,185,128,66,182,181,
17,78,182,95,162,89,182,181,50,101,182,182,194,112,182,96,82,124,182,217,240,131,182,86,184,137,182,165,127,143,182,199,70,149,182,187,13,155,182,127,212,160,182,20,155,166,182,121,97,172,182,173,39,178,182,176,237,183,182,129,179,189,182,31,121,195,182,138,62,201,182,193,3,207,182,196,200,212,182,146,141,218,182,42,82,224,182,139,22,230,182,182,218,235,182,169,158,241,182,101,98,247,182,231,37,253,182,152,116,1,183,32,86,4,183,138,55,7,183,215,24,10,183,6,250,12,183,23,219,15,183,9,188,18,183,221,
156,21,183,145,125,24,183,38,94,27,183,155,62,30,183,241,30,33,183,37,255,35,183,58,223,38,183,45,191,41,183,0,159,44,183,176,126,47,183,63,94,50,183,172,61,53,183,246,28,56,183,30,252,58,183,34,219,61,183,3,186,64,183,193,152,67,183,90,119,70,183,208,85,73,183,33,52,76,183,76,18,79,183,83,240,81,183,53,206,84,183,240,171,87,183,133,137,90,183,245,102,93,183,61,68,96,183,94,33,99,183,89,254,101,183,43,219,104,183,214,183,107,183,88,148,110,183,178,112,113,183,228,76,116,183,236,40,119,183,202,4,122,
183,127,224,124,183,11,188,127,183,182,75,129,183,81,185,130,183,214,38,132,183,70,148,133,183,161,1,135,183,229,110,136,183,20,220,137,183,44,73,139,183,45,182,140,183,25,35,142,183,237,143,143,183,171,252,144,183,82,105,146,183,226,213,147,183,91,66,149,183,188,174,150,183,5,27,152,183,55,135,153,183,81,243,154,183,83,95,156,183,61,203,157,183,15,55,159,183,200,162,160,183,105,14,162,183,240,121,163,183,95,229,164,183,181,80,166,183,242,187,167,183,21,39,169,183,31,146,170,183,15,253,171,183,230,
103,173,183,162,210,174,183,69,61,176,183,205,167,177,183,59,18,179,183,142,124,180,183,198,230,181,183,228,80,183,183,231,186,184,183,207,36,186,183,155,142,187,183,76,248,188,183,225,97,190,183,91,203,191,183,185,52,193,183,250,157,194,183,32,7,196,183,41,112,197,183,22,217,198,183,230,65,200,183,154,170,201,183,48,19,203,183,170,123,204,183,6,228,205,183,69,76,207,183,102,180,208,183,106,28,210,183,80,132,211,183,24,236,212,183,194,83,214,183,78,187,215,183,187,34,217,183,10,138,218,183,58,241,
219,183,75,88,221,183,62,191,222,183,17,38,224,183,197,140,225,183,89,243,226,183,206,89,228,183,36,192,229,183,89,38,231,183,111,140,232,183,100,242,233,183,57,88,235,183,238,189,236,183,130,35,238,183,245,136,239,183,71,238,240,183,121,83,242,183,137,184,243,183,120,29,245,183,69,130,246,183,241,230,247,183,123,75,249,183,227,175,250,183,41,20,252,183,77,120,253,183,79,220,254,183,23,32,0,184,245,209,0,184,194,131,1,184,126,53,2,184,40,231,2,184,192,152,3,184,71,74,4,184,187,251,4,184,30,173,5,
184,112,94,6,184,175,15,7,184,220,192,7,184,247,113,8,184,0,35,9,184,247,211,9,184,219,132,10,184,173,53,11,184,108,230,11,184,25,151,12,184,179,71,13,184,59,248,13,184,176,168,14,184,18,89,15,184,97,9,16,184,157,185,16,184,198,105,17,184,220,25,18,184,223,201,18,184,206,121,19,184,170,41,20,184,115,217,20,184,40,137,21,184,202,56,22,184,88,232,22,184,211,151,23,184,58,71,24,184,140,246,24,184,203,165,25,184,246,84,26,184,13,4,27,184,16,179,27,184,255,97,28,184,217,16,29,184,159,191,29,184,81,110,
30,184,238,28,31,184,118,203,31,184,234,121,32,184,74,40,33,184,148,214,33,184,202,132,34,184,235,50,35,184,247,224,35,184,237,142,36,184,207,60,37,184,156,234,37,184,83,152,38,184,245,69,39,184,129,243,39,184,248,160,40,184,90,78,41,184,166,251,41,184,220,168,42,184,253,85,43,184,7,3,44,184,252,175,44,184,219,92,45,184,164,9,46,184,86,182,46,184,243,98,47,184,121,15,48,184,233,187,48,184,67,104,49,184,134,20,50,184,179,192,50,184,201,108,51,184,200,24,52,184,177,196,52,184,131,112,53,184,62,28,54,
184,226,199,54,184,111,115,55,184,229,30,56,184,68,202,56,184,139,117,57,184,188,32,58,184,213,203,58,184,214,118,59,184,193,33,60,184,147,204,60,184,78,119,61,184,241,33,62,184,125,204,62,184,240,118,63,184,76,33,64,184,144,203,64,184,187,117,65,184,207,31,66,184,202,201,66,184,173,115,67,184,120,29,68,184,43,199,68,184,197,112,69,184,70,26,70,184,175,195,70,184,255,108,71,184,54,22,72,184,85,191,72,184,91,104,73,184,72,17,74,184,28,186,74,184,214,98,75,184,120,11,76,184,0,180,76,184,111,92,77,184,
197,4,78,184,2,173,78,184,37,85,79,184,46,253,79,184,30,165,80,184,244,76,81,184,176,244,81,184,82,156,82,184,219,67,83,184,74,235,83,184,158,146,84,184,217,57,85,184,249,224,85,184,255,135,86,184,235,46,87,184,188,213,87,184,115,124,88,184,16,35,89,184,146,201,89,184,249,111,90,184,70,22,91,184,120,188,91,184,143,98,92,184,139,8,93,184,108,174,93,184,50,84,94,184,221,249,94,184,109,159,95,184,226,68,96,184,59,234,96,184,121,143,97,184,156,52,98,184,163,217,98,184,142,126,99,184,94,35,100,184,18,
200,100,184,171,108,101,184,39,17,102,184,136,181,102,184,205,89,103,184,245,253,103,184,2,162,104,184,242,69,105,184,199,233,105,184,127,141,106,184,26,49,107,184,153,212,107,184,252,119,108,184,66,27,109,184,107,190,109,184,120,97,110,184,104,4,111,184,59,167,111,184,242,73,112,184,139,236,112,184,7,143,113,184,103,49,114,184,169,211,114,184,206,117,115,184,213,23,116,184,191,185,116,184,140,91,117,184,60,253,117,184,206,158,118,184,66,64,119,184,152,225,119,184,209,130,120,184,236,35,121,184,234,
196,121,184,201,101,122,184,138,6,123,184,45,167,123,184,179,71,124,184,26,232,124,184,98,136,125,184,141,40,126,184,153,200,126,184,134,104,127,184,43,4,128,184,3,84,128,184,204,163,128,184,133,243,128,184,48,67,129,184,202,146,129,184,86,226,129,184,210,49,130,184,62,129,130,184,155,208,130,184,232,31,131,184,38,111,131,184,84,190,131,184,114,13,132,184,129,92,132,184,128,171,132,184,111,250,132,184,78,73,133,184,30,152,133,184,222,230,133,184,141,53,134,184,45,132,134,184,189,210,134,184,61,33,
135,184,173,111,135,184,13,190,135,184,93,12,136,184,157,90,136,184,204,168,136,184,236,246,136,184,251,68,137,184,250,146,137,184,233,224,137,184,199,46,138,184,149,124,138,184,83,202,138,184,0,24,139,184,157,101,139,184,42,179,139,184,166,0,140,184,17,78,140,184,108,155,140,184,182,232,140,184,240,53,141,184,25,131,141,184,50,208,141,184,58,29,142,184,49,106,142,184,23,183,142,184,236,3,143,184,177,80,143,184,101,157,143,184,8,234,143,184,154,54,144,184,27,131,144,184,139,207,144,184,234,27,145,
184,56,104,145,184,118,180,145,184,161,0,146,184,188,76,146,184,198,152,146,184,190,228,146,184,166,48,147,184,124,124,147,184,65,200,147,184,244,19,148,184,150,95,148,184,39,171,148,184,166,246,148,184,20,66,149,184,113,141,149,184,188,216,149,184,245,35,150,184,29,111,150,184,51,186,150,184,56,5,151,184,43,80,151,184,13,155,151,184,220,229,151,184,154,48,152,184,71,123,152,184,225,197,152,184,106,16,153,184,225,90,153,184,70,165,153,184,153,239,153,184,218,57,154,184,9,132,154,184,38,206,154,184,
49,24,155,184,43,98,155,184,18,172,155,184,231,245,155,184,169,63,156,184,90,137,156,184,248,210,156,184,133,28,157,184,255,101,157,184,102,175,157,184,188,248,157,184,255,65,158,184,47,139,158,184,78,212,158,184,90,29,159,184,83,102,159,184,58,175,159,184,14,248,159,184,208,64,160,184,127,137,160,184,28,210,160,184,166,26,161,184,29,99,161,184,130,171,161,184,212,243,161,184,19,60,162,184,64,132,162,184,89,204,162,184,96,20,163,184,84,92,163,184,53,164,163,184,3,236,163,184,191,51,164,184,103,123,
164,184,252,194,164,184,126,10,165,184,238,81,165,184,74,153,165,184,147,224,165,184,201,39,166,184,235,110,166,184,251,181,166,184,247,252,166,184,224,67,167,184,182,138,167,184,120,209,167,184,39,24,168,184,195,94,168,184,75,165,168,184,192,235,168,184,33,50,169,184,111,120,169,184,170,190,169,184,209,4,170,184,228,74,170,184,228,144,170,184,208,214,170,184,169,28,171,184,110,98,171,184,31,168,171,184,188,237,171,184,70,51,172,184,188,120,172,184,30,190,172,184,108,3,173,184,167,72,173,184,205,
141,173,184,224,210,173,184,223,23,174,184,201,92,174,184,160,161,174,184,99,230,174,184,17,43,175,184,172,111,175,184,50,180,175,184,165,248,175,184,3,61,176,184,77,129,176,184,131,197,176,184,164,9,177,184,177,77,177,184,170,145,177,184,143,213,177,184,95,25,178,184,27,93,178,184,195,160,178,184,86,228,178,184,213,39,179,184,63,107,179,184,149,174,179,184,214,241,179,184,2,53,180,184,26,120,180,184,30,187,180,184,13,254,180,184,231,64,181,184,172,131,181,184,93,198,181,184,249,8,182,184,128,75,
182,184,243,141,182,184,80,208,182,184,153,18,183,184,205,84,183,184,236,150,183,184,246,216,183,184,235,26,184,184,203,92,184,184,150,158,184,184,76,224,184,184,238,33,185,184,122,99,185,184,240,164,185,184,82,230,185,184,159,39,186,184,214,104,186,184,249,169,186,184,6,235,186,184,253,43,187,184,224,108,187,184,173,173,187,184,101,238,187,184,7,47,188,184,148,111,188,184,12,176,188,184,110,240,188,184,187,48,189,184,243,112,189,184,20,177,189,184,33,241,189,184,24,49,190,184,249,112,190,184,196,
176,190,184,122,240,190,184,26,48,191,184,165,111,191,184,26,175,191,184,121,238,191,184,195,45,192,184,246,108,192,184,20,172,192,184,28,235,192,184,14,42,193,184,234,104,193,184,177,167,193,184,97,230,193,184,252,36,194,184,128,99,194,184,239,161,194,184,71,224,194,184,138,30,195,184,182,92,195,184,205,154,195,184,205,216,195,184,183,22,196,184,139,84,196,184,72,146,196,184,240,207,196,184,129,13,197,184,252,74,197,184,97,136,197,184,175,197,197,184,231,2,198,184,9,64,198,184,20,125,198,184,9,186,
198,184,231,246,198,184,175,51,199,184,97,112,199,184,252,172,199,184,129,233,199,184,239,37,200,184,70,98,200,184,135,158,200,184,177,218,200,184,197,22,201,184,194,82,201,184,168,142,201,184,119,202,201,184,48,6,202,184,210,65,202,184,93,125,202,184,210,184,202,184,47,244,202,184,118,47,203,184,166,106,203,184,191,165,203,184,193,224,203,184,172,27,204,184,129,86,204,184,62,145,204,184,228,203,204,184,115,6,205,184,235,64,205,184,77,123,205,184,151,181,205,184,201,239,205,184,229,41,206,184,234,
99,206,184,215,157,206,184,173,215,206,184,108,17,207,184,20,75,207,184,164,132,207,184,29,190,207,184,127,247,207,184,202,48,208,184,253,105,208,184,25,163,208,184,29,220,208,184,10,21,209,184,223,77,209,184,157,134,209,184,68,191,209,184,211,247,209,184,74,48,210,184,170,104,210,184,242,160,210,184,35,217,210,184,60,17,211,184,62,73,211,184,40,129,211,184,250,184,211,184,180,240,211,184,87,40,212,184,226,95,212,184,85,151,212,184,176,206,212,184,244,5,213,184,31,61,213,184,51,116,213,184,47,171,
213,184,19,226,213,184,224,24,214,184,148,79,214,184,48,134,214,184,180,188,214,184,33,243,214,184,117,41,215,184,177,95,215,184,213,149,215,184,225,203,215,184,213,1,216,184,177,55,216,184,117,109,216,184,32,163,216,184,180,216,216,184,47,14,217,184,146,67,217,184,220,120,217,184,15,174,217,184,41,227,217,184,43,24,218,184,20,77,218,184,229,129,218,184,158,182,218,184,63,235,218,184,199,31,219,184,54,84,219,184,141,136,219,184,204,188,219,184,242,240,219,184,0,37,220,184,245,88,220,184,209,140,220,
184,149,192,220,184,65,244,220,184,212,39,221,184,78,91,221,184,175,142,221,184,248,193,221,184,40,245,221,184,64,40,222,184,63,91,222,184,37,142,222,184,242,192,222,184,167,243,222,184,66,38,223,184,197,88,223,184,47,139,223,184,128,189,223,184,185,239,223,184,216,33,224,184,223,83,224,184,204,133,224,184,161,183,224,184,93,233,224,184,255,26,225,184,137,76,225,184,250,125,225,184,81,175,225,184,144,224,225,184,181,17,226,184,194,66,226,184,181,115,226,184,143,164,226,184,80,213,226,184,248,5,227,
184,134,54,227,184,252,102,227,184,88,151,227,184,155,199,227,184,197,247,227,184,213,39,228,184,204,87,228,184,170,135,228,184,110,183,228,184,25,231,228,184,171,22,229,184,36,70,229,184,130,117,229,184,200,164,229,184,244,211,229,184,7,3,230,184,0,50,230,184,224,96,230,184,166,143,230,184,82,190,230,184,229,236,230,184,95,27,231,184,191,73,231,184,5,120,231,184,50,166,231,184,69,212,231,184,62,2,232,184,30,48,232,184,228,93,232,184,145,139,232,184,35,185,232,184,156,230,232,184,252,19,233,184,65,
65,233,184,109,110,233,184,127,155,233,184,119,200,233,184,85,245,233,184,25,34,234,184,196,78,234,184,84,123,234,184,203,167,234,184,40,212,234,184,107,0,235,184,147,44,235,184,162,88,235,184,151,132,235,184,114,176,235,184,51,220,235,184,218,7,236,184,103,51,236,184,218,94,236,184,51,138,236,184,113,181,236,184,150,224,236,184,160,11,237,184,145,54,237,184,103,97,237,184,35,140,237,184,196,182,237,184,76,225,237,184,185,11,238,184,12,54,238,184,69,96,238,184,100,138,238,184,104,180,238,184,82,222,
238,184,34,8,239,184,215,49,239,184,114,91,239,184,243,132,239,184,89,174,239,184,165,215,239,184,215,0,240,184,238,41,240,184,234,82,240,184,204,123,240,184,148,164,240,184,65,205,240,184,212,245,240,184,77,30,241,184,170,70,241,184,237,110,241,184,22,151,241,184,36,191,241,184,24,231,241,184,241,14,242,184,175,54,242,184,83,94,242,184,220,133,242,184,74,173,242,184,158,212,242,184,215,251,242,184,245,34,243,184,249,73,243,184,226,112,243,184,176,151,243,184,99,190,243,184,252,228,243,184,122,11,
244,184,221,49,244,184,37,88,244,184,83,126,244,184,101,164,244,184,93,202,244,184,58,240,244,184,252,21,245,184,163,59,245,184,48,97,245,184,161,134,245,184,247,171,245,184,51,209,245,184,83,246,245,184,89,27,246,184,67,64,246,184,19,101,246,184,199,137,246,184,97,174,246,184,224,210,246,184,67,247,246,184,139,27,247,184,185,63,247,184,203,99,247,184,194,135,247,184,158,171,247,184,95,207,247,184,5,243,247,184,143,22,248,184,255,57,248,184,83,93,248,184,140,128,248,184,170,163,248,184,173,198,248,
184,148,233,248,184,96,12,249,184,17,47,249,184,167,81,249,184,33,116,249,184,129,150,249,184,196,184,249,184,237,218,249,184,250,252,249,184,236,30,250,184,195,64,250,184,126,98,250,184,30,132,250,184,162,165,250,184,11,199,250,184,89,232,250,184,139,9,251,184,162,42,251,184,157,75,251,184,125,108,251,184,65,141,251,184,234,173,251,184,120,206,251,184,234,238,251,184,64,15,252,184,123,47,252,184,154,79,252,184,158,111,252,184,135,143,252,184,83,175,252,184,4,207,252,184,154,238,252,184,20,14,253,
184,114,45,253,184,181,76,253,184,220,107,253,184,232,138,253,184,216,169,253,184,172,200,253,184,100,231,253,184,1,6,254,184,130,36,254,184,232,66,254,184,49,97,254,184,95,127,254,184,114,157,254,184,104,187,254,184,67,217,254,184,2,247,254,184,165,20,255,184,45,50,255,184,152,79,255,184,232,108,255,184,28,138,255,184,52,167,255,184,49,196,255,184,17,225,255,184,214,253,255,184,63,13,0,185,134,27,0,185,190,41,0,185,233,55,0,185,5,70,0,185,20,84,0,185,21,98,0,185,7,112,0,185,236,125,0,185,195,139,
0,185,140,153,0,185,71,167,0,185,243,180,0,185,146,194,0,185,35,208,0,185,166,221,0,185,27,235,0,185,130,248,0,185,218,5,1,185,37,19,1,185,98,32,1,185,145,45,1,185,177,58,1,185,196,71,1,185,201,84,1,185,191,97,1,185,168,110,1,185,130,123,1,185,79,136,1,185,13,149,1,185,189,161,1,185,95,174,1,185,244,186,1,185,122,199,1,185,242,211,1,185,91,224,1,185,183,236,1,185,5,249,1,185,69,5,2,185,118,17,2,185,153,29,2,185,175,41,2,185,182,53,2,185,175,65,2,185,154,77,2,185,118,89,2,185,69,101,2,185,6,113,2,
185,184,124,2,185,92,136,2,185,242,147,2,185,122,159,2,185,244,170,2,185,96,182,2,185,189,193,2,185,12,205,2,185,78,216,2,185,129,227,2,185,165,238,2,185,188,249,2,185,196,4,3,185,191,15,3,185,171,26,3,185,136,37,3,185,88,48,3,185,26,59,3,185,205,69,3,185,114,80,3,185,9,91,3,185,145,101,3,185,12,112,3,185,120,122,3,185,214,132,3,185,38,143,3,185,103,153,3,185,155,163,3,185,192,173,3,185,214,183,3,185,223,193,3,185,217,203,3,185,198,213,3,185,163,223,3,185,115,233,3,185,52,243,3,185,231,252,3,185,
140,6,4,185,35,16,4,185,171,25,4,185,37,35,4,185,145,44,4,185,238,53,4,185,62,63,4,185,126,72,4,185,177,81,4,185,213,90,4,185,235,99,4,185],"i8",4,y.a+931840);
Q([243,108,4,185,237,117,4,185,216,126,4,185,181,135,4,185,131,144,4,185,68,153,4,185,246,161,4,185,153,170,4,185,47,179,4,185,182,187,4,185,46,196,4,185,153,204,4,185,245,212,4,185,67,221,4,185,130,229,4,185,179,237,4,185,214,245,4,185,234,253,4,185,240,5,5,185,232,13,5,185,210,21,5,185,173,29,5,185,121,37,5,185,56,45,5,185,232,52,5,185,138,60,5,185,29,68,5,185,162,75,5,185,25,83,5,185,129,90,5,185,219,97,5,185,38,105,5,185,100,112,5,185,147,119,5,185,179,126,5,185,197,133,5,185,201,140,5,185,190,
147,5,185,165,154,5,185,126,161,5,185,72,168,5,185,4,175,5,185,177,181,5,185,81,188,5,185,225,194,5,185,100,201,5,185,215,207,5,185,61,214,5,185,148,220,5,185,221,226,5,185,23,233,5,185,67,239,5,185,97,245,5,185,112,251,5,185,113,1,6,185,99,7,6,185,71,13,6,185,29,19,6,185,228,24,6,185,157,30,6,185,71,36,6,185,227,41,6,185,113,47,6,185,240,52,6,185,97,58,6,185,195,63,6,185,23,69,6,185,93,74,6,185,148,79,6,185,188,84,6,185,215,89,6,185,226,94,6,185,224,99,6,185,207,104,6,185,176,109,6,185,130,114,6,
185,69,119,6,185,251,123,6,185,162,128,6,185,58,133,6,185,196,137,6,185,64,142,6,185,173,146,6,185,12,151,6,185,92,155,6,185,158,159,6,185,210,163,6,185,247,167,6,185,13,172,6,185,21,176,6,185,15,180,6,185,250,183,6,185,215,187,6,185,166,191,6,185,102,195,6,185,24,199,6,185,187,202,6,185,79,206,6,185,214,209,6,185,78,213,6,185,183,216,6,185,18,220,6,185,95,223,6,185,157,226,6,185,204,229,6,185,238,232,6,185,0,236,6,185,5,239,6,185,251,241,6,185,226,244,6,185,187,247,6,185,134,250,6,185,66,253,6,185,
240,255,6,185,143,2,7,185,32,5,7,185,163,7,7,185,23,10,7,185,124,12,7,185,211,14,7,185,28,17,7,185,86,19,7,185,130,21,7,185,159,23,7,185,174,25,7,185,175,27,7,185,161,29,7,185,133,31,7,185,90,33,7,185,33,35,7,185,217,36,7,185,131,38,7,185,31,40,7,185,172,41,7,185,42,43,7,185,154,44,7,185,252,45,7,185,80,47,7,185,149,48,7,185,203,49,7,185,243,50,7,185,13,52,7,185,24,53,7,185,21,54,7,185,3,55,7,185,227,55,7,185,181,56,7,185,120,57,7,185,44,58,7,185,211,58,7,185,106,59,7,185,244,59,7,185,111,60,7,185,
219,60,7,185,58,61,7,185,137,61,7,185,203,61,7,185,254,61,7,185,34,62,7,185,56,62,7,185,64,62,7,185,57,62,7,185,36,62,7,185,1,62,7,185,207,61,7,185,142,61,7,185,64,61,7,185,227,60,7,185,119,60,7,185,253,59,7,185,117,59,7,185,222,58,7,185,57,58,7,185,134,57,7,185,196,56,7,185,243,55,7,185,21,55,7,185,40,54,7,185,44,53,7,185,34,52,7,185,10,51,7,185,228,49,7,185,175,48,7,185,107,47,7,185,26,46,7,185,186,44,7,185,75,43,7,185,206,41,7,185,67,40,7,185,170,38,7,185,2,37,7,185,75,35,7,185,135,33,7,185,180,
31,7,185,210,29,7,185,227,27,7,185,229,25,7,185,216,23,7,185,189,21,7,185,148,19,7,185,93,17,7,185,23,15,7,185,195,12,7,185,96,10,7,185,240,7,7,185,113,5,7,185,227,2,7,185,71,0,7,185,157,253,6,185,229,250,6,185,30,248,6,185,73,245,6,185,101,242,6,185,116,239,6,185,116,236,6,185,101,233,6,185,73,230,6,185,30,227,6,185,228,223,6,185,157,220,6,185,71,217,6,185,227,213,6,185,112,210,6,185,240,206,6,185,96,203,6,185,195,199,6,185,24,196,6,185,94,192,6,185,150,188,6,185,191,184,6,185,218,180,6,185,231,
176,6,185,230,172,6,185,215,168,6,185,185,164,6,185,141,160,6,185,83,156,6,185,10,152,6,185,179,147,6,185,78,143,6,185,219,138,6,185,89,134,6,185,202,129,6,185,44,125,6,185,127,120,6,185,197,115,6,185,252,110,6,185,37,106,6,185,64,101,6,185,77,96,6,185,75,91,6,185,60,86,6,185,30,81,6,185,242,75,6,185,183,70,6,185,111,65,6,185,24,60,6,185,179,54,6,185,64,49,6,185,191,43,6,185,47,38,6,185,146,32,6,185,230,26,6,185,44,21,6,185,100,15,6,185,141,9,6,185,169,3,6,185,182,253,5,185,181,247,5,185,166,241,
5,185,137,235,5,185,94,229,5,185,37,223,5,185,221,216,5,185,136,210,5,185,36,204,5,185,178,197,5,185,50,191,5,185,164,184,5,185,8,178,5,185,94,171,5,185,165,164,5,185,223,157,5,185,10,151,5,185,40,144,5,185,55,137,5,185,56,130,5,185,43,123,5,185,16,116,5,185,231,108,5,185,176,101,5,185,107,94,5,185,23,87,5,185,182,79,5,185,71,72,5,185,201,64,5,185,62,57,5,185,165,49,5,185,253,41,5,185,72,34,5,185,132,26,5,185,178,18,5,185,211,10,5,185,229,2,5,185,234,250,4,185,224,242,4,185,201,234,4,185,163,226,
4,185,111,218,4,185,46,210,4,185,222,201,4,185,129,193,4,185,21,185,4,185,156,176,4,185,21,168,4,185,127,159,4,185,220,150,4,185,43,142,4,185,108,133,4,185,158,124,4,185,195,115,4,185,218,106,4,185,228,97,4,185,223,88,4,185,204,79,4,185,171,70,4,185,125,61,4,185,64,52,4,185,246,42,4,185,158,33,4,185,56,24,4,185,196,14,4,185,66,5,4,185,178,251,3,185,21,242,3,185,105,232,3,185,176,222,3,185,233,212,3,185,20,203,3,185,49,193,3,185,65,183,3,185,66,173,3,185,54,163,3,185,28,153,3,185,244,142,3,185,190,
132,3,185,123,122,3,185,41,112,3,185,202,101,3,185,94,91,3,185,227,80,3,185,91,70,3,185,196,59,3,185,32,49,3,185,111,38,3,185,175,27,3,185,226,16,3,185,7,6,3,185,31,251,2,185,40,240,2,185,36,229,2,185,18,218,2,185,243,206,2,185,198,195,2,185,139,184,2,185,66,173,2,185,236,161,2,185,136,150,2,185,22,139,2,185,151,127,2,185,10,116,2,185,111,104,2,185,199,92,2,185,17,81,2,185,77,69,2,185,124,57,2,185,157,45,2,185,177,33,2,185,183,21,2,185,175,9,2,185,154,253,1,185,119,241,1,185,70,229,1,185,8,217,1,
185,189,204,1,185,100,192,1,185,253,179,1,185,136,167,1,185,7,155,1,185,119,142,1,185,218,129,1,185,48,117,1,185,120,104,1,185,178,91,1,185,223,78,1,185,254,65,1,185,16,53,1,185,21,40,1,185,12,27,1,185,245,13,1,185,209,0,1,185,160,243,0,185,97,230,0,185,20,217,0,185,186,203,0,185,83,190,0,185,222,176,0,185,92,163,0,185,204,149,0,185,47,136,0,185,133,122,0,185,205,108,0,185,8,95,0,185,53,81,0,185,85,67,0,185,104,53,0,185,109,39,0,185,101,25,0,185,80,11,0,185,90,250,255,184,249,221,255,184,126,193,
255,184,233,164,255,184,56,136,255,184,110,107,255,184,136,78,255,184,136,49,255,184,109,20,255,184,56,247,254,184,232,217,254,184,126,188,254,184,249,158,254,184,90,129,254,184,160,99,254,184,203,69,254,184,221,39,254,184,211,9,254,184,176,235,253,184,113,205,253,184,25,175,253,184,166,144,253,184,25,114,253,184,113,83,253,184,175,52,253,184,211,21,253,184,220,246,252,184,203,215,252,184,160,184,252,184,90,153,252,184,250,121,252,184,128,90,252,184,236,58,252,184,61,27,252,184,117,251,251,184,146,
219,251,184,149,187,251,184,125,155,251,184,76,123,251,184,1,91,251,184,155,58,251,184,27,26,251,184,130,249,250,184,206,216,250,184,0,184,250,184,24,151,250,184,22,118,250,184,250,84,250,184,196,51,250,184,117,18,250,184,11,241,249,184,135,207,249,184,234,173,249,184,50,140,249,184,97,106,249,184,117,72,249,184,112,38,249,184,81,4,249,184,24,226,248,184,198,191,248,184,90,157,248,184,211,122,248,184,52,88,248,184,122,53,248,184,167,18,248,184,186,239,247,184,179,204,247,184,146,169,247,184,88,134,
247,184,5,99,247,184,151,63,247,184,16,28,247,184,112,248,246,184,182,212,246,184,226,176,246,184,245,140,246,184,238,104,246,184,206,68,246,184,148,32,246,184,65,252,245,184,213,215,245,184,79,179,245,184,175,142,245,184,246,105,245,184,36,69,245,184,57,32,245,184,52,251,244,184,22,214,244,184,222,176,244,184,141,139,244,184,35,102,244,184,160,64,244,184,3,27,244,184,77,245,243,184,126,207,243,184,150,169,243,184,148,131,243,184,122,93,243,184,70,55,243,184,249,16,243,184,147,234,242,184,20,196,
242,184,124,157,242,184,203,118,242,184,1,80,242,184,30,41,242,184,34,2,242,184,13,219,241,184,223,179,241,184,152,140,241,184,56,101,241,184,191,61,241,184,45,22,241,184,131,238,240,184,192,198,240,184,227,158,240,184,238,118,240,184,225,78,240,184,186,38,240,184,123,254,239,184,35,214,239,184,178,173,239,184,40,133,239,184,134,92,239,184,204,51,239,184,248,10,239,184,12,226,238,184,7,185,238,184,234,143,238,184,181,102,238,184,102,61,238,184,255,19,238,184,128,234,237,184,232,192,237,184,56,151,
237,184,111,109,237,184,142,67,237,184,149,25,237,184,131,239,236,184,88,197,236,184,22,155,236,184,187,112,236,184,72,70,236,184,188,27,236,184,24,241,235,184,92,198,235,184,136,155,235,184,155,112,235,184,151,69,235,184,122,26,235,184,69,239,234,184,247,195,234,184,146,152,234,184,21,109,234,184,127,65,234,184,210,21,234,184,12,234,233,184,47,190,233,184,57,146,233,184,44,102,233,184,7,58,233,184,201,13,233,184,116,225,232,184,7,181,232,184,130,136,232,184,229,91,232,184,48,47,232,184,100,2,232,
184,127,213,231,184,131,168,231,184,112,123,231,184,68,78,231,184,1,33,231,184,166,243,230,184,52,198,230,184,169,152,230,184,8,107,230,184,78,61,230,184,125,15,230,184,149,225,229,184,149,179,229,184,125,133,229,184,78,87,229,184,7,41,229,184,169,250,228,184,52,204,228,184,167,157,228,184,3,111,228,184,71,64,228,184,116,17,228,184,138,226,227,184,137,179,227,184,112,132,227,184,64,85,227,184,248,37,227,184,154,246,226,184,36,199,226,184,151,151,226,184,243,103,226,184,56,56,226,184,101,8,226,184,
124,216,225,184,124,168,225,184,100,120,225,184,54,72,225,184,240,23,225,184,148,231,224,184,32,183,224,184,150,134,224,184,245,85,224,184,60,37,224,184,109,244,223,184,135,195,223,184,139,146,223,184,119,97,223,184,77,48,223,184,12,255,222,184,180,205,222,184,70,156,222,184,193,106,222,184,37,57,222,184,114,7,222,184,169,213,221,184,202,163,221,184,211,113,221,184,199,63,221,184,163,13,221,184,105,219,220,184,25,169,220,184,178,118,220,184,53,68,220,184,161,17,220,184,247,222,219,184,55,172,219,
184,96,121,219,184,115,70,219,184,112,19,219,184,86,224,218,184,38,173,218,184,224,121,218,184,132,70,218,184,17,19,218,184,137,223,217,184,234,171,217,184,53,120,217,184,106,68,217,184,137,16,217,184,146,220,216,184,132,168,216,184,97,116,216,184,40,64,216,184,217,11,216,184,116,215,215,184,249,162,215,184,104,110,215,184,194,57,215,184,5,5,215,184,51,208,214,184,75,155,214,184,77,102,214,184,57,49,214,184,16,252,213,184,209,198,213,184,124,145,213,184,18,92,213,184,146,38,213,184,253,240,212,184,
81,187,212,184,145,133,212,184,187,79,212,184,207,25,212,184,206,227,211,184,183,173,211,184,139,119,211,184,74,65,211,184,243,10,211,184,135,212,210,184,5,158,210,184,111,103,210,184,195,48,210,184,1,250,209,184,43,195,209,184,63,140,209,184,62,85,209,184,40,30,209,184,253,230,208,184,189,175,208,184,103,120,208,184,253,64,208,184,125,9,208,184,233,209,207,184,63,154,207,184,129,98,207,184,173,42,207,184,197,242,206,184,200,186,206,184,182,130,206,184,143,74,206,184,84,18,206,184,3,218,205,184,158,
161,205,184,36,105,205,184,149,48,205,184,242,247,204,184,58,191,204,184,109,134,204,184,140,77,204,184,150,20,204,184,140,219,203,184,109,162,203,184,58,105,203,184,242,47,203,184,150,246,202,184,37,189,202,184,160,131,202,184,6,74,202,184,88,16,202,184,150,214,201,184,191,156,201,184,213,98,201,184,214,40,201,184,194,238,200,184,155,180,200,184,95,122,200,184,15,64,200,184,172,5,200,184,52,203,199,184,168,144,199,184,7,86,199,184,83,27,199,184,139,224,198,184,175,165,198,184,191,106,198,184,187,
47,198,184,163,244,197,184,120,185,197,184,56,126,197,184,229,66,197,184,126,7,197,184,3,204,196,184,116,144,196,184,210,84,196,184,28,25,196,184,83,221,195,184,117,161,195,184,133,101,195,184,128,41,195,184,104,237,194,184,61,177,194,184,254,116,194,184,172,56,194,184,70,252,193,184,205,191,193,184,64,131,193,184,160,70,193,184,237,9,193,184,38,205,192,184,76,144,192,184,95,83,192,184,95,22,192,184,75,217,191,184,36,156,191,184,235,94,191,184,158,33,191,184,62,228,190,184,203,166,190,184,68,105,
190,184,171,43,190,184,255,237,189,184,64,176,189,184,110,114,189,184,137,52,189,184,145,246,188,184,135,184,188,184,105,122,188,184,57,60,188,184,246,253,187,184,161,191,187,184,56,129,187,184,189,66,187,184,47,4,187,184,143,197,186,184,220,134,186,184,23,72,186,184,63,9,186,184,84,202,185,184,87,139,185,184,72,76,185,184,38,13,185,184,241,205,184,184,171,142,184,184,82,79,184,184,230,15,184,184,105,208,183,184,217,144,183,184,55,81,183,184,130,17,183,184,188,209,182,184,227,145,182,184,248,81,182,
184,252,17,182,184,237,209,181,184,204,145,181,184,153,81,181,184,84,17,181,184,253,208,180,184,148,144,180,184,25,80,180,184,141,15,180,184,238,206,179,184,62,142,179,184,124,77,179,184,168,12,179,184,195,203,178,184,204,138,178,184,195,73,178,184,168,8,178,184,124,199,177,184,62,134,177,184,239,68,177,184,142,3,177,184,28,194,176,184,152,128,176,184,3,63,176,184,92,253,175,184,164,187,175,184,219,121,175,184,0,56,175,184,21,246,174,184,23,180,174,184,9,114,174,184,233,47,174,184,184,237,173,184,
118,171,173,184,35,105,173,184,191,38,173,184,74,228,172,184,195,161,172,184,44,95,172,184,132,28,172,184,203,217,171,184,0,151,171,184,37,84,171,184,57,17,171,184,61,206,170,184,47,139,170,184,17,72,170,184,226,4,170,184,162,193,169,184,82,126,169,184,240,58,169,184,127,247,168,184,252,179,168,184,105,112,168,184,198,44,168,184,18,233,167,184,78,165,167,184,121,97,167,184,147,29,167,184,158,217,166,184,152,149,166,184,129,81,166,184,91,13,166,184,36,201,165,184,221,132,165,184,133,64,165,184,30,
252,164,184,166,183,164,184,30,115,164,184,134,46,164,184,222,233,163,184,38,165,163,184,94,96,163,184,134,27,163,184,158,214,162,184,166,145,162,184,158,76,162,184,135,7,162,184,95,194,161,184,40,125,161,184,225,55,161,184,138,242,160,184,36,173,160,184,174,103,160,184,40,34,160,184,147,220,159,184,238,150,159,184,57,81,159,184,117,11,159,184,162,197,158,184,191,127,158,184,204,57,158,184,203,243,157,184,185,173,157,184,153,103,157,184,105,33,157,184,42,219,156,184,220,148,156,184,126,78,156,184,
17,8,156,184,150,193,155,184,11,123,155,184,112,52,155,184,199,237,154,184,15,167,154,184,72,96,154,184,114,25,154,184,141,210,153,184,153,139,153,184,150,68,153,184,132,253,152,184,99,182,152,184,52,111,152,184,246,39,152,184,169,224,151,184,77,153,151,184,227,81,151,184,106,10,151,184,227,194,150,184,77,123,150,184,168,51,150,184,245,235,149,184,52,164,149,184,100,92,149,184,133,20,149,184,153,204,148,184,157,132,148,184,148,60,148,184,124,244,147,184,86,172,147,184,34,100,147,184,223,27,147,184,
143,211,146,184,48,139,146,184,195,66,146,184,72,250,145,184,191,177,145,184,40,105,145,184,131,32,145,184,208,215,144,184,16,143,144,184,65,70,144,184,100,253,143,184,122,180,143,184,130,107,143,184,124,34,143,184,104,217,142,184,71,144,142,184,24,71,142,184,219,253,141,184,145,180,141,184,57,107,141,184,212,33,141,184,97,216,140,184,224,142,140,184,83,69,140,184,183,251,139,184,15,178,139,184,89,104,139,184,150,30,139,184,197,212,138,184,231,138,138,184,252,64,138,184,4,247,137,184,255,172,137,
184,236,98,137,184,205,24,137,184,160,206,136,184,102,132,136,184,32,58,136,184,204,239,135,184,108,165,135,184,254,90,135,184,132,16,135,184,253,197,134,184,105,123,134,184,200,48,134,184,27,230,133,184,96,155,133,184,153,80,133,184,198,5,133,184,230,186,132,184,249,111,132,184,0,37,132,184,250,217,131,184,232,142,131,184,201,67,131,184,158,248,130,184,102,173,130,184,35,98,130,184,210,22,130,184,118,203,129,184,13,128,129,184,152,52,129,184,23,233,128,184,138,157,128,184,240,81,128,184,75,6,128,
184,50,117,127,184,183,221,126,184,36,70,126,184,121,174,125,184,182,22,125,184,219,126,124,184,232,230,123,184,222,78,123,184,188,182,122,184,131,30,122,184,50,134,121,184,202,237,120,184,74,85,120,184,179,188,119,184,5,36,119,184,64,139,118,184,99,242,117,184,112,89,117,184,102,192,116,184,68,39,116,184,12,142,115,184,190,244,114,184,88,91,114,184,220,193,113,184,73,40,113,184,160,142,112,184,225,244,111,184,11,91,111,184,31,193,110,184,28,39,110,184,4,141,109,184,213,242,108,184,144,88,108,184,
53,190,107,184,197,35,107,184,62,137,106,184,162,238,105,184,240,83,105,184,41,185,104,184,76,30,104,184,89,131,103,184,81,232,102,184,52,77,102,184,1,178,101,184,185,22,101,184,92,123,100,184,234,223,99,184,99,68,99,184,198,168,98,184,21,13,98,184,79,113,97,184,117,213,96,184,133,57,96,184,129,157,95,184,104,1,95,184,59,101,94,184,250,200,93,184,164,44,93,184,57,144,92,184,187,243,91,184,40,87,91,184,130,186,90,184,199,29,90,184,248,128,89,184,21,228,88,184,31,71,88,184,20,170,87,184,246,12,87,184,
197,111,86,184,128,210,85,184,39,53,85,184,187,151,84,184,59,250,83,184,169,92,83,184,2,191,82,184,73,33,82,184,125,131,81,184,158,229,80,184,171,71,80,184,166,169,79,184,142,11,79,184,99,109,78,184,38,207,77,184,214,48,77,184,115,146,76,184,254,243,75,184,118,85,75,184,220,182,74,184,48,24,74,184,114,121,73,184,161,218,72,184,191,59,72,184,202,156,71,184,195,253,70,184,171,94,70,184,128,191,69,184,68,32,69,184,246,128,68,184,151,225,67,184,38,66,67,184,164,162,66,184,16,3,66,184,106,99,65,184,180,
195,64,184,236,35,64,184,20,132,63,184,42,228,62,184,47,68,62,184,35,164,61,184,6,4,61,184,217,99,60,184,155,195,59,184,76,35,59,184,236,130,58,184,124,226,57,184,252,65,57,184,107,161,56,184,202,0,56,184,24,96,55,184,87,191,54,184,133,30,54,184,163,125,53,184,178,220,52,184,176,59,52,184,158,154,51,184,125,249,50,184,76,88,50,184,11,183,49,184,187,21,49,184,92,116,48,184,236,210,47,184,110,49,47,184,224,143,46,184,67,238,45,184,151,76,45,184,220,170,44,184,17,9,44,184,56,103,43,184,80,197,42,184,
89,35,42,184,83,129,41,184,63,223,40,184,28,61,40,184,234,154,39,184,170,248,38,184,92,86,38,184,255,179,37,184,148,17,37,184,27,111,36,184,147,204,35,184,254,41,35,184,91,135,34,184,169,228,33,184,234,65,33,184,29,159,32,184,66,252,31,184,90,89,31,184,100,182,30,184,97,19,30,184,80,112,29,184,50,205,28,184,6,42,28,184,205,134,27,184,135,227,26,184,52,64,26,184,212,156,25,184,103,249,24,184,237,85,24,184,102,178,23,184,211,14,23,184,51,107,22,184,134,199,21,184,205,35,21,184,7,128,20,184,53,220,19,
184,86,56,19,184,107,148,18,184,116,240,17,184,113,76,17,184,98,168,16,184,71,4,16,184,32,96,15,184,237,187,14,184,174,23,14,184,99,115,13,184,13,207,12,184,172,42,12,184,63,134,11,184,198,225,10,184,66,61,10,184,179,152,9,184,24,244,8,184,115,79,8,184,194,170,7,184,6,6,7,184,63,97,6,184,110,188,5,184,145,23,5,184,170,114,4,184,184,205,3,184,188,40,3,184,181,131,2,184,164,222,1,184,136,57,1,184,98,148,0,184,98,222,255,183,237,147,254,183,100,73,253,183,199,254,251,183,21,180,250,183,80,105,249,183,
119,30,248,183,139,211,246,183,139,136,245,183,120,61,244,183,82,242,242,183,24,167,241,183,204,91,240,183,110,16,239,183,252,196,237,183,121,121,236,183,227,45,235,183,59,226,233,183,129,150,232,183,181,74,231,183,215,254,229,183,232,178,228,183,231,102,227,183,213,26,226,183,178,206,224,183,126,130,223,183,57,54,222,183,227,233,220,183,125,157,219,183,6,81,218,183,127,4,217,183,231,183,215,183,64,107,214,183,137,30,213,183,193,209,211,183,235,132,210,183,5,56,209,183,15,235,207,183,10,158,206,183,
247,80,205,183,212,3,204,183,162,182,202,183,98,105,201,183,20,28,200,183,182,206,198,183,75,129,197,183,210,51,196,183,75,230,194,183,182,152,193,183,19,75,192,183,99,253,190,183,165,175,189,183,218,97,188,183,2,20,187,183,29,198,185,183,43,120,184,183,45,42,183,183,34,220,181,183,10,142,180,183,230,63,179,183,183,241,177,183,123,163,176,183,51,85,175,183,224,6,174,183,129,184,172,183,22,106,171,183,161,27,170,183,32,205,168,183,148,126,167,183,254,47,166,183,92,225,164,183,176,146,163,183,250,67,
162,183,57,245,160,183,110,166,159,183,153,87,158,183,187,8,157,183,210,185,155,183,224,106,154,183,228,27,153,183,223,204,151,183,209,125,150,183,186,46,149,183,154,223,147,183,113,144,146,183,64,65,145,183,6,242,143,183,196,162,142,183,121,83,141,183,39,4,140,183,204,180,138,183,106,101,137,183,0,22,136,183,143,198,134,183,22,119,133,183,150,39,132,183,15,216,130,183,129,136,129,183,237,56,128,183,163,210,125,183,95,51,123,183,14,148,120,183,177,244,117,183,72,85,115,183,211,181,112,183,82,22,110,
183,198,118,107,183,47,215,104,183,141,55,102,183,224,151,99,183,41,248,96,183,105,88,94,183,158,184,91,183,203,24,89,183,238,120,86,183,8,217,83,183,26,57,81,183,35,153,78,183,37,249,75,183,31,89,73,183,17,185,70,183,252,24,68,183,225,120,65,183,190,216,62,183,150,56,60,183,103,152,57,183,51,248,54,183,249,87,52,183,186,183,49,183,118,23,47,183,46,119,44,183,225,214,41,183,144,54,39,183,59,150,36,183,227,245,33,183,136,85,31,183,42,181,28,183,201,20,26,183,101,116,23,183,0,212,20,183,152,51,18,183,
48,147,15,183,198,242,12,183,90,82,10,183,239,177,7,183,130,17,5,183,22,113,2,183,84,161,255,182,124,96,250,182,166,31,245,182,210,222,239,182,0,158,234,182,49,93,229,182,102,28,224,182,159,219,218,182,221,154,213,182,33,90,208,182,106,25,203,182,185,216,197,182,16,152,192,182,110,87,187,182,212,22,182,182,67,214,176,182,187,149,171,182,61,85,166,182,201,20,161,182,96,212,155,182,3,148,150,182,177,83,145,182,108,19,140,182,53,211,134,182,11,147,129,182,222,165,120,182,196,37,110,182,201,165,99,182,
237,37,89,182,51,166,78,182,155,38,68,182,38,167,57,182,213,39,47,182,170,168,36,182,165,41,26,182,200,170,15,182,20,44,5,182,19,91,245,181,84,94,224,181,238,97,203,181,226,101,182,181,50,106,161,181,226,110,140,181,230,231,110,181,206,242,68,181,130,254,26,181,11,22,226,180,186,48,142,180,106,52,233,179,88,166,76,51,219,233,90,52,68,83,193,52,227,151,10,53,53,133,52,53,148,113,94,53,125,46,132,53,179,35,153,53,104,24,174,53,154,12,195,53,72,0,216,53,111,243,236,53,6,243,0,54,15,108,11,54,209,228,
21,54,76,93,32,54,125,213,42,54,100,77,53,54,0,197,63,54,79,60,74,54,81,179,84,54,4,42,95,54,104,160,105,54,123,22,116,54,60,140,126,54,213,128,132,54,98,187,137,54,196,245,142,54,251,47,148,54,6,106,153,54,230,163,158,54,152,221,163,54,29,23,169,54,116,80,174,54,156,137,179,54,149,194,184,54,95,251,189,54,249,51,195,54,98,108,200,54,153,164,205,54,159,220,210,54,115,20,216,54,19,76,221,54,128,131,226,54,185,186,231,54,190,241,236,54,141,40,242,54,39,95,247,54,139,149,252,54,220,229,0,55,214,128,
3,55,181,27,6,55,120,182,8,55,30,81,11,55,167,235,13,55,19,134,16,55,98,32,19,55,148,186,21,55,167,84,24,55,157,238,26,55,116,136,29,55,44,34,32,55,197,187,34,55,63,85,37,55,154,238,39,55,213,135,42,55,239,32,45,55,234,185,47,55,195,82,50,55,124,235,52,55,20,132,55,55,138,28,58,55,223,180,60,55,18,77,63,55,34,229,65,55,16,125,68,55,219,20,71,55,131,172,73,55,8,68,76,55,105,219,78,55,166,114,81,55,191,9,84,55,179,160,86,55,131,55,89,55,46,206,91,55,179,100,94,55,19,251,96,55,78,145,99,55,98,39,102,
55,80,189,104,55,23,83,107,55,183,232,109,55,48,126,112,55,130,19,115,55,172,168,117,55,174,61,120,55,136,210,122,55,57,103,125,55,193,251,127,55,16,72,129,55,43,146,130,55,50,220,131,55,35,38,133,55,255,111,134,55,198,185,135,55,120,3,137,55,20,77,138,55,154,150,139,55,11,224,140,55,102,41,142,55,171,114,143,55,218,187,144,55,242,4,146,55,244,77,147,55,223,150,148,55,180,223,149,55,114,40,151,55,25,113,152,55,169,185,153,55,33,2,155,55,131,74,156,55,204,146,157,55,254,218,158,55,25,35,160,55,27,
107,161,55,5,179,162,55,215,250,163,55,145,66,165,55,50,138,166,55,187,209,167,55,43,25,169,55,130,96,170,55,193,167,171,55,230,238,172,55,241,53,174,55,228,124,175,55,189,195,176,55,124,10,178,55,33,81,179,55,173,151,180,55,30,222,181,55,118,36,183,55,179,106,184,55,213,176,185,55,221,246,186,55,202,60,188,55,156,130,189,55,84,200,190,55,240,13,192,55,113,83,193,55,214,152,194,55,32,222,195,55,78,35,197,55,97,104,198,55,87,173,199,55,50,242,200,55,240,54,202,55,146,123,203,55,24,192,204,55,129,4,
206,55,205,72,207,55,252,140,208,55,15,209,209,55,4,21,211,55,220,88,212,55,150,156,213,55,52,224,214,55,179,35,216,55,21,103,217,55,88,170,218,55,126,237,219,55,133,48,221,55,111,115,222,55,57,182,223,55,230,248,224,55,115,59,226,55,226,125,227,55,49,192,228,55,98,2,230,55,115,68,231,55,101,134,232,55,55,200,233,55,234,9,235,55,125,75,236,55,240,140,237,55,67,206,238,55,118,15,240,55,137,80,241,55,123,145,242,55,77,210,243,55,254,18,245,55,142,83,246,55,253,147,247,55,76,212,248,55,121,20,250,55,
132,84,251,55,110,148,252,55,55,212,253,55,222,19,255,55,178,41,0,56,99,201,0,56,3,105,1,56,147,8,2,56,17,168,2,56,126,71,3,56,217,230,3,56,36,134,4,56,92,37,5,56,132,196,5,56,153,99,6,56,157,2,7,56,144,161,7,56,112,64,8,56,63,223,8,56,252,125,9,56,167,28,10,56,63,187,10,56,198,89,11,56,59,248,11,56,157,150,12,56,237,52,13,56,43,211,13,56,86,113,14,56,111,15,15,56,117,173,15,56,105,75,16,56,74,233,16,56,24,135,17,56,211,36,18,56,124,194,18,56,18,96,19,56,148,253,19,56,4,155,20,56,96,56,21,56,170,
213,21,56,224,114,22,56,2,16,23,56,18,173,23,56,14,74,24,56,246,230,24,56,203,131,25,56,140,32,26,56,57,189,26,56,211,89,27,56,89,246,27,56,203,146,28,56,41,47,29,56,115,203,29,56,169,103,30,56,203,3,31,56,217,159,31,56,210,59,32,56,183,215,32,56,136,115,33,56,68,15,34,56,236,170,34,56,127,70,35,56,253,225,35,56,103,125,36,56,188,24,37,56,252,179,37,56,39,79,38,56,61,234,38,56,63,133,39,56,43,32,40,56,2,187,40,56,196,85,41,56,112,240,41,56,7,139,42,56,137,37,43,56,245,191,43,56,76,90,44,56,141,244,
44,56,185,142,45,56,207,40,46,56,207,194,46,56,185,92,47,56,141,246,47,56,76,144,48,56,244,41,49,56,134,195,49,56,2,93,50,56,104,246,50,56,184,143,51,56,241,40,52,56,20,194,52,56,33,91,53,56,22,244,53,56,246,140,54,56,190,37,55,56,112,190,55,56,12,87,56,56,144,239,56,56,253,135,57,56,84,32,58,56,148,184,58,56,188,80,59,56,205,232,59,56,199,128,60,56,170,24,61,56,118,176,61,56,42,72,62,56,199,223,62,56,76,119,63,56,185,14,64,56,16,166,64,56,78,61,65,56,116,212,65,56,131,107,66,56,122,2,67,56,89,153,
67,56,32,48,68,56,207,198,68,56,102,93,69,56,228,243,69,56,75,138,70,56,153,32,71,56,207,182,71,56,236,76,72,56,241,226,72,56,221,120,73,56,177,14,74,56,108,164,74,56,14,58,75,56,152,207,75,56,8,101,76,56,96,250,76,56,159,143,77,56,197,36,78,56,210,185,78,56,197,78,79,56,160,227,79,56,97,120,80,56,9,13,81,56,151,161,81,56,12,54,82,56,104,202,82,56,169,94,83,56,210,242,83,56,224,134,84,56,213,26,85,56,176,174,85,56,114,66,86,56,25,214,86,56,166,105,87,56,26,253,87,56,115,144,88,56,178,35,89,56,215,
182,89,56,226,73,90,56,210,220,90,56,168,111,91,56,99,2,92,56,4,149,92,56,139,39,93,56,246,185,93,56,71,76,94,56,126,222,94,56,153,112,95,56,154,2,96,56,128,148,96,56,74,38,97,56,250,183,97,56,143,73,98,56,8,219,98,56,102,108,99,56,169,253,99,56,209,142,100,56,221,31,101,56,206,176,101,56,164,65,102,56,93,210,102,56,251,98,103,56,126,243,103,56,229,131,104,56,48,20,105,56,95,164,105,56,114,52,106,56,105,196,106,56,68,84,107,56,4,228,107,56,167,115,108,56,45,3,109,56,152,146,109,56,230,33,110,56,24,
177,110,56,46,64,111,56,39,207,111,56,3,94,112,56,195,236,112,56,102,123,113,56,237,9,114,56,86,152,114,56,163,38,115,56,211,180,115,56,230,66,116,56,220,208,116,56,181,94,117,56,113,236,117,56,16,122,118,56,146,7,119,56,246,148,119,56,61,34,120,56,102,175,120,56,114,60,121,56,97,201,121,56,50,86,122,56,229,226,122,56,123,111,123,56,243,251,123,56,77,136,124,56,138,20,125,56,168,160,125,56,169,44,126,56,139,184,126,56,80,68,127,56,246,207,127,56,191,45,128,56,116,115,128,56,26,185,128,56,177,254,
128,56,56,68,129,56,176,137,129,56,25,207,129,56,115,20,130,56,189,89,130,56,248,158,130,56,36,228,130,56,64,41,131,56,77,110,131,56,75,179,131,56,57,248,131,56,23,61,132,56,230,129,132,56,166,198,132,56,85,11,133,56,246,79,133,56,134,148,133,56,7,217,133,56,120,29,134,56,218,97,134,56,43,166,134,56,109,234,134,56,159,46,135,56,194,114,135,56,212,182,135,56,215,250,135,56,201,62,136,56,172,130,136,56,127,198,136,56,66,10,137,56,244,77,137,56,151,145,137,56,42,213,137,56,172,24,138,56,31,92,138,56,
129,159,138,56,211,226,138,56,21,38,139,56,71,105,139,56,104,172,139,56,121,239,139,56,122,50,140,56,106,117,140,56,75,184,140,56,26,251,140,56,218,61,141,56,136,128,141,56,39,195,141,56,181,5,142,56,50,72,142,56,159,138,142,56,251,204,142,56,71,15,143,56,130,81,143,56,172,147,143,56,198,213,143,56,207,23,144,56,199,89,144,56,174,155,144,56,133,221,144,56,75,31,145,56,0,97,145,56,164,162,145,56,56,228,145,56,186,37,146,56,43,103,146,56,140,168,146,56,219,233,146,56,26,43,147,56,71,108,147,56,99,173,
147,56,111,238,147,56,105,47,148,56,82,112,148,56,42,177,148,56,240,241,148,56,166,50,149,56,74,115,149,56,221,179,149,56,94,244,149,56,206,52,150,56,45,117,150,56,123,181,150,56,183,245,150,56,226,53,151,56,251,117,151,56,3,182,151,56,249,245,151,56,222,53,152,56,177,117,152,56,114,181,152,56,34,245,152,56,193,52,153,56,77,116,153,56,200,179,153,56,50,243,153,56,137,50,154,56,207,113,154,56,3,177,154,56,38,240,154,56,54,47,155,56,53,110,155,56,33,173,155,56,252,235,155,56,197,42,156,56,124,105,156,
56,33,168,156,56,180,230,156,56,53,37,157,56,164,99,157,56,0,162,157,56,75,224,157,56,132,30,158,56,170,92,158,56,190,154,158,56,192,216,158,56,176,22,159,56,142,84,159,56,89,146,159,56,18,208,159,56,185,13,160,56,77,75,160,56,207,136,160,56,63,198,160,56,156,3,161,56,231,64,161,56,31,126,161,56,69,187,161,56,88,248,161,56,89,53,162,56,71,114,162,56,35,175,162,56,236,235,162,56,162,40,163,56,70,101,163,56,215,161,163,56,86,222,163,56,193,26,164,56,26,87,164,56,96,147,164,56,148,207,164,56,180,11,
165,56,194,71,165,56,189,131,165,56,165,191,165,56,122,251,165,56,60,55,166,56,235,114,166,56,135,174,166,56,16,234,166,56,134,37,167,56,233,96,167,56,57,156,167,56,118,215,167,56,160,18,168,56,182,77,168,56,186,136,168,56,170,195,168,56,135,254,168,56,81,57,169,56,8,116,169,56,171,174,169,56,59,233,169,56,183,35,170,56,33,94,170,56,119,152,170,56,185,210,170,56,232,12,171,56,4,71,171,56,12,129,171,56,1,187,171,56,226,244,171,56,176,46,172,56,106,104,172,56,16,162,172,56,163,219,172,56,34,21,173,
56,142,78,173,56,230,135,173,56,42,193,173,56,91,250,173,56,120,51,174,56,129,108,174,56,118,165,174,56,88,222,174,56,38,23,175,56,224,79,175,56,134,136,175,56,24,193,175,56,150,249,175,56,0,50,176,56,87,106,176,56,153,162,176,56,199,218,176,56,226,18,177,56,232,74,177,56,218,130,177,56,184,186,177,56,131,242,177,56,56,42,178,56,218,97,178,56,104,153,178,56,225,208,178,56,71,8,179,56,152,63,179,56,212,118,179,56,253,173,179,56,17,229,179,56,17,28,180,56,252,82,180,56,211,137,180,56,150,192,180,56,
69,247,180,56,222,45,181,56,100,100,181,56,213,154,181,56,50,209,181,56,122,7,182,56,173,61,182,56,204,115,182,56,214,169,182,56,204,223,182,56,173,21,183,56,122,75,183,56,50,129,183,56,213,182,183,56,100,236,183,56,221,33,184,56,66,87,184,56,147,140,184,56,206,193,184,56,245,246,184,56,7,44,185,56,4,97,185,56,236,149,185,56,192,202,185,56,126,255,185,56,39,52,186,56,188,104,186,56,60,157,186,56,166,209,186,56,252,5,187,56,61,58,187,56,104,110,187,56,127,162,187,56,128,214,187,56,108,10,188,56,68,
62,188,56,6,114,188,56,179,165,188,56,74,217,188,56,205,12,189,56,58,64,189,56,146,115,189,56,213,166,189,56,3,218,189,56,27,13,190,56,30,64,190,56,12,115,190,56,228,165,190,56,167,216,190,56,84,11,191,56,236,61,191,56,111,112,191,56,220,162,191,56,52,213,191,56,118,7,192,56,163,57,192,56,186,107,192,56,187,157,192,56,167,207,192,56,126,1,193,56,63,51,193,56,234,100,193,56,127,150,193,56,255,199,193,56,106,249,193,56,190,42,194,56,253,91,194,56,38,141,194,56,57,190,194,56,55,239,194,56,31,32,195,
56,241,80,195,56,173,129,195,56,83,178,195,56,227,226,195,56,94,19,196,56,195,67,196,56,17,116,196,56,74,164,196,56,109,212,196,56,122,4,197,56,112,52,197,56,81,100,197,56,28,148,197,56,209,195,197,56,111,243,197,56,248,34,198,56,106,82,198,56,199,129,198,56,13,177,198,56,61,224,198,56,87,15,199,56,91,62,199,56,72,109,199,56,31,156,199,56,224,202,199,56,139,249,199,56,31,40,200,56,158,86,200,56,5,133,200,56,87,179,200,56,146,225,200,56,183,15,201,56,197,61,201,56,189,107,201,56,159,153,201,56,106,
199,201,56,30,245,201,56,189,34,202,56,68,80,202,56,182,125,202,56,16,171,202,56,84,216,202,56,130,5,203,56,153,50,203,56,153,95,203,56,131,140,203,56,86,185,203,56,19,230,203,56,185,18,204,56,72,63,204,56,192,107,204,56,34,152,204,56,109,196,204,56,162,240,204,56,191,28,205,56,198,72,205,56,182,116,205,56,143,160,205,56,81,204,205,56,253,247,205,56,146,35,206,56,15,79,206,56,118,122,206,56,198,165,206,56,255,208,206,56,33,252,206,56,45,39,207,56,33,82,207,56,254,124,207,56,196,167,207,56,115,210,
207,56,12,253,207,56,141,39,208,56,247,81,208,56,74,124,208,56,134,166,208,56,170,208,208,56,184,250,208,56,174,36,209,56,142,78,209,56,86,120,209,56,7,162,209,56,161,203,209,56,35,245,209,56,142,30,210,56,226,71,210,56,31,113,210,56,69,154,210,56,83,195,210,56,74,236,210,56,41,21,211,56,241,61,211,56,162,102,211,56,60,143,211,56,190,183,211,56,40,224,211,56,124,8,212,56,183,48,212,56,220,88,212,56,233,128,212,56,222,168,212,56,188,208,212,56,130,248,212,56,49,32,213,56,201,71,213,56,73,111,213,56,
177,150,213,56,1,190,213,56,59,229,213,56,92,12,214,56,102,51,214,56,88,90,214,56,51,129,214,56,245,167,214,56,161,206,214,56,52,245,214,56,176,27,215,56,20,66,215,56,96,104,215,56,149,142,215,56,178,180,215,56,183,218,215,56,164,0,216,56,122,38,216,56,55,76,216,56,221,113,216,56,107,151,216,56,225,188,216,56,63,226,216,56,134,7,217,56,180,44,217,56,202,81,217,56,201,118,217,56,176,155,217,56,126,192,217,56,53,229,217,56,212,9,218,56,90,46,218,56,201,82,218,56,32,119,218,56,95,155,218,56,133,191,
218,56,148,227,218,56,138,7,219,56,105,43,219,56,47,79,219,56,221,114,219,56,115,150,219,56,241,185,219,56,87,221,219,56,164,0,220,56,218,35,220,56,247,70,220,56,252,105,220,56,233,140,220,56,189,175,220,56,122,210,220,56,30,245,220,56,170,23,221,56,29,58,221,56,120,92,221,56,187,126,221,56,230,160,221,56,248,194,221,56,242,228,221,56,212,6,222,56,157,40,222,56,78,74,222,56,230,107,222,56,102,141,222,56,206,174,222,56,29,208,222,56,84,241,222,56,115,18,223,56,120,51,223,56,102,84,223,56,59,117,223,
56,247,149,223,56,155,182,223,56,39,215,223,56,154,247,223,56,244,23,224,56,54,56,224,56,95,88,224,56,112,120,224,56,104,152,224,56,71,184,224,56,14,216,224,56,188,247,224,56,82,23,225,56,207,54,225,56,51,86,225,56,127,117,225,56,178,148,225,56,204,179,225,56,206,210,225,56,183,241,225,56,135,16,226,56,63,47,226,56,221,77,226,56,99,108,226,56,209,138,226,56,37,169,226,56,97,199,226,56,132,229,226,56,142,3,227,56,127,33,227,56,87,63,227,56,23,93,227,56,190,122,227,56,75,152,227,56,192,181,227,56,29,
211,227,56,96,240,227,56,138,13,228,56,156,42,228,56,148,71,228,56,116,100,228,56,59,129,228,56,232,157,228,56,125,186,228,56,249,214,228,56,92,243,228,56,165,15,229,56,214,43,229,56,238,71,229,56,237,99,229,56,211,127,229,56,160,155,229,56,83,183,229,56,238,210,229,56,112,238,229,56,216,9,230,56,40,37,230,56,94,64,230,56,123,91,230,56,127,118,230,56,106,145,230,56,60,172,230,56,245,198,230,56,149,225,230,56,27,252,230,56,136,22,231,56,221,48,231,56,24,75,231,56,57,101,231,56,66,127,231,56,49,153,
231,56,7,179,231,56,196,204,231,56,104,230,231,56,242,255,231,56,100,25,232,56,187,50,232,56,250,75,232,56,31,101,232,56,44,126,232,56,30,151,232,56,248,175,232,56,184,200,232,56,95,225,232,56,236,249,232,56,97,18,233,56,188,42,233,56,253,66,233,56,37,91,233,56,52,115,233,56,41,139,233,56,5,163,233,56,200,186,233,56,113,210,233,56,1,234,233,56,120,1,234,56,213,24,234,56,24,48,234,56,66,71,234,56,83,94,234,56,74,117,234,56,40,140,234,56,236,162,234,56,151,185,234,56,41,208,234,56,160,230,234,56,255,
252,234,56,68,19,235,56,111,41,235,56,129,63,235,56,121,85,235,56,88,107,235,56,29,129,235,56,201,150,235,56,91,172,235,56,212,193,235,56,51,215,235,56,120,236,235,56,164,1,236,56,182,22,236,56,175,43,236,56,142,64,236,56,84,85,236,56,0,106,236,56,146,126,236,56,10,147,236,56,105,167,236,56,175,187,236,56,219,207,236,56,237,227,236,56,229,247,236,56,196,11,237,56,137,31,237,56,52,51,237,56,198,70,237,56,62,90,237,56,156,109,237,56,225,128,237,56,12,148,237,56,29,167,237,56,21,186,237,56,242,204,237,
56,182,223,237,56,97,242,237,56,241,4,238,56,104,23,238,56,197,41,238,56,9,60,238,56,50,78,238,56,66,96,238,56,56,114,238,56,20,132,238,56,215,149,238,56,127,167,238,56,14,185,238,56,131,202,238,56,222,219,238,56,32,237,238,56,71,254,238,56,85,15,239,56,73,32,239,56,35,49,239,56,228,65,239,56,138,82,239,56,23,99,239,56,138,115,239,56,227,131,239,56,34,148,239,56,71,164,239,56,82,180,239,56,68,196,239,56,27,212,239,56,217,227,239,56,125,243,239,56,7,3,240,56,119,18,240,56,205,33,240,56,9,49,240,56,
44,64,240,56,52,79,240,56,34,94,240,56,247,108,240,56,178,123,240,56,82,138,240,56,217,152,240,56,70,167,240,56,153,181,240,56,210,195,240,56,241,209,240,56,246,223,240,56,225,237,240,56,178,251,240,56,106,9,241,56,7,23,241,56,138,36,241,56,243,49,241,56,67,63,241,56,120,76,241,56,147,89,241,56,149,102,241,56,124,115,241,56,73,128,241,56,253,140,241,56,150,153,241,56,22,166,241,56,123,178,241,56,198,190,241,56,248,202,241,56,15,215,241,56,12,227,241,56,240,238,241,56,185,250,241,56,104,6,242,56,254,
17,242,56,121,29,242,56,218,40,242,56,33,52,242,56,78,63,242,56,97,74,242,56,90,85,242,56,57,96,242,56,254,106,242,56,169,117,242,56,58,128,242,56,176,138,242,56,13,149,242,56,80,159,242,56,120,169,242,56,135,179,242,56,123,189,242,56,86,199,242,56,22,209,242,56,188,218,242,56,72,228,242,56,186,237,242,56,18,247,242,56,80,0,243,56,116,9,243,56,126,18,243,56,110,27,243,56,67,36,243,56,255,44,243,56,160,53,243,56,39,62,243,56,149,70,243,56,232,78,243,56,33,87,243,56,64,95,243,56,69,103,243,56,47,111,
243,56,0,119,243,56,183,126,243,56,83,134,243,56,213,141,243,56,62,149,243,56,140,156,243,56,192,163,243,56,218,170,243,56,218,177,243,56,191,184,243,56,139,191,243,56],"i8",4,y.a+942080);
Q([60,198,243,56,212,204,243,56,81,211,243,56,180,217,243,56,253,223,243,56,44,230,243,56,65,236,243,56,60,242,243,56,28,248,243,56,227,253,243,56,143,3,244,56,33,9,244,56,154,14,244,56,248,19,244,56,60,25,244,56,101,30,244,56,117,35,244,56,107,40,244,56,70,45,244,56,7,50,244,56,175,54,244,56,60,59,244,56,175,63,244,56,8,68,244,56,70,72,244,56,107,76,244,56,118,80,244,56,102,84,244,56,60,88,244,56,249,91,244,56,155,95,244,56,35,99,244,56,145,102,244,56,228,105,244,56,30,109,244,56,62,112,244,56,67,
115,244,56,46,118,244,56,0,121,244,56,183,123,244,56,84,126,244,56,215,128,244,56,64,131,244,56,142,133,244,56,195,135,244,56,222,137,244,56,222,139,244,56,196,141,244,56,145,143,244,56,67,145,244,56,219,146,244,56,89,148,244,56,189,149,244,56,7,151,244,56,54,152,244,56,76,153,244,56,72,154,244,56,41,155,244,56,241,155,244,56,158,156,244,56,49,157,244,56,170,157,244,56,10,158,244,56,79,158,244,56,122,158,244,56,139,158,244,56,130,158,244,56,94,158,244,56,33,158,244,56,202,157,244,56,89,157,244,56,
205,156,244,56,40,156,244,56,104,155,244,56,143,154,244,56,155,153,244,56,142,152,244,56,102,151,244,56,36,150,244,56,201,148,244,56,83,147,244,56,195,145,244,56,25,144,244,56,86,142,244,56,120,140,244,56,128,138,244,56,110,136,244,56,66,134,244,56,253,131,244,56,157,129,244,56,35,127,244,56,143,124,244,56,225,121,244,56,26,119,244,56,56,116,244,56,60,113,244,56,38,110,244,56,247,106,244,56,173,103,244,56,73,100,244,56,204,96,244,56,52,93,244,56,130,89,244,56,183,85,244,56,210,81,244,56,210,77,244,
56,185,73,244,56,134,69,244,56,56,65,244,56,209,60,244,56,80,56,244,56,181,51,244,56,0,47,244,56,50,42,244,56,73,37,244,56,70,32,244,56,42,27,244,56,243,21,244,56,163,16,244,56,57,11,244,56,181,5,244,56,23,0,244,56,95,250,243,56,141,244,243,56,162,238,243,56,156,232,243,56,125,226,243,56,68,220,243,56,241,213,243,56,132,207,243,56,253,200,243,56,93,194,243,56,162,187,243,56,206,180,243,56,224,173,243,56,217,166,243,56,183,159,243,56,124,152,243,56,38,145,243,56,183,137,243,56,47,130,243,56,140,122,
243,56,208,114,243,56,250,106,243,56,10,99,243,56,0,91,243,56,221,82,243,56,159,74,243,56,73,66,243,56,216,57,243,56,78,49,243,56,170,40,243,56,236,31,243,56,20,23,243,56,35,14,243,56,24,5,243,56,243,251,242,56,181,242,242,56,93,233,242,56,235,223,242,56,96,214,242,56,187,204,242,56,252,194,242,56,36,185,242,56,50,175,242,56,38,165,242,56,1,155,242,56,194,144,242,56,105,134,242,56,247,123,242,56,107,113,242,56,198,102,242,56,7,92,242,56,46,81,242,56,60,70,242,56,49,59,242,56,11,48,242,56,204,36,242,
56,116,25,242,56,2,14,242,56,118,2,242,56,209,246,241,56,19,235,241,56,59,223,241,56,73,211,241,56,62,199,241,56,25,187,241,56,219,174,241,56,131,162,241,56,18,150,241,56,136,137,241,56,227,124,241,56,38,112,241,56,79,99,241,56,95,86,241,56,85,73,241,56,49,60,241,56,245,46,241,56,159,33,241,56,47,20,241,56,166,6,241,56,4,249,240,56,72,235,240,56,115,221,240,56,132,207,240,56,125,193,240,56,91,179,240,56,33,165,240,56,205,150,240,56,96,136,240,56,217,121,240,56,58,107,240,56,129,92,240,56,174,77,240,
56,194,62,240,56,189,47,240,56,159,32,240,56,104,17,240,56,23,2,240,56,173,242,239,56,42,227,239,56,141,211,239,56,215,195,239,56,9,180,239,56,32,164,239,56,31,148,239,56,5,132,239,56,209,115,239,56,132,99,239,56,30,83,239,56,159,66,239,56,7,50,239,56,85,33,239,56,139,16,239,56,167,255,238,56,170,238,238,56,148,221,238,56,102,204,238,56,29,187,238,56,188,169,238,56,66,152,238,56,175,134,238,56,3,117,238,56,62,99,238,56,95,81,238,56,104,63,238,56,88,45,238,56,46,27,238,56,236,8,238,56,145,246,237,
56,29,228,237,56,143,209,237,56,233,190,237,56,42,172,237,56,82,153,237,56,97,134,237,56,88,115,237,56,53,96,237,56,249,76,237,56,165,57,237,56,56,38,237,56,177,18,237,56,18,255,236,56,91,235,236,56,138,215,236,56,160,195,236,56,158,175,236,56,131,155,236,56,79,135,236,56,3,115,236,56,157,94,236,56,31,74,236,56,136,53,236,56,216,32,236,56,16,12,236,56,47,247,235,56,53,226,235,56,35,205,235,56,248,183,235,56,180,162,235,56,88,141,235,56,227,119,235,56,85,98,235,56,175,76,235,56,240,54,235,56,24,33,
235,56,40,11,235,56,31,245,234,56,254,222,234,56,196,200,234,56,114,178,234,56,7,156,234,56,131,133,234,56,232,110,234,56,51,88,234,56,102,65,234,56,129,42,234,56,131,19,234,56,109,252,233,56,62,229,233,56,247,205,233,56,151,182,233,56,31,159,233,56,143,135,233,56,230,111,233,56,37,88,233,56,75,64,233,56,90,40,233,56,79,16,233,56,45,248,232,56,242,223,232,56,159,199,232,56,52,175,232,56,176,150,232,56,20,126,232,56,96,101,232,56,147,76,232,56,175,51,232,56,178,26,232,56,157,1,232,56,112,232,231,56,
42,207,231,56,205,181,231,56,87,156,231,56,201,130,231,56,35,105,231,56,101,79,231,56,143,53,231,56,160,27,231,56,154,1,231,56,124,231,230,56,69,205,230,56,247,178,230,56,144,152,230,56,18,126,230,56,123,99,230,56,205,72,230,56,6,46,230,56,40,19,230,56,49,248,229,56,35,221,229,56,253,193,229,56,191,166,229,56,105,139,229,56,251,111,229,56,117,84,229,56,215,56,229,56,34,29,229,56,85,1,229,56,111,229,228,56,115,201,228,56,94,173,228,56,49,145,228,56,237,116,228,56,145,88,228,56,30,60,228,56,146,31,
228,56,239,2,228,56,52,230,227,56,98,201,227,56,120,172,227,56,118,143,227,56,93,114,227,56,44,85,227,56,227,55,227,56,131,26,227,56,11,253,226,56,124,223,226,56,213,193,226,56,23,164,226,56,65,134,226,56,83,104,226,56,78,74,226,56,50,44,226,56,254,13,226,56,179,239,225,56,80,209,225,56,214,178,225,56,69,148,225,56,156,117,225,56,219,86,225,56,4,56,225,56,21,25,225,56,14,250,224,56,241,218,224,56,188,187,224,56,112,156,224,56,12,125,224,56,145,93,224,56,255,61,224,56,86,30,224,56,150,254,223,56,190,
222,223,56,207,190,223,56,202,158,223,56,172,126,223,56,120,94,223,56,45,62,223,56,202,29,223,56,81,253,222,56,192,220,222,56,25,188,222,56,90,155,222,56,132,122,222,56,152,89,222,56,148,56,222,56,121,23,222,56,71,246,221,56,255,212,221,56,159,179,221,56,41,146,221,56,156,112,221,56,247,78,221,56,60,45,221,56,106,11,221,56,129,233,220,56,130,199,220,56,107,165,220,56,62,131,220,56,250,96,220,56,160,62,220,56,46,28,220,56,166,249,219,56,7,215,219,56,82,180,219,56,133,145,219,56,162,110,219,56,169,
75,219,56,153,40,219,56,114,5,219,56,52,226,218,56,225,190,218,56,118,155,218,56,245,119,218,56,93,84,218,56,175,48,218,56,235,12,218,56,16,233,217,56,30,197,217,56,22,161,217,56,248,124,217,56,195,88,217,56,120,52,217,56,22,16,217,56,159,235,216,56,16,199,216,56,108,162,216,56,177,125,216,56,224,88,216,56,248,51,216,56,251,14,216,56,231,233,215,56,189,196,215,56,124,159,215,56,38,122,215,56,185,84,215,56,54,47,215,56,157,9,215,56,238,227,214,56,41,190,214,56,78,152,214,56,92,114,214,56,85,76,214,
56,56,38,214,56,4,0,214,56,187,217,213,56,91,179,213,56,230,140,213,56,91,102,213,56,185,63,213,56,2,25,213,56,53,242,212,56,83,203,212,56,90,164,212,56,75,125,212,56,39,86,212,56,237,46,212,56,157,7,212,56,55,224,211,56,188,184,211,56,43,145,211,56,132,105,211,56,199,65,211,56,245,25,211,56,13,242,210,56,16,202,210,56,253,161,210,56,212,121,210,56,150,81,210,56,66,41,210,56,217,0,210,56,90,216,209,56,197,175,209,56,27,135,209,56,92,94,209,56,135,53,209,56,157,12,209,56,158,227,208,56,137,186,208,
56,94,145,208,56,31,104,208,56,202,62,208,56,95,21,208,56,224,235,207,56,75,194,207,56,160,152,207,56,225,110,207,56,12,69,207,56,35,27,207,56,36,241,206,56,15,199,206,56,230,156,206,56,168,114,206,56,84,72,206,56,235,29,206,56,110,243,205,56,219,200,205,56,51,158,205,56,119,115,205,56,165,72,205,56,190,29,205,56,194,242,204,56,178,199,204,56,140,156,204,56,82,113,204,56,3,70,204,56,159,26,204,56,38,239,203,56,152,195,203,56,246,151,203,56,62,108,203,56,114,64,203,56,146,20,203,56,156,232,202,56,
146,188,202,56,115,144,202,56,64,100,202,56,248,55,202,56,155,11,202,56,42,223,201,56,164,178,201,56,9,134,201,56,90,89,201,56,151,44,201,56,191,255,200,56,211,210,200,56,210,165,200,56,188,120,200,56,147,75,200,56,85,30,200,56,2,241,199,56,155,195,199,56,32,150,199,56,145,104,199,56,237,58,199,56,53,13,199,56,105,223,198,56,137,177,198,56,148,131,198,56,139,85,198,56,110,39,198,56,61,249,197,56,248,202,197,56,159,156,197,56,50,110,197,56,176,63,197,56,27,17,197,56,113,226,196,56,180,179,196,56,226,
132,196,56,253,85,196,56,4,39,196,56,247,247,195,56,213,200,195,56,161,153,195,56,88,106,195,56,251,58,195,56,139,11,195,56,7,220,194,56,111,172,194,56,195,124,194,56,4,77,194,56,49,29,194,56,74,237,193,56,79,189,193,56,65,141,193,56,32,93,193,56,235,44,193,56,162,252,192,56,69,204,192,56,214,155,192,56,82,107,192,56,188,58,192,56,17,10,192,56,84,217,191,56,131,168,191,56,158,119,191,56,166,70,191,56,155,21,191,56,125,228,190,56,75,179,190,56,6,130,190,56,173,80,190,56,66,31,190,56,195,237,189,56,
49,188,189,56,140,138,189,56,212,88,189,56,8,39,189,56,42,245,188,56,56,195,188,56,51,145,188,56,28,95,188,56,241,44,188,56,179,250,187,56,99,200,187,56,255,149,187,56,137,99,187,56,255,48,187,56,99,254,186,56,180,203,186,56,242,152,186,56,29,102,186,56,54,51,186,56,59,0,186,56,46,205,185,56,14,154,185,56,220,102,185,56,151,51,185,56,63,0,185,56,213,204,184,56,88,153,184,56,200,101,184,56,38,50,184,56,113,254,183,56,170,202,183,56,209,150,183,56,228,98,183,56,230,46,183,56,213,250,182,56,177,198,
182,56,124,146,182,56,52,94,182,56,217,41,182,56,108,245,181,56,237,192,181,56,92,140,181,56,185,87,181,56,3,35,181,56,59,238,180,56,97,185,180,56,117,132,180,56,119,79,180,56,102,26,180,56,68,229,179,56,15,176,179,56,201,122,179,56,112,69,179,56,6,16,179,56,137,218,178,56,251,164,178,56,91,111,178,56,169,57,178,56,229,3,178,56,15,206,177,56,39,152,177,56,46,98,177,56,35,44,177,56,6,246,176,56,215,191,176,56,151,137,176,56,69,83,176,56,226,28,176,56,108,230,175,56,230,175,175,56,77,121,175,56,163,
66,175,56,232,11,175,56,27,213,174,56,61,158,174,56,77,103,174,56,76,48,174,56,57,249,173,56,21,194,173,56,224,138,173,56,153,83,173,56,65,28,173,56,216,228,172,56,93,173,172,56,210,117,172,56,53,62,172,56,135,6,172,56,200,206,171,56,247,150,171,56,22,95,171,56,35,39,171,56,32,239,170,56,11,183,170,56,229,126,170,56,175,70,170,56,103,14,170,56,15,214,169,56,165,157,169,56,43,101,169,56,160,44,169,56,4,244,168,56,87,187,168,56,154,130,168,56,204,73,168,56,237,16,168,56,253,215,167,56,253,158,167,56,
236,101,167,56,202,44,167,56,152,243,166,56,85,186,166,56,1,129,166,56,157,71,166,56,41,14,166,56,164,212,165,56,15,155,165,56,105,97,165,56,179,39,165,56,236,237,164,56,21,180,164,56,46,122,164,56,55,64,164,56,47,6,164,56,23,204,163,56,239,145,163,56,182,87,163,56,109,29,163,56,21,227,162,56,172,168,162,56,51,110,162,56,170,51,162,56,17,249,161,56,103,190,161,56,174,131,161,56,229,72,161,56,12,14,161,56,35,211,160,56,42,152,160,56,34,93,160,56,9,34,160,56,225,230,159,56,169,171,159,56,97,112,159,
56,9,53,159,56,162,249,158,56,43,190,158,56,164,130,158,56,14,71,158,56,104,11,158,56,179,207,157,56,238,147,157,56,25,88,157,56,53,28,157,56,66,224,156,56,63,164,156,56,44,104,156,56,10,44,156,56,217,239,155,56,153,179,155,56,73,119,155,56,234,58,155,56,124,254,154,56,254,193,154,56,113,133,154,56,213,72,154,56,42,12,154,56,112,207,153,56,166,146,153,56,206,85,153,56,231,24,153,56,240,219,152,56,235,158,152,56,214,97,152,56,179,36,152,56,128,231,151,56,63,170,151,56,239,108,151,56,144,47,151,56,
34,242,150,56,166,180,150,56,27,119,150,56,129,57,150,56,216,251,149,56,33,190,149,56,90,128,149,56,134,66,149,56,163,4,149,56,177,198,148,56,176,136,148,56,162,74,148,56,132,12,148,56,88,206,147,56,30,144,147,56,214,81,147,56,127,19,147,56,25,213,146,56,165,150,146,56,35,88,146,56,147,25,146,56,245,218,145,56,72,156,145,56,141,93,145,56,196,30,145,56,237,223,144,56,7,161,144,56,20,98,144,56,19,35,144,56,3,228,143,56,230,164,143,56,186,101,143,56,129,38,143,56,58,231,142,56,228,167,142,56,129,104,
142,56,17,41,142,56,146,233,141,56,5,170,141,56,107,106,141,56,195,42,141,56,14,235,140,56,74,171,140,56,122,107,140,56,155,43,140,56,175,235,139,56,181,171,139,56,174,107,139,56,153,43,139,56,119,235,138,56,72,171,138,56,11,107,138,56,192,42,138,56,104,234,137,56,3,170,137,56,145,105,137,56,17,41,137,56,132,232,136,56,234,167,136,56,67,103,136,56,142,38,136,56,205,229,135,56,254,164,135,56,34,100,135,56,57,35,135,56,67,226,134,56,64,161,134,56,49,96,134,56,20,31,134,56,234,221,133,56,179,156,133,
56,112,91,133,56,32,26,133,56,195,216,132,56,89,151,132,56,226,85,132,56,95,20,132,56,207,210,131,56,50,145,131,56,137,79,131,56,211,13,131,56,16,204,130,56,65,138,130,56,102,72,130,56,126,6,130,56,137,196,129,56,137,130,129,56,123,64,129,56,98,254,128,56,60,188,128,56,9,122,128,56,203,55,128,56,255,234,127,56,81,102,127,56,139,225,126,56,172,92,126,56,180,215,125,56,165,82,125,56,125,205,124,56,61,72,124,56,229,194,123,56,118,61,123,56,238,183,122,56,78,50,122,56,151,172,121,56,199,38,121,56,224,
160,120,56,226,26,120,56,203,148,119,56,158,14,119,56,88,136,118,56,252,1,118,56,136,123,117,56,252,244,116,56,90,110,116,56,160,231,115,56,207,96,115,56,231,217,114,56,232,82,114,56,210,203,113,56,165,68,113,56,97,189,112,56,7,54,112,56,149,174,111,56,13,39,111,56,111,159,110,56,186,23,110,56,238,143,109,56,12,8,109,56,20,128,108,56,5,248,107,56,224,111,107,56,165,231,106,56,83,95,106,56,236,214,105,56,110,78,105,56,219,197,104,56,50,61,104,56,115,180,103,56,158,43,103,56,179,162,102,56,178,25,102,
56,156,144,101,56,113,7,101,56,48,126,100,56,217,244,99,56,109,107,99,56,236,225,98,56,86,88,98,56,170,206,97,56,233,68,97,56,19,187,96,56,41,49,96,56,41,167,95,56,20,29,95,56,234,146,94,56,172,8,94,56,89,126,93,56,241,243,92,56,116,105,92,56,227,222,91,56,62,84,91,56,132,201,90,56,182,62,90,56,211,179,89,56,220,40,89,56,209,157,88,56,178,18,88,56,127,135,87,56,55,252,86,56,220,112,86,56,109,229,85,56,234,89,85,56,83,206,84,56,169,66,84,56,234,182,83,56,25,43,83,56,51,159,82,56,59,19,82,56,46,135,
81,56,15,251,80,56,220,110,80,56,150,226,79,56,61,86,79,56,208,201,78,56,81,61,78,56,191,176,77,56,25,36,77,56,97,151,76,56,150,10,76,56,184,125,75,56,199,240,74,56,196,99,74,56,175,214,73,56,134,73,73,56,76,188,72,56,254,46,72,56,159,161,71,56,45,20,71,56,169,134,70,56,19,249,69,56,107,107,69,56,177,221,68,56,229,79,68,56,6,194,67,56,22,52,67,56,21,166,66,56,1,24,66,56,220,137,65,56,165,251,64,56,93,109,64,56,3,223,63,56,152,80,63,56,27,194,62,56,141,51,62,56,238,164,61,56,62,22,61,56,124,135,60,
56,170,248,59,56,198,105,59,56,210,218,58,56,204,75,58,56,182,188,57,56,143,45,57,56,87,158,56,56,15,15,56,56,182,127,55,56,77,240,54,56,211,96,54,56,73,209,53,56,174,65,53,56,3,178,52,56,72,34,52,56,125,146,51,56,162,2,51,56,182,114,50,56,187,226,49,56,176,82,49,56,149,194,48,56,106,50,48,56,48,162,47,56,229,17,47,56,140,129,46,56,34,241,45,56,170,96,45,56,33,208,44,56,138,63,44,56,227,174,43,56,45,30,43,56,104,141,42,56,147,252,41,56,176,107,41,56,189,218,40,56,188,73,40,56,172,184,39,56,141,39,
39,56,95,150,38,56,35,5,38,56,216,115,37,56,126,226,36,56,22,81,36,56,160,191,35,56,27,46,35,56,136,156,34,56,231,10,34,56,55,121,33,56,121,231,32,56,174,85,32,56,212,195,31,56,236,49,31,56,247,159,30,56,243,13,30,56,226,123,29,56,196,233,28,56,151,87,28,56,93,197,27,56,22,51,27,56,193,160,26,56,95,14,26,56,239,123,25,56,114,233,24,56,232,86,24,56,81,196,23,56,173,49,23,56,252,158,22,56,61,12,22,56,114,121,21,56,154,230,20,56,182,83,20,56,197,192,19,56,199,45,19,56,188,154,18,56,165,7,18,56,130,116,
17,56,82,225,16,56,22,78,16,56,205,186,15,56,121,39,15,56,24,148,14,56,171,0,14,56,50,109,13,56,173,217,12,56,29,70,12,56,128,178,11,56,216,30,11,56,36,139,10,56,101,247,9,56,153,99,9,56,195,207,8,56,225,59,8,56,243,167,7,56,251,19,7,56,246,127,6,56,231,235,5,56,205,87,5,56,167,195,4,56,119,47,4,56,60,155,3,56,245,6,3,56,164,114,2,56,72,222,1,56,226,73,1,56,113,181,0,56,245,32,0,56,221,24,255,55,188,239,253,55,134,198,252,55,59,157,251,55,220,115,250,55,104,74,249,55,224,32,248,55,68,247,246,55,148,
205,245,55,208,163,244,55,248,121,243,55,13,80,242,55,14,38,241,55,252,251,239,55,214,209,238,55,158,167,237,55,82,125,236,55,243,82,235,55,130,40,234,55,254,253,232,55,104,211,231,55,191,168,230,55,4,126,229,55,55,83,228,55,88,40,227,55,103,253,225,55,100,210,224,55,80,167,223,55,42,124,222,55,242,80,221,55,170,37,220,55,80,250,218,55,230,206,217,55,106,163,216,55,222,119,215,55,65,76,214,55,148,32,213,55,214,244,211,55,8,201,210,55,42,157,209,55,60,113,208,55,63,69,207,55,49,25,206,55,20,237,204,
55,231,192,203,55,171,148,202,55,96,104,201,55,6,60,200,55,156,15,199,55,36,227,197,55,157,182,196,55,8,138,195,55,100,93,194,55,178,48,193,55,241,3,192,55,35,215,190,55,70,170,189,55,92,125,188,55,100,80,187,55,94,35,186,55,75,246,184,55,43,201,183,55,253,155,182,55,194,110,181,55,123,65,180,55,38,20,179,55,197,230,177,55,87,185,176,55,221,139,175,55,87,94,174,55,196,48,173,55,37,3,172,55,123,213,170,55,196,167,169,55,2,122,168,55,52,76,167,55,91,30,166,55,119,240,164,55,135,194,163,55,140,148,162,
55,135,102,161,55,118,56,160,55,91,10,159,55,54,220,157,55,6,174,156,55,203,127,155,55,135,81,154,55,56,35,153,55,224,244,151,55,125,198,150,55,18,152,149,55,156,105,148,55,29,59,147,55,149,12,146,55,4,222,144,55,106,175,143,55,198,128,142,55,26,82,141,55,102,35,140,55,169,244,138,55,227,197,137,55,22,151,136,55,64,104,135,55,98,57,134,55,124,10,133,55,142,219,131,55,153,172,130,55,156,125,129,55,152,78,128,55,26,63,126,55,245,224,123,55,194,130,121,55,130,36,119,55,52,198,116,55,216,103,114,55,112,
9,112,55,251,170,109,55,121,76,107,55,236,237,104,55,82,143,102,55,173,48,100,55,252,209,97,55,64,115,95,55,121,20,93,55,167,181,90,55,203,86,88,55,228,247,85,55,244,152,83,55,250,57,81,55,247,218,78,55,234,123,76,55,213,28,74,55,183,189,71,55,144,94,69,55,97,255,66,55,43,160,64,55,236,64,62,55,167,225,59,55,90,130,57,55,6,35,55,55,172,195,52,55,75,100,50,55,228,4,48,55,119,165,45,55,5,70,43,55,141,230,40,55,16,135,38,55,142,39,36,55,8,200,33,55,125,104,31,55,238,8,29,55,91,169,26,55,197,73,24,55,
43,234,21,55,142,138,19,55,239,42,17,55,76,203,14,55,168,107,12,55,1,12,10,55,89,172,7,55,175,76,5,55,3,237,2,55,87,141,0,55,83,91,252,54,248,155,247,54,155,220,242,54,63,29,238,54,227,93,233,54,136,158,228,54,46,223,223,54,214,31,219,54,129,96,214,54,46,161,209,54,223,225,204,54,148,34,200,54,77,99,195,54,11,164,190,54,207,228,185,54,153,37,181,54,105,102,176,54,64,167,171,54,30,232,166,54,5,41,162,54,244,105,157,54,236,170,152,54,237,235,147,54,248,44,143,54,14,110,138,54,47,175,133,54,92,240,128,
54,40,99,120,54,178,229,110,54,86,104,101,54,21,235,91,54,240,109,82,54,232,240,72,54,254,115,63,54,51,247,53,54,137,122,44,54,255,253,34,54,152,129,25,54,83,5,16,54,51,137,6,54,112,26,250,53,198,34,231,53,106,43,212,53,95,52,193,53,166,61,174,53,65,71,155,53,51,81,136,53,250,182,106,53,67,204,68,53,69,226,30,53,7,242,241,52,6,33,166,52,28,163,52,52,133,58,232,50,143,34,245,179,78,19,137,180,78,220,212,180,206,81,16,181,152,52,54,181,129,22,92,181,195,251,128,181,208,235,147,181,103,219,166,181,134,
202,185,181,42,185,204,181,81,167,223,181,250,148,242,181,17,193,2,182,100,55,12,182,117,173,21,182,66,35,31,182,203,152,40,182,14,14,50,182,12,131,59,182,194,247,68,182,48,108,78,182,84,224,87,182,46,84,97,182,189,199,106,182,0,59,116,182,245,173,125,182,78,144,131,182,122,73,136,182,125,2,141,182,88,187,145,182,10,116,150,182,146,44,155,182,240,228,159,182,36,157,164,182,44,85,169,182,9,13,174,182,185,196,178,182,61,124,183,182,147,51,188,182,188,234,192,182,183,161,197,182,131,88,202,182,33,15,
207,182,142,197,211,182,203,123,216,182,216,49,221,182,179,231,225,182,93,157,230,182,213,82,235,182,26,8,240,182,44,189,244,182,10,114,249,182,180,38,254,182,149,109,1,183,181,199,3,183,187,33,6,183,165,123,8,183,116,213,10,183,40,47,13,183,191,136,15,183,59,226,17,183,154,59,20,183,221,148,22,183,3,238,24,183,12,71,27,183,248,159,29,183,198,248,31,183,119,81,34,183,9,170,36,183,125,2,39,183,211,90,41,183,9,179,43,183,33,11,46,183,26,99,48,183,243,186,50,183,172,18,53,183,69,106,55,183,190,193,57,
183,22,25,60,183,78,112,62,183,101,199,64,183,90,30,67,183,46,117,69,183,225,203,71,183,113,34,74,183,223,120,76,183,42,207,78,183,83,37,81,183,89,123,83,183,60,209,85,183,251,38,88,183,151,124,90,183,14,210,92,183,97,39,95,183,144,124,97,183,155,209,99,183,128,38,102,183,64,123,104,183,219,207,106,183,80,36,109,183,159,120,111,183,200,204,113,183,202,32,116,183,166,116,118,183,91,200,120,183,233,27,123,183,79,111,125,183,142,194,127,183,211,10,129,183,74,52,130,183,173,93,131,183,252,134,132,183,
55,176,133,183,93,217,134,183,110,2,136,183,106,43,137,183,82,84,138,183,37,125,139,183,226,165,140,183,138,206,141,183,29,247,142,183,154,31,144,183,2,72,145,183,83,112,146,183,143,152,147,183,181,192,148,183,197,232,149,183,191,16,151,183,162,56,152,183,110,96,153,183,36,136,154,183,196,175,155,183,76,215,156,183,190,254,157,183,24,38,159,183,91,77,160,183,135,116,161,183,155,155,162,183,152,194,163,183,125,233,164,183,74,16,166,183,0,55,167,183,157,93,168,183,34,132,169,183,143,170,170,183,227,
208,171,183,31,247,172,183,66,29,174,183,76,67,175,183,61,105,176,183,22,143,177,183,213,180,178,183,123,218,179,183,7,0,181,183,122,37,182,183,212,74,183,183,19,112,184,183,57,149,185,183,69,186,186,183,55,223,187,183,14,4,189,183,203,40,190,183,110,77,191,183,246,113,192,183,99,150,193,183,182,186,194,183,237,222,195,183,10,3,197,183,11,39,198,183,241,74,199,183,188,110,200,183,107,146,201,183,254,181,202,183,118,217,203,183,209,252,204,183,17,32,206,183,52,67,207,183,60,102,208,183,39,137,209,
183,245,171,210,183,167,206,211,183,60,241,212,183,180,19,214,183,15,54,215,183,77,88,216,183,110,122,217,183,114,156,218,183,88,190,219,183,33,224,220,183,203,1,222,183,89,35,223,183,200,68,224,183,25,102,225,183,76,135,226,183,97,168,227,183,87,201,228,183,47,234,229,183,232,10,231,183,130,43,232,183,254,75,233,183,91,108,234,183,152,140,235,183,183,172,236,183,182,204,237,183,149,236,238,183,85,12,240,183,245,43,241,183,118,75,242,183,215,106,243,183,23,138,244,183,56,169,245,183,56,200,246,183,
24,231,247,183,215,5,249,183,117,36,250,183,243,66,251,183,80,97,252,183,141,127,253,183,168,157,254,183,161,187,255,183,189,108,0,184,153,251,0,184,99,138,1,184,29,25,2,184,198,167,2,184,94,54,3,184,230,196,3,184,92,83,4,184,192,225,4,184,20,112,5,184,87,254,5,184,136,140,6,184,168,26,7,184,182,168,7,184,179,54,8,184,159,196,8,184,121,82,9,184,65,224,9,184,247,109,10,184,156,251,10,184,47,137,11,184,176,22,12,184,31,164,12,184,124,49,13,184,200,190,13,184,1,76,14,184,39,217,14,184,60,102,15,184,
63,243,15,184,47,128,16,184,12,13,17,184,215,153,17,184,144,38,18,184,54,179,18,184,202,63,19,184,75,204,19,184,185,88,20,184,20,229,20,184,93,113,21,184,147,253,21,184,181,137,22,184,197,21,23,184,193,161,23,184,171,45,24,184,129,185,24,184,68,69,25,184,244,208,25,184,144,92,26,184,25,232,26,184,143,115,27,184,241,254,27,184,63,138,28,184,122,21,29,184,161,160,29,184,181,43,30,184,180,182,30,184,160,65,31,184,120,204,31,184,59,87,32,184,235,225,32,184,135,108,33,184,14,247,33,184,130,129,34,184,
225,11,35,184,44,150,35,184,98,32,36,184,132,170,36,184,146,52,37,184,139,190,37,184,111,72,38,184,63,210,38,184,250,91,39,184,160,229,39,184,50,111,40,184,174,248,40,184,22,130,41,184,105,11,42,184,167,148,42,184,207,29,43,184,227,166,43,184,225,47,44,184,202,184,44,184,158,65,45,184,92,202,45,184,5,83,46,184,153,219,46,184,23,100,47,184,127,236,47,184,210,116,48,184,15,253,48,184,54,133,49,184,71,13,50,184,67,149,50,184,41,29,51,184,248,164,51,184,178,44,52,184,86,180,52,184,227,59,53,184,91,195,
53,184,188,74,54,184,7,210,54,184,59,89,55,184,89,224,55,184,97,103,56,184,82,238,56,184,44,117,57,184,240,251,57,184,157,130,58,184,52,9,59,184,179,143,59,184,28,22,60,184,110,156,60,184,169,34,61,184,205,168,61,184,218,46,62,184,208,180,62,184,175,58,63,184,118,192,63,184,38,70,64,184,191,203,64,184,65,81,65,184,171,214,65,184,253,91,66,184,56,225,66,184,92,102,67,184,104,235,67,184,92,112,68,184,56,245,68,184,253,121,69,184,169,254,69,184,62,131,70,184,187,7,71,184,32,140,71,184,108,16,72,184,
161,148,72,184,189,24,73,184,194,156,73,184,173,32,74,184,129,164,74,184,60,40,75,184,223,171,75,184,105,47,76,184,219,178,76,184,52,54,77,184,117,185,77,184,156,60,78,184,171,191,78,184,161,66,79,184,127,197,79,184,67,72,80,184,239,202,80,184,129,77,81,184,250,207,81,184,91,82,82,184,162,212,82,184,207,86,83,184,228,216,83,184,223,90,84,184,193,220,84,184,137,94,85,184,56,224,85,184,206,97,86,184,73,227,86,184,172,100,87,184,244,229,87,184,35,103,88,184,56,232,88,184,51,105,89,184,20,234,89,184,
219,106,90,184,136,235,90,184,27,108,91,184,148,236,91,184,243,108,92,184,56,237,92,184,98,109,93,184,114,237,93,184,104,109,94,184,67,237,94,184,4,109,95,184,170,236,95,184,54,108,96,184,167,235,96,184,253,106,97,184,57,234,97,184,90,105,98,184,96,232,98,184,75,103,99,184,28,230,99,184,209,100,100,184,107,227,100,184,235,97,101,184,79,224,101,184,152,94,102,184,198,220,102,184,216,90,103,184,207,216,103,184,171,86,104,184,107,212,104,184,16,82,105,184,153,207,105,184,7,77,106,184,89,202,106,184,
144,71,107,184,170,196,107,184,169,65,108,184,141,190,108,184,84,59,109,184,255,183,109,184,142,52,110,184,2,177,110,184,89,45,111,184,148,169,111,184,179,37,112,184,182,161,112,184,156,29,113,184,102,153,113,184,20,21,114,184,166,144,114,184,26,12,115,184,115,135,115,184,175,2,116,184,206,125,116,184,208,248,116,184,182,115,117,184,127,238,117,184,43,105,118,184,187,227,118,184,45,94,119,184,131,216,119,184,187,82,120,184,215,204,120,184,213,70,121,184,182,192,121,184,122,58,122,184,33,180,122,184,
171,45,123,184,23,167,123,184,101,32,124,184,151,153,124,184,171,18,125,184,161,139,125,184,122,4,126,184,53,125,126,184,210,245,126,184,82,110,127,184,180,230,127,184,124,47,128,184,143,107,128,184,147,167,128,184,136,227,128,184,110,31,129,184,70,91,129,184,14,151,129,184,199,210,129,184,112,14,130,184,11,74,130,184,151,133,130,184,19,193,130,184,129,252,130,184,223,55,131,184,45,115,131,184,109,174,131,184,157,233,131,184,190,36,132,184,208,95,132,184,210,154,132,184,197,213,132,184,168,16,133,
184,124,75,133,184,65,134,133,184,246,192,133,184,156,251,133,184,50,54,134,184,184,112,134,184,47,171,134,184,151,229,134,184,238,31,135,184,55,90,135,184,111,148,135,184,152,206,135,184,177,8,136,184,186,66,136,184,180,124,136,184,158,182,136,184,120,240,136,184,66,42,137,184,252,99,137,184,167,157,137,184,66,215,137,184,204,16,138,184,71,74,138,184,178,131,138,184,13,189,138,184,88,246,138,184,147,47,139,184,189,104,139,184,216,161,139,184,227,218,139,184,221,19,140,184,200,76,140,184,162,133,
140,184,108,190,140,184,38,247,140,184,207,47,141,184,105,104,141,184,242,160,141,184,107,217,141,184,211,17,142,184,43,74,142,184,115,130,142,184,171,186,142,184,210,242,142,184,232,42,143,184,238,98,143,184,228,154,143,184,201,210,143,184,158,10,144,184,98,66,144,184,22,122,144,184,185,177,144,184,75,233,144,184,205,32,145,184,62,88,145,184,159,143,145,184,239,198,145,184,46,254,145,184,92,53,146,184,122,108,146,184,135,163,146,184,131,218,146,184,110,17,147,184,73,72,147,184,18,127,147,184,203,
181,147,184,115,236,147,184,10,35,148,184,144,89,148,184,4,144,148,184,104,198,148,184,187,252,148,184,253,50,149,184,46,105,149,184,78,159,149,184,93,213,149,184,91,11,150,184,71,65,150,184,34,119,150,184,237,172,150,184,166,226,150,184,77,24,151,184,228,77,151,184,105,131,151,184,221,184,151,184,64,238,151,184,145,35,152,184,209,88,152,184,0,142,152,184,29,195,152,184,41,248,152,184,35,45,153,184,12,98,153,184,228,150,153,184,170,203,153,184,94,0,154,184,1,53,154,184,147,105,154,184,19,158,154,
184,129,210,154,184,222,6,155,184,41,59,155,184,98,111,155,184,138,163,155,184,160,215,155,184,164,11,156,184,151,63,156,184,120,115,156,184,71,167,156,184,4,219,156,184,176,14,157,184,73,66,157,184,209,117,157,184,71,169,157,184,171,220,157,184,253,15,158,184,62,67,158,184,108,118,158,184,136,169,158,184,146,220,158,184,139,15,159,184,113,66,159,184,69,117,159,184,7,168,159,184,183,218,159,184,85,13,160,184,225,63,160,184,91,114,160,184,194,164,160,184,24,215,160,184,91,9,161,184,139,59,161,184,
170,109,161,184,182,159,161,184,177,209,161,184,152,3,162,184,110,53,162,184,49,103,162,184,226,152,162,184,128,202,162,184,12,252,162,184,134,45,163,184,237,94,163,184,65,144,163,184,132,193,163,184,179,242,163,184,209,35,164,184,219,84,164,184,211,133,164,184,185,182,164,184,140,231,164,184,76,24,165,184,250,72,165,184,149,121,165,184,29,170,165,184,147,218,165,184,246,10,166,184,70,59,166,184,132,107,166,184,175,155,166,184,199,203,166,184,204,251,166,184,191,43,167,184,158,91,167,184,107,139,
167,184,37,187,167,184,204,234,167,184,96,26,168,184,225,73,168,184,79,121,168,184,171,168,168,184,243,215,168,184,40,7,169,184,75,54,169,184,90,101,169,184,86,148,169,184,63,195,169,184,21,242,169,184,216,32,170,184,136,79,170,184,37,126,170,184,174,172,170,184,37,219,170,184,136,9,171,184,216,55,171,184,21,102,171,184,62,148,171,184,85,194,171,184,88,240,171,184,71,30,172,184,36,76,172,184,237,121,172,184,162,167,172,184,69,213,172,184,212,2,173,184,79,48,173,184,183,93,173,184,12,139,173,184,77,
184,173,184,123,229,173,184,149,18,174,184,156,63,174,184,143,108,174,184,111,153,174,184,59,198,174,184,244,242,174,184,153,31,175,184,42,76,175,184,168,120,175,184,18,165,175,184,104,209,175,184,171,253,175,184,218,41,176,184,246,85,176,184,253,129,176,184,241,173,176,184,209,217,176,184,158,5,177,184,86,49,177,184,251,92,177,184,140,136,177,184,9,180,177,184,115,223,177,184,200,10,178,184,9,54,178,184,55,97,178,184,81,140,178,184,86,183,178,184,72,226,178,184,38,13,179,184,240,55,179,184,166,98,
179,184,72,141,179,184,213,183,179,184,79,226,179,184,181,12,180,184,6,55,180,184,68,97,180,184,109,139,180,184,130,181,180,184,131,223,180,184,112,9,181,184,73,51,181,184,13,93,181,184,190,134,181,184,90,176,181,184,226,217,181,184,85,3,182,184,181,44,182,184,0,86,182,184,54,127,182,184,89,168,182,184,103,209,182,184,96,250,182,184,70,35,183,184,23,76,183,184,211,116,183,184,124,157,183,184,15,198,183,184,143,238,183,184,249,22,184,184,80,63,184,184,146,103,184,184,191,143,184,184,216,183,184,184,
220,223,184,184,204,7,185,184,167,47,185,184,110,87,185,184,32,127,185,184,189,166,185,184,70,206,185,184,186,245,185,184,26,29,186,184,101,68,186,184,155,107,186,184,188,146,186,184,201,185,186,184,193,224,186,184,165,7,187,184,115,46,187,184,45,85,187,184,210,123,187,184,98,162,187,184,222,200,187,184,68,239,187,184,150,21,188,184,211,59,188,184,251,97,188,184,14,136,188,184,12,174,188,184,245,211,188,184,202,249,188,184,137,31,189,184,52,69,189,184,201,106,189,184,74,144,189,184,182,181,189,184,
12,219,189,184,78,0,190,184,122,37,190,184,146,74,190,184,148,111,190,184,129,148,190,184,90,185,190,184,29,222,190,184,203,2,191,184,100,39,191,184,231,75,191,184,86,112,191,184,175,148,191,184,244,184,191,184,35,221,191,184,60,1,192,184,65,37,192,184,48,73,192,184,11,109,192,184,207,144,192,184,127,180,192,184,25,216,192,184,158,251,192,184,14,31,193,184,104,66,193,184,173,101,193,184,221,136,193,184,247,171,193,184,252,206,193,184,235,241,193,184,198,20,194,184,138,55,194,184,57,90,194,184,211,
124,194,184,88,159,194,184,198,193,194,184,32,228,194,184,100,6,195,184,146,40,195,184,171,74,195,184,174,108,195,184,156,142,195,184,116,176,195,184,55,210,195,184,228,243,195,184,124,21,196,184,254,54,196,184,106,88,196,184,192,121,196,184,1,155,196,184,45,188,196,184,66,221,196,184,66,254,196,184,45,31,197,184,1,64,197,184,192,96,197,184,105,129,197,184,253,161,197,184,123,194,197,184,227,226,197,184,53,3,198,184,113,35,198,184,152,67,198,184,168,99,198,184,163,131,198,184,136,163,198,184,88,195,
198,184,17,227,198,184,181,2,199,184,66,34,199,184,186,65,199,184,28,97,199,184,104,128,199,184,158,159,199,184,190,190,199,184,201,221,199,184,189,252,199,184,155,27,200,184,99,58,200,184,22,89,200,184,178,119,200,184,56,150,200,184,169,180,200,184,3,211,200,184,71,241,200,184,117,15,201,184,141,45,201,184,143,75,201,184,123,105,201,184,81,135,201,184,17,165,201,184,187,194,201,184,78,224,201,184,203,253,201,184,51,27,202,184,132,56,202,184,191,85,202,184,227,114,202,184,242,143,202,184,234,172,
202,184,204,201,202,184,152,230,202,184,78,3,203,184,237,31,203,184,118,60,203,184,233,88,203,184,70,117,203,184,140,145,203,184,189,173,203,184,214,201,203,184,218,229,203,184,199,1,204,184,158,29,204,184,94,57,204,184,8,85,204,184,156,112,204,184,26,140,204,184,129,167,204,184,209,194,204,184,11,222,204,184,47,249,204,184,61,20,205,184,52,47,205,184,20,74,205,184,222,100,205,184,146,127,205,184,47,154,205,184,182,180,205,184,38,207,205,184,128,233,205,184,195,3,206,184,240,29,206,184,6,56,206,184,
6,82,206,184,239,107,206,184,194,133,206,184,126,159,206,184,36,185,206,184,179,210,206,184,43,236,206,184,141,5,207,184,216,30,207,184,13,56,207,184,43,81,207,184,50,106,207,184,35,131,207,184,253,155,207,184,192,180,207,184,109,205,207,184,3,230,207,184,131,254,207,184,235,22,208,184,62,47,208,184,121,71,208,184,158,95,208,184,172,119,208,184,163,143,208,184,131,167,208,184,77,191,208,184,0,215,208,184,156,238,208,184,34,6,209,184,145,29,209,184,233,52,209,184,42,76,209,184,84,99,209,184,104,122,
209,184,101,145,209,184,75,168,209,184,26,191,209,184,210,213,209,184,116,236,209,184,254,2,210,184,114,25,210,184,207,47,210,184,21,70,210,184,68,92,210,184,92,114,210,184,94,136,210,184,72,158,210,184,28,180,210,184,217,201,210,184,126,223,210,184,13,245,210,184,133,10,211,184,230,31,211,184,48,53,211,184,99,74,211,184,127,95,211,184,132,116,211,184,115,137,211,184,74,158,211,184,10,179,211,184,179,199,211,184,69,220,211,184,192,240,211,184,37,5,212,184,114,25,212,184,168,45,212,184,199,65,212,
184,207,85,212,184,192,105,212,184,154,125,212,184,93,145,212,184,8,165,212,184,157,184,212,184,27,204,212,184,129,223,212,184,209,242,212,184,9,6,213,184,43,25,213,184,53,44,213,184,40,63,213,184,4,82,213,184,200,100,213,184,118,119,213,184,13,138,213,184,140,156,213,184,244,174,213,184,69,193,213,184,127,211,213,184,162,229,213,184,173,247,213,184,162,9,214,184,127,27,214,184,69,45,214,184,244,62,214,184,139,80,214,184,12,98,214,184,117,115,214,184,199,132,214,184,2,150,214,184,37,167,214,184,50,
184,214,184,39,201,214,184,4,218,214,184,203,234,214,184,122,251,214,184,18,12,215,184,147,28,215,184,253,44,215,184,79,61,215,184,138,77,215,184,173,93,215,184,186,109,215,184,175,125,215,184,141,141,215,184,83,157,215,184,2,173,215,184,154,188,215,184,27,204,215,184,132,219,215,184,214,234,215,184,17,250,215,184,52,9,216,184,64,24,216,184,52,39,216,184,18,54,216,184,215,68,216,184,134,83,216,184,29,98,216,184,157,112,216,184,5,127,216,184,86,141,216,184,144,155,216,184,178,169,216,184,189,183,216,
184,177,197,216,184,141,211,216,184,82,225,216,184,255,238,216,184,149,252,216,184,19,10,217,184,123,23,217,184,202,36,217,184,3,50,217,184,35,63,217,184,45,76,217,184,31,89,217,184,250,101,217,184,189,114,217,184,104,127,217,184,253,139,217,184,122,152,217,184,223,164,217,184,45,177,217,184,99,189,217,184,130,201,217,184,138,213,217,184,122,225,217,184,83,237,217,184,20,249,217,184,189,4,218,184,80,16,218,184,202,27,218,184,46,39,218,184,121,50,218,184,174,61,218,184,203,72,218,184,208,83,218,184,
190,94,218,184,148,105,218,184,83,116,218,184,250,126,218,184,138,137,218,184,2,148,218,184,99,158,218,184,172,168,218,184,222,178,218,184,248,188,218,184,251,198,218,184,230,208,218,184,186,218,218,184,118,228,218,184,27,238,218,184,168,247,218,184,29,1,219,184,123,10,219,184,194,19,219,184,241,28,219,184,8,38,219,184,8,47,219,184,241,55,219,184,193,64,219,184,123,73,219,184,28,82,219,184,167,90,219,184,25,99,219,184,116,107,219,184,184,115,219,184,228,123,219,184,248,131,219,184,245,139,219,184,
218,147,219,184,168,155,219,184,94,163,219,184,253,170,219,184,132,178,219,184,243,185,219,184,75,193,219,184,139,200,219,184,180,207,219,184,197,214,219,184,191,221,219,184,161,228,219,184,107,235,219,184,30,242,219,184,186,248,219,184,61,255,219,184,169,5,220,184,254,11,220,184,59,18,220,184,96,24,220,184,110,30,220,184,101,36,220,184,67,42,220,184,10,48,220,184,186,53,220,184,82,59,220,184,210,64,220,184,59,70,220,184,140,75,220,184,198,80,220,184,232,85,220,184,242,90,220,184,229,95,220,184,193,
100,220,184,132,105,220,184,48,110,220,184,197,114,220,184,66,119,220,184,167,123,220,184,245,127,220,184,43,132,220,184,74,136,220,184,81,140,220,184,64,144,220,184,24,148,220,184,217,151,220,184,129,155,220,184,18,159,220,184,140,162,220,184,238,165,220,184,56,169,220,184,107,172,220,184,134,175,220,184,138,178,220,184,118,181,220,184,75,184,220,184,8,187,220,184,173,189,220,184,59,192,220,184,177,194,220,184,16,197,220,184,87,199,220,184,134,201,220,184,158,203,220,184,159,205,220,184,136,207,
220,184,89,209,220,184,18,211,220,184,181,212,220,184,63,214,220,184,178,215,220,184,14,217,220,184,81,218,220,184,126,219,220,184,147,220,220,184,144,221,220,184,118,222,220,184,68,223,220,184,250,223,220,184,153,224,220,184,33,225,220,184,145,225,220,184,233,225,220,184,42,226,220,184,83,226,220,184,101,226,220,184,95,226,220,184,66,226,220,184,13,226,220,184,193,225,220,184,93,225,220,184,226,224,220,184,79,224,220,184,164,223,220,184,227,222,220,184,9,222,220,184,24,221,220,184,16,220,220,184,
240,218,220,184,184,217,220,184,105,216,220,184,3,215,220,184,133,213,220,184,239,211,220,184,66,210,220,184,126,208,220,184,162,206,220,184,175,204,220,184,164,202,220,184,129,200,220,184,71,198,220,184,246,195,220,184,141,193,220,184,13,191,220,184,117,188,220,184],"i8",4,y.a+952320);
Q([198,185,220,184,0,183,220,184,33,180,220,184,44,177,220,184,31,174,220,184,250,170,220,184,191,167,220,184,107,164,220,184,1,161,220,184,126,157,220,184,229,153,220,184,52,150,220,184,107,146,220,184,139,142,220,184,148,138,220,184,133,134,220,184,95,130,220,184,34,126,220,184,205,121,220,184,97,117,220,184,221,112,220,184,66,108,220,184,143,103,220,184,197,98,220,184,228,93,220,184,236,88,220,184,220,83,220,184,180,78,220,184,118,73,220,184,32,68,220,184,178,62,220,184,45,57,220,184,145,51,220,
184,222,45,220,184,19,40,220,184,49,34,220,184,56,28,220,184,39,22,220,184,255,15,220,184,191,9,220,184,105,3,220,184,251,252,219,184,118,246,219,184,217,239,219,184,37,233,219,184,90,226,219,184,119,219,219,184,126,212,219,184,109,205,219,184,69,198,219,184,5,191,219,184,174,183,219,184,64,176,219,184,187,168,219,184,31,161,219,184,107,153,219,184,160,145,219,184,190,137,219,184,196,129,219,184,180,121,219,184,140,113,219,184,77,105,219,184,247,96,219,184,137,88,219,184,5,80,219,184,105,71,219,184,
182,62,219,184,236,53,219,184,10,45,219,184,18,36,219,184,2,27,219,184,219,17,219,184,158,8,219,184,72,255,218,184,220,245,218,184,89,236,218,184,191,226,218,184,13,217,218,184,68,207,218,184,101,197,218,184,110,187,218,184,96,177,218,184,59,167,218,184,255,156,218,184,172,146,218,184,65,136,218,184,192,125,218,184,40,115,218,184,120,104,218,184,178,93,218,184,212,82,218,184,224,71,218,184,212,60,218,184,178,49,218,184,120,38,218,184,40,27,218,184,192,15,218,184,66,4,218,184,172,248,217,184,0,237,
217,184,60,225,217,184,98,213,217,184,113,201,217,184,104,189,217,184,73,177,217,184,19,165,217,184,198,152,217,184,98,140,217,184,231,127,217,184,85,115,217,184,173,102,217,184,237,89,217,184,22,77,217,184,41,64,217,184,37,51,217,184,10,38,217,184,216,24,217,184,143,11,217,184,47,254,216,184,185,240,216,184,44,227,216,184,136,213,216,184,205,199,216,184,251,185,216,184,18,172,216,184,19,158,216,184,253,143,216,184,208,129,216,184,141,115,216,184,50,101,216,184,193,86,216,184,57,72,216,184,155,57,
216,184,229,42,216,184,25,28,216,184,55,13,216,184,61,254,215,184,45,239,215,184,6,224,215,184,201,208,215,184,117,193,215,184,10,178,215,184,136,162,215,184,240,146,215,184,66,131,215,184,124,115,215,184,160,99,215,184,174,83,215,184,165,67,215,184,133,51,215,184,79,35,215,184,2,19,215,184,158,2,215,184,36,242,214,184,148,225,214,184,237,208,214,184,47,192,214,184,91,175,214,184,112,158,214,184,111,141,214,184,87,124,214,184,41,107,214,184,229,89,214,184,137,72,214,184,24,55,214,184,144,37,214,184,
241,19,214,184,61,2,214,184,113,240,213,184,144,222,213,184,151,204,213,184,137,186,213,184,100,168,213,184,41,150,213,184,215,131,213,184,111,113,213,184,241,94,213,184,92,76,213,184,177,57,213,184,240,38,213,184,24,20,213,184,43,1,213,184,38,238,212,184,12,219,212,184,219,199,212,184,148,180,212,184,55,161,212,184,196,141,212,184,58,122,212,184,154,102,212,184,228,82,212,184,23,63,212,184,53,43,212,184,60,23,212,184,45,3,212,184,8,239,211,184,205,218,211,184,124,198,211,184,20,178,211,184,151,157,
211,184,3,137,211,184,90,116,211,184,154,95,211,184,196,74,211,184,216,53,211,184,214,32,211,184,190,11,211,184,144,246,210,184,76,225,210,184,241,203,210,184,129,182,210,184,251,160,210,184,95,139,210,184,173,117,210,184,229,95,210,184,7,74,210,184,19,52,210,184,9,30,210,184,233,7,210,184,180,241,209,184,104,219,209,184,7,197,209,184,144,174,209,184,2,152,209,184,95,129,209,184,167,106,209,184,216,83,209,184,243,60,209,184,249,37,209,184,233,14,209,184,195,247,208,184,136,224,208,184,54,201,208,
184,207,177,208,184,82,154,208,184,192,130,208,184,24,107,208,184,90,83,208,184,134,59,208,184,157,35,208,184,158,11,208,184,137,243,207,184,95,219,207,184,31,195,207,184,201,170,207,184,94,146,207,184,222,121,207,184,71,97,207,184,155,72,207,184,218,47,207,184,3,23,207,184,23,254,206,184,21,229,206,184,253,203,206,184,208,178,206,184,142,153,206,184,54,128,206,184,200,102,206,184,69,77,206,184,173,51,206,184,255,25,206,184,60,0,206,184,100,230,205,184,118,204,205,184,115,178,205,184,90,152,205,184,
44,126,205,184,233,99,205,184,144,73,205,184,34,47,205,184,159,20,205,184,6,250,204,184,89,223,204,184,150,196,204,184,189,169,204,184,208,142,204,184,205,115,204,184,181,88,204,184,136,61,204,184,70,34,204,184,239,6,204,184,130,235,203,184,0,208,203,184,105,180,203,184,189,152,203,184,252,124,203,184,38,97,203,184,59,69,203,184,59,41,203,184,37,13,203,184,251,240,202,184,188,212,202,184,103,184,202,184,254,155,202,184,128,127,202,184,236,98,202,184,68,70,202,184,135,41,202,184,181,12,202,184,206,
239,201,184,210,210,201,184,193,181,201,184,155,152,201,184,97,123,201,184,17,94,201,184,173,64,201,184,52,35,201,184,166,5,201,184,4,232,200,184,77,202,200,184,128,172,200,184,160,142,200,184,170,112,200,184,160,82,200,184,129,52,200,184,77,22,200,184,5,248,199,184,168,217,199,184,54,187,199,184,176,156,199,184,21,126,199,184,102,95,199,184,162,64,199,184,201,33,199,184,220,2,199,184,218,227,198,184,196,196,198,184,153,165,198,184,90,134,198,184,6,103,198,184,158,71,198,184,33,40,198,184,144,8,198,
184,235,232,197,184,49,201,197,184,99,169,197,184,128,137,197,184,137,105,197,184,126,73,197,184,94,41,197,184,42,9,197,184,225,232,196,184,133,200,196,184,20,168,196,184,143,135,196,184,245,102,196,184,72,70,196,184,134,37,196,184,176,4,196,184,198,227,195,184,199,194,195,184,181,161,195,184,142,128,195,184,83,95,195,184,5,62,195,184,162,28,195,184,43,251,194,184,160,217,194,184,0,184,194,184,77,150,194,184,134,116,194,184,171,82,194,184,188,48,194,184,185,14,194,184,162,236,193,184,119,202,193,
184,56,168,193,184,229,133,193,184,127,99,193,184,4,65,193,184,118,30,193,184,211,251,192,184,29,217,192,184,84,182,192,184,118,147,192,184,133,112,192,184,128,77,192,184,103,42,192,184,58,7,192,184,250,227,191,184,166,192,191,184,62,157,191,184,195,121,191,184,52,86,191,184,145,50,191,184,219,14,191,184,17,235,190,184,52,199,190,184,67,163,190,184,63,127,190,184,39,91,190,184,251,54,190,184,188,18,190,184,106,238,189,184,4,202,189,184,139,165,189,184,254,128,189,184,94,92,189,184,170,55,189,184,
227,18,189,184,9,238,188,184,28,201,188,184,27,164,188,184,6,127,188,184,223,89,188,184,164,52,188,184,86,15,188,184,245,233,187,184,128,196,187,184,249,158,187,184,94,121,187,184,176,83,187,184,238,45,187,184,26,8,187,184,51,226,186,184,56,188,186,184,42,150,186,184,10,112,186,184,214,73,186,184,143,35,186,184,53,253,185,184,201,214,185,184,73,176,185,184,182,137,185,184,17,99,185,184,88,60,185,184,141,21,185,184,174,238,184,184,189,199,184,184,185,160,184,184,162,121,184,184,120,82,184,184,60,43,
184,184,237,3,184,184,138,220,183,184,22,181,183,184,142,141,183,184,244,101,183,184,71,62,183,184,135,22,183,184,181,238,182,184,208,198,182,184,217,158,182,184,207,118,182,184,178,78,182,184,131,38,182,184,65,254,181,184,237,213,181,184,134,173,181,184,12,133,181,184,129,92,181,184,226,51,181,184,50,11,181,184,111,226,180,184,153,185,180,184,177,144,180,184,183,103,180,184,170,62,180,184,139,21,180,184,90,236,179,184,23,195,179,184,193,153,179,184,89,112,179,184,223,70,179,184,82,29,179,184,180,
243,178,184,3,202,178,184,64,160,178,184,107,118,178,184,132,76,178,184,138,34,178,184,127,248,177,184,98,206,177,184,50,164,177,184,241,121,177,184,157,79,177,184,56,37,177,184,192,250,176,184,55,208,176,184,155,165,176,184,238,122,176,184,47,80,176,184,94,37,176,184,123,250,175,184,135,207,175,184,128,164,175,184,104,121,175,184,62,78,175,184,2,35,175,184,180,247,174,184,85,204,174,184,228,160,174,184,98,117,174,184,206,73,174,184,40,30,174,184,112,242,173,184,167,198,173,184,204,154,173,184,224,
110,173,184,226,66,173,184,211,22,173,184,178,234,172,184,128,190,172,184,60,146,172,184,231,101,172,184,129,57,172,184,9,13,172,184,127,224,171,184,229,179,171,184,57,135,171,184,123,90,171,184,173,45,171,184,205,0,171,184,220,211,170,184,217,166,170,184,198,121,170,184,161,76,170,184,107,31,170,184,36,242,169,184,203,196,169,184,98,151,169,184,232,105,169,184,92,60,169,184,191,14,169,184,18,225,168,184,83,179,168,184,131,133,168,184,163,87,168,184,177,41,168,184,175,251,167,184,155,205,167,184,
119,159,167,184,66,113,167,184,252,66,167,184,165,20,167,184,61,230,166,184,197,183,166,184,60,137,166,184,162,90,166,184,247,43,166,184,60,253,165,184,112,206,165,184,147,159,165,184,166,112,165,184,168,65,165,184,153,18,165,184,122,227,164,184,74,180,164,184,10,133,164,184,185,85,164,184,88,38,164,184,230,246,163,184,100,199,163,184,209,151,163,184,46,104,163,184,123,56,163,184,183,8,163,184,227,216,162,184,255,168,162,184,10,121,162,184,5,73,162,184,240,24,162,184,202,232,161,184,148,184,161,184,
78,136,161,184,248,87,161,184,146,39,161,184,28,247,160,184,149,198,160,184,255,149,160,184,88,101,160,184,161,52,160,184,219,3,160,184,4,211,159,184,29,162,159,184,39,113,159,184,32,64,159,184,9,15,159,184,227,221,158,184,173,172,158,184,103,123,158,184,17,74,158,184,171,24,158,184,53,231,157,184,176,181,157,184,27,132,157,184,118,82,157,184,194,32,157,184,254,238,156,184,42,189,156,184,71,139,156,184,83,89,156,184,81,39,156,184,63,245,155,184,29,195,155,184,236,144,155,184,171,94,155,184,91,44,
155,184,251,249,154,184,140,199,154,184,14,149,154,184,128,98,154,184,227,47,154,184,54,253,153,184,122,202,153,184,175,151,153,184,212,100,153,184,235,49,153,184,242,254,152,184,234,203,152,184,210,152,152,184,172,101,152,184,118,50,152,184,49,255,151,184,221,203,151,184,123,152,151,184,9,101,151,184,136,49,151,184,248,253,150,184,89,202,150,184,171,150,150,184,238,98,150,184,34,47,150,184,71,251,149,184,94,199,149,184,101,147,149,184,94,95,149,184,72,43,149,184,35,247,148,184,240,194,148,184,174,
142,148,184,93,90,148,184,253,37,148,184,143,241,147,184,18,189,147,184,134,136,147,184,236,83,147,184,67,31,147,184,140,234,146,184,198,181,146,184,242,128,146,184,15,76,146,184,30,23,146,184,31,226,145,184,17,173,145,184,244,119,145,184,201,66,145,184,144,13,145,184,73,216,144,184,243,162,144,184,143,109,144,184,29,56,144,184,156,2,144,184,14,205,143,184,113,151,143,184,198,97,143,184,13,44,143,184,70,246,142,184,113,192,142,184,141,138,142,184,156,84,142,184,157,30,142,184,143,232,141,184,116,
178,141,184,75,124,141,184,20,70,141,184,207,15,141,184,124,217,140,184,27,163,140,184,173,108,140,184,48,54,140,184,166,255,139,184,14,201,139,184,105,146,139,184,182,91,139,184,245,36,139,184,38,238,138,184,74,183,138,184,96,128,138,184,105,73,138,184,100,18,138,184,81,219,137,184,49,164,137,184,4,109,137,184,201,53,137,184,129,254,136,184,43,199,136,184,200,143,136,184,87,88,136,184,217,32,136,184,78,233,135,184,182,177,135,184,16,122,135,184,93,66,135,184,157,10,135,184,208,210,134,184,245,154,
134,184,14,99,134,184,25,43,134,184,23,243,133,184,8,187,133,184,236,130,133,184,195,74,133,184,141,18,133,184,74,218,132,184,250,161,132,184,157,105,132,184,52,49,132,184,189,248,131,184,58,192,131,184,169,135,131,184,12,79,131,184,98,22,131,184,172,221,130,184,233,164,130,184,25,108,130,184,60,51,130,184,82,250,129,184,93,193,129,184,90,136,129,184,75,79,129,184,47,22,129,184,7,221,128,184,210,163,128,184,145,106,128,184,67,49,128,184,210,239,127,184,6,125,127,184,32,10,127,184,33,151,126,184,10,
36,126,184,219,176,125,184,146,61,125,184,50,202,124,184,184,86,124,184,39,227,123,184,125,111,123,184,187,251,122,184,224,135,122,184,237,19,122,184,227,159,121,184,192,43,121,184,132,183,120,184,49,67,120,184,198,206,119,184,68,90,119,184,169,229,118,184,246,112,118,184,44,252,117,184,74,135,117,184,80,18,117,184,63,157,116,184,22,40,116,184,214,178,115,184,126,61,115,184,15,200,114,184,137,82,114,184,235,220,113,184,54,103,113,184,106,241,112,184,134,123,112,184,140,5,112,184,123,143,111,184,82,
25,111,184,19,163,110,184,188,44,110,184,79,182,109,184,203,63,109,184,49,201,108,184,128,82,108,184,184,219,107,184,217,100,107,184,228,237,106,184,217,118,106,184,183,255,105,184,126,136,105,184,48,17,105,184,203,153,104,184,80,34,104,184,190,170,103,184,23,51,103,184,90,187,102,184,134,67,102,184,157,203,101,184,157,83,101,184,136,219,100,184,93,99,100,184,28,235,99,184,198,114,99,184,90,250,98,184,216,129,98,184,65,9,98,184,148,144,97,184,210,23,97,184,251,158,96,184,14,38,96,184,12,173,95,184,
244,51,95,184,200,186,94,184,134,65,94,184,47,200,93,184,195,78,93,184,67,213,92,184,173,91,92,184,2,226,91,184,67,104,91,184,111,238,90,184,134,116,90,184,136,250,89,184,118,128,89,184,80,6,89,184,21,140,88,184,197,17,88,184,97,151,87,184,233,28,87,184,92,162,86,184,187,39,86,184,6,173,85,184,61,50,85,184,96,183,84,184,111,60,84,184,105,193,83,184,80,70,83,184,35,203,82,184,226,79,82,184,142,212,81,184,37,89,81,184,170,221,80,184,26,98,80,184,119,230,79,184,192,106,79,184,246,238,78,184,25,115,78,
184,40,247,77,184,36,123,77,184,13,255,76,184,226,130,76,184,165,6,76,184,84,138,75,184,241,13,75,184,122,145,74,184,241,20,74,184,84,152,73,184,165,27,73,184,227,158,72,184,14,34,72,184,39,165,71,184,45,40,71,184,33,171,70,184,2,46,70,184,209,176,69,184,141,51,69,184,55,182,68,184,207,56,68,184,85,187,67,184,200,61,67,184,41,192,66,184,121,66,66,184,182,196,65,184,225,70,65,184,251,200,64,184,2,75,64,184,248,204,63,184,220,78,63,184,175,208,62,184,111,82,62,184,31,212,61,184,188,85,61,184,73,215,
60,184,195,88,60,184,45,218,59,184,133,91,59,184,204,220,58,184,2,94,58,184,39,223,57,184,58,96,57,184,61,225,56,184,46,98,56,184,15,227,55,184,223,99,55,184,158,228,54,184,76,101,54,184,234,229,53,184,119,102,53,184,243,230,52,184,95,103,52,184,186,231,51,184,5,104,51,184,63,232,50,184,106,104,50,184,132,232,49,184,141,104,49,184,135,232,48,184,112,104,48,184,74,232,47,184,19,104,47,184,205,231,46,184,119,103,46,184,16,231,45,184,155,102,45,184,21,230,44,184,128,101,44,184,219,228,43,184,38,100,
43,184,98,227,42,184,143,98,42,184,172,225,41,184,186,96,41,184,185,223,40,184,168,94,40,184,136,221,39,184,89,92,39,184,27,219,38,184,206,89,38,184,115,216,37,184,8,87,37,184,142,213,36,184,6,84,36,184,111,210,35,184,201,80,35,184,21,207,34,184,82,77,34,184,128,203,33,184,160,73,33,184,178,199,32,184,181,69,32,184,171,195,31,184,145,65,31,184,106,191,30,184,53,61,30,184,241,186,29,184,160,56,29,184,64,182,28,184,211,51,28,184,88,177,27,184,207,46,27,184,56,172,26,184,148,41,26,184,226,166,25,184,
34,36,25,184,85,161,24,184,123,30,24,184,147,155,23,184,158,24,23,184,155,149,22,184,140,18,22,184,111,143,21,184,69,12,21,184,14,137,20,184,201,5,20,184,120,130,19,184,27,255,18,184,176,123,18,184,56,248,17,184,180,116,17,184,35,241,16,184,133,109,16,184,219,233,15,184,37,102,15,184,98,226,14,184,146,94,14,184,182,218,13,184,206,86,13,184,218,210,12,184,218,78,12,184,205,202,11,184,181,70,11,184,144,194,10,184,95,62,10,184,35,186,9,184,219,53,9,184,135,177,8,184,39,45,8,184,187,168,7,184,68,36,7,
184,194,159,6,184,52,27,6,184,154,150,5,184,245,17,5,184,69,141,4,184,138,8,4,184,195,131,3,184,241,254,2,184,20,122,2,184,44,245,1,184,57,112,1,184,59,235,0,184,50,102,0,184,61,194,255,183,0,184,254,183,174,173,253,183,71,163,252,183,202,152,251,183,56,142,250,183,146,131,249,183,214,120,248,183,6,110,247,183,33,99,246,183,39,88,245,183,25,77,244,183,247,65,243,183,193,54,242,183,119,43,241,183,24,32,240,183,166,20,239,183,32,9,238,183,135,253,236,183,218,241,235,183,25,230,234,183,70,218,233,183,
95,206,232,183,101,194,231,183,88,182,230,183,57,170,229,183,7,158,228,183,194,145,227,183,106,133,226,183,1,121,225,183,133,108,224,183,247,95,223,183,86,83,222,183,164,70,221,183,225,57,220,183,11,45,219,183,36,32,218,183,43,19,217,183,34,6,216,183,6,249,214,183,218,235,213,183,157,222,212,183,79,209,211,183,240,195,210,183,128,182,209,183,0,169,208,183,112,155,207,183,207,141,206,183,30,128,205,183,93,114,204,183,140,100,203,183,170,86,202,183,186,72,201,183,185,58,200,183,169,44,199,183,138,30,
198,183,91,16,197,183,30,2,196,183,209,243,194,183,117,229,193,183,10,215,192,183,145,200,191,183,9,186,190,183,114,171,189,183,205,156,188,183,26,142,187,183,88,127,186,183,137,112,185,183,172,97,184,183,192,82,183,183,200,67,182,183,193,52,181,183,173,37,180,183,140,22,179,183,93,7,178,183,34,248,176,183,217,232,175,183,131,217,174,183,33,202,173,183,178,186,172,183,54,171,171,183,174,155,170,183,26,140,169,183,121,124,168,183,204,108,167,183,19,93,166,183,79,77,165,183,126,61,164,183,162,45,163,
183,187,29,162,183,200,13,161,183,201,253,159,183,192,237,158,183,171,221,157,183,140,205,156,183,97,189,155,183,44,173,154,183,236,156,153,183,162,140,152,183,77,124,151,183,238,107,150,183,133,91,149,183,18,75,148,183,149,58,147,183,14,42,146,183,125,25,145,183,227,8,144,183,63,248,142,183,146,231,141,183,219,214,140,183,28,198,139,183,83,181,138,183,130,164,137,183,168,147,136,183,197,130,135,183,217,113,134,183,229,96,133,183,233,79,132,183,229,62,131,183,216,45,130,183,195,28,129,183,167,11,
128,183,5,245,125,183,173,210,123,183,70,176,121,183,209,141,119,183,76,107,117,183,185,72,115,183,25,38,113,183,106,3,111,183,173,224,108,183,227,189,106,183,12,155,104,183,40,120,102,183,55,85,100,183,57,50,98,183,47,15,96,183,25,236,93,183,247,200,91,183,201,165,89,183,144,130,87,183,76,95,85,183,253,59,83,183,163,24,81,183,63,245,78,183,208,209,76,183,87,174,74,183,213,138,72,183,73,103,70,183,179,67,68,183,21,32,66,183,109,252,63,183,189,216,61,183,4,181,59,183,68,145,57,183,123,109,55,183,170,
73,53,183,210,37,51,183,243,1,49,183,12,222,46,183,31,186,44,183,43,150,42,183,49,114,40,183,48,78,38,183,42,42,36,183,30,6,34,183,13,226,31,183,246,189,29,183,218,153,27,183,185,117,25,183,148,81,23,183,107,45,21,183,61,9,19,183,12,229,16,183,215,192,14,183,158,156,12,183,99,120,10,183,36,84,8,183,227,47,6,183,159,11,4,183,89,231,1,183,33,134,255,182,141,61,251,182,246,244,246,182,93,172,242,182,193,99,238,182,35,27,234,182,131,210,229,182,227,137,225,182,67,65,221,182,162,248,216,182,2,176,212,
182,99,103,208,182,198,30,204,182,42,214,199,182,144,141,195,182,250,68,191,182,102,252,186,182,214,179,182,182,75,107,178,182,196,34,174,182,65,218,169,182,197,145,165,182,78,73,161,182,222,0,157,182,117,184,152,182,19,112,148,182,185,39,144,182,103,223,139,182,29,151,135,182,221,78,131,182,78,13,126,182,245,124,117,182,177,236,108,182,131,92,100,182,108,204,91,182,109,60,83,182,134,172,74,182,185,28,66,182,6,141,57,182,111,253,48,182,244,109,40,182,151,222,31,182,87,79,23,182,55,192,14,182,54,49,
6,182,173,68,251,181,50,39,234,181,251,9,217,181,12,237,199,181,102,208,182,181,11,180,165,181,252,151,148,181,60,124,131,181,152,193,100,181,92,139,66,181,201,85,32,181,192,65,252,180,77,217,183,180,128,228,102,180,124,50,188,179,111,188,42,51,127,116,51,52,111,27,158,52,20,123,226,52,149,108,19,53,211,154,53,53,65,200,87,53,221,244,121,53,80,16,142,53,197,37,159,53,203,58,176,53,96,79,193,53,130,99,210,53,47,119,227,53,102,138,244,53,147,206,2,54,181,87,11,54,154,224,19,54,64,105,28,54,166,241,
36,54,203,121,45,54,175,1,54,54,81,137,62,54,175,16,71,54,202,151,79,54,158,30,88,54,45,165,96,54,118,43,105,54,118,177,113,54,45,55,122,54,78,94,129,54,223,160,133,54,75,227,137,54,145,37,142,54,176,103,146,54,168,169,150,54,121,235,154,54,33,45,159,54,161,110,163,54,249,175,167,54,39,241,171,54,43,50,176,54,5,115,180,54,180,179,184,54,57,244,188,54,145,52,193,54,190,116,197,54,190,180,201,54,145,244,205,54,55,52,210,54,175,115,214,54,249,178,218,54,20,242,222,54,0,49,227,54,188,111,231,54,72,174,
235,54,164,236,239,54,207,42,244,54,200,104,248,54,144,166,252,54,19,114,0,55,196,144,2,55,91,175,4,55,217,205,6,55,61,236,8,55,135,10,11,55,182,40,13,55,202,70,15,55,195,100,17,55,162,130,19,55,100,160,21,55,12,190,23,55,151,219,25,55,6,249,27,55,89,22,30,55,144,51,32,55,170,80,34,55,167,109,36,55,134,138,38,55,73,167,40,55,237,195,42,55,116,224,44,55,221,252,46,55,40,25,49,55,84,53,51,55,97,81,53,55,79,109,55,55,30,137,57,55,206,164,59,55,94,192,61,55,207,219,63,55,31,247,65,55,79,18,68,55,94,45,
70,55,77,72,72,55,27,99,74,55,200,125,76,55,83,152,78,55,189,178,80,55,4,205,82,55,42,231,84,55,46,1,87,55,15,27,89,55,205,52,91,55,104,78,93,55,225,103,95,55,53,129,97,55,103,154,99,55,116,179,101,55,93,204,103,55,35,229,105,55,195,253,107,55,63,22,110,55,150,46,112,55,200,70,114,55,212,94,116,55,187,118,118,55,124,142,120,55,23,166,122,55,140,189,124,55,219,212,126,55,1,118,128,55,130,129,129,55,238,140,130,55,72,152,131,55,141,163,132,55,191,174,133,55,220,185,134,55,229,196,135,55,219,207,136,
55,187,218,137,55,136,229,138,55,64,240,139,55,227,250,140,55,113,5,142,55,235,15,143,55,80,26,144,55,159,36,145,55,217,46,146,55,254,56,147,55,14,67,148,55,8,77,149,55,236,86,150,55,187,96,151,55,116,106,152,55,23,116,153,55,164,125,154,55,26,135,155,55,122,144,156,55,196,153,157,55,248,162,158,55,21,172,159,55,27,181,160,55,10,190,161,55,226,198,162,55,163,207,163,55,77,216,164,55,224,224,165,55,92,233,166,55,192,241,167,55,12,250,168,55,65,2,170,55,94,10,171,55,99,18,172,55,80,26,173,55,36,34,
174,55,225,41,175,55,133,49,176,55,17,57,177,55,132,64,178,55,223,71,179,55,32,79,180,55,73,86,181,55,89,93,182,55,80,100,183,55,46,107,184,55,242,113,185,55,157,120,186,55,46,127,187,55,166,133,188,55,4,140,189,55,72,146,190,55,114,152,191,55,130,158,192,55,120,164,193,55,84,170,194,55,21,176,195,55,188,181,196,55,72,187,197,55,186,192,198,55,16,198,199,55,76,203,200,55,109,208,201,55,114,213,202,55,93,218,203,55,44,223,204,55,223,227,205,55,119,232,206,55,244,236,207,55,84,241,208,55,153,245,209,
55,194,249,210,55,207,253,211,55,191,1,213,55,147,5,214,55,75,9,215,55,230,12,216,55,101,16,217,55,199,19,218,55,12,23,219,55,52,26,220,55,63,29,221,55,46,32,222,55,254,34,223,55,178,37,224,55,72,40,225,55,192,42,226,55,27,45,227,55,88,47,228,55,119,49,229,55,120,51,230,55,91,53,231,55,32,55,232,55,198,56,233,55,79,58,234,55,184,59,235,55,3,61,236,55,48,62,237,55,61,63,238,55,44,64,239,55,251,64,240,55,172,65,241,55,61,66,242,55,175,66,243,55,1,67,244,55,52,67,245,55,71,67,246,55,58,67,247,55,14,
67,248,55,194,66,249,55,85,66,250,55,200,65,251,55,27,65,252,55,78,64,253,55,96,63,254,55,82,62,255,55,146,30,0,56,234,157,0,56,49,29,1,56,104,156,1,56,143,27,2,56,165,154,2,56,170,25,3,56,159,152,3,56,131,23,4,56,86,150,4,56,24,21,5,56,201,147,5,56,106,18,6,56,249,144,6,56,119,15,7,56,228,141,7,56,64,12,8,56,139,138,8,56,196,8,9,56,237,134,9,56,3,5,10,56,9,131,10,56,253,0,11,56,223,126,11,56,176,252,11,56,111,122,12,56,28,248,12,56,184,117,13,56,66,243,13,56,186,112,14,56,32,238,14,56,117,107,15,
56,183,232,15,56,231,101,16,56,6,227,16,56,18,96,17,56,12,221,17,56,243,89,18,56,201,214,18,56,140,83,19,56,60,208,19,56,219,76,20,56,102,201,20,56,224,69,21,56,70,194,21,56,154,62,22,56,219,186,22,56,10,55,23,56,38,179,23,56,47,47,24,56,37,171,24,56,8,39,25,56,216,162,25,56,149,30,26,56,63,154,26,56,214,21,27,56,90,145,27,56,202,12,28,56,39,136,28,56,113,3,29,56,167,126,29,56,202,249,29,56,218,116,30,56,214,239,30,56,190,106,31,56,147,229,31,56,84,96,32,56,1,219,32,56,155,85,33,56,32,208,33,56,146,
74,34,56,240,196,34,56,58,63,35,56,112,185,35,56,146,51,36,56,159,173,36,56,153,39,37,56,126,161,37,56,79,27,38,56,12,149,38,56,180,14,39,56,72,136,39,56,199,1,40,56,50,123,40,56,137,244,40,56,202,109,41,56,247,230,41,56,16,96,42,56,19,217,42,56,2,82,43,56,220,202,43,56,161,67,44,56,81,188,44,56,236,52,45,56,114,173,45,56,227,37,46,56,62,158,46,56,133,22,47,56,182,142,47,56,210,6,48,56,217,126,48,56,202,246,48,56,166,110,49,56,108,230,49,56,29,94,50,56,184,213,50,56,61,77,51,56,173,196,51,56,7,60,
52,56,76,179,52,56,122,42,53,56,147,161,53,56,150,24,54,56,130,143,54,56,89,6,55,56,26,125,55,56,196,243,55,56,89,106,56,56,215,224,56,56,63,87,57,56,145,205,57,56,204,67,58,56,241,185,58,56,255,47,59,56,247,165,59,56,217,27,60,56,164,145,60,56,88,7,61,56,245,124,61,56,124,242,61,56,236,103,62,56,70,221,62,56,136,82,63,56,179,199,63,56,200,60,64,56,197,177,64,56,172,38,65,56,123,155,65,56,51,16,66,56,212,132,66,56,94,249,66,56,209,109,67,56,44,226,67,56,112,86,68,56,156,202,68,56,177,62,69,56,174,
178,69,56,148,38,70,56,98,154,70,56,25,14,71,56,183,129,71,56,62,245,71,56,174,104,72,56,5,220,72,56,69,79,73,56,108,194,73,56,124,53,74,56,115,168,74,56,83,27,75,56,26,142,75,56,202,0,76,56,97,115,76,56,223,229,76,56,70,88,77,56,148,202,77,56,202,60,78,56,231,174,78,56,236,32,79,56,216,146,79,56,172,4,80,56,103,118,80,56,9,232,80,56,147,89,81,56,4,203,81,56,92,60,82,56,156,173,82,56,194,30,83,56,208,143,83,56,196,0,84,56,160,113,84,56,98,226,84,56,11,83,85,56,155,195,85,56,18,52,86,56,112,164,86,
56,181,20,87,56,224,132,87,56,241,244,87,56,234,100,88,56,200,212,88,56,142,68,89,56,57,180,89,56,204,35,90,56,68,147,90,56,163,2,91,56,232,113,91,56,19,225,91,56,37,80,92,56,28,191,92,56,250,45,93,56,189,156,93,56,103,11,94,56,247,121,94,56,108,232,94,56,200,86,95,56,9,197,95,56,48,51,96,56,61,161,96,56,47,15,97,56,7,125,97,56,197,234,97,56,104,88,98,56,241,197,98,56,96,51,99,56,179,160,99,56,236,13,100,56,11,123,100,56,15,232,100,56,248,84,101,56,198,193,101,56,121,46,102,56,18,155,102,56,143,7,
103,56,242,115,103,56,58,224,103,56,102,76,104,56,120,184,104,56,110,36,105,56,73,144,105,56,9,252,105,56,174,103,106,56,56,211,106,56,166,62,107,56,249,169,107,56,48,21,108,56,76,128,108,56,76,235,108,56,49,86,109,56,250,192,109,56,168,43,110,56,58,150,110,56,176,0,111,56,10,107,111,56,73,213,111,56,108,63,112,56,115,169,112,56,94,19,113,56,45,125,113,56,223,230,113,56,118,80,114,56,241,185,114,56,80,35,115,56,146,140,115,56,185,245,115,56,195,94,116,56,176,199,116,56,130,48,117,56,55,153,117,56,
207,1,118,56,76,106,118,56,171,210,118,56,238,58,119,56,21,163,119,56,30,11,120,56,12,115,120,56,220,218,120,56,144,66,121,56,39,170,121,56,161,17,122,56,254,120,122,56,62,224,122,56,97,71,123,56,104,174,123,56,81,21,124,56,29,124,124,56,204,226,124,56,94,73,125,56,211,175,125,56,42,22,126,56,100,124,126,56,129,226,126,56,129,72,127,56,99,174,127,56,20,10,128,56,231,60,128,56,172,111,128,56,98,162,128,56,10,213,128,56,162,7,129,56,44,58,129,56,166,108,129,56,18,159,129,56,111,209,129,56,189,3,130,
56,252,53,130,56,44,104,130,56,78,154,130,56,96,204,130,56,99,254,130,56,87,48,131,56,60,98,131,56,18,148,131,56,217,197,131,56,145,247,131,56,57,41,132,56,211,90,132,56,93,140,132,56,216,189,132,56,68,239,132,56,161,32,133,56,238,81,133,56,45,131,133,56,91,180,133,56,123,229,133,56,139,22,134,56,140,71,134,56,126,120,134,56,96,169,134,56,51,218,134,56,246,10,135,56,170,59,135,56,78,108,135,56,227,156,135,56,105,205,135,56,223,253,135,56,69,46,136,56,156,94,136,56,227,142,136,56,27,191,136,56,67,
239,136,56,91,31,137,56,100,79,137,56,93,127,137,56,71,175,137,56,33,223,137,56,235,14,138,56,165,62,138,56,79,110,138,56,234,157,138,56,117,205,138,56,240,252,138,56,92,44,139,56,183,91,139,56,3,139,139,56,62,186,139,56,106,233,139,56,134,24,140,56,146,71,140,56,142,118,140,56,122,165,140,56,86,212,140,56,34,3,141,56,222,49,141,56,138,96,141,56,37,143,141,56,177,189,141,56,45,236,141,56,152,26,142,56,244,72,142,56,63,119,142,56,122,165,142,56,165,211,142,56,191,1,143,56,201,47,143,56,196,93,143,
56,173,139,143,56,135,185,143,56,80,231,143,56,9,21,144,56,178,66,144,56,74,112,144,56,210,157,144,56,73,203,144,56,176,248,144,56,7,38,145,56,77,83,145,56,131,128,145,56,168,173,145,56,189,218,145,56,193,7,146,56,181,52,146,56,152,97,146,56,107,142,146,56,45,187,146,56,222,231,146,56,127,20,147,56,15,65,147,56,143,109,147,56,254,153,147,56,92,198,147,56,169,242,147,56,230,30,148,56,18,75,148,56,45,119,148,56,56,163,148,56,50,207,148,56,26,251,148,56,243,38,149,56,186,82,149,56,112,126,149,56,22,
170,149,56,170,213,149,56,46,1,150,56,161,44,150,56,3,88,150,56,84,131,150,56,148,174,150,56,195,217,150,56,224,4,151,56,237,47,151,56,233,90,151,56,212,133,151,56,174,176,151,56,119,219,151,56,46,6,152,56,213,48,152,56,106,91,152,56,238,133,152,56,97,176,152,56,195,218,152,56,19,5,153,56,83,47,153,56,129,89,153,56,158,131,153,56,170,173,153,56,164,215,153,56,141,1,154,56,101,43,154,56,43,85,154,56,224,126,154,56,132,168,154,56,22,210,154,56,151,251,154,56,7,37,155,56,101,78,155,56,178,119,155,56,
237,160,155,56,23,202,155,56,47,243,155,56,54,28,156,56,43,69,156,56,15,110,156,56,225,150,156,56,161,191,156,56,80,232,156,56,238,16,157,56,121,57,157,56,244,97,157,56,92,138,157,56,179,178,157,56,248,218,157,56,44,3,158,56,78,43,158,56,94,83,158,56,92,123,158,56,73,163,158,56,35,203,158,56,237,242,158,56,164,26,159,56,73,66,159,56,221,105,159,56,95,145,159,56,207,184,159,56,45,224,159,56,121,7,160,56,179,46,160,56,220,85,160,56,242,124,160,56,247,163,160,56,233,202,160,56,202,241,160,56,152,24,
161,56,85,63,161,56,255,101,161,56,152,140,161,56,30,179,161,56,147,217,161,56,245,255,161,56,70,38,162,56,132,76,162,56,176,114,162,56,202,152,162,56,209,190,162,56,199,228,162,56,170,10,163,56,124,48,163,56,59,86,163,56,232,123,163,56,130,161,163,56,11,199,163,56,129,236,163,56,228,17,164,56,54,55,164,56,117,92,164,56,162,129,164,56,189,166,164,56,197,203,164,56,187,240,164,56,158,21,165,56,111,58,165,56,46,95,165,56,218,131,165,56,116,168,165,56,252,204,165,56,113,241,165,56,211,21,166,56,35,58,
166,56,97,94,166,56,140,130,166,56,164,166,166,56,170,202,166,56,158,238,166,56,127,18,167,56,77,54,167,56,9,90,167,56,178,125,167,56,72,161,167,56,204,196,167,56,61,232,167,56,156,11,168,56,232,46,168,56,33,82,168,56,71,117,168,56,91,152,168,56,92,187,168,56,75,222,168,56,38,1,169,56,239,35,169,56,165,70,169,56,72,105,169,56,217,139,169,56,87,174,169,56,194,208,169,56,26,243,169,56,95,21,170,56,145,55,170,56,176,89,170,56,189,123,170,56,183,157,170,56,157,191,170,56,113,225,170,56,50,3,171,56,224,
36,171,56,123,70,171,56,3,104,171,56,120,137,171,56,218,170,171,56,41,204,171,56,101,237,171,56,142,14,172,56,164,47,172,56,167,80,172,56,150,113,172,56,115,146,172,56,61,179,172,56,243,211,172,56,150,244,172,56,39,21,173,56,164,53,173,56,14,86,173,56,100,118,173,56,168,150,173,56,216,182,173,56,245,214,173,56,255,246,173,56,246,22,174,56,218,54,174,56,170,86,174,56,103,118,174,56,17,150,174,56,167,181,174,56,42,213,174,56,154,244,174,56,246,19,175,56,64,51,175,56,117,82,175,56,152,113,175,56,167,
144,175,56,163,175,175,56,139,206,175,56,96,237,175,56,34,12,176,56,208,42,176,56,106,73,176,56,242,103,176,56,101,134,176,56,198,164,176,56,18,195,176,56,76,225,176,56,114,255,176,56,132,29,177,56,131,59,177,56,110,89,177,56,70,119,177,56,10,149,177,56,187,178,177,56,88,208,177,56,225,237,177,56,87,11,178,56,185,40,178,56,8,70,178,56,67,99,178,56,107,128,178,56,126,157,178,56,126,186,178,56,107,215,178,56,67,244,178,56,9,17,179,56,186,45,179,56,88,74,179,56,225,102,179,56,88,131,179,56,186,159,179,
56,9,188,179,56,68,216,179,56,107,244,179,56,126,16,180,56,126,44,180,56,106,72,180,56,66,100,180,56,6,128,180,56,182,155,180,56,83,183,180,56,219,210,180,56,80,238,180,56,177,9,181,56,254,36,181,56,55,64,181,56,92,91,181,56,110,118,181,56,107,145,181,56,85,172,181,56,42,199,181,56,236,225,181,56,153,252,181,56,51,23,182,56,185,49,182,56,42,76,182,56,136,102,182,56,210,128,182,56,8,155,182,56,41,181,182,56,55,207,182,56,48,233,182,56,22,3,183,56,232,28,183,56,165,54,183,56,78,80,183,56,228,105,183,
56,101,131,183,56,210,156,183,56,43,182,183,56,112,207,183,56,160,232,183,56,189,1,184,56,197,26,184,56,186,51,184,56,154,76,184,56,102,101,184,56,29,126,184,56,193,150,184,56,80,175,184,56,204,199,184,56,51,224,184,56,133,248,184,56,196,16,185,56,238,40,185,56,4,65,185,56,6,89,185,56,243,112,185,56,204,136,185,56,145,160,185,56,66,184,185,56,222,207,185,56,102,231,185,56,218,254,185,56,57,22,186,56,132,45,186,56,187,68,186,56,221,91,186,56,235,114,186,56,229,137,186,56,202,160,186,56,155,183,186,
56,88,206,186,56,0,229,186,56,148,251,186,56,19,18,187,56,126,40,187,56,212,62,187,56,22,85,187,56,68,107,187,56,93,129,187,56,98,151,187,56,82,173,187,56,46,195,187,56,245,216,187,56,168,238,187,56,70,4,188,56,208,25,188,56,69,47,188,56,166,68,188,56,242,89,188,56,42,111,188,56,77,132,188,56,92,153,188,56,86,174,188,56,59,195,188,56,12,216,188,56,201,236,188,56,113,1,189,56,4,22,189,56,130,42,189,56,237,62,189,56,66,83,189,56,131,103,189,56,175,123,189,56,199,143,189,56,202,163,189,56,184,183,189,
56,146,203,189,56,87,223,189,56,7,243,189,56,163,6,190,56,42,26,190,56,156,45,190,56,250,64,190,56,67,84,190,56,119,103,190,56,151,122,190,56,162,141,190,56,152,160,190,56,122,179,190,56,70,198,190,56,254,216,190,56,162,235,190,56,48,254,190,56,170,16,191,56,15,35,191,56,95,53,191,56,155,71,191,56,194,89,191,56,212,107,191,56,209,125,191,56,185,143,191,56,141,161,191,56,75,179,191,56,245,196,191,56,139,214,191,56,11,232,191,56,118,249,191,56,205,10,192,56,15,28,192,56,60,45,192,56,84,62,192,56,87,
79,192,56,70,96,192,56,31,113,192,56,228,129,192,56,148,146,192,56,47,163,192,56,181,179,192,56,38,196,192,56,131,212,192,56,202,228,192,56,253,244,192,56,26,5,193,56,35,21,193,56,23,37,193,56,245,52,193,56,191,68,193,56,116,84,193,56,20,100,193,56,160,115,193,56,22,131,193,56,119,146,193,56,195,161,193,56,250,176,193,56,29,192,193,56,42,207,193,56,35,222,193,56,6,237,193,56,212,251,193,56,142,10,194,56,50,25,194,56,194,39,194,56,60,54,194,56,162,68,194,56,242,82,194,56,45,97,194,56,84,111,194,56,
101,125,194,56,98,139,194,56,73,153,194,56,27,167,194,56,216,180,194,56,129,194,194,56,20,208,194,56,146,221,194,56,251,234,194,56,79,248,194,56,142,5,195,56,184,18,195,56,205,31,195,56,204,44,195,56,183,57,195,56,141,70,195,56,77,83,195,56,249,95,195,56,143,108,195,56,16,121,195,56,124,133,195,56,211,145,195,56,21,158,195,56,66,170,195,56,90,182,195,56,93,194,195,56,74,206,195,56,35,218,195,56,230,229,195,56,148,241,195,56,45,253,195,56,177,8,196,56,32,20,196,56,121,31,196,56,190,42,196,56,237,53,
196,56,7,65,196,56,12,76,196,56,252,86,196,56,215,97,196,56,156,108,196,56,77,119,196,56,232,129,196,56,110,140,196,56,223,150,196,56,59,161,196,56,129,171,196,56,179,181,196,56,207,191,196,56,214,201,196,56,200,211,196,56,164,221,196,56,108,231,196,56,30,241,196,56,187,250,196,56,67,4,197,56,182,13,197,56,19,23,197,56,92,32,197,56,143,41,197,56,173,50,197,56,181,59,197,56,169,68,197,56,135,77,197,56,80,86,197,56,4,95,197,56,162,103,197,56,44,112,197,56,160,120,197,56,255,128,197,56,73,137,197,56,
125,145,197,56,157,153,197,56,167,161,197,56,156,169,197,56,123,177,197,56,69,185,197,56,251,192,197,56,155,200,197,56,37,208,197,56,155,215,197,56,251,222,197,56,70,230,197,56,123,237,197,56,156,244,197,56,167,251,197,56,157,2,198,56,126,9,198,56,73,16,198,56,0,23,198,56,161,29,198,56,44,36,198,56,163,42,198,56,4,49,198,56,80,55,198,56,135,61,198,56,168,67,198,56,180,73,198,56,171,79,198,56,141,85,198,56,89,91,198,56,17,97,198,56,179,102,198,56,63,108,198,56,183,113,198,56,25,119,198,56,102,124,
198,56,157,129,198,56,192,134,198,56,205,139,198,56,197,144,198,56,167,149,198,56,116,154,198,56,44,159,198,56,207,163,198,56,93,168,198,56,213,172,198,56,56,177,198,56,134,181,198,56,190,185,198,56,225,189,198,56,239,193,198,56,232,197,198,56,203,201,198,56,154,205,198,56,83,209,198,56,246,212,198,56,133,216,198,56,254,219,198,56,97,223,198,56,176,226,198,56,233,229,198,56,13,233,198,56,28,236,198,56,22,239,198,56,250,241,198,56,201,244,198,56,131,247,198,56,39,250,198,56,183,252,198,56,49,255,198,
56,149,1,199,56,229,3,199,56,31,6,199,56,68,8,199,56,84,10,199,56,78,12,199,56,52,14,199,56,4,16,199,56,190,17,199,56,100,19,199,56,244,20,199,56,111,22,199,56,213,23,199,56,37,25,199,56,97,26,199,56,135,27,199,56,151,28,199,56,147,29,199,56,121,30,199,56,74,31,199,56,6,32,199,56,173,32,199,56,62,33,199,56,187,33,199,56,34,34,199,56,115,34,199,56,176,34,199,56,215,34,199,56,233,34,199,56,230,34,199,56,206,34,199,56,160,34,199,56,93,34,199,56,5,34,199,56,152,33,199,56,22,33,199,56,126,32,199,56,209,
31,199,56,15,31,199,56,56,30,199,56,76,29,199,56,74,28,199,56,51,27,199,56,7,26,199,56,198,24,199,56,112,23,199,56,4,22,199,56,132,20,199,56,238,18,199,56,67,17,199,56,130,15,199,56,173,13,199,56,194,11,199,56,195,9,199,56,174,7,199,56,132,5,199,56,69,3,199,56,240,0,199,56,135,254,198,56,8,252,198,56,116,249,198,56,203,246,198,56,13,244,198,56,58,241,198,56,82,238,198,56,84,235,198,56,66,232,198,56,26,229,198,56,221,225,198,56,139,222,198,56,36,219,198,56,168,215,198,56,22,212,198,56,112,208,198,
56,180,204,198,56,228,200,198,56,254,196,198,56,3,193,198,56,243,188,198,56,206,184,198,56,148,180,198,56,69,176,198,56,225,171,198,56,104,167,198,56,217,162,198,56,54,158,198,56,125,153,198,56,176,148,198,56,205,143,198,56,214,138,198,56,201,133,198,56,167,128,198,56,112,123,198,56,37,118,198,56,196,112,198,56,78,107,198,56,195,101,198,56,35,96,198,56,110,90,198,56,164,84,198,56,198,78,198,56,210,72,198,56,201,66,198,56,171,60,198,56,120,54,198,56,48,48,198,56,211,41,198,56,97,35,198,56,219,28,198,
56,63,22,198,56,142,15,198,56,201,8,198,56,238,1,198,56,254,250,197,56,250,243,197,56,224,236,197,56,178,229,197,56,111,222,197,56,23,215,197,56,169,207,197,56,39,200,197,56,144,192,197,56,229,184,197,56,36,177,197,56,78,169,197,56,100,161,197,56,100,153,197,56,80,145,197,56,39,137,197,56,233,128,197,56,150,120,197,56,46,112,197,56,177,103,197,56,32,95,197,56,121,86,197,56,190,77,197,56,238,68,197,56,10,60,197,56,16,51,197,56,1,42,197,56,222,32,197,56,166,23,197,56,89,14,197,56,248,4,197,56,129,251,
196,56,246,241,196,56,86,232,196,56,161,222,196,56,216,212,196,56,250,202,196,56,7,193,196,56,255,182,196,56,226,172,196,56],"i8",4,y.a+962560);
Q([177,162,196,56,107,152,196,56,16,142,196,56,161,131,196,56,29,121,196,56,132,110,196,56,214,99,196,56,20,89,196,56,61,78,196,56,82,67,196,56,82,56,196,56,61,45,196,56,19,34,196,56,213,22,196,56,130,11,196,56,26,0,196,56,158,244,195,56,14,233,195,56,104,221,195,56,174,209,195,56,224,197,195,56,252,185,195,56,4,174,195,56,248,161,195,56,215,149,195,56,162,137,195,56,87,125,195,56,249,112,195,56,133,100,195,56,254,87,195,56,97,75,195,56,177,62,195,56,235,49,195,56,17,37,195,56,35,24,195,56,32,11,
195,56,9,254,194,56,221,240,194,56,156,227,194,56,71,214,194,56,222,200,194,56,96,187,194,56,206,173,194,56,39,160,194,56,108,146,194,56,157,132,194,56,185,118,194,56,192,104,194,56,179,90,194,56,146,76,194,56,93,62,194,56,19,48,194,56,180,33,194,56,66,19,194,56,187,4,194,56,31,246,193,56,111,231,193,56,171,216,193,56,211,201,193,56,230,186,193,56,229,171,193,56,207,156,193,56,166,141,193,56,104,126,193,56,21,111,193,56,175,95,193,56,52,80,193,56,165,64,193,56,1,49,193,56,74,33,193,56,126,17,193,
56,158,1,193,56,170,241,192,56,161,225,192,56,133,209,192,56,84,193,192,56,15,177,192,56,181,160,192,56,72,144,192,56,199,127,192,56,49,111,192,56,135,94,192,56,201,77,192,56,247,60,192,56,17,44,192,56,22,27,192,56,8,10,192,56,229,248,191,56,175,231,191,56,100,214,191,56,5,197,191,56,147,179,191,56,12,162,191,56,113,144,191,56,194,126,191,56,255,108,191,56,40,91,191,56,61,73,191,56,63,55,191,56,44,37,191,56,5,19,191,56,202,0,191,56,123,238,190,56,25,220,190,56,162,201,190,56,23,183,190,56,121,164,
190,56,198,145,190,56,0,127,190,56,38,108,190,56,56,89,190,56,54,70,190,56,32,51,190,56,247,31,190,56,185,12,190,56,104,249,189,56,3,230,189,56,138,210,189,56,253,190,189,56,93,171,189,56,168,151,189,56,224,131,189,56,4,112,189,56,21,92,189,56,17,72,189,56,250,51,189,56,208,31,189,56,145,11,189,56,63,247,188,56,217,226,188,56,95,206,188,56,210,185,188,56,49,165,188,56,125,144,188,56,181,123,188,56,217,102,188,56,233,81,188,56,230,60,188,56,208,39,188,56,166,18,188,56,104,253,187,56,22,232,187,56,
177,210,187,56,57,189,187,56,173,167,187,56,13,146,187,56,90,124,187,56,148,102,187,56,186,80,187,56,204,58,187,56,203,36,187,56,183,14,187,56,143,248,186,56,84,226,186,56,5,204,186,56,163,181,186,56,45,159,186,56,164,136,186,56,8,114,186,56,88,91,186,56,149,68,186,56,191,45,186,56,213,22,186,56,216,255,185,56,199,232,185,56,164,209,185,56,109,186,185,56,34,163,185,56,197,139,185,56,84,116,185,56,208,92,185,56,56,69,185,56,142,45,185,56,208,21,185,56,255,253,184,56,27,230,184,56,36,206,184,56,25,
182,184,56,251,157,184,56,203,133,184,56,135,109,184,56,48,85,184,56,198,60,184,56,72,36,184,56,184,11,184,56,20,243,183,56,94,218,183,56,148,193,183,56,184,168,183,56,200,143,183,56,198,118,183,56,176,93,183,56,135,68,183,56,76,43,183,56,253,17,183,56,156,248,182,56,39,223,182,56,160,197,182,56,6,172,182,56,88,146,182,56,152,120,182,56,197,94,182,56,223,68,182,56,231,42,182,56,219,16,182,56,189,246,181,56,140,220,181,56,72,194,181,56,241,167,181,56,135,141,181,56,11,115,181,56,124,88,181,56,218,
61,181,56,37,35,181,56,94,8,181,56,132,237,180,56,152,210,180,56,152,183,180,56,134,156,180,56,97,129,180,56,42,102,180,56,224,74,180,56,132,47,180,56,20,20,180,56,147,248,179,56,254,220,179,56,87,193,179,56,158,165,179,56,210,137,179,56,243,109,179,56,2,82,179,56,255,53,179,56,233,25,179,56,192,253,178,56,134,225,178,56,56,197,178,56,216,168,178,56,102,140,178,56,226,111,178,56,75,83,178,56,161,54,178,56,229,25,178,56,23,253,177,56,55,224,177,56,68,195,177,56,63,166,177,56,40,137,177,56,254,107,
177,56,194,78,177,56,116,49,177,56,20,20,177,56,161,246,176,56,28,217,176,56,133,187,176,56,220,157,176,56,32,128,176,56,83,98,176,56,115,68,176,56,129,38,176,56,125,8,176,56,103,234,175,56,63,204,175,56,5,174,175,56,185,143,175,56,90,113,175,56,234,82,175,56,104,52,175,56,211,21,175,56,45,247,174,56,116,216,174,56,170,185,174,56,206,154,174,56,224,123,174,56,224,92,174,56,206,61,174,56,170,30,174,56,116,255,173,56,44,224,173,56,211,192,173,56,104,161,173,56,235,129,173,56,92,98,173,56,187,66,173,
56,9,35,173,56,68,3,173,56,110,227,172,56,135,195,172,56,141,163,172,56,130,131,172,56,101,99,172,56,55,67,172,56,247,34,172,56,165,2,172,56,66,226,171,56,205,193,171,56,70,161,171,56,174,128,171,56,5,96,171,56,73,63,171,56,125,30,171,56,158,253,170,56,174,220,170,56,173,187,170,56,154,154,170,56,118,121,170,56,65,88,170,56,249,54,170,56,161,21,170,56,55,244,169,56,188,210,169,56,47,177,169,56,145,143,169,56,226,109,169,56,33,76,169,56,79,42,169,56,108,8,169,56,120,230,168,56,114,196,168,56,91,162,
168,56,51,128,168,56,249,93,168,56,175,59,168,56,83,25,168,56,230,246,167,56,104,212,167,56,217,177,167,56,56,143,167,56,135,108,167,56,196,73,167,56,241,38,167,56,12,4,167,56,22,225,166,56,16,190,166,56,248,154,166,56,207,119,166,56,150,84,166,56,75,49,166,56,240,13,166,56,131,234,165,56,6,199,165,56,119,163,165,56,216,127,165,56,40,92,165,56,103,56,165,56,150,20,165,56,179,240,164,56,192,204,164,56,188,168,164,56,167,132,164,56,130,96,164,56,75,60,164,56,4,24,164,56,173,243,163,56,68,207,163,56,
203,170,163,56,66,134,163,56,168,97,163,56,253,60,163,56,65,24,163,56,117,243,162,56,153,206,162,56,171,169,162,56,174,132,162,56,160,95,162,56,129,58,162,56,82,21,162,56,18,240,161,56,194,202,161,56,98,165,161,56,241,127,161,56,111,90,161,56,222,52,161,56,60,15,161,56,137,233,160,56,199,195,160,56,244,157,160,56,16,120,160,56,29,82,160,56,25,44,160,56,5,6,160,56,225,223,159,56,172,185,159,56,104,147,159,56,19,109,159,56,174,70,159,56,57,32,159,56,180,249,158,56,30,211,158,56,121,172,158,56,195,133,
158,56,254,94,158,56,40,56,158,56,67,17,158,56,77,234,157,56,72,195,157,56,50,156,157,56,13,117,157,56,216,77,157,56,146,38,157,56,61,255,156,56,216,215,156,56,99,176,156,56,223,136,156,56,74,97,156,56,166,57,156,56,242,17,156,56,46,234,155,56,90,194,155,56,119,154,155,56,132,114,155,56,129,74,155,56,111,34,155,56,77,250,154,56,27,210,154,56,218,169,154,56,137,129,154,56,40,89,154,56,184,48,154,56,57,8,154,56,170,223,153,56,11,183,153,56,93,142,153,56,159,101,153,56,210,60,153,56,246,19,153,56,10,
235,152,56,14,194,152,56,4,153,152,56,234,111,152,56,192,70,152,56,135,29,152,56,63,244,151,56,232,202,151,56,129,161,151,56,11,120,151,56,134,78,151,56,242,36,151,56,78,251,150,56,156,209,150,56,218,167,150,56,9,126,150,56,41,84,150,56,58,42,150,56,59,0,150,56,46,214,149,56,17,172,149,56,230,129,149,56,172,87,149,56,98,45,149,56,10,3,149,56,162,216,148,56,44,174,148,56,167,131,148,56,19,89,148,56,112,46,148,56,190,3,148,56,253,216,147,56,45,174,147,56,79,131,147,56,98,88,147,56,102,45,147,56,91,
2,147,56,66,215,146,56,26,172,146,56,227,128,146,56,158,85,146,56,74,42,146,56,231,254,145,56,118,211,145,56,246,167,145,56,104,124,145,56,202,80,145,56,31,37,145,56,101,249,144,56,156,205,144,56,197,161,144,56,224,117,144,56,236,73,144,56,234,29,144,56,217,241,143,56,186,197,143,56,140,153,143,56,81,109,143,56,6,65,143,56,174,20,143,56,71,232,142,56,210,187,142,56,79,143,142,56,190,98,142,56,30,54,142,56,112,9,142,56,181,220,141,56,234,175,141,56,18,131,141,56,44,86,141,56,56,41,141,56,53,252,140,
56,37,207,140,56,6,162,140,56,218,116,140,56,159,71,140,56,87,26,140,56,0,237,139,56,156,191,139,56,42,146,139,56,170,100,139,56,28,55,139,56,128,9,139,56,214,219,138,56,31,174,138,56,90,128,138,56,135,82,138,56,166,36,138,56,184,246,137,56,188,200,137,56,178,154,137,56,155,108,137,56,118,62,137,56,67,16,137,56,3,226,136,56,181,179,136,56,89,133,136,56,240,86,136,56,122,40,136,56,246,249,135,56,101,203,135,56,198,156,135,56,25,110,135,56,96,63,135,56,152,16,135,56,196,225,134,56,226,178,134,56,243,
131,134,56,247,84,134,56,237,37,134,56,214,246,133,56,177,199,133,56,128,152,133,56,65,105,133,56,245,57,133,56,156,10,133,56,54,219,132,56,195,171,132,56,66,124,132,56,181,76,132,56,26,29,132,56,115,237,131,56,190,189,131,56,252,141,131,56,46,94,131,56,82,46,131,56,106,254,130,56,116,206,130,56,114,158,130,56,99,110,130,56,71,62,130,56,30,14,130,56,233,221,129,56,166,173,129,56,87,125,129,56,251,76,129,56,146,28,129,56,29,236,128,56,155,187,128,56,12,139,128,56,113,90,128,56,201,41,128,56,41,242,
127,56,167,144,127,56,11,47,127,56,87,205,126,56,138,107,126,56,163,9,126,56,164,167,125,56,140,69,125,56,91,227,124,56,17,129,124,56,174,30,124,56,51,188,123,56,159,89,123,56,242,246,122,56,45,148,122,56,79,49,122,56,89,206,121,56,74,107,121,56,35,8,121,56,228,164,120,56,140,65,120,56,28,222,119,56,147,122,119,56,243,22,119,56,58,179,118,56,105,79,118,56,129,235,117,56,128,135,117,56,103,35,117,56,54,191,116,56,237,90,116,56,141,246,115,56,20,146,115,56,132,45,115,56,220,200,114,56,29,100,114,56,
70,255,113,56,87,154,113,56,81,53,113,56,51,208,112,56,254,106,112,56,177,5,112,56,77,160,111,56,210,58,111,56,63,213,110,56,149,111,110,56,212,9,110,56,252,163,109,56,13,62,109,56,7,216,108,56,233,113,108,56,181,11,108,56,106,165,107,56,8,63,107,56,143,216,106,56,255,113,106,56,89,11,106,56,156,164,105,56,200,61,105,56,221,214,104,56,220,111,104,56,197,8,104,56,151,161,103,56,83,58,103,56,248,210,102,56,135,107,102,56,255,3,102,56,98,156,101,56,174,52,101,56,228,204,100,56,4,101,100,56,14,253,99,
56,1,149,99,56,223,44,99,56,167,196,98,56,89,92,98,56,245,243,97,56,123,139,97,56,236,34,97,56,71,186,96,56,140,81,96,56,188,232,95,56,214,127,95,56,218,22,95,56,201,173,94,56,163,68,94,56,103,219,93,56,22,114,93,56,176,8,93,56,52,159,92,56,163,53,92,56,253,203,91,56,66,98,91,56,114,248,90,56,140,142,90,56,146,36,90,56,131,186,89,56,95,80,89,56,38,230,88,56,216,123,88,56,118,17,88,56,255,166,87,56,115,60,87,56,211,209,86,56,30,103,86,56,84,252,85,56,118,145,85,56,132,38,85,56,125,187,84,56,98,80,
84,56,51,229,83,56,239,121,83,56,151,14,83,56,44,163,82,56,172,55,82,56,23,204,81,56,111,96,81,56,179,244,80,56,227,136,80,56,0,29,80,56,8,177,79,56,253,68,79,56,221,216,78,56,171,108,78,56,100,0,78,56,10,148,77,56,157,39,77,56,27,187,76,56,135,78,76,56,223,225,75,56,36,117,75,56,85,8,75,56,115,155,74,56,126,46,74,56,118,193,73,56,91,84,73,56,44,231,72,56,235,121,72,56,151,12,72,56,47,159,71,56,181,49,71,56,40,196,70,56,136,86,70,56,214,232,69,56,16,123,69,56,56,13,69,56,78,159,68,56,81,49,68,56,
65,195,67,56,31,85,67,56,235,230,66,56,164,120,66,56,75,10,66,56,224,155,65,56,98,45,65,56,210,190,64,56,48,80,64,56,124,225,63,56,182,114,63,56,222,3,63,56,244,148,62,56,249,37,62,56,235,182,61,56,204,71,61,56,154,216,60,56,88,105,60,56,3,250,59,56,157,138,59,56,37,27,59,56,156,171,58,56,2,60,58,56,86,204,57,56,152,92,57,56,202,236,56,56,234,124,56,56,248,12,56,56,246,156,55,56,227,44,55,56,190,188,54,56,137,76,54,56,66,220,53,56,235,107,53,56,130,251,52,56,9,139,52,56,127,26,52,56,229,169,51,56,
57,57,51,56,125,200,50,56,177,87,50,56,211,230,49,56,230,117,49,56,232,4,49,56,217,147,48,56,187,34,48,56,139,177,47,56,76,64,47,56,253,206,46,56,157,93,46,56,45,236,45,56,173,122,45,56,29,9,45,56,126,151,44,56,206,37,44,56,14,180,43,56,63,66,43,56,96,208,42,56,113,94,42,56,114,236,41,56,100,122,41,56,70,8,41,56,25,150,40,56,220,35,40,56,144,177,39,56,53,63,39,56,202,204,38,56,80,90,38,56,198,231,37,56,46,117,37,56,134,2,37,56,208,143,36,56,10,29,36,56,53,170,35,56,81,55,35,56,95,196,34,56,94,81,
34,56,77,222,33,56,46,107,33,56,1,248,32,56,197,132,32,56,122,17,32,56,33,158,31,56,185,42,31,56,66,183,30,56,190,67,30,56,43,208,29,56,137,92,29,56,218,232,28,56,28,117,28,56,80,1,28,56,118,141,27,56,142,25,27,56,152,165,26,56,148,49,26,56,131,189,25,56,99,73,25,56,53,213,24,56,250,96,24,56,177,236,23,56,91,120,23,56,246,3,23,56,133,143,22,56,5,27,22,56,121,166,21,56,223,49,21,56,55,189,20,56,130,72,20,56,192,211,19,56,241,94,19,56,21,234,18,56,43,117,18,56,53,0,18,56,49,139,17,56,33,22,17,56,4,
161,16,56,217,43,16,56,162,182,15,56,95,65,15,56,14,204,14,56,177,86,14,56,71,225,13,56,209,107,13,56,78,246,12,56,191,128,12,56,35,11,12,56,123,149,11,56,199,31,11,56,7,170,10,56,58,52,10,56,97,190,9,56,124,72,9,56,139,210,8,56,142,92,8,56,133,230,7,56,112,112,7,56,79,250,6,56,34,132,6,56,234,13,6,56,166,151,5,56,86,33,5,56,251,170,4,56,148,52,4,56,34,190,3,56,164,71,3,56,27,209,2,56,135,90,2,56,231,227,1,56,60,109,1,56,133,246,0,56,196,127,0,56,247,8,0,56,64,36,255,55,122,54,254,55,159,72,253,55,
175,90,252,55,168,108,251,55,140,126,250,55,90,144,249,55,19,162,248,55,183,179,247,55,70,197,246,55,191,214,245,55,35,232,244,55,115,249,243,55,174,10,243,55,212,27,242,55,229,44,241,55,226,61,240,55,203,78,239,55,160,95,238,55,96,112,237,55,12,129,236,55,164,145,235,55,40,162,234,55,153,178,233,55,246,194,232,55,63,211,231,55,117,227,230,55,151,243,229,55,167,3,229,55,163,19,228,55,140,35,227,55,98,51,226,55,37,67,225,55,213,82,224,55,115,98,223,55,254,113,222,55,119,129,221,55,221,144,220,55,50,
160,219,55,116,175,218,55,164,190,217,55,194,205,216,55,206,220,215,55,200,235,214,55,177,250,213,55,137,9,213,55,78,24,212,55,3,39,211,55,166,53,210,55,56,68,209,55,186,82,208,55,42,97,207,55,137,111,206,55,216,125,205,55,22,140,204,55,68,154,203,55,97,168,202,55,110,182,201,55,106,196,200,55,87,210,199,55,51,224,198,55,0,238,197,55,189,251,196,55,106,9,196,55,8,23,195,55,150,36,194,55,20,50,193,55,132,63,192,55,228,76,191,55,53,90,190,55,119,103,189,55,170,116,188,55,207,129,187,55,229,142,186,
55,236,155,185,55,229,168,184,55,207,181,183,55,171,194,182,55,121,207,181,55,57,220,180,55,235,232,179,55,143,245,178,55,38,2,178,55,174,14,177,55,41,27,176,55,151,39,175,55,247,51,174,55,75,64,173,55,145,76,172,55,202,88,171,55,246,100,170,55,21,113,169,55,39,125,168,55,45,137,167,55,38,149,166,55,19,161,165,55,244,172,164,55,200,184,163,55,145,196,162,55,77,208,161,55,253,219,160,55,162,231,159,55,59,243,158,55,200,254,157,55,74,10,157,55,192,21,156,55,43,33,155,55,139,44,154,55,224,55,153,55,
42,67,152,55,105,78,151,55,157,89,150,55,198,100,149,55,229,111,148,55,250,122,147,55,4,134,146,55,4,145,145,55,250,155,144,55,229,166,143,55,199,177,142,55,159,188,141,55,109,199,140,55,49,210,139,55,236,220,138,55,158,231,137,55,70,242,136,55,229,252,135,55,123,7,135,55,8,18,134,55,139,28,133,55,7,39,132,55,121,49,131,55,227,59,130,55,68,70,129,55,157,80,128,55,218,181,126,55,107,202,124,55,235,222,122,55,91,243,120,55,188,7,119,55,13,28,117,55,79,48,115,55,129,68,113,55,165,88,111,55,185,108,109,
55,192,128,107,55,184,148,105,55,161,168,103,55,125,188,101,55,75,208,99,55,12,228,97,55,191,247,95,55,101,11,94,55,255,30,92,55,139,50,90,55,11,70,88,55,127,89,86,55,231,108,84,55,67,128,82,55,147,147,80,55,216,166,78,55,17,186,76,55,63,205,74,55,99,224,72,55,124,243,70,55,139,6,69,55,143,25,67,55,137,44,65,55,122,63,63,55,97,82,61,55,62,101,59,55,18,120,57,55,222,138,55,55,160,157,53,55,90,176,51,55,12,195,49,55,181,213,47,55,87,232,45,55,241,250,43,55,131,13,42,55,14,32,40,55,146,50,38,55,14,69,
36,55,133,87,34,55,244,105,32,55,93,124,30,55,193,142,28,55,30,161,26,55,118,179,24,55,200,197,22,55,21,216,20,55,92,234,18,55,159,252,16,55,222,14,15,55,24,33,13,55,77,51,11,55,127,69,9,55,172,87,7,55,214,105,5,55,253,123,3,55,33,142,1,55,130,64,255,54,189,100,251,54,244,136,247,54,37,173,243,54,82,209,239,54,123,245,235,54,160,25,232,54,194,61,228,54,226,97,224,54,255,133,220,54,27,170,216,54,53,206,212,54,77,242,208,54,101,22,205,54,125,58,201,54,149,94,197,54,174,130,193,54,199,166,189,54,226,
202,185,54,255,238,181,54,30,19,178,54,64,55,174,54,100,91,170,54,140,127,166,54,184,163,162,54,232,199,158,54,29,236,154,54,87,16,151,54,151,52,147,54,220,88,143,54,40,125,139,54,122,161,135,54,211,197,131,54,105,212,127,54,59,29,120,54,30,102,112,54,18,175,104,54,25,248,96,54,51,65,89,54,97,138,81,54,164,211,73,54,252,28,66,54,107,102,58,54,242,175,50,54,144,249,42,54,72,67,35,54,25,141,27,54,4,215,19,54,12,33,12,54,47,107,4,54,223,106,249,53,155,255,233,53,149,148,218,53,206,41,203,53,72,191,187,
53,4,85,172,53,3,235,156,53,73,129,141,53,170,47,124,53,85,93,93,53,149,139,62,53,109,186,31,53,224,233,0,53,228,51,196,52,76,149,134,52,254,239,17,52,44,192,181,50,135,250,200,179,208,175,95,180,202,111,173,180,64,6,235,180,162,77,20,181,105,23,51,181,111,224,81,181,179,168,112,181,25,184,135,181,115,27,151,181,103,126,166,181,244,224,181,181,23,67,197,181,206,164,212,181,25,6,228,181,246,102,243,181,177,99,1,182,175,19,9,182,114,195,16,182,252,114,24,182,74,34,32,182,92,209,39,182,49,128,47,182,
200,46,55,182,33,221,62,182,59,139,70,182,20,57,78,182,173,230,85,182,3,148,93,182,23,65,101,182,232,237,108,182,117,154,116,182,188,70,124,182,95,249,129,182,60,207,133,182,246,164,137,182,140,122,141,182,253,79,145,182,73,37,149,182,112,250,152,182,113,207,156,182,76,164,160,182,0,121,164,182,141,77,168,182,243,33,172,182,49,246,175,182,71,202,179,182,53,158,183,182,249,113,187,182,148,69,191,182,5,25,195,182,76,236,198,182,105,191,202,182,90,146,206,182,32,101,210,182,186,55,214,182,40,10,218,
182,105,220,221,182,125,174,225,182,100,128,229,182,29,82,233,182,168,35,237,182,4,245,240,182,49,198,244,182,46,151,248,182,252,103,252,182,77,28,0,183,131,4,2,183,161,236,3,183,166,212,5,183,146,188,7,183,101,164,9,183,31,140,11,183,191,115,13,183,70,91,15,183,178,66,17,183,5,42,19,183,61,17,21,183,90,248,22,183,93,223,24,183,69,198,26,183,17,173,28,183,195,147,30,183,89,122,32,183,211,96,34,183,49,71,36,183,115,45,38,183,152,19,40,183,161,249,41,183,142,223,43,183,93,197,45,183,15,171,47,183,164,
144,49,183,28,118,51,183,117,91,53,183,177,64,55,183,206,37,57,183,206,10,59,183,174,239,60,183,112,212,62,183,19,185,64,183,151,157,66,183,252,129,68,183,65,102,70,183,102,74,72,183,107,46,74,183,80,18,76,183,21,246,77,183,186,217,79,183,61,189,81,183,160,160,83,183,225,131,85,183,2,103,87,183,0,74,89,183,221,44,91,183,152,15,93,183,49,242,94,183,168,212,96,183,252,182,98,183,46,153,100,183,60,123,102,183,40,93,104,183,240,62,106,183,148,32,108,183,21,2,110,183,114,227,111,183,171,196,113,183,192,
165,115,183,176,134,117,183,124,103,119,183,34,72,121,183,164,40,123,183,0,9,125,183,55,233,126,183,164,100,128,183,154,84,129,183,124,68,130,183,76,52,131,183,8,36,132,183,177,19,133,183,70,3,134,183,200,242,134,183,55,226,135,183,145,209,136,183,216,192,137,183,11,176,138,183,42,159,139,183,53,142,140,183,43,125,141,183,14,108,142,183,220,90,143,183,149,73,144,183,58,56,145,183,202,38,146,183,69,21,147,183,171,3,148,183,253,241,148,183,57,224,149,183,96,206,150,183,114,188,151,183,111,170,152,183,
86,152,153,183,39,134,154,183,227,115,155,183,137,97,156,183,25,79,157,183,147,60,158,183,248,41,159,183,70,23,160,183,125,4,161,183,159,241,161,183,170,222,162,183,158,203,163,183,124,184,164,183,67,165,165,183,243,145,166,183,140,126,167,183,15,107,168,183,122,87,169,183,206,67,170,183,10,48,171,183,47,28,172,183,61,8,173,183,51,244,173,183,18,224,174,183,216,203,175,183,135,183,176,183,30,163,177,183,156,142,178,183,3,122,179,183,81,101,180,183,135,80,181,183,164,59,182,183,169,38,183,183,149,
17,184,183,104,252,184,183,35,231,185,183,196,209,186,183,77,188,187,183,188,166,188,183,18,145,189,183,79,123,190,183,115,101,191,183,125,79,192,183,109,57,193,183,68,35,194,183,0,13,195,183,163,246,195,183,44,224,196,183,155,201,197,183,239,178,198,183,42,156,199,183,74,133,200,183,79,110,201,183,58,87,202,183,10,64,203,183,192,40,204,183,91,17,205,183,218,249,205,183,63,226,206,183,137,202,207,183,183,178,208,183,202,154,209,183,194,130,210,183,158,106,211,183,94,82,212,183,3,58,213,183,140,33,
214,183,249,8,215,183,74,240,215,183,128,215,216,183,152,190,217,183,149,165,218,183,117,140,219,183,57,115,220,183,225,89,221,183,107,64,222,183,217,38,223,183,42,13,224,183,95,243,224,183,118,217,225,183,112,191,226,183,77,165,227,183,13,139,228,183,175,112,229,183,52,86,230,183,155,59,231,183,228,32,232,183,16,6,233,183,30,235,233,183,14,208,234,183,224,180,235,183,148,153,236,183,42,126,237,183,161,98,238,183,250,70,239,183,53,43,240,183,80,15,241,183,78,243,241,183,44,215,242,183,236,186,243,
183,140,158,244,183,14,130,245,183,112,101,246,183,179,72,247,183,215,43,248,183,220,14,249,183,193,241,249,183,134,212,250,183,44,183,251,183,178,153,252,183,24,124,253,183,94,94,254,183,132,64,255,183,69,17,0,184,55,130,0,184,26,243,0,184,237,99,1,184,175,212,1,184,97,69,2,184,2,182,2,184,147,38,3,184,20,151,3,184,132,7,4,184,228,119,4,184,51,232,4,184,113,88,5,184,159,200,5,184,188,56,6,184,201,168,6,184,196,24,7,184,175,136,7,184,137,248,7,184,81,104,8,184,9,216,8,184,176,71,9,184,70,183,9,184,
203,38,10,184,62,150,10,184,160,5,11,184,241,116,11,184,49,228,11,184,96,83,12,184,125,194,12,184,136,49,13,184,130,160,13,184,107,15,14,184,66,126,14,184,7,237,14,184,187,91,15,184,93,202,15,184,238,56,16,184,108,167,16,184,217,21,17,184,52,132,17,184,125,242,17,184,180,96,18,184,216,206,18,184,235,60,19,184,236,170,19,184,219,24,20,184,183,134,20,184,129,244,20,184,57,98,21,184,223,207,21,184,114,61,22,184,243,170,22,184,98,24,23,184,189,133,23,184,7,243,23,184,62,96,24,184,98,205,24,184,115,58,
25,184,114,167,25,184,94,20,26,184,55,129,26,184,254,237,26,184,177,90,27,184,82,199,27,184,223,51,28,184,90,160,28,184,193,12,29,184,22,121,29,184,87,229,29,184,133,81,30,184,160,189,30,184,167,41,31,184,155,149,31,184,124,1,32,184,74,109,32,184,4,217,32,184,170,68,33,184,61,176,33,184,188,27,34,184,40,135,34,184,128,242,34,184,196,93,35,184,245,200,35,184,18,52,36,184,27,159,36,184,16,10,37,184,241,116,37,184,190,223,37,184,119,74,38,184,28,181,38,184,173,31,39,184,42,138,39,184,147,244,39,184,
231,94,40,184,39,201,40,184,83,51,41,184,106,157,41,184,110,7,42,184,92,113,42,184,54,219,42,184,252,68,43,184,173,174,43,184,74,24,44,184,209,129,44,184,69,235,44,184,163,84,45,184,237,189,45,184,33,39,46,184,65,144,46,184,76,249,46,184,67,98,47,184,36,203,47,184,240,51,48,184,167,156,48,184,73,5,49,184,213,109,49,184,77,214,49,184,175,62,50,184,252,166,50,184,52,15,51,184,86,119,51,184,99,223,51,184,91,71,52,184,61,175,52,184,9,23,53,184,192,126,53,184,98,230,53,184,237,77,54,184,99,181,54,184,
196,28,55,184,14,132,55,184,67,235,55,184,98,82,56,184,106,185,56,184,93,32,57,184,58,135,57,184,1,238,57,184,178,84,58,184,77,187,58,184,210,33,59,184,64,136,59,184,152,238,59,184,218,84,60,184,6,187,60,184,27,33,61,184,26,135,61,184,3,237,61,184,213,82,62,184,144,184,62,184,53,30,63,184,196,131,63,184,59,233,63,184,157,78,64,184,231,179,64,184,27,25,65,184,55,126,65,184,61,227,65,184,44,72,66,184,5,173,66,184,198,17,67,184,112,118,67,184,3,219,67,184,128,63,68,184,229,163,68,184,51,8,69,184,105,
108,69,184,137,208,69,184,145,52,70,184,130,152,70,184,91,252,70,184,30,96,71,184,200,195,71,184,92,39,72,184,215,138,72,184,60,238,72,184,136,81,73,184,189,180,73,184,218,23,74,184,224,122,74,184,206,221,74,184,164,64,75,184,98,163,75,184,9,6,76,184,151,104,76,184,14,203,76,184,108,45,77,184,179,143,77,184,226,241,77,184,248,83,78,184,246,181,78,184,220,23,79,184,170,121,79,184,96,219,79,184,253,60,80,184,130,158,80,184,239,255,80,184,67,97,81,184,127,194,81,184,163,35,82,184,173,132,82,184,160,
229,82,184,121,70,83,184,58,167,83,184,227,7,84,184,115,104,84,184,233,200,84,184,72,41,85,184,141,137,85,184,185,233,85,184,205,73,86,184,200,169,86,184,169,9,87,184,114,105,87,184,33,201,87,184,184,40,88,184,53,136,88,184,153,231,88,184,228,70,89,184,22,166,89,184,47,5,90,184,46,100,90,184,20,195,90,184,224,33,91,184,147,128,91,184,45,223,91,184,173,61,92,184,19,156,92,184,96,250,92,184,147,88,93,184,173,182,93,184,173,20,94,184,147,114,94,184,96,208,94,184,19,46,95,184,171,139,95,184,42,233,95,
184,143,70,96,184,219,163,96,184,12,1,97,184,35,94,97,184,32,187,97,184,3,24,98,184,204,116,98,184,123,209,98,184,15,46,99,184,138,138,99,184,234,230,99,184,47,67,100,184,91,159,100,184,108,251,100,184,98,87,101,184,62,179,101,184,0,15,102,184,167,106,102,184,52,198,102,184,166,33,103,184,253,124,103,184,58,216,103,184,91,51,104,184,99,142,104,184,79,233,104,184,33,68,105,184,216,158,105,184,115,249,105,184,244,83,106,184,90,174,106,184,166,8,107,184,214,98,107,184,235,188,107,184,228,22,108,184,
195,112,108,184,135,202,108,184,47,36,109,184,188,125,109,184,46,215,109,184,133,48,110,184,192,137,110,184,224,226,110,184,228,59,111,184,206,148,111,184,155,237,111,184,77,70,112,184,228,158,112,184,95,247,112,184,190,79,113,184,2,168,113,184,42,0,114,184,54,88,114,184,38,176,114,184,251,7,115,184,180,95,115,184,81,183,115,184,210,14,116,184,55,102,116,184,129,189,116,184,174,20,117,184,191,107,117,184,180,194,117,184,142,25,118,184,75,112,118,184,235,198,118,184,112,29,119,184,216,115,119,184,
37,202,119,184,84,32,120,184,104,118,120,184,95,204,120,184,58,34,121,184,248,119,121,184,154,205,121,184,32,35,122,184,136,120,122,184,213,205,122,184,4,35,123,184,24,120,123,184,14,205,123,184,232,33,124,184,165,118,124,184,69,203,124,184,201,31,125,184,47,116,125,184,121,200,125,184,166,28,126,184,182,112,126,184,169,196,126,184,127,24,127,184,56,108,127,184,212,191,127,184,169,9,128,184,90,51,128,184,253,92,128,184,144,134,128,184,21,176,128,184,140,217,128,184,244,2,129,184,77,44,129,184,152,
85,129,184,211,126,129,184,1,168,129,184,31,209,129,184,47,250,129,184,48,35,130,184,34,76,130,184,5,117,130,184,218,157,130,184,160,198,130,184,87,239,130,184,255,23,131,184,152,64,131,184,34,105,131,184,158,145,131,184,10,186,131,184,104,226,131,184,183,10,132,184,247,50,132,184,39,91,132,184,73,131,132,184,92,171,132,184,96,211,132,184,85,251,132,184,58,35,133,184,17,75,133,184,217,114,133,184,145,154,133,184,59,194,133,184,213,233,133,184,96,17,134,184,220,56,134,184,73,96,134,184,167,135,134,
184,245,174,134,184,52,214,134,184,100,253,134,184,133,36,135,184,150,75,135,184,153,114,135,184,140,153,135,184,111,192,135,184,68,231,135,184,9,14,136,184,190,52,136,184,101,91,136,184,252,129,136,184,131,168,136,184,251,206,136,184,100,245,136,184,189,27,137,184,7,66,137,184,65,104,137,184,108,142,137,184,136,180,137,184,147,218,137,184,144,0,138,184,125,38,138,184,90,76,138,184,39,114,138,184,230,151,138,184,148,189,138,184,51,227,138,184,194,8,139,184,66,46,139,184,178,83,139,184,18,121,139,
184,99,158,139,184,164,195,139,184,213,232,139,184,247,13,140,184,8,51,140,184,10,88,140,184,253,124,140,184,223,161,140,184,178,198,140,184,117,235,140,184,40,16,141,184,203,52,141,184,95,89,141,184,226,125,141,184,86,162,141,184,185,198,141,184,13,235,141,184,81,15,142,184,133,51,142,184,169,87,142,184,189,123,142,184,194,159,142,184,182,195,142,184,154,231,142,184,110,11,143,184,50,47,143,184,230,82,143,184,138,118,143,184,30,154,143,184,162,189,143,184,22,225,143,184,121,4,144,184,205,39,144,
184,16,75,144,184,67,110,144,184,103,145,144,184,121,180,144,184,124,215,144,184,111,250,144,184,81,29,145,184,35,64,145,184,229,98,145,184,151,133,145,184,56,168,145,184,201,202,145,184,74,237,145,184,186,15,146,184,26,50,146,184,106,84,146,184,170,118,146,184,217,152,146,184,247,186,146,184,6,221,146,184,4,255,146,184,241,32,147,184,206,66,147,184,155,100,147,184,87,134,147,184,3,168,147,184,158,201,147,184,41,235,147,184,164,12,148,184,13,46,148,184,103,79,148,184,175,112,148,184,232,145,148,184,
15,179,148,184,38,212,148,184,45,245,148,184,35,22,149,184,8,55,149,184,221,87,149,184,161,120,149,184,84,153,149,184,247,185,149,184,137,218,149,184,11,251,149,184,123,27,150,184,219,59,150,184,43,92,150,184,105,124,150,184,151,156,150,184,180,188,150,184,192,220,150,184,188,252,150,184,167,28,151,184,129,60,151,184,74,92,151,184,2,124,151,184,169,155,151,184,64,187,151,184,198,218,151,184,59,250,151,184,159,25,152,184,242,56,152,184,52,88,152,184,101,119,152,184,134,150,152,184,149,181,152,184,
147,212,152,184,129,243,152,184,93,18,153,184,41,49,153,184,227,79,153,184,141,110,153,184,38,141,153,184,173,171,153,184,35,202,153,184,137,232,153,184,221,6,154,184,32,37,154,184,82,67,154,184,116,97,154,184,131,127,154,184,130,157,154,184,112,187,154,184,76,217,154,184,24,247,154,184,210,20,155,184,123,50,155,184,19,80,155,184,154,109,155,184,15,139,155,184,115,168,155,184,198,197,155,184,8,227,155,184,57,0,156,184,88,29,156,184,102,58,156,184,99,87,156,184,78,116,156,184,40,145,156,184,241,173,
156,184,168,202,156,184,78,231,156,184,227,3,157,184,103,32,157,184,217,60,157,184,57,89,157,184,137,117,157,184,198,145,157,184,243,173,157,184,14,202,157,184,24,230,157,184,16,2,158,184,247,29,158,184,204,57,158,184,144,85,158,184,66,113,158,184,227,140,158,184,114,168,158,184,240,195,158,184,92,223,158,184,183,250,158,184,0,22,159,184,56,49,159,184,94,76,159,184,115,103,159,184,118,130,159,184,103,157,159,184,71,184,159,184,21,211,159,184,210,237,159,184,125,8,160,184,22,35,160,184,158,61,160,
184,20,88,160,184,120,114,160,184,203,140,160,184,12,167,160,184,59,193,160,184,89,219,160,184,100,245,160,184,95,15,161,184,71,41,161,184,30,67,161,184,227,92,161,184,150,118,161,184,55,144,161,184,199,169,161,184,69,195,161,184,177,220,161,184,11,246,161,184,84,15,162,184,138,40,162,184,175,65,162,184,194,90,162,184,195,115,162,184,178,140,162,184,144,165,162,184,91,190,162,184,21,215,162,184,188,239,162,184,82,8,163,184,214,32,163,184,72,57,163,184,168,81,163,184,246,105,163,184,51,130,163,184,
93,154,163,184,117,178,163,184,123,202,163,184,112,226,163,184,82,250,163,184,34,18,164,184,225,41,164,184,141,65,164,184,39,89,164,184,176,112,164,184,38,136,164,184,138,159,164,184,220,182,164,184,28,206,164,184,74,229,164,184,102,252,164,184,112,19,165,184,104,42,165,184,77,65,165,184,33,88,165,184,226,110,165,184,146,133,165,184,47,156,165,184,186,178,165,184,51,201,165,184,153,223,165,184,238,245,165,184,48,12,166,184,97,34,166,184,127,56,166,184,138,78,166,184,132,100,166,184,107,122,166,184,
64,144,166,184,3,166,166,184,180,187,166,184,83,209,166,184,223,230,166,184,89,252,166,184,193,17,167,184,22,39,167,184,89,60,167,184,138,81,167,184,169,102,167,184,181,123,167,184,175,144,167,184,151,165,167,184,108,186,167,184,47,207,167,184,224,227,167,184,126,248,167,184,10,13,168,184,131,33,168,184,235,53,168,184,64,74,168,184,130,94,168,184,178,114,168,184,208,134,168,184,219,154,168,184,212,174,168,184,187,194,168,184,143,214,168,184,81,234,168,184,0,254,168,184,157,17,169,184,39,37,169,184,
159,56,169,184,4,76,169,184,87,95,169,184,152,114,169,184,198,133,169,184,226,152,169,184,235,171,169,184,225,190,169,184,197,209,169,184,151,228,169,184,86,247,169,184,3,10,170,184,157,28,170,184,36,47,170,184,153,65,170,184,251,83,170,184,75,102,170,184,137,120,170,184,179,138,170,184,203,156,170,184,209,174,170,184,196,192,170,184,164,210,170,184,114,228,170,184,45,246,170,184,214,7,171,184,108,25,171,184,239,42,171,184,96,60,171,184,190,77,171,184,10,95,171,184,67,112,171,184,105,129,171,184,
125,146,171,184,125,163,171,184,108,180,171,184,71,197,171,184,16,214,171,184,198,230,171,184,106,247,171,184,251,7,172,184,121,24,172,184,229,40,172,184,61,57,172,184,131,73,172,184,183,89,172,184,215,105,172,184,229,121,172,184,224,137,172,184,201,153,172,184,159,169,172,184,98,185,172,184,18,201,172,184,175,216,172,184,58,232,172,184,178,247,172,184,23,7,173,184,105,22,173,184,169,37,173,184,214,52,173,184,240,67,173,184,247,82,173,184,236,97,173,184,205,112,173,184,156,127,173,184,88,142,173,
184,1,157,173,184,152,171,173,184,27,186,173,184,140,200,173,184,234,214,173,184,53,229,173,184,109,243,173,184,147,1,174,184,165,15,174,184,165,29,174,184,146,43,174,184,108,57,174,184,51,71,174,184,231,84,174,184,137,98,174,184,23,112,174,184,147,125,174,184,251,138,174,184,81,152,174,184,148,165,174,184,196,178,174,184,225,191,174,184,235,204,174,184,227,217,174,184,199,230,174,184,153,243,174,184,87,0,175,184,3,13,175,184,155,25,175,184,33,38,175,184,148,50,175,184,244,62,175,184,65,75,175,184,
123,87,175,184,162,99,175,184,182,111,175,184,183,123,175,184,165,135,175,184,129,147,175,184,73,159,175,184,254,170,175,184,160,182,175,184,48,194,175,184,172,205,175,184,21,217,175,184,108,228,175,184,175,239,175,184,223,250,175,184,253,5,176,184,7,17,176,184,255,27,176,184,227,38,176,184,180,49,176,184,115,60,176,184,30,71,176,184,183,81,176,184,60,92,176,184,174,102,176,184,13,113,176,184,90,123,176,184,147,133,176,184,185,143,176,184,204,153,176,184,204,163,176,184,185,173,176,184,147,183,176,
184,90,193,176,184,14,203,176,184,175,212,176,184,61,222,176,184,184,231,176,184,32,241,176,184,116,250,176,184,182,3,177,184,229,12,177,184,0,22,177,184,8,31,177,184,254,39,177,184,224,48,177,184,175,57,177,184,107,66,177,184,20,75,177,184,170,83,177,184,45,92,177,184,157,100,177,184,250,108,177,184,67,117,177,184,122,125,177,184,157,133,177,184,174,141,177,184,171,149,177,184,149,157,177,184,108,165,177,184,48,173,177,184,225,180,177,184,127,188,177,184,10,196,177,184,129,203,177,184,230,210,177,
184,55,218,177,184,117,225,177,184,160,232,177,184,184,239,177,184,189,246,177,184,175,253,177,184,142,4,178,184,89,11,178,184,18,18,178,184,183,24,178,184,73,31,178,184,200,37,178,184,52,44,178,184,141,50,178,184,211,56,178,184,5,63,178,184,37,69,178,184,49,75,178,184,42,81,178,184,16,87,178,184,227,92,178,184,163,98,178,184,79,104,178,184,233,109,178,184,111,115,178,184,227,120,178,184,67,126,178,184,144,131,178,184,202,136,178,184,240,141,178,184,4,147,178,184,4,152,178,184,242,156,178,184,204,
161,178,184,147,166,178,184,71,171,178,184,231,175,178,184,117,180,178,184,239,184,178,184,87,189,178,184,171,193,178,184,236,197,178,184,26,202,178,184,53,206,178,184,60,210,178,184,49,214,178,184,18,218,178,184,224,221,178,184,155,225,178,184,67,229,178,184,216,232,178,184,90,236,178,184,200,239,178,184,36,243,178,184,108,246,178,184,161,249,178,184,195,252,178,184,210,255,178,184,205,2,179,184,182,5,179,184,139,8,179,184,77,11,179,184,253,13,179,184,153,16,179,184,33,19,179,184,151,21,179,184,
250,23,179,184,73,26,179,184,133,28,179,184,175,30,179,184,197,32,179,184,200,34,179,184,183,36,179,184,148,38,179,184,94,40,179,184,20,42,179,184,183,43,179,184,71,45,179,184,196,46,179,184,46,48,179,184,133,49,179,184,201,50,179,184,249,51,179,184,23,53,179,184,33,54,179,184,24,55,179,184,252,55,179,184,205,56,179,184,139,57,179,184,54,58,179,184,205,58,179,184,82,59,179,184,195,59,179,184,34,60,179,184,109,60,179,184,165,60,179,184,202,60,179,184,220,60,179,184,219,60,179,184,198,60,179,184,159,
60,179,184,100,60,179,184,23,60,179,184,182,59,179,184,66,59,179,184,188,58,179,184,34,58,179,184,117,57,179,184,181,56,179,184,225,55,179,184,251,54,179,184,2,54,179,184,245,52,179,184,214,51,179,184,163,50,179,184,94,49,179,184,5,48,179,184,153,46,179,184,27,45,179,184,137,43,179,184,228,41,179,184,44,40,179,184,97,38,179,184,131,36,179,184,146,34,179,184,142,32,179,184,119,30,179,184,76,28,179,184,15,26,179,184,191,23,179,184,92,21,179,184,229,18,179,184,92,16,179,184,192,13,179,184,16,11,179,
184,78,8,179,184,120,5,179,184,144,2,179,184,148,255,178,184,134,252,178,184,101,249,178,184,48,246,178,184,233,242,178,184,142,239,178,184,33,236,178,184,160,232,178,184,13,229,178,184,103,225,178,184,173,221,178,184,225,217,178,184,2,214,178,184,15,210,178,184,10,206,178,184,242,201,178,184,199,197,178,184,137,193,178,184,56,189,178,184,212,184,178,184,93,180,178,184,211,175,178,184,54,171,178,184,134,166,178,184,195,161,178,184,238,156,178,184,5,152,178,184,10,147,178,184,251,141,178,184,218,136,
178,184,166,131,178,184,95,126,178,184,5,121,178,184,152,115,178,184,24,110,178,184,133,104,178,184,224,98,178,184,39,93,178,184,92,87,178,184,126,81,178,184,141,75,178,184,137,69,178,184,114,63,178,184,72,57,178,184,12,51,178,184,188,44,178,184,90,38,178,184,229,31,178,184,93,25,178,184,195,18,178,184,21,12,178,184,85,5,178,184,130,254,177,184,156,247,177,184,163,240,177,184,151,233,177,184,121,226,177,184,72,219,177,184,4,212,177,184,173,204,177,184,67,197,177,184,199,189,177,184,56,182,177,184,
150,174,177,184,225,166,177,184,26,159,177,184,64,151,177,184,83,143,177,184,83,135,177,184,65,127,177,184,28,119,177,184,228,110,177,184,153,102,177,184,60,94,177,184,204,85,177,184,73,77,177,184,180,68,177,184,12,60,177,184,81,51,177,184,132,42,177,184,163,33,177,184,177,24,177,184,171,15,177,184,147,6,177,184,104,253,176,184,43,244,176,184,219,234,176,184,120,225,176,184,2,216,176,184,122,206,176,184,224,196,176,184,50,187,176,184,114,177,176,184,160,167,176,184,187,157,176,184,195,147,176,184,
185,137,176,184,156,127,176,184,108,117,176,184,42,107,176,184,214,96,176,184,110,86,176,184,245,75,176,184,104,65,176,184,202,54,176,184,24,44,176,184,84,33,176,184,126,22,176,184,149,11,176,184,153,0,176,184,139,245,175,184,107,234,175,184,56,223,175,184,242,211,175,184,154,200,175,184,48,189,175,184,179,177,175,184,36,166,175,184,130,154,175,184,205,142,175,184,7,131,175,184,45,119,175,184,66,107,175,184,68,95,175,184,51,83,175,184,16,71,175,184,219,58,175,184,147,46,175,184,57,34,175,184,205,
21,175,184,78,9,175,184,189,252,174,184,25,240,174,184,99,227,174,184,155,214,174,184,192,201,174,184,211,188,174,184,212,175,174,184,194,162,174,184,158,149,174,184,104,136,174,184,32,123,174,184,197,109,174,184,88,96,174,184,216,82,174,184,70,69,174,184,162,55,174,184,236,41,174,184,36,28,174,184,73,14,174,184,92,0,174,184,93,242,173,184,75,228,173,184,40,214,173,184,242,199,173,184,170,185,173,184,79,171,173,184,227,156,173,184,100,142,173,184,212,127,173,184,49,113,173,184,123,98,173,184,180,
83,173,184,219,68,173,184,239,53,173,184,242,38,173,184,226,23,173,184,192,8,173,184,140,249,172,184,70,234,172,184,238,218,172,184,131,203,172,184,7,188,172,184,121,172,172,184,216,156,172,184,38,141,172,184,97,125,172,184,139,109,172,184,162,93,172,184],"i8",4,y.a+972800);
Q([168,77,172,184,155,61,172,184,124,45,172,184,76,29,172,184,9,13,172,184,181,252,171,184,78,236,171,184,214,219,171,184,75,203,171,184,175,186,171,184,1,170,171,184,65,153,171,184,111,136,171,184,139,119,171,184,149,102,171,184,141,85,171,184,115,68,171,184,72,51,171,184,10,34,171,184,187,16,171,184,90,255,170,184,231,237,170,184,98,220,170,184,204,202,170,184,35,185,170,184,105,167,170,184,157,149,170,184,191,131,170,184,208,113,170,184,207,95,170,184,188,77,170,184,151,59,170,184,96,41,170,184,
24,23,170,184,190,4,170,184,82,242,169,184,213,223,169,184,70,205,169,184,165,186,169,184,243,167,169,184,47,149,169,184,89,130,169,184,114,111,169,184,121,92,169,184,110,73,169,184,82,54,169,184,36,35,169,184,228,15,169,184,147,252,168,184,49,233,168,184,189,213,168,184,55,194,168,184,159,174,168,184,247,154,168,184,60,135,168,184,112,115,168,184,147,95,168,184,164,75,168,184,164,55,168,184,146,35,168,184,110,15,168,184,58,251,167,184,243,230,167,184,156,210,167,184,51,190,167,184,184,169,167,184,
44,149,167,184,143,128,167,184,224,107,167,184,32,87,167,184,78,66,167,184,107,45,167,184,119,24,167,184,114,3,167,184,91,238,166,184,51,217,166,184,249,195,166,184,174,174,166,184,82,153,166,184,229,131,166,184,102,110,166,184,214,88,166,184,53,67,166,184,131,45,166,184,191,23,166,184,234,1,166,184,4,236,165,184,13,214,165,184,5,192,165,184,235,169,165,184,192,147,165,184,132,125,165,184,55,103,165,184,217,80,165,184,106,58,165,184,233,35,165,184,88,13,165,184,181,246,164,184,2,224,164,184,61,201,
164,184,103,178,164,184,128,155,164,184,136,132,164,184,128,109,164,184,102,86,164,184,59,63,164,184,255,39,164,184,178,16,164,184,84,249,163,184,230,225,163,184,102,202,163,184,213,178,163,184,52,155,163,184,129,131,163,184,190,107,163,184,234,83,163,184,4,60,163,184,14,36,163,184,8,12,163,184,240,243,162,184,199,219,162,184,142,195,162,184,68,171,162,184,233,146,162,184,125,122,162,184,1,98,162,184,115,73,162,184,213,48,162,184,39,24,162,184,103,255,161,184,151,230,161,184,182,205,161,184,197,180,
161,184,194,155,161,184,175,130,161,184,140,105,161,184,88,80,161,184,19,55,161,184,189,29,161,184,87,4,161,184,225,234,160,184,89,209,160,184,194,183,160,184,25,158,160,184,96,132,160,184,151,106,160,184,189,80,160,184,210,54,160,184,215,28,160,184,204,2,160,184,176,232,159,184,132,206,159,184,71,180,159,184,250,153,159,184,156,127,159,184,46,101,159,184,175,74,159,184,32,48,159,184,129,21,159,184,209,250,158,184,17,224,158,184,65,197,158,184,97,170,158,184,112,143,158,184,110,116,158,184,93,89,
158,184,59,62,158,184,9,35,158,184,199,7,158,184,116,236,157,184,17,209,157,184,158,181,157,184,27,154,157,184,136,126,157,184,228,98,157,184,49,71,157,184,109,43,157,184,153,15,157,184,181,243,156,184,192,215,156,184,188,187,156,184,168,159,156,184,131,131,156,184,79,103,156,184,10,75,156,184,182,46,156,184,81,18,156,184,221,245,155,184,88,217,155,184,196,188,155,184,31,160,155,184,107,131,155,184,166,102,155,184,210,73,155,184,238,44,155,184,250,15,155,184,246,242,154,184,226,213,154,184,190,184,
154,184,139,155,154,184,71,126,154,184,244,96,154,184,145,67,154,184,30,38,154,184,156,8,154,184,9,235,153,184,103,205,153,184,182,175,153,184,244,145,153,184,35,116,153,184,66,86,153,184,81,56,153,184,81,26,153,184,65,252,152,184,34,222,152,184,243,191,152,184,180,161,152,184,102,131,152,184,8,101,152,184,154,70,152,184,29,40,152,184,145,9,152,184,244,234,151,184,73,204,151,184,142,173,151,184,195,142,151,184,233,111,151,184,0,81,151,184,7,50,151,184,254,18,151,184,231,243,150,184,191,212,150,184,
137,181,150,184,67,150,150,184,238,118,150,184,137,87,150,184,21,56,150,184,146,24,150,184,255,248,149,184,93,217,149,184,172,185,149,184,236,153,149,184,28,122,149,184,62,90,149,184,80,58,149,184,82,26,149,184,70,250,148,184,42,218,148,184,0,186,148,184,198,153,148,184,125,121,148,184,37,89,148,184,190,56,148,184,72,24,148,184,194,247,147,184,46,215,147,184,139,182,147,184,216,149,147,184,23,117,147,184,71,84,147,184,103,51,147,184,121,18,147,184,124,241,146,184,111,208,146,184,84,175,146,184,42,
142,146,184,242,108,146,184,170,75,146,184,83,42,146,184,238,8,146,184,122,231,145,184,247,197,145,184,101,164,145,184,196,130,145,184,21,97,145,184,87,63,145,184,138,29,145,184,174,251,144,184,196,217,144,184,203,183,144,184,196,149,144,184,173,115,144,184,136,81,144,184,85,47,144,184,19,13,144,184,194,234,143,184,99,200,143,184,245,165,143,184,121,131,143,184,238,96,143,184,84,62,143,184,172,27,143,184,246,248,142,184,49,214,142,184,94,179,142,184,124,144,142,184,140,109,142,184,141,74,142,184,
128,39,142,184,101,4,142,184,59,225,141,184,3,190,141,184,189,154,141,184,104,119,141,184,6,84,141,184,148,48,141,184,21,13,141,184,135,233,140,184,235,197,140,184,65,162,140,184,137,126,140,184,194,90,140,184,237,54,140,184,11,19,140,184,26,239,139,184,27,203,139,184,13,167,139,184,242,130,139,184,201,94,139,184,145,58,139,184,76,22,139,184,249,241,138,184,151,205,138,184,40,169,138,184,170,132,138,184,31,96,138,184,134,59,138,184,223,22,138,184,41,242,137,184,103,205,137,184,150,168,137,184,183,
131,137,184,202,94,137,184,208,57,137,184,200,20,137,184,178,239,136,184,142,202,136,184,93,165,136,184,30,128,136,184,209,90,136,184,118,53,136,184,14,16,136,184,152,234,135,184,20,197,135,184,131,159,135,184,228,121,135,184,56,84,135,184,126,46,135,184,182,8,135,184,225,226,134,184,254,188,134,184,14,151,134,184,16,113,134,184,5,75,134,184,236,36,134,184,198,254,133,184,146,216,133,184,81,178,133,184,3,140,133,184,167,101,133,184,62,63,133,184,200,24,133,184,68,242,132,184,179,203,132,184,20,165,
132,184,105,126,132,184,176,87,132,184,233,48,132,184,22,10,132,184,53,227,131,184,71,188,131,184,76,149,131,184,68,110,131,184,47,71,131,184,13,32,131,184,221,248,130,184,160,209,130,184,87,170,130,184,0,131,130,184,156,91,130,184,43,52,130,184,174,12,130,184,35,229,129,184,139,189,129,184,230,149,129,184,53,110,129,184,118,70,129,184,171,30,129,184,211,246,128,184,237,206,128,184,251,166,128,184,253,126,128,184,241,86,128,184,217,46,128,184,179,6,128,184,3,189,127,184,134,108,127,184,239,27,127,
184,63,203,126,184,117,122,126,184,146,41,126,184,150,216,125,184,129,135,125,184,82,54,125,184,10,229,124,184,169,147,124,184,47,66,124,184,156,240,123,184,240,158,123,184,43,77,123,184,77,251,122,184,86,169,122,184,70,87,122,184,29,5,122,184,219,178,121,184,129,96,121,184,14,14,121,184,130,187,120,184,221,104,120,184,32,22,120,184,74,195,119,184,92,112,119,184,85,29,119,184,53,202,118,184,254,118,118,184,173,35,118,184,69,208,117,184,196,124,117,184,42,41,117,184,121,213,116,184,175,129,116,184,
205,45,116,184,211,217,115,184,193,133,115,184,150,49,115,184,84,221,114,184,250,136,114,184,135,52,114,184,253,223,113,184,91,139,113,184,161,54,113,184,207,225,112,184,229,140,112,184,227,55,112,184,202,226,111,184,153,141,111,184,81,56,111,184,241,226,110,184,121,141,110,184,234,55,110,184,67,226,109,184,133,140,109,184,176,54,109,184,195,224,108,184,191,138,108,184,163,52,108,184,112,222,107,184,38,136,107,184,197,49,107,184,77,219,106,184,189,132,106,184,23,46,106,184,89,215,105,184,133,128,
105,184,153,41,105,184,151,210,104,184,126,123,104,184,78,36,104,184,7,205,103,184,169,117,103,184,52,30,103,184,169,198,102,184,8,111,102,184,79,23,102,184,128,191,101,184,155,103,101,184,159,15,101,184,140,183,100,184,99,95,100,184,36,7,100,184,207,174,99,184,99,86,99,184,225,253,98,184,72,165,98,184,154,76,98,184,213,243,97,184,250,154,97,184,9,66,97,184,2,233,96,184,229,143,96,184,178,54,96,184,106,221,95,184,11,132,95,184,150,42,95,184,12,209,94,184,108,119,94,184,182,29,94,184,235,195,93,184,
10,106,93,184,19,16,93,184,7,182,92,184,229,91,92,184,174,1,92,184,97,167,91,184,255,76,91,184,136,242,90,184,251,151,90,184,89,61,90,184,161,226,89,184,213,135,89,184,243,44,89,184,252,209,88,184,240,118,88,184,207,27,88,184,153,192,87,184,79,101,87,184,239,9,87,184,122,174,86,184,240,82,86,184,82,247,85,184,159,155,85,184,215,63,85,184,250,227,84,184,9,136,84,184,3,44,84,184,233,207,83,184,186,115,83,184,118,23,83,184,31,187,82,184,178,94,82,184,50,2,82,184,157,165,81,184,243,72,81,184,54,236,80,
184,100,143,80,184,126,50,80,184,132,213,79,184,118,120,79,184,84,27,79,184,30,190,78,184,212,96,78,184,118,3,78,184,4,166,77,184,126,72,77,184,228,234,76,184,55,141,76,184,118,47,76,184,161,209,75,184,185,115,75,184,189,21,75,184,174,183,74,184,139,89,74,184,84,251,73,184,10,157,73,184,173,62,73,184,60,224,72,184,184,129,72,184,33,35,72,184,118,196,71,184,185,101,71,184,232,6,71,184,4,168,70,184,13,73,70,184,3,234,69,184,230,138,69,184,182,43,69,184,115,204,68,184,30,109,68,184,181,13,68,184,58,
174,67,184,172,78,67,184,11,239,66,184,88,143,66,184,146,47,66,184,185,207,65,184,206,111,65,184,209,15,65,184,193,175,64,184,158,79,64,184,105,239,63,184,34,143,63,184,201,46,63,184,93,206,62,184,224,109,62,184,80,13,62,184,174,172,61,184,250,75,61,184,51,235,60,184,91,138,60,184,113,41,60,184,117,200,59,184,103,103,59,184,72,6,59,184,22,165,58,184,211,67,58,184,126,226,57,184,24,129,57,184,160,31,57,184,22,190,56,184,123,92,56,184,206,250,55,184,16,153,55,184,65,55,55,184,96,213,54,184,110,115,
54,184,106,17,54,184,86,175,53,184,48,77,53,184,249,234,52,184,177,136,52,184,88,38,52,184,237,195,51,184,114,97,51,184,230,254,50,184,73,156,50,184,155,57,50,184,221,214,49,184,13,116,49,184,45,17,49,184,61,174,48,184,59,75,48,184,41,232,47,184,7,133,47,184,212,33,47,184,144,190,46,184,60,91,46,184,216,247,45,184,99,148,45,184,222,48,45,184,73,205,44,184,164,105,44,184,238,5,44,184,41,162,43,184,83,62,43,184,109,218,42,184,120,118,42,184,114,18,42,184,92,174,41,184,55,74,41,184,2,230,40,184,189,
129,40,184,104,29,40,184,3,185,39,184,143,84,39,184,11,240,38,184,120,139,38,184,213,38,38,184,35,194,37,184,97,93,37,184,144,248,36,184,176,147,36,184,192,46,36,184,193,201,35,184,179,100,35,184,150,255,34,184,105,154,34,184,46,53,34,184,227,207,33,184,137,106,33,184,33,5,33,184,169,159,32,184,35,58,32,184,142,212,31,184,234,110,31,184,55,9,31,184,118,163,30,184,166,61,30,184,199,215,29,184,218,113,29,184,223,11,29,184,212,165,28,184,188,63,28,184,149,217,27,184,96,115,27,184,28,13,27,184,202,166,
26,184,106,64,26,184,252,217,25,184,127,115,25,184,245,12,25,184,92,166,24,184,182,63,24,184,2,217,23,184,63,114,23,184,111,11,23,184,145,164,22,184,165,61,22,184,172,214,21,184,165,111,21,184,144,8,21,184,110,161,20,184,62,58,20,184,0,211,19,184,181,107,19,184,93,4,19,184,247,156,18,184,132,53,18,184,4,206,17,184,118,102,17,184,220,254,16,184,52,151,16,184,127,47,16,184,189,199,15,184,238,95,15,184,17,248,14,184,40,144,14,184,51,40,14,184,48,192,13,184,32,88,13,184,4,240,12,184,219,135,12,184,165,
31,12,184,99,183,11,184,20,79,11,184,185,230,10,184,81,126,10,184,221,21,10,184,92,173,9,184,207,68,9,184,54,220,8,184,144,115,8,184,222,10,8,184,32,162,7,184,86,57,7,184,128,208,6,184,158,103,6,184,175,254,5,184,181,149,5,184,175,44,5,184,157,195,4,184,127,90,4,184,86,241,3,184,32,136,3,184,223,30,3,184,147,181,2,184,59,76,2,184,215,226,1,184,104,121,1,184,237,15,1,184,103,166,0,184,213,60,0,184,113,166,255,183,33,211,254,183,186,255,253,183,61,44,253,183,170,88,252,183,0,133,251,183,65,177,250,
183,107,221,249,183,128,9,249,183,126,53,248,183,103,97,247,183,58,141,246,183,248,184,245,183,160,228,244,183,51,16,244,183,176,59,243,183,25,103,242,183,108,146,241,183,170,189,240,183,211,232,239,183,232,19,239,183,231,62,238,183,210,105,237,183,169,148,236,183,107,191,235,183,24,234,234,183,177,20,234,183,54,63,233,183,167,105,232,183,4,148,231,183,77,190,230,183,130,232,229,183,164,18,229,183,177,60,228,183,172,102,227,183,146,144,226,183,101,186,225,183,37,228,224,183,210,13,224,183,108,55,
223,183,242,96,222,183,102,138,221,183,199,179,220,183,21,221,219,183,80,6,219,183,121,47,218,183,143,88,217,183,147,129,216,183,133,170,215,183,100,211,214,183,50,252,213,183,237,36,213,183,150,77,212,183,46,118,211,183,180,158,210,183,40,199,209,183,138,239,208,183,219,23,208,183,27,64,207,183,73,104,206,183,102,144,205,183,114,184,204,183,109,224,203,183,87,8,203,183,49,48,202,183,249,87,201,183,177,127,200,183,88,167,199,183,239,206,198,183,118,246,197,183,236,29,197,183,82,69,196,183,167,108,
195,183,237,147,194,183,35,187,193,183,73,226,192,183,96,9,192,183,102,48,191,183,93,87,190,183,69,126,189,183,29,165,188,183,230,203,187,183,160,242,186,183,75,25,186,183,230,63,185,183,115,102,184,183,241,140,183,183,96,179,182,183,193,217,181,183,19,0,181,183,86,38,180,183,140,76,179,183,179,114,178,183,203,152,177,183,214,190,176,183,211,228,175,183,194,10,175,183,162,48,174,183,118,86,173,183,59,124,172,183,243,161,171,183,158,199,170,183,59,237,169,183,203,18,169,183,78,56,168,183,196,93,167,
183,45,131,166,183,137,168,165,183,216,205,164,183,26,243,163,183,80,24,163,183,121,61,162,183,150,98,161,183,166,135,160,183,171,172,159,183,163,209,158,183,143,246,157,183,111,27,157,183,67,64,156,183,11,101,155,183,200,137,154,183,121,174,153,183,31,211,152,183,185,247,151,183,72,28,151,183,203,64,150,183,68,101,149,183,177,137,148,183,20,174,147,183,107,210,146,183,184,246,145,183,250,26,145,183,50,63,144,183,95,99,143,183,130,135,142,183,154,171,141,183,168,207,140,183,172,243,139,183,166,23,
139,183,151,59,138,183,125,95,137,183,89,131,136,183,44,167,135,183,245,202,134,183,181,238,133,183,108,18,133,183,25,54,132,183,189,89,131,183,87,125,130,183,233,160,129,183,114,196,128,183,228,207,127,183,211,22,126,183,176,93,124,183,124,164,122,183,56,235,120,183,226,49,119,183,124,120,117,183,6,191,115,183,128,5,114,183,233,75,112,183,67,146,110,183,141,216,108,183,200,30,107,183,243,100,105,183,16,171,103,183,29,241,101,183,28,55,100,183,12,125,98,183,238,194,96,183,194,8,95,183,136,78,93,183,
64,148,91,183,235,217,89,183,136,31,88,183,24,101,86,183,155,170,84,183,17,240,82,183,122,53,81,183,215,122,79,183,40,192,77,183,109,5,76,183,165,74,74,183,210,143,72,183,244,212,70,183,10,26,69,183,21,95,67,183,21,164,65,183,10,233,63,183,244,45,62,183,212,114,60,183,170,183,58,183,118,252,56,183,56,65,55,183,240,133,53,183,159,202,51,183,68,15,50,183,225,83,48,183,116,152,46,183,255,220,44,183,129,33,43,183,250,101,41,183,108,170,39,183,213,238,37,183,55,51,36,183,144,119,34,183,227,187,32,183,
46,0,31,183,114,68,29,183,175,136,27,183,230,204,25,183,22,17,24,183,63,85,22,183,99,153,20,183,128,221,18,183,152,33,17,183,170,101,15,183,182,169,13,183,190,237,11,183,192,49,10,183,190,117,8,183,182,185,6,183,171,253,4,183,155,65,3,183,135,133,1,183,221,146,255,182,165,26,252,182,102,162,248,182,33,42,245,182,213,177,241,182,131,57,238,182,43,193,234,182,206,72,231,182,108,208,227,182,5,88,224,182,155,223,220,182,44,103,217,182,186,238,213,182,70,118,210,182,206,253,206,182,84,133,203,182,216,
12,200,182,90,148,196,182,220,27,193,182,92,163,189,182,220,42,186,182,92,178,182,182,220,57,179,182,93,193,175,182,222,72,172,182,98,208,168,182,230,87,165,182,109,223,161,182,247,102,158,182,131,238,154,182,19,118,151,182,166,253,147,182,61,133,144,182,216,12,141,182,120,148,137,182,30,28,134,182,200,163,130,182,241,86,126,182,94,102,119,182,217,117,112,182,97,133,105,182,247,148,98,182,157,164,91,182,83,180,84,182,26,196,77,182,243,211,70,182,221,227,63,182,219,243,56,182,236,3,50,182,18,20,43,
182,77,36,36,182,158,52,29,182,6,69,22,182,133,85,15,182,28,102,8,182,204,118,1,182,43,15,245,181,244,48,231,181,242,82,217,181,40,117,203,181,152,151,189,181,66,186,175,181,40,221,161,181,76,0,148,181,174,35,134,181,163,142,112,181,110,214,84,181,191,30,57,181,155,103,29,181,3,177,1,181,245,245,203,180,10,139,148,180,150,66,58,180,243,226,150,179,212,116,13,51,106,41,18,52,140,121,128,52,27,221,183,52,92,63,239,52,36,80,19,53,237,255,46,53,5,175,74,53,107,93,102,53,141,5,129,53,9,220,142,53,38,178,
156,53,228,135,170,53,66,93,184,53,61,50,198,53,212,6,212,53,6,219,225,53,209,174,239,53,52,130,253,53,151,170,5,54,222,147,12,54,239,124,19,54,201,101,26,54,107,78,33,54,213,54,40,54,5,31,47,54,251,6,54,54,183,238,60,54,56,214,67,54,124,189,74,54,132,164,81,54,77,139,88,54,217,113,95,54,37,88,102,54,50,62,109,54,254,35,116,54,137,9,123,54,105,247,128,54,236,105,132,54,78,220,135,54,141,78,139,54,170,192,142,54,164,50,146,54,123,164,149,54,46,22,153,54,190,135,156,54,41,249,159,54,111,106,163,54,
145,219,166,54,141,76,170,54,100,189,173,54,20,46,177,54,158,158,180,54,1,15,184,54,61,127,187,54,82,239,190,54,62,95,194,54,3,207,197,54,158,62,201,54,17,174,204,54,91,29,208,54,122,140,211,54,112,251,214,54,59,106,218,54,219,216,221,54,80,71,225,54,154,181,228,54,184,35,232,54,169,145,235,54,110,255,238,54,6,109,242,54,113,218,245,54,174,71,249,54,189,180,252,54,206,16,0,55,39,199,1,55,105,125,3,55,146,51,5,55,164,233,6,55,157,159,8,55,126,85,10,55,71,11,12,55,247,192,13,55,142,118,15,55,13,44,
17,55,114,225,18,55,189,150,20,55,239,75,22,55,8,1,24,55,6,182,25,55,235,106,27,55,181,31,29,55,101,212,30,55,250,136,32,55,116,61,34,55,211,241,35,55,23,166,37,55,64,90,39,55,77,14,41,55,63,194,42,55,20,118,44,55,206,41,46,55,107,221,47,55,236,144,49,55,80,68,51,55,152,247,52,55,195,170,54,55,208,93,56,55,192,16,58,55,147,195,59,55,72,118,61,55,223,40,63,55,88,219,64,55,179,141,66,55,239,63,68,55,13,242,69,55,12,164,71,55,237,85,73,55,174,7,75,55,80,185,76,55,210,106,78,55,53,28,80,55,120,205,81,
55,155,126,83,55,158,47,85,55,129,224,86,55,67,145,88,55,228,65,90,55,101,242,91,55,196,162,93,55,2,83,95,55,31,3,97,55,26,179,98,55,244,98,100,55,171,18,102,55,64,194,103,55,180,113,105,55,4,33,107,55,50,208,108,55,61,127,110,55,38,46,112,55,235,220,113,55,140,139,115,55,10,58,117,55,101,232,118,55,156,150,120,55,174,68,122,55,156,242,123,55,102,160,125,55,12,78,127,55,198,125,128,55,116,84,129,55,15,43,130,55,152,1,131,55,14,216,131,55,113,174,132,55,193,132,133,55,254,90,134,55,40,49,135,55,63,
7,136,55,67,221,136,55,51,179,137,55,16,137,138,55,218,94,139,55,143,52,140,55,50,10,141,55,192,223,141,55,58,181,142,55,161,138,143,55,243,95,144,55,50,53,145,55,92,10,146,55,114,223,146,55,115,180,147,55,96,137,148,55,57,94,149,55,252,50,150,55,172,7,151,55,70,220,151,55,203,176,152,55,59,133,153,55,151,89,154,55,221,45,155,55,14,2,156,55,41,214,156,55,47,170,157,55,32,126,158,55,251,81,159,55,192,37,160,55,111,249,160,55,9,205,161,55,141,160,162,55,250,115,163,55,82,71,164,55,147,26,165,55,190,
237,165,55,211,192,166,55,209,147,167,55,185,102,168,55,138,57,169,55,68,12,170,55,231,222,170,55,116,177,171,55,234,131,172,55,72,86,173,55,144,40,174,55,192,250,174,55,217,204,175,55,218,158,176,55,196,112,177,55,151,66,178,55,81,20,179,55,244,229,179,55,128,183,180,55,243,136,181,55,78,90,182,55,145,43,183,55,188,252,183,55,207,205,184,55,201,158,185,55,171,111,186,55,117,64,187,55,38,17,188,55,190,225,188,55,61,178,189,55,164,130,190,55,242,82,191,55,38,35,192,55,66,243,192,55,68,195,193,55,45,
147,194,55,253,98,195,55,179,50,196,55,80,2,197,55,211,209,197,55,61,161,198,55,140,112,199,55,194,63,200,55,222,14,201,55,224,221,201,55,199,172,202,55,149,123,203,55,72,74,204,55,225,24,205,55,96,231,205,55,195,181,206,55,13,132,207,55,59,82,208,55,79,32,209,55,72,238,209,55,38,188,210,55,233,137,211,55,145,87,212,55,30,37,213,55,143,242,213,55,229,191,214,55,31,141,215,55,62,90,216,55,66,39,217,55,42,244,217,55,245,192,218,55,166,141,219,55,58,90,220,55,178,38,221,55,14,243,221,55,77,191,222,55,
113,139,223,55,120,87,224,55,99,35,225,55,49,239,225,55,227,186,226,55,119,134,227,55,240,81,228,55,75,29,229,55,137,232,229,55,170,179,230,55,175,126,231,55,150,73,232,55,95,20,233,55,12,223,233,55,155,169,234,55,12,116,235,55,96,62,236,55,150,8,237,55,175,210,237,55,169,156,238,55,134,102,239,55,69,48,240,55,229,249,240,55,104,195,241,55,204,140,242,55,18,86,243,55,57,31,244,55,66,232,244,55,45,177,245,55,249,121,246,55,166,66,247,55,52,11,248,55,163,211,248,55,244,155,249,55,37,100,250,55,55,44,
251,55,42,244,251,55,254,187,252,55,178,131,253,55,71,75,254,55,188,18,255,55,18,218,255,55,164,80,0,56,47,180,0,56,170,23,1,56,22,123,1,56,113,222,1,56,188,65,2,56,247,164,2,56,34,8,3,56,61,107,3,56,71,206,3,56,66,49,4,56,44,148,4,56,5,247,4,56,207,89,5,56,136,188,5,56,48,31,6,56,200,129,6,56,80,228,6,56,199,70,7,56,45,169,7,56,131,11,8,56,200,109,8,56,252,207,8,56,31,50,9,56,50,148,9,56,52,246,9,56,37,88,10,56,5,186,10,56,212,27,11,56,146,125,11,56,63,223,11,56,219,64,12,56,102,162,12,56,224,3,
13,56,72,101,13,56,159,198,13,56,229,39,14,56,26,137,14,56,62,234,14,56,79,75,15,56,80,172,15,56,63,13,16,56,29,110,16,56,233,206,16,56,163,47,17,56,76,144,17,56,227,240,17,56,104,81,18,56,220,177,18,56,62,18,19,56,142,114,19,56,204,210,19,56,249,50,20,56,19,147,20,56,28,243,20,56,18,83,21,56,247,178,21,56,201,18,22,56,137,114,22,56,55,210,22,56,211,49,23,56,93,145,23,56,212,240,23,56,57,80,24,56,140,175,24,56,204,14,25,56,250,109,25,56,21,205,25,56,30,44,26,56,20,139,26,56,248,233,26,56,201,72,27,
56,136,167,27,56,52,6,28,56,205,100,28,56,83,195,28,56,198,33,29,56,39,128,29,56,117,222,29,56,176,60,30,56,215,154,30,56,236,248,30,56,238,86,31,56,221,180,31,56,185,18,32,56,129,112,32,56,54,206,32,56,217,43,33,56,103,137,33,56,227,230,33,56,75,68,34,56,160,161,34,56,226,254,34,56,16,92,35,56,42,185,35,56,49,22,36,56,37,115,36,56,5,208,36,56,209,44,37,56,137,137,37,56,46,230,37,56,191,66,38,56,61,159,38,56,166,251,38,56,252,87,39,56,62,180,39,56,108,16,40,56,134,108,40,56,140,200,40,56,125,36,41,
56,91,128,41,56,37,220,41,56,219,55,42,56,124,147,42,56,9,239,42,56,130,74,43,56,231,165,43,56,55,1,44,56,115,92,44,56,155,183,44,56,174,18,45,56,173,109,45,56,151,200,45,56,108,35,46,56,45,126,46,56,218,216,46,56,114,51,47,56,245,141,47,56,99,232,47,56,189,66,48,56,2,157,48,56,50,247,48,56,77,81,49,56,83,171,49,56,68,5,50,56,33,95,50,56,232,184,50,56,154,18,51,56,56,108,51,56,192,197,51,56,51,31,52,56,144,120,52,56,217,209,52,56,12,43,53,56,42,132,53,56,51,221,53,56,38,54,54,56,4,143,54,56,205,231,
54,56,128,64,55,56,29,153,55,56,165,241,55,56,24,74,56,56,117,162,56,56,188,250,56,56,237,82,57,56,9,171,57,56,15,3,58,56,255,90,58,56,218,178,58,56,158,10,59,56,77,98,59,56,230,185,59,56,105,17,60,56,214,104,60,56,45,192,60,56,109,23,61,56,152,110,61,56,173,197,61,56,171,28,62,56,147,115,62,56,101,202,62,56,33,33,63,56,198,119,63,56,86,206,63,56,206,36,64,56,49,123,64,56,125,209,64,56,178,39,65,56,209,125,65,56,217,211,65,56,203,41,66,56,166,127,66,56,107,213,66,56,25,43,67,56,176,128,67,56,49,214,
67,56,154,43,68,56,237,128,68,56,41,214,68,56,79,43,69,56,93,128,69,56,84,213,69,56,53,42,70,56,254,126,70,56,176,211,70,56,76,40,71,56,208,124,71,56,61,209,71,56,147,37,72,56,209,121,72,56,249,205,72,56,9,34,73,56,2,118,73,56,227,201,73,56,173,29,74,56,96,113,74,56,251,196,74,56,127,24,75,56,236,107,75,56,64,191,75,56,126,18,76,56,163,101,76,56,177,184,76,56,168,11,77,56,134,94,77,56,77,177,77,56,252,3,78,56,148,86,78,56,19,169,78,56,123,251,78,56,203,77,79,56,3,160,79,56,35,242,79,56,43,68,80,56,
27,150,80,56,242,231,80,56,178,57,81,56,90,139,81,56,233,220,81,56,97,46,82,56,192,127,82,56,7,209,82,56,53,34,83,56,76,115,83,56,74,196,83,56,47,21,84,56,253,101,84,56,177,182,84,56,78,7,85,56,210,87,85,56,61,168,85,56,144,248,85,56,202,72,86,56,235,152,86,56,244,232,86,56,228,56,87,56,188,136,87,56,123,216,87,56,33,40,88,56,174,119,88,56,34,199,88,56,126,22,89,56,192,101,89,56,234,180,89,56,250,3,90,56,242,82,90,56,209,161,90,56,150,240,90,56,67,63,91,56,214,141,91,56,81,220,91,56,178,42,92,56,
250,120,92,56,40,199,92,56,62,21,93,56,58,99,93,56,29,177,93,56,230,254,93,56,150,76,94,56,45,154,94,56,170,231,94,56,13,53,95,56,88,130,95,56,136,207,95,56,159,28,96,56,157,105,96,56,129,182,96,56,75,3,97,56,251,79,97,56,146,156,97,56,15,233,97,56,115,53,98,56,188,129,98,56,236,205,98,56,1,26,99,56,253,101,99,56,223,177,99,56,167,253,99,56,85,73,100,56,233,148,100,56,99,224,100,56,195,43,101,56,9,119,101,56,53,194,101,56,70,13,102,56,61,88,102,56,27,163,102,56,221,237,102,56,134,56,103,56,20,131,
103,56,136,205,103,56,226,23,104,56,33,98,104,56,70,172,104,56,80,246,104,56,64,64,105,56,22,138,105,56,209,211,105,56,113,29,106,56,247,102,106,56,98,176,106,56,178,249,106,56,232,66,107,56,3,140,107,56,4,213,107,56,233,29,108,56,180,102,108,56,100,175,108,56,249,247,108,56,116,64,109,56,211,136,109,56,24,209,109,56,65,25,110,56,80,97,110,56,67,169,110,56,28,241,110,56,217,56,111,56,124,128,111,56,3,200,111,56,111,15,112,56,192,86,112,56,246,157,112,56,16,229,112,56,16,44,113,56,244,114,113,56,188,
185,113,56,106,0,114,56,252,70,114,56,114,141,114,56,206,211,114,56,13,26,115,56,50,96,115,56,59,166,115,56,40,236,115,56,250,49,116,56,176,119,116,56,74,189,116,56,201,2,117,56,44,72,117,56,116,141,117,56,160,210,117,56,176,23,118,56,164,92,118,56,125,161,118,56,58,230,118,56,219,42,119,56,96,111,119,56,201,179,119,56,22,248,119,56,72,60,120,56,93,128,120,56,86,196,120,56,52,8,121,56,245,75,121,56,154,143,121,56,35,211,121,56,144,22,122,56,225,89,122,56,22,157,122,56,47,224,122,56,43,35,123,56,11,
102,123,56,206,168,123,56,118,235,123,56,1,46,124,56,112,112,124,56,194,178,124,56,248,244,124,56,18,55,125,56,15,121,125,56,239,186,125,56,179,252,125,56,91,62,126,56,230,127,126,56,84,193,126,56,166,2,127,56,219,67,127,56,244,132,127,56,240,197,127,56,103,3,128,56,201,35,128,56,28,68,128,56,96,100,128,56,150,132,128,56,190,164,128,56,215,196,128,56,226,228,128,56,222,4,129,56,204,36,129,56,171,68,129,56,124,100,129,56,63,132,129,56,243,163,129,56,152,195,129,56,47,227,129,56,183,2,130,56,49,34,
130,56,156,65,130,56,249,96,130,56,71,128,130,56,134,159,130,56,183,190,130,56,217,221,130,56,237,252,130,56,242,27,131,56,232,58,131,56,208,89,131,56,168,120,131,56,115,151,131,56,46,182,131,56,219,212,131,56,121,243,131,56,8,18,132,56,137,48,132,56,251,78,132,56,93,109,132,56,178,139,132,56,247,169,132,56,46,200,132,56,85,230,132,56,110,4,133,56,121,34,133,56,116,64,133,56,96,94,133,56,62,124,133,56,12,154,133,56,204,183,133,56,125,213,133,56,31,243,133,56,178,16,134,56,54,46,134,56,171,75,134,
56,17,105,134,56,104,134,134,56,176,163,134,56,233,192,134,56,19,222,134,56,46,251,134,56,58,24,135,56,55,53,135,56,37,82,135,56,4,111,135,56,212,139,135,56,149,168,135,56,70,197,135,56,233,225,135,56,124,254,135,56,1,27,136,56,118,55,136,56,220,83,136,56,51,112,136,56,122,140,136,56,179,168,136,56,220,196,136,56,246,224,136,56,1,253,136,56,253,24,137,56,233,52,137,56,198,80,137,56,148,108,137,56,83,136,137,56,2,164,137,56,162,191,137,56,51,219,137,56,181,246,137,56,39,18,138,56,138,45,138,56,221,
72,138,56,34,100,138,56,87,127,138,56,124,154,138,56,146,181,138,56,153,208,138,56,144,235,138,56,120,6,139,56,81,33,139,56,26,60,139,56,211,86,139,56,126,113,139,56,24,140,139,56,164,166,139,56,32,193,139,56,140,219,139,56,233,245,139,56,54,16,140,56,116,42,140,56,162,68,140,56,193,94,140,56,209,120,140,56,208,146,140,56,192,172,140,56,161,198,140,56,114,224,140,56,51,250,140,56,229,19,141,56,136,45,141,56,26,71,141,56,157,96,141,56,17,122,141,56,116,147,141,56,200,172,141,56,13,198,141,56,65,223,
141,56,103,248,141,56,124,17,142,56,130,42,142,56,120,67,142,56,94,92,142,56,52,117,142,56,251,141,142,56,178,166,142,56,90,191,142,56,241,215,142,56,121,240,142,56,241,8,143,56,89,33,143,56,177,57,143,56,250,81,143,56,51,106,143,56,92,130,143,56,117,154,143,56,126,178,143,56,120,202,143,56,97,226,143,56,59,250,143,56,5,18,144,56,191,41,144,56,105,65,144,56,3,89,144,56,142,112,144,56,8,136,144,56,115,159,144,56,205,182,144,56,24,206,144,56,82,229,144,56,125,252,144,56,152,19,145,56,162,42,145,56,
157,65,145,56,136,88,145,56,99,111,145,56,45,134,145,56,232,156,145,56,147,179,145,56,46,202,145,56,184,224,145,56,51,247,145,56,158,13,146,56,248,35,146,56,66,58,146,56,125,80,146,56,167,102,146,56,193,124,146,56,203,146,146,56,197,168,146,56,175,190,146,56,137,212,146,56,82,234,146,56,12,0,147,56,181,21,147,56,78,43,147,56,215,64,147,56,80,86,147,56,185,107,147,56,17,129,147,56,90,150,147,56,146,171,147,56,185,192,147,56,209,213,147,56,216,234,147,56,208,255,147,56,183,20,148,56,141,41,148,56,84,
62,148,56,10,83,148,56,176,103,148,56,70,124,148,56,203,144,148,56,64,165,148,56,165,185,148,56,249,205,148,56,61,226,148,56,113,246,148,56,149,10,149,56,168,30,149,56,171,50,149,56,158,70,149,56,128,90,149,56,82,110,149,56,19,130,149,56,196,149,149,56,101,169,149,56,245,188,149,56,117,208,149,56,229,227,149,56,68,247,149,56,146,10,150,56,209,29,150,56,255,48,150,56,28,68,150,56,41,87,150,56,38,106,150,56,18,125,150,56,237,143,150,56,185,162,150,56,115,181,150,56,30,200,150,56,183,218,150,56,65,237,
150,56,185,255,150,56,34,18,151,56,122,36,151,56,193,54,151,56,248,72,151,56,30,91,151,56,51,109,151,56,57,127,151,56,45,145,151,56,17,163,151,56,229,180,151,56,168,198,151,56,90,216,151,56,252,233,151,56,141,251,151,56,14,13,152,56,126,30,152,56,221,47,152,56,44,65,152,56,106,82,152,56,152,99,152,56,181,116,152,56,193,133,152,56,189,150,152,56,168,167,152,56,131,184,152,56,76,201,152,56,6,218,152,56,174,234,152,56,70,251,152,56,205,11,153,56,68,28,153,56,169,44,153,56,254,60,153,56,67,77,153,56,
119,93,153,56,154,109,153,56,172,125,153,56,174,141,153,56,158,157,153,56,127,173,153,56,78,189,153,56,13,205,153,56,187,220,153,56,88,236,153,56,228,251,153,56,96,11,154,56,203,26,154,56,37,42,154,56,111,57,154,56,167,72,154,56,207,87,154,56,230,102,154,56,237,117,154,56,226,132,154,56,199,147,154,56,155,162,154,56,94,177,154,56,16,192,154,56,178,206,154,56,66,221,154,56,194,235,154,56,49,250,154,56,143,8,155,56,221,22,155,56,25,37,155,56,69,51,155,56,95,65,155,56,105,79,155,56,98,93,155,56,75,107,
155,56,34,121,155,56,232,134,155,56,158,148,155,56,67,162,155,56,214,175,155,56,89,189,155,56,203,202,155,56,44,216,155,56,125,229,155,56,188,242,155,56,234,255,155,56,8,13,156,56,20,26,156,56,16,39,156,56,251,51,156,56,213,64,156,56,157,77,156,56,85,90,156,56,252,102,156,56,146,115,156,56,23,128,156,56,139,140,156,56,239,152,156,56,65,165,156,56,130,177,156,56,178,189,156,56,209,201,156,56,224,213,156,56,221,225,156,56,201,237,156,56,165,249,156,56,111,5,157,56,40,17,157,56,209,28,157,56,104,40,
157,56,239,51,157,56,100,63,157,56,200,74,157,56,28,86,157,56,94,97,157,56,143,108,157,56,175,119,157,56,191,130,157,56,189,141,157,56,170,152,157,56,134,163,157,56,81,174,157,56,11,185,157,56,180,195,157,56,76,206,157,56,211,216,157,56,73,227,157,56,174,237,157,56,2,248,157,56,68,2,158,56,118,12,158,56,151,22,158,56,166,32,158,56,165,42,158,56,146,52,158,56,110,62,158,56,57,72,158,56,243,81,158,56,156,91,158,56,52,101,158,56,187,110,158,56,49,120,158,56,150,129,158,56,233,138,158,56,44,148,158,56,
93,157,158,56,125,166,158,56,140,175,158,56,138,184,158,56,119,193,158,56,83,202,158,56,30,211,158,56,215,219,158,56,128,228,158,56,23,237,158,56,157,245,158,56,18,254,158,56,118,6,159,56,201,14,159,56,11,23,159,56,59,31,159,56,91,39,159,56,105,47,159,56,102,55,159,56,82,63,159,56,45,71,159,56,247,78,159,56,175,86,159,56,86,94,159,56,237,101,159,56,114,109,159,56,230,116,159,56,72,124,159,56,154,131,159,56,219,138,159,56,10,146,159,56,40,153,159,56,53,160,159,56,49,167,159,56,27,174,159,56,245,180,
159,56,189,187,159,56,116,194,159,56,26,201,159,56,175,207,159,56,51,214,159,56,165,220,159,56,6,227,159,56,86,233,159,56,149,239,159,56,195,245,159,56,224,251,159,56,235,1,160,56,229,7,160,56,206,13,160,56,166,19,160,56,108,25,160,56,34,31,160,56,198,36,160,56,89,42,160,56,219,47,160,56,76,53,160,56,171,58,160,56,249,63,160,56,55,69,160,56,98,74,160,56,125,79,160,56,135,84,160,56,127,89,160,56,102,94,160,56,60,99,160,56,1,104,160,56,180,108,160,56,87,113,160,56,232,117,160,56,104,122,160,56,214,
126,160,56,52,131,160,56,128,135,160,56,187,139,160,56,229,143,160,56,254,147,160,56,6,152,160,56,252,155,160,56,225,159,160,56,181,163,160,56,120,167,160,56,41,171,160,56,202,174,160,56,89,178,160,56,215,181,160,56,67,185,160,56,159,188,160,56,233,191,160,56,34,195,160,56,74,198,160,56,97,201,160,56,103,204,160,56,91,207,160,56,62,210,160,56,16,213,160,56,209,215,160,56,128,218,160,56,31,221,160,56,172,223,160,56,40,226,160,56,146,228,160,56,236,230,160,56,52,233,160,56,107,235,160,56,145,237,160,
56,166,239,160,56,170,241,160,56,156,243,160,56,125,245,160,56,77,247,160,56,12,249,160,56,186,250,160,56,86,252,160,56,225,253,160,56,91,255,160,56,196,0,161,56,28,2,161,56,98,3,161,56,152,4,161,56,188,5,161,56,207,6,161,56,208,7,161,56,193,8,161,56,160,9,161,56,111,10,161,56,44,11,161,56,215,11,161,56,114,12,161,56,252,12,161,56,116,13,161,56,219,13,161,56,49,14,161,56,118,14,161,56,170,14,161,56,204,14,161,56,222,14,161,56,222,14,161,56,205,14,161,56,171,14,161,56,119,14,161,56,51,14,161,56,221,
13,161,56,119,13,161,56,255,12,161,56,118,12,161,56,219,11,161,56,48,11,161,56,116,10,161,56,166,9,161,56,199,8,161,56,215,7,161,56,214,6,161,56,196,5,161,56,161,4,161,56,108,3,161,56,39,2,161,56,208,0,161,56,104,255,160,56,239,253,160,56,101,252,160,56,202,250,160,56,30,249,160,56,96,247,160,56,146,245,160,56,178,243,160,56,193,241,160,56,192,239,160,56,173,237,160,56,137,235,160,56,83,233,160,56,13,231,160,56,182,228,160,56,77,226,160,56,212,223,160,56,73,221,160,56,174,218,160,56,1,216,160,56,
67,213,160,56,116,210,160,56,148,207,160,56,163,204,160,56,161,201,160,56,142,198,160,56,106,195,160,56,52,192,160,56,238,188,160,56,150,185,160,56,46,182,160,56,181,178,160,56,42,175,160,56,142,171,160,56,226,167,160,56,36,164,160,56,85,160,160,56,118,156,160,56,133,152,160,56,131,148,160,56,112,144,160,56,77,140,160,56,24,136,160,56,210,131,160,56,123,127,160,56,19,123,160,56,154,118,160,56,17,114,160,56,118,109,160,56,202,104,160,56,13,100,160,56,63,95,160,56,97,90,160,56,113,85,160,56,112,80,
160,56,94,75,160,56,60,70,160,56,8,65,160,56,196,59,160,56,110,54,160,56,8,49,160,56,144,43,160,56,8,38,160,56,110,32,160,56,196,26,160,56,9,21,160,56,61,15,160,56,96,9,160,56,114,3,160,56,115,253,159,56,99,247,159,56,67,241,159,56,17,235,159,56,207,228,159,56,123,222,159,56,23,216,159,56,162,209,159,56,28,203,159,56,133,196,159,56,221,189,159,56,36,183,159,56,91,176,159,56,128,169,159,56,149,162,159,56,153,155,159,56,140,148,159,56,110,141,159,56,64,134,159,56,0,127,159,56,176,119,159,56,79,112,
159,56,221,104,159,56,90,97,159,56,198,89,159,56,34,82,159,56,109,74,159,56,167,66,159,56,208,58,159,56,232,50,159,56,240,42,159,56,231,34,159,56,205,26,159,56,162,18,159,56,103,10,159,56,27,2,159,56,190,249,158,56,80,241,158,56,209,232,158,56,66,224,158,56,162,215,158,56,241,206,158,56,48,198,158,56,94,189,158,56,123,180,158,56,136,171,158,56,131,162,158,56,110,153,158,56,73,144,158,56,18,135,158,56,203,125,158,56,116,116,158,56,11,107,158,56,146,97,158,56,8,88,158,56,110,78,158,56,195,68,158,56,
7,59,158,56,59,49,158,56,94,39,158,56,112,29,158,56,114,19,158,56,99,9,158,56,68,255,157,56,20,245,157,56,211,234,157,56,130,224,157,56,32,214,157,56,174,203,157,56,43,193,157,56,151,182,157,56,243,171,157,56,63,161,157,56,121,150,157,56,163,139,157,56,189,128,157,56,198,117,157,56,191,106,157,56,167,95,157,56,126,84,157,56,70,73,157,56,252,61,157,56,162,50,157,56,56,39,157,56,189,27,157,56,49,16,157,56,149,4,157,56,233,248,156,56,44,237,156,56,95,225,156,56,129,213,156,56,147,201,156,56,148,189,
156,56,133,177,156,56,102,165,156,56,54,153,156,56,245,140,156,56,165,128,156,56,68,116,156,56,210,103,156,56,80,91,156,56,190,78,156,56,27,66,156,56,104,53,156,56,165,40,156,56,209,27,156,56,237,14,156,56,249,1,156,56,244,244,155,56,223,231,155,56,185,218,155,56,132,205,155,56,62,192,155,56,231,178,155,56,129,165,155,56,10,152,155,56,131,138,155,56,235,124,155,56,68,111,155,56,140,97,155,56,196,83,155,56,235,69,155,56,3,56,155,56,10,42,155,56,1,28,155,56,231,13,155,56,190,255,154,56,132,241,154,
56,58,227,154,56,224,212,154,56,118,198,154,56,251,183,154,56,113,169,154,56,214,154,154,56,43,140,154,56,112,125,154,56,165,110,154,56,202,95,154,56,222,80,154,56,227,65,154,56,215,50,154,56,187,35,154,56,144,20,154,56,84,5,154,56,8,246,153,56,172,230,153,56,64,215,153,56,196,199,153,56,56,184,153,56,155,168,153,56,239,152,153,56,51,137,153,56,103,121,153,56,139,105,153,56,159,89,153,56,162,73,153,56,150,57,153,56,122,41,153,56,78,25,153,56,18,9,153,56,198,248,152,56,106,232,152,56,254,215,152,56,
131,199,152,56,247,182,152,56,92,166,152,56,176,149,152,56,245,132,152,56,42,116,152,56,79,99,152,56,100,82,152,56,105,65,152,56,94,48,152,56,68,31,152,56,26,14,152,56,224,252,151,56,150,235,151,56,60,218,151,56,210,200,151,56,89,183,151,56,208,165,151,56,55,148,151,56,143,130,151,56,215,112,151,56,15,95,151,56,55,77,151,56,79,59,151,56,88,41,151,56,81,23,151,56,59,5,151,56,20,243,150,56,222,224,150,56,153,206,150,56,67,188,150,56,223,169,150,56,106,151,150,56,230,132,150,56,82,114,150,56,174,95,
150,56,251,76,150,56,57,58,150,56,103,39,150,56,133,20,150,56,147,1,150,56,147,238,149,56,130,219,149,56,98,200,149,56,51,181,149,56,243,161,149,56,165,142,149,56,71,123,149,56,217,103,149,56,92,84,149,56,208,64,149,56,52,45,149,56,136,25,149,56,205,5,149,56,3,242,148,56,41,222,148,56,64,202,148,56,72,182,148,56,64,162,148,56,40,142,148,56,2,122,148,56],"i8",4,y.a+983040);
Q([203,101,148,56,134,81,148,56,49,61,148,56,205,40,148,56,90,20,148,56,215,255,147,56,69,235,147,56,163,214,147,56,243,193,147,56,51,173,147,56,99,152,147,56,133,131,147,56,151,110,147,56,154,89,147,56,142,68,147,56,115,47,147,56,72,26,147,56,14,5,147,56,197,239,146,56,109,218,146,56,5,197,146,56,143,175,146,56,9,154,146,56,116,132,146,56,209,110,146,56,29,89,146,56,91,67,146,56,138,45,146,56,170,23,146,56,186,1,146,56,188,235,145,56,174,213,145,56,146,191,145,56,102,169,145,56,43,147,145,56,226,
124,145,56,137,102,145,56,34,80,145,56,171,57,145,56,37,35,145,56,145,12,145,56,237,245,144,56,59,223,144,56,122,200,144,56,169,177,144,56,202,154,144,56,220,131,144,56,223,108,144,56,211,85,144,56,185,62,144,56,143,39,144,56,87,16,144,56,15,249,143,56,185,225,143,56,85,202,143,56,225,178,143,56,95,155,143,56,205,131,143,56,45,108,143,56,127,84,143,56,193,60,143,56,245,36,143,56,26,13,143,56,49,245,142,56,56,221,142,56,49,197,142,56,28,173,142,56,247,148,142,56,196,124,142,56,131,100,142,56,51,76,
142,56,212,51,142,56,102,27,142,56,234,2,142,56,96,234,141,56,199,209,141,56,31,185,141,56,104,160,141,56,164,135,141,56,208,110,141,56,238,85,141,56,254,60,141,56,255,35,141,56,242,10,141,56,214,241,140,56,172,216,140,56,115,191,140,56,44,166,140,56,215,140,140,56,115,115,140,56,0,90,140,56,128,64,140,56,240,38,140,56,83,13,140,56,167,243,139,56,237,217,139,56,37,192,139,56,78,166,139,56,105,140,139,56,117,114,139,56,116,88,139,56,100,62,139,56,70,36,139,56,25,10,139,56,223,239,138,56,150,213,138,
56,63,187,138,56,218,160,138,56,102,134,138,56,229,107,138,56,85,81,138,56,183,54,138,56,11,28,138,56,81,1,138,56,137,230,137,56,179,203,137,56,206,176,137,56,220,149,137,56,219,122,137,56,205,95,137,56,176,68,137,56,134,41,137,56,77,14,137,56,6,243,136,56,178,215,136,56,79,188,136,56,223,160,136,56,96,133,136,56,212,105,136,56,58,78,136,56,146,50,136,56,220,22,136,56,24,251,135,56,70,223,135,56,102,195,135,56,121,167,135,56,125,139,135,56,116,111,135,56,93,83,135,56,57,55,135,56,6,27,135,56,198,
254,134,56,120,226,134,56,28,198,134,56,179,169,134,56,59,141,134,56,183,112,134,56,36,84,134,56,132,55,134,56,214,26,134,56,26,254,133,56,81,225,133,56,122,196,133,56,150,167,133,56,164,138,133,56,164,109,133,56,151,80,133,56,125,51,133,56,84,22,133,56,31,249,132,56,219,219,132,56,139,190,132,56,44,161,132,56,193,131,132,56,72,102,132,56,193,72,132,56,45,43,132,56,139,13,132,56,221,239,131,56,32,210,131,56,87,180,131,56,128,150,131,56,155,120,131,56,170,90,131,56,171,60,131,56,158,30,131,56,133,
0,131,56,94,226,130,56,42,196,130,56,232,165,130,56,154,135,130,56,62,105,130,56,213,74,130,56,94,44,130,56,219,13,130,56,74,239,129,56,172,208,129,56,1,178,129,56,73,147,129,56,132,116,129,56,178,85,129,56,210,54,129,56,230,23,129,56,236,248,128,56,230,217,128,56,210,186,128,56,178,155,128,56,132,124,128,56,73,93,128,56,2,62,128,56,173,30,128,56,152,254,127,56,187,191,127,56,196,128,127,56,179,65,127,56,137,2,127,56,69,195,126,56,231,131,126,56,112,68,126,56,223,4,126,56,52,197,125,56,112,133,125,
56,146,69,125,56,154,5,125,56,137,197,124,56,95,133,124,56,27,69,124,56,189,4,124,56,70,196,123,56,182,131,123,56,13,67,123,56,74,2,123,56,110,193,122,56,120,128,122,56,106,63,122,56,66,254,121,56,1,189,121,56,167,123,121,56,51,58,121,56,167,248,120,56,1,183,120,56,67,117,120,56,108,51,120,56,123,241,119,56,114,175,119,56,80,109,119,56,20,43,119,56,193,232,118,56,84,166,118,56,206,99,118,56,48,33,118,56,121,222,117,56,169,155,117,56,193,88,117,56,191,21,117,56,166,210,116,56,116,143,116,56,41,76,
116,56,197,8,116,56,74,197,115,56,181,129,115,56,9,62,115,56,68,250,114,56,102,182,114,56,112,114,114,56,98,46,114,56,60,234,113,56,253,165,113,56,166,97,113,56,55,29,113,56,176,216,112,56,17,148,112,56,90,79,112,56,138,10,112,56,163,197,111,56,163,128,111,56,140,59,111,56,92,246,110,56,21,177,110,56,182,107,110,56,63,38,110,56,176,224,109,56,10,155,109,56,75,85,109,56,117,15,109,56,136,201,108,56,130,131,108,56,101,61,108,56,48,247,107,56,228,176,107,56,129,106,107,56,5,36,107,56,115,221,106,56,
201,150,106,56,7,80,106,56,46,9,106,56,62,194,105,56,54,123,105,56,23,52,105,56,225,236,104,56,148,165,104,56,47,94,104,56,180,22,104,56,33,207,103,56,119,135,103,56,182,63,103,56,222,247,102,56,239,175,102,56,233,103,102,56,205,31,102,56,153,215,101,56,78,143,101,56,237,70,101,56,117,254,100,56,229,181,100,56,64,109,100,56,131,36,100,56,176,219,99,56,198,146,99,56,198,73,99,56,175,0,99,56,130,183,98,56,62,110,98,56,227,36,98,56,114,219,97,56,235,145,97,56,77,72,97,56,153,254,96,56,207,180,96,56,
238,106,96,56,247,32,96,56,234,214,95,56,198,140,95,56,141,66,95,56,61,248,94,56,216,173,94,56,92,99,94,56,202,24,94,56,34,206,93,56,101,131,93,56,145,56,93,56,168,237,92,56,168,162,92,56,147,87,92,56,104,12,92,56,39,193,91,56,209,117,91,56,101,42,91,56,227,222,90,56,75,147,90,56,158,71,90,56,220,251,89,56,4,176,89,56,22,100,89,56,19,24,89,56,251,203,88,56,205,127,88,56,138,51,88,56,49,231,87,56,195,154,87,56,64,78,87,56,168,1,87,56,250,180,86,56,56,104,86,56,96,27,86,56,115,206,85,56,113,129,85,
56,90,52,85,56,46,231,84,56,238,153,84,56,152,76,84,56,45,255,83,56,174,177,83,56,25,100,83,56,112,22,83,56,179,200,82,56,224,122,82,56,249,44,82,56,253,222,81,56,237,144,81,56,200,66,81,56,142,244,80,56,64,166,80,56,221,87,80,56,102,9,80,56,219,186,79,56,59,108,79,56,135,29,79,56,191,206,78,56,226,127,78,56,241,48,78,56,236,225,77,56,211,146,77,56,166,67,77,56,100,244,76,56,15,165,76,56,165,85,76,56,40,6,76,56,150,182,75,56,241,102,75,56,56,23,75,56,107,199,74,56,138,119,74,56,149,39,74,56,141,215,
73,56,112,135,73,56,65,55,73,56,253,230,72,56,166,150,72,56,60,70,72,56,189,245,71,56,44,165,71,56,135,84,71,56,206,3,71,56,2,179,70,56,35,98,70,56,49,17,70,56,43,192,69,56,18,111,69,56,229,29,69,56,166,204,68,56,83,123,68,56,237,41,68,56,117,216,67,56,233,134,67,56,74,53,67,56,152,227,66,56,211,145,66,56,252,63,66,56,17,238,65,56,20,156,65,56,4,74,65,56,225,247,64,56,172,165,64,56,99,83,64,56,8,1,64,56,155,174,63,56,27,92,63,56,136,9,63,56,227,182,62,56,44,100,62,56,98,17,62,56,134,190,61,56,151,
107,61,56,150,24,61,56,131,197,60,56,93,114,60,56,37,31,60,56,219,203,59,56,127,120,59,56,17,37,59,56,145,209,58,56,255,125,58,56,90,42,58,56,164,214,57,56,220,130,57,56,2,47,57,56,22,219,56,56,25,135,56,56,9,51,56,56,232,222,55,56,181,138,55,56,113,54,55,56,27,226,54,56,179,141,54,56,58,57,54,56,175,228,53,56,19,144,53,56,101,59,53,56,166,230,52,56,213,145,52,56,243,60,52,56,0,232,51,56,252,146,51,56,230,61,51,56,192,232,50,56,136,147,50,56,63,62,50,56,229,232,49,56,121,147,49,56,253,61,49,56,112,
232,48,56,210,146,48,56,35,61,48,56,100,231,47,56,147,145,47,56,178,59,47,56,192,229,46,56,189,143,46,56,169,57,46,56,133,227,45,56,81,141,45,56,11,55,45,56,182,224,44,56,80,138,44,56,217,51,44,56,82,221,43,56,186,134,43,56,19,48,43,56,91,217,42,56,146,130,42,56,186,43,42,56,209,212,41,56,216,125,41,56,207,38,41,56,183,207,40,56,142,120,40,56,85,33,40,56,12,202,39,56,179,114,39,56,74,27,39,56,209,195,38,56,73,108,38,56,177,20,38,56,9,189,37,56,82,101,37,56,138,13,37,56,180,181,36,56,205,93,36,56,
215,5,36,56,210,173,35,56,189,85,35,56,153,253,34,56,101,165,34,56,34,77,34,56,208,244,33,56,110,156,33,56,253,67,33,56,125,235,32,56,238,146,32,56,80,58,32,56,162,225,31,56,230,136,31,56,27,48,31,56,64,215,30,56,87,126,30,56,95,37,30,56,88,204,29,56,66,115,29,56,29,26,29,56,234,192,28,56,168,103,28,56,87,14,28,56,248,180,27,56,138,91,27,56,14,2,27,56,131,168,26,56,234,78,26,56,66,245,25,56,140,155,25,56,199,65,25,56,244,231,24,56,19,142,24,56,36,52,24,56,38,218,23,56,26,128,23,56,1,38,23,56,217,
203,22,56,163,113,22,56,95,23,22,56,13,189,21,56,173,98,21,56,64,8,21,56,196,173,20,56,59,83,20,56,164,248,19,56,255,157,19,56,76,67,19,56,140,232,18,56,190,141,18,56,227,50,18,56,250,215,17,56,4,125,17,56,0,34,17,56,239,198,16,56,208,107,16,56,164,16,16,56,107,181,15,56,36,90,15,56,209,254,14,56,112,163,14,56,2,72,14,56,135,236,13,56,254,144,13,56,105,53,13,56,199,217,12,56,24,126,12,56,92,34,12,56,147,198,11,56,189,106,11,56,218,14,11,56,235,178,10,56,239,86,10,56,231,250,9,56,209,158,9,56,175,
66,9,56,129,230,8,56,70,138,8,56,255,45,8,56,171,209,7,56,74,117,7,56,222,24,7,56,101,188,6,56,224,95,6,56,78,3,6,56,177,166,5,56,7,74,5,56,81,237,4,56,143,144,4,56,193,51,4,56,231,214,3,56,1,122,3,56,15,29,3,56,18,192,2,56,8,99,2,56,243,5,2,56,210,168,1,56,165,75,1,56,108,238,0,56,40,145,0,56,216,51,0,56,250,172,255,55,44,242,254,55,72,55,254,55,76,124,253,55,58,193,252,55,17,6,252,55,209,74,251,55,123,143,250,55,14,212,249,55,139,24,249,55,242,92,248,55,66,161,247,55,124,229,246,55,160,41,246,55,
175,109,245,55,167,177,244,55,137,245,243,55,86,57,243,55,13,125,242,55,174,192,241,55,58,4,241,55,176,71,240,55,17,139,239,55,93,206,238,55,148,17,238,55,181,84,237,55,193,151,236,55,185,218,235,55,155,29,235,55,105,96,234,55,34,163,233,55,199,229,232,55,87,40,232,55,210,106,231,55,57,173,230,55,140,239,229,55,202,49,229,55,245,115,228,55,11,182,227,55,13,248,226,55,252,57,226,55,214,123,225,55,157,189,224,55,80,255,223,55,240,64,223,55,124,130,222,55,245,195,221,55,90,5,221,55,172,70,220,55,235,
135,219,55,23,201,218,55,48,10,218,55,54,75,217,55,41,140,216,55,9,205,215,55,215,13,215,55,146,78,214,55,58,143,213,55,208,207,212,55,84,16,212,55,197,80,211,55,36,145,210,55,113,209,209,55,172,17,209,55,213,81,208,55,237,145,207,55,242,209,206,55,230,17,206,55,200,81,205,55,152,145,204,55,87,209,203,55,5,17,203,55,161,80,202,55,44,144,201,55,166,207,200,55,15,15,200,55,103,78,199,55,174,141,198,55,229,204,197,55,10,12,197,55,31,75,196,55,35,138,195,55,23,201,194,55,250,7,194,55,205,70,193,55,144,
133,192,55,67,196,191,55,230,2,191,55,120,65,190,55,251,127,189,55,110,190,188,55,209,252,187,55,36,59,187,55,104,121,186,55,157,183,185,55,193,245,184,55,215,51,184,55,221,113,183,55,213,175,182,55,189,237,181,55,150,43,181,55,96,105,180,55,27,167,179,55,200,228,178,55,101,34,178,55,245,95,177,55,117,157,176,55,232,218,175,55,76,24,175,55,161,85,174,55,233,146,173,55,34,208,172,55,78,13,172,55,107,74,171,55,123,135,170,55,124,196,169,55,112,1,169,55,87,62,168,55,48,123,167,55,251,183,166,55,185,
244,165,55,106,49,165,55,14,110,164,55,164,170,163,55,46,231,162,55,170,35,162,55,26,96,161,55,125,156,160,55,211,216,159,55,29,21,159,55,90,81,158,55,138,141,157,55,175,201,156,55,198,5,156,55,210,65,155,55,210,125,154,55,197,185,153,55,173,245,152,55,137,49,152,55,88,109,151,55,29,169,150,55,213,228,149,55,130,32,149,55,36,92,148,55,186,151,147,55,69,211,146,55,196,14,146,55,57,74,145,55,162,133,144,55,1,193,143,55,84,252,142,55,157,55,142,55,219,114,141,55,15,174,140,55,56,233,139,55,86,36,139,
55,106,95,138,55,116,154,137,55,115,213,136,55,105,16,136,55,84,75,135,55,54,134,134,55,13,193,133,55,219,251,132,55,159,54,132,55,89,113,131,55,10,172,130,55,177,230,129,55,79,33,129,55,227,91,128,55,221,44,127,55,226,161,125,55,212,22,124,55,180,139,122,55,131,0,121,55,64,117,119,55,235,233,117,55,133,94,116,55,14,211,114,55,134,71,113,55,238,187,111,55,68,48,110,55,139,164,108,55,193,24,107,55,230,140,105,55,252,0,104,55,2,117,102,55,249,232,100,55,224,92,99,55,183,208,97,55,128,68,96,55,57,184,
94,55,228,43,93,55,128,159,91,55,14,19,90,55,141,134,88,55,255,249,86,55,98,109,85,55,183,224,83,55,255,83,82,55,58,199,80,55,103,58,79,55,135,173,77,55,154,32,76,55,160,147,74,55,153,6,73,55,135,121,71,55,103,236,69,55,60,95,68,55,5,210,66,55,194,68,65,55,115,183,63,55,25,42,62,55,179,156,60,55,67,15,59,55,199,129,57,55,65,244,55,55,176,102,54,55,20,217,52,55,110,75,51,55,190,189,49,55,4,48,48,55,65,162,46,55,115,20,45,55,156,134,43,55,188,248,41,55,211,106,40,55,225,220,38,55,230,78,37,55,226,192,
35,55,214,50,34,55,193,164,32,55,165,22,31,55,128,136,29,55,84,250,27,55,32,108,26,55,228,221,24,55,162,79,23,55,88,193,21,55,7,51,20,55,175,164,18,55,81,22,17,55,236,135,15,55,129,249,13,55,16,107,12,55,152,220,10,55,27,78,9,55,153,191,7,55,16,49,6,55,131,162,4,55,240,19,3,55,89,133,1,55,121,237,255,54,55,208,252,54,236,178,249,54,152,149,246,54,60,120,243,54,216,90,240,54,109,61,237,54,250,31,234,54,128,2,231,54,0,229,227,54,121,199,224,54,236,169,221,54,90,140,218,54,194,110,215,54,38,81,212,54,
133,51,209,54,223,21,206,54,54,248,202,54,137,218,199,54,216,188,196,54,37,159,193,54,111,129,190,54,183,99,187,54,253,69,184,54,65,40,181,54,132,10,178,54,197,236,174,54,7,207,171,54,72,177,168,54,136,147,165,54,202,117,162,54,12,88,159,54,79,58,156,54,147,28,153,54,217,254,149,54,33,225,146,54,108,195,143,54,185,165,140,54,9,136,137,54,92,106,134,54,179,76,131,54,14,47,128,54,220,34,122,54,164,231,115,54,118,172,109,54,83,113,103,54,59,54,97,54,48,251,90,54,49,192,84,54,63,133,78,54,91,74,72,54,
134,15,66,54,192,212,59,54,10,154,53,54,101,95,47,54,209,36,41,54,79,234,34,54,224,175,28,54,132,117,22,54,59,59,16,54,8,1,10,54,234,198,3,54,195,25,251,53,223,165,238,53,42,50,226,53,165,190,213,53,81,75,201,53,48,216,188,53,66,101,176,53,138,242,163,53,8,128,151,53,189,13,139,53,88,55,125,53,171,83,100,53,116,112,75,53,184,141,50,53,121,171,25,53,185,201,0,53,246,208,207,52,132,15,158,52,63,158,88,52,63,63,234,51,142,25,141,50,254,173,163,179,232,78,53,180,64,98,140,180,221,27,190,180,71,212,239,
180,188,197,16,181,181,160,41,181,13,123,66,181,193,84,91,181,205,45,116,181,24,131,134,181,243,238,146,181,119,90,159,181,162,197,171,181,115,48,184,181,233,154,196,181,2,5,209,181,189,110,221,181,25,216,233,181,20,65,246,181,215,84,1,182,242,136,7,182,218,188,13,182,144,240,19,182,18,36,26,182,96,87,32,182,121,138,38,182,92,189,44,182,9,240,50,182,128,34,57,182,190,84,63,182,197,134,69,182,147,184,75,182,39,234,81,182,129,27,88,182,160,76,94,182,132,125,100,182,43,174,106,182,150,222,112,182,196,
14,119,182,179,62,125,182,50,183,129,182,234,206,132,182,131,230,135,182,251,253,138,182,83,21,142,182,137,44,145,182,158,67,148,182,146,90,151,182,100,113,154,182,19,136,157,182,159,158,160,182,9,181,163,182,80,203,166,182,114,225,169,182,113,247,172,182,76,13,176,182,2,35,179,182,147,56,182,182,255,77,185,182,69,99,188,182,101,120,191,182,95,141,194,182,51,162,197,182,224,182,200,182,101,203,203,182,195,223,206,182,249,243,209,182,7,8,213,182,237,27,216,182,170,47,219,182,61,67,222,182,167,86,225,
182,231,105,228,182,254,124,231,182,233,143,234,182,170,162,237,182,64,181,240,182,171,199,243,182,234,217,246,182,252,235,249,182,227,253,252,182,206,7,0,183,148,144,1,183,68,25,3,183,221,161,4,183,95,42,6,183,201,178,7,183,29,59,9,183,88,195,10,183,125,75,12,183,137,211,13,183,125,91,15,183,90,227,16,183,30,107,18,183,201,242,19,183,92,122,21,183,215,1,23,183,56,137,24,183,128,16,26,183,175,151,27,183,196,30,29,183,192,165,30,183,163,44,32,183,107,179,33,183,25,58,35,183,173,192,36,183,39,71,38,
183,134,205,39,183,202,83,41,183,244,217,42,183,2,96,44,183,246,229,45,183,206,107,47,183,138,241,48,183,43,119,50,183,176,252,51,183,25,130,53,183,102,7,55,183,151,140,56,183,171,17,58,183,163,150,59,183,126,27,61,183,60,160,62,183,220,36,64,183,96,169,65,183,198,45,67,183,15,178,68,183,58,54,70,183,71,186,71,183,54,62,73,183,6,194,74,183,185,69,76,183,76,201,77,183,194,76,79,183,24,208,80,183,79,83,82,183,103,214,83,183,96,89,85,183,58,220,86,183,243,94,88,183,141,225,89,183,7,100,91,183,97,230,
92,183,155,104,94,183,180,234,95,183,173,108,97,183,132,238,98,183,59,112,100,183,209,241,101,183,70,115,103,183,153,244,104,183,203,117,106,183,219,246,107,183,202,119,109,183,150,248,110,183,64,121,112,183,200,249,113,183,45,122,115,183,112,250,116,183,144,122,118,183,141,250,119,183,103,122,121,183,30,250,122,183,177,121,124,183,33,249,125,183,109,120,127,183,202,123,128,183,76,59,129,183,188,250,129,183,26,186,130,183,102,121,131,183,159,56,132,183,198,247,132,183,218,182,133,183,220,117,134,
183,203,52,135,183,167,243,135,183,113,178,136,183,39,113,137,183,203,47,138,183,92,238,138,183,217,172,139,183,68,107,140,183,155,41,141,183,223,231,141,183,15,166,142,183,44,100,143,183,53,34,144,183,43,224,144,183,13,158,145,183,219,91,146,183,149,25,147,183,59,215,147,183,206,148,148,183,76,82,149,183,182,15,150,183,11,205,150,183,77,138,151,183,121,71,152,183,146,4,153,183,150,193,153,183,133,126,154,183,95,59,155,183,37,248,155,183,214,180,156,183,113,113,157,183,248,45,158,183,106,234,158,
183,198,166,159,183,13,99,160,183,63,31,161,183,92,219,161,183,98,151,162,183,84,83,163,183,47,15,164,183,245,202,164,183,166,134,165,183,64,66,166,183,196,253,166,183,50,185,167,183,139,116,168,183,205,47,169,183,248,234,169,183,14,166,170,183,13,97,171,183,245,27,172,183,199,214,172,183,130,145,173,183,39,76,174,183,181,6,175,183,44,193,175,183,140,123,176,183,213,53,177,183,7,240,177,183,33,170,178,183,37,100,179,183,17,30,180,183,230,215,180,183,163,145,181,183,73,75,182,183,215,4,183,183,77,
190,183,183,172,119,184,183,243,48,185,183,34,234,185,183,57,163,186,183,55,92,187,183,30,21,188,183,237,205,188,183,163,134,189,183,65,63,190,183,198,247,190,183,51,176,191,183,135,104,192,183,195,32,193,183,229,216,193,183,240,144,194,183,225,72,195,183,185,0,196,183,120,184,196,183,30,112,197,183,171,39,198,183,30,223,198,183,121,150,199,183,185,77,200,183,225,4,201,183,238,187,201,183,227,114,202,183,189,41,203,183,126,224,203,183,36,151,204,183,177,77,205,183,36,4,206,183,125,186,206,183,188,
112,207,183,224,38,208,183,234,220,208,183,218,146,209,183,175,72,210,183,106,254,210,183,10,180,211,183,144,105,212,183,251,30,213,183,74,212,213,183,128,137,214,183,154,62,215,183,153,243,215,183,125,168,216,183,70,93,217,183,243,17,218,183,134,198,218,183,252,122,219,183,88,47,220,183,152,227,220,183,188,151,221,183,197,75,222,183,177,255,222,183,130,179,223,183,56,103,224,183,209,26,225,183,78,206,225,183,175,129,226,183,243,52,227,183,28,232,227,183,40,155,228,183,24,78,229,183,235,0,230,183,
162,179,230,183,60,102,231,183,185,24,232,183,26,203,232,183,94,125,233,183,133,47,234,183,143,225,234,183,124,147,235,183,75,69,236,183,254,246,236,183,147,168,237,183,11,90,238,183,102,11,239,183,163,188,239,183,194,109,240,183,196,30,241,183,168,207,241,183,111,128,242,183,23,49,243,183,162,225,243,183,15,146,244,183,93,66,245,183,142,242,245,183,160,162,246,183,148,82,247,183,106,2,248,183,33,178,248,183,186,97,249,183,53,17,250,183,144,192,250,183,205,111,251,183,236,30,252,183,235,205,252,183,
204,124,253,183,141,43,254,183,48,218,254,183,179,136,255,183,140,27,0,184,174,114,0,184,193,201,0,184,196,32,1,184,184,119,1,184,155,206,1,184,111,37,2,184,51,124,2,184,231,210,2,184,140,41,3,184,32,128,3,184,165,214,3,184,25,45,4,184,125,131,4,184,210,217,4,184,22,48,5,184,74,134,5,184,110,220,5,184,129,50,6,184,133,136,6,184,120,222,6,184,90,52,7,184,45,138,7,184,239,223,7,184,161,53,8,184,66,139,8,184,210,224,8,184,83,54,9,184,194,139,9,184,33,225,9,184,112,54,10,184,173,139,10,184,218,224,10,
184,247,53,11,184,2,139,11,184,253,223,11,184,231,52,12,184,192,137,12,184,136,222,12,184,64,51,13,184,230,135,13,184,123,220,13,184,0,49,14,184,115,133,14,184,213,217,14,184,38,46,15,184,102,130,15,184,149,214,15,184,178,42,16,184,190,126,16,184,185,210,16,184,163,38,17,184,123,122,17,184,65,206,17,184,247,33,18,184,155,117,18,184,45,201,18,184,174,28,19,184,29,112,19,184,123,195,19,184,199,22,20,184,1,106,20,184,42,189,20,184,65,16,21,184,70,99,21,184,57,182,21,184,27,9,22,184,235,91,22,184,169,
174,22,184,84,1,23,184,238,83,23,184,118,166,23,184,236,248,23,184,80,75,24,184,162,157,24,184,225,239,24,184,15,66,25,184,42,148,25,184,51,230,25,184,42,56,26,184,15,138,26,184,225,219,26,184,161,45,27,184,78,127,27,184,233,208,27,184,114,34,28,184,232,115,28,184,76,197,28,184,157,22,29,184,219,103,29,184,7,185,29,184,32,10,30,184,39,91,30,184,27,172,30,184,252,252,30,184,202,77,31,184,134,158,31,184,46,239,31,184,196,63,32,184,71,144,32,184,183,224,32,184,20,49,33,184,94,129,33,184,149,209,33,184,
185,33,34,184,202,113,34,184,200,193,34,184,178,17,35,184,138,97,35,184,78,177,35,184,255,0,36,184,157,80,36,184,39,160,36,184,158,239,36,184,2,63,37,184,82,142,37,184,143,221,37,184,184,44,38,184,206,123,38,184,208,202,38,184,191,25,39,184,154,104,39,184,98,183,39,184,22,6,40,184,182,84,40,184,66,163,40,184,187,241,40,184,32,64,41,184,113,142,41,184,175,220,41,184,216,42,42,184,238,120,42,184,239,198,42,184,221,20,43,184,183,98,43,184,124,176,43,184,46,254,43,184,203,75,44,184,85,153,44,184,202,
230,44,184,43,52,45,184,120,129,45,184,177,206,45,184,213,27,46,184,229,104,46,184,225,181,46,184,200,2,47,184,155,79,47,184,90,156,47,184,4,233,47,184,153,53,48,184,27,130,48,184,135,206,48,184,223,26,49,184,35,103,49,184,81,179,49,184,108,255,49,184,113,75,50,184,98,151,50,184,62,227,50,184,5,47,51,184,183,122,51,184,85,198,51,184,222,17,52,184,81,93,52,184,176,168,52,184,250,243,52,184,47,63,53,184,79,138,53,184,90,213,53,184,80,32,54,184,48,107,54,184,252,181,54,184,178,0,55,184,83,75,55,184,
223,149,55,184,86,224,55,184,184,42,56,184,4,117,56,184,59,191,56,184,92,9,57,184,104,83,57,184,95,157,57,184,64,231,57,184,12,49,58,184,194,122,58,184,98,196,58,184,238,13,59,184,99,87,59,184,195,160,59,184,13,234,59,184,66,51,60,184,96,124,60,184,106,197,60,184,93,14,61,184,58,87,61,184,2,160,61,184,180,232,61,184,80,49,62,184,214,121,62,184,70,194,62,184,160,10,63,184,228,82,63,184,18,155,63,184,43,227,63,184,45,43,64,184,24,115,64,184,238,186,64,184,174,2,65,184,87,74,65,184,234,145,65,184,103,
217,65,184,206,32,66,184,30,104,66,184,88,175,66,184,124,246,66,184,137,61,67,184,128,132,67,184,97,203,67,184,43,18,68,184,222,88,68,184,123,159,68,184,1,230,68,184,113,44,69,184,203,114,69,184,13,185,69,184,57,255,69,184,78,69,70,184,77,139,70,184,53,209,70,184,6,23,71,184,192,92,71,184,99,162,71,184,240,231,71,184,102,45,72,184,196,114,72,184,12,184,72,184,61,253,72,184,87,66,73,184,90,135,73,184,70,204,73,184,27,17,74,184,216,85,74,184,127,154,74,184,14,223,74,184,135,35,75,184,232,103,75,184,
50,172,75,184,100,240,75,184,128,52,76,184,132,120,76,184,112,188,76,184,70,0,77,184,4,68,77,184,170,135,77,184,58,203,77,184,177,14,78,184,17,82,78,184,90,149,78,184,139,216,78,184,165,27,79,184,167,94,79,184,145,161,79,184,100,228,79,184,31,39,80,184,195,105,80,184,78,172,80,184,194,238,80,184,30,49,81,184,99,115,81,184,143,181,81,184,164,247,81,184,161,57,82,184,134,123,82,184,83,189,82,184,8,255,82,184,165,64,83,184,42,130,83,184,151,195,83,184,237,4,84,184,42,70,84,184,78,135,84,184,91,200,84,
184,80,9,85,184,44,74,85,184,241,138,85,184,157,203,85,184,48,12,86,184,172,76,86,184,15,141,86,184,90,205,86,184,141,13,87,184,167,77,87,184,169,141,87,184,146,205,87,184,99,13,88,184,27,77,88,184,187,140,88,184,67,204,88,184,178,11,89,184,8,75,89,184,70,138,89,184,107,201,89,184,120,8,90,184,108,71,90,184,71,134,90,184,9,197,90,184,179,3,91,184,68,66,91,184,188,128,91,184,28,191,91,184,98,253,91,184,144,59,92,184,165,121,92,184,161,183,92,184,132,245,92,184,78,51,93,184,255,112,93,184,151,174,93,
184,22,236,93,184,124,41,94,184,201,102,94,184,253,163,94,184,24,225,94,184,26,30,95,184,2,91,95,184,210,151,95,184,136,212,95,184,37,17,96,184,168,77,96,184,19,138,96,184,100,198,96,184,156,2,97,184,186,62,97,184,191,122,97,184,171,182,97,184,125,242,97,184,54,46,98,184,213,105,98,184,91,165,98,184,200,224,98,184,27,28,99,184,84,87,99,184,116,146,99,184,122,205,99,184,103,8,100,184,58,67,100,184,243,125,100,184,147,184,100,184,24,243,100,184,133,45,101,184,215,103,101,184,16,162,101,184,47,220,101,
184,52,22,102,184,31,80,102,184,241,137,102,184,168,195,102,184,70,253,102,184,202,54,103,184,51,112,103,184,131,169,103,184,185,226,103,184,213,27,104,184,215,84,104,184,190,141,104,184,140,198,104,184,64,255,104,184,217,55,105,184,89,112,105,184,190,168,105,184,9,225,105,184,58,25,106,184,80,81,106,184,77,137,106,184,47,193,106,184,247,248,106,184,164,48,107,184,56,104,107,184,176,159,107,184,15,215,107,184,83,14,108,184,125,69,108,184,140,124,108,184,129,179,108,184,91,234,108,184,27,33,109,184,
193,87,109,184,76,142,109,184,188,196,109,184,18,251,109,184,77,49,110,184,109,103,110,184,115,157,110,184,95,211,110,184,47,9,111,184,229,62,111,184,128,116,111,184,1,170,111,184,103,223,111,184,178,20,112,184,226,73,112,184,247,126,112,184,242,179,112,184,209,232,112,184,150,29,113,184,64,82,113,184,207,134,113,184,67,187,113,184,156,239,113,184,218,35,114,184,254,87,114,184,6,140,114,184,243,191,114,184,197,243,114,184,124,39,115,184,24,91,115,184,153,142,115,184,255,193,115,184,74,245,115,184,
121,40,116,184,141,91,116,184,134,142,116,184,100,193,116,184,39,244,116,184,206,38,117,184,90,89,117,184,203,139,117,184,33,190,117,184,91,240,117,184,122,34,118,184,125,84,118,184,102,134,118,184,50,184,118,184,228,233,118,184,121,27,119,184,244,76,119,184,83,126,119,184,150,175,119,184,190,224,119,184,203,17,120,184,188,66,120,184,145,115,120,184,75,164,120,184,233,212,120,184,107,5,121,184,210,53,121,184,29,102,121,184,77,150,121,184,97,198,121,184,89,246,121,184,53,38,122,184,246,85,122,184,
155,133,122,184,36,181,122,184,146,228,122,184,227,19,123,184,25,67,123,184,51,114,123,184,49,161,123,184,19,208,123,184,217,254,123,184,132,45,124,184,18,92,124,184,133,138,124,184,219,184,124,184,22,231,124,184,52,21,125,184,55,67,125,184,29,113,125,184,232,158,125,184,150,204,125,184,41,250,125,184,159,39,126,184,249,84,126,184,55,130,126,184,89,175,126,184,95,220,126,184,72,9,127,184,21,54,127,184,199,98,127,184,91,143,127,184,212,187,127,184,48,232,127,184,56,10,128,184,74,32,128,184,78,54,128,
184,68,76,128,184,43,98,128,184,4,120,128,184,207,141,128,184,140,163,128,184,59,185,128,184,219,206,128,184,110,228,128,184,242,249,128,184,103,15,129,184,207,36,129,184,40,58,129,184,115,79,129,184,176,100,129,184,223,121,129,184,255,142,129,184,17,164,129,184,21,185,129,184,10,206,129,184,241,226,129,184,202,247,129,184,148,12,130,184,80,33,130,184,254,53,130,184,158,74,130,184,47,95,130,184,177,115,130,184,38,136,130,184,140,156,130,184,227,176,130,184,45,197,130,184,103,217,130,184,148,237,130,
184,178,1,131,184,194,21,131,184,195,41,131,184,181,61,131,184,154,81,131,184,112,101,131,184,55,121,131,184,240,140,131,184,155,160,131,184,55,180,131,184,196,199,131,184,67,219,131,184,180,238,131,184,22,2,132,184,105,21,132,184,174,40,132,184,229,59,132,184,13,79,132,184,38,98,132,184,49,117,132,184,46,136,132,184,28,155,132,184,251,173,132,184,204,192,132,184,142,211,132,184,65,230,132,184,230,248,132,184,125,11,133,184,5,30,133,184,126,48,133,184,232,66,133,184,68,85,133,184,146,103,133,184,
208,121,133,184,0,140,133,184,34,158,133,184,53,176,133,184,57,194,133,184,46,212,133,184,21,230,133,184,237,247,133,184,183,9,134,184,113,27,134,184,29,45,134,184,187,62,134,184,73,80,134,184,201,97,134,184,59,115,134,184,157,132,134,184,241,149,134,184,54,167,134,184,108,184,134,184,148,201,134,184,173,218,134,184,183,235,134,184,178,252,134,184,159,13,135,184,124,30,135,184,75,47,135,184,12,64,135,184,189,80,135,184,96,97,135,184,243,113,135,184,120,130,135,184,239,146,135,184,86,163,135,184,174,
179,135,184,248,195,135,184,51,212,135,184,95,228,135,184,124,244,135,184,139,4,136,184,138,20,136,184,123,36,136,184,92,52,136,184,47,68,136,184,243,83,136,184,168,99,136,184,79,115,136,184,230,130,136,184,110,146,136,184,232,161,136,184,82,177,136,184,174,192,136,184,251,207,136,184,57,223,136,184,104,238,136,184,136,253,136,184,153,12,137,184,155,27,137,184,142,42,137,184,114,57,137,184,71,72,137,184,14,87,137,184,197,101,137,184,109,116,137,184,7,131,137,184,145,145,137,184,12,160,137,184,121,
174,137,184,214,188,137,184,37,203,137,184,100,217,137,184,148,231,137,184,182,245,137,184,200,3,138,184,203,17,138,184,192,31,138,184,165,45,138,184,123,59,138,184,66,73,138,184,250,86,138,184,163,100,138,184,61,114,138,184,200,127,138,184,68,141,138,184,177,154,138,184,15,168,138,184,93,181,138,184,157,194,138,184,206,207,138,184,239,220,138,184,1,234,138,184,5,247,138,184,249,3,139,184,222,16,139,184,180,29,139,184,122,42,139,184,50,55,139,184,218,67,139,184,116,80,139,184,254,92,139,184,121,105,
139,184,229,117,139,184,66,130,139,184,144,142,139,184,207,154,139,184,254,166,139,184,30,179,139,184,47,191,139,184,49,203,139,184,36,215,139,184,8,227,139,184,220,238,139,184,161,250,139,184,87,6,140,184,254,17,140,184,150,29,140,184,30,41,140,184,152,52,140,184,2,64,140,184,93,75,140,184,168,86,140,184,229,97,140,184,18,109,140,184,48,120,140,184,63,131,140,184,63,142,140,184,47,153,140,184,16,164,140,184,226,174,140,184,165,185,140,184,88,196,140,184,252,206,140,184,145,217,140,184,23,228,140,
184,142,238,140,184,245,248,140,184,77,3,141,184,149,13,141,184,207,23,141,184,249,33,141,184,20,44,141,184,32,54,141,184,28,64,141,184,9,74,141,184,231,83,141,184,181,93,141,184,116,103,141,184,36,113,141,184,197,122,141,184,86,132,141,184,216,141,141,184,75,151,141,184,175,160,141,184,3,170,141,184,72,179,141,184,125,188,141,184,163,197,141,184,186,206,141,184,194,215,141,184,186,224,141,184,163,233,141,184,125,242,141,184,71,251,141,184,2,4,142,184,174,12,142,184,74,21,142,184,215,29,142,184,85,
38,142,184,195,46,142,184,34,55,142,184,113,63,142,184,178,71,142,184,227,79,142,184,4,88,142,184,22,96,142,184,25,104,142,184,13,112,142,184,241,119,142,184,198,127,142,184,139,135,142,184,65,143,142,184,232,150,142,184,127,158,142,184,7,166,142,184,128,173,142,184,233,180,142,184,67,188,142,184,141,195,142,184,201,202,142,184,244,209,142,184,17,217,142,184,30,224,142,184,27,231,142,184,9,238,142,184,232,244,142,184,184,251,142,184,120,2,143,184,40,9,143,184,202,15,143,184,91,22,143,184,222,28,143,
184,81,35,143,184,181,41,143,184,9,48,143,184,78,54,143,184,131,60,143,184,169,66,143,184,192,72,143,184,199,78,143,184,191,84,143,184,167,90,143,184,128,96,143,184,74,102,143,184,4,108,143,184,175,113,143,184,74,119,143,184,214,124,143,184,83,130,143,184,192,135,143,184,30,141,143,184,108,146,143,184,171,151,143,184,218,156,143,184,250,161,143,184,11,167,143,184,12,172,143,184,254,176,143,184,224,181,143,184,179,186,143,184,119,191,143,184,43,196,143,184,207,200,143,184,101,205,143,184,234,209,143,
184,97,214,143,184,200,218,143,184,31,223,143,184,103,227,143,184,160,231,143,184,201,235,143,184,227,239,143,184,237,243,143,184,232,247,143,184,212,251,143,184,176,255,143,184,125,3,144,184,58,7,144,184,232,10,144,184,134,14,144,184,21,18,144,184,148,21,144,184,5,25,144,184,101,28,144,184,182,31,144,184,248,34,144,184,42,38,144,184,77,41,144,184,97,44,144,184,101,47,144,184,90,50,144,184,63,53,144,184,20,56,144,184,219,58,144,184,146,61,144,184,57,64,144,184,209,66,144,184,90,69,144,184,211,71,
144,184,61,74,144,184,151,76,144,184,226,78,144,184,29,81,144,184,73,83,144,184,102,85,144,184,115,87,144,184,113,89,144,184,95,91,144,184,62,93,144,184,13,95,144,184,205,96,144,184,126,98,144,184,31,100,144,184,177,101,144,184,51,103,144,184,166,104,144,184,10,106,144,184,94,107,144,184,163,108,144,184,216,109,144,184,254,110,144,184,20,112,144,184,27,113,144,184,19,114,144,184,251,114,144,184,212,115,144,184,157,116,144,184,87,117,144,184,2,118,144,184,157,118,144,184,40,119,144,184,165,119,144,
184,18,120,144,184,111,120,144,184,189,120,144,184,252,120,144,184,43,121,144,184,75,121,144,184,92,121,144,184,93,121,144,184,79,121,144,184,49,121,144,184,4,121,144,184,199,120,144,184,124,120,144,184,32,120,144,184,182,119,144,184,60,119,144,184,178,118,144,184,26,118,144,184,113,117,144,184,186,116,144,184,243,115,144,184,29,115,144,184,55,114,144,184,66,113,144,184,62,112,144,184,42,111,144,184,7,110,144,184,213,108,144,184,147,107,144,184,66,106,144,184,225,104,144,184,113,103,144,184,242,101,
144,184,99,100,144,184,197,98,144,184,24,97,144,184,91,95,144,184,143,93,144,184,180,91,144,184,201,89,144,184,207,87,144,184,198,85,144,184,173,83,144,184,133,81,144,184,78,79,144,184,7,77,144,184,177,74,144,184,76,72,144,184,215,69,144,184,83,67,144,184,192,64,144,184,30,62,144,184,108,59,144,184,171,56,144,184,218,53,144,184,250,50,144,184,11,48,144,184,13,45,144,184,255,41,144,184,226,38,144,184,182,35,144,184,122,32,144,184,48,29,144,184,213,25,144,184,108,22,144,184,243,18,144,184,108,15,144,
184,212,11,144,184,46,8,144,184,120,4,144,184,179,0,144,184,223,252,143,184,251,248,143,184,9,245,143,184,7,241,143,184,245,236,143,184,213,232,143,184,165,228,143,184,102,224,143,184,24,220,143,184,187,215,143,184,78,211,143,184,210,206,143,184,71,202,143,184,173,197,143,184,3,193,143,184,74,188,143,184,130,183,143,184,171,178,143,184,197,173,143,184,207,168,143,184,202,163,143,184,182,158,143,184,147,153,143,184,97,148,143,184,32,143,143,184,207,137,143,184,111,132,143,184,0,127,143,184,130,121,
143,184,244,115,143,184,88,110,143,184,172,104,143,184,242,98,143,184,40,93,143,184,78,87,143,184,102,81,143,184,111,75,143,184,104,69,143,184,83,63,143,184,46,57,143,184,250,50,143,184,183,44,143,184,101,38,143,184,4,32,143,184,147,25,143,184,20,19,143,184,133,12,143,184,232,5,143,184,59,255,142,184,127,248,142,184,180,241,142,184,218,234,142,184,241,227,142,184,249,220,142,184,242,213,142,184,220,206,142,184,183,199,142,184,130,192,142,184,63,185,142,184,237,177,142,184,139,170,142,184,27,163,142,
184,155,155,142,184,13,148,142,184,111,140,142,184,195,132,142,184,7,125,142,184,60,117,142,184,99,109,142,184,122,101,142,184,131,93,142,184,124,85,142,184,103,77,142,184,66,69,142,184,15,61,142,184,204,52,142,184,123,44,142,184,26,36,142,184,171,27,142,184,45,19,142,184,159,10,142,184,3,2,142,184,88,249,141,184,158,240,141,184,213,231,141,184,253,222,141,184,22,214,141,184,33,205,141,184,28,196,141,184,9,187,141,184,230,177,141,184,181,168,141,184,117,159,141,184,38,150,141,184,200,140,141,184,
91,131,141,184,223,121,141,184,85,112,141,184,187,102,141,184,19,93,141,184,92,83,141,184,150,73,141,184,193,63,141,184,222,53,141,184,235,43,141,184,234,33,141,184,218,23,141,184,187,13,141,184,142,3,141,184,81,249,140,184,6,239,140,184,172,228,140,184,67,218,140,184,204,207,140,184,70,197,140,184,177,186,140,184,13,176,140,184,90,165,140,184,153,154,140,184,201,143,140,184,234,132,140,184,253,121,140,184,0,111,140,184,245,99,140,184,220,88,140,184,179,77,140,184,124,66,140,184,55,55,140,184,226,
43,140,184,127,32,140,184,13,21,140,184,141,9,140,184,254,253,139,184,96,242,139,184,180,230,139,184,249,218,139,184,47,207,139,184,87,195,139,184,112,183,139,184,122,171,139,184,118,159,139,184,100,147,139,184,66,135,139,184,18,123,139,184,212,110,139,184,135,98,139,184,43,86,139,184,193,73,139,184,72,61,139,184,193,48,139,184,43,36,139,184,135,23,139,184,212,10,139,184,18,254,138,184,66,241,138,184,100,228,138,184,119,215,138,184,123,202,138,184,113,189,138,184,89,176,138,184,50,163,138,184,252,
149,138,184,184,136,138,184,102,123,138,184,5,110,138,184,150,96,138,184,24,83,138,184,140,69,138,184,242,55,138,184,73,42,138,184,145,28,138,184,203,14,138,184,247,0,138,184,21,243,137,184,36,229,137,184,36,215,137,184,23,201,137,184,251,186,137,184,208,172,137,184,151,158,137,184,80,144,137,184,251,129,137,184,151,115,137,184,37,101,137,184,165,86,137,184,22,72,137,184,121,57,137,184,206,42,137,184,20,28,137,184,76,13,137,184,118,254,136,184,146,239,136,184,159,224,136,184,159,209,136,184,143,194,
136,184,114,179,136,184,71,164,136,184,13,149,136,184,197,133,136,184,111,118,136,184,10,103,136,184,152,87,136,184,23,72,136,184,136,56,136,184,235,40,136,184,64,25,136,184,135,9,136,184,191,249,135,184,234,233,135,184,6,218,135,184,20,202,135,184,20,186,135,184,6,170,135,184,234,153,135,184,192,137,135,184,136,121,135,184,65,105,135,184,237,88,135,184,139,72,135,184,26,56,135,184,156,39,135,184,15,23,135,184,116,6,135,184,204,245,134,184,21,229,134,184,81,212,134,184,126,195,134,184,158,178,134,
184,175,161,134,184,179,144,134,184,168,127,134,184,144,110,134,184,106,93,134,184,54,76,134,184,243,58,134,184,163,41,134,184,69,24,134,184,218,6,134,184,96,245,133,184,216,227,133,184,67,210,133,184,160,192,133,184,238,174,133,184,47,157,133,184,99,139,133,184,136,121,133,184,160,103,133,184,169,85,133,184,165,67,133,184,147,49,133,184,116,31,133,184,70,13,133,184,11,251,132,184,194,232,132,184,108,214,132,184,7,196,132,184,149,177,132,184,21,159,132,184,136,140,132,184,236,121,132,184,67,103,132,
184,141,84,132,184,200,65,132,184,246,46,132,184,23,28,132,184,42,9,132,184,47,246,131,184,38,227,131,184,16,208,131,184,236,188,131,184,187,169,131,184,124,150,131,184,47,131,131,184,213,111,131,184,110,92,131,184,248,72,131,184,118,53,131,184,229,33,131,184,71,14,131,184,156,250,130,184,227,230,130,184,29,211,130,184,73,191,130,184,104,171,130,184,121,151,130,184,125,131,130,184,115,111,130,184,92,91,130,184,55,71,130,184,5,51,130,184,198,30,130,184,121,10,130,184,31,246,129,184,183,225,129,184,
66,205,129,184,192,184,129,184,48,164,129,184,147,143,129,184,233,122,129,184,49,102,129,184,108,81,129,184,154,60,129,184,186,39,129,184,205,18,129,184,211,253,128,184,203,232,128,184,183,211,128,184,149,190,128,184,102,169,128,184,41,148,128,184,224,126,128,184,137,105,128,184,37,84,128,184,180,62,128,184,53,41,128,184,170,19,128,184,34,252,127,184,214,208,127,184,112,165,127,184,240,121,127,184,86,78,127,184,161,34,127,184,210,246,126,184,233,202,126,184,230,158,126,184,201,114,126,184,145,70,
126,184,64,26,126,184,212,237,125,184,79,193,125,184,175,148,125,184,245,103,125,184,34,59,125,184,52,14,125,184,45,225,124,184,11,180,124,184,208,134,124,184,123,89,124,184,12,44,124,184,131,254,123,184,224,208,123,184,36,163,123,184,78,117,123,184,94,71,123,184,84,25,123,184],"i8",4,y.a+993280);
Q([48,235,122,184,243,188,122,184,157,142,122,184,44,96,122,184,162,49,122,184,254,2,122,184,65,212,121,184,107,165,121,184,122,118,121,184,112,71,121,184,77,24,121,184,16,233,120,184,186,185,120,184,75,138,120,184,194,90,120,184,31,43,120,184,99,251,119,184,142,203,119,184,160,155,119,184,152,107,119,184,119,59,119,184,61,11,119,184,234,218,118,184,125,170,118,184,247,121,118,184,88,73,118,184,160,24,118,184,207,231,117,184,229,182,117,184,225,133,117,184,197,84,117,184,144,35,117,184,65,242,116,
184,218,192,116,184,90,143,116,184,192,93,116,184,14,44,116,184,67,250,115,184,95,200,115,184,98,150,115,184,77,100,115,184,30,50,115,184,215,255,114,184,119,205,114,184,255,154,114,184,110,104,114,184,196,53,114,184,1,3,114,184,38,208,113,184,50,157,113,184,37,106,113,184,0,55,113,184,195,3,113,184,109,208,112,184,254,156,112,184,119,105,112,184,216,53,112,184,32,2,112,184,80,206,111,184,103,154,111,184,102,102,111,184,77,50,111,184,27,254,110,184,210,201,110,184,111,149,110,184,245,96,110,184,99,
44,110,184,184,247,109,184,245,194,109,184,26,142,109,184,39,89,109,184,28,36,109,184,249,238,108,184,189,185,108,184,106,132,108,184,255,78,108,184,123,25,108,184,224,227,107,184,45,174,107,184,98,120,107,184,127,66,107,184,133,12,107,184,114,214,106,184,72,160,106,184,6,106,106,184,172,51,106,184,59,253,105,184,178,198,105,184,17,144,105,184,88,89,105,184,136,34,105,184,161,235,104,184,161,180,104,184,139,125,104,184,92,70,104,184,22,15,104,184,185,215,103,184,69,160,103,184,184,104,103,184,21,
49,103,184,90,249,102,184,136,193,102,184,158,137,102,184,158,81,102,184,133,25,102,184,86,225,101,184,16,169,101,184,178,112,101,184,61,56,101,184,177,255,100,184,14,199,100,184,84,142,100,184,131,85,100,184,154,28,100,184,155,227,99,184,133,170,99,184,88,113,99,184,19,56,99,184,184,254,98,184,70,197,98,184,190,139,98,184,30,82,98,184,104,24,98,184,154,222,97,184,182,164,97,184,188,106,97,184,170,48,97,184,130,246,96,184,68,188,96,184,239,129,96,184,131,71,96,184,0,13,96,184,103,210,95,184,184,151,
95,184,242,92,95,184,21,34,95,184,35,231,94,184,25,172,94,184,250,112,94,184,196,53,94,184,119,250,93,184,21,191,93,184,156,131,93,184,13,72,93,184,103,12,93,184,172,208,92,184,218,148,92,184,242,88,92,184,244,28,92,184,224,224,91,184,182,164,91,184,118,104,91,184,32,44,91,184,180,239,90,184,50,179,90,184,154,118,90,184,236,57,90,184,40,253,89,184,79,192,89,184,95,131,89,184,90,70,89,184,63,9,89,184,15,204,88,184,200,142,88,184,108,81,88,184,251,19,88,184,115,214,87,184,214,152,87,184,36,91,87,184,
92,29,87,184,126,223,86,184,139,161,86,184,131,99,86,184,101,37,86,184,50,231,85,184,233,168,85,184,139,106,85,184,24,44,85,184,143,237,84,184,241,174,84,184,62,112,84,184,118,49,84,184,153,242,83,184,166,179,83,184,158,116,83,184,129,53,83,184,79,246,82,184,9,183,82,184,173,119,82,184,60,56,82,184,182,248,81,184,27,185,81,184,107,121,81,184,167,57,81,184,205,249,80,184,223,185,80,184,220,121,80,184,197,57,80,184,152,249,79,184,87,185,79,184,1,121,79,184,151,56,79,184,24,248,78,184,132,183,78,184,
220,118,78,184,31,54,78,184,78,245,77,184,104,180,77,184,110,115,77,184,96,50,77,184,61,241,76,184,6,176,76,184,186,110,76,184,90,45,76,184,230,235,75,184,94,170,75,184,193,104,75,184,16,39,75,184,76,229,74,184,115,163,74,184,134,97,74,184,132,31,74,184,111,221,73,184,70,155,73,184,9,89,73,184,184,22,73,184,83,212,72,184,218,145,72,184,77,79,72,184,173,12,72,184,249,201,71,184,48,135,71,184,85,68,71,184,101,1,71,184,98,190,70,184,75,123,70,184,33,56,70,184,226,244,69,184,145,177,69,184,44,110,69,
184,179,42,69,184,39,231,68,184,135,163,68,184,212,95,68,184,14,28,68,184,52,216,67,184,71,148,67,184,71,80,67,184,52,12,67,184,13,200,66,184,211,131,66,184,134,63,66,184,37,251,65,184,178,182,65,184,44,114,65,184,146,45,65,184,230,232,64,184,38,164,64,184,84,95,64,184,110,26,64,184,118,213,63,184,107,144,63,184,77,75,63,184,28,6,63,184,217,192,62,184,130,123,62,184,25,54,62,184,158,240,61,184,15,171,61,184,110,101,61,184,187,31,61,184,245,217,60,184,28,148,60,184,49,78,60,184,51,8,60,184,35,194,
59,184,1,124,59,184,204,53,59,184,133,239,58,184,43,169,58,184,191,98,58,184,65,28,58,184,177,213,57,184,15,143,57,184,90,72,57,184,148,1,57,184,187,186,56,184,208,115,56,184,211,44,56,184,196,229,55,184,163,158,55,184,112,87,55,184,44,16,55,184,213,200,54,184,109,129,54,184,242,57,54,184,102,242,53,184,201,170,53,184,25,99,53,184,88,27,53,184,133,211,52,184,161,139,52,184,170,67,52,184,163,251,51,184,138,179,51,184,95,107,51,184,35,35,51,184,213,218,50,184,118,146,50,184,6,74,50,184,132,1,50,184,
241,184,49,184,77,112,49,184,151,39,49,184,209,222,48,184,249,149,48,184,16,77,48,184,21,4,48,184,10,187,47,184,238,113,47,184,193,40,47,184,130,223,46,184,51,150,46,184,211,76,46,184,97,3,46,184,223,185,45,184,77,112,45,184,169,38,45,184,245,220,44,184,48,147,44,184,90,73,44,184,115,255,43,184,124,181,43,184,116,107,43,184,92,33,43,184,51,215,42,184,250,140,42,184,176,66,42,184,86,248,41,184,235,173,41,184,112,99,41,184,228,24,41,184,73,206,40,184,157,131,40,184,224,56,40,184,20,238,39,184,55,163,
39,184,74,88,39,184,78,13,39,184,65,194,38,184,35,119,38,184,246,43,38,184,185,224,37,184,108,149,37,184,15,74,37,184,162,254,36,184,38,179,36,184,153,103,36,184,253,27,36,184,81,208,35,184,149,132,35,184,202,56,35,184,238,236,34,184,4,161,34,184,9,85,34,184,255,8,34,184,230,188,33,184,189,112,33,184,133,36,33,184,61,216,32,184,230,139,32,184,127,63,32,184,9,243,31,184,132,166,31,184,239,89,31,184,76,13,31,184,153,192,30,184,215,115,30,184,5,39,30,184,37,218,29,184,54,141,29,184,55,64,29,184,42,243,
28,184,14,166,28,184,227,88,28,184,168,11,28,184,95,190,27,184,8,113,27,184,161,35,27,184,43,214,26,184,167,136,26,184,21,59,26,184,115,237,25,184,195,159,25,184,4,82,25,184,55,4,25,184,91,182,24,184,113,104,24,184,120,26,24,184,113,204,23,184,92,126,23,184,56,48,23,184,5,226,22,184,197,147,22,184,118,69,22,184,25,247,21,184,174,168,21,184,53,90,21,184,173,11,21,184,24,189,20,184,116,110,20,184,195,31,20,184,3,209,19,184,53,130,19,184,90,51,19,184,113,228,18,184,121,149,18,184,116,70,18,184,98,247,
17,184,65,168,17,184,19,89,17,184,215,9,17,184,142,186,16,184,54,107,16,184,210,27,16,184,95,204,15,184,224,124,15,184,82,45,15,184,184,221,14,184,16,142,14,184,90,62,14,184,151,238,13,184,199,158,13,184,234,78,13,184,255,254,12,184,8,175,12,184,3,95,12,184,241,14,12,184,210,190,11,184,165,110,11,184,108,30,11,184,38,206,10,184,211,125,10,184,115,45,10,184,6,221,9,184,140,140,9,184,5,60,9,184,114,235,8,184,210,154,8,184,37,74,8,184,107,249,7,184,165,168,7,184,210,87,7,184,243,6,7,184,7,182,6,184,
14,101,6,184,10,20,6,184,248,194,5,184,219,113,5,184,176,32,5,184,122,207,4,184,55,126,4,184,232,44,4,184,141,219,3,184,38,138,3,184,178,56,3,184,51,231,2,184,167,149,2,184,15,68,2,184,107,242,1,184,188,160,1,184,0,79,1,184,56,253,0,184,101,171,0,184,134,89,0,184,154,7,0,184,71,107,255,183,66,199,254,183,37,35,254,183,241,126,253,183,166,218,252,183,67,54,252,183,202,145,251,183,57,237,250,183,146,72,250,183,211,163,249,183,254,254,248,183,18,90,248,183,15,181,247,183,246,15,247,183,198,106,246,183,
128,197,245,183,35,32,245,183,176,122,244,183,39,213,243,183,135,47,243,183,209,137,242,183,6,228,241,183,36,62,241,183,44,152,240,183,31,242,239,183,251,75,239,183,195,165,238,183,116,255,237,183,16,89,237,183,150,178,236,183,7,12,236,183,99,101,235,183,169,190,234,183,219,23,234,183,247,112,233,183,254,201,232,183,240,34,232,183,205,123,231,183,149,212,230,183,73,45,230,183,231,133,229,183,114,222,228,183,231,54,228,183,72,143,227,183,149,231,226,183,205,63,226,183,242,151,225,183,2,240,224,183,
253,71,224,183,229,159,223,183,185,247,222,183,121,79,222,183,37,167,221,183,189,254,220,183,66,86,220,183,179,173,219,183,16,5,219,183,90,92,218,183,144,179,217,183,180,10,217,183,195,97,216,183,192,184,215,183,170,15,215,183,128,102,214,183,68,189,213,183,245,19,213,183,147,106,212,183,30,193,211,183,150,23,211,183,252,109,210,183,79,196,209,183,144,26,209,183,190,112,208,183,219,198,207,183,228,28,207,183,220,114,206,183,194,200,205,183,149,30,205,183,87,116,204,183,6,202,203,183,164,31,203,183,
48,117,202,183,171,202,201,183,20,32,201,183,107,117,200,183,177,202,199,183,229,31,199,183,8,117,198,183,26,202,197,183,27,31,197,183,11,116,196,183,234,200,195,183,183,29,195,183,116,114,194,183,32,199,193,183,188,27,193,183,70,112,192,183,192,196,191,183,42,25,191,183,131,109,190,183,204,193,189,183,4,22,189,183,45,106,188,183,69,190,187,183,77,18,187,183,69,102,186,183,45,186,185,183,6,14,185,183,206,97,184,183,135,181,183,183,48,9,183,183,202,92,182,183,84,176,181,183,207,3,181,183,58,87,180,
183,150,170,179,183,227,253,178,183,33,81,178,183,80,164,177,183,112,247,176,183,129,74,176,183,131,157,175,183,118,240,174,183,91,67,174,183,49,150,173,183,249,232,172,183,178,59,172,183,92,142,171,183,249,224,170,183,135,51,170,183,7,134,169,183,121,216,168,183,221,42,168,183,51,125,167,183,123,207,166,183,181,33,166,183,226,115,165,183,0,198,164,183,18,24,164,183,22,106,163,183,12,188,162,183,245,13,162,183,209,95,161,183,159,177,160,183,97,3,160,183,21,85,159,183,189,166,158,183,87,248,157,183,
229,73,157,183,102,155,156,183,218,236,155,183,65,62,155,183,156,143,154,183,235,224,153,183,45,50,153,183,99,131,152,183,140,212,151,183,170,37,151,183,187,118,150,183,192,199,149,183,186,24,149,183,167,105,148,183,137,186,147,183,95,11,147,183,41,92,146,183,232,172,145,183,155,253,144,183,67,78,144,183,223,158,143,183,112,239,142,183,246,63,142,183,113,144,141,183,224,224,140,183,69,49,140,183,159,129,139,183,238,209,138,183,50,34,138,183,107,114,137,183,154,194,136,183,190,18,136,183,216,98,135,
183,232,178,134,183,237,2,134,183,232,82,133,183,216,162,132,183,191,242,131,183,156,66,131,183,110,146,130,183,55,226,129,183,246,49,129,183,171,129,128,183,173,162,127,183,241,65,126,183,34,225,124,183,64,128,123,183,76,31,122,183,68,190,120,183,43,93,119,183,255,251,117,183,193,154,116,183,113,57,115,183,15,216,113,183,156,118,112,183,23,21,111,183,128,179,109,183,217,81,108,183,32,240,106,183,86,142,105,183,124,44,104,183,145,202,102,183,149,104,101,183,137,6,100,183,109,164,98,183,65,66,97,183,
5,224,95,183,186,125,94,183,94,27,93,183,244,184,91,183,122,86,90,183,241,243,88,183,88,145,87,183,177,46,86,183,252,203,84,183,55,105,83,183,101,6,82,183,132,163,80,183,149,64,79,183,152,221,77,183,141,122,76,183,117,23,75,183,79,180,73,183,28,81,72,183,219,237,70,183,142,138,69,183,51,39,68,183,204,195,66,183,88,96,65,183,216,252,63,183,76,153,62,183,179,53,61,183,14,210,59,183,93,110,58,183,161,10,57,183,217,166,55,183,6,67,54,183,39,223,52,183,62,123,51,183,73,23,50,183,74,179,48,183,64,79,47,
183,43,235,45,183,12,135,44,183,227,34,43,183,175,190,41,183,114,90,40,183,43,246,38,183,218,145,37,183,128,45,36,183,29,201,34,183,176,100,33,183,59,0,32,183,188,155,30,183,53,55,29,183,165,210,27,183,13,110,26,183,108,9,25,183,195,164,23,183,19,64,22,183,90,219,20,183,154,118,19,183,210,17,18,183,3,173,16,183,45,72,15,183,79,227,13,183,107,126,12,183,128,25,11,183,142,180,9,183,150,79,8,183,151,234,6,183,146,133,5,183,135,32,4,183,119,187,2,183,96,86,1,183,136,226,255,182,69,24,253,182,247,77,250,
182,159,131,247,182,61,185,244,182,209,238,241,182,92,36,239,182,222,89,236,182,87,143,233,182,199,196,230,182,47,250,227,182,144,47,225,182,232,100,222,182,58,154,219,182,132,207,216,182,200,4,214,182,5,58,211,182,60,111,208,182,110,164,205,182,153,217,202,182,192,14,200,182,226,67,197,182,255,120,194,182,23,174,191,182,44,227,188,182,61,24,186,182,74,77,183,182,84,130,180,182,92,183,177,182,97,236,174,182,100,33,172,182,100,86,169,182,99,139,166,182,97,192,163,182,94,245,160,182,90,42,158,182,85,
95,155,182,80,148,152,182,76,201,149,182,72,254,146,182,68,51,144,182,66,104,141,182,65,157,138,182,65,210,135,182,68,7,133,182,72,60,130,182,159,226,126,182,179,76,121,182,206,182,115,182,239,32,110,182,23,139,104,182,72,245,98,182,129,95,93,182,195,201,87,182,15,52,82,182,102,158,76,182,199,8,71,182,52,115,65,182,173,221,59,182,51,72,54,182,199,178,48,182,104,29,43,182,24,136,37,182,215,242,31,182,165,93,26,182,132,200,20,182,116,51,15,182,118,158,9,182,137,9,4,182,95,233,252,181,210,191,241,181,
109,150,230,181,49,109,219,181,31,68,208,181,56,27,197,181,126,242,185,181,241,201,174,181,148,161,163,181,102,121,152,181,106,81,141,181,160,41,130,181,19,4,110,181,80,181,87,181,249,102,65,181,17,25,43,181,153,203,20,181,40,253,252,180,10,100,208,180,219,203,163,180,64,105,110,180,189,60,21,180,216,72,112,179,98,178,232,50,128,121,236,51,27,97,79,52,171,65,148,52,178,209,192,52,159,96,237,52,55,247,12,53,140,61,35,53,78,131,57,53,120,200,79,53,10,13,102,53,0,81,124,53,45,74,137,53,137,107,148,53,
148,140,159,53,77,173,170,53,179,205,181,53,195,237,192,53,126,13,204,53,226,44,215,53,237,75,226,53,159,106,237,53,247,136,248,53,121,211,1,54,73,98,7,54,233,240,12,54,90,127,18,54,154,13,24,54,170,155,29,54,136,41,35,54,52,183,40,54,174,68,46,54,244,209,51,54,7,95,57,54,229,235,62,54,142,120,68,54,2,5,74,54,64,145,79,54,71,29,85,54,23,169,90,54,174,52,96,54,14,192,101,54,52,75,107,54,33,214,112,54,211,96,118,54,75,235,123,54,196,186,128,54,196,127,131,54,166,68,134,54,105,9,137,54,14,206,139,54,
147,146,142,54,249,86,145,54,63,27,148,54,101,223,150,54,107,163,153,54,80,103,156,54,20,43,159,54,183,238,161,54,57,178,164,54,153,117,167,54,214,56,170,54,242,251,172,54,234,190,175,54,192,129,178,54,115,68,181,54,2,7,184,54,109,201,186,54,180,139,189,54,214,77,192,54,212,15,195,54,173,209,197,54,97,147,200,54,239,84,203,54,87,22,206,54,153,215,208,54,181,152,211,54,170,89,214,54,120,26,217,54,31,219,219,54,158,155,222,54,245,91,225,54,36,28,228,54,42,220,230,54,8,156,233,54,189,91,236,54,72,27,
239,54,170,218,241,54,226,153,244,54,239,88,247,54,210,23,250,54,139,214,252,54,24,149,255,54,189,41,1,55,216,136,2,55,221,231,3,55,204,70,5,55,165,165,6,55,104,4,8,55,20,99,9,55,169,193,10,55,39,32,12,55,142,126,13,55,223,220,14,55,24,59,16,55,57,153,17,55,67,247,18,55,54,85,20,55,16,179,21,55,211,16,23,55,125,110,24,55,15,204,25,55,137,41,27,55,234,134,28,55,51,228,29,55,98,65,31,55,121,158,32,55,119,251,33,55,91,88,35,55,38,181,36,55,215,17,38,55,111,110,39,55,236,202,40,55,80,39,42,55,154,131,
43,55,201,223,44,55,222,59,46,55,216,151,47,55,184,243,48,55,125,79,50,55,39,171,51,55,182,6,53,55,41,98,54,55,129,189,55,55,190,24,57,55,223,115,58,55,228,206,59,55,205,41,61,55,153,132,62,55,74,223,63,55,222,57,65,55,86,148,66,55,177,238,67,55,239,72,69,55,16,163,70,55,20,253,71,55,251,86,73,55,197,176,74,55,113,10,76,55,255,99,77,55,111,189,78,55,194,22,80,55,246,111,81,55,12,201,82,55,4,34,84,55,221,122,85,55,152,211,86,55,51,44,88,55,176,132,89,55,14,221,90,55,76,53,92,55,107,141,93,55,107,229,
94,55,75,61,96,55,11,149,97,55,171,236,98,55,44,68,100,55,140,155,101,55,203,242,102,55,234,73,104,55,233,160,105,55,198,247,106,55,131,78,108,55,31,165,109,55,154,251,110,55,243,81,112,55,43,168,113,55,65,254,114,55,53,84,116,55,8,170,117,55,184,255,118,55,71,85,120,55,179,170,121,55,252,255,122,55,35,85,124,55,40,170,125,55,9,255,126,55,228,41,128,55,49,212,128,55,109,126,129,55,152,40,130,55,176,210,130,55,183,124,131,55,172,38,132,55,142,208,132,55,95,122,133,55,30,36,134,55,202,205,134,55,100,
119,135,55,236,32,136,55,98,202,136,55,197,115,137,55,21,29,138,55,83,198,138,55,126,111,139,55,150,24,140,55,156,193,140,55,143,106,141,55,110,19,142,55,59,188,142,55,245,100,143,55,155,13,144,55,47,182,144,55,175,94,145,55,27,7,146,55,116,175,146,55,186,87,147,55,236,255,147,55,11,168,148,55,22,80,149,55,13,248,149,55,240,159,150,55,191,71,151,55,122,239,151,55,34,151,152,55,181,62,153,55,52,230,153,55,159,141,154,55,245,52,155,55,55,220,155,55,101,131,156,55,126,42,157,55,130,209,157,55,114,120,
158,55,77,31,159,55,20,198,159,55,197,108,160,55,98,19,161,55,233,185,161,55,92,96,162,55,185,6,163,55,1,173,163,55,52,83,164,55,82,249,164,55,90,159,165,55,77,69,166,55,42,235,166,55,242,144,167,55,164,54,168,55,64,220,168,55,198,129,169,55,55,39,170,55,146,204,170,55,214,113,171,55,5,23,172,55,29,188,172,55,31,97,173,55,11,6,174,55,225,170,174,55,160,79,175,55,73,244,175,55,219,152,176,55,87,61,177,55,188,225,177,55,10,134,178,55,66,42,179,55,98,206,179,55,108,114,180,55,95,22,181,55,58,186,181,
55,255,93,182,55,172,1,183,55,66,165,183,55,193,72,184,55,40,236,184,55,120,143,185,55,176,50,186,55,209,213,186,55,218,120,187,55,203,27,188,55,165,190,188,55,103,97,189,55,17,4,190,55,162,166,190,55,28,73,191,55,126,235,191,55,199,141,192,55,248,47,193,55,17,210,193,55,18,116,194,55,250,21,195,55,202,183,195,55,129,89,196,55,31,251,196,55,165,156,197,55,18,62,198,55,102,223,198,55,161,128,199,55,195,33,200,55,204,194,200,55,188,99,201,55,147,4,202,55,81,165,202,55,245,69,203,55,128,230,203,55,242,
134,204,55,74,39,205,55,137,199,205,55,174,103,206,55,185,7,207,55,171,167,207,55,131,71,208,55,64,231,208,55,229,134,209,55,111,38,210,55,222,197,210,55,52,101,211,55,112,4,212,55,145,163,212,55,152,66,213,55,133,225,213,55,87,128,214,55,15,31,215,55,172,189,215,55,47,92,216,55,151,250,216,55,228,152,217,55,22,55,218,55,45,213,218,55,42,115,219,55,11,17,220,55,210,174,220,55,125,76,221,55,13,234,221,55,129,135,222,55,219,36,223,55,25,194,223,55,59,95,224,55,66,252,224,55,46,153,225,55,254,53,226,
55,178,210,226,55,74,111,227,55,199,11,228,55,39,168,228,55,108,68,229,55,148,224,229,55,161,124,230,55,145,24,231,55,101,180,231,55,29,80,232,55,185,235,232,55,56,135,233,55,155,34,234,55,225,189,234,55,10,89,235,55,23,244,235,55,8,143,236,55,219,41,237,55,146,196,237,55,44,95,238,55,168,249,238,55,8,148,239,55,75,46,240,55,112,200,240,55,121,98,241,55,100,252,241,55,50,150,242,55,226,47,243,55,117,201,243,55,235,98,244,55,66,252,244,55,125,149,245,55,153,46,246,55,152,199,246,55,121,96,247,55,60,
249,247,55,225,145,248,55,105,42,249,55,210,194,249,55,29,91,250,55,74,243,250,55,88,139,251,55,72,35,252,55,26,187,252,55,206,82,253,55,99,234,253,55,217,129,254,55,49,25,255,55,107,176,255,55,195,35,0,56,64,111,0,56,175,186,0,56,14,6,1,56,93,81,1,56,157,156,1,56,206,231,1,56,239,50,2,56,0,126,2,56,2,201,2,56,244,19,3,56,214,94,3,56,169,169,3,56,107,244,3,56,30,63,4,56,194,137,4,56,85,212,4,56,217,30,5,56,76,105,5,56,176,179,5,56,4,254,5,56,72,72,6,56,123,146,6,56,159,220,6,56,179,38,7,56,182,112,
7,56,170,186,7,56,141,4,8,56,96,78,8,56,35,152,8,56,213,225,8,56,120,43,9,56,10,117,9,56,139,190,9,56,252,7,10,56,93,81,10,56,174,154,10,56,238,227,10,56,29,45,11,56,60,118,11,56,75,191,11,56,73,8,12,56,54,81,12,56,19,154,12,56,223,226,12,56,154,43,13,56,68,116,13,56,222,188,13,56,103,5,14,56,224,77,14,56,71,150,14,56,158,222,14,56,227,38,15,56,24,111,15,56,60,183,15,56,79,255,15,56,81,71,16,56,66,143,16,56,33,215,16,56,240,30,17,56,174,102,17,56,90,174,17,56,245,245,17,56,127,61,18,56,248,132,18,
56,96,204,18,56,182,19,19,56,251,90,19,56,47,162,19,56,81,233,19,56,98,48,20,56,97,119,20,56,79,190,20,56,44,5,21,56,247,75,21,56,176,146,21,56,88,217,21,56,239,31,22,56,115,102,22,56,230,172,22,56,72,243,22,56,151,57,23,56,213,127,23,56,1,198,23,56,28,12,24,56,36,82,24,56,27,152,24,56,0,222,24,56,211,35,25,56,148,105,25,56,67,175,25,56,224,244,25,56,107,58,26,56,228,127,26,56,75,197,26,56,160,10,27,56,227,79,27,56,20,149,27,56,50,218,27,56,63,31,28,56,57,100,28,56,32,169,28,56,246,237,28,56,185,
50,29,56,106,119,29,56,9,188,29,56,149,0,30,56,15,69,30,56,118,137,30,56,203,205,30,56,13,18,31,56,61,86,31,56,90,154,31,56,101,222,31,56,93,34,32,56,67,102,32,56,21,170,32,56,213,237,32,56,131,49,33,56,30,117,33,56,166,184,33,56,27,252,33,56,125,63,34,56,205,130,34,56,9,198,34,56,51,9,35,56,74,76,35,56,78,143,35,56,63,210,35,56,29,21,36,56,231,87,36,56,159,154,36,56,68,221,36,56,214,31,37,56,84,98,37,56,192,164,37,56,24,231,37,56,93,41,38,56,143,107,38,56,173,173,38,56,184,239,38,56,176,49,39,56,
149,115,39,56,102,181,39,56,36,247,39,56,207,56,40,56,102,122,40,56,233,187,40,56,89,253,40,56,182,62,41,56,255,127,41,56,52,193,41,56,86,2,42,56,100,67,42,56,95,132,42,56,70,197,42,56,25,6,43,56,217,70,43,56,132,135,43,56,28,200,43,56,161,8,44,56,17,73,44,56,110,137,44,56,182,201,44,56,235,9,45,56,12,74,45,56,25,138,45,56,18,202,45,56,247,9,46,56,200,73,46,56,133,137,46,56,46,201,46,56,195,8,47,56,67,72,47,56,176,135,47,56,8,199,47,56,77,6,48,56,125,69,48,56,152,132,48,56,160,195,48,56,147,2,49,
56,114,65,49,56,60,128,49,56,243,190,49,56,148,253,49,56,34,60,50,56,155,122,50,56,255,184,50,56,79,247,50,56,139,53,51,56,178,115,51,56,196,177,51,56,194,239,51,56,171,45,52,56,128,107,52,56,64,169,52,56,235,230,52,56,130,36,53,56,4,98,53,56,113,159,53,56,202,220,53,56,13,26,54,56,60,87,54,56,86,148,54,56,91,209,54,56,75,14,55,56,39,75,55,56,237,135,55,56,158,196,55,56,59,1,56,56,194,61,56,56,53,122,56,56,146,182,56,56,218,242,56,56,13,47,57,56,44,107,57,56,52,167,57,56,40,227,57,56,7,31,58,56,208,
90,58,56,132,150,58,56,35,210,58,56,173,13,59,56,33,73,59,56,128,132,59,56,202,191,59,56,254,250,59,56,29,54,60,56,38,113,60,56,26,172,60,56,249,230,60,56,194,33,61,56,117,92,61,56,20,151,61,56,156,209,61,56,15,12,62,56,108,70,62,56,180,128,62,56,230,186,62,56,2,245,62,56,9,47,63,56,250,104,63,56,213,162,63,56,155,220,63,56,74,22,64,56,228,79,64,56,105,137,64,56,215,194,64,56,47,252,64,56,114,53,65,56,158,110,65,56,181,167,65,56,182,224,65,56,161,25,66,56,117,82,66,56,52,139,66,56,221,195,66,56,112,
252,66,56,236,52,67,56,83,109,67,56,163,165,67,56,221,221,67,56,1,22,68,56,15,78,68,56,7,134,68,56,232,189,68,56,179,245,68,56,104,45,69,56,7,101,69,56,143,156,69,56,1,212,69,56,93,11,70,56,162,66,70,56,209,121,70,56,233,176,70,56,235,231,70,56,215,30,71,56,172,85,71,56,106,140,71,56,18,195,71,56,164,249,71,56,31,48,72,56,131,102,72,56,209,156,72,56,8,211,72,56,40,9,73,56,50,63,73,56,37,117,73,56,1,171,73,56,199,224,73,56,118,22,74,56,14,76,74,56,143,129,74,56,250,182,74,56,78,236,74,56,138,33,75,
56,176,86,75,56,191,139,75,56,184,192,75,56,153,245,75,56,99,42,76,56,22,95,76,56,179,147,76,56,56,200,76,56,166,252,76,56,253,48,77,56,62,101,77,56,103,153,77,56,121,205,77,56,115,1,78,56,87,53,78,56,36,105,78,56,217,156,78,56,119,208,78,56,254,3,79,56,110,55,79,56,198,106,79,56,7,158,79,56,49,209,79,56,67,4,80,56,62,55,80,56,34,106,80,56,239,156,80,56,163,207,80,56,65,2,81,56,199,52,81,56,54,103,81,56,141,153,81,56,205,203,81,56,245,253,81,56,6,48,82,56,255,97,82,56,224,147,82,56,170,197,82,56,
93,247,82,56,247,40,83,56,122,90,83,56,230,139,83,56,57,189,83,56,117,238,83,56,154,31,84,56,166,80,84,56,155,129,84,56,120,178,84,56,62,227,84,56,235,19,85,56,129,68,85,56,254,116,85,56,100,165,85,56,178,213,85,56,233,5,86,56,7,54,86,56,13,102,86,56,251,149,86,56,210,197,86,56,144,245,86,56,55,37,87,56,197,84,87,56,59,132,87,56,153,179,87,56,224,226,87,56,14,18,88,56,36,65,88,56,34,112,88,56,7,159,88,56,213,205,88,56,138,252,88,56,39,43,89,56,172,89,89,56,25,136,89,56,109,182,89,56,170,228,89,56,
206,18,90,56,217,64,90,56,205,110,90,56,167,156,90,56,106,202,90,56,20,248,90,56,166,37,91,56,32,83,91,56,129,128,91,56,201,173,91,56,249,218,91,56,17,8,92,56,16,53,92,56,247,97,92,56,197,142,92,56,123,187,92,56,24,232,92,56,157,20,93,56,8,65,93,56,92,109,93,56,151,153,93,56,185,197,93,56,194,241,93,56,179,29,94,56,139,73,94,56,74,117,94,56,241,160,94,56,127,204,94,56,244,247,94,56,81,35,95,56,148,78,95,56,191,121,95,56,209,164,95,56,203,207,95,56,171,250,95,56,115,37,96,56,33,80,96,56,183,122,96,
56,52,165,96,56,152,207,96,56,227,249,96,56,21,36,97,56,46,78,97,56,47,120,97,56,22,162,97,56,228,203,97,56,153,245,97,56,53,31,98,56,184,72,98,56,34,114,98,56,115,155,98,56,171,196,98,56,202,237,98,56,207,22,99,56,188,63,99,56,143,104,99,56,73,145,99,56,234,185,99,56,114,226,99,56,224,10,100,56,53,51,100,56,113,91,100,56,148,131,100,56,158,171,100,56,142,211,100,56,101,251,100,56,34,35,101,56,199,74,101,56,81,114,101,56,195,153,101,56,27,193,101,56,90,232,101,56,127,15,102,56,139,54,102,56,126,93,
102,56,87,132,102,56,22,171,102,56,188,209,102,56,73,248,102,56,188,30,103,56,22,69,103,56,86,107,103,56,125,145,103,56,138,183,103,56,125,221,103,56,87,3,104,56,23,41,104,56,190,78,104,56,75,116,104,56,190,153,104,56,24,191,104,56,88,228,104,56,127,9,105,56,139,46,105,56,126,83,105,56,88,120,105,56,23,157,105,56,189,193,105,56,73,230,105,56,187,10,106,56,20,47,106,56,83,83,106,56,120,119,106,56,131,155,106,56,116,191,106,56,76,227,106,56,9,7,107,56,173,42,107,56,55,78,107,56,167,113,107,56,253,148,
107,56,57,184,107,56,91,219,107,56,99,254,107,56,82,33,108,56,38,68,108,56,224,102,108,56,129,137,108,56,7,172,108,56,116,206,108,56,198,240,108,56,254,18,109,56,28,53,109,56,33,87,109,56,11,121,109,56,219,154,109,56,145,188,109,56,45,222,109,56,174,255,109,56,22,33,110,56,99,66,110,56,150,99,110,56,176,132,110,56,174,165,110,56,147,198,110,56,94,231,110,56,14,8,111,56,164,40,111,56,32,73,111,56,130,105,111,56,201,137,111,56,246,169,111,56,9,202,111,56,1,234,111,56,223,9,112,56,163,41,112,56,77,73,
112,56,220,104,112,56,81,136,112,56,172,167,112,56,236,198,112,56,17,230,112,56,29,5,113,56,14,36,113,56,228,66,113,56,161,97,113,56,66,128,113,56,202,158,113,56,55,189,113,56,137,219,113,56,193,249,113,56,222,23,114,56,225,53,114,56,202,83,114,56,152,113,114,56,75,143,114,56,228,172,114,56,98,202,114,56,198,231,114,56,15,5,115,56,62,34,115,56,82,63,115,56,76,92,115,56,42,121,115,56,239,149,115,56,152,178,115,56,39,207,115,56,156,235,115,56,246,7,116,56,53,36,116,56,89,64,116,56,99,92,116,56,82,120,
116,56,38,148,116,56,224,175,116,56,127,203,116,56,3,231,116,56,109,2,117,56,187,29,117,56,239,56,117,56,9,84,117,56,7,111,117,56,235,137,117,56,180,164,117,56,98,191,117,56,245,217,117,56,110,244,117,56,203,14,118,56,14,41,118,56,54,67,118,56,68,93,118,56,54,119,118,56,13,145,118,56,202,170,118,56,108,196,118,56,243,221,118,56,95,247,118,56,176,16,119,56,230,41,119,56,1,67,119,56,1,92,119,56,231,116,119,56,177,141,119,56,97,166,119,56,245,190,119,56,111,215,119,56,205,239,119,56,17,8,120,56,57,32,
120,56,71,56,120,56,58,80,120,56,17,104,120,56,206,127,120,56,111,151,120,56,246,174,120,56,97,198,120,56,178,221,120,56,231,244,120,56,1,12,121,56,1,35,121,56,229,57,121,56,174,80,121,56,92,103,121,56,239,125,121,56,103,148,121,56,195,170,121,56,5,193,121,56,43,215,121,56,54,237,121,56,39,3,122,56,252,24,122,56,181,46,122,56,84,68,122,56,216,89,122,56,64,111,122,56,141,132,122,56,191,153,122,56,214,174,122,56,209,195,122,56,178,216,122,56,119,237,122,56,33,2,123,56,176,22,123,56,35,43,123,56,123,
63,123,56,184,83,123,56,218,103,123,56,225,123,123,56,204,143,123,56,156,163,123,56,81,183,123,56,234,202,123,56,104,222,123,56,203,241,123,56,19,5,124,56,63,24,124,56,80,43,124,56,70,62,124,56,32,81,124,56,223,99,124,56,131,118,124,56,11,137,124,56,120,155,124,56,202,173,124,56,0,192,124,56,27,210,124,56,27,228,124,56,255,245,124,56,200,7,125,56,118,25,125,56,8,43,125,56,127,60,125,56,218,77,125,56,26,95,125,56,63,112,125,56,72,129,125,56,54,146,125,56,8,163,125,56,191,179,125,56,91,196,125,56,219,
212,125,56,63,229,125,56,137,245,125,56,182,5,126,56,201,21,126,56,192,37,126,56,155,53,126,56,91,69,126,56,0,85,126,56,137,100,126,56,247,115,126,56,73,131,126,56,128,146,126,56,155,161,126,56,155,176,126,56,127,191,126,56,72,206,126,56,245,220,126,56,135,235,126,56,253,249,126,56,88,8,127,56,151,22,127,56,187,36,127,56,195,50,127,56,176,64,127,56,129,78,127,56,55,92,127,56,209,105,127,56,80,119,127,56,179,132,127,56,250,145,127,56,38,159,127,56,55,172,127,56,44,185,127,56,5,198,127,56,195,210,127,
56,101,223,127,56,236,235,127,56,87,248,127,56,83,2,128,56,109,8,128,56,122,14,128,56,120,20,128,56,105,26,128,56,76,32,128,56,33,38,128,56,232,43,128,56,162,49,128,56,77,55,128,56,235,60,128,56,123,66,128,56,254,71,128,56,114,77,128,56,217,82,128,56,50,88,128,56,125,93,128,56,187,98,128,56,234,103,128,56,12,109,128,56,32,114,128,56,38,119,128,56,30,124,128,56,9,129,128,56,229,133,128,56,180,138,128,56,118,143,128,56,41,148,128,56,206,152,128,56,102,157,128,56,240,161,128,56,108,166,128,56,218,170,
128,56,59,175,128,56,141,179,128,56,210,183,128,56,9,188,128,56,50,192,128,56,78,196,128,56,91,200,128,56,91,204,128,56,77,208,128,56,49,212,128,56,7,216,128,56,208,219,128,56,138,223,128,56,55,227,128,56,214,230,128,56,103,234,128,56,235,237,128,56,96,241,128,56,200,244,128,56,34,248,128,56,110,251,128,56,172,254,128,56,221,1,129,56,255,4,129,56,20,8,129,56,27,11,129,56,20,14,129,56,0,17,129,56,221,19,129,56,173,22,129,56,111,25,129,56,35,28,129,56,201,30,129,56,97,33,129,56,236,35,129,56,105,38,
129,56,216,40,129,56,57,43,129,56,140,45,129,56,210,47,129,56,10,50,129,56,51,52,129,56,79,54,129,56,94,56,129,56,94,58,129,56,81,60,129,56,54,62,129,56,13,64,129,56,214,65,129,56,145,67,129,56,63,69,129,56,222,70,129,56,112,72,129,56,244,73,129,56,107,75,129,56,211,76,129,56,46,78,129,56,123,79,129,56,186,80,129,56,235,81,129,56,14,83,129,56,36,84,129,56,44,85,129,56,38,86,129,56,18,87,129,56,240,87,129,56,193,88,129,56,132,89,129,56,57,90,129,56,224,90,129,56,121,91,129,56,5,92,129,56,131,92,129,
56,243,92,129,56,85,93,129,56,170,93,129,56,240,93,129,56,41,94,129,56,84,94,129,56,113,94,129,56,129,94,129,56,131,94,129,56,118,94,129,56,93,94,129,56,53,94,129,56,255,93,129,56,188,93,129,56,107,93,129,56,12,93,129,56,160,92,129,56,38,92,129,56,158,91,129,56,8,91,129,56,100,90,129,56,179,89,129,56,243,88,129,56,38,88,129,56,76,87,129,56,99,86,129,56,109,85,129,56,105,84,129,56,87,83,129,56,56,82,129,56,11,81,129,56,208,79,129,56,135,78,129,56,48,77,129,56,204,75,129,56,90,74,129,56,218,72,129,
56,77,71,129,56,178,69,129,56,9,68,129,56,82,66,129,56,142,64,129,56,187,62,129,56,220,60,129,56,238,58,129,56,243,56,129,56,233,54,129,56,211,52,129,56,174,50,129,56,124,48,129,56,60,46,129,56,238,43,129,56,147,41,129,56,42,39,129,56,179,36,129,56,47,34,129,56,156,31,129,56,253,28,129,56,79,26,129,56,148,23,129,56,203,20,129,56,244,17,129,56,16,15,129,56,30,12,129,56,30,9,129,56,17,6,129,56,246,2,129,56,205,255,128,56,150,252,128,56,82,249,128,56,1,246,128,56,161,242,128,56,52,239,128,56,185,235,
128,56,49,232,128,56,155,228,128,56,247,224,128,56,70,221,128,56,135,217,128,56,186,213,128,56,224,209,128,56,248,205,128,56,2,202,128,56,255,197,128,56,238,193,128,56,208,189,128,56,164,185,128,56,106,181,128,56,35,177,128,56,206,172,128,56,108,168,128,56,251,163,128,56,126,159,128,56,242,154,128,56,89,150,128,56,179,145,128,56,255,140,128,56,61,136,128,56,110,131,128,56,145,126,128,56,166,121,128,56,174,116,128,56,169,111,128,56,150,106,128,56,117,101,128,56,71,96,128,56,11,91,128,56,193,85,128,
56,106,80,128,56,6,75,128,56,148,69,128,56,20,64,128,56,135,58,128,56,236,52,128,56,68,47,128,56,142,41,128,56,203,35,128,56,250,29,128,56,28,24,128,56,48,18,128,56,55,12,128,56,48,6,128,56,28,0,128,56,244,243,127,56,149,231,127,56,27,219,127,56,135,206,127,56,215,193,127,56,12,181,127,56,39,168,127,56,39,155,127,56,11,142,127,56,213,128,127,56,132,115,127,56,24,102,127,56,144,88,127,56,239,74,127,56,50,61,127,56,90,47,127,56,103,33,127,56,90,19,127,56,50,5,127,56,239,246,126,56,145,232,126,56,24,
218,126,56,132,203,126,56,214,188,126,56,13,174,126,56,40,159,126,56,42,144,126,56,16,129,126,56,220,113,126,56,141,98,126,56,35,83,126,56,158,67,126,56,255,51,126,56,69,36,126,56,112,20,126,56,128,4,126,56,118,244,125,56,81,228,125,56,18,212,125,56,183,195,125,56,66,179,125,56,179,162,125,56,9,146,125,56,68,129,125,56,100,112,125,56,106,95,125,56,86,78,125,56,38,61,125,56,221,43,125,56,120,26,125,56,249,8,125,56,95,247,124,56,171,229,124,56,221,211,124,56,244,193,124,56,240,175,124,56,210,157,124,
56,153,139,124,56,70,121,124,56,216,102,124,56,80,84,124,56,173,65,124,56,240,46,124,56,25,28,124,56,39,9,124,56,27,246,123,56,244,226,123,56,179,207,123,56,87,188,123,56,225,168,123,56,81,149,123,56,166,129,123,56,225,109,123,56,2,90,123,56,9,70,123,56,245,49,123,56,198,29,123,56,126,9,123,56,27,245,122,56,158,224,122,56,7,204,122,56,85,183,122,56,137,162,122,56,163,141,122,56,163,120,122,56,137,99,122,56,84,78,122,56,5,57,122,56,156,35,122,56,25,14,122,56,124,248,121,56,196,226,121,56,243,204,121,
56,7,183,121,56,1,161,121,56,225,138,121,56,167,116,121,56,83,94,121,56,229,71,121,56,93,49,121,56,187,26,121,56,255,3,121,56,41,237,120,56,57,214,120,56,46,191,120,56,10,168,120,56,204,144,120,56,116,121,120,56,2,98,120,56,118,74,120,56,208,50,120,56,17,27,120,56,55,3,120,56,68,235,119,56,54,211,119,56,15,187,119,56,206,162,119,56,115,138,119,56,255,113,119,56,112,89,119,56,200,64,119,56,6,40,119,56,42,15,119,56,53,246,118,56,37,221,118,56,253,195,118,56,186,170,118,56,93,145,118,56,231,119,118,
56,88,94,118,56,174,68,118,56,235,42,118,56,14,17,118,56,24,247,117,56,8,221,117,56,223,194,117,56,156,168,117,56,63,142,117,56,201,115,117,56,57,89,117,56,144,62,117,56,205,35,117,56,240,8,117,56,251,237,116,56,235,210,116,56,195,183,116,56,128,156,116,56,37,129,116,56,176,101,116,56,33,74,116,56,121,46,116,56,184,18,116,56,222,246,115,56,234,218,115,56,220,190,115,56,182,162,115,56,118,134,115,56,29,106,115,56,170,77,115,56,31,49,115,56,122,20,115,56,187,247,114,56,228,218,114,56,243,189,114,56,
233,160,114,56,198,131,114,56,138,102,114,56,53,73,114,56,198,43,114,56,63,14,114,56,158,240,113,56,228,210,113,56,17,181,113,56,37,151,113,56,32,121,113,56,2,91,113,56,203,60,113,56,123,30,113,56,18,0,113,56,144,225,112,56,245,194,112,56,65,164,112,56,116,133,112,56,142,102,112,56,144,71,112,56,120,40,112,56,72,9,112,56,254,233,111,56,156,202,111,56,33,171,111,56,141,139,111,56,225,107,111,56,27,76,111,56,61,44,111,56,70,12,111,56,55,236,110,56,15,204,110,56,206,171,110,56,116,139,110,56,1,107,110,
56,118,74,110,56,211,41,110,56,23,9,110,56,66,232,109,56,84,199,109,56,78,166,109,56,48,133,109,56,248,99,109,56,169,66,109,56,65,33,109,56,192,255,108,56,39,222,108,56,117,188,108,56,171,154,108,56,201,120,108,56,206,86,108,56,186,52,108,56,143,18,108,56,75,240,107,56,238,205,107,56,122,171,107,56,236,136,107,56,71,102,107,56,138,67,107,56,180,32,107,56,198,253,106,56,191,218,106,56,161,183,106,56,106,148,106,56,27,113,106,56,180,77,106,56,53,42,106,56,157,6,106,56,238,226,105,56,38,191,105,56,70,
155,105,56,79,119,105,56,63,83,105,56,23,47,105,56,215,10,105,56,128,230,104,56,16,194,104,56,136,157,104,56,232,120,104,56,49,84,104,56,97,47,104,56,122,10,104,56,123,229,103,56,100,192,103,56,53,155,103,56,238,117,103,56,143,80,103,56,25,43,103,56,139,5,103,56,229,223,102,56,39,186,102,56,82,148,102,56,101,110,102,56,97,72,102,56,68,34,102,56,16,252,101,56,197,213,101,56,97,175,101,56,231,136,101,56,84,98,101,56,171,59,101,56,233,20,101,56,16,238,100,56,32,199,100,56,24,160,100,56,249,120,100,56,
194,81,100,56,116,42,100,56,14,3,100,56,145,219,99,56,253,179,99,56,81,140,99,56,142,100,99,56,180,60,99,56,194,20,99,56,185,236,98,56,153,196,98,56,97,156,98,56,19,116,98,56,173,75,98,56,48,35,98,56,156,250,97,56,241,209,97,56,46,169,97,56,85,128,97,56,100,87,97,56,93,46,97,56,62,5,97,56,8,220,96,56,188,178,96,56,88,137,96,56,221,95,96,56,76,54,96,56,163,12,96,56,228,226,95,56,13,185,95,56,32,143,95,56,28,101,95,56,1,59,95,56,208,16,95,56,135,230,94,56,40,188,94,56,178,145,94,56,37,103,94,56,130,
60,94,56,199,17,94,56,247,230,93,56,15,188,93,56,17,145,93,56,252,101,93,56,209,58,93,56,143,15,93,56,55,228,92,56,200,184,92,56,66,141,92,56,166,97,92,56,244,53,92,56,43,10,92,56,76,222,91,56,86,178,91,56,74,134,91,56,39,90,91,56,239,45,91,56,159,1,91,56,58,213,90,56,190,168,90,56,44,124,90,56,132,79,90,56,197,34,90,56,241,245,89,56,6,201,89,56,5,156,89,56,238,110,89,56,192,65,89,56,125,20,89,56,35,231,88,56,180,185,88,56,46,140,88,56,146,94,88,56,225,48,88,56,25,3,88,56,60,213,87,56,72,167,87,56,
63,121,87,56,31,75,87,56,234,28,87,56,159,238,86,56,62,192,86,56,200,145,86,56,59,99,86,56,153,52,86,56,225,5,86,56,19,215,85,56,48,168,85,56,55,121,85,56,40,74,85,56,4,27,85,56,202,235,84,56,122,188,84,56,21,141,84,56,154,93,84,56,10,46,84,56,100,254,83,56,169,206,83,56,217,158,83,56,242,110,83,56,247,62,83,56,230,14,83,56,192,222,82,56,132,174,82,56,51,126,82,56,205,77,82,56,81,29,82,56,192,236,81,56,26,188,81,56,95,139,81,56,143,90,81,56,169,41,81,56,174,248,80,56,158,199,80,56,121,150,80,56,63,
101,80,56,240,51,80,56,139,2,80,56],"i8",4,y.a+1003520);
Q([18,209,79,56,132,159,79,56,225,109,79,56,40,60,79,56,91,10,79,56,121,216,78,56,130,166,78,56,118,116,78,56,86,66,78,56,32,16,78,56,214,221,77,56,119,171,77,56,3,121,77,56,123,70,77,56,222,19,77,56,44,225,76,56,101,174,76,56,138,123,76,56,155,72,76,56,150,21,76,56,125,226,75,56,80,175,75,56,14,124,75,56,183,72,75,56,77,21,75,56,205,225,74,56,57,174,74,56,145,122,74,56,213,70,74,56,4,19,74,56,30,223,73,56,37,171,73,56,23,119,73,56,245,66,73,56,191,14,73,56,116,218,72,56,21,166,72,56,162,113,72,56,
27,61,72,56,128,8,72,56,209,211,71,56,14,159,71,56,54,106,71,56,75,53,71,56,75,0,71,56,56,203,70,56,17,150,70,56,214,96,70,56,134,43,70,56,35,246,69,56,172,192,69,56,34,139,69,56,131,85,69,56,209,31,69,56,11,234,68,56,49,180,68,56,68,126,68,56,66,72,68,56,45,18,68,56,5,220,67,56,201,165,67,56,121,111,67,56,22,57,67,56,159,2,67,56,21,204,66,56,119,149,66,56,198,94,66,56,1,40,66,56,41,241,65,56,61,186,65,56,62,131,65,56,44,76,65,56,7,21,65,56,206,221,64,56,130,166,64,56,34,111,64,56,176,55,64,56,42,
0,64,56,145,200,63,56,229,144,63,56,37,89,63,56,83,33,63,56,110,233,62,56,117,177,62,56,106,121,62,56,75,65,62,56,26,9,62,56,214,208,61,56,126,152,61,56,20,96,61,56,151,39,61,56,7,239,60,56,100,182,60,56,175,125,60,56,231,68,60,56,12,12,60,56,30,211,59,56,29,154,59,56,10,97,59,56,229,39,59,56,172,238,58,56,97,181,58,56,4,124,58,56,148,66,58,56,17,9,58,56,124,207,57,56,213,149,57,56,27,92,57,56,78,34,57,56,111,232,56,56,126,174,56,56,123,116,56,56,101,58,56,56,61,0,56,56,3,198,55,56,182,139,55,56,
88,81,55,56,231,22,55,56,100,220,54,56,206,161,54,56,39,103,54,56,110,44,54,56,162,241,53,56,197,182,53,56,213,123,53,56,212,64,53,56,193,5,53,56,155,202,52,56,100,143,52,56,27,84,52,56,192,24,52,56,84,221,51,56,213,161,51,56,69,102,51,56,163,42,51,56,239,238,50,56,42,179,50,56,83,119,50,56,106,59,50,56,112,255,49,56,100,195,49,56,71,135,49,56,24,75,49,56,216,14,49,56,134,210,48,56,35,150,48,56,174,89,48,56,40,29,48,56,145,224,47,56,232,163,47,56,46,103,47,56,98,42,47,56,134,237,46,56,152,176,46,
56,153,115,46,56,137,54,46,56,103,249,45,56,53,188,45,56,241,126,45,56,157,65,45,56,55,4,45,56,192,198,44,56,57,137,44,56,160,75,44,56,246,13,44,56,60,208,43,56,113,146,43,56,149,84,43,56,168,22,43,56,170,216,42,56,155,154,42,56,124,92,42,56,76,30,42,56,11,224,41,56,186,161,41,56,88,99,41,56,229,36,41,56,98,230,40,56,207,167,40,56,42,105,40,56,118,42,40,56,176,235,39,56,219,172,39,56,245,109,39,56,255,46,39,56,248,239,38,56,225,176,38,56,185,113,38,56,130,50,38,56,58,243,37,56,226,179,37,56,122,116,
37,56,1,53,37,56,121,245,36,56,224,181,36,56,55,118,36,56,126,54,36,56,182,246,35,56,221,182,35,56,244,118,35,56,251,54,35,56,243,246,34,56,218,182,34,56,178,118,34,56,122,54,34,56,50,246,33,56,218,181,33,56,115,117,33,56,252,52,33,56,117,244,32,56,223,179,32,56,56,115,32,56,131,50,32,56,190,241,31,56,233,176,31,56,4,112,31,56,17,47,31,56,13,238,30,56,251,172,30,56,217,107,30,56,167,42,30,56,103,233,29,56,22,168,29,56,183,102,29,56,72,37,29,56,203,227,28,56,62,162,28,56,161,96,28,56,246,30,28,56,
60,221,27,56,114,155,27,56,154,89,27,56,178,23,27,56,187,213,26,56,182,147,26,56,161,81,26,56,126,15,26,56,76,205,25,56,10,139,25,56,186,72,25,56,92,6,25,56,238,195,24,56,114,129,24,56,231,62,24,56,77,252,23,56,165,185,23,56,238,118,23,56,41,52,23,56,84,241,22,56,114,174,22,56,129,107,22,56,129,40,22,56,115,229,21,56,87,162,21,56,44,95,21,56,243,27,21,56,171,216,20,56,86,149,20,56,242,81,20,56,127,14,20,56,255,202,19,56,112,135,19,56,211,67,19,56,40,0,19,56,111,188,18,56,168,120,18,56,211,52,18,56,
240,240,17,56,255,172,17,56,0,105,17,56,243,36,17,56,216,224,16,56,175,156,16,56,121,88,16,56,52,20,16,56,226,207,15,56,130,139,15,56,21,71,15,56,153,2,15,56,17,190,14,56,122,121,14,56,214,52,14,56,36,240,13,56,101,171,13,56,153,102,13,56,190,33,13,56,215,220,12,56,226,151,12,56,224,82,12,56,208,13,12,56,179,200,11,56,136,131,11,56,81,62,11,56,12,249,10,56,186,179,10,56,91,110,10,56,239,40,10,56,117,227,9,56,239,157,9,56,91,88,9,56,187,18,9,56,13,205,8,56,83,135,8,56,139,65,8,56,183,251,7,56,214,
181,7,56,232,111,7,56,237,41,7,56,229,227,6,56,209,157,6,56,176,87,6,56,130,17,6,56,71,203,5,56,0,133,5,56,173,62,5,56,77,248,4,56,224,177,4,56,103,107,4,56,225,36,4,56,79,222,3,56,176,151,3,56,5,81,3,56,78,10,3,56,138,195,2,56,186,124,2,56,222,53,2,56,246,238,1,56,1,168,1,56,1,97,1,56,244,25,1,56,219,210,0,56,182,139,0,56,133,68,0,56,143,250,255,55,253,107,255,55,83,221,254,55,145,78,254,55,183,191,253,55,197,48,253,55,188,161,252,55,156,18,252,55,99,131,251,55,20,244,250,55,173,100,250,55,46,213,
249,55,152,69,249,55,235,181,248,55,39,38,248,55,76,150,247,55,90,6,247,55,81,118,246,55,48,230,245,55,249,85,245,55,172,197,244,55,71,53,244,55,204,164,243,55,58,20,243,55,146,131,242,55,211,242,241,55,254,97,241,55,18,209,240,55,16,64,240,55,248,174,239,55,202,29,239,55,134,140,238,55,43,251,237,55,187,105,237,55,52,216,236,55,152,70,236,55,230,180,235,55,31,35,235,55,65,145,234,55,78,255,233,55,70,109,233,55,40,219,232,55,245,72,232,55,172,182,231,55,78,36,231,55,219,145,230,55,82,255,229,55,181,
108,229,55,2,218,228,55,59,71,228,55,94,180,227,55,109,33,227,55,103,142,226,55,76,251,225,55,29,104,225,55,217,212,224,55,128,65,224,55,19,174,223,55,145,26,223,55,252,134,222,55,82,243,221,55,147,95,221,55,193,203,220,55,218,55,220,55,224,163,219,55,209,15,219,55,175,123,218,55,121,231,217,55,47,83,217,55,209,190,216,55,95,42,216,55,218,149,215,55,66,1,215,55,150,108,214,55,215,215,213,55,4,67,213,55,30,174,212,55,37,25,212,55,25,132,211,55,249,238,210,55,199,89,210,55,130,196,209,55,42,47,209,
55,191,153,208,55,65,4,208,55,176,110,207,55,13,217,206,55,88,67,206,55,144,173,205,55,181,23,205,55,200,129,204,55,201,235,203,55,184,85,203,55,148,191,202,55,94,41,202,55,23,147,201,55,189,252,200,55,81,102,200,55,212,207,199,55,68,57,199,55,163,162,198,55,240,11,198,55,44,117,197,55,86,222,196,55,111,71,196,55,118,176,195,55,108,25,195,55,81,130,194,55,36,235,193,55,231,83,193,55,152,188,192,55,56,37,192,55,199,141,191,55,70,246,190,55,179,94,190,55,16,199,189,55,92,47,189,55,152,151,188,55,194,
255,187,55,221,103,187,55,231,207,186,55,224,55,186,55,202,159,185,55,163,7,185,55,108,111,184,55,36,215,183,55,205,62,183,55,102,166,182,55,239,13,182,55,103,117,181,55,209,220,180,55,42,68,180,55,116,171,179,55,174,18,179,55,217,121,178,55,244,224,177,55,0,72,177,55,252,174,176,55,233,21,176,55,199,124,175,55,150,227,174,55,86,74,174,55,7,177,173,55,169,23,173,55,60,126,172,55,192,228,171,55,53,75,171,55,156,177,170,55,244,23,170,55,62,126,169,55,121,228,168,55,166,74,168,55,196,176,167,55,212,
22,167,55,214,124,166,55,201,226,165,55,175,72,165,55,135,174,164,55,80,20,164,55,12,122,163,55,186,223,162,55,90,69,162,55,236,170,161,55,113,16,161,55,232,117,160,55,82,219,159,55,174,64,159,55,253,165,158,55,62,11,158,55,115,112,157,55,154,213,156,55,180,58,156,55,193,159,155,55,193,4,155,55,180,105,154,55,154,206,153,55,116,51,153,55,65,152,152,55,1,253,151,55,180,97,151,55,92,198,150,55,246,42,150,55,132,143,149,55,6,244,148,55,124,88,148,55,229,188,147,55,67,33,147,55,148,133,146,55,217,233,
145,55,19,78,145,55,64,178,144,55,98,22,144,55,120,122,143,55,130,222,142,55,129,66,142,55,116,166,141,55,92,10,141,55,56,110,140,55,9,210,139,55,207,53,139,55,137,153,138,55,57,253,137,55,221,96,137,55,119,196,136,55,5,40,136,55,136,139,135,55,1,239,134,55,111,82,134,55,211,181,133,55,43,25,133,55,122,124,132,55,189,223,131,55,247,66,131,55,38,166,130,55,74,9,130,55,101,108,129,55,117,207,128,55,124,50,128,55,240,42,127,55,213,240,125,55,166,182,124,55,99,124,123,55,13,66,122,55,164,7,121,55,39,
205,119,55,151,146,118,55,245,87,117,55,63,29,116,55,119,226,114,55,156,167,113,55,175,108,112,55,176,49,111,55,158,246,109,55,122,187,108,55,69,128,107,55,254,68,106,55,165,9,105,55,58,206,103,55,191,146,102,55,50,87,101,55,148,27,100,55,228,223,98,55,37,164,97,55,84,104,96,55,115,44,95,55,130,240,93,55,128,180,92,55,110,120,91,55,76,60,90,55,26,0,89,55,216,195,87,55,135,135,86,55,38,75,85,55,182,14,84,55,55,210,82,55,168,149,81,55,11,89,80,55,95,28,79,55,164,223,77,55,218,162,76,55,2,102,75,55,
28,41,74,55,40,236,72,55,37,175,71,55,21,114,70,55,247,52,69,55,203,247,67,55,146,186,66,55,75,125,65,55,248,63,64,55,151,2,63,55,41,197,61,55,174,135,60,55,39,74,59,55,147,12,58,55,243,206,56,55,70,145,55,55,141,83,54,55,200,21,53,55,248,215,51,55,27,154,50,55,51,92,49,55,63,30,48,55,64,224,46,55,54,162,45,55,33,100,44,55,1,38,43,55,213,231,41,55,160,169,40,55,95,107,39,55,21,45,38,55,191,238,36,55,96,176,35,55,247,113,34,55,132,51,33,55,7,245,31,55,128,182,30,55,240,119,29,55,87,57,28,55,180,250,
26,55,9,188,25,55,84,125,24,55,150,62,23,55,208,255,21,55,2,193,20,55,42,130,19,55,75,67,18,55,99,4,17,55,116,197,15,55,124,134,14,55,125,71,13,55,118,8,12,55,104,201,10,55,82,138,9,55,53,75,8,55,17,12,7,55,230,204,5,55,180,141,4,55,123,78,3,55,60,15,2,55,247,207,0,55,86,33,255,54,178,162,252,54,2,36,250,54,70,165,247,54,127,38,245,54,172,167,242,54,207,40,240,54,231,169,237,54,244,42,235,54,247,171,232,54,241,44,230,54,225,173,227,54,199,46,225,54,164,175,222,54,120,48,220,54,68,177,217,54,8,50,
215,54,195,178,212,54,119,51,210,54,35,180,207,54,200,52,205,54,102,181,202,54,253,53,200,54,142,182,197,54,25,55,195,54,157,183,192,54,29,56,190,54,150,184,187,54,11,57,185,54,123,185,182,54,230,57,180,54,77,186,177,54,176,58,175,54,15,187,172,54,107,59,170,54,195,187,167,54,25,60,165,54,107,188,162,54,188,60,160,54,10,189,157,54,86,61,155,54,161,189,152,54,234,61,150,54,50,190,147,54,121,62,145,54,192,190,142,54,7,63,140,54,77,191,137,54,148,63,135,54,219,191,132,54,35,64,130,54,215,128,127,54,
107,129,122,54,3,130,117,54,158,130,112,54,61,131,107,54,226,131,102,54,139,132,97,54,58,133,92,54,239,133,87,54,172,134,82,54,111,135,77,54,59,136,72,54,15,137,67,54,236,137,62,54,211,138,57,54,195,139,52,54,190,140,47,54,197,141,42,54,214,142,37,54,244,143,32,54,31,145,27,54,87,146,22,54,157,147,17,54,241,148,12,54,84,150,7,54,198,151,2,54,144,50,251,53,181,53,241,53,252,56,231,53,102,60,221,53,244,63,211,53,167,67,201,53,128,71,191,53,128,75,181,53,169,79,171,53,250,83,161,53,119,88,151,53,30,
93,141,53,243,97,131,53,233,205,114,53,74,216,94,53,10,227,74,53,43,238,54,53,176,249,34,53,155,5,15,53,220,35,246,52,86,61,206,52,167,87,166,52,170,229,124,52,199,29,45,52,92,175,186,51,109,54,89,50,11,94,132,179,143,239,17,180,45,174,97,180,108,181,152,180,194,146,192,180,23,111,232,180,50,37,8,181,84,18,28,181,237,254,47,181,254,234,67,181,130,214,87,181,121,193,107,181,223,171,127,181,218,202,137,181,122,191,147,181,207,179,157,181,215,167,167,181,147,155,177,181,0,143,187,181,30,130,197,181,
235,116,207,181,103,103,217,181,144,89,227,181,102,75,237,181,231,60,247,181,9,151,0,182,115,143,5,182,178,135,10,182,196,127,15,182,169,119,20,182,96,111,25,182,234,102,30,182,69,94,35,182,113,85,40,182,109,76,45,182,57,67,50,182,213,57,55,182,64,48,60,182,120,38,65,182,127,28,70,182,83,18,75,182,244,7,80,182,96,253,84,182,153,242,89,182,157,231,94,182,107,220,99,182,4,209,104,182,102,197,109,182,145,185,114,182,133,173,119,182,65,161,124,182,98,202,128,182,7,68,131,182,144,189,133,182,251,54,136,
182,73,176,138,182,122,41,141,182,140,162,143,182,129,27,146,182,87,148,148,182,15,13,151,182,168,133,153,182,34,254,155,182,124,118,158,182,183,238,160,182,210,102,163,182,205,222,165,182,167,86,168,182,96,206,170,182,249,69,173,182,113,189,175,182,199,52,178,182,251,171,180,182,13,35,183,182,254,153,185,182,203,16,188,182,118,135,190,182,254,253,192,182,99,116,195,182,164,234,197,182,193,96,200,182,186,214,202,182,143,76,205,182,63,194,207,182,203,55,210,182,49,173,212,182,115,34,215,182,142,151,
217,182,132,12,220,182,83,129,222,182,252,245,224,182,127,106,227,182,218,222,229,182,15,83,232,182,28,199,234,182,1,59,237,182,191,174,239,182,84,34,242,182,193,149,244,182,5,9,247,182,32,124,249,182,18,239,251,182,219,97,254,182,61,106,0,183,119,163,1,183,156,220,2,183,172,21,4,183,167,78,5,183,140,135,6,183,92,192,7,183,21,249,8,183,185,49,10,183,71,106,11,183,191,162,12,183,32,219,13,183,107,19,15,183,160,75,16,183,189,131,17,183,196,187,18,183,181,243,19,183,142,43,21,183,79,99,22,183,250,154,
23,183,141,210,24,183,9,10,26,183,109,65,27,183,185,120,28,183,237,175,29,183,9,231,30,183,13,30,32,183,249,84,33,183,204,139,34,183,134,194,35,183,40,249,36,183,177,47,38,183,34,102,39,183,121,156,40,183,182,210,41,183,219,8,43,183,230,62,44,183,215,116,45,183,175,170,46,183,109,224,47,183,17,22,49,183,155,75,50,183,10,129,51,183,95,182,52,183,154,235,53,183,186,32,55,183,192,85,56,183,170,138,57,183,122,191,58,183,46,244,59,183,200,40,61,183,70,93,62,183,168,145,63,183,239,197,64,183,26,250,65,
183,41,46,67,183,28,98,68,183,244,149,69,183,174,201,70,183,77,253,71,183,207,48,73,183,52,100,74,183,125,151,75,183,169,202,76,183,184,253,77,183,169,48,79,183,126,99,80,183,53,150,81,183,206,200,82,183,74,251,83,183,169,45,85,183,233,95,86,183,11,146,87,183,16,196,88,183,246,245,89,183,189,39,91,183,102,89,92,183,241,138,93,183,93,188,94,183,170,237,95,183,216,30,97,183,231,79,98,183,214,128,99,183,166,177,100,183,87,226,101,183,232,18,103,183,90,67,104,183,171,115,105,183,221,163,106,183,239,211,
107,183,224,3,109,183,177,51,110,183,97,99,111,183,241,146,112,183,96,194,113,183,174,241,114,183,220,32,116,183,232,79,117,183,211,126,118,183,157,173,119,183,69,220,120,183,203,10,122,183,48,57,123,183,115,103,124,183,149,149,125,183,148,195,126,183,112,241,127,183,150,143,128,183,98,38,129,183,28,189,129,183,198,83,130,183,94,234,130,183,228,128,131,183,89,23,132,183,189,173,132,183,15,68,133,183,79,218,133,183,125,112,134,183,153,6,135,183,164,156,135,183,157,50,136,183,131,200,136,183,88,94,
137,183,26,244,137,183,202,137,138,183,104,31,139,183,244,180,139,183,109,74,140,183,212,223,140,183,40,117,141,183,106,10,142,183,153,159,142,183,182,52,143,183,191,201,143,183,182,94,144,183,154,243,144,183,108,136,145,183,42,29,146,183,213,177,146,183,109,70,147,183,242,218,147,183,99,111,148,183,194,3,149,183,13,152,149,183,68,44,150,183,104,192,150,183,121,84,151,183,118,232,151,183,95,124,152,183,53,16,153,183,247,163,153,183,165,55,154,183,63,203,154,183,197,94,155,183,56,242,155,183,150,133,
156,183,224,24,157,183,22,172,157,183,55,63,158,183,69,210,158,183,62,101,159,183,34,248,159,183,242,138,160,183,174,29,161,183,85,176,161,183,231,66,162,183,101,213,162,183,206,103,163,183,34,250,163,183,97,140,164,183,139,30,165,183,160,176,165,183,160,66,166,183,139,212,166,183,97,102,167,183,34,248,167,183,205,137,168,183,99,27,169,183,227,172,169,183,78,62,170,183,164,207,170,183,227,96,171,183,14,242,171,183,34,131,172,183,33,20,173,183,10,165,173,183,221,53,174,183,154,198,174,183,65,87,175,
183,210,231,175,183,77,120,176,183,177,8,177,183,0,153,177,183,56,41,178,183,90,185,178,183,101,73,179,183,90,217,179,183,56,105,180,183,0,249,180,183,177,136,181,183,76,24,182,183,207,167,182,183,60,55,183,183,146,198,183,183,209,85,184,183,249,228,184,183,10,116,185,183,4,3,186,183,231,145,186,183,179,32,187,183,103,175,187,183,4,62,188,183,137,204,188,183,247,90,189,183,78,233,189,183,141,119,190,183,180,5,191,183,196,147,191,183,188,33,192,183,156,175,192,183,101,61,193,183,21,203,193,183,174,
88,194,183,46,230,194,183,151,115,195,183,231,0,196,183,31,142,196,183,63,27,197,183,70,168,197,183,54,53,198,183,12,194,198,183,203,78,199,183,112,219,199,183,254,103,200,183,114,244,200,183,206,128,201,183,17,13,202,183,60,153,202,183,77,37,203,183,70,177,203,183,37,61,204,183,236,200,204,183,153,84,205,183,45,224,205,183,168,107,206,183,10,247,206,183,83,130,207,183,130,13,208,183,152,152,208,183,148,35,209,183,119,174,209,183,64,57,210,183,239,195,210,183,133,78,211,183,1,217,211,183,99,99,212,
183,172,237,212,183,218,119,213,183,239,1,214,183,233,139,214,183,201,21,215,183,143,159,215,183,59,41,216,183,205,178,216,183,69,60,217,183,162,197,217,183,228,78,218,183,13,216,218,183,26,97,219,183,13,234,219,183,230,114,220,183,164,251,220,183,71,132,221,183,207,12,222,183,60,149,222,183,143,29,223,183,198,165,223,183,227,45,224,183,228,181,224,183,203,61,225,183,150,197,225,183,70,77,226,183,218,212,226,183,83,92,227,183,177,227,227,183,244,106,228,183,27,242,228,183,38,121,229,183,22,0,230,
183,234,134,230,183,162,13,231,183,63,148,231,183,192,26,232,183,37,161,232,183,110,39,233,183,155,173,233,183,172,51,234,183,160,185,234,183,121,63,235,183,54,197,235,183,214,74,236,183,90,208,236,183,194,85,237,183,13,219,237,183,60,96,238,183,78,229,238,183,67,106,239,183,29,239,239,183,217,115,240,183,121,248,240,183,251,124,241,183,97,1,242,183,171,133,242,183,215,9,243,183,230,141,243,183,216,17,244,183,173,149,244,183,101,25,245,183,0,157,245,183,126,32,246,183,222,163,246,183,33,39,247,183,
70,170,247,183,78,45,248,183,57,176,248,183,6,51,249,183,181,181,249,183,71,56,250,183,187,186,250,183,17,61,251,183,73,191,251,183,100,65,252,183,96,195,252,183,63,69,253,183,255,198,253,183,162,72,254,183,38,202,254,183,140,75,255,183,212,204,255,183,255,38,0,184,133,103,0,184,251,167,0,184,98,232,0,184,186,40,1,184,3,105,1,184,61,169,1,184,103,233,1,184,130,41,2,184,141,105,2,184,137,169,2,184,118,233,2,184,83,41,3,184,33,105,3,184,223,168,3,184,141,232,3,184,45,40,4,184,188,103,4,184,60,167,4,
184,173,230,4,184,13,38,5,184,94,101,5,184,160,164,5,184,209,227,5,184,243,34,6,184,5,98,6,184,8,161,6,184,250,223,6,184,221,30,7,184,175,93,7,184,114,156,7,184,37,219,7,184,200,25,8,184,91,88,8,184,222,150,8,184,82,213,8,184,181,19,9,184,8,82,9,184,74,144,9,184,125,206,9,184,160,12,10,184,178,74,10,184,180,136,10,184,166,198,10,184,136,4,11,184,90,66,11,184,27,128,11,184,204,189,11,184,109,251,11,184,253,56,12,184,125,118,12,184,236,179,12,184,75,241,12,184,154,46,13,184,216,107,13,184,6,169,13,
184,35,230,13,184,47,35,14,184,43,96,14,184,22,157,14,184,241,217,14,184,187,22,15,184,117,83,15,184,29,144,15,184,181,204,15,184,61,9,16,184,179,69,16,184,25,130,16,184,110,190,16,184,178,250,16,184,229,54,17,184,7,115,17,184,25,175,17,184,25,235,17,184,9,39,18,184,231,98,18,184,181,158,18,184,113,218,18,184,29,22,19,184,183,81,19,184,65,141,19,184,185,200,19,184,32,4,20,184,118,63,20,184,187,122,20,184,238,181,20,184,17,241,20,184,34,44,21,184,33,103,21,184,16,162,21,184,237,220,21,184,185,23,22,
184,115,82,22,184,28,141,22,184,180,199,22,184,58,2,23,184,175,60,23,184,18,119,23,184,100,177,23,184,164,235,23,184,210,37,24,184,240,95,24,184,251,153,24,184,245,211,24,184,221,13,25,184,180,71,25,184,120,129,25,184,44,187,25,184,205,244,25,184,93,46,26,184,219,103,26,184,71,161,26,184,161,218,26,184,233,19,27,184,32,77,27,184,69,134,27,184,87,191,27,184,88,248,27,184,71,49,28,184,36,106,28,184,239,162,28,184,168,219,28,184,79,20,29,184,227,76,29,184,102,133,29,184,215,189,29,184,53,246,29,184,
130,46,30,184,188,102,30,184,228,158,30,184,249,214,30,184,253,14,31,184,238,70,31,184,205,126,31,184,154,182,31,184,84,238,31,184,252,37,32,184,146,93,32,184,21,149,32,184,134,204,32,184,228,3,33,184,48,59,33,184,105,114,33,184,144,169,33,184,165,224,33,184,167,23,34,184,150,78,34,184,115,133,34,184,61,188,34,184,244,242,34,184,153,41,35,184,43,96,35,184,171,150,35,184,24,205,35,184,114,3,36,184,185,57,36,184,238,111,36,184,15,166,36,184,30,220,36,184,27,18,37,184,4,72,37,184,218,125,37,184,158,
179,37,184,78,233,37,184,236,30,38,184,119,84,38,184,238,137,38,184,83,191,38,184,165,244,38,184,228,41,39,184,15,95,39,184,40,148,39,184,45,201,39,184,32,254,39,184,255,50,40,184,203,103,40,184,132,156,40,184,41,209,40,184,188,5,41,184,59,58,41,184,167,110,41,184,255,162,41,184,69,215,41,184,119,11,42,184,149,63,42,184,161,115,42,184,152,167,42,184,125,219,42,184,78,15,43,184,12,67,43,184,182,118,43,184,77,170,43,184,208,221,43,184,64,17,44,184,156,68,44,184,228,119,44,184,25,171,44,184,59,222,44,
184,72,17,45,184,67,68,45,184,41,119,45,184,252,169,45,184,187,220,45,184,103,15,46,184,254,65,46,184,130,116,46,184,242,166,46,184,79,217,46,184,151,11,47,184,204,61,47,184,237,111,47,184,250,161,47,184,243,211,47,184,216,5,48,184,169,55,48,184,103,105,48,184,16,155,48,184,166,204,48,184,39,254,48,184,148,47,49,184,238,96,49,184,51,146,49,184,100,195,49,184,129,244,49,184,138,37,50,184,127,86,50,184,96,135,50,184,44,184,50,184,229,232,50,184,137,25,51,184,25,74,51,184,149,122,51,184,252,170,51,184,
79,219,51,184,142,11,52,184,185,59,52,184,207,107,52,184,209,155,52,184,190,203,52,184,151,251,52,184,92,43,53,184,12,91,53,184,168,138,53,184,47,186,53,184,162,233,53,184,1,25,54,184,75,72,54,184,128,119,54,184,161,166,54,184,173,213,54,184,165,4,55,184,136,51,55,184,86,98,55,184,16,145,55,184,181,191,55,184,69,238,55,184,193,28,56,184,40,75,56,184,123,121,56,184,184,167,56,184,225,213,56,184,245,3,57,184,244,49,57,184,223,95,57,184,180,141,57,184,117,187,57,184,33,233,57,184,184,22,58,184,58,68,
58,184,167,113,58,184,0,159,58,184,67,204,58,184,113,249,58,184,139,38,59,184,143,83,59,184,127,128,59,184,89,173,59,184,30,218,59,184,207,6,60,184,106,51,60,184,240,95,60,184,97,140,60,184,188,184,60,184,3,229,60,184,53,17,61,184,81,61,61,184,88,105,61,184,74,149,61,184,39,193,61,184,238,236,61,184,160,24,62,184,61,68,62,184,197,111,62,184,55,155,62,184,148,198,62,184,219,241,62,184,14,29,63,184,42,72,63,184,50,115,63,184,36,158,63,184,1,201,63,184,200,243,63,184,121,30,64,184,22,73,64,184,156,115,
64,184,14,158,64,184,105,200,64,184,176,242,64,184,224,28,65,184,251,70,65,184,1,113,65,184,241,154,65,184,203,196,65,184,144,238,65,184,63,24,66,184,216,65,66,184,92,107,66,184,202,148,66,184,34,190,66,184,101,231,66,184,145,16,67,184,169,57,67,184,170,98,67,184,149,139,67,184,107,180,67,184,43,221,67,184,213,5,68,184,105,46,68,184,232,86,68,184,80,127,68,184,163,167,68,184,224,207,68,184,7,248,68,184,24,32,69,184,19,72,69,184,248,111,69,184,199,151,69,184,128,191,69,184,35,231,69,184,176,14,70,
184,39,54,70,184,136,93,70,184,210,132,70,184,7,172,70,184,38,211,70,184,47,250,70,184,33,33,71,184,253,71,71,184,196,110,71,184,116,149,71,184,14,188,71,184,145,226,71,184,255,8,72,184,86,47,72,184,151,85,72,184,194,123,72,184,214,161,72,184,213,199,72,184,189,237,72,184,142,19,73,184,74,57,73,184,239,94,73,184,126,132,73,184,246,169,73,184,88,207,73,184,163,244,73,184,217,25,74,184,248,62,74,184,0,100,74,184,242,136,74,184,205,173,74,184,146,210,74,184,65,247,74,184,217,27,75,184,91,64,75,184,198,
100,75,184,26,137,75,184,88,173,75,184,128,209,75,184,144,245,75,184,139,25,76,184,110,61,76,184,60,97,76,184,242,132,76,184,146,168,76,184,27,204,76,184,142,239,76,184,234,18,77,184,47,54,77,184,93,89,77,184,117,124,77,184,118,159,77,184,96,194,77,184,52,229,77,184,241,7,78,184,151,42,78,184,38,77,78,184,159,111,78,184,0,146,78,184,75,180,78,184,127,214,78,184,157,248,78,184,163,26,79,184,146,60,79,184,107,94,79,184,45,128,79,184,216,161,79,184,107,195,79,184,232,228,79,184,78,6,80,184,158,39,80,
184,214,72,80,184,247,105,80,184,1,139,80,184,244,171,80,184,208,204,80,184,149,237,80,184,68,14,81,184,219,46,81,184,91,79,81,184,196,111,81,184,21,144,81,184,80,176,81,184,116,208,81,184,128,240,81,184,118,16,82,184,84,48,82,184,27,80,82,184,203,111,82,184,100,143,82,184,230,174,82,184,80,206,82,184,164,237,82,184,224,12,83,184,5,44,83,184,18,75,83,184,8,106,83,184,232,136,83,184,175,167,83,184,96,198,83,184,249,228,83,184,123,3,84,184,230,33,84,184,57,64,84,184,117,94,84,184,154,124,84,184,167,
154,84,184,157,184,84,184,124,214,84,184,67,244,84,184,243,17,85,184,139,47,85,184,12,77,85,184,118,106,85,184,200,135,85,184,3,165,85,184,38,194,85,184,50,223,85,184,38,252,85,184,3,25,86,184,201,53,86,184,119,82,86,184,13,111,86,184,140,139,86,184,243,167,86,184,67,196,86,184,123,224,86,184,156,252,86,184,165,24,87,184,150,52,87,184,112,80,87,184,51,108,87,184,221,135,87,184,113,163,87,184,236,190,87,184,80,218,87,184,156,245,87,184,209,16,88,184,238,43,88,184,243,70,88,184,224,97,88,184,182,124,
88,184,116,151,88,184,27,178,88,184,169,204,88,184,32,231,88,184,128,1,89,184,199,27,89,184,247,53,89,184,15,80,89,184,15,106,89,184,248,131,89,184,200,157,89,184,129,183,89,184,34,209,89,184,172,234,89,184,29,4,90,184,119,29,90,184,185,54,90,184,227,79,90,184,245,104,90,184,239,129,90,184,209,154,90,184,156,179,90,184,78,204,90,184,233,228,90,184,108,253,90,184,215,21,91,184,42,46,91,184,101,70,91,184,136,94,91,184,147,118,91,184,134,142,91,184,97,166,91,184,37,190,91,184,208,213,91,184,99,237,91,
184,223,4,92,184,66,28,92,184,141,51,92,184,193,74,92,184,220,97,92,184,223,120,92,184,203,143,92,184,158,166,92,184,89,189,92,184,252,211,92,184,135,234,92,184,250,0,93,184,85,23,93,184,152,45,93,184,195,67,93,184,213,89,93,184,208,111,93,184,178,133,93,184,125,155,93,184,47,177,93,184,201,198,93,184,75,220,93,184,180,241,93,184,6,7,94,184,63,28,94,184,97,49,94,184,106,70,94,184,91,91,94,184,51,112,94,184,244,132,94,184,156,153,94,184,44,174,94,184,164,194,94,184,4,215,94,184,76,235,94,184,123,255,
94,184,146,19,95,184,145,39,95,184,119,59,95,184,69,79,95,184,251,98,95,184,153,118,95,184,31,138,95,184,140,157,95,184,225,176,95,184,29,196,95,184,66,215,95,184,78,234,95,184,65,253,95,184,29,16,96,184,224,34,96,184,139,53,96,184,29,72,96,184,151,90,96,184,249,108,96,184,66,127,96,184,115,145,96,184,140,163,96,184,141,181,96,184,116,199,96,184,68,217,96,184,251,234,96,184,154,252,96,184,33,14,97,184,143,31,97,184,228,48,97,184,34,66,97,184,70,83,97,184,83,100,97,184,71,117,97,184,34,134,97,184,
230,150,97,184,144,167,97,184,35,184,97,184,156,200,97,184,254,216,97,184,71,233,97,184,119,249,97,184,143,9,98,184,143,25,98,184,118,41,98,184,69,57,98,184,251,72,98,184,153,88,98,184,30,104,98,184,138,119,98,184,223,134,98,184,26,150,98,184,62,165,98,184,72,180,98,184,58,195,98,184,20,210,98,184,213,224,98,184,126,239,98,184,14,254,98,184,134,12,99,184,229,26,99,184,43,41,99,184,89,55,99,184,110,69,99,184,107,83,99,184,80,97,99,184,27,111,99,184,207,124,99,184,105,138,99,184,235,151,99,184,85,165,
99,184,166,178,99,184,222,191,99,184,254,204,99,184,5,218,99,184,244,230,99,184,202,243,99,184,135,0,100,184,44,13,100,184,184,25,100,184,44,38,100,184,135,50,100,184,201,62,100,184,243,74,100,184,4,87,100,184,253,98,100,184,221,110,100,184,164,122,100,184,83,134,100,184,233,145,100,184,102,157,100,184,203,168,100,184,23,180,100,184,75,191,100,184,102,202,100,184,104,213,100,184,82,224,100,184,35,235,100,184,219,245,100,184,123,0,101,184,2,11,101,184,112,21,101,184,198,31,101,184,3,42,101,184,39,
52,101,184,51,62,101,184,38,72,101,184,1,82,101,184,194,91,101,184,108,101,101,184,252,110,101,184,116,120,101,184,211,129,101,184,25,139,101,184,71,148,101,184,92,157,101,184,88,166,101,184,60,175,101,184,7,184,101,184,185,192,101,184,83,201,101,184,212,209,101,184,60,218,101,184,139,226,101,184,194,234,101,184,224,242,101,184,230,250,101,184,211,2,102,184,167,10,102,184,98,18,102,184,5,26,102,184,143,33,102,184,0,41,102,184,89,48,102,184,153,55,102,184,192,62,102,184,206,69,102,184,196,76,102,184,
161,83,102,184,101,90,102,184,17,97,102,184,164,103,102,184,30,110,102,184,128,116,102,184,201,122,102,184,249,128,102,184,16,135,102,184,15,141,102,184,245,146,102,184,194,152,102,184,119,158,102,184,19,164,102,184,150,169,102,184,0,175,102,184,82,180,102,184,139,185,102,184,171,190,102,184,179,195,102,184,162,200,102,184,120,205,102,184,53,210,102,184,218,214,102,184,102,219,102,184,218,223,102,184,52,228,102,184,118,232,102,184,160,236,102,184,176,240,102,184,168,244,102,184,135,248,102,184,78,
252,102,184,251,255,102,184,144,3,103,184,13,7,103,184,112,10,103,184,187,13,103,184,237,16,103,184,7,20,103,184,8,23,103,184,240,25,103,184,191,28,103,184,118,31,103,184,20,34,103,184,154,36,103,184,6,39,103,184,90,41,103,184,149,43,103,184,184,45,103,184,194,47,103,184,179,49,103,184,140,51,103,184,76,53,103,184,243,54,103,184,129,56,103,184,247,57,103,184,85,59,103,184,153,60,103,184,197,61,103,184,216,62,103,184,211,63,103,184,180,64,103,184,126,65,103,184,46,66,103,184,198,66,103,184,69,67,103,
184,172,67,103,184,250,67,103,184,47,68,103,184,75,68,103,184,79,68,103,184,59,68,103,184,13,68,103,184,199,67,103,184,105,67,103,184,241,66,103,184,97,66,103,184,185,65,103,184,248,64,103,184,30,64,103,184,44,63,103,184,33,62,103,184,253,60,103,184,193,59,103,184,108,58,103,184,254,56,103,184,120,55,103,184,218,53,103,184,34,52,103,184,83,50,103,184,106,48,103,184,105,46,103,184,79,44,103,184,29,42,103,184,210,39,103,184,111,37,103,184,243,34,103,184,95,32,103,184,177,29,103,184,236,26,103,184,14,
24,103,184,23,21,103,184,7,18,103,184,224,14,103,184,159,11,103,184,70,8,103,184,213,4,103,184,75,1,103,184,168,253,102,184,237,249,102,184,25,246,102,184,45,242,102,184,40,238,102,184,11,234,102,184,213,229,102,184,135,225,102,184,32,221,102,184,161,216,102,184,10,212,102,184,89,207,102,184,145,202,102,184,176,197,102,184,182,192,102,184,164,187,102,184,121,182,102,184,54,177,102,184,219,171,102,184,103,166,102,184,218,160,102,184,53,155,102,184,120,149,102,184,162,143,102,184,180,137,102,184,174,
131,102,184,143,125,102,184,87,119,102,184,7,113,102,184,159,106,102,184,31,100,102,184,133,93,102,184,212,86,102,184,10,80,102,184,40,73,102,184,45,66,102,184,26,59,102,184,239,51,102,184,171,44,102,184,79,37,102,184,219,29,102,184,78,22,102,184,169,14,102,184,236,6,102,184,22,255,101,184,40,247,101,184,34,239,101,184,3,231,101,184,204,222,101,184,125,214,101,184,21,206,101,184,149,197,101,184,253,188,101,184,76,180,101,184,132,171,101,184,163,162,101,184,169,153,101,184,152,144,101,184,110,135,
101,184,44,126,101,184,210,116,101,184,95,107,101,184,213,97,101,184,50,88,101,184,119,78,101,184,163,68,101,184,184,58,101,184,180,48,101,184,152,38,101,184,100,28,101,184,24,18,101,184,179,7,101,184,55,253,100,184,162,242,100,184,245,231,100,184,48,221,100,184,83,210,100,184,93,199,100,184,80,188,100,184,42,177,100,184,237,165,100,184,151,154,100,184,41,143,100,184,163,131,100,184,5,120,100,184,79,108,100,184,129,96,100,184,155,84,100,184,156,72,100,184,134,60,100,184,88,48,100,184,17,36,100,184,
179,23,100,184,61,11,100,184,174,254,99,184,8,242,99,184,73,229,99,184,115,216,99,184,133,203,99,184,126,190,99,184,96,177,99,184,42,164,99,184,219,150,99,184,117,137,99,184,247,123,99,184,97,110,99,184,179,96,99,184,237,82,99,184,16,69,99,184,26,55,99,184,13,41,99,184,231,26,99,184,170,12,99,184,85,254,98,184,232,239,98,184,99,225,98,184,198,210,98,184,18,196,98,184,70,181,98,184,98,166,98,184,102,151,98,184,82,136,98,184,39,121,98,184,227,105,98,184,136,90,98,184,22,75,98,184,139,59,98,184,233,
43,98,184,47,28,98,184,93,12,98,184,116,252,97,184,114,236,97,184,90,220,97,184,41,204,97,184,225,187,97,184,129,171,97,184,9,155,97,184,122,138,97,184,211,121,97,184,21,105,97,184,63,88,97,184,81,71,97,184,76,54,97,184,47,37,97,184,250,19,97,184,174,2,97,184,75,241,96,184,207,223,96,184,61,206,96,184,146,188,96,184,208,170,96,184,247,152,96,184,6,135,96,184,254,116,96,184,222,98,96,184,166,80,96,184,88,62,96,184,241,43,96,184,115,25,96,184,222,6,96,184,50,244,95,184,110,225,95,184,146,206,95,184,
159,187,95,184,149,168,95,184,115,149,95,184,58,130,95,184,234,110,95,184,130,91,95,184,3,72,95,184,108,52,95,184,191,32,95,184,250,12,95,184,29,249,94,184,41,229,94,184,31,209,94,184,252,188,94,184,195,168,94,184,114,148,94,184,10,128,94,184,139,107,94,184,244,86,94,184,71,66,94,184,130,45,94,184,166,24,94,184,179,3,94,184,168,238,93,184,135,217,93,184,78,196,93,184,254,174,93,184,151,153,93,184,25,132,93,184,132,110,93,184,216,88,93,184,21,67,93,184,58,45,93,184,73,23,93,184,65,1,93,184,33,235,
92,184,235,212,92,184,157,190,92,184,56,168,92,184,189,145,92,184,43,123,92,184,129,100,92,184,193,77,92,184,233,54,92,184,251,31,92,184,246,8,92,184,218,241,91,184,167,218,91,184,93,195,91,184,252,171,91,184,133,148,91,184,246,124,91,184,81,101,91,184,149,77,91,184,194,53,91,184,216,29,91,184,216,5,91,184,193,237,90,184,147,213,90,184,78,189,90,184,242,164,90,184,128,140,90,184,247,115,90,184,87,91,90,184,161,66,90,184,212,41,90,184,240,16,90,184,246,247,89,184,229,222,89,184,189,197,89,184,127,
172,89,184,42,147,89,184,191,121,89,184,61,96,89,184,165,70,89,184,245,44,89,184,48,19,89,184,84,249,88,184,97,223,88,184,88,197,88,184,56,171,88,184,2,145,88,184,181,118,88,184,82,92,88,184,217,65,88,184,73,39,88,184,163,12,88,184,230,241,87,184,19,215,87,184,42,188,87,184,42,161,87,184,20,134,87,184,231,106,87,184,164,79,87,184,75,52,87,184,220,24,87,184,86,253,86,184,186,225,86,184,8,198,86,184,64,170,86,184,97,142,86,184,108,114,86,184,97,86,86,184,64,58,86,184,9,30,86,184,187,1,86,184,88,229,
85,184,222,200,85,184,78,172,85,184,168,143,85,184,236,114,85,184,26,86,85,184,50,57,85,184,52,28,85,184,31,255,84,184,245,225,84,184,181,196,84,184,95,167,84,184,242,137,84,184,112,108,84,184,216,78,84,184,42,49,84,184,102,19,84,184,140,245,83,184,156,215,83,184,151,185,83,184,123,155,83,184,74,125,83,184,3,95,83,184,166,64,83,184,51,34,83,184,171,3,83,184,13,229,82,184,88,198,82,184,143,167,82,184,175,136,82,184,186,105,82,184,175,74,82,184,143,43,82,184,88,12,82,184,12,237,81,184,171,205,81,184,
52,174,81,184,167,142,81,184,5,111,81,184,77,79,81,184,127,47,81,184,156,15,81,184,164,239,80,184,150,207,80,184,114,175,80,184,57,143,80,184,235,110,80,184,135,78,80,184,14,46,80,184,127,13,80,184,219,236,79,184,33,204,79,184,82,171,79,184,110,138,79,184,116,105,79,184,101,72,79,184,65,39,79,184,7,6,79,184,185,228,78,184,85,195,78,184,219,161,78,184,77,128,78,184,169,94,78,184,240,60,78,184,34,27,78,184,62,249,77,184,70,215,77,184,56,181,77,184,21,147,77,184,222,112,77,184,145,78,77,184,47,44,77,
184,184,9,77,184,44,231,76,184,138,196,76,184,212,161,76,184,9,127,76,184,41,92,76,184,52,57,76,184,42,22,76,184,11,243,75,184,215,207,75,184,143,172,75,184,49,137,75,184,191,101,75,184,55,66,75,184,155,30,75,184,235,250,74,184,37,215,74,184,74,179,74,184,91,143,74,184,87,107,74,184,63,71,74,184,17,35,74,184,207,254,73,184,120,218,73,184,13,182,73,184,141,145,73,184,248,108,73,184,79,72,73,184,145,35,73,184,191,254,72,184,216,217,72,184,221,180,72,184,205,143,72,184,168,106,72,184,111,69,72,184,34,
32,72,184,192,250,71,184,74,213,71,184,191,175,71,184,32,138,71,184,108,100,71,184,164,62,71,184,200,24,71,184,216,242,70,184,211,204,70,184,186,166,70,184,140,128,70,184,75,90,70,184,245,51,70,184,139,13,70,184,13,231,69,184,122,192,69,184,211,153,69,184,25,115,69,184,74,76,69,184,103,37,69,184,112,254,68,184,100,215,68,184,69,176,68,184,18,137,68,184,203,97,68,184,111,58,68,184,0,19,68,184,125,235,67,184,230,195,67,184,59,156,67,184,124,116,67,184,169,76,67,184,194,36,67,184,199,252,66,184,185,
212,66,184,151,172,66,184,96,132,66,184,23,92,66,184,185,51,66,184,72,11,66,184,194,226,65,184,42,186,65,184,125,145,65,184,189,104,65,184,233,63,65,184,2,23,65,184,7,238,64,184,248,196,64,184,214,155,64,184,160,114,64,184,87,73,64,184,250,31,64,184,138,246,63,184,6,205,63,184,111,163,63,184,196,121,63,184,6,80,63,184,52,38,63,184,79,252,62,184,87,210,62,184,75,168,62,184,44,126,62,184,250,83,62,184,181,41,62,184,92,255,61,184,240,212,61,184,113,170,61,184,222,127,61,184,56,85,61,184,127,42,61,184,
179,255,60,184,212,212,60,184,226,169,60,184,221,126,60,184,196,83,60,184,153,40,60,184,90,253,59,184,9,210,59,184,164,166,59,184,45,123,59,184,163,79,59,184,5,36,59,184,85,248,58,184,146,204,58,184,188,160,58,184,211,116,58,184,215,72,58,184,201,28,58,184,167,240,57,184,115,196,57,184,44,152,57,184,211,107,57,184,102,63,57,184,231,18,57,184,86,230,56,184,177,185,56,184,250,140,56,184,49,96,56,184,85,51,56,184,102,6,56,184,101,217,55,184,81,172,55,184,43,127,55,184,242,81,55,184,166,36,55,184,73,
247,54,184,217,201,54,184,86,156,54,184,193,110,54,184,26,65,54,184,96,19,54,184,148,229,53,184,182,183,53,184,197,137,53,184,194,91,53,184,173,45,53,184,134,255,52,184,77,209,52,184,1,163,52,184,163,116,52,184,51,70,52,184,177,23,52,184,29,233,51,184,119,186,51,184,190,139,51,184,244,92,51,184,24,46,51,184,41,255,50,184,41,208,50,184,23,161,50,184,243,113,50,184,189,66,50,184,117,19,50,184,27,228,49,184,175,180,49,184,50,133,49,184,163,85,49,184,2,38,49,184,79,246,48,184,138,198,48,184,180,150,48,
184,204,102,48,184,211,54,48,184,199,6,48,184,170,214,47,184,124,166,47,184,60,118,47,184,234,69,47,184,135,21,47,184,19,229,46,184,140,180,46,184,245,131,46,184,76,83,46,184,145,34,46,184,197,241,45,184,232,192,45,184,249,143,45,184,249,94,45,184,232,45,45,184,197,252,44,184,146,203,44,184,76,154,44,184,246,104,44,184,142,55,44,184,22,6,44,184,140,212,43,184,241,162,43,184,69,113,43,184,135,63,43,184,185,13,43,184,217,219,42,184,233,169,42,184,232,119,42,184,213,69,42,184,178,19,42,184,125,225,41,
184,56,175,41,184,226,124,41,184,123,74,41,184,3,24,41,184,122,229,40,184,225,178,40,184,55,128,40,184,124,77,40,184],"i8",4,y.a+1013760);
Q([176,26,40,184,211,231,39,184,230,180,39,184,232,129,39,184,218,78,39,184,186,27,39,184,139,232,38,184,74,181,38,184,250,129,38,184,152,78,38,184,38,27,38,184,164,231,37,184,17,180,37,184,110,128,37,184,186,76,37,184,246,24,37,184,33,229,36,184,60,177,36,184,71,125,36,184,66,73,36,184,44,21,36,184,6,225,35,184,208,172,35,184,137,120,35,184,51,68,35,184,204,15,35,184,85,219,34,184,206,166,34,184,55,114,34,184,144,61,34,184,216,8,34,184,17,212,33,184,58,159,33,184,83,106,33,184,91,53,33,184,84,0,
33,184,61,203,32,184,22,150,32,184,224,96,32,184,153,43,32,184,66,246,31,184,220,192,31,184,102,139,31,184,225,85,31,184,75,32,31,184,166,234,30,184,241,180,30,184,45,127,30,184,89,73,30,184,117,19,30,184,130,221,29,184,127,167,29,184,109,113,29,184,75,59,29,184,26,5,29,184,217,206,28,184,137,152,28,184,41,98,28,184,186,43,28,184,60,245,27,184,174,190,27,184,17,136,27,184,101,81,27,184,170,26,27,184,223,227,26,184,5,173,26,184,28,118,26,184,36,63,26,184,28,8,26,184,6,209,25,184,224,153,25,184,171,
98,25,184,104,43,25,184,21,244,24,184,179,188,24,184,66,133,24,184,195,77,24,184,52,22,24,184,151,222,23,184,234,166,23,184,47,111,23,184,101,55,23,184,140,255,22,184,165,199,22,184,174,143,22,184,169,87,22,184,150,31,22,184,115,231,21,184,66,175,21,184,2,119,21,184,180,62,21,184,87,6,21,184,236,205,20,184,114,149,20,184,233,92,20,184,82,36,20,184,173,235,19,184,249,178,19,184,55,122,19,184,102,65,19,184,135,8,19,184,154,207,18,184,159,150,18,184,149,93,18,184,125,36,18,184,86,235,17,184,34,178,17,
184,223,120,17,184,142,63,17,184,48,6,17,184,194,204,16,184,71,147,16,184,190,89,16,184,39,32,16,184,130,230,15,184,207,172,15,184,13,115,15,184,62,57,15,184,98,255,14,184,119,197,14,184,126,139,14,184,120,81,14,184,99,23,14,184,65,221,13,184,17,163,13,184,212,104,13,184,137,46,13,184,48,244,12,184,201,185,12,184,85,127,12,184,212,68,12,184,68,10,12,184,167,207,11,184,253,148,11,184,69,90,11,184,128,31,11,184,173,228,10,184,205,169,10,184,224,110,10,184,229,51,10,184,220,248,9,184,199,189,9,184,164,
130,9,184,116,71,9,184,55,12,9,184,236,208,8,184,149,149,8,184,48,90,8,184,190,30,8,184,63,227,7,184,179,167,7,184,25,108,7,184,115,48,7,184,192,244,6,184,0,185,6,184,51,125,6,184,89,65,6,184,114,5,6,184,126,201,5,184,125,141,5,184,112,81,5,184,86,21,5,184,47,217,4,184,251,156,4,184,186,96,4,184,109,36,4,184,19,232,3,184,173,171,3,184,58,111,3,184,186,50,3,184,46,246,2,184,150,185,2,184,240,124,2,184,63,64,2,184,129,3,2,184,182,198,1,184,223,137,1,184,252,76,1,184,12,16,1,184,16,211,0,184,8,150,0,
184,244,88,0,184,211,27,0,184,76,189,255,183,218,66,255,183,79,200,254,183,173,77,254,183,242,210,253,183,30,88,253,183,51,221,252,183,48,98,252,183,21,231,251,183,226,107,251,183,151,240,250,183,52,117,250,183,185,249,249,183,39,126,249,183,125,2,249,183,187,134,248,183,226,10,248,183,241,142,247,183,233,18,247,183,201,150,246,183,146,26,246,183,68,158,245,183,223,33,245,183,98,165,244,183,206,40,244,183,35,172,243,183,97,47,243,183,137,178,242,183,153,53,242,183,146,184,241,183,117,59,241,183,65,
190,240,183,246,64,240,183,148,195,239,183,28,70,239,183,142,200,238,183,233,74,238,183,45,205,237,183,91,79,237,183,115,209,236,183,117,83,236,183,96,213,235,183,53,87,235,183,244,216,234,183,157,90,234,183,48,220,233,183,173,93,233,183,21,223,232,183,102,96,232,183,162,225,231,183,200,98,231,183,216,227,230,183,211,100,230,183,184,229,229,183,135,102,229,183,66,231,228,183,231,103,228,183,118,232,227,183,240,104,227,183,85,233,226,183,165,105,226,183,224,233,225,183,5,106,225,183,22,234,224,183,
18,106,224,183,249,233,223,183,203,105,223,183,136,233,222,183,48,105,222,183,196,232,221,183,67,104,221,183,174,231,220,183,4,103,220,183,70,230,219,183,115,101,219,183,140,228,218,183,145,99,218,183,129,226,217,183,94,97,217,183,38,224,216,183,218,94,216,183,122,221,215,183,6,92,215,183,127,218,214,183,227,88,214,183,52,215,213,183,113,85,213,183,154,211,212,183,176,81,212,183,178,207,211,183,161,77,211,183,124,203,210,183,68,73,210,183,248,198,209,183,153,68,209,183,39,194,208,183,162,63,208,183,
10,189,207,183,95,58,207,183,160,183,206,183,207,52,206,183,235,177,205,183,244,46,205,183,234,171,204,183,206,40,204,183,159,165,203,183,93,34,203,183,9,159,202,183,162,27,202,183,41,152,201,183,158,20,201,183,0,145,200,183,80,13,200,183,141,137,199,183,185,5,199,183,210,129,198,183,218,253,197,183,207,121,197,183,179,245,196,183,132,113,196,183,68,237,195,183,242,104,195,183,143,228,194,183,25,96,194,183,147,219,193,183,250,86,193,183,80,210,192,183,149,77,192,183,201,200,191,183,235,67,191,183,
252,190,190,183,251,57,190,183,234,180,189,183,199,47,189,183,148,170,188,183,79,37,188,183,250,159,187,183,148,26,187,183,29,149,186,183,149,15,186,183,253,137,185,183,84,4,185,183,154,126,184,183,208,248,183,183,246,114,183,183,11,237,182,183,16,103,182,183,4,225,181,183,232,90,181,183,189,212,180,183,129,78,180,183,53,200,179,183,217,65,179,183,109,187,178,183,241,52,178,183,102,174,177,183,202,39,177,183,31,161,176,183,101,26,176,183,154,147,175,183,193,12,175,183,215,133,174,183,223,254,173,
183,215,119,173,183,192,240,172,183,153,105,172,183,99,226,171,183,31,91,171,183,203,211,170,183,104,76,170,183,246,196,169,183,118,61,169,183,230,181,168,183,72,46,168,183,155,166,167,183,223,30,167,183,21,151,166,183,60,15,166,183,85,135,165,183,95,255,164,183,91,119,164,183,73,239,163,183,40,103,163,183,249,222,162,183,188,86,162,183,113,206,161,183,24,70,161,183,177,189,160,183,60,53,160,183,186,172,159,183,41,36,159,183,139,155,158,183,223,18,158,183,37,138,157,183,94,1,157,183,138,120,156,183,
167,239,155,183,184,102,155,183,187,221,154,183,177,84,154,183,154,203,153,183,118,66,153,183,68,185,152,183,6,48,152,183,186,166,151,183,98,29,151,183,253,147,150,183,139,10,150,183,12,129,149,183,129,247,148,183,233,109,148,183,68,228,147,183,147,90,147,183,213,208,146,183,12,71,146,183,53,189,145,183,83,51,145,183,100,169,144,183,105,31,144,183,98,149,143,183,79,11,143,183,48,129,142,183,5,247,141,183,206,108,141,183,140,226,140,183,62,88,140,183,228,205,139,183,126,67,139,183,13,185,138,183,144,
46,138,183,8,164,137,183,116,25,137,183,214,142,136,183,43,4,136,183,118,121,135,183,182,238,134,183,234,99,134,183,19,217,133,183,50,78,133,183,69,195,132,183,78,56,132,183,76,173,131,183,63,34,131,183,39,151,130,183,5,12,130,183,216,128,129,183,161,245,128,183,95,106,128,183,37,190,127,183,120,167,126,183,183,144,125,183,225,121,124,183,247,98,123,183,248,75,122,183,230,52,121,183,191,29,120,183,133,6,119,183,55,239,117,183,213,215,116,183,96,192,115,183,216,168,114,183,60,145,113,183,141,121,112,
183,204,97,111,183,247,73,110,183,15,50,109,183,21,26,108,183,9,2,107,183,234,233,105,183,184,209,104,183,117,185,103,183,31,161,102,183,183,136,101,183,62,112,100,183,179,87,99,183,22,63,98,183,104,38,97,183,169,13,96,183,216,244,94,183,246,219,93,183,3,195,92,183,0,170,91,183,235,144,90,183,198,119,89,183,144,94,88,183,74,69,87,183,244,43,86,183,142,18,85,183,23,249,83,183,145,223,82,183,251,197,81,183,85,172,80,183,159,146,79,183,218,120,78,183,6,95,77,183,34,69,76,183,48,43,75,183,46,17,74,183,
30,247,72,183,255,220,71,183,209,194,70,183,149,168,69,183,74,142,68,183,241,115,67,183,138,89,66,183,21,63,65,183,146,36,64,183,1,10,63,183,99,239,61,183,183,212,60,183,253,185,59,183,54,159,58,183,98,132,57,183,129,105,56,183,147,78,55,183,153,51,54,183,145,24,53,183,125,253,51,183,92,226,50,183,47,199,49,183,246,171,48,183,177,144,47,183,96,117,46,183,2,90,45,183,153,62,44,183,37,35,43,183,165,7,42,183,25,236,40,183,130,208,39,183,224,180,38,183,51,153,37,183,123,125,36,183,184,97,35,183,235,69,
34,183,19,42,33,183,48,14,32,183,68,242,30,183,77,214,29,183,75,186,28,183,64,158,27,183,43,130,26,183,13,102,25,183,228,73,24,183,178,45,23,183,119,17,22,183,51,245,20,183,229,216,19,183,142,188,18,183,47,160,17,183,198,131,16,183,85,103,15,183,220,74,14,183,90,46,13,183,208,17,12,183,61,245,10,183,163,216,9,183,0,188,8,183,86,159,7,183,164,130,6,183,234,101,5,183,41,73,4,183,97,44,3,183,145,15,2,183,186,242,0,183,184,171,255,182,239,113,253,182,24,56,251,182,52,254,248,182,67,196,246,182,69,138,
244,182,58,80,242,182,36,22,240,182,1,220,237,182,210,161,235,182,151,103,233,182,82,45,231,182,1,243,228,182,165,184,226,182,63,126,224,182,206,67,222,182,83,9,220,182,206,206,217,182,63,148,215,182,167,89,213,182,6,31,211,182,91,228,208,182,168,169,206,182,237,110,204,182,41,52,202,182,93,249,199,182,138,190,197,182,174,131,195,182,204,72,193,182,226,13,191,182,242,210,188,182,251,151,186,182,253,92,184,182,250,33,182,182,241,230,179,182,226,171,177,182,205,112,175,182,180,53,173,182,149,250,170,
182,114,191,168,182,74,132,166,182,30,73,164,182,238,13,162,182,187,210,159,182,132,151,157,182,73,92,155,182,12,33,153,182,204,229,150,182,137,170,148,182,68,111,146,182,253,51,144,182,180,248,141,182,105,189,139,182,30,130,137,182,209,70,135,182,131,11,133,182,52,208,130,182,229,148,128,182,44,179,124,182,142,60,120,182,241,197,115,182,84,79,111,182,186,216,106,182,33,98,102,182,139,235,97,182,247,116,93,182,104,254,88,182,220,135,84,182,85,17,80,182,210,154,75,182,85,36,71,182,222,173,66,182,109,
55,62,182,3,193,57,182,160,74,53,182,69,212,48,182,242,93,44,182,168,231,39,182,103,113,35,182,47,251,30,182,2,133,26,182,223,14,22,182,200,152,17,182,188,34,13,182,188,172,8,182,200,54,4,182,195,129,255,181,17,150,246,181,123,170,237,181,1,191,228,181,165,211,219,181,104,232,210,181,75,253,201,181,78,18,193,181,114,39,184,181,185,60,175,181,36,82,166,181,179,103,157,181,103,125,148,181,65,147,139,181,67,169,130,181,217,126,115,181,127,171,97,181,121,216,79,181,201,5,62,181,113,51,44,181,114,97,26,
181,207,143,8,181,20,125,237,180,73,219,201,180,64,58,166,180,253,153,130,180,10,245,61,180,106,111,237,179,16,240,61,179,14,240,189,50,170,236,189,51,238,44,38,52,197,97,109,52,105,74,154,52,8,227,189,52,186,122,225,52,190,136,2,53,165,83,20,53,17,30,38,53,255,231,55,53,109,177,73,53,90,122,91,53,195,66,109,53,168,10,127,53,3,105,136,53,109,76,145,53,146,47,154,53,112,18,163,53,7,245,171,53,86,215,180,53,92,185,189,53,23,155,198,53,136,124,207,53,172,93,216,53,132,62,225,53,13,31,234,53,72,255,242,
53,51,223,251,53,103,95,2,54,11,207,6,54,134,62,11,54,216,173,15,54,255,28,20,54,251,139,24,54,205,250,28,54,114,105,33,54,236,215,37,54,57,70,42,54,89,180,46,54,75,34,51,54,16,144,55,54,166,253,59,54,13,107,64,54,68,216,68,54,76,69,73,54,36,178,77,54,203,30,82,54,64,139,86,54,132,247,90,54,150,99,95,54,117,207,99,54,33,59,104,54,153,166,108,54,221,17,113,54,237,124,117,54,200,231,121,54,109,82,126,54,110,94,129,54,139,147,131,54,140,200,133,54,114,253,135,54,59,50,138,54,233,102,140,54,122,155,142,
54,238,207,144,54,70,4,147,54,129,56,149,54,158,108,151,54,158,160,153,54,128,212,155,54,68,8,158,54,234,59,160,54,114,111,162,54,219,162,164,54,36,214,166,54,79,9,169,54,91,60,171,54,71,111,173,54,19,162,175,54,190,212,177,54,74,7,180,54,181,57,182,54,0,108,184,54,41,158,186,54,49,208,188,54,24,2,191,54,221,51,193,54,128,101,195,54,1,151,197,54,96,200,199,54,156,249,201,54,181,42,204,54,171,91,206,54,126,140,208,54,45,189,210,54,185,237,212,54,32,30,215,54,99,78,217,54,130,126,219,54,125,174,221,
54,82,222,223,54,2,14,226,54,141,61,228,54,242,108,230,54,50,156,232,54,75,203,234,54,62,250,236,54,11,41,239,54,176,87,241,54,47,134,243,54,135,180,245,54,183,226,247,54,192,16,250,54,160,62,252,54,89,108,254,54,245,76,0,55,168,99,1,55,72,122,2,55,211,144,3,55,73,167,4,55,171,189,5,55,247,211,6,55,47,234,7,55,82,0,9,55,95,22,10,55,87,44,11,55,58,66,12,55,7,88,13,55,191,109,14,55,97,131,15,55,236,152,16,55,98,174,17,55,194,195,18,55,12,217,19,55,63,238,20,55,92,3,22,55,98,24,23,55,82,45,24,55,42,
66,25,55,236,86,26,55,151,107,27,55,43,128,28,55,167,148,29,55,12,169,30,55,90,189,31,55,144,209,32,55,175,229,33,55,181,249,34,55,164,13,36,55,123,33,37,55,57,53,38,55,223,72,39,55,109,92,40,55,227,111,41,55,63,131,42,55,132,150,43,55,175,169,44,55,193,188,45,55,187,207,46,55,155,226,47,55,98,245,48,55,15,8,50,55,163,26,51,55,30,45,52,55,127,63,53,55,198,81,54,55,242,99,55,55,5,118,56,55,254,135,57,55,221,153,58,55,161,171,59,55,74,189,60,55,217,206,61,55,78,224,62,55,167,241,63,55,230,2,65,55,9,
20,66,55,18,37,67,55,255,53,68,55,208,70,69,55,135,87,70,55,33,104,71,55,160,120,72,55,3,137,73,55,74,153,74,55,117,169,75,55,132,185,76,55,118,201,77,55,77,217,78,55,6,233,79,55,163,248,80,55,36,8,82,55,135,23,83,55,206,38,84,55,248,53,85,55,4,69,86,55,243,83,87,55,197,98,88,55,121,113,89,55,16,128,90,55,137,142,91,55,228,156,92,55,34,171,93,55,65,185,94,55,66,199,95,55,37,213,96,55,233,226,97,55,143,240,98,55,22,254,99,55,127,11,101,55,201,24,102,55,244,37,103,55,0,51,104,55,237,63,105,55,187,76,
106,55,105,89,107,55,248,101,108,55,103,114,109,55,182,126,110,55,230,138,111,55,246,150,112,55,230,162,113,55,182,174,114,55,101,186,115,55,245,197,116,55,99,209,117,55,178,220,118,55,223,231,119,55,236,242,120,55,216,253,121,55,163,8,123,55,77,19,124,55,214,29,125,55,61,40,126,55,131,50,127,55,84,30,128,55,85,163,128,55,70,40,129,55,37,173,129,55,244,49,130,55,178,182,130,55,94,59,131,55,250,191,131,55,132,68,132,55,253,200,132,55,101,77,133,55,187,209,133,55,0,86,134,55,52,218,134,55,86,94,135,
55,102,226,135,55,101,102,136,55,82,234,136,55,46,110,137,55,247,241,137,55,175,117,138,55,85,249,138,55,233,124,139,55,107,0,140,55,219,131,140,55,57,7,141,55,133,138,141,55,190,13,142,55,229,144,142,55,250,19,143,55,253,150,143,55,237,25,144,55,203,156,144,55,150,31,145,55,79,162,145,55,245,36,146,55,136,167,146,55,9,42,147,55,119,172,147,55,210,46,148,55,26,177,148,55,79,51,149,55,113,181,149,55,128,55,150,55,124,185,150,55,101,59,151,55,59,189,151,55,254,62,152,55,173,192,152,55,72,66,153,55,
209,195,153,55,70,69,154,55,167,198,154,55,245,71,155,55,47,201,155,55,86,74,156,55,105,203,156,55,104,76,157,55,83,205,157,55,42,78,158,55,238,206,158,55,157,79,159,55,57,208,159,55,192,80,160,55,51,209,160,55,146,81,161,55,221,209,161,55,19,82,162,55,53,210,162,55,67,82,163,55,61,210,163,55,33,82,164,55,242,209,164,55,173,81,165,55,84,209,165,55,230,80,166,55,100,208,166,55,205,79,167,55,33,207,167,55,96,78,168,55,138,205,168,55,159,76,169,55,159,203,169,55,137,74,170,55,95,201,170,55,32,72,171,
55,203,198,171,55,97,69,172,55,225,195,172,55,76,66,173,55,162,192,173,55,226,62,174,55,13,189,174,55,34,59,175,55,33,185,175,55,10,55,176,55,222,180,176,55,156,50,177,55,68,176,177,55,214,45,178,55,83,171,178,55,185,40,179,55,9,166,179,55,67,35,180,55,103,160,180,55,116,29,181,55,108,154,181,55,77,23,182,55,23,148,182,55,204,16,183,55,105,141,183,55,241,9,184,55,97,134,184,55,187,2,185,55,255,126,185,55,43,251,185,55,65,119,186,55,64,243,186,55,40,111,187,55,250,234,187,55,180,102,188,55,87,226,
188,55,228,93,189,55,89,217,189,55,183,84,190,55,253,207,190,55,45,75,191,55,69,198,191,55,70,65,192,55,47,188,192,55,1,55,193,55,188,177,193,55,94,44,194,55,234,166,194,55,93,33,195,55,185,155,195,55,253,21,196,55,42,144,196,55,62,10,197,55,59,132,197,55,32,254,197,55,236,119,198,55,161,241,198,55,61,107,199,55,194,228,199,55,46,94,200,55,130,215,200,55,190,80,201,55,225,201,201,55,236,66,202,55,222,187,202,55,184,52,203,55,122,173,203,55,35,38,204,55,179,158,204,55,43,23,205,55,138,143,205,55,208,
7,206,55,253,127,206,55,18,248,206,55,14,112,207,55,240,231,207,55,186,95,208,55,106,215,208,55,2,79,209,55,128,198,209,55,229,61,210,55,49,181,210,55,100,44,211,55,125,163,211,55,125,26,212,55,99,145,212,55,48,8,213,55,228,126,213,55,126,245,213,55,254,107,214,55,101,226,214,55,178,88,215,55,229,206,215,55,254,68,216,55,253,186,216,55,227,48,217,55,175,166,217,55,96,28,218,55,248,145,218,55,117,7,219,55,217,124,219,55,34,242,219,55,81,103,220,55,102,220,220,55,96,81,221,55,64,198,221,55,5,59,222,
55,177,175,222,55,65,36,223,55,183,152,223,55,19,13,224,55,84,129,224,55,122,245,224,55,133,105,225,55,118,221,225,55,76,81,226,55,7,197,226,55,167,56,227,55,44,172,227,55,150,31,228,55,229,146,228,55,25,6,229,55,50,121,229,55,47,236,229,55,17,95,230,55,217,209,230,55,132,68,231,55,21,183,231,55,138,41,232,55,227,155,232,55,33,14,233,55,67,128,233,55,74,242,233,55,54,100,234,55,5,214,234,55,185,71,235,55,81,185,235,55,205,42,236,55,45,156,236,55,114,13,237,55,154,126,237,55,167,239,237,55,151,96,
238,55,107,209,238,55,36,66,239,55,192,178,239,55,63,35,240,55,163,147,240,55,234,3,241,55,21,116,241,55,35,228,241,55,21,84,242,55,235,195,242,55,164,51,243,55,64,163,243,55,192,18,244,55,35,130,244,55,106,241,244,55,148,96,245,55,161,207,245,55,145,62,246,55,100,173,246,55,26,28,247,55,179,138,247,55,48,249,247,55,143,103,248,55,209,213,248,55,246,67,249,55,254,177,249,55,233,31,250,55,182,141,250,55,102,251,250,55,249,104,251,55,110,214,251,55,198,67,252,55,0,177,252,55,29,30,253,55,28,139,253,
55,254,247,253,55,194,100,254,55,104,209,254,55,241,61,255,55,92,170,255,55,84,11,0,56,108,65,0,56,117,119,0,56,110,173,0,56,89,227,0,56,52,25,1,56,1,79,1,56,190,132,1,56,109,186,1,56,12,240,1,56,156,37,2,56,29,91,2,56,143,144,2,56,242,197,2,56,70,251,2,56,138,48,3,56,191,101,3,56,229,154,3,56,251,207,3,56,2,5,4,56,250,57,4,56,227,110,4,56,188,163,4,56,134,216,4,56,64,13,5,56,235,65,5,56,134,118,5,56,18,171,5,56,143,223,5,56,252,19,6,56,89,72,6,56,167,124,6,56,229,176,6,56,20,229,6,56,51,25,7,56,
66,77,7,56,66,129,7,56,50,181,7,56,19,233,7,56,227,28,8,56,164,80,8,56,86,132,8,56,247,183,8,56,137,235,8,56,10,31,9,56,124,82,9,56,222,133,9,56,49,185,9,56,115,236,9,56,165,31,10,56,200,82,10,56,218,133,10,56,221,184,10,56,207,235,10,56,178,30,11,56,133,81,11,56,71,132,11,56,249,182,11,56,156,233,11,56,46,28,12,56,176,78,12,56,34,129,12,56,131,179,12,56,213,229,12,56,22,24,13,56,71,74,13,56,104,124,13,56,121,174,13,56,121,224,13,56,105,18,14,56,72,68,14,56,24,118,14,56,215,167,14,56,133,217,14,56,
35,11,15,56,177,60,15,56,46,110,15,56,155,159,15,56,247,208,15,56,67,2,16,56,126,51,16,56,169,100,16,56,195,149,16,56,205,198,16,56,198,247,16,56,174,40,17,56,134,89,17,56,77,138,17,56,4,187,17,56,169,235,17,56,62,28,18,56,195,76,18,56,54,125,18,56,153,173,18,56,235,221,18,56,44,14,19,56,93,62,19,56,124,110,19,56,139,158,19,56,137,206,19,56,118,254,19,56,82,46,20,56,29,94,20,56,215,141,20,56,128,189,20,56,25,237,20,56,160,28,21,56,22,76,21,56,123,123,21,56,207,170,21,56,18,218,21,56,68,9,22,56,101,
56,22,56,117,103,22,56,115,150,22,56,97,197,22,56,61,244,22,56,8,35,23,56,194,81,23,56,106,128,23,56,1,175,23,56,135,221,23,56,252,11,24,56,95,58,24,56,177,104,24,56,242,150,24,56,34,197,24,56,64,243,24,56,76,33,25,56,71,79,25,56,49,125,25,56,9,171,25,56,208,216,25,56,134,6,26,56,41,52,26,56,188,97,26,56,61,143,26,56,172,188,26,56,9,234,26,56,85,23,27,56,144,68,27,56,185,113,27,56,208,158,27,56,214,203,27,56,201,248,27,56,172,37,28,56,124,82,28,56,59,127,28,56,232,171,28,56,131,216,28,56,13,5,29,
56,132,49,29,56,234,93,29,56,62,138,29,56,128,182,29,56,177,226,29,56,207,14,30,56,220,58,30,56,214,102,30,56,191,146,30,56,150,190,30,56,91,234,30,56,14,22,31,56,174,65,31,56,61,109,31,56,186,152,31,56,37,196,31,56,126,239,31,56,196,26,32,56,249,69,32,56,27,113,32,56,44,156,32,56,42,199,32,56,22,242,32,56,240,28,33,56,183,71,33,56,109,114,33,56,16,157,33,56,161,199,33,56,32,242,33,56,140,28,34,56,230,70,34,56,46,113,34,56,100,155,34,56,135,197,34,56,152,239,34,56,151,25,35,56,131,67,35,56,92,109,
35,56,36,151,35,56,217,192,35,56,123,234,35,56,11,20,36,56,137,61,36,56,244,102,36,56,76,144,36,56,146,185,36,56,198,226,36,56,231,11,37,56,245,52,37,56,241,93,37,56,218,134,37,56,177,175,37,56,116,216,37,56,38,1,38,56,196,41,38,56,80,82,38,56,202,122,38,56,48,163,38,56,132,203,38,56,197,243,38,56,243,27,39,56,15,68,39,56,24,108,39,56,14,148,39,56,241,187,39,56,194,227,39,56,127,11,40,56,42,51,40,56,194,90,40,56,70,130,40,56,185,169,40,56,24,209,40,56,100,248,40,56,157,31,41,56,195,70,41,56,215,109,
41,56,215,148,41,56,196,187,41,56,159,226,41,56,102,9,42,56,26,48,42,56,187,86,42,56,74,125,42,56,197,163,42,56,45,202,42,56,129,240,42,56,195,22,43,56,242,60,43,56,13,99,43,56,21,137,43,56,10,175,43,56,236,212,43,56,187,250,43,56,118,32,44,56,30,70,44,56,179,107,44,56,53,145,44,56,163,182,44,56,254,219,44,56,70,1,45,56,122,38,45,56,155,75,45,56,169,112,45,56,164,149,45,56,139,186,45,56,94,223,45,56,30,4,46,56,203,40,46,56,100,77,46,56,234,113,46,56,93,150,46,56,188,186,46,56,7,223,46,56,63,3,47,
56,100,39,47,56,116,75,47,56,114,111,47,56,92,147,47,56,50,183,47,56,245,218,47,56,164,254,47,56,63,34,48,56,199,69,48,56,59,105,48,56,156,140,48,56,233,175,48,56,34,211,48,56,72,246,48,56,90,25,49,56,88,60,49,56,66,95,49,56,25,130,49,56,220,164,49,56,139,199,49,56,39,234,49,56,174,12,50,56,34,47,50,56,130,81,50,56,206,115,50,56,7,150,50,56,43,184,50,56,60,218,50,56,57,252,50,56,34,30,51,56,247,63,51,56,184,97,51,56,101,131,51,56,255,164,51,56,132,198,51,56,245,231,51,56,83,9,52,56,156,42,52,56,210,
75,52,56,243,108,52,56,1,142,52,56,250,174,52,56,223,207,52,56,177,240,52,56,110,17,53,56,23,50,53,56,172,82,53,56,45,115,53,56,154,147,53,56,243,179,53,56,55,212,53,56,104,244,53,56,132,20,54,56,140,52,54,56,128,84,54,56,96,116,54,56,44,148,54,56,227,179,54,56,134,211,54,56,21,243,54,56,144,18,55,56,246,49,55,56,72,81,55,56,134,112,55,56,175,143,55,56,197,174,55,56,198,205,55,56,178,236,55,56,139,11,56,56,78,42,56,56,254,72,56,56,153,103,56,56,32,134,56,56,146,164,56,56,240,194,56,56,58,225,56,56,
111,255,56,56,144,29,57,56,156,59,57,56,148,89,57,56,119,119,57,56,70,149,57,56,1,179,57,56,167,208,57,56,56,238,57,56,181,11,58,56,29,41,58,56,113,70,58,56,176,99,58,56,219,128,58,56,241,157,58,56,243,186,58,56,224,215,58,56,184,244,58,56,124,17,59,56,43,46,59,56,197,74,59,56,75,103,59,56,188,131,59,56,25,160,59,56,97,188,59,56,148,216,59,56,179,244,59,56,188,16,60,56,177,44,60,56,146,72,60,56,94,100,60,56,20,128,60,56,183,155,60,56,68,183,60,56,189,210,60,56,33,238,60,56,112,9,61,56,170,36,61,56,
207,63,61,56,224,90,61,56,220,117,61,56,195,144,61,56,149,171,61,56,82,198,61,56,251,224,61,56,142,251,61,56,13,22,62,56,119,48,62,56,204,74,62,56,12,101,62,56,55,127,62,56,77,153,62,56,78,179,62,56,59,205,62,56,18,231,62,56,212,0,63,56,130,26,63,56,26,52,63,56,158,77,63,56,12,103,63,56,101,128,63,56,170,153,63,56,217,178,63,56,244,203,63,56,249,228,63,56,233,253,63,56,197,22,64,56,139,47,64,56,60,72,64,56,216,96,64,56,95,121,64,56,209,145,64,56,46,170,64,56,117,194,64,56,168,218,64,56,197,242,64,
56,205,10,65,56,192,34,65,56,158,58,65,56,103,82,65,56,27,106,65,56,185,129,65,56,67,153,65,56,183,176,65,56,21,200,65,56,95,223,65,56,148,246,65,56,179,13,66,56,189,36,66,56,178,59,66,56,145,82,66,56,91,105,66,56,16,128,66,56,176,150,66,56,59,173,66,56,176,195,66,56,16,218,66,56,90,240,66,56,143,6,67,56,175,28,67,56,186,50,67,56,175,72,67,56,143,94,67,56,90,116,67,56,15,138,67,56,175,159,67,56,58,181,67,56,175,202,67,56,15,224,67,56,89,245,67,56,142,10,68,56,174,31,68,56,184,52,68,56,173,73,68,56,
140,94,68,56,86,115,68,56,11,136,68,56,170,156,68,56,52,177,68,56,168,197,68,56,7,218,68,56,80,238,68,56,132,2,69,56,162,22,69,56,171,42,69,56,159,62,69,56,125,82,69,56,69,102,69,56,248,121,69,56,149,141,69,56,29,161,69,56,144,180,69,56,236,199,69,56,52,219,69,56,101,238,69,56,129,1,70,56,136,20,70,56,121,39,70,56,85,58,70,56,27,77,70,56,203,95,70,56,102,114,70,56,235,132,70,56,90,151,70,56,180,169,70,56,249,187,70,56,39,206,70,56,64,224,70,56,68,242,70,56,50,4,71,56,10,22,71,56,205,39,71,56,121,
57,71,56,17,75,71,56,146,92,71,56,254,109,71,56,85,127,71,56,149,144,71,56,192,161,71,56,213,178,71,56,213,195,71,56,191,212,71,56,147,229,71,56,82,246,71,56,250,6,72,56,141,23,72,56,11,40,72,56,114,56,72,56,196,72,72,56,0,89,72,56,39,105,72,56,55,121,72,56,50,137,72,56,23,153,72,56,231,168,72,56,160,184,72,56,68,200,72,56,210,215,72,56,75,231,72,56,173,246,72,56,250,5,73,56,49,21,73,56,82,36,73,56,94,51,73,56,83,66,73,56,51,81,73,56,253,95,73,56,177,110,73,56,80,125,73,56,216,139,73,56,75,154,73,
56,168,168,73,56,239,182,73,56,32,197,73,56,60,211,73,56,65,225,73,56,49,239,73,56,11,253,73,56,207,10,74,56,125,24,74,56,21,38,74,56,151,51,74,56,4,65,74,56,90,78,74,56,155,91,74,56,198,104,74,56,219,117,74,56,218,130,74,56,195,143,74,56,151,156,74,56,84,169,74,56,252,181,74,56,141,194,74,56,9,207,74,56,111,219,74,56,191,231,74,56,249,243,74,56,29,0,75,56,43,12,75,56,35,24,75,56,6,36,75,56,210,47,75,56,136,59,75,56,41,71,75,56,179,82,75,56,40,94,75,56,135,105,75,56,207,116,75,56,2,128,75,56,31,139,
75,56,38,150,75,56,23,161,75,56,242,171,75,56,182,182,75,56,101,193,75,56,255,203,75,56,130,214,75,56,239,224,75,56,70,235,75,56,135,245,75,56,178,255,75,56,199,9,76,56,198,19,76,56,176,29,76,56,131,39,76,56,64,49,76,56,231,58,76,56,121,68,76,56,244,77,76,56,89,87,76,56,168,96,76,56,225,105,76,56,5,115,76,56,18,124,76,56,9,133,76,56,234,141,76,56,182,150,76,56,107,159,76,56,10,168,76,56,147,176,76,56,6,185,76,56,99,193,76,56,170,201,76,56,220,209,76,56,247,217,76,56,252,225,76,56,235,233,76,56,196,
241,76,56,135,249,76,56,52,1,77,56,202,8,77,56,75,16,77,56,182,23,77,56,11,31,77,56,74,38,77,56,115,45,77,56,133,52,77,56,130,59,77,56,105,66,77,56,57,73,77,56,244,79,77,56,152,86,77,56,39,93,77,56,159,99,77,56,1,106,77,56,78,112,77,56,132,118,77,56,164,124,77,56,175,130,77,56,163,136,77,56,129,142,77,56,73,148,77,56,251,153,77,56,151,159,77,56,29,165,77,56,141,170,77,56,231,175,77,56,42,181,77,56,88,186,77,56,112,191,77,56,114,196,77,56,93,201,77,56,51,206,77,56,242,210,77,56,156,215,77,56,47,220,
77,56,173,224,77,56,20,229,77,56,101,233,77,56,160,237,77,56,198,241,77,56,213,245,77,56,206,249,77,56,177,253,77,56,126,1,78,56,53,5,78,56,214,8,78,56,97,12,78,56,214,15,78,56,52,19,78,56,125,22,78,56,176,25,78,56,204,28,78,56,211,31,78,56,196,34,78,56,158,37,78,56,99,40,78,56,17,43,78,56,170,45,78,56,44,48,78,56,153,50,78,56,239,52,78,56,47,55,78,56,90,57,78,56,110,59,78,56,108,61,78,56,84,63,78,56,38,65,78,56,227,66,78,56,137,68,78,56,25,70,78,56,147,71,78,56,247,72,78,56,69,74,78,56,125,75,78,
56,159,76,78,56,171,77,78,56,161,78,78,56,129,79,78,56,75,80,78,56,255,80,78,56,157,81,78,56,37,82,78,56,151,82,78,56,243,82,78,56,57,83,78,56,105,83,78,56,131,83,78,56,136,83,78,56,118,83,78,56,78,83,78,56,16,83,78,56,188,82,78,56,82,82,78,56,210,81,78,56,60,81,78,56,144,80,78,56,207,79,78,56,247,78,78,56,9,78,78,56,6,77,78,56,236,75,78,56,188,74,78,56,119,73,78,56,27,72,78,56,170,70,78,56,34,69,78,56,133,67,78,56,210,65,78,56,9,64,78,56,41,62,78,56,52,60,78,56,41,58,78,56,8,56,78,56,209,53,78,56,
133,51,78,56,34,49,78,56,169,46,78,56,27,44,78,56,118,41,78,56,188,38,78,56,236,35,78,56,6,33,78,56,9,30,78,56,248,26,78,56,208,23,78,56,146,20,78,56,62,17,78,56,213,13,78,56,85,10,78,56,192,6,78,56,21,3,78,56,84,255,77,56,125,251,77,56,145,247,77,56,142,243,77,56,118,239,77,56,71,235,77,56,3,231,77,56,169,226,77,56,57,222,77,56,180,217,77,56,24,213,77,56,103,208,77,56,160,203,77,56,195,198,77,56,208,193,77,56,200,188,77,56,170,183,77,56,117,178,77,56,44,173,77,56,204,167,77,56,86,162,77,56,203,156,
77,56,42,151,77,56,115,145,77,56,167,139,77,56,196,133,77,56,204,127,77,56,190,121,77,56,154,115,77,56,97,109,77,56,18,103,77,56,173,96,77,56,50,90,77,56,162,83,77,56,252,76,77,56,64,70,77,56,111,63,77,56,136,56,77,56,139,49,77,56,120,42,77,56,80,35,77,56,18,28,77,56,190,20,77,56,85,13,77,56,214,5,77,56,65,254,76,56,151,246,76,56,215,238,76,56,1,231,76,56,22,223,76,56,21,215,76,56,254,206,76,56,210,198,76,56,144,190,76,56,57,182,76,56,203,173,76,56,73,165,76,56,176,156,76,56,3,148,76,56,63,139,76,
56,102,130,76,56,119,121,76,56,115,112,76,56,89,103,76,56,42,94,76,56,229,84,76,56,138,75,76,56,26,66,76,56,149,56,76,56,250,46,76,56,73,37,76,56,131,27,76,56,167,17,76,56,182,7,76,56,175,253,75,56,147,243,75,56,97,233,75,56,26,223,75,56,189,212,75,56,75,202,75,56,196,191,75,56,39,181,75,56,116,170,75,56,172,159,75,56,207,148,75,56,220,137,75,56,212,126,75,56,182,115,75,56,131,104,75,56,58,93,75,56,220,81,75,56,105,70,75,56,224,58,75,56,66,47,75,56,143,35,75,56,198,23,75,56,232,11,75,56,244,255,74,
56,235,243,74,56,205,231,74,56,153,219,74,56,81,207,74,56,242,194,74,56,127,182,74,56,246,169,74,56,88,157,74,56,164,144,74,56,220,131,74,56,254,118,74,56,11,106,74,56,2,93,74,56,228,79,74,56,177,66,74,56,105,53,74,56,12,40,74,56,153,26,74,56,17,13,74,56,116,255,73,56,193,241,73,56,250,227,73,56,29,214,73,56,43,200,73,56,36,186,73,56,8,172,73,56,215,157,73,56,144,143,73,56,53,129,73,56,196,114,73,56,62,100,73,56,163,85,73,56,243,70,73,56,46,56,73,56,83,41,73,56,100,26,73,56,96,11,73,56,70,252,72,
56,23,237,72,56,212,221,72,56,123,206,72,56,13,191,72,56,139,175,72,56,243,159,72,56,70,144,72,56,132,128,72,56,174,112,72,56,194,96,72,56,193,80,72,56,172,64,72,56,129,48,72,56,66,32,72,56,237,15,72,56,132,255,71,56,5,239,71,56,114,222,71,56,202,205,71,56,13,189,71,56,59,172,71,56,84,155,71,56,88,138,71,56,72,121,71,56,34,104,71,56,232,86,71,56,153,69,71,56,53,52,71,56,189,34,71,56,47,17,71,56,141,255,70,56,214,237,70,56,10,220,70,56,41,202,70,56,52,184,70,56,42,166,70,56,11,148,70,56,215,129,70,
56,143,111,70,56,50,93,70,56,192,74,70,56,58,56,70,56,159,37,70,56,239,18,70,56,43,0,70,56,82,237,69,56,100,218,69,56,98,199,69,56,75,180,69,56,31,161,69,56,223,141,69,56,138,122,69,56,33,103,69,56,163,83,69,56,17,64,69,56,105,44,69,56,174,24,69,56,222,4,69,56,249,240,68,56,0,221,68,56,242,200,68,56,208,180,68,56,154,160,68,56,79,140,68,56,239,119,68,56,123,99,68,56,243,78,68,56,86,58,68,56,165,37,68,56,223,16,68,56,5,252,67,56,22,231,67,56,20,210,67,56,252,188,67,56,209,167,67,56,145,146,67,56,61,
125,67,56,212,103,67,56,87,82,67,56,198,60,67,56,33,39,67,56,103,17,67,56,153,251,66,56,183,229,66,56,192,207,66,56,181,185,66,56,150,163,66,56,99,141,66,56,28,119,66,56,192,96,66,56,81,74,66,56,205,51,66,56,53,29,66,56,136,6,66,56,200,239,65,56,244,216,65,56,11,194,65,56,14,171,65,56,254,147,65,56,217,124,65,56,160,101,65,56,83,78,65,56,242,54,65,56,125,31,65,56,244,7,65,56,87,240,64,56,166,216,64,56,225,192,64,56,8,169,64,56,27,145,64,56,26,121,64,56,5,97,64,56,220,72,64,56,159,48,64,56,79,24,64,
56,234,255,63,56,114,231,63,56,230,206,63,56,70,182,63,56,146,157,63,56,202,132,63,56,238,107,63,56,255,82,63,56,252,57,63,56,229,32,63,56,186,7,63,56,124,238,62,56,42,213,62,56,196,187,62,56,74,162,62,56,189,136,62,56,28,111,62,56,103,85,62,56,158,59,62,56,194,33,62,56,211,7,62,56,207,237,61,56,184,211,61,56,142,185,61,56,80,159,61,56,254,132,61,56,153,106,61,56,32,80,61,56,148,53,61,56,244,26,61,56,64,0,61,56,121,229,60,56,159,202,60,56,177,175,60,56,176,148,60,56,155,121,60,56,115,94,60,56,55,
67,60,56,232,39,60,56,133,12,60,56,16,241,59,56,134,213,59,56,234,185,59,56,58,158,59,56,119,130,59,56,160,102,59,56,182,74,59,56,185,46,59,56,169,18,59,56,133,246,58,56,78,218,58,56,4,190,58,56,166,161,58,56,54,133,58,56,178,104,58,56,27,76,58,56,113,47,58,56,179,18,58,56,227,245,57,56,255,216,57,56,9,188,57,56,255,158,57,56,226,129,57,56,178,100,57,56,111,71,57,56,25,42,57,56,176,12,57,56,52,239,56,56,165,209,56,56,3,180,56,56,78,150,56,56,133,120,56,56,171,90,56,56,189,60,56,56,188,30,56,56,168,
0,56,56,129,226,55,56,72,196,55,56,252,165,55,56,156,135,55,56,42,105,55,56,166,74,55,56,14,44,55,56,100,13,55,56,166,238,54,56,214,207,54,56,244,176,54,56,254,145,54,56,246,114,54,56,219,83,54,56,174,52,54,56,110,21,54,56,27,246,53,56,181,214,53,56,61,183,53,56,178,151,53,56,21,120,53,56,101,88,53,56,163,56,53,56,206,24,53,56,230,248,52,56,236,216,52,56,223,184,52,56,192,152,52,56,143,120,52,56,75,88,52,56,244,55,52,56,139,23,52,56,16,247,51,56,130,214,51,56,226,181,51,56,48,149,51,56,107,116,51,
56,148,83,51,56,170,50,51,56,175,17,51,56,161,240,50,56,128,207,50,56,78,174,50,56,9,141,50,56,178,107,50,56,72,74,50,56,205,40,50,56,63,7,50,56,159,229,49,56,237,195,49,56,41,162,49,56,83,128,49,56,107,94,49,56,112,60,49,56,100,26,49,56,69,248,48,56,20,214,48,56,210,179,48,56,125,145,48,56,22,111,48,56,158,76,48,56,19,42,48,56,119,7,48,56,200,228,47,56,8,194,47,56,53,159,47,56,81,124,47,56,91,89,47,56,83,54,47,56,58,19,47,56,14,240,46,56,209,204,46,56,130,169,46,56,33,134,46,56,174,98,46,56,42,63,
46,56,148,27,46,56,236,247,45,56,50,212,45,56,103,176,45,56,139,140,45,56,156,104,45,56,156,68,45,56,138,32,45,56,103,252,44,56,50,216,44,56,236,179,44,56,148,143,44,56,43,107,44,56,176,70,44,56,36,34,44,56,134,253,43,56,214,216,43,56,22,180,43,56,67,143,43,56,96,106,43,56,107,69,43,56,101,32,43,56,77,251,42,56,36,214,42,56,234,176,42,56,158,139,42,56,65,102,42,56,211,64,42,56,84,27,42,56,195,245,41,56,33,208,41,56,110,170,41,56,170,132,41,56,213,94,41,56,238,56,41,56,247,18,41,56,238,236,40,56,212,
198,40,56,169,160,40,56,109,122,40,56,32,84,40,56,194,45,40,56,83,7,40,56,211,224,39,56,66,186,39,56,160,147,39,56,238,108,39,56,42,70,39,56,85,31,39,56,112,248,38,56,121,209,38,56,114,170,38,56,90,131,38,56,49,92,38,56,247,52,38,56,173,13,38,56,82,230,37,56,230,190,37,56,105,151,37,56,220,111,37,56,62,72,37,56,143,32,37,56,208,248,36,56,0,209,36,56,31,169,36,56,46,129,36,56,44,89,36,56,26,49,36,56,247,8,36,56,196,224,35,56,128,184,35,56,44,144,35,56,199,103,35,56,82,63,35,56,204,22,35,56,54,238,
34,56,144,197,34,56,217,156,34,56,18,116,34,56,58,75,34,56,82,34,34,56,90,249,33,56,82,208,33,56,57,167,33,56,16,126,33,56,215,84,33,56,142,43,33,56,52,2,33,56,203,216,32,56,81,175,32,56,199,133,32,56,45,92,32,56,131,50,32,56,200,8,32,56,254,222,31,56,36,181,31,56,57,139,31,56,63,97,31,56,53,55,31,56,26,13,31,56,240,226,30,56,182,184,30,56,108,142,30,56,18,100,30,56,168,57,30,56,47,15,30,56,165,228,29,56,12,186,29,56,99,143,29,56,170,100,29,56,226,57,29,56,9,15,29,56,33,228,28,56,42,185,28,56,34,
142,28,56,11,99,28,56,229,55,28,56,174,12,28,56,105,225,27,56,19,182,27,56,174,138,27,56,58,95,27,56,182,51,27,56,34,8,27,56,127,220,26,56,205,176,26,56,11,133,26,56,57,89,26,56,89,45,26,56,105,1,26,56,105,213,25,56,90,169,25,56,60,125,25,56,15,81,25,56,210,36,25,56,134,248,24,56,43,204,24,56,193,159,24,56,71,115,24,56,190,70,24,56,38,26,24,56,127,237,23,56,201,192,23,56,4,148,23,56,48,103,23,56,76,58,23,56,90,13,23,56,88,224,22,56,72,179,22,56,40,134,22,56,250,88,22,56,189,43,22,56,112,254,21,56,
21,209,21,56,171,163,21,56,50,118,21,56,170,72,21,56,20,27,21,56,110,237,20,56,186,191,20,56,247,145,20,56,38,100,20,56,69,54,20,56,86,8,20,56,89,218,19,56,76,172,19,56,49,126,19,56,8,80,19,56,208,33,19,56,137,243,18,56,52,197,18,56,208,150,18,56,93,104,18,56,221,57,18,56,77,11,18,56,175,220,17,56,3,174,17,56,73,127,17,56,128,80,17,56,168,33,17,56,195,242,16,56,207,195,16,56,204,148,16,56,188,101,16,56,157,54,16,56,112,7,16,56,53,216,15,56,235,168,15,56,148,121,15,56,46,74,15,56,186,26,15,56,56,235,
14,56,168,187,14,56,9,140,14,56,93,92,14,56,163,44,14,56,219,252,13,56,4,205,13,56,32,157,13,56,46,109,13,56,46,61,13,56,32,13,13,56,4,221,12,56,218,172,12,56,163,124,12,56,93,76,12,56,10,28,12,56,169,235,11,56,58,187,11,56,190,138,11,56,52,90,11,56,156,41,11,56,247,248,10,56,67,200,10,56,131,151,10,56,180,102,10,56,216,53,10,56,239,4,10,56,248,211,9,56,243,162,9,56,225,113,9,56,194,64,9,56,149,15,9,56,91,222,8,56,19,173,8,56,190,123,8,56,91,74,8,56,235,24,8,56,110,231,7,56,228,181,7,56,76,132,7,
56,167,82,7,56,245,32,7,56,53,239,6,56,105,189,6,56,143,139,6,56,168,89,6,56,180,39,6,56,179,245,5,56,165,195,5,56,138,145,5,56,97,95,5,56,44,45,5,56,234,250,4,56,154,200,4,56,62,150,4,56,213,99,4,56],"i8",4,y.a+1024E3);
Q([95,49,4,56,220,254,3,56,76,204,3,56,176,153,3,56,7,103,3,56,80,52,3,56,141,1,3,56,190,206,2,56,225,155,2,56,248,104,2,56,3,54,2,56,0,3,2,56,241,207,1,56,213,156,1,56,173,105,1,56,120,54,1,56,55,3,1,56,233,207,0,56,143,156,0,56,40,105,0,56,181,53,0,56,53,2,0,56,82,157,255,55,33,54,255,55,215,206,254,55,117,103,254,55,250,255,253,55,102,152,253,55,186,48,253,55,245,200,252,55,24,97,252,55,35,249,251,55,21,145,251,55,239,40,251,55,176,192,250,55,90,88,250,55,235,239,249,55,100,135,249,55,197,30,249,
55,14,182,248,55,63,77,248,55,88,228,247,55,89,123,247,55,66,18,247,55,20,169,246,55,206,63,246,55,112,214,245,55,250,108,245,55,109,3,245,55,200,153,244,55,11,48,244,55,56,198,243,55,76,92,243,55,73,242,242,55,47,136,242,55,254,29,242,55,181,179,241,55,86,73,241,55,223,222,240,55,81,116,240,55,171,9,240,55,239,158,239,55,28,52,239,55,50,201,238,55,49,94,238,55,25,243,237,55,235,135,237,55,166,28,237,55,74,177,236,55,215,69,236,55,78,218,235,55,174,110,235,55,248,2,235,55,43,151,234,55,72,43,234,
55,78,191,233,55,62,83,233,55,24,231,232,55,220,122,232,55,137,14,232,55,33,162,231,55,162,53,231,55,13,201,230,55,99,92,230,55,162,239,229,55,203,130,229,55,223,21,229,55,221,168,228,55,197,59,228,55,151,206,227,55,84,97,227,55,251,243,226,55,141,134,226,55,9,25,226,55,111,171,225,55,192,61,225,55,252,207,224,55,34,98,224,55,52,244,223,55,48,134,223,55,22,24,223,55,232,169,222,55,165,59,222,55,76,205,221,55,223,94,221,55,92,240,220,55,197,129,220,55,25,19,220,55,88,164,219,55,130,53,219,55,152,198,
218,55,153,87,218,55,133,232,217,55,93,121,217,55,32,10,217,55,207,154,216,55,106,43,216,55,240,187,215,55,98,76,215,55,191,220,214,55,8,109,214,55,62,253,213,55,95,141,213,55,108,29,213,55,101,173,212,55,73,61,212,55,27,205,211,55,216,92,211,55,129,236,210,55,23,124,210,55,152,11,210,55,7,155,209,55,97,42,209,55,168,185,208,55,219,72,208,55,251,215,207,55,8,103,207,55,1,246,206,55,231,132,206,55,185,19,206,55,120,162,205,55,36,49,205,55,189,191,204,55,67,78,204,55,182,220,203,55,21,107,203,55,98,
249,202,55,156,135,202,55,195,21,202,55,215,163,201,55,217,49,201,55,200,191,200,55,164,77,200,55,109,219,199,55,36,105,199,55,201,246,198,55,91,132,198,55,218,17,198,55,72,159,197,55,163,44,197,55,235,185,196,55,34,71,196,55,70,212,195,55,88,97,195,55,89,238,194,55,71,123,194,55,35,8,194,55,237,148,193,55,166,33,193,55,76,174,192,55,225,58,192,55,100,199,191,55,214,83,191,55,54,224,190,55,132,108,190,55,193,248,189,55,236,132,189,55,6,17,189,55,15,157,188,55,6,41,188,55,236,180,187,55,193,64,187,
55,132,204,186,55,55,88,186,55,216,227,185,55,105,111,185,55,232,250,184,55,87,134,184,55,180,17,184,55,1,157,183,55,61,40,183,55,105,179,182,55,131,62,182,55,141,201,181,55,135,84,181,55,112,223,180,55,73,106,180,55,17,245,179,55,201,127,179,55,112,10,179,55,7,149,178,55,142,31,178,55,5,170,177,55,108,52,177,55,195,190,176,55,10,73,176,55,64,211,175,55,103,93,175,55,126,231,174,55,133,113,174,55,125,251,173,55,101,133,173,55,61,15,173,55,5,153,172,55,190,34,172,55,104,172,171,55,1,54,171,55,140,
191,170,55,7,73,170,55,115,210,169,55,208,91,169,55,29,229,168,55,92,110,168,55,139,247,167,55,171,128,167,55,188,9,167,55,191,146,166,55,178,27,166,55,151,164,165,55,108,45,165,55,51,182,164,55,236,62,164,55,150,199,163,55,49,80,163,55,189,216,162,55,59,97,162,55,171,233,161,55,12,114,161,55,95,250,160,55,164,130,160,55,218,10,160,55,3,147,159,55,29,27,159,55,41,163,158,55,39,43,158,55,23,179,157,55,249,58,157,55,206,194,156,55,148,74,156,55,77,210,155,55,248,89,155,55,149,225,154,55,37,105,154,
55,167,240,153,55,28,120,153,55,131,255,152,55,221,134,152,55,41,14,152,55,104,149,151,55,154,28,151,55,191,163,150,55,215,42,150,55,225,177,149,55,223,56,149,55,207,191,148,55,179,70,148,55,137,205,147,55,83,84,147,55,16,219,146,55,192,97,146,55,100,232,145,55,251,110,145,55,133,245,144,55,3,124,144,55,116,2,144,55,217,136,143,55,50,15,143,55,126,149,142,55,190,27,142,55,242,161,141,55,25,40,141,55,53,174,140,55,68,52,140,55,72,186,139,55,63,64,139,55,43,198,138,55,10,76,138,55,222,209,137,55,167,
87,137,55,99,221,136,55,20,99,136,55,185,232,135,55,83,110,135,55,225,243,134,55,100,121,134,55,219,254,133,55,71,132,133,55,168,9,133,55,253,142,132,55,72,20,132,55,135,153,131,55,187,30,131,55,228,163,130,55,3,41,130,55,22,174,129,55,30,51,129,55,28,184,128,55,15,61,128,55,238,131,127,55,168,141,126,55,78,151,125,55,223,160,124,55,91,170,123,55,193,179,122,55,19,189,121,55,81,198,120,55,121,207,119,55,142,216,118,55,142,225,117,55,121,234,116,55,81,243,115,55,20,252,114,55,196,4,114,55,95,13,113,
55,231,21,112,55,91,30,111,55,188,38,110,55,9,47,109,55,67,55,108,55,106,63,107,55,126,71,106,55,127,79,105,55,108,87,104,55,71,95,103,55,16,103,102,55,198,110,101,55,105,118,100,55,250,125,99,55,120,133,98,55,229,140,97,55,63,148,96,55,136,155,95,55,190,162,94,55,227,169,93,55,246,176,92,55,248,183,91,55,232,190,90,55,199,197,89,55,149,204,88,55,82,211,87,55,253,217,86,55,152,224,85,55,34,231,84,55,155,237,83,55,4,244,82,55,92,250,81,55,164,0,81,55,220,6,80,55,3,13,79,55,27,19,78,55,34,25,77,55,
26,31,76,55,2,37,75,55,218,42,74,55,163,48,73,55,92,54,72,55,6,60,71,55,161,65,70,55,44,71,69,55,169,76,68,55,23,82,67,55,118,87,66,55,198,92,65,55,8,98,64,55,59,103,63,55,96,108,62,55,119,113,61,55,127,118,60,55,122,123,59,55,102,128,58,55,69,133,57,55,22,138,56,55,217,142,55,55,143,147,54,55,55,152,53,55,211,156,52,55,96,161,51,55,225,165,50,55,85,170,49,55,188,174,48,55,22,179,47,55,100,183,46,55,165,187,45,55,217,191,44,55,2,196,43,55,30,200,42,55,45,204,41,55,49,208,40,55,41,212,39,55,21,216,
38,55,245,219,37,55,202,223,36,55,147,227,35,55,81,231,34,55,4,235,33,55,171,238,32,55,71,242,31,55,216,245,30,55,95,249,29,55,219,252,28,55,76,0,28,55,178,3,27,55,14,7,26,55,96,10,25,55,167,13,24,55,229,16,23,55,24,20,22,55,65,23,21,55,97,26,20,55,119,29,19,55,131,32,18,55,134,35,17,55,128,38,16,55,112,41,15,55,87,44,14,55,53,47,13,55,10,50,12,55,214,52,11,55,154,55,10,55,85,58,9,55,7,61,8,55,177,63,7,55,83,66,6,55,236,68,5,55,125,71,4,55,6,74,3,55,136,76,2,55,1,79,1,55,115,81,0,55,188,167,254,54,
129,172,252,54,56,177,250,54,225,181,248,54,123,186,246,54,8,191,244,54,134,195,242,54,247,199,240,54,90,204,238,54,176,208,236,54,249,212,234,54,53,217,232,54,101,221,230,54,136,225,228,54,159,229,226,54,171,233,224,54,170,237,222,54,158,241,220,54,135,245,218,54,100,249,216,54,55,253,214,54,255,0,213,54,188,4,211,54,111,8,209,54,25,12,207,54,184,15,205,54,78,19,203,54,218,22,201,54,93,26,199,54,216,29,197,54,73,33,195,54,178,36,193,54,18,40,191,54,107,43,189,54,187,46,187,54,4,50,185,54,70,53,183,
54,128,56,181,54,179,59,179,54,223,62,177,54,5,66,175,54,36,69,173,54,61,72,171,54,80,75,169,54,93,78,167,54,100,81,165,54,103,84,163,54,100,87,161,54,92,90,159,54,79,93,157,54,62,96,155,54,41,99,153,54,15,102,151,54,242,104,149,54,209,107,147,54,172,110,145,54,133,113,143,54,90,116,141,54,45,119,139,54,252,121,137,54,202,124,135,54,149,127,133,54,95,130,131,54,38,133,129,54,217,15,127,54,98,21,123,54,234,26,119,54,111,32,115,54,243,37,111,54,119,43,107,54,249,48,103,54,124,54,99,54,255,59,95,54,
130,65,91,54,7,71,87,54,141,76,83,54,22,82,79,54,161,87,75,54,46,93,71,54,192,98,67,54,84,104,63,54,237,109,59,54,139,115,55,54,45,121,51,54,213,126,47,54,130,132,43,54,54,138,39,54,241,143,35,54,179,149,31,54,124,155,27,54,77,161,23,54,39,167,19,54,9,173,15,54,244,178,11,54,234,184,7,54,233,190,3,54,229,137,255,53,15,150,247,53,79,162,239,53,166,174,231,53,22,187,223,53,159,199,215,53,66,212,207,53,0,225,199,53,218,237,191,53,208,250,183,53,228,7,176,53,22,21,168,53,104,34,160,53,217,47,152,53,107,
61,144,53,30,75,136,53,244,88,128,53,220,205,112,53,23,234,96,53,156,6,81,53,109,35,65,53,140,64,49,53,249,93,33,53,184,123,17,53,200,153,1,53,91,112,227,52,209,173,195,52,246,235,163,52,205,42,132,52,181,212,72,52,66,85,9,52,143,174,147,51,210,172,37,50,154,128,84,179,26,51,233,179,95,17,52,180,151,135,115,180,22,126,153,180,141,55,185,180,45,240,216,180,241,167,248,180,108,47,12,181,110,10,28,181,254,228,43,181,26,191,59,181,192,152,75,181,239,113,91,181,164,74,107,181,223,34,123,181,78,125,133,
181,238,104,141,181,78,84,149,181,109,63,157,181,75,42,165,181,230,20,173,181,62,255,180,181,81,233,188,181,32,211,196,181,169,188,204,181,235,165,212,181,230,142,220,181,152,119,228,181,2,96,236,181,33,72,244,181,245,47,252,181,191,11,2,182,93,255,5,182,213,242,9,182,37,230,13,182,78,217,17,182,79,204,21,182,40,191,25,182,216,177,29,182,94,164,33,182,188,150,37,182,239,136,41,182,247,122,45,182,213,108,49,182,136,94,53,182,15,80,57,182,106,65,61,182,152,50,65,182,154,35,69,182,110,20,73,182,20,5,
77,182,140,245,80,182,214,229,84,182,241,213,88,182,220,197,92,182,151,181,96,182,34,165,100,182,125,148,104,182,166,131,108,182,158,114,112,182,100,97,116,182,248,79,120,182,89,62,124,182,67,22,128,182,65,13,130,182,36,4,132,182,237,250,133,182,155,241,135,182,47,232,137,182,168,222,139,182,6,213,141,182,73,203,143,182,113,193,145,182,125,183,147,182,108,173,149,182,64,163,151,182,248,152,153,182,147,142,155,182,18,132,157,182,115,121,159,182,184,110,161,182,223,99,163,182,233,88,165,182,213,77,
167,182,163,66,169,182,83,55,171,182,229,43,173,182,88,32,175,182,172,20,177,182,226,8,179,182,248,252,180,182,239,240,182,182,199,228,184,182,127,216,186,182,22,204,188,182,142,191,190,182,229,178,192,182,28,166,194,182,50,153,196,182,39,140,198,182,250,126,200,182,172,113,202,182,61,100,204,182,172,86,206,182,249,72,208,182,35,59,210,182,44,45,212,182,17,31,214,182,212,16,216,182,116,2,218,182,240,243,219,182,73,229,221,182,127,214,223,182,144,199,225,182,126,184,227,182,71,169,229,182,236,153,
231,182,108,138,233,182,200,122,235,182,254,106,237,182,15,91,239,182,250,74,241,182,192,58,243,182,96,42,245,182,218,25,247,182,45,9,249,182,90,248,250,182,97,231,252,182,64,214,254,182,124,98,0,183,197,89,1,183,250,80,2,183,27,72,3,183,40,63,4,183,33,54,5,183,5,45,6,183,214,35,7,183,146,26,8,183,58,17,9,183,205,7,10,183,76,254,10,183,181,244,11,183,10,235,12,183,74,225,13,183,117,215,14,183,139,205,15,183,139,195,16,183,118,185,17,183,76,175,18,183,12,165,19,183,182,154,20,183,75,144,21,183,202,
133,22,183,51,123,23,183,133,112,24,183,194,101,25,183,232,90,26,183,248,79,27,183,242,68,28,183,213,57,29,183,161,46,30,183,86,35,31,183,245,23,32,183,125,12,33,183,237,0,34,183,71,245,34,183,137,233,35,183,180,221,36,183,199,209,37,183,195,197,38,183,167,185,39,183,116,173,40,183,40,161,41,183,197,148,42,183,73,136,43,183,181,123,44,183,10,111,45,183,69,98,46,183,105,85,47,183,115,72,48,183,101,59,49,183,63,46,50,183,255,32,51,183,167,19,52,183,53,6,53,183,171,248,53,183,7,235,54,183,74,221,55,
183,115,207,56,183,131,193,57,183,121,179,58,183,85,165,59,183,24,151,60,183,193,136,61,183,79,122,62,183,196,107,63,183,30,93,64,183,94,78,65,183,131,63,66,183,142,48,67,183,127,33,68,183,84,18,69,183,15,3,70,183,175,243,70,183,52,228,71,183,158,212,72,183,237,196,73,183,32,181,74,183,56,165,75,183,52,149,76,183,21,133,77,183,218,116,78,183,132,100,79,183,17,84,80,183,131,67,81,183,216,50,82,183,17,34,83,183,46,17,84,183,47,0,85,183,19,239,85,183,218,221,86,183,133,204,87,183,19,187,88,183,133,169,
89,183,217,151,90,183,16,134,91,183,42,116,92,183,39,98,93,183,7,80,94,183,201,61,95,183,110,43,96,183,245,24,97,183,94,6,98,183,169,243,98,183,215,224,99,183,230,205,100,183,216,186,101,183,171,167,102,183,96,148,103,183,246,128,104,183,110,109,105,183,200,89,106,183,2,70,107,183,30,50,108,183,27,30,109,183,250,9,110,183,185,245,110,183,89,225,111,183,217,204,112,183,59,184,113,183,124,163,114,183,159,142,115,183,161,121,116,183,132,100,117,183,72,79,118,183,235,57,119,183,110,36,120,183,209,14,
121,183,20,249,121,183,55,227,122,183,57,205,123,183,27,183,124,183,220,160,125,183,124,138,126,183,252,115,127,183,173,46,128,183,76,163,128,183,219,23,129,183,89,140,129,183,198,0,130,183,35,117,130,183,110,233,130,183,170,93,131,183,212,209,131,183,237,69,132,183,246,185,132,183,237,45,133,183,212,161,133,183,170,21,134,183,110,137,134,183,33,253,134,183,196,112,135,183,85,228,135,183,212,87,136,183,67,203,136,183,160,62,137,183,235,177,137,183,37,37,138,183,78,152,138,183,101,11,139,183,106,126,
139,183,94,241,139,183,64,100,140,183,17,215,140,183,207,73,141,183,124,188,141,183,23,47,142,183,160,161,142,183,23,20,143,183,124,134,143,183,207,248,143,183,16,107,144,183,63,221,144,183,91,79,145,183,101,193,145,183,93,51,146,183,67,165,146,183,22,23,147,183,215,136,147,183,134,250,147,183,33,108,148,183,171,221,148,183,33,79,149,183,134,192,149,183,215,49,150,183,21,163,150,183,65,20,151,183,90,133,151,183,96,246,151,183,84,103,152,183,52,216,152,183,1,73,153,183,187,185,153,183,98,42,154,183,
246,154,154,183,119,11,155,183,228,123,155,183,62,236,155,183,133,92,156,183,184,204,156,183,217,60,157,183,229,172,157,183,222,28,158,183,196,140,158,183,150,252,158,183,84,108,159,183,254,219,159,183,149,75,160,183,24,187,160,183,135,42,161,183,227,153,161,183,42,9,162,183,94,120,162,183,125,231,162,183,137,86,163,183,128,197,163,183,99,52,164,183,50,163,164,183,237,17,165,183,148,128,165,183,38,239,165,183,164,93,166,183,13,204,166,183,98,58,167,183,163,168,167,183,207,22,168,183,231,132,168,183,
233,242,168,183,216,96,169,183,177,206,169,183,118,60,170,183,38,170,170,183,193,23,171,183,71,133,171,183,184,242,171,183,21,96,172,183,92,205,172,183,142,58,173,183,171,167,173,183,179,20,174,183,166,129,174,183,132,238,174,183,76,91,175,183,255,199,175,183,157,52,176,183,37,161,176,183,152,13,177,183,245,121,177,183,61,230,177,183,111,82,178,183,140,190,178,183,147,42,179,183,132,150,179,183,95,2,180,183,37,110,180,183,213,217,180,183,111,69,181,183,243,176,181,183,97,28,182,183,185,135,182,183,
251,242,182,183,39,94,183,183,61,201,183,183,60,52,184,183,38,159,184,183,249,9,185,183,182,116,185,183,93,223,185,183,237,73,186,183,102,180,186,183,202,30,187,183,22,137,187,183,77,243,187,183,108,93,188,183,117,199,188,183,103,49,189,183,67,155,189,183,8,5,190,183,182,110,190,183,77,216,190,183,205,65,191,183,54,171,191,183,137,20,192,183,196,125,192,183,232,230,192,183,245,79,193,183,235,184,193,183,202,33,194,183,146,138,194,183,66,243,194,183,219,91,195,183,93,196,195,183,199,44,196,183,26,
149,196,183,86,253,196,183,121,101,197,183,134,205,197,183,123,53,198,183,88,157,198,183,29,5,199,183,203,108,199,183,97,212,199,183,223,59,200,183,69,163,200,183,148,10,201,183,202,113,201,183,233,216,201,183,239,63,202,183,222,166,202,183,180,13,203,183,114,116,203,183,25,219,203,183,167,65,204,183,28,168,204,183,122,14,205,183,191,116,205,183,235,218,205,183,0,65,206,183,251,166,206,183,223,12,207,183,170,114,207,183,92,216,207,183,246,61,208,183,119,163,208,183,223,8,209,183,46,110,209,183,101,
211,209,183,131,56,210,183,136,157,210,183,117,2,211,183,72,103,211,183,2,204,211,183,164,48,212,183,44,149,212,183,155,249,212,183,241,93,213,183,46,194,213,183,82,38,214,183,93,138,214,183,78,238,214,183,38,82,215,183,228,181,215,183,137,25,216,183,21,125,216,183,135,224,216,183,224,67,217,183,31,167,217,183,69,10,218,183,81,109,218,183,67,208,218,183,27,51,219,183,218,149,219,183,127,248,219,183,10,91,220,183,124,189,220,183,211,31,221,183,17,130,221,183,52,228,221,183,62,70,222,183,45,168,222,
183,2,10,223,183,189,107,223,183,94,205,223,183,229,46,224,183,82,144,224,183,164,241,224,183,220,82,225,183,249,179,225,183,253,20,226,183,229,117,226,183,180,214,226,183,103,55,227,183,0,152,227,183,127,248,227,183,227,88,228,183,44,185,228,183,91,25,229,183,111,121,229,183,104,217,229,183,70,57,230,183,9,153,230,183,178,248,230,183,63,88,231,183,178,183,231,183,10,23,232,183,70,118,232,183,104,213,232,183,110,52,233,183,89,147,233,183,41,242,233,183,222,80,234,183,120,175,234,183,246,13,235,183,
89,108,235,183,160,202,235,183,205,40,236,183,221,134,236,183,210,228,236,183,172,66,237,183,106,160,237,183,13,254,237,183,148,91,238,183,255,184,238,183,78,22,239,183,130,115,239,183,154,208,239,183,151,45,240,183,119,138,240,183,59,231,240,183,228,67,241,183,113,160,241,183,225,252,241,183,54,89,242,183,111,181,242,183,139,17,243,183,139,109,243,183,112,201,243,183,56,37,244,183,227,128,244,183,115,220,244,183,230,55,245,183,61,147,245,183,119,238,245,183,149,73,246,183,151,164,246,183,124,255,
246,183,68,90,247,183,240,180,247,183,128,15,248,183,242,105,248,183,72,196,248,183,130,30,249,183,159,120,249,183,158,210,249,183,130,44,250,183,72,134,250,183,241,223,250,183,126,57,251,183,237,146,251,183,64,236,251,183,118,69,252,183,142,158,252,183,138,247,252,183,104,80,253,183,41,169,253,183,205,1,254,183,84,90,254,183,189,178,254,183,10,11,255,183,57,99,255,183,74,187,255,183,159,9,0,184,139,53,0,184,103,97,0,184,53,141,0,184,244,184,0,184,165,228,0,184,70,16,1,184,217,59,1,184,93,103,1,184,
210,146,1,184,57,190,1,184,144,233,1,184,217,20,2,184,18,64,2,184,61,107,2,184,88,150,2,184,101,193,2,184,99,236,2,184,82,23,3,184,50,66,3,184,2,109,3,184,196,151,3,184,119,194,3,184,26,237,3,184,175,23,4,184,52,66,4,184,170,108,4,184,17,151,4,184,105,193,4,184,178,235,4,184,236,21,5,184,22,64,5,184,49,106,5,184,61,148,5,184,58,190,5,184,39,232,5,184,6,18,6,184,212,59,6,184,148,101,6,184,68,143,6,184,229,184,6,184,118,226,6,184,248,11,7,184,107,53,7,184,206,94,7,184,34,136,7,184,103,177,7,184,156,
218,7,184,193,3,8,184,215,44,8,184,221,85,8,184,212,126,8,184,188,167,8,184,148,208,8,184,92,249,8,184,21,34,9,184,190,74,9,184,87,115,9,184,225,155,9,184,91,196,9,184,198,236,9,184,33,21,10,184,108,61,10,184,167,101,10,184,211,141,10,184,239,181,10,184,251,221,10,184,248,5,11,184,229,45,11,184,193,85,11,184,143,125,11,184,76,165,11,184,249,204,11,184,151,244,11,184,36,28,12,184,162,67,12,184,16,107,12,184,110,146,12,184,188,185,12,184,250,224,12,184,40,8,13,184,71,47,13,184,85,86,13,184,83,125,13,
184,65,164,13,184,31,203,13,184,237,241,13,184,171,24,14,184,89,63,14,184,247,101,14,184,132,140,14,184,2,179,14,184,111,217,14,184,205,255,14,184,26,38,15,184,87,76,15,184,131,114,15,184,160,152,15,184,172,190,15,184,168,228,15,184,148,10,16,184,111,48,16,184,59,86,16,184,246,123,16,184,160,161,16,184,59,199,16,184,196,236,16,184,62,18,17,184,167,55,17,184,0,93,17,184,73,130,17,184,129,167,17,184,168,204,17,184,192,241,17,184,198,22,18,184,189,59,18,184,162,96,18,184,120,133,18,184,60,170,18,184,
241,206,18,184,148,243,18,184,40,24,19,184,170,60,19,184,28,97,19,184,126,133,19,184,207,169,19,184,15,206,19,184,62,242,19,184,93,22,20,184,108,58,20,184,105,94,20,184,86,130,20,184,51,166,20,184,254,201,20,184,185,237,20,184,99,17,21,184,253,52,21,184,133,88,21,184,253,123,21,184,100,159,21,184,186,194,21,184,0,230,21,184,52,9,22,184,88,44,22,184,107,79,22,184,109,114,22,184,94,149,22,184,62,184,22,184,13,219,22,184,204,253,22,184,121,32,23,184,22,67,23,184,161,101,23,184,28,136,23,184,134,170,
23,184,222,204,23,184,38,239,23,184,92,17,24,184,130,51,24,184,150,85,24,184,154,119,24,184,140,153,24,184,110,187,24,184,62,221,24,184,253,254,24,184,171,32,25,184,72,66,25,184,211,99,25,184,78,133,25,184,183,166,25,184,15,200,25,184,86,233,25,184,140,10,26,184,177,43,26,184,196,76,26,184,198,109,26,184,183,142,26,184,150,175,26,184,100,208,26,184,33,241,26,184,205,17,27,184,103,50,27,184,240,82,27,184,104,115,27,184,206,147,27,184,35,180,27,184,103,212,27,184,153,244,27,184,186,20,28,184,201,52,
28,184,199,84,28,184,180,116,28,184,143,148,28,184,88,180,28,184,17,212,28,184,183,243,28,184,76,19,29,184,208,50,29,184,66,82,29,184,163,113,29,184,242,144,29,184,47,176,29,184,91,207,29,184,118,238,29,184,126,13,30,184,118,44,30,184,91,75,30,184,47,106,30,184,242,136,30,184,162,167,30,184,65,198,30,184,207,228,30,184,74,3,31,184,181,33,31,184,13,64,31,184,83,94,31,184,136,124,31,184,172,154,31,184,189,184,31,184,189,214,31,184,171,244,31,184,135,18,32,184,81,48,32,184,10,78,32,184,177,107,32,184,
70,137,32,184,201,166,32,184,58,196,32,184,154,225,32,184,231,254,32,184,35,28,33,184,77,57,33,184,101,86,33,184,107,115,33,184,95,144,33,184,65,173,33,184,18,202,33,184,208,230,33,184,124,3,34,184,23,32,34,184,159,60,34,184,22,89,34,184,122,117,34,184,205,145,34,184,13,174,34,184,60,202,34,184,88,230,34,184,99,2,35,184,91,30,35,184,65,58,35,184,22,86,35,184,216,113,35,184,136,141,35,184,38,169,35,184,178,196,35,184,43,224,35,184,147,251,35,184,232,22,36,184,44,50,36,184,93,77,36,184,124,104,36,184,
137,131,36,184,131,158,36,184,108,185,36,184,66,212,36,184,6,239,36,184,184,9,37,184,87,36,37,184,228,62,37,184,95,89,37,184,200,115,37,184,31,142,37,184,99,168,37,184,149,194,37,184,180,220,37,184,194,246,37,184,189,16,38,184,165,42,38,184,124,68,38,184,64,94,38,184,241,119,38,184,145,145,38,184,30,171,38,184,152,196,38,184,0,222,38,184,86,247,38,184,153,16,39,184,202,41,39,184,233,66,39,184,245,91,39,184,238,116,39,184,213,141,39,184,170,166,39,184,108,191,39,184,28,216,39,184,185,240,39,184,68,
9,40,184,188,33,40,184,34,58,40,184,117,82,40,184,182,106,40,184,228,130,40,184,0,155,40,184,9,179,40,184,255,202,40,184,227,226,40,184,181,250,40,184,115,18,41,184,32,42,41,184,185,65,41,184,64,89,41,184,180,112,41,184,22,136,41,184,101,159,41,184,162,182,41,184,203,205,41,184,227,228,41,184,231,251,41,184,217,18,42,184,184,41,42,184,132,64,42,184,62,87,42,184,229,109,42,184,121,132,42,184,251,154,42,184,106,177,42,184,198,199,42,184,15,222,42,184,70,244,42,184,106,10,43,184,123,32,43,184,121,54,
43,184,101,76,43,184,62,98,43,184,4,120,43,184,183,141,43,184,87,163,43,184,229,184,43,184,96,206,43,184,200,227,43,184,29,249,43,184,95,14,44,184,142,35,44,184,171,56,44,184,180,77,44,184,171,98,44,184,143,119,44,184,96,140,44,184,30,161,44,184,201,181,44,184,98,202,44,184,231,222,44,184,90,243,44,184,185,7,45,184,6,28,45,184,63,48,45,184,102,68,45,184,122,88,45,184,123,108,45,184,105,128,45,184,67,148,45,184,11,168,45,184,192,187,45,184,98,207,45,184,241,226,45,184,109,246,45,184,214,9,46,184,44,
29,46,184,111,48,46,184,158,67,46,184,187,86,46,184,197,105,46,184,188,124,46,184,159,143,46,184,112,162,46,184,45,181,46,184,216,199,46,184,111,218,46,184,243,236,46,184,101,255,46,184,195,17,47,184,14,36,47,184,69,54,47,184,106,72,47,184,124,90,47,184,122,108,47,184,102,126,47,184,62,144,47,184,3,162,47,184,181,179,47,184,84,197,47,184,223,214,47,184,88,232,47,184,189,249,47,184,15,11,48,184,78,28,48,184,122,45,48,184,147,62,48,184,152,79,48,184,138,96,48,184,105,113,48,184,53,130,48,184,237,146,
48,184,147,163,48,184,37,180,48,184,164,196,48,184,15,213,48,184,104,229,48,184,173,245,48,184,222,5,49,184,253,21,49,184,8,38,49,184,0,54,49,184,229,69,49,184,183,85,49,184,117,101,49,184,32,117,49,184,184,132,49,184,60,148,49,184,173,163,49,184,11,179,49,184,85,194,49,184,140,209,49,184,176,224,49,184,193,239,49,184,190,254,49,184,168,13,50,184,126,28,50,184,65,43,50,184,241,57,50,184,141,72,50,184,23,87,50,184,140,101,50,184,239,115,50,184,62,130,50,184,121,144,50,184,162,158,50,184,182,172,50,
184,184,186,50,184,166,200,50,184,129,214,50,184,72,228,50,184,252,241,50,184,157,255,50,184,42,13,51,184,163,26,51,184,10,40,51,184,92,53,51,184,156,66,51,184,200,79,51,184,225,92,51,184,230,105,51,184,215,118,51,184,182,131,51,184,129,144,51,184,56,157,51,184,220,169,51,184,108,182,51,184,233,194,51,184,83,207,51,184,169,219,51,184,236,231,51,184,27,244,51,184,55,0,52,184,63,12,52,184,52,24,52,184,21,36,52,184,227,47,52,184,157,59,52,184,68,71,52,184,215,82,52,184,87,94,52,184,195,105,52,184,28,
117,52,184,97,128,52,184,147,139,52,184,177,150,52,184,188,161,52,184,179,172,52,184,151,183,52,184,103,194,52,184,36,205,52,184,205,215,52,184,98,226,52,184,228,236,52,184,83,247,52,184,174,1,53,184,245,11,53,184,41,22,53,184,74,32,53,184,87,42,53,184,80,52,53,184,53,62,53,184,8,72,53,184,198,81,53,184,113,91,53,184,9,101,53,184,141,110,53,184,253,119,53,184,90,129,53,184,163,138,53,184,217,147,53,184,251,156,53,184,9,166,53,184,4,175,53,184,235,183,53,184,191,192,53,184,127,201,53,184,44,210,53,
184,197,218,53,184,74,227,53,184,188,235,53,184,26,244,53,184,101,252,53,184,156,4,54,184,191,12,54,184,207,20,54,184,203,28,54,184,180,36,54,184,137,44,54,184,74,52,54,184,248,59,54,184,146,67,54,184,25,75,54,184,140,82,54,184,235,89,54,184,55,97,54,184,111,104,54,184,148,111,54,184,165,118,54,184,162,125,54,184,140,132,54,184,98,139,54,184,36,146,54,184,211,152,54,184,110,159,54,184,246,165,54,184,106,172,54,184,202,178,54,184,23,185,54,184,80,191,54,184,117,197,54,184,135,203,54,184,133,209,54,
184,112,215,54,184,71,221,54,184,10,227,54,184,186,232,54,184,86,238,54,184,222,243,54,184,83,249,54,184,180,254,54,184,1,4,55,184,59,9,55,184,98,14,55,184,116,19,55,184,115,24,55,184,95,29,55,184,54,34,55,184,250,38,55,184,171,43,55,184,72,48,55,184,209,52,55,184,70,57,55,184,168,61,55,184,246,65,55,184,49,70,55,184,88,74,55,184,107,78,55,184,107,82,55,184,87,86,55,184,48,90,55,184,245,93,55,184,166,97,55,184,67,101,55,184,205,104,55,184,68,108,55,184,166,111,55,184,245,114,55,184,49,118,55,184,
88,121,55,184,109,124,55,184,109,127,55,184,90,130,55,184,51,133,55,184,249,135,55,184,171,138,55,184,73,141,55,184,212,143,55,184,75,146,55,184,175,148,55,184,255,150,55,184,59,153,55,184,100,155,55,184,121,157,55,184,122,159,55,184,104,161,55,184,66,163,55,184,8,165,55,184,187,166,55,184,91,168,55,184,230,169,55,184,95,171,55,184,195,172,55,184,20,174,55,184,81,175,55,184,123,176,55,184,145,177,55,184,147,178,55,184,130,179,55,184,94,180,55,184,37,181,55,184,217,181,55,184,122,182,55,184,7,183,
55,184,128,183,55,184,230,183,55,184,56,184,55,184,118,184,55,184,161,184,55,184,185,184,55,184,188,184,55,184,173,184,55,184,137,184,55,184,82,184,55,184,8,184,55,184,170,183,55,184,56,183,55,184,179,182,55,184,26,182,55,184,110,181,55,184,174,180,55,184,218,179,55,184,243,178,55,184,248,177,55,184,234,176,55,184,201,175,55,184,147,174,55,184,75,173,55,184,238,171,55,184,126,170,55,184,251,168,55,184,100,167,55,184,185,165,55,184,251,163,55,184,42,162,55,184,69,160,55,184,76,158,55,184,64,156,55,
184,32,154,55,184,237,151,55,184,167,149,55,184,76,147,55,184,223,144,55,184,94,142,55,184,201,139,55,184,33,137,55,184,101,134,55,184,150,131,55,184,179,128,55,184,189,125,55,184,179,122,55,184,150,119,55,184,102,116,55,184,34,113,55,184,202,109,55,184,95,106,55,184,225,102,55,184,79,99,55,184,169,95,55,184,240,91,55,184,36,88,55,184,68,84,55,184,81,80,55,184,75,76,55,184,49,72,55,184,3,68,55,184,194,63,55,184,110,59,55,184,6,55,55,184,139,50,55,184,252,45,55,184,90,41,55,184,165,36,55,184,220,31,
55,184,0,27,55,184,16,22,55,184,13,17,55,184,247,11,55,184,205,6,55,184,144,1,55,184,63,252,54,184,220,246,54,184,100,241,54,184,218,235,54,184,60,230,54,184,138,224,54,184,198,218,54,184,238,212,54,184,2,207,54,184,3,201,54,184,241,194,54,184,204,188,54,184,147,182,54,184,71,176,54,184,232,169,54,184,117,163,54,184,239,156,54,184,86,150,54,184,169,143,54,184,233,136,54,184,22,130,54,184,48,123,54,184,54,116,54,184,41,109,54,184,9,102,54,184,213,94,54,184,143,87,54,184,53,80,54,184,199,72,54,184,
71,65,54,184,179,57,54,184,12,50,54,184,82,42,54,184,132,34,54,184,164,26,54,184,176,18,54,184,168,10,54,184,142,2,54,184,97,250,53,184,32,242,53,184,204,233,53,184,101,225,53,184,235,216,53,184,93,208,53,184,189,199,53,184,9,191,53,184,66,182,53,184,104,173,53,184,123,164,53,184,122,155,53,184,103,146,53,184,64,137,53,184,6,128,53,184,185,118,53,184,89,109,53,184,230,99,53,184,96,90,53,184,199,80,53,184,26,71,53,184,91,61,53,184,136,51,53,184,163,41,53,184,170,31,53,184,158,21,53,184,128,11,53,184,
78,1,53,184,9,247,52,184,177,236,52,184,70,226,52,184,200,215,52,184,55,205,52,184,147,194,52,184,220,183,52,184,18,173,52,184,53,162,52,184,69,151,52,184,66,140,52,184,44,129,52,184,3,118,52,184,199,106,52,184,120,95,52,184,23,84,52,184,162,72,52,184,26,61,52,184,128,49,52,184,210,37,52,184,18,26,52,184,62,14,52,184,88,2,52,184,95,246,51,184,83,234,51,184,52,222,51,184,2,210,51,184,190,197,51,184,102,185,51,184,252,172,51,184,127,160,51,184,239,147,51,184,76,135,51,184,150,122,51,184,206,109,51,
184,242,96,51,184,4,84,51,184,3,71,51,184,240,57,51,184,201,44,51,184,144,31,51,184,68,18,51,184,229,4,51,184,116,247,50,184,239,233,50,184,88,220,50,184,175,206,50,184,242,192,50,184,35,179,50,184,65,165,50,184,76,151,50,184,69,137,50,184,43,123,50,184,254,108,50,184,191,94,50,184,109,80,50,184,9,66,50,184,145,51,50,184,7,37,50,184,107,22,50,184,188,7,50,184,250,248,49,184,37,234,49,184,62,219,49,184,69,204,49,184,57,189,49,184,26,174,49,184,232,158,49,184,165,143,49,184,78,128,49,184,229,112,49,
184,106,97,49,184,220,81,49,184,59,66,49,184,136,50,49,184,194,34,49,184,234,18,49,184,0,3,49,184,3,243,48,184,243,226,48,184,209,210,48,184,157,194,48,184,86,178,48,184,253,161,48,184,145,145,48,184,19,129,48,184,130,112,48,184,223,95,48,184,42,79,48,184,98,62,48,184,136,45,48,184,156,28,48,184,157,11,48,184,140,250,47,184,104,233,47,184,50,216,47,184,234,198,47,184,144,181,47,184,35,164,47,184,164,146,47,184,19,129,47,184,111,111,47,184,185,93,47,184,241,75,47,184,23,58,47,184,42,40,47,184,43,22,
47,184,26,4,47,184,247,241,46,184,193,223,46,184,121,205,46,184,32,187,46,184,179,168,46,184,53,150,46,184,165,131,46,184,2,113,46,184,78,94,46,184,135,75,46,184,174,56,46,184,195,37,46,184,198,18,46,184,183,255,45,184,149,236,45,184,98,217,45,184,29,198,45,184,197,178,45,184,92,159,45,184,224,139,45,184,83,120,45,184,179,100,45,184,1,81,45,184,62,61,45,184,104,41,45,184,129,21,45,184,135,1,45,184,124,237,44,184,95,217,44,184,47,197,44,184,238,176,44,184,155,156,44,184,54,136,44,184,191,115,44,184,
54,95,44,184,155,74,44,184,239,53,44,184,49,33,44,184,96,12,44,184,126,247,43,184,138,226,43,184,133,205,43,184,109,184,43,184,68,163,43,184,9,142,43,184,188,120,43,184,94,99,43,184,237,77,43,184,107,56,43,184,216,34,43,184,50,13,43,184,123,247,42,184,178,225,42,184,216,203,42,184,235,181,42,184,237,159,42,184,222,137,42,184,189,115,42,184,138,93,42,184,70,71,42,184,240,48,42,184,136,26,42,184,15,4,42,184,132,237,41,184,232,214,41,184,58,192,41,184,122,169,41,184,169,146,41,184,199,123,41,184,211,
100,41,184,206,77,41,184,183,54,41,184,142,31,41,184,84,8,41,184,9,241,40,184,172,217,40,184,62,194,40,184,191,170,40,184,46,147,40,184,139,123,40,184,216,99,40,184,18,76,40,184,60,52,40,184,84,28,40,184,91,4,40,184,80,236,39,184,53,212,39,184,8,188,39,184,201,163,39,184,122,139,39,184,25,115,39,184,166,90,39,184,35,66,39,184,142,41,39,184,233,16,39,184,49,248,38,184,105,223,38,184,144,198,38,184,165,173,38,184,169,148,38,184,157,123,38,184,126,98,38,184,79,73,38,184,15,48,38,184,190,22,38,184,91,
253,37,184,232,227,37,184,99,202,37,184,206,176,37,184,39,151,37,184,111,125,37,184,167,99,37,184,205,73,37,184,226,47,37,184,231,21,37,184,218,251,36,184,188,225,36,184,142,199,36,184,79,173,36,184,254,146,36,184,157,120,36,184,43,94,36,184,168,67,36,184,20,41,36,184,111,14,36,184,186,243,35,184,244,216,35,184,28,190,35,184,52,163,35,184,60,136,35,184,50,109,35,184,24,82,35,184,237,54,35,184,177,27,35,184,101,0,35,184,8,229,34,184,154,201,34,184,27,174,34,184,140,146,34,184,236,118,34,184,60,91,
34,184,123,63,34,184,169,35,34,184,198,7,34,184,212,235,33,184,208,207,33,184,188,179,33,184,151,151,33,184,98,123,33,184,28,95,33,184,198,66,33,184,96,38,33,184,232,9,33,184,97,237,32,184,201,208,32,184,32,180,32,184,103,151,32,184,158,122,32,184,196,93,32,184,218,64,32,184,223,35,32,184,213,6,32,184,185,233,31,184,142,204,31,184,82,175,31,184,6,146,31,184,169,116,31,184,60,87,31,184,191,57,31,184,50,28,31,184,149,254,30,184,231,224,30,184,41,195,30,184,91,165,30,184,124,135,30,184,142,105,30,184,
143,75,30,184,128,45,30,184,98,15,30,184,51,241,29,184,243,210,29,184,164,180,29,184,69,150,29,184,214,119,29,184,86,89,29,184,199,58,29,184,40,28,29,184,120,253,28,184,185,222,28,184,233,191,28,184,10,161,28,184,27,130,28,184,28,99,28,184,13,68,28,184,238,36,28,184,191,5,28,184,128,230,27,184,49,199,27,184,211,167,27,184,101,136,27,184,231,104,27,184,89,73,27,184,187,41,27,184,14,10,27,184,81,234,26,184,132,202,26,184,167,170,26,184,187,138,26,184,191,106,26,184,179,74,26,184,152,42,26,184,109,10,
26,184,50,234,25,184,232,201,25,184,142,169,25,184,37,137,25,184,172,104,25,184,35,72,25,184,139,39,25,184,228,6,25,184,45,230,24,184,102,197,24,184,144,164,24,184,170,131,24,184,181,98,24,184,177,65,24,184,157,32,24,184,121,255,23,184,71,222,23,184,5,189,23,184,179,155,23,184,83,122,23,184,226,88,23,184,99,55,23,184,212,21,23,184,54,244,22,184,137,210,22,184,205,176,22,184,1,143,22,184,38,109,22,184,60,75,22,184,66,41,22,184,58,7,22,184,34,229,21,184,251,194,21,184,197,160,21,184,128,126,21,184,
44,92,21,184,201,57,21,184,86,23,21,184,213,244,20,184,69,210,20,184,165,175,20,184,247,140,20,184,57,106,20,184,109,71,20,184,146,36,20,184,167,1,20,184,174,222,19,184,166,187,19,184,143,152,19,184,105,117,19,184,52,82,19,184,241,46,19,184,158,11,19,184,61,232,18,184,205,196,18,184,78,161,18,184,193,125,18,184,37,90,18,184,122,54,18,184,192,18,18,184,248,238,17,184,32,203,17,184,59,167,17,184,70,131,17,184,67,95,17,184,50,59,17,184,17,23,17,184,226,242,16,184,165,206,16,184,89,170,16,184,255,133,
16,184,150,97,16,184,30,61,16,184,152,24,16,184,4,244,15,184,97,207,15,184,176,170,15,184,240,133,15,184,34,97,15,184,69,60,15,184,90,23,15,184,97,242,14,184,89,205,14,184,68,168,14,184,31,131,14,184,237,93,14,184,172,56,14,184,93,19,14,184,0,238,13,184,149,200,13,184,27,163,13,184,147,125,13,184,253,87,13,184,89,50,13,184,167,12,13,184,230,230,12,184,24,193,12,184,59,155,12,184,81,117,12,184,88,79,12,184,82,41,12,184,61,3,12,184,26,221,11,184,234,182,11,184,171,144,11,184,94,106,11,184,4,68,11,184,
156,29,11,184,37,247,10,184,161,208,10,184,15,170,10,184,111,131,10,184,194,92,10,184,6,54,10,184,61,15,10,184,102,232,9,184,129,193,9,184,143,154,9,184,143,115,9,184,129,76,9,184,101,37,9,184,60,254,8,184,5,215,8,184,193,175,8,184,111,136,8,184,15,97,8,184,162,57,8,184,39,18,8,184,158,234,7,184,8,195,7,184,101,155,7,184,180,115,7,184,246,75,7,184,42,36,7,184,81,252,6,184,106,212,6,184,118,172,6,184,117,132,6,184,102,92,6,184,74,52,6,184,32,12,6,184,234,227,5,184,166,187,5,184,84,147,5,184,246,106,
5,184,138,66,5,184,17,26,5,184,139,241,4,184,247,200,4,184,87,160,4,184,169,119,4,184,238,78,4,184,39,38,4,184,82,253,3,184,111,212,3,184,128,171,3,184,132,130,3,184,123,89,3,184,101,48,3,184,66,7,3,184,18,222,2,184,213,180,2,184,139,139,2,184,52,98,2,184,208,56,2,184,95,15,2,184,226,229,1,184,88,188,1,184,192,146,1,184,28,105,1,184,108,63,1,184,174,21,1,184,228,235,0,184,13,194,0,184,42,152,0,184,57,110,0,184,60,68,0,184,51,26,0,184,57,224,255,183,243,139,255,183,149,55,255,183,29,227,254,183,140,
142,254,183,225,57,254,183,30,229,253,183,66,144,253,183,77,59,253,183,63,230,252,183,24,145,252,183,216,59,252,183,128,230,251,183,14,145,251,183,132,59,251,183,226,229,250,183,38,144,250,183,82,58,250,183,102,228,249,183,97,142,249,183,67,56,249,183,13,226,248,183,191,139,248,183,88,53,248,183,216,222,247,183,65,136,247,183,145,49,247,183,201,218,246,183,233,131,246,183,241,44,246,183,224,213,245,183,184,126,245,183,119,39,245,183,31,208,244,183,174,120,244,183,38,33,244,183,133,201,243,183,205,
113,243,183,253,25,243,183,22,194,242,183,22,106,242,183,255,17,242,183,208,185,241,183,138,97,241,183,44,9,241,183,182,176,240,183,42,88,240,183,133,255,239,183,201,166,239,183,246,77,239,183,11,245,238,183,10,156,238,183,241,66,238,183,192,233,237,183,121,144,237,183,26,55,237,183,164,221,236,183,24,132,236,183,116,42,236,183,185,208,235,183,231,118,235,183,255,28,235,183,255,194,234,183,233,104,234,183,188,14,234,183,120,180,233,183,29,90,233,183,172,255,232,183,36,165,232,183,134,74,232,183,209,
239,231,183,5,149,231,183,36,58,231,183,43,223,230,183,28,132,230,183,247,40,230,183,188,205,229,183,106,114,229,183,3,23,229,183,132,187,228,183,240,95,228,183,70,4,228,183,134,168,227,183,175,76,227,183,195,240,226,183,193,148,226,183,168,56,226,183,122,220,225,183,55,128,225,183,221,35,225,183,110,199,224,183,232,106,224,183,78,14,224,183,157,177,223,183,215,84,223,183,252,247,222,183,11,155,222,183,5,62,222,183,233,224,221,183,183,131,221,183,113,38,221,183,21,201,220,183,164,107,220,183,30,14,
220,183,130,176,219,183,210,82,219,183,12,245,218,183,49,151,218,183,66,57,218,183,61,219,217,183,35,125,217,183,245,30,217,183,178,192,216,183,89,98,216,183,237,3,216,183,107,165,215,183,213,70,215,183,42,232,214,183,106,137,214,183,150,42,214,183,174,203,213,183,177,108,213,183,159,13,213,183,121,174,212,183,63,79,212,183,241,239,211,183,142,144,211,183,23,49,211,183,140,209,210,183,237,113,210,183,58,18,210,183,114,178,209,183,151,82,209,183,167,242,208,183,164,146,208,183,141,50,208,183,98,210,
207,183,35,114,207,183,209,17,207,183,106,177,206,183,240,80,206,183,99,240,205,183,194,143,205,183,13,47,205,183,69,206,204,183,105,109,204,183,122,12,204,183,119,171,203,183,98,74,203,183,56,233,202,183,252,135,202,183,172,38,202,183,74,197,201,183,212,99,201,183,75,2,201,183],"i8",4,y.a+1034240);
Q([175,160,200,183,0,63,200,183,62,221,199,183,105,123,199,183,129,25,199,183,135,183,198,183,122,85,198,183,90,243,197,183,39,145,197,183,225,46,197,183,137,204,196,183,31,106,196,183,162,7,196,183,18,165,195,183,112,66,195,183,187,223,194,183,245,124,194,183,27,26,194,183,48,183,193,183,50,84,193,183,35,241,192,183,1,142,192,183,205,42,192,183,135,199,191,183,46,100,191,183,196,0,191,183,72,157,190,183,186,57,190,183,27,214,189,183,105,114,189,183,166,14,189,183,209,170,188,183,234,70,188,183,242,
226,187,183,232,126,187,183,205,26,187,183,160,182,186,183,97,82,186,183,18,238,185,183,176,137,185,183,62,37,185,183,186,192,184,183,37,92,184,183,127,247,183,183,200,146,183,183,255,45,183,183,38,201,182,183,60,100,182,183,64,255,181,183,52,154,181,183,22,53,181,183,232,207,180,183,169,106,180,183,90,5,180,183,249,159,179,183,136,58,179,183,7,213,178,183,117,111,178,183,210,9,178,183,31,164,177,183,91,62,177,183,135,216,176,183,162,114,176,183,174,12,176,183,169,166,175,183,147,64,175,183,110,218,
174,183,56,116,174,183,243,13,174,183,157,167,173,183,55,65,173,183,193,218,172,183,60,116,172,183,166,13,172,183,1,167,171,183,76,64,171,183,135,217,170,183,179,114,170,183,206,11,170,183,219,164,169,183,215,61,169,183,196,214,168,183,162,111,168,183,112,8,168,183,47,161,167,183,223,57,167,183,127,210,166,183,16,107,166,183,146,3,166,183,4,156,165,183,104,52,165,183,188,204,164,183,1,101,164,183,56,253,163,183,95,149,163,183,120,45,163,183,130,197,162,183,124,93,162,183,105,245,161,183,70,141,161,
183,21,37,161,183,213,188,160,183,134,84,160,183,41,236,159,183,190,131,159,183,68,27,159,183,188,178,158,183,37,74,158,183,128,225,157,183,205,120,157,183,11,16,157,183,59,167,156,183,94,62,156,183,114,213,155,183,120,108,155,183,112,3,155,183,90,154,154,183,54,49,154,183,5,200,153,183,197,94,153,183,120,245,152,183,29,140,152,183,180,34,152,183,62,185,151,183,186,79,151,183,41,230,150,183,138,124,150,183,221,18,150,183,35,169,149,183,92,63,149,183,136,213,148,183,166,107,148,183,183,1,148,183,187,
151,147,183,178,45,147,183,155,195,146,183,120,89,146,183,71,239,145,183,10,133,145,183,192,26,145,183,105,176,144,183,5,70,144,183,148,219,143,183,22,113,143,183,140,6,143,183,245,155,142,183,82,49,142,183,162,198,141,183,230,91,141,183,29,241,140,183,71,134,140,183,102,27,140,183,120,176,139,183,125,69,139,183,119,218,138,183,100,111,138,183,69,4,138,183,27,153,137,183,228,45,137,183,161,194,136,183,82,87,136,183,247,235,135,183,144,128,135,183,30,21,135,183,160,169,134,183,22,62,134,183,128,210,
133,183,223,102,133,183,50,251,132,183,122,143,132,183,182,35,132,183,230,183,131,183,12,76,131,183,38,224,130,183,52,116,130,183,56,8,130,183,48,156,129,183,29,48,129,183,254,195,128,183,213,87,128,183,66,215,127,183,195,254,126,183,47,38,126,183,133,77,125,183,197,116,124,183,239,155,123,183,4,195,122,183,4,234,121,183,238,16,121,183,195,55,120,183,131,94,119,183,46,133,118,183,196,171,117,183,69,210,116,183,177,248,115,183,9,31,115,183,76,69,114,183,122,107,113,183,148,145,112,183,154,183,111,
183,140,221,110,183,105,3,110,183,51,41,109,183,232,78,108,183,138,116,107,183,24,154,106,183,146,191,105,183,249,228,104,183,76,10,104,183,140,47,103,183,184,84,102,183,210,121,101,183,216,158,100,183,203,195,99,183,171,232,98,183,121,13,98,183,52,50,97,183,220,86,96,183,113,123,95,183,245,159,94,183,101,196,93,183,196,232,92,183,16,13,92,183,75,49,91,183,115,85,90,183,137,121,89,183,142,157,88,183,129,193,87,183,98,229,86,183,50,9,86,183,240,44,85,183,157,80,84,183,57,116,83,183,196,151,82,183,
61,187,81,183,166,222,80,183,254,1,80,183,69,37,79,183,123,72,78,183,161,107,77,183,182,142,76,183,187,177,75,183,176,212,74,183,148,247,73,183,104,26,73,183,45,61,72,183,225,95,71,183,134,130,70,183,26,165,69,183,159,199,68,183,21,234,67,183,123,12,67,183,210,46,66,183,25,81,65,183,82,115,64,183,123,149,63,183,149,183,62,183,160,217,61,183,157,251,60,183,139,29,60,183,106,63,59,183,59,97,58,183,253,130,57,183,177,164,56,183,87,198,55,183,238,231,54,183,120,9,54,183,243,42,53,183,97,76,52,183,193,
109,51,183,19,143,50,183,88,176,49,183,143,209,48,183,185,242,47,183,213,19,47,183,228,52,46,183,231,85,45,183,220,118,44,183,196,151,43,183,160,184,42,183,110,217,41,183,48,250,40,183,230,26,40,183,143,59,39,183,44,92,38,183,188,124,37,183,64,157,36,183,184,189,35,183,37,222,34,183,133,254,33,183,218,30,33,183,34,63,32,183,96,95,31,183,145,127,30,183,184,159,29,183,211,191,28,183,227,223,27,183,231,255,26,183,225,31,26,183,208,63,25,183,179,95,24,183,141,127,23,183,91,159,22,183,31,191,21,183,216,
222,20,183,135,254,19,183,44,30,19,183,199,61,18,183,87,93,17,183,222,124,16,183,90,156,15,183,205,187,14,183,54,219,13,183,149,250,12,183,235,25,12,183,56,57,11,183,123,88,10,183,181,119,9,183,230,150,8,183,13,182,7,183,44,213,6,183,66,244,5,183,79,19,5,183,83,50,4,183,79,81,3,183,67,112,2,183,46,143,1,183,16,174,0,183,214,153,255,182,122,215,253,182,15,21,252,182,148,82,250,182,9,144,248,182,111,205,246,182,198,10,245,182,13,72,243,182,70,133,241,182,111,194,239,182,139,255,237,182,152,60,236,182,
151,121,234,182,136,182,232,182,107,243,230,182,64,48,229,182,9,109,227,182,196,169,225,182,114,230,223,182,19,35,222,182,168,95,220,182,48,156,218,182,172,216,216,182,28,21,215,182,128,81,213,182,216,141,211,182,37,202,209,182,103,6,208,182,157,66,206,182,201,126,204,182,233,186,202,182,0,247,200,182,12,51,199,182,13,111,197,182,5,171,195,182,243,230,193,182,216,34,192,182,179,94,190,182,133,154,188,182,77,214,186,182,13,18,185,182,197,77,183,182,116,137,181,182,26,197,179,182,185,0,178,182,79,60,
176,182,222,119,174,182,102,179,172,182,230,238,170,182,95,42,169,182,209,101,167,182,60,161,165,182,161,220,163,182,255,23,162,182,87,83,160,182,169,142,158,182,246,201,156,182,60,5,155,182,126,64,153,182,186,123,151,182,241,182,149,182,35,242,147,182,80,45,146,182,121,104,144,182,158,163,142,182,191,222,140,182,219,25,139,182,244,84,137,182,9,144,135,182,27,203,133,182,42,6,132,182,54,65,130,182,63,124,128,182,140,110,125,182,148,228,121,182,152,90,118,182,151,208,114,182,147,70,111,182,140,188,
107,182,130,50,104,182,117,168,100,182,102,30,97,182,85,148,93,182,67,10,90,182,48,128,86,182,28,246,82,182,8,108,79,182,244,225,75,182,225,87,72,182,206,205,68,182,189,67,65,182,173,185,61,182,159,47,58,182,147,165,54,182,139,27,51,182,133,145,47,182,131,7,44,182,132,125,40,182,138,243,36,182,149,105,33,182,164,223,29,182,185,85,26,182,212,203,22,182,245,65,19,182,28,184,15,182,74,46,12,182,128,164,8,182,189,26,5,182,2,145,1,182,159,14,252,181,75,251,244,181,10,232,237,181,220,212,230,181,193,193,
223,181,187,174,216,181,203,155,209,181,240,136,202,181,44,118,195,181,128,99,188,181,236,80,181,181,113,62,174,181,16,44,167,181,202,25,160,181,159,7,153,181,143,245,145,181,157,227,138,181,200,209,131,181,36,128,121,181,245,92,107,181,5,58,93,181,87,23,79,181,236,244,64,181,196,210,50,181,227,176,36,181,72,143,22,181,246,109,8,181,220,153,244,180,100,88,216,180,133,23,188,180,68,215,159,180,164,151,131,180,76,177,78,180,157,52,22,180,130,114,187,179,245,252,20,179,66,203,153,50,83,97,151,51,128,
38,4,52,230,154,60,52,214,13,117,52,165,191,150,52,157,247,178,52,210,46,207,52,63,101,235,52,113,205,3,53,220,231,17,53,223,1,32,53,121,27,46,53,167,52,60,53,105,77,74,53,189,101,88,53,161,125,102,53,20,149,116,53,10,86,129,53,81,97,136,53,93,108,143,53,45,119,150,53,193,129,157,53,24,140,164,53,49,150,171,53,12,160,178,53,167,169,185,53,3,179,192,53,30,188,199,53,247,196,206,53,142,205,213,53,227,213,220,53,243,221,227,53,192,229,234,53,71,237,241,53,136,244,248,53,130,251,255,53,27,129,3,54,80,
4,7,54,97,135,10,54,78,10,14,54,21,141,17,54,182,15,21,54,50,146,24,54,135,20,28,54,182,150,31,54,189,24,35,54,158,154,38,54,86,28,42,54,230,157,45,54,78,31,49,54,141,160,52,54,163,33,56,54,143,162,59,54,81,35,63,54,233,163,66,54,86,36,70,54,152,164,73,54,174,36,77,54,153,164,80,54,87,36,84,54,233,163,87,54,78,35,91,54,133,162,94,54,143,33,98,54,107,160,101,54,24,31,105,54,151,157,108,54,230,27,112,54,6,154,115,54,246,23,119,54,182,149,122,54,69,19,126,54,82,200,128,54,232,134,130,54,102,69,132,54,
202,3,134,54,21,194,135,54,71,128,137,54,95,62,139,54,94,252,140,54,66,186,142,54,13,120,144,54,189,53,146,54,82,243,147,54,205,176,149,54,45,110,151,54,114,43,153,54,156,232,154,54,170,165,156,54,156,98,158,54,115,31,160,54,46,220,161,54,205,152,163,54,79,85,165,54,181,17,167,54,254,205,168,54,42,138,170,54,57,70,172,54,43,2,174,54,0,190,175,54,183,121,177,54,80,53,179,54,203,240,180,54,40,172,182,54,102,103,184,54,134,34,186,54,136,221,187,54,106,152,189,54,45,83,191,54,209,13,193,54,86,200,194,
54,187,130,196,54,0,61,198,54,38,247,199,54,43,177,201,54,16,107,203,54,212,36,205,54,120,222,206,54,250,151,208,54,92,81,210,54,156,10,212,54,187,195,213,54,185,124,215,54,148,53,217,54,78,238,218,54,229,166,220,54,90,95,222,54,173,23,224,54,221,207,225,54,234,135,227,54,212,63,229,54,155,247,230,54,62,175,232,54,190,102,234,54,26,30,236,54,83,213,237,54,103,140,239,54,86,67,241,54,33,250,242,54,200,176,244,54,74,103,246,54,166,29,248,54,222,211,249,54,240,137,251,54,221,63,253,54,163,245,254,54,
162,85,0,55,96,48,1,55,10,11,2,55,161,229,2,55,37,192,3,55,149,154,4,55,242,116,5,55,59,79,6,55,113,41,7,55,147,3,8,55,160,221,8,55,155,183,9,55,129,145,10,55,82,107,11,55,16,69,12,55,186,30,13,55,79,248,13,55,207,209,14,55,59,171,15,55,147,132,16,55,213,93,17,55,3,55,18,55,28,16,19,55,32,233,19,55,14,194,20,55,232,154,21,55,172,115,22,55,91,76,23,55,245,36,24,55,121,253,24,55,231,213,25,55,64,174,26,55,131,134,27,55,176,94,28,55,199,54,29,55,200,14,30,55,179,230,30,55,136,190,31,55,70,150,32,55,
238,109,33,55,127,69,34,55,250,28,35,55,94,244,35,55,171,203,36,55,226,162,37,55,1,122,38,55,10,81,39,55,251,39,40,55,214,254,40,55,153,213,41,55,68,172,42,55,216,130,43,55,85,89,44,55,186,47,45,55,7,6,46,55,61,220,46,55,90,178,47,55,96,136,48,55,77,94,49,55,35,52,50,55,224,9,51,55,132,223,51,55,17,181,52,55,133,138,53,55,224,95,54,55,35,53,55,55,76,10,56,55,93,223,56,55,85,180,57,55,52,137,58,55,250,93,59,55,167,50,60,55,59,7,61,55,181,219,61,55,21,176,62,55,92,132,63,55,138,88,64,55,158,44,65,55,
152,0,66,55,120,212,66,55,62,168,67,55,234,123,68,55,124,79,69,55,244,34,70,55,81,246,70,55,148,201,71,55,189,156,72,55,203,111,73,55,190,66,74,55,151,21,75,55,84,232,75,55,247,186,76,55,127,141,77,55,236,95,78,55,62,50,79,55,116,4,80,55,143,214,80,55,143,168,81,55,115,122,82,55,59,76,83,55,232,29,84,55,121,239,84,55,239,192,85,55,72,146,86,55,133,99,87,55,167,52,88,55,172,5,89,55,149,214,89,55,97,167,90,55,17,120,91,55,165,72,92,55,28,25,93,55,118,233,93,55,180,185,94,55,212,137,95,55,216,89,96,
55,191,41,97,55,136,249,97,55,53,201,98,55,196,152,99,55,54,104,100,55,138,55,101,55,193,6,102,55,218,213,102,55,213,164,103,55,179,115,104,55,115,66,105,55,21,17,106,55,153,223,106,55,255,173,107,55,71,124,108,55,112,74,109,55,123,24,110,55,104,230,110,55,54,180,111,55,229,129,112,55,118,79,113,55,232,28,114,55,59,234,114,55,112,183,115,55,133,132,116,55,123,81,117,55,82,30,118,55,10,235,118,55,162,183,119,55,27,132,120,55,116,80,121,55,174,28,122,55,200,232,122,55,195,180,123,55,157,128,124,55,
88,76,125,55,243,23,126,55,109,227,126,55,200,174,127,55,1,61,128,55,142,162,128,55,11,8,129,55,119,109,129,55,211,210,129,55,31,56,130,55,91,157,130,55,134,2,131,55,160,103,131,55,171,204,131,55,164,49,132,55,141,150,132,55,102,251,132,55,46,96,133,55,229,196,133,55,139,41,134,55,33,142,134,55,165,242,134,55,25,87,135,55,124,187,135,55,207,31,136,55,16,132,136,55,64,232,136,55,95,76,137,55,109,176,137,55,106,20,138,55,86,120,138,55,48,220,138,55,249,63,139,55,177,163,139,55,88,7,140,55,237,106,140,
55,113,206,140,55,227,49,141,55,68,149,141,55,147,248,141,55,209,91,142,55,253,190,142,55,24,34,143,55,33,133,143,55,24,232,143,55,253,74,144,55,209,173,144,55,146,16,145,55,66,115,145,55,224,213,145,55,108,56,146,55,230,154,146,55,78,253,146,55,163,95,147,55,231,193,147,55,25,36,148,55,56,134,148,55,69,232,148,55,64,74,149,55,40,172,149,55,254,13,150,55,194,111,150,55,115,209,150,55,18,51,151,55,158,148,151,55,24,246,151,55,127,87,152,55,211,184,152,55,21,26,153,55,68,123,153,55,97,220,153,55,106,
61,154,55,97,158,154,55,69,255,154,55,22,96,155,55,212,192,155,55,127,33,156,55,23,130,156,55,156,226,156,55,14,67,157,55,109,163,157,55,185,3,158,55,241,99,158,55,22,196,158,55,40,36,159,55,39,132,159,55,18,228,159,55,234,67,160,55,174,163,160,55,95,3,161,55,252,98,161,55,134,194,161,55,253,33,162,55,95,129,162,55,174,224,162,55,233,63,163,55,17,159,163,55,37,254,163,55,37,93,164,55,17,188,164,55,233,26,165,55,173,121,165,55,93,216,165,55,250,54,166,55,130,149,166,55,246,243,166,55,86,82,167,55,
162,176,167,55,218,14,168,55,253,108,168,55,13,203,168,55,8,41,169,55,238,134,169,55,192,228,169,55,126,66,170,55,40,160,170,55,188,253,170,55,61,91,171,55,169,184,171,55,0,22,172,55,66,115,172,55,112,208,172,55,137,45,173,55,142,138,173,55,125,231,173,55,88,68,174,55,30,161,174,55,207,253,174,55,108,90,175,55,243,182,175,55,101,19,176,55,194,111,176,55,10,204,176,55,61,40,177,55,91,132,177,55,100,224,177,55,87,60,178,55,53,152,178,55,254,243,178,55,177,79,179,55,80,171,179,55,216,6,180,55,76,98,
180,55,170,189,180,55,242,24,181,55,37,116,181,55,66,207,181,55,74,42,182,55,60,133,182,55,24,224,182,55,222,58,183,55,143,149,183,55,42,240,183,55,175,74,184,55,31,165,184,55,120,255,184,55,187,89,185,55,233,179,185,55,0,14,186,55,2,104,186,55,237,193,186,55,194,27,187,55,129,117,187,55,42,207,187,55,189,40,188,55,57,130,188,55,160,219,188,55,239,52,189,55,41,142,189,55,76,231,189,55,89,64,190,55,79,153,190,55,46,242,190,55,247,74,191,55,170,163,191,55,70,252,191,55,203,84,192,55,58,173,192,55,146,
5,193,55,211,93,193,55,253,181,193,55,17,14,194,55,14,102,194,55,243,189,194,55,194,21,195,55,122,109,195,55,27,197,195,55,165,28,196,55,24,116,196,55,116,203,196,55,185,34,197,55,230,121,197,55,253,208,197,55,252,39,198,55,228,126,198,55,180,213,198,55,110,44,199,55,16,131,199,55,154,217,199,55,13,48,200,55,105,134,200,55,173,220,200,55,217,50,201,55,239,136,201,55,236,222,201,55,210,52,202,55,160,138,202,55,86,224,202,55,245,53,203,55,124,139,203,55,235,224,203,55,67,54,204,55,130,139,204,55,170,
224,204,55,185,53,205,55,177,138,205,55,145,223,205,55,88,52,206,55,8,137,206,55,159,221,206,55,31,50,207,55,134,134,207,55,213,218,207,55,12,47,208,55,42,131,208,55,48,215,208,55,30,43,209,55,244,126,209,55,177,210,209,55,86,38,210,55,226,121,210,55,86,205,210,55,177,32,211,55,244,115,211,55,30,199,211,55,48,26,212,55,41,109,212,55,9,192,212,55,208,18,213,55,127,101,213,55,21,184,213,55,146,10,214,55,246,92,214,55,66,175,214,55,116,1,215,55,142,83,215,55,143,165,215,55,118,247,215,55,69,73,216,55,
250,154,216,55,151,236,216,55,26,62,217,55,132,143,217,55,213,224,217,55,13,50,218,55,44,131,218,55,49,212,218,55,29,37,219,55,239,117,219,55,168,198,219,55,72,23,220,55,207,103,220,55,59,184,220,55,143,8,221,55,201,88,221,55,233,168,221,55,239,248,221,55,220,72,222,55,176,152,222,55,106,232,222,55,10,56,223,55,144,135,223,55,252,214,223,55,79,38,224,55,136,117,224,55,167,196,224,55,172,19,225,55,151,98,225,55,104,177,225,55,31,0,226,55,188,78,226,55,63,157,226,55,168,235,226,55,247,57,227,55,44,
136,227,55,70,214,227,55,70,36,228,55,45,114,228,55,248,191,228,55,170,13,229,55,65,91,229,55,190,168,229,55,32,246,229,55,105,67,230,55,150,144,230,55,169,221,230,55,162,42,231,55,128,119,231,55,68,196,231,55,237,16,232,55,123,93,232,55,239,169,232,55,72,246,232,55,134,66,233,55,170,142,233,55,178,218,233,55,160,38,234,55,116,114,234,55,44,190,234,55,201,9,235,55,76,85,235,55,180,160,235,55,0,236,235,55,50,55,236,55,72,130,236,55,68,205,236,55,36,24,237,55,234,98,237,55,148,173,237,55,35,248,237,
55,151,66,238,55,240,140,238,55,45,215,238,55,79,33,239,55,86,107,239,55,65,181,239,55,17,255,239,55,198,72,240,55,95,146,240,55,221,219,240,55,64,37,241,55,134,110,241,55,178,183,241,55,193,0,242,55,182,73,242,55,142,146,242,55,75,219,242,55,236,35,243,55,114,108,243,55,219,180,243,55,41,253,243,55,92,69,244,55,114,141,244,55,109,213,244,55,75,29,245,55,14,101,245,55,181,172,245,55,64,244,245,55,175,59,246,55,2,131,246,55,57,202,246,55,84,17,247,55,83,88,247,55,54,159,247,55,252,229,247,55,167,44,
248,55,53,115,248,55,167,185,248,55,253,255,248,55,54,70,249,55,83,140,249,55,84,210,249,55,57,24,250,55,1,94,250,55,173,163,250,55,60,233,250,55,175,46,251,55,5,116,251,55,63,185,251,55,92,254,251,55,93,67,252,55,65,136,252,55,9,205,252,55,180,17,253,55,66,86,253,55,180,154,253,55,9,223,253,55,65,35,254,55,92,103,254,55,91,171,254,55,61,239,254,55,2,51,255,55,170,118,255,55,53,186,255,55,163,253,255,55,122,32,0,56,20,66,0,56,160,99,0,56,29,133,0,56,140,166,0,56,236,199,0,56,62,233,0,56,129,10,1,
56,181,43,1,56,219,76,1,56,242,109,1,56,251,142,1,56,245,175,1,56,224,208,1,56,189,241,1,56,139,18,2,56,75,51,2,56,251,83,2,56,157,116,2,56,49,149,2,56,181,181,2,56,43,214,2,56,146,246,2,56,235,22,3,56,52,55,3,56,111,87,3,56,155,119,3,56,184,151,3,56,199,183,3,56,199,215,3,56,183,247,3,56,153,23,4,56,108,55,4,56,48,87,4,56,230,118,4,56,140,150,4,56,36,182,4,56,172,213,4,56,38,245,4,56,144,20,5,56,236,51,5,56,57,83,5,56,119,114,5,56,165,145,5,56,197,176,5,56,214,207,5,56,216,238,5,56,202,13,6,56,174,
44,6,56,131,75,6,56,72,106,6,56,255,136,6,56,166,167,6,56,62,198,6,56,199,228,6,56,65,3,7,56,172,33,7,56,8,64,7,56,84,94,7,56,146,124,7,56,192,154,7,56,223,184,7,56,238,214,7,56,239,244,7,56,224,18,8,56,194,48,8,56,149,78,8,56,89,108,8,56,13,138,8,56,178,167,8,56,72,197,8,56,206,226,8,56,69,0,9,56,173,29,9,56,6,59,9,56,79,88,9,56,136,117,9,56,179,146,9,56,206,175,9,56,217,204,9,56,213,233,9,56,194,6,10,56,160,35,10,56,109,64,10,56,44,93,10,56,219,121,10,56,122,150,10,56,11,179,10,56,139,207,10,56,
252,235,10,56,94,8,11,56,176,36,11,56,242,64,11,56,37,93,11,56,73,121,11,56,93,149,11,56,97,177,11,56,86,205,11,56,59,233,11,56,16,5,12,56,214,32,12,56,141,60,12,56,51,88,12,56,203,115,12,56,82,143,12,56,202,170,12,56,50,198,12,56,138,225,12,56,211,252,12,56,12,24,13,56,53,51,13,56,79,78,13,56,89,105,13,56,83,132,13,56,61,159,13,56,24,186,13,56,227,212,13,56,158,239,13,56,73,10,14,56,229,36,14,56,112,63,14,56,236,89,14,56,88,116,14,56,180,142,14,56,1,169,14,56,61,195,14,56,106,221,14,56,135,247,14,
56,148,17,15,56,145,43,15,56,126,69,15,56,91,95,15,56,40,121,15,56,230,146,15,56,147,172,15,56,49,198,15,56,190,223,15,56,60,249,15,56,169,18,16,56,7,44,16,56,85,69,16,56,146,94,16,56,192,119,16,56,222,144,16,56,235,169,16,56,233,194,16,56,214,219,16,56,180,244,16,56,129,13,17,56,62,38,17,56,236,62,17,56,137,87,17,56,22,112,17,56,147,136,17,56,0,161,17,56,92,185,17,56,169,209,17,56,229,233,17,56,18,2,18,56,46,26,18,56,58,50,18,56,53,74,18,56,33,98,18,56,253,121,18,56,200,145,18,56,131,169,18,56,46,
193,18,56,200,216,18,56,82,240,18,56,205,7,19,56,54,31,19,56,144,54,19,56,217,77,19,56,18,101,19,56,59,124,19,56,84,147,19,56,92,170,19,56,84,193,19,56,59,216,19,56,19,239,19,56,217,5,20,56,144,28,20,56,54,51,20,56,204,73,20,56,82,96,20,56,199,118,20,56,44,141,20,56,128,163,20,56,196,185,20,56,248,207,20,56,27,230,20,56,46,252,20,56,48,18,21,56,34,40,21,56,3,62,21,56,212,83,21,56,149,105,21,56,69,127,21,56,229,148,21,56,116,170,21,56,243,191,21,56,97,213,21,56,191,234,21,56,12,0,22,56,72,21,22,56,
117,42,22,56,144,63,22,56,155,84,22,56,150,105,22,56,128,126,22,56,90,147,22,56,34,168,22,56,219,188,22,56,131,209,22,56,26,230,22,56,160,250,22,56,22,15,23,56,124,35,23,56,209,55,23,56,21,76,23,56,72,96,23,56,107,116,23,56,125,136,23,56,127,156,23,56,112,176,23,56,80,196,23,56,32,216,23,56,223,235,23,56,141,255,23,56,43,19,24,56,184,38,24,56,52,58,24,56,160,77,24,56,250,96,24,56,69,116,24,56,126,135,24,56,167,154,24,56,190,173,24,56,198,192,24,56,188,211,24,56,162,230,24,56,119,249,24,56,59,12,25,
56,238,30,25,56,145,49,25,56,34,68,25,56,163,86,25,56,20,105,25,56,115,123,25,56,194,141,25,56,255,159,25,56,44,178,25,56,72,196,25,56,84,214,25,56,78,232,25,56,56,250,25,56,16,12,26,56,216,29,26,56,143,47,26,56,53,65,26,56,203,82,26,56,79,100,26,56,195,117,26,56,37,135,26,56,119,152,26,56,184,169,26,56,232,186,26,56,7,204,26,56,21,221,26,56,18,238,26,56,254,254,26,56,217,15,27,56,164,32,27,56,93,49,27,56,6,66,27,56,157,82,27,56,36,99,27,56,153,115,27,56,254,131,27,56,81,148,27,56,148,164,27,56,197,
180,27,56,230,196,27,56,246,212,27,56,244,228,27,56,226,244,27,56,191,4,28,56,138,20,28,56,69,36,28,56,238,51,28,56,135,67,28,56,14,83,28,56,132,98,28,56,234,113,28,56,62,129,28,56,129,144,28,56,180,159,28,56,213,174,28,56,229,189,28,56,228,204,28,56,210,219,28,56,174,234,28,56,122,249,28,56,53,8,29,56,222,22,29,56,119,37,29,56,254,51,29,56,116,66,29,56,217,80,29,56,45,95,29,56,112,109,29,56,162,123,29,56,194,137,29,56,210,151,29,56,208,165,29,56,189,179,29,56,153,193,29,56,100,207,29,56,30,221,29,
56,198,234,29,56,93,248,29,56,228,5,30,56,89,19,30,56,188,32,30,56,15,46,30,56,80,59,30,56,129,72,30,56,160,85,30,56,174,98,30,56,170,111,30,56,150,124,30,56,112,137,30,56,57,150,30,56,241,162,30,56,151,175,30,56,45,188,30,56,177,200,30,56,36,213,30,56,133,225,30,56,214,237,30,56,21,250,30,56,67,6,31,56,96,18,31,56,107,30,31,56,101,42,31,56,78,54,31,56,38,66,31,56,236,77,31,56,161,89,31,56,69,101,31,56,216,112,31,56,89,124,31,56,201,135,31,56,40,147,31,56,117,158,31,56,178,169,31,56,220,180,31,56,
246,191,31,56,254,202,31,56,245,213,31,56,219,224,31,56,175,235,31,56,114,246,31,56,36,1,32,56,196,11,32,56,84,22,32,56,209,32,32,56,62,43,32,56,153,53,32,56,227,63,32,56,27,74,32,56,66,84,32,56,88,94,32,56,92,104,32,56,80,114,32,56,49,124,32,56,2,134,32,56,193,143,32,56,110,153,32,56,11,163,32,56,150,172,32,56,15,182,32,56,120,191,32,56,207,200,32,56,20,210,32,56,72,219,32,56,107,228,32,56,125,237,32,56,125,246,32,56,107,255,32,56,73,8,33,56,20,17,33,56,207,25,33,56,120,34,33,56,16,43,33,56,150,
51,33,56,11,60,33,56,111,68,33,56,193,76,33,56,2,85,33,56,49,93,33,56,79,101,33,56,92,109,33,56,87,117,33,56,65,125,33,56,25,133,33,56,224,140,33,56,150,148,33,56,58,156,33,56,205,163,33,56,78,171,33,56,190,178,33,56,28,186,33,56,105,193,33,56,165,200,33,56,207,207,33,56,232,214,33,56,239,221,33,56,229,228,33,56,202,235,33,56,157,242,33,56,95,249,33,56,15,0,34,56,174,6,34,56,59,13,34,56,183,19,34,56,34,26,34,56,123,32,34,56,194,38,34,56,249,44,34,56,29,51,34,56,49,57,34,56,51,63,34,56,35,69,34,56,
2,75,34,56,208,80,34,56,140,86,34,56,54,92,34,56,208,97,34,56,88,103,34,56,206,108,34,56,51,114,34,56,134,119,34,56,200,124,34,56,249,129,34,56,24,135,34,56,38,140,34,56,34,145,34,56,13,150,34,56,230,154,34,56,174,159,34,56,100,164,34,56,9,169,34,56,157,173,34,56,31,178,34,56,144,182,34,56,239,186,34,56,60,191,34,56,121,195,34,56,164,199,34,56,189,203,34,56,197,207,34,56,187,211,34,56,160,215,34,56,116,219,34,56,54,223,34,56,231,226,34,56,134,230,34,56,20,234,34,56,144,237,34,56,251,240,34,56,84,
244,34,56,156,247,34,56,211,250,34,56,248,253,34,56,11,1,35,56,13,4,35,56,254,6,35,56,221,9,35,56,171,12,35,56,104,15,35,56,19,18,35,56,172,20,35,56,52,23,35,56,171,25,35,56,16,28,35,56,100,30,35,56,166,32,35,56,215,34,35,56,246,36,35,56,4,39,35,56,0,41,35,56,236,42,35,56,197,44,35,56,141,46,35,56,68,48,35,56,233,49,35,56,125,51,35,56,0,53,35,56,113,54,35,56,208,55,35,56,31,57,35,56,91,58,35,56,135,59,35,56,160,60,35,56,169,61,35,56,160,62,35,56,134,63,35,56,90,64,35,56,29,65,35,56,206,65,35,56,110,
66,35,56,252,66,35,56,121,67,35,56,229,67,35,56,63,68,35,56,136,68,35,56,192,68,35,56,230,68,35,56,251,68,35,56,254,68,35,56,240,68,35,56,208,68,35,56,159,68,35,56,93,68,35,56,9,68,35,56,164,67,35,56,45,67,35,56,166,66,35,56,12,66,35,56,98,65,35,56,166,64,35,56,216,63,35,56,249,62,35,56,9,62,35,56,8,61,35,56,245,59,35,56,208,58,35,56,155,57,35,56,84,56,35,56,251,54,35,56,145,53,35,56,22,52,35,56,138,50,35,56,236,48,35,56,61,47,35,56,124,45,35,56,170,43,35,56,199,41,35,56,210,39,35,56,205,37,35,56,
181,35,35,56,141,33,35,56,83,31,35,56,8,29,35,56,171,26,35,56,61,24,35,56,190,21,35,56,45,19,35,56,139,16,35,56,216,13,35,56,20,11,35,56,62,8,35,56,87,5,35,56,94,2,35,56,85,255,34,56,58,252,34,56,13,249,34,56,208,245,34,56,129,242,34,56,33,239,34,56,175,235,34,56,45,232,34,56,153,228,34,56,243,224,34,56,61,221,34,56,117,217,34,56,156,213,34,56,178,209,34,56,182,205,34,56,169,201,34,56,139,197,34,56,92,193,34,56,27,189,34,56,201,184,34,56,102,180,34,56,242,175,34,56,109,171,34,56,214,166,34,56,46,
162,34,56,117,157,34,56,170,152,34,56,207,147,34,56,226,142,34,56,228,137,34,56,213,132,34,56,180,127,34,56,131,122,34,56,64,117,34,56,236,111,34,56,135,106,34,56,17,101,34,56,137,95,34,56,240,89,34,56,71,84,34,56,140,78,34,56,192,72,34,56,226,66,34,56,244,60,34,56,244,54,34,56,227,48,34,56,194,42,34,56,143,36,34,56,75,30,34,56,245,23,34,56,143,17,34,56,23,11,34,56,143,4,34,56,245,253,33,56,74,247,33,56,142,240,33,56,193,233,33,56,227,226,33,56,244,219,33,56,244,212,33,56,227,205,33,56,192,198,33,
56,141,191,33,56,72,184,33,56,243,176,33,56,140,169,33,56,21,162,33,56,140,154,33,56,242,146,33,56,71,139,33,56,140,131,33,56,191,123,33,56,225,115,33,56,242,107,33,56,242,99,33,56,225,91,33,56,191,83,33,56,141,75,33,56,73,67,33,56,244,58,33,56,142,50,33,56,23,42,33,56,144,33,33,56,247,24,33,56,77,16,33,56,147,7,33,56,199,254,32,56,235,245,32,56,253,236,32,56,255,227,32,56,240,218,32,56,207,209,32,56,158,200,32,56,92,191,32,56,9,182,32,56,166,172,32,56,49,163,32,56,171,153,32,56,21,144,32,56,109,
134,32,56,181,124,32,56,236,114,32,56,18,105,32,56,39,95,32,56,44,85,32,56,31,75,32,56,2,65,32,56,212,54,32,56,149,44,32,56,69,34,32,56,228,23,32,56,115,13,32,56,241,2,32,56,94,248,31,56,186,237,31,56,5,227,31,56,64,216,31,56,106,205,31,56,131,194,31,56,139,183,31,56,131,172,31,56,106,161,31,56,64,150,31,56,5,139,31,56,186,127,31,56,94,116,31,56,241,104,31,56,116,93,31,56,230,81,31,56,71,70,31,56,151,58,31,56,215,46,31,56,6,35,31,56,36,23,31,56,50,11,31,56,47,255,30,56,28,243,30,56,248,230,30,56,
195,218,30,56,125,206,30,56,39,194,30,56,193,181,30,56,73,169,30,56,193,156,30,56,41,144,30,56,128,131,30,56,198,118,30,56,252,105,30,56,33,93,30,56,54,80,30,56,58,67,30,56,45,54,30,56,16,41,30,56,227,27,30,56,165,14,30,56,86,1,30,56,247,243,29,56,136,230,29,56,8,217,29,56,119,203,29,56,214,189,29,56,37,176,29,56,99,162,29,56,144,148,29,56,173,134,29,56,186,120,29,56,182,106,29,56,162,92,29,56,125,78,29,56,72,64,29,56,3,50,29,56,173,35,29,56,71,21,29,56,208,6,29,56,73,248,28,56,178,233,28,56,10,219,
28,56,82,204,28,56,137,189,28,56,177,174,28,56,199,159,28,56,206,144,28,56,196,129,28,56,170,114,28,56,128,99,28,56,69,84,28,56,250,68,28,56,159,53,28,56,52,38,28,56,184,22,28,56,44,7,28,56,144,247,27,56,227,231,27,56,38,216,27,56,89,200,27,56,124,184,27,56,143,168,27,56,145,152,27,56,132,136,27,56,102,120,27,56,56,104,27,56,250,87,27,56,171,71,27,56,77,55,27,56,222,38,27,56,95,22,27,56,208,5,27,56,49,245,26,56,130,228,26,56,195,211,26,56,244,194,26,56,20,178,26,56,37,161,26,56,37,144,26,56,22,127,
26,56,246,109,26,56,198,92,26,56,135,75,26,56,55,58,26,56,215,40,26,56,104,23,26,56,232,5,26,56,88,244,25,56,185,226,25,56,9,209,25,56,73,191,25,56,122,173,25,56,154,155,25,56,171,137,25,56,172,119,25,56,157,101,25,56,125,83,25,56,78,65,25,56,16,47,25,56,193,28,25,56,98,10,25,56,244,247,24,56,117,229,24,56,231,210,24,56,73,192,24,56,155,173,24,56,222,154,24,56,16,136,24,56,51,117,24,56,70,98,24,56,73,79,24,56,61,60,24,56,33,41,24,56,245,21,24,56,185,2,24,56,109,239,23,56,18,220,23,56,167,200,23,56,
45,181,23,56,162,161,23,56,8,142,23,56,95,122,23,56,165,102,23,56,220,82,23,56,4,63,23,56,28,43,23,56,36,23,23,56,28,3,23,56,5,239,22,56,223,218,22,56,169,198,22,56,99,178,22,56,14,158,22,56,169,137,22,56,52,117,22,56,176,96,22,56,29,76,22,56,122,55,22,56,199,34,22,56,6,14,22,56,52,249,21,56,83,228,21,56,99,207,21,56,99,186,21,56,84,165,21,56,53,144,21,56,7,123,21,56,202,101,21,56,125,80,21,56,32,59,21,56,181,37,21,56,58,16,21,56,175,250,20,56,22,229,20,56,109,207,20,56,180,185,20,56,237,163,20,56,
22,142,20,56,47,120,20,56,58,98,20,56,53,76,20,56,33,54,20,56,254,31,20,56,203,9,20,56,137,243,19,56,56,221,19,56,216,198,19,56,105,176,19,56,234,153,19,56,92,131,19,56,191,108,19,56,19,86,19,56,88,63,19,56,142,40,19,56,180,17,19,56,203,250,18,56,212,227,18,56,205,204,18,56,183,181,18,56,146,158,18,56,94,135,18,56,27,112,18,56,201,88,18,56,104,65,18,56,248,41,18,56,121,18,18,56,235,250,17,56,78,227,17,56,162,203,17,56,231,179,17,56,29,156,17,56,68,132,17,56,93,108,17,56,102,84,17,56,97,60,17,56,76,
36,17,56,41,12,17,56,247,243,16,56,182,219,16,56,102,195,16,56,7,171,16,56,154,146,16,56,29,122,16,56,146,97,16,56,249,72,16,56,80,48,16,56,153,23,16,56,210,254,15,56,254,229,15,56,26,205,15,56,40,180,15,56,39,155,15,56,23,130,15,56,249,104,15,56,204,79,15,56,144,54,15,56,70,29,15,56,237,3,15,56,134,234,14,56,15,209,14,56,139,183,14,56,247,157,14,56,86,132,14,56,165,106,14,56,230,80,14,56,25,55,14,56,61,29,14,56,82,3,14,56,89,233,13,56,82,207,13,56,60,181,13,56,23,155,13,56,229,128,13,56,163,102,
13,56,84,76,13,56,245,49,13,56,137,23,13,56,14,253,12,56,133,226,12,56,237,199,12,56,71,173,12,56,147,146,12,56,208,119,12,56,255,92,12,56,32,66,12,56,51,39,12,56,55,12,12,56,45,241,11,56,21,214,11,56,238,186,11,56,186,159,11,56,119,132,11,56,37,105,11,56,198,77,11,56,89,50,11,56,221,22,11,56,83,251,10,56,187,223,10,56,21,196,10,56,97,168,10,56,159,140,10,56,207,112,10,56,241,84,10,56,4,57,10,56,10,29,10,56,1,1,10,56,235,228,9,56,198,200,9,56,148,172,9,56,83,144,9,56,5,116,9,56,169,87,9,56,62,59,
9,56,198,30,9,56,64,2,9,56,172,229,8,56,10,201,8,56,90,172,8,56,157,143,8,56,209,114,8,56,248,85,8,56,17,57,8,56,28,28,8,56,25,255,7,56,9,226,7,56,235,196,7,56,191,167,7,56,133,138,7,56,62,109,7,56,233,79,7,56,134,50,7,56,21,21,7,56,151,247,6,56,11,218,6,56,114,188,6,56,203,158,6,56,22,129,6,56,84,99,6,56,132,69,6,56,166,39,6,56,187,9,6,56,195,235,5,56,189,205,5,56,169,175,5,56,136,145,5,56,89,115,5,56,29,85,5,56,212,54,5,56,125,24,5,56,24,250,4,56,167,219,4,56,39,189,4,56,155,158,4,56,1,128,4,56,
89,97,4,56,165,66,4,56,227,35,4,56,19,5,4,56,55,230,3,56,77,199,3,56,85,168,3,56,81,137,3,56,63,106,3,56,32,75,3,56,244,43,3,56,187,12,3,56,116,237,2,56,32,206,2,56,191,174,2,56,81,143,2,56,214,111,2,56,78,80,2,56,184,48,2,56,22,17,2,56,102,241,1,56,169,209,1,56,224,177,1,56,9,146,1,56,37,114,1,56,52,82,1,56,54,50,1,56,44,18,1,56,20,242,0,56,239,209,0,56,190,177,0,56,127,145,0,56,52,113,0,56,219,80,0,56,118,48,0,56,4,16,0,56,10,223,255,55,243,157,255,55,194,92,255,55,119,27,255,55,19,218,254,55,149,
152,254,55,254,86,254,55,77,21,254,55,131,211,253,55,159,145,253,55,162,79,253,55,140,13,253,55,92,203,252,55,19,137,252,55,177,70,252,55,54,4,252,55,161,193,251,55,243,126,251,55,44,60,251,55,76,249,250,55,82,182,250,55,64,115,250,55,21,48,250,55,208,236,249,55,115,169,249,55,253,101,249,55,110,34,249,55,198,222,248,55,5,155,248,55,43,87,248,55,56,19,248,55,45,207,247,55,9,139,247,55,205,70,247,55,119,2,247,55,9,190,246,55,131,121,246,55,228,52,246,55,44,240,245,55,92,171,245,55,115,102,245,55,114,
33,245,55,89,220,244,55,39,151,244,55,221,81,244,55,122,12,244,55,255,198,243,55,108,129,243,55,193,59,243,55,253,245,242,55,34,176,242,55,46,106,242,55,34,36,242,55,254,221,241,55,194,151,241,55,110,81,241,55,2,11,241,55,126,196,240,55,226,125,240,55,47,55,240,55,99,240,239,55,128,169,239,55,132,98,239,55,114,27,239,55,71,212,238,55,5,141,238,55,171,69,238,55,57,254,237,55,176,182,237,55,15,111,237,55,87,39,237,55,135,223,236,55,160,151,236,55,161,79,236,55,139,7,236,55,94,191,235,55,25,119,235,
55,189,46,235,55,74,230,234,55,191,157,234,55,29,85,234,55,100,12,234,55,148,195,233,55,173,122,233,55,175,49,233,55,153,232,232,55,109,159,232,55,42,86,232,55,207,12,232,55,94,195,231,55,214,121,231,55,55,48,231,55,130,230,230,55,181,156,230,55,210,82,230,55,216,8,230,55,200,190,229,55,160,116,229,55,98,42,229,55,14,224,228,55,163,149,228,55,34,75,228,55,138,0,228,55,219,181,227,55,22,107,227,55,59,32,227,55,73,213,226,55,66,138,226,55,35,63,226,55,239,243,225,55,164,168,225,55,67,93,225,55,205,
17,225,55,63,198,224,55,156,122,224,55,227,46,224,55,20,227,223,55,47,151,223,55,51,75,223,55,34,255,222,55,251,178,222,55,191,102,222,55,108,26,222,55,4,206,221,55,134,129,221,55,242,52,221,55,72,232,220,55,137,155,220,55,180,78,220,55,202,1,220,55,202,180,219,55,181,103,219,55,138,26,219,55,74,205,218,55,244,127,218,55,137,50,218,55,9,229,217,55,115,151,217,55,200,73,217,55,8,252,216,55,51,174,216,55,72,96,216,55,73,18,216,55,52,196,215,55,10,118,215,55,203,39,215,55,120,217,214,55,15,139,214,55,
145,60,214,55,255,237,213,55,87,159,213,55,155,80,213,55,202,1,213,55,228,178,212,55,234,99,212,55,219,20,212,55,183,197,211,55,127,118,211,55,50,39,211,55,208,215,210,55,90,136,210,55,208,56,210,55,49,233,209,55,126,153,209,55,182,73,209,55,218,249,208,55,234,169,208,55,229,89,208,55,205,9,208,55,160,185,207,55,95,105,207,55,10,25,207,55,160,200,206,55,35,120,206,55,146,39,206,55,237,214,205,55,51,134,205,55,102,53,205,55,133,228,204,55,145,147,204,55,136,66,204,55,108,241,203,55,60,160,203,55,248,
78,203,55,161,253,202,55,54,172,202,55,183,90,202,55,37,9,202,55,127,183,201,55,198,101,201,55,250,19,201,55,26,194,200,55,39,112,200,55,32,30,200,55,6,204,199,55,217,121,199,55,153,39,199,55,69,213,198,55,222,130,198,55,101,48,198,55,216,221,197,55,56,139,197,55,133,56,197,55,191,229,196,55,230,146,196,55,251,63,196,55,252,236,195,55,235,153,195,55,198,70,195,55,144,243,194,55,70,160,194,55,234,76,194,55,123,249,193,55,249,165,193,55,101,82,193,55,191,254,192,55,5,171,192,55,58,87,192,55,92,3,192,
55,108,175,191,55,105,91,191,55,84,7,191,55,45,179,190,55,243,94,190,55,167,10,190,55,73,182,189,55,217,97,189,55,87,13,189,55,195,184,188,55,29,100,188,55,101,15,188,55,155,186,187,55,191,101,187,55,209,16,187,55,209,187,186,55,192,102,186,55,157,17,186,55,104,188,185,55,33,103,185,55,201,17,185,55,95,188,184,55,228,102,184,55,87,17,184,55,185,187,183,55,9,102,183,55,71,16,183,55,117,186,182,55,145,100,182,55,155,14,182,55,149,184,181,55,125,98,181,55,84,12,181,55,26,182,180,55,207,95,180,55,114,
9,180,55,5,179,179,55,134,92,179,55,247,5,179,55,87,175,178,55,166,88,178,55,228,1,178,55,17,171,177,55,45,84,177,55,57,253,176,55,52,166,176,55,30,79,176,55,248,247,175,55,193,160,175,55,121,73,175,55,33,242,174,55,185,154,174,55,64,67,174,55,182,235,173,55,29,148,173,55,115,60,173,55,184,228,172,55,238,140,172,55,19,53,172,55,40,221,171,55,45,133,171,55,34,45,171,55,7,213,170,55,220,124,170,55,160,36,170,55,85,204,169,55,250,115,169,55,143,27,169,55,21,195,168,55,138,106,168,55,240,17,168,55,70,
185,167,55,140,96,167,55,195,7,167,55,234,174,166,55,2,86,166,55,10,253,165,55,2,164,165,55,236,74,165,55,197,241,164,55,144,152,164,55,75,63,164,55,246,229,163,55,147,140,163,55,32,51,163,55,158,217,162,55,13,128,162,55,109,38,162,55,190,204,161,55,0,115,161,55,51,25,161,55,87,191,160,55,108,101,160,55,114,11,160,55,105,177,159,55,82,87,159,55,44,253,158,55,247,162,158,55,179,72,158,55,97,238,157,55,1,148,157,55,145,57,157,55,19,223,156,55,135,132,156,55,236,41,156,55,67,207,155,55,140,116,155,55,
198,25,155,55,242,190,154,55,16,100,154,55,31,9,154,55,33,174,153,55,20,83,153,55,249,247,152,55,208,156,152,55,154,65,152,55,85,230,151,55,2,139,151,55,162,47,151,55,51,212,150,55,183,120,150,55,45,29,150,55,149,193,149,55,240,101,149,55,61,10,149,55,124,174,148,55,174,82,148,55,210,246,147,55,233,154,147,55,242,62,147,55,238,226,146,55,221,134,146,55,190,42,146,55,146,206,145,55,88,114,145,55],"i8",4,y.a+1044480);
Q([18,22,145,55,190,185,144,55,93,93,144,55,239,0,144,55,116,164,143,55,237,71,143,55,88,235,142,55,182,142,142,55,7,50,142,55,75,213,141,55,131,120,141,55,174,27,141,55,204,190,140,55,221,97,140,55,226,4,140,55,218,167,139,55,198,74,139,55,165,237,138,55,119,144,138,55,61,51,138,55,247,213,137,55,164,120,137,55,69,27,137,55,218,189,136,55,98,96,136,55,223,2,136,55,79,165,135,55,179,71,135,55,11,234,134,55,86,140,134,55,150,46,134,55,202,208,133,55,242,114,133,55,14,21,133,55,30,183,132,55,34,89,
132,55,27,251,131,55,8,157,131,55,233,62,131,55,190,224,130,55,136,130,130,55,71,36,130,55,249,197,129,55,161,103,129,55,61,9,129,55,205,170,128,55,82,76,128,55,152,219,127,55,117,30,127,55,60,97,126,55,236,163,125,55,134,230,124,55,9,41,124,55,119,107,123,55,206,173,122,55,15,240,121,55,59,50,121,55,80,116,120,55,80,182,119,55,58,248,118,55,15,58,118,55,206,123,117,55,120,189,116,55,12,255,115,55,139,64,115,55,245,129,114,55,73,195,113,55,137,4,113,55,180,69,112,55,202,134,111,55,203,199,110,55,
183,8,110,55,143,73,109,55,82,138,108,55,1,203,107,55,156,11,107,55,34,76,106,55,148,140,105,55,242,204,104,55,59,13,104,55,113,77,103,55,147,141,102,55,161,205,101,55,156,13,101,55,130,77,100,55,86,141,99,55,21,205,98,55,194,12,98,55,91,76,97,55,225,139,96,55,84,203,95,55,179,10,95,55,0,74,94,55,58,137,93,55,97,200,92,55,117,7,92,55,118,70,91,55,101,133,90,55,66,196,89,55,12,3,89,55,196,65,88,55,106,128,87,55,253,190,86,55,126,253,85,55,238,59,85,55,75,122,84,55,151,184,83,55,209,246,82,55,249,52,
82,55,15,115,81,55,21,177,80,55,8,239,79,55,235,44,79,55,188,106,78,55,124,168,77,55,43,230,76,55,201,35,76,55,86,97,75,55,210,158,74,55,61,220,73,55,152,25,73,55,226,86,72,55,28,148,71,55,69,209,70,55,94,14,70,55,102,75,69,55,95,136,68,55,71,197,67,55,31,2,67,55,232,62,66,55,160,123,65,55,73,184,64,55,226,244,63,55,108,49,63,55,230,109,62,55,80,170,61,55,172,230,60,55,248,34,60,55,52,95,59,55,98,155,58,55,129,215,57,55,144,19,57,55,145,79,56,55,132,139,55,55,103,199,54,55,60,3,54,55,2,63,53,55,186,
122,52,55,100,182,51,55,255,241,50,55,140,45,50,55,11,105,49,55,124,164,48,55,223,223,47,55,52,27,47,55,124,86,46,55,182,145,45,55,226,204,44,55,1,8,44,55,18,67,43,55,22,126,42,55,12,185,41,55,246,243,40,55,210,46,40,55,161,105,39,55,100,164,38,55,25,223,37,55,194,25,37,55,94,84,36,55,238,142,35,55,113,201,34,55,231,3,34,55,81,62,33,55,175,120,32,55,1,179,31,55,71,237,30,55,128,39,30,55,174,97,29,55,208,155,28,55,230,213,27,55,240,15,27,55,239,73,26,55,226,131,25,55,202,189,24,55,167,247,23,55,120,
49,23,55,62,107,22,55,249,164,21,55,169,222,20,55,78,24,20,55,232,81,19,55,120,139,18,55,252,196,17,55,119,254,16,55,230,55,16,55,75,113,15,55,166,170,14,55,247,227,13,55,61,29,13,55,122,86,12,55,172,143,11,55,213,200,10,55,243,1,10,55,8,59,9,55,19,116,8,55,21,173,7,55,13,230,6,55,252,30,6,55,225,87,5,55,189,144,4,55,144,201,3,55,90,2,3,55,27,59,2,55,210,115,1,55,129,172,0,55,80,202,255,54,139,59,254,54,181,172,252,54,206,29,251,54,214,142,249,54,206,255,247,54,181,112,246,54,140,225,244,54,83,82,
243,54,9,195,241,54,176,51,240,54,72,164,238,54,207,20,237,54,72,133,235,54,177,245,233,54,11,102,232,54,87,214,230,54,148,70,229,54,194,182,227,54,226,38,226,54,244,150,224,54,248,6,223,54,238,118,221,54,214,230,219,54,177,86,218,54,127,198,216,54,64,54,215,54,243,165,213,54,154,21,212,54,52,133,210,54,194,244,208,54,67,100,207,54,185,211,205,54,34,67,204,54,128,178,202,54,210,33,201,54,24,145,199,54,83,0,198,54,131,111,196,54,168,222,194,54,195,77,193,54,211,188,191,54,216,43,190,54,211,154,188,
54,196,9,187,54,171,120,185,54,136,231,183,54,91,86,182,54,38,197,180,54,230,51,179,54,158,162,177,54,77,17,176,54,243,127,174,54,145,238,172,54,38,93,171,54,178,203,169,54,55,58,168,54,180,168,166,54,41,23,165,54,150,133,163,54,252,243,161,54,91,98,160,54,179,208,158,54,3,63,157,54,77,173,155,54,145,27,154,54,206,137,152,54,4,248,150,54,53,102,149,54,96,212,147,54,133,66,146,54,164,176,144,54,190,30,143,54,211,140,141,54,227,250,139,54,238,104,138,54,244,214,136,54,245,68,135,54,242,178,133,54,235,
32,132,54,224,142,130,54,209,252,128,54,124,213,126,54,80,177,123,54,28,141,120,54,226,104,117,54,162,68,114,54,92,32,111,54,17,252,107,54,193,215,104,54,108,179,101,54,18,143,98,54,180,106,95,54,83,70,92,54,238,33,89,54,134,253,85,54,27,217,82,54,174,180,79,54,63,144,76,54,206,107,73,54,92,71,70,54,232,34,67,54,116,254,63,54,255,217,60,54,139,181,57,54,22,145,54,54,162,108,51,54,47,72,48,54,190,35,45,54,78,255,41,54,223,218,38,54,116,182,35,54,10,146,32,54,164,109,29,54,65,73,26,54,226,36,23,54,
134,0,20,54,47,220,16,54,220,183,13,54,143,147,10,54,70,111,7,54,3,75,4,54,199,38,1,54,32,5,252,53,192,188,245,53,110,116,239,53,43,44,233,53,247,227,226,53,211,155,220,53,191,83,214,53,189,11,208,53,204,195,201,53,239,123,195,53,36,52,189,53,109,236,182,53,203,164,176,53,62,93,170,53,199,21,164,53,103,206,157,53,30,135,151,53,237,63,145,53,212,248,138,53,213,177,132,53,223,213,124,53,74,72,112,53,234,186,99,53,195,45,87,53,213,160,74,53,34,20,62,53,170,135,49,53,112,251,36,53,116,111,24,53,183,227,
11,53,121,176,254,52,8,154,229,52,31,132,204,52,192,110,179,52,238,89,154,52,172,69,129,52,247,99,80,52,193,61,30,52,117,49,216,51,162,211,103,51,7,74,250,49,35,60,41,179,58,222,184,179,232,141,14,180,99,171,64,180,138,199,114,180,44,113,146,180,227,125,171,180,232,137,196,180,56,149,221,180,208,159,246,180,215,212,7,181,104,89,20,181,153,221,32,181,105,97,45,181,215,228,57,181,225,103,70,181,133,234,82,181,196,108,95,181,155,238,107,181,9,112,120,181,134,120,130,181,210,184,136,181,232,248,142,181,
198,56,149,181,108,120,155,181,218,183,161,181,15,247,167,181,10,54,174,181,203,116,180,181,81,179,186,181,154,241,192,181,168,47,199,181,120,109,205,181,11,171,211,181,95,232,217,181,116,37,224,181,73,98,230,181,222,158,236,181,50,219,242,181,68,23,249,181,20,83,255,181,80,199,2,182,245,228,5,182,119,2,9,182,215,31,12,182,20,61,15,182,46,90,18,182,37,119,21,182,247,147,24,182,166,176,27,182,48,205,30,182,149,233,33,182,213,5,37,182,240,33,40,182,229,61,43,182,180,89,46,182,92,117,49,182,222,144,
52,182,56,172,55,182,107,199,58,182,119,226,61,182,90,253,64,182,21,24,68,182,167,50,71,182,16,77,74,182,80,103,77,182,102,129,80,182,82,155,83,182,19,181,86,182,170,206,89,182,22,232,92,182,87,1,96,182,107,26,99,182,84,51,102,182,17,76,105,182,161,100,108,182,4,125,111,182,58,149,114,182,66,173,117,182,28,197,120,182,200,220,123,182,69,244,126,182,202,5,129,182,89,145,130,182,209,28,132,182,49,168,133,182,120,51,135,182,168,190,136,182,191,73,138,182,189,212,139,182,163,95,141,182,111,234,142,182,
35,117,144,182,190,255,145,182,62,138,147,182,166,20,149,182,244,158,150,182,39,41,152,182,65,179,153,182,65,61,155,182,38,199,156,182,240,80,158,182,160,218,159,182,53,100,161,182,175,237,162,182,14,119,164,182,82,0,166,182,122,137,167,182,134,18,169,182,118,155,170,182,75,36,172,182,3,173,173,182,159,53,175,182,31,190,176,182,130,70,178,182,200,206,179,182,241,86,181,182,253,222,182,182,236,102,184,182,189,238,185,182,113,118,187,182,7,254,188,182,127,133,190,182,217,12,192,182,21,148,193,182,50,
27,195,182,49,162,196,182,17,41,198,182,210,175,199,182,117,54,201,182,248,188,202,182,91,67,204,182,159,201,205,182,196,79,207,182,200,213,208,182,173,91,210,182,113,225,211,182,22,103,213,182,153,236,214,182,252,113,216,182,63,247,217,182,96,124,219,182,96,1,221,182,63,134,222,182,253,10,224,182,153,143,225,182,19,20,227,182,107,152,228,182,161,28,230,182,182,160,231,182,167,36,233,182,118,168,234,182,35,44,236,182,172,175,237,182,19,51,239,182,86,182,240,182,118,57,242,182,115,188,243,182,76,63,
245,182,1,194,246,182,146,68,248,182,0,199,249,182,72,73,251,182,109,203,252,182,109,77,254,182,72,207,255,182,127,168,0,183,72,105,1,183,254,41,2,183,161,234,2,183,49,171,3,183,175,107,4,183,26,44,5,183,114,236,5,183,182,172,6,183,232,108,7,183,6,45,8,183,17,237,8,183,9,173,9,183,237,108,10,183,189,44,11,183,122,236,11,183,36,172,12,183,185,107,13,183,59,43,14,183,168,234,14,183,2,170,15,183,72,105,16,183,121,40,17,183,150,231,17,183,159,166,18,183,148,101,19,183,116,36,20,183,63,227,20,183,246,
161,21,183,152,96,22,183,37,31,23,183,158,221,23,183,1,156,24,183,80,90,25,183,137,24,26,183,173,214,26,183,188,148,27,183,182,82,28,183,154,16,29,183,105,206,29,183,34,140,30,183,198,73,31,183,83,7,32,183,203,196,32,183,46,130,33,183,122,63,34,183,176,252,34,183,208,185,35,183,218,118,36,183,206,51,37,183,171,240,37,183,114,173,38,183,35,106,39,183,188,38,40,183,64,227,40,183,172,159,41,183,2,92,42,183,65,24,43,183,105,212,43,183,122,144,44,183,116,76,45,183,87,8,46,183,34,196,46,183,214,127,47,
183,115,59,48,183,248,246,48,183,102,178,49,183,188,109,50,183,251,40,51,183,34,228,51,183,48,159,52,183,39,90,53,183,6,21,54,183,205,207,54,183,124,138,55,183,18,69,56,183,144,255,56,183,246,185,57,183,67,116,58,183,120,46,59,183,149,232,59,183,152,162,60,183,131,92,61,183,85,22,62,183,14,208,62,183,174,137,63,183,53,67,64,183,163,252,64,183,248,181,65,183,51,111,66,183,85,40,67,183,94,225,67,183,77,154,68,183,34,83,69,183,222,11,70,183,129,196,70,183,9,125,71,183,119,53,72,183,204,237,72,183,7,
166,73,183,39,94,74,183,45,22,75,183,25,206,75,183,235,133,76,183,163,61,77,183,63,245,77,183,194,172,78,183,42,100,79,183,119,27,80,183,169,210,80,183,192,137,81,183,189,64,82,183,158,247,82,183,101,174,83,183,16,101,84,183,161,27,85,183,22,210,85,183,111,136,86,183,173,62,87,183,208,244,87,183,215,170,88,183,194,96,89,183,146,22,90,183,70,204,90,183,222,129,91,183,90,55,92,183,186,236,92,183,254,161,93,183,38,87,94,183,50,12,95,183,33,193,95,183,245,117,96,183,171,42,97,183,69,223,97,183,195,147,
98,183,35,72,99,183,104,252,99,183,143,176,100,183,153,100,101,183,135,24,102,183,87,204,102,183,10,128,103,183,161,51,104,183,26,231,104,183,117,154,105,183,180,77,106,183,212,0,107,183,216,179,107,183,189,102,108,183,133,25,109,183,48,204,109,183,188,126,110,183,43,49,111,183,123,227,111,183,174,149,112,183,194,71,113,183,185,249,113,183,145,171,114,183,75,93,115,183,230,14,116,183,99,192,116,183,194,113,117,183,1,35,118,183,35,212,118,183,37,133,119,183,9,54,120,183,206,230,120,183,115,151,121,
183,250,71,122,183,98,248,122,183,171,168,123,183,212,88,124,183,222,8,125,183,201,184,125,183,148,104,126,183,64,24,127,183,204,199,127,183,156,59,128,183,67,147,128,183,217,234,128,183,96,66,129,183,214,153,129,183,61,241,129,183,147,72,130,183,218,159,130,183,16,247,130,183,55,78,131,183,77,165,131,183,82,252,131,183,72,83,132,183,45,170,132,183,3,1,133,183,199,87,133,183,124,174,133,183,31,5,134,183,179,91,134,183,54,178,134,183,168,8,135,183,10,95,135,183,92,181,135,183,156,11,136,183,204,97,
136,183,236,183,136,183,250,13,137,183,248,99,137,183,229,185,137,183,193,15,138,183,141,101,138,183,71,187,138,183,241,16,139,183,137,102,139,183,17,188,139,183,135,17,140,183,237,102,140,183,65,188,140,183,133,17,141,183,183,102,141,183,216,187,141,183,231,16,142,183,230,101,142,183,211,186,142,183,175,15,143,183,121,100,143,183,50,185,143,183,217,13,144,183,111,98,144,183,244,182,144,183,103,11,145,183,201,95,145,183,24,180,145,183,87,8,146,183,131,92,146,183,158,176,146,183,167,4,147,183,158,
88,147,183,132,172,147,183,88,0,148,183,25,84,148,183,201,167,148,183,103,251,148,183,243,78,149,183,109,162,149,183,213,245,149,183,43,73,150,183,111,156,150,183,161,239,150,183,192,66,151,183,206,149,151,183,201,232,151,183,177,59,152,183,136,142,152,183,76,225,152,183,254,51,153,183,157,134,153,183,42,217,153,183,165,43,154,183,13,126,154,183,98,208,154,183,165,34,155,183,214,116,155,183,243,198,155,183,254,24,156,183,247,106,156,183,220,188,156,183,175,14,157,183,111,96,157,183,29,178,157,183,
183,3,158,183,63,85,158,183,179,166,158,183,21,248,158,183,100,73,159,183,160,154,159,183,200,235,159,183,222,60,160,183,224,141,160,183,208,222,160,183,172,47,161,183,117,128,161,183,43,209,161,183,205,33,162,183,92,114,162,183,216,194,162,183,65,19,163,183,150,99,163,183,215,179,163,183,6,4,164,183,32,84,164,183,40,164,164,183,27,244,164,183,251,67,165,183,200,147,165,183,129,227,165,183,38,51,166,183,183,130,166,183,53,210,166,183,159,33,167,183,245,112,167,183,55,192,167,183,102,15,168,183,128,
94,168,183,135,173,168,183,122,252,168,183,88,75,169,183,35,154,169,183,218,232,169,183,124,55,170,183,11,134,170,183,133,212,170,183,235,34,171,183,61,113,171,183,123,191,171,183,164,13,172,183,185,91,172,183,186,169,172,183,167,247,172,183,127,69,173,183,66,147,173,183,242,224,173,183,140,46,174,183,19,124,174,183,132,201,174,183,225,22,175,183,42,100,175,183,94,177,175,183,125,254,175,183,136,75,176,183,125,152,176,183,95,229,176,183,43,50,177,183,226,126,177,183,133,203,177,183,19,24,178,183,
140,100,178,183,240,176,178,183,63,253,178,183,121,73,179,183,158,149,179,183,174,225,179,183,169,45,180,183,143,121,180,183,95,197,180,183,27,17,181,183,193,92,181,183,82,168,181,183,206,243,181,183,52,63,182,183,134,138,182,183,194,213,182,183,232,32,183,183,249,107,183,183,245,182,183,183,219,1,184,183,172,76,184,183,103,151,184,183,13,226,184,183,157,44,185,183,24,119,185,183,124,193,185,183,204,11,186,183,5,86,186,183,41,160,186,183,55,234,186,183,47,52,187,183,18,126,187,183,223,199,187,183,
149,17,188,183,54,91,188,183,193,164,188,183,54,238,188,183,149,55,189,183,222,128,189,183,18,202,189,183,47,19,190,183,53,92,190,183,38,165,190,183,1,238,190,183,197,54,191,183,116,127,191,183,12,200,191,183,141,16,192,183,249,88,192,183,78,161,192,183,141,233,192,183,181,49,193,183,199,121,193,183,195,193,193,183,168,9,194,183,119,81,194,183,47,153,194,183,209,224,194,183,92,40,195,183,208,111,195,183,46,183,195,183,117,254,195,183,166,69,196,183,192,140,196,183,195,211,196,183,175,26,197,183,133,
97,197,183,68,168,197,183,236,238,197,183,125,53,198,183,247,123,198,183,90,194,198,183,167,8,199,183,220,78,199,183,250,148,199,183,2,219,199,183,242,32,200,183,203,102,200,183,141,172,200,183,56,242,200,183,204,55,201,183,72,125,201,183,174,194,201,183,252,7,202,183,51,77,202,183,82,146,202,183,91,215,202,183,76,28,203,183,37,97,203,183,231,165,203,183,146,234,203,183,37,47,204,183,161,115,204,183,5,184,204,183,82,252,204,183,135,64,205,183,165,132,205,183,171,200,205,183,153,12,206,183,112,80,
206,183,47,148,206,183,214,215,206,183,102,27,207,183,221,94,207,183,61,162,207,183,134,229,207,183,182,40,208,183,206,107,208,183,207,174,208,183,184,241,208,183,136,52,209,183,65,119,209,183,226,185,209,183,106,252,209,183,219,62,210,183,52,129,210,183,116,195,210,183,157,5,211,183,173,71,211,183,165,137,211,183,133,203,211,183,76,13,212,183,252,78,212,183,147,144,212,183,18,210,212,183,120,19,213,183,198,84,213,183,252,149,213,183,25,215,213,183,30,24,214,183,11,89,214,183,223,153,214,183,154,
218,214,183,61,27,215,183,200,91,215,183,58,156,215,183,147,220,215,183,212,28,216,183,252,92,216,183,11,157,216,183,2,221,216,183,224,28,217,183,165,92,217,183,82,156,217,183,229,219,217,183,96,27,218,183,194,90,218,183,11,154,218,183,60,217,218,183,83,24,219,183,81,87,219,183,55,150,219,183,3,213,219,183,183,19,220,183,81,82,220,183,211,144,220,183,59,207,220,183,138,13,221,183,192,75,221,183,221,137,221,183,225,199,221,183,204,5,222,183,157,67,222,183,86,129,222,183,244,190,222,183,122,252,222,
183,230,57,223,183,57,119,223,183,115,180,223,183,147,241,223,183,154,46,224,183,136,107,224,183,92,168,224,183,22,229,224,183,183,33,225,183,63,94,225,183,173,154,225,183,1,215,225,183,60,19,226,183,93,79,226,183,101,139,226,183,83,199,226,183,39,3,227,183,226,62,227,183,130,122,227,183,10,182,227,183,119,241,227,183,203,44,228,183,4,104,228,183,36,163,228,183,42,222,228,183,23,25,229,183,233,83,229,183,161,142,229,183,64,201,229,183,196,3,230,183,47,62,230,183,128,120,230,183,182,178,230,183,211,
236,230,183,213,38,231,183,189,96,231,183,139,154,231,183,64,212,231,183,217,13,232,183,89,71,232,183,191,128,232,183,10,186,232,183,59,243,232,183,82,44,233,183,78,101,233,183,49,158,233,183,249,214,233,183,166,15,234,183,57,72,234,183,178,128,234,183,17,185,234,183,85,241,234,183,126,41,235,183,141,97,235,183,130,153,235,183,92,209,235,183,27,9,236,183,192,64,236,183,75,120,236,183,186,175,236,183,15,231,236,183,74,30,237,183,106,85,237,183,111,140,237,183,90,195,237,183,41,250,237,183,222,48,238,
183,121,103,238,183,248,157,238,183,93,212,238,183,167,10,239,183,214,64,239,183,234,118,239,183,227,172,239,183,194,226,239,183,133,24,240,183,46,78,240,183,187,131,240,183,46,185,240,183,134,238,240,183,194,35,241,183,228,88,241,183,234,141,241,183,214,194,241,183,166,247,241,183,91,44,242,183,246,96,242,183,117,149,242,183,216,201,242,183,33,254,242,183,78,50,243,183,96,102,243,183,87,154,243,183,51,206,243,183,243,1,244,183,152,53,244,183,34,105,244,183,145,156,244,183,228,207,244,183,27,3,245,
183,56,54,245,183,56,105,245,183,30,156,245,183,232,206,245,183,150,1,246,183,41,52,246,183,161,102,246,183,253,152,246,183,61,203,246,183,98,253,246,183,107,47,247,183,89,97,247,183,43,147,247,183,225,196,247,183,124,246,247,183,251,39,248,183,94,89,248,183,166,138,248,183,210,187,248,183,226,236,248,183,215,29,249,183,175,78,249,183,108,127,249,183,13,176,249,183,147,224,249,183,252,16,250,183,73,65,250,183,123,113,250,183,145,161,250,183,139,209,250,183,105,1,251,183,42,49,251,183,208,96,251,183,
90,144,251,183,200,191,251,183,26,239,251,183,80,30,252,183,106,77,252,183,104,124,252,183,73,171,252,183,15,218,252,183,185,8,253,183,70,55,253,183,183,101,253,183,12,148,253,183,69,194,253,183,97,240,253,183,98,30,254,183,70,76,254,183,14,122,254,183,185,167,254,183,73,213,254,183,188,2,255,183,18,48,255,183,77,93,255,183,107,138,255,183,108,183,255,183,82,228,255,183,141,8,0,184,228,30,0,184,44,53,0,184,101,75,0,184,145,97,0,184,174,119,0,184,189,141,0,184,190,163,0,184,177,185,0,184,149,207,0,
184,107,229,0,184,51,251,0,184,236,16,1,184,151,38,1,184,52,60,1,184,194,81,1,184,67,103,1,184,181,124,1,184,24,146,1,184,109,167,1,184,180,188,1,184,236,209,1,184,22,231,1,184,50,252,1,184,63,17,2,184,62,38,2,184,47,59,2,184,17,80,2,184,229,100,2,184,170,121,2,184,97,142,2,184,9,163,2,184,163,183,2,184,47,204,2,184,172,224,2,184,27,245,2,184,123,9,3,184,204,29,3,184,16,50,3,184,68,70,3,184,106,90,3,184,130,110,3,184,139,130,3,184,134,150,3,184,114,170,3,184,80,190,3,184,31,210,3,184,223,229,3,184,
145,249,3,184,53,13,4,184,201,32,4,184,80,52,4,184,199,71,4,184,48,91,4,184,139,110,4,184,215,129,4,184,20,149,4,184,67,168,4,184,99,187,4,184,116,206,4,184,119,225,4,184,107,244,4,184,81,7,5,184,40,26,5,184,240,44,5,184,169,63,5,184,84,82,5,184,240,100,5,184,126,119,5,184,253,137,5,184,109,156,5,184,206,174,5,184,33,193,5,184,101,211,5,184,154,229,5,184,193,247,5,184,216,9,6,184,225,27,6,184,220,45,6,184,199,63,6,184,164,81,6,184,114,99,6,184,49,117,6,184,226,134,6,184,132,152,6,184,22,170,6,184,
155,187,6,184,16,205,6,184,118,222,6,184,206,239,6,184,23,1,7,184,81,18,7,184,124,35,7,184,153,52,7,184,166,69,7,184,165,86,7,184,149,103,7,184,118,120,7,184,72,137,7,184,11,154,7,184,192,170,7,184,101,187,7,184,252,203,7,184,132,220,7,184,252,236,7,184,102,253,7,184,193,13,8,184,14,30,8,184,75,46,8,184,121,62,8,184,153,78,8,184,169,94,8,184,170,110,8,184,157,126,8,184,129,142,8,184,85,158,8,184,27,174,8,184,210,189,8,184,122,205,8,184,18,221,8,184,156,236,8,184,23,252,8,184,131,11,9,184,224,26,9,
184,45,42,9,184,108,57,9,184,156,72,9,184,189,87,9,184,207,102,9,184,210,117,9,184,197,132,9,184,170,147,9,184,128,162,9,184,70,177,9,184,254,191,9,184,167,206,9,184,64,221,9,184,202,235,9,184,70,250,9,184,178,8,10,184,15,23,10,184,94,37,10,184,157,51,10,184,205,65,10,184,237,79,10,184,255,93,10,184,2,108,10,184,245,121,10,184,218,135,10,184,175,149,10,184,118,163,10,184,45,177,10,184,213,190,10,184,110,204,10,184,247,217,10,184,114,231,10,184,221,244,10,184,58,2,11,184,135,15,11,184,197,28,11,184,
244,41,11,184,19,55,11,184,36,68,11,184,37,81,11,184,23,94,11,184,250,106,11,184,206,119,11,184,147,132,11,184,72,145,11,184,238,157,11,184,133,170,11,184,13,183,11,184,134,195,11,184,239,207,11,184,73,220,11,184,148,232,11,184,208,244,11,184,252,0,12,184,26,13,12,184,40,25,12,184,39,37,12,184,22,49,12,184,247,60,12,184,200,72,12,184,138,84,12,184,60,96,12,184,223,107,12,184,116,119,12,184,248,130,12,184,110,142,12,184,212,153,12,184,43,165,12,184,115,176,12,184,172,187,12,184,213,198,12,184,239,
209,12,184,249,220,12,184,245,231,12,184,225,242,12,184,189,253,12,184,139,8,13,184,73,19,13,184,248,29,13,184,151,40,13,184,39,51,13,184,168,61,13,184,26,72,13,184,124,82,13,184,207,92,13,184,19,103,13,184,71,113,13,184,108,123,13,184,130,133,13,184,136,143,13,184,127,153,13,184,102,163,13,184,63,173,13,184,7,183,13,184,193,192,13,184,107,202,13,184,6,212,13,184,146,221,13,184,14,231,13,184,122,240,13,184,216,249,13,184,38,3,14,184,101,12,14,184,148,21,14,184,180,30,14,184,196,39,14,184,197,48,14,
184,183,57,14,184,154,66,14,184,109,75,14,184,48,84,14,184,228,92,14,184,137,101,14,184,31,110,14,184,165,118,14,184,27,127,14,184,131,135,14,184,218,143,14,184,35,152,14,184,92,160,14,184,134,168,14,184,160,176,14,184,171,184,14,184,166,192,14,184,146,200,14,184,111,208,14,184,60,216,14,184,249,223,14,184,168,231,14,184,71,239,14,184,214,246,14,184,86,254,14,184,199,5,15,184,40,13,15,184,121,20,15,184,188,27,15,184,239,34,15,184,18,42,15,184,38,49,15,184,43,56,15,184,32,63,15,184,5,70,15,184,220,
76,15,184,162,83,15,184,90,90,15,184,2,97,15,184,154,103,15,184,35,110,15,184,156,116,15,184,7,123,15,184,97,129,15,184,172,135,15,184,232,141,15,184,20,148,15,184,49,154,15,184,62,160,15,184,60,166,15,184,43,172,15,184,10,178,15,184,217,183,15,184,153,189,15,184,74,195,15,184,235,200,15,184,124,206,15,184,255,211,15,184,113,217,15,184,212,222,15,184,40,228,15,184,109,233,15,184,161,238,15,184,199,243,15,184,221,248,15,184,227,253,15,184,218,2,16,184,193,7,16,184,153,12,16,184,98,17,16,184,27,22,
16,184,196,26,16,184,94,31,16,184,233,35,16,184,100,40,16,184,208,44,16,184,44,49,16,184,121,53,16,184,182,57,16,184,228,61,16,184,2,66,16,184,17,70,16,184,16,74,16,184,0,78,16,184,224,81,16,184,177,85,16,184,114,89,16,184,36,93,16,184,199,96,16,184,90,100,16,184,221,103,16,184,81,107,16,184,181,110,16,184,10,114,16,184,80,117,16,184,134,120,16,184,173,123,16,184,196,126,16,184,203,129,16,184,196,132,16,184,172,135,16,184,133,138,16,184,79,141,16,184,9,144,16,184,180,146,16,184,79,149,16,184,219,
151,16,184,88,154,16,184,196,156,16,184,34,159,16,184,112,161,16,184,174,163,16,184,221,165,16,184,253,167,16,184,13,170,16,184,13,172,16,184,254,173,16,184,224,175,16,184,178,177,16,184,117,179,16,184,40,181,16,184,204,182,16,184,96,184,16,184,229,185,16,184,90,187,16,184,192,188,16,184,22,190,16,184,93,191,16,184,149,192,16,184,189,193,16,184,214,194,16,184,223,195,16,184,216,196,16,184,195,197,16,184,157,198,16,184,105,199,16,184,37,200,16,184,209,200,16,184,110,201,16,184,251,201,16,184,122,202,
16,184,232,202,16,184,71,203,16,184,151,203,16,184,215,203,16,184,8,204,16,184,42,204,16,184,60,204,16,184,62,204,16,184,49,204,16,184,21,204,16,184,233,203,16,184,174,203,16,184,100,203,16,184,10,203,16,184,160,202,16,184,39,202,16,184,159,201,16,184,7,201,16,184,96,200,16,184,170,199,16,184,228,198,16,184,14,198,16,184,42,197,16,184,53,196,16,184,50,195,16,184,31,194,16,184,252,192,16,184,203,191,16,184,137,190,16,184,57,189,16,184,217,187,16,184,106,186,16,184,235,184,16,184,93,183,16,184,191,
181,16,184,18,180,16,184,86,178,16,184,138,176,16,184,175,174,16,184,197,172,16,184,203,170,16,184,194,168,16,184,169,166,16,184,129,164,16,184,74,162,16,184,4,160,16,184,174,157,16,184,72,155,16,184,212,152,16,184,80,150,16,184,188,147,16,184,25,145,16,184,103,142,16,184,166,139,16,184,213,136,16,184,245,133,16,184,6,131,16,184,7,128,16,184,249,124,16,184,220,121,16,184,175,118,16,184,115,115,16,184,40,112,16,184,205,108,16,184,99,105,16,184,234,101,16,184,97,98,16,184,201,94,16,184,34,91,16,184,
108,87,16,184,166,83,16,184,209,79,16,184,237,75,16,184,249,71,16,184,246,67,16,184,228,63,16,184,195,59,16,184,146,55,16,184,82,51,16,184,3,47,16,184,164,42,16,184,54,38,16,184,185,33,16,184,45,29,16,184,146,24,16,184,231,19,16,184,45,15,16,184,100,10,16,184,139,5,16,184,164,0,16,184,173,251,15,184,167,246,15,184,145,241,15,184,109,236,15,184,57,231,15,184,246,225,15,184,164,220,15,184,67,215,15,184,210,209,15,184,82,204,15,184,195,198,15,184,37,193,15,184,120,187,15,184,188,181,15,184,240,175,15,
184,21,170,15,184,43,164,15,184,50,158,15,184,42,152,15,184,18,146,15,184,236,139,15,184,182,133,15,184,113,127,15,184,29,121,15,184,186,114,15,184,72,108,15,184,198,101,15,184,54,95,15,184,150,88,15,184,231,81,15,184,41,75,15,184,92,68,15,184,128,61,15,184,149,54,15,184,155,47,15,184,146,40,15,184,121,33,15,184,82,26,15,184,27,19,15,184,213,11,15,184,129,4,15,184,29,253,14,184,170,245,14,184,40,238,14,184,151,230,14,184,247,222,14,184,73,215,14,184,139,207,14,184,189,199,14,184,225,191,14,184,246,
183,14,184,252,175,14,184,243,167,14,184,219,159,14,184,180,151,14,184,126,143,14,184,57,135,14,184,229,126,14,184,130,118,14,184,16,110,14,184,143,101,14,184,255,92,14,184,96,84,14,184,178,75,14,184,245,66,14,184,42,58,14,184,79,49,14,184,101,40,14,184,109,31,14,184,101,22,14,184,79,13,14,184,42,4,14,184,245,250,13,184,178,241,13,184,96,232,13,184,255,222,13,184,144,213,13,184,17,204,13,184,131,194,13,184,231,184,13,184,60,175,13,184,130,165,13,184,185,155,13,184,225,145,13,184,250,135,13,184,5,
126,13,184,0,116,13,184,237,105,13,184,203,95,13,184,155,85,13,184,91,75,13,184,13,65,13,184,175,54,13,184,68,44,13,184,201,33,13,184,63,23,13,184,167,12,13,184,0,2,13,184,74,247,12,184,133,236,12,184,178,225,12,184,208,214,12,184,223,203,12,184,224,192,12,184,209,181,12,184,180,170,12,184,137,159,12,184,78,148,12,184,5,137,12,184,173,125,12,184,71,114,12,184,210,102,12,184,78,91,12,184,187,79,12,184,26,68,12,184,106,56,12,184,172,44,12,184,223,32,12,184,3,21,12,184,25,9,12,184,32,253,11,184,24,241,
11,184,2,229,11,184,221,216,11,184,169,204,11,184,103,192,11,184,23,180,11,184,183,167,11,184,74,155,11,184,205,142,11,184,66,130,11,184,169,117,11,184,1,105,11,184,74,92,11,184,133,79,11,184,177,66,11,184,207,53,11,184,223,40,11,184,223,27,11,184,210,14,11,184,182,1,11,184,139,244,10,184,82,231,10,184,10,218,10,184,180,204,10,184,80,191,10,184,221,177,10,184,91,164,10,184,204,150,10,184,45,137,10,184,129,123,10,184,197,109,10,184,252,95,10,184,36,82,10,184,62,68,10,184,73,54,10,184,70,40,10,184,
52,26,10,184,21,12,10,184,230,253,9,184,170,239,9,184,95,225,9,184,6,211,9,184,158,196,9,184,40,182,9,184,164,167,9,184,18,153,9,184,113,138,9,184,194,123,9,184,5,109,9,184,57,94,9,184,95,79,9,184,119,64,9,184,128,49,9,184,124,34,9,184,105,19,9,184,72,4,9,184,24,245,8,184,219,229,8,184,143,214,8,184,53,199,8,184,205,183,8,184,87,168,8,184,210,152,8,184,63,137,8,184,159,121,8,184,240,105,8,184,50,90,8,184,103,74,8,184,142,58,8,184,166,42,8,184,177,26,8,184,173,10,8,184,155,250,7,184,123,234,7,184,
77,218,7,184,17,202,7,184,199,185,7,184,111,169,7,184,8,153,7,184,148,136,7,184,18,120,7,184,130,103,7,184,227,86,7,184,55,70,7,184,124,53,7,184,180,36,7,184,222,19,7,184,249,2,7,184,7,242,6,184,7,225,6,184,249,207,6,184,221,190,6,184,179,173,6,184,123,156,6,184,53,139,6,184,225,121,6,184,127,104,6,184,16,87,6,184,146,69,6,184,7,52,6,184,110,34,6,184,199,16,6,184,18,255,5,184,79,237,5,184,127,219,5,184,160,201,5,184,180,183,5,184,186,165,5,184,178,147,5,184,157,129,5,184,122,111,5,184,73,93,5,184,
10,75,5,184,189,56,5,184,99,38,5,184,251,19,5,184,133,1,5,184,2,239,4,184,112,220,4,184,210,201,4,184,37,183,4,184,107,164,4,184,163,145,4,184,205,126,4,184,234,107,4,184,249,88,4,184,251,69,4,184,239,50,4,184,213,31,4,184,174,12,4,184,121,249,3,184,54,230,3,184,230,210,3,184,137,191,3,184,30,172,3,184,165,152,3,184,31,133,3,184,139,113,3,184,234,93,3,184,59,74,3,184,127,54,3,184,181,34,3,184,222,14,3,184,249,250,2,184,7,231,2,184,7,211,2,184,250,190,2,184,223,170,2,184,184,150,2,184,130,130,2,184,
63,110,2,184,239,89,2,184,146,69,2,184,39,49,2,184,175,28,2,184,41,8,2,184,150,243,1,184,246,222,1,184,72,202,1,184,142,181,1,184,197,160,1,184,240,139,1,184,13,119,1,184,29,98,1,184,32,77,1,184,21,56,1,184,253,34,1,184,216,13,1,184,166,248,0,184,103,227,0,184,26,206,0,184,192,184,0,184,89,163,0,184,229,141,0,184,99,120,0,184,213,98,0,184,57,77,0,184,145,55,0,184,219,33,0,184,24,12,0,184,143,236,255,183,213,192,255,183,0,149,255,183,17,105,255,183,8,61,255,183,230,16,255,183,169,228,254,183,82,184,
254,183,224,139,254,183,85,95,254,183,176,50,254,183,241,5,254,183,24,217,253,183,37,172,253,183,25,127,253,183,242,81,253,183,177,36,253,183,87,247,252,183,227,201,252,183,85,156,252,183,173,110,252,183,235,64,252,183,16,19,252,183,27,229,251,183,12,183,251,183,228,136,251,183,162,90,251,183,71,44,251,183,209,253,250,183,67,207,250,183,154,160,250,183,216,113,250,183,253,66,250,183,8,20,250,183,250,228,249,183,210,181,249,183,145,134,249,183,54,87,249,183,194,39,249,183,53,248,248,183,142,200,248,
183,206,152,248,183,245,104,248,183,2,57,248,183,246,8,248,183,209,216,247,183,147,168,247,183,59,120,247,183,203,71,247,183,65,23,247,183,158,230,246,183,226,181,246,183,13,133,246,183,31,84,246,183,24,35,246,183,248,241,245,183,191,192,245,183,109,143,245,183,2,94,245,183,126,44,245,183,226,250,244,183,44,201,244,183,94,151,244,183,119,101,244,183,119,51,244,183,94,1,244,183,44,207,243,183,226,156,243,183,127,106,243,183,4,56,243,183,111,5,243,183,194,210,242,183,253,159,242,183,31,109,242,183,
40,58,242,183,25,7,242,183,242,211,241,183,177,160,241,183,89,109,241,183,232,57,241,183,94,6,241,183,189,210,240,183,2,159,240,183,48,107,240,183,69,55,240,183,66,3,240,183,38,207,239,183,243,154,239,183,167,102,239,183,67,50,239,183,198,253,238,183,50,201,238,183,134,148,238,183,193,95,238,183,228,42,238,183,239,245,237,183,227,192,237,183,190,139,237,183,129,86,237,183,44,33,237,183,192,235,236,183,59,182,236,183,159,128,236,183,235,74,236,183,30,21,236,183,59,223,235,183,63,169,235,183,43,115,
235,183,0,61,235,183,189,6,235,183,99,208,234,183,241,153,234,183,103,99,234,183,197,44,234,183,12,246,233,183,60,191,233,183,84,136,233,183,84,81,233,183,61,26,233,183,14,227,232,183,200,171,232,183,107,116,232,183,246,60,232,183,106,5,232,183,198,205,231,183,12,150,231,183,58,94,231,183,80,38,231,183,80,238,230,183,56,182,230,183,9,126,230,183,195,69,230,183,102,13,230,183,242,212,229,183,103,156,229,183,196,99,229,183,11,43,229,183,58,242,228,183,83,185,228,183,85,128,228,183,64,71,228,183,19,
14,228,183,208,212,227,183,119,155,227,183,6,98,227,183,127,40,227,183,224,238,226,183,44,181,226,183,96,123,226,183,126,65,226,183,133,7,226,183,117,205,225,183,79,147,225,183,18,89,225,183,191,30,225,183,85,228,224,183,213,169,224,183,62,111,224,183,145,52,224,183,205,249,223,183,243,190,223,183,3,132,223,183,252,72,223,183,223,13,223,183,172,210,222,183,98,151,222,183,3,92,222,183,141,32,222,183,0,229,221,183,94,169,221,183,166,109,221,183,215,49,221,183,243,245,220,183,248,185,220,183,231,125,
220,183,193,65,220,183,132,5,220,183,50,201,219,183,201,140,219,183,75,80,219,183,183,19,219,183,13,215,218,183,77,154,218,183,119,93,218,183,140,32,218,183,139,227,217,183,117,166,217,183,72,105,217,183,6,44,217,183,175,238,216,183,66,177,216,183,191,115,216,183,39,54,216,183,121,248,215,183,182,186,215,183,222,124,215,183,240,62,215,183,236,0,215,183,212,194,214,183,166,132,214,183,98,70,214,183,10,8,214,183,156,201,213,183,25,139,213,183,129,76,213,183,211,13,213,183,17,207,212,183,57,144,212,
183,77,81,212,183,75,18,212,183,52,211,211,183,9,148,211,183,200,84,211,183,114,21,211,183,8,214,210,183,137,150,210,183,245,86,210,183,76,23,210,183,142,215,209,183,187,151,209,183,212,87,209,183,216,23,209,183,199,215,208,183,162,151,208,183,104,87,208,183,26,23,208,183,183,214,207,183,63,150,207,183,179,85,207,183,19,21,207,183,94,212,206,183,148,147,206,183,183,82,206,183,197,17,206,183,190,208,205,183,163,143,205,183,116,78,205,183,49,13,205,183,218,203,204,183,110,138,204,183,239,72,204,183,
91,7,204,183,179,197,203,183,247,131,203,183,39,66,203,183,67,0,203,183,75,190,202,183,63,124,202,183,31,58,202,183,235,247,201,183,163,181,201,183,72,115,201,183,217,48,201,183,86,238,200,183,191,171,200,183,21,105,200,183,86,38,200,183,133,227,199,183,159,160,199,183,166,93,199,183,154,26,199,183,122,215,198,183,70,148,198,183,255,80,198,183,165,13,198,183,55,202,197,183,182,134,197,183,33,67,197,183,121,255,196,183,190,187,196,183,240,119,196,183,14,52,196,183,25,240,195,183,17,172,195,183,246,
103,195,183,200,35,195,183,134,223,194,183,50,155,194,183,202,86,194,183,80,18,194,183,195,205,193,183,34,137,193,183,111,68,193,183,169,255,192,183,208,186,192,183,229,117,192,183,230,48,192,183,213,235,191,183,177,166,191,183,122,97,191,183,49,28,191,183,213,214,190,183,103,145,190,183,230,75,190,183,82,6,190,183,172,192,189,183,244,122,189,183,41,53,189,183,76,239,188,183,92,169,188,183,90,99,188,183,70,29,188,183,31,215,187,183,230,144,187,183,155,74,187,183,62,4,187,183,206,189,186,183,77,119,
186,183,185,48,186,183,19,234,185,183,92,163,185,183,146,92,185,183,182,21,185,183,201,206,184,183,201,135,184,183,184,64,184,183,148,249,183,183,95,178,183,183,25,107,183,183,192,35,183,183,86,220,182,183,218,148,182,183,76,77,182,183,173,5,182,183,252,189,181,183,57,118,181,183,101,46,181,183,128,230,180,183,137,158,180,183,129,86,180,183,103,14,180,183,60,198,179,183,255,125,179,183,178,53,179,183,83,237,178,183,226,164,178,183,97,92,178,183,206,19,178,183,42,203,177,183,118,130,177,183,176,57,
177,183,217,240,176,183,240,167,176,183,247,94,176,183,237,21,176,183,210,204,175,183,167,131,175,183,106,58,175,183,28,241,174,183,190,167,174,183,79,94,174,183,207,20,174,183,63,203,173,183,158,129,173,183,236,55,173,183,42,238,172,183,87,164,172,183,115,90,172,183,127,16,172,183,123,198,171,183,102,124,171,183,65,50,171,183,11,232,170,183,197,157,170,183,111,83,170,183,8,9,170,183,145,190,169,183,10,116,169,183,115,41,169,183,204,222,168,183,20,148,168,183,77,73,168,183,117,254,167,183,141,179,
167,183,150,104,167,183,142,29,167,183,119,210,166,183,79,135,166,183,24,60,166,183,209,240,165,183,123,165,165,183,20,90,165,183,158,14,165,183,24,195,164,183,130,119,164,183,221,43,164,183,40,224,163,183,100,148,163,183,144,72,163,183,173,252,162,183,186,176,162,183,184,100,162,183,166,24,162,183,133,204,161,183,85,128,161,183,21,52,161,183,198,231,160,183,104,155,160,183,251,78,160,183,127,2,160,183,243,181,159,183,89,105,159,183,175,28,159,183,246,207,158,183,47,131,158,183,88,54,158,183,115,
233,157,183,126,156,157,183,123,79,157,183,105,2,157,183,72,181,156,183,24,104,156,183,218,26,156,183,141,205,155,183,49,128,155,183,199,50,155,183,78,229,154,183,199,151,154,183,49,74,154,183,140,252,153,183,218,174,153,183,24,97,153,183,73,19,153,183,107,197,152,183,126,119,152,183,132,41,152,183,123,219,151,183,100,141,151,183,63,63,151,183,11,241,150,183,202,162,150,183,122,84,150,183,28,6,150,183,177,183,149,183,55,105,149,183,176,26,149,183,26,204,148,183,119,125,148,183,198,46,148,183,7,224,
147,183,58,145,147,183,96,66,147,183,119,243,146,183,130,164,146,183,126,85,146,183,109,6,146,183,79,183,145,183,34,104,145,183,233,24,145,183,162,201,144,183,77,122,144,183,235,42,144,183,124,219,143,183,255,139,143,183,117,60,143,183,222,236,142,183,58,157,142,183,136,77,142,183,202,253,141,183,254,173,141,183,37,94,141,183,63,14,141,183,76,190,140,183,76,110,140,183,63,30,140,183,37,206,139,183,255,125,139,183,203,45,139,183,139,221,138,183,62,141,138,183,228,60,138,183,125,236,137,183,10,156,
137,183,138,75,137,183,254,250,136,183,101,170,136,183,191,89,136,183,13,9,136,183,79,184,135,183,132,103,135,183,173,22,135,183,201,197,134,183,217,116,134,183,221,35,134,183,212,210,133,183,192,129,133,183,159,48,133,183,114,223,132,183,57,142,132,183,244,60,132,183,162,235,131,183,69,154,131,183,220,72,131,183,103,247,130,183,230,165,130,183,89,84,130,183,192,2,130,183,28,177,129,183,107,95,129,183,175,13,129,183,232,187,128,183,20,106,128,183,53,24,128,183,150,140,127,183,170,232,126,183,166,
68,126,183,140,160,125,183,91,252,124,183,20,88,124,183,181,179,123,183,64,15,123,183,180,106,122,183,18,198,121,183,89,33,121,183,138,124,120,183,164,215,119,183,168,50,119,183,151,141,118,183,111,232,117,183,49,67,117,183,221,157,116,183,115,248,115,183,243,82,115,183,94,173,114,183,178,7,114,183,242,97,113,183,27,188,112,183,48,22,112,183,47,112,111,183,24,202,110,183,236,35,110,183,172,125,109,183,86,215,108,183,235,48,108,183,107,138,107,183,214,227,106,183,44,61,106,183,110,150,105,183,155,
239,104,183,179,72,104,183,183,161,103,183,166,250,102,183,129,83,102,183,72,172,101,183,250,4,101,183,152,93,100,183,34,182,99,183,152,14,99,183,251,102,98,183,73,191,97,183,131,23,97,183,170,111,96,183,189,199,95,183,188,31,95,183,168,119,94,183,128,207,93,183,69,39,93,183,247,126,92,183,149,214,91,183,33,46,91,183,153,133,90,183,254,220,89,183,80,52,89,183,144,139,88,183,188,226,87,183,214,57,87,183,221,144,86,183,210,231,85,183,180,62,85,183,131,149,84,183,64,236,83,183,235,66,83,183,132,153,
82,183,10,240,81,183,127,70,81,183,225,156,80,183,50,243,79,183,112,73,79,183,157,159,78,183,184,245,77,183,194,75,77,183,185,161,76,183,160,247,75,183,117,77,75,183,56,163,74,183,235,248,73,183,140,78,73,183,27,164,72,183,154,249,71,183,8,79,71,183,101,164,70,183,177,249,69,183,236,78,69,183,23,164,68,183,49,249,67,183],"i8",4,y.a+1054720);
Q([58,78,67,183,51,163,66,183,28,248,65,183,244,76,65,183,188,161,64,183,115,246,63,183,27,75,63,183,178,159,62,183,58,244,61,183,178,72,61,183,25,157,60,183,113,241,59,183,186,69,59,183,243,153,58,183,28,238,57,183,53,66,57,183,64,150,56,183,59,234,55,183,39,62,55,183,3,146,54,183,209,229,53,183,143,57,53,183,63,141,52,183,223,224,51,183,113,52,51,183,244,135,50,183,105,219,49,183,207,46,49,183,38,130,48,183,111,213,47,183,169,40,47,183,214,123,46,183,244,206,45,183,4,34,45,183,5,117,44,183,249,
199,43,183,223,26,43,183,183,109,42,183,129,192,41,183,62,19,41,183,237,101,40,183,142,184,39,183,34,11,39,183,169,93,38,183,34,176,37,183,142,2,37,183,236,84,36,183,62,167,35,183,130,249,34,183,186,75,34,183,228,157,33,183,2,240,32,183,19,66,32,183,24,148,31,183,15,230,30,183,251,55,30,183,218,137,29,183,172,219,28,183,114,45,28,183,44,127,27,183,218,208,26,183,123,34,26,183,17,116,25,183,155,197,24,183,25,23,24,183,139,104,23,183,241,185,22,183,76,11,22,183,155,92,21,183,222,173,20,183,23,255,19,
183,68,80,19,183,101,161,18,183,124,242,17,183,135,67,17,183,135,148,16,183,124,229,15,183,103,54,15,183,70,135,14,183,27,216,13,183,229,40,13,183,164,121,12,183,89,202,11,183,4,27,11,183,164,107,10,183,58,188,9,183,197,12,9,183,71,93,8,183,190,173,7,183,43,254,6,183,143,78,6,183,232,158,5,183,56,239,4,183,126,63,4,183,186,143,3,183,237,223,2,183,22,48,2,183,54,128,1,183,77,208,0,183,90,32,0,183,188,224,254,182,177,128,253,182,149,32,252,182,103,192,250,182,39,96,249,182,213,255,247,182,114,159,246,
182,254,62,245,182,120,222,243,182,225,125,242,182,57,29,241,182,129,188,239,182,184,91,238,182,222,250,236,182,244,153,235,182,250,56,234,182,240,215,232,182,214,118,231,182,173,21,230,182,116,180,228,182,43,83,227,182,211,241,225,182,108,144,224,182,246,46,223,182,113,205,221,182,222,107,220,182,60,10,219,182,139,168,217,182,204,70,216,182,0,229,214,182,37,131,213,182,60,33,212,182,70,191,210,182,67,93,209,182,50,251,207,182,20,153,206,182,232,54,205,182,176,212,203,182,107,114,202,182,26,16,201,
182,188,173,199,182,82,75,198,182,220,232,196,182,89,134,195,182,203,35,194,182,49,193,192,182,140,94,191,182,219,251,189,182,31,153,188,182,88,54,187,182,133,211,185,182,168,112,184,182,193,13,183,182,206,170,181,182,210,71,180,182,203,228,178,182,186,129,177,182,160,30,176,182,123,187,174,182,77,88,173,182,21,245,171,182,212,145,170,182,138,46,169,182,55,203,167,182,219,103,166,182,119,4,165,182,9,161,163,182,147,61,162,182,21,218,160,182,143,118,159,182,1,19,158,182,107,175,156,182,206,75,155,
182,40,232,153,182,124,132,152,182,200,32,151,182,13,189,149,182,75,89,148,182,131,245,146,182,179,145,145,182,222,45,144,182,2,202,142,182,31,102,141,182,55,2,140,182,73,158,138,182,85,58,137,182,91,214,135,182,92,114,134,182,88,14,133,182,78,170,131,182,64,70,130,182,44,226,128,182,40,252,126,182,239,51,124,182,173,107,121,182,98,163,118,182,16,219,115,182,181,18,113,182,82,74,110,182,233,129,107,182,120,185,104,182,0,241,101,182,130,40,99,182,254,95,96,182,116,151,93,182,229,206,90,182,80,6,88,
182,183,61,85,182,24,117,82,182,117,172,79,182,207,227,76,182,36,27,74,182,118,82,71,182,197,137,68,182,17,193,65,182,90,248,62,182,162,47,60,182,231,102,57,182,42,158,54,182,108,213,51,182,173,12,49,182,237,67,46,182,45,123,43,182,108,178,40,182,172,233,37,182,236,32,35,182,45,88,32,182,110,143,29,182,177,198,26,182,246,253,23,182,60,53,21,182,133,108,18,182,208,163,15,182,30,219,12,182,110,18,10,182,195,73,7,182,27,129,4,182,118,184,1,182,173,223,253,181,118,78,248,181,73,189,242,181,39,44,237,
181,15,155,231,181,2,10,226,181,2,121,220,181,14,232,214,181,40,87,209,181,79,198,203,181,133,53,198,181,202,164,192,181,30,20,187,181,131,131,181,181,248,242,175,181,127,98,170,181,24,210,164,181,195,65,159,181,130,177,153,181,84,33,148,181,59,145,142,181,54,1,137,181,71,113,131,181,221,194,123,181,89,163,112,181,3,132,101,181,221,100,90,181,232,69,79,181,38,39,68,181,150,8,57,181,59,234,45,181,22,204,34,181,40,174,23,181,113,144,12,181,244,114,1,181,99,171,236,180,85,113,214,180,192,55,192,180,
167,254,169,180,13,198,147,180,229,27,123,180,183,172,78,180,148,62,34,180,255,162,235,179,254,202,146,179,189,212,231,178,39,243,118,50,105,95,111,51,183,126,208,51,177,165,20,52,214,10,65,52,198,110,109,52,190,232,140,52,122,25,163,52,149,73,185,52,12,121,207,52,220,167,229,52,4,214,251,52,192,1,9,53,40,24,20,53,56,46,31,53,239,67,42,53,76,89,53,53,78,110,64,53,243,130,75,53,58,151,86,53,34,171,97,53,171,190,108,53,210,209,119,53,75,114,129,53,124,251,134,53,122,132,140,53,70,13,146,53,222,149,
151,53,65,30,157,53,112,166,162,53,106,46,168,53,46,182,173,53,187,61,179,53,18,197,184,53,49,76,190,53,23,211,195,53,197,89,201,53,58,224,206,53,116,102,212,53,116,236,217,53,57,114,223,53,194,247,228,53,15,125,234,53,31,2,240,53,241,134,245,53,134,11,251,53,238,71,0,54,249,9,3,54,229,203,5,54,176,141,8,54,91,79,11,54,229,16,14,54,78,210,16,54,150,147,19,54,188,84,22,54,192,21,25,54,162,214,27,54,97,151,30,54,254,87,33,54,119,24,36,54,205,216,38,54,0,153,41,54,14,89,44,54,248,24,47,54,190,216,49,
54,95,152,52,54,219,87,55,54,49,23,58,54,98,214,60,54,109,149,63,54,81,84,66,54,15,19,69,54,166,209,71,54,22,144,74,54,95,78,77,54,127,12,80,54,120,202,82,54,73,136,85,54,241,69,88,54,112,3,91,54,198,192,93,54,242,125,96,54,245,58,99,54,206,247,101,54,124,180,104,54,0,113,107,54,89,45,110,54,134,233,112,54,137,165,115,54,95,97,118,54,10,29,121,54,136,216,123,54,218,147,126,54,127,167,128,54,251,4,130,54,96,98,131,54,174,191,132,54,229,28,134,54,5,122,135,54,14,215,136,54,255,51,138,54,217,144,139,
54,155,237,140,54,69,74,142,54,215,166,143,54,81,3,145,54,178,95,146,54,251,187,147,54,44,24,149,54,67,116,150,54,66,208,151,54,40,44,153,54,245,135,154,54,168,227,155,54,66,63,157,54,195,154,158,54,41,246,159,54,118,81,161,54,169,172,162,54,193,7,164,54,192,98,165,54,164,189,166,54,109,24,168,54,27,115,169,54,175,205,170,54,40,40,172,54,133,130,173,54,200,220,174,54,238,54,176,54,250,144,177,54,233,234,178,54,189,68,180,54,117,158,181,54,16,248,182,54,143,81,184,54,242,170,185,54,56,4,187,54,98,
93,188,54,111,182,189,54,94,15,191,54,49,104,192,54,230,192,193,54,126,25,195,54,249,113,196,54,85,202,197,54,148,34,199,54,181,122,200,54,184,210,201,54,156,42,203,54,99,130,204,54,10,218,205,54,147,49,207,54,253,136,208,54,72,224,209,54,117,55,211,54,129,142,212,54,111,229,213,54,61,60,215,54,235,146,216,54,122,233,217,54,232,63,219,54,55,150,220,54,101,236,221,54,115,66,223,54,97,152,224,54,46,238,225,54,218,67,227,54,101,153,228,54,207,238,229,54,24,68,231,54,64,153,232,54,70,238,233,54,43,67,
235,54,238,151,236,54,143,236,237,54,14,65,239,54,106,149,240,54,165,233,241,54,189,61,243,54,179,145,244,54,133,229,245,54,53,57,247,54,194,140,248,54,44,224,249,54,115,51,251,54,150,134,252,54,150,217,253,54,114,44,255,54,149,63,0,55,223,232,0,55,23,146,1,55,61,59,2,55,81,228,2,55,83,141,3,55,66,54,4,55,31,223,4,55,233,135,5,55,161,48,6,55,70,217,6,55,217,129,7,55,89,42,8,55,198,210,8,55,32,123,9,55,104,35,10,55,156,203,10,55,189,115,11,55,203,27,12,55,198,195,12,55,174,107,13,55,130,19,14,55,67,
187,14,55,241,98,15,55,139,10,16,55,17,178,16,55,131,89,17,55,226,0,18,55,45,168,18,55,100,79,19,55,136,246,19,55,151,157,20,55,146,68,21,55,121,235,21,55,75,146,22,55,10,57,23,55,180,223,23,55,74,134,24,55,203,44,25,55,55,211,25,55,143,121,26,55,211,31,27,55,1,198,27,55,27,108,28,55,31,18,29,55,15,184,29,55,234,93,30,55,176,3,31,55,96,169,31,55,252,78,32,55,130,244,32,55,242,153,33,55,78,63,34,55,147,228,34,55,195,137,35,55,222,46,36,55,227,211,36,55,210,120,37,55,171,29,38,55,111,194,38,55,28,103,
39,55,179,11,40,55,53,176,40,55,160,84,41,55,244,248,41,55,51,157,42,55,91,65,43,55,109,229,43,55,104,137,44,55,77,45,45,55,27,209,45,55,211,116,46,55,115,24,47,55,253,187,47,55,112,95,48,55,204,2,49,55,17,166,49,55,63,73,50,55,86,236,50,55,85,143,51,55,62,50,52,55,14,213,52,55,200,119,53,55,106,26,54,55,244,188,54,55,103,95,55,55,194,1,56,55,6,164,56,55,49,70,57,55,69,232,57,55,65,138,58,55,37,44,59,55,241,205,59,55,164,111,60,55,64,17,61,55,195,178,61,55,46,84,62,55,128,245,62,55,186,150,63,55,
220,55,64,55,228,216,64,55,213,121,65,55,172,26,66,55,107,187,66,55,17,92,67,55,158,252,67,55,18,157,68,55,109,61,69,55,175,221,69,55,216,125,70,55,231,29,71,55,221,189,71,55,186,93,72,55,125,253,72,55,39,157,73,55,184,60,74,55,47,220,74,55,140,123,75,55,207,26,76,55,249,185,76,55,8,89,77,55,254,247,77,55,218,150,78,55,155,53,79,55,67,212,79,55,208,114,80,55,67,17,81,55,156,175,81,55,219,77,82,55,255,235,82,55,8,138,83,55,247,39,84,55,203,197,84,55,133,99,85,55,36,1,86,55,168,158,86,55,17,60,87,55,
95,217,87,55,147,118,88,55,171,19,89,55,168,176,89,55,137,77,90,55,80,234,90,55,251,134,91,55,139,35,92,55,255,191,92,55,88,92,93,55,150,248,93,55,183,148,94,55,189,48,95,55,168,204,95,55,118,104,96,55,40,4,97,55,191,159,97,55,58,59,98,55,152,214,98,55,218,113,99,55,1,13,100,55,11,168,100,55,248,66,101,55,201,221,101,55,126,120,102,55,23,19,103,55,146,173,103,55,241,71,104,55,52,226,104,55,89,124,105,55,98,22,106,55,78,176,106,55,29,74,107,55,207,227,107,55,101,125,108,55,220,22,109,55,55,176,109,
55,117,73,110,55,149,226,110,55,152,123,111,55,125,20,112,55,69,173,112,55,240,69,113,55,124,222,113,55,235,118,114,55,61,15,115,55,113,167,115,55,134,63,116,55,126,215,116,55,88,111,117,55,20,7,118,55,178,158,118,55,50,54,119,55,147,205,119,55,214,100,120,55,251,251,120,55,2,147,121,55,234,41,122,55,179,192,122,55,94,87,123,55,235,237,123,55,88,132,124,55,167,26,125,55,215,176,125,55,233,70,126,55,219,220,126,55,174,114,127,55,49,4,128,55,252,78,128,55,183,153,128,55,98,228,128,55,254,46,129,55,
138,121,129,55,7,196,129,55,116,14,130,55,208,88,130,55,30,163,130,55,91,237,130,55,137,55,131,55,166,129,131,55,180,203,131,55,178,21,132,55,159,95,132,55,125,169,132,55,75,243,132,55,9,61,133,55,183,134,133,55,84,208,133,55,226,25,134,55,95,99,134,55,204,172,134,55,41,246,134,55,117,63,135,55,178,136,135,55,222,209,135,55,250,26,136,55,5,100,136,55,0,173,136,55,234,245,136,55,196,62,137,55,142,135,137,55,71,208,137,55,239,24,138,55,135,97,138,55,15,170,138,55,133,242,138,55,235,58,139,55,65,131,
139,55,134,203,139,55,185,19,140,55,221,91,140,55,239,163,140,55,240,235,140,55,225,51,141,55,193,123,141,55,144,195,141,55,78,11,142,55,251,82,142,55,151,154,142,55,34,226,142,55,156,41,143,55,5,113,143,55,92,184,143,55,163,255,143,55,216,70,144,55,253,141,144,55,16,213,144,55,17,28,145,55,2,99,145,55,225,169,145,55,175,240,145,55,107,55,146,55,23,126,146,55,176,196,146,55,57,11,147,55,175,81,147,55,21,152,147,55,104,222,147,55,171,36,148,55,219,106,148,55,250,176,148,55,8,247,148,55,4,61,149,55,
238,130,149,55,198,200,149,55,141,14,150,55,65,84,150,55,228,153,150,55,118,223,150,55,245,36,151,55,99,106,151,55,190,175,151,55,8,245,151,55,63,58,152,55,101,127,152,55,121,196,152,55,122,9,153,55,106,78,153,55,71,147,153,55,19,216,153,55,204,28,154,55,115,97,154,55,8,166,154,55,138,234,154,55,251,46,155,55,89,115,155,55,165,183,155,55,222,251,155,55,5,64,156,55,26,132,156,55,28,200,156,55,12,12,157,55,233,79,157,55,180,147,157,55,108,215,157,55,18,27,158,55,165,94,158,55,38,162,158,55,148,229,
158,55,239,40,159,55,56,108,159,55,109,175,159,55,145,242,159,55,161,53,160,55,159,120,160,55,138,187,160,55,98,254,160,55,39,65,161,55,217,131,161,55,120,198,161,55,5,9,162,55,126,75,162,55,228,141,162,55,56,208,162,55,120,18,163,55,166,84,163,55,192,150,163,55,199,216,163,55,187,26,164,55,156,92,164,55,105,158,164,55,35,224,164,55,203,33,165,55,94,99,165,55,223,164,165,55,76,230,165,55,166,39,166,55,237,104,166,55,32,170,166,55,63,235,166,55,75,44,167,55,68,109,167,55,41,174,167,55,251,238,167,
55,185,47,168,55,100,112,168,55,251,176,168,55,126,241,168,55,238,49,169,55,74,114,169,55,146,178,169,55,199,242,169,55,232,50,170,55,245,114,170,55,238,178,170,55,212,242,170,55,165,50,171,55,99,114,171,55,13,178,171,55,163,241,171,55,37,49,172,55,147,112,172,55,237,175,172,55,51,239,172,55,100,46,173,55,130,109,173,55,140,172,173,55,130,235,173,55,99,42,174,55,49,105,174,55,234,167,174,55,143,230,174,55,31,37,175,55,156,99,175,55,4,162,175,55,88,224,175,55,151,30,176,55,195,92,176,55,217,154,176,
55,220,216,176,55,202,22,177,55,163,84,177,55,104,146,177,55,25,208,177,55,181,13,178,55,60,75,178,55,175,136,178,55,13,198,178,55,87,3,179,55,140,64,179,55,172,125,179,55,184,186,179,55,175,247,179,55,145,52,180,55,94,113,180,55,23,174,180,55,187,234,180,55,74,39,181,55,196,99,181,55,41,160,181,55,122,220,181,55,181,24,182,55,220,84,182,55,237,144,182,55,234,204,182,55,210,8,183,55,164,68,183,55,98,128,183,55,10,188,183,55,157,247,183,55,27,51,184,55,132,110,184,55,216,169,184,55,23,229,184,55,64,
32,185,55,84,91,185,55,83,150,185,55,61,209,185,55,17,12,186,55,208,70,186,55,122,129,186,55,14,188,186,55,141,246,186,55,247,48,187,55,75,107,187,55,137,165,187,55,178,223,187,55,198,25,188,55,196,83,188,55,172,141,188,55,127,199,188,55,61,1,189,55,228,58,189,55,118,116,189,55,243,173,189,55,89,231,189,55,170,32,190,55,230,89,190,55,11,147,190,55,27,204,190,55,21,5,191,55,249,61,191,55,199,118,191,55,128,175,191,55,34,232,191,55,175,32,192,55,38,89,192,55,135,145,192,55,210,201,192,55,7,2,193,55,
37,58,193,55,46,114,193,55,33,170,193,55,254,225,193,55,196,25,194,55,117,81,194,55,15,137,194,55,148,192,194,55,2,248,194,55,90,47,195,55,155,102,195,55,199,157,195,55,220,212,195,55,219,11,196,55,195,66,196,55,150,121,196,55,82,176,196,55,247,230,196,55,134,29,197,55,255,83,197,55,98,138,197,55,174,192,197,55,227,246,197,55,2,45,198,55,11,99,198,55,253,152,198,55,216,206,198,55,157,4,199,55,75,58,199,55,227,111,199,55,100,165,199,55,206,218,199,55,34,16,200,55,95,69,200,55,133,122,200,55,149,175,
200,55,142,228,200,55,112,25,201,55,59,78,201,55,240,130,201,55,142,183,201,55,20,236,201,55,132,32,202,55,222,84,202,55,32,137,202,55,75,189,202,55,96,241,202,55,93,37,203,55,67,89,203,55,19,141,203,55,203,192,203,55,109,244,203,55,247,39,204,55,106,91,204,55,198,142,204,55,11,194,204,55,57,245,204,55,80,40,205,55,80,91,205,55,56,142,205,55,9,193,205,55,195,243,205,55,102,38,206,55,241,88,206,55,102,139,206,55,194,189,206,55,8,240,206,55,54,34,207,55,77,84,207,55,76,134,207,55,53,184,207,55,5,234,
207,55,190,27,208,55,96,77,208,55,235,126,208,55,93,176,208,55,185,225,208,55,252,18,209,55,41,68,209,55,61,117,209,55,59,166,209,55,32,215,209,55,238,7,210,55,164,56,210,55,67,105,210,55,202,153,210,55,57,202,210,55,145,250,210,55,209,42,211,55,249,90,211,55,9,139,211,55,2,187,211,55,226,234,211,55,171,26,212,55,93,74,212,55,246,121,212,55,119,169,212,55,225,216,212,55,51,8,213,55,108,55,213,55,142,102,213,55,152,149,213,55,138,196,213,55,100,243,213,55,38,34,214,55,208,80,214,55,98,127,214,55,220,
173,214,55,61,220,214,55,135,10,215,55,185,56,215,55,210,102,215,55,211,148,215,55,189,194,215,55,142,240,215,55,70,30,216,55,231,75,216,55,111,121,216,55,224,166,216,55,55,212,216,55,119,1,217,55,158,46,217,55,174,91,217,55,164,136,217,55,131,181,217,55,73,226,217,55,246,14,218,55,140,59,218,55,9,104,218,55,109,148,218,55,185,192,218,55,237,236,218,55,8,25,219,55,11,69,219,55,245,112,219,55,199,156,219,55,128,200,219,55,32,244,219,55,168,31,220,55,24,75,220,55,111,118,220,55,173,161,220,55,211,204,
220,55,224,247,220,55,212,34,221,55,176,77,221,55,115,120,221,55,29,163,221,55,175,205,221,55,40,248,221,55,136,34,222,55,207,76,222,55,254,118,222,55,20,161,222,55,17,203,222,55,245,244,222,55,192,30,223,55,115,72,223,55,12,114,223,55,141,155,223,55,245,196,223,55,68,238,223,55,122,23,224,55,151,64,224,55,155,105,224,55,135,146,224,55,89,187,224,55,18,228,224,55,178,12,225,55,57,53,225,55,168,93,225,55,253,133,225,55,57,174,225,55,92,214,225,55,101,254,225,55,86,38,226,55,46,78,226,55,236,117,226,
55,146,157,226,55,30,197,226,55,145,236,226,55,235,19,227,55,43,59,227,55,82,98,227,55,97,137,227,55,85,176,227,55,49,215,227,55,243,253,227,55,156,36,228,55,44,75,228,55,163,113,228,55,0,152,228,55,67,190,228,55,110,228,228,55,127,10,229,55,118,48,229,55,85,86,229,55,25,124,229,55,197,161,229,55,87,199,229,55,207,236,229,55,46,18,230,55,116,55,230,55,160,92,230,55,178,129,230,55,172,166,230,55,139,203,230,55,81,240,230,55,253,20,231,55,144,57,231,55,10,94,231,55,105,130,231,55,175,166,231,55,220,
202,231,55,239,238,231,55,232,18,232,55,199,54,232,55,141,90,232,55,58,126,232,55,204,161,232,55,69,197,232,55,164,232,232,55,233,11,233,55,21,47,233,55,39,82,233,55,31,117,233,55,253,151,233,55,194,186,233,55,108,221,233,55,253,255,233,55,116,34,234,55,210,68,234,55,21,103,234,55,63,137,234,55,78,171,234,55,68,205,234,55,32,239,234,55,226,16,235,55,138,50,235,55,24,84,235,55,140,117,235,55,231,150,235,55,39,184,235,55,77,217,235,55,90,250,235,55,76,27,236,55,36,60,236,55,227,92,236,55,135,125,236,
55,17,158,236,55,129,190,236,55,215,222,236,55,20,255,236,55,54,31,237,55,61,63,237,55,43,95,237,55,255,126,237,55,184,158,237,55,88,190,237,55,221,221,237,55,72,253,237,55,153,28,238,55,208,59,238,55,236,90,238,55,239,121,238,55,215,152,238,55,165,183,238,55,88,214,238,55,242,244,238,55,113,19,239,55,214,49,239,55,33,80,239,55,81,110,239,55,103,140,239,55,99,170,239,55,68,200,239,55,11,230,239,55,184,3,240,55,75,33,240,55,195,62,240,55,33,92,240,55,100,121,240,55,141,150,240,55,156,179,240,55,144,
208,240,55,106,237,240,55,41,10,241,55,206,38,241,55,89,67,241,55,201,95,241,55,30,124,241,55,89,152,241,55,122,180,241,55,128,208,241,55,108,236,241,55,61,8,242,55,244,35,242,55,144,63,242,55,18,91,242,55,121,118,242,55,198,145,242,55,248,172,242,55,15,200,242,55,12,227,242,55,239,253,242,55,182,24,243,55,99,51,243,55,246,77,243,55,110,104,243,55,203,130,243,55,14,157,243,55,54,183,243,55,67,209,243,55,54,235,243,55,14,5,244,55,204,30,244,55,110,56,244,55,247,81,244,55,100,107,244,55,183,132,244,
55,239,157,244,55,12,183,244,55,14,208,244,55,246,232,244,55,195,1,245,55,117,26,245,55,13,51,245,55,138,75,245,55,236,99,245,55,51,124,245,55,95,148,245,55,113,172,245,55,104,196,245,55,68,220,245,55,5,244,245,55,171,11,246,55,55,35,246,55,168,58,246,55,254,81,246,55,57,105,246,55,89,128,246,55,94,151,246,55,73,174,246,55,24,197,246,55,205,219,246,55,103,242,246,55,229,8,247,55,73,31,247,55,146,53,247,55,193,75,247,55,212,97,247,55,204,119,247,55,169,141,247,55,108,163,247,55,19,185,247,55,160,206,
247,55,17,228,247,55,104,249,247,55,163,14,248,55,196,35,248,55,202,56,248,55,180,77,248,55,132,98,248,55,56,119,248,55,210,139,248,55,81,160,248,55,180,180,248,55,253,200,248,55,42,221,248,55,61,241,248,55,52,5,249,55,16,25,249,55,210,44,249,55,120,64,249,55,3,84,249,55,115,103,249,55,200,122,249,55,2,142,249,55,33,161,249,55,36,180,249,55,13,199,249,55,219,217,249,55,141,236,249,55,36,255,249,55,160,17,250,55,1,36,250,55,71,54,250,55,114,72,250,55,130,90,250,55,118,108,250,55,80,126,250,55,14,144,
250,55,177,161,250,55,57,179,250,55,165,196,250,55,247,213,250,55,45,231,250,55,72,248,250,55,72,9,251,55,45,26,251,55,246,42,251,55,165,59,251,55,56,76,251,55,176,92,251,55,13,109,251,55,78,125,251,55,116,141,251,55,127,157,251,55,111,173,251,55,68,189,251,55,253,204,251,55,155,220,251,55,30,236,251,55,134,251,251,55,210,10,252,55,3,26,252,55,25,41,252,55,20,56,252,55,243,70,252,55,183,85,252,55,96,100,252,55,238,114,252,55,96,129,252,55,183,143,252,55,242,157,252,55,19,172,252,55,24,186,252,55,
2,200,252,55,208,213,252,55,131,227,252,55,27,241,252,55,152,254,252,55,249,11,253,55,63,25,253,55,106,38,253,55,121,51,253,55,109,64,253,55,69,77,253,55,3,90,253,55,165,102,253,55,43,115,253,55,151,127,253,55,231,139,253,55,27,152,253,55,53,164,253,55,51,176,253,55,21,188,253,55,221,199,253,55,137,211,253,55,25,223,253,55,142,234,253,55,232,245,253,55,39,1,254,55,74,12,254,55,82,23,254,55,62,34,254,55,15,45,254,55,197,55,254,55,95,66,254,55,222,76,254,55,65,87,254,55,138,97,254,55,182,107,254,55,
200,117,254,55,190,127,254,55,152,137,254,55,88,147,254,55,252,156,254,55,132,166,254,55,241,175,254,55,67,185,254,55,121,194,254,55,148,203,254,55,148,212,254,55,120,221,254,55,65,230,254,55,238,238,254,55,128,247,254,55,247,255,254,55,82,8,255,55,146,16,255,55,182,24,255,55,191,32,255,55,173,40,255,55,127,48,255,55,54,56,255,55,209,63,255,55,81,71,255,55,182,78,255,55,255,85,255,55,45,93,255,55,63,100,255,55,54,107,255,55,18,114,255,55,210,120,255,55,118,127,255,55,0,134,255,55,110,140,255,55,192,
146,255,55,248,152,255,55,19,159,255,55,20,165,255,55,249,170,255,55,194,176,255,55,112,182,255,55,3,188,255,55,122,193,255,55,214,198,255,55,23,204,255,55,60,209,255,55,70,214,255,55,52,219,255,55,7,224,255,55,191,228,255,55,91,233,255,55,220,237,255,55,65,242,255,55,139,246,255,55,185,250,255,55,205,254,255,55,98,1,0,56,80,3,0,56,49,5,0,56,4,7,0,56,201,8,0,56,128,10,0,56,42,12,0,56,198,13,0,56,84,15,0,56,213,16,0,56,72,18,0,56,173,19,0,56,5,21,0,56,79,22,0,56,139,23,0,56,186,24,0,56,219,25,0,56,
238,26,0,56,243,27,0,56,235,28,0,56,213,29,0,56,178,30,0,56,128,31,0,56,66,32,0,56,245,32,0,56,155,33,0,56,51,34,0,56,189,34,0,56,58,35,0,56,169,35,0,56,10,36,0,56,94,36,0,56,164,36,0,56,221,36,0,56,7,37,0,56,36,37,0,56,52,37,0,56,53,37,0,56,42,37,0,56,16,37,0,56,233,36,0,56,180,36,0,56,113,36,0,56,33,36,0,56,195,35,0,56,88,35,0,56,223,34,0,56,88,34,0,56,195,33,0,56,33,33,0,56,114,32,0,56,180,31,0,56,233,30,0,56,17,30,0,56,42,29,0,56,55,28,0,56,53,27,0,56,38,26,0,56,9,25,0,56,223,23,0,56,167,22,0,
56,97,21,0,56,14,20,0,56,173,18,0,56,62,17,0,56,194,15,0,56,57,14,0,56,161,12,0,56,252,10,0,56,74,9,0,56,138,7,0,56,188,5,0,56,224,3,0,56,247,1,0,56,1,0,0,56,250,251,255,55,214,247,255,55,151,243,255,55,62,239,255,55,201,234,255,55,57,230,255,55,141,225,255,55,199,220,255,55,229,215,255,55,232,210,255,55,208,205,255,55,157,200,255,55,79,195,255,55,230,189,255,55,98,184,255,55,194,178,255,55,7,173,255,55,50,167,255,55,65,161,255,55,53,155,255,55,14,149,255,55,204,142,255,55,111,136,255,55,246,129,
255,55,99,123,255,55,181,116,255,55,235,109,255,55,7,103,255,55,7,96,255,55,236,88,255,55,183,81,255,55,102,74,255,55,250,66,255,55,116,59,255,55,210,51,255,55,21,44,255,55,62,36,255,55,75,28,255,55,61,20,255,55,20,12,255,55,209,3,255,55,114,251,254,55,249,242,254,55,100,234,254,55,180,225,254,55,234,216,254,55,5,208,254,55,4,199,254,55,233,189,254,55,179,180,254,55,98,171,254,55,246,161,254,55,111,152,254,55,205,142,254,55,16,133,254,55,57,123,254,55,70,113,254,55,57,103,254,55,17,93,254,55,206,
82,254,55,112,72,254,55,248,61,254,55,100,51,254,55,182,40,254,55,236,29,254,55,9,19,254,55,10,8,254,55,240,252,253,55,188,241,253,55,109,230,253,55,3,219,253,55,126,207,253,55,223,195,253,55,37,184,253,55,80,172,253,55,96,160,253,55,86,148,253,55,48,136,253,55,241,123,253,55,150,111,253,55,33,99,253,55,145,86,253,55,230,73,253,55,33,61,253,55,65,48,253,55,71,35,253,55,49,22,253,55,1,9,253,55,183,251,252,55,82,238,252,55,210,224,252,55,56,211,252,55,131,197,252,55,179,183,252,55,201,169,252,55,196,
155,252,55,165,141,252,55,107,127,252,55,23,113,252,55,168,98,252,55,30,84,252,55,122,69,252,55,188,54,252,55,227,39,252,55,239,24,252,55,225,9,252,55,185,250,251,55,118,235,251,55,25,220,251,55,161,204,251,55,14,189,251,55,98,173,251,55,155,157,251,55,185,141,251,55,189,125,251,55,167,109,251,55,118,93,251,55,43,77,251,55,197,60,251,55,69,44,251,55,171,27,251,55,247,10,251,55,40,250,250,55,62,233,250,55,59,216,250,55,29,199,250,55,229,181,250,55,147,164,250,55,38,147,250,55,159,129,250,55,254,111,
250,55,66,94,250,55,109,76,250,55,125,58,250,55,115,40,250,55,79,22,250,55,16,4,250,55,183,241,249,55,69,223,249,55,184,204,249,55,16,186,249,55,79,167,249,55,116,148,249,55,126,129,249,55,111,110,249,55,69,91,249,55,1,72,249,55,163,52,249,55,43,33,249,55,153,13,249,55,237,249,248,55,39,230,248,55,71,210,248,55,77,190,248,55,56,170,248,55,10,150,248,55,194,129,248,55,96,109,248,55,228,88,248,55,78,68,248,55,158,47,248,55,212,26,248,55,241,5,248,55,243,240,247,55,219,219,247,55,170,198,247,55,95,177,
247,55,250,155,247,55,123,134,247,55,226,112,247,55,47,91,247,55,99,69,247,55,124,47,247,55,124,25,247,55,98,3,247,55,47,237,246,55,226,214,246,55,123,192,246,55,250,169,246,55,95,147,246,55,171,124,246,55,221,101,246,55,245,78,246,55,244,55,246,55,217,32,246,55,165,9,246,55,87,242,245,55,239,218,245,55,109,195,245,55,210,171,245,55,30,148,245,55,80,124,245,55,104,100,245,55,103,76,245,55,76,52,245,55,24,28,245,55,202,3,245,55,99,235,244,55,226,210,244,55,72,186,244,55,148,161,244,55,199,136,244,
55,224,111,244,55,224,86,244,55,199,61,244,55,148,36,244,55,72,11,244,55,226,241,243,55,100,216,243,55,203,190,243,55,26,165,243,55,79,139,243,55,107,113,243,55,109,87,243,55,87,61,243,55,39,35,243,55,222,8,243,55,123,238,242,55,0,212,242,55,107,185,242,55,189,158,242,55,245,131,242,55,21,105,242,55,28,78,242,55,9,51,242,55,221,23,242,55,152,252,241,55,58,225,241,55,195,197,241,55,51,170,241,55,138,142,241,55,200,114,241,55,236,86,241,55,248,58,241,55,235,30,241,55,197,2,241,55,133,230,240,55,45,
202,240,55,188,173,240,55,50,145,240,55,143,116,240,55,211,87,240,55,255,58,240,55,17,30,240,55,11,1,240,55,235,227,239,55,179,198,239,55,98,169,239,55,249,139,239,55,118,110,239,55,219,80,239,55,39,51,239,55,90,21,239,55,117,247,238,55,119,217,238,55,96,187,238,55,48,157,238,55,232,126,238,55,135,96,238,55,14,66,238,55,124,35,238,55,209,4,238,55,14,230,237,55,50,199,237,55,62,168,237,55,49,137,237,55,12,106,237,55,206,74,237,55,119,43,237,55,8,12,237,55,129,236,236,55,225,204,236,55,41,173,236,55,
88,141,236,55,111,109,236,55,110,77,236,55,84,45,236,55,34,13,236,55,216,236,235,55,117,204,235,55,250,171,235,55,102,139,235,55,187,106,235,55,247,73,235,55,27,41,235,55,38,8,235,55,26,231,234,55,245,197,234,55,184,164,234,55,99,131,234,55,246,97,234,55,112,64,234,55,211,30,234,55,29,253,233,55,80,219,233,55,106,185,233,55,108,151,233,55,86,117,233,55,41,83,233,55,227,48,233,55,133,14,233,55,15,236,232,55,130,201,232,55,220,166,232,55,31,132,232,55,73,97,232,55,92,62,232,55,87,27,232,55,58,248,231,
55,5,213,231,55,184,177,231,55,84,142,231,55,216,106,231,55,68,71,231,55,152,35,231,55,213,255,230,55,250,219,230,55,7,184,230,55,253,147,230,55,219,111,230,55,161,75,230,55,80,39,230,55,231,2,230,55,102,222,229,55,206,185,229,55,30,149,229,55,87,112,229,55,121,75,229,55,130,38,229,55,117,1,229,55,80,220,228,55,19,183,228,55,191,145,228,55,84,108,228,55,209,70,228,55,55,33,228,55,133,251,227,55,189,213,227,55,220,175,227,55,229,137,227,55,214,99,227,55,176,61,227,55,115,23,227,55,31,241,226,55,179,
202,226,55,48,164,226,55,150,125,226,55,229,86,226,55,29,48,226,55,61,9,226,55,71,226,225,55,57,187,225,55,21,148,225,55,217,108,225,55,134,69,225,55,29,30,225,55,156,246,224,55,4,207,224,55,86,167,224,55,144,127,224,55,180,87,224,55,192,47,224,55,182,7,224,55,149,223,223,55,93,183,223,55,15,143,223,55,169,102,223,55,45,62,223,55,154,21,223,55,240,236,222,55,48,196,222,55,89,155,222,55,107,114,222,55,102,73,222,55,75,32,222,55,25,247,221,55,209,205,221,55,114,164,221,55,253,122,221,55,112,81,221,
55,206,39,221,55,21,254,220,55,69,212,220,55,95,170,220,55,99,128,220,55,80,86,220,55,39,44,220,55,231,1,220,55,145,215,219,55,36,173,219,55,162,130,219,55,9,88,219,55,89,45,219,55,148,2,219,55,184,215,218,55,198,172,218,55,190,129,218,55,159,86,218,55,106,43,218,55,32,0,218,55,191,212,217,55,72,169,217,55,187,125,217,55,24,82,217,55,94,38,217,55,143,250,216,55,170,206,216,55,175,162,216,55,158,118,216,55,119,74,216,55,58,30,216,55,231,241,215,55,126,197,215,55,255,152,215,55,107,108,215,55,192,63,
215,55,0,19,215,55,42,230,214,55,63,185,214,55,61,140,214,55,38,95,214,55,249,49,214,55,183,4,214,55,95,215,213,55,241,169,213,55,110,124,213,55,213,78,213,55,38,33,213,55,98,243,212,55,137,197,212,55,154,151,212,55,149,105,212,55,123,59,212,55,76,13,212,55,7,223,211,55,173,176,211,55,61,130,211,55,184,83,211,55,30,37,211,55,110,246,210,55,169,199,210,55,207,152,210,55,224,105,210,55,219,58,210,55,193,11,210,55,146,220,209,55,78,173,209,55,245,125,209,55,134,78,209,55,3,31,209,55,106,239,208,55,188,
191,208,55,250,143,208,55,34,96,208,55,53,48,208,55,52,0,208,55,29,208,207,55,242,159,207,55,178,111,207,55,92,63,207,55,242,14,207,55,115,222,206,55,224,173,206,55,55,125,206,55,122,76,206,55,168,27,206,55,193,234,205,55,198,185,205,55,182,136,205,55,145,87,205,55,88,38,205,55,10,245,204,55,167,195,204,55,48,146,204,55,165,96,204,55,4,47,204,55,80,253,203,55,135,203,203,55,169,153,203,55,183,103,203,55,177,53,203,55,150,3,203,55,103,209,202,55,36,159,202,55,204,108,202,55,96,58,202,55,224,7,202,
55,75,213,201,55,163,162,201,55,230,111,201,55,21,61,201,55,47,10,201,55,54,215,200,55,41,164,200,55,7,113,200,55,210,61,200,55,136,10,200,55,42,215,199,55,185,163,199,55,51,112,199,55,154,60,199,55,237,8,199,55,43,213,198,55,86,161,198,55,109,109,198,55,112,57,198,55,96,5,198,55,60,209,197,55,3,157,197,55,184,104,197,55,88,52,197,55,229,255,196,55,94,203,196,55,196,150,196,55,22,98,196,55,84,45,196,55,127,248,195,55,150,195,195,55,154,142,195,55,138,89,195,55,103,36,195,55,48,239,194,55,230,185,
194,55,137,132,194,55,24,79,194,55,148,25,194,55,253,227,193,55,82,174,193,55,148,120,193,55,195,66,193,55,222,12,193,55,231,214,192,55,220,160,192,55,190,106,192,55,141,52,192,55,73,254,191,55,242,199,191,55,135,145,191,55,10,91,191,55,122,36,191,55,214,237,190,55,32,183,190,55,87,128,190,55,123,73,190,55,140,18,190,55,138,219,189,55,118,164,189,55,79,109,189,55,20,54,189,55,199,254,188,55,104,199,188,55,246,143,188,55,113,88,188,55,217,32,188,55,47,233,187,55,114,177,187,55,162,121,187,55,192,65,
187,55,204,9,187,55,197,209,186,55,171,153,186,55,128,97,186,55,65,41,186,55,240,240,185,55,141,184,185,55,24,128,185,55,144,71,185,55,246,14,185,55,74,214,184,55,139,157,184,55,186,100,184,55,215,43,184,55,226,242,183,55,219,185,183,55,193,128,183,55,150,71,183,55,88,14,183,55,9,213,182,55,167,155,182,55,51,98,182,55,174,40,182,55,22,239,181,55,109,181,181,55,177,123,181,55,228,65,181,55,5,8,181,55,20,206,180,55,18,148,180,55,253,89,180,55,215,31,180,55,159,229,179,55,86,171,179,55,251,112,179,55,
142,54,179,55,16,252,178,55,128,193,178,55,222,134,178,55,43,76,178,55,103,17,178,55,145,214,177,55,169,155,177,55,176,96,177,55,166,37,177,55,139,234,176,55,94,175,176,55,31,116,176,55,208,56,176,55,111,253,175,55,253,193,175,55,122,134,175,55,229,74,175,55,64,15,175,55,137,211,174,55,193,151,174,55,233,91,174,55,255,31,174,55,4,228,173,55,248,167,173,55,219,107,173,55,173,47,173,55,110,243,172,55,31,183,172,55,190,122,172,55,77,62,172,55,203,1,172,55,56,197,171,55,148,136,171,55,224,75,171,55,27,
15,171,55,69,210,170,55,95,149,170,55,104,88,170,55,96,27,170,55,72,222,169,55,31,161,169,55,230,99,169,55,156,38,169,55,66,233,168,55,216,171,168,55,93,110,168,55,210,48,168,55,54,243,167,55,138,181,167,55,206,119,167,55,1,58,167,55,36,252,166,55,55,190,166,55,58,128,166,55,45,66,166,55,15,4,166,55,226,197,165,55,164,135,165,55,87,73,165,55,249,10,165,55,139,204,164,55,14,142,164,55,128,79,164,55,227,16,164,55,53,210,163,55,120,147,163,55,171,84,163,55,206,21,163,55,226,214,162,55,229,151,162,55,
217,88,162,55,190,25,162,55,146,218,161,55,87,155,161,55,13,92,161,55,179,28,161,55,73,221,160,55,208,157,160,55,71,94,160,55,175,30,160,55,7,223,159,55,80,159,159,55,138,95,159,55,180,31,159,55,207,223,158,55,219,159,158,55,215,95,158,55,196,31,158,55,162,223,157,55,113,159,157,55,49,95,157,55,225,30,157,55,131,222,156,55,21,158,156,55,152,93,156,55,13,29,156,55,114,220,155,55,201,155,155,55,16,91,155,55,73,26,155,55,114,217,154,55,141,152,154,55,153,87,154,55,151,22,154,55,133,213,153,55,101,148,
153,55,54,83,153,55,248,17,153,55,172,208,152,55,81,143,152,55,232,77,152,55,112,12,152,55,234,202,151,55,85,137,151,55,177,71,151,55,255,5,151,55,63,196,150,55,113,130,150,55,148,64,150,55,168,254,149,55,175,188,149,55,167,122,149,55,145,56,149,55,108,246,148,55,58,180,148,55,249,113,148,55,171,47,148,55,78,237,147,55,227,170,147,55,106,104,147,55,227,37,147,55,78,227,146,55,171,160,146,55,251,93,146,55,60,27,146,55,111,216,145,55,149,149,145,55,173,82,145,55,183,15,145,55,179,204,144,55,162,137,
144,55,131,70,144,55,86,3,144,55,28,192,143,55,212,124,143,55,127,57,143,55,28,246,142,55,171,178,142,55,45,111,142,55,162,43,142,55,9,232,141,55,99,164,141,55,175,96,141,55,239,28,141,55,32,217,140,55,69,149,140,55,92,81,140,55,102,13,140,55,99,201,139,55,83,133,139,55,54,65,139,55,11,253,138,55,212,184,138,55,143,116,138,55,62,48,138,55,223,235,137,55,116,167,137,55,251,98,137,55,118,30,137,55,228,217,136,55,69,149,136,55,153,80,136,55,225,11,136,55,28,199,135,55,74,130,135,55,107,61,135,55,128,
248,134,55,136,179,134,55,132,110,134,55,115,41,134,55,85,228,133,55,43,159,133,55,245,89,133,55,178,20,133,55,99,207,132,55,7,138,132,55,159,68,132,55,43,255,131,55,170,185,131,55,30,116,131,55,133,46,131,55,223,232,130,55,46,163,130,55,112,93,130,55,167,23,130,55,209,209,129,55,239,139,129,55,2,70,129,55,8,0,129,55,2,186,128,55,240,115,128,55,211,45,128,55,83,207,127,55,233,66,127,55,103,182,126,55,206,41,126,55,29,157,125,55,84,16,125,55,117,131,124,55,126,246,123,55,111,105,123,55,74,220,122,
55,14,79,122,55,186,193,121,55,79,52,121,55,206,166,120,55,54,25,120,55,135,139,119,55,193,253,118,55,228,111,118,55,241,225,117,55,232,83,117,55,199,197,116,55,145,55,116,55,68,169,115,55,225,26,115,55,103,140,114,55,215,253,113,55,49,111,113,55,118,224,112,55,164,81,112,55,188,194,111,55,190,51,111,55,171,164,110,55,129,21,110,55,66,134,109,55,238,246,108,55,132,103,108,55,4,216,107,55,111,72,107,55,196,184,106,55,5,41,106,55,48,153,105,55,69,9,105,55,70,121,104,55,49,233,103,55,8,89,103,55,202,
200,102,55,118,56,102,55,14,168,101,55,145,23,101,55,0,135,100,55,89,246,99,55,159,101,99,55,207,212,98,55,236,67,98,55,243,178,97,55,231,33,97,55,198,144,96,55,145,255,95,55,72,110,95,55,235,220,94,55,122,75,94,55,245,185,93,55,92,40,93,55,175,150,92,55,239,4,92,55,26,115,91,55,50,225,90,55,55,79,90,55,40,189,89,55,6,43,89,55,208,152,88,55,135,6,88,55,42,116,87,55,187,225,86,55,56,79,86,55,162,188,85,55,249,41,85,55,62,151,84,55,111,4,84,55,142,113,83,55,153,222,82,55,147,75,82,55,121,184,81,55,
77,37,81,55,14,146,80,55,189,254,79,55,90,107,79,55,228,215,78,55,92,68,78,55,194,176,77,55,22,29,77,55,88,137,76,55,135,245,75,55,165,97,75,55,177,205,74,55,171,57,74,55,148,165,73,55,106,17,73,55,47,125,72,55,227,232,71,55,133,84,71,55,21,192,70,55,149,43,70,55,3,151,69,55,95,2,69,55,171,109,68,55,229,216,67,55,15,68,67,55,39,175,66,55,47,26,66,55,37,133,65,55,11,240,64,55,224,90,64,55,165,197,63,55,89,48,63,55,252,154,62,55,143,5,62,55,17,112,61,55,131,218,60,55,229,68,60,55,55,175,59,55,120,25,
59,55,170,131,58,55,203,237,57,55,221,87,57,55,222,193,56,55,208,43,56,55,178,149,55,55,132,255,54,55,71,105,54,55,250,210,53,55,157,60,53,55,49,166,52,55,182,15,52,55,44,121,51,55,146,226,50,55,233,75,50,55,49,181,49,55,105,30,49,55,147,135,48,55,174,240,47,55,186,89,47,55,183,194,46,55,166,43,46,55,133,148,45,55,87,253,44,55,25,102,44,55,205,206,43,55,115,55,43,55,11,160,42,55,148,8,42,55,15,113,41,55,123,217,40,55,218,65,40,55,43,170,39,55,109,18,39,55,162,122,38,55,201,226,37,55,226,74,37,55,
238,178,36,55,235,26,36,55,220,130,35,55,190,234,34,55,148,82,34,55,92,186,33,55,22,34,33,55,195,137,32,55,100,241,31,55,247,88,31,55,125,192,30,55,246,39,30,55,98,143,29,55,193,246,28,55,19,94,28,55,89,197,27,55,146,44,27,55,190,147,26,55,222,250,25,55,242,97,25,55,249,200,24,55,243,47,24,55,226,150,23,55,196,253,22,55,154,100,22,55,100,203,21,55,34,50,21,55,212,152,20,55,122,255,19,55,20,102,19,55,163,204,18,55,37,51,18,55,157,153,17,55,8,0,17,55,104,102,16,55,189,204,15,55,6,51,15,55,68,153,14,
55,119,255,13,55,159,101,13,55,187,203,12,55,205,49,12,55,211,151,11,55,207,253,10,55,192,99,10,55,166,201,9,55,129,47,9,55,82,149,8,55,24,251,7,55,211,96,7,55,132,198,6,55,43,44,6,55,199,145,5,55,89,247,4,55,225,92,4,55,95,194,3,55,211,39,3,55,60,141,2,55,156,242,1,55,242,87,1,55,62,189,0,55,129,34,0,55,115,15,255,54,209,217,253,54,28,164,252,54,85,110,251,54,122,56,250,54,141,2,249,54,141,204,247,54,123,150,246,54,86,96,245,54,32,42,244,54,215,243,242,54,124,189,241,54,16,135,240,54,146,80,239,
54,3,26,238,54,98,227,236,54,176,172,235,54,237,117,234,54,24,63,233,54],"i8",4,y.a+1064960);
Q([51,8,232,54,62,209,230,54,55,154,229,54,33,99,228,54,249,43,227,54,194,244,225,54,123,189,224,54,36,134,223,54,189,78,222,54,70,23,221,54,192,223,219,54,42,168,218,54,133,112,217,54,209,56,216,54,14,1,215,54,60,201,213,54,91,145,212,54,108,89,211,54,110,33,210,54,98,233,208,54,72,177,207,54,31,121,206,54,233,64,205,54,165,8,204,54,83,208,202,54,243,151,201,54,134,95,200,54,12,39,199,54,133,238,197,54,241,181,196,54,79,125,195,54,161,68,194,54,230,11,193,54,31,211,191,54,76,154,190,54,108,97,189,
54,128,40,188,54,136,239,186,54,132,182,185,54,117,125,184,54,89,68,183,54,51,11,182,54,1,210,180,54,196,152,179,54,124,95,178,54,41,38,177,54,203,236,175,54,98,179,174,54,239,121,173,54,114,64,172,54,234,6,171,54,88,205,169,54,188,147,168,54,22,90,167,54,103,32,166,54,174,230,164,54,235,172,163,54,31,115,162,54,74,57,161,54,108,255,159,54,132,197,158,54,148,139,157,54,156,81,156,54,154,23,155,54,145,221,153,54,127,163,152,54,100,105,151,54,66,47,150,54,24,245,148,54,230,186,147,54,172,128,146,54,
107,70,145,54,35,12,144,54,211,209,142,54,125,151,141,54,31,93,140,54,186,34,139,54,79,232,137,54,221,173,136,54,101,115,135,54,230,56,134,54,97,254,132,54,214,195,131,54,69,137,130,54,174,78,129,54,18,20,128,54,224,178,125,54,146,61,123,54,57,200,120,54,213,82,118,54,104,221,115,54,241,103,113,54,112,242,110,54,231,124,108,54,84,7,106,54,184,145,103,54,20,28,101,54,104,166,98,54,180,48,96,54,249,186,93,54,54,69,91,54,108,207,88,54,155,89,86,54,195,227,83,54,229,109,81,54,1,248,78,54,23,130,76,54,
40,12,74,54,51,150,71,54,58,32,69,54,59,170,66,54,57,52,64,54,50,190,61,54,39,72,59,54,24,210,56,54,6,92,54,54,240,229,51,54,216,111,49,54,189,249,46,54,160,131,44,54,128,13,42,54,95,151,39,54,60,33,37,54,24,171,34,54,243,52,32,54,205,190,29,54,166,72,27,54,127,210,24,54,88,92,22,54,50,230,19,54,11,112,17,54,230,249,14,54,194,131,12,54,159,13,10,54,125,151,7,54,93,33,5,54,64,171,2,54,36,53,0,54,23,126,251,53,235,145,246,53,198,165,241,53,167,185,236,53,144,205,231,53,128,225,226,53,121,245,221,53,
123,9,217,53,134,29,212,53,155,49,207,53,186,69,202,53,229,89,197,53,27,110,192,53,93,130,187,53,171,150,182,53,7,171,177,53,112,191,172,53,231,211,167,53,109,232,162,53,2,253,157,53,166,17,153,53,91,38,148,53,33,59,143,53,248,79,138,53,224,100,133,53,219,121,128,53,210,29,119,53,20,72,109,53,126,114,99,53,17,157,89,53,205,199,79,53,181,242,69,53,200,29,60,53,8,73,50,53,118,116,40,53,20,160,30,53,225,203,20,53,223,247,10,53,16,36,1,53,231,160,238,52,23,250,218,52,178,83,199,52,185,173,179,52,47,8,
160,52,22,99,140,52,224,124,113,52,125,52,74,52,9,237,34,52,14,77,247,51,247,193,168,51,172,113,52,51,34,27,187,49,216,166,5,179,123,86,145,179,116,215,223,179,39,43,23,180,129,105,62,180,194,166,101,180,116,113,134,180,247,14,154,180,231,171,173,180,68,72,193,180,10,228,212,180,56,127,232,180,203,25,252,180,225,217,7,181,141,166,17,181,233,114,27,181,244,62,37,181,172,10,47,181,16,214,56,181,33,161,66,181,219,107,76,181,63,54,86,181,76,0,96,181,0,202,105,181,90,147,115,181,90,92,125,181,127,146,
131,181,162,118,136,181,151,90,141,181,92,62,146,181,242,33,151,181,87,5,156,181,139,232,160,181,141,203,165,181,94,174,170,181,252,144,175,181,103,115,180,181,158,85,185,181,161,55,190,181,112,25,195,181,10,251,199,181,110,220,204,181,156,189,209,181,147,158,214,181,83,127,219,181,220,95,224,181,44,64,229,181,68,32,234,181,35,0,239,181,199,223,243,181,50,191,248,181,98,158,253,181,171,62,1,182,8,174,3,182,70,29,6,182,102,140,8,182,103,251,10,182,73,106,13,182,12,217,15,182,176,71,18,182,52,182,20,
182,152,36,23,182,220,146,25,182,255,0,28,182,2,111,30,182,228,220,32,182,164,74,35,182,67,184,37,182,193,37,40,182,28,147,42,182,85,0,45,182,108,109,47,182,96,218,49,182,49,71,52,182,222,179,54,182,104,32,57,182,207,140,59,182,17,249,61,182,47,101,64,182,40,209,66,182,253,60,69,182,173,168,71,182,55,20,74,182,156,127,76,182,219,234,78,182,244,85,81,182,231,192,83,182,179,43,86,182,88,150,88,182,214,0,91,182,45,107,93,182,92,213,95,182,100,63,98,182,67,169,100,182,250,18,103,182,137,124,105,182,238,
229,107,182,43,79,110,182,62,184,112,182,39,33,115,182,231,137,117,182,124,242,119,182,231,90,122,182,40,195,124,182,62,43,127,182,148,201,128,182,116,253,129,182,61,49,131,182,241,100,132,182,143,152,133,182,23,204,134,182,136,255,135,182,227,50,137,182,39,102,138,182,84,153,139,182,107,204,140,182,107,255,141,182,84,50,143,182,37,101,144,182,223,151,145,182,130,202,146,182,13,253,147,182,129,47,149,182,220,97,150,182,32,148,151,182,76,198,152,182,95,248,153,182,90,42,155,182,61,92,156,182,7,142,
157,182,184,191,158,182,81,241,159,182,208,34,161,182,55,84,162,182,132,133,163,182,184,182,164,182,211,231,165,182,212,24,167,182,187,73,168,182,137,122,169,182,60,171,170,182,214,219,171,182,85,12,173,182,186,60,174,182,4,109,175,182,52,157,176,182,73,205,177,182,68,253,178,182,35,45,180,182,232,92,181,182,145,140,182,182,31,188,183,182,146,235,184,182,232,26,186,182,36,74,187,182,67,121,188,182,71,168,189,182,46,215,190,182,249,5,192,182,168,52,193,182,59,99,194,182,177,145,195,182,10,192,196,
182,71,238,197,182,103,28,199,182,105,74,200,182,79,120,201,182,23,166,202,182,194,211,203,182,79,1,205,182,191,46,206,182,16,92,207,182,68,137,208,182,90,182,209,182,82,227,210,182,44,16,212,182,231,60,213,182,131,105,214,182,1,150,215,182,97,194,216,182,161,238,217,182,194,26,219,182,197,70,220,182,168,114,221,182,107,158,222,182,16,202,223,182,148,245,224,182,249,32,226,182,62,76,227,182,99,119,228,182,104,162,229,182,77,205,230,182,17,248,231,182,181,34,233,182,56,77,234,182,155,119,235,182,221,
161,236,182,254,203,237,182,254,245,238,182,220,31,240,182,154,73,241,182,54,115,242,182,176,156,243,182,9,198,244,182,64,239,245,182,85,24,247,182,72,65,248,182,25,106,249,182,200,146,250,182,84,187,251,182,190,227,252,182,5,12,254,182,41,52,255,182,21,46,0,183,5,194,0,183,226,85,1,183,175,233,1,183,105,125,2,183,18,17,3,183,169,164,3,183,46,56,4,183,161,203,4,183,2,95,5,183,81,242,5,183,142,133,6,183,185,24,7,183,210,171,7,183,216,62,8,183,204,209,8,183,174,100,9,183,126,247,9,183,58,138,10,183,
229,28,11,183,124,175,11,183,1,66,12,183,115,212,12,183,211,102,13,183,31,249,13,183,89,139,14,183,127,29,15,183,147,175,15,183,147,65,16,183,129,211,16,183,91,101,17,183,34,247,17,183,213,136,18,183,117,26,19,183,2,172,19,183,123,61,20,183,225,206,20,183,51,96,21,183,113,241,21,183,156,130,22,183,179,19,23,183,181,164,23,183,164,53,24,183,127,198,24,183,70,87,25,183,249,231,25,183,152,120,26,183,35,9,27,183,153,153,27,183,251,41,28,183,72,186,28,183,130,74,29,183,166,218,29,183,182,106,30,183,178,
250,30,183,152,138,31,183,107,26,32,183,40,170,32,183,208,57,33,183,100,201,33,183,226,88,34,183,76,232,34,183,160,119,35,183,224,6,36,183,10,150,36,183,31,37,37,183,30,180,37,183,8,67,38,183,221,209,38,183,157,96,39,183,70,239,39,183,218,125,40,183,89,12,41,183,194,154,41,183,21,41,42,183,82,183,42,183,122,69,43,183,139,211,43,183,134,97,44,183,108,239,44,183,59,125,45,183,244,10,46,183,151,152,46,183,36,38,47,183,154,179,47,183,250,64,48,183,67,206,48,183,118,91,49,183,147,232,49,183,152,117,50,
183,136,2,51,183,96,143,51,183,34,28,52,183,204,168,52,183,96,53,53,183,221,193,53,183,67,78,54,183,146,218,54,183,201,102,55,183,234,242,55,183,243,126,56,183,229,10,57,183,192,150,57,183,131,34,58,183,47,174,58,183,195,57,59,183,64,197,59,183,165,80,60,183,242,219,60,183,40,103,61,183,70,242,61,183,76,125,62,183,58,8,63,183,16,147,63,183,206,29,64,183,116,168,64,183,2,51,65,183,120,189,65,183,213,71,66,183,27,210,66,183,71,92,67,183,92,230,67,183,88,112,68,183,59,250,68,183,6,132,69,183,185,13,
70,183,82,151,70,183,211,32,71,183,59,170,71,183,139,51,72,183,193,188,72,183,223,69,73,183,227,206,73,183,206,87,74,183,161,224,74,183,90,105,75,183,250,241,75,183,128,122,76,183,237,2,77,183,65,139,77,183,124,19,78,183,157,155,78,183,164,35,79,183,146,171,79,183,102,51,80,183,32,187,80,183,193,66,81,183,72,202,81,183,181,81,82,183,8,217,82,183,65,96,83,183,96,231,83,183,101,110,84,183,80,245,84,183,33,124,85,183,215,2,86,183,115,137,86,183,245,15,87,183,92,150,87,183,169,28,88,183,219,162,88,183,
243,40,89,183,240,174,89,183,211,52,90,183,154,186,90,183,71,64,91,183,217,197,91,183,81,75,92,183,173,208,92,183,238,85,93,183,21,219,93,183,32,96,94,183,16,229,94,183,229,105,95,183,158,238,95,183,60,115,96,183,191,247,96,183,39,124,97,183,115,0,98,183,163,132,98,183,184,8,99,183,178,140,99,183,143,16,100,183,81,148,100,183,247,23,101,183,130,155,101,183,240,30,102,183,67,162,102,183,121,37,103,183,148,168,103,183,146,43,104,183,116,174,104,183,58,49,105,183,228,179,105,183,113,54,106,183,227,184,
106,183,55,59,107,183,112,189,107,183,140,63,108,183,139,193,108,183,109,67,109,183,51,197,109,183,221,70,110,183,105,200,110,183,217,73,111,183,44,203,111,183,98,76,112,183,123,205,112,183,119,78,113,183,86,207,113,183,24,80,114,183,188,208,114,183,68,81,115,183,174,209,115,183,251,81,116,183,42,210,116,183,60,82,117,183,49,210,117,183,8,82,118,183,193,209,118,183,93,81,119,183,219,208,119,183,60,80,120,183,127,207,120,183,164,78,121,183,171,205,121,183,148,76,122,183,95,203,122,183,12,74,123,183,
155,200,123,183,12,71,124,183,95,197,124,183,147,67,125,183,170,193,125,183,162,63,126,183,123,189,126,183,54,59,127,183,211,184,127,183,41,27,128,183,217,89,128,183,121,152,128,183,10,215,128,183,140,21,129,183,255,83,129,183,98,146,129,183,181,208,129,183,249,14,130,183,46,77,130,183,83,139,130,183,105,201,130,183,111,7,131,183,102,69,131,183,77,131,131,183,36,193,131,183,236,254,131,183,164,60,132,183,76,122,132,183,229,183,132,183,109,245,132,183,230,50,133,183,80,112,133,183,169,173,133,183,
243,234,133,183,45,40,134,183,87,101,134,183,113,162,134,183,123,223,134,183,117,28,135,183,95,89,135,183,57,150,135,183,3,211,135,183,189,15,136,183,103,76,136,183,1,137,136,183,138,197,136,183,4,2,137,183,109,62,137,183,199,122,137,183,16,183,137,183,72,243,137,183,113,47,138,183,137,107,138,183,145,167,138,183,136,227,138,183,111,31,139,183,70,91,139,183,13,151,139,183,195,210,139,183,104,14,140,183,253,73,140,183,130,133,140,183,246,192,140,183,89,252,140,183,172,55,141,183,238,114,141,183,32,
174,141,183,65,233,141,183,81,36,142,183,81,95,142,183,64,154,142,183,30,213,142,183,236,15,143,183,169,74,143,183,85,133,143,183,240,191,143,183,122,250,143,183,244,52,144,183,92,111,144,183,180,169,144,183,250,227,144,183,48,30,145,183,85,88,145,183,105,146,145,183,107,204,145,183,93,6,146,183,62,64,146,183,13,122,146,183,204,179,146,183,121,237,146,183,21,39,147,183,160,96,147,183,26,154,147,183,130,211,147,183,218,12,148,183,32,70,148,183,84,127,148,183,120,184,148,183,138,241,148,183,139,42,
149,183,122,99,149,183,88,156,149,183,37,213,149,183,224,13,150,183,137,70,150,183,33,127,150,183,168,183,150,183,29,240,150,183,129,40,151,183,211,96,151,183,19,153,151,183,66,209,151,183,95,9,152,183,106,65,152,183,100,121,152,183,76,177,152,183,34,233,152,183,231,32,153,183,154,88,153,183,59,144,153,183,202,199,153,183,71,255,153,183,179,54,154,183,13,110,154,183,84,165,154,183,138,220,154,183,174,19,155,183,192,74,155,183,192,129,155,183,174,184,155,183,138,239,155,183,84,38,156,183,12,93,156,
183,177,147,156,183,69,202,156,183,198,0,157,183,54,55,157,183,147,109,157,183,222,163,157,183,23,218,157,183,61,16,158,183,81,70,158,183,84,124,158,183,67,178,158,183,33,232,158,183,236,29,159,183,164,83,159,183,75,137,159,183,223,190,159,183,96,244,159,183,207,41,160,183,44,95,160,183,118,148,160,183,174,201,160,183,211,254,160,183,229,51,161,183,229,104,161,183,211,157,161,183,174,210,161,183,118,7,162,183,44,60,162,183,207,112,162,183,95,165,162,183,220,217,162,183,71,14,163,183,159,66,163,183,
229,118,163,183,23,171,163,183,55,223,163,183,68,19,164,183,62,71,164,183,37,123,164,183,249,174,164,183,187,226,164,183,105,22,165,183,5,74,165,183,142,125,165,183,3,177,165,183,102,228,165,183,182,23,166,183,242,74,166,183,28,126,166,183,50,177,166,183,54,228,166,183,38,23,167,183,3,74,167,183,205,124,167,183,132,175,167,183,39,226,167,183,184,20,168,183,53,71,168,183,159,121,168,183,246,171,168,183,57,222,168,183,105,16,169,183,134,66,169,183,143,116,169,183,133,166,169,183,104,216,169,183,55,
10,170,183,243,59,170,183,156,109,170,183,48,159,170,183,178,208,170,183,32,2,171,183,122,51,171,183,193,100,171,183,245,149,171,183,21,199,171,183,33,248,171,183,26,41,172,183,255,89,172,183,208,138,172,183,142,187,172,183,56,236,172,183,206,28,173,183,81,77,173,183,192,125,173,183,27,174,173,183,98,222,173,183,150,14,174,183,182,62,174,183,194,110,174,183,186,158,174,183,158,206,174,183,111,254,174,183,43,46,175,183,212,93,175,183,104,141,175,183,233,188,175,183,86,236,175,183,175,27,176,183,243,
74,176,183,36,122,176,183,65,169,176,183,73,216,176,183,62,7,177,183,31,54,177,183,235,100,177,183,163,147,177,183,71,194,177,183,215,240,177,183,83,31,178,183,187,77,178,183,14,124,178,183,77,170,178,183,120,216,178,183,143,6,179,183,145,52,179,183,127,98,179,183,89,144,179,183,31,190,179,183,208,235,179,183,108,25,180,183,245,70,180,183,105,116,180,183,200,161,180,183,19,207,180,183,74,252,180,183,108,41,181,183,122,86,181,183,115,131,181,183,88,176,181,183,40,221,181,183,228,9,182,183,139,54,182,
183,29,99,182,183,155,143,182,183,4,188,182,183,89,232,182,183,153,20,183,183,196,64,183,183,219,108,183,183,221,152,183,183,202,196,183,183,162,240,183,183,102,28,184,183,21,72,184,183,175,115,184,183,53,159,184,183,165,202,184,183,1,246,184,183,72,33,185,183,122,76,185,183,151,119,185,183,159,162,185,183,147,205,185,183,113,248,185,183,59,35,186,183,239,77,186,183,143,120,186,183,26,163,186,183,143,205,186,183,240,247,186,183,60,34,187,183,114,76,187,183,148,118,187,183,160,160,187,183,151,202,
187,183,122,244,187,183,71,30,188,183,255,71,188,183,161,113,188,183,47,155,188,183,168,196,188,183,11,238,188,183,89,23,189,183,146,64,189,183,181,105,189,183,196,146,189,183,189,187,189,183,160,228,189,183,111,13,190,183,40,54,190,183,204,94,190,183,90,135,190,183,211,175,190,183,55,216,190,183,133,0,191,183,190,40,191,183,226,80,191,183,240,120,191,183,232,160,191,183,203,200,191,183,153,240,191,183,81,24,192,183,244,63,192,183,129,103,192,183,249,142,192,183,91,182,192,183,167,221,192,183,222,
4,193,183,255,43,193,183,11,83,193,183,1,122,193,183,226,160,193,183,172,199,193,183,97,238,193,183,1,21,194,183,139,59,194,183,255,97,194,183,93,136,194,183,166,174,194,183,217,212,194,183,246,250,194,183,253,32,195,183,238,70,195,183,202,108,195,183,144,146,195,183,64,184,195,183,218,221,195,183,95,3,196,183,205,40,196,183,38,78,196,183,105,115,196,183,150,152,196,183,173,189,196,183,174,226,196,183,153,7,197,183,110,44,197,183,45,81,197,183,214,117,197,183,105,154,197,183,230,190,197,183,77,227,
197,183,158,7,198,183,217,43,198,183,254,79,198,183,13,116,198,183,6,152,198,183,232,187,198,183,181,223,198,183,107,3,199,183,11,39,199,183,150,74,199,183,9,110,199,183,103,145,199,183,175,180,199,183,224,215,199,183,251,250,199,183,0,30,200,183,239,64,200,183,199,99,200,183,137,134,200,183,53,169,200,183,203,203,200,183,74,238,200,183,179,16,201,183,6,51,201,183,66,85,201,183,104,119,201,183,120,153,201,183,113,187,201,183,84,221,201,183,32,255,201,183,214,32,202,183,118,66,202,183,255,99,202,183,
114,133,202,183,206,166,202,183,20,200,202,183,67,233,202,183,92,10,203,183,94,43,203,183,74,76,203,183,31,109,203,183,222,141,203,183,134,174,203,183,24,207,203,183,147,239,203,183,247,15,204,183,69,48,204,183,125,80,204,183,157,112,204,183,167,144,204,183,155,176,204,183,119,208,204,183,61,240,204,183,237,15,205,183,134,47,205,183,8,79,205,183,115,110,205,183,200,141,205,183,6,173,205,183,45,204,205,183,61,235,205,183,55,10,206,183,26,41,206,183,230,71,206,183,155,102,206,183,58,133,206,183,193,
163,206,183,50,194,206,183,140,224,206,183,207,254,206,183,252,28,207,183,17,59,207,183,16,89,207,183,248,118,207,183,201,148,207,183,131,178,207,183,38,208,207,183,178,237,207,183,39,11,208,183,133,40,208,183,205,69,208,183,253,98,208,183,22,128,208,183,25,157,208,183,4,186,208,183,216,214,208,183,150,243,208,183,60,16,209,183,204,44,209,183,68,73,209,183,165,101,209,183,239,129,209,183,34,158,209,183,62,186,209,183,67,214,209,183,49,242,209,183,8,14,210,183,200,41,210,183,112,69,210,183,2,97,210,
183,124,124,210,183,223,151,210,183,43,179,210,183,96,206,210,183,125,233,210,183,132,4,211,183,115,31,211,183,75,58,211,183,11,85,211,183,181,111,211,183,71,138,211,183,194,164,211,183,38,191,211,183,115,217,211,183,168,243,211,183,198,13,212,183,205,39,212,183,188,65,212,183,149,91,212,183,85,117,212,183,255,142,212,183,145,168,212,183,12,194,212,183,112,219,212,183,188,244,212,183,241,13,213,183,14,39,213,183,20,64,213,183,3,89,213,183,218,113,213,183,154,138,213,183,67,163,213,183,212,187,213,
183,78,212,213,183,176,236,213,183,251,4,214,183,46,29,214,183,74,53,214,183,78,77,214,183,59,101,214,183,17,125,214,183,207,148,214,183,117,172,214,183,4,196,214,183,124,219,214,183,220,242,214,183,37,10,215,183,86,33,215,183,111,56,215,183,113,79,215,183,91,102,215,183,46,125,215,183,233,147,215,183,141,170,215,183,25,193,215,183,141,215,215,183,234,237,215,183,48,4,216,183,93,26,216,183,115,48,216,183,114,70,216,183,89,92,216,183,40,114,216,183,224,135,216,183,127,157,216,183,8,179,216,183,120,
200,216,183,209,221,216,183,19,243,216,183,60,8,217,183,78,29,217,183,72,50,217,183,43,71,217,183,246,91,217,183,169,112,217,183,68,133,217,183,200,153,217,183,52,174,217,183,136,194,217,183,196,214,217,183,233,234,217,183,246,254,217,183,235,18,218,183,201,38,218,183,142,58,218,183,60,78,218,183,210,97,218,183,81,117,218,183,183,136,218,183,6,156,218,183,61,175,218,183,92,194,218,183,99,213,218,183,83,232,218,183,42,251,218,183,234,13,219,183,146,32,219,183,34,51,219,183,155,69,219,183,251,87,219,
183,68,106,219,183,116,124,219,183,141,142,219,183,142,160,219,183,119,178,219,183,72,196,219,183,2,214,219,183,163,231,219,183,45,249,219,183,158,10,220,183,248,27,220,183,58,45,220,183,100,62,220,183,118,79,220,183,112,96,220,183,82,113,220,183,28,130,220,183,206,146,220,183,104,163,220,183,235,179,220,183,85,196,220,183,167,212,220,183,226,228,220,183,4,245,220,183,15,5,221,183,1,21,221,183,220,36,221,183,158,52,221,183,73,68,221,183,219,83,221,183,86,99,221,183,185,114,221,183,3,130,221,183,54,
145,221,183,80,160,221,183,83,175,221,183,61,190,221,183,16,205,221,183,202,219,221,183,109,234,221,183,247,248,221,183,105,7,222,183,196,21,222,183,6,36,222,183,48,50,222,183,66,64,222,183,60,78,222,183,30,92,222,183,232,105,222,183,154,119,222,183,52,133,222,183,182,146,222,183,31,160,222,183,113,173,222,183,170,186,222,183,204,199,222,183,213,212,222,183,198,225,222,183,160,238,222,183,97,251,222,183,10,8,223,183,154,20,223,183,19,33,223,183,116,45,223,183,188,57,223,183,237,69,223,183,5,82,223,
183,5,94,223,183,237,105,223,183,189,117,223,183,117,129,223,183,20,141,223,183,156,152,223,183,11,164,223,183,99,175,223,183,162,186,223,183,201,197,223,183,216,208,223,183,206,219,223,183,173,230,223,183,115,241,223,183,33,252,223,183,184,6,224,183,53,17,224,183,155,27,224,183,233,37,224,183,30,48,224,183,60,58,224,183,65,68,224,183,46,78,224,183,2,88,224,183,191,97,224,183,99,107,224,183,240,116,224,183,100,126,224,183,192,135,224,183,4,145,224,183,47,154,224,183,66,163,224,183,62,172,224,183,
33,181,224,183,236,189,224,183,158,198,224,183,57,207,224,183,187,215,224,183,37,224,224,183,119,232,224,183,177,240,224,183,210,248,224,183,219,0,225,183,205,8,225,183,166,16,225,183,102,24,225,183,15,32,225,183,159,39,225,183,23,47,225,183,119,54,225,183,191,61,225,183,239,68,225,183,6,76,225,183,5,83,225,183,236,89,225,183,187,96,225,183,113,103,225,183,16,110,225,183,150,116,225,183,4,123,225,183,89,129,225,183,151,135,225,183,188,141,225,183,201,147,225,183,190,153,225,183,155,159,225,183,96,
165,225,183,12,171,225,183,160,176,225,183,28,182,225,183,128,187,225,183,203,192,225,183,254,197,225,183,26,203,225,183,28,208,225,183,7,213,225,183,218,217,225,183,148,222,225,183,54,227,225,183,192,231,225,183,50,236,225,183,139,240,225,183,204,244,225,183,246,248,225,183,7,253,225,183,255,0,226,183,224,4,226,183,168,8,226,183,88,12,226,183,240,15,226,183,112,19,226,183,215,22,226,183,39,26,226,183,94,29,226,183,125,32,226,183,132,35,226,183,115,38,226,183,73,41,226,183,7,44,226,183,173,46,226,
183,59,49,226,183,177,51,226,183,14,54,226,183,84,56,226,183,129,58,226,183,150,60,226,183,147,62,226,183,120,64,226,183,68,66,226,183,249,67,226,183,149,69,226,183,25,71,226,183,133,72,226,183,216,73,226,183,20,75,226,183,55,76,226,183,67,77,226,183,54,78,226,183,17,79,226,183,212,79,226,183,126,80,226,183,17,81,226,183,139,81,226,183,237,81,226,183,55,82,226,183,105,82,226,183,131,82,226,183,133,82,226,183,111,82,226,183,64,82,226,183,249,81,226,183,155,81,226,183,36,81,226,183,149,80,226,183,238,
79,226,183,47,79,226,183,87,78,226,183,104,77,226,183,96,76,226,183,65,75,226,183,9,74,226,183,185,72,226,183,81,71,226,183,209,69,226,183,57,68,226,183,137,66,226,183,193,64,226,183,225,62,226,183,233,60,226,183,216,58,226,183,176,56,226,183,111,54,226,183,23,52,226,183,166,49,226,183,29,47,226,183,125,44,226,183,196,41,226,183,243,38,226,183,10,36,226,183,9,33,226,183,241,29,226,183,192,26,226,183,119,23,226,183,22,20,226,183,157,16,226,183,12,13,226,183,99,9,226,183,162,5,226,183,201,1,226,183,
216,253,225,183,207,249,225,183,174,245,225,183,117,241,225,183,37,237,225,183,188,232,225,183,59,228,225,183,162,223,225,183,242,218,225,183,41,214,225,183,72,209,225,183,80,204,225,183,63,199,225,183,23,194,225,183,214,188,225,183,126,183,225,183,14,178,225,183,134,172,225,183,230,166,225,183,46,161,225,183,94,155,225,183,118,149,225,183,118,143,225,183,95,137,225,183,48,131,225,183,232,124,225,183,137,118,225,183,18,112,225,183,131,105,225,183,220,98,225,183,30,92,225,183,71,85,225,183,89,78,225,
183,83,71,225,183,53,64,225,183,255,56,225,183,178,49,225,183,76,42,225,183,207,34,225,183,58,27,225,183,141,19,225,183,201,11,225,183,236,3,225,183,248,251,224,183,236,243,224,183,200,235,224,183,141,227,224,183,58,219,224,183,207,210,224,183,76,202,224,183,177,193,224,183,255,184,224,183,53,176,224,183,83,167,224,183,90,158,224,183,73,149,224,183,32,140,224,183,224,130,224,183,136,121,224,183,24,112,224,183,144,102,224,183,241,92,224,183,58,83,224,183,107,73,224,183,133,63,224,183,135,53,224,183,
114,43,224,183,69,33,224,183,0,23,224,183,164,12,224,183,48,2,224,183,164,247,223,183,1,237,223,183,70,226,223,183,116,215,223,183,138,204,223,183,136,193,223,183,111,182,223,183,63,171,223,183,247,159,223,183,151,148,223,183,32,137,223,183,145,125,223,183,235,113,223,183,45,102,223,183,87,90,223,183,107,78,223,183,102,66,223,183,74,54,223,183,23,42,223,183,204,29,223,183,106,17,223,183,240,4,223,183,95,248,222,183,183,235,222,183,247,222,222,183,31,210,222,183,49,197,222,183,42,184,222,183,13,171,
222,183,216,157,222,183,139,144,222,183,39,131,222,183,172,117,222,183,26,104,222,183,112,90,222,183,175,76,222,183,214,62,222,183,230,48,222,183,223,34,222,183,192,20,222,183,139,6,222,183,61,248,221,183,217,233,221,183,93,219,221,183,202,204,221,183,32,190,221,183,95,175,221,183,134,160,221,183,150,145,221,183,143,130,221,183,112,115,221,183,59,100,221,183,238,84,221,183,138,69,221,183,15,54,221,183,124,38,221,183,211,22,221,183,18,7,221,183,58,247,220,183,75,231,220,183,69,215,220,183,40,199,220,
183,243,182,220,183,168,166,220,183,69,150,220,183,203,133,220,183,59,117,220,183,147,100,220,183,212,83,220,183,254,66,220,183,17,50,220,183,13,33,220,183,242,15,220,183,192,254,219,183,119,237,219,183,23,220,219,183,160,202,219,183,18,185,219,183,109,167,219,183,177,149,219,183,222,131,219,183,245,113,219,183,244,95,219,183,220,77,219,183,174,59,219,183,105,41,219,183,12,23,219,183,153,4,219,183,15,242,218,183,110,223,218,183,182,204,218,183,232,185,218,183,2,167,218,183,6,148,218,183,243,128,218,
183,201,109,218,183,137,90,218,183,49,71,218,183,195,51,218,183,62,32,218,183,163,12,218,183,241,248,217,183,39,229,217,183,72,209,217,183,81,189,217,183,68,169,217,183,32,149,217,183,230,128,217,183,148,108,217,183,45,88,217,183,174,67,217,183,25,47,217,183,109,26,217,183,171,5,217,183,210,240,216,183,227,219,216,183,221,198,216,183,192,177,216,183,141,156,216,183,67,135,216,183,227,113,216,183,108,92,216,183,223,70,216,183,59,49,216,183,129,27,216,183,177,5,216,183,201,239,215,183,204,217,215,183,
184,195,215,183,141,173,215,183,77,151,215,183,245,128,215,183,136,106,215,183,4,84,215,183,105,61,215,183,185,38,215,183,241,15,215,183,20,249,214,183,32,226,214,183,22,203,214,183,246,179,214,183,191,156,214,183,114,133,214,183,15,110,214,183,150,86,214,183,6,63,214,183,97,39,214,183,164,15,214,183,210,247,213,183,234,223,213,183,235,199,213,183,214,175,213,183,171,151,213,183,106,127,213,183,19,103,213,183,166,78,213,183,35,54,213,183,137,29,213,183,217,4,213,183,20,236,212,183,56,211,212,183,
70,186,212,183,63,161,212,183,33,136,212,183,237,110,212,183,163,85,212,183,68,60,212,183,206,34,212,183,67,9,212,183,161,239,211,183,233,213,211,183,28,188,211,183,57,162,211,183,64,136,211,183,49,110,211,183,12,84,211,183,209,57,211,183,128,31,211,183,26,5,211,183,158,234,210,183,12,208,210,183,100,181,210,183,167,154,210,183,211,127,210,183,234,100,210,183,236,73,210,183,215,46,210,183,173,19,210,183,109,248,209,183,24,221,209,183,172,193,209,183,44,166,209,183,149,138,209,183,233,110,209,183,
40,83,209,183,80,55,209,183,99,27,209,183,97,255,208,183,73,227,208,183,28,199,208,183,217,170,208,183,128,142,208,183,18,114,208,183,143,85,208,183,246,56,208,183,72,28,208,183,132,255,207,183,171,226,207,183,188,197,207,183,184,168,207,183,159,139,207,183,112,110,207,183,44,81,207,183,210,51,207,183,99,22,207,183,223,248,206,183,70,219,206,183,151,189,206,183,211,159,206,183,250,129,206,183,12,100,206,183,8,70,206,183,240,39,206,183,194,9,206,183,126,235,205,183,38,205,205,183,185,174,205,183,54,
144,205,183,158,113,205,183,241,82,205,183,48,52,205,183,89,21,205,183,109,246,204,183,107,215,204,183,85,184,204,183,42,153,204,183,234,121,204,183,149,90,204,183,43,59,204,183,172,27,204,183,24,252,203,183,111,220,203,183,177,188,203,183,223,156,203,183,247,124,203,183,251,92,203,183,234,60,203,183,196,28,203,183,137,252,202,183,57,220,202,183,213,187,202,183,91,155,202,183,206,122,202,183,43,90,202,183,115,57,202,183,167,24,202,183,199,247,201,183,209,214,201,183,199,181,201,183,168,148,201,183,
117,115,201,183,45,82,201,183,208,48,201,183,95,15,201,183,218,237,200,183,63,204,200,183,144,170,200,183,205,136,200,183,245,102,200,183,9,69,200,183,8,35,200,183,243,0,200,183,202,222,199,183,140,188,199,183,57,154,199,183,211,119,199,183,87,85,199,183,200,50,199,183,36,16,199,183,108,237,198,183,160,202,198,183,191,167,198,183,202,132,198,183,193,97,198,183,163,62,198,183,113,27,198,183,44,248,197,183,210,212,197,183,99,177,197,183,225,141,197,183,74,106,197,183,160,70,197,183,225,34,197,183,14,
255,196,183,39,219,196,183,45,183,196,183,30,147,196,183,251,110,196,183,196,74,196,183,121,38,196,183,26,2,196,183,167,221,195,183,32,185,195,183,134,148,195,183,215,111,195,183,21,75,195,183,63,38,195,183,84,1,195,183,87,220,194,183,69,183,194,183,31,146,194,183,230,108,194,183,153,71,194,183,56,34,194,183,196,252,193,183,59,215,193,183,160,177,193,183,240,139,193,183,45,102,193,183,86,64,193,183,108,26,193,183,109,244,192,183,92,206,192,183,55,168,192,183,254,129,192,183,178,91,192,183,82,53,192,
183,223,14,192,183,88,232,191,183,190,193,191,183,17,155,191,183,80,116,191,183,123,77,191,183,147,38,191,183,152,255,190,183,138,216,190,183,104,177,190,183,51,138,190,183,235,98,190,183,143,59,190,183,32,20,190,183,158,236,189,183,9,197,189,183,96,157,189,183,165,117,189,183,214,77,189,183,244,37,189,183,255,253,188,183,246,213,188,183,219,173,188,183,173,133,188,183,107,93,188,183,23,53,188,183,175,12,188,183,53,228,187,183,168,187,187,183,7,147,187,183,84,106,187,183,142,65,187,183,181,24,187,
183,201,239,186,183,202,198,186,183,184,157,186,183,148,116,186,183,93,75,186,183,18,34,186,183,182,248,185,183,70,207,185,183,196,165,185,183,47,124,185,183,135,82,185,183,205,40,185,183,0,255,184,183,32,213,184,183,46,171,184,183,41,129,184,183,18,87,184,183,232,44,184,183,171,2,184,183,92,216,183,183,251,173,183,183,135,131,183,183,1,89,183,183,104,46,183,183,189,3,183,183,255,216,182,183,47,174,182,183,77,131,182,183,88,88,182,183,81,45,182,183,56,2,182,183,12,215,181,183,206,171,181,183,126,
128,181,183,28,85,181,183,167,41,181,183,33,254,180,183,136,210,180,183,221,166,180,183,32,123,180,183,81,79,180,183,112,35,180,183,124,247,179,183,119,203,179,183,96,159,179,183,54,115,179,183,251,70,179,183,174,26,179,183,79,238,178,183,222,193,178,183,91,149,178,183,198,104,178,183,31,60,178,183,103,15,178,183,156,226,177,183,192,181,177,183,210,136,177,183,211,91,177,183,193,46,177,183,158,1,177,183,105,212,176,183,35,167,176,183,203,121,176,183,97,76,176,183,230,30,176,183,89,241,175,183,186,
195,175,183,10,150,175,183,73,104,175,183,118,58,175,183,145,12,175,183,155,222,174,183,148,176,174,183,123,130,174,183,81,84,174,183,21,38,174,183,200,247,173,183,106,201,173,183,250,154,173,183,121,108,173,183,231,61,173,183,68,15,173,183,143,224,172,183,201,177,172,183,242,130,172,183,10,84,172,183,17,37,172,183,6,246,171,183,235,198,171,183,190,151,171,183,128,104,171,183,49,57,171,183,210,9,171,183,97,218,170,183,223,170,170,183,77,123,170,183,169,75,170,183,244,27,170,183,47,236,169,183,89,
188,169,183,114,140,169,183,122,92,169,183,113,44,169,183,88,252,168,183,45,204,168,183,242,155,168,183,167,107,168,183,74,59,168,183,221,10,168,183,96,218,167,183,209,169,167,183,50,121,167,183,131,72,167,183,195,23,167,183,242,230,166,183,17,182,166,183,31,133,166,183,29,84,166,183,11,35,166,183,232,241,165,183,181,192,165,183,113,143,165,183,29,94,165,183,184,44,165,183,68,251,164,183,191,201,164,183,41,152,164,183,132,102,164,183,206,52,164,183,8,3,164,183,50,209,163,183,76,159,163,183,85,109,
163,183,79,59,163,183,56,9,163,183,17,215,162,183,218,164,162,183,148,114,162,183,61,64,162,183,214,13,162,183,95,219,161,183,217,168,161,183,66,118,161,183,156,67,161,183,229,16,161,183,31,222,160,183,73,171,160,183,99,120,160,183,110,69,160,183,104,18,160,183,83,223,159,183,47,172,159,183,250,120,159,183,182,69,159,183,98,18,159,183,255,222,158,183,140,171,158,183,10,120,158,183,120,68,158,183,214,16,158,183,37,221,157,183,101,169,157,183,149,117,157,183,181,65,157,183,198,13,157,183,200,217,156,
183,187,165,156,183,158,113,156,183,114,61,156,183,54,9,156,183,235,212,155,183,145,160,155,183,40,108,155,183,176,55,155,183,40,3,155,183,145,206,154,183,236,153,154,183,55,101,154,183,115,48,154,183,159,251,153,183,189,198,153,183,204,145,153,183,204,92,153,183,189,39,153,183,159,242,152,183,114,189,152,183,54,136,152,183,236,82,152,183,146,29,152,183,42,232,151,183,179,178,151,183,45,125,151,183,152,71,151,183,245,17,151,183,66,220,150,183,130,166,150,183,178,112,150,183,212,58,150,183,232,4,150,
183,236,206,149,183,227,152,149,183,202,98,149,183,164,44,149,183,110,246,148,183,42,192,148,183,216,137,148,183,120,83,148,183,9,29,148,183,139,230,147,183,0,176,147,183,102,121,147,183,189,66,147,183,7,12,147,183,66,213,146,183,111,158,146,183,142,103,146,183,158,48,146,183,161,249,145,183,149,194,145,183,123,139,145,183,84,84,145,183,30,29,145,183,218,229,144,183,136,174,144,183,40,119,144,183,186,63,144,183,62,8,144,183,181,208,143,183,29,153,143,183,120,97,143,183,197,41,143,183,4,242,142,183,
53,186,142,183,88,130,142,183,110,74,142,183,118,18,142,183,113,218,141,183,93,162,141,183,60,106,141,183,14,50,141,183,210,249,140,183,136,193,140,183,49,137,140,183,204,80,140,183,90,24,140,183,218,223,139,183,77,167,139,183,179,110,139,183,11,54,139,183,86,253,138,183,147,196,138,183,195,139,138,183,230,82,138,183,252,25,138,183,4,225,137,183,255,167,137,183,237,110,137,183,206,53,137,183,162,252,136,183,105,195,136,183,34,138,136,183,207,80,136,183,110,23,136,183,1,222,135,183,134,164,135,183,
254,106,135,183,106,49,135,183,201,247,134,183,27,190,134,183,96,132,134,183,152,74,134,183,195,16,134,183,226,214,133,183,243,156,133,183,248,98,133,183,241,40,133,183,220,238,132,183,187,180,132,183,142,122,132,183,84,64,132,183,13,6,132,183,186,203,131,183,90,145,131,183,238,86,131,183,117,28,131,183,240,225,130,183,94,167,130,183,192,108,130,183,21,50,130,183,95,247,129,183,156,188,129,183,204,129,129,183,241,70,129,183,9,12,129,183,21,209,128,183,21,150,128,183,8,91,128,183,240,31,128,183,150,
201,127,183,52,83,127,183,187,220,126,183,41,102,126,183,127,239,125,183,190,120,125,183,228,1,125,183,243,138,124,183,234,19,124,183,201,156,123,183,144,37,123,183,64,174,122,183,216,54,122,183,88,191,121,183,193,71,121,183,19,208,120,183,77,88,120,183,112,224,119,183,124,104,119,183,112,240,118,183,77,120,118,183,20,0,118,183,195,135,117,183,91,15,117,183,220,150,116,183,70,30,116,183,153,165,115,183,213,44,115,183,251,179,114,183,10,59,114,183,2,194,113,183,228,72,113,183,175,207,112,183,100,86,
112,183,2,221,111,183,138,99,111,183,252,233,110,183,87,112,110,183,156,246,109,183,203,124,109,183,227,2,109,183,230,136,108,183,211,14,108,183,169,148,107,183,106,26,107,183,21,160,106,183,170,37,106,183,41,171,105,183,147,48,105,183,231,181,104,183,38,59,104,183,78,192,103,183,98,69,103,183,96,202,102,183,72,79,102,183,28,212,101,183,218,88,101,183,130,221,100,183,22,98,100,183,148,230,99,183,254,106,99,183,82,239,98,183,146,115,98,183,188,247,97,183,210,123,97,183,211,255,96,183,191,131,96,183,
151,7,96,183,90,139,95,183,8,15,95,183,162,146,94,183,39,22,94,183,152,153,93,183,245,28,93,183,61,160,92,183,113,35,92,183,145,166,91,183,157,41,91,183,148,172,90,183,120,47,90,183,72,178,89,183,3,53,89,183,171,183,88,183,63,58,88,183,191,188,87,183,44,63,87,183,133,193,86,183,202,67,86,183,252,197,85,183,26,72,85,183,37,202,84,183,28,76,84,183,0,206,83,183,209,79,83,183,143,209,82,183,57,83,82,183,209,212,81,183,85,86,81,183,198,215,80,183,36,89,80,183,112,218,79,183,169,91,79,183,206,220,78,183,
226,93,78,183,226,222,77,183,208,95,77,183,171,224,76,183,116,97,76,183,42,226,75,183,206,98,75,183,96,227,74,183,223,99,74,183,76,228,73,183,167,100,73,183,240,228,72,183,38,101,72,183,75,229,71,183,94,101,71,183,95,229,70,183,78,101,70,183,43,229,69,183,246,100,69,183,176,228,68,183,88,100,68,183,239,227,67,183,116,99,67,183,231,226,66,183,74,98,66,183,155,225,65,183,218,96,65,183,8,224,64,183,38,95,64,183,50,222,63,183,45,93,63,183,23,220,62,183,240,90,62,183,184,217,61,183,111,88,61,183,21,215,
60,183,171,85,60,183,48,212,59,183,164,82,59,183,8,209,58,183,91,79,58,183,158,205,57,183,209,75,57,183,243,201,56,183,5,72,56,183,6,198,55,183,248,67,55,183,217,193,54,183,170,63,54,183,107,189,53,183,28,59,53,183,190,184,52,183,79,54,52,183,209,179,51,183,67,49,51,183,165,174,50,183,248,43,50,183,59,169,49,183,111,38,49,183,147,163,48,183,167,32,48,183,173,157,47,183,163,26,47,183,138,151,46,183,97,20,46,183,42,145,45,183,228,13,45,183,142,138,44,183,42,7,44,183,182,131,43,183,52,0,43,183,163,124,
42,183,4,249,41,183,85,117,41,183,152,241,40,183,205,109,40,183,243,233,39,183,11,102,39,183,20,226,38,183,15,94,38,183,251,217,37,183,218,85,37,183,170,209,36,183,108,77,36,183,32,201,35,183,198,68,35,183,94,192,34,183,233,59,34,183,101,183,33,183,212,50,33,183,53,174,32,183,136,41,32,183,206,164,31,183,6,32,31,183,49,155,30,183,78,22,30,183,94,145,29,183,97,12,29,183,86,135,28,183,63,2,28,183,26,125,27,183,232,247,26,183,169,114,26,183,93,237,25,183,4,104,25,183,158,226,24,183,43,93,24,183,172,
215,23,183,32,82,23,183,135,204,22,183,226,70,22,183,49,193,21,183,114,59,21,183,168,181,20,183,209,47,20,183,238,169,19,183,254,35,19,183,3,158,18,183,251,23,18,183,231,145,17,183,200,11,17,183,156,133,16,183,100,255,15,183,33,121,15,183,210,242,14,183,119,108,14,183,16,230,13,183,158,95,13,183,33,217,12,183,152,82,12,183,3,204,11,183,99,69,11,183,184,190,10,183,1,56,10,183,63,177,9,183,115,42,9,183,155,163,8,183,184,28,8,183,202,149,7,183,209,14,7,183,205,135,6,183,191,0,6,183,165,121,5,183,130,
242,4,183,83,107,4,183,26,228,3,183,214,92,3,183,136,213,2,183,48,78,2,183,205,198,1,183,96,63,1,183,232,183,0,183,103,48,0,183,183,81,255,182,140,66,254,182,76,51,253,182,249,35,252,182,146,20,251,182,24,5,250,182,138,245,248,182,232,229,247,182,51,214,246,182,108,198,245,182,145,182,244,182,163,166,243,182,162,150,242,182,142,134,241,182,104,118,240,182,48,102,239,182,229,85,238,182,135,69,237,182,24,53,236,182,151,36,235,182,3,20,234,182,94,3,233,182,167,242,231,182,223,225,230,182,5,209,229,182,
26,192,228,182,30,175,227,182,16,158,226,182,242,140,225,182,195,123,224,182,130,106,223,182,50,89,222,182,209,71,221,182,95,54,220,182,221,36,219,182,75,19,218,182,169,1,217,182,246,239,215,182,52,222,214,182,99,204,213,182,129,186,212,182,145,168,211,182,145,150,210,182,129,132,209,182,99,114,208,182,53,96,207,182,249,77,206,182,173,59,205,182,83,41,204,182,235,22,203,182,116,4,202,182,239,241,200,182,91,223,199,182,186,204,198,182,10,186,197,182,77,167,196,182,130,148,195,182,169,129,194,182,194,
110,193,182,207,91,192,182,206,72,191,182,192,53,190,182,164,34,189,182,124,15,188,182,71,252,186,182,6,233,185,182,183,213,184,182,93,194,183,182,245,174,182,182,130,155,181,182,3,136,180,182,119,116,179,182,224,96,178,182,61,77,177,182,142,57,176,182,212,37,175,182,14,18,174,182,61,254,172,182,96,234,171,182,121,214,170,182,135,194,169,182,138,174,168,182,130,154,167,182,111,134,166,182,82,114,165,182,43,94,164,182,249,73,163,182,189,53,162,182,119,33,161,182,39,13,160,182,206,248,158,182,107,228,
157,182,254,207,156,182,135,187,155,182,8,167,154,182,127,146,153,182,237,125,152,182,82,105,151,182,174,84,150,182,2,64,149,182,76,43,148,182,143,22,147,182,200,1,146,182,250,236,144,182,35,216,143,182,69,195,142,182,94,174,141,182,112,153,140,182,121,132,139,182,124,111,138,182,118,90,137,182,106,69,136,182,86,48,135,182,59,27,134,182,25,6,133,182,240,240,131,182,192,219,130,182,138,198,129,182,77,177,128,182,19,56,127,182,127,13,125,182,224,226,122,182,52,184,120,182,124,141,118,182,184,98,116,
182,233,55,114,182,15,13,112,182,42,226,109,182,58,183,107,182,63,140,105,182,58,97,103,182,43,54,101,182,18,11,99,182,240,223,96,182,196,180,94,182,143,137,92,182,81,94,90,182,10,51,88,182,187,7,86,182,100,220,83,182,4,177,81,182,157,133,79,182],"i8",4,y.a+1075200);
Q([47,90,77,182,185,46,75,182,60,3,73,182,184,215,70,182,45,172,68,182,157,128,66,182,6,85,64,182,105,41,62,182,199,253,59,182,31,210,57,182,114,166,55,182,191,122,53,182,9,79,51,182,77,35,49,182,142,247,46,182,202,203,44,182,3,160,42,182,55,116,40,182,105,72,38,182,152,28,36,182,195,240,33,182,236,196,31,182,19,153,29,182,55,109,27,182,89,65,25,182,122,21,23,182,153,233,20,182,183,189,18,182,212,145,16,182,240,101,14,182,11,58,12,182,38,14,10,182,65,226,7,182,92,182,5,182,120,138,3,182,148,94,1,
182,98,101,254,181,158,13,250,181,220,181,245,181,30,94,241,181,99,6,237,181,172,174,232,181,249,86,228,181,75,255,223,181,163,167,219,181,0,80,215,181,100,248,210,181,207,160,206,181,64,73,202,181,185,241,197,181,59,154,193,181,197,66,189,181,88,235,184,181,244,147,180,181,155,60,176,181,76,229,171,181,7,142,167,181,207,54,163,181,162,223,158,181,129,136,154,181,109,49,150,181,102,218,145,181,109,131,141,181,130,44,137,181,165,213,132,181,216,126,128,181,52,80,120,181,216,162,111,181,157,245,102,
181,132,72,94,181,141,155,85,181,186,238,76,181,12,66,68,181,131,149,59,181,32,233,50,181,229,60,42,181,210,144,33,181,232,228,24,181,40,57,16,181,147,141,7,181,85,196,253,180,221,109,236,180,192,23,219,180,1,194,201,180,160,108,184,180,161,23,167,180,5,195,149,180,205,110,132,180,248,53,102,180,39,143,67,180,42,233,32,180,10,136,252,179,119,63,183,179,72,241,99,179,90,206,178,178,76,125,68,50,41,162,59,51,163,16,163,51,79,78,232,51,7,197,22,52,239,97,57,52,217,253,91,52,195,152,126,52,84,153,144,
52,195,229,161,52,173,49,179,52,14,125,196,52,231,199,213,52,52,18,231,52,244,91,248,52,147,210,4,53,227,118,13,53,234,26,22,53,167,190,30,53,25,98,39,53,62,5,48,53,23,168,56,53,162,74,65,53,222,236,73,53,203,142,82,53,103,48,91,53,178,209,99,53,170,114,108,53,79,19,117,53,159,179,125,53,205,41,131,53,160,121,135,53,71,201,139,53,195,24,144,53,18,104,148,53,52,183,152,53,41,6,157,53,240,84,161,53,137,163,165,53,243,241,169,53,46,64,174,53,58,142,178,53,21,220,182,53,192,41,187,53,58,119,191,53,131,
196,195,53,154,17,200,53,126,94,204,53,48,171,208,53,175,247,212,53,250,67,217,53,17,144,221,53,243,219,225,53,161,39,230,53,24,115,234,53,90,190,238,53,102,9,243,53,59,84,247,53,216,158,251,53,62,233,255,53,182,25,2,54,176,62,4,54,142,99,6,54,79,136,8,54,244,172,10,54,123,209,12,54,228,245,14,54,48,26,17,54,94,62,19,54,110,98,21,54,95,134,23,54,50,170,25,54,230,205,27,54,124,241,29,54,242,20,32,54,72,56,34,54,127,91,36,54,149,126,38,54,140,161,40,54,98,196,42,54,24,231,44,54,173,9,47,54,33,44,49,
54,116,78,51,54,165,112,53,54,180,146,55,54,161,180,57,54,109,214,59,54,22,248,61,54,156,25,64,54,255,58,66,54,64,92,68,54,93,125,70,54,87,158,72,54,44,191,74,54,222,223,76,54,108,0,79,54,214,32,81,54,26,65,83,54,58,97,85,54,53,129,87,54,11,161,89,54,187,192,91,54,69,224,93,54,170,255,95,54,232,30,98,54,0,62,100,54,241,92,102,54,187,123,104,54,94,154,106,54,218,184,108,54,47,215,110,54,91,245,112,54,96,19,115,54,61,49,117,54,241,78,119,54,125,108,121,54,223,137,123,54,25,167,125,54,41,196,127,54,
136,240,128,54,231,254,129,54,48,13,131,54,101,27,132,54,132,41,133,54,142,55,134,54,131,69,135,54,98,83,136,54,43,97,137,54,223,110,138,54,125,124,139,54,5,138,140,54,119,151,141,54,210,164,142,54,24,178,143,54,71,191,144,54,95,204,145,54,97,217,146,54,76,230,147,54,32,243,148,54,221,255,149,54,131,12,151,54,18,25,152,54,138,37,153,54,234,49,154,54,51,62,155,54,101,74,156,54,126,86,157,54,128,98,158,54,105,110,159,54,59,122,160,54,245,133,161,54,150,145,162,54,31,157,163,54,143,168,164,54,231,179,
165,54,38,191,166,54,76,202,167,54,90,213,168,54,78,224,169,54,41,235,170,54,235,245,171,54,148,0,173,54,35,11,174,54,153,21,175,54,245,31,176,54,55,42,177,54,95,52,178,54,109,62,179,54,97,72,180,54,59,82,181,54,251,91,182,54,160,101,183,54,42,111,184,54,154,120,185,54,239,129,186,54,42,139,187,54,73,148,188,54,77,157,189,54,54,166,190,54,4,175,191,54,182,183,192,54,77,192,193,54,201,200,194,54,40,209,195,54,108,217,196,54,147,225,197,54,159,233,198,54,143,241,199,54,98,249,200,54,25,1,202,54,179,
8,203,54,49,16,204,54,146,23,205,54,214,30,206,54,254,37,207,54,8,45,208,54,245,51,209,54,197,58,210,54,120,65,211,54,13,72,212,54,133,78,213,54,223,84,214,54,27,91,215,54,58,97,216,54,58,103,217,54,29,109,218,54,225,114,219,54,135,120,220,54,15,126,221,54,120,131,222,54,194,136,223,54,238,141,224,54,251,146,225,54,233,151,226,54,184,156,227,54,104,161,228,54,248,165,229,54,106,170,230,54,187,174,231,54,238,178,232,54,0,183,233,54,243,186,234,54,198,190,235,54,121,194,236,54,12,198,237,54,127,201,
238,54,209,204,239,54,3,208,240,54,21,211,241,54,6,214,242,54,214,216,243,54,134,219,244,54,20,222,245,54,130,224,246,54,206,226,247,54,249,228,248,54,3,231,249,54,235,232,250,54,178,234,251,54,87,236,252,54,219,237,253,54,60,239,254,54,124,240,255,54,205,120,0,55,75,249,0,55,183,121,1,55,19,250,1,55,93,122,2,55,150,250,2,55,189,122,3,55,211,250,3,55,216,122,4,55,203,250,4,55,173,122,5,55,125,250,5,55,59,122,6,55,232,249,6,55,131,121,7,55,12,249,7,55,131,120,8,55,233,247,8,55,60,119,9,55,125,246,
9,55,173,117,10,55,202,244,10,55,213,115,11,55,206,242,11,55,181,113,12,55,137,240,12,55,75,111,13,55,250,237,13,55,151,108,14,55,34,235,14,55,154,105,15,55,255,231,15,55,82,102,16,55,146,228,16,55,191,98,17,55,217,224,17,55,225,94,18,55,213,220,18,55,183,90,19,55,134,216,19,55,65,86,20,55,233,211,20,55,127,81,21,55,1,207,21,55,111,76,22,55,203,201,22,55,19,71,23,55,71,196,23,55,104,65,24,55,118,190,24,55,112,59,25,55,86,184,25,55,41,53,26,55,232,177,26,55,147,46,27,55,42,171,27,55,173,39,28,55,29,
164,28,55,121,32,29,55,192,156,29,55,243,24,30,55,19,149,30,55,30,17,31,55,21,141,31,55,247,8,32,55,198,132,32,55,128,0,33,55,37,124,33,55,182,247,33,55,51,115,34,55,155,238,34,55,238,105,35,55,45,229,35,55,87,96,36,55,108,219,36,55,108,86,37,55,88,209,37,55,46,76,38,55,240,198,38,55,156,65,39,55,52,188,39,55,182,54,40,55,35,177,40,55,123,43,41,55,190,165,41,55,236,31,42,55,4,154,42,55,6,20,43,55,244,141,43,55,204,7,44,55,142,129,44,55,58,251,44,55,209,116,45,55,83,238,45,55,190,103,46,55,20,225,
46,55,84,90,47,55,126,211,47,55,146,76,48,55,144,197,48,55,120,62,49,55,74,183,49,55,6,48,50,55,171,168,50,55,59,33,51,55,180,153,51,55,23,18,52,55,99,138,52,55,153,2,53,55,185,122,53,55,194,242,53,55,180,106,54,55,144,226,54,55,85,90,55,55,4,210,55,55,156,73,56,55,29,193,56,55,135,56,57,55,218,175,57,55,22,39,58,55,60,158,58,55,74,21,59,55,65,140,59,55,33,3,60,55,234,121,60,55,156,240,60,55,54,103,61,55,185,221,61,55,37,84,62,55,121,202,62,55,182,64,63,55,220,182,63,55,233,44,64,55,224,162,64,55,
190,24,65,55,133,142,65,55,52,4,66,55,204,121,66,55,75,239,66,55,179,100,67,55,2,218,67,55,58,79,68,55,90,196,68,55,97,57,69,55,81,174,69,55,40,35,70,55,232,151,70,55,142,12,71,55,29,129,71,55,147,245,71,55,241,105,72,55,55,222,72,55,100,82,73,55,120,198,73,55,116,58,74,55,87,174,74,55,34,34,75,55,212,149,75,55,109,9,76,55,237,124,76,55,85,240,76,55,164,99,77,55,217,214,77,55,246,73,78,55,250,188,78,55,228,47,79,55,182,162,79,55,110,21,80,55,13,136,80,55,147,250,80,55,0,109,81,55,83,223,81,55,141,
81,82,55,173,195,82,55,180,53,83,55,161,167,83,55,117,25,84,55,48,139,84,55,208,252,84,55,87,110,85,55,196,223,85,55,23,81,86,55,81,194,86,55,113,51,87,55,118,164,87,55,98,21,88,55,52,134,88,55,235,246,88,55,137,103,89,55,12,216,89,55,117,72,90,55,196,184,90,55,249,40,91,55,20,153,91,55,20,9,92,55,249,120,92,55,196,232,92,55,117,88,93,55,11,200,93,55,135,55,94,55,231,166,94,55,46,22,95,55,89,133,95,55,106,244,95,55,96,99,96,55,59,210,96,55,251,64,97,55,160,175,97,55,43,30,98,55,154,140,98,55,238,
250,98,55,39,105,99,55,69,215,99,55,72,69,100,55,47,179,100,55,252,32,101,55,173,142,101,55,66,252,101,55,188,105,102,55,27,215,102,55,94,68,103,55,134,177,103,55,146,30,104,55,130,139,104,55,87,248,104,55,16,101,105,55,174,209,105,55,47,62,106,55,149,170,106,55,223,22,107,55,13,131,107,55,31,239,107,55,21,91,108,55,238,198,108,55,172,50,109,55,78,158,109,55,212,9,110,55,61,117,110,55,138,224,110,55,187,75,111,55,207,182,111,55,199,33,112,55,163,140,112,55,98,247,112,55,5,98,113,55,139,204,113,55,
244,54,114,55,65,161,114,55,113,11,115,55,133,117,115,55,124,223,115,55,86,73,116,55,19,179,116,55,179,28,117,55,54,134,117,55,157,239,117,55,230,88,118,55,19,194,118,55,34,43,119,55,20,148,119,55,233,252,119,55,161,101,120,55,59,206,120,55,185,54,121,55,24,159,121,55,91,7,122,55,128,111,122,55,136,215,122,55,114,63,123,55,63,167,123,55,238,14,124,55,128,118,124,55,243,221,124,55,74,69,125,55,130,172,125,55,157,19,126,55,154,122,126,55,121,225,126,55,58,72,127,55,221,174,127,55,177,10,128,55,229,
61,128,55,9,113,128,55,31,164,128,55,38,215,128,55,29,10,129,55,5,61,129,55,223,111,129,55,169,162,129,55,99,213,129,55,15,8,130,55,172,58,130,55,57,109,130,55,183,159,130,55,38,210,130,55,133,4,131,55,214,54,131,55,23,105,131,55,72,155,131,55,106,205,131,55,125,255,131,55,129,49,132,55,117,99,132,55,89,149,132,55,47,199,132,55,244,248,132,55,171,42,133,55,81,92,133,55,232,141,133,55,112,191,133,55,232,240,133,55,81,34,134,55,170,83,134,55,243,132,134,55,44,182,134,55,86,231,134,55,113,24,135,55,
123,73,135,55,118,122,135,55,97,171,135,55,61,220,135,55,8,13,136,55,196,61,136,55,112,110,136,55,12,159,136,55,152,207,136,55,21,0,137,55,129,48,137,55,222,96,137,55,43,145,137,55,104,193,137,55,149,241,137,55,177,33,138,55,190,81,138,55,187,129,138,55,168,177,138,55,133,225,138,55,81,17,139,55,14,65,139,55,187,112,139,55,87,160,139,55,227,207,139,55,95,255,139,55,203,46,140,55,39,94,140,55,115,141,140,55,174,188,140,55,217,235,140,55,244,26,141,55,254,73,141,55,248,120,141,55,226,167,141,55,188,
214,141,55,133,5,142,55,61,52,142,55,230,98,142,55,126,145,142,55,5,192,142,55,124,238,142,55,227,28,143,55,57,75,143,55,127,121,143,55,180,167,143,55,217,213,143,55,237,3,144,55,240,49,144,55,227,95,144,55,197,141,144,55,151,187,144,55,88,233,144,55,8,23,145,55,168,68,145,55,55,114,145,55,181,159,145,55,35,205,145,55,128,250,145,55,204,39,146,55,7,85,146,55,50,130,146,55,75,175,146,55,84,220,146,55,76,9,147,55,51,54,147,55,10,99,147,55,207,143,147,55,131,188,147,55,39,233,147,55,185,21,148,55,59,
66,148,55,172,110,148,55,11,155,148,55,90,199,148,55,152,243,148,55,196,31,149,55,224,75,149,55,234,119,149,55,227,163,149,55,204,207,149,55,163,251,149,55,105,39,150,55,29,83,150,55,193,126,150,55,83,170,150,55,212,213,150,55,68,1,151,55,163,44,151,55,241,87,151,55,45,131,151,55,88,174,151,55,113,217,151,55,121,4,152,55,112,47,152,55,86,90,152,55,42,133,152,55,237,175,152,55,158,218,152,55,62,5,153,55,204,47,153,55,73,90,153,55,181,132,153,55,15,175,153,55,88,217,153,55,143,3,154,55,180,45,154,55,
200,87,154,55,203,129,154,55,188,171,154,55,155,213,154,55,104,255,154,55,36,41,155,55,207,82,155,55,103,124,155,55,238,165,155,55,100,207,155,55,199,248,155,55,25,34,156,55,90,75,156,55,136,116,156,55,165,157,156,55,175,198,156,55,169,239,156,55,144,24,157,55,101,65,157,55,41,106,157,55,219,146,157,55,122,187,157,55,8,228,157,55,132,12,158,55,239,52,158,55,71,93,158,55,141,133,158,55,193,173,158,55,228,213,158,55,244,253,158,55,242,37,159,55,223,77,159,55,185,117,159,55,129,157,159,55,55,197,159,
55,219,236,159,55,109,20,160,55,237,59,160,55,91,99,160,55,183,138,160,55,0,178,160,55,55,217,160,55,92,0,161,55,111,39,161,55,112,78,161,55,94,117,161,55,59,156,161,55,5,195,161,55,188,233,161,55,98,16,162,55,245,54,162,55,118,93,162,55,228,131,162,55,64,170,162,55,138,208,162,55,193,246,162,55,230,28,163,55,249,66,163,55,249,104,163,55,231,142,163,55,194,180,163,55,139,218,163,55,66,0,164,55,230,37,164,55,119,75,164,55,246,112,164,55,99,150,164,55,188,187,164,55,4,225,164,55,57,6,165,55,91,43,165,
55,106,80,165,55,103,117,165,55,82,154,165,55,42,191,165,55,239,227,165,55,161,8,166,55,65,45,166,55,206,81,166,55,73,118,166,55,176,154,166,55,5,191,166,55,72,227,166,55,119,7,167,55,148,43,167,55,158,79,167,55,149,115,167,55,121,151,167,55,75,187,167,55,10,223,167,55,182,2,168,55,79,38,168,55,213,73,168,55,72,109,168,55,169,144,168,55,246,179,168,55,49,215,168,55,88,250,168,55,109,29,169,55,111,64,169,55,94,99,169,55,57,134,169,55,2,169,169,55,184,203,169,55,91,238,169,55,235,16,170,55,103,51,170,
55,209,85,170,55,40,120,170,55,107,154,170,55,156,188,170,55,185,222,170,55,195,0,171,55,186,34,171,55,158,68,171,55,111,102,171,55,44,136,171,55,215,169,171,55,110,203,171,55,242,236,171,55,99,14,172,55,193,47,172,55,11,81,172,55,66,114,172,55,102,147,172,55,118,180,172,55,116,213,172,55,94,246,172,55,52,23,173,55,248,55,173,55,168,88,173,55,69,121,173,55,206,153,173,55,68,186,173,55,166,218,173,55,246,250,173,55,49,27,174,55,90,59,174,55,111,91,174,55,112,123,174,55,94,155,174,55,57,187,174,55,
0,219,174,55,180,250,174,55,84,26,175,55,225,57,175,55,90,89,175,55,192,120,175,55,18,152,175,55,80,183,175,55,123,214,175,55,147,245,175,55,150,20,176,55,135,51,176,55,99,82,176,55,44,113,176,55,226,143,176,55,132,174,176,55,18,205,176,55,140,235,176,55,243,9,177,55,70,40,177,55,134,70,177,55,177,100,177,55,201,130,177,55,206,160,177,55,190,190,177,55,155,220,177,55,100,250,177,55,26,24,178,55,187,53,178,55,73,83,178,55,195,112,178,55,41,142,178,55,124,171,178,55,186,200,178,55,229,229,178,55,252,
2,179,55,255,31,179,55,238,60,179,55,201,89,179,55,145,118,179,55,68,147,179,55,228,175,179,55,112,204,179,55,231,232,179,55,75,5,180,55,155,33,180,55,215,61,180,55,255,89,180,55,19,118,180,55,19,146,180,55,255,173,180,55,215,201,180,55,155,229,180,55,75,1,181,55,232,28,181,55,111,56,181,55,227,83,181,55,67,111,181,55,143,138,181,55,199,165,181,55,234,192,181,55,250,219,181,55,245,246,181,55,221,17,182,55,176,44,182,55,111,71,182,55,26,98,182,55,177,124,182,55,51,151,182,55,162,177,182,55,252,203,
182,55,66,230,182,55,116,0,183,55,146,26,183,55,155,52,183,55,145,78,183,55,114,104,183,55,63,130,183,55,247,155,183,55,156,181,183,55,44,207,183,55,167,232,183,55,15,2,184,55,98,27,184,55,161,52,184,55,204,77,184,55,226,102,184,55,228,127,184,55,210,152,184,55,171,177,184,55,112,202,184,55,33,227,184,55,189,251,184,55,69,20,185,55,184,44,185,55,23,69,185,55,98,93,185,55,152,117,185,55,186,141,185,55,200,165,185,55,193,189,185,55,165,213,185,55,118,237,185,55,49,5,186,55,217,28,186,55,107,52,186,
55,234,75,186,55,84,99,186,55,169,122,186,55,234,145,186,55,22,169,186,55,46,192,186,55,49,215,186,55,32,238,186,55,251,4,187,55,192,27,187,55,113,50,187,55,14,73,187,55,150,95,187,55,10,118,187,55,105,140,187,55,179,162,187,55,233,184,187,55,10,207,187,55,22,229,187,55,14,251,187,55,241,16,188,55,192,38,188,55,122,60,188,55,32,82,188,55,176,103,188,55,44,125,188,55,148,146,188,55,231,167,188,55,37,189,188,55,78,210,188,55,99,231,188,55,99,252,188,55,78,17,189,55,37,38,189,55,231,58,189,55,148,79,
189,55,44,100,189,55,176,120,189,55,31,141,189,55,121,161,189,55,190,181,189,55,239,201,189,55,11,222,189,55,18,242,189,55,5,6,190,55,226,25,190,55,171,45,190,55,95,65,190,55,254,84,190,55,137,104,190,55,254,123,190,55,95,143,190,55,171,162,190,55,226,181,190,55,4,201,190,55,18,220,190,55,10,239,190,55,238,1,191,55,189,20,191,55,119,39,191,55,28,58,191,55,172,76,191,55,39,95,191,55,142,113,191,55,223,131,191,55,28,150,191,55,68,168,191,55,87,186,191,55,85,204,191,55,62,222,191,55,18,240,191,55,209,
1,192,55,123,19,192,55,16,37,192,55,144,54,192,55,252,71,192,55,82,89,192,55,148,106,192,55,192,123,192,55,216,140,192,55,218,157,192,55,200,174,192,55,160,191,192,55,100,208,192,55,18,225,192,55,172,241,192,55,48,2,193,55,160,18,193,55,250,34,193,55,64,51,193,55,112,67,193,55,140,83,193,55,146,99,193,55,131,115,193,55,96,131,193,55,39,147,193,55,217,162,193,55,118,178,193,55,254,193,193,55,113,209,193,55,207,224,193,55,24,240,193,55,76,255,193,55,106,14,194,55,116,29,194,55,105,44,194,55,72,59,194,
55,18,74,194,55,200,88,194,55,104,103,194,55,243,117,194,55,105,132,194,55,201,146,194,55,21,161,194,55,76,175,194,55,109,189,194,55,121,203,194,55,112,217,194,55,82,231,194,55,31,245,194,55,215,2,195,55,121,16,195,55,7,30,195,55,127,43,195,55,226,56,195,55,48,70,195,55,105,83,195,55,140,96,195,55,154,109,195,55,148,122,195,55,120,135,195,55,70,148,195,55,0,161,195,55,165,173,195,55,52,186,195,55,174,198,195,55,19,211,195,55,98,223,195,55,157,235,195,55,194,247,195,55,210,3,196,55,205,15,196,55,178,
27,196,55,131,39,196,55,62,51,196,55,228,62,196,55,116,74,196,55,240,85,196,55,86,97,196,55,167,108,196,55,227,119,196,55,9,131,196,55,27,142,196,55,23,153,196,55,253,163,196,55,207,174,196,55,139,185,196,55,50,196,196,55,196,206,196,55,64,217,196,55,168,227,196,55,249,237,196,55,54,248,196,55,94,2,197,55,112,12,197,55,109,22,197,55,84,32,197,55,39,42,197,55,228,51,197,55,139,61,197,55,30,71,197,55,155,80,197,55,3,90,197,55,86,99,197,55,147,108,197,55,187,117,197,55,206,126,197,55,203,135,197,55,
179,144,197,55,134,153,197,55,68,162,197,55,236,170,197,55,127,179,197,55,253,187,197,55,101,196,197,55,184,204,197,55,246,212,197,55,30,221,197,55,49,229,197,55,47,237,197,55,24,245,197,55,235,252,197,55,169,4,198,55,81,12,198,55,229,19,198,55,98,27,198,55,203,34,198,55,30,42,198,55,92,49,198,55,133,56,198,55,152,63,198,55,150,70,198,55,127,77,198,55,82,84,198,55,17,91,198,55,185,97,198,55,77,104,198,55,203,110,198,55,51,117,198,55,135,123,198,55,197,129,198,55,238,135,198,55,1,142,198,55,255,147,
198,55,232,153,198,55,188,159,198,55,122,165,198,55,35,171,198,55,182,176,198,55,52,182,198,55,157,187,198,55,240,192,198,55,47,198,198,55,87,203,198,55,107,208,198,55,105,213,198,55,82,218,198,55,37,223,198,55,228,227,198,55,141,232,198,55,32,237,198,55,158,241,198,55,7,246,198,55,91,250,198,55,153,254,198,55,194,2,199,55,213,6,199,55,212,10,199,55,189,14,199,55,144,18,199,55,78,22,199,55,247,25,199,55,139,29,199,55,9,33,199,55,114,36,199,55,198,39,199,55,4,43,199,55,45,46,199,55,65,49,199,55,64,
52,199,55,41,55,199,55,252,57,199,55,187,60,199,55,100,63,199,55,248,65,199,55,118,68,199,55,224,70,199,55,52,73,199,55,114,75,199,55,155,77,199,55,175,79,199,55,174,81,199,55,152,83,199,55,108,85,199,55,42,87,199,55,212,88,199,55,104,90,199,55,231,91,199,55,81,93,199,55,165,94,199,55,228,95,199,55,14,97,199,55,34,98,199,55,33,99,199,55,11,100,199,55,224,100,199,55,159,101,199,55,73,102,199,55,222,102,199,55,94,103,199,55,200,103,199,55,29,104,199,55,93,104,199,55,135,104,199,55,156,104,199,55,156,
104,199,55,135,104,199,55,92,104,199,55,29,104,199,55,199,103,199,55,93,103,199,55,222,102,199,55,73,102,199,55,159,101,199,55,223,100,199,55,11,100,199,55,33,99,199,55,34,98,199,55,14,97,199,55,228,95,199,55,166,94,199,55,82,93,199,55,233,91,199,55,106,90,199,55,215,88,199,55,46,87,199,55,112,85,199,55,157,83,199,55,181,81,199,55,183,79,199,55,164,77,199,55,124,75,199,55,63,73,199,55,237,70,199,55,133,68,199,55,9,66,199,55,119,63,199,55,208,60,199,55,20,58,199,55,66,55,199,55,92,52,199,55,96,49,
199,55,79,46,199,55,41,43,199,55,238,39,199,55,158,36,199,55,56,33,199,55,190,29,199,55,46,26,199,55,137,22,199,55,207,18,199,55,0,15,199,55,28,11,199,55,35,7,199,55,20,3,199,55,241,254,198,55,184,250,198,55,106,246,198,55,8,242,198,55,144,237,198,55,3,233,198,55,97,228,198,55,169,223,198,55,221,218,198,55,252,213,198,55,6,209,198,55,250,203,198,55,218,198,198,55,164,193,198,55,89,188,198,55,250,182,198,55,133,177,198,55,251,171,198,55,93,166,198,55,169,160,198,55,224,154,198,55,2,149,198,55,15,143,
198,55,7,137,198,55,235,130,198,55,185,124,198,55,114,118,198,55,22,112,198,55,165,105,198,55,31,99,198,55,133,92,198,55,213,85,198,55,16,79,198,55,54,72,198,55,72,65,198,55,68,58,198,55,44,51,198,55,254,43,198,55,188,36,198,55,100,29,198,55,248,21,198,55,119,14,198,55,225,6,198,55,54,255,197,55,118,247,197,55,161,239,197,55,183,231,197,55,185,223,197,55,165,215,197,55,125,207,197,55,64,199,197,55,238,190,197,55,135,182,197,55,11,174,197,55,122,165,197,55,213,156,197,55,27,148,197,55,75,139,197,55,
103,130,197,55,111,121,197,55,97,112,197,55,63,103,197,55,7,94,197,55,187,84,197,55,91,75,197,55,229,65,197,55,91,56,197,55,188,46,197,55,8,37,197,55,63,27,197,55,98,17,197,55,111,7,197,55,105,253,196,55,77,243,196,55,29,233,196,55,215,222,196,55,126,212,196,55,15,202,196,55,140,191,196,55,244,180,196,55,72,170,196,55,134,159,196,55,176,148,196,55,198,137,196,55,198,126,196,55,179,115,196,55,138,104,196,55,77,93,196,55,251,81,196,55,148,70,196,55,25,59,196,55,138,47,196,55,229,35,196,55,44,24,196,
55,95,12,196,55,125,0,196,55,134,244,195,55,123,232,195,55,91,220,195,55,39,208,195,55,222,195,195,55,128,183,195,55,14,171,195,55,136,158,195,55,237,145,195,55,61,133,195,55,121,120,195,55,161,107,195,55,179,94,195,55,178,81,195,55,156,68,195,55,113,55,195,55,50,42,195,55,223,28,195,55,119,15,195,55,251,1,195,55,106,244,194,55,197,230,194,55,12,217,194,55,62,203,194,55,91,189,194,55,100,175,194,55,89,161,194,55,58,147,194,55,6,133,194,55,190,118,194,55,97,104,194,55,240,89,194,55,107,75,194,55,209,
60,194,55,35,46,194,55,97,31,194,55,139,16,194,55,160,1,194,55,161,242,193,55,141,227,193,55,102,212,193,55,42,197,193,55,218,181,193,55,117,166,193,55,253,150,193,55,112,135,193,55,207,119,193,55,25,104,193,55,80,88,193,55,114,72,193,55,128,56,193,55,122,40,193,55,96,24,193,55,50,8,193,55,239,247,192,55,153,231,192,55,46,215,192,55,175,198,192,55,28,182,192,55,117,165,192,55,186,148,192,55,234,131,192,55,7,115,192,55,16,98,192,55,4,81,192,55,229,63,192,55,177,46,192,55,105,29,192,55,14,12,192,55,
158,250,191,55,26,233,191,55,131,215,191,55,215,197,191,55,24,180,191,55,68,162,191,55,92,144,191,55,97,126,191,55,82,108,191,55,46,90,191,55,247,71,191,55,172,53,191,55,77,35,191,55,218,16,191,55,83,254,190,55,184,235,190,55,10,217,190,55,71,198,190,55,113,179,190,55,135,160,190,55,137,141,190,55,120,122,190,55,82,103,190,55,25,84,190,55,204,64,190,55,107,45,190,55,246,25,190,55,110,6,190,55,210,242,189,55,34,223,189,55,95,203,189,55,136,183,189,55,157,163,189,55,158,143,189,55,140,123,189,55,102,
103,189,55,44,83,189,55,223,62,189,55,126,42,189,55,10,22,189,55,129,1,189,55,230,236,188,55,54,216,188,55,116,195,188,55,157,174,188,55,179,153,188,55,181,132,188,55,164,111,188,55,128,90,188,55,72,69,188,55,252,47,188,55,157,26,188,55,42,5,188,55,164,239,187,55,10,218,187,55,93,196,187,55,157,174,187,55,201,152,187,55,226,130,187,55,231,108,187,55,217,86,187,55,183,64,187,55,130,42,187,55,58,20,187,55,223,253,186,55,112,231,186,55,237,208,186,55,88,186,186,55,175,163,186,55,243,140,186,55,35,118,
186,55,65,95,186,55,75,72,186,55,65,49,186,55,37,26,186,55,245,2,186,55,178,235,185,55,92,212,185,55,243,188,185,55,118,165,185,55,231,141,185,55,68,118,185,55,142,94,185,55,197,70,185,55,233,46,185,55,249,22,185,55,247,254,184,55,226,230,184,55,185,206,184,55,125,182,184,55,47,158,184,55,205,133,184,55,88,109,184,55,209,84,184,55,54,60,184,55,136,35,184,55,199,10,184,55,244,241,183,55,13,217,183,55,20,192,183,55,7,167,183,55,232,141,183,55,182,116,183,55,112,91,183,55,24,66,183,55,174,40,183,55,
48,15,183,55,159,245,182,55,252,219,182,55,70,194,182,55,125,168,182,55,161,142,182,55,178,116,182,55,177,90,182,55,157,64,182,55,118,38,182,55,60,12,182,55,240,241,181,55,145,215,181,55,32,189,181,55,155,162,181,55,4,136,181,55,91,109,181,55,159,82,181,55,208,55,181,55,238,28,181,55,250,1,181,55,244,230,180,55,218,203,180,55,175,176,180,55,112,149,180,55,32,122,180,55,188,94,180,55,70,67,180,55,190,39,180,55,35,12,180,55,118,240,179,55,182,212,179,55,228,184,179,55,0,157,179,55,9,129,179,55,255,
100,179,55,228,72,179,55,182,44,179,55,117,16,179,55,34,244,178,55,189,215,178,55,70,187,178,55,188,158,178,55,32,130,178,55,114,101,178,55,178,72,178,55,223,43,178,55,250,14,178,55,3,242,177,55,249,212,177,55,222,183,177,55,176,154,177,55,112,125,177,55,30,96,177,55,186,66,177,55,68,37,177,55,187,7,177,55,33,234,176,55,116,204,176,55,182,174,176,55,229,144,176,55,2,115,176,55,14,85,176,55,7,55,176,55,238,24,176,55,196,250,175,55,135,220,175,55,56,190,175,55,216,159,175,55,101,129,175,55,225,98,175,
55,75,68,175,55,163,37,175,55,233,6,175,55,29,232,174,55,64,201,174,55,80,170,174,55,79,139,174,55,60,108,174,55,24,77,174,55,225,45,174,55,153,14,174,55,63,239,173,55,211,207,173,55,86,176,173,55,199,144,173,55,38,113,173,55,116,81,173,55,176,49,173,55,218,17,173,55,243,241,172,55,250,209,172,55,240,177,172,55,212,145,172,55,167,113,172,55,104,81,172,55,23,49,172,55,181,16,172,55,66,240,171,55,189,207,171,55,38,175,171,55,127,142,171,55,197,109,171,55,251,76,171,55,31,44,171,55,49,11,171,55,51,234,
170,55,35,201,170,55,1,168,170,55,206,134,170,55,138,101,170,55,53,68,170,55,206,34,170,55,87,1,170,55,206,223,169,55,51,190,169,55,136,156,169,55,203,122,169,55,253,88,169,55,30,55,169,55,46,21,169,55,45,243,168,55,27,209,168,55,247,174,168,55,195,140,168,55,125,106,168,55,39,72,168,55,191,37,168,55,70,3,168,55,189,224,167,55,34,190,167,55,118,155,167,55,186,120,167,55,236,85,167,55,14,51,167,55,31,16,167,55,31,237,166,55,14,202,166,55,236,166,166,55,185,131,166,55,118,96,166,55,33,61,166,55,188,
25,166,55,71,246,165,55,192,210,165,55,41,175,165,55,129,139,165,55,200,103,165,55,254,67,165,55,36,32,165,55,58,252,164,55,62,216,164,55,50,180,164,55,22,144,164,55,233,107,164,55,171,71,164,55,93,35,164,55,254,254,163,55,143,218,163,55,15,182,163,55,126,145,163,55,222,108,163,55,45,72,163,55,107,35,163,55,153,254,162,55,182,217,162,55,196,180,162,55,192,143,162,55,173,106,162,55,137,69,162,55,85,32,162,55,16,251,161,55,188,213,161,55,87,176,161,55,226,138,161,55,92,101,161,55,198,63,161,55,33,26,
161,55,107,244,160,55,164,206,160,55,206,168,160,55,232,130,160,55,241,92,160,55,235,54,160,55,212,16,160,55,173,234,159,55,118,196,159,55,48,158,159,55,217,119,159,55,114,81,159,55,251,42,159,55,117,4,159,55,222,221,158,55,56,183,158,55,129,144,158,55,187,105,158,55,229,66,158,55,255,27,158,55,9,245,157,55,4,206,157,55,238,166,157,55,201,127,157,55,148,88,157,55,80,49,157,55,251,9,157,55,151,226,156,55,36,187,156,55,160,147,156,55,13,108,156,55,107,68,156,55,185,28,156,55,247,244,155,55,38,205,155,
55,69,165,155,55,84,125,155,55,84,85,155,55,69,45,155,55,38,5,155,55,248,220,154,55,186,180,154,55,109,140,154,55,16,100,154,55,164,59,154,55,41,19,154,55,158,234,153,55,4,194,153,55,90,153,153,55,162,112,153,55,218,71,153,55,3,31,153,55,28,246,152,55,39,205,152,55,34,164,152,55,14,123,152,55,235,81,152,55,184,40,152,55,119,255,151,55,38,214,151,55,199,172,151,55,88,131,151,55,218,89,151,55,78,48,151,55,178,6,151,55,7,221,150,55,77,179,150,55,133,137,150,55,173,95,150,55,198,53,150,55,209,11,150,
55,205,225,149,55,185,183,149,55,151,141,149,55,103,99,149,55,39,57,149,55,217,14,149,55,123,228,148,55,15,186,148,55,149,143,148,55,11,101,148,55,115,58,148,55,205,15,148,55,23,229,147,55,83,186,147,55,129,143,147,55,160,100,147,55,176,57,147,55,177,14,147,55,165,227,146,55,137,184,146,55,95,141,146,55,39,98,146,55,224,54,146,55,139,11,146,55,39,224,145,55,181,180,145,55,53,137,145,55,166,93,145,55,9,50,145,55,94,6,145,55,164,218,144,55,220,174,144,55,6,131,144,55,33,87,144,55,47,43,144,55,46,255,
143,55,31,211,143,55,2,167,143,55,214,122,143,55,157,78,143,55,85,34,143,55,0,246,142,55,156,201,142,55,42,157,142,55,170,112,142,55,29,68,142,55,129,23,142,55,215,234,141,55,32,190,141,55,90,145,141,55,134,100,141,55,165,55,141,55,182,10,141,55,185,221,140,55,174,176,140,55,149,131,140,55,111,86,140,55,59,41,140,55,249,251,139,55,169,206,139,55,76,161,139,55,225,115,139,55,104,70,139,55,226,24,139,55,78,235,138,55,172,189,138,55,253,143,138,55,65,98,138,55,119,52,138,55,159,6,138,55,186,216,137,
55,199,170,137,55,199,124,137,55,185,78,137,55,158,32,137,55,118,242,136,55,64,196,136,55,253,149,136,55,173,103,136,55,79,57,136,55,228,10,136,55,108,220,135,55,231,173,135,55,84,127,135,55,180,80,135,55,7,34,135,55,77,243,134,55,133,196,134,55,177,149,134,55,207,102,134,55,225,55,134,55,229,8,134,55,220,217,133,55,198,170,133,55,163,123,133,55,116,76,133,55,55,29,133,55,237,237,132,55,151,190,132,55,51,143,132,55,195,95,132,55,70,48,132,55,188,0,132,55,37,209,131,55,129,161,131,55,209,113,131,55,
20,66,131,55,74,18,131,55,116,226,130,55,145,178,130,55,161,130,130,55,164,82,130,55,155,34,130,55,134,242,129,55,99,194,129,55,52,146,129,55,249,97,129,55,177,49,129,55,93,1,129,55,252,208,128,55,143,160,128,55,21,112,128,55,143,63,128,55,253,14,128,55,188,188,127,55,102,91,127,55,247,249,126,55,112,152,126,55,208,54,126,55,23,213,125,55,70,115,125,55,93,17,125,55,91,175,124,55,65,77,124,55,15,235,123,55,197,136,123,55,98,38,123,55,231,195,122,55,84,97,122,55,169,254,121,55,230,155,121,55,11,57,
121,55,24,214,120,55,13,115,120,55,234,15,120,55,176,172,119,55,94,73,119,55,244,229,118,55,114,130,118,55,217,30,118,55,40,187,117,55,95,87,117,55,127,243,116,55,136,143,116,55,121,43,116,55,83,199,115,55,22,99,115,55,193,254,114,55,85,154,114,55,210,53,114,55,56,209,113,55,135,108,113,55,190,7,113,55,223,162,112,55,232,61,112,55,219,216,111,55,183,115,111,55,124,14,111,55,42,169,110,55,194,67,110,55,67,222,109,55,173,120,109,55,0,19,109,55,61,173,108,55,100,71,108,55,116,225,107,55,109,123,107,
55,81,21,107,55,29,175,106,55,212,72,106,55,116,226,105,55,254,123,105,55,114,21,105,55,208,174,104,55,24,72,104,55,74,225,103,55,101,122,103,55,107,19,103,55,91,172,102,55,53,69,102,55,250,221,101,55,168,118,101,55,65,15,101,55,196,167,100,55,50,64,100,55,138,216,99,55,204,112,99,55,249,8,99,55,17,161,98,55,19,57,98,55,0,209,97,55,216,104,97,55,154,0,97,55,71,152,96,55,223,47,96,55,98,199,95,55,208,94,95,55,40,246,94,55,108,141,94,55,155,36,94,55,181,187,93,55,186,82,93,55,170,233,92,55,134,128,
92,55,77,23,92,55,255,173,91,55,157,68,91,55,38,219,90,55,154,113,90,55,250,7,90,55,70,158,89,55,125,52,89,55,160,202,88,55,175,96,88,55,169,246,87,55,143,140,87,55,97,34,87,55,31,184,86,55,201,77,86,55,95,227,85,55,225,120,85,55,79,14,85,55,169,163,84,55,239,56,84,55,34,206,83,55,65,99,83,55,76,248,82,55,67,141,82,55,39,34,82,55,248,182,81,55,180,75,81,55,94,224,80,55,244,116,80,55,119,9,80,55,230,157,79,55,66,50,79,55,139,198,78,55,193,90,78,55,227,238,77,55,243,130,77,55,239,22,77,55,217,170,76,
55,175,62,76,55,115,210,75,55,36,102,75,55,194,249,74,55,77,141,74,55,198,32,74,55,44,180,73,55,127,71,73,55,192,218,72,55,238,109,72,55,10,1,72,55,19,148,71,55,10,39,71,55,239,185,70,55,194,76,70,55,130,223,69,55,48,114,69,55,204,4,69,55,86,151,68,55,205,41,68,55,51,188,67,55,135,78,67,55,201,224,66,55,249,114,66,55,23,5,66,55,36,151,65,55,31,41,65,55,8,187,64,55,224,76,64,55,166,222,63,55,90,112,63,55,253,1,63,55,143,147,62,55,15,37,62,55,126,182,61,55,220,71,61,55,41,217,60,55,100,106,60,55,142,
251,59,55,167,140,59,55,175,29,59,55,166,174,58,55,140,63,58,55,98,208,57,55,38,97,57,55,218,241,56,55,125,130,56,55,15,19,56,55,144,163,55,55,1,52,55,55,98,196,54,55,177,84,54,55,241,228,53,55,32,117,53,55,63,5,53,55,77,149,52,55,75,37,52,55,57,181,51,55,23,69,51,55,228,212,50,55,162,100,50,55,79,244,49,55,237,131,49,55,122,19,49,55,248,162,48,55,102,50,48,55,196,193,47,55,18,81,47,55,81,224,46,55,128,111,46,55,160,254,45,55,176,141,45,55,176,28,45,55,161,171,44,55,131,58,44,55,85,201,43,55,24,88,
43,55,204,230,42,55,113,117,42,55,6,4,42,55,140,146,41,55,4,33,41,55,108,175,40,55,197,61,40,55,16,204,39,55,75,90,39,55,120,232,38,55,150,118,38,55,166,4,38,55,166,146,37,55,152,32,37,55,124,174,36,55,81,60,36,55,24,202,35,55,208,87,35,55,122,229,34,55,21,115,34,55,162,0,34,55,33,142,33,55,146,27,33,55,245,168,32,55,73,54,32,55,144,195,31,55,201,80,31,55,243,221,30,55,16,107,30,55,31,248,29,55,33,133,29,55,20,18,29,55,250,158,28,55,211,43,28,55,157,184,27,55,90,69,27,55,10,210,26,55,172,94,26,55,
65,235,25,55,201,119,25,55,67,4,25,55,176,144,24,55,16,29,24,55,99,169,23,55,169,53,23,55,225,193,22,55,13,78,22,55,44,218,21,55,62,102,21,55,67,242,20,55,59,126,20,55,39,10,20,55,6,150,19,55,216,33,19,55,157,173,18,55,87,57,18,55,3,197,17,55,163,80,17,55,55,220,16,55,191,103,16,55,58,243,15,55,169,126,15,55,12,10,15,55,98,149,14,55,173,32,14,55,236,171,13,55,30,55,13,55,69,194,12,55,96,77,12,55,111,216,11,55,114,99,11,55,105,238,10,55,85,121,10,55,53,4,10,55,9,143,9,55,210,25,9,55,144,164,8,55,66,
47,8,55,233,185,7,55,132,68,7,55,20,207,6,55,153,89,6,55,18,228,5,55,129,110,5,55,228,248,4,55,61,131,4,55,138,13,4,55,205,151,3,55,4,34,3,55,49,172,2,55,83,54,2,55,106,192,1,55,119,74,1,55,121,212,0,55,112,94,0,55,186,208,255,54,126,228,254,54,46,248,253,54,201,11,253,54,80,31,252,54,193,50,251,54,31,70,250,54,104,89,249,54,157,108,248,54,189,127,247,54,202,146,246,54,195,165,245,54,167,184,244,54,120,203,243,54,54,222,242,54,224,240,241,54,118,3,241,54,249,21,240,54,105,40,239,54,197,58,238,54,
15,77,237,54,70,95,236,54,105,113,235,54,122,131,234,54,121,149,233,54,101,167,232,54,62,185,231,54,5,203,230,54,186,220,229,54,93,238,228,54,238,255,227,54,108,17,227,54,217,34,226,54,52,52,225,54,126,69,224,54,182,86,223,54,221,103,222,54,242,120,221,54,246,137,220,54,233,154,219,54,203,171,218,54,156,188,217,54,92,205,216,54,12,222,215,54,170,238,214,54,57,255,213,54,183,15,213,54,36,32,212,54,130,48,211,54,207,64,210,54,12,81,209,54,58,97,208,54,87,113,207,54,101,129,206,54,100,145,205,54,82,
161,204,54,50,177,203,54,2,193,202,54,195,208,201,54,117,224,200,54,24,240,199,54,172,255,198,54,49,15,198,54,167,30,197,54,15,46,196,54,104,61,195,54,180,76,194,54,240,91,193,54,31,107,192,54,63,122,191,54,82,137,190,54,87,152,189,54,77,167,188,54,55,182,187,54,18,197,186,54,225,211,185,54,161,226,184,54,85,241,183,54,251,255,182,54,149,14,182,54,33,29,181,54,161,43,180,54,20,58,179,54,122,72,178,54,211,86,177,54,33,101,176,54,98,115,175,54,150,129,174,54,191,143,173,54,219,157,172,54,236,171,171,
54,240,185,170,54,233,199,169,54,214,213,168,54,184,227,167,54,143,241,166,54,90,255,165,54,26,13,165,54,206,26,164,54,120,40,163,54,23,54,162,54,171,67,161,54,52,81,160,54,179,94,159,54,39,108,158,54,145,121,157,54,240,134,156,54,69,148,155,54,144,161,154,54,210,174,153,54,9,188,152,54,54,201,151,54,90,214,150,54,116,227,149,54,133,240,148,54,141,253,147,54,139,10,147,54,128,23,146,54,107,36,145,54,78,49,144,54,40,62,143,54,249,74,142,54,194,87,141,54,130,100,140,54,58,113,139,54,233,125,138,54,
144,138,137,54,46,151,136,54,197,163,135,54,84,176,134,54,219,188,133,54,90,201,132,54,210,213,131,54,66,226,130,54,170,238,129,54,11,251,128,54,101,7,128,54,113,39,126,54,8,64,124,54,146,88,122,54,14,113,120,54,125,137,118,54,223,161,116,54,51,186,114,54,123,210,112,54,182,234,110,54,228,2,109,54,7,27,107,54,29,51,105,54,40,75,103,54,39,99,101,54,26,123,99,54,3,147,97,54,224,170,95,54,179,194,93,54,123,218,91,54,56,242,89,54,236,9,88,54,149,33,86,54,53,57,84,54,203,80,82,54,88,104,80,54,220,127,
78,54,87,151,76,54,201,174,74,54,50,198,72,54,147,221,70,54,236,244,68,54,61,12,67,54,135,35,65,54,201,58,63,54,3,82,61,54,55,105,59,54,99,128,57,54,137,151,55,54,168,174,53,54,194,197,51,54,213,220,49,54,226,243,47,54,233,10,46,54,235,33,44,54,232,56,42,54,224,79,40,54,210,102,38,54,193,125,36,54,170,148,34,54,144,171,32,54,113,194,30,54,79,217,28,54,41,240,26,54,255,6,25,54,211,29,23,54,163,52,21,54,112,75,19,54,59,98,17,54,4,121,15,54,202,143,13,54,142,166,11,54,81,189,9,54,18,212,7,54,209,234,
5,54,144,1,4,54,77,24,2,54,9,47,0,54,139,139,252,53,2,185,248,53,121,230,244,53,240,19,241,53,104,65,237,53,224,110,233,53,90,156,229,53,213,201,225,53,83,247,221,53,211,36,218,53,86,82,214,53,221,127,210,53,103,173,206,53,245,218,202,53,136,8,199,53,32,54,195,53,189,99,191,53,96,145,187,53,9,191,183,53,185,236,179,53,112,26,176,53,46,72,172,53,244,117,168,53,194,163,164,53,153,209,160,53,121,255,156,53,99,45,153,53,86,91,149,53,84,137,145,53,92,183,141,53,111,229,137,53,142,19,134,53,184,65,130,
53,223,223,124,53,102,60,117,53,7,153,109,53,196,245,101,53,156,82,94,53,145,175,86,53,164,12,79,53,212,105,71,53,36,199,63,53,148,36,56,53,36,130,48,53,214,223,40,53,170,61,33,53,161,155,25,53,189,249,17,53,253,87,10,53,98,182,2,53,221,41,246,52,67,231,230,52,249,164,215,52,1,99,200,52,93,33,185,52,13,224,169,52,19,159,154,52,114,94,139,52,84,60,120,52,123,188,89,52,92,61,59,52,250,190,28,52,177,130,252,51,245,136,191,51,198,144,130,51,88,52,11,51],"i8",4,y.a+1085440);
Q([193,82,138,49,203,56,209,178,212,127,98,179,244,47,174,179,73,30,235,179,114,5,20,180,222,122,50,180,103,239,80,180,9,99,111,180,224,234,134,180,197,35,150,180,50,92,165,180,36,148,180,180,155,203,195,180,149,2,211,180,16,57,226,180,10,111,241,180,65,82,0,181,188,236,7,181,244,134,15,181,232,32,23,181,152,186,30,181,3,84,38,181,41,237,45,181,7,134,53,181,159,30,61,181,237,182,68,181,243,78,76,181,175,230,83,181,33,126,91,181,71,21,99,181,32,172,106,181,173,66,114,181,236,216,121,181,110,183,128,
181,62,130,132,181,231,76,136,181,102,23,140,181,189,225,143,181,234,171,147,181,238,117,151,181,200,63,155,181,119,9,159,181,251,210,162,181,83,156,166,181,128,101,170,181,129,46,174,181,86,247,177,181,253,191,181,181,119,136,185,181,196,80,189,181,226,24,193,181,210,224,196,181,146,168,200,181,36,112,204,181,134,55,208,181,183,254,211,181,185,197,215,181,137,140,219,181,40,83,223,181,149,25,227,181,208,223,230,181,217,165,234,181,175,107,238,181,81,49,242,181,192,246,245,181,250,187,249,181,1,129,
253,181,233,162,0,182,55,133,2,182,106,103,4,182,130,73,6,182,127,43,8,182,97,13,10,182,39,239,11,182,209,208,13,182,95,178,15,182,208,147,17,182,38,117,19,182,94,86,21,182,122,55,23,182,121,24,25,182,91,249,26,182,31,218,28,182,198,186,30,182,79,155,32,182,186,123,34,182,6,92,36,182,53,60,38,182,68,28,40,182,53,252,41,182,7,220,43,182,186,187,45,182,78,155,47,182,193,122,49,182,21,90,51,182,73,57,53,182,93,24,55,182,81,247,56,182,36,214,58,182,214,180,60,182,104,147,62,182,216,113,64,182,39,80,66,
182,84,46,68,182,95,12,70,182,73,234,71,182,17,200,73,182,182,165,75,182,57,131,77,182,153,96,79,182,214,61,81,182,240,26,83,182,230,247,84,182,185,212,86,182,105,177,88,182,245,141,90,182,92,106,92,182,160,70,94,182,190,34,96,182,185,254,97,182,142,218,99,182,62,182,101,182,201,145,103,182,47,109,105,182,111,72,107,182,137,35,109,182,125,254,110,182,75,217,112,182,243,179,114,182,116,142,116,182,206,104,118,182,1,67,120,182,13,29,122,182,242,246,123,182,175,208,125,182,68,170,127,182,217,193,128,
182,123,174,129,182,10,155,130,182,132,135,131,182,234,115,132,182,59,96,133,182,120,76,134,182,160,56,135,182,179,36,136,182,178,16,137,182,156,252,137,182,112,232,138,182,48,212,139,182,218,191,140,182,111,171,141,182,238,150,142,182,88,130,143,182,173,109,144,182,235,88,145,182,20,68,146,182,39,47,147,182,36,26,148,182,11,5,149,182,220,239,149,182,150,218,150,182,58,197,151,182,200,175,152,182,63,154,153,182,159,132,154,182,233,110,155,182,27,89,156,182,55,67,157,182,60,45,158,182,41,23,159,182,
0,1,160,182,191,234,160,182,102,212,161,182,246,189,162,182,111,167,163,182,208,144,164,182,25,122,165,182,74,99,166,182,99,76,167,182,100,53,168,182,77,30,169,182,29,7,170,182,213,239,170,182,117,216,171,182,252,192,172,182,107,169,173,182,193,145,174,182,253,121,175,182,33,98,176,182,44,74,177,182,30,50,178,182,247,25,179,182,182,1,180,182,92,233,180,182,232,208,181,182,91,184,182,182,180,159,183,182,244,134,184,182,25,110,185,182,37,85,186,182,22,60,187,182,237,34,188,182,170,9,189,182,77,240,
189,182,213,214,190,182,67,189,191,182,150,163,192,182,207,137,193,182,236,111,194,182,239,85,195,182,215,59,196,182,163,33,197,182,85,7,198,182,235,236,198,182,102,210,199,182,197,183,200,182,9,157,201,182,49,130,202,182,61,103,203,182,46,76,204,182,2,49,205,182,187,21,206,182,88,250,206,182,216,222,207,182,60,195,208,182,132,167,209,182,175,139,210,182,190,111,211,182,176,83,212,182,133,55,213,182,61,27,214,182,217,254,214,182,87,226,215,182,184,197,216,182,252,168,217,182,35,140,218,182,45,111,
219,182,24,82,220,182,231,52,221,182,151,23,222,182,42,250,222,182,159,220,223,182,247,190,224,182,48,161,225,182,75,131,226,182,71,101,227,182,38,71,228,182,230,40,229,182,135,10,230,182,10,236,230,182,111,205,231,182,180,174,232,182,219,143,233,182,227,112,234,182,204,81,235,182,149,50,236,182,64,19,237,182,203,243,237,182,54,212,238,182,131,180,239,182,175,148,240,182,188,116,241,182,170,84,242,182,119,52,243,182,36,20,244,182,178,243,244,182,31,211,245,182,108,178,246,182,153,145,247,182,166,
112,248,182,146,79,249,182,93,46,250,182,8,13,251,182,146,235,251,182,251,201,252,182,67,168,253,182,107,134,254,182,113,100,255,182,43,33,0,183,13,144,0,183,222,254,0,183,158,109,1,183,78,220,1,183,237,74,2,183,123,185,2,183,248,39,3,183,100,150,3,183,191,4,4,183,10,115,4,183,67,225,4,183,107,79,5,183,129,189,5,183,135,43,6,183,123,153,6,183,94,7,7,183,48,117,7,183,240,226,7,183,159,80,8,183,60,190,8,183,200,43,9,183,66,153,9,183,171,6,10,183,2,116,10,183,71,225,10,183,123,78,11,183,157,187,11,183,
173,40,12,183,171,149,12,183,151,2,13,183,113,111,13,183,58,220,13,183,240,72,14,183,148,181,14,183,38,34,15,183,166,142,15,183,19,251,15,183,111,103,16,183,184,211,16,183,238,63,17,183,19,172,17,183,36,24,18,183,36,132,18,183,17,240,18,183,235,91,19,183,179,199,19,183,104,51,20,183,10,159,20,183,154,10,21,183,22,118,21,183,129,225,21,183,216,76,22,183,28,184,22,183,77,35,23,183,108,142,23,183,119,249,23,183,111,100,24,183,84,207,24,183,38,58,25,183,229,164,25,183,144,15,26,183,41,122,26,183,173,
228,26,183,31,79,27,183,125,185,27,183,200,35,28,183,255,141,28,183,34,248,28,183,50,98,29,183,47,204,29,183,23,54,30,183,236,159,30,183,174,9,31,183,91,115,31,183,245,220,31,183,122,70,32,183,236,175,32,183,74,25,33,183,148,130,33,183,202,235,33,183,235,84,34,183,249,189,34,183,242,38,35,183,216,143,35,183,169,248,35,183,101,97,36,183,14,202,36,183,161,50,37,183,33,155,37,183,140,3,38,183,227,107,38,183,37,212,38,183,82,60,39,183,107,164,39,183,111,12,40,183,94,116,40,183,57,220,40,183,255,67,41,
183,176,171,41,183,76,19,42,183,212,122,42,183,70,226,42,183,163,73,43,183,235,176,43,183,31,24,44,183,61,127,44,183,70,230,44,183,57,77,45,183,24,180,45,183,225,26,46,183,149,129,46,183,51,232,46,183,189,78,47,183,48,181,47,183,142,27,48,183,215,129,48,183,10,232,48,183,40,78,49,183,48,180,49,183,34,26,50,183,254,127,50,183,197,229,50,183,118,75,51,183,17,177,51,183,150,22,52,183,5,124,52,183,94,225,52,183,162,70,53,183,207,171,53,183,230,16,54,183,231,117,54,183,210,218,54,183,166,63,55,183,101,
164,55,183,13,9,56,183,159,109,56,183,26,210,56,183,127,54,57,183,206,154,57,183,6,255,57,183,39,99,58,183,50,199,58,183,39,43,59,183,4,143,59,183,204,242,59,183,124,86,60,183,22,186,60,183,152,29,61,183,4,129,61,183,89,228,61,183,152,71,62,183,191,170,62,183,207,13,63,183,200,112,63,183,170,211,63,183,118,54,64,183,41,153,64,183,198,251,64,183,76,94,65,183,186,192,65,183,17,35,66,183,80,133,66,183,121,231,66,183,137,73,67,183,131,171,67,183,101,13,68,183,47,111,68,183,226,208,68,183,125,50,69,183,
0,148,69,183,108,245,69,183,192,86,70,183,253,183,70,183,33,25,71,183,46,122,71,183,35,219,71,183,0,60,72,183,197,156,72,183,114,253,72,183,7,94,73,183,131,190,73,183,232,30,74,183,53,127,74,183,105,223,74,183,134,63,75,183,138,159,75,183,117,255,75,183,73,95,76,183,4,191,76,183,166,30,77,183,49,126,77,183,162,221,77,183,252,60,78,183,60,156,78,183,100,251,78,183,116,90,79,183,107,185,79,183,73,24,80,183,14,119,80,183,187,213,80,183,79,52,81,183,201,146,81,183,44,241,81,183,117,79,82,183,165,173,
82,183,188,11,83,183,186,105,83,183,159,199,83,183,107,37,84,183,30,131,84,183,184,224,84,183,56,62,85,183,160,155,85,183,238,248,85,183,34,86,86,183,61,179,86,183,63,16,87,183,40,109,87,183,247,201,87,183,172,38,88,183,72,131,88,183,203,223,88,183,51,60,89,183,131,152,89,183,184,244,89,183,212,80,90,183,214,172,90,183,190,8,91,183,140,100,91,183,65,192,91,183,220,27,92,183,92,119,92,183,195,210,92,183,16,46,93,183,67,137,93,183,91,228,93,183,90,63,94,183,62,154,94,183,8,245,94,183,184,79,95,183,
78,170,95,183,202,4,96,183,43,95,96,183,114,185,96,183,158,19,97,183,176,109,97,183,168,199,97,183,133,33,98,183,71,123,98,183,239,212,98,183,125,46,99,183,240,135,99,183,72,225,99,183,133,58,100,183,168,147,100,183,176,236,100,183,157,69,101,183,111,158,101,183,39,247,101,183,195,79,102,183,69,168,102,183,171,0,103,183,247,88,103,183,40,177,103,183,61,9,104,183,56,97,104,183,23,185,104,183,219,16,105,183,132,104,105,183,17,192,105,183,132,23,106,183,219,110,106,183,23,198,106,183,55,29,107,183,60,
116,107,183,37,203,107,183,243,33,108,183,166,120,108,183,61,207,108,183,184,37,109,183,24,124,109,183,92,210,109,183,133,40,110,183,146,126,110,183,131,212,110,183,88,42,111,183,17,128,111,183,175,213,111,183,49,43,112,183,150,128,112,183,224,213,112,183,14,43,113,183,32,128,113,183,22,213,113,183,240,41,114,183,174,126,114,183,79,211,114,183,213,39,115,183,62,124,115,183,139,208,115,183,188,36,116,183,208,120,116,183,200,204,116,183,164,32,117,183,100,116,117,183,7,200,117,183,141,27,118,183,247,
110,118,183,69,194,118,183,118,21,119,183,138,104,119,183,130,187,119,183,93,14,120,183,28,97,120,183,189,179,120,183,66,6,121,183,171,88,121,183,246,170,121,183,37,253,121,183,55,79,122,183,43,161,122,183,3,243,122,183,190,68,123,183,92,150,123,183,221,231,123,183,65,57,124,183,136,138,124,183,178,219,124,183,191,44,125,183,174,125,125,183,128,206,125,183,53,31,126,183,205,111,126,183,72,192,126,183,165,16,127,183,229,96,127,183,7,177,127,183,134,0,128,183,122,40,128,183,95,80,128,183,53,120,128,
183,253,159,128,183,181,199,128,183,95,239,128,183,250,22,129,183,135,62,129,183,4,102,129,183,115,141,129,183,210,180,129,183,35,220,129,183,101,3,130,183,152,42,130,183,188,81,130,183,209,120,130,183,216,159,130,183,207,198,130,183,183,237,130,183,144,20,131,183,90,59,131,183,22,98,131,183,194,136,131,183,95,175,131,183,237,213,131,183,108,252,131,183,219,34,132,183,60,73,132,183,142,111,132,183,208,149,132,183,3,188,132,183,39,226,132,183,60,8,133,183,66,46,133,183,56,84,133,183,31,122,133,183,
247,159,133,183,192,197,133,183,121,235,133,183,35,17,134,183,190,54,134,183,73,92,134,183,197,129,134,183,50,167,134,183,144,204,134,183,222,241,134,183,28,23,135,183,75,60,135,183,107,97,135,183,124,134,135,183,125,171,135,183,110,208,135,183,80,245,135,183,35,26,136,183,230,62,136,183,153,99,136,183,61,136,136,183,210,172,136,183,86,209,136,183,204,245,136,183,49,26,137,183,136,62,137,183,206,98,137,183,5,135,137,183,44,171,137,183,68,207,137,183,76,243,137,183,68,23,138,183,45,59,138,183,6,95,
138,183,207,130,138,183,136,166,138,183,50,202,138,183,204,237,138,183,86,17,139,183,208,52,139,183,59,88,139,183,150,123,139,183,225,158,139,183,28,194,139,183,71,229,139,183,98,8,140,183,110,43,140,183,106,78,140,183,85,113,140,183,49,148,140,183,253,182,140,183,185,217,140,183,101,252,140,183,1,31,141,183,141,65,141,183,9,100,141,183,117,134,141,183,210,168,141,183,30,203,141,183,90,237,141,183,134,15,142,183,161,49,142,183,173,83,142,183,169,117,142,183,149,151,142,183,112,185,142,183,60,219,
142,183,247,252,142,183,162,30,143,183,61,64,143,183,200,97,143,183,66,131,143,183,172,164,143,183,7,198,143,183,81,231,143,183,138,8,144,183,180,41,144,183,205,74,144,183,214,107,144,183,206,140,144,183,183,173,144,183,143,206,144,183,86,239,144,183,14,16,145,183,181,48,145,183,75,81,145,183,210,113,145,183,72,146,145,183,173,178,145,183,2,211,145,183,71,243,145,183,123,19,146,183,159,51,146,183,178,83,146,183,181,115,146,183,168,147,146,183,137,179,146,183,91,211,146,183,28,243,146,183,204,18,147,
183,108,50,147,183,251,81,147,183,122,113,147,183,232,144,147,183,70,176,147,183,147,207,147,183,208,238,147,183,251,13,148,183,23,45,148,183,33,76,148,183,27,107,148,183,4,138,148,183,221,168,148,183,165,199,148,183,92,230,148,183,3,5,149,183,152,35,149,183,29,66,149,183,146,96,149,183,245,126,149,183,72,157,149,183,138,187,149,183,188,217,149,183,220,247,149,183,236,21,150,183,235,51,150,183,217,81,150,183,182,111,150,183,131,141,150,183,62,171,150,183,233,200,150,183,131,230,150,183,12,4,151,183,
132,33,151,183,235,62,151,183,65,92,151,183,134,121,151,183,187,150,151,183,222,179,151,183,240,208,151,183,242,237,151,183,226,10,152,183,194,39,152,183,145,68,152,183,78,97,152,183,251,125,152,183,150,154,152,183,32,183,152,183,154,211,152,183,2,240,152,183,89,12,153,183,159,40,153,183,213,68,153,183,249,96,153,183,11,125,153,183,13,153,153,183,254,180,153,183,221,208,153,183,172,236,153,183,105,8,154,183,21,36,154,183,176,63,154,183,57,91,154,183,178,118,154,183,25,146,154,183,111,173,154,183,
180,200,154,183,231,227,154,183,9,255,154,183,27,26,155,183,26,53,155,183,9,80,155,183,230,106,155,183,178,133,155,183,109,160,155,183,22,187,155,183,174,213,155,183,53,240,155,183,170,10,156,183,14,37,156,183,96,63,156,183,162,89,156,183,210,115,156,183,240,141,156,183,253,167,156,183,249,193,156,183,227,219,156,183,188,245,156,183,132,15,157,183,57,41,157,183,222,66,157,183,113,92,157,183,243,117,157,183,99,143,157,183,194,168,157,183,15,194,157,183,74,219,157,183,117,244,157,183,141,13,158,183,
148,38,158,183,138,63,158,183,110,88,158,183,65,113,158,183,1,138,158,183,177,162,158,183,79,187,158,183,219,211,158,183,85,236,158,183,190,4,159,183,22,29,159,183,92,53,159,183,144,77,159,183,178,101,159,183,195,125,159,183,194,149,159,183,176,173,159,183,140,197,159,183,86,221,159,183,15,245,159,183,181,12,160,183,75,36,160,183,206,59,160,183,64,83,160,183,160,106,160,183,238,129,160,183,42,153,160,183,85,176,160,183,110,199,160,183,117,222,160,183,107,245,160,183,79,12,161,183,33,35,161,183,225,
57,161,183,143,80,161,183,43,103,161,183,182,125,161,183,47,148,161,183,150,170,161,183,235,192,161,183,47,215,161,183,96,237,161,183,128,3,162,183,142,25,162,183,137,47,162,183,115,69,162,183,76,91,162,183,18,113,162,183,198,134,162,183,104,156,162,183,249,177,162,183,120,199,162,183,228,220,162,183,63,242,162,183,136,7,163,183,190,28,163,183,227,49,163,183,246,70,163,183,247,91,163,183,230,112,163,183,195,133,163,183,142,154,163,183,71,175,163,183,237,195,163,183,130,216,163,183,5,237,163,183,118,
1,164,183,213,21,164,183,34,42,164,183,92,62,164,183,133,82,164,183,156,102,164,183,160,122,164,183,147,142,164,183,115,162,164,183,65,182,164,183,253,201,164,183,167,221,164,183,63,241,164,183,197,4,165,183,57,24,165,183,155,43,165,183,234,62,165,183,39,82,165,183,83,101,165,183,108,120,165,183,115,139,165,183,103,158,165,183,74,177,165,183,26,196,165,183,217,214,165,183,133,233,165,183,30,252,165,183,166,14,166,183,28,33,166,183,127,51,166,183,208,69,166,183,15,88,166,183,59,106,166,183,86,124,
166,183,94,142,166,183,84,160,166,183,55,178,166,183,8,196,166,183,200,213,166,183,116,231,166,183,15,249,166,183,151,10,167,183,13,28,167,183,113,45,167,183,194,62,167,183,2,80,167,183,46,97,167,183,73,114,167,183,81,131,167,183,71,148,167,183,43,165,167,183,252,181,167,183,187,198,167,183,103,215,167,183,2,232,167,183,137,248,167,183,255,8,168,183,98,25,168,183,179,41,168,183,241,57,168,183,29,74,168,183,55,90,168,183,62,106,168,183,51,122,168,183,22,138,168,183,230,153,168,183,164,169,168,183,
79,185,168,183,232,200,168,183,110,216,168,183,227,231,168,183,68,247,168,183,147,6,169,183,208,21,169,183,251,36,169,183,18,52,169,183,24,67,169,183,11,82,169,183,236,96,169,183,186,111,169,183,117,126,169,183,30,141,169,183,181,155,169,183,57,170,169,183,171,184,169,183,10,199,169,183,87,213,169,183,145,227,169,183,185,241,169,183,207,255,169,183,209,13,170,183,194,27,170,183,159,41,170,183,107,55,170,183,35,69,170,183,202,82,170,183,93,96,170,183,222,109,170,183,77,123,170,183,169,136,170,183,
243,149,170,183,42,163,170,183,78,176,170,183,96,189,170,183,95,202,170,183,76,215,170,183,38,228,170,183,238,240,170,183,163,253,170,183,70,10,171,183,214,22,171,183,83,35,171,183,190,47,171,183,22,60,171,183,92,72,171,183,143,84,171,183,175,96,171,183,189,108,171,183,184,120,171,183,161,132,171,183,119,144,171,183,58,156,171,183,235,167,171,183,137,179,171,183,21,191,171,183,141,202,171,183,244,213,171,183,71,225,171,183,137,236,171,183,183,247,171,183,211,2,172,183,220,13,172,183,210,24,172,183,
182,35,172,183,135,46,172,183,70,57,172,183,242,67,172,183,139,78,172,183,18,89,172,183,134,99,172,183,231,109,172,183,54,120,172,183,114,130,172,183,155,140,172,183,178,150,172,183,182,160,172,183,167,170,172,183,133,180,172,183,81,190,172,183,11,200,172,183,177,209,172,183,69,219,172,183,198,228,172,183,53,238,172,183,145,247,172,183,218,0,173,183,16,10,173,183,52,19,173,183,69,28,173,183,67,37,173,183,47,46,173,183,8,55,173,183,206,63,173,183,129,72,173,183,34,81,173,183,176,89,173,183,44,98,173,
183,148,106,173,183,234,114,173,183,46,123,173,183,94,131,173,183,124,139,173,183,135,147,173,183,127,155,173,183,101,163,173,183,56,171,173,183,248,178,173,183,165,186,173,183,64,194,173,183,200,201,173,183,61,209,173,183,160,216,173,183,240,223,173,183,45,231,173,183,87,238,173,183,111,245,173,183,116,252,173,183,102,3,174,183,69,10,174,183,18,17,174,183,204,23,174,183,115,30,174,183,7,37,174,183,137,43,174,183,248,49,174,183,84,56,174,183,157,62,174,183,212,68,174,183,248,74,174,183,9,81,174,183,
8,87,174,183,243,92,174,183,204,98,174,183,147,104,174,183,70,110,174,183,231,115,174,183,117,121,174,183,240,126,174,183,88,132,174,183,174,137,174,183,241,142,174,183,33,148,174,183,63,153,174,183,73,158,174,183,65,163,174,183,39,168,174,183,249,172,174,183,185,177,174,183,102,182,174,183,0,187,174,183,135,191,174,183,252,195,174,183,94,200,174,183,173,204,174,183,233,208,174,183,19,213,174,183,42,217,174,183,46,221,174,183,32,225,174,183,254,228,174,183,202,232,174,183,131,236,174,183,42,240,174,
183,189,243,174,183,62,247,174,183,172,250,174,183,8,254,174,183,81,1,175,183,134,4,175,183,170,7,175,183,186,10,175,183,184,13,175,183,163,16,175,183,123,19,175,183,64,22,175,183,243,24,175,183,147,27,175,183,32,30,175,183,155,32,175,183,3,35,175,183,88,37,175,183,154,39,175,183,202,41,175,183,230,43,175,183,241,45,175,183,232,47,175,183,205,49,175,183,158,51,175,183,94,53,175,183,10,55,175,183,164,56,175,183,43,58,175,183,159,59,175,183,1,61,175,183,80,62,175,183,140,63,175,183,181,64,175,183,204,
65,175,183,208,66,175,183,193,67,175,183,160,68,175,183,108,69,175,183,37,70,175,183,203,70,175,183,95,71,175,183,224,71,175,183,78,72,175,183,170,72,175,183,243,72,175,183,41,73,175,183,77,73,175,183,93,73,175,183,92,73,175,183,71,73,175,183,32,73,175,183,230,72,175,183,153,72,175,183,58,72,175,183,200,71,175,183,68,71,175,183,172,70,175,183,2,70,175,183,70,69,175,183,119,68,175,183,149,67,175,183,160,66,175,183,153,65,175,183,127,64,175,183,82,63,175,183,19,62,175,183,193,60,175,183,93,59,175,183,
230,57,175,183,92,56,175,183,191,54,175,183,16,53,175,183,79,51,175,183,122,49,175,183,147,47,175,183,154,45,175,183,142,43,175,183,111,41,175,183,61,39,175,183,249,36,175,183,163,34,175,183,57,32,175,183,189,29,175,183,47,27,175,183,142,24,175,183,218,21,175,183,20,19,175,183,59,16,175,183,80,13,175,183,81,10,175,183,65,7,175,183,30,4,175,183,232,0,175,183,160,253,174,183,69,250,174,183,215,246,174,183,87,243,174,183,197,239,174,183,31,236,174,183,104,232,174,183,158,228,174,183,193,224,174,183,
209,220,174,183,208,216,174,183,187,212,174,183,148,208,174,183,91,204,174,183,15,200,174,183,176,195,174,183,63,191,174,183,188,186,174,183,38,182,174,183,125,177,174,183,194,172,174,183,245,167,174,183,21,163,174,183,34,158,174,183,30,153,174,183,6,148,174,183,220,142,174,183,160,137,174,183,81,132,174,183,240,126,174,183,124,121,174,183,246,115,174,183,93,110,174,183,178,104,174,183,244,98,174,183,36,93,174,183,66,87,174,183,77,81,174,183,70,75,174,183,44,69,174,183,0,63,174,183,193,56,174,183,
113,50,174,183,13,44,174,183,152,37,174,183,15,31,174,183,117,24,174,183,200,17,174,183,9,11,174,183,55,4,174,183,83,253,173,183,93,246,173,183,84,239,173,183,57,232,173,183,12,225,173,183,204,217,173,183,122,210,173,183,21,203,173,183,159,195,173,183,22,188,173,183,122,180,173,183,204,172,173,183,12,165,173,183,58,157,173,183,85,149,173,183,95,141,173,183,85,133,173,183,58,125,173,183,12,117,173,183,204,108,173,183,122,100,173,183,21,92,173,183,158,83,173,183,21,75,173,183,122,66,173,183,204,57,
173,183,13,49,173,183,59,40,173,183,86,31,173,183,96,22,173,183,87,13,173,183,61,4,173,183,15,251,172,183,208,241,172,183,127,232,172,183,27,223,172,183,165,213,172,183,29,204,172,183,131,194,172,183,215,184,172,183,25,175,172,183,72,165,172,183,101,155,172,183,112,145,172,183,105,135,172,183,80,125,172,183,37,115,172,183,232,104,172,183,152,94,172,183,55,84,172,183,195,73,172,183,61,63,172,183,166,52,172,183,252,41,172,183,64,31,172,183,114,20,172,183,146,9,172,183,160,254,171,183,156,243,171,183,
133,232,171,183,93,221,171,183,35,210,171,183,215,198,171,183,121,187,171,183,8,176,171,183,134,164,171,183,242,152,171,183,76,141,171,183,148,129,171,183,201,117,171,183,237,105,171,183,255,93,171,183,255,81,171,183,237,69,171,183,201,57,171,183,148,45,171,183,76,33,171,183,242,20,171,183,135,8,171,183,9,252,170,183,122,239,170,183,217,226,170,183,38,214,170,183,97,201,170,183,138,188,170,183,161,175,170,183,167,162,170,183,154,149,170,183,124,136,170,183,76,123,170,183,10,110,170,183,183,96,170,
183,81,83,170,183,218,69,170,183,81,56,170,183,182,42,170,183,10,29,170,183,75,15,170,183,123,1,170,183,153,243,169,183,166,229,169,183,160,215,169,183,137,201,169,183,96,187,169,183,38,173,169,183,218,158,169,183,124,144,169,183,12,130,169,183,139,115,169,183,248,100,169,183,83,86,169,183,157,71,169,183,213,56,169,183,252,41,169,183,16,27,169,183,20,12,169,183,5,253,168,183,229,237,168,183,180,222,168,183,112,207,168,183,27,192,168,183,181,176,168,183,61,161,168,183,180,145,168,183,25,130,168,183,
108,114,168,183,174,98,168,183,222,82,168,183,253,66,168,183,10,51,168,183,6,35,168,183,240,18,168,183,201,2,168,183,145,242,167,183,70,226,167,183,235,209,167,183,126,193,167,183,255,176,167,183,111,160,167,183,206,143,167,183,27,127,167,183,87,110,167,183,130,93,167,183,155,76,167,183,163,59,167,183,153,42,167,183,126,25,167,183,82,8,167,183,20,247,166,183,197,229,166,183,100,212,166,183,243,194,166,183,112,177,166,183,219,159,166,183,54,142,166,183,127,124,166,183,183,106,166,183,221,88,166,183,
243,70,166,183,247,52,166,183,234,34,166,183,203,16,166,183,156,254,165,183,91,236,165,183,9,218,165,183,166,199,165,183,50,181,165,183,172,162,165,183,22,144,165,183,110,125,165,183,181,106,165,183,235,87,165,183,16,69,165,183,35,50,165,183,38,31,165,183,24,12,165,183,248,248,164,183,199,229,164,183,134,210,164,183,51,191,164,183,207,171,164,183,90,152,164,183,213,132,164,183,62,113,164,183,150,93,164,183,221,73,164,183,19,54,164,183,57,34,164,183,77,14,164,183,80,250,163,183,67,230,163,183,36,210,
163,183,244,189,163,183,180,169,163,183,99,149,163,183,1,129,163,183,142,108,163,183,10,88,163,183,117,67,163,183,207,46,163,183,25,26,163,183,81,5,163,183,121,240,162,183,144,219,162,183,151,198,162,183,140,177,162,183,113,156,162,183,69,135,162,183,8,114,162,183,187,92,162,183,92,71,162,183,237,49,162,183,110,28,162,183,221,6,162,183,60,241,161,183,138,219,161,183,200,197,161,183,245,175,161,183,17,154,161,183,29,132,161,183,24,110,161,183,2,88,161,183,220,65,161,183,165,43,161,183,94,21,161,183,
6,255,160,183,157,232,160,183,36,210,160,183,154,187,160,183,0,165,160,183,86,142,160,183,154,119,160,183,207,96,160,183,243,73,160,183,6,51,160,183,9,28,160,183,252,4,160,183,222,237,159,183,175,214,159,183,112,191,159,183,33,168,159,183,194,144,159,183,82,121,159,183,209,97,159,183,65,74,159,183,160,50,159,183,238,26,159,183,45,3,159,183,91,235,158,183,121,211,158,183,134,187,158,183,131,163,158,183,112,139,158,183,77,115,158,183,25,91,158,183,213,66,158,183,129,42,158,183,29,18,158,183,169,249,
157,183,36,225,157,183,143,200,157,183,234,175,157,183,53,151,157,183,112,126,157,183,155,101,157,183,181,76,157,183,192,51,157,183,186,26,157,183,165,1,157,183,127,232,156,183,73,207,156,183,3,182,156,183,174,156,156,183,72,131,156,183,210,105,156,183,76,80,156,183,182,54,156,183,17,29,156,183,91,3,156,183,149,233,155,183,192,207,155,183,218,181,155,183,229,155,155,183,223,129,155,183,202,103,155,183,165,77,155,183,113,51,155,183,44,25,155,183,215,254,154,183,115,228,154,183,255,201,154,183,123,
175,154,183,231,148,154,183,68,122,154,183,145,95,154,183,206,68,154,183,251,41,154,183,25,15,154,183,39,244,153,183,37,217,153,183,20,190,153,183,243,162,153,183,194,135,153,183,130,108,153,183,50,81,153,183,210,53,153,183,99,26,153,183,228,254,152,183,86,227,152,183,184,199,152,183,11,172,152,183,78,144,152,183,129,116,152,183,166,88,152,183,186,60,152,183,191,32,152,183,181,4,152,183,155,232,151,183,114,204,151,183,57,176,151,183,241,147,151,183,154,119,151,183,51,91,151,183,189,62,151,183,55,
34,151,183,162,5,151,183,254,232,150,183,75,204,150,183,136,175,150,183,182,146,150,183,212,117,150,183,228,88,150,183,228,59,150,183,213,30,150,183,182,1,150,183,137,228,149,183,76,199,149,183,0,170,149,183,165,140,149,183,59,111,149,183,194,81,149,183,57,52,149,183,162,22,149,183,251,248,148,183,69,219,148,183,129,189,148,183,173,159,148,183,202,129,148,183,216,99,148,183,215,69,148,183,199,39,148,183,168,9,148,183,122,235,147,183,62,205,147,183,242,174,147,183,151,144,147,183,46,114,147,183,181,
83,147,183,46,53,147,183,152,22,147,183,243,247,146,183,63,217,146,183,124,186,146,183,170,155,146,183,202,124,146,183,219,93,146,183,221,62,146,183,209,31,146,183,181,0,146,183,139,225,145,183,82,194,145,183,11,163,145,183,181,131,145,183,80,100,145,183,220,68,145,183,90,37,145,183,201,5,145,183,42,230,144,183,124,198,144,183,192,166,144,183,245,134,144,183,27,103,144,183,51,71,144,183,60,39,144,183,55,7,144,183,35,231,143,183,1,199,143,183,209,166,143,183,146,134,143,183,68,102,143,183,232,69,143,
183,126,37,143,183,6,5,143,183,127,228,142,183,233,195,142,183,70,163,142,183,148,130,142,183,211,97,142,183,5,65,142,183,40,32,142,183,61,255,141,183,67,222,141,183,60,189,141,183,38,156,141,183,2,123,141,183,207,89,141,183,143,56,141,183,65,23,141,183,228,245,140,183,121,212,140,183,0,179,140,183,121,145,140,183,228,111,140,183,65,78,140,183,144,44,140,183,208,10,140,183,3,233,139,183,40,199,139,183,63,165,139,183,72,131,139,183,66,97,139,183,47,63,139,183,14,29,139,183,224,250,138,183,163,216,
138,183,88,182,138,183,0,148,138,183,153,113,138,183,37,79,138,183,163,44,138,183,19,10,138,183,118,231,137,183,202,196,137,183,17,162,137,183,74,127,137,183,118,92,137,183,148,57,137,183,164,22,137,183,166,243,136,183,155,208,136,183,130,173,136,183,92,138,136,183,39,103,136,183,230,67,136,183,151,32,136,183,58,253,135,183,207,217,135,183,87,182,135,183,210,146,135,183,63,111,135,183,159,75,135,183,241,39,135,183,54,4,135,183,109,224,134,183,151,188,134,183,180,152,134,183,195,116,134,183,197,80,
134,183,185,44,134,183,160,8,134,183,122,228,133,183,71,192,133,183,6,156,133,183,184,119,133,183,93,83,133,183,244,46,133,183,126,10,133,183,252,229,132,183,108,193,132,183,206,156,132,183,36,120,132,183,108,83,132,183,168,46,132,183,214,9,132,183,247,228,131,183,12,192,131,183,19,155,131,183,13,118,131,183,250,80,131,183,218,43,131,183,173,6,131,183,115,225,130,183,44,188,130,183,217,150,130,183,120,113,130,183,11,76,130,183,144,38,130,183,9,1,130,183,117,219,129,183,212,181,129,183,38,144,129,
183,108,106,129,183,164,68,129,183,208,30,129,183,239,248,128,183,2,211,128,183,8,173,128,183,1,135,128,183,237,96,128,183,205,58,128,183,160,20,128,183,205,220,127,183,65,144,127,183,156,67,127,183,221,246,126,183,6,170,126,183,21,93,126,183,12,16,126,183,233,194,125,183,173,117,125,183,89,40,125,183,235,218,124,183,101,141,124,183,198,63,124,183,14,242,123,183,61,164,123,183,84,86,123,183,82,8,123,183,55,186,122,183,4,108,122,183,184,29,122,183,84,207,121,183,215,128,121,183,65,50,121,183,148,227,
120,183,205,148,120,183,239,69,120,183,248,246,119,183,233,167,119,183,193,88,119,183,130,9,119,183,42,186,118,183,186,106,118,183,50,27,118,183,145,203,117,183,217,123,117,183,9,44,117,183,33,220,116,183,33,140,116,183,8,60,116,183,217,235,115,183,145,155,115,183,49,75,115,183,186,250,114,183,43,170,114,183,132,89,114,183,198,8,114,183,240,183,113,183,2,103,113,183,253,21,113,183,225,196,112,183,173,115,112,183,97,34,112,183,254,208,111,183,132,127,111,183,243,45,111,183,74,220,110,183,138,138,110,
183,178,56,110,183,196,230,109,183,190,148,109,183,162,66,109,183,110,240,108,183,35,158,108,183,193,75,108,183,72,249,107,183,185,166,107,183,18,84,107,183,85,1,107,183,129,174,106,183,150,91,106,183,148,8,106,183,124,181,105,183,76,98,105,183,7,15,105,183,171,187,104,183,56,104,104,183,174,20,104,183,15,193,103,183,88,109,103,183,140,25,103,183,169,197,102,183,175,113,102,183,160,29,102,183,122,201,101,183,62,117,101,183,236,32,101,183,131,204,100,183,5,120,100,183,112,35,100,183,198,206,99,183,
5,122,99,183,47,37,99,183,66,208,98,183,64,123,98,183,40,38,98,183,250,208,97,183,182,123,97,183,93,38,97,183,238,208,96,183,105,123,96,183,206,37,96,183,30,208,95,183,89,122,95,183,126,36,95,183,142,206,94,183,136,120,94,183,109,34,94,183,60,204,93,183,246,117,93,183,155,31,93,183,43,201,92,183,165,114,92,183,10,28,92,183,91,197,91,183,150,110,91,183,188,23,91,183,205,192,90,183,201,105,90,183,176,18,90,183,130,187,89,183,64,100,89,183,233,12,89,183,124,181,88,183,252,93,88,183,102,6,88,183,188,
174,87,183,253,86,87,183,42,255,86,183,66,167,86,183,69,79,86,183,53,247,85,183,15,159,85,183,214,70,85,183,136,238,84,183,37,150,84,183,175,61,84,183,36,229,83,183,133,140,83,183,210,51,83,183,11,219,82,183,47,130,82,183,64,41,82,183,61,208,81,183,37,119,81,183,250,29,81,183,187,196,80,183,104,107,80,183,2,18,80,183,135,184,79,183,249,94,79,183,87,5,79,183,162,171,78,183,217,81,78,183,252,247,77,183,12,158,77,183,9,68,77,183,242,233,76,183,199,143,76,183,137,53,76,183,56,219,75,183,212,128,75,183,
92,38,75,183,209,203,74,183,51,113,74,183,130,22,74,183,190,187,73,183,231,96,73,183,253,5,73,183,255,170,72,183,239,79,72,183,204,244,71,183,151,153,71,183,78,62,71,183,243,226,70,183,132,135,70,183,4,44,70,183,112,208,69,183,202,116,69,183,18,25,69,183,70,189,68,183,105,97,68,183,121,5,68,183,118,169,67,183,98,77,67,183,58,241,66,183,1,149,66,183,181,56,66,183,88,220,65,183,232,127,65,183,102,35,65,183,209,198,64,183,43,106,64,183,115,13,64,183,169,176,63,183,205,83,63,183,223,246,62,183,223,153,
62,183,205,60,62,183,170,223,61,183,117,130,61,183,46,37,61,183,214,199,60,183,108,106,60,183,241,12,60,183,100,175,59,183,197,81,59,183,21,244,58,183,84,150,58,183,129,56,58,183,158,218,57,183,168,124,57,183,162,30,57,183,138,192,56,183,98,98,56,183,40,4,56,183,221,165,55,183,129,71,55,183,20,233,54,183,151,138,54,183,8,44,54,183,104,205,53,183,184,110,53,183,247,15,53,183,37,177,52,183,67,82,52,183,79,243,51,183,76,148,51,183,55,53,51,183,18,214,50,183,221,118,50,183,151,23,50,183,65,184,49,183,
219,88,49,183,100,249,48,183,221,153,48,183,69,58,48,183,158,218,47,183,230,122,47,183,30,27,47,183,71,187,46,183,95,91,46,183,103,251,45,183,95,155,45,183,71,59,45,183,32,219,44,183,233,122,44,183,161,26,44,183,75,186,43,183,228,89,43,183,110,249,42,183,232,152,42,183,83,56,42,183,174,215,41,183,249,118,41,183,54,22,41,183,98,181,40,183,128,84,40,183,142,243,39,183,141,146,39,183,125,49,39,183,93,208,38,183,46,111,38,183,241,13,38,183,164,172,37,183,72,75,37,183,221,233,36,183,99,136,36,183,219,
38,36,183,67,197,35,183,157,99,35,183,232,1,35,183,36,160,34,183,82,62,34,183,112,220,33,183,129,122,33,183,131,24,33,183,118,182,32,183,91,84,32,183,49,242,31,183,249,143,31,183,178,45,31,183,94,203,30,183,251,104,30,183,138,6,30,183,10,164,29,183,125,65,29,183,225,222,28,183,56,124,28,183,128,25,28,183,187,182,27,183,231,83,27,183,6,241,26,183,23,142,26,183,26,43,26,183,15,200,25,183,247,100,25,183,209,1,25,183,157,158,24,183,92,59,24,183,13,216,23,183,177,116,23,183,72,17,23,183,208,173,22,183,
76,74,22,183,186,230,21,183,27,131,21,183,111,31,21,183,182,187,20,183,239,87,20,183,27,244,19,183,59,144,19,183,77,44,19,183,82,200,18,183,74,100,18,183,54,0,18,183,21,156,17,183,230,55,17,183,171,211,16,183,100,111,16,183,15,11,16,183,175,166,15,183,65,66,15,183,199,221,14,183,64,121,14,183,173,20,14,183,14,176,13,183,98,75,13,183,170,230,12,183,230,129,12,183,21,29,12,183,56,184,11,183,79,83,11,183,90,238,10,183,89,137,10,183,76,36,10,183,50,191,9,183,13,90,9,183,220,244,8,183,160,143,8,183,87,
42,8,183,2,197,7,183,162,95,7,183,55,250,6,183,191,148,6,183,60,47,6,183,174,201,5,183,20,100,5,183,110,254,4,183,189,152,4,183,1,51,4,183,57,205,3,183,102,103,3,183,136,1,3,183,159,155,2,183,170,53,2,183,171,207,1,183,160,105,1,183,138,3,1,183,106,157,0,183,62,55,0,183,15,162,255,182,141,213,254,182,245,8,254,182,71,60,253,182,132,111,252,182,171,162,251,182,189,213,250,182,186,8,250,182,162,59,249,182,117,110,248,182,52,161,247,182,221,211,246,182,113,6,246,182,241,56,245,182,93,107,244,182,180,
157,243,182,246,207,242,182,36,2,242,182,62,52,241,182,68,102,240,182,54,152,239,182,20,202,238,182,222,251,237,182,149,45,237,182,55,95,236,182,199,144,235,182,66,194,234,182,170,243,233,182,255,36,233,182,65,86,232,182,112,135,231,182,139,184,230,182,148,233,229,182,137,26,229,182,108,75,228,182,60,124,227,182,250,172,226,182,165,221,225,182,61,14,225,182,195,62,224,182,55,111,223,182,153,159,222,182,233,207,221,182,39,0,221,182,82,48,220,182,108,96,219,182,117,144,218,182,107,192,217,182,80,240,
216,182,36,32,216,182,230,79,215,182,151,127,214,182,55,175,213,182,198,222,212,182,67,14,212,182,176,61,211,182,12,109,210,182,87,156,209,182,145,203,208,182,187,250,207,182,213,41,207,182,222,88,206,182,214,135,205,182,191,182,204,182,151,229,203,182,95,20,203,182,24,67,202,182,192,113,201,182,89,160,200,182,226,206,199,182,91,253,198,182,197,43,198,182,32,90,197,182,107,136,196,182,167,182,195,182,211,228,194,182,241,18,194,182,0,65,193,182,0,111,192,182,241,156,191,182,211,202,190,182,167,248,
189,182,108,38,189,182,35,84,188,182,203,129,187,182,101,175,186,182,241,220,185,182,111,10,185,182,223,55,184,182,65,101,183,182,149,146,182,182,219,191,181,182,20,237,180,182,63,26,180,182,93,71,179,182,109,116,178,182,112,161,177,182,102,206,176,182,79,251,175,182,43,40,175,182,250,84,174,182,188,129,173,182,113,174,172,182,26,219,171,182,182,7,171,182,70,52,170,182,201,96,169,182,64,141,168,182,170,185,167,182,9,230,166,182,92,18,166,182,162,62,165,182,221,106,164,182,12,151,163,182,47,195,162,
182,71,239,161,182,83,27,161,182,84,71,160,182,74,115,159,182,52,159,158,182,19,203,157,182,232,246,156,182,177,34,156,182,111,78,155,182,35,122,154,182,204,165,153,182,106,209,152,182,254,252,151,182,135,40,151,182,6,84,150,182,123,127,149,182,230,170,148,182,70,214,147,182,157,1,147,182,233,44,146,182,44,88,145,182,102,131,144,182,149,174,143,182,187,217,142,182,216,4,142,182,235,47,141,182,246,90,140,182,247,133,139,182,238,176,138,182,221,219,137,182,195,6,137,182,160,49,136,182,117,92,135,182,
65,135,134,182,4,178,133,182,191,220,132,182,114,7,132,182,28,50,131,182,190,92,130,182,88,135,129,182,234,177,128,182,232,184,127,182,237,13,126,182,226,98,124,182,200,183,122,182,158,12,121,182,102,97,119,182,31,182,117,182,202,10,116,182,102,95,114,182,244,179,112,182,116,8,111,182,230,92,109,182,75,177,107,182,162,5,106,182,235,89,104,182,40,174,102,182,88,2,101,182,123,86,99,182,145,170,97,182,155,254,95,182,153,82,94,182,138,166,92,182,112,250,90,182,74,78,89,182,25,162,87,182,220,245,85,182,
148,73,84,182,66,157,82,182,228,240,80,182,124,68,79,182,9,152,77,182,141,235,75,182,6,63,74,182,117,146,72,182,219,229,70,182,55,57,69,182,137,140,67,182,211,223,65,182,19,51,64,182,75,134,62,182,122,217,60,182,161,44,59,182,191,127,57,182,213,210,55,182,228,37,54,182,234,120,52,182,234,203,50,182,225,30,49,182,210,113,47,182,187,196,45,182,158,23,44,182,122,106,42,182,80,189,40,182,31,16,39,182,232,98,37,182,172,181,35,182,105,8,34,182,33,91,32,182,212,173,30,182,129,0,29,182,41,83,27,182,205,165,
25,182,108,248,23,182,6,75,22,182,156,157,20,182,46,240,18,182,187,66,17,182,70,149,15,182,204,231,13,182,79,58,12,182,207,140,10,182,76,223,8,182,198,49,7,182,61,132,5,182,177,214,3,182,36,41,2,182,148,123,0,182,4,156,253,181,221,64,250,181,178,229,246,181,133,138,243,181,85,47,240,181,34,212,236,181,238,120,233,181,185,29,230,181,130,194,226,181,75,103,223,181,19,12,220,181,220,176,216,181,164,85,213,181,110,250,209,181,56,159,206,181,4,68,203,181,209,232,199,181,161,141,196,181,115,50,193,181,
72,215,189,181,32,124,186,181,251,32,183,181,219,197,179,181,191,106,176,181,167,15,173,181,149,180,169,181,135,89,166,181,128,254,162,181,126,163,159,181,131,72,156,181,143,237,152,181,161,146,149,181,188,55,146,181,222,220,142,181,8,130,139,181,59,39,136,181,119,204,132,181,188,113,129,181,20,46,124,181,197,120,117,181,139,195,110,181,102,14,104,181,88,89,97,181,96,164,90,181,127,239,83,181,183,58,77,181,8,134,70,181,115,209,63,181,247,28,57,181,151,104,50,181,83,180,43,181,43,0,37,181,33,76,30,
181,52,152,23,181,102,228,16,181,183,48,10,181,41,125,3,181,118,147,249,180,221,44,236,180,137,198,222,180,123,96,209,180,179,250,195,180,53,149,182,180,0,48,169,180,23,203,155,180,123,102,142,180,46,2,129,180,96,60,103,180,6,117,76,180,82,174,49,180,70,232,22,180,201,69,248,179,98,188,194,179,92,52,141,179,121,91,47,179,40,162,136,178,181,217,26,50,255,186,17,51,149,188,124,51,147,221,179,51,82,91,233,51,194,107,15,52,16,41,42,52,145,229,68,52,67,161,95,52,34,92,122,52,22,139,138,52,175,231,151,
52,218,67,165,52,151,159,178,52,227,250,191,52,189,85,205,52,36,176,218,52,22,10,232,52,147,99,245,52,76,94,1,53,146,10,8,53,155,182,14,53,102,98,21,53,243,13,28,53,64,185,34,53,78,100,41,53,27,15,48,53,166,185,54,53,240,99,61,53,247,13,68,53,186,183,74,53,57,97,81,53,115,10,88,53,104,179,94,53,22,92,101,53,126,4,108,53,158,172,114,53,117,84,121,53,3,252,127,53,164,81,131,53,33,165,134,53,120,248,137,53,170,75,141,53,181,158,144,53,154,241,147,53,87,68,151,53,238,150,154,53,92,233,157,53,163,59,161,
53,193,141,164,53,182,223,167,53,130,49,171,53,37,131,174,53,158,212,177,53,237,37,181,53,17,119,184,53,11,200,187,53,217,24,191,53,124,105,194,53,243,185,197,53,62,10,201,53,92,90,204,53,77,170,207,53,17,250,210,53,167,73,214,53,15,153,217,53,73,232,220,53,85,55,224,53,49,134,227,53,222,212,230,53,91,35,234,53,168,113,237,53,197,191,240,53,176,13,244,53,107,91,247,53,245,168,250,53,76,246,253,53,185,161,0,54,50,72,2,54,146,238,3,54,217,148,5,54,5,59,7,54,24,225,8,54,17,135,10,54,239,44,12,54,179,
210,13,54,92,120,15,54,234,29,17,54,94,195,18,54,182,104,20,54,243,13,22,54,20,179,23,54,26,88,25,54,4,253,26,54],"i8",4,y.a+1095680);
Q([210,161,28,54,132,70,30,54,25,235,31,54,146,143,33,54,238,51,35,54,46,216,36,54,80,124,38,54,85,32,40,54,60,196,41,54,6,104,43,54,179,11,45,54,65,175,46,54,177,82,48,54,3,246,49,54,55,153,51,54,76,60,53,54,66,223,54,54,26,130,56,54,210,36,58,54,107,199,59,54,229,105,61,54,62,12,63,54,121,174,64,54,147,80,66,54,141,242,67,54,102,148,69,54,32,54,71,54,184,215,72,54,48,121,74,54,135,26,76,54,188,187,77,54,209,92,79,54,196,253,80,54,149,158,82,54,68,63,84,54,209,223,85,54,60,128,87,54,133,32,89,54,
171,192,90,54,175,96,92,54,144,0,94,54,77,160,95,54,232,63,97,54,95,223,98,54,179,126,100,54,226,29,102,54,239,188,103,54,214,91,105,54,154,250,106,54,58,153,108,54,180,55,110,54,11,214,111,54,60,116,113,54,72,18,115,54,47,176,116,54,241,77,118,54,141,235,119,54,3,137,121,54,83,38,123,54,125,195,124,54,130,96,126,54,95,253,127,54,11,205,128,54,83,155,129,54,136,105,130,54,169,55,131,54,183,5,132,54,177,211,132,54,151,161,133,54,105,111,134,54,39,61,135,54,210,10,136,54,104,216,136,54,234,165,137,
54,87,115,138,54,176,64,139,54,245,13,140,54,37,219,140,54,65,168,141,54,72,117,142,54,58,66,143,54,23,15,144,54,224,219,144,54,147,168,145,54,49,117,146,54,186,65,147,54,46,14,148,54,140,218,148,54,213,166,149,54,8,115,150,54,38,63,151,54,46,11,152,54,32,215,152,54,252,162,153,54,194,110,154,54,115,58,155,54,13,6,156,54,145,209,156,54,255,156,157,54,86,104,158,54,151,51,159,54,194,254,159,54,213,201,160,54,210,148,161,54,185,95,162,54,136,42,163,54,65,245,163,54,226,191,164,54,109,138,165,54,224,
84,166,54,60,31,167,54,129,233,167,54,174,179,168,54,196,125,169,54,194,71,170,54,168,17,171,54,119,219,171,54,46,165,172,54,205,110,173,54,83,56,174,54,194,1,175,54,25,203,175,54,87,148,176,54,125,93,177,54,139,38,178,54,128,239,178,54,93,184,179,54,33,129,180,54,204,73,181,54,95,18,182,54,216,218,182,54,57,163,183,54,128,107,184,54,175,51,185,54,196,251,185,54,192,195,186,54,162,139,187,54,107,83,188,54,27,27,189,54,177,226,189,54,45,170,190,54,143,113,191,54,216,56,192,54,7,0,193,54,27,199,193,
54,22,142,194,54,246,84,195,54,188,27,196,54,104,226,196,54,249,168,197,54,112,111,198,54,204,53,199,54,14,252,199,54,52,194,200,54,64,136,201,54,50,78,202,54,8,20,203,54,195,217,203,54,99,159,204,54,231,100,205,54,81,42,206,54,159,239,206,54,209,180,207,54,232,121,208,54,228,62,209,54,195,3,210,54,135,200,210,54,48,141,211,54,188,81,212,54,44,22,213,54,128,218,213,54,184,158,214,54,211,98,215,54,211,38,216,54,182,234,216,54,124,174,217,54,38,114,218,54,179,53,219,54,36,249,219,54,120,188,220,54,
175,127,221,54,200,66,222,54,197,5,223,54,165,200,223,54,104,139,224,54,13,78,225,54,149,16,226,54,0,211,226,54,77,149,227,54,124,87,228,54,142,25,229,54,130,219,229,54,88,157,230,54,17,95,231,54,171,32,232,54,40,226,232,54,134,163,233,54,198,100,234,54,232,37,235,54,235,230,235,54,208,167,236,54,151,104,237,54,63,41,238,54,200,233,238,54,51,170,239,54,126,106,240,54,171,42,241,54,185,234,241,54,168,170,242,54,120,106,243,54,40,42,244,54,186,233,244,54,43,169,245,54,126,104,246,54,177,39,247,54,196,
230,247,54,184,165,248,54,140,100,249,54,64,35,250,54,213,225,250,54,73,160,251,54,157,94,252,54,210,28,253,54,230,218,253,54,217,152,254,54,173,86,255,54,48,10,0,55,249,104,0,55,178,199,0,55,91,38,1,55,243,132,1,55,123,227,1,55,242,65,2,55,89,160,2,55,176,254,2,55,246,92,3,55,43,187,3,55,80,25,4,55,100,119,4,55,103,213,4,55,90,51,5,55,60,145,5,55,13,239,5,55,205,76,6,55,125,170,6,55,27,8,7,55,169,101,7,55,37,195,7,55,144,32,8,55,235,125,8,55,52,219,8,55,108,56,9,55,147,149,9,55,169,242,9,55,173,
79,10,55,161,172,10,55,130,9,11,55,83,102,11,55,18,195,11,55,192,31,12,55,92,124,12,55,231,216,12,55,96,53,13,55,199,145,13,55,29,238,13,55,97,74,14,55,148,166,14,55,181,2,15,55,196,94,15,55,193,186,15,55,173,22,16,55,134,114,16,55,78,206,16,55,3,42,17,55,167,133,17,55,57,225,17,55,184,60,18,55,38,152,18,55,129,243,18,55,203,78,19,55,2,170,19,55,38,5,20,55,57,96,20,55,57,187,20,55,39,22,21,55,2,113,21,55,203,203,21,55,130,38,22,55,38,129,22,55,184,219,22,55,55,54,23,55,163,144,23,55,253,234,23,55,
68,69,24,55,121,159,24,55,154,249,24,55,169,83,25,55,165,173,25,55,142,7,26,55,101,97,26,55,40,187,26,55,217,20,27,55,118,110,27,55,1,200,27,55,120,33,28,55,220,122,28,55,46,212,28,55,108,45,29,55,151,134,29,55,174,223,29,55,178,56,30,55,164,145,30,55,129,234,30,55,76,67,31,55,2,156,31,55,166,244,31,55,54,77,32,55,178,165,32,55,27,254,32,55,113,86,33,55,178,174,33,55,224,6,34,55,251,94,34,55,1,183,34,55,244,14,35,55,211,102,35,55,159,190,35,55,86,22,36,55,250,109,36,55,137,197,36,55,5,29,37,55,108,
116,37,55,192,203,37,55,255,34,38,55,43,122,38,55,66,209,38,55,69,40,39,55,52,127,39,55,15,214,39,55,213,44,40,55,135,131,40,55,37,218,40,55,175,48,41,55,36,135,41,55,132,221,41,55,208,51,42,55,8,138,42,55,43,224,42,55,57,54,43,55,51,140,43,55,24,226,43,55,233,55,44,55,165,141,44,55,76,227,44,55,222,56,45,55,91,142,45,55,196,227,45,55,24,57,46,55,87,142,46,55,129,227,46,55,149,56,47,55,149,141,47,55,128,226,47,55,86,55,48,55,23,140,48,55,194,224,48,55,89,53,49,55,218,137,49,55,70,222,49,55,156,50,
50,55,222,134,50,55,10,219,50,55,32,47,51,55,33,131,51,55,13,215,51,55,228,42,52,55,164,126,52,55,80,210,52,55,229,37,53,55,101,121,53,55,208,204,53,55,37,32,54,55,100,115,54,55,141,198,54,55,161,25,55,55,158,108,55,55,134,191,55,55,89,18,56,55,21,101,56,55,187,183,56,55,75,10,57,55,198,92,57,55,42,175,57,55,120,1,58,55,177,83,58,55,211,165,58,55,223,247,58,55,212,73,59,55,180,155,59,55,125,237,59,55,48,63,60,55,205,144,60,55,83,226,60,55,195,51,61,55,29,133,61,55,96,214,61,55,141,39,62,55,163,120,
62,55,162,201,62,55,140,26,63,55,94,107,63,55,26,188,63,55,191,12,64,55,78,93,64,55,198,173,64,55,39,254,64,55,113,78,65,55,165,158,65,55,193,238,65,55,199,62,66,55,182,142,66,55,142,222,66,55,79,46,67,55,249,125,67,55,140,205,67,55,8,29,68,55,109,108,68,55,186,187,68,55,241,10,69,55,16,90,69,55,25,169,69,55,10,248,69,55,227,70,70,55,166,149,70,55,81,228,70,55,229,50,71,55,97,129,71,55,198,207,71,55,19,30,72,55,73,108,72,55,104,186,72,55,110,8,73,55,94,86,73,55,54,164,73,55,246,241,73,55,158,63,74,
55,47,141,74,55,168,218,74,55,9,40,75,55,83,117,75,55,132,194,75,55,158,15,76,55,160,92,76,55,138,169,76,55,93,246,76,55,23,67,77,55,185,143,77,55,67,220,77,55,181,40,78,55,15,117,78,55,81,193,78,55,123,13,79,55,141,89,79,55,135,165,79,55,104,241,79,55,49,61,80,55,226,136,80,55,122,212,80,55,250,31,81,55,98,107,81,55,177,182,81,55,232,1,82,55,7,77,82,55,13,152,82,55,250,226,82,55,207,45,83,55,140,120,83,55,47,195,83,55,187,13,84,55,45,88,84,55,135,162,84,55,200,236,84,55,240,54,85,55,0,129,85,55,
247,202,85,55,213,20,86,55,154,94,86,55,70,168,86,55,218,241,86,55,84,59,87,55,182,132,87,55,254,205,87,55,46,23,88,55,68,96,88,55,66,169,88,55,38,242,88,55,241,58,89,55,163,131,89,55,60,204,89,55,188,20,90,55,34,93,90,55,111,165,90,55,163,237,90,55,189,53,91,55,191,125,91,55,166,197,91,55,117,13,92,55,42,85,92,55,197,156,92,55,71,228,92,55,176,43,93,55,255,114,93,55,52,186,93,55,80,1,94,55,82,72,94,55,58,143,94,55,9,214,94,55,191,28,95,55,90,99,95,55,220,169,95,55,68,240,95,55,146,54,96,55,198,124,
96,55,224,194,96,55,225,8,97,55,199,78,97,55,148,148,97,55,71,218,97,55,224,31,98,55,94,101,98,55,195,170,98,55,14,240,98,55,62,53,99,55,84,122,99,55,81,191,99,55,51,4,100,55,251,72,100,55,168,141,100,55,60,210,100,55,181,22,101,55,20,91,101,55,88,159,101,55,130,227,101,55,146,39,102,55,135,107,102,55,98,175,102,55,35,243,102,55,201,54,103,55,84,122,103,55,197,189,103,55,28,1,104,55,87,68,104,55,121,135,104,55,127,202,104,55,107,13,105,55,60,80,105,55,243,146,105,55,143,213,105,55,16,24,106,55,118,
90,106,55,193,156,106,55,242,222,106,55,8,33,107,55,3,99,107,55,227,164,107,55,168,230,107,55,82,40,108,55,225,105,108,55,85,171,108,55,174,236,108,55,236,45,109,55,15,111,109,55,23,176,109,55,4,241,109,55,213,49,110,55,140,114,110,55,39,179,110,55,167,243,110,55,12,52,111,55,85,116,111,55,131,180,111,55,150,244,111,55,142,52,112,55,106,116,112,55,43,180,112,55,208,243,112,55,90,51,113,55,201,114,113,55,28,178,113,55,83,241,113,55,111,48,114,55,111,111,114,55,84,174,114,55,30,237,114,55,203,43,115,
55,93,106,115,55,211,168,115,55,46,231,115,55,109,37,116,55,144,99,116,55,152,161,116,55,131,223,116,55,83,29,117,55,7,91,117,55,159,152,117,55,27,214,117,55,124,19,118,55,192,80,118,55,233,141,118,55,245,202,118,55,230,7,119,55,186,68,119,55,115,129,119,55,15,190,119,55,144,250,119,55,244,54,120,55,60,115,120,55,104,175,120,55,120,235,120,55,108,39,121,55,67,99,121,55,254,158,121,55,157,218,121,55,32,22,122,55,134,81,122,55,209,140,122,55,254,199,122,55,16,3,123,55,5,62,123,55,221,120,123,55,154,
179,123,55,57,238,123,55,189,40,124,55,35,99,124,55,110,157,124,55,155,215,124,55,173,17,125,55,161,75,125,55,121,133,125,55,53,191,125,55,211,248,125,55,85,50,126,55,187,107,126,55,4,165,126,55,48,222,126,55,63,23,127,55,49,80,127,55,7,137,127,55,192,193,127,55,92,250,127,55,110,25,128,55,159,53,128,55,194,81,128,55,214,109,128,55,220,137,128,55,211,165,128,55,188,193,128,55,150,221,128,55,98,249,128,55,32,21,129,55,206,48,129,55,111,76,129,55,0,104,129,55,132,131,129,55,248,158,129,55,94,186,129,
55,182,213,129,55,255,240,129,55,57,12,130,55,101,39,130,55,130,66,130,55,144,93,130,55,144,120,130,55,129,147,130,55,100,174,130,55,55,201,130,55,253,227,130,55,179,254,130,55,91,25,131,55,244,51,131,55,126,78,131,55,250,104,131,55,103,131,131,55,197,157,131,55,20,184,131,55,85,210,131,55,134,236,131,55,169,6,132,55,190,32,132,55,195,58,132,55,186,84,132,55,161,110,132,55,122,136,132,55,68,162,132,55,0,188,132,55,172,213,132,55,74,239,132,55,216,8,133,55,88,34,133,55,201,59,133,55,43,85,133,55,126,
110,133,55,194,135,133,55,247,160,133,55,30,186,133,55,53,211,133,55,61,236,133,55,55,5,134,55,33,30,134,55,253,54,134,55,201,79,134,55,135,104,134,55,53,129,134,55,213,153,134,55,101,178,134,55,230,202,134,55,89,227,134,55,188,251,134,55,16,20,135,55,85,44,135,55,139,68,135,55,178,92,135,55,202,116,135,55,211,140,135,55,205,164,135,55,183,188,135,55,147,212,135,55,95,236,135,55,28,4,136,55,202,27,136,55,105,51,136,55,249,74,136,55,121,98,136,55,234,121,136,55,77,145,136,55,159,168,136,55,227,191,
136,55,24,215,136,55,61,238,136,55,83,5,137,55,90,28,137,55,81,51,137,55,57,74,137,55,18,97,137,55,220,119,137,55,151,142,137,55,66,165,137,55,221,187,137,55,106,210,137,55,231,232,137,55,85,255,137,55,180,21,138,55,3,44,138,55,67,66,138,55,115,88,138,55,149,110,138,55,166,132,138,55,169,154,138,55,156,176,138,55,128,198,138,55,84,220,138,55,25,242,138,55,206,7,139,55,116,29,139,55,11,51,139,55,146,72,139,55,10,94,139,55,114,115,139,55,203,136,139,55,20,158,139,55,78,179,139,55,121,200,139,55,148,
221,139,55,159,242,139,55,155,7,140,55,135,28,140,55,100,49,140,55,50,70,140,55,240,90,140,55,158,111,140,55,61,132,140,55,204,152,140,55,76,173,140,55,188,193,140,55,29,214,140,55,110,234,140,55,175,254,140,55,225,18,141,55,3,39,141,55,22,59,141,55,25,79,141,55,12,99,141,55,240,118,141,55,196,138,141,55,137,158,141,55,62,178,141,55,227,197,141,55,120,217,141,55,254,236,141,55,117,0,142,55,219,19,142,55,50,39,142,55,121,58,142,55,177,77,142,55,217,96,142,55,241,115,142,55,249,134,142,55,242,153,142,
55,219,172,142,55,180,191,142,55,125,210,142,55,55,229,142,55,225,247,142,55,123,10,143,55,6,29,143,55,129,47,143,55,235,65,143,55,71,84,143,55,146,102,143,55,206,120,143,55,249,138,143,55,21,157,143,55,34,175,143,55,30,193,143,55,10,211,143,55,231,228,143,55,180,246,143,55,113,8,144,55,30,26,144,55,188,43,144,55,73,61,144,55,199,78,144,55,52,96,144,55,146,113,144,55,224,130,144,55,30,148,144,55,77,165,144,55,107,182,144,55,121,199,144,55,120,216,144,55,103,233,144,55,69,250,144,55,20,11,145,55,211,
27,145,55,130,44,145,55,33,61,145,55,176,77,145,55,47,94,145,55,158,110,145,55,254,126,145,55,77,143,145,55,140,159,145,55,187,175,145,55,219,191,145,55,234,207,145,55,233,223,145,55,217,239,145,55,184,255,145,55,135,15,146,55,71,31,146,55,246,46,146,55,150,62,146,55,37,78,146,55,164,93,146,55,19,109,146,55,115,124,146,55,194,139,146,55,1,155,146,55,48,170,146,55,79,185,146,55,94,200,146,55,93,215,146,55,76,230,146,55,42,245,146,55,249,3,147,55,184,18,147,55,102,33,147,55,5,48,147,55,147,62,147,55,
17,77,147,55,127,91,147,55,221,105,147,55,43,120,147,55,105,134,147,55,151,148,147,55,180,162,147,55,194,176,147,55,191,190,147,55,172,204,147,55,137,218,147,55,86,232,147,55,19,246,147,55,191,3,148,55,92,17,148,55,232,30,148,55,100,44,148,55,208,57,148,55,44,71,148,55,119,84,148,55,179,97,148,55,222,110,148,55,249,123,148,55,4,137,148,55,255,149,148,55,233,162,148,55,195,175,148,55,141,188,148,55,71,201,148,55,241,213,148,55,138,226,148,55,19,239,148,55,140,251,148,55,245,7,149,55,77,20,149,55,150,
32,149,55,206,44,149,55,245,56,149,55,13,69,149,55,20,81,149,55,11,93,149,55,242,104,149,55,201,116,149,55,143,128,149,55,69,140,149,55,235,151,149,55,128,163,149,55,5,175,149,55,122,186,149,55,223,197,149,55,51,209,149,55,119,220,149,55,171,231,149,55,206,242,149,55,226,253,149,55,229,8,150,55,215,19,150,55,185,30,150,55,139,41,150,55,77,52,150,55,254,62,150,55,160,73,150,55,48,84,150,55,177,94,150,55,33,105,150,55,129,115,150,55,208,125,150,55,15,136,150,55,62,146,150,55,93,156,150,55,107,166,150,
55,104,176,150,55,86,186,150,55,51,196,150,55,0,206,150,55,188,215,150,55,104,225,150,55,4,235,150,55,143,244,150,55,10,254,150,55,117,7,151,55,207,16,151,55,25,26,151,55,83,35,151,55,124,44,151,55,149,53,151,55,157,62,151,55,149,71,151,55,125,80,151,55,84,89,151,55,27,98,151,55,210,106,151,55,120,115,151,55,14,124,151,55,147,132,151,55,8,141,151,55,109,149,151,55,193,157,151,55,5,166,151,55,56,174,151,55,91,182,151,55,110,190,151,55,112,198,151,55,98,206,151,55,67,214,151,55,21,222,151,55,213,229,
151,55,133,237,151,55,37,245,151,55,181,252,151,55,52,4,152,55,162,11,152,55,0,19,152,55,78,26,152,55,139,33,152,55,184,40,152,55,213,47,152,55,225,54,152,55,220,61,152,55,200,68,152,55,162,75,152,55,109,82,152,55,39,89,152,55,208,95,152,55,105,102,152,55,242,108,152,55,106,115,152,55,210,121,152,55,41,128,152,55,112,134,152,55,167,140,152,55,205,146,152,55,226,152,152,55,232,158,152,55,220,164,152,55,193,170,152,55,148,176,152,55,88,182,152,55,11,188,152,55,173,193,152,55,63,199,152,55,193,204,152,
55,50,210,152,55,147,215,152,55,227,220,152,55,35,226,152,55,83,231,152,55,114,236,152,55,128,241,152,55,126,246,152,55,108,251,152,55,73,0,153,55,22,5,153,55,210,9,153,55,126,14,153,55,26,19,153,55,165,23,153,55,31,28,153,55,137,32,153,55,227,36,153,55,44,41,153,55,101,45,153,55,141,49,153,55,165,53,153,55,172,57,153,55,163,61,153,55,138,65,153,55,96,69,153,55,37,73,153,55,219,76,153,55,127,80,153,55,20,84,153,55,151,87,153,55,11,91,153,55,110,94,153,55,192,97,153,55,2,101,153,55,52,104,153,55,85,
107,153,55,102,110,153,55,102,113,153,55,86,116,153,55,53,119,153,55,4,122,153,55,195,124,153,55,113,127,153,55,14,130,153,55,155,132,153,55,24,135,153,55,133,137,153,55,224,139,153,55,44,142,153,55,103,144,153,55,145,146,153,55,172,148,153,55,181,150,153,55,174,152,153,55,151,154,153,55,112,156,153,55,56,158,153,55,239,159,153,55,150,161,153,55,45,163,153,55,179,164,153,55,41,166,153,55,143,167,153,55,228,168,153,55,40,170,153,55,92,171,153,55,128,172,153,55,148,173,153,55,150,174,153,55,137,175,
153,55,107,176,153,55,61,177,153,55,254,177,153,55,175,178,153,55,79,179,153,55,223,179,153,55,95,180,153,55,206,180,153,55,45,181,153,55,124,181,153,55,186,181,153,55,231,181,153,55,5,182,153,55,18,182,153,55,14,182,153,55,250,181,153,55,214,181,153,55,161,181,153,55,92,181,153,55,7,181,153,55,161,180,153,55,43,180,153,55,164,179,153,55,13,179,153,55,102,178,153,55,174,177,153,55,230,176,153,55,14,176,153,55,37,175,153,55,44,174,153,55,35,173,153,55,9,172,153,55,223,170,153,55,164,169,153,55,89,
168,153,55,254,166,153,55,146,165,153,55,22,164,153,55,138,162,153,55,237,160,153,55,65,159,153,55,131,157,153,55,182,155,153,55,216,153,153,55,233,151,153,55,235,149,153,55,220,147,153,55,189,145,153,55,141,143,153,55,77,141,153,55,253,138,153,55,157,136,153,55,44,134,153,55,171,131,153,55,26,129,153,55,120,126,153,55,198,123,153,55,4,121,153,55,49,118,153,55,78,115,153,55,91,112,153,55,88,109,153,55,68,106,153,55,32,103,153,55,236,99,153,55,168,96,153,55,83,93,153,55,238,89,153,55,121,86,153,55,
243,82,153,55,94,79,153,55,184,75,153,55,1,72,153,55,59,68,153,55,100,64,153,55,125,60,153,55,134,56,153,55,127,52,153,55,103,48,153,55,63,44,153,55,7,40,153,55,191,35,153,55,102,31,153,55,254,26,153,55,133,22,153,55,252,17,153,55,99,13,153,55,185,8,153,55,255,3,153,55,54,255,152,55,92,250,152,55,113,245,152,55,119,240,152,55,108,235,152,55,82,230,152,55,39,225,152,55,236,219,152,55,161,214,152,55,69,209,152,55,218,203,152,55,94,198,152,55,211,192,152,55,55,187,152,55,139,181,152,55,206,175,152,55,
2,170,152,55,38,164,152,55,57,158,152,55,61,152,152,55,48,146,152,55,19,140,152,55,230,133,152,55,169,127,152,55,92,121,152,55,255,114,152,55,146,108,152,55,21,102,152,55,135,95,152,55,234,88,152,55,60,82,152,55,127,75,152,55,177,68,152,55,211,61,152,55,230,54,152,55,232,47,152,55,218,40,152,55,188,33,152,55,142,26,152,55,81,19,152,55,3,12,152,55,165,4,152,55,55,253,151,55,185,245,151,55,43,238,151,55,141,230,151,55,224,222,151,55,34,215,151,55,84,207,151,55,118,199,151,55,136,191,151,55,139,183,
151,55,125,175,151,55,95,167,151,55,50,159,151,55,244,150,151,55,167,142,151,55,74,134,151,55,220,125,151,55,95,117,151,55,210,108,151,55,53,100,151,55,136,91,151,55,203,82,151,55,254,73,151,55,34,65,151,55,53,56,151,55,57,47,151,55,45,38,151,55,17,29,151,55,229,19,151,55,169,10,151,55,93,1,151,55,2,248,150,55,150,238,150,55,27,229,150,55,144,219,150,55,245,209,150,55,75,200,150,55,144,190,150,55,198,180,150,55,236,170,150,55,2,161,150,55,8,151,150,55,255,140,150,55,230,130,150,55,189,120,150,55,
132,110,150,55,59,100,150,55,227,89,150,55,123,79,150,55,4,69,150,55,124,58,150,55,229,47,150,55,62,37,150,55,135,26,150,55,193,15,150,55,235,4,150,55,5,250,149,55,16,239,149,55,11,228,149,55,246,216,149,55,210,205,149,55,157,194,149,55,90,183,149,55,6,172,149,55,163,160,149,55,48,149,149,55,174,137,149,55,28,126,149,55,123,114,149,55,201,102,149,55,9,91,149,55,56,79,149,55,88,67,149,55,105,55,149,55,105,43,149,55,91,31,149,55,60,19,149,55,15,7,149,55,209,250,148,55,132,238,148,55,40,226,148,55,188,
213,148,55,64,201,148,55,181,188,148,55,26,176,148,55,112,163,148,55,183,150,148,55,238,137,148,55,21,125,148,55,45,112,148,55,53,99,148,55,46,86,148,55,24,73,148,55,242,59,148,55,189,46,148,55,120,33,148,55,36,20,148,55,192,6,148,55,77,249,147,55,203,235,147,55,57,222,147,55,152,208,147,55,231,194,147,55,39,181,147,55,88,167,147,55,121,153,147,55,139,139,147,55,142,125,147,55,129,111,147,55,101,97,147,55,57,83,147,55,255,68,147,55,181,54,147,55,91,40,147,55,243,25,147,55,123,11,147,55,243,252,146,
55,93,238,146,55,183,223,146,55,2,209,146,55,62,194,146,55,107,179,146,55,136,164,146,55,150,149,146,55,149,134,146,55,132,119,146,55,101,104,146,55,54,89,146,55,248,73,146,55,171,58,146,55,79,43,146,55,227,27,146,55,105,12,146,55,223,252,145,55,70,237,145,55,158,221,145,55,231,205,145,55,33,190,145,55,75,174,145,55,103,158,145,55,115,142,145,55,113,126,145,55,95,110,145,55,62,94,145,55,15,78,145,55,208,61,145,55,130,45,145,55,37,29,145,55,185,12,145,55,62,252,144,55,180,235,144,55,27,219,144,55,
115,202,144,55,189,185,144,55,247,168,144,55,34,152,144,55,62,135,144,55,75,118,144,55,74,101,144,55,57,84,144,55,26,67,144,55,235,49,144,55,174,32,144,55,98,15,144,55,7,254,143,55,157,236,143,55,36,219,143,55,156,201,143,55,6,184,143,55,96,166,143,55,172,148,143,55,233,130,143,55,23,113,143,55,55,95,143,55,71,77,143,55,73,59,143,55,60,41,143,55,32,23,143,55,246,4,143,55,189,242,142,55,117,224,142,55,30,206,142,55,184,187,142,55,68,169,142,55,193,150,142,55,48,132,142,55,144,113,142,55,225,94,142,
55,35,76,142,55,87,57,142,55,124,38,142,55,147,19,142,55,155,0,142,55,148,237,141,55,127,218,141,55,91,199,141,55,40,180,141,55,231,160,141,55,151,141,141,55,57,122,141,55,204,102,141,55,81,83,141,55,199,63,141,55,47,44,141,55,136,24,141,55,211,4,141,55,15,241,140,55,60,221,140,55,91,201,140,55,108,181,140,55,110,161,140,55,98,141,140,55,72,121,140,55,31,101,140,55,231,80,140,55,161,60,140,55,77,40,140,55,234,19,140,55,121,255,139,55,250,234,139,55,108,214,139,55,208,193,139,55,38,173,139,55,109,
152,139,55,166,131,139,55,209,110,139,55,237,89,139,55,251,68,139,55,251,47,139,55,237,26,139,55,208,5,139,55,165,240,138,55,108,219,138,55,37,198,138,55,207,176,138,55,107,155,138,55,249,133,138,55,121,112,138,55,235,90,138,55,79,69,138,55,164,47,138,55,235,25,138,55,36,4,138,55,79,238,137,55,108,216,137,55,123,194,137,55,124,172,137,55,111,150,137,55,83,128,137,55,42,106,137,55,242,83,137,55,173,61,137,55,89,39,137,55,248,16,137,55,136,250,136,55,11,228,136,55,127,205,136,55,230,182,136,55,62,160,
136,55,137,137,136,55,198,114,136,55,245,91,136,55,21,69,136,55,40,46,136,55,46,23,136,55,37,0,136,55,14,233,135,55,234,209,135,55,183,186,135,55,119,163,135,55,41,140,135,55,205,116,135,55,100,93,135,55,237,69,135,55,103,46,135,55,213,22,135,55,52,255,134,55,133,231,134,55,201,207,134,55,0,184,134,55,40,160,134,55,67,136,134,55,80,112,134,55,79,88,134,55,65,64,134,55,37,40,134,55,252,15,134,55,196,247,133,55,128,223,133,55,45,199,133,55,205,174,133,55,96,150,133,55,228,125,133,55,92,101,133,55,198,
76,133,55,34,52,133,55,113,27,133,55,178,2,133,55,229,233,132,55,12,209,132,55,36,184,132,55,48,159,132,55,46,134,132,55,30,109,132,55,1,84,132,55,214,58,132,55,159,33,132,55,89,8,132,55,7,239,131,55,167,213,131,55,57,188,131,55,191,162,131,55,55,137,131,55,161,111,131,55,255,85,131,55,79,60,131,55,146,34,131,55,199,8,131,55,239,238,130,55,10,213,130,55,24,187,130,55,25,161,130,55,12,135,130,55,242,108,130,55,203,82,130,55,151,56,130,55,85,30,130,55,7,4,130,55,171,233,129,55,66,207,129,55,205,180,
129,55,74,154,129,55,186,127,129,55,28,101,129,55,114,74,129,55,187,47,129,55,247,20,129,55,37,250,128,55,71,223,128,55,92,196,128,55,99,169,128,55,94,142,128,55,76,115,128,55,45,88,128,55,0,61,128,55,199,33,128,55,129,6,128,55,93,214,127,55,158,159,127,55,197,104,127,55,210,49,127,55,197,250,126,55,159,195,126,55,95,140,126,55,5,85,126,55,146,29,126,55,5,230,125,55,95,174,125,55,159,118,125,55,198,62,125,55,211,6,125,55,199,206,124,55,162,150,124,55,99,94,124,55,11,38,124,55,153,237,123,55,14,181,
123,55,106,124,123,55,173,67,123,55,214,10,123,55,230,209,122,55,221,152,122,55,187,95,122,55,128,38,122,55,44,237,121,55,190,179,121,55,56,122,121,55,152,64,121,55,224,6,121,55,15,205,120,55,36,147,120,55,33,89,120,55,5,31,120,55,208,228,119,55,130,170,119,55,28,112,119,55,156,53,119,55,4,251,118,55,84,192,118,55,138,133,118,55,168,74,118,55,173,15,118,55,154,212,117,55,110,153,117,55,41,94,117,55,204,34,117,55,87,231,116,55,201,171,116,55,35,112,116,55,100,52,116,55,141,248,115,55,157,188,115,55,
149,128,115,55,117,68,115,55,60,8,115,55,236,203,114,55,131,143,114,55,2,83,114,55,104,22,114,55,183,217,113,55,237,156,113,55,12,96,113,55,18,35,113,55,0,230,112,55,215,168,112,55,149,107,112,55,59,46,112,55,202,240,111,55,64,179,111,55,159,117,111,55,230,55,111,55,21,250,110,55,45,188,110,55,44,126,110,55,20,64,110,55,228,1,110,55,157,195,109,55,62,133,109,55,199,70,109,55,57,8,109,55,147,201,108,55,214,138,108,55,1,76,108,55,21,13,108,55,17,206,107,55,246,142,107,55,195,79,107,55,122,16,107,55,
25,209,106,55,160,145,106,55,17,82,106,55,106,18,106,55,172,210,105,55,214,146,105,55,234,82,105,55,231,18,105,55,204,210,104,55,154,146,104,55,82,82,104,55,242,17,104,55,124,209,103,55,238,144,103,55,74,80,103,55,142,15,103,55,188,206,102,55,211,141,102,55,211,76,102,55,189,11,102,55,144,202,101,55,76,137,101,55,241,71,101,55,128,6,101,55,248,196,100,55,90,131,100,55,165,65,100,55,217,255,99,55,247,189,99,55,255,123,99,55,240,57,99,55,203,247,98,55,143,181,98,55,61,115,98,55,213,48,98,55,86,238,
97,55,193,171,97,55,22,105,97,55,85,38,97,55,126,227,96,55,144,160,96,55,140,93,96,55,115,26,96,55,67,215,95,55,253,147,95,55,162,80,95,55,48,13,95,55,168,201,94,55,11,134,94,55,88,66,94,55,142,254,93,55,175,186,93,55,187,118,93,55,176,50,93,55,144,238,92,55,90,170,92,55,15,102,92,55,174,33,92,55,55,221,91,55,171,152,91,55,9,84,91,55,82,15,91,55,134,202,90,55,163,133,90,55,172,64,90,55,159,251,89,55,125,182,89,55,70,113,89,55,249,43,89,55,151,230,88,55,32,161,88,55,147,91,88,55,242,21,88,55,59,208,
87,55,112,138,87,55,143,68,87,55,153,254,86,55,142,184,86,55,111,114,86,55,58,44,86,55,241,229,85,55,146,159,85,55,31,89,85,55,151,18,85,55,250,203,84,55,73,133,84,55,131,62,84,55,168,247,83,55,184,176,83,55,180,105,83,55,155,34,83,55,110,219,82,55,44,148,82,55,214,76,82,55,107,5,82,55,236,189,81,55,89,118,81,55,177,46,81,55,245,230,80,55,36,159,80,55,64,87,80,55,71,15,80,55,58,199,79,55,24,127,79,55,227,54,79,55,153,238,78,55,60,166,78,55,202,93,78,55,69,21,78,55,171,204,77,55,254,131,77,55,60,59,
77,55,103,242,76,55,126,169,76,55,129,96,76,55,112,23,76,55,76,206,75,55,20,133,75,55,200,59,75,55,105,242,74,55,246,168,74,55,111,95,74,55,213,21,74,55,39,204,73,55,102,130,73,55,145,56,73,55,169,238,72,55,174,164,72,55,159,90,72,55,125,16,72,55,72,198,71,55,255,123,71,55,164,49,71,55,53,231,70,55,179,156,70,55,29,82,70,55,117,7,70,55,186,188,69,55,235,113,69,55,10,39,69,55,22,220,68,55,15,145,68,55,245,69,68,55,200,250,67,55,136,175,67,55,53,100,67,55,208,24,67,55,88,205,66,55,206,129,66,55,48,
54,66,55,128,234,65,55,190,158,65,55,233,82,65,55,1,7,65,55,7,187,64,55,251,110,64,55,220,34,64,55,170,214,63,55,103,138,63,55,17,62,63,55,169,241,62,55,46,165,62,55,162,88,62,55,3,12,62,55,82,191,61,55,143,114,61,55,186,37,61,55,210,216,60,55,217,139,60,55,206,62,60,55,177,241,59,55,130,164,59,55,65,87,59,55,238,9,59,55,138,188,58,55,19,111,58,55,139,33,58,55,242,211,57,55,70,134,57,55,137,56,57,55,187,234,56,55,218,156,56,55,233,78,56,55,229,0,56,55,209,178,55,55,171,100,55,55,115,22,55,55,42,200,
54,55,208,121,54,55,101,43,54,55,232,220,53,55,90,142,53,55,187,63,53,55,11,241,52,55,74,162,52,55,119,83,52,55,148,4,52,55,159,181,51,55,154,102,51,55,131,23,51,55,92,200,50,55,36,121,50,55,219,41,50,55,129,218,49,55,23,139,49,55,155,59,49,55,15,236,48,55,115,156,48,55,197,76,48,55,7,253,47,55,57,173,47,55,90,93,47,55,107,13,47,55,107,189,46,55,90,109,46,55,58,29,46,55,9,205,45,55,199,124,45,55,118,44,45,55,20,220,44,55,162,139,44,55,32,59,44,55,141,234,43,55,235,153,43,55,56,73,43,55,118,248,42,
55,163,167,42,55,193,86,42,55,206,5,42,55,204,180,41,55,186,99,41,55,152,18,41,55,102,193,40,55,37,112,40,55,212,30,40,55,115,205,39,55,2,124,39,55,130,42,39,55,242,216,38,55,83,135,38,55,164,53,38,55,230,227,37,55,25,146,37,55,60,64,37,55,79,238,36,55,84,156,36,55,73,74,36,55,47,248,35,55,5,166,35,55,205,83,35,55,133,1,35,55,46,175,34,55,201,92,34,55,84,10,34,55,208,183,33,55,61,101,33,55,155,18,33,55,235,191,32,55,43,109,32,55,93,26,32,55,128,199,31,55,148,116,31,55,154,33,31,55,144,206,30,55,121,
123,30,55,82,40,30,55,29,213,29,55,218,129,29,55,136,46,29,55,39,219,28,55,184,135,28,55,59,52,28,55,176,224,27,55,22,141,27,55,110,57,27,55,183,229,26,55,243,145,26,55,32,62,26,55,63,234,25,55,80,150,25,55,83,66,25,55,72,238,24,55,47,154,24,55,9,70,24,55,212,241,23,55,145,157,23,55,65,73,23,55,226,244,22,55,118,160,22,55,252,75,22,55,117,247,21,55,224,162,21,55,61,78,21,55,141,249,20,55,207,164,20,55,4,80,20,55,43,251,19,55,69,166,19,55,81,81,19,55,80,252,18,55,66,167,18,55,38,82,18,55,254,252,17,
55,200,167,17,55,132,82,17,55,52,253,16,55,215,167,16,55,108,82,16,55,245,252,15,55,112,167,15,55,223,81,15,55,65,252,14,55,149,166,14,55,221,80,14,55,25,251,13,55,71,165,13,55,105,79,13,55,126,249,12,55,134,163,12,55,130,77,12,55,113,247,11,55,84,161,11,55,42,75,11,55,243,244,10,55,177,158,10,55,97,72,10,55,6,242,9,55,158,155,9,55,42,69,9,55,170,238,8,55,29,152,8,55,133,65,8,55,224,234,7,55,47,148,7,55,114,61,7,55,169,230,6,55,212,143,6,55,243,56,6,55,6,226,5,55,14,139,5,55,9,52,5,55,249,220,4,55,
221,133,4,55,181,46,4,55,130,215,3,55,67,128,3,55,248,40,3,55,162,209,2,55,64,122,2,55,211,34,2,55,90,203,1,55,214,115,1,55,70,28,1,55,171,196,0,55,5,109,0,55,84,21,0,55,47,123,255,54,159,203,254,54,249,27,254,54,61,108,253,54,107,188,252,54,130,12,252,54,132,92,251,54,112,172,250,54,70,252,249,54,6,76,249,54,176,155,248,54,69,235,247,54,196,58,247,54,46,138,246,54,131,217,245,54,194,40,245,54,235,119,244,54,0,199,243,54,0,22,243,54,234,100,242,54,192,179,241,54,129,2,241,54,45,81,240,54,196,159,
239,54,71,238,238,54,181,60,238,54,15,139,237,54,84,217,236,54,133,39,236,54,162,117,235,54,170,195,234,54,158,17,234,54,127,95,233,54,75,173,232,54,4,251,231,54,169,72,231,54,58,150,230,54,183,227,229,54,33,49,229,54,120,126,228,54,187,203,227,54,234,24,227,54,7,102,226,54,16,179,225,54,6,0,225,54,233,76,224,54,185,153,223,54,119,230,222,54,33,51,222,54,185,127,221,54,62,204,220,54,177,24,220,54,17,101,219,54,94,177,218,54,154,253,217,54,195,73,217,54,218,149,216,54,223,225,215,54,209,45,215,54,
178,121,214,54,129,197,213,54,62,17,213,54,234,92,212,54,132,168,211,54,12,244,210,54,131,63,210,54,232,138,209,54,60,214,208,54,127,33,208,54,176,108,207,54,209,183,206,54,224,2,206,54,223,77,205,54,204,152,204,54,169,227,203,54,117,46,203,54,49,121,202,54,220,195,201,54,118,14,201,54,0,89,200,54,122,163,199,54,228,237,198,54,61,56,198,54,134,130,197,54,191,204,196,54,233,22,196,54,2,97,195,54,12,171,194,54,5,245,193,54,240,62,193,54,202,136,192,54,150,210,191,54,82,28,191,54,254,101,190,54,155,
175,189,54,41,249,188,54,169,66,188,54,25,140,187,54,122,213,186,54,204,30,186,54,15,104,185,54,68,177,184,54,106,250,183,54,130,67,183,54,139,140,182,54,134,213,181,54,114,30,181,54,80,103,180,54,33,176,179,54,226,248,178,54,150,65,178,54,61,138,177,54,213,210,176,54,95,27,176,54,220,99,175,54,75,172,174,54,173,244,173,54,1,61,173,54,72,133,172,54,129,205,171,54,174,21,171,54,205,93,170,54,223,165,169,54,228,237,168,54,220,53,168,54,200,125,167,54,166,197,166,54,120,13,166,54,62,85,165,54,246,156,
164,54,163,228,163,54,67,44,163,54,215,115,162,54,94,187,161,54,218,2,161,54,73,74,160,54,172,145,159,54,4,217,158,54,80,32,158,54,144,103,157,54,196,174,156,54,237,245,155,54,10,61,155,54,28,132,154,54,34,203,153,54,30,18,153,54,14,89,152,54,243,159,151,54,205,230,150,54,156,45,150,54,96,116,149,54,25,187,148,54,200,1,148,54,108,72,147,54,5,143,146,54,148,213,145,54,24,28,145,54,147,98,144,54,2,169,143,54,104,239,142,54,196,53,142,54,22,124,141,54,93,194,140,54,155,8,140,54,207,78,139,54,250,148,
138,54,27,219,137,54,50,33,137,54,64,103,136,54,68,173,135,54,63,243,134,54,49,57,134,54,26,127,133,54,250,196,132,54,208,10,132,54,158,80,131,54,99,150,130,54,31,220,129,54,211,33,129,54,126,103,128,54,64,90,127,54,116,229,125,54,151,112,124,54,170,251,122,54,172,134,121,54,158,17,120,54,128,156,118,54,82,39,117,54,20,178,115,54,199,60,114,54,106,199,112,54,254,81,111,54,131,220,109,54,248,102,108,54,95,241,106,54,183,123,105,54,1,6,104,54,60,144,102,54,105,26,101,54,136,164,99,54,154,46,98,54,157,
184,96,54,147,66,95,54,123,204,93,54,86,86,92,54,36,224,90,54,230,105,89,54,154,243,87,54,66,125,86,54,221,6,85,54,108,144,83,54,238,25,82,54,101,163,80,54,208,44,79,54,47,182,77,54,131,63,76,54,203,200,74,54,8,82,73,54,58,219,71,54,98,100,70,54,126,237,68,54,144,118,67,54,151,255,65,54,148,136,64,54,135,17,63,54,112,154,61,54,79,35,60,54,37,172,58,54,241,52,57,54,180,189,55,54,110,70,54,54,30,207,52,54,198,87,51,54,101,224,49,54,252,104,48,54,138,241,46,54,16,122,45,54,141,2,44,54,3,139,42,54,114,
19,41,54,216,155,39,54,55,36,38,54,143,172,36,54,224,52,35,54,42,189,33,54,109,69,32,54,169,205,30,54,223,85,29,54,14,222,27,54,55,102,26,54,91,238,24,54,120,118,23,54,144,254,21,54,162,134,20,54,175,14,19,54,182,150,17,54,185,30,16,54,182,166,14,54,175,46,13,54,163,182,11,54,147,62,10,54,126,198,8,54,102,78,7,54,73,214,5,54,40,94,4,54,4,230,2,54,221,109,1,54,99,235,255,53,7,251,252,53,164,10,250,53,60,26,247,53,206,41,244,53,91,57,241,53,227,72,238,53,103,88,235,53,231,103,232,53,99,119,229,53,219,
134,226,53,80,150,223,53,194,165,220,53,49,181,217,53,158,196,214,53,9,212,211,53,115,227,208,53,219,242,205,53,66,2,203,53,168,17,200,53,14,33,197,53,116,48,194,53,218,63,191,53,64,79,188,53,168,94,185,53,16,110,182,53,122,125,179,53,230,140,176,53,84,156,173,53,196,171,170,53,55,187,167,53,173,202,164,53,38,218,161,53,163,233,158,53,36,249,155,53,169,8,153,53,51,24,150,53,194,39,147,53,86,55,144,53,239,70,141,53,142,86,138,53,52,102,135,53,224,117,132,53,146,133,129,53,153,42,125,53,27,74,119,53,
173,105,113,53,79,137,107,53,2,169,101,53,197,200,95,53,155,232,89,53,132,8,84,53,128,40,78,53,143,72,72,53,179,104,66,53,236,136,60,53,59,169,54,53,160,201,48,53,28,234,42,53,175,10,37,53,91,43,31,53,32,76,25,53,254,108,19,53,246,141,13,53,8,175,7,53,54,208,1,53,1,227,247,52,206,37,236,52,213,104,224,52,24,172,212,52,152,239,200,52,86,51,189,52,83,119,177,52,145,187,165,52,17,0,154,52,212,68,142,52,219,137,130,52,78,158,109,52,117,41,86,52,44,181,62,52,118,65,39,52,84,206,15,52,149,183,240,51,181,
211,193,51,15,241,146,51,76,31,72,51,1,190,212,50,82,20,74,49,185,51,162,178,90,210,46,179,21,68,134,179,162,29,181,179,205,245,227,179,74,102,9,180,247,208,32,180,237,58,56,180,41,164,79,180,167,12,103,180,103,116,126,180,178,237,138,180,207,160,150,180,137,83,162,180,221,5,174,180,205,183,185,180,85,105,197,180,116,26,209,180,43,203,220,180,118,123,232,180,86,43,244,180,200,218,255,180,230,196,5,181,48,156,11,181,65,115,17,181,26,74,23,181,185,32,29,181,29,247,34,181,71,205,40,181,53,163,46,181,
231,120,52,181,92,78,58,181,148,35,64,181,141,248,69,181,72,205,75,181,196,161,81,181,0,118,87,181,252,73,93,181,182,29,99,181,47,241,104,181,101,196,110,181,89,151,116,181,9,106,122,181,58,30,128,181,78,7,131,181,63,240,133,181,12,217,136,181,183,193,139,181,62,170,142,181,161,146,145,181,224,122,148,181,250,98,151,181,239,74,154,181,191,50,157,181,106,26,160,181,239,1,163,181,78,233,165,181,135,208,168,181,153,183,171,181,132,158,174,181,72,133,177,181,228,107,180,181,88,82,183,181,164,56,186,181,
199,30,189,181,194,4,192,181,148,234,194,181,60,208,197,181,186,181,200,181,15,155,203,181,57,128,206,181,56,101,209,181,13,74,212,181,182,46,215,181,52,19,218,181,134,247,220,181,172,219,223,181,165,191,226,181,114,163,229,181,17,135,232,181,131,106,235,181,200,77,238,181,222,48,241,181,198,19,244,181,128,246,246,181,11,217,249,181,102,187,252,181,146,157,255,181,199,63,1,182,173,176,2,182,123,33,4,182,49,146,5,182,206,2,7,182,82,115,8,182,190,227,9,182,16,84,11,182,74,196,12,182,106,52,14,182,113,
164,15,182,94,20,17,182,50,132,18,182,236,243,19,182,140,99,21,182,17,211,22,182,124,66,24,182,205,177,25,182,3,33,27,182,31,144,28,182,32,255,29,182,5,110,31,182,207,220,32,182,126,75,34,182,18,186,35,182,137,40,37,182,229,150,38,182,37,5,40,182,73,115,41,182,81,225,42,182,60,79,44,182,11,189,45,182,189,42,47,182,82,152,48,182,202,5,50,182,37,115,51,182,99,224,52,182,131,77,54,182,134,186,55,182,107,39,57,182,50,148,58,182,219,0,60,182,101,109,61,182,210,217,62,182,32,70,64,182,79,178,65,182,95,
30,67,182,81,138,68,182,36,246,69,182,215,97,71,182,107,205,72,182,223,56,74,182,52,164,75,182,104,15,77,182,125,122,78,182,114,229,79,182,71,80,81,182,251,186,82,182,142,37,84,182,1,144,85,182,83,250,86,182,132,100,88,182,147,206,89,182,130,56,91,182,79,162,92,182,250,11,94,182,132,117,95,182,236,222,96,182,50,72,98,182,85,177,99,182,86,26,101,182,53,131,102,182,241,235,103,182,139,84,105,182,1,189,106,182,85,37,108,182,133,141,109,182,146,245,110,182,123,93,112,182,65,197,113,182,227,44,115,182,
97,148,116,182,186,251,117,182,240,98,119,182,1,202,120,182,238,48,122,182,182,151,123,182,89,254,124,182,216,100,126,182,49,203,127,182,178,152,128,182,186,75,129,182,174,254,129,182,144,177,130,182,95,100,131,182,26,23,132,182,195,201,132,182,89,124,133,182,219,46,134,182,74,225,134,182],"i8",4,y.a+1105920);
Q([166,147,135,182,238,69,136,182,35,248,136,182,68,170,137,182,82,92,138,182,76,14,139,182,50,192,139,182,4,114,140,182,195,35,141,182,109,213,141,182,3,135,142,182,133,56,143,182,243,233,143,182,77,155,144,182,146,76,145,182,195,253,145,182,223,174,146,182,231,95,147,182,218,16,148,182,185,193,148,182,130,114,149,182,55,35,150,182,215,211,150,182,98,132,151,182,216,52,152,182,56,229,152,182,132,149,153,182,186,69,154,182,219,245,154,182,230,165,155,182,220,85,156,182,188,5,157,182,135,181,157,182,
60,101,158,182,219,20,159,182,100,196,159,182,216,115,160,182,53,35,161,182,125,210,161,182,174,129,162,182,201,48,163,182,205,223,163,182,188,142,164,182,148,61,165,182,85,236,165,182,0,155,166,182,148,73,167,182,18,248,167,182,121,166,168,182,201,84,169,182,2,3,170,182,36,177,170,182,47,95,171,182,35,13,172,182,0,187,172,182,197,104,173,182,115,22,174,182,10,196,174,182,137,113,175,182,241,30,176,182,65,204,176,182,121,121,177,182,154,38,178,182,163,211,178,182,148,128,179,182,109,45,180,182,46,
218,180,182,215,134,181,182,104,51,182,182,224,223,182,182,64,140,183,182,136,56,184,182,184,228,184,182,207,144,185,182,205,60,186,182,179,232,186,182,127,148,187,182,52,64,188,182,207,235,188,182,81,151,189,182,187,66,190,182,11,238,190,182,66,153,191,182,96,68,192,182,101,239,192,182,80,154,193,182,34,69,194,182,219,239,194,182,122,154,195,182,255,68,196,182,107,239,196,182,189,153,197,182,245,67,198,182,19,238,198,182,23,152,199,182,2,66,200,182,210,235,200,182,136,149,201,182,36,63,202,182,165,
232,202,182,12,146,203,182,89,59,204,182,139,228,204,182,163,141,205,182,160,54,206,182,130,223,206,182,74,136,207,182,247,48,208,182,137,217,208,182,0,130,209,182,91,42,210,182,156,210,210,182,194,122,211,182,204,34,212,182,187,202,212,182,143,114,213,182,71,26,214,182,228,193,214,182,101,105,215,182,203,16,216,182,21,184,216,182,67,95,217,182,85,6,218,182,75,173,218,182,38,84,219,182,228,250,219,182,134,161,220,182,12,72,221,182,118,238,221,182,196,148,222,182,245,58,223,182,10,225,223,182,2,135,
224,182,222,44,225,182,157,210,225,182,63,120,226,182,196,29,227,182,45,195,227,182,121,104,228,182,168,13,229,182,186,178,229,182,175,87,230,182,134,252,230,182,65,161,231,182,222,69,232,182,94,234,232,182,192,142,233,182,5,51,234,182,44,215,234,182,54,123,235,182,34,31,236,182,240,194,236,182,160,102,237,182,51,10,238,182,168,173,238,182,254,80,239,182,55,244,239,182,81,151,240,182,78,58,241,182,44,221,241,182,235,127,242,182,140,34,243,182,15,197,243,182,115,103,244,182,185,9,245,182,224,171,245,
182,232,77,246,182,210,239,246,182,157,145,247,182,73,51,248,182,213,212,248,182,67,118,249,182,146,23,250,182,193,184,250,182,210,89,251,182,195,250,251,182,148,155,252,182,71,60,253,182,217,220,253,182,76,125,254,182,160,29,255,182,212,189,255,182,244,46,0,183,238,126,0,183,217,206,0,183,179,30,1,183,125,110,1,183,55,190,1,183,226,13,2,183,124,93,2,183,6,173,2,183,128,252,2,183,233,75,3,183,67,155,3,183,140,234,3,183,197,57,4,183,238,136,4,183,6,216,4,183,14,39,5,183,6,118,5,183,237,196,5,183,195,
19,6,183,137,98,6,183,63,177,6,183,228,255,6,183,121,78,7,183,252,156,7,183,112,235,7,183,210,57,8,183,36,136,8,183,101,214,8,183,149,36,9,183,181,114,9,183,196,192,9,183,193,14,10,183,174,92,10,183,138,170,10,183,85,248,10,183,15,70,11,183,184,147,11,183,80,225,11,183,215,46,12,183,77,124,12,183,178,201,12,183,5,23,13,183,72,100,13,183,121,177,13,183,152,254,13,183,167,75,14,183,164,152,14,183,144,229,14,183,106,50,15,183,51,127,15,183,235,203,15,183,145,24,16,183,38,101,16,183,169,177,16,183,26,
254,16,183,122,74,17,183,201,150,17,183,5,227,17,183,48,47,18,183,73,123,18,183,81,199,18,183,71,19,19,183,43,95,19,183,253,170,19,183,189,246,19,183,107,66,20,183,8,142,20,183,146,217,20,183,11,37,21,183,113,112,21,183,198,187,21,183,8,7,22,183,57,82,22,183,87,157,22,183,99,232,22,183,93,51,23,183,68,126,23,183,26,201,23,183,221,19,24,183,142,94,24,183,44,169,24,183,184,243,24,183,50,62,25,183,154,136,25,183,238,210,25,183,49,29,26,183,97,103,26,183,126,177,26,183,137,251,26,183,129,69,27,183,103,
143,27,183,58,217,27,183,250,34,28,183,168,108,28,183,66,182,28,183,203,255,28,183,64,73,29,183,162,146,29,183,242,219,29,183,47,37,30,183,89,110,30,183,111,183,30,183,115,0,31,183,100,73,31,183,66,146,31,183,13,219,31,183,197,35,32,183,106,108,32,183,251,180,32,183,122,253,32,183,229,69,33,183,61,142,33,183,130,214,33,183,179,30,34,183,209,102,34,183,220,174,34,183,212,246,34,183,184,62,35,183,137,134,35,183,70,206,35,183,240,21,36,183,134,93,36,183,9,165,36,183,120,236,36,183,212,51,37,183,28,123,
37,183,80,194,37,183,113,9,38,183,126,80,38,183,119,151,38,183,93,222,38,183,47,37,39,183,237,107,39,183,151,178,39,183,45,249,39,183,176,63,40,183,30,134,40,183,121,204,40,183,192,18,41,183,242,88,41,183,17,159,41,183,28,229,41,183,18,43,42,183,245,112,42,183,195,182,42,183,125,252,42,183,35,66,43,183,181,135,43,183,51,205,43,183,156,18,44,183,241,87,44,183,50,157,44,183,94,226,44,183,118,39,45,183,122,108,45,183,105,177,45,183,68,246,45,183,10,59,46,183,188,127,46,183,89,196,46,183,226,8,47,183,
86,77,47,183,182,145,47,183,0,214,47,183,55,26,48,183,88,94,48,183,101,162,48,183,93,230,48,183,65,42,49,183,15,110,49,183,201,177,49,183,110,245,49,183,254,56,50,183,121,124,50,183,224,191,50,183,49,3,51,183,109,70,51,183,149,137,51,183,167,204,51,183,164,15,52,183,141,82,52,183,96,149,52,183,30,216,52,183,199,26,53,183,91,93,53,183,217,159,53,183,66,226,53,183,150,36,54,183,213,102,54,183,255,168,54,183,19,235,54,183,18,45,55,183,251,110,55,183,207,176,55,183,142,242,55,183,55,52,56,183,203,117,
56,183,73,183,56,183,178,248,56,183,5,58,57,183,66,123,57,183,106,188,57,183,124,253,57,183,121,62,58,183,96,127,58,183,49,192,58,183,237,0,59,183,147,65,59,183,35,130,59,183,157,194,59,183,2,3,60,183,80,67,60,183,137,131,60,183,172,195,60,183,185,3,61,183,176,67,61,183,145,131,61,183,92,195,61,183,17,3,62,183,176,66,62,183,57,130,62,183,172,193,62,183,8,1,63,183,79,64,63,183,127,127,63,183,154,190,63,183,158,253,63,183,139,60,64,183,99,123,64,183,36,186,64,183,207,248,64,183,100,55,65,183,226,117,
65,183,74,180,65,183,155,242,65,183,215,48,66,183,251,110,66,183,9,173,66,183,1,235,66,183,226,40,67,183,173,102,67,183,97,164,67,183,255,225,67,183,133,31,68,183,246,92,68,183,79,154,68,183,146,215,68,183,190,20,69,183,212,81,69,183,211,142,69,183,187,203,69,183,140,8,70,183,70,69,70,183,234,129,70,183,119,190,70,183,236,250,70,183,75,55,71,183,147,115,71,183,196,175,71,183,222,235,71,183,225,39,72,183,206,99,72,183,163,159,72,183,96,219,72,183,7,23,73,183,151,82,73,183,16,142,73,183,113,201,73,
183,187,4,74,183,239,63,74,183,10,123,74,183,15,182,74,183,252,240,74,183,211,43,75,183,145,102,75,183,57,161,75,183,201,219,75,183,66,22,76,183,163,80,76,183,237,138,76,183,31,197,76,183,58,255,76,183,62,57,77,183,42,115,77,183,254,172,77,183,187,230,77,183,97,32,78,183,239,89,78,183,101,147,78,183,195,204,78,183,10,6,79,183,58,63,79,183,81,120,79,183,81,177,79,183,57,234,79,183,9,35,80,183,194,91,80,183,99,148,80,183,236,204,80,183,93,5,81,183,182,61,81,183,247,117,81,183,33,174,81,183,50,230,81,
183,44,30,82,183,13,86,82,183,215,141,82,183,137,197,82,183,34,253,82,183,164,52,83,183,13,108,83,183,94,163,83,183,152,218,83,183,185,17,84,183,194,72,84,183,178,127,84,183,139,182,84,183,75,237,84,183,244,35,85,183,131,90,85,183,251,144,85,183,90,199,85,183,161,253,85,183,208,51,86,183,230,105,86,183,228,159,86,183,202,213,86,183,151,11,87,183,76,65,87,183,232,118,87,183,108,172,87,183,215,225,87,183,42,23,88,183,100,76,88,183,134,129,88,183,143,182,88,183,127,235,88,183,87,32,89,183,23,85,89,183,
189,137,89,183,75,190,89,183,193,242,89,183,29,39,90,183,97,91,90,183,140,143,90,183,159,195,90,183,152,247,90,183,121,43,91,183,65,95,91,183,240,146,91,183,134,198,91,183,4,250,91,183,104,45,92,183,180,96,92,183,230,147,92,183,0,199,92,183,1,250,92,183,233,44,93,183,183,95,93,183,109,146,93,183,10,197,93,183,141,247,93,183,248,41,94,183,73,92,94,183,130,142,94,183,161,192,94,183,167,242,94,183,148,36,95,183,103,86,95,183,34,136,95,183,195,185,95,183,75,235,95,183,186,28,96,183,15,78,96,183,76,127,
96,183,110,176,96,183,120,225,96,183,104,18,97,183,63,67,97,183,252,115,97,183,160,164,97,183,43,213,97,183,156,5,98,183,244,53,98,183,50,102,98,183,87,150,98,183,98,198,98,183,84,246,98,183,44,38,99,183,235,85,99,183,144,133,99,183,27,181,99,183,141,228,99,183,229,19,100,183,36,67,100,183,73,114,100,183,84,161,100,183,69,208,100,183,29,255,100,183,219,45,101,183,128,92,101,183,10,139,101,183,123,185,101,183,210,231,101,183,15,22,102,183,51,68,102,183,60,114,102,183,44,160,102,183,2,206,102,183,190,
251,102,183,96,41,103,183,232,86,103,183,86,132,103,183,170,177,103,183,229,222,103,183,5,12,104,183,11,57,104,183,247,101,104,183,202,146,104,183,130,191,104,183,32,236,104,183,164,24,105,183,14,69,105,183,93,113,105,183,147,157,105,183,175,201,105,183,176,245,105,183,151,33,106,183,100,77,106,183,23,121,106,183,175,164,106,183,46,208,106,183,146,251,106,183,219,38,107,183,11,82,107,183,32,125,107,183,27,168,107,183,252,210,107,183,194,253,107,183,110,40,108,183,255,82,108,183,118,125,108,183,211,
167,108,183,21,210,108,183,61,252,108,183,74,38,109,183,61,80,109,183,22,122,109,183,212,163,109,183,119,205,109,183,0,247,109,183,110,32,110,183,194,73,110,183,251,114,110,183,26,156,110,183,30,197,110,183,8,238,110,183,215,22,111,183,139,63,111,183,36,104,111,183,163,144,111,183,8,185,111,183,81,225,111,183,128,9,112,183,148,49,112,183,142,89,112,183,108,129,112,183,48,169,112,183,217,208,112,183,104,248,112,183,219,31,113,183,52,71,113,183,114,110,113,183,149,149,113,183,157,188,113,183,138,227,
113,183,93,10,114,183,20,49,114,183,177,87,114,183,51,126,114,183,154,164,114,183,229,202,114,183,22,241,114,183,44,23,115,183,39,61,115,183,7,99,115,183,204,136,115,183,118,174,115,183,5,212,115,183,121,249,115,183,209,30,116,183,15,68,116,183,50,105,116,183,57,142,116,183,38,179,116,183,247,215,116,183,173,252,116,183,72,33,117,183,200,69,117,183,44,106,117,183,118,142,117,183,164,178,117,183,183,214,117,183,175,250,117,183,140,30,118,183,77,66,118,183,243,101,118,183,126,137,118,183,237,172,118,
183,66,208,118,183,122,243,118,183,152,22,119,183,154,57,119,183,129,92,119,183,77,127,119,183,253,161,119,183,146,196,119,183,11,231,119,183,106,9,120,183,172,43,120,183,211,77,120,183,223,111,120,183,208,145,120,183,165,179,120,183,94,213,120,183,252,246,120,183,126,24,121,183,229,57,121,183,49,91,121,183,97,124,121,183,117,157,121,183,110,190,121,183,76,223,121,183,13,0,122,183,180,32,122,183,62,65,122,183,173,97,122,183,1,130,122,183,56,162,122,183,85,194,122,183,85,226,122,183,58,2,123,183,3,
34,123,183,177,65,123,183,67,97,123,183,185,128,123,183,19,160,123,183,82,191,123,183,117,222,123,183,125,253,123,183,104,28,124,183,56,59,124,183,236,89,124,183,133,120,124,183,1,151,124,183,98,181,124,183,167,211,124,183,208,241,124,183,221,15,125,183,207,45,125,183,165,75,125,183,95,105,125,183,253,134,125,183,127,164,125,183,229,193,125,183,47,223,125,183,94,252,125,183,113,25,126,183,103,54,126,183,66,83,126,183,1,112,126,183,164,140,126,183,43,169,126,183,150,197,126,183,229,225,126,183,24,
254,126,183,47,26,127,183,42,54,127,183,9,82,127,183,205,109,127,183,116,137,127,183,255,164,127,183,110,192,127,183,193,219,127,183,248,246,127,183,9,9,128,183,137,22,128,183,250,35,128,183,94,49,128,183,179,62,128,183,250,75,128,183,51,89,128,183,95,102,128,183,124,115,128,183,139,128,128,183,140,141,128,183,127,154,128,183,99,167,128,183,58,180,128,183,3,193,128,183,189,205,128,183,106,218,128,183,8,231,128,183,153,243,128,183,27,0,129,183,143,12,129,183,245,24,129,183,77,37,129,183,150,49,129,
183,210,61,129,183,0,74,129,183,31,86,129,183,48,98,129,183,51,110,129,183,40,122,129,183,15,134,129,183,232,145,129,183,178,157,129,183,111,169,129,183,29,181,129,183,189,192,129,183,79,204,129,183,211,215,129,183,72,227,129,183,176,238,129,183,9,250,129,183,84,5,130,183,145,16,130,183,192,27,130,183,224,38,130,183,243,49,130,183,247,60,130,183,237,71,130,183,213,82,130,183,174,93,130,183,121,104,130,183,55,115,130,183,230,125,130,183,134,136,130,183,25,147,130,183,157,157,130,183,19,168,130,183,
123,178,130,183,213,188,130,183,32,199,130,183,93,209,130,183,140,219,130,183,173,229,130,183,191,239,130,183,195,249,130,183,185,3,131,183,161,13,131,183,122,23,131,183,70,33,131,183,2,43,131,183,177,52,131,183,82,62,131,183,228,71,131,183,104,81,131,183,221,90,131,183,69,100,131,183,158,109,131,183,232,118,131,183,37,128,131,183,83,137,131,183,115,146,131,183,133,155,131,183,136,164,131,183,125,173,131,183,100,182,131,183,61,191,131,183,7,200,131,183,195,208,131,183,112,217,131,183,16,226,131,183,
161,234,131,183,35,243,131,183,152,251,131,183,254,3,132,183,86,12,132,183,159,20,132,183,218,28,132,183,7,37,132,183,37,45,132,183,54,53,132,183,56,61,132,183,43,69,132,183,16,77,132,183,231,84,132,183,176,92,132,183,106,100,132,183,22,108,132,183,179,115,132,183,67,123,132,183,196,130,132,183,54,138,132,183,154,145,132,183,240,152,132,183,56,160,132,183,113,167,132,183,156,174,132,183,184,181,132,183,198,188,132,183,198,195,132,183,183,202,132,183,155,209,132,183,111,216,132,183,54,223,132,183,
238,229,132,183,151,236,132,183,51,243,132,183,191,249,132,183,62,0,133,183,174,6,133,183,16,13,133,183,99,19,133,183,169,25,133,183,223,31,133,183,8,38,133,183,34,44,133,183,45,50,133,183,43,56,133,183,25,62,133,183,250,67,133,183,204,73,133,183,144,79,133,183,69,85,133,183,236,90,133,183,133,96,133,183,15,102,133,183,139,107,133,183,248,112,133,183,88,118,133,183,168,123,133,183,235,128,133,183,31,134,133,183,68,139,133,183,91,144,133,183,100,149,133,183,95,154,133,183,75,159,133,183,40,164,133,
183,248,168,133,183,184,173,133,183,107,178,133,183,15,183,133,183,165,187,133,183,44,192,133,183,165,196,133,183,16,201,133,183,108,205,133,183,186,209,133,183,249,213,133,183,42,218,133,183,77,222,133,183,97,226,133,183,103,230,133,183,94,234,133,183,71,238,133,183,34,242,133,183,238,245,133,183,172,249,133,183,91,253,133,183,252,0,134,183,143,4,134,183,19,8,134,183,137,11,134,183,241,14,134,183,74,18,134,183,149,21,134,183,209,24,134,183,255,27,134,183,31,31,134,183,48,34,134,183,51,37,134,183,
39,40,134,183,13,43,134,183,229,45,134,183,174,48,134,183,105,51,134,183,22,54,134,183,180,56,134,183,67,59,134,183,197,61,134,183,56,64,134,183,156,66,134,183,242,68,134,183,58,71,134,183,116,73,134,183,159,75,134,183,187,77,134,183,202,79,134,183,202,81,134,183,187,83,134,183,158,85,134,183,115,87,134,183,58,89,134,183,242,90,134,183,155,92,134,183,54,94,134,183,195,95,134,183,66,97,134,183,178,98,134,183,20,100,134,183,103,101,134,183,172,102,134,183,227,103,134,183,11,105,134,183,37,106,134,183,
49,107,134,183,46,108,134,183,29,109,134,183,254,109,134,183,208,110,134,183,148,111,134,183,73,112,134,183,240,112,134,183,137,113,134,183,19,114,134,183,143,114,134,183,253,114,134,183,92,115,134,183,173,115,134,183,240,115,134,183,36,116,134,183,74,116,134,183,98,116,134,183,107,116,134,183,102,116,134,183,83,116,134,183,49,116,134,183,1,116,134,183,194,115,134,183,118,115,134,183,27,115,134,183,177,114,134,183,58,114,134,183,180,113,134,183,31,113,134,183,125,112,134,183,204,111,134,183,12,111,
134,183,63,110,134,183,99,109,134,183,121,108,134,183,128,107,134,183,121,106,134,183,100,105,134,183,65,104,134,183,15,103,134,183,207,101,134,183,129,100,134,183,36,99,134,183,185,97,134,183,64,96,134,183,184,94,134,183,35,93,134,183,127,91,134,183,204,89,134,183,12,88,134,183,61,86,134,183,96,84,134,183,116,82,134,183,122,80,134,183,114,78,134,183,92,76,134,183,56,74,134,183,5,72,134,183,196,69,134,183,117,67,134,183,23,65,134,183,171,62,134,183,49,60,134,183,169,57,134,183,19,55,134,183,110,52,
134,183,187,49,134,183,250,46,134,183,42,44,134,183,77,41,134,183,97,38,134,183,103,35,134,183,94,32,134,183,72,29,134,183,35,26,134,183,240,22,134,183,175,19,134,183,96,16,134,183,2,13,134,183,150,9,134,183,28,6,134,183,148,2,134,183,254,254,133,183,89,251,133,183,166,247,133,183,230,243,133,183,22,240,133,183,57,236,133,183,78,232,133,183,84,228,133,183,76,224,133,183,55,220,133,183,18,216,133,183,224,211,133,183,160,207,133,183,81,203,133,183,245,198,133,183,138,194,133,183,17,190,133,183,138,
185,133,183,244,180,133,183,81,176,133,183,160,171,133,183,224,166,133,183,18,162,133,183,54,157,133,183,77,152,133,183,84,147,133,183,78,142,133,183,58,137,133,183,24,132,133,183,231,126,133,183,169,121,133,183,92,116,133,183,1,111,133,183,153,105,133,183,34,100,133,183,157,94,133,183,10,89,133,183,105,83,133,183,186,77,133,183,253,71,133,183,49,66,133,183,88,60,133,183,113,54,133,183,124,48,133,183,120,42,133,183,103,36,133,183,71,30,133,183,26,24,133,183,222,17,133,183,149,11,133,183,62,5,133,
183,216,254,132,183,101,248,132,183,227,241,132,183,84,235,132,183,182,228,132,183,11,222,132,183,81,215,132,183,138,208,132,183,180,201,132,183,209,194,132,183,224,187,132,183,224,180,132,183,211,173,132,183,184,166,132,183,143,159,132,183,88,152,132,183,19,145,132,183,192,137,132,183,95,130,132,183,240,122,132,183,116,115,132,183,233,107,132,183,81,100,132,183,170,92,132,183,246,84,132,183,52,77,132,183,100,69,132,183,134,61,132,183,154,53,132,183,160,45,132,183,152,37,132,183,131,29,132,183,96,
21,132,183,46,13,132,183,239,4,132,183,163,252,131,183,72,244,131,183,223,235,131,183,105,227,131,183,229,218,131,183,83,210,131,183,179,201,131,183,5,193,131,183,74,184,131,183,128,175,131,183,169,166,131,183,197,157,131,183,210,148,131,183,210,139,131,183,195,130,131,183,167,121,131,183,126,112,131,183,70,103,131,183,1,94,131,183,174,84,131,183,77,75,131,183,223,65,131,183,99,56,131,183,217,46,131,183,65,37,131,183,156,27,131,183,233,17,131,183,40,8,131,183,90,254,130,183,126,244,130,183,148,234,
130,183,156,224,130,183,151,214,130,183,132,204,130,183,100,194,130,183,54,184,130,183,250,173,130,183,176,163,130,183,89,153,130,183,245,142,130,183,130,132,130,183,2,122,130,183,117,111,130,183,217,100,130,183,49,90,130,183,122,79,130,183,182,68,130,183,229,57,130,183,5,47,130,183,25,36,130,183,30,25,130,183,22,14,130,183,1,3,130,183,222,247,129,183,173,236,129,183,111,225,129,183,36,214,129,183,203,202,129,183,100,191,129,183,240,179,129,183,110,168,129,183,223,156,129,183,66,145,129,183,152,133,
129,183,224,121,129,183,27,110,129,183,73,98,129,183,105,86,129,183,123,74,129,183,128,62,129,183,120,50,129,183,98,38,129,183,62,26,129,183,14,14,129,183,208,1,129,183,132,245,128,183,43,233,128,183,197,220,128,183,81,208,128,183,208,195,128,183,65,183,128,183,166,170,128,183,252,157,128,183,70,145,128,183,130,132,128,183,177,119,128,183,210,106,128,183,230,93,128,183,237,80,128,183,230,67,128,183,210,54,128,183,177,41,128,183,130,28,128,183,71,15,128,183,254,1,128,183,78,233,127,183,135,206,127,
183,165,179,127,183,169,152,127,183,146,125,127,183,97,98,127,183,21,71,127,183,175,43,127,183,47,16,127,183,148,244,126,183,222,216,126,183,14,189,126,183,36,161,126,183,32,133,126,183,1,105,126,183,199,76,126,183,116,48,126,183,6,20,126,183,126,247,125,183,219,218,125,183,30,190,125,183,71,161,125,183,86,132,125,183,75,103,125,183,37,74,125,183,229,44,125,183,139,15,125,183,23,242,124,183,137,212,124,183,224,182,124,183,30,153,124,183,65,123,124,183,75,93,124,183,58,63,124,183,15,33,124,183,202,
2,124,183,107,228,123,183,242,197,123,183,95,167,123,183,179,136,123,183,236,105,123,183,11,75,123,183,16,44,123,183,252,12,123,183,205,237,122,183,133,206,122,183,35,175,122,183,167,143,122,183,17,112,122,183,97,80,122,183,151,48,122,183,180,16,122,183,183,240,121,183,160,208,121,183,112,176,121,183,37,144,121,183,194,111,121,183,68,79,121,183,173,46,121,183,252,13,121,183,49,237,120,183,77,204,120,183,79,171,120,183,55,138,120,183,6,105,120,183,188,71,120,183,88,38,120,183,218,4,120,183,67,227,
119,183,146,193,119,183,200,159,119,183,229,125,119,183,232,91,119,183,210,57,119,183,162,23,119,183,89,245,118,183,246,210,118,183,122,176,118,183,229,141,118,183,54,107,118,183,111,72,118,183,141,37,118,183,147,2,118,183,127,223,117,183,83,188,117,183,13,153,117,183,173,117,117,183,53,82,117,183,163,46,117,183,248,10,117,183,53,231,116,183,88,195,116,183,98,159,116,183,82,123,116,183,42,87,116,183,233,50,116,183,143,14,116,183,27,234,115,183,143,197,115,183,234,160,115,183,44,124,115,183,85,87,
115,183,101,50,115,183,92,13,115,183,58,232,114,183,0,195,114,183,172,157,114,183,64,120,114,183,187,82,114,183,29,45,114,183,102,7,114,183,151,225,113,183,175,187,113,183,174,149,113,183,149,111,113,183,99,73,113,183,24,35,113,183,180,252,112,183,56,214,112,183,164,175,112,183,246,136,112,183,49,98,112,183,82,59,112,183,91,20,112,183,76,237,111,183,36,198,111,183,228,158,111,183,139,119,111,183,26,80,111,183,144,40,111,183,239,0,111,183,52,217,110,183,97,177,110,183,118,137,110,183,115,97,110,183,
88,57,110,183,36,17,110,183,215,232,109,183,115,192,109,183,247,151,109,183,98,111,109,183,181,70,109,183,240,29,109,183,18,245,108,183,29,204,108,183,16,163,108,183,234,121,108,183,172,80,108,183,87,39,108,183,233,253,107,183,99,212,107,183,198,170,107,183,16,129,107,183,67,87,107,183,93,45,107,183,96,3,107,183,75,217,106,183,30,175,106,183,217,132,106,183,124,90,106,183,8,48,106,183,123,5,106,183,215,218,105,183,27,176,105,183,72,133,105,183,93,90,105,183,90,47,105,183,63,4,105,183,13,217,104,183,
195,173,104,183,98,130,104,183,233,86,104,183,89,43,104,183,177,255,103,183,241,211,103,183,26,168,103,183,44,124,103,183,38,80,103,183,8,36,103,183,212,247,102,183,136,203,102,183,36,159,102,183,169,114,102,183,23,70,102,183,110,25,102,183,173,236,101,183,213,191,101,183,230,146,101,183,223,101,101,183,194,56,101,183,141,11,101,183,65,222,100,183,222,176,100,183,100,131,100,183,210,85,100,183,42,40,100,183,107,250,99,183,148,204,99,183,167,158,99,183,163,112,99,183,135,66,99,183,85,20,99,183,12,
230,98,183,172,183,98,183,53,137,98,183,167,90,98,183,2,44,98,183,71,253,97,183,117,206,97,183,140,159,97,183,140,112,97,183,118,65,97,183,73,18,97,183,5,227,96,183,171,179,96,183,58,132,96,183,178,84,96,183,20,37,96,183,95,245,95,183,148,197,95,183,178,149,95,183,185,101,95,183,171,53,95,183,133,5,95,183,74,213,94,183,248,164,94,183,143,116,94,183,17,68,94,183,123,19,94,183,208,226,93,183,14,178,93,183,54,129,93,183,72,80,93,183,68,31,93,183,41,238,92,183,248,188,92,183,177,139,92,183,84,90,92,183,
225,40,92,183,87,247,91,183,184,197,91,183,3,148,91,183,55,98,91,183,86,48,91,183,95,254,90,183,81,204,90,183,46,154,90,183,245,103,90,183,166,53,90,183,65,3,90,183,198,208,89,183,54,158,89,183,144,107,89,183,212,56,89,183,2,6,89,183,26,211,88,183,29,160,88,183,10,109,88,183,226,57,88,183,164,6,88,183,80,211,87,183,231,159,87,183,104,108,87,183,212,56,87,183,42,5,87,183,107,209,86,183,150,157,86,183,172,105,86,183,173,53,86,183,152,1,86,183,110,205,85,183,46,153,85,183,217,100,85,183,111,48,85,183,
240,251,84,183,91,199,84,183,177,146,84,183,242,93,84,183,30,41,84,183,53,244,83,183,54,191,83,183,35,138,83,183,250,84,83,183,189,31,83,183,106,234,82,183,2,181,82,183,134,127,82,183,244,73,82,183,78,20,82,183,146,222,81,183,194,168,81,183,221,114,81,183,227,60,81,183,213,6,81,183,177,208,80,183,121,154,80,183,45,100,80,183,203,45,80,183,85,247,79,183,202,192,79,183,43,138,79,183,118,83,79,183,174,28,79,183,209,229,78,183,223,174,78,183,217,119,78,183,190,64,78,183,143,9,78,183,76,210,77,183,244,
154,77,183,136,99,77,183,7,44,77,183,114,244,76,183,201,188,76,183,12,133,76,183,58,77,76,183,84,21,76,183,90,221,75,183,76,165,75,183,42,109,75,183,243,52,75,183,169,252,74,183,74,196,74,183,215,139,74,183,81,83,74,183,182,26,74,183,7,226,73,183,69,169,73,183,111,112,73,183,132,55,73,183,134,254,72,183,116,197,72,183,78,140,72,183,21,83,72,183,200,25,72,183,103,224,71,183,242,166,71,183,106,109,71,183,206,51,71,183,30,250,70,183,91,192,70,183,132,134,70,183,154,76,70,183,156,18,70,183,139,216,69,
183,102,158,69,183,46,100,69,183,226,41,69,183,131,239,68,183,17,181,68,183,139,122,68,183,242,63,68,183,70,5,68,183,134,202,67,183,180,143,67,183,206,84,67,183,213,25,67,183,200,222,66,183,169,163,66,183,119,104,66,183,49,45,66,183,217,241,65,183,109,182,65,183,239,122,65,183,93,63,65,183,185,3,65,183,2,200,64,183,55,140,64,183,90,80,64,183,107,20,64,183,104,216,63,183,83,156,63,183,42,96,63,183,240,35,63,183,162,231,62,183,66,171,62,183,207,110,62,183,74,50,62,183,178,245,61,183,7,185,61,183,74,
124,61,183,123,63,61,183,153,2,61,183,165,197,60,183,158,136,60,183,132,75,60,183,89,14,60,183,27,209,59,183,203,147,59,183,104,86,59,183,244,24,59,183,109,219,58,183,212,157,58,183,40,96,58,183,107,34,58,183,155,228,57,183,186,166,57,183,198,104,57,183,193,42,57,183,169,236,56,183,127,174,56,183,68,112,56,183,246,49,56,183,151,243,55,183,38,181,55,183,163,118,55,183,14,56,55,183,103,249,54,183,175,186,54,183,229,123,54,183,9,61,54,183,28,254,53,183,29,191,53,183,12,128,53,183,234,64,53,183,182,1,
53,183,113,194,52,183,26,131,52,183,178,67,52,183,56,4,52,183,173,196,51,183,16,133,51,183,99,69,51,183,164,5,51,183,211,197,50,183,241,133,50,183,255,69,50,183,250,5,50,183,229,197,49,183,191,133,49,183,135,69,49,183,63,5,49,183,229,196,48,183,122,132,48,183,254,67,48,183,114,3,48,183,212,194,47,183,37,130,47,183,102,65,47,183,150,0,47,183,180,191,46,183,194,126,46,183,192,61,46,183,172,252,45,183,136,187,45,183,83,122,45,183,14,57,45,183,183,247,44,183,81,182,44,183,217,116,44,183,81,51,44,183,
185,241,43,183,16,176,43,183,87,110,43,183,141,44,43,183,179,234,42,183,200,168,42,183,205,102,42,183,194,36,42,183,167,226,41,183,123,160,41,183,63,94,41,183,243,27,41,183,151,217,40,183,42,151,40,183,174,84,40,183,33,18,40,183,133,207,39,183,216,140,39,183,27,74,39,183,79,7,39,183,114,196,38,183,134,129,38,183,138,62,38,183,125,251,37,183,98,184,37,183,54,117,37,183,250,49,37,183,175,238,36,183,84,171,36,183,234,103,36,183,112,36,36,183,230,224,35,183,77,157,35,183,164,89,35,183,236,21,35,183,36,
210,34,183,77,142,34,183,102,74,34,183,112,6,34,183,106,194,33,183,86,126,33,183,50,58,33,183,254,245,32,183,188,177,32,183,106,109,32,183,9,41,32,183,153,228,31,183,26,160,31,183,139,91,31,183,238,22,31,183,66,210,30,183,134,141,30,183,188,72,30,183,227,3,30,183,250,190,29,183,3,122,29,183,253,52,29,183,233,239,28,183,197,170,28,183,147,101,28,183,82,32,28,183,2,219,27,183,164,149,27,183,55,80,27,183,187,10,27,183,49,197,26,183,153,127,26,183,241,57,26,183,60,244,25,183,120,174,25,183,165,104,25,
183,196,34,25,183,213,220,24,183,215,150,24,183,203,80,24,183,177,10,24,183,137,196,23,183,82,126,23,183,13,56,23,183,186,241,22,183,89,171,22,183,234,100,22,183,109,30,22,183,226,215,21,183,73,145,21,183,162,74,21,183,237,3,21,183,42,189,20,183,89,118,20,183,122,47,20,183,142,232,19,183,148,161,19,183,140,90,19,183,118,19,19,183,83,204,18,183,34,133,18,183,227,61,18,183,151,246,17,183,62,175,17,183,214,103,17,183,98,32,17,183,223,216,16,183,80,145,16,183,179,73,16,183,9,2,16,183,81,186,15,183,140,
114,15,183,186,42,15,183,218,226,14,183,237,154,14,183,244,82,14,183,237,10,14,183,216,194,13,183,183,122,13,183,137,50,13,183,78,234,12,183,5,162,12,183,176,89,12,183,78,17,12,183,223,200,11,183,99,128,11,183,219,55,11,183,69,239,10,183,163,166,10,183,244,93,10,183,56,21,10,183,112,204,9,183,155,131,9,183,185,58,9,183,203,241,8,183,208,168,8,183,201,95,8,183,181,22,8,183,149,205,7,183,104,132,7,183,47,59,7,183,234,241,6,183,152,168,6,183,59,95,6,183,208,21,6,183,90,204,5,183,215,130,5,183,73,57,
5,183,174,239,4,183,7,166,4,183,84,92,4,183,149,18,4,183,201,200,3,183,242,126,3,183,15,53,3,183,33,235,2,183,38,161,2,183,31,87,2,183,13,13,2,183,239,194,1,183,197,120,1,183,143,46,1,183,78,228,0,183,1,154,0,183,168,79,0,183,68,5,0,183,169,117,255,182,178,224,254,182,165,75,254,182,129,182,253,182,69,33,253,182,243,139,252,182,139,246,251,182,12,97,251,182,118,203,250,182,201,53,250,182,6,160,249,182,45,10,249,182,62,116,248,182,56,222,247,182,28,72,247,182,234,177,246,182,162,27,246,182,67,133,
245,182,207,238,244,182,69,88,244,182,166,193,243,182,240,42,243,182,37,148,242,182,68,253,241,182,78,102,241,182,66,207,240,182,33,56,240,182,234,160,239,182,158,9,239,182,61,114,238,182,199,218,237,182,60,67,237,182,156,171,236,182,230,19,236,182,28,124,235,182,61,228,234,182,74,76,234,182,65,180,233,182,36,28,233,182,243,131,232,182,172,235,231,182,82,83,231,182,227,186,230,182,96,34,230,182,201,137,229,182,29,241,228,182,93,88,228,182,138,191,227,182,162,38,227,182,167,141,226,182,151,244,225,
182,116,91,225,182,61,194,224,182,243,40,224,182,149,143,223,182,35,246,222,182,158,92,222,182,6,195,221,182,90,41,221,182,155,143,220,182,201,245,219,182,228,91,219,182,236,193,218,182,224,39,218,182,194,141,217,182,145,243,216,182,78,89,216,182,247,190,215,182,142,36,215,182,19,138,214,182,132,239,213,182,228,84,213,182,49,186,212,182,107,31,212,182,148,132,211,182,170,233,210,182,174,78,210,182,160,179,209,182,129,24,209,182,79,125,208,182,11,226,207,182,182,70,207,182,79,171,206,182,214,15,206,
182,76,116,205,182,176,216,204,182,3,61,204,182,68,161,203,182,116,5,203,182,147,105,202,182,160,205,201,182,157,49,201,182,136,149,200,182,99,249,199,182,45,93,199,182,229,192,198,182,141,36,198,182,36,136,197,182,171,235,196,182,33,79,196,182,135,178,195,182,220,21,195,182,32,121,194,182,85,220,193,182,121,63,193,182,141,162,192,182,145,5,192,182,133,104,191,182,105,203,190,182,61,46,190,182,1,145,189,182,181,243,188,182,90,86,188,182,239,184,187,182,117,27,187,182,235,125,186,182,81,224,185,182,
168,66,185,182,240,164,184,182,41,7,184,182,82,105,183,182,109,203,182,182,120,45,182,182,117,143,181,182,98,241,180,182,65,83,180,182,17,181,179,182,210,22,179,182,133,120,178,182,41,218,177,182,191,59,177,182,70,157,176,182,191,254,175,182,41,96,175,182,133,193,174,182,212,34,174,182,20,132,173,182,70,229,172,182,106,70,172,182,128,167,171,182,137,8,171,182,131,105,170,182,113,202,169,182,80,43,169,182,34,140,168,182,230,236,167,182,157,77,167,182,71,174,166,182,228,14,166,182,115,111,165,182,245,
207,164,182,106,48,164,182,210,144,163,182,45,241,162,182,123,81,162,182,189,177,161,182,242,17,161,182,26,114,160,182,53,210,159,182,68,50,159,182,71,146,158,182,61,242,157,182,39,82,157,182,4,178,156,182,214,17,156,182,155,113,155,182,84,209,154,182,1,49,154,182,163,144,153,182,56,240,152,182,194,79,152,182,64,175,151,182,179,14,151,182,25,110,150,182,117,205,149,182,197,44,149,182,9,140,148,182,67,235,147,182,113,74,147,182,148,169,146,182,171,8,146,182,184,103,145,182,186,198,144,182,177,37,144,
182,157,132,143,182,127,227,142,182,85,66,142,182,33,161,141,182,227,255,140,182,154,94,140,182,71,189,139,182,233,27,139,182,129,122,138,182,15,217,137,182,147,55,137,182,13,150,136,182,124,244,135,182,226,82,135,182,62,177,134,182,144,15,134,182,216,109,133,182,23,204,132,182,76,42,132,182,120,136,131,182,154,230,130,182,179,68,130,182,195,162,129,182,201,0,129,182,198,94,128,182,116,121,127,182,74,53,126,182,14,241,124,182,192,172,123,182,97,104,122,182,240,35,121,182,109,223,119,182,218,154,118,
182,53,86,117,182,127,17,116,182,185,204,114,182,226,135,113,182,250,66,112,182,2,254,110,182,249,184,109,182,224,115,108,182,184,46,107,182,127,233,105,182,55,164,104,182,223,94,103,182,120,25,102,182,1,212,100,182,123,142,99,182,230,72,98,182,66,3,97,182,144,189,95,182,207,119,94,182,255,49,93,182,33,236,91,182,52,166,90,182,58,96,89,182,50,26,88,182,27,212,86,182,247,141,85,182,198,71,84,182,135,1,83,182,59,187,81,182,226,116,80,182,124,46,79,182,9,232,77,182,137,161,76,182,253,90,75,182,100,20,
74,182,191,205,72,182,13,135,71,182,80,64,70,182,135,249,68,182,178,178,67,182,209,107,66,182,229,36,65,182,238,221,63,182,235,150,62,182,222,79,61,182,197,8,60,182,162,193,58,182,116,122,57,182,59,51,56,182,248,235,54,182,171,164,53,182,84,93,52,182,243,21,51,182,136,206,49,182,19,135,48,182,149,63,47,182,13,248,45,182,124,176,44,182,226,104,43,182,63,33,42,182,147,217,40,182,222,145,39,182,33,74,38,182,91,2,37,182,141,186,35,182,183,114,34,182,216,42,33,182,242,226,31,182,4,155,30,182,15,83,29,
182,17,11,28,182,13,195,26,182,1,123,25,182,239,50,24,182,213,234,22,182,181,162,21,182,141,90,20,182,96,18,19,182,44,202,17,182,241,129,16,182,177,57,15,182,107,241,13,182,30,169,12,182,204,96,11,182,117,24,10,182,24,208,8,182,182,135,7,182,78,63,6,182,226,246,4,182,113,174,3,182,251,101,2,182,128,29,1,182,2,170,255,181,251,24,253,181,236,135,250,181,212,246,247,181,181,101,245,181,143,212,242,181,97,67,240,181,44,178,237,181,240,32,235,181,174,143,232,181,101,254,229,181,23,109,227,181,195,219,
224,181,106,74,222,181,11,185,219,181,168,39,217,181,64,150,214,181,212,4,212,181,100,115,209,181,241,225,206,181,122,80,204,181,255,190,201,181,130,45,199,181,2,156,196,181,128,10,194,181,252,120,191,181,118,231,188,181,238,85,186,181,102,196,183,181,220,50,181,181,82,161,178,181,199,15,176,181,60,126,173,181,177,236,170,181,38,91,168,181,156,201,165,181,20,56,163,181,140,166,160,181,6,21,158,181,129,131,155,181,255,241,152,181,127,96,150,181,2,207,147,181,135,61,145,181,16,172,142,181,156,26,140,
181,43,137,137,181,191,247,134,181,87,102,132,181,243,212,129,181,40,135,126,181,117,100,121,181,204,65,116,181,46,31,111,181,156,252,105,181,22,218,100,181,157,183,95,181,50,149,90,181,212,114,85,181,133,80,80,181,69,46,75,181,21,12,70,181,244,233,64,181,229,199,59,181,230,165,54,181,249,131,49,181,31,98,44,181,87,64,39,181,163,30,34,181,3,253,28,181,119,219,23,181,0,186,18,181,159,152,13,181,84,119,8,181,31,86,3,181,4,106,252,180,249,39,242,180,30,230,231,180,117,164,221,180,255,98,211,180,189,
33,201,180,176,224,190,180,217,159,180,180,57,95,170,180,209,30,160,180,162,222,149,180,174,158,139,180,245,94,129,180,242,62,110,180,117,192,89,180,118,66,69,180,246,196,48,180,247,71,28,180,125,203,7,180,18,159,230,179,59,168,189,179,120,178,148,179,157,123,87,179,134,148,5,179,203,190,78,178,160,150,241,49,11,38,224,50,217,240,65,51,35,230,137,51,162,210,178,51,228,189,219,51,243,83,2,52,82,200,22,52,13,60,43,52,33,175,63,52,140,33,84,52,76,147,104,52,94,4,125,52,97,186,136,52,58,242,146,52,185,
41,157,52,222,96,167,52,166,151,177,52,17,206,187,52,31,4,198,52,205,57,208,52,26,111,218,52,7,164,228,52,145,216,238,52,183,12,249,52,60,160,1,53,234,185,6,53,101,211,11,53,172,236,16,53,190,5,22,53,156,30,27,53,67,55,32,53,181,79,37,53,240,103,42,53,244,127,47,53,192,151,52,53,85,175,57,53,176,198,62,53,210,221,67,53,186,244,72,53,104,11,78,53,219,33,83,53,18,56,88,53,14,78,93,53,205,99,98,53,79,121,103,53,147,142,108,53,154,163,113,53,97,184,118,53,234,204,123,53,153,112,128,53,157,250,130,53,
129,132,133,53,69,14,136,53,231,151,138,53,104,33,141,53,199,170,143,53,5,52,146,53,33,189,148,53,27,70,151,53,242,206,153,53,166,87,156,53,55,224,158,53,165,104,161,53,239,240,163,53,22,121,166,53,24,1,169,53,246,136,171,53,175,16,174,53,68,152,176,53,179,31,179,53,252,166,181,53,32,46,184,53,30,181,186,53,246,59,189,53,167,194,191,53,49,73,194,53,149,207,196,53,209,85,199,53,229,219,201,53,210,97,204,53,150,231,206,53,50,109,209,53,166,242,211,53,240,119,214,53,18,253,216,53,10,130,219,53,216,6,
222,53,124,139,224,53,246,15,227,53,70,148,229,53,107,24,232,53,101,156,234,53,51,32,237,53,214,163,239,53,77,39,242,53,152,170,244,53,183,45,247,53,169,176,249,53,111,51,252,53,7,182,254,53,57,156,0,54,87,221,1,54,95,30,3,54,80,95,4,54,41,160,5,54,235,224,6,54,149,33,8,54,40,98,9,54,163,162,10,54,7,227,11,54,82,35,13,54,133,99,14,54,160,163,15,54,162,227,16,54,140,35,18,54,94,99,19,54,22,163,20,54,182,226,21,54,60,34,23,54,170,97,24,54,254,160,25,54,56,224,26,54,89,31,28,54,97,94,29,54,78,157,30,
54,34,220,31,54,219,26,33,54,122,89,34,54,255,151,35,54,106,214,36,54,185,20,38,54,238,82,39,54,9,145,40,54,8,207,41,54,236,12,43,54,181,74,44,54,98,136,45,54,244,197,46,54,106,3,48,54,197,64,49,54,3,126,50,54,38,187,51,54,44,248,52,54,22,53,54,54,228,113,55,54,149,174,56,54,41,235,57,54,161,39,59,54,252,99,60,54,57,160,61,54,90,220,62,54,93,24,64,54,67,84,65,54,11,144,66,54,181,203,67,54,66,7,69,54,176,66,70,54,1,126,71,54,51,185,72,54,71,244,73,54,60,47,75,54,19,106,76,54,203,164,77,54,100,223,
78,54,223,25,80,54,58,84,81,54,118,142,82,54,146,200,83,54,143,2,85,54,109,60,86,54,42,118,87,54,200,175,88,54,70,233,89,54,164,34,91,54,225,91,92,54,254,148,93,54,251,205,94,54,214,6,96,54,145,63,97,54,44,120,98,54,165,176,99,54,253,232,100,54,52,33,102,54,73,89,103,54,61,145,104,54,15,201,105,54,191,0,107,54,78,56,108,54,186,111,109,54,5,167,110,54,45,222,111,54,50,21,113,54,21,76,114,54,214,130,115,54,115,185,116,54,238,239,117,54,70,38,119,54,122,92,120,54,139,146,121,54,121,200,122,54,68,254,
123,54,234,51,125,54,109,105,126,54,204,158,127,54,3,106,128,54,143,4,129,54,8,159,129,54,111,57,130,54,196,211,130,54,6,110,131,54,54,8,132,54,84,162,132,54,95,60,133,54,87,214,133,54,61,112,134,54,16,10,135,54,208,163,135,54,126,61,136,54,25,215,136,54,160,112,137,54,21,10,138,54,118,163,138,54,197,60,139,54,0,214,139,54,40,111,140,54,61,8,141,54,62,161,141,54,44,58,142,54,6,211,142,54,205,107,143,54,128,4,144,54,32,157,144,54,171,53,145,54,35,206,145,54,135,102,146,54,215,254,146,54,19,151,147,
54,59,47,148,54,79,199,148,54,79,95,149,54,58,247,149,54,17,143,150,54,212,38,151,54,130,190,151,54,28,86,152,54,162,237,152,54,18,133,153,54,110,28,154,54,182,179,154,54,232,74,155,54,6,226,155,54,15,121,156,54,2,16,157,54,225,166,157,54,171,61,158,54,95,212,158,54,254,106,159,54,136,1,160,54,253,151,160,54,92,46,161,54,166,196,161,54,218,90,162,54,249,240,162,54,2,135,163,54,246,28,164,54,211,178,164,54,155,72,165,54,77,222,165,54,233,115,166,54,111,9,167,54,223,158,167,54,57,52,168,54,124,201,
168,54,170,94,169,54,193,243,169,54,193,136,170,54,172,29,171,54,128,178,171,54,61,71,172,54,228,219,172,54,116,112,173,54,237,4,174,54],"i8",4,y.a+1116160);
Q([80,153,174,54,155,45,175,54,208,193,175,54,238,85,176,54,245,233,176,54,229,125,177,54,190,17,178,54,127,165,178,54,41,57,179,54,188,204,179,54,56,96,180,54,156,243,180,54,233,134,181,54,30,26,182,54,59,173,182,54,65,64,183,54,47,211,183,54,6,102,184,54,196,248,184,54,107,139,185,54,250,29,186,54,112,176,186,54,207,66,187,54,22,213,187,54,68,103,188,54,90,249,188,54,88,139,189,54,61,29,190,54,10,175,190,54,191,64,191,54,91,210,191,54,222,99,192,54,73,245,192,54,155,134,193,54,212,23,194,54,245,
168,194,54,252,57,195,54,235,202,195,54,193,91,196,54,125,236,196,54,33,125,197,54,171,13,198,54,28,158,198,54,116,46,199,54,178,190,199,54,215,78,200,54,227,222,200,54,213,110,201,54,174,254,201,54,109,142,202,54,18,30,203,54,157,173,203,54,15,61,204,54,103,204,204,54,165,91,205,54,201,234,205,54,211,121,206,54,195,8,207,54,152,151,207,54,84,38,208,54,245,180,208,54,124,67,209,54,233,209,209,54,59,96,210,54,115,238,210,54,144,124,211,54,146,10,212,54,122,152,212,54,71,38,213,54,250,179,213,54,146,
65,214,54,14,207,214,54,112,92,215,54,183,233,215,54,227,118,216,54,244,3,217,54,233,144,217,54,196,29,218,54,131,170,218,54,39,55,219,54,175,195,219,54,28,80,220,54,110,220,220,54,164,104,221,54,190,244,221,54,189,128,222,54,160,12,223,54,103,152,223,54,18,36,224,54,162,175,224,54,22,59,225,54,109,198,225,54,169,81,226,54,201,220,226,54,204,103,227,54,179,242,227,54,126,125,228,54,45,8,229,54,191,146,229,54,53,29,230,54,142,167,230,54,203,49,231,54,236,187,231,54,239,69,232,54,214,207,232,54,160,
89,233,54,78,227,233,54,222,108,234,54,82,246,234,54,169,127,235,54,226,8,236,54,255,145,236,54,254,26,237,54,225,163,237,54,166,44,238,54,78,181,238,54,216,61,239,54,69,198,239,54,149,78,240,54,199,214,240,54,219,94,241,54,210,230,241,54,172,110,242,54,103,246,242,54,5,126,243,54,133,5,244,54,231,140,244,54,43,20,245,54,81,155,245,54,90,34,246,54,68,169,246,54,16,48,247,54,189,182,247,54,77,61,248,54,190,195,248,54,17,74,249,54,70,208,249,54,92,86,250,54,83,220,250,54,44,98,251,54,230,231,251,54,
130,109,252,54,255,242,252,54,93,120,253,54,157,253,253,54,189,130,254,54,191,7,255,54,161,140,255,54,178,8,0,55,5,75,0,55,71,141,0,55,122,207,0,55,158,17,1,55,178,83,1,55,182,149,1,55,170,215,1,55,143,25,2,55,100,91,2,55,41,157,2,55,223,222,2,55,132,32,3,55,26,98,3,55,160,163,3,55,22,229,3,55,124,38,4,55,210,103,4,55,24,169,4,55,78,234,4,55,116,43,5,55,138,108,5,55,144,173,5,55,134,238,5,55,108,47,6,55,66,112,6,55,7,177,6,55,188,241,6,55,97,50,7,55,246,114,7,55,122,179,7,55,238,243,7,55,82,52,8,
55,166,116,8,55,233,180,8,55,27,245,8,55,62,53,9,55,79,117,9,55,81,181,9,55,65,245,9,55,34,53,10,55,241,116,10,55,176,180,10,55,95,244,10,55,253,51,11,55,138,115,11,55,7,179,11,55,114,242,11,55,206,49,12,55,24,113,12,55,82,176,12,55,122,239,12,55,146,46,13,55,153,109,13,55,144,172,13,55,117,235,13,55,73,42,14,55,13,105,14,55,191,167,14,55,97,230,14,55,241,36,15,55,113,99,15,55,223,161,15,55,61,224,15,55,137,30,16,55,196,92,16,55,238,154,16,55,6,217,16,55,14,23,17,55,4,85,17,55,233,146,17,55,189,208,
17,55,127,14,18,55,48,76,18,55,208,137,18,55,94,199,18,55,219,4,19,55,70,66,19,55,161,127,19,55,233,188,19,55,32,250,19,55,70,55,20,55,90,116,20,55,92,177,20,55,77,238,20,55,44,43,21,55,250,103,21,55,182,164,21,55,96,225,21,55,248,29,22,55,127,90,22,55,244,150,22,55,88,211,22,55,169,15,23,55,233,75,23,55,22,136,23,55,50,196,23,55,60,0,24,55,53,60,24,55,27,120,24,55,239,179,24,55,177,239,24,55,97,43,25,55,0,103,25,55,140,162,25,55,6,222,25,55,110,25,26,55,195,84,26,55,7,144,26,55,57,203,26,55,88,6,
27,55,101,65,27,55,96,124,27,55,73,183,27,55,31,242,27,55,227,44,28,55,149,103,28,55,52,162,28,55,193,220,28,55,60,23,29,55,164,81,29,55,249,139,29,55,61,198,29,55,110,0,30,55,140,58,30,55,152,116,30,55,145,174,30,55,119,232,30,55,76,34,31,55,13,92,31,55,188,149,31,55,88,207,31,55,225,8,32,55,88,66,32,55,188,123,32,55,13,181,32,55,76,238,32,55,120,39,33,55,145,96,33,55,151,153,33,55,138,210,33,55,106,11,34,55,56,68,34,55,242,124,34,55,154,181,34,55,47,238,34,55,176,38,35,55,31,95,35,55,122,151,35,
55,195,207,35,55,248,7,36,55,27,64,36,55,42,120,36,55,38,176,36,55,15,232,36,55,229,31,37,55,168,87,37,55,87,143,37,55,243,198,37,55,124,254,37,55,242,53,38,55,84,109,38,55,163,164,38,55,223,219,38,55,7,19,39,55,28,74,39,55,30,129,39,55,12,184,39,55,230,238,39,55,173,37,40,55,97,92,40,55,1,147,40,55,142,201,40,55,7,0,41,55,108,54,41,55,190,108,41,55,253,162,41,55,39,217,41,55,62,15,42,55,66,69,42,55,49,123,42,55,13,177,42,55,213,230,42,55,138,28,43,55,42,82,43,55,183,135,43,55,48,189,43,55,150,242,
43,55,231,39,44,55,36,93,44,55,78,146,44,55,100,199,44,55,101,252,44,55,83,49,45,55,45,102,45,55,243,154,45,55,164,207,45,55,66,4,46,55,204,56,46,55,66,109,46,55,163,161,46,55,241,213,46,55,42,10,47,55,79,62,47,55,96,114,47,55,93,166,47,55,69,218,47,55,26,14,48,55,218,65,48,55,133,117,48,55,29,169,48,55,160,220,48,55,15,16,49,55,106,67,49,55,176,118,49,55,226,169,49,55,255,220,49,55,8,16,50,55,252,66,50,55,221,117,50,55,168,168,50,55,95,219,50,55,2,14,51,55,144,64,51,55,9,115,51,55,110,165,51,55,
191,215,51,55,250,9,52,55,33,60,52,55,52,110,52,55,50,160,52,55,27,210,52,55,239,3,53,55,175,53,53,55,90,103,53,55,240,152,53,55,113,202,53,55,222,251,53,55,53,45,54,55,120,94,54,55,166,143,54,55,192,192,54,55,196,241,54,55,179,34,55,55,142,83,55,55,84,132,55,55,4,181,55,55,160,229,55,55,38,22,56,55,152,70,56,55,245,118,56,55,60,167,56,55,111,215,56,55,140,7,57,55,148,55,57,55,136,103,57,55,102,151,57,55,46,199,57,55,226,246,57,55,129,38,58,55,10,86,58,55,126,133,58,55,221,180,58,55,39,228,58,55,
91,19,59,55,122,66,59,55,132,113,59,55,120,160,59,55,87,207,59,55,33,254,59,55,213,44,60,55,116,91,60,55,253,137,60,55,113,184,60,55,208,230,60,55,25,21,61,55,77,67,61,55,107,113,61,55,116,159,61,55,103,205,61,55,68,251,61,55,12,41,62,55,191,86,62,55,92,132,62,55,227,177,62,55,84,223,62,55,176,12,63,55,247,57,63,55,39,103,63,55,66,148,63,55,71,193,63,55,55,238,63,55,16,27,64,55,212,71,64,55,130,116,64,55,27,161,64,55,157,205,64,55,10,250,64,55,97,38,65,55,162,82,65,55,205,126,65,55,226,170,65,55,
226,214,65,55,203,2,66,55,159,46,66,55,92,90,66,55,4,134,66,55,149,177,66,55,17,221,66,55,118,8,67,55,198,51,67,55,255,94,67,55,35,138,67,55,48,181,67,55,39,224,67,55,8,11,68,55,211,53,68,55,136,96,68,55,39,139,68,55,175,181,68,55,33,224,68,55,126,10,69,55,195,52,69,55,243,94,69,55,13,137,69,55,16,179,69,55,253,220,69,55,211,6,70,55,147,48,70,55,61,90,70,55,209,131,70,55,78,173,70,55,181,214,70,55,6,0,71,55,64,41,71,55,99,82,71,55,113,123,71,55,103,164,71,55,72,205,71,55,18,246,71,55,197,30,72,55,
98,71,72,55,232,111,72,55,88,152,72,55,177,192,72,55,244,232,72,55,32,17,73,55,54,57,73,55,53,97,73,55,29,137,73,55,239,176,73,55,170,216,73,55,79,0,74,55,220,39,74,55,84,79,74,55,180,118,74,55,254,157,74,55,49,197,74,55,77,236,74,55,82,19,75,55,65,58,75,55,25,97,75,55,218,135,75,55,132,174,75,55,24,213,75,55,148,251,75,55,250,33,76,55,73,72,76,55,129,110,76,55,162,148,76,55,173,186,76,55,160,224,76,55,125,6,77,55,66,44,77,55,241,81,77,55,136,119,77,55,9,157,77,55,114,194,77,55,197,231,77,55,1,13,
78,55,37,50,78,55,51,87,78,55,41,124,78,55,8,161,78,55,209,197,78,55,130,234,78,55,28,15,79,55,159,51,79,55,11,88,79,55,95,124,79,55,157,160,79,55,195,196,79,55,210,232,79,55,202,12,80,55,171,48,80,55,116,84,80,55,38,120,80,55,193,155,80,55,69,191,80,55,178,226,80,55,7,6,81,55,69,41,81,55,107,76,81,55,123,111,81,55,115,146,81,55,83,181,81,55,28,216,81,55,206,250,81,55,105,29,82,55,236,63,82,55,88,98,82,55,172,132,82,55,233,166,82,55,14,201,82,55,28,235,82,55,18,13,83,55,241,46,83,55,185,80,83,55,
105,114,83,55,2,148,83,55,131,181,83,55,236,214,83,55,62,248,83,55,120,25,84,55,155,58,84,55,166,91,84,55,154,124,84,55,118,157,84,55,59,190,84,55,231,222,84,55,125,255,84,55,250,31,85,55,96,64,85,55,174,96,85,55,229,128,85,55,4,161,85,55,11,193,85,55,250,224,85,55,210,0,86,55,146,32,86,55,58,64,86,55,203,95,86,55,68,127,86,55,165,158,86,55,238,189,86,55,31,221,86,55,57,252,86,55,59,27,87,55,37,58,87,55,247,88,87,55,177,119,87,55,84,150,87,55,222,180,87,55,81,211,87,55,172,241,87,55,239,15,88,55,
26,46,88,55,45,76,88,55,40,106,88,55,11,136,88,55,215,165,88,55,138,195,88,55,37,225,88,55,169,254,88,55,20,28,89,55,104,57,89,55,163,86,89,55,199,115,89,55,210,144,89,55,198,173,89,55,161,202,89,55,100,231,89,55,16,4,90,55,163,32,90,55,30,61,90,55,129,89,90,55,204,117,90,55,255,145,90,55,26,174,90,55,28,202,90,55,7,230,90,55,217,1,91,55,147,29,91,55,53,57,91,55,191,84,91,55,49,112,91,55,138,139,91,55,204,166,91,55,245,193,91,55,6,221,91,55,254,247,91,55,223,18,92,55,167,45,92,55,87,72,92,55,239,
98,92,55,110,125,92,55,214,151,92,55,36,178,92,55,91,204,92,55,122,230,92,55,128,0,93,55,109,26,93,55,67,52,93,55,0,78,93,55,165,103,93,55,49,129,93,55,165,154,93,55,1,180,93,55,68,205,93,55,111,230,93,55,130,255,93,55,124,24,94,55,94,49,94,55,39,74,94,55,216,98,94,55,113,123,94,55,241,147,94,55,89,172,94,55,168,196,94,55,223,220,94,55,253,244,94,55,3,13,95,55,241,36,95,55,198,60,95,55,130,84,95,55,38,108,95,55,178,131,95,55,37,155,95,55,127,178,95,55,193,201,95,55,235,224,95,55,251,247,95,55,244,
14,96,55,212,37,96,55,155,60,96,55,74,83,96,55,224,105,96,55,93,128,96,55,194,150,96,55,15,173,96,55,66,195,96,55,94,217,96,55,96,239,96,55,74,5,97,55,27,27,97,55,212,48,97,55,116,70,97,55,252,91,97,55,106,113,97,55,193,134,97,55,254,155,97,55,35,177,97,55,47,198,97,55,34,219,97,55,253,239,97,55,191,4,98,55,105,25,98,55,249,45,98,55,113,66,98,55,209,86,98,55,23,107,98,55,69,127,98,55,90,147,98,55,87,167,98,55,58,187,98,55,5,207,98,55,183,226,98,55,81,246,98,55,209,9,99,55,57,29,99,55,136,48,99,55,
191,67,99,55,220,86,99,55,225,105,99,55,205,124,99,55,160,143,99,55,90,162,99,55,252,180,99,55,133,199,99,55,244,217,99,55,76,236,99,55,138,254,99,55,175,16,100,55,188,34,100,55,175,52,100,55,138,70,100,55,76,88,100,55,246,105,100,55,134,123,100,55,253,140,100,55,92,158,100,55,162,175,100,55,207,192,100,55,226,209,100,55,222,226,100,55,192,243,100,55,137,4,101,55,57,21,101,55,209,37,101,55,79,54,101,55,181,70,101,55,2,87,101,55,54,103,101,55,80,119,101,55,82,135,101,55,59,151,101,55,11,167,101,55,
195,182,101,55,97,198,101,55,230,213,101,55,82,229,101,55,166,244,101,55,224,3,102,55,1,19,102,55,10,34,102,55,249,48,102,55,208,63,102,55,141,78,102,55,50,93,102,55,190,107,102,55,48,122,102,55,138,136,102,55,202,150,102,55,242,164,102,55,1,179,102,55,246,192,102,55,211,206,102,55,150,220,102,55,65,234,102,55,210,247,102,55,75,5,103,55,171,18,103,55,241,31,103,55,31,45,103,55,51,58,103,55,46,71,103,55,17,84,103,55,218,96,103,55,138,109,103,55,34,122,103,55,160,134,103,55,5,147,103,55,81,159,103,
55,132,171,103,55,158,183,103,55,159,195,103,55,135,207,103,55,86,219,103,55,12,231,103,55,169,242,103,55,44,254,103,55,151,9,104,55,232,20,104,55,33,32,104,55,64,43,104,55,71,54,104,55,52,65,104,55,8,76,104,55,195,86,104,55,101,97,104,55,238,107,104,55,94,118,104,55,181,128,104,55,242,138,104,55,23,149,104,55,34,159,104,55,21,169,104,55,238,178,104,55,174,188,104,55,85,198,104,55,227,207,104,55,88,217,104,55,180,226,104,55,247,235,104,55,32,245,104,55,49,254,104,55,40,7,105,55,6,16,105,55,204,24,
105,55,120,33,105,55,11,42,105,55,132,50,105,55,229,58,105,55,45,67,105,55,91,75,105,55,113,83,105,55,109,91,105,55,80,99,105,55,26,107,105,55,203,114,105,55,99,122,105,55,226,129,105,55,71,137,105,55,148,144,105,55,199,151,105,55,226,158,105,55,227,165,105,55,203,172,105,55,154,179,105,55,79,186,105,55,236,192,105,55,112,199,105,55,218,205,105,55,44,212,105,55,100,218,105,55,131,224,105,55,137,230,105,55,118,236,105,55,74,242,105,55,4,248,105,55,166,253,105,55,46,3,106,55,158,8,106,55,244,13,106,
55,49,19,106,55,85,24,106,55,96,29,106,55,82,34,106,55,42,39,106,55,234,43,106,55,144,48,106,55,30,53,106,55,146,57,106,55,237,61,106,55,47,66,106,55,88,70,106,55,104,74,106,55,95,78,106,55,60,82,106,55,1,86,106,55,172,89,106,55,62,93,106,55,184,96,106,55,24,100,106,55,95,103,106,55,141,106,106,55,162,109,106,55,158,112,106,55,128,115,106,55,74,118,106,55,251,120,106,55,146,123,106,55,16,126,106,55,118,128,106,55,194,130,106,55,245,132,106,55,15,135,106,55,16,137,106,55,248,138,106,55,199,140,106,
55,125,142,106,55,26,144,106,55,158,145,106,55,8,147,106,55,90,148,106,55,146,149,106,55,178,150,106,55,184,151,106,55,166,152,106,55,122,153,106,55,53,154,106,55,216,154,106,55,97,155,106,55,209,155,106,55,40,156,106,55,103,156,106,55,140,156,106,55,152,156,106,55,139,156,106,55,101,156,106,55,38,156,106,55,206,155,106,55,93,155,106,55,211,154,106,55,48,154,106,55,116,153,106,55,160,152,106,55,178,151,106,55,171,150,106,55,139,149,106,55,82,148,106,55,0,147,106,55,149,145,106,55,17,144,106,55,116,
142,106,55,191,140,106,55,240,138,106,55,8,137,106,55,8,135,106,55,238,132,106,55,188,130,106,55,112,128,106,55,12,126,106,55,142,123,106,55,248,120,106,55,73,118,106,55,129,115,106,55,160,112,106,55,166,109,106,55,147,106,106,55,103,103,106,55,34,100,106,55,197,96,106,55,78,93,106,55,191,89,106,55,22,86,106,55,85,82,106,55,123,78,106,55,136,74,106,55,125,70,106,55,88,66,106,55,26,62,106,55,196,57,106,55,85,53,106,55,205,48,106,55,44,44,106,55,114,39,106,55,159,34,106,55,180,29,106,55,176,24,106,
55,147,19,106,55,93,14,106,55,14,9,106,55,167,3,106,55,38,254,105,55,141,248,105,55,219,242,105,55,17,237,105,55,45,231,105,55,49,225,105,55,28,219,105,55,238,212,105,55,168,206,105,55,73,200,105,55,209,193,105,55,64,187,105,55,150,180,105,55,212,173,105,55,249,166,105,55,5,160,105,55,249,152,105,55,212,145,105,55,150,138,105,55,64,131,105,55,209,123,105,55,73,116,105,55,168,108,105,55,239,100,105,55,29,93,105,55,51,85,105,55,47,77,105,55,20,69,105,55,223,60,105,55,146,52,105,55,44,44,105,55,174,
35,105,55,23,27,105,55,103,18,105,55,159,9,105,55,190,0,105,55,197,247,104,55,179,238,104,55,136,229,104,55,69,220,104,55,234,210,104,55,117,201,104,55,233,191,104,55,67,182,104,55,133,172,104,55,175,162,104,55,192,152,104,55,184,142,104,55,152,132,104,55,96,122,104,55,15,112,104,55,165,101,104,55,36,91,104,55,137,80,104,55,214,69,104,55,11,59,104,55,39,48,104,55,43,37,104,55,22,26,104,55,233,14,104,55,163,3,104,55,69,248,103,55,207,236,103,55,64,225,103,55,153,213,103,55,217,201,103,55,1,190,103,
55,17,178,103,55,8,166,103,55,231,153,103,55,174,141,103,55,92,129,103,55,242,116,103,55,112,104,103,55,213,91,103,55,34,79,103,55,87,66,103,55,115,53,103,55,119,40,103,55,99,27,103,55,54,14,103,55,242,0,103,55,149,243,102,55,31,230,102,55,146,216,102,55,236,202,102,55,46,189,102,55,88,175,102,55,106,161,102,55,99,147,102,55,69,133,102,55,14,119,102,55,191,104,102,55,88,90,102,55,216,75,102,55,65,61,102,55,145,46,102,55,201,31,102,55,233,16,102,55,241,1,102,55,225,242,101,55,185,227,101,55,121,212,
101,55,33,197,101,55,176,181,101,55,40,166,101,55,135,150,101,55,207,134,101,55,254,118,101,55,22,103,101,55,21,87,101,55,252,70,101,55,204,54,101,55,131,38,101,55,35,22,101,55,170,5,101,55,26,245,100,55,114,228,100,55,177,211,100,55,217,194,100,55,233,177,100,55,225,160,100,55,193,143,100,55,137,126,100,55,58,109,100,55,210,91,100,55,83,74,100,55,188,56,100,55,13,39,100,55,70,21,100,55,103,3,100,55,112,241,99,55,98,223,99,55,60,205,99,55,254,186,99,55,169,168,99,55,59,150,99,55,182,131,99,55,25,
113,99,55,101,94,99,55,153,75,99,55,181,56,99,55,185,37,99,55,166,18,99,55,123,255,98,55,56,236,98,55,222,216,98,55,108,197,98,55,226,177,98,55,65,158,98,55,136,138,98,55,184,118,98,55,208,98,98,55,209,78,98,55,186,58,98,55,139,38,98,55,69,18,98,55,231,253,97,55,114,233,97,55,229,212,97,55,65,192,97,55,133,171,97,55,178,150,97,55,200,129,97,55,198,108,97,55,172,87,97,55,123,66,97,55,51,45,97,55,211,23,97,55,92,2,97,55,206,236,96,55,40,215,96,55,106,193,96,55,150,171,96,55,170,149,96,55,167,127,96,
55,140,105,96,55,90,83,96,55,17,61,96,55,177,38,96,55,57,16,96,55,170,249,95,55,4,227,95,55,71,204,95,55,114,181,95,55,135,158,95,55,132,135,95,55,106,112,95,55,56,89,95,55,240,65,95,55,144,42,95,55,26,19,95,55,140,251,94,55,231,227,94,55,43,204,94,55,88,180,94,55,110,156,94,55,108,132,94,55,84,108,94,55,37,84,94,55,222,59,94,55,129,35,94,55,13,11,94,55,130,242,93,55,223,217,93,55,38,193,93,55,86,168,93,55,111,143,93,55,113,118,93,55,92,93,93,55,48,68,93,55,238,42,93,55,148,17,93,55,36,248,92,55,
157,222,92,55,255,196,92,55,74,171,92,55,127,145,92,55,156,119,92,55,163,93,92,55,147,67,92,55,109,41,92,55,47,15,92,55,219,244,91,55,112,218,91,55,239,191,91,55,87,165,91,55,168,138,91,55,227,111,91,55,7,85,91,55,20,58,91,55,11,31,91,55,235,3,91,55,180,232,90,55,103,205,90,55,4,178,90,55,138,150,90,55,249,122,90,55,82,95,90,55,148,67,90,55,192,39,90,55,213,11,90,55,212,239,89,55,189,211,89,55,143,183,89,55,75,155,89,55,240,126,89,55,127,98,89,55,248,69,89,55,90,41,89,55,166,12,89,55,219,239,88,55,
251,210,88,55,4,182,88,55,246,152,88,55,211,123,88,55,153,94,88,55,73,65,88,55,226,35,88,55,102,6,88,55,211,232,87,55,42,203,87,55,107,173,87,55,150,143,87,55,171,113,87,55,170,83,87,55,146,53,87,55,100,23,87,55,33,249,86,55,199,218,86,55,87,188,86,55,210,157,86,55,54,127,86,55,132,96,86,55,188,65,86,55,222,34,86,55,235,3,86,55,225,228,85,55,194,197,85,55,140,166,85,55,65,135,85,55,224,103,85,55,105,72,85,55,220,40,85,55,57,9,85,55,128,233,84,55,178,201,84,55,206,169,84,55,212,137,84,55,196,105,84,
55,159,73,84,55,100,41,84,55,19,9,84,55,173,232,83,55,49,200,83,55,159,167,83,55,248,134,83,55,59,102,83,55,104,69,83,55,128,36,83,55,130,3,83,55,111,226,82,55,70,193,82,55,7,160,82,55,179,126,82,55,74,93,82,55,203,59,82,55,55,26,82,55,141,248,81,55,206,214,81,55,249,180,81,55,15,147,81,55,16,113,81,55,251,78,81,55,209,44,81,55,146,10,81,55,61,232,80,55,211,197,80,55,84,163,80,55,191,128,80,55,21,94,80,55,86,59,80,55,130,24,80,55,153,245,79,55,154,210,79,55,134,175,79,55,94,140,79,55,32,105,79,55,
205,69,79,55,100,34,79,55,231,254,78,55,85,219,78,55,173,183,78,55,241,147,78,55,32,112,78,55,57,76,78,55,62,40,78,55,46,4,78,55,8,224,77,55,206,187,77,55,127,151,77,55,27,115,77,55,163,78,77,55,21,42,77,55,115,5,77,55,187,224,76,55,239,187,76,55,14,151,76,55,25,114,76,55,15,77,76,55,239,39,76,55,188,2,76,55,115,221,75,55,22,184,75,55,164,146,75,55,30,109,75,55,131,71,75,55,211,33,75,55,15,252,74,55,54,214,74,55,73,176,74,55,71,138,74,55,49,100,74,55,6,62,74,55,199,23,74,55,115,241,73,55,11,203,73,
55,142,164,73,55,253,125,73,55,88,87,73,55,158,48,73,55,208,9,73,55,238,226,72,55,247,187,72,55,236,148,72,55,205,109,72,55,153,70,72,55,82,31,72,55,246,247,71,55,134,208,71,55,1,169,71,55,105,129,71,55,188,89,71,55,251,49,71,55,39,10,71,55,62,226,70,55,65,186,70,55,48,146,70,55,11,106,70,55,210,65,70,55,132,25,70,55,35,241,69,55,175,200,69,55,38,160,69,55,137,119,69,55,216,78,69,55,20,38,69,55,59,253,68,55,79,212,68,55,79,171,68,55,59,130,68,55,19,89,68,55,216,47,68,55,137,6,68,55,38,221,67,55,176,
179,67,55,37,138,67,55,135,96,67,55,214,54,67,55,17,13,67,55,56,227,66,55,76,185,66,55,76,143,66,55,56,101,66,55,18,59,66,55,215,16,66,55,137,230,65,55,40,188,65,55,179,145,65,55,43,103,65,55,143,60,65,55,224,17,65,55,30,231,64,55,72,188,64,55,95,145,64,55,98,102,64,55,83,59,64,55,48,16,64,55,250,228,63,55,176,185,63,55,84,142,63,55,228,98,63,55,97,55,63,55,203,11,63,55,34,224,62,55,102,180,62,55,150,136,62,55,180,92,62,55,190,48,62,55,182,4,62,55,154,216,61,55,108,172,61,55,43,128,61,55,214,83,61,
55,111,39,61,55,245,250,60,55,104,206,60,55,200,161,60,55,21,117,60,55,80,72,60,55,119,27,60,55,140,238,59,55,142,193,59,55,126,148,59,55,91,103,59,55,37,58,59,55,220,12,59,55,129,223,58,55,19,178,58,55,146,132,58,55,255,86,58,55,90,41,58,55,161,251,57,55,215,205,57,55,249,159,57,55,10,114,57,55,8,68,57,55,243,21,57,55,204,231,56,55,147,185,56,55,71,139,56,55,233,92,56,55,120,46,56,55,246,255,55,55,97,209,55,55,185,162,55,55,0,116,55,55,52,69,55,55,86,22,55,55,102,231,54,55,100,184,54,55,79,137,54,
55,41,90,54,55,240,42,54,55,166,251,53,55,73,204,53,55,218,156,53,55,89,109,53,55,199,61,53,55,34,14,53,55,107,222,52,55,163,174,52,55,200,126,52,55,220,78,52,55,222,30,52,55,206,238,51,55,172,190,51,55,120,142,51,55,51,94,51,55,220,45,51,55,115,253,50,55,248,204,50,55,108,156,50,55,206,107,50,55,31,59,50,55,94,10,50,55,139,217,49,55,167,168,49,55,177,119,49,55,170,70,49,55,145,21,49,55,103,228,48,55,43,179,48,55,222,129,48,55,128,80,48,55,16,31,48,55,142,237,47,55,252,187,47,55,88,138,47,55,163,
88,47,55,220,38,47,55,5,245,46,55,28,195,46,55,33,145,46,55,22,95,46,55,250,44,46,55,204,250,45,55,141,200,45,55,61,150,45,55,221,99,45,55,107,49,45,55,232,254,44,55,84,204,44,55,175,153,44,55,249,102,44,55,50,52,44,55,90,1,44,55,114,206,43,55,120,155,43,55,110,104,43,55,83,53,43,55,39,2,43,55,235,206,42,55,157,155,42,55,63,104,42,55,208,52,42,55,81,1,42,55,193,205,41,55,32,154,41,55,111,102,41,55,173,50,41,55,218,254,40,55,247,202,40,55,4,151,40,55,0,99,40,55,235,46,40,55,198,250,39,55,145,198,39,
55,75,146,39,55,245,93,39,55,143,41,39,55,24,245,38,55,145,192,38,55,250,139,38,55,82,87,38,55,155,34,38,55,211,237,37,55,250,184,37,55,18,132,37,55,26,79,37,55,17,26,37,55,249,228,36,55,208,175,36,55,151,122,36,55,79,69,36,55,246,15,36,55,141,218,35,55,21,165,35,55,140,111,35,55,244,57,35,55,75,4,35,55,147,206,34,55,203,152,34,55,244,98,34,55,12,45,34,55,21,247,33,55,14,193,33,55,247,138,33,55,209,84,33,55,155,30,33,55,86,232,32,55,0,178,32,55,156,123,32,55,39,69,32,55,164,14,32,55,16,216,31,55,
109,161,31,55,187,106,31,55,249,51,31,55,40,253,30,55,72,198,30,55,88,143,30,55,89,88,30,55,75,33,30,55,45,234,29,55,0,179,29,55,196,123,29,55,120,68,29,55,30,13,29,55,180,213,28,55,59,158,28,55,179,102,28,55,28,47,28,55,118,247,27,55,193,191,27,55,253,135,27,55,41,80,27,55,71,24,27,55,86,224,26,55,86,168,26,55,71,112,26,55,42,56,26,55,253,255,25,55,194,199,25,55,120,143,25,55,31,87,25,55,183,30,25,55,65,230,24,55,188,173,24,55,41,117,24,55,134,60,24,55,214,3,24,55,22,203,23,55,72,146,23,55,108,89,
23,55,129,32,23,55,135,231,22,55,127,174,22,55,105,117,22,55,68,60,22,55,17,3,22,55,207,201,21,55,127,144,21,55,33,87,21,55,181,29,21,55,58,228,20,55,177,170,20,55,26,113,20,55,117,55,20,55,194,253,19,55,0,196,19,55,48,138,19,55,83,80,19,55,103,22,19,55,109,220,18,55,101,162,18,55,80,104,18,55,44,46,18,55,251,243,17,55,187,185,17,55,110,127,17,55,19,69,17,55,170,10,17,55,51,208,16,55,174,149,16,55,28,91,16,55,124,32,16,55,206,229,15,55,19,171,15,55,74,112,15,55,116,53,15,55,144,250,14,55,158,191,
14,55,159,132,14,55,146,73,14,55,120,14,14,55,80,211,13,55,27,152,13,55,217,92,13,55,137,33,13,55,44,230,12,55,193,170,12,55,74,111,12,55,197,51,12,55,50,248,11,55,147,188,11,55,230,128,11,55,44,69,11,55,101,9,11,55,145,205,10,55,176,145,10,55,194,85,10,55,199,25,10,55,191,221,9,55,169,161,9,55,135,101,9,55,88,41,9,55,28,237,8,55,212,176,8,55,126,116,8,55,27,56,8,55,172,251,7,55,48,191,7,55,167,130,7,55,18,70,7,55,112,9,7,55,193,204,6,55,6,144,6,55,61,83,6,55,105,22,6,55,136,217,5,55,154,156,5,55,
160,95,5,55,153,34,5,55,134,229,4,55,103,168,4,55,59,107,4,55,3,46,4,55,190,240,3,55,109,179,3,55,16,118,3,55,167,56,3,55,49,251,2,55,175,189,2,55,33,128,2,55,135,66,2,55,225,4,2,55,46,199,1,55,112,137,1,55,165,75,1,55,207,13,1,55,237,207,0,55,254,145,0,55,4,84,0,55,254,21,0,55,215,175,255,54,155,51,255,54,72,183,254,54,221,58,254,54,90,190,253,54,192,65,253,54,14,197,252,54,69,72,252,54,101,203,251,54,110,78,251,54,95,209,250,54,57,84,250,54,252,214,249,54,168,89,249,54,62,220,248,54,188,94,248,
54,35,225,247,54,115,99,247,54,173,229,246,54,208,103,246,54,220,233,245,54,210,107,245,54,177,237,244,54,122,111,244,54,44,241,243,54,200,114,243,54,78,244,242,54,189,117,242,54,22,247,241,54,89,120,241,54,134,249,240,54,157,122,240,54,158,251,239,54,137,124,239,54,94,253,238,54,29,126,238,54,198,254,237,54,90,127,237,54,216,255,236,54,65,128,236,54,147,0,236,54,209,128,235,54,249,0,235,54,11,129,234,54,9,1,234,54,241,128,233,54,196,0,233,54,129,128,232,54,42,0,232,54,189,127,231,54,60,255,230,54,
165,126,230,54,250,253,229,54,58,125,229,54,101,252,228,54,124,123,228,54,125,250,227,54,106,121,227,54,67,248,226,54,7,119,226,54,183,245,225,54,82,116,225,54,217,242,224,54,76,113,224,54,171,239,223,54,245,109,223,54,43,236,222,54,78,106,222,54,92,232,221,54,87,102,221,54,61,228,220,54,16,98,220,54,207,223,219,54,122,93,219,54,18,219,218,54,150,88,218,54,6,214,217,54,99,83,217,54,173,208,216,54,227,77,216,54,6,203,215,54,22,72,215,54,19,197,214,54,252,65,214,54,211,190,213,54,150,59,213,54,70,184,
212,54,228,52,212,54,111,177,211,54,230,45,211,54,76,170,210,54,158,38,210,54,222,162,209,54,11,31,209,54,38,155,208,54,46,23,208,54,36,147,207,54,8,15,207,54,217,138,206,54,152,6,206,54,69,130,205,54,224,253,204,54,105,121,204,54,224,244,203,54,69,112,203,54,152,235,202,54,217,102,202,54,9,226,201,54,38,93,201,54,50,216,200,54,45,83,200,54,22,206,199,54,238,72,199,54,180,195,198,54,104,62,198,54,12,185,197,54,158,51,197,54,31,174,196,54,143,40,196,54,238,162,195,54,60,29,195,54,121,151,194,54,165,
17,194,54,192,139,193,54,202,5,193,54,196,127,192,54,173,249,191,54,133,115,191,54,77,237,190,54,4,103,190,54,171,224,189,54,66,90,189,54,200,211,188,54,62,77,188,54,163,198,187,54,249,63,187,54,63,185,186,54,116,50,186,54,154,171,185,54,175,36,185,54,181,157,184,54,171,22,184,54,145,143,183,54,104,8,183,54,46,129,182,54,230,249,181,54,142,114,181,54,38,235,180,54,175,99,180,54,41,220,179,54,147,84,179,54,238,204,178,54,58,69,178,54,119,189,177,54,165,53,177,54,196,173,176,54,212,37,176,54,213,157,
175,54,199,21,175,54,171,141,174,54,128,5,174,54,70,125,173,54,253,244,172,54,167,108,172,54,65,228,171,54,206,91,171,54,75,211,170,54,187,74,170,54,29,194,169,54,112,57,169,54,181,176,168,54,236,39,168,54,21,159,167,54,48,22,167,54,62,141,166,54,61,4,166,54,47,123,165,54,19,242,164,54,233,104,164,54,178,223,163,54,110,86,163,54,28,205,162,54,188,67,162,54,79,186,161,54,213,48,161,54,78,167,160,54,185,29,160,54,23,148,159,54,105,10,159,54,173,128,158,54,228,246,157,54,15,109,157,54,45,227,156,54,
61,89,156,54,66,207,155,54,57,69,155,54,36,187,154,54,3,49,154,54,213,166,153,54,155,28,153,54,84,146,152,54,1,8,152,54,162,125,151,54,54,243,150,54,191,104,150,54,59,222,149,54,172,83,149,54,16,201,148,54,105,62,148,54,182,179,147,54,247,40,147,54,44,158,146,54,86,19,146,54,117,136,145,54,135,253,144,54,143,114,144,54,138,231,143,54,123,92,143,54,96,209,142,54,58,70,142,54,9,187,141,54,205,47,141,54,134,164,140,54,51,25,140,54,214,141,139,54,110,2,139,54,251,118,138,54,126,235,137,54,246,95,137,
54,99,212,136,54,197,72,136,54,29,189,135,54,107,49,135,54,174,165,134,54,231,25,134,54,22,142,133,54,58,2,133,54,84,118,132,54,100,234,131,54,107,94,131,54,103,210,130,54,89,70,130,54,65,186,129,54,32,46,129,54,245,161,128,54,192,21,128,54,3,19,127,54,115,250,125,54,208,225,124,54,27,201,123,54,82,176,122,54,119,151,121,54,137,126,120,54,137,101,119,54,119,76,118,54,82,51,117,54,28,26,116,54,211,0,115,54,121,231,113,54,13,206,112,54,143,180,111,54,0,155,110,54,96,129,109,54,175,103,108,54,236,77,
107,54,25,52,106,54,52,26,105,54,63,0,104,54,57,230,102,54,35,204,101,54,253,177,100,54,198,151,99,54,127,125,98,54,40,99,97,54,193,72,96,54,75,46,95,54,196,19,94,54,47,249,92,54,137,222,91,54,213,195,90,54,17,169,89,54,63,142,88,54,93,115,87,54,109,88,86,54,109,61,85,54,96,34,84,54,68,7,83,54,25,236,81,54,224,208,80,54,154,181,79,54,69,154,78,54,226,126,77,54,114,99,76,54,244,71,75,54,104,44,74,54,207,16,73,54,41,245,71,54,118,217,70,54,182,189,69,54,233,161,68,54,15,134,67,54,40,106,66,54,53,78,
65,54,53,50,64,54,41,22,63,54,17,250,61,54,237,221,60,54,189,193,59,54,129,165,58,54,58,137,57,54,231,108,56,54,136,80,55,54,30,52,54,54,169,23,53,54,41,251,51,54,157,222,50,54,7,194,49,54,102,165,48,54,187,136,47,54,5,108,46,54,68,79,45,54,122,50,44,54,165,21,43,54,198,248,41,54,222,219,40,54,235,190,39,54,239,161,38,54,233,132,37,54,218,103,36,54,194,74,35,54,160,45,34,54,117,16,33,54,66,243,31,54,5,214,30,54,192,184,29,54,115,155,28,54,28,126,27,54,190,96,26,54,87,67,25,54,232,37,24,54,113,8,23,
54,243,234,21,54,108,205,20,54,222,175,19,54,73,146,18,54,172,116,17,54,7,87,16,54,92,57,15,54,170,27,14,54,240,253,12,54,48,224,11,54,105,194,10,54,156,164,9,54,200,134,8,54,238,104,7,54,14,75,6,54,40,45,5,54,60,15,4,54,73,241,2,54,82,211,1,54,84,181,0,54,163,46,255,53,147,242,252,53,120,182,250,53,83,122,248,53,36,62,246,53,235,1,244,53,169,197,241,53,93,137,239,53,9,77,237,53,171,16,235,53,70,212,232,53,215,151,230,53,97,91,228,53,227,30,226,53,94,226,223,53,209,165,221,53,61,105,219,53,162,44,
217,53,0,240,214,53,88,179,212,53,170,118,210,53,246,57,208,53,60,253,205,53,125,192,203,53,185,131,201,53,240,70,199,53,34,10,197,53,80,205,194,53,121,144,192,53,158,83,190,53,192,22,188,53,222,217,185,53,249,156,183,53,17,96,181,53,38,35,179,53,56,230,176,53,72,169,174,53,86,108,172,53,99,47,170,53,109,242,167,53,119,181,165,53,127,120,163,53,134,59,161,53,141,254,158,53,147,193,156,53,153,132,154,53,159,71,152,53,165,10,150,53,172,205,147,53,180,144,145,53,189,83,143,53,199,22,141,53,211,217,138,
53,224,156,136,53,239,95,134,53,1,35,132,53,21,230,129,53,87,82,127,53,138,216,122,53,195,94,118,53,4,229,113,53,76,107,109,53,155,241,104,53,243,119,100,53,83,254,95,53,189,132,91,53,48,11,87,53,174,145,82,53,54,24,78,53,201,158,73,53,104,37,69,53,19,172,64,53,202,50,60,53,143,185,55,53,97,64,51,53,65,199,46,53,47,78,42,53,44,213,37,53,57,92,33,53,86,227,28,53,130,106,24,53,192,241,19,53,15,121,15,53,112,0,11,53,227,135,6,53,105,15,2,53,4,46,251,52,93,61,242,52,223,76,233,52,138,92,224,52,95,108,
215,52,95,124,206,52,139,140,197,52,228,156,188,52,108,173,179,52,34,190,170,52,8,207,161,52,31,224,152,52,104,241,143,52,227,2,135,52,37,41,124,52,236,76,106,52,31,113,88,52,191,149,70,52,205,186,52,52,77,224,34,52,63,6,17,52,75,89,254,51,6,167,218,51,177,245,182,51,81,69,147,51,210,43,95,51,251,206,23,51,70,232,160,50,39,181,17,49,188,237,120,178,26,144,5,179,167,226,76,179,135,25,138,179,165,192,173,179,168,102,209,179,141,11,245,179,168,87,12,180,246,40,30,180,176,249,47,180,212,201,65,180,95,
153,83,180,79,104,101,180,164,54,119,180,45,130,132,180,184,104,141,180,242,78,150,180,219,52,159,180,112,26,168,180,178,255,176,180,159,228,185,180,54,201,194,180,119,173,203,180,96,145,212,180,241,116,221,180,41,88,230,180,6,59,239,180,136,29,248,180,215,127,0,181,187,240,4,181,112,97,9,181,246,209,13,181,76,66,18,181,113,178,22,181,101,34,27,181,40,146,31,181,185,1,36,181,24,113,40,181,68,224,44,181,61,79,49,181,2,190,53,181,147,44,58,181,239,154,62,181,22,9,67,181,8,119,71,181,195,228,75,181,
72,82,80,181,150,191,84,181,173,44,89,181,139,153,93,181,49,6,98,181,159,114,102,181,211,222,106,181,205,74,111,181,141,182,115,181,18,34,120,181,92,141,124,181,53,124,128,181,159,177,130,181,234,230,132,181,22,28,135,181,36,81,137,181,18,134,139,181,226,186,141,181,146,239,143,181,34,36,146,181,146,88,148,181,227,140,150,181,18,193,152,181,34,245,154,181,16,41,157,181,222,92,159,181,138,144,161,181,20,196,163,181,125,247,165,181,196,42,168,181,232,93,170,181,235,144,172,181,202,195,174,181,135,246,
176,181,32,41,179,181,150,91,181,181,232,141,183,181,23,192,185,181,33,242,187,181,8,36,190,181,201,85,192,181,102,135,194,181,222,184,196,181,49,234,198,181,94,27,201,181,102,76,203,181,72,125,205,181,3,174,207,181,152,222,209,181,7,15,212,181,79,63,214,181,111,111,216,181,105,159,218,181,59,207,220,181,229,254,222,181,103,46,225,181,193,93,227,181,243,140,229,181,252,187,231,181,220,234,233,181,147,25,236,181,32,72,238,181,133,118,240,181,191,164,242,181,207,210,244,181,181,0,247,181,113,46,249,
181,1,92,251,181,103,137,253,181,162,182,255,181,217,241,0,182,74,8,2,182,166,30,3,182,236,52,4,182,28,75,5,182,54,97,6,182,57,119,7,182,37,141,8,182,251,162,9,182,187,184,10,182,99,206,11,182,245,227,12,182,111,249,13,182,210,14,15,182,30,36,16,182,83,57,17,182,112,78,18,182,118,99,19,182,100,120,20,182,58,141,21,182,247,161,22,182,157,182,23,182,43,203,24,182,161,223,25,182,254,243,26,182,66,8,28,182,110,28,29,182,129,48,30,182,123,68,31,182,93,88,32,182,37,108,33,182,212,127,34,182,106,147,35,
182,230,166,36,182,73,186,37,182,146,205,38,182,193,224,39,182,215,243,40,182,210,6,42,182,180,25,43,182,123,44,44,182,40,63,45,182,186,81,46,182,50,100,47,182,144,118,48,182,210,136,49,182,250,154,50,182,7,173,51,182,248,190,52,182,207,208,53,182,138,226,54,182,42,244,55,182,174,5,57,182,22,23,58,182,99,40,59,182,148,57,60,182,169,74,61,182,162,91,62,182,126,108,63,182,63,125,64,182,226,141,65,182,106,158,66,182,213,174,67,182,35,191,68,182,84,207,69,182,104,223,70,182,95,239,71,182,57,255,72,182,
245,14,74,182,148,30,75,182,22,46,76,182,122,61,77,182,192,76,78,182,233,91,79,182,243,106,80,182,223,121,81,182,174,136,82,182,93,151,83,182,239,165,84,182,98,180,85,182,182,194,86,182,236,208,87,182,3,223,88,182,251,236,89,182,211,250,90,182,141,8,92,182,39,22,93,182,162,35,94,182,254,48,95,182,58,62,96,182,86,75,97,182,82,88,98,182,47,101,99,182,235,113,100,182,136,126,101,182,4,139,102,182,95,151,103,182,154,163,104,182,181,175,105,182,175,187,106,182,136,199,107,182,64,211,108,182,216,222,109,
182,78,234,110,182,163,245,111,182,214,0,113,182,233,11,114,182,217,22,115,182,168,33,116,182,85,44,117,182,225,54,118,182,74,65,119,182,145,75,120,182,182,85,121,182,185,95,122,182,154,105,123,182,87,115,124,182,243,124,125,182,107,134,126,182,193,143,127,182,122,76,128,182,2,209,128,182,120,85,129,182,221,217,129,182,48,94,130,182,113,226,130,182,160,102,131,182,190,234,131,182,202,110,132,182,196,242,132,182,171,118,133,182,129,250,133,182,69,126,134,182,246,1,135,182,149,133,135,182,34,9,136,
182,157,140,136,182,5,16,137,182,91,147,137,182,159,22,138,182,208,153,138,182,238,28,139,182,250,159,139,182,243,34,140,182,217,165,140,182,172,40,141,182,109,171,141,182,27,46,142,182,181,176,142,182,61,51,143,182,178,181,143,182,20,56,144,182,98,186,144,182,157,60,145,182,197,190,145,182,218,64,146,182,219,194,146,182,201,68,147,182,164,198,147,182,107,72,148,182,30,202,148,182,190,75,149,182,74,205,149,182,194,78,150,182,39,208,150,182,119,81,151,182,180,210,151,182,221,83,152,182,242,212,152,
182,243,85,153,182,224,214,153,182,184,87,154,182,125,216,154,182,45,89,155,182,201,217,155,182,80,90,156,182,196,218,156,182,34,91,157,182,109,219,157,182,162,91,158,182,195,219,158,182,208,91,159,182,199,219,159,182,170,91,160,182,121,219,160,182,50,91,161,182,214,218,161,182,102,90,162,182,224,217,162,182,69,89,163,182,150,216,163,182,209,87,164,182,247,214,164,182,7,86,165,182,3,213,165,182,233,83,166,182,185,210,166,182,116,81,167,182,26,208,167,182,170,78,168,182,36,205,168,182,137,75,169,182,
216,201,169,182,17,72,170,182,52,198,170,182,66,68,171,182,58,194,171,182,27,64,172,182,231,189,172,182,157,59,173,182,60,185,173,182,197,54,174,182,56,180,174,182,149,49,175,182,220,174,175,182,12,44,176,182,38,169,176,182,41,38,177,182,22,163,177,182,236,31,178,182,171,156,178,182,84,25,179,182,230,149,179,182,98,18,180,182,198,142,180,182,20,11,181,182,75,135,181,182,107,3,182,182,116,127,182,182,102,251,182,182,64,119,183,182,4,243,183,182,176,110,184,182,69,234,184,182,195,101,185,182,42,225,
185,182,121,92,186,182,176,215,186,182,208,82,187,182,217,205,187,182,202,72,188,182,163,195,188,182,101,62,189,182,15,185,189,182,161,51,190,182,27,174,190,182,126,40,191,182,200,162,191,182,251,28,192,182,21,151,192,182,24,17,193,182,2,139,193,182,212,4,194,182,142,126,194,182,47,248,194,182,185,113,195,182,42,235,195,182,130,100,196,182,194,221,196,182,234,86,197,182,249,207,197,182],"i8",4,y.a+1126400);
Q([239,72,198,182,205,193,198,182,146,58,199,182,62,179,199,182,209,43,200,182,76,164,200,182,174,28,201,182,247,148,201,182,38,13,202,182,61,133,202,182,59,253,202,182,32,117,203,182,235,236,203,182,157,100,204,182,54,220,204,182,182,83,205,182,28,203,205,182,105,66,206,182,156,185,206,182,182,48,207,182,182,167,207,182,157,30,208,182,106,149,208,182,30,12,209,182,183,130,209,182,55,249,209,182,157,111,210,182,234,229,210,182,28,92,211,182,52,210,211,182,50,72,212,182,23,190,212,182,225,51,213,182,
145,169,213,182,39,31,214,182,162,148,214,182,3,10,215,182,74,127,215,182,119,244,215,182,137,105,216,182,129,222,216,182,94,83,217,182,32,200,217,182,200,60,218,182,86,177,218,182,200,37,219,182,32,154,219,182,93,14,220,182,127,130,220,182,135,246,220,182,115,106,221,182,68,222,221,182,251,81,222,182,150,197,222,182,22,57,223,182,123,172,223,182,197,31,224,182,244,146,224,182,7,6,225,182,255,120,225,182,220,235,225,182,157,94,226,182,67,209,226,182,205,67,227,182,60,182,227,182,143,40,228,182,198,
154,228,182,226,12,229,182,226,126,229,182,198,240,229,182,143,98,230,182,59,212,230,182,204,69,231,182,64,183,231,182,153,40,232,182,214,153,232,182,246,10,233,182,250,123,233,182,227,236,233,182,175,93,234,182,94,206,234,182,242,62,235,182,105,175,235,182,196,31,236,182,2,144,236,182,35,0,237,182,41,112,237,182,17,224,237,182,221,79,238,182,141,191,238,182,31,47,239,182,149,158,239,182,238,13,240,182,43,125,240,182,74,236,240,182,77,91,241,182,50,202,241,182,251,56,242,182,166,167,242,182,53,22,
243,182,166,132,243,182,250,242,243,182,49,97,244,182,75,207,244,182,71,61,245,182,38,171,245,182,232,24,246,182,140,134,246,182,19,244,246,182,124,97,247,182,199,206,247,182,245,59,248,182,6,169,248,182,249,21,249,182,206,130,249,182,133,239,249,182,30,92,250,182,154,200,250,182,248,52,251,182,55,161,251,182,89,13,252,182,93,121,252,182,67,229,252,182,10,81,253,182,180,188,253,182,63,40,254,182,172,147,254,182,251,254,254,182,43,106,255,182,61,213,255,182,25,32,0,183,131,85,0,183,223,138,0,183,43,
192,0,183,104,245,0,183,149,42,1,183,180,95,1,183,195,148,1,183,194,201,1,183,178,254,1,183,147,51,2,183,100,104,2,183,38,157,2,183,217,209,2,183,124,6,3,183,15,59,3,183,147,111,3,183,8,164,3,183,109,216,3,183,194,12,4,183,8,65,4,183,62,117,4,183,100,169,4,183,123,221,4,183,130,17,5,183,121,69,5,183,97,121,5,183,57,173,5,183,1,225,5,183,186,20,6,183,98,72,6,183,251,123,6,183,132,175,6,183,253,226,6,183,102,22,7,183,192,73,7,183,9,125,7,183,66,176,7,183,108,227,7,183,133,22,8,183,143,73,8,183,136,
124,8,183,114,175,8,183,75,226,8,183,21,21,9,183,206,71,9,183,119,122,9,183,16,173,9,183,153,223,9,183,17,18,10,183,122,68,10,183,210,118,10,183,26,169,10,183,82,219,10,183,122,13,11,183,145,63,11,183,152,113,11,183,142,163,11,183,117,213,11,183,75,7,12,183,16,57,12,183,197,106,12,183,106,156,12,183,254,205,12,183,130,255,12,183,246,48,13,183,88,98,13,183,171,147,13,183,237,196,13,183,30,246,13,183,63,39,14,183,79,88,14,183,78,137,14,183,61,186,14,183,27,235,14,183,233,27,15,183,166,76,15,183,82,
125,15,183,238,173,15,183,120,222,15,183,242,14,16,183,92,63,16,183,180,111,16,183,252,159,16,183,51,208,16,183,89,0,17,183,110,48,17,183,114,96,17,183,101,144,17,183,72,192,17,183,25,240,17,183,218,31,18,183,137,79,18,183,40,127,18,183,182,174,18,183,50,222,18,183,158,13,19,183,248,60,19,183,66,108,19,183,122,155,19,183,161,202,19,183,183,249,19,183,188,40,20,183,176,87,20,183,146,134,20,183,100,181,20,183,36,228,20,183,211,18,21,183,112,65,21,183,253,111,21,183,120,158,21,183,226,204,21,183,58,
251,21,183,129,41,22,183,183,87,22,183,219,133,22,183,238,179,22,183,240,225,22,183,224,15,23,183,191,61,23,183,140,107,23,183,72,153,23,183,242,198,23,183,139,244,23,183,18,34,24,183,136,79,24,183,236,124,24,183,62,170,24,183,127,215,24,183,175,4,25,183,204,49,25,183,216,94,25,183,211,139,25,183,188,184,25,183,147,229,25,183,88,18,26,183,11,63,26,183,173,107,26,183,61,152,26,183,188,196,26,183,40,241,26,183,131,29,27,183,204,73,27,183,3,118,27,183,40,162,27,183,59,206,27,183,60,250,27,183,44,38,
28,183,9,82,28,183,213,125,28,183,142,169,28,183,54,213,28,183,204,0,29,183,79,44,29,183,193,87,29,183,32,131,29,183,110,174,29,183,169,217,29,183,211,4,30,183,234,47,30,183,239,90,30,183,226,133,30,183,195,176,30,183,145,219,30,183,78,6,31,183,248,48,31,183,144,91,31,183,22,134,31,183,138,176,31,183,235,218,31,183,58,5,32,183,119,47,32,183,161,89,32,183,185,131,32,183,191,173,32,183,178,215,32,183,147,1,33,183,98,43,33,183,30,85,33,183,200,126,33,183,95,168,33,183,228,209,33,183,87,251,33,183,183,
36,34,183,4,78,34,183,63,119,34,183,104,160,34,183,126,201,34,183,129,242,34,183,114,27,35,183,80,68,35,183,28,109,35,183,213,149,35,183,123,190,35,183,15,231,35,183,144,15,36,183,254,55,36,183,90,96,36,183,163,136,36,183,217,176,36,183,253,216,36,183,14,1,37,183,12,41,37,183,247,80,37,183,208,120,37,183,149,160,37,183,72,200,37,183,232,239,37,183,117,23,38,183,240,62,38,183,87,102,38,183,172,141,38,183,237,180,38,183,28,220,38,183,56,3,39,183,65,42,39,183,55,81,39,183,26,120,39,183,234,158,39,183,
166,197,39,183,80,236,39,183,231,18,40,183,107,57,40,183,220,95,40,183,58,134,40,183,132,172,40,183,188,210,40,183,224,248,40,183,241,30,41,183,239,68,41,183,218,106,41,183,178,144,41,183,119,182,41,183,40,220,41,183,198,1,42,183,81,39,42,183,201,76,42,183,46,114,42,183,127,151,42,183,189,188,42,183,232,225,42,183,255,6,43,183,3,44,43,183,244,80,43,183,209,117,43,183,155,154,43,183,82,191,43,183,245,227,43,183,133,8,44,183,1,45,44,183,106,81,44,183,192,117,44,183,2,154,44,183,49,190,44,183,76,226,
44,183,84,6,45,183,72,42,45,183,41,78,45,183,246,113,45,183,176,149,45,183,86,185,45,183,232,220,45,183,103,0,46,183,211,35,46,183,42,71,46,183,110,106,46,183,159,141,46,183,188,176,46,183,197,211,46,183,187,246,46,183,157,25,47,183,107,60,47,183,37,95,47,183,204,129,47,183,95,164,47,183,223,198,47,183,74,233,47,183,162,11,48,183,230,45,48,183,22,80,48,183,51,114,48,183,60,148,48,183,49,182,48,183,18,216,48,183,223,249,48,183,152,27,49,183,61,61,49,183,207,94,49,183,77,128,49,183,183,161,49,183,12,
195,49,183,78,228,49,183,124,5,50,183,150,38,50,183,156,71,50,183,143,104,50,183,109,137,50,183,55,170,50,183,237,202,50,183,143,235,50,183,29,12,51,183,151,44,51,183,253,76,51,183,79,109,51,183,141,141,51,183,183,173,51,183,204,205,51,183,206,237,51,183,187,13,52,183,149,45,52,183,90,77,52,183,11,109,52,183,168,140,52,183,49,172,52,183,165,203,52,183,5,235,52,183,81,10,53,183,137,41,53,183,173,72,53,183,188,103,53,183,184,134,53,183,158,165,53,183,113,196,53,183,47,227,53,183,217,1,54,183,111,32,
54,183,241,62,54,183,94,93,54,183,183,123,54,183,251,153,54,183,43,184,54,183,71,214,54,183,78,244,54,183,65,18,55,183,32,48,55,183,234,77,55,183,160,107,55,183,65,137,55,183,206,166,55,183,70,196,55,183,170,225,55,183,250,254,55,183,53,28,56,183,91,57,56,183,110,86,56,183,107,115,56,183,84,144,56,183,41,173,56,183,233,201,56,183,148,230,56,183,43,3,57,183,173,31,57,183,27,60,57,183,116,88,57,183,185,116,57,183,233,144,57,183,4,173,57,183,11,201,57,183,253,228,57,183,219,0,58,183,164,28,58,183,88,
56,58,183,247,83,58,183,130,111,58,183,248,138,58,183,90,166,58,183,167,193,58,183,223,220,58,183,2,248,58,183,17,19,59,183,11,46,59,183,240,72,59,183,192,99,59,183,124,126,59,183,35,153,59,183,181,179,59,183,50,206,59,183,154,232,59,183,238,2,60,183,45,29,60,183,87,55,60,183,108,81,60,183,109,107,60,183,88,133,60,183,47,159,60,183,240,184,60,183,157,210,60,183,53,236,60,183,185,5,61,183,39,31,61,183,128,56,61,183,196,81,61,183,244,106,61,183,14,132,61,183,20,157,61,183,5,182,61,183,224,206,61,183,
167,231,61,183,89,0,62,183,246,24,62,183,125,49,62,183,240,73,62,183,78,98,62,183,151,122,62,183,203,146,62,183,233,170,62,183,243,194,62,183,232,218,62,183,199,242,62,183,146,10,63,183,71,34,63,183,232,57,63,183,115,81,63,183,233,104,63,183,74,128,63,183,150,151,63,183,205,174,63,183,239,197,63,183,252,220,63,183,243,243,63,183,214,10,64,183,163,33,64,183,91,56,64,183,254,78,64,183,140,101,64,183,4,124,64,183,104,146,64,183,182,168,64,183,239,190,64,183,19,213,64,183,33,235,64,183,27,1,65,183,255,
22,65,183,206,44,65,183,136,66,65,183,44,88,65,183,187,109,65,183,53,131,65,183,154,152,65,183,233,173,65,183,36,195,65,183,72,216,65,183,88,237,65,183,82,2,66,183,55,23,66,183,7,44,66,183,193,64,66,183,103,85,66,183,246,105,66,183,113,126,66,183,214,146,66,183,37,167,66,183,96,187,66,183,133,207,66,183,148,227,66,183,143,247,66,183,116,11,67,183,67,31,67,183,253,50,67,183,162,70,67,183,49,90,67,183,171,109,67,183,16,129,67,183,95,148,67,183,153,167,67,183,189,186,67,183,204,205,67,183,197,224,67,
183,169,243,67,183,120,6,68,183,49,25,68,183,213,43,68,183,99,62,68,183,219,80,68,183,63,99,68,183,140,117,68,183,197,135,68,183,231,153,68,183,245,171,68,183,236,189,68,183,207,207,68,183,155,225,68,183,83,243,68,183,244,4,69,183,129,22,69,183,247,39,69,183,88,57,69,183,164,74,69,183,218,91,69,183,251,108,69,183,6,126,69,183,251,142,69,183,219,159,69,183,165,176,69,183,90,193,69,183,249,209,69,183,130,226,69,183,246,242,69,183,85,3,70,183,157,19,70,183,209,35,70,183,238,51,70,183,246,67,70,183,232,
83,70,183,197,99,70,183,140,115,70,183,62,131,70,183,218,146,70,183,96,162,70,183,209,177,70,183,43,193,70,183,113,208,70,183,160,223,70,183,186,238,70,183,191,253,70,183,174,12,71,183,135,27,71,183,74,42,71,183,248,56,71,183,144,71,71,183,18,86,71,183,127,100,71,183,214,114,71,183,23,129,71,183,67,143,71,183,89,157,71,183,89,171,71,183,67,185,71,183,24,199,71,183,215,212,71,183,129,226,71,183,20,240,71,183,146,253,71,183,250,10,72,183,77,24,72,183,138,37,72,183,177,50,72,183,194,63,72,183,190,76,
72,183,164,89,72,183,116,102,72,183,46,115,72,183,211,127,72,183,97,140,72,183,219,152,72,183,62,165,72,183,140,177,72,183,195,189,72,183,229,201,72,183,242,213,72,183,232,225,72,183,201,237,72,183,148,249,72,183,73,5,73,183,233,16,73,183,114,28,73,183,230,39,73,183,68,51,73,183,141,62,73,183,191,73,73,183,220,84,73,183,227,95,73,183,212,106,73,183,175,117,73,183,117,128,73,183,36,139,73,183,190,149,73,183,66,160,73,183,177,170,73,183,9,181,73,183,76,191,73,183,121,201,73,183,144,211,73,183,145,221,
73,183,124,231,73,183,82,241,73,183,18,251,73,183,188,4,74,183,80,14,74,183,206,23,74,183,55,33,74,183,137,42,74,183,198,51,74,183,237,60,74,183,254,69,74,183,249,78,74,183,223,87,74,183,174,96,74,183,104,105,74,183,12,114,74,183,154,122,74,183,19,131,74,183,117,139,74,183,194,147,74,183,248,155,74,183,25,164,74,183,36,172,74,183,25,180,74,183,249,187,74,183,194,195,74,183,118,203,74,183,20,211,74,183,155,218,74,183,14,226,74,183,106,233,74,183,176,240,74,183,225,247,74,183,251,254,74,183,0,6,75,
183,239,12,75,183,200,19,75,183,139,26,75,183,57,33,75,183,208,39,75,183,82,46,75,183,190,52,75,183,20,59,75,183,84,65,75,183,126,71,75,183,146,77,75,183,145,83,75,183,122,89,75,183,76,95,75,183,9,101,75,183,176,106,75,183,66,112,75,183,189,117,75,183,34,123,75,183,114,128,75,183,172,133,75,183,208,138,75,183,222,143,75,183,214,148,75,183,184,153,75,183,133,158,75,183,60,163,75,183,220,167,75,183,103,172,75,183,220,176,75,183,60,181,75,183,133,185,75,183,185,189,75,183,214,193,75,183,222,197,75,183,
208,201,75,183,172,205,75,183,115,209,75,183,35,213,75,183,190,216,75,183,66,220,75,183,177,223,75,183,10,227,75,183,78,230,75,183,123,233,75,183,147,236,75,183,148,239,75,183,128,242,75,183,86,245,75,183,22,248,75,183,193,250,75,183,85,253,75,183,212,255,75,183,61,2,76,183,144,4,76,183,205,6,76,183,245,8,76,183,6,11,76,183,2,13,76,183,232,14,76,183,184,16,76,183,114,18,76,183,23,20,76,183,166,21,76,183,31,23,76,183,130,24,76,183,207,25,76,183,6,27,76,183,40,28,76,183,52,29,76,183,42,30,76,183,10,
31,76,183,213,31,76,183,137,32,76,183,40,33,76,183,177,33,76,183,37,34,76,183,130,34,76,183,202,34,76,183,252,34,76,183,24,35,76,183,31,35,76,183,15,35,76,183,234,34,76,183,175,34,76,183,95,34,76,183,248,33,76,183,124,33,76,183,234,32,76,183,67,32,76,183,133,31,76,183,178,30,76,183,201,29,76,183,203,28,76,183,182,27,76,183,140,26,76,183,76,25,76,183,247,23,76,183,139,22,76,183,10,21,76,183,116,19,76,183,199,17,76,183,5,16,76,183,45,14,76,183,63,12,76,183,60,10,76,183,35,8,76,183,244,5,76,183,176,
3,76,183,86,1,76,183,230,254,75,183,97,252,75,183,198,249,75,183,21,247,75,183,78,244,75,183,114,241,75,183,128,238,75,183,121,235,75,183,92,232,75,183,41,229,75,183,224,225,75,183,130,222,75,183,15,219,75,183,133,215,75,183,230,211,75,183,50,208,75,183,103,204,75,183,135,200,75,183,146,196,75,183,135,192,75,183,102,188,75,183,48,184,75,183,228,179,75,183,130,175,75,183,11,171,75,183,126,166,75,183,220,161,75,183,36,157,75,183,87,152,75,183,116,147,75,183,123,142,75,183,109,137,75,183,73,132,75,183,
16,127,75,183,193,121,75,183,93,116,75,183,227,110,75,183,83,105,75,183,174,99,75,183,244,93,75,183,36,88,75,183,62,82,75,183,67,76,75,183,51,70,75,183,12,64,75,183,209,57,75,183,128,51,75,183,25,45,75,183,157,38,75,183,12,32,75,183,101,25,75,183,168,18,75,183,214,11,75,183,239,4,75,183,242,253,74,183,224,246,74,183,184,239,74,183,123,232,74,183,41,225,74,183,193,217,74,183,67,210,74,183,177,202,74,183,8,195,74,183,75,187,74,183,120,179,74,183,143,171,74,183,146,163,74,183,127,155,74,183,86,147,74,
183,24,139,74,183,197,130,74,183,92,122,74,183,222,113,74,183,75,105,74,183,163,96,74,183,229,87,74,183,17,79,74,183,41,70,74,183,43,61,74,183,24,52,74,183,239,42,74,183,177,33,74,183,94,24,74,183,246,14,74,183,120,5,74,183,229,251,73,183,61,242,73,183,128,232,73,183,173,222,73,183,197,212,73,183,200,202,73,183,182,192,73,183,142,182,73,183,81,172,73,183,255,161,73,183,152,151,73,183,28,141,73,183,138,130,73,183,227,119,73,183,39,109,73,183,86,98,73,183,112,87,73,183,117,76,73,183,100,65,73,183,62,
54,73,183,3,43,73,183,179,31,73,183,78,20,73,183,212,8,73,183,69,253,72,183,160,241,72,183,231,229,72,183,24,218,72,183,53,206,72,183,60,194,72,183,46,182,72,183,11,170,72,183,212,157,72,183,135,145,72,183,37,133,72,183,174,120,72,183,34,108,72,183,129,95,72,183,203,82,72,183,0,70,72,183,32,57,72,183,43,44,72,183,33,31,72,183,2,18,72,183,206,4,72,183,133,247,71,183,40,234,71,183,181,220,71,183,46,207,71,183,145,193,71,183,224,179,71,183,25,166,71,183,62,152,71,183,78,138,71,183,73,124,71,183,47,110,
71,183,1,96,71,183,189,81,71,183,101,67,71,183,248,52,71,183,118,38,71,183,223,23,71,183,51,9,71,183,115,250,70,183,158,235,70,183,180,220,70,183,181,205,70,183,162,190,70,183,121,175,70,183,60,160,70,183,235,144,70,183,132,129,70,183,9,114,70,183,121,98,70,183,213,82,70,183,27,67,70,183,77,51,70,183,107,35,70,183,115,19,70,183,103,3,70,183,71,243,69,183,17,227,69,183,199,210,69,183,105,194,69,183,246,177,69,183,110,161,69,183,210,144,69,183,33,128,69,183,91,111,69,183,129,94,69,183,147,77,69,183,
144,60,69,183,120,43,69,183,76,26,69,183,11,9,69,183,182,247,68,183,76,230,68,183,206,212,68,183,59,195,68,183,148,177,68,183,216,159,68,183,8,142,68,183,36,124,68,183,43,106,68,183,29,88,68,183,251,69,68,183,197,51,68,183,123,33,68,183,28,15,68,183,168,252,67,183,33,234,67,183,133,215,67,183,212,196,67,183,15,178,67,183,54,159,67,183,73,140,67,183,71,121,67,183,49,102,67,183,7,83,67,183,201,63,67,183,118,44,67,183,15,25,67,183,148,5,67,183,4,242,66,183,97,222,66,183,169,202,66,183,221,182,66,183,
252,162,66,183,8,143,66,183,255,122,66,183,226,102,66,183,177,82,66,183,108,62,66,183,19,42,66,183,166,21,66,183,37,1,66,183,143,236,65,183,229,215,65,183,40,195,65,183,86,174,65,183,112,153,65,183,119,132,65,183,105,111,65,183,71,90,65,183,17,69,65,183,199,47,65,183,106,26,65,183,248,4,65,183,114,239,64,183,216,217,64,183,43,196,64,183,105,174,64,183,148,152,64,183,171,130,64,183,173,108,64,183,156,86,64,183,119,64,64,183,63,42,64,183,242,19,64,183,145,253,63,183,29,231,63,183,149,208,63,183,249,
185,63,183,73,163,63,183,134,140,63,183,175,117,63,183,196,94,63,183,197,71,63,183,178,48,63,183,140,25,63,183,82,2,63,183,5,235,62,183,164,211,62,183,47,188,62,183,166,164,62,183,10,141,62,183,90,117,62,183,151,93,62,183,192,69,62,183,213,45,62,183,215,21,62,183,197,253,61,183,159,229,61,183,103,205,61,183,26,181,61,183,186,156,61,183,71,132,61,183,192,107,61,183,37,83,61,183,119,58,61,183,182,33,61,183,225,8,61,183,249,239,60,183,253,214,60,183,238,189,60,183,204,164,60,183,150,139,60,183,76,114,
60,183,240,88,60,183,128,63,60,183,253,37,60,183,102,12,60,183,188,242,59,183,255,216,59,183,46,191,59,183,75,165,59,183,84,139,59,183,73,113,59,183,44,87,59,183,251,60,59,183,183,34,59,183,96,8,59,183,246,237,58,183,121,211,58,183,232,184,58,183,68,158,58,183,142,131,58,183,196,104,58,183,231,77,58,183,247,50,58,183,243,23,58,183,221,252,57,183,180,225,57,183,120,198,57,183,40,171,57,183,198,143,57,183,81,116,57,183,200,88,57,183,45,61,57,183,127,33,57,183,190,5,57,183,234,233,56,183,3,206,56,183,
9,178,56,183,252,149,56,183,221,121,56,183,170,93,56,183,101,65,56,183,13,37,56,183,162,8,56,183,36,236,55,183,148,207,55,183,241,178,55,183,59,150,55,183,114,121,55,183,151,92,55,183,168,63,55,183,168,34,55,183,148,5,55,183,110,232,54,183,53,203,54,183,233,173,54,183,139,144,54,183,27,115,54,183,151,85,54,183,1,56,54,183,89,26,54,183,158,252,53,183,208,222,53,183,240,192,53,183,254,162,53,183,248,132,53,183,225,102,53,183,183,72,53,183,122,42,53,183,43,12,53,183,202,237,52,183,86,207,52,183,208,
176,52,183,56,146,52,183,141,115,52,183,207,84,52,183,0,54,52,183,30,23,52,183,42,248,51,183,35,217,51,183,11,186,51,183,224,154,51,183,162,123,51,183,83,92,51,183,241,60,51,183,125,29,51,183,247,253,50,183,95,222,50,183,181,190,50,183,248,158,50,183,42,127,50,183,73,95,50,183,86,63,50,183,81,31,50,183,58,255,49,183,17,223,49,183,214,190,49,183,137,158,49,183,42,126,49,183,185,93,49,183,54,61,49,183,161,28,49,183,250,251,48,183,66,219,48,183,119,186,48,183,154,153,48,183,172,120,48,183,172,87,48,
183,153,54,48,183,117,21,48,183,64,244,47,183,248,210,47,183,159,177,47,183,52,144,47,183,183,110,47,183,40,77,47,183,136,43,47,183,214,9,47,183,18,232,46,183,61,198,46,183,86,164,46,183,93,130,46,183,83,96,46,183,55,62,46,183,10,28,46,183,203,249,45,183,122,215,45,183,24,181,45,183,165,146,45,183,32,112,45,183,137,77,45,183,225,42,45,183,40,8,45,183,93,229,44,183,128,194,44,183,147,159,44,183,147,124,44,183,131,89,44,183,97,54,44,183,46,19,44,183,233,239,43,183,148,204,43,183,44,169,43,183,180,133,
43,183,42,98,43,183,144,62,43,183,227,26,43,183,38,247,42,183,88,211,42,183,120,175,42,183,135,139,42,183,133,103,42,183,114,67,42,183,78,31,42,183,25,251,41,183,211,214,41,183,123,178,41,183,19,142,41,183,153,105,41,183,15,69,41,183,116,32,41,183,199,251,40,183,10,215,40,183,60,178,40,183,93,141,40,183,109,104,40,183,108,67,40,183,90,30,40,183,55,249,39,183,4,212,39,183,192,174,39,183,107,137,39,183,5,100,39,183,142,62,39,183,7,25,39,183,111,243,38,183,198,205,38,183,13,168,38,183,67,130,38,183,
104,92,38,183,125,54,38,183,129,16,38,183,116,234,37,183,87,196,37,183,41,158,37,183,235,119,37,183,156,81,37,183,61,43,37,183,205,4,37,183,77,222,36,183,188,183,36,183,27,145,36,183,105,106,36,183,167,67,36,183,213,28,36,183,242,245,35,183,255,206,35,183,252,167,35,183,232,128,35,183,196,89,35,183,144,50,35,183,75,11,35,183,246,227,34,183,145,188,34,183,28,149,34,183,151,109,34,183,1,70,34,183,92,30,34,183,166,246,33,183,224,206,33,183,10,167,33,183,36,127,33,183,46,87,33,183,40,47,33,183,17,7,33,
183,235,222,32,183,181,182,32,183,111,142,32,183,25,102,32,183,179,61,32,183,61,21,32,183,183,236,31,183,34,196,31,183,124,155,31,183,199,114,31,183,2,74,31,183,45,33,31,183,72,248,30,183,83,207,30,183,79,166,30,183,59,125,30,183,24,84,30,183,228,42,30,183,162,1,30,183,79,216,29,183,237,174,29,183,123,133,29,183,249,91,29,183,105,50,29,183,200,8,29,183,24,223,28,183,88,181,28,183,137,139,28,183,171,97,28,183,189,55,28,183,192,13,28,183,179,227,27,183,151,185,27,183,107,143,27,183,48,101,27,183,230,
58,27,183,140,16,27,183,35,230,26,183,171,187,26,183,36,145,26,183,141,102,26,183,231,59,26,183,50,17,26,183,110,230,25,183,155,187,25,183,184,144,25,183,198,101,25,183,198,58,25,183,182,15,25,183,151,228,24,183,105,185,24,183,44,142,24,183,224,98,24,183,133,55,24,183,27,12,24,183,162,224,23,183,27,181,23,183,132,137,23,183,222,93,23,183,42,50,23,183,103,6,23,183,149,218,22,183,180,174,22,183,196,130,22,183,198,86,22,183,184,42,22,183,157,254,21,183,114,210,21,183,57,166,21,183,241,121,21,183,154,
77,21,183,53,33,21,183,193,244,20,183,63,200,20,183,174,155,20,183,14,111,20,183,96,66,20,183,164,21,20,183,217,232,19,183,255,187,19,183,23,143,19,183,33,98,19,183,28,53,19,183,9,8,19,183,232,218,18,183,184,173,18,183,122,128,18,183,45,83,18,183,211,37,18,183,106,248,17,183,243,202,17,183,109,157,17,183,218,111,17,183,56,66,17,183,136,20,17,183,202,230,16,183,254,184,16,183,35,139,16,183,59,93,16,183,69,47,16,183,64,1,16,183,46,211,15,183,13,165,15,183,223,118,15,183,163,72,15,183,89,26,15,183,0,
236,14,183,154,189,14,183,39,143,14,183,165,96,14,183,21,50,14,183,120,3,14,183,205,212,13,183,20,166,13,183,77,119,13,183,121,72,13,183,151,25,13,183,167,234,12,183,170,187,12,183,159,140,12,183,134,93,12,183,96,46,12,183,44,255,11,183,235,207,11,183,156,160,11,183,64,113,11,183,214,65,11,183,95,18,11,183,218,226,10,183,72,179,10,183,169,131,10,183,252,83,10,183,65,36,10,183,122,244,9,183,165,196,9,183,195,148,9,183,211,100,9,183,215,52,9,183,205,4,9,183,182,212,8,183,145,164,8,183,96,116,8,183,
33,68,8,183,214,19,8,183,125,227,7,183,23,179,7,183,164,130,7,183,36,82,7,183,151,33,7,183,253,240,6,183,86,192,6,183,162,143,6,183,226,94,6,183,20,46,6,183,57,253,5,183,82,204,5,183,94,155,5,183,93,106,5,183,79,57,5,183,52,8,5,183,13,215,4,183,217,165,4,183,152,116,4,183,74,67,4,183,240,17,4,183,137,224,3,183,22,175,3,183,150,125,3,183,9,76,3,183,112,26,3,183,203,232,2,183,25,183,2,183,90,133,2,183,143,83,2,183,183,33,2,183,211,239,1,183,227,189,1,183,230,139,1,183,221,89,1,183,200,39,1,183,166,
245,0,183,120,195,0,183,62,145,0,183,248,94,0,183,165,44,0,183,140,244,255,182,182,143,255,182,200,42,255,182,193,197,254,182,163,96,254,182,108,251,253,182,28,150,253,182,181,48,253,182,54,203,252,182,159,101,252,182,240,255,251,182,41,154,251,182,74,52,251,182,83,206,250,182,69,104,250,182,31,2,250,182,225,155,249,182,140,53,249,182,31,207,248,182,154,104,248,182,254,1,248,182,75,155,247,182,128,52,247,182,158,205,246,182,165,102,246,182,148,255,245,182,108,152,245,182,45,49,245,182,215,201,244,
182,105,98,244,182,229,250,243,182,74,147,243,182,152,43,243,182,207,195,242,182,239,91,242,182,248,243,241,182,234,139,241,182,198,35,241,182,139,187,240,182,58,83,240,182,210,234,239,182,83,130,239,182,190,25,239,182,19,177,238,182,81,72,238,182,121,223,237,182,138,118,237,182,134,13,237,182,107,164,236,182,58,59,236,182,242,209,235,182,149,104,235,182,34,255,234,182,153,149,234,182,250,43,234,182,69,194,233,182,122,88,233,182,153,238,232,182,163,132,232,182,151,26,232,182,117,176,231,182,62,70,
231,182,241,219,230,182,143,113,230,182,23,7,230,182,138,156,229,182,231,49,229,182,48,199,228,182,99,92,228,182,128,241,227,182,137,134,227,182,124,27,227,182,90,176,226,182,36,69,226,182,216,217,225,182,119,110,225,182,2,3,225,182,120,151,224,182,216,43,224,182,37,192,223,182,92,84,223,182,127,232,222,182,141,124,222,182,134,16,222,182,108,164,221,182,60,56,221,182,248,203,220,182,160,95,220,182,52,243,219,182,179,134,219,182,30,26,219,182,117,173,218,182,183,64,218,182,230,211,217,182,1,103,217,
182,7,250,216,182,250,140,216,182,217,31,216,182,164,178,215,182,91,69,215,182,254,215,214,182,142,106,214,182,10,253,213,182,114,143,213,182,199,33,213,182,9,180,212,182,54,70,212,182,81,216,211,182,88,106,211,182,76,252,210,182,44,142,210,182,250,31,210,182,180,177,209,182,91,67,209,182,239,212,208,182,112,102,208,182,222,247,207,182,57,137,207,182,129,26,207,182,182,171,206,182,217,60,206,182,232,205,205,182,230,94,205,182,208,239,204,182,168,128,204,182,109,17,204,182,32,162,203,182,192,50,203,
182,78,195,202,182,202,83,202,182,51,228,201,182,138,116,201,182,207,4,201,182,2,149,200,182,34,37,200,182,49,181,199,182,45,69,199,182,24,213,198,182,241,100,198,182,183,244,197,182,108,132,197,182,16,20,197,182,161,163,196,182,33,51,196,182,143,194,195,182,236,81,195,182,55,225,194,182,113,112,194,182,153,255,193,182,176,142,193,182,181,29,193,182,169,172,192,182,140,59,192,182,94,202,191,182,31,89,191,182,207,231,190,182,109,118,190,182,251,4,190,182,120,147,189,182,227,33,189,182,62,176,188,182,
137,62,188,182,194,204,187,182,235,90,187,182,3,233,186,182,11,119,186,182,2,5,186,182,232,146,185,182,190,32,185,182,132,174,184,182,57,60,184,182,222,201,183,182,115,87,183,182,248,228,182,182,108,114,182,182,209,255,181,182,37,141,181,182,106,26,181,182,158,167,180,182,194,52,180,182,215,193,179,182,220,78,179,182,209,219,178,182,183,104,178,182,141,245,177,182,83,130,177,182,10,15,177,182,177,155,176,182,72,40,176,182,209,180,175,182,74,65,175,182,180,205,174,182,14,90,174,182,89,230,173,182,
150,114,173,182,195,254,172,182,225,138,172,182,240,22,172,182,240,162,171,182,225,46,171,182,195,186,170,182,151,70,170,182,91,210,169,182,17,94,169,182,185,233,168,182,82,117,168,182,220,0,168,182,88,140,167,182,197,23,167,182,36,163,166,182,117,46,166,182,183,185,165,182,235,68,165,182,17,208,164,182,41,91,164,182,51,230,163,182,46,113,163,182,28,252,162,182,252,134,162,182,205,17,162,182,145,156,161,182,72,39,161,182,240,177,160,182,139,60,160,182,24,199,159,182,152,81,159,182,10,220,158,182,
110,102,158,182,197,240,157,182,15,123,157,182,75,5,157,182,122,143,156,182,156,25,156,182,177,163,155,182,184,45,155,182,179,183,154,182,160,65,154,182,129,203,153,182,84,85,153,182,27,223,152,182,213,104,152,182,130,242,151,182,34,124,151,182,182,5,151,182,61,143,150,182,183,24,150,182,37,162,149,182,134,43,149,182,219,180,148,182,36,62,148,182,96,199,147,182,144,80,147,182,180,217,146,182,204,98,146,182,216,235,145,182,215,116,145,182,203,253,144,182,178,134,144,182,142,15,144,182,93,152,143,182,
33,33,143,182,218,169,142,182,134,50,142,182,39,187,141,182,188,67,141,182,70,204,140,182,196,84,140,182,55,221,139,182,158,101,139,182,250,237,138,182,75,118,138,182,144,254,137,182,202,134,137,182,249,14,137,182,29,151,136,182,54,31,136,182,68,167,135,182,71,47,135,182,64,183,134,182,45,63,134,182,15,199,133,182,231,78,133,182,180,214,132,182,119,94,132,182,47,230,131,182,220,109,131,182,127,245,130,182,23,125,130,182,165,4,130,182,41,140,129,182,163,19,129,182,18,155,128,182,119,34,128,182,164,
83,127,182,70,98,126,182,212,112,125,182,78,127,124,182,180,141,123,182,6,156,122,182,69,170,121,182,112,184,120,182,136,198,119,182,140,212,118,182,126,226,117,182,92,240,116,182,39,254,115,182,223,11,115,182,133,25,114,182,23,39,113,182,152,52,112,182,5,66,111,182,97,79,110,182,170,92,109,182,225,105,108,182,6,119,107,182,25,132,106,182,26,145,105,182,9,158,104,182,230,170,103,182,178,183,102,182,109,196,101,182,22,209,100,182,174,221,99,182,53,234,98,182,171,246,97,182,16,3,97,182,100,15,96,182,
167,27,95,182,218,39,94,182,252,51,93,182,14,64,92,182,16,76,91,182,1,88,90,182,226,99,89,182,179,111,88,182,117,123,87,182,38,135,86,182,200,146,85,182,90,158,84,182,221,169,83,182,80,181,82,182,180,192,81,182,9,204,80,182,79,215,79,182,134,226,78,182,174,237,77,182,199,248,76,182,210,3,76,182,206,14,75,182,187,25,74,182,155,36,73,182,108,47,72,182,47,58,71,182,227,68,70,182,138,79,69,182,36,90,68,182,175,100,67,182,45,111,66,182,157,121,65,182,0,132,64,182,86,142,63,182,158,152,62,182,217,162,61,
182,7,173,60,182,41,183,59,182,62,193,58,182,69,203,57,182,65,213,56,182,48,223,55,182,18,233,54,182,233,242,53,182,179,252,52,182,113,6,52,182,35,16,51,182,201,25,50,182,100,35,49,182,243,44,48,182,118,54,47,182,238,63,46,182,90,73,45,182,188,82,44,182,18,92,43,182,93,101,42,182,158,110,41,182,211,119,40,182,254,128,39,182,30,138,38,182,52,147,37,182,63,156,36,182,65,165,35,182,55,174,34,182,36,183,33,182,7,192,32,182,224,200,31,182,175,209,30,182,117,218,29,182,49,227,28,182,227,235,27,182,141,
244,26,182,44,253,25,182,195,5,25,182,81,14,24,182,214,22,23,182,82,31,22,182,197,39,21,182,48,48,20,182,146,56,19,182,236,64,18,182,61,73,17,182,135,81,16,182,200,89,15,182,1,98,14,182,50,106,13,182,92,114,12,182,125,122,11,182,152,130,10,182,170,138,9,182,182,146,8,182,186,154,7,182,183,162,6,182,173,170,5,182,156,178,4,182,132,186,3,182,101,194,2,182,64,202,1,182,20,210,0,182,196,179,255,181,83,195,253,181,214,210,251,181,76,226,249,181,182,241,247,181,20,1,246,181,103,16,244,181,175,31,242,181,
235,46,240,181,28,62,238,181,66,77,236,181,94,92,234,181,112,107,232,181,119,122,230,181,116,137,228,181,104,152,226,181,82,167,224,181,51,182,222,181,11,197,220,181,218,211,218,181,160,226,216,181,93,241,214,181,19,0,213,181,192,14,211,181,101,29,209,181,3,44,207,181,154,58,205,181,41,73,203,181,177,87,201,181,50,102,199,181,173,116,197,181,33,131,195,181,143,145,193,181,247,159,191,181,89,174,189,181,182,188,187,181,13,203,185,181,96,217,183,181,173,231,181,181,245,245,179,181,57,4,178,181,121,
18,176,181,181,32,174,181,236,46,172,181,32,61,170,181,81,75,168,181,126,89,166,181,168,103,164,181,207,117,162,181,244,131,160,181,22,146,158,181,54,160,156,181,84,174,154,181,112,188,152,181,138,202,150,181,163,216,148,181,187,230,146,181,210,244,144,181,232,2,143,181,253,16,141,181,18,31,139,181,39,45,137,181,60,59,135,181,81,73,133,181,103,87,131,181,125,101,129,181,41,231,126,181,89,3,123,181,140,31,119,181,194,59,115,181,252,87,111,181,57,116,107,181,123,144,103,181,193,172,99,181,12,201,95,
181,93,229,91,181,179,1,88,181,16,30,84,181,116,58,80,181,222,86,76,181,81,115,72,181,203,143,68,181,78,172,64,181,217,200,60,181,110,229,56,181,12,2,53,181,180,30,49,181,103,59,45,181,37,88,41,181,237,116,37,181,194,145,33,181,163,174,29,181,144,203,25,181,138,232,21,181,145,5,18,181,166,34,14,181,202,63,10,181,252,92,6,181,60,122,2,181,26,47,253,180,218,105,245,180,186,164,237,180,188,223,229,180,225,26,222,180,40,86,214,180,146,145,206,180,34,205,198,180,215,8,191,180,178,68,183,180,180,128,175,
180,222,188,167,180,48,249,159,180,173,53,152,180,83,114,144,180,37,175,136,180,35,236,128,180,154,82,114,180,75,205,98,180,88,72,83,180,196,195,67,180,144,63,52,180,191,187,36,180,80,56,21,180,71,181,5,180,73,101,236,179,213,96,205,179,53,93,174,179,109,90,143,179,255,176,96,179,224,174,34,179,7,93,201,178,194,191,26,178,150,102,186,49,127,143,170,50,208,64,19,51,252,55,81,51,159,150,135,51,72,144,166,51,246,136,197,51,164,128,228,51,168,187,1,52,124,54,17,52,203,176,32,52,148,42,48,52,214,163,63,
52,143,28,79,52,188,148,94,52,93,12,110,52,112,131,125,52,250,124,134,52,242,55,142,52,162,242,149,52,7,173,157,52,33,103,165,52,238,32,173,52,111,218,180,52,163,147,188,52,136,76,196,52,30,5,204,52,100,189,211,52,89,117,219,52,252,44,227,52,77,228,234,52,74,155,242,52,243,81,250,52,36,4,1,53,35,223,4,53,247,185,8,53,160,148,12,53,28,111,16,53,108,73,20,53,143,35,24,53,132,253,27,53,76,215,31,53,230,176,35,53,81,138,39,53,141,99,43,53,154,60,47,53,119,21,51,53,36,238,54,53,161,198,58,53,236,158,62,
53,7,119,66,53,239,78,70,53,165,38,74,53,41,254,77,53,122,213,81,53,151,172,85,53,128,131,89,53,54,90,93,53,182,48,97,53,2,7,101,53,25,221,104,53,249,178,108,53,163,136,112,53,23,94,116,53,84,51,120,53,89,8,124,53,39,221,127,53,222,216,129,53,12,195,131,53,30,173,133,53,19,151,135,53,235,128,137,53,166,106,139,53,68,84,141,53,196,61,143,53,39,39,145,53,107,16,147,53,146,249,148,53,154,226,150,53,132,203,152,53,79,180,154,53,251,156,156,53,136,133,158,53,245,109,160,53,67,86,162,53,113,62,164,53,128,
38,166,53,110,14,168,53,60,246,169,53,234,221,171,53,118,197,173,53,226,172,175,53,45,148,177,53,86,123,179,53,94,98,181,53,68,73,183,53,8,48,185,53,170,22,187,53,42,253,188,53,136,227,190,53,194,201,192,53,218,175,194,53,206,149,196,53,160,123,198,53,77,97,200,53,216,70,202,53,62,44,204,53,128,17,206,53,158,246,207,53,151,219,209,53,107,192,211,53,27,165,213,53,166,137,215,53,11,110,217,53,75,82,219,53,101,54,221,53,89,26,223,53,39,254,224,53,207,225,226,53,81,197,228,53,172,168,230,53,223,139,232,
53,236,110,234,53,210,81,236,53,144,52,238,53,39,23,240,53,149,249,241,53,220,219,243,53,250,189,245,53,240,159,247,53,189,129,249,53,98,99,251,53,221,68,253,53,48,38,255,53,172,131,0,54,44,116,1,54,150,100,2,54,236,84,3,54,45,69,4,54,88,53,5,54,110,37,6,54,111,21,7,54,90,5,8,54,48,245,8,54,240,228,9,54,154,212,10,54,46,196,11,54,172,179,12,54,21,163,13,54,103,146,14,54,162,129,15,54,200,112,16,54,215,95,17,54,207,78,18,54,177,61,19,54,124,44,20,54,48,27,21,54,205,9,22,54,83,248,22,54,194,230,23,
54,26,213,24,54,90,195,25,54,131,177,26,54,149,159,27,54,143,141,28,54,113,123,29,54,59,105,30,54,237,86,31,54,136,68,32,54,10,50,33,54,116,31,34,54,198,12,35,54,255,249,35,54,32,231,36,54,40,212,37,54,24,193,38,54,238,173,39,54,172,154,40,54,81,135,41,54,221,115,42,54,80,96,43,54,169,76,44,54,234,56,45,54,16,37,46,54,29,17,47,54,17,253,47,54,235,232,48,54,170,212,49,54,80,192,50,54,220,171,51,54,78,151,52,54,166,130,53,54,227,109,54,54,6,89,55,54,14,68,56,54,252,46,57,54,207,25,58,54,136,4,59,54,
37,239,59,54,168,217,60,54,15,196,61,54,91,174,62,54,141,152,63,54,162,130,64,54,156,108,65,54,123,86,66,54,62,64,67,54,230,41,68,54,113,19,69,54,225,252,69,54,52,230,70,54,108,207,71,54,135,184,72,54,134,161,73,54,105,138,74,54,47,115,75,54,216,91,76,54,101,68,77,54,213,44,78,54,41,21,79,54,95,253,79,54,120,229,80,54,116,205,81,54,83,181,82,54,21,157,83,54,185,132,84,54,64,108,85,54,169,83,86,54,244,58,87,54,34,34,88,54,50,9,89,54,35,240,89,54,247,214,90,54,173,189,91,54,68,164,92,54,189,138,93,
54,23,113,94,54,83,87,95,54,113,61,96,54,111,35,97,54,79,9,98,54,16,239,98,54,178,212,99,54,53,186,100,54,153,159,101,54,221,132,102,54,2,106,103,54,8,79,104,54,238,51,105,54,180,24,106,54,91,253,106,54,226,225,107,54,73,198,108,54,144,170,109,54,183,142,110,54,189,114,111,54,164,86,112,54,106,58,113,54,16,30,114,54,149,1,115,54,249,228,115,54,61,200,116,54,96,171,117,54,98,142,118,54,67,113,119,54,2,84,120,54,161,54,121,54,31,25,122,54,123,251,122,54,181,221,123,54,206,191,124,54,198,161,125,54,
155,131,126,54,79,101,127,54,113,35,128,54,41,148,128,54,208,4,129,54,101,117,129,54,234,229,129,54,94,86,130,54,192,198,130,54,17,55,131,54,81,167,131,54,127,23,132,54,156,135,132,54,168,247,132,54,162,103,133,54,138,215,133,54,97,71,134,54,38,183,134,54,218,38,135,54,124,150,135,54,12,6,136,54,138,117,136,54,247,228,136,54,81,84,137,54,154,195,137,54,209,50,138,54,245,161,138,54,8,17,139,54,8,128,139,54,247,238,139,54,211,93,140,54,157,204,140,54,84,59,141,54,250,169,141,54,140,24,142,54,13,135,
142,54,123,245,142,54,214,99,143,54,31,210,143,54,85,64,144,54,121,174,144,54,138,28,145,54,136,138,145,54,116,248,145,54,76,102,146,54,18,212,146,54,197,65,147,54,101,175,147,54,242,28,148,54,108,138,148,54,211,247,148,54,39,101,149,54,103,210,149,54,148,63,150,54,175,172,150,54,181,25,151,54,169,134,151,54,137,243,151,54,86,96,152,54,15,205,152,54,180,57,153,54,71,166,153,54,197,18,154,54,48,127,154,54,135,235,154,54,203,87,155,54,250,195,155,54,22,48,156,54,30,156,156,54,18,8,157,54,243,115,157,
54,191,223,157,54,119,75,158,54,27,183,158,54,171,34,159,54,39,142,159,54,143,249,159,54,226,100,160,54,33,208,160,54,76,59,161,54,99,166,161,54,101,17,162,54,82,124,162,54,44,231,162,54,240,81,163,54,160,188,163,54,60,39,164,54,194,145,164,54,52,252,164,54,146,102,165,54,218,208,165,54,14,59,166,54,45,165,166,54,55,15,167,54,44,121,167,54,12,227,167,54,215,76,168,54,140,182,168,54,45,32,169,54,185,137,169,54,47,243,169,54,144,92,170,54,220,197,170,54,19,47,171,54,52,152,171,54,63,1,172,54,54,106,
172,54,22,211,172,54,226,59,173,54,151,164,173,54,55,13,174,54,194,117,174,54,55,222,174,54,150,70,175,54,223,174,175,54,18,23,176,54,48,127,176,54,55,231,176,54,41,79,177,54,5,183,177,54,202,30,178,54,122,134,178,54,19,238,178,54,151,85,179,54,4,189,179,54,91,36,180,54,155,139,180,54,198,242,180,54,218,89,181,54,215,192,181,54,190,39,182,54,143,142,182,54,73,245,182,54,237,91,183,54,122,194,183,54,240,40,184,54,80,143,184,54,153,245,184,54,203,91,185,54,231,193,185,54,235,39,186,54,217,141,186,54,
176,243,186,54,112,89,187,54,25,191,187,54,171,36,188,54,38,138,188,54,137,239,188,54,214,84,189,54,11,186,189,54,41,31,190,54,48,132,190,54,32,233,190,54,248,77,191,54,185,178,191,54,98,23,192,54,244,123,192,54,111,224,192,54,210,68,193,54,29,169,193,54,81,13,194,54,109,113,194,54,113,213,194,54,94,57,195,54,50,157,195,54,239,0,196,54,149,100,196,54,34,200,196,54,151,43,197,54,245,142,197,54,58,242,197,54,103,85,198,54,124,184,198,54,121,27,199,54,94,126,199,54,43,225,199,54,224,67,200,54,124,166,
200,54,0,9,201,54,107,107,201,54,190,205,201,54,249,47,202,54,27,146,202,54,37,244,202,54,22,86,203,54,239,183,203,54,175,25,204,54,86,123,204,54,228,220,204,54,90,62,205,54,183,159,205,54,252,0,206,54,39,98,206,54,58,195,206,54,51,36,207,54,20,133,207,54,220,229,207,54,138,70,208,54,32,167,208,54,156,7,209,54],"i8",4,y.a+1136640);
Q([255,103,209,54,74,200,209,54,122,40,210,54,146,136,210,54,144,232,210,54,117,72,211,54,65,168,211,54,243,7,212,54,140,103,212,54,11,199,212,54,113,38,213,54,189,133,213,54,240,228,213,54,9,68,214,54,8,163,214,54,238,1,215,54,185,96,215,54,108,191,215,54,4,30,216,54,130,124,216,54,231,218,216,54,49,57,217,54,98,151,217,54,121,245,217,54,117,83,218,54,88,177,218,54,32,15,219,54,207,108,219,54,99,202,219,54,221,39,220,54,60,133,220,54,130,226,220,54,173,63,221,54,190,156,221,54,180,249,221,54,144,
86,222,54,81,179,222,54,248,15,223,54,133,108,223,54,247,200,223,54,78,37,224,54,139,129,224,54,172,221,224,54,180,57,225,54,160,149,225,54,114,241,225,54,41,77,226,54,197,168,226,54,70,4,227,54,172,95,227,54,247,186,227,54,40,22,228,54,61,113,228,54,55,204,228,54,22,39,229,54,218,129,229,54,131,220,229,54,17,55,230,54,131,145,230,54,218,235,230,54,22,70,231,54,54,160,231,54,60,250,231,54,37,84,232,54,243,173,232,54,166,7,233,54,61,97,233,54,185,186,233,54,25,20,234,54,94,109,234,54,135,198,234,54,
148,31,235,54,133,120,235,54,91,209,235,54,21,42,236,54,179,130,236,54,54,219,236,54,156,51,237,54,230,139,237,54,21,228,237,54,40,60,238,54,30,148,238,54,249,235,238,54,183,67,239,54,89,155,239,54,223,242,239,54,73,74,240,54,151,161,240,54,201,248,240,54,222,79,241,54,215,166,241,54,179,253,241,54,116,84,242,54,23,171,242,54,159,1,243,54,9,88,243,54,88,174,243,54,138,4,244,54,159,90,244,54,151,176,244,54,115,6,245,54,51,92,245,54,213,177,245,54,91,7,246,54,196,92,246,54,16,178,246,54,64,7,247,54,
82,92,247,54,72,177,247,54,32,6,248,54,220,90,248,54,123,175,248,54,253,3,249,54,97,88,249,54,169,172,249,54,211,0,250,54,224,84,250,54,209,168,250,54,163,252,250,54,89,80,251,54,241,163,251,54,108,247,251,54,202,74,252,54,10,158,252,54,45,241,252,54,51,68,253,54,27,151,253,54,229,233,253,54,146,60,254,54,33,143,254,54,147,225,254,54,231,51,255,54,30,134,255,54,55,216,255,54,25,21,0,55,7,62,0,55,231,102,0,55,184,143,0,55,122,184,0,55,45,225,0,55,209,9,1,55,102,50,1,55,236,90,1,55,100,131,1,55,204,
171,1,55,37,212,1,55,111,252,1,55,170,36,2,55,214,76,2,55,242,116,2,55,0,157,2,55,255,196,2,55,238,236,2,55,207,20,3,55,160,60,3,55,98,100,3,55,20,140,3,55,184,179,3,55,76,219,3,55,210,2,4,55,71,42,4,55,174,81,4,55,5,121,4,55,77,160,4,55,134,199,4,55,176,238,4,55,202,21,5,55,212,60,5,55,208,99,5,55,188,138,5,55,152,177,5,55,101,216,5,55,35,255,5,55,209,37,6,55,112,76,6,55,0,115,6,55,128,153,6,55,240,191,6,55,81,230,6,55,162,12,7,55,228,50,7,55,22,89,7,55,57,127,7,55,76,165,7,55,80,203,7,55,68,241,
7,55,40,23,8,55,253,60,8,55,194,98,8,55,119,136,8,55,29,174,8,55,179,211,8,55,57,249,8,55,175,30,9,55,22,68,9,55,109,105,9,55,180,142,9,55,236,179,9,55,20,217,9,55,44,254,9,55,52,35,10,55,44,72,10,55,20,109,10,55,237,145,10,55,182,182,10,55,111,219,10,55,23,0,11,55,176,36,11,55,58,73,11,55,179,109,11,55,28,146,11,55,117,182,11,55,190,218,11,55,248,254,11,55,33,35,12,55,58,71,12,55,67,107,12,55,61,143,12,55,38,179,12,55,255,214,12,55,200,250,12,55,128,30,13,55,41,66,13,55,194,101,13,55,74,137,13,55,
195,172,13,55,43,208,13,55,131,243,13,55,203,22,14,55,2,58,14,55,42,93,14,55,65,128,14,55,72,163,14,55,62,198,14,55,37,233,14,55,251,11,15,55,193,46,15,55,118,81,15,55,28,116,15,55,177,150,15,55,53,185,15,55,169,219,15,55,13,254,15,55,97,32,16,55,164,66,16,55,214,100,16,55,249,134,16,55,11,169,16,55,12,203,16,55,253,236,16,55,221,14,17,55,173,48,17,55,109,82,17,55,28,116,17,55,186,149,17,55,72,183,17,55,198,216,17,55,51,250,17,55,143,27,18,55,219,60,18,55,22,94,18,55,65,127,18,55,91,160,18,55,100,
193,18,55,93,226,18,55,69,3,19,55,28,36,19,55,227,68,19,55,153,101,19,55,63,134,19,55,211,166,19,55,87,199,19,55,203,231,19,55,45,8,20,55,127,40,20,55,192,72,20,55,240,104,20,55,16,137,20,55,30,169,20,55,28,201,20,55,9,233,20,55,229,8,21,55,177,40,21,55,107,72,21,55,21,104,21,55,174,135,21,55,54,167,21,55,173,198,21,55,19,230,21,55,104,5,22,55,172,36,22,55,223,67,22,55,2,99,22,55,19,130,22,55,20,161,22,55,3,192,22,55,226,222,22,55,175,253,22,55,107,28,23,55,23,59,23,55,177,89,23,55,58,120,23,55,179,
150,23,55,26,181,23,55,112,211,23,55,181,241,23,55,233,15,24,55,12,46,24,55,29,76,24,55,30,106,24,55,13,136,24,55,235,165,24,55,184,195,24,55,116,225,24,55,31,255,24,55,184,28,25,55,65,58,25,55,184,87,25,55,29,117,25,55,114,146,25,55,181,175,25,55,232,204,25,55,8,234,25,55,24,7,26,55,22,36,26,55,3,65,26,55,223,93,26,55,169,122,26,55,98,151,26,55,10,180,26,55,160,208,26,55,37,237,26,55,152,9,27,55,251,37,27,55,75,66,27,55,139,94,27,55,185,122,27,55,213,150,27,55,224,178,27,55,218,206,27,55,194,234,
27,55,153,6,28,55,95,34,28,55,18,62,28,55,181,89,28,55,70,117,28,55,197,144,28,55,51,172,28,55,143,199,28,55,218,226,28,55,19,254,28,55,59,25,29,55,81,52,29,55,86,79,29,55,73,106,29,55,42,133,29,55,250,159,29,55,184,186,29,55,101,213,29,55,0,240,29,55,137,10,30,55,1,37,30,55,103,63,30,55,187,89,30,55,254,115,30,55,47,142,30,55,78,168,30,55,92,194,30,55,88,220,30,55,66,246,30,55,26,16,31,55,225,41,31,55,150,67,31,55,57,93,31,55,203,118,31,55,75,144,31,55,184,169,31,55,21,195,31,55,95,220,31,55,152,
245,31,55,190,14,32,55,211,39,32,55,215,64,32,55,200,89,32,55,167,114,32,55,117,139,32,55,49,164,32,55,219,188,32,55,115,213,32,55,249,237,32,55,109,6,33,55,207,30,33,55,32,55,33,55,94,79,33,55,139,103,33,55,165,127,33,55,174,151,33,55,165,175,33,55,138,199,33,55,93,223,33,55,29,247,33,55,204,14,34,55,105,38,34,55,244,61,34,55,109,85,34,55,212,108,34,55,41,132,34,55,108,155,34,55,157,178,34,55,187,201,34,55,200,224,34,55,195,247,34,55,171,14,35,55,130,37,35,55,70,60,35,55,249,82,35,55,153,105,35,
55,39,128,35,55,163,150,35,55,13,173,35,55,101,195,35,55,171,217,35,55,222,239,35,55,0,6,36,55,15,28,36,55,12,50,36,55,247,71,36,55,208,93,36,55,151,115,36,55,75,137,36,55,237,158,36,55,125,180,36,55,251,201,36,55,103,223,36,55,192,244,36,55,7,10,37,55,60,31,37,55,95,52,37,55,111,73,37,55,110,94,37,55,89,115,37,55,51,136,37,55,251,156,37,55,176,177,37,55,82,198,37,55,227,218,37,55,97,239,37,55,205,3,38,55,39,24,38,55,110,44,38,55,163,64,38,55,198,84,38,55,214,104,38,55,212,124,38,55,191,144,38,55,
153,164,38,55,96,184,38,55,20,204,38,55,182,223,38,55,70,243,38,55,195,6,39,55,46,26,39,55,135,45,39,55,205,64,39,55,1,84,39,55,34,103,39,55,49,122,39,55,46,141,39,55,24,160,39,55,239,178,39,55,180,197,39,55,103,216,39,55,7,235,39,55,149,253,39,55,17,16,40,55,121,34,40,55,208,52,40,55,20,71,40,55,69,89,40,55,100,107,40,55,112,125,40,55,106,143,40,55,82,161,40,55,39,179,40,55,233,196,40,55,153,214,40,55,54,232,40,55,193,249,40,55,57,11,41,55,159,28,41,55,242,45,41,55,50,63,41,55,96,80,41,55,124,97,
41,55,133,114,41,55,123,131,41,55,95,148,41,55,48,165,41,55,238,181,41,55,154,198,41,55,51,215,41,55,186,231,41,55,46,248,41,55,144,8,42,55,223,24,42,55,27,41,42,55,68,57,42,55,91,73,42,55,96,89,42,55,81,105,42,55,48,121,42,55,253,136,42,55,182,152,42,55,93,168,42,55,242,183,42,55,116,199,42,55,227,214,42,55,63,230,42,55,137,245,42,55,192,4,43,55,228,19,43,55,245,34,43,55,244,49,43,55,225,64,43,55,186,79,43,55,129,94,43,55,53,109,43,55,214,123,43,55,101,138,43,55,225,152,43,55,74,167,43,55,160,181,
43,55,228,195,43,55,21,210,43,55,51,224,43,55,63,238,43,55,55,252,43,55,29,10,44,55,240,23,44,55,177,37,44,55,94,51,44,55,249,64,44,55,129,78,44,55,247,91,44,55,89,105,44,55,169,118,44,55,230,131,44,55,16,145,44,55,39,158,44,55,44,171,44,55,30,184,44,55,252,196,44,55,201,209,44,55,130,222,44,55,40,235,44,55,188,247,44,55,61,4,45,55,171,16,45,55,6,29,45,55,79,41,45,55,132,53,45,55,167,65,45,55,183,77,45,55,180,89,45,55,158,101,45,55,117,113,45,55,58,125,45,55,235,136,45,55,138,148,45,55,22,160,45,
55,143,171,45,55,245,182,45,55,73,194,45,55,137,205,45,55,183,216,45,55,210,227,45,55,217,238,45,55,206,249,45,55,176,4,46,55,128,15,46,55,60,26,46,55,229,36,46,55,124,47,46,55,0,58,46,55,112,68,46,55,206,78,46,55,25,89,46,55,81,99,46,55,118,109,46,55,137,119,46,55,136,129,46,55,116,139,46,55,78,149,46,55,20,159,46,55,200,168,46,55,105,178,46,55,247,187,46,55,114,197,46,55,218,206,46,55,47,216,46,55,113,225,46,55,160,234,46,55,188,243,46,55,198,252,46,55,188,5,47,55,160,14,47,55,112,23,47,55,46,32,
47,55,217,40,47,55,113,49,47,55,245,57,47,55,103,66,47,55,198,74,47,55,18,83,47,55,75,91,47,55,113,99,47,55,132,107,47,55,133,115,47,55,114,123,47,55,76,131,47,55,20,139,47,55,200,146,47,55,105,154,47,55,248,161,47,55,115,169,47,55,220,176,47,55,50,184,47,55,116,191,47,55,164,198,47,55,193,205,47,55,202,212,47,55,193,219,47,55,165,226,47,55,118,233,47,55,52,240,47,55,223,246,47,55,119,253,47,55,252,3,48,55,110,10,48,55,205,16,48,55,25,23,48,55,82,29,48,55,120,35,48,55,140,41,48,55,140,47,48,55,121,
53,48,55,83,59,48,55,27,65,48,55,207,70,48,55,113,76,48,55,255,81,48,55,122,87,48,55,227,92,48,55,56,98,48,55,123,103,48,55,170,108,48,55,199,113,48,55,209,118,48,55,199,123,48,55,171,128,48,55,124,133,48,55,58,138,48,55,228,142,48,55,124,147,48,55,1,152,48,55,115,156,48,55,210,160,48,55,30,165,48,55,87,169,48,55,125,173,48,55,144,177,48,55,144,181,48,55,125,185,48,55,87,189,48,55,30,193,48,55,210,196,48,55,116,200,48,55,2,204,48,55,125,207,48,55,230,210,48,55,59,214,48,55,125,217,48,55,173,220,48,
55,201,223,48,55,211,226,48,55,202,229,48,55,173,232,48,55,126,235,48,55,60,238,48,55,230,240,48,55,126,243,48,55,3,246,48,55,117,248,48,55,212,250,48,55,32,253,48,55,89,255,48,55,127,1,49,55,147,3,49,55,147,5,49,55,128,7,49,55,91,9,49,55,34,11,49,55,215,12,49,55,120,14,49,55,7,16,49,55,131,17,49,55,235,18,49,55,65,20,49,55,132,21,49,55,180,22,49,55,209,23,49,55,220,24,49,55,211,25,49,55,183,26,49,55,137,27,49,55,71,28,49,55,243,28,49,55,139,29,49,55,17,30,49,55,132,30,49,55,228,30,49,55,49,31,49,
55,107,31,49,55,147,31,49,55,167,31,49,55,168,31,49,55,151,31,49,55,115,31,49,55,60,31,49,55,241,30,49,55,149,30,49,55,37,30,49,55,162,29,49,55,12,29,49,55,100,28,49,55,169,27,49,55,218,26,49,55,249,25,49,55,6,25,49,55,255,23,49,55,229,22,49,55,185,21,49,55,121,20,49,55,39,19,49,55,194,17,49,55,74,16,49,55,191,14,49,55,34,13,49,55,114,11,49,55,174,9,49,55,216,7,49,55,239,5,49,55,244,3,49,55,229,1,49,55,196,255,48,55,144,253,48,55,73,251,48,55,239,248,48,55,130,246,48,55,3,244,48,55,113,241,48,55,
204,238,48,55,20,236,48,55,73,233,48,55,108,230,48,55,124,227,48,55,121,224,48,55,99,221,48,55,59,218,48,55,0,215,48,55,178,211,48,55,81,208,48,55,222,204,48,55,87,201,48,55,190,197,48,55,19,194,48,55,84,190,48,55,131,186,48,55,159,182,48,55,168,178,48,55,159,174,48,55,131,170,48,55,84,166,48,55,18,162,48,55,190,157,48,55,87,153,48,55,221,148,48,55,81,144,48,55,178,139,48,55,0,135,48,55,59,130,48,55,100,125,48,55,122,120,48,55,126,115,48,55,111,110,48,55,77,105,48,55,24,100,48,55,209,94,48,55,119,
89,48,55,11,84,48,55,140,78,48,55,250,72,48,55,86,67,48,55,158,61,48,55,213,55,48,55,249,49,48,55,10,44,48,55,8,38,48,55,244,31,48,55,205,25,48,55,148,19,48,55,72,13,48,55,234,6,48,55,121,0,48,55,245,249,47,55,95,243,47,55,182,236,47,55,250,229,47,55,44,223,47,55,76,216,47,55,89,209,47,55,83,202,47,55,59,195,47,55,17,188,47,55,211,180,47,55,132,173,47,55,33,166,47,55,173,158,47,55,37,151,47,55,140,143,47,55,223,135,47,55,33,128,47,55,79,120,47,55,108,112,47,55,118,104,47,55,109,96,47,55,82,88,47,
55,36,80,47,55,228,71,47,55,146,63,47,55,45,55,47,55,181,46,47,55,44,38,47,55,143,29,47,55,225,20,47,55,32,12,47,55,76,3,47,55,102,250,46,55,110,241,46,55,99,232,46,55,70,223,46,55,23,214,46,55,213,204,46,55,129,195,46,55,26,186,46,55,162,176,46,55,22,167,46,55,121,157,46,55,201,147,46,55,7,138,46,55,50,128,46,55,75,118,46,55,82,108,46,55,70,98,46,55,41,88,46,55,249,77,46,55,182,67,46,55,97,57,46,55,251,46,46,55,129,36,46,55,246,25,46,55,88,15,46,55,168,4,46,55,230,249,45,55,18,239,45,55,43,228,45,
55,50,217,45,55,39,206,45,55,10,195,45,55,218,183,45,55,152,172,45,55,68,161,45,55,222,149,45,55,102,138,45,55,220,126,45,55,63,115,45,55,144,103,45,55,207,91,45,55,252,79,45,55,23,68,45,55,32,56,45,55,23,44,45,55,251,31,45,55,205,19,45,55,142,7,45,55,60,251,44,55,216,238,44,55,98,226,44,55,218,213,44,55,64,201,44,55,148,188,44,55,214,175,44,55,6,163,44,55,35,150,44,55,47,137,44,55,41,124,44,55,16,111,44,55,230,97,44,55,170,84,44,55,92,71,44,55,251,57,44,55,137,44,44,55,5,31,44,55,111,17,44,55,199,
3,44,55,13,246,43,55,65,232,43,55,99,218,43,55,115,204,43,55,113,190,43,55,94,176,43,55,56,162,43,55,1,148,43,55,184,133,43,55,93,119,43,55,240,104,43,55,113,90,43,55,224,75,43,55,62,61,43,55,137,46,43,55,195,31,43,55,235,16,43,55,1,2,43,55,6,243,42,55,249,227,42,55,217,212,42,55,169,197,42,55,102,182,42,55,17,167,42,55,171,151,42,55,51,136,42,55,170,120,42,55,15,105,42,55,97,89,42,55,163,73,42,55,210,57,42,55,240,41,42,55,252,25,42,55,247,9,42,55,224,249,41,55,183,233,41,55,125,217,41,55,49,201,
41,55,211,184,41,55,100,168,41,55,227,151,41,55,80,135,41,55,172,118,41,55,247,101,41,55,48,85,41,55,87,68,41,55,108,51,41,55,113,34,41,55,99,17,41,55,68,0,41,55,20,239,40,55,210,221,40,55,127,204,40,55,26,187,40,55,163,169,40,55,27,152,40,55,130,134,40,55,215,116,40,55,27,99,40,55,77,81,40,55,110,63,40,55,126,45,40,55,124,27,40,55,105,9,40,55,68,247,39,55,14,229,39,55,199,210,39,55,110,192,39,55,4,174,39,55,137,155,39,55,252,136,39,55,94,118,39,55,174,99,39,55,238,80,39,55,28,62,39,55,57,43,39,55,
68,24,39,55,62,5,39,55,39,242,38,55,255,222,38,55,198,203,38,55,123,184,38,55,31,165,38,55,178,145,38,55,52,126,38,55,165,106,38,55,4,87,38,55,82,67,38,55,143,47,38,55,187,27,38,55,214,7,38,55,224,243,37,55,217,223,37,55,192,203,37,55,151,183,37,55,92,163,37,55,16,143,37,55,180,122,37,55,70,102,37,55,199,81,37,55,55,61,37,55,150,40,37,55,228,19,37,55,34,255,36,55,78,234,36,55,105,213,36,55,115,192,36,55,109,171,36,55,85,150,36,55,45,129,36,55,243,107,36,55,169,86,36,55,78,65,36,55,225,43,36,55,100,
22,36,55,215,0,36,55,56,235,35,55,136,213,35,55,200,191,35,55,247,169,35,55,21,148,35,55,34,126,35,55,31,104,35,55,10,82,35,55,229,59,35,55,175,37,35,55,105,15,35,55,17,249,34,55,169,226,34,55,49,204,34,55,167,181,34,55,13,159,34,55,98,136,34,55,167,113,34,55,219,90,34,55,254,67,34,55,17,45,34,55,19,22,34,55,4,255,33,55,229,231,33,55,182,208,33,55,117,185,33,55,37,162,33,55,195,138,33,55,81,115,33,55,207,91,33,55,60,68,33,55,152,44,33,55,229,20,33,55,32,253,32,55,75,229,32,55,102,205,32,55,112,181,
32,55,106,157,32,55,84,133,32,55,45,109,32,55,245,84,32,55,174,60,32,55,85,36,32,55,237,11,32,55,116,243,31,55,235,218,31,55,82,194,31,55,168,169,31,55,238,144,31,55,36,120,31,55,73,95,31,55,94,70,31,55,99,45,31,55,88,20,31,55,60,251,30,55,16,226,30,55,213,200,30,55,136,175,30,55,44,150,30,55,192,124,30,55,67,99,30,55,182,73,30,55,26,48,30,55,109,22,30,55,176,252,29,55,226,226,29,55,5,201,29,55,24,175,29,55,27,149,29,55,13,123,29,55,240,96,29,55,195,70,29,55,133,44,29,55,56,18,29,55,219,247,28,55,
110,221,28,55,240,194,28,55,99,168,28,55,198,141,28,55,25,115,28,55,93,88,28,55,144,61,28,55,179,34,28,55,199,7,28,55,203,236,27,55,191,209,27,55,163,182,27,55,119,155,27,55,60,128,27,55,240,100,27,55,149,73,27,55,43,46,27,55,176,18,27,55,38,247,26,55,140,219,26,55,227,191,26,55,41,164,26,55,96,136,26,55,136,108,26,55,160,80,26,55,168,52,26,55,160,24,26,55,137,252,25,55,99,224,25,55,44,196,25,55,231,167,25,55,145,139,25,55,44,111,25,55,184,82,25,55,52,54,25,55,161,25,25,55,254,252,24,55,76,224,24,
55,138,195,24,55,185,166,24,55,216,137,24,55,232,108,24,55,233,79,24,55,218,50,24,55,188,21,24,55,143,248,23,55,82,219,23,55,6,190,23,55,170,160,23,55,64,131,23,55,198,101,23,55,60,72,23,55,164,42,23,55,252,12,23,55,69,239,22,55,127,209,22,55,169,179,22,55,197,149,22,55,209,119,22,55,206,89,22,55,188,59,22,55,155,29,22,55,107,255,21,55,43,225,21,55,221,194,21,55,127,164,21,55,19,134,21,55,151,103,21,55,12,73,21,55,115,42,21,55,202,11,21,55,18,237,20,55,76,206,20,55,118,175,20,55,146,144,20,55,158,
113,20,55,156,82,20,55,139,51,20,55,107,20,20,55,60,245,19,55,254,213,19,55,177,182,19,55,86,151,19,55,236,119,19,55,115,88,19,55,235,56,19,55,84,25,19,55,175,249,18,55,251,217,18,55,56,186,18,55,103,154,18,55,135,122,18,55,152,90,18,55,154,58,18,55,142,26,18,55,115,250,17,55,74,218,17,55,18,186,17,55,204,153,17,55,119,121,17,55,19,89,17,55,161,56,17,55,32,24,17,55,145,247,16,55,243,214,16,55,71,182,16,55,140,149,16,55,195,116,16,55,236,83,16,55,6,51,16,55,18,18,16,55,15,241,15,55,254,207,15,55,223,
174,15,55,177,141,15,55,117,108,15,55,43,75,15,55,210,41,15,55,107,8,15,55,246,230,14,55,114,197,14,55,225,163,14,55,65,130,14,55,147,96,14,55,215,62,14,55,12,29,14,55,52,251,13,55,77,217,13,55,88,183,13,55,86,149,13,55,69,115,13,55,38,81,13,55,249,46,13,55,189,12,13,55,116,234,12,55,29,200,12,55,184,165,12,55,69,131,12,55,196,96,12,55,53,62,12,55,152,27,12,55,237,248,11,55,53,214,11,55,110,179,11,55,153,144,11,55,183,109,11,55,199,74,11,55,201,39,11,55,189,4,11,55,164,225,10,55,125,190,10,55,72,
155,10,55,5,120,10,55,180,84,10,55,86,49,10,55,234,13,10,55,113,234,9,55,234,198,9,55,85,163,9,55,179,127,9,55,3,92,9,55,69,56,9,55,122,20,9,55,161,240,8,55,187,204,8,55,199,168,8,55,198,132,8,55,183,96,8,55,155,60,8,55,113,24,8,55,58,244,7,55,246,207,7,55,164,171,7,55,69,135,7,55,216,98,7,55,94,62,7,55,215,25,7,55,66,245,6,55,160,208,6,55,241,171,6,55,52,135,6,55,107,98,6,55,148,61,6,55,175,24,6,55,190,243,5,55,191,206,5,55,180,169,5,55,155,132,5,55,117,95,5,55,66,58,5,55,1,21,5,55,180,239,4,55,
90,202,4,55,242,164,4,55,126,127,4,55,252,89,4,55,110,52,4,55,210,14,4,55,42,233,3,55,117,195,3,55,178,157,3,55,227,119,3,55,7,82,3,55,30,44,3,55,40,6,3,55,38,224,2,55,22,186,2,55,250,147,2,55,209,109,2,55,155,71,2,55,89,33,2,55,9,251,1,55,173,212,1,55,69,174,1,55,207,135,1,55,77,97,1,55,191,58,1,55,35,20,1,55,123,237,0,55,199,198,0,55,6,160,0,55,56,121,0,55,94,82,0,55,119,43,0,55,132,4,0,55,8,187,255,54,240,108,255,54,190,30,255,54,116,208,254,54,17,130,254,54,149,51,254,54,1,229,253,54,83,150,253,
54,141,71,253,54,175,248,252,54,183,169,252,54,168,90,252,54,127,11,252,54,62,188,251,54,229,108,251,54,115,29,251,54,233,205,250,54,70,126,250,54,139,46,250,54,184,222,249,54,204,142,249,54,201,62,249,54,173,238,248,54,121,158,248,54,44,78,248,54,200,253,247,54,76,173,247,54,183,92,247,54,11,12,247,54,71,187,246,54,107,106,246,54,119,25,246,54,107,200,245,54,71,119,245,54,12,38,245,54,185,212,244,54,78,131,244,54,204,49,244,54,50,224,243,54,128,142,243,54,183,60,243,54,214,234,242,54,222,152,242,
54,207,70,242,54,168,244,241,54,106,162,241,54,20,80,241,54,168,253,240,54,35,171,240,54,136,88,240,54,214,5,240,54,12,179,239,54,44,96,239,54,52,13,239,54,37,186,238,54,0,103,238,54,195,19,238,54,112,192,237,54,5,109,237,54,132,25,237,54,236,197,236,54,62,114,236,54,120,30,236,54,156,202,235,54,169,118,235,54,160,34,235,54,128,206,234,54,74,122,234,54,253,37,234,54,153,209,233,54,32,125,233,54,144,40,233,54,233,211,232,54,44,127,232,54,89,42,232,54,112,213,231,54,113,128,231,54,91,43,231,54,47,214,
230,54,237,128,230,54,150,43,230,54,40,214,229,54,164,128,229,54,10,43,229,54,91,213,228,54,150,127,228,54,186,41,228,54,201,211,227,54,195,125,227,54,166,39,227,54,116,209,226,54,45,123,226,54,208,36,226,54,93,206,225,54,213,119,225,54,55,33,225,54,132,202,224,54,187,115,224,54,222,28,224,54,234,197,223,54,226,110,223,54,196,23,223,54,146,192,222,54,74,105,222,54,237,17,222,54,123,186,221,54,243,98,221,54,87,11,221,54,166,179,220,54,224,91,220,54,5,4,220,54,22,172,219,54,17,84,219,54,248,251,218,
54,202,163,218,54,135,75,218,54,48,243,217,54,196,154,217,54,68,66,217,54,175,233,216,54,5,145,216,54,71,56,216,54,117,223,215,54,142,134,215,54,147,45,215,54,132,212,214,54,96,123,214,54,41,34,214,54,221,200,213,54,125,111,213,54,9,22,213,54,128,188,212,54,228,98,212,54,52,9,212,54,112,175,211,54,152,85,211,54,172,251,210,54,173,161,210,54,153,71,210,54,114,237,209,54,55,147,209,54,233,56,209,54,135,222,208,54,17,132,208,54,136,41,208,54,236,206,207,54,59,116,207,54,120,25,207,54,161,190,206,54,
183,99,206,54,185,8,206,54,169,173,205,54,133,82,205,54,78,247,204,54,3,156,204,54,166,64,204,54,54,229,203,54,178,137,203,54,28,46,203,54,115,210,202,54,182,118,202,54,231,26,202,54,6,191,201,54,17,99,201,54,10,7,201,54,240,170,200,54,195,78,200,54,132,242,199,54,50,150,199,54,206,57,199,54,87,221,198,54,206,128,198,54,50,36,198,54,132,199,197,54,196,106,197,54,241,13,197,54,12,177,196,54,21,84,196,54,12,247,195,54,241,153,195,54,196,60,195,54,132,223,194,54,51,130,194,54,208,36,194,54,90,199,193,
54,211,105,193,54,58,12,193,54,144,174,192,54,211,80,192,54,5,243,191,54,37,149,191,54,52,55,191,54,49,217,190,54,28,123,190,54,246,28,190,54,191,190,189,54,118,96,189,54,27,2,189,54,176,163,188,54,51,69,188,54,165,230,187,54,5,136,187,54,85,41,187,54,147,202,186,54,192,107,186,54,221,12,186,54,232,173,185,54,226,78,185,54,203,239,184,54,164,144,184,54,107,49,184,54,34,210,183,54,200,114,183,54,94,19,183,54,227,179,182,54,87,84,182,54,186,244,181,54,13,149,181,54,80,53,181,54,130,213,180,54,163,117,
180,54,180,21,180,54,181,181,179,54,166,85,179,54,134,245,178,54,86,149,178,54,22,53,178,54,198,212,177,54,102,116,177,54,246,19,177,54,118,179,176,54,229,82,176,54,69,242,175,54,149,145,175,54,214,48,175,54,6,208,174,54,39,111,174,54,56,14,174,54,57,173,173,54,43,76,173,54,13,235,172,54,223,137,172,54,162,40,172,54,86,199,171,54,250,101,171,54,143,4,171,54,21,163,170,54,139,65,170,54,242,223,169,54,74,126,169,54,147,28,169,54,204,186,168,54,247,88,168,54,19,247,167,54,31,149,167,54,29,51,167,54,
11,209,166,54,235,110,166,54,188,12,166,54,127,170,165,54,50,72,165,54,215,229,164,54,109,131,164,54,245,32,164,54,110,190,163,54,217,91,163,54,53,249,162,54,131,150,162,54,194,51,162,54,243,208,161,54,22,110,161,54,42,11,161,54,48,168,160,54,40,69,160,54,18,226,159,54,238,126,159,54,188,27,159,54,124,184,158,54,46,85,158,54,209,241,157,54,104,142,157,54,240,42,157,54,106,199,156,54,215,99,156,54,54,0,156,54,136,156,155,54,203,56,155,54,2,213,154,54,42,113,154,54,70,13,154,54,83,169,153,54,84,69,
153,54,71,225,152,54,45,125,152,54,5,25,152,54,208,180,151,54,142,80,151,54,63,236,150,54,227,135,150,54,122,35,150,54,4,191,149,54,129,90,149,54,241,245,148,54,84,145,148,54,170,44,148,54,244,199,147,54,48,99,147,54,97,254,146,54,132,153,146,54,155,52,146,54,165,207,145,54,163,106,145,54,148,5,145,54,121,160,144,54,81,59,144,54,29,214,143,54,221,112,143,54,144,11,143,54,56,166,142,54,211,64,142,54,98,219,141,54,228,117,141,54,91,16,141,54,198,170,140,54,37,69,140,54,120,223,139,54,191,121,139,54,
250,19,139,54,42,174,138,54,78,72,138,54,102,226,137,54,114,124,137,54,115,22,137,54,104,176,136,54,82,74,136,54,48,228,135,54,3,126,135,54,202,23,135,54,134,177,134,54,55,75,134,54,221,228,133,54,119,126,133,54,6,24,133,54,138,177,132,54,3,75,132,54,113,228,131,54,212,125,131,54,44,23,131,54,121,176,130,54,187,73,130,54,243,226,129,54,32,124,129,54,66,21,129,54,89,174,128,54,101,71,128,54,207,192,127,54,190,242,126,54,152,36,126,54,93,86,125,54,13,136,124,54,169,185,123,54,47,235,122,54,162,28,122,
54,255,77,121,54,73,127,120,54,126,176,119,54,159,225,118,54,171,18,118,54,164,67,117,54,137,116,116,54,90,165,115,54,23,214,114,54,192,6,114,54,86,55,113,54,217,103,112,54,72,152,111,54,163,200,110,54,236,248,109,54,33,41,109,54,67,89,108,54,82,137,107,54,79,185,106,54,56,233,105,54,15,25,105,54,211,72,104,54,133,120,103,54,36,168,102,54,177,215,101,54,44,7,101,54,149,54,100,54,235,101,99,54,47,149,98,54,98,196,97,54,131,243,96,54,146,34,96,54,143,81,95,54,123,128,94,54,85,175,93,54,30,222,92,54,
214,12,92,54,125,59,91,54,18,106,90,54,151,152,89,54,10,199,88,54,109,245,87,54,191,35,87,54,0,82,86,54,49,128,85,54,81,174,84,54,97,220,83,54,97,10,83,54,80,56,82,54,47,102,81,54,255,147,80,54,190,193,79,54,109,239,78,54,13,29,78,54,157,74,77,54,30,120,76,54,143,165,75,54,240,210,74,54,66,0,74,54,134,45,73,54,185,90,72,54,222,135,71,54,244,180,70,54,251,225,69,54,244,14,69,54,221,59,68,54,184,104,67,54,133,149,66,54,67,194,65,54,243,238,64,54,148,27,64,54,40,72,63,54,173,116,62,54,37,161,61,54,142,
205,60,54,234,249,59,54,56,38,59,54,121,82,58,54,172,126,57,54,209,170,56,54,233,214,55,54,244,2,55,54,242,46,54,54,227,90,53,54,199,134,52,54,157,178,51,54,104,222,50,54,37,10,50,54,214,53,49,54,122,97,48,54,18,141,47,54,157,184,46,54,28,228,45,54,144,15,45,54,247,58,44,54,82,102,43,54,161,145,42,54,228,188,41,54,28,232,40,54,71,19,40,54,104,62,39,54,125,105,38,54,135,148,37,54,133,191,36,54,120,234,35,54,96,21,35,54,61,64,34,54,16,107,33,54,215,149,32,54,148,192,31,54,70,235,30,54,237,21,30,54,
138,64,29,54,29,107,28,54,165,149,27,54,36,192,26,54,152,234,25,54,2,21,25,54,98,63,24,54,185,105,23,54,5,148,22,54,72,190,21,54,130,232,20,54,178,18,20,54,217,60,19,54,246,102,18,54,10,145,17,54,21,187,16,54,23,229,15,54,16,15,15,54,1,57,14,54,232,98,13,54,199,140,12,54,158,182,11,54,108,224,10,54,49,10,10,54,239,51,9,54,164,93,8,54,81,135,7,54,246,176,6,54,147,218,5,54,40,4,5,54,181,45,4,54,59,87,3,54,185,128,2,54,48,170,1,54,160,211,0,54,15,250,255,53,209,76,254,53,133,159,252,53,42,242,250,53,
194,68,249,53,76,151,247,53,200,233,245,53,56,60,244,53,154,142,242,53,239,224,240,53,55,51,239,53,115,133,237,53,162,215,235,53,197,41,234,53,220,123,232,53,231,205,230,53,230,31,229,53,218,113,227,53,195,195,225,53,160,21,224,53,115,103,222,53,58,185,220,53,247,10,219,53,170,92,217,53,82,174,215,53,241,255,213,53,133,81,212,53,16,163,210,53,145,244,208,53,9,70,207,53,119,151,205,53,221,232,203,53,58,58,202,53,142,139,200,53,218,220,198,53,29,46,197,53,89,127,195,53,140,208,193,53,184,33,192,53,
220,114,190,53,249,195,188,53,15,21,187,53,30,102,185,53,38,183,183,53,39,8,182,53,34,89,180,53,22,170,178,53,5,251,176,53,237,75,175,53,208,156,173,53,173,237,171,53,133,62,170,53,88,143,168,53,37,224,166,53,238,48,165,53,178,129,163,53,114,210,161,53,45,35,160,53,228,115,158,53,152,196,156,53,71,21,155,53,243,101,153,53,156,182,151,53,65,7,150,53,228,87,148,53,131,168,146,53,32,249,144,53,186,73,143,53,83,154,141,53,232,234,139,53,124,59,138,53,15,140,136,53,159,220,134,53,46,45,133,53,188,125,
131,53,73,206,129,53,213,30,128,53,193,222,124,53,215,127,121,53,236,32,118,53,1,194,114,53,21,99,111,53,42,4,108,53,64,165,104,53,88,70,101,53,112,231,97,53,139,136,94,53,167,41,91,53,198,202,87,53,233,107,84,53,14,13,81,53,55,174,77,53,100,79,74,53,150,240,70,53,204,145,67,53,7,51,64,53,72,212,60,53,142,117,57,53,219,22,54,53,46,184,50,53,137,89,47,53,234,250,43,53,83,156,40,53,196,61,37,53,61,223,33,53,191,128,30,53,74,34,27,53,222,195,23,53,125,101,20,53,37,7,17,53,215,168,13,53,149,74,10,53,
94,236,6,53,50,142,3,53,18,48,0,53,253,163,249,52,239,231,242,52,251,43,236,52,34,112,229,52,100,180,222,52,194,248,215,52,61,61,209,52,214,129,202,52,140,198,195,52,98,11,189,52,87,80,182,52,109,149,175,52,164,218,168,52,253,31,162,52,120,101,155,52,23,171,148,52,217,240,141,52,192,54,135,52,205,124,128,52,255,133,115,52,177,18,102,52,179,159,88,52,6,45,75,52,170,186,61,52,162,72,48,52,238,214,34,52,145,101,21,52,139,244,7,52,188,7,245,51,23,39,218,51,42,71,191,51,248,103,164,51,131,137,137,51,156,
87,93,51,185,157,39,51,197,202,227,50,116,186,112,50,226,45,207,48,136,232,60,178,32,216,201,178,86,156,26,179,238,74,80,179,233,251,130,179,126,209,157,179,52,166,184,179,8,122,211,179,246,76,238,179,126,143,4,180,12,248,17,180,34,96,31,180,193,199,44,180,230,46,58,180,143,149,71,180,188,251,84,180,108,97,98,180,156,198,111,180,75,43,125,180,188,71,133,180,144,249,139,180,35,171,146,180,113,92,153,180,124,13,160,180,67,190,166,180,196,110,173,180,255,30,180,180,243,206,186,180,160,126,193,180,5,
46,200,180,32,221,206,180,243,139,213,180,123,58,220,180,184,232,226,180,169,150,233,180,78,68,240,180,166,241,246,180,176,158,253,180,182,37,2,181,236,123,5,181,250,209,8,181,224,39,12,181,157,125,15,181,50,211,18,181,156,40,22,181,222,125,25,181,245,210,28,181,226,39,32,181,164,124,35,181,59,209,38,181,166,37,42,181,230,121,45,181,249,205,48,181,224,33,52,181,154,117,55,181,39,201,58,181,134,28,62,181,184,111,65,181,187,194,68,181,144,21,72,181,53,104,75,181,172,186,78,181,242,12,82,181,9,95,85,
181,239,176,88,181,165,2,92,181,41,84,95,181,125,165,98,181,158,246,101,181,141,71,105,181,74,152,108,181,212,232,111,181,43,57,115,181,79,137,118,181,62,217,121,181,250,40,125,181,64,60,128,181,233,227,129,181,120,139,131,181,235,50,133,181,68,218,134,181,130,129,136,181,164,40,138,181,171,207,139,181,150,118,141,181,101,29,143,181,24,196,144,181,176,106,146,181,42,17,148,181,137,183,149,181,202,93,151,181,239,3,153,181,247,169,154,181,225,79,156,181,174,245,157,181,94,155,159,181,240,64,161,181,
100,230,162,181,186,139,164,181,241,48,166,181,10,214,167,181,5,123,169,181,225,31,171,181,158,196,172,181,60,105,174,181,186,13,176,181,26,178,177,181,89,86,179,181,121,250,180,181,121,158,182,181,88,66,184,181,24,230,185,181,183,137,187,181,53,45,189,181,146,208,190,181,207,115,192,181,234,22,194,181,228,185,195,181,189,92,197,181,116,255,198,181,9,162,200,181,123,68,202,181,204,230,203,181,251,136,205,181,7,43,207,181,240,204,208,181,182,110,210,181,90,16,212,181,218,177,213,181,55,83,215,181,
112,244,216,181,134,149,218,181,119,54,220,181,69,215,221,181,238,119,223,181,115,24,225,181,212,184,226,181,15,89,228,181,38,249,229,181,24,153,231,181,229,56,233,181,140,216,234,181,13,120,236,181,105,23,238,181,159,182,239,181,175,85,241,181,153,244,242,181,92,147,244,181,248,49,246,181,110,208,247,181,189,110,249,181,229,12,251,181,230,170,252,181,191,72,254,181,113,230,255,181,253,193,0,182,174,144,1,182,75,95,2,182,212,45,3,182,72,252,3,182,169,202,4,182,245,152,5,182,44,103,6,182,79,53,7,182,
93,3,8,182,87,209,8,182,59,159,9,182,11,109,10,182,198,58,11,182,108,8,12,182,253,213,12,182,120,163,13,182,222,112,14,182,47,62,15,182,106,11,16,182,144,216,16,182,160,165,17,182,155,114,18,182,127,63,19,182,78,12,20,182,7,217,20,182,170,165,21,182,54,114,22,182,173,62,23,182,13,11,24,182,87,215,24,182,138,163,25,182,167,111,26,182,173,59,27,182,156,7,28,182,117,211,28,182,54,159,29,182,225,106,30,182,117,54,31,182,242,1,32,182,87,205,32,182,165,152,33,182,220,99,34,182,251,46,35,182,3,250,35,182,
243,196,36,182,204,143,37,182,141,90,38,182,54,37,39,182,199,239,39,182,64,186,40,182,160,132,41,182,233,78,42,182,26,25,43,182,50,227,43,182,49,173,44,182,24,119,45,182,231,64,46,182,157,10,47,182,58,212,47,182,190,157,48,182,42,103,49,182,124,48,50,182,181,249,50,182,213,194,51,182,220,139,52,182,202,84,53,182,158,29,54,182,89,230,54,182,250,174,55,182,130,119,56,182,239,63,57,182,67,8,58,182,126,208,58,182,158,152,59,182,164,96,60,182,144,40,61,182,98,240,61,182,25,184,62,182,182,127,63,182,57,
71,64,182,161,14,65,182,239,213,65,182,34,157,66,182,58,100,67,182,55,43,68,182,25,242,68,182,225,184,69,182,141,127,70,182,30,70,71,182,148,12,72,182,239,210,72,182,46,153,73,182,81,95,74,182,90,37,75,182,70,235,75,182,23,177,76,182,204,118,77,182,101,60,78,182,226,1,79,182,67,199,79,182,136,140,80,182,177,81,81,182,189,22,82,182,173,219,82,182,129,160,83,182,56,101,84,182,211,41,85,182,81,238,85,182,178,178,86,182,247,118,87,182,30,59,88,182,41,255,88,182,22,195,89,182,231,134,90,182,154,74,91,
182,47,14,92,182,168,209,92,182,3,149,93,182,64,88,94,182,96,27,95,182,99,222,95,182,71,161,96,182,14,100,97,182,182,38,98,182,65,233,98,182,174,171,99,182,252,109,100,182,44,48,101,182,62,242,101,182,50,180,102,182,7,118,103,182,190,55,104,182,86,249,104,182,207,186,105,182,41,124,106,182,101,61,107,182,130,254,107,182,128,191,108,182,94,128,109,182,30,65,110,182,190,1,111,182,63,194,111,182,161,130,112,182,227,66,113,182,6,3,114,182,9,195,114,182,236,130,115,182,176,66,116,182,83,2,117,182,215,
193,117,182,59,129,118,182,127,64,119,182,162,255,119,182,166,190,120,182,137,125,121,182,76,60,122,182,238,250,122,182,112,185,123,182,209,119,124,182,18,54,125,182,49,244,125,182,48,178,126,182,14,112,127,182,230,22,128,182,180,117,128,182,113,212,128,182,30,51,129,182,186,145,129,182,70,240,129,182,193,78,130,182,43,173,130,182,132,11,131,182,204,105,131,182,4,200,131,182,43,38,132,182,65,132,132,182,69,226,132,182,57,64,133,182,28,158,133,182,238,251,133,182,174,89,134,182,93,183,134,182,252,
20,135,182,137,114,135,182,4,208,135,182,111,45,136,182,200,138,136,182,15,232,136,182,70,69,137,182,106,162,137,182,126,255,137,182,127,92,138,182,112,185,138,182,78,22,139,182,27,115,139,182,214,207,139,182,128,44,140,182,24,137,140,182,158,229,140,182,18,66,141,182,116,158,141,182,197,250,141,182,3,87,142,182,48,179,142,182,75,15,143,182,83,107,143,182,73,199,143,182,46,35,144,182,0,127,144,182,192,218,144,182,110,54,145,182,9,146,145,182,147,237,145,182,10,73,146,182,110,164,146,182,192,255,146,
182,0,91,147,182,45,182,147,182,72,17,148,182,80,108,148,182,70,199,148,182,41,34,149,182,249,124,149,182,183,215,149,182,98,50,150,182,250,140,150,182,127,231,150,182,242,65,151,182,82,156,151,182,158,246,151,182,216,80,152,182,255,170,152,182,19,5,153,182,20,95,153,182,2,185,153,182,220,18,154,182,164,108,154,182,88,198,154,182,249,31,155,182,135,121,155,182,2,211,155,182,105,44,156,182,189,133,156,182,254,222,156,182,43,56,157,182,68,145,157,182,74,234,157,182,61,67,158,182,28,156,158,182,231,
244,158,182,159,77,159,182,67,166,159,182,212,254,159,182,81,87,160,182,185,175,160,182,15,8,161,182,80,96,161,182,125,184,161,182,151,16,162,182,156,104,162,182,142,192,162,182,107,24,163,182,53,112,163,182,234,199,163,182,139,31,164,182,25,119,164,182,145,206,164,182,246,37,165,182,71,125,165,182,131,212,165,182,171,43,166,182,190,130,166,182,189,217,166,182,168,48,167,182,126,135,167,182,64,222,167,182,237,52,168,182,134,139,168,182,10,226,168,182,121,56,169,182,212,142,169,182,26,229,169,182,
76,59,170,182,104,145,170,182,112,231,170,182,99,61,171,182,65,147,171,182,10,233,171,182,191,62,172,182,94,148,172,182,232,233,172,182,94,63,173,182,190,148,173,182,9,234,173,182,63,63,174,182,96,148,174,182,108,233,174,182,98,62,175,182,67,147,175,182,15,232,175,182,198,60,176,182,103,145,176,182,243,229,176,182,105,58,177,182,202,142,177,182,22,227,177,182,76,55,178,182,108,139,178,182,119,223,178,182,108,51,179,182,76,135,179,182,22,219,179,182,202,46,180,182,104,130,180,182,241,213,180,182,100,
41,181,182,193,124,181,182,8,208,181,182,57,35,182,182,84,118,182,182,89,201,182,182,73,28,183,182,34,111,183,182,229,193,183,182,146,20,184,182,41,103,184,182,170,185,184,182,20,12,185,182,105,94,185,182,167,176,185,182,207,2,186,182,224,84,186,182,219,166,186,182,192,248,186,182,142,74,187,182,70,156,187,182,232,237,187,182,114,63,188,182,231,144,188,182,69,226,188,182,140,51,189,182,188,132,189,182,214,213,189,182,217,38,190,182,198,119,190,182,155,200,190,182,90,25,191,182,2,106,191,182,148,186,
191,182,14,11,192,182,113,91,192,182,190,171,192,182,243,251,192,182,18,76,193,182,25,156,193,182,9,236,193,182,227,59,194,182,165,139,194,182,80,219,194,182,228,42,195,182,96,122,195,182,197,201,195,182,19,25,196,182,74,104,196,182,106,183,196,182,114,6,197,182,98,85,197,182,59,164,197,182,253,242,197,182,167,65,198,182,58,144,198,182,181,222,198,182,25,45,199,182,100,123,199,182,153,201,199,182,181,23,200,182,186,101,200,182,167,179,200,182,125,1,201,182,58,79,201,182,224,156,201,182,110,234,201,
182,228,55,202,182,66,133,202,182,137,210,202,182,183,31,203,182,205,108,203,182,203,185,203,182,177,6,204,182,128,83,204,182,53,160,204,182,211,236,204,182,89,57,205,182,198,133,205,182,28,210,205,182,89,30,206,182,125,106,206,182,138,182,206,182,126,2,207,182,89,78,207,182,28,154,207,182,199,229,207,182,89,49,208,182,211,124,208,182,53,200,208,182,125,19,209,182,173,94,209,182,197,169,209,182,196,244,209,182,170,63,210,182],"i8",4,y.a+1146880);
Q([120,138,210,182,45,213,210,182,201,31,211,182,76,106,211,182,183,180,211,182,8,255,211,182,65,73,212,182,97,147,212,182,104,221,212,182,86,39,213,182,44,113,213,182,232,186,213,182,139,4,214,182,21,78,214,182,134,151,214,182,222,224,214,182,29,42,215,182,66,115,215,182,78,188,215,182,66,5,216,182,28,78,216,182,220,150,216,182,132,223,216,182,18,40,217,182,134,112,217,182,225,184,217,182,35,1,218,182,76,73,218,182,91,145,218,182,80,217,218,182,44,33,219,182,238,104,219,182,151,176,219,182,39,248,
219,182,156,63,220,182,248,134,220,182,58,206,220,182,99,21,221,182,114,92,221,182,103,163,221,182,66,234,221,182,4,49,222,182,171,119,222,182,57,190,222,182,173,4,223,182,7,75,223,182,71,145,223,182,109,215,223,182,121,29,224,182,107,99,224,182,67,169,224,182,1,239,224,182,164,52,225,182,46,122,225,182,158,191,225,182,243,4,226,182,46,74,226,182,79,143,226,182,86,212,226,182,66,25,227,182,20,94,227,182,204,162,227,182,105,231,227,182,236,43,228,182,85,112,228,182,163,180,228,182,214,248,228,182,
240,60,229,182,238,128,229,182,210,196,229,182,156,8,230,182,75,76,230,182,223,143,230,182,89,211,230,182,184,22,231,182,253,89,231,182,38,157,231,182,53,224,231,182,41,35,232,182,3,102,232,182,193,168,232,182,101,235,232,182,238,45,233,182,92,112,233,182,175,178,233,182,231,244,233,182,4,55,234,182,7,121,234,182,238,186,234,182,186,252,234,182,107,62,235,182,1,128,235,182,124,193,235,182,220,2,236,182,33,68,236,182,74,133,236,182,88,198,236,182,76,7,237,182,35,72,237,182,224,136,237,182,129,201,
237,182,7,10,238,182,114,74,238,182,193,138,238,182,245,202,238,182,13,11,239,182,10,75,239,182,236,138,239,182,178,202,239,182,92,10,240,182,235,73,240,182,95,137,240,182,183,200,240,182,243,7,241,182,20,71,241,182,25,134,241,182,2,197,241,182,208,3,242,182,130,66,242,182,24,129,242,182,146,191,242,182,241,253,242,182,52,60,243,182,91,122,243,182,102,184,243,182,85,246,243,182,41,52,244,182,224,113,244,182,124,175,244,182,251,236,244,182,95,42,245,182,167,103,245,182,210,164,245,182,226,225,245,
182,213,30,246,182,172,91,246,182,104,152,246,182,7,213,246,182,138,17,247,182,240,77,247,182,59,138,247,182,105,198,247,182,123,2,248,182,113,62,248,182,74,122,248,182,8,182,248,182,168,241,248,182,45,45,249,182,149,104,249,182,225,163,249,182,16,223,249,182,35,26,250,182,25,85,250,182,243,143,250,182,176,202,250,182,81,5,251,182,214,63,251,182,61,122,251,182,136,180,251,182,183,238,251,182,201,40,252,182,190,98,252,182,151,156,252,182,82,214,252,182,242,15,253,182,116,73,253,182,218,130,253,182,
34,188,253,182,79,245,253,182,94,46,254,182,80,103,254,182,38,160,254,182,222,216,254,182,122,17,255,182,249,73,255,182,91,130,255,182,160,186,255,182,200,242,255,182,105,21,0,183,96,49,0,183,73,77,0,183,35,105,0,183,238,132,0,183,171,160,0,183,89,188,0,183,249,215,0,183,138,243,0,183,13,15,1,183,129,42,1,183,230,69,1,183,61,97,1,183,133,124,1,183,190,151,1,183,233,178,1,183,5,206,1,183,19,233,1,183,17,4,2,183,2,31,2,183,227,57,2,183,182,84,2,183,122,111,2,183,47,138,2,183,214,164,2,183,109,191,2,
183,246,217,2,183,113,244,2,183,220,14,3,183,57,41,3,183,135,67,3,183,198,93,3,183,246,119,3,183,24,146,3,183,43,172,3,183,47,198,3,183,36,224,3,183,10,250,3,183,225,19,4,183,170,45,4,183,99,71,4,183,14,97,4,183,170,122,4,183,54,148,4,183,180,173,4,183,35,199,4,183,132,224,4,183,213,249,4,183,23,19,5,183,74,44,5,183,110,69,5,183,132,94,5,183,138,119,5,183,129,144,5,183,106,169,5,183,67,194,5,183,13,219,5,183,201,243,5,183,117,12,6,183,18,37,6,183,160,61,6,183,31,86,6,183,143,110,6,183,240,134,6,183,
66,159,6,183,133,183,6,183,184,207,6,183,221,231,6,183,242,255,6,183,249,23,7,183,240,47,7,183,216,71,7,183,177,95,7,183,122,119,7,183,53,143,7,183,224,166,7,183,124,190,7,183,9,214,7,183,135,237,7,183,245,4,8,183,85,28,8,183,165,51,8,183,230,74,8,183,23,98,8,183,58,121,8,183,77,144,8,183,81,167,8,183,69,190,8,183,42,213,8,183,0,236,8,183,199,2,9,183,127,25,9,183,39,48,9,183,191,70,9,183,73,93,9,183,195,115,9,183,46,138,9,183,137,160,9,183,213,182,9,183,18,205,9,183,63,227,9,183,93,249,9,183,108,
15,10,183,107,37,10,183,91,59,10,183,59,81,10,183,12,103,10,183,205,124,10,183,127,146,10,183,34,168,10,183,181,189,10,183,57,211,10,183,173,232,10,183,18,254,10,183,103,19,11,183,173,40,11,183,228,61,11,183,10,83,11,183,34,104,11,183,42,125,11,183,34,146,11,183,11,167,11,183,228,187,11,183,174,208,11,183,104,229,11,183,19,250,11,183,174,14,12,183,57,35,12,183,181,55,12,183,34,76,12,183,127,96,12,183,204,116,12,183,10,137,12,183,56,157,12,183,86,177,12,183,101,197,12,183,100,217,12,183,83,237,12,
183,51,1,13,183,4,21,13,183,196,40,13,183,117,60,13,183,23,80,13,183,168,99,13,183,42,119,13,183,156,138,13,183,255,157,13,183,82,177,13,183,149,196,13,183,201,215,13,183,236,234,13,183,0,254,13,183,5,17,14,183,249,35,14,183,222,54,14,183,179,73,14,183,121,92,14,183,46,111,14,183,212,129,14,183,106,148,14,183,241,166,14,183,103,185,14,183,206,203,14,183,37,222,14,183,108,240,14,183,164,2,15,183,203,20,15,183,227,38,15,183,235,56,15,183,227,74,15,183,203,92,15,183,164,110,15,183,108,128,15,183,37,
146,15,183,206,163,15,183,103,181,15,183,240,198,15,183,106,216,15,183,211,233,15,183,45,251,15,183,119,12,16,183,176,29,16,183,218,46,16,183,244,63,16,183,254,80,16,183,249,97,16,183,227,114,16,183,189,131,16,183,136,148,16,183,66,165,16,183,237,181,16,183,136,198,16,183,18,215,16,183,141,231,16,183,248,247,16,183,83,8,17,183,157,24,17,183,216,40,17,183,3,57,17,183,30,73,17,183,41,89,17,183,36,105,17,183,15,121,17,183,234,136,17,183,181,152,17,183,112,168,17,183,27,184,17,183,182,199,17,183,65,215,
17,183,188,230,17,183,38,246,17,183,129,5,18,183,204,20,18,183,7,36,18,183,49,51,18,183,76,66,18,183,87,81,18,183,81,96,18,183,59,111,18,183,22,126,18,183,224,140,18,183,154,155,18,183,68,170,18,183,222,184,18,183,104,199,18,183,226,213,18,183,76,228,18,183,166,242,18,183,239,0,19,183,41,15,19,183,82,29,19,183,107,43,19,183,116,57,19,183,109,71,19,183,86,85,19,183,46,99,19,183,247,112,19,183,175,126,19,183,87,140,19,183,239,153,19,183,119,167,19,183,239,180,19,183,87,194,19,183,174,207,19,183,245,
220,19,183,44,234,19,183,83,247,19,183,106,4,20,183,113,17,20,183,103,30,20,183,77,43,20,183,35,56,20,183,233,68,20,183,158,81,20,183,68,94,20,183,217,106,20,183,94,119,20,183,210,131,20,183,55,144,20,183,139,156,20,183,207,168,20,183,3,181,20,183,38,193,20,183,58,205,20,183,61,217,20,183,48,229,20,183,18,241,20,183,229,252,20,183,167,8,21,183,89,20,21,183,250,31,21,183,140,43,21,183,13,55,21,183,125,66,21,183,222,77,21,183,46,89,21,183,110,100,21,183,158,111,21,183,189,122,21,183,205,133,21,183,
204,144,21,183,186,155,21,183,152,166,21,183,102,177,21,183,36,188,21,183,210,198,21,183,111,209,21,183,252,219,21,183,120,230,21,183,228,240,21,183,64,251,21,183,140,5,22,183,199,15,22,183,242,25,22,183,13,36,22,183,23,46,22,183,17,56,22,183,251,65,22,183,212,75,22,183,157,85,22,183,86,95,22,183,254,104,22,183,150,114,22,183,30,124,22,183,149,133,22,183,252,142,22,183,83,152,22,183,153,161,22,183,207,170,22,183,244,179,22,183,10,189,22,183,15,198,22,183,3,207,22,183,231,215,22,183,187,224,22,183,
127,233,22,183,50,242,22,183,212,250,22,183,103,3,23,183,233,11,23,183,90,20,23,183,188,28,23,183,12,37,23,183,77,45,23,183,125,53,23,183,157,61,23,183,172,69,23,183,171,77,23,183,154,85,23,183,120,93,23,183,70,101,23,183,3,109,23,183,176,116,23,183,77,124,23,183,217,131,23,183,85,139,23,183,193,146,23,183,28,154,23,183,103,161,23,183,161,168,23,183,203,175,23,183,228,182,23,183,238,189,23,183,230,196,23,183,207,203,23,183,167,210,23,183,110,217,23,183,37,224,23,183,204,230,23,183,98,237,23,183,232,
243,23,183,94,250,23,183,195,0,24,183,24,7,24,183,92,13,24,183,144,19,24,183,179,25,24,183,198,31,24,183,201,37,24,183,187,43,24,183,157,49,24,183,110,55,24,183,47,61,24,183,224,66,24,183,128,72,24,183,16,78,24,183,143,83,24,183,254,88,24,183,93,94,24,183,171,99,24,183,233,104,24,183,22,110,24,183,51,115,24,183,63,120,24,183,59,125,24,183,39,130,24,183,2,135,24,183,205,139,24,183,135,144,24,183,49,149,24,183,203,153,24,183,84,158,24,183,204,162,24,183,53,167,24,183,140,171,24,183,212,175,24,183,11,
180,24,183,50,184,24,183,72,188,24,183,78,192,24,183,67,196,24,183,40,200,24,183,252,203,24,183,193,207,24,183,116,211,24,183,24,215,24,183,170,218,24,183,45,222,24,183,159,225,24,183,1,229,24,183,82,232,24,183,147,235,24,183,195,238,24,183,227,241,24,183,243,244,24,183,242,247,24,183,225,250,24,183,191,253,24,183,141,0,25,183,74,3,25,183,248,5,25,183,148,8,25,183,33,11,25,183,157,13,25,183,8,16,25,183,99,18,25,183,174,20,25,183,232,22,25,183,18,25,25,183,44,27,25,183,53,29,25,183,46,31,25,183,22,
33,25,183,238,34,25,183,182,36,25,183,109,38,25,183,20,40,25,183,170,41,25,183,48,43,25,183,166,44,25,183,11,46,25,183,96,47,25,183,165,48,25,183,217,49,25,183,253,50,25,183,16,52,25,183,19,53,25,183,6,54,25,183,232,54,25,183,186,55,25,183,123,56,25,183,44,57,25,183,205,57,25,183,94,58,25,183,222,58,25,183,78,59,25,183,173,59,25,183,252,59,25,183,59,60,25,183,105,60,25,183,135,60,25,183,148,60,25,183,146,60,25,183,127,60,25,183,91,60,25,183,39,60,25,183,227,59,25,183,143,59,25,183,42,59,25,183,181,
58,25,183,47,58,25,183,154,57,25,183,244,56,25,183,61,56,25,183,118,55,25,183,159,54,25,183,184,53,25,183,192,52,25,183,184,51,25,183,160,50,25,183,119,49,25,183,62,48,25,183,245,46,25,183,156,45,25,183,50,44,25,183,184,42,25,183,45,41,25,183,146,39,25,183,231,37,25,183,44,36,25,183,97,34,25,183,133,32,25,183,153,30,25,183,156,28,25,183,144,26,25,183,115,24,25,183,69,22,25,183,8,20,25,183,186,17,25,183,92,15,25,183,238,12,25,183,112,10,25,183,225,7,25,183,66,5,25,183,147,2,25,183,211,255,24,183,3,
253,24,183,36,250,24,183,51,247,24,183,51,244,24,183,34,241,24,183,2,238,24,183,209,234,24,183,143,231,24,183,62,228,24,183,220,224,24,183,106,221,24,183,232,217,24,183,86,214,24,183,179,210,24,183,1,207,24,183,62,203,24,183,107,199,24,183,136,195,24,183,148,191,24,183,145,187,24,183,125,183,24,183,89,179,24,183,37,175,24,183,225,170,24,183,140,166,24,183,40,162,24,183,179,157,24,183,46,153,24,183,153,148,24,183,244,143,24,183,63,139,24,183,122,134,24,183,164,129,24,183,191,124,24,183,201,119,24,
183,195,114,24,183,173,109,24,183,135,104,24,183,81,99,24,183,11,94,24,183,181,88,24,183,78,83,24,183,216,77,24,183,81,72,24,183,186,66,24,183,20,61,24,183,93,55,24,183,150,49,24,183,191,43,24,183,216,37,24,183,225,31,24,183,218,25,24,183,195,19,24,183,156,13,24,183,101,7,24,183,30,1,24,183,198,250,23,183,95,244,23,183,232,237,23,183,97,231,23,183,201,224,23,183,34,218,23,183,107,211,23,183,164,204,23,183,204,197,23,183,229,190,23,183,238,183,23,183,231,176,23,183,208,169,23,183,169,162,23,183,114,
155,23,183,43,148,23,183,212,140,23,183,109,133,23,183,246,125,23,183,111,118,23,183,217,110,23,183,50,103,23,183,123,95,23,183,181,87,23,183,223,79,23,183,248,71,23,183,2,64,23,183,252,55,23,183,230,47,23,183,193,39,23,183,139,31,23,183,69,23,23,183,240,14,23,183,139,6,23,183,22,254,22,183,145,245,22,183,252,236,22,183,87,228,22,183,163,219,22,183,223,210,22,183,10,202,22,183,38,193,22,183,51,184,22,183,47,175,22,183,28,166,22,183,249,156,22,183,198,147,22,183,131,138,22,183,49,129,22,183,206,119,
22,183,92,110,22,183,219,100,22,183,73,91,22,183,168,81,22,183,247,71,22,183,54,62,22,183,102,52,22,183,133,42,22,183,149,32,22,183,150,22,22,183,134,12,22,183,103,2,22,183,57,248,21,183,250,237,21,183,172,227,21,183,78,217,21,183,225,206,21,183,100,196,21,183,215,185,21,183,59,175,21,183,143,164,21,183,211,153,21,183,8,143,21,183,45,132,21,183,66,121,21,183,72,110,21,183,62,99,21,183,37,88,21,183,252,76,21,183,195,65,21,183,123,54,21,183,36,43,21,183,188,31,21,183,70,20,21,183,191,8,21,183,41,253,
20,183,132,241,20,183,207,229,20,183,10,218,20,183,54,206,20,183,83,194,20,183,96,182,20,183,93,170,20,183,75,158,20,183,41,146,20,183,248,133,20,183,184,121,20,183,104,109,20,183,9,97,20,183,154,84,20,183,28,72,20,183,142,59,20,183,241,46,20,183,68,34,20,183,136,21,20,183,189,8,20,183,226,251,19,183,248,238,19,183,254,225,19,183,245,212,19,183,221,199,19,183,181,186,19,183,126,173,19,183,56,160,19,183,226,146,19,183,125,133,19,183,8,120,19,183,133,106,19,183,242,92,19,183,79,79,19,183,158,65,19,
183,221,51,19,183,12,38,19,183,45,24,19,183,62,10,19,183,64,252,18,183,51,238,18,183,22,224,18,183,235,209,18,183,176,195,18,183,101,181,18,183,12,167,18,183,163,152,18,183,44,138,18,183,165,123,18,183,14,109,18,183,105,94,18,183,180,79,18,183,241,64,18,183,30,50,18,183,60,35,18,183,75,20,18,183,74,5,18,183,59,246,17,183,29,231,17,183,239,215,17,183,178,200,17,183,103,185,17,183,12,170,17,183,162,154,17,183,41,139,17,183,161,123,17,183,10,108,17,183,100,92,17,183,175,76,17,183,234,60,17,183,23,45,
17,183,53,29,17,183,68,13,17,183,68,253,16,183,53,237,16,183,23,221,16,183,233,204,16,183,173,188,16,183,99,172,16,183,9,156,16,183,160,139,16,183,40,123,16,183,161,106,16,183,12,90,16,183,103,73,16,183,180,56,16,183,242,39,16,183,33,23,16,183,65,6,16,183,82,245,15,183,85,228,15,183,72,211,15,183,45,194,15,183,3,177,15,183,202,159,15,183,130,142,15,183,44,125,15,183,199,107,15,183,83,90,15,183,208,72,15,183,62,55,15,183,158,37,15,183,239,19,15,183,49,2,15,183,101,240,14,183,138,222,14,183,160,204,
14,183,167,186,14,183,160,168,14,183,138,150,14,183,102,132,14,183,51,114,14,183,241,95,14,183,160,77,14,183,65,59,14,183,212,40,14,183,87,22,14,183,205,3,14,183,51,241,13,183,139,222,13,183,213,203,13,183,15,185,13,183,60,166,13,183,90,147,13,183,105,128,13,183,106,109,13,183,92,90,13,183,64,71,13,183,21,52,13,183,220,32,13,183,148,13,13,183,62,250,12,183,217,230,12,183,102,211,12,183,229,191,12,183,85,172,12,183,182,152,12,183,10,133,12,183,79,113,12,183,133,93,12,183,173,73,12,183,199,53,12,183,
211,33,12,183,208,13,12,183,191,249,11,183,159,229,11,183,113,209,11,183,53,189,11,183,235,168,11,183,146,148,11,183,43,128,11,183,182,107,11,183,50,87,11,183,161,66,11,183,1,46,11,183,83,25,11,183,150,4,11,183,204,239,10,183,243,218,10,183,12,198,10,183,23,177,10,183,20,156,10,183,2,135,10,183,227,113,10,183,181,92,10,183,121,71,10,183,47,50,10,183,216,28,10,183,113,7,10,183,253,241,9,183,123,220,9,183,235,198,9,183,77,177,9,183,160,155,9,183,230,133,9,183,30,112,9,183,72,90,9,183,99,68,9,183,113,
46,9,183,113,24,9,183,99,2,9,183,71,236,8,183,28,214,8,183,228,191,8,183,159,169,8,183,75,147,8,183,233,124,8,183,122,102,8,183,252,79,8,183,113,57,8,183,216,34,8,183,49,12,8,183,124,245,7,183,186,222,7,183,233,199,7,183,11,177,7,183,31,154,7,183,38,131,7,183,30,108,7,183,9,85,7,183,230,61,7,183,181,38,7,183,119,15,7,183,43,248,6,183,209,224,6,183,106,201,6,183,245,177,6,183,114,154,6,183,226,130,6,183,68,107,6,183,152,83,6,183,223,59,6,183,24,36,6,183,68,12,6,183,98,244,5,183,114,220,5,183,117,196,
5,183,106,172,5,183,82,148,5,183,45,124,5,183,249,99,5,183,185,75,5,183,107,51,5,183,15,27,5,183,166,2,5,183,48,234,4,183,172,209,4,183,26,185,4,183,124,160,4,183,207,135,4,183,22,111,4,183,79,86,4,183,123,61,4,183,153,36,4,183,170,11,4,183,174,242,3,183,164,217,3,183,141,192,3,183,105,167,3,183,56,142,3,183,249,116,3,183,173,91,3,183,84,66,3,183,238,40,3,183,122,15,3,183,249,245,2,183,107,220,2,183,208,194,2,183,39,169,2,183,114,143,2,183,175,117,2,183,223,91,2,183,2,66,2,183,24,40,2,183,33,14,2,
183,29,244,1,183,12,218,1,183,237,191,1,183,194,165,1,183,138,139,1,183,68,113,1,183,242,86,1,183,146,60,1,183,38,34,1,183,173,7,1,183,38,237,0,183,147,210,0,183,243,183,0,183,70,157,0,183,140,130,0,183,197,103,0,183,241,76,0,183,16,50,0,183,35,23,0,183,81,248,255,182,67,194,255,182,27,140,255,182,217,85,255,182,126,31,255,182,9,233,254,182,123,178,254,182,211,123,254,182,18,69,254,182,55,14,254,182,67,215,253,182,53,160,253,182,15,105,253,182,206,49,253,182,117,250,252,182,2,195,252,182,118,139,
252,182,208,83,252,182,18,28,252,182,58,228,251,182,73,172,251,182,63,116,251,182,28,60,251,182,223,3,251,182,138,203,250,182,28,147,250,182,148,90,250,182,244,33,250,182,59,233,249,182,104,176,249,182,125,119,249,182,121,62,249,182,92,5,249,182,39,204,248,182,216,146,248,182,113,89,248,182,241,31,248,182,88,230,247,182,167,172,247,182,221,114,247,182,250,56,247,182,255,254,246,182,235,196,246,182,191,138,246,182,122,80,246,182,29,22,246,182,167,219,245,182,24,161,245,182,114,102,245,182,179,43,245,
182,219,240,244,182,235,181,244,182,227,122,244,182,195,63,244,182,138,4,244,182,57,201,243,182,208,141,243,182,79,82,243,182,182,22,243,182,4,219,242,182,59,159,242,182,89,99,242,182,96,39,242,182,78,235,241,182,36,175,241,182,227,114,241,182,137,54,241,182,24,250,240,182,143,189,240,182,238,128,240,182,53,68,240,182,100,7,240,182,124,202,239,182,124,141,239,182,100,80,239,182,53,19,239,182,238,213,238,182,143,152,238,182,25,91,238,182,139,29,238,182,230,223,237,182,41,162,237,182,85,100,237,182,
105,38,237,182,102,232,236,182,76,170,236,182,26,108,236,182,209,45,236,182,112,239,235,182,249,176,235,182,106,114,235,182,195,51,235,182,6,245,234,182,50,182,234,182,70,119,234,182,67,56,234,182,42,249,233,182,249,185,233,182,177,122,233,182,83,59,233,182,221,251,232,182,80,188,232,182,173,124,232,182,243,60,232,182,33,253,231,182,57,189,231,182,59,125,231,182,37,61,231,182,249,252,230,182,182,188,230,182,93,124,230,182,237,59,230,182,102,251,229,182,201,186,229,182,21,122,229,182,75,57,229,182,
106,248,228,182,115,183,228,182,101,118,228,182,65,53,228,182,7,244,227,182,182,178,227,182,79,113,227,182,210,47,227,182,63,238,226,182,149,172,226,182,213,106,226,182,255,40,226,182,19,231,225,182,17,165,225,182,249,98,225,182,202,32,225,182,134,222,224,182,44,156,224,182,188,89,224,182,54,23,224,182,154,212,223,182,232,145,223,182,33,79,223,182,67,12,223,182,80,201,222,182,71,134,222,182,41,67,222,182,245,255,221,182,171,188,221,182,76,121,221,182,215,53,221,182,76,242,220,182,172,174,220,182,
247,106,220,182,44,39,220,182,76,227,219,182,86,159,219,182,75,91,219,182,42,23,219,182,245,210,218,182,170,142,218,182,74,74,218,182,212,5,218,182,74,193,217,182,170,124,217,182,246,55,217,182,44,243,216,182,77,174,216,182,89,105,216,182,80,36,216,182,51,223,215,182,0,154,215,182,184,84,215,182,92,15,215,182,235,201,214,182,101,132,214,182,202,62,214,182,26,249,213,182,86,179,213,182,125,109,213,182,144,39,213,182,142,225,212,182,119,155,212,182,76,85,212,182,12,15,212,182,184,200,211,182,79,130,
211,182,210,59,211,182,65,245,210,182,155,174,210,182,225,103,210,182,19,33,210,182,48,218,209,182,57,147,209,182,46,76,209,182,15,5,209,182,220,189,208,182,148,118,208,182,57,47,208,182,202,231,207,182,70,160,207,182,175,88,207,182,3,17,207,182,68,201,206,182,113,129,206,182,138,57,206,182,143,241,205,182,129,169,205,182,95,97,205,182,41,25,205,182,223,208,204,182,130,136,204,182,17,64,204,182,141,247,203,182,245,174,203,182,73,102,203,182,138,29,203,182,184,212,202,182,210,139,202,182,217,66,202,
182,204,249,201,182,172,176,201,182,121,103,201,182,51,30,201,182,217,212,200,182,109,139,200,182,237,65,200,182,90,248,199,182,180,174,199,182,251,100,199,182,46,27,199,182,79,209,198,182,93,135,198,182,88,61,198,182,64,243,197,182,22,169,197,182,216,94,197,182,136,20,197,182,37,202,196,182,175,127,196,182,38,53,196,182,139,234,195,182,221,159,195,182,29,85,195,182,74,10,195,182,101,191,194,182,109,116,194,182,99,41,194,182,70,222,193,182,23,147,193,182,213,71,193,182,129,252,192,182,27,177,192,
182,163,101,192,182,24,26,192,182,124,206,191,182,205,130,191,182,12,55,191,182,57,235,190,182,84,159,190,182,93,83,190,182,83,7,190,182,56,187,189,182,11,111,189,182,205,34,189,182,124,214,188,182,25,138,188,182,165,61,188,182,31,241,187,182,135,164,187,182,222,87,187,182,35,11,187,182,86,190,186,182,120,113,186,182,136,36,186,182,135,215,185,182,116,138,185,182,80,61,185,182,27,240,184,182,212,162,184,182,124,85,184,182,18,8,184,182,151,186,183,182,11,109,183,182,110,31,183,182,192,209,182,182,
0,132,182,182,48,54,182,182,78,232,181,182,91,154,181,182,88,76,181,182,67,254,180,182,29,176,180,182,231,97,180,182,160,19,180,182,72,197,179,182,223,118,179,182,101,40,179,182,219,217,178,182,64,139,178,182,148,60,178,182,216,237,177,182,11,159,177,182,46,80,177,182,64,1,177,182,66,178,176,182,51,99,176,182,20,20,176,182,228,196,175,182,164,117,175,182,84,38,175,182,244,214,174,182,131,135,174,182,3,56,174,182,114,232,173,182,209,152,173,182,32,73,173,182,94,249,172,182,141,169,172,182,172,89,172,
182,187,9,172,182,186,185,171,182,169,105,171,182,136,25,171,182,88,201,170,182,23,121,170,182,199,40,170,182,104,216,169,182,248,135,169,182,121,55,169,182,235,230,168,182,77,150,168,182,159,69,168,182,226,244,167,182,21,164,167,182,57,83,167,182,78,2,167,182,83,177,166,182,73,96,166,182,48,15,166,182,8,190,165,182,208,108,165,182,137,27,165,182,51,202,164,182,206,120,164,182,90,39,164,182,215,213,163,182,69,132,163,182,164,50,163,182,244,224,162,182,53,143,162,182,103,61,162,182,139,235,161,182,
160,153,161,182,166,71,161,182,157,245,160,182,134,163,160,182,96,81,160,182,43,255,159,182,232,172,159,182,150,90,159,182,54,8,159,182,200,181,158,182,75,99,158,182,192,16,158,182,38,190,157,182,126,107,157,182,200,24,157,182,3,198,156,182,49,115,156,182,80,32,156,182,97,205,155,182,100,122,155,182,89,39,155,182,64,212,154,182,25,129,154,182,228,45,154,182,161,218,153,182,81,135,153,182,242,51,153,182,134,224,152,182,12,141,152,182,132,57,152,182,239,229,151,182,75,146,151,182,155,62,151,182,221,
234,150,182,17,151,150,182,55,67,150,182,81,239,149,182,92,155,149,182,91,71,149,182,76,243,148,182,48,159,148,182,6,75,148,182,207,246,147,182,139,162,147,182,58,78,147,182,220,249,146,182,113,165,146,182,248,80,146,182,115,252,145,182,224,167,145,182,65,83,145,182,149,254,144,182,219,169,144,182,21,85,144,182,67,0,144,182,99,171,143,182,119,86,143,182,126,1,143,182,120,172,142,182,102,87,142,182,71,2,142,182,28,173,141,182,228,87,141,182,159,2,141,182,79,173,140,182,242,87,140,182,136,2,140,182,
18,173,139,182,144,87,139,182,2,2,139,182,103,172,138,182,192,86,138,182,13,1,138,182,78,171,137,182,131,85,137,182,172,255,136,182,201,169,136,182,218,83,136,182,223,253,135,182,217,167,135,182,198,81,135,182,168,251,134,182,125,165,134,182,72,79,134,182,6,249,133,182,185,162,133,182,96,76,133,182,251,245,132,182,139,159,132,182,16,73,132,182,137,242,131,182,247,155,131,182,89,69,131,182,176,238,130,182,252,151,130,182,60,65,130,182,113,234,129,182,155,147,129,182,186,60,129,182,205,229,128,182,
214,142,128,182,211,55,128,182,139,193,127,182,90,19,127,182,19,101,126,182,183,182,125,182,68,8,125,182,188,89,124,182,31,171,123,182,108,252,122,182,163,77,122,182,197,158,121,182,210,239,120,182,202,64,120,182,172,145,119,182,122,226,118,182,50,51,118,182,214,131,117,182,100,212,116,182,222,36,116,182,68,117,115,182,149,197,114,182,209,21,114,182,249,101,113,182,12,182,112,182,11,6,112,182,246,85,111,182,205,165,110,182,144,245,109,182,63,69,109,182,218,148,108,182,97,228,107,182,212,51,107,182,
52,131,106,182,128,210,105,182,184,33,105,182,221,112,104,182,239,191,103,182,237,14,103,182,217,93,102,182,177,172,101,182,117,251,100,182,39,74,100,182,198,152,99,182,83,231,98,182,204,53,98,182,51,132,97,182,135,210,96,182,200,32,96,182,248,110,95,182,20,189,94,182,31,11,94,182,23,89,93,182,253,166,92,182,209,244,91,182,147,66,91,182,67,144,90,182,225,221,89,182,109,43,89,182,232,120,88,182,81,198,87,182,169,19,87,182,239,96,86,182,35,174,85,182,71,251,84,182,89,72,84,182,90,149,83,182,74,226,
82,182,41,47,82,182,246,123,81,182,180,200,80,182,96,21,80,182,251,97,79,182,134,174,78,182,1,251,77,182,107,71,77,182,196,147,76,182,14,224,75,182,71,44,75,182,112,120,74,182,136,196,73,182,145,16,73,182,138,92,72,182,115,168,71,182,76,244,70,182,22,64,70,182,207,139,69,182,122,215,68,182,21,35,68,182,160,110,67,182,28,186,66,182,137,5,66,182,231,80,65,182,54,156,64,182,117,231,63,182,166,50,63,182,200,125,62,182,219,200,61,182,223,19,61,182,213,94,60,182,188,169,59,182,149,244,58,182,96,63,58,182,
28,138,57,182,202,212,56,182,105,31,56,182,251,105,55,182,126,180,54,182,244,254,53,182,92,73,53,182,182,147,52,182,2,222,51,182,65,40,51,182,114,114,50,182,150,188,49,182,172,6,49,182,182,80,48,182,177,154,47,182,160,228,46,182,130,46,46,182,86,120,45,182,30,194,44,182,217,11,44,182,135,85,43,182,40,159,42,182,189,232,41,182,69,50,41,182,193,123,40,182,49,197,39,182,148,14,39,182,235,87,38,182,53,161,37,182,116,234,36,182,167,51,36,182,206,124,35,182,233,197,34,182,248,14,34,182,251,87,33,182,243,
160,32,182,224,233,31,182,193,50,31,182,150,123,30,182,97,196,29,182,32,13,29,182,212,85,28,182,125,158,27,182,27,231,26,182,174,47,26,182,54,120,25,182,179,192,24,182,38,9,24,182,142,81,23,182,236,153,22,182,63,226,21,182,136,42,21,182,199,114,20,182,252,186,19,182,38,3,19,182,70,75,18,182,92,147,17,182,105,219,16,182,108,35,16,182,100,107,15,182,84,179,14,182,57,251,13,182,22,67,13,182,232,138,12,182,178,210,11,182,114,26,11,182,41,98,10,182,215,169,9,182,123,241,8,182,23,57,8,182,170,128,7,182,
52,200,6,182,182,15,6,182,47,87,5,182,159,158,4,182,7,230,3,182,102,45,3,182,189,116,2,182,12,188,1,182,83,3,1,182,145,74,0,182,143,35,255,181,236,177,253,181,58,64,252,181,120,206,250,181,166,92,249,181,197,234,247,181,213,120,246,181,215,6,245,181,201,148,243,181,173,34,242,181,130,176,240,181,73,62,239,181,2,204,237,181,172,89,236,181,73,231,234,181,216,116,233,181,90,2,232,181,206,143,230,181,54,29,229,181,144,170,227,181,221,55,226,181,29,197,224,181,81,82,223,181,120,223,221,181,147,108,220,
181,162,249,218,181,165,134,217,181,156,19,216,181,135,160,214,181,103,45,213,181,60,186,211,181,5,71,210,181,196,211,208,181,119,96,207,181,32,237,205,181,190,121,204,181,82,6,203,181,219,146,201,181,90,31,200,181,208,171,198,181,59,56,197,181,157,196,195,181,246,80,194,181,69,221,192,181,139,105,191,181,200,245,189,181,252,129,188,181,40,14,187,181,75,154,185,181,101,38,184,181,119,178,182,181,130,62,181,181,132,202,179,181,127,86,178,181,114,226,176,181,93,110,175,181,65,250,173,181,30,134,172,
181,244,17,171,181,196,157,169,181,140,41,168,181,78,181,166,181,10,65,165,181,192,204,163,181,111,88,162,181,25,228,160,181,188,111,159,181,91,251,157,181,244,134,156,181,135,18,155,181,22,158,153,181,159,41,152,181,36,181,150,181,164,64,149,181,31,204,147,181,151,87,146,181,10,227,144,181,121,110,143,181,228,249,141,181,76,133,140,181,175,16,139,181,16,156,137,181,109,39,136,181,200,178,134,181,31,62,133,181,115,201,131,181,197,84,130,181,21,224,128,181,196,214,126,181,90,237,123,181,236,3,121,
181,122,26,118,181,5,49,115,181,141,71,112,181,18,94,109,181,149,116,106,181,21,139,103,181,148,161,100,181,17,184,97,181,141,206,94,181,8,229,91,181,131,251,88,181,254,17,86,181,120,40,83,181,243,62,80,181,110,85,77,181,235,107,74,181,104,130,71,181,232,152,68,181,105,175,65,181,237,197,62,181,115,220,59,181,252,242,56,181,136,9,54,181,23,32,51,181,171,54,48,181,66,77,45,181,222,99,42,181,126,122,39,181,36,145,36,181,207,167,33,181,127,190,30,181,54,213,27,181,243,235,24,181,182,2,22,181,128,25,
19,181,82,48,16,181,43,71,13,181,11,94,10,181,244,116,7,181,230,139,4,181,224,162,1,181,197,115,253,180,222,161,247,180,10,208,241,180,75,254,235,180,159,44,230,180,9,91,224,180,137,137,218,180,31,184,212,180,205,230,206,180,146,21,201,180,111,68,195,180,101,115,189,180,117,162,183,180,159,209,177,180,227,0,172,180,67,48,166,180,191,95,160,180,88,143,154,180,13,191,148,180,225,238,142,180,211,30,137,180,228,78,131,180,43,254,122,180,205,94,111,180,177,191,99,180,217,32,88,180,68,130,76,180,246,227,
64,180,238,69,53,180,46,168,41,180,183,10,30,180,139,109,18,180,170,208,6,180,46,104,246,179,163,47,223,179,183,247,199,179,109,192,176,179,198,137,153,179,197,83,130,179,218,60,86,179,128,211,39,179,2,215,242,178,196,9,150,178,67,253,228,177,61,33,142,49,18,77,128,50,237,14,221,50,236,230,28,51,227,68,75,51,88,161,121,51,35,254,147,51,212,42,171,51,188,86,194,51,218,129,217,51,42,172,240,51,213,234,3,52,44,127,15,52,24,19,27,52,153,166,38,52,173,57,50,52,83,204,61,52,138,94,73,52,80,240,84,52,164,
129,96,52,134,18,108,52,243,162,119,52,118,153,129,52,54,97,135,52,187,40,141,52,3,240,146,52,14,183,152,52,220,125,158,52,107,68,164,52,187,10,170,52,203,208,175,52,156,150,181,52,43,92,187,52,121,33,193,52,133,230,198,52,79,171,204,52,213,111,210,52,24,52,216,52,22,248,221,52,207,187,227,52,66,127,233,52,111,66,239,52,86,5,245,52,244,199,250,52,38,69,0,53,45,38,3,53,15,7,6,53,204,231,8,53,101,200,11,53,215,168,14,53,36,137,17,53,75,105,20,53,75,73,23,53,36,41,26,53,215,8,29,53,98,232,31,53,197,
199,34,53,0,167,37,53,19,134,40,53,254,100,43,53,191,67,46,53,88,34,49,53,199,0,52,53,12,223,54,53,39,189,57,53,24,155,60,53,222,120,63,53,121,86,66,53,233,51,69,53,45,17,72,53,69,238,74,53,50,203,77,53,241,167,80,53,132,132,83,53,234,96,86,53,34,61,89,53,45,25,92,53,10,245,94,53,184,208,97,53,56,172,100,53,137,135,103,53,171,98,106,53,158,61,109,53,96,24,112,53,243,242,114,53,85,205,117,53,134,167,120,53,135,129,123,53,86,91,126,53,122,154,128,53,48,7,130,53,204,115,131,53,80,224,132,53,186,76,134,
53,11,185,135,53,66,37,137,53,95,145,138,53,98,253,139,53,75,105,141,53,26,213,142,53,206,64,144,53,104,172,145,53,231,23,147,53,75,131,148,53,148,238,149,53,194,89,151,53,213,196,152,53,204,47,154,53,168,154,155,53,104,5,157,53,12,112,158,53,148,218,159,53,255,68,161,53,79,175,162,53,130,25,164,53,152,131,165,53,145,237,166,53,110,87,168,53,45,193,169,53,207,42,171,53,84,148,172,53,187,253,173,53,5,103,175,53,49,208,176,53,63,57,178,53,46,162,179,53,0,11,181,53,179,115,182,53,71,220,183,53,189,68,
185,53,20,173,186,53,76,21,188,53,100,125,189,53,94,229,190,53,56,77,192,53,242,180,193,53,141,28,195,53,8,132,196,53,99,235,197,53,158,82,199,53,184,185,200,53,178,32,202,53,139,135,203,53,68,238,204,53,219,84,206,53,82,187,207,53,167,33,209,53,219,135,210,53,238,237,211,53,223,83,213,53,174,185,214,53,92,31,216,53,231,132,217,53,80,234,218,53,151,79,220,53,187,180,221,53,189,25,223,53,155,126,224,53,87,227,225,53,240,71,227,53,102,172,228,53,184,16,230,53,231,116,231,53,242,216,232,53,217,60,234,
53,156,160,235,53,60,4,237,53,183,103,238,53,13,203,239,53,64,46,241,53,77,145,242,53,54,244,243,53,250,86,245,53,152,185,246,53,18,28,248,53,102,126,249,53,148,224,250,53,157,66,252,53,128,164,253,53,62,6,255,53,234,51,0,54,163,228,0,54,72,149,1,54,218,69,2,54,89,246,2,54,196,166,3,54,28,87,4,54,96,7,5,54,145,183,5,54,173,103,6,54,183,23,7,54,172,199,7,54,141,119,8,54,91,39,9,54,20,215,9,54,186,134,10,54,75,54,11,54,200,229,11,54,48,149,12,54,132,68,13,54,196,243,13,54,239,162,14,54,6,82,15,54,8,
1,16,54,245,175,16,54,205,94,17,54,145,13,18,54,63,188,18,54,217,106,19,54,93,25,20,54,204,199,20,54,38,118,21,54,107,36,22,54,154,210,22,54,180,128,23,54,184,46,24,54,167,220,24,54,128,138,25,54,67,56,26,54,241,229,26,54,136,147,27,54,10,65,28,54,118,238,28,54,203,155,29,54,11,73,30,54,52,246,30,54,71,163,31,54,68,80,32,54,42,253,32,54,249,169,33,54,179,86,34,54,85,3,35,54,225,175,35,54,86,92,36,54,180,8,37,54,251,180,37,54,44,97,38,54,69,13,39,54,71,185,39,54,50,101,40,54,6,17,41,54,194,188,41,
54,103,104,42,54,244,19,43,54,106,191,43,54,201,106,44,54,15,22,45,54,62,193,45,54,85,108,46,54,85,23,47,54,60,194,47,54,11,109,48,54,195,23,49,54,98,194,49,54,233,108,50,54,87,23,51,54,173,193,51,54,235,107,52,54,17,22,53,54,29,192,53,54,18,106,54,54,237,19,55,54,176,189,55,54,90,103,56,54,235,16,57,54,99,186,57,54,194,99,58,54,8,13,59,54,52,182,59,54,72,95,60,54,66,8,61,54,35,177,61,54,234,89,62,54,152,2,63,54,44,171,63,54,167,83,64,54,8,252,64,54,79,164,65,54,125,76,66,54,144,244,66,54,138,156,
67,54,105,68,68,54,46,236,68,54,218,147,69,54,107,59,70,54,225,226,70,54,61,138,71,54,127,49,72,54,167,216,72,54,179,127,73,54,165,38,74,54,125,205,74,54,57,116,75,54,219,26,76,54,98,193,76,54,206,103,77,54,31,14,78,54,85,180,78,54,111,90,79,54,111,0,80,54,83,166,80,54,27,76,81,54,201,241,81,54,90,151,82,54,209,60,83,54,43,226,83,54,106,135,84,54,141,44,85,54,149,209,85,54,128,118,86,54,79,27,87,54,3,192,87,54,154,100,88,54,21,9,89,54,116,173,89,54,183,81,90,54,221,245,90,54,231,153,91,54,213,61,
92,54,166,225,92,54,90,133,93,54,241,40,94,54,108,204,94,54,202,111,95,54,12,19,96,54,48,182,96,54,55,89,97,54,33,252,97,54,238,158,98,54,158,65,99,54,49,228,99,54,166,134,100,54,254,40,101,54,57,203,101,54,86,109,102,54,85,15,103,54,55,177,103,54,251,82,104,54,161,244,104,54,42,150,105,54,148,55,106,54,225,216,106,54,16,122,107,54,32,27,108,54,18,188,108,54,231,92,109,54,156,253,109,54,52,158,110,54,173,62,111,54,8,223,111,54,68,127,112,54,97,31,113,54,96,191,113,54,64,95,114,54,2,255,114,54,164,
158,115,54,40,62,116,54,141,221,116,54,210,124,117,54,249,27,118,54,0,187,118,54,232,89,119,54,177,248,119,54,91,151,120,54,229,53,121,54,80,212,121,54,155,114,122,54,198,16,123,54,210,174,123,54,190,76,124,54,139,234,124,54,55,136,125,54,196,37,126,54,49,195,126,54,125,96,127,54,170,253,127,54,91,77,128,54,209,155,128,54,55,234,128,54,141,56,129,54,211,134,129,54,8,213,129,54,45,35,130,54,66,113,130,54,70,191,130,54,58,13,131,54,30,91,131,54,242,168,131,54,180,246,131,54,103,68,132,54,9,146,132,
54,154,223,132,54,27,45,133,54,139,122,133,54,235,199,133,54,58,21,134,54,120,98,134,54,166,175,134,54,194,252,134,54,206,73,135,54,202,150,135,54,180,227,135,54,141,48,136,54,86,125,136,54,14,202,136,54,180,22,137,54,74,99,137,54,207,175,137,54,67,252,137,54,165,72,138,54,247,148,138,54,55,225,138,54,102,45,139,54,132,121,139,54,145,197,139,54,141,17,140,54,119,93,140,54,80,169,140,54,23,245,140,54,205,64,141,54,114,140,141,54,6,216,141,54,136,35,142,54,248,110,142,54,87,186,142,54,164,5,143,54,
224,80,143,54,10,156,143,54,35,231,143,54,42,50,144,54,31,125,144,54,2,200,144,54,212,18,145,54,148,93,145,54,66,168,145,54,222,242,145,54,104,61,146,54,225,135,146,54,72,210,146,54,156,28,147,54,223,102,147,54,15,177,147,54,46,251,147,54,58,69,148,54,53,143,148,54,29,217,148,54,243,34,149,54,183,108,149,54,105,182,149,54,8,0,150,54,149,73,150,54,16,147,150,54,121,220,150,54,207,37,151,54,19,111,151,54,68,184,151,54,99,1,152,54,112,74,152,54,106,147,152,54,81,220,152,54,38,37,153,54,232,109,153,54,
152,182,153,54,53,255,153,54,192,71,154,54,55,144,154,54,156,216,154,54,239,32,155,54,46,105,155,54,91,177,155,54,117,249,155,54,124,65,156,54,112,137,156,54,81,209,156,54,31,25,157,54,218,96,157,54,130,168,157,54,24,240,157,54,154,55,158,54,9,127,158,54,101,198,158,54,174,13,159,54,227,84,159,54,6,156,159,54,21,227,159,54,17,42,160,54,250,112,160,54,207,183,160,54,145,254,160,54,64,69,161,54,219,139,161,54,99,210,161,54,216,24,162,54,57,95,162,54,134,165,162,54,192,235,162,54,231,49,163,54,250,119,
163,54,249,189,163,54,229,3,164,54,189,73,164,54,129,143,164,54,50,213,164,54,207,26,165,54,88,96,165,54,205,165,165,54,47,235,165,54,124,48,166,54,182,117,166,54,220,186,166,54,238,255,166,54,236,68,167,54,214,137,167,54,172,206,167,54,111,19,168,54,29,88,168,54,183,156,168,54,60,225,168,54,174,37,169,54,12,106,169,54,85,174,169,54,138,242,169,54,171,54,170,54,184,122,170,54,176,190,170,54,148,2,171,54,100,70,171,54,31,138,171,54,198,205,171,54,89,17,172,54,215,84,172,54,65,152,172,54,150,219,172,
54,215,30,173,54,3,98,173,54,26,165,173,54,29,232,173,54,12,43,174,54,229,109,174,54,170,176,174,54,91,243,174,54,246,53,175,54,125,120,175,54,239,186,175,54,77,253,175,54,149,63,176,54,201,129,176,54,231,195,176,54,241,5,177,54,230,71,177,54,198,137,177,54,145,203,177,54,71,13,178,54,232,78,178,54,116,144,178,54,235,209,178,54,77,19,179,54,154,84,179,54,209,149,179,54,243,214,179,54,1,24,180,54,249,88,180,54,219,153,180,54,169,218,180,54,97,27,181,54,4,92,181,54,145,156,181,54,9,221,181,54,108,29,
182,54,185,93,182,54,241,157,182,54,20,222,182,54,32,30,183,54,24,94,183,54,250,157,183,54,198,221,183,54,125,29,184,54,30,93,184,54,169,156,184,54,31,220,184,54,127,27,185,54,202,90,185,54,254,153,185,54,29,217,185,54,39,24,186,54,26,87,186,54,248,149,186,54,191,212,186,54,113,19,187,54,13,82,187,54,147,144,187,54,3,207,187,54,94,13,188,54,162,75,188,54,208,137,188,54,232,199,188,54,234,5,189,54,214,67,189,54,172,129,189,54,108,191,189,54,21,253,189,54,169,58,190,54,38,120,190,54,141,181,190,54,
222,242,190,54,24,48,191,54,61,109,191,54,75,170,191,54,66,231,191,54,36,36,192,54,238,96,192,54,163,157,192,54,65,218,192,54,201,22,193,54,58,83,193,54,148,143,193,54,217,203,193,54,6,8,194,54,29,68,194,54,30,128,194,54,8,188,194,54,219,247,194,54,152,51,195,54,61,111,195,54,205,170,195,54,69,230,195,54,167,33,196,54,242,92,196,54,38,152,196,54,68,211,196,54,75,14,197,54,58,73,197,54,19,132,197,54,213,190,197,54,128,249,197,54,21,52,198,54,146,110,198,54,248,168,198,54,72,227,198,54,128,29,199,54,
161,87,199,54,171,145,199,54,158,203,199,54,122,5,200,54,63,63,200,54,237,120,200,54,131,178,200,54,3,236,200,54,107,37,201,54,188,94,201,54,246,151,201,54,24,209,201,54,35,10,202,54,23,67,202,54,243,123,202,54,184,180,202,54,102,237,202,54,252,37,203,54,123,94,203,54,227,150,203,54,51,207,203,54],"i8",4,y.a+1157120);
Q([107,7,204,54,140,63,204,54,150,119,204,54,136,175,204,54,98,231,204,54,37,31,205,54,208,86,205,54,100,142,205,54,224,197,205,54,68,253,205,54,145,52,206,54,198,107,206,54,227,162,206,54,232,217,206,54,214,16,207,54,172,71,207,54,106,126,207,54,16,181,207,54,158,235,207,54,21,34,208,54,115,88,208,54,186,142,208,54,233,196,208,54,0,251,208,54,255,48,209,54,230,102,209,54,181,156,209,54,107,210,209,54,10,8,210,54,145,61,210,54,0,115,210,54,86,168,210,54,149,221,210,54,187,18,211,54,201,71,211,54,
191,124,211,54,157,177,211,54,99,230,211,54,16,27,212,54,165,79,212,54,34,132,212,54,135,184,212,54,211,236,212,54,7,33,213,54,34,85,213,54,37,137,213,54,16,189,213,54,227,240,213,54,157,36,214,54,62,88,214,54,199,139,214,54,56,191,214,54,144,242,214,54,207,37,215,54,246,88,215,54,5,140,215,54,251,190,215,54,216,241,215,54,157,36,216,54,73,87,216,54,220,137,216,54,87,188,216,54,185,238,216,54,3,33,217,54,51,83,217,54,75,133,217,54,75,183,217,54,49,233,217,54,255,26,218,54,179,76,218,54,79,126,218,
54,211,175,218,54,61,225,218,54,142,18,219,54,199,67,219,54,230,116,219,54,237,165,219,54,219,214,219,54,176,7,220,54,108,56,220,54,14,105,220,54,152,153,220,54,9,202,220,54,97,250,220,54,159,42,221,54,197,90,221,54,209,138,221,54,197,186,221,54,159,234,221,54,96,26,222,54,8,74,222,54,150,121,222,54,12,169,222,54,104,216,222,54,171,7,223,54,213,54,223,54,229,101,223,54,221,148,223,54,187,195,223,54,127,242,223,54,43,33,224,54,188,79,224,54,53,126,224,54,148,172,224,54,218,218,224,54,6,9,225,54,25,
55,225,54,19,101,225,54,243,146,225,54,185,192,225,54,102,238,225,54,250,27,226,54,116,73,226,54,212,118,226,54,27,164,226,54,72,209,226,54,92,254,226,54,86,43,227,54,54,88,227,54,253,132,227,54,170,177,227,54,62,222,227,54,184,10,228,54,24,55,228,54,94,99,228,54,139,143,228,54,158,187,228,54,151,231,228,54,118,19,229,54,60,63,229,54,232,106,229,54,122,150,229,54,242,193,229,54,80,237,229,54,148,24,230,54,191,67,230,54,208,110,230,54,198,153,230,54,163,196,230,54,102,239,230,54,15,26,231,54,158,68,
231,54,19,111,231,54,109,153,231,54,174,195,231,54,213,237,231,54,226,23,232,54,213,65,232,54,173,107,232,54,108,149,232,54,16,191,232,54,155,232,232,54,11,18,233,54,97,59,233,54,157,100,233,54,191,141,233,54,198,182,233,54,180,223,233,54,135,8,234,54,64,49,234,54,223,89,234,54,99,130,234,54,205,170,234,54,29,211,234,54,83,251,234,54,110,35,235,54,111,75,235,54,86,115,235,54,34,155,235,54,212,194,235,54,107,234,235,54,232,17,236,54,75,57,236,54,147,96,236,54,193,135,236,54,213,174,236,54,206,213,
236,54,172,252,236,54,112,35,237,54,26,74,237,54,169,112,237,54,29,151,237,54,119,189,237,54,183,227,237,54,220,9,238,54,230,47,238,54,213,85,238,54,171,123,238,54,101,161,238,54,5,199,238,54,138,236,238,54,245,17,239,54,69,55,239,54,122,92,239,54,148,129,239,54,148,166,239,54,121,203,239,54,68,240,239,54,244,20,240,54,137,57,240,54,3,94,240,54,98,130,240,54,167,166,240,54,209,202,240,54,224,238,240,54,212,18,241,54,173,54,241,54,108,90,241,54,16,126,241,54,152,161,241,54,6,197,241,54,89,232,241,
54,146,11,242,54,175,46,242,54,177,81,242,54,153,116,242,54,101,151,242,54,23,186,242,54,173,220,242,54,41,255,242,54,137,33,243,54,207,67,243,54,249,101,243,54,9,136,243,54,253,169,243,54,215,203,243,54,149,237,243,54,57,15,244,54,193,48,244,54,46,82,244,54,128,115,244,54,183,148,244,54,211,181,244,54,212,214,244,54,185,247,244,54,132,24,245,54,51,57,245,54,199,89,245,54,64,122,245,54,158,154,245,54,224,186,245,54,8,219,245,54,20,251,245,54,5,27,246,54,218,58,246,54,149,90,246,54,52,122,246,54,184,
153,246,54,32,185,246,54,109,216,246,54,159,247,246,54,182,22,247,54,177,53,247,54,145,84,247,54,86,115,247,54,255,145,247,54,141,176,247,54,0,207,247,54,87,237,247,54,147,11,248,54,179,41,248,54,184,71,248,54,162,101,248,54,112,131,248,54,35,161,248,54,186,190,248,54,54,220,248,54,151,249,248,54,219,22,249,54,5,52,249,54,19,81,249,54,5,110,249,54,220,138,249,54,152,167,249,54,56,196,249,54,188,224,249,54,37,253,249,54,114,25,250,54,164,53,250,54,186,81,250,54,181,109,250,54,148,137,250,54,87,165,
250,54,255,192,250,54,139,220,250,54,252,247,250,54,81,19,251,54,138,46,251,54,168,73,251,54,170,100,251,54,145,127,251,54,91,154,251,54,11,181,251,54,158,207,251,54,22,234,251,54,114,4,252,54,178,30,252,54,215,56,252,54,224,82,252,54,205,108,252,54,158,134,252,54,84,160,252,54,238,185,252,54,108,211,252,54,207,236,252,54,22,6,253,54,64,31,253,54,80,56,253,54,67,81,253,54,27,106,253,54,214,130,253,54,118,155,253,54,250,179,253,54,99,204,253,54,175,228,253,54,224,252,253,54,245,20,254,54,238,44,254,
54,203,68,254,54,140,92,254,54,49,116,254,54,187,139,254,54,40,163,254,54,122,186,254,54,176,209,254,54,202,232,254,54,200,255,254,54,170,22,255,54,112,45,255,54,27,68,255,54,169,90,255,54,27,113,255,54,114,135,255,54,172,157,255,54,203,179,255,54,205,201,255,54,180,223,255,54,126,245,255,54,151,5,0,55,96,16,0,55,27,27,0,55,201,37,0,55,104,48,0,55,249,58,0,55,125,69,0,55,242,79,0,55,89,90,0,55,178,100,0,55,254,110,0,55,59,121,0,55,106,131,0,55,139,141,0,55,159,151,0,55,164,161,0,55,155,171,0,55,132,
181,0,55,95,191,0,55,44,201,0,55,235,210,0,55,156,220,0,55,63,230,0,55,212,239,0,55,90,249,0,55,211,2,1,55,62,12,1,55,154,21,1,55,233,30,1,55,41,40,1,55,92,49,1,55,128,58,1,55,150,67,1,55,159,76,1,55,153,85,1,55,133,94,1,55,99,103,1,55,51,112,1,55,245,120,1,55,168,129,1,55,78,138,1,55,230,146,1,55,111,155,1,55,234,163,1,55,88,172,1,55,183,180,1,55,8,189,1,55,75,197,1,55,128,205,1,55,167,213,1,55,191,221,1,55,202,229,1,55,199,237,1,55,181,245,1,55,149,253,1,55,103,5,2,55,43,13,2,55,225,20,2,55,137,
28,2,55,35,36,2,55,175,43,2,55,44,51,2,55,155,58,2,55,253,65,2,55,80,73,2,55,149,80,2,55,204,87,2,55,244,94,2,55,15,102,2,55,27,109,2,55,26,116,2,55,10,123,2,55,236,129,2,55,192,136,2,55,134,143,2,55,61,150,2,55,231,156,2,55,130,163,2,55,15,170,2,55,143,176,2,55,255,182,2,55,98,189,2,55,183,195,2,55,253,201,2,55,54,208,2,55,96,214,2,55,124,220,2,55,138,226,2,55,138,232,2,55,123,238,2,55,95,244,2,55,52,250,2,55,251,255,2,55,180,5,3,55,95,11,3,55,252,16,3,55,139,22,3,55,11,28,3,55,125,33,3,55,225,38,
3,55,55,44,3,55,127,49,3,55,185,54,3,55,228,59,3,55,1,65,3,55,16,70,3,55,17,75,3,55,4,80,3,55,233,84,3,55,191,89,3,55,136,94,3,55,66,99,3,55,238,103,3,55,140,108,3,55,27,113,3,55,157,117,3,55,16,122,3,55,117,126,3,55,204,130,3,55,21,135,3,55,80,139,3,55,124,143,3,55,155,147,3,55,171,151,3,55,173,155,3,55,161,159,3,55,135,163,3,55,94,167,3,55,39,171,3,55,227,174,3,55,144,178,3,55,47,182,3,55,191,185,3,55,66,189,3,55,182,192,3,55,29,196,3,55,117,199,3,55,191,202,3,55,250,205,3,55,40,209,3,55,71,212,
3,55,89,215,3,55,92,218,3,55,81,221,3,55,56,224,3,55,16,227,3,55,219,229,3,55,151,232,3,55,69,235,3,55,229,237,3,55,119,240,3,55,251,242,3,55,112,245,3,55,216,247,3,55,49,250,3,55,124,252,3,55,185,254,3,55,232,0,4,55,8,3,4,55,27,5,4,55,31,7,4,55,21,9,4,55,253,10,4,55,215,12,4,55,163,14,4,55,97,16,4,55,16,18,4,55,178,19,4,55,69,21,4,55,202,22,4,55,65,24,4,55,170,25,4,55,4,27,4,55,81,28,4,55,143,29,4,55,191,30,4,55,225,31,4,55,245,32,4,55,251,33,4,55,243,34,4,55,221,35,4,55,184,36,4,55,134,37,4,55,
69,38,4,55,246,38,4,55,153,39,4,55,46,40,4,55,181,40,4,55,45,41,4,55,152,41,4,55,244,41,4,55,66,42,4,55,131,42,4,55,181,42,4,55,217,42,4,55,239,42,4,55,246,42,4,55,240,42,4,55,220,42,4,55,185,42,4,55,137,42,4,55,74,42,4,55,253,41,4,55,162,41,4,55,57,41,4,55,194,40,4,55,61,40,4,55,170,39,4,55,9,39,4,55,89,38,4,55,156,37,4,55,208,36,4,55,247,35,4,55,15,35,4,55,25,34,4,55,22,33,4,55,4,32,4,55,228,30,4,55,182,29,4,55,122,28,4,55,48,27,4,55,216,25,4,55,113,24,4,55,253,22,4,55,123,21,4,55,235,19,4,55,76,
18,4,55,160,16,4,55,229,14,4,55,29,13,4,55,70,11,4,55,98,9,4,55,111,7,4,55,111,5,4,55,96,3,4,55,67,1,4,55,25,255,3,55,224,252,3,55,153,250,3,55,69,248,3,55,226,245,3,55,113,243,3,55,243,240,3,55,102,238,3,55,203,235,3,55,35,233,3,55,108,230,3,55,167,227,3,55,213,224,3,55,244,221,3,55,6,219,3,55,9,216,3,55,254,212,3,55,230,209,3,55,191,206,3,55,139,203,3,55,73,200,3,55,248,196,3,55,154,193,3,55,46,190,3,55,180,186,3,55,43,183,3,55,149,179,3,55,241,175,3,55,63,172,3,55,127,168,3,55,178,164,3,55,214,
160,3,55,236,156,3,55,245,152,3,55,239,148,3,55,220,144,3,55,186,140,3,55,139,136,3,55,78,132,3,55,3,128,3,55,170,123,3,55,67,119,3,55,207,114,3,55,76,110,3,55,188,105,3,55,29,101,3,55,113,96,3,55,183,91,3,55,239,86,3,55,25,82,3,55,54,77,3,55,68,72,3,55,69,67,3,55,55,62,3,55,28,57,3,55,243,51,3,55,189,46,3,55,120,41,3,55,38,36,3,55,197,30,3,55,87,25,3,55,220,19,3,55,82,14,3,55,186,8,3,55,21,3,3,55,98,253,2,55,161,247,2,55,210,241,2,55,246,235,2,55,12,230,2,55,20,224,2,55,14,218,2,55,250,211,2,55,
217,205,2,55,170,199,2,55,109,193,2,55,34,187,2,55,202,180,2,55,100,174,2,55,240,167,2,55,110,161,2,55,223,154,2,55,66,148,2,55,151,141,2,55,223,134,2,55,25,128,2,55,69,121,2,55,99,114,2,55,116,107,2,55,119,100,2,55,108,93,2,55,83,86,2,55,45,79,2,55,250,71,2,55,184,64,2,55,105,57,2,55,12,50,2,55,162,42,2,55,42,35,2,55,164,27,2,55,17,20,2,55,111,12,2,55,193,4,2,55,5,253,1,55,59,245,1,55,99,237,1,55,126,229,1,55,139,221,1,55,139,213,1,55,125,205,1,55,97,197,1,55,56,189,1,55,1,181,1,55,189,172,1,55,
107,164,1,55,11,156,1,55,158,147,1,55,36,139,1,55,156,130,1,55,6,122,1,55,99,113,1,55,178,104,1,55,243,95,1,55,40,87,1,55,78,78,1,55,103,69,1,55,115,60,1,55,113,51,1,55,97,42,1,55,68,33,1,55,26,24,1,55,226,14,1,55,157,5,1,55,74,252,0,55,233,242,0,55,124,233,0,55,0,224,0,55,120,214,0,55,226,204,0,55,62,195,0,55,141,185,0,55,206,175,0,55,2,166,0,55,41,156,0,55,66,146,0,55,78,136,0,55,77,126,0,55,62,116,0,55,33,106,0,55,248,95,0,55,193,85,0,55,124,75,0,55,42,65,0,55,203,54,0,55,95,44,0,55,229,33,0,55,
93,23,0,55,201,12,0,55,39,2,0,55,239,238,255,54,118,217,255,54,227,195,255,54,52,174,255,54,107,152,255,54,136,130,255,54,138,108,255,54,113,86,255,54,62,64,255,54,240,41,255,54,136,19,255,54,5,253,254,54,104,230,254,54,176,207,254,54,221,184,254,54,241,161,254,54,234,138,254,54,200,115,254,54,140,92,254,54,53,69,254,54,197,45,254,54,57,22,254,54,148,254,253,54,212,230,253,54,249,206,253,54,5,183,253,54,246,158,253,54,204,134,253,54,137,110,253,54,43,86,253,54,179,61,253,54,32,37,253,54,116,12,253,
54,173,243,252,54,204,218,252,54,209,193,252,54,187,168,252,54,140,143,252,54,66,118,252,54,222,92,252,54,96,67,252,54,200,41,252,54,21,16,252,54,73,246,251,54,98,220,251,54,98,194,251,54,71,168,251,54,19,142,251,54,196,115,251,54,92,89,251,54,217,62,251,54,60,36,251,54,134,9,251,54,181,238,250,54,203,211,250,54,199,184,250,54,168,157,250,54,112,130,250,54,30,103,250,54,178,75,250,54,44,48,250,54,141,20,250,54,211,248,249,54,0,221,249,54,19,193,249,54,13,165,249,54,236,136,249,54,178,108,249,54,94,
80,249,54,240,51,249,54,105,23,249,54,200,250,248,54,13,222,248,54,56,193,248,54,74,164,248,54,67,135,248,54,33,106,248,54,230,76,248,54,146,47,248,54,36,18,248,54,156,244,247,54,251,214,247,54,65,185,247,54,109,155,247,54,127,125,247,54,120,95,247,54,87,65,247,54,29,35,247,54,202,4,247,54,93,230,246,54,215,199,246,54,55,169,246,54,126,138,246,54,172,107,246,54,193,76,246,54,188,45,246,54,157,14,246,54,102,239,245,54,21,208,245,54,171,176,245,54,40,145,245,54,139,113,245,54,214,81,245,54,7,50,245,
54,31,18,245,54,30,242,244,54,4,210,244,54,208,177,244,54,132,145,244,54,30,113,244,54,159,80,244,54,8,48,244,54,87,15,244,54,141,238,243,54,170,205,243,54,175,172,243,54,154,139,243,54,108,106,243,54,38,73,243,54,198,39,243,54,78,6,243,54,188,228,242,54,18,195,242,54,79,161,242,54,115,127,242,54,127,93,242,54,113,59,242,54,75,25,242,54,12,247,241,54,180,212,241,54,68,178,241,54,186,143,241,54,25,109,241,54,94,74,241,54,139,39,241,54,159,4,241,54,154,225,240,54,125,190,240,54,72,155,240,54,249,119,
240,54,147,84,240,54,19,49,240,54,123,13,240,54,203,233,239,54,2,198,239,54,33,162,239,54,39,126,239,54,21,90,239,54,234,53,239,54,167,17,239,54,76,237,238,54,216,200,238,54,76,164,238,54,168,127,238,54,235,90,238,54,22,54,238,54,41,17,238,54,35,236,237,54,6,199,237,54,208,161,237,54,130,124,237,54,27,87,237,54,157,49,237,54,6,12,237,54,88,230,236,54,145,192,236,54,178,154,236,54,187,116,236,54,172,78,236,54,133,40,236,54,70,2,236,54,239,219,235,54,128,181,235,54,249,142,235,54,90,104,235,54,164,
65,235,54,213,26,235,54,239,243,234,54,240,204,234,54,218,165,234,54,172,126,234,54,102,87,234,54,9,48,234,54,147,8,234,54,6,225,233,54,97,185,233,54,165,145,233,54,209,105,233,54,229,65,233,54,225,25,233,54,198,241,232,54,148,201,232,54,73,161,232,54,232,120,232,54,110,80,232,54,221,39,232,54,53,255,231,54,117,214,231,54,158,173,231,54,175,132,231,54,169,91,231,54,139,50,231,54,86,9,231,54,10,224,230,54,166,182,230,54,43,141,230,54,153,99,230,54,239,57,230,54,46,16,230,54,86,230,229,54,103,188,229,
54,96,146,229,54,67,104,229,54,14,62,229,54,194,19,229,54,95,233,228,54,228,190,228,54,83,148,228,54,171,105,228,54,235,62,228,54,21,20,228,54,39,233,227,54,35,190,227,54,8,147,227,54,213,103,227,54,140,60,227,54,44,17,227,54,181,229,226,54,39,186,226,54,131,142,226,54,199,98,226,54,245,54,226,54,12,11,226,54,12,223,225,54,246,178,225,54,201,134,225,54,133,90,225,54,42,46,225,54,185,1,225,54,49,213,224,54,147,168,224,54,222,123,224,54,18,79,224,54,48,34,224,54,56,245,223,54,41,200,223,54,3,155,223,
54,199,109,223,54,117,64,223,54,12,19,223,54,141,229,222,54,247,183,222,54,75,138,222,54,137,92,222,54,177,46,222,54,194,0,222,54,189,210,221,54,162,164,221,54,112,118,221,54,41,72,221,54,203,25,221,54,87,235,220,54,205,188,220,54,45,142,220,54,118,95,220,54,170,48,220,54,200,1,220,54,208,210,219,54,193,163,219,54,157,116,219,54,99,69,219,54,19,22,219,54,173,230,218,54,49,183,218,54,159,135,218,54,247,87,218,54,58,40,218,54,103,248,217,54,126,200,217,54,127,152,217,54,107,104,217,54,65,56,217,54,
1,8,217,54,171,215,216,54,64,167,216,54,192,118,216,54,41,70,216,54,126,21,216,54,188,228,215,54,230,179,215,54,249,130,215,54,247,81,215,54,224,32,215,54,180,239,214,54,114,190,214,54,26,141,214,54,173,91,214,54,43,42,214,54,148,248,213,54,231,198,213,54,37,149,213,54,78,99,213,54,98,49,213,54,96,255,212,54,73,205,212,54,30,155,212,54,221,104,212,54,135,54,212,54,27,4,212,54,155,209,211,54,6,159,211,54,92,108,211,54,157,57,211,54,200,6,211,54,223,211,210,54,225,160,210,54,207,109,210,54,167,58,210,
54,106,7,210,54,25,212,209,54,179,160,209,54,56,109,209,54,168,57,209,54,4,6,209,54,75,210,208,54,125,158,208,54,155,106,208,54,164,54,208,54,153,2,208,54,120,206,207,54,68,154,207,54,251,101,207,54,157,49,207,54,43,253,206,54,164,200,206,54,9,148,206,54,90,95,206,54,150,42,206,54,190,245,205,54,210,192,205,54,209,139,205,54,188,86,205,54,147,33,205,54,85,236,204,54,3,183,204,54,158,129,204,54,36,76,204,54,149,22,204,54,243,224,203,54,61,171,203,54,115,117,203,54,148,63,203,54,162,9,203,54,155,211,
202,54,129,157,202,54,83,103,202,54,17,49,202,54,187,250,201,54,81,196,201,54,211,141,201,54,66,87,201,54,156,32,201,54,227,233,200,54,22,179,200,54,54,124,200,54,66,69,200,54,58,14,200,54,31,215,199,54,240,159,199,54,173,104,199,54,87,49,199,54,237,249,198,54,112,194,198,54,223,138,198,54,59,83,198,54,132,27,198,54,185,227,197,54,219,171,197,54,233,115,197,54,228,59,197,54,204,3,197,54,160,203,196,54,98,147,196,54,16,91,196,54,170,34,196,54,50,234,195,54,167,177,195,54,8,121,195,54,87,64,195,54,
146,7,195,54,186,206,194,54,207,149,194,54,210,92,194,54,193,35,194,54,157,234,193,54,103,177,193,54,29,120,193,54,193,62,193,54,82,5,193,54,208,203,192,54,60,146,192,54,148,88,192,54,218,30,192,54,13,229,191,54,46,171,191,54,60,113,191,54,55,55,191,54,32,253,190,54,246,194,190,54,185,136,190,54,106,78,190,54,9,20,190,54,149,217,189,54,15,159,189,54,118,100,189,54,203,41,189,54,14,239,188,54,62,180,188,54,92,121,188,54,104,62,188,54,97,3,188,54,72,200,187,54,29,141,187,54,224,81,187,54,145,22,187,
54,48,219,186,54,188,159,186,54,55,100,186,54,159,40,186,54,246,236,185,54,58,177,185,54,109,117,185,54,141,57,185,54,156,253,184,54,153,193,184,54,132,133,184,54,93,73,184,54,37,13,184,54,218,208,183,54,126,148,183,54,17,88,183,54,145,27,183,54,0,223,182,54,94,162,182,54,169,101,182,54,228,40,182,54,12,236,181,54,35,175,181,54,41,114,181,54,29,53,181,54,0,248,180,54,209,186,180,54,145,125,180,54,64,64,180,54,222,2,180,54,106,197,179,54,228,135,179,54,78,74,179,54,166,12,179,54,238,206,178,54,36,
145,178,54,73,83,178,54,92,21,178,54,95,215,177,54,81,153,177,54,50,91,177,54,1,29,177,54,192,222,176,54,110,160,176,54,11,98,176,54,151,35,176,54,18,229,175,54,125,166,175,54,215,103,175,54,32,41,175,54,88,234,174,54,127,171,174,54,150,108,174,54,156,45,174,54,146,238,173,54,119,175,173,54,75,112,173,54,15,49,173,54,194,241,172,54,101,178,172,54,248,114,172,54,122,51,172,54,236,243,171,54,77,180,171,54,158,116,171,54,222,52,171,54,15,245,170,54,47,181,170,54,63,117,170,54,63,53,170,54,46,245,169,
54,14,181,169,54,221,116,169,54,156,52,169,54,76,244,168,54,235,179,168,54,122,115,168,54,249,50,168,54,105,242,167,54,200,177,167,54,24,113,167,54,87,48,167,54,135,239,166,54,168,174,166,54,184,109,166,54,185,44,166,54,170,235,165,54,139,170,165,54,92,105,165,54,31,40,165,54,209,230,164,54,116,165,164,54,7,100,164,54,139,34,164,54,0,225,163,54,101,159,163,54,186,93,163,54,0,28,163,54,55,218,162,54,95,152,162,54,119,86,162,54,128,20,162,54,122,210,161,54,100,144,161,54,64,78,161,54,12,12,161,54,201,
201,160,54,119,135,160,54,22,69,160,54,166,2,160,54,39,192,159,54,153,125,159,54,252,58,159,54,80,248,158,54,150,181,158,54,204,114,158,54,244,47,158,54,13,237,157,54,23,170,157,54,18,103,157,54,255,35,157,54,221,224,156,54,172,157,156,54,109,90,156,54,31,23,156,54,195,211,155,54,88,144,155,54,222,76,155,54,87,9,155,54,192,197,154,54,28,130,154,54,105,62,154,54,167,250,153,54,215,182,153,54,250,114,153,54,13,47,153,54,19,235,152,54,10,167,152,54,243,98,152,54,207,30,152,54,155,218,151,54,90,150,151,
54,11,82,151,54,174,13,151,54,67,201,150,54,202,132,150,54,67,64,150,54,174,251,149,54,11,183,149,54,91,114,149,54,157,45,149,54,208,232,148,54,247,163,148,54,15,95,148,54,26,26,148,54,23,213,147,54,6,144,147,54,232,74,147,54,189,5,147,54,132,192,146,54,61,123,146,54,233,53,146,54,135,240,145,54,24,171,145,54,156,101,145,54,18,32,145,54,124,218,144,54,215,148,144,54,38,79,144,54,103,9,144,54,155,195,143,54,194,125,143,54,220,55,143,54,233,241,142,54,233,171,142,54,219,101,142,54,193,31,142,54,154,
217,141,54,101,147,141,54,36,77,141,54,214,6,141,54,123,192,140,54,19,122,140,54,159,51,140,54,30,237,139,54,144,166,139,54,245,95,139,54,78,25,139,54,154,210,138,54,217,139,138,54,12,69,138,54,50,254,137,54,76,183,137,54,90,112,137,54,91,41,137,54,79,226,136,54,55,155,136,54,19,84,136,54,226,12,136,54,166,197,135,54,92,126,135,54,7,55,135,54,166,239,134,54,56,168,134,54,190,96,134,54,56,25,134,54,166,209,133,54,8,138,133,54,94,66,133,54,168,250,132,54,230,178,132,54,24,107,132,54,63,35,132,54,89,
219,131,54,104,147,131,54,106,75,131,54,97,3,131,54,77,187,130,54,44,115,130,54,0,43,130,54,201,226,129,54,133,154,129,54,55,82,129,54,220,9,129,54,118,193,128,54,5,121,128,54,136,48,128,54,0,208,127,54,217,62,127,54,155,173,126,54,71,28,126,54,220,138,125,54,90,249,124,54,194,103,124,54,20,214,123,54,80,68,123,54,117,178,122,54,132,32,122,54,124,142,121,54,95,252,120,54,44,106,120,54,227,215,119,54,132,69,119,54,15,179,118,54,132,32,118,54,228,141,117,54,46,251,116,54,99,104,116,54,130,213,115,54,
140,66,115,54,128,175,114,54,95,28,114,54,41,137,113,54,222,245,112,54,125,98,112,54,8,207,111,54,125,59,111,54,222,167,110,54,42,20,110,54,97,128,109,54,131,236,108,54,145,88,108,54,138,196,107,54,111,48,107,54,63,156,106,54,250,7,106,54,162,115,105,54,53,223,104,54,180,74,104,54,31,182,103,54,117,33,103,54,184,140,102,54,231,247,101,54,2,99,101,54,9,206,100,54,252,56,100,54,220,163,99,54,168,14,99,54,96,121,98,54,5,228,97,54,151,78,97,54,21,185,96,54,128,35,96,54,216,141,95,54,28,248,94,54,78,98,
94,54,108,204,93,54,119,54,93,54,112,160,92,54,85,10,92,54,40,116,91,54,232,221,90,54,150,71,90,54,49,177,89,54,185,26,89,54,47,132,88,54,147,237,87,54,228,86,87,54,35,192,86,54,80,41,86,54,106,146,85,54,115,251,84,54,106,100,84,54,78,205,83,54,33,54,83,54,226,158,82,54,145,7,82,54,47,112,81,54,187,216,80,54,53,65,80,54,158,169,79,54,246,17,79,54,60,122,78,54,113,226,77,54,149,74,77,54,167,178,76,54,169,26,76,54,153,130,75,54,121,234,74,54,71,82,74,54,5,186,73,54,178,33,73,54,79,137,72,54,218,240,
71,54,86,88,71,54,192,191,70,54,27,39,70,54,100,142,69,54,158,245,68,54,199,92,68,54,225,195,67,54,234,42,67,54,227,145,66,54,204,248,65,54,165,95,65,54,111,198,64,54,40,45,64,54,210,147,63,54,108,250,62,54,247,96,62,54,114,199,61,54,222,45,61,54,58,148,60,54,135,250,59,54,197,96,59,54,244,198,58,54,19,45,58,54,36,147,57,54,37,249,56,54,24,95,56,54,252,196,55,54,209,42,55,54,151,144,54,54,78,246,53,54,248,91,53,54,146,193,52,54,30,39,52,54,156,140,51,54,11,242,50,54,108,87,50,54,191,188,49,54,4,34,
49,54,59,135,48,54,99,236,47,54,126,81,47,54,139,182,46,54,138,27,46,54,124,128,45,54,96,229,44,54,54,74,44,54,255,174,43,54,186,19,43,54,104,120,42,54,8,221,41,54,156,65,41,54,34,166,40,54,155,10,40,54,7,111,39,54,102,211,38,54,184,55,38,54,253,155,37,54,53,0,37,54,97,100,36,54,128,200,35,54,146,44,35,54,152,144,34,54,145,244,33,54,126,88,33,54,95,188,32,54,51,32,32,54,252,131,31,54,184,231,30,54,104,75,30,54,12,175,29,54,164,18,29,54,48,118,28,54,177,217,27,54,37,61,27,54,143,160,26,54,236,3,26,
54,62,103,25,54,132,202,24,54,192,45,24,54,239,144,23,54,20,244,22,54,45,87,22,54,60,186,21,54,63,29,21,54,55,128,20,54,36,227,19,54,6,70,19,54,222,168,18,54,171,11,18,54,109,110,17,54,37,209,16,54,210,51,16,54,117,150,15,54,13,249,14,54,155,91,14,54,30,190,13,54,152,32,13,54,7,131,12,54,109,229,11,54,200,71,11,54,25,170,10,54,97,12,10,54,159,110,9,54,211,208,8,54,253,50,8,54,30,149,7,54,53,247,6,54,67,89,6,54,72,187,5,54,67,29,5,54,53,127,4,54,29,225,3,54,253,66,3,54,211,164,2,54,161,6,2,54,102,
104,1,54,33,202,0,54,212,43,0,54,254,26,255,53,65,222,253,53,115,161,252,53,148,100,251,53,164,39,250,53,164,234,248,53,147,173,247,53,113,112,246,53,63,51,245,53,253,245,243,53,170,184,242,53,72,123,241,53,214,61,240,53,84,0,239,53,195,194,237,53,34,133,236,53,114,71,235,53,179,9,234,53,229,203,232,53,8,142,231,53,28,80,230,53,34,18,229,53,25,212,227,53,2,150,226,53,220,87,225,53,169,25,224,53,103,219,222,53,24,157,221,53,187,94,220,53,81,32,219,53,217,225,217,53,84,163,216,53,194,100,215,53,35,
38,214,53,119,231,212,53,190,168,211,53,248,105,210,53,38,43,209,53,72,236,207,53,94,173,206,53,104,110,205,53,101,47,204,53,87,240,202,53,61,177,201,53,24,114,200,53,231,50,199,53,171,243,197,53,100,180,196,53,18,117,195,53,182,53,194,53,78,246,192,53,220,182,191,53,95,119,190,53,216,55,189,53,71,248,187,53,172,184,186,53,7,121,185,53,89,57,184,53,160,249,182,53,222,185,181,53,19,122,180,53,63,58,179,53,97,250,177,53,123,186,176,53,139,122,175,53,147,58,174,53,146,250,172,53,137,186,171,53,120,122,
170,53,95,58,169,53,61,250,167,53,20,186,166,53,227,121,165,53,170,57,164,53,106,249,162,53,34,185,161,53,211,120,160,53,125,56,159,53,33,248,157,53,189,183,156,53,83,119,155,53,226,54,154,53,107,246,152,53,237,181,151,53,105,117,150,53,224,52,149,53,80,244,147,53,187,179,146,53,32,115,145,53,128,50,144,53,218,241,142,53,47,177,141,53,128,112,140,53,203,47,139,53,17,239,137,53,83,174,136,53,144,109,135,53,201,44,134,53,253,235,132,53,46,171,131,53,90,106,130,53,131,41,129,53,79,209,127,53,146,79,
125,53,205,205,122,53,2,76,120,53,49,202,117,53,90,72,115,53,124,198,112,53,153,68,110,53,177,194,107,53,196,64,105,53,210,190,102,53,220,60,100,53,225,186,97,53,227,56,95,53,225,182,92,53,219,52,90,53,210,178,87,53,198,48,85,53,184,174,82,53,168,44,80,53,149,170,77,53,128,40,75,53,106,166,72,53,83,36,70,53,59,162,67,53,34,32,65,53,8,158,62,53,239,27,60,53,213,153,57,53,188,23,55,53,163,149,52,53,139,19,50,53,117,145,47,53,95,15,45,53,76,141,42,53,58,11,40,53,43,137,37,53,30,7,35,53,20,133,32,53,
12,3,30,53,8,129,27,53,8,255,24,53,12,125,22,53,19,251,19,53,31,121,17,53,48,247,14,53,69,117,12,53,96,243,9,53,128,113,7,53,165,239,4,53,209,109,2,53,5,216,255,52,118,212,250,52,244,208,245,52,128,205,240,52,27,202,235,52,197,198,230,52,126,195,225,52,72,192,220,52,34,189,215,52,14,186,210,52,11,183,205,52,27,180,200,52,62,177,195,52,116,174,190,52,189,171,185,52,28,169,180,52,143,166,175,52,24,164,170,52,182,161,165,52,108,159,160,52,56,157,155,52,28,155,150,52,24,153,145,52,45,151,140,52,91,149,
135,52,163,147,130,52,11,36,123,52,5,33,113,52,53,30,103,52,158,27,93,52,63,25,83,52,26,23,73,52,48,21,63,52,130,19,53,52,17,18,43,52,222,16,33,52,235,15,23,52,55,15,13,52,197,14,3,52,44,29,242,51,83,29,222,51,4,30,202,51,63,31,182,51,8,33,162,51,96,35,142,51,148,76,116,51,142,83,76,51,179,91,36,51,17,202,248,50,35,223,168,50,74,237,49,50,250,9,145,48,202,165,13,178,224,179,150,178,73,146,230,178,12,55,27,179,162,35,67,179,227,14,107,179,101,124,137,179,169,112,157,179,60,100,177,179,28,87,197,179,
71,73,217,179,186,58,237,179,186,149,0,180,185,141,10,180,89,133,20,180,153,124,30,180,120,115,40,180,245,105,50,180,16,96,60,180,197,85,70,180,22,75,80,180,1,64,90,180,132,52,100,180,159,40,110,180,80,28,120,180,204,7,129,180,57,1,134,180,113,250,138,180,114,243,143,180,59,236,148,180,204,228,153,180,38,221,158,180,70,213,163,180,45,205,168,180,218,196,173,180,76,188,178,180,132,179,183,180,128,170,188,180,63,161,193,180,195,151,198,180,9,142,203,180,18,132,208,180,221,121,213,180,104,111,218,180,
181,100,223,180,194,89,228,180,143,78,233,180,27,67,238,180,102,55,243,180,112,43,248,180,54,31,253,180,93,9,1,181,254,130,3,181,124,252,5,181,216,117,8,181,18,239,10,181,41,104,13,181,29,225,15,181,238,89,18,181,156,210,20,181,38,75,23,181,139,195,25,181,205,59,28,181,234,179,30,181,226,43,33,181,181,163,35,181,99,27,38,181,235,146,40,181,77,10,43,181,138,129,45,181,160,248,47,181,143,111,50,181,88,230,52,181,249,92,55,181,115,211,57,181,198,73,60,181,240,191,62,181,243,53,65,181,205,171,67,181,
126,33,70,181,7,151,72,181,102,12,75,181,156,129,77,181,168,246,79,181,138,107,82,181,66,224,84,181,208,84,87,181,51,201,89,181,107,61,92,181,120,177,94,181,89,37,97,181,14,153,99,181,152,12,102,181,245,127,104,181,38,243,106,181,42,102,109,181,0,217,111,181,170,75,114,181,38,190,116,181,117,48,119,181,149,162,121,181,135,20,124,181,74,134,126,181,239,123,128,181,162,180,129,181,61,237,130,181,193,37,132,181,44,94,133,181,127,150,134,181,187,206,135,181,222,6,137,181,232,62,138,181,218,118,139,181,
179,174,140,181,116,230,141,181,27,30,143,181,170,85,144,181,31,141,145,181,123,196,146,181,189,251,147,181,230,50,149,181,246,105,150,181,235,160,151,181,199,215,152,181,136,14,154,181,47,69,155,181,188,123,156,181,47,178,157,181,134,232,158,181,196,30,160,181,230,84,161,181,237,138,162,181,218,192,163,181,171,246,164,181,97,44,166,181,251,97,167,181,122,151,168,181,221,204,169,181,36,2,171,181,79,55,172,181,94,108,173,181,81,161,174,181,40,214,175,181,226,10,177,181,127,63,178,181,0,116,179,181,
100,168,180,181,171,220,181,181,213,16,183,181,226,68,184,181,209,120,185,181,163,172,186,181,87,224,187,181,238,19,189,181,102,71,190,181,193,122,191,181,254,173,192,181,28,225,193,181,29,20,195,181,254,70,196,181,193,121,197,181,102,172,198,181,235,222,199,181,82,17,201,181,154,67,202,181,194,117,203,181,203,167,204,181,180,217,205,181,126,11,207,181,41,61,208,181,179,110,209,181,30,160,210,181,104,209,211,181,146,2,213,181,156,51,214,181,134,100,215,181,79,149,216,181,247,197,217,181,126,246,218,
181,229,38,220,181,42,87,221,181,79,135,222,181,82,183,223,181,51,231,224,181,243,22,226,181,146,70,227,181,14,118,228,181,105,165,229,181,161,212,230,181,184,3,232,181,172,50,233,181,126,97,234,181,45,144,235,181,185,190,236,181,35,237,237,181,106,27,239,181,142,73,240,181,143,119,241,181,108,165,242,181,39,211,243,181,189,0,245,181,48,46,246,181,128,91,247,181,171,136,248,181,178,181,249,181,150,226,250,181,85,15,252,181,240,59,253,181,102,104,254,181,184,148,255,181,114,96,0,182,118,246,0,182,
104,140,1,182,71,34,2,182,20,184,2,182,205,77,3,182,117,227,3,182,9,121,4,182,138,14,5,182,249,163,5,182,85,57,6,182,157,206,6,182,211,99,7,182,245,248,7,182,5,142,8,182,0,35,9,182,233,183,9,182,190,76,10,182,128,225,10,182,47,118,11,182,201,10,12,182,81,159,12,182,196,51,13,182,36,200,13,182,112,92,14,182,168,240,14,182,204,132,15,182,220,24,16,182,217,172,16,182,193,64,17,182,149,212,17,182,85,104,18,182,0,252,18,182,151,143,19,182,26,35,20,182,137,182,20,182,226,73,21,182,40,221,21,182,88,112,
22,182,116,3,23,182,124,150,23,182,110,41,24,182,76,188,24,182,20,79,25,182,200,225,25,182,103,116,26,182,240,6,27,182,101,153,27,182,196,43,28,182,14,190,28,182,67,80,29,182,98,226,29,182,108,116,30,182,96,6,31,182,63,152,31,182,8,42,32,182,188,187,32,182,90,77,33,182,226,222,33,182,84,112,34,182,176,1,35,182,246,146,35,182,38,36,36,182,65,181,36,182,69,70,37,182,50,215,37,182,10,104,38,182,203,248,38,182,118,137,39,182,11,26,40,182,137,170,40,182,240,58,41,182,65,203,41,182,123,91,42,182,159,235,
42,182,171,123,43,182,161,11,44,182,128,155,44,182,72,43,45,182,250,186,45,182,148,74,46,182,22,218,46,182,130,105,47,182,215,248,47,182,20,136,48,182,58,23,49,182,72,166,49,182,63,53,50,182,31,196,50,182,231,82,51,182,151,225,51,182,48,112,52,182,177,254,52,182,26,141,53,182,107,27,54,182,165,169,54,182,198,55,55,182,207,197,55,182,193,83,56,182,154,225,56,182,91,111,57,182,4,253,57,182,148,138,58,182,12,24,59,182,108,165,59,182,179,50,60,182,226,191,60,182,248,76,61,182,245,217,61,182,218,102,62,
182,166,243,62,182,89,128,63,182,244,12,64,182,117,153,64,182,222,37,65,182,45,178,65,182,100,62,66,182,129,202,66,182,133,86,67,182,112,226,67,182,65,110,68,182,250,249,68,182,152,133,69,182,30,17,70,182,137,156,70,182,219,39,71,182,20,179,71,182,51,62,72,182,56,201,72,182,35,84,73,182,245,222,73,182,172,105,74,182,74,244,74,182,206,126,75,182,55,9,76,182,135,147,76,182,188,29,77,182,215,167,77,182,215,49,78,182,190,187,78,182,138,69,79,182,59,207,79,182,210,88,80,182,79,226,80,182,177,107,81,182,
248,244,81,182,36,126,82,182,54,7,83,182,45,144,83,182,9,25,84,182,202,161,84,182,112,42,85,182,251,178,85,182,107,59,86,182,191,195,86,182,249,75,87,182,23,212,87,182,26,92,88,182,2,228,88,182,206,107,89,182,127,243,89,182,20,123,90,182,141,2,91,182,235,137,91,182,46,17,92,182,84,152,92,182,95,31,93,182,78,166,93,182,33,45,94,182,216,179,94,182,115,58,95,182,242,192,95,182,85,71,96,182,156,205,96,182,199,83,97,182,213,217,97,182,199,95,98,182,156,229,98,182,86,107,99,182,242,240,99,182,115,118,100,
182,214,251,100,182,29,129,101,182,72,6,102,182,85,139,102,182,70,16,103,182,26,149,103,182,209,25,104,182,107,158,104,182,232,34,105,182,72,167,105,182,139,43,106,182,177,175,106,182,186,51,107,182,165,183,107,182,115,59,108,182,36,191,108,182,183,66,109,182,45,198,109,182,133,73,110,182,192,204,110,182,221,79,111,182,221,210,111,182,191,85,112,182,131,216,112,182,41,91,113,182,177,221,113,182,28,96,114,182,104,226,114,182,151,100,115,182,167,230,115,182,154,104,116,182,110,234,116,182,36,108,117,
182,187,237,117,182,53,111,118,182,144,240,118,182,204,113,119,182,234,242,119,182,234,115,120,182,203,244,120,182,141,117,121,182,49,246,121,182,182,118,122,182,28,247,122,182,99,119,123,182,140,247,123,182,150,119,124,182,128,247,124,182,76,119,125,182,248,246,125,182,134,118,126,182,244,245,126,182,67,117,127,182,115,244,127,182,194,57,128,182,58,121,128,182,163,184,128,182,252,247,128,182,70,55,129,182,127,118,129,182,169,181,129,182,195,244,129,182,205,51,130,182,199,114,130,182,178,177,130,
182,140,240,130,182,86,47,131,182,17,110,131,182,187,172,131,182,86,235,131,182,224,41,132,182,90,104,132,182,197,166,132,182,31,229,132,182,105,35,133,182,163,97,133,182,204,159,133,182,230,221,133,182,239,27,134,182,232,89,134,182,208,151,134,182,169,213,134,182,113,19,135,182,40,81,135,182,208,142,135,182,102,204,135,182,237,9,136,182,99,71,136,182,200,132,136,182,29,194,136,182,98,255,136,182,150,60,137,182,185,121,137,182,204,182,137,182,206,243,137,182,191,48,138,182,160,109,138,182,112,170,
138,182,48,231,138,182,222,35,139,182,124,96,139,182,9,157,139,182,134,217,139,182,241,21,140,182,76,82,140,182,150,142,140,182,207,202,140,182,247,6,141,182,14,67,141,182,20,127,141,182,9,187,141,182,237,246,141,182,192,50,142,182,130,110,142,182,51,170,142,182,211,229,142,182,97,33,143,182,223,92,143,182,75,152,143,182,167,211,143,182,241,14,144,182,41,74,144,182,81,133,144,182,103,192,144,182,108,251,144,182,95,54,145,182,66,113,145,182,18,172,145,182,210,230,145,182,128,33,146,182,28,92,146,182,
168,150,146,182,33,209,146,182,137,11,147,182,224,69,147,182,37,128,147,182,88,186,147,182,122,244,147,182,139,46,148,182,137,104,148,182,118,162,148,182,81,220,148,182,27,22,149,182,211,79,149,182,121,137,149,182,13,195,149,182,144,252,149,182,0,54,150,182,95,111,150,182,172,168,150,182,231,225,150,182,17,27,151,182,40,84,151,182,45,141,151,182,33,198,151,182,2,255,151,182,210,55,152,182,143,112,152,182,58,169,152,182,212,225,152,182,91,26,153,182,208,82,153,182,51,139,153,182,131,195,153,182,194,
251,153,182,238,51,154,182,8,108,154,182,16,164,154,182,6,220,154,182,233,19,155,182,186,75,155,182,121,131,155,182,37,187,155,182,191,242,155,182,71,42,156,182,188,97,156,182,31,153,156,182,111,208,156,182,173,7,157,182,216,62,157,182,241,117,157,182,247,172,157,182,235,227,157,182,204,26,158,182,155,81,158,182,87,136,158,182,0,191,158,182,151,245,158,182,27,44,159,182,140,98,159,182,234,152,159,182,54,207,159,182,111,5,160,182,149,59,160,182,169,113,160,182,169,167,160,182,151,221,160,182,114,19,
161,182,58,73,161,182,239,126,161,182,145,180,161,182,33,234,161,182,157,31,162,182,6,85,162,182,93,138,162,182,160,191,162,182,208,244,162,182,237,41,163,182,247,94,163,182,238,147,163,182,210,200,163,182,163,253,163,182,96,50,164,182,11,103,164,182,162,155,164,182,38,208,164,182,151,4,165,182,244,56,165,182,62,109,165,182,117,161,165,182,153,213,165,182,169,9,166,182,166,61,166,182,143,113,166,182,101,165,166,182,40,217,166,182,215,12,167,182,115,64,167,182,251,115,167,182,112,167,167,182,210,218,
167,182,31,14,168,182,90,65,168,182,128,116,168,182,147,167,168,182,147,218,168,182,127,13,169,182,87,64,169,182,28,115,169,182,204,165,169,182,106,216,169,182,243,10,170,182,105,61,170,182,203,111,170,182,25,162,170,182,83,212,170,182,122,6,171,182,141,56,171,182,140,106,171,182,119,156,171,182,78,206,171,182,17,0,172,182,193,49,172,182,92,99,172,182,228,148,172,182,87,198,172,182,182,247,172,182,2,41,173,182,57,90,173,182,93,139,173,182,108,188,173,182,103,237,173,182,79,30,174,182,34,79,174,182,
224,127,174,182,139,176,174,182,34,225,174,182,164,17,175,182,18,66,175,182,108,114,175,182,178,162,175,182,227,210,175,182,1,3,176,182,9,51,176,182,254,98,176,182,222,146,176,182,170,194,176,182,98,242,176,182,5,34,177,182,147,81,177,182,14,129,177,182,116,176,177,182,197,223,177,182,2,15,178,182,42,62,178,182,62,109,178,182,62,156,178,182,41,203,178,182,255,249,178,182,193,40,179,182,110,87,179,182,6,134,179,182,138,180,179,182,250,226,179,182,84,17,180,182,154,63,180,182,203,109,180,182,232,155,
180,182,240,201,180,182,227,247,180,182,193,37,181,182,139,83,181,182,64,129,181,182,224,174,181,182,107,220,181,182,225,9,182,182,66,55,182,182,143,100,182,182,199,145,182,182,234,190,182,182,247,235,182,182,240,24,183,182,212,69,183,182,163,114,183,182,93,159,183,182,2,204,183,182,146,248,183,182,13,37,184,182,115,81,184,182,196,125,184,182,0,170,184,182,38,214,184,182,56,2,185,182,52,46,185,182,28,90,185,182,238,133,185,182,171,177,185,182,82,221,185,182,229,8,186,182,98,52,186,182,202,95,186,
182,29,139,186,182,91,182,186,182,131,225,186,182,150,12,187,182,148,55,187,182,124,98,187,182,79,141,187,182,12,184,187,182,181,226,187,182,72,13,188,182,197,55,188,182,45,98,188,182,128,140,188,182,189,182,188,182,228,224,188,182,246,10,189,182,243,52,189,182,218,94,189,182,172,136,189,182,104,178,189,182,15,220,189,182,160,5,190,182,27,47,190,182,129,88,190,182,209,129,190,182,11,171,190,182,48,212,190,182,63,253,190,182,57,38,191,182,29,79,191,182,235,119,191,182,164,160,191,182,70,201,191,182],
"i8",4,y.a+1167360);
Q([211,241,191,182,74,26,192,182,172,66,192,182,248,106,192,182,45,147,192,182,77,187,192,182,88,227,192,182,76,11,193,182,43,51,193,182,243,90,193,182,166,130,193,182,67,170,193,182,202,209,193,182,59,249,193,182,150,32,194,182,219,71,194,182,10,111,194,182,35,150,194,182,38,189,194,182,20,228,194,182,235,10,195,182,172,49,195,182,87,88,195,182,236,126,195,182,107,165,195,182,212,203,195,182,38,242,195,182,99,24,196,182,138,62,196,182,154,100,196,182,148,138,196,182,120,176,196,182,70,214,196,182,
254,251,196,182,159,33,197,182,42,71,197,182,159,108,197,182,254,145,197,182,71,183,197,182,121,220,197,182,149,1,198,182,154,38,198,182,138,75,198,182,99,112,198,182,37,149,198,182,210,185,198,182,104,222,198,182,231,2,199,182,80,39,199,182,163,75,199,182,223,111,199,182,5,148,199,182,21,184,199,182,14,220,199,182,241,255,199,182,189,35,200,182,114,71,200,182,18,107,200,182,154,142,200,182,12,178,200,182,104,213,200,182,173,248,200,182,220,27,201,182,244,62,201,182,245,97,201,182,224,132,201,182,
180,167,201,182,113,202,201,182,24,237,201,182,169,15,202,182,34,50,202,182,133,84,202,182,210,118,202,182,7,153,202,182,38,187,202,182,46,221,202,182,32,255,202,182,251,32,203,182,191,66,203,182,108,100,203,182,3,134,203,182,130,167,203,182,235,200,203,182,61,234,203,182,121,11,204,182,157,44,204,182,171,77,204,182,162,110,204,182,130,143,204,182,75,176,204,182,253,208,204,182,153,241,204,182,29,18,205,182,139,50,205,182,225,82,205,182,33,115,205,182,74,147,205,182,92,179,205,182,87,211,205,182,
59,243,205,182,7,19,206,182,189,50,206,182,92,82,206,182,228,113,206,182,85,145,206,182,175,176,206,182,242,207,206,182,30,239,206,182,50,14,207,182,48,45,207,182,23,76,207,182,230,106,207,182,158,137,207,182,64,168,207,182,202,198,207,182,61,229,207,182,153,3,208,182,221,33,208,182,11,64,208,182,33,94,208,182,33,124,208,182,9,154,208,182,217,183,208,182,147,213,208,182,53,243,208,182,192,16,209,182,52,46,209,182,145,75,209,182,214,104,209,182,5,134,209,182,27,163,209,182,27,192,209,182,3,221,209,
182,212,249,209,182,142,22,210,182,48,51,210,182,187,79,210,182,47,108,210,182,139,136,210,182,208,164,210,182,254,192,210,182,20,221,210,182,19,249,210,182,250,20,211,182,202,48,211,182,131,76,211,182,36,104,211,182,174,131,211,182,32,159,211,182,123,186,211,182,190,213,211,182,234,240,211,182,255,11,212,182,252,38,212,182,226,65,212,182,176,92,212,182,102,119,212,182,5,146,212,182,141,172,212,182,253,198,212,182,85,225,212,182,150,251,212,182,191,21,213,182,209,47,213,182,203,73,213,182,174,99,
213,182,121,125,213,182,44,151,213,182,200,176,213,182,77,202,213,182,185,227,213,182,14,253,213,182,76,22,214,182,113,47,214,182,127,72,214,182,118,97,214,182,85,122,214,182,28,147,214,182,203,171,214,182,99,196,214,182,227,220,214,182,75,245,214,182,156,13,215,182,213,37,215,182,246,61,215,182,0,86,215,182,241,109,215,182,203,133,215,182,142,157,215,182,56,181,215,182,203,204,215,182,70,228,215,182,169,251,215,182,245,18,216,182,40,42,216,182,68,65,216,182,72,88,216,182,52,111,216,182,9,134,216,
182,197,156,216,182,106,179,216,182,247,201,216,182,108,224,216,182,201,246,216,182,15,13,217,182,60,35,217,182,82,57,217,182,80,79,217,182,54,101,217,182,4,123,217,182,186,144,217,182,88,166,217,182,222,187,217,182,77,209,217,182,163,230,217,182,226,251,217,182,8,17,218,182,23,38,218,182,14,59,218,182,237,79,218,182,179,100,218,182,98,121,218,182,249,141,218,182,120,162,218,182,223,182,218,182,46,203,218,182,101,223,218,182,132,243,218,182,139,7,219,182,122,27,219,182,81,47,219,182,16,67,219,182,
183,86,219,182,70,106,219,182,189,125,219,182,28,145,219,182,99,164,219,182,146,183,219,182,169,202,219,182,168,221,219,182,142,240,219,182,93,3,220,182,19,22,220,182,178,40,220,182,56,59,220,182,167,77,220,182,253,95,220,182,59,114,220,182,97,132,220,182,111,150,220,182,101,168,220,182,67,186,220,182,8,204,220,182,182,221,220,182,75,239,220,182,200,0,221,182,45,18,221,182,122,35,221,182,175,52,221,182,204,69,221,182,209,86,221,182,189,103,221,182,145,120,221,182,77,137,221,182,241,153,221,182,125,
170,221,182,240,186,221,182,76,203,221,182,143,219,221,182,186,235,221,182,205,251,221,182,200,11,222,182,170,27,222,182,116,43,222,182,38,59,222,182,192,74,222,182,66,90,222,182,171,105,222,182,252,120,222,182,53,136,222,182,86,151,222,182,95,166,222,182,79,181,222,182,39,196,222,182,231,210,222,182,142,225,222,182,30,240,222,182,149,254,222,182,244,12,223,182,58,27,223,182,105,41,223,182,127,55,223,182,125,69,223,182,98,83,223,182,48,97,223,182,229,110,223,182,129,124,223,182,6,138,223,182,114,
151,223,182,198,164,223,182,2,178,223,182,37,191,223,182,48,204,223,182,35,217,223,182,253,229,223,182,191,242,223,182,105,255,223,182,251,11,224,182,116,24,224,182,213,36,224,182,30,49,224,182,78,61,224,182,102,73,224,182,102,85,224,182,78,97,224,182,29,109,224,182,212,120,224,182,114,132,224,182,248,143,224,182,102,155,224,182,188,166,224,182,249,177,224,182,30,189,224,182,42,200,224,182,31,211,224,182,250,221,224,182,190,232,224,182,105,243,224,182,252,253,224,182,119,8,225,182,217,18,225,182,
35,29,225,182,84,39,225,182,109,49,225,182,110,59,225,182,87,69,225,182,39,79,225,182,223,88,225,182,126,98,225,182,5,108,225,182,116,117,225,182,202,126,225,182,8,136,225,182,46,145,225,182,59,154,225,182,48,163,225,182,13,172,225,182,209,180,225,182,125,189,225,182,16,198,225,182,139,206,225,182,238,214,225,182,57,223,225,182,107,231,225,182,133,239,225,182,134,247,225,182,111,255,225,182,64,7,226,182,248,14,226,182,152,22,226,182,31,30,226,182,143,37,226,182,229,44,226,182,36,52,226,182,74,59,
226,182,88,66,226,182,77,73,226,182,42,80,226,182,239,86,226,182,155,93,226,182,47,100,226,182,170,106,226,182,14,113,226,182,89,119,226,182,139,125,226,182,165,131,226,182,167,137,226,182,144,143,226,182,97,149,226,182,26,155,226,182,186,160,226,182,66,166,226,182,178,171,226,182,9,177,226,182,72,182,226,182,111,187,226,182,125,192,226,182,115,197,226,182,80,202,226,182,21,207,226,182,194,211,226,182,87,216,226,182,211,220,226,182,55,225,226,182,130,229,226,182,181,233,226,182,208,237,226,182,210,
241,226,182,188,245,226,182,142,249,226,182,71,253,226,182,232,0,227,182,113,4,227,182,225,7,227,182,57,11,227,182,121,14,227,182,161,17,227,182,176,20,227,182,166,23,227,182,133,26,227,182,75,29,227,182,249,31,227,182,142,34,227,182,11,37,227,182,112,39,227,182,189,41,227,182,241,43,227,182,13,46,227,182,16,48,227,182,252,49,227,182,207,51,227,182,137,53,227,182,44,55,227,182,182,56,227,182,40,58,227,182,129,59,227,182,195,60,227,182,236,61,227,182,252,62,227,182,245,63,227,182,213,64,227,182,157,
65,227,182,76,66,227,182,228,66,227,182,99,67,227,182,201,67,227,182,24,68,227,182,78,68,227,182,108,68,227,182,114,68,227,182,96,68,227,182,53,68,227,182,242,67,227,182,151,67,227,182,35,67,227,182,152,66,227,182,244,65,227,182,56,65,227,182,99,64,227,182,119,63,227,182,114,62,227,182,85,61,227,182,32,60,227,182,210,58,227,182,109,57,227,182,239,55,227,182,89,54,227,182,171,52,227,182,229,50,227,182,6,49,227,182,15,47,227,182,0,45,227,182,217,42,227,182,154,40,227,182,67,38,227,182,211,35,227,182,
75,33,227,182,172,30,227,182,243,27,227,182,35,25,227,182,59,22,227,182,59,19,227,182,34,16,227,182,241,12,227,182,168,9,227,182,72,6,227,182,207,2,227,182,61,255,226,182,148,251,226,182,211,247,226,182,249,243,226,182,8,240,226,182,254,235,226,182,220,231,226,182,163,227,226,182,81,223,226,182,231,218,226,182,101,214,226,182,203,209,226,182,25,205,226,182,78,200,226,182,108,195,226,182,114,190,226,182,96,185,226,182,53,180,226,182,243,174,226,182,153,169,226,182,38,164,226,182,156,158,226,182,250,
152,226,182,63,147,226,182,109,141,226,182,131,135,226,182,128,129,226,182,102,123,226,182,52,117,226,182,234,110,226,182,135,104,226,182,13,98,226,182,123,91,226,182,209,84,226,182,15,78,226,182,53,71,226,182,68,64,226,182,58,57,226,182,24,50,226,182,223,42,226,182,141,35,226,182,36,28,226,182,163,20,226,182,9,13,226,182,88,5,226,182,144,253,225,182,175,245,225,182,182,237,225,182,166,229,225,182,126,221,225,182,62,213,225,182,230,204,225,182,118,196,225,182,238,187,225,182,79,179,225,182,152,170,
225,182,201,161,225,182,226,152,225,182,227,143,225,182,205,134,225,182,159,125,225,182,89,116,225,182,251,106,225,182,134,97,225,182,249,87,225,182,84,78,225,182,151,68,225,182,195,58,225,182,215,48,225,182,211,38,225,182,183,28,225,182,132,18,225,182,57,8,225,182,215,253,224,182,93,243,224,182,203,232,224,182,33,222,224,182,96,211,224,182,135,200,224,182,151,189,224,182,143,178,224,182,111,167,224,182,55,156,224,182,232,144,224,182,130,133,224,182,4,122,224,182,110,110,224,182,193,98,224,182,252,
86,224,182,31,75,224,182,43,63,224,182,32,51,224,182,253,38,224,182,194,26,224,182,112,14,224,182,6,2,224,182,133,245,223,182,237,232,223,182,61,220,223,182,117,207,223,182,150,194,223,182,159,181,223,182,145,168,223,182,108,155,223,182,47,142,223,182,219,128,223,182,111,115,223,182,236,101,223,182,81,88,223,182,159,74,223,182,214,60,223,182,245,46,223,182,253,32,223,182,238,18,223,182,199,4,223,182,137,246,222,182,51,232,222,182,198,217,222,182,66,203,222,182,167,188,222,182,244,173,222,182,42,159,
222,182,73,144,222,182,80,129,222,182,64,114,222,182,25,99,222,182,219,83,222,182,133,68,222,182,24,53,222,182,148,37,222,182,249,21,222,182,71,6,222,182,125,246,221,182,156,230,221,182,164,214,221,182,149,198,221,182,111,182,221,182,50,166,221,182,221,149,221,182,113,133,221,182,239,116,221,182,85,100,221,182,164,83,221,182,220,66,221,182,252,49,221,182,6,33,221,182,249,15,221,182,213,254,220,182,153,237,220,182,71,220,220,182,222,202,220,182,93,185,220,182,198,167,220,182,24,150,220,182,82,132,
220,182,118,114,220,182,131,96,220,182,121,78,220,182,87,60,220,182,31,42,220,182,208,23,220,182,107,5,220,182,238,242,219,182,90,224,219,182,176,205,219,182,239,186,219,182,22,168,219,182,39,149,219,182,33,130,219,182,5,111,219,182,209,91,219,182,135,72,219,182,38,53,219,182,174,33,219,182,32,14,219,182,122,250,218,182,190,230,218,182,236,210,218,182,2,191,218,182,2,171,218,182,235,150,218,182,189,130,218,182,121,110,218,182,30,90,218,182,173,69,218,182,37,49,218,182,134,28,218,182,208,7,218,182,
4,243,217,182,34,222,217,182,40,201,217,182,25,180,217,182,242,158,217,182,181,137,217,182,98,116,217,182,248,94,217,182,120,73,217,182,225,51,217,182,51,30,217,182,111,8,217,182,149,242,216,182,164,220,216,182,157,198,216,182,127,176,216,182,75,154,216,182,0,132,216,182,160,109,216,182,40,87,216,182,155,64,216,182,247,41,216,182,60,19,216,182,108,252,215,182,133,229,215,182,135,206,215,182,116,183,215,182,74,160,215,182,10,137,215,182,179,113,215,182,71,90,215,182,196,66,215,182,43,43,215,182,123,
19,215,182,182,251,214,182,218,227,214,182,232,203,214,182,224,179,214,182,194,155,214,182,142,131,214,182,68,107,214,182,227,82,214,182,108,58,214,182,224,33,214,182,61,9,214,182,132,240,213,182,182,215,213,182,209,190,213,182,214,165,213,182,197,140,213,182,158,115,213,182,97,90,213,182,15,65,213,182,166,39,213,182,39,14,213,182,147,244,212,182,232,218,212,182,40,193,212,182,81,167,212,182,101,141,212,182,99,115,212,182,76,89,212,182,30,63,212,182,218,36,212,182,129,10,212,182,18,240,211,182,141,
213,211,182,243,186,211,182,66,160,211,182,124,133,211,182,161,106,211,182,175,79,211,182,168,52,211,182,139,25,211,182,89,254,210,182,17,227,210,182,179,199,210,182,64,172,210,182,183,144,210,182,24,117,210,182,100,89,210,182,154,61,210,182,187,33,210,182,198,5,210,182,188,233,209,182,156,205,209,182,103,177,209,182,28,149,209,182,188,120,209,182,70,92,209,182,187,63,209,182,26,35,209,182,100,6,209,182,153,233,208,182,184,204,208,182,194,175,208,182,183,146,208,182,150,117,208,182,96,88,208,182,
21,59,208,182,180,29,208,182,62,0,208,182,179,226,207,182,19,197,207,182,93,167,207,182,147,137,207,182,179,107,207,182,189,77,207,182,179,47,207,182,148,17,207,182,95,243,206,182,21,213,206,182,182,182,206,182,66,152,206,182,185,121,206,182,27,91,206,182,104,60,206,182,160,29,206,182,195,254,205,182,209,223,205,182,202,192,205,182,173,161,205,182,124,130,205,182,54,99,205,182,220,67,205,182,108,36,205,182,231,4,205,182,78,229,204,182,159,197,204,182,220,165,204,182,4,134,204,182,23,102,204,182,21,
70,204,182,255,37,204,182,212,5,204,182,148,229,203,182,63,197,203,182,214,164,203,182,88,132,203,182,197,99,203,182,29,67,203,182,97,34,203,182,145,1,203,182,171,224,202,182,177,191,202,182,163,158,202,182,128,125,202,182,72,92,202,182,252,58,202,182,155,25,202,182,38,248,201,182,157,214,201,182,254,180,201,182,76,147,201,182,133,113,201,182,169,79,201,182,186,45,201,182,181,11,201,182,157,233,200,182,112,199,200,182,47,165,200,182,217,130,200,182,111,96,200,182,241,61,200,182,95,27,200,182,184,
248,199,182,253,213,199,182,46,179,199,182,75,144,199,182,83,109,199,182,72,74,199,182,40,39,199,182,244,3,199,182,172,224,198,182,80,189,198,182,224,153,198,182,91,118,198,182,195,82,198,182,23,47,198,182,86,11,198,182,130,231,197,182,154,195,197,182,157,159,197,182,141,123,197,182,105,87,197,182,49,51,197,182,229,14,197,182,133,234,196,182,18,198,196,182,138,161,196,182,239,124,196,182,64,88,196,182,125,51,196,182,166,14,196,182,188,233,195,182,190,196,195,182,172,159,195,182,134,122,195,182,77,
85,195,182,0,48,195,182,160,10,195,182,44,229,194,182,164,191,194,182,9,154,194,182,90,116,194,182,152,78,194,182,194,40,194,182,216,2,194,182,219,220,193,182,203,182,193,182,167,144,193,182,112,106,193,182,37,68,193,182,199,29,193,182,85,247,192,182,209,208,192,182,56,170,192,182,141,131,192,182,206,92,192,182,252,53,192,182,22,15,192,182,30,232,191,182,18,193,191,182,243,153,191,182,193,114,191,182,123,75,191,182,34,36,191,182,183,252,190,182,56,213,190,182,166,173,190,182,1,134,190,182,73,94,190,
182,125,54,190,182,159,14,190,182,174,230,189,182,170,190,189,182,147,150,189,182,105,110,189,182,43,70,189,182,219,29,189,182,121,245,188,182,3,205,188,182,122,164,188,182,223,123,188,182,49,83,188,182,112,42,188,182,156,1,188,182,181,216,187,182,188,175,187,182,176,134,187,182,145,93,187,182,96,52,187,182,28,11,187,182,197,225,186,182,92,184,186,182,224,142,186,182,81,101,186,182,176,59,186,182,252,17,186,182,54,232,185,182,94,190,185,182,114,148,185,182,117,106,185,182,101,64,185,182,66,22,185,
182,13,236,184,182,198,193,184,182,109,151,184,182,1,109,184,182,130,66,184,182,242,23,184,182,79,237,183,182,154,194,183,182,210,151,183,182,249,108,183,182,13,66,183,182,15,23,183,182,255,235,182,182,220,192,182,182,168,149,182,182,97,106,182,182,9,63,182,182,158,19,182,182,33,232,181,182,146,188,181,182,242,144,181,182,63,101,181,182,122,57,181,182,164,13,181,182,187,225,180,182,193,181,180,182,180,137,180,182,150,93,180,182,102,49,180,182,36,5,180,182,208,216,179,182,107,172,179,182,244,127,179,
182,107,83,179,182,208,38,179,182,36,250,178,182,102,205,178,182,150,160,178,182,181,115,178,182,194,70,178,182,190,25,178,182,168,236,177,182,128,191,177,182,71,146,177,182,252,100,177,182,160,55,177,182,51,10,177,182,180,220,176,182,35,175,176,182,129,129,176,182,206,83,176,182,10,38,176,182,52,248,175,182,76,202,175,182,84,156,175,182,74,110,175,182,47,64,175,182,3,18,175,182,198,227,174,182,119,181,174,182,23,135,174,182,166,88,174,182,36,42,174,182,145,251,173,182,237,204,173,182,55,158,173,
182,113,111,173,182,154,64,173,182,177,17,173,182,184,226,172,182,174,179,172,182,147,132,172,182,103,85,172,182,42,38,172,182,220,246,171,182,125,199,171,182,14,152,171,182,141,104,171,182,252,56,171,182,90,9,171,182,168,217,170,182,229,169,170,182,17,122,170,182,44,74,170,182,55,26,170,182,49,234,169,182,27,186,169,182,244,137,169,182,188,89,169,182,116,41,169,182,27,249,168,182,178,200,168,182,57,152,168,182,174,103,168,182,20,55,168,182,105,6,168,182,174,213,167,182,226,164,167,182,7,116,167,
182,26,67,167,182,30,18,167,182,17,225,166,182,244,175,166,182,199,126,166,182,138,77,166,182,60,28,166,182,222,234,165,182,112,185,165,182,242,135,165,182,100,86,165,182,198,36,165,182,24,243,164,182,90,193,164,182,140,143,164,182,174,93,164,182,192,43,164,182,194,249,163,182,180,199,163,182,150,149,163,182,104,99,163,182,43,49,163,182,222,254,162,182,129,204,162,182,20,154,162,182,151,103,162,182,11,53,162,182,111,2,162,182,195,207,161,182,8,157,161,182,61,106,161,182,99,55,161,182,121,4,161,182,
127,209,160,182,118,158,160,182,93,107,160,182,53,56,160,182,253,4,160,182,182,209,159,182,96,158,159,182,250,106,159,182,133,55,159,182,0,4,159,182,108,208,158,182,201,156,158,182,22,105,158,182,85,53,158,182,132,1,158,182,164,205,157,182,180,153,157,182,182,101,157,182,168,49,157,182,139,253,156,182,95,201,156,182,36,149,156,182,219,96,156,182,130,44,156,182,26,248,155,182,163,195,155,182,29,143,155,182,136,90,155,182,228,37,155,182,50,241,154,182,112,188,154,182,160,135,154,182,193,82,154,182,
211,29,154,182,215,232,153,182,203,179,153,182,177,126,153,182,137,73,153,182,81,20,153,182,11,223,152,182,183,169,152,182,83,116,152,182,226,62,152,182,97,9,152,182,211,211,151,182,53,158,151,182,138,104,151,182,207,50,151,182,7,253,150,182,48,199,150,182,74,145,150,182,87,91,150,182,85,37,150,182,68,239,149,182,38,185,149,182,249,130,149,182,190,76,149,182,116,22,149,182,29,224,148,182,183,169,148,182,68,115,148,182,194,60,148,182,50,6,148,182,148,207,147,182,232,152,147,182,46,98,147,182,102,43,
147,182,144,244,146,182,172,189,146,182,186,134,146,182,187,79,146,182,173,24,146,182,146,225,145,182,105,170,145,182,50,115,145,182,237,59,145,182,155,4,145,182,59,205,144,182,205,149,144,182,81,94,144,182,200,38,144,182,50,239,143,182,141,183,143,182,220,127,143,182,28,72,143,182,79,16,143,182,117,216,142,182,141,160,142,182,152,104,142,182,149,48,142,182,133,248,141,182,104,192,141,182,61,136,141,182,5,80,141,182,192,23,141,182,109,223,140,182,14,167,140,182,161,110,140,182,38,54,140,182,159,253,
139,182,11,197,139,182,105,140,139,182,186,83,139,182,255,26,139,182,54,226,138,182,96,169,138,182,125,112,138,182,142,55,138,182,145,254,137,182,136,197,137,182,113,140,137,182,78,83,137,182,30,26,137,182,225,224,136,182,151,167,136,182,65,110,136,182,222,52,136,182,110,251,135,182,241,193,135,182,104,136,135,182,210,78,135,182,48,21,135,182,129,219,134,182,198,161,134,182,254,103,134,182,41,46,134,182,72,244,133,182,91,186,133,182,97,128,133,182,91,70,133,182,72,12,133,182,41,210,132,182,254,151,
132,182,198,93,132,182,130,35,132,182,50,233,131,182,214,174,131,182,110,116,131,182,249,57,131,182,120,255,130,182,235,196,130,182,82,138,130,182,173,79,130,182,252,20,130,182,63,218,129,182,118,159,129,182,161,100,129,182,193,41,129,182,212,238,128,182,219,179,128,182,215,120,128,182,198,61,128,182,170,2,128,182,4,143,127,182,157,24,127,182,30,162,126,182,136,43,126,182,219,180,125,182,22,62,125,182,58,199,124,182,71,80,124,182,61,217,123,182,28,98,123,182,227,234,122,182,148,115,122,182,46,252,
121,182,177,132,121,182,29,13,121,182,114,149,120,182,177,29,120,182,217,165,119,182,234,45,119,182,229,181,118,182,202,61,118,182,152,197,117,182,79,77,117,182,241,212,116,182,124,92,116,182,240,227,115,182,79,107,115,182,152,242,114,182,202,121,114,182,230,0,114,182,237,135,113,182,221,14,113,182,184,149,112,182,125,28,112,182,44,163,111,182,198,41,111,182,73,176,110,182,184,54,110,182,16,189,109,182,83,67,109,182,129,201,108,182,154,79,108,182,157,213,107,182,139,91,107,182,99,225,106,182,39,103,
106,182,213,236,105,182,110,114,105,182,243,247,104,182,98,125,104,182,189,2,104,182,2,136,103,182,51,13,103,182,79,146,102,182,87,23,102,182,74,156,101,182,40,33,101,182,242,165,100,182,167,42,100,182,72,175,99,182,212,51,99,182,77,184,98,182,177,60,98,182,1,193,97,182,60,69,97,182,100,201,96,182,119,77,96,182,119,209,95,182,99,85,95,182,59,217,94,182,255,92,94,182,175,224,93,182,76,100,93,182,212,231,92,182,74,107,92,182,172,238,91,182,250,113,91,182,53,245,90,182,92,120,90,182,113,251,89,182,113,
126,89,182,95,1,89,182,58,132,88,182,1,7,88,182,182,137,87,182,87,12,87,182,230,142,86,182,97,17,86,182,202,147,85,182,32,22,85,182,99,152,84,182,148,26,84,182,178,156,83,182,189,30,83,182,182,160,82,182,157,34,82,182,113,164,81,182,51,38,81,182,226,167,80,182,128,41,80,182,11,171,79,182,132,44,79,182,235,173,78,182,64,47,78,182,131,176,77,182,180,49,77,182,211,178,76,182,224,51,76,182,220,180,75,182,198,53,75,182,159,182,74,182,101,55,74,182,27,184,73,182,191,56,73,182,81,185,72,182,211,57,72,182,
66,186,71,182,161,58,71,182,239,186,70,182,43,59,70,182,86,187,69,182,113,59,69,182,122,187,68,182,114,59,68,182,90,187,67,182,49,59,67,182,247,186,66,182,172,58,66,182,81,186,65,182,229,57,65,182,105,185,64,182,220,56,64,182,63,184,63,182,146,55,63,182,212,182,62,182,6,54,62,182,40,181,61,182,57,52,61,182,59,179,60,182,44,50,60,182,14,177,59,182,224,47,59,182,162,174,58,182,84,45,58,182,246,171,57,182,137,42,57,182,12,169,56,182,128,39,56,182,228,165,55,182,56,36,55,182,126,162,54,182,180,32,54,
182,218,158,53,182,242,28,53,182,250,154,52,182,243,24,52,182,221,150,51,182,184,20,51,182,132,146,50,182,65,16,50,182,240,141,49,182,143,11,49,182,32,137,48,182,162,6,48,182,22,132,47,182,123,1,47,182,209,126,46,182,25,252,45,182,83,121,45,182,127,246,44,182,156,115,44,182,171,240,43,182,171,109,43,182,158,234,42,182,131,103,42,182,89,228,41,182,34,97,41,182,221,221,40,182,138,90,40,182,41,215,39,182,187,83,39,182,63,208,38,182,181,76,38,182,30,201,37,182,121,69,37,182,199,193,36,182,7,62,36,182,
58,186,35,182,96,54,35,182,121,178,34,182,133,46,34,182,131,170,33,182,117,38,33,182,89,162,32,182,49,30,32,182,252,153,31,182,186,21,31,182,107,145,30,182,15,13,30,182,167,136,29,182,51,4,29,182,177,127,28,182,36,251,27,182,138,118,27,182,227,241,26,182,49,109,26,182,114,232,25,182,167,99,25,182,207,222,24,182,236,89,24,182,253,212,23,182,2,80,23,182,251,202,22,182,232,69,22,182,201,192,21,182,158,59,21,182,104,182,20,182,39,49,20,182,217,171,19,182,129,38,19,182,29,161,18,182,173,27,18,182,50,150,
17,182,172,16,17,182,27,139,16,182,126,5,16,182,215,127,15,182,36,250,14,182,102,116,14,182,158,238,13,182,203,104,13,182,236,226,12,182,4,93,12,182,16,215,11,182,18,81,11,182,9,203,10,182,246,68,10,182,216,190,9,182,176,56,9,182,125,178,8,182,64,44,8,182,249,165,7,182,168,31,7,182,77,153,6,182,231,18,6,182,120,140,5,182,254,5,5,182,123,127,4,182,238,248,3,182,87,114,3,182,183,235,2,182,12,101,2,182,88,222,1,182,155,87,1,182,212,208,0,182,4,74,0,182,84,134,255,181,142,120,254,181,182,106,253,181,
203,92,252,181,206,78,251,181,191,64,250,181,157,50,249,181,106,36,248,181,37,22,247,181,206,7,246,181,101,249,244,181,235,234,243,181,96,220,242,181,195,205,241,181,22,191,240,181,87,176,239,181,135,161,238,181,167,146,237,181,182,131,236,181,180,116,235,181,162,101,234,181,127,86,233,181,77,71,232,181,10,56,231,181,183,40,230,181,84,25,229,181,226,9,228,181,96,250,226,181,207,234,225,181,46,219,224,181,125,203,223,181,190,187,222,181,239,171,221,181,18,156,220,181,38,140,219,181,43,124,218,181,
33,108,217,181,9,92,216,181,226,75,215,181,174,59,214,181,107,43,213,181,26,27,212,181,187,10,211,181,79,250,209,181,212,233,208,181,77,217,207,181,183,200,206,181,21,184,205,181,101,167,204,181,168,150,203,181,222,133,202,181,7,117,201,181,36,100,200,181,51,83,199,181,55,66,198,181,45,49,197,181,24,32,196,181,246,14,195,181,201,253,193,181,143,236,192,181,74,219,191,181,248,201,190,181,156,184,189,181,51,167,188,181,192,149,187,181,65,132,186,181,183,114,185,181,34,97,184,181,130,79,183,181,215,
61,182,181,34,44,181,181,98,26,180,181,151,8,179,181,194,246,177,181,227,228,176,181,250,210,175,181,7,193,174,181,10,175,173,181,3,157,172,181,243,138,171,181,217,120,170,181,182,102,169,181,137,84,168,181,83,66,167,181,21,48,166,181,205,29,165,181,124,11,164,181,35,249,162,181,193,230,161,181,86,212,160,181,228,193,159,181,105,175,158,181,229,156,157,181,90,138,156,181,199,119,155,181,44,101,154,181,138,82,153,181,224,63,152,181,46,45,151,181,117,26,150,181,181,7,149,181,238,244,147,181,32,226,
146,181,74,207,145,181,111,188,144,181,140,169,143,181,163,150,142,181,180,131,141,181,190,112,140,181,194,93,139,181,192,74,138,181,184,55,137,181,171,36,136,181,151,17,135,181,126,254,133,181,96,235,132,181,60,216,131,181,19,197,130,181,229,177,129,181,177,158,128,181,243,22,127,181,121,240,124,181,245,201,122,181,105,163,120,181,212,124,118,181,54,86,116,181,144,47,114,181,225,8,112,181,43,226,109,181,108,187,107,181,167,148,105,181,218,109,103,181,6,71,101,181,43,32,99,181,73,249,96,181,97,210,
94,181,116,171,92,181,128,132,90,181,134,93,88,181,135,54,86,181,131,15,84,181,122,232,81,181,109,193,79,181,90,154,77,181,68,115,75,181,41,76,73,181,11,37,71,181,233,253,68,181,195,214,66,181,155,175,64,181,111,136,62,181,65,97,60,181,17,58,58,181,222,18,56,181,169,235,53,181,115,196,51,181,59,157,49,181,2,118,47,181,200,78,45,181,141,39,43,181,81,0,41,181,21,217,38,181,217,177,36,181,157,138,34,181,97,99,32,181,38,60,30,181,235,20,28,181,178,237,25,181,122,198,23,181,67,159,21,181,14,120,19,181,
219,80,17,181,170,41,15,181,124,2,13,181,80,219,10,181,39,180,8,181,1,141,6,181,223,101,4,181,192,62,2,181,164,23,0,181,26,225,251,180,244,146,247,180,215,68,243,180,195,246,238,180,185,168,234,180,186,90,230,180,197,12,226,180,219,190,221,180,253,112,217,180,43,35,213,180,102,213,208,180,174,135,204,180,3,58,200,180,102,236,195,180,216,158,191,180,88,81,187,180,232,3,183,180,136,182,178,180,56,105,174,180,248,27,170,180,202,206,165,180,173,129,161,180,163,52,157,180,171,231,152,180,198,154,148,180,
244,77,144,180,54,1,140,180,141,180,135,180,249,103,131,180,243,54,126,180,32,158,117,180,121,5,109,180,255,108,100,180,180,212,91,180,152,60,83,180,172,164,74,180,241,12,66,180,103,117,57,180,17,222,48,180,238,70,40,180,0,176,31,180,71,25,23,180,196,130,14,180,121,236,5,180,204,172,250,179,25,129,233,179,217,85,216,179,15,43,199,179,189,0,182,179,229,214,164,179,136,173,147,179,168,132,130,179,141,184,98,179,205,104,64,179,17,26,30,179,190,152,247,178,114,255,178,178,140,208,92,178,6,77,167,177,
163,252,85,49,104,160,62,50,151,222,163,50,181,106,232,50,68,122,22,51,4,190,56,51,150,0,91,51,248,65,125,51,19,193,143,51,142,224,160,51,107,255,177,51,168,29,195,51,69,59,212,51,61,88,229,51,145,116,246,51,31,200,3,52,161,85,12,52,206,226,20,52,165,111,29,52,37,252,37,52,77,136,46,52,28,20,55,52,146,159,63,52,173,42,72,52,108,181,80,52,207,63,89,52,212,201,97,52,124,83,106,52,196,220,114,52,172,101,123,52,26,247,129,52,44,59,134,52,14,127,138,52,189,194,142,52,58,6,147,52,133,73,151,52,156,140,
155,52,128,207,159,52,48,18,164,52,171,84,168,52,241,150,172,52,2,217,176,52,221,26,181,52,130,92,185,52,240,157,189,52,39,223,193,52,38,32,198,52,237,96,202,52,124,161,206,52,210,225,210,52,238,33,215,52,208,97,219,52,120,161,223,52,229,224,227,52,23,32,232,52,14,95,236,52,200,157,240,52,70,220,244,52,134,26,249,52,138,88,253,52,39,203,0,53,235,233,2,53,143,8,5,53,20,39,7,53,120,69,9,53,189,99,11,53,225,129,13,53,229,159,15,53,200,189,17,53,139,219,19,53,44,249,21,53,171,22,24,53,9,52,26,53,70,81,
28,53,96,110,30,53,88,139,32,53,45,168,34,53,224,196,36,53,112,225,38,53,220,253,40,53,38,26,43,53,75,54,45,53,77,82,47,53,43,110,49,53,228,137,51,53,121,165,53,53,234,192,55,53,53,220,57,53,91,247,59,53,92,18,62,53,56,45,64,53,237,71,66,53,125,98,68,53,230,124,70,53,41,151,72,53,69,177,74,53,58,203,76,53,8,229,78,53,175,254,80,53,46,24,83,53,133,49,85,53,181,74,87,53,188,99,89,53,155,124,91,53,81,149,93,53,222,173,95,53,66,198,97,53,125,222,99,53,142,246,101,53,118,14,104,53,52,38,106,53,199,61,
108,53,48,85,110,53,110,108,112,53,130,131,114,53,106,154,116,53,40,177,118,53,185,199,120,53,31,222,122,53,89,244,124,53,103,10,127,53,37,144,128,53,255,154,129,53,195,165,130,53,113,176,131,53,8,187,132,53,136,197,133,53,241,207,134,53,68,218,135,53,127,228,136,53,164,238,137,53,177,248,138,53,166,2,140,53,133,12,141,53,75,22,142,53,250,31,143,53,145,41,144,53,16,51,145,53,119,60,146,53,199,69,147,53,253,78,148,53,28,88,149,53,34,97,150,53,15,106,151,53,228,114,152,53,160,123,153,53,67,132,154,
53,205,140,155,53,62,149,156,53,150,157,157,53,213,165,158,53,250,173,159,53,6,182,160,53,248,189,161,53,208,197,162,53,142,205,163,53,51,213,164,53,189,220,165,53,46,228,166,53,132,235,167,53,191,242,168,53,224,249,169,53,231,0,171,53,211,7,172,53,164,14,173,53,90,21,174,53,245,27,175,53,117,34,176,53,218,40,177,53,35,47,178,53,81,53,179,53,100,59,180,53,91,65,181,53,54,71,182,53,245,76,183,53,152,82,184,53,31,88,185,53,138,93,186,53,217,98,187,53,11,104,188,53,33,109,189,53,26,114,190,53,247,118,
191,53,183,123,192,53,89,128,193,53,223,132,194,53,72,137,195,53,147,141,196,53,193,145,197,53,210,149,198,53,197,153,199,53,155,157,200,53,82,161,201,53,236,164,202,53,104,168,203,53,198,171,204,53,5,175,205,53,39,178,206,53,42,181,207,53,14,184,208,53,212,186,209,53,123,189,210,53,4,192,211,53,109,194,212,53,184,196,213,53,227,198,214,53,240,200,215,53,220,202,216,53,170,204,217,53,88,206,218,53,230,207,219,53,85,209,220,53,164,210,221,53,210,211,222,53,225,212,223,53,208,213,224,53,158,214,225,
53,76,215,226,53,218,215,227,53,71,216,228,53,147,216,229,53,191,216,230,53,202,216,231,53,179,216,232,53,124,216,233,53,36,216,234,53,170,215,235,53,15,215,236,53,82,214,237,53,116,213,238,53,116,212,239,53,83,211,240,53,15,210,241,53,170,208,242,53,34,207,243,53,120,205,244,53,172,203,245,53,190,201,246,53,173,199,247,53,121,197,248,53,35,195,249,53,170,192,250,53,14,190,251,53,79,187,252,53,109,184,253,53,103,181,254,53,63,178,255,53,121,87,0,54,194,213,0,54,248,83,1,54,29,210,1,54,47,80,2,54,
48,206,2,54,31,76,3,54,251,201,3,54,198,71,4,54,126,197,4,54,36,67,5,54,184,192,5,54,58,62,6,54,169,187,6,54,6,57,7,54,80,182,7,54,136,51,8,54,174,176,8,54,192,45,9,54,192,170,9,54,174,39,10,54,136,164,10,54,80,33,11,54,5,158,11,54,167,26,12,54,54,151,12,54,178,19,13,54,27,144,13,54,113,12,14,54,180,136,14,54,227,4,15,54,0,129,15,54,9,253,15,54,254,120,16,54,224,244,16,54,175,112,17,54,106,236,17,54,18,104,18,54,166,227,18,54,39,95,19,54,148,218,19,54,237,85,20,54,50,209,20,54,99,76,21,54,129,199,
21,54,138,66,22,54,128,189,22,54,98,56,23,54,47,179,23,54,232,45,24,54,141,168,24,54,30,35,25,54,155,157,25,54,3,24,26,54,87,146,26,54,151,12,27,54,194,134,27,54,216,0,28,54,218,122,28,54,200,244,28,54,160,110,29,54,100,232,29,54,19,98,30,54,174,219,30,54,51,85,31,54,164,206,31,54,255,71,32,54,70,193,32,54,119,58,33,54,148,179,33,54,155,44,34,54,141,165,34,54,106,30,35,54,50,151,35,54,228,15,36,54,129,136,36,54,8,1,37,54,122,121,37,54,215,241,37,54,29,106,38,54,79,226,38,54,106,90,39,54,112,210,39,
54,96,74,40,54,58,194,40,54,255,57,41,54,173,177,41,54,70,41,42,54,200,160,42,54,53,24,43,54,139,143,43,54,203,6,44,54,245,125,44,54,9,245,44,54,6,108,45,54,238,226,45,54,190,89,46,54,121,208,46,54,29,71,47,54,170,189,47,54,33,52,48,54,129,170,48,54,202,32,49,54,253,150,49,54,25,13,50,54,31,131,50,54,13,249,50,54,229,110,51,54,165,228,51,54,79,90,52,54,225,207,52,54,93,69,53,54,193,186,53,54,15,48,54,54,69,165,54,54,99,26,55,54,107,143,55,54,91,4,56,54,52,121,56,54,245,237,56,54,159,98,57,54,49,215,
57,54,172,75,58,54,15,192,58,54,90,52,59,54,142,168,59,54,169,28,60,54,173,144,60,54,154,4,61,54,110,120,61,54,42,236,61,54,207,95,62,54,91,211,62,54,207,70,63,54,44,186,63,54,112,45,64,54,155,160,64,54,175,19,65,54,170,134,65,54,141,249,65,54,87,108,66,54,9,223,66,54,163,81,67,54,36,196,67,54,140,54,68,54,220,168,68,54,19,27,69,54,50,141,69,54,55,255,69,54,36,113,70,54,248,226,70,54,180,84,71,54,86,198,71,54,223,55,72,54,79,169,72,54,167,26,73,54,229,139,73,54,10,253,73,54,21,110,74,54,8,223,74,
54,225,79,75,54,161,192,75,54,71,49,76,54,213,161,76,54,72,18,77,54,162,130,77,54,227,242,77,54,10,99,78,54,23,211,78,54,11,67,79,54,229,178,79,54,165,34,80,54,76,146,80,54,216,1,81,54,75,113,81,54,164,224,81,54,227,79,82,54,7,191,82,54,18,46,83,54,3,157,83,54,217,11,84,54,149,122,84,54,55,233,84,54,191,87,85,54,45,198,85,54,128,52,86,54,184,162,86,54,214,16,87,54,218,126,87,54,195,236,87,54,146,90,88,54,70,200,88,54,223,53,89,54,94,163,89,54,193,16,90,54,11,126,90,54,57,235,90,54,76,88,91,54,68,
197,91,54,34,50,92,54,228,158,92,54,140,11,93,54,24,120,93,54,137,228,93,54,223,80,94,54,26,189,94,54,58,41,95,54,62,149,95,54,39,1,96,54,245,108,96,54,167,216,96,54,62,68,97,54,185,175,97,54,25,27,98,54,93,134,98,54,133,241,98,54,146,92,99,54,131,199,99,54,88,50,100,54,18,157,100,54,176,7,101,54,49,114,101,54,151,220,101,54,225,70,102,54,15,177,102,54,33,27,103,54,23,133,103,54,241,238,103,54,175,88,104,54,80,194,104,54,213,43,105,54,62,149,105,54,139,254,105,54,187,103,106,54,207,208,106,54,198,
57,107,54,161,162,107,54,95,11,108,54,1,116,108,54,134,220,108,54,239,68,109,54,59,173,109,54,106,21,110,54,125,125,110,54,114,229,110,54,75,77,111,54,7,181,111,54,166,28,112,54,40,132,112,54,141,235,112,54,213,82,113,54,0,186,113,54,14,33,114,54,254,135,114,54,210,238,114,54,136,85,115,54,33,188,115,54,157,34,116,54,251,136,116,54,60,239,116,54,95,85,117,54,101,187,117,54,78,33,118,54,25,135,118,54,198,236,118,54,86,82,119,54,200,183,119,54,28,29,120,54,83,130,120,54,108,231,120,54,103,76,121,54,
68,177,121,54,3,22,122,54,165,122,122,54,40,223,122,54,142,67,123,54,213,167,123,54,254,11,124,54,10,112,124,54,247,211,124,54,197,55,125,54,118,155,125,54,8,255,125,54,124,98,126,54,210,197,126,54,9,41,127,54,34,140,127,54,28,239,127,54,252,40,128,54,91,90,128,54,170,139,128,54,234,188,128,54,27,238,128,54,60,31,129,54,78,80,129,54,81,129,129,54,68,178,129,54,40,227,129,54,253,19,130,54,194,68,130,54,119,117,130,54,29,166,130,54,180,214,130,54,59,7,131,54,178,55,131,54,26,104,131,54,114,152,131,
54,187,200,131,54,244,248,131,54,29,41,132,54,55,89,132,54,65,137,132,54,60,185,132,54,39,233,132,54,2,25,133,54,205,72,133,54,136,120,133,54,52,168,133,54,208,215,133,54,92,7,134,54,216,54,134,54,69,102,134,54,161,149,134,54,238,196,134,54,43,244,134,54,87,35,135,54,116,82,135,54,129,129,135,54,126,176,135,54,107,223,135,54,72,14,136,54,21,61,136,54,210,107,136,54,127,154,136,54,27,201,136,54,168,247,136,54,37,38,137,54,145,84,137,54,237,130,137,54,57,177,137,54,117,223,137,54,161,13,138,54,188,
59,138,54,199,105,138,54,194,151,138,54,173,197,138,54,136,243,138,54,82,33,139,54,11,79,139,54,181,124,139,54,78,170,139,54,215,215,139,54,79,5,140,54,183,50,140,54,15,96,140,54,86,141,140,54,140,186,140,54,178,231,140,54,200,20,141,54,205,65,141,54,194,110,141,54,166,155,141,54,121,200,141,54,60,245,141,54,239,33,142,54,144,78,142,54,34,123,142,54,162,167,142,54,18,212,142,54,113,0,143,54,191,44,143,54,253,88,143,54,42,133,143,54,71,177,143,54,82,221,143,54,77,9,144,54,55,53,144,54,16,97,144,54,
216,140,144,54,144,184,144,54,55,228,144,54,204,15,145,54,81,59,145,54,197,102,145,54,41,146,145,54,123,189,145,54,188,232,145,54,236,19,146,54,12,63,146,54,26,106,146,54,23,149,146,54,3,192,146,54,223,234,146,54,169,21,147,54,98,64,147,54,10,107,147,54,161,149,147,54,38,192,147,54,155,234,147,54,255,20,148,54,81,63,148,54,146,105,148,54,194,147,148,54,225,189,148,54,238,231,148,54,234,17,149,54,213,59,149,54,175,101,149,54,119,143,149,54,47,185,149,54,212,226,149,54,105,12,150,54,236,53,150,54,94,
95,150,54,190,136,150,54,13,178,150,54,75,219,150,54,119,4,151,54,145,45,151,54,155,86,151,54,146,127,151,54,121,168,151,54,77,209,151,54,17,250,151,54,194,34,152,54,98,75,152,54,241,115,152,54,110,156,152,54,217,196,152,54,51,237,152,54,124,21,153,54,178,61,153,54,215,101,153,54,234,141,153,54,236,181,153,54,220,221,153,54,186,5,154,54,135,45,154,54,65,85,154,54,234,124,154,54,129,164,154,54,7,204,154,54,123,243,154,54,220,26,155,54,44,66,155,54,107,105,155,54,151,144,155,54,177,183,155,54,186,222,
155,54,177,5,156,54,150,44,156,54,105,83,156,54,41,122,156,54,217,160,156,54,118,199,156,54,1,238,156,54,122,20,157,54,225,58,157,54,54,97,157,54,121,135,157,54,170,173,157,54,201,211,157,54,214,249,157,54,209,31,158,54,185,69,158,54,144,107,158,54,84,145,158,54,7,183,158,54,167,220,158,54,53,2,159,54,177,39,159,54,26,77,159,54,114,114,159,54,183,151,159,54,234,188,159,54,11,226,159,54,25,7,160,54,21,44,160,54,255,80,160,54,215,117,160,54,156,154,160,54,79,191,160,54,240,227,160,54,126,8,161,54,250,
44,161,54,100,81,161,54,187,117,161,54,255,153,161,54,50,190,161,54,82,226,161,54,95,6,162,54,90,42,162,54,67,78,162,54,25,114,162,54,221,149,162,54,142,185,162,54,44,221,162,54,184,0,163,54,50,36,163,54,153,71,163,54,237,106,163,54,47,142,163,54,94,177,163,54,123,212,163,54,133,247,163,54,124,26,164,54,97,61,164,54,51,96,164,54,243,130,164,54,160,165,164,54,58,200,164,54,193,234,164,54,54,13,165,54,152,47,165,54,231,81,165,54,35,116,165,54,77,150,165,54,100,184,165,54,104,218,165,54,90,252,165,54,
56,30,166,54,4,64,166,54,189,97,166,54,99,131,166,54,246,164,166,54,118,198,166,54,228,231,166,54,62,9,167,54,134,42,167,54,187,75,167,54,221,108,167,54,236,141,167,54,232,174,167,54,209,207,167,54,167,240,167,54,106,17,168,54,26,50,168,54,183,82,168,54,65,115,168,54,184,147,168,54,28,180,168,54,109,212,168,54,171,244,168,54,214,20,169,54,237,52,169,54,242,84,169,54,227,116,169,54,194,148,169,54,141,180,169,54,69,212,169,54,234,243,169,54,124,19,170,54,251,50,170,54,103,82,170,54,191,113,170,54,4,
145,170,54,54,176,170,54,85,207,170,54,96,238,170,54,88,13,171,54,61,44,171,54,15,75,171,54,206,105,171,54,121,136,171,54,17,167,171,54,149,197,171,54,6,228,171,54,100,2,172,54,175,32,172,54,230,62,172,54,10,93,172,54,27,123,172,54,24,153,172,54,2,183,172,54,216,212,172,54,155,242,172,54,75,16,173,54,231,45,173,54,111,75,173,54,229,104,173,54,71,134,173,54,149,163,173,54,208,192,173,54,247,221,173,54,11,251,173,54,11,24,174,54,248,52,174,54,210,81,174,54,151,110,174,54,74,139,174,54,232,167,174,54,
116,196,174,54,235,224,174,54,79,253,174,54,160,25,175,54,220,53,175,54,6,82,175,54,27,110,175,54,29,138,175,54,12,166,175,54,230,193,175,54,173,221,175,54,97,249,175,54],"i8",4,y.a+1177600);
Q([0,21,176,54,141,48,176,54,5,76,176,54,105,103,176,54,186,130,176,54,248,157,176,54,33,185,176,54,55,212,176,54,57,239,176,54,39,10,177,54,2,37,177,54,200,63,177,54,123,90,177,54,27,117,177,54,166,143,177,54,30,170,177,54,129,196,177,54,209,222,177,54,13,249,177,54,54,19,178,54,74,45,178,54,75,71,178,54,55,97,178,54,16,123,178,54,213,148,178,54,134,174,178,54,35,200,178,54,173,225,178,54,34,251,178,54,131,20,179,54,209,45,179,54,11,71,179,54,48,96,179,54,66,121,179,54,64,146,179,54,41,171,179,54,
255,195,179,54,193,220,179,54,111,245,179,54,8,14,180,54,142,38,180,54,0,63,180,54,94,87,180,54,168,111,180,54,221,135,180,54,255,159,180,54,12,184,180,54,6,208,180,54,235,231,180,54,189,255,180,54,122,23,181,54,35,47,181,54,184,70,181,54,57,94,181,54,166,117,181,54,255,140,181,54,68,164,181,54,116,187,181,54,145,210,181,54,153,233,181,54,141,0,182,54,109,23,182,54,57,46,182,54,240,68,182,54,148,91,182,54,35,114,182,54,158,136,182,54,5,159,182,54,87,181,182,54,150,203,182,54,192,225,182,54,214,247,
182,54,215,13,183,54,197,35,183,54,158,57,183,54,99,79,183,54,20,101,183,54,176,122,183,54,56,144,183,54,172,165,183,54,12,187,183,54,87,208,183,54,142,229,183,54,176,250,183,54,191,15,184,54,185,36,184,54,158,57,184,54,112,78,184,54,45,99,184,54,213,119,184,54,106,140,184,54,234,160,184,54,85,181,184,54,173,201,184,54,239,221,184,54,30,242,184,54,56,6,185,54,62,26,185,54,47,46,185,54,12,66,185,54,212,85,185,54,136,105,185,54,40,125,185,54,179,144,185,54,42,164,185,54,140,183,185,54,218,202,185,54,
20,222,185,54,57,241,185,54,73,4,186,54,69,23,186,54,45,42,186,54,0,61,186,54,191,79,186,54,105,98,186,54,255,116,186,54,128,135,186,54,237,153,186,54,69,172,186,54,136,190,186,54,184,208,186,54,210,226,186,54,216,244,186,54,202,6,187,54,167,24,187,54,111,42,187,54,35,60,187,54,195,77,187,54,78,95,187,54,196,112,187,54,38,130,187,54,115,147,187,54,171,164,187,54,207,181,187,54,223,198,187,54,218,215,187,54,192,232,187,54,145,249,187,54,78,10,188,54,247,26,188,54,139,43,188,54,10,60,188,54,116,76,
188,54,202,92,188,54,12,109,188,54,56,125,188,54,80,141,188,54,84,157,188,54,67,173,188,54,29,189,188,54,226,204,188,54,147,220,188,54,47,236,188,54,183,251,188,54,42,11,189,54,136,26,189,54,209,41,189,54,6,57,189,54,38,72,189,54,50,87,189,54,40,102,189,54,11,117,189,54,216,131,189,54,145,146,189,54,53,161,189,54,196,175,189,54,62,190,189,54,164,204,189,54,245,218,189,54,50,233,189,54,89,247,189,54,108,5,190,54,106,19,190,54,84,33,190,54,41,47,190,54,233,60,190,54,148,74,190,54,42,88,190,54,172,101,
190,54,25,115,190,54,113,128,190,54,181,141,190,54,228,154,190,54,254,167,190,54,3,181,190,54,243,193,190,54,207,206,190,54,150,219,190,54,72,232,190,54,229,244,190,54,110,1,191,54,226,13,191,54,65,26,191,54,139,38,191,54,192,50,191,54,225,62,191,54,236,74,191,54,227,86,191,54,198,98,191,54,147,110,191,54,76,122,191,54,239,133,191,54,126,145,191,54,248,156,191,54,94,168,191,54,174,179,191,54,234,190,191,54,17,202,191,54,35,213,191,54,32,224,191,54,8,235,191,54,220,245,191,54,155,0,192,54,68,11,192,
54,217,21,192,54,90,32,192,54,197,42,192,54,27,53,192,54,93,63,192,54,138,73,192,54,162,83,192,54,165,93,192,54,147,103,192,54,109,113,192,54,49,123,192,54,225,132,192,54,124,142,192,54,2,152,192,54,115,161,192,54,207,170,192,54,23,180,192,54,73,189,192,54,103,198,192,54,112,207,192,54,100,216,192,54,67,225,192,54,13,234,192,54,195,242,192,54,99,251,192,54,239,3,193,54,102,12,193,54,199,20,193,54,20,29,193,54,77,37,193,54,112,45,193,54,126,53,193,54,120,61,193,54,92,69,193,54,44,77,193,54,231,84,
193,54,141,92,193,54,30,100,193,54,154,107,193,54,2,115,193,54,84,122,193,54,146,129,193,54,187,136,193,54,206,143,193,54,205,150,193,54,183,157,193,54,141,164,193,54,77,171,193,54,248,177,193,54,143,184,193,54,17,191,193,54,125,197,193,54,213,203,193,54,24,210,193,54,70,216,193,54,96,222,193,54,100,228,193,54,83,234,193,54,46,240,193,54,244,245,193,54,164,251,193,54,64,1,194,54,199,6,194,54,58,12,194,54,151,17,194,54,223,22,194,54,19,28,194,54,50,33,194,54,59,38,194,54,48,43,194,54,16,48,194,54,
219,52,194,54,146,57,194,54,51,62,194,54,191,66,194,54,55,71,194,54,154,75,194,54,232,79,194,54,33,84,194,54,69,88,194,54,84,92,194,54,79,96,194,54,52,100,194,54,5,104,194,54,193,107,194,54,103,111,194,54,250,114,194,54,119,118,194,54,223,121,194,54,51,125,194,54,113,128,194,54,155,131,194,54,176,134,194,54,176,137,194,54,155,140,194,54,113,143,194,54,51,146,194,54,224,148,194,54,119,151,194,54,250,153,194,54,104,156,194,54,194,158,194,54,6,161,194,54,54,163,194,54,80,165,194,54,86,167,194,54,71,
169,194,54,35,171,194,54,235,172,194,54,157,174,194,54,59,176,194,54,196,177,194,54,56,179,194,54,151,180,194,54,226,181,194,54,23,183,194,54,56,184,194,54,68,185,194,54,59,186,194,54,30,187,194,54,235,187,194,54,164,188,194,54,72,189,194,54,215,189,194,54,82,190,194,54,183,190,194,54,8,191,194,54,68,191,194,54,107,191,194,54,126,191,194,54,123,191,194,54,100,191,194,54,56,191,194,54,247,190,194,54,162,190,194,54,56,190,194,54,185,189,194,54,37,189,194,54,124,188,194,54,191,187,194,54,237,186,194,
54,6,186,194,54,11,185,194,54,251,183,194,54,214,182,194,54,156,181,194,54,77,180,194,54,234,178,194,54,114,177,194,54,229,175,194,54,68,174,194,54,142,172,194,54,195,170,194,54,227,168,194,54,239,166,194,54,230,164,194,54,201,162,194,54,150,160,194,54,79,158,194,54,243,155,194,54,131,153,194,54,254,150,194,54,100,148,194,54,181,145,194,54,242,142,194,54,26,140,194,54,46,137,194,54,45,134,194,54,23,131,194,54,236,127,194,54,173,124,194,54,90,121,194,54,241,117,194,54,116,114,194,54,226,110,194,54,
60,107,194,54,129,103,194,54,177,99,194,54,205,95,194,54,213,91,194,54,199,87,194,54,165,83,194,54,110,79,194,54,35,75,194,54,195,70,194,54,79,66,194,54,198,61,194,54,40,57,194,54,118,52,194,54,176,47,194,54,212,42,194,54,229,37,194,54,224,32,194,54,199,27,194,54,154,22,194,54,88,17,194,54,1,12,194,54,150,6,194,54,22,1,194,54,130,251,193,54,218,245,193,54,29,240,193,54,75,234,193,54,101,228,193,54,106,222,193,54,91,216,193,54,55,210,193,54,255,203,193,54,178,197,193,54,81,191,193,54,220,184,193,54,
82,178,193,54,179,171,193,54,0,165,193,54,57,158,193,54,93,151,193,54,109,144,193,54,104,137,193,54,79,130,193,54,34,123,193,54,224,115,193,54,137,108,193,54,31,101,193,54,160,93,193,54,12,86,193,54,100,78,193,54,168,70,193,54,215,62,193,54,242,54,193,54,249,46,193,54,235,38,193,54,201,30,193,54,147,22,193,54,72,14,193,54,233,5,193,54,118,253,192,54,238,244,192,54,82,236,192,54,161,227,192,54,221,218,192,54,4,210,192,54,23,201,192,54,21,192,192,54,255,182,192,54,213,173,192,54,151,164,192,54,69,155,
192,54,222,145,192,54,99,136,192,54,211,126,192,54,48,117,192,54,120,107,192,54,172,97,192,54,204,87,192,54,216,77,192,54,207,67,192,54,178,57,192,54,129,47,192,54,60,37,192,54,227,26,192,54,118,16,192,54,244,5,192,54,94,251,191,54,180,240,191,54,246,229,191,54,36,219,191,54,62,208,191,54,68,197,191,54,53,186,191,54,19,175,191,54,220,163,191,54,145,152,191,54,50,141,191,54,191,129,191,54,56,118,191,54,157,106,191,54,238,94,191,54,43,83,191,54,84,71,191,54,105,59,191,54,106,47,191,54,87,35,191,54,
47,23,191,54,244,10,191,54,165,254,190,54,66,242,190,54,203,229,190,54,64,217,190,54,161,204,190,54,238,191,190,54,39,179,190,54,76,166,190,54,93,153,190,54,90,140,190,54,68,127,190,54,25,114,190,54,219,100,190,54,136,87,190,54,34,74,190,54,168,60,190,54,26,47,190,54,120,33,190,54,195,19,190,54,249,5,190,54,28,248,189,54,43,234,189,54,38,220,189,54,13,206,189,54,225,191,189,54,161,177,189,54,76,163,189,54,229,148,189,54,105,134,189,54,218,119,189,54,55,105,189,54,128,90,189,54,181,75,189,54,215,60,
189,54,229,45,189,54,223,30,189,54,198,15,189,54,153,0,189,54,88,241,188,54,4,226,188,54,156,210,188,54,32,195,188,54,145,179,188,54,238,163,188,54,55,148,188,54,109,132,188,54,143,116,188,54,158,100,188,54,153,84,188,54,128,68,188,54,84,52,188,54,20,36,188,54,193,19,188,54,90,3,188,54,224,242,187,54,82,226,187,54,177,209,187,54,252,192,187,54,52,176,187,54,88,159,187,54,105,142,187,54,102,125,187,54,80,108,187,54,38,91,187,54,233,73,187,54,153,56,187,54,53,39,187,54,189,21,187,54,51,4,187,54,149,
242,186,54,227,224,186,54,30,207,186,54,70,189,186,54,91,171,186,54,92,153,186,54,74,135,186,54,36,117,186,54,235,98,186,54,159,80,186,54,64,62,186,54,205,43,186,54,71,25,186,54,174,6,186,54,1,244,185,54,66,225,185,54,111,206,185,54,137,187,185,54,144,168,185,54,131,149,185,54,99,130,185,54,48,111,185,54,234,91,185,54,145,72,185,54,37,53,185,54,166,33,185,54,19,14,185,54,109,250,184,54,180,230,184,54,233,210,184,54,10,191,184,54,24,171,184,54,19,151,184,54,251,130,184,54,207,110,184,54,145,90,184,
54,64,70,184,54,220,49,184,54,101,29,184,54,218,8,184,54,61,244,183,54,141,223,183,54,202,202,183,54,244,181,183,54,11,161,183,54,16,140,183,54,1,119,183,54,223,97,183,54,171,76,183,54,99,55,183,54,9,34,183,54,156,12,183,54,28,247,182,54,138,225,182,54,228,203,182,54,44,182,182,54,97,160,182,54,131,138,182,54,146,116,182,54,143,94,182,54,120,72,182,54,80,50,182,54,20,28,182,54,198,5,182,54,101,239,181,54,241,216,181,54,107,194,181,54,209,171,181,54,38,149,181,54,103,126,181,54,151,103,181,54,179,
80,181,54,189,57,181,54,180,34,181,54,153,11,181,54,107,244,180,54,42,221,180,54,215,197,180,54,114,174,180,54,250,150,180,54,111,127,180,54,210,103,180,54,35,80,180,54,97,56,180,54,140,32,180,54,165,8,180,54,172,240,179,54,160,216,179,54,130,192,179,54,81,168,179,54,14,144,179,54,185,119,179,54,81,95,179,54,215,70,179,54,75,46,179,54,172,21,179,54,251,252,178,54,56,228,178,54,98,203,178,54,123,178,178,54,128,153,178,54,116,128,178,54,86,103,178,54,37,78,178,54,226,52,178,54,141,27,178,54,37,2,178,
54,172,232,177,54,32,207,177,54,130,181,177,54,210,155,177,54,16,130,177,54,60,104,177,54,86,78,177,54,93,52,177,54,83,26,177,54,54,0,177,54,8,230,176,54,199,203,176,54,117,177,176,54,16,151,176,54,154,124,176,54,17,98,176,54,119,71,176,54,202,44,176,54,12,18,176,54,60,247,175,54,90,220,175,54,102,193,175,54,96,166,175,54,72,139,175,54,30,112,175,54,227,84,175,54,150,57,175,54,54,30,175,54,198,2,175,54,67,231,174,54,174,203,174,54,8,176,174,54,80,148,174,54,135,120,174,54,171,92,174,54,190,64,174,
54,191,36,174,54,175,8,174,54,141,236,173,54,89,208,173,54,20,180,173,54,189,151,173,54,84,123,173,54,218,94,173,54,78,66,173,54,177,37,173,54,2,9,173,54,66,236,172,54,112,207,172,54,141,178,172,54,152,149,172,54,145,120,172,54,122,91,172,54,80,62,172,54,22,33,172,54,202,3,172,54,108,230,171,54,253,200,171,54,125,171,171,54,235,141,171,54,72,112,171,54,148,82,171,54,207,52,171,54,248,22,171,54,16,249,170,54,22,219,170,54,11,189,170,54,239,158,170,54,194,128,170,54,132,98,170,54,52,68,170,54,211,37,
170,54,98,7,170,54,222,232,169,54,74,202,169,54,165,171,169,54,238,140,169,54,39,110,169,54,78,79,169,54,101,48,169,54,106,17,169,54,94,242,168,54,65,211,168,54,20,180,168,54,213,148,168,54,133,117,168,54,36,86,168,54,179,54,168,54,48,23,168,54,157,247,167,54,248,215,167,54,67,184,167,54,125,152,167,54,166,120,167,54,190,88,167,54,198,56,167,54,188,24,167,54,162,248,166,54,119,216,166,54,59,184,166,54,239,151,166,54,146,119,166,54,36,87,166,54,165,54,166,54,22,22,166,54,118,245,165,54,198,212,165,
54,4,180,165,54,50,147,165,54,80,114,165,54,93,81,165,54,89,48,165,54,69,15,165,54,33,238,164,54,236,204,164,54,166,171,164,54,80,138,164,54,233,104,164,54,114,71,164,54,234,37,164,54,82,4,164,54,170,226,163,54,241,192,163,54,40,159,163,54,79,125,163,54,101,91,163,54,107,57,163,54,96,23,163,54,69,245,162,54,26,211,162,54,223,176,162,54,148,142,162,54,56,108,162,54,204,73,162,54,80,39,162,54,195,4,162,54,39,226,161,54,122,191,161,54,189,156,161,54,240,121,161,54,19,87,161,54,38,52,161,54,41,17,161,
54,28,238,160,54,255,202,160,54,209,167,160,54,148,132,160,54,71,97,160,54,234,61,160,54,124,26,160,54,255,246,159,54,114,211,159,54,214,175,159,54,41,140,159,54,108,104,159,54,160,68,159,54,195,32,159,54,215,252,158,54,219,216,158,54,208,180,158,54,180,144,158,54,137,108,158,54,78,72,158,54,3,36,158,54,169,255,157,54,63,219,157,54,198,182,157,54,60,146,157,54,163,109,157,54,251,72,157,54,67,36,157,54,123,255,156,54,164,218,156,54,189,181,156,54,199,144,156,54,193,107,156,54,172,70,156,54,135,33,
156,54,83,252,155,54,15,215,155,54,188,177,155,54,90,140,155,54,232,102,155,54,103,65,155,54,214,27,155,54,54,246,154,54,135,208,154,54,201,170,154,54,251,132,154,54,30,95,154,54,50,57,154,54,54,19,154,54,44,237,153,54,18,199,153,54,233,160,153,54,177,122,153,54,105,84,153,54,19,46,153,54,174,7,153,54,57,225,152,54,181,186,152,54,35,148,152,54,129,109,152,54,208,70,152,54,17,32,152,54,66,249,151,54,100,210,151,54,120,171,151,54,124,132,151,54,114,93,151,54,89,54,151,54,49,15,151,54,250,231,150,54,
180,192,150,54,95,153,150,54,252,113,150,54,138,74,150,54,9,35,150,54,121,251,149,54,219,211,149,54,46,172,149,54,114,132,149,54,168,92,149,54,207,52,149,54,231,12,149,54,241,228,148,54,236,188,148,54,217,148,148,54,183,108,148,54,135,68,148,54,72,28,148,54,250,243,147,54,158,203,147,54,52,163,147,54,187,122,147,54,52,82,147,54,158,41,147,54,250,0,147,54,72,216,146,54,135,175,146,54,184,134,146,54,219,93,146,54,239,52,146,54,245,11,146,54,237,226,145,54,214,185,145,54,178,144,145,54,127,103,145,54,
62,62,145,54,239,20,145,54,146,235,144,54,38,194,144,54,173,152,144,54,37,111,144,54,144,69,144,54,236,27,144,54,58,242,143,54,123,200,143,54,173,158,143,54,210,116,143,54,232,74,143,54,241,32,143,54,235,246,142,54,216,204,142,54,183,162,142,54,136,120,142,54,75,78,142,54,0,36,142,54,168,249,141,54,66,207,141,54,206,164,141,54,76,122,141,54,189,79,141,54,32,37,141,54,117,250,140,54,189,207,140,54,247,164,140,54,35,122,140,54,66,79,140,54,83,36,140,54,87,249,139,54,77,206,139,54,54,163,139,54,17,120,
139,54,223,76,139,54,159,33,139,54,81,246,138,54,247,202,138,54,143,159,138,54,25,116,138,54,151,72,138,54,6,29,138,54,105,241,137,54,190,197,137,54,6,154,137,54,65,110,137,54,110,66,137,54,143,22,137,54,162,234,136,54,168,190,136,54,160,146,136,54,140,102,136,54,107,58,136,54,60,14,136,54,0,226,135,54,184,181,135,54,98,137,135,54,255,92,135,54,143,48,135,54,18,4,135,54,137,215,134,54,242,170,134,54,78,126,134,54,158,81,134,54,225,36,134,54,22,248,133,54,63,203,133,54,92,158,133,54,107,113,133,54,
109,68,133,54,99,23,133,54,76,234,132,54,41,189,132,54,248,143,132,54,188,98,132,54,114,53,132,54,28,8,132,54,185,218,131,54,73,173,131,54,205,127,131,54,69,82,131,54,176,36,131,54,14,247,130,54,96,201,130,54,165,155,130,54,222,109,130,54,11,64,130,54,43,18,130,54,63,228,129,54,70,182,129,54,65,136,129,54,48,90,129,54,19,44,129,54,233,253,128,54,179,207,128,54,112,161,128,54,34,115,128,54,199,68,128,54,96,22,128,54,218,207,127,54,220,114,127,54,197,21,127,54,151,184,126,54,80,91,126,54,241,253,125,
54,122,160,125,54,235,66,125,54,68,229,124,54,133,135,124,54,174,41,124,54,191,203,123,54,184,109,123,54,154,15,123,54,100,177,122,54,23,83,122,54,177,244,121,54,52,150,121,54,160,55,121,54,244,216,120,54,49,122,120,54,86,27,120,54,99,188,119,54,90,93,119,54,57,254,118,54,1,159,118,54,178,63,118,54,75,224,117,54,206,128,117,54,57,33,117,54,141,193,116,54,202,97,116,54,241,1,116,54,0,162,115,54,249,65,115,54,219,225,114,54,165,129,114,54,90,33,114,54,247,192,113,54,126,96,113,54,238,255,112,54,72,
159,112,54,139,62,112,54,184,221,111,54,206,124,111,54,206,27,111,54,184,186,110,54,139,89,110,54,72,248,109,54,239,150,109,54,127,53,109,54,250,211,108,54,94,114,108,54,172,16,108,54,229,174,107,54,7,77,107,54,19,235,106,54,10,137,106,54,235,38,106,54,182,196,105,54,107,98,105,54,10,0,105,54,148,157,104,54,8,59,104,54,103,216,103,54,176,117,103,54,228,18,103,54,2,176,102,54,11,77,102,54,255,233,101,54,221,134,101,54,166,35,101,54,90,192,100,54,248,92,100,54,130,249,99,54,246,149,99,54,86,50,99,54,
160,206,98,54,213,106,98,54,246,6,98,54,2,163,97,54,249,62,97,54,219,218,96,54,168,118,96,54,97,18,96,54,5,174,95,54,148,73,95,54,15,229,94,54,118,128,94,54,200,27,94,54,5,183,93,54,46,82,93,54,67,237,92,54,68,136,92,54,48,35,92,54,8,190,91,54,204,88,91,54,124,243,90,54,24,142,90,54,160,40,90,54,20,195,89,54,116,93,89,54,192,247,88,54,248,145,88,54,28,44,88,54,45,198,87,54,42,96,87,54,19,250,86,54,233,147,86,54,171,45,86,54,90,199,85,54,245,96,85,54,125,250,84,54,242,147,84,54,83,45,84,54,160,198,
83,54,219,95,83,54,2,249,82,54,23,146,82,54,24,43,82,54,6,196,81,54,225,92,81,54,169,245,80,54,94,142,80,54,0,39,80,54,144,191,79,54,12,88,79,54,118,240,78,54,205,136,78,54,18,33,78,54,68,185,77,54,99,81,77,54,112,233,76,54,106,129,76,54,82,25,76,54,40,177,75,54,235,72,75,54,156,224,74,54,58,120,74,54,199,15,74,54,65,167,73,54,170,62,73,54,0,214,72,54,68,109,72,54,118,4,72,54,150,155,71,54,165,50,71,54,162,201,70,54,140,96,70,54,101,247,69,54,45,142,69,54,227,36,69,54,135,187,68,54,25,82,68,54,154,
232,67,54,10,127,67,54,104,21,67,54,181,171,66,54,241,65,66,54,27,216,65,54,52,110,65,54,60,4,65,54,51,154,64,54,24,48,64,54,237,197,63,54,176,91,63,54,99,241,62,54,5,135,62,54,150,28,62,54,22,178,61,54,133,71,61,54,228,220,60,54,50,114,60,54,111,7,60,54,156,156,59,54,184,49,59,54,196,198,58,54,191,91,58,54,170,240,57,54,133,133,57,54,79,26,57,54,9,175,56,54,179,67,56,54,76,216,55,54,214,108,55,54,79,1,55,54,185,149,54,54,18,42,54,54,92,190,53,54,150,82,53,54,192,230,52,54,218,122,52,54,228,14,52,
54,223,162,51,54,202,54,51,54,165,202,50,54,113,94,50,54,46,242,49,54,219,133,49,54,120,25,49,54,7,173,48,54,134,64,48,54,245,211,47,54,86,103,47,54,167,250,46,54,233,141,46,54,28,33,46,54,64,180,45,54,85,71,45,54,92,218,44,54,83,109,44,54,59,0,44,54,21,147,43,54,224,37,43,54,156,184,42,54,74,75,42,54,233,221,41,54,121,112,41,54,251,2,41,54,111,149,40,54,212,39,40,54,42,186,39,54,115,76,39,54,173,222,38,54,217,112,38,54,246,2,38,54,6,149,37,54,8,39,37,54,251,184,36,54,225,74,36,54,184,220,35,54,130,
110,35,54,62,0,35,54,236,145,34,54,140,35,34,54,31,181,33,54,164,70,33,54,27,216,32,54,133,105,32,54,226,250,31,54,49,140,31,54,114,29,31,54,166,174,30,54,205,63,30,54,231,208,29,54,243,97,29,54,242,242,28,54,228,131,28,54,201,20,28,54,161,165,27,54,108,54,27,54,42,199,26,54,220,87,26,54,128,232,25,54,24,121,25,54,162,9,25,54,33,154,24,54,146,42,24,54,247,186,23,54,80,75,23,54,155,219,22,54,219,107,22,54,14,252,21,54,53,140,21,54,79,28,21,54,93,172,20,54,95,60,20,54,85,204,19,54,63,92,19,54,29,236,
18,54,238,123,18,54,180,11,18,54,110,155,17,54,28,43,17,54,190,186,16,54,84,74,16,54,223,217,15,54,94,105,15,54,209,248,14,54,57,136,14,54,149,23,14,54,229,166,13,54,43,54,13,54,101,197,12,54,147,84,12,54,183,227,11,54,207,114,11,54,220,1,11,54,221,144,10,54,212,31,10,54,192,174,9,54,160,61,9,54,118,204,8,54,65,91,8,54,0,234,7,54,182,120,7,54,96,7,7,54,0,150,6,54,149,36,6,54,31,179,5,54,159,65,5,54,20,208,4,54,127,94,4,54,224,236,3,54,54,123,3,54,130,9,3,54,195,151,2,54,251,37,2,54,40,180,1,54,75,
66,1,54,100,208,0,54,115,94,0,54,240,216,255,53,230,244,254,53,200,16,254,53,151,44,253,53,82,72,252,53,250,99,251,53,142,127,250,53,16,155,249,53,126,182,248,53,217,209,247,53,33,237,246,53,86,8,246,53,120,35,245,53,136,62,244,53,133,89,243,53,111,116,242,53,72,143,241,53,14,170,240,53,194,196,239,53,99,223,238,53,243,249,237,53,113,20,237,53,221,46,236,53,55,73,235,53,128,99,234,53,183,125,233,53,221,151,232,53,242,177,231,53,245,203,230,53,232,229,229,53,201,255,228,53,153,25,228,53,89,51,227,
53,8,77,226,53,166,102,225,53,52,128,224,53,177,153,223,53,30,179,222,53,123,204,221,53,200,229,220,53,4,255,219,53,49,24,219,53,78,49,218,53,91,74,217,53,89,99,216,53,71,124,215,53,37,149,214,53,244,173,213,53,181,198,212,53,101,223,211,53,7,248,210,53,154,16,210,53,30,41,209,53,148,65,208,53,250,89,207,53,83,114,206,53,156,138,205,53,216,162,204,53,5,187,203,53,36,211,202,53,53,235,201,53,55,3,201,53,45,27,200,53,20,51,199,53,238,74,198,53,186,98,197,53,120,122,196,53,42,146,195,53,206,169,194,
53,101,193,193,53,238,216,192,53,107,240,191,53,219,7,191,53,62,31,190,53,149,54,189,53,223,77,188,53,28,101,187,53,77,124,186,53,114,147,185,53,139,170,184,53,151,193,183,53,152,216,182,53,141,239,181,53,118,6,181,53,83,29,180,53,37,52,179,53,235,74,178,53,166,97,177,53,85,120,176,53,249,142,175,53,146,165,174,53,33,188,173,53,164,210,172,53,28,233,171,53,138,255,170,53,238,21,170,53,70,44,169,53,149,66,168,53,217,88,167,53,18,111,166,53,66,133,165,53,104,155,164,53,132,177,163,53,150,199,162,53,
158,221,161,53,156,243,160,53,146,9,160,53,125,31,159,53,96,53,158,53,57,75,157,53,9,97,156,53,208,118,155,53,142,140,154,53,68,162,153,53,240,183,152,53,148,205,151,53,48,227,150,53,195,248,149,53,78,14,149,53,208,35,148,53,74,57,147,53,189,78,146,53,39,100,145,53,138,121,144,53,229,142,143,53,56,164,142,53,132,185,141,53,200,206,140,53,5,228,139,53,58,249,138,53,105,14,138,53,144,35,137,53,177,56,136,53,203,77,135,53,222,98,134,53,234,119,133,53,240,140,132,53,239,161,131,53,232,182,130,53,219,
203,129,53,199,224,128,53,92,235,127,53,29,21,126,53,210,62,124,53,124,104,122,53,27,146,120,53,174,187,118,53,55,229,116,53,181,14,115,53,40,56,113,53,145,97,111,53,240,138,109,53,69,180,107,53,144,221,105,53,210,6,104,53,10,48,102,53,58,89,100,53,96,130,98,53,126,171,96,53,147,212,94,53,159,253,92,53,164,38,91,53,160,79,89,53,149,120,87,53,130,161,85,53,104,202,83,53,71,243,81,53,31,28,80,53,240,68,78,53,186,109,76,53,126,150,74,53,60,191,72,53,244,231,70,53,166,16,69,53,82,57,67,53,249,97,65,53,
155,138,63,53,56,179,61,53,208,219,59,53,100,4,58,53,243,44,56,53,126,85,54,53,5,126,52,53,136,166,50,53,8,207,48,53,132,247,46,53,253,31,45,53,115,72,43,53,230,112,41,53,86,153,39,53,196,193,37,53,48,234,35,53,153,18,34,53,1,59,32,53,104,99,30,53,204,139,28,53,48,180,26,53,146,220,24,53,244,4,23,53,85,45,21,53,181,85,19,53,22,126,17,53,118,166,15,53,214,206,13,53,55,247,11,53,152,31,10,53,250,71,8,53,93,112,6,53,193,152,4,53,38,193,2,53,141,233,0,53,234,35,254,52,191,116,250,52,152,197,246,52,117,
22,243,52,87,103,239,52,63,184,235,52,45,9,232,52,32,90,228,52,27,171,224,52,28,252,220,52,36,77,217,52,53,158,213,52,77,239,209,52,110,64,206,52,152,145,202,52,203,226,198,52,8,52,195,52,78,133,191,52,160,214,187,52,252,39,184,52,99,121,180,52,214,202,176,52,85,28,173,52,225,109,169,52,121,191,165,52,31,17,162,52,210,98,158,52,147,180,154,52,99,6,151,52,65,88,147,52,47,170,143,52,44,252,139,52,57,78,136,52,86,160,132,52,132,242,128,52,135,137,122,52,40,46,115,52,237,210,107,52,215,119,100,52,230,
28,93,52,28,194,85,52,120,103,78,52,252,12,71,52,169,178,63,52,126,88,56,52,126,254,48,52,169,164,41,52,255,74,34,52,130,241,26,52,49,152,19,52,15,63,12,52,28,230,4,52,175,26,251,51,136,105,236,51,194,184,221,51,97,8,207,51,100,88,192,51,206,168,177,51,161,249,162,51,222,74,148,51,134,156,133,51,54,221,109,51,61,130,80,51,36,40,51,51,239,206,21,51,64,237,240,50,118,62,182,50,9,35,119,50,230,204,1,50,224,168,71,48,228,167,209,177,142,30,94,178,157,178,169,178,244,83,228,178,163,121,15,179,71,200,44,
179,226,21,74,179,114,98,103,179,249,86,130,179,49,252,144,179,222,160,159,179,255,68,174,179,147,232,188,179,151,139,203,179,11,46,218,179,237,207,232,179,58,113,247,179,250,8,3,180,10,89,10,180,207,168,17,180,71,248,24,180,113,71,32,180,77,150,39,180,217,228,46,180,21,51,54,180,1,129,61,180,154,206,68,180,226,27,76,180,214,104,83,180,119,181,90,180,195,1,98,180,186,77,105,180,90,153,112,180,163,228,119,180,149,47,127,180,23,61,131,180,55,226,134,180,42,135,138,180,239,43,142,180,135,208,145,180,
241,116,149,180,44,25,153,180,56,189,156,180,21,97,160,180,194,4,164,180,63,168,167,180,140,75,171,180,168,238,174,180,146,145,178,180,75,52,182,180,210,214,185,180,39,121,189,180,73,27,193,180,55,189,196,180,242,94,200,180,122,0,204,180,205,161,207,180,235,66,211,180,213,227,214,180,137,132,218,180,7,37,222,180,79,197,225,180,96,101,229,180,59,5,233,180,222,164,236,180,73,68,240,180,125,227,243,180,119,130,247,180,58,33,251,180,194,191,254,180,9,47,1,181,20,254,2,181,1,205,4,181,209,155,6,181,132,
106,8,181,25,57,10,181,143,7,12,181,232,213,13,181,35,164,15,181,63,114,17,181,60,64,19,181,26,14,21,181,218,219,22,181,122,169,24,181,250,118,26,181,91,68,28,181,156,17,30,181,190,222,31,181,190,171,33,181,159,120,35,181,95,69,37,181,254,17,39,181,125,222,40,181,218,170,42,181,22,119,44,181,48,67,46,181,41,15,48,181,255,218,49,181,180,166,51,181,70,114,53,181,182,61,55,181,4,9,57,181,46,212,58,181,54,159,60,181,26,106,62,181,219,52,64,181,120,255,65,181,242,201,67,181,71,148,69,181,121,94,71,181,
134,40,73,181,110,242,74,181,50,188,76,181,210,133,78,181,76,79,80,181,160,24,82,181,208,225,83,181,217,170,85,181,189,115,87,181,123,60,89,181,19,5,91,181,132,205,92,181,207,149,94,181,243,93,96,181,240,37,98,181,198,237,99,181,117,181,101,181,253,124,103,181,92,68,105,181,148,11,107,181,164,210,108,181,139,153,110,181,74,96,112,181,225,38,114,181,79,237,115,181,148,179,117,181,175,121,119,181,162,63,121,181,107,5,123,181,10,203,124,181,127,144,126,181,229,42,128,181,118,13,129,181,241,239,129,181,
87,210,130,181,168,180,131,181,227,150,132,181,8,121,133,181,24,91,134,181,18,61,135,181,246,30,136,181,197,0,137,181,125,226,137,181,31,196,138,181,171,165,139,181,33,135,140,181,128,104,141,181,200,73,142,181,251,42,143,181,22,12,144,181,27,237,144,181,9,206,145,181,223,174,146,181,159,143,147,181,72,112,148,181,218,80,149,181,84,49,150,181,183,17,151,181,2,242,151,181,54,210,152,181,82,178,153,181,86,146,154,181,66,114,155,181,23,82,156,181,211,49,157,181,119,17,158,181,4,241,158,181,119,208,159,
181,211,175,160,181,22,143,161,181,64,110,162,181,82,77,163,181,75,44,164,181,43,11,165,181,242,233,165,181,160,200,166,181,53,167,167,181,177,133,168,181,19,100,169,181,92,66,170,181,140,32,171,181,162,254,171,181,159,220,172,181,129,186,173,181,74,152,174,181,249,117,175,181,142,83,176,181,9,49,177,181,106,14,178,181,176,235,178,181,220,200,179,181,238,165,180,181,229,130,181,181,193,95,182,181,131,60,183,181,42,25,184,181,182,245,184,181,39,210,185,181,125,174,186,181,183,138,187,181,215,102,188,
181,219,66,189,181,196,30,190,181,145,250,190,181,67,214,191,181,217,177,192,181,83,141,193,181,177,104,194,181,243,67,195,181,26,31,196,181,36,250,196,181,18,213,197,181,227,175,198,181,153,138,199,181,49,101,200,181,174,63,201,181,13,26,202,181,80,244,202,181,118,206,203,181,127,168,204,181,107,130,205,181,58,92,206,181,236,53,207,181,128,15,208,181,247,232,208,181,81,194,209,181,141,155,210,181,172,116,211,181,173,77,212,181,144,38,213,181,85,255,213,181,252,215,214,181,133,176,215,181,240,136,
216,181,61,97,217,181,108,57,218,181,124,17,219,181,110,233,219,181,65,193,220,181,245,152,221,181,139,112,222,181,2,72,223,181,90,31,224,181,147,246,224,181,172,205,225,181,167,164,226,181,131,123,227,181,63,82,228,181,219,40,229,181,89,255,229,181,182,213,230,181,244,171,231,181,18,130,232,181,17,88,233,181,239,45,234,181,173,3,235,181,76,217,235,181,202,174,236,181,39,132,237,181,101,89,238,181,130,46,239,181,126,3,240,181,90,216,240,181,21,173,241,181,175,129,242,181,41,86,243,181,129,42,244,
181,185,254,244,181,207,210,245,181,196,166,246,181,152,122,247,181,75,78,248,181,220,33,249,181,75,245,249,181,153,200,250,181,197,155,251,181,208,110,252,181,184,65,253,181,127,20,254,181,35,231,254,181,165,185,255,181,3,70,0,182,34,175,0,182,47,24,1,182,44,129,1,182,23,234,1,182,241,82,2,182,186,187,2,182,113,36,3,182,22,141,3,182,171,245,3,182,45,94,4,182,159,198,4,182,254,46,5,182,76,151,5,182,136,255,5,182,179,103,6,182,203,207,6,182,210,55,7,182,199,159,7,182,171,7,8,182,124,111,8,182,59,215,
8,182,232,62,9,182,132,166,9,182,13,14,10,182,132,117,10,182,232,220,10,182,59,68,11,182,123,171,11,182,169,18,12,182,197,121,12,182,206,224,12,182,197,71,13,182,169,174,13,182,123,21,14,182,59,124,14,182,231,226,14,182,130,73,15,182,9,176,15,182,126,22,16,182,224,124,16,182,47,227,16,182,107,73,17,182,149,175,17,182,172,21,18,182,175,123,18,182,160,225,18,182,126,71,19,182,72,173,19,182,0,19,20,182,164,120,20,182,53,222,20,182,179,67,21,182,30,169,21,182,117,14,22,182,185,115,22,182,234,216,22,182,
7,62,23,182,17,163,23,182,7,8,24,182,234,108,24,182,185,209,24,182,116,54,25,182,28,155,25,182,176,255,25,182,48,100,26,182,157,200,26,182,246,44,27,182,59,145,27,182,108,245,27,182,137,89,28,182,146,189,28,182,135,33,29,182,104,133,29,182,53,233,29,182,237,76,30,182,146,176,30,182,34,20,31,182,159,119,31,182,6,219,31,182,90,62,32,182,153,161,32,182,196,4,33,182,218,103,33,182,220,202,33,182,201,45,34,182,162,144,34,182,102,243,34,182,21,86,35,182,176,184,35,182,54,27,36,182,168,125,36,182,4,224,
36,182,76,66,37,182,127,164,37,182,156,6,38,182,165,104,38,182,153,202,38,182,120,44,39,182,66,142,39,182,247,239,39,182,151,81,40,182,33,179,40,182,151,20,41,182,247,117,41,182,65,215,41,182,119,56,42,182,151,153,42,182,161,250,42,182,151,91,43,182,118,188,43,182,65,29,44,182,245,125,44,182,148,222,44,182,30,63,45,182,145,159,45,182,240,255,45,182,56,96,46,182,106,192,46,182,135,32,47,182,142,128,47,182,127,224,47,182,90,64,48,182,31,160,48,182,206,255,48,182,103,95,49,182,234,190,49,182,87,30,50,
182,174,125,50,182,239,220,50,182,25,60,51,182,45,155,51,182,43,250,51,182,18,89,52,182,227,183,52,182,158,22,53,182,66,117,53,182,208,211,53,182,71,50,54,182,168,144,54,182,242,238,54,182,37,77,55,182,66,171,55,182,72,9,56,182,55,103,56,182,16,197,56,182,210,34,57,182,125,128,57,182,17,222,57,182,142,59,58,182,244,152,58,182,67,246,58,182,123,83,59,182,157,176,59,182,167,13,60,182,153,106,60,182,117,199,60,182,58,36,61,182,231,128,61,182,125,221,61,182,252,57,62,182,99,150,62,182,179,242,62,182,
235,78,63,182,13,171,63,182,22,7,64,182,8,99,64,182,227,190,64,182,166,26,65,182,81,118,65,182,229,209,65,182,97,45,66,182,197,136,66,182,17,228,66,182,70,63,67,182,99,154,67,182,104,245,67,182,85,80,68,182,42,171,68,182,231,5,69,182,140,96,69,182,25,187,69,182,142,21,70,182,235,111,70,182,47,202,70,182,92,36,71,182,112,126,71,182,108,216,71,182,80,50,72,182,27,140,72,182,206,229,72,182,105,63,73,182,235,152,73,182,85,242,73,182,166,75,74,182,223,164,74,182,255,253,74,182,6,87,75,182,245,175,75,182,
204,8,76,182,137,97,76,182,46,186,76,182,186,18,77,182,45,107,77,182,136,195,77,182,201,27,78,182,242,115,78,182,2,204,78,182,249,35,79,182,214,123,79,182,155,211,79,182,71,43,80,182,217,130,80,182,83,218,80,182,179,49,81,182,250,136,81,182,40,224,81,182,60,55,82,182,55,142,82,182,25,229,82,182,226,59,83,182,145,146,83,182,39,233,83,182,163,63,84,182,6,150,84,182,79,236,84,182,126,66,85,182,148,152,85,182,145,238,85,182,116,68,86,182,61,154,86,182,236,239,86,182,129,69,87,182,253,154,87,182,95,240,
87,182,167,69,88,182,213,154,88,182,234,239,88,182,228,68,89,182,196,153,89,182,139,238,89,182,55,67,90,182,201,151,90,182,65,236,90,182,159,64,91,182,227,148,91,182,12,233,91,182,28,61,92,182,17,145,92,182,235,228,92,182,172,56,93,182,82,140,93,182,221,223,93,182,79,51,94,182,165,134,94,182,226,217,94,182,3,45,95,182,10,128,95,182,247,210,95,182,201,37,96,182,128,120,96,182,29,203,96,182,159,29,97,182,6,112,97,182,82,194,97,182,132,20,98,182,155,102,98,182,150,184,98,182,119,10,99,182,61,92,99,182,
233,173,99,182,121,255,99,182,238,80,100,182,72,162,100,182,135,243,100,182,171,68,101,182,179,149,101,182,161,230,101,182,115,55,102,182,42,136,102,182,198,216,102,182,71,41,103,182,172,121,103,182,246,201,103,182,36,26,104,182,55,106,104,182,47,186,104,182,11,10,105,182,204,89,105,182,113,169,105,182,250,248,105,182,104,72,106,182,187,151,106,182,242,230,106,182,13,54,107,182,12,133,107,182,239,211,107,182,183,34,108,182,99,113,108,182,244,191,108,182,104,14,109,182,192,92,109,182,253,170,109,182,
30,249,109,182,34,71,110,182,11,149,110,182,215,226,110,182,136,48,111,182,28,126,111,182,149,203,111,182,241,24,112,182,49,102,112,182,85,179,112,182,92,0,113,182,72,77,113,182,23,154,113,182,202,230,113,182,96,51,114,182,218,127,114,182,56,204,114,182,121,24,115,182,158,100,115,182,166,176,115,182,146,252,115,182,97,72,116,182,19,148,116,182,169,223,116,182,35,43,117,182,128,118,117,182,192,193,117,182,227,12,118,182,234,87,118,182,212,162,118,182,161,237,118,182,81,56,119,182,228,130,119,182,91,
205,119,182,181,23,120,182,241,97,120,182,17,172,120,182,20,246,120,182,250,63,121,182,194,137,121,182,110,211,121,182,253,28,122,182,110,102,122,182,194,175,122,182,250,248,122,182,19,66,123,182,16,139,123,182,240,211,123,182,178,28,124,182,87,101,124,182,222,173,124,182,73,246,124,182,149,62,125,182,197,134,125,182,215,206,125,182,203,22,126,182,162,94,126,182,92,166,126,182,248,237,126,182,118,53,127,182,215,124,127,182,26,196,127,182,160,5,128,182,36,41,128,182,153,76,128,182,255,111,128,182,
87,147,128,182,159,182,128,182,217,217,128,182,3,253,128,182,31,32,129,182,44,67,129,182,42,102,129,182,25,137,129,182,248,171,129,182,201,206,129,182,139,241,129,182,62,20,130,182,226,54,130,182,119,89,130,182,253,123,130,182,115,158,130,182,219,192,130,182,52,227,130,182,125,5,131,182,183,39,131,182,227,73,131,182,255,107,131,182,12,142,131,182,9,176,131,182,248,209,131,182,216,243,131,182,168,21,132,182,105,55,132,182,26,89,132,182,189,122,132,182,80,156,132,182,212,189,132,182,73,223,132,182,
175,0,133,182,5,34,133,182,76,67,133,182,131,100,133,182,171,133,133,182,196,166,133,182,206,199,133,182,200,232,133,182,179,9,134,182,142,42,134,182,90,75,134,182,23,108,134,182,196,140,134,182,98,173,134,182,240,205,134,182,111,238,134,182,222,14,135,182,62,47,135,182,142,79,135,182,207,111,135,182,0,144,135,182,34,176,135,182,53,208,135,182,55,240,135,182,42,16,136,182,14,48,136,182,226,79,136,182,166,111,136,182,91,143,136,182,0,175,136,182,150,206,136,182,28,238,136,182,146,13,137,182,249,44,
137,182,79,76,137,182,151,107,137,182,206,138,137,182,246,169,137,182,14,201,137,182,22,232,137,182,15,7,138,182,248,37,138,182,209,68,138,182,154,99,138,182,84,130,138,182,254,160,138,182,152,191,138,182,34,222,138,182,156,252,138,182,6,27,139,182,97,57,139,182,172,87,139,182,231,117,139,182,18,148,139,182,45,178,139,182,56,208,139,182,51,238,139,182,31,12,140,182,250,41,140,182,198,71,140,182,129,101,140,182,45,131,140,182,200,160,140,182,84,190,140,182,208,219,140,182,59,249,140,182,151,22,141,
182,226,51,141,182,30,81,141,182,74,110,141,182,101,139,141,182,112,168,141,182,108,197,141,182,87,226,141,182,50,255,141,182,253,27,142,182,184,56,142,182,99,85,142,182,253,113,142,182,136,142,142,182,2,171,142,182,108,199,142,182,198,227,142,182,16,0,143,182,74,28,143,182,115,56,143,182,140,84,143,182,149,112,143,182,142,140,143,182,119,168,143,182,79,196,143,182,23,224,143,182,207,251,143,182,118,23,144,182,13,51,144,182,148,78,144,182,10,106,144,182,113,133,144,182,199,160,144,182,12,188,144,
182,65,215,144,182,102,242,144,182,123,13,145,182,127,40,145,182,115,67,145,182,86,94,145,182,41,121,145,182,235,147,145,182,157,174,145,182,63,201,145,182,208,227,145,182,81,254,145,182,194,24,146,182,33,51,146,182,113,77,146,182,176,103,146,182,222,129,146,182,252,155,146,182,10,182,146,182,6,208,146,182,243,233,146,182,207,3,147,182,154,29,147,182,85,55,147,182,255,80,147,182,153,106,147,182,34,132,147,182,154,157,147,182,2,183,147,182,89,208,147,182,160,233,147,182,214,2,148,182,251,27,148,182,
16,53,148,182,20,78,148,182,8,103,148,182,234,127,148,182,189,152,148,182,126,177,148,182,47,202,148,182,207,226,148,182,94,251,148,182,221,19,149,182,75,44,149,182,168,68,149,182,245,92,149,182,48,117,149,182,91,141,149,182,118,165,149,182,127,189,149,182,120,213,149,182,96,237,149,182,55,5,150,182,253,28,150,182,179,52,150,182,87,76,150,182,235,99,150,182,110,123,150,182,225,146,150,182,66,170,150,182,147,193,150,182,210,216,150,182,1,240,150,182,31,7,151,182,44,30,151,182,40,53,151,182,20,76,151,
182,238,98,151,182,183,121,151,182,112,144,151,182,24,167,151,182,174,189,151,182,52,212,151,182,169,234,151,182,13,1,152,182,96,23,152,182,162,45,152,182,210,67,152,182,242,89,152,182,1,112,152,182,255,133,152,182,236,155,152,182,200,177,152,182,147,199,152,182,77,221,152,182,246,242,152,182,142,8,153,182,21,30,153,182,139,51,153,182,239,72,153,182,67,94,153,182,133,115,153,182,183,136,153,182,215,157,153,182,231,178,153,182,229,199,153,182,210,220,153,182,174,241,153,182,121,6,154,182,51,27,154,
182,219,47,154,182,115,68,154,182,249,88,154,182,110,109,154,182,210,129,154,182,37,150,154,182,103,170,154,182,151,190,154,182,183,210,154,182,197,230,154,182,194,250,154,182,174,14,155,182,136,34,155,182,81,54,155,182,10,74,155,182,177,93,155,182,70,113,155,182,203,132,155,182,62,152,155,182,160,171,155,182,241,190,155,182,48,210,155,182,94,229,155,182,123,248,155,182,135,11,156,182,129,30,156,182,106,49,156,182,66,68,156,182,8,87,156,182,189,105,156,182,97,124,156,182,244,142,156,182,117,161,156,
182,229,179,156,182,68,198,156,182,145,216,156,182,205,234,156,182,247,252,156,182,16,15,157,182,24,33,157,182,15,51,157,182,244,68,157,182,199,86,157,182,138,104,157,182,59,122,157,182,218,139,157,182,104,157,157,182,229,174,157,182,81,192,157,182,170,209,157,182,243,226,157,182],"i8",4,y.a+1187840);
Q([42,244,157,182,80,5,158,182,100,22,158,182,103,39,158,182,88,56,158,182,56,73,158,182,7,90,158,182,196,106,158,182,111,123,158,182,9,140,158,182,146,156,158,182,9,173,158,182,111,189,158,182,195,205,158,182,6,222,158,182,55,238,158,182,87,254,158,182,101,14,159,182,98,30,159,182,77,46,159,182,39,62,159,182,239,77,159,182,165,93,159,182,75,109,159,182,222,124,159,182,96,140,159,182,209,155,159,182,48,171,159,182,125,186,159,182,185,201,159,182,227,216,159,182,252,231,159,182,3,247,159,182,249,5,
160,182,221,20,160,182,176,35,160,182,112,50,160,182,32,65,160,182,190,79,160,182,74,94,160,182,196,108,160,182,45,123,160,182,133,137,160,182,202,151,160,182,254,165,160,182,33,180,160,182,50,194,160,182,49,208,160,182,31,222,160,182,251,235,160,182,197,249,160,182,126,7,161,182,37,21,161,182,187,34,161,182,63,48,161,182,177,61,161,182,17,75,161,182,96,88,161,182,157,101,161,182,201,114,161,182,227,127,161,182,235,140,161,182,226,153,161,182,199,166,161,182,154,179,161,182,91,192,161,182,11,205,
161,182,169,217,161,182,54,230,161,182,177,242,161,182,26,255,161,182,113,11,162,182,183,23,162,182,235,35,162,182,13,48,162,182,30,60,162,182,28,72,162,182,10,84,162,182,229,95,162,182,175,107,162,182,103,119,162,182,13,131,162,182,161,142,162,182,36,154,162,182,149,165,162,182,245,176,162,182,66,188,162,182,126,199,162,182,168,210,162,182,193,221,162,182,199,232,162,182,188,243,162,182,159,254,162,182,112,9,163,182,48,20,163,182,222,30,163,182,122,41,163,182,4,52,163,182,125,62,163,182,228,72,163,
182,57,83,163,182,124,93,163,182,173,103,163,182,205,113,163,182,219,123,163,182,215,133,163,182,193,143,163,182,154,153,163,182,97,163,163,182,22,173,163,182,185,182,163,182,75,192,163,182,202,201,163,182,56,211,163,182,148,220,163,182,222,229,163,182,23,239,163,182,61,248,163,182,82,1,164,182,85,10,164,182,71,19,164,182,38,28,164,182,244,36,164,182,175,45,164,182,89,54,164,182,242,62,164,182,120,71,164,182,237,79,164,182,79,88,164,182,160,96,164,182,224,104,164,182,13,113,164,182,40,121,164,182,
50,129,164,182,42,137,164,182,16,145,164,182,228,152,164,182,167,160,164,182,87,168,164,182,246,175,164,182,131,183,164,182,254,190,164,182,103,198,164,182,190,205,164,182,4,213,164,182,56,220,164,182,90,227,164,182,106,234,164,182,104,241,164,182,85,248,164,182,47,255,164,182,248,5,165,182,175,12,165,182,84,19,165,182,231,25,165,182,105,32,165,182,216,38,165,182,54,45,165,182,130,51,165,182,188,57,165,182,228,63,165,182,251,69,165,182,255,75,165,182,242,81,165,182,211,87,165,182,162,93,165,182,95,
99,165,182,10,105,165,182,164,110,165,182,44,116,165,182,161,121,165,182,5,127,165,182,88,132,165,182,152,137,165,182,198,142,165,182,227,147,165,182,238,152,165,182,231,157,165,182,206,162,165,182,163,167,165,182,103,172,165,182,24,177,165,182,184,181,165,182,70,186,165,182,194,190,165,182,44,195,165,182,133,199,165,182,203,203,165,182,0,208,165,182,35,212,165,182,52,216,165,182,51,220,165,182,33,224,165,182,252,227,165,182,198,231,165,182,126,235,165,182,36,239,165,182,185,242,165,182,59,246,165,
182,172,249,165,182,10,253,165,182,87,0,166,182,147,3,166,182,188,6,166,182,211,9,166,182,217,12,166,182,205,15,166,182,175,18,166,182,127,21,166,182,62,24,166,182,234,26,166,182,133,29,166,182,14,32,166,182,133,34,166,182,234,36,166,182,62,39,166,182,128,41,166,182,176,43,166,182,206,45,166,182,218,47,166,182,213,49,166,182,189,51,166,182,148,53,166,182,89,55,166,182,13,57,166,182,174,58,166,182,62,60,166,182,188,61,166,182,40,63,166,182,130,64,166,182,203,65,166,182,2,67,166,182,39,68,166,182,58,
69,166,182,59,70,166,182,43,71,166,182,9,72,166,182,213,72,166,182,143,73,166,182,56,74,166,182,207,74,166,182,84,75,166,182,199,75,166,182,41,76,166,182,120,76,166,182,182,76,166,182,227,76,166,182,253,76,166,182,6,77,166,182,253,76,166,182,226,76,166,182,182,76,166,182,119,76,166,182,39,76,166,182,198,75,166,182,82,75,166,182,205,74,166,182,54,74,166,182,141,73,166,182,211,72,166,182,7,72,166,182,41,71,166,182,58,70,166,182,57,69,166,182,38,68,166,182,1,67,166,182,203,65,166,182,131,64,166,182,
41,63,166,182,189,61,166,182,64,60,166,182,177,58,166,182,17,57,166,182,95,55,166,182,155,53,166,182,197,51,166,182,222,49,166,182,229,47,166,182,219,45,166,182,190,43,166,182,144,41,166,182,81,39,166,182,0,37,166,182,157,34,166,182,40,32,166,182,162,29,166,182,10,27,166,182,97,24,166,182,166,21,166,182,217,18,166,182,251,15,166,182,11,13,166,182,9,10,166,182,246,6,166,182,209,3,166,182,155,0,166,182,83,253,165,182,249,249,165,182,142,246,165,182,17,243,165,182,130,239,165,182,226,235,165,182,49,
232,165,182,110,228,165,182,153,224,165,182,178,220,165,182,186,216,165,182,177,212,165,182,150,208,165,182,105,204,165,182,43,200,165,182,219,195,165,182,122,191,165,182,7,187,165,182,131,182,165,182,237,177,165,182,70,173,165,182,141,168,165,182,194,163,165,182,230,158,165,182,249,153,165,182,250,148,165,182,233,143,165,182,199,138,165,182,148,133,165,182,79,128,165,182,248,122,165,182,144,117,165,182,23,112,165,182,140,106,165,182,240,100,165,182,66,95,165,182,131,89,165,182,178,83,165,182,208,
77,165,182,220,71,165,182,215,65,165,182,192,59,165,182,152,53,165,182,95,47,165,182,20,41,165,182,184,34,165,182,74,28,165,182,203,21,165,182,59,15,165,182,153,8,165,182,230,1,165,182,33,251,164,182,75,244,164,182,100,237,164,182,107,230,164,182,97,223,164,182,69,216,164,182,25,209,164,182,218,201,164,182,139,194,164,182,42,187,164,182,184,179,164,182,52,172,164,182,159,164,164,182,249,156,164,182,66,149,164,182,121,141,164,182,159,133,164,182,180,125,164,182,183,117,164,182,169,109,164,182,138,
101,164,182,89,93,164,182,23,85,164,182,196,76,164,182,96,68,164,182,234,59,164,182,100,51,164,182,204,42,164,182,34,34,164,182,104,25,164,182,156,16,164,182,191,7,164,182,209,254,163,182,210,245,163,182,193,236,163,182,159,227,163,182,108,218,163,182,40,209,163,182,211,199,163,182,109,190,163,182,245,180,163,182,108,171,163,182,210,161,163,182,39,152,163,182,107,142,163,182,158,132,163,182,191,122,163,182,208,112,163,182,207,102,163,182,189,92,163,182,154,82,163,182,102,72,163,182,33,62,163,182,
203,51,163,182,100,41,163,182,236,30,163,182,98,20,163,182,200,9,163,182,28,255,162,182,96,244,162,182,146,233,162,182,180,222,162,182,196,211,162,182,196,200,162,182,178,189,162,182,144,178,162,182,92,167,162,182,23,156,162,182,194,144,162,182,91,133,162,182,228,121,162,182,91,110,162,182,194,98,162,182,24,87,162,182,92,75,162,182,144,63,162,182,179,51,162,182,197,39,162,182,198,27,162,182,182,15,162,182,150,3,162,182,100,247,161,182,33,235,161,182,206,222,161,182,106,210,161,182,245,197,161,182,
111,185,161,182,216,172,161,182,48,160,161,182,120,147,161,182,175,134,161,182,213,121,161,182,234,108,161,182,238,95,161,182,225,82,161,182,196,69,161,182,150,56,161,182,87,43,161,182,8,30,161,182,168,16,161,182,54,3,161,182,181,245,160,182,34,232,160,182,127,218,160,182,203,204,160,182,6,191,160,182,49,177,160,182,75,163,160,182,84,149,160,182,77,135,160,182,53,121,160,182,12,107,160,182,211,92,160,182,137,78,160,182,46,64,160,182,195,49,160,182,71,35,160,182,186,20,160,182,29,6,160,182,112,247,
159,182,177,232,159,182,226,217,159,182,3,203,159,182,19,188,159,182,19,173,159,182,2,158,159,182,224,142,159,182,174,127,159,182,107,112,159,182,24,97,159,182,180,81,159,182,64,66,159,182,188,50,159,182,39,35,159,182,129,19,159,182,203,3,159,182,5,244,158,182,46,228,158,182,70,212,158,182,79,196,158,182,71,180,158,182,46,164,158,182,5,148,158,182,204,131,158,182,130,115,158,182,40,99,158,182,189,82,158,182,67,66,158,182,184,49,158,182,28,33,158,182,112,16,158,182,180,255,157,182,232,238,157,182,
11,222,157,182,30,205,157,182,33,188,157,182,19,171,157,182,246,153,157,182,200,136,157,182,137,119,157,182,59,102,157,182,220,84,157,182,109,67,157,182,238,49,157,182,95,32,157,182,191,14,157,182,15,253,156,182,79,235,156,182,127,217,156,182,159,199,156,182,175,181,156,182,175,163,156,182,158,145,156,182,125,127,156,182,77,109,156,182,12,91,156,182,187,72,156,182,90,54,156,182,233,35,156,182,104,17,156,182,215,254,155,182,53,236,155,182,132,217,155,182,195,198,155,182,242,179,155,182,17,161,155,
182,31,142,155,182,30,123,155,182,13,104,155,182,236,84,155,182,187,65,155,182,122,46,155,182,41,27,155,182,201,7,155,182,88,244,154,182,215,224,154,182,71,205,154,182,167,185,154,182,247,165,154,182,55,146,154,182,103,126,154,182,135,106,154,182,152,86,154,182,152,66,154,182,137,46,154,182,106,26,154,182,60,6,154,182,253,241,153,182,175,221,153,182,81,201,153,182,228,180,153,182,102,160,153,182,217,139,153,182,60,119,153,182,144,98,153,182,212,77,153,182,8,57,153,182,44,36,153,182,65,15,153,182,
70,250,152,182,60,229,152,182,34,208,152,182,248,186,152,182,191,165,152,182,118,144,152,182,30,123,152,182,182,101,152,182,63,80,152,182,184,58,152,182,33,37,152,182,123,15,152,182,197,249,151,182,0,228,151,182,44,206,151,182,72,184,151,182,84,162,151,182,81,140,151,182,63,118,151,182,29,96,151,182,236,73,151,182,171,51,151,182,91,29,151,182,252,6,151,182,141,240,150,182,15,218,150,182,129,195,150,182,228,172,150,182,56,150,150,182,124,127,150,182,178,104,150,182,216,81,150,182,238,58,150,182,246,
35,150,182,238,12,150,182,215,245,149,182,176,222,149,182,123,199,149,182,54,176,149,182,226,152,149,182,126,129,149,182,12,106,149,182,139,82,149,182,250,58,149,182,90,35,149,182,171,11,149,182,237,243,148,182,32,220,148,182,67,196,148,182,88,172,148,182,94,148,148,182,84,124,148,182,60,100,148,182,20,76,148,182,221,51,148,182,152,27,148,182,67,3,148,182,224,234,147,182,109,210,147,182,235,185,147,182,91,161,147,182,188,136,147,182,13,112,147,182,80,87,147,182,132,62,147,182,169,37,147,182,191,12,
147,182,198,243,146,182,190,218,146,182,168,193,146,182,131,168,146,182,78,143,146,182,12,118,146,182,186,92,146,182,89,67,146,182,234,41,146,182,108,16,146,182,223,246,145,182,68,221,145,182,154,195,145,182,225,169,145,182,25,144,145,182,67,118,145,182,94,92,145,182,107,66,145,182,104,40,145,182,88,14,145,182,56,244,144,182,10,218,144,182,206,191,144,182,130,165,144,182,41,139,144,182,192,112,144,182,73,86,144,182,196,59,144,182,48,33,144,182,142,6,144,182,221,235,143,182,30,209,143,182,80,182,143,
182,116,155,143,182,137,128,143,182,144,101,143,182,137,74,143,182,115,47,143,182,78,20,143,182,28,249,142,182,219,221,142,182,140,194,142,182,46,167,142,182,194,139,142,182,72,112,142,182,191,84,142,182,40,57,142,182,131,29,142,182,208,1,142,182,15,230,141,182,63,202,141,182,97,174,141,182,117,146,141,182,122,118,141,182,114,90,141,182,91,62,141,182,54,34,141,182,4,6,141,182,195,233,140,182,115,205,140,182,22,177,140,182,171,148,140,182,50,120,140,182,170,91,140,182,21,63,140,182,113,34,140,182,
192,5,140,182,1,233,139,182,51,204,139,182,88,175,139,182,111,146,139,182,120,117,139,182,114,88,139,182,95,59,139,182,62,30,139,182,16,1,139,182,211,227,138,182,136,198,138,182,48,169,138,182,202,139,138,182,86,110,138,182,212,80,138,182,69,51,138,182,167,21,138,182,252,247,137,182,68,218,137,182,125,188,137,182,169,158,137,182,199,128,137,182,215,98,137,182,218,68,137,182,207,38,137,182,183,8,137,182,145,234,136,182,93,204,136,182,27,174,136,182,205,143,136,182,112,113,136,182,6,83,136,182,142,
52,136,182,9,22,136,182,119,247,135,182,215,216,135,182,41,186,135,182,110,155,135,182,166,124,135,182,208,93,135,182,236,62,135,182,252,31,135,182,253,0,135,182,242,225,134,182,217,194,134,182,179,163,134,182,127,132,134,182,62,101,134,182,240,69,134,182,149,38,134,182,44,7,134,182,182,231,133,182,51,200,133,182,162,168,133,182,5,137,133,182,90,105,133,182,162,73,133,182,221,41,133,182,10,10,133,182,43,234,132,182,62,202,132,182,69,170,132,182,62,138,132,182,42,106,132,182,9,74,132,182,219,41,132,
182,160,9,132,182,88,233,131,182,3,201,131,182,161,168,131,182,50,136,131,182,182,103,131,182,45,71,131,182,151,38,131,182,244,5,131,182,69,229,130,182,136,196,130,182,191,163,130,182,233,130,130,182,6,98,130,182,22,65,130,182,25,32,130,182,15,255,129,182,249,221,129,182,214,188,129,182,167,155,129,182,106,122,129,182,33,89,129,182,203,55,129,182,104,22,129,182,249,244,128,182,125,211,128,182,245,177,128,182,96,144,128,182,190,110,128,182,16,77,128,182,85,43,128,182,142,9,128,182,115,207,127,182,
178,139,127,182,216,71,127,182,229,3,127,182,217,191,126,182,181,123,126,182,119,55,126,182,32,243,125,182,177,174,125,182,41,106,125,182,136,37,125,182,206,224,124,182,252,155,124,182,17,87,124,182,13,18,124,182,241,204,123,182,188,135,123,182,111,66,123,182,9,253,122,182,139,183,122,182,244,113,122,182,69,44,122,182,125,230,121,182,158,160,121,182,165,90,121,182,149,20,121,182,108,206,120,182,43,136,120,182,210,65,120,182,97,251,119,182,216,180,119,182,54,110,119,182,125,39,119,182,171,224,118,
182,194,153,118,182,192,82,118,182,167,11,118,182,117,196,117,182,44,125,117,182,203,53,117,182,83,238,116,182,194,166,116,182,26,95,116,182,90,23,116,182,131,207,115,182,147,135,115,182,141,63,115,182,110,247,114,182,56,175,114,182,235,102,114,182,134,30,114,182,10,214,113,182,119,141,113,182,204,68,113,182,9,252,112,182,48,179,112,182,63,106,112,182,55,33,112,182,24,216,111,182,225,142,111,182,148,69,111,182,47,252,110,182,179,178,110,182,33,105,110,182,119,31,110,182,182,213,109,182,223,139,109,
182,240,65,109,182,235,247,108,182,207,173,108,182,156,99,108,182,82,25,108,182,242,206,107,182,123,132,107,182,237,57,107,182,73,239,106,182,142,164,106,182,188,89,106,182,212,14,106,182,214,195,105,182,193,120,105,182,150,45,105,182,84,226,104,182,252,150,104,182,142,75,104,182,9,0,104,182,110,180,103,182,189,104,103,182,246,28,103,182,25,209,102,182,37,133,102,182,28,57,102,182,252,236,101,182,199,160,101,182,123,84,101,182,26,8,101,182,162,187,100,182,21,111,100,182,114,34,100,182,185,213,99,
182,235,136,99,182,6,60,99,182,12,239,98,182,253,161,98,182,215,84,98,182,157,7,98,182,76,186,97,182,230,108,97,182,107,31,97,182,218,209,96,182,52,132,96,182,120,54,96,182,168,232,95,182,193,154,95,182,198,76,95,182,181,254,94,182,143,176,94,182,84,98,94,182,4,20,94,182,159,197,93,182,37,119,93,182,149,40,93,182,241,217,92,182,56,139,92,182,106,60,92,182,135,237,91,182,143,158,91,182,130,79,91,182,97,0,91,182,43,177,90,182,224,97,90,182,128,18,90,182,12,195,89,182,131,115,89,182,230,35,89,182,52,
212,88,182,110,132,88,182,147,52,88,182,164,228,87,182,161,148,87,182,137,68,87,182,93,244,86,182,28,164,86,182,200,83,86,182,95,3,86,182,226,178,85,182,81,98,85,182,172,17,85,182,243,192,84,182,37,112,84,182,68,31,84,182,79,206,83,182,70,125,83,182,41,44,83,182,248,218,82,182,180,137,82,182,92,56,82,182,240,230,81,182,112,149,81,182,221,67,81,182,54,242,80,182,123,160,80,182,173,78,80,182,204,252,79,182,215,170,79,182,206,88,79,182,178,6,79,182,131,180,78,182,65,98,78,182,235,15,78,182,130,189,77,
182,6,107,77,182,118,24,77,182,212,197,76,182,30,115,76,182,86,32,76,182,122,205,75,182,139,122,75,182,138,39,75,182,117,212,74,182,78,129,74,182,19,46,74,182,198,218,73,182,103,135,73,182,244,51,73,182,111,224,72,182,215,140,72,182,45,57,72,182,112,229,71,182,160,145,71,182,190,61,71,182,202,233,70,182,195,149,70,182,169,65,70,182,126,237,69,182,64,153,69,182,239,68,69,182,141,240,68,182,24,156,68,182,145,71,68,182,248,242,67,182,77,158,67,182,144,73,67,182,193,244,66,182,224,159,66,182,237,74,66,
182,232,245,65,182,209,160,65,182,168,75,65,182,110,246,64,182,34,161,64,182,196,75,64,182,85,246,63,182,211,160,63,182,65,75,63,182,156,245,62,182,230,159,62,182,31,74,62,182,70,244,61,182,92,158,61,182,97,72,61,182,84,242,60,182,54,156,60,182,6,70,60,182,198,239,59,182,116,153,59,182,17,67,59,182,157,236,58,182,24,150,58,182,130,63,58,182,219,232,57,182,35,146,57,182,90,59,57,182,128,228,56,182,149,141,56,182,154,54,56,182,142,223,55,182,113,136,55,182,67,49,55,182,5,218,54,182,182,130,54,182,87,
43,54,182,231,211,53,182,103,124,53,182,214,36,53,182,53,205,52,182,131,117,52,182,193,29,52,182,239,197,51,182,12,110,51,182,26,22,51,182,23,190,50,182,4,102,50,182,225,13,50,182,174,181,49,182,106,93,49,182,23,5,49,182,180,172,48,182,65,84,48,182,190,251,47,182,44,163,47,182,137,74,47,182,215,241,46,182,21,153,46,182,68,64,46,182,98,231,45,182,114,142,45,182,113,53,45,182,98,220,44,182,66,131,44,182,20,42,44,182,213,208,43,182,136,119,43,182,43,30,43,182,191,196,42,182,68,107,42,182,185,17,42,182,
32,184,41,182,119,94,41,182,191,4,41,182,248,170,40,182,34,81,40,182,61,247,39,182,73,157,39,182,71,67,39,182,53,233,38,182,21,143,38,182,230,52,38,182,168,218,37,182,92,128,37,182,0,38,37,182,151,203,36,182,30,113,36,182,152,22,36,182,2,188,35,182,95,97,35,182,172,6,35,182,236,171,34,182,29,81,34,182,64,246,33,182,85,155,33,182,91,64,33,182,83,229,32,182,61,138,32,182,25,47,32,182,231,211,31,182,167,120,31,182,89,29,31,182,253,193,30,182,148,102,30,182,28,11,30,182,150,175,29,182,3,84,29,182,98,
248,28,182,180,156,28,182,247,64,28,182,45,229,27,182,86,137,27,182,113,45,27,182,126,209,26,182,126,117,26,182,113,25,26,182,86,189,25,182,46,97,25,182,249,4,25,182,182,168,24,182,103,76,24,182,10,240,23,182,160,147,23,182,40,55,23,182,164,218,22,182,19,126,22,182,117,33,22,182,202,196,21,182,18,104,21,182,77,11,21,182,123,174,20,182,157,81,20,182,178,244,19,182,186,151,19,182,181,58,19,182,164,221,18,182,135,128,18,182,92,35,18,182,38,198,17,182,227,104,17,182,147,11,17,182,56,174,16,182,207,80,
16,182,91,243,15,182,218,149,15,182,77,56,15,182,180,218,14,182,15,125,14,182,94,31,14,182,161,193,13,182,216,99,13,182,3,6,13,182,33,168,12,182,53,74,12,182,60,236,11,182,55,142,11,182,39,48,11,182,11,210,10,182,227,115,10,182,176,21,10,182,113,183,9,182,38,89,9,182,208,250,8,182,111,156,8,182,2,62,8,182,138,223,7,182,6,129,7,182,120,34,7,182,221,195,6,182,56,101,6,182,136,6,6,182,204,167,5,182,5,73,5,182,51,234,4,182,87,139,4,182,111,44,4,182,124,205,3,182,126,110,3,182,118,15,3,182,99,176,2,182,
69,81,2,182,28,242,1,182,233,146,1,182,170,51,1,182,98,212,0,182,15,117,0,182,177,21,0,182,145,108,255,181,172,173,254,181,178,238,253,181,163,47,253,181,127,112,252,181,71,177,251,181,251,241,250,181,154,50,250,181,37,115,249,181,155,179,248,181,254,243,247,181,76,52,247,181,135,116,246,181,173,180,245,181,192,244,244,181,191,52,244,181,170,116,243,181,130,180,242,181,71,244,241,181,248,51,241,181,149,115,240,181,32,179,239,181,151,242,238,181,251,49,238,181,77,113,237,181,139,176,236,181,183,239,
235,181,208,46,235,181,214,109,234,181,201,172,233,181,171,235,232,181,121,42,232,181,54,105,231,181,224,167,230,181,120,230,229,181,254,36,229,181,114,99,228,181,213,161,227,181,37,224,226,181,100,30,226,181,145,92,225,181,172,154,224,181,182,216,223,181,175,22,223,181,150,84,222,181,108,146,221,181,49,208,220,181,228,13,220,181,135,75,219,181,25,137,218,181,154,198,217,181,11,4,217,181,106,65,216,181,185,126,215,181,248,187,214,181,38,249,213,181,68,54,213,181,82,115,212,181,80,176,211,181,61,237,
210,181,27,42,210,181,232,102,209,181,166,163,208,181,84,224,207,181,243,28,207,181,130,89,206,181,1,150,205,181,113,210,204,181,210,14,204,181,35,75,203,181,102,135,202,181,153,195,201,181,189,255,200,181,211,59,200,181,217,119,199,181,209,179,198,181,186,239,197,181,149,43,197,181,97,103,196,181,31,163,195,181,207,222,194,181,112,26,194,181,3,86,193,181,136,145,192,181,255,204,191,181,104,8,191,181,196,67,190,181,17,127,189,181,81,186,188,181,132,245,187,181,169,48,187,181,193,107,186,181,203,166,
185,181,200,225,184,181,184,28,184,181,155,87,183,181,113,146,182,181,58,205,181,181,246,7,181,181,166,66,180,181,73,125,179,181,223,183,178,181,105,242,177,181,231,44,177,181,88,103,176,181,189,161,175,181,22,220,174,181,99,22,174,181,164,80,173,181,217,138,172,181,2,197,171,181,32,255,170,181,50,57,170,181,56,115,169,181,51,173,168,181,35,231,167,181,7,33,167,181,224,90,166,181,174,148,165,181,113,206,164,181,41,8,164,181,214,65,163,181,121,123,162,181,16,181,161,181,157,238,160,181,32,40,160,181,
152,97,159,181,6,155,158,181,105,212,157,181,195,13,157,181,18,71,156,181,87,128,155,181,146,185,154,181,195,242,153,181,235,43,153,181,9,101,152,181,29,158,151,181,40,215,150,181,41,16,150,181,33,73,149,181,16,130,148,181,245,186,147,181,210,243,146,181,165,44,146,181,112,101,145,181,50,158,144,181,234,214,143,181,155,15,143,181,66,72,142,181,225,128,141,181,120,185,140,181,7,242,139,181,141,42,139,181,11,99,138,181,128,155,137,181,238,211,136,181,84,12,136,181,178,68,135,181,9,125,134,181,88,181,
133,181,159,237,132,181,222,37,132,181,23,94,131,181,71,150,130,181,113,206,129,181,148,6,129,181,175,62,128,181,135,237,126,181,162,93,125,181,176,205,123,181,176,61,122,181,162,173,120,181,136,29,119,181,96,141,117,181,44,253,115,181,235,108,114,181,158,220,112,181,69,76,111,181,223,187,109,181,109,43,108,181,240,154,106,181,103,10,105,181,210,121,103,181,50,233,101,181,135,88,100,181,210,199,98,181,17,55,97,181,70,166,95,181,112,21,94,181,144,132,92,181,166,243,90,181,178,98,89,181,181,209,87,
181,173,64,86,181,157,175,84,181,131,30,83,181,96,141,81,181,52,252,79,181,255,106,78,181,194,217,76,181,124,72,75,181,46,183,73,181,216,37,72,181,122,148,70,181,20,3,69,181,167,113,67,181,50,224,65,181,182,78,64,181,52,189,62,181,170,43,61,181,25,154,59,181,130,8,58,181,228,118,56,181,65,229,54,181,151,83,53,181,231,193,51,181,50,48,50,181,119,158,48,181,182,12,47,181,241,122,45,181,38,233,43,181,87,87,42,181,131,197,40,181,170,51,39,181,205,161,37,181,236,15,36,181,6,126,34,181,29,236,32,181,48,
90,31,181,64,200,29,181,76,54,28,181,85,164,26,181,91,18,25,181,94,128,23,181,95,238,21,181,93,92,20,181,88,202,18,181,82,56,17,181,73,166,15,181,62,20,14,181,50,130,12,181,37,240,10,181,22,94,9,181,5,204,7,181,244,57,6,181,226,167,4,181,207,21,3,181,188,131,1,181,81,227,255,180,42,191,252,180,2,155,249,180,219,118,246,180,181,82,243,180,143,46,240,180,107,10,237,180,73,230,233,180,40,194,230,180,10,158,227,180,239,121,224,180,214,85,221,180,193,49,218,180,176,13,215,180,162,233,211,180,153,197,208,
180,149,161,205,180,150,125,202,180,156,89,199,180,167,53,196,180,185,17,193,180,209,237,189,180,240,201,186,180,22,166,183,180,67,130,180,180,120,94,177,180,181,58,174,180,250,22,171,180,72,243,167,180,159,207,164,180,0,172,161,180,106,136,158,180,222,100,155,180,92,65,152,180,230,29,149,180,122,250,145,180,26,215,142,180,197,179,139,180,124,144,136,180,64,109,133,180,17,74,130,180,220,77,126,180,178,7,120,180,163,193,113,180,176,123,107,180,218,53,101,180,34,240,94,180,135,170,88,180,11,101,82,
180,175,31,76,180,115,218,69,180,87,149,63,180,93,80,57,180,133,11,51,180,208,198,44,180,62,130,38,180,208,61,32,180,135,249,25,180,99,181,19,180,101,113,13,180,143,45,7,180,223,233,0,180,175,76,245,179,241,197,232,179,135,63,220,179,112,185,207,179,175,51,195,179,68,174,182,179,50,41,170,179,121,164,157,179,26,32,145,179,24,156,132,179,230,48,112,179,90,42,87,179,141,36,62,179,131,31,37,179,63,27,12,179,133,47,230,178,33,42,180,178,88,38,130,178,93,72,32,178,80,29,113,177,127,217,30,49,180,176,11,
50,159,167,111,50,139,205,169,50,134,197,219,50,222,221,6,51,21,216,31,51,100,209,56,51,200,201,81,51,63,193,106,51,228,219,129,51,174,86,142,51,255,208,154,51,212,74,167,51,43,196,179,51,4,61,192,51,94,181,204,51,54,45,217,51,141,164,229,51,95,27,242,51,173,145,254,51,186,131,5,52,90,190,11,52,182,248,17,52,204,50,24,52,157,108,30,52,39,166,36,52,106,223,42,52,101,24,49,52,24,81,55,52,130,137,61,52,163,193,67,52,121,249,73,52,4,49,80,52,67,104,86,52,54,159,92,52,220,213,98,52,52,12,105,52,63,66,
111,52,250,119,117,52,102,173,123,52,65,241,128,52,166,11,132,52,226,37,135,52,246,63,138,52,224,89,141,52,160,115,144,52,54,141,147,52,162,166,150,52,227,191,153,52,249,216,156,52,228,241,159,52,163,10,163,52,54,35,166,52,157,59,169,52,215,83,172,52,228,107,175,52,195,131,178,52,117,155,181,52,250,178,184,52,79,202,187,52,118,225,190,52,111,248,193,52,56,15,197,52,209,37,200,52,58,60,203,52,116,82,206,52,124,104,209,52,84,126,212,52,251,147,215,52,112,169,218,52,179,190,221,52,196,211,224,52,162,
232,227,52,78,253,230,52,199,17,234,52,12,38,237,52,29,58,240,52,250,77,243,52,163,97,246,52,23,117,249,52,86,136,252,52,96,155,255,52,26,87,1,53,105,224,2,53,157,105,4,53,181,242,5,53,178,123,7,53,147,4,9,53,89,141,10,53,2,22,12,53,143,158,13,53,0,39,15,53,85,175,16,53,141,55,18,53,168,191,19,53,166,71,21,53,135,207,22,53,75,87,24,53,242,222,25,53,122,102,27,53,230,237,28,53,51,117,30,53,98,252,31,53,115,131,33,53,101,10,35,53,57,145,36,53,239,23,38,53,133,158,39,53,253,36,41,53,85,171,42,53,142,
49,44,53,168,183,45,53,161,61,47,53,124,195,48,53,54,73,50,53,208,206,51,53,73,84,53,53,162,217,54,53,219,94,56,53,243,227,57,53,234,104,59,53,192,237,60,53,117,114,62,53,8,247,63,53,122,123,65,53,202,255,66,53,248,131,68,53,4,8,70,53,238,139,71,53,182,15,73,53,91,147,74,53,222,22,76,53,61,154,77,53,122,29,79,53,148,160,80,53,138,35,82,53,93,166,83,53,12,41,85,53,152,171,86,53,0,46,88,53,67,176,89,53,99,50,91,53,94,180,92,53,53,54,94,53,230,183,95,53,116,57,97,53,220,186,98,53,30,60,100,53,60,189,
101,53,52,62,103,53,7,191,104,53,179,63,106,53,58,192,107,53,155,64,109,53,213,192,110,53,234,64,112,53,215,192,113,53,158,64,115,53,62,192,116,53,183,63,118,53,9,191,119,53,51,62,121,53,54,189,122,53,18,60,124,53,197,186,125,53,81,57,127,53,218,91,128,53,248,26,129,53,1,218,129,53,246,152,130,53,215,87,131,53,164,22,132,53,91,213,132,53,255,147,133,53,141,82,134,53,7,17,135,53,108,207,135,53,188,141,136,53,247,75,137,53,30,10,138,53,47,200,138,53,42,134,139,53,17,68,140,53,226,1,141,53,158,191,141,
53,68,125,142,53,213,58,143,53,80,248,143,53,181,181,144,53,4,115,145,53,62,48,146,53,98,237,146,53,111,170,147,53,103,103,148,53,72,36,149,53,19,225,149,53,199,157,150,53,102,90,151,53,237,22,152,53,95,211,152,53,185,143,153,53,253,75,154,53,42,8,155,53,64,196,155,53,63,128,156,53,39,60,157,53,248,247,157,53,178,179,158,53,85,111,159,53,224,42,160,53,84,230,160,53,176,161,161,53,245,92,162,53,34,24,163,53,56,211,163,53,54,142,164,53,28,73,165,53,234,3,166,53,160,190,166,53,61,121,167,53,195,51,168,
53,49,238,168,53,134,168,169,53,195,98,170,53,231,28,171,53,243,214,171,53,230,144,172,53,193,74,173,53,131,4,174,53,44,190,174,53,188,119,175,53,51,49,176,53,146,234,176,53,215,163,177,53,2,93,178,53,21,22,179,53,14,207,179,53,238,135,180,53,181,64,181,53,97,249,181,53,244,177,182,53,110,106,183,53,206,34,184,53,19,219,184,53,63,147,185,53,81,75,186,53,73,3,187,53,39,187,187,53,234,114,188,53,147,42,189,53,34,226,189,53,150,153,190,53,240,80,191,53,48,8,192,53,84,191,192,53,94,118,193,53,77,45,194,
53,33,228,194,53,218,154,195,53,121,81,196,53,252,7,197,53,100,190,197,53,176,116,198,53,226,42,199,53,248,224,199,53,242,150,200,53,209,76,201,53,149,2,202,53,60,184,202,53,200,109,203,53,57,35,204,53,141,216,204,53,197,141,205,53,225,66,206,53,226,247,206,53,198,172,207,53,141,97,208,53,57,22,209,53,200,202,209,53,58,127,210,53,144,51,211,53,202,231,211,53,230,155,212,53,230,79,213,53,202,3,214,53,144,183,214,53,57,107,215,53,197,30,216,53,53,210,216,53,135,133,217,53,187,56,218,53,211,235,218,
53,205,158,219,53,169,81,220,53,104,4,221,53,10,183,221,53,141,105,222,53,243,27,223,53,60,206,223,53,102,128,224,53,114,50,225,53,97,228,225,53,49,150,226,53,227,71,227,53,119,249,227,53,236,170,228,53,67,92,229,53,124,13,230,53,150,190,230,53,146,111,231,53,111,32,232,53,45,209,232,53,204,129,233,53,77,50,234,53,174,226,234,53,241,146,235,53,20,67,236,53,25,243,236,53,254,162,237,53,196,82,238,53,106,2,239,53,241,177,239,53,89,97,240,53,161,16,241,53,201,191,241,53,210,110,242,53,187,29,243,53,
132,204,243,53,45,123,244,53,183,41,245,53,32,216,245,53,105,134,246,53,146,52,247,53,155,226,247,53,131,144,248,53,75,62,249,53,242,235,249,53,121,153,250,53,224,70,251,53,38,244,251,53,75,161,252,53,79,78,253,53,50,251,253,53,245,167,254,53,150,84,255,53,139,0,0,54,187,86,0,54,218,172,0,54,232,2,1,54,230,88,1,54,211,174,1,54,175,4,2,54,123,90,2,54,54,176,2,54,224,5,3,54,121,91,3,54,1,177,3,54,120,6,4,54,222,91,4,54,51,177,4,54,120,6,5,54,171,91,5,54,205,176,5,54,222,5,6,54,221,90,6,54,204,175,6,
54,169,4,7,54,117,89,7,54,48,174,7,54,217,2,8,54,113,87,8,54,248,171,8,54,109,0,9,54,209,84,9,54,35,169,9,54,100,253,9,54,147,81,10,54,176,165,10,54,188,249,10,54,182,77,11,54,159,161,11,54,118,245,11,54,59,73,12,54,238,156,12,54,144,240,12,54,31,68,13,54,157,151,13,54,9,235,13,54,98,62,14,54,170,145,14,54,224,228,14,54,4,56,15,54,21,139,15,54,21,222,15,54,2,49,16,54,221,131,16,54,166,214,16,54,93,41,17,54,2,124,17,54,148,206,17,54,19,33,18,54,129,115,18,54,220,197,18,54,37,24,19,54,91,106,19,54,
126,188,19,54,143,14,20,54,142,96,20,54,122,178,20,54,83,4,21,54,26,86,21,54,206,167,21,54,111,249,21,54,253,74,22,54,121,156,22,54,226,237,22,54,56,63,23,54,123,144,23,54,171,225,23,54,200,50,24,54,210,131,24,54,202,212,24,54,174,37,25,54,127,118,25,54,61,199,25,54,232,23,26,54,128,104,26,54,4,185,26,54,118,9,27,54,212,89,27,54,31,170,27,54,86,250,27,54,122,74,28,54,139,154,28,54,136,234,28,54,114,58,29,54,72,138,29,54,11,218,29,54,187,41,30,54,87,121,30,54,223,200,30,54,83,24,31,54,180,103,31,54,
1,183,31,54,59,6,32,54,97,85,32,54,115,164,32,54,113,243,32,54,91,66,33,54,50,145,33,54,244,223,33,54,163,46,34,54,62,125,34,54,196,203,34,54,55,26,35,54,150,104,35,54,224,182,35,54,23,5,36,54,57,83,36,54,71,161,36,54,65,239,36,54,39,61,37,54,248,138,37,54,181,216,37,54,94,38,38,54,242,115,38,54,114,193,38,54,222,14,39,54,53,92,39,54,120,169,39,54,166,246,39,54,192,67,40,54,197,144,40,54,182,221,40,54,146,42,41,54,89,119,41,54,12,196,41,54,170,16,42,54,51,93,42,54,167,169,42,54,7,246,42,54,82,66,
43,54,136,142,43,54,169,218,43,54,181,38,44,54,172,114,44,54,143,190,44,54,92,10,45,54,20,86,45,54,184,161,45,54,70,237,45,54,191,56,46,54,35,132,46,54,113,207,46,54,171,26,47,54,207,101,47,54,222,176,47,54,216,251,47,54,189,70,48,54,140,145,48,54,69,220,48,54,234,38,49,54,121,113,49,54,242,187,49,54,86,6,50,54,165,80,50,54,222,154,50,54,1,229,50,54,15,47,51,54,7,121,51,54,234,194,51,54,183,12,52,54,110,86,52,54,15,160,52,54,155,233,52,54,17,51,53,54,113,124,53,54,187,197,53,54,239,14,54,54,14,88,
54,54,22,161,54,54,9,234,54,54,229,50,55,54,172,123,55,54,92,196,55,54,247,12,56,54,123,85,56,54,234,157,56,54,66,230,56,54,132,46,57,54,175,118,57,54,197,190,57,54,196,6,58,54,173,78,58,54,128,150,58,54,60,222,58,54,226,37,59,54,114,109,59,54,235,180,59,54,78,252,59,54,154,67,60,54,208,138,60,54,239,209,60,54,247,24,61,54,234,95,61,54,197,166,61,54,138,237,61,54,56,52,62,54,208,122,62,54,80,193,62,54,186,7,63,54,14,78,63,54,74,148,63,54,112,218,63,54,127,32,64,54,119,102,64,54,88,172,64,54,34,242,
64,54,213,55,65,54,114,125,65,54,247,194,65,54,101,8,66,54,188,77,66,54,252,146,66,54,37,216,66,54,55,29,67,54,50,98,67,54,21,167,67,54,226,235,67,54,151,48,68,54,53,117,68,54,187,185,68,54,42,254,68,54,130,66,69,54,195,134,69,54,236,202,69,54,254,14,70,54,248,82,70,54,219,150,70,54,166,218,70,54,90,30,71,54,247,97,71,54,123,165,71,54,233,232,71,54,62,44,72,54,124,111,72,54,162,178,72,54,177,245,72,54,168,56,73,54,135,123,73,54,78,190,73,54,254,0,74,54,150,67,74,54,22,134,74,54,126,200,74,54,206,
10,75,54,6,77,75,54,39,143,75,54,47,209,75,54,32,19,76,54,248,84,76,54,185,150,76,54,97,216,76,54,241,25,77,54,105,91,77,54,201,156,77,54,17,222,77,54,65,31,78,54,88,96,78,54,88,161,78,54,63,226,78,54,14,35,79,54,196,99,79,54,98,164,79,54,232,228,79,54,86,37,80,54,171,101,80,54,231,165,80,54,11,230,80,54,23,38,81,54,10,102,81,54,229,165,81,54,167,229,81,54,81,37,82,54,226,100,82,54,91,164,82,54,187,227,82,54,2,35,83,54,48,98,83,54,70,161,83,54,67,224,83,54,40,31,84,54,244,93,84,54,166,156,84,54,64,
219,84,54,194,25,85,54,42,88,85,54,122,150,85,54,176,212,85,54,206,18,86,54,211,80,86,54,190,142,86,54,145,204,86,54,75,10,87,54,236,71,87,54,115,133,87,54,226,194,87,54,55,0,88,54,116,61,88,54,151,122,88,54,161,183,88,54,146,244,88,54,105,49,89,54,40,110,89,54,205,170,89,54,89,231,89,54,203,35,90,54,37,96,90,54,101,156,90,54,139,216,90,54,152,20,91,54,140,80,91,54,102,140,91,54,39,200,91,54,207,3,92,54,92,63,92,54,209,122,92,54,44,182,92,54,109,241,92,54,149,44,93,54,163,103,93,54,151,162,93,54,
114,221,93,54,51,24,94,54,219,82,94,54,104,141,94,54,220,199,94,54,55,2,95,54,119,60,95,54,158,118,95,54,171,176,95,54,158,234,95,54,119,36,96,54,54,94,96,54,220,151,96,54,103,209,96,54,217,10,97,54,48,68,97,54,110,125,97,54,146,182,97,54,155,239,97,54,139,40,98,54,96,97,98,54,28,154,98,54,189,210,98,54,68,11,99,54,178,67,99,54,4,124,99,54,61,180,99,54,92,236,99,54,96,36,100,54,74,92,100,54,26,148,100,54,207,203,100,54,107,3,101,54,236,58,101,54,82,114,101,54,158,169,101,54,208,224,101,54,232,23,
102,54,229,78,102,54,199,133,102,54,143,188,102,54,61,243,102,54,208,41,103,54,73,96,103,54,167,150,103,54,234,204,103,54,19,3,104,54,34,57,104,54,21,111,104,54,238,164,104,54,173,218,104,54,81,16,105,54,218,69,105,54,72,123,105,54,156,176,105,54,213,229,105,54,243,26,106,54,247,79,106,54,223,132,106,54,173,185,106,54,96,238,106,54,248,34,107,54,117,87,107,54,216,139,107,54,31,192,107,54,75,244,107,54,93,40,108,54,84,92,108,54,47,144,108,54,240,195,108,54,149,247,108,54,32,43,109,54,143,94,109,54,
228,145,109,54,29,197,109,54,59,248,109,54,63,43,110,54,39,94,110,54,243,144,110,54,165,195,110,54,59,246,110,54,183,40,111,54,23,91,111,54,91,141,111,54,133,191,111,54,147,241,111,54,134,35,112,54,93,85,112,54,26,135,112,54,187,184,112,54,64,234,112,54,170,27,113,54,249,76,113,54,44,126,113,54,68,175,113,54,64,224,113,54,33,17,114,54,231,65,114,54,145,114,114,54,31,163,114,54,146,211,114,54,233,3,115,54,37,52,115,54,69,100,115,54,74,148,115,54,51,196,115,54,0,244,115,54,178,35,116,54,72,83,116,54,
194,130,116,54,33,178,116,54,100,225,116,54,139,16,117,54,150,63,117,54,134,110,117,54,90,157,117,54,18,204,117,54,174,250,117,54,46,41,118,54,147,87,118,54,220,133,118,54,9,180,118,54,26,226,118,54,15,16,119,54,232,61,119,54,165,107,119,54,70,153,119,54,203,198,119,54,53,244,119,54,130,33,120,54,179,78,120,54,200,123,120,54,194,168,120,54,159,213,120,54,96,2,121,54,5,47,121,54,142,91,121,54,250,135,121,54,75,180,121,54,127,224,121,54,152,12,122,54,148,56,122,54,116,100,122,54,56,144,122,54,223,187,
122,54,106,231,122,54,217,18,123,54,44,62,123,54,98,105,123,54,125,148,123,54,123,191,123,54,92,234,123,54,33,21,124,54,202,63,124,54,87,106,124,54,199,148,124,54,26,191,124,54,82,233,124,54,109,19,125,54,107,61,125,54,77,103,125,54,19,145,125,54,188,186,125,54,72,228,125,54,184,13,126,54,12,55,126,54,67,96,126,54,93,137,126,54,91,178,126,54,61,219,126,54,1,4,127,54,170,44,127,54,53,85,127,54,164,125,127,54,246,165,127,54,44,206,127,54,69,246,127,54,33,15,128,54,17,35,128,54,242,54,128,54,197,74,
128,54,138,94,128,54,64,114,128,54,232,133,128,54,130,153,128,54,13,173,128,54,138,192,128,54,248,211,128,54,88,231,128,54,170,250,128,54,237,13,129,54,34,33,129,54,72,52,129,54,96,71,129,54,106,90,129,54,101,109,129,54,81,128,129,54,47,147,129,54,255,165,129,54,192,184,129,54,115,203,129,54,23,222,129,54,173,240,129,54,52,3,130,54,173,21,130,54,23,40,130,54,114,58,130,54,192,76,130,54,254,94,130,54,46,113,130,54,80,131,130,54,99,149,130,54,103,167,130,54,93,185,130,54,69,203,130,54,29,221,130,54,
232,238,130,54,163,0,131,54,80,18,131,54,239,35,131,54,127,53,131,54,0,71,131,54,115,88,131,54,215,105,131,54,44,123,131,54,115,140,131,54,171,157,131,54,213,174,131,54,240,191,131,54,252,208,131,54,250,225,131,54,233,242,131,54,201,3,132,54,155,20,132,54,94,37,132,54,18,54,132,54,184,70,132,54,79,87,132,54,215,103,132,54,81,120,132,54,188,136,132,54,24,153,132,54,101,169,132,54,164,185,132,54,212,201,132,54,246,217,132,54,8,234,132,54,12,250,132,54,1,10,133,54,232,25,133,54,191,41,133,54,136,57,
133,54,67,73,133,54,238,88,133,54,139,104,133,54,25,120,133,54,152,135,133,54,8,151,133,54,106,166,133,54,189,181,133,54,1,197,133,54,54,212,133,54,92,227,133,54,116,242,133,54,125,1,134,54,119,16,134,54,98,31,134,54,62,46,134,54,12,61,134,54,202,75,134,54,122,90,134,54,27,105,134,54,173,119,134,54,49,134,134,54,165,148,134,54,11,163,134,54,98,177,134,54,170,191,134,54,227,205,134,54,13,220,134,54,40,234,134,54,53,248,134,54,50,6,135,54,33,20,135,54,1,34,135,54,210,47,135,54,148,61,135,54,71,75,135,
54,235,88,135,54,128,102,135,54,7,116,135,54,126,129,135,54,231,142,135,54,64,156,135,54,139,169,135,54,199,182,135,54,244,195,135,54,17,209,135,54,32,222,135,54,32,235,135,54,18,248,135,54,244,4,136,54,199,17,136,54,139,30,136,54,64,43,136,54,231,55,136,54,126,68,136,54,6,81,136,54,128,93,136,54,234,105,136,54,69,118,136,54,146,130,136,54,207,142,136,54,254,154,136,54,29,167,136,54,46,179,136,54,47,191,136,54,34,203,136,54,5,215,136,54,218,226,136,54,159,238,136,54,86,250,136,54,253,5,137,54,149,
17,137,54,31,29,137,54,153,40,137,54,4,52,137,54,97,63,137,54,174,74,137,54,236,85,137,54,27,97,137,54,60,108,137,54,77,119,137,54,79,130,137,54,66,141,137,54,38,152,137,54,251,162,137,54,192,173,137,54,119,184,137,54,31,195,137,54,184,205,137,54,65,216,137,54,188,226,137,54,39,237,137,54,132,247,137,54,209,1,138,54,15,12,138,54,62,22,138,54,94,32,138,54,111,42,138,54,113,52,138,54,100,62,138,54,72,72,138,54,28,82,138,54,226,91,138,54,152,101,138,54,64,111,138,54,216,120,138,54,97,130,138,54,219,
139,138,54,70,149,138,54,162,158,138,54,238,167,138,54,44,177,138,54,90,186,138,54,122,195,138,54],"i8",4,y.a+1198080);
Q([138,204,138,54,139,213,138,54,125,222,138,54,96,231,138,54,52,240,138,54,248,248,138,54,174,1,139,54,84,10,139,54,235,18,139,54,115,27,139,54,236,35,139,54,86,44,139,54,177,52,139,54,252,60,139,54,56,69,139,54,102,77,139,54,132,85,139,54,147,93,139,54,146,101,139,54,131,109,139,54,101,117,139,54,55,125,139,54,250,132,139,54,174,140,139,54,83,148,139,54,233,155,139,54,111,163,139,54,231,170,139,54,79,178,139,54,168,185,139,54,242,192,139,54,45,200,139,54,88,207,139,54,117,214,139,54,130,221,139,
54,128,228,139,54,111,235,139,54,79,242,139,54,31,249,139,54,225,255,139,54,147,6,140,54,54,13,140,54,202,19,140,54,79,26,140,54,196,32,140,54,43,39,140,54,130,45,140,54,202,51,140,54,3,58,140,54,45,64,140,54,71,70,140,54,82,76,140,54,78,82,140,54,59,88,140,54,25,94,140,54,232,99,140,54,167,105,140,54,87,111,140,54,249,116,140,54,138,122,140,54,13,128,140,54,129,133,140,54,229,138,140,54,58,144,140,54,128,149,140,54,183,154,140,54,222,159,140,54,247,164,140,54,0,170,140,54,250,174,140,54,229,179,
140,54,193,184,140,54,141,189,140,54,75,194,140,54,249,198,140,54,152,203,140,54,39,208,140,54,168,212,140,54,25,217,140,54,124,221,140,54,207,225,140,54,18,230,140,54,71,234,140,54,109,238,140,54,131,242,140,54,138,246,140,54,130,250,140,54,107,254,140,54,68,2,141,54,15,6,141,54,202,9,141,54,118,13,141,54,19,17,141,54,160,20,141,54,31,24,141,54,142,27,141,54,238,30,141,54,63,34,141,54,129,37,141,54,180,40,141,54,215,43,141,54,235,46,141,54,241,49,141,54,230,52,141,54,205,55,141,54,165,58,141,54,
109,61,141,54,38,64,141,54,209,66,141,54,107,69,141,54,247,71,141,54,116,74,141,54,225,76,141,54,63,79,141,54,143,81,141,54,206,83,141,54,255,85,141,54,33,88,141,54,51,90,141,54,55,92,141,54,43,94,141,54,16,96,141,54,230,97,141,54,172,99,141,54,100,101,141,54,12,103,141,54,165,104,141,54,47,106,141,54,170,107,141,54,22,109,141,54,115,110,141,54,192,111,141,54,255,112,141,54,46,114,141,54,78,115,141,54,95,116,141,54,97,117,141,54,83,118,141,54,55,119,141,54,11,120,141,54,209,120,141,54,135,121,141,
54,46,122,141,54,198,122,141,54,79,123,141,54,200,123,141,54,51,124,141,54,143,124,141,54,219,124,141,54,24,125,141,54,70,125,141,54,101,125,141,54,117,125,141,54,118,125,141,54,104,125,141,54,74,125,141,54,30,125,141,54,226,124,141,54,152,124,141,54,62,124,141,54,213,123,141,54,93,123,141,54,214,122,141,54,64,122,141,54,155,121,141,54,231,120,141,54,35,120,141,54,81,119,141,54,111,118,141,54,127,117,141,54,127,116,141,54,112,115,141,54,83,114,141,54,38,113,141,54,234,111,141,54,159,110,141,54,69,
109,141,54,220,107,141,54,100,106,141,54,221,104,141,54,71,103,141,54,162,101,141,54,238,99,141,54,42,98,141,54,88,96,141,54,119,94,141,54,134,92,141,54,135,90,141,54,121,88,141,54,91,86,141,54,47,84,141,54,244,81,141,54,169,79,141,54,80,77,141,54,231,74,141,54,112,72,141,54,233,69,141,54,84,67,141,54,176,64,141,54,252,61,141,54,58,59,141,54,105,56,141,54,136,53,141,54,153,50,141,54,155,47,141,54,141,44,141,54,113,41,141,54,70,38,141,54,12,35,141,54,195,31,141,54,107,28,141,54,4,25,141,54,142,21,
141,54,9,18,141,54,117,14,141,54,211,10,141,54,33,7,141,54,97,3,141,54,145,255,140,54,179,251,140,54,197,247,140,54,201,243,140,54,190,239,140,54,164,235,140,54,123,231,140,54,67,227,140,54,252,222,140,54,167,218,140,54,66,214,140,54,207,209,140,54,76,205,140,54,187,200,140,54,27,196,140,54,108,191,140,54,175,186,140,54,226,181,140,54,6,177,140,54,28,172,140,54,35,167,140,54,27,162,140,54,4,157,140,54,222,151,140,54,170,146,140,54,103,141,140,54,20,136,140,54,179,130,140,54,68,125,140,54,197,119,
140,54,56,114,140,54,155,108,140,54,240,102,140,54,54,97,140,54,110,91,140,54,151,85,140,54,176,79,140,54,187,73,140,54,184,67,140,54,165,61,140,54,132,55,140,54,84,49,140,54,21,43,140,54,200,36,140,54,108,30,140,54,1,24,140,54,135,17,140,54,254,10,140,54,103,4,140,54,193,253,139,54,13,247,139,54,73,240,139,54,119,233,139,54,151,226,139,54,167,219,139,54,169,212,139,54,156,205,139,54,129,198,139,54,87,191,139,54,30,184,139,54,215,176,139,54,128,169,139,54,28,162,139,54,168,154,139,54,38,147,139,54,
149,139,139,54,246,131,139,54,72,124,139,54,139,116,139,54,192,108,139,54,230,100,139,54,254,92,139,54,7,85,139,54,1,77,139,54,237,68,139,54,202,60,139,54,152,52,139,54,88,44,139,54,10,36,139,54,172,27,139,54,65,19,139,54,198,10,139,54,61,2,139,54,166,249,138,54,0,241,138,54,76,232,138,54,137,223,138,54,183,214,138,54,215,205,138,54,232,196,138,54,235,187,138,54,224,178,138,54,198,169,138,54,157,160,138,54,102,151,138,54,33,142,138,54,205,132,138,54,106,123,138,54,249,113,138,54,122,104,138,54,236,
94,138,54,80,85,138,54,165,75,138,54,236,65,138,54,36,56,138,54,78,46,138,54,106,36,138,54,119,26,138,54,118,16,138,54,102,6,138,54,72,252,137,54,28,242,137,54,225,231,137,54,152,221,137,54,65,211,137,54,219,200,137,54,103,190,137,54,228,179,137,54,83,169,137,54,180,158,137,54,6,148,137,54,75,137,137,54,128,126,137,54,168,115,137,54,193,104,137,54,204,93,137,54,201,82,137,54,183,71,137,54,151,60,137,54,105,49,137,54,44,38,137,54,226,26,137,54,137,15,137,54,33,4,137,54,172,248,136,54,40,237,136,54,
150,225,136,54,246,213,136,54,72,202,136,54,139,190,136,54,193,178,136,54,232,166,136,54,1,155,136,54,11,143,136,54,8,131,136,54,246,118,136,54,215,106,136,54,169,94,136,54,109,82,136,54,35,70,136,54,202,57,136,54,100,45,136,54,239,32,136,54,109,20,136,54,220,7,136,54,61,251,135,54,144,238,135,54,213,225,135,54,12,213,135,54,53,200,135,54,80,187,135,54,93,174,135,54,91,161,135,54,76,148,135,54,47,135,135,54,3,122,135,54,202,108,135,54,131,95,135,54,45,82,135,54,202,68,135,54,89,55,135,54,217,41,135,
54,76,28,135,54,177,14,135,54,8,1,135,54,80,243,134,54,139,229,134,54,184,215,134,54,215,201,134,54,233,187,134,54,236,173,134,54,225,159,134,54,201,145,134,54,162,131,134,54,110,117,134,54,44,103,134,54,220,88,134,54,126,74,134,54,18,60,134,54,153,45,134,54,17,31,134,54,124,16,134,54,217,1,134,54,40,243,133,54,106,228,133,54,157,213,133,54,195,198,133,54,219,183,133,54,229,168,133,54,226,153,133,54,209,138,133,54,178,123,133,54,133,108,133,54,75,93,133,54,3,78,133,54,173,62,133,54,73,47,133,54,216,
31,133,54,89,16,133,54,204,0,133,54,50,241,132,54,138,225,132,54,213,209,132,54,18,194,132,54,65,178,132,54,98,162,132,54,118,146,132,54,124,130,132,54,117,114,132,54,96,98,132,54,62,82,132,54,14,66,132,54,208,49,132,54,133,33,132,54,44,17,132,54,198,0,132,54,82,240,131,54,209,223,131,54,66,207,131,54,166,190,131,54,252,173,131,54,69,157,131,54,128,140,131,54,174,123,131,54,206,106,131,54,225,89,131,54,230,72,131,54,222,55,131,54,201,38,131,54,166,21,131,54,118,4,131,54,56,243,130,54,237,225,130,
54,148,208,130,54,47,191,130,54,187,173,130,54,59,156,130,54,173,138,130,54,18,121,130,54,105,103,130,54,179,85,130,54,240,67,130,54,32,50,130,54,66,32,130,54,87,14,130,54,95,252,129,54,89,234,129,54,70,216,129,54,38,198,129,54,249,179,129,54,190,161,129,54,119,143,129,54,34,125,129,54,192,106,129,54,80,88,129,54,212,69,129,54,74,51,129,54,179,32,129,54,15,14,129,54,94,251,128,54,160,232,128,54,212,213,128,54,252,194,128,54,22,176,128,54,36,157,128,54,36,138,128,54,23,119,128,54,253,99,128,54,214,
80,128,54,162,61,128,54,97,42,128,54,19,23,128,54,184,3,128,54,160,224,127,54,182,185,127,54,178,146,127,54,148,107,127,54,92,68,127,54,10,29,127,54,158,245,126,54,25,206,126,54,121,166,126,54,192,126,126,54,237,86,126,54,0,47,126,54,249,6,126,54,217,222,125,54,159,182,125,54,75,142,125,54,221,101,125,54,86,61,125,54,181,20,125,54,251,235,124,54,38,195,124,54,57,154,124,54,50,113,124,54,17,72,124,54,214,30,124,54,131,245,123,54,21,204,123,54,142,162,123,54,238,120,123,54,53,79,123,54,97,37,123,54,
117,251,122,54,111,209,122,54,80,167,122,54,24,125,122,54,198,82,122,54,91,40,122,54,215,253,121,54,57,211,121,54,130,168,121,54,178,125,121,54,201,82,121,54,199,39,121,54,172,252,120,54,119,209,120,54,42,166,120,54,195,122,120,54,67,79,120,54,171,35,120,54,249,247,119,54,46,204,119,54,75,160,119,54,78,116,119,54,57,72,119,54,10,28,119,54,195,239,118,54,99,195,118,54,234,150,118,54,89,106,118,54,174,61,118,54,235,16,118,54,15,228,117,54,26,183,117,54,13,138,117,54,231,92,117,54,168,47,117,54,81,2,
117,54,225,212,116,54,88,167,116,54,183,121,116,54,254,75,116,54,43,30,116,54,65,240,115,54,62,194,115,54,34,148,115,54,238,101,115,54,162,55,115,54,61,9,115,54,192,218,114,54,42,172,114,54,125,125,114,54,183,78,114,54,216,31,114,54,226,240,113,54,211,193,113,54,172,146,113,54,109,99,113,54,21,52,113,54,166,4,113,54,30,213,112,54,127,165,112,54,199,117,112,54,247,69,112,54,16,22,112,54,16,230,111,54,248,181,111,54,200,133,111,54,129,85,111,54,33,37,111,54,170,244,110,54,27,196,110,54,116,147,110,
54,181,98,110,54,222,49,110,54,240,0,110,54,234,207,109,54,204,158,109,54,150,109,109,54,73,60,109,54,228,10,109,54,104,217,108,54,212,167,108,54,40,118,108,54,101,68,108,54,138,18,108,54,152,224,107,54,143,174,107,54,109,124,107,54,53,74,107,54,229,23,107,54,126,229,106,54,255,178,106,54,105,128,106,54,188,77,106,54,247,26,106,54,27,232,105,54,40,181,105,54,30,130,105,54,253,78,105,54,196,27,105,54,116,232,104,54,14,181,104,54,144,129,104,54,251,77,104,54,79,26,104,54,140,230,103,54,178,178,103,
54,193,126,103,54,185,74,103,54,154,22,103,54,100,226,102,54,24,174,102,54,180,121,102,54,58,69,102,54,169,16,102,54,1,220,101,54,67,167,101,54,109,114,101,54,129,61,101,54,127,8,101,54,102,211,100,54,54,158,100,54,239,104,100,54,146,51,100,54,31,254,99,54,149,200,99,54,244,146,99,54,61,93,99,54,112,39,99,54,140,241,98,54,146,187,98,54,129,133,98,54,91,79,98,54,29,25,98,54,202,226,97,54,96,172,97,54,224,117,97,54,74,63,97,54,158,8,97,54,219,209,96,54,3,155,96,54,20,100,96,54,15,45,96,54,244,245,95,
54,195,190,95,54,124,135,95,54,32,80,95,54,173,24,95,54,36,225,94,54,133,169,94,54,209,113,94,54,7,58,94,54,38,2,94,54,48,202,93,54,37,146,93,54,3,90,93,54,204,33,93,54,127,233,92,54,29,177,92,54,165,120,92,54,23,64,92,54,116,7,92,54,187,206,91,54,237,149,91,54,9,93,91,54,15,36,91,54,1,235,90,54,220,177,90,54,163,120,90,54,84,63,90,54,239,5,90,54,118,204,89,54,231,146,89,54,67,89,89,54,137,31,89,54,187,229,88,54,215,171,88,54,222,113,88,54,208,55,88,54,173,253,87,54,117,195,87,54,39,137,87,54,197,
78,87,54,78,20,87,54,194,217,86,54,32,159,86,54,106,100,86,54,159,41,86,54,192,238,85,54,203,179,85,54,194,120,85,54,163,61,85,54,113,2,85,54,41,199,84,54,205,139,84,54,92,80,84,54,214,20,84,54,60,217,83,54,141,157,83,54,202,97,83,54,242,37,83,54,5,234,82,54,4,174,82,54,239,113,82,54,198,53,82,54,135,249,81,54,53,189,81,54,206,128,81,54,83,68,81,54,196,7,81,54,32,203,80,54,105,142,80,54,157,81,80,54,188,20,80,54,200,215,79,54,192,154,79,54,163,93,79,54,115,32,79,54,46,227,78,54,214,165,78,54,106,
104,78,54,233,42,78,54,85,237,77,54,173,175,77,54,241,113,77,54,33,52,77,54,61,246,76,54,70,184,76,54,59,122,76,54,28,60,76,54,233,253,75,54,163,191,75,54,73,129,75,54,220,66,75,54,91,4,75,54,199,197,74,54,31,135,74,54,99,72,74,54,148,9,74,54,178,202,73,54,188,139,73,54,179,76,73,54,151,13,73,54,103,206,72,54,36,143,72,54,206,79,72,54,100,16,72,54,232,208,71,54,88,145,71,54,181,81,71,54,255,17,71,54,54,210,70,54,90,146,70,54,107,82,70,54,104,18,70,54,83,210,69,54,43,146,69,54,240,81,69,54,163,17,
69,54,66,209,68,54,207,144,68,54,72,80,68,54,175,15,68,54,4,207,67,54,69,142,67,54,116,77,67,54,145,12,67,54,154,203,66,54,145,138,66,54,118,73,66,54,72,8,66,54,8,199,65,54,181,133,65,54,80,68,65,54,216,2,65,54,78,193,64,54,178,127,64,54,3,62,64,54,66,252,63,54,111,186,63,54,138,120,63,54,146,54,63,54,136,244,62,54,108,178,62,54,62,112,62,54,254,45,62,54,172,235,61,54,72,169,61,54,210,102,61,54,74,36,61,54,176,225,60,54,5,159,60,54,71,92,60,54,119,25,60,54,150,214,59,54,163,147,59,54,158,80,59,54,
136,13,59,54,96,202,58,54,38,135,58,54,219,67,58,54,126,0,58,54,15,189,57,54,143,121,57,54,254,53,57,54,91,242,56,54,166,174,56,54,224,106,56,54,9,39,56,54,33,227,55,54,39,159,55,54,28,91,55,54,255,22,55,54,210,210,54,54,147,142,54,54,67,74,54,54,226,5,54,54,112,193,53,54,237,124,53,54,89,56,53,54,179,243,52,54,253,174,52,54,54,106,52,54,94,37,52,54,117,224,51,54,124,155,51,54,113,86,51,54,86,17,51,54,42,204,50,54,237,134,50,54,159,65,50,54,65,252,49,54,210,182,49,54,83,113,49,54,195,43,49,54,35,
230,48,54,114,160,48,54,176,90,48,54,222,20,48,54,252,206,47,54,9,137,47,54,6,67,47,54,243,252,46,54,207,182,46,54,156,112,46,54,87,42,46,54,3,228,45,54,159,157,45,54,42,87,45,54,166,16,45,54,17,202,44,54,108,131,44,54,183,60,44,54,243,245,43,54,30,175,43,54,58,104,43,54,69,33,43,54,65,218,42,54,45,147,42,54,9,76,42,54,214,4,42,54,146,189,41,54,63,118,41,54,221,46,41,54,106,231,40,54,233,159,40,54,87,88,40,54,182,16,40,54,6,201,39,54,70,129,39,54,119,57,39,54,152,241,38,54,170,169,38,54,173,97,38,
54,160,25,38,54,132,209,37,54,89,137,37,54,31,65,37,54,213,248,36,54,125,176,36,54,21,104,36,54,158,31,36,54,24,215,35,54,131,142,35,54,223,69,35,54,45,253,34,54,107,180,34,54,154,107,34,54,187,34,34,54,205,217,33,54,208,144,33,54,196,71,33,54,169,254,32,54,128,181,32,54,72,108,32,54,2,35,32,54,173,217,31,54,73,144,31,54,215,70,31,54,87,253,30,54,200,179,30,54,42,106,30,54,126,32,30,54,196,214,29,54,251,140,29,54,37,67,29,54,63,249,28,54,76,175,28,54,75,101,28,54,59,27,28,54,29,209,27,54,241,134,
27,54,183,60,27,54,111,242,26,54,25,168,26,54,181,93,26,54,67,19,26,54,196,200,25,54,54,126,25,54,154,51,25,54,241,232,24,54,58,158,24,54,117,83,24,54,163,8,24,54,195,189,23,54,213,114,23,54,217,39,23,54,208,220,22,54,186,145,22,54,150,70,22,54,100,251,21,54,37,176,21,54,217,100,21,54,127,25,21,54,24,206,20,54,164,130,20,54,34,55,20,54,148,235,19,54,248,159,19,54,78,84,19,54,152,8,19,54,213,188,18,54,4,113,18,54,39,37,18,54,60,217,17,54,68,141,17,54,64,65,17,54,47,245,16,54,16,169,16,54,229,92,16,
54,173,16,16,54,105,196,15,54,23,120,15,54,185,43,15,54,79,223,14,54,215,146,14,54,83,70,14,54,195,249,13,54,38,173,13,54,124,96,13,54,198,19,13,54,3,199,12,54,52,122,12,54,89,45,12,54,114,224,11,54,126,147,11,54,126,70,11,54,113,249,10,54,89,172,10,54,52,95,10,54,3,18,10,54,198,196,9,54,125,119,9,54,40,42,9,54,199,220,8,54,90,143,8,54,225,65,8,54,92,244,7,54,203,166,7,54,47,89,7,54,135,11,7,54,211,189,6,54,19,112,6,54,71,34,6,54,112,212,5,54,142,134,5,54,159,56,5,54,165,234,4,54,160,156,4,54,143,
78,4,54,115,0,4,54,75,178,3,54,24,100,3,54,217,21,3,54,144,199,2,54,58,121,2,54,218,42,2,54,111,220,1,54,248,141,1,54,118,63,1,54,233,240,0,54,81,162,0,54,174,83,0,54,0,5,0,54,142,108,255,53,6,207,254,53,104,49,254,53,181,147,253,53,236,245,252,53,13,88,252,53,25,186,251,53,15,28,251,53,240,125,250,53,187,223,249,53,113,65,249,53,19,163,248,53,159,4,248,53,21,102,247,53,119,199,246,53,196,40,246,53,253,137,245,53,32,235,244,53,47,76,244,53,41,173,243,53,14,14,243,53,223,110,242,53,156,207,241,53,
68,48,241,53,216,144,240,53,88,241,239,53,196,81,239,53,27,178,238,53,95,18,238,53,142,114,237,53,170,210,236,53,178,50,236,53,166,146,235,53,135,242,234,53,83,82,234,53,13,178,233,53,179,17,233,53,69,113,232,53,196,208,231,53,48,48,231,53,137,143,230,53,207,238,229,53,2,78,229,53,33,173,228,53,46,12,228,53,40,107,227,53,15,202,226,53,228,40,226,53,166,135,225,53,85,230,224,53,242,68,224,53,124,163,223,53,244,1,223,53,90,96,222,53,174,190,221,53,239,28,221,53,31,123,220,53,60,217,219,53,72,55,219,
53,65,149,218,53,41,243,217,53,0,81,217,53,196,174,216,53,119,12,216,53,25,106,215,53,169,199,214,53,39,37,214,53,149,130,213,53,241,223,212,53,60,61,212,53,118,154,211,53,159,247,210,53,183,84,210,53,190,177,209,53,180,14,209,53,154,107,208,53,111,200,207,53,51,37,207,53,231,129,206,53,138,222,205,53,29,59,205,53,160,151,204,53,18,244,203,53,117,80,203,53,199,172,202,53,9,9,202,53,59,101,201,53,94,193,200,53,112,29,200,53,115,121,199,53,102,213,198,53,74,49,198,53,30,141,197,53,226,232,196,53,151,
68,196,53,61,160,195,53,212,251,194,53,91,87,194,53,211,178,193,53,61,14,193,53,151,105,192,53,226,196,191,53,31,32,191,53,76,123,190,53,108,214,189,53,124,49,189,53,126,140,188,53,114,231,187,53,87,66,187,53,45,157,186,53,246,247,185,53,176,82,185,53,92,173,184,53,250,7,184,53,139,98,183,53,13,189,182,53,129,23,182,53,232,113,181,53,65,204,180,53,140,38,180,53,202,128,179,53,250,218,178,53,29,53,178,53,51,143,177,53,59,233,176,53,54,67,176,53,36,157,175,53,5,247,174,53,217,80,174,53,160,170,173,
53,91,4,173,53,8,94,172,53,169,183,171,53,61,17,171,53,197,106,170,53,64,196,169,53,174,29,169,53,17,119,168,53,103,208,167,53,177,41,167,53,238,130,166,53,32,220,165,53,70,53,165,53,95,142,164,53,109,231,163,53,112,64,163,53,102,153,162,53,81,242,161,53,48,75,161,53,4,164,160,53,204,252,159,53,137,85,159,53,59,174,158,53,226,6,158,53,125,95,157,53,13,184,156,53,147,16,156,53,13,105,155,53,125,193,154,53,226,25,154,53,60,114,153,53,139,202,152,53,208,34,152,53,11,123,151,53,59,211,150,53,97,43,150,
53,124,131,149,53,141,219,148,53,148,51,148,53,145,139,147,53,132,227,146,53,110,59,146,53,77,147,145,53,34,235,144,53,238,66,144,53,176,154,143,53,105,242,142,53,24,74,142,53,190,161,141,53,90,249,140,53,237,80,140,53,119,168,139,53,248,255,138,53,112,87,138,53,222,174,137,53,68,6,137,53,161,93,136,53,245,180,135,53,65,12,135,53,132,99,134,53,190,186,133,53,240,17,133,53,25,105,132,53,58,192,131,53,83,23,131,53,100,110,130,53,108,197,129,53,109,28,129,53,101,115,128,53,171,148,127,53,125,66,126,
53,63,240,124,53,241,157,123,53,148,75,122,53,40,249,120,53,173,166,119,53,36,84,118,53,139,1,117,53,228,174,115,53,47,92,114,53,107,9,113,53,153,182,111,53,186,99,110,53,204,16,109,53,209,189,107,53,200,106,106,53,178,23,105,53,143,196,103,53,95,113,102,53,33,30,101,53,215,202,99,53,128,119,98,53,29,36,97,53,173,208,95,53,49,125,94,53,169,41,93,53,20,214,91,53,117,130,90,53,201,46,89,53,18,219,87,53,79,135,86,53,129,51,85,53,169,223,83,53,197,139,82,53,214,55,81,53,221,227,79,53,217,143,78,53,203,
59,77,53,178,231,75,53,144,147,74,53,99,63,73,53,45,235,71,53,237,150,70,53,164,66,69,53,81,238,67,53,245,153,66,53,143,69,65,53,33,241,63,53,170,156,62,53,43,72,61,53,163,243,59,53,18,159,58,53,121,74,57,53,217,245,55,53,48,161,54,53,127,76,53,53,199,247,51,53,7,163,50,53,64,78,49,53,114,249,47,53,156,164,46,53,192,79,45,53,221,250,43,53,243,165,42,53,2,81,41,53,12,252,39,53,15,167,38,53,12,82,37,53,3,253,35,53,244,167,34,53,224,82,33,53,198,253,31,53,166,168,30,53,130,83,29,53,88,254,27,53,41,169,
26,53,246,83,25,53,190,254,23,53,129,169,22,53,65,84,21,53,251,254,19,53,178,169,18,53,101,84,17,53,20,255,15,53,191,169,14,53,103,84,13,53,12,255,11,53,173,169,10,53,75,84,9,53,231,254,7,53,127,169,6,53,21,84,5,53,168,254,3,53,57,169,2,53,200,83,1,53,169,252,255,52,190,81,253,52,208,166,250,52,222,251,247,52,234,80,245,52,243,165,242,52,249,250,239,52,253,79,237,52,255,164,234,52,0,250,231,52,255,78,229,52,253,163,226,52,251,248,223,52,248,77,221,52,245,162,218,52,242,247,215,52,239,76,213,52,237,
161,210,52,236,246,207,52,237,75,205,52,239,160,202,52,242,245,199,52,248,74,197,52,0,160,194,52,11,245,191,52,25,74,189,52,42,159,186,52,63,244,183,52,87,73,181,52,116,158,178,52,149,243,175,52,186,72,173,52,229,157,170,52,20,243,167,52,74,72,165,52,133,157,162,52,198,242,159,52,13,72,157,52,92,157,154,52,177,242,151,52,13,72,149,52,113,157,146,52,221,242,143,52,81,72,141,52,205,157,138,52,81,243,135,52,223,72,133,52,118,158,130,52,45,232,127,52,129,147,122,52,234,62,117,52,103,234,111,52,249,149,
106,52,162,65,101,52,96,237,95,52,54,153,90,52,35,69,85,52,40,241,79,52,70,157,74,52,125,73,69,52,206,245,63,52,57,162,58,52,192,78,53,52,97,251,47,52,31,168,42,52,249,84,37,52,241,1,32,52,6,175,26,52,58,92,21,52,140,9,16,52,254,182,10,52,144,100,5,52,66,18,0,52,43,128,245,51,22,220,234,51,69,56,224,51,185,148,213,51,117,241,202,51,120,78,192,51,196,171,181,51,91,9,171,51,61,103,160,51,107,197,149,51,230,35,139,51,177,130,128,51,150,195,107,51,108,130,86,51,230,65,65,51,6,2,44,51,207,194,22,51,67,
132,1,51,199,140,216,50,103,18,174,50,107,153,131,50,171,67,50,50,176,174,186,49,110,222,6,48,65,241,152,177,53,92,33,178,205,60,118,178,48,141,165,178,115,250,207,178,42,102,250,178,41,104,18,179,114,156,39,179,240,207,60,179,158,2,82,179,123,52,103,179,134,101,124,179,221,202,136,179,140,98,147,179,206,249,157,179,162,144,168,179,6,39,179,179,251,188,189,179,125,82,200,179,142,231,210,179,43,124,221,179,83,16,232,179,5,164,242,179,64,55,253,179,2,229,3,180,39,46,9,180,15,119,14,180,185,191,19,180,
37,8,25,180,82,80,30,180,63,152,35,180,237,223,40,180,90,39,46,180,135,110,51,180,113,181,56,180,26,252,61,180,128,66,67,180,162,136,72,180,129,206,77,180,27,20,83,180,113,89,88,180,128,158,93,180,74,227,98,180,206,39,104,180,10,108,109,180,254,175,114,180,171,243,119,180,14,55,125,180,20,61,129,180,124,222,131,180,191,127,134,180,220,32,137,180,212,193,139,180,166,98,142,180,81,3,145,180,213,163,147,180,51,68,150,180,106,228,152,180,121,132,155,180,96,36,158,180,32,196,160,180,183,99,163,180,38,
3,166,180,108,162,168,180,136,65,171,180,124,224,173,180,70,127,176,180,229,29,179,180,91,188,181,180,166,90,184,180,199,248,186,180,189,150,189,180,135,52,192,180,38,210,194,180,152,111,197,180,223,12,200,180,250,169,202,180,232,70,205,180,168,227,207,180,60,128,210,180,162,28,213,180,219,184,215,180,229,84,218,180,194,240,220,180,111,140,223,180,238,39,226,180,62,195,228,180,94,94,231,180,79,249,233,180,16,148,236,180,161,46,239,180,1,201,241,180,48,99,244,180,47,253,246,180,252,150,249,180,152,
48,252,180,1,202,254,180,157,177,0,181,31,254,1,181,137,74,3,181,217,150,4,181,15,227,5,181,44,47,7,181,47,123,8,181,23,199,9,181,230,18,11,181,154,94,12,181,53,170,13,181,180,245,14,181,25,65,16,181,99,140,17,181,146,215,18,181,166,34,20,181,159,109,21,181,125,184,22,181,63,3,24,181,229,77,25,181,112,152,26,181,223,226,27,181,49,45,29,181,104,119,30,181,130,193,31,181,129,11,33,181,98,85,34,181,39,159,35,181,207,232,36,181,90,50,38,181,200,123,39,181,24,197,40,181,76,14,42,181,98,87,43,181,90,160,
44,181,53,233,45,181,241,49,47,181,144,122,48,181,17,195,49,181,115,11,51,181,183,83,52,181,220,155,53,181,227,227,54,181,203,43,56,181,147,115,57,181,61,187,58,181,200,2,60,181,51,74,61,181,127,145,62,181,171,216,63,181,184,31,65,181,164,102,66,181,113,173,67,181,29,244,68,181,169,58,70,181,21,129,71,181,96,199,72,181,139,13,74,181,149,83,75,181,126,153,76,181,70,223,77,181,236,36,79,181,114,106,80,181,213,175,81,181,24,245,82,181,56,58,84,181,55,127,85,181,20,196,86,181,207,8,88,181,103,77,89,181,
221,145,90,181,49,214,91,181,98,26,93,181,112,94,94,181,91,162,95,181,35,230,96,181,201,41,98,181,74,109,99,181,169,176,100,181,228,243,101,181,251,54,103,181,238,121,104,181,190,188,105,181,105,255,106,181,241,65,108,181,83,132,109,181,146,198,110,181,172,8,112,181,161,74,113,181,113,140,114,181,29,206,115,181,163,15,117,181,4,81,118,181,64,146,119,181,86,211,120,181,71,20,122,181,18,85,123,181,183,149,124,181,54,214,125,181,142,22,127,181,96,43,128,181,103,203,128,181,89,107,129,181,57,11,130,181,
5,171,130,181,190,74,131,181,99,234,131,181,245,137,132,181,115,41,133,181,221,200,133,181,51,104,134,181,118,7,135,181,165,166,135,181,192,69,136,181,198,228,136,181,185,131,137,181,152,34,138,181,98,193,138,181,24,96,139,181,186,254,139,181,71,157,140,181,192,59,141,181,36,218,141,181,116,120,142,181,175,22,143,181,213,180,143,181,231,82,144,181,228,240,144,181,203,142,145,181,158,44,146,181,92,202,146,181,5,104,147,181,152,5,148,181,22,163,148,181,127,64,149,181,211,221,149,181,17,123,150,181,
58,24,151,181,77,181,151,181,75,82,152,181,51,239,152,181,5,140,153,181,193,40,154,181,104,197,154,181,249,97,155,181,115,254,155,181,216,154,156,181,38,55,157,181,95,211,157,181,129,111,158,181,141,11,159,181,130,167,159,181,97,67,160,181,42,223,160,181,220,122,161,181,119,22,162,181,252,177,162,181,106,77,163,181,194,232,163,181,2,132,164,181,44,31,165,181,62,186,165,181,58,85,166,181,30,240,166,181,235,138,167,181,162,37,168,181,64,192,168,181,200,90,169,181,56,245,169,181,145,143,170,181,210,
41,171,181,251,195,171,181,13,94,172,181,7,248,172,181,233,145,173,181,180,43,174,181,103,197,174,181,1,95,175,181,132,248,175,181,239,145,176,181,65,43,177,181,123,196,177,181,158,93,178,181,167,246,178,181,153,143,179,181,114,40,180,181,50,193,180,181,218,89,181,181,105,242,181,181,224,138,182,181,61,35,183,181,130,187,183,181,175,83,184,181,194,235,184,181,188,131,185,181,157,27,186,181,102,179,186,181,21,75,187,181,170,226,187,181,39,122,188,181,138,17,189,181,212,168,189,181,4,64,190,181,27,
215,190,181,24,110,191,181,251,4,192,181,197,155,192,181,117,50,193,181,12,201,193,181,136,95,194,181,235,245,194,181,51,140,195,181,98,34,196,181,118,184,196,181,112,78,197,181,80,228,197,181,22,122,198,181,193,15,199,181,82,165,199,181,200,58,200,181,36,208,200,181,101,101,201,181,140,250,201,181,152,143,202,181,137,36,203,181,96,185,203,181,27,78,204,181,188,226,204,181,65,119,205,181,172,11,206,181,251,159,206,181,48,52,207,181,73,200,207,181,70,92,208,181,41,240,208,181,240,131,209,181,155,23,
210,181,43,171,210,181,160,62,211,181,249,209,211,181,54,101,212,181,87,248,212,181,93,139,213,181,70,30,214,181,20,177,214,181,198,67,215,181,92,214,215,181,214,104,216,181,51,251,216,181,117,141,217,181,154,31,218,181,162,177,218,181,143,67,219,181,95,213,219,181,18,103,220,181,169,248,220,181,35,138,221,181,129,27,222,181,194,172,222,181,230,61,223,181,237,206,223,181,216,95,224,181,165,240,224,181,86,129,225,181,233,17,226,181,95,162,226,181,184,50,227,181,244,194,227,181,19,83,228,181,20,227,
228,181,248,114,229,181,191,2,230,181,103,146,230,181,243,33,231,181,96,177,231,181,176,64,232,181,227,207,232,181,247,94,233,181,238,237,233,181,199,124,234,181,130,11,235,181,30,154,235,181,157,40,236,181,254,182,236,181,64,69,237,181,100,211,237,181,106,97,238,181,82,239,238,181,27,125,239,181,198,10,240,181,82,152,240,181,192,37,241,181,15,179,241,181,63,64,242,181,81,205,242,181,67,90,243,181,23,231,243,181,205,115,244,181,99,0,245,181,218,140,245,181,50,25,246,181,107,165,246,181,133,49,247,
181,128,189,247,181,91,73,248,181,23,213,248,181,180,96,249,181,49,236,249,181,142,119,250,181,205,2,251,181,235,141,251,181,234,24,252,181,201,163,252,181,137,46,253,181,40,185,253,181,168,67,254,181,8,206,254,181,72,88,255,181,104,226,255,181,52,54,0,182,36,123,0,182,3,192,0,182,211,4,1,182,147,73,1,182,66,142,1,182,225,210,1,182,112,23,2,182,238,91,2,182,93,160,2,182,187,228,2,182,9,41,3,182,70,109,3,182,115,177,3,182,143,245,3,182,156,57,4,182,151,125,4,182,130,193,4,182,93,5,5,182,39,73,5,182,
225,140,5,182,138,208,5,182,34,20,6,182,170,87,6,182,33,155,6,182,135,222,6,182,221,33,7,182,34,101,7,182,86,168,7,182,121,235,7,182,139,46,8,182,141,113,8,182,126,180,8,182,94,247,8,182,45,58,9,182,235,124,9,182,152,191,9,182,52,2,10,182,190,68,10,182,56,135,10,182,161,201,10,182,249,11,11,182,63,78,11,182,117,144,11,182,153,210,11,182,172,20,12,182,174,86,12,182,158,152,12,182,126,218,12,182,76,28,13,182,8,94,13,182,179,159,13,182,77,225,13,182,214,34,14,182,77,100,14,182,178,165,14,182,6,231,14,
182,73,40,15,182,122,105,15,182,154,170,15,182,167,235,15,182,164,44,16,182,142,109,16,182,103,174,16,182,47,239,16,182,228,47,17,182,136,112,17,182,26,177,17,182,155,241,17,182,9,50,18,182,102,114,18,182,177,178,18,182,234,242,18,182,17,51,19,182,38,115,19,182,41,179,19,182,26,243,19,182,249,50,20,182,199,114,20,182,130,178,20,182,43,242,20,182,194,49,21,182,71,113,21,182,185,176,21,182,26,240,21,182,104,47,22,182,164,110,22,182,206,173,22,182,230,236,22,182,235,43,23,182,222,106,23,182,191,169,
23,182,141,232,23,182,73,39,24,182,243,101,24,182,138,164,24,182,15,227,24,182,129,33,25,182,224,95,25,182,46,158,25,182,104,220,25,182,144,26,26,182,166,88,26,182,168,150,26,182,153,212,26,182,118,18,27,182,65,80,27,182,249,141,27,182,158,203,27,182,49,9,28,182,177,70,28,182,30,132,28,182,120,193,28,182,191,254,28,182,244,59,29,182,21,121,29,182,36,182,29,182,32,243,29,182,8,48,30,182,222,108,30,182,161,169,30,182,81,230,30,182,237,34,31,182,119,95,31,182,237,155,31,182,81,216,31,182,161,20,32,182,
222,80,32,182,8,141,32,182,30,201,32,182,34,5,33,182,18,65,33,182,238,124,33,182,184,184,33,182,110,244,33,182,17,48,34,182,160,107,34,182,29,167,34,182,133,226,34,182,218,29,35,182,28,89,35,182,74,148,35,182,101,207,35,182,108,10,36,182,96,69,36,182,64,128,36,182,13,187,36,182,198,245,36,182,107,48,37,182,253,106,37,182,122,165,37,182,229,223,37,182,59,26,38,182,126,84,38,182,173,142,38,182,200,200,38,182,208,2,39,182,195,60,39,182,163,118,39,182,111,176,39,182,39,234,39,182,203,35,40,182,91,93,
40,182,215,150,40,182,63,208,40,182,147,9,41,182,211,66,41,182,255,123,41,182,23,181,41,182,27,238,41,182,11,39,42,182,231,95,42,182,174,152,42,182,98,209,42,182,1,10,43,182,140,66,43,182,2,123,43,182,101,179,43,182,179,235,43,182,237,35,44,182,18,92,44,182,36,148,44,182,32,204,44,182,9,4,45,182,221,59,45,182,157,115,45,182,72,171,45,182,223,226,45,182,97,26,46,182,207,81,46,182,40,137,46,182,109,192,46,182,157,247,46,182,184,46,47,182,191,101,47,182,178,156,47,182,143,211,47,182,88,10,48,182,13,
65,48,182,172,119,48,182,55,174,48,182,173,228,48,182,15,27,49,182,91,81,49,182,147,135,49,182,182,189,49,182,196,243,49,182,190,41,50,182,162,95,50,182,114,149,50,182,44,203,50,182,210,0,51,182,98,54,51,182,222,107,51,182,69,161,51,182,150,214,51,182,211,11,52,182,251,64,52,182,13,118,52,182,10,171,52,182,243,223,52,182,198,20,53,182,132,73,53,182,45,126,53,182,192,178,53,182,63,231,53,182,168,27,54,182,252,79,54,182,58,132,54,182,100,184,54,182,120,236,54,182,118,32,55,182,96,84,55,182,52,136,55,
182,242,187,55,182,156,239,55,182,47,35,56,182,174,86,56,182,23,138,56,182,106,189,56,182,168,240,56,182,209,35,57,182,227,86,57,182,225,137,57,182,201,188,57,182,155,239,57,182,87,34,58,182,254,84,58,182,144,135,58,182,11,186,58,182,113,236,58,182,194,30,59,182,252,80,59,182,33,131,59,182,48,181,59,182,41,231,59,182,13,25,60,182,219,74,60,182,147,124,60,182,53,174,60,182,193,223,60,182,55,17,61,182,152,66,61,182,226,115,61,182,23,165,61,182,54,214,61,182,62,7,62,182,49,56,62,182,14,105,62,182,212,
153,62,182,133,202,62,182,32,251,62,182,164,43,63,182,19,92,63,182,107,140,63,182,173,188,63,182,218,236,63,182,240,28,64,182,239,76,64,182,217,124,64,182,172,172,64,182,106,220,64,182,16,12,65,182,161,59,65,182,28,107,65,182,128,154,65,182,206,201,65,182,5,249,65,182,38,40,66,182,49,87,66,182,37,134,66,182,4,181,66,182,203,227,66,182,124,18,67,182,23,65,67,182,156,111,67,182,9,158,67,182,97,204,67,182,162,250,67,182,204,40,68,182,224,86,68,182,221,132,68,182,196,178,68,182,148,224,68,182,77,14,69,
182,240,59,69,182,125,105,69,182,242,150,69,182,81,196,69,182,153,241,69,182,203,30,70,182,230,75,70,182,234,120,70,182,215,165,70,182,174,210,70,182,110,255,70,182,23,44,71,182,169,88,71,182,37,133,71,182,137,177,71,182,215,221,71,182,14,10,72,182,46,54,72,182,55,98,72,182,41,142,72,182,4,186,72,182,201,229,72,182,118,17,73,182,12,61,73,182,140,104,73,182,244,147,73,182,70,191,73,182,128,234,73,182,163,21,74,182,175,64,74,182,165,107,74,182,131,150,74,182,74,193,74,182,249,235,74,182,146,22,75,182,
20,65,75,182,126,107,75,182,209,149,75,182,13,192,75,182,50,234,75,182,63,20,76,182,54,62,76,182,21,104,76,182,221,145,76,182,141,187,76,182,38,229,76,182,168,14,77,182,19,56,77,182,102,97,77,182,162,138,77,182,198,179,77,182,211,220,77,182,201,5,78,182,167,46,78,182,110,87,78,182,30,128,78,182,182,168,78,182,54,209,78,182,159,249,78,182,241,33,79,182,43,74,79,182,78,114,79,182,89,154,79,182,76,194,79,182,40,234,79,182,236,17,80,182,153,57,80,182,46,97,80,182,172,136,80,182,18,176,80,182,96,215,80,
182,150,254,80,182,181,37,81,182,189,76,81,182,172,115,81,182,132,154,81,182,68,193,81,182,237,231,81,182,125,14,82,182,246,52,82,182,87,91,82,182,161,129,82,182,210,167,82,182,236,205,82,182,238,243,82,182,216,25,83,182,170,63,83,182,101,101,83,182,7,139,83,182,146,176,83,182,5,214,83,182,95,251,83,182,162,32,84,182,205,69,84,182,224,106,84,182,219,143,84,182,190,180,84,182,138,217,84,182,61,254,84,182,216,34,85,182,91,71,85,182,198,107,85,182,25,144,85,182,84,180,85,182,119,216,85,182,130,252,85,
182,116,32,86,182,79,68,86,182,18,104,86,182,188,139,86,182,78,175,86,182,200,210,86,182,42,246,86,182,116,25,87,182,166,60,87,182,191,95,87,182,192,130,87,182,169,165,87,182,122,200,87,182,50,235,87,182,211,13,88,182,91,48,88,182,202,82,88,182,34,117,88,182,97,151,88,182,136,185,88,182,150,219,88,182,141,253,88,182,106,31,89,182,48,65,89,182,221,98,89,182,114,132,89,182,238,165,89,182,82,199,89,182,158,232,89,182,209,9,90,182,236,42,90,182,238,75,90,182,216,108,90,182,169,141,90,182,98,174,90,182,
3,207,90,182,139,239,90,182,250,15,91,182,81,48,91,182,144,80,91,182,182,112,91,182,195,144,91,182,184,176,91,182,148,208,91,182,88,240,91,182,3,16,92,182,150,47,92,182,16,79,92,182,113,110,92,182,186,141,92,182,234,172,92,182,1,204,92,182,0,235,92,182,230,9,93,182,180,40,93,182,105,71,93,182,5,102,93,182,136,132,93,182,243,162,93,182,69,193,93,182,126,223,93,182,159,253,93,182,167,27,94,182,150,57,94,182,108,87,94,182,42,117,94,182,206,146,94,182,90,176,94,182,206,205,94,182,40,235,94,182,106,8,
95,182,146,37,95,182,162,66,95,182,153,95,95,182,120,124,95,182,61,153,95,182,234,181,95,182,125,210,95,182,248,238,95,182,90,11,96,182,163,39,96,182,211,67,96,182,234,95,96,182,232,123,96,182,206,151,96,182,154,179,96,182,78,207,96,182,232,234,96,182,105,6,97,182,210,33,97,182,34,61,97,182,88,88,97,182,118,115,97,182,122,142,97,182,102,169,97,182,56,196,97,182,242,222,97,182,146,249,97,182,26,20,98,182,136,46,98,182,221,72,98,182,25,99,98,182,61,125,98,182,71,151,98,182,56,177,98,182,15,203,98,182,
206,228,98,182,116,254,98,182,0,24,99,182,116,49,99,182,206,74,99,182,15,100,99,182,55,125,99,182,70,150,99,182,60,175,99,182,24,200,99,182,219,224,99,182,134,249,99,182,23,18,100,182,142,42,100,182,237,66,100,182,50,91,100,182,94,115,100,182,113,139,100,182,107,163,100,182,75,187,100,182,18,211,100,182,192,234,100,182,85,2,101,182,209,25,101,182,51,49,101,182,124,72,101,182,171,95,101,182,193,118,101,182,190,141,101,182,162,164,101,182,108,187,101,182,30,210,101,182,181,232,101,182,52,255,101,182,
153,21,102,182,229,43,102,182,23,66,102,182,48,88,102,182,48,110,102,182,22,132,102,182,227,153,102,182,151,175,102,182,49,197,102,182,178,218,102,182,25,240,102,182,103,5,103,182,156,26,103,182,183,47,103,182,185,68,103,182,162,89,103,182,113,110,103,182,38,131,103,182,195,151,103,182,69,172,103,182,175,192,103,182,254,212,103,182,53,233,103,182,82,253,103,182,85,17,104,182,63,37,104,182,16,57,104,182,199,76,104,182,100,96,104,182,233,115,104,182,83,135,104,182,164,154,104,182,220,173,104,182,250,
192,104,182,255,211,104,182,234,230,104,182,187,249,104,182,115,12,105,182,18,31,105,182,151,49,105,182,2,68,105,182,84,86,105,182,141,104,105,182,171,122,105,182,177,140,105,182,156,158,105,182,111,176,105,182,39,194,105,182,198,211,105,182,76,229,105,182,184,246,105,182,10,8,106,182,67,25,106,182,98,42,106,182,103,59,106,182,83,76,106,182,38,93,106,182,222,109,106,182,125,126,106,182,3,143,106,182,111,159,106,182,193,175,106,182,250,191,106,182,25,208,106,182,30,224,106,182,10,240,106,182,221,255,
106,182,149,15,107,182,52,31,107,182,185,46,107,182,37,62,107,182,119,77,107,182,175,92,107,182,206,107,107,182,211,122,107,182,190,137,107,182,144,152,107,182,72,167,107,182,231,181,107,182,107,196,107,182,214,210,107,182,40,225,107,182,95,239,107,182,125,253,107,182,130,11,108,182,108,25,108,182,61,39,108,182,245,52,108,182,146,66,108,182,22,80,108,182,128,93,108,182,209,106,108,182,8,120,108,182,37,133,108,182,40,146,108,182,18,159,108,182,226,171,108,182,152,184,108,182,53,197,108,182,184,209,
108,182,33,222,108,182,112,234,108,182,166,246,108,182,194,2,109,182,196,14,109,182,173,26,109,182,124,38,109,182,49,50,109,182,204,61,109,182,78,73,109,182,182,84,109,182,4,96,109,182,56,107,109,182,83,118,109,182,84,129,109,182,59,140,109,182,9,151,109,182,189,161,109,182,87,172,109,182,215,182,109,182,62,193,109,182,139,203,109,182,190,213,109,182,215,223,109,182,215,233,109,182,189,243,109,182,137,253,109,182,59,7,110,182,212,16,110,182,83,26,110,182,184,35,110,182,3,45,110,182,53,54,110,182,
77,63,110,182,75,72,110,182,47,81,110,182,250,89,110,182,171,98,110,182,66,107,110,182,191,115,110,182,35,124,110,182,109,132,110,182,157,140,110,182,180,148,110,182,176,156,110,182,147,164,110,182,92,172,110,182,12,180,110,182,161,187,110,182,29,195,110,182,128,202,110,182,200,209,110,182,247,216,110,182,12,224,110,182,7,231,110,182,232,237,110,182,176,244,110,182,94,251,110,182,242,1,111,182,109,8,111,182,206,14,111,182,21,21,111,182,66,27,111,182,85,33,111,182,79,39,111,182,47,45,111,182],"i8",
4,y.a+1208320);
Q([246,50,111,182,162,56,111,182,53,62,111,182,174,67,111,182,14,73,111,182,83,78,111,182,127,83,111,182,145,88,111,182,138,93,111,182,105,98,111,182,46,103,111,182,217,107,111,182,107,112,111,182,226,116,111,182,65,121,111,182,133,125,111,182,176,129,111,182,193,133,111,182,184,137,111,182,150,141,111,182,90,145,111,182,4,149,111,182,148,152,111,182,11,156,111,182,104,159,111,182,172,162,111,182,213,165,111,182,229,168,111,182,220,171,111,182,184,174,111,182,123,177,111,182,37,180,111,182,180,182,
111,182,42,185,111,182,134,187,111,182,201,189,111,182,242,191,111,182,1,194,111,182,247,195,111,182,211,197,111,182,149,199,111,182,62,201,111,182,204,202,111,182,66,204,111,182,157,205,111,182,223,206,111,182,8,208,111,182,22,209,111,182,12,210,111,182,231,210,111,182,169,211,111,182,81,212,111,182,224,212,111,182,85,213,111,182,176,213,111,182,242,213,111,182,26,214,111,182,40,214,111,182,29,214,111,182,248,213,111,182,186,213,111,182,98,213,111,182,241,212,111,182,102,212,111,182,193,211,111,
182,3,211,111,182,43,210,111,182,58,209,111,182,47,208,111,182,10,207,111,182,204,205,111,182,116,204,111,182,3,203,111,182,121,201,111,182,212,199,111,182,22,198,111,182,63,196,111,182,78,194,111,182,68,192,111,182,32,190,111,182,227,187,111,182,140,185,111,182,27,183,111,182,145,180,111,182,238,177,111,182,49,175,111,182,90,172,111,182,107,169,111,182,97,166,111,182,62,163,111,182,2,160,111,182,172,156,111,182,61,153,111,182,180,149,111,182,18,146,111,182,86,142,111,182,129,138,111,182,147,134,
111,182,139,130,111,182,105,126,111,182,47,122,111,182,218,117,111,182,109,113,111,182,230,108,111,182,69,104,111,182,139,99,111,182,184,94,111,182,204,89,111,182,198,84,111,182,166,79,111,182,110,74,111,182,28,69,111,182,176,63,111,182,43,58,111,182,141,52,111,182,214,46,111,182,5,41,111,182,27,35,111,182,23,29,111,182,251,22,111,182,197,16,111,182,117,10,111,182,13,4,111,182,139,253,110,182,239,246,110,182,59,240,110,182,109,233,110,182,134,226,110,182,134,219,110,182,108,212,110,182,57,205,110,
182,237,197,110,182,136,190,110,182,9,183,110,182,114,175,110,182,193,167,110,182,247,159,110,182,19,152,110,182,23,144,110,182,1,136,110,182,210,127,110,182,138,119,110,182,40,111,110,182,174,102,110,182,26,94,110,182,110,85,110,182,168,76,110,182,201,67,110,182,209,58,110,182,191,49,110,182,149,40,110,182,82,31,110,182,245,21,110,182,127,12,110,182,241,2,110,182,73,249,109,182,136,239,109,182,174,229,109,182,187,219,109,182,175,209,109,182,138,199,109,182,76,189,109,182,245,178,109,182,133,168,
109,182,252,157,109,182,89,147,109,182,158,136,109,182,202,125,109,182,221,114,109,182,215,103,109,182,184,92,109,182,128,81,109,182,47,70,109,182,197,58,109,182,67,47,109,182,167,35,109,182,242,23,109,182,37,12,109,182,62,0,109,182,63,244,108,182,39,232,108,182,246,219,108,182,172,207,108,182,73,195,108,182,206,182,108,182,57,170,108,182,140,157,108,182,198,144,108,182,231,131,108,182,240,118,108,182,223,105,108,182,182,92,108,182,116,79,108,182,25,66,108,182,166,52,108,182,25,39,108,182,116,25,
108,182,183,11,108,182,224,253,107,182,241,239,107,182,233,225,107,182,201,211,107,182,144,197,107,182,62,183,107,182,211,168,107,182,80,154,107,182,180,139,107,182,255,124,107,182,50,110,107,182,77,95,107,182,78,80,107,182,55,65,107,182,8,50,107,182,192,34,107,182,95,19,107,182,230,3,107,182,84,244,106,182,170,228,106,182,231,212,106,182,11,197,106,182,24,181,106,182,11,165,106,182,230,148,106,182,169,132,106,182,83,116,106,182,229,99,106,182,94,83,106,182,191,66,106,182,7,50,106,182,55,33,106,182,
79,16,106,182,78,255,105,182,53,238,105,182,3,221,105,182,186,203,105,182,87,186,105,182,221,168,105,182,74,151,105,182,158,133,105,182,219,115,105,182,255,97,105,182,11,80,105,182,254,61,105,182,217,43,105,182,156,25,105,182,71,7,105,182,218,244,104,182,84,226,104,182,182,207,104,182,0,189,104,182,50,170,104,182,75,151,104,182,76,132,104,182,54,113,104,182,7,94,104,182,192,74,104,182,96,55,104,182,233,35,104,182,89,16,104,182,178,252,103,182,242,232,103,182,27,213,103,182,43,193,103,182,35,173,103,
182,3,153,103,182,203,132,103,182,123,112,103,182,20,92,103,182,148,71,103,182,252,50,103,182,76,30,103,182,132,9,103,182,165,244,102,182,173,223,102,182,158,202,102,182,118,181,102,182,55,160,102,182,224,138,102,182,113,117,102,182,234,95,102,182,75,74,102,182,148,52,102,182,198,30,102,182,224,8,102,182,226,242,101,182,204,220,101,182,159,198,101,182,89,176,101,182,252,153,101,182,135,131,101,182,251,108,101,182,87,86,101,182,155,63,101,182,199,40,101,182,220,17,101,182,217,250,100,182,191,227,100,
182,141,204,100,182,67,181,100,182,225,157,100,182,104,134,100,182,216,110,100,182,48,87,100,182,112,63,100,182,153,39,100,182,170,15,100,182,164,247,99,182,134,223,99,182,81,199,99,182,4,175,99,182,160,150,99,182,37,126,99,182,146,101,99,182,231,76,99,182,37,52,99,182,76,27,99,182,92,2,99,182,84,233,98,182,52,208,98,182,254,182,98,182,176,157,98,182,74,132,98,182,206,106,98,182,58,81,98,182,143,55,98,182,205,29,98,182,243,3,98,182,2,234,97,182,250,207,97,182,219,181,97,182,164,155,97,182,87,129,
97,182,242,102,97,182,118,76,97,182,227,49,97,182,57,23,97,182,120,252,96,182,159,225,96,182,176,198,96,182,170,171,96,182,140,144,96,182,88,117,96,182,12,90,96,182,169,62,96,182,48,35,96,182,159,7,96,182,248,235,95,182,58,208,95,182,100,180,95,182,120,152,95,182,117,124,95,182,91,96,95,182,42,68,95,182,227,39,95,182,132,11,95,182,15,239,94,182,131,210,94,182,224,181,94,182,38,153,94,182,85,124,94,182,110,95,94,182,112,66,94,182,92,37,94,182,48,8,94,182,238,234,93,182,149,205,93,182,38,176,93,182,
160,146,93,182,3,117,93,182,80,87,93,182,134,57,93,182,166,27,93,182,175,253,92,182,161,223,92,182,125,193,92,182,67,163,92,182,242,132,92,182,138,102,92,182,12,72,92,182,120,41,92,182,205,10,92,182,11,236,91,182,52,205,91,182,70,174,91,182,65,143,91,182,38,112,91,182,245,80,91,182,174,49,91,182,80,18,91,182,220,242,90,182,81,211,90,182,177,179,90,182,250,147,90,182,45,116,90,182,73,84,90,182,80,52,90,182,64,20,90,182,26,244,89,182,222,211,89,182,140,179,89,182,36,147,89,182,166,114,89,182,17,82,
89,182,103,49,89,182,166,16,89,182,208,239,88,182,227,206,88,182,225,173,88,182,200,140,88,182,154,107,88,182,85,74,88,182,251,40,88,182,138,7,88,182,4,230,87,182,104,196,87,182,182,162,87,182,239,128,87,182,17,95,87,182,30,61,87,182,20,27,87,182,245,248,86,182,193,214,86,182,118,180,86,182,22,146,86,182,160,111,86,182,21,77,86,182,115,42,86,182,189,7,86,182,240,228,85,182,14,194,85,182,22,159,85,182,9,124,85,182,230,88,85,182,173,53,85,182,95,18,85,182,252,238,84,182,131,203,84,182,245,167,84,182,
81,132,84,182,151,96,84,182,200,60,84,182,228,24,84,182,235,244,83,182,220,208,83,182,183,172,83,182,126,136,83,182,47,100,83,182,202,63,83,182,81,27,83,182,194,246,82,182,30,210,82,182,101,173,82,182,150,136,82,182,179,99,82,182,186,62,82,182,172,25,82,182,137,244,81,182,80,207,81,182,3,170,81,182,161,132,81,182,41,95,81,182,157,57,81,182,251,19,81,182,69,238,80,182,121,200,80,182,153,162,80,182,163,124,80,182,153,86,80,182,121,48,80,182,69,10,80,182,252,227,79,182,158,189,79,182,43,151,79,182,164,
112,79,182,7,74,79,182,86,35,79,182,144,252,78,182,182,213,78,182,198,174,78,182,194,135,78,182,169,96,78,182,124,57,78,182,58,18,78,182,227,234,77,182,120,195,77,182,248,155,77,182,99,116,77,182,186,76,77,182,253,36,77,182,43,253,76,182,68,213,76,182,73,173,76,182,58,133,76,182,22,93,76,182,221,52,76,182,145,12,76,182,48,228,75,182,186,187,75,182,48,147,75,182,146,106,75,182,224,65,75,182,25,25,75,182,62,240,74,182,79,199,74,182,76,158,74,182,52,117,74,182,8,76,74,182,200,34,74,182,116,249,73,182,
12,208,73,182,144,166,73,182,255,124,73,182,91,83,73,182,162,41,73,182,214,255,72,182,245,213,72,182,1,172,72,182,249,129,72,182,220,87,72,182,172,45,72,182,104,3,72,182,16,217,71,182,164,174,71,182,36,132,71,182,145,89,71,182,233,46,71,182,46,4,71,182,95,217,70,182,125,174,70,182,135,131,70,182,125,88,70,182,95,45,70,182,46,2,70,182,233,214,69,182,144,171,69,182,36,128,69,182,164,84,69,182,17,41,69,182,106,253,68,182,176,209,68,182,226,165,68,182,1,122,68,182,12,78,68,182,4,34,68,182,233,245,67,
182,186,201,67,182,120,157,67,182,34,113,67,182,185,68,67,182,61,24,67,182,174,235,66,182,11,191,66,182,85,146,66,182,140,101,66,182,176,56,66,182,192,11,66,182,190,222,65,182,168,177,65,182,127,132,65,182,67,87,65,182,244,41,65,182,146,252,64,182,29,207,64,182,149,161,64,182,250,115,64,182,76,70,64,182,140,24,64,182,184,234,63,182,209,188,63,182,216,142,63,182,203,96,63,182,172,50,63,182,122,4,63,182,53,214,62,182,222,167,62,182,115,121,62,182,246,74,62,182,103,28,62,182,196,237,61,182,16,191,61,
182,72,144,61,182,110,97,61,182,129,50,61,182,130,3,61,182,112,212,60,182,75,165,60,182,21,118,60,182,203,70,60,182,111,23,60,182,1,232,59,182,129,184,59,182,238,136,59,182,72,89,59,182,145,41,59,182,199,249,58,182,234,201,58,182,252,153,58,182,251,105,58,182,232,57,58,182,195,9,58,182,139,217,57,182,66,169,57,182,230,120,57,182,120,72,57,182,248,23,57,182,103,231,56,182,195,182,56,182,13,134,56,182,69,85,56,182,107,36,56,182,127,243,55,182,129,194,55,182,113,145,55,182,80,96,55,182,28,47,55,182,
215,253,54,182,128,204,54,182,23,155,54,182,156,105,54,182,16,56,54,182,113,6,54,182,194,212,53,182,0,163,53,182,45,113,53,182,72,63,53,182,82,13,53,182,74,219,52,182,48,169,52,182,5,119,52,182,201,68,52,182,123,18,52,182,27,224,51,182,170,173,51,182,40,123,51,182,148,72,51,182,239,21,51,182,56,227,50,182,112,176,50,182,151,125,50,182,173,74,50,182,177,23,50,182,164,228,49,182,134,177,49,182,87,126,49,182,23,75,49,182,197,23,49,182,98,228,48,182,239,176,48,182,106,125,48,182,212,73,48,182,45,22,48,
182,117,226,47,182,172,174,47,182,211,122,47,182,232,70,47,182,236,18,47,182,224,222,46,182,195,170,46,182,148,118,46,182,86,66,46,182,6,14,46,182,165,217,45,182,52,165,45,182,178,112,45,182,32,60,45,182,125,7,45,182,201,210,44,182,4,158,44,182,47,105,44,182,74,52,44,182,84,255,43,182,77,202,43,182,54,149,43,182,14,96,43,182,214,42,43,182,142,245,42,182,53,192,42,182,204,138,42,182,82,85,42,182,200,31,42,182,46,234,41,182,132,180,41,182,201,126,41,182,255,72,41,182,36,19,41,182,56,221,40,182,61,167,
40,182,50,113,40,182,22,59,40,182,235,4,40,182,175,206,39,182,99,152,39,182,8,98,39,182,156,43,39,182,32,245,38,182,149,190,38,182,250,135,38,182,78,81,38,182,147,26,38,182,200,227,37,182,238,172,37,182,3,118,37,182,9,63,37,182,255,7,37,182,230,208,36,182,188,153,36,182,132,98,36,182,59,43,36,182,227,243,35,182,123,188,35,182,4,133,35,182,125,77,35,182,231,21,35,182,65,222,34,182,140,166,34,182,200,110,34,182,244,54,34,182,17,255,33,182,30,199,33,182,28,143,33,182,11,87,33,182,234,30,33,182,187,230,
32,182,124,174,32,182,46,118,32,182,208,61,32,182,100,5,32,182,232,204,31,182,94,148,31,182,196,91,31,182,27,35,31,182,100,234,30,182,157,177,30,182,199,120,30,182,227,63,30,182,239,6,30,182,237,205,29,182,220,148,29,182,188,91,29,182,141,34,29,182,80,233,28,182,3,176,28,182,168,118,28,182,62,61,28,182,198,3,28,182,63,202,27,182,169,144,27,182,5,87,27,182,82,29,27,182,145,227,26,182,193,169,26,182,227,111,26,182,246,53,26,182,251,251,25,182,241,193,25,182,217,135,25,182,178,77,25,182,126,19,25,182,
59,217,24,182,233,158,24,182,138,100,24,182,28,42,24,182,160,239,23,182,22,181,23,182,126,122,23,182,215,63,23,182,35,5,23,182,96,202,22,182,143,143,22,182,177,84,22,182,196,25,22,182,202,222,21,182,193,163,21,182,171,104,21,182,134,45,21,182,84,242,20,182,20,183,20,182,198,123,20,182,107,64,20,182,2,5,20,182,138,201,19,182,6,142,19,182,115,82,19,182,211,22,19,182,38,219,18,182,106,159,18,182,162,99,18,182,203,39,18,182,231,235,17,182,246,175,17,182,247,115,17,182,235,55,17,182,210,251,16,182,171,
191,16,182,118,131,16,182,53,71,16,182,230,10,16,182,138,206,15,182,32,146,15,182,169,85,15,182,38,25,15,182,149,220,14,182,247,159,14,182,75,99,14,182,147,38,14,182,206,233,13,182,251,172,13,182,28,112,13,182,48,51,13,182,54,246,12,182,48,185,12,182,29,124,12,182,253,62,12,182,209,1,12,182,151,196,11,182,81,135,11,182,254,73,11,182,158,12,11,182,49,207,10,182,184,145,10,182,50,84,10,182,160,22,10,182,1,217,9,182,85,155,9,182,157,93,9,182,217,31,9,182,8,226,8,182,42,164,8,182,64,102,8,182,74,40,8,
182,71,234,7,182,56,172,7,182,29,110,7,182,245,47,7,182,193,241,6,182,129,179,6,182,53,117,6,182,221,54,6,182,120,248,5,182,7,186,5,182,139,123,5,182,2,61,5,182,109,254,4,182,204,191,4,182,31,129,4,182,102,66,4,182,161,3,4,182,209,196,3,182,244,133,3,182,12,71,3,182,24,8,3,182,24,201,2,182,12,138,2,182,245,74,2,182,210,11,2,182,163,204,1,182,104,141,1,182,34,78,1,182,209,14,1,182,116,207,0,182,11,144,0,182,151,80,0,182,23,17,0,182,24,163,255,181,234,35,255,181,167,164,254,181,76,37,254,181,219,165,
253,181,83,38,253,181,180,166,252,181,255,38,252,181,52,167,251,181,82,39,251,181,90,167,250,181,76,39,250,181,39,167,249,181,236,38,249,181,155,166,248,181,52,38,248,181,184,165,247,181,37,37,247,181,124,164,246,181,189,35,246,181,233,162,245,181,255,33,245,181,0,161,244,181,234,31,244,181,191,158,243,181,127,29,243,181,42,156,242,181,190,26,242,181,62,153,241,181,169,23,241,181,254,149,240,181,62,20,240,181,105,146,239,181,127,16,239,181,128,142,238,181,108,12,238,181,67,138,237,181,5,8,237,181,
179,133,236,181,76,3,236,181,208,128,235,181,64,254,234,181,156,123,234,181,226,248,233,181,21,118,233,181,51,243,232,181,61,112,232,181,51,237,231,181,20,106,231,181,225,230,230,181,155,99,230,181,64,224,229,181,209,92,229,181,79,217,228,181,185,85,228,181,14,210,227,181,81,78,227,181,127,202,226,181,154,70,226,181,162,194,225,181,150,62,225,181,118,186,224,181,67,54,224,181,253,177,223,181,164,45,223,181,55,169,222,181,184,36,222,181,37,160,221,181,127,27,221,181,199,150,220,181,251,17,220,181,
29,141,219,181,43,8,219,181,40,131,218,181,17,254,217,181,232,120,217,181,172,243,216,181,94,110,216,181,253,232,215,181,138,99,215,181,5,222,214,181,109,88,214,181,196,210,213,181,8,77,213,181,58,199,212,181,90,65,212,181,104,187,211,181,100,53,211,181,78,175,210,181,39,41,210,181,237,162,209,181,162,28,209,181,70,150,208,181,216,15,208,181,88,137,207,181,199,2,207,181,37,124,206,181,113,245,205,181,172,110,205,181,214,231,204,181,239,96,204,181,246,217,203,181,237,82,203,181,210,203,202,181,167,
68,202,181,107,189,201,181,30,54,201,181,192,174,200,181,82,39,200,181,211,159,199,181,67,24,199,181,163,144,198,181,243,8,198,181,50,129,197,181,97,249,196,181,127,113,196,181,141,233,195,181,140,97,195,181,122,217,194,181,88,81,194,181,38,201,193,181,228,64,193,181,147,184,192,181,49,48,192,181,192,167,191,181,63,31,191,181,175,150,190,181,15,14,190,181,95,133,189,181,160,252,188,181,210,115,188,181,244,234,187,181,7,98,187,181,11,217,186,181,0,80,186,181,230,198,185,181,188,61,185,181,132,180,
184,181,61,43,184,181,231,161,183,181,130,24,183,181,15,143,182,181,140,5,182,181,252,123,181,181,92,242,180,181,174,104,180,181,242,222,179,181,39,85,179,181,78,203,178,181,103,65,178,181,114,183,177,181,110,45,177,181,93,163,176,181,61,25,176,181,16,143,175,181,212,4,175,181,139,122,174,181,52,240,173,181,207,101,173,181,93,219,172,181,221,80,172,181,79,198,171,181,180,59,171,181,12,177,170,181,86,38,170,181,147,155,169,181,194,16,169,181,229,133,168,181,250,250,167,181,3,112,167,181,254,228,166,
181,236,89,166,181,206,206,165,181,163,67,165,181,106,184,164,181,38,45,164,181,212,161,163,181,118,22,163,181,12,139,162,181,149,255,161,181,18,116,161,181,130,232,160,181,230,92,160,181,62,209,159,181,137,69,159,181,201,185,158,181,253,45,158,181,36,162,157,181,64,22,157,181,79,138,156,181,83,254,155,181,76,114,155,181,56,230,154,181,25,90,154,181,239,205,153,181,184,65,153,181,119,181,152,181,42,41,152,181,210,156,151,181,110,16,151,181,255,131,150,181,134,247,149,181,1,107,149,181,113,222,148,
181,214,81,148,181,48,197,147,181,127,56,147,181,196,171,146,181,254,30,146,181,45,146,145,181,82,5,145,181,108,120,144,181,124,235,143,181,129,94,143,181,124,209,142,181,108,68,142,181,82,183,141,181,47,42,141,181,1,157,140,181,201,15,140,181,135,130,139,181,59,245,138,181,229,103,138,181,133,218,137,181,28,77,137,181,169,191,136,181,44,50,136,181,166,164,135,181,22,23,135,181,125,137,134,181,218,251,133,181,46,110,133,181,121,224,132,181,187,82,132,181,243,196,131,181,34,55,131,181,73,169,130,181,
102,27,130,181,122,141,129,181,134,255,128,181,137,113,128,181,6,199,127,181,233,170,126,181,186,142,125,181,123,114,124,181,43,86,123,181,201,57,122,181,87,29,121,181,213,0,120,181,66,228,118,181,158,199,117,181,235,170,116,181,39,142,115,181,83,113,114,181,111,84,113,181,124,55,112,181,121,26,111,181,102,253,109,181,69,224,108,181,19,195,107,181,211,165,106,181,132,136,105,181,37,107,104,181,184,77,103,181,61,48,102,181,178,18,101,181,26,245,99,181,115,215,98,181,189,185,97,181,250,155,96,181,41,
126,95,181,74,96,94,181,93,66,93,181,99,36,92,181,91,6,91,181,70,232,89,181,36,202,88,181,245,171,87,181,184,141,86,181,111,111,85,181,25,81,84,181,183,50,83,181,72,20,82,181,204,245,80,181,69,215,79,181,177,184,78,181,17,154,77,181,102,123,76,181,174,92,75,181,236,61,74,181,29,31,73,181,67,0,72,181,94,225,70,181,110,194,69,181,114,163,68,181,108,132,67,181,91,101,66,181,64,70,65,181,25,39,64,181,233,7,63,181,174,232,61,181,105,201,60,181,26,170,59,181,192,138,58,181,94,107,57,181,241,75,56,181,123,
44,55,181,251,12,54,181,114,237,52,181,224,205,51,181,69,174,50,181,160,142,49,181,243,110,48,181,62,79,47,181,127,47,46,181,184,15,45,181,233,239,43,181,18,208,42,181,50,176,41,181,75,144,40,181,91,112,39,181,100,80,38,181,101,48,37,181,95,16,36,181,81,240,34,181,60,208,33,181,32,176,32,181,253,143,31,181,211,111,30,181,162,79,29,181,106,47,28,181,44,15,27,181,232,238,25,181,157,206,24,181,76,174,23,181,245,141,22,181,152,109,21,181,53,77,20,181,205,44,19,181,95,12,18,181,235,235,16,181,114,203,
15,181,244,170,14,181,113,138,13,181,233,105,12,181,92,73,11,181,203,40,10,181,52,8,9,181,154,231,7,181,251,198,6,181,87,166,5,181,176,133,4,181,4,101,3,181,85,68,2,181,162,35,1,181,235,2,0,181,98,196,253,180,231,130,251,180,101,65,249,180,221,255,246,180,79,190,244,180,187,124,242,180,34,59,240,180,131,249,237,180,223,183,235,180,54,118,233,180,137,52,231,180,215,242,228,180,33,177,226,180,103,111,224,180,170,45,222,180,233,235,219,180,37,170,217,180,94,104,215,180,149,38,213,180,201,228,210,180,
251,162,208,180,43,97,206,180,89,31,204,180,133,221,201,180,177,155,199,180,219,89,197,180,5,24,195,180,46,214,192,180,87,148,190,180,128,82,188,180,170,16,186,180,211,206,183,180,254,140,181,180,41,75,179,180,85,9,177,180,131,199,174,180,179,133,172,180,228,67,170,180,24,2,168,180,78,192,165,180,135,126,163,180,194,60,161,180,1,251,158,180,67,185,156,180,137,119,154,180,210,53,152,180,32,244,149,180,113,178,147,180,200,112,145,180,35,47,143,180,131,237,140,180,233,171,138,180,84,106,136,180,197,
40,134,180,59,231,131,180,184,165,129,180,120,200,126,180,140,69,122,180,174,194,117,180,223,63,113,180,31,189,108,180,110,58,104,180,205,183,99,180,60,53,95,180,188,178,90,180,77,48,86,180,240,173,81,180,165,43,77,180,109,169,72,180,72,39,68,180,55,165,63,180,58,35,59,180,82,161,54,180,126,31,50,180,193,157,45,180,25,28,41,180,136,154,36,180,14,25,32,180,171,151,27,180,97,22,23,180,47,149,18,180,21,20,14,180,22,147,9,180,48,18,5,180,100,145,0,180,103,33,248,179,60,32,239,179,73,31,230,179,143,30,
221,179,14,30,212,179,199,29,203,179,188,29,194,179,237,29,185,179,92,30,176,179,9,31,167,179,245,31,158,179,33,33,149,179,143,34,140,179,62,36,131,179,97,76,116,179,206,80,98,179,197,85,80,179,72,91,62,179,89,97,44,179,249,103,26,179,42,111,8,179,223,237,236,178,147,254,200,178,118,16,165,178,139,35,129,178,172,111,58,178,108,53,229,177,234,32,43,177,239,61,232,48,88,170,201,49,8,160,44,50,75,104,116,50,246,22,158,50,115,248,193,50,151,216,229,50,176,219,4,51,100,202,22,51,103,184,40,51,182,165,
58,51,80,146,76,51,50,126,94,51,91,105,112,51,228,41,129,51,189,30,138,51,53,19,147,51,78,7,156,51,5,251,164,51,90,238,173,51,75,225,182,51,217,211,191,51,1,198,200,51,195,183,209,51,30,169,218,51,17,154,227,51,155,138,236,51,188,122,245,51,113,106,254,51,222,172,3,52,76,36,8,52,132,155,12,52,132,18,17,52,77,137,21,52,222,255,25,52,54,118,30,52,85,236,34,52,58,98,39,52,229,215,43,52,85,77,48,52,139,194,52,52,133,55,57,52,67,172,61,52,196,32,66,52,9,149,70,52,16,9,75,52,218,124,79,52,101,240,83,52,
178,99,88,52,191,214,92,52,140,73,97,52,26,188,101,52,103,46,106,52,114,160,110,52,60,18,115,52,196,131,119,52,10,245,123,52,6,51,128,52,102,107,130,52,164,163,132,52,191,219,134,52,184,19,137,52,142,75,139,52,66,131,141,52,210,186,143,52,64,242,145,52,137,41,148,52,175,96,150,52,177,151,152,52,142,206,154,52,71,5,157,52,219,59,159,52,74,114,161,52,148,168,163,52,185,222,165,52,184,20,168,52,145,74,170,52,68,128,172,52,209,181,174,52,55,235,176,52,118,32,179,52,142,85,181,52,127,138,183,52,73,191,
185,52,234,243,187,52,100,40,190,52,182,92,192,52,223,144,194,52,223,196,196,52,183,248,198,52,102,44,201,52,235,95,203,52,70,147,205,52,120,198,207,52,128,249,209,52,93,44,212,52,16,95,214,52,153,145,216,52,246,195,218,52,40,246,220,52,47,40,223,52,10,90,225,52,186,139,227,52,61,189,229,52,148,238,231,52,190,31,234,52,188,80,236,52,140,129,238,52,48,178,240,52,166,226,242,52,238,18,245,52,8,67,247,52,244,114,249,52,178,162,251,52,66,210,253,52,209,0,0,53,106,24,1,53,235,47,2,53,84,71,3,53,165,94,
4,53,223,117,5,53,0,141,6,53,9,164,7,53,250,186,8,53,211,209,9,53,147,232,10,53,58,255,11,53,200,21,13,53,62,44,14,53,154,66,15,53,222,88,16,53,8,111,17,53,25,133,18,53,17,155,19,53,239,176,20,53,179,198,21,53,93,220,22,53,238,241,23,53,100,7,25,53,193,28,26,53,3,50,27,53,43,71,28,53,56,92,29,53,43,113,30,53,3,134,31,53,193,154,32,53,99,175,33,53,235,195,34,53,87,216,35,53,168,236,36,53,222,0,38,53,248,20,39,53,247,40,40,53,218,60,41,53,161,80,42,53,77,100,43,53,220,119,44,53,79,139,45,53,166,158,
46,53,225,177,47,53,255,196,48,53,1,216,49,53,230,234,50,53,174,253,51,53,89,16,53,53,231,34,54,53,88,53,55,53,172,71,56,53,226,89,57,53,251,107,58,53,247,125,59,53,213,143,60,53,149,161,61,53,55,179,62,53,187,196,63,53,33,214,64,53,104,231,65,53,146,248,66,53,157,9,68,53,137,26,69,53,87,43,70,53,6,60,71,53,150,76,72,53,7,93,73,53,89,109,74,53,140,125,75,53,159,141,76,53,147,157,77,53,103,173,78,53,28,189,79,53,177,204,80,53,38,220,81,53,124,235,82,53,177,250,83,53,198,9,85,53,186,24,86,53,142,39,
87,53,66,54,88,53,213,68,89,53,71,83,90,53,153,97,91,53,201,111,92,53,217,125,93,53,199,139,94,53,148,153,95,53,63,167,96,53,201,180,97,53,50,194,98,53,121,207,99,53,158,220,100,53,161,233,101,53,129,246,102,53,64,3,104,53,221,15,105,53,87,28,106,53,175,40,107,53,228,52,108,53,247,64,109,53,230,76,110,53,179,88,111,53,93,100,112,53,228,111,113,53,71,123,114,53,135,134,115,53,164,145,116,53,157,156,117,53,115,167,118,53,37,178,119,53,179,188,120,53,29,199,121,53,99,209,122,53,132,219,123,53,130,229,
124,53,91,239,125,53,16,249,126,53,80,1,128,53,6,134,128,53,169,10,129,53,58,143,129,53,184,19,130,53,36,152,130,53,125,28,131,53,195,160,131,53,247,36,132,53,24,169,132,53,38,45,133,53,33,177,133,53,10,53,134,53,223,184,134,53,161,60,135,53,80,192,135,53,237,67,136,53,117,199,136,53,235,74,137,53,77,206,137,53,156,81,138,53,216,212,138,53,0,88,139,53,21,219,139,53,22,94,140,53,3,225,140,53,221,99,141,53,163,230,141,53,86,105,142,53,244,235,142,53,127,110,143,53,245,240,143,53,88,115,144,53,167,245,
144,53,226,119,145,53,8,250,145,53,26,124,146,53,25,254,146,53,2,128,147,53,216,1,148,53,153,131,148,53,70,5,149,53,222,134,149,53,98,8,150,53,209,137,150,53,43,11,151,53,113,140,151,53,162,13,152,53,190,142,152,53,197,15,153,53,184,144,153,53,149,17,154,53,94,146,154,53,17,19,155,53,176,147,155,53,57,20,156,53,173,148,156,53,12,21,157,53,85,149,157,53,137,21,158,53,168,149,158,53,177,21,159,53,165,149,159,53,131,21,160,53,76,149,160,53,255,20,161,53,156,148,161,53,36,20,162,53,149,147,162,53,241,
18,163,53,55,146,163,53,103,17,164,53,129,144,164,53,133,15,165,53,114,142,165,53,74,13,166,53,11,140,166,53,183,10,167,53,75,137,167,53,202,7,168,53,50,134,168,53,132,4,169,53,191,130,169,53,227,0,170,53,241,126,170,53,233,252,170,53,201,122,171,53,147,248,171,53,70,118,172,53,226,243,172,53,104,113,173,53,214,238,173,53,45,108,174,53,110,233,174,53,151,102,175,53,169,227,175,53,164,96,176,53,136,221,176,53,84,90,177,53,9,215,177,53,167,83,178,53,45,208,178,53,155,76,179,53,243,200,179,53,50,69,
180,53,90,193,180,53,106,61,181,53,99,185,181,53,67,53,182,53,12,177,182,53,189,44,183,53,86,168,183,53,216,35,184,53,65,159,184,53,146,26,185,53,203,149,185,53,235,16,186,53,244,139,186,53,228,6,187,53,188,129,187,53,124,252,187,53,35,119,188,53,178,241,188,53,40,108,189,53,134,230,189,53,203,96,190,53,247,218,190,53,11,85,191,53,6,207,191,53,232,72,192,53,178,194,192,53,98,60,193,53,250,181,193,53,120,47,194,53,222,168,194,53,42,34,195,53,94,155,195,53,120,20,196,53,121,141,196,53,97,6,197,53,47,
127,197,53,228,247,197,53,128,112,198,53,2,233,198,53,107,97,199,53,186,217,199,53,240,81,200,53,12,202,200,53,14,66,201,53,247,185,201,53,198,49,202,53,123,169,202,53,22,33,203,53,151,152,203,53,254,15,204,53,76,135,204,53,127,254,204,53,152,117,205,53,151,236,205,53,124,99,206,53,70,218,206,53,246,80,207,53,140,199,207,53,8,62,208,53,105,180,208,53,176,42,209,53,220,160,209,53,238,22,210,53,229,140,210,53,193,2,211,53,131,120,211,53,42,238,211,53,182,99,212,53,39,217,212,53,125,78,213,53,185,195,
213,53,217,56,214,53,223,173,214,53,201,34,215,53,153,151,215,53,77,12,216,53,230,128,216,53,100,245,216,53,198,105,217,53,14,222,217,53,58,82,218,53,74,198,218,53,63,58,219,53,24,174,219,53,214,33,220,53,121,149,220,53,255,8,221,53,106,124,221,53,186,239,221,53,237,98,222,53,5,214,222,53,1,73,223,53,225,187,223,53,164,46,224,53,76,161,224,53,216,19,225,53,72,134,225,53,156,248,225,53,212,106,226,53,239,220,226,53,238,78,227,53,209,192,227,53,151,50,228,53,66,164,228,53,207,21,229,53,64,135,229,53,
149,248,229,53,205,105,230,53,233,218,230,53,232,75,231,53,202,188,231,53,143,45,232,53,56,158,232,53,196,14,233,53,51,127,233,53,133,239,233,53,186,95,234,53,210,207,234,53,205,63,235,53,171,175,235,53,108,31,236,53,16,143,236,53,151,254,236,53,0,110,237,53,76,221,237,53,123,76,238,53,140,187,238,53,128,42,239,53,86,153,239,53,15,8,240,53,171,118,240,53,41,229,240,53,137,83,241,53,203,193,241,53,240,47,242,53,247,157,242,53,224,11,243,53,172,121,243,53,90,231,243,53,233,84,244,53,91,194,244,53,175,
47,245,53,228,156,245,53,252,9,246,53,245,118,246,53,208,227,246,53,142,80,247,53,44,189,247,53,173,41,248,53,15,150,248,53,83,2,249,53,120,110,249,53,127,218,249,53,104,70,250,53,50,178,250,53,221,29,251,53,106,137,251,53,216,244,251,53,39,96,252,53,88,203,252,53,106,54,253,53,93,161,253,53,49,12,254,53,230,118,254,53,124,225,254,53,244,75,255,53,76,182,255,53,67,16,0,54,80,69,0,54,77,122,0,54,59,175,0,54,25,228,0,54,232,24,1,54,167,77,1,54,86,130,1,54,246,182,1,54,134,235,1,54,6,32,2,54,119,84,
2,54,215,136,2,54,40,189,2,54,105,241,2,54,155,37,3,54,188,89,3,54,206,141,3,54,207,193,3,54,193,245,3,54,163,41,4,54,117,93,4,54,55,145,4,54,233,196,4,54,139,248,4,54,29,44,5,54,158,95,5,54,16,147,5,54,114,198,5,54,196,249,5,54,5,45,6,54,54,96,6,54,88,147,6,54,105,198,6,54,106,249,6,54,90,44,7,54,59,95,7,54,11,146,7,54,203,196,7,54,122,247,7,54,25,42,8,54,168,92,8,54,39,143,8,54,149,193,8,54,243,243,8,54,64,38,9,54,125,88,9,54,170,138,9,54,198,188,9,54,210,238,9,54,205,32,10,54,183,82,10,54,145,
132,10,54,91,182,10,54,20,232,10,54,188,25,11,54,84,75,11,54,219,124,11,54,82,174,11,54,184,223,11,54,13,17,12,54,81,66,12,54,133,115,12,54,168,164,12,54,186,213,12,54,188,6,13,54,172,55,13,54,140,104,13,54,91,153,13,54,25,202,13,54,199,250,13,54,99,43,14,54,239,91,14,54,105,140,14,54,211,188,14,54,44,237,14,54,115,29,15,54,170,77,15,54,208,125,15,54,229,173,15,54,232,221,15,54,219,13,16,54,189,61,16,54,141,109,16,54,76,157,16,54,251,204,16,54,152,252,16,54,36,44,17,54,158,91,17,54,8,139,17,54,96,
186,17,54,167,233,17,54,221,24,18,54,2,72,18,54,21,119,18,54,23,166,18,54,8,213,18,54,231,3,19,54,181,50,19,54,114,97,19,54,29,144,19,54,183,190,19,54,63,237,19,54,182,27,20,54,27,74,20,54,111,120,20,54,178,166,20,54,227,212,20,54,2,3,21,54,16,49,21,54,13,95,21,54,247,140,21,54,209,186,21,54,152,232,21,54,78,22,22,54,242,67,22,54,133,113,22,54,6,159,22,54,117,204,22,54,211,249,22,54,31,39,23,54,89,84,23,54,129,129,23,54,152,174,23,54,157,219,23,54,144,8,24,54,113,53,24,54,64,98,24,54,254,142,24,54,
169,187,24,54,67,232,24,54,203,20,25,54,65,65,25,54,165,109,25,54,247,153,25,54,55,198,25,54,101,242,25,54,129,30,26,54,139,74,26,54,131,118,26,54,105,162,26,54,61,206,26,54,254,249,26,54,174,37,27,54,76,81,27,54,215,124,27,54,80,168,27,54,184,211,27,54,13,255,27,54,79,42,28,54,128,85,28,54,158,128,28,54,171,171,28,54,164,214,28,54,140,1,29,54,97,44,29,54,36,87,29,54,213,129,29,54,116,172,29,54,0,215,29,54,121,1,30,54,225,43,30,54,54,86,30,54,120,128,30,54,168,170,30,54,198,212,30,54,209,254,30,54,
202,40,31,54,176,82,31,54,132,124,31,54,69,166,31,54,244,207,31,54,144,249,31,54,26,35,32,54,145,76,32,54,245,117,32,54,71,159,32,54,135,200,32,54,179,241,32,54,205,26,33,54,213,67,33,54,201,108,33,54,171,149,33,54,123,190,33,54,55,231,33,54,225,15,34,54,120,56,34,54,253,96,34,54,110,137,34,54,205,177,34,54,25,218,34,54,82,2,35,54,121,42,35,54,140,82,35,54,141,122,35,54,123,162,35,54,86,202,35,54,30,242,35,54,211,25,36,54,117,65,36,54,4,105,36,54,128,144,36,54,234,183,36,54,64,223,36,54,131,6,37,
54,180,45,37,54,209,84,37,54,219,123,37,54,210,162,37,54,183,201,37,54,136,240,37,54,70,23,38,54,241,61,38,54,136,100,38,54,13,139,38,54,126,177,38,54,221,215,38,54,40,254,38,54,96,36,39,54,132,74,39,54,150,112,39,54,148,150,39,54,127,188,39,54,87,226,39,54,28,8,40,54,205,45,40,54,107,83,40,54,246,120,40,54,109,158,40,54,209,195,40,54,34,233,40,54,95,14,41,54,137,51,41,54,160,88,41,54,163,125,41,54,147,162,41,54,111,199,41,54,56,236,41,54,237,16,42,54,143,53,42,54,30,90,42,54,153,126,42,54,1,163,
42,54,85,199,42,54,149,235,42,54,194,15,43,54,220,51,43,54,226,87,43,54,212,123,43,54,179,159,43,54,126,195,43,54,53,231,43,54,217,10,44,54,106,46,44,54,230,81,44,54,79,117,44,54,165,152,44,54,230,187,44,54,20,223,44,54,46,2,45,54,53,37,45,54,40,72,45,54,7,107,45,54,210,141,45,54,138,176,45,54,45,211,45,54,189,245,45,54,58,24,46,54,162,58,46,54,247,92,46,54,55,127,46,54,100,161,46,54,125,195,46,54,130,229,46,54,116,7,47,54,81,41,47,54,27,75,47,54,208,108,47,54,114,142,47,54,0,176,47,54,121,209,47,
54,223,242,47,54,49,20,48,54,111,53,48,54,153,86,48,54,175,119,48,54,176,152,48,54,158,185,48,54,120,218,48,54,62,251,48,54,240,27,49,54,141,60,49,54,23,93,49,54,140,125,49,54,237,157,49,54,59,190,49,54,116,222,49,54,153,254,49,54,170,30,50,54,166,62,50,54,143,94,50,54,99,126,50,54,35,158,50,54,207,189,50,54,103,221,50,54,235,252,50,54,90,28,51,54,181,59,51,54,252,90,51,54,46,122,51,54,77,153,51,54,87,184,51,54,76,215,51,54,46,246,51,54,251,20,52,54,180,51,52,54,88,82,52,54,232,112,52,54,100,143,
52,54,204,173,52,54,31,204,52,54,93,234,52,54,136,8,53,54,158,38,53,54,159,68,53,54,140,98,53,54,101,128,53,54,41,158,53,54,217,187,53,54,116,217,53,54,251,246,53,54,109,20,54,54,203,49,54,54,21,79,54,54,73,108,54,54,106,137,54,54,118,166,54,54,109,195,54,54,80,224,54,54,30,253,54,54,216,25,55,54,125,54,55,54,13,83,55,54,137,111,55,54,241,139,55,54,67,168,55,54,129,196,55,54,171,224,55,54,192,252,55,54,192,24,56,54,172,52,56,54,131,80,56,54,69,108,56,54,242,135,56,54,139,163,56,54,16,191,56,54,127,
218,56,54,218,245,56,54,32,17,57,54,81,44,57,54,110,71,57,54,118,98,57,54,105,125,57,54,71,152,57,54,17,179,57,54,198,205,57,54,102,232,57,54,241,2,58,54,103,29,58,54,201,55,58,54,22,82,58,54,78,108,58,54,113,134,58,54,127,160,58,54,121,186,58,54,93,212,58,54,45,238,58,54,232,7,59,54,142,33,59,54,31,59,59,54,155,84,59,54,2,110,59,54,85,135,59,54,146,160,59,54,187,185,59,54,206,210,59,54,205,235,59,54,183,4,60,54,140,29,60,54,75,54,60,54,246,78,60,54,140,103,60,54,13,128,60,54,121,152,60,54,207,176,
60,54,17,201,60,54,62,225,60,54,86,249,60,54,89,17,61,54,70,41,61,54,31,65,61,54,227,88,61,54,145,112,61,54,43,136,61,54,175,159,61,54,30,183,61,54,121,206,61,54,190,229,61,54,238,252,61,54,9,20,62,54,15,43,62,54,255,65,62,54,219,88,62,54,162,111,62,54,83,134,62,54,239,156,62,54,118,179,62,54,232,201,62,54,69,224,62,54,140,246,62,54,190,12,63,54,220,34,63,54,228,56,63,54,214,78,63,54,180,100,63,54,124,122,63,54,47,144,63,54,205,165,63,54,86,187,63,54,201,208,63,54,40,230,63,54,113,251,63,54,164,16,
64,54,195,37,64,54,204,58,64,54,192,79,64,54,158,100,64,54,104,121,64,54,28,142,64,54,187,162,64,54,68,183,64,54,184,203,64,54,23,224,64,54,97,244,64,54,149,8,65,54,180,28,65,54,189,48,65,54,178,68,65,54,145,88,65,54,90,108,65,54,14,128,65,54,173,147,65,54,55,167,65,54,171,186,65,54,9,206,65,54,83,225,65,54,135,244,65,54,165,7,66,54,174,26,66,54,162,45,66,54,128,64,66,54,73,83,66,54,253,101,66,54,155,120,66,54,36,139,66,54,151,157,66,54,245,175,66,54,61,194,66,54,112,212,66,54,142,230,66,54,150,248,
66,54,136,10,67,54,102,28,67,54,45,46,67,54,223,63,67,54,124,81,67,54,3,99,67,54,117,116,67,54,209,133,67,54,24,151,67,54,74,168,67,54,101,185,67,54,108,202,67,54,92,219,67,54,56,236,67,54,253,252,67,54,174,13,68,54,72,30,68,54,205,46,68,54,61,63,68,54,151,79,68,54,220,95,68,54,11,112,68,54,36,128,68,54,40,144,68,54,23,160,68,54,239,175,68,54,179,191,68,54,96,207,68,54,248,222,68,54,123,238,68,54,232,253,68,54,63,13,69,54,129,28,69,54,173,43,69,54,196,58,69,54,197,73,69,54,176,88,69,54,134,103,69,
54,71,118,69,54,241,132,69,54,134,147,69,54,6,162,69,54,111,176,69,54,196,190,69,54,2,205,69,54,43,219,69,54,62,233,69,54,60,247,69,54,36,5,70,54,246,18,70,54,179,32,70,54,90,46,70,54,236,59,70,54,104,73,70,54,206,86,70,54,30,100,70,54,89,113,70,54,126,126,70,54,142,139,70,54,136,152,70,54,108,165,70,54,59,178,70,54,244,190,70,54,151,203,70,54,36,216,70,54,156,228,70,54,254,240,70,54,75,253,70,54,130,9,71,54,163,21,71,54,174,33,71,54,164,45,71,54,132,57,71,54,79,69,71,54,3,81,71,54,162,92,71,54,44,
104,71,54,159,115,71,54,253,126,71,54,69,138,71,54,120,149,71,54,149,160,71,54,156,171,71,54,141,182,71,54,105,193,71,54,47,204,71,54,223,214,71,54,121,225,71,54,254,235,71,54,109,246,71,54,199,0,72,54,10,11,72,54,56,21,72,54,80,31,72,54,83,41,72,54,64,51,72,54,23,61,72,54,216,70,72,54,132,80,72,54,25,90,72,54,154,99,72,54,4,109,72,54,89,118,72,54,151,127,72,54,193,136,72,54,212,145,72,54,210,154,72,54,186,163,72,54,140,172,72,54,72,181,72,54,239,189,72,54,128,198,72,54,251,206,72,54,97,215,72,54,
177,223,72,54,235,231,72,54,15,240,72,54,30,248,72,54,22,0,73,54,249,7,73,54,199,15,73,54,126,23,73,54,32,31,73,54,172,38,73,54,35,46,73,54,131,53,73,54,206,60,73,54,3,68,73,54,35,75,73,54,44,82,73,54,32,89,73,54,254,95,73,54,199,102,73,54,121,109,73,54,22,116,73,54,157,122,73,54,15,129,73,54,107,135,73,54,176,141,73,54,225,147,73,54,251,153,73,54,0,160,73,54,239,165,73,54,200,171,73,54,140,177,73,54,57,183,73,54,209,188,73,54,84,194,73,54,192,199,73,54,23,205,73,54,88,210,73,54,131,215,73,54,153,
220,73,54,153,225,73,54,131,230,73,54,87,235,73,54,22,240,73,54,191,244,73,54,82,249,73,54,208,253,73,54,56,2,74,54,138,6,74,54,198,10,74,54,237,14,74,54,253,18,74,54,249,22,74,54,222,26,74,54,174,30,74,54,104,34,74,54,12,38,74,54,155,41,74,54,20,45,74,54,119,48,74,54,196,51,74,54,252,54,74,54,30,58,74,54,42,61,74,54,33,64,74,54,2,67,74,54,205,69,74,54,131,72,74,54,35,75,74,54,173,77,74,54,33,80,74,54,128,82,74,54,201,84,74,54,253,86,74,54,27,89,74,54,35,91,74,54,21,93,74,54,242,94,74,54,185,96,74,
54,106,98,74,54,6,100,74,54,140,101,74,54,252,102,74,54,87,104,74,54,156,105,74,54,204,106,74,54,229,107,74,54,234,108,74,54,216,109,74,54,177,110,74,54,116,111,74,54,34,112,74,54,185,112,74,54,60,113,74,54,168,113,74,54,255,113,74,54,65,114,74,54,109,114,74,54,131,114,74,54,131,114,74,54,110,114,74,54,67,114,74,54,3,114,74,54,173,113,74,54,66,113,74,54,193,112,74,54,42,112,74,54,126,111,74,54,188,110,74,54,228,109,74,54,247,108,74,54,244,107,74,54,220,106,74,54,174,105,74,54,107,104,74,54,18,103,
74,54,164,101,74,54,32,100,74,54,134,98,74,54,215,96,74,54,18,95,74,54,56,93,74,54,72,91,74,54,67,89,74,54,40,87,74,54,248,84,74,54,178,82,74,54,87,80,74,54,230,77,74,54,95,75,74,54,195,72,74,54,18,70,74,54,75,67,74,54,110,64,74,54,124,61,74,54,117,58,74,54,88,55,74,54],"i8",4,y.a+1218560);
Q([38,52,74,54,222,48,74,54,129,45,74,54,14,42,74,54,134,38,74,54,232,34,74,54,53,31,74,54,108,27,74,54,142,23,74,54,155,19,74,54,146,15,74,54,115,11,74,54,64,7,74,54,246,2,74,54,152,254,73,54,36,250,73,54,154,245,73,54,251,240,73,54,71,236,73,54,126,231,73,54,159,226,73,54,170,221,73,54,161,216,73,54,129,211,73,54,77,206,73,54,3,201,73,54,164,195,73,54,47,190,73,54,165,184,73,54,6,179,73,54,82,173,73,54,136,167,73,54,169,161,73,54,180,155,73,54,170,149,73,54,139,143,73,54,87,137,73,54,13,131,73,
54,174,124,73,54,57,118,73,54,176,111,73,54,17,105,73,54,93,98,73,54,147,91,73,54,181,84,73,54,193,77,73,54,184,70,73,54,153,63,73,54,102,56,73,54,29,49,73,54,191,41,73,54,75,34,73,54,195,26,73,54,37,19,73,54,114,11,73,54,170,3,73,54,205,251,72,54,219,243,72,54,211,235,72,54,182,227,72,54,132,219,72,54,61,211,72,54,225,202,72,54,112,194,72,54,233,185,72,54,77,177,72,54,157,168,72,54,215,159,72,54,252,150,72,54,12,142,72,54,7,133,72,54,236,123,72,54,189,114,72,54,121,105,72,54,31,96,72,54,177,86,72,
54,45,77,72,54,148,67,72,54,231,57,72,54,36,48,72,54,76,38,72,54,96,28,72,54,94,18,72,54,71,8,72,54,27,254,71,54,219,243,71,54,133,233,71,54,26,223,71,54,155,212,71,54,6,202,71,54,92,191,71,54,158,180,71,54,202,169,71,54,226,158,71,54,229,147,71,54,210,136,71,54,171,125,71,54,111,114,71,54,30,103,71,54,184,91,71,54,62,80,71,54,174,68,71,54,10,57,71,54,80,45,71,54,130,33,71,54,159,21,71,54,168,9,71,54,155,253,70,54,122,241,70,54,67,229,70,54,248,216,70,54,152,204,70,54,36,192,70,54,154,179,70,54,252,
166,70,54,73,154,70,54,130,141,70,54,165,128,70,54,180,115,70,54,174,102,70,54,148,89,70,54,100,76,70,54,32,63,70,54,200,49,70,54,90,36,70,54,216,22,70,54,65,9,70,54,150,251,69,54,214,237,69,54,1,224,69,54,24,210,69,54,26,196,69,54,8,182,69,54,224,167,69,54,165,153,69,54,84,139,69,54,239,124,69,54,118,110,69,54,232,95,69,54,69,81,69,54,142,66,69,54,195,51,69,54,226,36,69,54,238,21,69,54,228,6,69,54,199,247,68,54,148,232,68,54,78,217,68,54,243,201,68,54,131,186,68,54,255,170,68,54,102,155,68,54,185,
139,68,54,248,123,68,54,34,108,68,54,56,92,68,54,57,76,68,54,38,60,68,54,255,43,68,54,195,27,68,54,115,11,68,54,15,251,67,54,150,234,67,54,9,218,67,54,103,201,67,54,178,184,67,54,232,167,67,54,9,151,67,54,23,134,67,54,16,117,67,54,245,99,67,54,197,82,67,54,130,65,67,54,42,48,67,54,190,30,67,54,62,13,67,54,169,251,66,54,0,234,66,54,68,216,66,54,115,198,66,54,141,180,66,54,148,162,66,54,135,144,66,54,101,126,66,54,47,108,66,54,229,89,66,54,135,71,66,54,21,53,66,54,143,34,66,54,245,15,66,54,71,253,65,
54,133,234,65,54,175,215,65,54,196,196,65,54,198,177,65,54,180,158,65,54,141,139,65,54,83,120,65,54,5,101,65,54,163,81,65,54,44,62,65,54,162,42,65,54,4,23,65,54,82,3,65,54,140,239,64,54,179,219,64,54,197,199,64,54,196,179,64,54,174,159,64,54,133,139,64,54,72,119,64,54,247,98,64,54,147,78,64,54,26,58,64,54,142,37,64,54,238,16,64,54,58,252,63,54,114,231,63,54,151,210,63,54,168,189,63,54,165,168,63,54,143,147,63,54,101,126,63,54,39,105,63,54,213,83,63,54,112,62,63,54,247,40,63,54,107,19,63,54,202,253,
62,54,23,232,62,54,79,210,62,54,116,188,62,54,134,166,62,54,132,144,62,54,110,122,62,54,69,100,62,54,8,78,62,54,184,55,62,54,84,33,62,54,221,10,62,54,82,244,61,54,179,221,61,54,2,199,61,54,61,176,61,54,100,153,61,54,120,130,61,54,120,107,61,54,102,84,61,54,63,61,61,54,6,38,61,54,185,14,61,54,88,247,60,54,229,223,60,54,94,200,60,54,195,176,60,54,22,153,60,54,85,129,60,54,129,105,60,54,153,81,60,54,159,57,60,54,145,33,60,54,111,9,60,54,59,241,59,54,243,216,59,54,153,192,59,54,43,168,59,54,170,143,59,
54,21,119,59,54,110,94,59,54,179,69,59,54,230,44,59,54,5,20,59,54,17,251,58,54,10,226,58,54,240,200,58,54,195,175,58,54,131,150,58,54,48,125,58,54,202,99,58,54,81,74,58,54,197,48,58,54,38,23,58,54,116,253,57,54,175,227,57,54,216,201,57,54,237,175,57,54,239,149,57,54,223,123,57,54,188,97,57,54,133,71,57,54,60,45,57,54,224,18,57,54,114,248,56,54,240,221,56,54,92,195,56,54,181,168,56,54,251,141,56,54,46,115,56,54,79,88,56,54,93,61,56,54,88,34,56,54,65,7,56,54,23,236,55,54,218,208,55,54,138,181,55,54,
40,154,55,54,180,126,55,54,44,99,55,54,146,71,55,54,230,43,55,54,39,16,55,54,85,244,54,54,113,216,54,54,122,188,54,54,113,160,54,54,85,132,54,54,39,104,54,54,231,75,54,54,148,47,54,54,46,19,54,54,182,246,53,54,44,218,53,54,143,189,53,54,224,160,53,54,30,132,53,54,74,103,53,54,100,74,53,54,108,45,53,54,97,16,53,54,68,243,52,54,20,214,52,54,211,184,52,54,127,155,52,54,25,126,52,54,160,96,52,54,22,67,52,54,121,37,52,54,202,7,52,54,9,234,51,54,54,204,51,54,81,174,51,54,89,144,51,54,80,114,51,54,52,84,
51,54,6,54,51,54,198,23,51,54,117,249,50,54,17,219,50,54,155,188,50,54,19,158,50,54,121,127,50,54,205,96,50,54,16,66,50,54,64,35,50,54,94,4,50,54,107,229,49,54,102,198,49,54,78,167,49,54,37,136,49,54,234,104,49,54,158,73,49,54,63,42,49,54,207,10,49,54,77,235,48,54,185,203,48,54,19,172,48,54,92,140,48,54,147,108,48,54,184,76,48,54,203,44,48,54,205,12,48,54,189,236,47,54,156,204,47,54,105,172,47,54,36,140,47,54,206,107,47,54,102,75,47,54,237,42,47,54,98,10,47,54,197,233,46,54,24,201,46,54,88,168,46,
54,135,135,46,54,165,102,46,54,177,69,46,54,172,36,46,54,149,3,46,54,109,226,45,54,52,193,45,54,233,159,45,54,141,126,45,54,31,93,45,54,160,59,45,54,16,26,45,54,111,248,44,54,188,214,44,54,249,180,44,54,36,147,44,54,61,113,44,54,70,79,44,54,61,45,44,54,35,11,44,54,248,232,43,54,188,198,43,54,111,164,43,54,16,130,43,54,161,95,43,54,33,61,43,54,143,26,43,54,236,247,42,54,57,213,42,54,116,178,42,54,159,143,42,54,184,108,42,54,193,73,42,54,184,38,42,54,159,3,42,54,117,224,41,54,58,189,41,54,238,153,41,
54,145,118,41,54,35,83,41,54,165,47,41,54,22,12,41,54,118,232,40,54,197,196,40,54,3,161,40,54,49,125,40,54,78,89,40,54,91,53,40,54,86,17,40,54,65,237,39,54,28,201,39,54,230,164,39,54,159,128,39,54,71,92,39,54,224,55,39,54,103,19,39,54,222,238,38,54,68,202,38,54,154,165,38,54,224,128,38,54,21,92,38,54,57,55,38,54,78,18,38,54,81,237,37,54,69,200,37,54,40,163,37,54,250,125,37,54,188,88,37,54,110,51,37,54,16,14,37,54,161,232,36,54,35,195,36,54,147,157,36,54,244,119,36,54,68,82,36,54,133,44,36,54,181,
6,36,54,213,224,35,54,228,186,35,54,228,148,35,54,211,110,35,54,179,72,35,54,130,34,35,54,65,252,34,54,241,213,34,54,144,175,34,54,31,137,34,54,159,98,34,54,14,60,34,54,109,21,34,54,189,238,33,54,252,199,33,54,44,161,33,54,76,122,33,54,92,83,33,54,92,44,33,54,76,5,33,54,45,222,32,54,253,182,32,54,190,143,32,54,112,104,32,54,17,65,32,54,163,25,32,54,37,242,31,54,152,202,31,54,251,162,31,54,78,123,31,54,145,83,31,54,198,43,31,54,234,3,31,54,255,219,30,54,4,180,30,54,250,139,30,54,225,99,30,54,183,59,
30,54,127,19,30,54,55,235,29,54,224,194,29,54,121,154,29,54,3,114,29,54,125,73,29,54,232,32,29,54,68,248,28,54,144,207,28,54,206,166,28,54,252,125,28,54,26,85,28,54,42,44,28,54,42,3,28,54,27,218,27,54,253,176,27,54,208,135,27,54,147,94,27,54,72,53,27,54,237,11,27,54,132,226,26,54,11,185,26,54,131,143,26,54,237,101,26,54,71,60,26,54,146,18,26,54,206,232,25,54,252,190,25,54,26,149,25,54,42,107,25,54,43,65,25,54,28,23,25,54,255,236,24,54,212,194,24,54,153,152,24,54,80,110,24,54,247,67,24,54,145,25,24,
54,27,239,23,54,151,196,23,54,4,154,23,54,98,111,23,54,178,68,23,54,243,25,23,54,37,239,22,54,73,196,22,54,95,153,22,54,101,110,22,54,94,67,22,54,71,24,22,54,35,237,21,54,240,193,21,54,174,150,21,54,94,107,21,54,0,64,21,54,147,20,21,54,24,233,20,54,142,189,20,54,246,145,20,54,80,102,20,54,156,58,20,54,217,14,20,54,8,227,19,54,41,183,19,54,60,139,19,54,64,95,19,54,55,51,19,54,31,7,19,54,249,218,18,54,197,174,18,54,131,130,18,54,51,86,18,54,212,41,18,54,104,253,17,54,238,208,17,54,102,164,17,54,208,
119,17,54,44,75,17,54,122,30,17,54,186,241,16,54,236,196,16,54,17,152,16,54,39,107,16,54,48,62,16,54,43,17,16,54,24,228,15,54,248,182,15,54,202,137,15,54,142,92,15,54,68,47,15,54,237,1,15,54,136,212,14,54,21,167,14,54,149,121,14,54,7,76,14,54,108,30,14,54,195,240,13,54,13,195,13,54,73,149,13,54,120,103,13,54,153,57,13,54,173,11,13,54,179,221,12,54,172,175,12,54,152,129,12,54,118,83,12,54,71,37,12,54,11,247,11,54,193,200,11,54,106,154,11,54,6,108,11,54,148,61,11,54,22,15,11,54,138,224,10,54,241,177,
10,54,75,131,10,54,152,84,10,54,216,37,10,54,10,247,9,54,48,200,9,54,73,153,9,54,84,106,9,54,83,59,9,54,68,12,9,54,41,221,8,54,1,174,8,54,204,126,8,54,138,79,8,54,59,32,8,54,223,240,7,54,118,193,7,54,1,146,7,54,127,98,7,54,240,50,7,54,84,3,7,54,172,211,6,54,247,163,6,54,54,116,6,54,103,68,6,54,140,20,6,54,165,228,5,54,177,180,5,54,176,132,5,54,163,84,5,54,137,36,5,54,99,244,4,54,48,196,4,54,241,147,4,54,166,99,4,54,78,51,4,54,234,2,4,54,121,210,3,54,252,161,3,54,115,113,3,54,221,64,3,54,59,16,3,54,
141,223,2,54,211,174,2,54,12,126,2,54,57,77,2,54,91,28,2,54,112,235,1,54,120,186,1,54,117,137,1,54,102,88,1,54,74,39,1,54,35,246,0,54,240,196,0,54,176,147,0,54,101,98,0,54,14,49,0,54,85,255,255,53,119,156,255,53,129,57,255,53,115,214,254,53,78,115,254,53,17,16,254,53,189,172,253,53,81,73,253,53,205,229,252,53,50,130,252,53,128,30,252,53,183,186,251,53,214,86,251,53,222,242,250,53,206,142,250,53,168,42,250,53,106,198,249,53,21,98,249,53,170,253,248,53,39,153,248,53,141,52,248,53,221,207,247,53,21,
107,247,53,55,6,247,53,66,161,246,53,55,60,246,53,20,215,245,53,220,113,245,53,140,12,245,53,38,167,244,53,170,65,244,53,23,220,243,53,109,118,243,53,174,16,243,53,216,170,242,53,236,68,242,53,233,222,241,53,209,120,241,53,162,18,241,53,93,172,240,53,2,70,240,53,146,223,239,53,11,121,239,53,110,18,239,53,188,171,238,53,244,68,238,53,22,222,237,53,34,119,237,53,25,16,237,53,250,168,236,53,197,65,236,53,123,218,235,53,28,115,235,53,167,11,235,53,28,164,234,53,125,60,234,53,200,212,233,53,254,108,233,
53,30,5,233,53,42,157,232,53,32,53,232,53,1,205,231,53,206,100,231,53,133,252,230,53,39,148,230,53,181,43,230,53,46,195,229,53,146,90,229,53,225,241,228,53,27,137,228,53,65,32,228,53,83,183,227,53,79,78,227,53,56,229,226,53,11,124,226,53,203,18,226,53,118,169,225,53,13,64,225,53,143,214,224,53,253,108,224,53,87,3,224,53,157,153,223,53,207,47,223,53,237,197,222,53,247,91,222,53,237,241,221,53,207,135,221,53,157,29,221,53,88,179,220,53,254,72,220,53,145,222,219,53,16,116,219,53,124,9,219,53,212,158,
218,53,25,52,218,53,74,201,217,53,104,94,217,53,114,243,216,53,105,136,216,53,77,29,216,53,30,178,215,53,219,70,215,53,133,219,214,53,29,112,214,53,161,4,214,53,18,153,213,53,112,45,213,53,187,193,212,53,244,85,212,53,25,234,211,53,44,126,211,53,45,18,211,53,26,166,210,53,245,57,210,53,189,205,209,53,115,97,209,53,23,245,208,53,168,136,208,53,38,28,208,53,147,175,207,53,237,66,207,53,53,214,206,53,106,105,206,53,142,252,205,53,159,143,205,53,158,34,205,53,140,181,204,53,103,72,204,53,49,219,203,53,
233,109,203,53,143,0,203,53,35,147,202,53,165,37,202,53,22,184,201,53,117,74,201,53,195,220,200,53,255,110,200,53,42,1,200,53,67,147,199,53,75,37,199,53,66,183,198,53,39,73,198,53,251,218,197,53,190,108,197,53,112,254,196,53,17,144,196,53,161,33,196,53,32,179,195,53,142,68,195,53,235,213,194,53,55,103,194,53,114,248,193,53,157,137,193,53,183,26,193,53,192,171,192,53,185,60,192,53,162,205,191,53,121,94,191,53,65,239,190,53,248,127,190,53,158,16,190,53,53,161,189,53,187,49,189,53,49,194,188,53,150,
82,188,53,236,226,187,53,50,115,187,53,103,3,187,53,141,147,186,53,163,35,186,53,169,179,185,53,159,67,185,53,133,211,184,53,92,99,184,53,35,243,183,53,218,130,183,53,130,18,183,53,26,162,182,53,163,49,182,53,29,193,181,53,135,80,181,53,226,223,180,53,45,111,180,53,105,254,179,53,151,141,179,53,181,28,179,53,196,171,178,53,195,58,178,53,180,201,177,53,151,88,177,53,106,231,176,53,46,118,176,53,228,4,176,53,139,147,175,53,35,34,175,53,172,176,174,53,39,63,174,53,148,205,173,53,242,91,173,53,66,234,
172,53,131,120,172,53,182,6,172,53,218,148,171,53,241,34,171,53,249,176,170,53,243,62,170,53,223,204,169,53,189,90,169,53,141,232,168,53,79,118,168,53,4,4,168,53,170,145,167,53,67,31,167,53,206,172,166,53,75,58,166,53,186,199,165,53,28,85,165,53,113,226,164,53,184,111,164,53,241,252,163,53,30,138,163,53,60,23,163,53,78,164,162,53,82,49,162,53,73,190,161,53,51,75,161,53,16,216,160,53,224,100,160,53,163,241,159,53,89,126,159,53,2,11,159,53,159,151,158,53,46,36,158,53,177,176,157,53,39,61,157,53,144,
201,156,53,237,85,156,53,62,226,155,53,129,110,155,53,185,250,154,53,228,134,154,53,3,19,154,53,21,159,153,53,27,43,153,53,21,183,152,53,3,67,152,53,229,206,151,53,187,90,151,53,132,230,150,53,66,114,150,53,244,253,149,53,154,137,149,53,53,21,149,53,195,160,148,53,70,44,148,53,190,183,147,53,41,67,147,53,138,206,146,53,222,89,146,53,40,229,145,53,102,112,145,53,152,251,144,53,192,134,144,53,220,17,144,53,237,156,143,53,242,39,143,53,237,178,142,53,221,61,142,53,194,200,141,53,155,83,141,53,106,222,
140,53,46,105,140,53,232,243,139,53,150,126,139,53,58,9,139,53,212,147,138,53,98,30,138,53,231,168,137,53,96,51,137,53,208,189,136,53,53,72,136,53,143,210,135,53,224,92,135,53,38,231,134,53,98,113,134,53,148,251,133,53,187,133,133,53,217,15,133,53,237,153,132,53,247,35,132,53,247,173,131,53,237,55,131,53,218,193,130,53,189,75,130,53,150,213,129,53,101,95,129,53,43,233,128,53,232,114,128,53,53,249,127,53,136,12,127,53,201,31,126,53,246,50,125,53,18,70,124,53,27,89,123,53,17,108,122,53,246,126,121,
53,200,145,120,53,136,164,119,53,55,183,118,53,211,201,117,53,94,220,116,53,215,238,115,53,63,1,115,53,149,19,114,53,219,37,113,53,15,56,112,53,49,74,111,53,67,92,110,53,68,110,109,53,52,128,108,53,20,146,107,53,227,163,106,53,161,181,105,53,79,199,104,53,237,216,103,53,123,234,102,53,248,251,101,53,102,13,101,53,196,30,100,53,18,48,99,53,80,65,98,53,127,82,97,53,158,99,96,53,174,116,95,53,175,133,94,53,160,150,93,53,131,167,92,53,86,184,91,53,27,201,90,53,209,217,89,53,120,234,88,53,17,251,87,53,
155,11,87,53,23,28,86,53,133,44,85,53,228,60,84,53,54,77,83,53,121,93,82,53,175,109,81,53,215,125,80,53,242,141,79,53,255,157,78,53,254,173,77,53,240,189,76,53,213,205,75,53,173,221,74,53,120,237,73,53,54,253,72,53,231,12,72,53,140,28,71,53,36,44,70,53,175,59,69,53,46,75,68,53,161,90,67,53,7,106,66,53,97,121,65,53,176,136,64,53,242,151,63,53,41,167,62,53,84,182,61,53,115,197,60,53,135,212,59,53,144,227,58,53,141,242,57,53,127,1,57,53,103,16,56,53,67,31,55,53,20,46,54,53,218,60,53,53,150,75,52,53,
71,90,51,53,238,104,50,53,139,119,49,53,29,134,48,53,165,148,47,53,35,163,46,53,151,177,45,53,1,192,44,53,98,206,43,53,185,220,42,53,6,235,41,53,74,249,40,53,132,7,40,53,182,21,39,53,222,35,38,53,253,49,37,53,19,64,36,53,32,78,35,53,37,92,34,53,33,106,33,53,21,120,32,53,0,134,31,53,227,147,30,53,189,161,29,53,144,175,28,53,90,189,27,53,29,203,26,53,216,216,25,53,139,230,24,53,55,244,23,53,219,1,23,53,119,15,22,53,13,29,21,53,155,42,20,53,34,56,19,53,162,69,18,53,27,83,17,53,142,96,16,53,249,109,15,
53,95,123,14,53,189,136,13,53,22,150,12,53,104,163,11,53,180,176,10,53,250,189,9,53,58,203,8,53,116,216,7,53,168,229,6,53,215,242,5,53,0,0,5,53,36,13,4,53,66,26,3,53,91,39,2,53,111,52,1,53,126,65,0,53,16,157,254,52,26,183,252,52,27,209,250,52,18,235,248,52,1,5,247,52,230,30,245,52,195,56,243,52,152,82,241,52,100,108,239,52,40,134,237,52,229,159,235,52,154,185,233,52,71,211,231,52,237,236,229,52,140,6,228,52,37,32,226,52,182,57,224,52,66,83,222,52,199,108,220,52,70,134,218,52,191,159,216,52,51,185,
214,52,161,210,212,52,11,236,210,52,111,5,209,52,206,30,207,52,41,56,205,52,128,81,203,52,210,106,201,52,32,132,199,52,107,157,197,52,178,182,195,52,246,207,193,52,54,233,191,52,116,2,190,52,175,27,188,52,231,52,186,52,29,78,184,52,81,103,182,52,131,128,180,52,179,153,178,52,226,178,176,52,16,204,174,52,60,229,172,52,103,254,170,52,146,23,169,52,188,48,167,52,230,73,165,52,16,99,163,52,58,124,161,52,100,149,159,52,143,174,157,52,187,199,155,52,231,224,153,52,21,250,151,52,68,19,150,52,116,44,148,
52,166,69,146,52,219,94,144,52,17,120,142,52,73,145,140,52,133,170,138,52,194,195,136,52,3,221,134,52,71,246,132,52,143,15,131,52,218,40,129,52,81,132,126,52,246,182,122,52,164,233,118,52,90,28,115,52,26,79,111,52,227,129,107,52,182,180,103,52,148,231,99,52,124,26,96,52,112,77,92,52,111,128,88,52,122,179,84,52,145,230,80,52,181,25,77,52,231,76,73,52,38,128,69,52,114,179,65,52,206,230,61,52,56,26,58,52,178,77,54,52,59,129,50,52,212,180,46,52,125,232,42,52,56,28,39,52,3,80,35,52,224,131,31,52,208,183,
27,52,209,235,23,52,230,31,20,52,14,84,16,52,73,136,12,52,153,188,8,52,253,240,4,52,118,37,1,52,8,180,250,51,79,29,243,51,195,134,235,51,100,240,227,51,50,90,220,51,47,196,212,51,91,46,205,51,184,152,197,51,69,3,190,51,5,110,182,51,247,216,174,51,28,68,167,51,117,175,159,51,4,27,152,51,200,134,144,51,195,242,136,51,245,94,129,51,190,150,115,51,5,112,100,51,191,73,85,51,239,35,70,51,149,254,54,51,180,217,39,51,77,181,24,51,97,145,9,51,229,219,244,50,6,150,214,50,39,81,184,50,77,13,154,50,243,148,119,
50,97,17,59,50,213,31,253,49,43,33,132,49,14,109,178,47,89,158,91,177,192,192,230,177,239,214,47,178,60,75,108,178,161,94,148,178,124,150,178,178,45,205,208,178,177,2,239,178,130,155,6,179,18,181,21,179,6,206,36,179,93,230,51,179,21,254,66,179,45,21,82,179,163,43,97,179,117,65,112,179,163,86,127,179,149,53,135,179,132,191,142,179,30,73,150,179,99,210,157,179,81,91,165,179,232,227,172,179,39,108,180,179,12,244,187,179,153,123,195,179,202,2,203,179,161,137,210,179,27,16,218,179,57,150,225,179,249,27,
233,179,90,161,240,179,92,38,248,179,255,170,255,179,160,151,3,180,144,89,7,180,79,27,11,180,220,220,14,180,55,158,18,180,96,95,22,180,86,32,26,180,25,225,29,180,168,161,33,180,4,98,37,180,43,34,41,180,29,226,44,180,218,161,48,180,98,97,52,180,180,32,56,180,207,223,59,180,180,158,63,180,98,93,67,180,216,27,71,180,22,218,74,180,28,152,78,180,234,85,82,180,126,19,86,180,217,208,89,180,250,141,93,180,225,74,97,180,141,7,101,180,254,195,104,180,52,128,108,180,46,60,112,180,236,247,115,180,109,179,119,
180,177,110,123,180,184,41,127,180,65,114,129,180,134,79,131,180,173,44,133,180,179,9,135,180,155,230,136,180,98,195,138,180,9,160,140,180,144,124,142,180,247,88,144,180,61,53,146,180,98,17,148,180,102,237,149,180,73,201,151,180,11,165,153,180,171,128,155,180,41,92,157,180,133,55,159,180,191,18,161,180,215,237,162,180,204,200,164,180,158,163,166,180,78,126,168,180,218,88,170,180,67,51,172,180,136,13,174,180,170,231,175,180,168,193,177,180,129,155,179,180,55,117,181,180,200,78,183,180,52,40,185,180,
123,1,187,180,157,218,188,180,154,179,190,180,114,140,192,180,36,101,194,180,176,61,196,180,22,22,198,180,86,238,199,180,111,198,201,180,98,158,203,180,46,118,205,180,211,77,207,180,81,37,209,180,167,252,210,180,214,211,212,180,221,170,214,180,188,129,216,180,115,88,218,180,2,47,220,180,104,5,222,180,166,219,223,180,187,177,225,180,166,135,227,180,104,93,229,180,1,51,231,180,112,8,233,180,182,221,234,180,209,178,236,180,194,135,238,180,136,92,240,180,36,49,242,180,150,5,244,180,220,217,245,180,247,
173,247,180,230,129,249,180,170,85,251,180,67,41,253,180,175,252,254,180,248,103,0,181,130,81,1,181,246,58,2,181,83,36,3,181,154,13,4,181,202,246,4,181,228,223,5,181,231,200,6,181,211,177,7,181,169,154,8,181,103,131,9,181,14,108,10,181,158,84,11,181,23,61,12,181,121,37,13,181,195,13,14,181,245,245,14,181,16,222,15,181,19,198,16,181,254,173,17,181,209,149,18,181,140,125,19,181,47,101,20,181,186,76,21,181,44,52,22,181,134,27,23,181,200,2,24,181,241,233,24,181,1,209,25,181,249,183,26,181,215,158,27,
181,157,133,28,181,74,108,29,181,221,82,30,181,87,57,31,181,184,31,32,181,0,6,33,181,46,236,33,181,66,210,34,181,61,184,35,181,29,158,36,181,228,131,37,181,145,105,38,181,36,79,39,181,157,52,40,181,251,25,41,181,63,255,41,181,105,228,42,181,120,201,43,181,109,174,44,181,70,147,45,181,5,120,46,181,170,92,47,181,51,65,48,181,161,37,49,181,243,9,50,181,43,238,50,181,71,210,51,181,72,182,52,181,45,154,53,181,247,125,54,181,164,97,55,181,54,69,56,181,173,40,57,181,7,12,58,181,69,239,58,181,103,210,59,
181,108,181,60,181,85,152,61,181,34,123,62,181,210,93,63,181,102,64,64,181,221,34,65,181,55,5,66,181,116,231,66,181,148,201,67,181,151,171,68,181,125,141,69,181,70,111,70,181,241,80,71,181,127,50,72,181,239,19,73,181,66,245,73,181,119,214,74,181,142,183,75,181,135,152,76,181,98,121,77,181,31,90,78,181,190,58,79,181,63,27,80,181,162,251,80,181,230,219,81,181,11,188,82,181,18,156,83,181,250,123,84,181,195,91,85,181,110,59,86,181,249,26,87,181,102,250,87,181,179,217,88,181,225,184,89,181,240,151,90,
181,223,118,91,181,175,85,92,181,96,52,93,181,240,18,94,181,97,241,94,181,178,207,95,181,227,173,96,181,244,139,97,181,229,105,98,181,181,71,99,181,102,37,100,181,246,2,101,181,101,224,101,181,180,189,102,181,226,154,103,181,240,119,104,181,221,84,105,181,169,49,106,181,83,14,107,181,221,234,107,181,70,199,108,181,141,163,109,181,179,127,110,181,184,91,111,181,155,55,112,181,92,19,113,181,252,238,113,181,122,202,114,181,214,165,115,181,16,129,116,181,40,92,117,181,30,55,118,181,242,17,119,181,163,
236,119,181,50,199,120,181,159,161,121,181,233,123,122,181,16,86,123,181,21,48,124,181,246,9,125,181,181,227,125,181,81,189,126,181,202,150,127,181,16,56,128,181,169,164,128,181,49,17,129,181,166,125,129,181,11,234,129,181,93,86,130,181,157,194,130,181,204,46,131,181,232,154,131,181,243,6,132,181,236,114,132,181,210,222,132,181,167,74,133,181,105,182,133,181,25,34,134,181,183,141,134,181,67,249,134,181,189,100,135,181,36,208,135,181,120,59,136,181,187,166,136,181,234,17,137,181,8,125,137,181,18,232,
137,181,10,83,138,181,240,189,138,181,195,40,139,181,131,147,139,181,48,254,139,181,202,104,140,181,82,211,140,181,199,61,141,181,40,168,141,181,119,18,142,181,179,124,142,181,220,230,142,181,241,80,143,181,244,186,143,181,227,36,144,181,191,142,144,181,136,248,144,181,61,98,145,181,223,203,145,181,110,53,146,181,233,158,146,181,81,8,147,181,165,113,147,181,230,218,147,181,19,68,148,181,45,173,148,181,51,22,149,181,37,127,149,181,3,232,149,181,206,80,150,181,132,185,150,181,39,34,151,181,182,138,
151,181,49,243,151,181,152,91,152,181,235,195,152,181,41,44,153,181,84,148,153,181,106,252,153,181,109,100,154,181,91,204,154,181,52,52,155,181,250,155,155,181,171,3,156,181,71,107,156,181,207,210,156,181,67,58,157,181,162,161,157,181,236,8,158,181,34,112,158,181,67,215,158,181,80,62,159,181,72,165,159,181,43,12,160,181,249,114,160,181,178,217,160,181,87,64,161,181,230,166,161,181,97,13,162,181,198,115,162,181,23,218,162,181,82,64,163,181,120,166,163,181,137,12,164,181,133,114,164,181,108,216,164,
181,61,62,165,181,249,163,165,181,160,9,166,181,49,111,166,181,173,212,166,181,19,58,167,181,99,159,167,181,159,4,168,181,196,105,168,181,212,206,168,181,206,51,169,181,179,152,169,181,129,253,169,181,58,98,170,181,221,198,170,181,106,43,171,181,226,143,171,181,67,244,171,181,142,88,172,181,195,188,172,181,227,32,173,181,236,132,173,181,223,232,173,181,187,76,174,181,130,176,174,181,50,20,175,181,204,119,175,181,79,219,175,181,189,62,176,181,19,162,176,181,84,5,177,181,125,104,177,181,145,203,177,
181,141,46,178,181,115,145,178,181,67,244,178,181,251,86,179,181,157,185,179,181,41,28,180,181,157,126,180,181,251,224,180,181,65,67,181,181,113,165,181,181,138,7,182,181,140,105,182,181,119,203,182,181,74,45,183,181,7,143,183,181,172,240,183,181,59,82,184,181,178,179,184,181,18,21,185,181,90,118,185,181,139,215,185,181,165,56,186,181,168,153,186,181,147,250,186,181,102,91,187,181,34,188,187,181,199,28,188,181,84,125,188,181,201,221,188,181,38,62,189,181,108,158,189,181,154,254,189,181,177,94,190,
181,175,190,190,181,150,30,191,181,101,126,191,181,28,222,191,181,187,61,192,181,66,157,192,181,177,252,192,181,7,92,193,181,70,187,193,181,109,26,194,181,123,121,194,181,113,216,194,181,79,55,195,181,21,150,195,181,194,244,195,181,87,83,196,181,212,177,196,181,56,16,197,181,132,110,197,181,183,204,197,181,210,42,198,181,212,136,198,181,189,230,198,181,142,68,199,181,70,162,199,181,230,255,199,181,108,93,200,181,218,186,200,181,48,24,201,181,108,117,201,181,143,210,201,181,154,47,202,181,139,140,
202,181,99,233,202,181,35,70,203,181,201,162,203,181,86,255,203,181,203,91,204,181,37,184,204,181,103,20,205,181,144,112,205,181,159,204,205,181,149,40,206,181,113,132,206,181,52,224,206,181,222,59,207,181,110,151,207,181,229,242,207,181,67,78,208,181,134,169,208,181,176,4,209,181,193,95,209,181,184,186,209,181,149,21,210,181,88,112,210,181,2,203,210,181,146,37,211,181,8,128,211,181,100,218,211,181,166,52,212,181,207,142,212,181,221,232,212,181,209,66,213,181,172,156,213,181,108,246,213,181,18,80,
214,181,158,169,214,181,16,3,215,181,103,92,215,181,165,181,215,181,200,14,216,181,209,103,216,181,191,192,216,181,147,25,217,181,77,114,217,181,236,202,217,181,113,35,218,181,219,123,218,181,43,212,218,181,96,44,219,181,123,132,219,181,123,220,219,181,96,52,220,181,43,140,220,181,219,227,220,181,112,59,221,181,234,146,221,181,73,234,221,181,142,65,222,181,184,152,222,181,198,239,222,181,186,70,223,181,147,157,223,181,81,244,223,181,243,74,224,181,123,161,224,181,231,247,224,181,57,78,225,181,111,
164,225,181,138,250,225,181,137,80,226,181,110,166,226,181,55,252,226,181,229,81,227,181,119,167,227,181,238,252,227,181,73,82,228,181,137,167,228,181,174,252,228,181,182,81,229,181,164,166,229,181,118,251,229,181,44,80,230,181,198,164,230,181,69,249,230,181,168,77,231,181,239,161,231,181,26,246,231,181,42,74,232,181,30,158,232,181,246,241,232,181,178,69,233,181,82,153,233,181,214,236,233,181,62,64,234,181,138,147,234,181,186,230,234,181,206,57,235,181,197,140,235,181,161,223,235,181,96,50,236,181,
3,133,236,181,138,215,236,181,245,41,237,181,67,124,237,181,117,206,237,181,138,32,238,181,131,114,238,181,96,196,238,181,32,22,239,181,196,103,239,181,75,185,239,181,182,10,240,181,4,92,240,181,53,173,240,181,74,254,240,181,66,79,241,181,29,160,241,181,220,240,241,181,126,65,242,181,3,146,242,181,107,226,242,181,183,50,243,181,229,130,243,181,247,210,243,181,235,34,244,181,195,114,244,181,126,194,244,181,27,18,245,181,156,97,245,181,0,177,245,181,70,0,246,181,111,79,246,181,123,158,246,181,106,237,
246,181,60,60,247,181,240,138,247,181,135,217,247,181,1,40,248,181,93,118,248,181,156,196,248,181,190,18,249,181,194,96,249,181,169,174,249,181,114,252,249,181,30,74,250,181,172,151,250,181,29,229,250,181,112,50,251,181,165,127,251,181,189,204,251,181,183,25,252,181,147,102,252,181,82,179,252,181,242,255,252,181,117,76,253,181,219,152,253,181,34,229,253,181,75,49,254,181,87,125,254,181,69,201,254,181,20,21,255,181,198,96,255,181,89,172,255,181,207,247,255,181,147,33,0,182,48,71,0,182,190,108,0,182,
60,146,0,182,172,183,0,182,12,221,0,182,93,2,1,182,159,39,1,182,210,76,1,182,246,113,1,182,11,151,1,182,16,188,1,182,6,225,1,182,237,5,2,182,197,42,2,182,142,79,2,182,71,116,2,182,241,152,2,182,140,189,2,182,23,226,2,182,148,6,3,182,1,43,3,182,94,79,3,182,172,115,3,182,235,151,3,182,27,188,3,182,59,224,3,182,75,4,4,182,77,40,4,182,63,76,4,182,33,112,4,182,244,147,4,182,184,183,4,182,108,219,4,182,16,255,4,182,165,34,5,182,43,70,5,182,161,105,5,182,7,141,5,182,94,176,5,182,166,211,5,182,222,246,5,
182,6,26,6,182,31,61,6,182,40,96,6,182,33,131,6,182,11,166,6,182,229,200,6,182,176,235,6,182,106,14,7,182,21,49,7,182,177,83,7,182,61,118,7,182,185,152,7,182,37,187,7,182,129,221,7,182,206,255,7,182,11,34,8,182,56,68,8,182,86,102,8,182,100,136,8,182,97,170,8,182,79,204,8,182,45,238,8,182,252,15,9,182,186,49,9,182,105,83,9,182,7,117,9,182,150,150,9,182,21,184,9,182,132,217,9,182,227,250,9,182,50,28,10,182,113,61,10,182,160,94,10,182,191,127,10,182,206,160,10,182,206,193,10,182,189,226,10,182,156,3,
11,182,107,36,11,182,42,69,11,182,217,101,11,182,120,134,11,182,6,167,11,182,133,199,11,182,244,231,11,182,82,8,12,182,161,40,12,182,223,72,12,182,13,105,12,182,43,137,12,182,56,169,12,182,54,201,12,182,35,233,12,182,0,9,13,182,205,40,13,182,138,72,13,182,54,104,13,182,210,135,13,182,94,167,13,182,218,198,13,182,69,230,13,182,160,5,14,182,235,36,14,182,38,68,14,182,80,99,14,182,105,130,14,182,115,161,14,182,108,192,14,182,85,223,14,182,45,254,14,182,245,28,15,182,172,59,15,182,84,90,15,182,234,120,
15,182,112,151,15,182,230,181,15,182,76,212,15,182,161,242,15,182,229,16,16,182,25,47,16,182,60,77,16,182,79,107,16,182,82,137,16,182,68,167,16,182,37,197,16,182,246,226,16,182,182,0,17,182,102,30,17,182,5,60,17,182,147,89,17,182,17,119,17,182,127,148,17,182,219,177,17,182,40,207,17,182,99,236,17,182,142,9,18,182,168,38,18,182,177,67,18,182,170,96,18,182,146,125,18,182,106,154,18,182,49,183,18,182,231,211,18,182,140,240,18,182,33,13,19,182,164,41,19,182,23,70,19,182,122,98,19,182,203,126,19,182,12,
155,19,182,60,183,19,182,91,211,19,182,106,239,19,182,103,11,20,182,84,39,20,182,48,67,20,182,251,94,20,182,181,122,20,182,94,150,20,182,247,177,20,182,126,205,20,182,245,232,20,182,91,4,21,182,176,31,21,182,244,58,21,182,39,86,21,182,73,113,21,182,90,140,21,182,90,167,21,182,73,194,21,182,40,221,21,182,245,247,21,182,177,18,22,182,92,45,22,182,247,71,22,182,128,98,22,182,248,124,22,182,95,151,22,182,182,177,22,182,251,203,22,182,47,230,22,182,82,0,23,182,100,26,23,182,100,52,23,182,84,78,23,182,
51,104,23,182,0,130,23,182,189,155,23,182,104,181,23,182,2,207,23,182,139,232,23,182,3,2,24,182,106,27,24,182,191,52,24,182,4,78,24,182,55,103,24,182,89,128,24,182,106,153,24,182,105,178,24,182,88,203,24,182,53,228,24,182,1,253,24,182,187,21,25,182,101,46,25,182,253,70,25,182,132,95,25,182,250,119,25,182,94,144,25,182,177,168,25,182,243,192,25,182,35,217,25,182,66,241,25,182,80,9,26,182,77,33,26,182,56,57,26,182,18,81,26,182,218,104,26,182,146,128,26,182,55,152,26,182,204,175,26,182,79,199,26,182,
193,222,26,182,33,246,26,182,112,13,27,182,173,36,27,182,217,59,27,182,244,82,27,182,253,105,27,182,245,128,27,182,219,151,27,182,176,174,27,182,116,197,27,182,38,220,27,182,198,242,27,182,85,9,28,182,211,31,28,182,63,54,28,182,153,76,28,182,226,98,28,182,26,121,28,182,64,143,28,182,84,165,28,182,87,187,28,182,73,209,28,182,41,231,28,182,247,252,28,182,180,18,29,182,95,40,29,182,249,61,29,182,129,83,29,182,247,104,29,182,92,126,29,182,176,147,29,182,241,168,29,182,33,190,29,182,64,211,29,182,77,232,
29,182,72,253,29,182,50,18,30,182,9,39,30,182,208,59,30,182,132,80,30,182,39,101,30,182,185,121,30,182,56,142,30,182,166,162,30,182,3,183,30,182,77,203,30,182,134,223,30,182,173,243,30,182,195,7,31,182,199,27,31,182,185,47,31,182,153,67,31,182,104,87,31,182,37,107,31,182,208,126,31,182,105,146,31,182,241,165,31,182,103,185,31,182,203,204,31,182,29,224,31,182,94,243,31,182,140,6,32,182,169,25,32,182,181,44,32,182,174,63,32,182,150,82,32,182,107,101,32,182,47,120,32,182,226,138,32,182,130,157,32,182,
16,176,32,182,141,194,32,182,248,212,32,182,81,231,32,182,152,249,32,182,205,11,33,182,241,29,33,182,2,48,33,182,2,66,33,182,240,83,33,182,204,101,33,182,150,119,33,182,78,137,33,182,244,154,33,182,137,172,33,182,11,190,33,182,124,207,33,182,218,224,33,182,39,242,33,182,98,3,34,182,139,20,34,182,162,37,34,182,167,54,34,182,154,71,34,182,123,88,34,182,74,105,34,182,7,122,34,182,178,138,34,182,76,155,34,182,211,171,34,182,72,188,34,182,172,204,34,182,253,220,34,182,60,237,34,182,106,253,34,182,133,
13,35,182,143,29,35,182,134,45,35,182,108,61,35,182,63,77,35,182,0,93,35,182,176,108,35,182,77,124,35,182,216,139,35,182,82,155,35,182,185,170,35,182,14,186,35,182,81,201,35,182,130,216,35,182,161,231,35,182,174,246,35,182,169,5,36,182,146,20,36,182,105,35,36,182,46,50,36,182,225,64,36,182,129,79,36,182,16,94,36,182,140,108,36,182,247,122,36,182,79,137,36,182,149,151,36,182,201,165,36,182,235,179,36,182,251,193,36,182,249,207,36,182,229,221,36,182,190,235,36,182,134,249,36,182,59,7,37,182,222,20,
37,182,111,34,37,182,238,47,37,182,91,61,37,182,182,74,37,182,254,87,37,182,53,101,37,182,89,114,37,182,107,127,37,182,107,140,37,182,89,153,37,182,53,166,37,182,254,178,37,182,182,191,37,182,91,204,37,182,238,216,37,182,111,229,37,182,221,241,37,182,58,254,37,182,132,10,38,182,188,22,38,182,226,34,38,182,246,46,38,182,248,58,38,182,231,70,38,182,196,82,38,182,143,94,38,182,72,106,38,182,239,117,38,182,131,129,38,182,6,141,38,182,118,152,38,182,212,163,38,182,31,175,38,182,89,186,38,182,128,197,38,
182,149,208,38,182,152,219,38,182,136,230,38,182,102,241,38,182,51,252,38,182,236,6,39,182,148,17,39,182,42,28,39,182,173,38,39,182,30,49,39,182,124,59,39,182,201,69,39,182,3,80,39,182,43,90,39,182,65,100,39,182,69,110,39,182,54,120,39,182,21,130,39,182,226,139,39,182,156,149,39,182,69,159,39,182,219,168,39,182,94,178,39,182,208,187,39,182,47,197,39,182,124,206,39,182,183,215,39,182,224,224,39,182,246,233,39,182,250,242,39,182,236,251,39,182,203,4,40,182,152,13,40,182,83,22,40,182,252,30,40,182,146,
39,40,182,22,48,40,182,136,56,40,182,232,64,40,182,53,73,40,182,112,81,40,182,153,89,40,182,175,97,40,182,180,105,40,182,166,113,40,182,133,121,40,182,83,129,40,182,14,137,40,182,183,144,40,182,77,152,40,182,209,159,40,182,67,167,40,182,163,174,40,182,241,181,40,182,44,189,40,182,85,196,40,182,107,203,40,182,111,210,40,182,97,217,40,182,65,224,40,182,15,231,40,182,202,237,40,182,115,244,40,182,9,251,40,182,142,1,41,182,0,8,41,182,95,14,41,182,173,20,41,182,232,26,41,182,17,33,41,182,40,39,41,182,
44,45,41,182,30,51,41,182,254,56,41,182,203,62,41,182,134,68,41,182,47,74,41,182,198,79,41,182,74,85,41,182,188,90,41,182,28,96,41,182,105,101,41,182,165,106,41,182,206,111,41,182,228,116,41,182,233,121,41,182,219,126,41,182,186,131,41,182,136,136,41,182,67,141,41,182,236,145,41,182,131,150,41,182,7,155,41,182,121,159,41,182,217,163,41,182,39,168,41,182,98,172,41,182,139,176,41,182,162,180,41,182,166,184,41,182,153,188,41,182,121,192,41,182,70,196,41,182,2,200,41,182,171,203,41,182,66,207,41,182,
198,210,41,182,57,214,41,182,153,217,41,182,231,220,41,182,34,224,41,182,76,227,41,182,99,230,41,182,104,233,41,182,90,236,41,182,58,239,41,182,8,242,41,182,196,244,41,182,110,247,41,182,5,250,41,182,138,252,41,182,253,254,41,182,94,1,42,182,172,3,42,182,232,5,42,182,18,8,42,182,42,10,42,182,47,12,42,182,34,14,42,182,3,16,42,182,210,17,42,182,142,19,42,182,57,21,42,182,209,22,42,182,86,24,42,182,202,25,42,182,43,27,42,182,123,28,42,182,183,29,42,182,226,30,42,182,251,31,42,182,1,33,42,182,245,33,
42,182,215,34,42,182,167,35,42,182,100,36,42,182,16,37,42,182,169,37,42,182,48,38,42,182,165,38,42,182,7,39,42,182,87,39,42,182,150,39,42,182,194,39,42,182,220,39,42,182,227,39,42,182,217,39,42,182,188,39,42,182,141,39,42,182,76,39,42,182,249,38,42,182,148,38,42,182,28,38,42,182,147,37,42,182,247,36,42,182,73,36,42,182,137,35,42,182,183,34,42,182,210,33,42,182,220,32,42,182,211,31,42,182,185,30,42,182,140,29,42,182,77,28,42,182,252,26,42,182,153,25,42,182,35,24,42,182,156,22,42,182,2,21,42,182,87,
19,42,182,153,17,42,182,201,15,42,182,231,13,42,182,243,11,42,182,237,9,42,182,213,7,42,182,171,5,42,182,110,3,42,182,32,1,42,182,191,254,41,182,77,252,41,182,200,249,41,182,49,247,41,182,137,244,41,182,206,241,41,182,1,239,41,182,34,236,41,182,49,233,41,182,46,230,41,182,25,227,41,182,242,223,41,182,185,220,41,182,110,217,41,182,17,214,41,182,162,210,41,182,33,207,41,182,142,203,41,182,233,199,41,182,50,196,41,182,105,192,41,182,142,188,41,182,161,184,41,182,161,180,41,182,144,176,41,182,109,172,
41,182,57,168,41,182,242,163,41,182,153,159,41,182,46,155,41,182,177,150,41,182,34,146,41,182,130,141,41,182,207,136,41,182,11,132,41,182,52,127,41,182,76,122,41,182,81,117,41,182,69,112,41,182,39,107,41,182,247,101,41,182,181,96,41,182,97,91,41,182,252,85,41,182,132,80,41,182,251,74,41,182,95,69,41,182,178,63,41,182,243,57,41,182,34,52,41,182,63,46,41,182,75,40,41,182,68,34,41,182,44,28,41,182,2,22,41,182,198,15,41,182,120,9,41,182,24,3,41,182,167,252,40,182,35,246,40,182,142,239,40,182,232,232,
40,182,47,226,40,182,100,219,40,182,136,212,40,182,154,205,40,182,154,198,40,182,137,191,40,182,102,184,40,182,48,177,40,182,234,169,40,182,145,162,40,182,39,155,40,182,171,147,40,182,29,140,40,182,126,132,40,182,204,124,40,182,9,117,40,182,53,109,40,182,79,101,40,182,87,93,40,182,77,85,40,182,49,77,40,182,4,69,40,182,198,60,40,182,117,52,40,182,19,44,40,182,160,35,40,182,26,27,40,182,131,18,40,182,219,9,40,182,32,1,40,182,85,248,39,182,119,239,39,182,136,230,39,182,135,221,39,182,117,212,39,182,
81,203,39,182,28,194,39,182,213,184,39,182],"i8",4,y.a+1228800);
Q([124,175,39,182,18,166,39,182,150,156,39,182,9,147,39,182,106,137,39,182,186,127,39,182,248,117,39,182,37,108,39,182,64,98,39,182,73,88,39,182,65,78,39,182,40,68,39,182,253,57,39,182,193,47,39,182,115,37,39,182,19,27,39,182,163,16,39,182,32,6,39,182,140,251,38,182,231,240,38,182,49,230,38,182,105,219,38,182,143,208,38,182,164,197,38,182,168,186,38,182,154,175,38,182,123,164,38,182,75,153,38,182,9,142,38,182,182,130,38,182,81,119,38,182,219,107,38,182,84,96,38,182,187,84,38,182,17,73,38,182,86,61,
38,182,137,49,38,182,171,37,38,182,188,25,38,182,187,13,38,182,170,1,38,182,134,245,37,182,82,233,37,182,12,221,37,182,181,208,37,182,77,196,37,182,212,183,37,182,73,171,37,182,173,158,37,182,0,146,37,182,66,133,37,182,114,120,37,182,145,107,37,182,159,94,37,182,156,81,37,182,136,68,37,182,98,55,37,182,44,42,37,182,228,28,37,182,139,15,37,182,33,2,37,182,166,244,36,182,25,231,36,182,124,217,36,182,205,203,36,182,14,190,36,182,61,176,36,182,91,162,36,182,104,148,36,182,100,134,36,182,79,120,36,182,
41,106,36,182,242,91,36,182,170,77,36,182,81,63,36,182,231,48,36,182,107,34,36,182,223,19,36,182,66,5,36,182,148,246,35,182,213,231,35,182,5,217,35,182,36,202,35,182,50,187,35,182,47,172,35,182,27,157,35,182,246,141,35,182,193,126,35,182,122,111,35,182,35,96,35,182,186,80,35,182,65,65,35,182,183,49,35,182,28,34,35,182,112,18,35,182,180,2,35,182,230,242,34,182,8,227,34,182,25,211,34,182,25,195,34,182,8,179,34,182,231,162,34,182,180,146,34,182,113,130,34,182,30,114,34,182,185,97,34,182,68,81,34,182,
190,64,34,182,39,48,34,182,128,31,34,182,200,14,34,182,255,253,33,182,37,237,33,182,59,220,33,182,64,203,33,182,53,186,33,182,25,169,33,182,236,151,33,182,175,134,33,182,96,117,33,182,2,100,33,182,147,82,33,182,19,65,33,182,130,47,33,182,225,29,33,182,48,12,33,182,110,250,32,182,155,232,32,182,184,214,32,182,197,196,32,182,192,178,32,182,172,160,32,182,135,142,32,182,81,124,32,182,11,106,32,182,180,87,32,182,77,69,32,182,214,50,32,182,78,32,32,182,182,13,32,182,13,251,31,182,84,232,31,182,138,213,
31,182,176,194,31,182,198,175,31,182,203,156,31,182,193,137,31,182,165,118,31,182,122,99,31,182,62,80,31,182,241,60,31,182,149,41,31,182,40,22,31,182,171,2,31,182,30,239,30,182,128,219,30,182,210,199,30,182,20,180,30,182,70,160,30,182,103,140,30,182,120,120,30,182,121,100,30,182,106,80,30,182,75,60,30,182,28,40,30,182,220,19,30,182,140,255,29,182,44,235,29,182,188,214,29,182,60,194,29,182,172,173,29,182,12,153,29,182,91,132,29,182,155,111,29,182,203,90,29,182,234,69,29,182,250,48,29,182,249,27,29,
182,233,6,29,182,200,241,28,182,151,220,28,182,87,199,28,182,7,178,28,182,166,156,28,182,54,135,28,182,181,113,28,182,37,92,28,182,133,70,28,182,213,48,28,182,21,27,28,182,70,5,28,182,102,239,27,182,118,217,27,182,119,195,27,182,104,173,27,182,73,151,27,182,26,129,27,182,220,106,27,182,142,84,27,182,47,62,27,182,194,39,27,182,68,17,27,182,183,250,26,182,26,228,26,182,109,205,26,182,176,182,26,182,228,159,26,182,8,137,26,182,29,114,26,182,34,91,26,182,23,68,26,182,253,44,26,182,211,21,26,182,153,254,
25,182,80,231,25,182,247,207,25,182,143,184,25,182,23,161,25,182,143,137,25,182,248,113,25,182,82,90,25,182,156,66,25,182,214,42,25,182,1,19,25,182,29,251,24,182,41,227,24,182,37,203,24,182,18,179,24,182,240,154,24,182,191,130,24,182,126,106,24,182,45,82,24,182,205,57,24,182,94,33,24,182,224,8,24,182,82,240,23,182,180,215,23,182,8,191,23,182,76,166,23,182,129,141,23,182,167,116,23,182,189,91,23,182,196,66,23,182,188,41,23,182,165,16,23,182,126,247,22,182,73,222,22,182,4,197,22,182,176,171,22,182,
76,146,22,182,218,120,22,182,88,95,22,182,200,69,22,182,40,44,22,182,121,18,22,182,187,248,21,182,238,222,21,182,18,197,21,182,39,171,21,182,45,145,21,182,36,119,21,182,11,93,21,182,228,66,21,182,174,40,21,182,105,14,21,182,21,244,20,182,178,217,20,182,64,191,20,182,191,164,20,182,47,138,20,182,145,111,20,182,227,84,20,182,39,58,20,182,92,31,20,182,130,4,20,182,153,233,19,182,161,206,19,182,155,179,19,182,133,152,19,182,97,125,19,182,47,98,19,182,237,70,19,182,157,43,19,182,62,16,19,182,208,244,18,
182,84,217,18,182,201,189,18,182,47,162,18,182,135,134,18,182,208,106,18,182,10,79,18,182,54,51,18,182,83,23,18,182,98,251,17,182,98,223,17,182,84,195,17,182,55,167,17,182,11,139,17,182,209,110,17,182,137,82,17,182,50,54,17,182,204,25,17,182,88,253,16,182,214,224,16,182,69,196,16,182,166,167,16,182,249,138,16,182,61,110,16,182,114,81,16,182,154,52,16,182,179,23,16,182,189,250,15,182,186,221,15,182,168,192,15,182,135,163,15,182,89,134,15,182,28,105,15,182,209,75,15,182,120,46,15,182,16,17,15,182,155,
243,14,182,23,214,14,182,133,184,14,182,229,154,14,182,55,125,14,182,122,95,14,182,176,65,14,182,215,35,14,182,240,5,14,182,252,231,13,182,249,201,13,182,232,171,13,182,201,141,13,182,156,111,13,182,97,81,13,182,24,51,13,182,193,20,13,182,93,246,12,182,234,215,12,182,105,185,12,182,219,154,12,182,62,124,12,182,148,93,12,182,220,62,12,182,22,32,12,182,66,1,12,182,96,226,11,182,113,195,11,182,115,164,11,182,104,133,11,182,80,102,11,182,41,71,11,182,245,39,11,182,179,8,11,182,99,233,10,182,6,202,10,
182,155,170,10,182,34,139,10,182,155,107,10,182,8,76,10,182,102,44,10,182,183,12,10,182,250,236,9,182,48,205,9,182,88,173,9,182,114,141,9,182,128,109,9,182,127,77,9,182,113,45,9,182,86,13,9,182,45,237,8,182,247,204,8,182,179,172,8,182,98,140,8,182,4,108,8,182,152,75,8,182,30,43,8,182,152,10,8,182,4,234,7,182,99,201,7,182,180,168,7,182,248,135,7,182,47,103,7,182,89,70,7,182,117,37,7,182,133,4,7,182,135,227,6,182,123,194,6,182,99,161,6,182,61,128,6,182,11,95,6,182,203,61,6,182,126,28,6,182,36,251,5,
182,189,217,5,182,73,184,5,182,199,150,5,182,57,117,5,182,158,83,5,182,246,49,5,182,64,16,5,182,126,238,4,182,175,204,4,182,211,170,4,182,234,136,4,182,244,102,4,182,241,68,4,182,225,34,4,182,197,0,4,182,155,222,3,182,101,188,3,182,34,154,3,182,210,119,3,182,117,85,3,182,12,51,3,182,150,16,3,182,19,238,2,182,131,203,2,182,231,168,2,182,62,134,2,182,137,99,2,182,198,64,2,182,247,29,2,182,28,251,1,182,52,216,1,182,63,181,1,182,62,146,1,182,48,111,1,182,22,76,1,182,239,40,1,182,187,5,1,182,124,226,0,
182,47,191,0,182,214,155,0,182,113,120,0,182,0,85,0,182,130,49,0,182,247,13,0,182,193,212,255,181,123,141,255,181,28,70,255,181,164,254,254,181,20,183,254,181,107,111,254,181,170,39,254,181,208,223,253,181,222,151,253,181,211,79,253,181,176,7,253,181,117,191,252,181,33,119,252,181,181,46,252,181,49,230,251,181,148,157,251,181,223,84,251,181,18,12,251,181,45,195,250,181,48,122,250,181,27,49,250,181,238,231,249,181,168,158,249,181,75,85,249,181,214,11,249,181,73,194,248,181,164,120,248,181,231,46,248,
181,19,229,247,181,39,155,247,181,35,81,247,181,7,7,247,181,212,188,246,181,137,114,246,181,38,40,246,181,172,221,245,181,26,147,245,181,113,72,245,181,177,253,244,181,217,178,244,181,233,103,244,181,227,28,244,181,197,209,243,181,143,134,243,181,67,59,243,181,223,239,242,181,100,164,242,181,210,88,242,181,41,13,242,181,105,193,241,181,146,117,241,181,164,41,241,181,159,221,240,181,131,145,240,181,80,69,240,181,6,249,239,181,165,172,239,181,46,96,239,181,159,19,239,181,251,198,238,181,63,122,238,
181,109,45,238,181,132,224,237,181,133,147,237,181,111,70,237,181,66,249,236,181,255,171,236,181,166,94,236,181,54,17,236,181,176,195,235,181,20,118,235,181,97,40,235,181,152,218,234,181,185,140,234,181,196,62,234,181,184,240,233,181,150,162,233,181,95,84,233,181,17,6,233,181,173,183,232,181,52,105,232,181,164,26,232,181,254,203,231,181,67,125,231,181,114,46,231,181,139,223,230,181,142,144,230,181,124,65,230,181,84,242,229,181,22,163,229,181,194,83,229,181,89,4,229,181,219,180,228,181,71,101,228,
181,158,21,228,181,223,197,227,181,10,118,227,181,33,38,227,181,34,214,226,181,14,134,226,181,228,53,226,181,166,229,225,181,82,149,225,181,233,68,225,181,107,244,224,181,216,163,224,181,47,83,224,181,114,2,224,181,160,177,223,181,185,96,223,181,189,15,223,181,173,190,222,181,135,109,222,181,77,28,222,181,254,202,221,181,154,121,221,181,34,40,221,181,149,214,220,181,243,132,220,181,61,51,220,181,115,225,219,181,148,143,219,181,160,61,219,181,152,235,218,181,124,153,218,181,75,71,218,181,7,245,217,
181,173,162,217,181,64,80,217,181,191,253,216,181,41,171,216,181,127,88,216,181,193,5,216,181,240,178,215,181,10,96,215,181,16,13,215,181,3,186,214,181,225,102,214,181,172,19,214,181,98,192,213,181,6,109,213,181,149,25,213,181,17,198,212,181,121,114,212,181,205,30,212,181,14,203,211,181,59,119,211,181,85,35,211,181,92,207,210,181,78,123,210,181,46,39,210,181,250,210,209,181,179,126,209,181,89,42,209,181,235,213,208,181,106,129,208,181,215,44,208,181,48,216,207,181,117,131,207,181,168,46,207,181,200,
217,206,181,213,132,206,181,207,47,206,181,182,218,205,181,138,133,205,181,76,48,205,181,250,218,204,181,150,133,204,181,31,48,204,181,150,218,203,181,250,132,203,181,75,47,203,181,138,217,202,181,182,131,202,181,208,45,202,181,216,215,201,181,205,129,201,181,175,43,201,181,128,213,200,181,62,127,200,181,234,40,200,181,131,210,199,181,11,124,199,181,128,37,199,181,227,206,198,181,53,120,198,181,116,33,198,181,161,202,197,181,189,115,197,181,198,28,197,181,190,197,196,181,164,110,196,181,120,23,196,
181,58,192,195,181,235,104,195,181,138,17,195,181,23,186,194,181,147,98,194,181,253,10,194,181,86,179,193,181,157,91,193,181,211,3,193,181,248,171,192,181,11,84,192,181,13,252,191,181,254,163,191,181,221,75,191,181,171,243,190,181,104,155,190,181,20,67,190,181,175,234,189,181,57,146,189,181,178,57,189,181,26,225,188,181,113,136,188,181,183,47,188,181,237,214,187,181,17,126,187,181,37,37,187,181,40,204,186,181,27,115,186,181,253,25,186,181,206,192,185,181,143,103,185,181,63,14,185,181,223,180,184,
181,110,91,184,181,237,1,184,181,91,168,183,181,185,78,183,181,7,245,182,181,69,155,182,181,115,65,182,181,144,231,181,181,157,141,181,181,155,51,181,181,136,217,180,181,101,127,180,181,50,37,180,181,239,202,179,181,157,112,179,181,59,22,179,181,200,187,178,181,70,97,178,181,181,6,178,181,19,172,177,181,98,81,177,181,162,246,176,181,210,155,176,181,242,64,176,181,3,230,175,181,5,139,175,181,247,47,175,181,217,212,174,181,173,121,174,181,113,30,174,181,38,195,173,181,204,103,173,181,98,12,173,181,
234,176,172,181,98,85,172,181,203,249,171,181,38,158,171,181,113,66,171,181,174,230,170,181,219,138,170,181,250,46,170,181,10,211,169,181,12,119,169,181,254,26,169,181,226,190,168,181,183,98,168,181,126,6,168,181,54,170,167,181,224,77,167,181,123,241,166,181,8,149,166,181,135,56,166,181,247,219,165,181,88,127,165,181,172,34,165,181,241,197,164,181,40,105,164,181,81,12,164,181,108,175,163,181,121,82,163,181,120,245,162,181,105,152,162,181,76,59,162,181,33,222,161,181,232,128,161,181,161,35,161,181,
77,198,160,181,235,104,160,181,123,11,160,181,253,173,159,181,114,80,159,181,218,242,158,181,52,149,158,181,128,55,158,181,191,217,157,181,240,123,157,181,21,30,157,181,44,192,156,181,53,98,156,181,49,4,156,181,33,166,155,181,3,72,155,181,216,233,154,181,159,139,154,181,90,45,154,181,8,207,153,181,169,112,153,181,61,18,153,181,196,179,152,181,62,85,152,181,172,246,151,181,12,152,151,181,96,57,151,181,168,218,150,181,227,123,150,181,17,29,150,181,50,190,149,181,72,95,149,181,80,0,149,181,77,161,148,
181,61,66,148,181,32,227,147,181,248,131,147,181,195,36,147,181,130,197,146,181,52,102,146,181,219,6,146,181,118,167,145,181,4,72,145,181,135,232,144,181,253,136,144,181,104,41,144,181,199,201,143,181,26,106,143,181,97,10,143,181,156,170,142,181,204,74,142,181,240,234,141,181,9,139,141,181,21,43,141,181,23,203,140,181,13,107,140,181,247,10,140,181,214,170,139,181,170,74,139,181,114,234,138,181,47,138,138,181,225,41,138,181,135,201,137,181,35,105,137,181,179,8,137,181,56,168,136,181,178,71,136,181,
34,231,135,181,134,134,135,181,223,37,135,181,46,197,134,181,113,100,134,181,170,3,134,181,216,162,133,181,252,65,133,181,21,225,132,181,35,128,132,181,38,31,132,181,31,190,131,181,14,93,131,181,242,251,130,181,204,154,130,181,155,57,130,181,96,216,129,181,27,119,129,181,204,21,129,181,114,180,128,181,14,83,128,181,64,227,127,181,80,32,127,181,76,93,126,181,52,154,125,181,8,215,124,181,201,19,124,181,117,80,123,181,14,141,122,181,148,201,121,181,6,6,121,181,100,66,120,181,176,126,119,181,232,186,
118,181,13,247,117,181,31,51,117,181,30,111,116,181,10,171,115,181,227,230,114,181,170,34,114,181,94,94,113,181,0,154,112,181,143,213,111,181,11,17,111,181,118,76,110,181,206,135,109,181,20,195,108,181,72,254,107,181,107,57,107,181,123,116,106,181,122,175,105,181,102,234,104,181,66,37,104,181,12,96,103,181,196,154,102,181,107,213,101,181,1,16,101,181,133,74,100,181,249,132,99,181,91,191,98,181,173,249,97,181,238,51,97,181,30,110,96,181,61,168,95,181,76,226,94,181,74,28,94,181,56,86,93,181,21,144,
92,181,227,201,91,181,160,3,91,181,77,61,90,181,234,118,89,181,119,176,88,181,245,233,87,181,98,35,87,181,193,92,86,181,15,150,85,181,78,207,84,181,126,8,84,181,158,65,83,181,175,122,82,181,177,179,81,181,164,236,80,181,136,37,80,181,93,94,79,181,35,151,78,181,219,207,77,181,132,8,77,181,31,65,76,181,171,121,75,181,40,178,74,181,152,234,73,181,249,34,73,181,76,91,72,181,145,147,71,181,200,203,70,181,241,3,70,181,13,60,69,181,27,116,68,181,27,172,67,181,14,228,66,181,243,27,66,181,203,83,65,181,150,
139,64,181,83,195,63,181,4,251,62,181,167,50,62,181,62,106,61,181,200,161,60,181,69,217,59,181,181,16,59,181,25,72,58,181,112,127,57,181,187,182,56,181,250,237,55,181,44,37,55,181,82,92,54,181,109,147,53,181,123,202,52,181,125,1,52,181,116,56,51,181,95,111,50,181,62,166,49,181,18,221,48,181,218,19,48,181,151,74,47,181,72,129,46,181,239,183,45,181,138,238,44,181,26,37,44,181,159,91,43,181,26,146,42,181,138,200,41,181,239,254,40,181,73,53,40,181,153,107,39,181,222,161,38,181,25,216,37,181,74,14,37,
181,113,68,36,181,142,122,35,181,160,176,34,181,169,230,33,181,168,28,33,181,157,82,32,181,137,136,31,181,107,190,30,181,67,244,29,181,18,42,29,181,216,95,28,181,148,149,27,181,72,203,26,181,242,0,26,181,147,54,25,181,44,108,24,181,188,161,23,181,67,215,22,181,193,12,22,181,55,66,21,181,164,119,20,181,9,173,19,181,102,226,18,181,186,23,18,181,7,77,17,181,75,130,16,181,136,183,15,181,188,236,14,181,233,33,14,181,14,87,13,181,44,140,12,181,66,193,11,181,80,246,10,181,88,43,10,181,88,96,9,181,81,149,
8,181,66,202,7,181,45,255,6,181,17,52,6,181,238,104,5,181,197,157,4,181,148,210,3,181,93,7,3,181,32,60,2,181,220,112,1,181,146,165,0,181,132,180,255,180,215,29,254,180,30,135,252,180,89,240,250,180,137,89,249,180,173,194,247,180,197,43,246,180,210,148,244,180,212,253,242,180,203,102,241,180,184,207,239,180,154,56,238,180,113,161,236,180,63,10,235,180,2,115,233,180,187,219,231,180,107,68,230,180,17,173,228,180,174,21,227,180,66,126,225,180,204,230,223,180,78,79,222,180,199,183,220,180,56,32,219,180,
160,136,217,180,0,241,215,180,88,89,214,180,169,193,212,180,241,41,211,180,50,146,209,180,108,250,207,180,159,98,206,180,203,202,204,180,240,50,203,180,14,155,201,180,38,3,200,180,56,107,198,180,68,211,196,180,74,59,195,180,73,163,193,180,68,11,192,180,57,115,190,180,40,219,188,180,19,67,187,180,249,170,185,180,218,18,184,180,182,122,182,180,142,226,180,180,98,74,179,180,50,178,177,180,254,25,176,180,198,129,174,180,139,233,172,180,76,81,171,180,10,185,169,180,197,32,168,180,125,136,166,180,51,240,
164,180,230,87,163,180,151,191,161,180,69,39,160,180,242,142,158,180,157,246,156,180,70,94,155,180,237,197,153,180,148,45,152,180,57,149,150,180,221,252,148,180,128,100,147,180,35,204,145,180,197,51,144,180,103,155,142,180,9,3,141,180,171,106,139,180,77,210,137,180,240,57,136,180,147,161,134,180,55,9,133,180,220,112,131,180,130,216,129,180,41,64,128,180,162,79,125,180,247,30,122,180,78,238,118,180,170,189,115,180,10,141,112,180,110,92,109,180,215,43,106,180,69,251,102,180,185,202,99,180,51,154,96,
180,179,105,93,180,58,57,90,180,199,8,87,180,92,216,83,180,248,167,80,180,157,119,77,180,73,71,74,180,255,22,71,180,189,230,67,180,132,182,64,180,85,134,61,180,48,86,58,180,22,38,55,180,6,246,51,180,1,198,48,180,7,150,45,180,25,102,42,180,55,54,39,180,98,6,36,180,153,214,32,180,221,166,29,180,46,119,26,180,141,71,23,180,251,23,20,180,118,232,16,180,1,185,13,180,154,137,10,180,67,90,7,180,251,42,4,180,196,251,0,180,57,153,251,179,13,59,245,179,2,221,238,179,27,127,232,179,87,33,226,179,183,195,219,
179,60,102,213,179,230,8,207,179,183,171,200,179,175,78,194,179,206,241,187,179,21,149,181,179,134,56,175,179,32,220,168,179,228,127,162,179,211,35,156,179,238,199,149,179,53,108,143,179,169,16,137,179,75,181,130,179,54,180,120,179,52,254,107,179,145,72,95,179,79,147,82,179,111,222,69,179,242,41,57,179,218,117,44,179,40,194,31,179,221,14,19,179,251,91,6,179,7,83,243,178,238,238,217,178,174,139,192,178,75,41,167,178,198,199,141,178,70,206,104,178,201,14,54,178,25,81,3,178,119,42,161,177,186,217,238,
176,123,231,166,48,102,38,143,49,27,143,244,49,251,249,44,50,117,170,95,50,123,44,137,50,189,130,162,50,253,215,187,50,56,44,213,50,109,127,238,50,204,232,3,51,92,145,16,51,100,57,29,51,227,224,41,51,216,135,54,51,65,46,67,51,30,212,79,51,108,121,92,51,43,30,105,51,90,194,117,51,251,50,129,51,127,132,135,51,185,213,141,51,168,38,148,51,75,119,154,51,162,199,160,51,171,23,167,51,103,103,173,51,213,182,179,51,243,5,186,51,194,84,192,51,65,163,198,51,110,241,204,51,74,63,211,51,211,140,217,51,9,218,
223,51,236,38,230,51,122,115,236,51,180,191,242,51,151,11,249,51,37,87,255,51,45,209,2,52,157,246,5,52,224,27,9,52,247,64,12,52,225,101,15,52,157,138,18,52,45,175,21,52,142,211,24,52,193,247,27,52,198,27,31,52,156,63,34,52,67,99,37,52,187,134,40,52,3,170,43,52,26,205,46,52,1,240,49,52,184,18,53,52,61,53,56,52,145,87,59,52,179,121,62,52,164,155,65,52,97,189,68,52,236,222,71,52,68,0,75,52,105,33,78,52,90,66,81,52,22,99,84,52,159,131,87,52,243,163,90,52,17,196,93,52,251,227,96,52,175,3,100,52,44,35,
103,52,116,66,106,52,133,97,109,52,94,128,112,52,1,159,115,52,108,189,118,52,159,219,121,52,153,249,124,52,174,11,128,52,114,154,129,52,26,41,131,52,165,183,132,52,20,70,134,52,101,212,135,52,152,98,137,52,175,240,138,52,168,126,140,52,131,12,142,52,64,154,143,52,223,39,145,52,96,181,146,52,194,66,148,52,6,208,149,52,43,93,151,52,49,234,152,52,24,119,154,52,224,3,156,52,137,144,157,52,18,29,159,52,123,169,160,52,197,53,162,52,238,193,163,52,247,77,165,52,224,217,166,52,169,101,168,52,80,241,169,52,
215,124,171,52,61,8,173,52,130,147,174,52,166,30,176,52,168,169,177,52,136,52,179,52,71,191,180,52,228,73,182,52,94,212,183,52,183,94,185,52,236,232,186,52,0,115,188,52,240,252,189,52,190,134,191,52,105,16,193,52,240,153,194,52,84,35,196,52,149,172,197,52,178,53,199,52,171,190,200,52,127,71,202,52,48,208,203,52,189,88,205,52,37,225,206,52,104,105,208,52,134,241,209,52,128,121,211,52,84,1,213,52,3,137,214,52,141,16,216,52,241,151,217,52,48,31,219,52,72,166,220,52,58,45,222,52,6,180,223,52,172,58,225,
52,43,193,226,52,132,71,228,52,181,205,229,52,192,83,231,52,163,217,232,52,96,95,234,52,244,228,235,52,97,106,237,52,166,239,238,52,195,116,240,52,185,249,241,52,133,126,243,52,42,3,245,52,166,135,246,52,249,11,248,52,35,144,249,52,36,20,251,52,252,151,252,52,170,27,254,52,47,159,255,52,69,145,0,53,222,82,1,53,98,20,2,53,208,213,2,53,42,151,3,53,110,88,4,53,157,25,5,53,183,218,5,53,187,155,6,53,170,92,7,53,131,29,8,53,70,222,8,53,243,158,9,53,139,95,10,53,13,32,11,53,121,224,11,53,206,160,12,53,14,
97,13,53,55,33,14,53,74,225,14,53,71,161,15,53,45,97,16,53,252,32,17,53,181,224,17,53,88,160,18,53,227,95,19,53,88,31,20,53,182,222,20,53,252,157,21,53,44,93,22,53,68,28,23,53,70,219,23,53,48,154,24,53,2,89,25,53,189,23,26,53,97,214,26,53,237,148,27,53,97,83,28,53,190,17,29,53,2,208,29,53,47,142,30,53,68,76,31,53,65,10,32,53,37,200,32,53,241,133,33,53,165,67,34,53,65,1,35,53,196,190,35,53,47,124,36,53,129,57,37,53,187,246,37,53,219,179,38,53,227,112,39,53,210,45,40,53,168,234,40,53,101,167,41,53,
9,100,42,53,147,32,43,53,5,221,43,53,93,153,44,53,155,85,45,53,192,17,46,53,204,205,46,53,189,137,47,53,150,69,48,53,84,1,49,53,248,188,49,53,131,120,50,53,243,51,51,53,74,239,51,53,134,170,52,53,168,101,53,53,175,32,54,53,156,219,54,53,111,150,55,53,39,81,56,53,197,11,57,53,72,198,57,53,176,128,58,53,253,58,59,53,48,245,59,53,71,175,60,53,67,105,61,53,36,35,62,53,234,220,62,53,149,150,63,53,36,80,64,53,152,9,65,53,241,194,65,53,46,124,66,53,79,53,67,53,84,238,67,53,62,167,68,53,12,96,69,53,189,24,
70,53,83,209,70,53,205,137,71,53,43,66,72,53,108,250,72,53,145,178,73,53,154,106,74,53,134,34,75,53,86,218,75,53,9,146,76,53,159,73,77,53,25,1,78,53,118,184,78,53,181,111,79,53,216,38,80,53,222,221,80,53,199,148,81,53,147,75,82,53,65,2,83,53,210,184,83,53,70,111,84,53,156,37,85,53,213,219,85,53,240,145,86,53,238,71,87,53,205,253,87,53,143,179,88,53,51,105,89,53,185,30,90,53,33,212,90,53,107,137,91,53,151,62,92,53,164,243,92,53,147,168,93,53,100,93,94,53,22,18,95,53,170,198,95,53,31,123,96,53,117,
47,97,53,173,227,97,53,198,151,98,53,191,75,99,53,154,255,99,53,86,179,100,53,243,102,101,53,113,26,102,53,207,205,102,53,14,129,103,53,46,52,104,53,46,231,104,53,15,154,105,53,208,76,106,53,114,255,106,53,243,177,107,53,85,100,108,53,151,22,109,53,186,200,109,53,188,122,110,53,158,44,111,53,96,222,111,53,1,144,112,53,131,65,113,53,228,242,113,53,36,164,114,53,68,85,115,53,68,6,116,53,34,183,116,53,225,103,117,53,126,24,118,53,250,200,118,53,86,121,119,53,145,41,120,53,170,217,120,53,163,137,121,
53,122,57,122,53,48,233,122,53,196,152,123,53,56,72,124,53,138,247,124,53,186,166,125,53,200,85,126,53,181,4,127,53,129,179,127,53,21,49,128,53,89,136,128,53,140,223,128,53,173,54,129,53,190,141,129,53,190,228,129,53,173,59,130,53,138,146,130,53,86,233,130,53,17,64,131,53,187,150,131,53,84,237,131,53,219,67,132,53,81,154,132,53,181,240,132,53,8,71,133,53,74,157,133,53,122,243,133,53,153,73,134,53,166,159,134,53,162,245,134,53,140,75,135,53,100,161,135,53,43,247,135,53,224,76,136,53,131,162,136,53,
20,248,136,53,148,77,137,53,1,163,137,53,93,248,137,53,167,77,138,53,223,162,138,53,5,248,138,53,25,77,139,53,27,162,139,53,11,247,139,53,233,75,140,53,181,160,140,53,110,245,140,53,22,74,141,53,171,158,141,53,45,243,141,53,158,71,142,53,252,155,142,53,72,240,142,53,129,68,143,53,168,152,143,53,189,236,143,53,191,64,144,53,174,148,144,53,139,232,144,53,85,60,145,53,13,144,145,53,178,227,145,53,68,55,146,53,196,138,146,53,49,222,146,53,139,49,147,53,210,132,147,53,7,216,147,53,40,43,148,53,55,126,
148,53,50,209,148,53,27,36,149,53,241,118,149,53,179,201,149,53,99,28,150,53,255,110,150,53,136,193,150,53,254,19,151,53,97,102,151,53,177,184,151,53,237,10,152,53,23,93,152,53,44,175,152,53,47,1,153,53,30,83,153,53,249,164,153,53,194,246,153,53,118,72,154,53,23,154,154,53,165,235,154,53,31,61,155,53,133,142,155,53,216,223,155,53,23,49,156,53,67,130,156,53,90,211,156,53,94,36,157,53,78,117,157,53,42,198,157,53,243,22,158,53,167,103,158,53,72,184,158,53,213,8,159,53,77,89,159,53,178,169,159,53,3,250,
159,53,63,74,160,53,104,154,160,53,124,234,160,53,124,58,161,53,104,138,161,53,64,218,161,53,3,42,162,53,178,121,162,53,77,201,162,53,212,24,163,53,70,104,163,53,163,183,163,53,237,6,164,53,33,86,164,53,66,165,164,53,77,244,164,53,69,67,165,53,39,146,165,53,245,224,165,53,175,47,166,53,83,126,166,53,227,204,166,53,95,27,167,53,197,105,167,53,23,184,167,53,84,6,168,53,124,84,168,53,143,162,168,53,141,240,168,53,118,62,169,53,74,140,169,53,10,218,169,53,180,39,170,53,73,117,170,53,201,194,170,53,52,
16,171,53,138,93,171,53,202,170,171,53,246,247,171,53,12,69,172,53,13,146,172,53,248,222,172,53,207,43,173,53,144,120,173,53,59,197,173,53,209,17,174,53,82,94,174,53,189,170,174,53,19,247,174,53,83,67,175,53,126,143,175,53,147,219,175,53,146,39,176,53,124,115,176,53,80,191,176,53,14,11,177,53,183,86,177,53,74,162,177,53,199,237,177,53,47,57,178,53,128,132,178,53,188,207,178,53,225,26,179,53,241,101,179,53,235,176,179,53,207,251,179,53,157,70,180,53,84,145,180,53,246,219,180,53,130,38,181,53,247,112,
181,53,87,187,181,53,160,5,182,53,211,79,182,53,240,153,182,53,246,227,182,53,230,45,183,53,192,119,183,53,132,193,183,53,49,11,184,53,200,84,184,53,72,158,184,53,178,231,184,53,5,49,185,53,66,122,185,53,105,195,185,53,120,12,186,53,114,85,186,53,84,158,186,53,32,231,186,53,213,47,187,53,116,120,187,53,252,192,187,53,109,9,188,53,199,81,188,53,11,154,188,53,55,226,188,53,77,42,189,53,76,114,189,53,52,186,189,53,5,2,190,53,191,73,190,53,98,145,190,53,238,216,190,53,99,32,191,53,193,103,191,53,8,175,
191,53,56,246,191,53,81,61,192,53,82,132,192,53,60,203,192,53,15,18,193,53,203,88,193,53,111,159,193,53,252,229,193,53,114,44,194,53,209,114,194,53,24,185,194,53,71,255,194,53,95,69,195,53,96,139,195,53,73,209,195,53,27,23,196,53,213,92,196,53,120,162,196,53,3,232,196,53,118,45,197,53,210,114,197,53,22,184,197,53,66,253,197,53,87,66,198,53,84,135,198,53,57,204,198,53,6,17,199,53,187,85,199,53,89,154,199,53,223,222,199,53,77,35,200,53,163,103,200,53,225,171,200,53,7,240,200,53,21,52,201,53,10,120,
201,53,232,187,201,53,174,255,201,53,92,67,202,53,242,134,202,53,111,202,202,53,212,13,203,53,34,81,203,53,86,148,203,53,115,215,203,53,119,26,204,53,100,93,204,53,55,160,204,53,243,226,204,53,150,37,205,53,32,104,205,53,147,170,205,53,236,236,205,53,46,47,206,53,87,113,206,53,103,179,206,53,95,245,206,53,62,55,207,53,4,121,207,53,178,186,207,53,72,252,207,53,197,61,208,53,41,127,208,53,116,192,208,53,167,1,209,53,192,66,209,53,194,131,209,53,170,196,209,53,121,5,210,53,48,70,210,53,206,134,210,53,
83,199,210,53,190,7,211,53,17,72,211,53,76,136,211,53,109,200,211,53,117,8,212,53,100,72,212,53,58,136,212,53,246,199,212,53,154,7,213,53,37,71,213,53,150,134,213,53,239,197,213,53,46,5,214,53,84,68,214,53,96,131,214,53,84,194,214,53,46,1,215,53,239,63,215,53,150,126,215,53,36,189,215,53,153,251,215,53,245,57,216,53,55,120,216,53,95,182,216,53,110,244,216,53,100,50,217,53,64,112,217,53,2,174,217,53,171,235,217,53,59,41,218,53,177,102,218,53,13,164,218,53,79,225,218,53,120,30,219,53,136,91,219,53,
125,152,219,53,89,213,219,53,27,18,220,53,195,78,220,53,82,139,220,53,198,199,220,53,33,4,221,53,98,64,221,53,137,124,221,53,150,184,221,53,138,244,221,53,99,48,222,53,34,108,222,53,200,167,222,53,83,227,222,53,197,30,223,53,28,90,223,53,89,149,223,53,124,208,223,53,133,11,224,53,116,70,224,53,73,129,224,53,4,188,224,53,164,246,224,53,42,49,225,53,150,107,225,53,232,165,225,53,31,224,225,53,60,26,226,53,63,84,226,53,40,142,226,53,246,199,226,53,170,1,227,53,67,59,227,53,194,116,227,53,38,174,227,
53,113,231,227,53,160,32,228,53,181,89,228,53,176,146,228,53,144,203,228,53,85,4,229,53,0,61,229,53,144,117,229,53,6,174,229,53,97,230,229,53,161,30,230,53,199,86,230,53,210,142,230,53,194,198,230,53,152,254,230,53,83,54,231,53,243,109,231,53,120,165,231,53,226,220,231,53,50,20,232,53,103,75,232,53,129,130,232,53,128,185,232,53,100,240,232,53,45,39,233,53,219,93,233,53,110,148,233,53,230,202,233,53,68,1,234,53,134,55,234,53,173,109,234,53,185,163,234,53,170,217,234,53,128,15,235,53,59,69,235,53,219,
122,235,53,95,176,235,53,201,229,235,53,23,27,236,53,74,80,236,53,98,133,236,53,94,186,236,53,64,239,236,53,6,36,237,53,176,88,237,53,64,141,237,53,180,193,237,53,12,246,237,53,74,42,238,53,108,94,238,53,114,146,238,53,93,198,238,53,45,250,238,53,225,45,239,53,122,97,239,53,247,148,239,53,89,200,239,53,159,251,239,53,202,46,240,53,217,97,240,53,205,148,240,53,165,199,240,53,97,250,240,53,2,45,241,53,135,95,241,53,240,145,241,53,62,196,241,53,112,246,241,53,134,40,242,53,129,90,242,53,95,140,242,53,
34,190,242,53,202,239,242,53,85,33,243,53,197,82,243,53,25,132,243,53,81,181,243,53,109,230,243,53,109,23,244,53,81,72,244,53,26,121,244,53,198,169,244,53,87,218,244,53,203,10,245,53,36,59,245,53,96,107,245,53,129,155,245,53,133,203,245,53,110,251,245,53,58,43,246,53,235,90,246,53,127,138,246,53,247,185,246,53,83,233,246,53,147,24,247,53,183,71,247,53,190,118,247,53,170,165,247,53,121,212,247,53,44,3,248,53,194,49,248,53,61,96,248,53,155,142,248,53,221,188,248,53,3,235,248,53,12,25,249,53,249,70,
249,53,202,116,249,53,126,162,249,53,22,208,249,53,146,253,249,53,241,42,250,53,52,88,250,53,90,133,250,53,100,178,250,53,81,223,250,53,34,12,251,53,215,56,251,53,111,101,251,53,234,145,251,53,73,190,251,53,139,234,251,53,177,22,252,53,187,66,252,53,167,110,252,53,119,154,252,53,43,198,252,53,194,241,252,53,60,29,253,53,153,72,253,53,218,115,253,53,254,158,253,53,6,202,253,53,240,244,253,53,191,31,254,53,112,74,254,53,4,117,254,53,124,159,254,53,215,201,254,53,21,244,254,53,55,30,255,53,59,72,255,
53,35,114,255,53,238,155,255,53,156,197,255,53,45,239,255,53,81,12,0,54,252,32,0,54,154,53,0,54,40,74,0,54,169,94,0,54,26,115,0,54,126,135,0,54,211,155,0,54,25,176,0,54,81,196,0,54,122,216,0,54,149,236,0,54,161,0,1,54,159,20,1,54,142,40,1,54,111,60,1,54,65,80,1,54,5,100,1,54,186,119,1,54,96,139,1,54,248,158,1,54,130,178,1,54,252,197,1,54,104,217,1,54,198,236,1,54,21,0,2,54,85,19,2,54,135,38,2,54,170,57,2,54,191,76,2,54,197,95,2,54,188,114,2,54,165,133,2,54,126,152,2,54,74,171,2,54,6,190,2,54,180,
208,2,54,84,227,2,54,228,245,2,54,102,8,3,54,218,26,3,54,62,45,3,54,148,63,3,54,219,81,3,54,20,100,3,54,62,118,3,54,89,136,3,54,101,154,3,54,98,172,3,54,81,190,3,54,49,208,3,54,3,226,3,54,197,243,3,54,121,5,4,54,30,23,4,54,181,40,4,54,60,58,4,54,181,75,4,54,31,93,4,54,122,110,4,54,199,127,4,54,4,145,4,54,51,162,4,54,83,179,4,54,100,196,4,54,103,213,4,54,90,230,4,54,63,247,4,54,21,8,5,54,220,24,5,54,148,41,5,54,61,58,5,54,216,74,5,54,100,91,5,54,224,107,5,54,78,124,5,54,173,140,5,54,254,156,5,54,63,
173,5,54,113,189,5,54,149,205,5,54,169,221,5,54,175,237,5,54,166,253,5,54,142,13,6,54,103,29,6,54,49,45,6,54,236,60,6,54,153,76,6,54,54,92,6,54,196,107,6,54,68,123,6,54,180,138,6,54,22,154,6,54,104,169,6,54,172,184,6,54,225,199,6,54,6,215,6,54,29,230,6,54,37,245,6,54,30,4,7,54,8,19,7,54,226,33,7,54,174,48,7,54,107,63,7,54,25,78,7,54,184,92,7,54,72,107,7,54,201,121,7,54,59,136,7,54,157,150,7,54,241,164,7,54,54,179,7,54,108,193,7,54,146,207,7,54,170,221,7,54,179,235,7,54,172,249,7,54,151,7,8,54,115,
21,8,54,63,35,8,54,252,48,8,54,171,62,8,54,74,76,8,54,218,89,8,54,91,103,8,54,206,116,8,54,49,130,8,54,133,143,8,54,201,156,8,54,255,169,8,54,38,183,8,54,61,196,8,54,70,209,8,54,63,222,8,54,41,235,8,54,5,248,8,54,209,4,9,54,142,17,9,54,59,30,9,54,218,42,9,54,106,55,9,54,234,67,9,54,92,80,9,54,190,92,9,54,17,105,9,54,85,117,9,54,138,129,9,54,175,141,9,54,198,153,9,54,205,165,9,54,197,177,9,54,174,189,9,54,136,201,9,54,83,213,9,54,15,225,9,54,187,236,9,54,88,248,9,54,230,3,10,54,101,15,10,54,213,26,
10,54,53,38,10,54,135,49,10,54,201,60,10,54,252,71,10,54,32,83,10,54,52,94,10,54,58,105,10,54,48,116,10,54,23,127,10,54,239,137,10,54,184,148,10,54,113,159,10,54,27,170,10,54,182,180,10,54,66,191,10,54,191,201,10,54,44,212,10,54,138,222,10,54,217,232,10,54,25,243,10,54,73,253,10,54,106,7,11,54,125,17,11,54,127,27,11,54,115,37,11,54,87,47,11,54,44,57,11,54,242,66,11,54,169,76,11,54,80,86,11,54,232,95,11,54,113,105,11,54,235,114,11,54,85,124,11,54,176,133,11,54,252,142,11,54,57,152,11,54,102,161,11,
54,133,170,11,54,147,179,11,54,147,188,11,54,131,197,11,54,100,206,11,54,54,215,11,54,249,223,11,54,172,232,11,54,80,241,11,54,229,249,11,54,106,2,12,54,225,10,12,54,72,19,12,54,159,27,12,54,232,35,12,54,33,44,12,54,75,52,12,54,101,60,12,54,112,68,12,54,108,76,12,54,89,84,12,54,55,92,12,54,5,100,12,54,195,107,12,54,115,115,12,54,19,123,12,54,164,130,12,54,38,138,12,54,152,145,12,54,252,152,12,54,79,160,12,54,148,167,12,54,201,174,12,54,239,181,12,54,6,189,12,54,13,196,12,54,5,203,12,54,238,209,12,
54,199,216,12,54,145,223,12,54,76,230,12,54,248,236,12,54,148,243,12,54,33,250,12,54,159,0,13,54,13,7,13,54,108,13,13,54,188,19,13,54,252,25,13,54,45,32,13,54,79,38,13,54,98,44,13,54,101,50,13,54,89,56,13,54,61,62,13,54,19,68,13,54,217,73,13,54,143,79,13,54,55,85,13,54,207,90,13,54,88,96,13,54,209,101,13,54,59,107,13,54,150,112,13,54,225,117,13,54,30,123,13,54,75,128,13,54,104,133,13,54,119,138,13,54,118,143,13,54,101,148,13,54,70,153,13,54,23,158,13,54,217,162,13,54,139,167,13,54,46,172,13,54,194,
176,13,54,71,181,13,54,188,185,13,54,34,190,13,54,120,194,13,54,192,198,13,54,248,202,13,54,33,207,13,54,58,211,13,54,68,215,13,54,63,219,13,54,42,223,13,54,7,227,13,54,212,230,13,54,145,234,13,54,64,238,13,54,223,241,13,54,110,245,13,54,239,248,13,54,96,252,13,54,194,255,13,54,21,3,14,54,88,6,14,54,140,9,14,54,176,12,14,54,198,15,14,54,204,18,14,54,195,21,14,54,170,24,14,54,131,27,14,54,76,30,14,54,5,33,14,54,176,35,14,54,75,38,14,54,215,40,14,54,83,43,14,54,193,45,14,54,31,48,14,54,109,50,14,54,
173,52,14,54,221,54,14,54,254,56,14,54,16,59,14,54,18,61,14,54,5,63,14,54,233,64,14,54,190,66,14,54,131,68,14,54,57,70,14,54,224,71,14,54,119,73,14,54,0,75,14,54,121,76,14,54,227,77,14,54,61,79,14,54,136,80,14,54,196,81,14,54,241,82,14,54,15,84,14,54,29,85,14,54,28,86,14,54,12,87,14,54,237,87,14,54,190,88,14,54,128,89,14,54,51,90,14,54,215,90,14,54,107,91,14,54,240,91,14,54,102,92,14,54,205,92,14,54,37,93,14,54,109,93,14,54,166,93,14,54,208,93,14,54,235,93,14,54,246,93,14,54,242,93,14,54,223,93,14,
54,189,93,14,54,140,93,14,54,75,93,14,54,252,92,14,54,157,92,14,54,47,92,14,54,177,91,14,54,37,91,14,54,137,90,14,54,222,89,14,54,36,89,14,54,91,88,14,54,131,87,14,54,155,86,14,54,164,85,14,54,158,84,14,54,137,83,14,54,101,82,14,54,50,81,14,54,239,79,14,54,158,78,14,54,61,77,14,54,205,75,14,54,78,74,14,54,191,72,14,54,34,71,14,54,118,69,14,54,186,67,14,54,239,65,14,54,21,64,14,54,44,62,14,54,52,60,14,54,45,58,14,54,22,56,14,54,241,53,14,54,188,51,14,54,120,49,14,54,38,47,14,54,196,44,14,54,83,42,
14,54,211,39,14,54,67,37,14,54,165,34,14,54,248,31,14,54,59,29,14,54,112,26,14,54,149,23,14,54,172,20,14,54,179,17,14,54,171,14,14,54,148,11,14,54,110,8,14,54,57,5,14,54,245,1,14,54,162,254,13,54,64,251,13,54,207,247,13,54,79,244,13,54,192,240,13,54,34,237,13,54,116,233,13,54,184,229,13,54,237,225,13,54,19,222,13,54,41,218,13,54,49,214,13,54,42,210,13,54,19,206,13,54,238,201,13,54,186,197,13,54,119,193,13,54,36,189,13,54,195,184,13,54,83,180,13,54,212,175,13,54,70,171,13,54,169,166,13,54,253,161,
13,54,66,157,13,54,120,152,13,54,159,147,13,54,183,142,13,54,192,137,13,54,187,132,13,54,166,127,13,54,131,122,13,54,80,117,13,54,15,112,13,54,190,106,13,54,95,101,13,54,241,95,13,54,116,90,13,54,232,84,13,54,78,79,13,54,164,73,13,54,236,67,13,54,36,62,13,54,78,56,13,54,105,50,13,54,117,44,13,54,114,38,13,54,96,32,13,54,64,26,13,54,17,20,13,54,210,13,13,54,133,7,13,54,42,1,13,54,191,250,12,54,69,244,12,54,189,237,12,54,38,231,12,54,128,224,12,54,203,217,12,54,8,211,12,54,54,204,12,54,85,197,12,54,
101,190,12,54,102,183,12,54,89,176,12,54,61,169,12,54,18,162,12,54,216,154,12,54,144,147,12,54,57,140,12,54,211,132,12,54,94,125,12,54,219,117,12,54,73,110,12,54,168,102,12,54,249,94,12,54,59,87,12,54,110,79,12,54,146,71,12,54,168,63,12,54,175,55,12,54,167,47,12,54,145,39,12,54,108,31,12,54,57,23,12,54,246,14,12,54,166,6,12,54,70,254,11,54,216,245,11,54,91,237,11,54,208,228,11,54,54,220,11,54,141,211,11,54,214,202,11,54,16,194,11,54,59,185,11,54,88,176,11,54,103,167,11,54,102,158,11,54,88,149,11,
54,58,140,11,54,14,131,11,54,212,121,11,54,139,112,11,54,51,103,11,54,205,93,11,54,88,84,11,54,213,74,11,54,67,65,11,54,163,55,11,54,245,45,11,54,55,36,11,54,108,26,11,54,145,16,11,54,169,6,11,54,178,252,10,54,172,242,10,54,152,232,10,54,117,222,10,54,68,212,10,54,5,202,10,54,183,191,10,54,91,181,10,54,240,170,10,54,119,160,10,54,239,149,10,54,89,139,10,54,181,128,10,54,2,118,10,54,65,107,10,54,113,96,10,54,147,85,10,54,167,74,10,54,173,63,10,54,164,52,10,54,140,41,10,54,103,30,10,54,51,19,10,54,
240,7,10,54,160,252,9,54,65,241,9,54,211,229,9,54,88,218,9,54,206,206,9,54,54,195,9,54,143,183,9,54,219,171,9,54,24,160,9,54,70,148,9,54,103,136,9,54,121,124,9,54,125,112,9,54,115,100,9,54,91,88,9,54,52,76,9,54,255,63,9,54,188,51,9,54,107,39,9,54,12,27,9,54,158,14,9,54,34,2,9,54,152,245,8,54,0,233,8,54,90,220,8,54,166,207,8,54,227,194,8,54,19,182,8,54,52,169,8,54,71,156,8,54,76,143,8,54,67,130,8,54,44,117,8,54,7,104,8,54],"i8",4,y.a+1239040);
Q([212,90,8,54,146,77,8,54,67,64,8,54,229,50,8,54,122,37,8,54,0,24,8,54,121,10,8,54,227,252,7,54,63,239,7,54,142,225,7,54,206,211,7,54,1,198,7,54,37,184,7,54,59,170,7,54,68,156,7,54,62,142,7,54,43,128,7,54,10,114,7,54,218,99,7,54,157,85,7,54,82,71,7,54,249,56,7,54,146,42,7,54,29,28,7,54,154,13,7,54,9,255,6,54,107,240,6,54,191,225,6,54,4,211,6,54,60,196,6,54,102,181,6,54,131,166,6,54,145,151,6,54,146,136,6,54,133,121,6,54,106,106,6,54,65,91,6,54,10,76,6,54,198,60,6,54,116,45,6,54,20,30,6,54,167,14,
6,54,43,255,5,54,162,239,5,54,11,224,5,54,103,208,5,54,181,192,5,54,245,176,5,54,39,161,5,54,76,145,5,54,99,129,5,54,109,113,5,54,104,97,5,54,87,81,5,54,55,65,5,54,10,49,5,54,207,32,5,54,135,16,5,54,49,0,5,54,205,239,4,54,92,223,4,54,222,206,4,54,81,190,4,54,183,173,4,54,16,157,4,54,91,140,4,54,153,123,4,54,201,106,4,54,235,89,4,54,0,73,4,54,8,56,4,54,2,39,4,54,239,21,4,54,206,4,4,54,159,243,3,54,100,226,3,54,27,209,3,54,196,191,3,54,96,174,3,54,238,156,3,54,112,139,3,54,227,121,3,54,74,104,3,54,
163,86,3,54,238,68,3,54,45,51,3,54,93,33,3,54,129,15,3,54,151,253,2,54,160,235,2,54,156,217,2,54,138,199,2,54,107,181,2,54,63,163,2,54,6,145,2,54,191,126,2,54,107,108,2,54,10,90,2,54,155,71,2,54,31,53,2,54,151,34,2,54,0,16,2,54,93,253,1,54,173,234,1,54,239,215,1,54,36,197,1,54,76,178,1,54,103,159,1,54,117,140,1,54,118,121,1,54,105,102,1,54,80,83,1,54,41,64,1,54,245,44,1,54,180,25,1,54,102,6,1,54,12,243,0,54,164,223,0,54,47,204,0,54,172,184,0,54,29,165,0,54,129,145,0,54,216,125,0,54,34,106,0,54,95,
86,0,54,143,66,0,54,178,46,0,54,200,26,0,54,210,6,0,54,156,229,255,53,123,189,255,53,64,149,255,53,235,108,255,53,124,68,255,53,244,27,255,53,82,243,254,53,150,202,254,53,192,161,254,53,209,120,254,53,200,79,254,53,166,38,254,53,106,253,253,53,21,212,253,53,165,170,253,53,29,129,253,53,123,87,253,53,191,45,253,53,234,3,253,53,251,217,252,53,243,175,252,53,210,133,252,53,151,91,252,53,67,49,252,53,214,6,252,53,79,220,251,53,175,177,251,53,245,134,251,53,35,92,251,53,55,49,251,53,50,6,251,53,20,219,
250,53,220,175,250,53,140,132,250,53,34,89,250,53,159,45,250,53,3,2,250,53,78,214,249,53,128,170,249,53,153,126,249,53,153,82,249,53,128,38,249,53,79,250,248,53,4,206,248,53,160,161,248,53,35,117,248,53,142,72,248,53,224,27,248,53,24,239,247,53,56,194,247,53,64,149,247,53,46,104,247,53,4,59,247,53,193,13,247,53,102,224,246,53,241,178,246,53,101,133,246,53,191,87,246,53,1,42,246,53,42,252,245,53,59,206,245,53,52,160,245,53,19,114,245,53,219,67,245,53,138,21,245,53,32,231,244,53,158,184,244,53,4,138,
244,53,81,91,244,53,134,44,244,53,163,253,243,53,167,206,243,53,147,159,243,53,103,112,243,53,34,65,243,53,198,17,243,53,81,226,242,53,196,178,242,53,31,131,242,53,98,83,242,53,141,35,242,53,159,243,241,53,154,195,241,53,125,147,241,53,71,99,241,53,250,50,241,53,149,2,241,53,23,210,240,53,130,161,240,53,213,112,240,53,17,64,240,53,52,15,240,53,64,222,239,53,51,173,239,53,16,124,239,53,212,74,239,53,129,25,239,53,22,232,238,53,147,182,238,53,249,132,238,53,71,83,238,53,125,33,238,53,156,239,237,53,
164,189,237,53,147,139,237,53,108,89,237,53,45,39,237,53,214,244,236,53,104,194,236,53,227,143,236,53,71,93,236,53,147,42,236,53,199,247,235,53,229,196,235,53,235,145,235,53,218,94,235,53,178,43,235,53,114,248,234,53,27,197,234,53,174,145,234,53,41,94,234,53,141,42,234,53,218,246,233,53,16,195,233,53,47,143,233,53,54,91,233,53,39,39,233,53,1,243,232,53,196,190,232,53,113,138,232,53,6,86,232,53,133,33,232,53,236,236,231,53,61,184,231,53,119,131,231,53,155,78,231,53,167,25,231,53,157,228,230,53,125,
175,230,53,69,122,230,53,248,68,230,53,147,15,230,53,24,218,229,53,134,164,229,53,222,110,229,53,32,57,229,53,75,3,229,53,95,205,228,53,93,151,228,53,69,97,228,53,23,43,228,53,210,244,227,53,119,190,227,53,5,136,227,53,125,81,227,53,223,26,227,53,43,228,226,53,97,173,226,53,128,118,226,53,138,63,226,53,125,8,226,53,90,209,225,53,34,154,225,53,211,98,225,53,110,43,225,53,243,243,224,53,99,188,224,53,188,132,224,53,0,77,224,53,45,21,224,53,69,221,223,53,71,165,223,53,52,109,223,53,10,53,223,53,203,
252,222,53,118,196,222,53,12,140,222,53,139,83,222,53,246,26,222,53,74,226,221,53,137,169,221,53,179,112,221,53,199,55,221,53,197,254,220,53,174,197,220,53,130,140,220,53,64,83,220,53,233,25,220,53,125,224,219,53,251,166,219,53,100,109,219,53,184,51,219,53,246,249,218,53,31,192,218,53,51,134,218,53,50,76,218,53,28,18,218,53,241,215,217,53,176,157,217,53,91,99,217,53,240,40,217,53,113,238,216,53,220,179,216,53,51,121,216,53,117,62,216,53,162,3,216,53,186,200,215,53,189,141,215,53,171,82,215,53,133,
23,215,53,74,220,214,53,250,160,214,53,149,101,214,53,28,42,214,53,142,238,213,53,236,178,213,53,53,119,213,53,105,59,213,53,137,255,212,53,149,195,212,53,140,135,212,53,110,75,212,53,60,15,212,53,246,210,211,53,156,150,211,53,45,90,211,53,170,29,211,53,18,225,210,53,102,164,210,53,167,103,210,53,210,42,210,53,234,237,209,53,238,176,209,53,222,115,209,53,185,54,209,53,128,249,208,53,52,188,208,53,211,126,208,53,95,65,208,53,215,3,208,53,58,198,207,53,138,136,207,53,198,74,207,53,238,12,207,53,3,207,
206,53,3,145,206,53,240,82,206,53,202,20,206,53,143,214,205,53,65,152,205,53,223,89,205,53,106,27,205,53,225,220,204,53,69,158,204,53,149,95,204,53,210,32,204,53,251,225,203,53,17,163,203,53,20,100,203,53,3,37,203,53,223,229,202,53,167,166,202,53,93,103,202,53,255,39,202,53,142,232,201,53,10,169,201,53,114,105,201,53,200,41,201,53,10,234,200,53,57,170,200,53,86,106,200,53,95,42,200,53,85,234,199,53,57,170,199,53,9,106,199,53,199,41,199,53,114,233,198,53,10,169,198,53,143,104,198,53,2,40,198,53,97,
231,197,53,174,166,197,53,233,101,197,53,16,37,197,53,38,228,196,53,40,163,196,53,24,98,196,53,246,32,196,53,193,223,195,53,121,158,195,53,31,93,195,53,179,27,195,53,52,218,194,53,163,152,194,53,0,87,194,53,74,21,194,53,131,211,193,53,169,145,193,53,188,79,193,53,190,13,193,53,173,203,192,53,139,137,192,53,86,71,192,53,15,5,192,53,183,194,191,53,76,128,191,53,207,61,191,53,65,251,190,53,160,184,190,53,238,117,190,53,42,51,190,53,84,240,189,53,109,173,189,53,115,106,189,53,104,39,189,53,75,228,188,
53,29,161,188,53,221,93,188,53,139,26,188,53,40,215,187,53,180,147,187,53,45,80,187,53,150,12,187,53,237,200,186,53,50,133,186,53,103,65,186,53,138,253,185,53,155,185,185,53,155,117,185,53,139,49,185,53,104,237,184,53,53,169,184,53,241,100,184,53,155,32,184,53,53,220,183,53,189,151,183,53,52,83,183,53,154,14,183,53,240,201,182,53,52,133,182,53,104,64,182,53,138,251,181,53,156,182,181,53,157,113,181,53,141,44,181,53,109,231,180,53,60,162,180,53,250,92,180,53,167,23,180,53,68,210,179,53,208,140,179,
53,76,71,179,53,183,1,179,53,18,188,178,53,92,118,178,53,150,48,178,53,192,234,177,53,217,164,177,53,225,94,177,53,218,24,177,53,194,210,176,53,154,140,176,53,98,70,176,53,25,0,176,53,193,185,175,53,88,115,175,53,223,44,175,53,86,230,174,53,190,159,174,53,21,89,174,53,92,18,174,53,147,203,173,53,187,132,173,53,210,61,173,53,218,246,172,53,210,175,172,53,186,104,172,53,147,33,172,53,91,218,171,53,21,147,171,53,190,75,171,53,88,4,171,53,226,188,170,53,93,117,170,53,200,45,170,53,36,230,169,53,113,158,
169,53,174,86,169,53,219,14,169,53,250,198,168,53,8,127,168,53,8,55,168,53,249,238,167,53,218,166,167,53,172,94,167,53,111,22,167,53,35,206,166,53,199,133,166,53,93,61,166,53,228,244,165,53,91,172,165,53,196,99,165,53,30,27,165,53,105,210,164,53,165,137,164,53,210,64,164,53,240,247,163,53,0,175,163,53,1,102,163,53,243,28,163,53,215,211,162,53,172,138,162,53,114,65,162,53,42,248,161,53,211,174,161,53,110,101,161,53,250,27,161,53,120,210,160,53,232,136,160,53,73,63,160,53,156,245,159,53,224,171,159,
53,23,98,159,53,63,24,159,53,88,206,158,53,100,132,158,53,98,58,158,53,81,240,157,53,50,166,157,53,6,92,157,53,203,17,157,53,130,199,156,53,44,125,156,53,199,50,156,53,85,232,155,53,213,157,155,53,71,83,155,53,171,8,155,53,2,190,154,53,74,115,154,53,134,40,154,53,179,221,153,53,211,146,153,53,229,71,153,53,234,252,152,53,225,177,152,53,203,102,152,53,168,27,152,53,119,208,151,53,56,133,151,53,236,57,151,53,147,238,150,53,45,163,150,53,186,87,150,53,57,12,150,53,171,192,149,53,16,117,149,53,104,41,
149,53,179,221,148,53,240,145,148,53,33,70,148,53,69,250,147,53,92,174,147,53,102,98,147,53,99,22,147,53,83,202,146,53,54,126,146,53,13,50,146,53,215,229,145,53,148,153,145,53,69,77,145,53,233,0,145,53,128,180,144,53,11,104,144,53,137,27,144,53,251,206,143,53,96,130,143,53,185,53,143,53,6,233,142,53,70,156,142,53,122,79,142,53,161,2,142,53,189,181,141,53,204,104,141,53,206,27,141,53,197,206,140,53,176,129,140,53,142,52,140,53,96,231,139,53,39,154,139,53,225,76,139,53,144,255,138,53,50,178,138,53,
201,100,138,53,84,23,138,53,211,201,137,53,70,124,137,53,173,46,137,53,9,225,136,53,89,147,136,53,158,69,136,53,214,247,135,53,4,170,135,53,37,92,135,53,59,14,135,53,70,192,134,53,69,114,134,53,57,36,134,53,34,214,133,53,255,135,133,53,209,57,133,53,151,235,132,53,82,157,132,53,3,79,132,53,168,0,132,53,65,178,131,53,208,99,131,53,84,21,131,53,204,198,130,53,58,120,130,53,157,41,130,53,245,218,129,53,65,140,129,53,131,61,129,53,187,238,128,53,231,159,128,53,9,81,128,53,32,2,128,53,88,102,127,53,91,
200,126,53,73,42,126,53,34,140,125,53,229,237,124,53,148,79,124,53,46,177,123,53,179,18,123,53,35,116,122,53,126,213,121,53,197,54,121,53,247,151,120,53,20,249,119,53,29,90,119,53,18,187,118,53,242,27,118,53,190,124,117,53,118,221,116,53,26,62,116,53,169,158,115,53,37,255,114,53,141,95,114,53,225,191,113,53,33,32,113,53,78,128,112,53,102,224,111,53,108,64,111,53,93,160,110,53,60,0,110,53,7,96,109,53,191,191,108,53,99,31,108,53,244,126,107,53,115,222,106,53,222,61,106,53,54,157,105,53,124,252,104,
53,175,91,104,53,207,186,103,53,220,25,103,53,215,120,102,53,191,215,101,53,149,54,101,53,88,149,100,53,9,244,99,53,168,82,99,53,53,177,98,53,175,15,98,53,24,110,97,53,110,204,96,53,179,42,96,53,230,136,95,53,7,231,94,53,23,69,94,53,21,163,93,53,1,1,93,53,220,94,92,53,165,188,91,53,94,26,91,53,5,120,90,53,154,213,89,53,31,51,89,53,147,144,88,53,245,237,87,53,71,75,87,53,136,168,86,53,184,5,86,53,215,98,85,53,230,191,84,53,229,28,84,53,210,121,83,53,176,214,82,53,125,51,82,53,58,144,81,53,230,236,
80,53,131,73,80,53,15,166,79,53,140,2,79,53,248,94,78,53,85,187,77,53,162,23,77,53,223,115,76,53,13,208,75,53,43,44,75,53,57,136,74,53,56,228,73,53,40,64,73,53,9,156,72,53,218,247,71,53,156,83,71,53,79,175,70,53,243,10,70,53,137,102,69,53,15,194,68,53,135,29,68,53,239,120,67,53,74,212,66,53,149,47,66,53,210,138,65,53,1,230,64,53,34,65,64,53,52,156,63,53,56,247,62,53,45,82,62,53,21,173,61,53,239,7,61,53,186,98,60,53,120,189,59,53,40,24,59,53,203,114,58,53,96,205,57,53,231,39,57,53,96,130,56,53,205,
220,55,53,44,55,55,53,125,145,54,53,194,235,53,53,249,69,53,53,35,160,52,53,64,250,51,53,80,84,51,53,84,174,50,53,74,8,50,53,52,98,49,53,17,188,48,53,226,21,48,53,166,111,47,53,94,201,46,53,9,35,46,53,168,124,45,53,59,214,44,53,194,47,44,53,60,137,43,53,171,226,42,53,14,60,42,53,100,149,41,53,175,238,40,53,239,71,40,53,34,161,39,53,74,250,38,53,103,83,38,53,120,172,37,53,126,5,37,53,120,94,36,53,104,183,35,53,76,16,35,53,37,105,34,53,243,193,33,53,182,26,33,53,110,115,32,53,28,204,31,53,190,36,31,
53,86,125,30,53,228,213,29,53,103,46,29,53,223,134,28,53,78,223,27,53,177,55,27,53,11,144,26,53,91,232,25,53,160,64,25,53,220,152,24,53,13,241,23,53,53,73,23,53,83,161,22,53,103,249,21,53,113,81,21,53,114,169,20,53,106,1,20,53,88,89,19,53,60,177,18,53,24,9,18,53,234,96,17,53,179,184,16,53,115,16,16,53,41,104,15,53,215,191,14,53,124,23,14,53,25,111,13,53,172,198,12,53,55,30,12,53,186,117,11,53,52,205,10,53,165,36,10,53,14,124,9,53,111,211,8,53,200,42,8,53,24,130,7,53,96,217,6,53,161,48,6,53,217,135,
5,53,10,223,4,53,51,54,4,53,84,141,3,53,109,228,2,53,127,59,2,53,138,146,1,53,141,233,0,53,136,64,0,53,249,46,255,52,211,220,253,52,159,138,252,52,93,56,251,52,13,230,249,52,175,147,248,52,67,65,247,52,202,238,245,52,67,156,244,52,175,73,243,52,14,247,241,52,96,164,240,52,165,81,239,52,222,254,237,52,9,172,236,52,41,89,235,52,60,6,234,52,67,179,232,52,62,96,231,52,45,13,230,52,17,186,228,52,233,102,227,52,181,19,226,52,118,192,224,52,44,109,223,52,216,25,222,52,120,198,220,52,13,115,219,52,152,31,
218,52,25,204,216,52,143,120,215,52,252,36,214,52,94,209,212,52,182,125,211,52,5,42,210,52,74,214,208,52,134,130,207,52,185,46,206,52,226,218,204,52,3,135,203,52,26,51,202,52,41,223,200,52,48,139,199,52,46,55,198,52,35,227,196,52,17,143,195,52,246,58,194,52,212,230,192,52,170,146,191,52,121,62,190,52,64,234,188,52,0,150,187,52,185,65,186,52,107,237,184,52,22,153,183,52,186,68,182,52,88,240,180,52,239,155,179,52,128,71,178,52,11,243,176,52,145,158,175,52,16,74,174,52,137,245,172,52,253,160,171,52,
108,76,170,52,213,247,168,52,58,163,167,52,153,78,166,52,243,249,164,52,73,165,163,52,154,80,162,52,231,251,160,52,48,167,159,52,116,82,158,52,181,253,156,52,242,168,155,52,43,84,154,52,96,255,152,52,146,170,151,52,193,85,150,52,237,0,149,52,22,172,147,52,60,87,146,52,95,2,145,52,128,173,143,52,158,88,142,52,186,3,141,52,212,174,139,52,236,89,138,52,2,5,137,52,23,176,135,52,42,91,134,52,59,6,133,52,76,177,131,52,91,92,130,52,105,7,129,52,237,100,127,52,6,187,124,52,31,17,122,52,54,103,119,52,78,189,
116,52,100,19,114,52,123,105,111,52,147,191,108,52,171,21,106,52,195,107,103,52,221,193,100,52,249,23,98,52,22,110,95,52,53,196,92,52,87,26,90,52,123,112,87,52,162,198,84,52,205,28,82,52,251,114,79,52,44,201,76,52,98,31,74,52,156,117,71,52,218,203,68,52,30,34,66,52,103,120,63,52,181,206,60,52,8,37,58,52,98,123,55,52,195,209,52,52,41,40,50,52,151,126,47,52,12,213,44,52,136,43,42,52,12,130,39,52,152,216,36,52,45,47,34,52,201,133,31,52,111,220,28,52,30,51,26,52,215,137,23,52,153,224,20,52,101,55,18,
52,59,142,15,52,28,229,12,52,8,60,10,52,255,146,7,52,1,234,4,52,15,65,2,52,82,48,255,51,158,222,249,51,4,141,244,51,131,59,239,51,29,234,233,51,209,152,228,51,160,71,223,51,140,246,217,51,148,165,212,51,185,84,207,51,251,3,202,51,92,179,196,51,220,98,191,51,122,18,186,51,57,194,180,51,24,114,175,51,24,34,170,51,58,210,164,51,126,130,159,51,228,50,154,51,110,227,148,51,27,148,143,51,237,68,138,51,227,245,132,51,255,77,127,51,132,176,116,51,85,19,106,51,117,118,95,51,229,217,84,51,165,61,74,51,183,
161,63,51,27,6,53,51,212,106,42,51,226,207,31,51,70,53,21,51,1,155,10,51,20,1,0,51,3,207,234,50,147,156,213,50,218,106,192,50,219,57,171,50,153,9,150,50,20,218,128,50,160,86,87,50,158,250,44,50,38,160,2,50,120,142,176,49,150,191,55,49,144,137,102,47,244,231,26,177,0,25,162,177,188,186,246,177,147,172,37,178,26,250,79,178,239,69,122,178,6,72,146,178,56,108,167,178,138,143,188,178,249,177,209,178,133,211,230,178,42,244,251,178,243,137,8,179,92,25,19,179,78,168,29,179,200,54,40,179,202,196,50,179,81,
82,61,179,94,223,71,179,239,107,82,179,2,248,92,179,151,131,103,179,172,14,114,179,65,153,124,179,170,145,131,179,115,214,136,179,249,26,142,179,61,95,147,179,61,163,152,179,251,230,157,179,116,42,163,179,168,109,168,179,151,176,173,179,64,243,178,179,163,53,184,179,191,119,189,179,147,185,194,179,32,251,199,179,100,60,205,179,95,125,210,179,16,190,215,179,119,254,220,179,147,62,226,179,99,126,231,179,232,189,236,179,33,253,241,179,12,60,247,179,170,122,252,179,125,220,0,180,126,123,3,180,87,26,6,
180,8,185,8,180,145,87,11,180,242,245,13,180,42,148,16,180,57,50,19,180,30,208,21,180,219,109,24,180,109,11,27,180,214,168,29,180,20,70,32,180,39,227,34,180,16,128,37,180,205,28,40,180,96,185,42,180,198,85,45,180,0,242,47,180,15,142,50,180,240,41,53,180,165,197,55,180,45,97,58,180,136,252,60,180,181,151,63,180,180,50,66,180,133,205,68,180,39,104,71,180,155,2,74,180,224,156,76,180,246,54,79,180,220,208,81,180,146,106,84,180,25,4,87,180,111,157,89,180,148,54,92,180,137,207,94,180,77,104,97,180,223,
0,100,180,63,153,102,180,110,49,105,180,106,201,107,180,52,97,110,180,203,248,112,180,47,144,115,180,96,39,118,180,93,190,120,180,39,85,123,180,188,235,125,180,15,65,128,180,37,140,129,180,33,215,130,180,2,34,132,180,200,108,133,180,116,183,134,180,4,2,136,180,122,76,137,180,212,150,138,180,19,225,139,180,54,43,141,180,62,117,142,180,42,191,143,180,250,8,145,180,174,82,146,180,70,156,147,180,193,229,148,180,32,47,150,180,99,120,151,180,136,193,152,180,145,10,154,180,125,83,155,180,76,156,156,180,
253,228,157,180,145,45,159,180,8,118,160,180,96,190,161,180,156,6,163,180,185,78,164,180,184,150,165,180,153,222,166,180,91,38,168,180,0,110,169,180,133,181,170,180,236,252,171,180,52,68,173,180,93,139,174,180,103,210,175,180,82,25,177,180,29,96,178,180,201,166,179,180,85,237,180,180,194,51,182,180,14,122,183,180,59,192,184,180,71,6,186,180,51,76,187,180,255,145,188,180,170,215,189,180,52,29,191,180,158,98,192,180,230,167,193,180,14,237,194,180,20,50,196,180,249,118,197,180,189,187,198,180,95,0,200,
180,223,68,201,180,61,137,202,180,122,205,203,180,148,17,205,180,140,85,206,180,97,153,207,180,20,221,208,180,165,32,210,180,18,100,211,180,93,167,212,180,133,234,213,180,137,45,215,180,106,112,216,180,40,179,217,180,194,245,218,180,57,56,220,180,140,122,221,180,186,188,222,180,197,254,223,180,171,64,225,180,110,130,226,180,11,196,227,180,133,5,229,180,217,70,230,180,8,136,231,180,19,201,232,180,249,9,234,180,185,74,235,180,84,139,236,180,201,203,237,180,25,12,239,180,67,76,240,180,71,140,241,180,
37,204,242,180,221,11,244,180,111,75,245,180,219,138,246,180,31,202,247,180,62,9,249,180,53,72,250,180,6,135,251,180,175,197,252,180,50,4,254,180,141,66,255,180,96,64,0,181,102,223,0,181,89,126,1,181,55,29,2,181,1,188,2,181,184,90,3,181,90,249,3,181,232,151,4,181,98,54,5,181,200,212,5,181,25,115,6,181,86,17,7,181,127,175,7,181,147,77,8,181,146,235,8,181,125,137,9,181,83,39,10,181,20,197,10,181,193,98,11,181,88,0,12,181,219,157,12,181,72,59,13,181,161,216,13,181,228,117,14,181,18,19,15,181,43,176,
15,181,46,77,16,181,28,234,16,181,245,134,17,181,184,35,18,181,101,192,18,181,253,92,19,181,127,249,19,181,236,149,20,181,66,50,21,181,131,206,21,181,173,106,22,181,194,6,23,181,193,162,23,181,169,62,24,181,123,218,24,181,55,118,25,181,221,17,26,181,108,173,26,181,228,72,27,181,71,228,27,181,146,127,28,181,199,26,29,181,229,181,29,181,237,80,30,181,222,235,30,181,183,134,31,181,122,33,32,181,38,188,32,181,187,86,33,181,56,241,33,181,159,139,34,181,238,37,35,181,38,192,35,181,71,90,36,181,80,244,36,
181,65,142,37,181,27,40,38,181,222,193,38,181,136,91,39,181,27,245,39,181,150,142,40,181,250,39,41,181,69,193,41,181,121,90,42,181,148,243,42,181,151,140,43,181,130,37,44,181,85,190,44,181,16,87,45,181,178,239,45,181,60,136,46,181,173,32,47,181,6,185,47,181,70,81,48,181,110,233,48,181,125,129,49,181,115,25,50,181,81,177,50,181,21,73,51,181,192,224,51,181,83,120,52,181,204,15,53,181,45,167,53,181,116,62,54,181,162,213,54,181,182,108,55,181,178,3,56,181,148,154,56,181,92,49,57,181,11,200,57,181,160,
94,58,181,28,245,58,181,125,139,59,181,198,33,60,181,244,183,60,181,8,78,61,181,3,228,61,181,227,121,62,181,169,15,63,181,85,165,63,181,232,58,64,181,95,208,64,181,189,101,65,181,0,251,65,181,41,144,66,181,55,37,67,181,43,186,67,181,4,79,68,181,194,227,68,181,102,120,69,181,239,12,70,181,93,161,70,181,176,53,71,181,233,201,71,181,6,94,72,181,8,242,72,181,239,133,73,181,187,25,74,181,108,173,74,181,1,65,75,181,124,212,75,181,218,103,76,181,30,251,76,181,69,142,77,181,81,33,78,181,66,180,78,181,23,
71,79,181,208,217,79,181,109,108,80,181,239,254,80,181,84,145,81,181,158,35,82,181,203,181,82,181,220,71,83,181,210,217,83,181,171,107,84,181,104,253,84,181,8,143,85,181,140,32,86,181,244,177,86,181,63,67,87,181,110,212,87,181,128,101,88,181,117,246,88,181,78,135,89,181,10,24,90,181,169,168,90,181,43,57,91,181,144,201,91,181,217,89,92,181,4,234,92,181,18,122,93,181,3,10,94,181,215,153,94,181,141,41,95,181,38,185,95,181,162,72,96,181,0,216,96,181,65,103,97,181,100,246,97,181,106,133,98,181,82,20,99,
181,29,163,99,181,201,49,100,181,88,192,100,181,201,78,101,181,28,221,101,181,80,107,102,181,103,249,102,181,96,135,103,181,59,21,104,181,247,162,104,181,149,48,105,181,21,190,105,181,118,75,106,181,185,216,106,181,222,101,107,181,228,242,107,181,203,127,108,181,148,12,109,181,62,153,109,181,202,37,110,181,54,178,110,181,132,62,111,181,178,202,111,181,194,86,112,181,179,226,112,181,133,110,113,181,55,250,113,181,202,133,114,181,62,17,115,181,147,156,115,181,201,39,116,181,223,178,116,181,213,61,117,
181,172,200,117,181,100,83,118,181,252,221,118,181,116,104,119,181,205,242,119,181,6,125,120,181,30,7,121,181,24,145,121,181,241,26,122,181,170,164,122,181,67,46,123,181,188,183,123,181,21,65,124,181,78,202,124,181,102,83,125,181,94,220,125,181,54,101,126,181,237,237,126,181,132,118,127,181,251,254,127,181,168,67,128,181,195,135,128,181,205,203,128,181,199,15,129,181,177,83,129,181,138,151,129,181,82,219,129,181,11,31,130,181,178,98,130,181,74,166,130,181,208,233,130,181,71,45,131,181,172,112,131,
181,1,180,131,181,69,247,131,181,121,58,132,181,156,125,132,181,174,192,132,181,175,3,133,181,160,70,133,181,128,137,133,181,79,204,133,181,13,15,134,181,187,81,134,181,87,148,134,181,227,214,134,181,93,25,135,181,199,91,135,181,32,158,135,181,103,224,135,181,158,34,136,181,195,100,136,181,216,166,136,181,219,232,136,181,205,42,137,181,174,108,137,181,126,174,137,181,60,240,137,181,233,49,138,181,133,115,138,181,16,181,138,181,137,246,138,181,241,55,139,181,72,121,139,181,141,186,139,181,193,251,
139,181,227,60,140,181,244,125,140,181,244,190,140,181,226,255,140,181,190,64,141,181,137,129,141,181,66,194,141,181,234,2,142,181,128,67,142,181,4,132,142,181,118,196,142,181,215,4,143,181,38,69,143,181,100,133,143,181,143,197,143,181,169,5,144,181,177,69,144,181,167,133,144,181,139,197,144,181,93,5,145,181,30,69,145,181,204,132,145,181,105,196,145,181,243,3,146,181,107,67,146,181,210,130,146,181,38,194,146,181,104,1,147,181,152,64,147,181,182,127,147,181,194,190,147,181,187,253,147,181,162,60,148,
181,119,123,148,181,58,186,148,181,235,248,148,181,137,55,149,181,21,118,149,181,142,180,149,181,245,242,149,181,74,49,150,181,140,111,150,181,188,173,150,181,218,235,150,181,228,41,151,181,221,103,151,181,194,165,151,181,150,227,151,181,86,33,152,181,4,95,152,181,160,156,152,181,40,218,152,181,159,23,153,181,2,85,153,181,82,146,153,181,144,207,153,181,187,12,154,181,212,73,154,181,217,134,154,181,204,195,154,181,172,0,155,181,120,61,155,181,50,122,155,181,217,182,155,181,110,243,155,181,239,47,156,
181,93,108,156,181,184,168,156,181,0,229,156,181,53,33,157,181,87,93,157,181,102,153,157,181,97,213,157,181,74,17,158,181,31,77,158,181,225,136,158,181,144,196,158,181,44,0,159,181,180,59,159,181,41,119,159,181,139,178,159,181,217,237,159,181,20,41,160,181,60,100,160,181,80,159,160,181,81,218,160,181,63,21,161,181,25,80,161,181,223,138,161,181,146,197,161,181,50,0,162,181,190,58,162,181,54,117,162,181,155,175,162,181,236,233,162,181,42,36,163,181,84,94,163,181,106,152,163,181,108,210,163,181,91,12,
164,181,54,70,164,181,253,127,164,181,177,185,164,181,80,243,164,181,220,44,165,181,84,102,165,181,184,159,165,181,9,217,165,181,69,18,166,181,109,75,166,181,130,132,166,181,130,189,166,181,111,246,166,181,71,47,167,181,12,104,167,181,188,160,167,181,89,217,167,181,225,17,168,181,85,74,168,181,181,130,168,181,1,187,168,181,56,243,168,181,92,43,169,181,107,99,169,181,102,155,169,181,76,211,169,181,31,11,170,181,221,66,170,181,135,122,170,181,28,178,170,181,157,233,170,181,10,33,171,181,98,88,171,181,
166,143,171,181,214,198,171,181,241,253,171,181,247,52,172,181,233,107,172,181,199,162,172,181,143,217,172,181,68,16,173,181,228,70,173,181,111,125,173,181,229,179,173,181,71,234,173,181,148,32,174,181,205,86,174,181,241,140,174,181,0,195,174,181,251,248,174,181,224,46,175,181,177,100,175,181,109,154,175,181,20,208,175,181,167,5,176,181,36,59,176,181,141,112,176,181,225,165,176,181,32,219,176,181,74,16,177,181,95,69,177,181,95,122,177,181,74,175,177,181,32,228,177,181,225,24,178,181,141,77,178,181,
36,130,178,181,166,182,178,181,18,235,178,181,106,31,179,181,172,83,179,181,218,135,179,181,242,187,179,181,245,239,179,181,227,35,180,181,187,87,180,181,126,139,180,181,44,191,180,181,197,242,180,181,72,38,181,181,182,89,181,181,15,141,181,181,82,192,181,181,128,243,181,181,153,38,182,181,156,89,182,181,138,140,182,181,98,191,182,181,37,242,182,181,210,36,183,181,106,87,183,181,236,137,183,181,89,188,183,181,176,238,183,181,242,32,184,181,30,83,184,181,52,133,184,181,53,183,184,181,32,233,184,181,
246,26,185,181,181,76,185,181,96,126,185,181,244,175,185,181,115,225,185,181,219,18,186,181,47,68,186,181,108,117,186,181,147,166,186,181,165,215,186,181,161,8,187,181,135,57,187,181,87,106,187,181,17,155,187,181,181,203,187,181,68,252,187,181,188,44,188,181,31,93,188,181,107,141,188,181,162,189,188,181,194,237,188,181,205,29,189,181,193,77,189,181,160,125,189,181,104,173,189,181,26,221,189,181,182,12,190,181,60,60,190,181,172,107,190,181,6,155,190,181,73,202,190,181,119,249,190,181,142,40,191,181,
143,87,191,181,121,134,191,181,78,181,191,181,12,228,191,181,179,18,192,181,69,65,192,181,192,111,192,181,37,158,192,181,115,204,192,181,172,250,192,181,205,40,193,181,217,86,193,181,206,132,193,181,172,178,193,181,116,224,193,181,38,14,194,181,193,59,194,181,69,105,194,181,179,150,194,181,11,196,194,181,76,241,194,181,118,30,195,181,138,75,195,181,135,120,195,181,110,165,195,181,62,210,195,181,248,254,195,181,154,43,196,181,38,88,196,181,156,132,196,181,250,176,196,181,66,221,196,181,116,9,197,181,
142,53,197,181,146,97,197,181,127,141,197,181,85,185,197,181,21,229,197,181,189,16,198,181,79,60,198,181,202,103,198,181,46,147,198,181,123,190,198,181,177,233,198,181,209,20,199,181,217,63,199,181,203,106,199,181,165,149,199,181,105,192,199,181,22,235,199,181,171,21,200,181,42,64,200,181,145,106,200,181,226,148,200,181,28,191,200,181,62,233,200,181,73,19,201,181,62,61,201,181,27,103,201,181,225,144,201,181,144,186,201,181,40,228,201,181,168,13,202,181,18,55,202,181,100,96,202,181,159,137,202,181,
195,178,202,181,207,219,202,181,197,4,203,181,163,45,203,181,106,86,203,181,25,127,203,181,177,167,203,181,50,208,203,181,156,248,203,181,238,32,204,181,41,73,204,181,77,113,204,181,89,153,204,181,78,193,204,181,43,233,204,181,241,16,205,181,159,56,205,181,54,96,205,181,182,135,205,181,30,175,205,181,111,214,205,181,168,253,205,181,202,36,206,181,212,75,206,181,198,114,206,181,161,153,206,181,101,192,206,181,17,231,206,181,165,13,207,181,34,52,207,181,135,90,207,181,213,128,207,181,10,167,207,181,
41,205,207,181,47,243,207,181,30,25,208,181,245,62,208,181,181,100,208,181,92,138,208,181,237,175,208,181,101,213,208,181,197,250,208,181,14,32,209,181,63,69,209,181,89,106,209,181,90,143,209,181,68,180,209,181,22,217,209,181,208,253,209,181,114,34,210,181,252,70,210,181,111,107,210,181,201,143,210,181,12,180,210,181,55,216,210,181,74,252,210,181,68,32,211,181,39,68,211,181,243,103,211,181,166,139,211,181,65,175,211,181,196,210,211,181,47,246,211,181,130,25,212,181,190,60,212,181,225,95,212,181,236,
130,212,181,223,165,212,181,186,200,212,181,125,235,212,181,40,14,213,181,186,48,213,181,53,83,213,181,152,117,213,181,226,151,213,181,20,186,213,181,47,220,213,181,49,254,213,181,26,32,214,181,236,65,214,181,166,99,214,181,71,133,214,181,208,166,214,181,65,200,214,181,153,233,214,181,218,10,215,181,2,44,215,181,18,77,215,181,9,110,215,181,233,142,215,181,176,175,215,181,94,208,215,181,245,240,215,181,115,17,216,181,217,49,216,181,38,82,216,181,91,114,216,181,120,146,216,181,124,178,216,181,104,210,
216,181,60,242,216,181,247,17,217,181,154,49,217,181,36,81,217,181,150,112,217,181,240,143,217,181,49,175,217,181,90,206,217,181,106,237,217,181,97,12,218,181,65,43,218,181,7,74,218,181,182,104,218,181,75,135,218,181,200,165,218,181,45,196,218,181,121,226,218,181,173,0,219,181,200,30,219,181,202,60,219,181,180,90,219,181,133,120,219,181,62,150,219,181,222,179,219,181,102,209,219,181,213,238,219,181,43,12,220,181,105,41,220,181,142,70,220,181,154,99,220,181,142,128,220,181,105,157,220,181,43,186,220,
181,213,214,220,181,102,243,220,181,222,15,221,181,61,44,221,181,132,72,221,181,178,100,221,181,200,128,221,181,196,156,221,181,168,184,221,181,115,212,221,181,38,240,221,181,191,11,222,181,64,39,222,181,168,66,222,181,247,93,222,181,46,121,222,181,75,148,222,181,80,175,222,181,60,202,222,181,15,229,222,181,202,255,222,181,107,26,223,181,244,52,223,181,99,79,223,181,186,105,223,181,248,131,223,181,29,158,223,181,42,184,223,181,29,210,223,181,247,235,223,181,185,5,224,181,97,31,224,181,241,56,224,
181,104,82,224,181,197,107,224,181,10,133,224,181,54,158,224,181,73,183,224,181,67,208,224,181,36,233,224,181,236,1,225,181,155,26,225,181,49,51,225,181,174,75,225,181,18,100,225,181,93,124,225,181,143,148,225,181,168,172,225,181,167,196,225,181,142,220,225,181,92,244,225,181,17,12,226,181,172,35,226,181,47,59,226,181,153,82,226,181,233,105,226,181,32,129,226,181,63,152,226,181,68,175,226,181,48,198,226,181,3,221,226,181,189,243,226,181,94,10,227,181,229,32,227,181,84,55,227,181,169,77,227,181,229,
99,227,181,8,122,227,181,18,144,227,181,3,166,227,181,219,187,227,181,153,209,227,181,63,231,227,181,203,252,227,181,62,18,228,181,151,39,228,181,216,60,228,181,255,81,228,181,13,103,228,181,2,124,228,181,222,144,228,181,160,165,228,181,74,186,228,181,218,206,228,181,81,227,228,181,174,247,228,181,242,11,229,181,30,32,229,181,47,52,229,181,40,72,229,181,7,92,229,181,205,111,229,181,122,131,229,181,14,151,229,181,136,170,229,181,233,189,229,181,48,209,229,181,95,228,229,181,116,247,229,181,112,10,
230,181,82,29,230,181,27,48,230,181,203,66,230,181,98,85,230,181,223,103,230,181,67,122,230,181,141,140,230,181,190,158,230,181,214,176,230,181,213,194,230,181,186,212,230,181,134,230,230,181,56,248,230,181,210,9,231,181,81,27,231,181,184,44,231,181,5,62,231,181,57,79,231,181,83,96,231,181,84,113,231,181,59,130,231,181,10,147,231,181,190,163,231,181,90,180,231,181,220,196,231,181,69,213,231,181,148,229,231,181,202,245,231,181,230,5,232,181,233,21,232,181,211,37,232,181,163,53,232,181,90,69,232,181,
247,84,232,181,123,100,232,181,230,115,232,181,55,131,232,181,110,146,232,181,141,161,232,181,145,176,232,181,125,191,232,181,79,206,232,181,7,221,232,181,166,235,232,181,44,250,232,181,152,8,233,181,235,22,233,181,36,37,233,181,68,51,233,181,74,65,233,181,55,79,233,181,11,93,233,181,197,106,233,181,101,120,233,181,236,133,233,181,90,147,233,181,174,160,233,181,233,173,233,181,10,187,233,181,18,200,233,181,0,213,233,181,213,225,233,181,144,238,233,181,50,251,233,181,186,7,234,181,41,20,234,181,126,
32,234,181,186,44,234,181,221,56,234,181,229,68,234,181,213,80,234,181,171,92,234,181,103,104,234,181,10,116,234,181,148,127,234,181,4,139,234,181,90,150,234,181,151,161,234,181,186,172,234,181,196,183,234,181,181,194,234,181,140,205,234,181,73,216,234,181,237,226,234,181,120,237,234,181,233,247,234,181,64,2,235,181,126,12,235,181,163,22,235,181,173,32,235,181,159,42,235,181,119,52,235,181,53,62,235,181,218,71,235,181,102,81,235,181,216,90,235,181,48,100,235,181,111,109,235,181,148,118,235,181,160,
127,235,181,147,136,235,181,107,145,235,181,43,154,235,181,209,162,235,181,93,171,235,181,208,179,235,181,41,188,235,181,105,196,235,181,143,204,235,181,156,212,235,181,144,220,235,181,105,228,235,181,42,236,235,181,209,243,235,181,94,251,235,181,210,2,236,181,44,10,236,181,109,17,236,181,148,24,236,181,162,31,236,181,151,38,236,181,113,45,236,181,51,52,236,181,219,58,236,181,105,65,236,181,222,71,236,181,57,78,236,181,123,84,236,181,164,90,236,181,179,96,236,181,168,102,236,181,132,108,236,181,71,
114,236,181,240,119,236,181,127,125,236,181,245,130,236,181,82,136,236,181,149,141,236,181,190,146,236,181,207,151,236,181,197,156,236,181,163,161,236,181,102,166,236,181,17,171,236,181,161,175,236,181,25,180,236,181,119,184,236,181,187,188,236,181,230,192,236,181,248,196,236,181,240,200,236,181,206,204,236,181,148,208,236,181,63,212,236,181,210,215,236,181,75,219,236,181,170,222,236,181,240,225,236,181,29,229,236,181,48,232,236,181,42,235,236,181,10,238,236,181,209,240,236,181,126,243,236,181,18,
246,236,181,141,248,236,181,238,250,236,181,54,253,236,181,100,255,236,181,121,1,237,181,117,3,237,181,87,5,237,181,32,7,237,181,207,8,237,181,102,10,237,181,226,11,237,181,69,13,237,181,143,14,237,181,192,15,237,181,215,16,237,181,213,17,237,181,185,18,237,181,132,19,237,181,54,20,237,181,207,20,237,181,78,21,237,181,179,21,237,181,0,22,237,181,51,22,237,181,76,22,237,181,77,22,237,181,52,22,237,181,1,22,237,181,182,21,237,181,81,21,237,181,210,20,237,181,59,20,237,181,138,19,237,181,192,18,237,
181,220,17,237,181,223,16,237,181,201,15,237,181,154,14,237,181,81,13,237,181,240,11,237,181,116,10,237,181,224,8,237,181,50,7,237,181,107,5,237,181,139,3,237,181,146,1,237,181,127,255,236,181,83,253,236,181,14,251,236,181,176,248,236,181,56,246,236,181,167,243,236,181,253,240,236,181,58,238,236,181,93,235,236,181,104,232,236,181,89,229,236,181,49,226,236,181,240,222,236,181,149,219,236,181,34,216,236,181,149,212,236,181,239,208,236,181,48,205,236,181,88,201,236,181,103,197,236,181,92,193,236,181,
56,189,236,181,252,184,236,181,166,180,236,181,55,176,236,181,175,171,236,181,13,167,236,181,83,162,236,181,128,157,236,181,147,152,236,181,142,147,236,181,111,142,236,181,55,137,236,181,230,131,236,181,124,126,236,181,249,120,236,181,93,115,236,181,168,109,236,181,218,103,236,181,243,97,236,181,243,91,236,181,218,85,236,181,168,79,236,181,93,73,236,181,249,66,236,181,123,60,236,181,229,53,236,181,54,47,236,181,110,40,236,181,141,33,236,181,147,26,236,181,128,19,236,181,84,12,236,181,15,5,236,181,
178,253,235,181,59,246,235,181,171,238,235,181,3,231,235,181,65,223,235,181,103,215,235,181,116,207,235,181,104,199,235,181,67,191,235,181,5,183,235,181,174,174,235,181,62,166,235,181,182,157,235,181,21,149,235,181,91,140,235,181,136,131,235,181,156,122,235,181,151,113,235,181,122,104,235,181,68,95,235,181,245,85,235,181,141,76,235,181,13,67,235,181,115,57,235,181,193,47,235,181,247,37,235,181,19,28,235,181,23,18,235,181,2,8,235,181,212,253,234,181,142,243,234,181,47,233,234,181,183,222,234,181,38,
212,234,181,125,201,234,181,187,190,234,181,225,179,234,181,238,168,234,181,226,157,234,181,189,146,234,181,128,135,234,181,43,124,234,181,188,112,234,181,53,101,234,181,150,89,234,181,222,77,234,181,13,66,234,181,36,54,234,181,34,42,234,181,8,30,234,181,213,17,234,181,138,5,234,181,38,249,233,181,169,236,233,181,20,224,233,181,103,211,233,181,161,198,233,181,194,185,233,181,203,172,233,181,188,159,233,181,148,146,233,181,84,133,233,181,251,119,233,181,138,106,233,181,1,93,233,181,95,79,233,181,164,
65,233,181,210,51,233,181,230,37,233,181,227,23,233,181,199,9,233,181,147,251,232,181,70,237,232,181,225,222,232,181,100,208,232,181,207,193,232,181,33,179,232,181,91,164,232,181,125,149,232,181,134,134,232,181,119,119,232,181,80,104,232,181,16,89,232,181,185,73,232,181,73,58,232,181,193,42,232,181,33,27,232,181,104,11,232,181,151,251,231,181,175,235,231,181,174,219,231,181,148,203,231,181,99,187,231,181,26,171,231,181,184,154,231,181,63,138,231,181,173,121,231,181,3,105,231,181,65,88,231,181,103,
71,231,181,117,54,231,181,107,37,231,181,73,20,231,181,15,3,231,181,189,241,230,181,83,224,230,181,209,206,230,181,54,189,230,181,132,171,230,181,186,153,230,181,216,135,230,181,222,117,230,181,205,99,230,181,163,81,230,181,97,63,230,181,8,45,230,181,150,26,230,181,13,8,230,181,108,245,229,181,179,226,229,181,226,207,229,181,249,188,229,181,249,169,229,181,224,150,229,181,176,131,229,181,105,112,229,181,9,93,229,181,146,73,229,181,2,54,229,181,92,34,229,181,157,14,229,181,199,250,228,181,217,230,
228,181,211,210,228,181,182,190,228,181,129,170,228,181,52,150,228,181,208,129,228,181,84,109,228,181,193,88,228,181,22,68,228,181,83,47,228,181,121,26,228,181,135,5,228,181,126,240,227,181,93,219,227,181,36,198,227,181,212,176,227,181,109,155,227,181,238,133,227,181,88,112,227,181,170,90,227,181,228,68,227,181,8,47,227,181,19,25,227,181,8,3,227,181,229,236,226,181,171,214,226,181,89,192,226,181,240,169,226,181,111,147,226,181,215,124,226,181,40,102,226,181,98,79,226,181,132,56,226,181,143,33,226,
181,131,10,226,181,95,243,225,181,37,220,225,181,211,196,225,181,105,173,225,181,233,149,225,181,81,126,225,181,163,102,225,181,221,78,225,181,0,55,225,181,11,31,225,181,0,7,225,181,222,238,224,181,164,214,224,181,83,190,224,181,236,165,224,181,109,141,224,181,215,116,224,181,42,92,224,181,102,67,224,181,139,42,224,181,154,17,224,181,145,248,223,181,113,223,223,181,58,198,223,181,237,172,223,181,136,147,223,181,13,122,223,181,122,96,223,181,209,70,223,181,17,45,223,181,58,19,223,181,76,249,222,181,
72,223,222,181,44,197,222,181,250,170,222,181,177,144,222,181,81,118,222,181,219,91,222,181,78,65,222,181,170,38,222,181,239,11,222,181,30,241,221,181,54,214,221,181,55,187,221,181,34,160,221,181,246,132,221,181,180,105,221,181,91,78,221,181,235,50,221,181,101,23,221,181,200,251,220,181,21,224,220,181,75,196,220,181,106,168,220,181,115,140,220,181,102,112,220,181,66,84,220,181,8,56,220,181,183,27,220,181,80,255,219,181,210,226,219,181,63,198,219,181,148,169,219,181,212,140,219,181,253,111,219,181,
15,83,219,181,12,54,219,181,242,24,219,181,194,251,218,181,123,222,218,181,30,193,218,181,171,163,218,181,34,134,218,181,131,104,218,181,205,74,218,181,2,45,218,181,32,15,218,181,40,241,217,181,25,211,217,181,245,180,217,181,187,150,217,181,106,120,217,181,4,90,217,181],"i8",4,y.a+1249280);
Q([135,59,217,181,245,28,217,181,76,254,216,181,142,223,216,181,185,192,216,181,207,161,216,181,206,130,216,181,184,99,216,181,140,68,216,181,73,37,216,181,241,5,216,181,131,230,215,181,0,199,215,181,102,167,215,181,183,135,215,181,241,103,215,181,22,72,215,181,38,40,215,181,31,8,215,181,3,232,214,181,209,199,214,181,137,167,214,181,44,135,214,181,185,102,214,181,48,70,214,181,146,37,214,181,222,4,214,181,20,228,213,181,53,195,213,181,65,162,213,181,54,129,213,181,23,96,213,181,225,62,213,181,151,
29,213,181,54,252,212,181,193,218,212,181,54,185,212,181,149,151,212,181,223,117,212,181,20,84,212,181,51,50,212,181,61,16,212,181,49,238,211,181,17,204,211,181,219,169,211,181,143,135,211,181,47,101,211,181,185,66,211,181,46,32,211,181,141,253,210,181,216,218,210,181,13,184,210,181,45,149,210,181,56,114,210,181,46,79,210,181,15,44,210,181,218,8,210,181,145,229,209,181,51,194,209,181,191,158,209,181,55,123,209,181,153,87,209,181,230,51,209,181,31,16,209,181,67,236,208,181,81,200,208,181,75,164,208,
181,48,128,208,181,0,92,208,181,187,55,208,181,97,19,208,181,242,238,207,181,111,202,207,181,215,165,207,181,42,129,207,181,104,92,207,181,146,55,207,181,167,18,207,181,167,237,206,181,146,200,206,181,105,163,206,181,44,126,206,181,217,88,206,181,114,51,206,181,247,13,206,181,102,232,205,181,194,194,205,181,9,157,205,181,59,119,205,181,89,81,205,181,98,43,205,181,87,5,205,181,55,223,204,181,4,185,204,181,187,146,204,181,94,108,204,181,237,69,204,181,104,31,204,181,206,248,203,181,32,210,203,181,94,
171,203,181,136,132,203,181,157,93,203,181,158,54,203,181,139,15,203,181,99,232,202,181,40,193,202,181,216,153,202,181,116,114,202,181,252,74,202,181,112,35,202,181,208,251,201,181,28,212,201,181,84,172,201,181,120,132,201,181,136,92,201,181,132,52,201,181,108,12,201,181,64,228,200,181,0,188,200,181,172,147,200,181,69,107,200,181,201,66,200,181,58,26,200,181,151,241,199,181,224,200,199,181,22,160,199,181,55,119,199,181,69,78,199,181,64,37,199,181,38,252,198,181,249,210,198,181,184,169,198,181,100,
128,198,181,252,86,198,181,128,45,198,181,241,3,198,181,78,218,197,181,152,176,197,181,206,134,197,181,241,92,197,181,0,51,197,181,252,8,197,181,229,222,196,181,186,180,196,181,124,138,196,181,42,96,196,181,197,53,196,181,77,11,196,181,193,224,195,181,34,182,195,181,112,139,195,181,170,96,195,181,210,53,195,181,230,10,195,181,231,223,194,181,213,180,194,181,176,137,194,181,119,94,194,181,44,51,194,181,205,7,194,181,92,220,193,181,215,176,193,181,64,133,193,181,149,89,193,181,215,45,193,181,7,2,193,
181,35,214,192,181,45,170,192,181,36,126,192,181,8,82,192,181,217,37,192,181,151,249,191,181,67,205,191,181,220,160,191,181,98,116,191,181,213,71,191,181,53,27,191,181,131,238,190,181,190,193,190,181,231,148,190,181,253,103,190,181,0,59,190,181,241,13,190,181,207,224,189,181,155,179,189,181,84,134,189,181,251,88,189,181,143,43,189,181,17,254,188,181,128,208,188,181,221,162,188,181,39,117,188,181,95,71,188,181,133,25,188,181,153,235,187,181,154,189,187,181,137,143,187,181,102,97,187,181,48,51,187,
181,232,4,187,181,142,214,186,181,34,168,186,181,164,121,186,181,20,75,186,181,113,28,186,181,189,237,185,181,246,190,185,181,29,144,185,181,51,97,185,181,54,50,185,181,40,3,185,181,7,212,184,181,213,164,184,181,144,117,184,181,58,70,184,181,210,22,184,181,88,231,183,181,205,183,183,181,47,136,183,181,128,88,183,181,191,40,183,181,236,248,182,181,8,201,182,181,18,153,182,181,10,105,182,181,241,56,182,181,198,8,182,181,138,216,181,181,60,168,181,181,220,119,181,181,107,71,181,181,232,22,181,181,84,
230,180,181,175,181,180,181,248,132,180,181,48,84,180,181,86,35,180,181,107,242,179,181,111,193,179,181,97,144,179,181,66,95,179,181,18,46,179,181,208,252,178,181,126,203,178,181,26,154,178,181,165,104,178,181,31,55,178,181,136,5,178,181,223,211,177,181,38,162,177,181,92,112,177,181,128,62,177,181,148,12,177,181,150,218,176,181,136,168,176,181,104,118,176,181,56,68,176,181,247,17,176,181,165,223,175,181,66,173,175,181,207,122,175,181,74,72,175,181,181,21,175,181,15,227,174,181,89,176,174,181,145,
125,174,181,185,74,174,181,209,23,174,181,215,228,173,181,205,177,173,181,179,126,173,181,136,75,173,181,76,24,173,181,0,229,172,181,164,177,172,181,55,126,172,181,185,74,172,181,44,23,172,181,141,227,171,181,223,175,171,181,32,124,171,181,81,72,171,181,113,20,171,181,130,224,170,181,130,172,170,181,113,120,170,181,81,68,170,181,32,16,170,181,224,219,169,181,143,167,169,181,46,115,169,181,189,62,169,181,60,10,169,181,171,213,168,181,10,161,168,181,89,108,168,181,152,55,168,181,199,2,168,181,230,205,
167,181,245,152,167,181,245,99,167,181,229,46,167,181,196,249,166,181,148,196,166,181,85,143,166,181,5,90,166,181,166,36,166,181,56,239,165,181,185,185,165,181,43,132,165,181,141,78,165,181,224,24,165,181,35,227,164,181,87,173,164,181,123,119,164,181,144,65,164,181,149,11,164,181,139,213,163,181,113,159,163,181,72,105,163,181,16,51,163,181,200,252,162,181,113,198,162,181,11,144,162,181,150,89,162,181,17,35,162,181,125,236,161,181,218,181,161,181,40,127,161,181,102,72,161,181,150,17,161,181,182,218,
160,181,200,163,160,181,202,108,160,181,189,53,160,181,162,254,159,181,119,199,159,181,62,144,159,181,245,88,159,181,158,33,159,181,56,234,158,181,195,178,158,181,63,123,158,181,172,67,158,181,11,12,158,181,91,212,157,181,156,156,157,181,207,100,157,181,243,44,157,181,8,245,156,181,15,189,156,181,7,133,156,181,241,76,156,181,204,20,156,181,153,220,155,181,87,164,155,181,6,108,155,181,168,51,155,181,59,251,154,181,191,194,154,181,53,138,154,181,157,81,154,181,247,24,154,181,66,224,153,181,127,167,
153,181,174,110,153,181,207,53,153,181,225,252,152,181,230,195,152,181,220,138,152,181,196,81,152,181,159,24,152,181,107,223,151,181,41,166,151,181,217,108,151,181,123,51,151,181,15,250,150,181,150,192,150,181,14,135,150,181,121,77,150,181,214,19,150,181,37,218,149,181,102,160,149,181,154,102,149,181,192,44,149,181,216,242,148,181,226,184,148,181,223,126,148,181,206,68,148,181,176,10,148,181,132,208,147,181,75,150,147,181,4,92,147,181,175,33,147,181,77,231,146,181,222,172,146,181,97,114,146,181,215,
55,146,181,64,253,145,181,155,194,145,181,233,135,145,181,42,77,145,181,93,18,145,181,132,215,144,181,157,156,144,181,169,97,144,181,167,38,144,181,153,235,143,181,126,176,143,181,85,117,143,181,32,58,143,181,221,254,142,181,142,195,142,181,49,136,142,181,200,76,142,181,82,17,142,181,207,213,141,181,63,154,141,181,162,94,141,181,248,34,141,181,66,231,140,181,127,171,140,181,175,111,140,181,211,51,140,181,234,247,139,181,244,187,139,181,242,127,139,181,227,67,139,181,200,7,139,181,160,203,138,181,
107,143,138,181,43,83,138,181,221,22,138,181,132,218,137,181,30,158,137,181,171,97,137,181,44,37,137,181,161,232,136,181,10,172,136,181,102,111,136,181,183,50,136,181,251,245,135,181,50,185,135,181,94,124,135,181,126,63,135,181,145,2,135,181,153,197,134,181,148,136,134,181,132,75,134,181,103,14,134,181,63,209,133,181,10,148,133,181,202,86,133,181,126,25,133,181,38,220,132,181,194,158,132,181,82,97,132,181,215,35,132,181,80,230,131,181,189,168,131,181,31,107,131,181,117,45,131,181,191,239,130,181,
254,177,130,181,49,116,130,181,89,54,130,181,117,248,129,181,134,186,129,181,139,124,129,181,133,62,129,181,115,0,129,181,86,194,128,181,46,132,128,181,250,69,128,181,187,7,128,181,226,146,127,181,55,22,127,181,118,153,126,181,158,28,126,181,176,159,125,181,172,34,125,181,146,165,124,181,98,40,124,181,27,171,123,181,191,45,123,181,76,176,122,181,196,50,122,181,38,181,121,181,114,55,121,181,168,185,120,181,201,59,120,181,212,189,119,181,201,63,119,181,169,193,118,181,115,67,118,181,40,197,117,181,
200,70,117,181,83,200,116,181,200,73,116,181,40,203,115,181,115,76,115,181,169,205,114,181,201,78,114,181,213,207,113,181,204,80,113,181,175,209,112,181,124,82,112,181,53,211,111,181,217,83,111,181,104,212,110,181,227,84,110,181,73,213,109,181,155,85,109,181,216,213,108,181,2,86,108,181,22,214,107,181,23,86,107,181,4,214,106,181,220,85,106,181,160,213,105,181,81,85,105,181,237,212,104,181,118,84,104,181,234,211,103,181,75,83,103,181,153,210,102,181,210,81,102,181,248,208,101,181,11,80,101,181,10,
207,100,181,245,77,100,181,206,204,99,181,146,75,99,181,68,202,98,181,226,72,98,181,110,199,97,181,230,69,97,181,75,196,96,181,157,66,96,181,221,192,95,181,9,63,95,181,35,189,94,181,42,59,94,181,30,185,93,181,0,55,93,181,207,180,92,181,139,50,92,181,53,176,91,181,205,45,91,181,82,171,90,181,198,40,90,181,38,166,89,181,117,35,89,181,178,160,88,181,220,29,88,181,245,154,87,181,251,23,87,181,240,148,86,181,211,17,86,181,164,142,85,181,99,11,85,181,17,136,84,181,173,4,84,181,56,129,83,181,177,253,82,
181,25,122,82,181,111,246,81,181,180,114,81,181,232,238,80,181,11,107,80,181,28,231,79,181,29,99,79,181,12,223,78,181,235,90,78,181,184,214,77,181,117,82,77,181,33,206,76,181,188,73,76,181,71,197,75,181,192,64,75,181,42,188,74,181,131,55,74,181,203,178,73,181,3,46,73,181,43,169,72,181,66,36,72,181,74,159,71,181,65,26,71,181,40,149,70,181,255,15,70,181,198,138,69,181,125,5,69,181,36,128,68,181,188,250,67,181,67,117,67,181,187,239,66,181,36,106,66,181,125,228,65,181,198,94,65,181,0,217,64,181,42,83,
64,181,69,205,63,181,81,71,63,181,78,193,62,181,59,59,62,181,26,181,61,181,233,46,61,181,170,168,60,181,91,34,60,181,254,155,59,181,145,21,59,181,22,143,58,181,141,8,58,181,244,129,57,181,78,251,56,181,152,116,56,181,212,237,55,181,2,103,55,181,33,224,54,181,51,89,54,181,53,210,53,181,42,75,53,181,17,196,52,181,233,60,52,181,180,181,51,181,113,46,51,181,31,167,50,181,192,31,50,181,84,152,49,181,217,16,49,181,81,137,48,181,187,1,48,181,24,122,47,181,103,242,46,181,169,106,46,181,222,226,45,181,5,91,
45,181,31,211,44,181,44,75,44,181,44,195,43,181,31,59,43,181,4,179,42,181,221,42,42,181,169,162,41,181,104,26,41,181,27,146,40,181,192,9,40,181,89,129,39,181,230,248,38,181,102,112,38,181,217,231,37,181,64,95,37,181,155,214,36,181,233,77,36,181,44,197,35,181,98,60,35,181,140,179,34,181,169,42,34,181,187,161,33,181,193,24,33,181,187,143,32,181,170,6,32,181,140,125,31,181,99,244,30,181,46,107,30,181,238,225,29,181,162,88,29,181,75,207,28,181,232,69,28,181,122,188,27,181,0,51,27,181,124,169,26,181,236,
31,26,181,81,150,25,181,171,12,25,181,250,130,24,181,63,249,23,181,120,111,23,181,167,229,22,181,202,91,22,181,227,209,21,181,242,71,21,181,246,189,20,181,239,51,20,181,222,169,19,181,195,31,19,181,157,149,18,181,109,11,18,181,50,129,17,181,238,246,16,181,159,108,16,181,71,226,15,181,228,87,15,181,120,205,14,181,1,67,14,181,129,184,13,181,247,45,13,181,100,163,12,181,199,24,12,181,32,142,11,181,112,3,11,181,182,120,10,181,243,237,9,181,39,99,9,181,81,216,8,181,114,77,8,181,138,194,7,181,153,55,7,
181,159,172,6,181,156,33,6,181,144,150,5,181,123,11,5,181,93,128,4,181,55,245,3,181,8,106,3,181,208,222,2,181,144,83,2,181,71,200,1,181,246,60,1,181,157,177,0,181,59,38,0,181,162,53,255,180,189,30,254,180,200,7,253,180,195,240,251,180,174,217,250,180,137,194,249,180,85,171,248,180,16,148,247,180,188,124,246,180,89,101,245,180,230,77,244,180,101,54,243,180,212,30,242,180,52,7,241,180,133,239,239,180,200,215,238,180,251,191,237,180,33,168,236,180,56,144,235,180,65,120,234,180,60,96,233,180,40,72,232,
180,7,48,231,180,216,23,230,180,155,255,228,180,81,231,227,180,250,206,226,180,149,182,225,180,35,158,224,180,164,133,223,180,24,109,222,180,127,84,221,180,217,59,220,180,39,35,219,180,105,10,218,180,158,241,216,180,199,216,215,180,228,191,214,180,244,166,213,180,249,141,212,180,242,116,211,180,224,91,210,180,194,66,209,180,153,41,208,180,100,16,207,180,36,247,205,180,218,221,204,180,132,196,203,180,36,171,202,180,184,145,201,180,67,120,200,180,195,94,199,180,56,69,198,180,164,43,197,180,5,18,196,
180,92,248,194,180,170,222,193,180,238,196,192,180,40,171,191,180,88,145,190,180,128,119,189,180,158,93,188,180,179,67,187,180,191,41,186,180,194,15,185,180,188,245,183,180,174,219,182,180,151,193,181,180,120,167,180,180,81,141,179,180,33,115,178,180,233,88,177,180,169,62,176,180,98,36,175,180,19,10,174,180,188,239,172,180,94,213,171,180,248,186,170,180,140,160,169,180,24,134,168,180,157,107,167,180,27,81,166,180,147,54,165,180,4,28,164,180,110,1,163,180,210,230,161,180,48,204,160,180,136,177,159,
180,218,150,158,180,37,124,157,180,107,97,156,180,172,70,155,180,230,43,154,180,28,17,153,180,76,246,151,180,119,219,150,180,156,192,149,180,189,165,148,180,217,138,147,180,240,111,146,180,3,85,145,180,17,58,144,180,27,31,143,180,32,4,142,180,34,233,140,180,31,206,139,180,25,179,138,180,15,152,137,180,1,125,136,180,239,97,135,180,219,70,134,180,195,43,133,180,167,16,132,180,137,245,130,180,104,218,129,180,68,191,128,180,58,72,127,180,231,17,125,180,144,219,122,180,52,165,120,180,211,110,118,180,110,
56,116,180,5,2,114,180,153,203,111,180,41,149,109,180,181,94,107,180,63,40,105,180,198,241,102,180,74,187,100,180,204,132,98,180,76,78,96,180,202,23,94,180,71,225,91,180,194,170,89,180,60,116,87,180,181,61,85,180,46,7,83,180,166,208,80,180,30,154,78,180,149,99,76,180,14,45,74,180,135,246,71,180,0,192,69,180,123,137,67,180,247,82,65,180,116,28,63,180,243,229,60,180,116,175,58,180,247,120,56,180,125,66,54,180,5,12,52,180,144,213,49,180,30,159,47,180,176,104,45,180,69,50,43,180,222,251,40,180,124,197,
38,180,29,143,36,180,195,88,34,180,110,34,32,180,30,236,29,180,211,181,27,180,142,127,25,180,78,73,23,180,20,19,21,180,225,220,18,180,180,166,16,180,141,112,14,180,110,58,12,180,85,4,10,180,69,206,7,180,59,152,5,180,58,98,3,180,64,44,1,180,159,236,253,179,206,128,249,179,14,21,245,179,97,169,240,179,198,61,236,179,62,210,231,179,201,102,227,179,105,251,222,179,29,144,218,179,230,36,214,179,196,185,209,179,184,78,205,179,194,227,200,179,227,120,196,179,27,14,192,179,107,163,187,179,211,56,183,179,
83,206,178,179,237,99,174,179,160,249,169,179,110,143,165,179,86,37,161,179,88,187,156,179,119,81,152,179,177,231,147,179,7,126,143,179,122,20,139,179,11,171,134,179,185,65,130,179,12,177,123,179,227,222,114,179,248,12,106,179,76,59,97,179,224,105,88,179,182,152,79,179,206,199,70,179,40,247,61,179,199,38,53,179,170,86,44,179,212,134,35,179,68,183,26,179,251,231,17,179,252,24,9,179,70,74,0,179,180,247,238,178,115,91,221,178,203,191,203,178,190,36,186,178,77,138,168,178,122,240,150,178,71,87,133,178,
109,125,103,178,147,77,68,178,4,31,33,178,137,227,251,177,175,139,181,177,4,109,94,177,37,144,163,176,158,93,107,48,91,113,71,49,221,2,170,49,58,74,240,49,95,71,27,50,49,104,62,50,142,135,97,50,186,82,130,50,239,224,147,50,101,110,165,50,25,251,182,50,10,135,200,50,53,18,218,50,154,156,235,50,54,38,253,50,132,87,7,51,134,27,16,51,33,223,24,51,84,162,33,51,30,101,42,51,126,39,51,51,116,233,59,51,253,170,68,51,26,108,77,51,201,44,86,51,10,237,94,51,219,172,103,51,60,108,112,51,43,43,121,51,212,244,
128,51,217,83,133,51,164,178,137,51,53,17,142,51,138,111,146,51,165,205,150,51,131,43,155,51,37,137,159,51,138,230,163,51,178,67,168,51,157,160,172,51,73,253,176,51,182,89,181,51,229,181,185,51,212,17,190,51,131,109,194,51,242,200,198,51,31,36,203,51,12,127,207,51,182,217,211,51,31,52,216,51,68,142,220,51,39,232,224,51,197,65,229,51,32,155,233,51,54,244,237,51,8,77,242,51,147,165,246,51,217,253,250,51,217,85,255,51,201,214,1,52,130,2,4,52,22,46,6,52,135,89,8,52,212,132,10,52,252,175,12,52,255,218,
14,52,221,5,17,52,150,48,19,52,42,91,21,52,152,133,23,52,224,175,25,52,2,218,27,52,253,3,30,52,210,45,32,52,129,87,34,52,8,129,36,52,104,170,38,52,160,211,40,52,177,252,42,52,154,37,45,52,91,78,47,52,243,118,49,52,99,159,51,52,170,199,53,52,200,239,55,52,188,23,58,52,135,63,60,52,41,103,62,52,160,142,64,52,238,181,66,52,17,221,68,52,9,4,71,52,214,42,73,52,121,81,75,52,240,119,77,52,60,158,79,52,92,196,81,52,80,234,83,52,23,16,86,52,179,53,88,52,34,91,90,52,100,128,92,52,120,165,94,52,96,202,96,52,
26,239,98,52,166,19,101,52,5,56,103,52,53,92,105,52,55,128,107,52,10,164,109,52,174,199,111,52,36,235,113,52,106,14,116,52,128,49,118,52,103,84,120,52,30,119,122,52,164,153,124,52,251,187,126,52,16,111,128,52,11,128,129,52,236,144,130,52,182,161,131,52,102,178,132,52,254,194,133,52,125,211,134,52,226,227,135,52,47,244,136,52,98,4,138,52,123,20,139,52,124,36,140,52,98,52,141,52,47,68,142,52,226,83,143,52,123,99,144,52,250,114,145,52,95,130,146,52,169,145,147,52,217,160,148,52,239,175,149,52,234,190,
150,52,202,205,151,52,144,220,152,52,58,235,153,52,201,249,154,52,62,8,156,52,151,22,157,52,212,36,158,52,247,50,159,52,253,64,160,52,232,78,161,52,183,92,162,52,106,106,163,52,1,120,164,52,124,133,165,52,219,146,166,52,30,160,167,52,67,173,168,52,77,186,169,52,58,199,170,52,9,212,171,52,188,224,172,52,82,237,173,52,203,249,174,52,39,6,176,52,101,18,177,52,134,30,178,52,138,42,179,52,112,54,180,52,56,66,181,52,226,77,182,52,110,89,183,52,220,100,184,52,44,112,185,52,94,123,186,52,113,134,187,52,102,
145,188,52,60,156,189,52,243,166,190,52,140,177,191,52,6,188,192,52,96,198,193,52,156,208,194,52,184,218,195,52,181,228,196,52,146,238,197,52,80,248,198,52,238,1,200,52,109,11,201,52,203,20,202,52,10,30,203,52,40,39,204,52,39,48,205,52,4,57,206,52,194,65,207,52,95,74,208,52,219,82,209,52,55,91,210,52,114,99,211,52,140,107,212,52,132,115,213,52,92,123,214,52,18,131,215,52,168,138,216,52,27,146,217,52,109,153,218,52,157,160,219,52,172,167,220,52,153,174,221,52,99,181,222,52,12,188,223,52,146,194,224,
52,246,200,225,52,56,207,226,52,87,213,227,52,83,219,228,52,45,225,229,52,228,230,230,52,120,236,231,52,233,241,232,52,55,247,233,52,98,252,234,52,105,1,236,52,77,6,237,52,13,11,238,52,170,15,239,52,34,20,240,52,119,24,241,52,168,28,242,52,181,32,243,52,158,36,244,52,99,40,245,52,3,44,246,52,126,47,247,52,213,50,248,52,8,54,249,52,21,57,250,52,254,59,251,52,194,62,252,52,96,65,253,52,217,67,254,52,46,70,255,52,46,36,0,53,51,165,0,53,36,38,1,53,3,167,1,53,207,39,2,53,136,168,2,53,46,41,3,53,193,169,
3,53,65,42,4,53,174,170,4,53,8,43,5,53,78,171,5,53,129,43,6,53,160,171,6,53,172,43,7,53,165,171,7,53,138,43,8,53,92,171,8,53,26,43,9,53,196,170,9,53,91,42,10,53,222,169,10,53,77,41,11,53,168,168,11,53,239,39,12,53,34,167,12,53,66,38,13,53,77,165,13,53,68,36,14,53,39,163,14,53,245,33,15,53,176,160,15,53,86,31,16,53,232,157,16,53,101,28,17,53,206,154,17,53,34,25,18,53,98,151,18,53,141,21,19,53,164,147,19,53,165,17,20,53,146,143,20,53,106,13,21,53,46,139,21,53,220,8,22,53,118,134,22,53,250,3,23,53,106,
129,23,53,196,254,23,53,9,124,24,53,57,249,24,53,83,118,25,53,89,243,25,53,73,112,26,53,35,237,26,53,233,105,27,53,152,230,27,53,50,99,28,53,183,223,28,53,38,92,29,53,127,216,29,53,194,84,30,53,240,208,30,53,7,77,31,53,9,201,31,53,245,68,32,53,203,192,32,53,139,60,33,53,53,184,33,53,201,51,34,53,70,175,34,53,173,42,35,53,254,165,35,53,57,33,36,53,93,156,36,53,107,23,37,53,99,146,37,53,68,13,38,53,14,136,38,53,194,2,39,53,95,125,39,53,229,247,39,53,85,114,40,53,174,236,40,53,240,102,41,53,27,225,41,
53,47,91,42,53,44,213,42,53,18,79,43,53,225,200,43,53,153,66,44,53,57,188,44,53,195,53,45,53,53,175,45,53,144,40,46,53,211,161,46,53,255,26,47,53,20,148,47,53,17,13,48,53,246,133,48,53,196,254,48,53,122,119,49,53,25,240,49,53,160,104,50,53,15,225,50,53,102,89,51,53,165,209,51,53,204,73,52,53,220,193,52,53,211,57,53,53,178,177,53,53,122,41,54,53,41,161,54,53,191,24,55,53,62,144,55,53,164,7,56,53,242,126,56,53,39,246,56,53,68,109,57,53,73,228,57,53,53,91,58,53,8,210,58,53,195,72,59,53,101,191,59,53,
238,53,60,53,95,172,60,53,183,34,61,53,246,152,61,53,28,15,62,53,41,133,62,53,29,251,62,53,248,112,63,53,186,230,63,53,99,92,64,53,242,209,64,53,105,71,65,53,198,188,65,53,10,50,66,53,52,167,66,53,70,28,67,53,61,145,67,53,27,6,68,53,224,122,68,53,139,239,68,53,29,100,69,53,148,216,69,53,243,76,70,53,55,193,70,53,97,53,71,53,114,169,71,53,105,29,72,53,70,145,72,53,8,5,73,53,177,120,73,53,64,236,73,53,181,95,74,53,15,211,74,53,79,70,75,53,117,185,75,53,129,44,76,53,115,159,76,53,74,18,77,53,6,133,77,
53,168,247,77,53,48,106,78,53,157,220,78,53,240,78,79,53,39,193,79,53,69,51,80,53,71,165,80,53,47,23,81,53,251,136,81,53,173,250,81,53,69,108,82,53,193,221,82,53,34,79,83,53,104,192,83,53,147,49,84,53,163,162,84,53,152,19,85,53,113,132,85,53,47,245,85,53,210,101,86,53,90,214,86,53,198,70,87,53,23,183,87,53,77,39,88,53,103,151,88,53,101,7,89,53,72,119,89,53,15,231,89,53,186,86,90,53,74,198,90,53,190,53,91,53,22,165,91,53,83,20,92,53,115,131,92,53,120,242,92,53,96,97,93,53,45,208,93,53,221,62,94,53,
114,173,94,53,234,27,95,53,70,138,95,53,134,248,95,53,169,102,96,53,177,212,96,53,156,66,97,53,106,176,97,53,28,30,98,53,178,139,98,53,43,249,98,53,136,102,99,53,200,211,99,53,235,64,100,53,242,173,100,53,219,26,101,53,169,135,101,53,89,244,101,53,237,96,102,53,99,205,102,53,189,57,103,53,250,165,103,53,26,18,104,53,28,126,104,53,2,234,104,53,202,85,105,53,118,193,105,53,4,45,106,53,117,152,106,53,200,3,107,53,255,110,107,53,23,218,107,53,19,69,108,53,241,175,108,53,177,26,109,53,84,133,109,53,218,
239,109,53,66,90,110,53,140,196,110,53,184,46,111,53,199,152,111,53,184,2,112,53,139,108,112,53,64,214,112,53,216,63,113,53,81,169,113,53,173,18,114,53,234,123,114,53,10,229,114,53,11,78,115,53,239,182,115,53,180,31,116,53,91,136,116,53,227,240,116,53,78,89,117,53,154,193,117,53,199,41,118,53,215,145,118,53,199,249,118,53,154,97,119,53,78,201,119,53,227,48,120,53,90,152,120,53,178,255,120,53,235,102,121,53,6,206,121,53,2,53,122,53,223,155,122,53,157,2,123,53,61,105,123,53,189,207,123,53,31,54,124,
53,98,156,124,53,133,2,125,53,138,104,125,53,112,206,125,53,54,52,126,53,221,153,126,53,101,255,126,53,206,100,127,53,23,202,127,53,161,23,128,53,38,74,128,53,156,124,128,53,2,175,128,53,88,225,128,53,159,19,129,53,214,69,129,53,253,119,129,53,20,170,129,53,27,220,129,53,19,14,130,53,250,63,130,53,210,113,130,53,154,163,130,53,82,213,130,53,250,6,131,53,146,56,131,53,26,106,131,53,146,155,131,53,250,204,131,53,82,254,131,53,154,47,132,53,210,96,132,53,250,145,132,53,18,195,132,53,25,244,132,53,17,
37,133,53,248,85,133,53,207,134,133,53,150,183,133,53,77,232,133,53,244,24,134,53,138,73,134,53,16,122,134,53,134,170,134,53,235,218,134,53,65,11,135,53,133,59,135,53,186,107,135,53,222,155,135,53,242,203,135,53,245,251,135,53,232,43,136,53,203,91,136,53,157,139,136,53,94,187,136,53,15,235,136,53,176,26,137,53,64,74,137,53,191,121,137,53,46,169,137,53,141,216,137,53,219,7,138,53,24,55,138,53,68,102,138,53,96,149,138,53,107,196,138,53,102,243,138,53,80,34,139,53,41,81,139,53,241,127,139,53,169,174,
139,53,80,221,139,53,230,11,140,53,107,58,140,53,224,104,140,53,68,151,140,53,150,197,140,53,216,243,140,53,9,34,141,53,42,80,141,53,57,126,141,53,55,172,141,53,37,218,141,53,1,8,142,53,205,53,142,53,135,99,142,53,48,145,142,53,201,190,142,53,80,236,142,53,198,25,143,53,44,71,143,53,128,116,143,53,195,161,143,53,245,206,143,53,21,252,143,53,37,41,144,53,35,86,144,53,17,131,144,53,237,175,144,53,183,220,144,53,113,9,145,53,25,54,145,53,176,98,145,53,54,143,145,53,170,187,145,53,13,232,145,53,95,20,
146,53,159,64,146,53,206,108,146,53,236,152,146,53,248,196,146,53,243,240,146,53,220,28,147,53,180,72,147,53,123,116,147,53,48,160,147,53,211,203,147,53,101,247,147,53,230,34,148,53,85,78,148,53,178,121,148,53,254,164,148,53,56,208,148,53,96,251,148,53,119,38,149,53,125,81,149,53,112,124,149,53,83,167,149,53,35,210,149,53,226,252,149,53,142,39,150,53,42,82,150,53,179,124,150,53,43,167,150,53,145,209,150,53,229,251,150,53,39,38,151,53,88,80,151,53,119,122,151,53,131,164,151,53,127,206,151,53,104,248,
151,53,63,34,152,53,4,76,152,53,184,117,152,53,89,159,152,53,233,200,152,53,102,242,152,53,210,27,153,53,44,69,153,53,115,110,153,53,169,151,153,53,204,192,153,53,222,233,153,53,221,18,154,53,203,59,154,53,166,100,154,53,111,141,154,53,38,182,154,53,203,222,154,53,94,7,155,53,222,47,155,53,77,88,155,53,169,128,155,53,243,168,155,53,43,209,155,53,81,249,155,53,100,33,156,53,101,73,156,53,84,113,156,53,48,153,156,53,250,192,156,53,178,232,156,53,88,16,157,53,235,55,157,53,108,95,157,53,218,134,157,
53,54,174,157,53,128,213,157,53,183,252,157,53,220,35,158,53,239,74,158,53,239,113,158,53,220,152,158,53,183,191,158,53,128,230,158,53,54,13,159,53,217,51,159,53,106,90,159,53,232,128,159,53,84,167,159,53,174,205,159,53,244,243,159,53,40,26,160,53,74,64,160,53,89,102,160,53,85,140,160,53,62,178,160,53,21,216,160,53,218,253,160,53,139,35,161,53,42,73,161,53,182,110,161,53,47,148,161,53,150,185,161,53,234,222,161,53,43,4,162,53,89,41,162,53,117,78,162,53,126,115,162,53,116,152,162,53,87,189,162,53,
39,226,162,53,228,6,163,53,143,43,163,53,38,80,163,53,171,116,163,53,29,153,163,53,124,189,163,53,200,225,163,53,1,6,164,53,39,42,164,53,58,78,164,53,58,114,164,53,40,150,164,53,2,186,164,53,201,221,164,53,125,1,165,53,30,37,165,53,172,72,165,53,39,108,165,53,143,143,165,53,228,178,165,53,38,214,165,53,84,249,165,53,112,28,166,53,120,63,166,53,109,98,166,53,79,133,166,53,30,168,166,53,218,202,166,53,130,237,166,53,24,16,167,53,154,50,167,53,9,85,167,53,100,119,167,53,173,153,167,53,226,187,167,53,
4,222,167,53,18,0,168,53,13,34,168,53,245,67,168,53,202,101,168,53,139,135,168,53,57,169,168,53,212,202,168,53,91,236,168,53,207,13,169,53,48,47,169,53,125,80,169,53,182,113,169,53,221,146,169,53,240,179,169,53,239,212,169,53,219,245,169,53,180,22,170,53,121,55,170,53,42,88,170,53,200,120,170,53,83,153,170,53,202,185,170,53,46,218,170,53,126,250,170,53,186,26,171,53,227,58,171,53,248,90,171,53,250,122,171,53,232,154,171,53,195,186,171,53,138,218,171,53,61,250,171,53,221,25,172,53,105,57,172,53,226,
88,172,53,70,120,172,53,151,151,172,53,213,182,172,53,255,213,172,53,21,245,172,53,23,20,173,53,6,51,173,53,225,81,173,53,168,112,173,53,91,143,173,53,251,173,173,53,135,204,173,53,255,234,173,53,100,9,174,53,180,39,174,53,241,69,174,53,26,100,174,53,47,130,174,53,48,160,174,53,30,190,174,53,247,219,174,53,189,249,174,53,111,23,175,53,13,53,175,53,151,82,175,53,13,112,175,53,111,141,175,53,190,170,175,53,248,199,175,53,31,229,175,53,49,2,176,53,48,31,176,53,27,60,176,53,241,88,176,53,180,117,176,
53,99,146,176,53,253,174,176,53,132,203,176,53,247,231,176,53,85,4,177,53,160,32,177,53,215,60,177,53,249,88,177,53,8,117,177,53,2,145,177,53,232,172,177,53,187,200,177,53,121,228,177,53,35,0,178,53,185,27,178,53,58,55,178,53,168,82,178,53,2,110,178,53,71,137,178,53,120,164,178,53,149,191,178,53,158,218,178,53,147,245,178,53,116,16,179,53,64,43,179,53,248,69,179,53,156,96,179,53,44,123,179,53,167,149,179,53,14,176,179,53,97,202,179,53,160,228,179,53,203,254,179,53,225,24,180,53,227,50,180,53,209,
76,180,53,170,102,180,53,111,128,180,53,32,154,180,53,188,179,180,53,69,205,180,53,184,230,180,53,24,0,181,53,99,25,181,53,154,50,181,53,188,75,181,53,202,100,181,53,196,125,181,53,170,150,181,53,122,175,181,53,55,200,181,53,223,224,181,53,115,249,181,53,242,17,182,53,93,42,182,53,180,66,182,53,246,90,182,53,35,115,182,53,61,139,182,53,65,163,182,53,49,187,182,53,13,211,182,53,213,234,182,53,135,2,183,53,38,26,183,53,176,49,183,53,37,73,183,53,134,96,183,53,210,119,183,53,10,143,183,53,45,166,183,
53,60,189,183,53,54,212,183,53,27,235,183,53,236,1,184,53,169,24,184,53,81,47,184,53,228,69,184,53,99,92,184,53,205,114,184,53,35,137,184,53,100,159,184,53,144,181,184,53,168,203,184,53,171,225,184,53,153,247,184,53,115,13,185,53,57,35,185,53,233,56,185,53,133,78,185,53,12,100,185,53,127,121,185,53,221,142,185,53,38,164,185,53,91,185,185,53,123,206,185,53,134,227,185,53,125,248,185,53,95,13,186,53,44,34,186,53,228,54,186,53,136,75,186,53,23,96,186,53,145,116,186,53,247,136,186,53,72,157,186,53,132,
177,186,53,171,197,186,53,190,217,186,53,188,237,186,53,165,1,187,53,121,21,187,53,56,41,187,53,227,60,187,53,121,80,187,53,250,99,187,53,103,119,187,53,190,138,187,53,1,158,187,53,47,177,187,53,72,196,187,53,76,215,187,53,60,234,187,53,23,253,187,53,220,15,188,53,141,34,188,53,42,53,188,53,177,71,188,53,35,90,188,53,129,108,188,53,202,126,188,53,254,144,188,53,29,163,188,53,39,181,188,53,28,199,188,53,253,216,188,53,200,234,188,53,127,252,188,53,32,14,189,53,173,31,189,53,37,49,189,53,136,66,189,
53,214,83,189,53,15,101,189,53,52,118,189,53,67,135,189,53,62,152,189,53,35,169,189,53,244,185,189,53,175,202,189,53,86,219,189,53,232,235,189,53,101,252,189,53,204,12,190,53,31,29,190,53,93,45,190,53,134,61,190,53,154,77,190,53,153,93,190,53,131,109,190,53,88,125,190,53,24,141,190,53,196,156,190,53,90,172,190,53,219,187,190,53,71,203,190,53,158,218,190,53,224,233,190,53,13,249,190,53,38,8,191,53,41,23,191,53,23,38,191,53,240,52,191,53,180,67,191,53,99,82,191,53,253,96,191,53,130,111,191,53,242,125,
191,53,77,140,191,53,147,154,191,53,196,168,191,53,224,182,191,53,231,196,191,53,216,210,191,53,181,224,191,53,125,238,191,53,47,252,191,53,205,9,192,53,85,23,192,53,201,36,192,53,39,50,192,53,113,63,192,53,165,76,192,53,196,89,192,53,206,102,192,53,195,115,192,53,163,128,192,53,110,141,192,53,36,154,192,53,196,166,192,53,80,179,192,53,199,191,192,53,40,204,192,53,116,216,192,53,172,228,192,53,206,240,192,53,219,252,192,53,211,8,193,53,182,20,193,53,132,32,193,53,60,44,193,53,224,55,193,53,110,67,
193,53,232,78,193,53,76,90,193,53,155,101,193,53,213,112,193,53,250,123,193,53,10,135,193,53,4,146,193,53,234,156,193,53,186,167,193,53,118,178,193,53,28,189,193,53,173,199,193,53,41,210,193,53,144,220,193,53,225,230,193,53,30,241,193,53,70,251,193,53,88,5,194,53,85,15,194,53,61,25,194,53,16,35,194,53,206,44,194,53,118,54,194,53,10,64,194,53,136,73,194,53,242,82,194,53,70,92,194,53,133,101,194,53,175,110,194,53,195,119,194,53,195,128,194,53,173,137,194,53,131,146,194,53,67,155,194,53,238,163,194,
53,132,172,194,53,4,181,194,53,112,189,194,53,198,197,194,53,8,206,194,53,52,214,194,53,75,222,194,53,77,230,194,53,58,238,194,53,17,246,194,53,212,253,194,53,129,5,195,53,25,13,195,53,156,20,195,53,10,28,195,53,99,35,195,53,166,42,195,53,213,49,195,53,238,56,195,53,242,63,195,53,225,70,195,53,187,77,195,53,128,84,195,53,48,91,195,53,202,97,195,53,79,104,195,53,192,110,195,53,27,117,195,53,97,123,195,53,145,129,195,53,173,135,195,53,180,141,195,53,165,147,195,53,129,153,195,53,72,159,195,53,250,164,
195,53,151,170,195,53,31,176,195,53,146,181,195,53,239,186,195,53,56,192,195,53,107,197,195,53,137,202,195,53,146,207,195,53,134,212,195,53,100,217,195,53,46,222,195,53,227,226,195,53,130,231,195,53,12,236,195,53,129,240,195,53,225,244,195,53,44,249,195,53,98,253,195,53,131,1,196,53,142,5,196,53,133,9,196,53,102,13,196,53,51,17,196,53,234,20,196,53,140,24,196,53,25,28,196,53,145,31,196,53,244,34,196,53,65,38,196,53,122,41,196,53,158,44,196,53,172,47,196,53,165,50,196,53,138,53,196,53,89,56,196,53,
19,59,196,53,184,61,196,53,72,64,196,53,195,66,196,53,41,69,196,53,122,71,196,53,181,73,196,53,220,75,196,53,238,77,196,53,234,79,196,53,210,81,196,53,164,83,196,53,97,85,196,53,10,87,196,53,157,88,196,53,27,90,196,53,132,91,196,53,217,92,196,53,24,94,196,53,66,95,196,53,87,96,196,53,87,97,196,53,66,98,196,53,24,99,196,53,217,99,196,53,133,100,196,53,28,101,196,53,158,101,196,53,11,102,196,53,99,102,196,53,166,102,196,53,212,102,196,53,237,102,196,53,241,102,196,53,223,102,196,53,185,102,196,53,127,
102,196,53,47,102,196,53,202,101,196,53,80,101,196,53,193,100,196,53,29,100,196,53,100,99,196,53,150,98,196,53,180,97,196,53,188,96,196,53,176,95,196,53,142,94,196,53,88,93,196,53,12,92,196,53,172,90,196,53,55,89,196,53,172,87,196,53,13,86,196,53,89,84,196,53,144,82,196,53,178,80,196,53,192,78,196,53,184,76,196,53,156,74,196,53,106,72,196,53,36,70,196,53,201,67,196,53,89,65,196,53,212,62,196,53,58,60,196,53,139,57,196,53,200,54,196,53,239,51,196,53,2,49,196,53,0,46,196,53,233,42,196,53,189,39,196,
53,125,36,196,53,39,33,196,53,189,29,196,53,62,26,196,53,170,22,196,53,1,19,196,53,68,15,196,53,113,11,196,53,138,7,196,53,142,3,196,53,126,255,195,53,88,251,195,53,30,247,195,53,207,242,195,53,107,238,195,53,243,233,195,53,101,229,195,53,195,224,195,53,13,220,195,53,65,215,195,53,97,210,195,53,108,205,195,53,98,200,195,53,68,195,195,53,16,190,195,53,201,184,195,53,108,179,195,53,251,173,195,53,117,168,195,53,218,162,195,53,43,157,195,53,103,151,195,53,142,145,195,53,161,139,195,53,159,133,195,53,
136,127,195,53,93,121,195,53,29,115,195,53,200,108,195,53,95,102,195,53,225,95,195,53,79,89,195,53,168,82,195,53,236,75,195,53,28,69,195,53,55,62,195,53,61,55,195,53,47,48,195,53,13,41,195,53,214,33,195,53,138,26,195,53,41,19,195,53,181,11,195,53,43,4,195,53,141,252,194,53,219,244,194,53,20,237,194,53,56,229,194,53,72,221,194,53,68,213,194,53,43,205,194,53,253,196,194,53,187,188,194,53,101,180,194,53,250,171,194,53,122,163,194,53,230,154,194,53,62,146,194,53,129,137,194,53,176,128,194,53,202,119,
194,53,208,110,194,53,194,101,194,53,159,92,194,53,103,83,194,53,28,74,194,53,187,64,194,53,71,55,194,53,190,45,194,53,33,36,194,53,111,26,194,53,169,16,194,53,207,6,194,53,224,252,193,53,221,242,193,53,198,232,193,53,154,222,193,53,90,212,193,53,6,202,193,53,157,191,193,53,33,181,193,53,143,170,193,53,234,159,193,53,48,149,193,53,98,138,193,53,128,127,193,53,138,116,193,53,127,105,193,53,96,94,193,53,45,83,193,53,230,71,193,53,138,60,193,53,27,49,193,53,151,37,193,53,255,25,193,53,82,14,193,53,146,
2,193,53,189,246,192,53,213,234,192,53,216,222,192,53,199,210,192,53,162,198,192,53,104,186,192,53,27,174,192,53,186,161,192,53,68,149,192,53,186,136,192,53,29,124,192,53,107,111,192,53,165,98,192,53,203,85,192,53,221,72,192,53,219,59,192,53,197,46,192,53,155,33,192,53,93,20,192,53,11,7,192,53,165,249,191,53,43,236,191,53,157,222,191,53,251,208,191,53,70,195,191,53,124,181,191,53,158,167,191,53,172,153,191,53,167,139,191,53,141,125,191,53,96,111,191,53,31,97,191,53,201,82,191,53,96,68,191,53,228,
53,191,53,83,39,191,53,174,24,191,53,246,9,191,53,41,251,190,53,73,236,190,53,85,221,190,53,78,206,190,53,50,191,190,53,3,176,190,53,192,160,190,53,105,145,190,53,254,129,190,53,128,114,190,53,238,98,190,53,72,83,190,53,143,67,190,53,194,51,190,53,225,35,190,53,236,19,190,53,228,3,190,53,200,243,189,53,152,227,189,53,85,211,189,53,254,194,189,53,148,178,189,53,22,162,189,53,132,145,189,53,223,128,189,53,38,112,189,53,89,95,189,53,121,78,189,53,134,61,189,53,127,44,189,53,100,27,189,53,54,10,189,53,
244,248,188,53,159,231,188,53,54,214,188,53,186,196,188,53,42,179,188,53,135,161,188,53,208,143,188,53,6,126,188,53,41,108,188,53,56,90,188,53,52,72,188,53,28,54,188,53,241,35,188,53,178,17,188,53,96,255,187,53,251,236,187,53,130,218,187,53,247,199,187,53,87,181,187,53,165,162,187,53,223,143,187,53,6,125,187,53,25,106,187,53,26,87,187,53,7,68,187,53,224,48,187,53,167,29,187,53,90,10,187,53,250,246,186,53,135,227,186,53,1,208,186,53,103,188,186,53,187,168,186,53,251,148,186,53,40,129,186,53,66,109,
186,53,72,89,186,53,60,69,186,53,28,49,186,53,234,28,186,53,164,8,186,53,75,244,185,53,224,223,185,53,97,203,185,53,207,182,185,53,42,162,185,53,114,141,185,53,167,120,185,53,201,99,185,53,216,78,185,53,212,57,185,53,189,36,185,53,148,15,185,53,87,250,184,53,7,229,184,53,165,207,184,53,47,186,184,53,167,164,184,53,12,143,184,53,94,121,184,53,157,99,184,53,201,77,184,53,227,55,184,53,233,33,184,53,221,11,184,53,190,245,183,53,140,223,183,53,72,201,183,53,240,178,183,53,134,156,183,53,10,134,183,53,
122,111,183,53,216,88,183,53,35,66,183,53,92,43,183,53,130,20,183,53,149,253,182,53,149,230,182,53,131,207,182,53,94,184,182,53,39,161,182,53,221,137,182,53,129,114,182,53,18,91,182,53,144,67,182,53,252,43,182,53,85,20,182,53,156,252,181,53,208,228,181,53,242,204,181,53,1,181,181,53,254,156,181,53,233,132,181,53,193,108,181,53,134,84,181,53,57,60,181,53,218,35,181,53,104,11,181,53,228,242,180,53,78,218,180,53,165,193,180,53,234,168,180,53,29,144,180,53,61,119,180,53,75,94,180,53,71,69,180,53,48,44,
180,53,7,19,180,53,204,249,179,53,127,224,179,53,32,199,179,53,174,173,179,53,42,148,179,53,148,122,179,53,236,96,179,53,50,71,179,53,101,45,179,53,135,19,179,53,150,249,178,53,147,223,178,53,126,197,178,53,87,171,178,53,30,145,178,53,211,118,178,53,118,92,178,53,7,66,178,53,134,39,178,53,243,12,178,53,78,242,177,53,151,215,177,53,207,188,177,53,244,161,177,53,7,135,177,53,8,108,177,53,248,80,177,53,214,53,177,53,161,26,177,53,91,255,176,53,3,228,176,53,154,200,176,53,30,173,176,53,145,145,176,53,
242,117,176,53,65,90,176,53,126,62,176,53,170,34,176,53,196,6,176,53,204,234,175,53,195,206,175,53,168,178,175,53,123,150,175,53,61,122,175,53,237,93,175,53,139,65,175,53,24,37,175,53,148,8,175,53,253,235,174,53,85,207,174,53,156,178,174,53,209,149,174,53,245,120,174,53,7,92,174,53,7,63,174,53,246,33,174,53,212,4,174,53,160,231,173,53,91,202,173,53,4,173,173,53,156,143,173,53,35,114,173,53,152,84,173,53,252,54,173,53,79,25,173,53,144,251,172,53,192,221,172,53,223,191,172,53,236,161,172,53,232,131,
172,53,211,101,172,53,173,71,172,53,118,41,172,53,45,11,172,53,211,236,171,53,104,206,171,53,236,175,171,53,95,145,171,53,192,114,171,53,17,84,171,53,80,53,171,53,126,22,171,53,156,247,170,53,168,216,170,53,163,185,170,53,141,154,170,53,103,123,170,53,47,92,170,53,230,60,170,53,141,29,170,53,34,254,169,53,166,222,169,53,26,191,169,53,125,159,169,53,207,127,169,53,16,96,169,53],"i8",4,y.a+1259520);
Q([64,64,169,53,95,32,169,53,110,0,169,53,107,224,168,53,88,192,168,53,53,160,168,53,0,128,168,53,187,95,168,53,101,63,168,53,254,30,168,53,135,254,167,53,255,221,167,53,103,189,167,53,189,156,167,53,4,124,167,53,57,91,167,53,94,58,167,53,115,25,167,53,119,248,166,53,106,215,166,53,77,182,166,53,31,149,166,53,225,115,166,53,147,82,166,53,52,49,166,53,196,15,166,53,68,238,165,53,180,204,165,53,19,171,165,53,98,137,165,53,161,103,165,53,207,69,165,53,237,35,165,53,251,1,165,53,249,223,164,53,230,189,
164,53,195,155,164,53,143,121,164,53,76,87,164,53,248,52,164,53,148,18,164,53,32,240,163,53,156,205,163,53,8,171,163,53,99,136,163,53,175,101,163,53,234,66,163,53,22,32,163,53,49,253,162,53,60,218,162,53,56,183,162,53,35,148,162,53,254,112,162,53,202,77,162,53,133,42,162,53,49,7,162,53,204,227,161,53,88,192,161,53,212,156,161,53,64,121,161,53,156,85,161,53,232,49,161,53,37,14,161,53,81,234,160,53,110,198,160,53,124,162,160,53,121,126,160,53,103,90,160,53,69,54,160,53,19,18,160,53,210,237,159,53,129,
201,159,53,33,165,159,53,177,128,159,53,49,92,159,53,162,55,159,53,3,19,159,53,84,238,158,53,150,201,158,53,201,164,158,53,236,127,158,53,0,91,158,53,4,54,158,53,249,16,158,53,222,235,157,53,180,198,157,53,123,161,157,53,50,124,157,53,218,86,157,53,114,49,157,53,252,11,157,53,117,230,156,53,224,192,156,53,60,155,156,53,136,117,156,53,197,79,156,53,243,41,156,53,17,4,156,53,33,222,155,53,33,184,155,53,18,146,155,53,244,107,155,53,199,69,155,53,139,31,155,53,64,249,154,53,230,210,154,53,125,172,154,
53,5,134,154,53,125,95,154,53,231,56,154,53,66,18,154,53,142,235,153,53,203,196,153,53,250,157,153,53,25,119,153,53,42,80,153,53,43,41,153,53,30,2,153,53,2,219,152,53,216,179,152,53,158,140,152,53,86,101,152,53,255,61,152,53,154,22,152,53,37,239,151,53,162,199,151,53,17,160,151,53,113,120,151,53,194,80,151,53,5,41,151,53,57,1,151,53,94,217,150,53,117,177,150,53,126,137,150,53,120,97,150,53,99,57,150,53,64,17,150,53,15,233,149,53,207,192,149,53,129,152,149,53,36,112,149,53,185,71,149,53,64,31,149,
53,185,246,148,53,35,206,148,53,126,165,148,53,204,124,148,53,11,84,148,53,61,43,148,53,95,2,148,53,116,217,147,53,123,176,147,53,115,135,147,53,93,94,147,53,58,53,147,53,8,12,147,53,200,226,146,53,122,185,146,53,30,144,146,53,180,102,146,53,60,61,146,53,181,19,146,53,34,234,145,53,128,192,145,53,208,150,145,53,18,109,145,53,70,67,145,53,109,25,145,53,134,239,144,53,145,197,144,53,142,155,144,53,125,113,144,53,95,71,144,53,51,29,144,53,249,242,143,53,177,200,143,53,92,158,143,53,249,115,143,53,136,
73,143,53,10,31,143,53,127,244,142,53,229,201,142,53,62,159,142,53,138,116,142,53,200,73,142,53,249,30,142,53,28,244,141,53,49,201,141,53,57,158,141,53,52,115,141,53,34,72,141,53,2,29,141,53,212,241,140,53,154,198,140,53,82,155,140,53,252,111,140,53,154,68,140,53,42,25,140,53,173,237,139,53,34,194,139,53,139,150,139,53,230,106,139,53,52,63,139,53,118,19,139,53,169,231,138,53,208,187,138,53,234,143,138,53,247,99,138,53,246,55,138,53,233,11,138,53,207,223,137,53,168,179,137,53,115,135,137,53,50,91,
137,53,228,46,137,53,137,2,137,53,33,214,136,53,173,169,136,53,43,125,136,53,157,80,136,53,2,36,136,53,90,247,135,53,165,202,135,53,228,157,135,53,22,113,135,53,59,68,135,53,84,23,135,53,96,234,134,53,95,189,134,53,82,144,134,53,56,99,134,53,17,54,134,53,223,8,134,53,159,219,133,53,83,174,133,53,251,128,133,53,150,83,133,53,37,38,133,53,167,248,132,53,29,203,132,53,134,157,132,53,227,111,132,53,52,66,132,53,121,20,132,53,177,230,131,53,221,184,131,53,253,138,131,53,16,93,131,53,24,47,131,53,19,1,
131,53,2,211,130,53,229,164,130,53,187,118,130,53,134,72,130,53,68,26,130,53,247,235,129,53,157,189,129,53,56,143,129,53,198,96,129,53,73,50,129,53,191,3,129,53,42,213,128,53,137,166,128,53,219,119,128,53,34,73,128,53,94,26,128,53,26,215,127,53,97,121,127,53,144,27,127,53,168,189,126,53,168,95,126,53,146,1,126,53,99,163,125,53,30,69,125,53,193,230,124,53,76,136,124,53,193,41,124,53,30,203,123,53,101,108,123,53,148,13,123,53,172,174,122,53,173,79,122,53,151,240,121,53,107,145,121,53,39,50,121,53,205,
210,120,53,92,115,120,53,212,19,120,53,53,180,119,53,128,84,119,53,180,244,118,53,210,148,118,53,217,52,118,53,202,212,117,53,164,116,117,53,104,20,117,53,21,180,116,53,172,83,116,53,45,243,115,53,152,146,115,53,236,49,115,53,43,209,114,53,83,112,114,53,102,15,114,53,98,174,113,53,72,77,113,53,25,236,112,53,211,138,112,53,120,41,112,53,7,200,111,53,129,102,111,53,228,4,111,53,50,163,110,53,107,65,110,53,141,223,109,53,155,125,109,53,147,27,109,53,117,185,108,53,66,87,108,53,250,244,107,53,156,146,
107,53,42,48,107,53,162,205,106,53,5,107,106,53,82,8,106,53,139,165,105,53,175,66,105,53,190,223,104,53,183,124,104,53,156,25,104,53,108,182,103,53,40,83,103,53,206,239,102,53,96,140,102,53,221,40,102,53,70,197,101,53,154,97,101,53,217,253,100,53,4,154,100,53,27,54,100,53,29,210,99,53,11,110,99,53,229,9,99,53,170,165,98,53,91,65,98,53,248,220,97,53,129,120,97,53,245,19,97,53,86,175,96,53,163,74,96,53,220,229,95,53,0,129,95,53,17,28,95,53,15,183,94,53,248,81,94,53,206,236,93,53,144,135,93,53,62,34,
93,53,217,188,92,53,97,87,92,53,213,241,91,53,53,140,91,53,130,38,91,53,188,192,90,53,226,90,90,53,245,244,89,53,245,142,89,53,226,40,89,53,187,194,88,53,130,92,88,53,54,246,87,53,214,143,87,53,100,41,87,53,222,194,86,53,70,92,86,53,155,245,85,53,222,142,85,53,13,40,85,53,42,193,84,53,53,90,84,53,44,243,83,53,17,140,83,53,228,36,83,53,165,189,82,53,82,86,82,53,238,238,81,53,119,135,81,53,238,31,81,53,83,184,80,53,166,80,80,53,230,232,79,53,21,129,79,53,49,25,79,53,60,177,78,53,53,73,78,53,27,225,
77,53,240,120,77,53,179,16,77,53,101,168,76,53,4,64,76,53,146,215,75,53,15,111,75,53,121,6,75,53,211,157,74,53,27,53,74,53,81,204,73,53,118,99,73,53,138,250,72,53,141,145,72,53,126,40,72,53,94,191,71,53,45,86,71,53,235,236,70,53,152,131,70,53,51,26,70,53,190,176,69,53,56,71,69,53,161,221,68,53,250,115,68,53,65,10,68,53,120,160,67,53,158,54,67,53,180,204,66,53,185,98,66,53,173,248,65,53,145,142,65,53,101,36,65,53,40,186,64,53,218,79,64,53,125,229,63,53,15,123,63,53,145,16,63,53,3,166,62,53,101,59,
62,53,183,208,61,53,248,101,61,53,42,251,60,53,76,144,60,53,94,37,60,53,96,186,59,53,82,79,59,53,53,228,58,53,8,121,58,53,203,13,58,53,127,162,57,53,35,55,57,53,184,203,56,53,61,96,56,53,179,244,55,53,26,137,55,53,113,29,55,53,185,177,54,53,242,69,54,53,27,218,53,53,54,110,53,53,65,2,53,53,62,150,52,53,43,42,52,53,9,190,51,53,217,81,51,53,154,229,50,53,76,121,50,53,239,12,50,53,132,160,49,53,10,52,49,53,129,199,48,53,234,90,48,53,68,238,47,53,144,129,47,53,206,20,47,53,253,167,46,53,30,59,46,53,48,
206,45,53,53,97,45,53,43,244,44,53,19,135,44,53,237,25,44,53,185,172,43,53,119,63,43,53,39,210,42,53,201,100,42,53,94,247,41,53,228,137,41,53,93,28,41,53,201,174,40,53,38,65,40,53,118,211,39,53,185,101,39,53,238,247,38,53,21,138,38,53,47,28,38,53,60,174,37,53,60,64,37,53,46,210,36,53,19,100,36,53,235,245,35,53,182,135,35,53,115,25,35,53,36,171,34,53,200,60,34,53,95,206,33,53,233,95,33,53,102,241,32,53,214,130,32,53,58,20,32,53,145,165,31,53,219,54,31,53,25,200,30,53,74,89,30,53,111,234,29,53,136,
123,29,53,148,12,29,53,147,157,28,53,135,46,28,53,110,191,27,53,73,80,27,53,23,225,26,53,218,113,26,53,145,2,26,53,59,147,25,53,218,35,25,53,109,180,24,53,244,68,24,53,111,213,23,53,222,101,23,53,66,246,22,53,154,134,22,53,231,22,22,53,39,167,21,53,93,55,21,53,135,199,20,53,165,87,20,53,184,231,19,53,192,119,19,53,189,7,19,53,174,151,18,53,148,39,18,53,111,183,17,53,63,71,17,53,4,215,16,53,190,102,16,53,109,246,15,53,17,134,15,53,170,21,15,53,57,165,14,53,188,52,14,53,54,196,13,53,164,83,13,53,8,
227,12,53,97,114,12,53,176,1,12,53,244,144,11,53,46,32,11,53,94,175,10,53,131,62,10,53,158,205,9,53,175,92,9,53,182,235,8,53,179,122,8,53,165,9,8,53,142,152,7,53,109,39,7,53,65,182,6,53,12,69,6,53,205,211,5,53,133,98,5,53,50,241,4,53,214,127,4,53,113,14,4,53,1,157,3,53,137,43,3,53,7,186,2,53,123,72,2,53,230,214,1,53,72,101,1,53,160,243,0,53,239,129,0,53,53,16,0,53,228,60,255,52,76,89,254,52,162,117,253,52,229,145,252,52,23,174,251,52,55,202,250,52,70,230,249,52,67,2,249,52,46,30,248,52,8,58,247,52,
209,85,246,52,136,113,245,52,47,141,244,52,196,168,243,52,73,196,242,52,189,223,241,52,32,251,240,52,115,22,240,52,181,49,239,52,231,76,238,52,8,104,237,52,26,131,236,52,27,158,235,52,12,185,234,52,238,211,233,52,191,238,232,52,129,9,232,52,51,36,231,52,214,62,230,52,105,89,229,52,237,115,228,52,98,142,227,52,200,168,226,52,31,195,225,52,103,221,224,52,160,247,223,52,202,17,223,52,230,43,222,52,243,69,221,52,242,95,220,52,226,121,219,52,196,147,218,52,153,173,217,52,95,199,216,52,23,225,215,52,193,
250,214,52,94,20,214,52,237,45,213,52,110,71,212,52,226,96,211,52,73,122,210,52,162,147,209,52,239,172,208,52,46,198,207,52,96,223,206,52,134,248,205,52,159,17,205,52,171,42,204,52,170,67,203,52,157,92,202,52,132,117,201,52,95,142,200,52,45,167,199,52,239,191,198,52,166,216,197,52,80,241,196,52,239,9,196,52,130,34,195,52,10,59,194,52,134,83,193,52,246,107,192,52,92,132,191,52,182,156,190,52,5,181,189,52,73,205,188,52,131,229,187,52,177,253,186,52,213,21,186,52,239,45,185,52,254,69,184,52,2,94,183,
52,252,117,182,52,236,141,181,52,210,165,180,52,174,189,179,52,128,213,178,52,72,237,177,52,7,5,177,52,188,28,176,52,104,52,175,52,10,76,174,52,162,99,173,52,50,123,172,52,185,146,171,52,54,170,170,52,171,193,169,52,23,217,168,52,122,240,167,52,212,7,167,52,38,31,166,52,112,54,165,52,177,77,164,52,234,100,163,52,27,124,162,52,68,147,161,52,101,170,160,52,127,193,159,52,144,216,158,52,154,239,157,52,156,6,157,52,151,29,156,52,139,52,155,52,119,75,154,52,93,98,153,52,59,121,152,52,18,144,151,52,227,
166,150,52,173,189,149,52,112,212,148,52,44,235,147,52,227,1,147,52,146,24,146,52,60,47,145,52,224,69,144,52,125,92,143,52,20,115,142,52,166,137,141,52,50,160,140,52,184,182,139,52,57,205,138,52,180,227,137,52,42,250,136,52,155,16,136,52,6,39,135,52,109,61,134,52,206,83,133,52,43,106,132,52,130,128,131,52,214,150,130,52,36,173,129,52,110,195,128,52,104,179,127,52,235,223,125,52,102,12,124,52,216,56,122,52,67,101,120,52,166,145,118,52,1,190,116,52,85,234,114,52,162,22,113,52,231,66,111,52,38,111,109,
52,95,155,107,52,145,199,105,52,189,243,103,52,227,31,102,52,3,76,100,52,29,120,98,52,50,164,96,52,66,208,94,52,77,252,92,52,83,40,91,52,85,84,89,52,82,128,87,52,74,172,85,52,63,216,83,52,48,4,82,52,30,48,80,52,8,92,78,52,238,135,76,52,210,179,74,52,179,223,72,52,145,11,71,52,109,55,69,52,70,99,67,52,30,143,65,52,243,186,63,52,199,230,61,52,153,18,60,52,106,62,58,52,59,106,56,52,10,150,54,52,216,193,52,52,166,237,50,52,116,25,49,52,65,69,47,52,15,113,45,52,221,156,43,52,171,200,41,52,123,244,39,52,
75,32,38,52,28,76,36,52,238,119,34,52,194,163,32,52,151,207,30,52,111,251,28,52,72,39,27,52,36,83,25,52,2,127,23,52,226,170,21,52,198,214,19,52,172,2,18,52,150,46,16,52,131,90,14,52,116,134,12,52,105,178,10,52,97,222,8,52,94,10,7,52,95,54,5,52,101,98,3,52,112,142,1,52,255,116,255,51,40,205,251,51,92,37,248,51,155,125,244,51,230,213,240,51,61,46,237,51,160,134,233,51,15,223,229,51,140,55,226,51,22,144,222,51,174,232,218,51,84,65,215,51,9,154,211,51,205,242,207,51,160,75,204,51,131,164,200,51,118,253,
196,51,122,86,193,51,143,175,189,51,181,8,186,51,237,97,182,51,55,187,178,51,147,20,175,51,2,110,171,51,133,199,167,51,27,33,164,51,197,122,160,51,132,212,156,51,88,46,153,51,64,136,149,51,63,226,145,51,83,60,142,51,126,150,138,51,191,240,134,51,24,75,131,51,16,75,127,51,33,0,120,51,97,181,112,51,212,106,105,51,120,32,98,51,79,214,90,51,90,140,83,51,154,66,76,51,14,249,68,51,185,175,61,51,155,102,54,51,180,29,47,51,5,213,39,51,144,140,32,51,84,68,25,51,83,252,17,51,141,180,10,51,4,109,3,51,111,75,
248,50,82,189,233,50,177,47,219,50,143,162,204,50,237,21,190,50,205,137,175,50,48,254,160,50,23,115,146,50,133,232,131,50,245,188,106,50,242,169,77,50,5,152,48,50,48,135,19,50,239,238,236,49,187,209,178,49,150,109,113,49,147,120,250,48,208,249,16,47,199,48,214,176,172,59,95,177,24,173,169,177,241,185,227,177,46,226,14,178,41,230,43,178,231,232,72,178,100,234,101,178,79,117,129,178,200,244,143,178,157,115,158,178,204,241,172,178,82,111,187,178,48,236,201,178,98,104,216,178,232,227,230,178,192,94,245,
178,116,236,1,179,48,41,9,179,147,101,16,179,155,161,23,179,73,221,30,179,155,24,38,179,145,83,45,179,42,142,52,179,101,200,59,179,66,2,67,179,191,59,74,179,220,116,81,179,152,173,88,179,243,229,95,179,235,29,103,179,128,85,110,179,178,140,117,179,126,195,124,179,243,252,129,179,243,151,133,179,193,50,137,179,90,205,140,179,191,103,144,179,240,1,148,179,235,155,151,179,177,53,155,179,66,207,158,179,157,104,162,179,193,1,166,179,174,154,169,179,100,51,173,179,226,203,176,179,40,100,180,179,54,252,
183,179,12,148,187,179,168,43,191,179,11,195,194,179,52,90,198,179,34,241,201,179,215,135,205,179,80,30,209,179,142,180,212,179,144,74,216,179,86,224,219,179,223,117,223,179,44,11,227,179,59,160,230,179,13,53,234,179,161,201,237,179,247,93,241,179,14,242,244,179,229,133,248,179,126,25,252,179,214,172,255,179,247,159,1,180,99,105,3,180,175,50,5,180,217,251,6,180,227,196,8,180,204,141,10,180,148,86,12,180,58,31,14,180,191,231,15,180,34,176,17,180,98,120,19,180,129,64,21,180,126,8,23,180,88,208,24,180,
15,152,26,180,163,95,28,180,21,39,30,180,99,238,31,180,141,181,33,180,148,124,35,180,119,67,37,180,55,10,39,180,210,208,40,180,72,151,42,180,154,93,44,180,200,35,46,180,208,233,47,180,180,175,49,180,114,117,51,180,10,59,53,180,125,0,55,180,203,197,56,180,242,138,58,180,243,79,60,180,205,20,62,180,129,217,63,180,15,158,65,180,117,98,67,180,180,38,69,180,204,234,70,180,188,174,72,180,133,114,74,180,38,54,76,180,159,249,77,180,240,188,79,180,24,128,81,180,24,67,83,180,239,5,85,180,157,200,86,180,34,
139,88,180,125,77,90,180,175,15,92,180,184,209,93,180,150,147,95,180,75,85,97,180,213,22,99,180,53,216,100,180,107,153,102,180,117,90,104,180,85,27,106,180,10,220,107,180,147,156,109,180,241,92,111,180,35,29,113,180,41,221,114,180,4,157,116,180,178,92,118,180,52,28,120,180,137,219,121,180,177,154,123,180,173,89,125,180,123,24,127,180,142,107,128,180,200,74,129,180,235,41,130,180,247,8,131,180,236,231,131,180,202,198,132,180,145,165,133,180,65,132,134,180,217,98,135,180,90,65,136,180,195,31,137,180,
21,254,137,180,79,220,138,180,113,186,139,180,123,152,140,180,109,118,141,180,72,84,142,180,10,50,143,180,179,15,144,180,69,237,144,180,190,202,145,180,30,168,146,180,102,133,147,180,150,98,148,180,172,63,149,180,170,28,150,180,142,249,150,180,90,214,151,180,12,179,152,180,166,143,153,180,37,108,154,180,140,72,155,180,217,36,156,180,13,1,157,180,38,221,157,180,38,185,158,180,13,149,159,180,217,112,160,180,139,76,161,180,35,40,162,180,161,3,163,180,5,223,163,180,78,186,164,180,125,149,165,180,146,
112,166,180,139,75,167,180,107,38,168,180,47,1,169,180,216,219,169,180,102,182,170,180,218,144,171,180,50,107,172,180,111,69,173,180,145,31,174,180,151,249,174,180,129,211,175,180,81,173,176,180,4,135,177,180,156,96,178,180,24,58,179,180,119,19,180,180,187,236,180,180,227,197,181,180,239,158,182,180,222,119,183,180,177,80,184,180,104,41,185,180,2,2,186,180,127,218,186,180,224,178,187,180,36,139,188,180,75,99,189,180,85,59,190,180,66,19,191,180,18,235,191,180,196,194,192,180,90,154,193,180,210,113,
194,180,44,73,195,180,105,32,196,180,136,247,196,180,138,206,197,180,109,165,198,180,51,124,199,180,219,82,200,180,101,41,201,180,208,255,201,180,30,214,202,180,77,172,203,180,93,130,204,180,80,88,205,180,35,46,206,180,216,3,207,180,110,217,207,180,229,174,208,180,62,132,209,180,119,89,210,180,146,46,211,180,141,3,212,180,105,216,212,180,37,173,213,180,194,129,214,180,64,86,215,180,158,42,216,180,220,254,216,180,251,210,217,180,249,166,218,180,216,122,219,180,151,78,220,180,54,34,221,180,180,245,
221,180,19,201,222,180,80,156,223,180,110,111,224,180,107,66,225,180,71,21,226,180,3,232,226,180,158,186,227,180,24,141,228,180,113,95,229,180,170,49,230,180,193,3,231,180,183,213,231,180,139,167,232,180,63,121,233,180,209,74,234,180,65,28,235,180,144,237,235,180,189,190,236,180,200,143,237,180,178,96,238,180,122,49,239,180,31,2,240,180,163,210,240,180,4,163,241,180,68,115,242,180,97,67,243,180,91,19,244,180,51,227,244,180,233,178,245,180,123,130,246,180,235,81,247,180,57,33,248,180,99,240,248,180,
106,191,249,180,79,142,250,180,16,93,251,180,174,43,252,180,41,250,252,180,128,200,253,180,180,150,254,180,196,100,255,180,89,25,0,181,61,128,0,181,16,231,0,181,208,77,1,181,127,180,1,181,28,27,2,181,166,129,2,181,31,232,2,181,133,78,3,181,218,180,3,181,28,27,4,181,76,129,4,181,105,231,4,181,116,77,5,181,109,179,5,181,84,25,6,181,40,127,6,181,233,228,6,181,152,74,7,181,52,176,7,181,190,21,8,181,53,123,8,181,154,224,8,181,236,69,9,181,43,171,9,181,87,16,10,181,112,117,10,181,119,218,10,181,106,63,
11,181,75,164,11,181,24,9,12,181,211,109,12,181,122,210,12,181,14,55,13,181,144,155,13,181,254,255,13,181,88,100,14,181,160,200,14,181,212,44,15,181,245,144,15,181,2,245,15,181,252,88,16,181,227,188,16,181,182,32,17,181,117,132,17,181,33,232,17,181,185,75,18,181,62,175,18,181,175,18,19,181,12,118,19,181,85,217,19,181,139,60,20,181,173,159,20,181,187,2,21,181,181,101,21,181,155,200,21,181,108,43,22,181,42,142,22,181,212,240,22,181,106,83,23,181,235,181,23,181,89,24,24,181,178,122,24,181,247,220,24,
181,39,63,25,181,67,161,25,181,75,3,26,181,63,101,26,181,30,199,26,181,232,40,27,181,158,138,27,181,63,236,27,181,204,77,28,181,68,175,28,181,167,16,29,181,246,113,29,181,48,211,29,181,85,52,30,181,101,149,30,181,97,246,30,181,71,87,31,181,25,184,31,181,213,24,32,181,125,121,32,181,15,218,32,181,141,58,33,181,245,154,33,181,72,251,33,181,134,91,34,181,174,187,34,181,194,27,35,181,192,123,35,181,168,219,35,181,124,59,36,181,58,155,36,181,226,250,36,181,117,90,37,181,242,185,37,181,90,25,38,181,172,
120,38,181,233,215,38,181,16,55,39,181,33,150,39,181,28,245,39,181,2,84,40,181,209,178,40,181,139,17,41,181,47,112,41,181,189,206,41,181,53,45,42,181,151,139,42,181,227,233,42,181,25,72,43,181,57,166,43,181,67,4,44,181,54,98,44,181,20,192,44,181,219,29,45,181,139,123,45,181,38,217,45,181,170,54,46,181,24,148,46,181,111,241,46,181,175,78,47,181,218,171,47,181,237,8,48,181,234,101,48,181,209,194,48,181,161,31,49,181,90,124,49,181,252,216,49,181,136,53,50,181,253,145,50,181,91,238,50,181,162,74,51,181,
210,166,51,181,236,2,52,181,238,94,52,181,218,186,52,181,174,22,53,181,107,114,53,181,17,206,53,181,161,41,54,181,24,133,54,181,121,224,54,181,195,59,55,181,245,150,55,181,16,242,55,181,19,77,56,181,255,167,56,181,212,2,57,181,145,93,57,181,55,184,57,181,197,18,58,181,60,109,58,181,155,199,58,181,227,33,59,181,19,124,59,181,43,214,59,181,43,48,60,181,20,138,60,181,229,227,60,181,158,61,61,181,63,151,61,181,201,240,61,181,58,74,62,181,147,163,62,181,213,252,62,181,254,85,63,181,16,175,63,181,9,8,64,
181,234,96,64,181,179,185,64,181,100,18,65,181,253,106,65,181,125,195,65,181,229,27,66,181,53,116,66,181,108,204,66,181,139,36,67,181,146,124,67,181,128,212,67,181,86,44,68,181,19,132,68,181,183,219,68,181,67,51,69,181,183,138,69,181,17,226,69,181,83,57,70,181,125,144,70,181,141,231,70,181,133,62,71,181,100,149,71,181,42,236,71,181,215,66,72,181,108,153,72,181,231,239,72,181,73,70,73,181,147,156,73,181,195,242,73,181,218,72,74,181,217,158,74,181,190,244,74,181,137,74,75,181,60,160,75,181,214,245,
75,181,86,75,76,181,189,160,76,181,10,246,76,181,62,75,77,181,89,160,77,181,91,245,77,181,67,74,78,181,17,159,78,181,198,243,78,181,97,72,79,181,227,156,79,181,75,241,79,181,154,69,80,181,207,153,80,181,234,237,80,181,235,65,81,181,211,149,81,181,161,233,81,181,85,61,82,181,239,144,82,181,111,228,82,181,214,55,83,181,34,139,83,181,85,222,83,181,109,49,84,181,107,132,84,181,80,215,84,181,26,42,85,181,202,124,85,181,96,207,85,181,220,33,86,181,61,116,86,181,132,198,86,181,177,24,87,181,196,106,87,181,
188,188,87,181,154,14,88,181,94,96,88,181,7,178,88,181,149,3,89,181,9,85,89,181,99,166,89,181,162,247,89,181,198,72,90,181,208,153,90,181,191,234,90,181,148,59,91,181,78,140,91,181,237,220,91,181,113,45,92,181,218,125,92,181,41,206,92,181,93,30,93,181,118,110,93,181,116,190,93,181,87,14,94,181,31,94,94,181,204,173,94,181,94,253,94,181,213,76,95,181,49,156,95,181,114,235,95,181,152,58,96,181,162,137,96,181,146,216,96,181,102,39,97,181,31,118,97,181,188,196,97,181,63,19,98,181,165,97,98,181,241,175,
98,181,33,254,98,181,54,76,99,181,47,154,99,181,13,232,99,181,207,53,100,181,118,131,100,181,1,209,100,181,113,30,101,181,196,107,101,181,253,184,101,181,25,6,102,181,26,83,102,181,255,159,102,181,201,236,102,181,118,57,103,181,8,134,103,181,126,210,103,181,216,30,104,181,22,107,104,181,56,183,104,181,63,3,105,181,41,79,105,181,247,154,105,181,169,230,105,181,64,50,106,181,186,125,106,181,24,201,106,181,89,20,107,181,127,95,107,181,136,170,107,181,118,245,107,181,70,64,108,181,251,138,108,181,147,
213,108,181,15,32,109,181,111,106,109,181,178,180,109,181,217,254,109,181,228,72,110,181,210,146,110,181,163,220,110,181,88,38,111,181,240,111,111,181,108,185,111,181,203,2,112,181,14,76,112,181,52,149,112,181,61,222,112,181,41,39,113,181,249,111,113,181,172,184,113,181,67,1,114,181,188,73,114,181,25,146,114,181,88,218,114,181,123,34,115,181,129,106,115,181,106,178,115,181,54,250,115,181,230,65,116,181,120,137,116,181,237,208,116,181,69,24,117,181,128,95,117,181,157,166,117,181,158,237,117,181,129,
52,118,181,72,123,118,181,241,193,118,181,125,8,119,181,235,78,119,181,61,149,119,181,113,219,119,181,135,33,120,181,128,103,120,181,92,173,120,181,27,243,120,181,188,56,121,181,63,126,121,181,166,195,121,181,238,8,122,181,25,78,122,181,39,147,122,181,23,216,122,181,233,28,123,181,158,97,123,181,53,166,123,181,174,234,123,181,10,47,124,181,72,115,124,181,104,183,124,181,106,251,124,181,79,63,125,181,22,131,125,181,191,198,125,181,74,10,126,181,183,77,126,181,6,145,126,181,56,212,126,181,75,23,127,
181,64,90,127,181,24,157,127,181,209,223,127,181,54,17,128,181,117,50,128,181,164,83,128,181,197,116,128,181,214,149,128,181,217,182,128,181,204,215,128,181,176,248,128,181,133,25,129,181,75,58,129,181,2,91,129,181,169,123,129,181,66,156,129,181,203,188,129,181,69,221,129,181,176,253,129,181,12,30,130,181,88,62,130,181,149,94,130,181,195,126,130,181,226,158,130,181,242,190,130,181,242,222,130,181,227,254,130,181,196,30,131,181,151,62,131,181,90,94,131,181,13,126,131,181,178,157,131,181,71,189,131,
181,204,220,131,181,66,252,131,181,169,27,132,181,1,59,132,181,73,90,132,181,129,121,132,181,171,152,132,181,196,183,132,181,207,214,132,181,202,245,132,181,181,20,133,181,145,51,133,181,93,82,133,181,26,113,133,181,200,143,133,181,102,174,133,181,244,204,133,181,115,235,133,181,226,9,134,181,66,40,134,181,146,70,134,181,211,100,134,181,4,131,134,181,37,161,134,181,55,191,134,181,57,221,134,181,43,251,134,181,14,25,135,181,225,54,135,181,165,84,135,181,89,114,135,181,253,143,135,181,146,173,135,181,
22,203,135,181,140,232,135,181,241,5,136,181,71,35,136,181,140,64,136,181,195,93,136,181,233,122,136,181,0,152,136,181,7,181,136,181,254,209,136,181,229,238,136,181,188,11,137,181,132,40,137,181,60,69,137,181,228,97,137,181,124,126,137,181,4,155,137,181,124,183,137,181,229,211,137,181,62,240,137,181,134,12,138,181,191,40,138,181,232,68,138,181,1,97,138,181,10,125,138,181,3,153,138,181,237,180,138,181,198,208,138,181,143,236,138,181,72,8,139,181,242,35,139,181,139,63,139,181,20,91,139,181,142,118,
139,181,247,145,139,181,80,173,139,181,153,200,139,181,211,227,139,181,252,254,139,181,21,26,140,181,30,53,140,181,23,80,140,181,255,106,140,181,216,133,140,181,161,160,140,181,89,187,140,181,1,214,140,181,154,240,140,181,34,11,141,181,154,37,141,181,1,64,141,181,89,90,141,181,160,116,141,181,215,142,141,181,255,168,141,181,21,195,141,181,28,221,141,181,18,247,141,181,248,16,142,181,206,42,142,181,148,68,142,181,74,94,142,181,239,119,142,181,132,145,142,181,8,171,142,181,125,196,142,181,225,221,142,
181,52,247,142,181,120,16,143,181,171,41,143,181,206,66,143,181,224,91,143,181,226,116,143,181,212,141,143,181,181,166,143,181,134,191,143,181,71,216,143,181,247,240,143,181,151,9,144,181,39,34,144,181,166,58,144,181,21,83,144,181,115,107,144,181,193,131,144,181,254,155,144,181,43,180,144,181,72,204,144,181,84,228,144,181,80,252,144,181,59,20,145,181,21,44,145,181,224,67,145,181,153,91,145,181,66,115,145,181,219,138,145,181,99,162,145,181,219,185,145,181,66,209,145,181,153,232,145,181,223,255,145,
181,20,23,146,181,57,46,146,181,78,69,146,181,81,92,146,181,69,115,146,181,39,138,146,181,249,160,146,181,187,183,146,181,108,206,146,181,12,229,146,181,155,251,146,181,26,18,147,181,137,40,147,181,231,62,147,181,52,85,147,181,112,107,147,181,156,129,147,181,183,151,147,181,193,173,147,181,187,195,147,181,164,217,147,181,124,239,147,181,68,5,148,181,251,26,148,181,161,48,148,181,55,70,148,181,188,91,148,181,48,113,148,181,147,134,148,181,230,155,148,181,39,177,148,181,88,198,148,181,121,219,148,181,
136,240,148,181,135,5,149,181,117,26,149,181,82,47,149,181,31,68,149,181,218,88,149,181,133,109,149,181,31,130,149,181,168,150,149,181,33,171,149,181,136,191,149,181,223,211,149,181,37,232,149,181,90,252,149,181,126,16,150,181,145,36,150,181,148,56,150,181,133,76,150,181,102,96,150,181,54,116,150,181,245,135,150,181,163,155,150,181,64,175,150,181,204,194,150,181,72,214,150,181,178,233,150,181,11,253,150,181,84,16,151,181,140,35,151,181,178,54,151,181,200,73,151,181,205,92,151,181,193,111,151,181,
164,130,151,181,118,149,151,181,55,168,151,181,231,186,151,181,134,205,151,181,20,224,151,181,145,242,151,181,253,4,152,181,88,23,152,181,162,41,152,181,219,59,152,181,3,78,152,181,26,96,152,181,32,114,152,181,21,132,152,181,249,149,152,181,204,167,152,181,142,185,152,181,63,203,152,181,223,220,152,181,110,238,152,181,235,255,152,181,88,17,153,181,179,34,153,181,254,51,153,181,55,69,153,181,96,86,153,181,119,103,153,181,125,120,153,181,114,137,153,181,86,154,153,181,41,171,153,181,235,187,153,181,
155,204,153,181,59,221,153,181,201,237,153,181,70,254,153,181,178,14,154,181,13,31,154,181,87,47,154,181,144,63,154,181,184,79,154,181,206,95,154,181,211,111,154,181,199,127,154,181,170,143,154,181,124,159,154,181,61,175,154,181,236,190,154,181,138,206,154,181,23,222,154,181,147,237,154,181,254,252,154,181,88,12,155,181,160,27,155,181,215,42,155,181,253,57,155,181,18,73,155,181,21,88,155,181,7,103,155,181,233,117,155,181,184,132,155,181,119,147,155,181,36,162,155,181,193,176,155,181,75,191,155,181,
197,205,155,181,46,220,155,181,133,234,155,181,203,248,155,181,255,6,156,181,35,21,156,181,53,35,156,181,54,49,156,181,38,63,156,181,4,77,156,181,209,90,156,181,141,104,156,181,56,118,156,181,209,131,156,181,89,145,156,181,208,158,156,181,53,172,156,181,137,185,156,181,204,198,156,181,254,211,156,181,30,225,156,181,45,238,156,181,43,251,156,181,23,8,157,181,242,20,157,181,188,33,157,181,116,46,157,181,27,59,157,181,177,71,157,181,54,84,157,181,169,96,157,181,11,109,157,181,91,121,157,181,154,133,
157,181,200,145,157,181,229,157,157,181,240,169,157,181,234,181,157,181,210,193,157,181,169,205,157,181,111,217,157,181,35,229,157,181,198,240,157,181,88,252,157,181,216,7,158,181,71,19,158,181,165,30,158,181,241,41,158,181,44,53,158,181,86,64,158,181,110,75,158,181,117,86,158,181,106,97,158,181,78,108,158,181,33,119,158,181,226,129,158,181,146,140,158,181,49,151,158,181,190,161,158,181,58,172,158,181,164,182,158,181,253,192,158,181,69,203,158,181,123,213,158,181,160,223,158,181,179,233,158,181,181,
243,158,181,166,253,158,181,133,7,159,181,83,17,159,181,15,27,159,181,186,36,159,181,84,46,159,181,220,55,159,181,83,65,159,181,184,74,159,181,13,84,159,181,79,93,159,181,128,102,159,181,160,111,159,181,175,120,159,181,171,129,159,181,151,138,159,181,113,147,159,181,58,156,159,181,241,164,159,181,151,173,159,181,44,182,159,181,175,190,159,181,32,199,159,181,128,207,159,181,207,215,159,181,13,224,159,181,57,232,159,181,83,240,159,181,92,248,159,181,84,0,160,181,58,8,160,181,15,16,160,181,210,23,160,
181,132,31,160,181,37,39,160,181,180,46,160,181,50,54,160,181,158,61,160,181,249,68,160,181,66,76,160,181,122,83,160,181,161,90,160,181,182,97,160,181,185,104,160,181,172,111,160,181,140,118,160,181,92,125,160,181,26,132,160,181,198,138,160,181,97,145,160,181,235,151,160,181,99,158,160,181,202,164,160,181,31,171,160,181,99,177,160,181,150,183,160,181,183,189,160,181,199,195,160,181,197,201,160,181,178,207,160,181,141,213,160,181,87,219,160,181,15,225,160,181,183,230,160,181,76,236,160,181,208,241,
160,181,67,247,160,181,165,252,160,181,245,1,161,181,51,7,161,181,96,12,161,181,124,17,161,181,134,22,161,181,127,27,161,181,102,32,161,181,60,37,161,181,1,42,161,181,180,46,161,181,86,51,161,181,230,55,161,181,101,60,161,181,210,64,161,181,47,69,161,181,121,73,161,181,178,77,161,181,218,81,161,181,241,85,161,181,246,89,161,181,233,93,161,181,203,97,161,181,156,101,161,181,92,105,161,181,10,109,161,181,166,112,161,181,49,116,161,181,171,119,161,181,19,123,161,181,106,126,161,181,176,129,161,181,228,
132,161,181,7,136,161,181,24,139,161,181,24,142,161,181,7,145,161,181,228,147,161,181,176,150,161,181,106,153,161,181,19,156,161,181,171,158,161,181,49,161,161,181,166,163,161,181,10,166,161,181,92,168,161,181,157,170,161,181,204,172,161,181,234,174,161,181,247,176,161,181,243,178,161,181,220,180,161,181,181,182,161,181,124,184,161,181,50,186,161,181,215,187,161,181,106,189,161,181,236,190,161,181,92,192,161,181,187,193,161,181,9,195,161,181,70,196,161,181,113,197,161,181,139,198,161,181,147,199,
161,181,138,200,161,181,112,201,161,181,68,202,161,181,8,203,161,181,185,203,161,181,90,204,161,181,233,204,161,181,103,205,161,181,211,205,161,181,47,206,161,181,120,206,161,181,177,206,161,181,216,206,161,181,238,206,161,181,243,206,161,181,231,206,161,181,201,206,161,181,154,206,161,181,89,206,161,181,7,206,161,181,164,205,161,181,48,205,161,181,170,204,161,181,20,204,161,181,107,203,161,181,178,202,161,181,231,201,161,181,12,201,161,181,30,200,161,181,32,199,161,181,16,198,161,181,239,196,161,
181,189,195,161,181,122,194,161,181,37,193,161,181,191,191,161,181,72,190,161,181,192,188,161,181,39,187,161,181,124,185,161,181,192,183,161,181,243,181,161,181,20,180,161,181,37,178,161,181,36,176,161,181,18,174,161,181,239,171,161,181,186,169,161,181,117,167,161,181,30,165,161,181,182,162,161,181,61,160,161,181,178,157,161,181,23,155,161,181,106,152,161,181,173,149,161,181,222,146,161,181,253,143,161,181,12,141,161,181,10,138,161,181,246,134,161,181,210,131,161,181,156,128,161,181,85,125,161,181,
253,121,161,181,148,118,161,181,25,115,161,181,142,111,161,181,241,107,161,181,68,104,161,181,133,100,161,181,181,96,161,181,212,92,161,181,226,88,161,181,223,84,161,181,203,80,161,181,165,76,161,181,111,72,161,181,40,68,161,181,207,63,161,181,102,59,161,181,235,54,161,181,96,50,161,181,195,45,161,181,21,41,161,181,87,36,161,181,135,31,161,181,166,26,161,181,180,21,161,181,177,16,161,181,158,11,161,181,121,6,161,181,67,1,161,181,252,251,160,181,164,246,160,181,59,241,160,181,194,235,160,181,55,230,
160,181,155,224,160,181,238,218,160,181,49,213,160,181,98,207,160,181,131,201,160,181,146,195,160,181,145,189,160,181,126,183,160,181,91,177,160,181,39,171,160,181,226,164,160,181,140,158,160,181,37,152,160,181,173,145,160,181,36,139,160,181,138,132,160,181,224,125,160,181,36,119,160,181,88,112,160,181,123,105,160,181,141,98,160,181,142,91,160,181,126,84,160,181,94,77,160,181,44,70,160,181,234,62,160,181,151,55,160,181,51,48,160,181,190,40,160,181,57,33,160,181,162,25,160,181,251,17,160,181,67,10,
160,181,122,2,160,181,161,250,159,181,182,242,159,181,187,234,159,181,175,226,159,181,147,218,159,181,101,210,159,181,39,202,159,181,216,193,159,181,121,185,159,181,9,177,159,181,136,168,159,181,246,159,159,181,83,151,159,181,160,142,159,181,220,133,159,181,8,125,159,181,34,116,159,181,45,107,159,181,38,98,159,181,15,89,159,181,231,79,159,181,174,70,159,181,101,61,159,181,11,52,159,181,161,42,159,181,37,33,159,181,154,23,159,181,253,13,159,181,80,4,159,181,147,250,158,181,197,240,158,181,230,230,
158,181,247,220,158,181,247,210,158,181,230,200,158,181,197,190,158,181,148,180,158,181,81,170,158,181,255,159,158,181,156,149,158,181,40,139,158,181,164,128,158,181,15,118,158,181,106,107,158,181,180,96,158,181,238,85,158,181,23,75,158,181,48,64,158,181,56,53,158,181,48,42,158,181,23,31,158,181,238,19,158,181,181,8,158,181,107,253,157,181,17,242,157,181,166,230,157,181,43,219,157,181,159,207,157,181,3,196,157,181,87,184,157,181,154,172,157,181,205,160,157,181,240,148,157,181,2,137,157,181,4,125,
157,181,245,112,157,181,215,100,157,181,167,88,157,181,104,76,157,181,24,64,157,181,184,51,157,181,72,39,157,181,199,26,157,181,54,14,157,181,149,1,157,181,227,244,156,181,34,232,156,181,80,219,156,181,109,206,156,181,123,193,156,181,120,180,156,181,101,167,156,181,66,154,156,181,15,141,156,181,204,127,156,181,120,114,156,181,20,101,156,181,160,87,156,181,28,74,156,181,135,60,156,181,227,46,156,181,46,33,156,181,106,19,156,181,149,5,156,181,176,247,155,181,187,233,155,181,182,219,155,181,160,205,
155,181,123,191,155,181,70,177,155,181,0,163,155,181,171,148,155,181,69,134,155,181,207,119,155,181,74,105,155,181,180,90,155,181,15,76,155,181,89,61,155,181,147,46,155,181,190,31,155,181,216,16,155,181,227,1,155,181,221,242,154,181,200,227,154,181,162,212,154,181,109,197,154,181,40,182,154,181,211,166,154,181,110,151,154,181,249,135,154,181,116,120,154,181,223,104,154,181,59,89,154,181,134,73,154,181,194,57,154,181,238,41,154,181,10,26,154,181,22,10,154,181,19,250,153,181,255,233,153,181,220,217,
153,181,169,201,153,181,103,185,153,181,20,169,153,181,178,152,153,181,64,136,153,181,190,119,153,181,45,103,153,181,140,86,153,181,219,69,153,181,26,53,153,181,74,36,153,181,106,19,153,181,123,2,153,181,123,241,152,181,108,224,152,181,78,207,152,181,32,190,152,181,226,172,152,181,149,155,152,181,56,138,152,181,203,120,152,181,79,103,152,181,195,85,152,181,40,68,152,181,125,50,152,181,194,32,152,181,248,14,152,181,31,253,151,181,54,235,151,181,61,217,151,181,53,199,151,181,30,181,151,181,247,162,
151,181,193,144,151,181,123,126,151,181,38,108,151,181,193,89,151,181,77,71,151,181,201,52,151,181,54,34,151,181,148,15,151,181,226,252,150,181,33,234,150,181,80,215,150,181,113,196,150,181,129,177,150,181,131,158,150,181,117,139,150,181,88,120,150,181,43,101,150,181,240,81,150,181,165,62,150,181,74,43,150,181,225,23,150,181,104,4,150,181,224,240,149,181,73,221,149,181,162,201,149,181,237,181,149,181,40,162,149,181,84,142,149,181,113,122,149,181,126,102,149,181,125,82,149,181,108,62,149,181,76,42,
149,181,29,22,149,181,223,1,149,181,146,237,148,181,54,217,148,181,203,196,148,181,80,176,148,181,199,155,148,181,47,135,148,181,135,114,148,181,209,93,148,181,11,73,148,181,55,52,148,181,83,31,148,181,97,10,148,181,95,245,147,181,79,224,147,181,48,203,147,181,2,182,147,181,196,160,147,181,120,139,147,181,29,118,147,181,179,96,147,181,59,75,147,181,179,53,147,181,29,32,147,181,119,10,147,181,195,244,146,181,0,223,146,181,47,201,146,181,78,179,146,181,95,157,146,181,97,135,146,181,84,113,146,181,56,
91,146,181,14,69,146,181,213,46,146,181,141,24,146,181,55,2,146,181,210,235,145,181,94,213,145,181,219,190,145,181,74,168,145,181,170,145,145,181,252,122,145,181,63,100,145,181,115,77,145,181,153,54,145,181,176,31,145,181,185,8,145,181,179,241,144,181,158,218,144,181,123,195,144,181,74,172,144,181,10,149,144,181,187,125,144,181,94,102,144,181,242,78,144,181,120,55,144,181,240,31,144,181,89,8,144,181,180,240,143,181,0,217,143,181,62,193,143,181,109,169,143,181,142,145,143,181,161,121,143,181,165,97,
143,181,155,73,143,181,131,49,143,181,92,25,143,181,40,1,143,181,228,232,142,181,147,208,142,181,51,184,142,181,197,159,142,181,73,135,142,181,190,110,142,181,38,86,142,181,127,61,142,181,202,36,142,181,6,12,142,181,53,243,141,181,85,218,141,181,103,193,141,181,108,168,141,181,98,143,141,181,74,118,141,181,35,93,141,181,239,67,141,181,173,42,141,181,92,17,141,181,254,247,140,181,146,222,140,181,23,197,140,181,143,171,140,181,248,145,140,181,84,120,140,181,161,94,140,181,225,68,140,181,19,43,140,181,
55,17,140,181,76,247,139,181,84,221,139,181,79,195,139,181,59,169,139,181,25,143,139,181,234,116,139,181,173,90,139,181,97,64,139,181,9,38,139,181,162,11,139,181,45,241,138,181,171,214,138,181,27,188,138,181,125,161,138,181,210,134,138,181,25,108,138,181,82,81,138,181,125,54,138,181,155,27,138,181,171,0,138,181,174,229,137,181,163,202,137,181,138,175,137,181,99,148,137,181,47,121,137,181,238,93,137,181,159,66,137,181,66,39,137,181,216,11,137,181,96,240,136,181,219,212,136,181,72,185,136,181,168,157,
136,181,250,129,136,181,63,102,136,181,119,74,136,181,161,46,136,181,189,18,136,181,205,246,135,181,206,218,135,181,195,190,135,181,170,162,135,181,132,134,135,181,80,106,135,181,15,78,135,181,193,49,135,181,101,21,135,181,253,248,134,181,135,220,134,181,3,192,134,181,115,163,134,181,213,134,134,181,42,106,134,181,114,77,134,181,173,48,134,181,218,19,134,181,251,246,133,181,14,218,133,181,20,189,133,181,13,160,133,181,249,130,133,181,216,101,133,181,170,72,133,181,111,43,133,181,38,14,133,181,209,
240,132,181,111,211,132,181,255,181,132,181,131,152,132,181,250,122,132,181,100,93,132,181,193,63,132,181,17,34,132,181,84,4,132,181,138,230,131,181,179,200,131,181,208,170,131,181,223,140,131,181,226,110,131,181,216,80,131,181,193,50,131,181,157,20,131,181,109,246,130,181,48,216,130,181,230,185,130,181,143,155,130,181,44,125,130,181,188,94,130,181,63,64,130,181,182,33,130,181,32,3,130,181,125,228,129,181,206,197,129,181,18,167,129,181,73,136,129,181,116,105,129,181,147,74,129,181,164,43,129,181,
170,12,129,181,162,237,128,181,143,206,128,181],"i8",4,y.a+1269760);
Q([110,175,128,181,66,144,128,181,8,113,128,181,195,81,128,181,113,50,128,181,18,19,128,181,78,231,127,181,96,168,127,181,89,105,127,181,56,42,127,181,0,235,126,181,174,171,126,181,68,108,126,181,194,44,126,181,39,237,125,181,115,173,125,181,167,109,125,181,194,45,125,181,197,237,124,181,176,173,124,181,130,109,124,181,60,45,124,181,221,236,123,181,103,172,123,181,216,107,123,181,49,43,123,181,113,234,122,181,154,169,122,181,170,104,122,181,162,39,122,181,130,230,121,181,74,165,121,181,250,99,121,
181,147,34,121,181,19,225,120,181,123,159,120,181,203,93,120,181,4,28,120,181,37,218,119,181,46,152,119,181,31,86,119,181,248,19,119,181,186,209,118,181,100,143,118,181,247,76,118,181,114,10,118,181,213,199,117,181,33,133,117,181,85,66,117,181,114,255,116,181,119,188,116,181,101,121,116,181,60,54,116,181,251,242,115,181,163,175,115,181,52,108,115,181,173,40,115,181,16,229,114,181,91,161,114,181,143,93,114,181,171,25,114,181,177,213,113,181,160,145,113,181,119,77,113,181,56,9,113,181,226,196,112,181,
117,128,112,181,240,59,112,181,85,247,111,181,164,178,111,181,219,109,111,181,252,40,111,181,6,228,110,181,249,158,110,181,213,89,110,181,155,20,110,181,74,207,109,181,227,137,109,181,101,68,109,181,209,254,108,181,38,185,108,181,101,115,108,181,141,45,108,181,159,231,107,181,155,161,107,181,128,91,107,181,80,21,107,181,8,207,106,181,171,136,106,181,56,66,106,181,174,251,105,181,14,181,105,181,88,110,105,181,140,39,105,181,170,224,104,181,179,153,104,181,165,82,104,181,129,11,104,181,71,196,103,181,
248,124,103,181,147,53,103,181,24,238,102,181,135,166,102,181,224,94,102,181,36,23,102,181,82,207,101,181,107,135,101,181,110,63,101,181,91,247,100,181,51,175,100,181,246,102,100,181,163,30,100,181,58,214,99,181,189,141,99,181,42,69,99,181,129,252,98,181,196,179,98,181,241,106,98,181,9,34,98,181,11,217,97,181,249,143,97,181,209,70,97,181,149,253,96,181,67,180,96,181,221,106,96,181,97,33,96,181,209,215,95,181,43,142,95,181,113,68,95,181,162,250,94,181,190,176,94,181,197,102,94,181,184,28,94,181,150,
210,93,181,95,136,93,181,20,62,93,181,180,243,92,181,63,169,92,181,182,94,92,181,24,20,92,181,102,201,91,181,160,126,91,181,197,51,91,181,214,232,90,181,211,157,90,181,187,82,90,181,143,7,90,181,79,188,89,181,251,112,89,181,146,37,89,181,21,218,88,181,133,142,88,181,224,66,88,181,39,247,87,181,91,171,87,181,122,95,87,181,134,19,87,181,125,199,86,181,97,123,86,181,49,47,86,181,237,226,85,181,150,150,85,181,43,74,85,181,172,253,84,181,25,177,84,181,115,100,84,181,186,23,84,181,237,202,83,181,12,126,
83,181,24,49,83,181,17,228,82,181,246,150,82,181,200,73,82,181,135,252,81,181,50,175,81,181,202,97,81,181,79,20,81,181,193,198,80,181,31,121,80,181,107,43,80,181,163,221,79,181,201,143,79,181,219,65,79,181,219,243,78,181,200,165,78,181,161,87,78,181,104,9,78,181,29,187,77,181,190,108,77,181,77,30,77,181,201,207,76,181,50,129,76,181,137,50,76,181,205,227,75,181,254,148,75,181,29,70,75,181,42,247,74,181,36,168,74,181,12,89,74,181,225,9,74,181,164,186,73,181,85,107,73,181,243,27,73,181,127,204,72,181,
249,124,72,181,97,45,72,181,183,221,71,181,250,141,71,181,44,62,71,181,76,238,70,181,89,158,70,181,85,78,70,181,63,254,69,181,23,174,69,181,221,93,69,181,145,13,69,181,52,189,68,181,197,108,68,181,68,28,68,181,177,203,67,181,13,123,67,181,87,42,67,181,144,217,66,181,184,136,66,181,205,55,66,181,210,230,65,181,197,149,65,181,166,68,65,181,119,243,64,181,54,162,64,181,228,80,64,181,128,255,63,181,12,174,63,181,134,92,63,181,239,10,63,181,72,185,62,181,143,103,62,181,197,21,62,181,234,195,61,181,254,
113,61,181,2,32,61,181,244,205,60,181,214,123,60,181,167,41,60,181,104,215,59,181,23,133,59,181,182,50,59,181,68,224,58,181,194,141,58,181,47,59,58,181,140,232,57,181,216,149,57,181,20,67,57,181,64,240,56,181,91,157,56,181,102,74,56,181,96,247,55,181,74,164,55,181,36,81,55,181,238,253,54,181,168,170,54,181,82,87,54,181,235,3,54,181,117,176,53,181,239,92,53,181,88,9,53,181,178,181,52,181,252,97,52,181,54,14,52,181,96,186,51,181,123,102,51,181,134,18,51,181,129,190,50,181,108,106,50,181,72,22,50,181,
20,194,49,181,209,109,49,181,126,25,49,181,28,197,48,181,171,112,48,181,42,28,48,181,153,199,47,181,250,114,47,181,75,30,47,181,141,201,46,181,191,116,46,181,227,31,46,181,247,202,45,181,253,117,45,181,243,32,45,181,219,203,44,181,179,118,44,181,124,33,44,181,55,204,43,181,227,118,43,181,128,33,43,181,14,204,42,181,141,118,42,181,254,32,42,181,96,203,41,181,179,117,41,181,248,31,41,181,47,202,40,181,86,116,40,181,112,30,40,181,123,200,39,181,119,114,39,181,101,28,39,181,69,198,38,181,23,112,38,181,
218,25,38,181,143,195,37,181,54,109,37,181,207,22,37,181,90,192,36,181,215,105,36,181,70,19,36,181,166,188,35,181,249,101,35,181,62,15,35,181,117,184,34,181,159,97,34,181,186,10,34,181,200,179,33,181,200,92,33,181,186,5,33,181,159,174,32,181,118,87,32,181,64,0,32,181,252,168,31,181,171,81,31,181,76,250,30,181,224,162,30,181,103,75,30,181,224,243,29,181,76,156,29,181,171,68,29,181,252,236,28,181,65,149,28,181,120,61,28,181,162,229,27,181,191,141,27,181,207,53,27,181,210,221,26,181,201,133,26,181,178,
45,26,181,143,213,25,181,94,125,25,181,33,37,25,181,216,204,24,181,129,116,24,181,30,28,24,181,174,195,23,181,50,107,23,181,169,18,23,181,20,186,22,181,114,97,22,181,196,8,22,181,9,176,21,181,66,87,21,181,111,254,20,181,144,165,20,181,164,76,20,181,172,243,19,181,168,154,19,181,152,65,19,181,124,232,18,181,84,143,18,181,31,54,18,181,223,220,17,181,147,131,17,181,59,42,17,181,215,208,16,181,104,119,16,181,237,29,16,181,102,196,15,181,211,106,15,181,53,17,15,181,139,183,14,181,213,93,14,181,20,4,14,
181,72,170,13,181,112,80,13,181,141,246,12,181,158,156,12,181,164,66,12,181,159,232,11,181,142,142,11,181,115,52,11,181,76,218,10,181,26,128,10,181,221,37,10,181,149,203,9,181,66,113,9,181,228,22,9,181,123,188,8,181,7,98,8,181,136,7,8,181,255,172,7,181,107,82,7,181,204,247,6,181,34,157,6,181,110,66,6,181,175,231,5,181,229,140,5,181,17,50,5,181,51,215,4,181,74,124,4,181,87,33,4,181,89,198,3,181,81,107,3,181,62,16,3,181,34,181,2,181,251,89,2,181,202,254,1,181,143,163,1,181,74,72,1,181,251,236,0,181,
161,145,0,181,62,54,0,181,162,181,255,180,180,254,254,180,178,71,254,180,157,144,253,180,116,217,252,180,56,34,252,180,232,106,251,180,133,179,250,180,15,252,249,180,133,68,249,180,233,140,248,180,57,213,247,180,119,29,247,180,162,101,246,180,186,173,245,180,191,245,244,180,178,61,244,180,146,133,243,180,96,205,242,180,28,21,242,180,197,92,241,180,92,164,240,180,225,235,239,180,84,51,239,180,181,122,238,180,4,194,237,180,66,9,237,180,109,80,236,180,135,151,235,180,144,222,234,180,135,37,234,180,108,
108,233,180,65,179,232,180,4,250,231,180,182,64,231,180,87,135,230,180,231,205,229,180,102,20,229,180,212,90,228,180,49,161,227,180,126,231,226,180,186,45,226,180,230,115,225,180,2,186,224,180,12,0,224,180,7,70,223,180,242,139,222,180,204,209,221,180,151,23,221,180,81,93,220,180,252,162,219,180,150,232,218,180,34,46,218,180,157,115,217,180,9,185,216,180,102,254,215,180,179,67,215,180,241,136,214,180,31,206,213,180,63,19,213,180,79,88,212,180,81,157,211,180,67,226,210,180,39,39,210,180,252,107,209,
180,195,176,208,180,123,245,207,180,36,58,207,180,191,126,206,180,76,195,205,180,202,7,205,180,58,76,204,180,156,144,203,180,240,212,202,180,55,25,202,180,111,93,201,180,154,161,200,180,182,229,199,180,198,41,199,180,200,109,198,180,188,177,197,180,163,245,196,180,125,57,196,180,73,125,195,180,9,193,194,180,187,4,194,180,96,72,193,180,249,139,192,180,133,207,191,180,4,19,191,180,118,86,190,180,220,153,189,180,53,221,188,180,130,32,188,180,195,99,187,180,248,166,186,180,32,234,185,180,60,45,185,180,
77,112,184,180,81,179,183,180,73,246,182,180,54,57,182,180,23,124,181,180,237,190,180,180,183,1,180,180,118,68,179,180,41,135,178,180,209,201,177,180,110,12,177,180,0,79,176,180,135,145,175,180,3,212,174,180,116,22,174,180,218,88,173,180,53,155,172,180,134,221,171,180,205,31,171,180,9,98,170,180,58,164,169,180,98,230,168,180,127,40,168,180,146,106,167,180,155,172,166,180,154,238,165,180,143,48,165,180,122,114,164,180,92,180,163,180,52,246,162,180,2,56,162,180,199,121,161,180,131,187,160,180,53,253,
159,180,222,62,159,180,126,128,158,180,21,194,157,180,163,3,157,180,40,69,156,180,164,134,155,180,23,200,154,180,130,9,154,180,228,74,153,180,62,140,152,180,143,205,151,180,216,14,151,180,24,80,150,180,81,145,149,180,129,210,148,180,169,19,148,180,202,84,147,180,226,149,146,180,243,214,145,180,252,23,145,180,254,88,144,180,247,153,143,180,234,218,142,180,213,27,142,180,185,92,141,180,150,157,140,180,107,222,139,180,58,31,139,180,1,96,138,180,194,160,137,180,124,225,136,180,47,34,136,180,219,98,135,
180,129,163,134,180,33,228,133,180,186,36,133,180,77,101,132,180,217,165,131,180,95,230,130,180,224,38,130,180,90,103,129,180,207,167,128,180,122,208,127,180,76,81,126,180,18,210,124,180,206,82,123,180,126,211,121,180,35,84,120,180,190,212,118,180,78,85,117,180,212,213,115,180,80,86,114,180,193,214,112,180,41,87,111,180,135,215,109,180,220,87,108,180,39,216,106,180,105,88,105,180,162,216,103,180,209,88,102,180,249,216,100,180,23,89,99,180,46,217,97,180,60,89,96,180,66,217,94,180,64,89,93,180,54,217,
91,180,36,89,90,180,12,217,88,180,235,88,87,180,196,216,85,180,150,88,84,180,97,216,82,180,38,88,81,180,227,215,79,180,155,87,78,180,77,215,76,180,248,86,75,180,158,214,73,180,62,86,72,180,216,213,70,180,110,85,69,180,254,212,67,180,137,84,66,180,15,212,64,180,144,83,63,180,13,211,61,180,134,82,60,180,250,209,58,180,106,81,57,180,215,208,55,180,64,80,54,180,165,207,52,180,6,79,51,180,101,206,49,180,192,77,48,180,25,205,46,180,111,76,45,180,194,203,43,180,19,75,42,180,97,202,40,180,173,73,39,180,248,
200,37,180,64,72,36,180,135,199,34,180,205,70,33,180,17,198,31,180,84,69,30,180,150,196,28,180,216,67,27,180,24,195,25,180,88,66,24,180,152,193,22,180,216,64,21,180,23,192,19,180,87,63,18,180,151,190,16,180,216,61,15,180,25,189,13,180,91,60,12,180,158,187,10,180,226,58,9,180,39,186,7,180,110,57,6,180,182,184,4,180,0,56,3,180,76,183,1,180,154,54,0,180,212,107,253,179,121,106,250,179,36,105,247,179,212,103,244,179,137,102,241,179,69,101,238,179,7,100,235,179,208,98,232,179,160,97,229,179,119,96,226,
179,85,95,223,179,60,94,220,179,43,93,217,179,35,92,214,179,36,91,211,179,46,90,208,179,65,89,205,179,95,88,202,179,135,87,199,179,185,86,196,179,246,85,193,179,62,85,190,179,146,84,187,179,242,83,184,179,94,83,181,179,214,82,178,179,91,82,175,179,237,81,172,179,141,81,169,179,59,81,166,179,246,80,163,179,192,80,160,179,152,80,157,179,128,80,154,179,119,80,151,179,125,80,148,179,148,80,145,179,187,80,142,179,242,80,139,179,59,81,136,179,148,81,133,179,0,82,130,179,249,164,126,179,24,166,120,179,92,
167,114,179,197,168,108,179,85,170,102,179,11,172,96,179,234,173,90,179,240,175,84,179,31,178,78,179,120,180,72,179,251,182,66,179,169,185,60,179,130,188,54,179,135,191,48,179,185,194,42,179,24,198,36,179,165,201,30,179,97,205,24,179,75,209,18,179,102,213,12,179,177,217,6,179,45,222,0,179,183,197,245,178,119,207,233,178,158,217,221,178,43,228,209,178,34,239,197,178,130,250,185,178,77,6,174,178,132,18,162,178,41,31,150,178,61,44,138,178,130,115,124,178,109,143,100,178,60,172,76,178,244,201,52,178,
149,232,28,178,36,8,5,178,67,81,218,177,34,148,170,177,211,177,117,177,62,63,22,177,56,66,91,176,203,104,34,48,250,0,8,49,190,99,103,49,58,97,163,49,137,14,211,49,228,92,1,50,120,49,25,50,255,4,49,50,118,215,72,50,218,168,96,50,42,121,120,50,49,36,136,50,64,11,148,50,193,241,159,50,178,215,171,50,19,189,183,50,226,161,195,50,29,134,207,50,196,105,219,50,214,76,231,50,80,47,243,50,50,17,255,50,61,121,5,51,148,105,11,51,157,89,17,51,88,73,23,51,195,56,29,51,222,39,35,51,169,22,41,51,35,5,47,51,75,243,
52,51,32,225,58,51,163,206,64,51,210,187,70,51,173,168,76,51,51,149,82,51,100,129,88,51,63,109,94,51,195,88,100,51,239,67,106,51,196,46,112,51,64,25,118,51,100,3,124,51,150,246,128,51,78,235,131,51,216,223,134,51,52,212,137,51,98,200,140,51,98,188,143,51,50,176,146,51,212,163,149,51,71,151,152,51,138,138,155,51,156,125,158,51,127,112,161,51,49,99,164,51,178,85,167,51,2,72,170,51,32,58,173,51,13,44,176,51,199,29,179,51,79,15,182,51,164,0,185,51,198,241,187,51,181,226,190,51,112,211,193,51,247,195,
196,51,74,180,199,51,105,164,202,51,82,148,205,51,7,132,208,51,133,115,211,51,206,98,214,51,225,81,217,51,190,64,220,51,99,47,223,51,210,29,226,51,10,12,229,51,9,250,231,51,209,231,234,51,97,213,237,51,184,194,240,51,214,175,243,51,187,156,246,51,103,137,249,51,217,117,252,51,16,98,255,51,7,39,1,52,232,156,2,52,172,18,4,52,82,136,5,52,219,253,6,52,69,115,8,52,146,232,9,52,192,93,11,52,208,210,12,52,193,71,14,52,148,188,15,52,71,49,17,52,220,165,18,52,82,26,20,52,168,142,21,52,223,2,23,52,246,118,
24,52,237,234,25,52,197,94,27,52,124,210,28,52,20,70,30,52,139,185,31,52,225,44,33,52,23,160,34,52,44,19,36,52,32,134,37,52,243,248,38,52,165,107,40,52,53,222,41,52,164,80,43,52,241,194,44,52,28,53,46,52,37,167,47,52,12,25,49,52,209,138,50,52,115,252,51,52,243,109,53,52,80,223,54,52,138,80,56,52,161,193,57,52,149,50,59,52,102,163,60,52,19,20,62,52,156,132,63,52,2,245,64,52,67,101,66,52,97,213,67,52,90,69,69,52,47,181,70,52,224,36,72,52,108,148,73,52,211,3,75,52,21,115,76,52,50,226,77,52,41,81,79,
52,251,191,80,52,168,46,82,52,47,157,83,52,144,11,85,52,203,121,86,52,224,231,87,52,207,85,89,52,151,195,90,52,57,49,92,52,180,158,93,52,8,12,95,52,53,121,96,52,59,230,97,52,25,83,99,52,209,191,100,52,96,44,102,52,200,152,103,52,8,5,105,52,31,113,106,52,15,221,107,52,214,72,109,52,117,180,110,52,235,31,112,52,57,139,113,52,93,246,114,52,88,97,116,52,43,204,117,52,211,54,119,52,83,161,120,52,168,11,122,52,212,117,123,52,214,223,124,52,174,73,126,52,92,179,127,52,112,142,128,52,28,67,129,52,179,247,
129,52,53,172,130,52,161,96,131,52,247,20,132,52,56,201,132,52,100,125,133,52,121,49,134,52,121,229,134,52,99,153,135,52,55,77,136,52,245,0,137,52,156,180,137,52,46,104,138,52,169,27,139,52,14,207,139,52,93,130,140,52,149,53,141,52,182,232,141,52,193,155,142,52,181,78,143,52,147,1,144,52,89,180,144,52,9,103,145,52,162,25,146,52,35,204,146,52,142,126,147,52,225,48,148,52,30,227,148,52,66,149,149,52,80,71,150,52,70,249,150,52,36,171,151,52,235,92,152,52,154,14,153,52,49,192,153,52,177,113,154,52,25,
35,155,52,104,212,155,52,160,133,156,52,191,54,157,52,199,231,157,52,182,152,158,52,141,73,159,52,75,250,159,52,241,170,160,52,127,91,161,52,244,11,162,52,80,188,162,52,147,108,163,52,190,28,164,52,208,204,164,52,201,124,165,52,168,44,166,52,111,220,166,52,29,140,167,52,177,59,168,52,44,235,168,52,142,154,169,52,215,73,170,52,5,249,170,52,27,168,171,52,22,87,172,52,248,5,173,52,193,180,173,52,111,99,174,52,3,18,175,52,126,192,175,52,222,110,176,52,36,29,177,52,81,203,177,52,98,121,178,52,90,39,179,
52,55,213,179,52,250,130,180,52,162,48,181,52,48,222,181,52,162,139,182,52,251,56,183,52,56,230,183,52,91,147,184,52,98,64,185,52,79,237,185,52,32,154,186,52,215,70,187,52,114,243,187,52,242,159,188,52,86,76,189,52,159,248,189,52,205,164,190,52,223,80,191,52,214,252,191,52,176,168,192,52,112,84,193,52,19,0,194,52,154,171,194,52,6,87,195,52,85,2,196,52,136,173,196,52,160,88,197,52,155,3,198,52,121,174,198,52,60,89,199,52,226,3,200,52,107,174,200,52,216,88,201,52,40,3,202,52,92,173,202,52,115,87,203,
52,109,1,204,52,74,171,204,52,10,85,205,52,173,254,205,52,51,168,206,52,156,81,207,52,232,250,207,52,22,164,208,52,39,77,209,52,27,246,209,52,241,158,210,52,170,71,211,52,69,240,211,52,194,152,212,52,34,65,213,52,100,233,213,52,136,145,214,52,142,57,215,52,118,225,215,52,64,137,216,52,236,48,217,52,121,216,217,52,233,127,218,52,58,39,219,52,108,206,219,52,129,117,220,52,118,28,221,52,77,195,221,52,6,106,222,52,159,16,223,52,26,183,223,52,118,93,224,52,180,3,225,52,210,169,225,52,209,79,226,52,177,
245,226,52,114,155,227,52,20,65,228,52,150,230,228,52,249,139,229,52,60,49,230,52,96,214,230,52,101,123,231,52,74,32,232,52,15,197,232,52,181,105,233,52,58,14,234,52,160,178,234,52,230,86,235,52,12,251,235,52,17,159,236,52,247,66,237,52,189,230,237,52,98,138,238,52,231,45,239,52,75,209,239,52,143,116,240,52,179,23,241,52,182,186,241,52,152,93,242,52,90,0,243,52,251,162,243,52,123,69,244,52,218,231,244,52,25,138,245,52,54,44,246,52,50,206,246,52,13,112,247,52,199,17,248,52,96,179,248,52,215,84,249,
52,45,246,249,52,97,151,250,52,116,56,251,52,102,217,251,52,54,122,252,52,228,26,253,52,112,187,253,52,219,91,254,52,35,252,254,52,74,156,255,52,39,30,0,53,25,110,0,53,249,189,0,53,200,13,1,53,134,93,1,53,51,173,1,53,207,252,1,53,89,76,2,53,211,155,2,53,59,235,2,53,145,58,3,53,215,137,3,53,11,217,3,53,45,40,4,53,62,119,4,53,62,198,4,53,44,21,5,53,9,100,5,53,212,178,5,53,142,1,6,53,54,80,6,53,204,158,6,53,81,237,6,53,196,59,7,53,37,138,7,53,117,216,7,53,178,38,8,53,222,116,8,53,248,194,8,53,1,17,9,
53,247,94,9,53,219,172,9,53,174,250,9,53,110,72,10,53,28,150,10,53,185,227,10,53,67,49,11,53,187,126,11,53,33,204,11,53,117,25,12,53,182,102,12,53,230,179,12,53,3,1,13,53,14,78,13,53,6,155,13,53,237,231,13,53,192,52,14,53,130,129,14,53,49,206,14,53,205,26,15,53,87,103,15,53,207,179,15,53,52,0,16,53,134,76,16,53,198,152,16,53,243,228,16,53,13,49,17,53,21,125,17,53,10,201,17,53,236,20,18,53,188,96,18,53,120,172,18,53,34,248,18,53,185,67,19,53,61,143,19,53,175,218,19,53,13,38,20,53,88,113,20,53,144,
188,20,53,181,7,21,53,199,82,21,53,199,157,21,53,178,232,21,53,139,51,22,53,81,126,22,53,3,201,22,53,162,19,23,53,46,94,23,53,167,168,23,53,12,243,23,53,94,61,24,53,156,135,24,53,200,209,24,53,223,27,25,53,228,101,25,53,212,175,25,53,178,249,25,53,123,67,26,53,49,141,26,53,212,214,26,53,99,32,27,53,222,105,27,53,70,179,27,53,154,252,27,53,218,69,28,53,6,143,28,53,31,216,28,53,36,33,29,53,21,106,29,53,242,178,29,53,187,251,29,53,112,68,30,53,17,141,30,53,159,213,30,53,24,30,31,53,125,102,31,53,207,
174,31,53,12,247,31,53,53,63,32,53,74,135,32,53,74,207,32,53,55,23,33,53,15,95,33,53,211,166,33,53,131,238,33,53,30,54,34,53,166,125,34,53,24,197,34,53,119,12,35,53,193,83,35,53,246,154,35,53,23,226,35,53,36,41,36,53,28,112,36,53,0,183,36,53,207,253,36,53,137,68,37,53,47,139,37,53,192,209,37,53,61,24,38,53,164,94,38,53,247,164,38,53,54,235,38,53,95,49,39,53,116,119,39,53,116,189,39,53,95,3,40,53,53,73,40,53,246,142,40,53,163,212,40,53,58,26,41,53,188,95,41,53,42,165,41,53,130,234,41,53,197,47,42,
53,244,116,42,53,13,186,42,53,17,255,42,53,255,67,43,53,217,136,43,53,157,205,43,53,77,18,44,53,231,86,44,53,107,155,44,53,218,223,44,53,52,36,45,53,121,104,45,53,168,172,45,53,194,240,45,53,198,52,46,53,181,120,46,53,143,188,46,53,83,0,47,53,1,68,47,53,154,135,47,53,29,203,47,53,139,14,48,53,227,81,48,53,37,149,48,53,82,216,48,53,104,27,49,53,106,94,49,53,85,161,49,53,43,228,49,53,235,38,50,53,149,105,50,53,41,172,50,53,167,238,50,53,15,49,51,53,98,115,51,53,158,181,51,53,197,247,51,53,213,57,52,
53,208,123,52,53,180,189,52,53,130,255,52,53,59,65,53,53,221,130,53,53,105,196,53,53,223,5,54,53,62,71,54,53,136,136,54,53,187,201,54,53,216,10,55,53,222,75,55,53,207,140,55,53,169,205,55,53,108,14,56,53,26,79,56,53,176,143,56,53,49,208,56,53,155,16,57,53,238,80,57,53,43,145,57,53,82,209,57,53,98,17,58,53,91,81,58,53,62,145,58,53,10,209,58,53,191,16,59,53,94,80,59,53,230,143,59,53,88,207,59,53,179,14,60,53,247,77,60,53,36,141,60,53,58,204,60,53,58,11,61,53,34,74,61,53,244,136,61,53,175,199,61,53,
83,6,62,53,225,68,62,53,87,131,62,53,182,193,62,53,254,255,62,53,48,62,63,53,74,124,63,53,77,186,63,53,57,248,63,53,14,54,64,53,204,115,64,53,114,177,64,53,2,239,64,53,122,44,65,53,219,105,65,53,37,167,65,53,87,228,65,53,114,33,66,53,118,94,66,53,99,155,66,53,56,216,66,53,246,20,67,53,157,81,67,53,44,142,67,53,163,202,67,53,4,7,68,53,76,67,68,53,126,127,68,53,151,187,68,53,153,247,68,53,132,51,69,53,87,111,69,53,18,171,69,53,182,230,69,53,66,34,70,53,183,93,70,53,19,153,70,53,88,212,70,53,134,15,
71,53,155,74,71,53,153,133,71,53,127,192,71,53,77,251,71,53,3,54,72,53,162,112,72,53,41,171,72,53,151,229,72,53,238,31,73,53,45,90,73,53,84,148,73,53,99,206,73,53,89,8,74,53,56,66,74,53,255,123,74,53,174,181,74,53,69,239,74,53,195,40,75,53,42,98,75,53,120,155,75,53,174,212,75,53,204,13,76,53,210,70,76,53,191,127,76,53,149,184,76,53,82,241,76,53,247,41,77,53,131,98,77,53,247,154,77,53,83,211,77,53,150,11,78,53,193,67,78,53,212,123,78,53,206,179,78,53,176,235,78,53,122,35,79,53,42,91,79,53,195,146,
79,53,67,202,79,53,170,1,80,53,249,56,80,53,47,112,80,53,77,167,80,53,82,222,80,53,62,21,81,53,18,76,81,53,205,130,81,53,111,185,81,53,249,239,81,53,106,38,82,53,194,92,82,53,1,147,82,53,40,201,82,53,54,255,82,53,43,53,83,53,7,107,83,53,202,160,83,53,117,214,83,53,6,12,84,53,127,65,84,53,223,118,84,53,38,172,84,53,83,225,84,53,104,22,85,53,100,75,85,53,71,128,85,53,17,181,85,53,194,233,85,53,89,30,86,53,216,82,86,53,61,135,86,53,138,187,86,53,189,239,86,53,215,35,87,53,216,87,87,53,191,139,87,53,
142,191,87,53,67,243,87,53,223,38,88,53,98,90,88,53,203,141,88,53,27,193,88,53,82,244,88,53,111,39,89,53,116,90,89,53,94,141,89,53,48,192,89,53,232,242,89,53,134,37,90,53,11,88,90,53,119,138,90,53,201,188,90,53,2,239,90,53,33,33,91,53,38,83,91,53,19,133,91,53,229,182,91,53,158,232,91,53,61,26,92,53,195,75,92,53,47,125,92,53,130,174,92,53,187,223,92,53,218,16,93,53,223,65,93,53,203,114,93,53,157,163,93,53,85,212,93,53,244,4,94,53,121,53,94,53,228,101,94,53,53,150,94,53,108,198,94,53,138,246,94,53,
142,38,95,53,120,86,95,53,72,134,95,53,254,181,95,53,154,229,95,53,28,21,96,53,132,68,96,53,211,115,96,53,7,163,96,53,33,210,96,53,34,1,97,53,8,48,97,53,212,94,97,53,134,141,97,53,31,188,97,53,157,234,97,53,1,25,98,53,75,71,98,53,122,117,98,53,144,163,98,53,139,209,98,53,109,255,98,53,52,45,99,53,225,90,99,53,115,136,99,53,236,181,99,53,74,227,99,53,142,16,100,53,183,61,100,53,199,106,100,53,188,151,100,53,151,196,100,53,87,241,100,53,253,29,101,53,137,74,101,53,250,118,101,53,81,163,101,53,141,207,
101,53,175,251,101,53,183,39,102,53,164,83,102,53,119,127,102,53,47,171,102,53,205,214,102,53,80,2,103,53,185,45,103,53,7,89,103,53,59,132,103,53,84,175,103,53,83,218,103,53,55,5,104,53,0,48,104,53,175,90,104,53,67,133,104,53,188,175,104,53,27,218,104,53,95,4,105,53,137,46,105,53,151,88,105,53,139,130,105,53,101,172,105,53,35,214,105,53,199,255,105,53,80,41,106,53,191,82,106,53,18,124,106,53,75,165,106,53,105,206,106,53,108,247,106,53,84,32,107,53,34,73,107,53,212,113,107,53,108,154,107,53,233,194,
107,53,74,235,107,53,145,19,108,53,189,59,108,53,207,99,108,53,197,139,108,53,160,179,108,53,96,219,108,53,5,3,109,53,144,42,109,53,255,81,109,53,83,121,109,53,140,160,109,53,170,199,109,53,173,238,109,53,149,21,110,53,98,60,110,53,20,99,110,53,171,137,110,53,38,176,110,53,135,214,110,53,204,252,110,53,246,34,111,53,5,73,111,53,249,110,111,53,210,148,111,53,143,186,111,53,49,224,111,53,184,5,112,53,36,43,112,53,117,80,112,53,170,117,112,53,196,154,112,53,195,191,112,53,166,228,112,53,110,9,113,53,
27,46,113,53,173,82,113,53,35,119,113,53,126,155,113,53,189,191,113,53,225,227,113,53,234,7,114,53,215,43,114,53,169,79,114,53,96,115,114,53,251,150,114,53,123,186,114,53,223,221,114,53,40,1,115,53,85,36,115,53,103,71,115,53,94,106,115,53,57,141,115,53,248,175,115,53,156,210,115,53,36,245,115,53,145,23,116,53,227,57,116,53,24,92,116,53,51,126,116,53,49,160,116,53,20,194,116,53,220,227,116,53,136,5,117,53,24,39,117,53,141,72,117,53,230,105,117,53,35,139,117,53,69,172,117,53,75,205,117,53,54,238,117,
53,4,15,118,53,184,47,118,53,79,80,118,53,203,112,118,53,43,145,118,53,111,177,118,53,152,209,118,53,164,241,118,53,150,17,119,53,107,49,119,53,37,81,119,53,194,112,119,53,68,144,119,53,171,175,119,53,245,206,119,53,36,238,119,53,55,13,120,53,46,44,120,53,9,75,120,53,200,105,120,53,108,136,120,53,243,166,120,53,95,197,120,53,175,227,120,53,227,1,121,53,251,31,121,53,247,61,121,53,216,91,121,53,156,121,121,53,69,151,121,53,209,180,121,53,66,210,121,53,150,239,121,53,207,12,122,53,236,41,122,53,237,
70,122,53,210,99,122,53,155,128,122,53,71,157,122,53,216,185,122,53,77,214,122,53,166,242,122,53,227,14,123,53,4,43,123,53,9,71,123,53,241,98,123,53,190,126,123,53,111,154,123,53,3,182,123,53,124,209,123,53,216,236,123,53,25,8,124,53,61,35,124,53,69,62,124,53,49,89,124,53,1,116,124,53,181,142,124,53,77,169,124,53,201,195,124,53,40,222,124,53,108,248,124,53,147,18,125,53,158,44,125,53,141,70,125,53,95,96,125,53,22,122,125,53,176,147,125,53,47,173,125,53,145,198,125,53,214,223,125,53,0,249,125,53,14,
18,126,53,255,42,126,53,212,67,126,53,140,92,126,53,41,117,126,53,169,141,126,53,13,166,126,53,85,190,126,53,129,214,126,53,144,238,126,53,131,6,127,53,90,30,127,53,20,54,127,53,178,77,127,53,52,101,127,53,154,124,127,53,227,147,127,53,16,171,127,53,33,194,127,53,21,217,127,53,237,239,127,53,85,3,128,53,164,14,128,53,230,25,128,53,25,37,128,53,62,48,128,53,86,59,128,53,94,70,128,53,89,81,128,53,70,92,128,53,36,103,128,53,244,113,128,53,182,124,128,53,106,135,128,53,15,146,128,53,167,156,128,53,48,
167,128,53,171,177,128,53,24,188,128,53,118,198,128,53,199,208,128,53,9,219,128,53,61,229,128,53,99,239,128,53,122,249,128,53,132,3,129,53,127,13,129,53,108,23,129,53,75,33,129,53,27,43,129,53,221,52,129,53,145,62,129,53,55,72,129,53,207,81,129,53,88,91,129,53,211,100,129,53,64,110,129,53,159,119,129,53,239,128,129,53,50,138,129,53,102,147,129,53,139,156,129,53,163,165,129,53,172,174,129,53,167,183,129,53,148,192,129,53,114,201,129,53,67,210,129,53,5,219,129,53,184,227,129,53,94,236,129,53,245,244,
129,53,126,253,129,53,249,5,130,53,101,14,130,53,196,22,130,53,20,31,130,53,85,39,130,53,137,47,130,53,174,55,130,53,197,63,130,53,205,71,130,53,200,79,130,53,180,87,130,53,146,95,130,53,97,103,130,53,35,111,130,53,214,118,130,53,123,126,130,53,17,134,130,53,153,141,130,53,19,149,130,53,127,156,130,53,220,163,130,53,44,171,130,53,108,178,130,53,159,185,130,53,195,192,130,53,217,199,130,53,225,206,130,53,219,213,130,53,198,220,130,53,163,227,130,53,113,234,130,53,50,241,130,53,228,247,130,53,136,254,
130,53,29,5,131,53,164,11,131,53,29,18,131,53,136,24,131,53,228,30,131,53,50,37,131,53,114,43,131,53,164,49,131,53,199,55,131,53,220,61,131,53,226,67,131,53,219,73,131,53,197,79,131,53,160,85,131,53,110,91,131,53,45,97,131,53,222,102,131,53,129,108,131,53,21,114,131,53,155,119,131,53,19,125,131,53,124,130,131,53,216,135,131,53,37,141,131,53,99,146,131,53,147,151,131,53,182,156,131,53,201,161,131,53,207,166,131,53,198,171,131,53,175,176,131,53,137,181,131,53,86,186,131,53,20,191,131,53,196,195,131,
53,101,200,131,53,248,204,131,53,125,209,131,53,244,213,131,53,92,218,131,53,182,222,131,53,2,227,131,53,64,231,131,53,111,235,131,53,144,239,131,53,162,243,131,53,167,247,131,53,157,251,131,53,133,255,131,53,94,3,132,53,42,7,132,53,231,10,132,53,149,14,132,53,54,18,132,53,200,21,132,53,76,25,132,53,194,28,132,53,41,32,132,53,130,35,132,53,205,38,132,53,10,42,132,53,56,45,132,53,88,48,132,53,106,51,132,53,109,54,132,53,99,57,132,53,74,60,132,53,34,63,132,53,237,65,132,53,169,68,132,53,87,71,132,53,
247,73,132,53,136,76,132,53,11,79,132,53,128,81,132,53,231,83,132,53,63,86,132,53,138,88,132,53,198,90,132,53,243,92,132,53,19,95,132,53,36,97,132,53,39,99,132,53,28,101,132,53,2,103,132,53,219,104,132,53,165,106,132,53,97,108,132,53,14,110,132,53,174,111,132,53,63,113,132,53,194,114,132,53,54,116,132,53,157,117,132,53,245,118,132,53,63,120,132,53,123,121,132,53,169,122,132,53,200,123,132,53,217,124,132,53,220,125,132,53,209,126,132,53,183,127,132,53,144,128,132,53,90,129,132,53,22,130,132,53,196,
130,132,53,99,131,132,53,245,131,132,53,120,132,132,53,237,132,132,53,84,133,132,53,172,133,132,53,247,133,132,53,51,134,132,53,97,134,132,53,129,134,132,53,147,134,132,53,150,134,132,53,139,134,132,53,115,134,132,53,76,134,132,53,23,134,132,53,211,133,132,53,130,133,132,53,34,133,132,53,181,132,132,53,57,132,132,53,175,131,132,53,23,131,132,53,112,130,132,53,188,129,132,53,249,128,132,53,41,128,132,53,74,127,132,53,93,126,132,53,98,125,132,53,88,124,132,53,65,123,132,53,28,122,132,53,232,120,132,
53,166,119,132,53,86,118,132,53,249,116,132,53,141,115,132,53,18,114,132,53,138,112,132,53,244,110,132,53,79,109,132,53,157,107,132,53,220,105,132,53,14,104,132,53,49,102,132,53,70,100,132,53,77,98,132,53,70,96,132,53,49,94,132,53,14,92,132,53,221,89,132,53,158,87,132,53,81,85,132,53,245,82,132,53,140,80,132,53,21,78,132,53,143,75,132,53,252,72,132,53,90,70,132,53,171,67,132,53,237,64,132,53,33,62,132,53,72,59,132,53,96,56,132,53,107,53,132,53,103,50,132,53,85,47,132,53,54,44,132,53,8,41,132,53,204,
37,132,53,131,34,132,53,43,31,132,53,197,27,132,53,82,24,132,53,208,20,132,53,65,17,132,53,163,13,132,53,248,9,132,53,62,6,132,53,119,2,132,53,161,254,131,53,190,250,131,53,205,246,131,53,206,242,131,53,193,238,131,53,165,234,131,53,124,230,131,53,70,226,131,53,1,222,131,53,174,217,131,53,77,213,131,53,223,208,131,53,98,204,131,53,216,199,131,53,63,195,131,53,153,190,131,53,229,185,131,53,35,181,131,53,83,176,131,53,118,171,131,53,138,166,131,53,145,161,131,53,137,156,131,53,116,151,131,53,81,146,
131,53,32,141,131,53,225,135,131,53,149,130,131,53,58,125,131,53,210,119,131,53,92,114,131,53,216,108,131,53,70,103,131,53,167,97,131,53,250,91,131,53,62,86,131,53,118,80,131,53,159,74,131,53,186,68,131,53,200,62,131,53,200,56,131,53,186,50,131,53,158,44,131,53,117,38,131,53,62,32,131,53,249,25,131,53,166,19,131,53,70,13,131,53,216,6,131,53,92,0,131,53,210,249,130,53,59,243,130,53,150,236,130,53,227,229,130,53,34,223,130,53,84,216,130,53,120,209,130,53,143,202,130,53,151,195,130,53,146,188,130,53,
128,181,130,53,95,174,130,53,49,167,130,53,246,159,130,53,172,152,130,53,85,145,130,53,241,137,130,53,126,130,130,53,254,122,130,53,113,115,130,53,214,107,130,53,45,100,130,53,118,92,130,53,178,84,130,53,225,76,130,53,1,69,130,53,20,61,130,53,26,53,130,53,18,45,130,53,252,36,130,53,217,28,130,53,168,20,130,53,106,12,130,53,30,4,130,53,197,251,129,53,94,243,129,53,233,234,129,53,103,226,129,53,216,217,129,53,59,209,129,53,144,200,129,53,216,191,129,53,18,183,129,53,63,174,129,53,95,165,129,53,113,
156,129,53,117,147,129,53,108,138,129,53,85,129,129,53,50,120,129,53,0,111,129,53,193,101,129,53,117,92,129,53,27,83,129,53,180,73,129,53,63,64,129,53,189,54,129,53,46,45,129,53,145,35,129,53,231,25,129,53,47,16,129,53,106,6,129,53,152,252,128,53,184,242,128,53,203,232,128,53,208,222,128,53,200,212,128,53,179,202,128,53,144,192,128,53,96,182,128,53,35,172,128,53,217,161,128,53,129,151,128,53,28,141,128,53,169,130,128,53,41,120,128,53,156,109,128,53,2,99,128,53,90,88,128,53,165,77,128,53,227,66,128,
53,19,56,128,53,55,45,128,53,77,34,128,53,86,23,128,53,81,12,128,53,63,1,128,53,65,236,127,53,233,213,127,53,118,191,127,53,233,168,127,53,66,146,127,53,128,123,127,53,164,100,127,53,174,77,127,53,157,54,127,53,114,31,127,53,45,8,127,53,205,240,126,53,83,217,126,53,191,193,126,53,17,170,126,53,72,146,126,53,101,122,126,53,104,98,126,53,81,74,126,53,32,50,126,53,212,25,126,53,110,1,126,53,239,232,125,53,85,208,125,53,161,183,125,53,210,158,125,53,234,133,125,53,232,108,125,53,204,83,125,53,149,58,
125,53,69,33,125,53,219,7,125,53,87,238,124,53,184,212,124,53,0,187,124,53,46,161,124,53,66,135,124,53,60,109,124,53,28,83,124,53,227,56,124,53,143,30,124,53,34,4,124,53,154,233,123,53,249,206,123,53,62,180,123,53,106,153,123,53,123,126,123,53,115,99,123,53,81,72,123,53,22,45,123,53,192,17,123,53,81,246,122,53,201,218,122,53,38,191,122,53,107,163,122,53,149,135,122,53,166,107,122,53,157,79,122,53,123,51,122,53,63,23,122,53,233,250,121,53,122,222,121,53,242,193,121,53,80,165,121,53,148,136,121,53,
191,107,121,53,209,78,121,53,201,49,121,53,168,20,121,53,109,247,120,53,25,218,120,53,172,188,120,53,37,159,120,53,133,129,120,53,203,99,120,53,249,69,120,53,13,40,120,53,7,10,120,53,233,235,119,53,177,205,119,53,96,175,119,53,246,144,119,53,115,114,119,53,214,83,119,53,32,53,119,53,82,22,119,53,106,247,118,53,105,216,118,53,79,185,118,53,28,154,118,53,207,122,118,53,106,91,118,53,236,59,118,53,85,28,118,53,164,252,117,53,219,220,117,53,249,188,117,53,254,156,117,53,234,124,117,53,189,92,117,53,120,
60,117,53,25,28,117,53,162,251,116,53,17,219,116,53,104,186,116,53,167,153,116,53,204,120,116,53,217,87,116,53,205,54,116,53,168,21,116,53,106,244,115,53,20,211,115,53,165,177,115,53,30,144,115,53,126,110,115,53,197,76,115,53,244,42,115,53,10,9,115,53,8,231,114,53,237,196,114,53,185,162,114,53,110,128,114,53,9,94,114,53,140,59,114,53,247,24,114,53,73,246,113,53,131,211,113,53,165,176,113,53,174,141,113,53,159,106,113,53,119,71,113,53,55,36,113,53,223,0,113,53,111,221,112,53,230,185,112,53,69,150,
112,53,140,114,112,53,187,78,112,53,209,42,112,53,207,6,112,53,182,226,111,53,132,190,111,53,58,154,111,53,216,117,111,53,93,81,111,53,203,44,111,53,33,8,111,53,95,227,110,53,133,190,110,53,146,153,110,53,136,116,110,53,102,79,110,53,44,42,110,53,218,4,110,53,113,223,109,53,239,185,109,53,86,148,109,53,164,110,109,53,219,72,109,53,250,34,109,53,2,253,108,53,242,214,108,53,202,176,108,53,138,138,108,53,51,100,108,53,196,61,108,53,61,23,108,53,159,240,107,53,233,201,107,53,28,163,107,53,55,124,107,
53,58,85,107,53,38,46,107,53,251,6,107,53,184,223,106,53,93,184,106,53,235,144,106,53,98,105,106,53,193,65,106,53,9,26,106,53,58,242,105,53,83,202,105,53,85,162,105,53,64,122,105,53,20,82,105,53,208,41,105,53,117,1,105,53,2,217,104,53,121,176,104,53,216,135,104,53,33,95,104,53,82,54,104,53,108,13,104,53,111,228,103,53,91,187,103,53,48,146,103,53,238,104,103,53,148,63,103,53,36,22,103,53,157,236,102,53,255,194,102,53,74,153,102,53,127,111,102,53,156,69,102,53,162,27,102,53,146,241,101,53,107,199,101,
53,45,157,101,53,216,114,101,53,109,72,101,53,235,29,101,53,82,243,100,53,163,200,100,53,220,157,100,53,0,115,100,53,12,72,100,53,2,29,100,53,226,241,99,53,170,198,99,53,93,155,99,53,249,111,99,53,126,68,99,53,237,24,99,53,70,237,98,53,136,193,98,53,179,149,98,53,201,105,98,53,200,61,98,53,176,17,98,53,131,229,97,53,63,185,97,53,228,140,97,53,116,96,97,53,237,51,97,53,80,7,97,53,157,218,96,53,212,173,96,53,245,128,96,53,0,84,96,53,244,38,96,53,210,249,95,53,155,204,95,53,77,159,95,53,234,113,95,53,
112,68,95,53,225,22,95,53,59,233,94,53,128,187,94,53,175,141,94,53,200,95,94,53,203,49,94,53,184,3,94,53,144,213,93,53,81,167,93,53,253,120,93,53,148,74,93,53,20,28,93,53,127,237,92,53,213,190,92,53,20,144,92,53,62,97,92,53,83,50,92,53,82,3,92,53,59,212,91,53,15,165,91,53,205,117,91,53,118,70,91,53,10,23,91,53,136,231,90,53,241,183,90,53,68,136,90,53,130,88,90,53,171,40,90,53,190,248,89,53,188,200,89,53,165,152,89,53,121,104,89,53,55,56,89,53,224,7,89,53,116,215,88,53,243,166,88,53,93,118,88,53,178,
69,88,53,241,20,88,53,28,228,87,53,50,179,87,53,50,130,87,53,30,81,87,53,245,31,87,53,182,238,86,53,99,189,86,53,251,139,86,53,127,90,86,53,237,40,86,53,71,247,85,53,139,197,85,53,187,147,85,53,215,97,85,53,221,47,85,53,207,253,84,53,173,203,84,53,117,153,84,53,41,103,84,53,201,52,84,53,84,2,84,53,202,207,83,53,44,157,83,53,122,106,83,53,179,55,83,53,215,4,83,53,231,209,82,53,227,158,82,53,202,107,82,53,157,56,82,53,92,5,82,53,7,210,81,53,157,158,81,53,31,107,81,53,141,55,81,53,230,3,81,53,44,208,
80,53,93,156,80,53,122,104,80,53,131,52,80,53,120,0,80,53,89,204,79,53,38,152,79,53,223,99,79,53,132,47,79,53,22,251,78,53,147,198,78,53,252,145,78,53,82,93,78,53,147,40,78,53,193,243,77,53,219,190,77,53,225,137,77,53,212,84,77,53,179,31,77,53,126,234,76,53,54,181,76,53,218,127,76,53,106,74,76,53,231,20,76,53,80,223,75,53,166,169,75,53,232,115,75,53,22,62,75,53,50,8,75,53,57,210,74,53,46,156,74,53,15,102,74,53,221,47,74,53,151,249,73,53,62,195,73,53,210,140,73,53,82,86,73,53,192,31,73,53,26,233,72,
53,97,178,72,53,149,123,72,53,182,68,72,53,195,13,72,53,190,214,71,53,165,159,71,53,122,104,71,53,60,49,71,53,234,249,70,53,134,194,70,53,15,139,70,53,133,83,70,53,232,27,70,53,56,228,69,53,118,172,69,53,160,116,69,53,184,60,69,53,189,4,69,53,176,204,68,53,144,148,68,53,93,92,68,53,24,36,68,53,192,235,67,53,85,179,67,53,216,122,67,53,73,66,67,53,167,9,67,53,242,208,66,53,43,152,66,53,82,95,66,53,102,38,66,53,104,237,65,53,88,180,65,53,53,123,65,53,0,66,65,53,185,8,65,53,96,207,64,53,245,149,64,53,
119,92,64,53,231,34,64,53,69,233,63,53,145,175,63,53,203,117,63,53,243,59,63,53,9,2,63,53,13,200,62,53,255,141,62,53],"i8",4,y.a+128E4);
Q([223,83,62,53,174,25,62,53,106,223,61,53,21,165,61,53,173,106,61,53,52,48,61,53,170,245,60,53,13,187,60,53,95,128,60,53,159,69,60,53,206,10,60,53,235,207,59,53,246,148,59,53,240,89,59,53,216,30,59,53,175,227,58,53,116,168,58,53,40,109,58,53,203,49,58,53,92,246,57,53,219,186,57,53,74,127,57,53,167,67,57,53,243,7,57,53,45,204,56,53,87,144,56,53,111,84,56,53,118,24,56,53,107,220,55,53,80,160,55,53,36,100,55,53,230,39,55,53,152,235,54,53,56,175,54,53,200,114,54,53,71,54,54,53,180,249,53,53,17,189,53,
53,93,128,53,53,152,67,53,53,195,6,53,53,220,201,52,53,229,140,52,53,221,79,52,53,197,18,52,53,155,213,51,53,98,152,51,53,23,91,51,53,188,29,51,53,81,224,50,53,212,162,50,53,72,101,50,53,171,39,50,53,253,233,49,53,63,172,49,53,113,110,49,53,147,48,49,53,164,242,48,53,164,180,48,53,149,118,48,53,117,56,48,53,69,250,47,53,5,188,47,53,181,125,47,53,85,63,47,53,228,0,47,53,100,194,46,53,211,131,46,53,51,69,46,53,130,6,46,53,194,199,45,53,241,136,45,53,17,74,45,53,33,11,45,53,33,204,44,53,17,141,44,53,
242,77,44,53,194,14,44,53,131,207,43,53,53,144,43,53,215,80,43,53,105,17,43,53,235,209,42,53,94,146,42,53,193,82,42,53,21,19,42,53,90,211,41,53,143,147,41,53,180,83,41,53,202,19,41,53,209,211,40,53,200,147,40,53,176,83,40,53,137,19,40,53,83,211,39,53,13,147,39,53,184,82,39,53,84,18,39,53,225,209,38,53,95,145,38,53,206,80,38,53,46,16,38,53,126,207,37,53,192,142,37,53,243,77,37,53,23,13,37,53,43,204,36,53,50,139,36,53,41,74,36,53,17,9,36,53,235,199,35,53,182,134,35,53,114,69,35,53,32,4,35,53,190,194,
34,53,79,129,34,53,208,63,34,53,67,254,33,53,168,188,33,53,254,122,33,53,70,57,33,53,127,247,32,53,169,181,32,53,198,115,32,53,212,49,32,53,211,239,31,53,197,173,31,53,168,107,31,53,125,41,31,53,67,231,30,53,252,164,30,53,166,98,30,53,66,32,30,53,208,221,29,53,80,155,29,53,195,88,29,53,39,22,29,53,125,211,28,53,197,144,28,53,255,77,28,53,43,11,28,53,74,200,27,53,91,133,27,53,94,66,27,53,83,255,26,53,58,188,26,53,20,121,26,53,224,53,26,53,159,242,25,53,79,175,25,53,243,107,25,53,136,40,25,53,17,229,
24,53,139,161,24,53,249,93,24,53,89,26,24,53,171,214,23,53,240,146,23,53,40,79,23,53,83,11,23,53,112,199,22,53,128,131,22,53,131,63,22,53,120,251,21,53,97,183,21,53,60,115,21,53,11,47,21,53,204,234,20,53,128,166,20,53,39,98,20,53,194,29,20,53,79,217,19,53,207,148,19,53,67,80,19,53,170,11,19,53,4,199,18,53,81,130,18,53,145,61,18,53,197,248,17,53,236,179,17,53,7,111,17,53,20,42,17,53,21,229,16,53,10,160,16,53,242,90,16,53,206,21,16,53,157,208,15,53,96,139,15,53,22,70,15,53,192,0,15,53,93,187,14,53,
239,117,14,53,116,48,14,53,236,234,13,53,89,165,13,53,185,95,13,53,13,26,13,53,86,212,12,53,146,142,12,53,193,72,12,53,229,2,12,53,253,188,11,53,9,119,11,53,9,49,11,53,253,234,10,53,229,164,10,53,194,94,10,53,146,24,10,53,87,210,9,53,16,140,9,53,189,69,9,53,95,255,8,53,245,184,8,53,127,114,8,53,254,43,8,53,113,229,7,53,217,158,7,53,53,88,7,53,134,17,7,53,203,202,6,53,5,132,6,53,51,61,6,53,86,246,5,53,110,175,5,53,123,104,5,53,124,33,5,53,114,218,4,53,93,147,4,53,61,76,4,53,18,5,4,53,219,189,3,53,
154,118,3,53,77,47,3,53,246,231,2,53,147,160,2,53,38,89,2,53,173,17,2,53,42,202,1,53,156,130,1,53,4,59,1,53,96,243,0,53,178,171,0,53,249,99,0,53,53,28,0,53,205,168,255,52,27,25,255,52,84,137,254,52,120,249,253,52,135,105,253,52,129,217,252,52,102,73,252,52,54,185,251,52,241,40,251,52,152,152,250,52,42,8,250,52,167,119,249,52,16,231,248,52,100,86,248,52,164,197,247,52,208,52,247,52,231,163,246,52,235,18,246,52,218,129,245,52,181,240,244,52,124,95,244,52,47,206,243,52,206,60,243,52,89,171,242,52,209,
25,242,52,53,136,241,52,133,246,240,52,194,100,240,52,235,210,239,52,0,65,239,52,3,175,238,52,242,28,238,52,206,138,237,52,150,248,236,52,76,102,236,52,239,211,235,52,126,65,235,52,251,174,234,52,100,28,234,52,187,137,233,52,0,247,232,52,49,100,232,52,80,209,231,52,93,62,231,52,87,171,230,52,62,24,230,52,19,133,229,52,214,241,228,52,135,94,228,52,38,203,227,52,178,55,227,52,45,164,226,52,149,16,226,52,236,124,225,52,49,233,224,52,100,85,224,52,134,193,223,52,149,45,223,52,148,153,222,52,128,5,222,
52,92,113,221,52,38,221,220,52,222,72,220,52,134,180,219,52,28,32,219,52,161,139,218,52,21,247,217,52,120,98,217,52,202,205,216,52,12,57,216,52,60,164,215,52,92,15,215,52,107,122,214,52,106,229,213,52,88,80,213,52,53,187,212,52,3,38,212,52,191,144,211,52,108,251,210,52,8,102,210,52,149,208,209,52,17,59,209,52,125,165,208,52,218,15,208,52,38,122,207,52,99,228,206,52,143,78,206,52,173,184,205,52,186,34,205,52,184,140,204,52,167,246,203,52,134,96,203,52,86,202,202,52,22,52,202,52,200,157,201,52,106,
7,201,52,253,112,200,52,129,218,199,52,246,67,199,52,92,173,198,52,179,22,198,52,252,127,197,52,54,233,196,52,97,82,196,52,126,187,195,52,140,36,195,52,140,141,194,52,125,246,193,52,96,95,193,52,53,200,192,52,252,48,192,52,181,153,191,52,95,2,191,52,252,106,190,52,138,211,189,52,11,60,189,52,126,164,188,52,228,12,188,52,59,117,187,52,134,221,186,52,194,69,186,52,241,173,185,52,19,22,185,52,40,126,184,52,47,230,183,52,41,78,183,52,22,182,182,52,246,29,182,52,201,133,181,52,143,237,180,52,72,85,180,
52,244,188,179,52,147,36,179,52,38,140,178,52,173,243,177,52,39,91,177,52,148,194,176,52,245,41,176,52,73,145,175,52,146,248,174,52,206,95,174,52,254,198,173,52,34,46,173,52,58,149,172,52,70,252,171,52,70,99,171,52,58,202,170,52,35,49,170,52,0,152,169,52,209,254,168,52,151,101,168,52,82,204,167,52,1,51,167,52,164,153,166,52,60,0,166,52,202,102,165,52,76,205,164,52,194,51,164,52,46,154,163,52,143,0,163,52,229,102,162,52,49,205,161,52,113,51,161,52,167,153,160,52,210,255,159,52,243,101,159,52,9,204,
158,52,21,50,158,52,22,152,157,52,13,254,156,52,250,99,156,52,221,201,155,52,182,47,155,52,132,149,154,52,73,251,153,52,4,97,153,52,181,198,152,52,92,44,152,52,250,145,151,52,142,247,150,52,24,93,150,52,153,194,149,52,17,40,149,52,127,141,148,52,228,242,147,52,63,88,147,52,146,189,146,52,219,34,146,52,27,136,145,52,83,237,144,52,129,82,144,52,167,183,143,52,196,28,143,52,216,129,142,52,228,230,141,52,231,75,141,52,225,176,140,52,211,21,140,52,189,122,139,52,159,223,138,52,120,68,138,52,73,169,137,
52,18,14,137,52,211,114,136,52,140,215,135,52,61,60,135,52,230,160,134,52,135,5,134,52,33,106,133,52,179,206,132,52,62,51,132,52,193,151,131,52,60,252,130,52,177,96,130,52,30,197,129,52,131,41,129,52,226,141,128,52,115,228,127,52,20,173,126,52,166,117,125,52,43,62,124,52,163,6,123,52,13,207,121,52,105,151,120,52,184,95,119,52,250,39,118,52,47,240,116,52,87,184,115,52,115,128,114,52,129,72,113,52,132,16,112,52,121,216,110,52,99,160,109,52,65,104,108,52,18,48,107,52,216,247,105,52,146,191,104,52,65,
135,103,52,228,78,102,52,124,22,101,52,9,222,99,52,138,165,98,52,1,109,97,52,109,52,96,52,206,251,94,52,37,195,93,52,114,138,92,52,180,81,91,52,236,24,90,52,27,224,88,52,63,167,87,52,90,110,86,52,107,53,85,52,114,252,83,52,113,195,82,52,102,138,81,52,82,81,80,52,54,24,79,52,16,223,77,52,226,165,76,52,171,108,75,52,108,51,74,52,37,250,72,52,214,192,71,52,126,135,70,52,31,78,69,52,184,20,68,52,74,219,66,52,212,161,65,52,86,104,64,52,210,46,63,52,70,245,61,52,180,187,60,52,27,130,59,52,123,72,58,52,
213,14,57,52,40,213,55,52,117,155,54,52,188,97,53,52,252,39,52,52,55,238,50,52,109,180,49,52,156,122,48,52,198,64,47,52,235,6,46,52,11,205,44,52,38,147,43,52,59,89,42,52,76,31,41,52,88,229,39,52,96,171,38,52,99,113,37,52,98,55,36,52,93,253,34,52,83,195,33,52,70,137,32,52,54,79,31,52,33,21,30,52,9,219,28,52,238,160,27,52,207,102,26,52,174,44,25,52,137,242,23,52,98,184,22,52,56,126,21,52,11,68,20,52,220,9,19,52,170,207,17,52,119,149,16,52,65,91,15,52,10,33,14,52,209,230,12,52,150,172,11,52,89,114,10,
52,27,56,9,52,220,253,7,52,156,195,6,52,91,137,5,52,25,79,4,52,215,20,3,52,147,218,1,52,80,160,0,52,23,204,254,51,143,87,252,51,6,227,249,51,125,110,247,51,245,249,244,51,110,133,242,51,232,16,240,51,98,156,237,51,223,39,235,51,92,179,232,51,220,62,230,51,94,202,227,51,227,85,225,51,107,225,222,51,245,108,220,51,131,248,217,51,20,132,215,51,169,15,213,51,66,155,210,51,224,38,208,51,130,178,205,51,41,62,203,51,213,201,200,51,135,85,198,51,62,225,195,51,251,108,193,51,190,248,190,51,136,132,188,51,
88,16,186,51,48,156,183,51,14,40,181,51,244,179,178,51,226,63,176,51,216,203,173,51,214,87,171,51,221,227,168,51,236,111,166,51,5,252,163,51,38,136,161,51,82,20,159,51,135,160,156,51,198,44,154,51,16,185,151,51,100,69,149,51,195,209,146,51,46,94,144,51,163,234,141,51,37,119,139,51,178,3,137,51,75,144,134,51,241,28,132,51,164,169,129,51,198,108,126,51,96,134,121,51,20,160,116,51,228,185,111,51,208,211,106,51,217,237,101,51,254,7,97,51,66,34,92,51,163,60,87,51,35,87,82,51,193,113,77,51,128,140,72,51,
95,167,67,51,94,194,62,51,127,221,57,51,193,248,52,51,38,20,48,51,173,47,43,51,87,75,38,51,38,103,33,51,24,131,28,51,48,159,23,51,109,187,18,51,207,215,13,51,88,244,8,51,8,17,4,51,191,91,254,50,190,149,244,50,13,208,234,50,175,10,225,50,163,69,215,50,235,128,205,50,136,188,195,50,124,248,185,50,198,52,176,50,105,113,166,50,100,174,156,50,186,235,146,50,107,41,137,50,240,206,126,50,197,75,107,50,87,201,87,50,167,71,68,50,184,198,48,50,140,70,29,50,36,199,9,50,6,145,236,49,87,149,197,49,61,155,158,
49,122,69,111,49,183,87,33,49,112,218,166,48,183,192,176,46,175,187,144,176,88,62,22,177,115,27,100,177,144,250,152,177,172,229,191,177,9,207,230,177,82,219,6,178,59,78,26,178,63,192,45,178,91,49,65,178,142,161,84,178,213,16,104,178,46,127,123,178,76,118,135,178,135,44,145,178,73,226,154,178,144,151,164,178,91,76,174,178,169,0,184,178,121,180,193,178,202,103,203,178,154,26,213,178,234,204,222,178,184,126,232,178,2,48,242,178,201,224,251,178,133,200,2,179,99,160,7,179,253,119,12,179,82,79,17,179,100,
38,22,179,48,253,26,179,183,211,31,179,247,169,36,179,241,127,41,179,164,85,46,179,15,43,51,179,50,0,56,179,12,213,60,179,157,169,65,179,229,125,70,179,226,81,75,179,149,37,80,179,252,248,84,179,24,204,89,179,232,158,94,179,107,113,99,179,161,67,104,179,137,21,109,179,35,231,113,179,110,184,118,179,106,137,123,179,11,45,128,179,57,149,130,179,63,253,132,179,28,101,135,179,209,204,137,179,92,52,140,179,190,155,142,179,246,2,145,179,4,106,147,179,233,208,149,179,162,55,152,179,50,158,154,179,150,4,
157,179,208,106,159,179,222,208,161,179,192,54,164,179,119,156,166,179,1,2,169,179,95,103,171,179,145,204,173,179,149,49,176,179,109,150,178,179,23,251,180,179,148,95,183,179,226,195,185,179,3,40,188,179,245,139,190,179,185,239,192,179,78,83,195,179,180,182,197,179,234,25,200,179,241,124,202,179,200,223,204,179,111,66,207,179,230,164,209,179,44,7,212,179,65,105,214,179,37,203,216,179,216,44,219,179,90,142,221,179,169,239,223,179,199,80,226,179,178,177,228,179,107,18,231,179,240,114,233,179,67,211,
235,179,99,51,238,179,79,147,240,179,7,243,242,179,139,82,245,179,219,177,247,179,247,16,250,179,221,111,252,179,143,206,254,179,134,150,0,180,169,197,1,180,178,244,2,180,159,35,4,180,114,82,5,180,41,129,6,180,197,175,7,180,70,222,8,180,170,12,10,180,244,58,11,180,33,105,12,180,50,151,13,180,39,197,14,180,0,243,15,180,189,32,17,180,93,78,18,180,225,123,19,180,72,169,20,180,146,214,21,180,191,3,23,180,207,48,24,180,194,93,25,180,152,138,26,180,80,183,27,180,235,227,28,180,104,16,30,180,199,60,31,180,
9,105,32,180,44,149,33,180,49,193,34,180,24,237,35,180,225,24,37,180,139,68,38,180,22,112,39,180,131,155,40,180,209,198,41,180,0,242,42,180,15,29,44,180,0,72,45,180,209,114,46,180,131,157,47,180,21,200,48,180,135,242,49,180,218,28,51,180,12,71,52,180,31,113,53,180,17,155,54,180,227,196,55,180,149,238,56,180,38,24,58,180,151,65,59,180,230,106,60,180,21,148,61,180,35,189,62,180,16,230,63,180,219,14,65,180,133,55,66,180,14,96,67,180,116,136,68,180,186,176,69,180,221,216,70,180,222,0,72,180,190,40,73,
180,123,80,74,180,22,120,75,180,142,159,76,180,228,198,77,180,23,238,78,180,39,21,80,180,21,60,81,180,223,98,82,180,134,137,83,180,10,176,84,180,107,214,85,180,168,252,86,180,194,34,88,180,183,72,89,180,137,110,90,180,55,148,91,180,193,185,92,180,39,223,93,180,104,4,95,180,133,41,96,180,126,78,97,180,82,115,98,180,1,152,99,180,139,188,100,180,240,224,101,180,48,5,103,180,74,41,104,180,64,77,105,180,16,113,106,180,186,148,107,180,63,184,108,180,157,219,109,180,214,254,110,180,233,33,112,180,214,68,
113,180,156,103,114,180,60,138,115,180,182,172,116,180,8,207,117,180,52,241,118,180,58,19,120,180,24,53,121,180,207,86,122,180,95,120,123,180,200,153,124,180,9,187,125,180,35,220,126,180,21,253,127,180,239,142,128,180,65,31,129,180,126,175,129,180,167,63,130,180,188,207,130,180,189,95,131,180,169,239,131,180,130,127,132,180,70,15,133,180,245,158,133,180,144,46,134,180,23,190,134,180,137,77,135,180,230,220,135,180,47,108,136,180,99,251,136,180,130,138,137,180,141,25,138,180,130,168,138,180,99,55,139,
180,46,198,139,180,229,84,140,180,134,227,140,180,18,114,141,180,137,0,142,180,234,142,142,180,54,29,143,180,109,171,143,180,142,57,144,180,154,199,144,180,144,85,145,180,113,227,145,180,60,113,146,180,241,254,146,180,144,140,147,180,26,26,148,180,141,167,148,180,235,52,149,180,50,194,149,180,100,79,150,180,127,220,150,180,132,105,151,180,115,246,151,180,76,131,152,180,14,16,153,180,186,156,153,180,79,41,154,180,206,181,154,180,54,66,155,180,136,206,155,180,195,90,156,180,231,230,156,180,244,114,
157,180,235,254,157,180,203,138,158,180,147,22,159,180,69,162,159,180,224,45,160,180,99,185,160,180,207,68,161,180,36,208,161,180,98,91,162,180,137,230,162,180,152,113,163,180,143,252,163,180,111,135,164,180,56,18,165,180,233,156,165,180,130,39,166,180,4,178,166,180,109,60,167,180,191,198,167,180,249,80,168,180,28,219,168,180,38,101,169,180,24,239,169,180,242,120,170,180,180,2,171,180,93,140,171,180,239,21,172,180,104,159,172,180,200,40,173,180,17,178,173,180,64,59,174,180,88,196,174,180,86,77,175,
180,60,214,175,180,10,95,176,180,191,231,176,180,90,112,177,180,221,248,177,180,72,129,178,180,153,9,179,180,209,145,179,180,240,25,180,180,246,161,180,180,227,41,181,180,182,177,181,180,113,57,182,180,18,193,182,180,154,72,183,180,8,208,183,180,93,87,184,180,152,222,184,180,186,101,185,180,194,236,185,180,176,115,186,180,133,250,186,180,63,129,187,180,224,7,188,180,104,142,188,180,213,20,189,180,40,155,189,180,97,33,190,180,128,167,190,180,133,45,191,180,112,179,191,180,64,57,192,180,246,190,192,
180,146,68,193,180,19,202,193,180,122,79,194,180,198,212,194,180,248,89,195,180,15,223,195,180,12,100,196,180,238,232,196,180,181,109,197,180,97,242,197,180,242,118,198,180,105,251,198,180,196,127,199,180,5,4,200,180,42,136,200,180,52,12,201,180,35,144,201,180,247,19,202,180,176,151,202,180,77,27,203,180,207,158,203,180,53,34,204,180,128,165,204,180,175,40,205,180,195,171,205,180,188,46,206,180,152,177,206,180,89,52,207,180,254,182,207,180,135,57,208,180,244,187,208,180,70,62,209,180,123,192,209,
180,149,66,210,180,146,196,210,180,115,70,211,180,56,200,211,180,225,73,212,180,109,203,212,180,221,76,213,180,49,206,213,180,105,79,214,180,132,208,214,180,130,81,215,180,100,210,215,180,41,83,216,180,209,211,216,180,93,84,217,180,204,212,217,180,30,85,218,180,84,213,218,180,108,85,219,180,104,213,219,180,70,85,220,180,7,213,220,180,172,84,221,180,51,212,221,180,157,83,222,180,233,210,222,180,25,82,223,180,43,209,223,180,31,80,224,180,247,206,224,180,176,77,225,180,76,204,225,180,203,74,226,180,
44,201,226,180,111,71,227,180,148,197,227,180,156,67,228,180,134,193,228,180,82,63,229,180,0,189,229,180,144,58,230,180,2,184,230,180,86,53,231,180,140,178,231,180,164,47,232,180,157,172,232,180,120,41,233,180,53,166,233,180,212,34,234,180,84,159,234,180,182,27,235,180,249,151,235,180,30,20,236,180,36,144,236,180,11,12,237,180,212,135,237,180,126,3,238,180,10,127,238,180,118,250,238,180,196,117,239,180,242,240,239,180,2,108,240,180,243,230,240,180,197,97,241,180,119,220,241,180,11,87,242,180,127,
209,242,180,212,75,243,180,10,198,243,180,32,64,244,180,23,186,244,180,239,51,245,180,167,173,245,180,63,39,246,180,185,160,246,180,18,26,247,180,76,147,247,180,102,12,248,180,96,133,248,180,59,254,248,180,246,118,249,180,145,239,249,180,12,104,250,180,103,224,250,180,162,88,251,180,189,208,251,180,184,72,252,180,147,192,252,180,77,56,253,180,231,175,253,180,98,39,254,180,187,158,254,180,245,21,255,180,14,141,255,180,3,2,0,181,111,61,0,181,203,120,0,181,22,180,0,181,81,239,0,181,124,42,1,181,151,
101,1,181,161,160,1,181,154,219,1,181,131,22,2,181,92,81,2,181,36,140,2,181,220,198,2,181,132,1,3,181,26,60,3,181,161,118,3,181,22,177,3,181,123,235,3,181,208,37,4,181,19,96,4,181,70,154,4,181,105,212,4,181,123,14,5,181,124,72,5,181,108,130,5,181,75,188,5,181,26,246,5,181,216,47,6,181,133,105,6,181,33,163,6,181,172,220,6,181,38,22,7,181,144,79,7,181,232,136,7,181,48,194,7,181,103,251,7,181,140,52,8,181,161,109,8,181,164,166,8,181,150,223,8,181,120,24,9,181,72,81,9,181,7,138,9,181,181,194,9,181,82,
251,9,181,221,51,10,181,88,108,10,181,193,164,10,181,25,221,10,181,95,21,11,181,148,77,11,181,184,133,11,181,203,189,11,181,204,245,11,181,188,45,12,181,155,101,12,181,104,157,12,181,35,213,12,181,206,12,13,181,102,68,13,181,237,123,13,181,99,179,13,181,199,234,13,181,26,34,14,181,91,89,14,181,138,144,14,181,168,199,14,181,180,254,14,181,174,53,15,181,151,108,15,181,110,163,15,181,51,218,15,181,231,16,16,181,137,71,16,181,25,126,16,181,151,180,16,181,4,235,16,181,94,33,17,181,167,87,17,181,222,141,
17,181,3,196,17,181,22,250,17,181,23,48,18,181,6,102,18,181,227,155,18,181,174,209,18,181,103,7,19,181,14,61,19,181,163,114,19,181,38,168,19,181,151,221,19,181,246,18,20,181,66,72,20,181,125,125,20,181,165,178,20,181,187,231,20,181,191,28,21,181,177,81,21,181,144,134,21,181,93,187,21,181,24,240,21,181,192,36,22,181,87,89,22,181,218,141,22,181,76,194,22,181,171,246,22,181,248,42,23,181,50,95,23,181,90,147,23,181,111,199,23,181,114,251,23,181,98,47,24,181,64,99,24,181,12,151,24,181,197,202,24,181,107,
254,24,181,254,49,25,181,127,101,25,181,238,152,25,181,74,204,25,181,147,255,25,181,201,50,26,181,237,101,26,181,254,152,26,181,252,203,26,181,232,254,26,181,193,49,27,181,135,100,27,181,58,151,27,181,218,201,27,181,104,252,27,181,226,46,28,181,74,97,28,181,159,147,28,181,225,197,28,181,16,248,28,181,44,42,29,181,53,92,29,181,43,142,29,181,14,192,29,181,222,241,29,181,156,35,30,181,70,85,30,181,220,134,30,181,96,184,30,181,209,233,30,181,47,27,31,181,121,76,31,181,176,125,31,181,213,174,31,181,229,
223,31,181,227,16,32,181,206,65,32,181,165,114,32,181,105,163,32,181,26,212,32,181,183,4,33,181,65,53,33,181,184,101,33,181,27,150,33,181,107,198,33,181,168,246,33,181,209,38,34,181,231,86,34,181,233,134,34,181,216,182,34,181,180,230,34,181,124,22,35,181,48,70,35,181,209,117,35,181,95,165,35,181,216,212,35,181,63,4,36,181,145,51,36,181,209,98,36,181,252,145,36,181,20,193,36,181,24,240,36,181,9,31,37,181,230,77,37,181,175,124,37,181,100,171,37,181,6,218,37,181,148,8,38,181,14,55,38,181,117,101,38,
181,199,147,38,181,6,194,38,181,49,240,38,181,72,30,39,181,75,76,39,181,59,122,39,181,22,168,39,181,222,213,39,181,146,3,40,181,49,49,40,181,189,94,40,181,53,140,40,181,153,185,40,181,233,230,40,181,37,20,41,181,76,65,41,181,96,110,41,181,96,155,41,181,75,200,41,181,35,245,41,181,230,33,42,181,149,78,42,181,49,123,42,181,184,167,42,181,42,212,42,181,137,0,43,181,211,44,43,181,9,89,43,181,43,133,43,181,57,177,43,181,51,221,43,181,24,9,44,181,233,52,44,181,165,96,44,181,77,140,44,181,225,183,44,181,
97,227,44,181,204,14,45,181,35,58,45,181,101,101,45,181,147,144,45,181,173,187,45,181,178,230,45,181,163,17,46,181,127,60,46,181,71,103,46,181,250,145,46,181,153,188,46,181,35,231,46,181,152,17,47,181,250,59,47,181,70,102,47,181,126,144,47,181,161,186,47,181,176,228,47,181,170,14,48,181,144,56,48,181,97,98,48,181,29,140,48,181,196,181,48,181,87,223,48,181,213,8,49,181,62,50,49,181,147,91,49,181,211,132,49,181,254,173,49,181,20,215,49,181,22,0,50,181,2,41,50,181,218,81,50,181,157,122,50,181,76,163,
50,181,229,203,50,181,105,244,50,181,217,28,51,181,52,69,51,181,121,109,51,181,170,149,51,181,198,189,51,181,205,229,51,181,191,13,52,181,156,53,52,181,100,93,52,181,23,133,52,181,181,172,52,181,62,212,52,181,178,251,52,181,17,35,53,181,90,74,53,181,143,113,53,181,175,152,53,181,185,191,53,181,175,230,53,181,143,13,54,181,90,52,54,181,16,91,54,181,177,129,54,181,60,168,54,181,178,206,54,181,20,245,54,181,95,27,55,181,150,65,55,181,184,103,55,181,196,141,55,181,187,179,55,181,156,217,55,181,105,255,
55,181,32,37,56,181,193,74,56,181,78,112,56,181,197,149,56,181,38,187,56,181,115,224,56,181,169,5,57,181,203,42,57,181,215,79,57,181,206,116,57,181,175,153,57,181,123,190,57,181,49,227,57,181,210,7,58,181,93,44,58,181,211,80,58,181,52,117,58,181,127,153,58,181,180,189,58,181,212,225,58,181,222,5,59,181,211,41,59,181,178,77,59,181,124,113,59,181,48,149,59,181,206,184,59,181,87,220,59,181,202,255,59,181,40,35,60,181,111,70,60,181,162,105,60,181,190,140,60,181,197,175,60,181,182,210,60,181,146,245,60,
181,87,24,61,181,7,59,61,181,162,93,61,181,38,128,61,181,149,162,61,181,238,196,61,181,49,231,61,181,95,9,62,181,118,43,62,181,120,77,62,181,100,111,62,181,58,145,62,181,251,178,62,181,165,212,62,181,58,246,62,181,185,23,63,181,34,57,63,181,117,90,63,181,178,123,63,181,217,156,63,181,234,189,63,181,229,222,63,181,203,255,63,181,154,32,64,181,83,65,64,181,247,97,64,181,132,130,64,181,252,162,64,181,93,195,64,181,169,227,64,181,222,3,65,181,254,35,65,181,7,68,65,181,250,99,65,181,215,131,65,181,159,
163,65,181,80,195,65,181,235,226,65,181,112,2,66,181,222,33,66,181,55,65,66,181,122,96,66,181,166,127,66,181,188,158,66,181,188,189,66,181,166,220,66,181,122,251,66,181,56,26,67,181,223,56,67,181,112,87,67,181,235,117,67,181,80,148,67,181,158,178,67,181,214,208,67,181,248,238,67,181,4,13,68,181,250,42,68,181,217,72,68,181,162,102,68,181,85,132,68,181,241,161,68,181,119,191,68,181,231,220,68,181,64,250,68,181,131,23,69,181,176,52,69,181,198,81,69,181,198,110,69,181,176,139,69,181,131,168,69,181,64,
197,69,181,230,225,69,181,118,254,69,181,240,26,70,181,83,55,70,181,160,83,70,181,214,111,70,181,246,139,70,181,0,168,70,181,243,195,70,181,207,223,70,181,150,251,70,181,69,23,71,181,222,50,71,181,97,78,71,181,205,105,71,181,35,133,71,181,98,160,71,181,138,187,71,181,156,214,71,181,152,241,71,181,125,12,72,181,75,39,72,181,3,66,72,181,164,92,72,181,47,119,72,181,163,145,72,181,0,172,72,181,71,198,72,181,120,224,72,181,145,250,72,181,148,20,73,181,129,46,73,181,86,72,73,181,22,98,73,181,190,123,73,
181,80,149,73,181,203,174,73,181,47,200,73,181,125,225,73,181,180,250,73,181,213,19,74,181,223,44,74,181,210,69,74,181,174,94,74,181,115,119,74,181,34,144,74,181,186,168,74,181,60,193,74,181,166,217,74,181,250,241,74,181,56,10,75,181,94,34,75,181,110,58,75,181,102,82,75,181,72,106,75,181,20,130,75,181,200,153,75,181,102,177,75,181,237,200,75,181,93,224,75,181,182,247,75,181,248,14,76,181,36,38,76,181,57,61,76,181,55,84,76,181,30,107,76,181,238,129,76,181,167,152,76,181,74,175,76,181,213,197,76,181,
74,220,76,181,168,242,76,181,239,8,77,181,31,31,77,181,56,53,77,181,59,75,77,181,38,97,77,181,250,118,77,181,184,140,77,181,95,162,77,181,238,183,77,181,103,205,77,181,201,226,77,181,20,248,77,181,72,13,78,181,101,34,78,181,107,55,78,181,90,76,78,181,50,97,78,181,243,117,78,181,157,138,78,181,48,159,78,181,172,179,78,181,17,200,78,181,96,220,78,181,151,240,78,181,183,4,79,181,192,24,79,181,178,44,79,181,141,64,79,181,81,84,79,181,255,103,79,181,149,123,79,181,20,143,79,181,124,162,79,181,204,181,
79,181,6,201,79,181,41,220,79,181,53,239,79,181,42,2,80,181,7,21,80,181,206,39,80,181,125,58,80,181,22,77,80,181,151,95,80,181,1,114,80,181,84,132,80,181,144,150,80,181,181,168,80,181,195,186,80,181,186,204,80,181,153,222,80,181,98,240,80,181,19,2,81,181,174,19,81,181,49,37,81,181,157,54,81,181,242,71,81,181,47,89,81,181,86,106,81,181,102,123,81,181,94,140,81,181,63,157,81,181,9,174,81,181,188,190,81,181,88,207,81,181,221,223,81,181,74,240,81,181,160,0,82,181,223,16,82,181,7,33,82,181,24,49,82,181,
18,65,82,181,244,80,82,181,191,96,82,181,115,112,82,181,16,128,82,181,150,143,82,181,4,159,82,181,92,174,82,181,156,189,82,181,197,204,82,181,214,219,82,181,209,234,82,181,180,249,82,181,128,8,83,181,53,23,83,181,211,37,83,181,89,52,83,181,201,66,83,181,33,81,83,181,97,95,83,181,139,109,83,181,157,123,83,181,152,137,83,181,124,151,83,181,73,165,83,181,254,178,83,181,157,192,83,181,36,206,83,181,147,219,83,181,236,232,83,181,45,246,83,181,87,3,84,181,106,16,84,181,101,29,84,181,74,42,84,181,23,55,
84,181,204,67,84,181,107,80,84,181,242,92,84,181,98,105,84,181,187,117,84,181,252,129,84,181,39,142,84,181,58,154,84,181,53,166,84,181,26,178,84,181,231,189,84,181,157,201,84,181,60,213,84,181,195,224,84,181,51,236,84,181,140,247,84,181,206,2,85,181,248,13,85,181,11,25,85,181,7,36,85,181,235,46,85,181,184,57,85,181,110,68,85,181,13,79,85,181,149,89,85,181,5,100,85,181,94,110,85,181,159,120,85,181,202,130,85,181,221,140,85,181,216,150,85,181,189,160,85,181,138,170,85,181,64,180,85,181,223,189,85,181,
102,199,85,181,214,208,85,181,47,218,85,181,113,227,85,181,155,236,85,181,174,245,85,181,170,254,85,181,142,7,86,181,92,16,86,181,18,25,86,181,176,33,86,181,56,42,86,181,168,50,86,181,1,59,86,181,66,67,86,181,108,75,86,181,128,83,86,181,123,91,86,181,96,99,86,181,45,107,86,181,227,114,86,181,130,122,86,181,9,130,86,181,121,137,86,181,210,144,86,181,20,152,86,181,62,159,86,181,81,166,86,181,77,173,86,181,49,180,86,181,255,186,86,181,181,193,86,181,84,200,86,181,219,206,86,181,75,213,86,181,164,219,
86,181,230,225,86,181,17,232,86,181,36,238,86,181,32,244,86,181,5,250,86,181,210,255,86,181,136,5,87,181,39,11,87,181,175,16,87,181,32,22,87,181,121,27,87,181,187,32,87,181,230,37,87,181,250,42,87,181,246,47,87,181,219,52,87,181,169,57,87,181,96,62,87,181,255,66,87,181,135,71,87,181,248,75,87,181,82,80,87,181,149,84,87,181,192,88,87,181,212,92,87,181,209,96,87,181,183,100,87,181,134,104,87,181,61,108,87,181,221,111,87,181,102,115,87,181,216,118,87,181,50,122,87,181,118,125,87,181,162,128,87,181,183,
131,87,181,181,134,87,181,155,137,87,181,107,140,87,181,35,143,87,181,196,145,87,181,78,148,87,181,193,150,87,181,29,153,87,181,97,155,87,181,142,157,87,181,164,159,87,181,163,161,87,181,139,163,87,181,92,165,87,181,22,167,87,181,184,168,87,181,67,170,87,181,183,171,87,181,21,173,87,181,90,174,87,181,137,175,87,181,161,176,87,181,161,177,87,181,139,178,87,181,93,179,87,181,24,180,87,181,189,180,87,181,74,181,87,181,192,181,87,181,30,182,87,181,102,182,87,181,151,182,87,181,177,182,87,181,179,182,
87,181,159,182,87,181,115,182,87,181,48,182,87,181,215,181,87,181,102,181,87,181,222,180,87,181,63,180,87,181,137,179,87,181,188,178,87,181,216,177,87,181,221,176,87,181,203,175,87,181,162,174,87,181,98,173,87,181,11,172,87,181,157,170,87,181,24,169,87,181,124,167,87,181,201,165,87,181,255,163,87,181,30,162,87,181,38,160,87,181,23,158,87,181,241,155,87,181,180,153,87,181,96,151,87,181,245,148,87,181,115,146,87,181,219,143,87,181,43,141,87,181,100,138,87,181,135,135,87,181,146,132,87,181,135,129,87,
181,101,126,87,181,43,123,87,181,219,119,87,181,116,116,87,181,246,112,87,181,97,109,87,181,182,105,87,181,243,101,87,181,26,98,87,181,41,94,87,181,34,90,87,181,4,86,87,181,207,81,87,181,132,77,87,181,33,73,87,181,168,68,87,181,24,64,87,181,112,59,87,181,179,54,87,181,222,49,87,181,243,44,87,181,240,39,87,181,215,34,87,181,167,29,87,181,97,24,87,181,3,19,87,181,143,13,87,181,4,8,87,181,99,2,87,181,170,252,86,181,219,246,86,181,245,240,86,181,248,234,86,181,229,228,86,181,187,222,86,181,122,216,86,
181,35,210,86,181,181,203,86,181,48,197,86,181,148,190,86,181,226,183,86,181,25,177,86,181,57,170,86,181,67,163,86,181,54,156,86,181,19,149,86,181,216,141,86,181,136,134,86,181,32,127,86,181,162,119,86,181,13,112,86,181,98,104,86,181,160,96,86,181,200,88,86,181,217,80,86,181,211,72,86,181,183,64,86,181,132,56,86,181,59,48,86,181,219,39,86,181,101,31,86,181,216,22,86,181,53,14,86,181,123,5,86,181,170,252,85,181,195,243,85,181,198,234,85,181,178,225,85,181,135,216,85,181,70,207,85,181,239,197,85,181,
129,188,85,181,253,178,85,181,98,169,85,181,177,159,85,181,234,149,85,181,12,140,85,181,23,130,85,181,13,120,85,181,235,109,85,181,180,99,85,181,102,89,85,181,2,79,85,181,135,68,85,181,246,57,85,181,79,47,85,181,145,36,85,181,189,25,85,181,211,14,85,181,210,3,85,181,187,248,84,181,142,237,84,181,74,226,84,181,240,214,84,181,128,203,84,181,250,191,84,181,93,180,84,181,171,168,84,181,226,156,84,181,2,145,84,181,13,133,84,181,1,121,84,181,223,108,84,181,167,96,84,181,89,84,84,181,244,71,84,181,122,59,
84,181,233,46,84,181,66,34,84,181,133,21,84,181,178,8,84,181,201,251,83,181,201,238,83,181,180,225,83,181,136,212,83,181,70,199,83,181,239,185,83,181,129,172,83,181,253,158,83,181,99,145,83,181,179,131,83,181,237,117,83,181,17,104,83,181,31,90,83,181,23,76,83,181,249,61,83,181,197,47,83,181,123,33,83,181,28,19,83,181,166,4,83,181,26,246,82,181,120,231,82,181,193,216,82,181,243,201,82,181,16,187,82,181,23,172,82,181,7,157,82,181,226,141,82,181,167,126,82,181,87,111,82,181,240,95,82,181,116,80,82,181,
226,64,82,181,57,49,82,181,124,33,82,181,168,17,82,181,191,1,82,181,191,241,81,181,171,225,81,181,128,209,81,181,64,193,81,181,233,176,81,181,126,160,81,181,252,143,81,181,101,127,81,181,184,110,81,181,245,93,81,181,29,77,81,181,47,60,81,181,44,43,81,181,18,26,81,181,228,8,81,181,159,247,80,181,69,230,80,181,214,212,80,181,81,195,80,181,182,177,80,181,6,160,80,181,64,142,80,181,100,124,80,181,116,106,80,181,109,88,80,181,81,70,80,181,32,52,80,181,217,33,80,181,125,15,80,181,11,253,79,181,132,234,
79,181,231,215,79,181,53,197,79,181,110,178,79,181,145,159,79,181,159,140,79,181,151,121,79,181,122,102,79,181,72,83,79,181,1,64,79,181,164,44,79,181,49,25,79,181,170,5,79,181,13,242,78,181,91,222,78,181,148,202,78,181,183,182,78,181,197,162,78,181,190,142,78,181,162,122,78,181,112,102,78,181,41,82,78,181,205,61,78,181,92,41,78,181,214,20,78,181,59,0,78,181,138,235,77,181,197,214,77,181,234,193,77,181,250,172,77,181,245,151,77,181,219,130,77,181,172,109,77,181,104,88,77,181,15,67,77,181,161,45,77,
181,30,24,77,181,133,2,77,181,216,236,76,181,22,215,76,181,63,193,76,181,83,171,76,181,82,149,76,181,60,127,76,181,17,105,76,181,210,82,76,181,125,60,76,181,20,38,76,181,150,15,76,181,2,249,75,181,90,226,75,181,158,203,75,181,204,180,75,181,230,157,75,181,235,134,75,181,219,111,75,181,182,88,75,181,125,65,75,181,47,42,75,181,204,18,75,181,84,251,74,181,200,227,74,181,39,204,74,181,114,180,74,181,167,156,74,181,201,132,74,181,213,108,74,181,205,84,74,181,176,60,74,181,127,36,74,181,57,12,74,181,223,
243,73,181,112,219,73,181,237,194,73,181,85,170,73,181,169,145,73,181,232,120,73,181,18,96,73,181,41,71,73,181,42,46,73,181,24,21,73,181,241,251,72,181,181,226,72,181,101,201,72,181,1,176,72,181,137,150,72,181,252,124,72,181,90,99,72,181,165,73,72,181,219,47,72,181,253,21,72,181,11,252,71,181,4,226,71,181,233,199,71,181,186,173,71,181,119,147,71,181,31,121,71,181,179,94,71,181,51,68,71,181,159,41,71,181,247,14,71,181,59,244,70,181,106,217,70,181,134,190,70,181,141,163,70,181,129,136,70,181,96,109,
70,181,43,82,70,181,226,54,70,181,134,27,70,181,21,0,70,181,144,228,69,181,247,200,69,181,75,173,69,181,138,145,69,181,182,117,69,181,205,89,69,181,209,61,69,181,193,33,69,181,157,5,69,181,101,233,68,181,25,205,68,181,185,176,68,181,70,148,68,181,191,119,68,181,36,91,68,181,117,62,68,181,179,33,68,181,221,4,68,181,243,231,67,181,246,202,67,181,229,173,67,181,192,144,67,181,135,115,67,181,59,86,67,181,220,56,67,181,104,27,67,181,225,253,66,181,71,224,66,181,153,194,66,181,215,164,66,181,2,135,66,181,
26,105,66,181,30,75,66,181,14,45,66,181,235,14,66,181,181,240,65,181,107,210,65,181,14,180,65,181,157,149,65,181,25,119,65,181,130,88,65,181,215,57,65,181,25,27,65,181,72,252,64,181,100,221,64,181,108,190,64,181,96,159,64,181,66,128,64,181,16,97,64,181,204,65,64,181,116,34,64,181,8,3,64,181,138,227,63,181,248,195,63,181,84,164,63,181,156,132,63,181,209,100,63,181,243,68,63,181,2,37,63,181,254,4,63,181,231,228,62,181,189,196,62,181,128,164,62,181,48,132,62,181,205,99,62,181,87,67,62,181,206,34,62,
181,50,2,62,181,131,225,61,181,194,192,61,181,237,159,61,181,6,127,61,181,12,94,61,181,255,60,61,181,223,27,61,181,173,250,60,181,103,217,60,181,15,184,60,181,164,150,60,181,39,117,60,181,151,83,60,181,244,49,60,181,62,16,60,181,118,238,59,181,156,204,59,181,174,170,59,181,174,136,59,181,156,102,59,181,119,68,59,181,63,34,59,181,245,255,58,181,152,221,58,181,41,187,58,181,167,152,58,181,19,118,58,181,109,83,58,181,180,48,58,181,233,13,58,181,11,235,57,181,27,200,57,181,25,165,57,181,4,130,57,181,
221,94,57,181,164,59,57,181,88,24,57,181,250,244,56,181,138,209,56,181,8,174,56,181,116,138,56,181,205,102,56,181,20,67,56,181,73,31,56,181,108,251,55,181,125,215,55,181,124,179,55,181,104,143,55,181,67,107,55,181,12,71,55,181,194,34,55,181,103,254,54,181,249,217,54,181,122,181,54,181,233,144,54,181,69,108,54,181,144,71,54,181,201,34,54,181,240,253,53,181,5,217,53,181,9,180,53,181,250,142,53,181,218,105,53,181,168,68,53,181,100,31,53,181,15,250,52,181,167,212,52,181,46,175,52,181,164,137,52,181,7,
100,52,181,90,62,52,181,154,24,52,181,201,242,51,181,230,204,51,181,242,166,51,181,236,128,51,181,212,90,51,181,171,52,51,181,113,14,51,181,37,232,50,181,199,193,50,181,89,155,50,181,216,116,50,181,71,78,50,181,164,39,50,181,239,0,50,181,42,218,49,181,82,179,49,181,106,140,49,181,112,101,49,181,101,62,49,181,73,23,49,181,28,240,48,181,221,200,48,181,141,161,48,181,44,122,48,181,186,82,48,181,55,43,48,181,163,3,48,181,253,219,47,181,70,180,47,181,127,140,47,181,166,100,47,181,189,60,47,181,194,20,
47,181,182,236,46,181,154,196,46,181,108,156,46,181,46,116,46,181,222,75,46,181,126,35,46,181,13,251,45,181,139,210,45,181,248,169,45,181,85,129,45,181,161,88,45,181,220,47,45,181,6,7,45,181,31,222,44,181,40,181,44,181,32,140,44,181,7,99,44,181,222,57,44,181,164,16,44,181,90,231,43,181,255,189,43,181,147,148,43,181,23,107,43,181,139,65,43,181,238,23,43,181,64,238,42,181,130,196,42,181,180,154,42,181,213,112,42,181,229,70,42,181,230,28,42,181,214,242,41,181,181,200,41,181,133,158,41,181,68,116,41,
181,242,73,41,181,145,31,41,181,31,245,40,181,157,202,40,181,11,160,40,181,105,117,40,181,182,74,40,181,244,31,40,181,33,245,39,181,62,202,39,181,75,159,39,181,72,116,39,181,54,73,39,181,19,30,39,181,224,242,38,181,157,199,38,181,74,156,38,181,231,112,38,181,117,69,38,181,242,25,38,181,96,238,37,181,189,194,37,181,11,151,37,181,73,107,37,181,120,63,37,181,150,19,37,181,165,231,36,181,165,187,36,181,148,143,36,181,116,99,36,181,68,55,36,181,5,11,36,181,181,222,35,181,87,178,35,181,233,133,35,181,107,
89,35,181,222,44,35,181,65,0,35,181,148,211,34,181,217,166,34,181,14,122,34,181,51,77,34,181,73,32,34,181,80,243,33,181,71,198,33,181,47,153,33,181,8,108,33,181,209,62,33,181,139,17,33,181,54,228,32,181,210,182,32,181,94,137,32,181,219,91,32,181,73,46,32,181,168,0,32,181,248,210,31,181,57,165,31,181,107,119,31,181,141,73,31,181,161,27,31,181,165,237,30,181,155,191,30,181,130,145,30,181,90,99,30,181,34,53,30,181,220,6,30,181,135,216,29,181,35,170,29,181,177,123,29,181,47,77,29,181,159,30,29,181,0,
240,28,181,82,193,28,181,150,146,28,181,203,99,28,181,241,52,28,181,8,6,28,181,17,215,27,181,12,168,27,181,247,120,27,181,212,73,27,181,163,26,27,181,99,235,26,181,20,188,26,181,184,140,26,181,76,93,26,181,210,45,26,181,74,254,25,181,179,206,25,181,15,159,25,181,91,111,25,181,154,63,25,181,202,15,25,181,235,223,24,181,255,175,24,181,4,128,24,181,251,79,24,181,228,31,24,181,191,239,23,181,140,191,23,181,74,143,23,181,250,94,23,181,157,46,23,181,49,254,22,181,183,205,22,181,48,157,22,181,154,108,22,
181,246,59,22,181,69,11,22,181,133,218,21,181,184,169,21,181,220,120,21,181,243,71,21,181,252,22,21,181,247,229,20,181,229,180,20,181,196,131,20,181,150,82,20,181,91,33,20,181,17,240,19,181,186,190,19,181,85,141,19,181,227,91,19,181,99,42,19,181,214,248,18,181,59,199,18,181,146,149,18,181,220,99,18,181,24,50,18,181,71,0,18,181,105,206,17,181,125,156,17,181,132,106,17,181,125,56,17,181,105,6,17,181,72,212,16,181,26,162,16,181,222,111,16,181,149,61,16,181,63,11,16,181,219,216,15,181,106,166,15,181,
237,115,15,181,98,65,15,181,202,14,15,181,37,220,14,181,114,169,14,181,179,118,14,181,231,67,14,181,14,17,14,181,40,222,13,181,52,171,13,181,52,120,13,181,40,69,13,181,14,18,13,181,231,222,12,181,180,171,12,181,115,120,12,181,38,69,12,181,205,17,12,181,102,222,11,181,243,170,11,181,115,119,11,181,230,67,11,181,77,16,11,181,167,220,10,181,245,168,10,181,54,117,10,181,106,65,10,181,146,13,10,181,174,217,9,181,189,165,9,181,192,113,9,181,182,61,9,181,160,9,9,181,125,213,8,181,78,161,8,181,19,109,8,181],
"i8",4,y.a+1290240);
Q([203,56,8,181,119,4,8,181,23,208,7,181,171,155,7,181,50,103,7,181,174,50,7,181,29,254,6,181,128,201,6,181,215,148,6,181,33,96,6,181,96,43,6,181,147,246,5,181,186,193,5,181,212,140,5,181,227,87,5,181,230,34,5,181,221,237,4,181,200,184,4,181,167,131,4,181,122,78,4,181,66,25,4,181,254,227,3,181,174,174,3,181,82,121,3,181,234,67,3,181,119,14,3,181,248,216,2,181,109,163,2,181,215,109,2,181,54,56,2,181,136,2,2,181,207,204,1,181,11,151,1,181,59,97,1,181,96,43,1,181,121,245,0,181,134,191,0,181,137,137,
0,181,128,83,0,181,107,29,0,181,151,206,255,180,65,98,255,180,213,245,254,180,81,137,254,180,184,28,254,180,8,176,253,180,65,67,253,180,101,214,252,180,114,105,252,180,105,252,251,180,73,143,251,180,20,34,251,180,200,180,250,180,103,71,250,180,239,217,249,180,98,108,249,180,191,254,248,180,6,145,248,180,55,35,248,180,82,181,247,180,88,71,247,180,72,217,246,180,35,107,246,180,232,252,245,180,151,142,245,180,50,32,245,180,182,177,244,180,38,67,244,180,128,212,243,180,197,101,243,180,245,246,242,180,
16,136,242,180,21,25,242,180,6,170,241,180,225,58,241,180,168,203,240,180,90,92,240,180,247,236,239,180,127,125,239,180,243,13,239,180,82,158,238,180,156,46,238,180,210,190,237,180,243,78,237,180,0,223,236,180,248,110,236,180,220,254,235,180,171,142,235,180,103,30,235,180,14,174,234,180,161,61,234,180,32,205,233,180,138,92,233,180,225,235,232,180,36,123,232,180,83,10,232,180,110,153,231,180,117,40,231,180,104,183,230,180,72,70,230,180,20,213,229,180,205,99,229,180,114,242,228,180,3,129,228,180,129,
15,228,180,236,157,227,180,67,44,227,180,135,186,226,180,183,72,226,180,213,214,225,180,223,100,225,180,214,242,224,180,186,128,224,180,139,14,224,180,74,156,223,180,245,41,223,180,141,183,222,180,19,69,222,180,134,210,221,180,230,95,221,180,52,237,220,180,111,122,220,180,151,7,220,180,173,148,219,180,177,33,219,180,162,174,218,180,129,59,218,180,77,200,217,180,8,85,217,180,176,225,216,180,70,110,216,180,202,250,215,180,59,135,215,180,155,19,215,180,233,159,214,180,38,44,214,180,80,184,213,180,104,
68,213,180,111,208,212,180,100,92,212,180,72,232,211,180,26,116,211,180,218,255,210,180,137,139,210,180,39,23,210,180,179,162,209,180,46,46,209,180,152,185,208,180,241,68,208,180,56,208,207,180,110,91,207,180,147,230,206,180,168,113,206,180,171,252,205,180,157,135,205,180,127,18,205,180,80,157,204,180,16,40,204,180,191,178,203,180,94,61,203,180,236,199,202,180,106,82,202,180,215,220,201,180,52,103,201,180,128,241,200,180,188,123,200,180,232,5,200,180,3,144,199,180,15,26,199,180,10,164,198,180,245,
45,198,180,209,183,197,180,156,65,197,180,87,203,196,180,3,85,196,180,159,222,195,180,43,104,195,180,167,241,194,180,20,123,194,180,113,4,194,180,190,141,193,180,253,22,193,180,43,160,192,180,74,41,192,180,90,178,191,180,91,59,191,180,77,196,190,180,47,77,190,180,2,214,189,180,198,94,189,180,123,231,188,180,33,112,188,180,185,248,187,180,65,129,187,180,187,9,187,180,38,146,186,180,130,26,186,180,207,162,185,180,14,43,185,180,63,179,184,180,96,59,184,180,116,195,183,180,121,75,183,180,112,211,182,
180,88,91,182,180,51,227,181,180,255,106,181,180,189,242,180,180,109,122,180,180,15,2,180,180,162,137,179,180,41,17,179,180,161,152,178,180,11,32,178,180,104,167,177,180,183,46,177,180,248,181,176,180,44,61,176,180,82,196,175,180,107,75,175,180,118,210,174,180,116,89,174,180,101,224,173,180,72,103,173,180,30,238,172,180,231,116,172,180,163,251,171,180,82,130,171,180,243,8,171,180,136,143,170,180,16,22,170,180,139,156,169,180,249,34,169,180,91,169,168,180,176,47,168,180,248,181,167,180,52,60,167,180,
99,194,166,180,133,72,166,180,156,206,165,180,166,84,165,180,163,218,164,180,148,96,164,180,121,230,163,180,82,108,163,180,31,242,162,180,224,119,162,180,149,253,161,180,61,131,161,180,218,8,161,180,107,142,160,180,241,19,160,180,106,153,159,180,216,30,159,180,59,164,158,180,145,41,158,180,220,174,157,180,28,52,157,180,81,185,156,180,121,62,156,180,151,195,155,180,170,72,155,180,177,205,154,180,173,82,154,180,158,215,153,180,132,92,153,180,95,225,152,180,47,102,152,180,244,234,151,180,174,111,151,
180,94,244,150,180,3,121,150,180,157,253,149,180,44,130,149,180,177,6,149,180,44,139,148,180,156,15,148,180,2,148,147,180,93,24,147,180,174,156,146,180,245,32,146,180,50,165,145,180,100,41,145,180,141,173,144,180,171,49,144,180,191,181,143,180,202,57,143,180,203,189,142,180,193,65,142,180,175,197,141,180,146,73,141,180,108,205,140,180,60,81,140,180,3,213,139,180,192,88,139,180,116,220,138,180,30,96,138,180,191,227,137,180,87,103,137,180,229,234,136,180,107,110,136,180,231,241,135,180,90,117,135,180,
196,248,134,180,38,124,134,180,126,255,133,180,205,130,133,180,20,6,133,180,82,137,132,180,136,12,132,180,180,143,131,180,216,18,131,180,244,149,130,180,7,25,130,180,18,156,129,180,20,31,129,180,14,162,128,180,0,37,128,180,212,79,127,180,151,85,126,180,73,91,125,180,236,96,124,180,127,102,123,180,2,108,122,180,117,113,121,180,217,118,120,180,45,124,119,180,113,129,118,180,166,134,117,180,205,139,116,180,227,144,115,180,235,149,114,180,229,154,113,180,207,159,112,180,170,164,111,180,120,169,110,180,
54,174,109,180,230,178,108,180,136,183,107,180,28,188,106,180,162,192,105,180,26,197,104,180,132,201,103,180,225,205,102,180,48,210,101,180,113,214,100,180,165,218,99,180,204,222,98,180,229,226,97,180,242,230,96,180,241,234,95,180,228,238,94,180,202,242,93,180,163,246,92,180,112,250,91,180,48,254,90,180,228,1,90,180,140,5,89,180,40,9,88,180,184,12,87,180,60,16,86,180,180,19,85,180,33,23,84,180,130,26,83,180,215,29,82,180,33,33,81,180,96,36,80,180,148,39,79,180,189,42,78,180,219,45,77,180,238,48,76,
180,247,51,75,180,245,54,74,180,232,57,73,180,209,60,72,180,176,63,71,180,133,66,70,180,79,69,69,180,16,72,68,180,199,74,67,180,116,77,66,180,24,80,65,180,178,82,64,180,66,85,63,180,202,87,62,180,72,90,61,180,189,92,60,180,41,95,59,180,140,97,58,180,231,99,57,180,57,102,56,180,130,104,55,180,195,106,54,180,251,108,53,180,44,111,52,180,84,113,51,180,116,115,50,180,141,117,49,180,157,119,48,180,166,121,47,180,168,123,46,180,162,125,45,180,148,127,44,180,128,129,43,180,100,131,42,180,65,133,41,180,23,
135,40,180,231,136,39,180,175,138,38,180,113,140,37,180,45,142,36,180,226,143,35,180,145,145,34,180,58,147,33,180,221,148,32,180,122,150,31,180,17,152,30,180,162,153,29,180,45,155,28,180,179,156,27,180,52,158,26,180,175,159,25,180,38,161,24,180,151,162,23,180,3,164,22,180,106,165,21,180,204,166,20,180,42,168,19,180,131,169,18,180,216,170,17,180,40,172,16,180,116,173,15,180,188,174,14,180,0,176,13,180,65,177,12,180,125,178,11,180,181,179,10,180,234,180,9,180,28,182,8,180,74,183,7,180,117,184,6,180,
157,185,5,180,193,186,4,180,227,187,3,180,2,189,2,180,30,190,1,180,56,191,0,180,157,128,255,179,198,130,253,179,235,132,251,179,11,135,249,179,39,137,247,179,63,139,245,179,83,141,243,179,100,143,241,179,113,145,239,179,123,147,237,179,131,149,235,179,135,151,233,179,138,153,231,179,138,155,229,179,136,157,227,179,132,159,225,179,126,161,223,179,119,163,221,179,111,165,219,179,102,167,217,179,92,169,215,179,82,171,213,179,71,173,211,179,60,175,209,179,49,177,207,179,39,179,205,179,29,181,203,179,
20,183,201,179,11,185,199,179,4,187,197,179,255,188,195,179,250,190,193,179,248,192,191,179,248,194,189,179,250,196,187,179,254,198,185,179,5,201,183,179,15,203,181,179,28,205,179,179,44,207,177,179,64,209,175,179,87,211,173,179,114,213,171,179,146,215,169,179,182,217,167,179,222,219,165,179,11,222,163,179,62,224,161,179,117,226,159,179,178,228,157,179,244,230,155,179,61,233,153,179,139,235,151,179,223,237,149,179,59,240,147,179,156,242,145,179,5,245,143,179,117,247,141,179,236,249,139,179,106,252,
137,179,241,254,135,179,127,1,134,179,22,4,132,179,181,6,130,179,92,9,128,179,25,24,124,179,140,29,120,179,17,35,116,179,169,40,112,179,84,46,108,179,19,52,104,179,230,57,100,179,206,63,96,179,203,69,92,179,221,75,88,179,5,82,84,179,67,88,80,179,152,94,76,179,4,101,72,179,136,107,68,179,36,114,64,179,216,120,60,179,164,127,56,179,138,134,52,179,138,141,48,179,164,148,44,179,216,155,40,179,39,163,36,179,145,170,32,179,23,178,28,179,185,185,24,179,120,193,20,179,84,201,16,179,77,209,12,179,101,217,
8,179,154,225,4,179,238,233,0,179,194,228,249,178,232,245,241,178,77,7,234,178,243,24,226,178,219,42,218,178,5,61,210,178,114,79,202,178,35,98,194,178,25,117,186,178,85,136,178,178,216,155,170,178,162,175,162,178,180,195,154,178,15,216,146,178,181,236,138,178,165,1,131,178,192,45,118,178,209,88,102,178,123,132,86,178,194,176,70,178,167,221,54,178,43,11,39,178,81,57,23,178,25,104,7,178,12,47,239,177,50,143,207,177,168,240,175,177,113,83,144,177,34,111,97,177,20,58,34,177,130,15,198,176,185,96,15,176,
230,164,218,47,52,253,180,48,194,165,25,49,15,202,88,49,189,245,139,49,254,132,171,49,200,18,203,49,22,159,234,49,243,20,5,50,155,217,20,50,128,157,36,50,160,96,52,50,251,34,68,50,143,228,83,50,90,165,99,50,90,101,115,50,71,146,129,50,121,113,137,50,68,80,145,50,167,46,153,50,159,12,161,50,46,234,168,50,81,199,176,50,9,164,184,50,83,128,192,50,48,92,200,50,159,55,208,50,158,18,216,50,45,237,223,50,76,199,231,50,248,160,239,50,50,122,247,50,249,82,255,50,166,149,3,51,149,129,7,51,73,109,11,51,193,
88,15,51,254,67,19,51,255,46,23,51,195,25,27,51,74,4,31,51,148,238,34,51,160,216,38,51,110,194,42,51,253,171,46,51,77,149,50,51,94,126,54,51,47,103,58,51,192,79,62,51,16,56,66,51,32,32,70,51,237,7,74,51,121,239,77,51,195,214,81,51,202,189,85,51,142,164,89,51,14,139,93,51,75,113,97,51,67,87,101,51,246,60,105,51,101,34,109,51,142,7,113,51,113,236,116,51,14,209,120,51,100,181,124,51,185,76,128,51,157,62,130,51,93,48,132,51,248,33,134,51,111,19,136,51,194,4,138,51,240,245,139,51,248,230,141,51,220,215,
143,51,154,200,145,51,51,185,147,51,166,169,149,51,243,153,151,51,26,138,153,51,26,122,155,51,244,105,157,51,167,89,159,51,51,73,161,51,151,56,163,51,213,39,165,51,235,22,167,51,217,5,169,51,159,244,170,51,61,227,172,51,178,209,174,51,255,191,176,51,35,174,178,51,30,156,180,51,240,137,182,51,152,119,184,51,23,101,186,51,108,82,188,51,152,63,190,51,153,44,192,51,111,25,194,51,27,6,196,51,156,242,197,51,242,222,199,51,29,203,201,51,29,183,203,51,241,162,205,51,154,142,207,51,22,122,209,51,102,101,211,
51,138,80,213,51,129,59,215,51,75,38,217,51,233,16,219,51,89,251,220,51,156,229,222,51,178,207,224,51,153,185,226,51,83,163,228,51,223,140,230,51,60,118,232,51,107,95,234,51,106,72,236,51,59,49,238,51,221,25,240,51,80,2,242,51,147,234,243,51,166,210,245,51,138,186,247,51,61,162,249,51,192,137,251,51,18,113,253,51,52,88,255,51,147,159,0,52,242,146,1,52,58,134,2,52,104,121,3,52,126,108,4,52,123,95,5,52,94,82,6,52,41,69,7,52,218,55,8,52,114,42,9,52,241,28,10,52,86,15,11,52,162,1,12,52,211,243,12,52,
235,229,13,52,233,215,14,52,206,201,15,52,152,187,16,52,71,173,17,52,221,158,18,52,88,144,19,52,184,129,20,52,255,114,21,52,42,100,22,52,58,85,23,52,48,70,24,52,11,55,25,52,203,39,26,52,111,24,27,52,248,8,28,52,102,249,28,52,185,233,29,52,240,217,30,52,11,202,31,52,11,186,32,52,238,169,33,52,182,153,34,52,98,137,35,52,241,120,36,52,101,104,37,52,188,87,38,52,247,70,39,52,21,54,40,52,23,37,41,52,252,19,42,52,196,2,43,52,111,241,43,52,254,223,44,52,111,206,45,52,195,188,46,52,250,170,47,52,19,153,48,
52,15,135,49,52,238,116,50,52,175,98,51,52,82,80,52,52,215,61,53,52,63,43,54,52,136,24,55,52,179,5,56,52,193,242,56,52,175,223,57,52,128,204,58,52,50,185,59,52,197,165,60,52,58,146,61,52,144,126,62,52,199,106,63,52,223,86,64,52,216,66,65,52,178,46,66,52,109,26,67,52,8,6,68,52,132,241,68,52,225,220,69,52,30,200,70,52,59,179,71,52,56,158,72,52,22,137,73,52,211,115,74,52,113,94,75,52,238,72,76,52,75,51,77,52,136,29,78,52,164,7,79,52,160,241,79,52,123,219,80,52,53,197,81,52,207,174,82,52,72,152,83,52,
159,129,84,52,214,106,85,52,236,83,86,52,224,60,87,52,179,37,88,52,100,14,89,52,244,246,89,52,98,223,90,52,175,199,91,52,217,175,92,52,226,151,93,52,201,127,94,52,142,103,95,52,48,79,96,52,177,54,97,52,15,30,98,52,74,5,99,52,99,236,99,52,89,211,100,52,45,186,101,52,221,160,102,52,107,135,103,52,214,109,104,52,30,84,105,52,67,58,106,52,68,32,107,52,34,6,108,52,220,235,108,52,115,209,109,52,231,182,110,52,54,156,111,52,98,129,112,52,106,102,113,52,78,75,114,52,14,48,115,52,170,20,116,52,33,249,116,
52,116,221,117,52,163,193,118,52,173,165,119,52,147,137,120,52,84,109,121,52,240,80,122,52,103,52,123,52,185,23,124,52,230,250,124,52,238,221,125,52,209,192,126,52,143,163,127,52,19,67,128,52,77,180,128,52,115,37,129,52,135,150,129,52,136,7,130,52,117,120,130,52,80,233,130,52,24,90,131,52,205,202,131,52,111,59,132,52,253,171,132,52,121,28,133,52,225,140,133,52,54,253,133,52,119,109,134,52,165,221,134,52,192,77,135,52,199,189,135,52,187,45,136,52,156,157,136,52,104,13,137,52,33,125,137,52,199,236,
137,52,89,92,138,52,215,203,138,52,65,59,139,52,151,170,139,52,218,25,140,52,8,137,140,52,35,248,140,52,41,103,141,52,28,214,141,52,250,68,142,52,196,179,142,52,122,34,143,52,28,145,143,52,170,255,143,52,35,110,144,52,136,220,144,52,216,74,145,52,20,185,145,52,60,39,146,52,79,149,146,52,78,3,147,52,55,113,147,52,13,223,147,52,205,76,148,52,121,186,148,52,16,40,149,52,146,149,149,52,255,2,150,52,88,112,150,52,155,221,150,52,202,74,151,52,227,183,151,52,232,36,152,52,215,145,152,52,177,254,152,52,118,
107,153,52,38,216,153,52,192,68,154,52,69,177,154,52,181,29,155,52,15,138,155,52,84,246,155,52,131,98,156,52,157,206,156,52,161,58,157,52,144,166,157,52,104,18,158,52,44,126,158,52,217,233,158,52,113,85,159,52,243,192,159,52,95,44,160,52,181,151,160,52,245,2,161,52,31,110,161,52,51,217,161,52,49,68,162,52,25,175,162,52,235,25,163,52,167,132,163,52,76,239,163,52,219,89,164,52,84,196,164,52,183,46,165,52,3,153,165,52,56,3,166,52,87,109,166,52,96,215,166,52,82,65,167,52,45,171,167,52,242,20,168,52,160,
126,168,52,56,232,168,52,184,81,169,52,34,187,169,52,117,36,170,52,177,141,170,52,215,246,170,52,229,95,171,52,220,200,171,52,188,49,172,52,133,154,172,52,55,3,173,52,210,107,173,52,86,212,173,52,194,60,174,52,23,165,174,52,85,13,175,52,124,117,175,52,139,221,175,52,130,69,176,52,98,173,176,52,43,21,177,52,220,124,177,52,118,228,177,52,247,75,178,52,97,179,178,52,180,26,179,52,239,129,179,52,18,233,179,52,29,80,180,52,16,183,180,52,235,29,181,52,174,132,181,52,90,235,181,52,237,81,182,52,104,184,
182,52,203,30,183,52,23,133,183,52,73,235,183,52,100,81,184,52,102,183,184,52,80,29,185,52,34,131,185,52,220,232,185,52,124,78,186,52,5,180,186,52,117,25,187,52,205,126,187,52,11,228,187,52,50,73,188,52,63,174,188,52,52,19,189,52,17,120,189,52,212,220,189,52,127,65,190,52,17,166,190,52,138,10,191,52,234,110,191,52,49,211,191,52,96,55,192,52,117,155,192,52,113,255,192,52,84,99,193,52,30,199,193,52,207,42,194,52,102,142,194,52,229,241,194,52,74,85,195,52,150,184,195,52,200,27,196,52,225,126,196,52,
224,225,196,52,199,68,197,52,147,167,197,52,70,10,198,52,224,108,198,52,96,207,198,52,198,49,199,52,18,148,199,52,69,246,199,52,94,88,200,52,93,186,200,52,67,28,201,52,14,126,201,52,192,223,201,52,88,65,202,52,214,162,202,52,57,4,203,52,131,101,203,52,179,198,203,52,200,39,204,52,195,136,204,52,164,233,204,52,107,74,205,52,24,171,205,52,170,11,206,52,34,108,206,52,128,204,206,52,195,44,207,52,236,140,207,52,250,236,207,52,238,76,208,52,199,172,208,52,133,12,209,52,41,108,209,52,179,203,209,52,33,
43,210,52,117,138,210,52,174,233,210,52,205,72,211,52,208,167,211,52,185,6,212,52,135,101,212,52,57,196,212,52,209,34,213,52,78,129,213,52,176,223,213,52,246,61,214,52,34,156,214,52,50,250,214,52,40,88,215,52,2,182,215,52,192,19,216,52,100,113,216,52,236,206,216,52,89,44,217,52,170,137,217,52,224,230,217,52,251,67,218,52,250,160,218,52,221,253,218,52,165,90,219,52,82,183,219,52,226,19,220,52,87,112,220,52,177,204,220,52,238,40,221,52,16,133,221,52,22,225,221,52,0,61,222,52,207,152,222,52,129,244,
222,52,24,80,223,52,146,171,223,52,241,6,224,52,51,98,224,52,90,189,224,52,100,24,225,52,82,115,225,52,37,206,225,52,218,40,226,52,116,131,226,52,241,221,226,52,82,56,227,52,151,146,227,52,192,236,227,52,204,70,228,52,187,160,228,52,142,250,228,52,69,84,229,52,223,173,229,52,92,7,230,52,189,96,230,52,2,186,230,52,41,19,231,52,52,108,231,52,34,197,231,52,244,29,232,52,168,118,232,52,64,207,232,52,187,39,233,52,25,128,233,52,91,216,233,52,127,48,234,52,134,136,234,52,112,224,234,52,62,56,235,52,238,
143,235,52,129,231,235,52,247,62,236,52,80,150,236,52,139,237,236,52,169,68,237,52,170,155,237,52,142,242,237,52,85,73,238,52,254,159,238,52,137,246,238,52,248,76,239,52,73,163,239,52,124,249,239,52,146,79,240,52,138,165,240,52,101,251,240,52,34,81,241,52,193,166,241,52,67,252,241,52,167,81,242,52,238,166,242,52,22,252,242,52,33,81,243,52,14,166,243,52,221,250,243,52,143,79,244,52,34,164,244,52,151,248,244,52,239,76,245,52,40,161,245,52,68,245,245,52,65,73,246,52,33,157,246,52,226,240,246,52,133,
68,247,52,10,152,247,52,112,235,247,52,185,62,248,52,227,145,248,52,239,228,248,52,220,55,249,52,171,138,249,52,92,221,249,52,238,47,250,52,98,130,250,52,184,212,250,52,239,38,251,52,7,121,251,52,1,203,251,52,220,28,252,52,153,110,252,52,55,192,252,52,182,17,253,52,23,99,253,52,89,180,253,52,124,5,254,52,128,86,254,52,102,167,254,52,44,248,254,52,212,72,255,52,93,153,255,52,199,233,255,52,9,29,0,53,31,69,0,53,37,109,0,53,28,149,0,53,4,189,0,53,220,228,0,53,164,12,1,53,93,52,1,53,6,92,1,53,159,131,
1,53,41,171,1,53,164,210,1,53,14,250,1,53,105,33,2,53,181,72,2,53,240,111,2,53,28,151,2,53,56,190,2,53,69,229,2,53,65,12,3,53,46,51,3,53,12,90,3,53,217,128,3,53,151,167,3,53,68,206,3,53,226,244,3,53,112,27,4,53,239,65,4,53,93,104,4,53,188,142,4,53,10,181,4,53,73,219,4,53,120,1,5,53,151,39,5,53,166,77,5,53,165,115,5,53,148,153,5,53,115,191,5,53,66,229,5,53,1,11,6,53,176,48,6,53,79,86,6,53,222,123,6,53,92,161,6,53,203,198,6,53,42,236,6,53,120,17,7,53,183,54,7,53,229,91,7,53,3,129,7,53,18,166,7,53,15,
203,7,53,253,239,7,53,219,20,8,53,168,57,8,53,101,94,8,53,18,131,8,53,175,167,8,53,59,204,8,53,183,240,8,53,35,21,9,53,127,57,9,53,202,93,9,53,5,130,9,53,47,166,9,53,74,202,9,53,84,238,9,53,77,18,10,53,54,54,10,53,15,90,10,53,216,125,10,53,143,161,10,53,55,197,10,53,206,232,10,53,85,12,11,53,203,47,11,53,49,83,11,53,134,118,11,53,203,153,11,53,255,188,11,53,35,224,11,53,54,3,12,53,57,38,12,53,43,73,12,53,12,108,12,53,221,142,12,53,158,177,12,53,77,212,12,53,237,246,12,53,123,25,13,53,249,59,13,53,
102,94,13,53,195,128,13,53,15,163,13,53,74,197,13,53,117,231,13,53,142,9,14,53,151,43,14,53,144,77,14,53,119,111,14,53,78,145,14,53,20,179,14,53,202,212,14,53,110,246,14,53,2,24,15,53,133,57,15,53,247,90,15,53,89,124,15,53,169,157,15,53,233,190,15,53,24,224,15,53,53,1,16,53,66,34,16,53,63,67,16,53,42,100,16,53,4,133,16,53,205,165,16,53,134,198,16,53,45,231,16,53,196,7,17,53,73,40,17,53,190,72,17,53,34,105,17,53,116,137,17,53,182,169,17,53,230,201,17,53,6,234,17,53,20,10,18,53,18,42,18,53,254,73,18,
53,217,105,18,53,163,137,18,53,93,169,18,53,5,201,18,53,155,232,18,53,33,8,19,53,150,39,19,53,249,70,19,53,76,102,19,53,141,133,19,53,189,164,19,53,219,195,19,53,233,226,19,53,229,1,20,53,208,32,20,53,170,63,20,53,115,94,20,53,43,125,20,53,209,155,20,53,102,186,20,53,233,216,20,53,92,247,20,53,189,21,21,53,12,52,21,53,75,82,21,53,120,112,21,53,148,142,21,53,158,172,21,53,151,202,21,53,127,232,21,53,85,6,22,53,26,36,22,53,206,65,22,53,112,95,22,53,1,125,22,53,128,154,22,53,238,183,22,53,74,213,22,
53,149,242,22,53,207,15,23,53,247,44,23,53,14,74,23,53,19,103,23,53,6,132,23,53,232,160,23,53,185,189,23,53,120,218,23,53,38,247,23,53,194,19,24,53,76,48,24,53,197,76,24,53,45,105,24,53,130,133,24,53,199,161,24,53,249,189,24,53,26,218,24,53,42,246,24,53,39,18,25,53,20,46,25,53,238,73,25,53,183,101,25,53,110,129,25,53,20,157,25,53,168,184,25,53,42,212,25,53,154,239,25,53,249,10,26,53,70,38,26,53,130,65,26,53,172,92,26,53,196,119,26,53,202,146,26,53,190,173,26,53,161,200,26,53,114,227,26,53,49,254,
26,53,223,24,27,53,122,51,27,53,4,78,27,53,124,104,27,53,227,130,27,53,55,157,27,53,122,183,27,53,170,209,27,53,201,235,27,53,214,5,28,53,210,31,28,53,187,57,28,53,147,83,28,53,88,109,28,53,12,135,28,53,174,160,28,53,62,186,28,53,188,211,28,53,40,237,28,53,130,6,29,53,202,31,29,53,1,57,29,53,37,82,29,53,55,107,29,53,56,132,29,53,38,157,29,53,3,182,29,53,205,206,29,53,134,231,29,53,44,0,30,53,193,24,30,53,68,49,30,53,180,73,30,53,18,98,30,53,95,122,30,53,153,146,30,53,194,170,30,53,216,194,30,53,220,
218,30,53,206,242,30,53,174,10,31,53,125,34,31,53,56,58,31,53,226,81,31,53,122,105,31,53,0,129,31,53,115,152,31,53,212,175,31,53,36,199,31,53,97,222,31,53,140,245,31,53,165,12,32,53,171,35,32,53,160,58,32,53,130,81,32,53,82,104,32,53,16,127,32,53,188,149,32,53,86,172,32,53,221,194,32,53,82,217,32,53,181,239,32,53,6,6,33,53,69,28,33,53,113,50,33,53,139,72,33,53,147,94,33,53,136,116,33,53,108,138,33,53,61,160,33,53,252,181,33,53,168,203,33,53,66,225,33,53,202,246,33,53,64,12,34,53,163,33,34,53,244,
54,34,53,51,76,34,53,96,97,34,53,122,118,34,53,130,139,34,53,119,160,34,53,90,181,34,53,43,202,34,53,233,222,34,53,150,243,34,53,47,8,35,53,183,28,35,53,44,49,35,53,142,69,35,53,223,89,35,53,28,110,35,53,72,130,35,53,97,150,35,53,104,170,35,53,92,190,35,53,62,210,35,53,13,230,35,53,202,249,35,53,117,13,36,53,13,33,36,53,147,52,36,53,6,72,36,53,103,91,36,53,181,110,36,53,241,129,36,53,27,149,36,53,50,168,36,53,55,187,36,53,41,206,36,53,8,225,36,53,213,243,36,53,144,6,37,53,56,25,37,53,206,43,37,53,
81,62,37,53,194,80,37,53,32,99,37,53,107,117,37,53,164,135,37,53,203,153,37,53,223,171,37,53,224,189,37,53,207,207,37,53,172,225,37,53,118,243,37,53,45,5,38,53,210,22,38,53,100,40,38,53,228,57,38,53,81,75,38,53,171,92,38,53,243,109,38,53,41,127,38,53,75,144,38,53,92,161,38,53,89,178,38,53,68,195,38,53,29,212,38,53,226,228,38,53,150,245,38,53,54,6,39,53,196,22,39,53,64,39,39,53,168,55,39,53,254,71,39,53,66,88,39,53,115,104,39,53,145,120,39,53,157,136,39,53,149,152,39,53,124,168,39,53,79,184,39,53,
16,200,39,53,191,215,39,53,90,231,39,53,227,246,39,53,90,6,40,53,190,21,40,53,15,37,40,53,77,52,40,53,121,67,40,53,146,82,40,53,152,97,40,53,139,112,40,53,108,127,40,53,59,142,40,53,246,156,40,53,159,171,40,53,53,186,40,53,185,200,40,53,41,215,40,53,135,229,40,53,211,243,40,53,11,2,41,53,49,16,41,53,68,30,41,53,69,44,41,53,50,58,41,53,13,72,41,53,214,85,41,53,139,99,41,53,46,113,41,53,190,126,41,53,59,140,41,53,166,153,41,53,254,166,41,53,67,180,41,53,117,193,41,53,149,206,41,53,161,219,41,53,155,
232,41,53,131,245,41,53,87,2,42,53,25,15,42,53,200,27,42,53,100,40,42,53,238,52,42,53,100,65,42,53,200,77,42,53,25,90,42,53,88,102,42,53,131,114,42,53,156,126,42,53,162,138,42,53,149,150,42,53,118,162,42,53,68,174,42,53,255,185,42,53,167,197,42,53,60,209,42,53,190,220,42,53,46,232,42,53,139,243,42,53,213,254,42,53,12,10,43,53,49,21,43,53,67,32,43,53,66,43,43,53,46,54,43,53,7,65,43,53,206,75,43,53,129,86,43,53,34,97,43,53,176,107,43,53,43,118,43,53,148,128,43,53,233,138,43,53,44,149,43,53,92,159,43,
53,121,169,43,53,132,179,43,53,123,189,43,53,96,199,43,53,50,209,43,53,241,218,43,53,157,228,43,53,55,238,43,53,189,247,43,53,49,1,44,53,146,10,44,53,224,19,44,53,28,29,44,53,68,38,44,53,90,47,44,53,92,56,44,53,76,65,44,53,42,74,44,53,244,82,44,53,171,91,44,53,80,100,44,53,226,108,44,53,97,117,44,53,205,125,44,53,39,134,44,53,109,142,44,53,161,150,44,53,194,158,44,53,208,166,44,53,203,174,44,53,179,182,44,53,137,190,44,53,75,198,44,53,251,205,44,53,152,213,44,53,34,221,44,53,154,228,44,53,254,235,
44,53,80,243,44,53,143,250,44,53,187,1,45,53,212,8,45,53,219,15,45,53,206,22,45,53,175,29,45,53,125,36,45,53,56,43,45,53,224,49,45,53,117,56,45,53,248,62,45,53,104,69,45,53,197,75,45,53,15,82,45,53,70,88,45,53,107,94,45,53,124,100,45,53,123,106,45,53,103,112,45,53,64,118,45,53,7,124,45,53,186,129,45,53,91,135,45,53,233,140,45,53,100,146,45,53,204,151,45,53,34,157,45,53,100,162,45,53,148,167,45,53,177,172,45,53,187,177,45,53,179,182,45,53,151,187,45,53,105,192,45,53,40,197,45,53,212,201,45,53,110,
206,45,53,244,210,45,53,104,215,45,53,201,219,45,53,23,224,45,53,82,228,45,53,123,232,45,53,145,236,45,53,148,240,45,53,132,244,45,53,98,248,45,53,44,252,45,53,228,255,45,53,137,3,46,53,27,7,46,53,155,10,46,53,8,14,46,53,98,17,46,53,169,20,46,53,221,23,46,53,255,26,46,53,14,30,46,53,10,33,46,53,243,35,46,53,202,38,46,53,142,41,46,53,63,44,46,53,221,46,46,53,105,49,46,53,226,51,46,53,72,54,46,53,155,56,46,53,220,58,46,53,10,61,46,53,37,63,46,53,45,65,46,53,35,67,46,53,6,69,46,53,214,70,46,53,147,72,
46,53,62,74,46,53,214,75,46,53,91,77,46,53,206,78,46,53,46,80,46,53,123,81,46,53,181,82,46,53,221,83,46,53,242,84,46,53,245,85,46,53,228,86,46,53,193,87,46,53,139,88,46,53,67,89,46,53,232,89,46,53,122,90,46,53,250,90,46,53,103,91,46,53,193,91,46,53,8,92,46,53,61,92,46,53,95,92,46,53,111,92,46,53,108,92,46,53,86,92,46,53,46,92,46,53,242,91,46,53,165,91,46,53,68,91,46,53,209,90,46,53,76,90,46,53,180,89,46,53,9,89,46,53,75,88,46,53,123,87,46,53,152,86,46,53,163,85,46,53,155,84,46,53,128,83,46,53,83,
82,46,53,20,81,46,53,193,79,46,53,92,78,46,53,229,76,46,53,91,75,46,53,190,73,46,53,15,72,46,53,77,70,46,53,120,68,46,53,145,66,46,53,152,64,46,53,140,62,46,53,109,60,46,53,60,58,46,53,248,55,46,53,162,53,46,53,57,51,46,53,190,48,46,53,48,46,46,53,144,43,46,53,221,40,46,53,24,38,46,53,64,35,46,53,86,32,46,53,89,29,46,53,73,26,46,53,39,23,46,53,243,19,46,53,172,16,46,53,83,13,46,53,231,9,46,53,105,6,46,53,216,2,46,53,53,255,45,53,128,251,45,53,184,247,45,53,221,243,45,53,240,239,45,53,241,235,45,53,
223,231,45,53,187,227,45,53,132,223,45,53,59,219,45,53,224,214,45,53,114,210,45,53,242,205,45,53,95,201,45,53,186,196,45,53,3,192,45,53,57,187,45,53,93,182,45,53,110,177,45,53,109,172,45,53,90,167,45,53,52,162,45,53,253,156,45,53,178,151,45,53,86,146,45,53,231,140,45,53,102,135,45,53,210,129,45,53,44,124,45,53,116,118,45,53,169,112,45,53,205,106,45,53,222,100,45,53,220,94,45,53,201,88,45,53,163,82,45,53,107,76,45,53,32,70,45,53,195,63,45,53,85,57,45,53,211,50,45,53,64,44,45,53,154,37,45,53,226,30,
45,53,24,24,45,53,60,17,45,53,78,10,45,53,77,3,45,53,58,252,44,53,21,245,44,53,222,237,44,53,148,230,44,53,57,223,44,53,203,215,44,53,75,208,44,53,185,200,44,53,21,193,44,53,94,185,44,53,150,177,44,53,187,169,44,53,206,161,44,53,207,153,44,53,191,145,44,53,155,137,44,53,102,129,44,53,31,121,44,53,198,112,44,53,90,104,44,53,221,95,44,53,77,87,44,53,172,78,44,53,248,69,44,53,51,61,44,53,91,52,44,53,113,43,44,53,117,34,44,53,104,25,44,53,72,16,44,53,22,7,44,53,210,253,43,53,125,244,43,53,21,235,43,53,
155,225,43,53,16,216,43,53,114,206,43,53,195,196,43,53,1,187,43,53,46,177,43,53,72,167,43,53,81,157,43,53,72,147,43,53,45,137,43,53,0,127,43,53,193,116,43,53,112,106,43,53,14,96,43,53,153,85,43,53,19,75,43,53,123,64,43,53,209,53,43,53,21,43,43,53,71,32,43,53,104,21,43,53,118,10,43,53,115,255,42,53,94,244,42,53,56,233,42,53,255,221,42,53,181,210,42,53,89,199,42,53,235,187,42,53,107,176,42,53,218,164,42,53,55,153,42,53,130,141,42,53,188,129,42,53,228,117,42,53,250,105,42,53,254,93,42,53,241,81,42,53,
210,69,42,53,161,57,42,53,95,45,42,53,11,33,42,53,166,20,42,53,46,8,42,53,165,251,41,53,11,239,41,53,95,226,41,53,161,213,41,53,210,200,41,53,241,187,41,53,255,174,41,53,250,161,41,53,229,148,41,53,190,135,41,53,133,122,41,53,59,109,41,53,223,95,41,53,114,82,41,53,243,68,41,53,99,55,41,53,193,41,41,53,14,28,41,53,73,14,41,53,115,0,41,53,139,242,40,53,146,228,40,53,135,214,40,53,107,200,40,53,62,186,40,53,255,171,40,53,175,157,40,53,77,143,40,53,218,128,40,53,86,114,40,53,192,99,40,53,25,85,40,53,
97,70,40,53,151,55,40,53,188,40,40,53,207,25,40,53,210,10,40,53,195,251,39,53,162,236,39,53,113,221,39,53,46,206,39,53,218,190,39,53,116,175,39,53,254,159,39,53,118,144,39,53,220,128,39,53,50,113,39,53,119,97,39,53,170,81,39,53,204,65,39,53,221,49,39,53,220,33,39,53,203,17,39,53,168,1,39,53,117,241,38,53,48,225,38,53,218,208,38,53,115,192,38,53,250,175,38,53,113,159,38,53,215,142,38,53,43,126,38,53,111,109,38,53,161,92,38,53,195,75,38,53,211,58,38,53,210,41,38,53,193,24,38,53,158,7,38,53,106,246,
37,53,38,229,37,53,208,211,37,53,106,194,37,53,242,176,37,53,106,159,37,53,208,141,37,53,38,124,37,53,107,106,37,53,159,88,37,53,194,70,37,53,212,52,37,53,213,34,37,53,197,16,37,53,165,254,36,53,116,236,36,53,50,218,36,53,223,199,36,53,123,181,36,53,7,163,36,53,129,144,36,53,235,125,36,53,68,107,36,53,141,88,36,53,197,69,36,53,236,50,36,53,2,32,36,53,7,13,36,53,252,249,35,53,224,230,35,53,180,211,35,53,119,192,35,53,41,173,35,53,202,153,35,53,91,134,35,53,220,114,35,53,75,95,35,53,170,75,35,53,249,
55,35,53,55,36,35,53,100,16,35,53,129,252,34,53,141,232,34,53,137,212,34,53,116,192,34,53,79,172,34,53,25,152,34,53,211,131,34,53,124,111,34,53,21,91,34,53,157,70,34,53,21,50,34,53,125,29,34,53,212,8,34,53,27,244,33,53,81,223,33,53,119,202,33,53,140,181,33,53,145,160,33,53,134,139,33,53,107,118,33,53,63,97,33,53,3,76,33,53,182,54,33,53,90,33,33,53,237,11,33,53,111,246,32,53,226,224,32,53,68,203,32,53,150,181,32,53,216,159,32,53,10,138,32,53,43,116,32,53,60,94,32,53,61,72,32,53,46,50,32,53,15,28,32,
53,224,5,32,53,160,239,31,53,81,217,31,53,241,194,31,53,129,172,31,53,1,150,31,53,114,127,31,53,210,104,31,53,34,82,31,53,98,59,31,53,146,36,31,53,178,13,31,53,194,246,30,53,194,223,30,53,178,200,30,53,146,177,30,53,98,154,30,53,34,131,30,53,211,107,30,53,115,84,30,53,4,61,30,53,133,37,30,53,245,13,30,53,87,246,29,53,168,222,29,53,233,198,29,53,27,175,29,53,60,151,29,53,78,127,29,53,81,103,29,53,67,79,29,53,38,55,29,53,249,30,29,53,188,6,29,53,112,238,28,53,19,214,28,53,168,189,28,53,44,165,28,53,
161,140,28,53,6,116,28,53,92,91,28,53,162,66,28,53,216,41,28,53,255,16,28,53,22,248,27,53,30,223,27,53,22,198,27,53,255,172,27,53,216,147,27,53,161,122,27,53,91,97,27,53,6,72,27,53,161,46,27,53,44,21,27,53,169,251,26,53,21,226,26,53,115,200,26,53,193,174,26,53,255,148,26,53,46,123,26,53,78,97,26,53,95,71,26,53,96,45,26,53,82,19,26,53,52,249,25,53,7,223,25,53,203,196,25,53,128,170,25,53,38,144,25,53,188,117,25,53,67,91,25,53,186,64,25,53,35,38,25,53,124,11,25,53,199,240,24,53,2,214,24,53,45,187,24,
53,74,160,24,53,88,133,24,53,86,106,24,53,70,79,24,53,38,52,24,53,248,24,24,53,186,253,23,53,109,226,23,53,18,199,23,53,167,171,23,53,45,144,23,53,164,116,23,53,13,89,23,53,102,61,23,53,176,33,23,53,236,5,23,53,25,234,22,53,54,206,22,53,69,178,22,53,69,150,22,53,54,122,22,53,25,94,22,53,236,65,22,53,177,37,22,53,103,9,22,53,14,237,21,53,166,208,21,53,48,180,21,53,171,151,21,53,23,123,21,53,117,94,21,53,196,65,21,53,4,37,21,53,53,8,21,53,88,235,20,53,108,206,20,53,114,177,20,53,105,148,20,53,81,119,
20,53,43,90,20,53,246,60,20,53,179,31,20,53,97,2,20,53,1,229,19,53,146,199,19,53,21,170,19,53,137,140,19,53,239,110,19,53,71,81,19,53,144,51,19,53,202,21,19,53,246,247,18,53,20,218,18,53,36,188,18,53,37,158,18,53,23,128,18,53,252,97,18,53,210,67,18,53,154,37,18,53,84,7,18,53,255,232,17,53,156,202,17,53,43,172,17,53,172,141,17,53,30,111,17,53,130,80,17,53,217,49,17,53,33,19,17,53,90,244,16,53,134,213,16,53,164,182,16,53,179,151,16,53,181,120,16,53,168,89,16,53,142,58,16,53,101,27,16,53,46,252,15,53,
234,220,15,53,151,189,15,53,55,158,15,53,200,126,15,53,76,95,15,53,193,63,15,53,41,32,15,53,131,0,15,53,207,224,14,53,13,193,14,53,61,161,14,53,96,129,14,53,116,97,14,53,123,65,14,53,116,33,14,53,96,1,14,53,61,225,13,53,13,193,13,53,207,160,13,53,132,128,13,53,43,96,13,53,196,63,13,53,79,31,13,53,205,254,12,53,62,222,12,53,160,189,12,53,245,156,12,53,61,124,12,53,119,91,12,53,163,58,12,53,194,25,12,53,211,248,11,53,215,215,11,53,206,182,11,53,183,149,11,53,146,116,11,53,97,83,11,53,33,50,11,53,213,
16,11,53,123,239,10,53,19,206,10,53,158,172,10,53,28,139,10,53,141,105,10,53,240,71,10,53,71,38,10,53,143,4,10,53,203,226,9,53,249,192,9,53,27,159,9,53,47,125,9,53,53,91,9,53,47,57,9,53,27,23,9,53,251,244,8,53,205,210,8,53,146,176,8,53,74,142,8,53,245,107,8,53,147,73,8,53,36,39,8,53,168,4,8,53,31,226,7,53,137,191,7,53,230,156,7,53,55,122,7,53,122,87,7,53,176,52,7,53,217,17,7,53,246,238,6,53,6,204,6,53,8,169,6,53,254,133,6,53,231,98,6,53,196,63,6,53,148,28,6,53,86,249,5,53,13,214,5,53,182,178,5,53,
83,143,5,53,227,107,5,53,102,72,5,53,221,36,5,53,71,1,5,53,164,221,4,53,245,185,4,53,57,150,4,53,113,114,4,53,156,78,4,53,187,42,4,53,205,6,4,53,210,226,3,53,203,190,3,53,184,154,3,53,152,118,3,53,108,82,3,53,51,46,3,53,238,9,3,53,157,229,2,53,63,193,2,53,213,156,2,53,95,120,2,53,220,83,2,53,77,47,2,53,178,10,2,53,10,230,1,53,86,193,1,53,150,156,1,53,202,119,1,53,242,82,1,53,13,46,1,53,28,9,1,53,31,228,0,53,22,191,0,53,1,154,0,53,224,116,0,53,179,79,0,53,122,42,0,53,53,5,0,53,198,191,255,52,12,117,
255,52,57,42,255,52,79,223,254,52,77,148,254,52,51,73,254,52,1,254,253,52,183,178,253,52,86,103,253,52,220,27,253,52,76,208,252,52,163,132,252,52,227,56,252,52,12,237,251,52,29,161,251,52,22,85,251,52,248,8,251,52,195,188,250,52,118,112,250,52,18,36,250,52,150,215,249,52,4,139,249,52,90,62,249,52,153,241,248,52,193,164,248,52,209,87,248,52,203,10,248,52,173,189,247,52,121,112,247,52,45,35,247,52,203,213,246,52,82,136,246,52,193,58,246,52,26,237,245,52,93,159,245,52,136,81,245,52,157,3,245,52,155,
181,244,52,130,103,244,52,83,25,244,52,13,203,243,52,177,124,243,52,62,46,243,52,181,223,242,52,21,145,242,52,95,66,242,52,147,243,241,52,176,164,241,52,183,85,241,52,168,6,241,52,130,183,240,52,70,104,240,52,245,24,240,52,141,201,239,52,15,122,239,52,123,42,239,52,209,218,238,52,17,139,238,52,59,59,238,52,80,235,237,52,78,155,237,52,55,75,237,52,10,251,236,52,199,170,236,52,111,90,236,52,1,10,236,52,125,185,235,52,228,104,235,52,53,24,235,52,113,199,234,52,151,118,234,52,168,37,234,52,164,212,233,
52,138,131,233,52,91,50,233,52,22,225,232,52,189,143,232,52,78,62,232,52,202,236,231,52,49,155,231,52,130,73,231,52,191,247,230,52,231,165,230,52,250,83,230,52,248,1,230,52,225,175,229,52,181,93,229,52,116,11,229,52,31,185,228,52,180,102,228,52,54,20,228,52,162,193,227,52,250,110,227,52,61,28,227,52,108,201,226,52,134,118,226,52,140,35,226,52,125,208,225,52,90,125,225,52,35,42,225,52,215,214,224,52,119,131,224,52,2,48,224,52,122,220,223,52,221,136,223,52,45,53,223,52,104,225,222,52,143,141,222,52,
162,57,222,52,161,229,221,52,140,145,221,52,100,61,221,52,39,233,220,52,215,148,220,52,115,64,220,52,251,235,219,52,111,151,219,52,208,66,219,52,29,238,218,52,87,153,218,52,125,68,218,52,143,239,217,52,143,154,217,52,122,69,217,52,82,240,216,52,23,155,216,52,201,69,216,52,103,240,215,52,243,154,215,52,106,69,215,52,207,239,214,52,33,154,214,52,96,68,214,52,139,238,213,52,164,152,213,52,169,66,213,52,156,236,212,52,124,150,212,52,73,64,212,52,3,234,211,52,171,147,211,52,63,61,211,52,194,230,210,52,
49,144,210,52,142,57,210,52,216,226,209,52,16,140,209,52,53,53,209,52,72,222,208,52,72,135,208,52,54,48,208,52,18,217,207,52,220,129,207,52,147,42,207,52,56,211,206,52,203,123,206,52,76,36,206,52,186,204,205,52,23,117,205,52,97,29,205,52,154,197,204,52,193,109,204,52,214,21,204,52,217,189,203,52,202,101,203,52,169,13,203,52,119,181,202,52,51,93,202,52,222,4,202,52,118,172,201,52,254,83,201,52,115,251,200,52,216,162,200,52,42,74,200,52,108,241,199,52,156,152,199,52,186,63,199,52,200,230,198,52,196,
141,198,52,175,52,198,52,137,219,197,52,82,130,197,52,9,41,197,52,176,207,196,52,69,118,196,52,202,28,196,52,62,195,195,52,161,105,195,52,243,15,195,52,52,182,194,52,100,92,194,52,132,2,194,52,147,168,193,52,145,78,193,52,127,244,192,52,93,154,192,52,41,64,192,52,230,229,191,52,145,139,191,52,45,49,191,52,184,214,190,52,51,124,190,52,157,33,190,52,248,198,189,52,66,108,189,52,124,17,189,52,166,182,188,52,192,91,188,52,201,0,188,52,195,165,187,52],"i8",4,y.a+1300480);
Q([173,74,187,52,135,239,186,52,81,148,186,52,12,57,186,52,182,221,185,52,81,130,185,52,220,38,185,52,88,203,184,52,195,111,184,52,32,20,184,52,108,184,183,52,170,92,183,52,215,0,183,52,246,164,182,52,5,73,182,52,5,237,181,52,245,144,181,52,214,52,181,52,168,216,180,52,107,124,180,52,31,32,180,52,195,195,179,52,89,103,179,52,224,10,179,52,87,174,178,52,192,81,178,52,26,245,177,52,101,152,177,52,161,59,177,52,207,222,176,52,237,129,176,52,254,36,176,52,255,199,175,52,242,106,175,52,214,13,175,52,172,
176,174,52,116,83,174,52,45,246,173,52,216,152,173,52,116,59,173,52,2,222,172,52,130,128,172,52,243,34,172,52,87,197,171,52,172,103,171,52,243,9,171,52,45,172,170,52,88,78,170,52,117,240,169,52,132,146,169,52,134,52,169,52,122,214,168,52,95,120,168,52,55,26,168,52,2,188,167,52,191,93,167,52,110,255,166,52,15,161,166,52,163,66,166,52,42,228,165,52,163,133,165,52,15,39,165,52,109,200,164,52,190,105,164,52,2,11,164,52,56,172,163,52,97,77,163,52,125,238,162,52,140,143,162,52,142,48,162,52,131,209,161,
52,107,114,161,52,70,19,161,52,20,180,160,52,213,84,160,52,137,245,159,52,49,150,159,52,204,54,159,52,90,215,158,52,219,119,158,52,80,24,158,52,184,184,157,52,20,89,157,52,99,249,156,52,166,153,156,52,221,57,156,52,7,218,155,52,36,122,155,52,54,26,155,52,59,186,154,52,52,90,154,52,33,250,153,52,2,154,153,52,215,57,153,52,160,217,152,52,92,121,152,52,13,25,152,52,178,184,151,52,75,88,151,52,217,247,150,52,90,151,150,52,208,54,150,52,58,214,149,52,153,117,149,52,235,20,149,52,51,180,148,52,111,83,148,
52,159,242,147,52,196,145,147,52,222,48,147,52,236,207,146,52,239,110,146,52,231,13,146,52,211,172,145,52,180,75,145,52,139,234,144,52,86,137,144,52,22,40,144,52,203,198,143,52,117,101,143,52,20,4,143,52,168,162,142,52,50,65,142,52,177,223,141,52,37,126,141,52,142,28,141,52,237,186,140,52,65,89,140,52,138,247,139,52,201,149,139,52,254,51,139,52,40,210,138,52,71,112,138,52,92,14,138,52,103,172,137,52,104,74,137,52,94,232,136,52,75,134,136,52,45,36,136,52,5,194,135,52,211,95,135,52,151,253,134,52,81,
155,134,52,1,57,134,52,167,214,133,52,67,116,133,52,214,17,133,52,95,175,132,52,222,76,132,52,83,234,131,52,191,135,131,52,33,37,131,52,122,194,130,52,201,95,130,52,15,253,129,52,75,154,129,52,126,55,129,52,167,212,128,52,200,113,128,52,223,14,128,52,217,87,127,52,227,145,126,52,218,203,125,52,191,5,125,52,146,63,124,52,83,121,123,52,2,179,122,52,160,236,121,52,43,38,121,52,166,95,120,52,14,153,119,52,101,210,118,52,171,11,118,52,224,68,117,52,3,126,116,52,21,183,115,52,22,240,114,52,7,41,114,52,
230,97,113,52,181,154,112,52,115,211,111,52,32,12,111,52,189,68,110,52,74,125,109,52,198,181,108,52,50,238,107,52,142,38,107,52,217,94,106,52,21,151,105,52,65,207,104,52,93,7,104,52,106,63,103,52,102,119,102,52,83,175,101,52,49,231,100,52,0,31,100,52,191,86,99,52,111,142,98,52,15,198,97,52,161,253,96,52,36,53,96,52,152,108,95,52,253,163,94,52,84,219,93,52,156,18,93,52,213,73,92,52,0,129,91,52,29,184,90,52,43,239,89,52,43,38,89,52,30,93,88,52,2,148,87,52,216,202,86,52,161,1,86,52,92,56,85,52,9,111,
84,52,168,165,83,52,58,220,82,52,191,18,82,52,55,73,81,52,161,127,80,52,254,181,79,52,78,236,78,52,145,34,78,52,200,88,77,52,241,142,76,52,14,197,75,52,30,251,74,52,34,49,74,52,26,103,73,52,5,157,72,52,227,210,71,52,182,8,71,52,124,62,70,52,55,116,69,52,229,169,68,52,136,223,67,52,31,21,67,52,171,74,66,52,43,128,65,52,159,181,64,52,8,235,63,52,102,32,63,52,184,85,62,52,0,139,61,52,60,192,60,52,109,245,59,52,148,42,59,52,176,95,58,52,193,148,57,52,199,201,56,52,195,254,55,52,181,51,55,52,156,104,54,
52,121,157,53,52,76,210,52,52,21,7,52,52,211,59,51,52,136,112,50,52,51,165,49,52,212,217,48,52,108,14,48,52,250,66,47,52,127,119,46,52,250,171,45,52,108,224,44,52,213,20,44,52,52,73,43,52,139,125,42,52,216,177,41,52,29,230,40,52,89,26,40,52,140,78,39,52,183,130,38,52,217,182,37,52,243,234,36,52,4,31,36,52,13,83,35,52,14,135,34,52,7,187,33,52,248,238,32,52,225,34,32,52,194,86,31,52,155,138,30,52,109,190,29,52,55,242,28,52,250,37,28,52,181,89,27,52,106,141,26,52,22,193,25,52,188,244,24,52,91,40,24,
52,242,91,23,52,131,143,22,52,13,195,21,52,145,246,20,52,14,42,20,52,132,93,19,52,244,144,18,52,93,196,17,52,192,247,16,52,29,43,16,52,116,94,15,52,197,145,14,52,16,197,13,52,86,248,12,52,149,43,12,52,207,94,11,52,3,146,10,52,50,197,9,52,91,248,8,52,128,43,8,52,158,94,7,52,184,145,6,52,205,196,5,52,221,247,4,52,232,42,4,52,238,93,3,52,239,144,2,52,236,195,1,52,228,246,0,52,216,41,0,52,143,185,254,51,102,31,253,51,52,133,251,51,250,234,249,51,183,80,248,51,110,182,246,51,28,28,245,51,195,129,243,51,
98,231,241,51,251,76,240,51,140,178,238,51,23,24,237,51,155,125,235,51,25,227,233,51,144,72,232,51,1,174,230,51,109,19,229,51,210,120,227,51,50,222,225,51,141,67,224,51,226,168,222,51,50,14,221,51,126,115,219,51,196,216,217,51,6,62,216,51,68,163,214,51,126,8,213,51,179,109,211,51,229,210,209,51,19,56,208,51,61,157,206,51,100,2,205,51,136,103,203,51,169,204,201,51,199,49,200,51,226,150,198,51,251,251,196,51,18,97,195,51,39,198,193,51,57,43,192,51,74,144,190,51,89,245,188,51,103,90,187,51,115,191,185,
51,127,36,184,51,137,137,182,51,147,238,180,51,156,83,179,51,165,184,177,51,173,29,176,51,181,130,174,51,190,231,172,51,199,76,171,51,208,177,169,51,218,22,168,51,228,123,166,51,240,224,164,51,253,69,163,51,11,171,161,51,26,16,160,51,44,117,158,51,63,218,156,51,84,63,155,51,107,164,153,51,132,9,152,51,160,110,150,51,191,211,148,51,225,56,147,51,5,158,145,51,45,3,144,51,88,104,142,51,135,205,140,51,185,50,139,51,240,151,137,51,42,253,135,51,105,98,134,51,171,199,132,51,243,44,131,51,63,146,129,51,
33,239,127,51,206,185,124,51,133,132,121,51,71,79,118,51,20,26,115,51,236,228,111,51,209,175,108,51,194,122,105,51,191,69,102,51,201,16,99,51,225,219,95,51,6,167,92,51,56,114,89,51,122,61,86,51,201,8,83,51,40,212,79,51,150,159,76,51,20,107,73,51,161,54,70,51,63,2,67,51,238,205,63,51,174,153,60,51,126,101,57,51,97,49,54,51,86,253,50,51,92,201,47,51,118,149,44,51,163,97,41,51,227,45,38,51,54,250,34,51,158,198,31,51,26,147,28,51,171,95,25,51,81,44,22,51,12,249,18,51,222,197,15,51,197,146,12,51,194,95,
9,51,215,44,6,51,2,250,2,51,138,142,255,50,64,41,249,50,37,196,242,50,60,95,236,50,132,250,229,50,254,149,223,50,171,49,217,50,140,205,210,50,162,105,204,50,236,5,198,50,108,162,191,50,34,63,185,50,15,220,178,50,52,121,172,50,145,22,166,50,39,180,159,50,247,81,153,50,1,240,146,50,70,142,140,50,199,44,134,50,9,151,127,50,254,212,114,50,110,19,102,50,91,82,89,50,198,145,76,50,177,209,63,50,28,18,51,50,10,83,38,50,123,148,25,50,113,214,12,50,237,24,0,50,226,183,230,49,251,62,205,49,41,199,179,49,110,
80,154,49,205,218,128,49,145,204,78,49,198,229,27,49,124,2,210,48,255,123,88,48,248,195,79,46,49,122,62,176,159,243,196,176,180,82,21,177,53,41,72,177,77,253,122,177,123,231,150,177,22,79,176,177,116,181,201,177,147,26,227,177,112,126,252,177,133,240,10,178,45,161,23,178,49,81,36,178,142,0,49,178,68,175,61,178,81,93,74,178,180,10,87,178,107,183,99,178,117,99,112,178,209,14,125,178,191,220,132,178,189,49,139,178,97,134,145,178,172,218,151,178,157,46,158,178,50,130,164,178,108,213,170,178,73,40,177,
178,201,122,183,178,235,204,189,178,175,30,196,178,20,112,202,178,25,193,208,178,190,17,215,178,2,98,221,178,228,177,227,178,99,1,234,178,128,80,240,178,57,159,246,178,142,237,252,178,191,157,1,179,132,196,4,179,22,235,7,179,116,17,11,179,159,55,14,179,149,93,17,179,87,131,20,179,228,168,23,179,60,206,26,179,95,243,29,179,75,24,33,179,2,61,36,179,130,97,39,179,204,133,42,179,222,169,45,179,185,205,48,179,93,241,51,179,200,20,55,179,251,55,58,179,245,90,61,179,182,125,64,179,61,160,67,179,139,194,
70,179,159,228,73,179,121,6,77,179,24,40,80,179,124,73,83,179,165,106,86,179,145,139,89,179,66,172,92,179,183,204,95,179,239,236,98,179,234,12,102,179,168,44,105,179,41,76,108,179,107,107,111,179,111,138,114,179,53,169,117,179,187,199,120,179,3,230,123,179,11,4,127,179,233,16,129,179,173,159,130,179,81,46,132,179,212,188,133,179,55,75,135,179,121,217,136,179,154,103,138,179,154,245,139,179,121,131,141,179,54,17,143,179,210,158,144,179,76,44,146,179,165,185,147,179,219,70,149,179,239,211,150,179,225,
96,152,179,176,237,153,179,93,122,155,179,231,6,157,179,78,147,158,179,145,31,160,179,178,171,161,179,175,55,163,179,136,195,164,179,62,79,166,179,207,218,167,179,61,102,169,179,134,241,170,179,171,124,172,179,171,7,174,179,135,146,175,179,62,29,177,179,207,167,178,179,60,50,180,179,131,188,181,179,164,70,183,179,160,208,184,179,118,90,186,179,38,228,187,179,176,109,189,179,20,247,190,179,81,128,192,179,103,9,194,179,87,146,195,179,32,27,197,179,193,163,198,179,60,44,200,179,142,180,201,179,186,60,
203,179,189,196,204,179,153,76,206,179,77,212,207,179,216,91,209,179,60,227,210,179,118,106,212,179,136,241,213,179,113,120,215,179,50,255,216,179,201,133,218,179,54,12,220,179,123,146,221,179,149,24,223,179,134,158,224,179,77,36,226,179,234,169,227,179,93,47,229,179,165,180,230,179,195,57,232,179,182,190,233,179,126,67,235,179,27,200,236,179,141,76,238,179,212,208,239,179,239,84,241,179,223,216,242,179,162,92,244,179,58,224,245,179,166,99,247,179,230,230,248,179,249,105,250,179,223,236,251,179,153,
111,253,179,38,242,254,179,67,58,0,180,93,251,0,180,95,188,1,180,75,125,2,180,33,62,3,180,223,254,3,180,134,191,4,180,23,128,5,180,144,64,6,180,242,0,7,180,60,193,7,180,112,129,8,180,140,65,9,180,144,1,10,180,125,193,10,180,82,129,11,180,16,65,12,180,181,0,13,180,67,192,13,180,185,127,14,180,23,63,15,180,92,254,15,180,138,189,16,180,159,124,17,180,156,59,18,180,129,250,18,180,77,185,19,180,0,120,20,180,155,54,21,180,29,245,21,180,134,179,22,180,215,113,23,180,14,48,24,180,44,238,24,180,50,172,25,
180,30,106,26,180,241,39,27,180,171,229,27,180,75,163,28,180,210,96,29,180,63,30,30,180,147,219,30,180,204,152,31,180,237,85,32,180,243,18,33,180,223,207,33,180,178,140,34,180,106,73,35,180,8,6,36,180,140,194,36,180,246,126,37,180,70,59,38,180,123,247,38,180,149,179,39,180,149,111,40,180,122,43,41,180,68,231,41,180,244,162,42,180,137,94,43,180,3,26,44,180,98,213,44,180,165,144,45,180,206,75,46,180,219,6,47,180,205,193,47,180,164,124,48,180,95,55,49,180,254,241,49,180,130,172,50,180,235,102,51,180,
55,33,52,180,104,219,52,180,125,149,53,180,117,79,54,180,82,9,55,180,19,195,55,180,183,124,56,180,64,54,57,180,171,239,57,180,251,168,58,180,46,98,59,180,68,27,60,180,62,212,60,180,27,141,61,180,219,69,62,180,127,254,62,180,5,183,63,180,111,111,64,180,187,39,65,180,234,223,65,180,252,151,66,180,241,79,67,180,201,7,68,180,131,191,68,180,31,119,69,180,158,46,70,180,0,230,70,180,67,157,71,180,105,84,72,180,113,11,73,180,91,194,73,180,40,121,74,180,214,47,75,180,101,230,75,180,215,156,76,180,43,83,77,
180,96,9,78,180,118,191,78,180,110,117,79,180,72,43,80,180,3,225,80,180,159,150,81,180,29,76,82,180,123,1,83,180,187,182,83,180,220,107,84,180,222,32,85,180,192,213,85,180,131,138,86,180,40,63,87,180,172,243,87,180,18,168,88,180,88,92,89,180,126,16,90,180,133,196,90,180,108,120,91,180,51,44,92,180,218,223,92,180,98,147,93,180,202,70,94,180,17,250,94,180,57,173,95,180,64,96,96,180,39,19,97,180,238,197,97,180,148,120,98,180,26,43,99,180,128,221,99,180,196,143,100,180,233,65,101,180,236,243,101,180,
207,165,102,180,145,87,103,180,49,9,104,180,177,186,104,180,16,108,105,180,78,29,106,180,106,206,106,180,102,127,107,180,63,48,108,180,248,224,108,180,143,145,109,180,4,66,110,180,88,242,110,180,138,162,111,180,155,82,112,180,137,2,113,180,86,178,113,180,1,98,114,180,138,17,115,180,240,192,115,180,53,112,116,180,87,31,117,180,87,206,117,180,53,125,118,180,240,43,119,180,137,218,119,180,255,136,120,180,83,55,121,180,132,229,121,180,146,147,122,180,125,65,123,180,70,239,123,180,235,156,124,180,110,
74,125,180,205,247,125,180,10,165,126,180,35,82,127,180,24,255,127,180,245,85,128,180,77,172,128,180,147,2,129,180,199,88,129,180,233,174,129,180,249,4,130,180,248,90,130,180,228,176,130,180,191,6,131,180,135,92,131,180,62,178,131,180,227,7,132,180,117,93,132,180,246,178,132,180,100,8,133,180,192,93,133,180,10,179,133,180,66,8,134,180,103,93,134,180,122,178,134,180,123,7,135,180,106,92,135,180,70,177,135,180,15,6,136,180,198,90,136,180,107,175,136,180,253,3,137,180,125,88,137,180,234,172,137,180,
68,1,138,180,140,85,138,180,193,169,138,180,228,253,138,180,243,81,139,180,240,165,139,180,218,249,139,180,177,77,140,180,118,161,140,180,39,245,140,180,198,72,141,180,81,156,141,180,202,239,141,180,47,67,142,180,130,150,142,180,193,233,142,180,237,60,143,180,6,144,143,180,12,227,143,180,255,53,144,180,222,136,144,180,170,219,144,180,99,46,145,180,8,129,145,180,155,211,145,180,25,38,146,180,132,120,146,180,220,202,146,180,33,29,147,180,81,111,147,180,110,193,147,180,120,19,148,180,110,101,148,180,
80,183,148,180,31,9,149,180,218,90,149,180,129,172,149,180,20,254,149,180,148,79,150,180,0,161,150,180,88,242,150,180,156,67,151,180,204,148,151,180,232,229,151,180,240,54,152,180,228,135,152,180,196,216,152,180,144,41,153,180,72,122,153,180,235,202,153,180,123,27,154,180,246,107,154,180,93,188,154,180,176,12,155,180,239,92,155,180,25,173,155,180,47,253,155,180,48,77,156,180,29,157,156,180,246,236,156,180,186,60,157,180,106,140,157,180,5,220,157,180,140,43,158,180,254,122,158,180,91,202,158,180,164,
25,159,180,216,104,159,180,247,183,159,180,2,7,160,180,248,85,160,180,217,164,160,180,165,243,160,180,92,66,161,180,255,144,161,180,140,223,161,180,5,46,162,180,105,124,162,180,183,202,162,180,241,24,163,180,21,103,163,180,37,181,163,180,31,3,164,180,5,81,164,180,213,158,164,180,143,236,164,180,53,58,165,180,197,135,165,180,65,213,165,180,166,34,166,180,247,111,166,180,50,189,166,180,87,10,167,180,104,87,167,180,98,164,167,180,72,241,167,180,23,62,168,180,210,138,168,180,118,215,168,180,5,36,169,
180,127,112,169,180,226,188,169,180,48,9,170,180,105,85,170,180,139,161,170,180,152,237,170,180,143,57,171,180,113,133,171,180,60,209,171,180,241,28,172,180,145,104,172,180,27,180,172,180,142,255,172,180,236,74,173,180,52,150,173,180,101,225,173,180,129,44,174,180,134,119,174,180,118,194,174,180,79,13,175,180,18,88,175,180,191,162,175,180,85,237,175,180,213,55,176,180,63,130,176,180,147,204,176,180,208,22,177,180,247,96,177,180,8,171,177,180,2,245,177,180,230,62,178,180,179,136,178,180,106,210,178,
180,10,28,179,180,147,101,179,180,6,175,179,180,99,248,179,180,168,65,180,180,215,138,180,180,240,211,180,180,241,28,181,180,220,101,181,180,176,174,181,180,110,247,181,180,20,64,182,180,164,136,182,180,29,209,182,180,126,25,183,180,201,97,183,180,253,169,183,180,26,242,183,180,32,58,184,180,15,130,184,180,231,201,184,180,168,17,185,180,82,89,185,180,228,160,185,180,95,232,185,180,196,47,186,180,17,119,186,180,70,190,186,180,101,5,187,180,108,76,187,180,92,147,187,180,52,218,187,180,245,32,188,180,
159,103,188,180,49,174,188,180,172,244,188,180,16,59,189,180,91,129,189,180,144,199,189,180,173,13,190,180,178,83,190,180,159,153,190,180,117,223,190,180,52,37,191,180,219,106,191,180,106,176,191,180,225,245,191,180,64,59,192,180,136,128,192,180,184,197,192,180,208,10,193,180,208,79,193,180,185,148,193,180,137,217,193,180,66,30,194,180,227,98,194,180,107,167,194,180,220,235,194,180,53,48,195,180,117,116,195,180,158,184,195,180,174,252,195,180,167,64,196,180,135,132,196,180,79,200,196,180,255,11,197,
180,151,79,197,180,22,147,197,180,125,214,197,180,204,25,198,180,3,93,198,180,33,160,198,180,39,227,198,180,20,38,199,180,233,104,199,180,166,171,199,180,74,238,199,180,214,48,200,180,73,115,200,180,164,181,200,180,230,247,200,180,16,58,201,180,33,124,201,180,26,190,201,180,249,255,201,180,193,65,202,180,111,131,202,180,5,197,202,180,130,6,203,180,230,71,203,180,50,137,203,180,100,202,203,180,126,11,204,180,127,76,204,180,104,141,204,180,55,206,204,180,237,14,205,180,139,79,205,180,15,144,205,180,
123,208,205,180,205,16,206,180,7,81,206,180,40,145,206,180,47,209,206,180,29,17,207,180,242,80,207,180,175,144,207,180,81,208,207,180,219,15,208,180,76,79,208,180,163,142,208,180,225,205,208,180,6,13,209,180,17,76,209,180,4,139,209,180,221,201,209,180,156,8,210,180,66,71,210,180,207,133,210,180,66,196,210,180,156,2,211,180,221,64,211,180,4,127,211,180,17,189,211,180,5,251,211,180,223,56,212,180,160,118,212,180,71,180,212,180,213,241,212,180,73,47,213,180,163,108,213,180,228,169,213,180,11,231,213,
180,24,36,214,180,12,97,214,180,230,157,214,180,165,218,214,180,76,23,215,180,216,83,215,180,75,144,215,180,163,204,215,180,226,8,216,180,7,69,216,180,18,129,216,180,3,189,216,180,218,248,216,180,151,52,217,180,58,112,217,180,195,171,217,180,50,231,217,180,135,34,218,180,194,93,218,180,226,152,218,180,233,211,218,180,213,14,219,180,168,73,219,180,96,132,219,180,254,190,219,180,129,249,219,180,235,51,220,180,58,110,220,180,111,168,220,180,137,226,220,180,138,28,221,180,111,86,221,180,59,144,221,180,
236,201,221,180,131,3,222,180,255,60,222,180,97,118,222,180,169,175,222,180,213,232,222,180,232,33,223,180,224,90,223,180,189,147,223,180,128,204,223,180,40,5,224,180,182,61,224,180,41,118,224,180,130,174,224,180,191,230,224,180,226,30,225,180,235,86,225,180,217,142,225,180,172,198,225,180,100,254,225,180,1,54,226,180,132,109,226,180,236,164,226,180,57,220,226,180,107,19,227,180,131,74,227,180,127,129,227,180,97,184,227,180,40,239,227,180,212,37,228,180,100,92,228,180,218,146,228,180,53,201,228,180,
117,255,228,180,154,53,229,180,164,107,229,180,147,161,229,180,103,215,229,180,31,13,230,180,189,66,230,180,63,120,230,180,167,173,230,180,243,226,230,180,36,24,231,180,58,77,231,180,52,130,231,180,20,183,231,180,216,235,231,180,129,32,232,180,14,85,232,180,129,137,232,180,216,189,232,180,19,242,232,180,52,38,233,180,56,90,233,180,34,142,233,180,240,193,233,180,163,245,233,180,58,41,234,180,182,92,234,180,23,144,234,180,92,195,234,180,133,246,234,180,147,41,235,180,133,92,235,180,92,143,235,180,23,
194,235,180,183,244,235,180,59,39,236,180,164,89,236,180,241,139,236,180,34,190,236,180,56,240,236,180,50,34,237,180,16,84,237,180,210,133,237,180,121,183,237,180,4,233,237,180,115,26,238,180,199,75,238,180,255,124,238,180,27,174,238,180,27,223,238,180,255,15,239,180,200,64,239,180,116,113,239,180,5,162,239,180,122,210,239,180,211,2,240,180,16,51,240,180,49,99,240,180,54,147,240,180,31,195,240,180,236,242,240,180,157,34,241,180,50,82,241,180,172,129,241,180,9,177,241,180,74,224,241,180,111,15,242,
180,120,62,242,180,100,109,242,180,53,156,242,180,233,202,242,180,130,249,242,180,254,39,243,180,94,86,243,180,162,132,243,180,202,178,243,180,213,224,243,180,196,14,244,180,151,60,244,180,78,106,244,180,232,151,244,180,102,197,244,180,200,242,244,180,14,32,245,180,55,77,245,180,68,122,245,180,52,167,245,180,8,212,245,180,192,0,246,180,91,45,246,180,218,89,246,180,61,134,246,180,131,178,246,180,172,222,246,180,186,10,247,180,170,54,247,180,126,98,247,180,54,142,247,180,209,185,247,180,80,229,247,
180,178,16,248,180,247,59,248,180,32,103,248,180,45,146,248,180,28,189,248,180,240,231,248,180,166,18,249,180,64,61,249,180,189,103,249,180,30,146,249,180,98,188,249,180,137,230,249,180,148,16,250,180,130,58,250,180,83,100,250,180,7,142,250,180,159,183,250,180,26,225,250,180,120,10,251,180,185,51,251,180,222,92,251,180,229,133,251,180,208,174,251,180,158,215,251,180,79,0,252,180,228,40,252,180,91,81,252,180,182,121,252,180,244,161,252,180,21,202,252,180,25,242,252,180,0,26,253,180,202,65,253,180,
119,105,253,180,7,145,253,180,122,184,253,180,208,223,253,180,10,7,254,180,38,46,254,180,37,85,254,180,7,124,254,180,204,162,254,180,116,201,254,180,255,239,254,180,109,22,255,180,190,60,255,180,242,98,255,180,9,137,255,180,2,175,255,180,223,212,255,180,158,250,255,180,32,16,0,181,227,34,0,181,151,53,0,181,60,72,0,181,211,90,0,181,91,109,0,181,212,127,0,181,63,146,0,181,156,164,0,181,233,182,0,181,40,201,0,181,89,219,0,181,123,237,0,181,142,255,0,181,146,17,1,181,136,35,1,181,112,53,1,181,72,71,1,
181,18,89,1,181,205,106,1,181,122,124,1,181,24,142,1,181,167,159,1,181,40,177,1,181,153,194,1,181,253,211,1,181,81,229,1,181,151,246,1,181,206,7,2,181,246,24,2,181,16,42,2,181,27,59,2,181,23,76,2,181,4,93,2,181,227,109,2,181,179,126,2,181,116,143,2,181,38,160,2,181,202,176,2,181,95,193,2,181,229,209,2,181,93,226,2,181,197,242,2,181,31,3,3,181,106,19,3,181,167,35,3,181,212,51,3,181,243,67,3,181,3,84,3,181,4,100,3,181,246,115,3,181,218,131,3,181,174,147,3,181,116,163,3,181,43,179,3,181,212,194,3,181,
109,210,3,181,247,225,3,181,115,241,3,181,224,0,4,181,62,16,4,181,141,31,4,181,206,46,4,181,255,61,4,181,34,77,4,181,54,92,4,181,59,107,4,181,49,122,4,181,24,137,4,181,240,151,4,181,186,166,4,181,116,181,4,181,32,196,4,181,189,210,4,181,75,225,4,181,202,239,4,181,58,254,4,181,155,12,5,181,237,26,5,181,48,41,5,181,101,55,5,181,138,69,5,181,161,83,5,181,169,97,5,181,162,111,5,181,139,125,5,181,102,139,5,181,50,153,5,181,239,166,5,181,157,180,5,181,61,194,5,181,205,207,5,181,78,221,5,181,192,234,5,181,
36,248,5,181,120,5,6,181,189,18,6,181,244,31,6,181,27,45,6,181,52,58,6,181,61,71,6,181,56,84,6,181,36,97,6,181,0,110,6,181,206,122,6,181,140,135,6,181,60,148,6,181,221,160,6,181,110,173,6,181,241,185,6,181,101,198,6,181,201,210,6,181,31,223,6,181,102,235,6,181,157,247,6,181,198,3,7,181,224,15,7,181,234,27,7,181,230,39,7,181,210,51,7,181,176,63,7,181,126,75,7,181,62,87,7,181,238,98,7,181,144,110,7,181,34,122,7,181,166,133,7,181,26,145,7,181,127,156,7,181,213,167,7,181,29,179,7,181,85,190,7,181,126,
201,7,181,152,212,7,181,163,223,7,181,159,234,7,181,140,245,7,181,106,0,8,181,56,11,8,181,248,21,8,181,169,32,8,181,74,43,8,181,221,53,8,181,96,64,8,181,212,74,8,181,58,85,8,181,144,95,8,181,215,105,8,181,15,116,8,181,56,126,8,181,82,136,8,181,93,146,8,181,89,156,8,181,69,166,8,181,35,176,8,181,241,185,8,181,177,195,8,181,97,205,8,181,2,215,8,181,148,224,8,181,23,234,8,181,139,243,8,181,240,252,8,181,70,6,9,181,141,15,9,181,196,24,9,181,237,33,9,181,6,43,9,181,16,52,9,181,11,61,9,181,247,69,9,181,
212,78,9,181,162,87,9,181,97,96,9,181,16,105,9,181,177,113,9,181,66,122,9,181,197,130,9,181,56,139,9,181,156,147,9,181,241,155,9,181,55,164,9,181,109,172,9,181,149,180,9,181,173,188,9,181,183,196,9,181,177,204,9,181,156,212,9,181,120,220,9,181,69,228,9,181,3,236,9,181,177,243,9,181,81,251,9,181,225,2,10,181,98,10,10,181,213,17,10,181,56,25,10,181,139,32,10,181,208,39,10,181,6,47,10,181,44,54,10,181,68,61,10,181,76,68,10,181,69,75,10,181,47,82,10,181,10,89,10,181,214,95,10,181,147,102,10,181,64,109,
10,181,223,115,10,181,110,122,10,181,238,128,10,181,95,135,10,181,193,141,10,181,20,148,10,181,87,154,10,181,140,160,10,181,177,166,10,181,199,172,10,181,207,178,10,181,199,184,10,181,176,190,10,181,137,196,10,181,84,202,10,181,16,208,10,181,188,213,10,181,89,219,10,181,231,224,10,181,102,230,10,181,214,235,10,181,55,241,10,181,137,246,10,181,203,251,10,181,255,0,11,181,35,6,11,181,56,11,11,181,62,16,11,181,53,21,11,181,29,26,11,181,246,30,11,181,192,35,11,181,122,40,11,181,37,45,11,181,194,49,11,
181,79,54,11,181,205,58,11,181,60,63,11,181,156,67,11,181,236,71,11,181,46,76,11,181,97,80,11,181,132,84,11,181,152,88,11,181,158,92,11,181,148,96,11,181,123,100,11,181,83,104,11,181,27,108,11,181,213,111,11,181,128,115,11,181,27,119,11,181,168,122,11,181,37,126,11,181,147,129,11,181,242,132,11,181,66,136,11,181,131,139,11,181,181,142,11,181,216,145,11,181,236,148,11,181,240,151,11,181,230,154,11,181,204,157,11,181,164,160,11,181,108,163,11,181,37,166,11,181,207,168,11,181,106,171,11,181,247,173,
11,181,115,176,11,181,225,178,11,181,64,181,11,181,144,183,11,181,209,185,11,181,2,188,11,181,37,190,11,181,56,192,11,181,61,194,11,181,50,196,11,181,25,198,11,181,240,199,11,181,184,201,11,181,114,203,11,181,28,205,11,181,183,206,11,181,67,208,11,181,192,209,11,181,46,211,11,181,141,212,11,181,221,213,11,181,30,215,11,181,80,216,11,181,115,217,11,181,135,218,11,181,140,219,11,181,130,220,11,181,104,221,11,181,64,222,11,181,9,223,11,181,195,223,11,181,110,224,11,181,10,225,11,181,150,225,11,181,20,
226,11,181,131,226,11,181,227,226,11,181,52,227,11,181,118,227,11,181,168,227,11,181,204,227,11,181,225,227,11,181,231,227,11,181,222,227,11,181,198,227,11,181,159,227,11,181,105,227,11,181,36,227,11,181,208,226,11,181,110,226,11,181,252,225,11,181,123,225,11,181,235,224,11,181,77,224,11,181,159,223,11,181,227,222,11,181,23,222,11,181,61,221,11,181,84,220,11,181,91,219,11,181,84,218,11,181,62,217,11,181,25,216,11,181,229,214,11,181,163,213,11,181,81,212,11,181,240,210,11,181,129,209,11,181,2,208,
11,181,117,206,11,181,217,204,11,181,46,203,11,181,116,201,11,181,171,199,11,181,211,197,11,181,237,195,11,181,247,193,11,181,243,191,11,181,224,189,11,181,190,187,11,181,141,185,11,181,77,183,11,181,254,180,11,181,161,178,11,181,52,176,11,181,185,173,11,181,47,171,11,181,150,168,11,181,239,165,11,181,56,163,11,181,115,160,11,181,159,157,11,181,188,154,11,181,202,151,11,181,202,148,11,181,187,145,11,181,157,142,11,181,112,139,11,181,52,136,11,181,233,132,11,181,144,129,11,181,40,126,11,181,177,122,
11,181,44,119,11,181,152,115,11,181,244,111,11,181,67,108,11,181,130,104,11,181,179,100,11,181,213,96,11,181,232,92,11,181,236,88,11,181,226,84,11,181,201,80,11,181,161,76,11,181,107,72,11,181,38,68,11,181,210,63,11,181,111,59,11,181,254,54,11,181,126,50,11,181,239,45,11,181,82,41,11,181,166,36,11,181,236,31,11,181,34,27,11,181,74,22,11,181,100,17,11,181,110,12,11,181,106,7,11,181,88,2,11,181,54,253,10,181,6,248,10,181,200,242,10,181,123,237,10,181,31,232,10,181,181,226,10,181,60,221,10,181,180,215,
10,181,30,210,10,181,121,204,10,181,198,198,10,181,4,193,10,181,51,187,10,181,84,181,10,181,102,175,10,181,106,169,10,181,95,163,10,181,70,157,10,181,30,151,10,181,231,144,10,181,162,138,10,181,79,132,10,181,236,125,10,181,124,119,10,181,253,112,10,181,111,106,10,181,211,99,10,181,40,93,10,181,111,86,10,181,167,79,10,181,209,72,10,181,236,65,10,181,249,58,10,181,248,51,10,181,232,44,10,181,201,37,10,181,156,30,10,181,97,23,10,181,23,16,10,181,191,8,10,181,88,1,10,181,227,249,9,181,95,242,9,181,205,
234,9,181,45,227,9,181,126,219,9,181,193,211,9,181,245,203,9,181,27,196,9,181,51,188,9,181,60,180,9,181,55,172,9,181,36,164,9,181,2,156,9,181,210,147,9,181,147,139,9,181,70,131,9,181,235,122,9,181,130,114,9,181,10,106,9,181,132,97,9,181,239,88,9,181,77,80,9,181,156,71,9,181,220,62,9,181,15,54,9,181,51,45,9,181,73,36,9,181,80,27,9,181,74,18,9,181,53,9,9,181,18,0,9,181,224,246,8,181,161,237,8,181,83,228,8,181,247,218,8,181,141,209,8,181,20,200,8,181,142,190,8,181,249,180,8,181,86,171,8,181,164,161,
8,181,229,151,8,181,23,142,8,181,60,132,8,181,82,122,8,181,90,112,8,181,84,102,8,181,64,92,8,181,29,82,8,181,237,71,8,181,174,61,8,181,97,51,8,181,6,41,8,181,158,30,8,181,39,20,8,181,161,9,8,181,14,255,7,181,109,244,7,181,190,233,7,181,1,223,7,181,53,212,7,181,92,201,7,181,116,190,7,181,127,179,7,181,124,168,7,181,106,157,7,181,75,146,7,181,29,135,7,181,226,123,7,181,152,112,7,181,65,101,7,181,220,89,7,181,104,78,7,181,231,66,7,181,88,55,7,181,187,43,7,181,16,32,7,181,87,20,7,181,144,8,7,181,187,
252,6,181,217,240,6,181,232,228,6,181,234,216,6,181,221,204,6,181,195,192,6,181,155,180,6,181,101,168,6,181,34,156,6,181,208,143,6,181,113,131,6,181,4,119,6,181,137,106,6,181,0,94,6,181,105,81,6,181,197,68,6,181,19,56,6,181,83,43,6,181,133,30,6,181,169,17,6,181,192,4,6,181,201,247,5,181,197,234,5,181,178,221,5,181,146,208,5,181,100,195,5,181,41,182,5,181,223,168,5,181,137,155,5,181,36,142,5,181,178,128,5,181,50,115,5,181,164,101,5,181,9,88,5,181,96,74,5,181,170,60,5,181,229,46,5,181,20,33,5,181,52,
19,5,181,72,5,5,181,77,247,4,181,69,233,4,181,47,219,4,181,12,205,4,181,219,190,4,181,157,176,4,181,81,162,4,181,248,147,4,181,145,133,4,181,28,119,4,181,155,104,4,181,11,90,4,181,110,75,4,181,196,60,4,181,12,46,4,181,71,31,4,181,116,16,4,181,148,1,4,181,166,242,3,181,171,227,3,181,163,212,3,181,141,197,3,181,106,182,3,181,57,167,3,181,251,151,3,181,175,136,3,181,87,121,3,181,241,105,3,181,125,90,3,181,252,74,3,181,110,59,3,181,211,43,3,181,42,28,3,181,116,12,3,181,177,252,2,181,224,236,2,181,2,221,
2,181,23,205,2,181,30,189,2,181,25,173,2,181,6,157,2,181,230,140,2,181,184,124,2,181,126,108,2,181,54,92,2,181,225,75,2,181,127,59,2,181,15,43,2,181,147,26,2,181,9,10,2,181,114,249,1,181,207,232,1,181,29,216,1,181,95,199,1,181,148,182,1,181,188,165,1,181,214,148,1,181,228,131,1,181,228,114,1,181,215,97,1,181,190,80,1,181,151,63,1,181,99,46,1,181,34,29,1,181,212,11,1,181,122,250,0,181,18,233,0,181,157,215,0,181,27,198,0,181,140,180,0,181,241,162,0,181,72,145,0,181,146,127,0,181,208,109,0,181,1,92,
0,181,36,74,0,181,59,56,0,181,69,38,0,181,66,20,0,181,50,2,0,181,43,224,255,180,216,187,255,180,107,151,255,180,228,114,255,180,68,78,255,180,139,41,255,180,183,4,255,180,202,223,254,180,196,186,254,180,164,149,254,180,107,112,254,180,24,75,254,180,171,37,254,180,37,0,254,180,134,218,253,180,205,180,253,180,251,142,253,180,16,105,253,180,11,67,253,180,237,28,253,180,182,246,252,180,101,208,252,180,251,169,252,180,120,131,252,180,219,92,252,180,37,54,252,180,87,15,252,180,111,232,251,180,109,193,251,
180,83,154,251,180,32,115,251,180,211,75,251,180,110,36,251,180,239,252,250,180,88,213,250,180,167,173,250,180,222,133,250,180,251,93,250,180,0,54,250,180,235,13,250,180,190,229,249,180,120,189,249,180,25,149,249,180,161,108,249,180,17,68,249,180,103,27,249,180,165,242,248,180,202,201,248,180,215,160,248,180,203,119,248,180,166,78,248,180,104,37,248,180,18,252,247,180,163,210,247,180,28,169,247,180,124,127,247,180,195,85,247,180,242,43,247,180,9,2,247,180,7,216,246,180,236,173,246,180,185,131,246,
180,110,89,246,180,11,47,246,180,142,4,246,180,250,217,245,180,77,175,245,180,136,132,245,180,171,89,245,180,182,46,245,180,168,3,245,180,130,216,244,180,68,173,244,180,237,129,244,180,127,86,244,180,248,42,244,180,90,255,243,180,163,211,243,180,212,167,243,180,237,123,243,180,238,79,243,180,216,35,243,180,169,247,242,180,98,203,242,180,3,159,242,180,141,114,242,180,255,69,242,180,88,25,242,180,154,236,241,180,196,191,241,180,215,146,241,180,209,101,241,180,180,56,241,180,128,11,241,180,51,222,240,
180,207,176,240,180,83,131,240,180,192,85,240,180,21,40,240,180,82,250,239,180,120,204,239,180,134,158,239,180,125,112,239,180,93,66,239,180,37,20,239,180,213,229,238,180,110,183,238,180,240,136,238,180,91,90,238,180,174,43,238,180,233,252,237,180,14,206,237,180,27,159,237,180,17,112,237,180,240,64,237,180,184,17,237,180,104,226,236,180,1,179,236,180,132,131,236,180,239,83,236,180,67,36,236,180,128,244,235,180,166,196,235,180,181,148,235,180,173,100,235,180,142,52,235,180,88,4,235,180,11,212,234,
180,168,163,234,180,45,115,234,180,156,66,234,180,244,17,234,180,53,225,233,180,95,176,233,180,115,127,233,180,112,78,233,180,86,29,233,180,38,236,232,180,223,186,232,180,129,137,232,180,13,88,232,180,131,38,232,180,225,244,231,180,42,195,231,180,91,145,231,180,119,95,231,180,124,45,231,180,106,251,230,180,66,201,230,180,4,151,230,180,176,100,230,180,69,50,230,180,196,255,229,180,44,205,229,180,127,154,229,180,187,103,229,180,225,52,229,180,241,1,229,180,235,206,228,180,206,155,228,180,156,104,228,
180,84,53,228,180,245,1,228,180,129,206,227,180,246,154,227,180,86,103,227,180,160,51,227,180,211,255,226,180,241,203,226,180,249,151,226,180,236,99,226,180,200,47,226,180,143,251,225,180,64,199,225,180,219,146,225,180,97,94,225,180,209,41,225,180,43,245,224,180,112,192,224,180,159,139,224,180,184,86,224,180,188,33,224,180,171,236,223,180,132,183,223,180,71,130,223,180,246,76,223,180,142,23,223,180,18,226,222,180,128,172,222,180,216,118,222,180,28,65,222,180,74,11,222,180,99,213,221,180,103,159,221,
180,85,105,221,180,46,51,221,180,243,252,220,180,162,198,220,180,60,144,220,180,193,89,220,180,49,35,220,180,139,236,219,180,209,181,219,180,2,127,219,180,30,72,219,180,38,17,219,180,24,218,218,180,245,162,218,180,190,107,218,180,114,52,218,180,17,253,217,180,155,197,217,180,17,142,217,180,114,86,217,180,190,30,217,180,246,230,216,180,25,175,216,180,40,119,216,180,34,63,216,180,7,7,216,180,216,206,215,180,149,150,215,180,61,94,215,180,208,37,215,180,80,237,214,180,187,180,214,180,17,124,214,180,84,
67,214,180,130,10,214,180,155,209,213,180,161,152,213,180,146,95,213,180,112,38,213,180,57,237,212,180,238,179,212,180,143,122,212,180,28,65,212,180,148,7,212,180,249,205,211,180,74,148,211,180,135,90,211,180,176,32,211,180,197,230,210,180,199,172,210,180,180,114,210,180,142,56,210,180,84,254,209,180,6,196,209,180,164,137,209,180,47,79,209,180,166,20,209,180,10,218,208,180,90,159,208,180,150,100,208,180,191,41,208,180,212,238,207,180,214,179,207,180,196,120,207,180,159,61,207,180,102,2,207,180,26,
199,206,180,187,139,206,180,72,80,206,180,194,20,206,180,41,217,205,180,125,157,205,180,189,97,205,180,234,37,205,180,5,234,204,180,11,174,204,180,255,113,204,180,224,53,204,180,174,249,203,180,105,189,203,180,16,129,203,180,165,68,203,180,39,8,203,180,150,203,202,180,242,142,202,180,60,82,202,180,114,21,202,180,150,216,201,180,167,155,201,180,165,94,201,180,145,33,201,180,106,228,200,180,48,167,200,180,228,105,200,180,133,44,200,180,20,239,199,180,144,177,199,180,249,115,199,180,80,54,199,180,149,
248,198,180,199,186,198,180,231,124,198,180,245,62,198,180,240,0,198,180,217,194,197,180,176,132,197,180,117,70,197,180,39,8,197,180,199,201,196,180,85,139,196,180,209,76,196,180,59,14,196,180,147,207,195,180,217,144,195,180,13,82,195,180,46,19,195,180,62,212,194,180,60,149,194,180,41,86,194,180,3,23,194,180,204,215,193,180,130,152,193,180,39,89,193,180,187,25,193,180,60,218,192,180,172,154,192,180,11,91,192,180,87,27,192,180,146,219,191,180,188,155,191,180,212,91,191,180,219,27,191,180,208,219,190,
180,180,155,190,180,134,91,190,180,71,27,190,180,247,218,189,180,149,154,189,180,34,90,189,180,158,25,189,180,9,217,188,180,99,152,188,180,171,87,188,180,226,22,188,180,8,214,187,180,29,149,187,180,33,84,187,180,21,19,187,180,247,209,186,180,200,144,186,180,136,79,186,180,55,14,186,180,214,204,185,180,100,139,185,180,225,73,185,180,77,8,185,180,168,198,184,180,243,132,184,180,45,67,184,180,87,1,184,180,112,191,183,180,120,125,183,180,112,59,183,180,87,249,182,180,46,183,182,180,244,116,182,180,170,
50,182,180,80,240,181,180,229,173,181,180,106,107,181,180,223,40,181,180,67,230,180,180,151,163,180,180,219,96,180,180,15,30,180,180,50,219,179,180,70,152,179,180,73,85,179,180,60,18,179,180,32,207,178,180,243,139,178,180,183,72,178,180,106,5,178,180,14,194,177,180,161,126,177,180,37,59,177,180,153,247,176,180,254,179,176,180,82,112,176,180,151,44,176,180,205,232,175,180,242,164,175,180,8,97,175,180,15,29,175,180,6,217,174,180,237,148,174,180,197,80,174,180,141,12,174,180,70,200,173,180,240,131,173,
180,138,63,173,180,21,251,172,180,145,182,172,180,253,113,172,180,90,45,172,180,168,232,171,180,231,163,171,180,23,95,171,180,55,26,171,180,73,213,170,180,75,144,170,180,63,75,170,180,35,6,170,180,249,192,169,180,191,123,169,180,119,54,169,180,32,241,168,180,186,171,168,180,69,102,168,180,193,32,168,180,47,219,167,180,142,149,167,180,223,79,167,180,32,10,167,180,84,196,166,180,120,126,166,180,142,56,166,180,150,242,165,180,143,172,165,180,122,102,165,180,86,32,165,180,36,218,164,180,227,147,164,180,
149,77,164,180,56,7,164,180,204,192,163,180,83,122,163,180,203,51,163,180,53,237,162,180,145,166,162,180,223,95,162,180,31,25,162,180,81,210,161,180,117,139,161,180,139,68,161,180,147,253,160,180,141,182,160,180,122,111,160,180,88,40,160,180,41,225,159,180,236,153,159,180,161,82,159,180,72,11,159,180,226,195,158,180,110,124,158,180,237,52,158,180,94,237,157,180,193,165,157,180,23,94,157,180,96,22,157,180,155,206,156,180,201,134,156,180,233,62,156,180,252,246,155,180,2,175,155,180,250,102,155,180,
229,30,155,180,195,214,154,180,148,142,154,180,87,70,154,180,14,254,153,180,183,181,153,180,84,109,153,180,227,36,153,180,101,220,152,180,219,147,152,180,67,75,152,180,159,2,152,180,238,185,151,180,48,113,151,180,101,40,151,180,141,223,150,180,169,150,150,180,184,77,150,180,187,4,150,180,176,187,149,180,153,114,149,180,118,41,149,180,70,224,148,180,10,151,148,180,193,77,148,180,108,4,148,180,10,187,147,180,156,113,147,180,34,40,147,180,155,222,146,180,8,149,146,180,105,75,146,180,190,1,146,180,6,
184,145,180,67,110,145,180,115,36,145,180,152,218,144,180,176,144,144,180,188,70,144,180,188,252,143,180,177,178,143,180,153,104,143,180,118,30,143,180,71,212,142,180,12,138,142,180,197,63,142,180,115,245,141,180,20,171,141,180,171,96,141,180,53,22,141,180,180,203,140,180,39,129,140,180,143,54,140,180,236,235,139,180,61,161,139,180,130,86,139,180,188,11,139,180,235,192,138,180,14,118,138,180,39,43,138,180,51,224,137,180,53,149,137,180,44,74,137,180,23,255,136,180,247,179,136,180,204,104,136,180,150,
29,136,180,85,210,135,180,9,135,135,180,178,59,135,180,80,240,134,180,228,164,134,180,108,89,134,180,234,13,134,180,92,194,133,180,196,118,133,180,34,43,133,180,116,223,132,180,188,147,132,180,250,71,132,180,44,252,131,180,85,176,131,180,114,100,131,180,133,24,131,180,142,204,130,180,141,128,130,180,128,52,130,180,106,232,129,180,73,156,129,180,30,80,129,180,233,3,129,180,170,183,128,180,96,107,128,180,12,31,128,180,92,165,127,180,140,12,127,180,168,115,126,180,176,218,125,180,164,65,125,180,132,
168,124,180,80,15,124,180,9,118,123,180,174,220,122,180,63,67,122,180,188,169,121,180,38,16,121,180,125,118,120,180,192,220,119,180,241,66,119,180,13,169,118,180,23,15,118,180,14,117,117,180,241,218,116,180],"i8",4,y.a+1310720);
Q([194,64,116,180,128,166,115,180,43,12,115,180,195,113,114,180,73,215,113,180,188,60,113,180,28,162,112,180,106,7,112,180,166,108,111,180,207,209,110,180,231,54,110,180,235,155,109,180,222,0,109,180,191,101,108,180,142,202,107,180,74,47,107,180,245,147,106,180,143,248,105,180,22,93,105,180,140,193,104,180,240,37,104,180,67,138,103,180,132,238,102,180,180,82,102,180,211,182,101,180,224,26,101,180,220,126,100,180,199,226,99,180,162,70,99,180,107,170,98,180,35,14,98,180,202,113,97,180,97,213,96,180,
231,56,96,180,93,156,95,180,193,255,94,180,22,99,94,180,90,198,93,180,141,41,93,180,177,140,92,180,196,239,91,180,199,82,91,180,186,181,90,180,157,24,90,180,112,123,89,180,51,222,88,180,231,64,88,180,138,163,87,180,30,6,87,180,163,104,86,180,24,203,85,180,125,45,85,180,211,143,84,180,26,242,83,180,81,84,83,180,122,182,82,180,147,24,82,180,157,122,81,180,153,220,80,180,133,62,80,180,98,160,79,180,49,2,79,180,241,99,78,180,163,197,77,180,70,39,77,180,218,136,76,180,96,234,75,180,216,75,75,180,65,173,
74,180,157,14,74,180,234,111,73,180,41,209,72,180,90,50,72,180,125,147,71,180,146,244,70,180,153,85,70,180,147,182,69,180,127,23,69,180,94,120,68,180,47,217,67,180,242,57,67,180,168,154,66,180,81,251,65,180,237,91,65,180,123,188,64,180,253,28,64,180,113,125,63,180,216,221,62,180,51,62,62,180,128,158,61,180,193,254,60,180,245,94,60,180,29,191,59,180,56,31,59,180,71,127,58,180,73,223,57,180,63,63,57,180,40,159,56,180,6,255,55,180,215,94,55,180,156,190,54,180,85,30,54,180,2,126,53,180,164,221,52,180,
57,61,52,180,195,156,51,180,66,252,50,180,180,91,50,180,27,187,49,180,119,26,49,180,200,121,48,180,13,217,47,180,71,56,47,180,117,151,46,180,153,246,45,180,177,85,45,180,191,180,44,180,194,19,44,180,186,114,43,180,167,209,42,180,138,48,42,180,98,143,41,180,47,238,40,180,242,76,40,180,171,171,39,180,89,10,39,180,253,104,38,180,151,199,37,180,38,38,37,180,172,132,36,180,39,227,35,180,153,65,35,180,1,160,34,180,95,254,33,180,180,92,33,180,255,186,32,180,64,25,32,180,120,119,31,180,166,213,30,180,203,
51,30,180,231,145,29,180,249,239,28,180,2,78,28,180,3,172,27,180,250,9,27,180,232,103,26,180,206,197,25,180,170,35,25,180,126,129,24,180,74,223,23,180,12,61,23,180,199,154,22,180,120,248,21,180,34,86,21,180,195,179,20,180,92,17,20,180,236,110,19,180,117,204,18,180,245,41,18,180,110,135,17,180,223,228,16,180,71,66,16,180,169,159,15,180,2,253,14,180,84,90,14,180,158,183,13,180,225,20,13,180,28,114,12,180,80,207,11,180,125,44,11,180,163,137,10,180,193,230,9,180,216,67,9,180,233,160,8,180,242,253,7,180,
245,90,7,180,241,183,6,180,230,20,6,180,213,113,5,180,189,206,4,180,158,43,4,180,121,136,3,180,78,229,2,180,28,66,2,180,228,158,1,180,166,251,0,180,98,88,0,180,48,106,255,179,144,35,254,179,228,220,252,179,45,150,251,179,106,79,250,179,155,8,249,179,194,193,247,179,221,122,246,179,238,51,245,179,244,236,243,179,239,165,242,179,224,94,241,179,198,23,240,179,162,208,238,179,116,137,237,179,60,66,236,179,250,250,234,179,175,179,233,179,90,108,232,179,252,36,231,179,148,221,229,179,35,150,228,179,170,
78,227,179,39,7,226,179,156,191,224,179,8,120,223,179,108,48,222,179,200,232,220,179,27,161,219,179,103,89,218,179,170,17,217,179,230,201,215,179,26,130,214,179,71,58,213,179,109,242,211,179,139,170,210,179,163,98,209,179,179,26,208,179,189,210,206,179,192,138,205,179,188,66,204,179,179,250,202,179,163,178,201,179,141,106,200,179,113,34,199,179,79,218,197,179,40,146,196,179,251,73,195,179,201,1,194,179,145,185,192,179,85,113,191,179,19,41,190,179,205,224,188,179,130,152,187,179,51,80,186,179,223,
7,185,179,135,191,183,179,42,119,182,179,202,46,181,179,102,230,179,179,254,157,178,179,147,85,177,179,36,13,176,179,178,196,174,179,61,124,173,179,197,51,172,179,73,235,170,179,204,162,169,179,75,90,168,179,200,17,167,179,67,201,165,179,188,128,164,179,50,56,163,179,167,239,161,179,26,167,160,179,139,94,159,179,250,21,158,179,105,205,156,179,214,132,155,179,66,60,154,179,173,243,152,179,23,171,151,179,129,98,150,179,234,25,149,179,83,209,147,179,187,136,146,179,36,64,145,179,140,247,143,179,244,
174,142,179,93,102,141,179,199,29,140,179,48,213,138,179,155,140,137,179,6,68,136,179,115,251,134,179,224,178,133,179,79,106,132,179,191,33,131,179,49,217,129,179,164,144,128,179,50,144,126,179,32,255,123,179,18,110,121,179,9,221,118,179,5,76,116,179,5,187,113,179,11,42,111,179,22,153,108,179,39,8,106,179,62,119,103,179,92,230,100,179,128,85,98,179,171,196,95,179,221,51,93,179,23,163,90,179,88,18,88,179,162,129,85,179,243,240,82,179,77,96,80,179,176,207,77,179,29,63,75,179,146,174,72,179,17,30,70,
179,154,141,67,179,45,253,64,179,203,108,62,179,116,220,59,179,39,76,57,179,230,187,54,179,176,43,52,179,134,155,49,179,104,11,47,179,87,123,44,179,82,235,41,179,90,91,39,179,111,203,36,179,146,59,34,179,195,171,31,179,1,28,29,179,78,140,26,179,169,252,23,179,19,109,21,179,140,221,18,179,21,78,16,179,173,190,13,179,85,47,11,179,14,160,8,179,214,16,6,179,176,129,3,179,154,242,0,179,44,199,252,178,71,169,247,178,133,139,242,178,231,109,237,178,110,80,232,178,27,51,227,178,237,21,222,178,229,248,216,
178,4,220,211,178,75,191,206,178,185,162,201,178,80,134,196,178,16,106,191,178,250,77,186,178,14,50,181,178,76,22,176,178,182,250,170,178,75,223,165,178,12,196,160,178,251,168,155,178,23,142,150,178,96,115,145,178,216,88,140,178,127,62,135,178,86,36,130,178,184,20,122,178,38,225,111,178,247,173,101,178,42,123,91,178,194,72,81,178,192,22,71,178,36,229,60,178,240,179,50,178,36,131,40,178,194,82,30,178,203,34,20,178,64,243,9,178,67,136,255,177,227,42,235,177,96,206,214,177,191,114,194,177,255,23,174,
177,37,190,153,177,49,101,133,177,75,26,98,177,12,108,57,177,166,191,16,177,63,42,208,176,239,177,125,176,248,45,182,175,144,248,142,47,206,7,106,48,193,69,198,48,214,193,11,49,206,94,52,49,198,249,92,49,92,201,130,49,209,20,151,49,63,95,171,49,164,168,191,49,254,240,211,49,74,56,232,49,136,126,252,49,218,97,8,50,230,131,18,50,104,165,28,50,93,198,38,50,198,230,48,50,160,6,59,50,236,37,69,50,167,68,79,50,209,98,89,50,105,128,99,50,110,157,109,50,222,185,119,50,220,234,128,50,127,248,133,50,213,5,
139,50,223,18,144,50,156,31,149,50,12,44,154,50,47,56,159,50,2,68,164,50,135,79,169,50,188,90,174,50,162,101,179,50,54,112,184,50,122,122,189,50,108,132,194,50,12,142,199,50,90,151,204,50,84,160,209,50,251,168,214,50,78,177,219,50,76,185,224,50,244,192,229,50,71,200,234,50,68,207,239,50,233,213,244,50,56,220,249,50,46,226,254,50,230,243,1,51,137,118,4,51,255,248,6,51,72,123,9,51,100,253,11,51,82,127,14,51,19,1,17,51,165,130,19,51,9,4,22,51,63,133,24,51,70,6,27,51,30,135,29,51,199,7,32,51,64,136,34,
51,137,8,37,51,162,136,39,51,139,8,42,51,67,136,44,51,202,7,47,51,32,135,49,51,69,6,52,51,56,133,54,51,250,3,57,51,137,130,59,51,229,0,62,51,15,127,64,51,6,253,66,51,202,122,69,51,91,248,71,51,183,117,74,51,224,242,76,51,213,111,79,51,149,236,81,51,32,105,84,51,119,229,86,51,152,97,89,51,131,221,91,51,57,89,94,51,185,212,96,51,2,80,99,51,21,203,101,51,242,69,104,51,151,192,106,51,5,59,109,51,59,181,111,51,58,47,114,51,0,169,116,51,142,34,119,51,228,155,121,51,1,21,124,51,228,141,126,51,71,131,128,
51,128,191,129,51,155,251,130,51,154,55,132,51,123,115,133,51,63,175,134,51,229,234,135,51,110,38,137,51,218,97,138,51,39,157,139,51,86,216,140,51,104,19,142,51,91,78,143,51,48,137,144,51,231,195,145,51,127,254,146,51,248,56,148,51,82,115,149,51,142,173,150,51,170,231,151,51,167,33,153,51,133,91,154,51,68,149,155,51,226,206,156,51,98,8,158,51,193,65,159,51,0,123,160,51,32,180,161,51,31,237,162,51,253,37,164,51,188,94,165,51,90,151,166,51,215,207,167,51,51,8,169,51,110,64,170,51,136,120,171,51,129,
176,172,51,89,232,173,51,15,32,175,51,164,87,176,51,23,143,177,51,104,198,178,51,151,253,179,51,164,52,181,51,143,107,182,51,88,162,183,51,254,216,184,51,129,15,186,51,226,69,187,51,32,124,188,51,59,178,189,51,51,232,190,51,8,30,192,51,186,83,193,51,72,137,194,51,179,190,195,51,250,243,196,51,29,41,198,51,28,94,199,51,247,146,200,51,174,199,201,51,65,252,202,51,175,48,204,51,249,100,205,51,30,153,206,51,30,205,207,51,250,0,209,51,176,52,210,51,65,104,211,51,173,155,212,51,244,206,213,51,21,2,215,
51,16,53,216,51,230,103,217,51,150,154,218,51,32,205,219,51,131,255,220,51,193,49,222,51,216,99,223,51,200,149,224,51,146,199,225,51,54,249,226,51,178,42,228,51,7,92,229,51,54,141,230,51,61,190,231,51,29,239,232,51,213,31,234,51,102,80,235,51,207,128,236,51,17,177,237,51,42,225,238,51,27,17,240,51,228,64,241,51,133,112,242,51,254,159,243,51,78,207,244,51,117,254,245,51,116,45,247,51,73,92,248,51,246,138,249,51,121,185,250,51,212,231,251,51,5,22,253,51,12,68,254,51,234,113,255,51,207,79,0,52,148,230,
0,52,68,125,1,52,223,19,2,52,101,170,2,52,214,64,3,52,50,215,3,52,120,109,4,52,169,3,5,52,197,153,5,52,203,47,6,52,188,197,6,52,151,91,7,52,92,241,7,52,12,135,8,52,166,28,9,52,43,178,9,52,153,71,10,52,241,220,10,52,52,114,11,52,96,7,12,52,119,156,12,52,119,49,13,52,97,198,13,52,53,91,14,52,242,239,14,52,153,132,15,52,42,25,16,52,164,173,16,52,7,66,17,52,84,214,17,52,138,106,18,52,170,254,18,52,178,146,19,52,164,38,20,52,127,186,20,52,67,78,21,52,240,225,21,52,134,117,22,52,5,9,23,52,108,156,23,52,
188,47,24,52,245,194,24,52,23,86,25,52,33,233,25,52,20,124,26,52,239,14,27,52,178,161,27,52,94,52,28,52,242,198,28,52,111,89,29,52,211,235,29,52,32,126,30,52,85,16,31,52,114,162,31,52,118,52,32,52,99,198,32,52,55,88,33,52,244,233,33,52,151,123,34,52,35,13,35,52,150,158,35,52,241,47,36,52,51,193,36,52,93,82,37,52,110,227,37,52,102,116,38,52,70,5,39,52,13,150,39,52,187,38,40,52,80,183,40,52,204,71,41,52,47,216,41,52,122,104,42,52,171,248,42,52,194,136,43,52,193,24,44,52,166,168,44,52,114,56,45,52,37,
200,45,52,190,87,46,52,61,231,46,52,163,118,47,52,240,5,48,52,35,149,48,52,60,36,49,52,59,179,49,52,32,66,50,52,236,208,50,52,157,95,51,52,53,238,51,52,178,124,52,52,21,11,53,52,94,153,53,52,141,39,54,52,162,181,54,52,156,67,55,52,124,209,55,52,66,95,56,52,237,236,56,52,125,122,57,52,243,7,58,52,78,149,58,52,143,34,59,52,180,175,59,52,191,60,60,52,175,201,60,52,132,86,61,52,62,227,61,52,221,111,62,52,97,252,62,52,202,136,63,52,23,21,64,52,74,161,64,52,97,45,65,52,92,185,65,52,60,69,66,52,1,209,66,
52,170,92,67,52,56,232,67,52,170,115,68,52,0,255,68,52,59,138,69,52,90,21,70,52,93,160,70,52,68,43,71,52,15,182,71,52,190,64,72,52,81,203,72,52,200,85,73,52,35,224,73,52,97,106,74,52,132,244,74,52,138,126,75,52,115,8,76,52,65,146,76,52,241,27,77,52,133,165,77,52,253,46,78,52,88,184,78,52,150,65,79,52,184,202,79,52,189,83,80,52,165,220,80,52,112,101,81,52,30,238,81,52,175,118,82,52,35,255,82,52,122,135,83,52,180,15,84,52,208,151,84,52,207,31,85,52,177,167,85,52,118,47,86,52,29,183,86,52,167,62,87,
52,19,198,87,52,98,77,88,52,147,212,88,52,167,91,89,52,156,226,89,52,116,105,90,52,46,240,90,52,203,118,91,52,73,253,91,52,169,131,92,52,236,9,93,52,16,144,93,52,22,22,94,52,254,155,94,52,200,33,95,52,115,167,95,52,0,45,96,52,111,178,96,52,192,55,97,52,241,188,97,52,5,66,98,52,250,198,98,52,208,75,99,52,135,208,99,52,32,85,100,52,154,217,100,52,245,93,101,52,49,226,101,52,79,102,102,52,77,234,102,52,44,110,103,52,237,241,103,52,142,117,104,52,16,249,104,52,114,124,105,52,182,255,105,52,218,130,106,
52,223,5,107,52,196,136,107,52,138,11,108,52,48,142,108,52,183,16,109,52,30,147,109,52,102,21,110,52,142,151,110,52,150,25,111,52,126,155,111,52,70,29,112,52,239,158,112,52,120,32,113,52,224,161,113,52,41,35,114,52,81,164,114,52,89,37,115,52,65,166,115,52,9,39,116,52,177,167,116,52,56,40,117,52,159,168,117,52,229,40,118,52,11,169,118,52,16,41,119,52,245,168,119,52,185,40,120,52,92,168,120,52,223,39,121,52,65,167,121,52,130,38,122,52,163,165,122,52,162,36,123,52,129,163,123,52,62,34,124,52,218,160,
124,52,86,31,125,52,176,157,125,52,233,27,126,52,1,154,126,52,247,23,127,52,204,149,127,52,192,9,128,52,137,72,128,52,65,135,128,52,233,197,128,52,128,4,129,52,6,67,129,52,123,129,129,52,224,191,129,52,51,254,129,52,118,60,130,52,168,122,130,52,200,184,130,52,216,246,130,52,215,52,131,52,197,114,131,52,162,176,131,52,109,238,131,52,40,44,132,52,210,105,132,52,106,167,132,52,241,228,132,52,103,34,133,52,204,95,133,52,32,157,133,52,98,218,133,52,148,23,134,52,180,84,134,52,194,145,134,52,192,206,134,
52,171,11,135,52,134,72,135,52,79,133,135,52,7,194,135,52,173,254,135,52,66,59,136,52,198,119,136,52,55,180,136,52,152,240,136,52,231,44,137,52,36,105,137,52,80,165,137,52,106,225,137,52,114,29,138,52,105,89,138,52,78,149,138,52,33,209,138,52,227,12,139,52,147,72,139,52,49,132,139,52,189,191,139,52,56,251,139,52,160,54,140,52,247,113,140,52,60,173,140,52,111,232,140,52,144,35,141,52,160,94,141,52,157,153,141,52,136,212,141,52,98,15,142,52,41,74,142,52,222,132,142,52,129,191,142,52,18,250,142,52,145,
52,143,52,254,110,143,52,89,169,143,52,161,227,143,52,215,29,144,52,252,87,144,52,13,146,144,52,13,204,144,52,250,5,145,52,213,63,145,52,158,121,145,52,84,179,145,52,248,236,145,52,138,38,146,52,9,96,146,52,118,153,146,52,208,210,146,52,24,12,147,52,78,69,147,52,113,126,147,52,129,183,147,52,127,240,147,52,106,41,148,52,67,98,148,52,9,155,148,52,188,211,148,52,93,12,149,52,235,68,149,52,103,125,149,52,207,181,149,52,37,238,149,52,105,38,150,52,153,94,150,52,183,150,150,52,194,206,150,52,186,6,151,
52,159,62,151,52,113,118,151,52,49,174,151,52,221,229,151,52,119,29,152,52,254,84,152,52,113,140,152,52,210,195,152,52,32,251,152,52,91,50,153,52,130,105,153,52,151,160,153,52,152,215,153,52,135,14,154,52,98,69,154,52,42,124,154,52,223,178,154,52,129,233,154,52,16,32,155,52,139,86,155,52,243,140,155,52,72,195,155,52,138,249,155,52,184,47,156,52,211,101,156,52,218,155,156,52,207,209,156,52,176,7,157,52,125,61,157,52,55,115,157,52,222,168,157,52,113,222,157,52,241,19,158,52,93,73,158,52,182,126,158,
52,251,179,158,52,45,233,158,52,75,30,159,52,86,83,159,52,77,136,159,52,48,189,159,52,0,242,159,52,188,38,160,52,100,91,160,52,249,143,160,52,122,196,160,52,231,248,160,52,65,45,161,52,135,97,161,52,185,149,161,52,215,201,161,52,225,253,161,52,216,49,162,52,186,101,162,52,137,153,162,52,68,205,162,52,235,0,163,52,126,52,163,52,253,103,163,52,105,155,163,52,192,206,163,52,3,2,164,52,50,53,164,52,77,104,164,52,84,155,164,52,71,206,164,52,38,1,165,52,241,51,165,52,168,102,165,52,74,153,165,52,217,203,
165,52,83,254,165,52,185,48,166,52,11,99,166,52,73,149,166,52,114,199,166,52,135,249,166,52,136,43,167,52,117,93,167,52,77,143,167,52,17,193,167,52,192,242,167,52,92,36,168,52,226,85,168,52,85,135,168,52,179,184,168,52,252,233,168,52,50,27,169,52,82,76,169,52,95,125,169,52,86,174,169,52,57,223,169,52,8,16,170,52,194,64,170,52,104,113,170,52,249,161,170,52,117,210,170,52,221,2,171,52,48,51,171,52,110,99,171,52,152,147,171,52,173,195,171,52,174,243,171,52,154,35,172,52,113,83,172,52,51,131,172,52,224,
178,172,52,121,226,172,52,253,17,173,52,108,65,173,52,199,112,173,52,12,160,173,52,61,207,173,52,88,254,173,52,95,45,174,52,81,92,174,52,46,139,174,52,246,185,174,52,169,232,174,52,72,23,175,52,209,69,175,52,69,116,175,52,164,162,175,52,238,208,175,52,35,255,175,52,68,45,176,52,79,91,176,52,68,137,176,52,37,183,176,52,241,228,176,52,167,18,177,52,73,64,177,52,213,109,177,52,76,155,177,52,174,200,177,52,251,245,177,52,50,35,178,52,84,80,178,52,97,125,178,52,89,170,178,52,59,215,178,52,8,4,179,52,192,
48,179,52,98,93,179,52,239,137,179,52,103,182,179,52,201,226,179,52,22,15,180,52,78,59,180,52,112,103,180,52,125,147,180,52,116,191,180,52,86,235,180,52,34,23,181,52,217,66,181,52,122,110,181,52,6,154,181,52,124,197,181,52,221,240,181,52,40,28,182,52,94,71,182,52,125,114,182,52,136,157,182,52,125,200,182,52,92,243,182,52,37,30,183,52,217,72,183,52,119,115,183,52,0,158,183,52,114,200,183,52,208,242,183,52,23,29,184,52,72,71,184,52,100,113,184,52,106,155,184,52,91,197,184,52,53,239,184,52,250,24,185,
52,169,66,185,52,66,108,185,52,197,149,185,52,50,191,185,52,138,232,185,52,203,17,186,52,247,58,186,52,13,100,186,52,12,141,186,52,246,181,186,52,202,222,186,52,136,7,187,52,48,48,187,52,194,88,187,52,62,129,187,52,164,169,187,52,244,209,187,52,46,250,187,52,81,34,188,52,95,74,188,52,87,114,188,52,56,154,188,52,4,194,188,52,185,233,188,52,88,17,189,52,225,56,189,52,84,96,189,52,177,135,189,52,248,174,189,52,40,214,189,52,66,253,189,52,70,36,190,52,52,75,190,52,11,114,190,52,204,152,190,52,119,191,
190,52,12,230,190,52,138,12,191,52,242,50,191,52,68,89,191,52,127,127,191,52,164,165,191,52,179,203,191,52,171,241,191,52,141,23,192,52,89,61,192,52,14,99,192,52,173,136,192,52,53,174,192,52,167,211,192,52,3,249,192,52,72,30,193,52,118,67,193,52,142,104,193,52,144,141,193,52,123,178,193,52,80,215,193,52,14,252,193,52,181,32,194,52,70,69,194,52,193,105,194,52,37,142,194,52,114,178,194,52,169,214,194,52,201,250,194,52,210,30,195,52,197,66,195,52,161,102,195,52,103,138,195,52,22,174,195,52,174,209,195,
52,47,245,195,52,154,24,196,52,239,59,196,52,44,95,196,52,83,130,196,52,99,165,196,52,92,200,196,52,63,235,196,52,10,14,197,52,191,48,197,52,94,83,197,52,229,117,197,52,86,152,197,52,176,186,197,52,243,220,197,52,31,255,197,52,52,33,198,52,51,67,198,52,26,101,198,52,235,134,198,52,165,168,198,52,72,202,198,52,212,235,198,52,73,13,199,52,167,46,199,52,239,79,199,52,31,113,199,52,57,146,199,52,59,179,199,52,39,212,199,52,251,244,199,52,185,21,200,52,95,54,200,52,239,86,200,52,103,119,200,52,201,151,
200,52,19,184,200,52,71,216,200,52,99,248,200,52,104,24,201,52,86,56,201,52,46,88,201,52,238,119,201,52,151,151,201,52,41,183,201,52,163,214,201,52,7,246,201,52,83,21,202,52,137,52,202,52,167,83,202,52,174,114,202,52,158,145,202,52,119,176,202,52,56,207,202,52,226,237,202,52,118,12,203,52,241,42,203,52,86,73,203,52,164,103,203,52,218,133,203,52,249,163,203,52,0,194,203,52,241,223,203,52,202,253,203,52,140,27,204,52,55,57,204,52,202,86,204,52,70,116,204,52,171,145,204,52,248,174,204,52,46,204,204,
52,77,233,204,52,84,6,205,52,69,35,205,52,29,64,205,52,223,92,205,52,137,121,205,52,27,150,205,52,150,178,205,52,250,206,205,52,71,235,205,52,124,7,206,52,153,35,206,52,159,63,206,52,142,91,206,52,101,119,206,52,37,147,206,52,206,174,206,52,95,202,206,52,216,229,206,52,58,1,207,52,133,28,207,52,184,55,207,52,211,82,207,52,215,109,207,52,196,136,207,52,153,163,207,52,86,190,207,52,252,216,207,52,138,243,207,52,1,14,208,52,97,40,208,52,168,66,208,52,217,92,208,52,241,118,208,52,242,144,208,52,220,170,
208,52,174,196,208,52,104,222,208,52,11,248,208,52,150,17,209,52,9,43,209,52,101,68,209,52,169,93,209,52,214,118,209,52,235,143,209,52,232,168,209,52,206,193,209,52,156,218,209,52,82,243,209,52,241,11,210,52,120,36,210,52,231,60,210,52,63,85,210,52,126,109,210,52,167,133,210,52,183,157,210,52,176,181,210,52,145,205,210,52,90,229,210,52,12,253,210,52,166,20,211,52,40,44,211,52,147,67,211,52,229,90,211,52,32,114,211,52,67,137,211,52,79,160,211,52,66,183,211,52,30,206,211,52,226,228,211,52,143,251,211,
52,35,18,212,52,160,40,212,52,5,63,212,52,82,85,212,52,135,107,212,52,165,129,212,52,170,151,212,52,152,173,212,52,110,195,212,52,45,217,212,52,211,238,212,52,97,4,213,52,216,25,213,52,55,47,213,52,126,68,213,52,173,89,213,52,196,110,213,52,196,131,213,52,171,152,213,52,123,173,213,52,50,194,213,52,210,214,213,52,90,235,213,52,202,255,213,52,35,20,214,52,99,40,214,52,139,60,214,52,156,80,214,52,148,100,214,52,117,120,214,52,61,140,214,52,238,159,214,52,135,179,214,52,8,199,214,52,113,218,214,52,194,
237,214,52,251,0,215,52,28,20,215,52,37,39,215,52,23,58,215,52,240,76,215,52,177,95,215,52,91,114,215,52,236,132,215,52,102,151,215,52,199,169,215,52,16,188,215,52,66,206,215,52,91,224,215,52,93,242,215,52,70,4,216,52,24,22,216,52,210,39,216,52,115,57,216,52,253,74,216,52,110,92,216,52,200,109,216,52,9,127,216,52,51,144,216,52,68,161,216,52,62,178,216,52,31,195,216,52,233,211,216,52,154,228,216,52,51,245,216,52,181,5,217,52,30,22,217,52,111,38,217,52,169,54,217,52,202,70,217,52,211,86,217,52,196,
102,217,52,157,118,217,52,94,134,217,52,7,150,217,52,152,165,217,52,17,181,217,52,114,196,217,52,186,211,217,52,235,226,217,52,4,242,217,52,4,1,218,52,237,15,218,52,189,30,218,52,118,45,218,52,22,60,218,52,158,74,218,52,14,89,218,52,102,103,218,52,166,117,218,52,206,131,218,52,222,145,218,52,214,159,218,52,181,173,218,52,125,187,218,52,45,201,218,52,196,214,218,52,67,228,218,52,171,241,218,52,250,254,218,52,49,12,219,52,80,25,219,52,87,38,219,52,69,51,219,52,28,64,219,52,219,76,219,52,129,89,219,
52,16,102,219,52,134,114,219,52,228,126,219,52,42,139,219,52,88,151,219,52,110,163,219,52,108,175,219,52,82,187,219,52,31,199,219,52,213,210,219,52,114,222,219,52,247,233,219,52,100,245,219,52,186,0,220,52,247,11,220,52,27,23,220,52,40,34,220,52,29,45,220,52,249,55,220,52,190,66,220,52,106,77,220,52,255,87,220,52,123,98,220,52,223,108,220,52,43,119,220,52,94,129,220,52,122,139,220,52,126,149,220,52,105,159,220,52,61,169,220,52,248,178,220,52,155,188,220,52,39,198,220,52,154,207,220,52,244,216,220,
52,55,226,220,52,98,235,220,52,117,244,220,52,111,253,220,52,82,6,221,52,28,15,221,52,206,23,221,52,104,32,221,52,235,40,221,52,84,49,221,52,166,57,221,52,224,65,221,52,2,74,221,52,11,82,221,52,253,89,221,52,214,97,221,52,152,105,221,52,65,113,221,52,210,120,221,52,75,128,221,52,173,135,221,52,245,142,221,52,38,150,221,52,63,157,221,52,64,164,221,52,41,171,221,52,249,177,221,52,178,184,221,52,82,191,221,52,219,197,221,52,75,204,221,52,163,210,221,52,228,216,221,52,12,223,221,52,28,229,221,52,20,235,
221,52,244,240,221,52,188,246,221,52,108,252,221,52,4,2,222,52,132,7,222,52,235,12,222,52,59,18,222,52,115,23,222,52,147,28,222,52,154,33,222,52,138,38,222,52,97,43,222,52,33,48,222,52,201,52,222,52,88,57,222,52,208,61,222,52,47,66,222,52,119,70,222,52,166,74,222,52,190,78,222,52,189,82,222,52,165,86,222,52,116,90,222,52,44,94,222,52,203,97,222,52,83,101,222,52,194,104,222,52,26,108,222,52,90,111,222,52,129,114,222,52,145,117,222,52,136,120,222,52,104,123,222,52,48,126,222,52,224,128,222,52,120,131,
222,52,247,133,222,52,95,136,222,52,175,138,222,52,231,140,222,52,8,143,222,52,16,145,222,52,0,147,222,52,216,148,222,52,153,150,222,52,65,152,222,52,210,153,222,52,74,155,222,52,171,156,222,52,244,157,222,52,37,159,222,52,62,160,222,52,63,161,222,52,41,162,222,52,250,162,222,52,179,163,222,52,85,164,222,52,223,164,222,52,81,165,222,52,171,165,222,52,237,165,222,52,23,166,222,52,42,166,222,52,36,166,222,52,7,166,222,52,210,165,222,52,133,165,222,52,33,165,222,52,164,164,222,52,16,164,222,52,100,163,
222,52,160,162,222,52,196,161,222,52,208,160,222,52,197,159,222,52,162,158,222,52,103,157,222,52,20,156,222,52,170,154,222,52,40,153,222,52,142,151,222,52,220,149,222,52,18,148,222,52,49,146,222,52,56,144,222,52,39,142,222,52,255,139,222,52,191,137,222,52,103,135,222,52,247,132,222,52,112,130,222,52,209,127,222,52,26,125,222,52,76,122,222,52,102,119,222,52,104,116,222,52,82,113,222,52,37,110,222,52,225,106,222,52,132,103,222,52,16,100,222,52,132,96,222,52,225,92,222,52,38,89,222,52,83,85,222,52,105,
81,222,52,103,77,222,52,77,73,222,52,28,69,222,52,212,64,222,52,115,60,222,52,252,55,222,52,108,51,222,52,197,46,222,52,6,42,222,52,48,37,222,52,67,32,222,52,61,27,222,52,32,22,222,52,236,16,222,52,160,11,222,52,61,6,222,52,194,0,222,52,48,251,221,52,134,245,221,52,196,239,221,52,235,233,221,52,251,227,221,52,243,221,221,52,212,215,221,52,157,209,221,52,79,203,221,52,233,196,221,52,108,190,221,52,216,183,221,52,44,177,221,52,104,170,221,52,142,163,221,52,156,156,221,52,146,149,221,52,113,142,221,
52,57,135,221,52,233,127,221,52,130,120,221,52,4,113,221,52,110,105,221,52,193,97,221,52,252,89,221,52,32,82,221,52,45,74,221,52,35,66,221,52,1,58,221,52,200,49,221,52,120,41,221,52,16,33,221,52,146,24,221,52,251,15,221,52,78,7,221,52,137,254,220,52,174,245,220,52,187,236,220,52,176,227,220,52,143,218,220,52,86,209,220,52,6,200,220,52,159,190,220,52,33,181,220,52,139,171,220,52,223,161,220,52,27,152,220,52,64,142,220,52,78,132,220,52,69,122,220,52,36,112,220,52,237,101,220,52,158,91,220,52,57,81,
220,52,188,70,220,52,40,60,220,52,125,49,220,52,187,38,220,52,226,27,220,52,242,16,220,52,235,5,220,52,205,250,219,52,152,239,219,52,76,228,219,52,233,216,219,52,111,205,219,52,221,193,219,52,53,182,219,52,118,170,219,52,160,158,219,52,179,146,219,52,176,134,219,52,149,122,219,52,99,110,219,52,26,98,219,52,187,85,219,52,69,73,219,52,183,60,219,52,19,48,219,52,88,35,219,52,134,22,219,52,158,9,219,52,158,252,218,52,136,239,218,52,91,226,218,52,23,213,218,52,188,199,218,52,74,186,218,52,194,172,218,
52,35,159,218,52,109,145,218,52,161,131,218,52,189,117,218,52,195,103,218,52,179,89,218,52,139,75,218,52,77,61,218,52,248,46,218,52,141,32,218,52,11,18,218,52,114,3,218,52,195,244,217,52,253,229,217,52,32,215,217,52,45,200,217,52,35,185,217,52,3,170,217,52,204,154,217,52,126,139,217,52,26,124,217,52,159,108,217,52,14,93,217,52,102,77,217,52,168,61,217,52,212,45,217,52,232,29,217,52,231,13,217,52,207,253,216,52,160,237,216,52,91,221,216,52,255,204,216,52,141,188,216,52,5,172,216,52,102,155,216,52,
177,138,216,52,230,121,216,52,4,105,216,52,12,88,216,52,253,70,216,52,216,53,216,52,157,36,216,52,76,19,216,52,228,1,216,52,102,240,215,52,209,222,215,52,39,205,215,52,102,187,215,52,143,169,215,52,161,151,215,52,158,133,215,52,132,115,215,52,84,97,215,52,14,79,215,52,178,60,215,52,63,42,215,52,182,23,215,52,24,5,215,52,99,242,214,52,152,223,214,52,183,204,214,52,192,185,214,52,178,166,214,52,143,147,214,52,86,128,214,52,6,109,214,52,161,89,214,52,37,70,214,52,148,50,214,52,237,30,214,52,47,11,214,
52,92,247,213,52,114,227,213,52,115,207,213,52,94,187,213,52,51,167,213,52,242,146,213,52,155,126,213,52,46,106,213,52,172,85,213,52,19,65,213,52,101,44,213,52,161,23,213,52,199,2,213,52,215,237,212,52,210,216,212,52,182,195,212,52,133,174,212,52,62,153,212,52,226,131,212,52,112,110,212,52,232,88,212,52,74,67,212,52,151,45,212,52,206,23,212,52,239,1,212,52,251,235,211,52,241,213,211,52,209,191,211,52,156,169,211,52,81,147,211,52,241,124,211,52,123,102,211,52,240,79,211,52,79,57,211,52,152,34,211,
52,204,11,211,52,235,244,210,52,244,221,210,52,232,198,210,52,198,175,210,52,142,152,210,52,66,129,210,52,223,105,210,52,104,82,210,52,219,58,210,52,57,35,210,52,129,11,210,52,180,243,209,52,210,219,209,52,218,195,209,52,205,171,209,52,171,147,209,52,115,123,209,52,39,99,209,52,197,74,209,52,78,50,209,52,193,25,209,52,31,1,209,52,105,232,208,52,157,207,208,52,188,182,208,52,197,157,208,52,186,132,208,52,153,107,208,52,100,82,208,52,25,57,208,52,185,31,208,52,68,6,208,52,186,236,207,52,28,211,207,
52,104,185,207,52,159,159,207,52,193,133,207,52,206,107,207,52,198,81,207,52,169,55,207,52,120,29,207,52,49,3,207,52,214,232,206,52,101,206,206,52,224,179,206,52,70,153,206,52,151,126,206,52,212,99,206,52,251,72,206,52,14,46,206,52,12,19,206,52,245,247,205,52,201,220,205,52,137,193,205,52,52,166,205,52,202,138,205,52,76,111,205,52,185,83,205,52,17,56,205,52,85,28,205,52,132,0,205,52,159,228,204,52,165,200,204,52,150,172,204,52,115,144,204,52,59,116,204,52,239,87,204,52,142,59,204,52,24,31,204,52,
143,2,204,52,240,229,203,52,62,201,203,52,119,172,203,52,155,143,203,52,171,114,203,52,167,85,203,52,142,56,203,52,97,27,203,52,32,254,202,52,202,224,202,52,96,195,202,52,226,165,202,52,80,136,202,52,169,106,202,52,238,76,202,52,31,47,202,52,59,17,202,52,68,243,201,52,56,213,201,52,24,183,201,52,228,152,201,52,156,122,201,52,63,92,201,52,207,61,201,52,75,31,201,52,178,0,201,52,6,226,200,52,69,195,200,52,112,164,200,52,136,133,200,52,139,102,200,52,123,71,200,52,86,40,200,52,30,9,200,52,210,233,199,
52,114,202,199,52,254,170,199,52,118,139,199,52,218,107,199,52,43,76,199,52,103,44,199,52,144,12,199,52,166,236,198,52,167,204,198,52,149,172,198,52,111,140,198,52,53,108,198,52,231,75,198,52,134,43,198,52,17,11,198,52,137,234,197,52,237,201,197,52,62,169,197,52,122,136,197,52,164,103,197,52,185,70,197,52,188,37,197,52,170,4,197,52,133,227,196,52,77,194,196,52,2,161,196,52,162,127,196,52,48,94,196,52,170,60,196,52,16,27,196,52,100,249,195,52,164,215,195,52,208,181,195,52,234,147,195,52,240,113,195,
52,226,79,195,52,194,45,195,52,142,11,195,52,71,233,194,52,237,198,194,52,127,164,194,52,255,129,194,52,107,95,194,52,196,60,194,52,10,26,194,52,61,247,193,52,93,212,193,52,106,177,193,52,99,142,193,52,74,107,193,52,30,72,193,52,223,36,193,52,140,1,193,52,39,222,192,52,175,186,192,52,36,151,192,52,134,115,192,52,213,79,192,52,18,44,192,52,59,8,192,52,82,228,191,52,86,192,191,52,71,156,191,52,37,120,191,52,241,83,191,52,169,47,191,52,80,11,191,52,227,230,190,52,100,194,190,52,210,157,190,52,45,121,
190,52,118,84,190,52,173,47,190,52,208,10,190,52,226,229,189,52,224,192,189,52,204,155,189,52,166,118,189,52,109,81,189,52,34,44,189,52,196,6,189,52,84,225,188,52,209,187,188,52,60,150,188,52,149,112,188,52,219,74,188,52,15,37,188,52,48,255,187,52,64,217,187,52,61,179,187,52,40,141,187,52,0,103,187,52,199,64,187,52,123,26,187,52,29,244,186,52,173,205,186,52,43,167,186,52,150,128,186,52,240,89,186,52,55,51,186,52,109,12,186,52,144,229,185,52,161,190,185,52,161,151,185,52,142,112,185,52,106,73,185,
52,51,34,185,52,235,250,184,52,144,211,184,52,36,172,184,52,166,132,184,52,22,93,184,52,116,53,184,52,193,13,184,52,252,229,183,52,37,190,183,52,60,150,183,52,65,110,183,52,53,70,183,52,23,30,183,52,232,245,182,52,167,205,182,52,84,165,182,52,239,124,182,52,121,84,182,52,242,43,182,52,89,3,182,52,174,218,181,52,242,177,181,52,37,137,181,52,70,96,181,52,85,55,181,52,84,14,181,52,64,229,180,52,28,188,180,52,230,146,180,52,159,105,180,52,70,64,180,52,220,22,180,52,97,237,179,52,213,195,179,52,55,154,
179,52,136,112,179,52,200,70,179,52,247,28,179,52,21,243,178,52,33,201,178,52,29,159,178,52,7,117,178,52,224,74,178,52,169,32,178,52,96,246,177,52,6,204,177,52,156,161,177,52,32,119,177,52,147,76,177,52,246,33,177,52,71,247,176,52,136,204,176,52,184,161,176,52,215,118,176,52,229,75,176,52,227,32,176,52,207,245,175,52,171,202,175,52,119,159,175,52,49,116,175,52,219,72,175,52,116,29,175,52,253,241,174,52,117,198,174,52,220,154,174,52,51,111,174,52,121,67,174,52,175,23,174,52,212,235,173,52,232,191,
173,52,237,147,173,52,224,103,173,52,196,59,173,52,151,15,173,52,89,227,172,52,11,183,172,52,173,138,172,52,63,94,172,52,192,49,172,52,49,5,172,52,146,216,171,52,226,171,171,52,35,127,171,52,83,82,171,52,115,37,171,52,130,248,170,52,130,203,170,52,114,158,170,52,81,113,170,52,33,68,170,52,224,22,170,52,144,233,169,52,47,188,169,52,190,142,169,52,62,97,169,52,174,51,169,52,13,6,169,52,93,216,168,52,157,170,168,52,205,124,168,52,238,78,168,52,254,32,168,52,255,242,167,52,240,196,167,52,209,150,167,
52,163,104,167,52,101,58,167,52,23,12,167,52,186,221,166,52,77,175,166,52,208,128,166,52,68,82,166,52,169,35,166,52,254,244,165,52,67,198,165,52,121,151,165,52,159,104,165,52,182,57,165,52,190,10,165,52,182,219,164,52,159,172,164,52,120,125,164,52,67,78,164,52,254,30,164,52,169,239,163,52,70,192,163,52,211,144,163,52,81,97,163,52,191,49,163,52,31,2,163,52,112,210,162,52,177,162,162,52,227,114,162,52,6,67,162,52,27,19,162,52,32,227,161,52,22,179,161,52,253,130,161,52,213,82,161,52,159,34,161,52,89,
242,160,52,5,194,160,52,161,145,160,52,47,97,160,52,174,48,160,52,31,0,160,52,128,207,159,52,211,158,159,52,23,110,159,52,76,61,159,52,115,12,159,52,139,219,158,52,148,170,158,52,143,121,158,52,123,72,158,52,89,23,158,52,40,230,157,52,232,180,157,52,155,131,157,52,62,82,157,52,211,32,157,52,90,239,156,52,211,189,156,52,61,140,156,52,152,90,156,52,230,40,156,52,37,247,155,52,86,197,155,52,120,147,155,52,140,97,155,52,147,47,155,52,139,253,154,52,116,203,154,52,80,153,154,52,30,103,154,52,221,52,154,
52,142,2,154,52,50,208,153,52,199,157,153,52,78,107,153,52,200,56,153,52,51,6,153,52,145,211,152,52,224,160,152,52,34,110,152,52,86,59,152,52,124,8,152,52,149,213,151,52,159,162,151,52,156,111,151,52,139,60,151,52,108,9,151,52,64,214,150,52,6,163,150,52,190,111,150,52,105,60,150,52,6,9,150,52,150,213,149,52,24,162,149,52,141,110,149,52,244,58,149,52,77,7,149,52,154,211,148,52,216,159,148,52,10,108,148,52,46,56,148,52,68,4,148,52,78,208,147,52,74,156,147,52,57,104,147,52,26,52,147,52,239,255,146,52,
182,203,146,52,112,151,146,52,29,99,146,52,188,46,146,52,79,250,145,52,213,197,145,52,77,145,145,52,185,92,145,52,23,40,145,52,105,243,144,52,173,190,144,52,229,137,144,52,16,85,144,52,46,32,144,52,63,235,143,52,67,182,143,52,58,129,143,52,37,76,143,52,3,23,143,52,212,225,142,52,152,172,142,52,80,119,142,52,251,65,142,52,153,12,142,52,43,215,141,52,177,161,141,52,41,108,141,52,150,54,141,52,245,0,141,52,72,203,140,52,143,149,140,52,202,95,140,52,247,41,140,52,25,244,139,52,46,190,139,52,55,136,139,
52,52,82,139,52,36,28,139,52,8,230,138,52,224,175,138,52,171,121,138,52,107,67,138,52,30,13,138,52,197,214,137,52,96,160,137,52,239,105,137,52,114,51,137,52,233,252,136,52,84,198,136,52,178,143,136,52,5,89,136,52,76,34,136,52,135,235,135,52,183,180,135,52,218,125,135,52,241,70,135,52,253,15,135,52,253,216,134,52,241,161,134,52,218,106,134,52,182,51,134,52,136,252,133,52,77,197,133,52,7,142,133,52,181,86,133,52,88,31,133,52,239,231,132,52,122,176,132,52,250,120,132,52,111,65,132,52,216,9,132,52,54,
210,131,52,136,154,131,52,207,98,131,52,11,43,131,52,59,243,130,52,96,187,130,52,121,131,130,52,136,75,130,52,139,19,130,52,131,219,129,52,112,163,129,52,82,107,129,52,41,51,129,52,244,250,128,52,181,194,128,52,106,138,128,52,20,82,128,52,180,25,128,52,145,194,127,52,164,81,127,52,161,224,126,52,137,111,126,52,90,254,125,52,23,141,125,52,189,27,125,52,78,170,124,52,201,56,124,52,47,199,123,52,128,85,123,52,187,227,122,52,225,113,122,52,242,255,121,52,237,141,121,52,212,27,121,52,165,169,120,52,97,
55,120,52,8,197,119,52,154,82,119,52,24,224,118,52,128,109,118,52,212,250,117,52,19,136,117,52,61,21,117,52,83,162,116,52,84,47,116,52,65,188,115,52,25,73,115,52,221,213,114,52,140,98,114,52,39,239,113,52,174,123,113,52,32,8,113,52,127,148,112,52,201,32,112,52,255,172,111,52,34,57,111,52,48,197,110,52,42,81,110,52,17,221,109,52,228,104,109,52,163,244,108,52,78,128,108,52,230,11,108,52,106,151,107,52,218,34,107,52,55,174,106,52,129,57,106,52,183,196,105,52,218,79,105,52,234,218,104,52,231,101,104,
52,208,240,103,52,166,123,103,52,106,6,103,52,26,145,102,52,183,27,102,52,65,166,101,52,185,48,101,52,30,187,100,52,112,69,100,52,175,207,99,52,219,89,99,52,246,227,98,52,253,109,98,52,242,247,97,52,213,129,97,52,165,11,97,52,99,149,96,52,15,31,96,52,168,168,95,52,48,50,95,52,165,187,94,52,8,69,94,52,89,206,93,52,153,87,93,52,198,224,92,52,226,105,92,52,235,242,91,52,227,123,91,52,202,4,91,52,158,141,90,52,98,22,90,52,19,159,89,52,179,39,89,52,66,176,88,52,192,56,88,52,44,193,87,52,135,73,87,52,208,
209,86,52,9,90,86,52,48,226,85,52,71,106,85,52,76,242,84,52,65,122,84,52,36,2,84,52,247,137,83,52,185,17,83,52,106,153,82,52,11,33,82,52,155,168,81,52,27,48,81,52,138,183,80,52,232,62,80,52,54,198,79,52,116,77,79,52,162,212,78,52,191,91,78,52,204,226,77,52,201,105,77,52,182,240,76,52,147,119,76,52,96,254,75,52,29,133,75,52,202,11,75,52,104,146,74,52,245,24,74,52,115,159,73,52,226,37,73,52,64,172,72,52,144,50,72,52,207,184,71,52,0,63,71,52,33,197,70,52,50,75,70,52,53,209,69,52,40,87,69,52,12,221,68,
52,225,98,68,52,166,232,67,52,93,110,67,52,5,244,66,52,158,121,66,52,41,255,65,52,164,132,65,52,17,10,65,52,111,143,64,52,190,20,64,52,255,153,63,52,50,31,63,52,86,164,62,52,107,41,62,52,114,174,61,52,107,51,61,52,86,184,60,52,50,61,60,52,1,194,59,52,193,70,59,52,116,203,58,52,24,80,58,52,174,212,57,52,55,89,57,52,178,221,56,52,31,98,56,52,126,230,55,52,208,106,55,52,20,239,54,52,75,115,54,52,116,247,53,52,144,123,53,52,158,255,52,52,159,131,52,52,147,7,52,52,122,139,51,52,83,15,51,52,32,147,50,52,
223,22,50,52,145,154,49,52,55,30,49,52,207,161,48,52,91,37,48,52,218,168,47,52,77,44,47,52,178,175,46,52,11,51,46,52,88,182,45,52,152,57,45,52,203,188,44,52,243,63,44,52,14,195,43,52,28,70,43,52,31,201,42,52,21,76,42,52,255,206,41,52,221,81,41,52,175,212,40,52,118,87,40,52,48,218,39,52,222,92,39,52,129,223,38,52,24,98,38,52,163,228,37,52,35,103,37,52,151,233,36,52,0,108,36,52,93,238,35,52,175,112,35,52,245,242,34,52,48,117,34,52,96,247,33,52,133,121,33,52,159,251,32,52,173,125,32,52,177,255,31,52,
169,129,31,52,151,3,31,52,122,133,30,52,82,7,30,52,32,137,29,52,226,10,29,52,154,140,28,52,72,14,28,52,235,143,27,52,131,17,27,52,17,147,26,52,149,20,26,52,15,150,25,52,126,23,25,52,227,152,24,52,62,26,24,52,143,155,23,52,214,28,23,52,18,158,22,52,69,31,22,52,111,160,21,52,142,33,21,52,163,162,20,52,175,35,20,52],"i8",4,y.a+1320960);
Q([178,164,19,52,170,37,19,52,153,166,18,52,127,39,18,52,91,168,17,52,46,41,17,52,248,169,16,52,184,42,16,52,111,171,15,52,29,44,15,52,194,172,14,52,94,45,14,52,241,173,13,52,123,46,13,52,252,174,12,52,117,47,12,52,228,175,11,52,75,48,11,52,170,176,10,52,255,48,10,52,76,177,9,52,145,49,9,52,205,177,8,52,1,50,8,52,45,178,7,52,80,50,7,52,107,178,6,52,126,50,6,52,137,178,5,52,140,50,5,52,135,178,4,52,122,50,4,52,101,178,3,52,72,50,3,52,36,178,2,52,248,49,2,52,196,177,1,52,136,49,1,52,70,177,0,52,251,
48,0,52,82,97,255,51,160,96,254,51,223,95,253,51,15,95,252,51,49,94,251,51,69,93,250,51,74,92,249,51,66,91,248,51,43,90,247,51,7,89,246,51,212,87,245,51,149,86,244,51,71,85,243,51,236,83,242,51,132,82,241,51,15,81,240,51,141,79,239,51,253,77,238,51,97,76,237,51,184,74,236,51,2,73,235,51,64,71,234,51,114,69,233,51,151,67,232,51,176,65,231,51,188,63,230,51,189,61,229,51,178,59,228,51,155,57,227,51,121,55,226,51,75,53,225,51,17,51,224,51,205,48,223,51,125,46,222,51,34,44,221,51,188,41,220,51,75,39,219,
51,207,36,218,51,73,34,217,51,184,31,216,51,28,29,215,51,119,26,214,51,199,23,213,51,13,21,212,51,73,18,211,51,123,15,210,51,163,12,209,51,194,9,208,51,215,6,207,51,227,3,206,51,229,0,205,51,222,253,203,51,206,250,202,51,181,247,201,51,147,244,200,51,105,241,199,51,53,238,198,51,250,234,197,51,181,231,196,51,105,228,195,51,20,225,194,51,183,221,193,51,82,218,192,51,229,214,191,51,112,211,190,51,243,207,189,51,111,204,188,51,228,200,187,51,81,197,186,51,183,193,185,51,22,190,184,51,110,186,183,51,
191,182,182,51,9,179,181,51,76,175,180,51,137,171,179,51,192,167,178,51,240,163,177,51,26,160,176,51,61,156,175,51,91,152,174,51,115,148,173,51,132,144,172,51,145,140,171,51,151,136,170,51,153,132,169,51,148,128,168,51,139,124,167,51,124,120,166,51,105,116,165,51,80,112,164,51,51,108,163,51,17,104,162,51,234,99,161,51,191,95,160,51,143,91,159,51,91,87,158,51,35,83,157,51,231,78,156,51,167,74,155,51,100,70,154,51,28,66,153,51,209,61,152,51,130,57,151,51,48,53,150,51,219,48,149,51,131,44,148,51,39,
40,147,51,201,35,146,51,103,31,145,51,3,27,144,51,157,22,143,51,52,18,142,51,200,13,141,51,90,9,140,51,234,4,139,51,120,0,138,51,4,252,136,51,142,247,135,51,22,243,134,51,157,238,133,51,34,234,132,51,166,229,131,51,41,225,130,51,170,220,129,51,42,216,128,51,83,167,127,51,79,158,125,51,74,149,123,51,68,140,121,51,61,131,119,51,53,122,117,51,44,113,115,51,35,104,113,51,26,95,111,51,17,86,109,51,8,77,107,51,255,67,105,51,247,58,103,51,240,49,101,51,234,40,99,51,229,31,97,51,226,22,95,51,225,13,93,51,
226,4,91,51,228,251,88,51,234,242,86,51,242,233,84,51,252,224,82,51,10,216,80,51,27,207,78,51,48,198,76,51,72,189,74,51,100,180,72,51,133,171,70,51,169,162,68,51,211,153,66,51,1,145,64,51,52,136,62,51,109,127,60,51,171,118,58,51,238,109,56,51,56,101,54,51,135,92,52,51,221,83,50,51,58,75,48,51,157,66,46,51,7,58,44,51,120,49,42,51,241,40,40,51,114,32,38,51,250,23,36,51,138,15,34,51,35,7,32,51,196,254,29,51,110,246,27,51,33,238,25,51,221,229,23,51,162,221,21,51,113,213,19,51,73,205,17,51,44,197,15,51,
25,189,13,51,16,181,11,51,18,173,9,51,31,165,7,51,55,157,5,51,90,149,3,51,137,141,1,51,135,11,255,50,20,252,250,50,186,236,246,50,120,221,242,50,79,206,238,50,64,191,234,50,75,176,230,50,112,161,226,50,177,146,222,50,12,132,218,50,132,117,214,50,24,103,210,50,200,88,206,50,150,74,202,50,128,60,198,50,137,46,194,50,177,32,190,50,247,18,186,50,92,5,182,50,225,247,177,50,134,234,173,50,75,221,169,50,50,208,165,50,57,195,161,50,99,182,157,50,175,169,153,50,29,157,149,50,175,144,145,50,100,132,141,50,
61,120,137,50,58,108,133,50,92,96,129,50,70,169,122,50,32,146,114,50,70,123,106,50,185,100,98,50,122,78,90,50,137,56,82,50,232,34,74,50,152,13,66,50,152,248,57,50,235,227,49,50,145,207,41,50,138,187,33,50,217,167,25,50,124,148,17,50,118,129,9,50,199,110,1,50,225,184,242,49,230,148,226,49,157,113,210,49,10,79,194,49,46,45,178,49,11,12,162,49,162,235,145,49,244,203,129,49,9,90,99,49,169,29,67,49,203,226,34,49,114,169,2,49,68,227,196,48,188,118,132,48,169,26,8,48,144,196,233,45,12,240,242,175,201,55,
122,176,140,120,189,176,242,209,253,176,9,20,31,177,113,61,63,177,46,101,95,177,61,139,127,177,206,215,143,177,34,233,159,177,155,249,175,177,54,9,192,177,241,23,208,177,203,37,224,177,195,50,240,177,107,31,0,178,2,37,8,178,36,42,16,178,210,46,24,178,10,51,32,178,204,54,40,178,23,58,48,178,233,60,56,178,67,63,64,178,35,65,72,178,136,66,80,178,114,67,88,178,223,67,96,178,207,67,104,178,66,67,112,178,54,66,120,178,85,32,128,178,79,31,132,178,8,30,136,178,128,28,140,178,183,26,144,178,171,24,148,178,
94,22,152,178,206,19,156,178,250,16,160,178,227,13,164,178,136,10,168,178,233,6,172,178,5,3,176,178,220,254,179,178,109,250,183,178,184,245,187,178,189,240,191,178,123,235,195,178,241,229,199,178,32,224,203,178,7,218,207,178,165,211,211,178,250,204,215,178,6,198,219,178,200,190,223,178,64,183,227,178,110,175,231,178,80,167,235,178,231,158,239,178,51,150,243,178,50,141,247,178,228,131,251,178,73,122,255,178,49,184,1,179,22,179,3,179,212,173,5,179,106,168,7,179,217,162,9,179,32,157,11,179,64,151,13,
179,55,145,15,179,6,139,17,179,172,132,19,179,41,126,21,179,126,119,23,179,169,112,25,179,171,105,27,179,131,98,29,179,50,91,31,179,182,83,33,179,17,76,35,179,65,68,37,179,70,60,39,179,33,52,41,179,208,43,43,179,84,35,45,179,173,26,47,179,219,17,49,179,220,8,51,179,177,255,52,179,91,246,54,179,215,236,56,179,40,227,58,179,75,217,60,179,65,207,62,179,10,197,64,179,166,186,66,179,20,176,68,179,84,165,70,179,102,154,72,179,74,143,74,179,255,131,76,179,134,120,78,179,222,108,80,179,7,97,82,179,0,85,84,
179,203,72,86,179,101,60,88,179,208,47,90,179,10,35,92,179,21,22,94,179,239,8,96,179,152,251,97,179,16,238,99,179,88,224,101,179,110,210,103,179,83,196,105,179,6,182,107,179,135,167,109,179,214,152,111,179,243,137,113,179,222,122,115,179,149,107,117,179,26,92,119,179,108,76,121,179,139,60,123,179,118,44,125,179,46,28,127,179,217,133,128,179,129,125,129,179,15,117,130,179,130,108,131,179,220,99,132,179,27,91,133,179,63,82,134,179,73,73,135,179,56,64,136,179,12,55,137,179,197,45,138,179,100,36,139,
179,231,26,140,179,79,17,141,179,156,7,142,179,205,253,142,179,227,243,143,179,222,233,144,179,188,223,145,179,127,213,146,179,38,203,147,179,177,192,148,179,32,182,149,179,115,171,150,179,169,160,151,179,195,149,152,179,193,138,153,179,162,127,154,179,103,116,155,179,14,105,156,179,153,93,157,179,7,82,158,179,88,70,159,179,140,58,160,179,162,46,161,179,155,34,162,179,119,22,163,179,53,10,164,179,213,253,164,179,88,241,165,179,189,228,166,179,4,216,167,179,45,203,168,179,56,190,169,179,37,177,170,
179,244,163,171,179,164,150,172,179,53,137,173,179,168,123,174,179,253,109,175,179,50,96,176,179,73,82,177,179,64,68,178,179,25,54,179,179,211,39,180,179,109,25,181,179,232,10,182,179,67,252,182,179,127,237,183,179,155,222,184,179,152,207,185,179,116,192,186,179,49,177,187,179,206,161,188,179,74,146,189,179,167,130,190,179,227,114,191,179,255,98,192,179,250,82,193,179,213,66,194,179,143,50,195,179,40,34,196,179,160,17,197,179,248,0,198,179,46,240,198,179,67,223,199,179,55,206,200,179,10,189,201,179,
187,171,202,179,75,154,203,179,185,136,204,179,5,119,205,179,48,101,206,179,56,83,207,179,31,65,208,179,227,46,209,179,134,28,210,179,6,10,211,179,100,247,211,179,159,228,212,179,184,209,213,179,174,190,214,179,129,171,215,179,50,152,216,179,192,132,217,179,42,113,218,179,114,93,219,179,150,73,220,179,151,53,221,179,117,33,222,179,47,13,223,179,198,248,223,179,57,228,224,179,136,207,225,179,180,186,226,179,187,165,227,179,158,144,228,179,94,123,229,179,249,101,230,179,112,80,231,179,194,58,232,179,
240,36,233,179,250,14,234,179,223,248,234,179,159,226,235,179,58,204,236,179,176,181,237,179,1,159,238,179,45,136,239,179,52,113,240,179,22,90,241,179,210,66,242,179,105,43,243,179,218,19,244,179,37,252,244,179,75,228,245,179,75,204,246,179,37,180,247,179,217,155,248,179,103,131,249,179,207,106,250,179,16,82,251,179,43,57,252,179,32,32,253,179,238,6,254,179,149,237,254,179,22,212,255,179,56,93,0,180,81,208,0,180,87,67,1,180,74,182,1,180,41,41,2,180,244,155,2,180,171,14,3,180,79,129,3,180,223,243,
3,180,91,102,4,180,196,216,4,180,24,75,5,180,89,189,5,180,133,47,6,180,158,161,6,180,162,19,7,180,146,133,7,180,111,247,7,180,55,105,8,180,234,218,8,180,138,76,9,180,21,190,9,180,139,47,10,180,238,160,10,180,59,18,11,180,117,131,11,180,153,244,11,180,170,101,12,180,165,214,12,180,140,71,13,180,94,184,13,180,27,41,14,180,196,153,14,180,87,10,15,180,214,122,15,180,64,235,15,180,149,91,16,180,212,203,16,180,255,59,17,180,21,172,17,180,21,28,18,180,0,140,18,180,214,251,18,180,151,107,19,180,66,219,19,
180,216,74,20,180,89,186,20,180,196,41,21,180,26,153,21,180,90,8,22,180,132,119,22,180,153,230,22,180,152,85,23,180,130,196,23,180,85,51,24,180,19,162,24,180,187,16,25,180,77,127,25,180,202,237,25,180,48,92,26,180,128,202,26,180,186,56,27,180,223,166,27,180,237,20,28,180,228,130,28,180,198,240,28,180,145,94,29,180,70,204,29,180,229,57,30,180,109,167,30,180,223,20,31,180,59,130,31,180,128,239,31,180,174,92,32,180,198,201,32,180,199,54,33,180,177,163,33,180,133,16,34,180,66,125,34,180,232,233,34,180,
120,86,35,180,240,194,35,180,82,47,36,180,156,155,36,180,208,7,37,180,236,115,37,180,242,223,37,180,224,75,38,180,183,183,38,180,119,35,39,180,32,143,39,180,177,250,39,180,43,102,40,180,142,209,40,180,217,60,41,180,13,168,41,180,42,19,42,180,46,126,42,180,28,233,42,180,241,83,43,180,175,190,43,180,86,41,44,180,228,147,44,180,91,254,44,180,186,104,45,180,1,211,45,180,48,61,46,180,72,167,46,180,71,17,47,180,46,123,47,180,254,228,47,180,181,78,48,180,84,184,48,180,219,33,49,180,73,139,49,180,160,244,
49,180,222,93,50,180,4,199,50,180,17,48,51,180,6,153,51,180,227,1,52,180,167,106,52,180,82,211,52,180,229,59,53,180,95,164,53,180,193,12,54,180,10,117,54,180,59,221,54,180,82,69,55,180,81,173,55,180,55,21,56,180,4,125,56,180,184,228,56,180,83,76,57,180,213,179,57,180,63,27,58,180,143,130,58,180,198,233,58,180,228,80,59,180,232,183,59,180,212,30,60,180,166,133,60,180,95,236,60,180,254,82,61,180,132,185,61,180,241,31,62,180,68,134,62,180,126,236,62,180,159,82,63,180,165,184,63,180,146,30,64,180,102,
132,64,180,32,234,64,180,192,79,65,180,70,181,65,180,179,26,66,180,5,128,66,180,62,229,66,180,93,74,67,180,98,175,67,180,77,20,68,180,30,121,68,180,213,221,68,180,114,66,69,180,245,166,69,180,93,11,70,180,172,111,70,180,224,211,70,180,250,55,71,180,249,155,71,180,222,255,71,180,169,99,72,180,89,199,72,180,239,42,73,180,107,142,73,180,204,241,73,180,18,85,74,180,62,184,74,180,79,27,75,180,69,126,75,180,33,225,75,180,226,67,76,180,136,166,76,180,19,9,77,180,132,107,77,180,217,205,77,180,20,48,78,180,
52,146,78,180,56,244,78,180,34,86,79,180,241,183,79,180,164,25,80,180,60,123,80,180,185,220,80,180,27,62,81,180,98,159,81,180,141,0,82,180,157,97,82,180,146,194,82,180,107,35,83,180,41,132,83,180,204,228,83,180,82,69,84,180,190,165,84,180,14,6,85,180,66,102,85,180,90,198,85,180,87,38,86,180,56,134,86,180,254,229,86,180,167,69,87,180,53,165,87,180,167,4,88,180,253,99,88,180,55,195,88,180,85,34,89,180,88,129,89,180,62,224,89,180,8,63,90,180,182,157,90,180,72,252,90,180,190,90,91,180,23,185,91,180,85,
23,92,180,118,117,92,180,122,211,92,180,99,49,93,180,47,143,93,180,223,236,93,180,114,74,94,180,233,167,94,180,67,5,95,180,129,98,95,180,162,191,95,180,167,28,96,180,143,121,96,180,90,214,96,180,8,51,97,180,154,143,97,180,15,236,97,180,104,72,98,180,163,164,98,180,194,0,99,180,196,92,99,180,168,184,99,180,112,20,100,180,27,112,100,180,169,203,100,180,26,39,101,180,109,130,101,180,164,221,101,180,189,56,102,180,185,147,102,180,152,238,102,180,90,73,103,180,254,163,103,180,133,254,103,180,239,88,104,
180,59,179,104,180,106,13,105,180,124,103,105,180,112,193,105,180,70,27,106,180,255,116,106,180,154,206,106,180,24,40,107,180,120,129,107,180,187,218,107,180,223,51,108,180,230,140,108,180,207,229,108,180,155,62,109,180,72,151,109,180,216,239,109,180,74,72,110,180,158,160,110,180,212,248,110,180,236,80,111,180,229,168,111,180,193,0,112,180,127,88,112,180,31,176,112,180,160,7,113,180,4,95,113,180,73,182,113,180,112,13,114,180,120,100,114,180,99,187,114,180,47,18,115,180,220,104,115,180,108,191,115,
180,221,21,116,180,47,108,116,180,99,194,116,180,120,24,117,180,111,110,117,180,71,196,117,180,1,26,118,180,156,111,118,180,25,197,118,180,118,26,119,180,181,111,119,180,214,196,119,180,215,25,120,180,186,110,120,180,126,195,120,180,35,24,121,180,169,108,121,180,16,193,121,180,88,21,122,180,129,105,122,180,139,189,122,180,119,17,123,180,67,101,123,180,240,184,123,180,125,12,124,180,236,95,124,180,60,179,124,180,108,6,125,180,125,89,125,180,111,172,125,180,65,255,125,180,244,81,126,180,136,164,126,
180,252,246,126,180,81,73,127,180,135,155,127,180,157,237,127,180,202,31,128,180,181,72,128,180,145,113,128,180,93,154,128,180,25,195,128,180,197,235,128,180,98,20,129,180,238,60,129,180,107,101,129,180,216,141,129,180,53,182,129,180,130,222,129,180,191,6,130,180,236,46,130,180,9,87,130,180,23,127,130,180,20,167,130,180,1,207,130,180,223,246,130,180,172,30,131,180,105,70,131,180,23,110,131,180,180,149,131,180,65,189,131,180,190,228,131,180,43,12,132,180,136,51,132,180,213,90,132,180,17,130,132,180,
62,169,132,180,90,208,132,180,102,247,132,180,98,30,133,180,78,69,133,180,41,108,133,180,244,146,133,180,175,185,133,180,90,224,133,180,245,6,134,180,127,45,134,180,249,83,134,180,98,122,134,180,188,160,134,180,5,199,134,180,61,237,134,180,101,19,135,180,125,57,135,180,133,95,135,180,124,133,135,180,99,171,135,180,57,209,135,180,255,246,135,180,180,28,136,180,89,66,136,180,237,103,136,180,113,141,136,180,229,178,136,180,72,216,136,180,154,253,136,180,220,34,137,180,13,72,137,180,46,109,137,180,63,
146,137,180,62,183,137,180,45,220,137,180,12,1,138,180,217,37,138,180,151,74,138,180,67,111,138,180,223,147,138,180,106,184,138,180,229,220,138,180,79,1,139,180,168,37,139,180,240,73,139,180,40,110,139,180,79,146,139,180,101,182,139,180,106,218,139,180,95,254,139,180,67,34,140,180,22,70,140,180,216,105,140,180,137,141,140,180,42,177,140,180,186,212,140,180,56,248,140,180,166,27,141,180,4,63,141,180,80,98,141,180,139,133,141,180,181,168,141,180,207,203,141,180,215,238,141,180,207,17,142,180,182,52,
142,180,139,87,142,180,80,122,142,180,3,157,142,180,166,191,142,180,56,226,142,180,184,4,143,180,40,39,143,180,134,73,143,180,212,107,143,180,16,142,143,180,59,176,143,180,85,210,143,180,95,244,143,180,86,22,144,180,61,56,144,180,19,90,144,180,215,123,144,180,139,157,144,180,45,191,144,180,190,224,144,180,62,2,145,180,172,35,145,180,10,69,145,180,86,102,145,180,145,135,145,180,187,168,145,180,211,201,145,180,218,234,145,180,208,11,146,180,180,44,146,180,136,77,146,180,74,110,146,180,250,142,146,180,
154,175,146,180,40,208,146,180,164,240,146,180,15,17,147,180,105,49,147,180,178,81,147,180,233,113,147,180,15,146,147,180,35,178,147,180,38,210,147,180,23,242,147,180,247,17,148,180,198,49,148,180,131,81,148,180,46,113,148,180,201,144,148,180,81,176,148,180,200,207,148,180,46,239,148,180,130,14,149,180,196,45,149,180,246,76,149,180,21,108,149,180,35,139,149,180,31,170,149,180,10,201,149,180,227,231,149,180,171,6,150,180,97,37,150,180,5,68,150,180,152,98,150,180,25,129,150,180,136,159,150,180,230,
189,150,180,50,220,150,180,108,250,150,180,149,24,151,180,172,54,151,180,178,84,151,180,165,114,151,180,135,144,151,180,87,174,151,180,22,204,151,180,195,233,151,180,93,7,152,180,231,36,152,180,94,66,152,180,196,95,152,180,24,125,152,180,90,154,152,180,138,183,152,180,168,212,152,180,181,241,152,180,176,14,153,180,153,43,153,180,112,72,153,180,53,101,153,180,232,129,153,180,138,158,153,180,25,187,153,180,151,215,153,180,3,244,153,180,92,16,154,180,164,44,154,180,218,72,154,180,254,100,154,180,16,
129,154,180,17,157,154,180,255,184,154,180,219,212,154,180,165,240,154,180,94,12,155,180,4,40,155,180,152,67,155,180,26,95,155,180,139,122,155,180,233,149,155,180,53,177,155,180,111,204,155,180,151,231,155,180,173,2,156,180,177,29,156,180,163,56,156,180,131,83,156,180,81,110,156,180,12,137,156,180,182,163,156,180,77,190,156,180,210,216,156,180,69,243,156,180,166,13,157,180,245,39,157,180,50,66,157,180,93,92,157,180,117,118,157,180,123,144,157,180,111,170,157,180,81,196,157,180,33,222,157,180,222,
247,157,180,137,17,158,180,35,43,158,180,169,68,158,180,30,94,158,180,128,119,158,180,208,144,158,180,14,170,158,180,58,195,158,180,83,220,158,180,90,245,158,180,79,14,159,180,49,39,159,180,2,64,159,180,191,88,159,180,107,113,159,180,4,138,159,180,139,162,159,180,0,187,159,180,98,211,159,180,178,235,159,180,240,3,160,180,27,28,160,180,52,52,160,180,58,76,160,180,46,100,160,180,16,124,160,180,223,147,160,180,156,171,160,180,71,195,160,180,223,218,160,180,101,242,160,180,216,9,161,180,57,33,161,180,
136,56,161,180,196,79,161,180,237,102,161,180,4,126,161,180,9,149,161,180,251,171,161,180,219,194,161,180,168,217,161,180,99,240,161,180,11,7,162,180,161,29,162,180,37,52,162,180,149,74,162,180,244,96,162,180,64,119,162,180,121,141,162,180,160,163,162,180,180,185,162,180,182,207,162,180,165,229,162,180,129,251,162,180,75,17,163,180,3,39,163,180,168,60,163,180,58,82,163,180,186,103,163,180,39,125,163,180,130,146,163,180,202,167,163,180,255,188,163,180,34,210,163,180,50,231,163,180,48,252,163,180,27,
17,164,180,243,37,164,180,185,58,164,180,108,79,164,180,13,100,164,180,154,120,164,180,22,141,164,180,126,161,164,180,212,181,164,180,23,202,164,180,72,222,164,180,102,242,164,180,113,6,165,180,105,26,165,180,79,46,165,180,34,66,165,180,227,85,165,180,144,105,165,180,43,125,165,180,180,144,165,180,41,164,165,180,140,183,165,180,220,202,165,180,26,222,165,180,68,241,165,180,92,4,166,180,97,23,166,180,84,42,166,180,52,61,166,180,1,80,166,180,187,98,166,180,98,117,166,180,247,135,166,180,121,154,166,
180,232,172,166,180,68,191,166,180,142,209,166,180,197,227,166,180,233,245,166,180,250,7,167,180,248,25,167,180,228,43,167,180,189,61,167,180,131,79,167,180,54,97,167,180,214,114,167,180,100,132,167,180,222,149,167,180,70,167,167,180,155,184,167,180,221,201,167,180,13,219,167,180,41,236,167,180,51,253,167,180,42,14,168,180,14,31,168,180,223,47,168,180,157,64,168,180,72,81,168,180,225,97,168,180,103,114,168,180,217,130,168,180,57,147,168,180,134,163,168,180,192,179,168,180,232,195,168,180,252,211,
168,180,254,227,168,180,236,243,168,180,200,3,169,180,145,19,169,180,70,35,169,180,233,50,169,180,121,66,169,180,247,81,169,180,97,97,169,180,184,112,169,180,252,127,169,180,46,143,169,180,76,158,169,180,88,173,169,180,81,188,169,180,54,203,169,180,9,218,169,180,201,232,169,180,118,247,169,180,16,6,170,180,151,20,170,180,11,35,170,180,108,49,170,180,186,63,170,180,246,77,170,180,30,92,170,180,51,106,170,180,54,120,170,180,37,134,170,180,1,148,170,180,203,161,170,180,129,175,170,180,37,189,170,180,
181,202,170,180,51,216,170,180,157,229,170,180,245,242,170,180,58,0,171,180,107,13,171,180,138,26,171,180,150,39,171,180,142,52,171,180,116,65,171,180,71,78,171,180,6,91,171,180,179,103,171,180,77,116,171,180,211,128,171,180,71,141,171,180,168,153,171,180,245,165,171,180,48,178,171,180,88,190,171,180,108,202,171,180,110,214,171,180,92,226,171,180,56,238,171,180,1,250,171,180,182,5,172,180,89,17,172,180,232,28,172,180,101,40,172,180,206,51,172,180,37,63,172,180,104,74,172,180,153,85,172,180,182,96,
172,180,193,107,172,180,184,118,172,180,156,129,172,180,110,140,172,180,44,151,172,180,215,161,172,180,112,172,172,180,245,182,172,180,103,193,172,180,198,203,172,180,18,214,172,180,75,224,172,180,113,234,172,180,132,244,172,180,132,254,172,180,113,8,173,180,75,18,173,180,18,28,173,180,198,37,173,180,103,47,173,180,244,56,173,180,111,66,173,180,215,75,173,180,43,85,173,180,109,94,173,180,156,103,173,180,183,112,173,180,192,121,173,180,181,130,173,180,151,139,173,180,103,148,173,180,35,157,173,180,
205,165,173,180,99,174,173,180,230,182,173,180,86,191,173,180,179,199,173,180,253,207,173,180,53,216,173,180,89,224,173,180,106,232,173,180,104,240,173,180,82,248,173,180,42,0,174,180,239,7,174,180,161,15,174,180,64,23,174,180,204,30,174,180,68,38,174,180,170,45,174,180,253,52,174,180,60,60,174,180,105,67,174,180,131,74,174,180,137,81,174,180,125,88,174,180,93,95,174,180,43,102,174,180,229,108,174,180,140,115,174,180,33,122,174,180,162,128,174,180,17,135,174,180,108,141,174,180,180,147,174,180,233,
153,174,180,12,160,174,180,27,166,174,180,23,172,174,180,0,178,174,180,215,183,174,180,154,189,174,180,74,195,174,180,231,200,174,180,113,206,174,180,233,211,174,180,77,217,174,180,158,222,174,180,220,227,174,180,7,233,174,180,31,238,174,180,37,243,174,180,23,248,174,180,246,252,174,180,194,1,175,180,123,6,175,180,33,11,175,180,181,15,175,180,53,20,175,180,162,24,175,180,252,28,175,180,68,33,175,180,120,37,175,180,153,41,175,180,168,45,175,180,163,49,175,180,140,53,175,180,97,57,175,180,36,61,175,
180,211,64,175,180,112,68,175,180,249,71,175,180,112,75,175,180,212,78,175,180,36,82,175,180,98,85,175,180,141,88,175,180,165,91,175,180,170,94,175,180,156,97,175,180,123,100,175,180,71,103,175,180,0,106,175,180,167,108,175,180,58,111,175,180,186,113,175,180,40,116,175,180,131,118,175,180,202,120,175,180,255,122,175,180,33,125,175,180,48,127,175,180,44,129,175,180,21,131,175,180,235,132,175,180,175,134,175,180,95,136,175,180,253,137,175,180,135,139,175,180,255,140,175,180,100,142,175,180,182,143,
175,180,245,144,175,180,33,146,175,180,59,147,175,180,65,148,175,180,53,149,175,180,22,150,175,180,228,150,175,180,159,151,175,180,71,152,175,180,221,152,175,180,95,153,175,180,207,153,175,180,44,154,175,180,118,154,175,180,173,154,175,180,210,154,175,180,227,154,175,180,226,154,175,180,206,154,175,180,167,154,175,180,109,154,175,180,33,154,175,180,194,153,175,180,80,153,175,180,203,152,175,180,51,152,175,180,137,151,175,180,204,150,175,180,252,149,175,180,25,149,175,180,36,148,175,180,27,147,175,
180,0,146,175,180,211,144,175,180,146,143,175,180,63,142,175,180,217,140,175,180,96,139,175,180,213,137,175,180,54,136,175,180,133,134,175,180,194,132,175,180,235,130,175,180,2,129,175,180,7,127,175,180,248,124,175,180,215,122,175,180,163,120,175,180,93,118,175,180,3,116,175,180,151,113,175,180,25,111,175,180,135,108,175,180,228,105,175,180,45,103,175,180,100,100,175,180,136,97,175,180,153,94,175,180,152,91,175,180,132,88,175,180,94,85,175,180,37,82,175,180,217,78,175,180,123,75,175,180,10,72,175,
180,134,68,175,180,240,64,175,180,71,61,175,180,140,57,175,180,190,53,175,180,222,49,175,180,235,45,175,180,229,41,175,180,205,37,175,180,162,33,175,180,101,29,175,180,21,25,175,180,178,20,175,180,62,16,175,180,182,11,175,180,28,7,175,180,112,2,175,180,177,253,174,180,223,248,174,180,251,243,174,180,4,239,174,180,251,233,174,180,224,228,174,180,178,223,174,180,113,218,174,180,30,213,174,180,185,207,174,180,65,202,174,180,183,196,174,180,26,191,174,180,107,185,174,180,169,179,174,180,213,173,174,180,
239,167,174,180,246,161,174,180,235,155,174,180,205,149,174,180,157,143,174,180,90,137,174,180,5,131,174,180,158,124,174,180,36,118,174,180,152,111,174,180,250,104,174,180,73,98,174,180,134,91,174,180,177,84,174,180,201,77,174,180,207,70,174,180,195,63,174,180,164,56,174,180,115,49,174,180,48,42,174,180,218,34,174,180,114,27,174,180,248,19,174,180,108,12,174,180,205,4,174,180,28,253,173,180,89,245,173,180,132,237,173,180,156,229,173,180,162,221,173,180,150,213,173,180,119,205,173,180,71,197,173,180,
4,189,173,180,175,180,173,180,72,172,173,180,206,163,173,180,67,155,173,180,165,146,173,180,245,137,173,180,51,129,173,180,95,120,173,180,121,111,173,180,128,102,173,180,118,93,173,180,89,84,173,180,42,75,173,180,233,65,173,180,150,56,173,180,49,47,173,180,186,37,173,180,49,28,173,180,150,18,173,180,232,8,173,180,41,255,172,180,87,245,172,180,116,235,172,180,126,225,172,180,119,215,172,180,93,205,172,180,50,195,172,180,244,184,172,180,165,174,172,180,67,164,172,180,207,153,172,180,74,143,172,180,
179,132,172,180,9,122,172,180,78,111,172,180,129,100,172,180,161,89,172,180,176,78,172,180,173,67,172,180,152,56,172,180,114,45,172,180,57,34,172,180,238,22,172,180,146,11,172,180,36,0,172,180,163,244,171,180,17,233,171,180,110,221,171,180,184,209,171,180,240,197,171,180,23,186,171,180,44,174,171,180,47,162,171,180,33,150,171,180,0,138,171,180,206,125,171,180,138,113,171,180,52,101,171,180,205,88,171,180,84,76,171,180,201,63,171,180,44,51,171,180,126,38,171,180,190,25,171,180,236,12,171,180,9,0,171,
180,20,243,170,180,13,230,170,180,244,216,170,180,202,203,170,180,143,190,170,180,65,177,170,180,227,163,170,180,114,150,170,180,240,136,170,180,92,123,170,180,183,109,170,180,0,96,170,180,56,82,170,180,94,68,170,180,114,54,170,180,117,40,170,180,103,26,170,180,71,12,170,180,21,254,169,180,210,239,169,180,125,225,169,180,23,211,169,180,160,196,169,180,23,182,169,180,124,167,169,180,208,152,169,180,19,138,169,180,68,123,169,180,100,108,169,180,115,93,169,180,112,78,169,180,91,63,169,180,54,48,169,
180,255,32,169,180,182,17,169,180,93,2,169,180,241,242,168,180,117,227,168,180,231,211,168,180,72,196,168,180,152,180,168,180,214,164,168,180,4,149,168,180,31,133,168,180,42,117,168,180,35,101,168,180,11,85,168,180,226,68,168,180,168,52,168,180,93,36,168,180,0,20,168,180,146,3,168,180,19,243,167,180,131,226,167,180,225,209,167,180,47,193,167,180,107,176,167,180,150,159,167,180,177,142,167,180,186,125,167,180,178,108,167,180,152,91,167,180,110,74,167,180,51,57,167,180,231,39,167,180,137,22,167,180,
27,5,167,180,156,243,166,180,11,226,166,180,106,208,166,180,184,190,166,180,244,172,166,180,32,155,166,180,59,137,166,180,68,119,166,180,61,101,166,180,37,83,166,180,252,64,166,180,195,46,166,180,120,28,166,180,28,10,166,180,176,247,165,180,50,229,165,180,164,210,165,180,5,192,165,180,86,173,165,180,149,154,165,180,196,135,165,180,225,116,165,180,238,97,165,180,235,78,165,180,214,59,165,180,177,40,165,180,123,21,165,180,52,2,165,180,221,238,164,180,117,219,164,180,252,199,164,180,115,180,164,180,
217,160,164,180,46,141,164,180,115,121,164,180,167,101,164,180,202,81,164,180,221,61,164,180,223,41,164,180,209,21,164,180,178,1,164,180,130,237,163,180,66,217,163,180,242,196,163,180,145,176,163,180,31,156,163,180,157,135,163,180,10,115,163,180,103,94,163,180,180,73,163,180,240,52,163,180,28,32,163,180,55,11,163,180,65,246,162,180,60,225,162,180,38,204,162,180,255,182,162,180,201,161,162,180,130,140,162,180,42,119,162,180,194,97,162,180,74,76,162,180,194,54,162,180,41,33,162,180,128,11,162,180,199,
245,161,180,253,223,161,180,36,202,161,180,58,180,161,180,63,158,161,180,53,136,161,180,26,114,161,180,240,91,161,180,181,69,161,180,106,47,161,180,14,25,161,180,163,2,161,180,40,236,160,180,156,213,160,180,0,191,160,180,84,168,160,180,153,145,160,180,205,122,160,180,241,99,160,180,5,77,160,180,9,54,160,180,253,30,160,180,225,7,160,180,181,240,159,180,121,217,159,180,45,194,159,180,209,170,159,180,102,147,159,180,234,123,159,180,94,100,159,180,195,76,159,180,24,53,159,180,93,29,159,180,146,5,159,
180,183,237,158,180,204,213,158,180,210,189,158,180,199,165,158,180,173,141,158,180,131,117,158,180,74,93,158,180,0,69,158,180,167,44,158,180,63,20,158,180,198,251,157,180,62,227,157,180,166,202,157,180,255,177,157,180,71,153,157,180,129,128,157,180,170,103,157,180,196,78,157,180,207,53,157,180,201,28,157,180,181,3,157,180,144,234,156,180,93,209,156,180,25,184,156,180,198,158,156,180,100,133,156,180,242,107,156,180,113,82,156,180,224,56,156,180,63,31,156,180,144,5,156,180,209,235,155,180,2,210,155,
180,36,184,155,180,55,158,155,180,58,132,155,180,46,106,155,180,19,80,155,180,232,53,155,180,174,27,155,180,101,1,155,180,13,231,154,180,165,204,154,180,46,178,154,180,168,151,154,180,18,125,154,180,109,98,154,180,185,71,154,180,246,44,154,180,36,18,154,180,67,247,153,180,82,220,153,180,83,193,153,180,68,166,153,180,38,139,153,180,249,111,153,180,189,84,153,180,114,57,153,180,24,30,153,180,175,2,153,180,55,231,152,180,176,203,152,180,26,176,152,180,117,148,152,180,193,120,152,180,254,92,152,180,44,
65,152,180,75,37,152,180,91,9,152,180,93,237,151,180,80,209,151,180,51,181,151,180,8,153,151,180,206,124,151,180,134,96,151,180,46,68,151,180,200,39,151,180,83,11,151,180,207,238,150,180,61,210,150,180,156,181,150,180,236,152,150,180,45,124,150,180,96,95,150,180,132,66,150,180,154,37,150,180,161,8,150,180,153,235,149,180,131,206,149,180,94,177,149,180,42,148,149,180,232,118,149,180,152,89,149,180,56,60,149,180,203,30,149,180,79,1,149,180,196,227,148,180,43,198,148,180,132,168,148,180,206,138,148,
180,10,109,148,180,55,79,148,180,86,49,148,180,103,19,148,180,105,245,147,180,93,215,147,180,66,185,147,180,26,155,147,180,227,124,147,180,157,94,147,180,74,64,147,180,232,33,147,180,120,3,147,180,250,228,146,180,109,198,146,180,211,167,146,180,42,137,146,180,115,106,146,180,174,75,146,180,219,44,146,180,250,13,146,180,10,239,145,180,13,208,145,180,2,177,145,180,232,145,145,180,193,114,145,180,139,83,145,180,72,52,145,180,246,20,145,180,151,245,144,180,41,214,144,180,174,182,144,180,37,151,144,180,
142,119,144,180,233,87,144,180,54,56,144,180,117,24,144,180,167,248,143,180,202,216,143,180,224,184,143,180,232,152,143,180,226,120,143,180,207,88,143,180,174,56,143,180,127,24,143,180,66,248,142,180,248,215,142,180,160,183,142,180,59,151,142,180,199,118,142,180,71,86,142,180,184,53,142,180,28,21,142,180,114,244,141,180,187,211,141,180,247,178,141,180,36,146,141,180,69,113,141,180,87,80,141,180,93,47,141,180,85,14,141,180,63,237,140,180,28,204,140,180,236,170,140,180,174,137,140,180,99,104,140,180,
10,71,140,180,164,37,140,180,49,4,140,180,177,226,139,180,35,193,139,180,136,159,139,180,223,125,139,180,42,92,139,180,103,58,139,180,151,24,139,180,186,246,138,180,208,212,138,180,216,178,138,180,211,144,138,180,194,110,138,180,163,76,138,180,119,42,138,180,62,8,138,180,248,229,137,180,165,195,137,180,69,161,137,180,215,126,137,180,93,92,137,180,214,57,137,180,66,23,137,180,161,244,136,180,243,209,136,180,56,175,136,180,113,140,136,180,156,105,136,180,187,70,136,180,205,35,136,180,210,0,136,180,
202,221,135,180,181,186,135,180,148,151,135,180,102,116,135,180,43,81,135,180,227,45,135,180,143,10,135,180,46,231,134,180,192,195,134,180,70,160,134,180,191,124,134,180,44,89,134,180,140,53,134,180,223,17,134,180,38,238,133,180,96,202,133,180,142,166,133,180,175,130,133,180,196,94,133,180,204,58,133,180,200,22,133,180,183,242,132,180,154,206,132,180,113,170,132,180,59,134,132,180,249,97,132,180,171,61,132,180,80,25,132,180,233,244,131,180,117,208,131,180,246,171,131,180,106,135,131,180,209,98,131,
180,45,62,131,180,124,25,131,180,192,244,130,180,247,207,130,180,34,171,130,180,64,134,130,180,83,97,130,180,90,60,130,180,84,23,130,180,66,242,129,180,37,205,129,180,251,167,129,180,198,130,129,180,132,93,129,180,54,56,129,180,221,18,129,180,119,237,128,180,6,200,128,180,137,162,128,180,255,124,128,180,106,87,128,180,201,49,128,180,29,12,128,180,200,204,127,180,64,129,127,180,159,53,127,180,232,233,126,180,25,158,126,180,50,82,126,180,52,6,126,180,31,186,125,180,242,109,125,180,174,33,125,180,83,
213,124,180,225,136,124,180,87,60,124,180,182,239,123,180,255,162,123,180,48,86,123,180,74,9,123,180,77,188,122,180,57,111,122,180,14,34,122,180,205,212,121,180,116,135,121,180,5,58,121,180,127,236,120,180,226,158,120,180,46,81,120,180,100,3,120,180,131,181,119,180,140,103,119,180,126,25,119,180,90,203,118,180,31,125,118,180,205,46,118,180,102,224,117,180,231,145,117,180,83,67,117,180,168,244,116,180,231,165,116,180,16,87,116,180,35,8,116,180,31,185,115,180,6,106,115,180,214,26,115,180,144,203,114,
180,53,124,114,180,195,44,114,180,60,221,113,180,158,141,113,180,235,61,113,180,34,238,112,180,67,158,112,180,79,78,112,180,68,254,111,180,37,174,111,180,239,93,111,180,164,13,111,180,67,189,110,180,205,108,110,180,66,28,110,180,161,203,109,180,235,122,109,180,31,42,109,180,62,217,108,180,72,136,108,180,60,55,108,180,28,230,107,180,230,148,107,180,155,67,107,180,59,242,106,180,198,160,106,180,60,79,106,180,157,253,105,180,233,171,105,180,32,90,105,180,66,8,105,180,80,182,104,180,73,100,104,180,45,
18,104,180,252,191,103,180,183,109,103,180,93,27,103,180,238,200,102,180,107,118,102,180,212,35,102,180,40,209,101,180,104,126,101,180,147,43,101,180,170,216,100,180,172,133,100,180,154,50,100,180,117,223,99,180,58,140,99,180,236,56,99,180,138,229,98,180,19,146,98,180,137,62,98,180,234,234,97,180,56,151,97,180,114,67,97,180,151,239,96,180,169,155,96,180,168,71,96,180,146,243,95,180,105,159,95,180,44,75,95,180,219,246,94,180,119,162,94,180,255,77,94,180,116,249,93,180,213,164,93,180,34,80,93,180,93,
251,92,180,132,166,92,180,151,81,92,180,152,252,91,180,133,167,91,180,95,82,91,180,38,253,90,180,217,167,90,180,122,82,90,180,7,253,89,180,130,167,89,180,233,81,89,180,62,252,88,180,127,166,88,180,174,80,88,180,202,250,87,180,211,164,87,180,202,78,87,180,174,248,86,180,127,162,86,180,61,76,86,180,233,245,85,180,131,159,85,180,10,73,85,180,126,242,84,180,224,155,84,180,48,69,84,180,109,238,83,180,152,151,83,180,177,64,83,180,184,233,82,180,172,146,82,180,143,59,82,180,95,228,81,180,29,141,81,180,201,
53,81,180,99,222,80,180,236,134,80,180,98,47,80,180,198,215,79,180,25,128,79,180,90,40,79,180,137,208,78,180,167,120,78,180,179,32,78,180,173,200,77,180,150,112,77,180,109,24,77,180,50,192,76,180,231,103,76,180,137,15,76,180,27,183,75,180,155,94,75,180,10,6,75,180,103,173,74,180,180,84,74,180,239,251,73,180,25,163,73,180,50,74,73,180,58,241,72,180,49,152,72,180,23,63,72,180,236,229,71,180,176,140,71,180,100,51,71,180,6,218,70,180,152,128,70,180,25,39,70,180,138,205,69,180,234,115,69,180,57,26,69,
180,119,192,68,180,166,102,68,180,195,12,68,180,209,178,67,180,205,88,67,180,186,254,66,180,150,164,66,180,98,74,66,180,30,240,65,180,201,149,65,180,101,59,65,180,240,224,64,180,107,134,64,180,215,43,64,180,50,209,63,180,125,118,63,180,185,27,63,180,228,192,62,180,0,102,62,180,12,11,62,180,8,176,61,180,245,84,61,180,210,249,60,180,159,158,60,180,93,67,60,180,11,232,59,180,170,140,59,180,57,49,59,180,185,213,58,180,41,122,58,180,139,30,58,180,221,194,57,180,31,103,57,180,83,11,57,180,119,175,56,180,
141,83,56,180,147,247,55,180,138,155,55,180,114,63,55,180,76,227,54,180,22,135,54,180,209,42,54,180,126,206,53,180,28,114,53,180,171,21,53,180,44,185,52,180,158,92,52,180,1,0,52,180,85,163,51,180,156,70,51,180,211,233,50,180,253,140,50,180,23,48,50,180,36,211,49,180,34,118,49,180,18,25,49,180,243,187,48,180,199,94,48,180,140,1,48,180,67,164,47,180,237,70,47,180,136,233,46,180,21,140,46,180,148,46,46,180,5,209,45,180,105,115,45,180,190,21,45,180,6,184,44,180,64,90,44,180,109,252,43,180,140,158,43,
180,157,64,43,180,161,226,42,180,151,132,42,180,127,38,42,180,91,200,41,180,40,106,41,180,233,11,41,180,156,173,40,180,66,79,40,180,219,240,39,180,102,146,39,180,228,51,39,180,86,213,38,180,186,118,38,180,17,24,38,180,91,185,37,180,153,90,37,180,201,251,36,180,237,156,36,180,3,62,36,180,14,223,35,180,11,128,35,180,251,32,35,180,223,193,34,180,183,98,34,180,130,3,34,180,64,164,33,180,242,68,33,180,152,229,32,180,49,134,32,180,189,38,32,180,62,199,31,180,178,103,31,180,26,8,31,180,118,168,30,180,198,
72,30,180,10,233,29,180,65,137,29,180,109,41,29,180,141,201,28,180,160,105,28,180,168,9,28,180,164,169,27,180,149,73,27,180,121,233,26,180,82,137,26,180,31,41,26,180,225,200,25,180,151,104,25,180,66,8,25,180,225,167,24,180,116,71,24,180,253,230,23,180,122,134,23,180,235,37,23,180,81,197,22,180,172,100,22,180,252,3,22,180,65,163,21,180,123,66,21,180,169,225,20,180,205,128,20,180,230,31,20,180,243,190,19,180,246,93,19,180,238,252,18,180,219,155,18,180,190,58,18,180,149,217,17,180,99,120,17,180,37,23,
17,180,221,181,16,180,138,84,16,180,45,243,15,180,197,145,15,180,83,48,15,180,215,206,14,180,80,109,14,180,191,11,14,180,36,170,13,180,126,72,13,180,207,230,12,180,21,133,12,180,81,35,12,180,131,193,11,180,172,95,11,180,202,253,10,180,222,155,10,180,233,57,10,180,233,215,9,180,224,117,9,180,206,19,9,180,177,177,8,180,139,79,8,180,91,237,7,180,34,139,7,180,223,40,7,180,147,198,6,180,62,100,6,180,223,1,6,180,118,159,5,180,5,61,5,180,138,218,4,180,6,120,4,180,121,21,4,180,226,178,3,180,67,80,3,180,154,
237,2,180,233,138,2,180,46,40,2,180,107,197,1,180,159,98,1,180,202,255,0,180,236,156,0,180,6,58,0,180,45,174,255,179,62,232,254,179,61,34,254,179,43,92,253,179,8,150,252,179,212,207,251,179,143,9,251,179,58,67,250,179,212,124,249,179,93,182,248,179,213,239,247,179,62,41,247,179,150,98,246,179,221,155,245,179,21,213,244,179,60,14,244,179,84,71,243,179,91,128,242,179,83,185,241,179,59,242,240,179,20,43,240,179,220,99,239,179,150,156,238,179,64,213,237,179,218,13,237,179,102,70,236,179,226,126,235,179,
80,183,234,179,174,239,233,179,254,39,233,179,62,96,232,179,112,152,231,179,148,208,230,179,169,8,230,179,175,64,229,179,167,120,228,179,145,176,227,179,109,232,226,179,59,32,226,179,250,87,225,179,172,143,224,179,80,199,223,179,230,254,222,179,111,54,222,179,234,109,221,179,87,165,220,179,183,220,219,179,10,20,219,179,80,75,218,179,136,130,217,179,180,185,216,179,210,240,215,179,228,39,215,179,233,94,214,179,225,149,213,179,205,204,212,179,172,3,212,179,126,58,211,179,69,113,210,179,255,167,209,
179,172,222,208,179,78,21,208,179,228,75,207,179,110,130,206,179,236,184,205,179,94,239,204,179,197,37,204,179,32,92,203,179,112,146,202,179,180,200,201,179,237,254,200,179,26,53,200,179,61,107,199,179,85,161,198,179,97,215,197,179,99,13,197,179,90,67,196,179,70,121,195,179,40,175,194,179,255,228,193,179,203,26,193,179,142,80,192,179,70,134,191,179,244,187,190,179,152,241,189,179,49,39,189,179,193,92,188,179,71,146,187,179,196,199,186,179,54,253,185,179,160,50,185,179,255,103,184,179,86,157,183,179,
163,210,182,179,230,7,182,179,33,61,181,179,82,114,180,179,123,167,179,179,155,220,178,179,178,17,178,179,192,70,177,179,198,123,176,179,195,176,175,179,184,229,174,179,164,26,174,179,136,79,173,179,100,132,172,179,56,185,171,179,4,238,170,179,200,34,170,179,132,87,169,179,56,140,168,179,229,192,167,179,138,245,166,179,40,42,166,179,190,94,165,179,77,147,164,179,213,199,163,179,85,252,162,179,207,48,162,179,66,101,161,179,173,153,160,179,18,206,159,179,113,2,159,179,200,54,158,179],"i8",4,y.a+1331200);
Q([25,107,157,179,100,159,156,179,168,211,155,179,230,7,155,179,30,60,154,179,80,112,153,179,124,164,152,179,162,216,151,179,194,12,151,179,220,64,150,179,241,116,149,179,0,169,148,179,10,221,147,179,14,17,147,179,13,69,146,179,6,121,145,179,251,172,144,179,234,224,143,179,213,20,143,179,187,72,142,179,155,124,141,179,120,176,140,179,79,228,139,179,34,24,139,179,241,75,138,179,187,127,137,179,129,179,136,179,66,231,135,179,0,27,135,179,186,78,134,179,111,130,133,179,33,182,132,179,207,233,131,179,
122,29,131,179,33,81,130,179,196,132,129,179,100,184,128,179,1,216,127,179,52,63,126,179,97,166,124,179,135,13,123,179,167,116,121,179,194,219,119,179,215,66,118,179,231,169,116,179,241,16,115,179,246,119,113,179,247,222,111,179,242,69,110,179,233,172,108,179,220,19,107,179,203,122,105,179,181,225,103,179,155,72,102,179,126,175,100,179,93,22,99,179,57,125,97,179,18,228,95,179,232,74,94,179,187,177,92,179,139,24,91,179,88,127,89,179,36,230,87,179,237,76,86,179,180,179,84,179,122,26,83,179,61,129,81,
179,0,232,79,179,193,78,78,179,128,181,76,179,63,28,75,179,254,130,73,179,187,233,71,179,120,80,70,179,53,183,68,179,242,29,67,179,174,132,65,179,107,235,63,179,41,82,62,179,231,184,60,179,166,31,59,179,102,134,57,179,38,237,55,179,233,83,54,179,172,186,52,179,113,33,51,179,56,136,49,179,1,239,47,179,205,85,46,179,154,188,44,179,106,35,43,179,60,138,41,179,18,241,39,179,234,87,38,179,198,190,36,179,165,37,35,179,135,140,33,179,109,243,31,179,87,90,30,179,69,193,28,179,55,40,27,179,45,143,25,179,40,
246,23,179,40,93,22,179,44,196,20,179,54,43,19,179,69,146,17,179,89,249,15,179,115,96,14,179,146,199,12,179,183,46,11,179,227,149,9,179,21,253,7,179,77,100,6,179,139,203,4,179,209,50,3,179,29,154,1,179,112,1,0,179,150,209,252,178,90,160,249,178,45,111,246,178,16,62,243,178,2,13,240,178,5,220,236,178,25,171,233,178,61,122,230,178,115,73,227,178,186,24,224,178,19,232,220,178,126,183,217,178,252,134,214,178,141,86,211,178,49,38,208,178,232,245,204,178,180,197,201,178,148,149,198,178,136,101,195,178,
146,53,192,178,176,5,189,178,229,213,185,178,47,166,182,178,143,118,179,178,7,71,176,178,149,23,173,178,58,232,169,178,248,184,166,178,205,137,163,178,186,90,160,178,192,43,157,178,224,252,153,178,24,206,150,178,106,159,147,178,215,112,144,178,93,66,141,178,254,19,138,178,187,229,134,178,146,183,131,178,133,137,128,178,42,183,122,178,129,91,116,178,18,0,110,178,221,164,103,178,226,73,97,178,35,239,90,178,160,148,84,178,90,58,78,178,82,224,71,178,135,134,65,178,251,44,59,178,175,211,52,178,163,122,
46,178,215,33,40,178,77,201,33,178,5,113,27,178,0,25,21,178,62,193,14,178,192,105,8,178,136,18,2,178,40,119,247,177,206,201,234,177,1,29,222,177,195,112,209,177,21,197,196,177,249,25,184,177,111,111,171,177,122,197,158,177,26,28,146,177,82,115,133,177,66,150,113,177,20,71,88,177,28,249,62,177,92,172,37,177,215,96,12,177,32,45,230,176,18,155,179,176,139,11,129,176,29,253,28,176,25,161,95,175,149,157,52,47,218,49,18,48,14,55,119,48,123,27,174,48,196,152,224,48,175,137,9,49,160,197,34,49,52,0,60,49,
104,57,85,49,58,113,110,49,211,211,131,49,85,110,144,49,33,8,157,49,55,161,169,49,149,57,182,49,58,209,194,49,36,104,207,49,83,254,219,49,196,147,232,49,118,40,245,49,52,222,0,50,205,39,7,50,5,113,13,50,218,185,19,50,78,2,26,50,93,74,32,50,9,146,38,50,81,217,44,50,51,32,51,50,176,102,57,50,198,172,63,50,117,242,69,50,188,55,76,50,155,124,82,50,17,193,88,50,29,5,95,50,190,72,101,50,245,139,107,50,192,206,113,50,30,17,120,50,16,83,126,50,74,74,130,50,213,106,133,50,40,139,136,50,67,171,139,50,39,203,
142,50,210,234,145,50,68,10,149,50,125,41,152,50,125,72,155,50,67,103,158,50,207,133,161,50,32,164,164,50,55,194,167,50,19,224,170,50,179,253,173,50,24,27,177,50,65,56,180,50,45,85,183,50,221,113,186,50,80,142,189,50,134,170,192,50,125,198,195,50,56,226,198,50,179,253,201,50,240,24,205,50,239,51,208,50,174,78,211,50,45,105,214,50,109,131,217,50,109,157,220,50,44,183,223,50,170,208,226,50,231,233,229,50,226,2,233,50,156,27,236,50,20,52,239,50,73,76,242,50,60,100,245,50,235,123,248,50,87,147,251,50,
128,170,254,50,178,224,0,51,2,108,2,51,48,247,3,51,59,130,5,51,36,13,7,51,234,151,8,51,141,34,10,51,12,173,11,51,105,55,13,51,162,193,14,51,183,75,16,51,169,213,17,51,119,95,19,51,33,233,20,51,166,114,22,51,7,252,23,51,68,133,25,51,92,14,27,51,79,151,28,51,29,32,30,51,198,168,31,51,73,49,33,51,167,185,34,51,224,65,36,51,242,201,37,51,223,81,39,51,165,217,40,51,70,97,42,51,192,232,43,51,19,112,45,51,63,247,46,51,69,126,48,51,36,5,50,51,219,139,51,51,107,18,53,51,212,152,54,51,20,31,56,51,45,165,57,
51,30,43,59,51,231,176,60,51,136,54,62,51,0,188,63,51,80,65,65,51,118,198,66,51,116,75,68,51,73,208,69,51,245,84,71,51,119,217,72,51,207,93,74,51,254,225,75,51,4,102,77,51,223,233,78,51,144,109,80,51,22,241,81,51,114,116,83,51,164,247,84,51,171,122,86,51,135,253,87,51,55,128,89,51,189,2,91,51,23,133,92,51,70,7,94,51,73,137,95,51,32,11,97,51,203,140,98,51,74,14,100,51,157,143,101,51,195,16,103,51,189,145,104,51,137,18,106,51,41,147,107,51,156,19,109,51,226,147,110,51,250,19,112,51,229,147,113,51,162,
19,115,51,49,147,116,51,146,18,118,51,198,145,119,51,202,16,121,51,161,143,122,51,73,14,124,51,194,140,125,51,12,11,127,51,148,68,128,51,138,3,129,51,104,194,129,51,47,129,130,51,221,63,131,51,116,254,131,51,243,188,132,51,90,123,133,51,169,57,134,51,223,247,134,51,254,181,135,51,3,116,136,51,241,49,137,51,198,239,137,51,130,173,138,51,38,107,139,51,177,40,140,51,36,230,140,51,125,163,141,51,190,96,142,51,229,29,143,51,243,218,143,51,233,151,144,51,197,84,145,51,135,17,146,51,49,206,146,51,192,138,
147,51,55,71,148,51,147,3,149,51,214,191,149,51,0,124,150,51,15,56,151,51,4,244,151,51,224,175,152,51,161,107,153,51,73,39,154,51,214,226,154,51,73,158,155,51,161,89,156,51,223,20,157,51,3,208,157,51,12,139,158,51,250,69,159,51,206,0,160,51,135,187,160,51,37,118,161,51,168,48,162,51,16,235,162,51,93,165,163,51,143,95,164,51,166,25,165,51,161,211,165,51,129,141,166,51,70,71,167,51,239,0,168,51,125,186,168,51,238,115,169,51,68,45,170,51,127,230,170,51,157,159,171,51,160,88,172,51,134,17,173,51,81,202,
173,51,255,130,174,51,145,59,175,51,6,244,175,51,96,172,176,51,157,100,177,51,189,28,178,51,193,212,178,51,168,140,179,51,114,68,180,51,32,252,180,51,176,179,181,51,36,107,182,51,123,34,183,51,180,217,183,51,209,144,184,51,208,71,185,51,178,254,185,51,119,181,186,51,30,108,187,51,167,34,188,51,19,217,188,51,98,143,189,51,146,69,190,51,165,251,190,51,154,177,191,51,113,103,192,51,42,29,193,51,197,210,193,51,66,136,194,51,161,61,195,51,225,242,195,51,3,168,196,51,6,93,197,51,235,17,198,51,178,198,198,
51,90,123,199,51,227,47,200,51,77,228,200,51,153,152,201,51,197,76,202,51,211,0,203,51,193,180,203,51,145,104,204,51,65,28,205,51,210,207,205,51,68,131,206,51,150,54,207,51,201,233,207,51,220,156,208,51,207,79,209,51,163,2,210,51,88,181,210,51,236,103,211,51,96,26,212,51,181,204,212,51,234,126,213,51,254,48,214,51,242,226,214,51,198,148,215,51,122,70,216,51,14,248,216,51,129,169,217,51,211,90,218,51,5,12,219,51,23,189,219,51,7,110,220,51,215,30,221,51,134,207,221,51,20,128,222,51,129,48,223,51,205,
224,223,51,249,144,224,51,2,65,225,51,235,240,225,51,178,160,226,51,88,80,227,51,221,255,227,51,64,175,228,51,129,94,229,51,161,13,230,51,159,188,230,51,123,107,231,51,54,26,232,51,207,200,232,51,69,119,233,51,154,37,234,51,204,211,234,51,221,129,235,51,203,47,236,51,150,221,236,51,64,139,237,51,199,56,238,51,43,230,238,51,109,147,239,51,140,64,240,51,137,237,240,51,99,154,241,51,26,71,242,51,174,243,242,51,31,160,243,51,109,76,244,51,152,248,244,51,160,164,245,51,133,80,246,51,70,252,246,51,228,
167,247,51,95,83,248,51,182,254,248,51,233,169,249,51,249,84,250,51,230,255,250,51,174,170,251,51,83,85,252,51,212,255,252,51,49,170,253,51,106,84,254,51,127,254,254,51,111,168,255,51,30,41,0,52,242,125,0,52,180,210,0,52,100,39,1,52,2,124,1,52,141,208,1,52,6,37,2,52,109,121,2,52,193,205,2,52,3,34,3,52,51,118,3,52,80,202,3,52,91,30,4,52,83,114,4,52,57,198,4,52,12,26,5,52,204,109,5,52,122,193,5,52,21,21,6,52,158,104,6,52,19,188,6,52,118,15,7,52,199,98,7,52,4,182,7,52,47,9,8,52,70,92,8,52,75,175,8,52,
61,2,9,52,28,85,9,52,231,167,9,52,160,250,9,52,70,77,10,52,217,159,10,52,88,242,10,52,196,68,11,52,30,151,11,52,99,233,11,52,150,59,12,52,182,141,12,52,194,223,12,52,186,49,13,52,160,131,13,52,114,213,13,52,48,39,14,52,219,120,14,52,115,202,14,52,247,27,15,52,103,109,15,52,196,190,15,52,13,16,16,52,67,97,16,52,101,178,16,52,115,3,17,52,110,84,17,52,85,165,17,52,39,246,17,52,231,70,18,52,146,151,18,52,41,232,18,52,173,56,19,52,28,137,19,52,120,217,19,52,191,41,20,52,243,121,20,52,18,202,20,52,29,26,
21,52,21,106,21,52,248,185,21,52,199,9,22,52,129,89,22,52,40,169,22,52,186,248,22,52,56,72,23,52,161,151,23,52,246,230,23,52,55,54,24,52,99,133,24,52,123,212,24,52,127,35,25,52,110,114,25,52,72,193,25,52,14,16,26,52,191,94,26,52,92,173,26,52,228,251,26,52,87,74,27,52,182,152,27,52,0,231,27,52,53,53,28,52,85,131,28,52,96,209,28,52,87,31,29,52,57,109,29,52,6,187,29,52,190,8,30,52,96,86,30,52,238,163,30,52,103,241,30,52,203,62,31,52,26,140,31,52,84,217,31,52,120,38,32,52,136,115,32,52,130,192,32,52,
103,13,33,52,55,90,33,52,241,166,33,52,150,243,33,52,38,64,34,52,161,140,34,52,6,217,34,52,86,37,35,52,144,113,35,52,181,189,35,52,196,9,36,52,190,85,36,52,162,161,36,52,113,237,36,52,42,57,37,52,205,132,37,52,91,208,37,52,211,27,38,52,53,103,38,52,130,178,38,52,185,253,38,52,218,72,39,52,229,147,39,52,219,222,39,52,186,41,40,52,132,116,40,52,55,191,40,52,213,9,41,52,93,84,41,52,207,158,41,52,42,233,41,52,112,51,42,52,159,125,42,52,185,199,42,52,188,17,43,52,169,91,43,52,128,165,43,52,65,239,43,52,
235,56,44,52,127,130,44,52,253,203,44,52,101,21,45,52,182,94,45,52,241,167,45,52,21,241,45,52,35,58,46,52,26,131,46,52,251,203,46,52,198,20,47,52,122,93,47,52,23,166,47,52,158,238,47,52,14,55,48,52,104,127,48,52,170,199,48,52,215,15,49,52,236,87,49,52,235,159,49,52,211,231,49,52,164,47,50,52,94,119,50,52,1,191,50,52,142,6,51,52,4,78,51,52,98,149,51,52,170,220,51,52,219,35,52,52,245,106,52,52,248,177,52,52,227,248,52,52,184,63,53,52,118,134,53,52,28,205,53,52,171,19,54,52,36,90,54,52,132,160,54,52,
206,230,54,52,1,45,55,52,28,115,55,52,32,185,55,52,12,255,55,52,225,68,56,52,159,138,56,52,70,208,56,52,213,21,57,52,76,91,57,52,172,160,57,52,245,229,57,52,38,43,58,52,64,112,58,52,66,181,58,52,44,250,58,52,255,62,59,52,186,131,59,52,93,200,59,52,233,12,60,52,93,81,60,52,185,149,60,52,254,217,60,52,43,30,61,52,64,98,61,52,61,166,61,52,34,234,61,52,240,45,62,52,165,113,62,52,67,181,62,52,200,248,62,52,54,60,63,52,140,127,63,52,201,194,63,52,239,5,64,52,252,72,64,52,242,139,64,52,207,206,64,52,148,
17,65,52,65,84,65,52,214,150,65,52,83,217,65,52,183,27,66,52,3,94,66,52,55,160,66,52,83,226,66,52,86,36,67,52,65,102,67,52,20,168,67,52,206,233,67,52,112,43,68,52,249,108,68,52,106,174,68,52,194,239,68,52,2,49,69,52,41,114,69,52,56,179,69,52,47,244,69,52,12,53,70,52,209,117,70,52,126,182,70,52,17,247,70,52,141,55,71,52,239,119,71,52,57,184,71,52,105,248,71,52,130,56,72,52,129,120,72,52,104,184,72,52,53,248,72,52,234,55,73,52,134,119,73,52,9,183,73,52,115,246,73,52,197,53,74,52,253,116,74,52,28,180,
74,52,34,243,74,52,16,50,75,52,228,112,75,52,159,175,75,52,65,238,75,52,202,44,76,52,58,107,76,52,144,169,76,52,206,231,76,52,242,37,77,52,253,99,77,52,239,161,77,52,200,223,77,52,135,29,78,52,45,91,78,52,185,152,78,52,45,214,78,52,135,19,79,52,199,80,79,52,238,141,79,52,252,202,79,52,241,7,80,52,203,68,80,52,141,129,80,52,53,190,80,52,195,250,80,52,56,55,81,52,147,115,81,52,212,175,81,52,252,235,81,52,11,40,82,52,0,100,82,52,219,159,82,52,156,219,82,52,68,23,83,52,210,82,83,52,70,142,83,52,160,201,
83,52,225,4,84,52,8,64,84,52,21,123,84,52,8,182,84,52,225,240,84,52,161,43,85,52,70,102,85,52,210,160,85,52,68,219,85,52,155,21,86,52,217,79,86,52,253,137,86,52,6,196,86,52,246,253,86,52,204,55,87,52,135,113,87,52,41,171,87,52,176,228,87,52,29,30,88,52,112,87,88,52,169,144,88,52,200,201,88,52,204,2,89,52,183,59,89,52,135,116,89,52,60,173,89,52,216,229,89,52,89,30,90,52,192,86,90,52,13,143,90,52,63,199,90,52,86,255,90,52,84,55,91,52,55,111,91,52,255,166,91,52,174,222,91,52,65,22,92,52,186,77,92,52,
25,133,92,52,93,188,92,52,135,243,92,52,150,42,93,52,139,97,93,52,100,152,93,52,36,207,93,52,200,5,94,52,83,60,94,52,194,114,94,52,23,169,94,52,81,223,94,52,112,21,95,52,117,75,95,52,94,129,95,52,46,183,95,52,226,236,95,52,123,34,96,52,250,87,96,52,94,141,96,52,167,194,96,52,213,247,96,52,232,44,97,52,225,97,97,52,190,150,97,52,129,203,97,52,40,0,98,52,181,52,98,52,39,105,98,52,125,157,98,52,185,209,98,52,218,5,99,52,223,57,99,52,202,109,99,52,153,161,99,52,77,213,99,52,231,8,100,52,101,60,100,52,
200,111,100,52,15,163,100,52,60,214,100,52,77,9,101,52,67,60,101,52,30,111,101,52,222,161,101,52,131,212,101,52,12,7,102,52,122,57,102,52,204,107,102,52,4,158,102,52,32,208,102,52,32,2,103,52,6,52,103,52,207,101,103,52,126,151,103,52,17,201,103,52,137,250,103,52,229,43,104,52,38,93,104,52,75,142,104,52,85,191,104,52,67,240,104,52,22,33,105,52,205,81,105,52,105,130,105,52,233,178,105,52,77,227,105,52,150,19,106,52,196,67,106,52,213,115,106,52,204,163,106,52,166,211,106,52,101,3,107,52,8,51,107,52,
143,98,107,52,251,145,107,52,75,193,107,52,127,240,107,52,152,31,108,52,149,78,108,52,118,125,108,52,59,172,108,52,228,218,108,52,114,9,109,52,227,55,109,52,57,102,109,52,115,148,109,52,146,194,109,52,148,240,109,52,122,30,110,52,69,76,110,52,243,121,110,52,134,167,110,52,252,212,110,52,87,2,111,52,150,47,111,52,184,92,111,52,191,137,111,52,170,182,111,52,120,227,111,52,43,16,112,52,193,60,112,52,60,105,112,52,154,149,112,52,220,193,112,52,2,238,112,52,12,26,113,52,250,69,113,52,204,113,113,52,130,
157,113,52,27,201,113,52,152,244,113,52,249,31,114,52,62,75,114,52,102,118,114,52,115,161,114,52,99,204,114,52,55,247,114,52,238,33,115,52,137,76,115,52,8,119,115,52,107,161,115,52,177,203,115,52,219,245,115,52,233,31,116,52,218,73,116,52,175,115,116,52,103,157,116,52,3,199,116,52,131,240,116,52,230,25,117,52,45,67,117,52,88,108,117,52,101,149,117,52,87,190,117,52,44,231,117,52,228,15,118,52,128,56,118,52,0,97,118,52,99,137,118,52,169,177,118,52,211,217,118,52,225,1,119,52,209,41,119,52,166,81,119,
52,93,121,119,52,248,160,119,52,119,200,119,52,216,239,119,52,30,23,120,52,70,62,120,52,82,101,120,52,65,140,120,52,20,179,120,52,202,217,120,52,99,0,121,52,223,38,121,52,63,77,121,52,130,115,121,52,168,153,121,52,178,191,121,52,159,229,121,52,111,11,122,52,34,49,122,52,184,86,122,52,50,124,122,52,143,161,122,52,207,198,122,52,242,235,122,52,249,16,123,52,226,53,123,52,175,90,123,52,95,127,123,52,242,163,123,52,104,200,123,52,193,236,123,52,253,16,124,52,28,53,124,52,31,89,124,52,4,125,124,52,205,
160,124,52,121,196,124,52,7,232,124,52,121,11,125,52,206,46,125,52,5,82,125,52,32,117,125,52,30,152,125,52,255,186,125,52,195,221,125,52,105,0,126,52,243,34,126,52,96,69,126,52,175,103,126,52,226,137,126,52,247,171,126,52,239,205,126,52,203,239,126,52,137,17,127,52,42,51,127,52,174,84,127,52,21,118,127,52,95,151,127,52,139,184,127,52,155,217,127,52,141,250,127,52,177,13,128,52,13,30,128,52,90,46,128,52,153,62,128,52,201,78,128,52,235,94,128,52,254,110,128,52,2,127,128,52,248,142,128,52,223,158,128,
52,184,174,128,52,130,190,128,52,61,206,128,52,234,221,128,52,136,237,128,52,23,253,128,52,152,12,129,52,10,28,129,52,110,43,129,52,195,58,129,52,9,74,129,52,64,89,129,52,105,104,129,52,131,119,129,52,143,134,129,52,140,149,129,52,122,164,129,52,90,179,129,52,42,194,129,52,237,208,129,52,160,223,129,52,69,238,129,52,219,252,129,52,98,11,130,52,219,25,130,52,69,40,130,52,160,54,130,52,237,68,130,52,43,83,130,52,90,97,130,52,122,111,130,52,140,125,130,52,143,139,130,52,131,153,130,52,105,167,130,52,
64,181,130,52,8,195,130,52,193,208,130,52,108,222,130,52,7,236,130,52,149,249,130,52,19,7,131,52,131,20,131,52,227,33,131,52,54,47,131,52,121,60,131,52,173,73,131,52,211,86,131,52,234,99,131,52,243,112,131,52,236,125,131,52,215,138,131,52,179,151,131,52,128,164,131,52,62,177,131,52,238,189,131,52,143,202,131,52,33,215,131,52,164,227,131,52,25,240,131,52,126,252,131,52,213,8,132,52,29,21,132,52,87,33,132,52,129,45,132,52,157,57,132,52,170,69,132,52,168,81,132,52,151,93,132,52,119,105,132,52,73,117,
132,52,12,129,132,52,192,140,132,52,101,152,132,52,251,163,132,52,131,175,132,52,251,186,132,52,101,198,132,52,192,209,132,52,12,221,132,52,74,232,132,52,120,243,132,52,152,254,132,52,169,9,133,52,171,20,133,52,158,31,133,52,130,42,133,52,88,53,133,52,31,64,133,52,214,74,133,52,127,85,133,52,25,96,133,52,165,106,133,52,33,117,133,52,143,127,133,52,237,137,133,52,61,148,133,52,126,158,133,52,176,168,133,52,211,178,133,52,232,188,133,52,237,198,133,52,228,208,133,52,204,218,133,52,165,228,133,52,111,
238,133,52,42,248,133,52,214,1,134,52,116,11,134,52,2,21,134,52,130,30,134,52,243,39,134,52,85,49,134,52,168,58,134,52,236,67,134,52,33,77,134,52,72,86,134,52,95,95,134,52,104,104,134,52,98,113,134,52,76,122,134,52,41,131,134,52,246,139,134,52,180,148,134,52,99,157,134,52,4,166,134,52,149,174,134,52,24,183,134,52,140,191,134,52,241,199,134,52,71,208,134,52,142,216,134,52,198,224,134,52,240,232,134,52,10,241,134,52,22,249,134,52,19,1,135,52,1,9,135,52,223,16,135,52,176,24,135,52,113,32,135,52,35,40,
135,52,198,47,135,52,91,55,135,52,224,62,135,52,87,70,135,52,191,77,135,52,24,85,135,52,98,92,135,52,157,99,135,52,201,106,135,52,231,113,135,52,245,120,135,52,245,127,135,52,229,134,135,52,199,141,135,52,154,148,135,52,94,155,135,52,19,162,135,52,185,168,135,52,81,175,135,52,217,181,135,52,83,188,135,52,189,194,135,52,25,201,135,52,102,207,135,52,164,213,135,52,211,219,135,52,243,225,135,52,5,232,135,52,7,238,135,52,251,243,135,52,223,249,135,52,181,255,135,52,124,5,136,52,52,11,136,52,221,16,136,
52,119,22,136,52,3,28,136,52,127,33,136,52,237,38,136,52,76,44,136,52,155,49,136,52,220,54,136,52,14,60,136,52,50,65,136,52,70,70,136,52,75,75,136,52,66,80,136,52,42,85,136,52,3,90,136,52,205,94,136,52,136,99,136,52,52,104,136,52,209,108,136,52,96,113,136,52,223,117,136,52,80,122,136,52,178,126,136,52,5,131,136,52,73,135,136,52,127,139,136,52,165,143,136,52,189,147,136,52,197,151,136,52,191,155,136,52,170,159,136,52,135,163,136,52,84,167,136,52,18,171,136,52,194,174,136,52,99,178,136,52,245,181,136,
52,120,185,136,52,236,188,136,52,82,192,136,52,168,195,136,52,240,198,136,52,41,202,136,52,83,205,136,52,110,208,136,52,123,211,136,52,120,214,136,52,103,217,136,52,71,220,136,52,24,223,136,52,219,225,136,52,142,228,136,52,51,231,136,52,201,233,136,52,80,236,136,52,200,238,136,52,49,241,136,52,140,243,136,52,216,245,136,52,21,248,136,52,67,250,136,52,98,252,136,52,115,254,136,52,117,0,137,52,104,2,137,52,76,4,137,52,34,6,137,52,232,7,137,52,160,9,137,52,73,11,137,52,228,12,137,52,111,14,137,52,236,
15,137,52,90,17,137,52,185,18,137,52,10,20,137,52,75,21,137,52,126,22,137,52,162,23,137,52,184,24,137,52,191,25,137,52,182,26,137,52,160,27,137,52,122,28,137,52,70,29,137,52,3,30,137,52,177,30,137,52,80,31,137,52,225,31,137,52,99,32,137,52,214,32,137,52,59,33,137,52,145,33,137,52,216,33,137,52,16,34,137,52,58,34,137,52,85,34,137,52,97,34,137,52,95,34,137,52,78,34,137,52,46,34,137,52,255,33,137,52,194,33,137,52,118,33,137,52,28,33,137,52,178,32,137,52,58,32,137,52,180,31,137,52,30,31,137,52,122,30,
137,52,200,29,137,52,7,29,137,52,55,28,137,52,88,27,137,52,107,26,137,52,111,25,137,52,100,24,137,52,75,23,137,52,35,22,137,52,237,20,137,52,168,19,137,52,84,18,137,52,242,16,137,52,129,15,137,52,1,14,137,52,115,12,137,52,214,10,137,52,42,9,137,52,112,7,137,52,168,5,137,52,209,3,137,52,235,1,137,52,246,255,136,52,243,253,136,52,226,251,136,52,194,249,136,52,147,247,136,52,86,245,136,52,10,243,136,52,175,240,136,52,70,238,136,52,207,235,136,52,73,233,136,52,180,230,136,52,17,228,136,52,95,225,136,
52,159,222,136,52,208,219,136,52,243,216,136,52,7,214,136,52,13,211,136,52,4,208,136,52,237,204,136,52,199,201,136,52,146,198,136,52,79,195,136,52,254,191,136,52,158,188,136,52,48,185,136,52,179,181,136,52,40,178,136,52,142,174,136,52,230,170,136,52,47,167,136,52,106,163,136,52,151,159,136,52,181,155,136,52,196,151,136,52,197,147,136,52,184,143,136,52,156,139,136,52,114,135,136,52,58,131,136,52,243,126,136,52,157,122,136,52,57,118,136,52,199,113,136,52,71,109,136,52,184,104,136,52,26,100,136,52,111,
95,136,52,180,90,136,52,236,85,136,52,21,81,136,52,48,76,136,52,60,71,136,52,58,66,136,52,42,61,136,52,12,56,136,52,223,50,136,52,163,45,136,52,90,40,136,52,2,35,136,52,156,29,136,52,39,24,136,52,164,18,136,52,19,13,136,52,116,7,136,52,198,1,136,52,10,252,135,52,64,246,135,52,103,240,135,52,128,234,135,52,139,228,135,52,136,222,135,52,118,216,135,52,86,210,135,52,40,204,135,52,236,197,135,52,162,191,135,52,73,185,135,52,226,178,135,52,109,172,135,52,233,165,135,52,88,159,135,52,184,152,135,52,10,
146,135,52,78,139,135,52,132,132,135,52,171,125,135,52,196,118,135,52,208,111,135,52,205,104,135,52,187,97,135,52,156,90,135,52,111,83,135,52,51,76,135,52,234,68,135,52,146,61,135,52,44,54,135,52,184,46,135,52,54,39,135,52,166,31,135,52,7,24,135,52,91,16,135,52,161,8,135,52,216,0,135,52,1,249,134,52,29,241,134,52,42,233,134,52,41,225,134,52,27,217,134,52,254,208,134,52,211,200,134,52,154,192,134,52,83,184,134,52,254,175,134,52,155,167,134,52,43,159,134,52,172,150,134,52,31,142,134,52,132,133,134,
52,219,124,134,52,37,116,134,52,96,107,134,52,141,98,134,52,173,89,134,52,190,80,134,52,194,71,134,52,183,62,134,52,159,53,134,52,121,44,134,52,69,35,134,52,3,26,134,52,179,16,134,52,85,7,134,52,233,253,133,52,112,244,133,52,232,234,133,52,83,225,133,52,176,215,133,52,255,205,133,52,64,196,133,52,116,186,133,52,153,176,133,52,177,166,133,52,187,156,133,52,183,146,133,52,165,136,133,52,134,126,133,52,89,116,133,52,30,106,133,52,213,95,133,52,127,85,133,52,26,75,133,52,168,64,133,52,41,54,133,52,155,
43,133,52,0,33,133,52,87,22,133,52,160,11,133,52,220,0,133,52,10,246,132,52,42,235,132,52,61,224,132,52,66,213,132,52,57,202,132,52,35,191,132,52,255,179,132,52,205,168,132,52,142,157,132,52,65,146,132,52,231,134,132,52,127,123,132,52,9,112,132,52,134,100,132,52,245,88,132,52,86,77,132,52,170,65,132,52,241,53,132,52,41,42,132,52,85,30,132,52,114,18,132,52,131,6,132,52,133,250,131,52,122,238,131,52,98,226,131,52,60,214,131,52,9,202,131,52,200,189,131,52,122,177,131,52,30,165,131,52,181,152,131,52,
62,140,131,52,186,127,131,52,40,115,131,52,137,102,131,52,221,89,131,52,35,77,131,52,91,64,131,52,135,51,131,52,165,38,131,52,181,25,131,52,184,12,131,52,174,255,130,52,151,242,130,52,114,229,130,52,64,216,130,52,0,203,130,52,179,189,130,52,89,176,130,52,241,162,130,52,125,149,130,52,251,135,130,52,107,122,130,52,206,108,130,52,37,95,130,52,109,81,130,52,169,67,130,52,215,53,130,52,248,39,130,52,12,26,130,52,19,12,130,52,12,254,129,52,249,239,129,52,216,225,129,52,170,211,129,52,110,197,129,52,38,
183,129,52,208,168,129,52,109,154,129,52,254,139,129,52,129,125,129,52,246,110,129,52,95,96,129,52,187,81,129,52,9,67,129,52,75,52,129,52,127,37,129,52,167,22,129,52,193,7,129,52,206,248,128,52,206,233,128,52,193,218,128,52,168,203,128,52,129,188,128,52,77,173,128,52,12,158,128,52,190,142,128,52,99,127,128,52,251,111,128,52,135,96,128,52,5,81,128,52,118,65,128,52,219,49,128,52,50,34,128,52,125,18,128,52,186,2,128,52,215,229,127,52,30,198,127,52,76,166,127,52,97,134,127,52,91,102,127,52,60,70,127,
52,4,38,127,52,177,5,127,52,69,229,126,52,192,196,126,52,32,164,126,52,103,131,126,52,149,98,126,52,169,65,126,52,164,32,126,52,133,255,125,52,76,222,125,52,250,188,125,52,143,155,125,52,10,122,125,52,108,88,125,52,180,54,125,52,227,20,125,52,249,242,124,52,245,208,124,52,216,174,124,52,162,140,124,52,83,106,124,52,234,71,124,52,104,37,124,52,205,2,124,52,24,224,123,52,75,189,123,52,100,154,123,52,100,119,123,52,75,84,123,52,25,49,123,52,206,13,123,52,106,234,122,52,237,198,122,52,86,163,122,52,167,
127,122,52,223,91,122,52,254,55,122,52,4,20,122,52,241,239,121,52,197,203,121,52,128,167,121,52,34,131,121,52,172,94,121,52,28,58,121,52,116,21,121,52,180,240,120,52,218,203,120,52,232,166,120,52,221,129,120,52,185,92,120,52,124,55,120,52,39,18,120,52,186,236,119,52,51,199,119,52,149,161,119,52,221,123,119,52,13,86,119,52,37,48,119,52,36,10,119,52,10,228,118,52,216,189,118,52,142,151,118,52,43,113,118,52,176,74,118,52,29,36,118,52,113,253,117,52,172,214,117,52,208,175,117,52,219,136,117,52,206,97,
117,52,169,58,117,52,107,19,117,52,21,236,116,52,167,196,116,52,33,157,116,52,131,117,116,52,205,77,116,52,254,37,116,52,24,254,115,52,25,214,115,52,2,174,115,52,212,133,115,52,141,93,115,52,46,53,115,52,184,12,115,52,41,228,114,52,131,187,114,52,197,146,114,52,239,105,114,52,1,65,114,52,251,23,114,52,222,238,113,52,168,197,113,52,91,156,113,52,246,114,113,52,122,73,113,52,230,31,113,52,58,246,112,52,119,204,112,52,156,162,112,52,169,120,112,52,159,78,112,52,125,36,112,52,68,250,111,52,243,207,111,
52,139,165,111,52,11,123,111,52,116,80,111,52,197,37,111,52,0,251,110,52,34,208,110,52,46,165,110,52,34,122,110,52,254,78,110,52,196,35,110,52,114,248,109,52,9,205,109,52,137,161,109,52,242,117,109,52,67,74,109,52,126,30,109,52,161,242,108,52,173,198,108,52,162,154,108,52,128,110,108,52,71,66,108,52,247,21,108,52,144,233,107,52,18,189,107,52,126,144,107,52,210,99,107,52,15,55,107,52,54,10,107,52,70,221,106,52,63,176,106,52,33,131,106,52,236,85,106,52,161,40,106,52,63,251,105,52,198,205,105,52,55,
160,105,52,145,114,105,52,212,68,105,52,1,23,105,52,23,233,104,52,23,187,104,52,0,141,104,52,210,94,104,52,142,48,104,52,52,2,104,52,195,211,103,52,60,165,103,52,159,118,103,52,235,71,103,52,33,25,103,52,64,234,102,52,74,187,102,52,61,140,102,52,25,93,102,52,224,45,102,52,144,254,101,52,42,207,101,52,174,159,101,52,28,112,101,52,116,64,101,52,182,16,101,52,226,224,100,52,248,176,100,52,247,128,100,52,225,80,100,52,181,32,100,52,115,240,99,52,27,192,99,52,174,143,99,52,42,95,99,52,145,46,99,52,225,
253,98,52,28,205,98,52,66,156,98,52,81,107,98,52,75,58,98,52,47,9,98,52,254,215,97,52,183,166,97,52,90,117,97,52,232,67,97,52,96,18,97,52,195,224,96,52,17,175,96,52,72,125,96,52,107,75,96,52,120,25,96,52,111,231,95,52,82,181,95,52,31,131,95,52,214,80,95,52,121,30,95,52,6,236,94,52,125,185,94,52,224,134,94,52,46,84,94,52,102,33,94,52,137,238,93,52,151,187,93,52,144,136,93,52,116,85,93,52,67,34,93,52,253,238,92,52,162,187,92,52,50,136,92,52,173,84,92,52,19,33,92,52,100,237,91,52,161,185,91,52,200,133,
91,52,219,81,91,52,217,29,91,52,195,233,90,52,151,181,90,52,87,129,90,52,3,77,90,52,153,24,90,52,27,228,89,52,137,175,89,52,226,122,89,52,38,70,89,52,86,17,89,52,113,220,88,52,120,167,88,52,107,114,88,52,73,61,88,52,18,8,88,52,200,210,87,52,105,157,87,52,246,103,87,52,110,50,87,52,210,252,86,52,34,199,86,52,94,145,86,52,134,91,86,52,154,37,86,52,153,239,85,52,132,185,85,52,92,131,85,52,31,77,85,52,206,22,85,52,106,224,84,52,241,169,84,52,101,115,84,52,196,60,84,52,16,6,84,52,72,207,83,52,108,152,
83,52,124,97,83,52,121,42,83,52,98,243,82,52,55,188,82,52,248,132,82,52,166,77,82,52,64,22,82,52,199,222,81,52,58,167,81,52,154,111,81,52,230,55,81,52,30,0,81,52,67,200,80,52,85,144,80,52,83,88,80,52,62,32,80,52,21,232,79,52,218,175,79,52,139,119,79,52,40,63,79,52,179,6,79,52,42,206,78,52,142,149,78,52,223,92,78,52,29,36,78,52,71,235,77,52,95,178,77,52,99,121,77,52,85,64,77,52,52,7,77,52,255,205,76,52,184,148,76,52,94,91,76,52,241,33,76,52,113,232,75,52,222,174,75,52,56,117,75,52,128,59,75,52,181,
1,75,52,215,199,74,52,231,141,74,52,228,83,74,52,206,25,74,52,166,223,73,52,107,165,73,52,30,107,73,52,190,48,73,52,76,246,72,52,199,187,72,52,48,129,72,52,134,70,72,52,202,11,72,52,252,208,71,52,27,150,71,52,40,91,71,52,35,32,71,52,12,229,70,52,226,169,70,52,167,110,70,52,89,51,70,52,249,247,69,52,135,188,69,52,3,129,69,52,109,69,69,52,197,9,69,52,11,206,68,52,63,146,68,52,97,86,68,52,113,26,68,52,111,222,67,52,92,162,67,52,55,102,67,52,0,42,67,52,183,237,66,52,93,177,66,52,241,116,66,52,115,56,
66,52,227,251,65,52,66,191,65,52,144,130,65,52,204,69,65,52,246,8,65,52,15,204,64,52,23,143,64,52,13,82,64,52,242,20,64,52,197,215,63,52,135,154,63,52,56,93,63,52,216,31,63,52,102,226,62,52,227,164,62,52,79,103,62,52,170,41,62,52,243,235,61,52,44,174,61,52,83,112,61,52,106,50,61,52,111,244,60,52,100,182,60,52,71,120,60,52,26,58,60,52,220,251,59,52,141,189,59,52,45,127,59,52,188,64,59,52,59,2,59,52,168,195,58,52,5,133,58,52,82,70,58,52,142,7,58,52,185,200,57,52,211,137,57,52,221,74,57,52,215,11,57,
52,192,204,56,52,152,141,56,52,96,78,56,52,24,15,56,52,191,207,55,52,86,144,55,52,221,80,55,52,83,17,55,52,185,209,54,52,15,146,54,52,85,82,54,52,138,18,54,52,176,210,53,52,197,146,53,52,202,82,53,52,191,18,53,52,165,210,52,52,122,146,52,52,63,82,52,52,244,17,52,52,153,209,51,52,47,145,51,52,181,80,51,52,43,16,51,52,145,207,50,52,231,142,50,52,46,78,50,52,101,13,50,52,140,204,49,52,164,139,49,52,172,74,49,52,164,9,49,52,141,200,48,52,103,135,48,52,49,70,48,52,235,4,48,52,151,195,47,52,50,130,47,52,
191,64,47,52,60,255,46,52,170,189,46,52,9,124,46,52,88,58,46,52,152,248,45,52,201,182,45,52,235,116,45,52,254,50,45,52,2,241,44,52,246,174,44,52,220,108,44,52,179,42,44,52,123,232,43,52,52,166,43,52,222,99,43,52,121,33,43,52,5,223,42,52,131,156,42,52,241,89,42,52,81,23,42,52,163,212,41,52,229,145,41,52,25,79,41,52,63,12,41,52,86,201,40,52,94,134,40,52,88,67,40,52,67,0,40,52,32,189,39,52,238,121,39,52,175,54,39,52,96,243,38,52,4,176,38,52,153,108,38,52,32,41,38,52,152,229,37,52,3,162,37,52,95,94,37,
52,173,26,37,52,237,214,36,52,31,147,36,52,67,79,36,52,89,11,36,52,96,199,35,52,90,131,35,52,70,63,35,52,37,251,34,52,245,182,34,52,183,114,34,52,108,46,34,52,19,234,33,52,172,165,33,52,56,97,33,52,181,28,33,52,38,216,32,52,136,147,32,52,221,78,32,52,37,10,32,52,95,197,31,52,139,128,31,52,170,59,31,52,188,246,30,52,192,177,30,52,183,108,30,52,161,39,30,52,125,226,29,52,76,157,29,52,14,88,29,52,195,18,29,52,106,205,28,52,4,136,28,52,146,66,28,52,18,253,27,52,133,183,27,52,235,113,27,52,69,44,27,52,
145,230,26,52,208,160,26,52,3,91,26,52,40,21,26,52,65,207,25,52,77,137,25,52,77,67,25,52,63,253,24,52,37,183,24,52,255,112,24,52,203,42,24,52,140,228,23,52,63,158,23,52,230,87,23,52,129,17,23,52,15,203,22,52,145,132,22,52,6,62,22,52,111,247,21,52,204,176,21,52,28,106,21,52,96,35,21,52,152,220,20,52,196,149,20,52,227,78,20,52,246,7,20,52,254,192,19,52,249,121,19,52,232,50,19,52,203,235,18,52,162,164,18,52,110,93,18,52,45,22,18,52,225,206,17,52,136,135,17,52,36,64,17,52,180,248,16,52,56,177,16,52,177,
105,16,52,30,34,16,52,127,218,15,52,213,146,15,52,31,75,15,52,94,3,15,52,145,187,14,52,184,115,14,52,212,43,14,52,229,227,13,52,234,155,13,52,228,83,13,52,211,11,13,52,182,195,12,52,142,123,12,52,91,51,12,52,29,235,11,52,211,162,11,52,127,90,11,52,31,18,11,52,180,201,10,52,62,129,10,52,190,56,10,52,50,240,9,52,155,167,9,52,250,94,9,52,77,22,9,52,150,205,8,52,212,132,8,52,7,60,8,52,47,243,7,52,77,170,7,52,96,97,7,52,105,24,7,52,103,207,6,52,90,134,6,52,67,61,6,52,33,244,5,52,245,170,5,52,190,97,5,
52,125,24,5,52,50,207,4,52,220,133,4,52,124,60,4,52,17,243,3,52,157,169,3,52,30,96,3,52,149,22,3,52,2,205,2,52,101,131,2,52,190,57,2,52,12,240,1,52,81,166,1,52,140,92,1,52,188,18,1,52,227,200,0,52,0,127,0,52,19,53,0,52,58,214,255,51,57,66,255,51,36,174,254,51,253,25,254,51,193,133,253,51,115,241,252,51,17,93,252,51,157,200,251,51,21,52,251,51,122,159,250,51,204,10,250,51,11,118,249,51,56,225,248,51,81,76,248,51,88,183,247,51,77,34,247,51,47,141,246,51,254,247,245,51,187,98,245,51,101,205,244,51,254,
55,244,51,132,162,243,51,247,12,243,51,89,119,242,51,169,225,241,51,231,75,241,51,19,182,240,51,45,32,240,51,53,138,239,51,44,244,238,51,17,94,238,51,228,199,237,51,166,49,237,51,87,155,236,51,246,4,236,51,132,110,235,51,1,216,234,51,108,65,234,51,198,170,233,51,16,20,233,51,72,125,232,51,112,230,231,51,135,79,231,51,141,184,230,51,130,33,230,51,103,138,229,51,59,243,228,51,254,91,228,51,177,196,227,51,84,45,227,51,231,149,226,51,105,254,225,51,219,102,225,51,61,207,224,51,144,55,224,51,210,159,223,
51,4,8,223,51,38,112,222,51,57,216,221,51,60,64,221,51,47,168,220,51,19,16,220,51,231,119,219,51,172,223,218,51,98,71,218,51,8,175,217,51,159,22,217,51,39,126,216,51,160,229,215,51,10,77,215,51,101,180,214,51,177,27,214,51,238,130,213,51,28,234,212,51,60,81,212,51,77,184,211,51,80,31,211,51,68,134,210,51,42,237,209,51,1,84,209,51,202,186,208,51,133,33,208,51,50,136,207,51,209,238,206,51,97,85,206,51,228,187,205,51,89,34,205,51,192,136,204,51,25,239,203,51,101,85,203,51,163,187,202,51,212,33,202,51,
247,135,201,51,12,238,200,51,21,84,200,51,16,186,199,51,254,31,199,51,223,133,198,51,178,235,197,51,121,81,197,51,51,183,196,51,224,28,196,51,128,130,195,51,19,232,194,51,154,77,194,51,20,179,193,51,130,24,193,51,227,125,192,51,56,227,191,51,128,72,191,51,188,173,190,51,236,18,190,51,16,120,189,51,40,221,188,51,52,66,188,51,52,167,187,51,40,12,187,51,17,113,186,51,237,213,185,51,190,58,185,51,132,159,184,51,62,4,184,51,236,104,183,51,143,205,182,51,39,50,182,51,180,150,181,51,53,251,180,51,171,95,
180,51,23,196,179,51,119,40,179,51,204,140,178,51,23,241,177,51,87,85,177,51,140,185,176,51,182,29,176,51,214,129,175,51,236,229,174,51,247,73,174,51,247,173,173,51,238,17,173,51,218,117,172,51,188,217,171,51,147,61,171,51,97,161,170,51,37,5,170,51,223,104,169,51,143,204,168,51,54,48,168,51,211,147,167,51,102,247,166,51,239,90,166,51,112,190,165,51,230,33,165,51,84,133,164,51,184,232,163,51,19,76,163,51,100,175,162,51,173,18,162,51,237,117,161,51,35,217,160,51,81,60,160,51,118,159,159,51,147,2,159,
51,166,101,158,51,177,200,157,51,180,43,157,51,174,142,156,51,160,241,155,51,137,84,155,51,106,183,154,51,67,26,154,51,20,125,153,51,220,223,152,51,157,66,152,51,86,165,151,51,7,8,151,51,176,106,150,51,81,205,149,51,235,47,149,51,125,146,148,51,8,245,147,51,139,87,147,51,7,186,146,51,124,28,146,51,233,126,145,51,79,225,144,51,174,67,144,51,6,166,143,51,87,8,143,51,161,106,142,51,228,204,141,51,33,47,141,51,87,145,140,51,134,243,139,51,174,85,139,51,208,183,138,51,236,25,138,51,1,124,137,51,16,222,
136,51,25,64,136,51,28,162,135,51,24,4,135,51,15,102,134,51,255,199,133,51,234,41,133,51,206,139,132,51,173,237,131,51,135,79,131,51,90,177,130,51,41,19,130,51,241,116,129,51,180,214,128,51,114,56,128,51,86,52,127,51,189,247,125,51,25,187,124,51,107,126,123,51,180,65,122,51,242,4,121,51,39,200,119,51,82,139,118,51,115,78,117,51,139,17,116,51,154,212,114,51,160,151,113,51,157,90,112,51,145,29,111,51,125,224,109,51,96,163,108,51,58,102,107,51,12,41,106,51,214,235,104,51,153,174,103,51,83,113,102,51,
5,52,101,51,176,246,99,51,83,185,98,51,240,123,97,51,132,62,96,51,18,1,95,51,153,195,93,51,25,134,92,51,147,72,91,51,6,11,90,51,114,205,88,51,216,143,87,51,57,82,86,51,147,20,85,51,231,214,83,51,54,153,82,51,127,91,81,51,194,29,80,51,1,224,78,51,58,162,77,51,110,100,76,51,157,38,75,51,200,232,73,51,237,170,72,51,15,109,71,51,44,47,70,51,68,241,68,51,89,179,67,51,105,117,66,51,118,55,65,51,127,249,63,51,133,187,62,51,135,125,61,51,134,63,60,51,129,1,59,51,122,195,57,51,112,133,56,51,99,71,55,51,83,
9,54,51,65,203,52,51,44,141,51,51,22,79,50,51,253,16,49,51,226,210,47,51,198,148,46,51,167,86,45,51,135,24,44,51,102,218,42,51,68,156,41,51,32,94,40,51,251,31,39,51,214,225,37,51,176,163,36,51,137,101,35,51,97,39,34,51,57,233,32,51,18,171,31,51,234,108,30,51,194,46,29,51,154,240,27,51,114,178,26,51,75,116,25,51,37,54,24,51,255,247,22,51,218,185,21,51,182,123,20,51,148,61,19,51,114,255,17,51,82,193,16,51,52,131,15,51,23,69,14,51,252,6,13,51,226,200,11,51,203,138,10,51,182,76,9,51,164,14,8,51,147,208,
6,51,134,146,5,51,123,84,4,51,115,22,3,51,110,216,1,51,108,154,0,51],"i8",4,y.a+1341440);
Q([219,184,254,50,228,60,252,50,245,192,249,50,12,69,247,50,44,201,244,50,83,77,242,50,130,209,239,50,186,85,237,50,250,217,234,50,67,94,232,50,150,226,229,50,241,102,227,50,87,235,224,50,198,111,222,50,64,244,219,50,196,120,217,50,83,253,214,50,236,129,212,50,146,6,210,50,66,139,207,50,255,15,205,50,199,148,202,50,156,25,200,50,126,158,197,50,108,35,195,50,103,168,192,50,112,45,190,50,135,178,187,50,171,55,185,50,222,188,182,50,31,66,180,50,110,199,177,50,205,76,175,50,59,210,172,50,184,87,170,50,
70,221,167,50,227,98,165,50,144,232,162,50,79,110,160,50,29,244,157,50,253,121,155,50,239,255,152,50,242,133,150,50,6,12,148,50,45,146,145,50,102,24,143,50,178,158,140,50,17,37,138,50,131,171,135,50,9,50,133,50,162,184,130,50,79,63,128,50,32,140,123,50,204,153,118,50,161,167,113,50,160,181,108,50,202,195,103,50,31,210,98,50,159,224,93,50,75,239,88,50,36,254,83,50,42,13,79,50,94,28,74,50,192,43,69,50,81,59,64,50,17,75,59,50,1,91,54,50,33,107,49,50,113,123,44,50,244,139,39,50,168,156,34,50,142,173,
29,50,167,190,24,50,244,207,19,50,116,225,14,50,41,243,9,50,19,5,5,50,50,23,0,50,15,83,246,49,39,120,236,49,173,157,226,49,162,195,216,49,7,234,206,49,221,16,197,49,37,56,187,49,225,95,177,49,16,136,167,49,182,176,157,49,209,217,147,49,100,3,138,49,111,45,128,49,232,175,108,49,230,5,89,49,219,92,69,49,201,180,49,49,179,13,30,49,153,103,10,49,254,132,237,48,205,60,198,48,161,246,158,48,2,101,111,48,223,224,32,48,197,193,164,47,4,69,121,45,8,37,149,175,221,5,25,176,240,116,103,176,218,239,154,176,16,
35,194,176,22,84,233,176,116,65,8,177,194,215,27,177,241,108,47,177,0,1,67,177,237,147,86,177,182,37,106,177,89,182,125,177,234,162,136,177,18,106,146,177,164,48,156,177,159,246,165,177,1,188,175,177,203,128,185,177,250,68,195,177,142,8,205,177,134,203,214,177,224,141,224,177,156,79,234,177,185,16,244,177,53,209,253,177,136,200,3,178,37,168,8,178,111,135,13,178,104,102,18,178,14,69,23,178,96,35,28,178,95,1,33,178,10,223,37,178,96,188,42,178,96,153,47,178,11,118,52,178,96,82,57,178,94,46,62,178,5,
10,67,178,84,229,71,178,75,192,76,178,233,154,81,178,46,117,86,178,25,79,91,178,169,40,96,178,223,1,101,178,186,218,105,178,57,179,110,178,92,139,115,178,34,99,120,178,138,58,125,178,203,8,129,178,33,116,131,178,72,223,133,178,63,74,136,178,6,181,138,178,158,31,141,178,4,138,143,178,59,244,145,178,64,94,148,178,20,200,150,178,183,49,153,178,40,155,155,178,103,4,158,178,117,109,160,178,79,214,162,178,247,62,165,178,109,167,167,178,175,15,170,178,190,119,172,178,153,223,174,178,64,71,177,178,179,174,
179,178,242,21,182,178,252,124,184,178,210,227,186,178,114,74,189,178,221,176,191,178,18,23,194,178,17,125,196,178,219,226,198,178,110,72,201,178,202,173,203,178,240,18,206,178,222,119,208,178,149,220,210,178,21,65,213,178,93,165,215,178,108,9,218,178,68,109,220,178,227,208,222,178,73,52,225,178,118,151,227,178,106,250,229,178,36,93,232,178,164,191,234,178,235,33,237,178,247,131,239,178,201,229,241,178,95,71,244,178,187,168,246,178,220,9,249,178,193,106,251,178,107,203,253,178,236,21,0,179,5,70,1,
179,255,117,2,179,219,165,3,179,153,213,4,179,56,5,6,179,184,52,7,179,26,100,8,179,92,147,9,179,128,194,10,179,132,241,11,179,105,32,13,179,46,79,14,179,212,125,15,179,91,172,16,179,193,218,17,179,8,9,19,179,46,55,20,179,53,101,21,179,27,147,22,179,224,192,23,179,134,238,24,179,10,28,26,179,110,73,27,179,177,118,28,179,211,163,29,179,212,208,30,179,179,253,31,179,113,42,33,179,14,87,34,179,137,131,35,179,227,175,36,179,26,220,37,179,48,8,39,179,35,52,40,179,245,95,41,179,164,139,42,179,48,183,43,
179,155,226,44,179,226,13,46,179,7,57,47,179,8,100,48,179,231,142,49,179,163,185,50,179,59,228,51,179,176,14,53,179,2,57,54,179,47,99,55,179,58,141,56,179,32,183,57,179,226,224,58,179,129,10,60,179,251,51,61,179,80,93,62,179,130,134,63,179,143,175,64,179,119,216,65,179,58,1,67,179,217,41,68,179,82,82,69,179,166,122,70,179,213,162,71,179,223,202,72,179,195,242,73,179,130,26,75,179,27,66,76,179,142,105,77,179,219,144,78,179,2,184,79,179,3,223,80,179,221,5,82,179,146,44,83,179,31,83,84,179,134,121,85,
179,199,159,86,179,224,197,87,179,210,235,88,179,158,17,90,179,66,55,91,179,190,92,92,179,20,130,93,179,66,167,94,179,72,204,95,179,38,241,96,179,220,21,98,179,107,58,99,179,209,94,100,179,15,131,101,179,36,167,102,179,17,203,103,179,214,238,104,179,114,18,106,179,229,53,107,179,47,89,108,179,80,124,109,179,72,159,110,179,22,194,111,179,187,228,112,179,55,7,114,179,137,41,115,179,177,75,116,179,176,109,117,179,133,143,118,179,47,177,119,179,175,210,120,179,5,244,121,179,49,21,123,179,50,54,124,179,
8,87,125,179,180,119,126,179,53,152,127,179,69,92,128,179,91,236,128,179,91,124,129,179,69,12,130,179,25,156,130,179,216,43,131,179,129,187,131,179,20,75,132,179,145,218,132,179,248,105,133,179,73,249,133,179,132,136,134,179,169,23,135,179,183,166,135,179,176,53,136,179,146,196,136,179,93,83,137,179,18,226,137,179,177,112,138,179,57,255,138,179,171,141,139,179,6,28,140,179,74,170,140,179,119,56,141,179,142,198,141,179,142,84,142,179,119,226,142,179,73,112,143,179,3,254,143,179,167,139,144,179,52,
25,145,179,169,166,145,179,7,52,146,179,78,193,146,179,126,78,147,179,150,219,147,179,150,104,148,179,127,245,148,179,81,130,149,179,11,15,150,179,173,155,150,179,55,40,151,179,170,180,151,179,5,65,152,179,72,205,152,179,115,89,153,179,133,229,153,179,128,113,154,179,99,253,154,179,46,137,155,179,224,20,156,179,122,160,156,179,252,43,157,179,101,183,157,179,182,66,158,179,238,205,158,179,14,89,159,179,22,228,159,179,4,111,160,179,218,249,160,179,151,132,161,179,60,15,162,179,199,153,162,179,58,36,
163,179,147,174,163,179,212,56,164,179,251,194,164,179,10,77,165,179,255,214,165,179,219,96,166,179,157,234,166,179,71,116,167,179,215,253,167,179,77,135,168,179,170,16,169,179,237,153,169,179,23,35,170,179,39,172,170,179,30,53,171,179,251,189,171,179,190,70,172,179,103,207,172,179,246,87,173,179,107,224,173,179,198,104,174,179,7,241,174,179,46,121,175,179,59,1,176,179,45,137,176,179,6,17,177,179,196,152,177,179,103,32,178,179,240,167,178,179,95,47,179,179,179,182,179,179,237,61,180,179,12,197,180,
179,16,76,181,179,249,210,181,179,200,89,182,179,124,224,182,179,21,103,183,179,147,237,183,179,246,115,184,179,62,250,184,179,107,128,185,179,125,6,186,179,115,140,186,179,79,18,187,179,15,152,187,179,179,29,188,179,61,163,188,179,170,40,189,179,253,173,189,179,52,51,190,179,79,184,190,179,78,61,191,179,50,194,191,179,250,70,192,179,167,203,192,179,55,80,193,179,172,212,193,179,4,89,194,179,65,221,194,179,97,97,195,179,102,229,195,179,78,105,196,179,26,237,196,179,202,112,197,179,94,244,197,179,
213,119,198,179,48,251,198,179,110,126,199,179,144,1,200,179,150,132,200,179,126,7,201,179,75,138,201,179,250,12,202,179,141,143,202,179,3,18,203,179,92,148,203,179,152,22,204,179,184,152,204,179,186,26,205,179,159,156,205,179,103,30,206,179,19,160,206,179,161,33,207,179,17,163,207,179,101,36,208,179,155,165,208,179,180,38,209,179,175,167,209,179,141,40,210,179,77,169,210,179,240,41,211,179,117,170,211,179,221,42,212,179,39,171,212,179,83,43,213,179,97,171,213,179,82,43,214,179,36,171,214,179,217,
42,215,179,112,170,215,179,232,41,216,179,67,169,216,179,127,40,217,179,158,167,217,179,158,38,218,179,128,165,218,179,67,36,219,179,232,162,219,179,111,33,220,179,215,159,220,179,33,30,221,179,76,156,221,179,89,26,222,179,71,152,222,179,22,22,223,179,199,147,223,179,88,17,224,179,203,142,224,179,31,12,225,179,84,137,225,179,107,6,226,179,98,131,226,179,58,0,227,179,243,124,227,179,141,249,227,179,8,118,228,179,99,242,228,179,159,110,229,179,188,234,229,179,185,102,230,179,152,226,230,179,86,94,231,
179,245,217,231,179,117,85,232,179,213,208,232,179,21,76,233,179,53,199,233,179,54,66,234,179,23,189,234,179,216,55,235,179,122,178,235,179,251,44,236,179,93,167,236,179,158,33,237,179,191,155,237,179,193,21,238,179,162,143,238,179,99,9,239,179,4,131,239,179,132,252,239,179,228,117,240,179,36,239,240,179,67,104,241,179,66,225,241,179,33,90,242,179,223,210,242,179,124,75,243,179,249,195,243,179,85,60,244,179,144,180,244,179,171,44,245,179,164,164,245,179,125,28,246,179,53,148,246,179,204,11,247,179,
67,131,247,179,152,250,247,179,204,113,248,179,223,232,248,179,209,95,249,179,161,214,249,179,81,77,250,179,223,195,250,179,75,58,251,179,151,176,251,179,193,38,252,179,202,156,252,179,177,18,253,179,118,136,253,179,26,254,253,179,157,115,254,179,253,232,254,179,60,94,255,179,90,211,255,179,43,36,0,180,151,94,0,180,243,152,0,180,62,211,0,180,120,13,1,180,161,71,1,180,185,129,1,180,192,187,1,180,182,245,1,180,155,47,2,180,110,105,2,180,49,163,2,180,226,220,2,180,131,22,3,180,18,80,3,180,144,137,3,
180,252,194,3,180,88,252,3,180,162,53,4,180,219,110,4,180,2,168,4,180,25,225,4,180,29,26,5,180,17,83,5,180,243,139,5,180,196,196,5,180,131,253,5,180,49,54,6,180,205,110,6,180,88,167,6,180,210,223,6,180,57,24,7,180,144,80,7,180,212,136,7,180,8,193,7,180,41,249,7,180,57,49,8,180,55,105,8,180,36,161,8,180,255,216,8,180,200,16,9,180,128,72,9,180,37,128,9,180,185,183,9,180,60,239,9,180,172,38,10,180,11,94,10,180,87,149,10,180,146,204,10,180,187,3,11,180,210,58,11,180,215,113,11,180,203,168,11,180,172,
223,11,180,123,22,12,180,56,77,12,180,228,131,12,180,125,186,12,180,4,241,12,180,121,39,13,180,220,93,13,180,45,148,13,180,108,202,13,180,152,0,14,180,179,54,14,180,187,108,14,180,177,162,14,180,149,216,14,180,103,14,15,180,38,68,15,180,211,121,15,180,110,175,15,180,246,228,15,180,108,26,16,180,208,79,16,180,33,133,16,180,96,186,16,180,141,239,16,180,167,36,17,180,175,89,17,180,164,142,17,180,134,195,17,180,87,248,17,180,20,45,18,180,191,97,18,180,88,150,18,180,222,202,18,180,81,255,18,180,178,51,
19,180,0,104,19,180,60,156,19,180,101,208,19,180,123,4,20,180,126,56,20,180,111,108,20,180,77,160,20,180,24,212,20,180,209,7,21,180,119,59,21,180,9,111,21,180,137,162,21,180,247,213,21,180,81,9,22,180,152,60,22,180,205,111,22,180,239,162,22,180,253,213,22,180,249,8,23,180,226,59,23,180,184,110,23,180,123,161,23,180,42,212,23,180,199,6,24,180,81,57,24,180,199,107,24,180,43,158,24,180,123,208,24,180,185,2,25,180,227,52,25,180,250,102,25,180,254,152,25,180,238,202,25,180,204,252,25,180,150,46,26,180,
77,96,26,180,241,145,26,180,129,195,26,180,254,244,26,180,104,38,27,180,191,87,27,180,2,137,27,180,50,186,27,180,78,235,27,180,87,28,28,180,77,77,28,180,47,126,28,180,254,174,28,180,185,223,28,180,97,16,29,180,245,64,29,180,118,113,29,180,227,161,29,180,61,210,29,180,131,2,30,180,182,50,30,180,213,98,30,180,225,146,30,180,216,194,30,180,189,242,30,180,141,34,31,180,74,82,31,180,243,129,31,180,137,177,31,180,11,225,31,180,121,16,32,180,211,63,32,180,26,111,32,180,77,158,32,180,108,205,32,180,119,252,
32,180,110,43,33,180,82,90,33,180,33,137,33,180,221,183,33,180,133,230,33,180,25,21,34,180,153,67,34,180,5,114,34,180,94,160,34,180,162,206,34,180,210,252,34,180,238,42,35,180,247,88,35,180,235,134,35,180,203,180,35,180,151,226,35,180,79,16,36,180,243,61,36,180,131,107,36,180,255,152,36,180,103,198,36,180,186,243,36,180,250,32,37,180,37,78,37,180,60,123,37,180,63,168,37,180,45,213,37,180,8,2,38,180,206,46,38,180,128,91,38,180,29,136,38,180,167,180,38,180,28,225,38,180,124,13,39,180,201,57,39,180,
1,102,39,180,36,146,39,180,52,190,39,180,46,234,39,180,21,22,40,180,231,65,40,180,165,109,40,180,78,153,40,180,227,196,40,180,99,240,40,180,207,27,41,180,38,71,41,180,105,114,41,180,151,157,41,180,177,200,41,180,182,243,41,180,166,30,42,180,130,73,42,180,74,116,42,180,252,158,42,180,154,201,42,180,36,244,42,180,153,30,43,180,249,72,43,180,69,115,43,180,123,157,43,180,157,199,43,180,171,241,43,180,164,27,44,180,135,69,44,180,87,111,44,180,17,153,44,180,183,194,44,180,71,236,44,180,195,21,45,180,43,
63,45,180,125,104,45,180,187,145,45,180,227,186,45,180,247,227,45,180,246,12,46,180,224,53,46,180,181,94,46,180,117,135,46,180,32,176,46,180,182,216,46,180,56,1,47,180,164,41,47,180,251,81,47,180,62,122,47,180,107,162,47,180,131,202,47,180,134,242,47,180,117,26,48,180,78,66,48,180,18,106,48,180,193,145,48,180,91,185,48,180,223,224,48,180,79,8,49,180,169,47,49,180,239,86,49,180,31,126,49,180,58,165,49,180,64,204,49,180,48,243,49,180,12,26,50,180,210,64,50,180,131,103,50,180,31,142,50,180,165,180,50,
180,22,219,50,180,114,1,51,180,185,39,51,180,234,77,51,180,6,116,51,180,13,154,51,180,254,191,51,180,218,229,51,180,161,11,52,180,82,49,52,180,238,86,52,180,117,124,52,180,230,161,52,180,65,199,52,180,136,236,52,180,185,17,53,180,212,54,53,180,218,91,53,180,202,128,53,180,165,165,53,180,107,202,53,180,27,239,53,180,181,19,54,180,58,56,54,180,169,92,54,180,3,129,54,180,72,165,54,180,118,201,54,180,143,237,54,180,147,17,55,180,129,53,55,180,89,89,55,180,28,125,55,180,201,160,55,180,97,196,55,180,226,
231,55,180,79,11,56,180,165,46,56,180,230,81,56,180,17,117,56,180,38,152,56,180,38,187,56,180,16,222,56,180,228,0,57,180,163,35,57,180,75,70,57,180,222,104,57,180,92,139,57,180,195,173,57,180,21,208,57,180,80,242,57,180,118,20,58,180,135,54,58,180,129,88,58,180,101,122,58,180,52,156,58,180,237,189,58,180,144,223,58,180,29,1,59,180,148,34,59,180,245,67,59,180,65,101,59,180,118,134,59,180,150,167,59,180,159,200,59,180,147,233,59,180,113,10,60,180,56,43,60,180,234,75,60,180,134,108,60,180,12,141,60,
180,123,173,60,180,213,205,60,180,25,238,60,180,71,14,61,180,94,46,61,180,96,78,61,180,76,110,61,180,33,142,61,180,225,173,61,180,138,205,61,180,29,237,61,180,155,12,62,180,2,44,62,180,83,75,62,180,142,106,62,180,178,137,62,180,193,168,62,180,185,199,62,180,156,230,62,180,104,5,63,180,30,36,63,180,190,66,63,180,71,97,63,180,187,127,63,180,24,158,63,180,95,188,63,180,144,218,63,180,170,248,63,180,174,22,64,180,157,52,64,180,116,82,64,180,54,112,64,180,225,141,64,180,118,171,64,180,245,200,64,180,93,
230,64,180,176,3,65,180,236,32,65,180,17,62,65,180,32,91,65,180,25,120,65,180,252,148,65,180,200,177,65,180,126,206,65,180,29,235,65,180,167,7,66,180,25,36,66,180,118,64,66,180,188,92,66,180,235,120,66,180,5,149,66,180,7,177,66,180,244,204,66,180,202,232,66,180,137,4,67,180,50,32,67,180,197,59,67,180,65,87,67,180,167,114,67,180,246,141,67,180,47,169,67,180,82,196,67,180,94,223,67,180,83,250,67,180,50,21,68,180,250,47,68,180,172,74,68,180,72,101,68,180,204,127,68,180,59,154,68,180,147,180,68,180,212,
206,68,180,255,232,68,180,19,3,69,180,16,29,69,180,247,54,69,180,200,80,69,180,130,106,69,180,37,132,69,180,178,157,69,180,40,183,69,180,136,208,69,180,209,233,69,180,3,3,70,180,31,28,70,180,36,53,70,180,18,78,70,180,234,102,70,180,171,127,70,180,86,152,70,180,234,176,70,180,103,201,70,180,205,225,70,180,29,250,70,180,87,18,71,180,121,42,71,180,133,66,71,180,122,90,71,180,89,114,71,180,32,138,71,180,209,161,71,180,108,185,71,180,240,208,71,180,92,232,71,180,179,255,71,180,242,22,72,180,27,46,72,180,
45,69,72,180,40,92,72,180,13,115,72,180,218,137,72,180,145,160,72,180,50,183,72,180,187,205,72,180,46,228,72,180,138,250,72,180,207,16,73,180,253,38,73,180,21,61,73,180,22,83,73,180,0,105,73,180,211,126,73,180,143,148,73,180,53,170,73,180,195,191,73,180,59,213,73,180,157,234,73,180,231,255,73,180,26,21,74,180,55,42,74,180,61,63,74,180,43,84,74,180,3,105,74,180,197,125,74,180,111,146,74,180,3,167,74,180,127,187,74,180,229,207,74,180,52,228,74,180,108,248,74,180,141,12,75,180,151,32,75,180,139,52,75,
180,103,72,75,180,45,92,75,180,219,111,75,180,115,131,75,180,244,150,75,180,94,170,75,180,177,189,75,180,237,208,75,180,18,228,75,180,33,247,75,180,24,10,76,180,249,28,76,180,194,47,76,180,117,66,76,180,16,85,76,180,149,103,76,180,3,122,76,180,90,140,76,180,154,158,76,180,195,176,76,180,213,194,76,180,208,212,76,180,180,230,76,180,129,248,76,180,55,10,77,180,214,27,77,180,95,45,77,180,208,62,77,180,42,80,77,180,109,97,77,180,154,114,77,180,175,131,77,180,174,148,77,180,149,165,77,180,101,182,77,180,
31,199,77,180,193,215,77,180,77,232,77,180,193,248,77,180,31,9,78,180,101,25,78,180,148,41,78,180,173,57,78,180,174,73,78,180,153,89,78,180,108,105,78,180,41,121,78,180,206,136,78,180,93,152,78,180,212,167,78,180,52,183,78,180,126,198,78,180,176,213,78,180,203,228,78,180,208,243,78,180,189,2,79,180,147,17,79,180,82,32,79,180,251,46,79,180,140,61,79,180,6,76,79,180,105,90,79,180,181,104,79,180,234,118,79,180,8,133,79,180,15,147,79,180,255,160,79,180,216,174,79,180,154,188,79,180,69,202,79,180,217,
215,79,180,85,229,79,180,187,242,79,180,10,0,80,180,65,13,80,180,98,26,80,180,107,39,80,180,94,52,80,180,57,65,80,180,254,77,80,180,171,90,80,180,65,103,80,180,193,115,80,180,41,128,80,180,122,140,80,180,180,152,80,180,215,164,80,180,227,176,80,180,216,188,80,180,182,200,80,180,125,212,80,180,45,224,80,180,198,235,80,180,72,247,80,180,178,2,81,180,6,14,81,180,67,25,81,180,104,36,81,180,119,47,81,180,110,58,81,180,78,69,81,180,24,80,81,180,202,90,81,180,101,101,81,180,234,111,81,180,87,122,81,180,
173,132,81,180,236,142,81,180,20,153,81,180,37,163,81,180,31,173,81,180,2,183,81,180,206,192,81,180,131,202,81,180,33,212,81,180,167,221,81,180,23,231,81,180,112,240,81,180,178,249,81,180,220,2,82,180,240,11,82,180,236,20,82,180,210,29,82,180,160,38,82,180,88,47,82,180,248,55,82,180,130,64,82,180,244,72,82,180,80,81,82,180,148,89,82,180,193,97,82,180,216,105,82,180,215,113,82,180,191,121,82,180,145,129,82,180,75,137,82,180,238,144,82,180,123,152,82,180,240,159,82,180,78,167,82,180,149,174,82,180,
198,181,82,180,223,188,82,180,225,195,82,180,204,202,82,180,161,209,82,180,94,216,82,180,4,223,82,180,147,229,82,180,12,236,82,180,109,242,82,180,183,248,82,180,235,254,82,180,7,5,83,180,13,11,83,180,251,16,83,180,211,22,83,180,147,28,83,180,61,34,83,180,207,39,83,180,75,45,83,180,175,50,83,180,253,55,83,180,52,61,83,180,84,66,83,180,93,71,83,180,79,76,83,180,42,81,83,180,238,85,83,180,155,90,83,180,49,95,83,180,176,99,83,180,25,104,83,180,106,108,83,180,165,112,83,180,200,116,83,180,213,120,83,180,
203,124,83,180,169,128,83,180,113,132,83,180,34,136,83,180,189,139,83,180,64,143,83,180,172,146,83,180,2,150,83,180,64,153,83,180,104,156,83,180,121,159,83,180,115,162,83,180,86,165,83,180,34,168,83,180,216,170,83,180,118,173,83,180,254,175,83,180,111,178,83,180,201,180,83,180,12,183,83,180,56,185,83,180,78,187,83,180,76,189,83,180,52,191,83,180,5,193,83,180,191,194,83,180,99,196,83,180,239,197,83,180,101,199,83,180,196,200,83,180,12,202,83,180,61,203,83,180,88,204,83,180,92,205,83,180,73,206,83,
180,31,207,83,180,223,207,83,180,135,208,83,180,25,209,83,180,148,209,83,180,249,209,83,180,71,210,83,180,126,210,83,180,158,210,83,180,167,210,83,180,154,210,83,180,118,210,83,180,59,210,83,180,234,209,83,180,130,209,83,180,3,209,83,180,110,208,83,180,193,207,83,180,254,206,83,180,37,206,83,180,53,205,83,180,46,204,83,180,16,203,83,180,220,201,83,180,145,200,83,180,47,199,83,180,183,197,83,180,40,196,83,180,131,194,83,180,199,192,83,180,244,190,83,180,11,189,83,180,11,187,83,180,244,184,83,180,199,
182,83,180,132,180,83,180,41,178,83,180,184,175,83,180,49,173,83,180,147,170,83,180,222,167,83,180,19,165,83,180,49,162,83,180,57,159,83,180,42,156,83,180,5,153,83,180,201,149,83,180,118,146,83,180,14,143,83,180,142,139,83,180,248,135,83,180,76,132,83,180,137,128,83,180,175,124,83,180,192,120,83,180,185,116,83,180,156,112,83,180,105,108,83,180,31,104,83,180,191,99,83,180,73,95,83,180,187,90,83,180,24,86,83,180,94,81,83,180,142,76,83,180,167,71,83,180,170,66,83,180,150,61,83,180,109,56,83,180,44,51,
83,180,214,45,83,180,105,40,83,180,229,34,83,180,76,29,83,180,156,23,83,180,213,17,83,180,249,11,83,180,6,6,83,180,252,255,82,180,221,249,82,180,167,243,82,180,90,237,82,180,248,230,82,180,127,224,82,180,240,217,82,180,75,211,82,180,143,204,82,180,189,197,82,180,213,190,82,180,215,183,82,180,194,176,82,180,152,169,82,180,87,162,82,180,0,155,82,180,146,147,82,180,15,140,82,180,117,132,82,180,197,124,82,180,255,116,82,180,35,109,82,180,49,101,82,180,40,93,82,180,10,85,82,180,213,76,82,180,138,68,82,
180,41,60,82,180,178,51,82,180,37,43,82,180,130,34,82,180,201,25,82,180,250,16,82,180,20,8,82,180,25,255,81,180,7,246,81,180,224,236,81,180,163,227,81,180,79,218,81,180,230,208,81,180,102,199,81,180,209,189,81,180,37,180,81,180,100,170,81,180,140,160,81,180,159,150,81,180,156,140,81,180,131,130,81,180,84,120,81,180,15,110,81,180,180,99,81,180,67,89,81,180,188,78,81,180,32,68,81,180,109,57,81,180,165,46,81,180,199,35,81,180,211,24,81,180,201,13,81,180,169,2,81,180,116,247,80,180,40,236,80,180,199,
224,80,180,81,213,80,180,196,201,80,180,34,190,80,180,105,178,80,180,156,166,80,180,184,154,80,180,191,142,80,180,175,130,80,180,139,118,80,180,80,106,80,180,0,94,80,180,154,81,80,180,31,69,80,180,142,56,80,180,231,43,80,180,42,31,80,180,88,18,80,180,113,5,80,180,115,248,79,180,96,235,79,180,56,222,79,180,250,208,79,180,166,195,79,180,61,182,79,180,190,168,79,180,42,155,79,180,128,141,79,180,193,127,79,180,236,113,79,180,2,100,79,180,2,86,79,180,237,71,79,180,194,57,79,180,130,43,79,180,44,29,79,
180,193,14,79,180,65,0,79,180,171,241,78,180,255,226,78,180,63,212,78,180,105,197,78,180,125,182,78,180,124,167,78,180,102,152,78,180,59,137,78,180,250,121,78,180,164,106,78,180,57,91,78,180,184,75,78,180,34,60,78,180,119,44,78,180,182,28,78,180,224,12,78,180,245,252,77,180,245,236,77,180,224,220,77,180,181,204,77,180,117,188,77,180,32,172,77,180,182,155,77,180,55,139,77,180,162,122,77,180,249,105,77,180,58,89,77,180,102,72,77,180,125,55,77,180,127,38,77,180,108,21,77,180,68,4,77,180,7,243,76,180,
181,225,76,180,78,208,76,180,209,190,76,180,64,173,76,180,154,155,76,180,222,137,76,180,14,120,76,180,41,102,76,180,47,84,76,180,32,66,76,180,252,47,76,180,195,29,76,180,117,11,76,180,19,249,75,180,155,230,75,180,15,212,75,180,109,193,75,180,183,174,75,180,237,155,75,180,13,137,75,180,24,118,75,180,15,99,75,180,241,79,75,180,190,60,75,180,119,41,75,180,26,22,75,180,169,2,75,180,36,239,74,180,137,219,74,180,218,199,74,180,22,180,74,180,62,160,74,180,81,140,74,180,79,120,74,180,57,100,74,180,14,80,
74,180,206,59,74,180,122,39,74,180,17,19,74,180,148,254,73,180,2,234,73,180,92,213,73,180,161,192,73,180,210,171,73,180,238,150,73,180,246,129,73,180,233,108,73,180,200,87,73,180,146,66,73,180,72,45,73,180,234,23,73,180,119,2,73,180,239,236,72,180,84,215,72,180,164,193,72,180,223,171,72,180,7,150,72,180,26,128,72,180,25,106,72,180,3,84,72,180,217,61,72,180,155,39,72,180,73,17,72,180,226,250,71,180,103,228,71,180,216,205,71,180,53,183,71,180,126,160,71,180,178,137,71,180,210,114,71,180,222,91,71,180,
214,68,71,180,186,45,71,180,138,22,71,180,70,255,70,180,238,231,70,180,129,208,70,180,1,185,70,180,108,161,70,180,196,137,70,180,7,114,70,180,55,90,70,180,83,66,70,180,90,42,70,180,78,18,70,180,46,250,69,180,250,225,69,180,178,201,69,180,86,177,69,180,230,152,69,180,98,128,69,180,203,103,69,180,32,79,69,180,96,54,69,180,142,29,69,180,167,4,69,180,172,235,68,180,158,210,68,180,124,185,68,180,71,160,68,180,253,134,68,180,160,109,68,180,48,84,68,180,171,58,68,180,19,33,68,180,104,7,68,180,168,237,67,
180,214,211,67,180,239,185,67,180,245,159,67,180,232,133,67,180,198,107,67,180,146,81,67,180,74,55,67,180,238,28,67,180,127,2,67,180,252,231,66,180,102,205,66,180,189,178,66,180,0,152,66,180,48,125,66,180,76,98,66,180,85,71,66,180,75,44,66,180,45,17,66,180,252,245,65,180,183,218,65,180,96,191,65,180,245,163,65,180,119,136,65,180,229,108,65,180,64,81,65,180,137,53,65,180,189,25,65,180,223,253,64,180,238,225,64,180,233,197,64,180,209,169,64,180,167,141,64,180,105,113,64,180,24,85,64,180,179,56,64,180,
60,28,64,180,178,255,63,180,21,227,63,180,101,198,63,180,161,169,63,180,203,140,63,180,226,111,63,180,230,82,63,180,215,53,63,180,181,24,63,180,128,251,62,180,56,222,62,180,222,192,62,180,112,163,62,180,240,133,62,180,93,104,62,180,183,74,62,180,254,44,62,180,51,15,62,180,85,241,61,180,100,211,61,180,96,181,61,180,74,151,61,180,33,121,61,180,230,90,61,180,151,60,61,180,54,30,61,180,195,255,60,180,61,225,60,180,164,194,60,180,249,163,60,180,59,133,60,180,107,102,60,180,136,71,60,180,146,40,60,180,
139,9,60,180,112,234,59,180,68,203,59,180,5,172,59,180,179,140,59,180,79,109,59,180,217,77,59,180,80,46,59,180,181,14,59,180,8,239,58,180,72,207,58,180,118,175,58,180,146,143,58,180,156,111,58,180,147,79,58,180,120,47,58,180,75,15,58,180,11,239,57,180,186,206,57,180,86,174,57,180,225,141,57,180,89,109,57,180,191,76,57,180,19,44,57,180,85,11,57,180,133,234,56,180,162,201,56,180,174,168,56,180,168,135,56,180,144,102,56,180,102,69,56,180,42,36,56,180,220,2,56,180,124,225,55,180,10,192,55,180,135,158,
55,180,241,124,55,180,74,91,55,180,145,57,55,180,198,23,55,180,233,245,54,180,251,211,54,180,251,177,54,180,233,143,54,180,197,109,54,180,144,75,54,180,73,41,54,180,241,6,54,180,134,228,53,180,11,194,53,180,125,159,53,180,222,124,53,180,46,90,53,180,108,55,53,180,152,20,53,180,179,241,52,180,188,206,52,180,180,171,52,180,155,136,52,180,112,101,52,180,51,66,52,180,230,30,52,180,135,251,51,180,22,216,51,180,148,180,51,180,1,145,51,180,93,109,51,180,167,73,51,180,224,37,51,180,8,2,51,180,30,222,50,180,
36,186,50,180,24,150,50,180,251,113,50,180,205,77,50,180,142,41,50,180,61,5,50,180,220,224,49,180,105,188,49,180,230,151,49,180,81,115,49,180,172,78,49,180,245,41,49,180,45,5,49,180,85,224,48,180,107,187,48,180,113,150,48,180,102,113,48,180,73,76,48,180,28,39,48,180,223,1,48,180,144,220,47,180,48,183,47,180,192,145,47,180,63,108,47,180,173,70,47,180,11,33,47,180,87,251,46,180,147,213,46,180,191,175,46,180,218,137,46,180,228,99,46,180,221,61,46,180,198,23,46,180,158,241,45,180,102,203,45,180,29,165,
45,180,196,126,45,180,91,88,45,180,224,49,45,180,86,11,45,180,187,228,44,180,15,190,44,180,83,151,44,180,135,112,44,180,170,73,44,180,189,34,44,180,192,251,43,180,179,212,43,180,149,173,43,180,103,134,43,180,40,95,43,180,218,55,43,180,123,16,43,180,12,233,42,180,141,193,42,180,254,153,42,180,95,114,42,180,175,74,42,180,240,34,42,180,32,251,41,180,65,211,41,180,81,171,41,180,82,131,41,180,66,91,41,180,35,51,41,180,243,10,41,180,180,226,40,180,101,186,40,180,6,146,40,180,151,105,40,180,24,65,40,180,
137,24,40,180,235,239,39,180,61,199,39,180,127,158,39,180,177,117,39,180,212,76,39,180,231,35,39,180,234,250,38,180,222,209,38,180,194,168,38,180,151,127,38,180,91,86,38,180,17,45,38,180,183,3,38,180,77,218,37,180,212,176,37,180,75,135,37,180,179,93,37,180,11,52,37,180,84,10,37,180,142,224,36,180,184,182,36,180,211,140,36,180,222,98,36,180,218,56,36,180,199,14,36,180,165,228,35,180,115,186,35,180,51,144,35,180,227,101,35,180,131,59,35,180,21,17,35,180,151,230,34,180,11,188,34,180,111,145,34,180,196,
102,34,180,10,60,34,180,65,17,34,180,105,230,33,180,130,187,33,180,141,144,33,180,136,101,33,180,116,58,33,180,81,15,33,180,32,228,32,180,223,184,32,180,144,141,32,180,50,98,32,180,197,54,32,180,73,11,32,180,190,223,31,180,37,180,31,180,125,136,31,180,199,92,31,180,1,49,31,180,45,5,31,180,75,217,30,180,90,173,30,180,90,129,30,180,75,85,30,180,47,41,30,180,3,253,29,180,201,208,29,180,129,164,29,180,42,120,29,180,197,75,29,180,81,31,29,180,207,242,28,180,62,198,28,180,159,153,28,180,242,108,28,180,
55,64,28,180,109,19,28,180,149,230,27,180,175,185,27,180,186,140,27,180,184,95,27,180,167,50,27,180,136,5,27,180,91,216,26,180,32,171,26,180,214,125,26,180,127,80,26,180,26,35,26,180,166,245,25,180,37,200,25,180,149,154,25,180,248,108,25,180,77,63,25,180,148,17,25,180,205,227,24,180,248,181,24,180,21,136,24,180,36,90,24,180,38,44,24,180,26,254,23,180,0,208,23,180,216,161,23,180,163,115,23,180,96,69,23,180,15,23,23,180,177,232,22,180,69,186,22,180,203,139,22,180,68,93,22,180,175,46,22,180,13,0,22,
180,94,209,21,180,160,162,21,180,214,115,21,180,254,68,21,180,24,22,21,180,37,231,20,180,37,184,20,180,23,137,20,180,253,89,20,180,212,42,20,180,159,251,19,180,92,204,19,180,12,157,19,180,175,109,19,180,68,62,19,180,205,14,19,180,72,223,18,180,182,175,18,180,23,128,18,180,107,80,18,180,178,32,18,180,236,240,17,180,25,193,17,180,57,145,17,180,76,97,17,180,82,49,17,180,75,1,17,180,56,209,16,180,23,161,16,180,233,112,16,180,175,64,16,180,104,16,16,180,20,224,15,180,180,175,15,180,70,127,15,180,204,78,
15,180,69,30,15,180,178,237,14,180,18,189,14,180,101,140,14,180,172,91,14,180,230,42,14,180,20,250,13,180,53,201,13,180,74,152,13,180,82,103,13,180,78,54,13,180,61,5,13,180,32,212,12,180,246,162,12,180,192,113,12,180,126,64,12,180,48,15,12,180,213,221,11,180,110,172,11,180,251,122,11,180,123,73,11,180,239,23,11,180,88,230,10,180,180,180,10,180,3,131,10,180,71,81,10,180,127,31,10,180,170,237,9,180,202,187,9,180,222,137,9,180,229,87,9,180,225,37,9,180,209,243,8,180,180,193,8,180,140,143,8,180,88,93,
8,180,25,43,8,180,205,248,7,180,118,198,7,180,18,148,7,180,164,97,7,180,41,47,7,180,163,252,6,180,17,202,6,180,115,151,6,180,202,100,6,180,21,50,6,180,84,255,5,180,136,204,5,180,177,153,5,180,206,102,5,180,223,51,5,180,229,0,5,180,224,205,4,180,207,154,4,180,179,103,4,180,139,52,4,180,88,1,4,180,26,206,3,180,208,154,3,180,124,103,3,180,28,52,3,180,176,0,3,180,58,205,2,180,184,153,2,180,43,102,2,180,148,50,2,180,241,254,1,180,67,203,1,180,137,151,1,180,197,99,1,180,246,47,1,180,28,252,0,180,55,200,
0,180,71,148,0,180,76,96,0,180,70,44,0,180,107,240,255,179,52,136,255,179,231,31,255,179,133,183,254,179,13,79,254,179,128,230,253,179,222,125,253,179,38,21,253,179,88,172,252,179,118,67,252,179,126,218,251,179,113,113,251,179,79,8,251,179,24,159,250,179,203,53,250,179,106,204,249,179,244,98,249,179,105,249,248,179,201,143,248,179,20,38,248,179,75,188,247,179,109,82,247,179,122,232,246,179,115,126,246,179,87,20,246,179,38,170,245,179,226,63,245,179,136,213,244,179,27,107,244,179,153,0,244,179,3,150,
243,179,88,43,243,179,154,192,242,179,199,85,242,179,225,234,241,179,230,127,241,179,215,20,241,179,181,169,240,179,127,62,240,179,52,211,239,179,214,103,239,179,101,252,238,179,224,144,238,179,71,37,238,179,154,185,237,179,218,77,237,179,7,226,236,179,32,118,236,179,38,10,236,179,24,158,235,179,247,49,235,179,195,197,234,179,124,89,234,179,34,237,233,179,181,128,233,179,52,20,233,179,161,167,232,179,251,58,232,179,66,206,231,179,118,97,231,179,151,244,230,179,166,135,230,179,162,26,230,179,139,173,
229,179,98,64,229,179,38,211,228,179,216,101,228,179,119,248,227,179,4,139,227,179,127,29,227,179,232,175,226,179,62,66,226,179,130,212,225,179,180,102,225,179,212,248,224,179,225,138,224,179,221,28,224,179,199,174,223,179,159,64,223,179,102,210,222,179,26,100,222,179,189,245,221,179,78,135,221,179,206,24,221,179,60,170,220,179,152,59,220,179,227,204,219,179,29,94,219,179,69,239,218,179,92,128,218,179,98,17,218,179,86,162,217,179,57,51,217,179,12,196,216,179,205,84,216,179,125,229,215,179,28,118,
215,179,170,6,215,179,39,151,214,179,148,39,214,179,240,183,213,179,59,72,213,179,117,216,212,179,159,104,212,179,185,248,211,179,193,136,211,179,186,24,211,179,162,168,210,179,121,56,210,179,64,200,209,179,248,87,209,179,158,231,208,179,53,119,208,179,188,6,208,179,50,150,207,179,153,37,207,179,239,180,206,179,54,68,206,179,109,211,205,179,148,98,205,179,171,241,204,179,179,128,204,179,171,15,204,179,147,158,203,179,108,45,203,179,53,188,202,179,239,74,202,179,154,217,201,179,53,104,201,179,193,
246,200,179,62,133,200,179,171,19,200,179,10,162,199,179,89,48,199,179,153,190,198,179,203,76,198,179,237,218,197,179,0,105,197,179,5,247,196,179,251,132,196,179,226,18,196,179,187,160,195,179,133,46,195,179,64,188,194,179,237,73,194,179,139,215,193,179,27,101,193,179,156,242,192,179,16,128,192,179,117,13,192,179,203,154,191,179,20,40,191,179,79,181,190,179,123,66,190,179,153,207,189,179,170,92,189,179,173,233,188,179,161,118,188,179,136,3,188,179,97,144,187,179,45,29,187,179,235,169,186,179,155,
54,186,179,62,195,185,179,211,79,185,179,91,220,184,179,213,104,184,179,66,245,183,179,162,129,183,179,245,13,183,179,58,154,182,179,114,38,182,179,157,178,181,179,187,62,181,179,205,202,180,179,209,86,180,179,200,226,179,179,179,110,179,179,144,250,178,179,97,134,178,179,38,18,178,179,222,157,177,179,137,41,177,179,39,181,176,179,186,64,176,179,63,204,175,179,185,87,175,179,38,227,174,179,135,110,174,179,220,249,173,179,36,133,173,179,97,16,173,179,145,155,172,179,182,38,172,179,206,177,171,179,
219,60,171,179,219,199,170,179,208,82,170,179,185,221,169,179,151,104,169,179,105,243,168,179,47,126,168,179,234,8,168,179,153,147,167,179,61,30,167,179,214,168,166,179,99,51,166,179,229,189,165,179,92,72,165,179,199,210,164,179,39,93,164,179,125,231,163,179,199,113,163,179,7,252,162,179,59,134,162,179,101,16,162,179,132,154,161,179,152,36,161,179,161,174,160,179,160,56,160,179,148,194,159,179,125,76,159,179,93,214,158,179,49,96,158,179,251,233,157,179,187,115,157,179,113,253,156,179,28,135,156,179,
190,16,156,179,85,154,155,179,226,35,155,179,101,173,154,179,222,54,154,179,77,192,153,179,178,73,153,179,14,211,152,179,95,92,152,179,167,229,151,179,230,110,151,179,26,248,150,179,70,129,150,179,103,10,150,179,127,147,149,179,142,28,149,179,148,165,148,179,144,46,148,179,131,183,147,179,108,64,147,179,77,201,146,179,36,82,146,179,243,218,145,179,184,99,145,179,117,236,144,179,40,117,144,179,211,253,143,179,117,134,143,179,15,15,143,179,159,151,142,179,39,32,142,179,167,168,141,179,30,49,141,179,
140,185,140,179,242,65,140,179,80,202,139,179,165,82,139,179,243,218,138,179,56,99,138,179,116,235,137,179,169,115,137,179,214,251,136,179,251,131,136,179,23,12,136,179,44,148,135,179,57,28,135,179,62,164,134,179,60,44,134,179,50,180,133,179,32,60,133,179,6,196,132,179,230,75,132,179,189,211,131,179,141,91,131,179,86,227,130,179,24,107,130,179,210,242,129,179,133,122,129,179,49,2,129,179,214,137,128,179,115,17,128,179,20,50,127,179,52,65,126,179,69,80,125,179,73,95,124,179,64,110,123,179,41,125,122,
179,4,140,121,179,211,154,120,179,148,169,119,179,72,184,118,179,239,198,117,179,137,213,116,179,23,228,115,179,151,242,114,179,12,1,114,179,116,15,113,179,207,29,112,179,30,44,111,179,98,58,110,179,153,72,109,179,196,86,108,179,227,100,107,179,247,114,106,179,255,128,105,179,252,142,104,179,237,156,103,179,211,170,102,179,173,184,101,179,125,198,100,179,66,212,99,179,251,225,98,179,170,239,97,179,79,253,96,179,232,10,96,179,120,24,95,179,252,37,94,179,119,51,93,179,232,64,92,179,78,78,91,179,171,
91,90,179,253,104,89,179,70,118,88,179,134,131,87,179,187,144,86,179,232,157,85,179,11,171,84,179,37,184,83,179,54,197,82,179,61,210,81,179,60,223,80,179,50,236,79,179,32,249,78,179,4,6,78,179,225,18,77,179,181,31,76,179,128,44,75,179,68,57,74,179,255,69,73,179,179,82,72,179,94,95,71,179,2,108,70,179,158,120,69,179,51,133,68,179,192,145,67,179,70,158,66,179,197,170,65,179,60,183,64,179,173,195,63,179,22,208,62,179,121,220,61,179,213,232,60,179,42,245,59,179,121,1,59,179,194,13,58,179,4,26,57,179,
64,38,56,179,118,50,55,179,166,62,54,179,208,74,53,179,244,86,52,179,18,99,51,179,43,111,50,179,63,123,49,179,77,135,48,179,86,147,47,179,90,159,46,179,89,171,45,179,82,183,44,179,71,195,43,179,55,207,42,179,35,219,41,179,10,231,40,179,236,242,39,179,203,254,38,179,165,10,38,179,122,22,37,179,76,34,36,179,26,46,35,179,228,57,34,179,171,69,33,179,110,81,32,179,45,93,31,179,233,104,30,179,161,116,29,179,87,128,28,179,9,140,27,179,184,151,26,179,101,163,25,179,15,175,24,179,182,186,23,179,90,198,22,
179,252,209,21,179,156,221,20,179,57,233,19,179,212,244,18,179,109,0,18,179,5,12,17,179,154,23,16,179,46,35,15,179,192,46,14,179,80,58,13,179,223,69,12,179,109,81,11,179,249,92,10,179,132,104,9,179,15,116,8,179,152,127,7,179,33,139,6,179,168,150,5,179,48,162,4,179,182,173,3,179,61,185,2,179,195,196,1,179,72,208,0,179,156,183,255,178,168,206,253,178,179,229,251,178,191,252,249,178,204,19,248,178,217,42,246,178,232,65,244,178,248,88,242,178,9,112,240,178,28,135,238,178,49,158,236,178,71,181,234,178,
96,204,232,178,124,227,230,178,154,250,228,178,187,17,227,178,224,40,225,178,7,64,223,178,50,87,221,178,97,110,219,178,147,133,217,178,202,156,215,178,5,180,213,178,69,203,211,178,137,226,209,178,210,249,207,178,32,17,206,178,116,40,204,178,205,63,202,178,44,87,200,178,145,110,198,178,252,133,196,178,110,157,194,178,230,180,192,178,101,204,190,178,234,227,188,178,119,251,186,178,12,19,185,178,167,42,183,178,75,66,181,178,247,89,179,178,171,113,177,178,103,137,175,178,44,161,173,178,249,184,171,178,
208,208,169,178,176,232,167,178,153,0,166,178,140,24,164,178,137,48,162,178,143,72,160,178,160,96,158,178,188,120,156,178,226,144,154,178,19,169,152,178,79,193,150,178,150,217,148,178,232,241,146,178,70,10,145,178,177,34,143,178,39,59,141,178,169,83,139,178,56,108,137,178,211,132,135,178,124,157,133,178,49,182,131,178,244,206,129,178,135,207,127,178,67,1,124,178,26,51,120,178,14,101,116,178,30,151,112,178,75,201,108,178,149,251,104,178,253,45,101,178,131,96,97,178,40,147,93,178,235,197,89,178,206,
248,85,178,209,43,82,178,244,94,78,178,56,146,74,178,156,197,70,178,34,249,66,178,202,44,63,178,147,96,59,178,128,148,55,178,143,200,51,178,194,252,47,178,24,49,44,178,147,101,40,178,50,154,36,178,246,206,32,178,224,3,29,178,239,56,25,178,37,110,21,178,129,163,17,178,4,217,13,178,175,14,10,178,129,68,6,178,123,122,2,178,61,97,253,177,213,205,245,177,191,58,238,177,254,167,230,177,144,21,223,177,120,131,215,177,182,241,207,177,74,96,200,177,54,207,192,177,122,62,185,177,23,174,177,177,15,30,170,177,
96,142,162,177,14,255,154,177,24,112,147,177,126,225,139,177,67,83,132,177,204,138,121,177,210,111,106,177,152,85,91,177,32,60,76,177,108,35,61,177,125,11,46,177,84,244,30,177,245,221,15,177],"i8",4,y.a+1351680);
Q([95,200,0,177,41,103,227,176,47,63,197,176,210,24,167,176,22,244,136,176,250,161,85,176,23,95,25,176,16,63,186,175,76,141,3,175,8,172,218,46,220,21,175,47,238,188,19,48,122,235,79,48,71,11,134,48,16,31,164,48,22,49,194,48,86,65,224,48,204,79,254,48,59,46,14,49,168,51,29,49,43,56,44,49,196,59,59,49,112,62,74,49,46,64,89,49,252,64,104,49,217,64,119,49,225,31,131,49,220,158,138,49,92,29,146,49,96,155,153,49,232,24,161,49,242,149,168,49,127,18,176,49,140,142,183,49,26,10,191,49,39,133,198,49,180,255,
205,49,190,121,213,49,69,243,220,49,73,108,228,49,201,228,235,49,195,92,243,49,56,212,250,49,147,37,1,50,199,224,4,50,182,155,8,50,97,86,12,50,199,16,16,50,231,202,19,50,195,132,23,50,88,62,27,50,166,247,30,50,174,176,34,50,111,105,38,50,232,33,42,50,25,218,45,50,2,146,49,50,163,73,53,50,250,0,57,50,7,184,60,50,203,110,64,50,69,37,68,50,116,219,71,50,88,145,75,50,240,70,79,50,61,252,82,50,62,177,86,50,242,101,90,50,89,26,94,50,115,206,97,50,63,130,101,50,189,53,105,50,237,232,108,50,206,155,112,50,
95,78,116,50,161,0,120,50,147,178,123,50,53,100,127,50,195,138,129,50,67,99,131,50,154,59,133,50,200,19,135,50,206,235,136,50,169,195,138,50,92,155,140,50,228,114,142,50,67,74,144,50,120,33,146,50,130,248,147,50,98,207,149,50,24,166,151,50,162,124,153,50,2,83,155,50,54,41,157,50,63,255,158,50,28,213,160,50,206,170,162,50,84,128,164,50,173,85,166,50,218,42,168,50,219,255,169,50,175,212,171,50,86,169,173,50,208,125,175,50,29,82,177,50,60,38,179,50,46,250,180,50,242,205,182,50,135,161,184,50,239,116,
186,50,40,72,188,50,51,27,190,50,15,238,191,50,188,192,193,50,58,147,195,50,136,101,197,50,167,55,199,50,151,9,201,50,86,219,202,50,229,172,204,50,69,126,206,50,115,79,208,50,114,32,210,50,63,241,211,50,219,193,213,50,70,146,215,50,128,98,217,50,137,50,219,50,95,2,221,50,4,210,222,50,119,161,224,50,183,112,226,50,197,63,228,50,160,14,230,50,73,221,231,50,190,171,233,50,0,122,235,50,15,72,237,50,235,21,239,50,146,227,240,50,6,177,242,50,69,126,244,50,81,75,246,50,40,24,248,50,202,228,249,50,55,177,
251,50,112,125,253,50,115,73,255,50,160,138,0,51,108,112,1,51,30,86,2,51,180,59,3,51,47,33,4,51,143,6,5,51,212,235,5,51,254,208,6,51,12,182,7,51,254,154,8,51,214,127,9,51,145,100,10,51,48,73,11,51,180,45,12,51,28,18,13,51,104,246,13,51,151,218,14,51,171,190,15,51,162,162,16,51,124,134,17,51,59,106,18,51,220,77,19,51,97,49,20,51,201,20,21,51,21,248,21,51,67,219,22,51,84,190,23,51,73,161,24,51,32,132,25,51,217,102,26,51,118,73,27,51,245,43,28,51,86,14,29,51,154,240,29,51,192,210,30,51,200,180,31,51,
178,150,32,51,126,120,33,51,44,90,34,51,188,59,35,51,46,29,36,51,129,254,36,51,182,223,37,51,205,192,38,51,196,161,39,51,157,130,40,51,87,99,41,51,243,67,42,51,111,36,43,51,205,4,44,51,11,229,44,51,42,197,45,51,41,165,46,51,9,133,47,51,202,100,48,51,107,68,49,51,237,35,50,51,79,3,51,51,144,226,51,51,178,193,52,51,180,160,53,51,150,127,54,51,88,94,55,51,249,60,56,51,122,27,57,51,219,249,57,51,27,216,58,51,58,182,59,51,57,148,60,51,23,114,61,51,212,79,62,51,112,45,63,51,235,10,64,51,69,232,64,51,125,
197,65,51,149,162,66,51,138,127,67,51,95,92,68,51,18,57,69,51,163,21,70,51,19,242,70,51,96,206,71,51,140,170,72,51,150,134,73,51,126,98,74,51,67,62,75,51,230,25,76,51,103,245,76,51,198,208,77,51,2,172,78,51,27,135,79,51,18,98,80,51,230,60,81,51,152,23,82,51,38,242,82,51,145,204,83,51,217,166,84,51,254,128,85,51,0,91,86,51,222,52,87,51,153,14,88,51,49,232,88,51,165,193,89,51,245,154,90,51,34,116,91,51,42,77,92,51,15,38,93,51,207,254,93,51,108,215,94,51,228,175,95,51,57,136,96,51,104,96,97,51,116,56,
98,51,91,16,99,51,29,232,99,51,186,191,100,51,51,151,101,51,135,110,102,51,182,69,103,51,192,28,104,51,165,243,104,51,101,202,105,51,0,161,106,51,117,119,107,51,197,77,108,51,239,35,109,51,244,249,109,51,211,207,110,51,140,165,111,51,32,123,112,51,142,80,113,51,213,37,114,51,247,250,114,51,242,207,115,51,199,164,116,51,118,121,117,51,255,77,118,51,97,34,119,51,156,246,119,51,177,202,120,51,159,158,121,51,102,114,122,51,7,70,123,51,128,25,124,51,211,236,124,51,254,191,125,51,2,147,126,51,223,101,127,
51,74,28,128,51,145,133,128,51,197,238,128,51,228,87,129,51,240,192,129,51,232,41,130,51,203,146,130,51,155,251,130,51,87,100,131,51,255,204,131,51,147,53,132,51,19,158,132,51,126,6,133,51,213,110,133,51,24,215,133,51,71,63,134,51,98,167,134,51,104,15,135,51,90,119,135,51,55,223,135,51,0,71,136,51,180,174,136,51,84,22,137,51,223,125,137,51,86,229,137,51,184,76,138,51,5,180,138,51,62,27,139,51,97,130,139,51,112,233,139,51,106,80,140,51,79,183,140,51,31,30,141,51,219,132,141,51,129,235,141,51,18,82,
142,51,142,184,142,51,245,30,143,51,71,133,143,51,131,235,143,51,171,81,144,51,189,183,144,51,185,29,145,51,161,131,145,51,115,233,145,51,47,79,146,51,214,180,146,51,104,26,147,51,228,127,147,51,74,229,147,51,155,74,148,51,214,175,148,51,252,20,149,51,11,122,149,51,5,223,149,51,233,67,150,51,184,168,150,51,112,13,151,51,18,114,151,51,159,214,151,51,21,59,152,51,118,159,152,51,192,3,153,51,244,103,153,51,19,204,153,51,27,48,154,51,12,148,154,51,232,247,154,51,173,91,155,51,92,191,155,51,244,34,156,
51,118,134,156,51,226,233,156,51,55,77,157,51,117,176,157,51,157,19,158,51,175,118,158,51,170,217,158,51,142,60,159,51,91,159,159,51,18,2,160,51,178,100,160,51,59,199,160,51,173,41,161,51,8,140,161,51,77,238,161,51,122,80,162,51,145,178,162,51,144,20,163,51,121,118,163,51,74,216,163,51,4,58,164,51,167,155,164,51,51,253,164,51,167,94,165,51,5,192,165,51,75,33,166,51,121,130,166,51,144,227,166,51,144,68,167,51,121,165,167,51,73,6,168,51,3,103,168,51,164,199,168,51,46,40,169,51,161,136,169,51,252,232,
169,51,63,73,170,51,106,169,170,51,126,9,171,51,122,105,171,51,93,201,171,51,41,41,172,51,222,136,172,51,122,232,172,51,254,71,173,51,106,167,173,51,190,6,174,51,250,101,174,51,30,197,174,51,42,36,175,51,29,131,175,51,249,225,175,51,188,64,176,51,102,159,176,51,249,253,176,51,115,92,177,51,212,186,177,51,29,25,178,51,78,119,178,51,102,213,178,51,102,51,179,51,77,145,179,51,28,239,179,51,209,76,180,51,111,170,180,51,243,7,181,51,95,101,181,51,178,194,181,51,236,31,182,51,13,125,182,51,21,218,182,51,
5,55,183,51,219,147,183,51,153,240,183,51,61,77,184,51,201,169,184,51,59,6,185,51,149,98,185,51,213,190,185,51,252,26,186,51,9,119,186,51,254,210,186,51,217,46,187,51,155,138,187,51,68,230,187,51,211,65,188,51,73,157,188,51,165,248,188,51,232,83,189,51,17,175,189,51,33,10,190,51,23,101,190,51,244,191,190,51,183,26,191,51,96,117,191,51,240,207,191,51,102,42,192,51,194,132,192,51,4,223,192,51,45,57,193,51,59,147,193,51,48,237,193,51,11,71,194,51,204,160,194,51,114,250,194,51,255,83,195,51,114,173,195,
51,203,6,196,51,9,96,196,51,45,185,196,51,56,18,197,51,40,107,197,51,253,195,197,51,185,28,198,51,90,117,198,51,225,205,198,51,77,38,199,51,159,126,199,51,215,214,199,51,244,46,200,51,246,134,200,51,223,222,200,51,172,54,201,51,95,142,201,51,247,229,201,51,117,61,202,51,216,148,202,51,32,236,202,51,78,67,203,51,96,154,203,51,88,241,203,51,53,72,204,51,248,158,204,51,159,245,204,51,43,76,205,51,157,162,205,51,243,248,205,51,47,79,206,51,79,165,206,51,84,251,206,51,62,81,207,51,13,167,207,51,193,252,
207,51,90,82,208,51,215,167,208,51,57,253,208,51,128,82,209,51,172,167,209,51,188,252,209,51,177,81,210,51,138,166,210,51,72,251,210,51,235,79,211,51,114,164,211,51,221,248,211,51,45,77,212,51,97,161,212,51,122,245,212,51,119,73,213,51,88,157,213,51,30,241,213,51,200,68,214,51,86,152,214,51,200,235,214,51,31,63,215,51,90,146,215,51,121,229,215,51,123,56,216,51,98,139,216,51,45,222,216,51,221,48,217,51,112,131,217,51,230,213,217,51,65,40,218,51,128,122,218,51,163,204,218,51,169,30,219,51,148,112,219,
51,98,194,219,51,19,20,220,51,169,101,220,51,34,183,220,51,127,8,221,51,192,89,221,51,228,170,221,51,236,251,221,51,215,76,222,51,166,157,222,51,88,238,222,51,238,62,223,51,103,143,223,51,196,223,223,51,4,48,224,51,39,128,224,51,46,208,224,51,24,32,225,51,229,111,225,51,150,191,225,51,42,15,226,51,161,94,226,51,251,173,226,51,56,253,226,51,89,76,227,51,92,155,227,51,67,234,227,51,13,57,228,51,185,135,228,51,73,214,228,51,188,36,229,51,17,115,229,51,74,193,229,51,101,15,230,51,99,93,230,51,68,171,
230,51,8,249,230,51,175,70,231,51,56,148,231,51,164,225,231,51,243,46,232,51,36,124,232,51,56,201,232,51,47,22,233,51,8,99,233,51,196,175,233,51,98,252,233,51,227,72,234,51,71,149,234,51,141,225,234,51,181,45,235,51,192,121,235,51,173,197,235,51,124,17,236,51,46,93,236,51,194,168,236,51,57,244,236,51,145,63,237,51,204,138,237,51,233,213,237,51,233,32,238,51,202,107,238,51,142,182,238,51,51,1,239,51,187,75,239,51,37,150,239,51,113,224,239,51,159,42,240,51,175,116,240,51,161,190,240,51,116,8,241,51,
42,82,241,51,194,155,241,51,59,229,241,51,150,46,242,51,212,119,242,51,243,192,242,51,243,9,243,51,214,82,243,51,154,155,243,51,64,228,243,51,199,44,244,51,48,117,244,51,123,189,244,51,168,5,245,51,182,77,245,51,165,149,245,51,118,221,245,51,41,37,246,51,189,108,246,51,51,180,246,51,138,251,246,51,194,66,247,51,220,137,247,51,215,208,247,51,180,23,248,51,113,94,248,51,17,165,248,51,145,235,248,51,243,49,249,51,54,120,249,51,90,190,249,51,95,4,250,51,70,74,250,51,13,144,250,51,182,213,250,51,64,27,
251,51,171,96,251,51,247,165,251,51,36,235,251,51,50,48,252,51,33,117,252,51,241,185,252,51,161,254,252,51,51,67,253,51,166,135,253,51,250,203,253,51,46,16,254,51,67,84,254,51,57,152,254,51,16,220,254,51,200,31,255,51,96,99,255,51,218,166,255,51,51,234,255,51,183,22,0,52,69,56,0,52,194,89,0,52,49,123,0,52,143,156,0,52,222,189,0,52,29,223,0,52,76,0,1,52,108,33,1,52,124,66,1,52,124,99,1,52,108,132,1,52,77,165,1,52,29,198,1,52,222,230,1,52,144,7,2,52,49,40,2,52,194,72,2,52,68,105,2,52,182,137,2,52,23,
170,2,52,105,202,2,52,172,234,2,52,222,10,3,52,0,43,3,52,19,75,3,52,21,107,3,52,8,139,3,52,234,170,3,52,189,202,3,52,127,234,3,52,50,10,4,52,213,41,4,52,103,73,4,52,234,104,4,52,93,136,4,52,192,167,4,52,18,199,4,52,85,230,4,52,135,5,5,52,170,36,5,52,188,67,5,52,190,98,5,52,177,129,5,52,147,160,5,52,101,191,5,52,39,222,5,52,216,252,5,52,122,27,6,52,12,58,6,52,141,88,6,52,254,118,6,52,95,149,6,52,176,179,6,52,240,209,6,52,33,240,6,52,65,14,7,52,81,44,7,52,81,74,7,52,64,104,7,52,31,134,7,52,238,163,
7,52,173,193,7,52,92,223,7,52,250,252,7,52,136,26,8,52,5,56,8,52,114,85,8,52,207,114,8,52,28,144,8,52,88,173,8,52,132,202,8,52,160,231,8,52,171,4,9,52,166,33,9,52,144,62,9,52,107,91,9,52,52,120,9,52,238,148,9,52,150,177,9,52,47,206,9,52,183,234,9,52,46,7,10,52,150,35,10,52,236,63,10,52,51,92,10,52,104,120,10,52,142,148,10,52,162,176,10,52,167,204,10,52,154,232,10,52,126,4,11,52,80,32,11,52,19,60,11,52,196,87,11,52,102,115,11,52,246,142,11,52,118,170,11,52,230,197,11,52,69,225,11,52,147,252,11,52,
209,23,12,52,254,50,12,52,26,78,12,52,38,105,12,52,33,132,12,52,12,159,12,52,230,185,12,52,175,212,12,52,104,239,12,52,16,10,13,52,168,36,13,52,46,63,13,52,164,89,13,52,10,116,13,52,94,142,13,52,162,168,13,52,214,194,13,52,248,220,13,52,10,247,13,52,11,17,14,52,251,42,14,52,219,68,14,52,170,94,14,52,104,120,14,52,21,146,14,52,178,171,14,52,61,197,14,52,184,222,14,52,34,248,14,52,124,17,15,52,196,42,15,52,252,67,15,52,35,93,15,52,57,118,15,52,62,143,15,52,50,168,15,52,22,193,15,52,233,217,15,52,170,
242,15,52,91,11,16,52,251,35,16,52,139,60,16,52,9,85,16,52,118,109,16,52,211,133,16,52,30,158,16,52,89,182,16,52,131,206,16,52,155,230,16,52,163,254,16,52,154,22,17,52,128,46,17,52,85,70,17,52,25,94,17,52,204,117,17,52,110,141,17,52,255,164,17,52,127,188,17,52,239,211,17,52,77,235,17,52,154,2,18,52,214,25,18,52,1,49,18,52,27,72,18,52,36,95,18,52,28,118,18,52,3,141,18,52,217,163,18,52,158,186,18,52,82,209,18,52,245,231,18,52,134,254,18,52,7,21,19,52,119,43,19,52,213,65,19,52,34,88,19,52,95,110,19,
52,138,132,19,52,164,154,19,52,173,176,19,52,165,198,19,52,139,220,19,52,97,242,19,52,37,8,20,52,217,29,20,52,123,51,20,52,12,73,20,52,140,94,20,52,250,115,20,52,88,137,20,52,164,158,20,52,223,179,20,52,9,201,20,52,34,222,20,52,42,243,20,52,32,8,21,52,5,29,21,52,217,49,21,52,156,70,21,52,78,91,21,52,238,111,21,52,125,132,21,52,251,152,21,52,104,173,21,52,195,193,21,52,13,214,21,52,70,234,21,52,110,254,21,52,132,18,22,52,137,38,22,52,125,58,22,52,96,78,22,52,49,98,22,52,241,117,22,52,160,137,22,52,
61,157,22,52,202,176,22,52,68,196,22,52,174,215,22,52,6,235,22,52,77,254,22,52,131,17,23,52,167,36,23,52,186,55,23,52,188,74,23,52,172,93,23,52,139,112,23,52,89,131,23,52,21,150,23,52,192,168,23,52,90,187,23,52,226,205,23,52,89,224,23,52,190,242,23,52,18,5,24,52,85,23,24,52,134,41,24,52,166,59,24,52,181,77,24,52,178,95,24,52,158,113,24,52,121,131,24,52,66,149,24,52,249,166,24,52,159,184,24,52,52,202,24,52,184,219,24,52,42,237,24,52,138,254,24,52,217,15,25,52,23,33,25,52,67,50,25,52,94,67,25,52,104,
84,25,52,96,101,25,52,70,118,25,52,27,135,25,52,223,151,25,52,145,168,25,52,50,185,25,52,193,201,25,52,63,218,25,52,171,234,25,52,6,251,25,52,80,11,26,52,135,27,26,52,174,43,26,52,195,59,26,52,198,75,26,52,184,91,26,52,153,107,26,52,104,123,26,52,38,139,26,52,210,154,26,52,108,170,26,52,245,185,26,52,109,201,26,52,211,216,26,52,39,232,26,52,106,247,26,52,156,6,27,52,188,21,27,52,202,36,27,52,199,51,27,52,178,66,27,52,140,81,27,52,85,96,27,52,11,111,27,52,177,125,27,52,69,140,27,52,199,154,27,52,55,
169,27,52,151,183,27,52,228,197,27,52,32,212,27,52,75,226,27,52,100,240,27,52,107,254,27,52,97,12,28,52,69,26,28,52,24,40,28,52,217,53,28,52,137,67,28,52,39,81,28,52,179,94,28,52,46,108,28,52,151,121,28,52,239,134,28,52,53,148,28,52,106,161,28,52,141,174,28,52,158,187,28,52,158,200,28,52,140,213,28,52,105,226,28,52,52,239,28,52,238,251,28,52,150,8,29,52,44,21,29,52,177,33,29,52,36,46,29,52,134,58,29,52,214,70,29,52,20,83,29,52,65,95,29,52,92,107,29,52,102,119,29,52,94,131,29,52,68,143,29,52,25,155,
29,52,220,166,29,52,142,178,29,52,46,190,29,52,188,201,29,52,57,213,29,52,164,224,29,52,254,235,29,52,70,247,29,52,124,2,30,52,161,13,30,52,180,24,30,52,182,35,30,52,165,46,30,52,132,57,30,52,80,68,30,52,11,79,30,52,181,89,30,52,77,100,30,52,211,110,30,52,72,121,30,52,171,131,30,52,252,141,30,52,60,152,30,52,106,162,30,52,134,172,30,52,145,182,30,52,139,192,30,52,114,202,30,52,72,212,30,52,13,222,30,52,192,231,30,52,97,241,30,52,240,250,30,52,110,4,31,52,219,13,31,52,53,23,31,52,126,32,31,52,182,
41,31,52,220,50,31,52,240,59,31,52,243,68,31,52,228,77,31,52,195,86,31,52,145,95,31,52,77,104,31,52,247,112,31,52,144,121,31,52,24,130,31,52,141,138,31,52,241,146,31,52,68,155,31,52,132,163,31,52,180,171,31,52,209,179,31,52,221,187,31,52,216,195,31,52,192,203,31,52,151,211,31,52,93,219,31,52,17,227,31,52,179,234,31,52,68,242,31,52,195,249,31,52,48,1,32,52,140,8,32,52,214,15,32,52,15,23,32,52,54,30,32,52,76,37,32,52,79,44,32,52,66,51,32,52,34,58,32,52,241,64,32,52,175,71,32,52,90,78,32,52,245,84,32,
52,125,91,32,52,244,97,32,52,90,104,32,52,174,110,32,52,240,116,32,52,33,123,32,52,64,129,32,52,77,135,32,52,73,141,32,52,51,147,32,52,12,153,32,52,211,158,32,52,137,164,32,52,45,170,32,52,191,175,32,52,64,181,32,52,176,186,32,52,13,192,32,52,89,197,32,52,148,202,32,52,189,207,32,52,212,212,32,52,218,217,32,52,207,222,32,52,177,227,32,52,131,232,32,52,66,237,32,52,240,241,32,52,141,246,32,52,24,251,32,52,145,255,32,52,249,3,33,52,80,8,33,52,148,12,33,52,200,16,33,52,233,20,33,52,250,24,33,52,248,
28,33,52,229,32,33,52,193,36,33,52,139,40,33,52,68,44,33,52,235,47,33,52,128,51,33,52,4,55,33,52,119,58,33,52,216,61,33,52,39,65,33,52,101,68,33,52,146,71,33,52,173,74,33,52,182,77,33,52,174,80,33,52,149,83,33,52,106,86,33,52,45,89,33,52,223,91,33,52,128,94,33,52,15,97,33,52,140,99,33,52,249,101,33,52,83,104,33,52,156,106,33,52,212,108,33,52,250,110,33,52,15,113,33,52,19,115,33,52,4,117,33,52,229,118,33,52,180,120,33,52,113,122,33,52,29,124,33,52,184,125,33,52,65,127,33,52,185,128,33,52,32,130,33,
52,117,131,33,52,184,132,33,52,234,133,33,52,11,135,33,52,26,136,33,52,24,137,33,52,5,138,33,52,224,138,33,52,169,139,33,52,98,140,33,52,9,141,33,52,158,141,33,52,34,142,33,52,149,142,33,52,246,142,33,52,70,143,33,52,133,143,33,52,178,143,33,52,206,143,33,52,217,143,33,52,210,143,33,52,186,143,33,52,145,143,33,52,86,143,33,52,10,143,33,52,172,142,33,52,61,142,33,52,189,141,33,52,44,141,33,52,137,140,33,52,213,139,33,52,16,139,33,52,57,138,33,52,81,137,33,52,88,136,33,52,77,135,33,52,50,134,33,52,
4,133,33,52,198,131,33,52,118,130,33,52,21,129,33,52,163,127,33,52,32,126,33,52,139,124,33,52,229,122,33,52,46,121,33,52,102,119,33,52,140,117,33,52,161,115,33,52,165,113,33,52,152,111,33,52,121,109,33,52,73,107,33,52,8,105,33,52,182,102,33,52,83,100,33,52,222,97,33,52,88,95,33,52,193,92,33,52,25,90,33,52,96,87,33,52,149,84,33,52,186,81,33,52,205,78,33,52,207,75,33,52,192,72,33,52,160,69,33,52,110,66,33,52,44,63,33,52,216,59,33,52,116,56,33,52,254,52,33,52,119,49,33,52,223,45,33,52,53,42,33,52,123,
38,33,52,176,34,33,52,211,30,33,52,230,26,33,52,231,22,33,52,216,18,33,52,183,14,33,52,133,10,33,52,66,6,33,52,238,1,33,52,137,253,32,52,19,249,32,52,140,244,32,52,244,239,32,52,75,235,32,52,145,230,32,52,198,225,32,52,234,220,32,52,253,215,32,52,255,210,32,52,240,205,32,52,208,200,32,52,159,195,32,52,93,190,32,52,10,185,32,52,167,179,32,52,50,174,32,52,172,168,32,52,22,163,32,52,110,157,32,52,181,151,32,52,236,145,32,52,18,140,32,52,39,134,32,52,42,128,32,52,29,122,32,52,0,116,32,52,209,109,32,52,
145,103,32,52,65,97,32,52,223,90,32,52,109,84,32,52,234,77,32,52,86,71,32,52,178,64,32,52,252,57,32,52,54,51,32,52,94,44,32,52,118,37,32,52,126,30,32,52,116,23,32,52,90,16,32,52,47,9,32,52,243,1,32,52,166,250,31,52,73,243,31,52,219,235,31,52,92,228,31,52,204,220,31,52,44,213,31,52,122,205,31,52,185,197,31,52,230,189,31,52,3,182,31,52,15,174,31,52,10,166,31,52,245,157,31,52,207,149,31,52,152,141,31,52,81,133,31,52,249,124,31,52,145,116,31,52,23,108,31,52,142,99,31,52,243,90,31,52,72,82,31,52,140,73,
31,52,192,64,31,52,227,55,31,52,246,46,31,52,248,37,31,52,233,28,31,52,202,19,31,52,154,10,31,52,90,1,31,52,9,248,30,52,168,238,30,52,54,229,30,52,179,219,30,52,32,210,30,52,125,200,30,52,201,190,30,52,5,181,30,52,48,171,30,52,74,161,30,52,85,151,30,52,78,141,30,52,56,131,30,52,17,121,30,52,217,110,30,52,145,100,30,52,57,90,30,52,208,79,30,52,86,69,30,52,205,58,30,52,51,48,30,52,137,37,30,52,206,26,30,52,3,16,30,52,39,5,30,52,59,250,29,52,63,239,29,52,51,228,29,52,22,217,29,52,233,205,29,52,172,194,
29,52,94,183,29,52,0,172,29,52,146,160,29,52,19,149,29,52,133,137,29,52,230,125,29,52,55,114,29,52,119,102,29,52,167,90,29,52,200,78,29,52,215,66,29,52,215,54,29,52,199,42,29,52,166,30,29,52,117,18,29,52,52,6,29,52,227,249,28,52,130,237,28,52,16,225,28,52,143,212,28,52,253,199,28,52,91,187,28,52,169,174,28,52,231,161,28,52,21,149,28,52,51,136,28,52,65,123,28,52,63,110,28,52,45,97,28,52,10,84,28,52,216,70,28,52,150,57,28,52,67,44,28,52,225,30,28,52,110,17,28,52,236,3,28,52,90,246,27,52,183,232,27,
52,5,219,27,52,67,205,27,52,113,191,27,52,143,177,27,52,157,163,27,52,155,149,27,52,137,135,27,52,104,121,27,52,54,107,27,52,245,92,27,52,163,78,27,52,66,64,27,52,209,49,27,52,81,35,27,52,192,20,27,52,32,6,27,52,111,247,26,52,175,232,26,52,224,217,26,52,0,203,26,52,17,188,26,52,18,173,26,52,3,158,26,52,228,142,26,52,182,127,26,52,120,112,26,52,42,97,26,52,205,81,26,52,96,66,26,52,227,50,26,52,87,35,26,52,187,19,26,52,15,4,26,52,84,244,25,52,137,228,25,52,174,212,25,52,196,196,25,52,203,180,25,52,
193,164,25,52,168,148,25,52,128,132,25,52,72,116,25,52,0,100,25,52,169,83,25,52,67,67,25,52,205,50,25,52,71,34,25,52,178,17,25,52,13,1,25,52,89,240,24,52,150,223,24,52,195,206,24,52,225,189,24,52,239,172,24,52,238,155,24,52,221,138,24,52,189,121,24,52,142,104,24,52,79,87,24,52,1,70,24,52,163,52,24,52,55,35,24,52,187,17,24,52,47,0,24,52,148,238,23,52,234,220,23,52,49,203,23,52,104,185,23,52,145,167,23,52,169,149,23,52,179,131,23,52,174,113,23,52,153,95,23,52,117,77,23,52,66,59,23,52,255,40,23,52,174,
22,23,52,77,4,23,52,221,241,22,52,94,223,22,52,208,204,22,52,51,186,22,52,134,167,22,52,203,148,22,52,0,130,22,52,39,111,22,52,62,92,22,52,70,73,22,52,63,54,22,52,42,35,22,52,5,16,22,52,209,252,21,52,142,233,21,52,60,214,21,52,219,194,21,52,108,175,21,52,237,155,21,52,95,136,21,52,195,116,21,52,23,97,21,52,93,77,21,52,148,57,21,52,188,37,21,52,213,17,21,52,223,253,20,52,218,233,20,52,199,213,20,52,164,193,20,52,115,173,20,52,51,153,20,52,229,132,20,52,135,112,20,52,27,92,20,52,160,71,20,52,22,51,
20,52,126,30,20,52,214,9,20,52,33,245,19,52,92,224,19,52,137,203,19,52,167,182,19,52,182,161,19,52,183,140,19,52,169,119,19,52,141,98,19,52,98,77,19,52,40,56,19,52,224,34,19,52,137,13,19,52,36,248,18,52,176,226,18,52,46,205,18,52,157,183,18,52,253,161,18,52,80,140,18,52,147,118,18,52,200,96,18,52,239,74,18,52,7,53,18,52,17,31,18,52,13,9,18,52,250,242,17,52,216,220,17,52,168,198,17,52,106,176,17,52,30,154,17,52,195,131,17,52,90,109,17,52,226,86,17,52,92,64,17,52,200,41,17,52,38,19,17,52,117,252,16,
52,183,229,16,52,233,206,16,52,14,184,16,52,37,161,16,52,45,138,16,52,39,115,16,52,19,92,16,52,241,68,16,52,192,45,16,52,130,22,16,52,53,255,15,52,218,231,15,52,113,208,15,52,250,184,15,52,117,161,15,52,226,137,15,52,65,114,15,52,146,90,15,52,212,66,15,52,9,43,15,52,48,19,15,52,73,251,14,52,84,227,14,52,81,203,14,52,64,179,14,52,33,155,14,52,244,130,14,52,185,106,14,52,112,82,14,52,26,58,14,52,181,33,14,52,67,9,14,52,195,240,13,52,53,216,13,52,153,191,13,52,240,166,13,52,57,142,13,52,115,117,13,52,
161,92,13,52,192,67,13,52,210,42,13,52,214,17,13,52,204,248,12,52,181,223,12,52,144,198,12,52,93,173,12,52,29,148,12,52,207,122,12,52,115,97,12,52,10,72,12,52,147,46,12,52,15,21,12,52,125,251,11,52,222,225,11,52,49,200,11,52,118,174,11,52,174,148,11,52,217,122,11,52,246,96,11,52,5,71,11,52,7,45,11,52,252,18,11,52,227,248,10,52,189,222,10,52,138,196,10,52,73,170,10,52,250,143,10,52,159,117,10,52,54,91,10,52,192,64,10,52,60,38,10,52,171,11,10,52,13,241,9,52,97,214,9,52,169,187,9,52,227,160,9,52,16,
134,9,52,47,107,9,52,66,80,9,52,71,53,9,52,63,26,9,52,42,255,8,52,8,228,8,52,216,200,8,52,156,173,8,52,83,146,8,52,252,118,8,52,152,91,8,52,40,64,8,52,170,36,8,52,31,9,8,52,135,237,7,52,226,209,7,52,49,182,7,52,114,154,7,52,166,126,7,52,206,98,7,52,232,70,7,52,246,42,7,52,246,14,7,52,234,242,6,52,209,214,6,52,171,186,6,52,121,158,6,52,57,130,6,52,237,101,6,52,148,73,6,52,46,45,6,52,187,16,6,52,60,244,5,52,175,215,5,52,23,187,5,52,113,158,5,52,191,129,5,52,0,101,5,52,52,72,5,52,92,43,5,52,119,14,5,
52,134,241,4,52,136,212,4,52,125,183,4,52,102,154,4,52,67,125,4,52,18,96,4,52,214,66,4,52,140,37,4,52,55,8,4,52,212,234,3,52,102,205,3,52,235,175,3,52,99,146,3,52,207,116,3,52,47,87,3,52,130,57,3,52,201,27,3,52,4,254,2,52,50,224,2,52,84,194,2,52,105,164,2,52,115,134,2,52,112,104,2,52,97,74,2,52,69,44,2,52,30,14,2,52,234,239,1,52,170,209,1,52,93,179,1,52,5,149,1,52,160,118,1,52,48,88,1,52,179,57,1,52,42,27,1,52,149,252,0,52,244,221,0,52,71,191,0,52,142,160,0,52,200,129,0,52,247,98,0,52,26,68,0,52,
49,37,0,52,60,6,0,52,117,206,255,51,91,144,255,51,41,82,255,51,223,19,255,51,126,213,254,51,5,151,254,51,116,88,254,51,204,25,254,51,11,219,253,51,52,156,253,51,68,93,253,51,61,30,253,51,31,223,252,51,233,159,252,51,156,96,252,51,55,33,252,51,187,225,251,51,39,162,251,51,125,98,251,51,187,34,251,51,225,226,250,51,241,162,250,51,233,98,250,51,202,34,250,51,148,226,249,51,71,162,249,51,227,97,249,51,103,33,249,51,213,224,248,51,44,160,248,51,108,95,248,51,149,30,248,51,167,221,247,51,162,156,247,51,
135,91,247,51,85,26,247,51,12,217,246,51,172,151,246,51,54,86,246,51,169,20,246,51,5,211,245,51,75,145,245,51,122,79,245,51,147,13,245,51,149,203,244,51,129,137,244,51,86,71,244,51,21,5,244,51,190,194,243,51,80,128,243,51,204,61,243,51,50,251,242,51,130,184,242,51,187,117,242,51,223,50,242,51,236,239,241,51,227,172,241,51,196,105,241,51,143,38,241,51,69,227,240,51,228,159,240,51,109,92,240,51,224,24,240,51,62,213,239,51,134,145,239,51,184,77,239,51,212,9,239,51,218,197,238,51,203,129,238,51,166,61,
238,51,108,249,237,51,28,181,237,51,182,112,237,51,59,44,237,51,171,231,236,51,5,163,236,51,73,94,236,51,120,25,236,51,146,212,235,51,151,143,235,51,134,74,235,51,96,5,235,51,37,192,234,51,213,122,234,51,111,53,234,51,245,239,233,51,101,170,233,51,193,100,233,51,7,31,233,51,56,217,232,51,85,147,232,51,92,77,232,51,79,7,232,51,45,193,231,51,246,122,231,51,170,52,231,51,74,238,230,51,213,167,230,51,75,97,230,51,173,26,230,51,250,211,229,51,50,141,229,51,86,70,229,51,101,255,228,51,96,184,228,51,71,
113,228,51,25,42,228,51,215,226,227,51,129,155,227,51,22,84,227,51,151,12,227,51,4,197,226,51,92,125,226,51,161,53,226,51,209,237,225,51,237,165,225,51,246,93,225,51,234,21,225,51,202,205,224,51,151,133,224,51,79,61,224,51,244,244,223,51,133,172,223,51,2,100,223,51,107,27,223,51,192,210,222,51,2,138,222,51,48,65,222,51,75,248,221,51,82,175,221,51,69,102,221,51,37,29,221,51,242,211,220,51,171,138,220,51,81,65,220,51,227,247,219,51,98,174,219,51,205,100,219,51,38,27,219,51,107,209,218,51,157,135,218,
51,188,61,218,51,199,243,217,51,192,169,217,51,165,95,217,51,120,21,217,51,55,203,216,51,228,128,216,51,126,54,216,51,4,236,215,51,120,161,215,51,218,86,215,51,40,12,215,51,100,193,214,51,141,118,214,51,163,43,214,51,167,224,213,51,152,149,213,51,118,74,213,51,66,255,212,51,252,179,212,51,163,104,212,51,56,29,212,51,186,209,211,51,42,134,211,51,136,58,211,51,211,238,210,51,12,163,210,51,51,87,210,51,72,11,210,51,75,191,209,51,60,115,209,51,26,39,209,51,231,218,208,51,162,142,208,51,74,66,208,51,225,
245,207,51,102,169,207,51,217,92,207,51,58,16,207,51,138,195,206,51,200,118,206,51,244,41,206,51,14,221,205,51,23,144,205,51,15,67,205,51,244,245,204,51,201,168,204,51,139,91,204,51,61,14,204,51,221,192,203,51,107,115,203,51,233,37,203,51,85,216,202,51,175,138,202,51,249,60,202,51,49,239,201,51,89,161,201,51,111,83,201,51,116,5,201,51,104,183,200,51,75,105,200,51,29,27,200,51,222,204,199,51,143,126,199,51,46,48,199,51,189,225,198,51,59,147,198,51,168,68,198,51,4,246,197,51,80,167,197,51,139,88,197,
51,182,9,197,51,208,186,196,51,217,107,196,51,211,28,196,51,187,205,195,51,147,126,195,51,91,47,195,51,19,224,194,51,186,144,194,51,81,65,194,51,216,241,193,51,78,162,193,51,181,82,193,51,11,3,193,51,82,179,192,51,136,99,192,51,174,19,192,51,196,195,191,51,203,115,191,51,193,35,191,51,168,211,190,51,127,131,190,51,70,51,190,51,254,226,189,51,165,146,189,51,61,66,189,51,198,241,188,51,62,161,188,51,168,80,188,51,2,0,188,51,76,175,187,51,135,94,187,51,178,13,187,51,206,188,186,51,219,107,186,51,217,
26,186,51,199,201,185,51,166,120,185,51,118,39,185,51,55,214,184,51,233,132,184,51,139,51,184,51,31,226,183,51,164,144,183,51,25,63,183,51,128,237,182,51,216,155,182,51,33,74,182,51,91,248,181,51,135,166,181,51,164,84,181,51,178,2,181,51,178,176,180,51,163,94,180,51,133,12,180,51,89,186,179,51,30,104,179,51,213,21,179,51,126,195,178,51,24,113,178,51,163,30,178,51,33,204,177,51,144,121,177,51,241,38,177,51,68,212,176,51,137,129,176,51,191,46,176,51,232,219,175,51,2,137,175,51,15,54,175,51,13,227,174,
51,254,143,174,51,224,60,174,51,181,233,173,51,124,150,173,51,54,67,173,51,225,239,172,51,127,156,172,51,15,73,172,51,146,245,171,51,7,162,171,51,111,78,171,51,201,250,170,51,21,167,170,51,84,83,170,51,134,255,169,51,171,171,169,51,194,87,169,51,204,3,169,51,200,175,168,51,184,91,168,51,154,7,168,51,111,179,167,51,55,95,167,51,242,10,167,51,160,182,166,51,65,98,166,51,213,13,166,51,93,185,165,51,215,100,165,51,69,16,165,51,166,187,164,51,250,102,164,51,65,18,164,51,124,189,163,51,170,104,163,51,204,
19,163,51,225,190,162,51,233,105,162,51,230,20,162,51,213,191,161,51,185,106,161,51,143,21,161,51,90,192,160,51,25,107,160,51,203,21,160,51,113,192,159,51,11,107,159,51,152,21,159,51,26,192,158,51,144,106,158,51,249,20,158,51,87,191,157,51,169,105,157,51,238,19,157,51,40,190,156,51,87,104,156,51,121,18,156,51,144,188,155,51,155,102,155,51,154,16,155,51,142,186,154,51,118,100,154,51,83,14,154,51,36,184,153,51,234,97,153,51,164,11,153,51,83,181,152,51,247,94,152,51,143,8,152,51,28,178,151,51,158,91,
151,51,21,5,151,51,129,174,150,51,225,87,150,51,54,1,150,51,129,170,149,51,192,83,149,51,245,252,148,51,30,166,148,51,61,79,148,51,81,248,147,51,90,161,147,51,88,74,147,51,76,243,146,51,53,156,146,51,19,69,146,51,231,237,145,51,176,150,145,51,110,63,145,51,35,232,144,51,204,144,144,51,108,57,144,51,1,226,143,51,139,138,143,51,12,51,143,51,130,219,142,51,238,131,142,51,79,44,142,51,167,212,141,51,245,124,141,51,56,37,141,51,114,205,140,51,161,117,140,51,199,29,140,51,227,197,139,51,244,109,139,51,
253,21,139,51,251,189,138,51,239,101,138,51,218,13,138,51,187,181,137,51,147,93,137,51,97,5,137,51,38,173,136,51,225,84,136,51,146,252,135,51,58,164,135,51,217,75,135,51,111,243,134,51,251,154,134,51,126,66,134,51,247,233,133,51,104,145,133,51,207,56,133,51,45,224,132,51,130,135,132,51,207,46,132,51,18,214,131,51,76,125,131,51,125,36,131,51,166,203,130,51,197,114,130,51,220,25,130,51,234,192,129,51,240,103,129,51,236,14,129,51,224,181,128,51,204,92,128,51,175,3,128,51,19,85,127,51,183,162,126,51,
74,240,125,51,204,61,125,51,62,139,124,51,159,216,123,51,239,37,123,51,47,115,122,51,94,192,121,51,126,13,121,51,141,90,120,51,140,167,119,51,122,244,118,51,89,65,118,51,40,142,117,51,231,218,116,51,151,39,116,51,54,116,115,51,198,192,114,51,71,13,114,51,184,89,113,51,26,166,112,51,108,242,111,51,175,62,111,51,227,138,110,51,8,215,109,51,31,35,109,51,38,111,108,51,30,187,107,51,8,7,107,51,227,82,106,51,175,158,105,51,109,234,104,51,29,54,104,51,190,129,103,51,81,205,102,51,214,24,102,51,77,100,101,
51,181,175,100,51,16,251,99,51,93,70,99,51,156,145,98,51,206,220,97,51,242,39,97,51,8,115,96,51,17,190,95,51,12,9,95,51,250,83,94,51,219,158,93,51,175,233,92,51,118,52,92,51,47,127,91,51,220,201,90,51,124,20,90,51,16,95,89,51,150,169,88,51,16,244,87,51,126,62,87,51,223,136,86,51,52,211,85,51,124,29,85,51,184,103,84,51,232,177,83,51,13,252,82,51,37,70,82,51,49,144,81,51,49,218,80,51,38,36,80,51,15,110,79,51,237,183,78,51,191,1,78,51,134,75,77,51,65,149,76,51,241,222,75,51,150,40,75,51,48,114,74,51,
191,187,73,51,67,5,73,51,188,78,72,51,43,152,71,51,142,225,70,51,232,42,70,51,54,116,69,51,122,189,68,51,180,6,68,51,228,79,67,51,9,153,66,51,36,226,65,51,53,43,65,51,60,116,64,51,57,189,63,51,45,6,63,51,22,79,62,51,246,151,61,51,205,224,60,51,154,41,60,51,93,114,59,51,24,187,58,51,201,3,58,51,112,76,57,51,15,149,56,51,165,221,55,51,49,38,55,51,181,110,54,51,48,183,53,51,163,255,52,51,13,72,52,51,110,144,51,51,198,216,50,51,23,33,50,51,95,105,49,51,159,177,48,51,214,249,47,51,6,66,47,51,46,138,46,
51,77,210,45,51,101,26,45,51,117,98,44,51,126,170,43,51,127,242,42,51,120,58,42,51,106,130,41,51,85,202,40,51,56,18,40,51,20,90,39,51,233,161,38,51,183,233,37,51,126,49,37,51,62,121,36,51,247,192,35,51,170,8,35,51,86,80,34,51,251,151,33,51,154,223,32,51,51,39,32,51,197,110,31,51,81,182,30,51,214,253,29,51,86,69,29,51,208,140,28,51,67,212,27,51,177,27,27,51,25,99,26,51,124,170,25,51,216,241,24,51,48,57,24,51,130,128,23,51,206,199,22,51,21,15,22,51,87,86,21,51,148,157,20,51,203,228,19,51,254,43,19,
51,44,115,18,51,85,186,17,51,121,1,17,51,153,72,16,51,180,143,15,51,202,214,14,51,220,29,14,51,234,100,13,51,243,171,12,51,248,242,11,51,249,57,11,51,247,128,10,51,240,199,9,51,229,14,9,51,214,85,8,51,196,156,7,51,174,227,6,51,149,42,6,51,120,113,5,51,87,184,4,51,51,255,3,51,12,70,3,51,226,140,2,51,181,211,1,51,133,26,1,51,82,97,0,51,55,80,255,50,197,221,253,50,78,107,252,50,210,248,250,50,81,134,249,50,203,19,248,50,63,161,246,50,176,46,245,50,28,188,243,50,131,73,242,50,231,214,240,50,70,100,239,
50,162,241,237,50,250,126,236,50,78,12,235,50,159,153,233,50,237,38,232,50,56,180,230,50,128,65,229,50,197,206,227,50,8,92,226,50,72,233,224,50,134,118,223,50,194,3,222,50,252,144,220,50,52,30,219,50,107,171,217,50,160,56,216,50,211,197,214,50,6,83,213,50,55,224,211,50,104,109,210,50,152,250,208,50,200,135,207,50,247,20,206,50,38,162,204,50,84,47,203,50,131,188,201,50,178,73,200,50,226,214,198,50,18,100,197,50,67,241,195,50,116,126,194,50,167,11,193,50,219,152,191,50,16,38,190,50,71,179,188,50,127,
64,187,50,185,205,185,50,245,90,184,50,51,232,182,50,116,117,181,50,182,2,180,50,252,143,178,50,68,29,177,50,143,170,175,50,221,55,174,50,47,197,172,50,131,82,171,50,219,223,169,50,55,109,168,50,151,250,166,50,250,135,165,50,98,21,164,50,206,162,162,50,63,48,161,50,180,189,159,50,46,75,158,50,172,216,156,50,48,102,155,50,185,243,153,50,72,129,152,50,220,14,151,50,117,156,149,50,21,42,148,50,186,183,146,50,101,69,145,50,23,211,143,50,208,96,142,50,143,238,140,50,84,124,139,50,33,10,138,50,244,151,
136,50,207,37,135,50,178,179,133,50,155,65,132,50,141,207,130,50,134,93,129,50,15,215,127,50,34,243,124,50,69,15,122,50,122,43,119,50,192,71,116,50,23,100,113,50,128,128,110,50,251,156,107,50,136,185,104,50,41,214,101,50,220,242,98,50,163,15,96,50,125,44,93,50,108,73,90,50,110,102,87,50,134,131,84,50,178,160,81,50,243,189,78,50,74,219,75,50,183,248,72,50,58,22,70,50,211,51,67,50,131,81,64,50,74,111,61,50,41,141,58,50,31,171,55,50,45,201,52,50,83,231,49,50,146,5,47,50,234,35,44,50,91,66,41,50,229,
96,38,50,137,127,35,50,71,158,32,50,32,189,29,50,19,220,26,50,34,251,23,50,75,26,21,50,145,57,18,50,242,88,15,50,111,120,12,50,9,152,9,50,192,183,6,50,148,215,3,50,133,247,0,50,40,47,252,49,130,111,246,49,25,176,240,49,237,240,234,49,255,49,229,49,80,115,223,49,223,180,217,49,175,246,211,49,190,56,206,49,15,123,200,49,161,189,194,49,117,0,189,49,140,67,183,49,230,134,177,49,132,202,171,49,103,14,166,49,143,82,160,49,252,150,154,49,176,219,148,49,171,32,143,49,237,101,137,49,120,171,131,49,150,226,
123,49,208,110,112,49,157,251,100,49,255,136,89,49,247,22,78,49,135,165,66,49,176,52,55,49,114,196,43,49,208,84,32,49,201,229,20,49,97,119,9,49,45,19,252,48,216,56,229,48,198,95,206,48,248,135,183,48,113,177,160,48,52,220,137,48,131,16,102,48,59,107,56,48,147,200,10,48,35,81,186,47,233,44,62,47,252,72,248,44,138,157,46,175,61,121,178,175,29,207,6,176,217,94,52,176,207,235,97,176,252,186,135,176,169,126,158,176,235,64,181,176,193,1,204,176,39,193,226,176,27,127,249,176,206,29,8,177,83,123,19,177,27,
216,30,177,38,52,42,177,115,143,53,177,255,233,64,177,203,67,76,177,212,156,87,177,25,245,98,177,154,76,110,177,86,163,121,177,165,124,130,177,59,39,136,177,108,209,141,177,56,123,147,177,159,36,153,177,159,205,158,177,55,118,164,177,105,30,170,177,50,198,175,177,146,109,181,177,137,20,187,177,22,187,192,177,57,97,198,177,240,6,204,177,60,172,209,177,27,81,215,177,142,245,220,177,147,153,226,177,42,61,232,177,83,224,237,177,12,131,243,177,85,37,249,177,47,199,254,177,75,52,2,178,199,4,5,178,9,213,
7,178,18,165,10,178,226,116,13,178,119,68,16,178,210,19,19,178,243,226,21,178,217,177,24,178,132,128,27,178,244,78,30,178,39,29,33,178,31,235,35,178,219,184,38,178,90,134,41,178,157,83,44,178,162,32,47,178,106,237,49,178,244,185,52,178,65,134,55,178,79,82,58,178,30,30,61,178,175,233,63,178,1,181,66,178,19,128,69,178,230,74,72,178,120,21,75,178,203,223,77,178,220,169,80,178,174,115,83,178,61,61,86,178,140,6,89,178,153,207,91,178,100,152,94,178,236,96,97,178,51,41,100,178,54,241,102,178,246,184,105,
178,115,128,108,178,172,71,111,178],"i8",4,y.a+1361920);
Q([161,14,114,178,82,213,116,178,191,155,119,178,231,97,122,178,201,39,125,178,102,237,127,178,95,89,129,178,232,187,130,178,78,30,132,178,144,128,133,178,175,226,134,178,171,68,136,178,131,166,137,178,55,8,139,178,199,105,140,178,51,203,141,178,123,44,143,178,158,141,144,178,157,238,145,178,119,79,147,178,45,176,148,178,189,16,150,178,41,113,151,178,111,209,152,178,144,49,154,178,139,145,155,178,97,241,156,178,17,81,158,178,155,176,159,178,255,15,161,178,61,111,162,178,85,206,163,178,70,45,165,178,
16,140,166,178,180,234,167,178,49,73,169,178,135,167,170,178,181,5,172,178,189,99,173,178,157,193,174,178,85,31,176,178,230,124,177,178,79,218,178,178,143,55,180,178,168,148,181,178,152,241,182,178,97,78,184,178,0,171,185,178,119,7,187,178,197,99,188,178,234,191,189,178,230,27,191,178,185,119,192,178,98,211,193,178,226,46,195,178,56,138,196,178,101,229,197,178,103,64,199,178,64,155,200,178,238,245,201,178,114,80,203,178,204,170,204,178,250,4,206,178,255,94,207,178,216,184,208,178,135,18,210,178,10,
108,211,178,98,197,212,178,142,30,214,178,143,119,215,178,101,208,216,178,14,41,218,178,140,129,219,178,222,217,220,178,3,50,222,178,252,137,223,178,201,225,224,178,104,57,226,178,220,144,227,178,34,232,228,178,59,63,230,178,39,150,231,178,230,236,232,178,119,67,234,178,219,153,235,178,17,240,236,178,26,70,238,178,244,155,239,178,161,241,240,178,31,71,242,178,110,156,243,178,144,241,244,178,130,70,246,178,70,155,247,178,219,239,248,178,65,68,250,178,120,152,251,178,127,236,252,178,87,64,254,178,0,
148,255,178,188,115,0,179,97,29,1,179,238,198,1,179,98,112,2,179,191,25,3,179,3,195,3,179,47,108,4,179,67,21,5,179,62,190,5,179,33,103,6,179,235,15,7,179,157,184,7,179,54,97,8,179,183,9,9,179,31,178,9,179,110,90,10,179,164,2,11,179,193,170,11,179,197,82,12,179,176,250,12,179,130,162,13,179,59,74,14,179,218,241,14,179,96,153,15,179,205,64,16,179,32,232,16,179,90,143,17,179,122,54,18,179,128,221,18,179,109,132,19,179,64,43,20,179,249,209,20,179,152,120,21,179,29,31,22,179,136,197,22,179,217,107,23,
179,16,18,24,179,44,184,24,179,46,94,25,179,22,4,26,179,228,169,26,179,151,79,27,179,47,245,27,179,173,154,28,179,16,64,29,179,88,229,29,179,134,138,30,179,152,47,31,179,144,212,31,179,109,121,32,179,46,30,33,179,213,194,33,179,96,103,34,179,208,11,35,179,37,176,35,179,94,84,36,179,124,248,36,179,126,156,37,179,101,64,38,179,48,228,38,179,224,135,39,179,115,43,40,179,235,206,40,179,71,114,41,179,135,21,42,179,172,184,42,179,180,91,43,179,159,254,43,179,111,161,44,179,35,68,45,179,186,230,45,179,52,
137,46,179,147,43,47,179,212,205,47,179,250,111,48,179,2,18,49,179,238,179,49,179,189,85,50,179,112,247,50,179,5,153,51,179,126,58,52,179,217,219,52,179,24,125,53,179,57,30,54,179,61,191,54,179,36,96,55,179,238,0,56,179,154,161,56,179,41,66,57,179,155,226,57,179,238,130,58,179,37,35,59,179,61,195,59,179,56,99,60,179,21,3,61,179,213,162,61,179,118,66,62,179,249,225,62,179,95,129,63,179,166,32,64,179,207,191,64,179,218,94,65,179,199,253,65,179,149,156,66,179,69,59,67,179,214,217,67,179,73,120,68,179,
158,22,69,179,211,180,69,179,235,82,70,179,227,240,70,179,188,142,71,179,119,44,72,179,19,202,72,179,144,103,73,179,238,4,74,179,44,162,74,179,76,63,75,179,76,220,75,179,45,121,76,179,239,21,77,179,145,178,77,179,20,79,78,179,119,235,78,179,187,135,79,179,223,35,80,179,228,191,80,179,200,91,81,179,141,247,81,179,50,147,82,179,183,46,83,179,28,202,83,179,98,101,84,179,135,0,85,179,139,155,85,179,112,54,86,179,53,209,86,179,217,107,87,179,92,6,88,179,192,160,88,179,2,59,89,179,37,213,89,179,38,111,
90,179,7,9,91,179,199,162,91,179,103,60,92,179,229,213,92,179,67,111,93,179,128,8,94,179,156,161,94,179,150,58,95,179,112,211,95,179,40,108,96,179,191,4,97,179,53,157,97,179,138,53,98,179,189,205,98,179,206,101,99,179,190,253,99,179,141,149,100,179,58,45,101,179,197,196,101,179,46,92,102,179,118,243,102,179,156,138,103,179,160,33,104,179,130,184,104,179,66,79,105,179,224,229,105,179,91,124,106,179,181,18,107,179,236,168,107,179,1,63,108,179,244,212,108,179,196,106,109,179,114,0,110,179,253,149,110,
179,102,43,111,179,172,192,111,179,207,85,112,179,208,234,112,179,173,127,113,179,104,20,114,179,1,169,114,179,118,61,115,179,200,209,115,179,247,101,116,179,3,250,116,179,235,141,117,179,177,33,118,179,83,181,118,179,210,72,119,179,46,220,119,179,102,111,120,179,122,2,121,179,107,149,121,179,57,40,122,179,227,186,122,179,105,77,123,179,203,223,123,179,9,114,124,179,36,4,125,179,27,150,125,179,237,39,126,179,156,185,126,179,39,75,127,179,141,220,127,179,232,54,128,179,119,127,128,179,244,199,128,
179,94,16,129,179,183,88,129,179,253,160,129,179,49,233,129,179,83,49,130,179,98,121,130,179,95,193,130,179,74,9,131,179,34,81,131,179,232,152,131,179,156,224,131,179,61,40,132,179,204,111,132,179,72,183,132,179,177,254,132,179,8,70,133,179,77,141,133,179,126,212,133,179,157,27,134,179,170,98,134,179,164,169,134,179,139,240,134,179,95,55,135,179,33,126,135,179,207,196,135,179,107,11,136,179,244,81,136,179,107,152,136,179,206,222,136,179,30,37,137,179,92,107,137,179,134,177,137,179,158,247,137,179,
162,61,138,179,148,131,138,179,114,201,138,179,61,15,139,179,245,84,139,179,154,154,139,179,44,224,139,179,171,37,140,179,22,107,140,179,110,176,140,179,179,245,140,179,229,58,141,179,3,128,141,179,14,197,141,179,6,10,142,179,234,78,142,179,187,147,142,179,120,216,142,179,34,29,143,179,184,97,143,179,59,166,143,179,170,234,143,179,6,47,144,179,78,115,144,179,131,183,144,179,164,251,144,179,177,63,145,179,171,131,145,179,144,199,145,179,99,11,146,179,33,79,146,179,204,146,146,179,98,214,146,179,229,
25,147,179,85,93,147,179,176,160,147,179,247,227,147,179,43,39,148,179,74,106,148,179,86,173,148,179,77,240,148,179,49,51,149,179,0,118,149,179,187,184,149,179,99,251,149,179,246,61,150,179,117,128,150,179,224,194,150,179,55,5,151,179,121,71,151,179,168,137,151,179,194,203,151,179,199,13,152,179,185,79,152,179,150,145,152,179,95,211,152,179,19,21,153,179,179,86,153,179,63,152,153,179,182,217,153,179,25,27,154,179,103,92,154,179,161,157,154,179,198,222,154,179,215,31,155,179,211,96,155,179,187,161,
155,179,142,226,155,179,76,35,156,179,246,99,156,179,139,164,156,179,11,229,156,179,119,37,157,179,205,101,157,179,15,166,157,179,61,230,157,179,85,38,158,179,89,102,158,179,71,166,158,179,33,230,158,179,230,37,159,179,150,101,159,179,49,165,159,179,183,228,159,179,40,36,160,179,132,99,160,179,203,162,160,179,253,225,160,179,26,33,161,179,34,96,161,179,21,159,161,179,242,221,161,179,187,28,162,179,110,91,162,179,12,154,162,179,149,216,162,179,8,23,163,179,103,85,163,179,175,147,163,179,227,209,163,
179,1,16,164,179,10,78,164,179,254,139,164,179,220,201,164,179,165,7,165,179,88,69,165,179,246,130,165,179,126,192,165,179,241,253,165,179,79,59,166,179,150,120,166,179,201,181,166,179,229,242,166,179,236,47,167,179,222,108,167,179,185,169,167,179,127,230,167,179,48,35,168,179,202,95,168,179,79,156,168,179,191,216,168,179,24,21,169,179,92,81,169,179,138,141,169,179,162,201,169,179,164,5,170,179,144,65,170,179,102,125,170,179,39,185,170,179,209,244,170,179,102,48,171,179,228,107,171,179,77,167,171,
179,160,226,171,179,220,29,172,179,3,89,172,179,19,148,172,179,14,207,172,179,242,9,173,179,192,68,173,179,120,127,173,179,26,186,173,179,165,244,173,179,27,47,174,179,122,105,174,179,195,163,174,179,245,221,174,179,18,24,175,179,24,82,175,179,7,140,175,179,225,197,175,179,164,255,175,179,80,57,176,179,231,114,176,179,102,172,176,179,208,229,176,179,35,31,177,179,95,88,177,179,133,145,177,179,149,202,177,179,141,3,178,179,112,60,178,179,60,117,178,179,241,173,178,179,143,230,178,179,23,31,179,179,
137,87,179,179,227,143,179,179,39,200,179,179,84,0,180,179,107,56,180,179,107,112,180,179,84,168,180,179,38,224,180,179,226,23,181,179,134,79,181,179,20,135,181,179,139,190,181,179,235,245,181,179,52,45,182,179,103,100,182,179,130,155,182,179,135,210,182,179,116,9,183,179,75,64,183,179,10,119,183,179,179,173,183,179,68,228,183,179,191,26,184,179,34,81,184,179,111,135,184,179,164,189,184,179,194,243,184,179,201,41,185,179,185,95,185,179,146,149,185,179,83,203,185,179,254,0,186,179,145,54,186,179,13,
108,186,179,113,161,186,179,191,214,186,179,245,11,187,179,20,65,187,179,27,118,187,179,11,171,187,179,228,223,187,179,166,20,188,179,80,73,188,179,226,125,188,179,93,178,188,179,193,230,188,179,14,27,189,179,66,79,189,179,96,131,189,179,102,183,189,179,84,235,189,179,43,31,190,179,234,82,190,179,146,134,190,179,34,186,190,179,155,237,190,179,251,32,191,179,69,84,191,179,118,135,191,179,144,186,191,179,147,237,191,179,125,32,192,179,80,83,192,179,11,134,192,179,175,184,192,179,58,235,192,179,174,
29,193,179,10,80,193,179,79,130,193,179,123,180,193,179,144,230,193,179,141,24,194,179,114,74,194,179,63,124,194,179,244,173,194,179,145,223,194,179,22,17,195,179,132,66,195,179,217,115,195,179,22,165,195,179,60,214,195,179,73,7,196,179,63,56,196,179,28,105,196,179,225,153,196,179,143,202,196,179,36,251,196,179,161,43,197,179,6,92,197,179,83,140,197,179,136,188,197,179,164,236,197,179,169,28,198,179,149,76,198,179,105,124,198,179,37,172,198,179,200,219,198,179,84,11,199,179,199,58,199,179,33,106,
199,179,100,153,199,179,142,200,199,179,160,247,199,179,154,38,200,179,123,85,200,179,68,132,200,179,245,178,200,179,141,225,200,179,12,16,201,179,116,62,201,179,195,108,201,179,249,154,201,179,23,201,201,179,29,247,201,179,10,37,202,179,223,82,202,179,155,128,202,179,62,174,202,179,202,219,202,179,60,9,203,179,150,54,203,179,215,99,203,179,0,145,203,179,16,190,203,179,8,235,203,179,231,23,204,179,173,68,204,179,91,113,204,179,240,157,204,179,108,202,204,179,208,246,204,179,27,35,205,179,77,79,205,
179,103,123,205,179,104,167,205,179,80,211,205,179,31,255,205,179,213,42,206,179,115,86,206,179,248,129,206,179,100,173,206,179,183,216,206,179,242,3,207,179,19,47,207,179,28,90,207,179,12,133,207,179,227,175,207,179,161,218,207,179,70,5,208,179,210,47,208,179,69,90,208,179,159,132,208,179,225,174,208,179,9,217,208,179,24,3,209,179,15,45,209,179,236,86,209,179,176,128,209,179,92,170,209,179,238,211,209,179,103,253,209,179,199,38,210,179,14,80,210,179,60,121,210,179,81,162,210,179,77,203,210,179,47,
244,210,179,249,28,211,179,169,69,211,179,64,110,211,179,190,150,211,179,35,191,211,179,110,231,211,179,161,15,212,179,186,55,212,179,186,95,212,179,161,135,212,179,110,175,212,179,34,215,212,179,189,254,212,179,63,38,213,179,167,77,213,179,246,116,213,179,44,156,213,179,72,195,213,179,76,234,213,179,53,17,214,179,6,56,214,179,189,94,214,179,90,133,214,179,223,171,214,179,74,210,214,179,155,248,214,179,211,30,215,179,242,68,215,179,247,106,215,179,227,144,215,179,181,182,215,179,110,220,215,179,13,
2,216,179,147,39,216,179,255,76,216,179,82,114,216,179,139,151,216,179,171,188,216,179,178,225,216,179,158,6,217,179,113,43,217,179,43,80,217,179,203,116,217,179,82,153,217,179,190,189,217,179,18,226,217,179,75,6,218,179,107,42,218,179,114,78,218,179,95,114,218,179,50,150,218,179,235,185,218,179,139,221,218,179,17,1,219,179,126,36,219,179,208,71,219,179,9,107,219,179,41,142,219,179,46,177,219,179,26,212,219,179,236,246,219,179,165,25,220,179,68,60,220,179,200,94,220,179,52,129,220,179,133,163,220,
179,189,197,220,179,218,231,220,179,222,9,221,179,200,43,221,179,153,77,221,179,79,111,221,179,236,144,221,179,111,178,221,179,216,211,221,179,39,245,221,179,92,22,222,179,120,55,222,179,121,88,222,179,97,121,222,179,46,154,222,179,226,186,222,179,124,219,222,179,252,251,222,179,98,28,223,179,174,60,223,179,224,92,223,179,249,124,223,179,247,156,223,179,219,188,223,179,165,220,223,179,86,252,223,179,236,27,224,179,104,59,224,179,203,90,224,179,19,122,224,179,65,153,224,179,86,184,224,179,80,215,224,
179,48,246,224,179,246,20,225,179,162,51,225,179,52,82,225,179,172,112,225,179,10,143,225,179,78,173,225,179,120,203,225,179,136,233,225,179,125,7,226,179,89,37,226,179,26,67,226,179,193,96,226,179,78,126,226,179,193,155,226,179,26,185,226,179,89,214,226,179,125,243,226,179,136,16,227,179,120,45,227,179,78,74,227,179,10,103,227,179,172,131,227,179,51,160,227,179,161,188,227,179,244,216,227,179,45,245,227,179,75,17,228,179,80,45,228,179,58,73,228,179,10,101,228,179,192,128,228,179,92,156,228,179,221,
183,228,179,68,211,228,179,145,238,228,179,196,9,229,179,220,36,229,179,218,63,229,179,190,90,229,179,136,117,229,179,55,144,229,179,204,170,229,179,70,197,229,179,167,223,229,179,237,249,229,179,25,20,230,179,42,46,230,179,33,72,230,179,254,97,230,179,192,123,230,179,105,149,230,179,246,174,230,179,106,200,230,179,195,225,230,179,2,251,230,179,38,20,231,179,48,45,231,179,32,70,231,179,245,94,231,179,176,119,231,179,81,144,231,179,215,168,231,179,67,193,231,179,148,217,231,179,203,241,231,179,232,
9,232,179,234,33,232,179,210,57,232,179,159,81,232,179,82,105,232,179,235,128,232,179,105,152,232,179,205,175,232,179,22,199,232,179,69,222,232,179,90,245,232,179,84,12,233,179,51,35,233,179,248,57,233,179,163,80,233,179,51,103,233,179,169,125,233,179,5,148,233,179,69,170,233,179,108,192,233,179,120,214,233,179,105,236,233,179,64,2,234,179,253,23,234,179,159,45,234,179,39,67,234,179,148,88,234,179,230,109,234,179,30,131,234,179,60,152,234,179,63,173,234,179,40,194,234,179,246,214,234,179,170,235,
234,179,67,0,235,179,193,20,235,179,37,41,235,179,111,61,235,179,158,81,235,179,179,101,235,179,173,121,235,179,140,141,235,179,81,161,235,179,252,180,235,179,140,200,235,179,1,220,235,179,92,239,235,179,156,2,236,179,194,21,236,179,206,40,236,179,190,59,236,179,148,78,236,179,80,97,236,179,241,115,236,179,120,134,236,179,228,152,236,179,53,171,236,179,108,189,236,179,137,207,236,179,139,225,236,179,114,243,236,179,63,5,237,179,241,22,237,179,136,40,237,179,6,58,237,179,104,75,237,179,176,92,237,
179,221,109,237,179,240,126,237,179,232,143,237,179,198,160,237,179,137,177,237,179,50,194,237,179,192,210,237,179,51,227,237,179,140,243,237,179,202,3,238,179,238,19,238,179,247,35,238,179,230,51,238,179,186,67,238,179,115,83,238,179,18,99,238,179,151,114,238,179,0,130,238,179,79,145,238,179,132,160,238,179,158,175,238,179,158,190,238,179,130,205,238,179,77,220,238,179,252,234,238,179,146,249,238,179,12,8,239,179,108,22,239,179,178,36,239,179,221,50,239,179,237,64,239,179,227,78,239,179,190,92,239,
179,126,106,239,179,36,120,239,179,176,133,239,179,33,147,239,179,119,160,239,179,179,173,239,179,212,186,239,179,219,199,239,179,199,212,239,179,152,225,239,179,79,238,239,179,235,250,239,179,109,7,240,179,212,19,240,179,33,32,240,179,83,44,240,179,107,56,240,179,104,68,240,179,74,80,240,179,18,92,240,179,192,103,240,179,82,115,240,179,203,126,240,179,40,138,240,179,108,149,240,179,148,160,240,179,162,171,240,179,150,182,240,179,111,193,240,179,45,204,240,179,209,214,240,179,91,225,240,179,202,235,
240,179,30,246,240,179,88,0,241,179,119,10,241,179,124,20,241,179,102,30,241,179,54,40,241,179,235,49,241,179,133,59,241,179,6,69,241,179,107,78,241,179,182,87,241,179,231,96,241,179,253,105,241,179,249,114,241,179,218,123,241,179,161,132,241,179,77,141,241,179,222,149,241,179,86,158,241,179,178,166,241,179,244,174,241,179,28,183,241,179,41,191,241,179,28,199,241,179,244,206,241,179,178,214,241,179,85,222,241,179,222,229,241,179,77,237,241,179,161,244,241,179,218,251,241,179,249,2,242,179,254,9,242,
179,232,16,242,179,184,23,242,179,109,30,242,179,8,37,242,179,136,43,242,179,238,49,242,179,58,56,242,179,107,62,242,179,130,68,242,179,126,74,242,179,96,80,242,179,40,86,242,179,213,91,242,179,103,97,242,179,224,102,242,179,62,108,242,179,129,113,242,179,170,118,242,179,185,123,242,179,174,128,242,179,136,133,242,179,71,138,242,179,237,142,242,179,120,147,242,179,232,151,242,179,63,156,242,179,122,160,242,179,156,164,242,179,163,168,242,179,144,172,242,179,99,176,242,179,27,180,242,179,185,183,242,
179,61,187,242,179,166,190,242,179,245,193,242,179,42,197,242,179,68,200,242,179,68,203,242,179,42,206,242,179,246,208,242,179,167,211,242,179,62,214,242,179,187,216,242,179,30,219,242,179,102,221,242,179,148,223,242,179,168,225,242,179,161,227,242,179,129,229,242,179,70,231,242,179,241,232,242,179,129,234,242,179,248,235,242,179,84,237,242,179,150,238,242,179,190,239,242,179,204,240,242,179,191,241,242,179,153,242,242,179,88,243,242,179,253,243,242,179,136,244,242,179,249,244,242,179,79,245,242,
179,140,245,242,179,174,245,242,179,182,245,242,179,164,245,242,179,120,245,242,179,50,245,242,179,210,244,242,179,87,244,242,179,195,243,242,179,20,243,242,179,76,242,242,179,105,241,242,179,108,240,242,179,85,239,242,179,37,238,242,179,218,236,242,179,117,235,242,179,246,233,242,179,93,232,242,179,170,230,242,179,221,228,242,179,246,226,242,179,245,224,242,179,218,222,242,179,165,220,242,179,86,218,242,179,237,215,242,179,106,213,242,179,206,210,242,179,23,208,242,179,70,205,242,179,92,202,242,
179,87,199,242,179,57,196,242,179,0,193,242,179,174,189,242,179,66,186,242,179,188,182,242,179,28,179,242,179,98,175,242,179,142,171,242,179,161,167,242,179,154,163,242,179,120,159,242,179,61,155,242,179,233,150,242,179,122,146,242,179,241,141,242,179,79,137,242,179,147,132,242,179,189,127,242,179,206,122,242,179,196,117,242,179,161,112,242,179,100,107,242,179,14,102,242,179,157,96,242,179,19,91,242,179,112,85,242,179,178,79,242,179,219,73,242,179,234,67,242,179,223,61,242,179,187,55,242,179,125,
49,242,179,38,43,242,179,180,36,242,179,42,30,242,179,133,23,242,179,199,16,242,179,239,9,242,179,254,2,242,179,243,251,241,179,207,244,241,179,145,237,241,179,57,230,241,179,200,222,241,179,61,215,241,179,153,207,241,179,219,199,241,179,4,192,241,179,19,184,241,179,8,176,241,179,229,167,241,179,167,159,241,179,80,151,241,179,224,142,241,179,87,134,241,179,179,125,241,179,247,116,241,179,33,108,241,179,49,99,241,179,41,90,241,179,6,81,241,179,203,71,241,179,118,62,241,179,7,53,241,179,128,43,241,
179,223,33,241,179,36,24,241,179,81,14,241,179,100,4,241,179,93,250,240,179,62,240,240,179,5,230,240,179,179,219,240,179,71,209,240,179,194,198,240,179,36,188,240,179,109,177,240,179,157,166,240,179,179,155,240,179,176,144,240,179,148,133,240,179,95,122,240,179,17,111,240,179,169,99,240,179,41,88,240,179,143,76,240,179,220,64,240,179,16,53,240,179,43,41,240,179,45,29,240,179,21,17,240,179,229,4,240,179,156,248,239,179,57,236,239,179,190,223,239,179,41,211,239,179,124,198,239,179,181,185,239,179,213,
172,239,179,221,159,239,179,203,146,239,179,161,133,239,179,94,120,239,179,1,107,239,179,140,93,239,179,254,79,239,179,87,66,239,179,151,52,239,179,190,38,239,179,204,24,239,179,194,10,239,179,158,252,238,179,98,238,238,179,13,224,238,179,159,209,238,179,24,195,238,179,121,180,238,179,193,165,238,179,240,150,238,179,6,136,238,179,4,121,238,179,232,105,238,179,181,90,238,179,104,75,238,179,3,60,238,179,133,44,238,179,238,28,238,179,63,13,238,179,119,253,237,179,151,237,237,179,158,221,237,179,140,
205,237,179,98,189,237,179,31,173,237,179,195,156,237,179,79,140,237,179,195,123,237,179,30,107,237,179,96,90,237,179,138,73,237,179,156,56,237,179,149,39,237,179,118,22,237,179,62,5,237,179,237,243,236,179,133,226,236,179,4,209,236,179,106,191,236,179,184,173,236,179,238,155,236,179,11,138,236,179,17,120,236,179,253,101,236,179,210,83,236,179,142,65,236,179,50,47,236,179,189,28,236,179,49,10,236,179,140,247,235,179,207,228,235,179,249,209,235,179,12,191,235,179,6,172,235,179,232,152,235,179,178,
133,235,179,100,114,235,179,253,94,235,179,127,75,235,179,232,55,235,179,58,36,235,179,115,16,235,179,148,252,234,179,157,232,234,179,142,212,234,179,104,192,234,179,41,172,234,179,210,151,234,179,99,131,234,179,220,110,234,179,61,90,234,179,134,69,234,179,184,48,234,179,209,27,234,179,211,6,234,179,188,241,233,179,142,220,233,179,72,199,233,179,234,177,233,179,117,156,233,179,231,134,233,179,66,113,233,179,133,91,233,179,176,69,233,179,195,47,233,179,191,25,233,179,163,3,233,179,111,237,232,179,
36,215,232,179,193,192,232,179,70,170,232,179,180,147,232,179,10,125,232,179,72,102,232,179,111,79,232,179,126,56,232,179,118,33,232,179,86,10,232,179,31,243,231,179,208,219,231,179,106,196,231,179,236,172,231,179,86,149,231,179,170,125,231,179,229,101,231,179,10,78,231,179,22,54,231,179,12,30,231,179,234,5,231,179,177,237,230,179,96,213,230,179,248,188,230,179,121,164,230,179,227,139,230,179,53,115,230,179,112,90,230,179,148,65,230,179,160,40,230,179,149,15,230,179,115,246,229,179,58,221,229,179,
234,195,229,179,130,170,229,179,4,145,229,179,110,119,229,179,193,93,229,179,253,67,229,179,34,42,229,179,48,16,229,179,39,246,228,179,7,220,228,179,208,193,228,179,130,167,228,179,29,141,228,179,161,114,228,179,14,88,228,179,100,61,228,179,163,34,228,179,203,7,228,179,221,236,227,179,215,209,227,179,187,182,227,179,136,155,227,179,62,128,227,179,221,100,227,179,102,73,227,179,216,45,227,179,51,18,227,179,119,246,226,179,165,218,226,179,188,190,226,179,188,162,226,179,166,134,226,179,121,106,226,
179,53,78,226,179,219,49,226,179,106,21,226,179,227,248,225,179,69,220,225,179,144,191,225,179,197,162,225,179,228,133,225,179,236,104,225,179,221,75,225,179,185,46,225,179,125,17,225,179,44,244,224,179,196,214,224,179,69,185,224,179,176,155,224,179,5,126,224,179,68,96,224,179,108,66,224,179,126,36,224,179,122,6,224,179,95,232,223,179,47,202,223,179,232,171,223,179,138,141,223,179,23,111,223,179,142,80,223,179,238,49,223,179,56,19,223,179,108,244,222,179,138,213,222,179,146,182,222,179,132,151,222,
179,96,120,222,179,38,89,222,179,214,57,222,179,112,26,222,179,244,250,221,179,98,219,221,179,186,187,221,179,252,155,221,179,41,124,221,179,63,92,221,179,64,60,221,179,43,28,221,179,0,252,220,179,191,219,220,179,104,187,220,179,252,154,220,179,122,122,220,179,226,89,220,179,53,57,220,179,114,24,220,179,153,247,219,179,171,214,219,179,167,181,219,179,141,148,219,179,94,115,219,179,25,82,219,179,191,48,219,179,79,15,219,179,202,237,218,179,47,204,218,179,127,170,218,179,185,136,218,179,222,102,218,
179,238,68,218,179,232,34,218,179,204,0,218,179,156,222,217,179,86,188,217,179,251,153,217,179,138,119,217,179,4,85,217,179,105,50,217,179,185,15,217,179,243,236,216,179,25,202,216,179,41,167,216,179,36,132,216,179,10,97,216,179,218,61,216,179,150,26,216,179,61,247,215,179,206,211,215,179,75,176,215,179,178,140,215,179,5,105,215,179,66,69,215,179,107,33,215,179,126,253,214,179,125,217,214,179,103,181,214,179,60,145,214,179,252,108,214,179,167,72,214,179,62,36,214,179,192,255,213,179,45,219,213,179,
133,182,213,179,200,145,213,179,247,108,213,179,17,72,213,179,22,35,213,179,7,254,212,179,227,216,212,179,171,179,212,179,94,142,212,179,252,104,212,179,134,67,212,179,251,29,212,179,92,248,211,179,168,210,211,179,224,172,211,179,4,135,211,179,19,97,211,179,13,59,211,179,244,20,211,179,197,238,210,179,131,200,210,179,44,162,210,179,193,123,210,179,66,85,210,179,174,46,210,179,6,8,210,179,74,225,209,179,122,186,209,179,150,147,209,179,157,108,209,179,145,69,209,179,112,30,209,179,59,247,208,179,242,
207,208,179,149,168,208,179,36,129,208,179,159,89,208,179,6,50,208,179,90,10,208,179,153,226,207,179,196,186,207,179,219,146,207,179,223,106,207,179,207,66,207,179,171,26,207,179,115,242,206,179,39,202,206,179,199,161,206,179,84,121,206,179,205,80,206,179,51,40,206,179,132,255,205,179,194,214,205,179,237,173,205,179,4,133,205,179,7,92,205,179,247,50,205,179,211,9,205,179,155,224,204,179,81,183,204,179,242,141,204,179,129,100,204,179,251,58,204,179,99,17,204,179,183,231,203,179,247,189,203,179,37,
148,203,179,63,106,203,179,69,64,203,179,57,22,203,179,25,236,202,179,230,193,202,179,159,151,202,179,70,109,202,179,217,66,202,179,90,24,202,179,199,237,201,179,33,195,201,179,104,152,201,179,156,109,201,179,188,66,201,179,202,23,201,179,197,236,200,179,173,193,200,179,130,150,200,179,68,107,200,179,243,63,200,179,144,20,200,179,25,233,199,179,144,189,199,179,244,145,199,179,69,102,199,179,131,58,199,179,175,14,199,179,200,226,198,179,206,182,198,179,194,138,198,179,162,94,198,179,113,50,198,179,
44,6,198,179,214,217,197,179,108,173,197,179,240,128,197,179,98,84,197,179,193,39,197,179,14,251,196,179,72,206,196,179,112,161,196,179,133,116,196,179,136,71,196,179,121,26,196,179,87,237,195,179,35,192,195,179,221,146,195,179,133,101,195,179,26,56,195,179,157,10,195,179,15,221,194,179,109,175,194,179,186,129,194,179,245,83,194,179,29,38,194,179,52,248,193,179,56,202,193,179,43,156,193,179,11,110,193,179,218,63,193,179,151,17,193,179,65,227,192,179,218,180,192,179,97,134,192,179,214,87,192,179,57,
41,192,179,139,250,191,179,203,203,191,179,249,156,191,179,21,110,191,179,32,63,191,179,24,16,191,179,0,225,190,179,213,177,190,179,153,130,190,179,76,83,190,179,237,35,190,179,124,244,189,179,250,196,189,179,102,149,189,179,193,101,189,179,11,54,189,179,67,6,189,179,106,214,188,179,127,166,188,179,131,118,188,179,118,70,188,179,87,22,188,179,39,230,187,179,230,181,187,179,148,133,187,179,49,85,187,179,188,36,187,179,54,244,186,179,159,195,186,179,247,146,186,179,62,98,186,179,116,49,186,179,153,
0,186,179,173,207,185,179,176,158,185,179,162,109,185,179,131,60,185,179,83,11,185,179,19,218,184,179,193,168,184,179,95,119,184,179,236,69,184,179,104,20,184,179,211,226,183,179,46,177,183,179,120,127,183,179,177,77,183,179,218,27,183,179,242,233,182,179,250,183,182,179,241,133,182,179,215,83,182,179,173,33,182,179,114,239,181,179,39,189,181,179,204,138,181,179,96,88,181,179,227,37,181,179,86,243,180,179,185,192,180,179,12,142,180,179,78,91,180,179,128,40,180,179,162,245,179,179,180,194,179,179,
181,143,179,179,167,92,179,179,136,41,179,179,89,246,178,179,26,195,178,179,202,143,178,179,107,92,178,179,252,40,178,179,125,245,177,179,238,193,177,179,79,142,177,179,160,90,177,179,225,38,177,179,18,243,176,179,52,191,176,179,69,139,176,179,71,87,176,179,57,35,176,179,28,239,175,179,238,186,175,179,177,134,175,179,101,82,175,179,8,30,175,179,157,233,174,179,33,181,174,179,150,128,174,179,252,75,174,179,82,23,174,179,152,226,173,179,207,173,173,179,247,120,173,179,15,68,173,179,24,15,173,179,17,
218,172,179,252,164,172,179,215,111,172,179,162,58,172,179,95,5,172,179,12,208,171,179,170,154,171,179,57,101,171,179,185,47,171,179,41,250,170,179,139,196,170,179,222,142,170,179,33,89,170,179,86,35,170,179,123,237,169,179,146,183,169,179,153,129,169,179,146,75,169,179,124,21,169,179,87,223,168,179,35,169,168,179,225,114,168,179,144,60,168,179,47,6,168,179,193,207,167,179,67,153,167,179,183,98,167,179,28,44,167,179,115,245,166,179,187,190,166,179,245,135,166,179,32,81,166,179,60,26,166,179,74,227,
165,179,74,172,165,179,59,117,165,179,30,62,165,179,242,6,165,179,184,207,164,179,112,152,164,179,26,97,164,179,181,41,164,179,66,242,163,179,193,186,163,179,49,131,163,179,148,75,163,179,232,19,163,179,46,220,162,179,102,164,162,179,145,108,162,179,173,52,162,179,187,252,161,179,187,196,161,179,173,140,161,179,146,84,161,179,104,28,161,179,49,228,160,179,235,171,160,179,152,115,160,179,56,59,160,179,201,2,160,179,77,202,159,179,195,145,159,179,43,89,159,179,134,32,159,179,211,231,158,179,18,175,
158,179,68,118,158,179,105,61,158,179,128,4,158,179,137,203,157,179,133,146,157,179,116,89,157,179,85,32,157,179,41,231,156,179,240,173,156,179,169,116,156,179,85,59,156,179,243,1,156,179,133,200,155,179,9,143,155,179,128,85,155,179,234,27,155,179,71,226,154,179,150,168,154,179,217,110,154,179,15,53,154,179,55,251,153,179,83,193,153,179,98,135,153,179,99,77,153,179,88,19,153,179,64,217,152,179,27,159,152,179,234,100,152,179,171,42,152,179,96,240,151,179,8,182,151,179,163,123,151,179,50,65,151,179,
180,6,151,179,41,204,150,179,146,145,150,179,238,86,150,179,62,28,150,179,129,225,149,179,184,166,149,179,226,107,149,179,0,49,149,179,17,246,148,179,22,187,148,179,15,128,148,179,251,68,148,179,219,9,148,179,175,206,147,179,118,147,147,179,50,88,147,179,225,28,147,179,132,225,146,179,27,166,146,179,166,106,146,179,36,47,146,179,151,243,145,179,254,183,145,179,89,124,145,179,167,64,145,179,234,4,145,179,33,201,144,179,76,141,144,179,108,81,144,179,127,21,144,179,135,217,143,179,131,157,143,179,115,
97,143,179,87,37,143,179,48,233,142,179,253,172,142,179,191,112,142,179,117,52,142,179,31,248,141,179,190,187,141,179,81,127,141,179,217,66,141,179,85,6,141,179,198,201,140,179,44,141,140,179,134,80,140,179,213,19,140,179,25,215,139,179,81,154,139,179,126,93,139,179,160,32,139,179,183,227,138,179,194,166,138,179,195,105,138,179,184,44,138,179,162,239,137,179,129,178,137,179,85,117,137,179,31,56,137,179,221,250,136,179,144,189,136,179,56,128,136,179,214,66,136,179,104,5,136,179,240,199,135,179,109,
138,135,179,223,76,135,179,71,15,135,179,164,209,134,179,246,147,134,179,61,86,134,179,122,24,134,179,172,218,133,179,212,156,133,179,241,94,133,179,3,33,133,179,12,227,132,179,9,165,132,179,253,102,132,179,229,40,132,179,196,234,131,179,152,172,131,179,98,110,131,179,34,48,131,179,215,241,130,179,130,179,130,179,35,117,130,179,186,54,130,179,70,248,129,179,201,185,129,179,65,123,129,179,176,60,129,179,20,254,128,179,110,191,128,179,191,128,128,179,5,66,128,179,66,3,128,179,233,136,127,179,59,11,
127,179,121,141,126,179,164,15,126,179,187,145,125,179,190,19,125,179,174,149,124,179,139,23,124,179,85,153,123,179,11,27,123,179,174,156,122,179,62,30,122,179,187,159,121,179,37,33,121,179,124,162,120,179,192,35,120,179,241,164,119,179,16,38,119,179,28,167,118,179,21,40,118,179,251,168,117,179,207,41,117,179,145,170,116,179,64,43,116,179,221,171,115,179,103,44,115,179,224,172,114,179,70,45,114,179,154,173,113,179,219,45,113,179,11,174,112,179,41,46,112,179,53,174,111,179,47,46,111,179,24,174,110,
179,238,45,110,179,179,173,109,179,103,45,109,179,9,173,108,179,153,44,108,179,24,172,107,179,133,43,107,179,226,170,106,179,45,42,106,179,102,169,105,179,143,40,105,179,167,167,104,179,173,38,104,179,163,165,103,179,136,36,103,179,91,163,102,179,31,34,102,179,209,160,101,179,115,31,101,179,4,158,100,179,132,28,100,179,244,154,99,179,84,25,99,179,163,151,98,179,226,21,98,179,17,148,97,179,47,18,97,179,61,144,96,179,60,14,96,179,42,140,95,179,8,10,95,179,214,135,94,179,149,5,94,179,68,131,93,179,227,
0,93,179,114,126,92,179,242,251,91,179,98,121,91,179,194,246,90,179,20,116,90,179,85,241,89,179,136,110,89,179,171,235,88,179,191,104,88,179,196,229,87,179,186,98,87,179,161,223,86,179,121,92,86,179,66,217,85,179,252,85,85,179,167,210,84,179,68,79,84,179,209,203,83,179,81,72,83,179,194,196,82,179,36,65,82,179,120,189,81,179,189,57,81,179,244,181,80,179,29,50,80,179,56,174,79,179,68,42,79,179,67,166,78,179,51,34,78,179,22,158,77,179,234,25,77,179,177,149,76,179,106,17,76,179,21,141,75,179,179,8,75,
179,67,132,74,179,197,255,73,179,58,123,73,179,161,246,72,179,251,113,72,179,72,237,71,179,136,104,71,179,186,227,70,179,223,94,70,179,247,217,69,179,3,85,69,179,1,208,68,179,242,74,68,179,214,197,67,179,174,64,67,179,121,187,66,179,55,54,66,179,233,176,65,179,142,43,65,179,39,166,64,179,179,32,64,179,51,155,63,179,167,21,63,179,14,144,62,179,105,10,62,179,184,132,61,179,251,254,60,179,50,121,60,179,93,243,59,179,124,109,59,179,143,231,58,179,151,97,58,179,146,219,57,179,131,85,57,179,103,207,56,
179,64,73,56,179,14,195,55,179,208,60,55,179,135,182,54,179,50,48,54,179,210,169,53,179,103,35,53,179,241,156,52,179,112,22,52,179,228,143,51,179,77,9,51,179,171,130,50,179,254,251,49,179,71,117,49,179,132,238,48,179,184,103,48,179,224,224,47,179,254,89,47,179,18,211,46,179,27,76,46,179,26,197,45,179,14,62,45,179,248,182,44,179,217,47,44,179,175,168,43,179,122,33,43,179,60,154,42,179,245,18,42,179,163,139,41,179,71,4,41,179,226,124,40,179,115,245,39,179,250,109,39,179,120,230,38,179,236,94,38,179,
87,215,37,179,184,79,37,179,16,200,36,179,95,64,36,179,164,184,35,179,225,48,35,179,20,169,34,179,62,33,34,179,95,153,33,179,120,17,33,179,135,137,32,179,142,1,32,179,140,121,31,179,129,241,30,179,110,105,30,179,82,225,29,179,45,89,29,179,1,209,28,179,203,72,28,179,142,192,27,179,72,56,27,179,250,175,26,179,164,39,26,179,69,159,25,179,223,22,25,179,113,142,24,179,251,5,24,179,125,125,23,179,247,244,22,179,105,108,22,179,212,227,21,179,55,91,21,179,147,210,20,179,231,73,20,179,52,193,19,179,121,56,
19,179,183,175,18,179,238,38,18,179,29,158,17,179,70,21,17,179,103,140,16,179,129,3,16,179,149,122,15,179,161,241,14,179,167,104,14,179,166,223,13,179,158,86,13,179,143,205,12,179,122,68,12,179,94,187,11,179,60,50,11,179,20,169,10,179,229,31,10,179,176,150,9,179,116,13,9,179,50,132,8,179,235,250,7,179,157,113,7,179,73,232,6,179,239,94,6,179,143,213,5,179,42,76,5,179,191,194,4,179,78,57,4,179,215,175,3,179,91,38,3,179,217,156,2,179,82,19,2,179,197,137,1,179,51,0,1,179,156,118,0,179,254,217,255,178,
187,198,254,178,109,179,253,178,21,160,252,178,179,140,251,178,72,121,250,178,210,101,249,178,83,82,248,178,203,62,247,178,57,43,246,178,157,23,245,178,249,3,244,178,75,240,242,178,149,220,241,178,214,200,240,178,14,181,239,178,61,161,238,178,100,141,237,178,131,121,236,178,153,101,235,178,168,81,234,178,174,61,233,178,172,41,232,178,163,21,231,178,146,1,230,178,122,237,228,178,90,217,227,178,51,197,226,178,5,177,225,178,208,156,224,178,148,136,223,178,81,116,222,178,7,96,221,178,183,75,220,178,96,
55,219,178,3,35,218,178,160,14,217,178,55,250,215,178,199,229,214,178,82,209,213,178,215,188,212,178,87,168,211,178,209,147,210,178,70,127,209,178,181,106,208,178,31,86,207,178,132,65,206,178,229,44,205,178,64,24,204,178,151,3,203,178,233,238,201,178,55,218,200,178,128,197,199,178,198,176,198,178,7,156,197,178,68,135,196,178,125,114,195,178,179,93,194,178,229,72,193,178,19,52,192,178,62,31,191,178,102,10,190,178,139,245,188,178,173,224,187,178,203,203,186,178,231,182,185,178,1,162,184,178,23,141,
183,178,44,120,182,178,61,99,181,178,77,78,180,178,91,57,179,178,102,36,178,178,112,15,177,178,120,250,175,178,127,229,174,178,132,208,173,178,135,187,172,178,138,166,171,178,139,145,170,178,139,124,169,178,138,103,168,178,136,82,167,178,134,61,166,178,131,40,165,178,128,19,164,178,124,254,162,178,120,233,161,178,116,212,160,178,112,191,159,178,108,170,158,178,105,149,157,178,101,128,156,178,99,107,155,178,96,86,154,178,95,65,153,178,94,44,152,178,95,23,151,178,96,2,150,178,99,237,148,178,103,216,
147,178,108,195,146,178,115,174,145,178,123,153,144,178,133,132,143,178,145,111,142,178,160,90,141,178,176,69,140,178,194,48,139,178,215,27,138,178,238,6,137,178,8,242,135,178,37,221,134,178,68,200,133,178,102,179,132,178,140,158,131,178,180,137,130,178,224,116,129,178,15,96,128,178,131,150,126,178,239,108,124,178,99,67,122,178,223,25,120,178,99,240,117,178,239,198,115,178,131,157,113,178,32,116,111,178,197,74,109,178,116,33,107,178,44,248,104,178,238,206,102,178,185,165,100,178,143,124,98,178,111,
83,96,178,89,42,94,178,78,1,92,178,77,216,89,178,88,175,87,178,111,134,85,178,145,93,83,178,191,52,81,178,249,11,79,178,63,227,76,178,146,186,74,178,242,145,72,178,94,105,70,178,216,64,68,178,96,24,66,178,245,239,63,178,152,199,61,178,73,159,59,178,9,119,57,178,215,78,55,178,180,38,53,178,160,254,50,178,156,214,48,178,167,174,46,178,193,134,44,178,236,94,42,178,39,55,40,178,114,15,38,178,206,231,35,178,59,192,33,178,186,152,31,178,73,113,29,178,234,73,27,178,157,34,25,178,98,251,22,178,57,212,20,
178,35,173,18,178,31,134,16,178,47,95,14,178,82,56,12,178,136,17,10,178,209,234,7,178,47,196,5,178,161,157,3,178,39,119,1,178,130,161,254,177,225,84,250,177,105,8,246,177,29,188,241,177,251,111,237,177,4,36,233,177,57,216,228,177,155,140,224,177,41,65,220,177,229,245,215,177,206,170,211,177,229,95,207,177,43,21,203,177,159,202,198,177,68,128,194,177,24,54,190,177,28,236,185,177,81,162,181,177,184,88,177,177,80,15,173,177,27,198,168,177,24,125,164,177,72,52,160,177,171,235,155,177,67,163,151,177,14,
91,147,177,15,19,143,177,69,203,138,177,177,131,134,177,83,60,130,177,87,234,123,177,119,92,115,177,5,207,106,177,4,66,98,177,115,181,89,177,85,41,81,177,169,157,72,177,112,18,64,177,172,135,55,177,93,253,46,177,133,115,38,177,36,234,29,177,58,97,21,177,202,216,12,177,212,80,4,177,175,146,247,176,175,132,230,176,168,119,213,176,155,107,196,176,139,96,179,176,121,86,162,176,103,77,145,176,88,69,128,176,151,124,94,176,137,112,60,176,138,102,26,176,58,189,240,175,139,177,172,175,28,84,81,175,39,155,
146,174,209,193,122,46,237,165,70,47,101,73,167,47,126,59,235,47,157,148,23,48,73,137,57,48,193,123,91,48,255,107,125,48,0,173,143,48,225,162,160,48,161,151,177,48,61,139,194,48,179,125,211,48,3,111,228,48,42,95,245,48,19,39,3,49,251,157,11,49,76,20,20,49,6,138,28,49,38,255,36,49,173,115,45,49,153,231,53,49,234,90,62,49,159,205,70,49,182,63,79,49,48,177,87,49,11,34,96,49,70,146,104,49,224,1,113,49,217,112,121,49,152,239,128,49,113,38,133,49,249,92,137,49,46,147,141,49,16,201,145,49,159,254,149,49,
218,51,154,49,193,104,158,49,83,157,162,49,144,209,166,49,120,5,171,49,10,57,175,49,69,108,179,49,41,159,183,49,182,209,187,49,236,3,192,49,201,53,196,49,78,103,200,49,122,152,204,49,76,201,208,49,197,249,212,49,227,41,217,49,167,89,221,49,16,137,225,49,29,184,229,49,206,230,233,49,34,21,238,49,26,67,242,49,180,112,246,49,241,157,250,49,208,202,254,49,168,123,1,50,184,145,3,50,153,167,5,50,74,189,7,50,203,210,9,50,27,232,11,50,59,253,13,50,42,18,16,50,233,38,18,50,118,59,20,50,209,79,22,50,251,99,
24,50,243,119,26,50,185,139,28,50,77,159,30,50,174,178,32,50,221,197,34,50,217,216,36,50,161,235,38,50,54,254,40,50,152,16,43,50,198,34,45,50,192,52,47,50,134,70,49,50,24,88,51,50,117,105,53,50,157,122,55,50,144,139,57,50,78,156,59,50,215,172,61,50,42,189,63,50,71,205,65,50,46,221,67,50,223,236,69,50,89,252,71,50,157,11,74,50,169,26,76,50,127,41,78,50,29,56,80,50,132,70,82,50,179,84,84,50,170,98,86,50,105,112,88,50,240,125,90,50,62,139,92,50,84,152,94,50,48,165,96,50,211,177,98,50,61,190,100,50,109,
202,102,50,100,214,104,50,32,226,106,50,163,237,108,50,234,248,110,50,248,3,113,50,202,14,115,50,97,25,117,50,190,35,119,50,222,45,121,50,195,55,123,50,108,65,125,50,217,74,127,50,5,170,128,50,127,174,129,50,219,178,130,50,25,183,131,50,55,187,132,50,56,191,133,50,25,195,134,50,220,198,135,50,127,202,136,50,4,206,137,50,105,209,138,50,175,212,139,50,214,215,140,50,222,218,141,50,197,221,142,50,142,224,143,50,54,227,144,50,190,229,145,50,39,232,146,50,111,234,147,50,152,236,148,50,160,238,149,50,135,
240,150,50,79,242,151,50,245,243,152,50,123,245,153,50,224,246,154,50,37,248,155,50,72,249,156,50,74,250,157,50,43,251,158,50,235,251,159,50,137,252,160,50,6,253,161,50,98,253,162,50,155,253,163,50,179,253,164,50,169,253,165,50,125,253,166,50,47,253,167,50,191,252,168,50,44,252,169,50,120,251,170,50,160,250,171,50,166,249,172,50,138,248,173,50,74,247,174,50,232,245,175,50,99,244,176,50,187,242,177,50,239,240,178,50,1,239,179,50,239,236,180,50,185,234,181,50,96,232,182,50,227,229,183,50,67,227,184,
50],"i8",4,y.a+1372160);
Q([126,224,185,50,150,221,186,50,138,218,187,50,89,215,188,50,5,212,189,50,140,208,190,50,238,204,191,50,44,201,192,50,69,197,193,50,58,193,194,50,10,189,195,50,181,184,196,50,58,180,197,50,155,175,198,50,215,170,199,50,237,165,200,50,221,160,201,50,169,155,202,50,78,150,203,50,206,144,204,50,40,139,205,50,93,133,206,50,107,127,207,50,83,121,208,50,21,115,209,50,177,108,210,50,38,102,211,50,117,95,212,50,157,88,213,50,159,81,214,50,122,74,215,50,46,67,216,50,187,59,217,50,33,52,218,50,96,44,219,50,
119,36,220,50,104,28,221,50,49,20,222,50,210,11,223,50,76,3,224,50,158,250,224,50,200,241,225,50,203,232,226,50,165,223,227,50,87,214,228,50,225,204,229,50,67,195,230,50,125,185,231,50,142,175,232,50,118,165,233,50,54,155,234,50,205,144,235,50,60,134,236,50,129,123,237,50,157,112,238,50,144,101,239,50,90,90,240,50,251,78,241,50,114,67,242,50,192,55,243,50,228,43,244,50,223,31,245,50,176,19,246,50,86,7,247,50,211,250,247,50,38,238,248,50,79,225,249,50,78,212,250,50,34,199,251,50,204,185,252,50,75,
172,253,50,160,158,254,50,202,144,255,50,101,65,0,51,79,186,0,51,35,51,1,51,227,171,1,51,140,36,2,51,32,157,2,51,159,21,3,51,7,142,3,51,90,6,4,51,151,126,4,51,190,246,4,51,208,110,5,51,203,230,5,51,176,94,6,51,128,214,6,51,57,78,7,51,220,197,7,51,105,61,8,51,224,180,8,51,65,44,9,51,139,163,9,51,191,26,10,51,221,145,10,51,228,8,11,51,212,127,11,51,175,246,11,51,114,109,12,51,31,228,12,51,181,90,13,51,53,209,13,51,158,71,14,51,240,189,14,51,43,52,15,51,80,170,15,51,93,32,16,51,84,150,16,51,51,12,17,
51,251,129,17,51,173,247,17,51,71,109,18,51,202,226,18,51,54,88,19,51,138,205,19,51,200,66,20,51,237,183,20,51,252,44,21,51,243,161,21,51,210,22,22,51,154,139,22,51,75,0,23,51,227,116,23,51,101,233,23,51,206,93,24,51,32,210,24,51,89,70,25,51,124,186,25,51,134,46,26,51,120,162,26,51,82,22,27,51,20,138,27,51,191,253,27,51,81,113,28,51,203,228,28,51,44,88,29,51,118,203,29,51,167,62,30,51,192,177,30,51,193,36,31,51,169,151,31,51,121,10,32,51,48,125,32,51,207,239,32,51,85,98,33,51,195,212,33,51,24,71,
34,51,84,185,34,51,120,43,35,51,131,157,35,51,117,15,36,51,78,129,36,51,14,243,36,51,182,100,37,51,68,214,37,51,185,71,38,51,21,185,38,51,89,42,39,51,131,155,39,51,147,12,40,51,139,125,40,51,105,238,40,51,46,95,41,51,218,207,41,51,108,64,42,51,229,176,42,51,68,33,43,51,138,145,43,51,182,1,44,51,201,113,44,51,194,225,44,51,161,81,45,51,102,193,45,51,18,49,46,51,164,160,46,51,28,16,47,51,123,127,47,51,191,238,47,51,233,93,48,51,250,204,48,51,240,59,49,51,204,170,49,51,142,25,50,51,54,136,50,51,196,
246,50,51,55,101,51,51,144,211,51,51,207,65,52,51,243,175,52,51,253,29,53,51,237,139,53,51,194,249,53,51,125,103,54,51,29,213,54,51,162,66,55,51,13,176,55,51,93,29,56,51,146,138,56,51,172,247,56,51,172,100,57,51,145,209,57,51,91,62,58,51,10,171,58,51,158,23,59,51,23,132,59,51,117,240,59,51,184,92,60,51,224,200,60,51,237,52,61,51,222,160,61,51,180,12,62,51,111,120,62,51,15,228,62,51,147,79,63,51,252,186,63,51,73,38,64,51,123,145,64,51,146,252,64,51,141,103,65,51,108,210,65,51,48,61,66,51,216,167,66,
51,100,18,67,51,213,124,67,51,42,231,67,51,99,81,68,51,128,187,68,51,129,37,69,51,103,143,69,51,48,249,69,51,221,98,70,51,111,204,70,51,228,53,71,51,61,159,71,51,122,8,72,51,155,113,72,51,159,218,72,51,136,67,73,51,84,172,73,51,3,21,74,51,151,125,74,51,14,230,74,51,104,78,75,51,166,182,75,51,199,30,76,51,204,134,76,51,180,238,76,51,128,86,77,51,47,190,77,51,193,37,78,51,55,141,78,51,143,244,78,51,203,91,79,51,234,194,79,51,236,41,80,51,210,144,80,51,154,247,80,51,69,94,81,51,211,196,81,51,68,43,82,
51,152,145,82,51,207,247,82,51,233,93,83,51,229,195,83,51,197,41,84,51,134,143,84,51,43,245,84,51,178,90,85,51,28,192,85,51,105,37,86,51,152,138,86,51,169,239,86,51,157,84,87,51,115,185,87,51,44,30,88,51,199,130,88,51,68,231,88,51,164,75,89,51,230,175,89,51,10,20,90,51,17,120,90,51,249,219,90,51,196,63,91,51,112,163,91,51,255,6,92,51,112,106,92,51,195,205,92,51,247,48,93,51,14,148,93,51,6,247,93,51,225,89,94,51,157,188,94,51,58,31,95,51,186,129,95,51,27,228,95,51,94,70,96,51,131,168,96,51,137,10,
97,51,113,108,97,51,58,206,97,51,229,47,98,51,113,145,98,51,223,242,98,51,46,84,99,51,94,181,99,51,112,22,100,51,99,119,100,51,55,216,100,51,237,56,101,51,131,153,101,51,251,249,101,51,84,90,102,51,143,186,102,51,170,26,103,51,166,122,103,51,131,218,103,51,65,58,104,51,224,153,104,51,96,249,104,51,193,88,105,51,3,184,105,51,38,23,106,51,41,118,106,51,13,213,106,51,210,51,107,51,119,146,107,51,253,240,107,51,100,79,108,51,171,173,108,51,211,11,109,51,219,105,109,51,196,199,109,51,141,37,110,51,55,
131,110,51,193,224,110,51,43,62,111,51,118,155,111,51,161,248,111,51,172,85,112,51,151,178,112,51,99,15,113,51,15,108,113,51,155,200,113,51,7,37,114,51,83,129,114,51,127,221,114,51,139,57,115,51,120,149,115,51,68,241,115,51,240,76,116,51,124,168,116,51,232,3,117,51,51,95,117,51,95,186,117,51,106,21,118,51,85,112,118,51,31,203,118,51,202,37,119,51,84,128,119,51,189,218,119,51,6,53,120,51,47,143,120,51,55,233,120,51,31,67,121,51,230,156,121,51,141,246,121,51,18,80,122,51,120,169,122,51,189,2,123,51,
225,91,123,51,228,180,123,51,198,13,124,51,136,102,124,51,41,191,124,51,169,23,125,51,9,112,125,51,71,200,125,51,101,32,126,51,97,120,126,51,61,208,126,51,247,39,127,51,145,127,127,51,9,215,127,51,48,23,128,51,203,66,128,51,86,110,128,51,208,153,128,51,57,197,128,51,146,240,128,51,218,27,129,51,18,71,129,51,56,114,129,51,79,157,129,51,84,200,129,51,73,243,129,51,45,30,130,51,0,73,130,51,195,115,130,51,116,158,130,51,21,201,130,51,166,243,130,51,37,30,131,51,148,72,131,51,241,114,131,51,62,157,131,
51,122,199,131,51,166,241,131,51,192,27,132,51,201,69,132,51,194,111,132,51,170,153,132,51,128,195,132,51,70,237,132,51,251,22,133,51,159,64,133,51,49,106,133,51,179,147,133,51,36,189,133,51,132,230,133,51,210,15,134,51,16,57,134,51,61,98,134,51,88,139,134,51,99,180,134,51,92,221,134,51,68,6,135,51,27,47,135,51,225,87,135,51,150,128,135,51,57,169,135,51,204,209,135,51,77,250,135,51,189,34,136,51,28,75,136,51,105,115,136,51,165,155,136,51,208,195,136,51,234,235,136,51,243,19,137,51,234,59,137,51,208,
99,137,51,164,139,137,51,103,179,137,51,25,219,137,51,185,2,138,51,73,42,138,51,198,81,138,51,50,121,138,51,141,160,138,51,215,199,138,51,15,239,138,51,53,22,139,51,74,61,139,51,78,100,139,51,64,139,139,51,33,178,139,51,240,216,139,51,174,255,139,51,90,38,140,51,244,76,140,51,125,115,140,51,245,153,140,51,90,192,140,51,175,230,140,51,241,12,141,51,34,51,141,51,66,89,141,51,79,127,141,51,75,165,141,51,54,203,141,51,15,241,141,51,214,22,142,51,139,60,142,51,47,98,142,51,193,135,142,51,65,173,142,51,
175,210,142,51,12,248,142,51,87,29,143,51,144,66,143,51,183,103,143,51,205,140,143,51,209,177,143,51,195,214,143,51,163,251,143,51,113,32,144,51,45,69,144,51,216,105,144,51,113,142,144,51,247,178,144,51,108,215,144,51,207,251,144,51,32,32,145,51,95,68,145,51,140,104,145,51,168,140,145,51,177,176,145,51,168,212,145,51,141,248,145,51,97,28,146,51,34,64,146,51,209,99,146,51,110,135,146,51,249,170,146,51,115,206,146,51,218,241,146,51,47,21,147,51,114,56,147,51,162,91,147,51,193,126,147,51,206,161,147,
51,200,196,147,51,176,231,147,51,135,10,148,51,75,45,148,51,252,79,148,51,156,114,148,51,42,149,148,51,165,183,148,51,14,218,148,51,101,252,148,51,170,30,149,51,220,64,149,51,252,98,149,51,10,133,149,51,6,167,149,51,239,200,149,51,198,234,149,51,139,12,150,51,62,46,150,51,222,79,150,51,108,113,150,51,231,146,150,51,81,180,150,51,168,213,150,51,236,246,150,51,30,24,151,51,62,57,151,51,75,90,151,51,70,123,151,51,47,156,151,51,5,189,151,51,201,221,151,51,122,254,151,51,25,31,152,51,165,63,152,51,31,
96,152,51,135,128,152,51,220,160,152,51,30,193,152,51,78,225,152,51,107,1,153,51,118,33,153,51,111,65,153,51,85,97,153,51,40,129,153,51,233,160,153,51,151,192,153,51,51,224,153,51,188,255,153,51,50,31,154,51,150,62,154,51,232,93,154,51,38,125,154,51,82,156,154,51,108,187,154,51,115,218,154,51,103,249,154,51,72,24,155,51,23,55,155,51,211,85,155,51,125,116,155,51,19,147,155,51,152,177,155,51,9,208,155,51,104,238,155,51,180,12,156,51,237,42,156,51,19,73,156,51,39,103,156,51,40,133,156,51,22,163,156,
51,242,192,156,51,186,222,156,51,112,252,156,51,19,26,157,51,164,55,157,51,33,85,157,51,140,114,157,51,228,143,157,51,41,173,157,51,91,202,157,51,122,231,157,51,134,4,158,51,128,33,158,51,103,62,158,51,59,91,158,51,252,119,158,51,170,148,158,51,69,177,158,51,205,205,158,51,66,234,158,51,165,6,159,51,244,34,159,51,49,63,159,51,91,91,159,51,113,119,159,51,117,147,159,51,102,175,159,51,67,203,159,51,14,231,159,51,198,2,160,51,107,30,160,51,253,57,160,51,123,85,160,51,231,112,160,51,64,140,160,51,134,
167,160,51,184,194,160,51,216,221,160,51,229,248,160,51,222,19,161,51,197,46,161,51,152,73,161,51,89,100,161,51,6,127,161,51,160,153,161,51,39,180,161,51,155,206,161,51,252,232,161,51,74,3,162,51,133,29,162,51,172,55,162,51,192,81,162,51,194,107,162,51,176,133,162,51,139,159,162,51,83,185,162,51,7,211,162,51,169,236,162,51,55,6,163,51,178,31,163,51,26,57,163,51,111,82,163,51,176,107,163,51,223,132,163,51,250,157,163,51,2,183,163,51,246,207,163,51,216,232,163,51,166,1,164,51,97,26,164,51,9,51,164,
51,157,75,164,51,31,100,164,51,141,124,164,51,231,148,164,51,47,173,164,51,99,197,164,51,132,221,164,51,145,245,164,51,140,13,165,51,115,37,165,51,70,61,165,51,7,85,165,51,180,108,165,51,78,132,165,51,212,155,165,51,71,179,165,51,167,202,165,51,243,225,165,51,44,249,165,51,82,16,166,51,100,39,166,51,99,62,166,51,79,85,166,51,39,108,166,51,236,130,166,51,158,153,166,51,60,176,166,51,199,198,166,51,62,221,166,51,162,243,166,51,243,9,167,51,48,32,167,51,89,54,167,51,112,76,167,51,115,98,167,51,98,120,
167,51,62,142,167,51,7,164,167,51,188,185,167,51,94,207,167,51,236,228,167,51,103,250,167,51,206,15,168,51,34,37,168,51,98,58,168,51,143,79,168,51,169,100,168,51,175,121,168,51,161,142,168,51,129,163,168,51,76,184,168,51,4,205,168,51,169,225,168,51,58,246,168,51,183,10,169,51,34,31,169,51,120,51,169,51,187,71,169,51,235,91,169,51,7,112,169,51,15,132,169,51,4,152,169,51,230,171,169,51,179,191,169,51,110,211,169,51,21,231,169,51,168,250,169,51,40,14,170,51,148,33,170,51,236,52,170,51,49,72,170,51,99,
91,170,51,129,110,170,51,139,129,170,51,130,148,170,51,101,167,170,51,53,186,170,51,241,204,170,51,153,223,170,51,46,242,170,51,175,4,171,51,29,23,171,51,119,41,171,51,190,59,171,51,240,77,171,51,16,96,171,51,27,114,171,51,19,132,171,51,248,149,171,51,201,167,171,51,134,185,171,51,47,203,171,51,197,220,171,51,72,238,171,51,182,255,171,51,18,17,172,51,89,34,172,51,141,51,172,51,173,68,172,51,185,85,172,51,178,102,172,51,152,119,172,51,105,136,172,51,39,153,172,51,209,169,172,51,104,186,172,51,235,
202,172,51,90,219,172,51,182,235,172,51,254,251,172,51,50,12,173,51,83,28,173,51,96,44,173,51,89,60,173,51,63,76,173,51,17,92,173,51,207,107,173,51,122,123,173,51,17,139,173,51,148,154,173,51,4,170,173,51,96,185,173,51,168,200,173,51,221,215,173,51,253,230,173,51,11,246,173,51,4,5,174,51,234,19,174,51,188,34,174,51,122,49,174,51,37,64,174,51,188,78,174,51,63,93,174,51,175,107,174,51,11,122,174,51,83,136,174,51,136,150,174,51,168,164,174,51,181,178,174,51,175,192,174,51,149,206,174,51,103,220,174,
51,37,234,174,51,207,247,174,51,102,5,175,51,233,18,175,51,89,32,175,51,180,45,175,51,252,58,175,51,49,72,175,51,81,85,175,51,94,98,175,51,87,111,175,51,61,124,175,51,14,137,175,51,204,149,175,51,119,162,175,51,13,175,175,51,144,187,175,51,255,199,175,51,91,212,175,51,162,224,175,51,214,236,175,51,246,248,175,51,3,5,176,51,252,16,176,51,225,28,176,51,178,40,176,51,112,52,176,51,26,64,176,51,176,75,176,51,50,87,176,51,161,98,176,51,252,109,176,51,67,121,176,51,119,132,176,51,151,143,176,51,163,154,
176,51,155,165,176,51,128,176,176,51,81,187,176,51,14,198,176,51,184,208,176,51,78,219,176,51,208,229,176,51,62,240,176,51,153,250,176,51,224,4,177,51,19,15,177,51,51,25,177,51,63,35,177,51,55,45,177,51,27,55,177,51,236,64,177,51,169,74,177,51,82,84,177,51,232,93,177,51,106,103,177,51,216,112,177,51,50,122,177,51,121,131,177,51,172,140,177,51,203,149,177,51,215,158,177,51,207,167,177,51,179,176,177,51,132,185,177,51,64,194,177,51,234,202,177,51,127,211,177,51,1,220,177,51,111,228,177,51,201,236,177,
51,16,245,177,51,67,253,177,51,98,5,178,51,110,13,178,51,102,21,178,51,74,29,178,51,27,37,178,51,215,44,178,51,129,52,178,51,22,60,178,51,152,67,178,51,6,75,178,51,97,82,178,51,168,89,178,51,219,96,178,51,250,103,178,51,6,111,178,51,255,117,178,51,227,124,178,51,180,131,178,51,113,138,178,51,27,145,178,51,177,151,178,51,51,158,178,51,162,164,178,51,253,170,178,51,68,177,178,51,120,183,178,51,152,189,178,51,164,195,178,51,157,201,178,51,130,207,178,51,84,213,178,51,18,219,178,51,188,224,178,51,83,
230,178,51,214,235,178,51,69,241,178,51,161,246,178,51,234,251,178,51,30,1,179,51,63,6,179,51,77,11,179,51,71,16,179,51,45,21,179,51,255,25,179,51,191,30,179,51,106,35,179,51,2,40,179,51,134,44,179,51,247,48,179,51,84,53,179,51,158,57,179,51,212,61,179,51,246,65,179,51,5,70,179,51,0,74,179,51,232,77,179,51,188,81,179,51,125,85,179,51,42,89,179,51,196,92,179,51,74,96,179,51,188,99,179,51,27,103,179,51,103,106,179,51,159,109,179,51,195,112,179,51,212,115,179,51,209,118,179,51,187,121,179,51,146,124,
179,51,85,127,179,51,4,130,179,51,160,132,179,51,40,135,179,51,157,137,179,51,254,139,179,51,76,142,179,51,135,144,179,51,174,146,179,51,193,148,179,51,193,150,179,51,174,152,179,51,135,154,179,51,77,156,179,51,255,157,179,51,158,159,179,51,41,161,179,51,161,162,179,51,5,164,179,51,86,165,179,51,148,166,179,51,190,167,179,51,213,168,179,51,216,169,179,51,200,170,179,51,165,171,179,51,110,172,179,51,36,173,179,51,198,173,179,51,85,174,179,51,209,174,179,51,57,175,179,51,142,175,179,51,208,175,179,
51,254,175,179,51,25,176,179,51,32,176,179,51,20,176,179,51,245,175,179,51,194,175,179,51,124,175,179,51,35,175,179,51,183,174,179,51,55,174,179,51,164,173,179,51,253,172,179,51,68,172,179,51,118,171,179,51,150,170,179,51,163,169,179,51,156,168,179,51,129,167,179,51,84,166,179,51,19,165,179,51,191,163,179,51,88,162,179,51,222,160,179,51,80,159,179,51,175,157,179,51,251,155,179,51,51,154,179,51,89,152,179,51,107,150,179,51,106,148,179,51,86,146,179,51,46,144,179,51,244,141,179,51,166,139,179,51,69,
137,179,51,209,134,179,51,74,132,179,51,175,129,179,51,1,127,179,51,65,124,179,51,109,121,179,51,134,118,179,51,139,115,179,51,126,112,179,51,94,109,179,51,42,106,179,51,227,102,179,51,138,99,179,51,29,96,179,51,157,92,179,51,10,89,179,51,100,85,179,51,171,81,179,51,222,77,179,51,255,73,179,51,13,70,179,51,7,66,179,51,239,61,179,51,195,57,179,51,133,53,179,51,52,49,179,51,207,44,179,51,88,40,179,51,205,35,179,51,48,31,179,51,127,26,179,51,188,21,179,51,229,16,179,51,252,11,179,51,255,6,179,51,240,
1,179,51,206,252,178,51,153,247,178,51,81,242,178,51,246,236,178,51,136,231,178,51,7,226,178,51,115,220,178,51,204,214,178,51,19,209,178,51,70,203,178,51,103,197,178,51,117,191,178,51,112,185,178,51,88,179,178,51,45,173,178,51,240,166,178,51,160,160,178,51,60,154,178,51,198,147,178,51,62,141,178,51,162,134,178,51,244,127,178,51,50,121,178,51,94,114,178,51,120,107,178,51,126,100,178,51,114,93,178,51,83,86,178,51,33,79,178,51,221,71,178,51,134,64,178,51,28,57,178,51,159,49,178,51,16,42,178,51,110,34,
178,51,185,26,178,51,242,18,178,51,24,11,178,51,43,3,178,51,44,251,177,51,26,243,177,51,246,234,177,51,190,226,177,51,116,218,177,51,24,210,177,51,169,201,177,51,39,193,177,51,147,184,177,51,236,175,177,51,51,167,177,51,103,158,177,51,137,149,177,51,152,140,177,51,148,131,177,51,126,122,177,51,85,113,177,51,26,104,177,51,205,94,177,51,109,85,177,51,250,75,177,51,117,66,177,51,221,56,177,51,51,47,177,51,119,37,177,51,168,27,177,51,199,17,177,51,211,7,177,51,205,253,176,51,180,243,176,51,137,233,176,
51,76,223,176,51,252,212,176,51,154,202,176,51,38,192,176,51,159,181,176,51,6,171,176,51,90,160,176,51,157,149,176,51,205,138,176,51,234,127,176,51,246,116,176,51,239,105,176,51,213,94,176,51,170,83,176,51,108,72,176,51,28,61,176,51,186,49,176,51,69,38,176,51,190,26,176,51,37,15,176,51,122,3,176,51,189,247,175,51,237,235,175,51,12,224,175,51,24,212,175,51,18,200,175,51,250,187,175,51,207,175,175,51,147,163,175,51,69,151,175,51,228,138,175,51,113,126,175,51,236,113,175,51,85,101,175,51,172,88,175,
51,241,75,175,51,36,63,175,51,69,50,175,51,84,37,175,51,81,24,175,51,60,11,175,51,21,254,174,51,220,240,174,51,144,227,174,51,51,214,174,51,196,200,174,51,67,187,174,51,176,173,174,51,12,160,174,51,85,146,174,51,140,132,174,51,178,118,174,51,197,104,174,51,199,90,174,51,183,76,174,51,149,62,174,51,97,48,174,51,27,34,174,51,196,19,174,51,90,5,174,51,223,246,173,51,82,232,173,51,180,217,173,51,3,203,173,51,65,188,173,51,109,173,173,51,135,158,173,51,144,143,173,51,135,128,173,51,108,113,173,51,63,98,
173,51,1,83,173,51,177,67,173,51,80,52,173,51,220,36,173,51,88,21,173,51,193,5,173,51,25,246,172,51,95,230,172,51,148,214,172,51,183,198,172,51,201,182,172,51,201,166,172,51,183,150,172,51,148,134,172,51,96,118,172,51,25,102,172,51,194,85,172,51,89,69,172,51,222,52,172,51,82,36,172,51,180,19,172,51,5,3,172,51,69,242,171,51,115,225,171,51,144,208,171,51,155,191,171,51,149,174,171,51,126,157,171,51,85,140,171,51,27,123,171,51,207,105,171,51,115,88,171,51,5,71,171,51,133,53,171,51,244,35,171,51,82,18,
171,51,159,0,171,51,218,238,170,51,5,221,170,51,30,203,170,51,37,185,170,51,28,167,170,51,1,149,170,51,213,130,170,51,152,112,170,51,74,94,170,51,235,75,170,51,122,57,170,51,249,38,170,51,102,20,170,51,194,1,170,51,13,239,169,51,71,220,169,51,112,201,169,51,136,182,169,51,143,163,169,51,132,144,169,51,105,125,169,51,61,106,169,51,0,87,169,51,177,67,169,51,82,48,169,51,226,28,169,51,97,9,169,51,207,245,168,51,44,226,168,51,120,206,168,51,179,186,168,51,222,166,168,51,247,146,168,51,0,127,168,51,248,
106,168,51,223,86,168,51,181,66,168,51,122,46,168,51,47,26,168,51,210,5,168,51,101,241,167,51,232,220,167,51,89,200,167,51,186,179,167,51,10,159,167,51,74,138,167,51,120,117,167,51,150,96,167,51,164,75,167,51,160,54,167,51,140,33,167,51,104,12,167,51,51,247,166,51,237,225,166,51,151,204,166,51,48,183,166,51,184,161,166,51,48,140,166,51,152,118,166,51,238,96,166,51,53,75,166,51,107,53,166,51,144,31,166,51,165,9,166,51,170,243,165,51,158,221,165,51,130,199,165,51,85,177,165,51,24,155,165,51,202,132,
165,51,108,110,165,51,254,87,165,51,128,65,165,51,241,42,165,51,81,20,165,51,162,253,164,51,226,230,164,51,18,208,164,51,50,185,164,51,65,162,164,51,64,139,164,51,47,116,164,51,14,93,164,51,221,69,164,51,155,46,164,51,73,23,164,51,231,255,163,51,117,232,163,51,243,208,163,51,97,185,163,51,190,161,163,51,12,138,163,51,73,114,163,51,119,90,163,51,148,66,163,51,161,42,163,51,159,18,163,51,140,250,162,51,106,226,162,51,55,202,162,51,244,177,162,51,162,153,162,51,64,129,162,51,205,104,162,51,75,80,162,
51,185,55,162,51,23,31,162,51,101,6,162,51,164,237,161,51,210,212,161,51,241,187,161,51,0,163,161,51,255,137,161,51,238,112,161,51,206,87,161,51,158,62,161,51,94,37,161,51,15,12,161,51,175,242,160,51,65,217,160,51,194,191,160,51,52,166,160,51,150,140,160,51,233,114,160,51,43,89,160,51,95,63,160,51,131,37,160,51,151,11,160,51,156,241,159,51,145,215,159,51,118,189,159,51,77,163,159,51,19,137,159,51,202,110,159,51,114,84,159,51,11,58,159,51,147,31,159,51,13,5,159,51,119,234,158,51,210,207,158,51,29,
181,158,51,89,154,158,51,134,127,158,51,163,100,158,51,177,73,158,51,176,46,158,51,159,19,158,51,128,248,157,51,81,221,157,51,18,194,157,51,197,166,157,51,104,139,157,51,253,111,157,51,130,84,157,51,247,56,157,51,94,29,157,51,182,1,157,51,254,229,156,51,56,202,156,51,98,174,156,51,126,146,156,51,138,118,156,51,135,90,156,51,117,62,156,51,85,34,156,51,37,6,156,51,230,233,155,51,153,205,155,51,60,177,155,51,208,148,155,51,86,120,155,51,205,91,155,51,53,63,155,51,142,34,155,51,216,5,155,51,19,233,154,
51,64,204,154,51,94,175,154,51,109,146,154,51,109,117,154,51,94,88,154,51,65,59,154,51,21,30,154,51,219,0,154,51,146,227,153,51,58,198,153,51,211,168,153,51,94,139,153,51,218,109,153,51,72,80,153,51,167,50,153,51,247,20,153,51,57,247,152,51,108,217,152,51,145,187,152,51,168,157,152,51,175,127,152,51,169,97,152,51,148,67,152,51,112,37,152,51,63,7,152,51,254,232,151,51,176,202,151,51,83,172,151,51,231,141,151,51,110,111,151,51,230,80,151,51,79,50,151,51,171,19,151,51,248,244,150,51,55,214,150,51,103,
183,150,51,138,152,150,51,158,121,150,51,164,90,150,51,156,59,150,51,134,28,150,51,97,253,149,51,47,222,149,51,238,190,149,51,160,159,149,51,67,128,149,51,216,96,149,51,95,65,149,51,216,33,149,51,67,2,149,51,161,226,148,51,240,194,148,51,49,163,148,51,100,131,148,51,138,99,148,51,161,67,148,51,171,35,148,51,167,3,148,51,149,227,147,51,117,195,147,51,71,163,147,51,12,131,147,51,194,98,147,51,107,66,147,51,6,34,147,51,148,1,147,51,20,225,146,51,134,192,146,51,234,159,146,51,65,127,146,51,138,94,146,
51,198,61,146,51,243,28,146,51,20,252,145,51,38,219,145,51,44,186,145,51,35,153,145,51,13,120,145,51,234,86,145,51,185,53,145,51,123,20,145,51,47,243,144,51,214,209,144,51,111,176,144,51,251,142,144,51,122,109,144,51,235,75,144,51,79,42,144,51,165,8,144,51,239,230,143,51,43,197,143,51,89,163,143,51,123,129,143,51,143,95,143,51,150,61,143,51,144,27,143,51,124,249,142,51,92,215,142,51,46,181,142,51,243,146,142,51,171,112,142,51,86,78,142,51,244,43,142,51,133,9,142,51,9,231,141,51,127,196,141,51,233,
161,141,51,70,127,141,51,150,92,141,51,217,57,141,51,14,23,141,51,55,244,140,51,83,209,140,51,99,174,140,51,101,139,140,51,91,104,140,51,67,69,140,51,31,34,140,51,238,254,139,51,176,219,139,51,102,184,139,51,15,149,139,51,171,113,139,51,58,78,139,51,189,42,139,51,51,7,139,51,156,227,138,51,249,191,138,51,73,156,138,51,141,120,138,51,196,84,138,51,238,48,138,51,12,13,138,51,30,233,137,51,35,197,137,51,27,161,137,51,7,125,137,51,230,88,137,51,186,52,137,51,128,16,137,51,58,236,136,51,232,199,136,51,
138,163,136,51,31,127,136,51,168,90,136,51,37,54,136,51,149,17,136,51,249,236,135,51,81,200,135,51,157,163,135,51,220,126,135,51,15,90,135,51,55,53,135,51,82,16,135,51,96,235,134,51,99,198,134,51,90,161,134,51,68,124,134,51,35,87,134,51,245,49,134,51,188,12,134,51,118,231,133,51,37,194,133,51,199,156,133,51,94,119,133,51,232,81,133,51,103,44,133,51,218,6,133,51,65,225,132,51,156,187,132,51,235,149,132,51,47,112,132,51,103,74,132,51,147,36,132,51,179,254,131,51,199,216,131,51,208,178,131,51,205,140,
131,51,191,102,131,51,164,64,131,51,126,26,131,51,77,244,130,51,16,206,130,51,199,167,130,51,115,129,130,51,19,91,130,51,168,52,130,51,49,14,130,51,175,231,129,51,33,193,129,51,136,154,129,51,227,115,129,51,51,77,129,51,120,38,129,51,177,255,128,51,223,216,128,51,1,178,128,51,25,139,128,51,37,100,128,51,37,61,128,51,27,22,128,51,10,222,127,51,199,143,127,51,111,65,127,51,0,243,126,51,123,164,126,51,224,85,126,51,46,7,126,51,102,184,125,51,136,105,125,51,148,26,125,51,138,203,124,51,106,124,124,51,
52,45,124,51,232,221,123,51,133,142,123,51,13,63,123,51,128,239,122,51,220,159,122,51,35,80,122,51,84,0,122,51,111,176,121,51,116,96,121,51,100,16,121,51,63,192,120,51,4,112,120,51,179,31,120,51,77,207,119,51,209,126,119,51,65,46,119,51,154,221,118,51,223,140,118,51,14,60,118,51,40,235,117,51,45,154,117,51,29,73,117,51,248,247,116,51,189,166,116,51,110,85,116,51,10,4,116,51,144,178,115,51,2,97,115,51,95,15,115,51,167,189,114,51,218,107,114,51,249,25,114,51,3,200,113,51,248,117,113,51,217,35,113,51,
165,209,112,51,93,127,112,51,0,45,112,51,142,218,111,51,8,136,111,51,110,53,111,51,192,226,110,51,253,143,110,51,38,61,110,51,58,234,109,51,59,151,109,51,39,68,109,51,0,241,108,51,196,157,108,51,116,74,108,51,16,247,107,51,153,163,107,51,13,80,107,51,110,252,106,51,186,168,106,51,243,84,106,51,25,1,106,51,42,173,105,51,40,89,105,51,18,5,105,51,233,176,104,51,172,92,104,51,92,8,104,51,248,179,103,51,129,95,103,51,247,10,103,51,89,182,102,51,168,97,102,51,227,12,102,51,12,184,101,51,33,99,101,51,35,
14,101,51,18,185,100,51,238,99,100,51,183,14,100,51,110,185,99,51,17,100,99,51,161,14,99,51,30,185,98,51,137,99,98,51,225,13,98,51,38,184,97,51,89,98,97,51,121,12,97,51,134,182,96,51,129,96,96,51,105,10,96,51,63,180,95,51,2,94,95,51,179,7,95,51,82,177,94,51,222,90,94,51,88,4,94,51,192,173,93,51,21,87,93,51,89,0,93,51,138,169,92,51,170,82,92,51,183,251,91,51,178,164,91,51,156,77,91,51,115,246,90,51,57,159,90,51,237,71,90,51,143,240,89,51,32,153,89,51,158,65,89,51,12,234,88,51,103,146,88,51,177,58,
88,51,233,226,87,51,16,139,87,51,38,51,87,51,42,219,86,51,29,131,86,51,254,42,86,51,206,210,85,51,141,122,85,51,59,34,85,51,216,201,84,51,99,113,84,51,222,24,84,51,71,192,83,51,160,103,83,51,232,14,83,51,30,182,82,51,68,93,82,51,89,4,82,51,93,171,81,51,81,82,81,51,52,249,80,51,6,160,80,51,200,70,80,51,121,237,79,51,25,148,79,51,169,58,79,51,41,225,78,51,152,135,78,51,247,45,78,51,70,212,77,51,132,122,77,51,178,32,77,51,208,198,76,51,222,108,76,51,220,18,76,51,201,184,75,51,167,94,75,51,117,4,75,51,
51,170,74,51,225,79,74,51,127,245,73,51,13,155,73,51,139,64,73,51,250,229,72,51,89,139,72,51,169,48,72,51,233,213,71,51,25,123,71,51,58,32,71,51,75,197,70,51,77,106,70,51,64,15,70,51,35,180,69,51,247,88,69,51,188,253,68,51,114,162,68,51,24,71,68,51,175,235,67,51,55,144,67,51,177,52,67,51,27,217,66,51,118,125,66,51,194,33,66,51,0,198,65,51,46,106,65,51,78,14,65,51,95,178,64,51,98,86,64,51,85,250,63,51,59,158,63,51,17,66,63,51,217,229,62,51,147,137,62,51,62,45,62,51,219,208,61,51,105,116,61,51,233,
23,61,51,91,187,60,51,191,94,60,51,20,2,60,51,91,165,59,51,148,72,59,51,192,235,58,51,221,142,58,51,236,49,58,51,237,212,57,51,224,119,57,51,198,26,57,51,158,189,56,51,103,96,56,51,36,3,56,51,210,165,55,51,115,72,55,51,7,235,54,51,140,141,54,51,5,48,54,51,112,210,53,51,205,116,53,51,29,23,53,51,96,185,52,51,150,91,52,51,190,253,51,51,217,159,51,51,231,65,51,51,232,227,50,51,219,133,50,51,194,39,50,51,156,201,49,51,105,107,49,51,40,13,49,51,220,174,48,51,130,80,48,51,27,242,47,51,168,147,47,51,40,
53,47,51,156,214,46,51,2,120,46,51,93,25,46,51,171,186,45,51,236,91,45,51,33,253,44,51,74,158,44,51,102,63,44,51,118,224,43,51,121,129,43,51,113,34,43,51,92,195,42,51,59,100,42,51,15,5,42,51,214,165,41,51,145,70,41,51,64,231,40,51,227,135,40,51,123,40,40,51,6,201,39,51,134,105,39,51,250,9,39,51,99,170,38,51,192,74,38,51,17,235,37,51,87,139,37,51,145,43,37,51,192,203,36,51,227,107,36,51,251,11,36,51,7,172,35,51,9,76,35,51,255,235,34,51,233,139,34,51,201,43,34,51,158,203,33,51,103,107,33,51,38,11,33,
51,217,170,32,51,130,74,32,51,31,234,31,51,178,137,31,51,58,41,31,51,183,200,30,51,41,104,30,51,145,7,30,51,238,166,29,51,65,70,29,51,137,229,28,51,198,132,28,51,249,35,28,51,34,195,27,51,64,98,27,51,84,1,27,51,94,160,26,51,93,63,26,51,82,222,25,51,61,125,25,51,30,28,25,51,245,186,24,51,194,89,24,51,132,248,23,51,61,151,23,51,236,53,23,51,145,212,22,51,45,115,22,51,190,17,22,51,70,176,21,51,196,78,21,51,57,237,20,51,163,139,20,51,5,42,20,51,93,200,19,51,171,102,19,51,240,4,19,51,44,163,18,51,94,65,
18,51,135,223,17,51,167,125,17,51,189,27,17,51,203,185,16,51,207,87,16,51,202,245,15,51,188,147,15,51,165,49,15,51,134,207,14,51,93,109,14,51,44,11,14,51,241,168,13,51,174,70,13,51,99,228,12,51,14,130,12,51,177,31,12,51,75,189,11,51,221,90,11,51,103,248,10,51,232,149,10,51,96,51,10,51,208,208,9,51,56,110,9,51,151,11,9,51,239,168,8,51,62,70,8,51,133,227,7,51,195,128,7,51,250,29,7,51,41,187,6,51,80,88,6,51,111,245,5,51,134,146,5,51,149,47,5,51,156,204,4,51,156,105,4,51,147,6,4,51,132,163,3,51,108,64,
3,51,77,221,2,51,39,122,2,51,249,22,2,51,195,179,1,51,134,80,1,51,66,237,0,51,247,137,0,51,164,38,0,51,147,134,255,50,209,191,254,50,0,249,253,50,33,50,253,50,52,107,252,50,57,164,251,50,48,221,250,50,25,22,250,50,245,78,249,50,195,135,248,50,131,192,247,50,54,249,246,50,219,49,246,50,115,106,245,50,254,162,244,50,123,219,243,50,236,19,243,50,79,76,242,50,166,132,241,50,240,188,240,50,45,245,239,50,94,45,239,50,130,101,238,50,154,157,237,50,165,213,236,50,164,13,236,50,151,69,235,50,126,125,234,50,
89,181,233,50,40,237,232,50,235,36,232,50,162,92,231,50,78,148,230,50,238,203,229,50,130,3,229,50,12,59,228,50,138,114,227,50,252,169,226,50,100,225,225,50,193,24,225,50,18,80,224,50,89,135,223,50,149,190,222,50,198,245,221,50,237,44,221,50,9,100,220,50,27,155,219,50,35,210,218,50,32,9,218,50,19,64,217,50,252,118,216,50,219,173,215,50,176,228,214,50,123,27,214,50,61,82,213,50,245,136,212,50,163,191,211,50,72,246,210,50,228,44,210,50,118,99,209,50,255,153,208,50,127,208,207,50,246,6,207,50,100,61,
206,50,202,115,205,50,38,170,204,50,122,224,203,50,197,22,203,50,8,77,202,50,66,131,201,50,116,185,200,50,158,239,199,50,191,37,199,50,217,91,198,50,234,145,197,50,244,199,196,50,246,253,195,50,240,51,195,50,226,105,194,50,205,159,193,50,177,213,192,50,141,11,192,50,98,65,191,50,48,119,190,50,246,172,189,50,182,226,188,50,111,24,188,50,32,78,187,50,204,131,186,50,112,185,185,50,14,239,184,50,165,36,184,50,54,90,183,50,193,143,182,50,69,197,181,50,196,250,180,50,60,48,180,50,174,101,179,50,27,155,
178,50,129,208,177,50,226,5,177,50,61,59,176,50,147,112,175,50,227,165,174,50,46,219,173,50,116,16,173,50,181,69,172,50,240,122,171,50,38,176,170,50,88,229,169,50,133,26,169,50,173,79,168,50,208,132,167,50,239,185,166,50,9,239,165,50,31,36,165,50,48,89,164,50,61,142,163,50,70,195,162,50,75,248,161,50,77,45,161,50,74,98,160,50,67,151,159,50,57,204,158,50,43,1,158,50,26,54,157,50,5,107,156,50,237,159,155,50,209,212,154,50,179,9,154,50,145,62,153,50,108,115,152,50,68,168,151,50,26,221,150,50,236,17,
150,50,189,70,149,50,138,123,148,50,85,176,147,50,30,229,146,50,228,25,146,50,168,78,145,50,106,131,144,50,42,184,143,50,231,236,142,50,163,33,142,50,94,86,141,50,22,139,140,50,205,191,139,50,130,244,138,50,54,41,138,50,232,93,137,50,154,146,136,50,74,199,135,50,248,251,134,50,166,48,134,50,83,101,133,50,255,153,132,50,171,206,131,50,85,3,131,50,255,55,130,50,169,108,129,50,82,161,128,50,245,171,127,50,70,21,126,50,151,126,124,50,232,231,122,50,56,81,121,50,137,186,119,50,218,35,118,50,44,141,116,
50,126,246,114,50,209,95,113,50,38,201,111,50,123,50,110,50,210,155,108,50,43,5,107,50,133,110,105,50,225,215,103,50,63,65,102,50,160,170,100,50,3,20,99,50,104,125,97,50,208,230,95,50,59,80,94,50,170,185,92,50,27,35,91,50,144,140,89,50,9,246,87,50,133,95,86,50,6,201,84,50,138,50,83,50,19,156,81,50,160,5,80,50,50,111,78,50,201,216,76,50,100,66,75,50,5,172,73,50,172,21,72,50,87,127,70,50,9,233,68,50,192,82,67,50,125,188,65,50,64,38,64,50,10,144,62,50,218,249,60,50,177,99,59,50,143,205,57,50,116,55,
56,50,96,161,54,50,83,11,53,50,78,117,51,50,80,223,49,50,91,73,48,50,109,179,46,50,136,29,45,50,171,135,43,50,215,241,41,50,11,92,40,50,72,198,38,50,143,48,37,50,222,154,35,50,55,5,34,50,154,111,32,50,6,218,30,50,124,68,29,50,252,174,27,50,135,25,26,50,28,132,24,50,187,238,22,50,101,89,21,50,26,196,19,50,218,46,18,50,166,153,16,50,125,4,15,50,95,111,13,50,77,218,11,50,71,69,10,50,78,176,8,50,96,27,7,50,127,134,5,50,171,241,3,50,227,92,2,50,40,200,0,50,245,102,254,49,180,61,251,49,142,20,248,49,131,
235,244,49,148,194,241,49,193,153,238,49,9,113,235,49,111,72,232,49,241,31,229,49,145,247,225,49,78,207,222,49,40,167,219,49,34,127,216,49,57,87,213,49,112,47,210,49,198,7,207,49,59,224,203,49,208,184,200,49,133,145,197,49,91,106,194,49,82,67,191,49,106,28,188,49,164,245,184,49,255,206,181,49,125,168,178,49,29,130,175,49,224,91,172,49,199,53,169,49,208,15,166,49,254,233,162,49,80,196,159,49,198,158,156,49,98,121,153,49,34,84,150,49,8,47,147,49,20,10,144,49,70,229,140,49,158,192,137,49,30,156,134,
49,196,119,131,49,146,83,128,49,17,95,122,49,77,23,116,49,218,207,109,49,184,136,103,49,233,65,97,49,109,251,90,49,69,181,84,49,113,111,78,49,241,41,72,49,200,228,65,49,244,159,59,49,120,91,53,49,83,23,47,49,134,211,40,49,18,144,34,49,248,76,28,49,55,10,22,49,210,199,15,49,200,133,9,49,26,68,3,49,146,5,250,48,171,131,237,48,128,2,225,48,18,130,212,48,99,2,200,48,116,131,187,48,71,5,175,48,220,135,162,48,54,11,150,48,84,143,137,48,115,40,122,48,205,51,97,48,186,64,72,48,59,79,47,48,84,95,22,48,14,
226,250,47,174,8,201,47,140,50,151,47,93,191,74,47,102,64,206,46,115,233,97,44,130,20,192,174,119,149,67,175,249,140,147,175,211,75,197,175,69,7,247,175,165,95,20,176,239,57,45,176,125,18,70,176,76,233,94,176,91,190,119,176,211,72,136,176,150,177,148,176,116,25,161,176,109,128,173,176,127,230,185,176,169,75,198,176,233,175,210,176,63,19,223,176,169,117,235,176,37,215,247,176,218,27,2,177,169,75,8,177,255,122,14,177,221,169,20,177,64,216,26,177,41,6,33,177,151,51,39,177,138,96,45,177,0,141,51,177,
249,184,57,177,116,228,63,177,113,15,70,177,239,57,76,177,238,99,82,177,108,141,88,177,106,182,94,177,230,222,100,177,224,6,107,177,88,46,113,177,76,85,119,177,188,123,125,177,212,208,129,177,135,227,132,177,247,245,135,177,36,8,139,177,14,26,142,177,180,43,145,177,21,61,148,177,50,78,151,177,10,95,154,177,157,111,157,177,234,127,160,177,242,143,163,177,180,159,166,177,47,175,169,177,100,190,172,177,82,205,175,177,248,219,178,177,87,234,181,177,109,248,184,177,60,6,188,177,194,19,191,177,255,32,194,
177,243,45,197,177,157,58,200,177,254,70,203,177,20,83,206,177,224,94,209,177,97,106,212,177,152,117,215,177,130,128,218,177,34,139,221,177,117,149,224,177,124,159,227,177,54,169,230,177,163,178,233,177,196,187,236,177,150,196,239,177,27,205,242,177,82,213,245,177,58,221,248,177,212,228,251,177,30,236,254,177,141,249,0,178,226,124,2,178,16,0,4,178,22,131,5,178,243,5,7,178,168,136,8,178,52,11,10,178,151,141,11,178,210,15,13,178,227,145,14,178,204,19,16,178,139,149,17,178,32,23,19,178,140,152,20,178,
206,25,22,178,230,154,23,178,211,27,25,178,151,156,26,178,48,29,28,178,158,157,29,178,226,29,31,178,251,157,32,178,233,29,34,178,172,157,35,178,67,29,37,178,175,156,38,178,239,27,40,178,4,155,41,178,236,25,43,178,168,152,44,178,57,23,46,178,156,149,47,178,212,19,49,178,222,145,50,178,188,15,52,178,108,141,53,178,240,10,55,178,70,136,56,178,111,5,58,178,106,130,59,178,56,255,60,178,216,123,62,178,73,248,63,178,141,116,65,178,162,240,66,178,136,108,68,178,64,232,69,178,201,99,71,178,36,223,72,178,79,
90,74,178,75,213,75,178,24,80,77,178,181,202,78,178,34,69,80,178,96,191,81,178,109,57,83,178,75,179,84,178,248,44,86,178,117,166,87,178,193,31,89,178,221,152,90,178,200,17,92,178,130,138,93,178,10,3,95,178,98,123,96,178,136,243,97,178,124,107,99,178,63,227,100,178,208,90,102,178,47,210,103,178,91,73,105,178,86,192,106,178,30,55,108,178,179,173,109,178,22,36,111,178,69,154,112,178,66,16,114,178,11,134,115,178,162,251,116,178,4,113,118,178,51,230,119,178,47,91,121,178,246,207,122,178,138,68,124,178,
233,184,125,178,20,45,127,178,133,80,128,178,102,10,129,178,45,196,129,178,217,125,130,178,106,55,131,178,225,240,131,178,62,170,132,178,127,99,133,178,166,28,134,178,178,213,134,178,163,142,135,178,121,71,136,178,52,0,137,178,211,184,137,178,88,113,138,178,193,41,139,178,15,226,139,178,65,154,140,178,88,82,141,178,83,10,142,178,51,194,142,178,247,121,143,178,159,49,144,178,43,233,144,178,155,160,145,178,239,87,146,178,39,15,147,178,67,198,147,178,67,125,148,178,39,52,149,178,238,234,149,178,152,
161,150,178,39,88,151,178,152,14,152,178,237,196,152,178,38,123,153,178,65,49,154,178,64,231,154,178,33,157,155,178,230,82,156,178,142,8,157,178,24,190,157,178,134,115,158,178,214,40,159,178,9,222,159,178,30,147,160,178,22,72,161,178,240,252,161,178,173,177,162,178,76,102,163,178,206,26,164,178,49,207,164,178,119,131,165,178,159,55,166,178,168,235,166,178,148,159,167,178,97,83,168,178,17,7,169,178,162,186,169,178,20,110,170,178,104,33,171,178,158,212,171,178,181,135,172,178,174,58,173,178,135,237,
173,178,66,160,174,178,223,82,175,178,92,5,176,178,186,183,176,178,249,105,177,178,26,28,178,178,27,206,178,178,252,127,179,178,191,49,180,178,98,227,180,178,230,148,181,178,74,70,182,178,142,247,182,178,179,168,183,178,185,89,184,178,158,10,185,178,100,187,185,178,10,108,186,178,143,28,187,178,245,204,187,178,59,125,188,178,96,45,189,178,101,221,189,178,74,141,190,178,15,61,191,178,179,236,191,178,55,156,192,178,154,75,193,178,220,250,193,178,254,169,194,178,255,88,195,178,223,7,196,178,159,182,
196,178,61,101,197,178,186,19,198,178,23,194,198,178,82,112,199,178,107,30,200,178,100,204,200,178,59,122,201,178],"i8",4,y.a+1382400);
Q([241,39,202,178,134,213,202,178,248,130,203,178,74,48,204,178,121,221,204,178,135,138,205,178,115,55,206,178,61,228,206,178,229,144,207,178,108,61,208,178,208,233,208,178,18,150,209,178,50,66,210,178,47,238,210,178,11,154,211,178,196,69,212,178,90,241,212,178,206,156,213,178,32,72,214,178,79,243,214,178,91,158,215,178,68,73,216,178,11,244,216,178,175,158,217,178,47,73,218,178,141,243,218,178,200,157,219,178,223,71,220,178,212,241,220,178,165,155,221,178,83,69,222,178,221,238,222,178,68,152,223,
178,136,65,224,178,167,234,224,178,164,147,225,178,124,60,226,178,49,229,226,178,194,141,227,178,47,54,228,178,120,222,228,178,158,134,229,178,159,46,230,178,124,214,230,178,53,126,231,178,201,37,232,178,57,205,232,178,133,116,233,178,173,27,234,178,176,194,234,178,142,105,235,178,72,16,236,178,221,182,236,178,78,93,237,178,153,3,238,178,192,169,238,178,194,79,239,178,159,245,239,178,86,155,240,178,233,64,241,178,87,230,241,178,159,139,242,178,194,48,243,178,192,213,243,178,152,122,244,178,75,31,
245,178,216,195,245,178,64,104,246,178,130,12,247,178,159,176,247,178,149,84,248,178,102,248,248,178,17,156,249,178,150,63,250,178,245,226,250,178,46,134,251,178,65,41,252,178,46,204,252,178,244,110,253,178,148,17,254,178,14,180,254,178,98,86,255,178,143,248,255,178,75,77,0,179,58,158,0,179,23,239,0,179,224,63,1,179,150,144,1,179,57,225,1,179,200,49,2,179,67,130,2,179,171,210,2,179,0,35,3,179,65,115,3,179,110,195,3,179,136,19,4,179,142,99,4,179,129,179,4,179,96,3,5,179,43,83,5,179,226,162,5,179,134,
242,5,179,21,66,6,179,145,145,6,179,249,224,6,179,78,48,7,179,142,127,7,179,186,206,7,179,210,29,8,179,215,108,8,179,199,187,8,179,163,10,9,179,107,89,9,179,31,168,9,179,191,246,9,179,75,69,10,179,194,147,10,179,37,226,10,179,116,48,11,179,175,126,11,179,213,204,11,179,231,26,12,179,229,104,12,179,206,182,12,179,163,4,13,179,99,82,13,179,15,160,13,179,167,237,13,179,41,59,14,179,152,136,14,179,241,213,14,179,54,35,15,179,103,112,15,179,131,189,15,179,138,10,16,179,124,87,16,179,90,164,16,179,34,241,
16,179,214,61,17,179,117,138,17,179,0,215,17,179,117,35,18,179,214,111,18,179,33,188,18,179,88,8,19,179,121,84,19,179,134,160,19,179,125,236,19,179,96,56,20,179,45,132,20,179,229,207,20,179,136,27,21,179,22,103,21,179,143,178,21,179,242,253,21,179,65,73,22,179,122,148,22,179,157,223,22,179,171,42,23,179,164,117,23,179,136,192,23,179,86,11,24,179,14,86,24,179,177,160,24,179,63,235,24,179,183,53,25,179,26,128,25,179,103,202,25,179,158,20,26,179,192,94,26,179,204,168,26,179,195,242,26,179,164,60,27,
179,111,134,27,179,36,208,27,179,195,25,28,179,77,99,28,179,193,172,28,179,31,246,28,179,103,63,29,179,153,136,29,179,182,209,29,179,188,26,30,179,173,99,30,179,135,172,30,179,75,245,30,179,250,61,31,179,146,134,31,179,20,207,31,179,128,23,32,179,214,95,32,179,21,168,32,179,63,240,32,179,82,56,33,179,79,128,33,179,54,200,33,179,6,16,34,179,192,87,34,179,100,159,34,179,241,230,34,179,104,46,35,179,201,117,35,179,19,189,35,179,71,4,36,179,100,75,36,179,106,146,36,179,90,217,36,179,52,32,37,179,247,
102,37,179,163,173,37,179,57,244,37,179,184,58,38,179,32,129,38,179,114,199,38,179,173,13,39,179,209,83,39,179,222,153,39,179,212,223,39,179,180,37,40,179,125,107,40,179,47,177,40,179,202,246,40,179,78,60,41,179,187,129,41,179,17,199,41,179,81,12,42,179,121,81,42,179,138,150,42,179,132,219,42,179,103,32,43,179,51,101,43,179,232,169,43,179,133,238,43,179,12,51,44,179,123,119,44,179,211,187,44,179,20,0,45,179,61,68,45,179,79,136,45,179,74,204,45,179,46,16,46,179,250,83,46,179,175,151,46,179,76,219,
46,179,210,30,47,179,65,98,47,179,152,165,47,179,215,232,47,179,255,43,48,179,16,111,48,179,9,178,48,179,234,244,48,179,180,55,49,179,102,122,49,179,1,189,49,179,131,255,49,179,239,65,50,179,66,132,50,179,126,198,50,179,162,8,51,179,174,74,51,179,162,140,51,179,127,206,51,179,67,16,52,179,240,81,52,179,133,147,52,179,2,213,52,179,103,22,53,179,180,87,53,179,233,152,53,179,6,218,53,179,12,27,54,179,249,91,54,179,206,156,54,179,139,221,54,179,48,30,55,179,188,94,55,179,49,159,55,179,141,223,55,179,
210,31,56,179,254,95,56,179,18,160,56,179,13,224,56,179,241,31,57,179,188,95,57,179,110,159,57,179,9,223,57,179,139,30,58,179,244,93,58,179,70,157,58,179,127,220,58,179,159,27,59,179,167,90,59,179,151,153,59,179,110,216,59,179,44,23,60,179,210,85,60,179,96,148,60,179,213,210,60,179,49,17,61,179,117,79,61,179,160,141,61,179,178,203,61,179,172,9,62,179,141,71,62,179,85,133,62,179,5,195,62,179,156,0,63,179,26,62,63,179,127,123,63,179,204,184,63,179,255,245,63,179,26,51,64,179,28,112,64,179,5,173,64,
179,214,233,64,179,141,38,65,179,43,99,65,179,177,159,65,179,29,220,65,179,112,24,66,179,171,84,66,179,204,144,66,179,212,204,66,179,196,8,67,179,154,68,67,179,87,128,67,179,251,187,67,179,133,247,67,179,247,50,68,179,79,110,68,179,142,169,68,179,180,228,68,179,193,31,69,179,181,90,69,179,143,149,69,179,80,208,69,179,247,10,70,179,134,69,70,179,250,127,70,179,86,186,70,179,152,244,70,179,193,46,71,179,208,104,71,179,198,162,71,179,163,220,71,179,101,22,72,179,15,80,72,179,159,137,72,179,21,195,72,
179,114,252,72,179,182,53,73,179,223,110,73,179,239,167,73,179,230,224,73,179,195,25,74,179,134,82,74,179,48,139,74,179,192,195,74,179,54,252,74,179,146,52,75,179,213,108,75,179,254,164,75,179,13,221,75,179,3,21,76,179,222,76,76,179,160,132,76,179,72,188,76,179,214,243,76,179,75,43,77,179,165,98,77,179,230,153,77,179,12,209,77,179,25,8,78,179,11,63,78,179,228,117,78,179,163,172,78,179,72,227,78,179,210,25,79,179,67,80,79,179,154,134,79,179,214,188,79,179,249,242,79,179,1,41,80,179,239,94,80,179,196,
148,80,179,126,202,80,179,29,0,81,179,163,53,81,179,15,107,81,179,96,160,81,179,151,213,81,179,180,10,82,179,182,63,82,179,159,116,82,179,109,169,82,179,32,222,82,179,186,18,83,179,57,71,83,179,157,123,83,179,232,175,83,179,24,228,83,179,45,24,84,179,40,76,84,179,9,128,84,179,208,179,84,179,123,231,84,179,13,27,85,179,132,78,85,179,224,129,85,179,34,181,85,179,73,232,85,179,86,27,86,179,73,78,86,179,32,129,86,179,221,179,86,179,128,230,86,179,8,25,87,179,117,75,87,179,200,125,87,179,0,176,87,179,
29,226,87,179,32,20,88,179,8,70,88,179,213,119,88,179,136,169,88,179,31,219,88,179,156,12,89,179,255,61,89,179,70,111,89,179,115,160,89,179,133,209,89,179,124,2,90,179,88,51,90,179,25,100,90,179,192,148,90,179,75,197,90,179,188,245,90,179,18,38,91,179,77,86,91,179,109,134,91,179,114,182,91,179,92,230,91,179,43,22,92,179,223,69,92,179,121,117,92,179,247,164,92,179,90,212,92,179,162,3,93,179,207,50,93,179,225,97,93,179,216,144,93,179,180,191,93,179,116,238,93,179,26,29,94,179,165,75,94,179,20,122,94,
179,104,168,94,179,161,214,94,179,191,4,95,179,194,50,95,179,169,96,95,179,118,142,95,179,39,188,95,179,189,233,95,179,55,23,96,179,151,68,96,179,219,113,96,179,3,159,96,179,17,204,96,179,3,249,96,179,218,37,97,179,150,82,97,179,54,127,97,179,187,171,97,179,36,216,97,179,114,4,98,179,165,48,98,179,188,92,98,179,184,136,98,179,153,180,98,179,94,224,98,179,8,12,99,179,150,55,99,179,9,99,99,179,96,142,99,179,156,185,99,179,188,228,99,179,193,15,100,179,170,58,100,179,120,101,100,179,42,144,100,179,192,
186,100,179,59,229,100,179,155,15,101,179,223,57,101,179,7,100,101,179,20,142,101,179,5,184,101,179,218,225,101,179,148,11,102,179,50,53,102,179,181,94,102,179,28,136,102,179,103,177,102,179,150,218,102,179,170,3,103,179,162,44,103,179,127,85,103,179,63,126,103,179,228,166,103,179,109,207,103,179,219,247,103,179,44,32,104,179,98,72,104,179,124,112,104,179,122,152,104,179,93,192,104,179,36,232,104,179,206,15,105,179,93,55,105,179,209,94,105,179,40,134,105,179,99,173,105,179,131,212,105,179,135,251,
105,179,110,34,106,179,58,73,106,179,234,111,106,179,126,150,106,179,247,188,106,179,83,227,106,179,147,9,107,179,184,47,107,179,192,85,107,179,172,123,107,179,125,161,107,179,49,199,107,179,202,236,107,179,70,18,108,179,167,55,108,179,235,92,108,179,19,130,108,179,32,167,108,179,16,204,108,179,228,240,108,179,157,21,109,179,57,58,109,179,185,94,109,179,29,131,109,179,101,167,109,179,144,203,109,179,160,239,109,179,148,19,110,179,107,55,110,179,38,91,110,179,198,126,110,179,73,162,110,179,176,197,
110,179,250,232,110,179,41,12,111,179,59,47,111,179,49,82,111,179,11,117,111,179,201,151,111,179,107,186,111,179,240,220,111,179,89,255,111,179,166,33,112,179,215,67,112,179,236,101,112,179,228,135,112,179,192,169,112,179,127,203,112,179,35,237,112,179,170,14,113,179,21,48,113,179,100,81,113,179,150,114,113,179,172,147,113,179,166,180,113,179,131,213,113,179,68,246,113,179,233,22,114,179,113,55,114,179,221,87,114,179,45,120,114,179,96,152,114,179,119,184,114,179,114,216,114,179,80,248,114,179,18,
24,115,179,184,55,115,179,65,87,115,179,174,118,115,179,254,149,115,179,50,181,115,179,74,212,115,179,69,243,115,179,35,18,116,179,230,48,116,179,140,79,116,179,21,110,116,179,130,140,116,179,211,170,116,179,7,201,116,179,30,231,116,179,25,5,117,179,248,34,117,179,186,64,117,179,96,94,117,179,233,123,117,179,86,153,117,179,166,182,117,179,218,211,117,179,241,240,117,179,236,13,118,179,202,42,118,179,140,71,118,179,49,100,118,179,186,128,118,179,38,157,118,179,118,185,118,179,169,213,118,179,192,241,
118,179,186,13,119,179,151,41,119,179,88,69,119,179,252,96,119,179,132,124,119,179,239,151,119,179,62,179,119,179,112,206,119,179,134,233,119,179,126,4,120,179,91,31,120,179,27,58,120,179,190,84,120,179,68,111,120,179,174,137,120,179,251,163,120,179,44,190,120,179,64,216,120,179,56,242,120,179,19,12,121,179,209,37,121,179,115,63,121,179,248,88,121,179,96,114,121,179,172,139,121,179,219,164,121,179,237,189,121,179,227,214,121,179,188,239,121,179,121,8,122,179,25,33,122,179,156,57,122,179,2,82,122,
179,76,106,122,179,121,130,122,179,138,154,122,179,126,178,122,179,85,202,122,179,16,226,122,179,173,249,122,179,47,17,123,179,147,40,123,179,219,63,123,179,6,87,123,179,21,110,123,179,6,133,123,179,219,155,123,179,148,178,123,179,48,201,123,179,175,223,123,179,17,246,123,179,86,12,124,179,127,34,124,179,140,56,124,179,123,78,124,179,78,100,124,179,4,122,124,179,157,143,124,179,26,165,124,179,122,186,124,179,189,207,124,179,227,228,124,179,237,249,124,179,218,14,125,179,171,35,125,179,94,56,125,179,
245,76,125,179,111,97,125,179,205,117,125,179,14,138,125,179,50,158,125,179,57,178,125,179,35,198,125,179,241,217,125,179,162,237,125,179,55,1,126,179,174,20,126,179,9,40,126,179,71,59,126,179,105,78,126,179,110,97,126,179,86,116,126,179,33,135,126,179,207,153,126,179,97,172,126,179,214,190,126,179,46,209,126,179,106,227,126,179,137,245,126,179,139,7,127,179,112,25,127,179,57,43,127,179,229,60,127,179,116,78,127,179,231,95,127,179,60,113,127,179,117,130,127,179,146,147,127,179,145,164,127,179,116,
181,127,179,58,198,127,179,227,214,127,179,112,231,127,179,224,247,127,179,25,4,128,179,53,12,128,179,65,20,128,179,64,28,128,179,48,36,128,179,18,44,128,179,229,51,128,179,170,59,128,179,97,67,128,179,9,75,128,179,163,82,128,179,47,90,128,179,172,97,128,179,27,105,128,179,123,112,128,179,206,119,128,179,17,127,128,179,71,134,128,179,110,141,128,179,135,148,128,179,145,155,128,179,141,162,128,179,123,169,128,179,90,176,128,179,43,183,128,179,238,189,128,179,162,196,128,179,72,203,128,179,224,209,
128,179,105,216,128,179,228,222,128,179,81,229,128,179,175,235,128,179,255,241,128,179,65,248,128,179,116,254,128,179,153,4,129,179,175,10,129,179,184,16,129,179,178,22,129,179,157,28,129,179,122,34,129,179,73,40,129,179,10,46,129,179,188,51,129,179,96,57,129,179,246,62,129,179,125,68,129,179,246,73,129,179,97,79,129,179,189,84,129,179,11,90,129,179,75,95,129,179,124,100,129,179,160,105,129,179,180,110,129,179,187,115,129,179,179,120,129,179,157,125,129,179,121,130,129,179,70,135,129,179,5,140,129,
179,182,144,129,179,88,149,129,179,236,153,129,179,114,158,129,179,234,162,129,179,83,167,129,179,174,171,129,179,251,175,129,179,57,180,129,179,105,184,129,179,139,188,129,179,159,192,129,179,164,196,129,179,155,200,129,179,132,204,129,179,94,208,129,179,42,212,129,179,232,215,129,179,152,219,129,179,58,223,129,179,205,226,129,179,82,230,129,179,201,233,129,179,49,237,129,179,139,240,129,179,215,243,129,179,21,247,129,179,69,250,129,179,102,253,129,179,121,0,130,179,126,3,130,179,116,6,130,179,93,
9,130,179,55,12,130,179,3,15,130,179,193,17,130,179,112,20,130,179,17,23,130,179,164,25,130,179,41,28,130,179,160,30,130,179,8,33,130,179,99,35,130,179,175,37,130,179,237,39,130,179,28,42,130,179,62,44,130,179,81,46,130,179,86,48,130,179,77,50,130,179,54,52,130,179,17,54,130,179,221,55,130,179,155,57,130,179,76,59,130,179,238,60,130,179,129,62,130,179,7,64,130,179,127,65,130,179,232,66,130,179,67,68,130,179,144,69,130,179,207,70,130,179,0,72,130,179,35,73,130,179,55,74,130,179,62,75,130,179,54,76,
130,179,32,77,130,179,252,77,130,179,202,78,130,179,138,79,130,179,60,80,130,179,223,80,130,179,117,81,130,179,252,81,130,179,118,82,130,179,225,82,130,179,62,83,130,179,141,83,130,179,206,83,130,179,1,84,130,179,38,84,130,179,61,84,130,179,70,84,130,179,65,84,130,179,45,84,130,179,12,84,130,179,221,83,130,179,159,83,130,179,84,83,130,179,250,82,130,179,147,82,130,179,29,82,130,179,153,81,130,179,8,81,130,179,104,80,130,179,186,79,130,179,255,78,130,179,53,78,130,179,93,77,130,179,120,76,130,179,
132,75,130,179,131,74,130,179,115,73,130,179,85,72,130,179,42,71,130,179,240,69,130,179,169,68,130,179,83,67,130,179,240,65,130,179,127,64,130,179,255,62,130,179,114,61,130,179,215,59,130,179,46,58,130,179,119,56,130,179,178,54,130,179,223,52,130,179,254,50,130,179,16,49,130,179,19,47,130,179,9,45,130,179,240,42,130,179,202,40,130,179,150,38,130,179,84,36,130,179,4,34,130,179,166,31,130,179,58,29,130,179,193,26,130,179,57,24,130,179,164,21,130,179,1,19,130,179,80,16,130,179,145,13,130,179,196,10,
130,179,234,7,130,179,2,5,130,179,12,2,130,179,8,255,129,179,246,251,129,179,214,248,129,179,169,245,129,179,110,242,129,179,37,239,129,179,206,235,129,179,106,232,129,179,248,228,129,179,120,225,129,179,234,221,129,179,78,218,129,179,165,214,129,179,238,210,129,179,41,207,129,179,86,203,129,179,118,199,129,179,136,195,129,179,140,191,129,179,131,187,129,179,108,183,129,179,71,179,129,179,20,175,129,179,212,170,129,179,134,166,129,179,43,162,129,179,193,157,129,179,74,153,129,179,198,148,129,179,
51,144,129,179,147,139,129,179,230,134,129,179,42,130,129,179,98,125,129,179,139,120,129,179,167,115,129,179,181,110,129,179,182,105,129,179,169,100,129,179,142,95,129,179,102,90,129,179,48,85,129,179,237,79,129,179,156,74,129,179,61,69,129,179,209,63,129,179,87,58,129,179,208,52,129,179,59,47,129,179,153,41,129,179,233,35,129,179,44,30,129,179,97,24,129,179,136,18,129,179,162,12,129,179,175,6,129,179,174,0,129,179,159,250,128,179,131,244,128,179,90,238,128,179,35,232,128,179,222,225,128,179,141,
219,128,179,45,213,128,179,192,206,128,179,70,200,128,179,191,193,128,179,41,187,128,179,135,180,128,179,215,173,128,179,26,167,128,179,79,160,128,179,119,153,128,179,145,146,128,179,158,139,128,179,158,132,128,179,144,125,128,179,117,118,128,179,76,111,128,179,23,104,128,179,211,96,128,179,131,89,128,179,37,82,128,179,186,74,128,179,65,67,128,179,188,59,128,179,41,52,128,179,136,44,128,179,218,36,128,179,31,29,128,179,87,21,128,179,130,13,128,179,159,5,128,179,93,251,127,179,99,235,127,179,77,219,
127,179,30,203,127,179,212,186,127,179,111,170,127,179,240,153,127,179,87,137,127,179,163,120,127,179,213,103,127,179,236,86,127,179,233,69,127,179,204,52,127,179,148,35,127,179,66,18,127,179,214,0,127,179,79,239,126,179,174,221,126,179,243,203,126,179,30,186,126,179,46,168,126,179,36,150,126,179,0,132,126,179,194,113,126,179,106,95,126,179,247,76,126,179,106,58,126,179,195,39,126,179,2,21,126,179,39,2,126,179,50,239,125,179,35,220,125,179,250,200,125,179,182,181,125,179,89,162,125,179,225,142,125,
179,80,123,125,179,165,103,125,179,223,83,125,179,0,64,125,179,7,44,125,179,244,23,125,179,199,3,125,179,128,239,124,179,31,219,124,179,164,198,124,179,16,178,124,179,97,157,124,179,153,136,124,179,183,115,124,179,188,94,124,179,166,73,124,179,119,52,124,179,46,31,124,179,203,9,124,179,79,244,123,179,185,222,123,179,9,201,123,179,64,179,123,179,93,157,123,179,96,135,123,179,74,113,123,179,26,91,123,179,209,68,123,179,110,46,123,179,241,23,123,179,91,1,123,179,172,234,122,179,227,211,122,179,0,189,
122,179,4,166,122,179,239,142,122,179,192,119,122,179,120,96,122,179,23,73,122,179,156,49,122,179,7,26,122,179,90,2,122,179,147,234,121,179,178,210,121,179,185,186,121,179,166,162,121,179,122,138,121,179,53,114,121,179,214,89,121,179,94,65,121,179,205,40,121,179,35,16,121,179,96,247,120,179,132,222,120,179,142,197,120,179,128,172,120,179,88,147,120,179,23,122,120,179,190,96,120,179,75,71,120,179,191,45,120,179,26,20,120,179,92,250,119,179,134,224,119,179,150,198,119,179,141,172,119,179,108,146,119,
179,49,120,119,179,222,93,119,179,114,67,119,179,237,40,119,179,79,14,119,179,153,243,118,179,202,216,118,179,225,189,118,179,225,162,118,179,199,135,118,179,149,108,118,179,74,81,118,179,230,53,118,179,106,26,118,179,213,254,117,179,39,227,117,179,97,199,117,179,131,171,117,179,139,143,117,179,123,115,117,179,83,87,117,179,18,59,117,179,185,30,117,179,71,2,117,179,189,229,116,179,26,201,116,179,95,172,116,179,140,143,116,179,160,114,116,179,155,85,116,179,127,56,116,179,74,27,116,179,253,253,115,
179,151,224,115,179,26,195,115,179,132,165,115,179,214,135,115,179,15,106,115,179,49,76,115,179,58,46,115,179,43,16,115,179,4,242,114,179,197,211,114,179,110,181,114,179,255,150,114,179,119,120,114,179,216,89,114,179,33,59,114,179,81,28,114,179,106,253,113,179,107,222,113,179,83,191,113,179,36,160,113,179,221,128,113,179,126,97,113,179,8,66,113,179,121,34,113,179,211,2,113,179,21,227,112,179,63,195,112,179,81,163,112,179,76,131,112,179,46,99,112,179,250,66,112,179,173,34,112,179,73,2,112,179,205,
225,111,179,58,193,111,179,143,160,111,179,204,127,111,179,242,94,111,179,0,62,111,179,247,28,111,179,214,251,110,179,158,218,110,179,79,185,110,179,232,151,110,179,105,118,110,179,211,84,110,179,38,51,110,179,98,17,110,179,134,239,109,179,147,205,109,179,136,171,109,179,102,137,109,179,46,103,109,179,221,68,109,179,118,34,109,179,247,255,108,179,98,221,108,179,181,186,108,179,241,151,108,179,22,117,108,179,35,82,108,179,26,47,108,179,250,11,108,179,195,232,107,179,116,197,107,179,15,162,107,179,
147,126,107,179,0,91,107,179,86,55,107,179,149,19,107,179,189,239,106,179,206,203,106,179,201,167,106,179,173,131,106,179,122,95,106,179,48,59,106,179,207,22,106,179,88,242,105,179,202,205,105,179,37,169,105,179,106,132,105,179,152,95,105,179,176,58,105,179,177,21,105,179,155,240,104,179,111,203,104,179,44,166,104,179,211,128,104,179,99,91,104,179,221,53,104,179,64,16,104,179,141,234,103,179,196,196,103,179,228,158,103,179,238,120,103,179,226,82,103,179,191,44,103,179,134,6,103,179,55,224,102,179,
209,185,102,179,86,147,102,179,196,108,102,179,28,70,102,179,94,31,102,179,137,248,101,179,159,209,101,179,158,170,101,179,136,131,101,179,91,92,101,179,25,53,101,179,192,13,101,179,82,230,100,179,205,190,100,179,51,151,100,179,130,111,100,179,188,71,100,179,224,31,100,179,238,247,99,179,231,207,99,179,201,167,99,179,150,127,99,179,77,87,99,179,239,46,99,179,122,6,99,179,240,221,98,179,81,181,98,179,156,140,98,179,209,99,98,179,240,58,98,179,250,17,98,179,239,232,97,179,206,191,97,179,151,150,97,
179,75,109,97,179,234,67,97,179,115,26,97,179,231,240,96,179,70,199,96,179,143,157,96,179,194,115,96,179,225,73,96,179,234,31,96,179,222,245,95,179,189,203,95,179,135,161,95,179,59,119,95,179,218,76,95,179,100,34,95,179,217,247,94,179,57,205,94,179,132,162,94,179,186,119,94,179,219,76,94,179,231,33,94,179,221,246,93,179,191,203,93,179,140,160,93,179,69,117,93,179,232,73,93,179,118,30,93,179,240,242,92,179,85,199,92,179,165,155,92,179,224,111,92,179,7,68,92,179,24,24,92,179,22,236,91,179,254,191,91,
179,210,147,91,179,145,103,91,179,60,59,91,179,210,14,91,179,84,226,90,179,193,181,90,179,26,137,90,179,94,92,90,179,142,47,90,179,169,2,90,179,176,213,89,179,163,168,89,179,129,123,89,179,75,78,89,179,1,33,89,179,163,243,88,179,48,198,88,179,169,152,88,179,14,107,88,179,94,61,88,179,155,15,88,179,195,225,87,179,216,179,87,179,216,133,87,179,196,87,87,179,157,41,87,179,97,251,86,179,17,205,86,179,174,158,86,179,54,112,86,179,171,65,86,179,12,19,86,179,88,228,85,179,146,181,85,179,183,134,85,179,200,
87,85,179,198,40,85,179,176,249,84,179,135,202,84,179,74,155,84,179,249,107,84,179,148,60,84,179,28,13,84,179,145,221,83,179,242,173,83,179,63,126,83,179,121,78,83,179,159,30,83,179,178,238,82,179,178,190,82,179,158,142,82,179,119,94,82,179,61,46,82,179,239,253,81,179,142,205,81,179,26,157,81,179,146,108,81,179,248,59,81,179,74,11,81,179,137,218,80,179,181,169,80,179,205,120,80,179,211,71,80,179,198,22,80,179,165,229,79,179,114,180,79,179,44,131,79,179,211,81,79,179,103,32,79,179,232,238,78,179,86,
189,78,179,177,139,78,179,249,89,78,179,47,40,78,179,82,246,77,179,98,196,77,179,96,146,77,179,75,96,77,179,35,46,77,179,232,251,76,179,155,201,76,179,60,151,76,179,202,100,76,179,69,50,76,179,174,255,75,179,4,205,75,179,72,154,75,179,122,103,75,179,153,52,75,179,166,1,75,179,160,206,74,179,136,155,74,179,94,104,74,179,34,53,74,179,211,1,74,179,115,206,73,179,0,155,73,179,122,103,73,179,227,51,73,179,58,0,73,179,127,204,72,179,177,152,72,179,210,100,72,179,224,48,72,179,221,252,71,179,200,200,71,
179,160,148,71,179,103,96,71,179,28,44,71,179,192,247,70,179,81,195,70,179,209,142,70,179,63,90,70,179,155,37,70,179,229,240,69,179,30,188,69,179,70,135,69,179,91,82,69,179,95,29,69,179,82,232,68,179,51,179,68,179,2,126,68,179,192,72,68,179,109,19,68,179,8,222,67,179,146,168,67,179,10,115,67,179,113,61,67,179,199,7,67,179,12,210,66,179,63,156,66,179,97,102,66,179,114,48,66,179,113,250,65,179,96,196,65,179,61,142,65,179,10,88,65,179,197,33,65,179,111,235,64,179,8,181,64,179,145,126,64,179,8,72,64,
179,110,17,64,179,196,218,63,179,9,164,63,179,60,109,63,179,95,54,63,179,114,255,62,179,115,200,62,179,100,145,62,179,68,90,62,179,19,35,62,179,210,235,61,179,128,180,61,179,30,125,61,179,171,69,61,179,39,14,61,179,147,214,60,179,239,158,60,179,58,103,60,179,116,47,60,179,158,247,59,179,184,191,59,179,194,135,59,179,187,79,59,179,164,23,59,179,125,223,58,179,69,167,58,179,254,110,58,179,166,54,58,179,62,254,57,179,198,197,57,179,62,141,57,179,165,84,57,179,253,27,57,179,69,227,56,179,125,170,56,179,
164,113,56,179,188,56,56,179,197,255,55,179,189,198,55,179,165,141,55,179,126,84,55,179,71,27,55,179,0,226,54,179,169,168,54,179,67,111,54,179,205,53,54,179,71,252,53,179,178,194,53,179,13,137,53,179,89,79,53,179,149,21,53,179,194,219,52,179,224,161,52,179,237,103,52,179,236,45,52,179,219,243,51,179,187,185,51,179,139,127,51,179,77,69,51,179,255,10,51,179,161,208,50,179,53,150,50,179,185,91,50,179,47,33,50,179,149,230,49,179,236,171,49,179,52,113,49,179,109,54,49,179,151,251,48,179,178,192,48,179,
190,133,48,179,187,74,48,179,170,15,48,179,137,212,47,179,90,153,47,179,28,94,47,179,207,34,47,179,116,231,46,179,9,172,46,179,144,112,46,179,9,53,46,179,115,249,45,179,206,189,45,179,27,130,45,179,89,70,45,179,137,10,45,179,170,206,44,179,189,146,44,179,193,86,44,179,183,26,44,179,159,222,43,179,120,162,43,179,67,102,43,179,0,42,43,179,174,237,42,179,79,177,42,179,225,116,42,179,101,56,42,179,219,251,41,179,67,191,41,179,157,130,41,179,232,69,41,179,38,9,41,179,86,204,40,179,120,143,40,179,140,82,
40,179,146,21,40,179,139,216,39,179,117,155,39,179,82,94,39,179,33,33,39,179,226,227,38,179,149,166,38,179,59,105,38,179,211,43,38,179,94,238,37,179,219,176,37,179,75,115,37,179,172,53,37,179,1,248,36,179,72,186,36,179,130,124,36,179,174,62,36,179,205,0,36,179,222,194,35,179,226,132,35,179,217,70,35,179,195,8,35,179,159,202,34,179,110,140,34,179,49,78,34,179,229,15,34,179,141,209,33,179,40,147,33,179,182,84,33,179,55,22,33,179,170,215,32,179,17,153,32,179,107,90,32,179,184,27,32,179,248,220,31,179,
43,158,31,179,82,95,31,179,108,32,31,179,121,225,30,179,121,162,30,179,109,99,30,179,84,36,30,179,46,229,29,179,252,165,29,179,189,102,29,179,114,39,29,179,26,232,28,179,182,168,28,179,69,105,28,179,200,41,28,179,62,234,27,179,168,170,27,179,6,107,27,179,88,43,27,179,157,235,26,179,214,171,26,179,3,108,26,179,36,44,26,179,56,236,25,179,65,172,25,179,61,108,25,179,46,44,25,179,18,236,24,179,234,171,24,179,183,107,24,179,119,43,24,179,44,235,23,179,213,170,23,179,114,106,23,179,3,42,23,179,136,233,
22,179,2,169,22,179,112,104,22,179,210,39,22,179,41,231,21,179,116,166,21,179,179,101,21,179,231,36,21,179,15,228,20,179,44,163,20,179,61,98,20,179,67,33,20,179,62,224,19,179,45,159,19,179,17,94,19,179,234,28,19,179,183,219,18,179,121,154,18,179,48,89,18,179,219,23,18,179,124,214,17,179,17,149,17,179,155,83,17,179,26,18,17,179,143,208,16,179,248,142,16,179,86,77,16,179,169,11,16,179,241,201,15,179,47,136,15,179,98,70,15,179,137,4,15,179,166,194,14,179,185,128,14,179,192,62,14,179,189,252,13,179,175,
186,13,179,151,120,13,179,116,54,13,179,70,244,12,179,14,178,12,179,203,111,12,179,126,45,12,179,38,235,11,179,196,168,11,179,88,102,11,179,225,35,11,179,96,225,10,179,213,158,10,179,63,92,10,179,160,25,10,179,246,214,9,179,65,148,9,179,131,81,9,179,187,14,9,179,232,203,8,179,12,137,8,179,37,70,8,179,53,3,8,179,58,192,7,179,54,125,7,179,39,58,7,179,15,247,6,179,237,179,6,179,194,112,6,179,140,45,6,179,77,234,5,179,4,167,5,179,177,99,5,179,85,32,5,179,239,220,4,179,128,153,4,179,7,86,4,179,132,18,
4,179,248,206,3,179,99,139,3,179,196,71,3,179,28,4,3,179,106,192,2,179,175,124,2,179,235,56,2,179,30,245,1,179,71,177,1,179,103,109,1,179,126,41,1,179,140,229,0,179,145,161,0,179,140,93,0,179,127,25,0,179,209,170,255,178,146,34,255,178,66,154,254,178,223,17,254,178,107,137,253,178,229,0,253,178,77,120,252,178,164,239,251,178,233,102,251,178,29,222,250,178,63,85,250,178,80,204,249,178,80,67,249,178,63,186,248,178,28,49,248,178,232,167,247,178,164,30,247,178,78,149,246,178,232,11,246,178,112,130,245,
178,232,248,244,178,79,111,244,178,166,229,243,178,236,91,243,178,33,210,242,178,70,72,242,178,91,190,241,178,95,52,241,178,83,170,240,178,55,32,240,178,11,150,239,178,206,11,239,178,130,129,238,178,37,247,237,178,185,108,237,178,61,226,236,178,177,87,236,178,22,205,235,178,107,66,235,178,176,183,234,178,230,44,234,178,12,162,233,178,35,23,233,178,42,140,232,178,35,1,232,178,12,118,231,178,230,234,230,178,177,95,230,178,109,212,229,178,26,73,229,178,184,189,228,178,71,50,228,178,200,166,227,178,58,
27,227,178,157,143,226,178,242,3,226,178,56,120,225,178,112,236,224,178,153,96,224,178,180,212,223,178,193,72,223,178,191,188,222,178,176,48,222,178,146,164,221,178,103,24,221,178,46,140,220,178,230,255,219,178,145,115,219,178,46,231,218,178,190,90,218,178,64,206,217,178,180,65,217,178,27,181,216,178,116,40,216,178,192,155,215,178,255,14,215,178,48,130,214,178,85,245,213,178,108,104,213,178,118,219,212,178,115,78,212,178,100,193,211,178,71,52,211,178,30,167,210,178,232,25,210,178,165,140,209,178,
85,255,208,178,250,113,208,178,145,228,207,178,28,87,207,178,155,201,206,178,14,60,206,178,116,174,205,178,207,32,205,178,29,147,204,178,95,5,204,178,149,119,203,178,191,233,202,178,222,91,202,178,240,205,201,178,247,63,201,178,242,177,200,178,226,35,200,178,198,149,199,178,159,7,199,178,108,121,198,178,46,235,197,178,229,92,197,178,144,206,196,178,49,64,196,178,198,177,195,178,80,35,195,178,207,148,194,178,68,6,194,178,173,119,193,178,12,233,192,178,96,90,192,178,170,203,191,178,233,60,191,178,29,
174,190,178,71,31,190,178,103,144,189,178,124,1,189,178,135,114,188,178,136,227,187,178,126,84,187,178,107,197,186,178,78,54,186,178,38,167,185,178,245,23,185,178,186,136,184,178,117,249,183,178,39,106,183,178,207,218,182,178,109,75,182,178,2,188,181,178,141,44,181,178,16,157,180,178,136,13,180,178,248,125,179,178,94,238,178,178,187,94,178,178,16,207,177,178,91,63,177,178,157,175,176,178,215,31,176,178,7,144,175,178,47,0,175,178,78,112,174,178,101,224,173,178,115,80,173,178,121,192,172,178,118,48,
172,178,107,160,171,178,87,16,171,178,59,128,170,178,24,240,169,178,236,95,169,178,184,207,168,178,124,63,168,178,56,175,167,178,236,30,167,178,152,142,166,178,61,254,165,178,218,109,165,178,112,221,164,178,254,76,164,178,132,188,163,178,3,44,163,178,123,155,162,178,236,10,162,178,85,122,161,178,183,233,160,178,18,89,160,178,102,200,159,178,179,55,159,178,249,166,158,178,57,22,158,178,113,133,157,178,163,244,156,178,206,99,156,178,243,210,155,178,17,66,155,178,41,177,154,178,58,32,154,178,69,143,
153,178,73,254,152,178,72,109,152,178,64,220,151,178,50,75,151,178,31,186,150,178,5,41,150,178,229,151,149,178,192,6,149,178,149,117,148,178,100,228,147,178,45,83,147,178,241,193,146,178,175,48,146,178,104,159,145,178,28,14,145,178,202,124,144,178,115,235,143,178,23,90,143,178,182,200,142,178,79,55,142,178,228,165,141,178,115,20,141,178,254,130,140,178,132,241,139,178,5,96,139,178,130,206,138,178,250,60,138,178,109,171,137,178,220,25,137,178,70,136,136,178,172,246,135,178,14,101,135,178,107,211,134,
178,197,65,134,178,26,176,133,178,107,30,133,178,184,140,132,178,1,251,131,178,70,105,131,178,136,215,130,178,197,69,130,178,255,179,129,178,54,34,129,178,105,144,128,178,48,253,127,178,136,217,126,178,217,181,125,178,36,146,124,178,104,110,123,178,165,74,122,178,221,38,121,178,14,3,120,178,57,223,118,178,95,187,117,178,126,151,116,178,153,115,115,178,173,79,114,178,188,43,113,178,198,7,112,178,203,227,110,178,203,191,109,178,198,155,108,178,189,119,107,178,174,83,106,178,156,47,105,178,132,11,104,
178,105,231,102,178,74,195,101,178,38,159,100,178,255,122,99,178,212,86,98,178,165,50,97,178,115,14,96,178,62,234,94,178,5,198,93,178,201,161,92,178,138,125,91,178,72,89,90,178,4,53,89,178,189,16,88,178,115,236,86,178,39,200,85,178,217,163,84,178,137,127,83,178,55,91,82,178,227,54,81,178,141,18,80,178,53,238,78,178,220,201,77,178,130,165,76,178,39,129,75,178,202,92,74,178,108,56,73,178,14,20,72,178,174,239,70,178,78,203,69,178,238,166,68,178,141,130,67,178,44,94,66,178,203,57,65,178,106,21,64,178,
9,241,62,178,168,204,61,178,71,168,60,178,231,131,59,178,136,95,58,178,41,59,57,178,204,22,56,178,111,242,54,178,19,206,53,178,185,169,52,178,96,133,51,178,8,97,50,178,178,60,49,178,94,24,48,178,12,244,46,178,187,207,45,178,109,171,44,178,33,135,43,178,215,98,42,178,144,62,41,178,75,26,40,178,9,246,38,178,202,209,37,178,142,173,36,178,85,137,35,178,31,101,34,178,236,64,33,178,189,28,32,178,146,248,30,178,106,212,29,178,70,176,28,178,38,140,27,178,10,104,26,178,242,67,25,178,223,31,24,178,207,251,
22,178,197,215,21,178,191,179,20,178,190,143,19,178,194,107,18,178,203,71,17,178,217,35,16,178,236,255,14,178,5,220,13,178,36,184,12,178,72,148,11,178,113,112,10,178,161,76,9,178,215,40,8,178,19,5,7,178,85,225,5,178,157,189,4,178,236,153,3,178,66,118,2,178,158,82,1,178,2,47,0,178,216,22,254,177,187,207,251,177,172,136,249,177,172,65,247,177,187,250,244,177,217,179,242,177,7,109,240,177,68,38,238,177,146,223,235,177,239,152,233,177,93,82,231,177,220,11,229,177,107,197,226,177,12,127,224,177,190,56,
222,177,130,242,219,177,87,172,217,177,63,102,215,177,57,32,213,177,69,218,210,177,101,148,208,177,151,78,206,177,221,8,204,177,55,195,201,177,164,125,199,177,37,56,197,177,187,242,194,177,101,173,192,177,36,104,190,177,248,34,188,177,225,221,185,177,224,152,183,177,244,83,181,177,30,15,179,177,95,202,176,177,182,133,174,177,36,65,172,177,168,252,169,177,68,184,167,177,248,115,165,177,194,47,163,177,165,235,160,177,160,167,158,177,179,99,156,177,223,31,154,177,36,220,151,177,130,152,149,177,249,84,
147,177,138,17,145,177,52,206,142,177,249,138,140,177,216,71,138,177,209,4,136,177,229,193,133,177,20,127,131,177,94,60,129,177,136,243,125,177,139,110,121,177,198,233,116,177,58,101,112,177,230,224,107,177,203,92,103,177,234,216,98,177,68,85,94,177,216,209,89,177,167,78,85,177,178,203,80,177,249,72,76,177,125,198,71,177,62,68,67,177,60,194,62,177,121,64,58,177,244,190,53,177,174,61,49,177,167,188,44,177,225,59,40,177,90,187,35,177,21,59,31,177,17,187,26,177,79,59,22,177,207,187,17,177,146,60,13,
177,152,189,8,177,225,62,4,177,222,128,255,176,131,132,246,176,178,136,237,176,108,141,228,176,178,146,219,176,134,152,210,176,231,158,201,176,215,165,192,176,87,173,183,176,103,181,174,176,9,190,165,176,62,199,156,176,6,209,147,176,99,219,138,176,85,230,129,176,187,227,113,176,250,251,95,176,105,21,78,176,11,48,60,176,225,75,42,176,237,104,24,176,48,135,6,176,90,77,233,175,204,142,197,175,183,210,161,175,67,50,124,175,27,196,52,175,253,181,218,174,212,219,23,174,233,159,5,46,144,131,209,46,109,22,
48,47,225,101,119,47,15,88,159,47,142,250,194,47,105,154,230,47,207,27,5,48,20,233,22,48,2,181,40,48,151,127,58,48,209,72,76,48,175,16,94,48,46,215,111,48,38,206,128,48,5,176,137,48,49,145,146,48,171,113,155,48,112,81,164,48,129,48,173,48,221,14,182,48,129,236,190,48,111,201,199,48,164,165,208,48,32,129,217,48,225,91,226,48,232,53,235,48,50,15,244,48,192,231,252,48,200,223,2,49,80,75,7,49,121,182,11,49,66,33,16,49,169,139,20,49,176,245,24,49,85,95,29,49,152,200,33,49,120,49,38,49,245,153,42,49,15,
2,47,49,198,105,51,49,23,209,55,49,4,56,60,49,140,158,64,49,174,4,69,49,106,106,73,49,192,207,77,49,174,52,82,49,53,153,86,49,84,253,90,49,11,97,95,49,88,196,99,49,61,39,104,49,184,137,108,49,201,235,112,49,111,77,117,49,170,174,121,49,121,15,126,49,239,55,129,49,234,103,131,49,175,151,133,49,62,199,135,49,150,246,137,49,183,37,140,49,160,84,142,49,82,131,144,49,204,177,146,49,14,224,148,49,24,14,151,49,234,59,153,49,131,105,155,49,227,150,157,49,10,196,159,49,247,240,161,49,172,29,164,49,38,74,166,
49,103,118,168,49,109,162,170,49,57,206,172,49,203,249,174,49,33,37,177,49,61,80,179,49,29,123,181,49,194,165,183,49,43,208,185,49,88,250,187,49,74,36,190,49,254,77,192,49,119,119,194,49,178,160,196,49,176,201,198,49,113,242,200,49,245,26,203,49,59,67,205,49,67,107,207,49,14,147,209,49,153,186,211,49,231,225,213,49,245,8,216,49,197,47,218,49,85,86,220,49,166,124,222,49,184,162,224,49,137,200,226,49,27,238,228,49,108,19,231,49,125,56,233,49,77,93,235,49,221,129,237,49,43,166,239,49,56,202,241,49,3,
238,243,49,141,17,246,49,212,52,248,49,218,87,250,49,157,122,252,49,29,157,254,49,173,95,0,50,171,112,1,50,134,129,2,50,64,146,3,50,217,162,4,50,79,179,5,50,163,195,6,50,213,211,7,50,229,227,8,50,210,243,9,50,157,3,11,50,69,19,12,50,203,34,13,50,46,50,14,50,110,65,15,50,139,80,16,50,133,95,17,50,91,110,18,50,15,125,19,50,159,139,20,50,11,154,21,50,84,168,22,50,121,182,23,50,122,196,24,50,88,210,25,50,17,224,26,50,166,237,27,50,23,251,28,50,100,8,30,50,140,21,31,50,143,34,32,50,110,47,33,50,40,60,
34,50,189,72,35,50,46,85,36,50,121,97,37,50,159,109,38,50,159,121,39,50,123,133,40,50,49,145,41,50,193,156,42,50,43,168,43,50,112,179,44,50,143,190,45,50,136,201,46,50,90,212,47,50,7,223,48,50,141,233,49,50,237,243,50,50,38,254,51,50,56,8,53,50,36,18,54,50,233,27,55,50,136,37,56,50,255,46,57,50,79,56,58,50,119,65,59,50,121,74,60,50,83,83,61,50,5,92,62,50,144,100,63,50,243,108,64,50,46,117,65,50,66,125,66,50,45,133,67,50,240,140,68,50,139,148,69,50,253,155,70,50,71,163,71,50,105,170,72,50,98,177,73,
50,50,184,74,50,217,190,75,50,88,197,76,50,173,203,77,50,217,209,78,50,220,215,79,50,182,221,80,50,102,227,81,50,237,232,82,50,74,238,83,50,125,243,84,50,134,248,85,50,102,253,86,50,27,2,88,50,167,6,89,50,8,11,90,50,62,15,91,50,75,19,92,50,45,23,93,50,228,26,94,50,112,30,95,50,210,33,96,50,9,37,97,50,20,40,98,50,245,42,99,50,170,45,100,50,52,48,101,50,147,50,102,50,198,52,103,50,206,54,104,50,169,56,105,50,89,58,106,50,222,59,107,50,54,61,108,50,98,62,109,50,98,63,110,50,53,64,111,50,221,64,112,50,
87,65,113,50,165,65,114,50,199,65,115,50,188,65,116,50,132,65,117,50,31,65,118,50,141,64,119,50,205,63,120,50,225,62,121,50,199,61,122,50,128,60,123,50,11,59,124,50,105,57,125,50,152,55,126,50,155,53,127,50,183,25,128,50,138,152,128,50,70,23,129,50,235,149,129,50,121,20,130,50,240,146,130,50,79,17,131,50,151,143,131,50,200,13,132,50,225,139,132,50,227,9,133,50,206,135,133,50,161,5,134,50,92,131,134,50,0,1,135,50,140,126,135,50,1,252,135,50,93,121,136,50,162,246,136,50,207,115,137,50,228,240,137,50,
226,109,138,50,199,234,138,50,148,103,139,50,73,228,139,50,230,96,140,50,107,221,140,50,216,89,141,50,44,214,141,50,104,82,142,50,140,206,142,50,151,74,143,50,138,198,143,50,100,66,144,50,38,190,144,50,207,57,145,50,96,181,145,50,216,48,146,50,55,172,146,50,126,39,147,50,172,162,147,50,192,29,148,50,188,152,148,50,159,19,149,50,105,142,149,50,26,9,150,50,178,131,150,50,49,254,150,50,151,120,151,50,227,242,151,50,22,109,152,50,48,231,152,50,49,97,153,50,24,219,153,50,229,84,154,50,153,206,154,50,52,
72,155,50,181,193,155,50,29,59,156,50,107,180,156,50,159,45,157,50,185,166,157,50,186,31,158,50,160,152,158,50,109,17,159,50,32,138,159,50,185,2,160,50,56,123,160,50,157,243,160,50,232,107,161,50,25,228,161,50,47,92,162,50,44,212,162,50,14,76,163,50,213,195,163,50,131,59,164,50,22,179,164,50,142,42,165,50,236,161,165,50,48,25,166,50,89,144,166,50,103,7,167,50,91,126,167,50,51,245,167,50,242,107,168,50,149,226,168,50,30,89,169,50,139,207,169,50,222,69,170,50,22,188,170,50,51,50,171,50,53,168,171,50,
27,30,172,50,231,147,172,50,151,9,173,50,44,127,173,50,166,244,173,50,5,106,174,50,72,223,174,50,112,84,175,50,125,201,175,50,110,62,176,50,67,179,176,50,253,39,177,50,155,156,177,50,30,17,178,50,133,133,178,50,209,249,178,50,0,110,179,50,20,226,179,50,12,86,180,50,232,201,180,50,168,61,181,50,76,177,181,50,213,36,182,50,65,152,182,50,145,11,183,50,197,126,183,50,220,241,183,50,216,100,184,50,183,215,184,50,122,74,185,50,33,189,185,50,171,47,186,50,25,162,186,50,107,20,187,50,159,134,187,50,184,248,
187,50],"i8",4,y.a+1392640);
Q([180,106,188,50,147,220,188,50,85,78,189,50,251,191,189,50,132,49,190,50,241,162,190,50,64,20,191,50,115,133,191,50,137,246,191,50,130,103,192,50,93,216,192,50,28,73,193,50,190,185,193,50,67,42,194,50,170,154,194,50,245,10,195,50,34,123,195,50,50,235,195,50,37,91,196,50,250,202,196,50,178,58,197,50,76,170,197,50,202,25,198,50,41,137,198,50,107,248,198,50,144,103,199,50,151,214,199,50,128,69,200,50,76,180,200,50,249,34,201,50,138,145,201,50,252,255,201,50,80,110,202,50,135,220,202,50,160,74,203,
50,155,184,203,50,119,38,204,50,54,148,204,50,215,1,205,50,89,111,205,50,190,220,205,50,4,74,206,50,44,183,206,50,54,36,207,50,33,145,207,50,239,253,207,50,157,106,208,50,46,215,208,50,160,67,209,50,243,175,209,50,40,28,210,50,63,136,210,50,55,244,210,50,16,96,211,50,202,203,211,50,102,55,212,50,227,162,212,50,66,14,213,50,129,121,213,50,162,228,213,50,164,79,214,50,134,186,214,50,74,37,215,50,239,143,215,50,117,250,215,50,220,100,216,50,36,207,216,50,76,57,217,50,86,163,217,50,64,13,218,50,11,119,
218,50,182,224,218,50,67,74,219,50,176,179,219,50,253,28,220,50,44,134,220,50,58,239,220,50,41,88,221,50,249,192,221,50,169,41,222,50,58,146,222,50,170,250,222,50,252,98,223,50,45,203,223,50,63,51,224,50,49,155,224,50,3,3,225,50,181,106,225,50,71,210,225,50,186,57,226,50,12,161,226,50,63,8,227,50,81,111,227,50,68,214,227,50,22,61,228,50,200,163,228,50,90,10,229,50,204,112,229,50,30,215,229,50,79,61,230,50,96,163,230,50,81,9,231,50,33,111,231,50,209,212,231,50,96,58,232,50,207,159,232,50,30,5,233,
50,76,106,233,50,89,207,233,50,70,52,234,50,18,153,234,50,189,253,234,50,72,98,235,50,178,198,235,50,251,42,236,50,36,143,236,50,43,243,236,50,18,87,237,50,216,186,237,50,125,30,238,50,0,130,238,50,99,229,238,50,165,72,239,50,198,171,239,50,198,14,240,50,164,113,240,50,97,212,240,50,254,54,241,50,121,153,241,50,210,251,241,50,11,94,242,50,34,192,242,50,23,34,243,50,235,131,243,50,158,229,243,50,48,71,244,50,160,168,244,50,238,9,245,50,27,107,245,50,38,204,245,50,16,45,246,50,216,141,246,50,126,238,
246,50,2,79,247,50,101,175,247,50,166,15,248,50,197,111,248,50,195,207,248,50,158,47,249,50,88,143,249,50,240,238,249,50,101,78,250,50,185,173,250,50,235,12,251,50,251,107,251,50,232,202,251,50,180,41,252,50,93,136,252,50,228,230,252,50,73,69,253,50,140,163,253,50,172,1,254,50,170,95,254,50,134,189,254,50,64,27,255,50,215,120,255,50,75,214,255,50,207,25,0,51,103,72,0,51,237,118,0,51,98,165,0,51,199,211,0,51,25,2,1,51,91,48,1,51,139,94,1,51,170,140,1,51,183,186,1,51,179,232,1,51,158,22,2,51,119,68,
2,51,63,114,2,51,245,159,2,51,154,205,2,51,46,251,2,51,176,40,3,51,32,86,3,51,127,131,3,51,205,176,3,51,9,222,3,51,51,11,4,51,76,56,4,51,84,101,4,51,73,146,4,51,46,191,4,51,0,236,4,51,193,24,5,51,112,69,5,51,14,114,5,51,154,158,5,51,20,203,5,51,125,247,5,51,211,35,6,51,24,80,6,51,76,124,6,51,109,168,6,51,125,212,6,51,123,0,7,51,104,44,7,51,66,88,7,51,11,132,7,51,194,175,7,51,103,219,7,51,250,6,8,51,123,50,8,51,234,93,8,51,72,137,8,51,147,180,8,51,205,223,8,51,244,10,9,51,10,54,9,51,14,97,9,51,0,140,
9,51,223,182,9,51,173,225,9,51,105,12,10,51,18,55,10,51,170,97,10,51,48,140,10,51,163,182,10,51,5,225,10,51,84,11,11,51,145,53,11,51,188,95,11,51,213,137,11,51,220,179,11,51,209,221,11,51,179,7,12,51,131,49,12,51,66,91,12,51,237,132,12,51,135,174,12,51,14,216,12,51,132,1,13,51,231,42,13,51,55,84,13,51,118,125,13,51,162,166,13,51,187,207,13,51,195,248,13,51,184,33,14,51,155,74,14,51,107,115,14,51,41,156,14,51,212,196,14,51,110,237,14,51,245,21,15,51,105,62,15,51,203,102,15,51,26,143,15,51,87,183,15,
51,130,223,15,51,154,7,16,51,160,47,16,51,147,87,16,51,115,127,16,51,66,167,16,51,253,206,16,51,166,246,16,51,61,30,17,51,192,69,17,51,50,109,17,51,144,148,17,51,220,187,17,51,22,227,17,51,61,10,18,51,81,49,18,51,82,88,18,51,65,127,18,51,29,166,18,51,231,204,18,51,158,243,18,51,66,26,19,51,211,64,19,51,82,103,19,51,190,141,19,51,23,180,19,51,93,218,19,51,145,0,20,51,178,38,20,51,192,76,20,51,187,114,20,51,164,152,20,51,121,190,20,51,60,228,20,51,236,9,21,51,137,47,21,51,19,85,21,51,138,122,21,51,
239,159,21,51,64,197,21,51,127,234,21,51,171,15,22,51,195,52,22,51,201,89,22,51,188,126,22,51,156,163,22,51,105,200,22,51,35,237,22,51,202,17,23,51,94,54,23,51,223,90,23,51,76,127,23,51,167,163,23,51,239,199,23,51,36,236,23,51,70,16,24,51,84,52,24,51,80,88,24,51,56,124,24,51,14,160,24,51,208,195,24,51,127,231,24,51,27,11,25,51,164,46,25,51,25,82,25,51,124,117,25,51,203,152,25,51,7,188,25,51,48,223,25,51,70,2,26,51,73,37,26,51,56,72,26,51,20,107,26,51,221,141,26,51,147,176,26,51,53,211,26,51,196,245,
26,51,64,24,27,51,168,58,27,51,254,92,27,51,64,127,27,51,110,161,27,51,138,195,27,51,146,229,27,51,134,7,28,51,104,41,28,51,53,75,28,51,240,108,28,51,151,142,28,51,43,176,28,51,172,209,28,51,25,243,28,51,114,20,29,51,185,53,29,51,235,86,29,51,11,120,29,51,23,153,29,51,15,186,29,51,244,218,29,51,198,251,29,51,132,28,30,51,46,61,30,51,197,93,30,51,73,126,30,51,185,158,30,51,22,191,30,51,95,223,30,51,148,255,30,51,182,31,31,51,197,63,31,51,192,95,31,51,167,127,31,51,123,159,31,51,59,191,31,51,231,222,
31,51,128,254,31,51,6,30,32,51,119,61,32,51,213,92,32,51,32,124,32,51,87,155,32,51,122,186,32,51,138,217,32,51,134,248,32,51,110,23,33,51,66,54,33,51,3,85,33,51,176,115,33,51,74,146,33,51,208,176,33,51,66,207,33,51,160,237,33,51,235,11,34,51,34,42,34,51,69,72,34,51,84,102,34,51,80,132,34,51,56,162,34,51,12,192,34,51,205,221,34,51,121,251,34,51,18,25,35,51,151,54,35,51,8,84,35,51,102,113,35,51,175,142,35,51,229,171,35,51,7,201,35,51,21,230,35,51,15,3,36,51,246,31,36,51,200,60,36,51,135,89,36,51,50,
118,36,51,201,146,36,51,76,175,36,51,187,203,36,51,22,232,36,51,93,4,37,51,145,32,37,51,177,60,37,51,188,88,37,51,180,116,37,51,152,144,37,51,103,172,37,51,35,200,37,51,203,227,37,51,95,255,37,51,223,26,38,51,75,54,38,51,163,81,38,51,232,108,38,51,24,136,38,51,52,163,38,51,60,190,38,51,48,217,38,51,16,244,38,51,220,14,39,51,148,41,39,51,56,68,39,51,200,94,39,51,68,121,39,51,172,147,39,51,0,174,39,51,64,200,39,51,108,226,39,51,132,252,39,51,135,22,40,51,119,48,40,51,82,74,40,51,26,100,40,51,205,125,
40,51,108,151,40,51,247,176,40,51,110,202,40,51,209,227,40,51,32,253,40,51,91,22,41,51,129,47,41,51,148,72,41,51,146,97,41,51,124,122,41,51,82,147,41,51,20,172,41,51,194,196,41,51,91,221,41,51,224,245,41,51,82,14,42,51,175,38,42,51,247,62,42,51,44,87,42,51,77,111,42,51,89,135,42,51,81,159,42,51,53,183,42,51,4,207,42,51,192,230,42,51,103,254,42,51,250,21,43,51,121,45,43,51,228,68,43,51,58,92,43,51,124,115,43,51,170,138,43,51,196,161,43,51,201,184,43,51,186,207,43,51,151,230,43,51,96,253,43,51,20,20,
44,51,180,42,44,51,64,65,44,51,183,87,44,51,27,110,44,51,106,132,44,51,164,154,44,51,203,176,44,51,221,198,44,51,219,220,44,51,196,242,44,51,154,8,45,51,91,30,45,51,7,52,45,51,160,73,45,51,36,95,45,51,147,116,45,51,239,137,45,51,54,159,45,51,104,180,45,51,135,201,45,51,145,222,45,51,134,243,45,51,104,8,46,51,53,29,46,51,237,49,46,51,146,70,46,51,34,91,46,51,157,111,46,51,5,132,46,51,87,152,46,51,150,172,46,51,192,192,46,51,214,212,46,51,215,232,46,51,196,252,46,51,157,16,47,51,97,36,47,51,17,56,47,
51,173,75,47,51,52,95,47,51,167,114,47,51,5,134,47,51,79,153,47,51,132,172,47,51,165,191,47,51,178,210,47,51,171,229,47,51,143,248,47,51,94,11,48,51,25,30,48,51,192,48,48,51,82,67,48,51,208,85,48,51,57,104,48,51,142,122,48,51,207,140,48,51,251,158,48,51,19,177,48,51,22,195,48,51,5,213,48,51,224,230,48,51,166,248,48,51,87,10,49,51,244,27,49,51,125,45,49,51,241,62,49,51,81,80,49,51,157,97,49,51,212,114,49,51,246,131,49,51,4,149,49,51,254,165,49,51,227,182,49,51,180,199,49,51,112,216,49,51,24,233,49,
51,171,249,49,51,42,10,50,51,148,26,50,51,234,42,50,51,44,59,50,51,89,75,50,51,114,91,50,51,118,107,50,51,101,123,50,51,65,139,50,51,7,155,50,51,186,170,50,51,87,186,50,51,225,201,50,51,86,217,50,51,182,232,50,51,2,248,50,51,57,7,51,51,92,22,51,51,107,37,51,51,101,52,51,51,75,67,51,51,28,82,51,51,216,96,51,51,128,111,51,51,20,126,51,51,147,140,51,51,254,154,51,51,84,169,51,51,150,183,51,51,195,197,51,51,220,211,51,51,225,225,51,51,208,239,51,51,172,253,51,51,115,11,52,51,37,25,52,51,195,38,52,51,
77,52,52,51,194,65,52,51,34,79,52,51,110,92,52,51,166,105,52,51,201,118,52,51,216,131,52,51,210,144,52,51,184,157,52,51,137,170,52,51,70,183,52,51,238,195,52,51,130,208,52,51,1,221,52,51,108,233,52,51,195,245,52,51,5,2,53,51,50,14,53,51,75,26,53,51,80,38,53,51,64,50,53,51,27,62,53,51,227,73,53,51,149,85,53,51,51,97,53,51,189,108,53,51,51,120,53,51,147,131,53,51,224,142,53,51,24,154,53,51,59,165,53,51,74,176,53,51,69,187,53,51,43,198,53,51,253,208,53,51,186,219,53,51,99,230,53,51,247,240,53,51,119,
251,53,51,226,5,54,51,57,16,54,51,124,26,54,51,170,36,54,51,196,46,54,51,201,56,54,51,186,66,54,51,150,76,54,51,94,86,54,51,18,96,54,51,177,105,54,51,59,115,54,51,178,124,54,51,19,134,54,51,97,143,54,51,154,152,54,51,190,161,54,51,206,170,54,51,202,179,54,51,177,188,54,51,132,197,54,51,67,206,54,51,237,214,54,51,131,223,54,51,4,232,54,51,113,240,54,51,201,248,54,51,14,1,55,51,61,9,55,51,89,17,55,51,96,25,55,51,82,33,55,51,48,41,55,51,250,48,55,51,176,56,55,51,81,64,55,51,221,71,55,51,86,79,55,51,
186,86,55,51,9,94,55,51,68,101,55,51,107,108,55,51,126,115,55,51,124,122,55,51,102,129,55,51,59,136,55,51,252,142,55,51,169,149,55,51,66,156,55,51,198,162,55,51,54,169,55,51,145,175,55,51,216,181,55,51,11,188,55,51,42,194,55,51,52,200,55,51,42,206,55,51,11,212,55,51,217,217,55,51,146,223,55,51,54,229,55,51,199,234,55,51,67,240,55,51,171,245,55,51,254,250,55,51,61,0,56,51,104,5,56,51,127,10,56,51,130,15,56,51,112,20,56,51,74,25,56,51,15,30,56,51,193,34,56,51,94,39,56,51,231,43,56,51,91,48,56,51,188,
52,56,51,8,57,56,51,64,61,56,51,100,65,56,51,115,69,56,51,111,73,56,51,86,77,56,51,41,81,56,51,231,84,56,51,146,88,56,51,40,92,56,51,170,95,56,51,24,99,56,51,114,102,56,51,183,105,56,51,233,108,56,51,6,112,56,51,15,115,56,51,4,118,56,51,228,120,56,51,177,123,56,51,105,126,56,51,14,129,56,51,158,131,56,51,26,134,56,51,130,136,56,51,213,138,56,51,21,141,56,51,65,143,56,51,88,145,56,51,91,147,56,51,74,149,56,51,38,151,56,51,237,152,56,51,159,154,56,51,62,156,56,51,201,157,56,51,64,159,56,51,162,160,
56,51,241,161,56,51,44,163,56,51,82,164,56,51,101,165,56,51,99,166,56,51,77,167,56,51,36,168,56,51,230,168,56,51,148,169,56,51,47,170,56,51,181,170,56,51,39,171,56,51,134,171,56,51,208,171,56,51,6,172,56,51,41,172,56,51,55,172,56,51,49,172,56,51,24,172,56,51,234,171,56,51,169,171,56,51,84,171,56,51,234,170,56,51,109,170,56,51,220,169,56,51,55,169,56,51,126,168,56,51,177,167,56,51,208,166,56,51,220,165,56,51,211,164,56,51,183,163,56,51,134,162,56,51,66,161,56,51,234,159,56,51,126,158,56,51,254,156,
56,51,107,155,56,51,195,153,56,51,8,152,56,51,57,150,56,51,86,148,56,51,95,146,56,51,85,144,56,51,54,142,56,51,4,140,56,51,190,137,56,51,101,135,56,51,247,132,56,51,118,130,56,51,225,127,56,51,56,125,56,51,124,122,56,51,172,119,56,51,200,116,56,51,208,113,56,51,197,110,56,51,166,107,56,51,115,104,56,51,44,101,56,51,210,97,56,51,100,94,56,51,227,90,56,51,78,87,56,51,165,83,56,51,232,79,56,51,24,76,56,51,53,72,56,51,61,68,56,51,50,64,56,51,20,60,56,51,225,55,56,51,155,51,56,51,66,47,56,51,213,42,56,
51,84,38,56,51,192,33,56,51,24,29,56,51,93,24,56,51,142,19,56,51,172,14,56,51,182,9,56,51,173,4,56,51,144,255,55,51,95,250,55,51,27,245,55,51,196,239,55,51,89,234,55,51,219,228,55,51,73,223,55,51,163,217,55,51,235,211,55,51,30,206,55,51,63,200,55,51,76,194,55,51,69,188,55,51,43,182,55,51,254,175,55,51,189,169,55,51,105,163,55,51,1,157,55,51,135,150,55,51,248,143,55,51,87,137,55,51,162,130,55,51,218,123,55,51,254,116,55,51,15,110,55,51,13,103,55,51,247,95,55,51,207,88,55,51,146,81,55,51,67,74,55,51,
224,66,55,51,107,59,55,51,225,51,55,51,69,44,55,51,149,36,55,51,210,28,55,51,252,20,55,51,19,13,55,51,23,5,55,51,7,253,54,51,228,244,54,51,174,236,54,51,101,228,54,51,9,220,54,51,153,211,54,51,23,203,54,51,129,194,54,51,216,185,54,51,28,177,54,51,77,168,54,51,107,159,54,51,118,150,54,51,109,141,54,51,82,132,54,51,36,123,54,51,226,113,54,51,142,104,54,51,38,95,54,51,172,85,54,51,30,76,54,51,126,66,54,51,202,56,54,51,4,47,54,51,43,37,54,51,62,27,54,51,63,17,54,51,45,7,54,51,7,253,53,51,207,242,53,51,
132,232,53,51,38,222,53,51,182,211,53,51,50,201,53,51,155,190,53,51,242,179,53,51,54,169,53,51,103,158,53,51,133,147,53,51,144,136,53,51,137,125,53,51,110,114,53,51,65,103,53,51,1,92,53,51,175,80,53,51,73,69,53,51,209,57,53,51,70,46,53,51,169,34,53,51,249,22,53,51,54,11,53,51,96,255,52,51,119,243,52,51,124,231,52,51,111,219,52,51,78,207,52,51,27,195,52,51,214,182,52,51,125,170,52,51,19,158,52,51,149,145,52,51,5,133,52,51,98,120,52,51,173,107,52,51,230,94,52,51,11,82,52,51,30,69,52,51,31,56,52,51,
13,43,52,51,233,29,52,51,178,16,52,51,105,3,52,51,13,246,51,51,159,232,51,51,30,219,51,51,139,205,51,51,229,191,51,51,45,178,51,51,99,164,51,51,134,150,51,51,151,136,51,51,150,122,51,51,130,108,51,51,92,94,51,51,35,80,51,51,216,65,51,51,123,51,51,51,12,37,51,51,138,22,51,51,246,7,51,51,80,249,50,51,151,234,50,51,204,219,50,51,239,204,50,51,0,190,50,51,255,174,50,51,235,159,50,51,197,144,50,51,141,129,50,51,67,114,50,51,231,98,50,51,121,83,50,51,248,67,50,51,101,52,50,51,193,36,50,51,10,21,50,51,65,
5,50,51,102,245,49,51,121,229,49,51,122,213,49,51,105,197,49,51,70,181,49,51,16,165,49,51,201,148,49,51,112,132,49,51,5,116,49,51,136,99,49,51,249,82,49,51,88,66,49,51,165,49,49,51,225,32,49,51,10,16,49,51,34,255,48,51,39,238,48,51,27,221,48,51,253,203,48,51,205,186,48,51,139,169,48,51,56,152,48,51,211,134,48,51,91,117,48,51,211,99,48,51,56,82,48,51,140,64,48,51,206,46,48,51,254,28,48,51,28,11,48,51,41,249,47,51,36,231,47,51,14,213,47,51,229,194,47,51,171,176,47,51,96,158,47,51,3,140,47,51,148,121,
47,51,20,103,47,51,130,84,47,51,223,65,47,51,42,47,47,51,99,28,47,51,139,9,47,51,161,246,46,51,166,227,46,51,154,208,46,51,124,189,46,51,76,170,46,51,11,151,46,51,185,131,46,51,85,112,46,51,224,92,46,51,90,73,46,51,194,53,46,51,24,34,46,51,94,14,46,51,146,250,45,51,180,230,45,51,198,210,45,51,198,190,45,51,181,170,45,51,146,150,45,51,94,130,45,51,25,110,45,51,195,89,45,51,92,69,45,51,227,48,45,51,89,28,45,51,190,7,45,51,18,243,44,51,85,222,44,51,134,201,44,51,167,180,44,51,182,159,44,51,180,138,44,
51,161,117,44,51,125,96,44,51,72,75,44,51,2,54,44,51,171,32,44,51,67,11,44,51,202,245,43,51,64,224,43,51,165,202,43,51,249,180,43,51,60,159,43,51,111,137,43,51,144,115,43,51,160,93,43,51,160,71,43,51,143,49,43,51,108,27,43,51,57,5,43,51,245,238,42,51,161,216,42,51,59,194,42,51,197,171,42,51,62,149,42,51,166,126,42,51,254,103,42,51,69,81,42,51,123,58,42,51,160,35,42,51,181,12,42,51,185,245,41,51,172,222,41,51,143,199,41,51,97,176,41,51,34,153,41,51,211,129,41,51,116,106,41,51,4,83,41,51,131,59,41,
51,241,35,41,51,80,12,41,51,157,244,40,51,219,220,40,51,7,197,40,51,36,173,40,51,47,149,40,51,43,125,40,51,22,101,40,51,240,76,40,51,187,52,40,51,116,28,40,51,30,4,40,51,183,235,39,51,64,211,39,51,184,186,39,51,33,162,39,51,121,137,39,51,192,112,39,51,248,87,39,51,31,63,39,51,54,38,39,51,61,13,39,51,51,244,38,51,26,219,38,51,240,193,38,51,182,168,38,51,108,143,38,51,18,118,38,51,168,92,38,51,46,67,38,51,163,41,38,51,9,16,38,51,95,246,37,51,164,220,37,51,218,194,37,51,255,168,37,51,21,143,37,51,27,
117,37,51,17,91,37,51,246,64,37,51,204,38,37,51,146,12,37,51,73,242,36,51,239,215,36,51,133,189,36,51,12,163,36,51,131,136,36,51,234,109,36,51,65,83,36,51,137,56,36,51,192,29,36,51,232,2,36,51,1,232,35,51,9,205,35,51,2,178,35,51,236,150,35,51,197,123,35,51,143,96,35,51,74,69,35,51,244,41,35,51,144,14,35,51,27,243,34,51,151,215,34,51,4,188,34,51,97,160,34,51,174,132,34,51,236,104,34,51,27,77,34,51,58,49,34,51,74,21,34,51,74,249,33,51,59,221,33,51,28,193,33,51,238,164,33,51,177,136,33,51,100,108,33,
51,8,80,33,51,157,51,33,51,34,23,33,51,153,250,32,51,255,221,32,51,87,193,32,51,160,164,32,51,217,135,32,51,3,107,32,51,30,78,32,51,41,49,32,51,38,20,32,51,20,247,31,51,242,217,31,51,193,188,31,51,129,159,31,51,50,130,31,51,213,100,31,51,104,71,31,51,236,41,31,51,97,12,31,51,199,238,30,51,30,209,30,51,102,179,30,51,159,149,30,51,202,119,30,51,229,89,30,51,242,59,30,51,240,29,30,51,223,255,29,51,191,225,29,51,144,195,29,51,83,165,29,51,6,135,29,51,171,104,29,51,66,74,29,51,201,43,29,51,66,13,29,51,
172,238,28,51,8,208,28,51,85,177,28,51,147,146,28,51,195,115,28,51,228,84,28,51,246,53,28,51,250,22,28,51,240,247,27,51,214,216,27,51,175,185,27,51,121,154,27,51,52,123,27,51,225,91,27,51,127,60,27,51,16,29,27,51,145,253,26,51,5,222,26,51,105,190,26,51,192,158,26,51,8,127,26,51,66,95,26,51,110,63,26,51,139,31,26,51,154,255,25,51,155,223,25,51,142,191,25,51,114,159,25,51,72,127,25,51,17,95,25,51,202,62,25,51,118,30,25,51,20,254,24,51,163,221,24,51,37,189,24,51,152,156,24,51,254,123,24,51,85,91,24,
51,158,58,24,51,218,25,24,51,7,249,23,51,39,216,23,51,56,183,23,51,60,150,23,51,49,117,23,51,25,84,23,51,243,50,23,51,191,17,23,51,125,240,22,51,46,207,22,51,208,173,22,51,101,140,22,51,236,106,22,51,102,73,22,51,209,39,22,51,47,6,22,51,127,228,21,51,194,194,21,51,247,160,21,51,30,127,21,51,56,93,21,51,68,59,21,51,67,25,21,51,52,247,20,51,23,213,20,51,237,178,20,51,181,144,20,51,112,110,20,51,30,76,20,51,190,41,20,51,81,7,20,51,214,228,19,51,78,194,19,51,184,159,19,51,21,125,19,51,101,90,19,51,168,
55,19,51,221,20,19,51,5,242,18,51,31,207,18,51,45,172,18,51,45,137,18,51,32,102,18,51,6,67,18,51,222,31,18,51,170,252,17,51,104,217,17,51,26,182,17,51,190,146,17,51,85,111,17,51,223,75,17,51,92,40,17,51,204,4,17,51,47,225,16,51,133,189,16,51,206,153,16,51,11,118,16,51,58,82,16,51,92,46,16,51,114,10,16,51,122,230,15,51,118,194,15,51,101,158,15,51,71,122,15,51,29,86,15,51,229,49,15,51,161,13,15,51,80,233,14,51,243,196,14,51,136,160,14,51,17,124,14,51,142,87,14,51,254,50,14,51,97,14,14,51,183,233,13,
51,1,197,13,51,63,160,13,51,112,123,13,51,148,86,13,51,172,49,13,51,184,12,13,51,183,231,12,51,169,194,12,51,143,157,12,51,105,120,12,51,55,83,12,51,248,45,12,51,172,8,12,51,85,227,11,51,241,189,11,51,128,152,11,51,4,115,11,51,123,77,11,51,230,39,11,51,69,2,11,51,152,220,10,51,222,182,10,51,25,145,10,51,71,107,10,51,105,69,10,51,127,31,10,51,137,249,9,51,135,211,9,51,121,173,9,51,95,135,9,51,57,97,9,51,7,59,9,51,201,20,9,51,127,238,8,51,41,200,8,51,199,161,8,51,89,123,8,51,224,84,8,51,91,46,8,51,
202,7,8,51,45,225,7,51,132,186,7,51,208,147,7,51,16,109,7,51,68,70,7,51,108,31,7,51,137,248,6,51,154,209,6,51,160,170,6,51,154,131,6,51,136,92,6,51,107,53,6,51,66,14,6,51,14,231,5,51,206,191,5,51,131,152,5,51,44,113,5,51,202,73,5,51,92,34,5,51,227,250,4,51,95,211,4,51,207,171,4,51,52,132,4,51,141,92,4,51,220,52,4,51,31,13,4,51,86,229,3,51,131,189,3,51,164,149,3,51,186,109,3,51,197,69,3,51,196,29,3,51,185,245,2,51,162,205,2,51,128,165,2,51,84,125,2,51,28,85,2,51,217,44,2,51,139,4,2,51,50,220,1,51,
206,179,1,51,95,139,1,51,229,98,1,51,96,58,1,51,209,17,1,51,54,233,0,51,145,192,0,51,225,151,0,51,37,111,0,51,96,70,0,51,143,29,0,51,103,233,255,50,155,151,255,50,185,69,255,50,194,243,254,50,182,161,254,50,148,79,254,50,93,253,253,50,17,171,253,50,175,88,253,50,57,6,253,50,173,179,252,50,12,97,252,50,87,14,252,50,140,187,251,50,172,104,251,50,184,21,251,50,174,194,250,50,144,111,250,50,93,28,250,50,21,201,249,50,185,117,249,50,72,34,249,50,194,206,248,50,40,123,248,50,121,39,248,50,182,211,247,50,
222,127,247,50,242,43,247,50,242,215,246,50,221,131,246,50,180,47,246,50,119,219,245,50,37,135,245,50,192,50,245,50,70,222,244,50,184,137,244,50,23,53,244,50,97,224,243,50,151,139,243,50,186,54,243,50,200,225,242,50,195,140,242,50,170,55,242,50,125,226,241,50,61,141,241,50,233,55,241,50,129,226,240,50,6,141,240,50,119,55,240,50,213,225,239,50,31,140,239,50,86,54,239,50,122,224,238,50,138,138,238,50,135,52,238,50,113,222,237,50,72,136,237,50,12,50,237,50,188,219,236,50,89,133,236,50,228,46,236,50,
91,216,235,50,192,129,235,50,17,43,235,50,80,212,234,50,124,125,234,50,149,38,234,50,156,207,233,50,143,120,233,50,113,33,233,50,63,202,232,50,251,114,232,50,165,27,232,50,60,196,231,50,193,108,231,50,51,21,231,50,147,189,230,50,225,101,230,50,28,14,230,50,69,182,229,50,93,94,229,50,98,6,229,50,85,174,228,50,53,86,228,50,4,254,227,50,193,165,227,50,108,77,227,50,6,245,226,50,141,156,226,50,3,68,226,50,102,235,225,50,185,146,225,50,249,57,225,50,40,225,224,50,70,136,224,50,81,47,224,50,76,214,223,
50,53,125,223,50,12,36,223,50,211,202,222,50,136,113,222,50,43,24,222,50,190,190,221,50,63,101,221,50,175,11,221,50,14,178,220,50,92,88,220,50,153,254,219,50,198,164,219,50,225,74,219,50,235,240,218,50,229,150,218,50,205,60,218,50,165,226,217,50,109,136,217,50,35,46,217,50,201,211,216,50,95,121,216,50,228,30,216,50,88,196,215,50,188,105,215,50,16,15,215,50,83,180,214,50,134,89,214,50,169,254,213,50,187,163,213,50,189,72,213,50,176,237,212,50,146,146,212,50,100,55,212,50,38,220,211,50,216,128,211,
50,122,37,211,50,12,202,210,50,143,110,210,50,2,19,210,50,101,183,209,50,184,91,209,50,252,255,208,50,48,164,208,50,84,72,208,50,105,236,207,50,110,144,207,50,100,52,207,50,75,216,206,50,34,124,206,50,234,31,206,50,163,195,205,50,76,103,205,50,231,10,205,50,114,174,204,50,238,81,204,50,91,245,203,50,185,152,203,50,8,60,203,50,73,223,202,50,122,130,202,50,157,37,202,50,176,200,201,50,181,107,201,50,172,14,201,50,147,177,200,50,109,84,200,50,55,247,199,50,243,153,199,50,161,60,199,50,64,223,198,50,
209,129,198,50,83,36,198,50,199,198,197,50,45,105,197,50,133,11,197,50,206,173,196,50,10,80,196,50,55,242,195,50,86,148,195,50,104,54,195,50,107,216,194,50,96,122,194,50,72,28,194,50,34,190,193,50,238,95,193,50,172,1,193,50,93,163,192,50,0,69,192,50,149,230,191,50,29,136,191,50,152,41,191,50,5,203,190,50,100,108,190,50,182,13,190,50,251,174,189,50,51,80,189,50,93,241,188,50,122,146,188,50,138,51,188,50,141,212,187,50,131,117,187,50,108,22,187,50,71,183,186,50,22,88,186,50,216,248,185,50,142,153,185,
50,54,58,185,50,210,218,184,50,97,123,184,50,227,27,184,50,89,188,183,50,194,92,183,50,31,253,182,50,111,157,182,50,178,61,182,50,234,221,181,50,21,126,181,50,51,30,181,50,70,190,180,50,76,94,180,50,70,254,179,50,52,158,179,50,22,62,179,50,235,221,178,50,181,125,178,50,115,29,178,50,37,189,177,50,203,92,177,50,101,252,176,50,244,155,176,50,119,59,176,50,238,218,175,50,89,122,175,50,185,25,175,50,13,185,174,50,86,88,174,50,147,247,173,50,197,150,173,50,236,53,173,50,7,213,172,50,23,116,172,50,28,19,
172,50,21,178,171,50,4,81,171,50,231,239,170,50,191,142,170,50,141,45,170,50,79,204,169,50,6,107,169,50,179,9,169,50,84,168,168,50,235,70,168,50,119,229,167,50,249,131,167,50,112,34,167,50,220,192,166,50,61,95,166,50,148,253,165,50,225,155,165,50,35,58,165,50,91,216,164,50,136,118,164,50,171,20,164,50,196,178,163,50,211,80,163,50,215,238,162,50,210,140,162,50,194,42,162,50,168,200,161,50,133,102,161,50,87,4,161,50,32,162,160,50,222,63,160,50,147,221,159,50,62,123,159,50,223,24,159,50,119,182,158,
50,5,84,158,50,137,241,157,50,4,143,157,50,118,44,157,50,222,201,156,50,60,103,156,50,146,4,156,50,222,161,155,50,32,63,155,50,90,220,154,50,138,121,154,50,177,22,154,50,207,179,153,50,228,80,153,50,240,237,152,50,243,138,152,50,237,39,152,50,222,196,151,50,199,97,151,50,166,254,150,50,125,155,150,50,75,56,150,50,17,213,149,50,206,113,149,50,130,14,149,50,46,171,148,50,210,71,148,50,109,228,147,50,255,128,147,50,138,29,147,50,12,186,146,50,134,86,146,50,247,242,145,50,97,143,145,50,194,43,145,50,
27,200,144,50,109,100,144,50,182,0,144,50,247,156,143,50,49,57,143,50,99,213,142,50,141,113,142,50,175,13,142,50,201,169,141,50,220,69,141,50,231,225,140,50,235,125,140,50,231,25,140,50,219,181,139,50,201,81,139,50,174,237,138,50,141,137,138,50,100,37,138,50,52,193,137,50,253,92,137,50,190,248,136,50,121,148,136,50,44,48,136,50,216,203,135,50,126,103,135,50,28,3,135,50,179,158,134,50,68,58,134,50,206,213,133,50,81,113,133,50,205,12,133,50,67,168,132,50,178,67,132,50,26,223,131,50,124,122,131,50,216,
21,131,50,45,177,130,50,123,76,130,50,196,231,129,50,6,131,129,50,65,30,129,50,119,185,128,50,166,84,128,50,158,223,127,50,228,21,127,50,30,76,126,50,76,130,125,50,110,184,124,50,132,238,123,50,143,36,123,50,142,90,122,50,129,144,121,50,105,198,120,50,69,252,119,50,22,50,119,50,220,103,118,50,151,157,117,50,71,211,116,50,236,8,116,50,134,62,115,50,21,116,114,50,154,169,113,50,20,223,112,50,132,20,112,50,233,73,111,50,68,127,110,50,148,180,109,50,219,233,108,50,24,31,108,50,74,84,107,50,115,137,106,
50,146,190,105,50,167,243,104,50,179,40,104,50,181,93,103,50,174,146,102,50,157,199,101,50,132,252,100,50,97,49,100,50,53,102,99,50,0,155,98,50,194,207,97,50,123,4,97,50,44,57,96,50,212,109,95,50,116,162,94,50,11,215,93,50,154,11,93,50,32,64,92,50,159,116,91,50,21,169,90,50,131,221,89,50,234,17,89,50,72,70,88,50,159,122,87,50,239,174,86,50,54,227,85,50,119,23,85,50,176,75,84,50,225,127,83,50,12,180,82,50,47,232,81,50,75,28,81,50,97,80,80,50,111,132,79,50,119,184,78,50,121,236,77,50,115,32,77,50,103,
84,76,50,85,136,75,50,61,188,74,50,30,240,73,50,249,35,73,50,206,87,72,50,157,139,71,50,103,191,70,50,42,243,69,50,232,38,69,50,161,90,68,50,83,142,67,50,1,194,66,50,169,245,65,50,76,41,65,50,233,92,64,50,130,144,63,50,22,196,62,50,165,247,61,50,47,43,61,50,180,94,60,50,53,146,59,50,177,197,58,50,40,249,57,50,156,44,57,50,11,96,56,50,118,147,55,50,221,198,54,50,64,250,53,50,158,45,53,50,250,96,52,50,81,148,51,50,165,199,50,50,245,250,49,50,66,46,49,50,139,97,48,50,209,148,47,50,20,200,46,50,84,251,
45,50,144,46,45,50,202,97,44,50,1,149,43,50,53,200,42,50,103,251,41,50,150,46,41,50,194,97,40,50,236,148,39,50,20,200,38,50,57,251,37,50,92,46,37,50,125,97,36,50,157,148,35,50,186,199,34,50,214,250,33,50,239,45,33,50,8,97,32,50,30,148,31,50,52,199,30,50,71,250,29,50,90,45,29,50,108,96,28,50,124,147,27,50,139,198,26,50,154,249,25,50,167,44,25,50,180,95,24,50,192,146,23,50,204,197,22,50,215,248,21,50,226,43,21,50,236,94,20,50,246,145,19,50,0,197,18,50,10,248,17,50,20,43,17,50,30,94,16,50,41,145,15,
50,51,196,14,50,62,247,13,50,74,42,13,50,86,93,12,50,99,144,11,50,112,195,10,50,127,246,9,50,142,41,9,50,158,92,8,50,175,143,7,50,194,194,6,50,214,245,5,50,235,40,5,50,1,92,4,50,25,143,3,50,51,194,2,50,78,245,1,50,107,40,1,50,138,91,0,50,86,29,255,49,156,131,253,49,230,233,251,49,53,80,250,49,136,182,248,49,224,28,247,49,61,131,245,49,159,233,243,49,6,80,242,49,115,182,240,49,229,28,239,49,93,131,237,49,219,233,235,49,96,80,234,49,234,182,232,49,123,29,231,49,19,132,229,49,178,234,227,49,87,81,226,
49,4,184,224,49,184,30,223,49,116,133,221,49,55,236,219,49,2,83,218,49,214,185,216,49,177,32,215,49,149,135,213,49,130,238,211,49,119,85,210,49,117,188,208,49,124,35,207,49,140,138,205,49,166,241,203,49,201,88,202,49,246,191,200,49,46,39,199,49,111,142,197,49,186,245,195,49,16,93,194,49,112,196,192,49,220,43,191,49,82,147,189,49,211,250,187,49,96,98,186,49,248,201,184,49,155,49,183,49,75,153,181,49,6,1,180,49,206,104,178,49,162,208,176,49,130,56,175,49,111,160,173,49,105,8,172,49,112,112,170,49,132,
216,168,49,165,64,167,49,212,168,165,49,17,17,164,49,91,121,162,49,179,225,160,49,26,74,159,49,143,178,157,49,18,27,156,49,164,131,154,49,69,236,152,49,245,84,151,49,180,189,149,49,131,38,148,49,97,143,146,49,79,248,144,49,76,97,143,49,90,202,141,49,120,51,140,49,166,156,138,49,229,5,137,49,52,111,135,49,149,216,133,49,6,66,132,49,137,171,130,49,29,21,129,49,132,253,126,49,243,208,123,49,133,164,120,49,59,120,117,49,22,76,114,49,22,32,111,49,58,244,107,49,132,200,104,49,244,156,101,49,138,113,98,
49,70,70,95,49,41,27,92,49,52,240,88,49,101,197,85,49,191,154,82,49,64,112,79,49,234,69,76,49,189,27,73,49,185,241,69,49,222,199,66,49,45,158,63,49,167,116,60,49,74,75,57,49,24,34,54,49,18,249,50,49,55,208,47,49,135,167,44,49,4,127,41,49,173,86,38,49,131,46,35,49,134,6,32,49,182,222,28,49,20,183,25,49,161,143,22,49,91,104,19,49,68,65,16,49,93,26,13,49,164,243,9,49,28,205,6,49,195,166,3,49,155,128,0,49,71,181,250,48,187,105,244,48,144,30,238,48,202,211,231,48,103,137,225,48,105,63,219,48,208,245,212,
48,157,172,206,48,209,99,200,48,108,27,194,48,111,211,187,48,219,139,181,48,176,68,175,48,239,253,168,48,152,183,162,48,173,113,156,48,46,44,150,48,27,231,143,48,117,162,137,48,61,94,131,48,230,52,122,48,49,174,109,48,92,40,97,48,103,163,84,48,85,31,72,48,38,156,59,48,220,25,47,48,119,152,34,48,250,23,22,48,102,152,9,48,118,51,250,47,247,55,225,47,81,62,200,47,134,70,175,47,153,80,150,47,26,185,122,47,201,212,72,47,67,244,22,47,27,47,202,46,183,250,76,46,127,212,180,43,239,157,65,174,118,105,196,
174,16,254,19,175,118,195,69,175,231,132,119,175,47,161,148,175,236,125,173,175,166,88,198,175,92,49,223,175,11,8,248,175,88,110,8,176,164,215,20,176,234,63,33,176,38,167,45,176,89,13,58,176,129,114,70,176,156,214,82,176,169,57,95,176,168,155,107,176,150,252,119,176,57,46,130,176,158,93,136,176,121,140,142,176,202,186,148,176,143,232,154,176,200,21,161,176,116,66,167,176,148,110,173,176,37,154,179,176,41,197,185,176,157,239,191,176,129,25,198,176,213,66,204,176,153,107,210,176,202,147,216,176,106,
187,222,176,118,226,228,176,239,8,235,176,212,46,241,176,37,84,247,176,224,120,253,176,131,206,1,177,74,224,4,177,198,241,7,177,245,2,11,177,217,19,14,177,112,36,17,177,186,52,20,177,183,68,23,177,103,84,26,177,201,99,29,177,220,114,32,177,162,129,35,177,24,144,38,177,64,158,41,177,24,172,44,177,161,185,47,177,218,198,50,177,194,211,53,177,90,224,56,177,161,236,59,177,151,248,62,177,60,4,66,177,142,15,69,177,143,26,72,177,61,37,75,177,152,47,78,177,161,57,81,177,86,67,84,177,184,76,87,177,197,85,
90,177,127,94,93,177,227,102,96,177,244,110,99,177,174,118,102,177,20,126,105,177,35,133,108,177,221,139,111,177,64,146,114,177,77,152,117,177,3,158,120,177,97,163,123,177,104,168,126,177,139,214,128,177,183,88,130,177,182,218,131,177,136,92,133,177,47,222,134,177,168,95,136,177,245,224,137,177,20,98,139,177,7,227,140,177,204,99,142,177,100,228,143,177,206,100,145,177,11,229,146,177,25,101,148,177,250,228,149,177,172,100,151,177,48,228,152,177,133,99,154,177,172,226,155,177,164,97,157,177,109,224,
158,177,8,95,160,177,114,221,161,177,174,91,163,177,186,217,164,177,150,87,166,177,66,213,167,177,191,82,169,177,11,208,170,177,39,77,172,177,19,202,173,177,206,70,175,177,88,195,176,177,177,63,178,177,218,187,179,177,209,55,181,177,151,179,182,177,44,47,184,177,143,170,185,177,192,37,187,177,191,160,188,177,140,27,190,177,40,150,191,177,144,16,193,177,199,138,194,177,202,4,196,177,155,126,197,177,57,248,198,177,164,113,200,177,220,234,201,177,225,99,203,177,178,220,204,177,79,85,206,177,184,205,
207,177,238,69,209,177,240,189,210,177,189,53,212,177,86,173,213,177,186,36,215,177,234,155,216,177,229,18,218,177,172,137,219,177,61,0,221,177,152,118,222,177,191,236,223,177,176,98,225,177,107,216,226,177,241,77,228,177,64,195,229,177,90,56,231,177,61,173,232,177,234,33,234,177,97,150,235,177,161,10,237,177,170,126,238,177,124,242,239,177,23,102,241,177,123,217,242,177,167,76,244,177,156,191,245,177,90,50,247,177,223,164,248,177,45,23,250,177,67,137,251,177,32,251,252,177,197,108,254,177,50,222,
255,177,179,167,0,178,49,96,1,178,146,24,2,178,214,208,2,178,255,136,3,178,10,65,4,178,249,248,4,178,203,176,5,178,128,104,6,178,24,32,7,178,147,215,7,178,241,142,8,178,50,70,9,178,85,253,9,178,92,180,10,178,69,107,11,178,16,34,12,178,191,216,12,178,79,143,13,178,194,69,14,178,23,252,14,178,79,178,15,178,105,104,16,178,100,30,17,178,66,212,17,178,2,138,18,178,164,63,19,178,39,245,19,178,140,170,20,178,211,95,21,178,252,20,22,178,6,202,22,178,242,126,23,178,191,51,24,178,109,232,24,178,253,156,25,
178,109,81,26,178,192,5,27,178,243,185,27,178,7,110,28,178,252,33,29,178,210,213,29,178,137,137,30,178,32,61,31,178,152,240,31,178,241,163,32,178,42,87,33,178,68,10,34,178,63,189,34,178,25,112,35,178,212,34,36,178,111,213,36,178,234,135,37,178,70,58,38,178,129,236,38,178,156,158,39,178,151,80,40,178,114,2,41,178,45,180,41,178,200,101,42,178,66,23,43,178,155,200,43,178,212,121,44,178,237,42,45,178,229,219,45,178,188,140,46,178,114,61,47,178,8,238,47,178,124,158,48,178,208,78,49,178,3,255,49,178,20,
175,50,178,5,95,51,178,212,14,52,178,130,190,52,178,14,110,53,178,121,29,54,178,195,204,54,178,235,123,55,178,241,42,56,178,214,217,56,178,153,136,57,178,58,55,58,178,185,229,58,178,23,148,59,178,82,66,60,178,107,240,60,178,98,158,61,178,55,76,62,178,234,249,62,178,123,167,63,178,233,84,64,178,52,2,65,178,93,175,65,178,100,92,66,178,72,9,67,178,9,182,67,178,167,98,68,178,35,15,69,178,123,187,69,178,177,103,70,178,196,19,71,178,179,191,71,178,128,107,72,178,41,23,73,178,175,194,73,178,18,110,74,178,
81,25,75,178,109,196,75,178,102,111,76,178,58,26,77,178,236,196,77,178,121,111,78,178,227,25,79,178,41,196,79,178,75,110,80,178,73,24,81,178,35,194,81,178,217,107,82,178,107,21,83,178,216,190,83,178,34,104,84,178,71,17,85,178,72,186,85,178,36,99,86,178,220,11,87,178,111,180,87,178,222,92,88,178,40,5,89,178,77,173,89,178,78,85,90,178,41,253,90,178,224,164,91,178,114,76,92,178,222,243,92,178,38,155,93,178,72,66,94,178,70,233,94,178,30,144,95,178,208,54,96,178,93,221,96,178,197,131,97,178,7,42,98,178,
36,208,98,178,27,118,99,178,236,27,100,178,152,193,100,178,30,103,101,178,126,12,102,178,184,177,102,178,204,86,103,178,186,251,103,178,130,160,104,178,35,69,105,178,159,233,105,178,244,141,106,178,35,50,107,178,43,214,107,178,13,122,108,178,201,29,109,178,94,193,109,178,204,100,110,178,20,8,111,178,53,171,111,178,47,78,112,178,2,241,112,178,174,147,113,178,52,54,114,178,146,216,114,178,201,122,115,178,217,28,116,178,194,190,116,178,132,96,117,178,30,2,118,178,145,163,118,178,221,68,119,178,1,230,
119,178,253,134,120,178,210,39,121,178,127,200,121,178,5,105,122,178,99,9,123,178,152,169,123,178,167,73,124,178,141,233,124,178,75,137,125,178,225,40,126,178,79,200,126,178,149,103,127,178,89,3,128,178,212,82,128,178,58,162,128,178,141,241,128,178,203,64,129,178,245,143,129,178,10,223,129,178,12,46,130,178,249,124,130,178,209,203,130,178,149,26,131,178,69,105,131,178,225,183,131,178,104,6,132,178,218,84,132,178,56,163,132,178,129,241,132,178,182,63,133,178,214,141,133,178,226,219,133,178,217,41,
134,178,187,119,134,178,136,197,134,178,65,19,135,178,229,96,135,178,117,174,135,178,239,251,135,178,85,73,136,178,165,150,136,178,225,227,136,178,8,49,137,178,26,126,137,178,23,203,137,178,255,23,138,178,210,100,138,178,144,177,138,178,57,254,138,178,205,74,139,178,75,151,139,178,181,227,139,178,9,48,140,178,72,124,140,178,114,200,140,178,134,20,141,178,134,96,141,178,112,172,141,178,68,248,141,178,4,68,142,178,174,143,142,178,66,219,142,178,193,38,143,178,43,114,143,178,127,189,143,178,189,8,144,
178,230,83,144,178,250,158,144,178,248,233,144,178,224,52,145,178,178,127,145,178,111,202,145,178,23,21,146,178,168,95,146,178,36,170,146,178,138,244,146,178,218,62,147,178,21,137,147,178,57,211,147,178,72,29,148,178,65,103,148,178,35,177,148,178,240,250,148,178,167,68,149,178,72,142,149,178,211,215,149,178,72,33,150,178,167,106,150,178,240,179,150,178,34,253,150,178,63,70,151,178,69,143,151,178,53,216,151,178,15,33,152,178,211,105,152,178,128,178,152,178,24,251,152,178,152,67,153,178,3,140,153,178,
87,212,153,178,149,28,154,178,188,100,154,178,205,172,154,178,200,244,154,178,172,60,155,178,121,132,155,178,48,204,155,178,208,19,156,178,90,91,156,178,206,162,156,178,42,234,156,178,112,49,157,178,160,120,157,178,184,191,157,178,186,6,158,178,165,77,158,178],"i8",4,y.a+1402880);
Q([122,148,158,178,56,219,158,178,222,33,159,178,110,104,159,178,232,174,159,178,74,245,159,178,149,59,160,178,202,129,160,178,231,199,160,178,238,13,161,178,222,83,161,178,182,153,161,178,120,223,161,178,34,37,162,178,182,106,162,178,50,176,162,178,151,245,162,178,229,58,163,178,28,128,163,178,60,197,163,178,69,10,164,178,54,79,164,178,16,148,164,178,210,216,164,178,126,29,165,178,18,98,165,178,143,166,165,178,244,234,165,178,66,47,166,178,121,115,166,178,152,183,166,178,160,251,166,178,144,63,167,
178,105,131,167,178,42,199,167,178,211,10,168,178,101,78,168,178,224,145,168,178,67,213,168,178,142,24,169,178,194,91,169,178,222,158,169,178,226,225,169,178,207,36,170,178,163,103,170,178,96,170,170,178,6,237,170,178,147,47,171,178,9,114,171,178,103,180,171,178,173,246,171,178,219,56,172,178,241,122,172,178,239,188,172,178,214,254,172,178,164,64,173,178,90,130,173,178,249,195,173,178,127,5,174,178,237,70,174,178,68,136,174,178,130,201,174,178,168,10,175,178,182,75,175,178,171,140,175,178,137,205,
175,178,78,14,176,178,252,78,176,178,145,143,176,178,13,208,176,178,114,16,177,178,190,80,177,178,242,144,177,178,13,209,177,178,16,17,178,178,251,80,178,178,206,144,178,178,136,208,178,178,41,16,179,178,178,79,179,178,35,143,179,178,123,206,179,178,187,13,180,178,226,76,180,178,240,139,180,178,231,202,180,178,196,9,181,178,137,72,181,178,53,135,181,178,201,197,181,178,68,4,182,178,166,66,182,178,239,128,182,178,32,191,182,178,56,253,182,178,56,59,183,178,30,121,183,178,236,182,183,178,161,244,183,
178,61,50,184,178,192,111,184,178,43,173,184,178,124,234,184,178,181,39,185,178,213,100,185,178,220,161,185,178,201,222,185,178,158,27,186,178,90,88,186,178,253,148,186,178,135,209,186,178,248,13,187,178,79,74,187,178,142,134,187,178,179,194,187,178,192,254,187,178,179,58,188,178,141,118,188,178,78,178,188,178,246,237,188,178,132,41,189,178,250,100,189,178,86,160,189,178,152,219,189,178,194,22,190,178,210,81,190,178,201,140,190,178,167,199,190,178,107,2,191,178,22,61,191,178,167,119,191,178,31,178,
191,178,126,236,191,178,195,38,192,178,239,96,192,178,1,155,192,178,250,212,192,178,217,14,193,178,159,72,193,178,75,130,193,178,222,187,193,178,87,245,193,178,183,46,194,178,253,103,194,178,41,161,194,178,60,218,194,178,53,19,195,178,20,76,195,178,218,132,195,178,134,189,195,178,24,246,195,178,145,46,196,178,240,102,196,178,53,159,196,178,96,215,196,178,113,15,197,178,105,71,197,178,71,127,197,178,11,183,197,178,181,238,197,178,69,38,198,178,188,93,198,178,24,149,198,178,91,204,198,178,131,3,199,
178,146,58,199,178,135,113,199,178,97,168,199,178,34,223,199,178,201,21,200,178,85,76,200,178,200,130,200,178,32,185,200,178,95,239,200,178,131,37,201,178,142,91,201,178,126,145,201,178,84,199,201,178,16,253,201,178,177,50,202,178,57,104,202,178,166,157,202,178,249,210,202,178,50,8,203,178,81,61,203,178,85,114,203,178,63,167,203,178,15,220,203,178,197,16,204,178,96,69,204,178,225,121,204,178,71,174,204,178,148,226,204,178,198,22,205,178,221,74,205,178,218,126,205,178,189,178,205,178,133,230,205,178,
51,26,206,178,198,77,206,178,63,129,206,178,158,180,206,178,226,231,206,178,11,27,207,178,26,78,207,178,14,129,207,178,232,179,207,178,167,230,207,178,76,25,208,178,214,75,208,178,70,126,208,178,155,176,208,178,213,226,208,178,245,20,209,178,250,70,209,178,228,120,209,178,180,170,209,178,104,220,209,178,3,14,210,178,130,63,210,178,231,112,210,178,49,162,210,178,96,211,210,178,117,4,211,178,111,53,211,178,78,102,211,178,18,151,211,178,187,199,211,178,74,248,211,178,189,40,212,178,22,89,212,178,84,
137,212,178,119,185,212,178,127,233,212,178,109,25,213,178,63,73,213,178,246,120,213,178,147,168,213,178,20,216,213,178,123,7,214,178,199,54,214,178,247,101,214,178,13,149,214,178,7,196,214,178,231,242,214,178,171,33,215,178,85,80,215,178,227,126,215,178,87,173,215,178,175,219,215,178,236,9,216,178,14,56,216,178,21,102,216,178,1,148,216,178,210,193,216,178,135,239,216,178,34,29,217,178,161,74,217,178,5,120,217,178,78,165,217,178,124,210,217,178,142,255,217,178,133,44,218,178,97,89,218,178,34,134,
218,178,199,178,218,178,82,223,218,178,193,11,219,178,20,56,219,178,77,100,219,178,106,144,219,178,107,188,219,178,82,232,219,178,29,20,220,178,205,63,220,178,97,107,220,178,218,150,220,178,56,194,220,178,122,237,220,178,161,24,221,178,172,67,221,178,156,110,221,178,113,153,221,178,42,196,221,178,199,238,221,178,74,25,222,178,176,67,222,178,252,109,222,178,43,152,222,178,64,194,222,178,57,236,222,178,22,22,223,178,216,63,223,178,126,105,223,178,9,147,223,178,120,188,223,178,203,229,223,178,3,15,224,
178,32,56,224,178,32,97,224,178,6,138,224,178,207,178,224,178,125,219,224,178,16,4,225,178,134,44,225,178,226,84,225,178,33,125,225,178,69,165,225,178,77,205,225,178,57,245,225,178,10,29,226,178,191,68,226,178,89,108,226,178,214,147,226,178,56,187,226,178,127,226,226,178,169,9,227,178,184,48,227,178,171,87,227,178,130,126,227,178,62,165,227,178,222,203,227,178,97,242,227,178,202,24,228,178,22,63,228,178,71,101,228,178,91,139,228,178,84,177,228,178,49,215,228,178,243,252,228,178,152,34,229,178,34,
72,229,178,143,109,229,178,225,146,229,178,23,184,229,178,50,221,229,178,48,2,230,178,18,39,230,178,217,75,230,178,131,112,230,178,18,149,230,178,132,185,230,178,219,221,230,178,22,2,231,178,53,38,231,178,56,74,231,178,31,110,231,178,234,145,231,178,153,181,231,178,44,217,231,178,164,252,231,178,255,31,232,178,62,67,232,178,97,102,232,178,104,137,232,178,83,172,232,178,34,207,232,178,214,241,232,178,109,20,233,178,232,54,233,178,71,89,233,178,138,123,233,178,177,157,233,178,188,191,233,178,170,225,
233,178,125,3,234,178,52,37,234,178,206,70,234,178,77,104,234,178,175,137,234,178,245,170,234,178,32,204,234,178,46,237,234,178,32,14,235,178,245,46,235,178,175,79,235,178,77,112,235,178,206,144,235,178,52,177,235,178,125,209,235,178,170,241,235,178,187,17,236,178,175,49,236,178,136,81,236,178,68,113,236,178,228,144,236,178,104,176,236,178,208,207,236,178,28,239,236,178,75,14,237,178,95,45,237,178,86,76,237,178,49,107,237,178,239,137,237,178,146,168,237,178,24,199,237,178,130,229,237,178,208,3,238,
178,1,34,238,178,22,64,238,178,16,94,238,178,236,123,238,178,173,153,238,178,81,183,238,178,217,212,238,178,69,242,238,178,149,15,239,178,200,44,239,178,223,73,239,178,218,102,239,178,184,131,239,178,122,160,239,178,32,189,239,178,170,217,239,178,23,246,239,178,104,18,240,178,157,46,240,178,181,74,240,178,177,102,240,178,145,130,240,178,85,158,240,178,252,185,240,178,135,213,240,178,245,240,240,178,72,12,241,178,125,39,241,178,151,66,241,178,148,93,241,178,117,120,241,178,58,147,241,178,226,173,241,
178,110,200,241,178,222,226,241,178,49,253,241,178,104,23,242,178,130,49,242,178,128,75,242,178,98,101,242,178,40,127,242,178,209,152,242,178,94,178,242,178,206,203,242,178,34,229,242,178,90,254,242,178,117,23,243,178,116,48,243,178,86,73,243,178,29,98,243,178,198,122,243,178,84,147,243,178,197,171,243,178,26,196,243,178,82,220,243,178,110,244,243,178,109,12,244,178,80,36,244,178,23,60,244,178,194,83,244,178,80,107,244,178,193,130,244,178,22,154,244,178,79,177,244,178,107,200,244,178,107,223,244,
178,79,246,244,178,22,13,245,178,193,35,245,178,80,58,245,178,194,80,245,178,23,103,245,178,80,125,245,178,109,147,245,178,110,169,245,178,82,191,245,178,25,213,245,178,197,234,245,178,83,0,246,178,198,21,246,178,28,43,246,178,85,64,246,178,115,85,246,178,115,106,246,178,88,127,246,178,32,148,246,178,203,168,246,178,91,189,246,178,205,209,246,178,36,230,246,178,94,250,246,178,123,14,247,178,124,34,247,178,97,54,247,178,42,74,247,178,213,93,247,178,101,113,247,178,216,132,247,178,47,152,247,178,105,
171,247,178,135,190,247,178,137,209,247,178,110,228,247,178,55,247,247,178,227,9,248,178,115,28,248,178,231,46,248,178,62,65,248,178,121,83,248,178,151,101,248,178,153,119,248,178,127,137,248,178,72,155,248,178,245,172,248,178,133,190,248,178,250,207,248,178,81,225,248,178,141,242,248,178,172,3,249,178,174,20,249,178,148,37,249,178,94,54,249,178,12,71,249,178,157,87,249,178,17,104,249,178,106,120,249,178,166,136,249,178,197,152,249,178,201,168,249,178,176,184,249,178,122,200,249,178,40,216,249,178,
186,231,249,178,48,247,249,178,137,6,250,178,198,21,250,178,230,36,250,178,234,51,250,178,210,66,250,178,158,81,250,178,77,96,250,178,224,110,250,178,86,125,250,178,176,139,250,178,238,153,250,178,16,168,250,178,21,182,250,178,254,195,250,178,202,209,250,178,123,223,250,178,15,237,250,178,134,250,250,178,226,7,251,178,33,21,251,178,67,34,251,178,74,47,251,178,52,60,251,178,2,73,251,178,180,85,251,178,73,98,251,178,194,110,251,178,31,123,251,178,96,135,251,178,132,147,251,178,140,159,251,178,120,171,
251,178,71,183,251,178,251,194,251,178,146,206,251,178,13,218,251,178,107,229,251,178,174,240,251,178,212,251,251,178,222,6,252,178,203,17,252,178,157,28,252,178,82,39,252,178,235,49,252,178,104,60,252,178,201,70,252,178,13,81,252,178,54,91,252,178,66,101,252,178,50,111,252,178,6,121,252,178,189,130,252,178,89,140,252,178,216,149,252,178,59,159,252,178,130,168,252,178,173,177,252,178,188,186,252,178,174,195,252,178,133,204,252,178,63,213,252,178,221,221,252,178,95,230,252,178,197,238,252,178,15,247,
252,178,61,255,252,178,79,7,253,178,68,15,253,178,30,23,253,178,219,30,253,178,125,38,253,178,2,46,253,178,107,53,253,178,185,60,253,178,234,67,253,178,255,74,253,178,248,81,253,178,213,88,253,178,150,95,253,178,59,102,253,178,196,108,253,178,49,115,253,178,130,121,253,178,183,127,253,178,208,133,253,178,205,139,253,178,174,145,253,178,115,151,253,178,28,157,253,178,169,162,253,178,27,168,253,178,112,173,253,178,169,178,253,178,199,183,253,178,200,188,253,178,174,193,253,178,119,198,253,178,37,203,
253,178,183,207,253,178,45,212,253,178,135,216,253,178,197,220,253,178,231,224,253,178,238,228,253,178,216,232,253,178,167,236,253,178,90,240,253,178,241,243,253,178,108,247,253,178,204,250,253,178,15,254,253,178,55,1,254,178,67,4,254,178,51,7,254,178,8,10,254,178,192,12,254,178,93,15,254,178,222,17,254,178,68,20,254,178,141,22,254,178,187,24,254,178,205,26,254,178,196,28,254,178,159,30,254,178,94,32,254,178,1,34,254,178,137,35,254,178,245,36,254,178,69,38,254,178,122,39,254,178,147,40,254,178,144,
41,254,178,113,42,254,178,56,43,254,178,226,43,254,178,113,44,254,178,228,44,254,178,60,45,254,178,120,45,254,178,152,45,254,178,157,45,254,178,134,45,254,178,84,45,254,178,6,45,254,178,157,44,254,178,24,44,254,178,119,43,254,178,188,42,254,178,228,41,254,178,241,40,254,178,227,39,254,178,185,38,254,178,116,37,254,178,19,36,254,178,151,34,254,178,255,32,254,178,76,31,254,178,125,29,254,178,148,27,254,178,142,25,254,178,110,23,254,178,49,21,254,178,218,18,254,178,103,16,254,178,217,13,254,178,47,11,
254,178,107,8,254,178,138,5,254,178,143,2,254,178,120,255,253,178,70,252,253,178,249,248,253,178,144,245,253,178,12,242,253,178,109,238,253,178,179,234,253,178,221,230,253,178,236,226,253,178,224,222,253,178,185,218,253,178,118,214,253,178,25,210,253,178,160,205,253,178,12,201,253,178,93,196,253,178,147,191,253,178,173,186,253,178,173,181,253,178,145,176,253,178,90,171,253,178,9,166,253,178,156,160,253,178,20,155,253,178,113,149,253,178,179,143,253,178,218,137,253,178,230,131,253,178,215,125,253,
178,173,119,253,178,104,113,253,178,8,107,253,178,141,100,253,178,247,93,253,178,70,87,253,178,122,80,253,178,147,73,253,178,145,66,253,178,117,59,253,178,61,52,253,178,235,44,253,178,126,37,253,178,246,29,253,178,83,22,253,178,149,14,253,178,189,6,253,178,202,254,252,178,188,246,252,178,147,238,252,178,79,230,252,178,241,221,252,178,120,213,252,178,228,204,252,178,53,196,252,178,108,187,252,178,136,178,252,178,137,169,252,178,112,160,252,178,60,151,252,178,237,141,252,178,132,132,252,178,0,123,252,
178,98,113,252,178,169,103,252,178,213,93,252,178,231,83,252,178,222,73,252,178,187,63,252,178,125,53,252,178,36,43,252,178,178,32,252,178,36,22,252,178,124,11,252,178,186,0,252,178,221,245,251,178,230,234,251,178,212,223,251,178,168,212,251,178,98,201,251,178,1,190,251,178,134,178,251,178,240,166,251,178,64,155,251,178,118,143,251,178,145,131,251,178,146,119,251,178,121,107,251,178,70,95,251,178,248,82,251,178,144,70,251,178,14,58,251,178,113,45,251,178,186,32,251,178,233,19,251,178,254,6,251,178,
249,249,250,178,218,236,250,178,160,223,250,178,76,210,250,178,223,196,250,178,87,183,250,178,181,169,250,178,249,155,250,178,34,142,250,178,50,128,250,178,40,114,250,178,4,100,250,178,198,85,250,178,109,71,250,178,251,56,250,178,111,42,250,178,201,27,250,178,9,13,250,178,47,254,249,178,59,239,249,178,45,224,249,178,6,209,249,178,196,193,249,178,105,178,249,178,244,162,249,178,101,147,249,178,188,131,249,178,249,115,249,178,29,100,249,178,39,84,249,178,23,68,249,178,238,51,249,178,170,35,249,178,
77,19,249,178,215,2,249,178,70,242,248,178,156,225,248,178,217,208,248,178,252,191,248,178,5,175,248,178,244,157,248,178,202,140,248,178,135,123,248,178,42,106,248,178,179,88,248,178,35,71,248,178,122,53,248,178,182,35,248,178,218,17,248,178,228,255,247,178,212,237,247,178,172,219,247,178,105,201,247,178,14,183,247,178,153,164,247,178,10,146,247,178,99,127,247,178,162,108,247,178,199,89,247,178,212,70,247,178,199,51,247,178,161,32,247,178,97,13,247,178,9,250,246,178,151,230,246,178,12,211,246,178,
104,191,246,178,170,171,246,178,212,151,246,178,228,131,246,178,220,111,246,178,186,91,246,178,127,71,246,178,43,51,246,178,190,30,246,178,56,10,246,178,153,245,245,178,225,224,245,178,16,204,245,178,38,183,245,178,35,162,245,178,7,141,245,178,210,119,245,178,133,98,245,178,30,77,245,178,159,55,245,178,7,34,245,178,86,12,245,178,140,246,244,178,169,224,244,178,174,202,244,178,154,180,244,178,109,158,244,178,39,136,244,178,201,113,244,178,82,91,244,178,194,68,244,178,26,46,244,178,89,23,244,178,127,
0,244,178,141,233,243,178,130,210,243,178,95,187,243,178,35,164,243,178,207,140,243,178,98,117,243,178,221,93,243,178,63,70,243,178,136,46,243,178,186,22,243,178,210,254,242,178,211,230,242,178,187,206,242,178,139,182,242,178,66,158,242,178,225,133,242,178,103,109,242,178,214,84,242,178,44,60,242,178,106,35,242,178,143,10,242,178,157,241,241,178,146,216,241,178,111,191,241,178,52,166,241,178,225,140,241,178,117,115,241,178,242,89,241,178,86,64,241,178,162,38,241,178,214,12,241,178,243,242,240,178,
247,216,240,178,227,190,240,178,183,164,240,178,115,138,240,178,24,112,240,178,164,85,240,178,25,59,240,178,117,32,240,178,186,5,240,178,231,234,239,178,252,207,239,178,249,180,239,178,222,153,239,178,172,126,239,178,98,99,239,178,0,72,239,178,135,44,239,178,245,16,239,178,77,245,238,178,140,217,238,178,180,189,238,178,196,161,238,178,189,133,238,178,158,105,238,178,103,77,238,178,25,49,238,178,180,20,238,178,54,248,237,178,162,219,237,178,246,190,237,178,50,162,237,178,87,133,237,178,101,104,237,
178,92,75,237,178,58,46,237,178,2,17,237,178,178,243,236,178,75,214,236,178,205,184,236,178,56,155,236,178,139,125,236,178,199,95,236,178,236,65,236,178,249,35,236,178,240,5,236,178,207,231,235,178,151,201,235,178,72,171,235,178,226,140,235,178,101,110,235,178,209,79,235,178,38,49,235,178,100,18,235,178,139,243,234,178,155,212,234,178,148,181,234,178,118,150,234,178,65,119,234,178,246,87,234,178,147,56,234,178,26,25,234,178,138,249,233,178,227,217,233,178,37,186,233,178,80,154,233,178,101,122,233,
178,99,90,233,178,75,58,233,178,27,26,233,178,214,249,232,178,121,217,232,178,6,185,232,178,124,152,232,178,220,119,232,178,37,87,232,178,88,54,232,178,116,21,232,178,122,244,231,178,105,211,231,178,66,178,231,178,4,145,231,178,176,111,231,178,70,78,231,178,197,44,231,178,46,11,231,178,128,233,230,178,189,199,230,178,227,165,230,178,243,131,230,178,236,97,230,178,208,63,230,178,157,29,230,178,84,251,229,178,245,216,229,178,128,182,229,178,245,147,229,178,83,113,229,178,156,78,229,178,207,43,229,178,
235,8,229,178,242,229,228,178,227,194,228,178,189,159,228,178,130,124,228,178,49,89,228,178,202,53,228,178,78,18,228,178,187,238,227,178,19,203,227,178,84,167,227,178,128,131,227,178,151,95,227,178,151,59,227,178,130,23,227,178,87,243,226,178,23,207,226,178,193,170,226,178,85,134,226,178,212,97,226,178,61,61,226,178,145,24,226,178,207,243,225,178,248,206,225,178,11,170,225,178,9,133,225,178,241,95,225,178,196,58,225,178,130,21,225,178,42,240,224,178,189,202,224,178,59,165,224,178,163,127,224,178,
246,89,224,178,52,52,224,178,92,14,224,178,112,232,223,178,110,194,223,178,87,156,223,178,43,118,223,178,234,79,223,178,147,41,223,178,40,3,223,178,168,220,222,178,19,182,222,178,104,143,222,178,169,104,222,178,213,65,222,178,236,26,222,178,237,243,221,178,219,204,221,178,179,165,221,178,118,126,221,178,37,87,221,178,191,47,221,178,68,8,221,178,180,224,220,178,16,185,220,178,87,145,220,178,137,105,220,178,167,65,220,178,176,25,220,178,164,241,219,178,132,201,219,178,80,161,219,178,6,121,219,178,169,
80,219,178,55,40,219,178,176,255,218,178,21,215,218,178,102,174,218,178,162,133,218,178,202,92,218,178,222,51,218,178,221,10,218,178,200,225,217,178,159,184,217,178,97,143,217,178,15,102,217,178,170,60,217,178,48,19,217,178,161,233,216,178,255,191,216,178,73,150,216,178,126,108,216,178,160,66,216,178,174,24,216,178,167,238,215,178,141,196,215,178,94,154,215,178,28,112,215,178,198,69,215,178,92,27,215,178,222,240,214,178,76,198,214,178,167,155,214,178,238,112,214,178,33,70,214,178,64,27,214,178,76,
240,213,178,68,197,213,178,40,154,213,178,249,110,213,178,182,67,213,178,95,24,213,178,245,236,212,178,120,193,212,178,231,149,212,178,66,106,212,178,138,62,212,178,191,18,212,178,224,230,211,178,238,186,211,178,232,142,211,178,208,98,211,178,163,54,211,178,100,10,211,178,17,222,210,178,172,177,210,178,51,133,210,178,166,88,210,178,7,44,210,178,85,255,209,178,143,210,209,178,182,165,209,178,203,120,209,178,204,75,209,178,186,30,209,178,150,241,208,178,94,196,208,178,19,151,208,178,182,105,208,178,
70,60,208,178,195,14,208,178,45,225,207,178,132,179,207,178,200,133,207,178,250,87,207,178,25,42,207,178,38,252,206,178,31,206,206,178,6,160,206,178,219,113,206,178,157,67,206,178,76,21,206,178,233,230,205,178,115,184,205,178,235,137,205,178,80,91,205,178,163,44,205,178,228,253,204,178,18,207,204,178,46,160,204,178,55,113,204,178,46,66,204,178,19,19,204,178,230,227,203,178,166,180,203,178,84,133,203,178,240,85,203,178,122,38,203,178,242,246,202,178,88,199,202,178,171,151,202,178,237,103,202,178,28,
56,202,178,58,8,202,178,69,216,201,178,63,168,201,178,39,120,201,178,253,71,201,178,193,23,201,178,115,231,200,178,19,183,200,178,162,134,200,178,31,86,200,178,138,37,200,178,227,244,199,178,43,196,199,178,97,147,199,178,134,98,199,178,153,49,199,178,154,0,199,178,138,207,198,178,104,158,198,178,53,109,198,178,240,59,198,178,154,10,198,178,51,217,197,178,186,167,197,178,48,118,197,178,148,68,197,178,231,18,197,178,41,225,196,178,90,175,196,178,121,125,196,178,135,75,196,178,133,25,196,178,112,231,
195,178,75,181,195,178,21,131,195,178,206,80,195,178,117,30,195,178,12,236,194,178,146,185,194,178,6,135,194,178,106,84,194,178,189,33,194,178,255,238,193,178,48,188,193,178,81,137,193,178,96,86,193,178,95,35,193,178,77,240,192,178,43,189,192,178,247,137,192,178,179,86,192,178,95,35,192,178,250,239,191,178,132,188,191,178,254,136,191,178,103,85,191,178,192,33,191,178,8,238,190,178,64,186,190,178,103,134,190,178,126,82,190,178,133,30,190,178,124,234,189,178,98,182,189,178,56,130,189,178,253,77,189,
178,179,25,189,178,88,229,188,178,237,176,188,178,114,124,188,178,231,71,188,178,75,19,188,178,160,222,187,178,229,169,187,178,25,117,187,178,62,64,187,178,83,11,187,178,88,214,186,178,77,161,186,178,50,108,186,178,7,55,186,178,205,1,186,178,131,204,185,178,41,151,185,178,191,97,185,178,70,44,185,178,189,246,184,178,36,193,184,178,124,139,184,178,196,85,184,178,253,31,184,178,38,234,183,178,63,180,183,178,73,126,183,178,68,72,183,178,47,18,183,178,11,220,182,178,216,165,182,178,149,111,182,178,67,
57,182,178,226,2,182,178,114,204,181,178,242,149,181,178,99,95,181,178,197,40,181,178,24,242,180,178,91,187,180,178,144,132,180,178,182,77,180,178,204,22,180,178,212,223,179,178,205,168,179,178,182,113,179,178,145,58,179,178,93,3,179,178,26,204,178,178,201,148,178,178,104,93,178,178,249,37,178,178,123,238,177,178,239,182,177,178,83,127,177,178,169,71,177,178,241,15,177,178,42,216,176,178,84,160,176,178,112,104,176,178,125,48,176,178,124,248,175,178,108,192,175,178,78,136,175,178,34,80,175,178,231,
23,175,178,158,223,174,178,71,167,174,178,225,110,174,178,109,54,174,178,235,253,173,178,91,197,173,178,188,140,173,178,16,84,173,178,85,27,173,178,140,226,172,178,181,169,172,178,209,112,172,178,222,55,172,178,221,254,171,178,206,197,171,178,178,140,171,178,135,83,171,178,79,26,171,178,9,225,170,178,181,167,170,178,84,110,170,178,228,52,170,178,103,251,169,178,221,193,169,178,69,136,169,178,159,78,169,178,235,20,169,178,42,219,168,178,92,161,168,178,128,103,168,178,150,45,168,178,159,243,167,178,
155,185,167,178,137,127,167,178,106,69,167,178,62,11,167,178,4,209,166,178,189,150,166,178,105,92,166,178,8,34,166,178,153,231,165,178,30,173,165,178,149,114,165,178,255,55,165,178,92,253,164,178,172,194,164,178,240,135,164,178,38,77,164,178,79,18,164,178,107,215,163,178,123,156,163,178,125,97,163,178,115,38,163,178,92,235,162,178,56,176,162,178,8,117,162,178,203,57,162,178,129,254,161,178,42,195,161,178,199,135,161,178,88,76,161,178,219,16,161,178,83,213,160,178,189,153,160,178,28,94,160,178,109,
34,160,178,179,230,159,178,236,170,159,178,25,111,159,178,57,51,159,178,77,247,158,178,85,187,158,178,81,127,158,178,64,67,158,178,36,7,158,178,251,202,157,178,198,142,157,178,133,82,157,178,56,22,157,178,222,217,156,178,121,157,156,178,8,97,156,178,139,36,156,178,2,232,155,178,110,171,155,178,205,110,155,178,33,50,155,178,104,245,154,178,165,184,154,178,213,123,154,178,249,62,154,178,18,2,154,178,32,197,153,178,34,136,153,178,24,75,153,178,2,14,153,178,225,208,152,178,181,147,152,178,125,86,152,
178,58,25,152,178,235,219,151,178,145,158,151,178,44,97,151,178,187,35,151,178,64,230,150,178,184,168,150,178,38,107,150,178,136,45,150,178,224,239,149,178,44,178,149,178,109,116,149,178,163,54,149,178,206,248,148,178,238,186,148,178,3,125,148,178,13,63,148,178,12,1,148,178,0,195,147,178,234,132,147,178,200,70,147,178,156,8,147,178,101,202,146,178,36,140,146,178,215,77,146,178,128,15,146,178,30,209,145,178,178,146,145,178,59,84,145,178,186,21,145,178,46,215,144,178,151,152,144,178,246,89,144,178,
75,27,144,178,149,220,143,178,213,157,143,178,10,95,143,178,53,32,143,178,86,225,142,178,109,162,142,178,121,99,142,178,124,36,142,178,116,229,141,178,98,166,141,178,70,103,141,178,31,40,141,178,239,232,140,178,181,169,140,178,113,106,140,178,34,43,140,178,202,235,139,178,104,172,139,178,252,108,139,178,135,45,139,178,7,238,138,178,126,174,138,178,235,110,138,178,78,47,138,178,168,239,137,178,248,175,137,178,62,112,137,178,123,48,137,178,174,240,136,178,216,176,136,178,248,112,136,178,15,49,136,178,
28,241,135,178,32,177,135,178,27,113,135,178,12,49,135,178,244,240,134,178,211,176,134,178,168,112,134,178,116,48,134,178,55,240,133,178,241,175,133,178,162,111,133,178,73,47,133,178,232,238,132,178,125,174,132,178,10,110,132,178,141,45,132,178,8,237,131,178,121,172,131,178,226,107,131,178,66,43,131,178,153,234,130,178,231,169,130,178,45,105,130,178,106,40,130,178,158,231,129,178,201,166,129,178,236,101,129,178,6,37,129,178,24,228,128,178,33,163,128,178,33,98,128,178,25,33,128,178,18,192,127,178,
224,61,127,178,157,187,126,178,74,57,126,178,230,182,125,178,114,52,125,178,237,177,124,178,87,47,124,178,177,172,123,178,251,41,123,178,52,167,122,178,93,36,122,178,118,161,121,178,127,30,121,178,120,155,120,178,97,24,120,178,58,149,119,178,3,18,119,178,188,142,118,178,101,11,118,178,255,135,117,178,137,4,117,178,4,129,116,178,111,253,115,178,202,121,115,178,22,246,114,178,83,114,114,178,129,238,113,178,159,106,113,178,175,230,112,178,175,98,112,178,160,222,111,178,130,90,111,178,86,214,110,178,
26,82,110,178,208,205,109,178,119,73,109,178,15,197,108,178,153,64,108,178,20,188,107,178,129,55,107,178,224,178,106,178,48,46,106,178,113,169,105,178,165,36,105,178,202,159,104,178,226,26,104,178,235,149,103,178,230,16,103,178,212,139,102,178,179,6,102,178,133,129,101,178,73,252,100,178,0,119,100,178,168,241,99,178,68,108,99,178,209,230,98,178,82,97,98,178,197,219,97,178,43,86,97,178,131,208,96,178,206,74,96,178,13,197,95,178,62,63,95,178,98,185,94,178,121,51,94,178,131,173,93,178,129,39,93,178,
114,161,92,178,86,27,92,178,45,149,91,178,248,14,91,178,183,136,90,178,105,2,90,178,15,124,89,178,168,245,88,178,53,111,88,178,182,232,87,178,43,98,87,178,147,219,86,178,240,84,86,178,65,206,85,178,134,71,85,178,191,192,84,178,236,57,84,178,14,179,83,178,36,44,83,178,46,165,82,178,45,30,82,178,33,151,81,178,9,16,81,178,229,136,80,178,183,1,80,178,125,122,79,178,56,243,78,178,232,107,78,178,141,228,77,178,39,93,77,178,182,213,76,178,59,78,76,178,180,198,75,178,35,63,75,178,135,183,74,178,225,47,74,
178,48,168,73,178,117,32,73,178,175,152,72,178,223,16,72,178,4,137,71,178,32,1,71,178,49,121,70,178,56,241,69,178,53,105,69,178,40,225,68,178,17,89,68,178,240,208,67,178,198,72,67,178,146,192,66,178,84,56,66,178,12,176,65,178,187,39,65,178,97,159,64,178,253,22,64,178,144,142,63,178,25,6,63,178,153,125,62,178,16,245,61,178,126,108,61,178,227,227,60,178,63,91,60,178,146,210,59,178,220,73,59,178,29,193,58,178,85,56,58,178,133,175,57,178,172,38,57,178,203,157,56,178,225,20,56,178,239,139,55,178,244,2,
55,178,241,121,54,178,230,240,53,178,210,103,53,178,183,222,52,178,147,85,52,178,103,204,51,178,51,67,51,178,248,185,50,178,181,48,50,178,105,167,49,178,23,30,49,178,188,148,48,178,90,11,48,178,240,129,47,178,127,248,46,178,7,111,46,178,135,229,45,178,0,92,45,178,114,210,44,178,220,72,44,178,64,191,43,178,156,53,43,178,242,171,42,178,64,34,42,178,136,152,41,178,201,14,41,178,3,133,40,178,55,251,39,178,100,113,39,178,138,231,38,178,170,93,38,178,196,211,37,178,215,73,37,178,228,191,36,178,234,53,36,
178,235,171,35,178,229,33,35,178,217,151,34,178,200,13,34,178,176,131,33,178,146,249,32,178,111,111,32,178,70,229,31,178,23,91,31,178,227,208,30,178,169,70,30,178,105,188,29,178,36,50,29,178,218,167,28,178,138,29,28,178,54,147,27,178,220,8,27,178,124,126,26,178,24,244,25,178,175,105,25,178,64,223,24,178,205,84,24,178,85,202,23,178,216,63,23,178,87,181,22,178,209,42,22,178,70,160,21,178,183,21,21,178,35,139,20,178,139,0,20,178,238,117,19,178,78,235,18,178,169,96,18,178,255,213,17,178,82,75,17,178,
161,192,16,178,236,53,16,178,50,171,15,178,117,32,15,178,180,149,14,178,240,10,14,178,39,128,13,178,91,245,12,178,140,106,12,178,185,223,11,178,226,84,11,178,9,202,10,178,43,63,10,178,75,180,9,178,103,41,9,178,129,158,8,178,151,19,8,178,170,136,7,178,186,253,6,178,200,114,6,178,210,231,5,178,218,92,5,178,223,209,4,178,225,70,4,178,225,187,3,178,222,48,3,178,217,165,2,178,209,26,2,178,199,143,1,178,187,4,1,178,172,121,0,178,55,221,255,177,18,199,254,177,232,176,253,177,186,154,252,177,137,132,251,
177,83,110,250,177,26,88,249,177,222,65,248,177,158,43,247,177,91,21,246,177,21,255,244,177,203,232,243,177,127,210,242,177,48,188,241,177,223,165,240,177,138,143,239,177,52,121,238,177,219,98,237,177,128,76,236,177,35,54,235,177,196,31,234,177,99,9,233,177,0,243,231,177,156,220,230,177,54,198,229,177,208,175,228,177,103,153,227,177,254,130,226,177,148,108,225,177,41,86,224,177,189,63,223,177,80,41,222,177,227,18,221,177,118,252,219,177,8,230,218,177,154,207,217,177,44,185,216,177,191,162,215,177,
81,140,214,177,228,117,213,177,119,95,212,177,11,73,211,177,159,50,210,177,53,28,209,177,203,5,208,177,98,239,206,177,250,216,205,177,148,194,204,177,47,172,203,177,204,149,202,177,106,127,201,177,10,105,200,177,172,82,199,177,79,60,198,177,245,37,197,177,157,15,196,177,72,249,194,177,245,226,193,177,164,204,192,177,87,182,191,177,12,160,190,177,196,137,189,177,127,115,188,177,61,93,187,177,255,70,186,177,195,48,185,177,140,26,184,177,88,4,183,177,40,238,181,177,252,215,180,177,211,193,179,177,175,
171,178,177,143,149,177,177,116,127,176,177,92,105,175,177,74,83,174,177,60,61,173,177,51,39,172,177,47,17,171,177,48,251,169,177,54,229,168,177,66,207,167,177,82,185,166,177,105,163,165,177,133,141,164,177,167,119,163,177,206,97,162,177,252,75,161,177,48,54,160,177,106,32,159,177,170,10,158,177,241,244,156,177,62,223,155,177,146,201,154,177,237,179,153,177,79,158,152,177,184,136,151,177,40,115,150,177,159,93,149,177,29,72,148,177,164,50,147,177,49,29,146,177,199,7,145,177,100,242,143,177,10,221,
142,177,183,199,141,177,109,178,140,177,43,157,139,177,241,135,138,177,192,114,137,177,151,93,136,177,120,72,135,177,97,51,134,177,83,30,133,177,79,9,132,177,83,244,130,177,98,223,129,177,121,202,128,177,52,107,127,177,138,65,125,177,243,23,123,177,112,238,120,177,1,197,118,177,167,155,116,177,97,114,114,177,48,73,112,177,20,32,110,177,13,247,107,177,28,206,105,177,64,165,103,177,123,124,101,177,203,83,99,177,50,43,97,177,176,2,95,177,68,218,92,177,240,177,90,177,178,137,88,177,141,97,86,177,127,
57,84,177,137,17,82,177,171,233,79,177,230,193,77,177,58,154,75,177,166,114,73,177,44,75,71,177,203,35,69,177,131,252,66,177,86,213,64,177,66,174,62,177,73,135,60,177,106,96,58,177,166,57,56,177,253,18,54,177,111,236,51,177,253,197,49,177,166,159,47,177,107,121,45,177,76,83,43,177,73,45,41,177,99,7,39,177,154,225,36,177,238,187,34,177,95,150,32,177,237,112,30,177,153,75,28,177,99,38,26,177,75,1,24,177,82,220,21,177,119,183,19,177,187,146,17,177,29,110,15,177,159,73,13,177,65,37,11,177,2,1,9,177,227,
220,6,177,229,184,4,177,7,149,2,177,73,113,0,177,88,155,252,176,96,84,248,176,171,13,244,176,57,199,239,176,10,129,235,176,31,59,231,176,120,245,226,176,23,176,222,176,250,106,218,176,35,38,214,176,146,225,209,176,71,157,205,176,68,89,201,176,136,21,197,176,20,210,192,176,232,142,188,176,5,76,184,176,107,9,180,176,27,199,175,176,21,133,171,176,89,67,167,176,232,1,163,176,195,192,158,176,234,127,154,176,92,63,150,176,28,255,145,176,41,191,141,176,131,127,137,176,44,64,133,176,34,1,129,176,208,132,
121,176,251,7,113,176,197,139,104,176,47,16,96,176,59,149,87,176,233,26,79,176,58,161,70,176,47,40,62,176,201,175,53,176,9,56,45,176,239,192,36,176,125,74,28,176,179,212,19,176,146,95,11,176,28,235,2,176,161,238,244,175,97,8,228,175,123,35,211,175,240,63,194,175,194,93,177,175,242,124,160,175,131,157,143,175,236,126,125,175,153,197,91,175,17,15,58,175,88,91,24,175,226,84,237,174,190,248,169,174,153,68,77,174,77,70,141,173,52,203,127,45,52,125,70,46,0,126,166,46,146,183,233,46,164,117,22,47,143,12,
56,47,133,160,89,47,131,49,123,47,195,95,142,47,69,37,159,47,71,233,175,47,197,171,192,47,191,108,209,47,51,44,226,47,31,234,242,47,65,211,1,48,172,48,10,48,81,141,18,48,47,233,26,48,68,68,35,48,145,158,43,48,20,248,51,48,203,80,60,48,184,168,68,48,216,255,76,48,42,86,85,48,175,171,93,48,100,0,102,48,74,84,110,48,95,167,118,48,163,249,126,48,138,165,131,48,217,205,135,48,190,245,139,48,57,29,144,48,72,68,148,48,237,106,152,48,38,145,156,48,242,182,160,48,82,220,164,48,70,1,169,48,204,37,173,48,228,
73,177,48,141,109,181,48,201,144,185,48,149,179,189,48,242,213,193,48,223,247,197,48,91,25,202,48,103,58,206,48,2,91,210,48,43,123,214,48,227,154,218,48,40,186,222,48,250,216,226,48,89,247,230,48,69,21,235,48,188,50,239,48,191,79,243,48,78,108,247,48,103,136,251,48,10,164,255,48,156,223,1,49,247,236,3,49,23,250,5,49,251,6,8,49,164,19,10,49,16,32,12,49,64,44,14,49,52,56,16,49,235,67,18,49,101,79,20,49,162,90,22,49,162,101,24,49,100,112,26,49,233,122,28,49,48,133,30,49,56,143,32,49,3,153,34,49,143,
162,36,49,220,171,38,49,234,180,40,49,185,189,42,49,73,198,44,49,153,206,46,49,170,214,48,49,123,222,50,49,11,230,52,49,91,237,54,49,107,244,56,49,58,251,58,49,200,1,61,49,21,8,63,49,33,14,65,49,235,19,67,49,116,25,69,49,186,30,71,49,191,35,73,49,129,40,75,49,0,45,77,49,61,49,79,49,55,53,81,49,238,56,83,49,97,60,85,49,145,63,87,49,126,66,89,49,38,69,91,49,138,71,93,49,170,73,95,49,134,75,97,49,29,77,99,49,111,78,101,49,124,79,103,49,67,80,105,49,197,80,107,49,2,81,109,49,248,80,111,49,169,80,113,
49,19,80,115,49,55,79,117,49,20,78,119,49,170,76,121,49,249,74,123,49,1,73,125,49,194,70,127,49,29,162,128,49,182,160,129,49,42,159,130,49,123,157,131,49,167,155,132,49,175,153,133,49,146,151,134,49,81,149,135,49,236,146,136,49,98,144,137,49,179,141,138,49,223,138,139,49,230,135,140,49,200,132,141,49,133,129,142,49,28,126,143,49,143,122,144,49,219,118,145,49,3,115,146,49,4,111,147,49,224,106,148,49,150,102,149,49,38,98,150,49,144,93,151,49,212,88,152,49,242,83,153,49,234,78,154,49,187,73,155,49,101,
68,156,49,233,62,157,49,70,57,158,49,125,51,159,49,141,45,160,49,117,39,161,49,55,33,162,49,209,26,163,49,68,20,164,49,144,13,165,49,181,6,166,49,178,255,166,49,135,248,167,49,52,241,168,49,186,233,169,49,24,226,170,49,78,218,171,49,91,210,172,49,65,202,173,49,254,193,174,49,147,185,175,49,255,176,176,49,67,168,177,49,94,159,178,49,81,150,179,49,27,141,180,49,187,131,181,49,51,122,182,49,130,112,183,49,167,102,184,49,163,92,185,49,118,82,186,49,31,72,187,49,159,61,188,49,245,50,189,49,33,40,190,49,
36,29,191,49,252,17,192,49,171,6,193,49,47,251,193,49,137,239,194,49,185,227,195,49,191,215,196,49,154,203,197,49,74,191,198,49,208,178,199,49,43,166,200,49,92,153,201,49,97,140,202,49,59,127,203,49,235,113,204,49,111,100,205,49,199,86,206,49,245,72,207,49,247,58,208,49,205,44,209,49,120,30,210,49,247,15,211,49,74,1,212,49,114,242,212,49,109,227,213,49,60,212,214,49,223,196,215,49,86,181,216,49,161,165,217,49,191,149,218,49,176,133,219,49,117,117,220,49,13,101,221,49,121,84,222,49,183,67,223,49,201,
50,224,49,173,33,225,49,101,16,226,49,239,254,226,49,76,237,227,49,124,219,228,49,126,201,229,49,82,183,230,49,249,164,231,49,114,146,232,49,189,127,233,49,219,108,234,49,202,89,235,49,139,70,236,49,30,51,237,49,131,31,238,49,185,11,239,49,194,247,239,49,155,227,240,49,70,207,241,49,194,186,242,49,16,166,243,49,46,145,244,49,30,124,245,49,223,102,246,49,112,81,247,49,211,59,248,49,6,38,249,49,9,16,250,49,222,249,250,49,130,227,251,49,248,204,252,49,61,182,253,49,83,159,254,49,56,136,255,49,119,56,
0,50,186,172,0,50,229,32,1,50,248,148,1,50,242,8,2,50,213,124,2,50,159,240,2,50,81,100,3,50,234,215,3,50,107,75,4,50,212,190,4,50,37,50,5,50,93,165,5,50,124,24,6,50,131,139,6,50,113,254,6,50,71,113,7,50,4,228,7,50,168,86,8,50,52,201,8,50,166,59,9,50,0,174,9,50,65,32,10,50,105,146,10,50,120,4,11,50,110,118,11,50,76,232,11,50,15,90,12,50,186,203,12,50,76,61,13,50,196,174,13,50,36,32,14,50,106,145,14,50,150,2,15,50,169,115,15,50,163,228,15,50,132,85,16,50,74,198,16,50,248,54,17,50,140,167,17,50,6,24,
18,50,102,136,18,50,173,248,18,50,218,104,19,50,238,216,19,50,231,72,20,50,199,184,20,50,141,40,21,50,57,152,21,50,203,7,22,50,67,119,22,50,161,230,22,50,229,85,23,50,15,197,23,50,30,52,24,50,20,163,24,50,239,17,25,50,176,128,25,50,86,239,25,50,227,93,26,50,85,204,26,50,172,58,27,50,233,168,27,50,12,23,28,50,20,133,28,50,1,243,28,50,212,96,29,50,140,206,29,50,41,60,30,50,172,169,30,50,20,23,31,50,97,132,31,50,147,241,31,50,171,94,32,50,167,203,32,50,137,56,33,50,79,165,33,50,251,17,34,50,139,126,
34,50,1,235,34,50,91,87,35,50,154,195,35,50,190,47,36,50,198,155,36,50,180,7,37,50,134,115,37,50,60,223,37,50,215,74,38,50,87,182,38,50,187,33,39,50,4,141,39,50,49,248,39,50,67,99,40,50,57,206,40,50,19,57,41,50,210,163,41,50,117,14,42,50,252,120,42,50,103,227,42,50,183,77,43,50,234,183,43,50,2,34,44,50,254,139,44,50,221,245,44,50,161,95,45,50,73,201,45,50,212,50,46,50,68,156,46,50,151,5,47,50,206,110,47,50,233,215,47,50,232,64,48,50,202,169,48,50,144,18,49,50,58,123,49,50,199,227,49,50,55,76,50,50,
140,180,50,50,195,28,51,50,223,132,51,50,221,236,51,50,191,84,52,50,132,188,52,50,45,36,53,50,185,139,53,50,40,243,53,50,122,90,54,50,176,193,54,50,200,40,55,50,196,143,55,50,163,246,55,50,101,93,56,50,10,196,56,50,145,42,57,50,252,144,57,50,74,247,57,50,122,93,58,50,141,195,58,50,131,41,59,50,92,143,59,50,24,245,59,50,182,90,60,50,55,192,60,50,155,37,61,50,225,138,61,50,10,240,61,50,21,85,62,50,2,186,62,50,211,30,63,50,133,131,63,50,26,232,63,50,146,76,64,50,235,176,64,50,39,21,65,50,69,121,65,50,
70,221,65,50,41,65,66,50,237,164,66,50,148,8,67,50,29,108,67,50,136,207,67,50,214,50,68,50,5,150,68,50,22,249,68,50,9,92,69,50,222,190,69,50,149,33,70,50,45,132,70,50,168,230,70,50,4,73,71,50,66,171,71,50,98,13,72,50,99,111,72,50,70,209,72,50,10,51,73,50,177,148,73,50,56,246,73,50,162,87,74,50,236,184,74,50,25,26,75,50,38,123,75,50,21,220,75,50,230,60,76,50,151,157,76,50,42,254,76,50,159,94,77,50,244,190,77,50,43,31,78,50,67,127,78,50,60,223,78,50,22,63,79,50,209,158,79,50,110,254,79,50,235,93,80,
50,73,189,80,50,137,28,81,50,169,123,81,50,170,218,81,50,140,57,82,50,79,152,82,50,243,246,82,50,119,85,83,50,220,179,83,50,34,18,84,50,73,112,84,50,80,206,84,50,56,44,85,50,1,138,85,50,170,231,85,50,51,69,86,50,157,162,86,50,232,255,86,50,19,93,87,50,31,186,87,50,11,23,88,50,215,115,88,50,132,208,88,50,17,45,89,50,126,137,89,50,203,229,89,50,249,65,90,50,7,158,90,50,245,249,90,50,195,85,91,50,113,177,91,50,0,13,92,50,110,104,92,50,189,195,92,50,235,30,93,50,250,121,93,50,232,212,93,50,182,47,94,
50,101,138,94,50,243,228,94,50,97,63,95,50,174,153,95,50,220,243,95,50,233,77,96,50,214,167,96,50,162,1,97,50,79,91,97,50,218,180,97,50,70,14,98,50,145,103,98,50,188,192,98,50,198,25,99,50,175,114,99,50,121,203,99,50,33,36,100,50,169,124,100,50,16,213,100,50,87,45,101,50,125,133,101,50,131,221,101,50,103,53,102,50,43,141,102,50,206,228,102,50,81,60,103,50,178,147,103,50,243,234,103,50,19,66,104,50,18,153,104,50,240,239,104,50,173,70,105,50,73,157,105,50,196,243,105,50,30,74,106,50,87,160,106,50,111,
246,106,50,102,76,107,50,59,162,107,50,240,247,107,50,131,77,108,50,245,162,108,50,70,248,108,50,117,77,109,50,132,162,109,50,113,247,109,50,60,76,110,50,231,160,110,50,112,245,110,50,215,73,111,50,29,158,111,50,66,242,111,50,69,70,112,50,38,154,112,50,231,237,112,50,133,65,113,50,2,149,113,50,93,232,113,50,151,59,114,50,175,142,114,50,165,225,114,50,122,52,115,50,45,135,115,50,190,217,115,50,46,44,116,50,123,126,116,50,167,208,116,50],"i8",4,y.a+1413120);
Q([177,34,117,50,153,116,117,50,95,198,117,50,3,24,118,50,133,105,118,50,230,186,118,50,36,12,119,50,64,93,119,50,59,174,119,50,19,255,119,50,201,79,120,50,93,160,120,50,207,240,120,50,31,65,121,50,76,145,121,50,88,225,121,50,65,49,122,50,8,129,122,50,173,208,122,50,47,32,123,50,143,111,123,50,205,190,123,50,232,13,124,50,225,92,124,50,184,171,124,50,108,250,124,50,254,72,125,50,109,151,125,50,186,229,125,50,228,51,126,50,236,129,126,50,209,207,126,50,148,29,127,50,52,107,127,50,177,184,127,50,6,
3,128,50,162,41,128,50,45,80,128,50,166,118,128,50,14,157,128,50,101,195,128,50,170,233,128,50,222,15,129,50,1,54,129,50,18,92,129,50,17,130,129,50,255,167,129,50,220,205,129,50,168,243,129,50,97,25,130,50,10,63,130,50,161,100,130,50,38,138,130,50,154,175,130,50,252,212,130,50,77,250,130,50,140,31,131,50,186,68,131,50,214,105,131,50,225,142,131,50,218,179,131,50,193,216,131,50,151,253,131,50,92,34,132,50,14,71,132,50,175,107,132,50,63,144,132,50,188,180,132,50,41,217,132,50,131,253,132,50,204,33,
133,50,3,70,133,50,40,106,133,50,60,142,133,50,62,178,133,50,46,214,133,50,13,250,133,50,217,29,134,50,149,65,134,50,62,101,134,50,213,136,134,50,91,172,134,50,207,207,134,50,49,243,134,50,130,22,135,50,192,57,135,50,237,92,135,50,8,128,135,50,17,163,135,50,8,198,135,50,237,232,135,50,193,11,136,50,131,46,136,50,50,81,136,50,208,115,136,50,92,150,136,50,214,184,136,50,62,219,136,50,148,253,136,50,217,31,137,50,11,66,137,50,43,100,137,50,58,134,137,50,54,168,137,50,33,202,137,50,249,235,137,50,191,
13,138,50,116,47,138,50,22,81,138,50,167,114,138,50,37,148,138,50,146,181,138,50,236,214,138,50,52,248,138,50,106,25,139,50,142,58,139,50,161,91,139,50,161,124,139,50,142,157,139,50,106,190,139,50,52,223,139,50,235,255,139,50,145,32,140,50,36,65,140,50,165,97,140,50,20,130,140,50,113,162,140,50,188,194,140,50,244,226,140,50,27,3,141,50,47,35,141,50,49,67,141,50,33,99,141,50,254,130,141,50,202,162,141,50,131,194,141,50,42,226,141,50,190,1,142,50,65,33,142,50,177,64,142,50,15,96,142,50,91,127,142,50,
148,158,142,50,187,189,142,50,208,220,142,50,210,251,142,50,194,26,143,50,160,57,143,50,108,88,143,50,37,119,143,50,204,149,143,50,97,180,143,50,227,210,143,50,83,241,143,50,176,15,144,50,252,45,144,50,52,76,144,50,91,106,144,50,111,136,144,50,112,166,144,50,96,196,144,50,61,226,144,50,7,0,145,50,191,29,145,50,101,59,145,50,248,88,145,50,121,118,145,50,231,147,145,50,67,177,145,50,140,206,145,50,195,235,145,50,231,8,146,50,249,37,146,50,249,66,146,50,230,95,146,50,193,124,146,50,137,153,146,50,62,
182,146,50,225,210,146,50,114,239,146,50,240,11,147,50,91,40,147,50,180,68,147,50,250,96,147,50,46,125,147,50,80,153,147,50,94,181,147,50,90,209,147,50,68,237,147,50,27,9,148,50,224,36,148,50,145,64,148,50,49,92,148,50,189,119,148,50,55,147,148,50,159,174,148,50,244,201,148,50,54,229,148,50,102,0,149,50,131,27,149,50,141,54,149,50,133,81,149,50,106,108,149,50,60,135,149,50,252,161,149,50,169,188,149,50,68,215,149,50,204,241,149,50,65,12,150,50,163,38,150,50,243,64,150,50,48,91,150,50,90,117,150,50,
114,143,150,50,119,169,150,50,105,195,150,50,73,221,150,50,22,247,150,50,208,16,151,50,119,42,151,50,12,68,151,50,142,93,151,50,253,118,151,50,90,144,151,50,163,169,151,50,218,194,151,50,255,219,151,50,16,245,151,50,15,14,152,50,251,38,152,50,212,63,152,50,154,88,152,50,78,113,152,50,238,137,152,50,124,162,152,50,248,186,152,50,96,211,152,50,182,235,152,50,248,3,153,50,40,28,153,50,70,52,153,50,80,76,153,50,71,100,153,50,44,124,153,50,254,147,153,50,189,171,153,50,105,195,153,50,3,219,153,50,137,
242,153,50,253,9,154,50,94,33,154,50,172,56,154,50,231,79,154,50,15,103,154,50,36,126,154,50,39,149,154,50,22,172,154,50,243,194,154,50,189,217,154,50,116,240,154,50,24,7,155,50,169,29,155,50,40,52,155,50,147,74,155,50,236,96,155,50,49,119,155,50,100,141,155,50,132,163,155,50,145,185,155,50,139,207,155,50,114,229,155,50,70,251,155,50,7,17,156,50,182,38,156,50,81,60,156,50,218,81,156,50,79,103,156,50,178,124,156,50,1,146,156,50,62,167,156,50,104,188,156,50,127,209,156,50,131,230,156,50,115,251,156,
50,81,16,157,50,28,37,157,50,212,57,157,50,122,78,157,50,12,99,157,50,139,119,157,50,247,139,157,50,80,160,157,50,151,180,157,50,202,200,157,50,234,220,157,50,247,240,157,50,242,4,158,50,217,24,158,50,174,44,158,50,111,64,158,50,29,84,158,50,185,103,158,50,65,123,158,50,183,142,158,50,25,162,158,50,105,181,158,50,165,200,158,50,206,219,158,50,229,238,158,50,232,1,159,50,217,20,159,50,182,39,159,50,129,58,159,50,56,77,159,50,220,95,159,50,110,114,159,50,236,132,159,50,87,151,159,50,176,169,159,50,
245,187,159,50,39,206,159,50,71,224,159,50,83,242,159,50,76,4,160,50,50,22,160,50,5,40,160,50,197,57,160,50,115,75,160,50,13,93,160,50,148,110,160,50,8,128,160,50,105,145,160,50,183,162,160,50,242,179,160,50,26,197,160,50,46,214,160,50,48,231,160,50,31,248,160,50,251,8,161,50,195,25,161,50,121,42,161,50,28,59,161,50,171,75,161,50,40,92,161,50,145,108,161,50,232,124,161,50,43,141,161,50,92,157,161,50,121,173,161,50,131,189,161,50,122,205,161,50,95,221,161,50,48,237,161,50,238,252,161,50,153,12,162,
50,49,28,162,50,182,43,162,50,40,59,162,50,135,74,162,50,211,89,162,50,12,105,162,50,49,120,162,50,68,135,162,50,68,150,162,50,48,165,162,50,10,180,162,50,209,194,162,50,132,209,162,50,36,224,162,50,178,238,162,50,44,253,162,50,148,11,163,50,232,25,163,50,41,40,163,50,87,54,163,50,115,68,163,50,123,82,163,50,112,96,163,50,82,110,163,50,33,124,163,50,221,137,163,50,134,151,163,50,28,165,163,50,159,178,163,50,14,192,163,50,107,205,163,50,181,218,163,50,236,231,163,50,15,245,163,50,32,2,164,50,30,15,
164,50,8,28,164,50,224,40,164,50,164,53,164,50,86,66,164,50,245,78,164,50,128,91,164,50,249,103,164,50,94,116,164,50,176,128,164,50,240,140,164,50,28,153,164,50,54,165,164,50,60,177,164,50,47,189,164,50,16,201,164,50,221,212,164,50,151,224,164,50,63,236,164,50,211,247,164,50,84,3,165,50,195,14,165,50,30,26,165,50,102,37,165,50,156,48,165,50,190,59,165,50,205,70,165,50,202,81,165,50,179,92,165,50,138,103,165,50,77,114,165,50,253,124,165,50,155,135,165,50,37,146,165,50,157,156,165,50,1,167,165,50,83,
177,165,50,145,187,165,50,189,197,165,50,214,207,165,50,219,217,165,50,206,227,165,50,174,237,165,50,122,247,165,50,52,1,166,50,219,10,166,50,111,20,166,50,240,29,166,50,94,39,166,50,185,48,166,50,1,58,166,50,55,67,166,50,89,76,166,50,104,85,166,50,101,94,166,50,78,103,166,50,37,112,166,50,232,120,166,50,153,129,166,50,55,138,166,50,194,146,166,50,58,155,166,50,159,163,166,50,241,171,166,50,49,180,166,50,93,188,166,50,118,196,166,50,125,204,166,50,113,212,166,50,82,220,166,50,32,228,166,50,219,235,
166,50,131,243,166,50,24,251,166,50,155,2,167,50,10,10,167,50,103,17,167,50,177,24,167,50,232,31,167,50,12,39,167,50,29,46,167,50,28,53,167,50,8,60,167,50,224,66,167,50,166,73,167,50,90,80,167,50,250,86,167,50,135,93,167,50,2,100,167,50,106,106,167,50,191,112,167,50,1,119,167,50,49,125,167,50,77,131,167,50,87,137,167,50,78,143,167,50,50,149,167,50,4,155,167,50,194,160,167,50,110,166,167,50,8,172,167,50,142,177,167,50,2,183,167,50,98,188,167,50,177,193,167,50,236,198,167,50,20,204,167,50,42,209,167,
50,45,214,167,50,30,219,167,50,251,223,167,50,198,228,167,50,127,233,167,50,36,238,167,50,183,242,167,50,55,247,167,50,164,251,167,50,255,255,167,50,71,4,168,50,124,8,168,50,159,12,168,50,175,16,168,50,172,20,168,50,151,24,168,50,111,28,168,50,52,32,168,50,231,35,168,50,135,39,168,50,20,43,168,50,143,46,168,50,247,49,168,50,76,53,168,50,143,56,168,50,191,59,168,50,220,62,168,50,231,65,168,50,224,68,168,50,198,71,168,50,153,74,168,50,89,77,168,50,7,80,168,50,163,82,168,50,43,85,168,50,162,87,168,50,
5,90,168,50,87,92,168,50,149,94,168,50,193,96,168,50,219,98,168,50,226,100,168,50,214,102,168,50,184,104,168,50,135,106,168,50,68,108,168,50,239,109,168,50,135,111,168,50,12,113,168,50,127,114,168,50,223,115,168,50,45,117,168,50,105,118,168,50,146,119,168,50,168,120,168,50,172,121,168,50,158,122,168,50,125,123,168,50,74,124,168,50,4,125,168,50,172,125,168,50,66,126,168,50,197,126,168,50,53,127,168,50,148,127,168,50,224,127,168,50,25,128,168,50,64,128,168,50,85,128,168,50,87,128,168,50,71,128,168,
50,37,128,168,50,240,127,168,50,169,127,168,50,80,127,168,50,228,126,168,50,102,126,168,50,214,125,168,50,52,125,168,50,127,124,168,50,183,123,168,50,222,122,168,50,242,121,168,50,244,120,168,50,228,119,168,50,193,118,168,50,140,117,168,50,69,116,168,50,236,114,168,50,128,113,168,50,3,112,168,50,115,110,168,50,208,108,168,50,28,107,168,50,85,105,168,50,125,103,168,50,146,101,168,50,148,99,168,50,133,97,168,50,100,95,168,50,48,93,168,50,234,90,168,50,146,88,168,50,40,86,168,50,172,83,168,50,30,81,
168,50,125,78,168,50,203,75,168,50,6,73,168,50,47,70,168,50,71,67,168,50,76,64,168,50,63,61,168,50,32,58,168,50,239,54,168,50,172,51,168,50,87,48,168,50,239,44,168,50,118,41,168,50,235,37,168,50,78,34,168,50,159,30,168,50,222,26,168,50,11,23,168,50,37,19,168,50,46,15,168,50,37,11,168,50,10,7,168,50,221,2,168,50,159,254,167,50,78,250,167,50,235,245,167,50,119,241,167,50,240,236,167,50,88,232,167,50,173,227,167,50,241,222,167,50,35,218,167,50,67,213,167,50,82,208,167,50,78,203,167,50,57,198,167,50,
18,193,167,50,217,187,167,50,142,182,167,50,49,177,167,50,195,171,167,50,67,166,167,50,177,160,167,50,13,155,167,50,87,149,167,50,144,143,167,50,183,137,167,50,204,131,167,50,208,125,167,50,194,119,167,50,162,113,167,50,113,107,167,50,45,101,167,50,216,94,167,50,114,88,167,50,250,81,167,50,112,75,167,50,212,68,167,50,39,62,167,50,104,55,167,50,152,48,167,50,182,41,167,50,194,34,167,50,189,27,167,50,167,20,167,50,126,13,167,50,68,6,167,50,249,254,166,50,156,247,166,50,45,240,166,50,173,232,166,50,
28,225,166,50,121,217,166,50,196,209,166,50,254,201,166,50,39,194,166,50,62,186,166,50,68,178,166,50,56,170,166,50,27,162,166,50,236,153,166,50,172,145,166,50,90,137,166,50,247,128,166,50,131,120,166,50,253,111,166,50,102,103,166,50,190,94,166,50,4,86,166,50,57,77,166,50,93,68,166,50,111,59,166,50,112,50,166,50,95,41,166,50,62,32,166,50,11,23,166,50,199,13,166,50,113,4,166,50,10,251,165,50,146,241,165,50,9,232,165,50,111,222,165,50,195,212,165,50,7,203,165,50,57,193,165,50,89,183,165,50,105,173,165,
50,104,163,165,50,85,153,165,50,49,143,165,50,252,132,165,50,182,122,165,50,95,112,165,50,247,101,165,50,126,91,165,50,243,80,165,50,88,70,165,50,171,59,165,50,238,48,165,50,31,38,165,50,64,27,165,50,79,16,165,50,78,5,165,50,59,250,164,50,24,239,164,50,227,227,164,50,158,216,164,50,71,205,164,50,224,193,164,50,103,182,164,50,222,170,164,50,68,159,164,50,153,147,164,50,221,135,164,50,17,124,164,50,51,112,164,50,69,100,164,50,69,88,164,50,53,76,164,50,20,64,164,50,227,51,164,50,160,39,164,50,77,27,
164,50,233,14,164,50,116,2,164,50,238,245,163,50,88,233,163,50,177,220,163,50,249,207,163,50,49,195,163,50,88,182,163,50,110,169,163,50,116,156,163,50,104,143,163,50,77,130,163,50,32,117,163,50,227,103,163,50,150,90,163,50,55,77,163,50,201,63,163,50,73,50,163,50,185,36,163,50,25,23,163,50,104,9,163,50,166,251,162,50,212,237,162,50,241,223,162,50,254,209,162,50,251,195,162,50,231,181,162,50,194,167,162,50,141,153,162,50,72,139,162,50,242,124,162,50,140,110,162,50,21,96,162,50,142,81,162,50,247,66,
162,50,79,52,162,50,151,37,162,50,207,22,162,50,246,7,162,50,13,249,161,50,20,234,161,50,10,219,161,50,240,203,161,50,198,188,161,50,139,173,161,50,65,158,161,50,230,142,161,50,123,127,161,50,255,111,161,50,116,96,161,50,216,80,161,50,44,65,161,50,112,49,161,50,164,33,161,50,200,17,161,50,219,1,161,50,223,241,160,50,210,225,160,50,182,209,160,50,137,193,160,50,76,177,160,50,255,160,160,50,163,144,160,50,54,128,160,50,185,111,160,50,44,95,160,50,143,78,160,50,226,61,160,50,38,45,160,50,89,28,160,50,
124,11,160,50,144,250,159,50,147,233,159,50,135,216,159,50,107,199,159,50,63,182,159,50,3,165,159,50,183,147,159,50,92,130,159,50,240,112,159,50,117,95,159,50,234,77,159,50,79,60,159,50,165,42,159,50,235,24,159,50,33,7,159,50,71,245,158,50,94,227,158,50,101,209,158,50,92,191,158,50,68,173,158,50,28,155,158,50,228,136,158,50,157,118,158,50,70,100,158,50,223,81,158,50,105,63,158,50,228,44,158,50,78,26,158,50,170,7,158,50,245,244,157,50,50,226,157,50,94,207,157,50,123,188,157,50,137,169,157,50,136,150,
157,50,118,131,157,50,86,112,157,50,38,93,157,50,230,73,157,50,151,54,157,50,57,35,157,50,204,15,157,50,79,252,156,50,194,232,156,50,39,213,156,50,124,193,156,50,194,173,156,50,248,153,156,50,32,134,156,50,56,114,156,50,64,94,156,50,58,74,156,50,36,54,156,50,255,33,156,50,203,13,156,50,136,249,155,50,54,229,155,50,212,208,155,50,100,188,155,50,228,167,155,50,85,147,155,50,183,126,155,50,10,106,155,50,78,85,155,50,131,64,155,50,169,43,155,50,191,22,155,50,199,1,155,50,192,236,154,50,170,215,154,50,
133,194,154,50,81,173,154,50,14,152,154,50,188,130,154,50,91,109,154,50,236,87,154,50,109,66,154,50,224,44,154,50,68,23,154,50,153,1,154,50,223,235,153,50,22,214,153,50,63,192,153,50,88,170,153,50,99,148,153,50,96,126,153,50,77,104,153,50,44,82,153,50,252,59,153,50,190,37,153,50,113,15,153,50,21,249,152,50,170,226,152,50,49,204,152,50,170,181,152,50,19,159,152,50,111,136,152,50,187,113,152,50,249,90,152,50,41,68,152,50,74,45,152,50,92,22,152,50,96,255,151,50,86,232,151,50,61,209,151,50,22,186,151,
50,224,162,151,50,156,139,151,50,73,116,151,50,232,92,151,50,121,69,151,50,251,45,151,50,111,22,151,50,213,254,150,50,44,231,150,50,117,207,150,50,176,183,150,50,220,159,150,50,251,135,150,50,11,112,150,50,13,88,150,50,0,64,150,50,230,39,150,50,189,15,150,50,134,247,149,50,65,223,149,50,238,198,149,50,141,174,149,50,30,150,149,50,160,125,149,50,21,101,149,50,123,76,149,50,212,51,149,50,30,27,149,50,91,2,149,50,137,233,148,50,170,208,148,50,188,183,148,50,193,158,148,50,184,133,148,50,161,108,148,
50,124,83,148,50,73,58,148,50,8,33,148,50,185,7,148,50,93,238,147,50,243,212,147,50,123,187,147,50,245,161,147,50,97,136,147,50,192,110,147,50,17,85,147,50,84,59,147,50,138,33,147,50,178,7,147,50,204,237,146,50,217,211,146,50,216,185,146,50,201,159,146,50,173,133,146,50,131,107,146,50,75,81,146,50,6,55,146,50,180,28,146,50,84,2,146,50,230,231,145,50,107,205,145,50,227,178,145,50,77,152,145,50,169,125,145,50,249,98,145,50,58,72,145,50,111,45,145,50,150,18,145,50,175,247,144,50,188,220,144,50,187,193,
144,50,173,166,144,50,145,139,144,50,104,112,144,50,50,85,144,50,239,57,144,50,158,30,144,50,64,3,144,50,213,231,143,50,93,204,143,50,216,176,143,50,69,149,143,50,166,121,143,50,249,93,143,50,63,66,143,50,120,38,143,50,164,10,143,50,195,238,142,50,213,210,142,50,218,182,142,50,210,154,142,50,189,126,142,50,155,98,142,50,108,70,142,50,49,42,142,50,232,13,142,50,146,241,141,50,48,213,141,50,192,184,141,50,68,156,141,50,187,127,141,50,37,99,141,50,131,70,141,50,211,41,141,50,23,13,141,50,78,240,140,
50,121,211,140,50,150,182,140,50,167,153,140,50,172,124,140,50,163,95,140,50,142,66,140,50,109,37,140,50,62,8,140,50,4,235,139,50,188,205,139,50,104,176,139,50,8,147,139,50,155,117,139,50,33,88,139,50,155,58,139,50,9,29,139,50,106,255,138,50,191,225,138,50,7,196,138,50,67,166,138,50,114,136,138,50,149,106,138,50,172,76,138,50,182,46,138,50,181,16,138,50,166,242,137,50,140,212,137,50,101,182,137,50,50,152,137,50,243,121,137,50,168,91,137,50,80,61,137,50,236,30,137,50,124,0,137,50,0,226,136,50,120,
195,136,50,228,164,136,50,67,134,136,50,151,103,136,50,222,72,136,50,26,42,136,50,73,11,136,50,109,236,135,50,132,205,135,50,144,174,135,50,143,143,135,50,131,112,135,50,107,81,135,50,70,50,135,50,22,19,135,50,218,243,134,50,147,212,134,50,63,181,134,50,224,149,134,50,116,118,134,50,254,86,134,50,123,55,134,50,236,23,134,50,82,248,133,50,172,216,133,50,251,184,133,50,62,153,133,50,117,121,133,50,160,89,133,50,192,57,133,50,213,25,133,50,221,249,132,50,219,217,132,50,204,185,132,50,178,153,132,50,
141,121,132,50,92,89,132,50,32,57,132,50,216,24,132,50,133,248,131,50,38,216,131,50,188,183,131,50,71,151,131,50,198,118,131,50,58,86,131,50,163,53,131,50,0,21,131,50,82,244,130,50,153,211,130,50,212,178,130,50,5,146,130,50,42,113,130,50,68,80,130,50,82,47,130,50,86,14,130,50,78,237,129,50,60,204,129,50,30,171,129,50,245,137,129,50,193,104,129,50,130,71,129,50,56,38,129,50,227,4,129,50,131,227,128,50,23,194,128,50,161,160,128,50,32,127,128,50,149,93,128,50,254,59,128,50,92,26,128,50,95,241,127,50,
241,173,127,50,108,106,127,50,210,38,127,50,35,227,126,50,93,159,126,50,131,91,126,50,147,23,126,50,141,211,125,50,114,143,125,50,66,75,125,50,252,6,125,50,161,194,124,50,49,126,124,50,171,57,124,50,17,245,123,50,97,176,123,50,156,107,123,50,194,38,123,50,211,225,122,50,207,156,122,50,183,87,122,50,137,18,122,50,70,205,121,50,239,135,121,50,130,66,121,50,1,253,120,50,107,183,120,50,193,113,120,50,2,44,120,50,46,230,119,50,69,160,119,50,73,90,119,50,55,20,119,50,17,206,118,50,215,135,118,50,136,65,
118,50,37,251,117,50,174,180,117,50,34,110,117,50,130,39,117,50,206,224,116,50,6,154,116,50,41,83,116,50,57,12,116,50,52,197,115,50,28,126,115,50,239,54,115,50,175,239,114,50,90,168,114,50,242,96,114,50,118,25,114,50,230,209,113,50,66,138,113,50,139,66,113,50,192,250,112,50,225,178,112,50,239,106,112,50,233,34,112,50,208,218,111,50,163,146,111,50,99,74,111,50,15,2,111,50,168,185,110,50,46,113,110,50,160,40,110,50,255,223,109,50,75,151,109,50,132,78,109,50,169,5,109,50,188,188,108,50,187,115,108,50,
167,42,108,50,129,225,107,50,71,152,107,50,251,78,107,50,155,5,107,50,41,188,106,50,164,114,106,50,12,41,106,50,98,223,105,50,165,149,105,50,213,75,105,50,242,1,105,50,253,183,104,50,246,109,104,50,220,35,104,50,175,217,103,50,113,143,103,50,31,69,103,50,188,250,102,50,70,176,102,50,190,101,102,50,35,27,102,50,119,208,101,50,184,133,101,50,232,58,101,50,5,240,100,50,16,165,100,50,9,90,100,50,240,14,100,50,198,195,99,50,137,120,99,50,59,45,99,50,219,225,98,50,105,150,98,50,229,74,98,50,80,255,97,50,
169,179,97,50,240,103,97,50,38,28,97,50,74,208,96,50,93,132,96,50,95,56,96,50,79,236,95,50,46,160,95,50,251,83,95,50,183,7,95,50,98,187,94,50,251,110,94,50,132,34,94,50,251,213,93,50,97,137,93,50,183,60,93,50,251,239,92,50,46,163,92,50,80,86,92,50,98,9,92,50,98,188,91,50,82,111,91,50,49,34,91,50,255,212,90,50,189,135,90,50,106,58,90,50,6,237,89,50,145,159,89,50,13,82,89,50,119,4,89,50,209,182,88,50,27,105,88,50,84,27,88,50,126,205,87,50,150,127,87,50,159,49,87,50,151,227,86,50,127,149,86,50,87,71,
86,50,31,249,85,50,214,170,85,50,126,92,85,50,22,14,85,50,158,191,84,50,21,113,84,50,125,34,84,50,214,211,83,50,30,133,83,50,87,54,83,50,127,231,82,50,153,152,82,50,162,73,82,50,156,250,81,50,135,171,81,50,98,92,81,50,45,13,81,50,233,189,80,50,150,110,80,50,51,31,80,50,193,207,79,50,64,128,79,50,175,48,79,50,16,225,78,50,97,145,78,50,163,65,78,50,214,241,77,50,250,161,77,50,15,82,77,50,21,2,77,50,12,178,76,50,244,97,76,50,205,17,76,50,152,193,75,50,84,113,75,50,1,33,75,50,159,208,74,50,47,128,74,
50,176,47,74,50,35,223,73,50,135,142,73,50,220,61,73,50,36,237,72,50,92,156,72,50,135,75,72,50,163,250,71,50,177,169,71,50,177,88,71,50,162,7,71,50,133,182,70,50,90,101,70,50,33,20,70,50,219,194,69,50,134,113,69,50,35,32,69,50,178,206,68,50,51,125,68,50,167,43,68,50,12,218,67,50,100,136,67,50,174,54,67,50,235,228,66,50,26,147,66,50,59,65,66,50,79,239,65,50,85,157,65,50,78,75,65,50,57,249,64,50,23,167,64,50,232,84,64,50,171,2,64,50,97,176,63,50,10,94,63,50,166,11,63,50,52,185,62,50,181,102,62,50,42,
20,62,50,145,193,61,50,235,110,61,50,56,28,61,50,121,201,60,50,172,118,60,50,211,35,60,50,237,208,59,50,250,125,59,50,251,42,59,50,238,215,58,50,213,132,58,50,176,49,58,50,126,222,57,50,64,139,57,50,245,55,57,50,157,228,56,50,58,145,56,50,201,61,56,50,77,234,55,50,196,150,55,50,48,67,55,50,142,239,54,50,225,155,54,50,40,72,54,50,99,244,53,50,145,160,53,50,180,76,53,50,203,248,52,50,213,164,52,50,212,80,52,50,199,252,51,50,175,168,51,50,138,84,51,50,90,0,51,50,31,172,50,50,215,87,50,50,132,3,50,50,
38,175,49,50,188,90,49,50,71,6,49,50,198,177,48,50,58,93,48,50,162,8,48,50,255,179,47,50,81,95,47,50,152,10,47,50,212,181,46,50,4,97,46,50,41,12,46,50,68,183,45,50,83,98,45,50,87,13,45,50,81,184,44,50,63,99,44,50,35,14,44,50,252,184,43,50,202,99,43,50,141,14,43,50,70,185,42,50,244,99,42,50,152,14,42,50,49,185,41,50,191,99,41,50,67,14,41,50,189,184,40,50,44,99,40,50,144,13,40,50,235,183,39,50,59,98,39,50,129,12,39,50,189,182,38,50,238,96,38,50,22,11,38,50,51,181,37,50,71,95,37,50,80,9,37,50,79,179,
36,50,69,93,36,50,49,7,36,50,18,177,35,50,234,90,35,50,185,4,35,50,125,174,34,50,56,88,34,50,234,1,34,50,145,171,33,50,48,85,33,50,196,254,32,50,79,168,32,50,209,81,32,50,74,251,31,50,185,164,31,50,31,78,31,50,123,247,30,50,206,160,30,50,25,74,30,50,90,243,29,50,146,156,29,50,192,69,29,50,230,238,28,50,3,152,28,50,23,65,28,50,34,234,27,50,36,147,27,50,30,60,27,50,14,229,26,50,246,141,26,50,214,54,26,50,172,223,25,50,122,136,25,50,64,49,25,50,253,217,24,50,177,130,24,50,93,43,24,50,0,212,23,50,156,
124,23,50,47,37,23,50,185,205,22,50,60,118,22,50,182,30,22,50,40,199,21,50,146,111,21,50,243,23,21,50,77,192,20,50,159,104,20,50,233,16,20,50,43,185,19,50,101,97,19,50,151,9,19,50,194,177,18,50,228,89,18,50,255,1,18,50,19,170,17,50,30,82,17,50,34,250,16,50,31,162,16,50,20,74,16,50,2,242,15,50,232,153,15,50,198,65,15,50,158,233,14,50,110,145,14,50,55,57,14,50,249,224,13,50,179,136,13,50,102,48,13,50,19,216,12,50,184,127,12,50,86,39,12,50,237,206,11,50,125,118,11,50,7,30,11,50,137,197,10,50,5,109,10,
50,122,20,10,50,232,187,9,50,80,99,9,50,176,10,9,50,11,178,8,50,94,89,8,50,171,0,8,50,242,167,7,50,50,79,7,50,108,246,6,50,160,157,6,50,205,68,6,50,243,235,5,50,20,147,5,50,46,58,5,50,67,225,4,50,81,136,4,50,89,47,4,50,91,214,3,50,87,125,3,50,77,36,3,50,61,203,2,50,39,114,2,50,11,25,2,50,234,191,1,50,195,102,1,50,150,13,1,50,99,180,0,50,43,91,0,50,237,1,0,50,83,81,255,49,193,158,254,49,37,236,253,49,125,57,253,49,203,134,252,49,14,212,251,49,70,33,251,49,116,110,250,49,151,187,249,49,176,8,249,49,
190,85,248,49,195,162,247,49,189,239,246,49,173,60,246,49,148,137,245,49,112,214,244,49,66,35,244,49,11,112,243,49,202,188,242,49,128,9,242,49,44,86,241,49,207,162,240,49,104,239,239,49,248,59,239,49,127,136,238,49,253,212,237,49,114,33,237,49,221,109,236,49,64,186,235,49,155,6,235,49,236,82,234,49,53,159,233,49,118,235,232,49,174,55,232,49,222,131,231,49,5,208,230,49,36,28,230,49,59,104,229,49,74,180,228,49,81,0,228,49,81,76,227,49,72,152,226,49,56,228,225,49,32,48,225,49,0,124,224,49,217,199,223,
49,171,19,223,49,117,95,222,49,56,171,221,49,244,246,220,49,169,66,220,49,87,142,219,49,254,217,218,49,158,37,218,49,56,113,217,49,202,188,216,49,87,8,216,49,220,83,215,49,91,159,214,49,212,234,213,49,71,54,213,49,179,129,212,49,25,205,211,49,122,24,211,49,212,99,210,49,40,175,209,49,119,250,208,49,192,69,208,49,3,145,207,49,65,220,206,49,121,39,206,49,172,114,205,49,218,189,204,49,2,9,204,49,37,84,203,49,68,159,202,49,93,234,201,49,113,53,201,49,128,128,200,49,139,203,199,49,145,22,199,49,147,97,
198,49,143,172,197,49,136,247,196,49,124,66,196,49,108,141,195,49,88,216,194,49,63,35,194,49,35,110,193,49,2,185,192,49,222,3,192,49,182,78,191,49,138,153,190,49,91,228,189,49,40,47,189,49,241,121,188,49,183,196,187,49,122,15,187,49,58,90,186,49,246,164,185,49,176,239,184,49,102,58,184,49,26,133,183,49,202,207,182,49,120,26,182,49,35,101,181,49,204,175,180,49,114,250,179,49,21,69,179,49,183,143,178,49,86,218,177,49,242,36,177,49,141,111,176,49,38,186,175,49,188,4,175,49,81,79,174,49,228,153,173,49,
117,228,172,49,4,47,172,49,146,121,171,49,31,196,170,49,170,14,170,49,52,89,169,49,188,163,168,49,67,238,167,49,201,56,167,49,79,131,166,49,211,205,165,49,86,24,165,49,217,98,164,49,91,173,163,49,220,247,162,49,92,66,162,49,221,140,161,49,92,215,160,49,220,33,160,49,91,108,159,49,218,182,158,49,89,1,158,49,216,75,157,49,87,150,156,49,215,224,155,49,86,43,155,49,214,117,154,49,86,192,153,49,215,10,153,49,88,85,152,49,218,159,151,49,92,234,150,49,224,52,150,49,100,127,149,49,233,201,148,49,111,20,148,
49,246,94,147,49,127,169,146,49,8,244,145,49,147,62,145,49,31,137,144,49,173,211,143,49,61,30,143,49,206,104,142,49,97,179,141,49,245,253,140,49,139,72,140,49,36,147,139,49,190,221,138,49,91,40,138,49,249,114,137,49,154,189,136,49,62,8,136,49,227,82,135,49,139,157,134,49,54,232,133,49,228,50,133,49,148,125,132,49,71,200,131,49,252,18,131,49,181,93,130,49,113,168,129,49,48,243,128,49,242,61,128,49,110,17,127,49,0,167,125,49,152,60,124,49,55,210,122,49,221,103,121,49,139,253,119,49,64,147,118,49,253,
40,117,49,193,190,115,49,141,84,114,49,98,234,112,49,62,128,111,49,35,22,110,49,17,172,108,49,7,66,107,49,6,216,105,49,14,110,104,49,31,4,103,49,57,154,101,49,93,48,100,49,139,198,98,49,194,92,97,49,3,243,95,49,78,137,94,49,163,31,93,49,3,182,91,49,109,76,90,49,226,226,88,49,98,121,87,49,236,15,86,49,130,166,84,49,35,61,83,49,208,211,81,49,136,106,80,49,75,1,79,49,27,152,77,49,247,46,76,49,222,197,74,49,210,92,73,49,211,243,71,49,224,138,70,49,250,33,69,49,33,185,67,49,85,80,66,49,151,231,64,49,229,
126,63,49,66,22,62,49,171,173,60,49,35,69,59,49,169,220,57,49,61,116,56,49,223,11,55,49,144,163,53,49,79,59,52,49,29,211,50,49,250,106,49,49,229,2,48,49,224,154,46,49,235,50,45,49,5,203,43,49,46,99,42,49,104,251,40,49,177,147,39,49,10,44,38,49,116,196,36,49,238,92,35,49,120,245,33,49,19,142,32,49,191,38,31,49,124,191,29,49,75,88,28,49,42,241,26,49,27,138,25,49,29,35,24,49,50,188,22,49,88,85,21,49,144,238,19,49,218,135,18,49,54,33,17,49,165,186,15,49,39,84,14,49,187,237,12,49,99,135,11,49,29,33,10,
49,235,186,8,49,204,84,7,49,192,238,5,49,200,136,4,49,228,34,3,49,20,189,1,49,88,87,0,49,96,227,253,48,57,24,251,48,59,77,248,48,103,130,245,48,188,183,242,48,59,237,239,48,228,34,237,48,184,88,234,48,183,142,231,48,224,196,228,48,54,251,225,48,183,49,223,48,99,104,220,48,61,159,217,48,66,214,214,48,117,13,212,48,213,68,209,48,98,124,206,48,29,180,203,48,6,236,200,48,29,36,198,48,99,92,195,48,216,148,192,48,124,205,189,48,79,6,187,48,83,63,184,48,134,120,181,48,234,177,178,48,126,235,175,48,67,37,
173,48,57,95,170,48,97,153,167,48,187,211,164,48,71,14,162,48,5,73,159,48,246,131,156,48,26,191,153,48,113,250,150,48,251,53,148,48,185,113,145,48,172,173,142,48,210,233,139,48,46,38,137,48,190,98,134,48,132,159,131,48,127,220,128,48,96,51,124,48,46,174,118,48,105,41,113,48,17,165,107,48,39,33,102,48,171,157,96,48,159,26,91,48,2,152,85,48,213,21,80,48,25,148,74,48,206,18,69,48,245,145,63,48,143,17,58,48,155,145,52,48,27,18,47,48,15,147,41,48,120,20,36,48,86,150,30,48,170,24,25,48,117,155,19,48,182,
30,14,48,111,162,8,48,160,38,3,48,146,86,251,47,216,96,240,47,17,108,229,47,62,120,218,47,97,133,207,47,123,147,196,47,141,162,185,47,153,178,174,47,158,195,163,47,159,213,152,47,156,232,141,47,151,252,130,47,32,35,112,47,18,79,90,47,6,125,68,47,255,172,46,47,253,222,24,47,4,19,3,47,43,146,218,46,104,2,175,46,195,118,131,46,129,222,47,46,150,175,177,45,184,181,236,42,41,57,170,173,44,10,44,174,169,119,129,174,255,229,172,174,19,80,216,174,241,218,1,175,179,139,23,175,78,58,45,175,191,230,66,175,4,
145,88,175,28,57,110,175,130,239,129,175,92,193,140,175,29,146,151,175,194,97,162,175,75,48,173,175,182,253,183,175,2,202,194,175,47,149,205,175,59,95,216,175,38,40,227,175,237,239,237,175,144,182,248,175,7,190,1,176,51,32,7,176,204,129,12,176,208,226,17,176,63,67,23,176,26,163,28,176,94,2,34,176,12,97,39,176,36,191,44,176,164,28,50,176,140,121,55,176,219,213,60,176,145,49,66,176,174,140,71,176,49,231,76,176,25,65,82,176,102,154,87,176,24,243,92,176,45,75,98,176,165,162,103,176,129,249,108,176,190,
79,114,176,93,165,119,176,93,250,124,176,95,39,129,176,63,209,131,176,207,122,134,176,15,36,137,176,254,204,139,176,156,117,142,176,232,29,145,176,227,197,147,176,140,109,150,176,228,20,153,176,232,187,155,176,155,98,158,176,250,8,161,176,6,175,163,176,191,84,166,176,36,250,168,176,53,159,171,176,242,67,174,176,91,232,176,176,111,140,179,176,45,48,182,176,151,211,184,176,171,118,187,176,106,25,190,176,210,187,192,176,229,93,195,176,160,255,197,176,5,161,200,176,19,66,203,176,202,226,205,176,41,131,
208,176,48,35,211,176,223,194,213,176,54,98,216,176,53,1,219,176,218,159,221,176,38,62,224,176,25,220,226,176,179,121,229,176,242,22,232,176,216,179,234,176,99,80,237,176,147,236,239,176,105,136,242,176,227,35,245,176,2,191,247,176,198,89,250,176,45,244,252,176,56,142,255,176,244,19,1,177,157,96,2,177,23,173,3,177,100,249,4,177,129,69,6,177,112,145,7,177,47,221,8,177,192,40,10,177,33,116,11,177,83,191,12,177,85,10,14,177,40,85,15,177,203,159,16,177,63,234,17,177,130,52,19,177,149,126,20,177,121,200,
21,177,43,18,23,177,174,91,24,177,255,164,25,177,32,238,26,177,16,55,28,177,208,127,29,177,94,200,30,177,187,16,32,177,230,88,33,177,224,160,34,177,169,232,35,177,64,48,37,177,165,119,38,177,216,190,39,177,217,5,41,177,168,76,42,177,68,147,43,177,174,217,44,177,230,31,46,177,235,101,47,177,189,171,48,177,92,241,49,177,200,54,51,177,1,124,52,177,7,193,53,177,217,5,55,177,120,74,56,177,227,142,57,177,26,211,58,177,29,23,60,177,237,90,61,177,136,158,62,177,239,225,63,177,34,37,65,177,32,104,66,177,233,
170,67,177,126,237,68,177,222,47,70,177,9,114,71,177,255,179,72,177,191,245,73,177,75,55,75,177,161,120,76,177,193,185,77,177,172,250,78,177,96,59,80,177,223,123,81,177,40,188,82,177,59,252,83,177,23,60,85,177,189,123,86,177,45,187,87,177,102,250,88,177,104,57,90,177,51,120,91,177,199,182,92,177,37,245,93,177,75,51,95,177,57,113,96,177,240,174,97,177,112,236,98,177,184,41,100,177,200,102,101,177,160,163,102,177,64,224,103,177,168,28,105,177,216,88,106,177,208,148,107,177,143,208,108,177,21,12,110,
177,98,71,111,177,119,130,112,177,83,189,113,177,246,247,114,177,95,50,116,177,143,108,117,177,134,166,118,177,68,224,119,177,199,25,121,177,17,83,122,177,33,140,123,177,247,196,124,177,147,253,125,177,245,53,127,177,14,55,128,177,5,211,128,177,222,110,129,177,154,10,130,177,56,166,130,177,185,65,131,177,29,221,131,177,99,120,132,177,139,19,133,177,150,174,133,177,131,73,134,177,82,228,134,177,4,127,135,177,151,25,136,177,13,180,136,177,100,78,137,177,158,232,137,177,185,130,138,177,183,28,139,177,
150,182,139,177,86,80,140,177,249,233,140,177,125,131,141,177,226,28,142,177,41,182,142,177,82,79,143,177,92,232,143,177,71,129,144,177,20,26,145,177,193,178,145,177,80,75,146,177,192,227,146,177,17,124,147,177,68,20,148,177,87,172,148,177,75,68,149,177,32,220,149,177,213,115,150,177,108,11,151,177,227,162,151,177,58,58,152,177,115,209,152,177,140,104,153,177,133,255,153,177,95,150,154,177,25,45,155,177,179,195,155,177,46,90,156,177,137,240,156,177,196,134,157,177,223,28,158,177,218,178,158,177,181,
72,159,177,112,222,159,177,11,116,160,177,134,9,161,177,225,158,161,177,27,52,162,177,53,201,162,177,47,94,163,177,8,243,163,177,193,135,164,177,89,28,165,177,209,176,165,177,40,69,166,177,94,217,166,177,116,109,167,177,105,1,168,177,61,149,168,177,240,40,169,177,130,188,169,177,243,79,170,177,67,227,170,177,114,118,171,177,128,9,172,177,109,156,172,177,57,47,173,177,227,193,173,177,107,84,174,177,211,230,174,177,25,121,175,177,61,11,176,177,64,157,176,177,33,47,177,177,225,192,177,177,127,82,178,
177,251,227,178,177,86,117,179,177,142,6,180,177,165,151,180,177,153,40,181,177,108,185,181,177,29,74,182,177,171,218,182,177,24,107,183,177,98,251,183,177,138,139,184,177,143,27,185,177,114,171,185,177,51,59,186,177,210,202,186,177,78,90,187,177,167,233,187,177,222,120,188,177,242,7,189,177,227,150,189,177,178,37,190,177,94,180,190,177,231,66,191,177,77,209,191,177,144,95,192,177,176,237,192,177,174,123,193,177,136,9,194,177,63,151,194,177,210,36,195,177,67,178,195,177,144,63,196,177,186,204,196,
177,193,89,197,177,164,230,197,177,100,115,198,177,0,0,199,177,121,140,199,177,206,24,200,177,255,164,200,177,13,49,201,177,247,188,201,177,189,72,202,177,95,212,202,177,222,95,203,177,56,235,203,177,111,118,204,177,129,1,205,177,112,140,205,177,58,23,206,177,224,161,206,177,98,44,207,177,192,182,207,177,249,64,208,177,14,203,208,177,255,84,209,177,203,222,209,177,115,104,210,177,246,241,210,177,84,123,211,177,142,4,212,177,163,141,212,177,148,22,213,177,96,159,213,177,7,40,214,177,137,176,214,177,
230,56,215,177,30,193,215,177,50,73,216,177,32,209,216,177,233,88,217,177,141,224,217,177,12,104,218,177,102,239,218,177,154,118,219,177,169,253,219,177,147,132,220,177,87,11,221,177,246,145,221,177,112,24,222,177,196,158,222,177,242,36,223,177,251,170,223,177,222,48,224,177,155,182,224,177,51,60,225,177,165,193,225,177,241,70,226,177,23,204,226,177,23,81,227,177,242,213,227,177,166,90,228,177,52,223,228,177,157,99,229,177,223,231,229,177,251,107,230,177,240,239,230,177,192,115,231,177,105,247,231,
177,236,122,232,177,72,254,232,177,126,129,233,177,142,4,234,177,119,135,234,177,57,10,235,177,213,140,235,177,74,15,236,177,153,145,236,177,193,19,237,177,194,149,237,177,156,23,238,177,79,153,238,177,220,26,239,177,66,156,239,177,128,29,240,177,152,158,240,177,136,31,241,177,82,160,241,177,244,32,242,177,112,161,242,177,196,33,243,177,240,161,243,177,246,33,244,177,212,161,244,177,139,33,245,177,26,161,245,177,130,32,246,177,194,159,246,177,219,30,247,177,204,157,247,177,150,28,248,177,56,155,248,
177,178,25,249,177,5,152,249,177,47,22,250,177,50,148,250,177,14,18,251,177,193,143,251,177,76,13,252,177,175,138,252,177,235,7,253,177,254,132,253,177,233,1,254,177,172,126,254,177,71,251,254,177,186,119,255,177,4,244,255,177,19,56,0,178,16,118,0,178,249,179,0,178,205,241,0,178,142,47,1,178,58,109,1,178,210,170,1,178,85,232,1,178,197,37,2,178,32,99,2,178,102,160,2,178,152,221,2,178,182,26,3,178,192,87,3,178,181,148,3,178,150,209,3,178,98,14,4,178,26,75,4,178,189,135,4,178,76,196,4,178,198,0,5,178,
44,61,5,178,125,121,5,178,186,181,5,178,226,241,5,178,245,45,6,178,244,105,6,178,222,165,6,178,180,225,6,178,117,29,7,178,33,89,7,178,184,148,7,178,59,208,7,178,169,11,8,178,2,71,8,178,71,130,8,178,118,189,8,178,145,248,8,178,151,51,9,178,136,110,9,178,100,169,9,178,43,228,9,178,222,30,10,178,123,89,10,178,4,148,10,178,119,206,10,178,214,8,11,178,31,67,11,178,84,125,11,178,116,183,11,178,126,241,11,178,115,43,12,178,84,101,12,178,31,159,12,178,213,216,12,178,118,18,13,178,2,76,13,178,121,133,13,178,
218,190,13,178,38,248,13,178,93,49,14,178,127,106,14,178,140,163,14,178,131,220,14,178,101,21,15,178,50,78,15,178,233,134,15,178,139,191,15,178,24,248,15,178,144,48,16,178,242,104,16,178,62,161,16,178,117,217,16,178,151,17,17,178,163,73,17,178,154,129,17,178,124,185,17,178,71,241,17,178,254,40,18,178,159,96,18,178,42,152,18,178,160,207,18,178,0,7,19,178,74,62,19,178,127,117,19,178,159,172,19,178,168,227,19,178,156,26,20,178,123,81,20,178,68,136,20,178,247,190,20,178,148,245,20,178,27,44,21,178,141,
98,21,178,233,152,21,178,48,207,21,178,96,5,22,178,123,59,22,178,128,113,22,178,111,167,22,178,72,221,22,178,11,19,23,178,185,72,23,178,80,126,23,178,210,179,23,178,61,233,23,178,147,30,24,178,211,83,24,178,253,136,24,178,17,190,24,178,15,243,24,178,246,39,25,178,200,92,25,178,132,145,25,178,42,198,25,178,185,250,25,178,51,47,26,178,150,99,26,178,228,151,26,178,27,204,26,178,60,0,27,178,71,52,27,178,60,104,27,178,26,156,27,178,227,207,27,178,149,3,28,178,49,55,28,178,183,106,28,178,38,158,28,178,
127,209,28,178,194,4,29,178,239,55,29,178,5,107,29,178,5,158,29,178,239,208,29,178,194,3,30,178,127,54,30,178,38,105,30,178,182,155,30,178,48,206,30,178,147,0,31,178,224,50,31,178,23,101,31,178,55,151,31,178,64,201,31,178,51,251,31,178,16,45,32,178,214,94,32,178,134,144,32,178,31,194,32,178,161,243,32,178,13,37,33,178,99,86,33,178,161,135,33,178,202,184,33,178,219,233,33,178,214,26,34,178,187,75,34,178,136,124,34,178,63,173,34,178,224,221,34,178,105,14,35,178,220,62,35,178,57,111,35,178,126,159,35,
178,173,207,35,178,197,255,35,178,199,47,36,178,177,95,36,178,133,143,36,178,66,191,36,178,232,238,36,178,120,30,37,178,240,77,37,178,82,125,37,178,157,172,37,178,209,219,37,178,238,10,38,178,244,57,38,178,227,104,38,178,188,151,38,178,125,198,38,178,40,245,38,178,188,35,39,178,56,82,39,178,158,128,39,178,237,174,39,178,37,221,39,178,69,11,40,178,79,57,40,178,66,103,40,178,29,149,40,178,226,194,40,178,144,240,40,178,38,30,41,178,166,75,41,178,14,121,41,178,95,166,41,178,153,211,41,178,188,0,42,178,
200,45,42,178,189,90,42,178,155,135,42,178,97,180,42,178,16,225,42,178,169,13,43,178,41,58,43,178,147,102,43,178,230,146,43,178,33,191,43,178,69,235,43,178,82,23,44,178,71,67,44,178,38,111,44,178,236,154,44,178,156,198,44,178,53,242,44,178,182,29,45,178,31,73,45,178,114,116,45,178,173,159,45,178,209,202,45,178],"i8",4,y.a+1423360);
Q([221,245,45,178,210,32,46,178,176,75,46,178,118,118,46,178,37,161,46,178,189,203,46,178,61,246,46,178,166,32,47,178,247,74,47,178,49,117,47,178,83,159,47,178,94,201,47,178,82,243,47,178,45,29,48,178,242,70,48,178,159,112,48,178,52,154,48,178,178,195,48,178,25,237,48,178,104,22,49,178,159,63,49,178,191,104,49,178,199,145,49,178,184,186,49,178,145,227,49,178,83,12,50,178,253,52,50,178,143,93,50,178,10,134,50,178,109,174,50,178,185,214,50,178,237,254,50,178,9,39,51,178,14,79,51,178,251,118,51,178,
208,158,51,178,141,198,51,178,51,238,51,178,194,21,52,178,56,61,52,178,151,100,52,178,222,139,52,178,14,179,52,178,37,218,52,178,37,1,53,178,14,40,53,178,222,78,53,178,151,117,53,178,56,156,53,178,193,194,53,178,50,233,53,178,140,15,54,178,206,53,54,178,248,91,54,178,10,130,54,178,4,168,54,178,231,205,54,178,177,243,54,178,100,25,55,178,255,62,55,178,130,100,55,178,238,137,55,178,65,175,55,178,125,212,55,178,160,249,55,178,172,30,56,178,160,67,56,178,124,104,56,178,64,141,56,178,236,177,56,178,128,
214,56,178,253,250,56,178,97,31,57,178,173,67,57,178,226,103,57,178,254,139,57,178,3,176,57,178,240,211,57,178,196,247,57,178,129,27,58,178,37,63,58,178,178,98,58,178,39,134,58,178,131,169,58,178,200,204,58,178,245,239,58,178,9,19,59,178,6,54,59,178,234,88,59,178,183,123,59,178,107,158,59,178,8,193,59,178,140,227,59,178,248,5,60,178,76,40,60,178,137,74,60,178,173,108,60,178,185,142,60,178,173,176,60,178,136,210,60,178,76,244,60,178,248,21,61,178,139,55,61,178,6,89,61,178,106,122,61,178,181,155,61,
178,232,188,61,178,2,222,61,178,5,255,61,178,240,31,62,178,194,64,62,178,124,97,62,178,30,130,62,178,168,162,62,178,26,195,62,178,115,227,62,178,181,3,63,178,222,35,63,178,239,67,63,178,232,99,63,178,200,131,63,178,145,163,63,178,65,195,63,178,217,226,63,178,88,2,64,178,192,33,64,178,15,65,64,178,70,96,64,178,101,127,64,178,108,158,64,178,90,189,64,178,48,220,64,178,238,250,64,178,148,25,65,178,33,56,65,178,150,86,65,178,243,116,65,178,56,147,65,178,100,177,65,178,120,207,65,178,116,237,65,178,87,
11,66,178,34,41,66,178,213,70,66,178,112,100,66,178,242,129,66,178,92,159,66,178,174,188,66,178,231,217,66,178,8,247,66,178,17,20,67,178,1,49,67,178,217,77,67,178,153,106,67,178,65,135,67,178,208,163,67,178,70,192,67,178,165,220,67,178,235,248,67,178,25,21,68,178,46,49,68,178,43,77,68,178,16,105,68,178,221,132,68,178,145,160,68,178,44,188,68,178,176,215,68,178,27,243,68,178,109,14,69,178,168,41,69,178,201,68,69,178,211,95,69,178,196,122,69,178,157,149,69,178,93,176,69,178,5,203,69,178,149,229,69,
178,12,0,70,178,107,26,70,178,177,52,70,178,224,78,70,178,245,104,70,178,243,130,70,178,216,156,70,178,164,182,70,178,88,208,70,178,244,233,70,178,119,3,71,178,226,28,71,178,53,54,71,178,111,79,71,178,144,104,71,178,154,129,71,178,139,154,71,178,99,179,71,178,35,204,71,178,203,228,71,178,90,253,71,178,209,21,72,178,47,46,72,178,117,70,72,178,163,94,72,178,184,118,72,178,181,142,72,178,153,166,72,178,101,190,72,178,24,214,72,178,180,237,72,178,54,5,73,178,160,28,73,178,242,51,73,178,43,75,73,178,76,
98,73,178,85,121,73,178,69,144,73,178,29,167,73,178,220,189,73,178,131,212,73,178,17,235,73,178,135,1,74,178,228,23,74,178,41,46,74,178,86,68,74,178,106,90,74,178,102,112,74,178,73,134,74,178,20,156,74,178,199,177,74,178,97,199,74,178,226,220,74,178,76,242,74,178,156,7,75,178,213,28,75,178,245,49,75,178,252,70,75,178,235,91,75,178,194,112,75,178,128,133,75,178,38,154,75,178,179,174,75,178,40,195,75,178,133,215,75,178,201,235,75,178,244,255,75,178,8,20,76,178,2,40,76,178,229,59,76,178,175,79,76,178,
96,99,76,178,250,118,76,178,122,138,76,178,227,157,76,178,51,177,76,178,106,196,76,178,137,215,76,178,144,234,76,178,126,253,76,178,84,16,77,178,17,35,77,178,182,53,77,178,67,72,77,178,183,90,77,178,19,109,77,178,87,127,77,178,130,145,77,178,148,163,77,178,143,181,77,178,112,199,77,178,58,217,77,178,235,234,77,178,132,252,77,178,4,14,78,178,108,31,78,178,187,48,78,178,243,65,78,178,17,83,78,178,24,100,78,178,6,117,78,178,220,133,78,178,153,150,78,178,62,167,78,178,202,183,78,178,63,200,78,178,155,
216,78,178,222,232,78,178,9,249,78,178,28,9,79,178,23,25,79,178,249,40,79,178,194,56,79,178,116,72,79,178,13,88,79,178,142,103,79,178,246,118,79,178,70,134,79,178,126,149,79,178,158,164,79,178,165,179,79,178,148,194,79,178,106,209,79,178,40,224,79,178,206,238,79,178,92,253,79,178,209,11,80,178,46,26,80,178,115,40,80,178,159,54,80,178,179,68,80,178,175,82,80,178,147,96,80,178,94,110,80,178,17,124,80,178,172,137,80,178,46,151,80,178,152,164,80,178,234,177,80,178,36,191,80,178,69,204,80,178,79,217,80,
178,63,230,80,178,24,243,80,178,217,255,80,178,129,12,81,178,17,25,81,178,137,37,81,178,232,49,81,178,48,62,81,178,95,74,81,178,118,86,81,178,116,98,81,178,91,110,81,178,41,122,81,178,223,133,81,178,125,145,81,178,3,157,81,178,113,168,81,178,198,179,81,178,3,191,81,178,40,202,81,178,53,213,81,178,42,224,81,178,7,235,81,178,203,245,81,178,120,0,82,178,12,11,82,178,136,21,82,178,236,31,82,178,56,42,82,178,108,52,82,178,135,62,82,178,139,72,82,178,118,82,82,178,73,92,82,178,5,102,82,178,168,111,82,178,
51,121,82,178,166,130,82,178,1,140,82,178,68,149,82,178,111,158,82,178,129,167,82,178,124,176,82,178,95,185,82,178,41,194,82,178,220,202,82,178,119,211,82,178,249,219,82,178,100,228,82,178,182,236,82,178,241,244,82,178,19,253,82,178,30,5,83,178,17,13,83,178,235,20,83,178,174,28,83,178,89,36,83,178,235,43,83,178,102,51,83,178,201,58,83,178,20,66,83,178,71,73,83,178,98,80,83,178,101,87,83,178,80,94,83,178,35,101,83,178,223,107,83,178,130,114,83,178,14,121,83,178,130,127,83,178,222,133,83,178,34,140,
83,178,78,146,83,178,98,152,83,178,94,158,83,178,67,164,83,178,16,170,83,178,197,175,83,178,98,181,83,178,231,186,83,178,85,192,83,178,170,197,83,178,232,202,83,178,14,208,83,178,29,213,83,178,19,218,83,178,242,222,83,178,185,227,83,178,104,232,83,178,0,237,83,178,128,241,83,178,232,245,83,178,56,250,83,178,113,254,83,178,146,2,84,178,155,6,84,178,140,10,84,178,102,14,84,178,41,18,84,178,211,21,84,178,102,25,84,178,225,28,84,178,69,32,84,178,145,35,84,178,197,38,84,178,226,41,84,178,231,44,84,178,
212,47,84,178,170,50,84,178,105,53,84,178,15,56,84,178,159,58,84,178,22,61,84,178,118,63,84,178,191,65,84,178,240,67,84,178,9,70,84,178,11,72,84,178,246,73,84,178,200,75,84,178,132,77,84,178,40,79,84,178,180,80,84,178,41,82,84,178,135,83,84,178,205,84,84,178,251,85,84,178,19,87,84,178,18,88,84,178,251,88,84,178,204,89,84,178,133,90,84,178,39,91,84,178,178,91,84,178,38,92,84,178,130,92,84,178,198,92,84,178,244,92,84,178,10,93,84,178,8,93,84,178,240,92,84,178,192,92,84,178,120,92,84,178,26,92,84,178,
164,91,84,178,23,91,84,178,115,90,84,178,183,89,84,178,228,88,84,178,250,87,84,178,249,86,84,178,224,85,84,178,177,84,84,178,106,83,84,178,12,82,84,178,150,80,84,178,10,79,84,178,102,77,84,178,172,75,84,178,218,73,84,178,241,71,84,178,241,69,84,178,217,67,84,178,171,65,84,178,102,63,84,178,9,61,84,178,150,58,84,178,11,56,84,178,106,53,84,178,177,50,84,178,225,47,84,178,251,44,84,178,253,41,84,178,232,38,84,178,189,35,84,178,122,32,84,178,32,29,84,178,176,25,84,178,40,22,84,178,138,18,84,178,213,14,
84,178,8,11,84,178,37,7,84,178,43,3,84,178,26,255,83,178,243,250,83,178,180,246,83,178,94,242,83,178,242,237,83,178,111,233,83,178,213,228,83,178,36,224,83,178,93,219,83,178,127,214,83,178,138,209,83,178,126,204,83,178,91,199,83,178,34,194,83,178,210,188,83,178,107,183,83,178,238,177,83,178,90,172,83,178,175,166,83,178,238,160,83,178,22,155,83,178,39,149,83,178,34,143,83,178,6,137,83,178,211,130,83,178,138,124,83,178,42,118,83,178,180,111,83,178,39,105,83,178,132,98,83,178,202,91,83,178,250,84,83,
178,19,78,83,178,21,71,83,178,1,64,83,178,215,56,83,178,150,49,83,178,63,42,83,178,209,34,83,178,77,27,83,178,178,19,83,178,1,12,83,178,58,4,83,178,92,252,82,178,104,244,82,178,93,236,82,178,60,228,82,178,5,220,82,178,184,211,82,178,84,203,82,178,218,194,82,178,74,186,82,178,163,177,82,178,230,168,82,178,19,160,82,178,42,151,82,178,42,142,82,178,21,133,82,178,233,123,82,178,167,114,82,178,78,105,82,178,224,95,82,178,91,86,82,178,193,76,82,178,16,67,82,178,73,57,82,178,108,47,82,178,121,37,82,178,
112,27,82,178,81,17,82,178,28,7,82,178,208,252,81,178,111,242,81,178,248,231,81,178,107,221,81,178,200,210,81,178,15,200,81,178,64,189,81,178,91,178,81,178,96,167,81,178,79,156,81,178,41,145,81,178,236,133,81,178,154,122,81,178,50,111,81,178,179,99,81,178,32,88,81,178,118,76,81,178,183,64,81,178,225,52,81,178,246,40,81,178,246,28,81,178,223,16,81,178,179,4,81,178,113,248,80,178,26,236,80,178,172,223,80,178,41,211,80,178,145,198,80,178,227,185,80,178,31,173,80,178,69,160,80,178,86,147,80,178,82,134,
80,178,56,121,80,178,8,108,80,178,195,94,80,178,104,81,80,178,248,67,80,178,114,54,80,178,215,40,80,178,38,27,80,178,96,13,80,178,132,255,79,178,147,241,79,178,141,227,79,178,113,213,79,178,64,199,79,178,249,184,79,178,157,170,79,178,44,156,79,178,166,141,79,178,10,127,79,178,89,112,79,178,146,97,79,178,183,82,79,178,198,67,79,178,192,52,79,178,164,37,79,178,116,22,79,178,46,7,79,178,211,247,78,178,99,232,78,178,222,216,78,178,68,201,78,178,148,185,78,178,208,169,78,178,246,153,78,178,8,138,78,178,
4,122,78,178,235,105,78,178,190,89,78,178,123,73,78,178,35,57,78,178,183,40,78,178,53,24,78,178,159,7,78,178,243,246,77,178,51,230,77,178,94,213,77,178,115,196,77,178,117,179,77,178,97,162,77,178,56,145,77,178,251,127,77,178,168,110,77,178,65,93,77,178,198,75,77,178,53,58,77,178,144,40,77,178,214,22,77,178,7,5,77,178,36,243,76,178,44,225,76,178,31,207,76,178,254,188,76,178,200,170,76,178,125,152,76,178,30,134,76,178,171,115,76,178,34,97,76,178,134,78,76,178,212,59,76,178,14,41,76,178,52,22,76,178,
69,3,76,178,66,240,75,178,43,221,75,178,254,201,75,178,190,182,75,178,105,163,75,178,0,144,75,178,130,124,75,178,240,104,75,178,74,85,75,178,144,65,75,178,193,45,75,178,222,25,75,178,230,5,75,178,219,241,74,178,187,221,74,178,135,201,74,178,63,181,74,178,226,160,74,178,114,140,74,178,237,119,74,178,84,99,74,178,167,78,74,178,230,57,74,178,17,37,74,178,40,16,74,178,43,251,73,178,26,230,73,178,245,208,73,178,187,187,73,178,110,166,73,178,13,145,73,178,152,123,73,178,15,102,73,178,115,80,73,178,194,
58,73,178,253,36,73,178,37,15,73,178,57,249,72,178,57,227,72,178,37,205,72,178,253,182,72,178,194,160,72,178,115,138,72,178,16,116,72,178,154,93,72,178,16,71,72,178,114,48,72,178,192,25,72,178,251,2,72,178,34,236,71,178,54,213,71,178,54,190,71,178,35,167,71,178,252,143,71,178,193,120,71,178,115,97,71,178,17,74,71,178,156,50,71,178,20,27,71,178,120,3,71,178,201,235,70,178,6,212,70,178,48,188,70,178,71,164,70,178,74,140,70,178,58,116,70,178,22,92,70,178,224,67,70,178,150,43,70,178,56,19,70,178,200,
250,69,178,68,226,69,178,173,201,69,178,3,177,69,178,70,152,69,178,118,127,69,178,146,102,69,178,156,77,69,178,146,52,69,178,117,27,69,178,69,2,69,178,3,233,68,178,173,207,68,178,68,182,68,178,200,156,68,178,57,131,68,178,152,105,68,178,227,79,68,178,28,54,68,178,65,28,68,178,84,2,68,178,84,232,67,178,65,206,67,178,27,180,67,178,227,153,67,178,152,127,67,178,58,101,67,178,201,74,67,178,69,48,67,178,175,21,67,178,6,251,66,178,75,224,66,178,125,197,66,178,156,170,66,178,169,143,66,178,163,116,66,178,
139,89,66,178,96,62,66,178,34,35,66,178,210,7,66,178,112,236,65,178,251,208,65,178,115,181,65,178,218,153,65,178,45,126,65,178,111,98,65,178,158,70,65,178,187,42,65,178,197,14,65,178,189,242,64,178,163,214,64,178,119,186,64,178,56,158,64,178,231,129,64,178,132,101,64,178,15,73,64,178,135,44,64,178,238,15,64,178,66,243,63,178,132,214,63,178,180,185,63,178,210,156,63,178,222,127,63,178,216,98,63,178,192,69,63,178,150,40,63,178,90,11,63,178,12,238,62,178,172,208,62,178,59,179,62,178,183,149,62,178,33,
120,62,178,122,90,62,178,193,60,62,178,246,30,62,178,25,1,62,178,42,227,61,178,42,197,61,178,24,167,61,178,244,136,61,178,191,106,61,178,120,76,61,178,31,46,61,178,181,15,61,178,57,241,60,178,171,210,60,178,12,180,60,178,92,149,60,178,153,118,60,178,198,87,60,178,225,56,60,178,234,25,60,178,226,250,59,178,200,219,59,178,158,188,59,178,97,157,59,178,20,126,59,178,181,94,59,178,69,63,59,178,195,31,59,178,48,0,59,178,140,224,58,178,215,192,58,178,17,161,58,178,57,129,58,178,80,97,58,178,86,65,58,178,
75,33,58,178,47,1,58,178,1,225,57,178,195,192,57,178,116,160,57,178,19,128,57,178,162,95,57,178,31,63,57,178,140,30,57,178,231,253,56,178,50,221,56,178,108,188,56,178,149,155,56,178,173,122,56,178,181,89,56,178,171,56,56,178,145,23,56,178,102,246,55,178,42,213,55,178,221,179,55,178,128,146,55,178,18,113,55,178,147,79,55,178,4,46,55,178,100,12,55,178,180,234,54,178,243,200,54,178,33,167,54,178,63,133,54,178,77,99,54,178,73,65,54,178,54,31,54,178,18,253,53,178,221,218,53,178,152,184,53,178,67,150,53,
178,222,115,53,178,104,81,53,178,225,46,53,178,75,12,53,178,164,233,52,178,237,198,52,178,37,164,52,178,78,129,52,178,102,94,52,178,110,59,52,178,102,24,52,178,78,245,51,178,38,210,51,178,237,174,51,178,165,139,51,178,77,104,51,178,228,68,51,178,108,33,51,178,227,253,50,178,75,218,50,178,163,182,50,178,234,146,50,178,34,111,50,178,74,75,50,178,99,39,50,178,107,3,50,178,100,223,49,178,77,187,49,178,38,151,49,178,239,114,49,178,169,78,49,178,83,42,49,178,237,5,49,178,120,225,48,178,243,188,48,178,95,
152,48,178,186,115,48,178,7,79,48,178,68,42,48,178,113,5,48,178,143,224,47,178,157,187,47,178,156,150,47,178,140,113,47,178,108,76,47,178,61,39,47,178,254,1,47,178,176,220,46,178,83,183,46,178,231,145,46,178,107,108,46,178,224,70,46,178,70,33,46,178,157,251,45,178,228,213,45,178,29,176,45,178,70,138,45,178,96,100,45,178,107,62,45,178,103,24,45,178,84,242,44,178,50,204,44,178,1,166,44,178,193,127,44,178,114,89,44,178,20,51,44,178,168,12,44,178,44,230,43,178,162,191,43,178,8,153,43,178,96,114,43,178,
169,75,43,178,228,36,43,178,15,254,42,178,44,215,42,178,59,176,42,178,58,137,42,178,43,98,42,178,14,59,42,178,225,19,42,178,167,236,41,178,93,197,41,178,5,158,41,178,159,118,41,178,42,79,41,178,167,39,41,178,21,0,41,178,117,216,40,178,198,176,40,178,9,137,40,178,62,97,40,178,100,57,40,178,125,17,40,178,134,233,39,178,130,193,39,178,111,153,39,178,79,113,39,178,32,73,39,178,226,32,39,178,151,248,38,178,62,208,38,178,214,167,38,178,97,127,38,178,221,86,38,178,76,46,38,178,172,5,38,178,255,220,37,178,
67,180,37,178,122,139,37,178,162,98,37,178,189,57,37,178,202,16,37,178,201,231,36,178,187,190,36,178,158,149,36,178,116,108,36,178,60,67,36,178,246,25,36,178,163,240,35,178,66,199,35,178,212,157,35,178,87,116,35,178,206,74,35,178,54,33,35,178,145,247,34,178,223,205,34,178,31,164,34,178,81,122,34,178,119,80,34,178,142,38,34,178,153,252,33,178,150,210,33,178,133,168,33,178,103,126,33,178,60,84,33,178,4,42,33,178,190,255,32,178,108,213,32,178,12,171,32,178,158,128,32,178,36,86,32,178,157,43,32,178,8,
1,32,178,102,214,31,178,183,171,31,178,252,128,31,178,51,86,31,178,93,43,31,178,122,0,31,178,138,213,30,178,142,170,30,178,132,127,30,178,110,84,30,178,74,41,30,178,26,254,29,178,221,210,29,178,148,167,29,178,61,124,29,178,218,80,29,178,106,37,29,178,238,249,28,178,100,206,28,178,207,162,28,178,44,119,28,178,125,75,28,178,193,31,28,178,249,243,27,178,37,200,27,178,68,156,27,178,86,112,27,178,92,68,27,178,85,24,27,178,67,236,26,178,35,192,26,178,248,147,26,178,192,103,26,178,124,59,26,178,43,15,26,
178,207,226,25,178,102,182,25,178,241,137,25,178,112,93,25,178,226,48,25,178,73,4,25,178,163,215,24,178,241,170,24,178,52,126,24,178,106,81,24,178,148,36,24,178,178,247,23,178,197,202,23,178,203,157,23,178,198,112,23,178,180,67,23,178,151,22,23,178,110,233,22,178,57,188,22,178,248,142,22,178,172,97,22,178,84,52,22,178,240,6,22,178,129,217,21,178,5,172,21,178,127,126,21,178,236,80,21,178,78,35,21,178,165,245,20,178,240,199,20,178,47,154,20,178,99,108,20,178,140,62,20,178,169,16,20,178,186,226,19,178,
193,180,19,178,187,134,19,178,171,88,19,178,143,42,19,178,104,252,18,178,54,206,18,178,248,159,18,178,176,113,18,178,92,67,18,178,253,20,18,178,147,230,17,178,29,184,17,178,157,137,17,178,17,91,17,178,123,44,17,178,217,253,16,178,45,207,16,178,117,160,16,178,179,113,16,178,230,66,16,178,14,20,16,178,42,229,15,178,61,182,15,178,68,135,15,178,64,88,15,178,50,41,15,178,25,250,14,178,246,202,14,178,199,155,14,178,142,108,14,178,74,61,14,178,252,13,14,178,163,222,13,178,64,175,13,178,210,127,13,178,89,
80,13,178,214,32,13,178,73,241,12,178,177,193,12,178,15,146,12,178,98,98,12,178,171,50,12,178,234,2,12,178,30,211,11,178,72,163,11,178,104,115,11,178,126,67,11,178,137,19,11,178,138,227,10,178,129,179,10,178,110,131,10,178,81,83,10,178,41,35,10,178,248,242,9,178,188,194,9,178,119,146,9,178,40,98,9,178,206,49,9,178,107,1,9,178,254,208,8,178,135,160,8,178,6,112,8,178,123,63,8,178,230,14,8,178,72,222,7,178,160,173,7,178,238,124,7,178,50,76,7,178,109,27,7,178,158,234,6,178,198,185,6,178,228,136,6,178,
248,87,6,178,3,39,6,178,4,246,5,178,252,196,5,178,234,147,5,178,207,98,5,178,170,49,5,178,124,0,5,178,68,207,4,178,4,158,4,178,186,108,4,178,102,59,4,178,9,10,4,178,164,216,3,178,52,167,3,178,188,117,3,178,59,68,3,178,176,18,3,178,28,225,2,178,127,175,2,178,217,125,2,178,42,76,2,178,114,26,2,178,177,232,1,178,231,182,1,178,20,133,1,178,56,83,1,178,84,33,1,178,102,239,0,178,112,189,0,178,112,139,0,178,104,89,0,178,87,39,0,178,124,234,255,177,55,134,255,177,225,33,255,177,122,189,254,177,2,89,254,177,
120,244,253,177,221,143,253,177,49,43,253,177,116,198,252,177,166,97,252,177,198,252,251,177,214,151,251,177,214,50,251,177,196,205,250,177,161,104,250,177,110,3,250,177,42,158,249,177,214,56,249,177,113,211,248,177,251,109,248,177,117,8,248,177,223,162,247,177,56,61,247,177,129,215,246,177,186,113,246,177,226,11,246,177,251,165,245,177,3,64,245,177,251,217,244,177,227,115,244,177,188,13,244,177,132,167,243,177,61,65,243,177,229,218,242,177,126,116,242,177,8,14,242,177,129,167,241,177,235,64,241,
177,70,218,240,177,145,115,240,177,205,12,240,177,249,165,239,177,22,63,239,177,35,216,238,177,34,113,238,177,17,10,238,177,241,162,237,177,194,59,237,177,132,212,236,177,55,109,236,177,219,5,236,177,113,158,235,177,247,54,235,177,111,207,234,177,216,103,234,177,50,0,234,177,126,152,233,177,187,48,233,177,234,200,232,177,10,97,232,177,27,249,231,177,31,145,231,177,20,41,231,177,251,192,230,177,212,88,230,177,158,240,229,177,91,136,229,177,9,32,229,177,169,183,228,177,60,79,228,177,192,230,227,177,
55,126,227,177,160,21,227,177,251,172,226,177,73,68,226,177,137,219,225,177,187,114,225,177,224,9,225,177,247,160,224,177,1,56,224,177,253,206,223,177,236,101,223,177,206,252,222,177,163,147,222,177,106,42,222,177,37,193,221,177,210,87,221,177,114,238,220,177,6,133,220,177,140,27,220,177,6,178,219,177,115,72,219,177,210,222,218,177,38,117,218,177,108,11,218,177,166,161,217,177,212,55,217,177,245,205,216,177,9,100,216,177,18,250,215,177,13,144,215,177,253,37,215,177,224,187,214,177,183,81,214,177,
130,231,213,177,65,125,213,177,244,18,213,177,155,168,212,177,53,62,212,177,196,211,211,177,72,105,211,177,191,254,210,177,43,148,210,177,139,41,210,177,223,190,209,177,40,84,209,177,101,233,208,177,151,126,208,177,189,19,208,177,216,168,207,177,232,61,207,177,236,210,206,177,230,103,206,177,212,252,205,177,183,145,205,177,142,38,205,177,91,187,204,177,29,80,204,177,212,228,203,177,128,121,203,177,34,14,203,177,184,162,202,177,68,55,202,177,198,203,201,177,60,96,201,177,168,244,200,177,10,137,200,
177,97,29,200,177,174,177,199,177,241,69,199,177,41,218,198,177,87,110,198,177,122,2,198,177,148,150,197,177,164,42,197,177,169,190,196,177,165,82,196,177,150,230,195,177,126,122,195,177,92,14,195,177,48,162,194,177,251,53,194,177,187,201,193,177,115,93,193,177,32,241,192,177,196,132,192,177,95,24,192,177,240,171,191,177,120,63,191,177,246,210,190,177,108,102,190,177,216,249,189,177,59,141,189,177,148,32,189,177,229,179,188,177,45,71,188,177,108,218,187,177,162,109,187,177,207,0,187,177,243,147,186,
177,14,39,186,177,33,186,185,177,43,77,185,177,45,224,184,177,38,115,184,177,23,6,184,177,255,152,183,177,222,43,183,177,182,190,182,177,133,81,182,177,76,228,181,177,11,119,181,177,193,9,181,177,112,156,180,177,22,47,180,177,181,193,179,177,75,84,179,177,218,230,178,177,97,121,178,177,224,11,178,177,87,158,177,177,199,48,177,177,47,195,176,177,144,85,176,177,233,231,175,177,58,122,175,177,132,12,175,177,199,158,174,177,2,49,174,177,55,195,173,177,100,85,173,177,138,231,172,177,168,121,172,177,192,
11,172,177,209,157,171,177,218,47,171,177,221,193,170,177,217,83,170,177,206,229,169,177,189,119,169,177,164,9,169,177,133,155,168,177,96,45,168,177,52,191,167,177,1,81,167,177,200,226,166,177,137,116,166,177,67,6,166,177,247,151,165,177,165,41,165,177,76,187,164,177,238,76,164,177,137,222,163,177,30,112,163,177,174,1,163,177,55,147,162,177,186,36,162,177,56,182,161,177,176,71,161,177,34,217,160,177,143,106,160,177,245,251,159,177,87,141,159,177,178,30,159,177,9,176,158,177,89,65,158,177,165,210,
157,177,235,99,157,177,44,245,156,177,103,134,156,177,158,23,156,177,207,168,155,177,251,57,155,177,35,203,154,177,69,92,154,177,98,237,153,177,123,126,153,177,142,15,153,177,157,160,152,177,167,49,152,177,173,194,151,177,174,83,151,177,170,228,150,177,162,117,150,177,149,6,150,177,132,151,149,177,111,40,149,177,85,185,148,177,55,74,148,177,21,219,147,177,238,107,147,177,196,252,146,177,149,141,146,177,98,30,146,177,44,175,145,177,241,63,145,177,179,208,144,177,113,97,144,177,43,242,143,177,226,130,
143,177,148,19,143,177,67,164,142,177,239,52,142,177,151,197,141,177,60,86,141,177,221,230,140,177,123,119,140,177,21,8,140,177,173,152,139,177,65,41,139,177,210,185,138,177,95,74,138,177,234,218,137,177,114,107,137,177,247,251,136,177,121,140,136,177,248,28,136,177,116,173,135,177,237,61,135,177,100,206,134,177,216,94,134,177,74,239,133,177,185,127,133,177,37,16,133,177,143,160,132,177,247,48,132,177,92,193,131,177,191,81,131,177,32,226,130,177,126,114,130,177,219,2,130,177,53,147,129,177,141,35,
129,177,227,179,128,177,55,68,128,177,19,169,127,177,180,201,126,177,81,234,125,177,235,10,125,177,129,43,124,177,20,76,123,177,164,108,122,177,48,141,121,177,186,173,120,177,64,206,119,177,196,238,118,177,69,15,118,177,196,47,117,177,64,80,116,177,185,112,115,177,49,145,114,177,166,177,113,177,24,210,112,177,137,242,111,177,248,18,111,177,101,51,110,177,209,83,109,177,58,116,108,177,162,148,107,177,9,181,106,177,110,213,105,177,211,245,104,177,54,22,104,177,151,54,103,177,248,86,102,177,89,119,101,
177,184,151,100,177,23,184,99,177,117,216,98,177,211,248,97,177,48,25,97,177,141,57,96,177,234,89,95,177,71,122,94,177,164,154,93,177,1,187,92,177,94,219,91,177,188,251,90,177,26,28,90,177,120,60,89,177,215,92,88,177,55,125,87,177,152,157,86,177,250,189,85,177,92,222,84,177,192,254,83,177,37,31,83,177,139,63,82,177,243,95,81,177,92,128,80,177,199,160,79,177,51,193,78,177,161,225,77,177,18,2,77,177,132,34,76,177,248,66,75,177,110,99,74,177,231,131,73,177,98,164,72,177,223,196,71,177,96,229,70,177,
226,5,70,177,104,38,69,177,240,70,68,177,123,103,67,177,10,136,66,177,155,168,65,177,48,201,64,177,200,233,63,177,100,10,63,177,3,43,62,177,165,75,61,177,76,108,60,177,246,140,59,177,164,173,58,177,86,206,57,177,13,239,56,177,199,15,56,177,134,48,55,177,73,81,54,177,17,114,53,177,221,146,52,177,174,179,51,177,132,212,50,177,94,245,49,177,62,22,49,177,35,55,48,177,12,88,47,177,252,120,46,177,240,153,45,177,234,186,44,177,233,219,43,177,238,252,42,177,249,29,42,177,10,63,41,177,33,96,40,177,61,129,
39,177,96,162,38,177,137,195,37,177,184,228,36,177,238,5,36,177,42,39,35,177,109,72,34,177,182,105,33,177,6,139,32,177,94,172,31,177,188,205,30,177,33,239,29,177,141,16,29,177,1,50,28,177,124,83,27,177,254,116,26,177,136,150,25,177,26,184,24,177,179,217,23,177,84,251,22,177,253,28,22,177,174,62,21,177,103,96,20,177,40,130,19,177,242,163,18,177,196,197,17,177,159,231,16,177,130,9,16,177,109,43,15,177,98,77,14,177,95,111,13,177,102,145,12,177,117,179,11,177,141,213,10,177,175,247,9,177,218,25,9,177,
15,60,8,177,77,94,7,177,148,128,6,177,229,162,5,177,64,197,4,177,165,231,3,177,20,10,3,177,141,44,2,177,16,79,1,177,158,113,0,177,107,40,255,176,175,109,253,176,9,179,251,176,119,248,249,176,252,61,248,176,149,131,246,176,69,201,244,176,10,15,243,176,230,84,241,176,216,154,239,176,224,224,237,176,0,39,236,176,54,109,234,176,131,179,232,176,232,249,230,176,100,64,229,176,247,134,227,176,163,205,225,176,102,20,224,176,66,91,222,176,54,162,220,176,67,233,218,176,104,48,217,176,166,119,215,176,254,190,
213,176,110,6,212,176,249,77,210,176,156,149,208,176,90,221,206,176,50,37,205,176,36,109,203,176,48,181,201,176,87,253,199,176,152,69,198,176,245,141,196,176,108,214,194,176,255,30,193,176,174,103,191,176,120,176,189,176,93,249,187,176,95,66,186,176,125,139,184,176,184,212,182,176,15,30,181,176,130,103,179,176,19,177,177,176,193,250,175,176,140,68,174,176,116,142,172,176,122,216,170,176,158,34,169,176,224,108,167,176,64,183,165,176,190,1,164,176,91,76,162,176,23,151,160,176,242,225,158,176,235,44,
157,176,4,120,155,176,60,195,153,176,148,14,152,176,12,90,150,176,163,165,148,176,91,241,146,176,51,61,145,176,44,137,143,176,69,213,141,176,127,33,140,176,218,109,138,176,86,186,136,176,244,6,135,176,179,83,133,176,148,160,131,176,151,237,129,176,188,58,128,176,6,16,125,176,217,170,121,176,241,69,118,176,79,225,114,176,243,124,111,176,221,24,108,176,14,181,104,176,134,81,101,176,69,238,97,176,75,139,94,176,154,40,91,176,49,198,87,176,17,100,84,176,58,2,81,176,172,160,77,176,104,63,74,176,111,222,
70,176,191,125,67,176,91,29,64,176,65,189,60,176,116,93,57,176,242,253,53,176,188,158,50,176,210,63,47,176,54,225,43,176,231,130,40,176,229,36,37,176,50,199,33,176,204,105,30,176,181,12,27,176,238,175,23,176,117,83,20,176,76,247,16,176,115,155,13,176,235,63,10,176,179,228,6,176,204,137,3,176,55,47,0,176,229,169,249,175,2,246,242,175,195,66,236,175,42,144,229,175,55,222,222,175,234,44,216,175,69,124,209,175,72,204,202,175,245,28,196,175,74,110,189,175,74,192,182,175,245,18,176,175,75,102,169,175,77,
186,162,175,253,14,156,175,90,100,149,175,101,186,142,175,31,17,136,175,137,104,129,175,70,129,117,175,220,50,104,175,213,229,90,175,51,154,77,175,247,79,64,175,34,7,51,175,181,191,37,175,179,121,24,175,28,53,11,175,226,227,251,174,105,96,225,174,206,223,198,174,21,98,172,174,63,231,145,174,160,222,110,174,148,244,57,174,96,16,5,174,17,100,160,173,156,204,218,172,208,199,203,44,53,139,156,45,73,12,3,46,0,205,55,46,187,135,108,46,58,158,144,46,146,245,170,46,229,73,197,46,47,155,223,46,109,233,249,
46,78,26,10,47,94,62,23,47,228,96,36,47,223,129,49,47,78,161,62,47,47,191,75,47,130,219,88,47,68,246,101,47,116,15,115,47,137,19,128,47,142,158,134,47,200,40,141,47,55,178,147,47,218,58,154,47,176,194,160,47,185,73,167,47,244,207,173,47,97,85,180,47,254,217,186,47,204,93,193,47,201,224,199,47,245,98,206,47,79,228,212,47,214,100,219,47,139,228,225,47,108,99,232,47,120,225,238,47,176,94,245,47,18,219,251,47,79,43,1,48,169,104,4,48,152,165,7,48,26,226,10,48,49,30,14,48,218,89,17,48,23,149,20,48,230,
207,23,48,71,10,27,48,59,68,30,48,192,125,33,48,214,182,36,48,126,239,39,48,182,39,43,48,127,95,46,48,216,150,49,48,193,205,52,48,58,4,56,48,65,58,59,48,215,111,62,48,253,164,65,48,176,217,68,48,241,13,72,48,192,65,75,48,28,117,78,48,5,168,81,48,123,218,84,48,126,12,88,48,12,62,91,48,38,111,94,48,204,159,97,48,253,207,100,48,185,255,103,48,255,46,107,48,207,93,110,48,42,140,113,48,14,186,116,48,123,231,119,48,114,20,123,48,241,64,126,48,124,182,128,48,68,76,130,48,208,225,131,48,31,119,133,48,50,
12,135,48,9,161,136,48,163,53,138,48,0,202,139,48,31,94,141,48,2,242,142,48,168,133,144,48,16,25,146,48,58,172,147,48,39,63,149,48,213,209,150,48,70,100,152,48,120,246,153,48,108,136,155,48,34,26,157,48,153,171,158,48,209,60,160,48,202,205,161,48,132,94,163,48,255,238,164,48,58,127,166,48,54,15,168,48,242,158,169,48,110,46,171,48,170,189,172,48,166,76,174,48,98,219,175,48,221,105,177,48,24,248,178,48,18,134,180,48,203,19,182,48,67,161,183,48,122,46,185,48,112,187,186,48,36,72,188,48,150,212,189,48,
199,96,191,48,182,236,192,48,99,120,194,48,205,3,196,48,246,142,197,48,219,25,199,48,126,164,200,48,223,46,202,48,252,184,203,48,215,66,205,48,110,204,206,48,194,85,208,48,210,222,209,48,159,103,211,48,39,240,212,48,108,120,214,48,109,0,216,48,42,136,217,48,162,15,219,48,214,150,220,48,197,29,222,48,112,164,223,48,213,42,225,48,246,176,226,48,209,54,228,48,103,188,229,48,183,65,231,48,194,198,232,48,135,75,234,48,6,208,235,48,63,84,237,48,50,216,238,48,223,91,240,48,69,223,241,48,100,98,243,48,61,
229,244,48,207,103,246,48,26,234,247,48,29,108,249,48,218,237,250,48,78,111,252,48,124,240,253,48,97,113,255,48,0,121,0,49,42,57,1,49,49,249,1,49,20,185,2,49,210,120,3,49,109,56,4,49,226,247,4,49,52,183,5,49,97,118,6,49,105,53,7,49,77,244,7,49,12,179,8,49,167,113,9,49,28,48,10,49,109,238,10,49,153,172,11,49,159,106,12,49,129,40,13,49,61,230,13,49,213,163,14,49,71,97,15,49,147,30,16,49,186,219,16,49,188,152,17,49,152,85,18,49,79,18,19,49,224,206,19,49,75,139,20,49,144,71,21,49,175,3,22,49,169,191,
22,49,124,123,23,49,41,55,24,49,177,242,24,49,17,174,25,49,76,105,26,49,96,36,27,49,78,223,27,49,22,154,28,49,183,84,29,49,49,15,30,49,132,201,30,49,177,131,31,49,183,61,32,49,150,247,32,49,79,177,33,49,224,106,34,49,74,36,35,49,141,221,35,49,169,150,36,49,157,79,37,49,107,8,38,49,17,193,38,49,143,121,39,49,230,49,40,49,21,234,40,49,29,162,41,49,253,89,42,49,181,17,43,49,70,201,43,49,174,128,44,49,239,55,45,49,7,239,45,49,247,165,46,49,192,92,47,49,96,19,48,49,216,201,48,49,39,128,49,49,78,54,50,
49,77,236,50,49,35,162,51,49,208,87,52,49,85,13,53,49,177,194,53,49,229,119,54,49,239,44,55,49,209,225,55,49,137,150,56,49,25,75,57,49,128,255,57,49,189,179,58,49,209,103,59,49,188,27,60,49,126,207,60,49,22,131,61,49,133,54,62,49,202,233,62,49,230,156,63,49,216,79,64,49,161,2,65,49,63,181,65,49,180,103,66,49,255,25,67,49,32,204,67,49,23,126,68,49,228,47,69,49,135,225,69,49,0,147,70,49,78,68,71,49,115,245,71,49,108,166,72,49,60,87,73,49,225,7,74,49,91,184,74,49,171,104,75,49,209,24,76,49,203,200,76,
49,155,120,77,49,64,40,78,49,186,215,78,49,9,135,79,49,45,54,80,49,38,229,80,49,244,147,81,49,151,66,82,49,15,241,82,49,91,159,83,49,124,77,84,49,114,251,84,49,60,169,85,49,218,86,86,49,78,4,87,49,149,177,87,49,177,94,88,49,161,11,89,49,101,184,89,49,253,100,90,49,106,17,91,49,170,189,91,49,190,105,92,49,167,21,93,49,99,193,93,49,243,108,94,49,87,24,95,49,142,195,95,49,153,110,96,49,120,25,97,49,42,196,97,49,176,110,98,49,9,25,99,49,53,195,99,49,53,109,100,49,8,23,101,49,174,192,101,49,39,106,102,
49,116,19,103,49,147,188,103,49,134,101,104,49,75,14,105,49,227,182,105,49,78,95,106,49,140,7,107,49,156,175,107,49,127,87,108,49,53,255,108,49,189,166,109,49,24,78,110,49,69,245,110,49,69,156,111,49,23,67,112,49,187,233,112,49,49,144,113,49,122,54,114,49,148,220,114,49,129,130,115,49,64,40,116,49,209,205,116,49,51,115,117,49,104,24,118,49,110,189,118,49,70,98,119,49,239,6,120,49,107,171,120,49,184,79,121,49,214,243,121,49,198,151,122,49,135,59,123,49,26,223,123,49,126,130,124,49,179,37,125,49,186,
200,125,49,146,107,126,49,59,14,127,49,181,176,127,49,128,41,128,49,142,122,128,49,132,203,128,49,99,28,129,49,42,109,129,49,218,189,129,49,114,14,130,49,242,94,130,49,91,175,130,49,172,255,130,49,229,79,131,49,7,160,131,49,17,240,131,49,2,64,132,49,220,143,132,49,159,223,132,49,73,47,133,49,219,126,133,49,86,206,133,49,184,29,134,49,3,109,134,49,53,188,134,49,80,11,135,49,82,90,135,49,60,169,135,49,14,248,135,49,200,70,136,49,106,149,136,49,244,227,136,49,102,50,137,49,191,128,137,49,0,207,137,49,
41,29,138,49,57,107,138,49,49,185,138,49,17,7,139,49,217,84,139,49,136,162,139,49,30,240,139,49,157,61,140,49,2,139,140,49,80,216,140,49,132,37,141,49,161,114,141,49,164,191,141,49,143,12,142,49,98,89,142,49,28,166,142,49,189,242,142,49,70,63,143,49,181,139,143,49,13,216,143,49,75,36,144,49,113,112,144,49,126,188,144,49,114,8,145,49,77,84,145,49,15,160,145,49,185,235,145,49,73,55,146,49,193,130,146,49,32,206,146,49,102,25,147,49,147,100,147,49,166,175,147,49,161,250,147,49,131,69,148,49,76,144,148,
49,251,218,148,49,146,37,149,49,15,112,149,49,115,186,149,49,190,4,150,49,240,78,150,49,8,153,150,49,8,227,150,49,238,44,151,49,187,118,151,49,110,192,151,49,8,10,152,49,137,83,152,49,240,156,152,49,62,230,152,49,115,47,153,49,142,120,153,49,144,193,153,49,120,10,154,49,71,83,154,49,252,155,154,49,152,228,154,49,26,45,155,49,131,117,155,49,210,189,155,49,7,6,156,49,35,78,156,49,37,150,156,49,13,222,156,49,220,37,157,49,144,109,157,49,44,181,157,49,173,252,157,49,21,68,158,49,99,139,158,49,151,210,
158,49,177,25,159,49,177,96,159,49,151,167,159,49,100,238,159,49,22,53,160,49,175,123,160,49,46,194,160,49,147,8,161,49,221,78,161,49,14,149,161,49,37,219,161,49,33,33,162,49,4,103,162,49,204,172,162,49,122,242,162,49,15,56,163,49,137,125,163,49,232,194,163,49,46,8,164,49,90,77,164,49,107,146,164,49,98,215,164,49,62,28,165,49,1,97,165,49,169,165,165,49,55,234,165,49,170,46,166,49,3,115,166,49,66,183,166,49,102,251,166,49,112,63,167,49,96,131,167,49,53,199,167,49,239,10,168,49,143,78,168,49,21,146,
168,49,128,213,168,49,208,24,169,49,6,92,169,49,33,159,169,49,34,226,169,49,8,37,170,49,212,103,170,49,133,170,170,49,27,237,170,49,150,47,171,49,247,113,171,49,61,180,171,49,105,246,171,49,121,56,172,49,111,122,172,49,74,188,172,49,10,254,172,49,176,63,173,49,58,129,173,49,170,194,173,49,255,3,174,49,57,69,174,49,88,134,174,49,92,199,174,49,70,8,175,49,20,73,175,49,199,137,175,49,95,202,175,49,221,10,176,49,63,75,176,49,134,139,176,49,178,203,176,49,196,11,177,49,186,75,177,49,149,139,177,49,84,
203,177,49,249,10,178,49,131,74,178,49,241,137,178,49,68,201,178,49,124,8,179,49,153,71,179,49,154,134,179,49,129,197,179,49,76,4,180,49,252,66,180,49,144,129,180,49,9,192,180,49,103,254,180,49,170,60,181,49,209,122,181,49,221,184,181,49,205,246,181,49,162,52,182,49,92,114,182,49,250,175,182,49,125,237,182,49,228,42,183,49,48,104,183,49,96,165,183,49,117,226,183,49,110,31,184,49,76,92,184,49,14,153,184,49,181,213,184,49,64,18,185,49,175,78,185,49,3,139,185,49,60,199,185,49,88,3,186,49,89,63,186,49,
63,123,186,49,8,183,186,49,182,242,186,49,73,46,187,49,191,105,187,49,26,165,187,49,89,224,187,49,125,27,188,49,132,86,188,49,112,145,188,49,64,204,188,49,244,6,189,49,141,65,189,49,9,124,189,49,106,182,189,49,175,240,189,49,216,42,190,49,229,100,190,49,214,158,190,49,171,216,190,49,100,18,191,49,2,76,191,49,131,133,191,49,233,190,191,49,50,248,191,49,96,49,192,49,113,106,192,49,103,163,192,49,64,220,192,49,253,20,193,49,159,77,193,49,36,134,193,49,141,190,193,49,218,246,193,49,11,47,194,49,32,103,
194,49,25,159,194,49,245,214,194,49,182,14,195,49,90,70,195,49,226,125,195,49,78,181,195,49,158,236,195,49,209,35,196,49,233,90,196,49,228,145,196,49,194,200,196,49,133,255,196,49,43,54,197,49,181,108,197,49,35,163,197,49,116,217,197,49,169,15,198,49,194,69,198,49,190,123,198,49,158,177,198,49,98,231,198,49,9,29,199,49,148,82,199,49,3,136,199,49,85,189,199,49,139,242,199,49,164,39,200,49,161,92,200,49,129,145,200,49,69,198,200,49,237,250,200,49,120,47,201,49,230,99,201,49,56,152,201,49,110,204,201,
49,135,0,202,49,131,52,202,49,99,104,202,49,38,156,202,49,205,207,202,49,87,3,203,49,197,54,203,49,22,106,203,49,75,157,203,49,99,208,203,49,94,3,204,49,60,54,204,49,254,104,204,49,164,155,204,49,44,206,204,49,152,0,205,49,232,50,205,49,26,101,205,49,48,151,205,49,42,201,205,49,6,251,205,49,198,44,206,49,105,94,206,49,239,143,206,49,89,193,206,49,166,242,206,49,214,35,207,49,233,84,207,49,224,133,207,49,186,182,207,49,119,231,207,49,23,24,208,49,154,72,208,49,0,121,208,49,74,169,208,49,119,217,208,
49,135,9,209,49,122,57,209,49,80,105,209,49,10,153,209,49,166,200,209,49,38,248,209,49,136,39,210,49,206,86,210,49,247,133,210,49,3,181,210,49,242,227,210,49,196,18,211,49,121,65,211,49,17,112,211,49,141,158,211,49,235,204,211,49,44,251,211,49,80,41,212,49,88,87,212,49,66,133,212,49,15,179,212,49,192,224,212,49,83,14,213,49,201,59,213,49,34,105,213,49,95,150,213,49,126,195,213,49,128,240,213,49,101,29,214,49,45,74,214,49,216,118,214,49,101,163,214,49,214,207,214,49,42,252,214,49,96,40,215,49,122,
84,215,49,118,128,215,49,85,172,215,49,23,216,215,49,188,3,216,49,68,47,216,49,175,90,216,49,252,133,216,49,45,177,216,49,64,220,216,49,54,7,217,49,15,50,217,49,202,92,217,49,105,135,217,49,234,177,217,49,78,220,217,49,149,6,218,49,191,48,218,49,204,90,218,49,187,132,218,49,141,174,218,49,66,216,218,49,217,1,219,49,84,43,219,49,177,84,219,49,241,125,219,49,20,167,219,49,25,208,219,49,1,249,219,49,204,33,220,49,122,74,220,49,10,115,220,49,125,155,220,49,211,195,220,49,11,236,220,49,38,20,221,49,36,
60,221,49,5,100,221,49,200,139,221,49,110,179,221,49,247,218,221,49,98,2,222,49,176,41,222,49,225,80,222,49,244,119,222,49,234,158,222,49,195,197,222,49,126,236,222,49],"i8",4,y.a+1433600);
Q([28,19,223,49,156,57,223,49,0,96,223,49,70,134,223,49,110,172,223,49,121,210,223,49,103,248,223,49,56,30,224,49,235,67,224,49,128,105,224,49,249,142,224,49,84,180,224,49,145,217,224,49,177,254,224,49,180,35,225,49,153,72,225,49,97,109,225,49,12,146,225,49,153,182,225,49,9,219,225,49,91,255,225,49,144,35,226,49,168,71,226,49,162,107,226,49,126,143,226,49,62,179,226,49,223,214,226,49,100,250,226,49,203,29,227,49,20,65,227,49,64,100,227,49,79,135,227,49,64,170,227,49,20,205,227,49,202,239,227,49,99,
18,228,49,222,52,228,49,60,87,228,49,125,121,228,49,160,155,228,49,166,189,228,49,142,223,228,49,89,1,229,49,6,35,229,49,150,68,229,49,8,102,229,49,93,135,229,49,148,168,229,49,174,201,229,49,170,234,229,49,137,11,230,49,75,44,230,49,239,76,230,49,118,109,230,49,223,141,230,49,42,174,230,49,89,206,230,49,105,238,230,49,92,14,231,49,50,46,231,49,234,77,231,49,133,109,231,49,2,141,231,49,98,172,231,49,165,203,231,49,201,234,231,49,209,9,232,49,187,40,232,49,135,71,232,49,54,102,232,49,200,132,232,49,
60,163,232,49,146,193,232,49,203,223,232,49,231,253,232,49,229,27,233,49,197,57,233,49,136,87,233,49,46,117,233,49,182,146,233,49,33,176,233,49,110,205,233,49,158,234,233,49,176,7,234,49,165,36,234,49,124,65,234,49,54,94,234,49,210,122,234,49,81,151,234,49,178,179,234,49,246,207,234,49,29,236,234,49,38,8,235,49,17,36,235,49,223,63,235,49,144,91,235,49,35,119,235,49,153,146,235,49,241,173,235,49,44,201,235,49,73,228,235,49,73,255,235,49,43,26,236,49,240,52,236,49,151,79,236,49,33,106,236,49,142,132,
236,49,221,158,236,49,15,185,236,49,35,211,236,49,26,237,236,49,243,6,237,49,175,32,237,49,77,58,237,49,206,83,237,49,50,109,237,49,120,134,237,49,161,159,237,49,172,184,237,49,154,209,237,49,107,234,237,49,30,3,238,49,179,27,238,49,44,52,238,49,134,76,238,49,196,100,238,49,228,124,238,49,230,148,238,49,204,172,238,49,147,196,238,49,62,220,238,49,203,243,238,49,59,11,239,49,141,34,239,49,194,57,239,49,217,80,239,49,211,103,239,49,176,126,239,49,111,149,239,49,18,172,239,49,150,194,239,49,254,216,
239,49,71,239,239,49,116,5,240,49,131,27,240,49,117,49,240,49,74,71,240,49,1,93,240,49,155,114,240,49,24,136,240,49,119,157,240,49,185,178,240,49,222,199,240,49,229,220,240,49,207,241,240,49,156,6,241,49,75,27,241,49,221,47,241,49,82,68,241,49,170,88,241,49,228,108,241,49,1,129,241,49,1,149,241,49,227,168,241,49,169,188,241,49,80,208,241,49,219,227,241,49,73,247,241,49,153,10,242,49,204,29,242,49,226,48,242,49,218,67,242,49,181,86,242,49,116,105,242,49,20,124,242,49,152,142,242,49,255,160,242,49,
72,179,242,49,116,197,242,49,131,215,242,49,117,233,242,49,73,251,242,49,1,13,243,49,155,30,243,49,24,48,243,49,120,65,243,49,186,82,243,49,224,99,243,49,233,116,243,49,212,133,243,49,162,150,243,49,83,167,243,49,231,183,243,49,94,200,243,49,184,216,243,49,245,232,243,49,20,249,243,49,23,9,244,49,252,24,244,49,197,40,244,49,112,56,244,49,254,71,244,49,112,87,244,49,196,102,244,49,251,117,244,49,21,133,244,49,18,148,244,49,242,162,244,49,181,177,244,49,92,192,244,49,229,206,244,49,81,221,244,49,160,
235,244,49,210,249,244,49,231,7,245,49,224,21,245,49,187,35,245,49,121,49,245,49,27,63,245,49,159,76,245,49,7,90,245,49,81,103,245,49,127,116,245,49,144,129,245,49,132,142,245,49,91,155,245,49,21,168,245,49,178,180,245,49,51,193,245,49,150,205,245,49,221,217,245,49,7,230,245,49,20,242,245,49,5,254,245,49,216,9,246,49,143,21,246,49,41,33,246,49,166,44,246,49,6,56,246,49,73,67,246,49,112,78,246,49,122,89,246,49,103,100,246,49,56,111,246,49,236,121,246,49,131,132,246,49,253,142,246,49,91,153,246,49,
156,163,246,49,192,173,246,49,200,183,246,49,178,193,246,49,129,203,246,49,50,213,246,49,199,222,246,49,64,232,246,49,155,241,246,49,218,250,246,49,253,3,247,49,3,13,247,49,236,21,247,49,185,30,247,49,105,39,247,49,253,47,247,49,116,56,247,49,206,64,247,49,12,73,247,49,46,81,247,49,50,89,247,49,27,97,247,49,231,104,247,49,150,112,247,49,41,120,247,49,160,127,247,49,250,134,247,49,56,142,247,49,89,149,247,49,94,156,247,49,70,163,247,49,18,170,247,49,193,176,247,49,85,183,247,49,203,189,247,49,38,196,
247,49,100,202,247,49,134,208,247,49,139,214,247,49,116,220,247,49,65,226,247,49,242,231,247,49,134,237,247,49,254,242,247,49,89,248,247,49,153,253,247,49,188,2,248,49,195,7,248,49,174,12,248,49,124,17,248,49,46,22,248,49,197,26,248,49,63,31,248,49,156,35,248,49,222,39,248,49,3,44,248,49,13,48,248,49,250,51,248,49,203,55,248,49,128,59,248,49,25,63,248,49,150,66,248,49,246,69,248,49,59,73,248,49,100,76,248,49,112,79,248,49,97,82,248,49,54,85,248,49,238,87,248,49,139,90,248,49,12,93,248,49,112,95,248,
49,185,97,248,49,230,99,248,49,247,101,248,49,236,103,248,49,197,105,248,49,130,107,248,49,35,109,248,49,169,110,248,49,18,112,248,49,96,113,248,49,146,114,248,49,168,115,248,49,162,116,248,49,129,117,248,49,68,118,248,49,235,118,248,49,118,119,248,49,229,119,248,49,57,120,248,49,113,120,248,49,142,120,248,49,142,120,248,49,115,120,248,49,61,120,248,49,234,119,248,49,124,119,248,49,243,118,248,49,78,118,248,49,141,117,248,49,177,116,248,49,185,115,248,49,165,114,248,49,118,113,248,49,44,112,248,49,
198,110,248,49,68,109,248,49,167,107,248,49,238,105,248,49,27,104,248,49,43,102,248,49,32,100,248,49,250,97,248,49,184,95,248,49,91,93,248,49,227,90,248,49,79,88,248,49,160,85,248,49,213,82,248,49,239,79,248,49,238,76,248,49,210,73,248,49,154,70,248,49,71,67,248,49,217,63,248,49,79,60,248,49,171,56,248,49,235,52,248,49,16,49,248,49,25,45,248,49,8,41,248,49,219,36,248,49,148,32,248,49,49,28,248,49,179,23,248,49,26,19,248,49,102,14,248,49,151,9,248,49,172,4,248,49,167,255,247,49,135,250,247,49,75,245,
247,49,245,239,247,49,132,234,247,49,248,228,247,49,81,223,247,49,143,217,247,49,178,211,247,49,186,205,247,49,167,199,247,49,121,193,247,49,49,187,247,49,205,180,247,49,79,174,247,49,182,167,247,49,3,161,247,49,52,154,247,49,75,147,247,49,71,140,247,49,40,133,247,49,239,125,247,49,154,118,247,49,44,111,247,49,162,103,247,49,254,95,247,49,63,88,247,49,102,80,247,49,114,72,247,49,99,64,247,49,58,56,247,49,246,47,247,49,152,39,247,49,31,31,247,49,140,22,247,49,222,13,247,49,22,5,247,49,51,252,246,49,
54,243,246,49,31,234,246,49,237,224,246,49,161,215,246,49,58,206,246,49,185,196,246,49,29,187,246,49,104,177,246,49,152,167,246,49,173,157,246,49,169,147,246,49,138,137,246,49,81,127,246,49,254,116,246,49,144,106,246,49,8,96,246,49,103,85,246,49,171,74,246,49,212,63,246,49,228,52,246,49,218,41,246,49,181,30,246,49,119,19,246,49,30,8,246,49,172,252,245,49,31,241,245,49,120,229,245,49,184,217,245,49,221,205,245,49,233,193,245,49,218,181,245,49,178,169,245,49,112,157,245,49,19,145,245,49,157,132,245,
49,14,120,245,49,100,107,245,49,161,94,245,49,195,81,245,49,204,68,245,49,188,55,245,49,145,42,245,49,77,29,245,49,239,15,245,49,119,2,245,49,230,244,244,49,59,231,244,49,119,217,244,49,153,203,244,49,161,189,244,49,144,175,244,49,101,161,244,49,32,147,244,49,195,132,244,49,75,118,244,49,186,103,244,49,16,89,244,49,76,74,244,49,111,59,244,49,121,44,244,49,105,29,244,49,63,14,244,49,253,254,243,49,161,239,243,49,43,224,243,49,157,208,243,49,245,192,243,49,52,177,243,49,89,161,243,49,102,145,243,49,
89,129,243,49,51,113,243,49,244,96,243,49,156,80,243,49,42,64,243,49,160,47,243,49,252,30,243,49,64,14,243,49,106,253,242,49,123,236,242,49,116,219,242,49,83,202,242,49,25,185,242,49,199,167,242,49,91,150,242,49,215,132,242,49,58,115,242,49,131,97,242,49,180,79,242,49,205,61,242,49,204,43,242,49,179,25,242,49,128,7,242,49,53,245,241,49,210,226,241,49,85,208,241,49,192,189,241,49,18,171,241,49,76,152,241,49,109,133,241,49,117,114,241,49,101,95,241,49,60,76,241,49,251,56,241,49,161,37,241,49,47,18,
241,49,164,254,240,49,1,235,240,49,69,215,240,49,113,195,240,49,132,175,240,49,127,155,240,49,98,135,240,49,44,115,240,49,222,94,240,49,119,74,240,49,249,53,240,49,98,33,240,49,179,12,240,49,235,247,239,49,12,227,239,49,20,206,239,49,4,185,239,49,220,163,239,49,156,142,239,49,68,121,239,49,212,99,239,49,75,78,239,49,171,56,239,49,242,34,239,49,34,13,239,49,58,247,238,49,57,225,238,49,33,203,238,49,241,180,238,49,169,158,238,49,73,136,238,49,209,113,238,49,65,91,238,49,154,68,238,49,219,45,238,49,
4,23,238,49,21,0,238,49,15,233,237,49,241,209,237,49,187,186,237,49,110,163,237,49,9,140,237,49,140,116,237,49,248,92,237,49,76,69,237,49,137,45,237,49,174,21,237,49,188,253,236,49,178,229,236,49,145,205,236,49,88,181,236,49,8,157,236,49,160,132,236,49,34,108,236,49,139,83,236,49,222,58,236,49,25,34,236,49,61,9,236,49,74,240,235,49,63,215,235,49,29,190,235,49,228,164,235,49,148,139,235,49,45,114,235,49,175,88,235,49,25,63,235,49,108,37,235,49,169,11,235,49,206,241,234,49,220,215,234,49,212,189,234,
49,180,163,234,49,126,137,234,49,48,111,234,49,204,84,234,49,80,58,234,49,190,31,234,49,21,5,234,49,86,234,233,49,127,207,233,49,146,180,233,49,142,153,233,49,115,126,233,49,66,99,233,49,249,71,233,49,155,44,233,49,37,17,233,49,153,245,232,49,247,217,232,49,62,190,232,49,110,162,232,49,136,134,232,49,139,106,232,49,120,78,232,49,79,50,232,49,15,22,232,49,185,249,231,49,76,221,231,49,201,192,231,49,47,164,231,49,128,135,231,49,186,106,231,49,222,77,231,49,235,48,231,49,227,19,231,49,196,246,230,49,
143,217,230,49,68,188,230,49,227,158,230,49,107,129,230,49,222,99,230,49,59,70,230,49,129,40,230,49,178,10,230,49,205,236,229,49,209,206,229,49,192,176,229,49,153,146,229,49,92,116,229,49,9,86,229,49,161,55,229,49,34,25,229,49,142,250,228,49,228,219,228,49,37,189,228,49,79,158,228,49,100,127,228,49,99,96,228,49,77,65,228,49,33,34,228,49,224,2,228,49,136,227,227,49,28,196,227,49,154,164,227,49,2,133,227,49,85,101,227,49,146,69,227,49,187,37,227,49,205,5,227,49,203,229,226,49,179,197,226,49,133,165,
226,49,67,133,226,49,235,100,226,49,126,68,226,49,251,35,226,49,100,3,226,49,183,226,225,49,245,193,225,49,30,161,225,49,50,128,225,49,49,95,225,49,27,62,225,49,240,28,225,49,176,251,224,49,91,218,224,49,241,184,224,49,114,151,224,49,222,117,224,49,53,84,224,49,120,50,224,49,165,16,224,49,190,238,223,49,194,204,223,49,177,170,223,49,140,136,223,49,82,102,223,49,3,68,223,49,160,33,223,49,40,255,222,49,155,220,222,49,250,185,222,49,68,151,222,49,122,116,222,49,156,81,222,49,168,46,222,49,161,11,222,
49,133,232,221,49,84,197,221,49,16,162,221,49,183,126,221,49,73,91,221,49,199,55,221,49,49,20,221,49,135,240,220,49,201,204,220,49,246,168,220,49,16,133,220,49,21,97,220,49,6,61,220,49,227,24,220,49,172,244,219,49,97,208,219,49,1,172,219,49,142,135,219,49,7,99,219,49,108,62,219,49,189,25,219,49,251,244,218,49,36,208,218,49,58,171,218,49,60,134,218,49,42,97,218,49,4,60,218,49,203,22,218,49,125,241,217,49,29,204,217,49,168,166,217,49,32,129,217,49,133,91,217,49,213,53,217,49,19,16,217,49,61,234,216,
49,83,196,216,49,86,158,216,49,69,120,216,49,33,82,216,49,234,43,216,49,159,5,216,49,65,223,215,49,208,184,215,49,75,146,215,49,180,107,215,49,9,69,215,49,74,30,215,49,121,247,214,49,149,208,214,49,157,169,214,49,146,130,214,49,116,91,214,49,68,52,214,49,0,13,214,49,169,229,213,49,63,190,213,49,195,150,213,49,51,111,213,49,145,71,213,49,220,31,213,49,20,248,212,49,57,208,212,49,75,168,212,49,75,128,212,49,56,88,212,49,18,48,212,49,218,7,212,49,143,223,211,49,49,183,211,49,193,142,211,49,62,102,211,
49,169,61,211,49,1,21,211,49,71,236,210,49,123,195,210,49,156,154,210,49,170,113,210,49,166,72,210,49,144,31,210,49,104,246,209,49,45,205,209,49,224,163,209,49,129,122,209,49,16,81,209,49,140,39,209,49,247,253,208,49,79,212,208,49,149,170,208,49,201,128,208,49,235,86,208,49,252,44,208,49,250,2,208,49,230,216,207,49,192,174,207,49,137,132,207,49,63,90,207,49,228,47,207,49,119,5,207,49,248,218,206,49,103,176,206,49,197,133,206,49,17,91,206,49,75,48,206,49,115,5,206,49,138,218,205,49,144,175,205,49,
132,132,205,49,102,89,205,49,55,46,205,49,246,2,205,49,164,215,204,49,65,172,204,49,204,128,204,49,69,85,204,49,174,41,204,49,5,254,203,49,75,210,203,49,127,166,203,49,163,122,203,49,181,78,203,49,182,34,203,49,166,246,202,49,132,202,202,49,82,158,202,49,15,114,202,49,186,69,202,49,85,25,202,49,222,236,201,49,87,192,201,49,191,147,201,49,21,103,201,49,91,58,201,49,145,13,201,49,181,224,200,49,200,179,200,49,203,134,200,49,189,89,200,49,159,44,200,49,112,255,199,49,48,210,199,49,223,164,199,49,126,
119,199,49,13,74,199,49,138,28,199,49,248,238,198,49,85,193,198,49,161,147,198,49,221,101,198,49,9,56,198,49,36,10,198,49,47,220,197,49,42,174,197,49,21,128,197,49,239,81,197,49,185,35,197,49,115,245,196,49,29,199,196,49,182,152,196,49,64,106,196,49,185,59,196,49,35,13,196,49,124,222,195,49,197,175,195,49,255,128,195,49,40,82,195,49,66,35,195,49,76,244,194,49,70,197,194,49,48,150,194,49,10,103,194,49,213,55,194,49,144,8,194,49,59,217,193,49,215,169,193,49,99,122,193,49,223,74,193,49,76,27,193,49,
169,235,192,49,247,187,192,49,53,140,192,49,100,92,192,49,131,44,192,49,147,252,191,49,148,204,191,49,133,156,191,49,103,108,191,49,58,60,191,49,253,11,191,49,177,219,190,49,86,171,190,49,236,122,190,49,114,74,190,49,234,25,190,49,82,233,189,49,172,184,189,49,246,135,189,49,50,87,189,49,94,38,189,49,123,245,188,49,138,196,188,49,138,147,188,49,123,98,188,49,93,49,188,49,48,0,188,49,244,206,187,49,170,157,187,49,81,108,187,49,234,58,187,49,115,9,187,49,238,215,186,49,91,166,186,49,185,116,186,49,8,
67,186,49,73,17,186,49,124,223,185,49,160,173,185,49,182,123,185,49,189,73,185,49,182,23,185,49,160,229,184,49,125,179,184,49,75,129,184,49,11,79,184,49,188,28,184,49,96,234,183,49,245,183,183,49,124,133,183,49,245,82,183,49,96,32,183,49,189,237,182,49,13,187,182,49,78,136,182,49,129,85,182,49,166,34,182,49,189,239,181,49,199,188,181,49,195,137,181,49,176,86,181,49,145,35,181,49,99,240,180,49,40,189,180,49,223,137,180,49,136,86,180,49,36,35,180,49,178,239,179,49,51,188,179,49,166,136,179,49,12,85,
179,49,100,33,179,49,175,237,178,49,236,185,178,49,28,134,178,49,63,82,178,49,84,30,178,49,92,234,177,49,87,182,177,49,68,130,177,49,37,78,177,49,248,25,177,49,190,229,176,49,119,177,176,49,35,125,176,49,194,72,176,49,84,20,176,49,217,223,175,49,80,171,175,49,187,118,175,49,26,66,175,49,107,13,175,49,175,216,174,49,231,163,174,49,18,111,174,49,48,58,174,49,65,5,174,49,70,208,173,49,62,155,173,49,41,102,173,49,8,49,173,49,218,251,172,49,160,198,172,49,89,145,172,49,6,92,172,49,166,38,172,49,58,241,
171,49,193,187,171,49,61,134,171,49,171,80,171,49,14,27,171,49,100,229,170,49,174,175,170,49,236,121,170,49,30,68,170,49,67,14,170,49,92,216,169,49,106,162,169,49,107,108,169,49,96,54,169,49,73,0,169,49,39,202,168,49,248,147,168,49,189,93,168,49,119,39,168,49,37,241,167,49,199,186,167,49,93,132,167,49,231,77,167,49,102,23,167,49,217,224,166,49,64,170,166,49,156,115,166,49,236,60,166,49,48,6,166,49,105,207,165,49,151,152,165,49,184,97,165,49,207,42,165,49,218,243,164,49,218,188,164,49,206,133,164,
49,183,78,164,49,149,23,164,49,103,224,163,49,47,169,163,49,235,113,163,49,155,58,163,49,65,3,163,49,220,203,162,49,107,148,162,49,240,92,162,49,105,37,162,49,215,237,161,49,59,182,161,49,147,126,161,49,225,70,161,49,36,15,161,49,92,215,160,49,137,159,160,49,171,103,160,49,195,47,160,49,207,247,159,49,210,191,159,49,201,135,159,49,182,79,159,49,152,23,159,49,112,223,158,49,61,167,158,49,0,111,158,49,184,54,158,49,102,254,157,49,9,198,157,49,162,141,157,49,48,85,157,49,181,28,157,49,47,228,156,49,
158,171,156,49,4,115,156,49,95,58,156,49,176,1,156,49,247,200,155,49,52,144,155,49,102,87,155,49,143,30,155,49,174,229,154,49,195,172,154,49,205,115,154,49,206,58,154,49,197,1,154,49,178,200,153,49,149,143,153,49,110,86,153,49,62,29,153,49,4,228,152,49,192,170,152,49,115,113,152,49,27,56,152,49,187,254,151,49,80,197,151,49,220,139,151,49,95,82,151,49,216,24,151,49,71,223,150,49,173,165,150,49,10,108,150,49,93,50,150,49,167,248,149,49,232,190,149,49,31,133,149,49,77,75,149,49,114,17,149,49,142,215,
148,49,160,157,148,49,169,99,148,49,170,41,148,49,161,239,147,49,143,181,147,49,116,123,147,49,80,65,147,49,35,7,147,49,238,204,146,49,175,146,146,49,104,88,146,49,23,30,146,49,190,227,145,49,92,169,145,49,242,110,145,49,126,52,145,49,2,250,144,49,126,191,144,49,241,132,144,49,91,74,144,49,188,15,144,49,21,213,143,49,102,154,143,49,174,95,143,49,238,36,143,49,37,234,142,49,84,175,142,49,123,116,142,49,153,57,142,49,175,254,141,49,189,195,141,49,194,136,141,49,191,77,141,49,181,18,141,49,162,215,140,
49,135,156,140,49,100,97,140,49,56,38,140,49,5,235,139,49,202,175,139,49,135,116,139,49,60,57,139,49,233,253,138,49,143,194,138,49,44,135,138,49,194,75,138,49,80,16,138,49,214,212,137,49,85,153,137,49,203,93,137,49,59,34,137,49,162,230,136,49,2,171,136,49,91,111,136,49,172,51,136,49,245,247,135,49,55,188,135,49,114,128,135,49,165,68,135,49,209,8,135,49,246,204,134,49,19,145,134,49,41,85,134,49,56,25,134,49,63,221,133,49,63,161,133,49,57,101,133,49,43,41,133,49,22,237,132,49,250,176,132,49,215,116,
132,49,172,56,132,49,123,252,131,49,67,192,131,49,5,132,131,49,191,71,131,49,114,11,131,49,31,207,130,49,197,146,130,49,100,86,130,49,252,25,130,49,142,221,129,49,25,161,129,49,157,100,129,49,27,40,129,49,146,235,128,49,3,175,128,49,109,114,128,49,209,53,128,49,92,242,127,49,9,121,127,49,170,255,126,49,62,134,126,49,198,12,126,49,65,147,125,49,175,25,125,49,17,160,124,49,103,38,124,49,176,172,123,49,237,50,123,49,30,185,122,49,66,63,122,49,91,197,121,49,103,75,121,49,104,209,120,49,92,87,120,49,69,
221,119,49,34,99,119,49,243,232,118,49,185,110,118,49,114,244,117,49,33,122,117,49,196,255,116,49,91,133,116,49,231,10,116,49,104,144,115,49,221,21,115,49,72,155,114,49,167,32,114,49,251,165,113,49,68,43,113,49,130,176,112,49,182,53,112,49,222,186,111,49,252,63,111,49,15,197,110,49,23,74,110,49,21,207,109,49,8,84,109,49,241,216,108,49,208,93,108,49,164,226,107,49,109,103,107,49,45,236,106,49,227,112,106,49,142,245,105,49,47,122,105,49,199,254,104,49,84,131,104,49,216,7,104,49,81,140,103,49,194,16,
103,49,40,149,102,49,133,25,102,49,216,157,101,49,34,34,101,49,98,166,100,49,153,42,100,49,199,174,99,49,235,50,99,49,7,183,98,49,25,59,98,49,34,191,97,49,34,67,97,49,25,199,96,49,7,75,96,49,236,206,95,49,201,82,95,49,157,214,94,49,104,90,94,49,43,222,93,49,229,97,93,49,151,229,92,49,64,105,92,49,225,236,91,49,122,112,91,49,10,244,90,49,147,119,90,49,19,251,89,49,139,126,89,49,251,1,89,49,100,133,88,49,196,8,88,49,29,140,87,49,110,15,87,49,183,146,86,49,248,21,86,49,50,153,85,49,101,28,85,49,144,
159,84,49,180,34,84,49,208,165,83,49,229,40,83,49,243,171,82,49,250,46,82,49,250,177,81,49,242,52,81,49,228,183,80,49,207,58,80,49,179,189,79,49,144,64,79,49,103,195,78,49,54,70,78,49,0,201,77,49,194,75,77,49,126,206,76,49,52,81,76,49,228,211,75,49,141,86,75,49,48,217,74,49,204,91,74,49,99,222,73,49,243,96,73,49,126,227,72,49,2,102,72,49,129,232,71,49,250,106,71,49,109,237,70,49,218,111,70,49,66,242,69,49,164,116,69,49,1,247,68,49,88,121,68,49,170,251,67,49,246,125,67,49,61,0,67,49,127,130,66,49,
188,4,66,49,243,134,65,49,38,9,65,49,83,139,64,49,124,13,64,49,159,143,63,49,190,17,63,49,216,147,62,49,238,21,62,49,255,151,61,49,11,26,61,49,18,156,60,49,22,30,60,49,20,160,59,49,15,34,59,49,5,164,58,49,247,37,58,49,229,167,57,49,207,41,57,49,180,171,56,49,150,45,56,49,116,175,55,49,77,49,55,49,35,179,54,49,246,52,54,49,196,182,53,49,143,56,53,49,87,186,52,49,26,60,52,49,219,189,51,49,152,63,51,49,81,193,50,49,8,67,50,49,187,196,49,49,107,70,49,49,24,200,48,49,193,73,48,49,104,203,47,49,12,77,47,
49,173,206,46,49,75,80,46,49,231,209,45,49,127,83,45,49,21,213,44,49,169,86,44,49,58,216,43,49,200,89,43,49,84,219,42,49,222,92,42,49,101,222,41,49,235,95,41,49,110,225,40,49,239,98,40,49,109,228,39,49,234,101,39,49,101,231,38,49,222,104,38,49,85,234,37,49,203,107,37,49,62,237,36,49,176,110,36,49,33,240,35,49,144,113,35,49,253,242,34,49,105,116,34,49,212,245,33,49,61,119,33,49,165,248,32,49,12,122,32,49,114,251,31,49,215,124,31,49,58,254,30,49,157,127,30,49,255,0,30,49,96,130,29,49,192,3,29,49,32,
133,28,49,126,6,28,49,221,135,27,49,58,9,27,49,151,138,26,49,244,11,26,49,80,141,25,49,172,14,25,49,8,144,24,49,99,17,24,49,191,146,23,49,26,20,23,49,117,149,22,49,208,22,22,49,43,152,21,49,135,25,21,49,226,154,20,49,62,28,20,49,154,157,19,49,247,30,19,49,84,160,18,49,177,33,18,49,15,163,17,49,110,36,17,49,205,165,16,49,45,39,16,49,141,168,15,49,239,41,15,49,81,171,14,49,180,44,14,49,24,174,13,49,125,47,13,49,228,176,12,49,75,50,12,49,180,179,11,49,30,53,11,49,137,182,10,49,246,55,10,49,100,185,9,
49,211,58,9,49,69,188,8,49,183,61,8,49,44,191,7,49,162,64,7,49,26,194,6,49,147,67,6,49,15,197,5,49,140,70,5,49,12,200,4,49,142,73,4,49,17,203,3,49,151,76,3,49,31,206,2,49,170,79,2,49,54,209,1,49,197,82,1,49,87,212,0,49,235,85,0,49,3,175,255,48,54,178,254,48,110,181,253,48,171,184,252,48,238,187,251,48,54,191,250,48,132,194,249,48,216,197,248,48,51,201,247,48,147,204,246,48,249,207,245,48,102,211,244,48,217,214,243,48,83,218,242,48,212,221,241,48,91,225,240,48,233,228,239,48,127,232,238,48,27,236,
237,48,190,239,236,48,105,243,235,48,28,247,234,48,214,250,233,48,151,254,232,48,96,2,232,48,50,6,231,48,11,10,230,48,236,13,229,48,214,17,228,48,200,21,227,48,194,25,226,48,197,29,225,48,208,33,224,48,228,37,223,48,2,42,222,48,40,46,221,48,87,50,220,48,143,54,219,48,209,58,218,48,28,63,217,48,113,67,216,48,207,71,215,48,55,76,214,48,169,80,213,48,37,85,212,48,171,89,211,48,59,94,210,48,213,98,209,48,122,103,208,48,41,108,207,48,227,112,206,48,168,117,205,48,119,122,204,48,82,127,203,48,55,132,202,
48,40,137,201,48,35,142,200,48,43,147,199,48,61,152,198,48,92,157,197,48,134,162,196,48,187,167,195,48,253,172,194,48,75,178,193,48,165,183,192,48,11,189,191,48,125,194,190,48,252,199,189,48,135,205,188,48,31,211,187,48,196,216,186,48,117,222,185,48,52,228,184,48,0,234,183,48,217,239,182,48,191,245,181,48,178,251,180,48,179,1,180,48,194,7,179,48,222,13,178,48,9,20,177,48,65,26,176,48,135,32,175,48,219,38,174,48,62,45,173,48,175,51,172,48,46,58,171,48,188,64,170,48,89,71,169,48,4,78,168,48,191,84,
167,48,136,91,166,48,96,98,165,48,72,105,164,48,63,112,163,48,69,119,162,48,91,126,161,48,128,133,160,48,181,140,159,48,250,147,158,48,79,155,157,48,180,162,156,48,41,170,155,48,174,177,154,48,67,185,153,48,234,192,152,48,160,200,151,48,103,208,150,48,63,216,149,48,40,224,148,48,34,232,147,48,45,240,146,48,73,248,145,48,118,0,145,48,181,8,144,48,5,17,143,48,103,25,142,48,219,33,141,48,96,42,140,48,247,50,139,48,160,59,138,48,91,68,137,48,41,77,136,48,9,86,135,48,251,94,134,48,0,104,133,48,23,113,
132,48,65,122,131,48,126,131,130,48,205,140,129,48,48,150,128,48,76,63,127,48,94,82,125,48,151,101,123,48,247,120,121,48,126,140,119,48,44,160,117,48,1,180,115,48,254,199,113,48,35,220,111,48,112,240,109,48,230,4,108,48,131,25,106,48,74,46,104,48,57,67,102,48,82,88,100,48,147,109,98,48,255,130,96,48,147,152,94,48,82,174,92,48,59,196,90,48,78,218,88,48,140,240,86,48,244,6,85,48,135,29,83,48,69,52,81,48,47,75,79,48,68,98,77,48,132,121,75,48,241,144,73,48,137,168,71,48,78,192,69,48,63,216,67,48,93,240,
65,48,168,8,64,48,32,33,62,48,197,57,60,48,152,82,58,48,152,107,56,48,198,132,54,48,34,158,52,48,173,183,50,48,102,209,48,48,77,235,46,48,99,5,45,48,169,31,43,48,29,58,41,48,193,84,39,48,149,111,37,48,152,138,35,48,204,165,33,48,47,193,31,48,195,220,29,48,136,248,27,48,125,20,26,48,163,48,24,48,251,76,22,48,132,105,20,48,62,134,18,48,42,163,16,48,72,192,14,48,152,221,12,48,27,251,10,48,208,24,9,48,184,54,7,48,210,84,5,48,32,115,3,48,161,145,1,48,172,96,255,47,124,158,251,47,180,220,247,47,84,27,244,
47,93,90,240,47,207,153,236,47,169,217,232,47,238,25,229,47,156,90,225,47,181,155,221,47,57,221,217,47,40,31,214,47,130,97,210,47,72,164,206,47,122,231,202,47,26,43,199,47,38,111,195,47,159,179,191,47,135,248,187,47,220,61,184,47,160,131,180,47,211,201,176,47,117,16,173,47,135,87,169,47,9,159,165,47,251,230,161,47,94,47,158,47,51,120,154,47,121,193,150,47,48,11,147,47,90,85,143,47,247,159,139,47,6,235,135,47,137,54,132,47,128,130,128,47,214,157,121,47,148,55,114,47,61,210,106,47,208,109,99,47,78,
10,92,47,184,167,84,47,14,70,77,47,82,229,69,47,132,133,62,47,165,38,55,47,182,200,47,47,182,107,40,47,168,15,33,47,140,180,25,47,98,90,18,47,43,1,11,47,233,168,3,47,53,163,248,46,132,246,233,46,191,75,219,46,232,162,204,46,0,252,189,46,8,87,175,46,3,180,160,46,241,18,146,46,211,115,131,46,89,173,105,46,251,118,76,46,143,68,47,46,24,22,18,46,52,215,233,45,45,138,175,45,68,138,106,45,95,32,236,44,245,20,211,41,133,103,229,172,138,253,102,173,145,155,173,173,63,176,231,173,101,222,16,174,149,224,45,
174,175,222,74,174,174,216,103,174,72,103,130,174,41,224,144,174,249,86,159,174,183,203,173,174,96,62,188,174,243,174,202,174,112,29,217,174,213,137,231,174,31,244,245,174,40,46,2,175,49,97,9,175,44,147,16,175,23,196,23,175,242,243,30,175,187,34,38,175,115,80,45,175,25,125,52,175,171,168,59,175,42,211,66,175,149,252,73,175,234,36,81,175,41,76,88,175,82,114,95,175,99,151,102,175,93,187,109,175,62,222,116,175,6,0,124,175,90,144,129,175,36,32,133,175,96,175,136,175,14,62,140,175,46,204,143,175,191,89,
147,175,193,230,150,175,52,115,154,175,23,255,157,175,106,138,161,175,44,21,165,175,94,159,168,175,255,40,172,175,15,178,175,175,141,58,179,175,121,194,182,175,211,73,186,175,153,208,189,175,205,86,193,175,110,220,196,175,123,97,200,175,243,229,203,175,216,105,207,175,40,237,210,175,227,111,214,175,8,242,217,175,152,115,221,175,146,244,224,175,245,116,228,175,194,244,231,175,248,115,235,175,150,242,238,175,157,112,242,175,12,238,245,175,227,106,249,175,33,231,252,175,99,49,0,176,233,238,1,176,34,
172,3,176,14,105,5,176,173,37,7,176,255,225,8,176,3,158,10,176,186,89,12,176,35,21,14,176,62,208,15,176,11,139,17,176,138,69,19,176,186,255,20,176,156,185,22,176,47,115,24,176,115,44,26,176,104,229,27,176,14,158,29,176,101,86,31,176,108,14,33,176,36,198,34,176,139,125,36,176,163,52,38,176,106,235,39,176,226,161,41,176,8,88,43,176,222,13,45,176,100,195,46,176,152,120,48,176,123,45,50,176,14,226,51,176,78,150,53,176,61,74,55,176,219,253,56,176,39,177,58,176,32,100,60,176,200,22,62,176,29,201,63,176,
31,123,65,176,207,44,67,176,45,222,68,176,55,143,70,176,238,63,72,176,82,240,73,176,99,160,75,176,32,80,77,176,137,255,78,176,159,174,80,176,96,93,82,176,205,11,84,176,230,185,85,176,171,103,87,176,27,21,89,176,54,194,90,176,253,110,92,176,110,27,94,176,138,199,95,176,81,115,97,176,194,30,99,176,221,201,100,176,163,116,102,176,19,31,104,176,45,201,105,176,240,114,107,176,93,28,109,176,116,197,110,176,52,110,112,176,157,22,114,176,175,190,115,176,106,102,117,176,205,13,119,176,217,180,120,176,142,
91,122,176,235,1,124,176,240,167,125,176,157,77,127,176,121,121,128,176,247,75,129,176,73,30,130,176,111,240,130,176,105,194,131,176,54,148,132,176,214,101,133,176,74,55,134,176,145,8,135,176,172,217,135,176,154,170,136,176,91,123,137,176,238,75,138,176,85,28,139,176,143,236,139,176,156,188,140,176,123,140,141,176,46,92,142,176,179,43,143,176,10,251,143,176,52,202,144,176,48,153,145,176,255,103,146,176,160,54,147,176,19,5,148,176,88,211,148,176,112,161,149,176,89,111,150,176,21,61,151,176,162,10,
152,176,1,216,152,176,50,165,153,176,52,114,154,176,9,63,155,176,174,11,156,176,37,216,156,176,110,164,157,176,135,112,158,176,115,60,159,176,47,8,160,176,188,211,160,176,27,159,161,176,74,106,162,176,74,53,163,176,27,0,164,176,189,202,164,176,48,149,165,176,115,95,166,176,135,41,167,176,108,243,167,176,33,189,168,176,166,134,169,176,251,79,170,176,33,25,171,176,23,226,171,176,221,170,172,176,115,115,173,176,218,59,174,176,16,4,175,176,22,204,175,176,235,147,176,176,145,91,177,176,6,35,178,176,75,
234,178,176,95,177,179,176,67,120,180,176,246,62,181,176,120,5,182,176,202,203,182,176,235,145,183,176,219,87,184,176,154,29,185,176,40,227,185,176,133,168,186,176,177,109,187,176,172,50,188,176,118,247,188,176,14,188,189,176,117,128,190,176,171,68,191,176,175,8,192,176,129,204,192,176,34,144,193,176,145,83,194,176,207,22,195,176,218,217,195,176,180,156,196,176,92,95,197,176,210,33,198,176,21,228,198,176,39,166,199,176,7,104,200,176,180,41,201,176,47,235,201,176,120,172,202,176,142,109,203,176,113,
46,204,176,35,239,204,176,161,175,205,176,237,111,206,176,6,48,207,176,237,239,207,176,160,175,208,176,33,111,209,176,111,46,210,176,137,237,210,176,113,172,211,176,37,107,212,176,167,41,213,176,245,231,213,176,15,166,214,176,247,99,215,176,170,33,216,176,43,223,216,176,120,156,217,176,145,89,218,176,118,22,219,176,40,211,219,176,166,143,220,176,240,75,221,176,6,8,222,176,233,195,222,176,151,127,223,176,17,59,224,176,87,246,224,176,105,177,225,176,70,108,226,176,240,38,227,176,101,225,227,176,165,
155,228,176,177,85,229,176,137,15,230,176,44,201,230,176,154,130,231,176,211,59,232,176,216,244,232,176,168,173,233,176,67,102,234,176,169,30,235,176,218,214,235,176,215,142,236,176,158,70,237,176,48,254,237,176,140,181,238,176,180,108,239,176,166,35,240,176,99,218,240,176,234,144,241,176,60,71,242,176,88,253,242,176,63,179,243,176,240,104,244,176,107,30,245,176,177,211,245,176,193,136,246,176,155,61,247,176,63,242,247,176,173,166,248,176,229,90,249,176,231,14,250,176,179,194,250,176,73,118,251,176,
168,41,252,176,209,220,252,176,196,143,253,176,129,66,254,176,7,245,254,176,86,167,255,176,184,44,0,177,169,133,0,177,127,222,0,177,57,55,1,177,217,143,1,177,92,232,1,177,197,64,2,177,18,153,2,177,67,241,2,177,89,73,3,177,83,161,3,177,50,249,3,177,246,80,4,177,157,168,4,177,41,0,5,177,154,87,5,177,238,174,5,177,39,6,6,177,69,93,6,177,70,180,6,177,44,11,7,177,246,97,7,177,164,184,7,177,54,15,8,177,173,101,8,177,7,188,8,177,70,18,9,177,105,104,9,177,111,190,9,177,90,20,10,177,41,106,10,177,219,191,
10,177,114,21,11,177,236,106,11,177,75,192,11,177,141,21,12,177,179,106,12,177,189,191,12,177,170,20,13,177,124,105,13,177,49,190,13,177,202,18,14,177,70,103,14,177,167,187,14,177,235,15,15,177,18,100,15,177,29,184,15,177,12,12,16,177,222,95,16,177,148,179,16,177,45,7,17,177,170,90,17,177,10,174,17,177,78,1,18,177,117,84,18,177,128,167,18,177,110,250,18,177,63,77,19,177,244,159,19,177,140,242,19,177,7,69,20,177,101,151,20,177,167,233,20,177,204,59,21,177,212,141,21,177,191,223,21,177,142,49,22,177,
63,131,22,177,212,212,22,177,76,38,23,177,167,119,23,177,229,200,23,177,6,26,24,177,10,107,24,177,241,187,24,177,187,12,25,177,103,93,25,177,247,173,25,177,106,254,25,177,191,78,26,177,248,158,26,177,19,239,26,177,17,63,27,177,242,142,27,177,182,222,27,177,92,46,28,177,229,125,28,177,81,205,28,177,160,28,29,177,209,107,29,177,229,186,29,177,219,9,30,177,181,88,30,177,112,167,30,177,15,246,30,177,144,68,31,177,243,146,31,177,57,225,31,177,97,47,32,177,108,125,32,177,89,203,32,177,41,25,33,177,219,
102,33,177,112,180,33,177,231,1,34,177,64,79,34,177,124,156,34,177,154,233,34,177,154,54,35,177,125,131,35,177,66,208,35,177,233,28,36,177,114,105,36,177,222,181,36,177,43,2,37,177,91,78,37,177,109,154,37,177,97,230,37,177,56,50,38,177,240,125,38,177,138,201,38,177,7,21,39,177,101,96,39,177,166,171,39,177,201,246,39,177,205,65,40,177,180,140,40,177,124,215,40,177,39,34,41,177,179,108,41,177,33,183,41,177,113,1,42,177,163,75,42,177,183,149,42,177,173,223,42,177,132,41,43,177,62,115,43,177,217,188,
43,177,85,6,44,177,180,79,44,177,244,152,44,177,22,226,44,177,26,43,45,177,255,115,45,177,198,188,45,177,111,5,46,177,249,77,46,177,101,150,46,177,179,222,46,177,226,38,47,177,242,110,47,177,228,182,47,177,184,254,47,177,109,70,48,177,4,142,48,177,124,213,48,177,214,28,49,177,17,100,49,177,45,171,49,177,43,242,49,177,11,57,50,177,203,127,50,177,109,198,50,177,241,12,51,177,86,83,51,177,156,153,51,177,195,223,51,177,204,37,52,177,182,107,52,177,129,177,52,177,46,247,52,177,187,60,53,177,42,130,53,
177,122,199,53,177,172,12,54,177,190,81,54,177,178,150,54,177,135,219,54,177,61,32,55,177,212,100,55,177,76,169,55,177,165,237,55,177,223,49,56,177,251,117,56,177,247,185,56,177,212,253,56,177,147,65,57,177,50,133,57,177,179,200,57,177,20,12,58,177,87,79,58,177,122,146,58,177,126,213,58,177,99,24,59,177,41,91,59,177,208,157,59,177,88,224,59,177,193,34,60,177,10,101,60,177,53,167,60,177,64,233,60,177,44,43,61,177,249,108,61,177,166,174,61,177,53,240,61,177,164,49,62,177,244,114,62,177,36,180,62,177,
54,245,62,177,40,54,63,177,251,118,63,177,174,183,63,177,66,248,63,177,183,56,64,177,12,121,64,177,67,185,64,177,89,249,64,177,81,57,65,177,40,121,65,177,225,184,65,177,122,248,65,177,244,55,66,177,78,119,66,177,137,182,66,177,164,245,66,177,160,52,67,177,124,115,67,177,57,178,67,177,214,240,67,177,84,47,68,177,178,109,68,177,240,171,68,177,16,234,68,177,15,40,69,177,239,101,69,177,175,163,69,177,80,225,69,177,209,30,70,177,51,92,70,177,117,153,70,177,151,214,70,177,153,19,71,177,124,80,71,177,63,
141,71,177,227,201,71,177,103,6,72,177,203,66,72,177,15,127,72,177,52,187,72,177,57,247,72,177,30,51,73,177,228,110,73,177,137,170,73,177,15,230,73,177,117,33,74,177,187,92,74,177,226,151,74,177,233,210,74,177,207,13,75,177,150,72,75,177,62,131,75,177,197,189,75,177,44,248,75,177,116,50,76,177,156,108,76,177,163,166,76,177,139,224,76,177,83,26,77,177,251,83,77,177,132,141,77,177,236,198,77,177,52,0,78,177,92,57,78,177,101,114,78,177,77,171,78,177,22,228,78,177,190,28,79,177,71,85,79,177,175,141,79,
177,247,197,79,177,32,254,79,177,40,54,80,177,17,110,80,177,217,165,80,177,129,221,80,177,10,21,81,177,114,76,81,177,186,131,81,177,226,186,81,177,234,241,81,177,210,40,82,177,153,95,82,177,65,150,82,177,201,204,82,177,48,3,83,177,119,57,83,177,158,111,83,177,165,165,83,177,140,219,83,177,83,17,84,177,249,70,84,177,128,124,84,177,230,177,84,177,44,231,84,177,82,28,85,177,87,81,85,177,61,134,85,177,2,187,85,177,167,239,85,177,44,36,86,177,144,88,86,177,212,140,86,177,248,192,86,177,252,244,86,177,
224,40,87,177,163,92,87,177,70,144,87,177,201,195,87,177,43,247,87,177,110,42,88,177,144,93,88,177,145,144,88,177,115,195,88,177,52,246,88,177,212,40,89,177,85,91,89,177,181,141,89,177,245,191,89,177,20,242,89,177,19,36,90,177,242,85,90,177,177,135,90,177,79,185,90,177,204,234,90,177,42,28,91,177,103,77,91,177,132,126,91,177,128,175,91,177,92,224,91,177,23,17,92,177,179,65,92,177,45,114,92,177,136,162,92,177,194,210,92,177,219,2,93,177,213,50,93,177,173,98,93,177,102,146,93,177,254,193,93,177,117,
241,93,177,204,32,94,177,3,80,94,177,26,127,94,177,15,174,94,177,229,220,94,177,154,11,95,177,46,58,95,177,162,104,95,177,246,150,95,177,41,197,95,177,60,243,95,177,46,33,96,177,0,79,96,177,178,124,96,177,66,170,96,177,179,215,96,177,3,5,97,177,50,50,97,177,65,95,97,177,48,140,97,177,254,184,97,177,172,229,97,177,57,18,98,177,165,62,98,177,241,106,98,177,29,151,98,177,40,195,98,177,19,239,98,177,221,26,99,177,135,70,99,177,16,114,99,177,120,157,99,177,193,200,99,177,232,243,99,177,239,30,100,177,
214,73,100,177,156,116,100,177,66,159,100,177,199,201,100,177,43,244,100,177,111,30,101,177,147,72,101,177,150,114,101,177,120,156,101,177,58,198,101,177,220,239,101,177,93,25,102,177,189,66,102,177,253,107,102,177,28,149,102,177,27,190,102,177,250,230,102,177,183,15,103,177,85,56,103,177,210,96,103,177,46,137,103,177,105,177,103,177,133,217,103,177,127,1,104,177,89,41,104,177,19,81,104,177,172,120,104,177,37,160,104,177,125,199,104,177,180,238,104,177,203,21,105,177,194,60,105,177,152,99,105,177,
77,138,105,177,226,176,105,177,86,215,105,177,170,253,105,177,221,35,106,177,240,73,106,177,226,111,106,177,180,149,106,177,101,187,106,177,246,224,106,177,102,6,107,177,182,43,107,177,229,80,107,177,244,117,107,177,226,154,107,177,176,191,107,177,93,228,107,177,234,8,108,177,86,45,108,177,161,81,108,177,204,117,108,177,215,153,108,177,193,189,108,177,139,225,108,177,52,5,109,177,189,40,109,177,37,76,109,177,109,111,109,177,148,146,109,177,155,181,109,177,129,216,109,177,71,251,109,177,236,29,110,
177,113,64,110,177,213,98,110,177,25,133,110,177,60,167,110,177,63,201,110,177,34,235,110,177,228,12,111,177,133,46,111,177,7,80,111,177,103,113,111,177,167,146,111,177,199,179,111,177,199,212,111,177,166,245,111,177,100,22,112,177,2,55,112,177,128,87,112,177,221,119,112,177,26,152,112,177,54,184,112,177,50,216,112,177,14,248,112,177,201,23,113,177,100,55,113,177,222,86,113,177,56,118,113,177,114,149,113,177,139,180,113,177,132,211,113,177,92,242,113,177,20,17,114,177,172,47,114,177,35,78,114,177,
122,108,114,177,177,138,114,177,199,168,114,177,189,198,114,177,147,228,114,177,72,2,115,177,221,31,115,177,82,61,115,177,166,90,115,177,218,119,115,177,238,148,115,177,225,177,115,177,180,206,115,177,103,235,115,177,249,7,116,177,108,36,116,177,189,64,116,177,239,92,116,177,0,121,116,177,242,148,116,177,194,176,116,177,115,204,116,177,3,232,116,177,116,3,117,177,195,30,117,177,243,57,117,177,3,85,117,177,242,111,117,177,193,138,117,177,112,165,117,177,254,191,117,177,109,218,117,177,187,244,117,
177,233,14,118,177,247,40,118,177,228,66,118,177,178,92,118,177,95,118,118,177,237,143,118,177,90,169,118,177,167,194,118,177,211,219,118,177],"i8",4,y.a+1443840);
Q([224,244,118,177,205,13,119,177,153,38,119,177,70,63,119,177,210,87,119,177,62,112,119,177,138,136,119,177,182,160,119,177,194,184,119,177,174,208,119,177,122,232,119,177,38,0,120,177,178,23,120,177,29,47,120,177,105,70,120,177,149,93,120,177,161,116,120,177,140,139,120,177,88,162,120,177,4,185,120,177,144,207,120,177,252,229,120,177,72,252,120,177,115,18,121,177,127,40,121,177,107,62,121,177,56,84,121,177,228,105,121,177,112,127,121,177,221,148,121,177,41,170,121,177,86,191,121,177,98,212,121,
177,79,233,121,177,28,254,121,177,201,18,122,177,87,39,122,177,196,59,122,177,18,80,122,177,64,100,122,177,78,120,122,177,60,140,122,177,11,160,122,177,185,179,122,177,72,199,122,177,184,218,122,177,7,238,122,177,55,1,123,177,71,20,123,177,55,39,123,177,7,58,123,177,184,76,123,177,73,95,123,177,187,113,123,177,13,132,123,177,63,150,123,177,81,168,123,177,68,186,123,177,23,204,123,177,203,221,123,177,95,239,123,177,211,0,124,177,40,18,124,177,93,35,124,177,115,52,124,177,105,69,124,177,63,86,124,177,
246,102,124,177,142,119,124,177,6,136,124,177,94,152,124,177,151,168,124,177,176,184,124,177,170,200,124,177,133,216,124,177,64,232,124,177,219,247,124,177,88,7,125,177,180,22,125,177,242,37,125,177,16,53,125,177,14,68,125,177,237,82,125,177,173,97,125,177,77,112,125,177,206,126,125,177,48,141,125,177,115,155,125,177,150,169,125,177,154,183,125,177,126,197,125,177,67,211,125,177,233,224,125,177,112,238,125,177,216,251,125,177,32,9,126,177,73,22,126,177,83,35,126,177,62,48,126,177,9,61,126,177,181,
73,126,177,67,86,126,177,177,98,126,177,0,111,126,177,47,123,126,177,64,135,126,177,50,147,126,177,4,159,126,177,184,170,126,177,76,182,126,177,193,193,126,177,24,205,126,177,79,216,126,177,103,227,126,177,97,238,126,177,59,249,126,177,246,3,127,177,147,14,127,177,16,25,127,177,111,35,127,177,174,45,127,177,207,55,127,177,209,65,127,177,180,75,127,177,120,85,127,177,29,95,127,177,164,104,127,177,11,114,127,177,84,123,127,177,126,132,127,177,137,141,127,177,118,150,127,177,68,159,127,177,243,167,127,
177,131,176,127,177,245,184,127,177,71,193,127,177,124,201,127,177,145,209,127,177,136,217,127,177,96,225,127,177,26,233,127,177,181,240,127,177,49,248,127,177,143,255,127,177,103,3,128,177,248,6,128,177,121,10,128,177,235,13,128,177,77,17,128,177,160,20,128,177,229,23,128,177,25,27,128,177,63,30,128,177,85,33,128,177,93,36,128,177,85,39,128,177,61,42,128,177,23,45,128,177,226,47,128,177,157,50,128,177,73,53,128,177,230,55,128,177,116,58,128,177,242,60,128,177,98,63,128,177,194,65,128,177,20,68,128,
177,86,70,128,177,137,72,128,177,173,74,128,177,194,76,128,177,200,78,128,177,190,80,128,177,166,82,128,177,127,84,128,177,72,86,128,177,3,88,128,177,174,89,128,177,75,91,128,177,216,92,128,177,87,94,128,177,198,95,128,177,39,97,128,177,120,98,128,177,187,99,128,177,238,100,128,177,19,102,128,177,40,103,128,177,47,104,128,177,39,105,128,177,16,106,128,177,234,106,128,177,181,107,128,177,113,108,128,177,30,109,128,177,188,109,128,177,76,110,128,177,204,110,128,177,62,111,128,177,161,111,128,177,245,
111,128,177,58,112,128,177,113,112,128,177,152,112,128,177,177,112,128,177,187,112,128,177,182,112,128,177,163,112,128,177,128,112,128,177,79,112,128,177,15,112,128,177,193,111,128,177,99,111,128,177,247,110,128,177,124,110,128,177,243,109,128,177,91,109,128,177,180,108,128,177,254,107,128,177,58,107,128,177,103,106,128,177,133,105,128,177,149,104,128,177,150,103,128,177,137,102,128,177,109,101,128,177,66,100,128,177,9,99,128,177,193,97,128,177,106,96,128,177,5,95,128,177,146,93,128,177,15,92,128,
177,127,90,128,177,223,88,128,177,50,87,128,177,117,85,128,177,171,83,128,177,209,81,128,177,233,79,128,177,243,77,128,177,238,75,128,177,219,73,128,177,185,71,128,177,137,69,128,177,75,67,128,177,254,64,128,177,162,62,128,177,57,60,128,177,193,57,128,177,58,55,128,177,165,52,128,177,2,50,128,177,80,47,128,177,144,44,128,177,194,41,128,177,229,38,128,177,250,35,128,177,1,33,128,177,249,29,128,177,227,26,128,177,191,23,128,177,141,20,128,177,76,17,128,177,253,13,128,177,160,10,128,177,53,7,128,177,
187,3,128,177,51,0,128,177,59,249,127,177,243,241,127,177,142,234,127,177,13,227,127,177,111,219,127,177,182,211,127,177,224,203,127,177,238,195,127,177,223,187,127,177,181,179,127,177,110,171,127,177,11,163,127,177,140,154,127,177,241,145,127,177,57,137,127,177,102,128,127,177,118,119,127,177,107,110,127,177,67,101,127,177,0,92,127,177,160,82,127,177,37,73,127,177,141,63,127,177,218,53,127,177,11,44,127,177,32,34,127,177,25,24,127,177,246,13,127,177,183,3,127,177,93,249,126,177,231,238,126,177,85,
228,126,177,167,217,126,177,222,206,126,177,249,195,126,177,248,184,126,177,220,173,126,177,164,162,126,177,80,151,126,177,225,139,126,177,86,128,126,177,176,116,126,177,238,104,126,177,17,93,126,177,25,81,126,177,4,69,126,177,213,56,126,177,138,44,126,177,36,32,126,177,162,19,126,177,5,7,126,177,77,250,125,177,121,237,125,177,138,224,125,177,128,211,125,177,91,198,125,177,26,185,125,177,191,171,125,177,72,158,125,177,182,144,125,177,9,131,125,177,64,117,125,177,93,103,125,177,95,89,125,177,70,75,
125,177,17,61,125,177,194,46,125,177,88,32,125,177,211,17,125,177,50,3,125,177,120,244,124,177,162,229,124,177,177,214,124,177,166,199,124,177,127,184,124,177,62,169,124,177,227,153,124,177,108,138,124,177,219,122,124,177,47,107,124,177,105,91,124,177,136,75,124,177,140,59,124,177,117,43,124,177,69,27,124,177,249,10,124,177,147,250,123,177,19,234,123,177,120,217,123,177,195,200,123,177,243,183,123,177,9,167,123,177,5,150,123,177,230,132,123,177,173,115,123,177,89,98,123,177,236,80,123,177,100,63,
123,177,193,45,123,177,5,28,123,177,47,10,123,177,62,248,122,177,51,230,122,177,14,212,122,177,207,193,122,177,118,175,122,177,3,157,122,177,118,138,122,177,207,119,122,177,14,101,122,177,51,82,122,177,62,63,122,177,47,44,122,177,6,25,122,177,196,5,122,177,104,242,121,177,242,222,121,177,98,203,121,177,184,183,121,177,245,163,121,177,24,144,121,177,33,124,121,177,17,104,121,177,231,83,121,177,164,63,121,177,71,43,121,177,208,22,121,177,64,2,121,177,151,237,120,177,212,216,120,177,247,195,120,177,
1,175,120,177,242,153,120,177,201,132,120,177,135,111,120,177,44,90,120,177,184,68,120,177,42,47,120,177,131,25,120,177,194,3,120,177,233,237,119,177,246,215,119,177,234,193,119,177,198,171,119,177,136,149,119,177,49,127,119,177,193,104,119,177,55,82,119,177,149,59,119,177,218,36,119,177,7,14,119,177,26,247,118,177,20,224,118,177,245,200,118,177,190,177,118,177,110,154,118,177,5,131,118,177,131,107,118,177,233,83,118,177,54,60,118,177,106,36,118,177,133,12,118,177,136,244,117,177,115,220,117,177,
68,196,117,177,254,171,117,177,158,147,117,177,39,123,117,177,150,98,117,177,238,73,117,177,45,49,117,177,83,24,117,177,97,255,116,177,87,230,116,177,53,205,116,177,250,179,116,177,167,154,116,177,60,129,116,177,185,103,116,177,29,78,116,177,105,52,116,177,158,26,116,177,186,0,116,177,190,230,115,177,170,204,115,177,126,178,115,177,58,152,115,177,222,125,115,177,106,99,115,177,222,72,115,177,58,46,115,177,127,19,115,177,172,248,114,177,193,221,114,177,190,194,114,177,163,167,114,177,113,140,114,177,
39,113,114,177,197,85,114,177,76,58,114,177,187,30,114,177,18,3,114,177,82,231,113,177,123,203,113,177,140,175,113,177,133,147,113,177,103,119,113,177,50,91,113,177,229,62,113,177,129,34,113,177,6,6,113,177,115,233,112,177,201,204,112,177,8,176,112,177,47,147,112,177,64,118,112,177,57,89,112,177,27,60,112,177,230,30,112,177,154,1,112,177,54,228,111,177,188,198,111,177,43,169,111,177,131,139,111,177,196,109,111,177,238,79,111,177,1,50,111,177,253,19,111,177,227,245,110,177,177,215,110,177,105,185,
110,177,10,155,110,177,148,124,110,177,8,94,110,177,101,63,110,177,172,32,110,177,219,1,110,177,245,226,109,177,247,195,109,177,228,164,109,177,185,133,109,177,120,102,109,177,33,71,109,177,180,39,109,177,48,8,109,177,149,232,108,177,229,200,108,177,30,169,108,177,65,137,108,177,77,105,108,177,67,73,108,177,36,41,108,177,238,8,108,177,162,232,107,177,63,200,107,177,199,167,107,177,57,135,107,177,149,102,107,177,219,69,107,177,10,37,107,177,36,4,107,177,40,227,106,177,23,194,106,177,239,160,106,177,
177,127,106,177,94,94,106,177,245,60,106,177,119,27,106,177,226,249,105,177,56,216,105,177,121,182,105,177,163,148,105,177,185,114,105,177,184,80,105,177,162,46,105,177,119,12,105,177,54,234,104,177,224,199,104,177,117,165,104,177,244,130,104,177,93,96,104,177,178,61,104,177,241,26,104,177,27,248,103,177,47,213,103,177,47,178,103,177,25,143,103,177,239,107,103,177,175,72,103,177,90,37,103,177,240,1,103,177,113,222,102,177,221,186,102,177,52,151,102,177,118,115,102,177,163,79,102,177,188,43,102,177,
192,7,102,177,174,227,101,177,136,191,101,177,78,155,101,177,254,118,101,177,154,82,101,177,33,46,101,177,148,9,101,177,242,228,100,177,60,192,100,177,113,155,100,177,145,118,100,177,157,81,100,177,149,44,100,177,120,7,100,177,71,226,99,177,1,189,99,177,167,151,99,177,57,114,99,177,182,76,99,177,32,39,99,177,117,1,99,177,182,219,98,177,227,181,98,177,251,143,98,177,0,106,98,177,241,67,98,177,205,29,98,177,150,247,97,177,74,209,97,177,235,170,97,177,120,132,97,177,241,93,97,177,86,55,97,177,167,16,
97,177,229,233,96,177,15,195,96,177,37,156,96,177,39,117,96,177,22,78,96,177,241,38,96,177,185,255,95,177,109,216,95,177,13,177,95,177,154,137,95,177,20,98,95,177,122,58,95,177,204,18,95,177,12,235,94,177,55,195,94,177,80,155,94,177,85,115,94,177,72,75,94,177,38,35,94,177,242,250,93,177,171,210,93,177,80,170,93,177,226,129,93,177,98,89,93,177,206,48,93,177,39,8,93,177,109,223,92,177,161,182,92,177,193,141,92,177,206,100,92,177,201,59,92,177,177,18,92,177,134,233,91,177,72,192,91,177,248,150,91,177,
149,109,91,177,31,68,91,177,151,26,91,177,252,240,90,177,78,199,90,177,142,157,90,177,187,115,90,177,214,73,90,177,223,31,90,177,213,245,89,177,185,203,89,177,138,161,89,177,73,119,89,177,246,76,89,177,144,34,89,177,24,248,88,177,142,205,88,177,242,162,88,177,68,120,88,177,132,77,88,177,177,34,88,177,205,247,87,177,215,204,87,177,206,161,87,177,180,118,87,177,136,75,87,177,74,32,87,177,250,244,86,177,152,201,86,177,36,158,86,177,159,114,86,177,8,71,86,177,95,27,86,177,165,239,85,177,217,195,85,177,
252,151,85,177,12,108,85,177,12,64,85,177,250,19,85,177,214,231,84,177,161,187,84,177,91,143,84,177,3,99,84,177,154,54,84,177,31,10,84,177,147,221,83,177,247,176,83,177,72,132,83,177,137,87,83,177,185,42,83,177,215,253,82,177,228,208,82,177,225,163,82,177,204,118,82,177,166,73,82,177,112,28,82,177,40,239,81,177,207,193,81,177,102,148,81,177,236,102,81,177,97,57,81,177,197,11,81,177,25,222,80,177,92,176,80,177,142,130,80,177,176,84,80,177,193,38,80,177,193,248,79,177,177,202,79,177,144,156,79,177,
95,110,79,177,30,64,79,177,204,17,79,177,105,227,78,177,247,180,78,177,116,134,78,177,225,87,78,177,61,41,78,177,137,250,77,177,198,203,77,177,242,156,77,177,13,110,77,177,25,63,77,177,21,16,77,177,1,225,76,177,220,177,76,177,168,130,76,177,100,83,76,177,16,36,76,177,172,244,75,177,56,197,75,177,181,149,75,177,34,102,75,177,127,54,75,177,204,6,75,177,10,215,74,177,56,167,74,177,86,119,74,177,101,71,74,177,101,23,74,177,84,231,73,177,53,183,73,177,6,135,73,177,199,86,73,177,122,38,73,177,29,246,72,
177,176,197,72,177,52,149,72,177,169,100,72,177,15,52,72,177,102,3,72,177,174,210,71,177,230,161,71,177,15,113,71,177,42,64,71,177,53,15,71,177,49,222,70,177,31,173,70,177,253,123,70,177,205,74,70,177,142,25,70,177,64,232,69,177,227,182,69,177,119,133,69,177,253,83,69,177,116,34,69,177,221,240,68,177,55,191,68,177,130,141,68,177,190,91,68,177,237,41,68,177,12,248,67,177,30,198,67,177,32,148,67,177,21,98,67,177,251,47,67,177,211,253,66,177,156,203,66,177,87,153,66,177,4,103,66,177,163,52,66,177,52,
2,66,177,182,207,65,177,43,157,65,177,145,106,65,177,234,55,65,177,52,5,65,177,113,210,64,177,159,159,64,177,192,108,64,177,211,57,64,177,216,6,64,177,207,211,63,177,184,160,63,177,148,109,63,177,98,58,63,177,34,7,63,177,213,211,62,177,122,160,62,177,18,109,62,177,156,57,62,177,24,6,62,177,135,210,61,177,233,158,61,177,61,107,61,177,132,55,61,177,190,3,61,177,234,207,60,177,9,156,60,177,27,104,60,177,32,52,60,177,23,0,60,177,1,204,59,177,223,151,59,177,175,99,59,177,114,47,59,177,40,251,58,177,209,
198,58,177,110,146,58,177,253,93,58,177,128,41,58,177,245,244,57,177,94,192,57,177,186,139,57,177,10,87,57,177,76,34,57,177,130,237,56,177,172,184,56,177,201,131,56,177,217,78,56,177,221,25,56,177,212,228,55,177,191,175,55,177,157,122,55,177,111,69,55,177,53,16,55,177,238,218,54,177,155,165,54,177,59,112,54,177,208,58,54,177,88,5,54,177,212,207,53,177,68,154,53,177,168,100,53,177,0,47,53,177,76,249,52,177,140,195,52,177,191,141,52,177,231,87,52,177,3,34,52,177,19,236,51,177,24,182,51,177,16,128,51,
177,253,73,51,177,222,19,51,177,179,221,50,177,125,167,50,177,59,113,50,177,237,58,50,177,148,4,50,177,48,206,49,177,192,151,49,177,68,97,49,177,189,42,49,177,42,244,48,177,141,189,48,177,227,134,48,177,47,80,48,177,111,25,48,177,164,226,47,177,206,171,47,177,237,116,47,177,1,62,47,177,9,7,47,177,7,208,46,177,249,152,46,177,224,97,46,177,189,42,46,177,142,243,45,177,85,188,45,177,17,133,45,177,194,77,45,177,104,22,45,177,3,223,44,177,148,167,44,177,26,112,44,177,149,56,44,177,6,1,44,177,108,201,43,
177,199,145,43,177,24,90,43,177,95,34,43,177,155,234,42,177,204,178,42,177,244,122,42,177,16,67,42,177,35,11,42,177,43,211,41,177,41,155,41,177,29,99,41,177,6,43,41,177,230,242,40,177,187,186,40,177,134,130,40,177,71,74,40,177,254,17,40,177,171,217,39,177,78,161,39,177,232,104,39,177,119,48,39,177,252,247,38,177,120,191,38,177,234,134,38,177,82,78,38,177,176,21,38,177,5,221,37,177,80,164,37,177,145,107,37,177,201,50,37,177,247,249,36,177,28,193,36,177,55,136,36,177,73,79,36,177,81,22,36,177,80,221,
35,177,69,164,35,177,50,107,35,177,21,50,35,177,238,248,34,177,191,191,34,177,134,134,34,177,68,77,34,177,249,19,34,177,165,218,33,177,72,161,33,177,226,103,33,177,114,46,33,177,250,244,32,177,121,187,32,177,239,129,32,177,92,72,32,177,193,14,32,177,28,213,31,177,111,155,31,177,185,97,31,177,251,39,31,177,51,238,30,177,99,180,30,177,139,122,30,177,170,64,30,177,192,6,30,177,206,204,29,177,212,146,29,177,209,88,29,177,197,30,29,177,178,228,28,177,150,170,28,177,113,112,28,177,69,54,28,177,16,252,27,
177,211,193,27,177,142,135,27,177,64,77,27,177,235,18,27,177,142,216,26,177,40,158,26,177,187,99,26,177,69,41,26,177,200,238,25,177,67,180,25,177,182,121,25,177,33,63,25,177,132,4,25,177,224,201,24,177,51,143,24,177,127,84,24,177,196,25,24,177,1,223,23,177,54,164,23,177,100,105,23,177,138,46,23,177,168,243,22,177,192,184,22,177,207,125,22,177,216,66,22,177,217,7,22,177,210,204,21,177,197,145,21,177,176,86,21,177,148,27,21,177,113,224,20,177,70,165,20,177,20,106,20,177,220,46,20,177,156,243,19,177,
85,184,19,177,7,125,19,177,179,65,19,177,87,6,19,177,244,202,18,177,139,143,18,177,27,84,18,177,164,24,18,177,38,221,17,177,161,161,17,177,22,102,17,177,132,42,17,177,235,238,16,177,76,179,16,177,166,119,16,177,250,59,16,177,71,0,16,177,142,196,15,177,206,136,15,177,8,77,15,177,60,17,15,177,105,213,14,177,144,153,14,177,177,93,14,177,203,33,14,177,223,229,13,177,237,169,13,177,245,109,13,177,247,49,13,177,243,245,12,177,232,185,12,177,216,125,12,177,194,65,12,177,165,5,12,177,131,201,11,177,91,141,
11,177,45,81,11,177,249,20,11,177,192,216,10,177,129,156,10,177,60,96,10,177,241,35,10,177,161,231,9,177,75,171,9,177,240,110,9,177,143,50,9,177,40,246,8,177,188,185,8,177,75,125,8,177,212,64,8,177,87,4,8,177,214,199,7,177,79,139,7,177,195,78,7,177,49,18,7,177,154,213,6,177,255,152,6,177,93,92,6,177,183,31,6,177,12,227,5,177,92,166,5,177,166,105,5,177,236,44,5,177,45,240,4,177,105,179,4,177,159,118,4,177,209,57,4,177,255,252,3,177,39,192,3,177,75,131,3,177,105,70,3,177,132,9,3,177,153,204,2,177,170,
143,2,177,182,82,2,177,190,21,2,177,193,216,1,177,192,155,1,177,186,94,1,177,176,33,1,177,161,228,0,177,142,167,0,177,119,106,0,177,91,45,0,177,118,224,255,176,46,102,255,176,221,235,254,176,132,113,254,176,34,247,253,176,185,124,253,176,71,2,253,176,205,135,252,176,75,13,252,176,192,146,251,176,47,24,251,176,149,157,250,176,243,34,250,176,74,168,249,176,153,45,249,176,224,178,248,176,32,56,248,176,89,189,247,176,138,66,247,176,180,199,246,176,214,76,246,176,241,209,245,176,5,87,245,176,19,220,244,
176,25,97,244,176,24,230,243,176,16,107,243,176,1,240,242,176,236,116,242,176,208,249,241,176,173,126,241,176,132,3,241,176,84,136,240,176,30,13,240,176,225,145,239,176,159,22,239,176,85,155,238,176,6,32,238,176,177,164,237,176,85,41,237,176,244,173,236,176,141,50,236,176,31,183,235,176,172,59,235,176,51,192,234,176,181,68,234,176,49,201,233,176,167,77,233,176,24,210,232,176,132,86,232,176,234,218,231,176,75,95,231,176,167,227,230,176,253,103,230,176,78,236,229,176,155,112,229,176,226,244,228,176,
37,121,228,176,98,253,227,176,155,129,227,176,207,5,227,176,255,137,226,176,42,14,226,176,80,146,225,176,114,22,225,176,143,154,224,176,168,30,224,176,189,162,223,176,206,38,223,176,218,170,222,176,227,46,222,176,231,178,221,176,231,54,221,176,228,186,220,176,220,62,220,176,209,194,219,176,194,70,219,176,176,202,218,176,154,78,218,176,128,210,217,176,99,86,217,176,67,218,216,176,31,94,216,176,248,225,215,176,205,101,215,176,160,233,214,176,111,109,214,176,60,241,213,176,5,117,213,176,204,248,212,
176,144,124,212,176,81,0,212,176,15,132,211,176,202,7,211,176,131,139,210,176,58,15,210,176,238,146,209,176,159,22,209,176,79,154,208,176,251,29,208,176,166,161,207,176,79,37,207,176,245,168,206,176,154,44,206,176,60,176,205,176,221,51,205,176,123,183,204,176,24,59,204,176,180,190,203,176,77,66,203,176,229,197,202,176,123,73,202,176,16,205,201,176,164,80,201,176,54,212,200,176,199,87,200,176,86,219,199,176,229,94,199,176,114,226,198,176,254,101,198,176,138,233,197,176,20,109,197,176,157,240,196,176,
38,116,196,176,174,247,195,176,53,123,195,176,188,254,194,176,66,130,194,176,200,5,194,176,77,137,193,176,209,12,193,176,86,144,192,176,218,19,192,176,94,151,191,176,226,26,191,176,102,158,190,176,233,33,190,176,109,165,189,176,241,40,189,176,117,172,188,176,249,47,188,176,126,179,187,176,3,55,187,176,136,186,186,176,14,62,186,176,148,193,185,176,27,69,185,176,163,200,184,176,43,76,184,176,180,207,183,176,62,83,183,176,201,214,182,176,85,90,182,176,225,221,181,176,111,97,181,176,254,228,180,176,142,
104,180,176,32,236,179,176,178,111,179,176,70,243,178,176,220,118,178,176,115,250,177,176,11,126,177,176,165,1,177,176,65,133,176,176,223,8,176,176,126,140,175,176,31,16,175,176,194,147,174,176,103,23,174,176,14,155,173,176,183,30,173,176,99,162,172,176,16,38,172,176,192,169,171,176,114,45,171,176,38,177,170,176,221,52,170,176,150,184,169,176,82,60,169,176,17,192,168,176,210,67,168,176,150,199,167,176,93,75,167,176,38,207,166,176,243,82,166,176,194,214,165,176,149,90,165,176,106,222,164,176,67,98,
164,176,31,230,163,176,254,105,163,176,224,237,162,176,198,113,162,176,176,245,161,176,156,121,161,176,141,253,160,176,129,129,160,176,120,5,160,176,115,137,159,176,115,13,159,176,118,145,158,176,124,21,158,176,135,153,157,176,150,29,157,176,169,161,156,176,192,37,156,176,219,169,155,176,250,45,155,176,30,178,154,176,70,54,154,176,115,186,153,176,164,62,153,176,217,194,152,176,20,71,152,176,82,203,151,176,150,79,151,176,222,211,150,176,43,88,150,176,125,220,149,176,212,96,149,176,48,229,148,176,145,
105,148,176,247,237,147,176,98,114,147,176,210,246,146,176,72,123,146,176,195,255,145,176,67,132,145,176,201,8,145,176,85,141,144,176,229,17,144,176,124,150,143,176,24,27,143,176,186,159,142,176,98,36,142,176,15,169,141,176,195,45,141,176,124,178,140,176,60,55,140,176,1,188,139,176,205,64,139,176,158,197,138,176,118,74,138,176,85,207,137,176,57,84,137,176,37,217,136,176,22,94,136,176,14,227,135,176,13,104,135,176,18,237,134,176,30,114,134,176,48,247,133,176,74,124,133,176,106,1,133,176,145,134,132,
176,192,11,132,176,245,144,131,176,49,22,131,176,116,155,130,176,191,32,130,176,17,166,129,176,106,43,129,176,202,176,128,176,50,54,128,176,67,119,127,176,49,130,126,176,45,141,125,176,57,152,124,176,85,163,123,176,127,174,122,176,186,185,121,176,4,197,120,176,94,208,119,176,199,219,118,176,65,231,117,176,203,242,116,176,101,254,115,176,16,10,115,176,203,21,114,176,150,33,113,176,114,45,112,176,95,57,111,176,93,69,110,176,108,81,109,176,139,93,108,176,188,105,107,176,255,117,106,176,83,130,105,176,
184,142,104,176,47,155,103,176,184,167,102,176,82,180,101,176,255,192,100,176,189,205,99,176,142,218,98,176,113,231,97,176,102,244,96,176,110,1,96,176,136,14,95,176,182,27,94,176,246,40,93,176,72,54,92,176,174,67,91,176,39,81,90,176,180,94,89,176,83,108,88,176,6,122,87,176,205,135,86,176,167,149,85,176,149,163,84,176,151,177,83,176,173,191,82,176,215,205,81,176,21,220,80,176,103,234,79,176,206,248,78,176,74,7,78,176,218,21,77,176,126,36,76,176,56,51,75,176,6,66,74,176,233,80,73,176,226,95,72,176,
239,110,71,176,19,126,70,176,75,141,69,176,153,156,68,176,253,171,67,176,118,187,66,176,5,203,65,176,171,218,64,176,102,234,63,176,55,250,62,176,31,10,62,176,29,26,61,176,50,42,60,176,93,58,59,176,158,74,58,176,247,90,57,176,102,107,56,176,237,123,55,176,138,140,54,176,63,157,53,176,11,174,52,176,238,190,51,176,233,207,50,176,251,224,49,176,37,242,48,176,103,3,48,176,193,20,47,176,51,38,46,176,189,55,45,176,95,73,44,176,25,91,43,176,236,108,42,176,215,126,41,176,219,144,40,176,248,162,39,176,45,181,
38,176,123,199,37,176,226,217,36,176,99,236,35,176,252,254,34,176,175,17,34,176,123,36,33,176,97,55,32,176,96,74,31,176,121,93,30,176,172,112,29,176,249,131,28,176,96,151,27,176,225,170,26,176,123,190,25,176,49,210,24,176,0,230,23,176,235,249,22,176,239,13,22,176,15,34,21,176,73,54,20,176,158,74,19,176,14,95,18,176,153,115,17,176,63,136,16,176,1,157,15,176,222,177,14,176,214,198,13,176,234,219,12,176,25,241,11,176,101,6,11,176,204,27,10,176,79,49,9,176,238,70,8,176,169,92,7,176,129,114,6,176,117,
136,5,176,133,158,4,176,178,180,3,176,251,202,2,176,97,225,1,176,228,247,0,176,132,14,0,176,129,74,254,175,53,120,252,175,35,166,250,175,75,212,248,175,175,2,247,175,77,49,245,175,39,96,243,175,59,143,241,175,140,190,239,175,24,238,237,175,224,29,236,175,227,77,234,175,36,126,232,175,160,174,230,175,90,223,228,175,80,16,227,175,131,65,225,175,243,114,223,175,161,164,221,175,140,214,219,175,181,8,218,175,28,59,216,175,193,109,214,175,164,160,212,175,198,211,210,175,39,7,209,175,198,58,207,175,164,
110,205,175,194,162,203,175,31,215,201,175,188,11,200,175,152,64,198,175,180,117,196,175,17,171,194,175,174,224,192,175,139,22,191,175,169,76,189,175,8,131,187,175,168,185,185,175,137,240,183,175,171,39,182,175,15,95,180,175,181,150,178,175,157,206,176,175,199,6,175,175,51,63,173,175,226,119,171,175,211,176,169,175,8,234,167,175,127,35,166,175,57,93,164,175,55,151,162,175,121,209,160,175,254,11,159,175,199,70,157,175,212,129,155,175,38,189,153,175,188,248,151,175,150,52,150,175,181,112,148,175,26,
173,146,175,195,233,144,175,178,38,143,175,230,99,141,175,96,161,139,175,32,223,137,175,37,29,136,175,113,91,134,175,4,154,132,175,220,216,130,175,252,23,129,175,197,174,126,175,32,46,123,175,9,174,119,175,130,46,116,175,137,175,112,175,32,49,109,175,71,179,105,175,254,53,102,175,69,185,98,175,30,61,95,175,135,193,91,175,131,70,88,175,16,204,84,175,47,82,81,175,225,216,77,175,37,96,74,175,253,231,70,175,105,112,67,175,104,249,63,175,252,130,60,175,36,13,57,175,225,151,53,175,52,35,50,175,28,175,46,
175,154,59,43,175,174,200,39,175,89,86,36,175,154,228,32,175,115,115,29,175,228,2,26,175,236,146,22,175,141,35,19,175,198,180,15,175,153,70,12,175,4,217,8,175,9,108,5,175,168,255,1,175,194,39,253,174,105,81,246,174,70,124,239,174,90,168,232,174,164,213,225,174,38,4,219,174,225,51,212,174,212,100,205,174,2,151,198,174,105,202,191,174,11,255,184,174,233,52,178,174,3,108,171,174,90,164,164,174,238,221,157,174,193,24,151,174,210,84,144,174,34,146,137,174,179,208,130,174,9,33,120,174,46,163,106,174,215,
39,93,174,5,175,79,174,186,56,66,174,246,196,52,174,187,83,39,174,10,229,25,174,228,120,12,174,151,30,254,173,129,80,227,173,138,135,200,173,179,195,173,173,255,4,147,173,227,150,112,173,23,46,59,173,161,207,5,173,10,247,160,172,0,0,0,0,78,111,32,101,114,114,111,114,46,0,77,97,108,108,111,99,32,102,97,105,108,101,100,46,0,83,82,67,95,83,84,65,84,69,32,112,111,105,110,116,101,114,32,105,115,32,78,85,76,76,46,0,83,82,67,95,68,65,84,65,32,112,111,105,110,116,101,114,32,105,115,32,78,85,76,76,46,0,83,
82,67,95,68,65,84,65,45,62,100,97,116,97,95,111,117,116,32,111,114,32,83,82,67,95,68,65,84,65,45,62,100,97,116,97,95,105,110,32,105,115,32,78,85,76,76,46,0,73,110,116,101,114,110,97,108,32,101,114,114,111,114,46,32,78,111,32,112,114,105,118,97,116,101,32,100,97,116,97,46,0,83,82,67,32,114,97,116,105,111,32,111,117,116,115,105,100,101,32,91,49,47,50,53,54,44,32,50,53,54,93,32,114,97,110,103,101,46,0,115,114,99,95,112,114,111,99,101,115,115,40,41,32,99,97,108,108,101,100,32,119,105,116,104,111,117,
116,32,114,101,115,101,116,32,97,102,116,101,114,32,101,110,100,95,111,102,95,105,110,112,117,116,46,0,73,110,116,101,114,110,97,108,32,101,114,114,111,114,46,32,78,111,32,112,114,111,99,101,115,115,32,112,111,105,110,116,101,114,46,0,73,110,116,101,114,110,97,108,32,101,114,114,111,114,46,32,83,72,73,70,84,95,66,73,84,83,32,116,111,111,32,108,97,114,103,101,46,0,73,110,116,101,114,110,97,108,32,101,114,114,111,114,46,32,70,105,108,116,101,114,32,108,101,110,103,116,104,32,116,111,111,32,108,97,114,
103,101,46,0,66,97,100,32,99,111,110,118,101,114,116,101,114,32,110,117,109,98,101,114,46,0,67,104,97,110,110,101,108,32,99,111,117,110,116,32,109,117,115,116,32,98,101,32,62,61,32,49,46,0,73,110,116,101,114,110,97,108,32,101,114,114,111,114,46,32,66,97,100,32,98,117,102,102,101,114,32,108,101,110,103,116,104,46,32,80,108,101,97,115,101,32,114,101,112,111,114,116,32,116,104,105,115,46,0,73,110,116,101,114,110,97,108,32,101,114,114,111,114,46,32,73,110,112,117,116,32,100,97,116,97,32,47,32,105,110,
116,101,114,110,97,108,32,98,117,102,102,101,114,32,115,105,122,101,32,100,105,102,102,101,114,101,110,99,101,46,32,80,108,101,97,115,101,32,114,101,112,111,114,116,32,116,104,105,115,46,0,73,110,116,101,114,110,97,108,32,101,114,114,111,114,46,32,80,114,105,118,97,116,101,32,112,111,105,110,116,101,114,32,105,115,32,78,85,76,76,46,32,80,108,101,97,115,101,32,114,101,112,111,114,116,32,116,104,105,115,46,0,73,110,112,117,116,32,97,110,100,32,111,117,116,112,117,116,32,100,97,116,97,32,97,114,114,
97,121,115,32,111,118,101,114,108,97,112,46,0,83,117,112,112,108,105,101,100,32,99,97,108,108,98,97,99,107,32,102,117,110,99,116,105,111,110,32,112,111,105,110,116,101,114,32,105,115,32,78,85,76,76,46,0,67,97,108,108,105,110,103,32,109,111,100,101,32,100,105,102,102,101,114,115,32,102,114,111,109,32,105,110,105,116,105,97,108,105,115,97,116,105,111,110,32,109,111,100,101,32,40,105,101,32,112,114,111,99,101,115,115,32,118,32,99,97,108,108,98,97,99,107,41,46,0,67,97,108,108,98,97,99,107,32,102,117,
110,99,116,105,111,110,32,112,111,105,110,116,101,114,32,105,115,32,78,85,76,76,32,105,110,32,115,114,99,95,99,97,108,108,98,97,99,107,95,114,101,97,100,32,40,41,46,0,84,104,105,115,32,99,111,110,118,101,114,116,101,114,32,111,110,108,121,32,97,108,108,111,119,115,32,99,111,110,115,116,97,110,116,32,99,111,110,118,101,114,115,105,111,110,32,114,97,116,105,111,115,46,0,73,110,116,101,114,110,97,108,32,101,114,114,111,114,32,58,32,66,97,100,32,108,101,110,103,116,104,32,105,110,32,112,114,101,112,97,
114,101,95,100,97,116,97,32,40,41,46,0,69,114,114,111,114,32,58,32,83,111,109,101,111,110,101,32,105,115,32,116,114,97,109,112,108,105,110,103,32,111,110,32,109,121,32,105,110,116,101,114,110,97,108,32,115,116,97,116,101,46,0,80,108,97,99,101,104,111,108,100,101,114,46,32,78,111,32,101,114,114,111,114,32,100,101,102,105,110,101,100,32,102,111,114,32,116,104,105,115,32,101,114,114,111,114,32,110,117,109,98,101,114,46,0],"i8",4,y.a+1454080);var La=z,z=z+16;
function Ma(a){b.___errno_location&&(L[b.___errno_location()>>2]=a);return a}function T(a){T.o||(D=va(),T.o=!0,assert(y.b),T.u=y.b,y.b=function(){F("cannot dynamically allocate, sbrk now has control")});var c=D;return 0==a||T.u(a)?c:4294967295}b._memcpy=Na;b._memmove=Oa;b._memset=Pa;za=x=y.p(z);ma=!0;Aa=za+Ba;D=y.p(Aa);
b.s={Math:Math,Int8Array:Int8Array,Int16Array:Int16Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Uint16Array:Uint16Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array,NaN:NaN,Infinity:Infinity};
b.t={abort:F,assert:assert,invoke_vi:function(a,c){try{b.dynCall_vi(a,c)}catch(e){if("number"!==typeof e&&"longjmp"!==e)throw e;Z.setThrew(1,0)}},invoke_iii:function(a,c,e){try{return b.dynCall_iii(a,c,e)}catch(g){if("number"!==typeof g&&"longjmp"!==g)throw g;Z.setThrew(1,0)}},_pthread_self:function(){return 0},_abort:function(){b.abort()},___setErrNo:Ma,_sbrk:T,_time:function(a){var c=Date.now()/1E3|0;a&&(L[a>>2]=c);return c},_emscripten_memcpy_big:function(a,c,e){S.set(S.subarray(c,c+e),a);return a},
_sysconf:function(a){switch(a){case 30:return 4096;case 85:return V/4096;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 79:return 0;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;
case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1E3;case 89:return 700;case 71:return 256;
case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return"object"===typeof navigator?navigator.hardwareConcurrency||1:1}Ma(22);return-1},STACKTOP:x,STACK_MAX:Aa,tempDoublePtr:La,ABORT:G};// EMSCRIPTEN_START_ASM
var Z=(function(global,env,buffer) {
"use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.STACKTOP|0;var j=env.STACK_MAX|0;var k=env.tempDoublePtr|0;var l=env.ABORT|0;var m=0;var n=0;var o=0;var p=0;var q=global.NaN,r=global.Infinity;var s=0,t=0,u=0,v=0,w=0.0,x=0,y=0,z=0,A=0.0;var B=0;var C=0;var D=0;var E=0;var F=0;var G=0;var H=0;var I=0;var J=0;var K=0;var L=global.Math.floor;var M=global.Math.abs;var N=global.Math.sqrt;var O=global.Math.pow;var P=global.Math.cos;var Q=global.Math.sin;var R=global.Math.tan;var S=global.Math.acos;var T=global.Math.asin;var U=global.Math.atan;var V=global.Math.atan2;var W=global.Math.exp;var X=global.Math.log;var Y=global.Math.ceil;var Z=global.Math.imul;var _=global.Math.min;var $=global.Math.clz32;var aa=env.abort;var ba=env.assert;var ca=env.invoke_vi;var da=env.invoke_iii;var ea=env._pthread_self;var fa=env._abort;var ga=env.___setErrNo;var ha=env._sbrk;var ia=env._time;var ja=env._emscripten_memcpy_big;var ka=env._sysconf;var la=0.0;
// EMSCRIPTEN_START_FUNCS
function oa(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+15&-16;return b|0}function pa(){return i|0}function qa(a){a=a|0;i=a}function ra(a,b){a=a|0;b=b|0;i=a;j=b}function sa(a,b){a=a|0;b=b|0;if(!m){m=a;n=b}}function ta(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0]}function ua(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0]}function va(a){a=a|0;B=a}function wa(){return B|0}function xa(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;y=i;i=i+2096|0;r=y+16|0;p=y;q=y+32|0;v=(e|0)==0;if(!v)c[e>>2]=0;if((d|0)<1){if(v){x=0;i=y;return x|0}c[e>>2]=11;x=0;i=y;return x|0}x=Na(64)|0;if(!x){if(v){x=0;i=y;return x|0}c[e>>2]=1;x=0;i=y;return x|0}if(!(c[x+-4>>2]&3)){f=x+28|0;t=f;u=f;f=c[f>>2]|0}else{f=x;g=f+64|0;do{a[f>>0]=0;f=f+1|0}while((f|0)<(g|0));u=x+28|0;t=u;f=0}w=x+20|0;c[w>>2]=d;c[x+24>>2]=555;if(f){Oa(f);c[t>>2]=0;d=c[w>>2]|0};c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;c[r+12>>2]=0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;Sa(q|0,0,2052)|0;a:do if((d|0)<=128){switch(d|0){case 1:{c[x+36>>2]=1;c[x+32>>2]=1;break}case 2:{c[x+36>>2]=2;c[x+32>>2]=2;break}case 4:{c[x+36>>2]=3;c[x+32>>2]=3;break}case 6:{c[x+36>>2]=4;c[x+32>>2]=4;break}default:{c[x+36>>2]=5;c[x+32>>2]=5}}c[x+40>>2]=1;switch(b|0){case 2:{m=128;n=12;o=2462;break}case 1:{m=491;n=9872;o=22436;break}case 0:{m=2381;n=99628;o=340237;break}default:{s=34;break a}}j=+(o|0)*2.5/+(m|0)*256.0;h[k>>3]=j;f=c[k+4>>2]|0;l=f&2146435072;if(!(l>>>0>1126170624|(l|0)==1126170624&0>0)){f=(f|0)<0;j=f?j+-4503599627370496.0+4503599627370496.0:j+4503599627370496.0+-4503599627370496.0;if(j==0.0)j=f?-0.0:0.0}f=~~j;f=Z((f|0)>4096?f:4096,d)|0;g=(f+d<<2)+2120|0;l=Na(g)|0;if(l){if(c[l+-4>>2]&3|0)Sa(l|0,0,g|0)|0;c[l>>2]=40521808;g=l+4|0;c[g>>2]=d;d=l+8|0;c[d>>2]=c[r>>2];c[d+4>>2]=c[r+4>>2];c[d+8>>2]=c[r+8>>2];c[d+12>>2]=c[r+12>>2];d=l+24|0;c[d>>2]=o;c[l+28>>2]=m;m=l+32|0;c[l+48>>2]=n;n=l+52|0;A=p;z=c[A+4>>2]|0;o=n;c[o>>2]=c[A>>2];c[o+4>>2]=z;o=l+64|0;c[o>>2]=f;Qa(l+68|0,q|0,2052)|0;c[r>>2]=-286331154;c[r+4>>2]=-286331154;c[r+8>>2]=-286331154;c[r+12>>2]=-286331154;c[p>>2]=-286331154;c[p+4>>2]=-286331154;c[p+8>>2]=-286331154;Sa(q|0,-18,2052)|0;c[t>>2]=l;c[l+56>>2]=0;c[n>>2]=0;c[l+60>>2]=-1;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;r=c[o>>2]|0;Sa(l+2120|0,0,r<<2|0)|0;Sa(l+2120+(r<<2)|0,-86,c[g>>2]<<2|0)|0;g=0;d=c[d>>2]|0;while(1){f=1<<g;if((f|0)>=(d|0))break;g=g+1|0;d=d|f}if((g+11|0)<=31){if(!x){A=0;i=y;return A|0}}else s=34}else s=34}else s=34;while(0);b:do if((s|0)==34){c:do switch(b|0){case 3:{f=c[t>>2]|0;if(f|0){Oa(f);c[t>>2]=0}f=(c[w>>2]<<2)+32|0;g=Na(f)|0;if(!g){c[t>>2]=g;if((b|0)==4){s=45;break c}else break c}if(c[g+-4>>2]&3|0)Sa(g|0,0,f|0)|0;c[t>>2]=g;c[g>>2]=116853395;c[g+4>>2]=c[w>>2];c[x+36>>2]=6;c[x+32>>2]=6;c[x+40>>2]=2;f=c[u>>2]|0;if(!f)break b;A=c[w>>2]|0;c[f+4>>2]=A;c[f+8>>2]=1;Sa(f+28|0,0,A<<2|0)|0;break b}case 4:{f=c[t>>2]|0;if(!f)s=45;else{Oa(f);c[t>>2]=0;s=45}break}default:{}}while(0);do if((s|0)==45){f=(c[w>>2]<<2)+32|0;g=Na(f)|0;if(!g){c[t>>2]=g;break}if(c[g+-4>>2]&3|0)Sa(g|0,0,f|0)|0;c[t>>2]=g;c[g>>2]=126338300;c[g+4>>2]=c[w>>2];c[x+36>>2]=7;c[x+32>>2]=7;c[x+40>>2]=3;f=c[u>>2]|0;if(!f)break b;A=c[w>>2]|0;c[f+4>>2]=A;c[f+8>>2]=1;Sa(f+28|0,0,A<<2|0)|0;break b}while(0);if(!v)c[e>>2]=10;Oa(x);A=0;i=y;return A|0}while(0);f=c[x+40>>2]|0;if(f|0)ma[f&3](x);c[x+56>>2]=0;c[x+52>>2]=0;c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;c[x+12>>2]=0;c[x+16>>2]=0;A=x;i=y;return A|0}function ya(a){a=a|0;var b=0;if(!a)return 0;b=c[a+28>>2]|0;if(b|0)Oa(b);Oa(a);return 0}function za(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0.0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;if(!a){a=2;return a|0}n=a+32|0;if(!(c[n>>2]|0)){a=7;return a|0}o=a+36|0;if(!(c[o>>2]|0)){a=7;return a|0}if((c[a+24>>2]|0)!=555){a=18;return a|0}if(!b){a=3;return a|0}k=c[b>>2]|0;if(!k){a=4;return a|0}l=c[b+4>>2]|0;if(!l){a=4;return a|0}m=b+32|0;d=+h[m>>3];if(d<.00390625|d>256.0){a=6;return a|0}g=b+8|0;i=c[g>>2]|0;if((i|0)<0){c[g>>2]=0;i=0}g=b+12|0;j=c[g>>2]|0;if((j|0)<0){c[g>>2]=0;j=0}g=c[a+20>>2]|0;if(k>>>0<l>>>0){if((k+((Z(i,g)|0)<<2)|0)>>>0>l>>>0){a=16;return a|0}}else if((l+((Z(j,g)|0)<<2)|0)>>>0>k>>>0){a=16;return a|0}c[b+16>>2]=0;c[b+20>>2]=0;e=+h[a>>3];if(e<.00390625){h[a>>3]=d;f=+h[m>>3]}else{f=d;d=e}if(+M(+(d-f))<1.0e-15){a=na[c[o>>2]&7](a,b)|0;return a|0}else{a=na[c[n>>2]&7](a,b)|0;return a|0}return 0}function Aa(a,b){a=a|0;b=+b;if(a)if((c[a+32>>2]|0)!=0?(c[a+36>>2]|0)!=0:0)if(b<.00390625|b>256.0)a=6;else{h[a>>3]=b;a=0}else a=7;else a=2;return a|0}function Ba(a){a=a|0;do switch(a|0){case 0:{a=1460584;break}case 1:{a=1460594;break}case 2:{a=1460609;break}case 3:{a=1460636;break}case 4:{a=1460662;break}case 5:{a=1460711;break}case 6:{a=1460744;break}case 15:{a=1460782;break}case 7:{a=1460837;break}case 8:{a=1460873;break}case 9:{a=1460911;break}case 10:{a=1460952;break}case 11:{a=1460974;break}case 12:{a=1461002;break}case 13:{a=1461057;break}case 14:{a=1461139;break}case 16:{a=1461200;break}case 17:{a=1461238;break}case 18:{a=1461282;break}case 19:{a=1461353;break}case 20:{a=1461412;break}case 21:{a=1461467;break}case 22:{a=1461515;break}case 23:{a=1461566;break}default:a=0}while(0);return a|0}function Ca(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,i=0,j=0,l=0,m=0,n=0.0,o=0,p=0,q=0.0,r=0.0,s=0.0,t=0,u=0,v=0,w=0.0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0.0,H=0.0,I=0,J=0,K=0,L=0,N=0,O=0,P=0,Q=0.0;D=c[a+28>>2]|0;if(!D){O=5;return O|0}N=D+4|0;j=c[N>>2]|0;c[D+8>>2]=Z(c[b+8>>2]|0,j)|0;m=Z(c[b+12>>2]|0,j)|0;E=D+16|0;c[E>>2]=m;F=D+20|0;c[F>>2]=0;I=D+12|0;c[I>>2]=0;q=+h[a>>3];if(q<.00390625|q>256.0){O=22;return O|0}J=D+24|0;K=D+28|0;e=(+(c[J>>2]|0)+2.0)/+(c[K>>2]|0);L=b+32|0;f=+h[L>>3];d=q<f;if((d?q:f)<1.0)e=e/(d?q:f);h[k>>3]=e;d=c[k+4>>2]|0;C=d&2146435072;if(!(C>>>0>1126170624|(C|0)==1126170624&0>0)){d=(d|0)<0;e=d?e+-4503599627370496.0+4503599627370496.0:e+4503599627370496.0+-4503599627370496.0;if(e==0.0)e=d?-0.0:0.0}B=Z(j,~~e+1|0)|0;C=a+8|0;f=+h[C>>3];h[k>>3]=f;d=c[k+4>>2]|0;A=d&2146435072;if(!(A>>>0>1126170624|(A|0)==1126170624&0>0)){d=(d|0)<0;e=d?f+-4503599627370496.0+4503599627370496.0:f+4503599627370496.0+-4503599627370496.0;if(e==0.0)e=d?-0.0:0.0}else e=f;n=f-+(~~e|0);n=n<0.0?n+1.0:n;A=D+52|0;i=c[A>>2]|0;e=f-n;h[k>>3]=e;d=c[k+4>>2]|0;z=d&2146435072;if(!(z>>>0>1126170624|(z|0)==1126170624&0>0)){d=(d|0)<0;e=d?e+-4503599627370496.0+4503599627370496.0:e+4503599627370496.0+-4503599627370496.0;if(e==0.0)e=d?-0.0:0.0}d=i+(Z(j,~~e)|0)|0;v=D+64|0;j=c[v>>2]|0;d=(d|0)%(j|0)|0;c[A>>2]=d;w=1.0/q+1.0e-20;x=D+56|0;y=D+60|0;z=D+48|0;t=b+4|0;u=a+16|0;l=0;i=m;e=q;while(1){if((l|0)>=(i|0))break;if((((c[x>>2]|0)-d+j|0)%(j|0)|0|0)<=(B|0)){d=Da(D,b,B)|0;c[u>>2]=d;if(d|0){O=42;break}d=c[A>>2]|0;p=c[v>>2]|0;if((((c[x>>2]|0)-d+p|0)%(p|0)|0|0)<=(B|0))break}p=c[y>>2]|0;if((p|0)>-1?+(d|0)+n+w>+(p|0):0)break;i=c[E>>2]|0;if((i|0)>0?(G=+h[a>>3],H=+h[L>>3],+M(+(G-H))>1.0e-10):0)s=G+ +(c[F>>2]|0)*(H-G)/+(i|0);else s=e;q=+(c[K>>2]|0);r=q*(s<1.0?s:1.0);e=r*4096.0;h[k>>3]=e;i=c[k+4>>2]|0;p=i&2146435072;if(!(p>>>0>1126170624|(p|0)==1126170624&0>0)){i=(i|0)<0;e=i?e+-4503599627370496.0+4503599627370496.0:e+4503599627370496.0+-4503599627370496.0;if(e==0.0)e=i?-0.0:0.0}p=~~e;e=n*r*4096.0;h[k>>3]=e;i=c[k+4>>2]|0;o=i&2146435072;if(!(o>>>0>1126170624|(o|0)==1126170624&0>0)){i=(i|0)<0;e=i?e+-4503599627370496.0+4503599627370496.0:e+4503599627370496.0+-4503599627370496.0;if(e==0.0)e=i?-0.0:0.0}i=~~e;j=c[J>>2]<<12;l=(j-i|0)/(p|0)|0;m=(Z(l,p)|0)+i|0;o=c[z>>2]|0;l=d-l|0;f=0.0;while(1){P=m>>12;e=+g[o+(P<<2)>>2];f=f+(e+ +(m&4095|0)*.000244140625*(+g[o+(P+1<<2)>>2]-e))*+g[D+2120+(l<<2)>>2];m=m-p|0;if((m|0)<=-1)break;else l=l+1|0}P=p-i|0;i=(j-P|0)/(p|0)|0;d=d+1+i|0;i=P+(Z(i,p)|0)|0;e=0.0;while(1){P=i>>12;Q=+g[o+(P<<2)>>2];e=e+(Q+ +(i&4095|0)*.000244140625*(+g[o+(P+1<<2)>>2]-Q))*+g[D+2120+(d<<2)>>2];i=i-p|0;if((i|0)<=0)break;else d=d+-1|0}g[(c[t>>2]|0)+(c[F>>2]<<2)>>2]=r/q*(f+e);l=(c[F>>2]|0)+1|0;c[F>>2]=l;f=n+1.0/s;h[k>>3]=f;d=c[k+4>>2]|0;P=d&2146435072;if(!(P>>>0>1126170624|(P|0)==1126170624&0>0)){d=(d|0)<0;e=d?f+-4503599627370496.0+4503599627370496.0:f+4503599627370496.0+-4503599627370496.0;if(e==0.0)e=d?-0.0:0.0}else e=f;n=f-+(~~e|0);n=n<0.0?n+1.0:n;i=c[A>>2]|0;j=c[N>>2]|0;e=f-n;h[k>>3]=e;d=c[k+4>>2]|0;P=d&2146435072;if(!(P>>>0>1126170624|(P|0)==1126170624&0>0)){d=(d|0)<0;e=d?e+-4503599627370496.0+4503599627370496.0:e+4503599627370496.0+-4503599627370496.0;if(e==0.0)e=d?-0.0:0.0}d=i+(Z(j,~~e)|0)|0;j=c[v>>2]|0;d=(d|0)%(j|0)|0;c[A>>2]=d;i=c[E>>2]|0;e=s}if((O|0)==42)return d|0;h[C>>3]=n;h[a>>3]=e;c[b+16>>2]=(c[I>>2]|0)/(c[N>>2]|0)|0;c[b+20>>2]=(c[F>>2]|0)/(c[N>>2]|0)|0;P=0;return P|0}function Da(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=a+60|0;if((c[n>>2]|0)>-1){d=0;return d|0}m=a+52|0;g=c[m>>2]|0;do if(g){e=a+56|0;f=c[e>>2]|0;h=c[a+64>>2]|0;if((f+d+(c[a+4>>2]|0)|0)<(h|0)){e=h-g|0;e=(e|0)>(d|0)?e-d|0:0;break}else{f=f-g+d|0;Ra(a+2120|0,a+2120+(g<<2)+(0-d<<2)|0,f<<2|0)|0;c[m>>2]=d;c[e>>2]=f;e=h-d|0;e=(e|0)>(d|0)?e-d|0:0;break}}else{e=c[a+64>>2]|0;c[a+56>>2]=d;c[m>>2]=d;f=d;h=e;e=e-(d<<1)|0}while(0);j=a+8|0;k=a+12|0;g=c[k>>2]|0;i=(c[j>>2]|0)-g|0;i=(i|0)<(e|0)?i:e;i=i-((i|0)%(c[a+4>>2]|0)|0)|0;if((i|0)<0){d=21;return d|0}l=a+56|0;if((f+i|0)>(h|0)){d=21;return d|0}Qa(a+2120+(f<<2)|0,(c[b>>2]|0)+(g<<2)|0,i<<2|0)|0;e=(c[l>>2]|0)+i|0;c[l>>2]=e;i=(c[k>>2]|0)+i|0;c[k>>2]=i;if((i|0)!=(c[j>>2]|0)){d=0;return d|0}f=c[m>>2]|0;g=e-f|0;if((g|0)>=(d<<1|0)){d=0;return d|0}if(!(c[b+24>>2]|0)){d=0;return d|0}h=c[a+64>>2]|0;i=d+5|0;if((h-e|0)<(i|0)){e=g+d|0;Ra(a+2120|0,a+2120+(f<<2)+(0-d<<2)|0,e<<2|0)|0;c[m>>2]=d;c[l>>2]=e}c[n>>2]=e;d=(d|0)<-5|(e+i|0)>(h|0)?h-e|0:i;Sa(a+2120+(e<<2)|0,0,d<<2|0)|0;c[l>>2]=(c[l>>2]|0)+d;d=0;return d|0}function Ea(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,i=0,j=0,l=0,m=0.0,n=0,o=0,p=0.0,q=0,r=0,s=0,t=0.0,u=0.0,v=0,w=0.0,x=0,y=0,z=0,A=0.0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0.0,L=0.0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0.0;H=c[a+28>>2]|0;if(!H){S=5;return S|0}R=H+4|0;j=c[R>>2]|0;c[H+8>>2]=Z(c[b+8>>2]|0,j)|0;n=Z(c[b+12>>2]|0,j)|0;I=H+16|0;c[I>>2]=n;J=H+20|0;c[J>>2]=0;N=H+12|0;c[N>>2]=0;p=+h[a>>3];if(p<.00390625|p>256.0){S=22;return S|0}O=H+24|0;P=H+28|0;e=(+(c[O>>2]|0)+2.0)/+(c[P>>2]|0);Q=b+32|0;f=+h[Q>>3];d=p<f;if((d?p:f)<1.0)e=e/(d?p:f);h[k>>3]=e;d=c[k+4>>2]|0;G=d&2146435072;if(!(G>>>0>1126170624|(G|0)==1126170624&0>0)){d=(d|0)<0;e=d?e+-4503599627370496.0+4503599627370496.0:e+4503599627370496.0+-4503599627370496.0;if(e==0.0)e=d?-0.0:0.0}F=Z(j,~~e+1|0)|0;G=a+8|0;f=+h[G>>3];h[k>>3]=f;d=c[k+4>>2]|0;E=d&2146435072;if(!(E>>>0>1126170624|(E|0)==1126170624&0>0)){d=(d|0)<0;e=d?f+-4503599627370496.0+4503599627370496.0:f+4503599627370496.0+-4503599627370496.0;if(e==0.0)e=d?-0.0:0.0}else e=f;m=f-+(~~e|0);m=m<0.0?m+1.0:m;E=H+52|0;i=c[E>>2]|0;e=f-m;h[k>>3]=e;d=c[k+4>>2]|0;D=d&2146435072;if(!(D>>>0>1126170624|(D|0)==1126170624&0>0)){d=(d|0)<0;e=d?e+-4503599627370496.0+4503599627370496.0:e+4503599627370496.0+-4503599627370496.0;if(e==0.0)e=d?-0.0:0.0}d=i+(Z(j,~~e)|0)|0;z=H+64|0;j=c[z>>2]|0;d=(d|0)%(j|0)|0;c[E>>2]=d;A=1.0/p+1.0e-20;B=H+56|0;C=H+60|0;D=b+4|0;x=H+48|0;y=a+16|0;l=0;i=n;e=p;while(1){if((l|0)>=(i|0))break;if((((c[B>>2]|0)-d+j|0)%(j|0)|0|0)<=(F|0)){d=Da(H,b,F)|0;c[y>>2]=d;if(d|0){S=42;break}d=c[E>>2]|0;v=c[z>>2]|0;if((((c[B>>2]|0)-d+v|0)%(v|0)|0|0)<=(F|0))break}v=c[C>>2]|0;if((v|0)>-1?+(d|0)+m+A>=+(v|0):0)break;i=c[I>>2]|0;if((i|0)>0?(K=+h[a>>3],L=+h[Q>>3],+M(+(K-L))>1.0e-10):0)w=K+ +(c[J>>2]|0)*(L-K)/+(i|0);else w=e;f=+(c[P>>2]|0);p=f*(w<1.0?w:1.0);e=p*4096.0;h[k>>3]=e;i=c[k+4>>2]|0;v=i&2146435072;if(!(v>>>0>1126170624|(v|0)==1126170624&0>0)){i=(i|0)<0;e=i?e+-4503599627370496.0+4503599627370496.0:e+4503599627370496.0+-4503599627370496.0;if(e==0.0)e=i?-0.0:0.0}v=~~e;e=m*p*4096.0;h[k>>3]=e;i=c[k+4>>2]|0;s=i&2146435072;if(!(s>>>0>1126170624|(s|0)==1126170624&0>0)){i=(i|0)<0;e=i?e+-4503599627370496.0+4503599627370496.0:e+4503599627370496.0+-4503599627370496.0;if(e==0.0)e=i?-0.0:0.0}l=~~e;q=c[D>>2]|0;r=c[J>>2]|0;n=c[O>>2]<<12;i=(n-l|0)/(v|0)|0;j=(Z(i,v)|0)+l|0;o=c[R>>2]|0;i=d-(Z(o,i)|0)|0;s=c[x>>2]|0;t=0.0;u=0.0;while(1){T=j>>12;e=+g[s+(T<<2)>>2];e=e+ +(j&4095|0)*.000244140625*(+g[s+(T+1<<2)>>2]-e);t=t+e*+g[H+2120+(i<<2)>>2];u=u+e*+g[H+2120+(i+1<<2)>>2];j=j-v|0;if((j|0)<=-1)break;else i=i+2|0}p=p/f;T=v-l|0;i=(n-T|0)/(v|0)|0;d=d+(Z(o,i+1|0)|0)|0;i=T+(Z(i,v)|0)|0;e=0.0;f=0.0;while(1){T=i>>12;U=+g[s+(T<<2)>>2];U=U+ +(i&4095|0)*.000244140625*(+g[s+(T+1<<2)>>2]-U);e=e+U*+g[H+2120+(d<<2)>>2];f=f+U*+g[H+2120+(d+1<<2)>>2];i=i-v|0;if((i|0)<=0)break;else d=d+-2|0}l=q+(r<<2)|0;g[l>>2]=(t+e)*p;g[l+4>>2]=(u+f)*p;l=(c[J>>2]|0)+2|0;c[J>>2]=l;f=m+1.0/w;h[k>>3]=f;d=c[k+4>>2]|0;T=d&2146435072;if(!(T>>>0>1126170624|(T|0)==1126170624&0>0)){d=(d|0)<0;e=d?f+-4503599627370496.0+4503599627370496.0:f+4503599627370496.0+-4503599627370496.0;if(e==0.0)e=d?-0.0:0.0}else e=f;m=f-+(~~e|0);m=m<0.0?m+1.0:m;i=c[E>>2]|0;j=c[R>>2]|0;e=f-m;h[k>>3]=e;d=c[k+4>>2]|0;T=d&2146435072;if(!(T>>>0>1126170624|(T|0)==1126170624&0>0)){d=(d|0)<0;e=d?e+-4503599627370496.0+4503599627370496.0:e+4503599627370496.0+-4503599627370496.0;if(e==0.0)e=d?-0.0:0.0}d=i+(Z(j,~~e)|0)|0;j=c[z>>2]|0;d=(d|0)%(j|0)|0;c[E>>2]=d;i=c[I>>2]|0;e=w}if((S|0)==42)return d|0;h[G>>3]=m;h[a>>3]=e;c[b+16>>2]=(c[N>>2]|0)/(c[R>>2]|0)|0;c[b+20>>2]=(c[J>>2]|0)/(c[R>>2]|0)|0;T=0;return T|0}function Fa(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,i=0,j=0,l=0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0.0,s=0,t=0,u=0,v=0.0,w=0.0,x=0.0,y=0.0,z=0,A=0.0,B=0,C=0,D=0,E=0.0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,N=0,O=0,P=0.0,Q=0.0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0.0;L=c[a+28>>2]|0;if(!L){W=5;return W|0}V=L+4|0;j=c[V>>2]|0;c[L+8>>2]=Z(c[b+8>>2]|0,j)|0;p=Z(c[b+12>>2]|0,j)|0;N=L+16|0;c[N>>2]=p;O=L+20|0;c[O>>2]=0;R=L+12|0;c[R>>2]=0;n=+h[a>>3];if(n<.00390625|n>256.0){W=22;return W|0}S=L+24|0;T=L+28|0;e=(+(c[S>>2]|0)+2.0)/+(c[T>>2]|0);U=b+32|0;f=+h[U>>3];d=n<f;if((d?n:f)<1.0)e=e/(d?n:f);h[k>>3]=e;d=c[k+4>>2]|0;K=d&2146435072;if(!(K>>>0>1126170624|(K|0)==1126170624&0>0)){d=(d|0)<0;e=d?e+-4503599627370496.0+4503599627370496.0:e+4503599627370496.0+-4503599627370496.0;if(e==0.0)e=d?-0.0:0.0}J=Z(j,~~e+1|0)|0;K=a+8|0;f=+h[K>>3];h[k>>3]=f;d=c[k+4>>2]|0;I=d&2146435072;if(!(I>>>0>1126170624|(I|0)==1126170624&0>0)){d=(d|0)<0;e=d?f+-4503599627370496.0+4503599627370496.0:f+4503599627370496.0+-4503599627370496.0;if(e==0.0)e=d?-0.0:0.0}else e=f;m=f-+(~~e|0);m=m<0.0?m+1.0:m;I=L+52|0;i=c[I>>2]|0;e=f-m;h[k>>3]=e;d=c[k+4>>2]|0;H=d&2146435072;if(!(H>>>0>1126170624|(H|0)==1126170624&0>0)){d=(d|0)<0;e=d?e+-4503599627370496.0+4503599627370496.0:e+4503599627370496.0+-4503599627370496.0;if(e==0.0)e=d?-0.0:0.0}d=i+(Z(j,~~e)|0)|0;D=L+64|0;j=c[D>>2]|0;d=(d|0)%(j|0)|0;c[I>>2]=d;E=1.0/n+1.0e-20;F=L+56|0;G=L+60|0;H=b+4|0;B=L+48|0;C=a+16|0;l=0;i=p;e=n;while(1){if((l|0)>=(i|0))break;if((((c[F>>2]|0)-d+j|0)%(j|0)|0|0)<=(J|0)){d=Da(L,b,J)|0;c[C>>2]=d;if(d|0){W=42;break}d=c[I>>2]|0;z=c[D>>2]|0;if((((c[F>>2]|0)-d+z|0)%(z|0)|0|0)<=(J|0))break}z=c[G>>2]|0;if((z|0)>-1?+(d|0)+m+E>=+(z|0):0)break;i=c[N>>2]|0;if((i|0)>0?(P=+h[a>>3],Q=+h[U>>3],+M(+(P-Q))>1.0e-10):0)A=P+ +(c[O>>2]|0)*(Q-P)/+(i|0);else A=e;f=+(c[T>>2]|0);n=f*(A<1.0?A:1.0);e=n*4096.0;h[k>>3]=e;i=c[k+4>>2]|0;z=i&2146435072;if(!(z>>>0>1126170624|(z|0)==1126170624&0>0)){i=(i|0)<0;e=i?e+-4503599627370496.0+4503599627370496.0:e+4503599627370496.0+-4503599627370496.0;if(e==0.0)e=i?-0.0:0.0}z=~~e;e=m*n*4096.0;h[k>>3]=e;i=c[k+4>>2]|0;u=i&2146435072;if(!(u>>>0>1126170624|(u|0)==1126170624&0>0)){i=(i|0)<0;e=i?e+-4503599627370496.0+4503599627370496.0:e+4503599627370496.0+-4503599627370496.0;if(e==0.0)e=i?-0.0:0.0}l=~~e;s=c[H>>2]|0;t=c[O>>2]|0;p=c[S>>2]<<12;i=(p-l|0)/(z|0)|0;j=(Z(i,z)|0)+l|0;q=c[V>>2]|0;i=d-(Z(q,i)|0)|0;u=c[B>>2]|0;v=0.0;w=0.0;x=0.0;y=0.0;while(1){X=j>>12;r=+g[u+(X<<2)>>2];r=r+ +(j&4095|0)*.000244140625*(+g[u+(X+1<<2)>>2]-r);v=v+r*+g[L+2120+(i<<2)>>2];y=y+r*+g[L+2120+(i+1<<2)>>2];w=w+r*+g[L+2120+(i+2<<2)>>2];x=x+r*+g[L+2120+(i+3<<2)>>2];j=j-z|0;if((j|0)<=-1)break;else i=i+4|0}r=n/f;X=z-l|0;i=(p-X|0)/(z|0)|0;d=d+(Z(q,i+1|0)|0)|0;i=X+(Z(i,z)|0)|0;e=0.0;f=0.0;n=0.0;o=0.0;while(1){X=i>>12;Y=+g[u+(X<<2)>>2];Y=Y+ +(i&4095|0)*.000244140625*(+g[u+(X+1<<2)>>2]-Y);e=e+Y*+g[L+2120+(d<<2)>>2];o=o+Y*+g[L+2120+(d+1<<2)>>2];f=f+Y*+g[L+2120+(d+2<<2)>>2];n=n+Y*+g[L+2120+(d+3<<2)>>2];i=i-z|0;if((i|0)<=0)break;else d=d+-4|0}l=s+(t<<2)|0;g[l>>2]=(v+e)*r;g[l+4>>2]=(y+o)*r;g[l+8>>2]=(w+f)*r;g[l+12>>2]=(x+n)*r;l=(c[O>>2]|0)+4|0;c[O>>2]=l;f=m+1.0/A;h[k>>3]=f;d=c[k+4>>2]|0;X=d&2146435072;if(!(X>>>0>1126170624|(X|0)==1126170624&0>0)){d=(d|0)<0;e=d?f+-4503599627370496.0+4503599627370496.0:f+4503599627370496.0+-4503599627370496.0;if(e==0.0)e=d?-0.0:0.0}else e=f;m=f-+(~~e|0);m=m<0.0?m+1.0:m;i=c[I>>2]|0;j=c[V>>2]|0;e=f-m;h[k>>3]=e;d=c[k+4>>2]|0;X=d&2146435072;if(!(X>>>0>1126170624|(X|0)==1126170624&0>0)){d=(d|0)<0;e=d?e+-4503599627370496.0+4503599627370496.0:e+4503599627370496.0+-4503599627370496.0;if(e==0.0)e=d?-0.0:0.0}d=i+(Z(j,~~e)|0)|0;j=c[D>>2]|0;d=(d|0)%(j|0)|0;c[I>>2]=d;i=c[N>>2]|0;e=A}if((W|0)==42)return d|0;h[K>>3]=m;h[a>>3]=e;c[b+16>>2]=(c[R>>2]|0)/(c[V>>2]|0)|0;c[b+20>>2]=(c[O>>2]|0)/(c[V>>2]|0)|0;X=0;return X|0}function Ga(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,i=0,j=0,l=0,m=0.0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0,v=0,w=0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0,E=0.0,F=0,G=0,H=0,I=0.0,J=0,K=0,L=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0.0,U=0.0,V=0,W=0,X=0,Y=0,_=0,$=0,aa=0,ba=0.0;Q=c[a+28>>2]|0;if(!Q){$=5;return $|0}_=Q+4|0;j=c[_>>2]|0;c[Q+8>>2]=Z(c[b+8>>2]|0,j)|0;n=Z(c[b+12>>2]|0,j)|0;R=Q+16|0;c[R>>2]=n;S=Q+20|0;c[S>>2]=0;V=Q+12|0;c[V>>2]=0;p=+h[a>>3];if(p<.00390625|p>256.0){$=22;return $|0}W=Q+24|0;X=Q+28|0;e=(+(c[W>>2]|0)+2.0)/+(c[X>>2]|0);Y=b+32|0;f=+h[Y>>3];d=p<f;if((d?p:f)<1.0)e=e/(d?p:f);h[k>>3]=e;d=c[k+4>>2]|0;P=d&2146435072;if(!(P>>>0>1126170624|(P|0)==1126170624&0>0)){d=(d|0)<0;e=d?e+-4503599627370496.0+4503599627370496.0:e+4503599627370496.0+-4503599627370496.0;if(e==0.0)e=d?-0.0:0.0}O=Z(j,~~e+1|0)|0;P=a+8|0;f=+h[P>>3];h[k>>3]=f;d=c[k+4>>2]|0;N=d&2146435072;if(!(N>>>0>1126170624|(N|0)==1126170624&0>0)){d=(d|0)<0;e=d?f+-4503599627370496.0+4503599627370496.0:f+4503599627370496.0+-4503599627370496.0;if(e==0.0)e=d?-0.0:0.0}else e=f;m=f-+(~~e|0);m=m<0.0?m+1.0:m;N=Q+52|0;i=c[N>>2]|0;e=f-m;h[k>>3]=e;d=c[k+4>>2]|0;L=d&2146435072;if(!(L>>>0>1126170624|(L|0)==1126170624&0>0)){d=(d|0)<0;e=d?e+-4503599627370496.0+4503599627370496.0:e+4503599627370496.0+-4503599627370496.0;if(e==0.0)e=d?-0.0:0.0}d=i+(Z(j,~~e)|0)|0;H=Q+64|0;j=c[H>>2]|0;d=(d|0)%(j|0)|0;c[N>>2]=d;I=1.0/p+1.0e-20;J=Q+56|0;K=Q+60|0;L=b+4|0;F=Q+48|0;G=a+16|0;l=0;i=n;e=p;while(1){if((l|0)>=(i|0))break;if((((c[J>>2]|0)-d+j|0)%(j|0)|0|0)<=(O|0)){d=Da(Q,b,O)|0;c[G>>2]=d;if(d|0){$=42;break}d=c[N>>2]|0;D=c[H>>2]|0;if((((c[J>>2]|0)-d+D|0)%(D|0)|0|0)<=(O|0))break}D=c[K>>2]|0;if((D|0)>-1?+(d|0)+m+I>=+(D|0):0)break;i=c[R>>2]|0;if((i|0)>0?(T=+h[a>>3],U=+h[Y>>3],+M(+(T-U))>1.0e-10):0)E=T+ +(c[S>>2]|0)*(U-T)/+(i|0);else E=e;f=+(c[X>>2]|0);p=f*(E<1.0?E:1.0);e=p*4096.0;h[k>>3]=e;i=c[k+4>>2]|0;D=i&2146435072;if(!(D>>>0>1126170624|(D|0)==1126170624&0>0)){i=(i|0)<0;e=i?e+-4503599627370496.0+4503599627370496.0:e+4503599627370496.0+-4503599627370496.0;if(e==0.0)e=i?-0.0:0.0}D=~~e;e=m*p*4096.0;h[k>>3]=e;i=c[k+4>>2]|0;w=i&2146435072;if(!(w>>>0>1126170624|(w|0)==1126170624&0>0)){i=(i|0)<0;e=i?e+-4503599627370496.0+4503599627370496.0:e+4503599627370496.0+-4503599627370496.0;if(e==0.0)e=i?-0.0:0.0}l=~~e;u=c[L>>2]|0;v=c[S>>2]|0;n=c[W>>2]<<12;i=(n-l|0)/(D|0)|0;j=(Z(i,D)|0)+l|0;o=c[_>>2]|0;i=d-(Z(o,i)|0)|0;w=c[F>>2]|0;x=0.0;y=0.0;z=0.0;A=0.0;B=0.0;C=0.0;while(1){aa=j>>12;t=+g[w+(aa<<2)>>2];t=t+ +(j&4095|0)*.000244140625*(+g[w+(aa+1<<2)>>2]-t);x=x+t*+g[Q+2120+(i<<2)>>2];C=C+t*+g[Q+2120+(i+1<<2)>>2];y=y+t*+g[Q+2120+(i+2<<2)>>2];z=z+t*+g[Q+2120+(i+3<<2)>>2];A=A+t*+g[Q+2120+(i+4<<2)>>2];B=B+t*+g[Q+2120+(i+5<<2)>>2];j=j-D|0;if((j|0)<=-1)break;else i=i+6|0}t=p/f;aa=D-l|0;i=(n-aa|0)/(D|0)|0;d=d+(Z(o,i+1|0)|0)|0;i=aa+(Z(i,D)|0)|0;e=0.0;f=0.0;p=0.0;q=0.0;r=0.0;s=0.0;while(1){aa=i>>12;ba=+g[w+(aa<<2)>>2];ba=ba+ +(i&4095|0)*.000244140625*(+g[w+(aa+1<<2)>>2]-ba);e=e+ba*+g[Q+2120+(d<<2)>>2];s=s+ba*+g[Q+2120+(d+1<<2)>>2];f=f+ba*+g[Q+2120+(d+2<<2)>>2];p=p+ba*+g[Q+2120+(d+3<<2)>>2];q=q+ba*+g[Q+2120+(d+4<<2)>>2];r=r+ba*+g[Q+2120+(d+5<<2)>>2];i=i-D|0;if((i|0)<=0)break;else d=d+-6|0}l=u+(v<<2)|0;g[l>>2]=(x+e)*t;g[l+4>>2]=(C+s)*t;g[l+8>>2]=(y+f)*t;g[l+12>>2]=(z+p)*t;g[l+16>>2]=(A+q)*t;g[l+20>>2]=(B+r)*t;l=(c[S>>2]|0)+6|0;c[S>>2]=l;f=m+1.0/E;h[k>>3]=f;d=c[k+4>>2]|0;aa=d&2146435072;if(!(aa>>>0>1126170624|(aa|0)==1126170624&0>0)){d=(d|0)<0;e=d?f+-4503599627370496.0+4503599627370496.0:f+4503599627370496.0+-4503599627370496.0;if(e==0.0)e=d?-0.0:0.0}else e=f;m=f-+(~~e|0);m=m<0.0?m+1.0:m;i=c[N>>2]|0;j=c[_>>2]|0;e=f-m;h[k>>3]=e;d=c[k+4>>2]|0;aa=d&2146435072;if(!(aa>>>0>1126170624|(aa|0)==1126170624&0>0)){d=(d|0)<0;e=d?e+-4503599627370496.0+4503599627370496.0:e+4503599627370496.0+-4503599627370496.0;if(e==0.0)e=d?-0.0:0.0}d=i+(Z(j,~~e)|0)|0;j=c[H>>2]|0;d=(d|0)%(j|0)|0;c[N>>2]=d;i=c[R>>2]|0;e=E}if(($|0)==42)return d|0;h[P>>3]=m;h[a>>3]=e;c[b+16>>2]=(c[V>>2]|0)/(c[_>>2]|0)|0;c[b+20>>2]=(c[S>>2]|0)/(c[_>>2]|0)|0;aa=0;return aa|0}function Ha(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,i=0,j=0,l=0,m=0.0,n=0,o=0,p=0,q=0.0,r=0,s=0,t=0,u=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0.0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,N=0.0,O=0.0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0;J=c[a+28>>2]|0;if(!J){U=5;return U|0}T=J+4|0;j=c[T>>2]|0;c[J+8>>2]=Z(c[b+8>>2]|0,j)|0;n=Z(c[b+12>>2]|0,j)|0;K=J+16|0;c[K>>2]=n;L=J+20|0;c[L>>2]=0;P=J+12|0;c[P>>2]=0;q=+h[a>>3];if(q<.00390625|q>256.0){U=22;return U|0}Q=J+24|0;R=J+28|0;e=(+(c[Q>>2]|0)+2.0)/+(c[R>>2]|0);S=b+32|0;f=+h[S>>3];d=q<f;if((d?q:f)<1.0)e=e/(d?q:f);h[k>>3]=e;d=c[k+4>>2]|0;I=d&2146435072;if(!(I>>>0>1126170624|(I|0)==1126170624&0>0)){d=(d|0)<0;e=d?e+-4503599627370496.0+4503599627370496.0:e+4503599627370496.0+-4503599627370496.0;if(e==0.0)e=d?-0.0:0.0}H=Z(j,~~e+1|0)|0;I=a+8|0;f=+h[I>>3];h[k>>3]=f;d=c[k+4>>2]|0;G=d&2146435072;if(!(G>>>0>1126170624|(G|0)==1126170624&0>0)){d=(d|0)<0;e=d?f+-4503599627370496.0+4503599627370496.0:f+4503599627370496.0+-4503599627370496.0;if(e==0.0)e=d?-0.0:0.0}else e=f;m=f-+(~~e|0);m=m<0.0?m+1.0:m;G=J+52|0;i=c[G>>2]|0;e=f-m;h[k>>3]=e;d=c[k+4>>2]|0;F=d&2146435072;if(!(F>>>0>1126170624|(F|0)==1126170624&0>0)){d=(d|0)<0;e=d?e+-4503599627370496.0+4503599627370496.0:e+4503599627370496.0+-4503599627370496.0;if(e==0.0)e=d?-0.0:0.0}d=i+(Z(j,~~e)|0)|0;B=J+64|0;j=c[B>>2]|0;d=(d|0)%(j|0)|0;c[G>>2]=d;C=1.0/q+1.0e-20;D=J+56|0;E=J+60|0;F=b+4|0;w=J+72|0;x=J+1096|0;y=J+48|0;z=a+20|0;A=a+16|0;l=0;i=n;e=q;while(1){if((l|0)>=(i|0))break;if((((c[D>>2]|0)-d+j|0)%(j|0)|0|0)<=(H|0)){d=Da(J,b,H)|0;c[A>>2]=d;if(d|0){U=72;break}d=c[G>>2]|0;u=c[B>>2]|0;if((((c[D>>2]|0)-d+u|0)%(u|0)|0|0)<=(H|0))break}u=c[E>>2]|0;if((u|0)>-1?+(d|0)+m+C>=+(u|0):0)break;i=c[K>>2]|0;if((i|0)>0?(N=+h[a>>3],O=+h[S>>3],+M(+(N-O))>1.0e-10):0)v=N+ +(c[L>>2]|0)*(O-N)/+(i|0);else v=e;f=+(c[R>>2]|0);q=f*(v<1.0?v:1.0);e=q*4096.0;h[k>>3]=e;i=c[k+4>>2]|0;u=i&2146435072;if(!(u>>>0>1126170624|(u|0)==1126170624&0>0)){i=(i|0)<0;e=i?e+-4503599627370496.0+4503599627370496.0:e+4503599627370496.0+-4503599627370496.0;if(e==0.0)e=i?-0.0:0.0}u=~~e;e=m*q*4096.0;h[k>>3]=e;i=c[k+4>>2]|0;t=i&2146435072;if(!(t>>>0>1126170624|(t|0)==1126170624&0>0)){i=(i|0)<0;e=i?e+-4503599627370496.0+4503599627370496.0:e+4503599627370496.0+-4503599627370496.0;if(e==0.0)e=i?-0.0:0.0}o=~~e;t=c[T>>2]|0;r=c[F>>2]|0;s=c[L>>2]|0;p=c[Q>>2]<<12;j=(p-o|0)/(u|0)|0;l=(Z(j,u)|0)+o|0;j=d-(Z(j,t)|0)|0;n=t<<3;Sa(w|0,0,n|0)|0;while(1){d=l>>12;i=c[y>>2]|0;e=+g[i+(d<<2)>>2];e=e+ +(l&4095|0)*.000244140625*(+g[i+(d+1<<2)>>2]-e);d=t;do{switch((d|0)%8|0|0){case 7:{U=34;break}case 6:{U=35;break}case 5:{U=36;break}case 4:{U=37;break}case 3:{U=38;break}case 2:{U=39;break}case 1:{i=d;break}default:{d=d+-1|0;U=J+72+(d<<3)|0;h[U>>3]=+h[U>>3]+e*+g[J+2120+(j+d<<2)>>2];U=34}}if((U|0)==34){d=d+-1|0;i=J+72+(d<<3)|0;h[i>>3]=+h[i>>3]+e*+g[J+2120+(j+d<<2)>>2];U=35}if((U|0)==35){d=d+-1|0;i=J+72+(d<<3)|0;h[i>>3]=+h[i>>3]+e*+g[J+2120+(j+d<<2)>>2];U=36}if((U|0)==36){d=d+-1|0;i=J+72+(d<<3)|0;h[i>>3]=+h[i>>3]+e*+g[J+2120+(j+d<<2)>>2];U=37}if((U|0)==37){d=d+-1|0;i=J+72+(d<<3)|0;h[i>>3]=+h[i>>3]+e*+g[J+2120+(j+d<<2)>>2];U=38}if((U|0)==38){d=d+-1|0;i=J+72+(d<<3)|0;h[i>>3]=+h[i>>3]+e*+g[J+2120+(j+d<<2)>>2];U=39}if((U|0)==39){U=0;i=d+-1|0;d=J+72+(i<<3)|0;h[d>>3]=+h[d>>3]+e*+g[J+2120+(j+i<<2)>>2]}d=i+-1|0;V=J+72+(d<<3)|0;h[V>>3]=+h[V>>3]+e*+g[J+2120+(j+d<<2)>>2]}while((i|0)>1);l=l-u|0;if((l|0)<=-1)break;else j=j+t|0}f=q/f;l=u-o|0;j=(p-l|0)/(u|0)|0;l=l+(Z(j,u)|0)|0;j=(c[G>>2]|0)+(Z(j+1|0,t)|0)|0;Sa(x|0,0,n|0)|0;while(1){d=l>>12;V=c[y>>2]|0;e=+g[V+(d<<2)>>2];e=e+ +(l&4095|0)*.000244140625*(+g[V+(d+1<<2)>>2]-e);d=t;do{switch((d|0)%8|0|0){case 7:{U=46;break}case 6:{U=47;break}case 5:{U=48;break}case 4:{U=49;break}case 3:{U=50;break}case 2:{U=51;break}case 1:{i=d;break}default:{d=d+-1|0;U=J+1096+(d<<3)|0;h[U>>3]=+h[U>>3]+e*+g[J+2120+(j+d<<2)>>2];U=46}}if((U|0)==46){d=d+-1|0;V=J+1096+(d<<3)|0;h[V>>3]=+h[V>>3]+e*+g[J+2120+(j+d<<2)>>2];U=47}if((U|0)==47){d=d+-1|0;V=J+1096+(d<<3)|0;h[V>>3]=+h[V>>3]+e*+g[J+2120+(j+d<<2)>>2];U=48}if((U|0)==48){d=d+-1|0;V=J+1096+(d<<3)|0;h[V>>3]=+h[V>>3]+e*+g[J+2120+(j+d<<2)>>2];U=49}if((U|0)==49){d=d+-1|0;V=J+1096+(d<<3)|0;h[V>>3]=+h[V>>3]+e*+g[J+2120+(j+d<<2)>>2];U=50}if((U|0)==50){d=d+-1|0;V=J+1096+(d<<3)|0;h[V>>3]=+h[V>>3]+e*+g[J+2120+(j+d<<2)>>2];U=51}if((U|0)==51){U=0;i=d+-1|0;V=J+1096+(i<<3)|0;h[V>>3]=+h[V>>3]+e*+g[J+2120+(j+i<<2)>>2]}d=i+-1|0;V=J+1096+(d<<3)|0;h[V>>3]=+h[V>>3]+e*+g[J+2120+(j+d<<2)>>2]}while((i|0)>1);l=l-u|0;if((l|0)<=0)break;else j=j-t|0}j=r+(s<<2)|0;d=t;do{switch((d|0)%8|0|0){case 7:{U=57;break}case 6:{U=58;break}case 5:{U=59;break}case 4:{U=60;break}case 3:{U=61;break}case 2:{U=62;break}case 1:{i=d;break}default:{d=d+-1|0;g[j+(d<<2)>>2]=(+h[J+72+(d<<3)>>3]+ +h[J+1096+(d<<3)>>3])*f;U=57}}if((U|0)==57){d=d+-1|0;g[j+(d<<2)>>2]=(+h[J+72+(d<<3)>>3]+ +h[J+1096+(d<<3)>>3])*f;U=58}if((U|0)==58){d=d+-1|0;g[j+(d<<2)>>2]=(+h[J+72+(d<<3)>>3]+ +h[J+1096+(d<<3)>>3])*f;U=59}if((U|0)==59){d=d+-1|0;g[j+(d<<2)>>2]=(+h[J+72+(d<<3)>>3]+ +h[J+1096+(d<<3)>>3])*f;U=60}if((U|0)==60){d=d+-1|0;g[j+(d<<2)>>2]=(+h[J+72+(d<<3)>>3]+ +h[J+1096+(d<<3)>>3])*f;U=61}if((U|0)==61){d=d+-1|0;g[j+(d<<2)>>2]=(+h[J+72+(d<<3)>>3]+ +h[J+1096+(d<<3)>>3])*f;U=62}if((U|0)==62){U=0;i=d+-1|0;g[j+(i<<2)>>2]=(+h[J+72+(i<<3)>>3]+ +h[J+1096+(i<<3)>>3])*f}d=i+-1|0;g[j+(d<<2)>>2]=(+h[J+72+(d<<3)>>3]+ +h[J+1096+(d<<3)>>3])*f}while((i|0)>1);l=(c[L>>2]|0)+(c[z>>2]|0)|0;c[L>>2]=l;f=m+1.0/v;h[k>>3]=f;d=c[k+4>>2]|0;V=d&2146435072;if(!(V>>>0>1126170624|(V|0)==1126170624&0>0)){d=(d|0)<0;e=d?f+-4503599627370496.0+4503599627370496.0:f+4503599627370496.0+-4503599627370496.0;if(e==0.0)e=d?-0.0:0.0}else e=f;m=f-+(~~e|0);m=m<0.0?m+1.0:m;i=c[G>>2]|0;j=c[T>>2]|0;e=f-m;h[k>>3]=e;d=c[k+4>>2]|0;V=d&2146435072;if(!(V>>>0>1126170624|(V|0)==1126170624&0>0)){d=(d|0)<0;e=d?e+-4503599627370496.0+4503599627370496.0:e+4503599627370496.0+-4503599627370496.0;if(e==0.0)e=d?-0.0:0.0}d=i+(Z(j,~~e)|0)|0;j=c[B>>2]|0;d=(d|0)%(j|0)|0;c[G>>2]=d;i=c[K>>2]|0;e=v}if((U|0)==72)return d|0;h[I>>3]=m;h[a>>3]=e;c[b+16>>2]=(c[P>>2]|0)/(c[T>>2]|0)|0;c[b+20>>2]=(c[L>>2]|0)/(c[T>>2]|0)|0;V=0;return V|0}function Ia(a){a=a|0;var b=0;a=c[a+28>>2]|0;if(!a)return;c[a+56>>2]=0;c[a+52>>2]=0;c[a+60>>2]=-1;b=a+32|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;b=c[a+64>>2]|0;Sa(a+2120|0,0,b<<2|0)|0;Sa(a+2120+(b<<2)|0,-86,c[a+4>>2]<<2|0)|0;return}function Ja(a,b){a=a|0;b=b|0;var d=0,e=0,f=0.0,g=0,i=0,j=0.0,l=0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0,x=0.0,y=0,z=0,A=0;i=b+8|0;d=c[i>>2]|0;if((d|0)<1){a=0;return a|0}A=c[a+28>>2]|0;if(!A){a=5;return a|0}g=A+8|0;z=A+4|0;if(!(c[g>>2]|0))e=c[z>>2]|0;else{e=0;while(1){d=c[z>>2]|0;if((e|0)>=(d|0))break;c[A+28+(e<<2)>>2]=c[(c[b>>2]|0)+(e<<2)>>2];e=e+1|0}c[g>>2]=0;e=d;d=c[i>>2]|0}s=A+12|0;c[s>>2]=Z(d,e)|0;p=A+20|0;c[p>>2]=Z(c[b+12>>2]|0,e)|0;u=A+24|0;c[u>>2]=0;v=A+16|0;c[v>>2]=0;f=+h[a>>3];if(f<.00390625|f>256.0){a=22;return a|0}t=a+8|0;q=b+32|0;r=b+4|0;i=0;j=+h[t>>3];o=f;while(1){if(!(j<1.0))break;d=c[p>>2]|0;if((i|0)>=(d|0))break;if(+(c[v>>2]|0)+ +(e|0)*j>=+(c[s>>2]|0))break;if((d|0)>0?(m=+h[a>>3],n=+h[q>>3],+M(+(m-n))>1.0e-20):0)f=m+ +(i|0)*(n-m)/+(d|0);else f=o;g=e;d=i;e=0;while(1){if((e|0)>=(g|0))break;c[(c[r>>2]|0)+(d<<2)>>2]=c[A+28+(e<<2)>>2];l=(c[u>>2]|0)+1|0;c[u>>2]=l;g=c[z>>2]|0;d=l;e=e+1|0}i=d;e=g;j=j+1.0/f;o=f}h[k>>3]=j;d=c[k+4>>2]|0;l=d&2146435072;if(!(l>>>0>1126170624|(l|0)==1126170624&0>0)){d=(d|0)<0;f=d?j+-4503599627370496.0+4503599627370496.0:j+4503599627370496.0+-4503599627370496.0;if(f==0.0)f=d?-0.0:0.0}else f=j;f=j-+(~~f|0);f=f<0.0?f+1.0:f;j=j-f;h[k>>3]=j;d=c[k+4>>2]|0;l=d&2146435072;if(!(l>>>0>1126170624|(l|0)==1126170624&0>0)){d=(d|0)<0;j=d?j+-4503599627370496.0+4503599627370496.0:j+4503599627370496.0+-4503599627370496.0;if(j==0.0)j=d?-0.0:0.0}l=Z(e,~~j)|0;l=(c[v>>2]|0)+l|0;c[v>>2]=l;g=e;j=o;while(1){e=c[p>>2]|0;if((i|0)>=(e|0)){y=29;break}d=c[s>>2]|0;if(!(+(l|0)+ +(g|0)*f<=+(d|0)))break;if((e|0)>0?(w=+h[a>>3],x=+h[q>>3],+M(+(w-x))>1.0e-20):0)m=w+ +(i|0)*(x-w)/+(e|0);else m=j;d=0;while(1){if((d|0)>=(g|0))break;c[(c[r>>2]|0)+(i<<2)>>2]=c[(c[b>>2]|0)+((c[v>>2]|0)-g+d<<2)>>2];l=(c[u>>2]|0)+1|0;c[u>>2]=l;g=c[z>>2]|0;i=l;d=d+1|0}j=f+1.0/m;h[k>>3]=j;d=c[k+4>>2]|0;l=d&2146435072;if(!(l>>>0>1126170624|(l|0)==1126170624&0>0)){d=(d|0)<0;f=d?j+-4503599627370496.0+4503599627370496.0:j+4503599627370496.0+-4503599627370496.0;if(f==0.0)f=d?-0.0:0.0}else f=j;f=j-+(~~f|0);f=f<0.0?f+1.0:f;j=j-f;h[k>>3]=j;d=c[k+4>>2]|0;l=d&2146435072;if(!(l>>>0>1126170624|(l|0)==1126170624&0>0)){d=(d|0)<0;j=d?j+-4503599627370496.0+4503599627370496.0:j+4503599627370496.0+-4503599627370496.0;if(j==0.0)j=d?-0.0:0.0}l=Z(g,~~j)|0;l=(c[v>>2]|0)+l|0;c[v>>2]=l;j=m}if((y|0)==29)d=c[s>>2]|0;if((l|0)>(d|0)){c[v>>2]=d;f=f+ +((l-d|0)/(g|0)|0|0)}h[t>>3]=f;a:do if((c[v>>2]|0)>0){e=0;while(1){d=c[z>>2]|0;if((e|0)>=(d|0))break a;c[A+28+(e<<2)>>2]=c[(c[b>>2]|0)+((c[v>>2]|0)-d+e<<2)>>2];e=e+1|0}}while(0);h[a>>3]=j;c[b+16>>2]=(c[v>>2]|0)/(c[z>>2]|0)|0;c[b+20>>2]=(c[u>>2]|0)/(c[z>>2]|0)|0;a=0;return a|0}function Ka(a){a=a|0;var b=0;b=c[a+28>>2]|0;if(!b)return;a=c[a+20>>2]|0;c[b+4>>2]=a;c[b+8>>2]=1;Sa(b+28|0,0,a<<2|0)|0;return}function La(a,b){a=a|0;b=b|0;var d=0,e=0,f=0.0,i=0,j=0,l=0.0,m=0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0.0,z=0,A=0,B=0;j=b+8|0;d=c[j>>2]|0;if((d|0)<1){a=0;return a|0}B=c[a+28>>2]|0;if(!B){a=5;return a|0}i=B+8|0;A=B+4|0;if(!(c[i>>2]|0))e=c[A>>2]|0;else{e=0;while(1){d=c[A>>2]|0;if((e|0)>=(d|0))break;c[B+28+(e<<2)>>2]=c[(c[b>>2]|0)+(e<<2)>>2];e=e+1|0}c[i>>2]=0;e=d;d=c[j>>2]|0}t=B+12|0;c[t>>2]=Z(d,e)|0;q=B+20|0;c[q>>2]=Z(c[b+12>>2]|0,e)|0;v=B+24|0;c[v>>2]=0;w=B+16|0;c[w>>2]=0;f=+h[a>>3];if(f<.00390625|f>256.0){a=22;return a|0}u=a+8|0;r=b+32|0;s=b+4|0;m=0;l=+h[u>>3];p=f;while(1){if(!(l<1.0))break;d=c[q>>2]|0;if((m|0)>=(d|0))break;if(+(c[w>>2]|0)+ +(e|0)*(l+1.0)>=+(c[t>>2]|0))break;if((d|0)>0?(n=+h[a>>3],o=+h[r>>3],+M(+(n-o))>1.0e-20):0)f=n+ +(m|0)*(o-n)/+(d|0);else f=p;i=e;d=m;e=0;while(1){if((e|0)>=(i|0))break;p=+g[B+28+(e<<2)>>2];g[(c[s>>2]|0)+(d<<2)>>2]=p+l*(+g[(c[b>>2]|0)+(e<<2)>>2]-p);m=(c[v>>2]|0)+1|0;c[v>>2]=m;i=c[A>>2]|0;d=m;e=e+1|0}m=d;e=i;l=l+1.0/f;p=f}h[k>>3]=l;d=c[k+4>>2]|0;j=d&2146435072;if(!(j>>>0>1126170624|(j|0)==1126170624&0>0)){d=(d|0)<0;f=d?l+-4503599627370496.0+4503599627370496.0:l+4503599627370496.0+-4503599627370496.0;if(f==0.0)f=d?-0.0:0.0}else f=l;f=l-+(~~f|0);f=f<0.0?f+1.0:f;l=l-f;h[k>>3]=l;d=c[k+4>>2]|0;j=d&2146435072;if(!(j>>>0>1126170624|(j|0)==1126170624&0>0)){d=(d|0)<0;l=d?l+-4503599627370496.0+4503599627370496.0:l+4503599627370496.0+-4503599627370496.0;if(l==0.0)l=d?-0.0:0.0}i=Z(e,~~l)|0;j=e;l=p;i=(c[w>>2]|0)+i|0;while(1){c[w>>2]=i;e=c[q>>2]|0;if((m|0)>=(e|0)){z=29;break}d=c[t>>2]|0;if(!(+(i|0)+ +(j|0)*f<+(d|0)))break;if((e|0)>0?(x=+h[a>>3],y=+h[r>>3],+M(+(x-y))>1.0e-20):0)n=x+ +(m|0)*(y-x)/+(e|0);else n=l;d=0;while(1){if((d|0)>=(j|0))break;i=c[w>>2]|0;e=c[b>>2]|0;p=+g[e+(i-j+d<<2)>>2];g[(c[s>>2]|0)+(m<<2)>>2]=p+f*(+g[e+(i+d<<2)>>2]-p);i=(c[v>>2]|0)+1|0;c[v>>2]=i;j=c[A>>2]|0;m=i;d=d+1|0}l=f+1.0/n;h[k>>3]=l;d=c[k+4>>2]|0;i=d&2146435072;if(!(i>>>0>1126170624|(i|0)==1126170624&0>0)){d=(d|0)<0;f=d?l+-4503599627370496.0+4503599627370496.0:l+4503599627370496.0+-4503599627370496.0;if(f==0.0)f=d?-0.0:0.0}else f=l;f=l-+(~~f|0);f=f<0.0?f+1.0:f;l=l-f;h[k>>3]=l;d=c[k+4>>2]|0;i=d&2146435072;if(!(i>>>0>1126170624|(i|0)==1126170624&0>0)){d=(d|0)<0;l=d?l+-4503599627370496.0+4503599627370496.0:l+4503599627370496.0+-4503599627370496.0;if(l==0.0)l=d?-0.0:0.0}i=Z(j,~~l)|0;l=n;i=(c[w>>2]|0)+i|0}if((z|0)==29)d=c[t>>2]|0;if((i|0)>(d|0)){c[w>>2]=d;f=f+ +((i-d|0)/(j|0)|0|0)}h[u>>3]=f;a:do if((c[w>>2]|0)>0){e=0;while(1){d=c[A>>2]|0;if((e|0)>=(d|0))break a;c[B+28+(e<<2)>>2]=c[(c[b>>2]|0)+((c[w>>2]|0)-d+e<<2)>>2];e=e+1|0}}while(0);h[a>>3]=l;c[b+16>>2]=(c[w>>2]|0)/(c[A>>2]|0)|0;c[b+20>>2]=(c[v>>2]|0)/(c[A>>2]|0)|0;a=0;return a|0}function Ma(a){a=a|0;var b=0;b=c[a+28>>2]|0;if(!b)return;a=c[a+20>>2]|0;c[b+4>>2]=a;c[b+8>>2]=1;Sa(b+28|0,0,a<<2|0)|0;return}function Na(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;do if(a>>>0<245){o=a>>>0<11?16:a+11&-8;a=o>>>3;j=c[365417]|0;b=j>>>a;if(b&3|0){b=(b&1^1)+a|0;d=1461708+(b<<1<<2)|0;e=d+8|0;f=c[e>>2]|0;g=f+8|0;h=c[g>>2]|0;do if((d|0)!=(h|0)){if(h>>>0<(c[365421]|0)>>>0)fa();a=h+12|0;if((c[a>>2]|0)==(f|0)){c[a>>2]=d;c[e>>2]=h;break}else fa()}else c[365417]=j&~(1<<b);while(0);G=b<<3;c[f+4>>2]=G|3;G=f+G+4|0;c[G>>2]=c[G>>2]|1;G=g;return G|0}h=c[365419]|0;if(o>>>0>h>>>0){if(b|0){d=2<<a;d=b<<a&(d|0-d);d=(d&0-d)+-1|0;i=d>>>12&16;d=d>>>i;f=d>>>5&8;d=d>>>f;g=d>>>2&4;d=d>>>g;e=d>>>1&2;d=d>>>e;b=d>>>1&1;b=(f|i|g|e|b)+(d>>>b)|0;d=1461708+(b<<1<<2)|0;e=d+8|0;g=c[e>>2]|0;i=g+8|0;f=c[i>>2]|0;do if((d|0)!=(f|0)){if(f>>>0<(c[365421]|0)>>>0)fa();a=f+12|0;if((c[a>>2]|0)==(g|0)){c[a>>2]=d;c[e>>2]=f;k=c[365419]|0;break}else fa()}else{c[365417]=j&~(1<<b);k=h}while(0);h=(b<<3)-o|0;c[g+4>>2]=o|3;e=g+o|0;c[e+4>>2]=h|1;c[e+h>>2]=h;if(k|0){f=c[365422]|0;b=k>>>3;d=1461708+(b<<1<<2)|0;a=c[365417]|0;b=1<<b;if(a&b){a=d+8|0;b=c[a>>2]|0;if(b>>>0<(c[365421]|0)>>>0)fa();else{l=a;m=b}}else{c[365417]=a|b;l=d+8|0;m=d}c[l>>2]=f;c[m+12>>2]=f;c[f+8>>2]=m;c[f+12>>2]=d}c[365419]=h;c[365422]=e;G=i;return G|0}a=c[365418]|0;if(a){i=(a&0-a)+-1|0;F=i>>>12&16;i=i>>>F;E=i>>>5&8;i=i>>>E;G=i>>>2&4;i=i>>>G;b=i>>>1&2;i=i>>>b;j=i>>>1&1;j=c[1461972+((E|F|G|b|j)+(i>>>j)<<2)>>2]|0;i=(c[j+4>>2]&-8)-o|0;b=j;while(1){a=c[b+16>>2]|0;if(!a){a=c[b+20>>2]|0;if(!a)break}b=(c[a+4>>2]&-8)-o|0;G=b>>>0<i>>>0;i=G?b:i;b=a;j=G?a:j}f=c[365421]|0;if(j>>>0<f>>>0)fa();h=j+o|0;if(j>>>0>=h>>>0)fa();g=c[j+24>>2]|0;d=c[j+12>>2]|0;do if((d|0)==(j|0)){b=j+20|0;a=c[b>>2]|0;if(!a){b=j+16|0;a=c[b>>2]|0;if(!a){n=0;break}}while(1){d=a+20|0;e=c[d>>2]|0;if(e|0){a=e;b=d;continue}d=a+16|0;e=c[d>>2]|0;if(!e)break;else{a=e;b=d}}if(b>>>0<f>>>0)fa();else{c[b>>2]=0;n=a;break}}else{e=c[j+8>>2]|0;if(e>>>0<f>>>0)fa();a=e+12|0;if((c[a>>2]|0)!=(j|0))fa();b=d+8|0;if((c[b>>2]|0)==(j|0)){c[a>>2]=d;c[b>>2]=e;n=d;break}else fa()}while(0);do if(g|0){a=c[j+28>>2]|0;b=1461972+(a<<2)|0;if((j|0)==(c[b>>2]|0)){c[b>>2]=n;if(!n){c[365418]=c[365418]&~(1<<a);break}}else{if(g>>>0<(c[365421]|0)>>>0)fa();a=g+16|0;if((c[a>>2]|0)==(j|0))c[a>>2]=n;else c[g+20>>2]=n;if(!n)break}b=c[365421]|0;if(n>>>0<b>>>0)fa();c[n+24>>2]=g;a=c[j+16>>2]|0;do if(a|0)if(a>>>0<b>>>0)fa();else{c[n+16>>2]=a;c[a+24>>2]=n;break}while(0);a=c[j+20>>2]|0;if(a|0)if(a>>>0<(c[365421]|0)>>>0)fa();else{c[n+20>>2]=a;c[a+24>>2]=n;break}}while(0);if(i>>>0<16){G=i+o|0;c[j+4>>2]=G|3;G=j+G+4|0;c[G>>2]=c[G>>2]|1}else{c[j+4>>2]=o|3;c[h+4>>2]=i|1;c[h+i>>2]=i;a=c[365419]|0;if(a|0){e=c[365422]|0;b=a>>>3;d=1461708+(b<<1<<2)|0;a=c[365417]|0;b=1<<b;if(a&b){a=d+8|0;b=c[a>>2]|0;if(b>>>0<(c[365421]|0)>>>0)fa();else{p=a;q=b}}else{c[365417]=a|b;p=d+8|0;q=d}c[p>>2]=e;c[q+12>>2]=e;c[e+8>>2]=q;c[e+12>>2]=d}c[365419]=i;c[365422]=h}G=j+8|0;return G|0}}}else if(a>>>0<=4294967231){a=a+11|0;o=a&-8;k=c[365418]|0;if(k){d=0-o|0;a=a>>>8;if(a)if(o>>>0>16777215)j=31;else{q=(a+1048320|0)>>>16&8;z=a<<q;p=(z+520192|0)>>>16&4;z=z<<p;j=(z+245760|0)>>>16&2;j=14-(p|q|j)+(z<<j>>>15)|0;j=o>>>(j+7|0)&1|j<<1}else j=0;b=c[1461972+(j<<2)>>2]|0;a:do if(!b){a=0;b=0;z=86}else{f=d;a=0;h=o<<((j|0)==31?0:25-(j>>>1)|0);i=b;b=0;while(1){e=c[i+4>>2]&-8;d=e-o|0;if(d>>>0<f>>>0)if((e|0)==(o|0)){a=i;b=i;z=90;break a}else b=i;else d=f;e=c[i+20>>2]|0;i=c[i+16+(h>>>31<<2)>>2]|0;a=(e|0)==0|(e|0)==(i|0)?a:e;e=(i|0)==0;if(e){z=86;break}else{f=d;h=h<<(e&1^1)}}}while(0);if((z|0)==86){if((a|0)==0&(b|0)==0){a=2<<j;a=k&(a|0-a);if(!a)break;q=(a&0-a)+-1|0;m=q>>>12&16;q=q>>>m;l=q>>>5&8;q=q>>>l;n=q>>>2&4;q=q>>>n;p=q>>>1&2;q=q>>>p;a=q>>>1&1;a=c[1461972+((l|m|n|p|a)+(q>>>a)<<2)>>2]|0}if(!a){i=d;j=b}else z=90}if((z|0)==90)while(1){z=0;q=(c[a+4>>2]&-8)-o|0;e=q>>>0<d>>>0;d=e?q:d;b=e?a:b;e=c[a+16>>2]|0;if(e|0){a=e;z=90;continue}a=c[a+20>>2]|0;if(!a){i=d;j=b;break}else z=90}if((j|0)!=0?i>>>0<((c[365419]|0)-o|0)>>>0:0){f=c[365421]|0;if(j>>>0<f>>>0)fa();h=j+o|0;if(j>>>0>=h>>>0)fa();g=c[j+24>>2]|0;d=c[j+12>>2]|0;do if((d|0)==(j|0)){b=j+20|0;a=c[b>>2]|0;if(!a){b=j+16|0;a=c[b>>2]|0;if(!a){s=0;break}}while(1){d=a+20|0;e=c[d>>2]|0;if(e|0){a=e;b=d;continue}d=a+16|0;e=c[d>>2]|0;if(!e)break;else{a=e;b=d}}if(b>>>0<f>>>0)fa();else{c[b>>2]=0;s=a;break}}else{e=c[j+8>>2]|0;if(e>>>0<f>>>0)fa();a=e+12|0;if((c[a>>2]|0)!=(j|0))fa();b=d+8|0;if((c[b>>2]|0)==(j|0)){c[a>>2]=d;c[b>>2]=e;s=d;break}else fa()}while(0);do if(g|0){a=c[j+28>>2]|0;b=1461972+(a<<2)|0;if((j|0)==(c[b>>2]|0)){c[b>>2]=s;if(!s){c[365418]=c[365418]&~(1<<a);break}}else{if(g>>>0<(c[365421]|0)>>>0)fa();a=g+16|0;if((c[a>>2]|0)==(j|0))c[a>>2]=s;else c[g+20>>2]=s;if(!s)break}b=c[365421]|0;if(s>>>0<b>>>0)fa();c[s+24>>2]=g;a=c[j+16>>2]|0;do if(a|0)if(a>>>0<b>>>0)fa();else{c[s+16>>2]=a;c[a+24>>2]=s;break}while(0);a=c[j+20>>2]|0;if(a|0)if(a>>>0<(c[365421]|0)>>>0)fa();else{c[s+20>>2]=a;c[a+24>>2]=s;break}}while(0);do if(i>>>0>=16){c[j+4>>2]=o|3;c[h+4>>2]=i|1;c[h+i>>2]=i;a=i>>>3;if(i>>>0<256){d=1461708+(a<<1<<2)|0;b=c[365417]|0;a=1<<a;if(b&a){a=d+8|0;b=c[a>>2]|0;if(b>>>0<(c[365421]|0)>>>0)fa();else{t=a;v=b}}else{c[365417]=b|a;t=d+8|0;v=d}c[t>>2]=h;c[v+12>>2]=h;c[h+8>>2]=v;c[h+12>>2]=d;break}a=i>>>8;if(a)if(i>>>0>16777215)d=31;else{F=(a+1048320|0)>>>16&8;G=a<<F;E=(G+520192|0)>>>16&4;G=G<<E;d=(G+245760|0)>>>16&2;d=14-(E|F|d)+(G<<d>>>15)|0;d=i>>>(d+7|0)&1|d<<1}else d=0;e=1461972+(d<<2)|0;c[h+28>>2]=d;a=h+16|0;c[a+4>>2]=0;c[a>>2]=0;a=c[365418]|0;b=1<<d;if(!(a&b)){c[365418]=a|b;c[e>>2]=h;c[h+24>>2]=e;c[h+12>>2]=h;c[h+8>>2]=h;break}d=i<<((d|0)==31?0:25-(d>>>1)|0);e=c[e>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(i|0)){z=148;break}b=e+16+(d>>>31<<2)|0;a=c[b>>2]|0;if(!a){z=145;break}else{d=d<<1;e=a}}if((z|0)==145)if(b>>>0<(c[365421]|0)>>>0)fa();else{c[b>>2]=h;c[h+24>>2]=e;c[h+12>>2]=h;c[h+8>>2]=h;break}else if((z|0)==148){a=e+8|0;b=c[a>>2]|0;G=c[365421]|0;if(b>>>0>=G>>>0&e>>>0>=G>>>0){c[b+12>>2]=h;c[a>>2]=h;c[h+8>>2]=b;c[h+12>>2]=e;c[h+24>>2]=0;break}else fa()}}else{G=i+o|0;c[j+4>>2]=G|3;G=j+G+4|0;c[G>>2]=c[G>>2]|1}while(0);G=j+8|0;return G|0}}}else o=-1;while(0);d=c[365419]|0;if(d>>>0>=o>>>0){a=d-o|0;b=c[365422]|0;if(a>>>0>15){G=b+o|0;c[365422]=G;c[365419]=a;c[G+4>>2]=a|1;c[G+a>>2]=a;c[b+4>>2]=o|3}else{c[365419]=0;c[365422]=0;c[b+4>>2]=d|3;G=b+d+4|0;c[G>>2]=c[G>>2]|1}G=b+8|0;return G|0}a=c[365420]|0;if(a>>>0>o>>>0){E=a-o|0;c[365420]=E;G=c[365423]|0;F=G+o|0;c[365423]=F;c[F+4>>2]=E|1;c[G+4>>2]=o|3;G=G+8|0;return G|0}do if(!(c[365535]|0)){a=ka(30)|0;if(!(a+-1&a)){c[365537]=a;c[365536]=a;c[365538]=-1;c[365539]=-1;c[365540]=0;c[365528]=0;c[365535]=(ia(0)|0)&-16^1431655768;break}else fa()}while(0);h=o+48|0;e=c[365537]|0;i=o+47|0;d=e+i|0;e=0-e|0;j=d&e;if(j>>>0<=o>>>0){G=0;return G|0}a=c[365527]|0;if(a|0?(t=c[365525]|0,v=t+j|0,v>>>0<=t>>>0|v>>>0>a>>>0):0){G=0;return G|0}b:do if(!(c[365528]&4)){b=c[365423]|0;c:do if(b){f=1462116;while(1){a=c[f>>2]|0;if(a>>>0<=b>>>0?(r=f+4|0,(a+(c[r>>2]|0)|0)>>>0>b>>>0):0)break;a=c[f+8>>2]|0;if(!a){z=173;break c}else f=a}a=d-(c[365420]|0)&e;if(a>>>0<2147483647){b=ha(a|0)|0;if((b|0)==((c[f>>2]|0)+(c[r>>2]|0)|0)){if((b|0)!=(-1|0)){h=b;g=a;z=193;break b}}else z=183}}else z=173;while(0);do if((z|0)==173?(u=ha(0)|0,(u|0)!=(-1|0)):0){a=u;b=c[365536]|0;d=b+-1|0;if(!(d&a))a=j;else a=j-a+(d+a&0-b)|0;b=c[365525]|0;d=b+a|0;if(a>>>0>o>>>0&a>>>0<2147483647){v=c[365527]|0;if(v|0?d>>>0<=b>>>0|d>>>0>v>>>0:0)break;b=ha(a|0)|0;if((b|0)==(u|0)){h=u;g=a;z=193;break b}else z=183}}while(0);d:do if((z|0)==183){d=0-a|0;do if(h>>>0>a>>>0&(a>>>0<2147483647&(b|0)!=(-1|0))?(w=c[365537]|0,w=i-a+w&0-w,w>>>0<2147483647):0)if((ha(w|0)|0)==(-1|0)){ha(d|0)|0;break d}else{a=w+a|0;break}while(0);if((b|0)!=(-1|0)){h=b;g=a;z=193;break b}}while(0);c[365528]=c[365528]|4;z=190}else z=190;while(0);if((((z|0)==190?j>>>0<2147483647:0)?(x=ha(j|0)|0,y=ha(0)|0,x>>>0<y>>>0&((x|0)!=(-1|0)&(y|0)!=(-1|0))):0)?(g=y-x|0,g>>>0>(o+40|0)>>>0):0){h=x;z=193}if((z|0)==193){a=(c[365525]|0)+g|0;c[365525]=a;if(a>>>0>(c[365526]|0)>>>0)c[365526]=a;k=c[365423]|0;do if(k){f=1462116;while(1){a=c[f>>2]|0;b=f+4|0;d=c[b>>2]|0;if((h|0)==(a+d|0)){z=203;break}e=c[f+8>>2]|0;if(!e)break;else f=e}if(((z|0)==203?(c[f+12>>2]&8|0)==0:0)?k>>>0<h>>>0&k>>>0>=a>>>0:0){c[b>>2]=d+g;G=k+8|0;G=(G&7|0)==0?0:0-G&7;F=k+G|0;G=g-G+(c[365420]|0)|0;c[365423]=F;c[365420]=G;c[F+4>>2]=G|1;c[F+G+4>>2]=40;c[365424]=c[365539];break}a=c[365421]|0;if(h>>>0<a>>>0){c[365421]=h;i=h}else i=a;b=h+g|0;a=1462116;while(1){if((c[a>>2]|0)==(b|0)){z=211;break}a=c[a+8>>2]|0;if(!a){b=1462116;break}}if((z|0)==211)if(!(c[a+12>>2]&8)){c[a>>2]=h;m=a+4|0;c[m>>2]=(c[m>>2]|0)+g;m=h+8|0;m=h+((m&7|0)==0?0:0-m&7)|0;a=b+8|0;a=b+((a&7|0)==0?0:0-a&7)|0;l=m+o|0;j=a-m-o|0;c[m+4>>2]=o|3;do if((a|0)!=(k|0)){if((a|0)==(c[365422]|0)){G=(c[365419]|0)+j|0;c[365419]=G;c[365422]=l;c[l+4>>2]=G|1;c[l+G>>2]=G;break}b=c[a+4>>2]|0;if((b&3|0)==1){h=b&-8;f=b>>>3;e:do if(b>>>0>=256){g=c[a+24>>2]|0;e=c[a+12>>2]|0;do if((e|0)==(a|0)){e=a+16|0;d=e+4|0;b=c[d>>2]|0;if(!b){b=c[e>>2]|0;if(!b){E=0;break}else d=e}while(1){e=b+20|0;f=c[e>>2]|0;if(f|0){b=f;d=e;continue}e=b+16|0;f=c[e>>2]|0;if(!f)break;else{b=f;d=e}}if(d>>>0<i>>>0)fa();else{c[d>>2]=0;E=b;break}}else{f=c[a+8>>2]|0;if(f>>>0<i>>>0)fa();b=f+12|0;if((c[b>>2]|0)!=(a|0))fa();d=e+8|0;if((c[d>>2]|0)==(a|0)){c[b>>2]=e;c[d>>2]=f;E=e;break}else fa()}while(0);if(!g)break;b=c[a+28>>2]|0;d=1461972+(b<<2)|0;do if((a|0)!=(c[d>>2]|0)){if(g>>>0<(c[365421]|0)>>>0)fa();b=g+16|0;if((c[b>>2]|0)==(a|0))c[b>>2]=E;else c[g+20>>2]=E;if(!E)break e}else{c[d>>2]=E;if(E|0)break;c[365418]=c[365418]&~(1<<b);break e}while(0);e=c[365421]|0;if(E>>>0<e>>>0)fa();c[E+24>>2]=g;b=a+16|0;d=c[b>>2]|0;do if(d|0)if(d>>>0<e>>>0)fa();else{c[E+16>>2]=d;c[d+24>>2]=E;break}while(0);b=c[b+4>>2]|0;if(!b)break;if(b>>>0<(c[365421]|0)>>>0)fa();else{c[E+20>>2]=b;c[b+24>>2]=E;break}}else{d=c[a+8>>2]|0;e=c[a+12>>2]|0;b=1461708+(f<<1<<2)|0;do if((d|0)!=(b|0)){if(d>>>0<i>>>0)fa();if((c[d+12>>2]|0)==(a|0))break;fa()}while(0);if((e|0)==(d|0)){c[365417]=c[365417]&~(1<<f);break}do if((e|0)==(b|0))B=e+8|0;else{if(e>>>0<i>>>0)fa();b=e+8|0;if((c[b>>2]|0)==(a|0)){B=b;break}fa()}while(0);c[d+12>>2]=e;c[B>>2]=d}while(0);a=a+h|0;f=h+j|0}else f=j;a=a+4|0;c[a>>2]=c[a>>2]&-2;c[l+4>>2]=f|1;c[l+f>>2]=f;a=f>>>3;if(f>>>0<256){d=1461708+(a<<1<<2)|0;b=c[365417]|0;a=1<<a;do if(!(b&a)){c[365417]=b|a;F=d+8|0;G=d}else{a=d+8|0;b=c[a>>2]|0;if(b>>>0>=(c[365421]|0)>>>0){F=a;G=b;break}fa()}while(0);c[F>>2]=l;c[G+12>>2]=l;c[l+8>>2]=G;c[l+12>>2]=d;break}a=f>>>8;do if(!a)d=0;else{if(f>>>0>16777215){d=31;break}F=(a+1048320|0)>>>16&8;G=a<<F;E=(G+520192|0)>>>16&4;G=G<<E;d=(G+245760|0)>>>16&2;d=14-(E|F|d)+(G<<d>>>15)|0;d=f>>>(d+7|0)&1|d<<1}while(0);e=1461972+(d<<2)|0;c[l+28>>2]=d;a=l+16|0;c[a+4>>2]=0;c[a>>2]=0;a=c[365418]|0;b=1<<d;if(!(a&b)){c[365418]=a|b;c[e>>2]=l;c[l+24>>2]=e;c[l+12>>2]=l;c[l+8>>2]=l;break}d=f<<((d|0)==31?0:25-(d>>>1)|0);e=c[e>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(f|0)){z=281;break}b=e+16+(d>>>31<<2)|0;a=c[b>>2]|0;if(!a){z=278;break}else{d=d<<1;e=a}}if((z|0)==278)if(b>>>0<(c[365421]|0)>>>0)fa();else{c[b>>2]=l;c[l+24>>2]=e;c[l+12>>2]=l;c[l+8>>2]=l;break}else if((z|0)==281){a=e+8|0;b=c[a>>2]|0;G=c[365421]|0;if(b>>>0>=G>>>0&e>>>0>=G>>>0){c[b+12>>2]=l;c[a>>2]=l;c[l+8>>2]=b;c[l+12>>2]=e;c[l+24>>2]=0;break}else fa()}}else{G=(c[365420]|0)+j|0;c[365420]=G;c[365423]=l;c[l+4>>2]=G|1}while(0);G=m+8|0;return G|0}else b=1462116;while(1){a=c[b>>2]|0;if(a>>>0<=k>>>0?(A=a+(c[b+4>>2]|0)|0,A>>>0>k>>>0):0)break;b=c[b+8>>2]|0}f=A+-47|0;b=f+8|0;b=f+((b&7|0)==0?0:0-b&7)|0;f=k+16|0;b=b>>>0<f>>>0?k:b;a=b+8|0;d=h+8|0;d=(d&7|0)==0?0:0-d&7;G=h+d|0;d=g+-40-d|0;c[365423]=G;c[365420]=d;c[G+4>>2]=d|1;c[G+d+4>>2]=40;c[365424]=c[365539];d=b+4|0;c[d>>2]=27;c[a>>2]=c[365529];c[a+4>>2]=c[365530];c[a+8>>2]=c[365531];c[a+12>>2]=c[365532];c[365529]=h;c[365530]=g;c[365532]=0;c[365531]=a;a=b+24|0;do{a=a+4|0;c[a>>2]=7}while((a+4|0)>>>0<A>>>0);if((b|0)!=(k|0)){g=b-k|0;c[d>>2]=c[d>>2]&-2;c[k+4>>2]=g|1;c[b>>2]=g;a=g>>>3;if(g>>>0<256){d=1461708+(a<<1<<2)|0;b=c[365417]|0;a=1<<a;if(b&a){a=d+8|0;b=c[a>>2]|0;if(b>>>0<(c[365421]|0)>>>0)fa();else{C=a;D=b}}else{c[365417]=b|a;C=d+8|0;D=d}c[C>>2]=k;c[D+12>>2]=k;c[k+8>>2]=D;c[k+12>>2]=d;break}a=g>>>8;if(a)if(g>>>0>16777215)d=31;else{F=(a+1048320|0)>>>16&8;G=a<<F;E=(G+520192|0)>>>16&4;G=G<<E;d=(G+245760|0)>>>16&2;d=14-(E|F|d)+(G<<d>>>15)|0;d=g>>>(d+7|0)&1|d<<1}else d=0;e=1461972+(d<<2)|0;c[k+28>>2]=d;c[k+20>>2]=0;c[f>>2]=0;a=c[365418]|0;b=1<<d;if(!(a&b)){c[365418]=a|b;c[e>>2]=k;c[k+24>>2]=e;c[k+12>>2]=k;c[k+8>>2]=k;break}d=g<<((d|0)==31?0:25-(d>>>1)|0);e=c[e>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(g|0)){z=307;break}b=e+16+(d>>>31<<2)|0;a=c[b>>2]|0;if(!a){z=304;break}else{d=d<<1;e=a}}if((z|0)==304)if(b>>>0<(c[365421]|0)>>>0)fa();else{c[b>>2]=k;c[k+24>>2]=e;c[k+12>>2]=k;c[k+8>>2]=k;break}else if((z|0)==307){a=e+8|0;b=c[a>>2]|0;G=c[365421]|0;if(b>>>0>=G>>>0&e>>>0>=G>>>0){c[b+12>>2]=k;c[a>>2]=k;c[k+8>>2]=b;c[k+12>>2]=e;c[k+24>>2]=0;break}else fa()}}}else{G=c[365421]|0;if((G|0)==0|h>>>0<G>>>0)c[365421]=h;c[365529]=h;c[365530]=g;c[365532]=0;c[365426]=c[365535];c[365425]=-1;a=0;do{G=1461708+(a<<1<<2)|0;c[G+12>>2]=G;c[G+8>>2]=G;a=a+1|0}while((a|0)!=32);G=h+8|0;G=(G&7|0)==0?0:0-G&7;F=h+G|0;G=g+-40-G|0;c[365423]=F;c[365420]=G;c[F+4>>2]=G|1;c[F+G+4>>2]=40;c[365424]=c[365539]}while(0);a=c[365420]|0;if(a>>>0>o>>>0){E=a-o|0;c[365420]=E;G=c[365423]|0;F=G+o|0;c[365423]=F;c[F+4>>2]=E|1;c[G+4>>2]=o|3;G=G+8|0;return G|0}}if(!(c[365405]|0))a=1461664;else a=c[(ea()|0)+64>>2]|0;c[a>>2]=12;G=0;return G|0}function Oa(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;if(!a)return;d=a+-8|0;h=c[365421]|0;if(d>>>0<h>>>0)fa();a=c[a+-4>>2]|0;b=a&3;if((b|0)==1)fa();e=a&-8;m=d+e|0;do if(!(a&1)){a=c[d>>2]|0;if(!b)return;k=d+(0-a)|0;j=a+e|0;if(k>>>0<h>>>0)fa();if((k|0)==(c[365422]|0)){a=m+4|0;b=c[a>>2]|0;if((b&3|0)!=3){q=k;f=j;break}c[365419]=j;c[a>>2]=b&-2;c[k+4>>2]=j|1;c[k+j>>2]=j;return}e=a>>>3;if(a>>>0<256){b=c[k+8>>2]|0;d=c[k+12>>2]|0;a=1461708+(e<<1<<2)|0;if((b|0)!=(a|0)){if(b>>>0<h>>>0)fa();if((c[b+12>>2]|0)!=(k|0))fa()}if((d|0)==(b|0)){c[365417]=c[365417]&~(1<<e);q=k;f=j;break}if((d|0)!=(a|0)){if(d>>>0<h>>>0)fa();a=d+8|0;if((c[a>>2]|0)==(k|0))g=a;else fa()}else g=d+8|0;c[b+12>>2]=d;c[g>>2]=b;q=k;f=j;break}g=c[k+24>>2]|0;d=c[k+12>>2]|0;do if((d|0)==(k|0)){d=k+16|0;b=d+4|0;a=c[b>>2]|0;if(!a){a=c[d>>2]|0;if(!a){i=0;break}else b=d}while(1){d=a+20|0;e=c[d>>2]|0;if(e|0){a=e;b=d;continue}d=a+16|0;e=c[d>>2]|0;if(!e)break;else{a=e;b=d}}if(b>>>0<h>>>0)fa();else{c[b>>2]=0;i=a;break}}else{e=c[k+8>>2]|0;if(e>>>0<h>>>0)fa();a=e+12|0;if((c[a>>2]|0)!=(k|0))fa();b=d+8|0;if((c[b>>2]|0)==(k|0)){c[a>>2]=d;c[b>>2]=e;i=d;break}else fa()}while(0);if(g){a=c[k+28>>2]|0;b=1461972+(a<<2)|0;if((k|0)==(c[b>>2]|0)){c[b>>2]=i;if(!i){c[365418]=c[365418]&~(1<<a);q=k;f=j;break}}else{if(g>>>0<(c[365421]|0)>>>0)fa();a=g+16|0;if((c[a>>2]|0)==(k|0))c[a>>2]=i;else c[g+20>>2]=i;if(!i){q=k;f=j;break}}d=c[365421]|0;if(i>>>0<d>>>0)fa();c[i+24>>2]=g;a=k+16|0;b=c[a>>2]|0;do if(b|0)if(b>>>0<d>>>0)fa();else{c[i+16>>2]=b;c[b+24>>2]=i;break}while(0);a=c[a+4>>2]|0;if(a)if(a>>>0<(c[365421]|0)>>>0)fa();else{c[i+20>>2]=a;c[a+24>>2]=i;q=k;f=j;break}else{q=k;f=j}}else{q=k;f=j}}else{q=d;f=e}while(0);if(q>>>0>=m>>>0)fa();a=m+4|0;b=c[a>>2]|0;if(!(b&1))fa();if(!(b&2)){if((m|0)==(c[365423]|0)){p=(c[365420]|0)+f|0;c[365420]=p;c[365423]=q;c[q+4>>2]=p|1;if((q|0)!=(c[365422]|0))return;c[365422]=0;c[365419]=0;return}if((m|0)==(c[365422]|0)){p=(c[365419]|0)+f|0;c[365419]=p;c[365422]=q;c[q+4>>2]=p|1;c[q+p>>2]=p;return}f=(b&-8)+f|0;e=b>>>3;do if(b>>>0>=256){g=c[m+24>>2]|0;a=c[m+12>>2]|0;do if((a|0)==(m|0)){d=m+16|0;b=d+4|0;a=c[b>>2]|0;if(!a){a=c[d>>2]|0;if(!a){n=0;break}else b=d}while(1){d=a+20|0;e=c[d>>2]|0;if(e|0){a=e;b=d;continue}d=a+16|0;e=c[d>>2]|0;if(!e)break;else{a=e;b=d}}if(b>>>0<(c[365421]|0)>>>0)fa();else{c[b>>2]=0;n=a;break}}else{b=c[m+8>>2]|0;if(b>>>0<(c[365421]|0)>>>0)fa();d=b+12|0;if((c[d>>2]|0)!=(m|0))fa();e=a+8|0;if((c[e>>2]|0)==(m|0)){c[d>>2]=a;c[e>>2]=b;n=a;break}else fa()}while(0);if(g|0){a=c[m+28>>2]|0;b=1461972+(a<<2)|0;if((m|0)==(c[b>>2]|0)){c[b>>2]=n;if(!n){c[365418]=c[365418]&~(1<<a);break}}else{if(g>>>0<(c[365421]|0)>>>0)fa();a=g+16|0;if((c[a>>2]|0)==(m|0))c[a>>2]=n;else c[g+20>>2]=n;if(!n)break}d=c[365421]|0;if(n>>>0<d>>>0)fa();c[n+24>>2]=g;a=m+16|0;b=c[a>>2]|0;do if(b|0)if(b>>>0<d>>>0)fa();else{c[n+16>>2]=b;c[b+24>>2]=n;break}while(0);a=c[a+4>>2]|0;if(a|0)if(a>>>0<(c[365421]|0)>>>0)fa();else{c[n+20>>2]=a;c[a+24>>2]=n;break}}}else{b=c[m+8>>2]|0;d=c[m+12>>2]|0;a=1461708+(e<<1<<2)|0;if((b|0)!=(a|0)){if(b>>>0<(c[365421]|0)>>>0)fa();if((c[b+12>>2]|0)!=(m|0))fa()}if((d|0)==(b|0)){c[365417]=c[365417]&~(1<<e);break}if((d|0)!=(a|0)){if(d>>>0<(c[365421]|0)>>>0)fa();a=d+8|0;if((c[a>>2]|0)==(m|0))l=a;else fa()}else l=d+8|0;c[b+12>>2]=d;c[l>>2]=b}while(0);c[q+4>>2]=f|1;c[q+f>>2]=f;if((q|0)==(c[365422]|0)){c[365419]=f;return}}else{c[a>>2]=b&-2;c[q+4>>2]=f|1;c[q+f>>2]=f}a=f>>>3;if(f>>>0<256){d=1461708+(a<<1<<2)|0;b=c[365417]|0;a=1<<a;if(b&a){a=d+8|0;b=c[a>>2]|0;if(b>>>0<(c[365421]|0)>>>0)fa();else{o=a;p=b}}else{c[365417]=b|a;o=d+8|0;p=d}c[o>>2]=q;c[p+12>>2]=q;c[q+8>>2]=p;c[q+12>>2]=d;return}a=f>>>8;if(a)if(f>>>0>16777215)d=31;else{o=(a+1048320|0)>>>16&8;p=a<<o;n=(p+520192|0)>>>16&4;p=p<<n;d=(p+245760|0)>>>16&2;d=14-(n|o|d)+(p<<d>>>15)|0;d=f>>>(d+7|0)&1|d<<1}else d=0;e=1461972+(d<<2)|0;c[q+28>>2]=d;c[q+20>>2]=0;c[q+16>>2]=0;a=c[365418]|0;b=1<<d;do if(a&b){d=f<<((d|0)==31?0:25-(d>>>1)|0);e=c[e>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(f|0)){a=130;break}b=e+16+(d>>>31<<2)|0;a=c[b>>2]|0;if(!a){a=127;break}else{d=d<<1;e=a}}if((a|0)==127)if(b>>>0<(c[365421]|0)>>>0)fa();else{c[b>>2]=q;c[q+24>>2]=e;c[q+12>>2]=q;c[q+8>>2]=q;break}else if((a|0)==130){a=e+8|0;b=c[a>>2]|0;p=c[365421]|0;if(b>>>0>=p>>>0&e>>>0>=p>>>0){c[b+12>>2]=q;c[a>>2]=q;c[q+8>>2]=b;c[q+12>>2]=e;c[q+24>>2]=0;break}else fa()}}else{c[365418]=a|b;c[e>>2]=q;c[q+24>>2]=e;c[q+12>>2]=q;c[q+8>>2]=q}while(0);q=(c[365425]|0)+-1|0;c[365425]=q;if(!q)a=1462124;else return;while(1){a=c[a>>2]|0;if(!a)break;else a=a+8|0}c[365425]=-1;return}function Pa(){}function Qa(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return ja(b|0,d|0,e|0)|0;f=b|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}while((e|0)>=4){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;e=e-4|0}}while((e|0)>0){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function Ra(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if((c|0)<(b|0)&(b|0)<(c+d|0)){e=b;c=c+d|0;b=b+d|0;while((d|0)>0){b=b-1|0;c=c-1|0;d=d-1|0;a[b>>0]=a[c>>0]|0}b=e}else Qa(b,c,d)|0;return b|0}function Sa(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;if((e|0)>=20){d=d&255;h=b&3;i=d|d<<8|d<<16|d<<24;g=f&~3;if(h){h=b+4-h|0;while((b|0)<(h|0)){a[b>>0]=d;b=b+1|0}}while((b|0)<(g|0)){c[b>>2]=i;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return b-e|0}function Ta(a,b){a=a|0;b=b|0;ma[a&3](b|0)}function Ua(a,b,c){a=a|0;b=b|0;c=c|0;return na[a&7](b|0,c|0)|0}function Va(a){a=a|0;aa(0)}function Wa(a,b){a=a|0;b=b|0;aa(1);return 0}
// EMSCRIPTEN_END_FUNCS
var ma=[Va,Ia,Ka,Ma];var na=[Wa,Ca,Ea,Fa,Ga,Ha,Ja,La];return{_malloc:Na,_free:Oa,_memmove:Ra,_src_delete:ya,_memset:Sa,_src_strerror:Ba,_src_set_ratio:Aa,_src_process:za,_memcpy:Qa,_src_new:xa,runPostSets:Pa,stackAlloc:oa,stackSave:pa,stackRestore:qa,establishStackSpace:ra,setThrew:sa,setTempRet0:va,getTempRet0:wa,dynCall_vi:Ta,dynCall_iii:Ua}})
// EMSCRIPTEN_END_ASM
(b.s,b.t,buffer);b._src_set_ratio=Z._src_set_ratio;var ua=b._free=Z._free;b.runPostSets=Z.runPostSets;var Oa=b._memmove=Z._memmove;b._src_delete=Z._src_delete;
var Pa=b._memset=Z._memset;b._src_strerror=Z._src_strerror;var R=b._malloc=Z._malloc;b._src_process=Z._src_process;var Na=b._memcpy=Z._memcpy;b._src_new=Z._src_new;b.dynCall_vi=Z.dynCall_vi;b.dynCall_iii=Z.dynCall_iii;y.e=Z.stackAlloc;y.m=Z.stackSave;y.f=Z.stackRestore;y.I=Z.establishStackSpace;y.B=Z.setTempRet0;y.w=Z.getTempRet0;function w(a){this.name="ExitStatus";this.message="Program terminated with exit("+a+")";this.status=a}w.prototype=Error();w.prototype.constructor=w;
var Qa=null,Y=function Ra(){b.calledRun||Sa();b.calledRun||(Y=Ra)};b.callMain=b.G=function(a){function c(){for(var a=0;3>a;a++)g.push(0)}a=a||[];U||(U=!0,W(Da));var e=a.length+1,g=[Q(Ja(b.thisProgram),"i8",0)];c();for(var h=0;h<e-1;h+=1)g.push(Q(Ja(a[h]),"i8",0)),c();g.push(0);g=Q(g,"i32",0);try{var l=b._main(e,g,0);Ta(l,!0)}catch(k){if(!(k instanceof w))if("SimulateInfiniteLoop"==k)b.noExitRuntime=!0;else throw k&&"object"===typeof k&&k.stack&&b.k("exception thrown: "+[k,k.stack]),k;}finally{}};
function Sa(a){function c(){if(!b.calledRun&&(b.calledRun=!0,!G)){U||(U=!0,W(Da));W(Ea);if(b.onRuntimeInitialized)b.onRuntimeInitialized();b._main&&Ua&&b.callMain(a);if(b.postRun)for("function"==typeof b.postRun&&(b.postRun=[b.postRun]);b.postRun.length;)Ia(b.postRun.shift());W(Ga)}}a=a||b.arguments;null===Qa&&(Qa=Date.now());if(!(0<X)){if(b.preRun)for("function"==typeof b.preRun&&(b.preRun=[b.preRun]);b.preRun.length;)Ha(b.preRun.shift());W(Ca);0<X||b.calledRun||(b.setStatus?(b.setStatus("Running..."),
setTimeout(function(){setTimeout(function(){b.setStatus("")},1);c()},1)):c())}}b.run=b.run=Sa;function Ta(a,c){if(!c||!b.noExitRuntime){if(!b.noExitRuntime&&(G=!0,x=void 0,W(Fa),b.onExit))b.onExit(a);r?process.exit(a):t&&"function"===typeof quit&&quit(a);throw new w(a);}}b.exit=b.exit=Ta;var Va=[];
function F(a){void 0!==a?(b.print(a),b.k(a),a=JSON.stringify(a)):a="";G=!0;var c="abort("+a+") at "+sa()+"\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";Va&&Va.forEach(function(e){c=e(c,a)});throw c;}b.abort=b.abort=F;if(b.preInit)for("function"==typeof b.preInit&&(b.preInit=[b.preInit]);0<b.preInit.length;)b.preInit.pop()();var Ua=!0;b.noInitialRun&&(Ua=!1);Sa();
return Module;
};
module.exports = function() {
return Module({ENVIRONMENT: 'WEB'});
};
module.exports.instance = module.exports();
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(92), "/"))
/***/ }),
/* 290 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(process) {// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
// resolves . and .. elements in a path array with directory names there
// must be no slashes, empty elements, or device names (c:\) in the array
// (so also no leading and trailing slashes - it does not distinguish
// relative and absolute paths)
function normalizeArray(parts, allowAboveRoot) {
// if the path tries to go above the root, `up` ends up > 0
var up = 0;
for (var i = parts.length - 1; i >= 0; i--) {
var last = parts[i];
if (last === '.') {
parts.splice(i, 1);
} else if (last === '..') {
parts.splice(i, 1);
up++;
} else if (up) {
parts.splice(i, 1);
up--;
}
}
// if the path is allowed to go above the root, restore leading ..s
if (allowAboveRoot) {
for (; up--; up) {
parts.unshift('..');
}
}
return parts;
}
// Split a filename into [root, dir, basename, ext], unix version
// 'root' is just a slash, or nothing.
var splitPathRe =
/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
var splitPath = function(filename) {
return splitPathRe.exec(filename).slice(1);
};
// path.resolve([from ...], to)
// posix version
exports.resolve = function() {
var resolvedPath = '',
resolvedAbsolute = false;
for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {
var path = (i >= 0) ? arguments[i] : process.cwd();
// Skip empty and invalid entries
if (typeof path !== 'string') {
throw new TypeError('Arguments to path.resolve must be strings');
} else if (!path) {
continue;
}
resolvedPath = path + '/' + resolvedPath;
resolvedAbsolute = path.charAt(0) === '/';
}
// At this point the path should be resolved to a full absolute path, but
// handle relative paths to be safe (might happen when process.cwd() fails)
// Normalize the path
resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {
return !!p;
}), !resolvedAbsolute).join('/');
return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';
};
// path.normalize(path)
// posix version
exports.normalize = function(path) {
var isAbsolute = exports.isAbsolute(path),
trailingSlash = substr(path, -1) === '/';
// Normalize the path
path = normalizeArray(filter(path.split('/'), function(p) {
return !!p;
}), !isAbsolute).join('/');
if (!path && !isAbsolute) {
path = '.';
}
if (path && trailingSlash) {
path += '/';
}
return (isAbsolute ? '/' : '') + path;
};
// posix version
exports.isAbsolute = function(path) {
return path.charAt(0) === '/';
};
// posix version
exports.join = function() {
var paths = Array.prototype.slice.call(arguments, 0);
return exports.normalize(filter(paths, function(p, index) {
if (typeof p !== 'string') {
throw new TypeError('Arguments to path.join must be strings');
}
return p;
}).join('/'));
};
// path.relative(from, to)
// posix version
exports.relative = function(from, to) {
from = exports.resolve(from).substr(1);
to = exports.resolve(to).substr(1);
function trim(arr) {
var start = 0;
for (; start < arr.length; start++) {
if (arr[start] !== '') break;
}
var end = arr.length - 1;
for (; end >= 0; end--) {
if (arr[end] !== '') break;
}
if (start > end) return [];
return arr.slice(start, end - start + 1);
}
var fromParts = trim(from.split('/'));
var toParts = trim(to.split('/'));
var length = Math.min(fromParts.length, toParts.length);
var samePartsLength = length;
for (var i = 0; i < length; i++) {
if (fromParts[i] !== toParts[i]) {
samePartsLength = i;
break;
}
}
var outputParts = [];
for (var i = samePartsLength; i < fromParts.length; i++) {
outputParts.push('..');
}
outputParts = outputParts.concat(toParts.slice(samePartsLength));
return outputParts.join('/');
};
exports.sep = '/';
exports.delimiter = ':';
exports.dirname = function(path) {
var result = splitPath(path),
root = result[0],
dir = result[1];
if (!root && !dir) {
// No dirname whatsoever
return '.';
}
if (dir) {
// It has a dirname, strip trailing slash
dir = dir.substr(0, dir.length - 1);
}
return root + dir;
};
exports.basename = function(path, ext) {
var f = splitPath(path)[2];
// TODO: make this comparison case-insensitive on windows?
if (ext && f.substr(-1 * ext.length) === ext) {
f = f.substr(0, f.length - ext.length);
}
return f;
};
exports.extname = function(path) {
return splitPath(path)[3];
};
function filter (xs, f) {
if (xs.filter) return xs.filter(f);
var res = [];
for (var i = 0; i < xs.length; i++) {
if (f(xs[i], i, xs)) res.push(xs[i]);
}
return res;
}
// String.prototype.substr - negative index don't work in IE8
var substr = 'ab'.substr(-1) === 'b'
? function (str, start, len) { return str.substr(start, len) }
: function (str, start, len) {
if (start < 0) start = str.length + start;
return str.substr(start, len);
}
;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(92)))
/***/ }),
/* 291 */
/***/ (function(module, exports) {
'use strict';
var hasOwn = Object.prototype.hasOwnProperty;
var toStr = Object.prototype.toString;
var defineProperty = Object.defineProperty;
var gOPD = Object.getOwnPropertyDescriptor;
var isArray = function isArray(arr) {
if (typeof Array.isArray === 'function') {
return Array.isArray(arr);
}
return toStr.call(arr) === '[object Array]';
};
var isPlainObject = function isPlainObject(obj) {
if (!obj || toStr.call(obj) !== '[object Object]') {
return false;
}
var hasOwnConstructor = hasOwn.call(obj, 'constructor');
var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');
// Not own constructor property must be Object
if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {
return false;
}
// Own properties are enumerated firstly, so to speed up,
// if last one is own, then all properties are own.
var key;
for (key in obj) { /**/ }
return typeof key === 'undefined' || hasOwn.call(obj, key);
};
// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target
var setProperty = function setProperty(target, options) {
if (defineProperty && options.name === '__proto__') {
defineProperty(target, options.name, {
enumerable: true,
configurable: true,
value: options.newValue,
writable: true
});
} else {
target[options.name] = options.newValue;
}
};
// Return undefined instead of __proto__ if '__proto__' is not an own property
var getProperty = function getProperty(obj, name) {
if (name === '__proto__') {
if (!hasOwn.call(obj, name)) {
return void 0;
} else if (gOPD) {
// In early versions of node, obj['__proto__'] is buggy when obj has
// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.
return gOPD(obj, name).value;
}
}
return obj[name];
};
module.exports = function extend() {
var options, name, src, copy, copyIsArray, clone;
var target = arguments[0];
var i = 1;
var length = arguments.length;
var deep = false;
// Handle a deep copy situation
if (typeof target === 'boolean') {
deep = target;
target = arguments[1] || {};
// skip the boolean and the target
i = 2;
}
if (target == null || (typeof target !== 'object' && typeof target !== 'function')) {
target = {};
}
for (; i < length; ++i) {
options = arguments[i];
// Only deal with non-null/undefined values
if (options != null) {
// Extend the base object
for (name in options) {
src = getProperty(target, name);
copy = getProperty(options, name);
// Prevent never-ending loop
if (target !== copy) {
// Recurse if we're merging plain objects or arrays
if (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {
if (copyIsArray) {
copyIsArray = false;
clone = src && isArray(src) ? src : [];
} else {
clone = src && isPlainObject(src) ? src : {};
}
// Never move original objects, clone them
setProperty(target, { name: name, newValue: extend(deep, clone, copy) });
// Don't bring in undefined values
} else if (typeof copy !== 'undefined') {
setProperty(target, { name: name, newValue: copy });
}
}
}
}
}
// Return the modified object
return target;
};
/***/ }),
/* 292 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(293)
// Make exports available as default import for ES6
module.exports.default = module.exports
/***/ }),
/* 293 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.opus = exports.celt = undefined;
exports.getDuration = getDuration;
exports.createDecoderStream = createDecoderStream;
exports.createEncoderStream = createEncoderStream;
var _libopus = __webpack_require__(294);
var _decoderStream = __webpack_require__(299);
var _decoderStream2 = _interopRequireDefault(_decoderStream);
var _encoderStream = __webpack_require__(307);
var _encoderStream2 = _interopRequireDefault(_encoderStream);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var celt = exports.celt = [0x8000000b // CELT 0.7.1
];
var opus = exports.opus = true;
function getDuration(codec, buffer) {
if (codec === 'Opus') {
return _libopus.Decoder.getNumberOfSamples(buffer, 48000) / 48;
} else {
return 10;
}
}
function createDecoderStream(user) {
return new _decoderStream2.default();
}
function createEncoderStream(codec) {
return new _encoderStream2.default(codec);
}
/***/ }),
/* 294 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = {
Encoder: __webpack_require__(295),
Decoder: __webpack_require__(298),
libopus: __webpack_require__(296).instance
};
/***/ }),
/* 295 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(Buffer) {var libopus = __webpack_require__(296).instance;
var utils = __webpack_require__(297);
var util = __webpack_require__(135);
var extend = __webpack_require__(291);
var Transform = __webpack_require__(87).Transform;
/**
* Encoding mode.
* @readonly
* @enum {number}
*/
var Application = {
VOIP: 2048,
AUDIO: 2049,
RESTRICTED_LOWDELAY: 2051
};
var p_pcm = utils.p_pcm;
var p_data = utils.p_data;
/**
* Encoder for opus streams.
*
* @param {object} [opts={}] - Options for the encoder
* @param {(8000|12000|16000|24000|48000)} [opts.rate=48000] - Sampling rate of input signal (Hz)
* @param {number} [opts.channels=1] - Number of (interleaved) channels
* @param {Application} [opts.application=AUDIO] - Encoding mode
* @param {boolean} [opts.unsafe=false] - Mark this encoder as unsafe.<br>
* Encoders in unsafe mode generally operate faster.<br>
* Warning: {@link #destroy()} MUST be called on an unsafe encoder before
* it is garbage collected. Otherwise it will leak memory.
* @constructor
*/
function Encoder(opts) {
// Allow use without new
if (!(this instanceof Encoder)) return new Encoder(opts);
opts = extend({
rate: 48000,
channels: 1,
application: Application.AUDIO,
unsafe: false
}, opts);
if (opts.channels < 1 || opts.channels > 2) {
throw "channels must be either 1 or 2";
}
if ([8000, 12000, 16000, 24000, 48000].indexOf(opts.rate) == -1) {
throw "rate can only be 8k, 12k, 16k, 24k or 48k";
}
if (opts.application !== Application.VOIP &&
opts.application !== Application.AUDIO &&
opts.application !== Application.RESTRICTED_LOWDELAY) {
throw "invalid application type";
}
this._rate = opts.rate;
this._channels = opts.channels;
this._application = opts.application;
this._unsafe = opts.unsafe;
// Allocate space for the encoder state
var size = libopus._opus_encoder_get_size(this._channels);
var enc = libopus._malloc(size);
// Initialize the encoder
var ret = libopus._opus_encoder_init(enc, this._rate, this._channels, this._application);
if (ret !== 0) {
// Free allocated space and throw error
libopus._free(enc);
throw utils.stringifyError(ret);
}
// In unsafe mode, that's it. However in safe mode, we copy the state
// to a local buffer and free our allocated memory afterwards
if (this._unsafe) {
this._state = enc;
} else {
this._state = libopus.HEAPU8.slice(enc, enc + size);
libopus._free(enc);
}
}
/**
* Calls the specified function with the state loaded into memory.
*
* @param func - The function to be called
* @returns The return value of func
*/
Encoder.prototype._withState = function(func) {
if (this._unsafe) {
// Unsafe mode already has the state stored in memory
return func(this._state);
} else {
// Store state in memory
var p = libopus._malloc(this._state.length);
libopus.HEAPU8.set(this._state, p);
// Call function
try {
return func(p);
} finally {
// Retrieve state from memory
this._state.set(libopus.HEAPU8.subarray(p, p + this._state.length));
libopus._free(p);
}
}
};
/**
* Destroy this encoder.
* This method should only be called if this encoder is in unsafe mode.
* Any subsequent calls to any encode method will result in undefined behavior.
*/
Encoder.prototype.destroy = function() {
if (this._unsafe) {
libopus._free(this._state);
}
};
/**
* Encodes an array of (interleaved) pcm samples.
* One frame must be exatly 2.5, 5, 10, 20, 40 or 60ms.
*
* @param {Int16Array|Float32Array} pcm - Input samples
* @returns {Buffer} The encoded output
*/
Encoder.prototype.encode = function(pcm) {
var samples = pcm.length / this._channels;
return this._withState(function(p_enc) {
var encode;
if (pcm instanceof Float32Array) {
if (pcm.length * 4 > utils.p_pcm_len) {
throw new Error('pcm array too large');
}
libopus.HEAPF32.set(pcm, p_pcm >> 2);
encode = libopus._opus_encode_float.bind(libopus);
} else if (pcm instanceof Int16Array) {
if (pcm.length * 2 > utils.p_pcm_len) {
throw new Error('pcm array too large');
}
libopus.HEAP16.set(pcm, p_pcm >> 1);
encode = libopus._opus_encode.bind(libopus);
} else {
throw new TypeError('pcm must be Int16Array or Float32Array');
}
var len = encode(p_enc, p_pcm, samples, p_data, utils.p_data_len);
if (len < 0) {
throw new Error(utils.stringifyError(len));
}
return Buffer.from(libopus.HEAPU8.subarray(p_data, p_data + len));
});
};
/**
* Creates a transform stream from this encoder.
* Since the stream always receives a Buffer object, the actual sample
* type has to be specified manually.
*
* @param [('Float32'|'Int16')] mode - Type of sample input
* @returns {EncoderStream}
*/
Encoder.prototype.stream = function(mode) {
return new EncoderStream(this, mode);
};
function EncoderStream(encoder, mode) {
Transform.call(this, {});
this._encoder = encoder;
if (mode == 'Float32') {
this._mode = Float32Array;
} else if (mode == 'Int16') {
this._mode = Int16Array;
} else {
throw new TypeError('mode cannot be ' + mode);
}
}
util.inherits(EncoderStream, Transform);
EncoderStream.prototype._transform = function(chunk, encoding, callback) {
chunk = new this._mode(chunk.buffer, chunk.byteOffset,
chunk.byteLength / this._mode.BYTES_PER_ELEMENT);
var result;
try {
result = this._encoder.encode(chunk);
} catch (err) {
return callback(err);
}
callback(null, result);
};
Encoder.Application = Application;
module.exports = Encoder;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(97).Buffer))
/***/ }),
/* 296 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(process, __dirname) {var Module = function(Module) {
Module = Module || {};
var b;b||(b=eval("(function() { try { return Module || {} } catch(e) { return {} } })()"));var f={},l;for(l in b)b.hasOwnProperty(l)&&(f[l]=b[l]);var p=!1,q=!1,r=!1,t=!1;
if(b.ENVIRONMENT)if("WEB"===b.ENVIRONMENT)p=!0;else if("WORKER"===b.ENVIRONMENT)q=!0;else if("NODE"===b.ENVIRONMENT)r=!0;else if("SHELL"===b.ENVIRONMENT)t=!0;else throw Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.");else p="object"===typeof window,q="function"===typeof importScripts,r="object"===typeof process&&"function"==="function"&&!p&&!q,t=!p&&!r&&!q;
if(r){b.print||(b.print=console.log);b.printErr||(b.printErr=console.warn);var u,v;b.read=function(a,c){u||(u=null);v||(v=__webpack_require__(290));a=v.normalize(a);var d=u.readFileSync(a);d||a==v.resolve(a)||(a=path.join(__dirname,"..","src",a),d=u.readFileSync(a));d&&!c&&(d=d.toString());return d};b.readBinary=function(a){a=b.read(a,!0);a.buffer||(a=new Uint8Array(a));assert(a.buffer);return a};b.load=function(a){aa(read(a))};b.thisProgram||(b.thisProgram=1<process.argv.length?process.argv[1].replace(/\\/g,
"/"):"unknown-program");b.arguments=process.argv.slice(2);"undefined"!==typeof module&&(module.exports=b);process.on("uncaughtException",function(a){if(!(a instanceof w))throw a;});b.inspect=function(){return"[Emscripten Module object]"}}else if(t)b.print||(b.print=print),"undefined"!=typeof printErr&&(b.printErr=printErr),b.read="undefined"!=typeof read?read:function(){throw"no read() available (jsc?)";},b.readBinary=function(a){if("function"===typeof readbuffer)return new Uint8Array(readbuffer(a));
a=read(a,"binary");assert("object"===typeof a);return a},"undefined"!=typeof scriptArgs?b.arguments=scriptArgs:"undefined"!=typeof arguments&&(b.arguments=arguments),eval("if (typeof gc === 'function' && gc.toString().indexOf('[native code]') > 0) var gc = undefined");else if(p||q)b.read=function(a){var c=new XMLHttpRequest;c.open("GET",a,!1);c.send(null);return c.responseText},b.readAsync=function(a,c,d){var e=new XMLHttpRequest;e.open("GET",a,!0);e.responseType="arraybuffer";e.onload=function(){200==
e.status||0==e.status&&e.response?c(e.response):d()};e.onerror=d;e.send(null)},"undefined"!=typeof arguments&&(b.arguments=arguments),"undefined"!==typeof console?(b.print||(b.print=function(a){console.log(a)}),b.printErr||(b.printErr=function(a){console.warn(a)})):b.print||(b.print=function(){}),q&&(b.load=importScripts),"undefined"===typeof b.setWindowTitle&&(b.setWindowTitle=function(a){document.title=a});else throw"Unknown runtime environment. Where are we?";function aa(a){eval.call(null,a)}
!b.load&&b.read&&(b.load=function(a){aa(b.read(a))});b.print||(b.print=function(){});b.printErr||(b.printErr=b.print);b.arguments||(b.arguments=[]);b.thisProgram||(b.thisProgram="./this.program");b.print=b.print;b.m=b.printErr;b.preRun=[];b.postRun=[];for(l in f)f.hasOwnProperty(l)&&(b[l]=f[l]);
var f=void 0,y={B:function(a){tempRet0=a},w:function(){return tempRet0},g:function(){return x},c:function(a){x=a},q:function(a){switch(a){case "i1":case "i8":return 1;case "i16":return 2;case "i32":return 4;case "i64":return 8;case "float":return 4;case "double":return 8;default:return"*"===a[a.length-1]?y.i:"i"===a[0]?(a=parseInt(a.substr(1)),assert(0===a%8),a/8):0}},v:function(a){return Math.max(y.q(a),y.i)},C:16,Q:function(a,c){"double"===c||"i64"===c?a&7&&(assert(4===(a&7)),a+=4):assert(0===(a&
3));return a},K:function(a,c,d){return d||"i64"!=a&&"double"!=a?a?Math.min(c||(a?y.v(a):0),y.i):Math.min(c,8):8},k:function(a,c,d){return d&&d.length?(d.splice||(d=Array.prototype.slice.call(d)),d.splice(0,0,c),b["dynCall_"+a].apply(null,d)):b["dynCall_"+a].call(null,c)},e:[],r:function(a){for(var c=0;c<y.e.length;c++)if(!y.e[c])return y.e[c]=a,2*(1+c);throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.";},A:function(a){y.e[(a-2)/2]=null},d:function(a){y.d.n||
(y.d.n={});y.d.n[a]||(y.d.n[a]=1,b.m(a))},l:{},M:function(a,c){assert(c);y.l[c]||(y.l[c]={});var d=y.l[c];d[a]||(d[a]=function(){return y.k(c,a,arguments)});return d[a]},L:function(){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work";},f:function(a){var c=x;x=x+a|0;x=x+15&-16;return c},o:function(a){var c=z;z=z+a|0;z=z+15&-16;return c},b:function(a){var c=E;E=E+a|0;E=E+15&-16;if(a=E>=F)G("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+
F+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 "),a=!0;return a?(E=c,0):c},p:function(a,c){return Math.ceil(a/(c?c:16))*(c?c:16)},P:function(a,c,d){return d?+(a>>>0)+4294967296*+(c>>>0):+(a>>>0)+4294967296*+(c|0)},h:8,i:4,D:0};b.Runtime=y;y.addFunction=y.r;
y.removeFunction=y.A;var H=!1;function assert(a,c){a||G("Assertion failed: "+c)}function ba(a){var c=b["_"+a];if(!c)try{c=eval("_"+a)}catch(d){}assert(c,"Cannot call unknown function "+a+" (perhaps LLVM optimizations or closure removed it?)");return c}var ca,da;
(function(){function a(a){a=a.toString().match(g).slice(1);return{arguments:a[0],body:a[1],returnValue:a[2]}}function c(){if(!k){k={};for(var c in d)d.hasOwnProperty(c)&&(k[c]=a(d[c]))}}var d={stackSave:function(){y.g()},stackRestore:function(){y.c()},arrayToC:function(a){var c=y.f(a.length);ea(a,c);return c},stringToC:function(a){var c=0;null!==a&&void 0!==a&&0!==a&&(c=y.f((a.length<<2)+1),fa(a,c));return c}},e={string:d.stringToC,array:d.arrayToC};da=function(a,c,d,g,k){a=ba(a);var C=[],D=0;if(g)for(var n=
0;n<g.length;n++){var P=e[d[n]];P?(0===D&&(D=y.g()),C[n]=P(g[n])):C[n]=g[n]}d=a.apply(null,C);"string"===c&&(d=I(d));if(0!==D){if(k&&k.async){EmterpreterAsync.F.push(function(){y.c(D)});return}y.c(D)}return d};var g=/^function\s*[a-zA-Z$_0-9]*\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/,k=null;ca=function(d,e,g){g=g||[];var B=ba(d);d=g.every(function(a){return"number"===a});var oa="string"!==e;if(oa&&d)return B;var C=g.map(function(a,c){return"$"+c});e="(function("+C.join(",")+
") {";var D=g.length;if(!d){c();e+="var stack = "+k.stackSave.body+";";for(var n=0;n<D;n++){var P=C[n],K=g[n];"number"!==K&&(K=k[K+"ToC"],e+="var "+K.arguments+" = "+P+";",e+=K.body+";",e+=P+"=("+K.returnValue+");")}}g=a(function(){return B}).returnValue;e+="var ret = "+g+"("+C.join(",")+");";oa||(g=a(function(){return I}).returnValue,e+="ret = "+g+"(ret);");d||(c(),e+=k.stackRestore.body.replace("()","(stack)")+";");return eval(e+"return ret})")}})();b.ccall=da;b.cwrap=ca;
function ga(a,c,d){d=d||"i8";"*"===d.charAt(d.length-1)&&(d="i32");switch(d){case "i1":J[a>>0]=c;break;case "i8":J[a>>0]=c;break;case "i16":L[a>>1]=c;break;case "i32":M[a>>2]=c;break;case "i64":tempI64=[c>>>0,(tempDouble=c,1<=+ha(tempDouble)?0<tempDouble?(ia(+ja(tempDouble/4294967296),4294967295)|0)>>>0:~~+ka((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)];M[a>>2]=tempI64[0];M[a+4>>2]=tempI64[1];break;case "float":N[a>>2]=c;break;case "double":la[a>>3]=c;break;default:G("invalid type for setValue: "+
d)}}b.setValue=ga;function ma(a,c){c=c||"i8";"*"===c.charAt(c.length-1)&&(c="i32");switch(c){case "i1":return J[a>>0];case "i8":return J[a>>0];case "i16":return L[a>>1];case "i32":return M[a>>2];case "i64":return M[a>>2];case "float":return N[a>>2];case "double":return la[a>>3];default:G("invalid type for setValue: "+c)}return null}b.getValue=ma;b.ALLOC_NORMAL=0;b.ALLOC_STACK=1;b.ALLOC_STATIC=2;b.ALLOC_DYNAMIC=3;b.ALLOC_NONE=4;
function O(a,c,d,e){var g,k;"number"===typeof a?(g=!0,k=a):(g=!1,k=a.length);var h="string"===typeof c?c:null;d=4==d?e:["function"===typeof Q?Q:y.o,y.f,y.o,y.b][void 0===d?2:d](Math.max(k,h?1:c.length));if(g){e=d;assert(0==(d&3));for(a=d+(k&-4);e<a;e+=4)M[e>>2]=0;for(a=d+k;e<a;)J[e++>>0]=0;return d}if("i8"===h)return a.subarray||a.slice?R.set(a,d):R.set(new Uint8Array(a),d),d;e=0;for(var A,m;e<k;){var B=a[e];"function"===typeof B&&(B=y.N(B));g=h||c[e];0===g?e++:("i64"==g&&(g="i32"),ga(d+e,B,g),m!==
g&&(A=y.q(g),m=g),e+=A)}return d}b.allocate=O;b.getMemory=function(a){return na?"undefined"!==typeof S&&!S.a||!T?y.b(a):Q(a):y.o(a)};function I(a,c){if(0===c||!a)return"";for(var d=0,e,g=0;;){e=R[a+g>>0];d|=e;if(0==e&&!c)break;g++;if(c&&g==c)break}c||(c=g);e="";if(128>d){for(;0<c;)d=String.fromCharCode.apply(String,R.subarray(a,a+Math.min(c,1024))),e=e?e+d:d,a+=1024,c-=1024;return e}return b.UTF8ToString(a)}b.Pointer_stringify=I;
b.AsciiToString=function(a){for(var c="";;){var d=J[a++>>0];if(!d)return c;c+=String.fromCharCode(d)}};b.stringToAscii=function(a,c){return pa(a,c,!1)};
function qa(a,c){for(var d,e,g,k,h,A,m="";;){d=a[c++];if(!d)return m;d&128?(e=a[c++]&63,192==(d&224)?m+=String.fromCharCode((d&31)<<6|e):(g=a[c++]&63,224==(d&240)?d=(d&15)<<12|e<<6|g:(k=a[c++]&63,240==(d&248)?d=(d&7)<<18|e<<12|g<<6|k:(h=a[c++]&63,248==(d&252)?d=(d&3)<<24|e<<18|g<<12|k<<6|h:(A=a[c++]&63,d=(d&1)<<30|e<<24|g<<18|k<<12|h<<6|A))),65536>d?m+=String.fromCharCode(d):(d-=65536,m+=String.fromCharCode(55296|d>>10,56320|d&1023)))):m+=String.fromCharCode(d)}}b.UTF8ArrayToString=qa;
b.UTF8ToString=function(a){return qa(R,a)};
function ra(a,c,d,e){if(!(0<e))return 0;var g=d;e=d+e-1;for(var k=0;k<a.length;++k){var h=a.charCodeAt(k);55296<=h&&57343>=h&&(h=65536+((h&1023)<<10)|a.charCodeAt(++k)&1023);if(127>=h){if(d>=e)break;c[d++]=h}else{if(2047>=h){if(d+1>=e)break;c[d++]=192|h>>6}else{if(65535>=h){if(d+2>=e)break;c[d++]=224|h>>12}else{if(2097151>=h){if(d+3>=e)break;c[d++]=240|h>>18}else{if(67108863>=h){if(d+4>=e)break;c[d++]=248|h>>24}else{if(d+5>=e)break;c[d++]=252|h>>30;c[d++]=128|h>>24&63}c[d++]=128|h>>18&63}c[d++]=128|
h>>12&63}c[d++]=128|h>>6&63}c[d++]=128|h&63}}c[d]=0;return d-g}b.stringToUTF8Array=ra;b.stringToUTF8=function(a,c,d){return ra(a,R,c,d)};function sa(a){for(var c=0,d=0;d<a.length;++d){var e=a.charCodeAt(d);55296<=e&&57343>=e&&(e=65536+((e&1023)<<10)|a.charCodeAt(++d)&1023);127>=e?++c:c=2047>=e?c+2:65535>=e?c+3:2097151>=e?c+4:67108863>=e?c+5:c+6}return c}b.lengthBytesUTF8=sa;
function ta(){return ua().replace(/__Z[\w\d_]+/g,function(a){var c;a:{if(b.___cxa_demangle)try{var d=Q(a.length);fa(a.substr(1),d);var e=Q(4),g=b.___cxa_demangle(d,0,0,e);if(0===ma(e,"i32")&&g){c=I(g);break a}}catch(k){c=a;break a}finally{d&&va(d),e&&va(e),g&&va(g)}y.d("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling");c=a}return a===c?a:a+" ["+c+"]"})}
function ua(){var a=Error();if(!a.stack){try{throw Error(0);}catch(c){a=c}if(!a.stack)return"(no stack trace available)"}return a.stack.toString()}b.stackTrace=function(){return ta()};function wa(){var a=E;0<a%4096&&(a+=4096-a%4096);return a}for(var buffer,J,R,L,xa,M,ya,N,la,za=0,z=0,na=!1,Aa=0,x=0,Ba=0,E=0,Ca=b.TOTAL_STACK||5242880,F=b.TOTAL_MEMORY||16777216,U=65536;U<F||U<2*Ca;)U=16777216>U?2*U:U+16777216;U!==F&&(F=U);b.buffer?buffer=b.buffer:buffer=new ArrayBuffer(F);b.HEAP8=J=new Int8Array(buffer);
b.HEAP16=L=new Int16Array(buffer);b.HEAP32=M=new Int32Array(buffer);b.HEAPU8=R=new Uint8Array(buffer);b.HEAPU16=xa=new Uint16Array(buffer);b.HEAPU32=ya=new Uint32Array(buffer);b.HEAPF32=N=new Float32Array(buffer);b.HEAPF64=la=new Float64Array(buffer);M[0]=255;if(255!==R[0]||0!==R[3])throw"Typed arrays 2 must be run on a little-endian system";b.HEAP=void 0;b.buffer=buffer;b.HEAP8=J;b.HEAP16=L;b.HEAP32=M;b.HEAPU8=R;b.HEAPU16=xa;b.HEAPU32=ya;b.HEAPF32=N;b.HEAPF64=la;
function V(a){for(;0<a.length;){var c=a.shift();if("function"==typeof c)c();else{var d=c.J;"number"===typeof d?void 0===c.j?y.k("v",d):y.k("vi",d,[c.j]):d(void 0===c.j?null:c.j)}}}var Da=[],Ea=[],Fa=[],Ga=[],Ha=[],T=!1;function Ia(a){Da.unshift(a)}b.addOnPreRun=Ia;b.addOnInit=function(a){Ea.unshift(a)};b.addOnPreMain=function(a){Fa.unshift(a)};b.addOnExit=function(a){Ga.unshift(a)};function Ja(a){Ha.unshift(a)}b.addOnPostRun=Ja;
function Ka(a,c,d){d=Array(0<d?d:sa(a)+1);a=ra(a,d,0,d.length);c&&(d.length=a);return d}b.intArrayFromString=Ka;b.intArrayToString=function(a){for(var c=[],d=0;d<a.length;d++){var e=a[d];255<e&&(e&=255);c.push(String.fromCharCode(e))}return c.join("")};function fa(a,c,d){a=Ka(a,d);for(d=0;d<a.length;)J[c+d>>0]=a[d],d+=1}b.writeStringToMemory=fa;function ea(a,c){for(var d=0;d<a.length;d++)J[c++>>0]=a[d]}b.writeArrayToMemory=ea;
function pa(a,c,d){for(var e=0;e<a.length;++e)J[c++>>0]=a.charCodeAt(e);d||(J[c>>0]=0)}b.writeAsciiToMemory=pa;Math.imul&&-5===Math.imul(4294967295,5)||(Math.imul=function(a,c){var d=a&65535,e=c&65535;return d*e+((a>>>16)*e+d*(c>>>16)<<16)|0});Math.O=Math.imul;Math.clz32||(Math.clz32=function(a){a=a>>>0;for(var c=0;32>c;c++)if(a&1<<31-c)return c;return 32});Math.H=Math.clz32;var ha=Math.abs,ka=Math.ceil,ja=Math.floor,La=Math.pow,ia=Math.min,W=0,Ma=null,X=null;
b.addRunDependency=function(){W++;b.monitorRunDependencies&&b.monitorRunDependencies(W)};b.removeRunDependency=function(){W--;b.monitorRunDependencies&&b.monitorRunDependencies(W);if(0==W&&(null!==Ma&&(clearInterval(Ma),Ma=null),X)){var a=X;X=null;a()}};b.preloadedImages={};b.preloadedAudios={};za=8;z=za+31072;Ea.push();
O([1,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,6,0,0,0,1,0,0,0,5,0,0,0,2,0,0,0,15,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,12,0,0,0,3,0,0,0,11,0,0,0,4,0,0,0,14,0,0,0,1,0,0,0,9,0,0,0,6,0,0,0,13,0,0,0,2,0,0,0,10,0,0,0,5,0,0,0,0,0,157,62,0,64,94,62,0,192,4,62,0,128,237,62,0,64,137,62,0,0,0,0,0,192,76,63,0,0,205,61,0,0,0,0,190,98,0,0,198,98,0,0,215,98,0,0,232,98,0,0,247,98,0,0,8,99,0,0,32,99,0,0,46,99,0,0,0,0,128,63,0,0,0,64,0,0,64,64,0,0,128,64,0,0,160,64,0,0,192,64,0,0,224,
64,0,0,0,65,0,0,128,65,0,0,192,65,0,0,16,66,0,0,48,66,0,0,72,66,0,0,96,66,0,0,120,66,0,0,134,66,0,0,144,66,0,0,158,66,0,0,176,66,0,0,212,66,0,0,6,67,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,64,64,0,0,64,64,0,0,128,64,0,0,160,64,0,0,192,64,0,0,0,65,0,0,0,65,168,1,0,0,104,4,0,0,36,7,0,0,220,9,0,0,144,12,0,0,64,15,0,0,236,17,0,0,84,19,0,0,16,20,0,0,132,20,0,0,208,20,0,0,8,21,0,0,40,21,0,0,64,21,0,0,
76,21,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,
1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,
0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,
0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,3,0,0,0,5,0,0,0,7,0,0,0,9,0,0,0,11,0,0,0,13,0,0,0,15,0,0,0,17,0,0,0,19,0,0,0,21,0,0,0,23,0,0,0,25,0,0,0,27,0,0,0,29,0,0,0,31,0,0,0,33,0,0,0,35,0,0,0,37,0,0,0,39,0,0,0,41,0,0,0,43,
0,0,0,45,0,0,0,47,0,0,0,49,0,0,0,51,0,0,0,53,0,0,0,55,0,0,0,57,0,0,0,59,0,0,0,61,0,0,0,63,0,0,0,65,0,0,0,67,0,0,0,69,0,0,0,71,0,0,0,73,0,0,0,75,0,0,0,77,0,0,0,79,0,0,0,81,0,0,0,83,0,0,0,85,0,0,0,87,0,0,0,89,0,0,0,91,0,0,0,93,0,0,0,95,0,0,0,97,0,0,0,99,0,0,0,101,0,0,0,103,0,0,0,105,0,0,0,107,0,0,0,109,0,0,0,111,0,0,0,113,0,0,0,115,0,0,0,117,0,0,0,119,0,0,0,121,0,0,0,123,0,0,0,125,0,0,0,127,0,0,0,129,0,0,0,131,0,0,0,133,0,0,0,135,0,0,0,137,0,0,0,139,0,0,0,141,0,0,0,143,0,0,0,145,0,0,0,147,0,0,0,149,
0,0,0,151,0,0,0,153,0,0,0,155,0,0,0,157,0,0,0,159,0,0,0,161,0,0,0,163,0,0,0,165,0,0,0,167,0,0,0,169,0,0,0,171,0,0,0,173,0,0,0,175,0,0,0,177,0,0,0,179,0,0,0,181,0,0,0,183,0,0,0,185,0,0,0,187,0,0,0,189,0,0,0,191,0,0,0,193,0,0,0,195,0,0,0,197,0,0,0,199,0,0,0,201,0,0,0,203,0,0,0,205,0,0,0,207,0,0,0,209,0,0,0,211,0,0,0,213,0,0,0,215,0,0,0,217,0,0,0,219,0,0,0,221,0,0,0,223,0,0,0,225,0,0,0,227,0,0,0,229,0,0,0,231,0,0,0,233,0,0,0,235,0,0,0,237,0,0,0,239,0,0,0,241,0,0,0,243,0,0,0,245,0,0,0,247,0,0,0,249,0,
0,0,251,0,0,0,253,0,0,0,255,0,0,0,1,1,0,0,3,1,0,0,5,1,0,0,7,1,0,0,9,1,0,0,11,1,0,0,13,1,0,0,15,1,0,0,17,1,0,0,19,1,0,0,21,1,0,0,23,1,0,0,25,1,0,0,27,1,0,0,29,1,0,0,31,1,0,0,33,1,0,0,35,1,0,0,37,1,0,0,39,1,0,0,41,1,0,0,43,1,0,0,45,1,0,0,47,1,0,0,49,1,0,0,51,1,0,0,53,1,0,0,55,1,0,0,57,1,0,0,59,1,0,0,61,1,0,0,63,1,0,0,65,1,0,0,67,1,0,0,69,1,0,0,71,1,0,0,73,1,0,0,75,1,0,0,77,1,0,0,79,1,0,0,81,1,0,0,83,1,0,0,85,1,0,0,87,1,0,0,89,1,0,0,91,1,0,0,93,1,0,0,95,1,0,0,13,0,0,0,25,0,0,0,41,0,0,0,61,0,0,0,85,0,
0,0,113,0,0,0,145,0,0,0,181,0,0,0,221,0,0,0,9,1,0,0,57,1,0,0,109,1,0,0,165,1,0,0,225,1,0,0,33,2,0,0,101,2,0,0,173,2,0,0,249,2,0,0,73,3,0,0,157,3,0,0,245,3,0,0,81,4,0,0,177,4,0,0,21,5,0,0,125,5,0,0,233,5,0,0,89,6,0,0,205,6,0,0,69,7,0,0,193,7,0,0,65,8,0,0,197,8,0,0,77,9,0,0,217,9,0,0,105,10,0,0,253,10,0,0,149,11,0,0,49,12,0,0,209,12,0,0,117,13,0,0,29,14,0,0,201,14,0,0,121,15,0,0,45,16,0,0,229,16,0,0,161,17,0,0,97,18,0,0,37,19,0,0,237,19,0,0,185,20,0,0,137,21,0,0,93,22,0,0,53,23,0,0,17,24,0,0,241,24,
0,0,213,25,0,0,189,26,0,0,169,27,0,0,153,28,0,0,141,29,0,0,133,30,0,0,129,31,0,0,129,32,0,0,133,33,0,0,141,34,0,0,153,35,0,0,169,36,0,0,189,37,0,0,213,38,0,0,241,39,0,0,17,41,0,0,53,42,0,0,93,43,0,0,137,44,0,0,185,45,0,0,237,46,0,0,37,48,0,0,97,49,0,0,161,50,0,0,229,51,0,0,45,53,0,0,121,54,0,0,201,55,0,0,29,57,0,0,117,58,0,0,209,59,0,0,49,61,0,0,149,62,0,0,253,63,0,0,105,65,0,0,217,66,0,0,77,68,0,0,197,69,0,0,65,71,0,0,193,72,0,0,69,74,0,0,205,75,0,0,89,77,0,0,233,78,0,0,125,80,0,0,21,82,0,0,177,
83,0,0,81,85,0,0,245,86,0,0,157,88,0,0,73,90,0,0,249,91,0,0,173,93,0,0,101,95,0,0,33,97,0,0,225,98,0,0,165,100,0,0,109,102,0,0,57,104,0,0,9,106,0,0,221,107,0,0,181,109,0,0,145,111,0,0,113,113,0,0,85,115,0,0,61,117,0,0,41,119,0,0,25,121,0,0,13,123,0,0,5,125,0,0,1,127,0,0,1,129,0,0,5,131,0,0,13,133,0,0,25,135,0,0,41,137,0,0,61,139,0,0,85,141,0,0,113,143,0,0,145,145,0,0,181,147,0,0,221,149,0,0,9,152,0,0,57,154,0,0,109,156,0,0,165,158,0,0,225,160,0,0,33,163,0,0,101,165,0,0,173,167,0,0,249,169,0,0,73,
172,0,0,157,174,0,0,245,176,0,0,81,179,0,0,177,181,0,0,21,184,0,0,125,186,0,0,233,188,0,0,89,191,0,0,205,193,0,0,69,196,0,0,193,198,0,0,65,201,0,0,197,203,0,0,77,206,0,0,217,208,0,0,105,211,0,0,253,213,0,0,149,216,0,0,49,219,0,0,209,221,0,0,117,224,0,0,29,227,0,0,201,229,0,0,121,232,0,0,45,235,0,0,229,237,0,0,161,240,0,0,63,0,0,0,129,0,0,0,231,0,0,0,121,1,0,0,63,2,0,0,65,3,0,0,135,4,0,0,25,6,0,0,255,7,0,0,65,10,0,0,231,12,0,0,249,15,0,0,127,19,0,0,129,23,0,0,7,28,0,0,25,33,0,0,191,38,0,0,1,45,0,0,
231,51,0,0,121,59,0,0,191,67,0,0,193,76,0,0,135,86,0,0,25,97,0,0,127,108,0,0,193,120,0,0,231,133,0,0,249,147,0,0,255,162,0,0,1,179,0,0,7,196,0,0,25,214,0,0,63,233,0,0,129,253,0,0,231,18,1,0,121,41,1,0,63,65,1,0,65,90,1,0,135,116,1,0,25,144,1,0,255,172,1,0,65,203,1,0,231,234,1,0,249,11,2,0,127,46,2,0,129,82,2,0,7,120,2,0,25,159,2,0,191,199,2,0,1,242,2,0,231,29,3,0,121,75,3,0,191,122,3,0,193,171,3,0,135,222,3,0,25,19,4,0,127,73,4,0,193,129,4,0,231,187,4,0,249,247,4,0,255,53,5,0,1,118,5,0,7,184,5,0,
25,252,5,0,63,66,6,0,129,138,6,0,231,212,6,0,121,33,7,0,63,112,7,0,65,193,7,0,135,20,8,0,25,106,8,0,255,193,8,0,65,28,9,0,231,120,9,0,249,215,9,0,127,57,10,0,129,157,10,0,7,4,11,0,25,109,11,0,191,216,11,0,1,71,12,0,231,183,12,0,121,43,13,0,191,161,13,0,193,26,14,0,135,150,14,0,25,21,15,0,127,150,15,0,193,26,16,0,231,161,16,0,249,43,17,0,255,184,17,0,1,73,18,0,7,220,18,0,25,114,19,0,63,11,20,0,129,167,20,0,231,70,21,0,121,233,21,0,63,143,22,0,65,56,23,0,135,228,23,0,25,148,24,0,255,70,25,0,65,253,
25,0,231,182,26,0,249,115,27,0,127,52,28,0,129,248,28,0,7,192,29,0,25,139,30,0,191,89,31,0,1,44,32,0,231,1,33,0,121,219,33,0,191,184,34,0,193,153,35,0,135,126,36,0,25,103,37,0,127,83,38,0,193,67,39,0,231,55,40,0,249,47,41,0,255,43,42,0,1,44,43,0,7,48,44,0,25,56,45,0,63,68,46,0,129,84,47,0,231,104,48,0,121,129,49,0,63,158,50,0,65,191,51,0,135,228,52,0,25,14,54,0,255,59,55,0,65,110,56,0,231,164,57,0,249,223,58,0,127,31,60,0,129,99,61,0,7,172,62,0,25,249,63,0,191,74,65,0,1,161,66,0,231,251,67,0,121,
91,69,0,191,191,70,0,193,40,72,0,135,150,73,0,25,9,75,0,127,128,76,0,193,252,77,0,231,125,79,0,249,3,81,0,255,142,82,0,1,31,84,0,7,180,85,0,25,78,87,0,63,237,88,0,129,145,90,0,231,58,92,0,121,233,93,0,63,157,95,0,65,86,97,0,135,20,99,0,25,216,100,0,255,160,102,0,65,111,104,0,231,66,106,0,249,27,108,0,127,250,109,0,65,1,0,0,169,2,0,0,9,5,0,0,193,8,0,0,65,14,0,0,9,22,0,0,169,32,0,0,193,46,0,0,1,65,0,0,41,88,0,0,9,117,0,0,129,152,0,0,129,195,0,0,9,247,0,0,41,52,1,0,1,124,1,0,193,207,1,0,169,48,2,0,9,
160,2,0,65,31,3,0,193,175,3,0,9,83,4,0,169,10,5,0,65,216,5,0,129,189,6,0,41,188,7,0,9,214,8,0,1,13,10,0,1,99,11,0,9,218,12,0,41,116,14,0,129,51,16,0,65,26,18,0,169,42,20,0,9,103,22,0,193,209,24,0,65,109,27,0,9,60,30,0,169,64,33,0,193,125,36,0,1,246,39,0,41,172,43,0,9,163,47,0,129,221,51,0,129,94,56,0,9,41,61,0,41,64,66,0,1,167,71,0,193,96,77,0,169,112,83,0,9,218,89,0,65,160,96,0,193,198,103,0,9,81,111,0,169,66,119,0,65,159,127,0,129,106,136,0,41,168,145,0,9,92,155,0,1,138,165,0,1,54,176,0,9,100,187,
0,41,24,199,0,129,86,211,0,65,35,224,0,169,130,237,0,9,121,251,0,193,10,10,1,65,60,25,1,9,18,41,1,169,144,57,1,193,188,74,1,1,155,92,1,41,48,111,1,9,129,130,1,129,146,150,1,129,105,171,1,9,11,193,1,41,124,215,1,1,194,238,1,193,225,6,2,169,224,31,2,9,196,57,2,65,145,84,2,193,77,112,2,9,255,140,2,169,170,170,2,65,86,201,2,129,7,233,2,41,196,9,3,9,146,43,3,1,119,78,3,1,121,114,3,9,158,151,3,41,236,189,3,129,105,229,3,65,28,14,4,169,10,56,4,9,59,99,4,193,179,143,4,65,123,189,4,9,152,236,4,169,16,29,5,
193,235,78,5,1,48,130,5,41,228,182,5,9,15,237,5,129,183,36,6,129,228,93,6,9,157,152,6,41,232,212,6,1,205,18,7,193,82,82,7,169,128,147,7,9,94,214,7,65,242,26,8,193,68,97,8,9,93,169,8,169,66,243,8,65,253,62,9,129,148,140,9,41,16,220,9,9,120,45,10,1,212,128,10,1,44,214,10,9,136,45,11,41,240,134,11,129,108,226,11,65,5,64,12,169,194,159,12,9,173,1,13,193,204,101,13,65,42,204,13,9,206,52,14,169,192,159,14,193,10,13,15,1,181,124,15,41,200,238,15,9,77,99,16,129,76,218,16,129,207,83,17,9,223,207,17,41,132,
78,18,1,200,207,18,193,179,83,19,169,80,218,19,9,168,99,20,65,195,239,20,193,171,126,21,9,107,16,22,169,10,165,22,65,148,60,23,129,17,215,23,41,140,116,24,9,14,21,25,1,161,184,25,1,79,95,26,9,34,9,27,41,36,182,27,129,95,102,28,65,222,25,29,169,170,208,29,9,207,138,30,193,85,72,31,65,73,9,32,9,180,205,32,169,160,149,33,193,25,97,34,1,42,48,35,41,220,2,36,9,59,217,36,129,81,179,37,147,6,0,0,69,14,0,0,15,28,0,0,17,51,0,0,91,87,0,0,13,142,0,0,119,221,0,0,57,77,1,0,99,230,1,0,149,179,2,0,31,193,3,0,33,
29,5,0,171,215,6,0,221,2,9,0,7,179,11,0,201,254,14,0,51,255,18,0,229,207,23,0,47,143,29,0,49,94,36,0,251,96,44,0,173,190,53,0,151,161,64,0,89,55,77,0,3,177,91,0,53,67,108,0,63,38,127,0,65,150,148,0,75,211,172,0,125,33,200,0,39,201,230,0,233,22,9,1,211,91,47,1,133,237,89,1,79,38,137,1,81,101,189,1,155,14,247,1,77,139,54,2,183,73,124,2,121,189,200,2,163,95,28,3,213,174,119,3,95,47,219,3,97,107,71,4,235,242,188,4,29,92,60,5,71,67,198,5,9,75,91,6,115,28,252,6,37,103,169,7,111,225,99,8,113,72,44,9,59,
96,3,10,237,243,233,10,215,213,224,11,153,223,232,12,67,242,2,14,117,246,47,15,127,220,112,16,129,156,198,17,139,54,50,19,189,178,180,20,103,33,79,22,41,155,2,24,19,65,208,25,197,60,185,27,143,192,190,29,145,7,226,31,219,85,36,34,141,248,134,36,247,69,11,39,185,157,178,41,227,104,126,44,21,26,112,47,159,45,137,50,161,41,203,53,43,158,55,57,93,37,208,60,135,99,150,64,73,7,140,68,179,201,178,72,101,110,12,77,175,195,154,81,177,162,95,86,123,239,92,91,45,153,148,96,23,154,8,102,217,247,186,107,131,195,
173,113,181,25,227,119,191,34,93,126,29,35,0,0,113,77,0,0,145,156,0,0,253,38,1,0,101,12,2,0,233,119,3,0,153,162,5,0,53,214,8,0,45,112,13,0,225,228,19,0,33,195,28,0,237,183,40,0,117,146,56,0,89,72,77,0,41,250,103,0,37,248,137,0,61,199,180,0,81,38,234,0,177,19,44,1,221,210,124,1,133,242,222,1,201,82,85,2,185,43,227,2,21,20,140,3,77,8,84,4,193,113,63,5,65,46,83,6,205,151,148,7,149,140,9,9,57,119,184,10,73,87,168,12,5,202,224,14,93,19,106,17,49,39,77,20,209,178,147,23,189,38,72,27,165,192,117,31,169,
149,40,36,217,156,109,41,245,185,82,47,109,200,230,53,161,166,57,61,97,65,92,69,173,159,96,78,181,238,89,88,25,142,92,99,105,28,126,111,229,131,213,124,255,189,0,0,1,168,1,0,143,107,3,0,241,158,6,0,63,35,12,0,193,61,21,0,143,182,35,0,241,252,57,0,255,81,91,0,1,250,139,0,15,117,209,0,113,191,50,1,63,154,184,1,193,220,109,2,15,207,95,3,113,142,158,4,255,123,61,6,1,182,83,8,143,156,252,10,241,97,88,14,63,167,140,18,193,37,197,23,143,101,52,30,241,129,20,38,255,251,167,47,1,156,58,59,15,98,34,73,113,
134,192,89,63,138,130,109,193,88,227,132,1,14,4,0,145,33,9,0,17,44,19,0,65,238,37,0,65,79,71,0,145,67,128,0,17,247,221,0,1,70,115,1,1,146,90,2,17,1,184,3,145,53,188,5,65,143,167,8,65,6,206,12,17,178,155,18,145,15,154,26,1,26,118,37,1,76,7,52,145,158,87,71,17,157,172,96,65,166,145,129,35,81,22,0,197,158,50,0,23,185,107,0,153,246,216,0,107,137,160,1,13,196,254,2,31,1,80,5,33,217,29,9,51,108,48,15,213,162,164,24,167,103,8,39,41,253,125,60,123,181,231,91,29,119,29,137,175,160,45,201,173,142,123,0,137,
230,25,1,57,150,94,2,61,22,216,4,181,99,119,9,225,40,198,17,33,3,52,32,117,72,130,56,125,87,87,96,191,91,175,2,129,216,39,6,247,132,94,13,233,254,173,27,127,139,235,54,129,183,229,104,23,3,156,193,193,12,255,14,57,106,133,34,25,238,145,75,129,120,43,158,51,225,9,84,149,139,0,0,55,152,0,0,255,165,0,0,4,181,0,0,103,197,0,0,69,215,0,0,193,234,0,0,255,255,0,0,172,21,0,0,128,187,0,0,120,0,0,0,21,0,0,0,21,0,0,0,0,154,89,63,0,0,0,0,0,0,128,63,0,0,128,63,72,87,0,0,3,0,0,0,8,0,0,0,120,0,0,0,11,0,0,0,249,99,
0,0,116,87,0,0,24,22,0,0,128,7,0,0,3,0,0,0,248,23,0,0,48,39,0,0,104,39,0,0,160,39,0,0,216,39,0,0,136,1,0,0,166,94,0,0,224,100,0,0,104,102,0,0,106,28,141,56,82,187,30,58,8,105,220,58,130,237,87,59,137,99,178,59,3,42,5,60,48,220,57,60,180,62,119,60,28,163,158,60,209,242,197,60,254,134,241,60,155,171,16,61,5,173,42,61,132,194,70,61,83,230,100,61,17,137,130,61,135,159,147,61,203,178,165,61,209,190,184,61,58,191,204,61,84,175,225,61,20,138,247,61,14,37,7,62,217,244,18,62,95,49,31,62,104,215,43,62,138,
227,56,62,48,82,70,62,148,31,84,62,191,71,98,62,142,198,112,62,176,151,127,62,82,91,135,62,96,15,143,62,152,229,150,62,121,219,158,62,112,238,166,62,216,27,175,62,251,96,183,62,17,187,191,62,70,39,200,62,183,162,208,62,120,42,217,62,148,187,225,62,12,83,234,62,222,237,242,62,6,137,251,62,190,16,2,63,31,90,6,63,36,159,10,63,80,222,14,63,43,22,19,63,65,69,23,63,37,106,27,63,115,131,31,63,206,143,35,63,230,141,39,63,116,124,43,63,63,90,47,63,25,38,51,63,231,222,54,63,153,131,58,63,51,19,62,63,197,140,
65,63,119,239,68,63,127,58,72,63,39,109,75,63,206,134,78,63,229,134,81,63,241,108,84,63,142,56,87,63,105,233,89,63,69,127,92,63,250,249,94,63,115,89,97,63,175,157,99,63,193,198,101,63,207,212,103,63,17,200,105,63,210,160,107,63,110,95,109,63,80,4,111,63,244,143,112,63,230,2,114,63,189,93,115,63,31,161,116,63,191,205,117,63,87,228,118,63,176,229,119,63,151,210,120,63,227,171,121,63,115,114,122,63,39,39,123,63,231,202,123,63,157,94,124,63,53,227,124,63,156,89,125,63,189,194,125,63,134,31,126,63,222,
112,126,63,171,183,126,63,207,244,126,63,38,41,127,63,134,85,127,63,190,122,127,63,150,153,127,63,204,178,127,63,20,199,127,63,28,215,127,63,130,227,127,63,221,236,127,63,182,243,127,63,138,248,127,63,200,251,127,63,214,253,127,63,7,255,127,63,165,255,127,63,232,255,127,63,253,255,127,63,0,0,128,63,224,1,0,0,135,136,8,59,255,255,255,255,5,0,96,0,3,0,32,0,4,0,8,0,2,0,4,0,4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,158,87,0,0,48,24,0,0,0,0,0,0,0,0,128,63,0,0,0,128,99,250,127,63,191,117,86,188,139,233,127,63,10,
113,214,188,121,205,127,63,231,206,32,189,47,166,127,63,58,94,86,189,175,115,127,63,19,242,133,189,249,53,127,63,42,175,160,189,18,237,126,63,51,101,187,189,253,152,126,63,4,19,214,189,188,57,126,63,115,183,240,189,85,207,125,63,168,168,5,190,203,89,125,63,187,239,18,190,37,217,124,63,92,48,32,190,103,77,124,63,245,105,45,190,152,182,123,63,243,155,58,190,190,20,123,63,194,197,71,190,226,103,122,63,205,230,84,190,9,176,121,63,130,254,97,190,60,237,120,63,77,12,111,190,132,31,120,63,156,15,124,190,
234,70,119,63,238,131,132,190,119,99,118,63,62,250,138,190,54,117,117,63,117,106,145,190,48,124,116,63,76,212,151,190,113,120,115,63,122,55,158,190,3,106,114,63,183,147,164,190,244,80,113,63,188,232,170,190,79,45,112,63,65,54,177,190,33,255,110,63,1,124,183,190,118,198,109,63,180,185,189,190,94,131,108,63,21,239,195,190,231,53,107,63,222,27,202,190,30,222,105,63,201,63,208,190,18,124,104,63,146,90,214,190,212,15,103,63,243,107,220,190,116,153,101,63,170,115,226,190,1,25,100,63,113,113,232,190,141,
142,98,63,7,101,238,190,40,250,96,63,39,78,244,190,230,91,95,63,144,44,250,190,215,179,93,63,0,0,0,191,15,2,92,63,27,228,2,191,160,70,90,63,119,194,5,191,158,129,88,63,246,154,8,191,29,179,86,63,119,109,11,191,49,219,84,63,218,57,14,191,239,249,82,63,0,0,17,191,108,15,81,63,202,191,19,191,189,27,79,63,24,121,22,191,248,30,77,63,205,43,25,191,52,25,75,63,202,215,27,191,136,10,73,63,241,124,30,191,10,243,70,63,36,27,33,191,209,210,68,63,70,178,35,191,247,169,66,63,58,66,38,191,147,120,64,63,227,202,
40,191,189,62,62,63,37,76,43,191,143,252,59,63,227,197,45,191,34,178,57,63,1,56,48,191,144,95,55,63,101,162,50,191,243,4,53,63,243,4,53,191,101,162,50,63,144,95,55,191,1,56,48,63,34,178,57,191,227,197,45,63,143,252,59,191,37,76,43,63,189,62,62,191,227,202,40,63,147,120,64,191,58,66,38,63,247,169,66,191,70,178,35,63,209,210,68,191,36,27,33,63,10,243,70,191,241,124,30,63,136,10,73,191,202,215,27,63,52,25,75,191,205,43,25,63,248,30,77,191,24,121,22,63,189,27,79,191,202,191,19,63,108,15,81,191,0,0,17,
63,239,249,82,191,218,57,14,63,49,219,84,191,119,109,11,63,29,179,86,191,246,154,8,63,158,129,88,191,119,194,5,63,160,70,90,191,27,228,2,63,15,2,92,191,0,0,0,63,215,179,93,191,144,44,250,62,230,91,95,191,39,78,244,62,40,250,96,191,7,101,238,62,141,142,98,191,113,113,232,62,1,25,100,191,170,115,226,62,116,153,101,191,243,107,220,62,212,15,103,191,146,90,214,62,18,124,104,191,201,63,208,62,30,222,105,191,222,27,202,62,231,53,107,191,21,239,195,62,94,131,108,191,180,185,189,62,118,198,109,191,1,124,
183,62,33,255,110,191,65,54,177,62,79,45,112,191,188,232,170,62,244,80,113,191,183,147,164,62,3,106,114,191,122,55,158,62,113,120,115,191,76,212,151,62,48,124,116,191,117,106,145,62,54,117,117,191,62,250,138,62,119,99,118,191,238,131,132,62,234,70,119,191,156,15,124,62,132,31,120,191,77,12,111,62,60,237,120,191,130,254,97,62,9,176,121,191,205,230,84,62,226,103,122,191,194,197,71,62,190,20,123,191,243,155,58,62,152,182,123,191,245,105,45,62,103,77,124,191,92,48,32,62,37,217,124,191,187,239,18,62,203,
89,125,191,168,168,5,62,85,207,125,191,115,183,240,61,188,57,126,191,4,19,214,61,253,152,126,191,51,101,187,61,18,237,126,191,42,175,160,61,249,53,127,191,19,242,133,61,175,115,127,191,58,94,86,61,47,166,127,191,231,206,32,61,121,205,127,191,10,113,214,60,139,233,127,191,191,117,86,60,99,250,127,191,0,48,141,36,0,0,128,191,191,117,86,188,99,250,127,191,10,113,214,188,139,233,127,191,231,206,32,189,121,205,127,191,58,94,86,189,47,166,127,191,19,242,133,189,175,115,127,191,42,175,160,189,249,53,127,
191,51,101,187,189,18,237,126,191,4,19,214,189,253,152,126,191,115,183,240,189,188,57,126,191,168,168,5,190,85,207,125,191,187,239,18,190,203,89,125,191,92,48,32,190,37,217,124,191,245,105,45,190,103,77,124,191,243,155,58,190,152,182,123,191,194,197,71,190,190,20,123,191,205,230,84,190,226,103,122,191,130,254,97,190,9,176,121,191,77,12,111,190,60,237,120,191,156,15,124,190,132,31,120,191,238,131,132,190,234,70,119,191,62,250,138,190,119,99,118,191,117,106,145,190,54,117,117,191,76,212,151,190,48,
124,116,191,122,55,158,190,113,120,115,191,183,147,164,190,3,106,114,191,188,232,170,190,244,80,113,191,65,54,177,190,79,45,112,191,1,124,183,190,33,255,110,191,180,185,189,190,118,198,109,191,21,239,195,190,94,131,108,191,222,27,202,190,231,53,107,191,201,63,208,190,30,222,105,191,146,90,214,190,18,124,104,191,243,107,220,190,212,15,103,191,170,115,226,190,116,153,101,191,113,113,232,190,1,25,100,191,7,101,238,190,141,142,98,191,39,78,244,190,40,250,96,191,144,44,250,190,230,91,95,191,0,0,0,191,
215,179,93,191,27,228,2,191,15,2,92,191,119,194,5,191,160,70,90,191,246,154,8,191,158,129,88,191,119,109,11,191,29,179,86,191,218,57,14,191,49,219,84,191,0,0,17,191,239,249,82,191,202,191,19,191,108,15,81,191,24,121,22,191,189,27,79,191,205,43,25,191,248,30,77,191,202,215,27,191,52,25,75,191,241,124,30,191,136,10,73,191,36,27,33,191,10,243,70,191,70,178,35,191,209,210,68,191,58,66,38,191,247,169,66,191,227,202,40,191,147,120,64,191,37,76,43,191,189,62,62,191,227,197,45,191,143,252,59,191,1,56,48,
191,34,178,57,191,101,162,50,191,144,95,55,191,243,4,53,191,243,4,53,191,144,95,55,191,101,162,50,191,34,178,57,191,1,56,48,191,143,252,59,191,227,197,45,191,189,62,62,191,37,76,43,191,147,120,64,191,227,202,40,191,247,169,66,191,58,66,38,191,209,210,68,191,70,178,35,191,10,243,70,191,36,27,33,191,136,10,73,191,241,124,30,191,52,25,75,191,202,215,27,191,248,30,77,191,205,43,25,191,189,27,79,191,24,121,22,191,108,15,81,191,202,191,19,191,239,249,82,191,0,0,17,191,49,219,84,191,218,57,14,191,29,179,
86,191,119,109,11,191,158,129,88,191,246,154,8,191,160,70,90,191,119,194,5,191,15,2,92,191,27,228,2,191,215,179,93,191,0,0,0,191,230,91,95,191,144,44,250,190,40,250,96,191,39,78,244,190,141,142,98,191,7,101,238,190,1,25,100,191,113,113,232,190,116,153,101,191,170,115,226,190,212,15,103,191,243,107,220,190,18,124,104,191,146,90,214,190,30,222,105,191,201,63,208,190,231,53,107,191,222,27,202,190,94,131,108,191,21,239,195,190,118,198,109,191,180,185,189,190,33,255,110,191,1,124,183,190,79,45,112,191,
65,54,177,190,244,80,113,191,188,232,170,190,3,106,114,191,183,147,164,190,113,120,115,191,122,55,158,190,48,124,116,191,76,212,151,190,54,117,117,191,117,106,145,190,119,99,118,191,62,250,138,190,234,70,119,191,238,131,132,190,132,31,120,191,156,15,124,190,60,237,120,191,77,12,111,190,9,176,121,191,130,254,97,190,226,103,122,191,205,230,84,190,190,20,123,191,194,197,71,190,152,182,123,191,243,155,58,190,103,77,124,191,245,105,45,190,37,217,124,191,92,48,32,190,203,89,125,191,187,239,18,190,85,207,
125,191,168,168,5,190,188,57,126,191,115,183,240,189,253,152,126,191,4,19,214,189,18,237,126,191,51,101,187,189,249,53,127,191,42,175,160,189,175,115,127,191,19,242,133,189,47,166,127,191,58,94,86,189,121,205,127,191,231,206,32,189,139,233,127,191,10,113,214,188,99,250,127,191,191,117,86,188,0,0,128,191,0,48,13,165,99,250,127,191,191,117,86,60,139,233,127,191,10,113,214,60,121,205,127,191,231,206,32,61,47,166,127,191,58,94,86,61,175,115,127,191,19,242,133,61,249,53,127,191,42,175,160,61,18,237,126,
191,51,101,187,61,253,152,126,191,4,19,214,61,188,57,126,191,115,183,240,61,85,207,125,191,168,168,5,62,203,89,125,191,187,239,18,62,37,217,124,191,92,48,32,62,103,77,124,191,245,105,45,62,152,182,123,191,243,155,58,62,190,20,123,191,194,197,71,62,226,103,122,191,205,230,84,62,9,176,121,191,130,254,97,62,60,237,120,191,77,12,111,62,132,31,120,191,156,15,124,62,234,70,119,191,238,131,132,62,119,99,118,191,62,250,138,62,54,117,117,191,117,106,145,62,48,124,116,191,76,212,151,62,113,120,115,191,122,
55,158,62,3,106,114,191,183,147,164,62,244,80,113,191,188,232,170,62,79,45,112,191,65,54,177,62,33,255,110,191,1,124,183,62,118,198,109,191,180,185,189,62,94,131,108,191,21,239,195,62,231,53,107,191,222,27,202,62,30,222,105,191,201,63,208,62,18,124,104,191,146,90,214,62,212,15,103,191,243,107,220,62,116,153,101,191,170,115,226,62,1,25,100,191,113,113,232,62,141,142,98,191,7,101,238,62,40,250,96,191,39,78,244,62,230,91,95,191,144,44,250,62,215,179,93,191,0,0,0,63,15,2,92,191,27,228,2,63,160,70,90,
191,119,194,5,63,158,129,88,191,246,154,8,63,29,179,86,191,119,109,11,63,49,219,84,191,218,57,14,63,239,249,82,191,0,0,17,63,108,15,81,191,202,191,19,63,189,27,79,191,24,121,22,63,248,30,77,191,205,43,25,63,52,25,75,191,202,215,27,63,136,10,73,191,241,124,30,63,10,243,70,191,36,27,33,63,209,210,68,191,70,178,35,63,247,169,66,191,58,66,38,63,147,120,64,191,227,202,40,63,189,62,62,191,37,76,43,63,143,252,59,191,227,197,45,63,34,178,57,191,1,56,48,63,144,95,55,191,101,162,50,63,243,4,53,191,243,4,53,
63,101,162,50,191,144,95,55,63,1,56,48,191,34,178,57,63,227,197,45,191,143,252,59,63,37,76,43,191,189,62,62,63,227,202,40,191,147,120,64,63,58,66,38,191,247,169,66,63,70,178,35,191,209,210,68,63,36,27,33,191,10,243,70,63,241,124,30,191,136,10,73,63,202,215,27,191,52,25,75,63,205,43,25,191,248,30,77,63,24,121,22,191,189,27,79,63,202,191,19,191,108,15,81,63,0,0,17,191,239,249,82,63,218,57,14,191,49,219,84,63,119,109,11,191,29,179,86,63,246,154,8,191,158,129,88,63,119,194,5,191,160,70,90,63,27,228,2,
191,15,2,92,63,0,0,0,191,215,179,93,63,144,44,250,190,230,91,95,63,39,78,244,190,40,250,96,63,7,101,238,190,141,142,98,63,113,113,232,190,1,25,100,63,170,115,226,190,116,153,101,63,243,107,220,190,212,15,103,63,146,90,214,190,18,124,104,63,201,63,208,190,30,222,105,63,222,27,202,190,231,53,107,63,21,239,195,190,94,131,108,63,180,185,189,190,118,198,109,63,1,124,183,190,33,255,110,63,65,54,177,190,79,45,112,63,188,232,170,190,244,80,113,63,183,147,164,190,3,106,114,63,122,55,158,190,113,120,115,63,
76,212,151,190,48,124,116,63,117,106,145,190,54,117,117,63,62,250,138,190,119,99,118,63,238,131,132,190,234,70,119,63,156,15,124,190,132,31,120,63,77,12,111,190,60,237,120,63,130,254,97,190,9,176,121,63,205,230,84,190,226,103,122,63,194,197,71,190,190,20,123,63,243,155,58,190,152,182,123,63,245,105,45,190,103,77,124,63,92,48,32,190,37,217,124,63,187,239,18,190,203,89,125,63,168,168,5,190,85,207,125,63,115,183,240,189,188,57,126,63,4,19,214,189,253,152,126,63,51,101,187,189,18,237,126,63,42,175,160,
189,249,53,127,63,19,242,133,189,175,115,127,63,58,94,86,189,47,166,127,63,231,206,32,189,121,205,127,63,10,113,214,188,139,233,127,63,191,117,86,188,99,250,127,63,0,200,83,165,0,0,128,63,191,117,86,60,99,250,127,63,10,113,214,60,139,233,127,63,231,206,32,61,121,205,127,63,58,94,86,61,47,166,127,63,19,242,133,61,175,115,127,63,42,175,160,61,249,53,127,63,51,101,187,61,18,237,126,63,4,19,214,61,253,152,126,63,115,183,240,61,188,57,126,63,168,168,5,62,85,207,125,63,187,239,18,62,203,89,125,63,92,48,
32,62,37,217,124,63,245,105,45,62,103,77,124,63,243,155,58,62,152,182,123,63,194,197,71,62,190,20,123,63,205,230,84,62,226,103,122,63,130,254,97,62,9,176,121,63,77,12,111,62,60,237,120,63,156,15,124,62,132,31,120,63,238,131,132,62,234,70,119,63,62,250,138,62,119,99,118,63,117,106,145,62,54,117,117,63,76,212,151,62,48,124,116,63,122,55,158,62,113,120,115,63,183,147,164,62,3,106,114,63,188,232,170,62,244,80,113,63,65,54,177,62,79,45,112,63,1,124,183,62,33,255,110,63,180,185,189,62,118,198,109,63,21,
239,195,62,94,131,108,63,222,27,202,62,231,53,107,63,201,63,208,62,30,222,105,63,146,90,214,62,18,124,104,63,243,107,220,62,212,15,103,63,170,115,226,62,116,153,101,63,113,113,232,62,1,25,100,63,7,101,238,62,141,142,98,63,39,78,244,62,40,250,96,63,144,44,250,62,230,91,95,63,0,0,0,63,215,179,93,63,27,228,2,63,15,2,92,63,119,194,5,63,160,70,90,63,246,154,8,63,158,129,88,63,119,109,11,63,29,179,86,63,218,57,14,63,49,219,84,63,0,0,17,63,239,249,82,63,202,191,19,63,108,15,81,63,24,121,22,63,189,27,79,
63,205,43,25,63,248,30,77,63,202,215,27,63,52,25,75,63,241,124,30,63,136,10,73,63,36,27,33,63,10,243,70,63,70,178,35,63,209,210,68,63,58,66,38,63,247,169,66,63,227,202,40,63,147,120,64,63,37,76,43,63,189,62,62,63,227,197,45,63,143,252,59,63,1,56,48,63,34,178,57,63,101,162,50,63,144,95,55,63,243,4,53,63,243,4,53,63,144,95,55,63,101,162,50,63,34,178,57,63,1,56,48,63,143,252,59,63,227,197,45,63,189,62,62,63,37,76,43,63,147,120,64,63,227,202,40,63,247,169,66,63,58,66,38,63,209,210,68,63,70,178,35,63,
10,243,70,63,36,27,33,63,136,10,73,63,241,124,30,63,52,25,75,63,202,215,27,63,248,30,77,63,205,43,25,63,189,27,79,63,24,121,22,63,108,15,81,63,202,191,19,63,239,249,82,63,0,0,17,63,49,219,84,63,218,57,14,63,29,179,86,63,119,109,11,63,158,129,88,63,246,154,8,63,160,70,90,63,119,194,5,63,15,2,92,63,27,228,2,63,215,179,93,63,0,0,0,63,230,91,95,63,144,44,250,62,40,250,96,63,39,78,244,62,141,142,98,63,7,101,238,62,1,25,100,63,113,113,232,62,116,153,101,63,170,115,226,62,212,15,103,63,243,107,220,62,18,
124,104,63,146,90,214,62,30,222,105,63,201,63,208,62,231,53,107,63,222,27,202,62,94,131,108,63,21,239,195,62,118,198,109,63,180,185,189,62,33,255,110,63,1,124,183,62,79,45,112,63,65,54,177,62,244,80,113,63,188,232,170,62,3,106,114,63,183,147,164,62,113,120,115,63,122,55,158,62,48,124,116,63,76,212,151,62,54,117,117,63,117,106,145,62,119,99,118,63,62,250,138,62,234,70,119,63,238,131,132,62,132,31,120,63,156,15,124,62,60,237,120,63,77,12,111,62,9,176,121,63,130,254,97,62,226,103,122,63,205,230,84,62,
190,20,123,63,194,197,71,62,152,182,123,63,243,155,58,62,103,77,124,63,245,105,45,62,37,217,124,63,92,48,32,62,203,89,125,63,187,239,18,62,85,207,125,63,168,168,5,62,188,57,126,63,115,183,240,61,253,152,126,63,4,19,214,61,18,237,126,63,51,101,187,61,249,53,127,63,42,175,160,61,175,115,127,63,19,242,133,61,47,166,127,63,58,94,86,61,121,205,127,63,231,206,32,61,139,233,127,63,10,113,214,60,99,250,127,63,191,117,86,60,240,0,0,0,137,136,136,59,1,0,0,0,5,0,48,0,3,0,16,0,4,0,4,0,4,0,1,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,94,91,0,0,48,24,0,0,0,0,0,0,120,0,0,0,136,136,8,60,2,0,0,0,5,0,24,0,3,0,8,0,2,0,4,0,4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,62,93,0,0,48,24,0,0,0,0,0,0,60,0,0,0,137,136,136,60,3,0,0,0,5,0,12,0,3,0,4,0,4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46,94,0,0,48,24,0,0,0,0,0,0,255,255,127,63,142,255,127,63,106,254,127,63,147,252,127,63,7,250,127,63,200,246,127,63,214,242,127,63,48,238,127,63,214,232,127,63,200,226,127,63,7,220,127,63,147,212,127,63],"i8",4,y.h);
O([107,204,127,63,143,195,127,63,0,186,127,63,189,175,127,63,199,164,127,63,29,153,127,63,192,140,127,63,176,127,127,63,236,113,127,63,118,99,127,63,75,84,127,63,110,68,127,63,222,51,127,63,154,34,127,63,163,16,127,63,250,253,126,63,157,234,126,63,141,214,126,63,203,193,126,63,86,172,126,63,46,150,126,63,83,127,126,63,198,103,126,63,134,79,126,63,148,54,126,63,239,28,126,63,152,2,126,63,143,231,125,63,211,203,125,63,102,175,125,63,70,146,125,63,116,116,125,63,241,85,125,63,188,54,125,63,213,22,125,
63,60,246,124,63,242,212,124,63,246,178,124,63,73,144,124,63,235,108,124,63,219,72,124,63,27,36,124,63,169,254,123,63,135,216,123,63,180,177,123,63,48,138,123,63,252,97,123,63,23,57,123,63,130,15,123,63,61,229,122,63,72,186,122,63,162,142,122,63,77,98,122,63,72,53,122,63,148,7,122,63,48,217,121,63,29,170,121,63,90,122,121,63,233,73,121,63,200,24,121,63,249,230,120,63,123,180,120,63,78,129,120,63,115,77,120,63,234,24,120,63,178,227,119,63,205,173,119,63,58,119,119,63,249,63,119,63,10,8,119,63,110,
207,118,63,37,150,118,63,47,92,118,63,140,33,118,63,60,230,117,63,64,170,117,63,151,109,117,63,66,48,117,63,65,242,116,63,148,179,116,63,59,116,116,63,55,52,116,63,135,243,115,63,44,178,115,63,38,112,115,63,118,45,115,63,26,234,114,63,20,166,114,63,100,97,114,63,10,28,114,63,5,214,113,63,87,143,113,63,0,72,113,63,255,255,112,63,85,183,112,63,2,110,112,63,6,36,112,63,98,217,111,63,21,142,111,63,32,66,111,63,132,245,110,63,63,168,110,63,83,90,110,63,192,11,110,63,134,188,109,63,165,108,109,63,29,28,
109,63,239,202,108,63,27,121,108,63,161,38,108,63,128,211,107,63,187,127,107,63,80,43,107,63,64,214,106,63,140,128,106,63,50,42,106,63,53,211,105,63,147,123,105,63,77,35,105,63,100,202,104,63,216,112,104,63,168,22,104,63,213,187,103,63,96,96,103,63,72,4,103,63,143,167,102,63,51,74,102,63,54,236,101,63,151,141,101,63,87,46,101,63,119,206,100,63,245,109,100,63,212,12,100,63,18,171,99,63,177,72,99,63,176,229,98,63,16,130,98,63,209,29,98,63,243,184,97,63,119,83,97,63,92,237,96,63,164,134,96,63,78,31,
96,63,91,183,95,63,203,78,95,63,158,229,94,63,213,123,94,63,112,17,94,63,110,166,93,63,210,58,93,63,154,206,92,63,198,97,92,63,89,244,91,63,81,134,91,63,174,23,91,63,114,168,90,63,157,56,90,63,46,200,89,63,39,87,89,63,135,229,88,63,79,115,88,63,127,0,88,63,23,141,87,63,24,25,87,63,130,164,86,63,86,47,86,63,147,185,85,63,58,67,85,63,75,204,84,63,199,84,84,63,174,220,83,63,1,100,83,63,191,234,82,63,233,112,82,63,127,246,81,63,130,123,81,63,242,255,80,63,207,131,80,63,26,7,80,63,210,137,79,63,250,11,
79,63,144,141,78,63,148,14,78,63,9,143,77,63,237,14,77,63,65,142,76,63,5,13,76,63,59,139,75,63,225,8,75,63,249,133,74,63,131,2,74,63,127,126,73,63,238,249,72,63,207,116,72,63,36,239,71,63,237,104,71,63,41,226,70,63,218,90,70,63,0,211,69,63,155,74,69,63,172,193,68,63,50,56,68,63,47,174,67,63,162,35,67,63,141,152,66,63,239,12,66,63,200,128,65,63,26,244,64,63,229,102,64,63,40,217,63,63,229,74,63,63,27,188,62,63,204,44,62,63,247,156,61,63,157,12,61,63,190,123,60,63,92,234,59,63,117,88,59,63,10,198,58,
63,29,51,58,63,173,159,57,63,187,11,57,63,71,119,56,63,81,226,55,63,218,76,55,63,227,182,54,63,107,32,54,63,116,137,53,63,253,241,52,63,7,90,52,63,147,193,51,63,160,40,51,63,48,143,50,63,66,245,49,63,216,90,49,63,241,191,48,63,142,36,48,63,175,136,47,63,85,236,46,63,129,79,46,63,50,178,45,63,105,20,45,63,39,118,44,63,107,215,43,63,55,56,43,63,139,152,42,63,103,248,41,63,204,87,41,63,186,182,40,63,50,21,40,63,51,115,39,63,191,208,38,63,214,45,38,63,121,138,37,63,167,230,36,63,97,66,36,63,169,157,35,
63,125,248,34,63,223,82,34,63,207,172,33,63,77,6,33,63,91,95,32,63,248,183,31,63,37,16,31,63,226,103,30,63,48,191,29,63,16,22,29,63,129,108,28,63,132,194,27,63,26,24,27,63,67,109,26,63,0,194,25,63,81,22,25,63,54,106,24,63,177,189,23,63,193,16,23,63,103,99,22,63,163,181,21,63,118,7,21,63,225,88,20,63,228,169,19,63,127,250,18,63,179,74,18,63,128,154,17,63,231,233,16,63,232,56,16,63,132,135,15,63,187,213,14,63,142,35,14,63,254,112,13,63,10,190,12,63,179,10,12,63,250,86,11,63,223,162,10,63,99,238,9,63,
134,57,9,63,73,132,8,63,172,206,7,63,175,24,7,63,84,98,6,63,155,171,5,63,131,244,4,63,15,61,4,63,61,133,3,63,15,205,2,63,134,20,2,63,161,91,1,63,97,162,0,63,143,209,255,62,167,93,254,62,14,233,252,62,194,115,251,62,198,253,249,62,27,135,248,62,193,15,247,62,186,151,245,62,6,31,244,62,168,165,242,62,158,43,241,62,236,176,239,62,145,53,238,62,144,185,236,62,232,60,235,62,154,191,233,62,169,65,232,62,21,195,230,62,223,67,229,62,8,196,227,62,145,67,226,62,124,194,224,62,200,64,223,62,120,190,221,62,140,
59,220,62,6,184,218,62,230,51,217,62,46,175,215,62,223,41,214,62,249,163,212,62,125,29,211,62,110,150,209,62,204,14,208,62,151,134,206,62,210,253,204,62,125,116,203,62,153,234,201,62,39,96,200,62,40,213,198,62,159,73,197,62,138,189,195,62,236,48,194,62,198,163,192,62,25,22,191,62,230,135,189,62,45,249,187,62,241,105,186,62,50,218,184,62,241,73,183,62,47,185,181,62,238,39,180,62,47,150,178,62,242,3,177,62,57,113,175,62,4,222,173,62,86,74,172,62,47,182,170,62,144,33,169,62,122,140,167,62,239,246,165,
62,239,96,164,62,124,202,162,62,151,51,161,62,64,156,159,62,122,4,158,62,68,108,156,62,161,211,154,62,145,58,153,62,22,161,151,62,48,7,150,62,225,108,148,62,41,210,146,62,11,55,145,62,135,155,143,62,158,255,141,62,81,99,140,62,162,198,138,62,145,41,137,62,32,140,135,62,80,238,133,62,34,80,132,62,151,177,130,62,176,18,129,62,222,230,126,62,169,167,123,62,195,103,120,62,47,39,117,62,238,229,113,62,4,164,110,62,115,97,107,62,60,30,104,62,98,218,100,62,232,149,97,62,207,80,94,62,26,11,91,62,204,196,87,
62,230,125,84,62,107,54,81,62,93,238,77,62,191,165,74,62,146,92,71,62,218,18,68,62,151,200,64,62,206,125,61,62,128,50,58,62,174,230,54,62,93,154,51,62,141,77,48,62,66,0,45,62,125,178,41,62,66,100,38,62,145,21,35,62,110,198,31,62,219,118,28,62,218,38,25,62,109,214,21,62,152,133,18,62,91,52,15,62,186,226,11,62,183,144,8,62,84,62,5,62,148,235,1,62,240,48,253,61,6,138,246,61,113,226,239,61,51,58,233,61,79,145,226,61,207,231,219,61,181,61,213,61,3,147,206,61,192,231,199,61,242,59,193,61,156,143,186,61,
195,226,179,61,108,53,173,61,155,135,166,61,85,217,159,61,159,42,153,61,126,123,146,61,246,203,139,61,11,28,133,61,135,215,124,61,70,118,111,61,93,20,98,61,214,177,84,61,185,78,71,61,16,235,57,61,229,134,44,61,64,34,31,61,44,189,17,61,178,87,4,61,181,227,237,60,96,23,211,60,118,74,184,60,11,125,157,60,50,175,130,60,250,193,79,60,254,36,26,60,42,15,201,59,153,167,59,59,46,125,214,185,210,70,113,187,171,222,227,187,166,140,39,188,129,41,93,188,225,98,137,188,160,48,164,188,236,253,190,188,179,202,217,
188,224,150,244,188,49,177,7,189,147,22,21,189,140,123,34,189,19,224,47,189,30,68,61,189,165,167,74,189,157,10,88,189,254,108,101,189,190,206,114,189,234,23,128,189,27,200,134,189,237,119,141,189,92,39,148,189,99,214,154,189,253,132,161,189,38,51,168,189,217,224,174,189,17,142,181,189,202,58,188,189,254,230,194,189,170,146,201,189,200,61,208,189,84,232,214,189,74,146,221,189,164,59,228,189,93,228,234,189,114,140,241,189,221,51,248,189,154,218,254,189,82,192,2,190,252,18,6,190,71,101,9,190,50,183,
12,190,186,8,16,190,221,89,19,190,152,170,22,190,234,250,25,190,208,74,29,190,71,154,32,190,78,233,35,190,225,55,39,190,0,134,42,190,166,211,45,190,211,32,49,190,131,109,52,190,181,185,55,190,101,5,59,190,147,80,62,190,58,155,65,190,90,229,68,190,240,46,72,190,249,119,75,190,116,192,78,190,93,8,82,190,179,79,85,190,115,150,88,190,156,220,91,190,42,34,95,190,27,103,98,190,109,171,101,190,31,239,104,190,44,50,108,190,148,116,111,190,84,182,114,190,106,247,117,190,211,55,121,190,141,119,124,190,150,
182,127,190,117,122,129,190,69,25,131,190,185,183,132,190,208,85,134,190,136,243,135,190,225,144,137,190,218,45,139,190,112,202,140,190,164,102,142,190,116,2,144,190,223,157,145,190,228,56,147,190,129,211,148,190,182,109,150,190,129,7,152,190,226,160,153,190,215,57,155,190,95,210,156,190,121,106,158,190,35,2,160,190,94,153,161,190,38,48,163,190,125,198,164,190,96,92,166,190,206,241,167,190,198,134,169,190,71,27,171,190,80,175,172,190,224,66,174,190,245,213,175,190,143,104,177,190,173,250,178,190,
77,140,180,190,110,29,182,190,16,174,183,190,48,62,185,190,207,205,186,190,234,92,188,190,130,235,189,190,148,121,191,190,31,7,193,190,35,148,194,190,159,32,196,190,145,172,197,190,248,55,199,190,211,194,200,190,34,77,202,190,226,214,203,190,19,96,205,190,181,232,206,190,197,112,208,190,66,248,209,190,45,127,211,190,131,5,213,190,67,139,214,190,109,16,216,190,255,148,217,190,249,24,219,190,89,156,220,190,29,31,222,190,70,161,223,190,211,34,225,190,193,163,226,190,16,36,228,190,190,163,229,190,204,
34,231,190,56,161,232,190,0,31,234,190,36,156,235,190,162,24,237,190,122,148,238,190,171,15,240,190,51,138,241,190,18,4,243,190,70,125,244,190,207,245,245,190,170,109,247,190,217,228,248,190,88,91,250,190,40,209,251,190,71,70,253,190,181,186,254,190,56,23,0,191,187,208,0,191,228,137,1,191,178,66,2,191,37,251,2,191,59,179,3,191,246,106,4,191,83,34,5,191,83,217,5,191,245,143,6,191,56,70,7,191,29,252,7,191,162,177,8,191,199,102,9,191,140,27,10,191,240,207,10,191,243,131,11,191,147,55,12,191,209,234,
12,191,172,157,13,191,36,80,14,191,56,2,15,191,232,179,15,191,50,101,16,191,24,22,17,191,151,198,17,191,176,118,18,191,99,38,19,191,174,213,19,191,145,132,20,191,13,51,21,191,31,225,21,191,200,142,22,191,8,60,23,191,221,232,23,191,72,149,24,191,72,65,25,191,220,236,25,191,4,152,26,191,192,66,27,191,15,237,27,191,240,150,28,191,99,64,29,191,104,233,29,191,254,145,30,191,37,58,31,191,220,225,31,191,35,137,32,191,250,47,33,191,95,214,33,191,82,124,34,191,212,33,35,191,227,198,35,191,127,107,36,191,167,
15,37,191,92,179,37,191,157,86,38,191,104,249,38,191,191,155,39,191,160,61,40,191,11,223,40,191,255,127,41,191,125,32,42,191,131,192,42,191,17,96,43,191,39,255,43,191,196,157,44,191,232,59,45,191,146,217,45,191,195,118,46,191,121,19,47,191,180,175,47,191,115,75,48,191,183,230,48,191,127,129,49,191,203,27,50,191,153,181,50,191,234,78,51,191,189,231,51,191,18,128,52,191,232,23,53,191,63,175,53,191,22,70,54,191,110,220,54,191,69,114,55,191,156,7,56,191,113,156,56,191,197,48,57,191,150,196,57,191,230,
87,58,191,178,234,58,191,252,124,59,191,194,14,60,191,3,160,60,191,193,48,61,191,250,192,61,191,173,80,62,191,219,223,62,191,131,110,63,191,165,252,63,191,64,138,64,191,83,23,65,191,224,163,65,191,228,47,66,191,96,187,66,191,83,70,67,191,190,208,67,191,158,90,68,191,246,227,68,191,194,108,69,191,5,245,69,191,188,124,70,191,232,3,71,191,137,138,71,191,157,16,72,191,37,150,72,191,32,27,73,191,142,159,73,191,111,35,74,191,193,166,74,191,134,41,75,191,188,171,75,191,99,45,76,191,122,174,76,191,2,47,77,
191,250,174,77,191,98,46,78,191,57,173,78,191,126,43,79,191,51,169,79,191,85,38,80,191,230,162,80,191,228,30,81,191,80,154,81,191,40,21,82,191,109,143,82,191,30,9,83,191,59,130,83,191,195,250,83,191,183,114,84,191,22,234,84,191,223,96,85,191,18,215,85,191,176,76,86,191,183,193,86,191,39,54,87,191,0,170,87,191,66,29,88,191,236,143,88,191,254,1,89,191,120,115,89,191,89,228,89,191,162,84,90,191,81,196,90,191,102,51,91,191,226,161,91,191,195,15,92,191,10,125,92,191,183,233,92,191,200,85,93,191,62,193,
93,191,24,44,94,191,87,150,94,191,249,255,94,191,255,104,95,191,104,209,95,191,51,57,96,191,98,160,96,191,243,6,97,191,229,108,97,191,58,210,97,191,240,54,98,191,8,155,98,191,128,254,98,191,89,97,99,191,146,195,99,191,44,37,100,191,37,134,100,191,126,230,100,191,55,70,101,191,78,165,101,191,197,3,102,191,154,97,102,191,205,190,102,191,94,27,103,191,77,119,103,191,154,210,103,191,68,45,104,191,75,135,104,191,174,224,104,191,111,57,105,191,139,145,105,191,4,233,105,191,217,63,106,191,9,150,106,191,
148,235,106,191,123,64,107,191,188,148,107,191,89,232,107,191,79,59,108,191,160,141,108,191,75,223,108,191,79,48,109,191,173,128,109,191,101,208,109,191,117,31,110,191,223,109,110,191,161,187,110,191,187,8,111,191,46,85,111,191,248,160,111,191,27,236,111,191,149,54,112,191,103,128,112,191,144,201,112,191,15,18,113,191,230,89,113,191,19,161,113,191,151,231,113,191,113,45,114,191,160,114,114,191,38,183,114,191,1,251,114,191,50,62,115,191,184,128,115,191,148,194,115,191,196,3,116,191,73,68,116,191,34,
132,116,191,80,195,116,191,210,1,117,191,168,63,117,191,210,124,117,191,80,185,117,191,33,245,117,191,69,48,118,191,189,106,118,191,136,164,118,191,166,221,118,191,22,22,119,191,217,77,119,191,239,132,119,191,87,187,119,191,17,241,119,191,29,38,120,191,122,90,120,191,42,142,120,191,43,193,120,191,125,243,120,191,33,37,121,191,22,86,121,191,92,134,121,191,242,181,121,191,218,228,121,191,18,19,122,191,154,64,122,191,115,109,122,191,157,153,122,191,22,197,122,191,223,239,122,191,248,25,123,191,97,67,
123,191,26,108,123,191,34,148,123,191,122,187,123,191,32,226,123,191,23,8,124,191,92,45,124,191,240,81,124,191,211,117,124,191,5,153,124,191,134,187,124,191,85,221,124,191,115,254,124,191,223,30,125,191,154,62,125,191,163,93,125,191,250,123,125,191,159,153,125,191,146,182,125,191,211,210,125,191,98,238,125,191,63,9,126,191,105,35,126,191,225,60,126,191,167,85,126,191,186,109,126,191,27,133,126,191,201,155,126,191,196,177,126,191,13,199,126,191,162,219,126,191,133,239,126,191,181,2,127,191,50,21,127,
191,252,38,127,191,19,56,127,191,118,72,127,191,39,88,127,191,36,103,127,191,110,117,127,191,5,131,127,191,232,143,127,191,25,156,127,191,149,167,127,191,95,178,127,191,116,188,127,191,215,197,127,191,133,206,127,191,129,214,127,191,200,221,127,191,93,228,127,191,61,234,127,191,106,239,127,191,227,243,127,191,169,247,127,191,187,250,127,191,25,253,127,191,196,254,127,191,187,255,127,191,250,255,127,63,57,254,127,63,169,249,127,63,75,242,127,63,30,232,127,63,35,219,127,63,89,203,127,63,193,184,127,
63,91,163,127,63,40,139,127,63,39,112,127,63,90,82,127,63,191,49,127,63,88,14,127,63,37,232,126,63,38,191,126,63,92,147,126,63,200,100,126,63,105,51,126,63,65,255,125,63,79,200,125,63,150,142,125,63,20,82,125,63,203,18,125,63,188,208,124,63,231,139,124,63,77,68,124,63,239,249,123,63,205,172,123,63,233,92,123,63,67,10,123,63,221,180,122,63,182,92,122,63,209,1,122,63,46,164,121,63,206,67,121,63,178,224,120,63,220,122,120,63,76,18,120,63,4,167,119,63,4,57,119,63,79,200,118,63,228,84,118,63,198,222,117,
63,246,101,117,63,117,234,116,63,68,108,116,63,101,235,115,63,218,103,115,63,163,225,114,63,194,88,114,63,57,205,113,63,9,63,113,63,52,174,112,63,187,26,112,63,160,132,111,63,228,235,110,63,138,80,110,63,147,178,109,63,1,18,109,63,213,110,108,63,17,201,107,63,183,32,107,63,201,117,106,63,73,200,105,63,57,24,105,63,155,101,104,63,111,176,103,63,186,248,102,63,124,62,102,63,184,129,101,63,111,194,100,63,164,0,100,63,90,60,99,63,145,117,98,63,76,172,97,63,142,224,96,63,89,18,96,63,174,65,95,63,145,110,
94,63,3,153,93,63,8,193,92,63,160,230,91,63,207,9,91,63,152,42,90,63,251,72,89,63,253,100,88,63,159,126,87,63,229,149,86,63,208,170,85,63,99,189,84,63,161,205,83,63,140,219,82,63,39,231,81,63,117,240,80,63,121,247,79,63,52,252,78,63,171,254,77,63,223,254,76,63,212,252,75,63,140,248,74,63,10,242,73,63,82,233,72,63,101,222,71,63,71,209,70,63,251,193,69,63,132,176,68,63,229,156,67,63,32,135,66,63,58,111,65,63,52,85,64,63,19,57,63,63,216,26,62,63,136,250,60,63,38,216,59,63,180,179,58,63,54,141,57,63,
175,100,56,63,34,58,55,63,147,13,54,63,5,223,52,63,124,174,51,63,249,123,50,63,130,71,49,63,25,17,48,63,194,216,46,63,127,158,45,63,86,98,44,63,72,36,43,63,90,228,41,63,144,162,40,63,235,94,39,63,113,25,38,63,37,210,36,63,9,137,35,63,35,62,34,63,117,241,32,63,4,163,31,63,210,82,30,63,228,0,29,63,61,173,27,63,225,87,26,63,211,0,25,63,25,168,23,63,180,77,22,63,170,241,20,63,253,147,19,63,178,52,18,63,204,211,16,63,80,113,15,63,66,13,14,63,164,167,12,63,124,64,11,63,205,215,9,63,154,109,8,63,233,1,7,
63,189,148,5,63,25,38,4,63,3,182,2,63,126,68,1,63,28,163,255,62,110,186,252,62,250,206,249,62,202,224,246,62,228,239,243,62,81,252,240,62,26,6,238,62,71,13,235,62,224,17,232,62,237,19,229,62,119,19,226,62,135,16,223,62,36,11,220,62,88,3,217,62,42,249,213,62,164,236,210,62,205,221,207,62,175,204,204,62,82,185,201,62,191,163,198,62,254,139,195,62,24,114,192,62,22,86,189,62,0,56,186,62,224,23,183,62,189,245,179,62,161,209,176,62,149,171,173,62,162,131,170,62,207,89,167,62,39,46,164,62,178,0,161,62,121,
209,157,62,133,160,154,62,223,109,151,62,143,57,148,62,160,3,145,62,26,204,141,62,5,147,138,62,107,88,135,62,86,28,132,62,205,222,128,62,182,63,123,62,16,191,116,62,187,59,110,62,201,181,103,62,77,45,97,62,89,162,90,62,255,20,84,62,81,133,77,62,99,243,70,62,70,95,64,62,13,201,57,62,202,48,51,62,144,150,44,62,114,250,37,62,130,92,31,62,210,188,24,62,118,27,18,62,127,120,11,62,1,212,4,62,29,92,252,61,114,13,239,61,41,188,225,61,102,104,212,61,78,18,199,61,8,186,185,61,184,95,172,61,132,3,159,61,146,
165,145,61,7,70,132,61,18,202,109,61,122,5,83,61,145,62,56,61,164,117,29,61,252,170,2,61,202,189,207,60,86,35,154,60,97,14,73,60,197,167,187,59,61,122,86,186,9,70,241,187,18,221,99,188,80,138,167,188,65,36,221,188,227,93,9,189,35,40,36,189,150,240,62,189,242,182,89,189,234,122,116,189,26,158,135,189,66,253,148,189,200,90,162,189,134,182,175,189,87,16,189,189,22,104,202,189,155,189,215,189,195,16,229,189,105,97,242,189,101,175,255,189,74,125,6,190,104,33,13,190,250,195,19,190,237,100,26,190,46,4,33,
190,172,161,39,190,83,61,46,190,16,215,52,190,210,110,59,190,134,4,66,190,25,152,72,190,121,41,79,190,148,184,85,190,86,69,92,190,174,207,98,190,137,87,105,190,214,220,111,190,128,95,118,190,120,223,124,190,84,174,129,190,129,235,132,190,56,39,136,190,114,97,139,190,36,154,142,190,69,209,145,190,205,6,149,190,179,58,152,190,238,108,155,190,116,157,158,190,61,204,161,190,64,249,164,190,115,36,168,190,207,77,171,190,73,117,174,190,218,154,177,190,120,190,180,190,27,224,183,190,186,255,186,190,75,29,
190,190,199,56,193,190,37,82,196,190,91,105,199,190,97,126,202,190,48,145,205,190,188,161,208,190,0,176,211,190,241,187,214,190,135,197,217,190,186,204,220,190,129,209,223,190,211,211,226,190,169,211,229,190,250,208,232,190,189,203,235,190,234,195,238,190,120,185,241,190,96,172,244,190,154,156,247,190,28,138,250,190,223,116,253,190,109,46,0,191,3,161,1,191,45,18,3,191,230,129,4,191,44,240,5,191,250,92,7,191,76,200,8,191,30,50,10,191,108,154,11,191,50,1,13,191,108,102,14,191,23,202,15,191,45,44,17,
191,172,140,18,191,144,235,19,191,213,72,21,191,118,164,22,191,113,254,23,191,192,86,25,191,98,173,26,191,81,2,28,191,138,85,29,191,9,167,30,191,203,246,31,191,204,68,33,191,9,145,34,191,124,219,35,191,36,36,37,191,253,106,38,191,2,176,39,191,48,243,40,191,132,52,42,191,250,115,43,191,143,177,44,191,63,237,45,191,7,39,47,191,227,94,48,191,208,148,49,191,202,200,50,191,206,250,51,191,218,42,53,191,232,88,54,191,247,132,55,191,2,175,56,191,7,215,57,191,3,253,58,191,241,32,60,191,207,66,61,191,154,98,
62,191,79,128,63,191,233,155,64,191,104,181,65,191,198,204,66,191,1,226,67,191,23,245,68,191,3,6,70,191,196,20,71,191,86,33,72,191,182,43,73,191,225,51,74,191,212,57,75,191,141,61,76,191,9,63,77,191,68,62,78,191,61,59,79,191,240,53,80,191,90,46,81,191,121,36,82,191,74,24,83,191,202,9,84,191,247,248,84,191,206,229,85,191,77,208,86,191,112,184,87,191,55,158,88,191,156,129,89,191,160,98,90,191,62,65,91,191,117,29,92,191,65,247,92,191,162,206,93,191,148,163,94,191,20,118,95,191,34,70,96,191,186,19,97,
191,217,222,97,191,127,167,98,191,169,109,99,191,84,49,100,191,126,242,100,191,38,177,101,191,73,109,102,191,229,38,103,191,248,221,103,191,128,146,104,191,123,68,105,191,232,243,105,191,195,160,106,191,12,75,107,191,192,242,107,191,222,151,108,191,100,58,109,191,80,218,109,191,160,119,110,191,83,18,111,191,102,170,111,191,217,63,112,191,169,210,112,191,213,98,113,191,91,240,113,191,58,123,114,191,113,3,115,191,253,136,115,191,222,11,116,191,17,140,116,191,150,9,117,191,107,132,117,191,143,252,117,
191,0,114,118,191,189,228,118,191,198,84,119,191,24,194,119,191,178,44,120,191,147,148,120,191,187,249,120,191,40,92,121,191,217,187,121,191,205,24,122,191,2,115,122,191,121,202,122,191,47,31,123,191,36,113,123,191,88,192,123,191,201,12,124,191,118,86,124,191,95,157,124,191,130,225,124,191,224,34,125,191,119,97,125,191,71,157,125,191,79,214,125,191,142,12,126,191,4,64,126,191,176,112,126,191,146,158,126,191,169,201,126,191,245,241,126,191,117,23,127,191,41,58,127,191,16,90,127,191,43,119,127,191,
120,145,127,191,248,168,127,191,170,189,127,191,143,207,127,191,165,222,127,191,237,234,127,191,102,244,127,191,17,251,127,191,237,254,127,191,234,255,127,63,229,248,127,63,166,230,127,63,45,201,127,63,124,160,127,63,149,108,127,63,121,45,127,63,44,227,126,63,177,141,126,63,11,45,126,63,63,193,125,63,82,74,125,63,72,200,124,63,40,59,124,63,247,162,123,63,189,255,122,63,128,81,122,63,72,152,121,63,30,212,120,63,9,5,120,63,19,43,119,63,70,70,118,63,172,86,117,63,78,92,116,63,56,87,115,63,118,71,114,
63,19,45,113,63,28,8,112,63,158,216,110,63,165,158,109,63,64,90,108,63,126,11,107,63,107,178,105,63,25,79,104,63,150,225,102,63,242,105,101,63,62,232,99,63,139,92,98,63,234,198,96,63,109,39,95,63,38,126,93,63,40,203,91,63,133,14,90,63,83,72,88,63,163,120,86,63,139,159,84,63,32,189,82,63,118,209,80,63,163,220,78,63,189,222,76,63,219,215,74,63,19,200,72,63,124,175,70,63,46,142,68,63,65,100,66,63,206,49,64,63,236,246,61,63,180,179,59,63,66,104,57,63,173,20,55,63,16,185,52,63,134,85,50,63,41,234,47,63,
21,119,45,63,101,252,42,63,53,122,40,63,161,240,37,63,198,95,35,63,192,199,32,63,172,40,30,63,169,130,27,63,212,213,24,63,74,34,22,63,42,104,19,63,147,167,16,63,164,224,13,63,123,19,11,63,57,64,8,63,253,102,5,63,231,135,2,63,45,70,255,62,91,113,249,62,151,145,243,62,36,167,237,62,69,178,231,62,60,179,225,62,76,170,219,62,186,151,213,62,201,123,207,62,190,86,201,62,223,40,195,62,112,242,188,62,183,179,182,62,251,108,176,62,129,30,170,62,146,200,163,62,115,107,157,62,108,7,151,62,197,156,144,62,199,
43,138,62,185,180,131,62,199,111,122,62,33,107,109,62,17,92,96,62,41,67,83,62,253,32,70,62,32,246,56,62,38,195,43,62,164,136,30,62,45,71,17,62,87,255,3,62,110,99,237,61,194,189,210,61,218,14,184,61,222,87,157,61,251,153,130,61,188,172,79,61,101,28,26,61,153,10,201,60,42,167,59,60,193,120,214,186,45,68,113,188,87,215,227,188,76,129,39,189,148,15,93,189,21,74,137,189,90,6,164,189,109,187,190,189,34,104,217,189,78,11,244,189,227,81,7,190,47,152,20,190,247,215,33,190,165,16,47,190,166,65,60,190,100,106,
73,190,77,138,86,190,205,160,99,190,80,173,112,190,69,175,125,190,13,83,133,190,158,200,139,190,13,56,146,190,18,161,152,190,102,3,159,190,191,94,165,190,216,178,171,190,105,255,177,190,43,68,184,190,216,128,190,190,42,181,196,190,219,224,202,190,165,3,209,190,69,29,215,190,117,45,221,190,241,51,227,190,118,48,233,190,192,34,239,190,141,10,245,190,155,231,250,190,211,92,0,191,56,64,3,191,219,29,6,191,155,245,8,191,90,199,11,191,247,146,14,191,84,88,17,191,80,23,20,191,205,207,22,191,172,129,25,191,
208,44,28,191,26,209,30,191,109,110,33,191,171,4,36,191,183,147,38,191,116,27,41,191,199,155,43,191,147,20,46,191,187,133,48,191,38,239,50,191,183,80,53,191,85,170,55,191,227,251,57,191,74,69,60,191,110,134,62,191,55,191,64,191,139,239,66,191,83,23,69,191,117,54,71,191,218,76,73,191,107,90,75,191,16,95,77,191,179,90,79,191,62,77,81,191,154,54,83,191,179,22,85,191,114,237,86,191,197,186,88,191,149,126,90,191,208,56,92,191,98,233,93,191,56,144,95,191,64,45,97,191,103,192,98,191,156,73,100,191,206,200,
101,191,235,61,103,191,227,168,104,191,167,9,106,191,39,96,107,191,84,172,108,191,31,238,109,191,122,37,111,191,88,82,112,191,171,116,113,191,103,140,114,191,127,153,115,191,231,155,116,191,149,147,117,191,126,128,118,191,150,98,119,191,212,57,120,191,47,6,121,191,158,199,121,191,23,126,122,191,148,41,123,191,13,202,123,191,122,95,124,191,213,233,124,191,24,105,125,191,62,221,125,191,64,70,126,191,28,164,126,191,204,246,126,191,77,62,127,191,156,122,127,191,182,171,127,191,153,209,127,191,67,236,
127,191,180,251,127,191,166,255,127,63,148,227,127,63,156,154,127,63,204,36,127,63,56,130,126,63,253,178,125,63,63,183,124,63,42,143,123,63,243,58,122,63,212,186,120,63,17,15,119,63,246,55,117,63,213,53,115,63,8,9,113,63,241,177,110,63,249,48,108,63,144,134,105,63,47,179,102,63,83,183,99,63,132,147,96,63,78,72,93,63,69,214,89,63,3,62,86,63,43,128,82,63,101,157,78,63,94,150,74,63,204,107,70,63,106,30,66,63,249,174,61,63,64,30,57,63,13,109,52,63,50,156,47,63,135,172,42,63,235,158,37,63,63,116,32,63,
109,45,27,63,97,203,21,63,13,79,16,63,104,185,10,63,107,11,5,63,46,140,254,62,221,212,242,62,241,242,230,62,127,232,218,62,166,183,206,62,136,98,194,62,78,235,181,62,42,84,169,62,81,159,156,62,253,206,143,62,109,229,130,62,206,201,107,62,98,159,81,62,48,80,55,62,211,224,28,62,241,85,2,62,98,104,207,61,124,0,154,61,36,251,72,61,27,164,187,60,243,119,86,187,100,61,241,188,187,192,99,189,103,93,167,189,20,189,220,189,3,251,8,190,115,127,35,190,52,231,61,190,164,45,88,190,38,78,114,190,18,34,134,190,
137,5,147,190,52,207,159,190,213,124,172,190,51,12,185,190,26,123,197,190,91,199,209,190,205,238,221,190,80,239,233,190,199,198,245,190,144,185,0,191,38,121,6,191,36,33,12,191,141,176,17,191,102,38,23,191,186,129,28,191,152,193,33,191,21,229,38,191,74,235,43,191,86,211,48,191,91,156,53,191,131,69,58,191,253,205,62,191,252,52,67,191,188,121,71,191,125,155,75,191,132,153,79,191,31,115,83,191,161,39,87,191,99,182,90,191,198,30,94,191,48,96,97,191,15,122,100,191,216,107,103,191,7,53,106,191,31,213,108,
191,169,75,111,191,55,152,113,191,98,186,115,191,201,177,117,191,22,126,119,191,246,30,121,191,33,148,122,191,85,221,123,191,89,250,124,191,250,234,125,191,14,175,126,191,116,70,127,191,15,177,127,191,206,238,127,191,0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,5,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,5,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,0,0,206,64,0,0,200,64,0,0,184,64,0,0,170,64,0,0,162,64,0,0,154,64,0,0,144,64,0,0,140,64,0,0,156,64,0,0,150,64,0,0,146,64,0,0,142,64,0,0,156,64,0,0,148,64,0,
0,138,64,0,0,144,64,0,0,140,64,0,0,148,64,0,0,152,64,0,0,142,64,0,0,112,64,0,0,112,64,0,0,112,64,0,0,112,64,0,0,112,64,0,134,107,63,0,20,46,63,0,112,189,62,0,208,76,62,0,0,102,63,0,0,76,63,0,0,38,63,0,0,0,63,15,0,0,0,10,0,0,0,5,0,0,0,6,0,0,0,4,0,0,0,3,0,0,0,191,104,0,0,199,104,0,0,215,104,0,0,247,104,0,0,255,104,0,0,15,105,0,0,47,105,0,0,87,105,0,0,167,105,0,0,71,106,0,0,79,106,0,0,95,106,0,0,32,0,10,0,20,46,100,1,130,106,0,0,194,107,0,0,2,108,0,0,20,108,0,0,180,108,0,0,252,108,0,0,134,95,0,0,32,
0,16,0,102,38,171,1,68,109,0,0,68,111,0,0,132,111,0,0,162,111,0,0,162,112,0,0,234,112,0,0,156,95,0,0,0,0,0,0,64,31,0,0,184,36,0,0,236,44,0,0,188,52,0,0,92,68,0,0,168,97,0,0,128,56,1,0,0,0,0,0,40,35,0,0,224,46,0,0,164,56,0,0,68,72,0,0,180,95,0,0,172,138,0,0,128,56,1,0,0,0,0,0,4,41,0,0,176,54,0,0,104,66,0,0,252,83,0,0,84,111,0,0,16,164,0,0,128,56,1,0,77,113,0,0,80,113,0,0,10,103,242,14,86,205,228,29,10,103,242,14,117,82,130,12,89,154,4,25,117,82,130,12,70,17,49,10,237,3,98,20,70,17,49,10,218,2,215,
7,249,198,173,15,218,2,215,7,34,182,82,5,218,250,164,10,34,182,82,5,70,243,46,30,43,227,75,14,31,102,128,24,28,44,29,10,218,97,72,18,237,156,244,6,236,48,19,11,227,144,165,4,237,164,29,2,10,223,107,3,48,117,0,0,112,23,0,0,32,209,255,255,32,209,255,255,0,64,0,0,108,34,0,0,66,15,0,0,18,6,0,0,77,2,0,0,219,0,0,0,237,0,0,0,153,0,0,0,73,0,0,0,30,0,0,0,12,0,0,0,7,0,0,0,0,64,0,0,147,93,0,0,189,112,0,0,237,121,0,0,178,125,0,0,36,127,0,0,0,250,0,0,128,62,0,0,160,140,0,0,128,62,0,0,248,42,0,0,232,3,0,0,176,
54,0,0,232,3,0,0,8,82,0,0,208,7,0,0,96,109,0,0,208,7,0,0,224,46,0,0,232,3,0,0,80,70,0,0,208,7,0,0,8,82,0,0,208,7,0,0,48,117,0,0,208,7,0,0,248,42,0,0,232,3,0,0,176,54,0,0,232,3,0,0,104,66,0,0,232,3,0,0,8,82,0,0,208,7,0,0,224,46,0,0,232,3,0,0,152,58,0,0,232,3,0,0,80,70,0,0,208,7,0,0,240,85,0,0,208,7,0,0,230,90,52,56,119,78,51,57,211,217,201,57,146,145,51,58,204,96,140,58,97,251,201,58,153,126,9,59,203,128,51,59,213,37,99,59,119,46,140,59,168,138,169,59,69,184,201,59,135,166,236,59,232,46,9,60,174,102,
29,60,247,2,51,60,147,255,73,60,79,88,98,60,94,17,124,60,46,145,139,60,189,199,153,60,92,172,168,60,243,60,184,60,129,121,200,60,238,95,217,60,57,240,234,60,99,42,253,60,53,7,8,61,16,204,17,61,205,228,27,61,97,80,38,61,203,14,49,61,0,31,60,61,254,128,71,61,198,52,83,61,63,56,95,61,105,139,107,61,69,46,120,61,105,144,130,61,123,48,137,61,224,247,143,61,138,229,150,61,123,249,157,61,177,51,165,61,33,147,172,61,80,24,180,61,51,194,187,61,79,145,195,61,18,132,203,61,2,155,211,61,31,214,219,61,215,51,
228,61,175,180,236,61,33,88,245,61,168,29,254,61,161,130,3,62,242,6,8,62,199,155,12,62,221,64,17,62,52,246,21,62,69,187,26,62,17,144,31,62,84,116,36,62,203,103,41,62,51,106,46,62,141,123,51,62,82,155,56,62,197,201,61,62,28,6,67,62,89,80,72,62,122,168,77,62,183,13,83,62,82,128,88,62,8,0,94,62,84,140,99,62,242,36,105,62,37,202,110,62,36,123,116,62,172,55,122,62,0,0,128,62,171,233,130,62,249,216,133,62,133,205,136,62,80,199,139,62,55,198,142,62,247,201,145,62,179,210,148,62,38,224,151,62,15,242,154,
62,108,8,158,62,28,35,161,62,255,65,164,62,208,100,167,62,177,139,170,62,28,182,173,62,84,228,176,62,211,21,180,62,186,74,183,62,232,130,186,62,249,189,189,62,13,252,192,62,226,60,196,62,86,128,199,62,71,198,202,62,149,14,206,62,251,88,209,62,122,165,212,62,241,243,215,62,28,68,219,62,217,149,222,62,8,233,225,62,167,61,229,62,83,147,232,62,12,234,235,62,175,65,239,62,28,154,242,62,14,243,245,62,136,76,249,62,34,166,252,62,0,0,0,63,239,172,1,63,188,89,3,63,121,6,5,63,242,178,6,63,41,95,8,63,250,10,
10,63,86,182,11,63,44,97,13,63,124,11,15,63,19,181,16,63,242,93,18,63,8,6,20,63,67,173,21,63,130,83,23,63,182,248,24,63,220,156,26,63,213,63,28,63,143,225,29,63,249,129,31,63,4,33,33,63,140,190,34,63,163,90,36,63,23,245,37,63,214,141,39,63,242,36,41,63,40,186,42,63,152,77,44,63,1,223,45,63,114,110,47,63,202,251,48,63,249,134,50,63,237,15,52,63,167,150,53,63,4,27,55,63,229,156,56,63,88,28,58,63,61,153,59,63,131,19,61,63,42,139,62,63,0,0,64,63,21,114,65,63,55,225,66,63,119,77,68,63,195,182,69,63,235,
28,71,63,254,127,72,63,236,223,73,63,146,60,75,63,225,149,76,63,234,235,77,63,121,62,79,63,143,141,80,63,43,217,81,63,29,33,83,63,115,101,84,63,13,166,85,63,235,226,86,63,252,27,88,63,47,81,89,63,115,130,90,63,201,175,91,63,14,217,92,63,67,254,93,63,88,31,95,63,75,60,96,63,252,84,97,63,106,105,98,63,133,121,99,63,60,133,100,63,160,140,101,63,126,143,102,63,214,141,103,63,186,135,104,63,246,124,105,63,156,109,106,63,138,89,107,63,209,64,108,63,79,35,109,63,4,1,110,63,241,217,110,63,243,173,111,63,
28,125,112,63,73,71,113,63,124,12,114,63,180,204,114,63,240,135,115,63,16,62,116,63,19,239,116,63,250,154,117,63,179,65,118,63,63,227,118,63,141,127,119,63,173,22,120,63,126,168,120,63,1,53,121,63,52,188,121,63,24,62,122,63,157,186,122,63,194,49,123,63,119,163,123,63,187,15,124,63,159,118,124,63,2,216,124,63,244,51,125,63,101,138,125,63,68,219,125,63,179,38,126,63,143,108,126,63,235,172,126,63,163,231,126,63,218,28,127,63,127,76,127,63,129,118,127,63,2,155,127,63,208,185,127,63,28,211,127,63,197,
230,127,63,203,244,127,63,47,253,127,63,0,0,128,63,2,0,0,0,4,0,0,0,6,0,0,0,8,0,0,0,10,0,0,0,12,0,0,0,14,0,0,0,16,0,0,0,20,0,0,0,24,0,0,0,28,0,0,0,32,0,0,0,40,0,0,0,48,0,0,0,56,0,0,0,68,0,0,0,80,0,0,0,96,0,0,0,120,0,0,0,1,0,0,0,2,0,0,0,4,0,0,0,6,0,0,0,8,0,0,0,10,0,0,0,12,0,0,0,14,0,0,0,16,0,0,0,20,0,0,0,24,0,0,0,28,0,0,0,32,0,0,0,40,0,0,0,48,0,0,0,56,0,0,0,68,0,0,0,80,0,0,0,96,0,0,0,120,0,0,0,160,0,0,0,200,0,0,0,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,
0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,208,37,180,62,151,57,173,62,9,165,159,62,250,237,139,62,205,172,101,62,248,169,42,62,52,48,210,61,90,241,13,61,90,241,13,189,52,48,210,189,248,169,42,190,205,172,101,190,250,237,139,190,9,165,159,190,151,57,173,190,208,37,180,190,135,138,177,62,27,131,150,62,96,35,73,62,196,66,141,61,196,66,141,189,96,35,73,190,27,131,150,190,135,138,177,190,135,138,177,190,27,131,150,190,96,35,73,190,196,66,141,189,196,66,141,
61,96,35,73,62,27,131,150,62,135,138,177,62,151,57,173,62,205,172,101,62,90,241,13,61,248,169,42,190,9,165,159,190,208,37,180,190,250,237,139,190,52,48,210,189,52,48,210,61,250,237,139,62,208,37,180,62,9,165,159,62,248,169,42,62,90,241,13,189,205,172,101,190,151,57,173,190,125,61,167,62,210,139,10,62,210,139,10,190,125,61,167,190,125,61,167,190,210,139,10,190,210,139,10,62,125,61,167,62,125,61,167,62,210,139,10,62,210,139,10,190,125,61,167,190,125,61,167,190,210,139,10,190,210,139,10,62,125,61,167,
62,9,165,159,62,90,241,13,61,250,237,139,190,151,57,173,190,52,48,210,189,205,172,101,62,208,37,180,62,248,169,42,62,248,169,42,190,208,37,180,190,205,172,101,190,52,48,210,61,151,57,173,62,250,237,139,62,90,241,13,189,9,165,159,190,27,131,150,62,196,66,141,189,135,138,177,190,96,35,73,190,96,35,73,62,135,138,177,62,196,66,141,61,27,131,150,190,27,131,150,190,196,66,141,61,135,138,177,62,96,35,73,62,96,35,73,190,135,138,177,190,196,66,141,189,27,131,150,62,250,237,139,62,248,169,42,190,151,57,173,
190,90,241,13,61,208,37,180,62,52,48,210,61,9,165,159,190,205,172,101,190,205,172,101,62,9,165,159,62,52,48,210,189,208,37,180,190,90,241,13,189,151,57,173,62,248,169,42,62,250,237,139,190,0,0,0,0,5,193,35,61,233,125,163,61,37,150,244,61,226,116,34,62,172,28,74,62,221,37,113,62,52,186,139,62,180,119,158,62,228,191,176,62,173,136,194,62,37,201,211,62,24,122,228,62,24,149,244,62,200,10,2,63,28,124,9,63,73,157,16,63,202,109,23,63,192,237,29,63,159,29,36,63,84,254,41,63,46,145,47,63,224,215,52,63,99,
212,57,63,240,136,62,63,211,247,66,63,171,35,71,63,23,15,75,63,216,188,78,63,173,47,82,63,106,106,85,63,206,111,88,63,154,66,91,63,142,229,93,63,75,91,96,63,110,166,98,63,100,201,100,63,155,198,102,63,111,160,104,63,247,88,106,63,128,242,107,63,223,110,109,63,11,208,110,63,202,23,112,63,224,71,113,63,225,97,114,63,77,103,115,63,150,89,116,63,12,58,117,63,255,9,118,63,138,202,118,63,187,124,119,63,192,33,120,63,98,186,120,63,157,71,121,63,75,202,121,63,36,67,122,63,242,178,122,63,59,26,123,63,200,
121,123,63,32,210,123,63,200,35,124,63,55,111,124,63,242,180,124,63,94,245,124,63,224,48,125,63,236,103,125,63,183,154,125,63,180,201,125,63,6,245,125,63,17,29,126,63,24,66,126,63,78,100,126,63,211,131,126,63,253,160,126,63,237,187,126,63,195,212,126,63,179,235,126,63,239,0,127,63,135,20,127,63,141,38,127,63,67,55,127,63,170,70,127,63,227,84,127,63,15,98,127,63,47,110,127,63,100,121,127,63,190,131,127,63,63,141,127,63,24,150,127,63,56,158,127,63,194,165,127,63,163,172,127,63,16,179,127,63,245,184,
127,63,119,190,127,63,114,195,127,63,25,200,127,63,108,204,127,63,91,208,127,63,6,212,127,63,111,215,127,63,131,218,127,63,102,221,127,63,21,224,127,63,130,226,127,63,205,228,127,63,230,230,127,63,205,232,127,63,146,234,127,63,70,236,127,63,200,237,127,63,40,239,127,63,120,240,127,63,166,241,127,63,195,242,127,63,191,243,127,63,186,244,127,63,148,245,127,63,94,246,127,63,39,247,127,63,207,247,127,63,119,248,127,63,253,248,127,63,148,249,127,63,9,250,127,63,127,250,127,63,244,250,127,63,89,251,127,
63,173,251,127,63,1,252,127,63,84,252,127,63,152,252,127,63,219,252,127,63,30,253,127,63,80,253,127,63,130,253,127,63,181,253,127,63,231,253,127,63,9,254,127,63,59,254,127,63,93,254,127,63,126,254,127,63,143,254,127,63,176,254,127,63,210,254,127,63,227,254,127,63,244,254,127,63,21,255,127,63,38,255,127,63,55,255,127,63,71,255,127,63,88,255,127,63,88,255,127,63,105,255,127,63,122,255,127,63,122,255,127,63,139,255,127,63,155,255,127,63,155,255,127,63,155,255,127,63,172,255,127,63,172,255,127,63,189,
255,127,63,189,255,127,63,189,255,127,63,206,255,127,63,206,255,127,63,206,255,127,63],"i8",4,y.h+10240);
O([206,255,127,63,206,255,127,63,222,255,127,63,222,255,127,63,222,255,127,63,222,255,127,63,222,255,127,63,222,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,3,0,0,0,148,80,0,0,160,80,0,0,25,0,0,0,15,0,0,0,2,0,0,0,14,190,
192,189,172,31,155,190,149,130,26,191,150,149,70,190,84,114,62,190,146,3,26,191,6,152,62,189,2,160,234,189,182,43,212,189,185,114,30,191,106,190,162,190,28,7,46,190,107,243,143,189,90,158,23,62,33,173,209,62,10,102,12,63,125,60,188,62,20,33,253,190,143,169,67,63,8,119,235,191,10,243,46,62,117,147,76,65,80,83,139,191,108,236,162,191,181,21,130,193,28,107,193,65,162,98,178,192,255,231,48,190,47,79,39,190,158,206,101,190,255,87,194,189,155,60,149,189,203,248,135,190,44,97,205,189,203,33,83,189,64,166,
21,190,238,35,247,189,160,253,56,190,219,167,3,62,233,95,226,62,213,202,252,190,29,203,43,62,231,168,83,62,1,79,74,190,247,3,214,62,71,119,192,63,173,249,69,191,64,164,32,193,43,194,205,62,192,178,62,64,201,118,115,65,100,204,241,191,39,165,152,191,23,204,233,60,134,193,132,187,201,232,144,61,84,72,7,60,154,231,189,189,103,71,42,188,59,137,140,187,159,122,160,187,88,90,145,189,85,196,39,187,169,11,34,61,177,219,103,62,241,54,5,61,52,17,38,62,170,10,205,189,86,185,248,62,108,4,2,62,86,102,146,62,228,
254,126,60,106,251,215,61,159,142,67,64,136,70,147,63,57,40,129,191,71,90,234,191,139,84,84,64,210,53,91,192,13,253,243,189,232,39,38,189,25,31,226,59,241,90,147,60,171,170,28,189,237,238,195,59,5,106,150,188,246,141,249,58,37,201,19,190,106,115,50,189,210,214,129,58,161,100,98,62,158,210,17,62,128,215,247,62,221,12,207,62,124,15,3,63,250,242,114,190,55,139,119,62,47,110,179,62,183,13,51,191,136,99,38,65,18,165,41,64,83,208,27,192,53,7,134,192,125,150,135,63,60,247,218,63,12,212,218,59,186,186,147,
189,191,192,34,189,69,144,20,61,38,112,235,189,208,37,193,188,210,156,6,60,124,58,104,188,114,11,7,189,31,26,17,189,171,204,53,59,154,208,148,190,218,230,146,191,140,104,163,190,89,193,47,191,163,233,188,62,64,50,245,62,253,245,58,62,163,119,210,190,8,144,97,63,39,107,147,192,33,31,188,63,224,243,171,62,161,214,232,191,245,91,241,193,8,172,177,64,252,177,255,58,106,21,253,189,37,245,148,189,41,102,131,189,252,233,90,189,35,134,221,189,20,249,191,189,43,237,142,189,75,171,225,188,167,236,68,190,122,
110,225,189,172,28,146,62,105,170,207,190,7,203,189,61,35,101,147,190,201,231,89,191,252,194,203,189,212,95,111,190,111,129,164,191,13,108,145,63,155,201,71,64,187,39,143,189,66,91,238,191,113,201,41,64,120,238,233,192,26,168,28,64,135,138,146,186,54,152,129,189,127,33,26,189,138,114,25,190,229,100,18,62,247,202,60,62,113,202,252,61,117,220,154,61,70,65,240,61,200,40,191,61,71,193,141,61,22,144,172,61,175,81,144,61,27,166,113,61,173,246,192,61,61,209,229,190,92,47,215,60,148,107,138,62,106,78,134,
190,98,186,48,62,49,37,0,64,133,9,35,190,99,96,29,61,26,81,35,65,182,248,132,64,7,206,21,192,120,99,97,189,79,18,30,60,98,186,16,190,8,223,224,60,187,222,12,61,136,166,71,189,97,152,194,61,35,245,253,187,158,146,24,189,185,155,179,187,187,236,135,189,45,182,196,61,230,206,76,190,12,24,41,189,251,87,22,63,48,68,83,61,142,172,172,62,218,226,90,63,93,26,43,63,202,82,235,189,178,75,104,192,37,89,239,190,177,164,92,190,57,98,39,64,145,238,207,62,180,142,174,191,203,61,46,61,20,5,250,61,210,98,191,61,67,
4,252,61,160,165,11,61,155,226,17,190,245,130,15,61,15,250,72,189,55,41,150,61,113,52,108,61,83,235,253,61,185,215,83,189,147,139,129,190,69,47,23,63,113,89,21,62,238,95,161,62,207,217,98,62,177,168,24,190,79,89,93,62,127,251,178,190,253,135,196,65,161,131,126,191,11,66,29,63,242,82,150,193,27,76,53,192,69,128,55,191,84,196,177,190,253,130,245,62,128,238,123,190,215,96,155,61,137,150,12,62,211,19,54,190,185,51,243,61,46,253,141,186,175,7,115,190,129,34,182,62,33,7,5,190,218,78,96,189,101,28,163,190,
21,171,166,190,107,211,56,62,171,31,128,189,183,155,16,62,40,41,176,62,24,207,192,62,95,126,23,191,102,247,186,64,170,241,194,190,46,56,99,62,239,172,181,191,48,108,229,201,122,170,171,63,218,31,232,60,27,113,55,189,162,59,173,188,127,121,210,188,9,192,100,60,236,86,170,60,101,102,48,188,198,207,53,60,202,13,112,61,62,180,207,188,178,134,6,189,121,35,243,61,78,38,94,190,247,62,21,62,230,93,245,61,106,111,187,189,198,21,247,189,41,83,161,189,106,23,19,190,134,89,24,191,188,116,147,191,198,109,160,
191,181,224,149,191,42,227,138,64,64,26,110,201,249,102,175,191,204,76,36,189,13,168,87,62,141,239,11,190,159,57,11,62,64,87,86,189,28,28,54,61,199,207,107,60,239,56,135,59,170,27,158,188,226,177,95,62,162,178,225,189,236,163,1,192,165,17,107,63,28,8,29,192,134,3,153,63,184,86,123,189,48,18,246,191,186,192,157,62,172,202,254,62,42,144,105,63,102,75,86,62,147,24,22,192,95,94,12,64,39,20,207,192,144,78,217,63,169,161,57,191,112,218,66,60,77,206,26,61,109,235,98,61,109,130,185,60,243,67,144,189,93,3,
246,188,182,124,73,60,72,233,136,187,62,158,140,189,125,64,0,61,219,50,32,61,194,108,186,62,242,165,193,189,126,80,188,60,194,81,50,190,228,218,168,62,44,239,234,61,112,182,153,62,62,33,219,61,18,136,7,62,8,148,185,64,125,118,104,63,80,195,103,191,88,202,86,192,248,56,67,62,207,161,60,62,50,116,44,191,208,94,109,62,213,29,112,189,65,74,108,62,216,101,224,190,240,193,123,62,23,72,48,190,182,123,179,61,121,115,56,191,85,106,38,62,85,187,139,60,143,114,208,61,117,230,198,62,213,38,170,63,2,241,138,63,
108,177,111,191,51,167,23,192,66,9,215,192,144,102,92,192,241,215,8,64,116,181,99,65,82,68,157,64,20,203,69,192,16,18,27,193,252,170,68,191,164,228,229,63,75,35,97,61,17,82,39,62,16,59,163,61,253,223,12,61,211,175,99,189,237,178,165,187,217,102,153,60,110,201,5,61,34,162,189,60,175,119,31,62,154,15,67,61,75,120,130,190,151,255,204,63,210,28,77,191,119,132,35,64,65,213,60,63,19,102,174,191,221,9,50,191,71,90,28,192,62,174,221,191,131,250,124,64,205,1,242,63,101,224,248,62,75,89,53,193,128,147,112,
74,249,75,195,190,126,29,248,61,94,44,104,191,249,20,60,64,51,196,209,63,231,255,97,63,2,213,95,63,45,207,155,63,46,226,95,191,166,182,164,62,93,249,72,63,160,81,114,63,134,55,19,191,62,203,93,192,34,137,98,63,173,62,189,61,144,131,30,193,116,93,200,62,10,242,35,62,170,43,3,192,240,167,132,64,210,22,140,61,58,60,20,190,123,16,146,190,69,44,194,62,116,70,148,191,167,29,227,188,154,153,29,193,16,93,154,192,51,167,109,64,139,224,119,64,26,163,97,64,0,64,202,69,27,76,255,82,130,90,179,98,162,107,96,117,
0,0,1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,10,0,12,0,14,0,16,0,20,0,24,0,28,0,34,0,40,0,48,0,60,0,78,0,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,8,0,8,0,8,0,16,0,16,0,16,0,21,0,21,0,24,0,29,0,34,0,36,0,0,0,96,0,192,0,32,1,128,1,32,0,128,0,224,0,64,1,160,1,64,0,160,0,0,1,96,1,192,1,8,0,104,0,200,0,40,1,136,1,40,0,136,0,232,0,72,1,168,1,72,0,168,0,8,1,104,1,200,1,16,0,112,0,208,0,48,1,144,1,48,0,144,0,240,0,80,1,176,1,80,0,176,0,16,1,112,1,208,1,24,0,120,0,216,0,56,1,152,1,56,0,152,0,248,0,88,1,184,1,88,0,
184,0,24,1,120,1,216,1,4,0,100,0,196,0,36,1,132,1,36,0,132,0,228,0,68,1,164,1,68,0,164,0,4,1,100,1,196,1,12,0,108,0,204,0,44,1,140,1,44,0,140,0,236,0,76,1,172,1,76,0,172,0,12,1,108,1,204,1,20,0,116,0,212,0,52,1,148,1,52,0,148,0,244,0,84,1,180,1,84,0,180,0,20,1,116,1,212,1,28,0,124,0,220,0,60,1,156,1,60,0,156,0,252,0,92,1,188,1,92,0,188,0,28,1,124,1,220,1,1,0,97,0,193,0,33,1,129,1,33,0,129,0,225,0,65,1,161,1,65,0,161,0,1,1,97,1,193,1,9,0,105,0,201,0,41,1,137,1,41,0,137,0,233,0,73,1,169,1,73,0,169,
0,9,1,105,1,201,1,17,0,113,0,209,0,49,1,145,1,49,0,145,0,241,0,81,1,177,1,81,0,177,0,17,1,113,1,209,1,25,0,121,0,217,0,57,1,153,1,57,0,153,0,249,0,89,1,185,1,89,0,185,0,25,1,121,1,217,1,5,0,101,0,197,0,37,1,133,1,37,0,133,0,229,0,69,1,165,1,69,0,165,0,5,1,101,1,197,1,13,0,109,0,205,0,45,1,141,1,45,0,141,0,237,0,77,1,173,1,77,0,173,0,13,1,109,1,205,1,21,0,117,0,213,0,53,1,149,1,53,0,149,0,245,0,85,1,181,1,85,0,181,0,21,1,117,1,213,1,29,0,125,0,221,0,61,1,157,1,61,0,157,0,253,0,93,1,189,1,93,0,189,
0,29,1,125,1,221,1,2,0,98,0,194,0,34,1,130,1,34,0,130,0,226,0,66,1,162,1,66,0,162,0,2,1,98,1,194,1,10,0,106,0,202,0,42,1,138,1,42,0,138,0,234,0,74,1,170,1,74,0,170,0,10,1,106,1,202,1,18,0,114,0,210,0,50,1,146,1,50,0,146,0,242,0,82,1,178,1,82,0,178,0,18,1,114,1,210,1,26,0,122,0,218,0,58,1,154,1,58,0,154,0,250,0,90,1,186,1,90,0,186,0,26,1,122,1,218,1,6,0,102,0,198,0,38,1,134,1,38,0,134,0,230,0,70,1,166,1,70,0,166,0,6,1,102,1,198,1,14,0,110,0,206,0,46,1,142,1,46,0,142,0,238,0,78,1,174,1,78,0,174,0,14,
1,110,1,206,1,22,0,118,0,214,0,54,1,150,1,54,0,150,0,246,0,86,1,182,1,86,0,182,0,22,1,118,1,214,1,30,0,126,0,222,0,62,1,158,1,62,0,158,0,254,0,94,1,190,1,94,0,190,0,30,1,126,1,222,1,3,0,99,0,195,0,35,1,131,1,35,0,131,0,227,0,67,1,163,1,67,0,163,0,3,1,99,1,195,1,11,0,107,0,203,0,43,1,139,1,43,0,139,0,235,0,75,1,171,1,75,0,171,0,11,1,107,1,203,1,19,0,115,0,211,0,51,1,147,1,51,0,147,0,243,0,83,1,179,1,83,0,179,0,19,1,115,1,211,1,27,0,123,0,219,0,59,1,155,1,59,0,155,0,251,0,91,1,187,1,91,0,187,0,27,1,
123,1,219,1,7,0,103,0,199,0,39,1,135,1,39,0,135,0,231,0,71,1,167,1,71,0,167,0,7,1,103,1,199,1,15,0,111,0,207,0,47,1,143,1,47,0,143,0,239,0,79,1,175,1,79,0,175,0,15,1,111,1,207,1,23,0,119,0,215,0,55,1,151,1,55,0,151,0,247,0,87,1,183,1,87,0,183,0,23,1,119,1,215,1,31,0,127,0,223,0,63,1,159,1,63,0,159,0,255,0,95,1,191,1,95,0,191,0,31,1,127,1,223,1,0,0,48,0,96,0,144,0,192,0,16,0,64,0,112,0,160,0,208,0,32,0,80,0,128,0,176,0,224,0,4,0,52,0,100,0,148,0,196,0,20,0,68,0,116,0,164,0,212,0,36,0,84,0,132,0,180,
0,228,0,8,0,56,0,104,0,152,0,200,0,24,0,72,0,120,0,168,0,216,0,40,0,88,0,136,0,184,0,232,0,12,0,60,0,108,0,156,0,204,0,28,0,76,0,124,0,172,0,220,0,44,0,92,0,140,0,188,0,236,0,1,0,49,0,97,0,145,0,193,0,17,0,65,0,113,0,161,0,209,0,33,0,81,0,129,0,177,0,225,0,5,0,53,0,101,0,149,0,197,0,21,0,69,0,117,0,165,0,213,0,37,0,85,0,133,0,181,0,229,0,9,0,57,0,105,0,153,0,201,0,25,0,73,0,121,0,169,0,217,0,41,0,89,0,137,0,185,0,233,0,13,0,61,0,109,0,157,0,205,0,29,0,77,0,125,0,173,0,221,0,45,0,93,0,141,0,189,0,
237,0,2,0,50,0,98,0,146,0,194,0,18,0,66,0,114,0,162,0,210,0,34,0,82,0,130,0,178,0,226,0,6,0,54,0,102,0,150,0,198,0,22,0,70,0,118,0,166,0,214,0,38,0,86,0,134,0,182,0,230,0,10,0,58,0,106,0,154,0,202,0,26,0,74,0,122,0,170,0,218,0,42,0,90,0,138,0,186,0,234,0,14,0,62,0,110,0,158,0,206,0,30,0,78,0,126,0,174,0,222,0,46,0,94,0,142,0,190,0,238,0,3,0,51,0,99,0,147,0,195,0,19,0,67,0,115,0,163,0,211,0,35,0,83,0,131,0,179,0,227,0,7,0,55,0,103,0,151,0,199,0,23,0,71,0,119,0,167,0,215,0,39,0,87,0,135,0,183,0,231,
0,11,0,59,0,107,0,155,0,203,0,27,0,75,0,123,0,171,0,219,0,43,0,91,0,139,0,187,0,235,0,15,0,63,0,111,0,159,0,207,0,31,0,79,0,127,0,175,0,223,0,47,0,95,0,143,0,191,0,239,0,0,0,24,0,48,0,72,0,96,0,8,0,32,0,56,0,80,0,104,0,16,0,40,0,64,0,88,0,112,0,4,0,28,0,52,0,76,0,100,0,12,0,36,0,60,0,84,0,108,0,20,0,44,0,68,0,92,0,116,0,1,0,25,0,49,0,73,0,97,0,9,0,33,0,57,0,81,0,105,0,17,0,41,0,65,0,89,0,113,0,5,0,29,0,53,0,77,0,101,0,13,0,37,0,61,0,85,0,109,0,21,0,45,0,69,0,93,0,117,0,2,0,26,0,50,0,74,0,98,0,10,
0,34,0,58,0,82,0,106,0,18,0,42,0,66,0,90,0,114,0,6,0,30,0,54,0,78,0,102,0,14,0,38,0,62,0,86,0,110,0,22,0,46,0,70,0,94,0,118,0,3,0,27,0,51,0,75,0,99,0,11,0,35,0,59,0,83,0,107,0,19,0,43,0,67,0,91,0,115,0,7,0,31,0,55,0,79,0,103,0,15,0,39,0,63,0,87,0,111,0,23,0,47,0,71,0,95,0,119,0,0,0,12,0,24,0,36,0,48,0,4,0,16,0,28,0,40,0,52,0,8,0,20,0,32,0,44,0,56,0,1,0,13,0,25,0,37,0,49,0,5,0,17,0,29,0,41,0,53,0,9,0,21,0,33,0,45,0,57,0,2,0,14,0,26,0,38,0,50,0,6,0,18,0,30,0,42,0,54,0,10,0,22,0,34,0,46,0,58,0,3,0,15,
0,27,0,39,0,51,0,7,0,19,0,31,0,43,0,55,0,11,0,23,0,35,0,47,0,59,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,41,0,41,0,41,0,82,0,82,0,123,0,164,0,200,0,222,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,0,41,0,41,0,41,0,123,0,123,0,123,0,164,0,164,0,240,0,10,1,27,1,39,1,41,0,41,0,41,0,41,0,41,0,41,0,41,0,41,0,123,0,123,0,123,0,123,0,240,0,240,0,240,0,10,1,10,1,49,1,62,1,72,1,80,1,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,240,0,240,0,240,0,240,0,49,1,49,1,49,1,62,1,
62,1,87,1,95,1,102,1,108,1,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,49,1,49,1,49,1,49,1,87,1,87,1,87,1,95,1,95,1,114,1,120,1,126,1,131,1,184,126,154,121,154,121,102,102,184,126,51,115,16,48,250,0,3,0,6,0,3,0,3,0,3,0,4,0,3,0,3,0,3,0,205,1,100,0,3,0,40,0,3,0,3,0,3,0,5,0,14,0,14,0,10,0,11,0,3,0,8,0,9,0,7,0,3,0,91,1,18,0,29,0,38,0,40,0,46,0,52,0,62,0,84,0,92,202,190,216,182,223,154,226,156,230,120,236,122,244,204,252,52,3,134,11,136,19,100,25,102,29,74,32,66,39,164,53,100,0,240,0,32,0,100,0,205,
60,0,48,0,32,30,161,36,42,0,32,254,31,246,31,234,31,216,31,194,31,168,31,136,31,98,31,58,31,10,31,216,30,160,30,98,30,34,30,220,29,144,29,66,29,238,28,150,28,58,28,216,27,114,27,10,27,156,26,42,26,180,25,58,25,188,24,60,24,182,23,46,23,160,22,16,22,126,21,232,20,78,20,176,19,16,19,110,18,200,17,30,17,116,16,198,15,22,15,100,14,174,13,248,12,64,12,132,11,200,10,10,10,74,9,138,8,198,7,2,7,62,6,120,5,178,4,234,3,34,3,90,2,146,1,202,0,0,0,54,255,110,254,166,253,222,252,22,252,78,251,136,250,194,249,254,
248,58,248,118,247,182,246,246,245,56,245,124,244,192,243,8,243,82,242,156,241,234,240,58,240,140,239,226,238,56,238,146,237,240,236,80,236,178,235,24,235,130,234,240,233,96,233,210,232,74,232,196,231,68,231,198,230,76,230,214,229,100,229,246,228,142,228,40,228,198,227,106,227,18,227,190,226,112,226,36,226,222,225,158,225,96,225,40,225,246,224,198,224,158,224,120,224,88,224,62,224,40,224,22,224,10,224,2,224,0,224,210,6,138,58,171,152,198,26,169,100,246,216,42,175,213,201,207,255,64,0,17,0,99,255,
97,1,16,254,163,0,39,43,189,86,217,255,6,0,91,0,86,255,186,0,23,0,128,252,192,24,216,77,237,255,220,255,102,0,167,255,232,255,72,1,73,252,8,10,37,62,135,199,61,201,64,0,128,0,134,255,36,0,54,1,0,253,72,2,51,36,69,69,12,0,128,0,18,0,114,255,32,1,139,255,159,252,27,16,123,56,104,2,13,200,246,255,39,0,58,0,210,255,172,255,120,0,184,0,197,254,227,253,4,5,4,21,64,35,230,62,198,196,243,255,0,0,20,0,26,0,5,0,225,255,213,255,252,255,65,0,90,0,7,0,99,255,8,255,212,255,81,2,47,6,52,10,199,12,228,87,5,197,3,
0,242,255,236,255,241,255,2,0,25,0,37,0,25,0,240,255,185,255,149,255,177,255,50,0,36,1,111,2,214,3,8,5,184,5,148,107,103,196,17,0,12,0,8,0,1,0,246,255,234,255,226,255,224,255,234,255,3,0,44,0,100,0,168,0,243,0,61,1,125,1,173,1,199,1,19,245,149,230,89,18,243,41,31,6,84,32,189,0,168,253,105,2,103,119,117,0,97,255,210,251,8,116,52,0,221,0,168,246,116,110,252,255,17,2,234,242,229,102,208,255,246,2,140,240,165,93,176,255,137,3,117,239,6,83,157,255,204,3,130,239,102,71,149,255,199,3,139,240,39,59,153,255,
128,3,97,242,174,46,165,255,5,3,207,244,94,34,185,255,99,2,161,247,152,22,210,255,169,1,161,250,180,11,0,1,1,1,2,3,3,3,2,3,3,3,2,3,3,3,0,3,12,15,48,51,60,63,192,195,204,207,240,243,252,255,0,255,0,255,0,255,0,255,0,255,0,254,1,0,1,255,0,254,0,253,2,0,1,255,0,254,0,253,3,0,1,255,117,110,107,110,111,119,110,32,101,114,114,111,114,0,115,117,99,99,101,115,115,0,105,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,98,117,102,102,101,114,32,116,111,111,32,115,109,97,108,108,0,105,110,116,101,
114,110,97,108,32,101,114,114,111,114,0,99,111,114,114,117,112,116,101,100,32,115,116,114,101,97,109,0,114,101,113,117,101,115,116,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,105,110,118,97,108,105,100,32,115,116,97,116,101,0,109,101,109,111,114,121,32,97,108,108,111,99,97,116,105,111,110,32,102,97,105,108,101,100,0,108,105,98,111,112,117,115,32,49,46,49,46,50,0,2,1,0,255,255,156,110,86,70,59,51,45,40,37,33,31,28,26,25,23,22,21,20,19,18,17,16,16,15,15,14,13,13,12,12,12,12,11,11,
11,10,10,10,9,9,9,9,9,9,8,8,8,8,8,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,25,23,2,0,126,124,119,109,87,41,19,9,4,2,0,2,1,0,25,23,2,0,126,124,119,109,87,41,19,9,4,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,90,80,75,69,63,56,49,40,34,29,20,18,10,0,0,0,0,0,0,0,0,110,100,90,84,78,71,65,58,51,45,39,32,26,20,12,0,0,0,0,0,0,118,110,103,93,86,80,75,70,65,59,53,47,40,31,23,15,4,0,0,0,0,126,
119,112,104,95,89,83,78,72,66,60,54,47,39,32,25,17,12,1,0,0,134,127,120,114,103,97,91,85,78,72,66,60,54,47,41,35,29,23,16,10,1,144,137,130,124,113,107,101,95,88,82,76,70,64,57,51,45,39,33,26,15,1,152,145,138,132,123,117,111,105,98,92,86,80,74,67,61,55,49,43,36,20,1,162,155,148,142,133,127,121,115,108,102,96,90,84,77,71,65,59,53,46,30,1,172,165,158,152,143,137,131,125,118,112,106,100,94,87,81,75,69,63,56,45,20,200,200,200,200,200,200,200,200,198,193,188,183,178,173,168,163,158,153,148,129,104,40,7,
7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,40,15,23,28,31,34,36,38,39,41,42,43,44,45,46,47,47,49,50,51,52,53,54,55,55,57,58,59,60,61,62,63,63,65,66,67,68,69,70,71,71,40,20,33,41,48,53,57,61,64,66,69,71,73,75,76,78,80,82,85,87,89,91,92,94,96,98,101,103,105,107,108,110,112,114,117,119,121,123,124,126,128,40,23,39,51,60,67,73,79,83,87,91,94,97,100,102,105,107,111,115,118,121,124,126,129,131,135,139,142,145,148,150,153,155,159,163,166,169,172,174,177,179,35,28,49,65,
78,89,99,107,114,120,126,132,136,141,145,149,153,159,165,171,176,180,185,189,192,199,205,211,216,220,225,229,232,239,245,251,21,33,58,79,97,112,125,137,148,157,166,174,182,189,195,201,207,217,227,235,243,251,17,35,63,86,106,123,139,152,165,177,187,197,206,214,222,230,237,250,25,31,55,75,91,105,117,128,138,146,154,161,168,174,180,185,190,200,208,215,222,229,235,240,245,255,16,36,65,89,110,128,144,159,173,185,196,207,217,226,234,242,250,11,41,74,103,128,151,172,191,209,225,241,255,9,43,79,110,138,163,
186,207,227,246,12,39,71,99,123,144,164,182,198,214,228,241,253,9,44,81,113,142,168,192,214,235,255,7,49,90,127,160,191,220,247,6,51,95,134,170,203,234,7,47,87,123,155,184,212,237,6,52,97,137,174,208,240,5,57,106,151,192,231,5,59,111,158,202,243,5,55,103,147,187,224,5,60,113,161,206,248,4,65,122,175,224,4,67,127,182,234,224,224,224,224,224,224,224,224,160,160,160,160,185,185,185,178,178,168,134,61,37,224,224,224,224,224,224,224,224,240,240,240,240,207,207,207,198,198,183,144,66,40,160,160,160,160,
160,160,160,160,185,185,185,185,193,193,193,183,183,172,138,64,38,240,240,240,240,240,240,240,240,207,207,207,207,204,204,204,193,193,180,143,66,40,185,185,185,185,185,185,185,185,193,193,193,193,193,193,193,183,183,172,138,65,39,207,207,207,207,207,207,207,207,204,204,204,204,201,201,201,188,188,176,141,66,40,193,193,193,193,193,193,193,193,193,193,193,193,194,194,194,184,184,173,139,65,39,204,204,204,204,204,204,204,204,201,201,201,201,198,198,198,187,187,175,140,66,40,72,127,65,129,66,128,65,128,
64,128,62,128,64,128,64,128,92,78,92,79,92,78,90,79,116,41,115,40,114,40,132,26,132,26,145,17,161,12,176,10,177,11,24,179,48,138,54,135,54,132,53,134,56,133,55,132,55,132,61,114,70,96,74,88,75,88,87,74,89,66,91,67,100,59,108,50,120,40,122,37,97,43,78,50,83,78,84,81,88,75,86,74,87,71,90,73,93,74,93,74,109,40,114,36,117,34,117,34,143,17,145,18,146,19,162,12,165,10,178,7,189,6,190,8,177,9,23,178,54,115,63,102,66,98,69,99,74,89,71,91,73,91,78,89,86,80,92,66,93,64,102,59,103,60,104,60,117,52,123,44,138,
35,133,31,97,38,77,45,61,90,93,60,105,42,107,41,110,45,116,38,113,38,112,38,124,26,132,27,136,19,140,20,155,14,159,16,158,18,170,13,177,10,187,8,192,6,175,9,159,10,21,178,59,110,71,86,75,85,84,83,91,66,88,73,87,72,92,75,98,72,105,58,107,54,115,52,114,55,112,56,129,51,132,40,150,33,140,29,98,35,77,42,42,121,96,66,108,43,111,40,117,44,123,32,120,36,119,33,127,33,134,34,139,21,147,23,152,20,158,25,154,26,166,21,173,16,184,13,184,10,150,13,139,15,22,178,63,114,74,82,84,83,92,82,103,62,96,72,96,67,101,
73,107,72,113,55,118,52,125,52,118,52,117,55,135,49,137,39,157,32,145,29,97,33,77,40,2,1,0,0,8,13,16,19,21,23,24,26,27,28,29,30,31,32,32,33,34,34,35,36,36,37,37,224,112,44,15,3,2,1,0,254,237,192,132,70,23,4,0,255,252,226,155,61,11,2,0,250,245,234,203,71,50,42,38,35,33,31,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,179,99,0,71,56,43,30,21,12,6,0,199,165,144,124,109,96,84,71,61,51,42,32,23,15,8,0,241,225,211,199,187,175,164,153,142,132,123,114,105,96,88,80,72,64,
57,50,44,38,33,29,24,20,16,12,9,5,2,0,15,131,138,138,155,155,173,173,69,93,115,118,131,138,141,138,150,150,155,150,155,160,166,160,131,128,134,141,141,141,145,145,145,150,155,155,155,155,160,160,160,160,166,166,173,173,182,192,182,192,192,192,205,192,205,224,4,6,24,7,5,0,0,2,0,0,12,28,41,13,252,247,15,42,25,14,1,254,62,41,247,246,37,65,252,3,250,4,66,7,248,16,14,38,253,33,13,22,39,23,12,255,36,64,27,250,249,10,55,43,17,1,1,8,1,1,6,245,74,53,247,244,55,76,244,8,253,3,93,27,252,26,39,59,3,248,2,0,77,
11,9,248,22,44,250,7,40,9,26,3,9,249,20,101,249,4,3,248,42,26,0,241,33,68,2,23,254,55,46,254,15,3,255,21,16,41,250,27,61,39,5,245,42,88,4,1,254,60,65,6,252,255,251,73,56,1,247,19,94,29,247,0,12,99,6,4,8,237,102,46,243,3,2,13,3,2,9,235,84,72,238,245,46,104,234,8,18,38,48,23,0,240,70,83,235,11,5,245,117,22,248,250,23,117,244,3,3,248,95,28,4,246,15,77,60,241,255,4,124,2,252,3,38,84,24,231,2,13,42,13,31,21,252,56,46,255,255,35,79,243,19,249,65,88,247,242,20,4,81,49,227,20,0,75,3,239,5,247,44,92,248,1,
253,22,69,31,250,95,41,244,5,39,67,16,252,1,0,250,120,55,220,243,44,122,4,232,81,5,11,3,7,2,0,9,10,88,46,2,90,87,93,91,82,98,109,120,118,12,113,115,117,119,99,59,87,111,63,111,112,80,126,124,125,124,129,121,126,23,132,127,127,127,126,127,122,133,130,134,101,118,119,145,126,86,124,120,123,119,170,173,107,109,8,16,32,12,35,60,83,108,132,157,180,206,228,15,32,55,77,101,125,151,175,201,225,19,42,66,89,114,137,162,184,209,230,12,25,50,72,97,120,147,172,200,223,26,44,69,90,114,135,159,180,205,225,13,22,
53,80,106,130,156,180,205,228,15,25,44,64,90,115,142,168,196,222,19,24,62,82,100,120,145,168,190,214,22,31,50,79,103,120,151,170,203,227,21,29,45,65,106,124,150,171,196,224,30,49,75,97,121,142,165,186,209,229,19,25,52,70,93,116,143,166,192,219,26,34,62,75,97,118,145,167,194,217,25,33,56,70,91,113,143,165,196,223,21,34,51,72,97,117,145,171,196,222,20,29,50,67,90,117,144,168,197,221,22,31,48,66,95,117,146,168,196,222,24,33,51,77,116,134,158,180,200,224,21,28,70,87,106,124,149,170,194,217,26,33,53,64,
83,117,152,173,204,225,27,34,65,95,108,129,155,174,210,225,20,26,72,99,113,131,154,176,200,219,34,43,61,78,93,114,155,177,205,229,23,29,54,97,124,138,163,179,209,229,30,38,56,89,118,129,158,178,200,231,21,29,49,63,85,111,142,163,193,222,27,48,77,103,133,158,179,196,215,232,29,47,74,99,124,151,176,198,220,237,33,42,61,76,93,121,155,174,207,225,29,53,87,112,136,154,170,188,208,227,24,30,52,84,131,150,166,186,203,229,37,48,64,84,104,118,156,177,201,230,212,178,148,129,108,96,85,82,79,77,61,59,57,56,
51,49,48,45,42,41,40,38,36,34,31,30,21,12,10,3,1,0,255,245,244,236,233,225,217,203,190,176,175,161,149,136,125,114,102,91,81,71,60,52,43,35,28,20,19,18,12,11,5,0,179,138,140,148,151,149,153,151,163,116,67,82,59,92,72,100,89,92,16,0,0,0,0,99,66,36,36,34,36,34,34,34,34,83,69,36,52,34,116,102,70,68,68,176,102,68,68,34,65,85,68,84,36,116,141,152,139,170,132,187,184,216,137,132,249,168,185,139,104,102,100,68,68,178,218,185,185,170,244,216,187,187,170,244,187,187,219,138,103,155,184,185,137,116,183,155,
152,136,132,217,184,184,170,164,217,171,155,139,244,169,184,185,170,164,216,223,218,138,214,143,188,218,168,244,141,136,155,170,168,138,220,219,139,164,219,202,216,137,168,186,246,185,139,116,185,219,185,138,100,100,134,100,102,34,68,68,100,68,168,203,221,218,168,167,154,136,104,70,164,246,171,137,139,137,155,218,219,139,255,254,253,238,14,3,2,1,0,255,254,252,218,35,3,2,1,0,255,254,250,208,59,4,2,1,0,255,254,246,194,71,10,2,1,0,255,252,236,183,82,8,2,1,0,255,252,235,180,90,17,2,1,0,255,248,224,171,
97,30,4,1,0,255,254,236,173,95,37,7,1,0,255,255,255,131,6,145,255,255,255,255,255,236,93,15,96,255,255,255,255,255,194,83,25,71,221,255,255,255,255,162,73,34,66,162,255,255,255,210,126,73,43,57,173,255,255,255,201,125,71,48,58,130,255,255,255,166,110,73,57,62,104,210,255,255,251,123,65,55,68,100,171,255,7,23,38,54,69,85,100,116,131,147,162,178,193,208,223,239,13,25,41,55,69,83,98,112,127,142,157,171,187,203,220,236,15,21,34,51,61,78,92,106,126,136,152,167,185,205,225,240,10,21,36,50,63,79,95,110,
126,141,157,173,189,205,221,237,17,20,37,51,59,78,89,107,123,134,150,164,184,205,224,240,10,15,32,51,67,81,96,112,129,142,158,173,189,204,220,236,8,21,37,51,65,79,98,113,126,138,155,168,179,192,209,218,12,15,34,55,63,78,87,108,118,131,148,167,185,203,219,236,16,19,32,36,56,79,91,108,118,136,154,171,186,204,220,237,11,28,43,58,74,89,105,120,135,150,165,180,196,211,226,241,6,16,33,46,60,75,92,107,123,137,156,169,185,199,214,225,11,19,30,44,57,74,89,105,121,135,152,169,186,202,218,234,12,19,29,46,57,
71,88,100,120,132,148,165,182,199,216,233,17,23,35,46,56,77,92,106,123,134,152,167,185,204,222,237,14,17,45,53,63,75,89,107,115,132,151,171,188,206,221,240,9,16,29,40,56,71,88,103,119,137,154,171,189,205,222,237,16,19,36,48,57,76,87,105,118,132,150,167,185,202,218,236,12,17,29,54,71,81,94,104,126,136,149,164,182,201,221,237,15,28,47,62,79,97,115,129,142,155,168,180,194,208,223,238,8,14,30,45,62,78,94,111,127,143,159,175,192,207,223,239,17,30,49,62,79,92,107,119,132,145,160,174,190,204,220,235,14,
19,36,45,61,76,91,108,121,138,154,172,189,205,222,238,12,18,31,45,60,76,91,107,123,138,154,171,187,204,221,236,13,17,31,43,53,70,83,103,114,131,149,167,185,203,220,237,17,22,35,42,58,78,93,110,125,139,155,170,188,206,224,240,8,15,34,50,67,83,99,115,131,146,162,178,193,209,224,239,13,16,41,66,73,86,95,111,128,137,150,163,183,206,225,241,17,25,37,52,63,75,92,102,119,132,144,160,175,191,212,231,19,31,49,65,83,100,117,133,147,161,174,187,200,213,227,242,18,31,52,68,88,103,117,126,138,149,163,177,192,
207,223,239,16,29,47,61,76,90,106,119,133,147,161,176,193,209,224,240,15,21,35,50,61,73,86,97,110,119,129,141,175,198,218,237,225,204,201,184,183,175,158,154,153,135,119,115,113,110,109,99,98,95,79,68,52,50,48,45,43,32,31,27,18,10,3,0,255,251,235,230,212,201,196,182,167,166,163,151,138,124,110,104,90,78,76,70,69,57,45,34,24,21,11,6,5,4,3,0,175,148,160,176,178,173,174,164,177,174,196,182,198,192,182,68,62,66,60,72,117,85,90,118,136,151,142,160,142,155,0,0,0,0,0,0,0,1,100,102,102,68,68,36,34,96,164,
107,158,185,180,185,139,102,64,66,36,34,34,0,1,32,208,139,141,191,152,185,155,104,96,171,104,166,102,102,102,132,1,0,0,0,0,16,16,0,80,109,78,107,185,139,103,101,208,212,141,139,173,153,123,103,36,0,0,0,0,0,0,1,48,0,0,0,0,0,0,32,68,135,123,119,119,103,69,98,68,103,120,118,118,102,71,98,134,136,157,184,182,153,139,134,208,168,248,75,189,143,121,107,32,49,34,34,34,0,17,2,210,235,139,123,185,137,105,134,98,135,104,182,100,183,171,134,100,70,68,70,66,66,34,131,64,166,102,68,36,2,1,0,134,166,102,68,34,
34,66,132,212,246,158,139,107,107,87,102,100,219,125,122,137,118,103,132,114,135,137,105,171,106,50,34,164,214,141,143,185,151,121,103,192,34,0,0,0,0,0,1,208,109,74,187,134,249,159,137,102,110,154,118,87,101,119,101,0,2,0,36,36,66,68,35,96,164,102,100,36,0,2,33,167,138,174,102,100,84,2,2,100,107,120,119,36,197,24,0,255,254,253,244,12,3,2,1,0,255,254,252,224,38,3,2,1,0,255,254,251,209,57,4,2,1,0,255,254,244,195,69,4,2,1,0,255,251,232,184,84,7,2,1,0,255,254,240,186,86,14,2,1,0,255,254,239,178,91,30,
5,1,0,255,248,227,177,100,19,2,1,0,255,255,255,156,4,154,255,255,255,255,255,227,102,15,92,255,255,255,255,255,213,83,24,72,236,255,255,255,255,150,76,33,63,214,255,255,255,190,121,77,43,55,185,255,255,255,245,137,71,43,59,139,255,255,255,255,131,66,50,66,107,194,255,255,166,116,76,55,53,125,255,255,249,247,246,245,244,234,210,202,201,200,197,174,82,59,56,55,54,46,22,12,11,10,9,7,0,64,0,203,150,0,215,195,166,125,110,82,0,120,0,128,64,0,232,158,10,0,230,0,243,221,192,181,0,171,85,0,192,128,64,0,205,
154,102,51,0,213,171,128,85,43,0,224,192,160,128,96,64,32,0,100,40,16,7,3,1,0,253,250,244,233,212,182,150,131,120,110,98,85,72,60,49,40,32,25,19,15,13,11,9,8,7,6,5,4,3,2,1,0,210,208,206,203,199,193,183,168,142,104,74,52,37,27,20,14,10,6,4,2,0,223,201,183,167,152,138,124,111,98,88,79,70,62,56,50,44,39,35,31,27,24,21,18,16,14,12,10,8,6,4,3,2,1,0,188,176,155,138,119,97,67,43,26,10,0,165,119,80,61,47,35,27,20,14,9,4,0,113,63,0,8,10,12,16,125,51,26,18,15,12,11,10,9,8,7,6,5,4,3,2,1,0,198,105,45,22,15,12,
11,10,9,8,7,6,5,4,3,2,1,0,213,162,116,83,59,43,32,24,18,15,12,9,7,6,5,3,2,0,239,187,116,59,28,16,11,10,9,8,7,6,5,4,3,2,1,0,250,229,188,135,86,51,30,19,13,10,8,6,5,4,3,2,1,0,249,235,213,185,156,128,103,83,66,53,42,33,26,21,17,13,10,0,254,249,235,206,164,118,77,46,27,16,10,7,5,4,3,2,1,0,255,253,249,239,220,191,156,119,85,57,37,23,15,10,6,4,2,0,255,253,251,246,237,223,203,179,152,124,98,75,55,40,29,21,15,0,255,254,253,247,220,162,106,67,42,28,18,12,9,6,4,3,2,0,31,57,107,160,205,205,255,255,255,255,255,
255,255,255,255,255,255,255,69,47,67,111,166,205,255,255,255,255,255,255,255,255,255,255,255,255,82,74,79,95,109,128,145,160,173,205,205,205,224,255,255,224,255,224,125,74,59,69,97,141,182,255,255,255,255,255,255,255,255,255,255,255,173,115,85,73,76,92,115,145,173,205,224,224,255,255,255,255,255,255,166,134,113,102,101,102,107,118,125,138,145,155,166,182,192,192,205,150,224,182,134,101,83,79,85,97,120,145,173,205,224,255,255,255,255,255,255,224,192,150,120,101,92,89,93,102,118,134,160,182,192,224,
224,224,255,224,224,182,155,134,118,109,104,102,106,111,118,131,145,160,173,131,241,190,178,132,87,74,41,14,0,223,193,157,140,106,57,39,18,0,131,74,141,79,80,138,95,104,134,95,99,91,125,93,76,123,115,123,128,0,214,42,0,235,128,21,0,244,184,72,11,0,248,214,128,42,7,0,248,225,170,80,25,5,0,251,236,198,126,54,18,3,0,250,238,211,159,82,35,15,5,0,250,231,203,168,128,88,53,25,6,0,252,238,216,185,148,108,71,40,18,4,0,253,243,225,199,166,128,90,57,31,13,3,0,254,246,233,212,183,147,109,73,44,23,10,2,0,255,
250,240,223,198,166,128,90,58,33,16,6,1,0,255,251,244,231,210,181,146,110,75,46,25,12,5,1,0,255,253,248,238,221,196,164,128,92,60,35,18,8,3,1,0,255,253,249,242,229,208,180,146,110,76,48,27,14,7,3,1,0,129,0,207,50,0,236,129,20,0,245,185,72,10,0,249,213,129,42,6,0,250,226,169,87,27,4,0,251,233,194,130,62,20,4,0,250,236,207,160,99,47,17,3,0,255,240,217,182,131,81,41,11,1,0,255,254,233,201,159,107,61,20,2,1,0,255,249,233,206,170,128,86,50,23,7,1,0,255,250,238,217,186,148,108,70,39,18,6,1,0,255,252,243,
226,200,166,128,90,56,30,13,4,1,0,255,252,245,231,209,180,146,110,76,47,25,11,4,1,0,255,253,248,237,219,194,163,128,93,62,37,19,8,3,1,0,255,254,250,241,226,205,177,145,111,79,51,30,15,6,2,1,0,129,0,203,54,0,234,129,23,0,245,184,73,10,0,250,215,129,41,5,0,252,232,173,86,24,3,0,253,240,200,129,56,15,2,0,253,244,217,164,94,38,10,1,0,253,245,226,189,132,71,27,7,1,0,253,246,231,203,159,105,56,23,6,1,0,255,248,235,213,179,133,85,47,19,5,1,0,255,254,243,221,194,159,117,70,37,12,2,1,0,255,254,248,234,208,
171,128,85,48,22,8,2,1,0,255,254,250,240,220,189,149,107,67,36,16,6,2,1,0,255,254,251,243,227,201,166,128,90,55,29,13,5,2,1,0,255,254,252,246,234,213,183,147,109,73,43,22,10,4,2,1,0,130,0,200,58,0,231,130,26,0,244,184,76,12,0,249,214,130,43,6,0,252,232,173,87,24,3,0,253,241,203,131,56,14,2,0,254,246,221,167,94,35,8,1,0,254,249,232,193,130,65,23,5,1,0,255,251,239,211,162,99,45,15,4,1,0,255,251,243,223,186,131,74,33,11,3,1,0,255,252,245,230,202,158,105,57,24,8,2,1,0,255,253,247,235,214,179,132,84,44,
19,7,2,1,0,255,254,250,240,223,196,159,112,69,36,15,6,2,1,0,255,254,253,245,231,209,176,136,93,55,27,11,3,2,1,0,255,254,253,252,239,221,194,158,117,76,42,18,4,3,2,1,0,0,0,2,5,9,14,20,27,35,44,54,65,77,90,104,119,135,254,49,67,77,82,93,99,198,11,18,24,31,36,45,255,46,66,78,87,94,104,208,14,21,32,42,51,66,255,94,104,109,112,115,118,248,53,69,80,88,95,102,0,15,8,7,4,11,12,3,2,13,10,5,6,9,14,1,0,9,6,3,4,5,8,1,2,7,0,1,0,0,0,1,0,0,1,255,1,255,2,254,2,254,3,253,0,1,0,1,255,2,255,2,254,3,254,3,253,7,254,
7,0,2,255,255,255,0,0,1,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,255,2,1,0,1,1,0,0,255,255,0,0,1,255,0,1,255,0,255,1,254,2,254,254,2,253,2,3,253,252,3,252,4,4,251,5,250,251,6,249,6,5,8,247,0,0,1,0,0,0,0,0,0,0,255,1,0,0,1,255,0,1,255,255,1,255,2,1,255,2,254,254,2,254,2,2,3,253,0,1,0,0,0,0,0,0,1,0,1,0,0,1,255,1,0,0,2,1,255,2,255,255,2,255,2,2,255,3,254,254,254,3,0,1,0,0,1,0,1,255,2,255,2,255,2,3,254,3,254,254,4,4,253,5,253,252,6,252,6,5,251,8,250,251,249,9,251,8,255,6,255,6,252,10,250,10,
254,6,255,6,251,10,247,12,253,7,254,7,249,13,16,24,34,6,0,3,0,7,3,0,1,10,0,2,6,18,10,12,4,0,2,0,0,0,9,4,7,4,0,3,12,7,7,255,255],"i8",4,y.h+20480);var Na=z,z=z+16;function Oa(a){b.___errno_location&&(M[b.___errno_location()>>2]=a);return a}b._i64Add=Pa;b._bitshift64Ashr=Qa;b._memset=Ra;b._memcpy=Sa;var Ta=ha;function S(a){S.a||(E=wa(),S.a=!0,assert(y.b),S.u=y.b,y.b=function(){G("cannot dynamically allocate, sbrk now has control")});var c=E;return 0==a||S.u(a)?c:4294967295}
function Y(){Y.a||(Y.a=[]);Y.a.push(y.g());return Y.a.length-1}b._memmove=Ua;
var Aa=x=y.p(z),na=!0,Ba=Aa+Ca,E=y.p(Ba),Va=O([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,
0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],"i8",3);b.s={Math:Math,Int8Array:Int8Array,Int16Array:Int16Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Uint16Array:Uint16Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array,NaN:NaN,Infinity:Infinity};
b.t={abort:G,assert:assert,invoke_viiiiiii:function(a,c,d,e,g,k,h,A){try{b.dynCall_viiiiiii(a,c,d,e,g,k,h,A)}catch(m){if("number"!==typeof m&&"longjmp"!==m)throw m;Z.setThrew(1,0)}},_llvm_pow_f64:La,_pthread_self:function(){return 0},_abort:function(){b.abort()},___setErrNo:Oa,_llvm_stacksave:Y,_sbrk:S,_time:function(a){var c=Date.now()/1E3|0;a&&(M[a>>2]=c);return c},_llvm_fabs_f64:Ta,_emscripten_memcpy_big:function(a,c,d){R.set(R.subarray(c,c+d),a);return a},_llvm_stackrestore:function(a){var c=
Y.a[a];Y.a.splice(a,1);y.c(c)},_sysconf:function(a){switch(a){case 30:return 4096;case 85:return U/4096;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 79:return 0;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;
case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1E3;case 89:return 700;case 71:return 256;
case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return"object"===typeof navigator?navigator.hardwareConcurrency||1:1}Oa(22);return-1},STACKTOP:x,STACK_MAX:Ba,tempDoublePtr:Na,ABORT:H,cttz_i8:Va};// EMSCRIPTEN_START_ASM
var Z=(function(global,env,buffer) {
"use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.STACKTOP|0;var j=env.STACK_MAX|0;var k=env.tempDoublePtr|0;var l=env.ABORT|0;var m=env.cttz_i8|0;var n=0;var o=0;var p=0;var q=0;var r=global.NaN,s=global.Infinity;var t=0,u=0,v=0,w=0,x=0.0,y=0,z=0,A=0,B=0.0;var C=0;var D=0;var E=0;var F=0;var G=0;var H=0;var I=0;var J=0;var K=0;var L=0;var M=global.Math.floor;var N=global.Math.abs;var O=global.Math.sqrt;var P=global.Math.pow;var Q=global.Math.cos;var R=global.Math.sin;var S=global.Math.tan;var T=global.Math.acos;var U=global.Math.asin;var V=global.Math.atan;var W=global.Math.atan2;var X=global.Math.exp;var Y=global.Math.log;var Z=global.Math.ceil;var _=global.Math.imul;var $=global.Math.min;var aa=global.Math.clz32;var ba=env.abort;var ca=env.assert;var da=env.invoke_viiiiiii;var ea=env._llvm_pow_f64;var fa=env._pthread_self;var ga=env._abort;var ha=env.___setErrNo;var ia=env._llvm_stacksave;var ja=env._sbrk;var ka=env._time;var la=env._llvm_fabs_f64;var ma=env._emscripten_memcpy_big;var na=env._llvm_stackrestore;var oa=env._sysconf;var pa=0.0;
// EMSCRIPTEN_START_FUNCS
function Lb(a,d,e,f,h,j,k){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;var l=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ja=0,ka=0,la=0,ma=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0;ta=i;i=i+304|0;X=ta+288|0;Y=ta+284|0;l=ta+280|0;Z=ta+276|0;$=ta+272|0;aa=ta+268|0;ba=ta+264|0;ca=ta+260|0;ha=ta+256|0;ka=ta+252|0;ga=ta+248|0;M=ta+244|0;B=ta+240|0;n=ta+192|0;C=ta+184|0;ra=ta+176|0;ua=ta+168|0;oa=ta+164|0;pa=ta+160|0;qa=ta+156|0;V=ta+152|0;K=ta+148|0;Q=ta+144|0;q=ta+140|0;fa=ta+136|0;O=ta+132|0;P=ta+128|0;sa=ta+124|0;ja=ta+120|0;I=ta+116|0;G=ta+112|0;A=ta+108|0;T=ta+104|0;S=ta+100|0;J=ta+96|0;H=ta+92|0;z=ta+88|0;F=ta+84|0;y=ta+80|0;s=ta+76|0;U=ta+72|0;E=ta+68|0;D=ta+64|0;L=ta+60|0;N=ta+56|0;la=ta+52|0;ma=ta+48|0;R=ta+44|0;u=ta+40|0;p=ta+36|0;o=ta+32|0;da=ta+28|0;x=ta+24|0;w=ta+20|0;t=ta+16|0;r=ta+12|0;v=ta+8|0;W=ta+4|0;ea=ta;c[Y>>2]=a;c[l>>2]=d;c[Z>>2]=e;c[$>>2]=f;c[aa>>2]=h;c[ba>>2]=j;c[ca>>2]=k;c[fa>>2]=c[(c[Y>>2]|0)+8>>2];c[J>>2]=0;c[H>>2]=0;c[D>>2]=0;c[N>>2]=c[(c[Y>>2]|0)+12>>2];c[la>>2]=c[c[Y>>2]>>2];c[ma>>2]=c[(c[la>>2]|0)+8>>2];c[R>>2]=c[(c[la>>2]|0)+4>>2];c[u>>2]=c[(c[la>>2]|0)+32>>2];c[sa>>2]=c[(c[Y>>2]|0)+20>>2];c[ja>>2]=c[(c[Y>>2]|0)+24>>2];c[aa>>2]=_(c[aa>>2]|0,c[(c[Y>>2]|0)+16>>2]|0)|0;c[ua>>2]=(c[Y>>2]|0)+84+((_(2048+(c[R>>2]|0)|0,c[fa>>2]|0)|0)<<2);c[oa>>2]=(c[ua>>2]|0)+((c[fa>>2]|0)*24<<2);c[pa>>2]=(c[oa>>2]|0)+(c[ma>>2]<<1<<2);c[qa>>2]=(c[pa>>2]|0)+(c[ma>>2]<<1<<2);c[V>>2]=(c[qa>>2]|0)+(c[ma>>2]<<1<<2);c[O>>2]=0;while(1){if((c[O>>2]|0)>(c[(c[la>>2]|0)+36>>2]|0))break;if((c[(c[la>>2]|0)+44>>2]<<c[O>>2]|0)==(c[aa>>2]|0))break;c[O>>2]=(c[O>>2]|0)+1}if((c[O>>2]|0)>(c[(c[la>>2]|0)+36>>2]|0)){c[X>>2]=-1;ua=c[X>>2]|0;i=ta;return ua|0}c[P>>2]=1<<c[O>>2];if((c[Z>>2]|0)<0|(c[Z>>2]|0)>1275|(c[$>>2]|0)==0){c[X>>2]=-1;ua=c[X>>2]|0;i=ta;return ua|0}c[ga>>2]=_(c[P>>2]|0,c[(c[la>>2]|0)+44>>2]|0)|0;c[ha>>2]=0;do{ua=(c[Y>>2]|0)+84+((_(c[ha>>2]|0,2048+(c[R>>2]|0)|0)|0)<<2)|0;c[C+(c[ha>>2]<<2)>>2]=ua;c[ra+(c[ha>>2]<<2)>>2]=(c[C+(c[ha>>2]<<2)>>2]|0)+8192+(0-(c[ga>>2]|0)<<2);ua=(c[ha>>2]|0)+1|0;c[ha>>2]=ua}while((ua|0)<(c[fa>>2]|0));c[I>>2]=c[ja>>2];if((c[I>>2]|0)>(c[(c[la>>2]|0)+12>>2]|0))c[I>>2]=c[(c[la>>2]|0)+12>>2];if((c[l>>2]|0)==0|(c[Z>>2]|0)<=1){Mb(c[Y>>2]|0,c[ga>>2]|0,c[O>>2]|0);Pb(ra,c[$>>2]|0,c[ga>>2]|0,c[fa>>2]|0,c[(c[Y>>2]|0)+16>>2]|0,(c[la>>2]|0)+16|0,(c[Y>>2]|0)+76|0,c[ca>>2]|0);c[X>>2]=(c[aa>>2]|0)/(c[(c[Y>>2]|0)+16>>2]|0)|0;ua=c[X>>2]|0;i=ta;return ua|0}if(!(c[ba>>2]|0)){Yb(n,c[l>>2]|0,c[Z>>2]|0);c[ba>>2]=n}a:do if((c[N>>2]|0)==1){c[ka>>2]=0;while(1){if((c[ka>>2]|0)>=(c[ma>>2]|0))break a;if(+g[(c[oa>>2]|0)+(c[ka>>2]<<2)>>2]>+g[(c[oa>>2]|0)+((c[ma>>2]|0)+(c[ka>>2]|0)<<2)>>2])m=+g[(c[oa>>2]|0)+(c[ka>>2]<<2)>>2];else m=+g[(c[oa>>2]|0)+((c[ma>>2]|0)+(c[ka>>2]|0)<<2)>>2];g[(c[oa>>2]|0)+(c[ka>>2]<<2)>>2]=m;c[ka>>2]=(c[ka>>2]|0)+1}}while(0);c[z>>2]=c[Z>>2]<<3;c[y>>2]=Qb(c[ba>>2]|0)|0;do if((c[y>>2]|0)<(c[z>>2]|0))if((c[y>>2]|0)==1){c[L>>2]=dc(c[ba>>2]|0,15)|0;break}else{c[L>>2]=0;break}else c[L>>2]=1;while(0);if(c[L>>2]|0){c[y>>2]=c[Z>>2]<<3;a=c[y>>2]|0;a=a-(Qb(c[ba>>2]|0)|0)|0;ua=(c[ba>>2]|0)+20|0;c[ua>>2]=(c[ua>>2]|0)+a}g[S>>2]=0.0;c[T>>2]=0;c[U>>2]=0;if((c[sa>>2]|0)==0?((c[y>>2]|0)+16|0)<=(c[z>>2]|0):0){if(dc(c[ba>>2]|0,1)|0){c[o>>2]=fc(c[ba>>2]|0,6)|0;ua=16<<c[o>>2];c[T>>2]=ua+(gc(c[ba>>2]|0,4+(c[o>>2]|0)|0)|0)-1;c[p>>2]=gc(c[ba>>2]|0,3)|0;ua=(Qb(c[ba>>2]|0)|0)+2|0;if((ua|0)<=(c[z>>2]|0))c[U>>2]=ec(c[ba>>2]|0,25575,2)|0;g[S>>2]=+((c[p>>2]|0)+1|0)*.09375}c[y>>2]=Qb(c[ba>>2]|0)|0}if((c[O>>2]|0)>0?((c[y>>2]|0)+3|0)<=(c[z>>2]|0):0){c[Q>>2]=dc(c[ba>>2]|0,3)|0;c[y>>2]=Qb(c[ba>>2]|0)|0}else c[Q>>2]=0;if(c[Q>>2]|0)c[K>>2]=c[P>>2];else c[K>>2]=0;if(((c[y>>2]|0)+3|0)<=(c[z>>2]|0))l=dc(c[ba>>2]|0,3)|0;else l=0;c[q>>2]=l;fd(c[la>>2]|0,c[sa>>2]|0,c[ja>>2]|0,c[oa>>2]|0,c[q>>2]|0,c[ba>>2]|0,c[N>>2]|0,c[O>>2]|0);ua=c[ma>>2]|0;c[da>>2]=ia()|0;e=i;i=i+((1*(ua<<2)|0)+15&-16)|0;Rb(c[sa>>2]|0,c[ja>>2]|0,c[Q>>2]|0,e,c[O>>2]|0,c[ba>>2]|0);c[y>>2]=Qb(c[ba>>2]|0)|0;c[M>>2]=2;if(((c[y>>2]|0)+4|0)<=(c[z>>2]|0))c[M>>2]=ec(c[ba>>2]|0,25578,5)|0;n=i;i=i+((1*(c[ma>>2]<<2)|0)+15&-16)|0;eb(c[la>>2]|0,n,c[O>>2]|0,c[N>>2]|0);h=i;i=i+((1*(c[ma>>2]<<2)|0)+15&-16)|0;c[s>>2]=6;c[z>>2]=c[z>>2]<<3;c[y>>2]=Xb(c[ba>>2]|0)|0;c[ka>>2]=c[sa>>2];while(1){if((c[ka>>2]|0)>=(c[ja>>2]|0))break;l=_(c[N>>2]|0,(b[(c[u>>2]|0)+((c[ka>>2]|0)+1<<1)>>1]|0)-(b[(c[u>>2]|0)+(c[ka>>2]<<1)>>1]|0)|0)|0;c[x>>2]=l<<c[O>>2];l=c[x>>2]|0;if((c[x>>2]<<3|0)<((48>(c[x>>2]|0)?48:c[x>>2]|0)|0))l=l<<3;else l=48>(l|0)?48:c[x>>2]|0;c[w>>2]=l;c[t>>2]=c[s>>2];c[r>>2]=0;while(1){if(((c[y>>2]|0)+(c[t>>2]<<3)|0)>=(c[z>>2]|0))break;if((c[r>>2]|0)>=(c[n+(c[ka>>2]<<2)>>2]|0))break;c[v>>2]=dc(c[ba>>2]|0,c[t>>2]|0)|0;c[y>>2]=Xb(c[ba>>2]|0)|0;if(!(c[v>>2]|0))break;c[r>>2]=(c[r>>2]|0)+(c[w>>2]|0);c[z>>2]=(c[z>>2]|0)-(c[w>>2]|0);c[t>>2]=1}c[h+(c[ka>>2]<<2)>>2]=c[r>>2];if((c[r>>2]|0)>0)c[s>>2]=2>((c[s>>2]|0)-1|0)?2:(c[s>>2]|0)-1|0;c[ka>>2]=(c[ka>>2]|0)+1}j=i;i=i+((1*(c[ma>>2]<<2)|0)+15&-16)|0;if(((c[y>>2]|0)+48|0)<=(c[z>>2]|0))l=ec(c[ba>>2]|0,25582,7)|0;else l=5;c[A>>2]=l;ua=c[Z>>2]<<3<<3;c[B>>2]=ua-(Xb(c[ba>>2]|0)|0)-1;if((c[Q>>2]|0)!=0&(c[O>>2]|0)>=2)l=(c[B>>2]|0)>=((c[O>>2]|0)+2<<3|0);else l=0;c[E>>2]=l?8:0;c[B>>2]=(c[B>>2]|0)-(c[E>>2]|0);k=i;i=i+((1*(c[ma>>2]<<2)|0)+15&-16)|0;d=i;i=i+((1*(c[ma>>2]<<2)|0)+15&-16)|0;c[G>>2]=jd(c[la>>2]|0,c[sa>>2]|0,c[ja>>2]|0,h,n,c[A>>2]|0,J,H,c[B>>2]|0,F,k,j,d,c[N>>2]|0,c[O>>2]|0,c[ba>>2]|0,0,0,0)|0;gd(c[la>>2]|0,c[sa>>2]|0,c[ja>>2]|0,c[oa>>2]|0,j,c[ba>>2]|0,c[N>>2]|0);c[ha>>2]=0;do{qj(c[C+(c[ha>>2]<<2)>>2]|0,(c[C+(c[ha>>2]<<2)>>2]|0)+(c[ga>>2]<<2)|0,(2048-(c[ga>>2]|0)+((c[R>>2]|0)/2|0)<<2)+0|0)|0;ua=(c[ha>>2]|0)+1|0;c[ha>>2]=ua}while((ua|0)<(c[fa>>2]|0));ua=_(c[N>>2]|0,c[ma>>2]|0)|0;l=i;i=i+((1*ua|0)+15&-16)|0;ua=(_(c[N>>2]|0,c[ga>>2]|0)|0)<<2;n=i;i=i+((1*ua|0)+15&-16)|0;Ka(0,c[la>>2]|0,c[sa>>2]|0,c[ja>>2]|0,n,(c[N>>2]|0)==2?n+(c[ga>>2]<<2)|0:0,l,0,k,c[K>>2]|0,c[M>>2]|0,c[H>>2]|0,c[J>>2]|0,e,(c[Z>>2]<<6)-(c[E>>2]|0)|0,c[F>>2]|0,c[ba>>2]|0,c[O>>2]|0,c[G>>2]|0,(c[Y>>2]|0)+36|0,c[(c[Y>>2]|0)+32>>2]|0);if((c[E>>2]|0)>0)c[D>>2]=gc(c[ba>>2]|0,1)|0;H=c[la>>2]|0;J=c[sa>>2]|0;K=c[ja>>2]|0;M=c[oa>>2]|0;ua=c[Z>>2]<<3;ua=ua-(Qb(c[ba>>2]|0)|0)|0;hd(H,J,K,M,j,d,ua,c[ba>>2]|0,c[N>>2]|0);if(c[D>>2]|0)Ga(c[la>>2]|0,n,l,c[O>>2]|0,c[N>>2]|0,c[ga>>2]|0,c[sa>>2]|0,c[ja>>2]|0,c[oa>>2]|0,c[pa>>2]|0,c[qa>>2]|0,k,c[(c[Y>>2]|0)+36>>2]|0,c[(c[Y>>2]|0)+32>>2]|0);b:do if(c[L>>2]|0){c[ka>>2]=0;while(1){if((c[ka>>2]|0)>=(_(c[N>>2]|0,c[ma>>2]|0)|0))break b;g[(c[oa>>2]|0)+(c[ka>>2]<<2)>>2]=-28.0;c[ka>>2]=(c[ka>>2]|0)+1}}while(0);Nb(c[la>>2]|0,n,ra,c[oa>>2]|0,c[sa>>2]|0,c[I>>2]|0,c[N>>2]|0,c[fa>>2]|0,c[Q>>2]|0,c[O>>2]|0,c[(c[Y>>2]|0)+16>>2]|0,c[L>>2]|0,c[(c[Y>>2]|0)+32>>2]|0);c[ha>>2]=0;do{if((c[(c[Y>>2]|0)+52>>2]|0)>15)l=c[(c[Y>>2]|0)+52>>2]|0;else l=15;c[(c[Y>>2]|0)+52>>2]=l;if((c[(c[Y>>2]|0)+56>>2]|0)>15)l=c[(c[Y>>2]|0)+56>>2]|0;else l=15;c[(c[Y>>2]|0)+56>>2]=l;cb(c[ra+(c[ha>>2]<<2)>>2]|0,c[ra+(c[ha>>2]<<2)>>2]|0,c[(c[Y>>2]|0)+56>>2]|0,c[(c[Y>>2]|0)+52>>2]|0,c[(c[la>>2]|0)+44>>2]|0,+g[(c[Y>>2]|0)+64>>2],+g[(c[Y>>2]|0)+60>>2],c[(c[Y>>2]|0)+72>>2]|0,c[(c[Y>>2]|0)+68>>2]|0,c[(c[la>>2]|0)+60>>2]|0,c[R>>2]|0,c[(c[Y>>2]|0)+32>>2]|0);if(c[O>>2]|0)cb((c[ra+(c[ha>>2]<<2)>>2]|0)+(c[(c[la>>2]|0)+44>>2]<<2)|0,(c[ra+(c[ha>>2]<<2)>>2]|0)+(c[(c[la>>2]|0)+44>>2]<<2)|0,c[(c[Y>>2]|0)+52>>2]|0,c[T>>2]|0,(c[ga>>2]|0)-(c[(c[la>>2]|0)+44>>2]|0)|0,+g[(c[Y>>2]|0)+60>>2],+g[S>>2],c[(c[Y>>2]|0)+68>>2]|0,c[U>>2]|0,c[(c[la>>2]|0)+60>>2]|0,c[R>>2]|0,c[(c[Y>>2]|0)+32>>2]|0);ua=(c[ha>>2]|0)+1|0;c[ha>>2]=ua}while((ua|0)<(c[fa>>2]|0));c[(c[Y>>2]|0)+56>>2]=c[(c[Y>>2]|0)+52>>2];g[(c[Y>>2]|0)+64>>2]=+g[(c[Y>>2]|0)+60>>2];c[(c[Y>>2]|0)+72>>2]=c[(c[Y>>2]|0)+68>>2];c[(c[Y>>2]|0)+52>>2]=c[T>>2];g[(c[Y>>2]|0)+60>>2]=+g[S>>2];c[(c[Y>>2]|0)+68>>2]=c[U>>2];if(c[O>>2]|0){c[(c[Y>>2]|0)+56>>2]=c[(c[Y>>2]|0)+52>>2];g[(c[Y>>2]|0)+64>>2]=+g[(c[Y>>2]|0)+60>>2];c[(c[Y>>2]|0)+72>>2]=c[(c[Y>>2]|0)+68>>2]}if((c[N>>2]|0)==1)pj((c[oa>>2]|0)+(c[ma>>2]<<2)|0,c[oa>>2]|0,(c[ma>>2]<<2)+0|0)|0;c:do if(c[Q>>2]|0){c[ka>>2]=0;while(1){if((c[ka>>2]|0)>=(c[ma>>2]<<1|0))break c;l=c[ka>>2]|0;if(+g[(c[pa>>2]|0)+(c[ka>>2]<<2)>>2]<+g[(c[oa>>2]|0)+(c[ka>>2]<<2)>>2])m=+g[(c[pa>>2]|0)+(l<<2)>>2];else m=+g[(c[oa>>2]|0)+(l<<2)>>2];g[(c[pa>>2]|0)+(c[ka>>2]<<2)>>2]=m;c[ka>>2]=(c[ka>>2]|0)+1}}else{pj(c[qa>>2]|0,c[pa>>2]|0,(c[ma>>2]<<1<<2)+0|0)|0;pj(c[pa>>2]|0,c[oa>>2]|0,(c[ma>>2]<<1<<2)+0|0)|0;if((c[(c[Y>>2]|0)+48>>2]|0)<10)g[W>>2]=+(c[P>>2]|0)*1.0000000474974513e-03;else g[W>>2]=1.0;c[ka>>2]=0;while(1){if((c[ka>>2]|0)>=(c[ma>>2]<<1|0))break c;l=c[ka>>2]|0;if(+g[(c[V>>2]|0)+(c[ka>>2]<<2)>>2]+ +g[W>>2]<+g[(c[oa>>2]|0)+(c[ka>>2]<<2)>>2])m=+g[(c[V>>2]|0)+(l<<2)>>2]+ +g[W>>2];else m=+g[(c[oa>>2]|0)+(l<<2)>>2];g[(c[V>>2]|0)+(c[ka>>2]<<2)>>2]=m;c[ka>>2]=(c[ka>>2]|0)+1}}while(0);c[ha>>2]=0;do{c[ka>>2]=0;while(1){if((c[ka>>2]|0)>=(c[sa>>2]|0))break;ua=_(c[ha>>2]|0,c[ma>>2]|0)|0;g[(c[oa>>2]|0)+(ua+(c[ka>>2]|0)<<2)>>2]=0.0;ua=_(c[ha>>2]|0,c[ma>>2]|0)|0;g[(c[qa>>2]|0)+(ua+(c[ka>>2]|0)<<2)>>2]=-28.0;ua=_(c[ha>>2]|0,c[ma>>2]|0)|0;g[(c[pa>>2]|0)+(ua+(c[ka>>2]|0)<<2)>>2]=-28.0;c[ka>>2]=(c[ka>>2]|0)+1}c[ka>>2]=c[ja>>2];while(1){l=c[ha>>2]|0;if((c[ka>>2]|0)>=(c[ma>>2]|0))break;ua=_(l,c[ma>>2]|0)|0;g[(c[oa>>2]|0)+(ua+(c[ka>>2]|0)<<2)>>2]=0.0;ua=_(c[ha>>2]|0,c[ma>>2]|0)|0;g[(c[qa>>2]|0)+(ua+(c[ka>>2]|0)<<2)>>2]=-28.0;ua=_(c[ha>>2]|0,c[ma>>2]|0)|0;g[(c[pa>>2]|0)+(ua+(c[ka>>2]|0)<<2)>>2]=-28.0;c[ka>>2]=(c[ka>>2]|0)+1}ua=l+1|0;c[ha>>2]=ua}while((ua|0)<2);c[(c[Y>>2]|0)+36>>2]=c[(c[ba>>2]|0)+28>>2];Pb(ra,c[$>>2]|0,c[ga>>2]|0,c[fa>>2]|0,c[(c[Y>>2]|0)+16>>2]|0,(c[la>>2]|0)+16|0,(c[Y>>2]|0)+76|0,c[ca>>2]|0);c[(c[Y>>2]|0)+48>>2]=0;ua=Qb(c[ba>>2]|0)|0;if((ua|0)>(c[Z>>2]<<3|0)){c[X>>2]=-3;c[ea>>2]=1}else{if(Sb(c[ba>>2]|0)|0)c[(c[Y>>2]|0)+40>>2]=1;c[X>>2]=(c[aa>>2]|0)/(c[(c[Y>>2]|0)+16>>2]|0)|0;c[ea>>2]=1}na(c[da>>2]|0);ua=c[X>>2]|0;i=ta;return ua|0}function Mb(a,d,e){a=a|0;d=d|0;e=e|0;var f=0.0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ja=0,ka=0;ka=i;i=i+4608|0;aa=ka+4596|0;ba=ka+4592|0;L=ka+4588|0;da=ka+4584|0;fa=ka+4580|0;ca=ka+4576|0;ea=ka+4568|0;Y=ka+4560|0;C=ka+4556|0;X=ka+4552|0;j=ka+4548|0;k=ka+4544|0;N=ka+4540|0;ha=ka+4536|0;W=ka+4532|0;ja=ka+4528|0;$=ka+4524|0;ga=ka+4520|0;h=ka+4516|0;S=ka+4512|0;Z=ka+4508|0;U=ka+4504|0;T=ka+4500|0;R=ka+4496|0;M=ka+4492|0;V=ka+4488|0;Q=ka+4484|0;P=ka+4480|0;K=ka+4476|0;A=ka+4472|0;F=ka+4468|0;l=ka+4464|0;w=ka+368|0;t=ka+360|0;r=ka+356|0;o=ka+352|0;s=ka+348|0;z=ka+344|0;y=ka+340|0;x=ka+336|0;B=ka+332|0;q=ka+232|0;D=ka+136|0;m=ka+128|0;n=ka+124|0;u=ka+120|0;v=ka+116|0;H=ka+112|0;E=ka+16|0;p=ka+12|0;I=ka+8|0;G=ka+4|0;J=ka;c[aa>>2]=a;c[ba>>2]=d;c[L>>2]=e;c[ca>>2]=c[(c[aa>>2]|0)+8>>2];c[ha>>2]=c[c[aa>>2]>>2];c[W>>2]=c[(c[ha>>2]|0)+8>>2];c[ja>>2]=c[(c[ha>>2]|0)+4>>2];c[S>>2]=c[(c[ha>>2]|0)+32>>2];c[da>>2]=0;do{a=(c[aa>>2]|0)+84+((_(c[da>>2]|0,2048+(c[ja>>2]|0)|0)|0)<<2)|0;c[ea+(c[da>>2]<<2)>>2]=a;c[Y+(c[da>>2]<<2)>>2]=(c[ea+(c[da>>2]<<2)>>2]|0)+8192+(0-(c[ba>>2]|0)<<2);a=(c[da>>2]|0)+1|0;c[da>>2]=a}while((a|0)<(c[ca>>2]|0));c[C>>2]=(c[aa>>2]|0)+84+((_(2048+(c[ja>>2]|0)|0,c[ca>>2]|0)|0)<<2);c[X>>2]=(c[C>>2]|0)+((c[ca>>2]|0)*24<<2);c[j>>2]=(c[X>>2]|0)+(c[W>>2]<<1<<2);c[k>>2]=(c[j>>2]|0)+(c[W>>2]<<1<<2);c[N>>2]=(c[k>>2]|0)+(c[W>>2]<<1<<2);c[ga>>2]=c[(c[aa>>2]|0)+48>>2];c[$>>2]=c[(c[aa>>2]|0)+20>>2];c[h>>2]=((c[ga>>2]|0)>=5?1:(c[$>>2]|0)!=0)&1;if(c[h>>2]|0){c[U>>2]=c[(c[aa>>2]|0)+24>>2];if((c[U>>2]|0)<(c[(c[ha>>2]|0)+12>>2]|0))e=c[U>>2]|0;else e=c[(c[ha>>2]|0)+12>>2]|0;do if((c[$>>2]|0)<=(e|0))if((c[U>>2]|0)<(c[(c[ha>>2]|0)+12>>2]|0)){e=c[U>>2]|0;break}else{e=c[(c[ha>>2]|0)+12>>2]|0;break}else e=c[$>>2]|0;while(0);c[T>>2]=e;K=_(c[ca>>2]|0,c[ba>>2]|0)|0;c[M>>2]=ia()|0;d=i;i=i+((1*(K<<2)|0)+15&-16)|0;g[R>>2]=(c[ga>>2]|0)==0?1.5:.5;c[da>>2]=0;do{c[fa>>2]=c[$>>2];while(1){e=c[da>>2]|0;if((c[fa>>2]|0)>=(c[U>>2]|0))break;J=_(e,c[W>>2]|0)|0;K=_(c[da>>2]|0,c[W>>2]|0)|0;e=_(c[da>>2]|0,c[W>>2]|0)|0;e=e+(c[fa>>2]|0)|0;if(+g[(c[N>>2]|0)+(J+(c[fa>>2]|0)<<2)>>2]>+g[(c[X>>2]|0)+(K+(c[fa>>2]|0)<<2)>>2]-+g[R>>2])f=+g[(c[N>>2]|0)+(e<<2)>>2];else f=+g[(c[X>>2]|0)+(e<<2)>>2]-+g[R>>2];K=_(c[da>>2]|0,c[W>>2]|0)|0;g[(c[X>>2]|0)+(K+(c[fa>>2]|0)<<2)>>2]=f;c[fa>>2]=(c[fa>>2]|0)+1}K=e+1|0;c[da>>2]=K}while((K|0)<(c[ca>>2]|0));c[Z>>2]=c[(c[aa>>2]|0)+36>>2];c[da>>2]=0;while(1){if((c[da>>2]|0)>=(c[ca>>2]|0))break;c[fa>>2]=c[$>>2];while(1){if((c[fa>>2]|0)>=(c[T>>2]|0))break;W=_(c[ba>>2]|0,c[da>>2]|0)|0;c[Q>>2]=W+(b[(c[S>>2]|0)+(c[fa>>2]<<1)>>1]<<c[L>>2]);c[P>>2]=(b[(c[S>>2]|0)+((c[fa>>2]|0)+1<<1)>>1]|0)-(b[(c[S>>2]|0)+(c[fa>>2]<<1)>>1]|0)<<c[L>>2];c[V>>2]=0;while(1){if((c[V>>2]|0)>=(c[P>>2]|0))break;c[Z>>2]=Ba(c[Z>>2]|0)|0;g[d+((c[Q>>2]|0)+(c[V>>2]|0)<<2)>>2]=+(c[Z>>2]>>20|0);c[V>>2]=(c[V>>2]|0)+1}td(d+(c[Q>>2]<<2)|0,c[P>>2]|0,1.0,c[(c[aa>>2]|0)+32>>2]|0);c[fa>>2]=(c[fa>>2]|0)+1}c[da>>2]=(c[da>>2]|0)+1}c[(c[aa>>2]|0)+36>>2]=c[Z>>2];c[da>>2]=0;do{qj(c[ea+(c[da>>2]<<2)>>2]|0,(c[ea+(c[da>>2]<<2)>>2]|0)+(c[ba>>2]<<2)|0,(2048-(c[ba>>2]|0)+(c[ja>>2]>>1)<<2)+0|0)|0;fa=(c[da>>2]|0)+1|0;c[da>>2]=fa}while((fa|0)<(c[ca>>2]|0));Nb(c[ha>>2]|0,d,Y,c[X>>2]|0,c[$>>2]|0,c[T>>2]|0,c[ca>>2]|0,c[ca>>2]|0,0,c[L>>2]|0,c[(c[aa>>2]|0)+16>>2]|0,0,c[(c[aa>>2]|0)+32>>2]|0);na(c[M>>2]|0);ha=c[ga>>2]|0;ha=ha+1|0;ja=c[aa>>2]|0;ja=ja+48|0;c[ja>>2]=ha;i=ka;return}g[A>>2]=1.0;if(!(c[ga>>2]|0)){$=Ob(ea,c[ca>>2]|0,c[(c[aa>>2]|0)+32>>2]|0)|0;c[F>>2]=$;c[(c[aa>>2]|0)+44>>2]=$}else{c[F>>2]=c[(c[aa>>2]|0)+44>>2];g[A>>2]=.800000011920929}$=c[ja>>2]|0;c[l>>2]=ia()|0;e=i;i=i+((1*($<<2)|0)+15&-16)|0;c[K>>2]=c[(c[ha>>2]|0)+60>>2];c[da>>2]=0;do{g[o>>2]=0.0;c[s>>2]=c[ea+(c[da>>2]<<2)>>2];c[fa>>2]=0;while(1){if((c[fa>>2]|0)>=1024)break;g[w+(c[fa>>2]<<2)>>2]=+g[(c[s>>2]|0)+(1024+(c[fa>>2]|0)<<2)>>2];c[fa>>2]=(c[fa>>2]|0)+1}if(!(c[ga>>2]|0)){Yc(w,q,c[K>>2]|0,c[ja>>2]|0,24,1024,c[(c[aa>>2]|0)+32>>2]|0)|0;g[q>>2]=+g[q>>2]*1.000100016593933;c[fa>>2]=1;while(1){if((c[fa>>2]|0)>24)break;ha=q+(c[fa>>2]<<2)|0;g[ha>>2]=+g[ha>>2]-+g[q+(c[fa>>2]<<2)>>2]*6.400000711437315e-05*+(c[fa>>2]|0)*+(c[fa>>2]|0);c[fa>>2]=(c[fa>>2]|0)+1}Uc((c[C>>2]|0)+((c[da>>2]|0)*24<<2)|0,q,24)}c[x>>2]=(c[F>>2]<<1|0)<1024?c[F>>2]<<1:1024;c[fa>>2]=0;while(1){if((c[fa>>2]|0)>=24)break;g[D+(c[fa>>2]<<2)>>2]=+g[(c[s>>2]|0)+(2048-(c[x>>2]|0)-1-(c[fa>>2]|0)<<2)>>2];c[fa>>2]=(c[fa>>2]|0)+1}Vc(w+4096+(0-(c[x>>2]|0)<<2)|0,(c[C>>2]|0)+((c[da>>2]|0)*24<<2)|0,w+4096+(0-(c[x>>2]|0)<<2)|0,c[x>>2]|0,24,D,c[(c[aa>>2]|0)+32>>2]|0);g[m>>2]=1.0;g[n>>2]=1.0;c[u>>2]=c[x>>2]>>1;c[fa>>2]=0;while(1){if((c[fa>>2]|0)>=(c[u>>2]|0))break;g[v>>2]=+g[w+(1024-(c[u>>2]|0)+(c[fa>>2]|0)<<2)>>2];g[m>>2]=+g[m>>2]+ +g[v>>2]*+g[v>>2];g[v>>2]=+g[w+(1024-(c[u>>2]<<1)+(c[fa>>2]|0)<<2)>>2];g[n>>2]=+g[n>>2]+ +g[v>>2]*+g[v>>2];c[fa>>2]=(c[fa>>2]|0)+1}g[m>>2]=+g[m>>2]<+g[n>>2]?+g[m>>2]:+g[n>>2];g[t>>2]=+O(+(+g[m>>2]/+g[n>>2]));qj(c[s>>2]|0,(c[s>>2]|0)+(c[ba>>2]<<2)|0,(2048-(c[ba>>2]|0)<<2)+0|0)|0;c[z>>2]=1024-(c[F>>2]|0);c[y>>2]=(c[ba>>2]|0)+(c[ja>>2]|0);g[r>>2]=+g[A>>2]*+g[t>>2];c[B>>2]=0;c[fa>>2]=0;while(1){if((c[fa>>2]|0)>=(c[y>>2]|0))break;if((c[B>>2]|0)>=(c[F>>2]|0)){c[B>>2]=(c[B>>2]|0)-(c[F>>2]|0);g[r>>2]=+g[r>>2]*+g[t>>2]}g[(c[s>>2]|0)+(2048-(c[ba>>2]|0)+(c[fa>>2]|0)<<2)>>2]=+g[r>>2]*+g[w+((c[z>>2]|0)+(c[B>>2]|0)<<2)>>2];g[H>>2]=+g[(c[s>>2]|0)+(1024-(c[ba>>2]|0)+(c[z>>2]|0)+(c[B>>2]|0)<<2)>>2];g[o>>2]=+g[o>>2]+ +g[H>>2]*+g[H>>2];c[fa>>2]=(c[fa>>2]|0)+1;c[B>>2]=(c[B>>2]|0)+1}c[fa>>2]=0;while(1){if((c[fa>>2]|0)>=24)break;g[E+(c[fa>>2]<<2)>>2]=+g[(c[s>>2]|0)+(2048-(c[ba>>2]|0)-1-(c[fa>>2]|0)<<2)>>2];c[fa>>2]=(c[fa>>2]|0)+1}Xc((c[s>>2]|0)+8192+(0-(c[ba>>2]|0)<<2)|0,(c[C>>2]|0)+((c[da>>2]|0)*24<<2)|0,(c[s>>2]|0)+8192+(0-(c[ba>>2]|0)<<2)|0,c[y>>2]|0,24,E,c[(c[aa>>2]|0)+32>>2]|0);g[p>>2]=0.0;c[fa>>2]=0;while(1){if((c[fa>>2]|0)>=(c[y>>2]|0))break;g[I>>2]=+g[(c[s>>2]|0)+(2048-(c[ba>>2]|0)+(c[fa>>2]|0)<<2)>>2];g[p>>2]=+g[p>>2]+ +g[I>>2]*+g[I>>2];c[fa>>2]=(c[fa>>2]|0)+1}a:do if(+g[o>>2]>+g[p>>2]*.20000000298023224){if(+g[o>>2]<+g[p>>2]){g[G>>2]=+O(+((+g[o>>2]+1.0)/(+g[p>>2]+1.0)));c[fa>>2]=0;while(1){if((c[fa>>2]|0)>=(c[ja>>2]|0))break;g[J>>2]=1.0-+g[(c[K>>2]|0)+(c[fa>>2]<<2)>>2]*(1.0-+g[G>>2]);g[(c[s>>2]|0)+(2048-(c[ba>>2]|0)+(c[fa>>2]|0)<<2)>>2]=+g[J>>2]*+g[(c[s>>2]|0)+(2048-(c[ba>>2]|0)+(c[fa>>2]|0)<<2)>>2];c[fa>>2]=(c[fa>>2]|0)+1}c[fa>>2]=c[ja>>2];while(1){if((c[fa>>2]|0)>=(c[y>>2]|0))break a;g[(c[s>>2]|0)+(2048-(c[ba>>2]|0)+(c[fa>>2]|0)<<2)>>2]=+g[G>>2]*+g[(c[s>>2]|0)+(2048-(c[ba>>2]|0)+(c[fa>>2]|0)<<2)>>2];c[fa>>2]=(c[fa>>2]|0)+1}}}else{c[fa>>2]=0;while(1){if((c[fa>>2]|0)>=(c[y>>2]|0))break a;g[(c[s>>2]|0)+(2048-(c[ba>>2]|0)+(c[fa>>2]|0)<<2)>>2]=0.0;c[fa>>2]=(c[fa>>2]|0)+1}}while(0);cb(e,(c[s>>2]|0)+8192|0,c[(c[aa>>2]|0)+52>>2]|0,c[(c[aa>>2]|0)+52>>2]|0,c[ja>>2]|0,-+g[(c[aa>>2]|0)+60>>2],-+g[(c[aa>>2]|0)+60>>2],c[(c[aa>>2]|0)+68>>2]|0,c[(c[aa>>2]|0)+68>>2]|0,0,0,c[(c[aa>>2]|0)+32>>2]|0);c[fa>>2]=0;while(1){if((c[fa>>2]|0)>=((c[ja>>2]|0)/2|0|0))break;g[(c[s>>2]|0)+(2048+(c[fa>>2]|0)<<2)>>2]=+g[(c[K>>2]|0)+(c[fa>>2]<<2)>>2]*+g[e+((c[ja>>2]|0)-1-(c[fa>>2]|0)<<2)>>2]+ +g[(c[K>>2]|0)+((c[ja>>2]|0)-(c[fa>>2]|0)-1<<2)>>2]*+g[e+(c[fa>>2]<<2)>>2];c[fa>>2]=(c[fa>>2]|0)+1}ha=(c[da>>2]|0)+1|0;c[da>>2]=ha}while((ha|0)<(c[ca>>2]|0));na(c[l>>2]|0);ha=c[ga>>2]|0;ha=ha+1|0;ja=c[aa>>2]|0;ja=ja+48|0;c[ja>>2]=ha;i=ka;return}function Nb(a,b,d,e,f,h,j,k,l,m,n,o,p){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;var q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;P=i;i=i+112|0;q=P+100|0;r=P+96|0;w=P+92|0;x=P+88|0;y=P+84|0;z=P+80|0;A=P+76|0;B=P+72|0;Q=P+68|0;C=P+64|0;s=P+60|0;t=P+56|0;u=P+52|0;I=P+48|0;L=P+44|0;E=P+40|0;H=P+36|0;D=P+32|0;F=P+28|0;G=P+24|0;O=P+20|0;M=P+16|0;N=P+12|0;v=P+8|0;J=P+4|0;K=P;c[q>>2]=a;c[r>>2]=b;c[w>>2]=d;c[x>>2]=e;c[y>>2]=f;c[z>>2]=h;c[A>>2]=j;c[B>>2]=k;c[Q>>2]=l;c[C>>2]=m;c[s>>2]=n;c[t>>2]=o;c[u>>2]=p;c[N>>2]=c[(c[q>>2]|0)+4>>2];c[M>>2]=c[(c[q>>2]|0)+8>>2];c[F>>2]=c[(c[q>>2]|0)+44>>2]<<c[C>>2];f=c[F>>2]|0;c[v>>2]=ia()|0;j=i;i=i+((1*(f<<2)|0)+15&-16)|0;c[E>>2]=1<<c[C>>2];if(c[Q>>2]|0){c[D>>2]=c[E>>2];c[G>>2]=c[(c[q>>2]|0)+44>>2];c[O>>2]=c[(c[q>>2]|0)+36>>2]}else{c[D>>2]=1;c[G>>2]=c[(c[q>>2]|0)+44>>2]<<c[C>>2];c[O>>2]=(c[(c[q>>2]|0)+36>>2]|0)-(c[C>>2]|0)}if((c[B>>2]|0)==2&(c[A>>2]|0)==1){Fa(c[q>>2]|0,c[r>>2]|0,j,c[x>>2]|0,c[y>>2]|0,c[z>>2]|0,c[E>>2]|0,c[s>>2]|0,c[t>>2]|0);c[J>>2]=(c[(c[w>>2]|0)+4>>2]|0)+(((c[N>>2]|0)/2|0)<<2);pj(c[J>>2]|0,j|0,(c[F>>2]<<2)+0|0)|0;c[H>>2]=0;while(1){if((c[H>>2]|0)>=(c[D>>2]|0))break;Q=(c[c[w>>2]>>2]|0)+((_(c[G>>2]|0,c[H>>2]|0)|0)<<2)|0;Ic((c[q>>2]|0)+64|0,(c[J>>2]|0)+(c[H>>2]<<2)|0,Q,c[(c[q>>2]|0)+60>>2]|0,c[N>>2]|0,c[O>>2]|0,c[D>>2]|0,c[u>>2]|0);c[H>>2]=(c[H>>2]|0)+1}c[H>>2]=0;while(1){if((c[H>>2]|0)>=(c[D>>2]|0))break;Q=(c[(c[w>>2]|0)+4>>2]|0)+((_(c[G>>2]|0,c[H>>2]|0)|0)<<2)|0;Ic((c[q>>2]|0)+64|0,j+(c[H>>2]<<2)|0,Q,c[(c[q>>2]|0)+60>>2]|0,c[N>>2]|0,c[O>>2]|0,c[D>>2]|0,c[u>>2]|0);c[H>>2]=(c[H>>2]|0)+1}Q=c[v>>2]|0;na(Q|0);i=P;return}if(!((c[B>>2]|0)==1&(c[A>>2]|0)==2)){c[I>>2]=0;do{L=(c[r>>2]|0)+((_(c[I>>2]|0,c[F>>2]|0)|0)<<2)|0;Q=(c[x>>2]|0)+((_(c[I>>2]|0,c[M>>2]|0)|0)<<2)|0;Fa(c[q>>2]|0,L,j,Q,c[y>>2]|0,c[z>>2]|0,c[E>>2]|0,c[s>>2]|0,c[t>>2]|0);c[H>>2]=0;while(1){if((c[H>>2]|0)>=(c[D>>2]|0))break;Q=(c[(c[w>>2]|0)+(c[I>>2]<<2)>>2]|0)+((_(c[G>>2]|0,c[H>>2]|0)|0)<<2)|0;Ic((c[q>>2]|0)+64|0,j+(c[H>>2]<<2)|0,Q,c[(c[q>>2]|0)+60>>2]|0,c[N>>2]|0,c[O>>2]|0,c[D>>2]|0,c[u>>2]|0);c[H>>2]=(c[H>>2]|0)+1}Q=(c[I>>2]|0)+1|0;c[I>>2]=Q}while((Q|0)<(c[B>>2]|0));Q=c[v>>2]|0;na(Q|0);i=P;return}c[K>>2]=(c[c[w>>2]>>2]|0)+(((c[N>>2]|0)/2|0)<<2);Fa(c[q>>2]|0,c[r>>2]|0,j,c[x>>2]|0,c[y>>2]|0,c[z>>2]|0,c[E>>2]|0,c[s>>2]|0,c[t>>2]|0);Fa(c[q>>2]|0,(c[r>>2]|0)+(c[F>>2]<<2)|0,c[K>>2]|0,(c[x>>2]|0)+(c[M>>2]<<2)|0,c[y>>2]|0,c[z>>2]|0,c[E>>2]|0,c[s>>2]|0,c[t>>2]|0);c[L>>2]=0;while(1){if((c[L>>2]|0)>=(c[F>>2]|0))break;g[j+(c[L>>2]<<2)>>2]=(+g[j+(c[L>>2]<<2)>>2]+ +g[(c[K>>2]|0)+(c[L>>2]<<2)>>2])*.5;c[L>>2]=(c[L>>2]|0)+1}c[H>>2]=0;while(1){if((c[H>>2]|0)>=(c[D>>2]|0))break;Q=(c[c[w>>2]>>2]|0)+((_(c[G>>2]|0,c[H>>2]|0)|0)<<2)|0;Ic((c[q>>2]|0)+64|0,j+(c[H>>2]<<2)|0,Q,c[(c[q>>2]|0)+60>>2]|0,c[N>>2]|0,c[O>>2]|0,c[D>>2]|0,c[u>>2]|0);c[H>>2]=(c[H>>2]|0)+1}Q=c[v>>2]|0;na(Q|0);i=P;return}function Ob(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;f=i;i=i+4112|0;k=f+4108|0;j=f+4104|0;g=f+4100|0;e=f+4096|0;h=f;c[k>>2]=a;c[j>>2]=b;c[g>>2]=d;Kc(c[k>>2]|0,h,2048,c[j>>2]|0,c[g>>2]|0);Pc(h+1440|0,h,1328,620,e,c[g>>2]|0);c[e>>2]=720-(c[e>>2]|0);i=f;return c[e>>2]|0}function Pb(a,b,d,e,f,h,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0;C=i;i=i+80|0;l=C+72|0;m=C+68|0;n=C+64|0;o=C+60|0;p=C+56|0;D=C+52|0;q=C+48|0;u=C+40|0;s=C+36|0;t=C+32|0;v=C+28|0;r=C+24|0;w=C+20|0;A=C+16|0;B=C+12|0;x=C+8|0;y=C+4|0;z=C;c[l>>2]=a;c[m>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[D>>2]=h;c[q>>2]=j;c[C+44>>2]=k;c[t>>2]=0;b=c[n>>2]|0;c[r>>2]=ia()|0;e=i;i=i+((1*(b<<2)|0)+15&-16)|0;g[v>>2]=+g[c[D>>2]>>2];c[s>>2]=(c[n>>2]|0)/(c[p>>2]|0)|0;c[u>>2]=0;do{g[x>>2]=+g[(c[q>>2]|0)+(c[u>>2]<<2)>>2];c[A>>2]=c[(c[l>>2]|0)+(c[u>>2]<<2)>>2];c[B>>2]=(c[m>>2]|0)+(c[u>>2]<<2);D=(c[p>>2]|0)>1;c[w>>2]=0;a:do if(D){while(1){if((c[w>>2]|0)>=(c[n>>2]|0))break;g[y>>2]=+g[(c[A>>2]|0)+(c[w>>2]<<2)>>2]+ +g[x>>2]+1.0000000031710769e-30;g[x>>2]=+g[v>>2]*+g[y>>2];g[e+(c[w>>2]<<2)>>2]=+g[y>>2];c[w>>2]=(c[w>>2]|0)+1}c[t>>2]=1}else while(1){if((c[w>>2]|0)>=(c[n>>2]|0))break a;g[z>>2]=+g[(c[A>>2]|0)+(c[w>>2]<<2)>>2]+ +g[x>>2]+1.0000000031710769e-30;g[x>>2]=+g[v>>2]*+g[z>>2];D=_(c[w>>2]|0,c[o>>2]|0)|0;g[(c[B>>2]|0)+(D<<2)>>2]=+g[z>>2]*.000030517578125;c[w>>2]=(c[w>>2]|0)+1}while(0);g[(c[q>>2]|0)+(c[u>>2]<<2)>>2]=+g[x>>2];b:do if(c[t>>2]|0){c[w>>2]=0;while(1){if((c[w>>2]|0)>=(c[s>>2]|0))break b;E=+g[e+((_(c[w>>2]|0,c[p>>2]|0)|0)<<2)>>2]*.000030517578125;D=_(c[w>>2]|0,c[o>>2]|0)|0;g[(c[B>>2]|0)+(D<<2)>>2]=E;c[w>>2]=(c[w>>2]|0)+1}}while(0);D=(c[u>>2]|0)+1|0;c[u>>2]=D}while((D|0)<(c[o>>2]|0));na(c[r>>2]|0);i=C;return}function Qb(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=(c[(c[d>>2]|0)+20>>2]|0)-(32-(aa(c[(c[d>>2]|0)+28>>2]|0)|0))|0;i=b;return a|0}function Rb(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=i;i=i+64|0;j=x+52|0;k=x+48|0;l=x+44|0;m=x+40|0;n=x+36|0;o=x+32|0;r=x+28|0;q=x+24|0;v=x+20|0;w=x+16|0;u=x+12|0;s=x+8|0;p=x+4|0;t=x;c[j>>2]=b;c[k>>2]=d;c[l>>2]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;c[p>>2]=c[(c[o>>2]|0)+4>>2]<<3;c[t>>2]=Qb(c[o>>2]|0)|0;c[s>>2]=c[l>>2]|0?2:4;if((c[n>>2]|0)>0)g=((c[t>>2]|0)+(c[s>>2]|0)+1|0)>>>0<=(c[p>>2]|0)>>>0;else g=0;c[w>>2]=g&1;c[p>>2]=(c[p>>2]|0)-(c[w>>2]|0);c[q>>2]=0;c[u>>2]=0;c[r>>2]=c[j>>2];while(1){if((c[r>>2]|0)>=(c[k>>2]|0))break;if(((c[t>>2]|0)+(c[s>>2]|0)|0)>>>0<=(c[p>>2]|0)>>>0){f=dc(c[o>>2]|0,c[s>>2]|0)|0;c[q>>2]=c[q>>2]^f;c[t>>2]=Qb(c[o>>2]|0)|0;c[u>>2]=c[u>>2]|c[q>>2]}c[(c[m>>2]|0)+(c[r>>2]<<2)>>2]=c[q>>2];c[s>>2]=c[l>>2]|0?4:5;c[r>>2]=(c[r>>2]|0)+1}c[v>>2]=0;if(c[w>>2]|0?(a[25232+(c[n>>2]<<3)+((c[l>>2]<<2)+0+(c[u>>2]|0))>>0]|0)!=(a[25232+(c[n>>2]<<3)+((c[l>>2]<<2)+2+(c[u>>2]|0))>>0]|0):0)c[v>>2]=dc(c[o>>2]|0,1)|0;c[r>>2]=c[j>>2];while(1){if((c[r>>2]|0)>=(c[k>>2]|0))break;c[(c[m>>2]|0)+(c[r>>2]<<2)>>2]=a[25232+(c[n>>2]<<3)+((c[l>>2]<<2)+(c[v>>2]<<1)+(c[(c[m>>2]|0)+(c[r>>2]<<2)>>2]|0))>>0];c[r>>2]=(c[r>>2]|0)+1}i=x;return}function Sb(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c[(c[b>>2]|0)+44>>2]|0}function Tb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+16|0;j=f+12|0;h=f+8|0;g=f+4|0;k=f;c[j>>2]=a;c[h>>2]=b;c[g>>2]=d;c[k>>2]=e;b=c[k>>2]|0;a=Ub(c[h>>2]|0,c[j>>2]|0)|0;rc(b,a,(c[(c[364+(((c[h>>2]|0)<(c[g>>2]|0)?c[h>>2]|0:c[g>>2]|0)<<2)>>2]|0)+(((c[h>>2]|0)>(c[g>>2]|0)?c[h>>2]|0:c[g>>2]|0)<<2)>>2]|0)+(c[(c[364+(((c[h>>2]|0)<((c[g>>2]|0)+1|0)?c[h>>2]|0:(c[g>>2]|0)+1|0)<<2)>>2]|0)+(((c[h>>2]|0)>((c[g>>2]|0)+1|0)?c[h>>2]|0:(c[g>>2]|0)+1|0)<<2)>>2]|0)|0);i=f;return}function Ub(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+32|0;d=j+16|0;e=j+12|0;f=j+8|0;g=j+4|0;h=j;c[d>>2]=a;c[e>>2]=b;c[g>>2]=(c[d>>2]|0)-1;c[f>>2]=(c[(c[e>>2]|0)+(c[g>>2]<<2)>>2]|0)<0&1;c[h>>2]=N(c[(c[e>>2]|0)+(c[g>>2]<<2)>>2]|0)|0;do{c[g>>2]=(c[g>>2]|0)+-1;if(((c[d>>2]|0)-(c[g>>2]|0)|0)>(c[h>>2]|0))b=(c[d>>2]|0)-(c[g>>2]|0)|0;else b=c[h>>2]|0;if(((c[d>>2]|0)-(c[g>>2]|0)|0)<(c[h>>2]|0))a=(c[d>>2]|0)-(c[g>>2]|0)|0;else a=c[h>>2]|0;c[f>>2]=(c[f>>2]|0)+(c[(c[364+(a<<2)>>2]|0)+(b<<2)>>2]|0);b=N(c[(c[e>>2]|0)+(c[g>>2]<<2)>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+b;if((c[(c[e>>2]|0)+(c[g>>2]<<2)>>2]|0)<0){if(((c[d>>2]|0)-(c[g>>2]|0)|0)>((c[h>>2]|0)+1|0))b=(c[d>>2]|0)-(c[g>>2]|0)|0;else b=(c[h>>2]|0)+1|0;if(((c[d>>2]|0)-(c[g>>2]|0)|0)<((c[h>>2]|0)+1|0))a=(c[d>>2]|0)-(c[g>>2]|0)|0;else a=(c[h>>2]|0)+1|0;c[f>>2]=(c[f>>2]|0)+(c[(c[364+(a<<2)>>2]|0)+(b<<2)>>2]|0)}}while((c[g>>2]|0)>0);i=j;return c[f>>2]|0}function Vb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0,h=0,j=0,k=0,l=0;g=i;i=i+16|0;h=g+12|0;k=g+8|0;j=g+4|0;l=g;c[h>>2]=a;c[k>>2]=b;c[j>>2]=d;c[l>>2]=e;d=c[k>>2]|0;b=c[j>>2]|0;a=fc(c[l>>2]|0,(c[(c[364+(((c[k>>2]|0)<(c[j>>2]|0)?c[k>>2]|0:c[j>>2]|0)<<2)>>2]|0)+(((c[k>>2]|0)>(c[j>>2]|0)?c[k>>2]|0:c[j>>2]|0)<<2)>>2]|0)+(c[(c[364+(((c[k>>2]|0)<((c[j>>2]|0)+1|0)?c[k>>2]|0:(c[j>>2]|0)+1|0)<<2)>>2]|0)+(((c[k>>2]|0)>((c[j>>2]|0)+1|0)?c[k>>2]|0:(c[j>>2]|0)+1|0)<<2)>>2]|0)|0)|0;f=+Wb(d,b,a,c[h>>2]|0);i=g;return +f}function Wb(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0.0,w=0.0;t=i;i=i+48|0;h=t+36|0;j=t+32|0;k=t+28|0;l=t+24|0;n=t+20|0;q=t+16|0;m=t+12|0;r=t+40|0;s=t+8|0;o=t+4|0;p=t;c[h>>2]=a;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;g[s>>2]=0.0;while(1){e=c[j>>2]|0;if((c[h>>2]|0)<=2)break;d=c[h>>2]|0;do if((e|0)>=(c[h>>2]|0)){c[p>>2]=c[364+(d<<2)>>2];c[n>>2]=c[(c[p>>2]|0)+((c[j>>2]|0)+1<<2)>>2];c[q>>2]=0-((c[k>>2]|0)>>>0>=(c[n>>2]|0)>>>0&1);c[k>>2]=(c[k>>2]|0)-(c[n>>2]&c[q>>2]);c[m>>2]=c[j>>2];c[o>>2]=c[(c[p>>2]|0)+(c[h>>2]<<2)>>2];a:do if((c[o>>2]|0)>>>0>(c[k>>2]|0)>>>0){c[j>>2]=c[h>>2];do{f=c[h>>2]|0;a=(c[j>>2]|0)+-1|0;c[j>>2]=a;c[n>>2]=c[(c[364+(a<<2)>>2]|0)+(f<<2)>>2]}while((c[n>>2]|0)>>>0>(c[k>>2]|0)>>>0)}else{c[n>>2]=c[(c[p>>2]|0)+(c[j>>2]<<2)>>2];while(1){if((c[n>>2]|0)>>>0<=(c[k>>2]|0)>>>0)break a;c[j>>2]=(c[j>>2]|0)+-1;c[n>>2]=c[(c[p>>2]|0)+(c[j>>2]<<2)>>2]}}while(0);c[k>>2]=(c[k>>2]|0)-(c[n>>2]|0);b[r>>1]=(c[m>>2]|0)-(c[j>>2]|0)+(c[q>>2]|0)^c[q>>2];a=b[r>>1]|0;f=c[l>>2]|0;c[l>>2]=f+4;c[f>>2]=a;g[s>>2]=+g[s>>2]+ +(b[r>>1]|0)*+(b[r>>1]|0)}else{c[n>>2]=c[(c[364+(c[j>>2]<<2)>>2]|0)+(d<<2)>>2];c[o>>2]=c[(c[364+((c[j>>2]|0)+1<<2)>>2]|0)+(c[h>>2]<<2)>>2];if((c[n>>2]|0)>>>0<=(c[k>>2]|0)>>>0?(c[k>>2]|0)>>>0<(c[o>>2]|0)>>>0:0){c[k>>2]=(c[k>>2]|0)-(c[n>>2]|0);f=c[l>>2]|0;c[l>>2]=f+4;c[f>>2]=0;break}c[q>>2]=0-((c[k>>2]|0)>>>0>=(c[o>>2]|0)>>>0&1);c[k>>2]=(c[k>>2]|0)-(c[o>>2]&c[q>>2]);c[m>>2]=c[j>>2];do{f=c[h>>2]|0;a=(c[j>>2]|0)+-1|0;c[j>>2]=a;c[n>>2]=c[(c[364+(a<<2)>>2]|0)+(f<<2)>>2]}while((c[n>>2]|0)>>>0>(c[k>>2]|0)>>>0);c[k>>2]=(c[k>>2]|0)-(c[n>>2]|0);b[r>>1]=(c[m>>2]|0)-(c[j>>2]|0)+(c[q>>2]|0)^c[q>>2];a=b[r>>1]|0;f=c[l>>2]|0;c[l>>2]=f+4;c[f>>2]=a;g[s>>2]=+g[s>>2]+ +(b[r>>1]|0)*+(b[r>>1]|0)}while(0);c[h>>2]=(c[h>>2]|0)+-1}c[n>>2]=(e<<1)+1;c[q>>2]=0-((c[k>>2]|0)>>>0>=(c[n>>2]|0)>>>0&1);c[k>>2]=(c[k>>2]|0)-(c[n>>2]&c[q>>2]);c[m>>2]=c[j>>2];c[j>>2]=((c[k>>2]|0)+1|0)>>>1;if(!(c[j>>2]|0)){p=c[m>>2]|0;o=c[j>>2]|0;o=p-o|0;p=c[q>>2]|0;p=o+p|0;o=c[q>>2]|0;o=p^o;o=o&65535;b[r>>1]=o;o=b[r>>1]|0;o=o<<16>>16;p=c[l>>2]|0;n=p+4|0;c[l>>2]=n;c[p>>2]=o;w=+g[s>>2];p=b[r>>1]|0;u=+(p<<16>>16);p=b[r>>1]|0;v=+(p<<16>>16);v=u*v;v=w+v;g[s>>2]=v;p=c[k>>2]|0;p=0-p|0;c[q>>2]=p;p=c[j>>2]|0;o=c[q>>2]|0;o=p+o|0;p=c[q>>2]|0;p=o^p;p=p&65535;b[r>>1]=p;p=b[r>>1]|0;p=p<<16>>16;q=c[l>>2]|0;c[q>>2]=p;v=+g[s>>2];q=b[r>>1]|0;w=+(q<<16>>16);r=b[r>>1]|0;u=+(r<<16>>16);u=w*u;u=v+u;g[s>>2]=u;u=+g[s>>2];i=t;return +u}c[k>>2]=(c[k>>2]|0)-((c[j>>2]<<1)-1);p=c[m>>2]|0;o=c[j>>2]|0;o=p-o|0;p=c[q>>2]|0;p=o+p|0;o=c[q>>2]|0;o=p^o;o=o&65535;b[r>>1]=o;o=b[r>>1]|0;o=o<<16>>16;p=c[l>>2]|0;n=p+4|0;c[l>>2]=n;c[p>>2]=o;u=+g[s>>2];p=b[r>>1]|0;w=+(p<<16>>16);p=b[r>>1]|0;v=+(p<<16>>16);v=w*v;v=u+v;g[s>>2]=v;p=c[k>>2]|0;p=0-p|0;c[q>>2]=p;p=c[j>>2]|0;o=c[q>>2]|0;o=p+o|0;p=c[q>>2]|0;p=o^p;p=p&65535;b[r>>1]=p;p=b[r>>1]|0;p=p<<16>>16;q=c[l>>2]|0;c[q>>2]=p;v=+g[s>>2];q=b[r>>1]|0;u=+(q<<16>>16);r=b[r>>1]|0;w=+(r<<16>>16);w=u*w;w=v+w;g[s>>2]=w;w=+g[s>>2];i=t;return +w}function Xb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;e=i;i=i+32|0;h=e+16|0;d=e+12|0;g=e+8|0;b=e+4|0;f=e;c[h>>2]=a;c[d>>2]=c[(c[h>>2]|0)+20>>2]<<3;c[b>>2]=32-(aa(c[(c[h>>2]|0)+28>>2]|0)|0);c[g>>2]=(c[(c[h>>2]|0)+28>>2]|0)>>>((c[b>>2]|0)-16|0);c[f>>2]=((c[g>>2]|0)>>>12)-8;c[f>>2]=(c[f>>2]|0)+((c[g>>2]|0)>>>0>(c[5512+(c[f>>2]<<2)>>2]|0)>>>0&1);c[b>>2]=(c[b>>2]<<3)+(c[f>>2]|0);i=e;return (c[d>>2]|0)-(c[b>>2]|0)|0}function Yb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;f=e+8|0;h=e+4|0;g=e;c[f>>2]=a;c[h>>2]=b;c[g>>2]=d;c[c[f>>2]>>2]=c[h>>2];c[(c[f>>2]|0)+4>>2]=c[g>>2];c[(c[f>>2]|0)+8>>2]=0;c[(c[f>>2]|0)+12>>2]=0;c[(c[f>>2]|0)+16>>2]=0;c[(c[f>>2]|0)+20>>2]=9;c[(c[f>>2]|0)+24>>2]=0;c[(c[f>>2]|0)+28>>2]=128;a=Zb(c[f>>2]|0)|0;c[(c[f>>2]|0)+40>>2]=a;c[(c[f>>2]|0)+32>>2]=(c[(c[f>>2]|0)+28>>2]|0)-1-(c[(c[f>>2]|0)+40>>2]>>1);c[(c[f>>2]|0)+44>>2]=0;_b(c[f>>2]|0);i=e;return}function Zb(a){a=a|0;var b=0,e=0,f=0;e=i;i=i+16|0;b=e;c[b>>2]=a;if((c[(c[b>>2]|0)+24>>2]|0)>>>0>=(c[(c[b>>2]|0)+4>>2]|0)>>>0){a=0;i=e;return a|0}f=(c[b>>2]|0)+24|0;a=c[f>>2]|0;c[f>>2]=a+1;a=d[(c[c[b>>2]>>2]|0)+a>>0]|0;i=e;return a|0}function _b(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;while(1){if((c[(c[b>>2]|0)+28>>2]|0)>>>0>8388608)break;a=(c[b>>2]|0)+20|0;c[a>>2]=(c[a>>2]|0)+8;a=(c[b>>2]|0)+28|0;c[a>>2]=c[a>>2]<<8;c[d>>2]=c[(c[b>>2]|0)+40>>2];a=Zb(c[b>>2]|0)|0;c[(c[b>>2]|0)+40>>2]=a;c[d>>2]=(c[d>>2]<<8|c[(c[b>>2]|0)+40>>2])>>1;c[(c[b>>2]|0)+32>>2]=(c[(c[b>>2]|0)+32>>2]<<8)+(255&~c[d>>2])&2147483647}i=e;return}function $b(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=i;i=i+16|0;g=f+8|0;e=f+4|0;d=f;c[g>>2]=a;c[e>>2]=b;a=ac(c[(c[g>>2]|0)+28>>2]|0,c[e>>2]|0)|0;c[(c[g>>2]|0)+36>>2]=a;c[d>>2]=((c[(c[g>>2]|0)+32>>2]|0)>>>0)/((c[(c[g>>2]|0)+36>>2]|0)>>>0)|0;i=f;return (c[e>>2]|0)-((c[d>>2]|0)+1+((c[e>>2]|0)-((c[d>>2]|0)+1)&0-((c[e>>2]|0)>>>0<((c[d>>2]|0)+1|0)>>>0&1)))|0}function ac(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f+4|0;d=f;c[e>>2]=a;c[d>>2]=b;i=f;return ((c[e>>2]|0)>>>0)/((c[d>>2]|0)>>>0)|0|0}function bc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=i;i=i+16|0;g=f+8|0;e=f+4|0;d=f;c[g>>2]=a;c[e>>2]=b;c[(c[g>>2]|0)+36>>2]=(c[(c[g>>2]|0)+28>>2]|0)>>>(c[e>>2]|0);c[d>>2]=((c[(c[g>>2]|0)+32>>2]|0)>>>0)/((c[(c[g>>2]|0)+36>>2]|0)>>>0)|0;i=f;return (1<<c[e>>2])-((c[d>>2]|0)+1+((1<<c[e>>2])-((c[d>>2]|0)+1)&0-(1<<c[e>>2]>>>0<((c[d>>2]|0)+1|0)>>>0&1)))|0}function cc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;k=i;i=i+32|0;f=k+16|0;g=k+12|0;h=k+8|0;l=k+4|0;j=k;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[l>>2]=e;c[j>>2]=_(c[(c[f>>2]|0)+36>>2]|0,(c[l>>2]|0)-(c[h>>2]|0)|0)|0;d=(c[f>>2]|0)+32|0;c[d>>2]=(c[d>>2]|0)-(c[j>>2]|0);d=c[f>>2]|0;if((c[g>>2]|0)>>>0>0){j=_(c[d+36>>2]|0,(c[h>>2]|0)-(c[g>>2]|0)|0)|0;l=c[f>>2]|0;l=l+28|0;c[l>>2]=j;l=c[f>>2]|0;_b(l);i=k;return}else{j=(c[d+28>>2]|0)-(c[j>>2]|0)|0;l=c[f>>2]|0;l=l+28|0;c[l>>2]=j;l=c[f>>2]|0;_b(l);i=k;return}}function dc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;j=i;i=i+32|0;d=j+20|0;k=j+16|0;f=j+12|0;e=j+8|0;h=j+4|0;g=j;c[d>>2]=a;c[k>>2]=b;c[f>>2]=c[(c[d>>2]|0)+28>>2];c[e>>2]=c[(c[d>>2]|0)+32>>2];c[h>>2]=(c[f>>2]|0)>>>(c[k>>2]|0);c[g>>2]=(c[e>>2]|0)>>>0<(c[h>>2]|0)>>>0&1;if(!(c[g>>2]|0))c[(c[d>>2]|0)+32>>2]=(c[e>>2]|0)-(c[h>>2]|0);if(c[g>>2]|0){h=c[h>>2]|0;k=c[d>>2]|0;k=k+28|0;c[k>>2]=h;k=c[d>>2]|0;_b(k);k=c[g>>2]|0;i=j;return k|0}else{h=(c[f>>2]|0)-(c[h>>2]|0)|0;k=c[d>>2]|0;k=k+28|0;c[k>>2]=h;k=c[d>>2]|0;_b(k);k=c[g>>2]|0;i=j;return k|0}return 0}function ec(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;n=i;i=i+32|0;f=n+28|0;g=n+24|0;o=n+20|0;j=n+16|0;h=n+12|0;l=n+8|0;m=n+4|0;k=n;c[f>>2]=a;c[g>>2]=b;c[o>>2]=e;c[l>>2]=c[(c[f>>2]|0)+28>>2];c[h>>2]=c[(c[f>>2]|0)+32>>2];c[j>>2]=(c[l>>2]|0)>>>(c[o>>2]|0);c[k>>2]=-1;do{c[m>>2]=c[l>>2];a=c[j>>2]|0;o=(c[k>>2]|0)+1|0;c[k>>2]=o;c[l>>2]=_(a,d[(c[g>>2]|0)+o>>0]|0)|0}while((c[h>>2]|0)>>>0<(c[l>>2]|0)>>>0);c[(c[f>>2]|0)+32>>2]=(c[h>>2]|0)-(c[l>>2]|0);c[(c[f>>2]|0)+28>>2]=(c[m>>2]|0)-(c[l>>2]|0);_b(c[f>>2]|0);i=n;return c[k>>2]|0}function fc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;d=l+24|0;e=l+20|0;f=l+16|0;g=l+12|0;j=l+8|0;h=l+4|0;k=l;c[e>>2]=a;c[f>>2]=b;c[f>>2]=(c[f>>2]|0)+-1;c[h>>2]=32-(aa(c[f>>2]|0)|0);if((c[h>>2]|0)<=8){c[f>>2]=(c[f>>2]|0)+1;c[j>>2]=$b(c[e>>2]|0,c[f>>2]|0)|0;cc(c[e>>2]|0,c[j>>2]|0,(c[j>>2]|0)+1|0,c[f>>2]|0);c[d>>2]=c[j>>2];k=c[d>>2]|0;i=l;return k|0}c[h>>2]=(c[h>>2]|0)-8;c[g>>2]=((c[f>>2]|0)>>>(c[h>>2]|0))+1;c[j>>2]=$b(c[e>>2]|0,c[g>>2]|0)|0;cc(c[e>>2]|0,c[j>>2]|0,(c[j>>2]|0)+1|0,c[g>>2]|0);j=c[j>>2]<<c[h>>2];c[k>>2]=j|(gc(c[e>>2]|0,c[h>>2]|0)|0);if((c[k>>2]|0)>>>0<=(c[f>>2]|0)>>>0){c[d>>2]=c[k>>2];k=c[d>>2]|0;i=l;return k|0}else{c[(c[e>>2]|0)+44>>2]=1;c[d>>2]=c[f>>2];k=c[d>>2]|0;i=l;return k|0}return 0}function gc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+32|0;d=j+16|0;e=j+12|0;h=j+8|0;f=j+4|0;g=j;c[d>>2]=a;c[e>>2]=b;c[h>>2]=c[(c[d>>2]|0)+12>>2];c[f>>2]=c[(c[d>>2]|0)+16>>2];if((c[f>>2]|0)>>>0<(c[e>>2]|0)>>>0)do{a=hc(c[d>>2]|0)|0;c[h>>2]=c[h>>2]|a<<c[f>>2];c[f>>2]=(c[f>>2]|0)+8}while((c[f>>2]|0)<=24);c[g>>2]=c[h>>2]&(1<<c[e>>2])-1;c[h>>2]=(c[h>>2]|0)>>>(c[e>>2]|0);c[f>>2]=(c[f>>2]|0)-(c[e>>2]|0);c[(c[d>>2]|0)+12>>2]=c[h>>2];c[(c[d>>2]|0)+16>>2]=c[f>>2];h=(c[d>>2]|0)+20|0;c[h>>2]=(c[h>>2]|0)+(c[e>>2]|0);i=j;return c[g>>2]|0}function hc(a){a=a|0;var b=0,e=0,f=0,g=0;e=i;i=i+16|0;b=e;c[b>>2]=a;if((c[(c[b>>2]|0)+8>>2]|0)>>>0>=(c[(c[b>>2]|0)+4>>2]|0)>>>0){a=0;i=e;return a|0}f=c[(c[b>>2]|0)+4>>2]|0;g=(c[b>>2]|0)+8|0;a=(c[g>>2]|0)+1|0;c[g>>2]=a;a=d[(c[c[b>>2]>>2]|0)+(f-a)>>0]|0;i=e;return a|0}function ic(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;f=e+8|0;h=e+4|0;g=e;c[f>>2]=a;c[h>>2]=b;c[g>>2]=d;c[c[f>>2]>>2]=c[h>>2];c[(c[f>>2]|0)+8>>2]=0;c[(c[f>>2]|0)+12>>2]=0;c[(c[f>>2]|0)+16>>2]=0;c[(c[f>>2]|0)+20>>2]=33;c[(c[f>>2]|0)+24>>2]=0;c[(c[f>>2]|0)+28>>2]=-2147483648;c[(c[f>>2]|0)+40>>2]=-1;c[(c[f>>2]|0)+32>>2]=0;c[(c[f>>2]|0)+36>>2]=0;c[(c[f>>2]|0)+4>>2]=c[g>>2];c[(c[f>>2]|0)+44>>2]=0;i=e;return}function jc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;f=l+16|0;g=l+12|0;h=l+8|0;j=l+4|0;k=l;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;c[k>>2]=kc(c[(c[f>>2]|0)+28>>2]|0,c[j>>2]|0)|0;if((c[g>>2]|0)>>>0>0){e=(c[(c[f>>2]|0)+28>>2]|0)-(_(c[k>>2]|0,(c[j>>2]|0)-(c[g>>2]|0)|0)|0)|0;a=(c[f>>2]|0)+32|0;c[a>>2]=(c[a>>2]|0)+e;k=_(c[k>>2]|0,(c[h>>2]|0)-(c[g>>2]|0)|0)|0;c[(c[f>>2]|0)+28>>2]=k;k=c[f>>2]|0;lc(k);i=l;return}else{a=_(c[k>>2]|0,(c[j>>2]|0)-(c[h>>2]|0)|0)|0;k=(c[f>>2]|0)+28|0;c[k>>2]=(c[k>>2]|0)-a;k=c[f>>2]|0;lc(k);i=l;return}}function kc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f+4|0;d=f;c[e>>2]=a;c[d>>2]=b;i=f;return ((c[e>>2]|0)>>>0)/((c[d>>2]|0)>>>0)|0|0}function lc(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;while(1){if((c[(c[b>>2]|0)+28>>2]|0)>>>0>8388608)break;mc(c[b>>2]|0,(c[(c[b>>2]|0)+32>>2]|0)>>>23);c[(c[b>>2]|0)+32>>2]=c[(c[b>>2]|0)+32>>2]<<8&2147483647;a=(c[b>>2]|0)+28|0;c[a>>2]=c[a>>2]<<8;a=(c[b>>2]|0)+20|0;c[a>>2]=(c[a>>2]|0)+8}i=d;return}function mc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;d=h+12|0;e=h+8|0;f=h+4|0;g=h;c[d>>2]=a;c[e>>2]=b;if((c[e>>2]|0)==255){g=(c[d>>2]|0)+36|0;c[g>>2]=(c[g>>2]|0)+1;i=h;return}c[f>>2]=c[e>>2]>>8;if((c[(c[d>>2]|0)+40>>2]|0)>=0){b=nc(c[d>>2]|0,(c[(c[d>>2]|0)+40>>2]|0)+(c[f>>2]|0)|0)|0;a=(c[d>>2]|0)+44|0;c[a>>2]=c[a>>2]|b}if((c[(c[d>>2]|0)+36>>2]|0)>>>0>0){c[g>>2]=255+(c[f>>2]|0)&255;do{f=nc(c[d>>2]|0,c[g>>2]|0)|0;a=(c[d>>2]|0)+44|0;c[a>>2]=c[a>>2]|f;a=(c[d>>2]|0)+36|0;f=(c[a>>2]|0)+-1|0;c[a>>2]=f}while(f>>>0>0)}c[(c[d>>2]|0)+40>>2]=c[e>>2]&255;i=h;return}function nc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h+8|0;f=h+4|0;g=h;c[f>>2]=b;c[g>>2]=d;if(((c[(c[f>>2]|0)+24>>2]|0)+(c[(c[f>>2]|0)+8>>2]|0)|0)>>>0>=(c[(c[f>>2]|0)+4>>2]|0)>>>0){c[e>>2]=-1;d=c[e>>2]|0;i=h;return d|0}else{b=c[g>>2]&255;g=(c[f>>2]|0)+24|0;d=c[g>>2]|0;c[g>>2]=d+1;a[(c[c[f>>2]>>2]|0)+d>>0]=b;c[e>>2]=0;d=c[e>>2]|0;i=h;return d|0}return 0}function oc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;f=l+16|0;g=l+12|0;h=l+8|0;j=l+4|0;k=l;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;c[k>>2]=(c[(c[f>>2]|0)+28>>2]|0)>>>(c[j>>2]|0);if((c[g>>2]|0)>>>0>0){b=(c[(c[f>>2]|0)+28>>2]|0)-(_(c[k>>2]|0,(1<<c[j>>2])-(c[g>>2]|0)|0)|0)|0;a=(c[f>>2]|0)+32|0;c[a>>2]=(c[a>>2]|0)+b;k=_(c[k>>2]|0,(c[h>>2]|0)-(c[g>>2]|0)|0)|0;c[(c[f>>2]|0)+28>>2]=k;k=c[f>>2]|0;lc(k);i=l;return}else{a=_(c[k>>2]|0,(1<<c[j>>2])-(c[h>>2]|0)|0)|0;k=(c[f>>2]|0)+28|0;c[k>>2]=(c[k>>2]|0)-a;k=c[f>>2]|0;lc(k);i=l;return}}function pc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;k=i;i=i+32|0;e=k+20|0;f=k+16|0;l=k+12|0;h=k+8|0;j=k+4|0;g=k;c[e>>2]=a;c[f>>2]=b;c[l>>2]=d;c[h>>2]=c[(c[e>>2]|0)+28>>2];c[g>>2]=c[(c[e>>2]|0)+32>>2];c[j>>2]=(c[h>>2]|0)>>>(c[l>>2]|0);c[h>>2]=(c[h>>2]|0)-(c[j>>2]|0);if(c[f>>2]|0)c[(c[e>>2]|0)+32>>2]=(c[g>>2]|0)+(c[h>>2]|0);c[(c[e>>2]|0)+28>>2]=c[f>>2]|0?c[j>>2]|0:c[h>>2]|0;lc(c[e>>2]|0);i=k;return}function qc(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;l=i;i=i+32|0;g=l+16|0;h=l+12|0;j=l+8|0;m=l+4|0;k=l;c[g>>2]=a;c[h>>2]=b;c[j>>2]=e;c[m>>2]=f;c[k>>2]=(c[(c[g>>2]|0)+28>>2]|0)>>>(c[m>>2]|0);if((c[h>>2]|0)>0){a=(c[(c[g>>2]|0)+28>>2]|0)-(_(c[k>>2]|0,d[(c[j>>2]|0)+((c[h>>2]|0)-1)>>0]|0)|0)|0;m=(c[g>>2]|0)+32|0;c[m>>2]=(c[m>>2]|0)+a;m=_(c[k>>2]|0,(d[(c[j>>2]|0)+((c[h>>2]|0)-1)>>0]|0)-(d[(c[j>>2]|0)+(c[h>>2]|0)>>0]|0)|0)|0;c[(c[g>>2]|0)+28>>2]=m;m=c[g>>2]|0;lc(m);i=l;return}else{k=_(c[k>>2]|0,d[(c[j>>2]|0)+(c[h>>2]|0)>>0]|0)|0;m=(c[g>>2]|0)+28|0;c[m>>2]=(c[m>>2]|0)-k;m=c[g>>2]|0;lc(m);i=l;return}}function rc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;e=l+20|0;f=l+16|0;g=l+12|0;j=l+8|0;h=l+4|0;k=l;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;c[g>>2]=(c[g>>2]|0)+-1;c[k>>2]=32-(aa(c[g>>2]|0)|0);if((c[k>>2]|0)>8){c[k>>2]=(c[k>>2]|0)-8;c[j>>2]=((c[g>>2]|0)>>>(c[k>>2]|0))+1;c[h>>2]=(c[f>>2]|0)>>>(c[k>>2]|0);jc(c[e>>2]|0,c[h>>2]|0,(c[h>>2]|0)+1|0,c[j>>2]|0);sc(c[e>>2]|0,c[f>>2]&(1<<c[k>>2])-1,c[k>>2]|0);i=l;return}else{jc(c[e>>2]|0,c[f>>2]|0,(c[f>>2]|0)+1|0,(c[g>>2]|0)+1|0);i=l;return}}function sc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;e=k+16|0;f=k+12|0;g=k+8|0;j=k+4|0;h=k;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;c[j>>2]=c[(c[e>>2]|0)+12>>2];c[h>>2]=c[(c[e>>2]|0)+16>>2];if(((c[h>>2]|0)+(c[g>>2]|0)|0)>>>0>32)do{b=tc(c[e>>2]|0,c[j>>2]&255)|0;a=(c[e>>2]|0)+44|0;c[a>>2]=c[a>>2]|b;c[j>>2]=(c[j>>2]|0)>>>8;c[h>>2]=(c[h>>2]|0)-8}while((c[h>>2]|0)>=8);c[j>>2]=c[j>>2]|c[f>>2]<<c[h>>2];c[h>>2]=(c[h>>2]|0)+(c[g>>2]|0);c[(c[e>>2]|0)+12>>2]=c[j>>2];c[(c[e>>2]|0)+16>>2]=c[h>>2];j=(c[e>>2]|0)+20|0;c[j>>2]=(c[j>>2]|0)+(c[g>>2]|0);i=k;return}function tc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;h=i;i=i+16|0;e=h+8|0;f=h+4|0;g=h;c[f>>2]=b;c[g>>2]=d;if(((c[(c[f>>2]|0)+24>>2]|0)+(c[(c[f>>2]|0)+8>>2]|0)|0)>>>0>=(c[(c[f>>2]|0)+4>>2]|0)>>>0){c[e>>2]=-1;d=c[e>>2]|0;i=h;return d|0}else{g=c[g>>2]&255;b=c[(c[f>>2]|0)+4>>2]|0;j=(c[f>>2]|0)+8|0;d=(c[j>>2]|0)+1|0;c[j>>2]=d;a[(c[c[f>>2]>>2]|0)+(b-d)>>0]=g;c[e>>2]=0;d=c[e>>2]|0;i=h;return d|0}return 0}function uc(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;g=m+16|0;h=m+12|0;j=m+8|0;l=m+4|0;k=m;c[g>>2]=b;c[h>>2]=e;c[j>>2]=f;c[l>>2]=8-(c[j>>2]|0);c[k>>2]=(1<<c[j>>2])-1<<c[l>>2];f=c[g>>2]|0;if((c[(c[g>>2]|0)+24>>2]|0)>>>0>0){a[c[c[g>>2]>>2]>>0]=(d[c[f>>2]>>0]|0)&~c[k>>2]|c[h>>2]<<c[l>>2];i=m;return}b=c[g>>2]|0;if((c[f+40>>2]|0)>=0){c[(c[g>>2]|0)+40>>2]=c[b+40>>2]&~c[k>>2]|c[h>>2]<<c[l>>2];i=m;return}f=c[g>>2]|0;if((c[b+28>>2]|0)>>>0<=-2147483648>>>(c[j>>2]|0)>>>0){c[(c[g>>2]|0)+32>>2]=c[f+32>>2]&~(c[k>>2]<<23)|c[h>>2]<<23+(c[l>>2]|0);i=m;return}else{c[f+44>>2]=-1;i=m;return}}function vc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;qj((c[c[e>>2]>>2]|0)+(c[f>>2]|0)+(0-(c[(c[e>>2]|0)+8>>2]|0))|0,(c[c[e>>2]>>2]|0)+(c[(c[e>>2]|0)+4>>2]|0)+(0-(c[(c[e>>2]|0)+8>>2]|0))|0,(c[(c[e>>2]|0)+8>>2]|0)+0|0)|0;c[(c[e>>2]|0)+4>>2]=c[f>>2];i=d;return}function wc(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;g=l+20|0;k=l+16|0;j=l+12|0;e=l+8|0;f=l+4|0;h=l;c[g>>2]=b;c[h>>2]=32-(32-(aa(c[(c[g>>2]|0)+28>>2]|0)|0));c[e>>2]=2147483647>>>(c[h>>2]|0);c[f>>2]=(c[(c[g>>2]|0)+32>>2]|0)+(c[e>>2]|0)&~c[e>>2];if((c[f>>2]|c[e>>2])>>>0>=((c[(c[g>>2]|0)+32>>2]|0)+(c[(c[g>>2]|0)+28>>2]|0)|0)>>>0){c[h>>2]=(c[h>>2]|0)+1;c[e>>2]=(c[e>>2]|0)>>>1;c[f>>2]=(c[(c[g>>2]|0)+32>>2]|0)+(c[e>>2]|0)&~c[e>>2]}while(1){b=c[g>>2]|0;if((c[h>>2]|0)<=0)break;mc(b,(c[f>>2]|0)>>>23);c[f>>2]=c[f>>2]<<8&2147483647;c[h>>2]=(c[h>>2]|0)-8}if(!((c[b+40>>2]|0)<0?(c[(c[g>>2]|0)+36>>2]|0)>>>0<=0:0))mc(c[g>>2]|0,0);c[k>>2]=c[(c[g>>2]|0)+12>>2];c[j>>2]=c[(c[g>>2]|0)+16>>2];while(1){b=c[g>>2]|0;if((c[j>>2]|0)<8)break;e=tc(b,c[k>>2]&255)|0;f=(c[g>>2]|0)+44|0;c[f>>2]=c[f>>2]|e;c[k>>2]=(c[k>>2]|0)>>>8;c[j>>2]=(c[j>>2]|0)-8}if(c[b+44>>2]|0){i=l;return}oj((c[c[g>>2]>>2]|0)+(c[(c[g>>2]|0)+24>>2]|0)|0,0,(c[(c[g>>2]|0)+4>>2]|0)-(c[(c[g>>2]|0)+24>>2]|0)-(c[(c[g>>2]|0)+8>>2]|0)|0)|0;if((c[j>>2]|0)<=0){i=l;return}if((c[(c[g>>2]|0)+8>>2]|0)>>>0>=(c[(c[g>>2]|0)+4>>2]|0)>>>0){c[(c[g>>2]|0)+44>>2]=-1;i=l;return}c[h>>2]=0-(c[h>>2]|0);if(((c[(c[g>>2]|0)+24>>2]|0)+(c[(c[g>>2]|0)+8>>2]|0)|0)>>>0>=(c[(c[g>>2]|0)+4>>2]|0)>>>0?(c[h>>2]|0)<(c[j>>2]|0):0){c[k>>2]=c[k>>2]&(1<<c[h>>2])-1;c[(c[g>>2]|0)+44>>2]=-1}j=(c[c[g>>2]>>2]|0)+((c[(c[g>>2]|0)+4>>2]|0)-(c[(c[g>>2]|0)+8>>2]|0)-1)|0;a[j>>0]=d[j>>0]|0|c[k>>2]&255;i=l;return}function xc(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+64|0;e=o+60|0;f=o+56|0;l=o+52|0;k=o+48|0;m=o+44|0;g=o+40|0;h=o+8|0;j=o+4|0;n=o;c[e>>2]=a;c[f>>2]=d;if((c[(c[e>>2]|0)+8>>2]|0)>0)d=c[(c[e>>2]|0)+8>>2]|0;else d=0;c[n>>2]=d;c[h>>2]=1;c[g>>2]=0;do{c[m>>2]=b[(c[e>>2]|0)+12+(c[g>>2]<<1<<1)>>1];c[k>>2]=b[(c[e>>2]|0)+12+((c[g>>2]<<1)+1<<1)>>1];a=_(c[h+(c[g>>2]<<2)>>2]|0,c[m>>2]|0)|0;c[h+((c[g>>2]|0)+1<<2)>>2]=a;c[g>>2]=(c[g>>2]|0)+1}while((c[k>>2]|0)!=1);c[k>>2]=b[(c[e>>2]|0)+12+((c[g>>2]<<1)-1<<1)>>1];c[j>>2]=(c[g>>2]|0)-1;while(1){if((c[j>>2]|0)<0)break;if(c[j>>2]|0)c[l>>2]=b[(c[e>>2]|0)+12+((c[j>>2]<<1)-1<<1)>>1];else c[l>>2]=1;switch(b[(c[e>>2]|0)+12+(c[j>>2]<<1<<1)>>1]|0){case 2:{yc(c[f>>2]|0,c[k>>2]|0,c[h+(c[j>>2]<<2)>>2]|0);break}case 4:{zc(c[f>>2]|0,c[h+(c[j>>2]<<2)>>2]<<c[n>>2],c[e>>2]|0,c[k>>2]|0,c[h+(c[j>>2]<<2)>>2]|0,c[l>>2]|0);break}case 3:{Ac(c[f>>2]|0,c[h+(c[j>>2]<<2)>>2]<<c[n>>2],c[e>>2]|0,c[k>>2]|0,c[h+(c[j>>2]<<2)>>2]|0,c[l>>2]|0);break}case 5:{Bc(c[f>>2]|0,c[h+(c[j>>2]<<2)>>2]<<c[n>>2],c[e>>2]|0,c[k>>2]|0,c[h+(c[j>>2]<<2)>>2]|0,c[l>>2]|0);break}default:{}}c[k>>2]=c[l>>2];c[j>>2]=(c[j>>2]|0)+-1}i=o;return}function yc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;e=m+28|0;f=m+20|0;h=m+16|0;j=m+12|0;l=m+8|0;k=m;c[e>>2]=a;c[m+24>>2]=b;c[f>>2]=d;g[l>>2]=.7071067690849304;c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[f>>2]|0))break;c[h>>2]=(c[e>>2]|0)+32;b=c[h>>2]|0;c[k>>2]=c[b>>2];c[k+4>>2]=c[b+4>>2];g[c[h>>2]>>2]=+g[c[e>>2]>>2]-+g[k>>2];g[(c[h>>2]|0)+4>>2]=+g[(c[e>>2]|0)+4>>2]-+g[k+4>>2];b=c[e>>2]|0;g[b>>2]=+g[b>>2]+ +g[k>>2];b=(c[e>>2]|0)+4|0;g[b>>2]=+g[b>>2]+ +g[k+4>>2];g[k>>2]=(+g[(c[h>>2]|0)+8>>2]+ +g[(c[h>>2]|0)+8+4>>2])*+g[l>>2];g[k+4>>2]=(+g[(c[h>>2]|0)+8+4>>2]-+g[(c[h>>2]|0)+8>>2])*+g[l>>2];g[(c[h>>2]|0)+8>>2]=+g[(c[e>>2]|0)+8>>2]-+g[k>>2];g[(c[h>>2]|0)+8+4>>2]=+g[(c[e>>2]|0)+8+4>>2]-+g[k+4>>2];b=(c[e>>2]|0)+8|0;g[b>>2]=+g[b>>2]+ +g[k>>2];b=(c[e>>2]|0)+8+4|0;g[b>>2]=+g[b>>2]+ +g[k+4>>2];g[k>>2]=+g[(c[h>>2]|0)+16+4>>2];g[k+4>>2]=-+g[(c[h>>2]|0)+16>>2];g[(c[h>>2]|0)+16>>2]=+g[(c[e>>2]|0)+16>>2]-+g[k>>2];g[(c[h>>2]|0)+16+4>>2]=+g[(c[e>>2]|0)+16+4>>2]-+g[k+4>>2];b=(c[e>>2]|0)+16|0;g[b>>2]=+g[b>>2]+ +g[k>>2];b=(c[e>>2]|0)+16+4|0;g[b>>2]=+g[b>>2]+ +g[k+4>>2];g[k>>2]=(+g[(c[h>>2]|0)+24+4>>2]-+g[(c[h>>2]|0)+24>>2])*+g[l>>2];g[k+4>>2]=(-+g[(c[h>>2]|0)+24+4>>2]-+g[(c[h>>2]|0)+24>>2])*+g[l>>2];g[(c[h>>2]|0)+24>>2]=+g[(c[e>>2]|0)+24>>2]-+g[k>>2];g[(c[h>>2]|0)+24+4>>2]=+g[(c[e>>2]|0)+24+4>>2]-+g[k+4>>2];b=(c[e>>2]|0)+24|0;g[b>>2]=+g[b>>2]+ +g[k>>2];b=(c[e>>2]|0)+24+4|0;g[b>>2]=+g[b>>2]+ +g[k+4>>2];c[e>>2]=(c[e>>2]|0)+64;c[j>>2]=(c[j>>2]|0)+1}i=m;return}function zc(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;A=i;i=i+128|0;j=A+120|0;k=A+116|0;l=A+112|0;m=A+108|0;n=A+104|0;o=A+100|0;q=A+96|0;v=A+88|0;w=A+80|0;r=A+72|0;u=A+24|0;x=A+20|0;y=A+16|0;z=A+12|0;s=A+8|0;t=A+4|0;p=A;c[j>>2]=a;c[k>>2]=b;c[l>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=h;if((c[m>>2]|0)==1){c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[n>>2]|0))break;g[v>>2]=+g[c[j>>2]>>2]-+g[(c[j>>2]|0)+16>>2];g[v+4>>2]=+g[(c[j>>2]|0)+4>>2]-+g[(c[j>>2]|0)+16+4>>2];z=c[j>>2]|0;g[z>>2]=+g[z>>2]+ +g[(c[j>>2]|0)+16>>2];z=(c[j>>2]|0)+4|0;g[z>>2]=+g[z>>2]+ +g[(c[j>>2]|0)+16+4>>2];g[w>>2]=+g[(c[j>>2]|0)+8>>2]+ +g[(c[j>>2]|0)+24>>2];g[w+4>>2]=+g[(c[j>>2]|0)+8+4>>2]+ +g[(c[j>>2]|0)+24+4>>2];g[(c[j>>2]|0)+16>>2]=+g[c[j>>2]>>2]-+g[w>>2];g[(c[j>>2]|0)+16+4>>2]=+g[(c[j>>2]|0)+4>>2]-+g[w+4>>2];z=c[j>>2]|0;g[z>>2]=+g[z>>2]+ +g[w>>2];z=(c[j>>2]|0)+4|0;g[z>>2]=+g[z>>2]+ +g[w+4>>2];g[w>>2]=+g[(c[j>>2]|0)+8>>2]-+g[(c[j>>2]|0)+24>>2];g[w+4>>2]=+g[(c[j>>2]|0)+8+4>>2]-+g[(c[j>>2]|0)+24+4>>2];g[(c[j>>2]|0)+8>>2]=+g[v>>2]+ +g[w+4>>2];g[(c[j>>2]|0)+8+4>>2]=+g[v+4>>2]-+g[w>>2];g[(c[j>>2]|0)+24>>2]=+g[v>>2]-+g[w+4>>2];g[(c[j>>2]|0)+24+4>>2]=+g[v+4>>2]+ +g[w>>2];c[j>>2]=(c[j>>2]|0)+32;c[q>>2]=(c[q>>2]|0)+1}i=A;return}c[s>>2]=c[m>>2]<<1;c[t>>2]=(c[m>>2]|0)*3;c[p>>2]=c[j>>2];c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[n>>2]|0))break;c[j>>2]=(c[p>>2]|0)+((_(c[q>>2]|0,c[o>>2]|0)|0)<<3);d=c[(c[l>>2]|0)+48>>2]|0;c[x>>2]=d;c[y>>2]=d;c[z>>2]=d;c[r>>2]=0;while(1){if((c[r>>2]|0)>=(c[m>>2]|0))break;g[u>>2]=+g[(c[j>>2]|0)+(c[m>>2]<<3)>>2]*+g[c[x>>2]>>2]-+g[(c[j>>2]|0)+(c[m>>2]<<3)+4>>2]*+g[(c[x>>2]|0)+4>>2];g[u+4>>2]=+g[(c[j>>2]|0)+(c[m>>2]<<3)>>2]*+g[(c[x>>2]|0)+4>>2]+ +g[(c[j>>2]|0)+(c[m>>2]<<3)+4>>2]*+g[c[x>>2]>>2];g[u+8>>2]=+g[(c[j>>2]|0)+(c[s>>2]<<3)>>2]*+g[c[y>>2]>>2]-+g[(c[j>>2]|0)+(c[s>>2]<<3)+4>>2]*+g[(c[y>>2]|0)+4>>2];g[u+8+4>>2]=+g[(c[j>>2]|0)+(c[s>>2]<<3)>>2]*+g[(c[y>>2]|0)+4>>2]+ +g[(c[j>>2]|0)+(c[s>>2]<<3)+4>>2]*+g[c[y>>2]>>2];g[u+16>>2]=+g[(c[j>>2]|0)+(c[t>>2]<<3)>>2]*+g[c[z>>2]>>2]-+g[(c[j>>2]|0)+(c[t>>2]<<3)+4>>2]*+g[(c[z>>2]|0)+4>>2];g[u+16+4>>2]=+g[(c[j>>2]|0)+(c[t>>2]<<3)>>2]*+g[(c[z>>2]|0)+4>>2]+ +g[(c[j>>2]|0)+(c[t>>2]<<3)+4>>2]*+g[c[z>>2]>>2];g[u+40>>2]=+g[c[j>>2]>>2]-+g[u+8>>2];g[u+40+4>>2]=+g[(c[j>>2]|0)+4>>2]-+g[u+8+4>>2];d=c[j>>2]|0;g[d>>2]=+g[d>>2]+ +g[u+8>>2];d=(c[j>>2]|0)+4|0;g[d>>2]=+g[d>>2]+ +g[u+8+4>>2];g[u+24>>2]=+g[u>>2]+ +g[u+16>>2];g[u+24+4>>2]=+g[u+4>>2]+ +g[u+16+4>>2];g[u+32>>2]=+g[u>>2]-+g[u+16>>2];g[u+32+4>>2]=+g[u+4>>2]-+g[u+16+4>>2];g[(c[j>>2]|0)+(c[s>>2]<<3)>>2]=+g[c[j>>2]>>2]-+g[u+24>>2];g[(c[j>>2]|0)+(c[s>>2]<<3)+4>>2]=+g[(c[j>>2]|0)+4>>2]-+g[u+24+4>>2];c[x>>2]=(c[x>>2]|0)+(c[k>>2]<<3);c[y>>2]=(c[y>>2]|0)+(c[k>>2]<<1<<3);c[z>>2]=(c[z>>2]|0)+((c[k>>2]|0)*3<<3);d=c[j>>2]|0;g[d>>2]=+g[d>>2]+ +g[u+24>>2];d=(c[j>>2]|0)+4|0;g[d>>2]=+g[d>>2]+ +g[u+24+4>>2];g[(c[j>>2]|0)+(c[m>>2]<<3)>>2]=+g[u+40>>2]+ +g[u+32+4>>2];g[(c[j>>2]|0)+(c[m>>2]<<3)+4>>2]=+g[u+40+4>>2]-+g[u+32>>2];g[(c[j>>2]|0)+(c[t>>2]<<3)>>2]=+g[u+40>>2]-+g[u+32+4>>2];g[(c[j>>2]|0)+(c[t>>2]<<3)+4>>2]=+g[u+40+4>>2]+ +g[u+32>>2];c[j>>2]=(c[j>>2]|0)+8;c[r>>2]=(c[r>>2]|0)+1}c[q>>2]=(c[q>>2]|0)+1}i=A;return}function Ac(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=i;i=i+112|0;j=x+96|0;k=x+92|0;l=x+88|0;m=x+84|0;n=x+80|0;o=x+76|0;r=x+72|0;s=x+68|0;t=x+64|0;v=x+60|0;w=x+56|0;u=x+16|0;q=x+8|0;p=x;c[j>>2]=a;c[k>>2]=b;c[l>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=h;c[t>>2]=c[m>>2]<<1;c[p>>2]=c[j>>2];d=_(c[k>>2]|0,c[m>>2]|0)|0;d=(c[(c[l>>2]|0)+48>>2]|0)+(d<<3)|0;c[q>>2]=c[d>>2];c[q+4>>2]=c[d+4>>2];c[r>>2]=0;while(1){if((c[r>>2]|0)>=(c[n>>2]|0))break;c[j>>2]=(c[p>>2]|0)+((_(c[r>>2]|0,c[o>>2]|0)|0)<<3);d=c[(c[l>>2]|0)+48>>2]|0;c[w>>2]=d;c[v>>2]=d;c[s>>2]=c[m>>2];do{g[u+8>>2]=+g[(c[j>>2]|0)+(c[m>>2]<<3)>>2]*+g[c[v>>2]>>2]-+g[(c[j>>2]|0)+(c[m>>2]<<3)+4>>2]*+g[(c[v>>2]|0)+4>>2];g[u+8+4>>2]=+g[(c[j>>2]|0)+(c[m>>2]<<3)>>2]*+g[(c[v>>2]|0)+4>>2]+ +g[(c[j>>2]|0)+(c[m>>2]<<3)+4>>2]*+g[c[v>>2]>>2];g[u+16>>2]=+g[(c[j>>2]|0)+(c[t>>2]<<3)>>2]*+g[c[w>>2]>>2]-+g[(c[j>>2]|0)+(c[t>>2]<<3)+4>>2]*+g[(c[w>>2]|0)+4>>2];g[u+16+4>>2]=+g[(c[j>>2]|0)+(c[t>>2]<<3)>>2]*+g[(c[w>>2]|0)+4>>2]+ +g[(c[j>>2]|0)+(c[t>>2]<<3)+4>>2]*+g[c[w>>2]>>2];g[u+24>>2]=+g[u+8>>2]+ +g[u+16>>2];g[u+24+4>>2]=+g[u+8+4>>2]+ +g[u+16+4>>2];g[u>>2]=+g[u+8>>2]-+g[u+16>>2];g[u+4>>2]=+g[u+8+4>>2]-+g[u+16+4>>2];c[v>>2]=(c[v>>2]|0)+(c[k>>2]<<3);c[w>>2]=(c[w>>2]|0)+(c[k>>2]<<1<<3);g[(c[j>>2]|0)+(c[m>>2]<<3)>>2]=+g[c[j>>2]>>2]-+g[u+24>>2]*.5;g[(c[j>>2]|0)+(c[m>>2]<<3)+4>>2]=+g[(c[j>>2]|0)+4>>2]-+g[u+24+4>>2]*.5;g[u>>2]=+g[u>>2]*+g[q+4>>2];d=u+4|0;g[d>>2]=+g[d>>2]*+g[q+4>>2];d=c[j>>2]|0;g[d>>2]=+g[d>>2]+ +g[u+24>>2];d=(c[j>>2]|0)+4|0;g[d>>2]=+g[d>>2]+ +g[u+24+4>>2];g[(c[j>>2]|0)+(c[t>>2]<<3)>>2]=+g[(c[j>>2]|0)+(c[m>>2]<<3)>>2]+ +g[u+4>>2];g[(c[j>>2]|0)+(c[t>>2]<<3)+4>>2]=+g[(c[j>>2]|0)+(c[m>>2]<<3)+4>>2]-+g[u>>2];d=(c[j>>2]|0)+(c[m>>2]<<3)|0;g[d>>2]=+g[d>>2]-+g[u+4>>2];d=(c[j>>2]|0)+(c[m>>2]<<3)+4|0;g[d>>2]=+g[d>>2]+ +g[u>>2];c[j>>2]=(c[j>>2]|0)+8;d=(c[s>>2]|0)+-1|0;c[s>>2]=d}while((d|0)!=0);c[r>>2]=(c[r>>2]|0)+1}i=x;return}function Bc(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;A=i;i=i+192|0;j=A+184|0;k=A+180|0;B=A+176|0;l=A+172|0;m=A+168|0;n=A+164|0;o=A+160|0;p=A+156|0;q=A+152|0;r=A+148|0;s=A+144|0;u=A+140|0;x=A+136|0;v=A+32|0;w=A+24|0;y=A+16|0;z=A+8|0;t=A;c[j>>2]=a;c[k>>2]=b;c[B>>2]=d;c[l>>2]=e;c[m>>2]=f;c[n>>2]=h;c[t>>2]=c[j>>2];d=_(c[k>>2]|0,c[l>>2]|0)|0;d=(c[(c[B>>2]|0)+48>>2]|0)+(d<<3)|0;c[y>>2]=c[d>>2];c[y+4>>2]=c[d+4>>2];d=_(c[k>>2]<<1,c[l>>2]|0)|0;d=(c[(c[B>>2]|0)+48>>2]|0)+(d<<3)|0;c[z>>2]=c[d>>2];c[z+4>>2]=c[d+4>>2];c[w>>2]=c[(c[B>>2]|0)+48>>2];c[u>>2]=0;while(1){if((c[u>>2]|0)>=(c[m>>2]|0))break;c[j>>2]=(c[t>>2]|0)+((_(c[u>>2]|0,c[n>>2]|0)|0)<<3);c[o>>2]=c[j>>2];c[p>>2]=(c[o>>2]|0)+(c[l>>2]<<3);c[q>>2]=(c[o>>2]|0)+(c[l>>2]<<1<<3);c[r>>2]=(c[o>>2]|0)+((c[l>>2]|0)*3<<3);c[s>>2]=(c[o>>2]|0)+(c[l>>2]<<2<<3);c[x>>2]=0;while(1){if((c[x>>2]|0)>=(c[l>>2]|0))break;B=c[o>>2]|0;c[v>>2]=c[B>>2];c[v+4>>2]=c[B+4>>2];B=_(c[x>>2]|0,c[k>>2]|0)|0;d=_(c[x>>2]|0,c[k>>2]|0)|0;g[v+8>>2]=+g[c[p>>2]>>2]*+g[(c[w>>2]|0)+(B<<3)>>2]-+g[(c[p>>2]|0)+4>>2]*+g[(c[w>>2]|0)+(d<<3)+4>>2];d=_(c[x>>2]|0,c[k>>2]|0)|0;B=_(c[x>>2]|0,c[k>>2]|0)|0;g[v+8+4>>2]=+g[c[p>>2]>>2]*+g[(c[w>>2]|0)+(d<<3)+4>>2]+ +g[(c[p>>2]|0)+4>>2]*+g[(c[w>>2]|0)+(B<<3)>>2];B=_(c[x>>2]<<1,c[k>>2]|0)|0;d=_(c[x>>2]<<1,c[k>>2]|0)|0;g[v+16>>2]=+g[c[q>>2]>>2]*+g[(c[w>>2]|0)+(B<<3)>>2]-+g[(c[q>>2]|0)+4>>2]*+g[(c[w>>2]|0)+(d<<3)+4>>2];d=_(c[x>>2]<<1,c[k>>2]|0)|0;B=_(c[x>>2]<<1,c[k>>2]|0)|0;g[v+16+4>>2]=+g[c[q>>2]>>2]*+g[(c[w>>2]|0)+(d<<3)+4>>2]+ +g[(c[q>>2]|0)+4>>2]*+g[(c[w>>2]|0)+(B<<3)>>2];B=_((c[x>>2]|0)*3|0,c[k>>2]|0)|0;d=_((c[x>>2]|0)*3|0,c[k>>2]|0)|0;g[v+24>>2]=+g[c[r>>2]>>2]*+g[(c[w>>2]|0)+(B<<3)>>2]-+g[(c[r>>2]|0)+4>>2]*+g[(c[w>>2]|0)+(d<<3)+4>>2];d=_((c[x>>2]|0)*3|0,c[k>>2]|0)|0;B=_((c[x>>2]|0)*3|0,c[k>>2]|0)|0;g[v+24+4>>2]=+g[c[r>>2]>>2]*+g[(c[w>>2]|0)+(d<<3)+4>>2]+ +g[(c[r>>2]|0)+4>>2]*+g[(c[w>>2]|0)+(B<<3)>>2];B=_(c[x>>2]<<2,c[k>>2]|0)|0;d=_(c[x>>2]<<2,c[k>>2]|0)|0;g[v+32>>2]=+g[c[s>>2]>>2]*+g[(c[w>>2]|0)+(B<<3)>>2]-+g[(c[s>>2]|0)+4>>2]*+g[(c[w>>2]|0)+(d<<3)+4>>2];d=_(c[x>>2]<<2,c[k>>2]|0)|0;B=_(c[x>>2]<<2,c[k>>2]|0)|0;g[v+32+4>>2]=+g[c[s>>2]>>2]*+g[(c[w>>2]|0)+(d<<3)+4>>2]+ +g[(c[s>>2]|0)+4>>2]*+g[(c[w>>2]|0)+(B<<3)>>2];g[v+56>>2]=+g[v+8>>2]+ +g[v+32>>2];g[v+56+4>>2]=+g[v+8+4>>2]+ +g[v+32+4>>2];g[v+80>>2]=+g[v+8>>2]-+g[v+32>>2];g[v+80+4>>2]=+g[v+8+4>>2]-+g[v+32+4>>2];g[v+64>>2]=+g[v+16>>2]+ +g[v+24>>2];g[v+64+4>>2]=+g[v+16+4>>2]+ +g[v+24+4>>2];g[v+72>>2]=+g[v+16>>2]-+g[v+24>>2];g[v+72+4>>2]=+g[v+16+4>>2]-+g[v+24+4>>2];B=c[o>>2]|0;g[B>>2]=+g[B>>2]+(+g[v+56>>2]+ +g[v+64>>2]);B=(c[o>>2]|0)+4|0;g[B>>2]=+g[B>>2]+(+g[v+56+4>>2]+ +g[v+64+4>>2]);g[v+40>>2]=+g[v>>2]+ +g[v+56>>2]*+g[y>>2]+ +g[v+64>>2]*+g[z>>2];g[v+40+4>>2]=+g[v+4>>2]+ +g[v+56+4>>2]*+g[y>>2]+ +g[v+64+4>>2]*+g[z>>2];g[v+48>>2]=+g[v+80+4>>2]*+g[y+4>>2]+ +g[v+72+4>>2]*+g[z+4>>2];g[v+48+4>>2]=-(+g[v+80>>2]*+g[y+4>>2])-+g[v+72>>2]*+g[z+4>>2];g[c[p>>2]>>2]=+g[v+40>>2]-+g[v+48>>2];g[(c[p>>2]|0)+4>>2]=+g[v+40+4>>2]-+g[v+48+4>>2];g[c[s>>2]>>2]=+g[v+40>>2]+ +g[v+48>>2];g[(c[s>>2]|0)+4>>2]=+g[v+40+4>>2]+ +g[v+48+4>>2];g[v+88>>2]=+g[v>>2]+ +g[v+56>>2]*+g[z>>2]+ +g[v+64>>2]*+g[y>>2];g[v+88+4>>2]=+g[v+4>>2]+ +g[v+56+4>>2]*+g[z>>2]+ +g[v+64+4>>2]*+g[y>>2];g[v+96>>2]=-(+g[v+80+4>>2]*+g[z+4>>2])+ +g[v+72+4>>2]*+g[y+4>>2];g[v+96+4>>2]=+g[v+80>>2]*+g[z+4>>2]-+g[v+72>>2]*+g[y+4>>2];g[c[q>>2]>>2]=+g[v+88>>2]+ +g[v+96>>2];g[(c[q>>2]|0)+4>>2]=+g[v+88+4>>2]+ +g[v+96+4>>2];g[c[r>>2]>>2]=+g[v+88>>2]-+g[v+96>>2];g[(c[r>>2]|0)+4>>2]=+g[v+88+4>>2]-+g[v+96+4>>2];c[o>>2]=(c[o>>2]|0)+8;c[p>>2]=(c[p>>2]|0)+8;c[q>>2]=(c[q>>2]|0)+8;c[r>>2]=(c[r>>2]|0)+8;c[s>>2]=(c[s>>2]|0)+8;c[x>>2]=(c[x>>2]|0)+1}c[u>>2]=(c[u>>2]|0)+1}i=A;return}function Cc(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;f=n+24|0;h=n+20|0;j=n+16|0;k=n+12|0;l=n+8|0;m=n;c[f>>2]=a;c[h>>2]=d;c[j>>2]=e;g[l>>2]=+g[(c[f>>2]|0)+4>>2];c[k>>2]=0;while(1){if((c[k>>2]|0)>=(c[c[f>>2]>>2]|0))break;a=(c[h>>2]|0)+(c[k>>2]<<3)|0;c[m>>2]=c[a>>2];c[m+4>>2]=c[a+4>>2];g[(c[j>>2]|0)+(b[(c[(c[f>>2]|0)+44>>2]|0)+(c[k>>2]<<1)>>1]<<3)>>2]=+g[l>>2]*+g[m>>2];g[(c[j>>2]|0)+(b[(c[(c[f>>2]|0)+44>>2]|0)+(c[k>>2]<<1)>>1]<<3)+4>>2]=+g[l>>2]*+g[m+4>>2];c[k>>2]=(c[k>>2]|0)+1}xc(c[f>>2]|0,c[j>>2]|0);i=n;return}function Dc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+48|0;j=q+36|0;k=q+32|0;l=q+28|0;f=q+24|0;n=q+20|0;h=q+16|0;p=q+12|0;o=q+8|0;m=q+4|0;g=q;c[j>>2]=a;c[k>>2]=b;c[l>>2]=d;c[f>>2]=e;c[h>>2]=c[c[k>>2]>>2];c[n>>2]=0;if(!(c[h>>2]|0)){m=c[j>>2]|0;o=c[n>>2]|0;n=c[n>>2]|0;p=c[l>>2]|0;p=n+p|0;oc(m,o,p,15);i=q;return}c[p>>2]=0-((c[h>>2]|0)<0&1);c[h>>2]=(c[h>>2]|0)+(c[p>>2]|0)^c[p>>2];c[n>>2]=c[l>>2];c[l>>2]=Ec(c[l>>2]|0,c[f>>2]|0)|0;c[o>>2]=1;while(1){if((c[l>>2]|0)>>>0>0)a=(c[o>>2]|0)<(c[h>>2]|0);else a=0;e=c[l>>2]|0;if(!a)break;c[l>>2]=e<<1;c[n>>2]=(c[n>>2]|0)+((c[l>>2]|0)+2);c[l>>2]=(_(c[l>>2]|0,c[f>>2]|0)|0)>>>15;c[o>>2]=(c[o>>2]|0)+1}if(e|0){c[l>>2]=(c[l>>2]|0)+1;c[n>>2]=(c[n>>2]|0)+(c[l>>2]&~c[p>>2]);m=c[j>>2]|0;o=c[n>>2]|0;n=c[n>>2]|0;p=c[l>>2]|0;p=n+p|0;oc(m,o,p,15);i=q;return}c[g>>2]=(32768-(c[n>>2]|0)+1-1|0)>>>0;c[g>>2]=(c[g>>2]|0)-(c[p>>2]|0)>>1;if(((c[h>>2]|0)-(c[o>>2]|0)|0)<((c[g>>2]|0)-1|0))e=(c[h>>2]|0)-(c[o>>2]|0)|0;else e=(c[g>>2]|0)-1|0;c[m>>2]=e;c[n>>2]=(c[n>>2]|0)+((c[m>>2]<<1)+1+(c[p>>2]|0));c[l>>2]=1<(32768-(c[n>>2]|0)|0)>>>0?1:32768-(c[n>>2]|0)|0;c[c[k>>2]>>2]=(c[o>>2]|0)+(c[m>>2]|0)+(c[p>>2]|0)^c[p>>2];m=c[j>>2]|0;o=c[n>>2]|0;n=c[n>>2]|0;p=c[l>>2]|0;p=n+p|0;oc(m,o,p,15);i=q;return}function Ec(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;g=d+8|0;e=d+4|0;f=d;c[g>>2]=a;c[e>>2]=b;c[f>>2]=32736-(c[g>>2]|0);a=(_(c[f>>2]|0,16384-(c[e>>2]|0)|0)|0)>>>15;i=d;return a|0}function Fc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;e=m+24|0;j=m+20|0;f=m+16|0;l=m+12|0;k=m+8|0;h=m+4|0;g=m;c[e>>2]=a;c[j>>2]=b;c[f>>2]=d;c[l>>2]=0;c[h>>2]=bc(c[e>>2]|0,15)|0;c[k>>2]=0;do if((c[h>>2]|0)>>>0>=(c[j>>2]|0)>>>0){c[l>>2]=(c[l>>2]|0)+1;c[k>>2]=c[j>>2];c[j>>2]=(Ec(c[j>>2]|0,c[f>>2]|0)|0)+1;while(1){if((c[j>>2]|0)>>>0>1)d=(c[h>>2]|0)>>>0>=((c[k>>2]|0)+(c[j>>2]<<1)|0)>>>0;else d=0;a=c[j>>2]|0;if(!d)break;c[j>>2]=a<<1;c[k>>2]=(c[k>>2]|0)+(c[j>>2]|0);c[j>>2]=(_((c[j>>2]|0)-2|0,c[f>>2]|0)|0)>>>15;c[j>>2]=(c[j>>2]|0)+1;c[l>>2]=(c[l>>2]|0)+1}if(a>>>0<=1){c[g>>2]=((c[h>>2]|0)-(c[k>>2]|0)|0)>>>1;c[l>>2]=(c[l>>2]|0)+(c[g>>2]|0);c[k>>2]=(c[k>>2]|0)+(c[g>>2]<<1)}if((c[h>>2]|0)>>>0<((c[k>>2]|0)+(c[j>>2]|0)|0)>>>0){c[l>>2]=0-(c[l>>2]|0);break}else{c[k>>2]=(c[k>>2]|0)+(c[j>>2]|0);break}}while(0);a=c[e>>2]|0;d=c[k>>2]|0;if(((c[k>>2]|0)+(c[j>>2]|0)|0)>>>0>=32768){k=32768;cc(a,d,k,32768);l=c[l>>2]|0;i=m;return l|0}k=(c[k>>2]|0)+(c[j>>2]|0)|0;cc(a,d,k,32768);l=c[l>>2]|0;i=m;return l|0}function Gc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=i;i=i+32|0;b=h+16|0;d=h+12|0;f=h+8|0;e=h+4|0;g=h;c[b>>2]=a;c[f>>2]=0;c[e>>2]=32-(aa(c[b>>2]|0)|0)-1>>1;c[d>>2]=1<<c[e>>2];do{c[g>>2]=(c[f>>2]<<1)+(c[d>>2]|0)<<c[e>>2];if((c[g>>2]|0)>>>0<=(c[b>>2]|0)>>>0){c[f>>2]=(c[f>>2]|0)+(c[d>>2]|0);c[b>>2]=(c[b>>2]|0)-(c[g>>2]|0)}c[d>>2]=(c[d>>2]|0)>>>1;c[e>>2]=(c[e>>2]|0)+-1}while((c[e>>2]|0)>=0);i=h;return c[f>>2]|0}function Hc(a,d,e,f,h,j,k,l){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0.0;U=i;i=i+160|0;V=U+144|0;o=U+140|0;p=U+136|0;q=U+132|0;r=U+128|0;m=U+124|0;s=U+120|0;x=U+112|0;n=U+108|0;u=U+104|0;v=U+100|0;B=U+96|0;G=U+92|0;A=U+88|0;t=U+84|0;J=U+80|0;K=U+76|0;O=U+72|0;H=U+68|0;I=U+64|0;P=U+60|0;C=U+56|0;L=U+48|0;D=U+44|0;E=U+40|0;z=U+36|0;y=U+32|0;S=U+28|0;M=U+24|0;w=U+20|0;Q=U+16|0;R=U+12|0;F=U+8|0;T=U+4|0;N=U;c[V>>2]=a;c[o>>2]=d;c[p>>2]=e;c[q>>2]=f;c[r>>2]=h;c[m>>2]=j;c[s>>2]=k;c[U+116>>2]=l;c[B>>2]=c[(c[V>>2]|0)+8+(c[m>>2]<<2)>>2];g[A>>2]=+g[(c[B>>2]|0)+4>>2];c[n>>2]=c[c[V>>2]>>2];c[G>>2]=c[(c[V>>2]|0)+24>>2];c[x>>2]=0;while(1){l=c[n>>2]>>1;if((c[x>>2]|0)>=(c[m>>2]|0))break;c[n>>2]=l;c[G>>2]=(c[G>>2]|0)+(c[n>>2]<<2);c[x>>2]=(c[x>>2]|0)+1}c[u>>2]=l;c[v>>2]=c[n>>2]>>2;d=c[u>>2]|0;c[t>>2]=ia()|0;l=i;i=i+((1*(d<<2)|0)+15&-16)|0;d=i;i=i+((1*(c[v>>2]<<3)|0)+15&-16)|0;c[J>>2]=(c[o>>2]|0)+(c[r>>2]>>1<<2);c[K>>2]=(c[o>>2]|0)+(c[u>>2]<<2)+-4+(c[r>>2]>>1<<2);c[O>>2]=l;c[H>>2]=(c[q>>2]|0)+(c[r>>2]>>1<<2);c[I>>2]=(c[q>>2]|0)+(c[r>>2]>>1<<2)+-4;c[x>>2]=0;while(1){if((c[x>>2]|0)>=((c[r>>2]|0)+3>>2|0))break;W=+g[c[I>>2]>>2]*+g[(c[J>>2]|0)+(c[u>>2]<<2)>>2]+ +g[c[H>>2]>>2]*+g[c[K>>2]>>2];V=c[O>>2]|0;c[O>>2]=V+4;g[V>>2]=W;W=+g[c[H>>2]>>2]*+g[c[J>>2]>>2]-+g[c[I>>2]>>2]*+g[(c[K>>2]|0)+(0-(c[u>>2]|0)<<2)>>2];V=c[O>>2]|0;c[O>>2]=V+4;g[V>>2]=W;c[J>>2]=(c[J>>2]|0)+8;c[K>>2]=(c[K>>2]|0)+-8;c[H>>2]=(c[H>>2]|0)+8;c[I>>2]=(c[I>>2]|0)+-8;c[x>>2]=(c[x>>2]|0)+1}c[H>>2]=c[q>>2];c[I>>2]=(c[q>>2]|0)+(c[r>>2]<<2)+-4;while(1){if((c[x>>2]|0)>=((c[v>>2]|0)-((c[r>>2]|0)+3>>2)|0))break;W=+g[c[K>>2]>>2];V=c[O>>2]|0;c[O>>2]=V+4;g[V>>2]=W;W=+g[c[J>>2]>>2];V=c[O>>2]|0;c[O>>2]=V+4;g[V>>2]=W;c[J>>2]=(c[J>>2]|0)+8;c[K>>2]=(c[K>>2]|0)+-8;c[x>>2]=(c[x>>2]|0)+1}while(1){if((c[x>>2]|0)>=(c[v>>2]|0))break;W=-(+g[c[H>>2]>>2]*+g[(c[J>>2]|0)+(0-(c[u>>2]|0)<<2)>>2])+ +g[c[I>>2]>>2]*+g[c[K>>2]>>2];V=c[O>>2]|0;c[O>>2]=V+4;g[V>>2]=W;W=+g[c[I>>2]>>2]*+g[c[J>>2]>>2]+ +g[c[H>>2]>>2]*+g[(c[K>>2]|0)+(c[u>>2]<<2)>>2];V=c[O>>2]|0;c[O>>2]=V+4;g[V>>2]=W;c[J>>2]=(c[J>>2]|0)+8;c[K>>2]=(c[K>>2]|0)+-8;c[H>>2]=(c[H>>2]|0)+8;c[I>>2]=(c[I>>2]|0)+-8;c[x>>2]=(c[x>>2]|0)+1}c[P>>2]=l;c[C>>2]=c[G>>2];c[x>>2]=0;while(1){if((c[x>>2]|0)>=(c[v>>2]|0))break;g[D>>2]=+g[(c[C>>2]|0)+(c[x>>2]<<2)>>2];g[E>>2]=+g[(c[C>>2]|0)+((c[v>>2]|0)+(c[x>>2]|0)<<2)>>2];V=c[P>>2]|0;c[P>>2]=V+4;g[z>>2]=+g[V>>2];V=c[P>>2]|0;c[P>>2]=V+4;g[y>>2]=+g[V>>2];g[S>>2]=+g[z>>2]*+g[D>>2]-+g[y>>2]*+g[E>>2];g[M>>2]=+g[y>>2]*+g[D>>2]+ +g[z>>2]*+g[E>>2];g[L>>2]=+g[S>>2];g[L+4>>2]=+g[M>>2];g[L>>2]=+g[A>>2]*+g[L>>2];g[L+4>>2]=+g[A>>2]*+g[L+4>>2];V=d+(b[(c[(c[B>>2]|0)+44>>2]|0)+(c[x>>2]<<1)>>1]<<3)|0;c[V>>2]=c[L>>2];c[V+4>>2]=c[L+4>>2];c[x>>2]=(c[x>>2]|0)+1}xc(c[B>>2]|0,d);c[w>>2]=d;c[Q>>2]=c[p>>2];c[R>>2]=(c[p>>2]|0)+((_(c[s>>2]|0,(c[u>>2]|0)-1|0)|0)<<2);c[F>>2]=c[G>>2];c[x>>2]=0;while(1){if((c[x>>2]|0)>=(c[v>>2]|0))break;g[T>>2]=+g[(c[w>>2]|0)+4>>2]*+g[(c[F>>2]|0)+((c[v>>2]|0)+(c[x>>2]|0)<<2)>>2]-+g[c[w>>2]>>2]*+g[(c[F>>2]|0)+(c[x>>2]<<2)>>2];g[N>>2]=+g[c[w>>2]>>2]*+g[(c[F>>2]|0)+((c[v>>2]|0)+(c[x>>2]|0)<<2)>>2]+ +g[(c[w>>2]|0)+4>>2]*+g[(c[F>>2]|0)+(c[x>>2]<<2)>>2];g[c[Q>>2]>>2]=+g[T>>2];g[c[R>>2]>>2]=+g[N>>2];c[w>>2]=(c[w>>2]|0)+8;c[Q>>2]=(c[Q>>2]|0)+(c[s>>2]<<1<<2);c[R>>2]=(c[R>>2]|0)+(0-(c[s>>2]<<1)<<2);c[x>>2]=(c[x>>2]|0)+1}na(c[t>>2]|0);i=U;return}function Ic(a,d,e,f,h,j,k,l){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0.0;V=i;i=i+144|0;m=V+140|0;n=V+136|0;o=V+132|0;p=V+128|0;q=V+124|0;r=V+120|0;s=V+116|0;x=V+108|0;t=V+104|0;u=V+100|0;v=V+96|0;F=V+92|0;K=V+88|0;M=V+84|0;P=V+80|0;B=V+76|0;w=V+72|0;A=V+68|0;T=V+64|0;N=V+60|0;Q=V+56|0;R=V+52|0;D=V+48|0;z=V+44|0;y=V+40|0;U=V+36|0;O=V+32|0;C=V+28|0;E=V+24|0;L=V+20|0;S=V+16|0;G=V+12|0;H=V+8|0;I=V+4|0;J=V;c[m>>2]=a;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=h;c[r>>2]=j;c[s>>2]=k;c[V+112>>2]=l;c[t>>2]=c[c[m>>2]>>2];c[F>>2]=c[(c[m>>2]|0)+24>>2];c[x>>2]=0;while(1){l=c[t>>2]>>1;if((c[x>>2]|0)>=(c[r>>2]|0))break;c[t>>2]=l;c[F>>2]=(c[F>>2]|0)+(c[t>>2]<<2);c[x>>2]=(c[x>>2]|0)+1}c[u>>2]=l;c[v>>2]=c[t>>2]>>2;c[K>>2]=c[n>>2];c[M>>2]=(c[n>>2]|0)+((_(c[s>>2]|0,(c[u>>2]|0)-1|0)|0)<<2);c[P>>2]=(c[o>>2]|0)+(c[q>>2]>>1<<2);c[B>>2]=c[F>>2];c[w>>2]=c[(c[(c[m>>2]|0)+8+(c[r>>2]<<2)>>2]|0)+44>>2];c[x>>2]=0;while(1){if((c[x>>2]|0)>=(c[v>>2]|0))break;t=c[w>>2]|0;c[w>>2]=t+2;c[A>>2]=b[t>>1];g[T>>2]=+g[c[M>>2]>>2]*+g[(c[B>>2]|0)+(c[x>>2]<<2)>>2]+ +g[c[K>>2]>>2]*+g[(c[B>>2]|0)+((c[v>>2]|0)+(c[x>>2]|0)<<2)>>2];g[N>>2]=+g[c[K>>2]>>2]*+g[(c[B>>2]|0)+(c[x>>2]<<2)>>2]-+g[c[M>>2]>>2]*+g[(c[B>>2]|0)+((c[v>>2]|0)+(c[x>>2]|0)<<2)>>2];g[(c[P>>2]|0)+((c[A>>2]<<1)+1<<2)>>2]=+g[T>>2];g[(c[P>>2]|0)+(c[A>>2]<<1<<2)>>2]=+g[N>>2];c[K>>2]=(c[K>>2]|0)+(c[s>>2]<<1<<2);c[M>>2]=(c[M>>2]|0)+(0-(c[s>>2]<<1)<<2);c[x>>2]=(c[x>>2]|0)+1}xc(c[(c[m>>2]|0)+8+(c[r>>2]<<2)>>2]|0,(c[o>>2]|0)+(c[q>>2]>>1<<2)|0);c[Q>>2]=(c[o>>2]|0)+(c[q>>2]>>1<<2);c[R>>2]=(c[o>>2]|0)+(c[q>>2]>>1<<2)+(c[u>>2]<<2)+-8;c[D>>2]=c[F>>2];c[x>>2]=0;while(1){if((c[x>>2]|0)>=((c[v>>2]|0)+1>>1|0))break;g[z>>2]=+g[(c[Q>>2]|0)+4>>2];g[y>>2]=+g[c[Q>>2]>>2];g[C>>2]=+g[(c[D>>2]|0)+(c[x>>2]<<2)>>2];g[E>>2]=+g[(c[D>>2]|0)+((c[v>>2]|0)+(c[x>>2]|0)<<2)>>2];g[U>>2]=+g[z>>2]*+g[C>>2]+ +g[y>>2]*+g[E>>2];g[O>>2]=+g[z>>2]*+g[E>>2]-+g[y>>2]*+g[C>>2];g[z>>2]=+g[(c[R>>2]|0)+4>>2];g[y>>2]=+g[c[R>>2]>>2];g[c[Q>>2]>>2]=+g[U>>2];g[(c[R>>2]|0)+4>>2]=+g[O>>2];g[C>>2]=+g[(c[D>>2]|0)+((c[v>>2]|0)-(c[x>>2]|0)-1<<2)>>2];g[E>>2]=+g[(c[D>>2]|0)+((c[u>>2]|0)-(c[x>>2]|0)-1<<2)>>2];g[U>>2]=+g[z>>2]*+g[C>>2]+ +g[y>>2]*+g[E>>2];g[O>>2]=+g[z>>2]*+g[E>>2]-+g[y>>2]*+g[C>>2];g[c[R>>2]>>2]=+g[U>>2];g[(c[Q>>2]|0)+4>>2]=+g[O>>2];c[Q>>2]=(c[Q>>2]|0)+8;c[R>>2]=(c[R>>2]|0)+-8;c[x>>2]=(c[x>>2]|0)+1}c[L>>2]=(c[o>>2]|0)+(c[q>>2]<<2)+-4;c[S>>2]=c[o>>2];c[G>>2]=c[p>>2];c[H>>2]=(c[p>>2]|0)+(c[q>>2]<<2)+-4;c[x>>2]=0;while(1){if((c[x>>2]|0)>=((c[q>>2]|0)/2|0|0))break;g[I>>2]=+g[c[L>>2]>>2];g[J>>2]=+g[c[S>>2]>>2];W=+g[c[H>>2]>>2]*+g[J>>2]-+g[c[G>>2]>>2]*+g[I>>2];U=c[S>>2]|0;c[S>>2]=U+4;g[U>>2]=W;W=+g[c[G>>2]>>2]*+g[J>>2]+ +g[c[H>>2]>>2]*+g[I>>2];U=c[L>>2]|0;c[L>>2]=U+-4;g[U>>2]=W;c[G>>2]=(c[G>>2]|0)+4;c[H>>2]=(c[H>>2]|0)+-4;c[x>>2]=(c[x>>2]|0)+1}i=V;return}function Jc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;h=l+20|0;e=l+16|0;f=l+12|0;j=l+8|0;k=l+4|0;g=l;c[e>>2]=a;c[f>>2]=b;c[j>>2]=d;c[k>>2]=0;a:while(1){if((c[k>>2]|0)>=1){e=12;break}c[g>>2]=0;while(1){if((c[g>>2]|0)>=4)break;if((c[e>>2]|0)==(c[c[5544+(c[k>>2]<<2)>>2]>>2]|0)?(c[f>>2]<<c[g>>2]|0)==(_(c[(c[5544+(c[k>>2]<<2)>>2]|0)+44>>2]|0,c[(c[5544+(c[k>>2]<<2)>>2]|0)+40>>2]|0)|0):0){e=7;break a}c[g>>2]=(c[g>>2]|0)+1}c[k>>2]=(c[k>>2]|0)+1}if((e|0)==7){if(c[j>>2]|0)c[c[j>>2]>>2]=0;c[h>>2]=c[5544+(c[k>>2]<<2)>>2];k=c[h>>2]|0;i=l;return k|0}else if((e|0)==12){if(c[j>>2]|0)c[c[j>>2]>>2]=-1;c[h>>2]=0;k=c[h>>2]|0;i=l;return k|0}return 0}function Kc(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=i;i=i+112|0;h=u+108|0;j=u+104|0;k=u+100|0;l=u+96|0;m=u+92|0;p=u+88|0;n=u+68|0;t=u+64|0;q=u+48|0;s=u+24|0;r=u+4|0;o=u;c[h>>2]=a;c[j>>2]=b;c[k>>2]=d;c[l>>2]=e;c[m>>2]=f;g[t>>2]=1.0;c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;c[s+12>>2]=0;c[s+16>>2]=0;g[o>>2]=.800000011920929;c[p>>2]=1;while(1){if((c[p>>2]|0)>=(c[k>>2]>>1|0))break;g[(c[j>>2]|0)+(c[p>>2]<<2)>>2]=((+g[(c[c[h>>2]>>2]|0)+((c[p>>2]<<1)-1<<2)>>2]+ +g[(c[c[h>>2]>>2]|0)+((c[p>>2]<<1)+1<<2)>>2])*.5+ +g[(c[c[h>>2]>>2]|0)+(c[p>>2]<<1<<2)>>2])*.5;c[p>>2]=(c[p>>2]|0)+1}g[c[j>>2]>>2]=(+g[(c[c[h>>2]>>2]|0)+4>>2]*.5+ +g[c[c[h>>2]>>2]>>2])*.5;if((c[l>>2]|0)==2){c[p>>2]=1;while(1){if((c[p>>2]|0)>=(c[k>>2]>>1|0))break;b=(c[j>>2]|0)+(c[p>>2]<<2)|0;g[b>>2]=+g[b>>2]+((+g[(c[(c[h>>2]|0)+4>>2]|0)+((c[p>>2]<<1)-1<<2)>>2]+ +g[(c[(c[h>>2]|0)+4>>2]|0)+((c[p>>2]<<1)+1<<2)>>2])*.5+ +g[(c[(c[h>>2]|0)+4>>2]|0)+(c[p>>2]<<1<<2)>>2])*.5;c[p>>2]=(c[p>>2]|0)+1}b=c[j>>2]|0;g[b>>2]=+g[b>>2]+(+g[(c[(c[h>>2]|0)+4>>2]|0)+4>>2]*.5+ +g[c[(c[h>>2]|0)+4>>2]>>2])*.5}Yc(c[j>>2]|0,n,0,0,4,c[k>>2]>>1,c[m>>2]|0)|0;g[n>>2]=+g[n>>2]*1.000100016593933;c[p>>2]=1;while(1){if((c[p>>2]|0)>4)break;b=n+(c[p>>2]<<2)|0;g[b>>2]=+g[b>>2]-+g[n+(c[p>>2]<<2)>>2]*(+(c[p>>2]|0)*.00800000037997961)*(+(c[p>>2]|0)*.00800000037997961);c[p>>2]=(c[p>>2]|0)+1}Uc(q,n,4);c[p>>2]=0;while(1){if((c[p>>2]|0)>=4)break;g[t>>2]=+g[t>>2]*.8999999761581421;g[q+(c[p>>2]<<2)>>2]=+g[q+(c[p>>2]<<2)>>2]*+g[t>>2];c[p>>2]=(c[p>>2]|0)+1}g[r>>2]=+g[q>>2]+.800000011920929;g[r+4>>2]=+g[q+4>>2]+ +g[o>>2]*+g[q>>2];g[r+8>>2]=+g[q+8>>2]+ +g[o>>2]*+g[q+4>>2];g[r+12>>2]=+g[q+12>>2]+ +g[o>>2]*+g[q+8>>2];g[r+16>>2]=+g[o>>2]*+g[q+12>>2];Lc(c[j>>2]|0,r,c[j>>2]|0,c[k>>2]>>1,s);i=u;return}function Lc(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;y=i;i=i+80|0;h=y+64|0;z=y+60|0;j=y+56|0;k=y+52|0;l=y+48|0;m=y+44|0;s=y+40|0;t=y+36|0;u=y+32|0;v=y+28|0;w=y+24|0;n=y+20|0;o=y+16|0;p=y+12|0;q=y+8|0;r=y+4|0;x=y;c[h>>2]=a;c[z>>2]=b;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;g[s>>2]=+g[c[z>>2]>>2];g[t>>2]=+g[(c[z>>2]|0)+4>>2];g[u>>2]=+g[(c[z>>2]|0)+8>>2];g[v>>2]=+g[(c[z>>2]|0)+12>>2];g[w>>2]=+g[(c[z>>2]|0)+16>>2];g[n>>2]=+g[c[l>>2]>>2];g[o>>2]=+g[(c[l>>2]|0)+4>>2];g[p>>2]=+g[(c[l>>2]|0)+8>>2];g[q>>2]=+g[(c[l>>2]|0)+12>>2];g[r>>2]=+g[(c[l>>2]|0)+16>>2];c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[k>>2]|0))break;g[x>>2]=+g[(c[h>>2]|0)+(c[m>>2]<<2)>>2];g[x>>2]=+g[x>>2]+ +g[s>>2]*+g[n>>2];g[x>>2]=+g[x>>2]+ +g[t>>2]*+g[o>>2];g[x>>2]=+g[x>>2]+ +g[u>>2]*+g[p>>2];g[x>>2]=+g[x>>2]+ +g[v>>2]*+g[q>>2];g[x>>2]=+g[x>>2]+ +g[w>>2]*+g[r>>2];g[r>>2]=+g[q>>2];g[q>>2]=+g[p>>2];g[p>>2]=+g[o>>2];g[o>>2]=+g[n>>2];g[n>>2]=+g[(c[h>>2]|0)+(c[m>>2]<<2)>>2];g[(c[j>>2]|0)+(c[m>>2]<<2)>>2]=+g[x>>2];c[m>>2]=(c[m>>2]|0)+1}g[c[l>>2]>>2]=+g[n>>2];g[(c[l>>2]|0)+4>>2]=+g[o>>2];g[(c[l>>2]|0)+8>>2]=+g[p>>2];g[(c[l>>2]|0)+12>>2]=+g[q>>2];g[(c[l>>2]|0)+16>>2]=+g[r>>2];i=y;return}function Mc(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+64|0;j=r+48|0;k=r+44|0;l=r+40|0;m=r+36|0;n=r+32|0;o=r+24|0;p=r+8|0;q=r;c[j>>2]=a;c[k>>2]=b;c[l>>2]=d;c[m>>2]=e;c[n>>2]=f;c[r+28>>2]=h;c[o>>2]=0;while(1){if((c[o>>2]|0)>=((c[n>>2]|0)-3|0))break;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;Nc(c[j>>2]|0,(c[k>>2]|0)+(c[o>>2]<<2)|0,p,c[m>>2]|0);g[(c[l>>2]|0)+(c[o>>2]<<2)>>2]=+g[p>>2];g[(c[l>>2]|0)+((c[o>>2]|0)+1<<2)>>2]=+g[p+4>>2];g[(c[l>>2]|0)+((c[o>>2]|0)+2<<2)>>2]=+g[p+8>>2];g[(c[l>>2]|0)+((c[o>>2]|0)+3<<2)>>2]=+g[p+12>>2];c[o>>2]=(c[o>>2]|0)+4}while(1){if((c[o>>2]|0)>=(c[n>>2]|0))break;g[q>>2]=+Oc(c[j>>2]|0,(c[k>>2]|0)+(c[o>>2]<<2)|0,c[m>>2]|0);g[(c[l>>2]|0)+(c[o>>2]<<2)>>2]=+g[q>>2];c[o>>2]=(c[o>>2]|0)+1}i=r;return}function Nc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=i;i=i+64|0;f=u+48|0;h=u+44|0;j=u+40|0;k=u+36|0;l=u+32|0;q=u+28|0;r=u+24|0;s=u+20|0;t=u+16|0;m=u+12|0;n=u+8|0;o=u+4|0;p=u;c[f>>2]=a;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;g[t>>2]=0.0;b=c[h>>2]|0;c[h>>2]=b+4;g[q>>2]=+g[b>>2];b=c[h>>2]|0;c[h>>2]=b+4;g[r>>2]=+g[b>>2];b=c[h>>2]|0;c[h>>2]=b+4;g[s>>2]=+g[b>>2];c[l>>2]=0;while(1){if((c[l>>2]|0)>=((c[k>>2]|0)-3|0))break;b=c[f>>2]|0;c[f>>2]=b+4;g[m>>2]=+g[b>>2];b=c[h>>2]|0;c[h>>2]=b+4;g[t>>2]=+g[b>>2];g[c[j>>2]>>2]=+g[c[j>>2]>>2]+ +g[m>>2]*+g[q>>2];g[(c[j>>2]|0)+4>>2]=+g[(c[j>>2]|0)+4>>2]+ +g[m>>2]*+g[r>>2];g[(c[j>>2]|0)+8>>2]=+g[(c[j>>2]|0)+8>>2]+ +g[m>>2]*+g[s>>2];g[(c[j>>2]|0)+12>>2]=+g[(c[j>>2]|0)+12>>2]+ +g[m>>2]*+g[t>>2];b=c[f>>2]|0;c[f>>2]=b+4;g[m>>2]=+g[b>>2];b=c[h>>2]|0;c[h>>2]=b+4;g[q>>2]=+g[b>>2];g[c[j>>2]>>2]=+g[c[j>>2]>>2]+ +g[m>>2]*+g[r>>2];g[(c[j>>2]|0)+4>>2]=+g[(c[j>>2]|0)+4>>2]+ +g[m>>2]*+g[s>>2];g[(c[j>>2]|0)+8>>2]=+g[(c[j>>2]|0)+8>>2]+ +g[m>>2]*+g[t>>2];g[(c[j>>2]|0)+12>>2]=+g[(c[j>>2]|0)+12>>2]+ +g[m>>2]*+g[q>>2];b=c[f>>2]|0;c[f>>2]=b+4;g[m>>2]=+g[b>>2];b=c[h>>2]|0;c[h>>2]=b+4;g[r>>2]=+g[b>>2];g[c[j>>2]>>2]=+g[c[j>>2]>>2]+ +g[m>>2]*+g[s>>2];g[(c[j>>2]|0)+4>>2]=+g[(c[j>>2]|0)+4>>2]+ +g[m>>2]*+g[t>>2];g[(c[j>>2]|0)+8>>2]=+g[(c[j>>2]|0)+8>>2]+ +g[m>>2]*+g[q>>2];g[(c[j>>2]|0)+12>>2]=+g[(c[j>>2]|0)+12>>2]+ +g[m>>2]*+g[r>>2];b=c[f>>2]|0;c[f>>2]=b+4;g[m>>2]=+g[b>>2];b=c[h>>2]|0;c[h>>2]=b+4;g[s>>2]=+g[b>>2];g[c[j>>2]>>2]=+g[c[j>>2]>>2]+ +g[m>>2]*+g[t>>2];g[(c[j>>2]|0)+4>>2]=+g[(c[j>>2]|0)+4>>2]+ +g[m>>2]*+g[q>>2];g[(c[j>>2]|0)+8>>2]=+g[(c[j>>2]|0)+8>>2]+ +g[m>>2]*+g[r>>2];g[(c[j>>2]|0)+12>>2]=+g[(c[j>>2]|0)+12>>2]+ +g[m>>2]*+g[s>>2];c[l>>2]=(c[l>>2]|0)+4}b=c[l>>2]|0;c[l>>2]=b+1;if((b|0)<(c[k>>2]|0)){b=c[f>>2]|0;c[f>>2]=b+4;g[n>>2]=+g[b>>2];b=c[h>>2]|0;c[h>>2]=b+4;g[t>>2]=+g[b>>2];g[c[j>>2]>>2]=+g[c[j>>2]>>2]+ +g[n>>2]*+g[q>>2];g[(c[j>>2]|0)+4>>2]=+g[(c[j>>2]|0)+4>>2]+ +g[n>>2]*+g[r>>2];g[(c[j>>2]|0)+8>>2]=+g[(c[j>>2]|0)+8>>2]+ +g[n>>2]*+g[s>>2];g[(c[j>>2]|0)+12>>2]=+g[(c[j>>2]|0)+12>>2]+ +g[n>>2]*+g[t>>2]}b=c[l>>2]|0;c[l>>2]=b+1;if((b|0)<(c[k>>2]|0)){b=c[f>>2]|0;c[f>>2]=b+4;g[o>>2]=+g[b>>2];b=c[h>>2]|0;c[h>>2]=b+4;g[q>>2]=+g[b>>2];g[c[j>>2]>>2]=+g[c[j>>2]>>2]+ +g[o>>2]*+g[r>>2];g[(c[j>>2]|0)+4>>2]=+g[(c[j>>2]|0)+4>>2]+ +g[o>>2]*+g[s>>2];g[(c[j>>2]|0)+8>>2]=+g[(c[j>>2]|0)+8>>2]+ +g[o>>2]*+g[t>>2];g[(c[j>>2]|0)+12>>2]=+g[(c[j>>2]|0)+12>>2]+ +g[o>>2]*+g[q>>2]}if((c[l>>2]|0)>=(c[k>>2]|0)){i=u;return}b=c[f>>2]|0;c[f>>2]=b+4;g[p>>2]=+g[b>>2];b=c[h>>2]|0;c[h>>2]=b+4;g[r>>2]=+g[b>>2];g[c[j>>2]>>2]=+g[c[j>>2]>>2]+ +g[p>>2]*+g[s>>2];g[(c[j>>2]|0)+4>>2]=+g[(c[j>>2]|0)+4>>2]+ +g[p>>2]*+g[t>>2];g[(c[j>>2]|0)+8>>2]=+g[(c[j>>2]|0)+8>>2]+ +g[p>>2]*+g[q>>2];g[(c[j>>2]|0)+12>>2]=+g[(c[j>>2]|0)+12>>2]+ +g[p>>2]*+g[r>>2];i=u;return}function Oc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;f=m+16|0;h=m+12|0;j=m+8|0;k=m+4|0;l=m;c[f>>2]=a;c[h>>2]=b;c[j>>2]=d;g[l>>2]=0.0;c[k>>2]=0;while(1){e=+g[l>>2];if((c[k>>2]|0)>=(c[j>>2]|0))break;g[l>>2]=e+ +g[(c[f>>2]|0)+(c[k>>2]<<2)>>2]*+g[(c[h>>2]|0)+(c[k>>2]<<2)>>2];c[k>>2]=(c[k>>2]|0)+1}i=m;return +e}function Pc(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=i;i=i+80|0;j=z+64|0;k=z+60|0;l=z+56|0;m=z+52|0;n=z+48|0;o=z+44|0;u=z+40|0;v=z+36|0;w=z+32|0;s=z+24|0;x=z+20|0;p=z+16|0;y=z+12|0;q=z+8|0;r=z+4|0;t=z;c[j>>2]=a;c[k>>2]=b;c[l>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=h;c[s>>2]=0;c[s+4>>2]=0;c[w>>2]=(c[l>>2]|0)+(c[m>>2]|0);d=c[l>>2]>>2;c[p>>2]=ia()|0;h=i;i=i+((1*(d<<2)|0)+15&-16)|0;d=i;i=i+((1*(c[w>>2]>>2<<2)|0)+15&-16)|0;e=i;i=i+((1*(c[m>>2]>>1<<2)|0)+15&-16)|0;c[v>>2]=0;while(1){if((c[v>>2]|0)>=(c[l>>2]>>2|0))break;g[h+(c[v>>2]<<2)>>2]=+g[(c[j>>2]|0)+(c[v>>2]<<1<<2)>>2];c[v>>2]=(c[v>>2]|0)+1}c[v>>2]=0;while(1){if((c[v>>2]|0)>=(c[w>>2]>>2|0))break;g[d+(c[v>>2]<<2)>>2]=+g[(c[k>>2]|0)+(c[v>>2]<<1<<2)>>2];c[v>>2]=(c[v>>2]|0)+1}Mc(h,d,e,c[l>>2]>>2,c[m>>2]>>2,c[o>>2]|0);Qc(e,d,c[l>>2]>>2,c[m>>2]>>2,s);c[u>>2]=0;while(1){if((c[u>>2]|0)>=(c[m>>2]>>1|0))break;g[e+(c[u>>2]<<2)>>2]=0.0;if(!((N((c[u>>2]|0)-(c[s>>2]<<1)|0)|0)>2?(N((c[u>>2]|0)-(c[s+4>>2]<<1)|0)|0)>2:0)){g[y>>2]=+Oc(c[j>>2]|0,(c[k>>2]|0)+(c[u>>2]<<2)|0,c[l>>2]>>1);g[e+(c[u>>2]<<2)>>2]=-1.0>+g[y>>2]?-1.0:+g[y>>2]}c[u>>2]=(c[u>>2]|0)+1}Qc(e,c[k>>2]|0,c[l>>2]>>1,c[m>>2]>>1,s);if((c[s>>2]|0)>0?(c[s>>2]|0)<((c[m>>2]>>1)-1|0):0){g[q>>2]=+g[e+((c[s>>2]|0)-1<<2)>>2];g[r>>2]=+g[e+(c[s>>2]<<2)>>2];g[t>>2]=+g[e+((c[s>>2]|0)+1<<2)>>2];if(+g[t>>2]-+g[q>>2]>(+g[r>>2]-+g[q>>2])*.699999988079071){c[x>>2]=1;y=c[s>>2]|0;y=y<<1;x=c[x>>2]|0;x=y-x|0;y=c[n>>2]|0;c[y>>2]=x;y=c[p>>2]|0;na(y|0);i=z;return}if(+g[q>>2]-+g[t>>2]>(+g[r>>2]-+g[t>>2])*.699999988079071){c[x>>2]=-1;y=c[s>>2]|0;y=y<<1;x=c[x>>2]|0;x=y-x|0;y=c[n>>2]|0;c[y>>2]=x;y=c[p>>2]|0;na(y|0);i=z;return}else{c[x>>2]=0;y=c[s>>2]|0;y=y<<1;x=c[x>>2]|0;x=y-x|0;y=c[n>>2]|0;c[y>>2]=x;y=c[p>>2]|0;na(y|0);i=z;return}}c[x>>2]=0;y=c[s>>2]|0;y=y<<1;x=c[x>>2]|0;x=y-x|0;y=c[n>>2]|0;c[y>>2]=x;y=c[p>>2]|0;na(y|0);i=z;return}function Qc(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=i;i=i+64|0;h=u+52|0;j=u+48|0;k=u+44|0;l=u+40|0;m=u+36|0;q=u+32|0;r=u+28|0;n=u+24|0;p=u+16|0;o=u+8|0;s=u+4|0;t=u;c[h>>2]=a;c[j>>2]=b;c[k>>2]=d;c[l>>2]=e;c[m>>2]=f;g[n>>2]=1.0;g[p>>2]=-1.0;g[p+4>>2]=-1.0;g[o>>2]=0.0;g[o+4>>2]=0.0;c[c[m>>2]>>2]=0;c[(c[m>>2]|0)+4>>2]=1;c[r>>2]=0;while(1){if((c[r>>2]|0)>=(c[k>>2]|0))break;g[n>>2]=+g[n>>2]+ +g[(c[j>>2]|0)+(c[r>>2]<<2)>>2]*+g[(c[j>>2]|0)+(c[r>>2]<<2)>>2];c[r>>2]=(c[r>>2]|0)+1}c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[l>>2]|0))break;do if(+g[(c[h>>2]|0)+(c[q>>2]<<2)>>2]>0.0?(g[t>>2]=+g[(c[h>>2]|0)+(c[q>>2]<<2)>>2],g[t>>2]=+g[t>>2]*9.999999960041972e-13,g[s>>2]=+g[t>>2]*+g[t>>2],+g[s>>2]*+g[o+4>>2]>+g[p+4>>2]*+g[n>>2]):0)if(+g[s>>2]*+g[o>>2]>+g[p>>2]*+g[n>>2]){g[p+4>>2]=+g[p>>2];g[o+4>>2]=+g[o>>2];c[(c[m>>2]|0)+4>>2]=c[c[m>>2]>>2];g[p>>2]=+g[s>>2];g[o>>2]=+g[n>>2];c[c[m>>2]>>2]=c[q>>2];break}else{g[p+4>>2]=+g[s>>2];g[o+4>>2]=+g[n>>2];c[(c[m>>2]|0)+4>>2]=c[q>>2];break}while(0);g[n>>2]=+g[n>>2]+(+g[(c[j>>2]|0)+((c[q>>2]|0)+(c[k>>2]|0)<<2)>>2]*+g[(c[j>>2]|0)+((c[q>>2]|0)+(c[k>>2]|0)<<2)>>2]-+g[(c[j>>2]|0)+(c[q>>2]<<2)>>2]*+g[(c[j>>2]|0)+(c[q>>2]<<2)>>2]);g[n>>2]=1.0>+g[n>>2]?1.0:+g[n>>2];c[q>>2]=(c[q>>2]|0)+1}i=u;return}function Rc(a,b,d,e,f,h,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=+j;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,P=0,Q=0;Q=i;i=i+128|0;m=Q+124|0;n=Q+120|0;o=Q+116|0;p=Q+112|0;q=Q+108|0;r=Q+104|0;s=Q+100|0;E=Q+92|0;l=Q+88|0;u=Q+84|0;v=Q+80|0;B=Q+76|0;C=Q+72|0;H=Q+68|0;L=Q+64|0;K=Q+60|0;P=Q+56|0;M=Q+52|0;J=Q+40|0;y=Q+36|0;z=Q+32|0;G=Q+28|0;F=Q+24|0;t=Q+20|0;w=Q+16|0;x=Q+12|0;D=Q+8|0;A=Q+4|0;I=Q;c[m>>2]=a;c[n>>2]=b;c[o>>2]=d;c[p>>2]=e;c[q>>2]=f;c[r>>2]=h;g[s>>2]=j;c[Q+96>>2]=k;c[F>>2]=c[o>>2];c[n>>2]=(c[n>>2]|0)/2|0;c[o>>2]=(c[o>>2]|0)/2|0;a=c[q>>2]|0;c[a>>2]=(c[a>>2]|0)/2|0;c[r>>2]=(c[r>>2]|0)/2|0;c[p>>2]=(c[p>>2]|0)/2|0;c[m>>2]=(c[m>>2]|0)+(c[n>>2]<<2);if((c[c[q>>2]>>2]|0)>=(c[n>>2]|0))c[c[q>>2]>>2]=(c[n>>2]|0)-1;a=c[c[q>>2]>>2]|0;c[v>>2]=a;c[u>>2]=a;a=(c[n>>2]|0)+1|0;c[t>>2]=ia()|0;f=i;i=i+((1*(a<<2)|0)+15&-16)|0;Sc(c[m>>2]|0,c[m>>2]|0,(c[m>>2]|0)+(0-(c[v>>2]|0)<<2)|0,c[p>>2]|0,K,L);g[f>>2]=+g[K>>2];g[P>>2]=+g[K>>2];c[l>>2]=1;while(1){if((c[l>>2]|0)>(c[n>>2]|0))break;g[P>>2]=+g[P>>2]+ +g[(c[m>>2]|0)+(0-(c[l>>2]|0)<<2)>>2]*+g[(c[m>>2]|0)+(0-(c[l>>2]|0)<<2)>>2]-+g[(c[m>>2]|0)+((c[p>>2]|0)-(c[l>>2]|0)<<2)>>2]*+g[(c[m>>2]|0)+((c[p>>2]|0)-(c[l>>2]|0)<<2)>>2];g[f+(c[l>>2]<<2)>>2]=0.0>+g[P>>2]?0.0:+g[P>>2];c[l>>2]=(c[l>>2]|0)+1}g[P>>2]=+g[f+(c[v>>2]<<2)>>2];g[y>>2]=+g[L>>2];g[z>>2]=+g[P>>2];j=+g[L>>2]/+O(+(+g[K>>2]*+g[P>>2]+1.0));g[C>>2]=j;g[B>>2]=j;c[E>>2]=2;while(1){if((c[E>>2]|0)>15)break;g[A>>2]=0.0;c[w>>2]=Tc((c[v>>2]<<1)+(c[E>>2]|0)|0,c[E>>2]<<1)|0;if((c[w>>2]|0)<(c[o>>2]|0))break;do if((c[E>>2]|0)==2){e=c[v>>2]|0;if(((c[w>>2]|0)+(c[v>>2]|0)|0)>(c[n>>2]|0)){c[x>>2]=e;break}else{c[x>>2]=e+(c[w>>2]|0);break}}else{l=_(c[17400+(c[E>>2]<<2)>>2]<<1,c[v>>2]|0)|0;c[x>>2]=Tc(l+(c[E>>2]|0)|0,c[E>>2]<<1)|0}while(0);Sc(c[m>>2]|0,(c[m>>2]|0)+(0-(c[w>>2]|0)<<2)|0,(c[m>>2]|0)+(0-(c[x>>2]|0)<<2)|0,c[p>>2]|0,L,M);g[L>>2]=+g[L>>2]+ +g[M>>2];g[P>>2]=+g[f+(c[w>>2]<<2)>>2]+ +g[f+(c[x>>2]<<2)>>2];g[D>>2]=+g[L>>2]/+O(+(+g[K>>2]*2.0*1.0*+g[P>>2]+1.0));do if((N((c[w>>2]|0)-(c[r>>2]|0)|0)|0)<=1)g[A>>2]=+g[s>>2];else{if((N((c[w>>2]|0)-(c[r>>2]|0)|0)|0)<=2?(l=_((c[E>>2]|0)*5|0,c[E>>2]|0)|0,(l|0)<(c[v>>2]|0)):0){g[A>>2]=+g[s>>2]*.5;break}g[A>>2]=0.0}while(0);if(.30000001192092896>+g[C>>2]*.699999988079071-+g[A>>2])j=.30000001192092896;else j=+g[C>>2]*.699999988079071-+g[A>>2];g[I>>2]=j;if((c[w>>2]|0)>=((c[o>>2]|0)*3|0)){if((c[w>>2]|0)<(c[o>>2]<<1|0)){if(.5>+g[C>>2]*.8999999761581421-+g[A>>2])j=.5;else j=+g[C>>2]*.8999999761581421-+g[A>>2];g[I>>2]=j}}else{if(.4000000059604645>+g[C>>2]*.8500000238418579-+g[A>>2])j=.4000000059604645;else j=+g[C>>2]*.8500000238418579-+g[A>>2];g[I>>2]=j}if(+g[D>>2]>+g[I>>2]){g[y>>2]=+g[L>>2];g[z>>2]=+g[P>>2];c[u>>2]=c[w>>2];g[B>>2]=+g[D>>2]}c[E>>2]=(c[E>>2]|0)+1}g[y>>2]=0.0>+g[y>>2]?0.0:+g[y>>2];if(+g[z>>2]<=+g[y>>2])g[H>>2]=1.0;else g[H>>2]=+g[y>>2]/(+g[z>>2]+1.0);c[E>>2]=0;while(1){if((c[E>>2]|0)>=3)break;j=+Oc(c[m>>2]|0,(c[m>>2]|0)+(0-((c[u>>2]|0)+(c[E>>2]|0)-1)<<2)|0,c[p>>2]|0);g[J+(c[E>>2]<<2)>>2]=j;c[E>>2]=(c[E>>2]|0)+1}do if(!(+g[J+8>>2]-+g[J>>2]>(+g[J+4>>2]-+g[J>>2])*.699999988079071))if(+g[J>>2]-+g[J+8>>2]>(+g[J+4>>2]-+g[J+8>>2])*.699999988079071){c[G>>2]=-1;break}else{c[G>>2]=0;break}else c[G>>2]=1;while(0);if(+g[H>>2]>+g[B>>2])g[H>>2]=+g[B>>2];c[c[q>>2]>>2]=(c[u>>2]<<1)+(c[G>>2]|0);if((c[c[q>>2]>>2]|0)>=(c[F>>2]|0)){j=+g[H>>2];P=c[t>>2]|0;na(P|0);i=Q;return +j}c[c[q>>2]>>2]=c[F>>2];j=+g[H>>2];P=c[t>>2]|0;na(P|0);i=Q;return +j}function Sc(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+48|0;k=t+32|0;l=t+28|0;m=t+24|0;n=t+20|0;o=t+16|0;p=t+12|0;q=t+8|0;r=t+4|0;s=t;c[k>>2]=a;c[l>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=h;g[r>>2]=0.0;g[s>>2]=0.0;c[q>>2]=0;while(1){j=+g[r>>2];if((c[q>>2]|0)>=(c[n>>2]|0))break;g[r>>2]=j+ +g[(c[k>>2]|0)+(c[q>>2]<<2)>>2]*+g[(c[l>>2]|0)+(c[q>>2]<<2)>>2];g[s>>2]=+g[s>>2]+ +g[(c[k>>2]|0)+(c[q>>2]<<2)>>2]*+g[(c[m>>2]|0)+(c[q>>2]<<2)>>2];c[q>>2]=(c[q>>2]|0)+1}g[c[o>>2]>>2]=j;g[c[p>>2]>>2]=+g[s>>2];i=t;return}function Tc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f+4|0;d=f;c[e>>2]=a;c[d>>2]=b;i=f;return ((c[e>>2]|0)>>>0)/((c[d>>2]|0)>>>0)|0|0}function Uc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;q=i;i=i+48|0;r=q+40|0;e=q+36|0;f=q+32|0;j=q+28|0;k=q+24|0;m=q+20|0;h=q+16|0;l=q+12|0;n=q+8|0;o=q+4|0;p=q;c[r>>2]=a;c[e>>2]=b;c[f>>2]=d;g[h>>2]=+g[c[e>>2]>>2];c[l>>2]=c[r>>2];c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[f>>2]|0))break;g[(c[l>>2]|0)+(c[j>>2]<<2)>>2]=0.0;c[j>>2]=(c[j>>2]|0)+1}if(!(+g[c[e>>2]>>2]!=0.0)){i=q;return}c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[f>>2]|0)){e=15;break}g[n>>2]=0.0;c[k>>2]=0;while(1){if((c[k>>2]|0)>=(c[j>>2]|0))break;g[n>>2]=+g[n>>2]+ +g[(c[l>>2]|0)+(c[k>>2]<<2)>>2]*+g[(c[e>>2]|0)+((c[j>>2]|0)-(c[k>>2]|0)<<2)>>2];c[k>>2]=(c[k>>2]|0)+1}g[n>>2]=+g[n>>2]+ +g[(c[e>>2]|0)+((c[j>>2]|0)+1<<2)>>2];g[m>>2]=-(+g[n>>2]/+g[h>>2]);g[(c[l>>2]|0)+(c[j>>2]<<2)>>2]=+g[m>>2];c[k>>2]=0;while(1){if((c[k>>2]|0)>=((c[j>>2]|0)+1>>1|0))break;g[o>>2]=+g[(c[l>>2]|0)+(c[k>>2]<<2)>>2];g[p>>2]=+g[(c[l>>2]|0)+((c[j>>2]|0)-1-(c[k>>2]|0)<<2)>>2];g[(c[l>>2]|0)+(c[k>>2]<<2)>>2]=+g[o>>2]+ +g[m>>2]*+g[p>>2];g[(c[l>>2]|0)+((c[j>>2]|0)-1-(c[k>>2]|0)<<2)>>2]=+g[p>>2]+ +g[m>>2]*+g[o>>2];c[k>>2]=(c[k>>2]|0)+1}g[h>>2]=+g[h>>2]-+g[m>>2]*+g[m>>2]*+g[h>>2];if(+g[h>>2]<+g[c[e>>2]>>2]*1.0000000474974513e-03){e=15;break}c[j>>2]=(c[j>>2]|0)+1}if((e|0)==15){i=q;return}}function Vc(a,b,d,e,f,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=i;i=i+64|0;k=v+60|0;l=v+56|0;m=v+52|0;n=v+48|0;o=v+44|0;p=v+40|0;r=v+32|0;s=v+28|0;q=v+24|0;t=v+8|0;u=v;c[k>>2]=a;c[l>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=h;c[v+36>>2]=j;a=c[o>>2]|0;c[q>>2]=ia()|0;e=i;i=i+((1*(a<<2)|0)+15&-16)|0;a=i;i=i+((1*((c[n>>2]|0)+(c[o>>2]|0)<<2)|0)+15&-16)|0;c[r>>2]=0;while(1){if((c[r>>2]|0)>=(c[o>>2]|0))break;g[e+(c[r>>2]<<2)>>2]=+g[(c[l>>2]|0)+((c[o>>2]|0)-(c[r>>2]|0)-1<<2)>>2];c[r>>2]=(c[r>>2]|0)+1}c[r>>2]=0;while(1){if((c[r>>2]|0)>=(c[o>>2]|0))break;g[a+(c[r>>2]<<2)>>2]=+g[(c[p>>2]|0)+((c[o>>2]|0)-(c[r>>2]|0)-1<<2)>>2];c[r>>2]=(c[r>>2]|0)+1}c[r>>2]=0;while(1){if((c[r>>2]|0)>=(c[n>>2]|0))break;g[a+((c[r>>2]|0)+(c[o>>2]|0)<<2)>>2]=+g[(c[k>>2]|0)+(c[r>>2]<<2)>>2];c[r>>2]=(c[r>>2]|0)+1}c[r>>2]=0;while(1){if((c[r>>2]|0)>=(c[o>>2]|0))break;g[(c[p>>2]|0)+(c[r>>2]<<2)>>2]=+g[(c[k>>2]|0)+((c[n>>2]|0)-(c[r>>2]|0)-1<<2)>>2];c[r>>2]=(c[r>>2]|0)+1}c[r>>2]=0;while(1){if((c[r>>2]|0)>=((c[n>>2]|0)-3|0))break;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;c[t+12>>2]=0;Wc(e,a+(c[r>>2]<<2)|0,t,c[o>>2]|0);g[(c[m>>2]|0)+(c[r>>2]<<2)>>2]=+g[(c[k>>2]|0)+(c[r>>2]<<2)>>2]+ +g[t>>2];g[(c[m>>2]|0)+((c[r>>2]|0)+1<<2)>>2]=+g[(c[k>>2]|0)+((c[r>>2]|0)+1<<2)>>2]+ +g[t+4>>2];g[(c[m>>2]|0)+((c[r>>2]|0)+2<<2)>>2]=+g[(c[k>>2]|0)+((c[r>>2]|0)+2<<2)>>2]+ +g[t+8>>2];g[(c[m>>2]|0)+((c[r>>2]|0)+3<<2)>>2]=+g[(c[k>>2]|0)+((c[r>>2]|0)+3<<2)>>2]+ +g[t+12>>2];c[r>>2]=(c[r>>2]|0)+4}while(1){if((c[r>>2]|0)>=(c[n>>2]|0))break;g[u>>2]=0.0;c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[o>>2]|0))break;g[u>>2]=+g[u>>2]+ +g[e+(c[s>>2]<<2)>>2]*+g[a+((c[r>>2]|0)+(c[s>>2]|0)<<2)>>2];c[s>>2]=(c[s>>2]|0)+1}g[(c[m>>2]|0)+(c[r>>2]<<2)>>2]=+g[(c[k>>2]|0)+(c[r>>2]<<2)>>2]+ +g[u>>2];c[r>>2]=(c[r>>2]|0)+1}na(c[q>>2]|0);i=v;return}function Wc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=i;i=i+64|0;f=u+48|0;h=u+44|0;j=u+40|0;k=u+36|0;l=u+32|0;q=u+28|0;r=u+24|0;s=u+20|0;t=u+16|0;m=u+12|0;n=u+8|0;o=u+4|0;p=u;c[f>>2]=a;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;g[t>>2]=0.0;b=c[h>>2]|0;c[h>>2]=b+4;g[q>>2]=+g[b>>2];b=c[h>>2]|0;c[h>>2]=b+4;g[r>>2]=+g[b>>2];b=c[h>>2]|0;c[h>>2]=b+4;g[s>>2]=+g[b>>2];c[l>>2]=0;while(1){if((c[l>>2]|0)>=((c[k>>2]|0)-3|0))break;b=c[f>>2]|0;c[f>>2]=b+4;g[m>>2]=+g[b>>2];b=c[h>>2]|0;c[h>>2]=b+4;g[t>>2]=+g[b>>2];g[c[j>>2]>>2]=+g[c[j>>2]>>2]+ +g[m>>2]*+g[q>>2];g[(c[j>>2]|0)+4>>2]=+g[(c[j>>2]|0)+4>>2]+ +g[m>>2]*+g[r>>2];g[(c[j>>2]|0)+8>>2]=+g[(c[j>>2]|0)+8>>2]+ +g[m>>2]*+g[s>>2];g[(c[j>>2]|0)+12>>2]=+g[(c[j>>2]|0)+12>>2]+ +g[m>>2]*+g[t>>2];b=c[f>>2]|0;c[f>>2]=b+4;g[m>>2]=+g[b>>2];b=c[h>>2]|0;c[h>>2]=b+4;g[q>>2]=+g[b>>2];g[c[j>>2]>>2]=+g[c[j>>2]>>2]+ +g[m>>2]*+g[r>>2];g[(c[j>>2]|0)+4>>2]=+g[(c[j>>2]|0)+4>>2]+ +g[m>>2]*+g[s>>2];g[(c[j>>2]|0)+8>>2]=+g[(c[j>>2]|0)+8>>2]+ +g[m>>2]*+g[t>>2];g[(c[j>>2]|0)+12>>2]=+g[(c[j>>2]|0)+12>>2]+ +g[m>>2]*+g[q>>2];b=c[f>>2]|0;c[f>>2]=b+4;g[m>>2]=+g[b>>2];b=c[h>>2]|0;c[h>>2]=b+4;g[r>>2]=+g[b>>2];g[c[j>>2]>>2]=+g[c[j>>2]>>2]+ +g[m>>2]*+g[s>>2];g[(c[j>>2]|0)+4>>2]=+g[(c[j>>2]|0)+4>>2]+ +g[m>>2]*+g[t>>2];g[(c[j>>2]|0)+8>>2]=+g[(c[j>>2]|0)+8>>2]+ +g[m>>2]*+g[q>>2];g[(c[j>>2]|0)+12>>2]=+g[(c[j>>2]|0)+12>>2]+ +g[m>>2]*+g[r>>2];b=c[f>>2]|0;c[f>>2]=b+4;g[m>>2]=+g[b>>2];b=c[h>>2]|0;c[h>>2]=b+4;g[s>>2]=+g[b>>2];g[c[j>>2]>>2]=+g[c[j>>2]>>2]+ +g[m>>2]*+g[t>>2];g[(c[j>>2]|0)+4>>2]=+g[(c[j>>2]|0)+4>>2]+ +g[m>>2]*+g[q>>2];g[(c[j>>2]|0)+8>>2]=+g[(c[j>>2]|0)+8>>2]+ +g[m>>2]*+g[r>>2];g[(c[j>>2]|0)+12>>2]=+g[(c[j>>2]|0)+12>>2]+ +g[m>>2]*+g[s>>2];c[l>>2]=(c[l>>2]|0)+4}b=c[l>>2]|0;c[l>>2]=b+1;if((b|0)<(c[k>>2]|0)){b=c[f>>2]|0;c[f>>2]=b+4;g[n>>2]=+g[b>>2];b=c[h>>2]|0;c[h>>2]=b+4;g[t>>2]=+g[b>>2];g[c[j>>2]>>2]=+g[c[j>>2]>>2]+ +g[n>>2]*+g[q>>2];g[(c[j>>2]|0)+4>>2]=+g[(c[j>>2]|0)+4>>2]+ +g[n>>2]*+g[r>>2];g[(c[j>>2]|0)+8>>2]=+g[(c[j>>2]|0)+8>>2]+ +g[n>>2]*+g[s>>2];g[(c[j>>2]|0)+12>>2]=+g[(c[j>>2]|0)+12>>2]+ +g[n>>2]*+g[t>>2]}b=c[l>>2]|0;c[l>>2]=b+1;if((b|0)<(c[k>>2]|0)){b=c[f>>2]|0;c[f>>2]=b+4;g[o>>2]=+g[b>>2];b=c[h>>2]|0;c[h>>2]=b+4;g[q>>2]=+g[b>>2];g[c[j>>2]>>2]=+g[c[j>>2]>>2]+ +g[o>>2]*+g[r>>2];g[(c[j>>2]|0)+4>>2]=+g[(c[j>>2]|0)+4>>2]+ +g[o>>2]*+g[s>>2];g[(c[j>>2]|0)+8>>2]=+g[(c[j>>2]|0)+8>>2]+ +g[o>>2]*+g[t>>2];g[(c[j>>2]|0)+12>>2]=+g[(c[j>>2]|0)+12>>2]+ +g[o>>2]*+g[q>>2]}if((c[l>>2]|0)>=(c[k>>2]|0)){i=u;return}b=c[f>>2]|0;c[f>>2]=b+4;g[p>>2]=+g[b>>2];b=c[h>>2]|0;c[h>>2]=b+4;g[r>>2]=+g[b>>2];g[c[j>>2]>>2]=+g[c[j>>2]>>2]+ +g[p>>2]*+g[s>>2];g[(c[j>>2]|0)+4>>2]=+g[(c[j>>2]|0)+4>>2]+ +g[p>>2]*+g[t>>2];g[(c[j>>2]|0)+8>>2]=+g[(c[j>>2]|0)+8>>2]+ +g[p>>2]*+g[q>>2];g[(c[j>>2]|0)+12>>2]=+g[(c[j>>2]|0)+12>>2]+ +g[p>>2]*+g[r>>2];i=u;return}function Xc(a,b,d,e,f,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=i;i=i+64|0;k=v+60|0;l=v+56|0;m=v+52|0;n=v+48|0;o=v+44|0;p=v+40|0;r=v+32|0;s=v+28|0;q=v+24|0;t=v+8|0;u=v;c[k>>2]=a;c[l>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=h;c[v+36>>2]=j;a=c[o>>2]|0;c[q>>2]=ia()|0;e=i;i=i+((1*(a<<2)|0)+15&-16)|0;a=i;i=i+((1*((c[n>>2]|0)+(c[o>>2]|0)<<2)|0)+15&-16)|0;c[r>>2]=0;while(1){if((c[r>>2]|0)>=(c[o>>2]|0))break;g[e+(c[r>>2]<<2)>>2]=+g[(c[l>>2]|0)+((c[o>>2]|0)-(c[r>>2]|0)-1<<2)>>2];c[r>>2]=(c[r>>2]|0)+1}c[r>>2]=0;while(1){if((c[r>>2]|0)>=(c[o>>2]|0))break;g[a+(c[r>>2]<<2)>>2]=-+g[(c[p>>2]|0)+((c[o>>2]|0)-(c[r>>2]|0)-1<<2)>>2];c[r>>2]=(c[r>>2]|0)+1}while(1){if((c[r>>2]|0)>=((c[n>>2]|0)+(c[o>>2]|0)|0))break;g[a+(c[r>>2]<<2)>>2]=0.0;c[r>>2]=(c[r>>2]|0)+1}c[r>>2]=0;while(1){if((c[r>>2]|0)>=((c[n>>2]|0)-3|0))break;g[t>>2]=+g[(c[k>>2]|0)+(c[r>>2]<<2)>>2];g[t+4>>2]=+g[(c[k>>2]|0)+((c[r>>2]|0)+1<<2)>>2];g[t+8>>2]=+g[(c[k>>2]|0)+((c[r>>2]|0)+2<<2)>>2];g[t+12>>2]=+g[(c[k>>2]|0)+((c[r>>2]|0)+3<<2)>>2];Wc(e,a+(c[r>>2]<<2)|0,t,c[o>>2]|0);g[a+((c[r>>2]|0)+(c[o>>2]|0)<<2)>>2]=-+g[t>>2];g[(c[m>>2]|0)+(c[r>>2]<<2)>>2]=+g[t>>2];g[t+4>>2]=+g[t+4>>2]+ +g[a+((c[r>>2]|0)+(c[o>>2]|0)<<2)>>2]*+g[c[l>>2]>>2];g[a+((c[r>>2]|0)+(c[o>>2]|0)+1<<2)>>2]=-+g[t+4>>2];g[(c[m>>2]|0)+((c[r>>2]|0)+1<<2)>>2]=+g[t+4>>2];g[t+8>>2]=+g[t+8>>2]+ +g[a+((c[r>>2]|0)+(c[o>>2]|0)+1<<2)>>2]*+g[c[l>>2]>>2];g[t+8>>2]=+g[t+8>>2]+ +g[a+((c[r>>2]|0)+(c[o>>2]|0)<<2)>>2]*+g[(c[l>>2]|0)+4>>2];g[a+((c[r>>2]|0)+(c[o>>2]|0)+2<<2)>>2]=-+g[t+8>>2];g[(c[m>>2]|0)+((c[r>>2]|0)+2<<2)>>2]=+g[t+8>>2];g[t+12>>2]=+g[t+12>>2]+ +g[a+((c[r>>2]|0)+(c[o>>2]|0)+2<<2)>>2]*+g[c[l>>2]>>2];g[t+12>>2]=+g[t+12>>2]+ +g[a+((c[r>>2]|0)+(c[o>>2]|0)+1<<2)>>2]*+g[(c[l>>2]|0)+4>>2];g[t+12>>2]=+g[t+12>>2]+ +g[a+((c[r>>2]|0)+(c[o>>2]|0)<<2)>>2]*+g[(c[l>>2]|0)+8>>2];g[a+((c[r>>2]|0)+(c[o>>2]|0)+3<<2)>>2]=-+g[t+12>>2];g[(c[m>>2]|0)+((c[r>>2]|0)+3<<2)>>2]=+g[t+12>>2];c[r>>2]=(c[r>>2]|0)+4}while(1){if((c[r>>2]|0)>=(c[n>>2]|0))break;g[u>>2]=+g[(c[k>>2]|0)+(c[r>>2]<<2)>>2];c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[o>>2]|0))break;g[u>>2]=+g[u>>2]-+g[e+(c[s>>2]<<2)>>2]*+g[a+((c[r>>2]|0)+(c[s>>2]|0)<<2)>>2];c[s>>2]=(c[s>>2]|0)+1}g[a+((c[r>>2]|0)+(c[o>>2]|0)<<2)>>2]=+g[u>>2];g[(c[m>>2]|0)+(c[r>>2]<<2)>>2]=+g[u>>2];c[r>>2]=(c[r>>2]|0)+1}c[r>>2]=0;while(1){if((c[r>>2]|0)>=(c[o>>2]|0))break;g[(c[p>>2]|0)+(c[r>>2]<<2)>>2]=+g[(c[m>>2]|0)+((c[n>>2]|0)-(c[r>>2]|0)-1<<2)>>2];c[r>>2]=(c[r>>2]|0)+1}na(c[q>>2]|0);i=v;return}function Yc(a,b,d,e,f,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;var k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=i;i=i+64|0;l=z+52|0;p=z+48|0;m=z+44|0;n=z+40|0;q=z+36|0;r=z+32|0;o=z+28|0;t=z+24|0;v=z+20|0;w=z+16|0;u=z+12|0;x=z+8|0;y=z+4|0;s=z;c[l>>2]=a;c[p>>2]=b;c[m>>2]=d;c[n>>2]=e;c[q>>2]=f;c[r>>2]=h;c[o>>2]=j;c[u>>2]=(c[r>>2]|0)-(c[q>>2]|0);a=c[r>>2]|0;c[s>>2]=ia()|0;b=i;i=i+((1*(a<<2)|0)+15&-16)|0;if(!(c[n>>2]|0))c[y>>2]=c[l>>2];else{c[v>>2]=0;while(1){if((c[v>>2]|0)>=(c[r>>2]|0))break;g[b+(c[v>>2]<<2)>>2]=+g[(c[l>>2]|0)+(c[v>>2]<<2)>>2];c[v>>2]=(c[v>>2]|0)+1}c[v>>2]=0;while(1){if((c[v>>2]|0)>=(c[n>>2]|0))break;g[b+(c[v>>2]<<2)>>2]=+g[(c[l>>2]|0)+(c[v>>2]<<2)>>2]*+g[(c[m>>2]|0)+(c[v>>2]<<2)>>2];g[b+((c[r>>2]|0)-(c[v>>2]|0)-1<<2)>>2]=+g[(c[l>>2]|0)+((c[r>>2]|0)-(c[v>>2]|0)-1<<2)>>2]*+g[(c[m>>2]|0)+(c[v>>2]<<2)>>2];c[v>>2]=(c[v>>2]|0)+1}c[y>>2]=b}c[x>>2]=0;Mc(c[y>>2]|0,c[y>>2]|0,c[p>>2]|0,c[u>>2]|0,(c[q>>2]|0)+1|0,c[o>>2]|0);c[w>>2]=0;while(1){if((c[w>>2]|0)>(c[q>>2]|0))break;c[v>>2]=(c[w>>2]|0)+(c[u>>2]|0);g[t>>2]=0.0;while(1){k=+g[t>>2];if((c[v>>2]|0)>=(c[r>>2]|0))break;g[t>>2]=k+ +g[(c[y>>2]|0)+(c[v>>2]<<2)>>2]*+g[(c[y>>2]|0)+((c[v>>2]|0)-(c[w>>2]|0)<<2)>>2];c[v>>2]=(c[v>>2]|0)+1}o=(c[p>>2]|0)+(c[w>>2]<<2)|0;g[o>>2]=+g[o>>2]+k;c[w>>2]=(c[w>>2]|0)+1}y=c[x>>2]|0;na(c[s>>2]|0);i=z;return y|0}function Zc(a,b,d,e,f,h,j,k,l,m,n,o,p,q,r,s,t){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;s=s|0;t=t|0;var u=0.0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,$=0,aa=0,ba=0;aa=i;i=i+224|0;z=aa+216|0;A=aa+212|0;H=aa+208|0;x=aa+204|0;I=aa+200|0;J=aa+196|0;K=aa+192|0;L=aa+188|0;M=aa+184|0;N=aa+180|0;B=aa+176|0;v=aa+172|0;ba=aa+168|0;C=aa+164|0;D=aa+160|0;w=aa+156|0;E=aa+152|0;S=aa+148|0;V=aa+144|0;R=aa+96|0;Z=aa+92|0;O=aa+88|0;T=aa+84|0;W=aa+80|0;F=aa+76|0;U=aa+72|0;Q=aa+24|0;$=aa+20|0;Y=aa+16|0;X=aa+12|0;y=aa+8|0;P=aa+4|0;G=aa;c[z>>2]=a;c[A>>2]=b;c[H>>2]=d;c[x>>2]=e;c[I>>2]=f;c[J>>2]=h;c[K>>2]=j;c[L>>2]=k;c[M>>2]=l;c[N>>2]=m;c[B>>2]=n;c[v>>2]=o;c[ba>>2]=p;c[C>>2]=q;c[D>>2]=r;c[w>>2]=s;c[E>>2]=t;c[O>>2]=0;if(!(c[ba>>2]|0))if(!(c[D>>2]|0)?+g[c[C>>2]>>2]>+(_(c[N>>2]<<1,(c[H>>2]|0)-(c[A>>2]|0)|0)|0):0)m=(c[v>>2]|0)>(_((c[H>>2]|0)-(c[A>>2]|0)|0,c[N>>2]|0)|0);else m=0;else m=1;c[S>>2]=m&1;c[T>>2]=~~(+((c[K>>2]|0)>>>0)*+g[c[C>>2]>>2]*+(c[w>>2]|0)/+(c[N>>2]<<9|0));g[W>>2]=+_c(c[I>>2]|0,c[J>>2]|0,c[A>>2]|0,c[x>>2]|0,c[(c[z>>2]|0)+8>>2]|0,c[N>>2]|0);c[Z>>2]=$c(c[M>>2]|0)|0;if(((c[Z>>2]|0)+3|0)>>>0>(c[K>>2]|0)>>>0){c[S>>2]=0;c[D>>2]=0}g[V>>2]=16.0;if(((c[H>>2]|0)-(c[A>>2]|0)|0)>10){if(+g[V>>2]<+(c[v>>2]|0)*.125)u=+g[V>>2];else u=+(c[v>>2]|0)*.125;g[V>>2]=u}if(c[E>>2]|0)g[V>>2]=3.0;q=R;f=c[M>>2]|0;e=q+48|0;do{c[q>>2]=c[f>>2];q=q+4|0;f=f+4|0}while((q|0)<(e|0));ba=_(c[N>>2]|0,c[(c[z>>2]|0)+8>>2]|0)|0;c[F>>2]=ia()|0;n=i;i=i+((1*(ba<<2)|0)+15&-16)|0;ba=(_(c[N>>2]|0,c[(c[z>>2]|0)+8>>2]|0)|0)<<2;j=i;i=i+((1*ba|0)+15&-16)|0;ba=(_(c[N>>2]|0,c[(c[z>>2]|0)+8>>2]|0)|0)<<2;pj(n|0,c[J>>2]|0,ba+0|0)|0;if((c[D>>2]|0)!=0|(c[S>>2]|0)!=0)c[O>>2]=ad(c[z>>2]|0,c[A>>2]|0,c[H>>2]|0,c[I>>2]|0,n,c[K>>2]|0,c[Z>>2]|0,26384+((c[B>>2]|0)*84|0)+42|0,j,c[M>>2]|0,c[N>>2]|0,c[B>>2]|0,1,+g[V>>2],c[E>>2]|0)|0;if(c[S>>2]|0){ba=(_(c[N>>2]|0,c[(c[z>>2]|0)+8>>2]|0)|0)<<2;pj(c[J>>2]|0,n|0,ba+0|0)|0;ba=(_(c[N>>2]|0,c[(c[z>>2]|0)+8>>2]|0)|0)<<2;pj(c[L>>2]|0,j|0,ba+0|0)|0}else{c[$>>2]=Xb(c[M>>2]|0)|0;q=Q;f=c[M>>2]|0;e=q+48|0;do{c[q>>2]=c[f>>2];q=q+4|0;f=f+4|0}while((q|0)<(e|0));c[Y>>2]=bd(R)|0;c[X>>2]=bd(Q)|0;q=cd(Q)|0;c[U>>2]=q+(c[Y>>2]|0);q=(c[X>>2]|0)-(c[Y>>2]|0)|0;c[y>>2]=q;c[y>>2]=(c[y>>2]|0)==0?1:q;q=c[y>>2]|0;c[G>>2]=ia()|0;m=i;i=i+((1*q|0)+15&-16)|0;pj(m|0,c[U>>2]|0,(c[X>>2]|0)-(c[Y>>2]|0)+0|0)|0;q=c[M>>2]|0;f=R;e=q+48|0;do{c[q>>2]=c[f>>2];q=q+4|0;f=f+4|0}while((q|0)<(e|0));c[P>>2]=ad(c[z>>2]|0,c[A>>2]|0,c[H>>2]|0,c[I>>2]|0,c[J>>2]|0,c[K>>2]|0,c[Z>>2]|0,26384+((c[B>>2]|0)*84|0)+((c[S>>2]|0)*42|0)|0,c[L>>2]|0,c[M>>2]|0,c[N>>2]|0,c[B>>2]|0,0,+g[V>>2],c[E>>2]|0)|0;do if(c[D>>2]|0){if((c[O>>2]|0)>=(c[P>>2]|0)){if((c[O>>2]|0)!=(c[P>>2]|0))break;ba=Xb(c[M>>2]|0)|0;if((ba+(c[T>>2]|0)|0)<=(c[$>>2]|0))break}q=c[M>>2]|0;f=Q;e=q+48|0;do{c[q>>2]=c[f>>2];q=q+4|0;f=f+4|0}while((q|0)<(e|0));pj(c[U>>2]|0,m|0,(c[X>>2]|0)-(c[Y>>2]|0)+0|0)|0;ba=(_(c[N>>2]|0,c[(c[z>>2]|0)+8>>2]|0)|0)<<2;pj(c[J>>2]|0,n|0,ba+0|0)|0;ba=(_(c[N>>2]|0,c[(c[z>>2]|0)+8>>2]|0)|0)<<2;pj(c[L>>2]|0,j|0,ba+0|0)|0;c[S>>2]=1}while(0);na(c[G>>2]|0)}if(c[S>>2]|0){g[c[C>>2]>>2]=+g[W>>2];ba=c[F>>2]|0;na(ba|0);i=aa;return}else{g[c[C>>2]>>2]=+g[17580+(c[B>>2]<<2)>>2]*+g[17580+(c[B>>2]<<2)>>2]*+g[c[C>>2]>>2]+ +g[W>>2];ba=c[F>>2]|0;na(ba|0);i=aa;return}}function _c(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+48|0;j=t+36|0;k=t+32|0;l=t+28|0;m=t+24|0;n=t+20|0;o=t+16|0;p=t+12|0;s=t+8|0;r=t+4|0;q=t;c[j>>2]=a;c[k>>2]=b;c[l>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=h;g[r>>2]=0.0;c[p>>2]=0;do{c[s>>2]=c[l>>2];while(1){if((c[s>>2]|0)>=(c[m>>2]|0))break;b=(c[s>>2]|0)+(_(c[p>>2]|0,c[n>>2]|0)|0)|0;d=(c[s>>2]|0)+(_(c[p>>2]|0,c[n>>2]|0)|0)|0;g[q>>2]=+g[(c[j>>2]|0)+(b<<2)>>2]-+g[(c[k>>2]|0)+(d<<2)>>2];g[r>>2]=+g[r>>2]+ +g[q>>2]*+g[q>>2];c[s>>2]=(c[s>>2]|0)+1}d=(c[p>>2]|0)+1|0;c[p>>2]=d}while((d|0)<(c[o>>2]|0));i=t;return +(200.0<+g[r>>2]?200.0:+g[r>>2])}function $c(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=(c[(c[d>>2]|0)+20>>2]|0)-(32-(aa(c[(c[d>>2]|0)+28>>2]|0)|0))|0;i=b;return a|0}function ad(a,b,e,f,h,j,k,l,m,n,o,p,q,r,s){a=a|0;b=b|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=+r;s=s|0;var t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,$=0;$=i;i=i+128|0;v=$+124|0;w=$+120|0;A=$+116|0;B=$+112|0;C=$+108|0;D=$+104|0;E=$+100|0;F=$+96|0;G=$+92|0;H=$+88|0;x=$+84|0;t=$+80|0;u=$+76|0;y=$+72|0;z=$+68|0;R=$+64|0;L=$+60|0;I=$+56|0;U=$+48|0;O=$+44|0;J=$+40|0;K=$+36|0;W=$+32|0;X=$+28|0;V=$+24|0;Z=$+20|0;Q=$+16|0;Y=$+12|0;S=$+8|0;P=$+4|0;T=$;c[v>>2]=a;c[w>>2]=b;c[A>>2]=e;c[B>>2]=f;c[C>>2]=h;c[D>>2]=j;c[E>>2]=k;c[F>>2]=l;c[G>>2]=m;c[H>>2]=n;c[x>>2]=o;c[t>>2]=p;c[u>>2]=q;g[y>>2]=r;c[z>>2]=s;c[I>>2]=0;c[U>>2]=0;c[U+4>>2]=0;if(((c[E>>2]|0)+3|0)<=(c[D>>2]|0))pc(c[H>>2]|0,c[u>>2]|0,3);if(c[u>>2]|0){g[O>>2]=0.0;g[J>>2]=.149993896484375}else{g[J>>2]=+g[17564+(c[t>>2]<<2)>>2];g[O>>2]=+g[17580+(c[t>>2]<<2)>>2]}c[R>>2]=c[w>>2];while(1){if((c[R>>2]|0)>=(c[A>>2]|0))break;c[L>>2]=0;do{k=(c[R>>2]|0)+(_(c[L>>2]|0,c[(c[v>>2]|0)+8>>2]|0)|0)|0;g[Z>>2]=+g[(c[B>>2]|0)+(k<<2)>>2];k=(c[R>>2]|0)+(_(c[L>>2]|0,c[(c[v>>2]|0)+8>>2]|0)|0)|0;if(-9.0>+g[(c[C>>2]|0)+(k<<2)>>2])r=-9.0;else{k=(c[R>>2]|0)+(_(c[L>>2]|0,c[(c[v>>2]|0)+8>>2]|0)|0)|0;r=+g[(c[C>>2]|0)+(k<<2)>>2]}g[S>>2]=r;g[Q>>2]=+g[Z>>2]-+g[O>>2]*+g[S>>2]-+g[U+(c[L>>2]<<2)>>2];c[W>>2]=~~+M(+(+g[Q>>2]+.5));k=(c[R>>2]|0)+(_(c[L>>2]|0,c[(c[v>>2]|0)+8>>2]|0)|0)|0;if(-28.0>+g[(c[C>>2]|0)+(k<<2)>>2])r=-28.0;else{k=(c[R>>2]|0)+(_(c[L>>2]|0,c[(c[v>>2]|0)+8>>2]|0)|0)|0;r=+g[(c[C>>2]|0)+(k<<2)>>2]}g[P>>2]=r-+g[y>>2];if((c[W>>2]|0)<0?+g[Z>>2]<+g[P>>2]:0){k=(c[W>>2]|0)+~~(+g[P>>2]-+g[Z>>2])|0;c[W>>2]=k;c[W>>2]=(c[W>>2]|0)>0?0:k}c[X>>2]=c[W>>2];c[E>>2]=$c(c[H>>2]|0)|0;c[K>>2]=(c[D>>2]|0)-(c[E>>2]|0)-(_((c[x>>2]|0)*3|0,(c[A>>2]|0)-(c[R>>2]|0)|0)|0);if((c[K>>2]|0)<30?(c[R>>2]|0)!=(c[w>>2]|0):0){if((c[K>>2]|0)<24)c[W>>2]=1<(c[W>>2]|0)?1:c[W>>2]|0;if((c[K>>2]|0)<16)c[W>>2]=-1>(c[W>>2]|0)?-1:c[W>>2]|0}if((c[z>>2]|0)!=0&(c[R>>2]|0)>=2)c[W>>2]=(c[W>>2]|0)<0?c[W>>2]|0:0;do if(((c[D>>2]|0)-(c[E>>2]|0)|0)<15)if(((c[D>>2]|0)-(c[E>>2]|0)|0)<2)if(((c[D>>2]|0)-(c[E>>2]|0)|0)>=1){c[W>>2]=0<(c[W>>2]|0)?0:c[W>>2]|0;pc(c[H>>2]|0,0-(c[W>>2]|0)|0,1);break}else{c[W>>2]=-1;break}else{if(-1>(((c[W>>2]|0)<1?c[W>>2]|0:1)|0))t=-1;else t=(c[W>>2]|0)<1?c[W>>2]|0:1;c[W>>2]=t;qc(c[H>>2]|0,c[W>>2]<<1^0-((c[W>>2]|0)<0&1),26720,2);break}else{c[T>>2]=((c[R>>2]|0)<20?c[R>>2]|0:20)<<1;Dc(c[H>>2]|0,W,(d[(c[F>>2]|0)+(c[T>>2]|0)>>0]|0)<<7,(d[(c[F>>2]|0)+((c[T>>2]|0)+1)>>0]|0)<<6)}while(0);k=(c[R>>2]|0)+(_(c[L>>2]|0,c[(c[v>>2]|0)+8>>2]|0)|0)|0;g[(c[G>>2]|0)+(k<<2)>>2]=+g[Q>>2]-+(c[W>>2]|0);k=N((c[X>>2]|0)-(c[W>>2]|0)|0)|0;c[I>>2]=(c[I>>2]|0)+k;g[V>>2]=+(c[W>>2]|0);g[Y>>2]=+g[O>>2]*+g[S>>2]+ +g[U+(c[L>>2]<<2)>>2]+ +g[V>>2];k=(c[R>>2]|0)+(_(c[L>>2]|0,c[(c[v>>2]|0)+8>>2]|0)|0)|0;g[(c[C>>2]|0)+(k<<2)>>2]=+g[Y>>2];g[U+(c[L>>2]<<2)>>2]=+g[U+(c[L>>2]<<2)>>2]+ +g[V>>2]-+g[J>>2]*+g[V>>2];k=(c[L>>2]|0)+1|0;c[L>>2]=k}while((k|0)<(c[x>>2]|0));c[R>>2]=(c[R>>2]|0)+1}i=$;return (c[z>>2]|0?0:c[I>>2]|0)|0}function bd(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c[(c[b>>2]|0)+24>>2]|0}function cd(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c[c[b>>2]>>2]|0}function dd(a,d,e,f,h,j,k,l){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;y=i;i=i+64|0;m=y+44|0;z=y+40|0;n=y+36|0;o=y+32|0;p=y+28|0;q=y+24|0;r=y+20|0;s=y+16|0;v=y+12|0;t=y+8|0;u=y+48|0;x=y+4|0;w=y;c[m>>2]=a;c[z>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=h;c[q>>2]=j;c[r>>2]=k;c[s>>2]=l;c[v>>2]=c[z>>2];while(1){if((c[v>>2]|0)>=(c[n>>2]|0))break;b[u>>1]=1<<c[(c[q>>2]|0)+(c[v>>2]<<2)>>2];if((c[(c[q>>2]|0)+(c[v>>2]<<2)>>2]|0)>0){c[t>>2]=0;do{z=(c[v>>2]|0)+(_(c[t>>2]|0,c[(c[m>>2]|0)+8>>2]|0)|0)|0;c[x>>2]=~~+M(+((+g[(c[p>>2]|0)+(z<<2)>>2]+.5)*+(b[u>>1]|0)));if((c[x>>2]|0)>((b[u>>1]|0)-1|0))c[x>>2]=(b[u>>1]|0)-1;if((c[x>>2]|0)<0)c[x>>2]=0;sc(c[r>>2]|0,c[x>>2]|0,c[(c[q>>2]|0)+(c[v>>2]<<2)>>2]|0);g[w>>2]=(+(c[x>>2]|0)+.5)*+(1<<14-(c[(c[q>>2]|0)+(c[v>>2]<<2)>>2]|0)|0)*.00006103515625-.5;z=(c[v>>2]|0)+(_(c[t>>2]|0,c[(c[m>>2]|0)+8>>2]|0)|0)|0;z=(c[o>>2]|0)+(z<<2)|0;g[z>>2]=+g[z>>2]+ +g[w>>2];z=(c[v>>2]|0)+(_(c[t>>2]|0,c[(c[m>>2]|0)+8>>2]|0)|0)|0;z=(c[p>>2]|0)+(z<<2)|0;g[z>>2]=+g[z>>2]-+g[w>>2];z=(c[t>>2]|0)+1|0;c[t>>2]=z}while((z|0)<(c[s>>2]|0))}c[v>>2]=(c[v>>2]|0)+1}i=y;return}function ed(a,b,d,e,f,h,j,k,l,m){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+64|0;n=C+56|0;o=C+52|0;p=C+48|0;q=C+44|0;r=C+40|0;s=C+36|0;t=C+32|0;u=C+28|0;v=C+24|0;w=C+20|0;y=C+16|0;A=C+12|0;x=C+8|0;B=C+4|0;z=C;c[n>>2]=a;c[o>>2]=b;c[p>>2]=d;c[q>>2]=e;c[r>>2]=f;c[s>>2]=h;c[t>>2]=j;c[u>>2]=k;c[v>>2]=l;c[w>>2]=m;c[A>>2]=0;while(1){if((c[A>>2]|0)>=2)break;c[y>>2]=c[o>>2];while(1){if((c[y>>2]|0)>=(c[p>>2]|0))break;if((c[u>>2]|0)<(c[w>>2]|0))break;if((c[(c[s>>2]|0)+(c[y>>2]<<2)>>2]|0)<8?(c[(c[t>>2]|0)+(c[y>>2]<<2)>>2]|0)==(c[A>>2]|0):0){c[x>>2]=0;do{b=(c[y>>2]|0)+(_(c[x>>2]|0,c[(c[n>>2]|0)+8>>2]|0)|0)|0;c[B>>2]=+g[(c[r>>2]|0)+(b<<2)>>2]<0.0?0:1;sc(c[v>>2]|0,c[B>>2]|0,1);g[z>>2]=(+(c[B>>2]|0)-.5)*+(1<<14-(c[(c[s>>2]|0)+(c[y>>2]<<2)>>2]|0)-1|0)*.00006103515625;b=(c[y>>2]|0)+(_(c[x>>2]|0,c[(c[n>>2]|0)+8>>2]|0)|0)|0;b=(c[q>>2]|0)+(b<<2)|0;g[b>>2]=+g[b>>2]+ +g[z>>2];c[u>>2]=(c[u>>2]|0)+-1;b=(c[x>>2]|0)+1|0;c[x>>2]=b}while((b|0)<(c[w>>2]|0))}c[y>>2]=(c[y>>2]|0)+1}c[A>>2]=(c[A>>2]|0)+1}i=C;return}function fd(a,b,e,f,h,j,k,l){a=a|0;b=b|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;G=i;i=i+96|0;p=G+80|0;n=G+76|0;q=G+72|0;r=G+68|0;H=G+64|0;s=G+60|0;t=G+56|0;o=G+52|0;B=G+48|0;y=G+44|0;w=G+40|0;A=G+32|0;x=G+28|0;u=G+24|0;v=G+20|0;E=G+16|0;D=G+12|0;C=G+8|0;F=G+4|0;z=G;c[p>>2]=a;c[n>>2]=b;c[q>>2]=e;c[r>>2]=f;c[H>>2]=h;c[s>>2]=j;c[t>>2]=k;c[o>>2]=l;c[B>>2]=26384+((c[o>>2]|0)*84|0)+((c[H>>2]|0)*42|0);c[A>>2]=0;c[A+4>>2]=0;if(c[H>>2]|0){g[x>>2]=0.0;g[u>>2]=.149993896484375}else{g[u>>2]=+g[17564+(c[o>>2]<<2)>>2];g[x>>2]=+g[17580+(c[o>>2]<<2)>>2]}c[v>>2]=c[(c[s>>2]|0)+4>>2]<<3;c[y>>2]=c[n>>2];while(1){if((c[y>>2]|0)>=(c[q>>2]|0))break;c[w>>2]=0;do{c[E>>2]=$c(c[s>>2]|0)|0;do if(((c[v>>2]|0)-(c[E>>2]|0)|0)<15){if(((c[v>>2]|0)-(c[E>>2]|0)|0)>=2){c[D>>2]=ec(c[s>>2]|0,26720,2)|0;c[D>>2]=c[D>>2]>>1^0-(c[D>>2]&1);break}if(((c[v>>2]|0)-(c[E>>2]|0)|0)>=1){c[D>>2]=0-(dc(c[s>>2]|0,1)|0);break}else{c[D>>2]=-1;break}}else{c[z>>2]=((c[y>>2]|0)<20?c[y>>2]|0:20)<<1;c[D>>2]=Fc(c[s>>2]|0,(d[(c[B>>2]|0)+(c[z>>2]|0)>>0]|0)<<7,(d[(c[B>>2]|0)+((c[z>>2]|0)+1)>>0]|0)<<6)|0}while(0);g[C>>2]=+(c[D>>2]|0);H=(c[y>>2]|0)+(_(c[w>>2]|0,c[(c[p>>2]|0)+8>>2]|0)|0)|0;if(-9.0>+g[(c[r>>2]|0)+(H<<2)>>2])m=-9.0;else{H=(c[y>>2]|0)+(_(c[w>>2]|0,c[(c[p>>2]|0)+8>>2]|0)|0)|0;m=+g[(c[r>>2]|0)+(H<<2)>>2]}H=(c[y>>2]|0)+(_(c[w>>2]|0,c[(c[p>>2]|0)+8>>2]|0)|0)|0;g[(c[r>>2]|0)+(H<<2)>>2]=m;H=(c[y>>2]|0)+(_(c[w>>2]|0,c[(c[p>>2]|0)+8>>2]|0)|0)|0;g[F>>2]=+g[x>>2]*+g[(c[r>>2]|0)+(H<<2)>>2]+ +g[A+(c[w>>2]<<2)>>2]+ +g[C>>2];H=(c[y>>2]|0)+(_(c[w>>2]|0,c[(c[p>>2]|0)+8>>2]|0)|0)|0;g[(c[r>>2]|0)+(H<<2)>>2]=+g[F>>2];g[A+(c[w>>2]<<2)>>2]=+g[A+(c[w>>2]<<2)>>2]+ +g[C>>2]-+g[u>>2]*+g[C>>2];H=(c[w>>2]|0)+1|0;c[w>>2]=H}while((H|0)<(c[t>>2]|0));c[y>>2]=(c[y>>2]|0)+1}i=G;return}function gd(a,b,d,e,f,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;u=i;i=i+48|0;k=u+40|0;v=u+36|0;l=u+32|0;m=u+28|0;n=u+24|0;o=u+20|0;p=u+16|0;r=u+12|0;q=u+8|0;t=u+4|0;s=u;c[k>>2]=a;c[v>>2]=b;c[l>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=h;c[p>>2]=j;c[r>>2]=c[v>>2];while(1){if((c[r>>2]|0)>=(c[l>>2]|0))break;if((c[(c[n>>2]|0)+(c[r>>2]<<2)>>2]|0)>0){c[q>>2]=0;do{c[t>>2]=gc(c[o>>2]|0,c[(c[n>>2]|0)+(c[r>>2]<<2)>>2]|0)|0;g[s>>2]=(+(c[t>>2]|0)+.5)*+(1<<14-(c[(c[n>>2]|0)+(c[r>>2]<<2)>>2]|0)|0)*.00006103515625-.5;v=(c[r>>2]|0)+(_(c[q>>2]|0,c[(c[k>>2]|0)+8>>2]|0)|0)|0;v=(c[m>>2]|0)+(v<<2)|0;g[v>>2]=+g[v>>2]+ +g[s>>2];v=(c[q>>2]|0)+1|0;c[q>>2]=v}while((v|0)<(c[p>>2]|0))}c[r>>2]=(c[r>>2]|0)+1}i=u;return}function hd(a,b,d,e,f,h,j,k,l){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;A=i;i=i+64|0;m=A+52|0;n=A+48|0;o=A+44|0;p=A+40|0;q=A+36|0;r=A+32|0;s=A+28|0;t=A+24|0;u=A+20|0;w=A+16|0;y=A+12|0;v=A+8|0;z=A+4|0;x=A;c[m>>2]=a;c[n>>2]=b;c[o>>2]=d;c[p>>2]=e;c[q>>2]=f;c[r>>2]=h;c[s>>2]=j;c[t>>2]=k;c[u>>2]=l;c[y>>2]=0;while(1){if((c[y>>2]|0)>=2)break;c[w>>2]=c[n>>2];while(1){if((c[w>>2]|0)>=(c[o>>2]|0))break;if((c[s>>2]|0)<(c[u>>2]|0))break;if((c[(c[q>>2]|0)+(c[w>>2]<<2)>>2]|0)<8?(c[(c[r>>2]|0)+(c[w>>2]<<2)>>2]|0)==(c[y>>2]|0):0){c[v>>2]=0;do{c[z>>2]=gc(c[t>>2]|0,1)|0;g[x>>2]=(+(c[z>>2]|0)-.5)*+(1<<14-(c[(c[q>>2]|0)+(c[w>>2]<<2)>>2]|0)-1|0)*.00006103515625;b=(c[w>>2]|0)+(_(c[v>>2]|0,c[(c[m>>2]|0)+8>>2]|0)|0)|0;b=(c[p>>2]|0)+(b<<2)|0;g[b>>2]=+g[b>>2]+ +g[x>>2];c[s>>2]=(c[s>>2]|0)+-1;b=(c[v>>2]|0)+1|0;c[v>>2]=b}while((b|0)<(c[u>>2]|0))}c[w>>2]=(c[w>>2]|0)+1}c[y>>2]=(c[y>>2]|0)+1}i=A;return}function id(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0;r=i;i=i+32|0;j=r+28|0;k=r+24|0;l=r+20|0;m=r+16|0;n=r+12|0;o=r+8|0;p=r+4|0;q=r;c[j>>2]=a;c[k>>2]=b;c[l>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=h;c[p>>2]=0;do{c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[k>>2]|0))break;a=(c[q>>2]|0)+(_(c[p>>2]|0,c[(c[j>>2]|0)+8>>2]|0)|0)|0;s=+Y(+(+g[(c[m>>2]|0)+(a<<2)>>2]))*1.4426950408889634;a=(c[q>>2]|0)+(_(c[p>>2]|0,c[(c[j>>2]|0)+8>>2]|0)|0)|0;g[(c[n>>2]|0)+(a<<2)>>2]=s-+g[17464+(c[q>>2]<<2)>>2];c[q>>2]=(c[q>>2]|0)+1}c[q>>2]=c[k>>2];while(1){h=c[p>>2]|0;if((c[q>>2]|0)>=(c[l>>2]|0))break;a=_(h,c[(c[j>>2]|0)+8>>2]|0)|0;g[(c[n>>2]|0)+(a+(c[q>>2]|0)<<2)>>2]=-14.0;c[q>>2]=(c[q>>2]|0)+1}a=h+1|0;c[p>>2]=a}while((a|0)<(c[o>>2]|0));i=r;return}function jd(a,e,f,g,h,j,k,l,m,n,o,p,q,r,s,t,u,v,w){a=a|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;s=s|0;t=t|0;u=u|0;v=v|0;w=w|0;var x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0;ha=i;i=i+160|0;D=ha+144|0;E=ha+140|0;P=ha+136|0;Q=ha+132|0;R=ha+128|0;x=ha+124|0;S=ha+120|0;T=ha+116|0;U=ha+112|0;V=ha+108|0;F=ha+104|0;G=ha+100|0;H=ha+96|0;I=ha+92|0;J=ha+88|0;K=ha+84|0;L=ha+80|0;M=ha+76|0;N=ha+72|0;ea=ha+68|0;aa=ha+64|0;da=ha+60|0;ca=ha+56|0;Z=ha+52|0;ga=ha+48|0;fa=ha+44|0;ba=ha+40|0;$=ha+36|0;O=ha+32|0;A=ha+28|0;C=ha+24|0;B=ha+20|0;z=ha+16|0;y=ha+12|0;X=ha+8|0;Y=ha+4|0;W=ha;c[D>>2]=a;c[E>>2]=e;c[P>>2]=f;c[Q>>2]=g;c[R>>2]=h;c[x>>2]=j;c[S>>2]=k;c[T>>2]=l;c[U>>2]=m;c[V>>2]=n;c[F>>2]=o;c[G>>2]=p;c[H>>2]=q;c[I>>2]=r;c[J>>2]=s;c[K>>2]=t;c[L>>2]=u;c[M>>2]=v;c[N>>2]=w;c[U>>2]=(c[U>>2]|0)>0?c[U>>2]|0:0;c[da>>2]=c[(c[D>>2]|0)+8>>2];c[ga>>2]=c[E>>2];c[fa>>2]=(c[U>>2]|0)>=8?8:0;c[U>>2]=(c[U>>2]|0)-(c[fa>>2]|0);c[$>>2]=0;c[ba>>2]=0;do if((c[I>>2]|0)==2){c[ba>>2]=d[26723+((c[P>>2]|0)-(c[E>>2]|0))>>0];if((c[ba>>2]|0)>(c[U>>2]|0)){c[ba>>2]=0;break}else{c[U>>2]=(c[U>>2]|0)-(c[ba>>2]|0);c[$>>2]=(c[U>>2]|0)>=8?8:0;c[U>>2]=(c[U>>2]|0)-(c[$>>2]|0);break}}while(0);j=c[da>>2]|0;c[O>>2]=ia()|0;s=i;i=i+((1*(j<<2)|0)+15&-16)|0;j=i;i=i+((1*(c[da>>2]<<2)|0)+15&-16)|0;n=i;i=i+((1*(c[da>>2]<<2)|0)+15&-16)|0;h=i;i=i+((1*(c[da>>2]<<2)|0)+15&-16)|0;c[ca>>2]=c[E>>2];while(1){if((c[ca>>2]|0)>=(c[P>>2]|0))break;if((c[I>>2]<<3|0)>(((b[(c[(c[D>>2]|0)+32>>2]|0)+((c[ca>>2]|0)+1<<1)>>1]|0)-(b[(c[(c[D>>2]|0)+32>>2]|0)+(c[ca>>2]<<1)>>1]|0)|0)*3<<c[J>>2]<<3>>4|0))r=c[I>>2]<<3;else r=((b[(c[(c[D>>2]|0)+32>>2]|0)+((c[ca>>2]|0)+1<<1)>>1]|0)-(b[(c[(c[D>>2]|0)+32>>2]|0)+(c[ca>>2]<<1)>>1]|0)|0)*3<<c[J>>2]<<3>>4;c[n+(c[ca>>2]<<2)>>2]=r;m=_(c[I>>2]|0,(b[(c[(c[D>>2]|0)+32>>2]|0)+((c[ca>>2]|0)+1<<1)>>1]|0)-(b[(c[(c[D>>2]|0)+32>>2]|0)+(c[ca>>2]<<1)>>1]|0)|0)|0;m=_(m,(c[x>>2]|0)-5-(c[J>>2]|0)|0)|0;m=_(m,(c[P>>2]|0)-(c[ca>>2]|0)-1|0)|0;m=(_(m,1<<(c[J>>2]|0)+3)|0)>>6;c[h+(c[ca>>2]<<2)>>2]=m;if(((b[(c[(c[D>>2]|0)+32>>2]|0)+((c[ca>>2]|0)+1<<1)>>1]|0)-(b[(c[(c[D>>2]|0)+32>>2]|0)+(c[ca>>2]<<1)>>1]|0)<<c[J>>2]|0)==1){m=h+(c[ca>>2]<<2)|0;c[m>>2]=(c[m>>2]|0)-(c[I>>2]<<3)}c[ca>>2]=(c[ca>>2]|0)+1}c[ea>>2]=1;c[aa>>2]=(c[(c[D>>2]|0)+48>>2]|0)-1;do{c[A>>2]=0;c[C>>2]=0;c[B>>2]=(c[ea>>2]|0)+(c[aa>>2]|0)>>1;c[ca>>2]=c[P>>2];while(1){x=c[ca>>2]|0;c[ca>>2]=x+-1;if((x|0)<=(c[E>>2]|0))break;c[y>>2]=(b[(c[(c[D>>2]|0)+32>>2]|0)+((c[ca>>2]|0)+1<<1)>>1]|0)-(b[(c[(c[D>>2]|0)+32>>2]|0)+(c[ca>>2]<<1)>>1]|0);m=_(c[I>>2]|0,c[y>>2]|0)|0;x=_(c[B>>2]|0,c[da>>2]|0)|0;x=_(m,d[(c[(c[D>>2]|0)+52>>2]|0)+(x+(c[ca>>2]|0))>>0]|0)|0;c[z>>2]=x<<c[J>>2]>>2;if((c[z>>2]|0)>0){if(0>((c[z>>2]|0)+(c[h+(c[ca>>2]<<2)>>2]|0)|0))r=0;else r=(c[z>>2]|0)+(c[h+(c[ca>>2]<<2)>>2]|0)|0;c[z>>2]=r}c[z>>2]=(c[z>>2]|0)+(c[(c[Q>>2]|0)+(c[ca>>2]<<2)>>2]|0);if(!(c[A>>2]|0?1:(c[z>>2]|0)>=(c[n+(c[ca>>2]<<2)>>2]|0))){if((c[z>>2]|0)<(c[I>>2]<<3|0))continue;c[C>>2]=(c[C>>2]|0)+(c[I>>2]<<3);continue}c[A>>2]=1;if((c[z>>2]|0)<(c[(c[R>>2]|0)+(c[ca>>2]<<2)>>2]|0))r=c[z>>2]|0;else r=c[(c[R>>2]|0)+(c[ca>>2]<<2)>>2]|0;c[C>>2]=(c[C>>2]|0)+r}r=c[B>>2]|0;if((c[C>>2]|0)>(c[U>>2]|0))c[aa>>2]=r-1;else c[ea>>2]=r+1}while((c[ea>>2]|0)<=(c[aa>>2]|0));C=c[ea>>2]|0;c[ea>>2]=C+-1;c[aa>>2]=C;c[ca>>2]=c[E>>2];while(1){if((c[ca>>2]|0)>=(c[P>>2]|0))break;c[W>>2]=(b[(c[(c[D>>2]|0)+32>>2]|0)+((c[ca>>2]|0)+1<<1)>>1]|0)-(b[(c[(c[D>>2]|0)+32>>2]|0)+(c[ca>>2]<<1)>>1]|0);B=_(c[I>>2]|0,c[W>>2]|0)|0;C=_(c[ea>>2]|0,c[da>>2]|0)|0;C=_(B,d[(c[(c[D>>2]|0)+52>>2]|0)+(C+(c[ca>>2]|0))>>0]|0)|0;c[X>>2]=C<<c[J>>2]>>2;if((c[aa>>2]|0)>=(c[(c[D>>2]|0)+48>>2]|0))r=c[(c[R>>2]|0)+(c[ca>>2]<<2)>>2]|0;else{C=_(c[I>>2]|0,c[W>>2]|0)|0;r=_(c[aa>>2]|0,c[da>>2]|0)|0;r=_(C,d[(c[(c[D>>2]|0)+52>>2]|0)+(r+(c[ca>>2]|0))>>0]|0)|0;r=r<<c[J>>2]>>2}c[Y>>2]=r;if((c[X>>2]|0)>0){if(0>((c[X>>2]|0)+(c[h+(c[ca>>2]<<2)>>2]|0)|0))r=0;else r=(c[X>>2]|0)+(c[h+(c[ca>>2]<<2)>>2]|0)|0;c[X>>2]=r}if((c[Y>>2]|0)>0){if(0>((c[Y>>2]|0)+(c[h+(c[ca>>2]<<2)>>2]|0)|0))r=0;else r=(c[Y>>2]|0)+(c[h+(c[ca>>2]<<2)>>2]|0)|0;c[Y>>2]=r}if((c[ea>>2]|0)>0)c[X>>2]=(c[X>>2]|0)+(c[(c[Q>>2]|0)+(c[ca>>2]<<2)>>2]|0);c[Y>>2]=(c[Y>>2]|0)+(c[(c[Q>>2]|0)+(c[ca>>2]<<2)>>2]|0);if((c[(c[Q>>2]|0)+(c[ca>>2]<<2)>>2]|0)>0)c[ga>>2]=c[ca>>2];if(0>((c[Y>>2]|0)-(c[X>>2]|0)|0))r=0;else r=(c[Y>>2]|0)-(c[X>>2]|0)|0;c[Y>>2]=r;c[s+(c[ca>>2]<<2)>>2]=c[X>>2];c[j+(c[ca>>2]<<2)>>2]=c[Y>>2];c[ca>>2]=(c[ca>>2]|0)+1}c[Z>>2]=kd(c[D>>2]|0,c[E>>2]|0,c[P>>2]|0,c[ga>>2]|0,s,j,n,c[R>>2]|0,c[U>>2]|0,c[V>>2]|0,c[fa>>2]|0,c[S>>2]|0,c[ba>>2]|0,c[T>>2]|0,c[$>>2]|0,c[F>>2]|0,c[G>>2]|0,c[H>>2]|0,c[I>>2]|0,c[J>>2]|0,c[K>>2]|0,c[L>>2]|0,c[M>>2]|0,c[N>>2]|0)|0;ga=c[Z>>2]|0;na(c[O>>2]|0);i=ha;return ga|0}function kd(a,e,f,g,h,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B){a=a|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;s=s|0;t=t|0;u=u|0;v=v|0;w=w|0;x=x|0;y=y|0;z=z|0;A=A|0;B=B|0;var C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0;Da=i;i=i+224|0;ea=Da+208|0;ba=Da+204|0;ma=Da+200|0;P=Da+196|0;G=Da+192|0;H=Da+188|0;Q=Da+184|0;na=Da+180|0;Z=Da+176|0;oa=Da+172|0;L=Da+168|0;fa=Da+164|0;M=Da+160|0;ga=Da+156|0;W=Da+152|0;ha=Da+148|0;ia=Da+144|0;ja=Da+140|0;ka=Da+136|0;la=Da+132|0;X=Da+128|0;Y=Da+124|0;N=Da+120|0;O=Da+116|0;aa=Da+112|0;J=Da+108|0;C=Da+104|0;D=Da+100|0;za=Da+96|0;Aa=Da+92|0;Ca=Da+88|0;ua=Da+84|0;R=Da+80|0;ca=Da+76|0;$=Da+72|0;I=Da+68|0;sa=Da+64|0;E=Da+60|0;F=Da+56|0;K=Da+52|0;T=Da+48|0;S=Da+44|0;U=Da+40|0;da=Da+36|0;qa=Da+32|0;pa=Da+28|0;va=Da+24|0;Ba=Da+20|0;ra=Da+16|0;wa=Da+12|0;ta=Da+8|0;ya=Da+4|0;xa=Da;c[ea>>2]=a;c[ba>>2]=e;c[ma>>2]=f;c[P>>2]=g;c[G>>2]=h;c[H>>2]=j;c[Q>>2]=k;c[na>>2]=l;c[Z>>2]=m;c[oa>>2]=n;c[L>>2]=o;c[fa>>2]=p;c[M>>2]=q;c[ga>>2]=r;c[W>>2]=s;c[ha>>2]=t;c[ia>>2]=u;c[ja>>2]=v;c[ka>>2]=w;c[la>>2]=x;c[X>>2]=y;c[Y>>2]=z;c[N>>2]=A;c[O>>2]=B;c[ua>>2]=-1;c[R>>2]=c[ka>>2]<<3;c[Ca>>2]=(c[ka>>2]|0)>1&1;c[Aa>>2]=c[la>>2]<<3;c[J>>2]=0;c[C>>2]=64;c[D>>2]=0;while(1){if((c[D>>2]|0)>=6)break;c[E>>2]=(c[J>>2]|0)+(c[C>>2]|0)>>1;c[aa>>2]=0;c[I>>2]=0;c[za>>2]=c[ma>>2];while(1){m=c[za>>2]|0;c[za>>2]=m+-1;if((m|0)<=(c[ba>>2]|0))break;c[F>>2]=(c[(c[G>>2]|0)+(c[za>>2]<<2)>>2]|0)+((_(c[E>>2]|0,c[(c[H>>2]|0)+(c[za>>2]<<2)>>2]|0)|0)>>6);if(!(c[I>>2]|0?1:(c[F>>2]|0)>=(c[(c[Q>>2]|0)+(c[za>>2]<<2)>>2]|0))){if((c[F>>2]|0)<(c[R>>2]|0))continue;c[aa>>2]=(c[aa>>2]|0)+(c[R>>2]|0);continue}c[I>>2]=1;if((c[F>>2]|0)<(c[(c[na>>2]|0)+(c[za>>2]<<2)>>2]|0))w=c[F>>2]|0;else w=c[(c[na>>2]|0)+(c[za>>2]<<2)>>2]|0;c[aa>>2]=(c[aa>>2]|0)+w}w=c[E>>2]|0;if((c[aa>>2]|0)>(c[Z>>2]|0))c[C>>2]=w;else c[J>>2]=w;c[D>>2]=(c[D>>2]|0)+1}c[aa>>2]=0;c[I>>2]=0;c[za>>2]=c[ma>>2];while(1){F=c[za>>2]|0;c[za>>2]=F+-1;if((F|0)<=(c[ba>>2]|0))break;c[K>>2]=(c[(c[G>>2]|0)+(c[za>>2]<<2)>>2]|0)+((_(c[J>>2]|0,c[(c[H>>2]|0)+(c[za>>2]<<2)>>2]|0)|0)>>6);do if(!(c[I>>2]|0?1:(c[K>>2]|0)>=(c[(c[Q>>2]|0)+(c[za>>2]<<2)>>2]|0)))if((c[K>>2]|0)>=(c[R>>2]|0)){c[K>>2]=c[R>>2];break}else{c[K>>2]=0;break}else c[I>>2]=1;while(0);if((c[K>>2]|0)<(c[(c[na>>2]|0)+(c[za>>2]<<2)>>2]|0))w=c[K>>2]|0;else w=c[(c[na>>2]|0)+(c[za>>2]<<2)>>2]|0;c[K>>2]=w;c[(c[ha>>2]|0)+(c[za>>2]<<2)>>2]=c[K>>2];c[aa>>2]=(c[aa>>2]|0)+(c[K>>2]|0)}c[ua>>2]=c[ma>>2];while(1){c[za>>2]=(c[ua>>2]|0)-1;if((c[za>>2]|0)<=(c[P>>2]|0)){V=29;break}c[ca>>2]=(c[Z>>2]|0)-(c[aa>>2]|0);c[$>>2]=ld(c[ca>>2]|0,(b[(c[(c[ea>>2]|0)+32>>2]|0)+(c[ua>>2]<<1)>>1]|0)-(b[(c[(c[ea>>2]|0)+32>>2]|0)+(c[ba>>2]<<1)>>1]|0)|0)|0;K=_((b[(c[(c[ea>>2]|0)+32>>2]|0)+(c[ua>>2]<<1)>>1]|0)-(b[(c[(c[ea>>2]|0)+32>>2]|0)+(c[ba>>2]<<1)>>1]|0)|0,c[$>>2]|0)|0;c[ca>>2]=(c[ca>>2]|0)-K;if(((c[ca>>2]|0)-((b[(c[(c[ea>>2]|0)+32>>2]|0)+(c[za>>2]<<1)>>1]|0)-(b[(c[(c[ea>>2]|0)+32>>2]|0)+(c[ba>>2]<<1)>>1]|0))|0)>0)w=(c[ca>>2]|0)-((b[(c[(c[ea>>2]|0)+32>>2]|0)+(c[za>>2]<<1)>>1]|0)-(b[(c[(c[ea>>2]|0)+32>>2]|0)+(c[ba>>2]<<1)>>1]|0))|0;else w=0;c[U>>2]=w;c[T>>2]=(b[(c[(c[ea>>2]|0)+32>>2]|0)+(c[ua>>2]<<1)>>1]|0)-(b[(c[(c[ea>>2]|0)+32>>2]|0)+(c[za>>2]<<1)>>1]|0);K=(c[(c[ha>>2]|0)+(c[za>>2]<<2)>>2]|0)+(_(c[$>>2]|0,c[T>>2]|0)|0)|0;c[S>>2]=K+(c[U>>2]|0);if((c[(c[Q>>2]|0)+(c[za>>2]<<2)>>2]|0)>((c[R>>2]|0)+8|0))w=c[(c[Q>>2]|0)+(c[za>>2]<<2)>>2]|0;else w=(c[R>>2]|0)+8|0;if((c[S>>2]|0)>=(w|0)){if(!(c[Y>>2]|0)){if(dc(c[X>>2]|0,1)|0)break}else{if((c[ua>>2]|0)<=((c[ba>>2]|0)+2|0)){V=40;break}K=_((c[za>>2]|0)<(c[N>>2]|0)?7:9,c[T>>2]|0)|0;if((c[S>>2]|0)>(K<<c[la>>2]<<3>>4|0)?(c[za>>2]|0)<=(c[O>>2]|0):0){V=40;break}pc(c[X>>2]|0,0,1)}c[aa>>2]=(c[aa>>2]|0)+8;c[S>>2]=(c[S>>2]|0)-8}c[aa>>2]=(c[aa>>2]|0)-((c[(c[ha>>2]|0)+(c[za>>2]<<2)>>2]|0)+(c[M>>2]|0));if((c[M>>2]|0)>0)c[M>>2]=d[26723+((c[za>>2]|0)-(c[ba>>2]|0))>>0];c[aa>>2]=(c[aa>>2]|0)+(c[M>>2]|0);if((c[S>>2]|0)>=(c[R>>2]|0)){c[aa>>2]=(c[aa>>2]|0)+(c[R>>2]|0);c[(c[ha>>2]|0)+(c[za>>2]<<2)>>2]=c[R>>2]}else c[(c[ha>>2]|0)+(c[za>>2]<<2)>>2]=0;c[ua>>2]=(c[ua>>2]|0)+-1}if((V|0)==29)c[Z>>2]=(c[Z>>2]|0)+(c[L>>2]|0);else if((V|0)==40)pc(c[X>>2]|0,1,1);do if((c[M>>2]|0)>0){if(!(c[Y>>2]|0)){V=c[ba>>2]|0;V=V+(fc(c[X>>2]|0,(c[ua>>2]|0)+1-(c[ba>>2]|0)|0)|0)|0;c[c[fa>>2]>>2]=V;break}if((c[c[fa>>2]>>2]|0)<(c[ua>>2]|0))w=c[c[fa>>2]>>2]|0;else w=c[ua>>2]|0;c[c[fa>>2]>>2]=w;rc(c[X>>2]|0,(c[c[fa>>2]>>2]|0)-(c[ba>>2]|0)|0,(c[ua>>2]|0)+1-(c[ba>>2]|0)|0)}else c[c[fa>>2]>>2]=0;while(0);if((c[c[fa>>2]>>2]|0)<=(c[ba>>2]|0)){c[Z>>2]=(c[Z>>2]|0)+(c[W>>2]|0);c[W>>2]=0}do if((c[W>>2]|0)>0){w=c[X>>2]|0;if(c[Y>>2]|0){pc(w,c[c[ga>>2]>>2]|0,1);break}else{Y=dc(w,1)|0;c[c[ga>>2]>>2]=Y;break}}else c[c[ga>>2]>>2]=0;while(0);c[ca>>2]=(c[Z>>2]|0)-(c[aa>>2]|0);c[$>>2]=ld(c[ca>>2]|0,(b[(c[(c[ea>>2]|0)+32>>2]|0)+(c[ua>>2]<<1)>>1]|0)-(b[(c[(c[ea>>2]|0)+32>>2]|0)+(c[ba>>2]<<1)>>1]|0)|0)|0;aa=_((b[(c[(c[ea>>2]|0)+32>>2]|0)+(c[ua>>2]<<1)>>1]|0)-(b[(c[(c[ea>>2]|0)+32>>2]|0)+(c[ba>>2]<<1)>>1]|0)|0,c[$>>2]|0)|0;c[ca>>2]=(c[ca>>2]|0)-aa;c[za>>2]=c[ba>>2];while(1){if((c[za>>2]|0)>=(c[ua>>2]|0))break;Z=_(c[$>>2]|0,(b[(c[(c[ea>>2]|0)+32>>2]|0)+((c[za>>2]|0)+1<<1)>>1]|0)-(b[(c[(c[ea>>2]|0)+32>>2]|0)+(c[za>>2]<<1)>>1]|0)|0)|0;aa=(c[ha>>2]|0)+(c[za>>2]<<2)|0;c[aa>>2]=(c[aa>>2]|0)+Z;c[za>>2]=(c[za>>2]|0)+1}c[za>>2]=c[ba>>2];while(1){if((c[za>>2]|0)>=(c[ua>>2]|0))break;if((c[ca>>2]|0)<((b[(c[(c[ea>>2]|0)+32>>2]|0)+((c[za>>2]|0)+1<<1)>>1]|0)-(b[(c[(c[ea>>2]|0)+32>>2]|0)+(c[za>>2]<<1)>>1]|0)|0))w=c[ca>>2]|0;else w=(b[(c[(c[ea>>2]|0)+32>>2]|0)+((c[za>>2]|0)+1<<1)>>1]|0)-(b[(c[(c[ea>>2]|0)+32>>2]|0)+(c[za>>2]<<1)>>1]|0)|0;c[da>>2]=w;aa=(c[ha>>2]|0)+(c[za>>2]<<2)|0;c[aa>>2]=(c[aa>>2]|0)+(c[da>>2]|0);c[ca>>2]=(c[ca>>2]|0)-(c[da>>2]|0);c[za>>2]=(c[za>>2]|0)+1}c[sa>>2]=0;c[za>>2]=c[ba>>2];while(1){if((c[za>>2]|0)>=(c[ua>>2]|0))break;c[qa>>2]=(b[(c[(c[ea>>2]|0)+32>>2]|0)+((c[za>>2]|0)+1<<1)>>1]|0)-(b[(c[(c[ea>>2]|0)+32>>2]|0)+(c[za>>2]<<1)>>1]|0);c[pa>>2]=c[qa>>2]<<c[la>>2];c[ta>>2]=(c[(c[ha>>2]|0)+(c[za>>2]<<2)>>2]|0)+(c[sa>>2]|0);w=c[ta>>2]|0;if((c[pa>>2]|0)>1){if((w-(c[(c[na>>2]|0)+(c[za>>2]<<2)>>2]|0)|0)>0)w=(c[ta>>2]|0)-(c[(c[na>>2]|0)+(c[za>>2]<<2)>>2]|0)|0;else w=0;c[wa>>2]=w;c[(c[ha>>2]|0)+(c[za>>2]<<2)>>2]=(c[ta>>2]|0)-(c[wa>>2]|0);w=_(c[ka>>2]|0,c[pa>>2]|0)|0;if((c[ka>>2]|0)==2&(c[pa>>2]|0)>2?!(c[c[ga>>2]>>2]|0):0)x=(c[za>>2]|0)<(c[c[fa>>2]>>2]|0);else x=0;c[va>>2]=w+(x?1:0);c[ra>>2]=_(c[va>>2]|0,(b[(c[(c[ea>>2]|0)+56>>2]|0)+(c[za>>2]<<1)>>1]|0)+(c[Aa>>2]|0)|0)|0;c[Ba>>2]=(c[ra>>2]>>1)-((c[va>>2]|0)*21|0);if((c[pa>>2]|0)==2)c[Ba>>2]=(c[Ba>>2]|0)+(c[va>>2]<<3>>2);if(((c[(c[ha>>2]|0)+(c[za>>2]<<2)>>2]|0)+(c[Ba>>2]|0)|0)>=(c[va>>2]<<1<<3|0)){if(((c[(c[ha>>2]|0)+(c[za>>2]<<2)>>2]|0)+(c[Ba>>2]|0)|0)<((c[va>>2]|0)*3<<3|0))c[Ba>>2]=(c[Ba>>2]|0)+(c[ra>>2]>>3)}else c[Ba>>2]=(c[Ba>>2]|0)+(c[ra>>2]>>2);if(0>((c[(c[ha>>2]|0)+(c[za>>2]<<2)>>2]|0)+(c[Ba>>2]|0)+(c[va>>2]<<2)|0))w=0;else w=(c[(c[ha>>2]|0)+(c[za>>2]<<2)>>2]|0)+(c[Ba>>2]|0)+(c[va>>2]<<2)|0;c[(c[ia>>2]|0)+(c[za>>2]<<2)>>2]=w;da=(ld(c[(c[ia>>2]|0)+(c[za>>2]<<2)>>2]|0,c[va>>2]|0)|0)>>>3;c[(c[ia>>2]|0)+(c[za>>2]<<2)>>2]=da;da=_(c[ka>>2]|0,c[(c[ia>>2]|0)+(c[za>>2]<<2)>>2]|0)|0;if((da|0)>(c[(c[ha>>2]|0)+(c[za>>2]<<2)>>2]>>3|0))c[(c[ia>>2]|0)+(c[za>>2]<<2)>>2]=c[(c[ha>>2]|0)+(c[za>>2]<<2)>>2]>>c[Ca>>2]>>3;if((c[(c[ia>>2]|0)+(c[za>>2]<<2)>>2]|0)<8)w=c[(c[ia>>2]|0)+(c[za>>2]<<2)>>2]|0;else w=8;c[(c[ia>>2]|0)+(c[za>>2]<<2)>>2]=w;ca=_(c[(c[ia>>2]|0)+(c[za>>2]<<2)>>2]|0,c[va>>2]<<3)|0;c[(c[ja>>2]|0)+(c[za>>2]<<2)>>2]=(ca|0)>=((c[(c[ha>>2]|0)+(c[za>>2]<<2)>>2]|0)+(c[Ba>>2]|0)|0)&1;ca=(_(c[ka>>2]|0,c[(c[ia>>2]|0)+(c[za>>2]<<2)>>2]|0)|0)<<3;da=(c[ha>>2]|0)+(c[za>>2]<<2)|0;c[da>>2]=(c[da>>2]|0)-ca}else{if(0>(w-(c[ka>>2]<<3)|0))w=0;else w=(c[ta>>2]|0)-(c[ka>>2]<<3)|0;c[wa>>2]=w;c[(c[ha>>2]|0)+(c[za>>2]<<2)>>2]=(c[ta>>2]|0)-(c[wa>>2]|0);c[(c[ia>>2]|0)+(c[za>>2]<<2)>>2]=0;c[(c[ja>>2]|0)+(c[za>>2]<<2)>>2]=1}if((c[wa>>2]|0)>0){if((c[wa>>2]>>(c[Ca>>2]|0)+3|0)<(8-(c[(c[ia>>2]|0)+(c[za>>2]<<2)>>2]|0)|0))w=c[wa>>2]>>(c[Ca>>2]|0)+3;else w=8-(c[(c[ia>>2]|0)+(c[za>>2]<<2)>>2]|0)|0;c[ya>>2]=w;da=(c[ia>>2]|0)+(c[za>>2]<<2)|0;c[da>>2]=(c[da>>2]|0)+(c[ya>>2]|0);c[xa>>2]=(_(c[ya>>2]|0,c[ka>>2]|0)|0)<<3;c[(c[ja>>2]|0)+(c[za>>2]<<2)>>2]=(c[xa>>2]|0)>=((c[wa>>2]|0)-(c[sa>>2]|0)|0)&1;c[wa>>2]=(c[wa>>2]|0)-(c[xa>>2]|0)}c[sa>>2]=c[wa>>2];c[za>>2]=(c[za>>2]|0)+1}c[c[oa>>2]>>2]=c[sa>>2];while(1){if((c[za>>2]|0)>=(c[ma>>2]|0))break;c[(c[ia>>2]|0)+(c[za>>2]<<2)>>2]=c[(c[ha>>2]|0)+(c[za>>2]<<2)>>2]>>c[Ca>>2]>>3;c[(c[ha>>2]|0)+(c[za>>2]<<2)>>2]=0;c[(c[ja>>2]|0)+(c[za>>2]<<2)>>2]=(c[(c[ia>>2]|0)+(c[za>>2]<<2)>>2]|0)<1&1;c[za>>2]=(c[za>>2]|0)+1}i=Da;return c[ua>>2]|0}function ld(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f+4|0;d=f;c[e>>2]=a;c[d>>2]=b;i=f;return ((c[e>>2]|0)>>>0)/((c[d>>2]|0)>>>0)|0|0}function md(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;E=i;i=i+96|0;j=E+84|0;k=E+80|0;l=E+76|0;F=E+72|0;m=E+68|0;n=E+64|0;v=E+60|0;w=E+56|0;z=E+52|0;x=E+48|0;A=E+44|0;C=E+40|0;D=E+36|0;u=E+32|0;o=E+28|0;y=E+24|0;B=E+20|0;s=E+16|0;t=E+12|0;r=E+8|0;p=E+4|0;q=E;c[j>>2]=a;c[k>>2]=b;c[l>>2]=d;c[F>>2]=e;c[m>>2]=f;c[n>>2]=h;f=c[k>>2]|0;c[o>>2]=ia()|0;a=i;i=i+((1*(f<<2)|0)+15&-16)|0;f=i;i=i+((1*(c[k>>2]<<2)|0)+15&-16)|0;d=i;i=i+((1*(c[k>>2]<<2)|0)+15&-16)|0;nd(c[j>>2]|0,c[k>>2]|0,1,c[m>>2]|0,c[l>>2]|0,c[F>>2]|0);g[A>>2]=0.0;c[w>>2]=0;do{b=d+(c[w>>2]<<2)|0;if(+g[(c[j>>2]|0)+(c[w>>2]<<2)>>2]>0.0)g[b>>2]=1.0;else{g[b>>2]=-1.0;g[(c[j>>2]|0)+(c[w>>2]<<2)>>2]=-+g[(c[j>>2]|0)+(c[w>>2]<<2)>>2]}c[f+(c[w>>2]<<2)>>2]=0;g[a+(c[w>>2]<<2)>>2]=0.0;F=(c[w>>2]|0)+1|0;c[w>>2]=F}while((F|0)<(c[k>>2]|0));g[D>>2]=0.0;g[C>>2]=0.0;c[x>>2]=c[l>>2];if((c[l>>2]|0)>(c[k>>2]>>1|0)){c[w>>2]=0;do{g[A>>2]=+g[A>>2]+ +g[(c[j>>2]|0)+(c[w>>2]<<2)>>2];F=(c[w>>2]|0)+1|0;c[w>>2]=F}while((F|0)<(c[k>>2]|0));if(!(+g[A>>2]>1.0000000036274937e-15&+g[A>>2]<64.0)){g[c[j>>2]>>2]=1.0;c[w>>2]=1;do{g[(c[j>>2]|0)+(c[w>>2]<<2)>>2]=0.0;F=(c[w>>2]|0)+1|0;c[w>>2]=F}while((F|0)<(c[k>>2]|0));g[A>>2]=1.0}g[y>>2]=+((c[l>>2]|0)-1|0)*(1.0/+g[A>>2]);c[w>>2]=0;do{F=~~+M(+(+g[y>>2]*+g[(c[j>>2]|0)+(c[w>>2]<<2)>>2]));c[f+(c[w>>2]<<2)>>2]=F;g[a+(c[w>>2]<<2)>>2]=+(c[f+(c[w>>2]<<2)>>2]|0);g[D>>2]=+g[D>>2]+ +g[a+(c[w>>2]<<2)>>2]*+g[a+(c[w>>2]<<2)>>2];g[C>>2]=+g[C>>2]+ +g[(c[j>>2]|0)+(c[w>>2]<<2)>>2]*+g[a+(c[w>>2]<<2)>>2];F=a+(c[w>>2]<<2)|0;g[F>>2]=+g[F>>2]*2.0;c[x>>2]=(c[x>>2]|0)-(c[f+(c[w>>2]<<2)>>2]|0);F=(c[w>>2]|0)+1|0;c[w>>2]=F}while((F|0)<(c[k>>2]|0))}if((c[x>>2]|0)>((c[k>>2]|0)+3|0)){g[B>>2]=+(c[x>>2]|0);g[D>>2]=+g[D>>2]+ +g[B>>2]*+g[B>>2];g[D>>2]=+g[D>>2]+ +g[B>>2]*+g[a>>2];c[f>>2]=(c[f>>2]|0)+(c[x>>2]|0);c[x>>2]=0}g[z>>2]=1.0;c[v>>2]=0;while(1){if((c[v>>2]|0)>=(c[x>>2]|0))break;g[t>>2]=-999999986991104.0;g[r>>2]=0.0;c[s>>2]=0;g[D>>2]=+g[D>>2]+1.0;c[w>>2]=0;do{g[p>>2]=+g[C>>2]+ +g[(c[j>>2]|0)+(c[w>>2]<<2)>>2];g[q>>2]=+g[D>>2]+ +g[a+(c[w>>2]<<2)>>2];g[p>>2]=+g[p>>2]*+g[p>>2];if(+g[r>>2]*+g[p>>2]>+g[q>>2]*+g[t>>2]){g[r>>2]=+g[q>>2];g[t>>2]=+g[p>>2];c[s>>2]=c[w>>2]}F=(c[w>>2]|0)+1|0;c[w>>2]=F}while((F|0)<(c[k>>2]|0));g[C>>2]=+g[C>>2]+ +g[(c[j>>2]|0)+(c[s>>2]<<2)>>2];g[D>>2]=+g[D>>2]+ +g[a+(c[s>>2]<<2)>>2];F=a+(c[s>>2]<<2)|0;g[F>>2]=+g[F>>2]+ +g[z>>2]*2.0;F=f+(c[s>>2]<<2)|0;c[F>>2]=(c[F>>2]|0)+1;c[v>>2]=(c[v>>2]|0)+1}c[w>>2]=0;do{g[(c[j>>2]|0)+(c[w>>2]<<2)>>2]=+g[d+(c[w>>2]<<2)>>2]*+g[(c[j>>2]|0)+(c[w>>2]<<2)>>2];if(+g[d+(c[w>>2]<<2)>>2]<0.0)c[f+(c[w>>2]<<2)>>2]=0-(c[f+(c[w>>2]<<2)>>2]|0);F=(c[w>>2]|0)+1|0;c[w>>2]=F}while((F|0)<(c[k>>2]|0));Tb(f,c[k>>2]|0,c[l>>2]|0,c[n>>2]|0);c[u>>2]=qd(f,c[k>>2]|0,c[m>>2]|0)|0;F=c[u>>2]|0;na(c[o>>2]|0);i=E;return F|0}function nd(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=i;i=i+64|0;j=w+48|0;k=w+44|0;l=w+40|0;m=w+36|0;n=w+32|0;o=w+28|0;s=w+24|0;p=w+20|0;t=w+16|0;r=w+12|0;v=w+8|0;u=w+4|0;q=w;c[j>>2]=a;c[k>>2]=b;c[l>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=h;c[u>>2]=0;if((c[o>>2]|0)==0?1:(c[n>>2]<<1|0)>=(c[k>>2]|0)){i=w;return}c[q>>2]=c[17596+((c[o>>2]|0)-1<<2)>>2];g[r>>2]=+(c[k>>2]|0)*1.0/+((c[k>>2]|0)+(_(c[q>>2]|0,c[n>>2]|0)|0)|0);g[v>>2]=+g[r>>2]*+g[r>>2]*.5;g[p>>2]=+Q(+(+g[v>>2]*1.5707963705062866));g[t>>2]=+Q(+((1.0-+g[v>>2])*1.5707963705062866));a:do if((c[k>>2]|0)>=(c[m>>2]<<3|0)){c[u>>2]=1;while(1){v=_(c[u>>2]|0,c[u>>2]|0)|0;v=_(v+(c[u>>2]|0)|0,c[m>>2]|0)|0;if((v+(c[m>>2]>>2)|0)>=(c[k>>2]|0))break a;c[u>>2]=(c[u>>2]|0)+1}}while(0);c[k>>2]=od(c[k>>2]|0,c[m>>2]|0)|0;c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[m>>2]|0))break;if((c[l>>2]|0)>=0){v=(c[j>>2]|0)+((_(c[s>>2]|0,c[k>>2]|0)|0)<<2)|0;pd(v,c[k>>2]|0,1,+g[p>>2],-+g[t>>2]);if(c[u>>2]|0){v=(c[j>>2]|0)+((_(c[s>>2]|0,c[k>>2]|0)|0)<<2)|0;pd(v,c[k>>2]|0,c[u>>2]|0,+g[t>>2],-+g[p>>2])}}else{if(c[u>>2]|0){v=(c[j>>2]|0)+((_(c[s>>2]|0,c[k>>2]|0)|0)<<2)|0;pd(v,c[k>>2]|0,c[u>>2]|0,+g[t>>2],+g[p>>2])}v=(c[j>>2]|0)+((_(c[s>>2]|0,c[k>>2]|0)|0)<<2)|0;pd(v,c[k>>2]|0,1,+g[p>>2],+g[t>>2])}c[s>>2]=(c[s>>2]|0)+1}i=w;return}function od(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f+4|0;d=f;c[e>>2]=a;c[d>>2]=b;i=f;return ((c[e>>2]|0)>>>0)/((c[d>>2]|0)>>>0)|0|0}function pd(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=+e;f=+f;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=i;i=i+48|0;h=u+44|0;j=u+40|0;k=u+36|0;l=u+32|0;m=u+28|0;o=u+24|0;p=u+20|0;n=u+16|0;q=u+12|0;s=u+8|0;r=u+4|0;t=u;c[h>>2]=a;c[j>>2]=b;c[k>>2]=d;g[l>>2]=e;g[m>>2]=f;c[n>>2]=c[h>>2];g[p>>2]=-+g[m>>2];c[o>>2]=0;while(1){if((c[o>>2]|0)>=((c[j>>2]|0)-(c[k>>2]|0)|0))break;g[q>>2]=+g[c[n>>2]>>2];g[s>>2]=+g[(c[n>>2]|0)+(c[k>>2]<<2)>>2];g[(c[n>>2]|0)+(c[k>>2]<<2)>>2]=+g[l>>2]*+g[s>>2]+ +g[m>>2]*+g[q>>2];f=+g[l>>2]*+g[q>>2]+ +g[p>>2]*+g[s>>2];d=c[n>>2]|0;c[n>>2]=d+4;g[d>>2]=f;c[o>>2]=(c[o>>2]|0)+1}c[n>>2]=(c[h>>2]|0)+((c[j>>2]|0)-(c[k>>2]<<1)-1<<2);c[o>>2]=(c[j>>2]|0)-(c[k>>2]<<1)-1;while(1){if((c[o>>2]|0)<0)break;g[r>>2]=+g[c[n>>2]>>2];g[t>>2]=+g[(c[n>>2]|0)+(c[k>>2]<<2)>>2];g[(c[n>>2]|0)+(c[k>>2]<<2)>>2]=+g[l>>2]*+g[t>>2]+ +g[m>>2]*+g[r>>2];f=+g[l>>2]*+g[r>>2]+ +g[p>>2]*+g[t>>2];s=c[n>>2]|0;c[n>>2]=s+-4;g[s>>2]=f;c[o>>2]=(c[o>>2]|0)+-1}i=u;return}function qd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+48|0;e=o+32|0;f=o+28|0;g=o+24|0;h=o+20|0;k=o+16|0;j=o+12|0;l=o+8|0;m=o+4|0;n=o;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;if((c[h>>2]|0)<=1){c[e>>2]=1;n=c[e>>2]|0;i=o;return n|0}c[j>>2]=od(c[g>>2]|0,c[h>>2]|0)|0;c[k>>2]=0;c[l>>2]=0;do{c[n>>2]=0;c[m>>2]=0;do{a=_(c[l>>2]|0,c[j>>2]|0)|0;c[n>>2]=c[n>>2]|c[(c[f>>2]|0)+(a+(c[m>>2]|0)<<2)>>2];a=(c[m>>2]|0)+1|0;c[m>>2]=a}while((a|0)<(c[j>>2]|0));c[k>>2]=c[k>>2]|((c[n>>2]|0)!=0&1)<<c[l>>2];a=(c[l>>2]|0)+1|0;c[l>>2]=a}while((a|0)<(c[h>>2]|0));c[e>>2]=c[k>>2];n=c[e>>2]|0;i=o;return n|0}function rd(a,b,d,e,f,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=+j;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;k=i;i=i+48|0;r=k+36|0;o=k+32|0;q=k+28|0;p=k+24|0;n=k+20|0;u=k+16|0;s=k+12|0;t=k+8|0;m=k+4|0;l=k;c[r>>2]=a;c[o>>2]=b;c[q>>2]=d;c[p>>2]=e;c[n>>2]=f;c[u>>2]=h;g[s>>2]=j;h=c[o>>2]|0;c[l>>2]=ia()|0;e=i;i=i+((1*(h<<2)|0)+15&-16)|0;g[t>>2]=+Vb(e,c[o>>2]|0,c[q>>2]|0,c[u>>2]|0);sd(e,c[r>>2]|0,c[o>>2]|0,+g[t>>2],+g[s>>2]);nd(c[r>>2]|0,c[o>>2]|0,-1,c[n>>2]|0,c[q>>2]|0,c[p>>2]|0);c[m>>2]=qd(e,c[o>>2]|0,c[n>>2]|0)|0;e=c[m>>2]|0;na(c[l>>2]|0);i=k;return e|0}function sd(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=+e;f=+f;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;n=i;i=i+32|0;h=n+28|0;j=n+24|0;k=n+20|0;q=n+16|0;o=n+12|0;m=n+8|0;p=n+4|0;l=n;c[h>>2]=a;c[j>>2]=b;c[k>>2]=d;g[q>>2]=e;g[o>>2]=f;g[p>>2]=+g[q>>2];f=1.0/+O(+(+g[p>>2]));g[l>>2]=f*+g[o>>2];c[m>>2]=0;do{g[(c[j>>2]|0)+(c[m>>2]<<2)>>2]=+g[l>>2]*+(c[(c[h>>2]|0)+(c[m>>2]<<2)>>2]|0);q=(c[m>>2]|0)+1|0;c[m>>2]=q}while((q|0)<(c[k>>2]|0));i=n;return}function td(a,b,d,e){a=a|0;b=b|0;d=+d;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;l=i;i=i+48|0;m=l+32|0;f=l+28|0;n=l+24|0;j=l+16|0;p=l+12|0;h=l+8|0;o=l+4|0;k=l;c[m>>2]=a;c[f>>2]=b;g[n>>2]=d;c[l+20>>2]=e;g[p>>2]=+ud(c[m>>2]|0,c[m>>2]|0,c[f>>2]|0)+1.0000000036274937e-15;g[o>>2]=+g[p>>2];d=1.0/+O(+(+g[o>>2]));g[h>>2]=d*+g[n>>2];c[k>>2]=c[m>>2];c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[f>>2]|0))break;g[c[k>>2]>>2]=+g[h>>2]*+g[c[k>>2]>>2];c[k>>2]=(c[k>>2]|0)+4;c[j>>2]=(c[j>>2]|0)+1}i=l;return}function ud(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;f=m+16|0;h=m+12|0;j=m+8|0;k=m+4|0;l=m;c[f>>2]=a;c[h>>2]=b;c[j>>2]=d;g[l>>2]=0.0;c[k>>2]=0;while(1){e=+g[l>>2];if((c[k>>2]|0)>=(c[j>>2]|0))break;g[l>>2]=e+ +g[(c[f>>2]|0)+(c[k>>2]<<2)>>2]*+g[(c[h>>2]|0)+(c[k>>2]<<2)>>2];c[k>>2]=(c[k>>2]|0)+1}i=m;return +e}function vd(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0;t=i;i=i+64|0;h=t+48|0;j=t+44|0;u=t+40|0;k=t+36|0;n=t+28|0;o=t+24|0;q=t+20|0;s=t+16|0;l=t+12|0;m=t+8|0;p=t+4|0;r=t;c[h>>2]=a;c[j>>2]=b;c[u>>2]=d;c[k>>2]=e;c[t+32>>2]=f;g[m>>2]=1.0000000036274937e-15;g[l>>2]=1.0000000036274937e-15;a:do if(c[u>>2]|0){c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[k>>2]|0))break a;g[p>>2]=+g[(c[h>>2]|0)+(c[n>>2]<<2)>>2]+ +g[(c[j>>2]|0)+(c[n>>2]<<2)>>2];g[r>>2]=+g[(c[h>>2]|0)+(c[n>>2]<<2)>>2]-+g[(c[j>>2]|0)+(c[n>>2]<<2)>>2];g[l>>2]=+g[l>>2]+ +g[p>>2]*+g[p>>2];g[m>>2]=+g[m>>2]+ +g[r>>2]*+g[r>>2];c[n>>2]=(c[n>>2]|0)+1}}else{v=+ud(c[h>>2]|0,c[h>>2]|0,c[k>>2]|0);g[l>>2]=+g[l>>2]+v;v=+ud(c[j>>2]|0,c[j>>2]|0,c[k>>2]|0);g[m>>2]=+g[m>>2]+v}while(0);g[q>>2]=+O(+(+g[l>>2]));g[s>>2]=+O(+(+g[m>>2]));c[o>>2]=~~+M(+(+W(+(+g[s>>2]),+(+g[q>>2]))*10430.3818359375+.5));i=t;return c[o>>2]|0}function wd(a){a=a|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;d=h+12|0;g=h+8|0;f=h+4|0;e=h;c[d>>2]=a;c[f>>2]=32767/((c[(c[d>>2]|0)+2340>>2]|0)+1|0)|0;c[e>>2]=0;c[g>>2]=0;while(1){if((c[g>>2]|0)>=(c[(c[d>>2]|0)+2340>>2]|0))break;c[e>>2]=(c[e>>2]|0)+(c[f>>2]|0);b[(c[d>>2]|0)+2772+1280+(c[g>>2]<<1)>>1]=c[e>>2];c[g>>2]=(c[g>>2]|0)+1}c[(c[d>>2]|0)+2772+1376>>2]=0;c[(c[d>>2]|0)+2772+1380>>2]=3176576;i=h;return}
function cg(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+48|0;f=t+40|0;g=t+36|0;h=t+32|0;m=t+28|0;j=t+24|0;n=t+20|0;o=t+16|0;k=t+44|0;l=t+12|0;r=t+8|0;q=t+4|0;p=t;c[f>>2]=a;c[g>>2]=d;c[h>>2]=e;c[j>>2]=0;c[o>>2]=0;while(1){if((c[o>>2]|0)>=20)break;c[r>>2]=(b[c[f>>2]>>1]|0)-(b[c[g>>2]>>1]|0);c[j>>2]=0;c[m>>2]=1;while(1){if((c[m>>2]|0)>((c[h>>2]|0)-1|0))break;c[l>>2]=(b[(c[f>>2]|0)+(c[m>>2]<<1)>>1]|0)-((b[(c[f>>2]|0)+((c[m>>2]|0)-1<<1)>>1]|0)+(b[(c[g>>2]|0)+(c[m>>2]<<1)>>1]|0));if((c[l>>2]|0)<(c[r>>2]|0)){c[r>>2]=c[l>>2];c[j>>2]=c[m>>2]}c[m>>2]=(c[m>>2]|0)+1}c[l>>2]=32768-((b[(c[f>>2]|0)+((c[h>>2]|0)-1<<1)>>1]|0)+(b[(c[g>>2]|0)+(c[h>>2]<<1)>>1]|0));if((c[l>>2]|0)<(c[r>>2]|0)){c[r>>2]=c[l>>2];c[j>>2]=c[h>>2]}if((c[r>>2]|0)>=0){s=41;break}do if(!(c[j>>2]|0))b[c[f>>2]>>1]=b[c[g>>2]>>1]|0;else{if((c[j>>2]|0)==(c[h>>2]|0)){b[(c[f>>2]|0)+((c[h>>2]|0)-1<<1)>>1]=32768-(b[(c[g>>2]|0)+(c[h>>2]<<1)>>1]|0);break}c[q>>2]=0;c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[j>>2]|0))break;c[q>>2]=(c[q>>2]|0)+(b[(c[g>>2]|0)+(c[n>>2]<<1)>>1]|0);c[n>>2]=(c[n>>2]|0)+1}c[q>>2]=(c[q>>2]|0)+(b[(c[g>>2]|0)+(c[j>>2]<<1)>>1]>>1);c[p>>2]=32768;c[n>>2]=c[h>>2];while(1){if((c[n>>2]|0)<=(c[j>>2]|0))break;c[p>>2]=(c[p>>2]|0)-(b[(c[g>>2]|0)+(c[n>>2]<<1)>>1]|0);c[n>>2]=(c[n>>2]|0)+-1}c[p>>2]=(c[p>>2]|0)-(b[(c[g>>2]|0)+(c[j>>2]<<1)>>1]>>1);e=((b[(c[f>>2]|0)+((c[j>>2]|0)-1<<1)>>1]|0)+(b[(c[f>>2]|0)+(c[j>>2]<<1)>>1]|0)>>1)+((b[(c[f>>2]|0)+((c[j>>2]|0)-1<<1)>>1]|0)+(b[(c[f>>2]|0)+(c[j>>2]<<1)>>1]|0)&1)|0;do if((c[q>>2]|0)>(c[p>>2]|0)){if((e|0)>(c[q>>2]|0)){e=c[q>>2]|0;break}if((((b[(c[f>>2]|0)+((c[j>>2]|0)-1<<1)>>1]|0)+(b[(c[f>>2]|0)+(c[j>>2]<<1)>>1]|0)>>1)+((b[(c[f>>2]|0)+((c[j>>2]|0)-1<<1)>>1]|0)+(b[(c[f>>2]|0)+(c[j>>2]<<1)>>1]|0)&1)|0)<(c[p>>2]|0)){e=c[p>>2]|0;break}else{e=((b[(c[f>>2]|0)+((c[j>>2]|0)-1<<1)>>1]|0)+(b[(c[f>>2]|0)+(c[j>>2]<<1)>>1]|0)>>1)+((b[(c[f>>2]|0)+((c[j>>2]|0)-1<<1)>>1]|0)+(b[(c[f>>2]|0)+(c[j>>2]<<1)>>1]|0)&1)|0;break}}else{if((e|0)>(c[p>>2]|0)){e=c[p>>2]|0;break}if((((b[(c[f>>2]|0)+((c[j>>2]|0)-1<<1)>>1]|0)+(b[(c[f>>2]|0)+(c[j>>2]<<1)>>1]|0)>>1)+((b[(c[f>>2]|0)+((c[j>>2]|0)-1<<1)>>1]|0)+(b[(c[f>>2]|0)+(c[j>>2]<<1)>>1]|0)&1)|0)<(c[q>>2]|0)){e=c[q>>2]|0;break}else{e=((b[(c[f>>2]|0)+((c[j>>2]|0)-1<<1)>>1]|0)+(b[(c[f>>2]|0)+(c[j>>2]<<1)>>1]|0)>>1)+((b[(c[f>>2]|0)+((c[j>>2]|0)-1<<1)>>1]|0)+(b[(c[f>>2]|0)+(c[j>>2]<<1)>>1]|0)&1)|0;break}}while(0);b[k>>1]=e;b[(c[f>>2]|0)+((c[j>>2]|0)-1<<1)>>1]=(b[k>>1]|0)-(b[(c[g>>2]|0)+(c[j>>2]<<1)>>1]>>1);b[(c[f>>2]|0)+(c[j>>2]<<1)>>1]=(b[(c[f>>2]|0)+((c[j>>2]|0)-1<<1)>>1]|0)+(b[(c[g>>2]|0)+(c[j>>2]<<1)>>1]|0)}while(0);c[o>>2]=(c[o>>2]|0)+1}if((s|0)==41){i=t;return}if((c[o>>2]|0)!=20){i=t;return}vg(c[f>>2]|0,c[h>>2]|0);s=(dg(b[c[f>>2]>>1]|0,b[c[g>>2]>>1]|0)|0)&65535;b[c[f>>2]>>1]=s;c[m>>2]=1;while(1){if((c[m>>2]|0)>=(c[h>>2]|0))break;s=(dg(b[(c[f>>2]|0)+(c[m>>2]<<1)>>1]|0,(b[(c[f>>2]|0)+((c[m>>2]|0)-1<<1)>>1]|0)+(b[(c[g>>2]|0)+(c[m>>2]<<1)>>1]|0)|0)|0)&65535;b[(c[f>>2]|0)+(c[m>>2]<<1)>>1]=s;c[m>>2]=(c[m>>2]|0)+1}s=(eg(b[(c[f>>2]|0)+((c[h>>2]|0)-1<<1)>>1]|0,32768-(b[(c[g>>2]|0)+(c[h>>2]<<1)>>1]|0)|0)|0)&65535;b[(c[f>>2]|0)+((c[h>>2]|0)-1<<1)>>1]=s;c[m>>2]=(c[h>>2]|0)-2;while(1){if((c[m>>2]|0)<0)break;s=(eg(b[(c[f>>2]|0)+(c[m>>2]<<1)>>1]|0,(b[(c[f>>2]|0)+((c[m>>2]|0)+1<<1)>>1]|0)-(b[(c[g>>2]|0)+((c[m>>2]|0)+1<<1)>>1]|0)|0)|0)&65535;b[(c[f>>2]|0)+(c[m>>2]<<1)>>1]=s;c[m>>2]=(c[m>>2]|0)+-1}i=t;return}function dg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f+4|0;d=f;c[e>>2]=a;c[d>>2]=b;i=f;return ((c[e>>2]|0)>(c[d>>2]|0)?c[e>>2]|0:c[d>>2]|0)|0}function eg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f+4|0;d=f;c[e>>2]=a;c[d>>2]=b;i=f;return ((c[e>>2]|0)<(c[d>>2]|0)?c[e>>2]|0:c[d>>2]|0)|0}function fg(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;f=m+20|0;g=m+16|0;h=m+12|0;j=m+8|0;k=m+4|0;l=m;c[f>>2]=a;c[g>>2]=d;c[h>>2]=e;c[k>>2]=gg(b[c[g>>2]>>1]|0,1)|0;c[k>>2]=131072/(c[k>>2]|0)|0;c[l>>2]=gg((b[(c[g>>2]|0)+2>>1]|0)-(b[c[g>>2]>>1]|0)|0,1)|0;c[l>>2]=131072/(c[l>>2]|0)|0;d=(hg((c[k>>2]|0)+(c[l>>2]|0)|0,32767)|0)&65535;b[c[f>>2]>>1]=d;c[j>>2]=1;while(1){if((c[j>>2]|0)>=((c[h>>2]|0)-1|0))break;c[k>>2]=gg((b[(c[g>>2]|0)+((c[j>>2]|0)+1<<1)>>1]|0)-(b[(c[g>>2]|0)+(c[j>>2]<<1)>>1]|0)|0,1)|0;c[k>>2]=131072/(c[k>>2]|0)|0;d=(hg((c[k>>2]|0)+(c[l>>2]|0)|0,32767)|0)&65535;b[(c[f>>2]|0)+(c[j>>2]<<1)>>1]=d;c[l>>2]=gg((b[(c[g>>2]|0)+((c[j>>2]|0)+2<<1)>>1]|0)-(b[(c[g>>2]|0)+((c[j>>2]|0)+1<<1)>>1]|0)|0,1)|0;c[l>>2]=131072/(c[l>>2]|0)|0;d=(hg((c[k>>2]|0)+(c[l>>2]|0)|0,32767)|0)&65535;b[(c[f>>2]|0)+((c[j>>2]|0)+1<<1)>>1]=d;c[j>>2]=(c[j>>2]|0)+2}c[k>>2]=gg(32768-(b[(c[g>>2]|0)+((c[h>>2]|0)-1<<1)>>1]|0)|0,1)|0;c[k>>2]=131072/(c[k>>2]|0)|0;l=(hg((c[k>>2]|0)+(c[l>>2]|0)|0,32767)|0)&65535;b[(c[f>>2]|0)+((c[h>>2]|0)-1<<1)>>1]=l;i=m;return}function gg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f+4|0;d=f;c[e>>2]=a;c[d>>2]=b;i=f;return ((c[e>>2]|0)>(c[d>>2]|0)?c[e>>2]|0:c[d>>2]|0)|0}function hg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f+4|0;d=f;c[e>>2]=a;c[d>>2]=b;i=f;return ((c[e>>2]|0)<(c[d>>2]|0)?c[e>>2]|0:c[d>>2]|0)|0}function ig(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;m=i;i=i+32|0;g=m+20|0;h=m+16|0;j=m+12|0;k=m+8|0;n=m+4|0;l=m;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;c[n>>2]=f;oj(c[h>>2]|0,0,300)|0;d=(c[j>>2]|0)!=8e3&(c[j>>2]|0)!=12e3&(c[j>>2]|0)!=16e3;do if(c[n>>2]|0){if(!(d&(c[j>>2]|0)!=24e3&(c[j>>2]|0)!=48e3)?!((c[k>>2]|0)!=8e3&(c[k>>2]|0)!=12e3&(c[k>>2]|0)!=16e3):0){c[(c[h>>2]|0)+292>>2]=a[30493+((((c[j>>2]>>12)-((c[j>>2]|0)>16e3&1)>>((c[j>>2]|0)>24e3&1))-1|0)*3|0)+(((c[k>>2]>>12)-((c[k>>2]|0)>16e3&1)>>((c[k>>2]|0)>24e3&1))-1)>>0];break}c[g>>2]=-1;n=c[g>>2]|0;i=m;return n|0}else{if(!d?!((c[k>>2]|0)!=8e3&(c[k>>2]|0)!=12e3&(c[k>>2]|0)!=16e3&(c[k>>2]|0)!=24e3&(c[k>>2]|0)!=48e3):0){c[(c[h>>2]|0)+292>>2]=a[30508+((((c[j>>2]>>12)-((c[j>>2]|0)>16e3&1)>>((c[j>>2]|0)>24e3&1))-1|0)*5|0)+(((c[k>>2]>>12)-((c[k>>2]|0)>16e3&1)>>((c[k>>2]|0)>24e3&1))-1)>>0];break}c[g>>2]=-1;n=c[g>>2]|0;i=m;return n|0}while(0);c[(c[h>>2]|0)+284>>2]=(c[j>>2]|0)/1e3|0;c[(c[h>>2]|0)+288>>2]=(c[k>>2]|0)/1e3|0;c[(c[h>>2]|0)+268>>2]=(c[(c[h>>2]|0)+284>>2]|0)*10;c[l>>2]=0;e=c[k>>2]|0;b=c[j>>2]|0;do if((c[k>>2]|0)>(c[j>>2]|0)){d=(c[h>>2]|0)+264|0;if((e|0)==(b<<1|0)){c[d>>2]=1;break}else{c[d>>2]=2;c[l>>2]=1;break}}else{d=(c[h>>2]|0)+264|0;if((e|0)>=(b|0)){c[d>>2]=0;break}c[d>>2]=3;if((c[k>>2]<<2|0)==((c[j>>2]|0)*3|0)){c[(c[h>>2]|0)+280>>2]=3;c[(c[h>>2]|0)+276>>2]=18;c[(c[h>>2]|0)+296>>2]=24846;break}if(((c[k>>2]|0)*3|0)==(c[j>>2]<<1|0)){c[(c[h>>2]|0)+280>>2]=2;c[(c[h>>2]|0)+276>>2]=18;c[(c[h>>2]|0)+296>>2]=24904;break}if((c[k>>2]<<1|0)==(c[j>>2]|0)){c[(c[h>>2]|0)+280>>2]=1;c[(c[h>>2]|0)+276>>2]=24;c[(c[h>>2]|0)+296>>2]=24944;break}if(((c[k>>2]|0)*3|0)==(c[j>>2]|0)){c[(c[h>>2]|0)+280>>2]=1;c[(c[h>>2]|0)+276>>2]=36;c[(c[h>>2]|0)+296>>2]=24972;break}if((c[k>>2]<<2|0)==(c[j>>2]|0)){c[(c[h>>2]|0)+280>>2]=1;c[(c[h>>2]|0)+276>>2]=36;c[(c[h>>2]|0)+296>>2]=25012;break}if(((c[k>>2]|0)*6|0)==(c[j>>2]|0)){c[(c[h>>2]|0)+280>>2]=1;c[(c[h>>2]|0)+276>>2]=36;c[(c[h>>2]|0)+296>>2]=25052;break}c[g>>2]=-1;n=c[g>>2]|0;i=m;return n|0}while(0);c[(c[h>>2]|0)+272>>2]=((c[j>>2]<<14+(c[l>>2]|0)|0)/(c[k>>2]|0)|0)<<2;while(1){n=_(c[(c[h>>2]|0)+272>>2]>>16,(c[k>>2]&65535)<<16>>16)|0;n=n+((_(c[(c[h>>2]|0)+272>>2]&65535,(c[k>>2]&65535)<<16>>16)|0)>>16)|0;n=n+(_(c[(c[h>>2]|0)+272>>2]|0,(c[k>>2]>>15)+1>>1)|0)|0;if((n|0)>=(c[j>>2]<<c[l>>2]|0))break;n=(c[h>>2]|0)+272|0;c[n>>2]=(c[n>>2]|0)+1}c[g>>2]=0;n=c[g>>2]|0;i=m;return n|0}function jg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;f=l+16|0;g=l+12|0;h=l+8|0;j=l+4|0;k=l;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;c[k>>2]=(c[(c[f>>2]|0)+284>>2]|0)-(c[(c[f>>2]|0)+292>>2]|0);pj((c[f>>2]|0)+168+(c[(c[f>>2]|0)+292>>2]<<1)|0,c[h>>2]|0,c[k>>2]<<1|0)|0;switch(c[(c[f>>2]|0)+264>>2]|0){case 1:{sg(c[f>>2]|0,c[g>>2]|0,(c[f>>2]|0)+168|0,c[(c[f>>2]|0)+284>>2]|0);sg(c[f>>2]|0,(c[g>>2]|0)+(c[(c[f>>2]|0)+288>>2]<<1)|0,(c[h>>2]|0)+(c[k>>2]<<1)|0,(c[j>>2]|0)-(c[(c[f>>2]|0)+284>>2]|0)|0);break}case 2:{pg(c[f>>2]|0,c[g>>2]|0,(c[f>>2]|0)+168|0,c[(c[f>>2]|0)+284>>2]|0);pg(c[f>>2]|0,(c[g>>2]|0)+(c[(c[f>>2]|0)+288>>2]<<1)|0,(c[h>>2]|0)+(c[k>>2]<<1)|0,(c[j>>2]|0)-(c[(c[f>>2]|0)+284>>2]|0)|0);break}case 3:{ng(c[f>>2]|0,c[g>>2]|0,(c[f>>2]|0)+168|0,c[(c[f>>2]|0)+284>>2]|0);ng(c[f>>2]|0,(c[g>>2]|0)+(c[(c[f>>2]|0)+288>>2]<<1)|0,(c[h>>2]|0)+(c[k>>2]<<1)|0,(c[j>>2]|0)-(c[(c[f>>2]|0)+284>>2]|0)|0);break}default:{pj(c[g>>2]|0,(c[f>>2]|0)+168|0,c[(c[f>>2]|0)+284>>2]<<1|0)|0;pj((c[g>>2]|0)+(c[(c[f>>2]|0)+288>>2]<<1)|0,(c[h>>2]|0)+(c[k>>2]<<1)|0,(c[j>>2]|0)-(c[(c[f>>2]|0)+284>>2]|0)<<1|0)|0}}pj((c[f>>2]|0)+168|0,(c[h>>2]|0)+((c[j>>2]|0)-(c[(c[f>>2]|0)+292>>2]|0)<<1)|0,c[(c[f>>2]|0)+292>>2]<<1|0)|0;i=l;return 0}function kg(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+1968|0;g=q+1964|0;h=q+1960|0;j=q+1956|0;k=q+1952|0;o=q+1948|0;n=q+1944|0;p=q+1940|0;m=q+1936|0;l=q;c[g>>2]=a;c[h>>2]=d;c[j>>2]=e;c[k>>2]=f;d=c[g>>2]|0;c[l>>2]=c[d>>2];c[l+4>>2]=c[d+4>>2];c[l+8>>2]=c[d+8>>2];c[l+12>>2]=c[d+12>>2];while(1){c[o>>2]=(c[k>>2]|0)<480?c[k>>2]|0:480;mg((c[g>>2]|0)+16|0,l+16|0,c[j>>2]|0,25092,c[o>>2]|0);c[m>>2]=l;c[n>>2]=c[o>>2];while(1){if((c[n>>2]|0)<=2)break;d=_(c[c[m>>2]>>2]>>16,b[12548]|0)|0;c[p>>2]=d+((_(c[c[m>>2]>>2]&65535,b[12548]|0)|0)>>16);d=_(c[(c[m>>2]|0)+4>>2]>>16,b[12549]|0)|0;c[p>>2]=(c[p>>2]|0)+(d+((_(c[(c[m>>2]|0)+4>>2]&65535,b[12549]|0)|0)>>16));d=_(c[(c[m>>2]|0)+8>>2]>>16,b[12551]|0)|0;c[p>>2]=(c[p>>2]|0)+(d+((_(c[(c[m>>2]|0)+8>>2]&65535,b[12551]|0)|0)>>16));d=_(c[(c[m>>2]|0)+12>>2]>>16,b[12550]|0)|0;c[p>>2]=(c[p>>2]|0)+(d+((_(c[(c[m>>2]|0)+12>>2]&65535,b[12550]|0)|0)>>16));if(((c[p>>2]>>5)+1>>1|0)<=32767)if(((c[p>>2]>>5)+1>>1|0)<-32768)a=-32768;else a=(c[p>>2]>>5)+1>>1;else a=32767;d=c[h>>2]|0;c[h>>2]=d+2;b[d>>1]=a;d=_(c[(c[m>>2]|0)+4>>2]>>16,b[12550]|0)|0;c[p>>2]=d+((_(c[(c[m>>2]|0)+4>>2]&65535,b[12550]|0)|0)>>16);d=_(c[(c[m>>2]|0)+8>>2]>>16,b[12551]|0)|0;c[p>>2]=(c[p>>2]|0)+(d+((_(c[(c[m>>2]|0)+8>>2]&65535,b[12551]|0)|0)>>16));d=_(c[(c[m>>2]|0)+12>>2]>>16,b[12549]|0)|0;c[p>>2]=(c[p>>2]|0)+(d+((_(c[(c[m>>2]|0)+12>>2]&65535,b[12549]|0)|0)>>16));d=_(c[(c[m>>2]|0)+16>>2]>>16,b[12548]|0)|0;c[p>>2]=(c[p>>2]|0)+(d+((_(c[(c[m>>2]|0)+16>>2]&65535,b[12548]|0)|0)>>16));if(((c[p>>2]>>5)+1>>1|0)<=32767)if(((c[p>>2]>>5)+1>>1|0)<-32768)a=-32768;else a=(c[p>>2]>>5)+1>>1;else a=32767;d=c[h>>2]|0;c[h>>2]=d+2;b[d>>1]=a;c[m>>2]=(c[m>>2]|0)+12;c[n>>2]=(c[n>>2]|0)-3}c[j>>2]=(c[j>>2]|0)+(c[o>>2]<<1);c[k>>2]=(c[k>>2]|0)-(c[o>>2]|0);if((c[k>>2]|0)<=0)break;d=l+(c[o>>2]<<2)|0;c[l>>2]=c[d>>2];c[l+4>>2]=c[d+4>>2];c[l+8>>2]=c[d+8>>2];c[l+12>>2]=c[d+12>>2]}p=c[g>>2]|0;o=l+(c[o>>2]<<2)|0;c[p>>2]=c[o>>2];c[p+4>>2]=c[o+4>>2];c[p+8>>2]=c[o+8>>2];c[p+12>>2]=c[o+12>>2];i=q;return}function lg(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;q=i;i=i+48|0;g=q+36|0;h=q+32|0;j=q+28|0;r=q+24|0;n=q+20|0;o=q+16|0;m=q+12|0;p=q+8|0;l=q+4|0;k=q;c[g>>2]=a;c[h>>2]=d;c[j>>2]=e;c[r>>2]=f;c[o>>2]=c[r>>2]>>1;c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[o>>2]|0))break;c[m>>2]=b[(c[j>>2]|0)+(c[n>>2]<<1<<1)>>1]<<10;c[l>>2]=(c[m>>2]|0)-(c[c[g>>2]>>2]|0);r=_(c[l>>2]>>16,-25727)|0;c[k>>2]=(c[l>>2]|0)+(r+((_(c[l>>2]&65535,-25727)|0)>>16));c[p>>2]=(c[c[g>>2]>>2]|0)+(c[k>>2]|0);c[c[g>>2]>>2]=(c[m>>2]|0)+(c[k>>2]|0);c[m>>2]=b[(c[j>>2]|0)+((c[n>>2]<<1)+1<<1)>>1]<<10;c[l>>2]=(c[m>>2]|0)-(c[(c[g>>2]|0)+4>>2]|0);c[k>>2]=((c[l>>2]>>16)*9872|0)+((c[l>>2]&65535)*9872>>16);c[p>>2]=(c[p>>2]|0)+(c[(c[g>>2]|0)+4>>2]|0);c[p>>2]=(c[p>>2]|0)+(c[k>>2]|0);c[(c[g>>2]|0)+4>>2]=(c[m>>2]|0)+(c[k>>2]|0);if(((c[p>>2]>>10)+1>>1|0)<=32767)if(((c[p>>2]>>10)+1>>1|0)<-32768)a=-32768;else a=(c[p>>2]>>10)+1>>1;else a=32767;b[(c[h>>2]|0)+(c[n>>2]<<1)>>1]=a;c[n>>2]=(c[n>>2]|0)+1}i=q;return}function mg(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;h=p+24|0;j=p+20|0;k=p+16|0;l=p+12|0;m=p+8|0;n=p+4|0;o=p;c[h>>2]=a;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;c[m>>2]=g;c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[m>>2]|0))break;c[o>>2]=(c[c[h>>2]>>2]|0)+(b[(c[k>>2]|0)+(c[n>>2]<<1)>>1]<<8);c[(c[j>>2]|0)+(c[n>>2]<<2)>>2]=c[o>>2];c[o>>2]=c[o>>2]<<2;d=_(c[o>>2]>>16,b[c[l>>2]>>1]|0)|0;d=(c[(c[h>>2]|0)+4>>2]|0)+(d+((_(c[o>>2]&65535,b[c[l>>2]>>1]|0)|0)>>16))|0;c[c[h>>2]>>2]=d;d=_(c[o>>2]>>16,b[(c[l>>2]|0)+2>>1]|0)|0;d=d+((_(c[o>>2]&65535,b[(c[l>>2]|0)+2>>1]|0)|0)>>16)|0;c[(c[h>>2]|0)+4>>2]=d;c[n>>2]=(c[n>>2]|0)+1}i=p;return}function ng(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;p=i;i=i+48|0;q=p+36|0;f=p+32|0;g=p+28|0;h=p+24|0;l=p+20|0;o=p+16|0;n=p+12|0;m=p+8|0;k=p+4|0;j=p;c[q>>2]=a;c[f>>2]=b;c[g>>2]=d;c[h>>2]=e;c[l>>2]=c[q>>2];b=(c[(c[l>>2]|0)+268>>2]|0)+(c[(c[l>>2]|0)+276>>2]|0)|0;c[j>>2]=ia()|0;a=i;i=i+((1*(b<<2)|0)+15&-16)|0;pj(a|0,(c[l>>2]|0)+24|0,c[(c[l>>2]|0)+276>>2]<<2|0)|0;c[k>>2]=(c[(c[l>>2]|0)+296>>2]|0)+4;c[m>>2]=c[(c[l>>2]|0)+272>>2];while(1){if((c[h>>2]|0)<(c[(c[l>>2]|0)+268>>2]|0))d=c[h>>2]|0;else d=c[(c[l>>2]|0)+268>>2]|0;c[o>>2]=d;mg(c[l>>2]|0,a+(c[(c[l>>2]|0)+276>>2]<<2)|0,c[g>>2]|0,c[(c[l>>2]|0)+296>>2]|0,c[o>>2]|0);c[n>>2]=c[o>>2]<<16;c[f>>2]=og(c[f>>2]|0,a,c[k>>2]|0,c[(c[l>>2]|0)+276>>2]|0,c[(c[l>>2]|0)+280>>2]|0,c[n>>2]|0,c[m>>2]|0)|0;c[g>>2]=(c[g>>2]|0)+(c[o>>2]<<1);c[h>>2]=(c[h>>2]|0)-(c[o>>2]|0);if((c[h>>2]|0)<=1)break;pj(a|0,a+(c[o>>2]<<2)|0,c[(c[l>>2]|0)+276>>2]<<2|0)|0}pj((c[l>>2]|0)+24|0,a+(c[o>>2]<<2)|0,c[(c[l>>2]|0)+276>>2]<<2|0)|0;na(c[j>>2]|0);i=p;return}function og(a,d,e,f,g,h,j){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;v=i;i=i+48|0;n=v+44|0;o=v+40|0;p=v+36|0;w=v+32|0;k=v+28|0;q=v+24|0;r=v+20|0;t=v+16|0;u=v+12|0;s=v+8|0;l=v+4|0;m=v;c[n>>2]=a;c[o>>2]=d;c[p>>2]=e;c[w>>2]=f;c[k>>2]=g;c[q>>2]=h;c[r>>2]=j;switch(c[w>>2]|0){case 18:{c[t>>2]=0;while(1){if((c[t>>2]|0)>=(c[q>>2]|0))break;c[s>>2]=(c[o>>2]|0)+(c[t>>2]>>16<<2);w=_((c[t>>2]&65535)>>16,(c[k>>2]&65535)<<16>>16)|0;c[l>>2]=w+((_(c[t>>2]&65535,(c[k>>2]&65535)<<16>>16)|0)>>16);c[m>>2]=(c[p>>2]|0)+((c[l>>2]|0)*9<<1);w=_(c[c[s>>2]>>2]>>16,b[c[m>>2]>>1]|0)|0;c[u>>2]=w+((_(c[c[s>>2]>>2]&65535,b[c[m>>2]>>1]|0)|0)>>16);w=_(c[(c[s>>2]|0)+4>>2]>>16,b[(c[m>>2]|0)+2>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_(c[(c[s>>2]|0)+4>>2]&65535,b[(c[m>>2]|0)+2>>1]|0)|0)>>16));w=_(c[(c[s>>2]|0)+8>>2]>>16,b[(c[m>>2]|0)+4>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_(c[(c[s>>2]|0)+8>>2]&65535,b[(c[m>>2]|0)+4>>1]|0)|0)>>16));w=_(c[(c[s>>2]|0)+12>>2]>>16,b[(c[m>>2]|0)+6>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_(c[(c[s>>2]|0)+12>>2]&65535,b[(c[m>>2]|0)+6>>1]|0)|0)>>16));w=_(c[(c[s>>2]|0)+16>>2]>>16,b[(c[m>>2]|0)+8>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_(c[(c[s>>2]|0)+16>>2]&65535,b[(c[m>>2]|0)+8>>1]|0)|0)>>16));w=_(c[(c[s>>2]|0)+20>>2]>>16,b[(c[m>>2]|0)+10>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_(c[(c[s>>2]|0)+20>>2]&65535,b[(c[m>>2]|0)+10>>1]|0)|0)>>16));w=_(c[(c[s>>2]|0)+24>>2]>>16,b[(c[m>>2]|0)+12>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_(c[(c[s>>2]|0)+24>>2]&65535,b[(c[m>>2]|0)+12>>1]|0)|0)>>16));w=_(c[(c[s>>2]|0)+28>>2]>>16,b[(c[m>>2]|0)+14>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_(c[(c[s>>2]|0)+28>>2]&65535,b[(c[m>>2]|0)+14>>1]|0)|0)>>16));w=_(c[(c[s>>2]|0)+32>>2]>>16,b[(c[m>>2]|0)+16>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_(c[(c[s>>2]|0)+32>>2]&65535,b[(c[m>>2]|0)+16>>1]|0)|0)>>16));c[m>>2]=(c[p>>2]|0)+(((c[k>>2]|0)-1-(c[l>>2]|0)|0)*9<<1);w=_(c[(c[s>>2]|0)+68>>2]>>16,b[c[m>>2]>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_(c[(c[s>>2]|0)+68>>2]&65535,b[c[m>>2]>>1]|0)|0)>>16));w=_(c[(c[s>>2]|0)+64>>2]>>16,b[(c[m>>2]|0)+2>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_(c[(c[s>>2]|0)+64>>2]&65535,b[(c[m>>2]|0)+2>>1]|0)|0)>>16));w=_(c[(c[s>>2]|0)+60>>2]>>16,b[(c[m>>2]|0)+4>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_(c[(c[s>>2]|0)+60>>2]&65535,b[(c[m>>2]|0)+4>>1]|0)|0)>>16));w=_(c[(c[s>>2]|0)+56>>2]>>16,b[(c[m>>2]|0)+6>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_(c[(c[s>>2]|0)+56>>2]&65535,b[(c[m>>2]|0)+6>>1]|0)|0)>>16));w=_(c[(c[s>>2]|0)+52>>2]>>16,b[(c[m>>2]|0)+8>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_(c[(c[s>>2]|0)+52>>2]&65535,b[(c[m>>2]|0)+8>>1]|0)|0)>>16));w=_(c[(c[s>>2]|0)+48>>2]>>16,b[(c[m>>2]|0)+10>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_(c[(c[s>>2]|0)+48>>2]&65535,b[(c[m>>2]|0)+10>>1]|0)|0)>>16));w=_(c[(c[s>>2]|0)+44>>2]>>16,b[(c[m>>2]|0)+12>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_(c[(c[s>>2]|0)+44>>2]&65535,b[(c[m>>2]|0)+12>>1]|0)|0)>>16));w=_(c[(c[s>>2]|0)+40>>2]>>16,b[(c[m>>2]|0)+14>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_(c[(c[s>>2]|0)+40>>2]&65535,b[(c[m>>2]|0)+14>>1]|0)|0)>>16));w=_(c[(c[s>>2]|0)+36>>2]>>16,b[(c[m>>2]|0)+16>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_(c[(c[s>>2]|0)+36>>2]&65535,b[(c[m>>2]|0)+16>>1]|0)|0)>>16));if(((c[u>>2]>>5)+1>>1|0)<=32767)if(((c[u>>2]>>5)+1>>1|0)<-32768)e=-32768;else e=(c[u>>2]>>5)+1>>1;else e=32767;w=c[n>>2]|0;c[n>>2]=w+2;b[w>>1]=e;c[t>>2]=(c[t>>2]|0)+(c[r>>2]|0)}w=c[n>>2]|0;i=v;return w|0}case 24:{c[t>>2]=0;while(1){if((c[t>>2]|0)>=(c[q>>2]|0))break;c[s>>2]=(c[o>>2]|0)+(c[t>>2]>>16<<2);w=_((c[c[s>>2]>>2]|0)+(c[(c[s>>2]|0)+92>>2]|0)>>16,b[c[p>>2]>>1]|0)|0;c[u>>2]=w+((_((c[c[s>>2]>>2]|0)+(c[(c[s>>2]|0)+92>>2]|0)&65535,b[c[p>>2]>>1]|0)|0)>>16);w=_((c[(c[s>>2]|0)+4>>2]|0)+(c[(c[s>>2]|0)+88>>2]|0)>>16,b[(c[p>>2]|0)+2>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_((c[(c[s>>2]|0)+4>>2]|0)+(c[(c[s>>2]|0)+88>>2]|0)&65535,b[(c[p>>2]|0)+2>>1]|0)|0)>>16));w=_((c[(c[s>>2]|0)+8>>2]|0)+(c[(c[s>>2]|0)+84>>2]|0)>>16,b[(c[p>>2]|0)+4>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_((c[(c[s>>2]|0)+8>>2]|0)+(c[(c[s>>2]|0)+84>>2]|0)&65535,b[(c[p>>2]|0)+4>>1]|0)|0)>>16));w=_((c[(c[s>>2]|0)+12>>2]|0)+(c[(c[s>>2]|0)+80>>2]|0)>>16,b[(c[p>>2]|0)+6>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_((c[(c[s>>2]|0)+12>>2]|0)+(c[(c[s>>2]|0)+80>>2]|0)&65535,b[(c[p>>2]|0)+6>>1]|0)|0)>>16));w=_((c[(c[s>>2]|0)+16>>2]|0)+(c[(c[s>>2]|0)+76>>2]|0)>>16,b[(c[p>>2]|0)+8>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_((c[(c[s>>2]|0)+16>>2]|0)+(c[(c[s>>2]|0)+76>>2]|0)&65535,b[(c[p>>2]|0)+8>>1]|0)|0)>>16));w=_((c[(c[s>>2]|0)+20>>2]|0)+(c[(c[s>>2]|0)+72>>2]|0)>>16,b[(c[p>>2]|0)+10>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_((c[(c[s>>2]|0)+20>>2]|0)+(c[(c[s>>2]|0)+72>>2]|0)&65535,b[(c[p>>2]|0)+10>>1]|0)|0)>>16));w=_((c[(c[s>>2]|0)+24>>2]|0)+(c[(c[s>>2]|0)+68>>2]|0)>>16,b[(c[p>>2]|0)+12>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_((c[(c[s>>2]|0)+24>>2]|0)+(c[(c[s>>2]|0)+68>>2]|0)&65535,b[(c[p>>2]|0)+12>>1]|0)|0)>>16));w=_((c[(c[s>>2]|0)+28>>2]|0)+(c[(c[s>>2]|0)+64>>2]|0)>>16,b[(c[p>>2]|0)+14>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_((c[(c[s>>2]|0)+28>>2]|0)+(c[(c[s>>2]|0)+64>>2]|0)&65535,b[(c[p>>2]|0)+14>>1]|0)|0)>>16));w=_((c[(c[s>>2]|0)+32>>2]|0)+(c[(c[s>>2]|0)+60>>2]|0)>>16,b[(c[p>>2]|0)+16>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_((c[(c[s>>2]|0)+32>>2]|0)+(c[(c[s>>2]|0)+60>>2]|0)&65535,b[(c[p>>2]|0)+16>>1]|0)|0)>>16));w=_((c[(c[s>>2]|0)+36>>2]|0)+(c[(c[s>>2]|0)+56>>2]|0)>>16,b[(c[p>>2]|0)+18>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_((c[(c[s>>2]|0)+36>>2]|0)+(c[(c[s>>2]|0)+56>>2]|0)&65535,b[(c[p>>2]|0)+18>>1]|0)|0)>>16));w=_((c[(c[s>>2]|0)+40>>2]|0)+(c[(c[s>>2]|0)+52>>2]|0)>>16,b[(c[p>>2]|0)+20>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_((c[(c[s>>2]|0)+40>>2]|0)+(c[(c[s>>2]|0)+52>>2]|0)&65535,b[(c[p>>2]|0)+20>>1]|0)|0)>>16));w=_((c[(c[s>>2]|0)+44>>2]|0)+(c[(c[s>>2]|0)+48>>2]|0)>>16,b[(c[p>>2]|0)+22>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_((c[(c[s>>2]|0)+44>>2]|0)+(c[(c[s>>2]|0)+48>>2]|0)&65535,b[(c[p>>2]|0)+22>>1]|0)|0)>>16));if(((c[u>>2]>>5)+1>>1|0)<=32767)if(((c[u>>2]>>5)+1>>1|0)<-32768)e=-32768;else e=(c[u>>2]>>5)+1>>1;else e=32767;w=c[n>>2]|0;c[n>>2]=w+2;b[w>>1]=e;c[t>>2]=(c[t>>2]|0)+(c[r>>2]|0)}w=c[n>>2]|0;i=v;return w|0}case 36:{c[t>>2]=0;while(1){if((c[t>>2]|0)>=(c[q>>2]|0))break;c[s>>2]=(c[o>>2]|0)+(c[t>>2]>>16<<2);w=_((c[c[s>>2]>>2]|0)+(c[(c[s>>2]|0)+140>>2]|0)>>16,b[c[p>>2]>>1]|0)|0;c[u>>2]=w+((_((c[c[s>>2]>>2]|0)+(c[(c[s>>2]|0)+140>>2]|0)&65535,b[c[p>>2]>>1]|0)|0)>>16);w=_((c[(c[s>>2]|0)+4>>2]|0)+(c[(c[s>>2]|0)+136>>2]|0)>>16,b[(c[p>>2]|0)+2>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_((c[(c[s>>2]|0)+4>>2]|0)+(c[(c[s>>2]|0)+136>>2]|0)&65535,b[(c[p>>2]|0)+2>>1]|0)|0)>>16));w=_((c[(c[s>>2]|0)+8>>2]|0)+(c[(c[s>>2]|0)+132>>2]|0)>>16,b[(c[p>>2]|0)+4>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_((c[(c[s>>2]|0)+8>>2]|0)+(c[(c[s>>2]|0)+132>>2]|0)&65535,b[(c[p>>2]|0)+4>>1]|0)|0)>>16));w=_((c[(c[s>>2]|0)+12>>2]|0)+(c[(c[s>>2]|0)+128>>2]|0)>>16,b[(c[p>>2]|0)+6>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_((c[(c[s>>2]|0)+12>>2]|0)+(c[(c[s>>2]|0)+128>>2]|0)&65535,b[(c[p>>2]|0)+6>>1]|0)|0)>>16));w=_((c[(c[s>>2]|0)+16>>2]|0)+(c[(c[s>>2]|0)+124>>2]|0)>>16,b[(c[p>>2]|0)+8>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_((c[(c[s>>2]|0)+16>>2]|0)+(c[(c[s>>2]|0)+124>>2]|0)&65535,b[(c[p>>2]|0)+8>>1]|0)|0)>>16));w=_((c[(c[s>>2]|0)+20>>2]|0)+(c[(c[s>>2]|0)+120>>2]|0)>>16,b[(c[p>>2]|0)+10>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_((c[(c[s>>2]|0)+20>>2]|0)+(c[(c[s>>2]|0)+120>>2]|0)&65535,b[(c[p>>2]|0)+10>>1]|0)|0)>>16));w=_((c[(c[s>>2]|0)+24>>2]|0)+(c[(c[s>>2]|0)+116>>2]|0)>>16,b[(c[p>>2]|0)+12>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_((c[(c[s>>2]|0)+24>>2]|0)+(c[(c[s>>2]|0)+116>>2]|0)&65535,b[(c[p>>2]|0)+12>>1]|0)|0)>>16));w=_((c[(c[s>>2]|0)+28>>2]|0)+(c[(c[s>>2]|0)+112>>2]|0)>>16,b[(c[p>>2]|0)+14>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_((c[(c[s>>2]|0)+28>>2]|0)+(c[(c[s>>2]|0)+112>>2]|0)&65535,b[(c[p>>2]|0)+14>>1]|0)|0)>>16));w=_((c[(c[s>>2]|0)+32>>2]|0)+(c[(c[s>>2]|0)+108>>2]|0)>>16,b[(c[p>>2]|0)+16>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_((c[(c[s>>2]|0)+32>>2]|0)+(c[(c[s>>2]|0)+108>>2]|0)&65535,b[(c[p>>2]|0)+16>>1]|0)|0)>>16));w=_((c[(c[s>>2]|0)+36>>2]|0)+(c[(c[s>>2]|0)+104>>2]|0)>>16,b[(c[p>>2]|0)+18>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_((c[(c[s>>2]|0)+36>>2]|0)+(c[(c[s>>2]|0)+104>>2]|0)&65535,b[(c[p>>2]|0)+18>>1]|0)|0)>>16));w=_((c[(c[s>>2]|0)+40>>2]|0)+(c[(c[s>>2]|0)+100>>2]|0)>>16,b[(c[p>>2]|0)+20>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_((c[(c[s>>2]|0)+40>>2]|0)+(c[(c[s>>2]|0)+100>>2]|0)&65535,b[(c[p>>2]|0)+20>>1]|0)|0)>>16));w=_((c[(c[s>>2]|0)+44>>2]|0)+(c[(c[s>>2]|0)+96>>2]|0)>>16,b[(c[p>>2]|0)+22>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_((c[(c[s>>2]|0)+44>>2]|0)+(c[(c[s>>2]|0)+96>>2]|0)&65535,b[(c[p>>2]|0)+22>>1]|0)|0)>>16));w=_((c[(c[s>>2]|0)+48>>2]|0)+(c[(c[s>>2]|0)+92>>2]|0)>>16,b[(c[p>>2]|0)+24>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_((c[(c[s>>2]|0)+48>>2]|0)+(c[(c[s>>2]|0)+92>>2]|0)&65535,b[(c[p>>2]|0)+24>>1]|0)|0)>>16));w=_((c[(c[s>>2]|0)+52>>2]|0)+(c[(c[s>>2]|0)+88>>2]|0)>>16,b[(c[p>>2]|0)+26>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_((c[(c[s>>2]|0)+52>>2]|0)+(c[(c[s>>2]|0)+88>>2]|0)&65535,b[(c[p>>2]|0)+26>>1]|0)|0)>>16));w=_((c[(c[s>>2]|0)+56>>2]|0)+(c[(c[s>>2]|0)+84>>2]|0)>>16,b[(c[p>>2]|0)+28>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_((c[(c[s>>2]|0)+56>>2]|0)+(c[(c[s>>2]|0)+84>>2]|0)&65535,b[(c[p>>2]|0)+28>>1]|0)|0)>>16));w=_((c[(c[s>>2]|0)+60>>2]|0)+(c[(c[s>>2]|0)+80>>2]|0)>>16,b[(c[p>>2]|0)+30>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_((c[(c[s>>2]|0)+60>>2]|0)+(c[(c[s>>2]|0)+80>>2]|0)&65535,b[(c[p>>2]|0)+30>>1]|0)|0)>>16));w=_((c[(c[s>>2]|0)+64>>2]|0)+(c[(c[s>>2]|0)+76>>2]|0)>>16,b[(c[p>>2]|0)+32>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_((c[(c[s>>2]|0)+64>>2]|0)+(c[(c[s>>2]|0)+76>>2]|0)&65535,b[(c[p>>2]|0)+32>>1]|0)|0)>>16));w=_((c[(c[s>>2]|0)+68>>2]|0)+(c[(c[s>>2]|0)+72>>2]|0)>>16,b[(c[p>>2]|0)+34>>1]|0)|0;c[u>>2]=(c[u>>2]|0)+(w+((_((c[(c[s>>2]|0)+68>>2]|0)+(c[(c[s>>2]|0)+72>>2]|0)&65535,b[(c[p>>2]|0)+34>>1]|0)|0)>>16));if(((c[u>>2]>>5)+1>>1|0)<=32767)if(((c[u>>2]>>5)+1>>1|0)<-32768)e=-32768;else e=(c[u>>2]>>5)+1>>1;else e=32767;w=c[n>>2]|0;c[n>>2]=w+2;b[w>>1]=e;c[t>>2]=(c[t>>2]|0)+(c[r>>2]|0)}w=c[n>>2]|0;i=v;return w|0}default:{w=c[n>>2]|0;i=v;return w|0}}return 0}function pg(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;p=i;i=i+48|0;q=p+32|0;g=p+28|0;h=p+24|0;j=p+20|0;l=p+16|0;o=p+12|0;n=p+8|0;m=p+4|0;k=p;c[q>>2]=a;c[g>>2]=d;c[h>>2]=e;c[j>>2]=f;c[l>>2]=c[q>>2];d=(c[(c[l>>2]|0)+268>>2]<<1)+8|0;c[k>>2]=ia()|0;a=i;i=i+((1*(d<<1)|0)+15&-16)|0;d=(c[l>>2]|0)+24|0;b[a>>1]=b[d>>1]|0;b[a+2>>1]=b[d+2>>1]|0;b[a+4>>1]=b[d+4>>1]|0;b[a+6>>1]=b[d+6>>1]|0;b[a+8>>1]=b[d+8>>1]|0;b[a+10>>1]=b[d+10>>1]|0;b[a+12>>1]=b[d+12>>1]|0;b[a+14>>1]=b[d+14>>1]|0;c[m>>2]=c[(c[l>>2]|0)+272>>2];while(1){if((c[j>>2]|0)<(c[(c[l>>2]|0)+268>>2]|0))e=c[j>>2]|0;else e=c[(c[l>>2]|0)+268>>2]|0;c[o>>2]=e;rg(c[l>>2]|0,a+16|0,c[h>>2]|0,c[o>>2]|0);c[n>>2]=c[o>>2]<<17;c[g>>2]=qg(c[g>>2]|0,a,c[n>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+(c[o>>2]<<1);c[j>>2]=(c[j>>2]|0)-(c[o>>2]|0);if((c[j>>2]|0)<=0)break;q=a+(c[o>>2]<<1<<1)|0;b[a>>1]=b[q>>1]|0;b[a+2>>1]=b[q+2>>1]|0;b[a+4>>1]=b[q+4>>1]|0;b[a+6>>1]=b[q+6>>1]|0;b[a+8>>1]=b[q+8>>1]|0;b[a+10>>1]=b[q+10>>1]|0;b[a+12>>1]=b[q+12>>1]|0;b[a+14>>1]=b[q+14>>1]|0}q=(c[l>>2]|0)+24|0;o=a+(c[o>>2]<<1<<1)|0;b[q>>1]=b[o>>1]|0;b[q+2>>1]=b[o+2>>1]|0;b[q+4>>1]=b[o+4>>1]|0;b[q+6>>1]=b[o+6>>1]|0;b[q+8>>1]=b[o+8>>1]|0;b[q+10>>1]=b[o+10>>1]|0;b[q+12>>1]=b[o+12>>1]|0;b[q+14>>1]=b[o+14>>1]|0;na(c[k>>2]|0);i=p;return}function qg(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;g=p+28|0;h=p+24|0;j=p+20|0;k=p+16|0;m=p+12|0;n=p+8|0;l=p+4|0;o=p;c[g>>2]=a;c[h>>2]=d;c[j>>2]=e;c[k>>2]=f;c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[j>>2]|0))break;c[o>>2]=(((c[m>>2]&65535)>>16)*12|0)+((c[m>>2]&65535)*12>>16);c[l>>2]=(c[h>>2]|0)+(c[m>>2]>>16<<1);c[n>>2]=_(b[c[l>>2]>>1]|0,b[25104+(c[o>>2]<<3)>>1]|0)|0;c[n>>2]=(c[n>>2]|0)+(_(b[(c[l>>2]|0)+2>>1]|0,b[25104+(c[o>>2]<<3)+2>>1]|0)|0);c[n>>2]=(c[n>>2]|0)+(_(b[(c[l>>2]|0)+4>>1]|0,b[25104+(c[o>>2]<<3)+4>>1]|0)|0);c[n>>2]=(c[n>>2]|0)+(_(b[(c[l>>2]|0)+6>>1]|0,b[25104+(c[o>>2]<<3)+6>>1]|0)|0);c[n>>2]=(c[n>>2]|0)+(_(b[(c[l>>2]|0)+8>>1]|0,b[25104+(11-(c[o>>2]|0)<<3)+6>>1]|0)|0);c[n>>2]=(c[n>>2]|0)+(_(b[(c[l>>2]|0)+10>>1]|0,b[25104+(11-(c[o>>2]|0)<<3)+4>>1]|0)|0);c[n>>2]=(c[n>>2]|0)+(_(b[(c[l>>2]|0)+12>>1]|0,b[25104+(11-(c[o>>2]|0)<<3)+2>>1]|0)|0);c[n>>2]=(c[n>>2]|0)+(_(b[(c[l>>2]|0)+14>>1]|0,b[25104+(11-(c[o>>2]|0)<<3)>>1]|0)|0);if(((c[n>>2]>>14)+1>>1|0)<=32767)if(((c[n>>2]>>14)+1>>1|0)<-32768)d=-32768;else d=(c[n>>2]>>14)+1>>1;else d=32767;a=c[g>>2]|0;c[g>>2]=a+2;b[a>>1]=d;c[m>>2]=(c[m>>2]|0)+(c[k>>2]|0)}i=p;return c[g>>2]|0}function rg(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+48|0;g=r+36|0;h=r+32|0;j=r+28|0;k=r+24|0;o=r+20|0;n=r+16|0;p=r+12|0;q=r+8|0;m=r+4|0;l=r;c[g>>2]=a;c[h>>2]=d;c[j>>2]=e;c[k>>2]=f;c[o>>2]=0;while(1){if((c[o>>2]|0)>=(c[k>>2]|0))break;c[n>>2]=b[(c[j>>2]|0)+(c[o>>2]<<1)>>1]<<10;c[m>>2]=(c[n>>2]|0)-(c[c[g>>2]>>2]|0);d=_(c[m>>2]>>16,b[12417]|0)|0;c[l>>2]=d+((_(c[m>>2]&65535,b[12417]|0)|0)>>16);c[p>>2]=(c[c[g>>2]>>2]|0)+(c[l>>2]|0);c[c[g>>2]>>2]=(c[n>>2]|0)+(c[l>>2]|0);c[m>>2]=(c[p>>2]|0)-(c[(c[g>>2]|0)+4>>2]|0);d=_(c[m>>2]>>16,b[12418]|0)|0;c[l>>2]=d+((_(c[m>>2]&65535,b[12418]|0)|0)>>16);c[q>>2]=(c[(c[g>>2]|0)+4>>2]|0)+(c[l>>2]|0);c[(c[g>>2]|0)+4>>2]=(c[p>>2]|0)+(c[l>>2]|0);c[m>>2]=(c[q>>2]|0)-(c[(c[g>>2]|0)+8>>2]|0);d=_(c[m>>2]>>16,b[12419]|0)|0;c[l>>2]=(c[m>>2]|0)+(d+((_(c[m>>2]&65535,b[12419]|0)|0)>>16));c[p>>2]=(c[(c[g>>2]|0)+8>>2]|0)+(c[l>>2]|0);c[(c[g>>2]|0)+8>>2]=(c[q>>2]|0)+(c[l>>2]|0);if(((c[p>>2]>>9)+1>>1|0)<=32767)if(((c[p>>2]>>9)+1>>1|0)<-32768)a=-32768;else a=(c[p>>2]>>9)+1>>1;else a=32767;b[(c[h>>2]|0)+(c[o>>2]<<1<<1)>>1]=a;c[m>>2]=(c[n>>2]|0)-(c[(c[g>>2]|0)+12>>2]|0);d=_(c[m>>2]>>16,b[12420]|0)|0;c[l>>2]=d+((_(c[m>>2]&65535,b[12420]|0)|0)>>16);c[p>>2]=(c[(c[g>>2]|0)+12>>2]|0)+(c[l>>2]|0);c[(c[g>>2]|0)+12>>2]=(c[n>>2]|0)+(c[l>>2]|0);c[m>>2]=(c[p>>2]|0)-(c[(c[g>>2]|0)+16>>2]|0);d=_(c[m>>2]>>16,b[12421]|0)|0;c[l>>2]=d+((_(c[m>>2]&65535,b[12421]|0)|0)>>16);c[q>>2]=(c[(c[g>>2]|0)+16>>2]|0)+(c[l>>2]|0);c[(c[g>>2]|0)+16>>2]=(c[p>>2]|0)+(c[l>>2]|0);c[m>>2]=(c[q>>2]|0)-(c[(c[g>>2]|0)+20>>2]|0);d=_(c[m>>2]>>16,b[12422]|0)|0;c[l>>2]=(c[m>>2]|0)+(d+((_(c[m>>2]&65535,b[12422]|0)|0)>>16));c[p>>2]=(c[(c[g>>2]|0)+20>>2]|0)+(c[l>>2]|0);c[(c[g>>2]|0)+20>>2]=(c[q>>2]|0)+(c[l>>2]|0);if(((c[p>>2]>>9)+1>>1|0)<=32767)if(((c[p>>2]>>9)+1>>1|0)<-32768)a=-32768;else a=(c[p>>2]>>9)+1>>1;else a=32767;b[(c[h>>2]|0)+((c[o>>2]<<1)+1<<1)>>1]=a;c[o>>2]=(c[o>>2]|0)+1}i=r;return}function sg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+32|0;l=f+16|0;j=f+12|0;h=f+8|0;g=f+4|0;k=f;c[l>>2]=a;c[j>>2]=b;c[h>>2]=d;c[g>>2]=e;c[k>>2]=c[l>>2];rg(c[k>>2]|0,c[j>>2]|0,c[h>>2]|0,c[g>>2]|0);i=f;return}function tg(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;b=f+8|0;d=f+4|0;e=f;c[d>>2]=a;a=c[d>>2]|0;if((c[d>>2]|0)<0){c[d>>2]=0-a;if((c[d>>2]|0)>=192){c[b>>2]=0;e=c[b>>2]|0;i=f;return e|0}else{c[e>>2]=c[d>>2]>>5;c[b>>2]=(c[17960+(c[e>>2]<<2)>>2]|0)-(_((c[17984+(c[e>>2]<<2)>>2]&65535)<<16>>16,(c[d>>2]&31)<<16>>16)|0);e=c[b>>2]|0;i=f;return e|0}}else if((a|0)>=192){c[b>>2]=32767;e=c[b>>2]|0;i=f;return e|0}else{c[e>>2]=c[d>>2]>>5;c[b>>2]=(c[18008+(c[e>>2]<<2)>>2]|0)+(_((c[17984+(c[e>>2]<<2)>>2]&65535)<<16>>16,(c[d>>2]&31)<<16>>16)|0);e=c[b>>2]|0;i=f;return e|0}return 0}function ug(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;f=n+24|0;g=n+20|0;h=n+16|0;j=n+12|0;m=n+8|0;k=n+4|0;l=n;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;c[k>>2]=0;while(1){if((c[k>>2]|0)>=(c[j>>2]|0))break;c[(c[g>>2]|0)+(c[k>>2]<<2)>>2]=c[k>>2];c[k>>2]=(c[k>>2]|0)+1}c[k>>2]=1;while(1){if((c[k>>2]|0)>=(c[j>>2]|0))break;c[m>>2]=c[(c[f>>2]|0)+(c[k>>2]<<2)>>2];c[l>>2]=(c[k>>2]|0)-1;while(1){if((c[l>>2]|0)<0)break;if((c[m>>2]|0)>=(c[(c[f>>2]|0)+(c[l>>2]<<2)>>2]|0))break;c[(c[f>>2]|0)+((c[l>>2]|0)+1<<2)>>2]=c[(c[f>>2]|0)+(c[l>>2]<<2)>>2];c[(c[g>>2]|0)+((c[l>>2]|0)+1<<2)>>2]=c[(c[g>>2]|0)+(c[l>>2]<<2)>>2];c[l>>2]=(c[l>>2]|0)+-1}c[(c[f>>2]|0)+((c[l>>2]|0)+1<<2)>>2]=c[m>>2];c[(c[g>>2]|0)+((c[l>>2]|0)+1<<2)>>2]=c[k>>2];c[k>>2]=(c[k>>2]|0)+1}c[k>>2]=c[j>>2];while(1){if((c[k>>2]|0)>=(c[h>>2]|0))break;c[m>>2]=c[(c[f>>2]|0)+(c[k>>2]<<2)>>2];if((c[m>>2]|0)<(c[(c[f>>2]|0)+((c[j>>2]|0)-1<<2)>>2]|0)){c[l>>2]=(c[j>>2]|0)-2;while(1){if((c[l>>2]|0)<0)break;if((c[m>>2]|0)>=(c[(c[f>>2]|0)+(c[l>>2]<<2)>>2]|0))break;c[(c[f>>2]|0)+((c[l>>2]|0)+1<<2)>>2]=c[(c[f>>2]|0)+(c[l>>2]<<2)>>2];c[(c[g>>2]|0)+((c[l>>2]|0)+1<<2)>>2]=c[(c[g>>2]|0)+(c[l>>2]<<2)>>2];c[l>>2]=(c[l>>2]|0)+-1}c[(c[f>>2]|0)+((c[l>>2]|0)+1<<2)>>2]=c[m>>2];c[(c[g>>2]|0)+((c[l>>2]|0)+1<<2)>>2]=c[k>>2]}c[k>>2]=(c[k>>2]|0)+1}i=n;return}function vg(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;e=k+16|0;f=k+12|0;j=k+8|0;g=k+4|0;h=k;c[e>>2]=a;c[f>>2]=d;c[g>>2]=1;while(1){if((c[g>>2]|0)>=(c[f>>2]|0))break;c[j>>2]=b[(c[e>>2]|0)+(c[g>>2]<<1)>>1];c[h>>2]=(c[g>>2]|0)-1;while(1){if((c[h>>2]|0)<0)break;if((c[j>>2]|0)>=(b[(c[e>>2]|0)+(c[h>>2]<<1)>>1]|0))break;b[(c[e>>2]|0)+((c[h>>2]|0)+1<<1)>>1]=b[(c[e>>2]|0)+(c[h>>2]<<1)>>1]|0;c[h>>2]=(c[h>>2]|0)+-1}b[(c[e>>2]|0)+((c[h>>2]|0)+1<<1)>>1]=c[j>>2];c[g>>2]=(c[g>>2]|0)+1}i=k;return}function wg(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+32|0;h=q+28|0;j=q+24|0;k=q+20|0;l=q+16|0;m=q+12|0;p=q+8|0;o=q+4|0;n=q;c[h>>2]=a;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;c[n>>2]=0;c[p>>2]=0;c[l>>2]=(c[l>>2]|0)+-1;c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[l>>2]|0))break;c[n>>2]=(c[n>>2]|0)+(_(b[(c[k>>2]|0)+(c[m>>2]<<1)>>1]|0,b[(c[k>>2]|0)+(c[m>>2]<<1)>>1]|0)|0);c[n>>2]=(c[n>>2]|0)+(_(b[(c[k>>2]|0)+((c[m>>2]|0)+1<<1)>>1]|0,b[(c[k>>2]|0)+((c[m>>2]|0)+1<<1)>>1]|0)|0);if((c[n>>2]|0)<0){g=4;break}c[m>>2]=(c[m>>2]|0)+2}if((g|0)==4){c[n>>2]=(c[n>>2]|0)>>>2;c[p>>2]=2;c[m>>2]=(c[m>>2]|0)+2}while(1){a=c[m>>2]|0;if((c[m>>2]|0)>=(c[l>>2]|0))break;c[o>>2]=_(b[(c[k>>2]|0)+(a<<1)>>1]|0,b[(c[k>>2]|0)+(c[m>>2]<<1)>>1]|0)|0;c[o>>2]=(c[o>>2]|0)+(_(b[(c[k>>2]|0)+((c[m>>2]|0)+1<<1)>>1]|0,b[(c[k>>2]|0)+((c[m>>2]|0)+1<<1)>>1]|0)|0);c[n>>2]=(c[n>>2]|0)+((c[o>>2]|0)>>>(c[p>>2]|0));if((c[n>>2]|0)<0){c[n>>2]=(c[n>>2]|0)>>>2;c[p>>2]=(c[p>>2]|0)+2}c[m>>2]=(c[m>>2]|0)+2}if((a|0)==(c[l>>2]|0)){c[o>>2]=_(b[(c[k>>2]|0)+(c[m>>2]<<1)>>1]|0,b[(c[k>>2]|0)+(c[m>>2]<<1)>>1]|0)|0;c[n>>2]=(c[n>>2]|0)+(c[o>>2]>>c[p>>2])}if(!(c[n>>2]&-1073741824)){p=c[p>>2]|0;o=c[j>>2]|0;c[o>>2]=p;o=c[n>>2]|0;p=c[h>>2]|0;c[p>>2]=o;i=q;return}c[n>>2]=(c[n>>2]|0)>>>2;c[p>>2]=(c[p>>2]|0)+2;p=c[p>>2]|0;o=c[j>>2]|0;c[o>>2]=p;o=c[n>>2]|0;p=c[h>>2]|0;c[p>>2]=o;i=q;return}function xg(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+48|0;e=l+40|0;f=l+36|0;j=l+32|0;g=l+8|0;h=l+4|0;k=l;c[e>>2]=a;c[f>>2]=d;c[j>>2]=ec(c[e>>2]|0,28978,8)|0;c[g+8>>2]=(c[j>>2]|0)/5|0;c[g+12+8>>2]=(c[j>>2]|0)-((c[g+8>>2]|0)*5|0);c[j>>2]=0;while(1){if((c[j>>2]|0)>=2)break;a=ec(c[e>>2]|0,29031,8)|0;c[g+((c[j>>2]|0)*12|0)>>2]=a;a=ec(c[e>>2]|0,29038,8)|0;c[g+((c[j>>2]|0)*12|0)+4>>2]=a;c[j>>2]=(c[j>>2]|0)+1}c[j>>2]=0;while(1){if((c[j>>2]|0)>=2)break;a=g+((c[j>>2]|0)*12|0)|0;c[a>>2]=(c[a>>2]|0)+((c[g+((c[j>>2]|0)*12|0)+8>>2]|0)*3|0);c[h>>2]=b[24526+(c[g+((c[j>>2]|0)*12|0)>>2]<<1)>>1];c[k>>2]=(((b[24526+((c[g+((c[j>>2]|0)*12|0)>>2]|0)+1<<1)>>1]|0)-(c[h>>2]|0)>>16)*6554|0)+(((b[24526+((c[g+((c[j>>2]|0)*12|0)>>2]|0)+1<<1)>>1]|0)-(c[h>>2]|0)&65535)*6554>>16);a=(c[h>>2]|0)+(_((c[k>>2]&65535)<<16>>16,((c[g+((c[j>>2]|0)*12|0)+4>>2]<<1)+1&65535)<<16>>16)|0)|0;c[(c[f>>2]|0)+(c[j>>2]<<2)>>2]=a;c[j>>2]=(c[j>>2]|0)+1}k=c[f>>2]|0;c[k>>2]=(c[k>>2]|0)-(c[(c[f>>2]|0)+4>>2]|0);i=l;return}function yg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;c[e>>2]=b;a=ec(c[f>>2]|0,29003,8)|0;c[c[e>>2]>>2]=a;i=d;return}function zg(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h+8|0;f=h+4|0;g=h;c[e>>2]=b;c[f>>2]=d;c[g>>2]=((a[(c[f>>2]|0)+2>>0]|0)*5|0)+(a[(c[f>>2]|0)+3+2>>0]|0);qc(c[e>>2]|0,c[g>>2]|0,28978,8);c[g>>2]=0;while(1){if((c[g>>2]|0)>=2)break;qc(c[e>>2]|0,a[(c[f>>2]|0)+((c[g>>2]|0)*3|0)>>0]|0,29031,8);qc(c[e>>2]|0,a[(c[f>>2]|0)+((c[g>>2]|0)*3|0)+1>>0]|0,29038,8);c[g>>2]=(c[g>>2]|0)+1}i=h;return}function Ag(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;g=e;f=e+4|0;c[g>>2]=b;a[f>>0]=d;qc(c[g>>2]|0,a[f>>0]|0,29003,8);i=e;return}function Bg(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;r=i;i=i+64|0;o=r+52|0;u=r+48|0;t=r+44|0;p=r+40|0;s=r+36|0;h=r+32|0;n=r+28|0;v=r+24|0;w=r+20|0;k=r+16|0;l=r+12|0;j=r+8|0;q=r+4|0;m=r;c[o>>2]=a;c[u>>2]=b;c[t>>2]=d;c[p>>2]=e;c[s>>2]=f;c[h>>2]=g;wg(k,v,c[u>>2]|0,c[s>>2]|0);wg(l,w,c[t>>2]|0,c[s>>2]|0);c[n>>2]=Cg(c[v>>2]|0,c[w>>2]|0)|0;c[n>>2]=(c[n>>2]|0)+(c[n>>2]&1);c[l>>2]=c[l>>2]>>(c[n>>2]|0)-(c[w>>2]|0);c[k>>2]=c[k>>2]>>(c[n>>2]|0)-(c[v>>2]|0);c[k>>2]=Cg(c[k>>2]|0,1)|0;c[j>>2]=Rf(c[u>>2]|0,c[t>>2]|0,c[n>>2]|0,c[s>>2]|0)|0;c[q>>2]=Dg(c[j>>2]|0,c[k>>2]|0,13)|0;if((c[q>>2]|0)>16384)f=16384;else f=(c[q>>2]|0)<-16384?-16384:c[q>>2]|0;c[q>>2]=f;w=_(c[q>>2]>>16,(c[q>>2]&65535)<<16>>16)|0;c[m>>2]=w+((_(c[q>>2]&65535,(c[q>>2]&65535)<<16>>16)|0)>>16);w=c[m>>2]|0;c[h>>2]=Cg(c[h>>2]|0,(c[m>>2]|0)>0?w:0-w|0)|0;c[n>>2]=c[n>>2]>>1;w=c[c[p>>2]>>2]|0;v=Fg(c[k>>2]|0)|0;v=_((v<<c[n>>2])-(c[c[p>>2]>>2]|0)>>16,(c[h>>2]&65535)<<16>>16)|0;u=Fg(c[k>>2]|0)|0;u=w+(v+((_((u<<c[n>>2])-(c[c[p>>2]>>2]|0)&65535,(c[h>>2]&65535)<<16>>16)|0)>>16))|0;c[c[p>>2]>>2]=u;u=_(c[j>>2]>>16,(c[q>>2]&65535)<<16>>16)|0;c[l>>2]=(c[l>>2]|0)-(u+((_(c[j>>2]&65535,(c[q>>2]&65535)<<16>>16)|0)>>16)<<4);u=_(c[k>>2]>>16,(c[m>>2]&65535)<<16>>16)|0;c[l>>2]=(c[l>>2]|0)+(u+((_(c[k>>2]&65535,(c[m>>2]&65535)<<16>>16)|0)>>16)<<6);u=c[(c[p>>2]|0)+4>>2]|0;v=Fg(c[l>>2]|0)|0;v=_((v<<c[n>>2])-(c[(c[p>>2]|0)+4>>2]|0)>>16,(c[h>>2]&65535)<<16>>16)|0;w=Fg(c[l>>2]|0)|0;w=u+(v+((_((w<<c[n>>2])-(c[(c[p>>2]|0)+4>>2]|0)&65535,(c[h>>2]&65535)<<16>>16)|0)>>16))|0;c[(c[p>>2]|0)+4>>2]=w;if((c[c[p>>2]>>2]|0)>1)f=c[c[p>>2]>>2]|0;else f=1;w=Dg(c[(c[p>>2]|0)+4>>2]|0,f,14)|0;c[c[o>>2]>>2]=w;if((c[c[o>>2]>>2]|0)>32767){v=32767;w=c[o>>2]|0;c[w>>2]=v;w=c[q>>2]|0;i=r;return w|0}if((c[c[o>>2]>>2]|0)<0){v=0;w=c[o>>2]|0;c[w>>2]=v;w=c[q>>2]|0;i=r;return w|0}v=c[c[o>>2]>>2]|0;w=c[o>>2]|0;c[w>>2]=v;w=c[q>>2]|0;i=r;return w|0}function Cg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f+4|0;d=f;c[e>>2]=a;c[d>>2]=b;i=f;return ((c[e>>2]|0)>(c[d>>2]|0)?c[e>>2]|0:c[d>>2]|0)|0}function Dg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;h=i;i=i+48|0;f=h+40|0;q=h+36|0;p=h+32|0;j=h+28|0;l=h+24|0;k=h+20|0;g=h+16|0;m=h+12|0;n=h+8|0;o=h+4|0;e=h;c[q>>2]=a;c[p>>2]=b;c[j>>2]=d;b=c[q>>2]|0;c[l>>2]=(Eg((c[q>>2]|0)>0?b:0-b|0)|0)-1;c[n>>2]=c[q>>2]<<c[l>>2];b=c[p>>2]|0;c[k>>2]=(Eg((c[p>>2]|0)>0?b:0-b|0)|0)-1;c[o>>2]=c[p>>2]<<c[k>>2];c[m>>2]=536870911/(c[o>>2]>>16|0)|0;b=_(c[n>>2]>>16,(c[m>>2]&65535)<<16>>16)|0;c[e>>2]=b+((_(c[n>>2]&65535,(c[m>>2]&65535)<<16>>16)|0)>>16);b=c[n>>2]|0;a=c[o>>2]|0;d=c[e>>2]|0;d=yj(a|0,((a|0)<0)<<31>>31|0,d|0,((d|0)<0)<<31>>31|0)|0;d=nj(d|0,C|0,32)|0;c[n>>2]=b-(d<<3);d=_(c[n>>2]>>16,(c[m>>2]&65535)<<16>>16)|0;c[e>>2]=(c[e>>2]|0)+(d+((_(c[n>>2]&65535,(c[m>>2]&65535)<<16>>16)|0)>>16));c[g>>2]=29+(c[l>>2]|0)-(c[k>>2]|0)-(c[j>>2]|0);d=c[g>>2]|0;if((c[g>>2]|0)>=0)if((d|0)<32){c[f>>2]=c[e>>2]>>c[g>>2];q=c[f>>2]|0;i=h;return q|0}else{c[f>>2]=0;q=c[f>>2]|0;i=h;return q|0}a=c[e>>2]|0;b=0-(c[g>>2]|0)|0;do if((-2147483648>>0-d|0)>(2147483647>>0-(c[g>>2]|0)|0)){if((a|0)>(-2147483648>>b|0)){d=-2147483648>>0-(c[g>>2]|0);break}if((c[e>>2]|0)<(2147483647>>0-(c[g>>2]|0)|0)){d=2147483647>>0-(c[g>>2]|0);break}else{d=c[e>>2]|0;break}}else{if((a|0)>(2147483647>>b|0)){d=2147483647>>0-(c[g>>2]|0);break}if((c[e>>2]|0)<(-2147483648>>0-(c[g>>2]|0)|0)){d=-2147483648>>0-(c[g>>2]|0);break}else{d=c[e>>2]|0;break}}while(0);c[f>>2]=d<<0-(c[g>>2]|0);q=c[f>>2]|0;i=h;return q|0}function Eg(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if(!(c[b>>2]|0)){a=32;i=d;return a|0}a=32-(32-(aa(c[b>>2]|0)|0))|0;i=d;return a|0}function Fg(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=i;i=i+32|0;b=h+16|0;d=h+12|0;g=h+8|0;f=h+4|0;e=h;c[d>>2]=a;if((c[d>>2]|0)<=0){c[b>>2]=0;g=c[b>>2]|0;i=h;return g|0}Gg(c[d>>2]|0,f,e);if(c[f>>2]&1|0)c[g>>2]=32768;else c[g>>2]=46214;c[g>>2]=c[g>>2]>>(c[f>>2]>>1);a=_(c[g>>2]>>16,(((c[e>>2]&65535)<<16>>16)*213&65535)<<16>>16)|0;c[g>>2]=(c[g>>2]|0)+(a+((_(c[g>>2]&65535,(((c[e>>2]&65535)<<16>>16)*213&65535)<<16>>16)|0)>>16));c[b>>2]=c[g>>2];g=c[b>>2]|0;i=h;return g|0}function Gg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+16|0;h=e+12|0;j=e+8|0;f=e+4|0;g=e;c[h>>2]=a;c[j>>2]=b;c[f>>2]=d;c[g>>2]=Eg(c[h>>2]|0)|0;c[c[j>>2]>>2]=c[g>>2];b=(Hg(c[h>>2]|0,24-(c[g>>2]|0)|0)|0)&127;c[c[f>>2]>>2]=b;i=e;return}function Hg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;e=k+20|0;d=k+16|0;f=k+12|0;j=k+8|0;h=k+4|0;g=k;c[d>>2]=a;c[f>>2]=b;c[j>>2]=c[d>>2];c[h>>2]=c[f>>2];c[g>>2]=0-(c[f>>2]|0);if(!(c[f>>2]|0)){c[e>>2]=c[d>>2];j=c[e>>2]|0;i=k;return j|0}d=c[j>>2]|0;if((c[f>>2]|0)<0){c[e>>2]=d<<c[g>>2]|(c[j>>2]|0)>>>(32-(c[g>>2]|0)|0);j=c[e>>2]|0;i=k;return j|0}else{c[e>>2]=d<<32-(c[h>>2]|0)|(c[j>>2]|0)>>>(c[h>>2]|0);j=c[e>>2]|0;i=k;return j|0}return 0}function Ig(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+48|0;f=r+40|0;g=r+36|0;k=r+32|0;l=r+28|0;o=r+24|0;m=r+20|0;q=r+16|0;n=r+12|0;j=r+8|0;h=r+4|0;p=r;c[f>>2]=d;c[g>>2]=e;c[p>>2]=0;c[o>>2]=0;while(1){if((c[o>>2]|0)>=2)break;c[j>>2]=2147483647;c[k>>2]=0;a:while(1){if((c[k>>2]|0)>=15)break;c[m>>2]=b[24526+(c[k>>2]<<1)>>1];c[q>>2]=(((b[24526+((c[k>>2]|0)+1<<1)>>1]|0)-(c[m>>2]|0)>>16)*6554|0)+(((b[24526+((c[k>>2]|0)+1<<1)>>1]|0)-(c[m>>2]|0)&65535)*6554>>16);c[l>>2]=0;while(1){if((c[l>>2]|0)>=5)break;c[n>>2]=(c[m>>2]|0)+(_((c[q>>2]&65535)<<16>>16,((c[l>>2]<<1)+1&65535)<<16>>16)|0);d=(c[(c[f>>2]|0)+(c[o>>2]<<2)>>2]|0)-(c[n>>2]|0)|0;c[h>>2]=((c[(c[f>>2]|0)+(c[o>>2]<<2)>>2]|0)-(c[n>>2]|0)|0)>0?d:0-d|0;if((c[h>>2]|0)>=(c[j>>2]|0))break a;c[j>>2]=c[h>>2];c[p>>2]=c[n>>2];a[(c[g>>2]|0)+((c[o>>2]|0)*3|0)>>0]=c[k>>2];a[(c[g>>2]|0)+((c[o>>2]|0)*3|0)+1>>0]=c[l>>2];c[l>>2]=(c[l>>2]|0)+1}c[k>>2]=(c[k>>2]|0)+1}a[(c[g>>2]|0)+((c[o>>2]|0)*3|0)+2>>0]=(a[(c[g>>2]|0)+((c[o>>2]|0)*3|0)>>0]|0)/3|0;d=(c[g>>2]|0)+((c[o>>2]|0)*3|0)|0;a[d>>0]=(a[d>>0]|0)-((a[(c[g>>2]|0)+((c[o>>2]|0)*3|0)+2>>0]|0)*3|0);c[(c[f>>2]|0)+(c[o>>2]<<2)>>2]=c[p>>2];c[o>>2]=(c[o>>2]|0)+1}q=c[f>>2]|0;c[q>>2]=(c[q>>2]|0)-(c[(c[f>>2]|0)+4>>2]|0);i=r;return}function Jg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;p=i;i=i+48|0;f=p+32|0;h=p+28|0;q=p+24|0;j=p+20|0;o=p+16|0;n=p+12|0;m=p+8|0;k=p+4|0;l=p;c[f>>2]=a;c[h>>2]=b;c[q>>2]=d;c[j>>2]=e;g[n>>2]=3.1415927410125732/+((c[j>>2]|0)+1|0);g[m>>2]=2.0-+g[n>>2]*+g[n>>2];if((c[q>>2]|0)<2){g[k>>2]=0.0;g[l>>2]=+g[n>>2]}else{g[k>>2]=1.0;g[l>>2]=+g[m>>2]*.5}c[o>>2]=0;while(1){if((c[o>>2]|0)>=(c[j>>2]|0))break;g[(c[f>>2]|0)+((c[o>>2]|0)+0<<2)>>2]=+g[(c[h>>2]|0)+((c[o>>2]|0)+0<<2)>>2]*.5*(+g[k>>2]+ +g[l>>2]);g[(c[f>>2]|0)+((c[o>>2]|0)+1<<2)>>2]=+g[(c[h>>2]|0)+((c[o>>2]|0)+1<<2)>>2]*+g[l>>2];g[k>>2]=+g[m>>2]*+g[l>>2]-+g[k>>2];g[(c[f>>2]|0)+((c[o>>2]|0)+2<<2)>>2]=+g[(c[h>>2]|0)+((c[o>>2]|0)+2<<2)>>2]*.5*(+g[l>>2]+ +g[k>>2]);g[(c[f>>2]|0)+((c[o>>2]|0)+3<<2)>>2]=+g[(c[h>>2]|0)+((c[o>>2]|0)+3<<2)>>2]*+g[k>>2];g[l>>2]=+g[m>>2]*+g[k>>2]-+g[l>>2];c[o>>2]=(c[o>>2]|0)+4}i=p;return}function Kg(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0;o=i;i=i+32|0;p=o+24|0;h=o+20|0;j=o+16|0;k=o+12|0;l=o+8|0;m=o+4|0;n=o;c[p>>2]=a;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;c[n>>2]=(c[p>>2]|0)+((c[k>>2]|0)-1<<2);c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[k>>2]|0))break;q=+Hh(c[n>>2]|0,c[h>>2]|0,c[j>>2]|0);g[(c[l>>2]|0)+(c[m>>2]<<2)>>2]=q;c[n>>2]=(c[n>>2]|0)+-4;c[m>>2]=(c[m>>2]|0)+1}i=o;return}function Lg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+48|0;f=r+36|0;j=r+32|0;k=r+28|0;l=r+24|0;n=r+20|0;o=r+16|0;m=r;p=r+12|0;q=r+8|0;c[f>>2]=a;c[j>>2]=b;c[k>>2]=d;c[l>>2]=e;c[p>>2]=(c[f>>2]|0)+((c[k>>2]|0)-1<<2);h[m>>3]=+Gh(c[p>>2]|0,c[j>>2]|0);g[(c[l>>2]|0)+(0<<2)>>2]=+h[m>>3];c[n>>2]=1;while(1){if((c[n>>2]|0)>=(c[k>>2]|0))break;h[m>>3]=+h[m>>3]+(+g[(c[p>>2]|0)+(0-(c[n>>2]|0)<<2)>>2]*+g[(c[p>>2]|0)+(0-(c[n>>2]|0)<<2)>>2]-+g[(c[p>>2]|0)+((c[j>>2]|0)-(c[n>>2]|0)<<2)>>2]*+g[(c[p>>2]|0)+((c[j>>2]|0)-(c[n>>2]|0)<<2)>>2]);a=_(c[n>>2]|0,c[k>>2]|0)|0;g[(c[l>>2]|0)+(a+(c[n>>2]|0)<<2)>>2]=+h[m>>3];c[n>>2]=(c[n>>2]|0)+1}c[q>>2]=(c[f>>2]|0)+((c[k>>2]|0)-2<<2);c[o>>2]=1;while(1){if((c[o>>2]|0)>=(c[k>>2]|0))break;h[m>>3]=+Hh(c[p>>2]|0,c[q>>2]|0,c[j>>2]|0);g[(c[l>>2]|0)+((_(c[o>>2]|0,c[k>>2]|0)|0)+0<<2)>>2]=+h[m>>3];g[(c[l>>2]|0)+(0+(c[o>>2]|0)<<2)>>2]=+h[m>>3];c[n>>2]=1;while(1){if((c[n>>2]|0)>=((c[k>>2]|0)-(c[o>>2]|0)|0))break;h[m>>3]=+h[m>>3]+(+g[(c[p>>2]|0)+(0-(c[n>>2]|0)<<2)>>2]*+g[(c[q>>2]|0)+(0-(c[n>>2]|0)<<2)>>2]-+g[(c[p>>2]|0)+((c[j>>2]|0)-(c[n>>2]|0)<<2)>>2]*+g[(c[q>>2]|0)+((c[j>>2]|0)-(c[n>>2]|0)<<2)>>2]);a=_((c[o>>2]|0)+(c[n>>2]|0)|0,c[k>>2]|0)|0;g[(c[l>>2]|0)+(a+(c[n>>2]|0)<<2)>>2]=+h[m>>3];a=_(c[n>>2]|0,c[k>>2]|0)|0;g[(c[l>>2]|0)+(a+((c[o>>2]|0)+(c[n>>2]|0))<<2)>>2]=+h[m>>3];c[n>>2]=(c[n>>2]|0)+1}c[q>>2]=(c[q>>2]|0)+-4;c[o>>2]=(c[o>>2]|0)+1}i=r;return}function Mg(b){b=b|0;var d=0,e=0;e=i;i=i+16|0;d=e;c[d>>2]=b;We(c[d>>2]|0,(c[d>>2]|0)+5128+2|0)|0;b=c[d>>2]|0;if((c[(c[d>>2]|0)+4556>>2]|0)>=13){c[b+6116>>2]=0;c[(c[d>>2]|0)+6112>>2]=0;a[(c[d>>2]|0)+4768+29>>0]=1;a[(c[d>>2]|0)+4752+(c[(c[d>>2]|0)+5780>>2]|0)>>0]=1;i=e;return}a[b+4768+29>>0]=0;b=(c[d>>2]|0)+6116|0;c[b>>2]=(c[b>>2]|0)+1;b=c[d>>2]|0;if((c[(c[d>>2]|0)+6116>>2]|0)>=10){if((c[b+6116>>2]|0)>30){c[(c[d>>2]|0)+6116>>2]=10;c[(c[d>>2]|0)+6112>>2]=0}}else c[b+6112>>2]=0;a[(c[d>>2]|0)+4752+(c[(c[d>>2]|0)+5780>>2]|0)>>0]=0;i=e;return}function Ng(d,e,f,h,j,k){d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0;X=i;i=i+15152|0;o=X+13856|0;p=X+13852|0;q=X+13848|0;r=X+13844|0;s=X+13840|0;t=X+13836|0;u=X+13832|0;Q=X+12920|0;I=X+12916|0;J=X+12912|0;K=X+12908|0;A=X+12904|0;z=X+12900|0;P=X+12896|0;n=X+12892|0;m=X+12888|0;W=X+11608|0;l=X+8920|0;T=X+8872|0;U=X+8824|0;R=X+4444|0;S=X+64|0;V=X+60|0;L=X+56|0;M=X+52|0;N=X+48|0;C=X+44|0;D=X+40|0;F=X+36|0;G=X+32|0;H=X+28|0;B=X+13862|0;x=X+13860|0;y=X+24|0;v=X+15139|0;O=X+8|0;w=X+13864|0;E=X;c[p>>2]=d;c[q>>2]=e;c[r>>2]=f;c[s>>2]=h;c[t>>2]=j;c[u>>2]=k;c[P>>2]=0;c[D>>2]=0;c[C>>2]=0;c[N>>2]=0;c[M>>2]=0;a[v>>0]=0;f=(c[p>>2]|0)+4644|0;k=c[f>>2]|0;c[f>>2]=k+1;a[(c[p>>2]|0)+4768+34>>0]=k&3;c[n>>2]=(c[p>>2]|0)+9356+(c[(c[p>>2]|0)+4616>>2]<<2);c[m>>2]=l+(c[(c[p>>2]|0)+4616>>2]<<2);ee((c[p>>2]|0)+16|0,(c[p>>2]|0)+5128+2|0,c[(c[p>>2]|0)+4608>>2]|0);Og((c[n>>2]|0)+((c[(c[p>>2]|0)+4600>>2]|0)*5<<2)|0,(c[p>>2]|0)+5128+2|0,c[(c[p>>2]|0)+4608>>2]|0);c[I>>2]=0;while(1){if((c[I>>2]|0)>=8)break;k=((c[(c[p>>2]|0)+4600>>2]|0)*5|0)+(_(c[I>>2]|0,c[(c[p>>2]|0)+4608>>2]>>3)|0)|0;k=(c[n>>2]|0)+(k<<2)|0;g[k>>2]=+g[k>>2]+ +(1-(c[I>>2]&2)|0)*9.999999974752427e-07;c[I>>2]=(c[I>>2]|0)+1}a:do if(!(c[(c[p>>2]|0)+4712>>2]|0)){Xg(c[p>>2]|0,Q,l,c[n>>2]|0,c[(c[p>>2]|0)+5124>>2]|0);fh(c[p>>2]|0,Q,c[m>>2]|0,c[n>>2]|0);Yg(c[p>>2]|0,Q,l,c[n>>2]|0,c[s>>2]|0);nh(c[p>>2]|0,Q,c[s>>2]|0);kh(c[p>>2]|0,Q,W,c[n>>2]|0);Pg(c[p>>2]|0,Q,W,c[s>>2]|0);c[K>>2]=6;b[B>>1]=256;c[z>>2]=0;c[A>>2]=0;c[F>>2]=ce((c[p>>2]|0)+4768|0,c[(c[p>>2]|0)+4604>>2]|0)|0;c[G>>2]=-1;c[H>>2]=-1;h=T;j=c[r>>2]|0;e=h+48|0;do{c[h>>2]=c[j>>2];h=h+4|0;j=j+4|0}while((h|0)<(e|0));pj(R|0,(c[p>>2]|0)+144|0,4380)|0;c[V>>2]=a[(c[p>>2]|0)+4768+34>>0];b[x>>1]=b[(c[p>>2]|0)+5804>>1]|0;c[y>>2]=c[(c[p>>2]|0)+5800>>2];c[J>>2]=0;while(1){do if((c[F>>2]|0)!=(c[G>>2]|0)){if((c[F>>2]|0)==(c[H>>2]|0)){c[L>>2]=c[N>>2];break}if((c[J>>2]|0)>0){h=c[r>>2]|0;j=T;e=h+48|0;do{c[h>>2]=c[j>>2];h=h+4|0;j=j+4|0}while((h|0)<(e|0));pj((c[p>>2]|0)+144|0,R|0,4380)|0;a[(c[p>>2]|0)+4768+34>>0]=c[V>>2];b[(c[p>>2]|0)+5804>>1]=b[x>>1]|0;c[(c[p>>2]|0)+5800>>2]=c[y>>2]}Bh(c[p>>2]|0,Q,(c[p>>2]|0)+4768|0,(c[p>>2]|0)+144|0,(c[p>>2]|0)+4804|0,W);Xd(c[p>>2]|0,c[r>>2]|0,c[(c[p>>2]|0)+5780>>2]|0,0,c[s>>2]|0);Yd(c[r>>2]|0,a[(c[p>>2]|0)+4768+29>>0]|0,a[(c[p>>2]|0)+4768+30>>0]|0,(c[p>>2]|0)+4804|0,c[(c[p>>2]|0)+4608>>2]|0);c[L>>2]=Rg(c[r>>2]|0)|0;if((c[u>>2]|0)==0&(c[J>>2]|0)==0?(c[L>>2]|0)<=(c[t>>2]|0):0)break a}else c[L>>2]=c[M>>2];while(0);if((c[J>>2]|0)==(c[K>>2]|0))break;do if((c[L>>2]|0)>(c[t>>2]|0))if((c[z>>2]|0)==0&(c[J>>2]|0)>=2){n=Q+852|0;g[n>>2]=+g[n>>2]*1.5;c[A>>2]=0;c[H>>2]=-1;break}else{c[A>>2]=1;c[N>>2]=c[L>>2];c[D>>2]=b[B>>1];c[H>>2]=c[F>>2];break}else{if((c[L>>2]|0)>=((c[t>>2]|0)-5|0))break a;c[z>>2]=1;c[M>>2]=c[L>>2];c[C>>2]=b[B>>1];if((c[F>>2]|0)!=(c[G>>2]|0)){c[G>>2]=c[F>>2];h=U;j=c[r>>2]|0;e=h+48|0;do{c[h>>2]=c[j>>2];h=h+4|0;j=j+4|0}while((h|0)<(e|0));pj(w|0,c[c[r>>2]>>2]|0,c[(c[r>>2]|0)+24>>2]|0)|0;pj(S|0,(c[p>>2]|0)+144|0,4380)|0;a[v>>0]=a[(c[p>>2]|0)+7200>>0]|0}}while(0);do if(c[z>>2]&c[A>>2]){n=_((c[D>>2]|0)-(c[C>>2]|0)|0,(c[t>>2]|0)-(c[M>>2]|0)|0)|0;b[B>>1]=(c[C>>2]|0)+((n|0)/((c[N>>2]|0)-(c[M>>2]|0)|0)|0);if((b[B>>1]|0)>((c[C>>2]|0)+((c[D>>2]|0)-(c[C>>2]|0)>>2)|0)){b[B>>1]=(c[C>>2]|0)+((c[D>>2]|0)-(c[C>>2]|0)>>2);break}if((b[B>>1]|0)<((c[D>>2]|0)-((c[D>>2]|0)-(c[C>>2]|0)>>2)|0))b[B>>1]=(c[D>>2]|0)-((c[D>>2]|0)-(c[C>>2]|0)>>2)}else{c[E>>2]=Wf((((c[L>>2]|0)-(c[t>>2]|0)<<7|0)/(c[(c[p>>2]|0)+4608>>2]|0)|0)+2048|0)|0;c[E>>2]=Sg(c[E>>2]|0,131072)|0;if((c[L>>2]|0)>(c[t>>2]|0))c[E>>2]=Tg(c[E>>2]|0,85197)|0;n=_(c[E>>2]>>16,b[B>>1]|0)|0;b[B>>1]=n+((_(c[E>>2]&65535,b[B>>1]|0)|0)>>16)}while(0);c[I>>2]=0;while(1){if((c[I>>2]|0)>=(c[(c[p>>2]|0)+4604>>2]|0))break;n=_(c[Q+892+(c[I>>2]<<2)>>2]>>16,b[B>>1]|0)|0;if((n+((_(c[Q+892+(c[I>>2]<<2)>>2]&65535,b[B>>1]|0)|0)>>16)|0)<=8388607){n=_(c[Q+892+(c[I>>2]<<2)>>2]>>16,b[B>>1]|0)|0;if((n+((_(c[Q+892+(c[I>>2]<<2)>>2]&65535,b[B>>1]|0)|0)>>16)|0)<-8388608)h=-8388608;else{h=_(c[Q+892+(c[I>>2]<<2)>>2]>>16,b[B>>1]|0)|0;h=h+((_(c[Q+892+(c[I>>2]<<2)>>2]&65535,b[B>>1]|0)|0)>>16)|0}}else h=8388607;c[O+(c[I>>2]<<2)>>2]=h<<8;c[I>>2]=(c[I>>2]|0)+1}a[(c[p>>2]|0)+7200>>0]=a[Q+908>>0]|0;_d((c[p>>2]|0)+4768|0,O,(c[p>>2]|0)+7200|0,(c[s>>2]|0)==2&1,c[(c[p>>2]|0)+4604>>2]|0);c[F>>2]=ce((c[p>>2]|0)+4768|0,c[(c[p>>2]|0)+4604>>2]|0)|0;c[I>>2]=0;while(1){if((c[I>>2]|0)>=(c[(c[p>>2]|0)+4604>>2]|0))break;g[Q+(c[I>>2]<<2)>>2]=+(c[O+(c[I>>2]<<2)>>2]|0)/65536.0;c[I>>2]=(c[I>>2]|0)+1}c[J>>2]=(c[J>>2]|0)+1}if(c[z>>2]|0){if((c[F>>2]|0)!=(c[G>>2]|0)?(c[L>>2]|0)<=(c[t>>2]|0):0)break;h=c[r>>2]|0;j=U;e=h+48|0;do{c[h>>2]=c[j>>2];h=h+4|0;j=j+4|0}while((h|0)<(e|0));pj(c[c[r>>2]>>2]|0,w|0,c[U+24>>2]|0)|0;pj((c[p>>2]|0)+144|0,S|0,4380)|0;a[(c[p>>2]|0)+7200>>0]=a[v>>0]|0}}while(0);qj((c[p>>2]|0)+9356|0,(c[p>>2]|0)+9356+(c[(c[p>>2]|0)+4608>>2]<<2)|0,(c[(c[p>>2]|0)+4616>>2]|0)+((c[(c[p>>2]|0)+4600>>2]|0)*5|0)<<2|0)|0;if(c[(c[p>>2]|0)+4712>>2]|0){c[c[q>>2]>>2]=0;c[o>>2]=c[P>>2];W=c[o>>2]|0;i=X;return W|0}else{c[(c[p>>2]|0)+4568>>2]=c[Q+228+((c[(c[p>>2]|0)+4604>>2]|0)-1<<2)>>2];a[(c[p>>2]|0)+4565>>0]=a[(c[p>>2]|0)+4768+29>>0]|0;c[(c[p>>2]|0)+4696>>2]=0;W=(Rg(c[r>>2]|0)|0)+7>>3;c[c[q>>2]>>2]=W;c[o>>2]=c[P>>2];W=c[o>>2]|0;i=X;return W|0}return 0}function Og(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0;k=i;i=i+16|0;f=k+12|0;h=k+8|0;l=k+4|0;j=k;c[f>>2]=a;c[h>>2]=d;c[l>>2]=e;c[j>>2]=(c[l>>2]|0)-1;while(1){if((c[j>>2]|0)<0)break;g[(c[f>>2]|0)+(c[j>>2]<<2)>>2]=+(b[(c[h>>2]|0)+(c[j>>2]<<1)>>1]|0);c[j>>2]=(c[j>>2]|0)+-1}i=k;return}function Pg(d,e,f,h){d=d|0;e=e|0;f=f|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+4448|0;j=s+4432|0;k=s+4428|0;l=s+4424|0;m=s+4420|0;p=s+4416|0;n=s+4400|0;o=s+4384|0;q=s+4380|0;r=s;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;c[m>>2]=h;c[q>>2]=(c[j>>2]|0)+6132+((c[(c[j>>2]|0)+5780>>2]|0)*36|0);if(!(c[(c[j>>2]|0)+6124>>2]|0)){i=s;return}if((c[(c[j>>2]|0)+4556>>2]|0)<=77){i=s;return}c[(c[j>>2]|0)+4756+(c[(c[j>>2]|0)+5780>>2]<<2)>>2]=1;pj(r|0,(c[j>>2]|0)+144|0,4380)|0;h=c[q>>2]|0;d=(c[j>>2]|0)+4768|0;e=h+36|0;do{b[h>>1]=b[d>>1]|0;h=h+2|0;d=d+2|0}while((h|0)<(e|0));pj(o|0,c[k>>2]|0,c[(c[j>>2]|0)+4604>>2]<<2|0)|0;if(!((c[(c[j>>2]|0)+5780>>2]|0)!=0?(c[(c[j>>2]|0)+4756+((c[(c[j>>2]|0)+5780>>2]|0)-1<<2)>>2]|0)!=0:0)){a[(c[j>>2]|0)+4564>>0]=a[(c[j>>2]|0)+7200>>0]|0;f=c[q>>2]|0;a[f>>0]=(a[f>>0]|0)+(c[(c[j>>2]|0)+6128>>2]|0);f=(Qg(a[c[q>>2]>>0]|0,63)|0)&255;a[c[q>>2]>>0]=f}ae(n,c[q>>2]|0,(c[j>>2]|0)+4564|0,(c[m>>2]|0)==2&1,c[(c[j>>2]|0)+4604>>2]|0);c[p>>2]=0;while(1){if((c[p>>2]|0)>=(c[(c[j>>2]|0)+4604>>2]|0))break;g[(c[k>>2]|0)+(c[p>>2]<<2)>>2]=+(c[n+(c[p>>2]<<2)>>2]|0)*.0000152587890625;c[p>>2]=(c[p>>2]|0)+1}Bh(c[j>>2]|0,c[k>>2]|0,c[q>>2]|0,r,(c[j>>2]|0)+6240+((c[(c[j>>2]|0)+5780>>2]|0)*320|0)|0,c[l>>2]|0);pj(c[k>>2]|0,o|0,c[(c[j>>2]|0)+4604>>2]<<2|0)|0;i=s;return}function Qg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f+4|0;d=f;c[e>>2]=a;c[d>>2]=b;i=f;return ((c[e>>2]|0)<(c[d>>2]|0)?c[e>>2]|0:c[d>>2]|0)|0}function Rg(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=(c[(c[d>>2]|0)+20>>2]|0)-(32-(aa(c[(c[d>>2]|0)+28>>2]|0)|0))|0;i=b;return a|0}function Sg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f+4|0;d=f;c[e>>2]=a;c[d>>2]=b;i=f;return ((c[e>>2]|0)<(c[d>>2]|0)?c[e>>2]|0:c[d>>2]|0)|0}function Tg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f+4|0;d=f;c[e>>2]=a;c[d>>2]=b;i=f;return ((c[e>>2]|0)>(c[d>>2]|0)?c[e>>2]|0:c[d>>2]|0)|0}function Ug(b,d,e,f){b=b|0;d=d|0;e=e|0;f=+f;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=i;i=i+1744|0;j=v+1700|0;k=v+1696|0;l=v+1692|0;h=v+1688|0;q=v+1684|0;u=v+1680|0;o=v+1616|0;r=v+1608|0;s=v+1604|0;t=v+1600|0;n=v+1704|0;p=v+1536|0;m=v;c[j>>2]=b;c[k>>2]=d;c[l>>2]=e;g[h>>2]=f;c[u>>2]=(c[(c[j>>2]|0)+4612>>2]|0)+(c[(c[j>>2]|0)+4664>>2]|0);a[(c[j>>2]|0)+4768+31>>0]=4;g[r>>2]=+Eh(o,c[l>>2]|0,+g[h>>2],c[u>>2]|0,c[(c[j>>2]|0)+4604>>2]|0,c[(c[j>>2]|0)+4664>>2]|0);a:do if((c[(c[j>>2]|0)+4656>>2]|0?(c[(c[j>>2]|0)+4696>>2]|0)==0:0)?(c[(c[j>>2]|0)+4604>>2]|0)==4:0){f=+Eh(p,(c[l>>2]|0)+(c[u>>2]<<1<<2)|0,+g[h>>2],c[u>>2]|0,2,c[(c[j>>2]|0)+4664>>2]|0);g[r>>2]=+g[r>>2]-f;xh(c[k>>2]|0,p,c[(c[j>>2]|0)+4664>>2]|0);g[s>>2]=3402823466385288598117041.0e14;c[q>>2]=3;while(1){if((c[q>>2]|0)<0)break a;de(n,(c[j>>2]|0)+4524|0,c[k>>2]|0,c[q>>2]|0,c[(c[j>>2]|0)+4664>>2]|0);zh(p,n,c[(c[j>>2]|0)+4664>>2]|0);Zg(m,p,c[l>>2]|0,c[u>>2]<<1,c[(c[j>>2]|0)+4664>>2]|0);f=+Gh(m+(c[(c[j>>2]|0)+4664>>2]<<2)|0,(c[u>>2]|0)-(c[(c[j>>2]|0)+4664>>2]|0)|0);g[t>>2]=f+ +Gh(m+(c[(c[j>>2]|0)+4664>>2]<<2)+(c[u>>2]<<2)|0,(c[u>>2]|0)-(c[(c[j>>2]|0)+4664>>2]|0)|0);f=+g[t>>2];if(!(+g[t>>2]<+g[r>>2])){if(f>+g[s>>2])break a}else{g[r>>2]=f;a[(c[j>>2]|0)+4768+31>>0]=c[q>>2]}g[s>>2]=+g[t>>2];c[q>>2]=(c[q>>2]|0)+-1}}while(0);if((a[(c[j>>2]|0)+4768+31>>0]|0)!=4){i=v;return}xh(c[k>>2]|0,o,c[(c[j>>2]|0)+4664>>2]|0);i=v;return}function Vg(a,b,d,e,f,h,j,k,l){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0;L=i;i=i+192|0;n=L+188|0;O=L+184|0;o=L+180|0;N=L+176|0;p=L+172|0;q=L+168|0;r=L+164|0;B=L+160|0;M=L+156|0;G=L+152|0;H=L+148|0;C=L+144|0;J=L+140|0;v=L+136|0;t=L+132|0;s=L+128|0;D=L+112|0;I=L+104|0;F=L+100|0;E=L+80|0;K=L+64|0;x=L+48|0;z=L+44|0;u=L+24|0;A=L+8|0;y=L+4|0;w=L;c[n>>2]=a;c[O>>2]=b;c[o>>2]=d;c[N>>2]=e;c[p>>2]=f;c[q>>2]=h;c[r>>2]=j;c[B>>2]=k;c[M>>2]=l;c[C>>2]=c[n>>2];c[v>>2]=c[O>>2];c[y>>2]=(c[N>>2]|0)+(c[M>>2]<<2);c[H>>2]=0;while(1){if((c[H>>2]|0)>=(c[B>>2]|0))break;c[w>>2]=(c[y>>2]|0)+(0-((c[(c[p>>2]|0)+(c[H>>2]<<2)>>2]|0)+2)<<2);Lg(c[w>>2]|0,c[r>>2]|0,5,c[v>>2]|0);Kg(c[w>>2]|0,c[y>>2]|0,c[r>>2]|0,5,u);m=+Gh(c[y>>2]|0,c[r>>2]|0);g[A+(c[H>>2]<<2)>>2]=m;g[z>>2]=+g[A+(c[H>>2]<<2)>>2]+1.0+ +g[c[v>>2]>>2]+ +g[(c[v>>2]|0)+96>>2];g[z>>2]=+g[z>>2]*.01666666753590107;ph(c[v>>2]|0,A+(c[H>>2]<<2)|0,+g[z>>2],5);sh(c[v>>2]|0,5,u,c[C>>2]|0);m=+qh(c[C>>2]|0,c[v>>2]|0,u,+g[A+(c[H>>2]<<2)>>2],5);g[x+(c[H>>2]<<2)>>2]=m;g[J>>2]=+g[(c[q>>2]|0)+(c[H>>2]<<2)>>2]/(+g[x+(c[H>>2]<<2)>>2]*+g[(c[q>>2]|0)+(c[H>>2]<<2)>>2]+ +(c[r>>2]|0)*.009999999776482582);Uh(c[v>>2]|0,+g[J>>2],25);g[K+(c[H>>2]<<2)>>2]=+g[(c[v>>2]|0)+48>>2];c[y>>2]=(c[y>>2]|0)+(c[r>>2]<<2);c[C>>2]=(c[C>>2]|0)+20;c[v>>2]=(c[v>>2]|0)+100;c[H>>2]=(c[H>>2]|0)+1}if(c[o>>2]|0){g[s>>2]=9.999999974752427e-07;g[t>>2]=0.0;c[H>>2]=0;while(1){if((c[H>>2]|0)>=(c[B>>2]|0))break;g[t>>2]=+g[t>>2]+ +g[A+(c[H>>2]<<2)>>2]*+g[(c[q>>2]|0)+(c[H>>2]<<2)>>2];g[s>>2]=+g[s>>2]+ +g[x+(c[H>>2]<<2)>>2]*+g[(c[q>>2]|0)+(c[H>>2]<<2)>>2];c[H>>2]=(c[H>>2]|0)+1}m=+Wg(+g[t>>2]/+g[s>>2])*3.0;g[c[o>>2]>>2]=m}c[C>>2]=c[n>>2];c[H>>2]=0;while(1){if((c[H>>2]|0)>=(c[B>>2]|0))break;g[D+(c[H>>2]<<2)>>2]=0.0;c[G>>2]=0;while(1){if((c[G>>2]|0)>=5)break;O=D+(c[H>>2]<<2)|0;g[O>>2]=+g[O>>2]+ +g[(c[C>>2]|0)+(c[G>>2]<<2)>>2];c[G>>2]=(c[G>>2]|0)+1}c[C>>2]=(c[C>>2]|0)+20;c[H>>2]=(c[H>>2]|0)+1}g[J>>2]=1.0000000474974513e-03;c[H>>2]=0;while(1){if((c[H>>2]|0)>=(c[B>>2]|0))break;g[J>>2]=+g[J>>2]+ +g[K+(c[H>>2]<<2)>>2];c[H>>2]=(c[H>>2]|0)+1}g[I>>2]=0.0;c[H>>2]=0;while(1){if((c[H>>2]|0)>=(c[B>>2]|0))break;g[I>>2]=+g[I>>2]+ +g[D+(c[H>>2]<<2)>>2]*+g[K+(c[H>>2]<<2)>>2];c[H>>2]=(c[H>>2]|0)+1}g[I>>2]=+g[I>>2]/+g[J>>2];c[C>>2]=c[n>>2];c[H>>2]=0;while(1){if((c[H>>2]|0)>=(c[B>>2]|0))break;g[F>>2]=.10000000149011612/(+g[K+(c[H>>2]<<2)>>2]+.10000000149011612)*(+g[I>>2]-+g[D+(c[H>>2]<<2)>>2]);g[J>>2]=0.0;c[G>>2]=0;while(1){if((c[G>>2]|0)>=5)break;if(+g[(c[C>>2]|0)+(c[G>>2]<<2)>>2]>.10000000149011612)m=+g[(c[C>>2]|0)+(c[G>>2]<<2)>>2];else m=.10000000149011612;g[E+(c[G>>2]<<2)>>2]=m;g[J>>2]=+g[J>>2]+ +g[E+(c[G>>2]<<2)>>2];c[G>>2]=(c[G>>2]|0)+1}g[J>>2]=+g[F>>2]/+g[J>>2];c[G>>2]=0;while(1){if((c[G>>2]|0)>=5)break;g[(c[C>>2]|0)+(c[G>>2]<<2)>>2]=+g[(c[C>>2]|0)+(c[G>>2]<<2)>>2]+ +g[E+(c[G>>2]<<2)>>2]*+g[J>>2];c[G>>2]=(c[G>>2]|0)+1}c[C>>2]=(c[C>>2]|0)+20;c[H>>2]=(c[H>>2]|0)+1}i=L;return}function Wg(a){a=+a;var b=0,c=0;b=i;i=i+16|0;c=b;h[c>>3]=a;a=+hj(+h[c>>3])*3.32192809488736;i=b;return +a}function Xg(d,e,f,h,j){d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;p=i;i=i+1792|0;k=p+1776|0;l=p+1772|0;m=p+1768|0;z=p+1764|0;n=p+1760|0;q=p+1756|0;o=p+1752|0;u=p+1748|0;x=p+1744|0;r=p+1740|0;v=p+1672|0;s=p+1608|0;t=p+1544|0;w=p+8|0;y=p;c[k>>2]=d;c[l>>2]=e;c[m>>2]=f;c[z>>2]=h;c[n>>2]=j;c[q>>2]=(c[(c[k>>2]|0)+4620>>2]|0)+(c[(c[k>>2]|0)+4608>>2]|0)+(c[(c[k>>2]|0)+4616>>2]|0);c[r>>2]=(c[z>>2]|0)+(0-(c[(c[k>>2]|0)+4616>>2]|0)<<2);c[x>>2]=(c[r>>2]|0)+(c[q>>2]<<2)+(0-(c[(c[k>>2]|0)+4572>>2]|0)<<2);c[y>>2]=w;Jg(c[y>>2]|0,c[x>>2]|0,1,c[(c[k>>2]|0)+4620>>2]|0);c[y>>2]=(c[y>>2]|0)+(c[(c[k>>2]|0)+4620>>2]<<2);c[x>>2]=(c[x>>2]|0)+(c[(c[k>>2]|0)+4620>>2]<<2);pj(c[y>>2]|0,c[x>>2]|0,(c[(c[k>>2]|0)+4572>>2]|0)-(c[(c[k>>2]|0)+4620>>2]<<1)<<2|0)|0;c[y>>2]=(c[y>>2]|0)+((c[(c[k>>2]|0)+4572>>2]|0)-(c[(c[k>>2]|0)+4620>>2]<<1)<<2);c[x>>2]=(c[x>>2]|0)+((c[(c[k>>2]|0)+4572>>2]|0)-(c[(c[k>>2]|0)+4620>>2]<<1)<<2);Jg(c[y>>2]|0,c[x>>2]|0,2,c[(c[k>>2]|0)+4620>>2]|0);Dh(v,w,c[(c[k>>2]|0)+4572>>2]|0,(c[(c[k>>2]|0)+4672>>2]|0)+1|0);g[v>>2]=+g[v>>2]+(+g[v>>2]*1.0000000474974513e-03+1.0);g[u>>2]=+Vh(t,v,c[(c[k>>2]|0)+4672>>2]|0);g[(c[l>>2]|0)+868>>2]=+g[v>>2]/(+g[u>>2]>1.0?+g[u>>2]:1.0);Ih(s,t,c[(c[k>>2]|0)+4672>>2]|0);Fh(s,c[(c[k>>2]|0)+4672>>2]|0,.9900000095367432);Zg(c[m>>2]|0,s,c[r>>2]|0,c[q>>2]|0,c[(c[k>>2]|0)+4672>>2]|0);if(a[(c[k>>2]|0)+4768+29>>0]|0?(c[(c[k>>2]|0)+4696>>2]|0)==0:0){g[o>>2]=.6000000238418579;g[o>>2]=+g[o>>2]-+(c[(c[k>>2]|0)+4672>>2]|0)*.004000000189989805;g[o>>2]=+g[o>>2]-+(c[(c[k>>2]|0)+4556>>2]|0)*.10000000149011612*.00390625;g[o>>2]=+g[o>>2]-+(a[(c[k>>2]|0)+4565>>0]>>1|0)*.15000000596046448;g[o>>2]=+g[o>>2]-+(c[(c[k>>2]|0)+4744>>2]|0)*.10000000149011612*.000030517578125;z=(Lh(c[m>>2]|0,(c[l>>2]|0)+228|0,(c[k>>2]|0)+4768+26|0,(c[k>>2]|0)+4768+28|0,(c[k>>2]|0)+12236|0,c[(c[k>>2]|0)+4568>>2]|0,+(c[(c[k>>2]|0)+4676>>2]|0)/65536.0,+g[o>>2],c[(c[k>>2]|0)+4600>>2]|0,c[(c[k>>2]|0)+4668>>2]|0,c[(c[k>>2]|0)+4604>>2]|0,c[n>>2]|0)|0)==0;k=(c[k>>2]|0)+4768+29|0;if(z){a[k>>0]=2;i=p;return}else{a[k>>0]=1;i=p;return}}z=(c[l>>2]|0)+228|0;c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;c[z+12>>2]=0;b[(c[k>>2]|0)+4768+26>>1]=0;a[(c[k>>2]|0)+4768+28>>0]=0;g[(c[k>>2]|0)+12236>>2]=0.0;i=p;return}function Yg(d,e,f,h,j){d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0;y=i;i=i+2048|0;l=y+2004|0;m=y+2e3|0;n=y+1996|0;o=y+1992|0;p=y+1988|0;t=y+1984|0;r=y+1584|0;u=y+1568|0;s=y+1552|0;k=y+2008|0;x=y+1548|0;w=y+1544|0;q=y+8|0;v=y;c[l>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=h;c[p>>2]=j;c[t>>2]=0;while(1){if((c[t>>2]|0)>=(c[(c[l>>2]|0)+4604>>2]|0))break;g[u+(c[t>>2]<<2)>>2]=1.0/+g[(c[m>>2]|0)+(c[t>>2]<<2)>>2];g[s+(c[t>>2]<<2)>>2]=+g[u+(c[t>>2]<<2)>>2]*+g[u+(c[t>>2]<<2)>>2];c[t>>2]=(c[t>>2]|0)+1}if((a[(c[l>>2]|0)+4768+29>>0]|0)==2){Vg((c[m>>2]|0)+144|0,r,(c[m>>2]|0)+872|0,c[n>>2]|0,(c[m>>2]|0)+228|0,s,c[(c[l>>2]|0)+4612>>2]|0,c[(c[l>>2]|0)+4604>>2]|0,c[(c[l>>2]|0)+4616>>2]|0);Ch((c[m>>2]|0)+144|0,(c[l>>2]|0)+4768+4|0,(c[l>>2]|0)+4768+32|0,(c[l>>2]|0)+4688|0,r,c[(c[l>>2]|0)+4684>>2]|0,c[(c[l>>2]|0)+4680>>2]|0,c[(c[l>>2]|0)+4604>>2]|0,c[(c[l>>2]|0)+5124>>2]|0);eh(c[l>>2]|0,c[m>>2]|0,c[p>>2]|0);dh(q,(c[o>>2]|0)+(0-(c[(c[l>>2]|0)+4664>>2]|0)<<2)|0,(c[m>>2]|0)+144|0,(c[m>>2]|0)+228|0,u,c[(c[l>>2]|0)+4612>>2]|0,c[(c[l>>2]|0)+4604>>2]|0,c[(c[l>>2]|0)+4664>>2]|0)}else{c[x>>2]=(c[o>>2]|0)+(0-(c[(c[l>>2]|0)+4664>>2]|0)<<2);c[w>>2]=q;c[t>>2]=0;while(1){if((c[t>>2]|0)>=(c[(c[l>>2]|0)+4604>>2]|0))break;Th(c[w>>2]|0,c[x>>2]|0,+g[u+(c[t>>2]<<2)>>2],(c[(c[l>>2]|0)+4612>>2]|0)+(c[(c[l>>2]|0)+4664>>2]|0)|0);c[w>>2]=(c[w>>2]|0)+((c[(c[l>>2]|0)+4612>>2]|0)+(c[(c[l>>2]|0)+4664>>2]|0)<<2);c[x>>2]=(c[x>>2]|0)+(c[(c[l>>2]|0)+4612>>2]<<2);c[t>>2]=(c[t>>2]|0)+1}oj((c[m>>2]|0)+144|0,0,(c[(c[l>>2]|0)+4604>>2]|0)*5<<2|0)|0;g[(c[m>>2]|0)+872>>2]=0.0;c[(c[l>>2]|0)+4688>>2]=0}if(c[(c[l>>2]|0)+4696>>2]|0){g[v>>2]=.009999999776482582;h=c[l>>2]|0;z=+g[v>>2];Ug(h,k,q,z);h=c[l>>2]|0;f=c[m>>2]|0;f=f+16|0;e=c[l>>2]|0;e=e+4524|0;Ah(h,f,k,e);e=c[m>>2]|0;e=e+876|0;f=c[m>>2]|0;f=f+16|0;h=c[m>>2]|0;w=c[l>>2]|0;w=w+4612|0;w=c[w>>2]|0;x=c[l>>2]|0;x=x+4604|0;x=c[x>>2]|0;m=c[l>>2]|0;m=m+4664|0;m=c[m>>2]|0;rh(e,q,f,h,w,x,m);m=c[l>>2]|0;m=m+4524|0;l=m+32|0;do{b[m>>1]=b[k>>1]|0;m=m+2|0;k=k+2|0}while((m|0)<(l|0));i=y;return}else{g[v>>2]=+P(2.0,+(+g[(c[m>>2]|0)+872>>2]/3.0))/1.0e4;g[v>>2]=+g[v>>2]/(+g[(c[m>>2]|0)+860>>2]*.75+.25);h=c[l>>2]|0;z=+g[v>>2];Ug(h,k,q,z);h=c[l>>2]|0;f=c[m>>2]|0;f=f+16|0;e=c[l>>2]|0;e=e+4524|0;Ah(h,f,k,e);e=c[m>>2]|0;e=e+876|0;f=c[m>>2]|0;f=f+16|0;h=c[m>>2]|0;w=c[l>>2]|0;w=w+4612|0;w=c[w>>2]|0;x=c[l>>2]|0;x=x+4604|0;x=c[x>>2]|0;m=c[l>>2]|0;m=m+4664|0;m=c[m>>2]|0;rh(e,q,f,h,w,x,m);m=c[l>>2]|0;m=m+4524|0;l=m+32|0;do{b[m>>1]=b[k>>1]|0;m=m+2|0;k=k+2|0}while((m|0)<(l|0));i=y;return}}function Zg(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;g=m+16|0;h=m+12|0;j=m+8|0;k=m+4|0;l=m;c[g>>2]=a;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;switch(c[l>>2]|0){case 6:{_g(c[g>>2]|0,c[h>>2]|0,c[j>>2]|0,c[k>>2]|0);break}case 8:{$g(c[g>>2]|0,c[h>>2]|0,c[j>>2]|0,c[k>>2]|0);break}case 10:{ah(c[g>>2]|0,c[h>>2]|0,c[j>>2]|0,c[k>>2]|0);break}case 12:{bh(c[g>>2]|0,c[h>>2]|0,c[j>>2]|0,c[k>>2]|0);break}case 16:{ch(c[g>>2]|0,c[h>>2]|0,c[j>>2]|0,c[k>>2]|0);break}default:{}}oj(c[g>>2]|0,0,c[l>>2]<<2|0)|0;i=m;return}function _g(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;f=o+24|0;h=o+20|0;j=o+16|0;k=o+12|0;m=o+8|0;l=o+4|0;n=o;c[f>>2]=a;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=6;while(1){if((c[m>>2]|0)>=(c[k>>2]|0))break;c[n>>2]=(c[j>>2]|0)+((c[m>>2]|0)-1<<2);g[l>>2]=+g[c[n>>2]>>2]*+g[c[h>>2]>>2]+ +g[(c[n>>2]|0)+-4>>2]*+g[(c[h>>2]|0)+4>>2]+ +g[(c[n>>2]|0)+-8>>2]*+g[(c[h>>2]|0)+8>>2]+ +g[(c[n>>2]|0)+-12>>2]*+g[(c[h>>2]|0)+12>>2]+ +g[(c[n>>2]|0)+-16>>2]*+g[(c[h>>2]|0)+16>>2]+ +g[(c[n>>2]|0)+-20>>2]*+g[(c[h>>2]|0)+20>>2];g[(c[f>>2]|0)+(c[m>>2]<<2)>>2]=+g[(c[n>>2]|0)+4>>2]-+g[l>>2];c[m>>2]=(c[m>>2]|0)+1}i=o;return}function $g(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;f=o+24|0;h=o+20|0;j=o+16|0;k=o+12|0;m=o+8|0;l=o+4|0;n=o;c[f>>2]=a;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=8;while(1){if((c[m>>2]|0)>=(c[k>>2]|0))break;c[n>>2]=(c[j>>2]|0)+((c[m>>2]|0)-1<<2);g[l>>2]=+g[c[n>>2]>>2]*+g[c[h>>2]>>2]+ +g[(c[n>>2]|0)+-4>>2]*+g[(c[h>>2]|0)+4>>2]+ +g[(c[n>>2]|0)+-8>>2]*+g[(c[h>>2]|0)+8>>2]+ +g[(c[n>>2]|0)+-12>>2]*+g[(c[h>>2]|0)+12>>2]+ +g[(c[n>>2]|0)+-16>>2]*+g[(c[h>>2]|0)+16>>2]+ +g[(c[n>>2]|0)+-20>>2]*+g[(c[h>>2]|0)+20>>2]+ +g[(c[n>>2]|0)+-24>>2]*+g[(c[h>>2]|0)+24>>2]+ +g[(c[n>>2]|0)+-28>>2]*+g[(c[h>>2]|0)+28>>2];g[(c[f>>2]|0)+(c[m>>2]<<2)>>2]=+g[(c[n>>2]|0)+4>>2]-+g[l>>2];c[m>>2]=(c[m>>2]|0)+1}i=o;return}function ah(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;f=o+24|0;h=o+20|0;j=o+16|0;k=o+12|0;m=o+8|0;l=o+4|0;n=o;c[f>>2]=a;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=10;while(1){if((c[m>>2]|0)>=(c[k>>2]|0))break;c[n>>2]=(c[j>>2]|0)+((c[m>>2]|0)-1<<2);g[l>>2]=+g[c[n>>2]>>2]*+g[c[h>>2]>>2]+ +g[(c[n>>2]|0)+-4>>2]*+g[(c[h>>2]|0)+4>>2]+ +g[(c[n>>2]|0)+-8>>2]*+g[(c[h>>2]|0)+8>>2]+ +g[(c[n>>2]|0)+-12>>2]*+g[(c[h>>2]|0)+12>>2]+ +g[(c[n>>2]|0)+-16>>2]*+g[(c[h>>2]|0)+16>>2]+ +g[(c[n>>2]|0)+-20>>2]*+g[(c[h>>2]|0)+20>>2]+ +g[(c[n>>2]|0)+-24>>2]*+g[(c[h>>2]|0)+24>>2]+ +g[(c[n>>2]|0)+-28>>2]*+g[(c[h>>2]|0)+28>>2]+ +g[(c[n>>2]|0)+-32>>2]*+g[(c[h>>2]|0)+32>>2]+ +g[(c[n>>2]|0)+-36>>2]*+g[(c[h>>2]|0)+36>>2];g[(c[f>>2]|0)+(c[m>>2]<<2)>>2]=+g[(c[n>>2]|0)+4>>2]-+g[l>>2];c[m>>2]=(c[m>>2]|0)+1}i=o;return}function bh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;f=o+24|0;h=o+20|0;j=o+16|0;k=o+12|0;m=o+8|0;l=o+4|0;n=o;c[f>>2]=a;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=12;while(1){if((c[m>>2]|0)>=(c[k>>2]|0))break;c[n>>2]=(c[j>>2]|0)+((c[m>>2]|0)-1<<2);g[l>>2]=+g[c[n>>2]>>2]*+g[c[h>>2]>>2]+ +g[(c[n>>2]|0)+-4>>2]*+g[(c[h>>2]|0)+4>>2]+ +g[(c[n>>2]|0)+-8>>2]*+g[(c[h>>2]|0)+8>>2]+ +g[(c[n>>2]|0)+-12>>2]*+g[(c[h>>2]|0)+12>>2]+ +g[(c[n>>2]|0)+-16>>2]*+g[(c[h>>2]|0)+16>>2]+ +g[(c[n>>2]|0)+-20>>2]*+g[(c[h>>2]|0)+20>>2]+ +g[(c[n>>2]|0)+-24>>2]*+g[(c[h>>2]|0)+24>>2]+ +g[(c[n>>2]|0)+-28>>2]*+g[(c[h>>2]|0)+28>>2]+ +g[(c[n>>2]|0)+-32>>2]*+g[(c[h>>2]|0)+32>>2]+ +g[(c[n>>2]|0)+-36>>2]*+g[(c[h>>2]|0)+36>>2]+ +g[(c[n>>2]|0)+-40>>2]*+g[(c[h>>2]|0)+40>>2]+ +g[(c[n>>2]|0)+-44>>2]*+g[(c[h>>2]|0)+44>>2];g[(c[f>>2]|0)+(c[m>>2]<<2)>>2]=+g[(c[n>>2]|0)+4>>2]-+g[l>>2];c[m>>2]=(c[m>>2]|0)+1}i=o;return}function ch(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;f=o+24|0;h=o+20|0;j=o+16|0;k=o+12|0;m=o+8|0;l=o+4|0;n=o;c[f>>2]=a;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=16;while(1){if((c[m>>2]|0)>=(c[k>>2]|0))break;c[n>>2]=(c[j>>2]|0)+((c[m>>2]|0)-1<<2);g[l>>2]=+g[c[n>>2]>>2]*+g[c[h>>2]>>2]+ +g[(c[n>>2]|0)+-4>>2]*+g[(c[h>>2]|0)+4>>2]+ +g[(c[n>>2]|0)+-8>>2]*+g[(c[h>>2]|0)+8>>2]+ +g[(c[n>>2]|0)+-12>>2]*+g[(c[h>>2]|0)+12>>2]+ +g[(c[n>>2]|0)+-16>>2]*+g[(c[h>>2]|0)+16>>2]+ +g[(c[n>>2]|0)+-20>>2]*+g[(c[h>>2]|0)+20>>2]+ +g[(c[n>>2]|0)+-24>>2]*+g[(c[h>>2]|0)+24>>2]+ +g[(c[n>>2]|0)+-28>>2]*+g[(c[h>>2]|0)+28>>2]+ +g[(c[n>>2]|0)+-32>>2]*+g[(c[h>>2]|0)+32>>2]+ +g[(c[n>>2]|0)+-36>>2]*+g[(c[h>>2]|0)+36>>2]+ +g[(c[n>>2]|0)+-40>>2]*+g[(c[h>>2]|0)+40>>2]+ +g[(c[n>>2]|0)+-44>>2]*+g[(c[h>>2]|0)+44>>2]+ +g[(c[n>>2]|0)+-48>>2]*+g[(c[h>>2]|0)+48>>2]+ +g[(c[n>>2]|0)+-52>>2]*+g[(c[h>>2]|0)+52>>2]+ +g[(c[n>>2]|0)+-56>>2]*+g[(c[h>>2]|0)+56>>2]+ +g[(c[n>>2]|0)+-60>>2]*+g[(c[h>>2]|0)+60>>2];g[(c[f>>2]|0)+(c[m>>2]<<2)>>2]=+g[(c[n>>2]|0)+4>>2]-+g[l>>2];c[m>>2]=(c[m>>2]|0)+1}i=o;return}function dh(a,b,d,e,f,h,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;z=i;i=i+80|0;A=z+76|0;B=z+72|0;l=z+68|0;m=z+64|0;n=z+60|0;o=z+56|0;p=z+52|0;q=z+48|0;y=z+44|0;x=z+40|0;r=z+20|0;s=z+16|0;u=z+12|0;w=z+8|0;t=z+4|0;v=z;c[A>>2]=a;c[B>>2]=b;c[l>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=h;c[p>>2]=j;c[q>>2]=k;c[y>>2]=c[B>>2];c[s>>2]=c[A>>2];c[w>>2]=0;while(1){if((c[w>>2]|0)>=(c[p>>2]|0))break;c[x>>2]=(c[y>>2]|0)+(0-(c[(c[m>>2]|0)+(c[w>>2]<<2)>>2]|0)<<2);g[u>>2]=+g[(c[n>>2]|0)+(c[w>>2]<<2)>>2];c[t>>2]=0;while(1){if((c[t>>2]|0)>=5)break;g[r+(c[t>>2]<<2)>>2]=+g[(c[l>>2]|0)+(((c[w>>2]|0)*5|0)+(c[t>>2]|0)<<2)>>2];c[t>>2]=(c[t>>2]|0)+1}c[t>>2]=0;while(1){if((c[t>>2]|0)>=((c[o>>2]|0)+(c[q>>2]|0)|0))break;g[(c[s>>2]|0)+(c[t>>2]<<2)>>2]=+g[(c[y>>2]|0)+(c[t>>2]<<2)>>2];c[v>>2]=0;while(1){if((c[v>>2]|0)>=5)break;B=(c[s>>2]|0)+(c[t>>2]<<2)|0;g[B>>2]=+g[B>>2]-+g[r+(c[v>>2]<<2)>>2]*+g[(c[x>>2]|0)+(2-(c[v>>2]|0)<<2)>>2];c[v>>2]=(c[v>>2]|0)+1}B=(c[s>>2]|0)+(c[t>>2]<<2)|0;g[B>>2]=+g[B>>2]*+g[u>>2];c[x>>2]=(c[x>>2]|0)+4;c[t>>2]=(c[t>>2]|0)+1}c[s>>2]=(c[s>>2]|0)+((c[o>>2]|0)+(c[q>>2]|0)<<2);c[y>>2]=(c[y>>2]|0)+(c[o>>2]<<2);c[w>>2]=(c[w>>2]|0)+1}i=z;return}function eh(d,e,f){d=d|0;e=e|0;f=f|0;var h=0.0,j=0,k=0,l=0,m=0,n=0;m=i;i=i+16|0;k=m+12|0;l=m+8|0;n=m+4|0;j=m;c[k>>2]=d;c[l>>2]=e;c[n>>2]=f;f=c[k>>2]|0;if(!(c[n>>2]|0)){c[j>>2]=(c[f+4640>>2]|0)+(c[(c[k>>2]|0)+5776>>2]|0);if(!(+(c[j>>2]|0)*+g[(c[l>>2]|0)+872>>2]*.10000000149011612>2.0))if(+(c[j>>2]|0)*+g[(c[l>>2]|0)+872>>2]*.10000000149011612<0.0)h=0.0;else h=+(c[j>>2]|0)*+g[(c[l>>2]|0)+872>>2]*.10000000149011612;else h=2.0;a[(c[k>>2]|0)+4768+33>>0]=~~h}else a[f+4768+33>>0]=0;g[(c[l>>2]|0)+224>>2]=+(b[24566+(a[(c[k>>2]|0)+4768+33>>0]<<1)>>1]|0)/16384.0;i=m;return}function fh(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,Q=0.0,R=0;M=i;i=i+1152|0;D=M+1140|0;E=M+1136|0;h=M+1132|0;R=M+1128|0;K=M+1124|0;J=M+1120|0;m=M+1116|0;q=M+1112|0;F=M+1108|0;G=M+1104|0;H=M+1100|0;w=M+1096|0;x=M+1092|0;k=M+1088|0;l=M+1084|0;j=M+1080|0;s=M+1076|0;o=M+1072|0;p=M+1068|0;v=M+1064|0;u=M+1060|0;L=M+1056|0;I=M+1052|0;A=M+1048|0;C=M+88|0;r=M+20|0;B=M+16|0;n=M+12|0;y=M+8|0;z=M+4|0;t=M;c[D>>2]=b;c[E>>2]=d;c[h>>2]=e;c[R>>2]=f;c[K>>2]=(c[D>>2]|0)+7200;c[B>>2]=(c[R>>2]|0)+(0-(c[(c[D>>2]|0)+4624>>2]|0)<<2);g[q>>2]=+(c[(c[D>>2]|0)+4748>>2]|0)*.0078125;g[(c[E>>2]|0)+856>>2]=+((c[(c[D>>2]|0)+4728>>2]|0)+(c[(c[D>>2]|0)+4728+4>>2]|0)|0)*.5*.000030517578125;Q=+gh((+g[q>>2]-20.0)*.25);g[(c[E>>2]|0)+860>>2]=Q;if(!(c[(c[D>>2]|0)+4708>>2]|0)){g[I>>2]=1.0-+(c[(c[D>>2]|0)+4556>>2]|0)*.00390625;g[q>>2]=+g[q>>2]-+g[(c[E>>2]|0)+860>>2]*2.0*(+g[(c[E>>2]|0)+856>>2]*.5+.5)*+g[I>>2]*+g[I>>2]}e=c[D>>2]|0;if((a[(c[D>>2]|0)+4768+29>>0]|0)==2)g[q>>2]=+g[q>>2]+ +g[e+12236>>2]*2.0;else g[q>>2]=+g[q>>2]+(+(c[e+4748>>2]|0)*-.4000000059604645*.0078125+6.0)*(1.0-+g[(c[E>>2]|0)+856>>2]);e=c[D>>2]|0;if((a[(c[D>>2]|0)+4768+29>>0]|0)==2){a[e+4768+30>>0]=0;g[(c[E>>2]|0)+864>>2]=0.0}else{c[m>>2]=c[e+4600>>2]<<1;g[j>>2]=0.0;g[l>>2]=0.0;c[n>>2]=c[h>>2];c[J>>2]=0;while(1){if((c[J>>2]|0)>=((((c[(c[D>>2]|0)+4604>>2]&65535)<<16>>16)*5|0)/2|0|0))break;Q=+(c[m>>2]|0);g[w>>2]=Q+ +Gh(c[n>>2]|0,c[m>>2]|0);g[k>>2]=+hh(+g[w>>2]);if((c[J>>2]|0)>0){Q=+N(+(+g[k>>2]-+g[l>>2]));g[j>>2]=+g[j>>2]+Q}g[l>>2]=+g[k>>2];c[n>>2]=(c[n>>2]|0)+(c[m>>2]<<2);c[J>>2]=(c[J>>2]|0)+1}Q=+gh((+g[j>>2]-5.0)*.4000000059604645);g[(c[E>>2]|0)+864>>2]=Q;e=(c[D>>2]|0)+4768+30|0;if(+g[(c[E>>2]|0)+864>>2]>.75)a[e>>0]=0;else a[e>>0]=1;g[q>>2]=+g[q>>2]+(+g[(c[E>>2]|0)+864>>2]-.5)*2.0}g[L>>2]=+g[(c[E>>2]|0)+868>>2]*1.0000000474974513e-03;Q=.949999988079071/(+g[L>>2]*+g[L>>2]+1.0);g[p>>2]=Q;g[o>>2]=Q;g[s>>2]=(1.0-+g[(c[E>>2]|0)+860>>2]*.75)*.009999999776482582;g[o>>2]=+g[o>>2]-+g[s>>2];g[p>>2]=+g[p>>2]+ +g[s>>2];g[o>>2]=+g[o>>2]/+g[p>>2];if((c[(c[D>>2]|0)+4704>>2]|0)>0)g[A>>2]=+(c[(c[D>>2]|0)+4704>>2]|0)/65536.0+ +g[(c[E>>2]|0)+860>>2]*.009999999776482582;else g[A>>2]=0.0;c[J>>2]=0;while(1){if((c[J>>2]|0)>=(c[(c[D>>2]|0)+4604>>2]|0))break;c[t>>2]=(c[(c[D>>2]|0)+4600>>2]|0)*3;c[z>>2]=((c[(c[D>>2]|0)+4628>>2]|0)-(c[t>>2]|0)|0)/2|0;Jg(C,c[B>>2]|0,1,c[z>>2]|0);c[y>>2]=c[z>>2];pj(C+(c[y>>2]<<2)|0,(c[B>>2]|0)+(c[y>>2]<<2)|0,c[t>>2]<<2|0)|0;c[y>>2]=(c[y>>2]|0)+(c[t>>2]|0);Jg(C+(c[y>>2]<<2)|0,(c[B>>2]|0)+(c[y>>2]<<2)|0,2,c[z>>2]|0);c[B>>2]=(c[B>>2]|0)+(c[(c[D>>2]|0)+4612>>2]<<2);if((c[(c[D>>2]|0)+4704>>2]|0)>0)wh(r,C,+g[A>>2],c[(c[D>>2]|0)+4628>>2]|0,c[(c[D>>2]|0)+4660>>2]|0);else Dh(r,C,c[(c[D>>2]|0)+4628>>2]|0,(c[(c[D>>2]|0)+4660>>2]|0)+1|0);g[r>>2]=+g[r>>2]+ +g[r>>2]*4.999999873689376e-05;g[w>>2]=+Jh((c[E>>2]|0)+500+(c[J>>2]<<4<<2)|0,r,c[(c[D>>2]|0)+4660>>2]|0);Q=+O(+(+g[w>>2]));g[(c[E>>2]|0)+(c[J>>2]<<2)>>2]=Q;if((c[(c[D>>2]|0)+4704>>2]|0)>0){Q=+ih((c[E>>2]|0)+500+(c[J>>2]<<4<<2)|0,+g[A>>2],c[(c[D>>2]|0)+4660>>2]|0);R=(c[E>>2]|0)+(c[J>>2]<<2)|0;g[R>>2]=+g[R>>2]*Q}Fh((c[E>>2]|0)+500+(c[J>>2]<<4<<2)|0,c[(c[D>>2]|0)+4660>>2]|0,+g[p>>2]);pj((c[E>>2]|0)+244+(c[J>>2]<<4<<2)|0,(c[E>>2]|0)+500+(c[J>>2]<<4<<2)|0,c[(c[D>>2]|0)+4660>>2]<<2|0)|0;Fh((c[E>>2]|0)+244+(c[J>>2]<<4<<2)|0,c[(c[D>>2]|0)+4660>>2]|0,+g[o>>2]);g[x>>2]=+Kh((c[E>>2]|0)+500+(c[J>>2]<<4<<2)|0,c[(c[D>>2]|0)+4660>>2]|0);g[w>>2]=+Kh((c[E>>2]|0)+244+(c[J>>2]<<4<<2)|0,c[(c[D>>2]|0)+4660>>2]|0);g[(c[E>>2]|0)+788+(c[J>>2]<<2)>>2]=1.0-(1.0-+g[x>>2]/+g[w>>2])*.699999988079071;jh((c[E>>2]|0)+500+(c[J>>2]<<4<<2)|0,(c[E>>2]|0)+244+(c[J>>2]<<4<<2)|0,+g[A>>2],3.999000072479248,c[(c[D>>2]|0)+4660>>2]|0);c[J>>2]=(c[J>>2]|0)+1}g[v>>2]=+P(2.0,+(+g[q>>2]*-.1599999964237213));g[u>>2]=+P(2.0,.3199999928474426);c[J>>2]=0;while(1){if((c[J>>2]|0)>=(c[(c[D>>2]|0)+4604>>2]|0))break;R=(c[E>>2]|0)+(c[J>>2]<<2)|0;g[R>>2]=+g[R>>2]*+g[v>>2];R=(c[E>>2]|0)+(c[J>>2]<<2)|0;g[R>>2]=+g[R>>2]+ +g[u>>2];c[J>>2]=(c[J>>2]|0)+1}g[v>>2]=+g[(c[E>>2]|0)+860>>2]*.10000000149011612+1.0499999523162842;c[J>>2]=0;while(1){if((c[J>>2]|0)>=(c[(c[D>>2]|0)+4604>>2]|0))break;R=(c[E>>2]|0)+788+(c[J>>2]<<2)|0;g[R>>2]=+g[R>>2]*+g[v>>2];c[J>>2]=(c[J>>2]|0)+1}g[L>>2]=((+(c[(c[D>>2]|0)+4728>>2]|0)*.000030517578125-1.0)*.5+1.0)*4.0;g[L>>2]=+g[L>>2]*(+(c[(c[D>>2]|0)+4556>>2]|0)*.00390625);if((a[(c[D>>2]|0)+4768+29>>0]|0)==2){c[J>>2]=0;while(1){e=c[D>>2]|0;if((c[J>>2]|0)>=(c[(c[D>>2]|0)+4604>>2]|0))break;g[I>>2]=.20000000298023224/+(c[e+4600>>2]|0)+3.0/+(c[(c[E>>2]|0)+228+(c[J>>2]<<2)>>2]|0);g[(c[E>>2]|0)+756+(c[J>>2]<<2)>>2]=+g[I>>2]+-1.0;g[(c[E>>2]|0)+772+(c[J>>2]<<2)>>2]=1.0-+g[I>>2]-+g[I>>2]*+g[L>>2];c[J>>2]=(c[J>>2]|0)+1}g[H>>2]=-.25-+(c[e+4556>>2]|0)*.26249998807907104*.00390625}else{g[I>>2]=1.2999999523162842/+(c[(c[D>>2]|0)+4600>>2]|0);g[(c[E>>2]|0)+756>>2]=+g[I>>2]+-1.0;g[(c[E>>2]|0)+772>>2]=1.0-+g[I>>2]-+g[I>>2]*+g[L>>2]*.6000000238418579;c[J>>2]=1;while(1){if((c[J>>2]|0)>=(c[(c[D>>2]|0)+4604>>2]|0))break;g[(c[E>>2]|0)+756+(c[J>>2]<<2)>>2]=+g[(c[E>>2]|0)+756>>2];g[(c[E>>2]|0)+772+(c[J>>2]<<2)>>2]=+g[(c[E>>2]|0)+772>>2];c[J>>2]=(c[J>>2]|0)+1}g[H>>2]=-.25}g[F>>2]=(1.0-+g[(c[E>>2]|0)+860>>2])*.10000000149011612*+g[(c[D>>2]|0)+12236>>2];g[F>>2]=+g[F>>2]+(1.0-+g[(c[E>>2]|0)+856>>2])*.10000000149011612;if((a[(c[D>>2]|0)+4768+29>>0]|0)==2){g[G>>2]=.30000001192092896;g[G>>2]=+g[G>>2]+(1.0-(1.0-+g[(c[E>>2]|0)+860>>2])*+g[(c[E>>2]|0)+856>>2])*.20000000298023224;Q=+O(+(+g[(c[D>>2]|0)+12236>>2]));g[G>>2]=+g[G>>2]*Q}else g[G>>2]=0.0;c[J>>2]=0;while(1){if((c[J>>2]|0)>=(c[(c[D>>2]|0)+4604>>2]|0))break;R=(c[K>>2]|0)+4|0;g[R>>2]=+g[R>>2]+(+g[F>>2]-+g[(c[K>>2]|0)+4>>2])*.4000000059604645;g[(c[E>>2]|0)+804+(c[J>>2]<<2)>>2]=+g[(c[K>>2]|0)+4>>2];R=(c[K>>2]|0)+8|0;g[R>>2]=+g[R>>2]+(+g[G>>2]-+g[(c[K>>2]|0)+8>>2])*.4000000059604645;g[(c[E>>2]|0)+836+(c[J>>2]<<2)>>2]=+g[(c[K>>2]|0)+8>>2];R=(c[K>>2]|0)+12|0;g[R>>2]=+g[R>>2]+(+g[H>>2]-+g[(c[K>>2]|0)+12>>2])*.4000000059604645;g[(c[E>>2]|0)+820+(c[J>>2]<<2)>>2]=+g[(c[K>>2]|0)+12>>2];c[J>>2]=(c[J>>2]|0)+1}i=M;return}function gh(a){a=+a;var b=0,c=0;b=i;i=i+16|0;c=b;g[c>>2]=a;a=1.0/(+X(+-+g[c>>2])+1.0);i=b;return +a}function hh(a){a=+a;var b=0,c=0;b=i;i=i+16|0;c=b;h[c>>3]=a;a=+hj(+h[c>>3])*3.32192809488736;i=b;return +a}function ih(a,b,d){a=a|0;b=+b;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0;k=i;i=i+32|0;e=k+16|0;f=k+12|0;l=k+8|0;j=k+4|0;h=k;c[e>>2]=a;g[f>>2]=b;c[l>>2]=d;g[f>>2]=-+g[f>>2];g[h>>2]=+g[(c[e>>2]|0)+((c[l>>2]|0)-1<<2)>>2];c[j>>2]=(c[l>>2]|0)-2;while(1){b=+g[f>>2]*+g[h>>2];if((c[j>>2]|0)<0)break;g[h>>2]=b+ +g[(c[e>>2]|0)+(c[j>>2]<<2)>>2];c[j>>2]=(c[j>>2]|0)+-1}i=k;return +(1.0/(1.0-b))}function jh(a,b,d,e,f){a=a|0;b=b|0;d=+d;e=+e;f=f|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=i;i=i+64|0;h=v+48|0;j=v+44|0;k=v+40|0;l=v+36|0;m=v+32|0;q=v+28|0;s=v+24|0;r=v+20|0;u=v+16|0;t=v+12|0;n=v+8|0;p=v+4|0;o=v;c[h>>2]=a;c[j>>2]=b;g[k>>2]=d;g[l>>2]=e;c[m>>2]=f;c[r>>2]=0;c[q>>2]=(c[m>>2]|0)-1;while(1){d=+g[k>>2];if((c[q>>2]|0)<=0)break;f=(c[h>>2]|0)+((c[q>>2]|0)-1<<2)|0;g[f>>2]=+g[f>>2]-d*+g[(c[h>>2]|0)+(c[q>>2]<<2)>>2];f=(c[j>>2]|0)+((c[q>>2]|0)-1<<2)|0;g[f>>2]=+g[f>>2]-+g[k>>2]*+g[(c[j>>2]|0)+(c[q>>2]<<2)>>2];c[q>>2]=(c[q>>2]|0)+-1}g[p>>2]=(1.0-d*+g[k>>2])/(+g[k>>2]*+g[c[h>>2]>>2]+1.0);g[o>>2]=(1.0-+g[k>>2]*+g[k>>2])/(+g[k>>2]*+g[c[j>>2]>>2]+1.0);c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[m>>2]|0))break;f=(c[h>>2]|0)+(c[q>>2]<<2)|0;g[f>>2]=+g[f>>2]*+g[p>>2];f=(c[j>>2]|0)+(c[q>>2]<<2)|0;g[f>>2]=+g[f>>2]*+g[o>>2];c[q>>2]=(c[q>>2]|0)+1}c[s>>2]=0;while(1){if((c[s>>2]|0)>=10){b=31;break}g[t>>2]=-1.0;c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[m>>2]|0))break;e=+N(+(+g[(c[h>>2]|0)+(c[q>>2]<<2)>>2]));f=e>+N(+(+g[(c[j>>2]|0)+(c[q>>2]<<2)>>2]));b=c[q>>2]|0;if(f)d=+g[(c[h>>2]|0)+(b<<2)>>2];else d=+g[(c[j>>2]|0)+(b<<2)>>2];g[u>>2]=+N(+d);if(+g[u>>2]>+g[t>>2]){g[t>>2]=+g[u>>2];c[r>>2]=c[q>>2]}c[q>>2]=(c[q>>2]|0)+1}if(+g[t>>2]<=+g[l>>2]){b=31;break}c[q>>2]=1;while(1){if((c[q>>2]|0)>=(c[m>>2]|0))break;f=(c[h>>2]|0)+((c[q>>2]|0)-1<<2)|0;g[f>>2]=+g[f>>2]+ +g[k>>2]*+g[(c[h>>2]|0)+(c[q>>2]<<2)>>2];f=(c[j>>2]|0)+((c[q>>2]|0)-1<<2)|0;g[f>>2]=+g[f>>2]+ +g[k>>2]*+g[(c[j>>2]|0)+(c[q>>2]<<2)>>2];c[q>>2]=(c[q>>2]|0)+1}g[p>>2]=1.0/+g[p>>2];g[o>>2]=1.0/+g[o>>2];c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[m>>2]|0))break;f=(c[h>>2]|0)+(c[q>>2]<<2)|0;g[f>>2]=+g[f>>2]*+g[p>>2];f=(c[j>>2]|0)+(c[q>>2]<<2)|0;g[f>>2]=+g[f>>2]*+g[o>>2];c[q>>2]=(c[q>>2]|0)+1}g[n>>2]=.9900000095367432-(+(c[s>>2]|0)*.10000000149011612+.800000011920929)*(+g[t>>2]-+g[l>>2])/(+g[t>>2]*+((c[r>>2]|0)+1|0));Fh(c[h>>2]|0,c[m>>2]|0,+g[n>>2]);Fh(c[j>>2]|0,c[m>>2]|0,+g[n>>2]);c[q>>2]=(c[m>>2]|0)-1;while(1){d=+g[k>>2];if((c[q>>2]|0)<=0)break;f=(c[h>>2]|0)+((c[q>>2]|0)-1<<2)|0;g[f>>2]=+g[f>>2]-d*+g[(c[h>>2]|0)+(c[q>>2]<<2)>>2];f=(c[j>>2]|0)+((c[q>>2]|0)-1<<2)|0;g[f>>2]=+g[f>>2]-+g[k>>2]*+g[(c[j>>2]|0)+(c[q>>2]<<2)>>2];c[q>>2]=(c[q>>2]|0)+-1}g[p>>2]=(1.0-d*+g[k>>2])/(+g[k>>2]*+g[c[h>>2]>>2]+1.0);g[o>>2]=(1.0-+g[k>>2]*+g[k>>2])/(+g[k>>2]*+g[c[j>>2]>>2]+1.0);c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[m>>2]|0))break;f=(c[h>>2]|0)+(c[q>>2]<<2)|0;g[f>>2]=+g[f>>2]*+g[p>>2];f=(c[j>>2]|0)+(c[q>>2]<<2)|0;g[f>>2]=+g[f>>2]*+g[o>>2];c[q>>2]=(c[q>>2]|0)+1}c[s>>2]=(c[s>>2]|0)+1}if((b|0)==31){i=v;return}}function kh(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;y=i;i=i+464|0;h=y+460|0;j=y+456|0;z=y+452|0;A=y+448|0;q=y+444|0;s=y+440|0;t=y+436|0;u=y+432|0;n=y+428|0;r=y+424|0;p=y+420|0;o=y+416|0;l=y+408|0;k=y+404|0;v=y+400|0;w=y+396|0;m=y+384|0;x=y;c[h>>2]=b;c[j>>2]=d;c[z>>2]=e;c[A>>2]=f;c[q>>2]=(c[h>>2]|0)+7216;c[v>>2]=c[A>>2];c[w>>2]=c[z>>2];c[u>>2]=c[(c[q>>2]|0)+2136>>2];c[t>>2]=0;while(1){b=c[h>>2]|0;if((c[t>>2]|0)>=(c[(c[h>>2]|0)+4604>>2]|0))break;if((a[b+4768+29>>0]|0)==2)c[u>>2]=c[(c[j>>2]|0)+228+(c[t>>2]<<2)>>2];g[n>>2]=+g[(c[j>>2]|0)+836+(c[t>>2]<<2)>>2]*(1.0-+g[(c[j>>2]|0)+804+(c[t>>2]<<2)>>2]);g[m>>2]=+g[n>>2]*.25;g[m+4>>2]=+g[n>>2]*.4999847412109375;g[m+8>>2]=+g[n>>2]*.25;g[r>>2]=+g[(c[j>>2]|0)+820+(c[t>>2]<<2)>>2];g[p>>2]=+g[(c[j>>2]|0)+756+(c[t>>2]<<2)>>2];g[o>>2]=+g[(c[j>>2]|0)+772+(c[t>>2]<<2)>>2];c[k>>2]=(c[j>>2]|0)+244+(c[t>>2]<<4<<2);lh((c[q>>2]|0)+2048|0,x,c[k>>2]|0,c[v>>2]|0,+(c[(c[h>>2]|0)+4704>>2]|0)/65536.0,c[(c[h>>2]|0)+4612>>2]|0,c[(c[h>>2]|0)+4660>>2]|0);g[l>>2]=+g[(c[j>>2]|0)+788+(c[t>>2]<<2)>>2];g[l+4>>2]=-+g[(c[j>>2]|0)+788+(c[t>>2]<<2)>>2]*(+g[(c[j>>2]|0)+804+(c[t>>2]<<2)>>2]*+g[n>>2]+.05000000074505806+ +g[(c[j>>2]|0)+860>>2]*.10000000149011612);g[c[w>>2]>>2]=+g[l>>2]*+g[x>>2]+ +g[l+4>>2]*+g[(c[q>>2]|0)+2128>>2];c[s>>2]=1;while(1){if((c[s>>2]|0)>=(c[(c[h>>2]|0)+4612>>2]|0))break;g[(c[w>>2]|0)+(c[s>>2]<<2)>>2]=+g[l>>2]*+g[x+(c[s>>2]<<2)>>2]+ +g[l+4>>2]*+g[x+((c[s>>2]|0)-1<<2)>>2];c[s>>2]=(c[s>>2]|0)+1}g[(c[q>>2]|0)+2128>>2]=+g[x+((c[(c[h>>2]|0)+4612>>2]|0)-1<<2)>>2];mh(c[q>>2]|0,c[w>>2]|0,c[w>>2]|0,m,+g[r>>2],+g[p>>2],+g[o>>2],c[u>>2]|0,c[(c[h>>2]|0)+4612>>2]|0);c[v>>2]=(c[v>>2]|0)+(c[(c[h>>2]|0)+4612>>2]<<2);c[w>>2]=(c[w>>2]|0)+(c[(c[h>>2]|0)+4612>>2]<<2);c[t>>2]=(c[t>>2]|0)+1}c[(c[q>>2]|0)+2136>>2]=c[(c[j>>2]|0)+228+((c[b+4604>>2]|0)-1<<2)>>2];i=y;return}function lh(a,b,d,e,f,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=i;i=i+48|0;k=w+44|0;l=w+40|0;m=w+36|0;n=w+32|0;o=w+28|0;p=w+24|0;q=w+20|0;t=w+16|0;s=w+12|0;r=w+8|0;u=w+4|0;v=w;c[k>>2]=a;c[l>>2]=b;c[m>>2]=d;c[n>>2]=e;g[o>>2]=f;c[p>>2]=h;c[q>>2]=j;c[t>>2]=0;while(1){if((c[t>>2]|0)>=(c[p>>2]|0))break;g[v>>2]=+g[c[k>>2]>>2]+ +g[o>>2]*+g[(c[k>>2]|0)+4>>2];g[c[k>>2]>>2]=+g[(c[n>>2]|0)+(c[t>>2]<<2)>>2];g[u>>2]=+g[(c[k>>2]|0)+4>>2]+ +g[o>>2]*(+g[(c[k>>2]|0)+8>>2]-+g[v>>2]);g[(c[k>>2]|0)+4>>2]=+g[v>>2];g[r>>2]=+g[c[m>>2]>>2]*+g[v>>2];c[s>>2]=2;while(1){if((c[s>>2]|0)>=(c[q>>2]|0))break;g[v>>2]=+g[(c[k>>2]|0)+(c[s>>2]<<2)>>2]+ +g[o>>2]*(+g[(c[k>>2]|0)+((c[s>>2]|0)+1<<2)>>2]-+g[u>>2]);g[(c[k>>2]|0)+(c[s>>2]<<2)>>2]=+g[u>>2];g[r>>2]=+g[r>>2]+ +g[(c[m>>2]|0)+((c[s>>2]|0)-1<<2)>>2]*+g[u>>2];g[u>>2]=+g[(c[k>>2]|0)+((c[s>>2]|0)+1<<2)>>2]+ +g[o>>2]*(+g[(c[k>>2]|0)+((c[s>>2]|0)+2<<2)>>2]-+g[v>>2]);g[(c[k>>2]|0)+((c[s>>2]|0)+1<<2)>>2]=+g[v>>2];g[r>>2]=+g[r>>2]+ +g[(c[m>>2]|0)+(c[s>>2]<<2)>>2]*+g[v>>2];c[s>>2]=(c[s>>2]|0)+2}g[(c[k>>2]|0)+(c[q>>2]<<2)>>2]=+g[u>>2];g[r>>2]=+g[r>>2]+ +g[(c[m>>2]|0)+((c[q>>2]|0)-1<<2)>>2]*+g[u>>2];g[(c[l>>2]|0)+(c[t>>2]<<2)>>2]=+g[(c[n>>2]|0)+(c[t>>2]<<2)>>2]-+g[r>>2];c[t>>2]=(c[t>>2]|0)+1}i=w;return}function mh(a,b,d,e,f,h,j,k,l){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;h=+h;j=+j;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+80|0;m=E+68|0;n=E+64|0;o=E+60|0;p=E+56|0;q=E+52|0;r=E+48|0;s=E+44|0;t=E+40|0;u=E+36|0;x=E+32|0;y=E+28|0;w=E+24|0;B=E+20|0;z=E+16|0;A=E+12|0;C=E+8|0;D=E+4|0;v=E;c[m>>2]=a;c[n>>2]=b;c[o>>2]=d;c[p>>2]=e;g[q>>2]=f;g[r>>2]=h;g[s>>2]=j;c[t>>2]=k;c[u>>2]=l;c[v>>2]=c[m>>2];c[w>>2]=c[(c[m>>2]|0)+2116>>2];g[C>>2]=+g[(c[m>>2]|0)+2120>>2];g[D>>2]=+g[(c[m>>2]|0)+2124>>2];c[x>>2]=0;while(1){if((c[x>>2]|0)>=(c[u>>2]|0))break;if((c[t>>2]|0)>0){c[y>>2]=(c[t>>2]|0)+(c[w>>2]|0);g[A>>2]=+g[(c[v>>2]|0)+(((c[y>>2]|0)-1-1&511)<<2)>>2]*+g[c[p>>2]>>2];g[A>>2]=+g[A>>2]+ +g[(c[v>>2]|0)+(((c[y>>2]|0)-1&511)<<2)>>2]*+g[(c[p>>2]|0)+4>>2];g[A>>2]=+g[A>>2]+ +g[(c[v>>2]|0)+(((c[y>>2]|0)-1+1&511)<<2)>>2]*+g[(c[p>>2]|0)+8>>2]}else g[A>>2]=0.0;g[B>>2]=+g[C>>2]*+g[q>>2];g[z>>2]=+g[C>>2]*+g[s>>2]+ +g[D>>2]*+g[r>>2];g[C>>2]=+g[(c[n>>2]|0)+(c[x>>2]<<2)>>2]-+g[B>>2];g[D>>2]=+g[C>>2]-+g[z>>2];c[w>>2]=(c[w>>2]|0)-1&511;g[(c[v>>2]|0)+(c[w>>2]<<2)>>2]=+g[D>>2];g[(c[o>>2]|0)+(c[x>>2]<<2)>>2]=+g[D>>2]-+g[A>>2];c[x>>2]=(c[x>>2]|0)+1}g[(c[m>>2]|0)+2120>>2]=+g[C>>2];g[(c[m>>2]|0)+2124>>2]=+g[D>>2];c[(c[m>>2]|0)+2116>>2]=c[w>>2];i=E;return}function nh(d,e,f){d=d|0;e=e|0;f=f|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0;s=i;i=i+64|0;p=s+48|0;q=s+44|0;h=s+40|0;n=s+36|0;l=s+32|0;m=s+16|0;o=s+12|0;j=s+8|0;k=s+4|0;r=s;c[p>>2]=d;c[q>>2]=e;c[h>>2]=f;c[n>>2]=(c[p>>2]|0)+7200;a:do if((a[(c[p>>2]|0)+4768+29>>0]|0)==2){g[o>>2]=1.0-+oh((+g[(c[q>>2]|0)+872>>2]-12.0)*.25)*.5;c[l>>2]=0;while(1){if((c[l>>2]|0)>=(c[(c[p>>2]|0)+4604>>2]|0))break a;e=(c[q>>2]|0)+(c[l>>2]<<2)|0;g[e>>2]=+g[e>>2]*+g[o>>2];c[l>>2]=(c[l>>2]|0)+1}}while(0);t=+P(2.0,+((21.0-+(c[(c[p>>2]|0)+4748>>2]|0)*.0078125)*.33000001311302185));g[j>>2]=t/+(c[(c[p>>2]|0)+4612>>2]|0);c[l>>2]=0;while(1){if((c[l>>2]|0)>=(c[(c[p>>2]|0)+4604>>2]|0))break;g[k>>2]=+g[(c[q>>2]|0)+(c[l>>2]<<2)>>2];g[k>>2]=+O(+(+g[k>>2]*+g[k>>2]+ +g[(c[q>>2]|0)+876+(c[l>>2]<<2)>>2]*+g[j>>2]));g[(c[q>>2]|0)+(c[l>>2]<<2)>>2]=+g[k>>2]<32767.0?+g[k>>2]:32767.0;c[l>>2]=(c[l>>2]|0)+1}c[l>>2]=0;while(1){if((c[l>>2]|0)>=(c[(c[p>>2]|0)+4604>>2]|0))break;c[m+(c[l>>2]<<2)>>2]=~~(+g[(c[q>>2]|0)+(c[l>>2]<<2)>>2]*65536.0);c[l>>2]=(c[l>>2]|0)+1}pj((c[q>>2]|0)+892|0,m|0,c[(c[p>>2]|0)+4604>>2]<<2|0)|0;a[(c[q>>2]|0)+908>>0]=a[c[n>>2]>>0]|0;_d((c[p>>2]|0)+4768|0,m,c[n>>2]|0,(c[h>>2]|0)==2&1,c[(c[p>>2]|0)+4604>>2]|0);c[l>>2]=0;while(1){if((c[l>>2]|0)>=(c[(c[p>>2]|0)+4604>>2]|0))break;g[(c[q>>2]|0)+(c[l>>2]<<2)>>2]=+(c[m+(c[l>>2]<<2)>>2]|0)/65536.0;c[l>>2]=(c[l>>2]|0)+1}do if((a[(c[p>>2]|0)+4768+29>>0]|0)==2){h=(c[p>>2]|0)+4768+30|0;if(+g[(c[q>>2]|0)+872>>2]+ +(c[(c[p>>2]|0)+4744>>2]|0)*.000030517578125>1.0){a[h>>0]=0;break}else{a[h>>0]=1;break}}while(0);g[r>>2]=+(b[24558+(a[(c[p>>2]|0)+4768+29>>0]>>1<<2)+(a[(c[p>>2]|0)+4768+30>>0]<<1)>>1]|0)/1024.0;g[(c[q>>2]|0)+852>>2]=+(c[(c[p>>2]|0)+4652>>2]|0)*-.05000000074505806+1.2000000476837158+ +(c[(c[p>>2]|0)+4556>>2]|0)*-.20000000298023224*.00390625+ +g[(c[q>>2]|0)+856>>2]*-.10000000149011612+ +g[(c[q>>2]|0)+860>>2]*-.20000000298023224+ +g[r>>2]*.800000011920929;i=s;return}function oh(a){a=+a;var b=0,c=0;b=i;i=i+16|0;c=b;g[c>>2]=a;a=1.0/(+X(+-+g[c>>2])+1.0);i=b;return +a}function ph(a,b,d,e){a=a|0;b=b|0;d=+d;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;f=m+16|0;h=m+12|0;j=m+8|0;k=m+4|0;l=m;c[f>>2]=a;c[h>>2]=b;g[j>>2]=d;c[k>>2]=e;c[l>>2]=0;while(1){d=+g[j>>2];if((c[l>>2]|0)>=(c[k>>2]|0))break;b=_(c[l>>2]|0,c[k>>2]|0)|0;b=(c[f>>2]|0)+(b+(c[l>>2]|0)<<2)|0;g[b>>2]=+g[b>>2]+d;c[l>>2]=(c[l>>2]|0)+1}l=c[h>>2]|0;g[l>>2]=+g[l>>2]+d;i=m;return}function qh(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=+e;f=f|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+48|0;h=t+40|0;j=t+36|0;k=t+32|0;l=t+28|0;m=t+24|0;n=t+20|0;o=t+16|0;p=t+12|0;s=t+8|0;q=t+4|0;r=t;c[h>>2]=a;c[j>>2]=b;c[k>>2]=d;g[l>>2]=e;c[m>>2]=f;g[q>>2]=0.0;d=(_(c[m>>2]|0,c[m>>2]|0)|0)-1|0;g[r>>2]=(+g[c[j>>2]>>2]+ +g[(c[j>>2]|0)+(d<<2)>>2])*9.99999993922529e-09;c[p>>2]=0;while(1){if((c[p>>2]|0)>=10)break;g[q>>2]=+g[l>>2];g[s>>2]=0.0;c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[m>>2]|0))break;g[s>>2]=+g[s>>2]+ +g[(c[k>>2]|0)+(c[n>>2]<<2)>>2]*+g[(c[h>>2]|0)+(c[n>>2]<<2)>>2];c[n>>2]=(c[n>>2]|0)+1}g[q>>2]=+g[q>>2]-+g[s>>2]*2.0;c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[m>>2]|0))break;g[s>>2]=0.0;c[o>>2]=(c[n>>2]|0)+1;while(1){if((c[o>>2]|0)>=(c[m>>2]|0))break;e=+g[(c[j>>2]|0)+((c[n>>2]|0)+(_(c[m>>2]|0,c[o>>2]|0)|0)<<2)>>2];g[s>>2]=+g[s>>2]+e*+g[(c[h>>2]|0)+(c[o>>2]<<2)>>2];c[o>>2]=(c[o>>2]|0)+1}e=+g[(c[j>>2]|0)+((c[n>>2]|0)+(_(c[m>>2]|0,c[n>>2]|0)|0)<<2)>>2];g[q>>2]=+g[q>>2]+ +g[(c[h>>2]|0)+(c[n>>2]<<2)>>2]*(+g[s>>2]*2.0+e*+g[(c[h>>2]|0)+(c[n>>2]<<2)>>2]);c[n>>2]=(c[n>>2]|0)+1}if(+g[q>>2]>0.0)break;c[n>>2]=0;while(1){e=+g[r>>2];if((c[n>>2]|0)>=(c[m>>2]|0))break;d=(c[j>>2]|0)+((c[n>>2]|0)+(_(c[m>>2]|0,c[n>>2]|0)|0)<<2)|0;g[d>>2]=+g[d>>2]+e;c[n>>2]=(c[n>>2]|0)+1}g[r>>2]=e*2.0;c[p>>2]=(c[p>>2]|0)+1}if((c[p>>2]|0)!=10){e=+g[q>>2];i=t;return +e}g[q>>2]=1.0;e=+g[q>>2];i=t;return +e}function rh(a,b,d,e,f,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0;t=i;i=i+816|0;k=t+800|0;l=t+796|0;m=t+792|0;n=t+788|0;o=t+784|0;u=t+780|0;p=t+776|0;s=t+772|0;r=t+768|0;q=t;c[k>>2]=a;c[l>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[u>>2]=h;c[p>>2]=j;c[r>>2]=q+(c[p>>2]<<2);c[s>>2]=(c[p>>2]|0)+(c[o>>2]|0);Zg(q,c[m>>2]|0,(c[l>>2]|0)+(0<<2)|0,c[s>>2]<<1,c[p>>2]|0);v=+g[c[n>>2]>>2]*+g[c[n>>2]>>2];v=v*+Gh((c[r>>2]|0)+(0<<2)|0,c[o>>2]|0);g[c[k>>2]>>2]=v;v=+g[(c[n>>2]|0)+4>>2]*+g[(c[n>>2]|0)+4>>2];v=v*+Gh((c[r>>2]|0)+(c[s>>2]<<2)|0,c[o>>2]|0);g[(c[k>>2]|0)+4>>2]=v;if((c[u>>2]|0)!=4){i=t;return}Zg(q,(c[m>>2]|0)+64|0,(c[l>>2]|0)+(c[s>>2]<<1<<2)|0,c[s>>2]<<1,c[p>>2]|0);v=+g[(c[n>>2]|0)+8>>2]*+g[(c[n>>2]|0)+8>>2];v=v*+Gh((c[r>>2]|0)+(0<<2)|0,c[o>>2]|0);g[(c[k>>2]|0)+8>>2]=v;v=+g[(c[n>>2]|0)+12>>2]*+g[(c[n>>2]|0)+12>>2];v=v*+Gh((c[r>>2]|0)+(c[s>>2]<<2)|0,c[o>>2]|0);g[(c[k>>2]|0)+12>>2]=v;i=t;return}function sh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;n=i;i=i+1184|0;p=n+1168|0;f=n+1164|0;o=n+1160|0;h=n+1156|0;m=n+1152|0;k=n+128|0;l=n+64|0;j=n;c[p>>2]=a;c[f>>2]=b;c[o>>2]=d;c[h>>2]=e;th(c[p>>2]|0,c[f>>2]|0,k,j);uh(k,c[f>>2]|0,c[o>>2]|0,l);c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[f>>2]|0))break;g[l+(c[m>>2]<<2)>>2]=+g[l+(c[m>>2]<<2)>>2]*+g[j+(c[m>>2]<<2)>>2];c[m>>2]=(c[m>>2]|0)+1}vh(k,c[f>>2]|0,l,c[h>>2]|0);i=n;return}function th(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=i;i=i+192|0;f=y+184|0;j=y+180|0;k=y+176|0;l=y+172|0;p=y+168|0;q=y+164|0;r=y+160|0;s=y+156|0;o=y+152|0;t=y+148|0;u=y+144|0;v=y+8|0;n=y;w=y+80|0;m=y+16|0;c[f>>2]=a;c[j>>2]=b;c[k>>2]=d;c[l>>2]=e;c[o>>2]=1;b=(_(c[j>>2]|0,c[j>>2]|0)|0)-1|0;h[n>>3]=(+g[c[f>>2]>>2]+ +g[(c[f>>2]|0)+(b<<2)>>2])*4.999999873689376e-06;c[s>>2]=0;while(1){if(!((c[s>>2]|0)<(c[j>>2]|0)?(c[o>>2]|0)==1:0))break;c[o>>2]=0;c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[j>>2]|0))break;c[t>>2]=(c[k>>2]|0)+((_(c[q>>2]|0,c[j>>2]|0)|0)+0<<2);b=_(c[q>>2]|0,c[j>>2]|0)|0;h[v>>3]=+g[(c[f>>2]|0)+(b+(c[q>>2]|0)<<2)>>2];c[p>>2]=0;while(1){if((c[p>>2]|0)>=(c[q>>2]|0))break;g[w+(c[p>>2]<<2)>>2]=+g[(c[t>>2]|0)+(c[p>>2]<<2)>>2]*+g[m+(c[p>>2]<<2)>>2];h[v>>3]=+h[v>>3]-+g[(c[t>>2]|0)+(c[p>>2]<<2)>>2]*+g[w+(c[p>>2]<<2)>>2];c[p>>2]=(c[p>>2]|0)+1}if(+h[v>>3]<+h[n>>3]){x=9;break}g[m+(c[q>>2]<<2)>>2]=+h[v>>3];g[(c[l>>2]|0)+(c[q>>2]<<2)>>2]=1.0/+h[v>>3];b=_(c[q>>2]|0,c[j>>2]|0)|0;g[(c[k>>2]|0)+(b+(c[q>>2]|0)<<2)>>2]=1.0;c[t>>2]=(c[f>>2]|0)+((_(c[q>>2]|0,c[j>>2]|0)|0)+0<<2);c[u>>2]=(c[k>>2]|0)+((_((c[q>>2]|0)+1|0,c[j>>2]|0)|0)+0<<2);c[p>>2]=(c[q>>2]|0)+1;while(1){if((c[p>>2]|0)>=(c[j>>2]|0))break;h[v>>3]=0.0;c[r>>2]=0;while(1){if((c[r>>2]|0)>=(c[q>>2]|0))break;h[v>>3]=+h[v>>3]+ +g[(c[u>>2]|0)+(c[r>>2]<<2)>>2]*+g[w+(c[r>>2]<<2)>>2];c[r>>2]=(c[r>>2]|0)+1}b=_(c[p>>2]|0,c[j>>2]|0)|0;g[(c[k>>2]|0)+(b+(c[q>>2]|0)<<2)>>2]=(+g[(c[t>>2]|0)+(c[p>>2]<<2)>>2]-+h[v>>3])*+g[(c[l>>2]|0)+(c[q>>2]<<2)>>2];c[u>>2]=(c[u>>2]|0)+(c[j>>2]<<2);c[p>>2]=(c[p>>2]|0)+1}c[q>>2]=(c[q>>2]|0)+1}if((x|0)==9){x=0;h[v>>3]=+((c[s>>2]|0)+1|0)*+h[n>>3]-+h[v>>3];c[p>>2]=0;while(1){if((c[p>>2]|0)>=(c[j>>2]|0))break;b=_(c[p>>2]|0,c[j>>2]|0)|0;b=(c[f>>2]|0)+(b+(c[p>>2]|0)<<2)|0;g[b>>2]=+g[b>>2]+ +h[v>>3];c[p>>2]=(c[p>>2]|0)+1}c[o>>2]=1}c[s>>2]=(c[s>>2]|0)+1}i=y;return}function uh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;f=p+28|0;h=p+24|0;j=p+20|0;k=p+16|0;l=p+12|0;m=p+8|0;o=p+4|0;n=p;c[f>>2]=a;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;c[l>>2]=0;while(1){if((c[l>>2]|0)>=(c[h>>2]|0))break;c[n>>2]=(c[f>>2]|0)+((_(c[l>>2]|0,c[h>>2]|0)|0)+0<<2);g[o>>2]=0.0;c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[l>>2]|0))break;g[o>>2]=+g[o>>2]+ +g[(c[n>>2]|0)+(c[m>>2]<<2)>>2]*+g[(c[k>>2]|0)+(c[m>>2]<<2)>>2];c[m>>2]=(c[m>>2]|0)+1}g[o>>2]=+g[(c[j>>2]|0)+(c[l>>2]<<2)>>2]-+g[o>>2];g[(c[k>>2]|0)+(c[l>>2]<<2)>>2]=+g[o>>2];c[l>>2]=(c[l>>2]|0)+1}i=p;return}function vh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;f=p+28|0;h=p+24|0;j=p+20|0;k=p+16|0;l=p+12|0;m=p+8|0;o=p+4|0;n=p;c[f>>2]=a;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;c[l>>2]=(c[h>>2]|0)-1;while(1){if((c[l>>2]|0)<0)break;c[n>>2]=(c[f>>2]|0)+(0+(c[l>>2]|0)<<2);g[o>>2]=0.0;c[m>>2]=(c[h>>2]|0)-1;while(1){if((c[m>>2]|0)<=(c[l>>2]|0))break;e=_(c[m>>2]|0,c[h>>2]|0)|0;g[o>>2]=+g[o>>2]+ +g[(c[n>>2]|0)+(e<<2)>>2]*+g[(c[k>>2]|0)+(c[m>>2]<<2)>>2];c[m>>2]=(c[m>>2]|0)+-1}g[o>>2]=+g[(c[j>>2]|0)+(c[l>>2]<<2)>>2]-+g[o>>2];g[(c[k>>2]|0)+(c[l>>2]<<2)>>2]=+g[o>>2];c[l>>2]=(c[l>>2]|0)+-1}i=p;return}function wh(a,b,d,e,f){a=a|0;b=b|0;d=+d;e=e|0;f=f|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=i;i=i+320|0;j=u+312|0;k=u+308|0;l=u+304|0;m=u+300|0;n=u+296|0;q=u+292|0;p=u+288|0;s=u+280|0;t=u+272|0;r=u+136|0;o=u;c[j>>2]=a;c[k>>2]=b;g[l>>2]=d;c[m>>2]=e;c[n>>2]=f;oj(r|0,0,136)|0;oj(o|0,0,136)|0;c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[m>>2]|0))break;h[s>>3]=+g[(c[k>>2]|0)+(c[q>>2]<<2)>>2];c[p>>2]=0;while(1){if((c[p>>2]|0)>=(c[n>>2]|0))break;h[t>>3]=+h[r+(c[p>>2]<<3)>>3]+ +g[l>>2]*(+h[r+((c[p>>2]|0)+1<<3)>>3]-+h[s>>3]);h[r+(c[p>>2]<<3)>>3]=+h[s>>3];f=o+(c[p>>2]<<3)|0;h[f>>3]=+h[f>>3]+ +h[r>>3]*+h[s>>3];h[s>>3]=+h[r+((c[p>>2]|0)+1<<3)>>3]+ +g[l>>2]*(+h[r+((c[p>>2]|0)+2<<3)>>3]-+h[t>>3]);h[r+((c[p>>2]|0)+1<<3)>>3]=+h[t>>3];f=o+((c[p>>2]|0)+1<<3)|0;h[f>>3]=+h[f>>3]+ +h[r>>3]*+h[t>>3];c[p>>2]=(c[p>>2]|0)+2}h[r+(c[n>>2]<<3)>>3]=+h[s>>3];f=o+(c[n>>2]<<3)|0;h[f>>3]=+h[f>>3]+ +h[r>>3]*+h[s>>3];c[q>>2]=(c[q>>2]|0)+1}c[p>>2]=0;while(1){if((c[p>>2]|0)>=((c[n>>2]|0)+1|0))break;g[(c[j>>2]|0)+(c[p>>2]<<2)>>2]=+h[o+(c[p>>2]<<3)>>3];c[p>>2]=(c[p>>2]|0)+1}i=u;return}function xh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0;l=i;i=i+80|0;e=l+76|0;f=l+72|0;h=l+68|0;k=l+64|0;j=l;c[e>>2]=a;c[f>>2]=b;c[h>>2]=d;c[k>>2]=0;while(1){if((c[k>>2]|0)>=(c[h>>2]|0))break;b=yh(+g[(c[f>>2]|0)+(c[k>>2]<<2)>>2]*65536.0)|0;c[j+(c[k>>2]<<2)>>2]=b;c[k>>2]=(c[k>>2]|0)+1}Hf(c[e>>2]|0,j,c[h>>2]|0);i=l;return}function yh(a){a=+a;var b=0,c=0;c=i;i=i+16|0;b=c;g[b>>2]=a;b=ij(+g[b>>2])|0;i=c;return b|0}function zh(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0;l=i;i=i+48|0;f=l+12|0;m=l+8|0;h=l+4|0;k=l;j=l+16|0;c[f>>2]=a;c[m>>2]=d;c[h>>2]=e;ag(j,c[m>>2]|0,c[h>>2]|0);c[k>>2]=0;while(1){if((c[k>>2]|0)>=(c[h>>2]|0))break;g[(c[f>>2]|0)+(c[k>>2]<<2)>>2]=+(b[j+(c[k>>2]<<1)>>1]|0)*.000244140625;c[k>>2]=(c[k>>2]|0)+1}i=l;return}function Ah(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;n=i;i=i+96|0;h=n+20|0;j=n+16|0;p=n+12|0;o=n+8|0;l=n+4|0;m=n;k=n+24|0;c[h>>2]=a;c[j>>2]=d;c[p>>2]=e;c[o>>2]=f;pf(c[h>>2]|0,k,c[p>>2]|0,c[o>>2]|0);c[m>>2]=0;while(1){if((c[m>>2]|0)>=2)break;c[l>>2]=0;while(1){if((c[l>>2]|0)>=(c[(c[h>>2]|0)+4664>>2]|0))break;g[(c[j>>2]|0)+(c[m>>2]<<6)+(c[l>>2]<<2)>>2]=+(b[k+(c[m>>2]<<5)+(c[l>>2]<<1)>>1]|0)*.000244140625;c[l>>2]=(c[l>>2]|0)+1}c[m>>2]=(c[m>>2]|0)+1}i=n;return}function Bh(d,e,f,h,j,k){d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+1632|0;l=D+1388|0;m=D+1384|0;n=D+1380|0;o=D+1376|0;p=D+1372|0;q=D+1368|0;A=D+1364|0;B=D+1360|0;C=D+80|0;s=D+64|0;y=D+1560|0;v=D+1520|0;w=D+56|0;r=D+1392|0;u=D+40|0;x=D+32|0;z=D+16|0;t=D;c[l>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=h;c[p>>2]=j;c[q>>2]=k;c[A>>2]=0;while(1){if((c[A>>2]|0)>=(c[(c[l>>2]|0)+4604>>2]|0))break;c[B>>2]=0;while(1){d=c[A>>2]|0;if((c[B>>2]|0)>=(c[(c[l>>2]|0)+4660>>2]|0))break;k=(yh(+g[(c[m>>2]|0)+500+((d<<4)+(c[B>>2]|0)<<2)>>2]*8192.0)|0)&65535;b[r+((c[A>>2]<<4)+(c[B>>2]|0)<<1)>>1]=k;c[B>>2]=(c[B>>2]|0)+1}c[A>>2]=d+1}c[A>>2]=0;while(1){if((c[A>>2]|0)>=(c[(c[l>>2]|0)+4604>>2]|0))break;k=(yh(+g[(c[m>>2]|0)+772+(c[A>>2]<<2)>>2]*16384.0)|0)<<16;k=k|(yh(+g[(c[m>>2]|0)+756+(c[A>>2]<<2)>>2]*16384.0)|0)&65535;c[u+(c[A>>2]<<2)>>2]=k;k=yh(+g[(c[m>>2]|0)+820+(c[A>>2]<<2)>>2]*16384.0)|0;c[z+(c[A>>2]<<2)>>2]=k;k=yh(+g[(c[m>>2]|0)+836+(c[A>>2]<<2)>>2]*16384.0)|0;c[t+(c[A>>2]<<2)>>2]=k;c[A>>2]=(c[A>>2]|0)+1}c[x>>2]=yh(+g[(c[m>>2]|0)+852>>2]*1024.0)|0;c[A>>2]=0;while(1){if((c[A>>2]|0)>=((c[(c[l>>2]|0)+4604>>2]|0)*5|0))break;k=(yh(+g[(c[m>>2]|0)+144+(c[A>>2]<<2)>>2]*16384.0)|0)&65535;b[v+(c[A>>2]<<1)>>1]=k;c[A>>2]=(c[A>>2]|0)+1}c[B>>2]=0;while(1){k=(c[B>>2]|0)<2;c[A>>2]=0;if(!k)break;while(1){if((c[A>>2]|0)>=(c[(c[l>>2]|0)+4664>>2]|0))break;k=(yh(+g[(c[m>>2]|0)+16+(c[B>>2]<<6)+(c[A>>2]<<2)>>2]*4096.0)|0)&65535;b[y+(c[B>>2]<<5)+(c[A>>2]<<1)>>1]=k;c[A>>2]=(c[A>>2]|0)+1}c[B>>2]=(c[B>>2]|0)+1}while(1){if((c[A>>2]|0)>=(c[(c[l>>2]|0)+4604>>2]|0))break;B=yh(+g[(c[m>>2]|0)+(c[A>>2]<<2)>>2]*65536.0)|0;c[s+(c[A>>2]<<2)>>2]=B;c[A>>2]=(c[A>>2]|0)+1}if((a[(c[n>>2]|0)+29>>0]|0)==2)c[w>>2]=b[24566+(a[(c[n>>2]|0)+33>>0]<<1)>>1];else c[w>>2]=0;c[A>>2]=0;while(1){if((c[A>>2]|0)>=(c[(c[l>>2]|0)+4608>>2]|0))break;B=yh(+g[(c[q>>2]|0)+(c[A>>2]<<2)>>2]*8.0)|0;c[C+(c[A>>2]<<2)>>2]=B;c[A>>2]=(c[A>>2]|0)+1}if((c[(c[l>>2]|0)+4652>>2]|0)<=1?(c[(c[l>>2]|0)+4704>>2]|0)<=0:0){me(c[l>>2]|0,c[o>>2]|0,c[n>>2]|0,C,c[p>>2]|0,y,v,r,t,z,u,s,(c[m>>2]|0)+228|0,c[x>>2]|0,c[w>>2]|0);i=D;return}se(c[l>>2]|0,c[o>>2]|0,c[n>>2]|0,C,c[p>>2]|0,y,v,r,t,z,u,s,(c[m>>2]|0)+228|0,c[x>>2]|0,c[w>>2]|0);i=D;return}function Ch(a,d,e,f,h,j,k,l,m){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=i;i=i+480|0;n=z+436|0;o=z+432|0;p=z+428|0;q=z+424|0;r=z+420|0;s=z+416|0;t=z+412|0;u=z+408|0;v=z+404|0;y=z+400|0;w=z+440|0;x=z;c[n>>2]=a;c[o>>2]=d;c[p>>2]=e;c[q>>2]=f;c[r>>2]=h;c[s>>2]=j;c[t>>2]=k;c[u>>2]=l;c[v>>2]=m;c[y>>2]=0;while(1){if((c[y>>2]|0)>=((c[u>>2]|0)*5|0))break;f=(yh(+g[(c[n>>2]|0)+(c[y>>2]<<2)>>2]*16384.0)|0)&65535;b[w+(c[y>>2]<<1)>>1]=f;c[y>>2]=(c[y>>2]|0)+1}c[y>>2]=0;while(1){if((c[y>>2]|0)>=(((c[u>>2]|0)*5|0)*5|0))break;f=yh(+g[(c[r>>2]|0)+(c[y>>2]<<2)>>2]*262144.0)|0;c[x+(c[y>>2]<<2)>>2]=f;c[y>>2]=(c[y>>2]|0)+1}df(w,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0,x,c[s>>2]|0,c[t>>2]|0,c[u>>2]|0,c[v>>2]|0);c[y>>2]=0;while(1){if((c[y>>2]|0)>=((c[u>>2]|0)*5|0))break;g[(c[n>>2]|0)+(c[y>>2]<<2)>>2]=+(b[w+(c[y>>2]<<1)>>1]|0)*.00006103515625;c[y>>2]=(c[y>>2]|0)+1}i=z;return}function Dh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0,n=0.0;m=i;i=i+32|0;f=m+16|0;h=m+12|0;j=m+8|0;k=m+4|0;l=m;c[f>>2]=a;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;if((c[k>>2]|0)>(c[j>>2]|0))c[k>>2]=c[j>>2];c[l>>2]=0;while(1){if((c[l>>2]|0)>=(c[k>>2]|0))break;n=+Hh(c[h>>2]|0,(c[h>>2]|0)+(c[l>>2]<<2)|0,(c[j>>2]|0)-(c[l>>2]|0)|0);g[(c[f>>2]|0)+(c[l>>2]<<2)>>2]=n;c[l>>2]=(c[l>>2]|0)+1}i=m;return}function Eh(a,b,d,e,f,j){a=a|0;b=b|0;d=+d;e=e|0;f=f|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;K=i;i=i+784|0;k=K+768|0;l=K+764|0;m=K+760|0;n=K+756|0;o=K+752|0;p=K+748|0;y=K+744|0;z=K+740|0;F=K+736|0;E=K+732|0;s=K+720|0;x=K+712|0;C=K+704|0;B=K+696|0;A=K+688|0;D=K+680|0;r=K+672|0;G=K+664|0;H=K+656|0;I=K+728|0;v=K+528|0;w=K+400|0;u=K+264|0;t=K+128|0;q=K;c[k>>2]=a;c[l>>2]=b;g[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=j;h[s>>3]=+Gh(c[l>>2]|0,_(c[o>>2]|0,c[n>>2]|0)|0);a=v;f=a+128|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(f|0));c[F>>2]=0;while(1){if((c[F>>2]|0)>=(c[o>>2]|0))break;c[I>>2]=(c[l>>2]|0)+((_(c[F>>2]|0,c[n>>2]|0)|0)<<2);c[z>>2]=1;while(1){if((c[z>>2]|0)>=((c[p>>2]|0)+1|0))break;d=+Hh(c[I>>2]|0,(c[I>>2]|0)+(c[z>>2]<<2)|0,(c[n>>2]|0)-(c[z>>2]|0)|0);b=v+((c[z>>2]|0)-1<<3)|0;h[b>>3]=+h[b>>3]+d;c[z>>2]=(c[z>>2]|0)+1}c[F>>2]=(c[F>>2]|0)+1}a=w;j=v;f=a+128|0;do{c[a>>2]=c[j>>2];a=a+4|0;j=j+4|0}while((a|0)<(f|0));d=+h[s>>3]+ +h[s>>3]*9.999999747378752e-06+9.999999717180685e-10;h[u>>3]=d;h[t>>3]=d;h[x>>3]=1.0;c[E>>2]=0;c[z>>2]=0;while(1){if((c[z>>2]|0)>=(c[p>>2]|0))break;c[F>>2]=0;while(1){if((c[F>>2]|0)>=(c[o>>2]|0))break;c[I>>2]=(c[l>>2]|0)+((_(c[F>>2]|0,c[n>>2]|0)|0)<<2);h[G>>3]=+g[(c[I>>2]|0)+(c[z>>2]<<2)>>2];h[H>>3]=+g[(c[I>>2]|0)+((c[n>>2]|0)-(c[z>>2]|0)-1<<2)>>2];c[y>>2]=0;while(1){if((c[y>>2]|0)>=(c[z>>2]|0))break;b=v+(c[y>>2]<<3)|0;h[b>>3]=+h[b>>3]-+g[(c[I>>2]|0)+(c[z>>2]<<2)>>2]*+g[(c[I>>2]|0)+((c[z>>2]|0)-(c[y>>2]|0)-1<<2)>>2];b=w+(c[y>>2]<<3)|0;h[b>>3]=+h[b>>3]-+g[(c[I>>2]|0)+((c[n>>2]|0)-(c[z>>2]|0)-1<<2)>>2]*+g[(c[I>>2]|0)+((c[n>>2]|0)-(c[z>>2]|0)+(c[y>>2]|0)<<2)>>2];h[r>>3]=+h[q+(c[y>>2]<<3)>>3];h[G>>3]=+h[G>>3]+ +g[(c[I>>2]|0)+((c[z>>2]|0)-(c[y>>2]|0)-1<<2)>>2]*+h[r>>3];h[H>>3]=+h[H>>3]+ +g[(c[I>>2]|0)+((c[n>>2]|0)-(c[z>>2]|0)+(c[y>>2]|0)<<2)>>2]*+h[r>>3];c[y>>2]=(c[y>>2]|0)+1}c[y>>2]=0;while(1){if((c[y>>2]|0)>(c[z>>2]|0))break;b=u+(c[y>>2]<<3)|0;h[b>>3]=+h[b>>3]-+h[G>>3]*+g[(c[I>>2]|0)+((c[z>>2]|0)-(c[y>>2]|0)<<2)>>2];b=t+(c[y>>2]<<3)|0;h[b>>3]=+h[b>>3]-+h[H>>3]*+g[(c[I>>2]|0)+((c[n>>2]|0)-(c[z>>2]|0)+(c[y>>2]|0)-1<<2)>>2];c[y>>2]=(c[y>>2]|0)+1}c[F>>2]=(c[F>>2]|0)+1}h[G>>3]=+h[v+(c[z>>2]<<3)>>3];h[H>>3]=+h[w+(c[z>>2]<<3)>>3];c[y>>2]=0;while(1){if((c[y>>2]|0)>=(c[z>>2]|0))break;h[r>>3]=+h[q+(c[y>>2]<<3)>>3];h[G>>3]=+h[G>>3]+ +h[w+((c[z>>2]|0)-(c[y>>2]|0)-1<<3)>>3]*+h[r>>3];h[H>>3]=+h[H>>3]+ +h[v+((c[z>>2]|0)-(c[y>>2]|0)-1<<3)>>3]*+h[r>>3];c[y>>2]=(c[y>>2]|0)+1}h[u+((c[z>>2]|0)+1<<3)>>3]=+h[G>>3];h[t+((c[z>>2]|0)+1<<3)>>3]=+h[H>>3];h[C>>3]=+h[t+((c[z>>2]|0)+1<<3)>>3];h[A>>3]=+h[t>>3];h[B>>3]=+h[u>>3];c[y>>2]=0;while(1){if((c[y>>2]|0)>=(c[z>>2]|0))break;h[r>>3]=+h[q+(c[y>>2]<<3)>>3];h[C>>3]=+h[C>>3]+ +h[t+((c[z>>2]|0)-(c[y>>2]|0)<<3)>>3]*+h[r>>3];h[A>>3]=+h[A>>3]+ +h[t+((c[y>>2]|0)+1<<3)>>3]*+h[r>>3];h[B>>3]=+h[B>>3]+ +h[u+((c[y>>2]|0)+1<<3)>>3]*+h[r>>3];c[y>>2]=(c[y>>2]|0)+1}h[D>>3]=+h[C>>3]*-2.0/(+h[B>>3]+ +h[A>>3]);h[G>>3]=+h[x>>3]*(1.0-+h[D>>3]*+h[D>>3]);if(+h[G>>3]<=+g[m>>2]){h[D>>3]=+O(+(1.0-+g[m>>2]/+h[x>>3]));if(+h[C>>3]>0.0)h[D>>3]=-+h[D>>3];h[x>>3]=+g[m>>2];c[E>>2]=1}else h[x>>3]=+h[G>>3];c[y>>2]=0;while(1){if((c[y>>2]|0)>=((c[z>>2]|0)+1>>1|0))break;h[G>>3]=+h[q+(c[y>>2]<<3)>>3];h[H>>3]=+h[q+((c[z>>2]|0)-(c[y>>2]|0)-1<<3)>>3];h[q+(c[y>>2]<<3)>>3]=+h[G>>3]+ +h[D>>3]*+h[H>>3];h[q+((c[z>>2]|0)-(c[y>>2]|0)-1<<3)>>3]=+h[H>>3]+ +h[D>>3]*+h[G>>3];c[y>>2]=(c[y>>2]|0)+1}h[q+(c[z>>2]<<3)>>3]=+h[D>>3];if(c[E>>2]|0){J=33;break}c[y>>2]=0;while(1){if((c[y>>2]|0)>((c[z>>2]|0)+1|0))break;h[G>>3]=+h[u+(c[y>>2]<<3)>>3];b=u+(c[y>>2]<<3)|0;h[b>>3]=+h[b>>3]+ +h[D>>3]*+h[t+((c[z>>2]|0)-(c[y>>2]|0)+1<<3)>>3];b=t+((c[z>>2]|0)-(c[y>>2]|0)+1<<3)|0;h[b>>3]=+h[b>>3]+ +h[D>>3]*+h[G>>3];c[y>>2]=(c[y>>2]|0)+1}c[z>>2]=(c[z>>2]|0)+1}a:do if((J|0)==33){c[y>>2]=(c[z>>2]|0)+1;while(1){if((c[y>>2]|0)>=(c[p>>2]|0))break a;h[q+(c[y>>2]<<3)>>3]=0.0;c[y>>2]=(c[y>>2]|0)+1}}while(0);if(!(c[E>>2]|0)){h[B>>3]=+h[u>>3];h[G>>3]=1.0;c[y>>2]=0;while(1){if((c[y>>2]|0)>=(c[p>>2]|0))break;h[r>>3]=+h[q+(c[y>>2]<<3)>>3];h[B>>3]=+h[B>>3]+ +h[u+((c[y>>2]|0)+1<<3)>>3]*+h[r>>3];h[G>>3]=+h[G>>3]+ +h[r>>3]*+h[r>>3];g[(c[k>>2]|0)+(c[y>>2]<<2)>>2]=-+h[r>>3];c[y>>2]=(c[y>>2]|0)+1}h[B>>3]=+h[B>>3]-+h[s>>3]*9.999999747378752e-06*+h[G>>3];d=+h[B>>3];i=K;return +d}c[y>>2]=0;while(1){if((c[y>>2]|0)>=(c[p>>2]|0))break;g[(c[k>>2]|0)+(c[y>>2]<<2)>>2]=-+h[q+(c[y>>2]<<3)>>3];c[y>>2]=(c[y>>2]|0)+1}c[F>>2]=0;while(1){if((c[F>>2]|0)>=(c[o>>2]|0))break;J=(c[l>>2]|0)+((_(c[F>>2]|0,c[n>>2]|0)|0)<<2)|0;d=+Gh(J,c[p>>2]|0);h[s>>3]=+h[s>>3]-d;c[F>>2]=(c[F>>2]|0)+1}h[B>>3]=+h[s>>3]*+h[x>>3];d=+h[B>>3];i=K;return +d}function Fh(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;e=l+16|0;f=l+12|0;h=l+8|0;k=l+4|0;j=l;c[e>>2]=a;c[f>>2]=b;g[h>>2]=d;g[j>>2]=+g[h>>2];c[k>>2]=0;while(1){d=+g[j>>2];if((c[k>>2]|0)>=((c[f>>2]|0)-1|0))break;b=(c[e>>2]|0)+(c[k>>2]<<2)|0;g[b>>2]=+g[b>>2]*d;g[j>>2]=+g[j>>2]*+g[h>>2];c[k>>2]=(c[k>>2]|0)+1}k=(c[e>>2]|0)+((c[f>>2]|0)-1<<2)|0;g[k>>2]=+g[k>>2]*d;i=l;return}function Gh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,j=0,k=0,l=0;l=i;i=i+32|0;d=l+20|0;e=l+16|0;j=l+12|0;f=l+8|0;k=l;c[d>>2]=a;c[e>>2]=b;h[k>>3]=0.0;c[f>>2]=c[e>>2]&65532;c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[f>>2]|0))break;h[k>>3]=+h[k>>3]+(+g[(c[d>>2]|0)+((c[j>>2]|0)+0<<2)>>2]*+g[(c[d>>2]|0)+((c[j>>2]|0)+0<<2)>>2]+ +g[(c[d>>2]|0)+((c[j>>2]|0)+1<<2)>>2]*+g[(c[d>>2]|0)+((c[j>>2]|0)+1<<2)>>2]+ +g[(c[d>>2]|0)+((c[j>>2]|0)+2<<2)>>2]*+g[(c[d>>2]|0)+((c[j>>2]|0)+2<<2)>>2]+ +g[(c[d>>2]|0)+((c[j>>2]|0)+3<<2)>>2]*+g[(c[d>>2]|0)+((c[j>>2]|0)+3<<2)>>2]);c[j>>2]=(c[j>>2]|0)+4}while(1){if((c[j>>2]|0)>=(c[e>>2]|0))break;h[k>>3]=+h[k>>3]+ +g[(c[d>>2]|0)+(c[j>>2]<<2)>>2]*+g[(c[d>>2]|0)+(c[j>>2]<<2)>>2];c[j>>2]=(c[j>>2]|0)+1}i=l;return +(+h[k>>3])}function Hh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;e=n+24|0;f=n+20|0;j=n+16|0;l=n+12|0;k=n+8|0;m=n;c[e>>2]=a;c[f>>2]=b;c[j>>2]=d;h[m>>3]=0.0;c[k>>2]=c[j>>2]&65532;c[l>>2]=0;while(1){if((c[l>>2]|0)>=(c[k>>2]|0))break;h[m>>3]=+h[m>>3]+(+g[(c[e>>2]|0)+((c[l>>2]|0)+0<<2)>>2]*+g[(c[f>>2]|0)+((c[l>>2]|0)+0<<2)>>2]+ +g[(c[e>>2]|0)+((c[l>>2]|0)+1<<2)>>2]*+g[(c[f>>2]|0)+((c[l>>2]|0)+1<<2)>>2]+ +g[(c[e>>2]|0)+((c[l>>2]|0)+2<<2)>>2]*+g[(c[f>>2]|0)+((c[l>>2]|0)+2<<2)>>2]+ +g[(c[e>>2]|0)+((c[l>>2]|0)+3<<2)>>2]*+g[(c[f>>2]|0)+((c[l>>2]|0)+3<<2)>>2]);c[l>>2]=(c[l>>2]|0)+4}while(1){if((c[l>>2]|0)>=(c[j>>2]|0))break;h[m>>3]=+h[m>>3]+ +g[(c[e>>2]|0)+(c[l>>2]<<2)>>2]*+g[(c[f>>2]|0)+(c[l>>2]<<2)>>2];c[l>>2]=(c[l>>2]|0)+1}i=n;return +(+h[m>>3])}function Ih(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+96|0;e=m+80|0;f=m+76|0;h=m+72|0;k=m+68|0;l=m+64|0;j=m;c[e>>2]=a;c[f>>2]=b;c[h>>2]=d;c[k>>2]=0;while(1){if((c[k>>2]|0)>=(c[h>>2]|0))break;c[l>>2]=0;while(1){if((c[l>>2]|0)>=(c[k>>2]|0))break;g[j+(c[l>>2]<<2)>>2]=+g[(c[e>>2]|0)+(c[l>>2]<<2)>>2];c[l>>2]=(c[l>>2]|0)+1}c[l>>2]=0;while(1){a=c[k>>2]|0;if((c[l>>2]|0)>=(c[k>>2]|0))break;b=(c[e>>2]|0)+(c[l>>2]<<2)|0;g[b>>2]=+g[b>>2]+ +g[j+(a-(c[l>>2]|0)-1<<2)>>2]*+g[(c[f>>2]|0)+(c[k>>2]<<2)>>2];c[l>>2]=(c[l>>2]|0)+1}g[(c[e>>2]|0)+(c[k>>2]<<2)>>2]=-+g[(c[f>>2]|0)+(a<<2)>>2];c[k>>2]=(c[k>>2]|0)+1}i=m;return}function Jh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+48|0;e=s+44|0;f=s+40|0;h=s+36|0;l=s+32|0;o=s+28|0;n=s+24|0;p=s+20|0;q=s+16|0;r=s+12|0;m=s+8|0;j=s+4|0;k=s;c[e>>2]=a;c[f>>2]=b;c[h>>2]=d;g[p>>2]=+g[c[f>>2]>>2]*9.999999960041972e-13+9.999999717180685e-10;g[q>>2]=+g[c[f>>2]>>2];g[q>>2]=+g[p>>2]>+g[q>>2]?+g[p>>2]:+g[q>>2];g[c[e>>2]>>2]=+g[(c[f>>2]|0)+4>>2]/+g[q>>2];g[q>>2]=+g[q>>2]-+g[c[e>>2]>>2]*+g[(c[f>>2]|0)+4>>2];g[q>>2]=+g[p>>2]>+g[q>>2]?+g[p>>2]:+g[q>>2];c[n>>2]=1;while(1){if((c[n>>2]|0)>=(c[h>>2]|0))break;g[r>>2]=+g[(c[f>>2]|0)+((c[n>>2]|0)+1<<2)>>2];c[l>>2]=0;while(1){if((c[l>>2]|0)>=(c[n>>2]|0))break;g[r>>2]=+g[r>>2]-+g[(c[e>>2]|0)+(c[l>>2]<<2)>>2]*+g[(c[f>>2]|0)+((c[n>>2]|0)-(c[l>>2]|0)<<2)>>2];c[l>>2]=(c[l>>2]|0)+1}g[m>>2]=+g[r>>2]/+g[q>>2];g[q>>2]=+g[q>>2]-+g[m>>2]*+g[r>>2];g[q>>2]=+g[p>>2]>+g[q>>2]?+g[p>>2]:+g[q>>2];c[o>>2]=c[n>>2]>>1;c[l>>2]=0;while(1){if((c[l>>2]|0)>=(c[o>>2]|0))break;g[j>>2]=+g[(c[e>>2]|0)+(c[l>>2]<<2)>>2];g[k>>2]=+g[(c[e>>2]|0)+((c[n>>2]|0)-(c[l>>2]|0)-1<<2)>>2];d=(c[e>>2]|0)+((c[n>>2]|0)-(c[l>>2]|0)-1<<2)|0;g[d>>2]=+g[d>>2]-+g[m>>2]*+g[j>>2];d=(c[e>>2]|0)+(c[l>>2]<<2)|0;g[d>>2]=+g[d>>2]-+g[m>>2]*+g[k>>2];c[l>>2]=(c[l>>2]|0)+1}if(c[n>>2]&1|0){d=(c[e>>2]|0)+(c[o>>2]<<2)|0;g[d>>2]=+g[d>>2]-+g[m>>2]*+g[(c[e>>2]|0)+(c[o>>2]<<2)>>2]}g[(c[e>>2]|0)+(c[n>>2]<<2)>>2]=+g[m>>2];c[n>>2]=(c[n>>2]|0)+1}i=s;return +(+g[q>>2])}function Kh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0;r=i;i=i+192|0;d=r+184|0;t=r+180|0;s=r+176|0;l=r+172|0;m=r+168|0;k=r+24|0;n=r+16|0;o=r+8|0;p=r;j=r+40|0;f=r+36|0;e=r+32|0;c[t>>2]=a;c[s>>2]=b;c[e>>2]=j+((c[s>>2]&1)<<6);pj(c[e>>2]|0,c[t>>2]|0,c[s>>2]<<2|0)|0;h[k>>3]=1.0;c[l>>2]=(c[s>>2]|0)-1;while(1){if((c[l>>2]|0)<=0)break;h[n>>3]=-+g[(c[e>>2]|0)+(c[l>>2]<<2)>>2];if(+h[n>>3]>.9998999834060669|+h[n>>3]<-.9998999834060669){q=4;break}h[o>>3]=1.0-+h[n>>3]*+h[n>>3];h[p>>3]=1.0/+h[o>>3];h[k>>3]=+h[k>>3]*+h[o>>3];c[f>>2]=c[e>>2];c[e>>2]=j+((c[l>>2]&1)<<6);c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[l>>2]|0))break;g[(c[e>>2]|0)+(c[m>>2]<<2)>>2]=(+g[(c[f>>2]|0)+(c[m>>2]<<2)>>2]-+g[(c[f>>2]|0)+((c[l>>2]|0)-(c[m>>2]|0)-1<<2)>>2]*+h[n>>3])*+h[p>>3];c[m>>2]=(c[m>>2]|0)+1}c[l>>2]=(c[l>>2]|0)+-1}if((q|0)==4){g[d>>2]=0.0;u=+g[d>>2];i=r;return +u}h[n>>3]=-+g[c[e>>2]>>2];if(+h[n>>3]>.9998999834060669|+h[n>>3]<-.9998999834060669){g[d>>2]=0.0;u=+g[d>>2];i=r;return +u}else{h[o>>3]=1.0-+h[n>>3]*+h[n>>3];h[k>>3]=+h[k>>3]*+h[o>>3];g[d>>2]=+h[k>>3];u=+g[d>>2];i=r;return +u}return 0.0}function Lh(d,e,f,j,k,l,m,n,o,p,q,r){d=d|0;e=e|0;f=f|0;j=j|0;k=k|0;l=l|0;m=+m;n=+n;o=o|0;p=p|0;q=q|0;r=r|0;var s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0;La=i;i=i+13936|0;Ca=La+10416|0;da=La+10412|0;Ea=La+10408|0;Fa=La+10404|0;Ga=La+10400|0;H=La+10396|0;I=La+10392|0;s=La+10388|0;J=La+10384|0;ya=La+10380|0;ea=La+10376|0;Da=La+10372|0;fa=La+10368|0;U=La+10364|0;Ka=La+10360|0;la=La+10356|0;qa=La+10352|0;T=La+9072|0;y=La+8432|0;z=La+13288|0;x=La+12968|0;u=La+8408|0;ba=La+8404|0;ia=La+8400|0;K=La+6016|0;G=La+5756|0;M=La+5712|0;xa=La+5708|0;P=La+5704|0;ja=La+24|0;E=La+16|0;oa=La+8|0;pa=La;R=La+5608|0;Q=La+12664|0;X=La+5600|0;W=La+5596|0;t=La+5592|0;ga=La+5588|0;N=La+5584|0;O=La+5580|0;ha=La+5576|0;Ha=La+5572|0;L=La+5568|0;za=La+5564|0;wa=La+5560|0;ma=La+5556|0;Aa=La+5552|0;Ja=La+5548|0;V=La+5544|0;$=La+5540|0;S=La+5536|0;na=La+2816|0;ka=La+96|0;ra=La+88|0;A=La+84|0;C=La+80|0;B=La+76|0;va=La+72|0;aa=La+68|0;F=La+64|0;Ba=La+60|0;ta=La+56|0;Z=La+52|0;sa=La+48|0;Y=La+44|0;D=La+40|0;ua=La+36|0;Ia=La+32|0;w=La+11384|0;v=La+10424|0;c[da>>2]=d;c[Ea>>2]=e;c[Fa>>2]=f;c[Ga>>2]=j;c[H>>2]=k;c[I>>2]=l;g[s>>2]=m;g[J>>2]=n;c[ya>>2]=o;c[ea>>2]=p;c[Da>>2]=q;c[fa>>2]=r;c[A>>2]=_(20+((c[Da>>2]|0)*5|0)|0,c[ya>>2]|0)|0;c[B>>2]=20+((c[Da>>2]|0)*5|0)<<2;c[C>>2]=20+((c[Da>>2]|0)*5|0)<<3;c[va>>2]=(c[ya>>2]|0)*5;c[F>>2]=20;c[aa>>2]=40;c[Ba>>2]=c[ya>>2]<<1;c[Z>>2]=8;c[ta>>2]=16;c[sa>>2]=((c[ya>>2]|0)*18|0)-1;c[D>>2]=72;c[Y>>2]=143;do if((c[ya>>2]|0)!=16)if((c[ya>>2]|0)==12){Mh(v,c[da>>2]|0,c[A>>2]|0);c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=0;c[u+16>>2]=0;c[u+20>>2]=0;kg(u,z,v,c[A>>2]|0);Nh(T,z,c[C>>2]|0);break}else{Mh(z,c[da>>2]|0,c[C>>2]|0);break}else{Mh(w,c[da>>2]|0,c[A>>2]|0);c[u>>2]=0;c[u+4>>2]=0;lg(u,z,w,c[A>>2]|0);Nh(T,z,c[C>>2]|0)}while(0);c[u>>2]=0;c[u+4>>2]=0;lg(u,x,z,c[C>>2]|0);Nh(y,x,c[B>>2]|0);c[U>>2]=(c[B>>2]|0)-1;while(1){if((c[U>>2]|0)<=0)break;l=y+(c[U>>2]<<2)|0;g[l>>2]=+g[l>>2]+ +g[y+((c[U>>2]|0)-1<<2)>>2];c[U>>2]=(c[U>>2]|0)+-1}oj(K|0,0,(c[Da>>2]<<2)*149|0)|0;c[xa>>2]=y+(c[F>>2]<<2<<2);c[Ka>>2]=0;while(1){if((c[Ka>>2]|0)>=(c[Da>>2]>>1|0))break;c[P>>2]=(c[xa>>2]|0)+(0-(c[Z>>2]|0)<<2);Mc(c[xa>>2]|0,(c[xa>>2]|0)+(0-(c[D>>2]|0)<<2)|0,G,c[aa>>2]|0,(c[D>>2]|0)-(c[Z>>2]|0)+1|0,c[fa>>2]|0);h[ja>>3]=+g[G+((c[D>>2]|0)-(c[Z>>2]|0)<<2)>>2];n=+Gh(c[xa>>2]|0,c[aa>>2]|0);n=n+ +Gh(c[P>>2]|0,c[aa>>2]|0);h[E>>3]=n+ +(c[aa>>2]|0)*4.0e3;F=K+(c[Z>>2]<<2)|0;g[F>>2]=+g[F>>2]+ +h[ja>>3]*2.0/+h[E>>3];c[la>>2]=(c[Z>>2]|0)+1;while(1){if((c[la>>2]|0)>(c[D>>2]|0))break;c[P>>2]=(c[P>>2]|0)+-4;h[ja>>3]=+g[G+((c[D>>2]|0)-(c[la>>2]|0)<<2)>>2];h[E>>3]=+h[E>>3]+(+g[c[P>>2]>>2]*+g[c[P>>2]>>2]-+g[(c[P>>2]|0)+(c[aa>>2]<<2)>>2]*+g[(c[P>>2]|0)+(c[aa>>2]<<2)>>2]);F=K+(c[la>>2]<<2)|0;g[F>>2]=+g[F>>2]+ +h[ja>>3]*2.0/+h[E>>3];c[la>>2]=(c[la>>2]|0)+1}c[xa>>2]=(c[xa>>2]|0)+(c[aa>>2]<<2);c[Ka>>2]=(c[Ka>>2]|0)+1}c[U>>2]=c[D>>2];while(1){if((c[U>>2]|0)<(c[Z>>2]|0))break;G=K+(c[U>>2]<<2)|0;g[G>>2]=+g[G>>2]-+g[K+(c[U>>2]<<2)>>2]*+(c[U>>2]|0)/4096.0;c[U>>2]=(c[U>>2]|0)+-1}c[X>>2]=4+(c[ea>>2]<<1);Wh(K+(c[Z>>2]<<2)|0,R,(c[D>>2]|0)-(c[Z>>2]|0)+1|0,c[X>>2]|0);g[t>>2]=+g[K+(c[Z>>2]<<2)>>2];if(+g[t>>2]<.20000000298023224){oj(c[Ea>>2]|0,0,c[Da>>2]<<2|0)|0;g[c[H>>2]>>2]=0.0;b[c[Fa>>2]>>1]=0;a[c[Ga>>2]>>0]=0;c[Ca>>2]=1;Ka=c[Ca>>2]|0;i=La;return Ka|0}g[ba>>2]=+g[s>>2]*+g[t>>2];c[U>>2]=0;while(1){if((c[U>>2]|0)>=(c[X>>2]|0))break;s=c[U>>2]|0;if(!(+g[K+((c[Z>>2]|0)+(c[U>>2]|0)<<2)>>2]>+g[ba>>2])){ca=24;break}c[R+(c[U>>2]<<2)>>2]=(c[R+(s<<2)>>2]|0)+(c[Z>>2]|0)<<1;c[U>>2]=(c[U>>2]|0)+1}if((ca|0)==24)c[X>>2]=s;c[U>>2]=(c[ta>>2]|0)-5;while(1){if((c[U>>2]|0)>=((c[Y>>2]|0)+5|0))break;b[Q+(c[U>>2]<<1)>>1]=0;c[U>>2]=(c[U>>2]|0)+1}c[U>>2]=0;while(1){if((c[U>>2]|0)>=(c[X>>2]|0))break;b[Q+(c[R+(c[U>>2]<<2)>>2]<<1)>>1]=1;c[U>>2]=(c[U>>2]|0)+1}c[U>>2]=(c[Y>>2]|0)+3;while(1){if((c[U>>2]|0)<(c[ta>>2]|0))break;ca=Q+(c[U>>2]<<1)|0;b[ca>>1]=(b[ca>>1]|0)+((b[Q+((c[U>>2]|0)-1<<1)>>1]|0)+(b[Q+((c[U>>2]|0)-2<<1)>>1]|0));c[U>>2]=(c[U>>2]|0)+-1}c[X>>2]=0;c[U>>2]=c[ta>>2];while(1){if((c[U>>2]|0)>=((c[Y>>2]|0)+1|0))break;if((b[Q+((c[U>>2]|0)+1<<1)>>1]|0)>0){c[R+(c[X>>2]<<2)>>2]=c[U>>2];c[X>>2]=(c[X>>2]|0)+1}c[U>>2]=(c[U>>2]|0)+1}c[U>>2]=(c[Y>>2]|0)+3;while(1){if((c[U>>2]|0)<(c[ta>>2]|0))break;ca=Q+(c[U>>2]<<1)|0;b[ca>>1]=(b[ca>>1]|0)+((b[Q+((c[U>>2]|0)-1<<1)>>1]|0)+(b[Q+((c[U>>2]|0)-2<<1)>>1]|0)+(b[Q+((c[U>>2]|0)-3<<1)>>1]|0));c[U>>2]=(c[U>>2]|0)+-1}c[W>>2]=0;c[U>>2]=c[ta>>2];while(1){if((c[U>>2]|0)>=((c[Y>>2]|0)+4|0))break;if((b[Q+(c[U>>2]<<1)>>1]|0)>0){b[Q+(c[W>>2]<<1)>>1]=(c[U>>2]|0)-2;c[W>>2]=(c[W>>2]|0)+1}c[U>>2]=(c[U>>2]|0)+1}oj(K|0,0,2384)|0;if((c[ya>>2]|0)==8)c[xa>>2]=(c[da>>2]|0)+640;else c[xa>>2]=T+640;c[Ka>>2]=0;while(1){if((c[Ka>>2]|0)>=(c[Da>>2]|0))break;h[pa>>3]=+Gh(c[xa>>2]|0,c[aa>>2]|0)+1.0;c[qa>>2]=0;while(1){if((c[qa>>2]|0)>=(c[W>>2]|0))break;c[la>>2]=b[Q+(c[qa>>2]<<1)>>1];c[P>>2]=(c[xa>>2]|0)+(0-(c[la>>2]|0)<<2);h[ja>>3]=+Hh(c[P>>2]|0,c[xa>>2]|0,c[aa>>2]|0);if(+h[ja>>3]>0.0){h[oa>>3]=+Gh(c[P>>2]|0,c[aa>>2]|0);g[K+((c[Ka>>2]|0)*596|0)+(c[la>>2]<<2)>>2]=+h[ja>>3]*2.0/(+h[oa>>3]+ +h[pa>>3])}else g[K+((c[Ka>>2]|0)*596|0)+(c[la>>2]<<2)>>2]=0.0;c[qa>>2]=(c[qa>>2]|0)+1}c[xa>>2]=(c[xa>>2]|0)+(c[aa>>2]<<2);c[Ka>>2]=(c[Ka>>2]|0)+1}g[ga>>2]=0.0;g[N>>2]=-1.0e3;c[Ha>>2]=0;c[za>>2]=-1;if((c[I>>2]|0)>0){if((c[ya>>2]|0)!=12){if((c[ya>>2]|0)==16)c[I>>2]=c[I>>2]>>1}else c[I>>2]=(c[I>>2]<<1|0)/3|0;g[$>>2]=+Oh(+(c[I>>2]|0))}else g[$>>2]=0.0;do if((c[Da>>2]|0)==4){c[Ja>>2]=11;c[Ia>>2]=30286;if((c[ya>>2]|0)==8&(c[ea>>2]|0)>0){c[ua>>2]=11;break}else{c[ua>>2]=3;break}}else{c[Ja>>2]=3;c[Ia>>2]=30252;c[ua>>2]=3}while(0);c[Ka>>2]=0;while(1){if((c[Ka>>2]|0)>=(c[X>>2]|0))break;c[la>>2]=c[R+(c[Ka>>2]<<2)>>2];c[qa>>2]=0;while(1){if((c[qa>>2]|0)>=(c[ua>>2]|0))break;g[M+(c[qa>>2]<<2)>>2]=0.0;c[U>>2]=0;while(1){if((c[U>>2]|0)>=(c[Da>>2]|0))break;ba=_(c[U>>2]|0,c[Ja>>2]|0)|0;ca=M+(c[qa>>2]<<2)|0;g[ca>>2]=+g[ca>>2]+ +g[K+((c[U>>2]|0)*596|0)+((c[la>>2]|0)+(a[(c[Ia>>2]|0)+(ba+(c[qa>>2]|0))>>0]|0)<<2)>>2];c[U>>2]=(c[U>>2]|0)+1}c[qa>>2]=(c[qa>>2]|0)+1}g[ha>>2]=-1.0e3;c[L>>2]=0;c[U>>2]=0;while(1){if((c[U>>2]|0)>=(c[ua>>2]|0))break;if(+g[M+(c[U>>2]<<2)>>2]>+g[ha>>2]){g[ha>>2]=+g[M+(c[U>>2]<<2)>>2];c[L>>2]=c[U>>2]}c[U>>2]=(c[U>>2]|0)+1}g[V>>2]=+Oh(+(c[la>>2]|0));g[O>>2]=+g[ha>>2]-+(c[Da>>2]|0)*.20000000298023224*+g[V>>2];if((c[I>>2]|0)>0){g[S>>2]=+g[V>>2]-+g[$>>2];g[S>>2]=+g[S>>2]*+g[S>>2];g[O>>2]=+g[O>>2]-+(c[Da>>2]|0)*.20000000298023224*+g[c[H>>2]>>2]*+g[S>>2]/(+g[S>>2]+.5)}if(+g[O>>2]>+g[N>>2]?+g[ha>>2]>+(c[Da>>2]|0)*+g[J>>2]:0){g[N>>2]=+g[O>>2];g[ga>>2]=+g[ha>>2];c[za>>2]=c[la>>2];c[Ha>>2]=c[L>>2]}c[Ka>>2]=(c[Ka>>2]|0)+1}if((c[za>>2]|0)==-1){Ka=c[Ea>>2]|0;c[Ka>>2]=0;c[Ka+4>>2]=0;c[Ka+8>>2]=0;c[Ka+12>>2]=0;g[c[H>>2]>>2]=0.0;b[c[Fa>>2]>>1]=0;a[c[Ga>>2]>>0]=0;c[Ca>>2]=1;Ka=c[Ca>>2]|0;i=La;return Ka|0}g[c[H>>2]>>2]=+g[ga>>2]/+(c[Da>>2]|0);if((c[ya>>2]|0)>8){s=c[za>>2]|0;if((c[ya>>2]|0)==12)c[za>>2]=(((s&65535)<<16>>16)*3>>1)+(((c[za>>2]&65535)<<16>>16)*3&1);else c[za>>2]=s<<1;s=c[za>>2]|0;do if((c[Ba>>2]|0)>(c[sa>>2]|0))if((s|0)>(c[Ba>>2]|0)){s=c[Ba>>2]|0;break}else{s=(c[za>>2]|0)<(c[sa>>2]|0)?c[sa>>2]|0:c[za>>2]|0;break}else if((s|0)>(c[sa>>2]|0)){s=c[sa>>2]|0;break}else{s=(c[za>>2]|0)<(c[Ba>>2]|0)?c[Ba>>2]|0:c[za>>2]|0;break}while(0);c[za>>2]=s;c[wa>>2]=Ph((c[za>>2]|0)-2|0,c[Ba>>2]|0)|0;c[ma>>2]=Qh((c[za>>2]|0)+2|0,c[sa>>2]|0)|0;c[Aa>>2]=c[za>>2];c[Ha>>2]=0;g[ga>>2]=-1.0e3;Rh(ka,c[da>>2]|0,c[wa>>2]|0,c[va>>2]|0,c[Da>>2]|0,c[ea>>2]|0,c[fa>>2]|0);Sh(na,c[da>>2]|0,c[wa>>2]|0,c[va>>2]|0,c[Da>>2]|0,c[ea>>2]|0);c[ra>>2]=0;g[ia>>2]=.05000000074505806/+(c[za>>2]|0);if((c[Da>>2]|0)==4){c[ua>>2]=a[30490+(c[ea>>2]|0)>>0];c[Ja>>2]=34;c[Ia>>2]=30330}else{c[ua>>2]=12;c[Ja>>2]=12;c[Ia>>2]=30258}c[xa>>2]=(c[da>>2]|0)+((c[ya>>2]|0)*20<<2);h[pa>>3]=+Gh(c[xa>>2]|0,_(c[Da>>2]|0,c[va>>2]|0)|0)+1.0;c[la>>2]=c[wa>>2];while(1){if((c[la>>2]|0)>(c[ma>>2]|0))break;c[qa>>2]=0;while(1){if((c[qa>>2]|0)>=(c[ua>>2]|0))break;h[ja>>3]=0.0;h[oa>>3]=+h[pa>>3];c[Ka>>2]=0;while(1){if((c[Ka>>2]|0)>=(c[Da>>2]|0))break;h[ja>>3]=+h[ja>>3]+ +g[ka+((c[Ka>>2]|0)*680|0)+((c[qa>>2]|0)*20|0)+(c[ra>>2]<<2)>>2];h[oa>>3]=+h[oa>>3]+ +g[na+((c[Ka>>2]|0)*680|0)+((c[qa>>2]|0)*20|0)+(c[ra>>2]<<2)>>2];c[Ka>>2]=(c[Ka>>2]|0)+1}if(+h[ja>>3]>0.0){g[ha>>2]=+h[ja>>3]*2.0/+h[oa>>3];g[ha>>2]=+g[ha>>2]*(1.0-+g[ia>>2]*+(c[qa>>2]|0))}else g[ha>>2]=0.0;if(+g[ha>>2]>+g[ga>>2]?((c[la>>2]|0)+(a[30330+(c[qa>>2]|0)>>0]|0)|0)<=(c[sa>>2]|0):0){g[ga>>2]=+g[ha>>2];c[Aa>>2]=c[la>>2];c[Ha>>2]=c[qa>>2]}c[qa>>2]=(c[qa>>2]|0)+1}c[ra>>2]=(c[ra>>2]|0)+1;c[la>>2]=(c[la>>2]|0)+1}c[Ka>>2]=0;while(1){s=c[Aa>>2]|0;if((c[Ka>>2]|0)>=(c[Da>>2]|0))break;za=_(c[Ka>>2]|0,c[Ja>>2]|0)|0;c[(c[Ea>>2]|0)+(c[Ka>>2]<<2)>>2]=s+(a[(c[Ia>>2]|0)+(za+(c[Ha>>2]|0))>>0]|0);s=c[(c[Ea>>2]|0)+(c[Ka>>2]<<2)>>2]|0;do if((c[Ba>>2]|0)>((c[ya>>2]|0)*18|0)){if((s|0)>(c[Ba>>2]|0)){s=c[Ba>>2]|0;break}if((c[(c[Ea>>2]|0)+(c[Ka>>2]<<2)>>2]|0)<((c[ya>>2]|0)*18|0)){s=(c[ya>>2]|0)*18|0;break}else{s=c[(c[Ea>>2]|0)+(c[Ka>>2]<<2)>>2]|0;break}}else{if((s|0)>((c[ya>>2]|0)*18|0)){s=(c[ya>>2]|0)*18|0;break}if((c[(c[Ea>>2]|0)+(c[Ka>>2]<<2)>>2]|0)<(c[Ba>>2]|0)){s=c[Ba>>2]|0;break}else{s=c[(c[Ea>>2]|0)+(c[Ka>>2]<<2)>>2]|0;break}}while(0);c[(c[Ea>>2]|0)+(c[Ka>>2]<<2)>>2]=s;c[Ka>>2]=(c[Ka>>2]|0)+1}b[c[Fa>>2]>>1]=s-(c[Ba>>2]|0);a[c[Ga>>2]>>0]=c[Ha>>2]}else{c[Ka>>2]=0;while(1){s=c[za>>2]|0;if((c[Ka>>2]|0)>=(c[Da>>2]|0))break;Ba=_(c[Ka>>2]|0,c[Ja>>2]|0)|0;c[(c[Ea>>2]|0)+(c[Ka>>2]<<2)>>2]=s+(a[(c[Ia>>2]|0)+(Ba+(c[Ha>>2]|0))>>0]|0);s=c[(c[Ea>>2]|0)+(c[Ka>>2]<<2)>>2]|0;do if((c[ta>>2]|0)>144){if((s|0)>(c[ta>>2]|0)){s=c[ta>>2]|0;break}if((c[(c[Ea>>2]|0)+(c[Ka>>2]<<2)>>2]|0)<144)s=144;else s=c[(c[Ea>>2]|0)+(c[Ka>>2]<<2)>>2]|0}else if((s|0)<=144)if((c[(c[Ea>>2]|0)+(c[Ka>>2]<<2)>>2]|0)<(c[ta>>2]|0)){s=c[ta>>2]|0;break}else{s=c[(c[Ea>>2]|0)+(c[Ka>>2]<<2)>>2]|0;break}else s=144;while(0);c[(c[Ea>>2]|0)+(c[Ka>>2]<<2)>>2]=s;c[Ka>>2]=(c[Ka>>2]|0)+1}b[c[Fa>>2]>>1]=s-(c[ta>>2]|0);a[c[Ga>>2]>>0]=c[Ha>>2]}c[Ca>>2]=0;Ka=c[Ca>>2]|0;i=La;return Ka|0}function Mh(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0;k=i;i=i+16|0;f=k+12|0;h=k+8|0;l=k+4|0;j=k;c[f>>2]=a;c[h>>2]=d;c[l>>2]=e;c[j>>2]=(c[l>>2]|0)-1;while(1){if((c[j>>2]|0)<0)break;if((ij(+g[(c[h>>2]|0)+(c[j>>2]<<2)>>2])|0)<=32767)if((ij(+g[(c[h>>2]|0)+(c[j>>2]<<2)>>2])|0)<-32768)d=-32768;else d=ij(+g[(c[h>>2]|0)+(c[j>>2]<<2)>>2])|0;else d=32767;b[(c[f>>2]|0)+(c[j>>2]<<1)>>1]=d;c[j>>2]=(c[j>>2]|0)+-1}i=k;return}function Nh(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0;k=i;i=i+16|0;f=k+12|0;h=k+8|0;l=k+4|0;j=k;c[f>>2]=a;c[h>>2]=d;c[l>>2]=e;c[j>>2]=(c[l>>2]|0)-1;while(1){if((c[j>>2]|0)<0)break;g[(c[f>>2]|0)+(c[j>>2]<<2)>>2]=+(b[(c[h>>2]|0)+(c[j>>2]<<1)>>1]|0);c[j>>2]=(c[j>>2]|0)+-1}i=k;return}function Oh(a){a=+a;var b=0,c=0;b=i;i=i+16|0;c=b;h[c>>3]=a;a=+hj(+h[c>>3])*3.32192809488736;i=b;return +a}function Ph(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f+4|0;d=f;c[e>>2]=a;c[d>>2]=b;i=f;return ((c[e>>2]|0)>(c[d>>2]|0)?c[e>>2]|0:c[d>>2]|0)|0}function Qh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f+4|0;d=f;c[e>>2]=a;c[d>>2]=b;i=f;return ((c[e>>2]|0)<(c[d>>2]|0)?c[e>>2]|0:c[d>>2]|0)|0}function Rh(b,d,e,f,h,j,k){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;H=i;i=i+256|0;l=H+252|0;m=H+248|0;n=H+244|0;o=H+240|0;p=H+236|0;q=H+232|0;r=H+228|0;F=H+224|0;w=H+220|0;y=H+216|0;z=H+212|0;A=H+208|0;C=H+204|0;B=H+200|0;D=H+196|0;v=H+192|0;x=H+188|0;u=H+184|0;E=H+96|0;G=H+8|0;t=H+4|0;s=H;c[l>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=h;c[q>>2]=j;c[r>>2]=k;if((c[p>>2]|0)==4){c[t>>2]=30466+(c[q>>2]<<3);c[s>>2]=30330;c[D>>2]=a[30490+(c[q>>2]|0)>>0];c[u>>2]=34}else{c[t>>2]=30282;c[s>>2]=30258;c[D>>2]=12;c[u>>2]=12}c[F>>2]=(c[m>>2]|0)+(c[o>>2]<<2<<2);c[z>>2]=0;while(1){if((c[z>>2]|0)>=(c[p>>2]|0))break;c[A>>2]=0;c[C>>2]=a[(c[t>>2]|0)+((c[z>>2]<<1)+0)>>0];c[B>>2]=a[(c[t>>2]|0)+((c[z>>2]<<1)+1)>>0];Mc(c[F>>2]|0,(c[F>>2]|0)+(0-(c[n>>2]|0)<<2)+(0-(c[B>>2]|0)<<2)|0,G,c[o>>2]|0,(c[B>>2]|0)-(c[C>>2]|0)+1|0,c[r>>2]|0);c[y>>2]=c[C>>2];while(1){if((c[y>>2]|0)>(c[B>>2]|0))break;g[E+(c[A>>2]<<2)>>2]=+g[G+((c[B>>2]|0)-(c[y>>2]|0)<<2)>>2];c[A>>2]=(c[A>>2]|0)+1;c[y>>2]=(c[y>>2]|0)+1}c[v>>2]=a[(c[t>>2]|0)+((c[z>>2]<<1)+0)>>0];c[w>>2]=0;while(1){if((c[w>>2]|0)>=(c[D>>2]|0))break;e=_(c[z>>2]|0,c[u>>2]|0)|0;c[x>>2]=(a[(c[s>>2]|0)+(e+(c[w>>2]|0))>>0]|0)-(c[v>>2]|0);c[y>>2]=0;while(1){if((c[y>>2]|0)>=5)break;g[(c[l>>2]|0)+((c[z>>2]|0)*680|0)+((c[w>>2]|0)*20|0)+(c[y>>2]<<2)>>2]=+g[E+((c[x>>2]|0)+(c[y>>2]|0)<<2)>>2];c[y>>2]=(c[y>>2]|0)+1}c[w>>2]=(c[w>>2]|0)+1}c[F>>2]=(c[F>>2]|0)+(c[o>>2]<<2);c[z>>2]=(c[z>>2]|0)+1}i=H;return}function Sh(b,d,e,f,j,k){b=b|0;d=d|0;e=e|0;f=f|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;G=i;i=i+176|0;l=G+168|0;m=G+164|0;n=G+160|0;o=G+156|0;p=G+152|0;q=G+148|0;F=G+144|0;t=G+140|0;w=G;A=G+136|0;x=G+132|0;z=G+128|0;B=G+124|0;D=G+120|0;v=G+116|0;y=G+112|0;u=G+108|0;C=G+104|0;E=G+16|0;s=G+12|0;r=G+8|0;c[l>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=j;c[q>>2]=k;if((c[p>>2]|0)==4){c[s>>2]=30466+(c[q>>2]<<3);c[r>>2]=30330;c[D>>2]=a[30490+(c[q>>2]|0)>>0];c[u>>2]=34}else{c[s>>2]=30282;c[r>>2]=30258;c[D>>2]=12;c[u>>2]=12}c[F>>2]=(c[m>>2]|0)+(c[o>>2]<<2<<2);c[A>>2]=0;while(1){if((c[A>>2]|0)>=(c[p>>2]|0))break;c[B>>2]=0;c[t>>2]=(c[F>>2]|0)+(0-((c[n>>2]|0)+(a[(c[s>>2]|0)+((c[A>>2]<<1)+0)>>0]|0))<<2);h[w>>3]=+Gh(c[t>>2]|0,c[o>>2]|0)+.001;g[E+(c[B>>2]<<2)>>2]=+h[w>>3];c[B>>2]=(c[B>>2]|0)+1;c[C>>2]=(a[(c[s>>2]|0)+((c[A>>2]<<1)+1)>>0]|0)-(a[(c[s>>2]|0)+((c[A>>2]<<1)+0)>>0]|0)+1;c[x>>2]=1;while(1){if((c[x>>2]|0)>=(c[C>>2]|0))break;h[w>>3]=+h[w>>3]-+g[(c[t>>2]|0)+((c[o>>2]|0)-(c[x>>2]|0)<<2)>>2]*+g[(c[t>>2]|0)+((c[o>>2]|0)-(c[x>>2]|0)<<2)>>2];h[w>>3]=+h[w>>3]+ +g[(c[t>>2]|0)+(0-(c[x>>2]|0)<<2)>>2]*+g[(c[t>>2]|0)+(0-(c[x>>2]|0)<<2)>>2];g[E+(c[B>>2]<<2)>>2]=+h[w>>3];c[B>>2]=(c[B>>2]|0)+1;c[x>>2]=(c[x>>2]|0)+1}c[v>>2]=a[(c[s>>2]|0)+((c[A>>2]<<1)+0)>>0];c[x>>2]=0;while(1){if((c[x>>2]|0)>=(c[D>>2]|0))break;e=_(c[A>>2]|0,c[u>>2]|0)|0;c[y>>2]=(a[(c[r>>2]|0)+(e+(c[x>>2]|0))>>0]|0)-(c[v>>2]|0);c[z>>2]=0;while(1){if((c[z>>2]|0)>=5)break;g[(c[l>>2]|0)+((c[A>>2]|0)*680|0)+((c[x>>2]|0)*20|0)+(c[z>>2]<<2)>>2]=+g[E+((c[y>>2]|0)+(c[z>>2]|0)<<2)>>2];c[z>>2]=(c[z>>2]|0)+1}c[x>>2]=(c[x>>2]|0)+1}c[F>>2]=(c[F>>2]|0)+(c[o>>2]<<2);c[A>>2]=(c[A>>2]|0)+1}i=G;return}function Th(a,b,d,e){a=a|0;b=b|0;d=+d;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;f=n+20|0;h=n+16|0;j=n+12|0;k=n+8|0;m=n+4|0;l=n;c[f>>2]=a;c[h>>2]=b;g[j>>2]=d;c[k>>2]=e;c[l>>2]=c[k>>2]&65532;c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[l>>2]|0))break;g[(c[f>>2]|0)+((c[m>>2]|0)+0<<2)>>2]=+g[j>>2]*+g[(c[h>>2]|0)+((c[m>>2]|0)+0<<2)>>2];g[(c[f>>2]|0)+((c[m>>2]|0)+1<<2)>>2]=+g[j>>2]*+g[(c[h>>2]|0)+((c[m>>2]|0)+1<<2)>>2];g[(c[f>>2]|0)+((c[m>>2]|0)+2<<2)>>2]=+g[j>>2]*+g[(c[h>>2]|0)+((c[m>>2]|0)+2<<2)>>2];g[(c[f>>2]|0)+((c[m>>2]|0)+3<<2)>>2]=+g[j>>2]*+g[(c[h>>2]|0)+((c[m>>2]|0)+3<<2)>>2];c[m>>2]=(c[m>>2]|0)+4}while(1){if((c[m>>2]|0)>=(c[k>>2]|0))break;g[(c[f>>2]|0)+(c[m>>2]<<2)>>2]=+g[j>>2]*+g[(c[h>>2]|0)+(c[m>>2]<<2)>>2];c[m>>2]=(c[m>>2]|0)+1}i=n;return}
function ra(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+15&-16;return b|0}function sa(){return i|0}function ta(a){a=a|0;i=a}function ua(a,b){a=a|0;b=b|0;i=a;j=b}function va(a,b){a=a|0;b=b|0;if(!n){n=a;o=b}}function wa(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0]}function xa(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0]}function ya(a){a=a|0;C=a}function za(){return C|0}function Aa(a,b,d,e,f){a=+a;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;h=o+20|0;j=o+16|0;k=o+12|0;l=o+8|0;m=o+4|0;n=o;g[h>>2]=a;c[j>>2]=b;c[k>>2]=d;c[l>>2]=e;c[m>>2]=f;c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[l>>2]|0))break;if(+g[h>>2]<+g[(c[j>>2]|0)+(c[n>>2]<<2)>>2])break;c[n>>2]=(c[n>>2]|0)+1}if((c[n>>2]|0)>(c[m>>2]|0)?+g[h>>2]<+g[(c[j>>2]|0)+(c[m>>2]<<2)>>2]+ +g[(c[k>>2]|0)+(c[m>>2]<<2)>>2]:0)c[n>>2]=c[m>>2];if((c[n>>2]|0)>=(c[m>>2]|0)){b=c[n>>2]|0;i=o;return b|0}if(!(+g[h>>2]>+g[(c[j>>2]|0)+((c[m>>2]|0)-1<<2)>>2]-+g[(c[k>>2]|0)+((c[m>>2]|0)-1<<2)>>2])){b=c[n>>2]|0;i=o;return b|0}c[n>>2]=c[m>>2];b=c[n>>2]|0;i=o;return b|0}function Ba(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=(_(1664525,c[d>>2]|0)|0)+1013904223|0;i=b;return a|0}function Ca(a,d,e,f,h,j){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0;v=i;i=i+48|0;k=v+40|0;l=v+36|0;m=v+32|0;n=v+28|0;o=v+24|0;p=v+20|0;t=v+16|0;r=v+12|0;q=v+8|0;s=v+4|0;u=v;c[k>>2]=a;c[l>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=h;c[p>>2]=j;c[s>>2]=c[(c[k>>2]|0)+32>>2];c[q>>2]=c[(c[k>>2]|0)+44>>2]<<c[p>>2];c[r>>2]=0;do{c[t>>2]=0;while(1){h=c[r>>2]|0;if((c[t>>2]|0)>=(c[n>>2]|0))break;f=_(h,c[q>>2]|0)|0;a=_(c[r>>2]|0,c[q>>2]|0)|0;g[u>>2]=+Da((c[l>>2]|0)+(f+(b[(c[s>>2]|0)+(c[t>>2]<<1)>>1]<<c[p>>2])<<2)|0,(c[l>>2]|0)+(a+(b[(c[s>>2]|0)+(c[t>>2]<<1)>>1]<<c[p>>2])<<2)|0,(b[(c[s>>2]|0)+((c[t>>2]|0)+1<<1)>>1]|0)-(b[(c[s>>2]|0)+(c[t>>2]<<1)>>1]|0)<<c[p>>2])+1.0000000272452012e-27;w=+O(+(+g[u>>2]));a=(c[t>>2]|0)+(_(c[r>>2]|0,c[(c[k>>2]|0)+8>>2]|0)|0)|0;g[(c[m>>2]|0)+(a<<2)>>2]=w;c[t>>2]=(c[t>>2]|0)+1}a=h+1|0;c[r>>2]=a}while((a|0)<(c[o>>2]|0));i=v;return}function Da(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;f=m+16|0;h=m+12|0;j=m+8|0;k=m+4|0;l=m;c[f>>2]=a;c[h>>2]=b;c[j>>2]=d;g[l>>2]=0.0;c[k>>2]=0;while(1){e=+g[l>>2];if((c[k>>2]|0)>=(c[j>>2]|0))break;g[l>>2]=e+ +g[(c[f>>2]|0)+(c[k>>2]<<2)>>2]*+g[(c[h>>2]|0)+(c[k>>2]<<2)>>2];c[k>>2]=(c[k>>2]|0)+1}i=m;return +e}function Ea(a,d,e,f,h,j,k){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=i;i=i+64|0;l=y+48|0;m=y+44|0;n=y+40|0;o=y+36|0;p=y+32|0;q=y+28|0;r=y+24|0;w=y+20|0;t=y+16|0;s=y+12|0;u=y+8|0;x=y+4|0;v=y;c[l>>2]=a;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=h;c[q>>2]=j;c[r>>2]=k;c[u>>2]=c[(c[l>>2]|0)+32>>2];c[s>>2]=_(c[r>>2]|0,c[(c[l>>2]|0)+44>>2]|0)|0;c[t>>2]=0;do{c[w>>2]=0;while(1){if((c[w>>2]|0)>=(c[p>>2]|0))break;a=(c[w>>2]|0)+(_(c[t>>2]|0,c[(c[l>>2]|0)+8>>2]|0)|0)|0;g[v>>2]=1.0/(+g[(c[o>>2]|0)+(a<<2)>>2]+1.0000000272452012e-27);c[x>>2]=_(c[r>>2]|0,b[(c[u>>2]|0)+(c[w>>2]<<1)>>1]|0)|0;while(1){if((c[x>>2]|0)>=(_(c[r>>2]|0,b[(c[u>>2]|0)+((c[w>>2]|0)+1<<1)>>1]|0)|0))break;d=(c[x>>2]|0)+(_(c[t>>2]|0,c[s>>2]|0)|0)|0;a=(c[x>>2]|0)+(_(c[t>>2]|0,c[s>>2]|0)|0)|0;g[(c[n>>2]|0)+(a<<2)>>2]=+g[(c[m>>2]|0)+(d<<2)>>2]*+g[v>>2];c[x>>2]=(c[x>>2]|0)+1}c[w>>2]=(c[w>>2]|0)+1}a=(c[t>>2]|0)+1|0;c[t>>2]=a}while((a|0)<(c[q>>2]|0));i=y;return}function Fa(a,d,e,f,h,j,k,l,m){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0.0;F=i;i=i+80|0;G=F+72|0;o=F+68|0;p=F+64|0;q=F+60|0;r=F+56|0;s=F+52|0;t=F+48|0;n=F+44|0;u=F+40|0;B=F+36|0;v=F+32|0;x=F+28|0;z=F+24|0;E=F+20|0;y=F+16|0;C=F+12|0;w=F+8|0;A=F+4|0;D=F;c[G>>2]=a;c[o>>2]=d;c[p>>2]=e;c[q>>2]=f;c[r>>2]=h;c[s>>2]=j;c[t>>2]=k;c[n>>2]=l;c[u>>2]=m;c[y>>2]=c[(c[G>>2]|0)+32>>2];c[v>>2]=_(c[t>>2]|0,c[(c[G>>2]|0)+44>>2]|0)|0;c[x>>2]=_(c[t>>2]|0,b[(c[y>>2]|0)+(c[s>>2]<<1)>>1]|0)|0;if((c[n>>2]|0)!=1){if((c[x>>2]|0)<((c[v>>2]|0)/(c[n>>2]|0)|0|0))n=c[x>>2]|0;else n=(c[v>>2]|0)/(c[n>>2]|0)|0;c[x>>2]=n}if(c[u>>2]|0){c[x>>2]=0;c[s>>2]=0;c[r>>2]=0}c[z>>2]=c[p>>2];c[E>>2]=(c[o>>2]|0)+((_(c[t>>2]|0,b[(c[y>>2]|0)+(c[r>>2]<<1)>>1]|0)|0)<<2);c[B>>2]=0;while(1){if((c[B>>2]|0)>=(_(c[t>>2]|0,b[(c[y>>2]|0)+(c[r>>2]<<1)>>1]|0)|0))break;G=c[z>>2]|0;c[z>>2]=G+4;g[G>>2]=0.0;c[B>>2]=(c[B>>2]|0)+1}c[B>>2]=c[r>>2];while(1){if((c[B>>2]|0)>=(c[s>>2]|0))break;c[C>>2]=_(c[t>>2]|0,b[(c[y>>2]|0)+(c[B>>2]<<1)>>1]|0)|0;c[w>>2]=_(c[t>>2]|0,b[(c[y>>2]|0)+((c[B>>2]|0)+1<<1)>>1]|0)|0;g[D>>2]=+g[(c[q>>2]|0)+(c[B>>2]<<2)>>2]+ +g[17464+(c[B>>2]<<2)>>2];g[A>>2]=+X(+(+g[D>>2]*.6931471805599453));do{G=c[E>>2]|0;c[E>>2]=G+4;H=+g[G>>2]*+g[A>>2];G=c[z>>2]|0;c[z>>2]=G+4;g[G>>2]=H;G=(c[C>>2]|0)+1|0;c[C>>2]=G}while((G|0)<(c[w>>2]|0));c[B>>2]=(c[B>>2]|0)+1}oj((c[p>>2]|0)+(c[x>>2]<<2)|0,0,(c[v>>2]|0)-(c[x>>2]|0)<<2|0)|0;i=F;return}function Ga(a,e,f,h,j,k,l,m,n,o,p,q,r,s){a=a|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;s=s|0;var t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,Y=0;W=i;i=i+112|0;u=W+108|0;v=W+104|0;A=W+100|0;B=W+96|0;C=W+92|0;D=W+88|0;Y=W+84|0;E=W+80|0;F=W+76|0;G=W+72|0;w=W+68|0;x=W+64|0;y=W+60|0;z=W+56|0;K=W+52|0;M=W+48|0;N=W+44|0;P=W+40|0;I=W+36|0;V=W+32|0;U=W+28|0;L=W+24|0;J=W+20|0;Q=W+16|0;R=W+12|0;H=W+8|0;S=W+4|0;T=W;c[u>>2]=a;c[v>>2]=e;c[A>>2]=f;c[B>>2]=h;c[C>>2]=j;c[D>>2]=k;c[Y>>2]=l;c[E>>2]=m;c[F>>2]=n;c[G>>2]=o;c[w>>2]=p;c[x>>2]=q;c[y>>2]=r;c[z>>2]=s;c[M>>2]=c[Y>>2];while(1){if((c[M>>2]|0)>=(c[E>>2]|0))break;c[I>>2]=(b[(c[(c[u>>2]|0)+32>>2]|0)+((c[M>>2]|0)+1<<1)>>1]|0)-(b[(c[(c[u>>2]|0)+32>>2]|0)+(c[M>>2]<<1)>>1]|0);Y=Ha(1+(c[(c[x>>2]|0)+(c[M>>2]<<2)>>2]|0)|0,(b[(c[(c[u>>2]|0)+32>>2]|0)+((c[M>>2]|0)+1<<1)>>1]|0)-(b[(c[(c[u>>2]|0)+32>>2]|0)+(c[M>>2]<<1)>>1]|0)|0)|0;c[L>>2]=Y>>>(c[B>>2]|0);g[V>>2]=+X(+(+(c[L>>2]|0)*-.125*.6931471805599453))*.5;g[U>>2]=1.0/+O(+(+(c[I>>2]<<c[B>>2]|0)));c[K>>2]=0;do{c[T>>2]=0;Y=_(c[K>>2]|0,c[(c[u>>2]|0)+8>>2]|0)|0;g[Q>>2]=+g[(c[G>>2]|0)+(Y+(c[M>>2]|0)<<2)>>2];Y=_(c[K>>2]|0,c[(c[u>>2]|0)+8>>2]|0)|0;g[R>>2]=+g[(c[w>>2]|0)+(Y+(c[M>>2]|0)<<2)>>2];if((c[C>>2]|0)==1){if(+g[Q>>2]>+g[(c[G>>2]|0)+((c[(c[u>>2]|0)+8>>2]|0)+(c[M>>2]|0)<<2)>>2])t=+g[Q>>2];else t=+g[(c[G>>2]|0)+((c[(c[u>>2]|0)+8>>2]|0)+(c[M>>2]|0)<<2)>>2];g[Q>>2]=t;if(+g[R>>2]>+g[(c[w>>2]|0)+((c[(c[u>>2]|0)+8>>2]|0)+(c[M>>2]|0)<<2)>>2])t=+g[R>>2];else t=+g[(c[w>>2]|0)+((c[(c[u>>2]|0)+8>>2]|0)+(c[M>>2]|0)<<2)>>2];g[R>>2]=t}Y=_(c[K>>2]|0,c[(c[u>>2]|0)+8>>2]|0)|0;g[H>>2]=+g[(c[F>>2]|0)+(Y+(c[M>>2]|0)<<2)>>2]-(+g[Q>>2]<+g[R>>2]?+g[Q>>2]:+g[R>>2]);g[H>>2]=0.0>+g[H>>2]?0.0:+g[H>>2];g[S>>2]=+X(+(-+g[H>>2]*.6931471805599453))*2.0;if((c[B>>2]|0)==3)g[S>>2]=+g[S>>2]*1.4142135381698608;g[S>>2]=+g[V>>2]<+g[S>>2]?+g[V>>2]:+g[S>>2];g[S>>2]=+g[S>>2]*+g[U>>2];Y=(c[v>>2]|0)+((_(c[K>>2]|0,c[D>>2]|0)|0)<<2)|0;c[J>>2]=Y+(b[(c[(c[u>>2]|0)+32>>2]|0)+(c[M>>2]<<1)>>1]<<c[B>>2]<<2);c[P>>2]=0;while(1){if((c[P>>2]|0)>=(1<<c[B>>2]|0))break;Y=_(c[M>>2]|0,c[C>>2]|0)|0;if(!(d[(c[A>>2]|0)+(Y+(c[K>>2]|0))>>0]&1<<c[P>>2])){c[N>>2]=0;while(1){if((c[N>>2]|0)>=(c[I>>2]|0))break;c[y>>2]=Ba(c[y>>2]|0)|0;t=+g[S>>2];g[(c[J>>2]|0)+((c[N>>2]<<c[B>>2])+(c[P>>2]|0)<<2)>>2]=c[y>>2]&32768|0?t:-t;c[N>>2]=(c[N>>2]|0)+1}c[T>>2]=1}c[P>>2]=(c[P>>2]|0)+1}if(c[T>>2]|0)td(c[J>>2]|0,c[I>>2]<<c[B>>2],1.0,c[z>>2]|0);Y=(c[K>>2]|0)+1|0;c[K>>2]=Y}while((Y|0)<(c[C>>2]|0));c[M>>2]=(c[M>>2]|0)+1}i=W;return}function Ha(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f+4|0;d=f;c[e>>2]=a;c[d>>2]=b;i=f;return ((c[e>>2]|0)>>>0)/((c[d>>2]|0)>>>0)|0|0}function Ia(a,d,e,f,h,j,k,l,m,n){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;N=i;i=i+112|0;G=N+104|0;o=N+100|0;q=N+96|0;H=N+92|0;I=N+88|0;r=N+84|0;s=N+80|0;t=N+76|0;u=N+72|0;v=N+68|0;p=N+64|0;A=N+60|0;y=N+56|0;x=N+52|0;M=N+48|0;L=N+44|0;z=N+40|0;J=N+36|0;K=N+32|0;B=N+28|0;w=N+24|0;D=N+20|0;C=N+8|0;E=N+4|0;F=N;c[o>>2]=a;c[q>>2]=d;c[H>>2]=e;c[I>>2]=f;c[r>>2]=h;c[s>>2]=j;c[t>>2]=k;c[u>>2]=l;c[v>>2]=m;c[p>>2]=n;c[M>>2]=0;c[L>>2]=0;c[z>>2]=c[(c[o>>2]|0)+32>>2];c[K>>2]=0;c[x>>2]=_(c[p>>2]|0,c[(c[o>>2]|0)+44>>2]|0)|0;if((_(c[p>>2]|0,(b[(c[z>>2]|0)+(c[u>>2]<<1)>>1]|0)-(b[(c[z>>2]|0)+((c[u>>2]|0)-1<<1)>>1]|0)|0)|0)<=8){c[G>>2]=0;M=c[G>>2]|0;i=N;return M|0}c[y>>2]=0;do{c[A>>2]=0;while(1){if((c[A>>2]|0)>=(c[u>>2]|0))break;c[D>>2]=0;c[C>>2]=0;c[C+4>>2]=0;c[C+8>>2]=0;k=(c[q>>2]|0)+((_(c[p>>2]|0,b[(c[z>>2]|0)+(c[A>>2]<<1)>>1]|0)|0)<<2)|0;c[E>>2]=k+((_(c[y>>2]|0,c[x>>2]|0)|0)<<2);c[w>>2]=_(c[p>>2]|0,(b[(c[z>>2]|0)+((c[A>>2]|0)+1<<1)>>1]|0)-(b[(c[z>>2]|0)+(c[A>>2]<<1)>>1]|0)|0)|0;if((c[w>>2]|0)>8){c[B>>2]=0;while(1){if((c[B>>2]|0)>=(c[w>>2]|0))break;g[F>>2]=+g[(c[E>>2]|0)+(c[B>>2]<<2)>>2]*+g[(c[E>>2]|0)+(c[B>>2]<<2)>>2]*+(c[w>>2]|0);if(+g[F>>2]<.25)c[C>>2]=(c[C>>2]|0)+1;if(+g[F>>2]<.0625){k=C+4|0;c[k>>2]=(c[k>>2]|0)+1}if(+g[F>>2]<.015625){k=C+8|0;c[k>>2]=(c[k>>2]|0)+1}c[B>>2]=(c[B>>2]|0)+1}if((c[A>>2]|0)>((c[(c[o>>2]|0)+8>>2]|0)-4|0)){k=Ha((c[C+4>>2]|0)+(c[C>>2]|0)<<5,c[w>>2]|0)|0;c[K>>2]=(c[K>>2]|0)+k}c[D>>2]=((c[C+8>>2]<<1|0)>=(c[w>>2]|0)&1)+((c[C+4>>2]<<1|0)>=(c[w>>2]|0)&1)+((c[C>>2]<<1|0)>=(c[w>>2]|0)&1);c[M>>2]=(c[M>>2]|0)+(c[D>>2]<<8);c[L>>2]=(c[L>>2]|0)+1}c[A>>2]=(c[A>>2]|0)+1}k=(c[y>>2]|0)+1|0;c[y>>2]=k}while((k|0)<(c[v>>2]|0));do if(c[t>>2]|0){if(c[K>>2]|0)c[K>>2]=Ha(c[K>>2]|0,_(c[v>>2]|0,4-(c[(c[o>>2]|0)+8>>2]|0)+(c[u>>2]|0)|0)|0)|0;c[c[r>>2]>>2]=(c[c[r>>2]>>2]|0)+(c[K>>2]|0)>>1;c[K>>2]=c[c[r>>2]>>2];if((c[c[s>>2]>>2]|0)!=2){if(!(c[c[s>>2]>>2]|0))c[K>>2]=(c[K>>2]|0)-4}else c[K>>2]=(c[K>>2]|0)+4;if((c[K>>2]|0)>22){c[c[s>>2]>>2]=2;break}o=c[s>>2]|0;if((c[K>>2]|0)>18){c[o>>2]=1;break}else{c[o>>2]=0;break}}while(0);c[M>>2]=Ha(c[M>>2]|0,c[L>>2]|0)|0;c[M>>2]=(c[M>>2]|0)+(c[c[H>>2]>>2]|0)>>1;c[c[H>>2]>>2]=c[M>>2];c[M>>2]=((c[M>>2]|0)*3|0)+((3-(c[I>>2]|0)<<7)+64)+2>>2;do if((c[M>>2]|0)>=80){if((c[M>>2]|0)<256){c[J>>2]=2;break}if((c[M>>2]|0)<384){c[J>>2]=1;break}else{c[J>>2]=0;break}}else c[J>>2]=3;while(0);c[G>>2]=c[J>>2];M=c[G>>2]|0;i=N;return M|0}function Ja(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;e=n+24|0;f=n+20|0;h=n+16|0;j=n+12|0;k=n+8|0;l=n+4|0;m=n;c[e>>2]=a;c[f>>2]=b;c[h>>2]=d;c[f>>2]=c[f>>2]>>1;c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[h>>2]|0))break;c[k>>2]=0;while(1){if((c[k>>2]|0)>=(c[f>>2]|0))break;d=_(c[h>>2]<<1,c[k>>2]|0)|0;g[l>>2]=+g[(c[e>>2]|0)+(d+(c[j>>2]|0)<<2)>>2]*.7071067690849304;d=_(c[h>>2]|0,(c[k>>2]<<1)+1|0)|0;g[m>>2]=+g[(c[e>>2]|0)+(d+(c[j>>2]|0)<<2)>>2]*.7071067690849304;d=_(c[h>>2]<<1,c[k>>2]|0)|0;g[(c[e>>2]|0)+(d+(c[j>>2]|0)<<2)>>2]=+g[l>>2]+ +g[m>>2];d=_(c[h>>2]|0,(c[k>>2]<<1)+1|0)|0;g[(c[e>>2]|0)+(d+(c[j>>2]|0)<<2)>>2]=+g[l>>2]-+g[m>>2];c[k>>2]=(c[k>>2]|0)+1}c[j>>2]=(c[j>>2]|0)+1}i=n;return}function Ka(e,f,h,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A){e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;s=s|0;t=t|0;u=u|0;v=v|0;w=w|0;x=x|0;y=y|0;z=z|0;A=A|0;var B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ja=0,ka=0,la=0,ma=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0;xa=i;i=i+256|0;za=xa+240|0;B=xa+236|0;M=xa+232|0;O=xa+228|0;P=xa+224|0;Q=xa+220|0;R=xa+216|0;Aa=xa+212|0;S=xa+208|0;Ba=xa+204|0;C=xa+200|0;D=xa+196|0;E=xa+192|0;F=xa+188|0;G=xa+184|0;H=xa+180|0;I=xa+176|0;J=xa+172|0;K=xa+168|0;L=xa+164|0;ya=xa+160|0;ga=xa+156|0;qa=xa+152|0;ba=xa+148|0;ma=xa+144|0;oa=xa+140|0;la=xa+136|0;T=xa+132|0;V=xa+128|0;ka=xa+124|0;ua=xa+120|0;U=xa+116|0;pa=xa+112|0;ra=xa+108|0;$=xa+64|0;N=xa+60|0;sa=xa+56|0;Z=xa+52|0;W=xa+48|0;aa=xa+44|0;ca=xa+40|0;X=xa+36|0;Y=xa+32|0;ta=xa+28|0;va=xa+24|0;wa=xa+20|0;ja=xa+16|0;fa=xa+12|0;da=xa+8|0;ea=xa+4|0;ha=xa;c[za>>2]=e;c[B>>2]=f;c[M>>2]=h;c[O>>2]=j;c[P>>2]=k;c[Q>>2]=l;c[R>>2]=m;c[Aa>>2]=n;c[S>>2]=o;c[Ba>>2]=p;c[C>>2]=q;c[D>>2]=r;c[E>>2]=s;c[F>>2]=t;c[G>>2]=u;c[H>>2]=v;c[I>>2]=w;c[J>>2]=x;c[K>>2]=y;c[L>>2]=z;c[ya>>2]=A;c[ba>>2]=c[(c[B>>2]|0)+32>>2];c[ua>>2]=1;c[U>>2]=c[Q>>2]|0?2:1;c[ra>>2]=((c[za>>2]|0)!=0^1)&1;c[V>>2]=1<<c[J>>2];c[T>>2]=c[Ba>>2]|0?c[V>>2]|0:1;c[pa>>2]=_(c[V>>2]|0,b[(c[ba>>2]|0)+(c[M>>2]<<1)>>1]|0)|0;t=_(c[V>>2]|0,b[(c[ba>>2]|0)+((c[(c[B>>2]|0)+8>>2]|0)-1<<1)>>1]|0)|0;t=_(c[U>>2]|0,t-(c[pa>>2]|0)|0)|0;c[N>>2]=ia()|0;u=i;i=i+((1*(t<<2)|0)+15&-16)|0;c[ma>>2]=u;u=(c[ma>>2]|0)+((_(c[V>>2]|0,b[(c[ba>>2]|0)+((c[(c[B>>2]|0)+8>>2]|0)-1<<1)>>1]|0)|0)<<2)|0;c[oa>>2]=u+(0-(c[pa>>2]|0)<<2);c[la>>2]=(c[P>>2]|0)+((_(c[V>>2]|0,b[(c[ba>>2]|0)+((c[(c[B>>2]|0)+8>>2]|0)-1<<1)>>1]|0)|0)<<2);c[ka>>2]=0;c[$+32>>2]=c[Aa>>2];c[$+24>>2]=c[I>>2];c[$>>2]=c[za>>2];c[$+12>>2]=c[E>>2];c[$+4>>2]=c[B>>2];c[$+36>>2]=c[c[L>>2]>>2];c[$+16>>2]=c[C>>2];c[$+40>>2]=c[ya>>2];c[ga>>2]=c[M>>2];while(1){if((c[ga>>2]|0)>=(c[O>>2]|0))break;c[ca>>2]=-1;c[ta>>2]=0;c[$+8>>2]=c[ga>>2];c[ja>>2]=(c[ga>>2]|0)==((c[O>>2]|0)-1|0)&1;c[X>>2]=(c[P>>2]|0)+((_(c[V>>2]|0,b[(c[ba>>2]|0)+(c[ga>>2]<<1)>>1]|0)|0)<<2);if(c[Q>>2]|0)c[Y>>2]=(c[Q>>2]|0)+((_(c[V>>2]|0,b[(c[ba>>2]|0)+(c[ga>>2]<<1)>>1]|0)|0)<<2);else c[Y>>2]=0;Ba=_(c[V>>2]|0,b[(c[ba>>2]|0)+((c[ga>>2]|0)+1<<1)>>1]|0)|0;c[W>>2]=Ba-(_(c[V>>2]|0,b[(c[ba>>2]|0)+(c[ga>>2]<<1)>>1]|0)|0);c[sa>>2]=Xb(c[I>>2]|0)|0;if((c[ga>>2]|0)!=(c[M>>2]|0))c[H>>2]=(c[H>>2]|0)-(c[sa>>2]|0);c[qa>>2]=(c[G>>2]|0)-(c[sa>>2]|0)-1;c[$+28>>2]=c[qa>>2];if((c[ga>>2]|0)<=((c[K>>2]|0)-1|0)){if(3<((c[K>>2]|0)-(c[ga>>2]|0)|0))x=3;else x=(c[K>>2]|0)-(c[ga>>2]|0)|0;c[aa>>2]=La(c[H>>2]|0,x)|0;if(((c[qa>>2]|0)+1|0)<((c[(c[S>>2]|0)+(c[ga>>2]<<2)>>2]|0)+(c[aa>>2]|0)|0))x=(c[qa>>2]|0)+1|0;else x=(c[(c[S>>2]|0)+(c[ga>>2]<<2)>>2]|0)+(c[aa>>2]|0)|0;do if(16383>=(x|0))if(((c[qa>>2]|0)+1|0)<((c[(c[S>>2]|0)+(c[ga>>2]<<2)>>2]|0)+(c[aa>>2]|0)|0)){x=(c[qa>>2]|0)+1|0;break}else{x=(c[(c[S>>2]|0)+(c[ga>>2]<<2)>>2]|0)+(c[aa>>2]|0)|0;break}else x=16383;while(0);do if(0<=(x|0)){if(((c[qa>>2]|0)+1|0)<((c[(c[S>>2]|0)+(c[ga>>2]<<2)>>2]|0)+(c[aa>>2]|0)|0))x=(c[qa>>2]|0)+1|0;else x=(c[(c[S>>2]|0)+(c[ga>>2]<<2)>>2]|0)+(c[aa>>2]|0)|0;if(16383>=(x|0))if(((c[qa>>2]|0)+1|0)<((c[(c[S>>2]|0)+(c[ga>>2]<<2)>>2]|0)+(c[aa>>2]|0)|0)){x=(c[qa>>2]|0)+1|0;break}else{x=(c[(c[S>>2]|0)+(c[ga>>2]<<2)>>2]|0)+(c[aa>>2]|0)|0;break}else x=16383}else x=0;while(0);c[Z>>2]=x}else c[Z>>2]=0;if((c[ra>>2]|0?(Ba=_(c[V>>2]|0,b[(c[ba>>2]|0)+(c[ga>>2]<<1)>>1]|0)|0,(Ba-(c[W>>2]|0)|0)>=(_(c[V>>2]|0,b[(c[ba>>2]|0)+(c[M>>2]<<1)>>1]|0)|0)):0)?(c[ua>>2]|0)!=0|(c[ka>>2]|0)==0:0)c[ka>>2]=c[ga>>2];c[ta>>2]=c[(c[F>>2]|0)+(c[ga>>2]<<2)>>2];c[$+20>>2]=c[ta>>2];if((c[ga>>2]|0)>=(c[(c[B>>2]|0)+12>>2]|0)){c[X>>2]=c[ma>>2];if(c[Q>>2]|0)c[Y>>2]=c[ma>>2];c[la>>2]=0}if((c[ga>>2]|0)==((c[O>>2]|0)-1|0))c[la>>2]=0;if(c[ka>>2]|0?(c[C>>2]|0)!=3|(c[T>>2]|0)>1|(c[ta>>2]|0)<0:0){Ba=_(c[V>>2]|0,b[(c[ba>>2]|0)+(c[ka>>2]<<1)>>1]|0)|0;if(0>(Ba-(c[pa>>2]|0)-(c[W>>2]|0)|0))x=0;else{x=_(c[V>>2]|0,b[(c[ba>>2]|0)+(c[ka>>2]<<1)>>1]|0)|0;x=x-(c[pa>>2]|0)-(c[W>>2]|0)|0}c[ca>>2]=x;c[fa>>2]=c[ka>>2];do{Aa=c[V>>2]|0;Ba=(c[fa>>2]|0)+-1|0;c[fa>>2]=Ba;Ba=_(Aa,b[(c[ba>>2]|0)+(Ba<<1)>>1]|0)|0}while((Ba|0)>((c[ca>>2]|0)+(c[pa>>2]|0)|0));c[da>>2]=(c[ka>>2]|0)-1;do{Aa=c[V>>2]|0;Ba=(c[da>>2]|0)+1|0;c[da>>2]=Ba;Ba=_(Aa,b[(c[ba>>2]|0)+(Ba<<1)>>1]|0)|0}while((Ba|0)<((c[ca>>2]|0)+(c[pa>>2]|0)+(c[W>>2]|0)|0));c[wa>>2]=0;c[va>>2]=0;c[ea>>2]=c[fa>>2];do{Ba=(_(c[ea>>2]|0,c[U>>2]|0)|0)+0|0;c[va>>2]=c[va>>2]|d[(c[R>>2]|0)+Ba>>0];Ba=_(c[ea>>2]|0,c[U>>2]|0)|0;c[wa>>2]=c[wa>>2]|d[(c[R>>2]|0)+(Ba+(c[U>>2]|0)-1)>>0];Ba=(c[ea>>2]|0)+1|0;c[ea>>2]=Ba}while((Ba|0)<(c[da>>2]|0))}else{Ba=(1<<c[T>>2])-1|0;c[wa>>2]=Ba;c[va>>2]=Ba}a:do if((c[D>>2]|0?(c[ga>>2]|0)==(c[E>>2]|0):0)?(c[D>>2]=0,c[ra>>2]|0):0){c[ha>>2]=0;while(1){Ba=_(c[V>>2]|0,b[(c[ba>>2]|0)+(c[ga>>2]<<1)>>1]|0)|0;if((c[ha>>2]|0)>=(Ba-(c[pa>>2]|0)|0))break a;g[(c[ma>>2]|0)+(c[ha>>2]<<2)>>2]=(+g[(c[ma>>2]|0)+(c[ha>>2]<<2)>>2]+ +g[(c[oa>>2]|0)+(c[ha>>2]<<2)>>2])*.5;c[ha>>2]=(c[ha>>2]|0)+1}}while(0);if(c[D>>2]|0){if((c[ca>>2]|0)!=-1)x=(c[ma>>2]|0)+(c[ca>>2]<<2)|0;else x=0;if(c[ja>>2]|0)k=0;else{k=(c[ma>>2]|0)+((_(c[V>>2]|0,b[(c[ba>>2]|0)+(c[ga>>2]<<1)>>1]|0)|0)<<2)|0;k=k+(0-(c[pa>>2]|0)<<2)|0}c[va>>2]=Ma($,c[X>>2]|0,c[W>>2]|0,(c[Z>>2]|0)/2|0,c[T>>2]|0,x,c[J>>2]|0,k,1.0,c[la>>2]|0,c[va>>2]|0)|0;if((c[ca>>2]|0)!=-1)x=(c[oa>>2]|0)+(c[ca>>2]<<2)|0;else x=0;if(c[ja>>2]|0)k=0;else{k=(c[oa>>2]|0)+((_(c[V>>2]|0,b[(c[ba>>2]|0)+(c[ga>>2]<<1)>>1]|0)|0)<<2)|0;k=k+(0-(c[pa>>2]|0)<<2)|0}c[wa>>2]=Ma($,c[Y>>2]|0,c[W>>2]|0,(c[Z>>2]|0)/2|0,c[T>>2]|0,x,c[J>>2]|0,k,1.0,c[la>>2]|0,c[wa>>2]|0)|0}else{l=c[X>>2]|0;if(c[Y>>2]|0){if((c[ca>>2]|0)!=-1)x=(c[ma>>2]|0)+(c[ca>>2]<<2)|0;else x=0;if(c[ja>>2]|0)k=0;else{k=(c[ma>>2]|0)+((_(c[V>>2]|0,b[(c[ba>>2]|0)+(c[ga>>2]<<1)>>1]|0)|0)<<2)|0;k=k+(0-(c[pa>>2]|0)<<2)|0}c[va>>2]=Na($,l,c[Y>>2]|0,c[W>>2]|0,c[Z>>2]|0,c[T>>2]|0,x,c[J>>2]|0,k,c[la>>2]|0,c[va>>2]|c[wa>>2])|0}else{if((c[ca>>2]|0)!=-1)x=(c[ma>>2]|0)+(c[ca>>2]<<2)|0;else x=0;if(c[ja>>2]|0)k=0;else{k=(c[ma>>2]|0)+((_(c[V>>2]|0,b[(c[ba>>2]|0)+(c[ga>>2]<<1)>>1]|0)|0)<<2)|0;k=k+(0-(c[pa>>2]|0)<<2)|0}c[va>>2]=Ma($,l,c[W>>2]|0,c[Z>>2]|0,c[T>>2]|0,x,c[J>>2]|0,k,1.0,c[la>>2]|0,c[va>>2]|c[wa>>2])|0}c[wa>>2]=c[va>>2]}Ba=(_(c[ga>>2]|0,c[U>>2]|0)|0)+0|0;a[(c[R>>2]|0)+Ba>>0]=c[va>>2];Ba=_(c[ga>>2]|0,c[U>>2]|0)|0;a[(c[R>>2]|0)+(Ba+(c[U>>2]|0)-1)>>0]=c[wa>>2];c[H>>2]=(c[H>>2]|0)+((c[(c[S>>2]|0)+(c[ga>>2]<<2)>>2]|0)+(c[sa>>2]|0));c[ua>>2]=(c[Z>>2]|0)>(c[W>>2]<<3|0)&1;c[ga>>2]=(c[ga>>2]|0)+1}c[c[L>>2]>>2]=c[$+36>>2];na(c[N>>2]|0);i=xa;return}function La(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f+4|0;d=f;c[e>>2]=a;c[d>>2]=b;i=f;return (c[e>>2]|0)/(c[d>>2]|0)|0|0}function Ma(a,b,e,f,h,j,k,l,m,n,o){a=a|0;b=b|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;m=+m;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,P=0,Q=0;Q=i;i=i+112|0;p=Q+100|0;q=Q+96|0;t=Q+92|0;u=Q+88|0;v=Q+84|0;w=Q+80|0;x=Q+76|0;y=Q+72|0;z=Q+68|0;A=Q+64|0;r=Q+60|0;s=Q+56|0;C=Q+52|0;D=Q+48|0;E=Q+44|0;B=Q+40|0;P=Q+36|0;L=Q+32|0;J=Q+28|0;F=Q+24|0;M=Q+20|0;I=Q+16|0;G=Q+12|0;N=Q+8|0;H=Q+4|0;K=Q;c[q>>2]=a;c[t>>2]=b;c[u>>2]=e;c[v>>2]=f;c[w>>2]=h;c[x>>2]=j;c[y>>2]=k;c[z>>2]=l;g[A>>2]=m;c[r>>2]=n;c[s>>2]=o;c[C>>2]=c[u>>2];c[D>>2]=c[u>>2];c[B>>2]=c[w>>2];c[P>>2]=0;c[L>>2]=0;c[F>>2]=0;c[M>>2]=((c[c[q>>2]>>2]|0)!=0^1)&1;c[G>>2]=c[c[q>>2]>>2];c[N>>2]=c[(c[q>>2]|0)+20>>2];c[J>>2]=(c[B>>2]|0)==1&1;c[D>>2]=Ha(c[D>>2]|0,c[w>>2]|0)|0;if((c[u>>2]|0)==1){c[p>>2]=Oa(c[q>>2]|0,c[t>>2]|0,0,c[v>>2]|0,c[z>>2]|0)|0;P=c[p>>2]|0;i=Q;return P|0}if((c[N>>2]|0)>0)c[L>>2]=c[N>>2];do if((c[r>>2]|0)!=0&(c[x>>2]|0)!=0){if((c[L>>2]|0)==0?!((c[D>>2]&1|0)==0&(c[N>>2]|0)<0|(c[B>>2]|0)>1):0)break;pj(c[r>>2]|0,c[x>>2]|0,(c[u>>2]<<2)+0|0)|0;c[x>>2]=c[r>>2]}while(0);c[I>>2]=0;while(1){if((c[I>>2]|0)>=(c[L>>2]|0))break;if(c[G>>2]|0)Ja(c[t>>2]|0,c[u>>2]>>c[I>>2],1<<c[I>>2]);if(c[x>>2]|0)Ja(c[x>>2]|0,c[u>>2]>>c[I>>2],1<<c[I>>2]);c[s>>2]=d[25200+(c[s>>2]&15)>>0]|0|(d[25200+(c[s>>2]>>4)>>0]|0)<<2;c[I>>2]=(c[I>>2]|0)+1}c[w>>2]=c[w>>2]>>c[L>>2];c[D>>2]=c[D>>2]<<c[L>>2];while(1){if(!((c[D>>2]&1|0)==0?(c[N>>2]|0)<0:0))break;if(c[G>>2]|0)Ja(c[t>>2]|0,c[D>>2]|0,c[w>>2]|0);if(c[x>>2]|0)Ja(c[x>>2]|0,c[D>>2]|0,c[w>>2]|0);c[s>>2]=c[s>>2]|c[s>>2]<<c[w>>2];c[w>>2]=c[w>>2]<<1;c[D>>2]=c[D>>2]>>1;c[P>>2]=(c[P>>2]|0)+1;c[N>>2]=(c[N>>2]|0)+1}c[B>>2]=c[w>>2];c[E>>2]=c[D>>2];if((c[B>>2]|0)>1){if(c[G>>2]|0)Pa(c[t>>2]|0,c[D>>2]>>c[L>>2],c[B>>2]<<c[L>>2],c[J>>2]|0);if(c[x>>2]|0)Pa(c[x>>2]|0,c[D>>2]>>c[L>>2],c[B>>2]<<c[L>>2],c[J>>2]|0)}c[F>>2]=Qa(c[q>>2]|0,c[t>>2]|0,c[u>>2]|0,c[v>>2]|0,c[w>>2]|0,c[x>>2]|0,c[y>>2]|0,+g[A>>2],c[s>>2]|0)|0;if(c[M>>2]|0){if((c[B>>2]|0)>1)Ra(c[t>>2]|0,c[D>>2]>>c[L>>2],c[B>>2]<<c[L>>2],c[J>>2]|0);c[D>>2]=c[E>>2];c[w>>2]=c[B>>2];c[I>>2]=0;while(1){if((c[I>>2]|0)>=(c[P>>2]|0))break;c[w>>2]=c[w>>2]>>1;c[D>>2]=c[D>>2]<<1;c[F>>2]=c[F>>2]|(c[F>>2]|0)>>>(c[w>>2]|0);Ja(c[t>>2]|0,c[D>>2]|0,c[w>>2]|0);c[I>>2]=(c[I>>2]|0)+1}c[I>>2]=0;while(1){if((c[I>>2]|0)>=(c[L>>2]|0))break;c[F>>2]=d[25216+(c[F>>2]|0)>>0];Ja(c[t>>2]|0,c[C>>2]>>c[I>>2],1<<c[I>>2]);c[I>>2]=(c[I>>2]|0)+1}c[w>>2]=c[w>>2]<<c[L>>2];a:do if(c[z>>2]|0){g[K>>2]=+O(+(+(c[C>>2]|0)));c[H>>2]=0;while(1){if((c[H>>2]|0)>=(c[C>>2]|0))break a;g[(c[z>>2]|0)+(c[H>>2]<<2)>>2]=+g[K>>2]*+g[(c[t>>2]|0)+(c[H>>2]<<2)>>2];c[H>>2]=(c[H>>2]|0)+1}}while(0);c[F>>2]=c[F>>2]&(1<<c[w>>2])-1}c[p>>2]=c[F>>2];P=c[p>>2]|0;i=Q;return P|0}function Na(a,b,d,e,f,h,j,k,l,m,n){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0;X=i;i=i+160|0;C=X+156|0;D=X+152|0;G=X+148|0;H=X+144|0;I=X+140|0;A=X+136|0;J=X+132|0;K=X+128|0;L=X+124|0;M=X+120|0;E=X+116|0;F=X+112|0;r=X+108|0;s=X+104|0;O=X+100|0;S=X+96|0;W=X+92|0;N=X+88|0;U=X+84|0;R=X+80|0;V=X+76|0;z=X+72|0;P=X+68|0;B=X+64|0;u=X+40|0;t=X+36|0;q=X+32|0;p=X+28|0;o=X+24|0;v=X+20|0;x=X+16|0;y=X+12|0;w=X+8|0;T=X+4|0;Q=X;c[D>>2]=a;c[G>>2]=b;c[H>>2]=d;c[I>>2]=e;c[A>>2]=f;c[J>>2]=h;c[K>>2]=j;c[L>>2]=k;c[M>>2]=l;c[E>>2]=m;c[F>>2]=n;c[r>>2]=0;c[s>>2]=0;c[O>>2]=0;g[S>>2]=0.0;g[W>>2]=0.0;c[N>>2]=0;c[U>>2]=((c[c[D>>2]>>2]|0)!=0^1)&1;c[q>>2]=c[c[D>>2]>>2];c[p>>2]=c[(c[D>>2]|0)+24>>2];if((c[I>>2]|0)==1){c[C>>2]=Oa(c[D>>2]|0,c[G>>2]|0,c[H>>2]|0,c[A>>2]|0,c[M>>2]|0)|0;W=c[C>>2]|0;i=X;return W|0}c[t>>2]=c[F>>2];Sa(c[D>>2]|0,u,c[G>>2]|0,c[H>>2]|0,c[I>>2]|0,A,c[J>>2]|0,c[J>>2]|0,c[L>>2]|0,1,F);c[O>>2]=c[u>>2];c[r>>2]=c[u+4>>2];c[s>>2]=c[u+8>>2];c[z>>2]=c[u+12>>2];c[P>>2]=c[u+16>>2];c[B>>2]=c[u+20>>2];g[S>>2]=+(c[r>>2]|0)*.000030517578125;g[W>>2]=+(c[s>>2]|0)*.000030517578125;do if((c[I>>2]|0)==2){c[v>>2]=0;c[R>>2]=c[A>>2];c[V>>2]=0;c[V>>2]=(c[P>>2]|0)!=0&(c[P>>2]|0)!=16384?8:0;c[R>>2]=(c[R>>2]|0)-(c[V>>2]|0);c[o>>2]=(c[P>>2]|0)>8192&1;T=(c[D>>2]|0)+28|0;c[T>>2]=(c[T>>2]|0)-((c[B>>2]|0)+(c[V>>2]|0));c[x>>2]=c[o>>2]|0?c[H>>2]|0:c[G>>2]|0;c[y>>2]=c[o>>2]|0?c[G>>2]|0:c[H>>2]|0;do if(c[V>>2]|0)if(c[q>>2]|0){c[v>>2]=+g[c[x>>2]>>2]*+g[(c[y>>2]|0)+4>>2]-+g[(c[x>>2]|0)+4>>2]*+g[c[y>>2]>>2]<0.0&1;sc(c[p>>2]|0,c[v>>2]|0,1);break}else{c[v>>2]=gc(c[p>>2]|0,1)|0;break}while(0);c[v>>2]=1-(c[v>>2]<<1);c[N>>2]=Ma(c[D>>2]|0,c[x>>2]|0,c[I>>2]|0,c[R>>2]|0,c[J>>2]|0,c[K>>2]|0,c[L>>2]|0,c[M>>2]|0,1.0,c[E>>2]|0,c[t>>2]|0)|0;g[c[y>>2]>>2]=+(0-(c[v>>2]|0)|0)*+g[(c[x>>2]|0)+4>>2];g[(c[y>>2]|0)+4>>2]=+(c[v>>2]|0)*+g[c[x>>2]>>2];if(c[U>>2]|0){g[c[G>>2]>>2]=+g[S>>2]*+g[c[G>>2]>>2];g[(c[G>>2]|0)+4>>2]=+g[S>>2]*+g[(c[G>>2]|0)+4>>2];g[c[H>>2]>>2]=+g[W>>2]*+g[c[H>>2]>>2];g[(c[H>>2]|0)+4>>2]=+g[W>>2]*+g[(c[H>>2]|0)+4>>2];g[w>>2]=+g[c[G>>2]>>2];g[c[G>>2]>>2]=+g[w>>2]-+g[c[H>>2]>>2];g[c[H>>2]>>2]=+g[w>>2]+ +g[c[H>>2]>>2];g[w>>2]=+g[(c[G>>2]|0)+4>>2];g[(c[G>>2]|0)+4>>2]=+g[w>>2]-+g[(c[H>>2]|0)+4>>2];g[(c[H>>2]|0)+4>>2]=+g[w>>2]+ +g[(c[H>>2]|0)+4>>2]}}else{h=c[A>>2]|0;if((c[A>>2]|0)>=(((c[A>>2]|0)-(c[z>>2]|0)|0)/2|0|0))h=(h-(c[z>>2]|0)|0)/2|0;if(0<=(h|0)){h=c[A>>2]|0;if((c[A>>2]|0)>=(((c[A>>2]|0)-(c[z>>2]|0)|0)/2|0|0))h=(h-(c[z>>2]|0)|0)/2|0}else h=0;c[R>>2]=h;c[V>>2]=(c[A>>2]|0)-(c[R>>2]|0);h=(c[D>>2]|0)+28|0;c[h>>2]=(c[h>>2]|0)-(c[B>>2]|0);c[T>>2]=c[(c[D>>2]|0)+28>>2];h=c[D>>2]|0;if((c[R>>2]|0)>=(c[V>>2]|0)){c[N>>2]=Ma(h,c[G>>2]|0,c[I>>2]|0,c[R>>2]|0,c[J>>2]|0,c[K>>2]|0,c[L>>2]|0,c[M>>2]|0,1.0,c[E>>2]|0,c[F>>2]|0)|0;c[T>>2]=(c[R>>2]|0)-((c[T>>2]|0)-(c[(c[D>>2]|0)+28>>2]|0));if((c[T>>2]|0)>24&(c[P>>2]|0)!=0)c[V>>2]=(c[V>>2]|0)+((c[T>>2]|0)-24);W=Ma(c[D>>2]|0,c[H>>2]|0,c[I>>2]|0,c[V>>2]|0,c[J>>2]|0,0,c[L>>2]|0,0,+g[W>>2],0,c[F>>2]>>c[J>>2])|0;c[N>>2]=c[N>>2]|W;break}else{c[N>>2]=Ma(h,c[H>>2]|0,c[I>>2]|0,c[V>>2]|0,c[J>>2]|0,0,c[L>>2]|0,0,+g[W>>2],0,c[F>>2]>>c[J>>2])|0;c[T>>2]=(c[V>>2]|0)-((c[T>>2]|0)-(c[(c[D>>2]|0)+28>>2]|0));if((c[T>>2]|0)>24&(c[P>>2]|0)!=16384)c[R>>2]=(c[R>>2]|0)+((c[T>>2]|0)-24);W=Ma(c[D>>2]|0,c[G>>2]|0,c[I>>2]|0,c[R>>2]|0,c[J>>2]|0,c[K>>2]|0,c[L>>2]|0,c[M>>2]|0,1.0,c[E>>2]|0,c[F>>2]|0)|0;c[N>>2]=c[N>>2]|W;break}}while(0);a:do if(c[U>>2]|0){if((c[I>>2]|0)!=2)$a(c[G>>2]|0,c[H>>2]|0,+g[S>>2],c[I>>2]|0,c[(c[D>>2]|0)+40>>2]|0);if(c[O>>2]|0){c[Q>>2]=0;while(1){if((c[Q>>2]|0)>=(c[I>>2]|0))break a;g[(c[H>>2]|0)+(c[Q>>2]<<2)>>2]=-+g[(c[H>>2]|0)+(c[Q>>2]<<2)>>2];c[Q>>2]=(c[Q>>2]|0)+1}}}while(0);c[C>>2]=c[N>>2];W=c[C>>2]|0;i=X;return W|0}function Oa(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=i;i=i+48|0;h=u+44|0;j=u+40|0;k=u+36|0;l=u+32|0;m=u+28|0;q=u+24|0;n=u+20|0;s=u+16|0;t=u+12|0;p=u+8|0;o=u+4|0;r=u;c[h>>2]=a;c[j>>2]=b;c[k>>2]=d;c[l>>2]=e;c[m>>2]=f;c[q>>2]=((c[c[h>>2]>>2]|0)!=0^1)&1;c[t>>2]=c[j>>2];c[p>>2]=c[c[h>>2]>>2];c[o>>2]=c[(c[h>>2]|0)+24>>2];c[s>>2]=(c[k>>2]|0)!=0&1;c[n>>2]=0;do{c[r>>2]=0;if((c[(c[h>>2]|0)+28>>2]|0)>=8){if(c[p>>2]|0){c[r>>2]=+g[c[t>>2]>>2]<0.0&1;sc(c[o>>2]|0,c[r>>2]|0,1)}else c[r>>2]=gc(c[o>>2]|0,1)|0;f=(c[h>>2]|0)+28|0;c[f>>2]=(c[f>>2]|0)-8;c[l>>2]=(c[l>>2]|0)-8}if(c[q>>2]|0)g[c[t>>2]>>2]=c[r>>2]|0?-1.0:1.0;c[t>>2]=c[k>>2];f=(c[n>>2]|0)+1|0;c[n>>2]=f}while((f|0)<(1+(c[s>>2]|0)|0));if(!(c[m>>2]|0)){i=u;return 1}g[c[m>>2]>>2]=+g[c[j>>2]>>2];i=u;return 1}function Pa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;p=i;i=i+48|0;f=p+32|0;h=p+28|0;j=p+24|0;q=p+20|0;m=p+16|0;n=p+12|0;l=p+8|0;k=p+4|0;o=p;c[f>>2]=a;c[h>>2]=b;c[j>>2]=d;c[q>>2]=e;c[l>>2]=_(c[h>>2]|0,c[j>>2]|0)|0;d=c[l>>2]|0;c[k>>2]=ia()|0;b=i;i=i+((1*(d<<2)|0)+15&-16)|0;if(c[q>>2]|0){c[o>>2]=8+(c[j>>2]<<2)+-8;c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[j>>2]|0))break;c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[h>>2]|0))break;d=_(c[n>>2]|0,c[j>>2]|0)|0;q=_(c[(c[o>>2]|0)+(c[m>>2]<<2)>>2]|0,c[h>>2]|0)|0;g[b+(q+(c[n>>2]|0)<<2)>>2]=+g[(c[f>>2]|0)+(d+(c[m>>2]|0)<<2)>>2];c[n>>2]=(c[n>>2]|0)+1}c[m>>2]=(c[m>>2]|0)+1}o=c[f>>2]|0;n=c[l>>2]|0;n=n<<2;q=0;q=n+q|0;pj(o|0,b|0,q|0)|0;q=c[k>>2]|0;na(q|0);i=p;return}else{c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[j>>2]|0))break;c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[h>>2]|0))break;o=_(c[n>>2]|0,c[j>>2]|0)|0;q=_(c[m>>2]|0,c[h>>2]|0)|0;g[b+(q+(c[n>>2]|0)<<2)>>2]=+g[(c[f>>2]|0)+(o+(c[m>>2]|0)<<2)>>2];c[n>>2]=(c[n>>2]|0)+1}c[m>>2]=(c[m>>2]|0)+1}o=c[f>>2]|0;n=c[l>>2]|0;n=n<<2;q=0;q=n+q|0;pj(o|0,b|0,q|0)|0;q=c[k>>2]|0;na(q|0);i=p;return}}function Qa(a,e,f,h,j,k,l,m,n){a=a|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;m=+m;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0;Y=i;i=i+176|0;G=Y+164|0;H=Y+160|0;U=Y+156|0;D=Y+152|0;V=Y+148|0;I=Y+144|0;J=Y+140|0;W=Y+136|0;K=Y+132|0;Z=Y+128|0;v=Y+124|0;p=Y+120|0;r=Y+116|0;s=Y+112|0;L=Y+108|0;P=Y+104|0;T=Y+100|0;X=Y+96|0;w=Y+92|0;M=Y+88|0;E=Y+84|0;u=Y+80|0;q=Y+76|0;A=Y+72|0;C=Y+68|0;O=Y+64|0;S=Y+60|0;B=Y+56|0;N=Y+52|0;F=Y+48|0;x=Y+24|0;Q=Y+20|0;R=Y+16|0;z=Y+12|0;t=Y+8|0;o=Y+4|0;y=Y;c[G>>2]=a;c[H>>2]=e;c[U>>2]=f;c[D>>2]=h;c[V>>2]=j;c[I>>2]=k;c[J>>2]=l;g[W>>2]=m;c[K>>2]=n;c[r>>2]=0;c[s>>2]=0;c[L>>2]=c[V>>2];g[P>>2]=0.0;g[T>>2]=0.0;c[X>>2]=0;c[w>>2]=((c[c[G>>2]>>2]|0)!=0^1)&1;c[M>>2]=0;c[E>>2]=c[c[G>>2]>>2];c[u>>2]=c[(c[G>>2]|0)+4>>2];c[q>>2]=c[(c[G>>2]|0)+8>>2];c[A>>2]=c[(c[G>>2]|0)+16>>2];c[C>>2]=c[(c[G>>2]|0)+24>>2];k=_((c[J>>2]|0)+1|0,c[(c[u>>2]|0)+8>>2]|0)|0;c[Z>>2]=(c[(c[u>>2]|0)+92+8>>2]|0)+(b[(c[(c[u>>2]|0)+92+4>>2]|0)+(k+(c[q>>2]|0)<<1)>>1]|0);if((c[J>>2]|0)!=-1?((c[U>>2]|0)>2?(c[D>>2]|0)>((d[(c[Z>>2]|0)+(d[c[Z>>2]>>0]|0)>>0]|0)+12|0):0):0){c[Q>>2]=0;c[U>>2]=c[U>>2]>>1;c[M>>2]=(c[H>>2]|0)+(c[U>>2]<<2);c[J>>2]=(c[J>>2]|0)-1;if((c[V>>2]|0)==1)c[K>>2]=c[K>>2]&1|c[K>>2]<<1;c[V>>2]=(c[V>>2]|0)+1>>1;Sa(c[G>>2]|0,x,c[H>>2]|0,c[M>>2]|0,c[U>>2]|0,D,c[V>>2]|0,c[L>>2]|0,c[J>>2]|0,0,K);c[r>>2]=c[x+4>>2];c[s>>2]=c[x+8>>2];c[B>>2]=c[x+12>>2];c[N>>2]=c[x+16>>2];c[F>>2]=c[x+20>>2];g[P>>2]=+(c[r>>2]|0)*.000030517578125;g[T>>2]=+(c[s>>2]|0)*.000030517578125;do if((c[L>>2]|0)>1?c[N>>2]&16383|0:0){j=c[B>>2]|0;if((c[N>>2]|0)>8192){c[B>>2]=(c[B>>2]|0)-(j>>4-(c[J>>2]|0));break}if(0<(j+(c[U>>2]<<3>>5-(c[J>>2]|0))|0))j=0;else j=(c[B>>2]|0)+(c[U>>2]<<3>>5-(c[J>>2]|0))|0;c[B>>2]=j}while(0);j=c[D>>2]|0;if((c[D>>2]|0)>=(((c[D>>2]|0)-(c[B>>2]|0)|0)/2|0|0))j=(j-(c[B>>2]|0)|0)/2|0;if(0<=(j|0)){j=c[D>>2]|0;if((c[D>>2]|0)>=(((c[D>>2]|0)-(c[B>>2]|0)|0)/2|0|0))j=(j-(c[B>>2]|0)|0)/2|0}else j=0;c[O>>2]=j;c[S>>2]=(c[D>>2]|0)-(c[O>>2]|0);Z=(c[G>>2]|0)+28|0;c[Z>>2]=(c[Z>>2]|0)-(c[F>>2]|0);if(c[I>>2]|0)c[Q>>2]=(c[I>>2]|0)+(c[U>>2]<<2);c[R>>2]=c[(c[G>>2]|0)+28>>2];j=c[G>>2]|0;if((c[O>>2]|0)>=(c[S>>2]|0)){c[X>>2]=Qa(j,c[H>>2]|0,c[U>>2]|0,c[O>>2]|0,c[V>>2]|0,c[I>>2]|0,c[J>>2]|0,+g[W>>2]*+g[P>>2],c[K>>2]|0)|0;c[R>>2]=(c[O>>2]|0)-((c[R>>2]|0)-(c[(c[G>>2]|0)+28>>2]|0));if((c[R>>2]|0)>24&(c[N>>2]|0)!=0)c[S>>2]=(c[S>>2]|0)+((c[R>>2]|0)-24);Z=Qa(c[G>>2]|0,c[M>>2]|0,c[U>>2]|0,c[S>>2]|0,c[V>>2]|0,c[Q>>2]|0,c[J>>2]|0,+g[W>>2]*+g[T>>2],c[K>>2]>>c[V>>2])|0;c[X>>2]=c[X>>2]|Z<<(c[L>>2]>>1);Z=c[X>>2]|0;i=Y;return Z|0}else{Z=Qa(j,c[M>>2]|0,c[U>>2]|0,c[S>>2]|0,c[V>>2]|0,c[Q>>2]|0,c[J>>2]|0,+g[W>>2]*+g[T>>2],c[K>>2]>>c[V>>2])|0;c[X>>2]=Z<<(c[L>>2]>>1);c[R>>2]=(c[S>>2]|0)-((c[R>>2]|0)-(c[(c[G>>2]|0)+28>>2]|0));if((c[R>>2]|0)>24&(c[N>>2]|0)!=16384)c[O>>2]=(c[O>>2]|0)+((c[R>>2]|0)-24);Z=Qa(c[G>>2]|0,c[H>>2]|0,c[U>>2]|0,c[O>>2]|0,c[V>>2]|0,c[I>>2]|0,c[J>>2]|0,+g[W>>2]*+g[P>>2],c[K>>2]|0)|0;c[X>>2]=c[X>>2]|Z;Z=c[X>>2]|0;i=Y;return Z|0}}c[v>>2]=Ta(c[u>>2]|0,c[q>>2]|0,c[J>>2]|0,c[D>>2]|0)|0;c[p>>2]=Ua(c[u>>2]|0,c[q>>2]|0,c[J>>2]|0,c[v>>2]|0)|0;Z=(c[G>>2]|0)+28|0;c[Z>>2]=(c[Z>>2]|0)-(c[p>>2]|0);while(1){if(!((c[(c[G>>2]|0)+28>>2]|0)<0?(c[v>>2]|0)>0:0))break;Z=(c[G>>2]|0)+28|0;c[Z>>2]=(c[Z>>2]|0)+(c[p>>2]|0);c[v>>2]=(c[v>>2]|0)+-1;c[p>>2]=Ua(c[u>>2]|0,c[q>>2]|0,c[J>>2]|0,c[v>>2]|0)|0;Z=(c[G>>2]|0)+28|0;c[Z>>2]=(c[Z>>2]|0)-(c[p>>2]|0)}if(c[v>>2]|0){c[z>>2]=Va(c[v>>2]|0)|0;o=c[H>>2]|0;h=c[U>>2]|0;e=c[z>>2]|0;f=c[A>>2]|0;l=c[V>>2]|0;j=c[C>>2]|0;if(c[E>>2]|0){c[X>>2]=md(o,h,e,f,l,j)|0;Z=c[X>>2]|0;i=Y;return Z|0}else{c[X>>2]=rd(o,h,e,f,l,j,+g[W>>2])|0;Z=c[X>>2]|0;i=Y;return Z|0}}if(!(c[w>>2]|0)){Z=c[X>>2]|0;i=Y;return Z|0}c[o>>2]=(1<<c[V>>2])-1;c[K>>2]=c[K>>2]&c[o>>2];if(!(c[K>>2]|0)){oj(c[H>>2]|0,0,c[U>>2]<<2|0)|0;Z=c[X>>2]|0;i=Y;return Z|0}Z=(c[I>>2]|0)==0;c[t>>2]=0;if(Z){while(1){if((c[t>>2]|0)>=(c[U>>2]|0))break;Z=Ba(c[(c[G>>2]|0)+36>>2]|0)|0;c[(c[G>>2]|0)+36>>2]=Z;g[(c[H>>2]|0)+(c[t>>2]<<2)>>2]=+(c[(c[G>>2]|0)+36>>2]>>20|0);c[t>>2]=(c[t>>2]|0)+1}c[X>>2]=c[o>>2]}else{while(1){if((c[t>>2]|0)>=(c[U>>2]|0))break;Z=Ba(c[(c[G>>2]|0)+36>>2]|0)|0;c[(c[G>>2]|0)+36>>2]=Z;g[y>>2]=.00390625;m=+g[y>>2];g[y>>2]=c[(c[G>>2]|0)+36>>2]&32768|0?m:-m;g[(c[H>>2]|0)+(c[t>>2]<<2)>>2]=+g[(c[I>>2]|0)+(c[t>>2]<<2)>>2]+ +g[y>>2];c[t>>2]=(c[t>>2]|0)+1}c[X>>2]=c[K>>2]}td(c[H>>2]|0,c[U>>2]|0,+g[W>>2],c[(c[G>>2]|0)+40>>2]|0);Z=c[X>>2]|0;i=Y;return Z|0}function Ra(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;p=i;i=i+48|0;h=p+32|0;j=p+28|0;k=p+24|0;q=p+20|0;n=p+16|0;o=p+12|0;m=p+8|0;l=p+4|0;f=p;c[h>>2]=a;c[j>>2]=b;c[k>>2]=d;c[q>>2]=e;c[m>>2]=_(c[j>>2]|0,c[k>>2]|0)|0;d=c[m>>2]|0;c[l>>2]=ia()|0;a=i;i=i+((1*(d<<2)|0)+15&-16)|0;if(c[q>>2]|0){c[f>>2]=8+(c[k>>2]<<2)+-8;c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[k>>2]|0))break;c[o>>2]=0;while(1){b=c[n>>2]|0;if((c[o>>2]|0)>=(c[j>>2]|0))break;d=_(c[(c[f>>2]|0)+(b<<2)>>2]|0,c[j>>2]|0)|0;q=_(c[o>>2]|0,c[k>>2]|0)|0;g[a+(q+(c[n>>2]|0)<<2)>>2]=+g[(c[h>>2]|0)+(d+(c[o>>2]|0)<<2)>>2];c[o>>2]=(c[o>>2]|0)+1}c[n>>2]=b+1}o=c[h>>2]|0;n=c[m>>2]|0;n=n<<2;q=0;q=n+q|0;pj(o|0,a|0,q|0)|0;q=c[l>>2]|0;na(q|0);i=p;return}else{c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[k>>2]|0))break;c[o>>2]=0;while(1){b=c[n>>2]|0;if((c[o>>2]|0)>=(c[j>>2]|0))break;f=_(b,c[j>>2]|0)|0;q=_(c[o>>2]|0,c[k>>2]|0)|0;g[a+(q+(c[n>>2]|0)<<2)>>2]=+g[(c[h>>2]|0)+(f+(c[o>>2]|0)<<2)>>2];c[o>>2]=(c[o>>2]|0)+1}c[n>>2]=b+1}o=c[h>>2]|0;n=c[m>>2]|0;n=n<<2;q=0;q=n+q|0;pj(o|0,a|0,q|0)|0;q=c[l>>2]|0;na(q|0);i=p;return}}function Sa(a,d,e,f,h,j,k,l,m,n,o){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,$=0,aa=0,ba=0;Y=i;i=i+160|0;p=Y+148|0;K=Y+144|0;D=Y+140|0;E=Y+136|0;M=Y+132|0;N=Y+128|0;O=Y+124|0;q=Y+120|0;ba=Y+116|0;F=Y+112|0;L=Y+108|0;J=Y+104|0;V=Y+100|0;P=Y+96|0;S=Y+92|0;U=Y+88|0;W=Y+84|0;$=Y+80|0;aa=Y+76|0;X=Y+72|0;T=Y+68|0;R=Y+64|0;I=Y+60|0;H=Y+56|0;Z=Y+52|0;Q=Y+48|0;G=Y+44|0;z=Y+40|0;B=Y+36|0;A=Y+32|0;C=Y+28|0;u=Y+24|0;x=Y+20|0;y=Y+16|0;w=Y+12|0;r=Y+8|0;s=Y+4|0;t=Y;c[p>>2]=a;c[K>>2]=d;c[D>>2]=e;c[E>>2]=f;c[M>>2]=h;c[N>>2]=j;c[O>>2]=k;c[q>>2]=l;c[ba>>2]=m;c[F>>2]=n;c[L>>2]=o;c[V>>2]=0;c[T>>2]=0;c[R>>2]=c[c[p>>2]>>2];c[I>>2]=c[(c[p>>2]|0)+4>>2];c[H>>2]=c[(c[p>>2]|0)+8>>2];c[Z>>2]=c[(c[p>>2]|0)+12>>2];c[Q>>2]=c[(c[p>>2]|0)+24>>2];c[G>>2]=c[(c[p>>2]|0)+32>>2];c[$>>2]=(b[(c[(c[I>>2]|0)+56>>2]|0)+(c[H>>2]<<1)>>1]|0)+(c[ba>>2]<<3);c[aa>>2]=(c[$>>2]>>1)-((c[F>>2]|0?(c[M>>2]|0)==2:0)?16:4);c[J>>2]=Wa(c[M>>2]|0,c[c[N>>2]>>2]|0,c[aa>>2]|0,c[$>>2]|0,c[F>>2]|0)|0;if(c[F>>2]|0?(c[H>>2]|0)>=(c[Z>>2]|0):0)c[J>>2]=1;if(c[R>>2]|0)c[V>>2]=vd(c[D>>2]|0,c[E>>2]|0,c[F>>2]|0,c[M>>2]|0,c[(c[p>>2]|0)+40>>2]|0)|0;c[X>>2]=Xb(c[Q>>2]|0)|0;do if((c[J>>2]|0)!=1){if(c[R>>2]|0)c[V>>2]=(_(c[V>>2]|0,c[J>>2]|0)|0)+8192>>14;do if((c[F>>2]|0)!=0&(c[M>>2]|0)>2){c[z>>2]=3;c[B>>2]=c[V>>2];c[A>>2]=(c[J>>2]|0)/2|0;k=_(c[z>>2]|0,(c[A>>2]|0)+1|0)|0;c[C>>2]=k+(c[A>>2]|0);k=c[Q>>2]|0;if(c[R>>2]|0){if((c[B>>2]|0)<=(c[A>>2]|0))q=_(c[z>>2]|0,c[B>>2]|0)|0;else q=(c[B>>2]|0)-1-(c[A>>2]|0)+(_((c[A>>2]|0)+1|0,c[z>>2]|0)|0)|0;if((c[B>>2]|0)<=(c[A>>2]|0))p=_(c[z>>2]|0,(c[B>>2]|0)+1|0)|0;else p=(c[B>>2]|0)-(c[A>>2]|0)+(_((c[A>>2]|0)+1|0,c[z>>2]|0)|0)|0;jc(k,q,p,c[C>>2]|0);break}c[u>>2]=$b(k,c[C>>2]|0)|0;if((c[u>>2]|0)<(_((c[A>>2]|0)+1|0,c[z>>2]|0)|0))c[B>>2]=(c[u>>2]|0)/(c[z>>2]|0)|0;else c[B>>2]=(c[A>>2]|0)+1+((c[u>>2]|0)-(_((c[A>>2]|0)+1|0,c[z>>2]|0)|0));if((c[B>>2]|0)<=(c[A>>2]|0))q=_(c[z>>2]|0,c[B>>2]|0)|0;else q=(c[B>>2]|0)-1-(c[A>>2]|0)+(_((c[A>>2]|0)+1|0,c[z>>2]|0)|0)|0;if((c[B>>2]|0)<=(c[A>>2]|0))p=_(c[z>>2]|0,(c[B>>2]|0)+1|0)|0;else p=(c[B>>2]|0)-(c[A>>2]|0)+(_((c[A>>2]|0)+1|0,c[z>>2]|0)|0)|0;cc(c[Q>>2]|0,q,p,c[C>>2]|0);c[V>>2]=c[B>>2]}else{if((c[q>>2]|0)>1|(c[F>>2]|0)!=0){p=c[Q>>2]|0;if(c[R>>2]|0){rc(p,c[V>>2]|0,(c[J>>2]|0)+1|0);break}else{c[V>>2]=fc(p,(c[J>>2]|0)+1|0)|0;break}}c[x>>2]=1;c[y>>2]=_((c[J>>2]>>1)+1|0,(c[J>>2]>>1)+1|0)|0;if(!(c[R>>2]|0)){c[r>>2]=0;c[s>>2]=$b(c[Q>>2]|0,c[y>>2]|0)|0;if((c[s>>2]|0)<((_(c[J>>2]>>1,(c[J>>2]>>1)+1|0)|0)>>1|0)){c[V>>2]=((Gc((c[s>>2]<<3)+1|0)|0)-1|0)>>>1;c[x>>2]=(c[V>>2]|0)+1;c[r>>2]=(_(c[V>>2]|0,(c[V>>2]|0)+1|0)|0)>>1}else{ba=(c[J>>2]|0)+1<<1;c[V>>2]=(ba-(Gc(((c[y>>2]|0)-(c[s>>2]|0)-1<<3)+1|0)|0)|0)>>>1;c[x>>2]=(c[J>>2]|0)+1-(c[V>>2]|0);c[r>>2]=(c[y>>2]|0)-((_((c[J>>2]|0)+1-(c[V>>2]|0)|0,(c[J>>2]|0)+2-(c[V>>2]|0)|0)|0)>>1)}cc(c[Q>>2]|0,c[r>>2]|0,(c[r>>2]|0)+(c[x>>2]|0)|0,c[y>>2]|0);break}if((c[V>>2]|0)<=(c[J>>2]>>1|0))p=(c[V>>2]|0)+1|0;else p=(c[J>>2]|0)+1-(c[V>>2]|0)|0;c[x>>2]=p;if((c[V>>2]|0)<=(c[J>>2]>>1|0))p=(_(c[V>>2]|0,(c[V>>2]|0)+1|0)|0)>>1;else p=(c[y>>2]|0)-((_((c[J>>2]|0)+1-(c[V>>2]|0)|0,(c[J>>2]|0)+2-(c[V>>2]|0)|0)|0)>>1)|0;c[w>>2]=p;jc(c[Q>>2]|0,c[w>>2]|0,(c[w>>2]|0)+(c[x>>2]|0)|0,c[y>>2]|0)}while(0);c[V>>2]=Ha(c[V>>2]<<14,c[J>>2]|0)|0;if((c[R>>2]|0)!=0&(c[F>>2]|0)!=0)if(!(c[V>>2]|0)){Xa(c[I>>2]|0,c[D>>2]|0,c[E>>2]|0,c[G>>2]|0,c[H>>2]|0,c[M>>2]|0);break}else{Ya(c[D>>2]|0,c[E>>2]|0,c[M>>2]|0);break}}else if(c[F>>2]|0){if(c[R>>2]|0){c[T>>2]=(c[V>>2]|0)>8192&1;a:do if(c[T>>2]|0){c[t>>2]=0;while(1){if((c[t>>2]|0)>=(c[M>>2]|0))break a;g[(c[E>>2]|0)+(c[t>>2]<<2)>>2]=-+g[(c[E>>2]|0)+(c[t>>2]<<2)>>2];c[t>>2]=(c[t>>2]|0)+1}}while(0);Xa(c[I>>2]|0,c[D>>2]|0,c[E>>2]|0,c[G>>2]|0,c[H>>2]|0,c[M>>2]|0)}do if((c[c[N>>2]>>2]|0)>16?(c[(c[p>>2]|0)+28>>2]|0)>16:0){p=c[Q>>2]|0;if(c[R>>2]|0){pc(p,c[T>>2]|0,2);break}else{c[T>>2]=dc(p,2)|0;break}}else v=60;while(0);if((v|0)==60)c[T>>2]=0;c[V>>2]=0}while(0);ba=Xb(c[Q>>2]|0)|0;c[W>>2]=ba-(c[X>>2]|0);ba=c[N>>2]|0;c[ba>>2]=(c[ba>>2]|0)-(c[W>>2]|0);if(!(c[V>>2]|0)){c[S>>2]=32767;c[U>>2]=0;ba=c[L>>2]|0;c[ba>>2]=c[ba>>2]&(1<<c[O>>2])-1;c[P>>2]=-16384;ba=c[T>>2]|0;aa=c[K>>2]|0;c[aa>>2]=ba;aa=c[S>>2]|0;ba=c[K>>2]|0;ba=ba+4|0;c[ba>>2]=aa;ba=c[U>>2]|0;aa=c[K>>2]|0;aa=aa+8|0;c[aa>>2]=ba;aa=c[P>>2]|0;ba=c[K>>2]|0;ba=ba+12|0;c[ba>>2]=aa;ba=c[V>>2]|0;aa=c[K>>2]|0;aa=aa+16|0;c[aa>>2]=ba;aa=c[W>>2]|0;ba=c[K>>2]|0;ba=ba+20|0;c[ba>>2]=aa;i=Y;return}if((c[V>>2]|0)==16384){c[S>>2]=0;c[U>>2]=32767;ba=c[L>>2]|0;c[ba>>2]=c[ba>>2]&(1<<c[O>>2])-1<<c[O>>2];c[P>>2]=16384;ba=c[T>>2]|0;aa=c[K>>2]|0;c[aa>>2]=ba;aa=c[S>>2]|0;ba=c[K>>2]|0;ba=ba+4|0;c[ba>>2]=aa;ba=c[U>>2]|0;aa=c[K>>2]|0;aa=aa+8|0;c[aa>>2]=ba;aa=c[P>>2]|0;ba=c[K>>2]|0;ba=ba+12|0;c[ba>>2]=aa;ba=c[V>>2]|0;aa=c[K>>2]|0;aa=aa+16|0;c[aa>>2]=ba;aa=c[W>>2]|0;ba=c[K>>2]|0;ba=ba+20|0;c[ba>>2]=aa;i=Y;return}else{c[S>>2]=(Za(c[V>>2]&65535)|0)<<16>>16;c[U>>2]=(Za(16384-(c[V>>2]|0)&65535)|0)<<16>>16;ba=((c[M>>2]|0)-1<<7&65535)<<16>>16;c[P>>2]=16384+(_(ba,((_a(c[U>>2]|0,c[S>>2]|0)|0)&65535)<<16>>16)|0)>>15;ba=c[T>>2]|0;aa=c[K>>2]|0;c[aa>>2]=ba;aa=c[S>>2]|0;ba=c[K>>2]|0;ba=ba+4|0;c[ba>>2]=aa;ba=c[U>>2]|0;aa=c[K>>2]|0;aa=aa+8|0;c[aa>>2]=ba;aa=c[P>>2]|0;ba=c[K>>2]|0;ba=ba+12|0;c[ba>>2]=aa;ba=c[V>>2]|0;aa=c[K>>2]|0;aa=aa+16|0;c[aa>>2]=ba;aa=c[W>>2]|0;ba=c[K>>2]|0;ba=ba+20|0;c[ba>>2]=aa;i=Y;return}}function Ta(a,e,f,g){a=a|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;p=i;i=i+48|0;k=p+36|0;r=p+32|0;q=p+28|0;s=p+24|0;l=p+20|0;h=p+16|0;o=p+12|0;n=p+8|0;m=p+4|0;j=p;c[r>>2]=a;c[q>>2]=e;c[s>>2]=f;c[l>>2]=g;c[s>>2]=(c[s>>2]|0)+1;a=_(c[s>>2]|0,c[(c[r>>2]|0)+8>>2]|0)|0;c[m>>2]=(c[(c[r>>2]|0)+92+8>>2]|0)+(b[(c[(c[r>>2]|0)+92+4>>2]|0)+(a+(c[q>>2]|0)<<1)>>1]|0);c[o>>2]=0;c[n>>2]=d[c[m>>2]>>0];c[l>>2]=(c[l>>2]|0)+-1;c[h>>2]=0;while(1){if((c[h>>2]|0)>=6)break;c[j>>2]=(c[o>>2]|0)+(c[n>>2]|0)+1>>1;f=c[j>>2]|0;if((d[(c[m>>2]|0)+(c[j>>2]|0)>>0]|0)>=(c[l>>2]|0))c[n>>2]=f;else c[o>>2]=f;c[h>>2]=(c[h>>2]|0)+1}if(!(c[o>>2]|0))f=-1;else f=d[(c[m>>2]|0)+(c[o>>2]|0)>>0]|0;if(((c[l>>2]|0)-f|0)<=((d[(c[m>>2]|0)+(c[n>>2]|0)>>0]|0)-(c[l>>2]|0)|0)){c[k>>2]=c[o>>2];s=c[k>>2]|0;i=p;return s|0}else{c[k>>2]=c[n>>2];s=c[k>>2]|0;i=p;return s|0}return 0}function Ua(a,e,f,g){a=a|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0;k=i;i=i+32|0;m=k+16|0;l=k+12|0;n=k+8|0;h=k+4|0;j=k;c[m>>2]=a;c[l>>2]=e;c[n>>2]=f;c[h>>2]=g;c[n>>2]=(c[n>>2]|0)+1;g=_(c[n>>2]|0,c[(c[m>>2]|0)+8>>2]|0)|0;c[j>>2]=(c[(c[m>>2]|0)+92+8>>2]|0)+(b[(c[(c[m>>2]|0)+92+4>>2]|0)+(g+(c[l>>2]|0)<<1)>>1]|0);if(!(c[h>>2]|0)){n=0;i=k;return n|0}n=(d[(c[j>>2]|0)+(c[h>>2]|0)>>0]|0)+1|0;i=k;return n|0}function Va(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;a=c[b>>2]|0;if((c[b>>2]|0)<8){b=a;i=d;return b|0}b=8+(a&7)<<(c[b>>2]>>3)-1;i=d;return b|0}function Wa(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;o=i;i=i+32|0;p=o+28|0;h=o+24|0;j=o+20|0;k=o+16|0;q=o+12|0;n=o+8|0;m=o+4|0;l=o;c[p>>2]=a;c[h>>2]=d;c[j>>2]=e;c[k>>2]=f;c[q>>2]=g;c[l>>2]=(c[p>>2]<<1)-1;if((c[q>>2]|0)!=0&(c[p>>2]|0)==2)c[l>>2]=(c[l>>2]|0)+-1;q=(c[h>>2]|0)+(_(c[l>>2]|0,c[j>>2]|0)|0)|0;c[m>>2]=La(q,c[l>>2]|0)|0;if(((c[h>>2]|0)-(c[k>>2]|0)-32|0)<(c[m>>2]|0))h=(c[h>>2]|0)-(c[k>>2]|0)-32|0;else h=c[m>>2]|0;c[m>>2]=h;c[m>>2]=64<(c[m>>2]|0)?64:c[m>>2]|0;if((c[m>>2]|0)<4){c[n>>2]=1;q=c[n>>2]|0;i=o;return q|0}else{c[n>>2]=b[22328+((c[m>>2]&7)<<1)>>1]>>14-(c[m>>2]>>3);c[n>>2]=(c[n>>2]|0)+1>>1<<1;q=c[n>>2]|0;i=o;return q|0}return 0}function Xa(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;r=i;i=i+64|0;v=r+56|0;j=r+52|0;k=r+48|0;x=r+44|0;y=r+40|0;l=r+36|0;w=r+32|0;o=r+28|0;m=r+24|0;n=r+20|0;u=r+16|0;t=r+12|0;s=r+8|0;q=r+4|0;p=r;c[v>>2]=a;c[j>>2]=b;c[k>>2]=d;c[x>>2]=e;c[y>>2]=f;c[l>>2]=h;c[w>>2]=c[y>>2];g[u>>2]=+g[(c[x>>2]|0)+(c[w>>2]<<2)>>2];g[t>>2]=+g[(c[x>>2]|0)+((c[w>>2]|0)+(c[(c[v>>2]|0)+8>>2]|0)<<2)>>2];g[s>>2]=+O(+(+g[u>>2]*+g[u>>2]+1.0000000036274937e-15+ +g[t>>2]*+g[t>>2]))+1.0000000036274937e-15;g[m>>2]=+g[u>>2]/+g[s>>2];g[n>>2]=+g[t>>2]/+g[s>>2];c[o>>2]=0;while(1){if((c[o>>2]|0)>=(c[l>>2]|0))break;g[p>>2]=+g[(c[j>>2]|0)+(c[o>>2]<<2)>>2];g[q>>2]=+g[(c[k>>2]|0)+(c[o>>2]<<2)>>2];g[(c[j>>2]|0)+(c[o>>2]<<2)>>2]=+g[m>>2]*+g[p>>2]+ +g[n>>2]*+g[q>>2];c[o>>2]=(c[o>>2]|0)+1}i=r;return}function Ya(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;e=m+20|0;f=m+16|0;h=m+12|0;j=m+8|0;l=m+4|0;k=m;c[e>>2]=a;c[f>>2]=b;c[h>>2]=d;c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[h>>2]|0))break;g[k>>2]=+g[(c[e>>2]|0)+(c[j>>2]<<2)>>2]*.7071067690849304;g[l>>2]=+g[(c[f>>2]|0)+(c[j>>2]<<2)>>2]*.7071067690849304;g[(c[e>>2]|0)+(c[j>>2]<<2)>>2]=+g[k>>2]+ +g[l>>2];g[(c[f>>2]|0)+(c[j>>2]<<2)>>2]=+g[l>>2]-+g[k>>2];c[j>>2]=(c[j>>2]|0)+1}i=m;return}function Za(a){a=a|0;var d=0,e=0,f=0,g=0;e=i;i=i+16|0;g=e+6|0;f=e;d=e+4|0;b[g>>1]=a;c[f>>2]=4096+(_(b[g>>1]|0,b[g>>1]|0)|0)>>13;b[d>>1]=c[f>>2];b[d>>1]=32767-(b[d>>1]|0)+(16384+(_(b[d>>1]|0,((16384+(_(b[d>>1]|0,(8277+(16384+(_(-626,b[d>>1]|0)|0)>>15)&65535)<<16>>16)|0)>>15)+-7651&65535)<<16>>16)|0)>>15);i=e;return 1+(b[d>>1]|0)&65535|0}function _a(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;i=i+16|0;f=d+12|0;e=d+8|0;g=d+4|0;h=d;c[f>>2]=a;c[e>>2]=b;c[g>>2]=32-(aa(c[e>>2]|0)|0);c[h>>2]=32-(aa(c[f>>2]|0)|0);c[e>>2]=c[e>>2]<<15-(c[g>>2]|0);c[f>>2]=c[f>>2]<<15-(c[h>>2]|0);a=((c[h>>2]|0)-(c[g>>2]|0)<<11)+(16384+(_((c[f>>2]&65535)<<16>>16,((16384+(_((c[f>>2]&65535)<<16>>16,-2597)|0)>>15)+7932&65535)<<16>>16)|0)>>15)|0;a=a-(16384+(_((c[e>>2]&65535)<<16>>16,((16384+(_((c[e>>2]&65535)<<16>>16,-2597)|0)>>15)+7932&65535)<<16>>16)|0)>>15)|0;i=d;return a|0}function $a(a,b,d,e,f){a=a|0;b=b|0;d=+d;e=e|0;f=f|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;u=i;i=i+64|0;h=u+60|0;j=u+56|0;k=u+52|0;l=u+48|0;o=u+40|0;v=u+36|0;w=u+32|0;m=u+28|0;n=u+24|0;x=u+20|0;t=u+16|0;q=u+12|0;s=u+8|0;r=u+4|0;p=u;c[h>>2]=a;c[j>>2]=b;g[k>>2]=d;c[l>>2]=e;c[u+44>>2]=f;g[v>>2]=0.0;g[w>>2]=0.0;ab(c[j>>2]|0,c[h>>2]|0,c[j>>2]|0,c[l>>2]|0,v,w);g[v>>2]=+g[k>>2]*+g[v>>2];g[x>>2]=+g[k>>2];g[m>>2]=+g[x>>2]*+g[x>>2]+ +g[w>>2]-+g[v>>2]*2.0;g[n>>2]=+g[x>>2]*+g[x>>2]+ +g[w>>2]+ +g[v>>2]*2.0;if(+g[n>>2]<6.000000284984708e-04|+g[m>>2]<6.000000284984708e-04){pj(c[j>>2]|0,c[h>>2]|0,(c[l>>2]<<2)+0|0)|0;i=u;return}g[t>>2]=+g[m>>2];g[q>>2]=1.0/+O(+(+g[t>>2]));g[t>>2]=+g[n>>2];g[s>>2]=1.0/+O(+(+g[t>>2]));c[o>>2]=0;while(1){if((c[o>>2]|0)>=(c[l>>2]|0))break;g[p>>2]=+g[k>>2]*+g[(c[h>>2]|0)+(c[o>>2]<<2)>>2];g[r>>2]=+g[(c[j>>2]|0)+(c[o>>2]<<2)>>2];g[(c[h>>2]|0)+(c[o>>2]<<2)>>2]=+g[q>>2]*(+g[p>>2]-+g[r>>2]);g[(c[j>>2]|0)+(c[o>>2]<<2)>>2]=+g[s>>2]*(+g[p>>2]+ +g[r>>2]);c[o>>2]=(c[o>>2]|0)+1}i=u;return}function ab(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+48|0;k=t+32|0;l=t+28|0;m=t+24|0;n=t+20|0;o=t+16|0;p=t+12|0;q=t+8|0;r=t+4|0;s=t;c[k>>2]=a;c[l>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=h;g[r>>2]=0.0;g[s>>2]=0.0;c[q>>2]=0;while(1){j=+g[r>>2];if((c[q>>2]|0)>=(c[n>>2]|0))break;g[r>>2]=j+ +g[(c[k>>2]|0)+(c[q>>2]<<2)>>2]*+g[(c[l>>2]|0)+(c[q>>2]<<2)>>2];g[s>>2]=+g[s>>2]+ +g[(c[k>>2]|0)+(c[q>>2]<<2)>>2]*+g[(c[m>>2]|0)+(c[q>>2]<<2)>>2];c[q>>2]=(c[q>>2]|0)+1}g[c[o>>2]>>2]=j;g[c[p>>2]>>2]=+g[s>>2];i=t;return}function bb(a){a=a|0;var b=0,d=0,e=0,f=0;e=i;i=i+16|0;f=e+4|0;b=e;c[f>>2]=a;a=c[f>>2]|0;a:do if((a|0)<16e3)if((a|0)<12e3){switch(a|0){case 8e3:break;default:{d=7;break a}}c[b>>2]=6;break}else{switch(a|0){case 12e3:break;default:{d=7;break a}}c[b>>2]=4;break}else{if((a|0)<24e3){switch(a|0){case 16e3:break;default:{d=7;break a}}c[b>>2]=3;break}if((a|0)<48e3){switch(a|0){case 24e3:break;default:{d=7;break a}}c[b>>2]=2;break}else{switch(a|0){case 48e3:break;default:{d=7;break a}}c[b>>2]=1;break}}while(0);if((d|0)==7)c[b>>2]=0;i=e;return c[b>>2]|0}function cb(a,b,d,e,f,h,j,k,l,m,n,o){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=+h;j=+j;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;N=i;i=i+112|0;p=N+96|0;q=N+92|0;s=N+88|0;t=N+84|0;u=N+80|0;v=N+76|0;w=N+72|0;x=N+68|0;y=N+64|0;z=N+60|0;r=N+56|0;H=N+48|0;B=N+44|0;C=N+40|0;D=N+36|0;E=N+32|0;F=N+28|0;G=N+24|0;I=N+20|0;J=N+16|0;K=N+12|0;L=N+8|0;M=N+4|0;A=N;c[p>>2]=a;c[q>>2]=b;c[s>>2]=d;c[t>>2]=e;c[u>>2]=f;g[v>>2]=h;g[w>>2]=j;c[x>>2]=k;c[y>>2]=l;c[z>>2]=m;c[r>>2]=n;c[N+52>>2]=o;if(+g[v>>2]==0.0&+g[w>>2]==0.0){if((c[q>>2]|0)==(c[p>>2]|0)){i=N;return}qj(c[p>>2]|0,c[q>>2]|0,(c[u>>2]<<2)+0|0)|0;i=N;return}g[B>>2]=+g[v>>2]*+g[128+((c[x>>2]|0)*12|0)>>2];g[C>>2]=+g[v>>2]*+g[128+((c[x>>2]|0)*12|0)+4>>2];g[D>>2]=+g[v>>2]*+g[128+((c[x>>2]|0)*12|0)+8>>2];g[E>>2]=+g[w>>2]*+g[128+((c[y>>2]|0)*12|0)>>2];g[F>>2]=+g[w>>2]*+g[128+((c[y>>2]|0)*12|0)+4>>2];g[G>>2]=+g[w>>2]*+g[128+((c[y>>2]|0)*12|0)+8>>2];g[J>>2]=+g[(c[q>>2]|0)+(0-(c[t>>2]|0)+1<<2)>>2];g[K>>2]=+g[(c[q>>2]|0)+(0-(c[t>>2]|0)<<2)>>2];g[L>>2]=+g[(c[q>>2]|0)+(0-(c[t>>2]|0)-1<<2)>>2];g[M>>2]=+g[(c[q>>2]|0)+(0-(c[t>>2]|0)-2<<2)>>2];if((+g[v>>2]==+g[w>>2]?(c[s>>2]|0)==(c[t>>2]|0):0)?(c[x>>2]|0)==(c[y>>2]|0):0)c[r>>2]=0;c[H>>2]=0;while(1){if((c[H>>2]|0)>=(c[r>>2]|0))break;g[I>>2]=+g[(c[q>>2]|0)+((c[H>>2]|0)-(c[t>>2]|0)+2<<2)>>2];g[A>>2]=+g[(c[z>>2]|0)+(c[H>>2]<<2)>>2]*+g[(c[z>>2]|0)+(c[H>>2]<<2)>>2];g[(c[p>>2]|0)+(c[H>>2]<<2)>>2]=+g[(c[q>>2]|0)+(c[H>>2]<<2)>>2]+(1.0-+g[A>>2])*+g[B>>2]*+g[(c[q>>2]|0)+((c[H>>2]|0)-(c[s>>2]|0)<<2)>>2]+(1.0-+g[A>>2])*+g[C>>2]*(+g[(c[q>>2]|0)+((c[H>>2]|0)-(c[s>>2]|0)+1<<2)>>2]+ +g[(c[q>>2]|0)+((c[H>>2]|0)-(c[s>>2]|0)-1<<2)>>2])+(1.0-+g[A>>2])*+g[D>>2]*(+g[(c[q>>2]|0)+((c[H>>2]|0)-(c[s>>2]|0)+2<<2)>>2]+ +g[(c[q>>2]|0)+((c[H>>2]|0)-(c[s>>2]|0)-2<<2)>>2])+ +g[A>>2]*+g[E>>2]*+g[K>>2]+ +g[A>>2]*+g[F>>2]*(+g[J>>2]+ +g[L>>2])+ +g[A>>2]*+g[G>>2]*(+g[I>>2]+ +g[M>>2]);g[M>>2]=+g[L>>2];g[L>>2]=+g[K>>2];g[K>>2]=+g[J>>2];g[J>>2]=+g[I>>2];c[H>>2]=(c[H>>2]|0)+1}if(!(+g[w>>2]==0.0)){db((c[p>>2]|0)+(c[H>>2]<<2)|0,(c[q>>2]|0)+(c[H>>2]<<2)|0,c[t>>2]|0,(c[u>>2]|0)-(c[H>>2]|0)|0,+g[E>>2],+g[F>>2],+g[G>>2]);i=N;return}if((c[q>>2]|0)==(c[p>>2]|0)){i=N;return}qj((c[p>>2]|0)+(c[r>>2]<<2)|0,(c[q>>2]|0)+(c[r>>2]<<2)|0,((c[u>>2]|0)-(c[r>>2]|0)<<2)+0|0)|0;i=N;return}function db(a,b,d,e,f,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;h=+h;j=+j;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=i;i=i+64|0;k=x+48|0;l=x+44|0;m=x+40|0;n=x+36|0;o=x+32|0;p=x+28|0;q=x+24|0;s=x+20|0;t=x+16|0;u=x+12|0;v=x+8|0;w=x+4|0;r=x;c[k>>2]=a;c[l>>2]=b;c[m>>2]=d;c[n>>2]=e;g[o>>2]=f;g[p>>2]=h;g[q>>2]=j;g[w>>2]=+g[(c[l>>2]|0)+(0-(c[m>>2]|0)-2<<2)>>2];g[v>>2]=+g[(c[l>>2]|0)+(0-(c[m>>2]|0)-1<<2)>>2];g[u>>2]=+g[(c[l>>2]|0)+(0-(c[m>>2]|0)<<2)>>2];g[t>>2]=+g[(c[l>>2]|0)+(0-(c[m>>2]|0)+1<<2)>>2];c[r>>2]=0;while(1){if((c[r>>2]|0)>=(c[n>>2]|0))break;g[s>>2]=+g[(c[l>>2]|0)+((c[r>>2]|0)-(c[m>>2]|0)+2<<2)>>2];g[(c[k>>2]|0)+(c[r>>2]<<2)>>2]=+g[(c[l>>2]|0)+(c[r>>2]<<2)>>2]+ +g[o>>2]*+g[u>>2]+ +g[p>>2]*(+g[t>>2]+ +g[v>>2])+ +g[q>>2]*(+g[s>>2]+ +g[w>>2]);g[w>>2]=+g[v>>2];g[v>>2]=+g[u>>2];g[u>>2]=+g[t>>2];g[t>>2]=+g[s>>2];c[r>>2]=(c[r>>2]|0)+1}i=x;return}function eb(a,e,f,g){a=a|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;h=o+20|0;j=o+16|0;k=o+12|0;l=o+8|0;n=o+4|0;m=o;c[h>>2]=a;c[j>>2]=e;c[k>>2]=f;c[l>>2]=g;c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[(c[h>>2]|0)+8>>2]|0))break;c[m>>2]=(b[(c[(c[h>>2]|0)+32>>2]|0)+((c[n>>2]|0)+1<<1)>>1]|0)-(b[(c[(c[h>>2]|0)+32>>2]|0)+(c[n>>2]<<1)>>1]|0)<<c[k>>2];a=_(c[(c[h>>2]|0)+8>>2]|0,(c[k>>2]<<1)+(c[l>>2]|0)-1|0)|0;a=_((d[(c[(c[h>>2]|0)+92+12>>2]|0)+(a+(c[n>>2]|0))>>0]|0)+64|0,c[l>>2]|0)|0;a=(_(a,c[m>>2]|0)|0)>>2;c[(c[j>>2]|0)+(c[n>>2]<<2)>>2]=a;c[n>>2]=(c[n>>2]|0)+1}i=o;return}function fb(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[d>>2]=a;if((c[d>>2]|0)>0|(c[d>>2]|0)<-7){c[b>>2]=25264;a=c[b>>2]|0;i=e;return a|0}else{c[b>>2]=c[164+(0-(c[d>>2]|0)<<2)>>2];a=c[b>>2]|0;i=e;return a|0}return 0}function gb(){return 25415}function hb(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=Jc(48e3,960,0)|0;a=ib(c[e>>2]|0,c[d>>2]|0)|0;i=b;return a|0}function ib(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=i;i=i+16|0;f=e+8|0;g=e+4|0;d=e;c[f>>2]=a;c[g>>2]=b;a=204+((_(c[g>>2]|0,c[(c[f>>2]|0)+4>>2]|0)|0)-1<<2)|0;c[d>>2]=a+(c[g>>2]<<10<<2)+((_((c[g>>2]|0)*3|0,c[(c[f>>2]|0)+8>>2]|0)|0)<<2);i=e;return c[d>>2]|0}function jb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;k=i;i=i+32|0;f=k+20|0;g=k+16|0;h=k+12|0;m=k+8|0;l=k+4|0;j=k;c[g>>2]=a;c[h>>2]=b;c[m>>2]=d;c[l>>2]=e;b=c[g>>2]|0;a=Jc(48e3,960,0)|0;c[j>>2]=kb(b,a,c[m>>2]|0,c[l>>2]|0)|0;if(c[j>>2]|0){c[f>>2]=c[j>>2];m=c[f>>2]|0;i=k;return m|0}else{m=bb(c[h>>2]|0)|0;c[(c[g>>2]|0)+28>>2]=m;c[f>>2]=0;m=c[f>>2]|0;i=k;return m|0}return 0}function kb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;f=l+20|0;g=l+16|0;h=l+12|0;j=l+8|0;k=l+4|0;c[g>>2]=a;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;if((c[j>>2]|0)<0|(c[j>>2]|0)>2){c[f>>2]=-1;a=c[f>>2]|0;i=l;return a|0}if((c[g>>2]|0)==0|(c[h>>2]|0)==0){c[f>>2]=-7;a=c[f>>2]|0;i=l;return a|0}else{a=c[g>>2]|0;oj(a|0,0,ib(c[h>>2]|0,c[j>>2]|0)|0)|0;c[c[g>>2]>>2]=c[h>>2];a=c[j>>2]|0;c[(c[g>>2]|0)+4>>2]=a;c[(c[g>>2]|0)+8>>2]=a;c[(c[g>>2]|0)+28>>2]=1;c[(c[g>>2]|0)+32>>2]=0;c[(c[g>>2]|0)+36>>2]=c[(c[c[g>>2]>>2]|0)+12>>2];c[(c[g>>2]|0)+48>>2]=1;c[(c[g>>2]|0)+72>>2]=c[k>>2];c[(c[g>>2]|0)+52>>2]=1;c[(c[g>>2]|0)+16>>2]=1;c[(c[g>>2]|0)+40>>2]=-1;c[(c[g>>2]|0)+44>>2]=0;c[(c[g>>2]|0)+12>>2]=0;c[(c[g>>2]|0)+24>>2]=5;c[(c[g>>2]|0)+60>>2]=24;lb(c[g>>2]|0,4028,l)|0;c[f>>2]=0;a=c[f>>2]|0;i=l;return a|0}return 0}function lb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;F=i;i=i+128|0;E=F+112|0;C=F+108|0;G=F+104|0;e=F+88|0;m=F+84|0;n=F+80|0;v=F+76|0;w=F+72|0;x=F+68|0;y=F+64|0;z=F+60|0;D=F+56|0;A=F+52|0;B=F+48|0;o=F+44|0;p=F+40|0;f=F+36|0;j=F+32|0;k=F+28|0;l=F+24|0;q=F+20|0;h=F+16|0;r=F+12|0;s=F+8|0;t=F+4|0;u=F;c[C>>2]=a;c[G>>2]=b;c[e>>2]=d;do switch(c[G>>2]|0){case 4010:{D=(c[e>>2]|0)+(4-1)&~(4-1);G=c[D>>2]|0;c[e>>2]=D+4;c[m>>2]=G;if((c[m>>2]|0)<0|(c[m>>2]|0)>10)e=41;else{c[(c[C>>2]|0)+24>>2]=c[m>>2];e=40}break}case 10010:{D=(c[e>>2]|0)+(4-1)&~(4-1);G=c[D>>2]|0;c[e>>2]=D+4;c[n>>2]=G;if((c[n>>2]|0)>=0?(c[n>>2]|0)<(c[(c[c[C>>2]>>2]|0)+8>>2]|0):0){c[(c[C>>2]|0)+32>>2]=c[n>>2];e=40}else e=41;break}case 10012:{D=(c[e>>2]|0)+(4-1)&~(4-1);G=c[D>>2]|0;c[e>>2]=D+4;c[v>>2]=G;if((c[v>>2]|0)>=1?(c[v>>2]|0)<=(c[(c[c[C>>2]>>2]|0)+8>>2]|0):0){c[(c[C>>2]|0)+36>>2]=c[v>>2];e=40}else e=41;break}case 10002:{D=(c[e>>2]|0)+(4-1)&~(4-1);G=c[D>>2]|0;c[e>>2]=D+4;c[w>>2]=G;if((c[w>>2]|0)<0|(c[w>>2]|0)>2)e=41;else{c[(c[C>>2]|0)+20>>2]=(c[w>>2]|0)<=1&1;c[(c[C>>2]|0)+12>>2]=(c[w>>2]|0)==0&1;e=40}break}case 4014:{D=(c[e>>2]|0)+(4-1)&~(4-1);G=c[D>>2]|0;c[e>>2]=D+4;c[x>>2]=G;if((c[x>>2]|0)<0|(c[x>>2]|0)>100)e=41;else{c[(c[C>>2]|0)+56>>2]=c[x>>2];e=40}break}case 4020:{D=(c[e>>2]|0)+(4-1)&~(4-1);G=c[D>>2]|0;c[e>>2]=D+4;c[y>>2]=G;c[(c[C>>2]|0)+52>>2]=c[y>>2];e=40;break}case 4006:{D=(c[e>>2]|0)+(4-1)&~(4-1);G=c[D>>2]|0;c[e>>2]=D+4;c[z>>2]=G;c[(c[C>>2]|0)+44>>2]=c[z>>2];e=40;break}case 4002:{d=(c[e>>2]|0)+(4-1)&~(4-1);G=c[d>>2]|0;c[e>>2]=d+4;c[D>>2]=G;if((c[D>>2]|0)<=500&(c[D>>2]|0)!=-1)e=41;else{if((c[D>>2]|0)<((c[(c[C>>2]|0)+4>>2]|0)*26e4|0))e=c[D>>2]|0;else e=(c[(c[C>>2]|0)+4>>2]|0)*26e4|0;c[D>>2]=e;c[(c[C>>2]|0)+40>>2]=c[D>>2];e=40}break}case 10008:{D=(c[e>>2]|0)+(4-1)&~(4-1);G=c[D>>2]|0;c[e>>2]=D+4;c[A>>2]=G;if((c[A>>2]|0)<1|(c[A>>2]|0)>2)e=41;else{c[(c[C>>2]|0)+8>>2]=c[A>>2];e=40}break}case 4036:{D=(c[e>>2]|0)+(4-1)&~(4-1);G=c[D>>2]|0;c[e>>2]=D+4;c[B>>2]=G;if((c[B>>2]|0)<8|(c[B>>2]|0)>24)e=41;else{c[(c[C>>2]|0)+60>>2]=c[B>>2];e=40}break}case 4037:{D=(c[e>>2]|0)+(4-1)&~(4-1);G=c[D>>2]|0;c[e>>2]=D+4;c[o>>2]=G;c[c[o>>2]>>2]=c[(c[C>>2]|0)+60>>2];e=40;break}case 4040:{D=(c[e>>2]|0)+(4-1)&~(4-1);G=c[D>>2]|0;c[e>>2]=D+4;c[p>>2]=G;c[(c[C>>2]|0)+64>>2]=c[p>>2];e=40;break}case 4028:{c[j>>2]=(c[C>>2]|0)+200+((_(c[(c[C>>2]|0)+4>>2]|0,(c[(c[c[C>>2]>>2]|0)+4>>2]|0)+1024|0)|0)<<2);c[k>>2]=(c[j>>2]|0)+((_(c[(c[C>>2]|0)+4>>2]|0,c[(c[c[C>>2]>>2]|0)+8>>2]|0)|0)<<2);c[l>>2]=(c[k>>2]|0)+((_(c[(c[C>>2]|0)+4>>2]|0,c[(c[c[C>>2]>>2]|0)+8>>2]|0)|0)<<2);oj((c[C>>2]|0)+76|0,0,(ib(c[c[C>>2]>>2]|0,c[(c[C>>2]|0)+4>>2]|0)|0)-((c[C>>2]|0)+76-(c[C>>2]|0))|0)|0;c[f>>2]=0;while(1){if((c[f>>2]|0)>=(_(c[(c[C>>2]|0)+4>>2]|0,c[(c[c[C>>2]>>2]|0)+8>>2]|0)|0))break;g[(c[l>>2]|0)+(c[f>>2]<<2)>>2]=-28.0;g[(c[k>>2]|0)+(c[f>>2]<<2)>>2]=-28.0;c[f>>2]=(c[f>>2]|0)+1}c[(c[C>>2]|0)+172>>2]=0;g[(c[C>>2]|0)+84>>2]=1.0;c[(c[C>>2]|0)+80>>2]=2;c[(c[C>>2]|0)+88>>2]=256;c[(c[C>>2]|0)+96>>2]=0;c[(c[C>>2]|0)+100>>2]=0;e=40;break}case 10016:{D=(c[e>>2]|0)+(4-1)&~(4-1);G=c[D>>2]|0;c[e>>2]=D+4;c[q>>2]=G;c[(c[C>>2]|0)+48>>2]=c[q>>2];e=40;break}case 10022:{D=(c[e>>2]|0)+(4-1)&~(4-1);G=c[D>>2]|0;c[e>>2]=D+4;c[h>>2]=G;if(c[h>>2]|0){pj((c[C>>2]|0)+120|0,c[h>>2]|0,28|0)|0;e=40}else e=40;break}case 10015:{D=(c[e>>2]|0)+(4-1)&~(4-1);G=c[D>>2]|0;c[e>>2]=D+4;c[r>>2]=G;if(!(c[r>>2]|0))e=41;else{c[c[r>>2]>>2]=c[c[C>>2]>>2];e=40}break}case 4031:{D=(c[e>>2]|0)+(4-1)&~(4-1);G=c[D>>2]|0;c[e>>2]=D+4;c[s>>2]=G;if(!(c[s>>2]|0))e=41;else{c[c[s>>2]>>2]=c[(c[C>>2]|0)+76>>2];e=40}break}case 10024:{D=(c[e>>2]|0)+(4-1)&~(4-1);G=c[D>>2]|0;c[e>>2]=D+4;c[t>>2]=G;c[(c[C>>2]|0)+68>>2]=c[t>>2];e=40;break}case 10026:{D=(c[e>>2]|0)+(4-1)&~(4-1);G=c[D>>2]|0;c[e>>2]=D+4;c[u>>2]=G;c[(c[C>>2]|0)+192>>2]=c[u>>2];e=40;break}default:{c[E>>2]=-5;G=c[E>>2]|0;i=F;return G|0}}while(0);if((e|0)==40){c[E>>2]=0;G=c[E>>2]|0;i=F;return G|0}else if((e|0)==41){c[E>>2]=-1;G=c[E>>2]|0;i=F;return G|0}return 0}function mb(a,b,d,e,f,h,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;var l=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;z=i;i=i+64|0;m=z+52|0;q=z+48|0;r=z+44|0;n=z+40|0;s=z+36|0;A=z+32|0;t=z+28|0;o=z+24|0;w=z+20|0;v=z+16|0;x=z+12|0;u=z+8|0;p=z+4|0;y=z;c[m>>2]=a;c[q>>2]=b;c[r>>2]=d;c[n>>2]=e;c[s>>2]=f;c[A>>2]=h;c[t>>2]=j;c[o>>2]=k;g[v>>2]=+g[c[A>>2]>>2];g[x>>2]=+g[c[t>>2]>>2];if(!(((c[s>>2]|0)==1?+g[(c[A>>2]|0)+4>>2]==0.0:0)^1|(c[o>>2]|0)!=0)){c[w>>2]=0;while(1){if((c[w>>2]|0)>=(c[r>>2]|0))break;A=_(c[n>>2]|0,c[w>>2]|0)|0;g[p>>2]=+g[(c[m>>2]|0)+(A<<2)>>2]*32768.0;g[(c[q>>2]|0)+(c[w>>2]<<2)>>2]=+g[p>>2]-+g[x>>2];g[x>>2]=+g[v>>2]*+g[p>>2];c[w>>2]=(c[w>>2]|0)+1}g[c[t>>2]>>2]=+g[x>>2];i=z;return}c[u>>2]=(c[r>>2]|0)/(c[s>>2]|0)|0;if((c[s>>2]|0)!=1)oj(c[q>>2]|0,0,c[r>>2]<<2|0)|0;c[w>>2]=0;while(1){if((c[w>>2]|0)>=(c[u>>2]|0))break;p=_(c[n>>2]|0,c[w>>2]|0)|0;A=_(c[w>>2]|0,c[s>>2]|0)|0;g[(c[q>>2]|0)+(A<<2)>>2]=+g[(c[m>>2]|0)+(p<<2)>>2]*32768.0;c[w>>2]=(c[w>>2]|0)+1}a:do if(c[o>>2]|0){c[w>>2]=0;while(1){if((c[w>>2]|0)>=(c[u>>2]|0))break a;A=_(c[w>>2]|0,c[s>>2]|0)|0;if(65536.0<+g[(c[q>>2]|0)+(A<<2)>>2])l=65536.0;else{A=_(c[w>>2]|0,c[s>>2]|0)|0;l=+g[(c[q>>2]|0)+(A<<2)>>2]}if(!(-65536.0>l)){A=_(c[w>>2]|0,c[s>>2]|0)|0;if(65536.0<+g[(c[q>>2]|0)+(A<<2)>>2])l=65536.0;else{A=_(c[w>>2]|0,c[s>>2]|0)|0;l=+g[(c[q>>2]|0)+(A<<2)>>2]}}else l=-65536.0;A=_(c[w>>2]|0,c[s>>2]|0)|0;g[(c[q>>2]|0)+(A<<2)>>2]=l;c[w>>2]=(c[w>>2]|0)+1}}while(0);c[w>>2]=0;while(1){if((c[w>>2]|0)>=(c[r>>2]|0))break;g[y>>2]=+g[(c[q>>2]|0)+(c[w>>2]<<2)>>2];g[(c[q>>2]|0)+(c[w>>2]<<2)>>2]=+g[y>>2]-+g[x>>2];g[x>>2]=+g[v>>2]*+g[y>>2];c[w>>2]=(c[w>>2]|0)+1}g[c[t>>2]>>2]=+g[x>>2];i=z;return}function nb(a,d,e,f,h,j){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;var k=0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,$=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ja=0,ka=0,la=0,ma=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Ba=0,Da=0,Fa=0,Ga=0,Ha=0,Ja=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,nb=0,vb=0,yb=0;yb=i;i=i+448|0;gb=yb+440|0;hb=yb+436|0;s=yb+432|0;k=yb+428|0;o=yb+424|0;ib=yb+420|0;jb=yb+416|0;$a=yb+412|0;Za=yb+408|0;Ma=yb+404|0;Ga=yb+400|0;p=yb+352|0;y=yb+348|0;bb=yb+344|0;cb=yb+340|0;db=yb+336|0;Wa=yb+332|0;nb=yb+328|0;Ya=yb+324|0;Ja=yb+320|0;La=yb+316|0;T=yb+312|0;S=yb+308|0;xa=yb+304|0;wa=yb+300|0;fb=yb+296|0;_a=yb+292|0;U=yb+288|0;Qa=yb+284|0;P=yb+280|0;Fa=yb+276|0;Ua=yb+272|0;Sa=yb+268|0;Ra=yb+264|0;V=yb+260|0;X=yb+256|0;za=yb+252|0;fa=yb+248|0;ra=yb+244|0;Pa=yb+240|0;ma=yb+236|0;Va=yb+232|0;R=yb+228|0;Oa=yb+224|0;Na=yb+220|0;Xa=yb+216|0;O=yb+212|0;pa=yb+208|0;ka=yb+204|0;qa=yb+200|0;u=yb+196|0;ha=yb+192|0;Ta=yb+188|0;ab=yb+184|0;x=yb+180|0;Z=yb+176|0;M=yb+172|0;Ha=yb+168|0;vb=yb+164|0;la=yb+160|0;oa=yb+156|0;ea=yb+152|0;Ba=yb+148|0;m=yb+144|0;n=yb+140|0;q=yb+136|0;r=yb+132|0;kb=yb+128|0;t=yb+124|0;v=yb+120|0;z=yb+116|0;w=yb+112|0;I=yb+108|0;E=yb+104|0;C=yb+100|0;H=yb+96|0;G=yb+92|0;A=yb+88|0;B=yb+84|0;D=yb+80|0;F=yb+76|0;J=yb+72|0;K=yb+68|0;L=yb+64|0;N=yb+60|0;da=yb+56|0;ca=yb+52|0;Y=yb+48|0;W=yb+44|0;ba=yb+40|0;$=yb+36|0;ta=yb+32|0;ua=yb+28|0;ya=yb+24|0;ga=yb+20|0;ja=yb+16|0;va=yb+12|0;sa=yb+8|0;Da=yb+4|0;lb=yb;c[hb>>2]=a;c[s>>2]=d;c[k>>2]=e;c[o>>2]=f;c[ib>>2]=h;c[jb>>2]=j;c[Wa>>2]=0;c[nb>>2]=0;c[Ya>>2]=c[(c[hb>>2]|0)+4>>2];c[Ja>>2]=c[(c[hb>>2]|0)+8>>2];c[Ua>>2]=15;g[Sa>>2]=0.0;c[Ra>>2]=0;c[Va>>2]=0;c[Na>>2]=0;c[Xa>>2]=0;c[O>>2]=0;c[ka>>2]=0;c[vb>>2]=0;g[la>>2]=0.0;g[oa>>2]=0.0;g[ea>>2]=0.0;c[Ba>>2]=51e4;c[Ta>>2]=c[c[hb>>2]>>2];c[ab>>2]=c[(c[Ta>>2]|0)+8>>2];c[x>>2]=c[(c[Ta>>2]|0)+4>>2];c[Z>>2]=c[(c[Ta>>2]|0)+32>>2];c[fb>>2]=c[(c[hb>>2]|0)+32>>2];c[_a>>2]=c[(c[hb>>2]|0)+36>>2];g[pa>>2]=0.0;if((c[ib>>2]|0)<2|(c[s>>2]|0)==0){c[gb>>2]=-1;vb=c[gb>>2]|0;i=yb;return vb|0}c[k>>2]=_(c[k>>2]|0,c[(c[hb>>2]|0)+28>>2]|0)|0;c[La>>2]=0;while(1){if((c[La>>2]|0)>(c[(c[Ta>>2]|0)+36>>2]|0))break;if((c[(c[Ta>>2]|0)+44>>2]<<c[La>>2]|0)==(c[k>>2]|0))break;c[La>>2]=(c[La>>2]|0)+1}if((c[La>>2]|0)>(c[(c[Ta>>2]|0)+36>>2]|0)){c[gb>>2]=-1;vb=c[gb>>2]|0;i=yb;return vb|0}c[T>>2]=1<<c[La>>2];c[Ma>>2]=_(c[T>>2]|0,c[(c[Ta>>2]|0)+44>>2]|0)|0;c[y>>2]=(c[hb>>2]|0)+200+((_(c[Ya>>2]|0,c[x>>2]|0)|0)<<2);c[bb>>2]=(c[hb>>2]|0)+200+((_(c[Ya>>2]|0,(c[x>>2]|0)+1024|0)|0)<<2);c[cb>>2]=(c[bb>>2]|0)+((_(c[Ya>>2]|0,c[ab>>2]|0)|0)<<2);c[db>>2]=(c[cb>>2]|0)+((_(c[Ya>>2]|0,c[ab>>2]|0)|0)<<2);if(!(c[jb>>2]|0)){c[ma>>2]=1;c[xa>>2]=0}else{c[ma>>2]=ob(c[jb>>2]|0)|0;c[xa>>2]=(c[ma>>2]|0)+4>>3}c[ib>>2]=(c[ib>>2]|0)<1275?c[ib>>2]|0:1275;c[wa>>2]=(c[ib>>2]|0)-(c[xa>>2]|0);if(c[(c[hb>>2]|0)+44>>2]|0?(c[(c[hb>>2]|0)+40>>2]|0)!=-1:0){c[m>>2]=c[c[Ta>>2]>>2]>>3;n=_(c[(c[hb>>2]|0)+40>>2]|0,c[k>>2]|0)|0;c[za>>2]=(n+(c[m>>2]>>1)|0)/(c[m>>2]|0)|0;c[V>>2]=c[za>>2]>>6}else{c[za>>2]=0;c[n>>2]=_(c[(c[hb>>2]|0)+40>>2]|0,c[k>>2]|0)|0;if((c[ma>>2]|0)>1)c[n>>2]=(c[n>>2]|0)+(c[ma>>2]|0);if((c[(c[hb>>2]|0)+40>>2]|0)!=-1){if((c[ib>>2]|0)<((((c[n>>2]|0)+(c[c[Ta>>2]>>2]<<2)|0)/(c[c[Ta>>2]>>2]<<3|0)|0)-(((c[(c[hb>>2]|0)+48>>2]|0)!=0^1^1)&1)|0))k=c[ib>>2]|0;else k=(((c[n>>2]|0)+(c[c[Ta>>2]>>2]<<2)|0)/(c[c[Ta>>2]>>2]<<3|0)|0)-(((c[(c[hb>>2]|0)+48>>2]|0)!=0^1^1)&1)|0;do if(2<=(k|0))if((c[ib>>2]|0)<((((c[n>>2]|0)+(c[c[Ta>>2]>>2]<<2)|0)/(c[c[Ta>>2]>>2]<<3|0)|0)-(((c[(c[hb>>2]|0)+48>>2]|0)!=0^1^1)&1)|0)){k=c[ib>>2]|0;break}else{k=(((c[n>>2]|0)+(c[c[Ta>>2]>>2]<<2)|0)/(c[c[Ta>>2]>>2]<<3|0)|0)-(((c[(c[hb>>2]|0)+48>>2]|0)!=0^1^1)&1)|0;break}else k=2;while(0);c[ib>>2]=k}c[V>>2]=c[ib>>2]}if((c[(c[hb>>2]|0)+40>>2]|0)!=-1)c[Ba>>2]=(c[(c[hb>>2]|0)+40>>2]|0)-(_(((c[Ja>>2]|0)*40|0)+20|0,(400>>c[La>>2])-50|0)|0);if(!(c[jb>>2]|0)){ic(p,c[o>>2]|0,c[ib>>2]|0);c[jb>>2]=p}if((c[za>>2]|0)>0?c[(c[hb>>2]|0)+52>>2]|0:0){c[q>>2]=c[za>>2];if((((c[ma>>2]|0)==1?2:0)|0)>((c[za>>2]|0)+(c[q>>2]|0)-(c[(c[hb>>2]|0)+164>>2]|0)>>6|0))k=(c[ma>>2]|0)==1?2:0;else k=(c[za>>2]|0)+(c[q>>2]|0)-(c[(c[hb>>2]|0)+164>>2]|0)>>6;do if((k|0)<(c[wa>>2]|0))if((((c[ma>>2]|0)==1?2:0)|0)>((c[za>>2]|0)+(c[q>>2]|0)-(c[(c[hb>>2]|0)+164>>2]|0)>>6|0)){k=(c[ma>>2]|0)==1?2:0;break}else{k=(c[za>>2]|0)+(c[q>>2]|0)-(c[(c[hb>>2]|0)+164>>2]|0)>>6;break}else k=c[wa>>2]|0;while(0);c[r>>2]=k;if((c[r>>2]|0)<(c[wa>>2]|0)){c[ib>>2]=(c[xa>>2]|0)+(c[r>>2]|0);c[wa>>2]=c[r>>2];vc(c[jb>>2]|0,c[ib>>2]|0)}}c[fa>>2]=c[ib>>2]<<3;c[U>>2]=c[_a>>2];if((c[U>>2]|0)>(c[(c[Ta>>2]|0)+12>>2]|0))c[U>>2]=c[(c[Ta>>2]|0)+12>>2];r=_(c[Ya>>2]|0,(c[Ma>>2]|0)+(c[x>>2]|0)|0)|0;c[kb>>2]=ia()|0;e=i;i=i+((1*(r<<2)|0)+15&-16)|0;l=+g[(c[hb>>2]|0)+180>>2];r=_(c[Ja>>2]|0,(c[Ma>>2]|0)-(c[x>>2]|0)|0)|0;if(l>+pb(c[s>>2]|0,(r|0)/(c[(c[hb>>2]|0)+28>>2]|0)|0))l=+g[(c[hb>>2]|0)+180>>2];else{r=_(c[Ja>>2]|0,(c[Ma>>2]|0)-(c[x>>2]|0)|0)|0;l=+pb(c[s>>2]|0,(r|0)/(c[(c[hb>>2]|0)+28>>2]|0)|0)}g[u>>2]=l;q=_(c[Ja>>2]|0,(c[Ma>>2]|0)-(c[x>>2]|0)|0)|0;r=_(c[Ja>>2]|0,c[x>>2]|0)|0;l=+pb((c[s>>2]|0)+(((q|0)/(c[(c[hb>>2]|0)+28>>2]|0)|0)<<2)|0,(r|0)/(c[(c[hb>>2]|0)+28>>2]|0)|0);g[(c[hb>>2]|0)+180>>2]=l;if(+g[u>>2]>+g[(c[hb>>2]|0)+180>>2])l=+g[u>>2];else l=+g[(c[hb>>2]|0)+180>>2];g[u>>2]=l;c[Xa>>2]=+g[u>>2]<=1.0/+(1<<c[(c[hb>>2]|0)+60>>2]|0)&1;if((c[ma>>2]|0)==1)pc(c[jb>>2]|0,c[Xa>>2]|0,15);else c[Xa>>2]=0;if(c[Xa>>2]|0){if((c[za>>2]|0)>0){r=(c[ib>>2]|0)<((c[xa>>2]|0)+2|0)?c[ib>>2]|0:(c[xa>>2]|0)+2|0;c[ib>>2]=r;c[V>>2]=r;c[fa>>2]=c[ib>>2]<<3;c[wa>>2]=2;vc(c[jb>>2]|0,c[ib>>2]|0)}c[ma>>2]=c[ib>>2]<<3;q=c[ma>>2]|0;q=q-(ob(c[jb>>2]|0)|0)|0;r=(c[jb>>2]|0)+20|0;c[r>>2]=(c[r>>2]|0)+q}c[Za>>2]=0;do{c[t>>2]=0;c[t>>2]=(c[(c[hb>>2]|0)+16>>2]|0?+g[u>>2]>65536.0:0)&1;r=e+((_(c[Za>>2]|0,(c[Ma>>2]|0)+(c[x>>2]|0)|0)|0)<<2)|0;mb((c[s>>2]|0)+(c[Za>>2]<<2)|0,r+(c[x>>2]<<2)|0,c[Ma>>2]|0,c[Ya>>2]|0,c[(c[hb>>2]|0)+28>>2]|0,(c[Ta>>2]|0)+16|0,(c[hb>>2]|0)+148+(c[Za>>2]<<2)|0,c[t>>2]|0);r=(c[Za>>2]|0)+1|0;c[Za>>2]=r}while((r|0)<(c[Ya>>2]|0));if((c[wa>>2]|0)>3?(c[(c[hb>>2]|0)+68>>2]|0)!=0:0)if((c[fb>>2]|0)!=0|(c[Xa>>2]|0)!=0)k=0;else Q=63;else if(((c[fb>>2]|0)==0?(c[wa>>2]|0)>((c[Ja>>2]|0)*12|0):0)^1|(c[Xa>>2]|0)!=0)k=0;else Q=63;if((Q|0)==63)if(!(c[(c[hb>>2]|0)+20>>2]|0)?(c[(c[hb>>2]|0)+24>>2]|0)>=5:0){if((c[La>>2]|0)!=3?(c[(c[hb>>2]|0)+116>>2]|0)!=0:0)k=(c[(c[hb>>2]|0)+64>>2]|0)==5010;else k=0;k=k^1}else k=0;c[v>>2]=k&1;c[Va>>2]=c[(c[hb>>2]|0)+100>>2];c[R>>2]=qb(c[hb>>2]|0,e,c[y>>2]|0,c[Ya>>2]|0,c[Ma>>2]|0,c[Va>>2]|0,Ua,Sa,z,c[v>>2]|0,c[wa>>2]|0)|0;if(!(!(+g[Sa>>2]>.4000000059604645)?!(+g[(c[hb>>2]|0)+108>>2]>.4000000059604645):0))Q=70;do if((Q|0)==70){if(c[(c[hb>>2]|0)+120>>2]|0?!(+g[(c[hb>>2]|0)+120+4>>2]>.3):0)break;if(!(+(c[Ua>>2]|0)>+(c[(c[hb>>2]|0)+104>>2]|0)*1.26)?!(+(c[Ua>>2]|0)<+(c[(c[hb>>2]|0)+104>>2]|0)*.79):0)break;c[ka>>2]=1}while(0);if(!(c[R>>2]|0)){if((c[fb>>2]|0)==0?((c[ma>>2]|0)+16|0)<=(c[fa>>2]|0):0)pc(c[jb>>2]|0,0,1)}else{pc(c[jb>>2]|0,1,1);c[Ua>>2]=(c[Ua>>2]|0)+1;c[w>>2]=32-(aa(c[Ua>>2]|0)|0)-5;rc(c[jb>>2]|0,c[w>>2]|0,6);sc(c[jb>>2]|0,(c[Ua>>2]|0)-(16<<c[w>>2])|0,4+(c[w>>2]|0)|0);c[Ua>>2]=(c[Ua>>2]|0)-1;sc(c[jb>>2]|0,c[z>>2]|0,3);qc(c[jb>>2]|0,c[Va>>2]|0,25429,2)}c[nb>>2]=0;c[Wa>>2]=0;if((c[(c[hb>>2]|0)+24>>2]|0)>=1?(c[(c[hb>>2]|0)+68>>2]|0)==0:0)c[nb>>2]=rb(e,(c[Ma>>2]|0)+(c[x>>2]|0)|0,c[Ya>>2]|0,pa,O)|0;if((c[La>>2]|0)>0?(z=(ob(c[jb>>2]|0)|0)+3|0,(z|0)<=(c[fa>>2]|0)):0){if(c[nb>>2]|0)c[Wa>>2]=c[T>>2]}else{c[nb>>2]=0;c[vb>>2]=1}z=(_(c[Ya>>2]|0,c[Ma>>2]|0)|0)<<2;f=i;i=i+((1*z|0)+15&-16)|0;z=(_(c[ab>>2]|0,c[Ya>>2]|0)|0)<<2;p=i;i=i+((1*z|0)+15&-16)|0;z=(_(c[ab>>2]|0,c[Ya>>2]|0)|0)<<2;o=i;i=i+((1*z|0)+15&-16)|0;if(c[Wa>>2]|0)k=(c[(c[hb>>2]|0)+24>>2]|0)>=8;else k=0;c[M>>2]=k&1;z=(_(c[Ja>>2]|0,c[ab>>2]|0)|0)<<2;j=i;i=i+((1*z|0)+15&-16)|0;a:do if(c[M>>2]|0){sb(c[Ta>>2]|0,0,e,f,c[Ja>>2]|0,c[Ya>>2]|0,c[La>>2]|0,c[(c[hb>>2]|0)+28>>2]|0,c[(c[hb>>2]|0)+72>>2]|0);Ca(c[Ta>>2]|0,f,p,c[U>>2]|0,c[Ja>>2]|0,c[La>>2]|0);id(c[Ta>>2]|0,c[U>>2]|0,c[_a>>2]|0,p,j,c[Ja>>2]|0);c[$a>>2]=0;while(1){if((c[$a>>2]|0)>=(_(c[Ja>>2]|0,c[ab>>2]|0)|0))break a;z=j+(c[$a>>2]<<2)|0;g[z>>2]=+g[z>>2]+ +(c[La>>2]|0)*.5;c[$a>>2]=(c[$a>>2]|0)+1}}while(0);sb(c[Ta>>2]|0,c[Wa>>2]|0,e,f,c[Ja>>2]|0,c[Ya>>2]|0,c[La>>2]|0,c[(c[hb>>2]|0)+28>>2]|0,c[(c[hb>>2]|0)+72>>2]|0);if((c[Ya>>2]|0)==2&(c[Ja>>2]|0)==1)c[O>>2]=0;Ca(c[Ta>>2]|0,f,p,c[U>>2]|0,c[Ja>>2]|0,c[La>>2]|0);b:do if(c[(c[hb>>2]|0)+68>>2]|0){c[$a>>2]=2;while(1){if((c[$a>>2]|0)>=(c[_a>>2]|0))break b;if(+g[p+(c[$a>>2]<<2)>>2]<+g[p>>2]*9.999999747378752e-05)l=+g[p+(c[$a>>2]<<2)>>2];else l=+g[p>>2]*9.999999747378752e-05;g[p+(c[$a>>2]<<2)>>2]=l;if(+g[p+(c[$a>>2]<<2)>>2]>1.0000000036274937e-15)l=+g[p+(c[$a>>2]<<2)>>2];else l=1.0000000036274937e-15;g[p+(c[$a>>2]<<2)>>2]=l;c[$a>>2]=(c[$a>>2]|0)+1}}while(0);id(c[Ta>>2]|0,c[U>>2]|0,c[_a>>2]|0,p,o,c[Ja>>2]|0);z=(_(c[Ja>>2]|0,c[ab>>2]|0)|0)<<2;m=i;i=i+((1*z|0)+15&-16)|0;oj(m|0,0,c[_a>>2]<<2|0)|0;do if(!(c[fb>>2]|0)){if(!(c[(c[hb>>2]|0)+192>>2]|0))break;if(c[(c[hb>>2]|0)+68>>2]|0)break;g[H>>2]=0.0;g[G>>2]=0.0;c[A>>2]=0;if(2>(c[(c[hb>>2]|0)+92>>2]|0))k=2;else k=c[(c[hb>>2]|0)+92>>2]|0;c[I>>2]=k;c[Za>>2]=0;while(1){if((c[Za>>2]|0)>=(c[Ja>>2]|0))break;c[$a>>2]=0;while(1){if((c[$a>>2]|0)>=(c[I>>2]|0))break;z=_(c[ab>>2]|0,c[Za>>2]|0)|0;if(+g[(c[(c[hb>>2]|0)+192>>2]|0)+(z+(c[$a>>2]|0)<<2)>>2]<.25){z=_(c[ab>>2]|0,c[Za>>2]|0)|0;l=+g[(c[(c[hb>>2]|0)+192>>2]|0)+(z+(c[$a>>2]|0)<<2)>>2]}else l=.25;do if(l>-2.0){z=_(c[ab>>2]|0,c[Za>>2]|0)|0;if(!(+g[(c[(c[hb>>2]|0)+192>>2]|0)+(z+(c[$a>>2]|0)<<2)>>2]<.25)){l=.25;break}z=_(c[ab>>2]|0,c[Za>>2]|0)|0;l=+g[(c[(c[hb>>2]|0)+192>>2]|0)+(z+(c[$a>>2]|0)<<2)>>2]}else l=-2.0;while(0);g[B>>2]=l;if(+g[B>>2]>0.0)g[B>>2]=+g[B>>2]*.5;g[H>>2]=+g[H>>2]+ +g[B>>2]*+((b[(c[Z>>2]|0)+((c[$a>>2]|0)+1<<1)>>1]|0)-(b[(c[Z>>2]|0)+(c[$a>>2]<<1)>>1]|0)|0);c[A>>2]=(c[A>>2]|0)+((b[(c[Z>>2]|0)+((c[$a>>2]|0)+1<<1)>>1]|0)-(b[(c[Z>>2]|0)+(c[$a>>2]<<1)>>1]|0));g[G>>2]=+g[G>>2]+ +g[B>>2]*+(1+(c[$a>>2]<<1)-(c[I>>2]|0)|0);c[$a>>2]=(c[$a>>2]|0)+1}c[Za>>2]=(c[Za>>2]|0)+1}g[H>>2]=+g[H>>2]/+(c[A>>2]|0);g[H>>2]=+g[H>>2]+.20000000298023224;B=_(c[Ja>>2]|0,(c[I>>2]|0)-1|0)|0;B=_(B,(c[I>>2]|0)+1|0)|0;g[G>>2]=+g[G>>2]*6.0/+(_(B,c[I>>2]|0)|0);g[G>>2]=+g[G>>2]*.5;if((+g[G>>2]<.03099999949336052?+g[G>>2]:.03099999949336052)>-.03099999949336052)l=+g[G>>2]<.03099999949336052?+g[G>>2]:.03099999949336052;else l=-.03099999949336052;g[G>>2]=l;c[E>>2]=0;while(1){if((b[(c[Z>>2]|0)+((c[E>>2]|0)+1<<1)>>1]|0)>=((b[(c[Z>>2]|0)+(c[I>>2]<<1)>>1]|0)/2|0|0))break;c[E>>2]=(c[E>>2]|0)+1}c[C>>2]=0;c[$a>>2]=0;while(1){if((c[$a>>2]|0)>=(c[I>>2]|0))break;g[D>>2]=+g[H>>2]+ +g[G>>2]*+((c[$a>>2]|0)-(c[E>>2]|0)|0);l=+g[(c[(c[hb>>2]|0)+192>>2]|0)+(c[$a>>2]<<2)>>2];if((c[Ja>>2]|0)==2){if(l>+g[(c[(c[hb>>2]|0)+192>>2]|0)+((c[ab>>2]|0)+(c[$a>>2]|0)<<2)>>2])l=+g[(c[(c[hb>>2]|0)+192>>2]|0)+(c[$a>>2]<<2)>>2];else l=+g[(c[(c[hb>>2]|0)+192>>2]|0)+((c[ab>>2]|0)+(c[$a>>2]|0)<<2)>>2];g[F>>2]=l}else g[F>>2]=l;g[F>>2]=+g[F>>2]<0.0?+g[F>>2]:0.0;g[F>>2]=+g[F>>2]-+g[D>>2];if(+g[F>>2]>.25){g[m+(c[$a>>2]<<2)>>2]=+g[F>>2]-.25;c[C>>2]=(c[C>>2]|0)+1}c[$a>>2]=(c[$a>>2]|0)+1}c:do if((c[C>>2]|0)>=3){g[H>>2]=+g[H>>2]+.25;if(+g[H>>2]>0.0){g[H>>2]=0.0;g[G>>2]=0.0;oj(m|0,0,c[I>>2]<<2|0)|0;break}c[$a>>2]=0;while(1){if((c[$a>>2]|0)>=(c[I>>2]|0))break c;if(0.0>+g[m+(c[$a>>2]<<2)>>2]-.25)l=0.0;else l=+g[m+(c[$a>>2]<<2)>>2]-.25;g[m+(c[$a>>2]<<2)>>2]=l;c[$a>>2]=(c[$a>>2]|0)+1}}while(0);g[H>>2]=+g[H>>2]+.20000000298023224;g[ea>>2]=+g[G>>2]*64.0;g[la>>2]=+g[H>>2]}while(0);if(!(c[(c[hb>>2]|0)+68>>2]|0)){g[J>>2]=-10.0;g[K>>2]=0.0;if(c[Wa>>2]|0)l=+(c[La>>2]|0)*.5;else l=0.0;g[L>>2]=l;c[$a>>2]=c[fb>>2];while(1){if((c[$a>>2]|0)>=(c[_a>>2]|0))break;if(+g[J>>2]-1.0>+g[o+(c[$a>>2]<<2)>>2]-+g[L>>2])l=+g[J>>2]-1.0;else l=+g[o+(c[$a>>2]<<2)>>2]-+g[L>>2];g[J>>2]=l;if((c[Ja>>2]|0)==2){if(+g[J>>2]>+g[o+((c[$a>>2]|0)+(c[ab>>2]|0)<<2)>>2]-+g[L>>2])l=+g[J>>2];else l=+g[o+((c[$a>>2]|0)+(c[ab>>2]|0)<<2)>>2]-+g[L>>2];g[J>>2]=l}g[K>>2]=+g[K>>2]+ +g[J>>2];c[$a>>2]=(c[$a>>2]|0)+1}g[K>>2]=+g[K>>2]/+((c[_a>>2]|0)-(c[fb>>2]|0)|0);g[oa>>2]=+g[K>>2]-+g[(c[hb>>2]|0)+196>>2];if(3.0<(-1.5>+g[oa>>2]?-1.5:+g[oa>>2]))l=3.0;else l=-1.5>+g[oa>>2]?-1.5:+g[oa>>2];g[oa>>2]=l;L=(c[hb>>2]|0)+196|0;g[L>>2]=+g[L>>2]+ +g[oa>>2]*.019999999552965164}if(!(c[M>>2]|0)){M=(_(c[Ja>>2]|0,c[ab>>2]|0)|0)<<2;pj(j|0,o|0,M+0|0)|0}do if((c[La>>2]|0)>0){M=(ob(c[jb>>2]|0)|0)+3|0;if(c[nb>>2]|0?1:(M|0)>(c[fa>>2]|0))break;if((c[(c[hb>>2]|0)+24>>2]|0)<5)break;if(c[(c[hb>>2]|0)+68>>2]|0)break;if(!(tb(o,c[bb>>2]|0,c[ab>>2]|0,c[fb>>2]|0,c[_a>>2]|0,c[Ja>>2]|0)|0))break;c[nb>>2]=1;c[Wa>>2]=c[T>>2];sb(c[Ta>>2]|0,c[Wa>>2]|0,e,f,c[Ja>>2]|0,c[Ya>>2]|0,c[La>>2]|0,c[(c[hb>>2]|0)+28>>2]|0,c[(c[hb>>2]|0)+72>>2]|0);Ca(c[Ta>>2]|0,f,p,c[U>>2]|0,c[Ja>>2]|0,c[La>>2]|0);id(c[Ta>>2]|0,c[U>>2]|0,c[_a>>2]|0,p,o,c[Ja>>2]|0);c[$a>>2]=0;while(1){if((c[$a>>2]|0)>=(_(c[Ja>>2]|0,c[ab>>2]|0)|0))break;M=j+(c[$a>>2]<<2)|0;g[M>>2]=+g[M>>2]+ +(c[La>>2]|0)*.5;c[$a>>2]=(c[$a>>2]|0)+1}g[pa>>2]=.20000000298023224}while(0);do if((c[La>>2]|0)>0){M=(ob(c[jb>>2]|0)|0)+3|0;if((M|0)>(c[fa>>2]|0))break;pc(c[jb>>2]|0,c[nb>>2]|0,3)}while(0);a=(_(c[Ja>>2]|0,c[Ma>>2]|0)|0)<<2;n=i;i=i+((1*a|0)+15&-16)|0;Ea(c[Ta>>2]|0,f,n,p,c[U>>2]|0,c[Ja>>2]|0,c[T>>2]|0);a=i;i=i+((1*(c[ab>>2]<<2)|0)+15&-16)|0;d:do if((c[fb>>2]|0)==0?(c[V>>2]|0)>=((c[Ja>>2]|0)*15|0):0){if((c[(c[hb>>2]|0)+24>>2]|0)<2){Q=192;break}if(c[(c[hb>>2]|0)+68>>2]|0){Q=192;break}do if((c[V>>2]|0)>=40){if((c[V>>2]|0)<60){c[N>>2]=6;break}if((c[V>>2]|0)<100){c[N>>2]=4;break}else{c[N>>2]=3;break}}else c[N>>2]=12;while(0);c[N>>2]=c[N>>2]<<1;c[S>>2]=ub(c[Ta>>2]|0,c[U>>2]|0,c[nb>>2]|0,a,c[N>>2]|0,n,c[Ma>>2]|0,c[La>>2]|0,P,+g[pa>>2],c[O>>2]|0)|0;c[$a>>2]=c[U>>2];while(1){if((c[$a>>2]|0)>=(c[_a>>2]|0))break d;c[a+(c[$a>>2]<<2)>>2]=c[a+((c[U>>2]|0)-1<<2)>>2];c[$a>>2]=(c[$a>>2]|0)+1}}else Q=192;while(0);if((Q|0)==192){c[P>>2]=0;c[$a>>2]=0;while(1){if((c[$a>>2]|0)>=(c[_a>>2]|0))break;c[a+(c[$a>>2]<<2)>>2]=c[nb>>2];c[$a>>2]=(c[$a>>2]|0)+1}c[S>>2]=0}Q=(_(c[Ja>>2]|0,c[ab>>2]|0)|0)<<2;d=i;i=i+((1*Q|0)+15&-16)|0;Zc(c[Ta>>2]|0,c[fb>>2]|0,c[_a>>2]|0,c[U>>2]|0,o,c[bb>>2]|0,c[fa>>2]|0,d,c[jb>>2]|0,c[Ja>>2]|0,c[La>>2]|0,c[wa>>2]|0,c[(c[hb>>2]|0)+12>>2]|0,(c[hb>>2]|0)+84|0,(c[(c[hb>>2]|0)+24>>2]|0)>=4&1,c[(c[hb>>2]|0)+56>>2]|0,c[(c[hb>>2]|0)+68>>2]|0);wb(c[fb>>2]|0,c[_a>>2]|0,c[nb>>2]|0,a,c[La>>2]|0,c[S>>2]|0,c[jb>>2]|0);S=(ob(c[jb>>2]|0)|0)+4|0;if((S|0)<=(c[fa>>2]|0)){e:do if(!(c[(c[hb>>2]|0)+68>>2]|0)){do if(!(c[Wa>>2]|0)){if((c[(c[hb>>2]|0)+24>>2]|0)<3)break;if(c[fb>>2]|0?1:(c[wa>>2]|0)<((c[Ja>>2]|0)*10|0))break;if(c[R>>2]|0)k=(c[Wa>>2]|0)!=0^1;else k=0;U=Ia(c[Ta>>2]|0,n,(c[hb>>2]|0)+88|0,c[(c[hb>>2]|0)+80>>2]|0,(c[hb>>2]|0)+96|0,(c[hb>>2]|0)+100|0,k&1,c[U>>2]|0,c[Ja>>2]|0,c[T>>2]|0)|0;c[(c[hb>>2]|0)+80>>2]=U;break e}while(0);k=(c[hb>>2]|0)+80|0;if(!(c[(c[hb>>2]|0)+24>>2]|0)){c[k>>2]=0;break}else{c[k>>2]=2;break}}else{c[(c[hb>>2]|0)+100>>2]=0;c[(c[hb>>2]|0)+80>>2]=2}while(0);qc(c[jb>>2]|0,c[(c[hb>>2]|0)+80>>2]|0,25560,5)}h=i;i=i+((1*(c[ab>>2]<<2)|0)+15&-16)|0;g[ha>>2]=+xb(o,j,c[ab>>2]|0,c[fb>>2]|0,c[_a>>2]|0,c[Ja>>2]|0,h,c[(c[hb>>2]|0)+60>>2]|0,c[(c[Ta>>2]|0)+56>>2]|0,c[nb>>2]|0,c[(c[hb>>2]|0)+44>>2]|0,c[(c[hb>>2]|0)+52>>2]|0,c[Z>>2]|0,c[La>>2]|0,c[V>>2]|0,qa,c[(c[hb>>2]|0)+68>>2]|0,m);if(c[(c[hb>>2]|0)+68>>2]|0){if(8<((c[V>>2]|0)/3|0|0))k=8;else k=(c[V>>2]|0)/3|0;c[h>>2]=k}f=i;i=i+((1*(c[ab>>2]<<2)|0)+15&-16)|0;eb(c[Ta>>2]|0,f,c[La>>2]|0,c[Ja>>2]|0);c[X>>2]=6;c[fa>>2]=c[fa>>2]<<3;c[ra>>2]=0;c[ma>>2]=Xb(c[jb>>2]|0)|0;c[$a>>2]=c[fb>>2];while(1){k=c[Ja>>2]|0;if((c[$a>>2]|0)>=(c[_a>>2]|0))break;k=_(k,(b[(c[Z>>2]|0)+((c[$a>>2]|0)+1<<1)>>1]|0)-(b[(c[Z>>2]|0)+(c[$a>>2]<<1)>>1]|0)|0)|0;c[da>>2]=k<<c[La>>2];k=c[da>>2]|0;if((c[da>>2]<<3|0)<((48>(c[da>>2]|0)?48:c[da>>2]|0)|0))k=k<<3;else k=48>(k|0)?48:c[da>>2]|0;c[ca>>2]=k;c[Y>>2]=c[X>>2];c[W>>2]=0;c[ba>>2]=0;while(1){if(((c[ma>>2]|0)+(c[Y>>2]<<3)|0)>=((c[fa>>2]|0)-(c[ra>>2]|0)|0))break;if((c[W>>2]|0)>=(c[f+(c[$a>>2]<<2)>>2]|0))break;c[$>>2]=(c[ba>>2]|0)<(c[h+(c[$a>>2]<<2)>>2]|0)&1;pc(c[jb>>2]|0,c[$>>2]|0,c[Y>>2]|0);c[ma>>2]=Xb(c[jb>>2]|0)|0;if(!(c[$>>2]|0))break;c[W>>2]=(c[W>>2]|0)+(c[ca>>2]|0);c[ra>>2]=(c[ra>>2]|0)+(c[ca>>2]|0);c[Y>>2]=1;c[ba>>2]=(c[ba>>2]|0)+1}if(c[ba>>2]|0)c[X>>2]=2>((c[X>>2]|0)-1|0)?2:(c[X>>2]|0)-1|0;c[h+(c[$a>>2]<<2)>>2]=c[W>>2];c[$a>>2]=(c[$a>>2]|0)+1}if((k|0)==2){if(c[La>>2]|0)c[Ra>>2]=Ab(c[Ta>>2]|0,n,c[La>>2]|0,c[Ma>>2]|0)|0;da=Aa(+((c[Ba>>2]|0)/1e3|0|0),196,280,21,c[(c[hb>>2]|0)+188>>2]|0)|0;c[(c[hb>>2]|0)+188>>2]=da;if((c[fb>>2]|0)>(c[(c[hb>>2]|0)+188>>2]|0))k=c[fb>>2]|0;else k=c[(c[hb>>2]|0)+188>>2]|0;do if((c[_a>>2]|0)>=(k|0))if((c[fb>>2]|0)>(c[(c[hb>>2]|0)+188>>2]|0)){k=c[fb>>2]|0;break}else{k=c[(c[hb>>2]|0)+188>>2]|0;break}else k=c[_a>>2]|0;while(0);c[(c[hb>>2]|0)+188>>2]=k}c[Fa>>2]=5;if(((c[ma>>2]|0)+48|0)<=((c[fa>>2]|0)-(c[ra>>2]|0)|0)){if(c[(c[hb>>2]|0)+68>>2]|0)c[Fa>>2]=5;else c[Fa>>2]=Bb(c[Ta>>2]|0,n,o,c[_a>>2]|0,c[La>>2]|0,c[Ja>>2]|0,c[Ma>>2]|0,(c[hb>>2]|0)+120|0,(c[hb>>2]|0)+184|0,+g[pa>>2],c[(c[hb>>2]|0)+188>>2]|0,+g[ea>>2],c[(c[hb>>2]|0)+72>>2]|0)|0;qc(c[jb>>2]|0,c[Fa>>2]|0,25564,7);c[ma>>2]=Xb(c[jb>>2]|0)|0}if((c[za>>2]|0)>0){c[va>>2]=(c[(c[Ta>>2]|0)+36>>2]|0)-(c[La>>2]|0);if((c[ib>>2]|0)<(1275>>3-(c[La>>2]|0)|0))k=c[ib>>2]|0;else k=1275>>3-(c[La>>2]|0);c[ib>>2]=k;c[ga>>2]=(c[za>>2]|0)-(((c[Ja>>2]|0)*40|0)+20<<3);if(c[(c[hb>>2]|0)+52>>2]|0)c[ga>>2]=(c[ga>>2]|0)+(c[(c[hb>>2]|0)+172>>2]>>c[va>>2]);c[ya>>2]=Db(c[Ta>>2]|0,(c[hb>>2]|0)+120|0,c[ga>>2]|0,c[La>>2]|0,c[Ba>>2]|0,c[(c[hb>>2]|0)+92>>2]|0,c[Ja>>2]|0,c[(c[hb>>2]|0)+188>>2]|0,c[(c[hb>>2]|0)+52>>2]|0,+g[(c[hb>>2]|0)+184>>2],c[qa>>2]|0,+g[pa>>2],c[ka>>2]|0,+g[ha>>2],c[(c[hb>>2]|0)+64>>2]|0,c[(c[hb>>2]|0)+68>>2]|0,(c[(c[hb>>2]|0)+192>>2]|0)!=0&1,+g[la>>2],+g[oa>>2])|0;c[ya>>2]=(c[ya>>2]|0)+(c[ma>>2]|0);c[ja>>2]=((c[ma>>2]|0)+(c[ra>>2]|0)+64-1>>6)+2-(c[xa>>2]|0);c[wa>>2]=(c[ya>>2]|0)+32>>6;c[wa>>2]=(c[ja>>2]|0)>(c[wa>>2]|0)?c[ja>>2]|0:c[wa>>2]|0;if((c[ib>>2]|0)<((c[wa>>2]|0)+(c[xa>>2]|0)|0))k=c[ib>>2]|0;else k=(c[wa>>2]|0)+(c[xa>>2]|0)|0;c[wa>>2]=k-(c[xa>>2]|0);c[ua>>2]=(c[ya>>2]|0)-(c[za>>2]|0);c[ya>>2]=c[wa>>2]<<6;if(c[Xa>>2]|0){c[wa>>2]=2;c[ya>>2]=128;c[ua>>2]=0}if((c[(c[hb>>2]|0)+176>>2]|0)<970){ra=(c[hb>>2]|0)+176|0;c[ra>>2]=(c[ra>>2]|0)+1;g[ta>>2]=1.0/+((c[(c[hb>>2]|0)+176>>2]|0)+20|0)}else g[ta>>2]=1.0000000474974513e-03;if(c[(c[hb>>2]|0)+52>>2]|0){ra=(c[hb>>2]|0)+164|0;c[ra>>2]=(c[ra>>2]|0)+((c[ya>>2]|0)-(c[za>>2]|0))}if(c[(c[hb>>2]|0)+52>>2]|0){ya=_(c[ua>>2]|0,1<<c[va>>2])|0;za=(c[hb>>2]|0)+168|0;c[za>>2]=(c[za>>2]|0)+~~(+g[ta>>2]*+(ya-(c[(c[hb>>2]|0)+172>>2]|0)-(c[(c[hb>>2]|0)+168>>2]|0)|0));c[(c[hb>>2]|0)+172>>2]=0-(c[(c[hb>>2]|0)+168>>2]|0)}do if(c[(c[hb>>2]|0)+52>>2]|0){if((c[(c[hb>>2]|0)+164>>2]|0)>=0)break;c[sa>>2]=(0-(c[(c[hb>>2]|0)+164>>2]|0)|0)/64|0;c[wa>>2]=(c[wa>>2]|0)+(c[Xa>>2]|0?0:c[sa>>2]|0);c[(c[hb>>2]|0)+164>>2]=0}while(0);if((c[ib>>2]|0)<((c[wa>>2]|0)+(c[xa>>2]|0)|0))k=c[ib>>2]|0;else k=(c[wa>>2]|0)+(c[xa>>2]|0)|0;c[ib>>2]=k;vc(c[jb>>2]|0,c[ib>>2]|0)}m=i;i=i+((1*(c[ab>>2]<<2)|0)+15&-16)|0;j=i;i=i+((1*(c[ab>>2]<<2)|0)+15&-16)|0;e=i;i=i+((1*(c[ab>>2]<<2)|0)+15&-16)|0;za=c[ib>>2]<<3<<3;c[Ga>>2]=za-(Xb(c[jb>>2]|0)|0)-1;if((c[nb>>2]|0)!=0&(c[La>>2]|0)>=2)k=(c[Ga>>2]|0)>=((c[La>>2]|0)+2<<3|0);else k=0;c[Oa>>2]=k?8:0;c[Ga>>2]=(c[Ga>>2]|0)-(c[Oa>>2]|0);c[Ha>>2]=(c[_a>>2]|0)-1;if(c[(c[hb>>2]|0)+120>>2]|0){do if((c[Ba>>2]|0)>=((c[Ja>>2]|0)*32e3|0)){if((c[Ba>>2]|0)<((c[Ja>>2]|0)*48e3|0)){c[Da>>2]=16;break}if((c[Ba>>2]|0)<((c[Ja>>2]|0)*6e4|0)){c[Da>>2]=18;break}if((c[Ba>>2]|0)<((c[Ja>>2]|0)*8e4|0)){c[Da>>2]=19;break}else{c[Da>>2]=20;break}}else c[Da>>2]=13;while(0);if((c[(c[hb>>2]|0)+120+24>>2]|0)>(c[Da>>2]|0))k=c[(c[hb>>2]|0)+120+24>>2]|0;else k=c[Da>>2]|0;c[Ha>>2]=k}if(c[(c[hb>>2]|0)+68>>2]|0)c[Ha>>2]=1;c[Qa>>2]=jd(c[Ta>>2]|0,c[fb>>2]|0,c[_a>>2]|0,h,f,c[Fa>>2]|0,(c[hb>>2]|0)+188|0,Ra,c[Ga>>2]|0,Pa,j,m,e,c[Ja>>2]|0,c[La>>2]|0,c[jb>>2]|0,1,c[(c[hb>>2]|0)+92>>2]|0,c[Ha>>2]|0)|0;if(c[(c[hb>>2]|0)+92>>2]|0){if(((c[(c[hb>>2]|0)+92>>2]|0)-1|0)>(c[Qa>>2]|0))k=(c[(c[hb>>2]|0)+92>>2]|0)-1|0;else k=c[Qa>>2]|0;f=c[(c[hb>>2]|0)+92>>2]|0;do if(((c[(c[hb>>2]|0)+92>>2]|0)+1|0)>=(k|0))if((f-1|0)>(c[Qa>>2]|0)){k=(c[(c[hb>>2]|0)+92>>2]|0)-1|0;break}else{k=c[Qa>>2]|0;break}else k=f+1|0;while(0);c[(c[hb>>2]|0)+92>>2]=k}else c[(c[hb>>2]|0)+92>>2]=c[Qa>>2];dd(c[Ta>>2]|0,c[fb>>2]|0,c[_a>>2]|0,c[bb>>2]|0,d,m,c[jb>>2]|0,c[Ja>>2]|0);Ga=_(c[Ja>>2]|0,c[ab>>2]|0)|0;Ha=i;i=i+((1*Ga|0)+15&-16)|0;Ka(1,c[Ta>>2]|0,c[fb>>2]|0,c[_a>>2]|0,n,(c[Ja>>2]|0)==2?n+(c[Ma>>2]<<2)|0:0,Ha,p,j,c[Wa>>2]|0,c[(c[hb>>2]|0)+80>>2]|0,c[Ra>>2]|0,c[(c[hb>>2]|0)+188>>2]|0,a,(c[ib>>2]<<6)-(c[Oa>>2]|0)|0,c[Pa>>2]|0,c[jb>>2]|0,c[La>>2]|0,c[Qa>>2]|0,(c[hb>>2]|0)+76|0,c[(c[hb>>2]|0)+72>>2]|0);if((c[Oa>>2]|0)>0){c[Na>>2]=(c[(c[hb>>2]|0)+116>>2]|0)<2&1;sc(c[jb>>2]|0,c[Na>>2]|0,1)}Pa=c[Ta>>2]|0;Qa=c[fb>>2]|0;Ra=c[_a>>2]|0;Ta=c[bb>>2]|0;Wa=c[ib>>2]<<3;Wa=Wa-(ob(c[jb>>2]|0)|0)|0;ed(Pa,Qa,Ra,Ta,d,m,e,Wa,c[jb>>2]|0,c[Ja>>2]|0);f:do if(c[Xa>>2]|0){c[$a>>2]=0;while(1){if((c[$a>>2]|0)>=(_(c[Ja>>2]|0,c[ab>>2]|0)|0))break f;g[(c[bb>>2]|0)+(c[$a>>2]<<2)>>2]=-28.0;c[$a>>2]=(c[$a>>2]|0)+1}}while(0);c[(c[hb>>2]|0)+104>>2]=c[Ua>>2];g[(c[hb>>2]|0)+108>>2]=+g[Sa>>2];c[(c[hb>>2]|0)+112>>2]=c[Va>>2];if((c[Ya>>2]|0)==2&(c[Ja>>2]|0)==1)pj((c[bb>>2]|0)+(c[ab>>2]<<2)|0,c[bb>>2]|0,(c[ab>>2]<<2)+0|0)|0;g:do if(c[nb>>2]|0){c[$a>>2]=0;while(1){if((c[$a>>2]|0)>=(_(c[Ya>>2]|0,c[ab>>2]|0)|0))break g;k=c[$a>>2]|0;if(+g[(c[cb>>2]|0)+(c[$a>>2]<<2)>>2]<+g[(c[bb>>2]|0)+(c[$a>>2]<<2)>>2])l=+g[(c[cb>>2]|0)+(k<<2)>>2];else l=+g[(c[bb>>2]|0)+(k<<2)>>2];g[(c[cb>>2]|0)+(c[$a>>2]<<2)>>2]=l;c[$a>>2]=(c[$a>>2]|0)+1}}else{Xa=(_(c[Ya>>2]|0,c[ab>>2]|0)|0)<<2;pj(c[db>>2]|0,c[cb>>2]|0,Xa+0|0)|0;Xa=(_(c[Ya>>2]|0,c[ab>>2]|0)|0)<<2;pj(c[cb>>2]|0,c[bb>>2]|0,Xa+0|0)|0}while(0);c[Za>>2]=0;do{c[$a>>2]=0;while(1){if((c[$a>>2]|0)>=(c[fb>>2]|0))break;Xa=_(c[Za>>2]|0,c[ab>>2]|0)|0;g[(c[bb>>2]|0)+(Xa+(c[$a>>2]|0)<<2)>>2]=0.0;Xa=_(c[Za>>2]|0,c[ab>>2]|0)|0;g[(c[db>>2]|0)+(Xa+(c[$a>>2]|0)<<2)>>2]=-28.0;Xa=_(c[Za>>2]|0,c[ab>>2]|0)|0;g[(c[cb>>2]|0)+(Xa+(c[$a>>2]|0)<<2)>>2]=-28.0;c[$a>>2]=(c[$a>>2]|0)+1}c[$a>>2]=c[_a>>2];while(1){k=c[Za>>2]|0;if((c[$a>>2]|0)>=(c[ab>>2]|0))break;Xa=_(k,c[ab>>2]|0)|0;g[(c[bb>>2]|0)+(Xa+(c[$a>>2]|0)<<2)>>2]=0.0;Xa=_(c[Za>>2]|0,c[ab>>2]|0)|0;g[(c[db>>2]|0)+(Xa+(c[$a>>2]|0)<<2)>>2]=-28.0;Xa=_(c[Za>>2]|0,c[ab>>2]|0)|0;g[(c[cb>>2]|0)+(Xa+(c[$a>>2]|0)<<2)>>2]=-28.0;c[$a>>2]=(c[$a>>2]|0)+1}Xa=k+1|0;c[Za>>2]=Xa}while((Xa|0)<(c[Ya>>2]|0));k=(c[hb>>2]|0)+116|0;if((c[nb>>2]|0)!=0|(c[vb>>2]|0)!=0)c[k>>2]=(c[k>>2]|0)+1;else c[k>>2]=0;c[(c[hb>>2]|0)+76>>2]=c[(c[jb>>2]|0)+28>>2];wc(c[jb>>2]|0);if(Eb(c[jb>>2]|0)|0){c[gb>>2]=-3;c[lb>>2]=1}else{c[gb>>2]=c[ib>>2];c[lb>>2]=1}na(c[kb>>2]|0);vb=c[gb>>2]|0;i=yb;return vb|0}function ob(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=(c[(c[d>>2]|0)+20>>2]|0)-(32-(aa(c[(c[d>>2]|0)+28>>2]|0)|0))|0;i=b;return a|0}function pb(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;e=l+16|0;f=l+12|0;h=l+8|0;j=l+4|0;k=l;c[e>>2]=a;c[f>>2]=b;g[j>>2]=0.0;g[k>>2]=0.0;c[h>>2]=0;while(1){d=+g[j>>2];if((c[h>>2]|0)>=(c[f>>2]|0))break;if(d>+g[(c[e>>2]|0)+(c[h>>2]<<2)>>2])d=+g[j>>2];else d=+g[(c[e>>2]|0)+(c[h>>2]<<2)>>2];g[j>>2]=d;if(+g[k>>2]<+g[(c[e>>2]|0)+(c[h>>2]<<2)>>2])d=+g[k>>2];else d=+g[(c[e>>2]|0)+(c[h>>2]<<2)>>2];g[k>>2]=d;c[h>>2]=(c[h>>2]|0)+1}i=l;return +(d>-+g[k>>2]?+g[j>>2]:-+g[k>>2])}function qb(a,b,d,e,f,h,j,k,l,m,n){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;L=i;i=i+96|0;s=L+92|0;t=L+88|0;v=L+84|0;w=L+80|0;x=L+76|0;y=L+72|0;z=L+68|0;A=L+64|0;B=L+60|0;q=L+56|0;o=L+52|0;C=L+48|0;J=L+40|0;E=L+36|0;I=L+32|0;D=L+28|0;r=L+24|0;H=L+20|0;K=L+16|0;G=L+12|0;u=L+8|0;p=L+4|0;F=L;c[s>>2]=a;c[t>>2]=b;c[v>>2]=d;c[w>>2]=e;c[x>>2]=f;c[y>>2]=h;c[z>>2]=j;c[A>>2]=k;c[B>>2]=l;c[q>>2]=m;c[o>>2]=n;c[E>>2]=c[c[s>>2]>>2];c[G>>2]=c[(c[E>>2]|0)+4>>2];l=_(c[w>>2]|0,(c[x>>2]|0)+1024|0)|0;c[u>>2]=ia()|0;a=i;i=i+((1*(l<<2)|0)+15&-16)|0;c[J>>2]=a;c[J+4>>2]=a+((c[x>>2]|0)+1024<<2);c[C>>2]=0;do{pj(c[J+(c[C>>2]<<2)>>2]|0,(c[v>>2]|0)+(c[C>>2]<<10<<2)|0,4096|0)|0;a=(c[t>>2]|0)+((_(c[C>>2]|0,(c[x>>2]|0)+(c[G>>2]|0)|0)|0)<<2)|0;pj((c[J+(c[C>>2]<<2)>>2]|0)+4096|0,a+(c[G>>2]<<2)|0,(c[x>>2]<<2)+0|0)|0;a=(c[C>>2]|0)+1|0;c[C>>2]=a}while((a|0)<(c[w>>2]|0));if(c[q>>2]|0){l=1024+(c[x>>2]|0)>>1;c[p>>2]=ia()|0;a=i;i=i+((1*(l<<2)|0)+15&-16)|0;Kc(J,a,1024+(c[x>>2]|0)|0,c[w>>2]|0,c[(c[s>>2]|0)+72>>2]|0);Pc(a+2048|0,a,c[x>>2]|0,979,I,c[(c[s>>2]|0)+72>>2]|0);c[I>>2]=1024-(c[I>>2]|0);g[D>>2]=+Rc(a,1024,15,c[x>>2]|0,I,c[(c[s>>2]|0)+104>>2]|0,+g[(c[s>>2]|0)+108>>2],c[(c[s>>2]|0)+72>>2]|0);if((c[I>>2]|0)>1022)c[I>>2]=1022;g[D>>2]=+g[D>>2]*.699999988079071;if((c[(c[s>>2]|0)+56>>2]|0)>2)g[D>>2]=+g[D>>2]*.5;if((c[(c[s>>2]|0)+56>>2]|0)>4)g[D>>2]=+g[D>>2]*.5;if((c[(c[s>>2]|0)+56>>2]|0)>8)g[D>>2]=0.0;na(c[p>>2]|0)}else{g[D>>2]=0.0;c[I>>2]=15}g[r>>2]=.20000000298023224;a=(N((c[I>>2]|0)-(c[(c[s>>2]|0)+104>>2]|0)|0)|0)*10|0;if((a|0)>(c[I>>2]|0))g[r>>2]=+g[r>>2]+.20000000298023224;if((c[o>>2]|0)<25)g[r>>2]=+g[r>>2]+.10000000149011612;if((c[o>>2]|0)<35)g[r>>2]=+g[r>>2]+.10000000149011612;if(+g[(c[s>>2]|0)+108>>2]>.4000000059604645)g[r>>2]=+g[r>>2]-.10000000149011612;if(+g[(c[s>>2]|0)+108>>2]>.550000011920929)g[r>>2]=+g[r>>2]-.10000000149011612;g[r>>2]=+g[r>>2]>.20000000298023224?+g[r>>2]:.20000000298023224;if(+g[D>>2]<+g[r>>2]){g[D>>2]=0.0;c[H>>2]=0;c[K>>2]=0}else{if(+N(+(+g[D>>2]-+g[(c[s>>2]|0)+108>>2]))<.10000000149011612)g[D>>2]=+g[(c[s>>2]|0)+108>>2];c[K>>2]=~~+M(+(+g[D>>2]*32.0/3.0+.5))-1;if(0>((7<(c[K>>2]|0)?7:c[K>>2]|0)|0))o=0;else o=7<(c[K>>2]|0)?7:c[K>>2]|0;c[K>>2]=o;g[D>>2]=+((c[K>>2]|0)+1|0)*.09375;c[H>>2]=1}c[C>>2]=0;do{c[F>>2]=(c[(c[E>>2]|0)+44>>2]|0)-(c[G>>2]|0);if((c[(c[s>>2]|0)+104>>2]|0)>15)o=c[(c[s>>2]|0)+104>>2]|0;else o=15;c[(c[s>>2]|0)+104>>2]=o;l=(c[t>>2]|0)+((_(c[C>>2]|0,(c[x>>2]|0)+(c[G>>2]|0)|0)|0)<<2)|0;a=(c[s>>2]|0)+200+((_(c[C>>2]|0,c[G>>2]|0)|0)<<2)|0;pj(l|0,a|0,(c[G>>2]<<2)+0|0)|0;if(c[F>>2]|0){a=(c[t>>2]|0)+((_(c[C>>2]|0,(c[x>>2]|0)+(c[G>>2]|0)|0)|0)<<2)|0;cb(a+(c[G>>2]<<2)|0,(c[J+(c[C>>2]<<2)>>2]|0)+4096|0,c[(c[s>>2]|0)+104>>2]|0,c[(c[s>>2]|0)+104>>2]|0,c[F>>2]|0,-+g[(c[s>>2]|0)+108>>2],-+g[(c[s>>2]|0)+108>>2],c[(c[s>>2]|0)+112>>2]|0,c[(c[s>>2]|0)+112>>2]|0,0,0,c[(c[s>>2]|0)+72>>2]|0)}a=(c[t>>2]|0)+((_(c[C>>2]|0,(c[x>>2]|0)+(c[G>>2]|0)|0)|0)<<2)|0;cb(a+(c[G>>2]<<2)+(c[F>>2]<<2)|0,(c[J+(c[C>>2]<<2)>>2]|0)+4096+(c[F>>2]<<2)|0,c[(c[s>>2]|0)+104>>2]|0,c[I>>2]|0,(c[x>>2]|0)-(c[F>>2]|0)|0,-+g[(c[s>>2]|0)+108>>2],-+g[D>>2],c[(c[s>>2]|0)+112>>2]|0,c[y>>2]|0,c[(c[E>>2]|0)+60>>2]|0,c[G>>2]|0,c[(c[s>>2]|0)+72>>2]|0);a=(c[s>>2]|0)+200+((_(c[C>>2]|0,c[G>>2]|0)|0)<<2)|0;o=(c[t>>2]|0)+((_(c[C>>2]|0,(c[x>>2]|0)+(c[G>>2]|0)|0)|0)<<2)|0;pj(a|0,o+(c[x>>2]<<2)|0,(c[G>>2]<<2)+0|0)|0;o=(c[v>>2]|0)+(c[C>>2]<<10<<2)|0;if((c[x>>2]|0)>1024)qj(o|0,(c[J+(c[C>>2]<<2)>>2]|0)+(c[x>>2]<<2)|0,4096|0)|0;else{qj(o|0,(c[v>>2]|0)+(c[C>>2]<<10<<2)+(c[x>>2]<<2)|0,(1024-(c[x>>2]|0)<<2)+0|0)|0;qj((c[v>>2]|0)+(c[C>>2]<<10<<2)+4096+(0-(c[x>>2]|0)<<2)|0,(c[J+(c[C>>2]<<2)>>2]|0)+4096|0,(c[x>>2]<<2)+0|0)|0}a=(c[C>>2]|0)+1|0;c[C>>2]=a}while((a|0)<(c[w>>2]|0));g[c[A>>2]>>2]=+g[D>>2];c[c[z>>2]>>2]=c[I>>2];c[c[B>>2]>>2]=c[K>>2];K=c[H>>2]|0;na(c[u>>2]|0);i=L;return K|0}function rb(a,b,e,f,h){a=a|0;b=b|0;e=e|0;f=f|0;h=h|0;var j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;G=i;i=i+96|0;k=G+84|0;l=G+80|0;m=G+76|0;C=G+72|0;n=G+68|0;p=G+64|0;v=G+60|0;w=G+56|0;E=G+52|0;s=G+48|0;o=G+44|0;F=G+40|0;r=G+36|0;D=G+32|0;u=G+28|0;y=G+24|0;x=G+20|0;t=G+16|0;z=G+12|0;B=G+8|0;A=G+4|0;q=G;c[k>>2]=a;c[l>>2]=b;c[m>>2]=e;c[C>>2]=f;c[n>>2]=h;c[E>>2]=0;c[s>>2]=0;f=c[l>>2]|0;c[D>>2]=ia()|0;b=i;i=i+((1*(f<<2)|0)+15&-16)|0;c[r>>2]=(c[l>>2]|0)/2|0;c[o>>2]=0;while(1){if((c[o>>2]|0)>=(c[m>>2]|0))break;c[y>>2]=0;g[v>>2]=0.0;g[w>>2]=0.0;c[p>>2]=0;while(1){if((c[p>>2]|0)>=(c[l>>2]|0))break;f=(c[p>>2]|0)+(_(c[o>>2]|0,c[l>>2]|0)|0)|0;g[z>>2]=+g[(c[k>>2]|0)+(f<<2)>>2];g[B>>2]=+g[v>>2]+ +g[z>>2];g[v>>2]=+g[w>>2]+ +g[B>>2]-+g[z>>2]*2.0;g[w>>2]=+g[z>>2]-+g[B>>2]*.5;g[b+(c[p>>2]<<2)>>2]=+g[B>>2];c[p>>2]=(c[p>>2]|0)+1}e=b;a=e+48|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(a|0));g[u>>2]=0.0;g[v>>2]=0.0;c[p>>2]=0;while(1){if((c[p>>2]|0)>=(c[r>>2]|0))break;g[A>>2]=+g[b+(c[p>>2]<<1<<2)>>2]*+g[b+(c[p>>2]<<1<<2)>>2]+ +g[b+((c[p>>2]<<1)+1<<2)>>2]*+g[b+((c[p>>2]<<1)+1<<2)>>2];g[u>>2]=+g[u>>2]+ +g[A>>2];g[b+(c[p>>2]<<2)>>2]=+g[v>>2]+(+g[A>>2]-+g[v>>2])*.0625;g[v>>2]=+g[b+(c[p>>2]<<2)>>2];c[p>>2]=(c[p>>2]|0)+1}g[v>>2]=0.0;g[t>>2]=0.0;c[p>>2]=(c[r>>2]|0)-1;while(1){if((c[p>>2]|0)<0)break;g[b+(c[p>>2]<<2)>>2]=+g[v>>2]+(+g[b+(c[p>>2]<<2)>>2]-+g[v>>2])*.125;g[v>>2]=+g[b+(c[p>>2]<<2)>>2];g[t>>2]=+g[t>>2]>+g[v>>2]?+g[t>>2]:+g[v>>2];c[p>>2]=(c[p>>2]|0)+-1}g[u>>2]=+O(+(+g[u>>2]*+g[t>>2]*.5*+(c[r>>2]|0)));g[x>>2]=+(c[r>>2]|0)/(+g[u>>2]+1.0000000036274937e-15);c[y>>2]=0;c[p>>2]=12;while(1){if((c[p>>2]|0)>=((c[r>>2]|0)-5|0))break;if(127.0<+M(+(+g[x>>2]*64.0*(+g[b+(c[p>>2]<<2)>>2]+1.0000000036274937e-15))))j=127.0;else j=+M(+(+g[x>>2]*64.0*(+g[b+(c[p>>2]<<2)>>2]+1.0000000036274937e-15)));if(!(0.0>j))if(127.0<+M(+(+g[x>>2]*64.0*(+g[b+(c[p>>2]<<2)>>2]+1.0000000036274937e-15))))j=127.0;else j=+M(+(+g[x>>2]*64.0*(+g[b+(c[p>>2]<<2)>>2]+1.0000000036274937e-15)));else j=0.0;c[q>>2]=~~j;c[y>>2]=(c[y>>2]|0)+(d[25432+(c[q>>2]|0)>>0]|0);c[p>>2]=(c[p>>2]|0)+4}c[y>>2]=(c[y>>2]<<6<<2|0)/(((c[r>>2]|0)-17|0)*6|0)|0;if((c[y>>2]|0)>(c[s>>2]|0)){c[c[n>>2]>>2]=c[o>>2];c[s>>2]=c[y>>2]}c[o>>2]=(c[o>>2]|0)+1}c[E>>2]=(c[s>>2]|0)>200&1;if(0.0>+O(+(+((c[s>>2]|0)*27|0)))-42.0)j=0.0;else j=+O(+(+((c[s>>2]|0)*27|0)))-42.0;g[F>>2]=j;if(0.0>(163.0<+g[F>>2]?163.0:+g[F>>2])*.006899999920278788-.139){j=0.0;j=+O(+j);F=c[C>>2]|0;g[F>>2]=j;F=c[E>>2]|0;E=c[D>>2]|0;na(E|0);i=G;return F|0}j=(163.0<+g[F>>2]?163.0:+g[F>>2])*.006899999920278788-.139;j=+O(+j);F=c[C>>2]|0;g[F>>2]=j;F=c[E>>2]|0;E=c[D>>2]|0;na(E|0);i=G;return F|0}function sb(a,b,d,e,f,h,j,k,l){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+80|0;m=D+64|0;n=D+60|0;o=D+56|0;p=D+52|0;q=D+48|0;r=D+44|0;s=D+40|0;t=D+36|0;u=D+32|0;B=D+28|0;w=D+24|0;v=D+20|0;C=D+16|0;A=D+12|0;x=D+8|0;z=D+4|0;y=D;c[m>>2]=a;c[n>>2]=b;c[o>>2]=d;c[p>>2]=e;c[q>>2]=f;c[r>>2]=h;c[s>>2]=j;c[t>>2]=k;c[u>>2]=l;c[B>>2]=c[(c[m>>2]|0)+4>>2];if(c[n>>2]|0){c[v>>2]=c[n>>2];c[w>>2]=c[(c[m>>2]|0)+44>>2];c[C>>2]=c[(c[m>>2]|0)+36>>2]}else{c[v>>2]=1;c[w>>2]=c[(c[m>>2]|0)+44>>2]<<c[s>>2];c[C>>2]=(c[(c[m>>2]|0)+36>>2]|0)-(c[s>>2]|0)}c[z>>2]=0;do{c[x>>2]=0;while(1){if((c[x>>2]|0)>=(c[v>>2]|0))break;b=_(c[v>>2]|0,c[w>>2]|0)|0;b=(c[o>>2]|0)+((_(c[z>>2]|0,b+(c[B>>2]|0)|0)|0)<<2)|0;b=b+((_(c[x>>2]|0,c[w>>2]|0)|0)<<2)|0;k=_(c[z>>2]|0,c[w>>2]|0)|0;k=(c[x>>2]|0)+(_(k,c[v>>2]|0)|0)|0;Hc((c[m>>2]|0)+64|0,b,(c[p>>2]|0)+(k<<2)|0,c[(c[m>>2]|0)+60>>2]|0,c[B>>2]|0,c[C>>2]|0,c[v>>2]|0,c[u>>2]|0);c[x>>2]=(c[x>>2]|0)+1}k=(c[z>>2]|0)+1|0;c[z>>2]=k}while((k|0)<(c[r>>2]|0));a:do if((c[r>>2]|0)==2&(c[q>>2]|0)==1){c[A>>2]=0;while(1){if((c[A>>2]|0)>=(_(c[v>>2]|0,c[w>>2]|0)|0))break a;k=_(c[v>>2]|0,c[w>>2]|0)|0;g[(c[p>>2]|0)+(c[A>>2]<<2)>>2]=+g[(c[p>>2]|0)+(c[A>>2]<<2)>>2]*.5+ +g[(c[p>>2]|0)+(k+(c[A>>2]|0)<<2)>>2]*.5;c[A>>2]=(c[A>>2]|0)+1}}while(0);if((c[t>>2]|0)==1){i=D;return}c[z>>2]=0;do{k=_(c[v>>2]|0,c[w>>2]|0)|0;c[y>>2]=(k|0)/(c[t>>2]|0)|0;c[A>>2]=0;while(1){if((c[A>>2]|0)>=(c[y>>2]|0))break;k=_(c[z>>2]|0,c[v>>2]|0)|0;k=_(k,c[w>>2]|0)|0;k=(c[p>>2]|0)+(k+(c[A>>2]|0)<<2)|0;g[k>>2]=+g[k>>2]*+(c[t>>2]|0);c[A>>2]=(c[A>>2]|0)+1}b=_(c[z>>2]|0,c[v>>2]|0)|0;b=_(b,c[w>>2]|0)|0;k=_(c[v>>2]|0,c[w>>2]|0)|0;oj((c[p>>2]|0)+(b+(c[y>>2]|0)<<2)|0,0,k-(c[y>>2]|0)<<2|0)|0;k=(c[z>>2]|0)+1|0;c[z>>2]=k}while((k|0)<(c[q>>2]|0));i=D;return}function tb(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=i;i=i+160|0;l=w+144|0;k=w+140|0;m=w+136|0;n=w+132|0;o=w+128|0;p=w+124|0;r=w+120|0;q=w+116|0;s=w+112|0;t=w+8|0;u=w+4|0;v=w;c[l>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=h;g[s>>2]=0.0;j=+g[(c[k>>2]|0)+(c[n>>2]<<2)>>2];h=c[n>>2]|0;a:do if((c[p>>2]|0)==1){g[t+(h<<2)>>2]=j;c[r>>2]=(c[n>>2]|0)+1;while(1){if((c[r>>2]|0)>=(c[o>>2]|0))break a;h=c[r>>2]|0;if(+g[t+((c[r>>2]|0)-1<<2)>>2]-1.0>+g[(c[k>>2]|0)+(c[r>>2]<<2)>>2])j=+g[t+(h-1<<2)>>2]-1.0;else j=+g[(c[k>>2]|0)+(h<<2)>>2];g[t+(c[r>>2]<<2)>>2]=j;c[r>>2]=(c[r>>2]|0)+1}}else{f=c[n>>2]|0;if(j>+g[(c[k>>2]|0)+(h+(c[m>>2]|0)<<2)>>2])j=+g[(c[k>>2]|0)+(f<<2)>>2];else j=+g[(c[k>>2]|0)+(f+(c[m>>2]|0)<<2)>>2];g[t+(c[n>>2]<<2)>>2]=j;c[r>>2]=(c[n>>2]|0)+1;while(1){if((c[r>>2]|0)>=(c[o>>2]|0))break a;h=c[r>>2]|0;if(+g[(c[k>>2]|0)+(c[r>>2]<<2)>>2]>+g[(c[k>>2]|0)+((c[r>>2]|0)+(c[m>>2]|0)<<2)>>2])j=+g[(c[k>>2]|0)+(h<<2)>>2];else j=+g[(c[k>>2]|0)+(h+(c[m>>2]|0)<<2)>>2];f=c[r>>2]|0;do if(!(+g[t+((c[r>>2]|0)-1<<2)>>2]-1.0>j)){h=c[r>>2]|0;if(+g[(c[k>>2]|0)+(f<<2)>>2]>+g[(c[k>>2]|0)+((c[r>>2]|0)+(c[m>>2]|0)<<2)>>2]){j=+g[(c[k>>2]|0)+(h<<2)>>2];break}else{j=+g[(c[k>>2]|0)+(h+(c[m>>2]|0)<<2)>>2];break}}else j=+g[t+(f-1<<2)>>2]-1.0;while(0);g[t+(c[r>>2]<<2)>>2]=j;c[r>>2]=(c[r>>2]|0)+1}}while(0);c[r>>2]=(c[o>>2]|0)-2;while(1){if((c[r>>2]|0)<(c[n>>2]|0))break;h=c[r>>2]|0;if(+g[t+(c[r>>2]<<2)>>2]>+g[t+((c[r>>2]|0)+1<<2)>>2]-1.0)j=+g[t+(h<<2)>>2];else j=+g[t+(h+1<<2)>>2]-1.0;g[t+(c[r>>2]<<2)>>2]=j;c[r>>2]=(c[r>>2]|0)+-1}c[q>>2]=0;do{c[r>>2]=2>(c[n>>2]|0)?2:c[n>>2]|0;while(1){if((c[r>>2]|0)>=((c[o>>2]|0)-1|0))break;k=(c[r>>2]|0)+(_(c[q>>2]|0,c[m>>2]|0)|0)|0;if(0.0>+g[(c[l>>2]|0)+(k<<2)>>2])j=0.0;else{k=(c[r>>2]|0)+(_(c[q>>2]|0,c[m>>2]|0)|0)|0;j=+g[(c[l>>2]|0)+(k<<2)>>2]}g[u>>2]=j;if(0.0>+g[t+(c[r>>2]<<2)>>2])j=0.0;else j=+g[t+(c[r>>2]<<2)>>2];g[v>>2]=j;if(0.0>+g[u>>2]-+g[v>>2])j=0.0;else j=+g[u>>2]-+g[v>>2];g[s>>2]=+g[s>>2]+j;c[r>>2]=(c[r>>2]|0)+1}k=(c[q>>2]|0)+1|0;c[q>>2]=k}while((k|0)<(c[p>>2]|0));g[s>>2]=+g[s>>2]/+(_(c[p>>2]|0,(c[o>>2]|0)-1-(2>(c[n>>2]|0)?2:c[n>>2]|0)|0)|0);i=w;return +g[s>>2]>1.0|0}function ub(d,e,f,h,j,k,l,m,n,o,p){d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=+o;p=p|0;var q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0;W=i;i=i+144|0;q=W+128|0;H=W+124|0;I=W+120|0;T=W+116|0;J=W+112|0;s=W+108|0;t=W+104|0;K=W+100|0;u=W+96|0;X=W+92|0;r=W+88|0;U=W+84|0;L=W+80|0;M=W+76|0;F=W+72|0;G=W+64|0;V=W+60|0;A=W+56|0;S=W+52|0;B=W+48|0;x=W+44|0;C=W+40|0;w=W+36|0;y=W+32|0;z=W+28|0;v=W+24|0;D=W+20|0;E=W+16|0;O=W+12|0;P=W+8|0;Q=W+4|0;R=W;c[q>>2]=d;c[H>>2]=e;c[I>>2]=f;c[T>>2]=h;c[J>>2]=j;c[s>>2]=k;c[t>>2]=l;c[K>>2]=m;c[u>>2]=n;g[X>>2]=o;c[r>>2]=p;c[V>>2]=0;g[A>>2]=(-.25>.5-+g[X>>2]?-.25:.5-+g[X>>2])*.03999999910593033;k=c[H>>2]|0;c[S>>2]=ia()|0;j=i;i=i+((1*(k<<2)|0)+15&-16)|0;k=i;i=i+((1*((b[(c[(c[q>>2]|0)+32>>2]|0)+(c[H>>2]<<1)>>1]|0)-(b[(c[(c[q>>2]|0)+32>>2]|0)+((c[H>>2]|0)-1<<1)>>1]|0)<<c[K>>2]<<2)|0)+15&-16)|0;f=i;i=i+((1*((b[(c[(c[q>>2]|0)+32>>2]|0)+(c[H>>2]<<1)>>1]|0)-(b[(c[(c[q>>2]|0)+32>>2]|0)+((c[H>>2]|0)-1<<1)>>1]|0)<<c[K>>2]<<2)|0)+15&-16)|0;e=i;i=i+((1*(c[H>>2]<<2)|0)+15&-16)|0;d=i;i=i+((1*(c[H>>2]<<2)|0)+15&-16)|0;c[c[u>>2]>>2]=0;c[U>>2]=0;while(1){if((c[U>>2]|0)>=(c[H>>2]|0))break;c[z>>2]=0;c[x>>2]=(b[(c[(c[q>>2]|0)+32>>2]|0)+((c[U>>2]|0)+1<<1)>>1]|0)-(b[(c[(c[q>>2]|0)+32>>2]|0)+(c[U>>2]<<1)>>1]|0)<<c[K>>2];c[C>>2]=((b[(c[(c[q>>2]|0)+32>>2]|0)+((c[U>>2]|0)+1<<1)>>1]|0)-(b[(c[(c[q>>2]|0)+32>>2]|0)+(c[U>>2]<<1)>>1]|0)|0)==1&1;X=_(c[r>>2]|0,c[t>>2]|0)|0;pj(k|0,(c[s>>2]|0)+(X+(b[(c[(c[q>>2]|0)+32>>2]|0)+(c[U>>2]<<1)>>1]<<c[K>>2])<<2)|0,(c[x>>2]<<2)+0|0)|0;g[w>>2]=+vb(k,c[x>>2]|0,c[I>>2]|0?c[K>>2]|0:0,+g[A>>2]);g[y>>2]=+g[w>>2];if(!((c[I>>2]|0)==0|(c[C>>2]|0)!=0)?(pj(f|0,k|0,(c[x>>2]<<2)+0|0)|0,Ja(f,c[x>>2]>>c[K>>2],1<<c[K>>2]),g[w>>2]=+vb(f,c[x>>2]|0,(c[K>>2]|0)+1|0,+g[A>>2]),+g[w>>2]<+g[y>>2]):0){g[y>>2]=+g[w>>2];c[z>>2]=-1}c[B>>2]=0;while(1){m=(c[I>>2]|0)!=0;if((c[B>>2]|0)>=((c[K>>2]|0)+(((c[I>>2]|0?1:(c[C>>2]|0)!=0)^1)&1)|0))break;if(m)c[v>>2]=(c[K>>2]|0)-(c[B>>2]|0)-1;else c[v>>2]=(c[B>>2]|0)+1;Ja(k,c[x>>2]>>c[B>>2],1<<c[B>>2]);g[w>>2]=+vb(k,c[x>>2]|0,c[v>>2]|0,+g[A>>2]);if(+g[w>>2]<+g[y>>2]){g[y>>2]=+g[w>>2];c[z>>2]=(c[B>>2]|0)+1}c[B>>2]=(c[B>>2]|0)+1}l=c[z>>2]|0;if(m)c[j+(c[U>>2]<<2)>>2]=l<<1;else{X=_(-2,l)|0;c[j+(c[U>>2]<<2)>>2]=X}X=c[u>>2]|0;c[X>>2]=(c[X>>2]|0)+((c[I>>2]|0?c[K>>2]|0:0)-((c[j+(c[U>>2]<<2)>>2]|0)/2|0));do if(c[C>>2]|0){if(c[j+(c[U>>2]<<2)>>2]|0?(c[j+(c[U>>2]<<2)>>2]|0)!=(_(-2,c[K>>2]|0)|0):0)break;X=j+(c[U>>2]<<2)|0;c[X>>2]=(c[X>>2]|0)-1}while(0);c[U>>2]=(c[U>>2]|0)+1}c[V>>2]=0;c[F>>2]=0;while(1){if((c[F>>2]|0)>=2)break;c[L>>2]=0;c[M>>2]=c[I>>2]|0?0:c[J>>2]|0;c[U>>2]=1;while(1){m=c[L>>2]|0;l=c[M>>2]|0;if((c[U>>2]|0)>=(c[H>>2]|0))break;if((m|0)<(l+(c[J>>2]|0)|0))m=c[L>>2]|0;else m=(c[M>>2]|0)+(c[J>>2]|0)|0;c[D>>2]=m;if(((c[L>>2]|0)+(c[J>>2]|0)|0)<(c[M>>2]|0))m=(c[L>>2]|0)+(c[J>>2]|0)|0;else m=c[M>>2]|0;c[E>>2]=m;c[L>>2]=(c[D>>2]|0)+(N((c[j+(c[U>>2]<<2)>>2]|0)-(a[25232+(c[K>>2]<<3)+((c[I>>2]<<2)+(c[F>>2]<<1)+0)>>0]<<1)|0)|0);c[M>>2]=(c[E>>2]|0)+(N((c[j+(c[U>>2]<<2)>>2]|0)-(a[25232+(c[K>>2]<<3)+((c[I>>2]<<2)+(c[F>>2]<<1)+1)>>0]<<1)|0)|0);c[U>>2]=(c[U>>2]|0)+1}c[L>>2]=(m|0)<(l|0)?c[L>>2]|0:c[M>>2]|0;c[G+(c[F>>2]<<2)>>2]=c[L>>2];c[F>>2]=(c[F>>2]|0)+1}if(c[I>>2]|0?(c[G+4>>2]|0)<(c[G>>2]|0):0)c[V>>2]=1;c[L>>2]=0;c[M>>2]=c[I>>2]|0?0:c[J>>2]|0;c[U>>2]=1;while(1){m=c[L>>2]|0;if((c[U>>2]|0)>=(c[H>>2]|0))break;c[Q>>2]=m;c[R>>2]=(c[M>>2]|0)+(c[J>>2]|0);if((c[Q>>2]|0)<(c[R>>2]|0)){c[O>>2]=c[Q>>2];c[e+(c[U>>2]<<2)>>2]=0}else{c[O>>2]=c[R>>2];c[e+(c[U>>2]<<2)>>2]=1}c[Q>>2]=(c[L>>2]|0)+(c[J>>2]|0);c[R>>2]=c[M>>2];if((c[Q>>2]|0)<(c[R>>2]|0)){c[P>>2]=c[Q>>2];c[d+(c[U>>2]<<2)>>2]=0}else{c[P>>2]=c[R>>2];c[d+(c[U>>2]<<2)>>2]=1}c[L>>2]=(c[O>>2]|0)+(N((c[j+(c[U>>2]<<2)>>2]|0)-(a[25232+(c[K>>2]<<3)+((c[I>>2]<<2)+(c[V>>2]<<1)+0)>>0]<<1)|0)|0);c[M>>2]=(c[P>>2]|0)+(N((c[j+(c[U>>2]<<2)>>2]|0)-(a[25232+(c[K>>2]<<3)+((c[I>>2]<<2)+(c[V>>2]<<1)+1)>>0]<<1)|0)|0);c[U>>2]=(c[U>>2]|0)+1}c[(c[T>>2]|0)+((c[H>>2]|0)-1<<2)>>2]=(m|0)<(c[M>>2]|0)?0:1;c[U>>2]=(c[H>>2]|0)-2;while(1){if((c[U>>2]|0)<0)break;m=(c[U>>2]|0)+1|0;if((c[(c[T>>2]|0)+((c[U>>2]|0)+1<<2)>>2]|0)==1)c[(c[T>>2]|0)+(c[U>>2]<<2)>>2]=c[d+(m<<2)>>2];else c[(c[T>>2]|0)+(c[U>>2]<<2)>>2]=c[e+(m<<2)>>2];c[U>>2]=(c[U>>2]|0)+-1}X=c[V>>2]|0;na(c[S>>2]|0);i=W;return X|0}function vb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=+e;var f=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;f=n+20|0;h=n+16|0;j=n+12|0;k=n+8|0;m=n+4|0;l=n;c[f>>2]=a;c[h>>2]=b;c[j>>2]=d;g[k>>2]=e;g[l>>2]=0.0;c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[h>>2]|0))break;e=+N(+(+g[(c[f>>2]|0)+(c[m>>2]<<2)>>2]));g[l>>2]=+g[l>>2]+e;c[m>>2]=(c[m>>2]|0)+1}g[l>>2]=+g[l>>2]+ +(c[j>>2]|0)*+g[k>>2]*+g[l>>2];i=n;return +(+g[l>>2])}function wb(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=i;i=i+64|0;k=y+52|0;l=y+48|0;m=y+44|0;n=y+40|0;o=y+36|0;p=y+32|0;q=y+28|0;s=y+24|0;t=y+20|0;x=y+16|0;w=y+12|0;u=y+8|0;r=y+4|0;v=y;c[k>>2]=b;c[l>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;c[q>>2]=j;c[r>>2]=c[(c[q>>2]|0)+4>>2]<<3;c[v>>2]=ob(c[q>>2]|0)|0;c[u>>2]=c[m>>2]|0?2:4;if((c[o>>2]|0)>0)g=((c[v>>2]|0)+(c[u>>2]|0)+1|0)>>>0<=(c[r>>2]|0)>>>0;else g=0;c[x>>2]=g&1;c[r>>2]=(c[r>>2]|0)-(c[x>>2]|0);c[w>>2]=0;c[s>>2]=0;c[t>>2]=c[k>>2];while(1){if((c[t>>2]|0)>=(c[l>>2]|0))break;if(((c[v>>2]|0)+(c[u>>2]|0)|0)>>>0<=(c[r>>2]|0)>>>0){pc(c[q>>2]|0,c[(c[n>>2]|0)+(c[t>>2]<<2)>>2]^c[s>>2],c[u>>2]|0);c[v>>2]=ob(c[q>>2]|0)|0;c[s>>2]=c[(c[n>>2]|0)+(c[t>>2]<<2)>>2];c[w>>2]=c[w>>2]|c[s>>2]}else c[(c[n>>2]|0)+(c[t>>2]<<2)>>2]=c[s>>2];c[u>>2]=c[m>>2]|0?4:5;c[t>>2]=(c[t>>2]|0)+1}if(c[x>>2]|0?(a[25232+(c[o>>2]<<3)+((c[m>>2]<<2)+0+(c[w>>2]|0))>>0]|0)!=(a[25232+(c[o>>2]<<3)+((c[m>>2]<<2)+2+(c[w>>2]|0))>>0]|0):0)pc(c[q>>2]|0,c[p>>2]|0,1);else c[p>>2]=0;c[t>>2]=c[k>>2];while(1){if((c[t>>2]|0)>=(c[l>>2]|0))break;c[(c[n>>2]|0)+(c[t>>2]<<2)>>2]=a[25232+(c[o>>2]<<3)+((c[m>>2]<<2)+(c[p>>2]<<1)+(c[(c[n>>2]|0)+(c[t>>2]<<2)>>2]|0))>>0];c[t>>2]=(c[t>>2]|0)+1}i=y;return}function xb(a,d,e,f,h,j,k,l,m,n,o,p,q,r,s,t,u,v){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;s=s|0;t=t|0;u=u|0;v=v|0;var w=0.0,x=0.0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,$=0,aa=0,ba=0,ca=0,da=0;da=i;i=i+128|0;I=da+120|0;B=da+116|0;H=da+112|0;K=da+108|0;S=da+104|0;T=da+100|0;U=da+96|0;y=da+92|0;z=da+88|0;V=da+84|0;L=da+80|0;M=da+76|0;N=da+72|0;O=da+68|0;P=da+64|0;Q=da+60|0;A=da+56|0;J=da+52|0;Z=da+48|0;C=da+44|0;aa=da+40|0;$=da+36|0;R=da+32|0;E=da+28|0;F=da+24|0;G=da+20|0;D=da+16|0;ba=da+12|0;W=da+8|0;X=da+4|0;Y=da;c[I>>2]=a;c[B>>2]=d;c[H>>2]=e;c[K>>2]=f;c[S>>2]=h;c[T>>2]=j;c[U>>2]=k;c[y>>2]=l;c[z>>2]=m;c[V>>2]=n;c[L>>2]=o;c[M>>2]=p;c[N>>2]=q;c[O>>2]=r;c[P>>2]=s;c[Q>>2]=t;c[A>>2]=u;c[J>>2]=v;c[aa>>2]=0;o=_(c[T>>2]|0,c[H>>2]|0)|0;c[R>>2]=ia()|0;a=i;i=i+((1*(o<<2)|0)+15&-16)|0;o=(_(c[T>>2]|0,c[H>>2]|0)|0)<<2;r=i;i=i+((1*o|0)+15&-16)|0;oj(c[U>>2]|0,0,c[H>>2]<<2|0)|0;g[$>>2]=-31.899999618530273;c[Z>>2]=0;while(1){if((c[Z>>2]|0)>=(c[S>>2]|0))break;x=+(b[(c[z>>2]|0)+(c[Z>>2]<<1)>>1]|0)*.0625+.5+ +(9-(c[y>>2]|0)|0)-+g[17464+(c[Z>>2]<<2)>>2]+ +(_((c[Z>>2]|0)+5|0,(c[Z>>2]|0)+5|0)|0)*.006200000178068876;g[r+(c[Z>>2]<<2)>>2]=x;c[Z>>2]=(c[Z>>2]|0)+1}c[C>>2]=0;do{c[Z>>2]=0;while(1){if((c[Z>>2]|0)>=(c[S>>2]|0))break;z=_(c[C>>2]|0,c[H>>2]|0)|0;if(+g[$>>2]>+g[(c[I>>2]|0)+(z+(c[Z>>2]|0)<<2)>>2]-+g[r+(c[Z>>2]<<2)>>2])w=+g[$>>2];else{z=_(c[C>>2]|0,c[H>>2]|0)|0;w=+g[(c[I>>2]|0)+(z+(c[Z>>2]|0)<<2)>>2]-+g[r+(c[Z>>2]<<2)>>2]}g[$>>2]=w;c[Z>>2]=(c[Z>>2]|0)+1}z=(c[C>>2]|0)+1|0;c[C>>2]=z}while((z|0)<(c[T>>2]|0));if((c[P>>2]|0)>50&(c[O>>2]|0)>=1^1|(c[A>>2]|0)!=0){ba=c[aa>>2]|0;ca=c[Q>>2]|0;c[ca>>2]=ba;x=+g[$>>2];ca=c[R>>2]|0;na(ca|0);i=da;return +x}c[E>>2]=0;c[C>>2]=0;do{c[D>>2]=a+((_(c[C>>2]|0,c[H>>2]|0)|0)<<2);A=_(c[C>>2]|0,c[H>>2]|0)|0;g[c[D>>2]>>2]=+g[(c[B>>2]|0)+(A<<2)>>2];c[Z>>2]=1;while(1){if((c[Z>>2]|0)>=(c[S>>2]|0))break;z=_(c[C>>2]|0,c[H>>2]|0)|0;A=_(c[C>>2]|0,c[H>>2]|0)|0;if(+g[(c[B>>2]|0)+(z+(c[Z>>2]|0)<<2)>>2]>+g[(c[B>>2]|0)+(A+(c[Z>>2]|0)-1<<2)>>2]+.5)c[E>>2]=c[Z>>2];A=_(c[C>>2]|0,c[H>>2]|0)|0;if(+g[(c[D>>2]|0)+((c[Z>>2]|0)-1<<2)>>2]+1.5<+g[(c[B>>2]|0)+(A+(c[Z>>2]|0)<<2)>>2])w=+g[(c[D>>2]|0)+((c[Z>>2]|0)-1<<2)>>2]+1.5;else{A=_(c[C>>2]|0,c[H>>2]|0)|0;w=+g[(c[B>>2]|0)+(A+(c[Z>>2]|0)<<2)>>2]}g[(c[D>>2]|0)+(c[Z>>2]<<2)>>2]=w;c[Z>>2]=(c[Z>>2]|0)+1}c[Z>>2]=(c[E>>2]|0)-1;while(1){if((c[Z>>2]|0)<0)break;A=_(c[C>>2]|0,c[H>>2]|0)|0;if(+g[(c[D>>2]|0)+((c[Z>>2]|0)+1<<2)>>2]+2.0<+g[(c[B>>2]|0)+(A+(c[Z>>2]|0)<<2)>>2])w=+g[(c[D>>2]|0)+((c[Z>>2]|0)+1<<2)>>2]+2.0;else{A=_(c[C>>2]|0,c[H>>2]|0)|0;w=+g[(c[B>>2]|0)+(A+(c[Z>>2]|0)<<2)>>2]}j=c[Z>>2]|0;do if(!(+g[(c[D>>2]|0)+(c[Z>>2]<<2)>>2]<w)){A=_(c[C>>2]|0,c[H>>2]|0)|0;if(+g[(c[D>>2]|0)+(j+1<<2)>>2]+2.0<+g[(c[B>>2]|0)+(A+(c[Z>>2]|0)<<2)>>2]){w=+g[(c[D>>2]|0)+((c[Z>>2]|0)+1<<2)>>2]+2.0;break}else{A=_(c[C>>2]|0,c[H>>2]|0)|0;w=+g[(c[B>>2]|0)+(A+(c[Z>>2]|0)<<2)>>2];break}}else w=+g[(c[D>>2]|0)+(j<<2)>>2];while(0);g[(c[D>>2]|0)+(c[Z>>2]<<2)>>2]=w;c[Z>>2]=(c[Z>>2]|0)+-1}g[F>>2]=1.0;c[Z>>2]=2;while(1){if((c[Z>>2]|0)>=((c[S>>2]|0)-2|0))break;w=+g[(c[D>>2]|0)+(c[Z>>2]<<2)>>2];A=_(c[C>>2]|0,c[H>>2]|0)|0;x=+yb((c[B>>2]|0)+(A+(c[Z>>2]|0)-2<<2)|0);if(w>x-+g[F>>2])w=+g[(c[D>>2]|0)+(c[Z>>2]<<2)>>2];else{A=_(c[C>>2]|0,c[H>>2]|0)|0;w=+yb((c[B>>2]|0)+(A+(c[Z>>2]|0)-2<<2)|0);w=w-+g[F>>2]}g[(c[D>>2]|0)+(c[Z>>2]<<2)>>2]=w;c[Z>>2]=(c[Z>>2]|0)+1}A=_(c[C>>2]|0,c[H>>2]|0)|0;x=+zb((c[B>>2]|0)+(A<<2)|0);g[G>>2]=x-+g[F>>2];if(+g[c[D>>2]>>2]>+g[G>>2])w=+g[c[D>>2]>>2];else w=+g[G>>2];g[c[D>>2]>>2]=w;if(+g[(c[D>>2]|0)+4>>2]>+g[G>>2])w=+g[(c[D>>2]|0)+4>>2];else w=+g[G>>2];g[(c[D>>2]|0)+4>>2]=w;A=_(c[C>>2]|0,c[H>>2]|0)|0;x=+zb((c[B>>2]|0)+(A+(c[S>>2]|0)-3<<2)|0);g[G>>2]=x-+g[F>>2];if(+g[(c[D>>2]|0)+((c[S>>2]|0)-2<<2)>>2]>+g[G>>2])w=+g[(c[D>>2]|0)+((c[S>>2]|0)-2<<2)>>2];else w=+g[G>>2];g[(c[D>>2]|0)+((c[S>>2]|0)-2<<2)>>2]=w;if(+g[(c[D>>2]|0)+((c[S>>2]|0)-1<<2)>>2]>+g[G>>2])w=+g[(c[D>>2]|0)+((c[S>>2]|0)-1<<2)>>2];else w=+g[G>>2];g[(c[D>>2]|0)+((c[S>>2]|0)-1<<2)>>2]=w;c[Z>>2]=0;while(1){if((c[Z>>2]|0)>=(c[S>>2]|0))break;j=c[Z>>2]|0;if(+g[(c[D>>2]|0)+(c[Z>>2]<<2)>>2]>+g[r+(c[Z>>2]<<2)>>2])w=+g[(c[D>>2]|0)+(j<<2)>>2];else w=+g[r+(j<<2)>>2];g[(c[D>>2]|0)+(c[Z>>2]<<2)>>2]=w;c[Z>>2]=(c[Z>>2]|0)+1}A=(c[C>>2]|0)+1|0;c[C>>2]=A}while((A|0)<(c[T>>2]|0));G=(c[T>>2]|0)==2;c[Z>>2]=c[K>>2];a:do if(G)while(1){if((c[Z>>2]|0)>=(c[S>>2]|0))break a;if(+g[a+((c[H>>2]|0)+(c[Z>>2]|0)<<2)>>2]>+g[a+(c[Z>>2]<<2)>>2]-4.0)w=+g[a+((c[H>>2]|0)+(c[Z>>2]|0)<<2)>>2];else w=+g[a+(c[Z>>2]<<2)>>2]-4.0;g[a+((c[H>>2]|0)+(c[Z>>2]|0)<<2)>>2]=w;if(+g[a+(c[Z>>2]<<2)>>2]>+g[a+((c[H>>2]|0)+(c[Z>>2]|0)<<2)>>2]-4.0)w=+g[a+(c[Z>>2]<<2)>>2];else w=+g[a+((c[H>>2]|0)+(c[Z>>2]|0)<<2)>>2]-4.0;g[a+(c[Z>>2]<<2)>>2]=w;if(0.0>+g[(c[I>>2]|0)+(c[Z>>2]<<2)>>2]-+g[a+(c[Z>>2]<<2)>>2])x=0.0;else x=+g[(c[I>>2]|0)+(c[Z>>2]<<2)>>2]-+g[a+(c[Z>>2]<<2)>>2];if(0.0>+g[(c[I>>2]|0)+((c[H>>2]|0)+(c[Z>>2]|0)<<2)>>2]-+g[a+((c[H>>2]|0)+(c[Z>>2]|0)<<2)>>2])w=0.0;else w=+g[(c[I>>2]|0)+((c[H>>2]|0)+(c[Z>>2]|0)<<2)>>2]-+g[a+((c[H>>2]|0)+(c[Z>>2]|0)<<2)>>2];g[a+(c[Z>>2]<<2)>>2]=(x+w)*.5;c[Z>>2]=(c[Z>>2]|0)+1}else while(1){if((c[Z>>2]|0)>=(c[S>>2]|0))break a;if(0.0>+g[(c[I>>2]|0)+(c[Z>>2]<<2)>>2]-+g[a+(c[Z>>2]<<2)>>2])w=0.0;else w=+g[(c[I>>2]|0)+(c[Z>>2]<<2)>>2]-+g[a+(c[Z>>2]<<2)>>2];g[a+(c[Z>>2]<<2)>>2]=w;c[Z>>2]=(c[Z>>2]|0)+1}while(0);c[Z>>2]=c[K>>2];while(1){if((c[Z>>2]|0)>=(c[S>>2]|0))break;j=c[Z>>2]|0;if(+g[a+(c[Z>>2]<<2)>>2]>+g[(c[J>>2]|0)+(c[Z>>2]<<2)>>2])w=+g[a+(j<<2)>>2];else w=+g[(c[J>>2]|0)+(j<<2)>>2];g[a+(c[Z>>2]<<2)>>2]=w;c[Z>>2]=(c[Z>>2]|0)+1}b:do if(!(((c[L>>2]|0)==0|(c[M>>2]|0)!=0)^1|(c[V>>2]|0)!=0)){c[Z>>2]=c[K>>2];while(1){if((c[Z>>2]|0)>=(c[S>>2]|0))break b;g[a+(c[Z>>2]<<2)>>2]=+g[a+(c[Z>>2]<<2)>>2]*.5;c[Z>>2]=(c[Z>>2]|0)+1}}while(0);c[Z>>2]=c[K>>2];while(1){if((c[Z>>2]|0)>=(c[S>>2]|0)){ca=103;break}if((c[Z>>2]|0)<8){K=a+(c[Z>>2]<<2)|0;g[K>>2]=+g[K>>2]*2.0}if((c[Z>>2]|0)>=12)g[a+(c[Z>>2]<<2)>>2]=+g[a+(c[Z>>2]<<2)>>2]*.5;if(+g[a+(c[Z>>2]<<2)>>2]<4.0)w=+g[a+(c[Z>>2]<<2)>>2];else w=4.0;g[a+(c[Z>>2]<<2)>>2]=w;K=_(c[T>>2]|0,(b[(c[N>>2]|0)+((c[Z>>2]|0)+1<<1)>>1]|0)-(b[(c[N>>2]|0)+(c[Z>>2]<<1)>>1]|0)|0)|0;c[ba>>2]=K<<c[O>>2];do if((c[ba>>2]|0)>=6){w=+g[a+(c[Z>>2]<<2)>>2];if((c[ba>>2]|0)>48){c[W>>2]=~~(w*8.0);c[X>>2]=((_(c[W>>2]|0,c[ba>>2]|0)|0)<<3|0)/8|0;break}else{c[W>>2]=~~(w*+(c[ba>>2]|0)/6.0);c[X>>2]=(c[W>>2]|0)*6<<3;break}}else{c[W>>2]=~~+g[a+(c[Z>>2]<<2)>>2];c[X>>2]=(_(c[W>>2]|0,c[ba>>2]|0)|0)<<3}while(0);if(!(c[L>>2]|0?(c[M>>2]|0)==0|(c[V>>2]|0)!=0:0))ca=100;if((ca|0)==100?(ca=0,((c[aa>>2]|0)+(c[X>>2]|0)>>3>>3|0)>((c[P>>2]|0)/4|0|0)):0)break;c[(c[U>>2]|0)+(c[Z>>2]<<2)>>2]=c[W>>2];c[aa>>2]=(c[aa>>2]|0)+(c[X>>2]|0);c[Z>>2]=(c[Z>>2]|0)+1}if((ca|0)==103){ba=c[aa>>2]|0;ca=c[Q>>2]|0;c[ca>>2]=ba;x=+g[$>>2];ca=c[R>>2]|0;na(ca|0);i=da;return +x}c[Y>>2]=((c[P>>2]|0)/4|0)<<3<<3;c[(c[U>>2]|0)+(c[Z>>2]<<2)>>2]=(c[Y>>2]|0)-(c[aa>>2]|0);c[aa>>2]=c[Y>>2];ba=c[aa>>2]|0;ca=c[Q>>2]|0;c[ca>>2]=ba;x=+g[$>>2];ca=c[R>>2]|0;na(ca|0);i=da;return +x}function yb(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0.0;n=i;i=i+48|0;b=n+32|0;d=n+28|0;e=n+24|0;f=n+20|0;h=n+16|0;j=n+12|0;k=n+8|0;l=n+4|0;m=n;c[d>>2]=a;g[h>>2]=+g[(c[d>>2]|0)+8>>2];a=c[d>>2]|0;if(+g[c[d>>2]>>2]>+g[(c[d>>2]|0)+4>>2]){g[e>>2]=+g[a+4>>2];g[f>>2]=+g[c[d>>2]>>2]}else{g[e>>2]=+g[a>>2];g[f>>2]=+g[(c[d>>2]|0)+4>>2]}a=c[d>>2]|0;if(+g[(c[d>>2]|0)+12>>2]>+g[(c[d>>2]|0)+16>>2]){g[j>>2]=+g[a+16>>2];g[k>>2]=+g[(c[d>>2]|0)+12>>2]}else{g[j>>2]=+g[a+12>>2];g[k>>2]=+g[(c[d>>2]|0)+16>>2]}if(+g[e>>2]>+g[j>>2]){g[l>>2]=+g[e>>2];g[e>>2]=+g[j>>2];g[j>>2]=+g[l>>2];g[m>>2]=+g[f>>2];g[f>>2]=+g[k>>2];g[k>>2]=+g[m>>2]}if(+g[h>>2]>+g[f>>2])if(+g[f>>2]<+g[j>>2]){g[b>>2]=+g[h>>2]<+g[j>>2]?+g[h>>2]:+g[j>>2];o=+g[b>>2];i=n;return +o}else{g[b>>2]=+g[k>>2]<+g[f>>2]?+g[k>>2]:+g[f>>2];o=+g[b>>2];i=n;return +o}else if(+g[h>>2]<+g[j>>2]){g[b>>2]=+g[f>>2]<+g[j>>2]?+g[f>>2]:+g[j>>2];o=+g[b>>2];i=n;return +o}else{g[b>>2]=+g[h>>2]<+g[k>>2]?+g[h>>2]:+g[k>>2];o=+g[b>>2];i=n;return +o}return 0.0}function zb(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,j=0,k=0.0;j=i;i=i+32|0;b=j+16|0;d=j+12|0;e=j+8|0;f=j+4|0;h=j;c[d>>2]=a;a=c[d>>2]|0;if(+g[c[d>>2]>>2]>+g[(c[d>>2]|0)+4>>2]){g[e>>2]=+g[a+4>>2];g[f>>2]=+g[c[d>>2]>>2]}else{g[e>>2]=+g[a>>2];g[f>>2]=+g[(c[d>>2]|0)+4>>2]}g[h>>2]=+g[(c[d>>2]|0)+8>>2];if(+g[f>>2]<+g[h>>2]){g[b>>2]=+g[f>>2];k=+g[b>>2];i=j;return +k}if(+g[e>>2]<+g[h>>2]){g[b>>2]=+g[h>>2];k=+g[b>>2];i=j;return +k}else{g[b>>2]=+g[e>>2];k=+g[b>>2];i=j;return +k}return 0.0}function Ab(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0;v=i;i=i+64|0;h=v+48|0;j=v+44|0;k=v+40|0;l=v+36|0;q=v+32|0;u=v+28|0;s=v+24|0;t=v+20|0;r=v+16|0;m=v+12|0;o=v+8|0;n=v+4|0;p=v;c[h>>2]=a;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;g[s>>2]=1.0000000036274937e-15;g[t>>2]=1.0000000036274937e-15;c[q>>2]=0;while(1){if((c[q>>2]|0)>=13)break;c[r>>2]=b[(c[(c[h>>2]|0)+32>>2]|0)+(c[q>>2]<<1)>>1]<<c[k>>2];while(1){if((c[r>>2]|0)>=(b[(c[(c[h>>2]|0)+32>>2]|0)+((c[q>>2]|0)+1<<1)>>1]<<c[k>>2]|0))break;g[m>>2]=+g[(c[j>>2]|0)+(c[r>>2]<<2)>>2];g[o>>2]=+g[(c[j>>2]|0)+((c[l>>2]|0)+(c[r>>2]|0)<<2)>>2];g[n>>2]=+g[m>>2]+ +g[o>>2];g[p>>2]=+g[m>>2]-+g[o>>2];w=+N(+(+g[m>>2]));g[s>>2]=+g[s>>2]+(w+ +N(+(+g[o>>2])));w=+N(+(+g[n>>2]));g[t>>2]=+g[t>>2]+(w+ +N(+(+g[p>>2])));c[r>>2]=(c[r>>2]|0)+1}c[q>>2]=(c[q>>2]|0)+1}g[t>>2]=+g[t>>2]*.7071070075035095;c[u>>2]=13;if((c[k>>2]|0)<=1)c[u>>2]=(c[u>>2]|0)-8;i=v;return +((b[(c[(c[h>>2]|0)+32>>2]|0)+26>>1]<<(c[k>>2]|0)+1)+(c[u>>2]|0)|0)*+g[t>>2]>+(b[(c[(c[h>>2]|0)+32>>2]|0)+26>>1]<<(c[k>>2]|0)+1|0)*+g[s>>2]|0}function Bb(a,d,e,f,h,j,k,l,m,n,o,p,q){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=+n;o=o|0;p=+p;q=q|0;var r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,O=0,P=0,Q=0;Q=i;i=i+96|0;B=Q+92|0;s=Q+88|0;C=Q+84|0;D=Q+80|0;u=Q+76|0;E=Q+72|0;v=Q+68|0;L=Q+64|0;F=Q+60|0;K=Q+56|0;t=Q+52|0;J=Q+48|0;H=Q+40|0;I=Q+36|0;G=Q+32|0;P=Q+28|0;O=Q+24|0;z=Q+20|0;A=Q+16|0;y=Q+12|0;x=Q+8|0;r=Q+4|0;w=Q;c[B>>2]=a;c[s>>2]=d;c[C>>2]=e;c[D>>2]=f;c[u>>2]=h;c[E>>2]=j;c[v>>2]=k;c[L>>2]=l;c[F>>2]=m;g[K>>2]=n;c[t>>2]=o;g[J>>2]=p;c[Q+44>>2]=q;g[I>>2]=0.0;g[O>>2]=5.0;if((c[E>>2]|0)==2){g[y>>2]=0.0;c[H>>2]=0;while(1){if((c[H>>2]|0)>=8)break;g[r>>2]=+Cb((c[s>>2]|0)+(b[(c[(c[B>>2]|0)+32>>2]|0)+(c[H>>2]<<1)>>1]<<c[u>>2]<<2)|0,(c[s>>2]|0)+((c[v>>2]|0)+(b[(c[(c[B>>2]|0)+32>>2]|0)+(c[H>>2]<<1)>>1]<<c[u>>2])<<2)|0,(b[(c[(c[B>>2]|0)+32>>2]|0)+((c[H>>2]|0)+1<<1)>>1]|0)-(b[(c[(c[B>>2]|0)+32>>2]|0)+(c[H>>2]<<1)>>1]|0)<<c[u>>2]);g[y>>2]=+g[y>>2]+ +g[r>>2];c[H>>2]=(c[H>>2]|0)+1}g[y>>2]=+g[y>>2]*.125;if(1.0<+N(+(+g[y>>2])))p=1.0;else p=+N(+(+g[y>>2]));g[y>>2]=p;g[x>>2]=+g[y>>2];c[H>>2]=8;while(1){if((c[H>>2]|0)>=(c[t>>2]|0))break;g[w>>2]=+Cb((c[s>>2]|0)+(b[(c[(c[B>>2]|0)+32>>2]|0)+(c[H>>2]<<1)>>1]<<c[u>>2]<<2)|0,(c[s>>2]|0)+((c[v>>2]|0)+(b[(c[(c[B>>2]|0)+32>>2]|0)+(c[H>>2]<<1)>>1]<<c[u>>2])<<2)|0,(b[(c[(c[B>>2]|0)+32>>2]|0)+((c[H>>2]|0)+1<<1)>>1]|0)-(b[(c[(c[B>>2]|0)+32>>2]|0)+(c[H>>2]<<1)>>1]|0)<<c[u>>2]);if(+g[x>>2]<+N(+(+g[w>>2])))p=+g[x>>2];else p=+N(+(+g[w>>2]));g[x>>2]=p;c[H>>2]=(c[H>>2]|0)+1}if(1.0<+N(+(+g[x>>2])))p=1.0;else p=+N(+(+g[x>>2]));g[x>>2]=p;g[z>>2]=+Y(+(1.0010000467300415-+g[y>>2]*+g[y>>2]))*1.4426950408889634;if(+g[z>>2]*.5>+Y(+(1.0010000467300415-+g[x>>2]*+g[x>>2]))*1.4426950408889634)p=+g[z>>2]*.5;else p=+Y(+(1.0010000467300415-+g[x>>2]*+g[x>>2]))*1.4426950408889634;g[A>>2]=p;g[O>>2]=+g[O>>2]+(-4.0>+g[z>>2]*.75?-4.0:+g[z>>2]*.75);if(+g[c[F>>2]>>2]+.25<-(+g[A>>2]*.5))p=+g[c[F>>2]>>2]+.25;else p=-(+g[A>>2]*.5);g[c[F>>2]>>2]=p}c[G>>2]=0;do{c[H>>2]=0;while(1){if((c[H>>2]|0)>=((c[D>>2]|0)-1|0))break;F=(c[H>>2]|0)+(_(c[G>>2]|0,c[(c[B>>2]|0)+8>>2]|0)|0)|0;g[I>>2]=+g[I>>2]+ +g[(c[C>>2]|0)+(F<<2)>>2]*+(2+(c[H>>2]<<1)-(c[D>>2]|0)|0);c[H>>2]=(c[H>>2]|0)+1}F=(c[G>>2]|0)+1|0;c[G>>2]=F}while((F|0)<(c[E>>2]|0));n=+(_(c[E>>2]|0,(c[D>>2]|0)-1|0)|0);g[I>>2]=+g[I>>2]/n;if(2.0<(+g[I>>2]+1.0)/6.0)p=2.0;else p=(+g[I>>2]+1.0)/6.0;if(!(-2.0>p))if(2.0<(+g[I>>2]+1.0)/6.0)p=2.0;else p=(+g[I>>2]+1.0)/6.0;else p=-2.0;g[O>>2]=+g[O>>2]-p;g[O>>2]=+g[O>>2]-+g[J>>2];g[O>>2]=+g[O>>2]-+g[K>>2]*2.0;if(c[c[L>>2]>>2]|0){if(2.0<(+g[(c[L>>2]|0)+8>>2]+.05000000074505806)*2.0)p=2.0;else p=(+g[(c[L>>2]|0)+8>>2]+.05000000074505806)*2.0;if(!(-2.0>p))if(2.0<(+g[(c[L>>2]|0)+8>>2]+.05000000074505806)*2.0)p=2.0;else p=(+g[(c[L>>2]|0)+8>>2]+.05000000074505806)*2.0;else p=-2.0;g[O>>2]=+g[O>>2]-p}c[P>>2]=~~+M(+(+g[O>>2]+.5));if(0>((10<(c[P>>2]|0)?10:c[P>>2]|0)|0)){O=0;c[P>>2]=O;P=c[P>>2]|0;i=Q;return P|0}O=10<(c[P>>2]|0)?10:c[P>>2]|0;c[P>>2]=O;P=c[P>>2]|0;i=Q;return P|0}function Cb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;f=m+16|0;h=m+12|0;j=m+8|0;k=m+4|0;l=m;c[f>>2]=a;c[h>>2]=b;c[j>>2]=d;g[l>>2]=0.0;c[k>>2]=0;while(1){e=+g[l>>2];if((c[k>>2]|0)>=(c[j>>2]|0))break;g[l>>2]=e+ +g[(c[f>>2]|0)+(c[k>>2]<<2)>>2]*+g[(c[h>>2]|0)+(c[k>>2]<<2)>>2];c[k>>2]=(c[k>>2]|0)+1}i=m;return +e}function Db(a,d,e,f,h,j,k,l,m,n,o,p,q,r,s,t,u,v,w){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=+n;o=o|0;p=+p;q=q|0;r=+r;s=s|0;t=t|0;u=u|0;v=+v;w=+w;var x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0;ea=i;i=i+144|0;ga=ea+140|0;D=ea+136|0;aa=ea+132|0;P=ea+128|0;X=ea+124|0;fa=ea+120|0;Q=ea+116|0;x=ea+112|0;Y=ea+108|0;y=ea+104|0;E=ea+100|0;V=ea+96|0;H=ea+92|0;N=ea+88|0;F=ea+84|0;O=ea+80|0;W=ea+76|0;I=ea+72|0;$=ea+68|0;ca=ea+64|0;J=ea+60|0;z=ea+56|0;G=ea+52|0;U=ea+48|0;S=ea+44|0;A=ea+40|0;B=ea+36|0;C=ea+32|0;M=ea+28|0;L=ea+24|0;K=ea+20|0;T=ea+16|0;R=ea+12|0;Z=ea+8|0;ba=ea+4|0;da=ea;c[ga>>2]=a;c[D>>2]=d;c[aa>>2]=e;c[P>>2]=f;c[X>>2]=h;c[fa>>2]=j;c[Q>>2]=k;c[x>>2]=l;c[Y>>2]=m;g[y>>2]=n;c[E>>2]=o;g[V>>2]=p;c[H>>2]=q;g[N>>2]=r;c[F>>2]=s;c[O>>2]=t;c[W>>2]=u;g[I>>2]=v;g[$>>2]=w;c[U>>2]=c[(c[ga>>2]|0)+8>>2];c[S>>2]=c[(c[ga>>2]|0)+32>>2];c[z>>2]=c[fa>>2]|0?c[fa>>2]|0:c[U>>2]|0;c[J>>2]=b[(c[S>>2]|0)+(c[z>>2]<<1)>>1]<<c[P>>2];if((c[Q>>2]|0)==2)c[J>>2]=(c[J>>2]|0)+(b[(c[S>>2]|0)+(((c[x>>2]|0)<(c[z>>2]|0)?c[x>>2]|0:c[z>>2]|0)<<1)>>1]<<c[P>>2]);c[ca>>2]=c[aa>>2];if(c[c[D>>2]>>2]|0?+g[(c[D>>2]|0)+16>>2]<.4:0)c[ca>>2]=(c[ca>>2]|0)-~~(+(c[J>>2]<<3|0)*(.4000000059604645-+g[(c[D>>2]|0)+16>>2]));if((c[Q>>2]|0)==2){c[A>>2]=(c[x>>2]|0)<(c[z>>2]|0)?c[x>>2]|0:c[z>>2]|0;c[B>>2]=(b[(c[S>>2]|0)+(c[A>>2]<<1)>>1]<<c[P>>2])-(c[A>>2]|0);g[C>>2]=+(c[B>>2]|0)*.800000011920929/+(c[J>>2]|0);g[y>>2]=+g[y>>2]<1.0?+g[y>>2]:1.0;if(+g[C>>2]*+(c[ca>>2]|0)<(+g[y>>2]-.10000000149011612)*+(c[B>>2]<<3|0))r=+g[C>>2]*+(c[ca>>2]|0);else r=(+g[y>>2]-.10000000149011612)*+(c[B>>2]<<3|0);c[ca>>2]=(c[ca>>2]|0)-~~r}c[ca>>2]=(c[ca>>2]|0)+((c[E>>2]|0)-(16<<c[P>>2]));g[G>>2]=(c[F>>2]|0)==5010?.019999999552965164:.03999999910593033;c[ca>>2]=(c[ca>>2]|0)+~~((+g[V>>2]-+g[G>>2])*+(c[ca>>2]|0));if(!(c[O>>2]|0?1:(c[c[D>>2]>>2]|0)==0)){if(0.0>+g[(c[D>>2]|0)+4>>2]-.15000000596046448)r=0.0;else r=+g[(c[D>>2]|0)+4>>2]-.15000000596046448;g[L>>2]=r-.09000000357627869;c[M>>2]=(c[ca>>2]|0)+~~(+(c[J>>2]<<3|0)*1.2000000476837158*+g[L>>2]);if(c[H>>2]|0)c[M>>2]=(c[M>>2]|0)+~~(+(c[J>>2]<<3|0)*.800000011920929);c[ca>>2]=c[M>>2]}if(!((c[W>>2]|0)==0|(c[O>>2]|0)!=0)){c[K>>2]=(c[ca>>2]|0)+~~(+g[I>>2]*+(c[J>>2]<<3|0));if(((c[ca>>2]|0)/4|0|0)>(c[K>>2]|0))x=(c[ca>>2]|0)/4|0;else x=c[K>>2]|0;c[ca>>2]=x}c[R>>2]=b[(c[S>>2]|0)+((c[U>>2]|0)-2<<1)>>1]<<c[P>>2];p=+((_(c[Q>>2]|0,c[R>>2]|0)|0)<<3|0);c[T>>2]=~~(p*+g[N>>2]);c[T>>2]=(c[T>>2]|0)>(c[ca>>2]>>2|0)?c[T>>2]|0:c[ca>>2]>>2;c[ca>>2]=(c[ca>>2]|0)<(c[T>>2]|0)?c[ca>>2]|0:c[T>>2]|0;if((c[W>>2]|0)==0|(c[O>>2]|0)!=0?(c[Y>>2]|0)!=0|(c[X>>2]|0)<64e3:0){if(0.0>+((c[X>>2]|0)-32e3|0)*.000030517578125)r=0.0;else r=+((c[X>>2]|0)-32e3|0)*.000030517578125;g[Z>>2]=r;if(c[Y>>2]|0)g[Z>>2]=+g[Z>>2]<.6700000166893005?+g[Z>>2]:.6700000166893005;c[ca>>2]=(c[aa>>2]|0)+~~(+g[Z>>2]*+((c[ca>>2]|0)-(c[aa>>2]|0)|0))}if(!((c[W>>2]|0)==0&+g[V>>2]<.20000000298023224)){fa=c[aa>>2]|0;fa=fa<<1;da=c[ca>>2]|0;da=(fa|0)<(da|0);fa=c[aa>>2]|0;fa=fa<<1;ga=c[ca>>2]|0;ga=da?fa:ga;c[ca>>2]=ga;ga=c[ca>>2]|0;i=ea;return ga|0}if(0>((32e3<(96e3-(c[X>>2]|0)|0)?32e3:96e3-(c[X>>2]|0)|0)|0))x=0;else x=32e3<(96e3-(c[X>>2]|0)|0)?32e3:96e3-(c[X>>2]|0)|0;g[ba>>2]=+(x|0)*3.099999958067201e-06;g[da>>2]=+g[$>>2]*+g[ba>>2];c[ca>>2]=(c[ca>>2]|0)+~~(+g[da>>2]*+(c[ca>>2]|0));fa=c[aa>>2]|0;fa=fa<<1;da=c[ca>>2]|0;da=(fa|0)<(da|0);fa=c[aa>>2]|0;fa=fa<<1;ga=c[ca>>2]|0;ga=da?fa:ga;c[ca>>2]=ga;ga=c[ca>>2]|0;i=ea;return ga|0}function Eb(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c[(c[b>>2]|0)+44>>2]|0}function Fb(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=Jc(48e3,960,0)|0;a=Gb(c[e>>2]|0,c[d>>2]|0)|0;i=b;return a|0}function Gb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=i;i=i+16|0;f=e+8|0;g=e+4|0;d=e;c[f>>2]=a;c[g>>2]=b;a=88+((_(c[g>>2]|0,2048+(c[(c[f>>2]|0)+4>>2]|0)|0)|0)-1<<2)|0;c[d>>2]=a+((c[g>>2]|0)*24<<2)+(c[(c[f>>2]|0)+8>>2]<<3<<2);i=e;return c[d>>2]|0}function Hb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;j=i;i=i+32|0;e=j+16|0;f=j+12|0;g=j+8|0;k=j+4|0;h=j;c[f>>2]=a;c[g>>2]=b;c[k>>2]=d;b=c[f>>2]|0;a=Jc(48e3,960,0)|0;c[h>>2]=Ib(b,a,c[k>>2]|0)|0;if(c[h>>2]|0){c[e>>2]=c[h>>2];k=c[e>>2]|0;i=j;return k|0}k=bb(c[g>>2]|0)|0;c[(c[f>>2]|0)+16>>2]=k;if(!(c[(c[f>>2]|0)+16>>2]|0)){c[e>>2]=-1;k=c[e>>2]|0;i=j;return k|0}else{c[e>>2]=0;k=c[e>>2]|0;i=j;return k|0}return 0}function Ib(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+32|0;e=j+16|0;f=j+12|0;g=j+8|0;h=j+4|0;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;if((c[h>>2]|0)<0|(c[h>>2]|0)>2){c[e>>2]=-1;a=c[e>>2]|0;i=j;return a|0}if(!(c[f>>2]|0)){c[e>>2]=-7;a=c[e>>2]|0;i=j;return a|0}else{a=c[f>>2]|0;oj(a|0,0,Gb(c[g>>2]|0,c[h>>2]|0)|0)|0;c[c[f>>2]>>2]=c[g>>2];c[(c[f>>2]|0)+4>>2]=c[(c[g>>2]|0)+4>>2];a=c[h>>2]|0;c[(c[f>>2]|0)+8>>2]=a;c[(c[f>>2]|0)+12>>2]=a;c[(c[f>>2]|0)+16>>2]=1;c[(c[f>>2]|0)+20>>2]=0;c[(c[f>>2]|0)+24>>2]=c[(c[c[f>>2]>>2]|0)+12>>2];c[(c[f>>2]|0)+28>>2]=1;a=Jb()|0;c[(c[f>>2]|0)+32>>2]=a;c[(c[f>>2]|0)+48>>2]=0;Kb(c[f>>2]|0,4028,j)|0;c[e>>2]=0;a=c[e>>2]|0;i=j;return a|0}return 0}function Jb(){return 0}function Kb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;x=i;i=i+96|0;w=x+80|0;e=x+76|0;y=x+72|0;f=x+56|0;n=x+52|0;o=x+48|0;p=x+44|0;q=x+40|0;r=x+36|0;h=x+32|0;j=x+28|0;k=x+24|0;l=x+20|0;m=x+16|0;s=x+12|0;t=x+8|0;u=x+4|0;v=x;c[e>>2]=a;c[y>>2]=b;c[f>>2]=d;a:do switch(c[y>>2]|0){case 10010:{d=(c[f>>2]|0)+(4-1)&~(4-1);y=c[d>>2]|0;c[f>>2]=d+4;c[n>>2]=y;if((c[n>>2]|0)>=0?(c[n>>2]|0)<(c[(c[c[e>>2]>>2]|0)+8>>2]|0):0){c[(c[e>>2]|0)+20>>2]=c[n>>2];e=24}else e=25;break}case 10012:{d=(c[f>>2]|0)+(4-1)&~(4-1);y=c[d>>2]|0;c[f>>2]=d+4;c[o>>2]=y;if((c[o>>2]|0)>=1?(c[o>>2]|0)<=(c[(c[c[e>>2]>>2]|0)+8>>2]|0):0){c[(c[e>>2]|0)+24>>2]=c[o>>2];e=24}else e=25;break}case 10008:{d=(c[f>>2]|0)+(4-1)&~(4-1);y=c[d>>2]|0;c[f>>2]=d+4;c[p>>2]=y;if((c[p>>2]|0)<1|(c[p>>2]|0)>2)e=25;else{c[(c[e>>2]|0)+12>>2]=c[p>>2];e=24}break}case 10007:{d=(c[f>>2]|0)+(4-1)&~(4-1);y=c[d>>2]|0;c[f>>2]=d+4;c[q>>2]=y;if(!(c[q>>2]|0))e=25;else{c[c[q>>2]>>2]=c[(c[e>>2]|0)+40>>2];c[(c[e>>2]|0)+40>>2]=0;e=24}break}case 4027:{d=(c[f>>2]|0)+(4-1)&~(4-1);y=c[d>>2]|0;c[f>>2]=d+4;c[r>>2]=y;if(!(c[r>>2]|0))e=25;else{c[c[r>>2]>>2]=(c[(c[e>>2]|0)+4>>2]|0)/(c[(c[e>>2]|0)+16>>2]|0)|0;e=24}break}case 4028:{c[j>>2]=(c[e>>2]|0)+84+((_(2048+(c[(c[e>>2]|0)+4>>2]|0)|0,c[(c[e>>2]|0)+8>>2]|0)|0)<<2);c[k>>2]=(c[j>>2]|0)+((c[(c[e>>2]|0)+8>>2]|0)*24<<2);c[l>>2]=(c[k>>2]|0)+(c[(c[c[e>>2]>>2]|0)+8>>2]<<1<<2);c[m>>2]=(c[l>>2]|0)+(c[(c[c[e>>2]>>2]|0)+8>>2]<<1<<2);oj((c[e>>2]|0)+36|0,0,(Gb(c[c[e>>2]>>2]|0,c[(c[e>>2]|0)+8>>2]|0)|0)-((c[e>>2]|0)+36-(c[e>>2]|0))|0)|0;c[h>>2]=0;while(1){if((c[h>>2]|0)>=(c[(c[c[e>>2]>>2]|0)+8>>2]<<1|0)){e=24;break a}g[(c[m>>2]|0)+(c[h>>2]<<2)>>2]=-28.0;g[(c[l>>2]|0)+(c[h>>2]<<2)>>2]=-28.0;c[h>>2]=(c[h>>2]|0)+1}}case 4033:{d=(c[f>>2]|0)+(4-1)&~(4-1);y=c[d>>2]|0;c[f>>2]=d+4;c[s>>2]=y;if(!(c[s>>2]|0))e=25;else{c[c[s>>2]>>2]=c[(c[e>>2]|0)+52>>2];e=24}break}case 10015:{d=(c[f>>2]|0)+(4-1)&~(4-1);y=c[d>>2]|0;c[f>>2]=d+4;c[t>>2]=y;if(!(c[t>>2]|0))e=25;else{c[c[t>>2]>>2]=c[c[e>>2]>>2];e=24}break}case 10016:{d=(c[f>>2]|0)+(4-1)&~(4-1);y=c[d>>2]|0;c[f>>2]=d+4;c[u>>2]=y;c[(c[e>>2]|0)+28>>2]=c[u>>2];e=24;break}case 4031:{d=(c[f>>2]|0)+(4-1)&~(4-1);y=c[d>>2]|0;c[f>>2]=d+4;c[v>>2]=y;if(!(c[v>>2]|0))e=25;else{c[c[v>>2]>>2]=c[(c[e>>2]|0)+36>>2];e=24}break}default:{c[w>>2]=-5;y=c[w>>2]|0;i=x;return y|0}}while(0);if((e|0)==24){c[w>>2]=0;y=c[w>>2]|0;i=x;return y|0}else if((e|0)==25){c[w>>2]=-1;y=c[w>>2]|0;i=x;return y|0}return 0}
function ye(d,e,f,g,h,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;s=s|0;t=t|0;u=u|0;v=v|0;w=w|0;x=x|0;y=y|0;z=z|0;A=A|0;B=B|0;C=C|0;D=D|0;var E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ja=0,ka=0,la=0,ma=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0;Na=i;i=i+256|0;E=Na+240|0;Ha=Na+236|0;N=Na+232|0;T=Na+228|0;U=Na+224|0;V=Na+220|0;W=Na+216|0;X=Na+212|0;Y=Na+208|0;Z=Na+204|0;F=Na+200|0;G=Na+196|0;H=Na+192|0;I=Na+188|0;J=Na+184|0;Oa=Na+180|0;K=Na+176|0;L=Na+172|0;Ia=Na+168|0;M=Na+164|0;O=Na+160|0;P=Na+156|0;Q=Na+152|0;Ja=Na+148|0;R=Na+144|0;S=Na+140|0;la=Na+136|0;ma=Na+132|0;La=Na+128|0;ha=Na+124|0;ga=Na+120|0;ea=Na+116|0;oa=Na+112|0;ja=Na+108|0;ca=Na+104|0;ba=Na+100|0;pa=Na+96|0;ra=Na+92|0;qa=Na+88|0;ya=Na+84|0;Ba=Na+80|0;za=Na+76|0;Aa=Na+72|0;fa=Na+68|0;da=Na+64|0;va=Na+60|0;wa=Na+56|0;xa=Na+52|0;ka=Na+48|0;aa=Na+44|0;Ga=Na+40|0;$=Na+36|0;Ea=Na+32|0;Fa=Na+28|0;Ca=Na+24|0;sa=Na+20|0;Da=Na+16|0;ta=Na+12|0;Ma=Na+8|0;ua=Na+4|0;Ka=Na;c[E>>2]=d;c[Ha>>2]=e;c[N>>2]=f;c[T>>2]=g;c[U>>2]=h;c[V>>2]=j;c[W>>2]=k;c[X>>2]=l;c[Y>>2]=m;c[Z>>2]=n;c[F>>2]=o;c[G>>2]=p;c[H>>2]=q;c[I>>2]=r;c[J>>2]=s;c[Oa>>2]=t;c[K>>2]=u;c[L>>2]=v;c[Ia>>2]=w;c[M>>2]=x;c[O>>2]=y;c[P>>2]=z;c[Q>>2]=A;c[Ja>>2]=B;c[R>>2]=C;c[S>>2]=D;j=c[Ja>>2]|0;c[Ka>>2]=ia()|0;t=i;i=i+((1*(j*48|0)|0)+15&-16)|0;c[Da>>2]=(c[E>>2]|0)+1280+((c[(c[E>>2]|0)+4364>>2]|0)-(c[G>>2]|0)+1<<2);c[sa>>2]=(c[W>>2]|0)+((c[(c[E>>2]|0)+4360>>2]|0)-(c[G>>2]|0)+2<<2);c[$>>2]=c[Oa>>2]>>6;c[la>>2]=0;while(1){if((c[la>>2]|0)>=(c[Ia>>2]|0))break;if((c[N>>2]|0)==2){c[ca>>2]=2;Oa=_(c[c[sa>>2]>>2]>>16,b[c[Z>>2]>>1]|0)|0;c[ca>>2]=(c[ca>>2]|0)+(Oa+((_(c[c[sa>>2]>>2]&65535,b[c[Z>>2]>>1]|0)|0)>>16));Oa=_(c[(c[sa>>2]|0)+-4>>2]>>16,b[(c[Z>>2]|0)+2>>1]|0)|0;c[ca>>2]=(c[ca>>2]|0)+(Oa+((_(c[(c[sa>>2]|0)+-4>>2]&65535,b[(c[Z>>2]|0)+2>>1]|0)|0)>>16));Oa=_(c[(c[sa>>2]|0)+-8>>2]>>16,b[(c[Z>>2]|0)+4>>1]|0)|0;c[ca>>2]=(c[ca>>2]|0)+(Oa+((_(c[(c[sa>>2]|0)+-8>>2]&65535,b[(c[Z>>2]|0)+4>>1]|0)|0)>>16));Oa=_(c[(c[sa>>2]|0)+-12>>2]>>16,b[(c[Z>>2]|0)+6>>1]|0)|0;c[ca>>2]=(c[ca>>2]|0)+(Oa+((_(c[(c[sa>>2]|0)+-12>>2]&65535,b[(c[Z>>2]|0)+6>>1]|0)|0)>>16));Oa=_(c[(c[sa>>2]|0)+-16>>2]>>16,b[(c[Z>>2]|0)+8>>1]|0)|0;c[ca>>2]=(c[ca>>2]|0)+(Oa+((_(c[(c[sa>>2]|0)+-16>>2]&65535,b[(c[Z>>2]|0)+8>>1]|0)|0)>>16));c[ca>>2]=c[ca>>2]<<1;c[sa>>2]=(c[sa>>2]|0)+4}else c[ca>>2]=0;if((c[G>>2]|0)>0){Oa=_((c[c[Da>>2]>>2]|0)+(c[(c[Da>>2]|0)+-8>>2]|0)>>16,(c[H>>2]&65535)<<16>>16)|0;c[ra>>2]=Oa+((_((c[c[Da>>2]>>2]|0)+(c[(c[Da>>2]|0)+-8>>2]|0)&65535,(c[H>>2]&65535)<<16>>16)|0)>>16);Oa=(c[ra>>2]|0)+(_(c[(c[Da>>2]|0)+-4>>2]>>16,c[H>>2]>>16)|0)|0;c[ra>>2]=Oa+((_(c[(c[Da>>2]|0)+-4>>2]&65535,c[H>>2]>>16)|0)>>16);c[ra>>2]=(c[ca>>2]|0)-(c[ra>>2]<<2);c[Da>>2]=(c[Da>>2]|0)+4}else c[ra>>2]=0;c[La>>2]=0;while(1){if((c[La>>2]|0)>=(c[Ja>>2]|0))break;c[Ma>>2]=(c[Ha>>2]|0)+((c[La>>2]|0)*1168|0);c[ua>>2]=t+((c[La>>2]|0)*48|0);Oa=907633515+(_(c[(c[Ma>>2]|0)+1156>>2]|0,196314165)|0)|0;c[(c[Ma>>2]|0)+1156>>2]=Oa;c[ta>>2]=(c[Ma>>2]|0)+(31+(c[la>>2]|0)<<2);c[ba>>2]=c[P>>2]>>1;Oa=_(c[c[ta>>2]>>2]>>16,b[c[Y>>2]>>1]|0)|0;c[ba>>2]=(c[ba>>2]|0)+(Oa+((_(c[c[ta>>2]>>2]&65535,b[c[Y>>2]>>1]|0)|0)>>16));Oa=_(c[(c[ta>>2]|0)+-4>>2]>>16,b[(c[Y>>2]|0)+2>>1]|0)|0;c[ba>>2]=(c[ba>>2]|0)+(Oa+((_(c[(c[ta>>2]|0)+-4>>2]&65535,b[(c[Y>>2]|0)+2>>1]|0)|0)>>16));Oa=_(c[(c[ta>>2]|0)+-8>>2]>>16,b[(c[Y>>2]|0)+4>>1]|0)|0;c[ba>>2]=(c[ba>>2]|0)+(Oa+((_(c[(c[ta>>2]|0)+-8>>2]&65535,b[(c[Y>>2]|0)+4>>1]|0)|0)>>16));Oa=_(c[(c[ta>>2]|0)+-12>>2]>>16,b[(c[Y>>2]|0)+6>>1]|0)|0;c[ba>>2]=(c[ba>>2]|0)+(Oa+((_(c[(c[ta>>2]|0)+-12>>2]&65535,b[(c[Y>>2]|0)+6>>1]|0)|0)>>16));Oa=_(c[(c[ta>>2]|0)+-16>>2]>>16,b[(c[Y>>2]|0)+8>>1]|0)|0;c[ba>>2]=(c[ba>>2]|0)+(Oa+((_(c[(c[ta>>2]|0)+-16>>2]&65535,b[(c[Y>>2]|0)+8>>1]|0)|0)>>16));Oa=_(c[(c[ta>>2]|0)+-20>>2]>>16,b[(c[Y>>2]|0)+10>>1]|0)|0;c[ba>>2]=(c[ba>>2]|0)+(Oa+((_(c[(c[ta>>2]|0)+-20>>2]&65535,b[(c[Y>>2]|0)+10>>1]|0)|0)>>16));Oa=_(c[(c[ta>>2]|0)+-24>>2]>>16,b[(c[Y>>2]|0)+12>>1]|0)|0;c[ba>>2]=(c[ba>>2]|0)+(Oa+((_(c[(c[ta>>2]|0)+-24>>2]&65535,b[(c[Y>>2]|0)+12>>1]|0)|0)>>16));Oa=_(c[(c[ta>>2]|0)+-28>>2]>>16,b[(c[Y>>2]|0)+14>>1]|0)|0;c[ba>>2]=(c[ba>>2]|0)+(Oa+((_(c[(c[ta>>2]|0)+-28>>2]&65535,b[(c[Y>>2]|0)+14>>1]|0)|0)>>16));Oa=_(c[(c[ta>>2]|0)+-32>>2]>>16,b[(c[Y>>2]|0)+16>>1]|0)|0;c[ba>>2]=(c[ba>>2]|0)+(Oa+((_(c[(c[ta>>2]|0)+-32>>2]&65535,b[(c[Y>>2]|0)+16>>1]|0)|0)>>16));Oa=_(c[(c[ta>>2]|0)+-36>>2]>>16,b[(c[Y>>2]|0)+18>>1]|0)|0;c[ba>>2]=(c[ba>>2]|0)+(Oa+((_(c[(c[ta>>2]|0)+-36>>2]&65535,b[(c[Y>>2]|0)+18>>1]|0)|0)>>16));if((c[P>>2]|0)==16){Oa=_(c[(c[ta>>2]|0)+-40>>2]>>16,b[(c[Y>>2]|0)+20>>1]|0)|0;c[ba>>2]=(c[ba>>2]|0)+(Oa+((_(c[(c[ta>>2]|0)+-40>>2]&65535,b[(c[Y>>2]|0)+20>>1]|0)|0)>>16));Oa=_(c[(c[ta>>2]|0)+-44>>2]>>16,b[(c[Y>>2]|0)+22>>1]|0)|0;c[ba>>2]=(c[ba>>2]|0)+(Oa+((_(c[(c[ta>>2]|0)+-44>>2]&65535,b[(c[Y>>2]|0)+22>>1]|0)|0)>>16));Oa=_(c[(c[ta>>2]|0)+-48>>2]>>16,b[(c[Y>>2]|0)+24>>1]|0)|0;c[ba>>2]=(c[ba>>2]|0)+(Oa+((_(c[(c[ta>>2]|0)+-48>>2]&65535,b[(c[Y>>2]|0)+24>>1]|0)|0)>>16));Oa=_(c[(c[ta>>2]|0)+-52>>2]>>16,b[(c[Y>>2]|0)+26>>1]|0)|0;c[ba>>2]=(c[ba>>2]|0)+(Oa+((_(c[(c[ta>>2]|0)+-52>>2]&65535,b[(c[Y>>2]|0)+26>>1]|0)|0)>>16));Oa=_(c[(c[ta>>2]|0)+-56>>2]>>16,b[(c[Y>>2]|0)+28>>1]|0)|0;c[ba>>2]=(c[ba>>2]|0)+(Oa+((_(c[(c[ta>>2]|0)+-56>>2]&65535,b[(c[Y>>2]|0)+28>>1]|0)|0)>>16));Oa=_(c[(c[ta>>2]|0)+-60>>2]>>16,b[(c[Y>>2]|0)+30>>1]|0)|0;c[ba>>2]=(c[ba>>2]|0)+(Oa+((_(c[(c[ta>>2]|0)+-60>>2]&65535,b[(c[Y>>2]|0)+30>>1]|0)|0)>>16))}c[ba>>2]=c[ba>>2]<<4;Oa=_(c[(c[Ma>>2]|0)+1088>>2]>>16,(c[Q>>2]&65535)<<16>>16)|0;c[Fa>>2]=(c[c[ta>>2]>>2]|0)+(Oa+((_(c[(c[Ma>>2]|0)+1088>>2]&65535,(c[Q>>2]&65535)<<16>>16)|0)>>16));Oa=_((c[(c[Ma>>2]|0)+1088+4>>2]|0)-(c[Fa>>2]|0)>>16,(c[Q>>2]&65535)<<16>>16)|0;c[Ea>>2]=(c[(c[Ma>>2]|0)+1088>>2]|0)+(Oa+((_((c[(c[Ma>>2]|0)+1088+4>>2]|0)-(c[Fa>>2]|0)&65535,(c[Q>>2]&65535)<<16>>16)|0)>>16));c[(c[Ma>>2]|0)+1088>>2]=c[Fa>>2];c[pa>>2]=c[O>>2]>>1;Oa=_(c[Fa>>2]>>16,b[c[F>>2]>>1]|0)|0;c[pa>>2]=(c[pa>>2]|0)+(Oa+((_(c[Fa>>2]&65535,b[c[F>>2]>>1]|0)|0)>>16));c[ma>>2]=2;while(1){if((c[ma>>2]|0)>=(c[O>>2]|0))break;Oa=_((c[(c[Ma>>2]|0)+1088+((c[ma>>2]|0)+0<<2)>>2]|0)-(c[Ea>>2]|0)>>16,(c[Q>>2]&65535)<<16>>16)|0;c[Fa>>2]=(c[(c[Ma>>2]|0)+1088+((c[ma>>2]|0)-1<<2)>>2]|0)+(Oa+((_((c[(c[Ma>>2]|0)+1088+((c[ma>>2]|0)+0<<2)>>2]|0)-(c[Ea>>2]|0)&65535,(c[Q>>2]&65535)<<16>>16)|0)>>16));c[(c[Ma>>2]|0)+1088+((c[ma>>2]|0)-1<<2)>>2]=c[Ea>>2];Oa=_(c[Ea>>2]>>16,b[(c[F>>2]|0)+((c[ma>>2]|0)-1<<1)>>1]|0)|0;c[pa>>2]=(c[pa>>2]|0)+(Oa+((_(c[Ea>>2]&65535,b[(c[F>>2]|0)+((c[ma>>2]|0)-1<<1)>>1]|0)|0)>>16));Oa=_((c[(c[Ma>>2]|0)+1088+((c[ma>>2]|0)+1<<2)>>2]|0)-(c[Fa>>2]|0)>>16,(c[Q>>2]&65535)<<16>>16)|0;c[Ea>>2]=(c[(c[Ma>>2]|0)+1088+((c[ma>>2]|0)+0<<2)>>2]|0)+(Oa+((_((c[(c[Ma>>2]|0)+1088+((c[ma>>2]|0)+1<<2)>>2]|0)-(c[Fa>>2]|0)&65535,(c[Q>>2]&65535)<<16>>16)|0)>>16));c[(c[Ma>>2]|0)+1088+((c[ma>>2]|0)+0<<2)>>2]=c[Fa>>2];Oa=_(c[Fa>>2]>>16,b[(c[F>>2]|0)+(c[ma>>2]<<1)>>1]|0)|0;c[pa>>2]=(c[pa>>2]|0)+(Oa+((_(c[Fa>>2]&65535,b[(c[F>>2]|0)+(c[ma>>2]<<1)>>1]|0)|0)>>16));c[ma>>2]=(c[ma>>2]|0)+2}c[(c[Ma>>2]|0)+1088+((c[O>>2]|0)-1<<2)>>2]=c[Ea>>2];Oa=_(c[Ea>>2]>>16,b[(c[F>>2]|0)+((c[O>>2]|0)-1<<1)>>1]|0)|0;c[pa>>2]=(c[pa>>2]|0)+(Oa+((_(c[Ea>>2]&65535,b[(c[F>>2]|0)+((c[O>>2]|0)-1<<1)>>1]|0)|0)>>16));c[pa>>2]=c[pa>>2]<<1;Oa=_(c[(c[Ma>>2]|0)+1152>>2]>>16,(c[I>>2]&65535)<<16>>16)|0;c[pa>>2]=(c[pa>>2]|0)+(Oa+((_(c[(c[Ma>>2]|0)+1152>>2]&65535,(c[I>>2]&65535)<<16>>16)|0)>>16));c[pa>>2]=c[pa>>2]<<2;Oa=_(c[(c[Ma>>2]|0)+960+(c[c[R>>2]>>2]<<2)>>2]>>16,(c[J>>2]&65535)<<16>>16)|0;c[qa>>2]=Oa+((_(c[(c[Ma>>2]|0)+960+(c[c[R>>2]>>2]<<2)>>2]&65535,(c[J>>2]&65535)<<16>>16)|0)>>16);Oa=(c[qa>>2]|0)+(_(c[(c[Ma>>2]|0)+1152>>2]>>16,c[J>>2]>>16)|0)|0;c[qa>>2]=Oa+((_(c[(c[Ma>>2]|0)+1152>>2]&65535,c[J>>2]>>16)|0)>>16);c[qa>>2]=c[qa>>2]<<2;c[Ea>>2]=(c[pa>>2]|0)+(c[qa>>2]|0);c[Fa>>2]=(c[ra>>2]|0)+(c[ba>>2]|0);c[Ea>>2]=(c[Fa>>2]|0)-(c[Ea>>2]|0);c[Ea>>2]=(c[Ea>>2]>>3)+1>>1;c[ya>>2]=(c[(c[T>>2]|0)+(c[la>>2]<<2)>>2]|0)-(c[Ea>>2]|0);if((c[(c[Ma>>2]|0)+1156>>2]|0)<0)c[ya>>2]=0-(c[ya>>2]|0);if((c[ya>>2]|0)>30720)o=30720;else o=(c[ya>>2]|0)<-31744?-31744:c[ya>>2]|0;c[ya>>2]=o;c[wa>>2]=(c[ya>>2]|0)-(c[L>>2]|0);c[va>>2]=c[wa>>2]>>10;o=c[va>>2]|0;do if((c[va>>2]|0)<=0){if(!o){c[wa>>2]=c[L>>2];c[xa>>2]=(c[wa>>2]|0)+944;c[za>>2]=_((c[wa>>2]&65535)<<16>>16,(c[K>>2]&65535)<<16>>16)|0;c[Aa>>2]=_((c[xa>>2]&65535)<<16>>16,(c[K>>2]&65535)<<16>>16)|0;break}if((c[va>>2]|0)==-1){c[xa>>2]=c[L>>2];c[wa>>2]=(c[xa>>2]|0)-944;c[za>>2]=_((0-(c[wa>>2]|0)&65535)<<16>>16,(c[K>>2]&65535)<<16>>16)|0;c[Aa>>2]=_((c[xa>>2]&65535)<<16>>16,(c[K>>2]&65535)<<16>>16)|0;break}else{c[wa>>2]=(c[va>>2]<<10)+80;c[wa>>2]=(c[wa>>2]|0)+(c[L>>2]|0);c[xa>>2]=(c[wa>>2]|0)+1024;c[za>>2]=_((0-(c[wa>>2]|0)&65535)<<16>>16,(c[K>>2]&65535)<<16>>16)|0;c[Aa>>2]=_((0-(c[xa>>2]|0)&65535)<<16>>16,(c[K>>2]&65535)<<16>>16)|0;break}}else{c[wa>>2]=(o<<10)-80;c[wa>>2]=(c[wa>>2]|0)+(c[L>>2]|0);c[xa>>2]=(c[wa>>2]|0)+1024;c[za>>2]=_((c[wa>>2]&65535)<<16>>16,(c[K>>2]&65535)<<16>>16)|0;c[Aa>>2]=_((c[xa>>2]&65535)<<16>>16,(c[K>>2]&65535)<<16>>16)|0}while(0);c[Ba>>2]=(c[ya>>2]|0)-(c[wa>>2]|0);c[za>>2]=(c[za>>2]|0)+(_((c[Ba>>2]&65535)<<16>>16,(c[Ba>>2]&65535)<<16>>16)|0)>>10;c[Ba>>2]=(c[ya>>2]|0)-(c[xa>>2]|0);c[Aa>>2]=(c[Aa>>2]|0)+(_((c[Ba>>2]&65535)<<16>>16,(c[Ba>>2]&65535)<<16>>16)|0)>>10;o=c[(c[Ma>>2]|0)+1164>>2]|0;if((c[za>>2]|0)<(c[Aa>>2]|0)){c[(c[ua>>2]|0)+4>>2]=o+(c[za>>2]|0);c[(c[ua>>2]|0)+24+4>>2]=(c[(c[Ma>>2]|0)+1164>>2]|0)+(c[Aa>>2]|0);c[c[ua>>2]>>2]=c[wa>>2];c[(c[ua>>2]|0)+24>>2]=c[xa>>2]}else{c[(c[ua>>2]|0)+4>>2]=o+(c[Aa>>2]|0);c[(c[ua>>2]|0)+24+4>>2]=(c[(c[Ma>>2]|0)+1164>>2]|0)+(c[za>>2]|0);c[c[ua>>2]>>2]=c[xa>>2];c[(c[ua>>2]|0)+24>>2]=c[wa>>2]}c[ka>>2]=c[c[ua>>2]>>2]<<4;if((c[(c[Ma>>2]|0)+1156>>2]|0)<0)c[ka>>2]=0-(c[ka>>2]|0);c[aa>>2]=(c[ka>>2]|0)+(c[ca>>2]|0);c[Ga>>2]=(c[aa>>2]|0)+(c[ba>>2]|0);c[Ca>>2]=(c[Ga>>2]|0)-(c[pa>>2]|0);c[(c[ua>>2]|0)+16>>2]=(c[Ca>>2]|0)-(c[qa>>2]|0);c[(c[ua>>2]|0)+12>>2]=c[Ca>>2];c[(c[ua>>2]|0)+20>>2]=c[aa>>2];c[(c[ua>>2]|0)+8>>2]=c[Ga>>2];c[ka>>2]=c[(c[ua>>2]|0)+24>>2]<<4;if((c[(c[Ma>>2]|0)+1156>>2]|0)<0)c[ka>>2]=0-(c[ka>>2]|0);c[aa>>2]=(c[ka>>2]|0)+(c[ca>>2]|0);c[Ga>>2]=(c[aa>>2]|0)+(c[ba>>2]|0);c[Ca>>2]=(c[Ga>>2]|0)-(c[pa>>2]|0);c[(c[ua>>2]|0)+24+16>>2]=(c[Ca>>2]|0)-(c[qa>>2]|0);c[(c[ua>>2]|0)+24+12>>2]=c[Ca>>2];c[(c[ua>>2]|0)+24+20>>2]=c[aa>>2];c[(c[ua>>2]|0)+24+8>>2]=c[Ga>>2];c[La>>2]=(c[La>>2]|0)+1}c[c[R>>2]>>2]=(c[c[R>>2]>>2]|0)-1&31;c[oa>>2]=(c[c[R>>2]>>2]|0)+(c[S>>2]|0)&31;c[fa>>2]=c[t+4>>2];c[ha>>2]=0;c[La>>2]=1;while(1){if((c[La>>2]|0)>=(c[Ja>>2]|0))break;if((c[t+((c[La>>2]|0)*48|0)+4>>2]|0)<(c[fa>>2]|0)){c[fa>>2]=c[t+((c[La>>2]|0)*48|0)+4>>2];c[ha>>2]=c[La>>2]}c[La>>2]=(c[La>>2]|0)+1}c[ja>>2]=c[(c[Ha>>2]|0)+((c[ha>>2]|0)*1168|0)+448+(c[oa>>2]<<2)>>2];c[La>>2]=0;while(1){if((c[La>>2]|0)>=(c[Ja>>2]|0))break;if((c[(c[Ha>>2]|0)+((c[La>>2]|0)*1168|0)+448+(c[oa>>2]<<2)>>2]|0)!=(c[ja>>2]|0)){c[t+((c[La>>2]|0)*48|0)+4>>2]=(c[t+((c[La>>2]|0)*48|0)+4>>2]|0)+134217727;c[t+((c[La>>2]|0)*48|0)+24+4>>2]=(c[t+((c[La>>2]|0)*48|0)+24+4>>2]|0)+134217727}c[La>>2]=(c[La>>2]|0)+1}c[da>>2]=c[t+4>>2];c[fa>>2]=c[t+24+4>>2];c[ea>>2]=0;c[ga>>2]=0;c[La>>2]=1;while(1){if((c[La>>2]|0)>=(c[Ja>>2]|0))break;if((c[t+((c[La>>2]|0)*48|0)+4>>2]|0)>(c[da>>2]|0)){c[da>>2]=c[t+((c[La>>2]|0)*48|0)+4>>2];c[ea>>2]=c[La>>2]}if((c[t+((c[La>>2]|0)*48|0)+24+4>>2]|0)<(c[fa>>2]|0)){c[fa>>2]=c[t+((c[La>>2]|0)*48|0)+24+4>>2];c[ga>>2]=c[La>>2]}c[La>>2]=(c[La>>2]|0)+1}if((c[fa>>2]|0)<(c[da>>2]|0)){pj((c[Ha>>2]|0)+((c[ea>>2]|0)*1168|0)+(c[la>>2]<<2)|0,(c[Ha>>2]|0)+((c[ga>>2]|0)*1168|0)+(c[la>>2]<<2)|0,1168-(c[la>>2]<<2)|0)|0;Oa=t+((c[ea>>2]|0)*48|0)|0;j=t+((c[ga>>2]|0)*48|0)+24|0;c[Oa>>2]=c[j>>2];c[Oa+4>>2]=c[j+4>>2];c[Oa+8>>2]=c[j+8>>2];c[Oa+12>>2]=c[j+12>>2];c[Oa+16>>2]=c[j+16>>2];c[Oa+20>>2]=c[j+20>>2]}c[Ma>>2]=(c[Ha>>2]|0)+((c[ha>>2]|0)*1168|0);if(!((c[M>>2]|0)<=0?(c[la>>2]|0)<(c[S>>2]|0):0)){a[(c[U>>2]|0)+((c[la>>2]|0)-(c[S>>2]|0))>>0]=(c[(c[Ma>>2]|0)+576+(c[oa>>2]<<2)>>2]>>9)+1>>1;Oa=_(c[(c[Ma>>2]|0)+704+(c[oa>>2]<<2)>>2]>>16,(c[(c[X>>2]|0)+(c[oa>>2]<<2)>>2]&65535)<<16>>16)|0;Oa=Oa+((_(c[(c[Ma>>2]|0)+704+(c[oa>>2]<<2)>>2]&65535,(c[(c[X>>2]|0)+(c[oa>>2]<<2)>>2]&65535)<<16>>16)|0)>>16)|0;if(((Oa+(_(c[(c[Ma>>2]|0)+704+(c[oa>>2]<<2)>>2]|0,(c[(c[X>>2]|0)+(c[oa>>2]<<2)>>2]>>15)+1>>1)|0)>>7)+1>>1|0)<=32767){Oa=_(c[(c[Ma>>2]|0)+704+(c[oa>>2]<<2)>>2]>>16,(c[(c[X>>2]|0)+(c[oa>>2]<<2)>>2]&65535)<<16>>16)|0;Oa=Oa+((_(c[(c[Ma>>2]|0)+704+(c[oa>>2]<<2)>>2]&65535,(c[(c[X>>2]|0)+(c[oa>>2]<<2)>>2]&65535)<<16>>16)|0)>>16)|0;if(((Oa+(_(c[(c[Ma>>2]|0)+704+(c[oa>>2]<<2)>>2]|0,(c[(c[X>>2]|0)+(c[oa>>2]<<2)>>2]>>15)+1>>1)|0)>>7)+1>>1|0)<-32768)o=-32768;else{o=_(c[(c[Ma>>2]|0)+704+(c[oa>>2]<<2)>>2]>>16,(c[(c[X>>2]|0)+(c[oa>>2]<<2)>>2]&65535)<<16>>16)|0;o=o+((_(c[(c[Ma>>2]|0)+704+(c[oa>>2]<<2)>>2]&65535,(c[(c[X>>2]|0)+(c[oa>>2]<<2)>>2]&65535)<<16>>16)|0)>>16)|0;o=(o+(_(c[(c[Ma>>2]|0)+704+(c[oa>>2]<<2)>>2]|0,(c[(c[X>>2]|0)+(c[oa>>2]<<2)>>2]>>15)+1>>1)|0)>>7)+1>>1}}else o=32767;b[(c[V>>2]|0)+((c[la>>2]|0)-(c[S>>2]|0)<<1)>>1]=o;c[(c[E>>2]|0)+1280+((c[(c[E>>2]|0)+4364>>2]|0)-(c[S>>2]|0)<<2)>>2]=c[(c[Ma>>2]|0)+960+(c[oa>>2]<<2)>>2];c[(c[W>>2]|0)+((c[(c[E>>2]|0)+4360>>2]|0)-(c[S>>2]|0)<<2)>>2]=c[(c[Ma>>2]|0)+832+(c[oa>>2]<<2)>>2]}Oa=(c[E>>2]|0)+4364|0;c[Oa>>2]=(c[Oa>>2]|0)+1;Oa=(c[E>>2]|0)+4360|0;c[Oa>>2]=(c[Oa>>2]|0)+1;c[La>>2]=0;while(1){if((c[La>>2]|0)>=(c[Ja>>2]|0))break;c[Ma>>2]=(c[Ha>>2]|0)+((c[La>>2]|0)*1168|0);c[ua>>2]=t+((c[La>>2]|0)*48|0);c[(c[Ma>>2]|0)+1152>>2]=c[(c[ua>>2]|0)+12>>2];c[(c[Ma>>2]|0)+(32+(c[la>>2]|0)<<2)>>2]=c[(c[ua>>2]|0)+8>>2];c[(c[Ma>>2]|0)+704+(c[c[R>>2]>>2]<<2)>>2]=c[(c[ua>>2]|0)+8>>2];c[(c[Ma>>2]|0)+576+(c[c[R>>2]>>2]<<2)>>2]=c[c[ua>>2]>>2];c[(c[Ma>>2]|0)+832+(c[c[R>>2]>>2]<<2)>>2]=c[(c[ua>>2]|0)+20>>2]<<1;c[(c[Ma>>2]|0)+960+(c[c[R>>2]>>2]<<2)>>2]=c[(c[ua>>2]|0)+16>>2];c[(c[Ma>>2]|0)+1156>>2]=(c[(c[Ma>>2]|0)+1156>>2]|0)+((c[c[ua>>2]>>2]>>9)+1>>1);c[(c[Ma>>2]|0)+448+(c[c[R>>2]>>2]<<2)>>2]=c[(c[Ma>>2]|0)+1156>>2];c[(c[Ma>>2]|0)+1164>>2]=c[(c[ua>>2]|0)+4>>2];c[La>>2]=(c[La>>2]|0)+1}c[(c[X>>2]|0)+(c[c[R>>2]>>2]<<2)>>2]=c[$>>2];c[la>>2]=(c[la>>2]|0)+1}c[La>>2]=0;while(1){if((c[La>>2]|0)>=(c[Ja>>2]|0))break;c[Ma>>2]=(c[Ha>>2]|0)+((c[La>>2]|0)*1168|0);o=c[Ma>>2]|0;t=(c[Ma>>2]|0)+(c[Ia>>2]<<2)|0;q=o+128|0;do{c[o>>2]=c[t>>2];o=o+4|0;t=t+4|0}while((o|0)<(q|0));c[La>>2]=(c[La>>2]|0)+1}na(c[Ka>>2]|0);i=Na;return}function ze(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;c[(c[d>>2]|0)+4168>>2]=c[(c[d>>2]|0)+2328>>2]<<7;c[(c[d>>2]|0)+4168+72>>2]=65536;c[(c[d>>2]|0)+4168+72+4>>2]=65536;c[(c[d>>2]|0)+4168+88>>2]=20;c[(c[d>>2]|0)+4168+84>>2]=2;i=b;return}function Ae(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;h=m+16|0;g=m+12|0;j=m+8|0;k=m+4|0;l=m;c[h>>2]=a;c[g>>2]=b;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;if((c[(c[h>>2]|0)+2316>>2]|0)!=(c[(c[h>>2]|0)+4168+80>>2]|0)){ze(c[h>>2]|0);c[(c[h>>2]|0)+4168+80>>2]=c[(c[h>>2]|0)+2316>>2]}d=c[h>>2]|0;f=c[g>>2]|0;if(c[k>>2]|0){Be(d,f,c[j>>2]|0,c[l>>2]|0);l=(c[h>>2]|0)+4160|0;c[l>>2]=(c[l>>2]|0)+1;i=m;return}else{Ke(d,f);i=m;return}}function Be(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;N=i;i=i+176|0;z=N+120|0;A=N+116|0;B=N+112|0;m=N+108|0;F=N+104|0;G=N+100|0;u=N+96|0;H=N+92|0;r=N+88|0;y=N+84|0;k=N+80|0;l=N+76|0;L=N+72|0;q=N+68|0;w=N+64|0;t=N+60|0;h=N+56|0;j=N+52|0;x=N+48|0;v=N+44|0;E=N+40|0;o=N+36|0;K=N+160|0;n=N+32|0;M=N+28|0;D=N+128|0;J=N+24|0;I=N+16|0;C=N+8|0;s=N+4|0;p=N;c[z>>2]=a;c[A>>2]=d;c[B>>2]=e;c[m>>2]=f;c[J>>2]=(c[z>>2]|0)+4168;g=(c[(c[z>>2]|0)+2336>>2]|0)+(c[(c[z>>2]|0)+2328>>2]|0)|0;c[C>>2]=ia()|0;d=i;i=i+((1*(g<<2)|0)+15&-16)|0;g=i;i=i+((1*(c[(c[z>>2]|0)+2336>>2]<<1)|0)+15&-16)|0;c[I>>2]=c[(c[J>>2]|0)+72>>2]>>6;c[I+4>>2]=c[(c[J>>2]|0)+72+4>>2]>>6;if(c[(c[z>>2]|0)+2376>>2]|0){e=(c[J>>2]|0)+14|0;a=e+32|0;do{b[e>>1]=0;e=e+2|0}while((e|0)<(a|0))}Ce(h,k,j,l,(c[z>>2]|0)+4|0,I,c[(c[z>>2]|0)+2332>>2]|0,c[(c[z>>2]|0)+2324>>2]|0);f=c[(c[J>>2]|0)+84>>2]|0;if((c[h>>2]>>c[l>>2]|0)<(c[j>>2]>>c[k>>2]|0)){l=De(0,(_(f-1|0,c[(c[J>>2]|0)+88>>2]|0)|0)-128|0)|0;c[x>>2]=(c[z>>2]|0)+4+(l<<2)}else{l=De(0,(_(f,c[(c[J>>2]|0)+88>>2]|0)|0)-128|0)|0;c[x>>2]=(c[z>>2]|0)+4+(l<<2)}c[n>>2]=(c[J>>2]|0)+4;b[K>>1]=b[(c[J>>2]|0)+56>>1]|0;c[q>>2]=b[24440+((Ee(1,c[(c[z>>2]|0)+4160>>2]|0)|0)<<1)>>1];l=(c[(c[z>>2]|0)+4164>>2]|0)==2;f=Ee(1,c[(c[z>>2]|0)+4160>>2]|0)|0;if(l)c[w>>2]=b[24444+(f<<1)>>1];else c[w>>2]=b[24448+(f<<1)>>1];Pf((c[J>>2]|0)+14|0,c[(c[z>>2]|0)+2340>>2]|0,64881);pj(D|0,(c[J>>2]|0)+14|0,c[(c[z>>2]|0)+2340>>2]<<1|0)|0;do if(!(c[(c[z>>2]|0)+4160>>2]|0)){b[K>>1]=16384;if((c[(c[z>>2]|0)+4164>>2]|0)!=2){c[s>>2]=Yf((c[J>>2]|0)+14|0,c[(c[z>>2]|0)+2340>>2]|0)|0;c[p>>2]=Ge(134217728,c[s>>2]|0)|0;c[p>>2]=He(4194304,c[p>>2]|0)|0;c[p>>2]=c[p>>2]<<3;s=_(c[p>>2]>>16,(c[w>>2]&65535)<<16>>16)|0;c[w>>2]=s+((_(c[p>>2]&65535,(c[w>>2]&65535)<<16>>16)|0)>>16)>>14;break}c[F>>2]=0;while(1){if((c[F>>2]|0)>=5)break;b[K>>1]=(b[K>>1]|0)-(b[(c[n>>2]|0)+(c[F>>2]<<1)>>1]|0);c[F>>2]=(c[F>>2]|0)+1}b[K>>1]=Fe(3277,b[K>>1]|0)|0;b[K>>1]=(_(b[K>>1]|0,b[(c[J>>2]|0)+68>>1]|0)|0)>>14}while(0);c[L>>2]=c[(c[J>>2]|0)+52>>2];c[H>>2]=(c[c[J>>2]>>2]>>7)+1>>1;c[y>>2]=c[(c[z>>2]|0)+2336>>2];c[r>>2]=(c[(c[z>>2]|0)+2336>>2]|0)-(c[H>>2]|0)-(c[(c[z>>2]|0)+2340>>2]|0)-2;Xf(g+(c[r>>2]<<1)|0,(c[z>>2]|0)+1348+(c[r>>2]<<1)|0,D,(c[(c[z>>2]|0)+2336>>2]|0)-(c[r>>2]|0)|0,c[(c[z>>2]|0)+2340>>2]|0,c[m>>2]|0);c[t>>2]=Ie(c[(c[J>>2]|0)+72+4>>2]|0,46)|0;c[t>>2]=(c[t>>2]|0)<1073741823?c[t>>2]|0:1073741823;c[F>>2]=(c[r>>2]|0)+(c[(c[z>>2]|0)+2340>>2]|0);while(1){if((c[F>>2]|0)>=(c[(c[z>>2]|0)+2336>>2]|0))break;s=_(c[t>>2]>>16,b[g+(c[F>>2]<<1)>>1]|0)|0;s=s+((_(c[t>>2]&65535,b[g+(c[F>>2]<<1)>>1]|0)|0)>>16)|0;c[d+(c[F>>2]<<2)>>2]=s;c[F>>2]=(c[F>>2]|0)+1}c[u>>2]=0;while(1){if((c[u>>2]|0)>=(c[(c[z>>2]|0)+2324>>2]|0))break;c[v>>2]=d+((c[y>>2]|0)-(c[H>>2]|0)+2<<2);c[F>>2]=0;while(1){if((c[F>>2]|0)>=(c[(c[z>>2]|0)+2332>>2]|0))break;c[o>>2]=2;t=_(c[c[v>>2]>>2]>>16,b[c[n>>2]>>1]|0)|0;c[o>>2]=(c[o>>2]|0)+(t+((_(c[c[v>>2]>>2]&65535,b[c[n>>2]>>1]|0)|0)>>16));t=_(c[(c[v>>2]|0)+-4>>2]>>16,b[(c[n>>2]|0)+2>>1]|0)|0;c[o>>2]=(c[o>>2]|0)+(t+((_(c[(c[v>>2]|0)+-4>>2]&65535,b[(c[n>>2]|0)+2>>1]|0)|0)>>16));t=_(c[(c[v>>2]|0)+-8>>2]>>16,b[(c[n>>2]|0)+4>>1]|0)|0;c[o>>2]=(c[o>>2]|0)+(t+((_(c[(c[v>>2]|0)+-8>>2]&65535,b[(c[n>>2]|0)+4>>1]|0)|0)>>16));t=_(c[(c[v>>2]|0)+-12>>2]>>16,b[(c[n>>2]|0)+6>>1]|0)|0;c[o>>2]=(c[o>>2]|0)+(t+((_(c[(c[v>>2]|0)+-12>>2]&65535,b[(c[n>>2]|0)+6>>1]|0)|0)>>16));t=_(c[(c[v>>2]|0)+-16>>2]>>16,b[(c[n>>2]|0)+8>>1]|0)|0;c[o>>2]=(c[o>>2]|0)+(t+((_(c[(c[v>>2]|0)+-16>>2]&65535,b[(c[n>>2]|0)+8>>1]|0)|0)>>16));c[v>>2]=(c[v>>2]|0)+4;c[L>>2]=907633515+(_(c[L>>2]|0,196314165)|0);c[r>>2]=c[L>>2]>>25&127;t=_(c[(c[x>>2]|0)+(c[r>>2]<<2)>>2]>>16,b[K>>1]|0)|0;t=(c[o>>2]|0)+(t+((_(c[(c[x>>2]|0)+(c[r>>2]<<2)>>2]&65535,b[K>>1]|0)|0)>>16))<<2;c[d+(c[y>>2]<<2)>>2]=t;c[y>>2]=(c[y>>2]|0)+1;c[F>>2]=(c[F>>2]|0)+1}c[G>>2]=0;while(1){if((c[G>>2]|0)>=5)break;t=(_((c[q>>2]&65535)<<16>>16,b[(c[n>>2]|0)+(c[G>>2]<<1)>>1]|0)|0)>>15&65535;b[(c[n>>2]|0)+(c[G>>2]<<1)>>1]=t;c[G>>2]=(c[G>>2]|0)+1}b[K>>1]=(_(b[K>>1]|0,(c[w>>2]&65535)<<16>>16)|0)>>15;c[c[J>>2]>>2]=(c[c[J>>2]>>2]|0)+(((c[c[J>>2]>>2]>>16)*655|0)+((c[c[J>>2]>>2]&65535)*655>>16));t=Ge(c[c[J>>2]>>2]|0,((c[(c[z>>2]|0)+2316>>2]&65535)<<16>>16)*18<<8)|0;c[c[J>>2]>>2]=t;c[H>>2]=(c[c[J>>2]>>2]>>7)+1>>1;c[u>>2]=(c[u>>2]|0)+1}c[M>>2]=d+((c[(c[z>>2]|0)+2336>>2]|0)-16<<2);e=c[M>>2]|0;f=(c[z>>2]|0)+1284|0;a=e+64|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(a|0));c[F>>2]=0;while(1){f=c[z>>2]|0;if((c[F>>2]|0)>=(c[(c[z>>2]|0)+2328>>2]|0))break;c[E>>2]=c[f+2340>>2]>>1;y=_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)-1<<2)>>2]>>16,b[D>>1]|0)|0;c[E>>2]=(c[E>>2]|0)+(y+((_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)-1<<2)>>2]&65535,b[D>>1]|0)|0)>>16));y=_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)-2<<2)>>2]>>16,b[D+2>>1]|0)|0;c[E>>2]=(c[E>>2]|0)+(y+((_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)-2<<2)>>2]&65535,b[D+2>>1]|0)|0)>>16));y=_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)-3<<2)>>2]>>16,b[D+4>>1]|0)|0;c[E>>2]=(c[E>>2]|0)+(y+((_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)-3<<2)>>2]&65535,b[D+4>>1]|0)|0)>>16));y=_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)-4<<2)>>2]>>16,b[D+6>>1]|0)|0;c[E>>2]=(c[E>>2]|0)+(y+((_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)-4<<2)>>2]&65535,b[D+6>>1]|0)|0)>>16));y=_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)-5<<2)>>2]>>16,b[D+8>>1]|0)|0;c[E>>2]=(c[E>>2]|0)+(y+((_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)-5<<2)>>2]&65535,b[D+8>>1]|0)|0)>>16));y=_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)-6<<2)>>2]>>16,b[D+10>>1]|0)|0;c[E>>2]=(c[E>>2]|0)+(y+((_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)-6<<2)>>2]&65535,b[D+10>>1]|0)|0)>>16));y=_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)-7<<2)>>2]>>16,b[D+12>>1]|0)|0;c[E>>2]=(c[E>>2]|0)+(y+((_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)-7<<2)>>2]&65535,b[D+12>>1]|0)|0)>>16));y=_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)-8<<2)>>2]>>16,b[D+14>>1]|0)|0;c[E>>2]=(c[E>>2]|0)+(y+((_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)-8<<2)>>2]&65535,b[D+14>>1]|0)|0)>>16));y=_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)-9<<2)>>2]>>16,b[D+16>>1]|0)|0;c[E>>2]=(c[E>>2]|0)+(y+((_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)-9<<2)>>2]&65535,b[D+16>>1]|0)|0)>>16));y=_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)-10<<2)>>2]>>16,b[D+18>>1]|0)|0;c[E>>2]=(c[E>>2]|0)+(y+((_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)-10<<2)>>2]&65535,b[D+18>>1]|0)|0)>>16));c[G>>2]=10;while(1){if((c[G>>2]|0)>=(c[(c[z>>2]|0)+2340>>2]|0))break;y=_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)-(c[G>>2]|0)-1<<2)>>2]>>16,b[D+(c[G>>2]<<1)>>1]|0)|0;c[E>>2]=(c[E>>2]|0)+(y+((_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)-(c[G>>2]|0)-1<<2)>>2]&65535,b[D+(c[G>>2]<<1)>>1]|0)|0)>>16));c[G>>2]=(c[G>>2]|0)+1}c[(c[M>>2]|0)+(16+(c[F>>2]|0)<<2)>>2]=(c[(c[M>>2]|0)+(16+(c[F>>2]|0)<<2)>>2]|0)+(c[E>>2]<<4);y=_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)<<2)>>2]>>16,(c[I+4>>2]&65535)<<16>>16)|0;y=y+((_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)<<2)>>2]&65535,(c[I+4>>2]&65535)<<16>>16)|0)>>16)|0;if(((y+(_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)<<2)>>2]|0,(c[I+4>>2]>>15)+1>>1)|0)>>7)+1>>1|0)<=32767){y=_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)<<2)>>2]>>16,(c[I+4>>2]&65535)<<16>>16)|0;y=y+((_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)<<2)>>2]&65535,(c[I+4>>2]&65535)<<16>>16)|0)>>16)|0;if(((y+(_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)<<2)>>2]|0,(c[I+4>>2]>>15)+1>>1)|0)>>7)+1>>1|0)<-32768)f=-32768;else{f=_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)<<2)>>2]>>16,(c[I+4>>2]&65535)<<16>>16)|0;f=f+((_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)<<2)>>2]&65535,(c[I+4>>2]&65535)<<16>>16)|0)>>16)|0;f=(f+(_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)<<2)>>2]|0,(c[I+4>>2]>>15)+1>>1)|0)>>7)+1>>1}}else f=32767;if((f|0)<=32767){y=_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)<<2)>>2]>>16,(c[I+4>>2]&65535)<<16>>16)|0;y=y+((_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)<<2)>>2]&65535,(c[I+4>>2]&65535)<<16>>16)|0)>>16)|0;if(((y+(_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)<<2)>>2]|0,(c[I+4>>2]>>15)+1>>1)|0)>>7)+1>>1|0)<=32767){y=_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)<<2)>>2]>>16,(c[I+4>>2]&65535)<<16>>16)|0;y=y+((_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)<<2)>>2]&65535,(c[I+4>>2]&65535)<<16>>16)|0)>>16)|0;if(((y+(_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)<<2)>>2]|0,(c[I+4>>2]>>15)+1>>1)|0)>>7)+1>>1|0)<-32768)f=-32768;else{f=_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)<<2)>>2]>>16,(c[I+4>>2]&65535)<<16>>16)|0;f=f+((_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)<<2)>>2]&65535,(c[I+4>>2]&65535)<<16>>16)|0)>>16)|0;f=(f+(_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)<<2)>>2]|0,(c[I+4>>2]>>15)+1>>1)|0)>>7)+1>>1}}else f=32767;if((f|0)>=-32768){y=_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)<<2)>>2]>>16,(c[I+4>>2]&65535)<<16>>16)|0;y=y+((_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)<<2)>>2]&65535,(c[I+4>>2]&65535)<<16>>16)|0)>>16)|0;if(((y+(_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)<<2)>>2]|0,(c[I+4>>2]>>15)+1>>1)|0)>>7)+1>>1|0)<=32767){y=_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)<<2)>>2]>>16,(c[I+4>>2]&65535)<<16>>16)|0;y=y+((_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)<<2)>>2]&65535,(c[I+4>>2]&65535)<<16>>16)|0)>>16)|0;if(((y+(_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)<<2)>>2]|0,(c[I+4>>2]>>15)+1>>1)|0)>>7)+1>>1|0)<-32768)f=-32768;else{f=_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)<<2)>>2]>>16,(c[I+4>>2]&65535)<<16>>16)|0;f=f+((_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)<<2)>>2]&65535,(c[I+4>>2]&65535)<<16>>16)|0)>>16)|0;f=(f+(_(c[(c[M>>2]|0)+(16+(c[F>>2]|0)<<2)>>2]|0,(c[I+4>>2]>>15)+1>>1)|0)>>7)+1>>1}}else f=32767}else f=-32768}else f=32767;b[(c[B>>2]|0)+(c[F>>2]<<1)>>1]=f;c[F>>2]=(c[F>>2]|0)+1}e=f+1284|0;f=(c[M>>2]|0)+(c[(c[z>>2]|0)+2328>>2]<<2)|0;a=e+64|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(a|0));c[(c[J>>2]|0)+52>>2]=c[L>>2];b[(c[J>>2]|0)+56>>1]=b[K>>1]|0;c[F>>2]=0;while(1){if((c[F>>2]|0)>=4)break;c[(c[A>>2]|0)+(c[F>>2]<<2)>>2]=c[H>>2];c[F>>2]=(c[F>>2]|0)+1}na(c[C>>2]|0);i=N;return}function Ce(a,d,e,f,g,h,j,k){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=i;i=i+48|0;l=x+44|0;m=x+40|0;n=x+36|0;o=x+32|0;p=x+28|0;q=x+24|0;r=x+20|0;s=x+16|0;v=x+12|0;w=x+8|0;u=x+4|0;t=x;c[l>>2]=a;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;c[r>>2]=j;c[s>>2]=k;j=c[r>>2]<<1;c[t>>2]=ia()|0;a=i;i=i+((1*(j<<1)|0)+15&-16)|0;c[u>>2]=a;c[w>>2]=0;while(1){if((c[w>>2]|0)>=2)break;c[v>>2]=0;while(1){if((c[v>>2]|0)>=(c[r>>2]|0))break;j=(c[v>>2]|0)+(_((c[w>>2]|0)+(c[s>>2]|0)-2|0,c[r>>2]|0)|0)|0;j=_(c[(c[p>>2]|0)+(j<<2)>>2]>>16,(c[(c[q>>2]|0)+(c[w>>2]<<2)>>2]&65535)<<16>>16)|0;f=(c[v>>2]|0)+(_((c[w>>2]|0)+(c[s>>2]|0)-2|0,c[r>>2]|0)|0)|0;f=j+((_(c[(c[p>>2]|0)+(f<<2)>>2]&65535,(c[(c[q>>2]|0)+(c[w>>2]<<2)>>2]&65535)<<16>>16)|0)>>16)|0;j=(c[v>>2]|0)+(_((c[w>>2]|0)+(c[s>>2]|0)-2|0,c[r>>2]|0)|0)|0;if((f+(_(c[(c[p>>2]|0)+(j<<2)>>2]|0,(c[(c[q>>2]|0)+(c[w>>2]<<2)>>2]>>15)+1>>1)|0)>>8|0)<=32767){j=(c[v>>2]|0)+(_((c[w>>2]|0)+(c[s>>2]|0)-2|0,c[r>>2]|0)|0)|0;j=_(c[(c[p>>2]|0)+(j<<2)>>2]>>16,(c[(c[q>>2]|0)+(c[w>>2]<<2)>>2]&65535)<<16>>16)|0;f=(c[v>>2]|0)+(_((c[w>>2]|0)+(c[s>>2]|0)-2|0,c[r>>2]|0)|0)|0;f=j+((_(c[(c[p>>2]|0)+(f<<2)>>2]&65535,(c[(c[q>>2]|0)+(c[w>>2]<<2)>>2]&65535)<<16>>16)|0)>>16)|0;j=(c[v>>2]|0)+(_((c[w>>2]|0)+(c[s>>2]|0)-2|0,c[r>>2]|0)|0)|0;if((f+(_(c[(c[p>>2]|0)+(j<<2)>>2]|0,(c[(c[q>>2]|0)+(c[w>>2]<<2)>>2]>>15)+1>>1)|0)>>8|0)<-32768)e=-32768;else{e=(c[v>>2]|0)+(_((c[w>>2]|0)+(c[s>>2]|0)-2|0,c[r>>2]|0)|0)|0;e=_(c[(c[p>>2]|0)+(e<<2)>>2]>>16,(c[(c[q>>2]|0)+(c[w>>2]<<2)>>2]&65535)<<16>>16)|0;j=(c[v>>2]|0)+(_((c[w>>2]|0)+(c[s>>2]|0)-2|0,c[r>>2]|0)|0)|0;j=e+((_(c[(c[p>>2]|0)+(j<<2)>>2]&65535,(c[(c[q>>2]|0)+(c[w>>2]<<2)>>2]&65535)<<16>>16)|0)>>16)|0;e=(c[v>>2]|0)+(_((c[w>>2]|0)+(c[s>>2]|0)-2|0,c[r>>2]|0)|0)|0;e=j+(_(c[(c[p>>2]|0)+(e<<2)>>2]|0,(c[(c[q>>2]|0)+(c[w>>2]<<2)>>2]>>15)+1>>1)|0)>>8}}else e=32767;b[(c[u>>2]|0)+(c[v>>2]<<1)>>1]=e;c[v>>2]=(c[v>>2]|0)+1}c[u>>2]=(c[u>>2]|0)+(c[r>>2]<<1);c[w>>2]=(c[w>>2]|0)+1}wg(c[l>>2]|0,c[m>>2]|0,a,c[r>>2]|0);wg(c[n>>2]|0,c[o>>2]|0,a+(c[r>>2]<<1)|0,c[r>>2]|0);na(c[t>>2]|0);i=x;return}function De(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f+4|0;d=f;c[e>>2]=a;c[d>>2]=b;i=f;return ((c[e>>2]|0)>(c[d>>2]|0)?c[e>>2]|0:c[d>>2]|0)|0}function Ee(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f+4|0;d=f;c[e>>2]=a;c[d>>2]=b;i=f;return ((c[e>>2]|0)<(c[d>>2]|0)?c[e>>2]|0:c[d>>2]|0)|0}function Fe(a,c){a=a|0;c=c|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f+2|0;d=f;b[e>>1]=a;b[d>>1]=c;i=f;return ((b[e>>1]|0)>(b[d>>1]|0)?b[e>>1]|0:b[d>>1]|0)&65535|0}function Ge(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f+4|0;d=f;c[e>>2]=a;c[d>>2]=b;i=f;return ((c[e>>2]|0)<(c[d>>2]|0)?c[e>>2]|0:c[d>>2]|0)|0}function He(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f+4|0;d=f;c[e>>2]=a;c[d>>2]=b;i=f;return ((c[e>>2]|0)>(c[d>>2]|0)?c[e>>2]|0:c[d>>2]|0)|0}function Ie(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;h=i;i=i+48|0;f=h+32|0;n=h+28|0;d=h+24|0;j=h+20|0;g=h+16|0;k=h+12|0;m=h+8|0;l=h+4|0;e=h;c[n>>2]=a;c[d>>2]=b;b=c[n>>2]|0;c[j>>2]=(Je((c[n>>2]|0)>0?b:0-b|0)|0)-1;c[m>>2]=c[n>>2]<<c[j>>2];c[k>>2]=536870911/(c[m>>2]>>16|0)|0;c[e>>2]=c[k>>2]<<16;b=_(c[m>>2]>>16,(c[k>>2]&65535)<<16>>16)|0;c[l>>2]=536870912-(b+((_(c[m>>2]&65535,(c[k>>2]&65535)<<16>>16)|0)>>16))<<3;b=_(c[l>>2]>>16,(c[k>>2]&65535)<<16>>16)|0;b=(c[e>>2]|0)+(b+((_(c[l>>2]&65535,(c[k>>2]&65535)<<16>>16)|0)>>16))|0;c[e>>2]=b+(_(c[l>>2]|0,(c[k>>2]>>15)+1>>1)|0);c[g>>2]=61-(c[j>>2]|0)-(c[d>>2]|0);b=c[g>>2]|0;if((c[g>>2]|0)>0)if((b|0)<32){c[f>>2]=c[e>>2]>>c[g>>2];n=c[f>>2]|0;i=h;return n|0}else{c[f>>2]=0;n=c[f>>2]|0;i=h;return n|0}a=c[e>>2]|0;d=0-(c[g>>2]|0)|0;do if((-2147483648>>0-b|0)>(2147483647>>0-(c[g>>2]|0)|0)){if((a|0)>(-2147483648>>d|0)){b=-2147483648>>0-(c[g>>2]|0);break}if((c[e>>2]|0)<(2147483647>>0-(c[g>>2]|0)|0)){b=2147483647>>0-(c[g>>2]|0);break}else{b=c[e>>2]|0;break}}else{if((a|0)>(2147483647>>d|0)){b=2147483647>>0-(c[g>>2]|0);break}if((c[e>>2]|0)<(-2147483648>>0-(c[g>>2]|0)|0)){b=-2147483648>>0-(c[g>>2]|0);break}else{b=c[e>>2]|0;break}}while(0);c[f>>2]=b<<0-(c[g>>2]|0);n=c[f>>2]|0;i=h;return n|0}function Je(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if(!(c[b>>2]|0)){a=32;i=d;return a|0}a=32-(32-(aa(c[b>>2]|0)|0))|0;i=d;return a|0}function Ke(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+48|0;f=r+40|0;g=r+36|0;h=r+32|0;o=r+28|0;j=r+24|0;k=r+20|0;l=r+16|0;m=r+12|0;p=r+8|0;n=r+4|0;q=r;c[f>>2]=d;c[g>>2]=e;c[l>>2]=(c[f>>2]|0)+4168;c[(c[f>>2]|0)+4164>>2]=a[(c[f>>2]|0)+2736+29>>0];c[h>>2]=0;a:do if((a[(c[f>>2]|0)+2736+29>>0]|0)==2){c[k>>2]=0;while(1){e=_(c[k>>2]|0,c[(c[f>>2]|0)+2332>>2]|0)|0;if((e|0)>=(c[(c[g>>2]|0)+((c[(c[f>>2]|0)+2324>>2]|0)-1<<2)>>2]|0))break;if((c[k>>2]|0)==(c[(c[f>>2]|0)+2324>>2]|0))break;c[o>>2]=0;c[j>>2]=0;while(1){if((c[j>>2]|0)>=5)break;c[o>>2]=(c[o>>2]|0)+(b[(c[g>>2]|0)+96+((((c[(c[f>>2]|0)+2324>>2]|0)-1-(c[k>>2]|0)|0)*5|0)+(c[j>>2]|0)<<1)>>1]|0);c[j>>2]=(c[j>>2]|0)+1}if((c[o>>2]|0)>(c[h>>2]|0)){c[h>>2]=c[o>>2];e=(c[l>>2]|0)+4|0;d=(c[g>>2]|0)+96+((((c[(c[f>>2]|0)+2324>>2]|0)-1-(c[k>>2]|0)&65535)<<16>>16)*5<<1)|0;b[e>>1]=b[d>>1]|0;b[e+2>>1]=b[d+2>>1]|0;b[e+4>>1]=b[d+4>>1]|0;b[e+6>>1]=b[d+6>>1]|0;b[e+8>>1]=b[d+8>>1]|0;c[c[l>>2]>>2]=c[(c[g>>2]|0)+((c[(c[f>>2]|0)+2324>>2]|0)-1-(c[k>>2]|0)<<2)>>2]<<8}c[k>>2]=(c[k>>2]|0)+1}o=(c[l>>2]|0)+4|0;c[o>>2]=0;c[o+4>>2]=0;b[o+8>>1]=0;b[(c[l>>2]|0)+4+4>>1]=c[h>>2];if((c[h>>2]|0)<11469){c[p>>2]=11744256;c[m>>2]=(c[p>>2]|0)/(((c[h>>2]|0)>1?c[h>>2]|0:1)|0)|0;c[j>>2]=0;while(1){if((c[j>>2]|0)>=5)break a;q=(_(b[(c[l>>2]|0)+4+(c[j>>2]<<1)>>1]|0,(c[m>>2]&65535)<<16>>16)|0)>>10&65535;b[(c[l>>2]|0)+4+(c[j>>2]<<1)>>1]=q;c[j>>2]=(c[j>>2]|0)+1}}if((c[h>>2]|0)>15565){c[q>>2]=255016960;c[n>>2]=(c[q>>2]|0)/(((c[h>>2]|0)>1?c[h>>2]|0:1)|0)|0;c[j>>2]=0;while(1){if((c[j>>2]|0)>=5)break a;q=(_(b[(c[l>>2]|0)+4+(c[j>>2]<<1)>>1]|0,(c[n>>2]&65535)<<16>>16)|0)>>14&65535;b[(c[l>>2]|0)+4+(c[j>>2]<<1)>>1]=q;c[j>>2]=(c[j>>2]|0)+1}}}else{c[c[l>>2]>>2]=((c[(c[f>>2]|0)+2316>>2]&65535)<<16>>16)*18<<8;q=(c[l>>2]|0)+4|0;c[q>>2]=0;c[q+4>>2]=0;b[q+8>>1]=0}while(0);pj((c[l>>2]|0)+14|0,(c[g>>2]|0)+32+32|0,c[(c[f>>2]|0)+2340>>2]<<1|0)|0;b[(c[l>>2]|0)+68>>1]=c[(c[g>>2]|0)+136>>2];q=(c[l>>2]|0)+72|0;p=(c[g>>2]|0)+16+((c[(c[f>>2]|0)+2324>>2]|0)-2<<2)|0;c[q>>2]=c[p>>2];c[q+4>>2]=c[p+4>>2];c[(c[l>>2]|0)+88>>2]=c[(c[f>>2]|0)+2332>>2];c[(c[l>>2]|0)+84>>2]=c[(c[f>>2]|0)+2324>>2];i=r;return}function Le(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+48|0;f=r+40|0;g=r+36|0;h=r+32|0;o=r+28|0;l=r+24|0;k=r+20|0;p=r+16|0;m=r+12|0;j=r+8|0;n=r+4|0;q=r;c[f>>2]=a;c[g>>2]=d;c[h>>2]=e;c[p>>2]=(c[f>>2]|0)+4168;if(c[(c[f>>2]|0)+4160>>2]|0){wg((c[p>>2]|0)+60|0,(c[p>>2]|0)+64|0,c[g>>2]|0,c[h>>2]|0);c[(c[p>>2]|0)+48>>2]=1;i=r;return}a:do if(c[(c[f>>2]|0)+4168+48>>2]|0){wg(k,l,c[g>>2]|0,c[h>>2]|0);if((c[l>>2]|0)<=(c[(c[p>>2]|0)+64>>2]|0)){if((c[l>>2]|0)<(c[(c[p>>2]|0)+64>>2]|0))c[k>>2]=c[k>>2]>>(c[(c[p>>2]|0)+64>>2]|0)-(c[l>>2]|0)}else c[(c[p>>2]|0)+60>>2]=c[(c[p>>2]|0)+60>>2]>>(c[l>>2]|0)-(c[(c[p>>2]|0)+64>>2]|0);if((c[k>>2]|0)>(c[(c[p>>2]|0)+60>>2]|0)){c[j>>2]=Je(c[(c[p>>2]|0)+60>>2]|0)|0;c[j>>2]=(c[j>>2]|0)-1;c[(c[p>>2]|0)+60>>2]=c[(c[p>>2]|0)+60>>2]<<c[j>>2];a=c[k>>2]|0;c[k>>2]=a>>(He(24-(c[j>>2]|0)|0,0)|0);c[m>>2]=(c[(c[p>>2]|0)+60>>2]|0)/(((c[k>>2]|0)>1?c[k>>2]|0:1)|0)|0;c[n>>2]=(Me(c[m>>2]|0)|0)<<4;c[q>>2]=(65536-(c[n>>2]|0)|0)/(c[h>>2]|0)|0;c[q>>2]=c[q>>2]<<2;c[o>>2]=0;while(1){if((c[o>>2]|0)>=(c[h>>2]|0))break a;a=_(c[n>>2]>>16,b[(c[g>>2]|0)+(c[o>>2]<<1)>>1]|0)|0;a=a+((_(c[n>>2]&65535,b[(c[g>>2]|0)+(c[o>>2]<<1)>>1]|0)|0)>>16)&65535;b[(c[g>>2]|0)+(c[o>>2]<<1)>>1]=a;c[n>>2]=(c[n>>2]|0)+(c[q>>2]|0);if((c[n>>2]|0)>65536)break a;c[o>>2]=(c[o>>2]|0)+1}}}while(0);c[(c[p>>2]|0)+48>>2]=0;i=r;return}function Me(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=i;i=i+32|0;b=h+16|0;d=h+12|0;g=h+8|0;f=h+4|0;e=h;c[d>>2]=a;if((c[d>>2]|0)<=0){c[b>>2]=0;g=c[b>>2]|0;i=h;return g|0}Ne(c[d>>2]|0,f,e);if(c[f>>2]&1|0)c[g>>2]=32768;else c[g>>2]=46214;c[g>>2]=c[g>>2]>>(c[f>>2]>>1);a=_(c[g>>2]>>16,(((c[e>>2]&65535)<<16>>16)*213&65535)<<16>>16)|0;c[g>>2]=(c[g>>2]|0)+(a+((_(c[g>>2]&65535,(((c[e>>2]&65535)<<16>>16)*213&65535)<<16>>16)|0)>>16));c[b>>2]=c[g>>2];g=c[b>>2]|0;i=h;return g|0}function Ne(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+16|0;h=e+12|0;j=e+8|0;f=e+4|0;g=e;c[h>>2]=a;c[j>>2]=b;c[f>>2]=d;c[g>>2]=Je(c[h>>2]|0)|0;c[c[j>>2]>>2]=c[g>>2];b=(Oe(c[h>>2]|0,24-(c[g>>2]|0)|0)|0)&127;c[c[f>>2]>>2]=b;i=e;return}function Oe(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;e=k+20|0;d=k+16|0;f=k+12|0;j=k+8|0;h=k+4|0;g=k;c[d>>2]=a;c[f>>2]=b;c[j>>2]=c[d>>2];c[h>>2]=c[f>>2];c[g>>2]=0-(c[f>>2]|0);if(!(c[f>>2]|0)){c[e>>2]=c[d>>2];j=c[e>>2]|0;i=k;return j|0}d=c[j>>2]|0;if((c[f>>2]|0)<0){c[e>>2]=d<<c[g>>2]|(c[j>>2]|0)>>>(32-(c[g>>2]|0)|0);j=c[e>>2]|0;i=k;return j|0}else{c[e>>2]=d<<32-(c[h>>2]|0)|(c[j>>2]|0)>>>(c[h>>2]|0);j=c[e>>2]|0;i=k;return j|0}return 0}function Pe(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;i=i+80|0;g=d+68|0;f=d+64|0;e=d+32|0;h=d+16|0;j=d+8|0;k=d;c[g>>2]=a;c[f>>2]=b;Qe(e,c[f>>2]|0,8);Qe(h,e,4);Qe(j,h,2);Qe(k,j,1);Re(c[g>>2]|0,c[j>>2]|0,c[k>>2]|0,30015);Re(c[g>>2]|0,c[h>>2]|0,c[j>>2]|0,29863);Re(c[g>>2]|0,c[e>>2]|0,c[h>>2]|0,29711);Re(c[g>>2]|0,c[c[f>>2]>>2]|0,c[e>>2]|0,29559);Re(c[g>>2]|0,c[(c[f>>2]|0)+8>>2]|0,c[e+4>>2]|0,29559);Re(c[g>>2]|0,c[e+8>>2]|0,c[h+4>>2]|0,29711);Re(c[g>>2]|0,c[(c[f>>2]|0)+16>>2]|0,c[e+8>>2]|0,29559);Re(c[g>>2]|0,c[(c[f>>2]|0)+24>>2]|0,c[e+12>>2]|0,29559);Re(c[g>>2]|0,c[h+8>>2]|0,c[j+4>>2]|0,29863);Re(c[g>>2]|0,c[e+16>>2]|0,c[h+8>>2]|0,29711);Re(c[g>>2]|0,c[(c[f>>2]|0)+32>>2]|0,c[e+16>>2]|0,29559);Re(c[g>>2]|0,c[(c[f>>2]|0)+40>>2]|0,c[e+20>>2]|0,29559);Re(c[g>>2]|0,c[e+24>>2]|0,c[h+12>>2]|0,29711);Re(c[g>>2]|0,c[(c[f>>2]|0)+48>>2]|0,c[e+24>>2]|0,29559);Re(c[g>>2]|0,c[(c[f>>2]|0)+56>>2]|0,c[e+28>>2]|0,29559);i=d;return}function Qe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;e=j+12|0;f=j+8|0;g=j+4|0;h=j;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;c[h>>2]=0;while(1){if((c[h>>2]|0)>=(c[g>>2]|0))break;c[(c[e>>2]|0)+(c[h>>2]<<2)>>2]=(c[(c[f>>2]|0)+(c[h>>2]<<1<<2)>>2]|0)+(c[(c[f>>2]|0)+((c[h>>2]<<1)+1<<2)>>2]|0);c[h>>2]=(c[h>>2]|0)+1}i=j;return}function Re(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;l=i;i=i+16|0;g=l+12|0;h=l+8|0;j=l+4|0;k=l;c[g>>2]=a;c[h>>2]=b;c[j>>2]=e;c[k>>2]=f;if((c[j>>2]|0)<=0){i=l;return}qc(c[g>>2]|0,c[h>>2]|0,(c[k>>2]|0)+(d[30167+(c[j>>2]|0)>>0]|0)|0,8);i=l;return}function Se(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;f=i;i=i+48|0;j=f+8|0;h=f+4|0;m=f;l=f+40|0;k=f+32|0;g=f+16|0;c[j>>2]=a;c[h>>2]=d;c[m>>2]=e;Te(l,l+2|0,c[h>>2]|0,c[m>>2]|0,30015);Te(k,k+2|0,c[h>>2]|0,b[l>>1]|0,29863);Te(g,g+2|0,c[h>>2]|0,b[k>>1]|0,29711);Te(c[j>>2]|0,(c[j>>2]|0)+2|0,c[h>>2]|0,b[g>>1]|0,29559);Te((c[j>>2]|0)+4|0,(c[j>>2]|0)+6|0,c[h>>2]|0,b[g+2>>1]|0,29559);Te(g+4|0,g+6|0,c[h>>2]|0,b[k+2>>1]|0,29711);Te((c[j>>2]|0)+8|0,(c[j>>2]|0)+10|0,c[h>>2]|0,b[g+4>>1]|0,29559);Te((c[j>>2]|0)+12|0,(c[j>>2]|0)+14|0,c[h>>2]|0,b[g+6>>1]|0,29559);Te(k+4|0,k+6|0,c[h>>2]|0,b[l+2>>1]|0,29863);Te(g+8|0,g+10|0,c[h>>2]|0,b[k+4>>1]|0,29711);Te((c[j>>2]|0)+16|0,(c[j>>2]|0)+18|0,c[h>>2]|0,b[g+8>>1]|0,29559);Te((c[j>>2]|0)+20|0,(c[j>>2]|0)+22|0,c[h>>2]|0,b[g+10>>1]|0,29559);Te(g+12|0,g+14|0,c[h>>2]|0,b[k+6>>1]|0,29711);Te((c[j>>2]|0)+24|0,(c[j>>2]|0)+26|0,c[h>>2]|0,b[g+12>>1]|0,29559);Te((c[j>>2]|0)+28|0,(c[j>>2]|0)+30|0,c[h>>2]|0,b[g+14>>1]|0,29559);i=f;return}function Te(a,e,f,g,h){a=a|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;j=o+16|0;k=o+12|0;l=o+8|0;m=o+4|0;n=o;c[j>>2]=a;c[k>>2]=e;c[l>>2]=f;c[m>>2]=g;c[n>>2]=h;if((c[m>>2]|0)>0){h=(ec(c[l>>2]|0,(c[n>>2]|0)+(d[30167+(c[m>>2]|0)>>0]|0)|0,8)|0)&65535;b[c[j>>2]>>1]=h;b[c[k>>2]>>1]=(c[m>>2]|0)-(b[c[j>>2]>>1]|0);i=o;return}else{b[c[j>>2]>>1]=0;b[c[k>>2]>>1]=0;i=o;return}}function Ue(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g+8|0;e=g+4|0;f=g;c[d>>2]=a;c[f>>2]=0;a=c[d>>2]|0;b=a+112|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(b|0));c[e>>2]=0;while(1){if((c[e>>2]|0)>=4)break;b=Ve(50/((c[e>>2]|0)+1|0)|0,1)|0;c[(c[d>>2]|0)+92+(c[e>>2]<<2)>>2]=b;c[e>>2]=(c[e>>2]|0)+1}c[e>>2]=0;while(1){if((c[e>>2]|0)>=4)break;c[(c[d>>2]|0)+60+(c[e>>2]<<2)>>2]=(c[(c[d>>2]|0)+92+(c[e>>2]<<2)>>2]|0)*100;c[(c[d>>2]|0)+76+(c[e>>2]<<2)>>2]=2147483647/(c[(c[d>>2]|0)+60+(c[e>>2]<<2)>>2]|0)|0;c[e>>2]=(c[e>>2]|0)+1}c[(c[d>>2]|0)+108>>2]=15;c[e>>2]=0;while(1){if((c[e>>2]|0)>=4)break;c[(c[d>>2]|0)+40+(c[e>>2]<<2)>>2]=25600;c[e>>2]=(c[e>>2]|0)+1}i=g;return c[f>>2]|0}function Ve(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f+4|0;d=f;c[e>>2]=a;c[d>>2]=b;i=f;return ((c[e>>2]|0)>(c[d>>2]|0)?c[e>>2]|0:c[d>>2]|0)|0}function We(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;C=i;i=i+144|0;s=C+132|0;F=C+128|0;v=C+124|0;q=C+120|0;p=C+116|0;E=C+112|0;D=C+108|0;k=C+104|0;h=C+100|0;j=C+96|0;w=C+92|0;l=C+88|0;x=C+84|0;m=C+80|0;r=C+76|0;A=C+72|0;e=C+136|0;o=C+56|0;u=C+40|0;B=C+36|0;n=C+32|0;g=C+16|0;z=C+8|0;y=C+4|0;t=C;c[s>>2]=a;c[F>>2]=d;c[z>>2]=0;c[y>>2]=(c[s>>2]|0)+32;c[E>>2]=c[(c[s>>2]|0)+4608>>2]>>1;c[D>>2]=c[(c[s>>2]|0)+4608>>2]>>2;c[k>>2]=c[(c[s>>2]|0)+4608>>2]>>3;c[g>>2]=0;c[g+4>>2]=(c[k>>2]|0)+(c[D>>2]|0);c[g+8>>2]=(c[g+4>>2]|0)+(c[k>>2]|0);c[g+12>>2]=(c[g+8>>2]|0)+(c[D>>2]|0);a=(c[g+12>>2]|0)+(c[E>>2]|0)|0;c[t>>2]=ia()|0;f=i;i=i+((1*(a<<1)|0)+15&-16)|0;Mf(c[F>>2]|0,c[y>>2]|0,f,f+(c[g+12>>2]<<1)|0,c[(c[s>>2]|0)+4608>>2]|0);Mf(f,(c[y>>2]|0)+8|0,f,f+(c[g+8>>2]<<1)|0,c[E>>2]|0);Mf(f,(c[y>>2]|0)+16|0,f,f+(c[g+4>>2]<<1)|0,c[D>>2]|0);b[f+((c[k>>2]|0)-1<<1)>>1]=b[f+((c[k>>2]|0)-1<<1)>>1]>>1;b[e>>1]=b[f+((c[k>>2]|0)-1<<1)>>1]|0;c[l>>2]=(c[k>>2]|0)-1;while(1){if((c[l>>2]|0)<=0)break;b[f+((c[l>>2]|0)-1<<1)>>1]=b[f+((c[l>>2]|0)-1<<1)>>1]>>1;F=f+(c[l>>2]<<1)|0;b[F>>1]=(b[F>>1]|0)-(b[f+((c[l>>2]|0)-1<<1)>>1]|0);c[l>>2]=(c[l>>2]|0)+-1}b[f>>1]=(b[f>>1]|0)-(b[(c[y>>2]|0)+56>>1]|0);b[(c[y>>2]|0)+56>>1]=b[e>>1]|0;c[x>>2]=0;while(1){if((c[x>>2]|0)>=4)break;F=c[(c[s>>2]|0)+4608>>2]|0;c[k>>2]=F>>(Xe(4-(c[x>>2]|0)|0,3)|0);c[h>>2]=c[k>>2]>>2;c[j>>2]=0;c[o+(c[x>>2]<<2)>>2]=c[(c[y>>2]|0)+24+(c[x>>2]<<2)>>2];c[m>>2]=0;while(1){if((c[m>>2]|0)>=4)break;c[r>>2]=0;c[l>>2]=0;while(1){if((c[l>>2]|0)>=(c[h>>2]|0))break;c[n>>2]=b[f+((c[g+(c[x>>2]<<2)>>2]|0)+(c[l>>2]|0)+(c[j>>2]|0)<<1)>>1]>>3;c[r>>2]=(c[r>>2]|0)+(_((c[n>>2]&65535)<<16>>16,(c[n>>2]&65535)<<16>>16)|0);c[l>>2]=(c[l>>2]|0)+1}d=c[o+(c[x>>2]<<2)>>2]|0;a=c[r>>2]|0;if((c[m>>2]|0)<3){if(d+a&-2147483648|0)d=2147483647;else d=(c[o+(c[x>>2]<<2)>>2]|0)+(c[r>>2]|0)|0;c[o+(c[x>>2]<<2)>>2]=d}else{if(d+(a>>1)&-2147483648|0)d=2147483647;else d=(c[o+(c[x>>2]<<2)>>2]|0)+(c[r>>2]>>1)|0;c[o+(c[x>>2]<<2)>>2]=d}c[j>>2]=(c[j>>2]|0)+(c[h>>2]|0);c[m>>2]=(c[m>>2]|0)+1}c[(c[y>>2]|0)+24+(c[x>>2]<<2)>>2]=c[r>>2];c[x>>2]=(c[x>>2]|0)+1}Ye(o,c[y>>2]|0);c[r>>2]=0;c[p>>2]=0;c[x>>2]=0;while(1){if((c[x>>2]|0)>=4)break;c[B>>2]=(c[o+(c[x>>2]<<2)>>2]|0)-(c[(c[y>>2]|0)+60+(c[x>>2]<<2)>>2]|0);d=c[x>>2]|0;if((c[B>>2]|0)>0){a=c[o+(c[x>>2]<<2)>>2]|0;if(!(c[o+(d<<2)>>2]&-8388608))c[u+(c[x>>2]<<2)>>2]=(a<<8|0)/((c[(c[y>>2]|0)+60+(c[x>>2]<<2)>>2]|0)+1|0)|0;else c[u+(c[x>>2]<<2)>>2]=(a|0)/((c[(c[y>>2]|0)+60+(c[x>>2]<<2)>>2]>>8)+1|0)|0;c[w>>2]=(Sf(c[u+(c[x>>2]<<2)>>2]|0)|0)-1024;c[r>>2]=(c[r>>2]|0)+(_((c[w>>2]&65535)<<16>>16,(c[w>>2]&65535)<<16>>16)|0);if((c[B>>2]|0)<1048576){E=(_e(c[B>>2]|0)|0)<<6>>16;E=_(E,(c[w>>2]&65535)<<16>>16)|0;F=(_e(c[B>>2]|0)|0)<<6&65535;c[w>>2]=E+((_(F,(c[w>>2]&65535)<<16>>16)|0)>>16)}F=_(c[17944+(c[x>>2]<<2)>>2]>>16,(c[w>>2]&65535)<<16>>16)|0;c[p>>2]=(c[p>>2]|0)+(F+((_(c[17944+(c[x>>2]<<2)>>2]&65535,(c[w>>2]&65535)<<16>>16)|0)>>16))}else c[u+(d<<2)>>2]=256;c[x>>2]=(c[x>>2]|0)+1}c[r>>2]=(c[r>>2]|0)/4|0;c[q>>2]=((_e(c[r>>2]|0)|0)*3&65535)<<16>>16;c[v>>2]=tg(0+(((c[q>>2]&65535)<<16>>16)*45e3>>16)-128|0)|0;F=(tg(c[p>>2]|0)|0)-16384<<1;c[(c[s>>2]|0)+4744>>2]=F;c[B>>2]=0;c[x>>2]=0;while(1){if((c[x>>2]|0)>=4)break;F=_((c[x>>2]|0)+1|0,(c[o+(c[x>>2]<<2)>>2]|0)-(c[(c[y>>2]|0)+60+(c[x>>2]<<2)>>2]|0)>>4)|0;c[B>>2]=(c[B>>2]|0)+F;c[x>>2]=(c[x>>2]|0)+1}if((c[B>>2]|0)>0){if((c[B>>2]|0)<32768){d=c[B>>2]|0;if((c[(c[s>>2]|0)+4608>>2]|0)==((c[(c[s>>2]|0)+4600>>2]|0)*10|0)){if((d|0)>32767)d=32767;else d=(c[B>>2]|0)<-32768?-32768:c[B>>2]|0;c[B>>2]=d<<16}else{if((d|0)>65535)d=65535;else d=(c[B>>2]|0)<-65536?-65536:c[B>>2]|0;c[B>>2]=d<<15}c[B>>2]=_e(c[B>>2]|0)|0;F=_(32768+(c[B>>2]|0)>>16,(c[v>>2]&65535)<<16>>16)|0;c[v>>2]=F+((_(32768+(c[B>>2]|0)&65535,(c[v>>2]&65535)<<16>>16)|0)>>16)}}else c[v>>2]=c[v>>2]>>1;F=Xe(c[v>>2]>>7,255)|0;c[(c[s>>2]|0)+4556>>2]=F;F=_(c[v>>2]>>16,(c[v>>2]&65535)<<16>>16)|0;c[A>>2]=0+((F+((_(c[v>>2]&65535,(c[v>>2]&65535)<<16>>16)|0)>>16)&65535)<<16>>16<<12>>16);if((c[(c[s>>2]|0)+4608>>2]|0)==((c[(c[s>>2]|0)+4600>>2]|0)*10|0))c[A>>2]=c[A>>2]>>1;c[x>>2]=0;while(1){if((c[x>>2]|0)>=4)break;F=_((c[u+(c[x>>2]<<2)>>2]|0)-(c[(c[y>>2]|0)+40+(c[x>>2]<<2)>>2]|0)>>16,(c[A>>2]&65535)<<16>>16)|0;F=(c[(c[y>>2]|0)+40+(c[x>>2]<<2)>>2]|0)+(F+((_((c[u+(c[x>>2]<<2)>>2]|0)-(c[(c[y>>2]|0)+40+(c[x>>2]<<2)>>2]|0)&65535,(c[A>>2]&65535)<<16>>16)|0)>>16))|0;c[(c[y>>2]|0)+40+(c[x>>2]<<2)>>2]=F;c[w>>2]=((Sf(c[(c[y>>2]|0)+40+(c[x>>2]<<2)>>2]|0)|0)-1024|0)*3;F=tg((c[w>>2]|0)-2048>>4)|0;c[(c[s>>2]|0)+4728+(c[x>>2]<<2)>>2]=F;c[x>>2]=(c[x>>2]|0)+1}F=c[z>>2]|0;na(c[t>>2]|0);i=C;return F|0}function Xe(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f+4|0;d=f;c[e>>2]=a;c[d>>2]=b;i=f;return ((c[e>>2]|0)<(c[d>>2]|0)?c[e>>2]|0:c[d>>2]|0)|0}function Ye(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;d=m+28|0;e=m+24|0;h=m+20|0;k=m+16|0;l=m+12|0;g=m+8|0;f=m+4|0;j=m;c[d>>2]=a;c[e>>2]=b;if((c[(c[e>>2]|0)+108>>2]|0)<1e3)c[j>>2]=32767/((c[(c[e>>2]|0)+108>>2]>>4)+1|0)|0;else c[j>>2]=0;c[h>>2]=0;while(1){if((c[h>>2]|0)>=4)break;c[k>>2]=c[(c[e>>2]|0)+60+(c[h>>2]<<2)>>2];if((c[(c[d>>2]|0)+(c[h>>2]<<2)>>2]|0)+(c[(c[e>>2]|0)+92+(c[h>>2]<<2)>>2]|0)&-2147483648|0)a=2147483647;else a=(c[(c[d>>2]|0)+(c[h>>2]<<2)>>2]|0)+(c[(c[e>>2]|0)+92+(c[h>>2]<<2)>>2]|0)|0;c[l>>2]=a;c[g>>2]=2147483647/(c[l>>2]|0)|0;do if((c[l>>2]|0)<=(c[k>>2]<<3|0))if((c[l>>2]|0)<(c[k>>2]|0)){c[f>>2]=1024;break}else{a=_(c[g>>2]>>16,(c[k>>2]&65535)<<16>>16)|0;a=a+((_(c[g>>2]&65535,(c[k>>2]&65535)<<16>>16)|0)>>16)|0;a=a+(_(c[g>>2]|0,(c[k>>2]>>15)+1>>1)|0)>>16<<11;b=_(c[g>>2]>>16,(c[k>>2]&65535)<<16>>16)|0;b=b+((_(c[g>>2]&65535,(c[k>>2]&65535)<<16>>16)|0)>>16)|0;c[f>>2]=a+((b+(_(c[g>>2]|0,(c[k>>2]>>15)+1>>1)|0)&65535)<<11>>16);break}else c[f>>2]=128;while(0);c[f>>2]=Ze(c[f>>2]|0,c[j>>2]|0)|0;b=_((c[g>>2]|0)-(c[(c[e>>2]|0)+76+(c[h>>2]<<2)>>2]|0)>>16,(c[f>>2]&65535)<<16>>16)|0;b=(c[(c[e>>2]|0)+76+(c[h>>2]<<2)>>2]|0)+(b+((_((c[g>>2]|0)-(c[(c[e>>2]|0)+76+(c[h>>2]<<2)>>2]|0)&65535,(c[f>>2]&65535)<<16>>16)|0)>>16))|0;c[(c[e>>2]|0)+76+(c[h>>2]<<2)>>2]=b;c[k>>2]=2147483647/(c[(c[e>>2]|0)+76+(c[h>>2]<<2)>>2]|0)|0;c[k>>2]=(c[k>>2]|0)<16777215?c[k>>2]|0:16777215;c[(c[e>>2]|0)+60+(c[h>>2]<<2)>>2]=c[k>>2];c[h>>2]=(c[h>>2]|0)+1}l=(c[e>>2]|0)+108|0;c[l>>2]=(c[l>>2]|0)+1;i=m;return}function Ze(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f+4|0;d=f;c[e>>2]=a;c[d>>2]=b;i=f;return ((c[e>>2]|0)>(c[d>>2]|0)?c[e>>2]|0:c[d>>2]|0)|0}function _e(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=i;i=i+32|0;b=h+16|0;d=h+12|0;g=h+8|0;f=h+4|0;e=h;c[d>>2]=a;if((c[d>>2]|0)<=0){c[b>>2]=0;g=c[b>>2]|0;i=h;return g|0}$e(c[d>>2]|0,f,e);if(c[f>>2]&1|0)c[g>>2]=32768;else c[g>>2]=46214;c[g>>2]=c[g>>2]>>(c[f>>2]>>1);a=_(c[g>>2]>>16,(((c[e>>2]&65535)<<16>>16)*213&65535)<<16>>16)|0;c[g>>2]=(c[g>>2]|0)+(a+((_(c[g>>2]&65535,(((c[e>>2]&65535)<<16>>16)*213&65535)<<16>>16)|0)>>16));c[b>>2]=c[g>>2];g=c[b>>2]|0;i=h;return g|0}function $e(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+16|0;h=e+12|0;j=e+8|0;f=e+4|0;g=e;c[h>>2]=a;c[j>>2]=b;c[f>>2]=d;c[g>>2]=af(c[h>>2]|0)|0;c[c[j>>2]>>2]=c[g>>2];b=(bf(c[h>>2]|0,24-(c[g>>2]|0)|0)|0)&127;c[c[f>>2]>>2]=b;i=e;return}function af(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if(!(c[b>>2]|0)){a=32;i=d;return a|0}a=32-(32-(aa(c[b>>2]|0)|0))|0;i=d;return a|0}function bf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;e=k+20|0;d=k+16|0;f=k+12|0;j=k+8|0;h=k+4|0;g=k;c[d>>2]=a;c[f>>2]=b;c[j>>2]=c[d>>2];c[h>>2]=c[f>>2];c[g>>2]=0-(c[f>>2]|0);if(!(c[f>>2]|0)){c[e>>2]=c[d>>2];j=c[e>>2]|0;i=k;return j|0}d=c[j>>2]|0;if((c[f>>2]|0)<0){c[e>>2]=d<<c[g>>2]|(c[j>>2]|0)>>>(32-(c[g>>2]|0)|0);j=c[e>>2]|0;i=k;return j|0}else{c[e>>2]=d<<32-(c[h>>2]|0)|(c[j>>2]|0)>>>(c[h>>2]|0);j=c[e>>2]|0;i=k;return j|0}return 0}function cf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;f=h+12|0;d=h+8|0;g=h+4|0;e=h;c[f>>2]=a;c[d>>2]=b;c[g>>2]=c[(c[f>>2]|0)+4600>>2];c[e>>2]=((c[g>>2]&65535)<<16>>16)*1e3;if(!(c[e>>2]|0)){b=c[f>>2]|0;if((c[(c[f>>2]|0)+4596>>2]|0)<(c[(c[f>>2]|0)+4580>>2]|0))b=c[b+4596>>2]|0;else b=c[b+4580>>2]|0;c[e>>2]=b;c[g>>2]=(c[e>>2]|0)/1e3|0;g=c[g>>2]|0;i=h;return g|0}if(((c[e>>2]|0)<=(c[(c[f>>2]|0)+4580>>2]|0)?(c[e>>2]|0)<=(c[(c[f>>2]|0)+4588>>2]|0):0)?(c[e>>2]|0)>=(c[(c[f>>2]|0)+4592>>2]|0):0){if((c[(c[f>>2]|0)+16+8>>2]|0)>=256)c[(c[f>>2]|0)+16+12>>2]=0;if((c[(c[f>>2]|0)+4560>>2]|0)==0?(c[(c[d>>2]|0)+60>>2]|0)==0:0){g=c[g>>2]|0;i=h;return g|0}b=c[f>>2]|0;if((((c[(c[f>>2]|0)+4600>>2]&65535)<<16>>16)*1e3|0)>(c[(c[f>>2]|0)+4596>>2]|0)){if(!(c[b+16+12>>2]|0)){c[(c[f>>2]|0)+16+8>>2]=256;e=(c[f>>2]|0)+16|0;c[e>>2]=0;c[e+4>>2]=0}b=(c[f>>2]|0)+16|0;if(c[(c[d>>2]|0)+60>>2]|0){c[b+12>>2]=0;c[g>>2]=(c[(c[f>>2]|0)+4600>>2]|0)==16?12:8;g=c[g>>2]|0;i=h;return g|0}if((c[b+8>>2]|0)<=0){c[(c[d>>2]|0)+84>>2]=1;f=(c[d>>2]|0)+52|0;c[f>>2]=(c[f>>2]|0)-(((c[(c[d>>2]|0)+52>>2]|0)*5|0)/((c[(c[d>>2]|0)+24>>2]|0)+5|0)|0);g=c[g>>2]|0;i=h;return g|0}else{c[(c[f>>2]|0)+16+12>>2]=-2;g=c[g>>2]|0;i=h;return g|0}}if((((c[b+4600>>2]&65535)<<16>>16)*1e3|0)>=(c[(c[f>>2]|0)+4596>>2]|0)){if((c[(c[f>>2]|0)+16+12>>2]|0)>=0){g=c[g>>2]|0;i=h;return g|0}c[(c[f>>2]|0)+16+12>>2]=1;g=c[g>>2]|0;i=h;return g|0}b=c[f>>2]|0;if(c[(c[d>>2]|0)+60>>2]|0){c[g>>2]=(c[b+4600>>2]|0)==8?12:16;c[(c[f>>2]|0)+16+8>>2]=0;e=(c[f>>2]|0)+16|0;c[e>>2]=0;c[e+4>>2]=0;c[(c[f>>2]|0)+16+12>>2]=1;g=c[g>>2]|0;i=h;return g|0}if(!(c[b+16+12>>2]|0)){c[(c[d>>2]|0)+84>>2]=1;f=(c[d>>2]|0)+52|0;c[f>>2]=(c[f>>2]|0)-(((c[(c[d>>2]|0)+52>>2]|0)*5|0)/((c[(c[d>>2]|0)+24>>2]|0)+5|0)|0);g=c[g>>2]|0;i=h;return g|0}else{c[(c[f>>2]|0)+16+12>>2]=1;g=c[g>>2]|0;i=h;return g|0}}c[e>>2]=c[(c[f>>2]|0)+4580>>2];if((c[e>>2]|0)<(c[(c[f>>2]|0)+4588>>2]|0))b=c[e>>2]|0;else b=c[(c[f>>2]|0)+4588>>2]|0;c[e>>2]=b;if((c[e>>2]|0)>(c[(c[f>>2]|0)+4592>>2]|0))b=c[e>>2]|0;else b=c[(c[f>>2]|0)+4592>>2]|0;c[e>>2]=b;c[g>>2]=(c[e>>2]|0)/1e3|0;g=c[g>>2]|0;i=h;return g|0}function df(d,e,f,g,h,j,k,l,m){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;M=i;i=i+112|0;E=M+96|0;F=M+92|0;n=M+88|0;G=M+84|0;o=M+80|0;p=M+76|0;q=M+72|0;H=M+68|0;K=M+60|0;L=M+56|0;u=M+52|0;D=M+100|0;v=M+48|0;J=M+44|0;t=M+40|0;s=M+36|0;r=M+32|0;B=M+28|0;A=M+24|0;z=M+20|0;C=M+16|0;I=M+12|0;y=M+8|0;w=M+4|0;x=M;c[E>>2]=d;c[F>>2]=e;c[n>>2]=f;c[G>>2]=g;c[o>>2]=h;c[p>>2]=j;c[q>>2]=k;c[H>>2]=l;c[M+64>>2]=m;c[z>>2]=2147483647;c[I>>2]=0;c[L>>2]=0;while(1){if((c[L>>2]|0)>=3)break;c[x>>2]=51;c[v>>2]=c[17632+(c[L>>2]<<2)>>2];c[J>>2]=c[17644+(c[L>>2]<<2)>>2];c[t>>2]=c[17656+(c[L>>2]<<2)>>2];c[u>>2]=a[27263+(c[L>>2]|0)>>0];c[r>>2]=c[o>>2];c[s>>2]=c[E>>2];c[A>>2]=0;c[C>>2]=c[c[G>>2]>>2];c[K>>2]=0;while(1){if((c[K>>2]|0)>=(c[H>>2]|0))break;g=Wf(5333-(c[C>>2]|0)+896|0)|0;c[y>>2]=g-(c[x>>2]|0);ef(D+(c[K>>2]|0)|0,B,w,c[s>>2]|0,c[r>>2]|0,c[J>>2]|0,c[t>>2]|0,c[v>>2]|0,c[p>>2]|0,c[y>>2]|0,c[u>>2]|0);if((c[A>>2]|0)+(c[B>>2]|0)&-2147483648|0)d=2147483647;else d=(c[A>>2]|0)+(c[B>>2]|0)|0;c[A>>2]=d;g=c[C>>2]|0;if(0>(g+(Sf((c[x>>2]|0)+(c[w>>2]|0)|0)|0)-896|0))d=0;else{d=c[C>>2]|0;d=d+(Sf((c[x>>2]|0)+(c[w>>2]|0)|0)|0)-896|0}c[C>>2]=d;c[s>>2]=(c[s>>2]|0)+10;c[r>>2]=(c[r>>2]|0)+100;c[K>>2]=(c[K>>2]|0)+1}c[A>>2]=2147483646<(c[A>>2]|0)?2147483646:c[A>>2]|0;if((c[A>>2]|0)<(c[z>>2]|0)){c[z>>2]=c[A>>2];a[c[n>>2]>>0]=c[L>>2];pj(c[F>>2]|0,D|0,c[H>>2]|0)|0;c[I>>2]=c[C>>2]}if(c[q>>2]|0?(c[A>>2]|0)<(b[12226]|0):0)break;c[L>>2]=(c[L>>2]|0)+1}c[J>>2]=c[17644+(a[c[n>>2]>>0]<<2)>>2];c[K>>2]=0;while(1){if((c[K>>2]|0)>=(c[H>>2]|0))break;c[L>>2]=0;while(1){d=c[K>>2]|0;if((c[L>>2]|0)>=5)break;b[(c[E>>2]|0)+(((c[K>>2]|0)*5|0)+(c[L>>2]|0)<<1)>>1]=a[(c[J>>2]|0)+(((a[(c[F>>2]|0)+d>>0]|0)*5|0)+(c[L>>2]|0))>>0]<<7;c[L>>2]=(c[L>>2]|0)+1}c[K>>2]=d+1}c[c[G>>2]>>2]=c[I>>2];i=M;return}function ef(e,f,g,h,j,k,l,m,n,o,p){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;var q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;G=i;i=i+80|0;q=G+60|0;r=G+56|0;t=G+52|0;u=G+48|0;v=G+44|0;H=G+40|0;w=G+36|0;x=G+32|0;y=G+28|0;z=G+24|0;s=G+20|0;D=G+16|0;C=G+12|0;A=G+8|0;B=G+64|0;E=G+4|0;F=G;c[q>>2]=e;c[r>>2]=f;c[t>>2]=g;c[u>>2]=h;c[v>>2]=j;c[H>>2]=k;c[w>>2]=l;c[x>>2]=m;c[y>>2]=n;c[z>>2]=o;c[s>>2]=p;c[c[r>>2]>>2]=2147483647;c[A>>2]=c[H>>2];c[D>>2]=0;while(1){if((c[D>>2]|0)>=(c[s>>2]|0))break;c[C>>2]=d[(c[w>>2]|0)+(c[D>>2]|0)>>0];b[B>>1]=(b[c[u>>2]>>1]|0)-(a[c[A>>2]>>0]<<7);b[B+2>>1]=(b[(c[u>>2]|0)+2>>1]|0)-(a[(c[A>>2]|0)+1>>0]<<7);b[B+4>>1]=(b[(c[u>>2]|0)+4>>1]|0)-(a[(c[A>>2]|0)+2>>0]<<7);b[B+6>>1]=(b[(c[u>>2]|0)+6>>1]|0)-(a[(c[A>>2]|0)+3>>0]<<7);b[B+8>>1]=(b[(c[u>>2]|0)+8>>1]|0)-(a[(c[A>>2]|0)+4>>0]<<7);c[E>>2]=_((c[y>>2]&65535)<<16>>16,d[(c[x>>2]|0)+(c[D>>2]|0)>>0]|0)|0;if(((c[C>>2]|0)-(c[z>>2]|0)|0)>0)p=(c[C>>2]|0)-(c[z>>2]|0)|0;else p=0;c[E>>2]=(c[E>>2]|0)+(p<<10);H=_(c[(c[v>>2]|0)+4>>2]>>16,b[B+2>>1]|0)|0;c[F>>2]=H+((_(c[(c[v>>2]|0)+4>>2]&65535,b[B+2>>1]|0)|0)>>16);H=_(c[(c[v>>2]|0)+8>>2]>>16,b[B+4>>1]|0)|0;c[F>>2]=(c[F>>2]|0)+(H+((_(c[(c[v>>2]|0)+8>>2]&65535,b[B+4>>1]|0)|0)>>16));H=_(c[(c[v>>2]|0)+12>>2]>>16,b[B+6>>1]|0)|0;c[F>>2]=(c[F>>2]|0)+(H+((_(c[(c[v>>2]|0)+12>>2]&65535,b[B+6>>1]|0)|0)>>16));H=_(c[(c[v>>2]|0)+16>>2]>>16,b[B+8>>1]|0)|0;c[F>>2]=(c[F>>2]|0)+(H+((_(c[(c[v>>2]|0)+16>>2]&65535,b[B+8>>1]|0)|0)>>16));c[F>>2]=c[F>>2]<<1;H=_(c[c[v>>2]>>2]>>16,b[B>>1]|0)|0;c[F>>2]=(c[F>>2]|0)+(H+((_(c[c[v>>2]>>2]&65535,b[B>>1]|0)|0)>>16));H=_(c[F>>2]>>16,b[B>>1]|0)|0;c[E>>2]=(c[E>>2]|0)+(H+((_(c[F>>2]&65535,b[B>>1]|0)|0)>>16));H=_(c[(c[v>>2]|0)+28>>2]>>16,b[B+4>>1]|0)|0;c[F>>2]=H+((_(c[(c[v>>2]|0)+28>>2]&65535,b[B+4>>1]|0)|0)>>16);H=_(c[(c[v>>2]|0)+32>>2]>>16,b[B+6>>1]|0)|0;c[F>>2]=(c[F>>2]|0)+(H+((_(c[(c[v>>2]|0)+32>>2]&65535,b[B+6>>1]|0)|0)>>16));H=_(c[(c[v>>2]|0)+36>>2]>>16,b[B+8>>1]|0)|0;c[F>>2]=(c[F>>2]|0)+(H+((_(c[(c[v>>2]|0)+36>>2]&65535,b[B+8>>1]|0)|0)>>16));c[F>>2]=c[F>>2]<<1;H=_(c[(c[v>>2]|0)+24>>2]>>16,b[B+2>>1]|0)|0;c[F>>2]=(c[F>>2]|0)+(H+((_(c[(c[v>>2]|0)+24>>2]&65535,b[B+2>>1]|0)|0)>>16));H=_(c[F>>2]>>16,b[B+2>>1]|0)|0;c[E>>2]=(c[E>>2]|0)+(H+((_(c[F>>2]&65535,b[B+2>>1]|0)|0)>>16));H=_(c[(c[v>>2]|0)+52>>2]>>16,b[B+6>>1]|0)|0;c[F>>2]=H+((_(c[(c[v>>2]|0)+52>>2]&65535,b[B+6>>1]|0)|0)>>16);H=_(c[(c[v>>2]|0)+56>>2]>>16,b[B+8>>1]|0)|0;c[F>>2]=(c[F>>2]|0)+(H+((_(c[(c[v>>2]|0)+56>>2]&65535,b[B+8>>1]|0)|0)>>16));c[F>>2]=c[F>>2]<<1;H=_(c[(c[v>>2]|0)+48>>2]>>16,b[B+4>>1]|0)|0;c[F>>2]=(c[F>>2]|0)+(H+((_(c[(c[v>>2]|0)+48>>2]&65535,b[B+4>>1]|0)|0)>>16));H=_(c[F>>2]>>16,b[B+4>>1]|0)|0;c[E>>2]=(c[E>>2]|0)+(H+((_(c[F>>2]&65535,b[B+4>>1]|0)|0)>>16));H=_(c[(c[v>>2]|0)+76>>2]>>16,b[B+8>>1]|0)|0;c[F>>2]=H+((_(c[(c[v>>2]|0)+76>>2]&65535,b[B+8>>1]|0)|0)>>16);c[F>>2]=c[F>>2]<<1;H=_(c[(c[v>>2]|0)+72>>2]>>16,b[B+6>>1]|0)|0;c[F>>2]=(c[F>>2]|0)+(H+((_(c[(c[v>>2]|0)+72>>2]&65535,b[B+6>>1]|0)|0)>>16));H=_(c[F>>2]>>16,b[B+6>>1]|0)|0;c[E>>2]=(c[E>>2]|0)+(H+((_(c[F>>2]&65535,b[B+6>>1]|0)|0)>>16));H=_(c[(c[v>>2]|0)+96>>2]>>16,b[B+8>>1]|0)|0;c[F>>2]=H+((_(c[(c[v>>2]|0)+96>>2]&65535,b[B+8>>1]|0)|0)>>16);H=_(c[F>>2]>>16,b[B+8>>1]|0)|0;c[E>>2]=(c[E>>2]|0)+(H+((_(c[F>>2]&65535,b[B+8>>1]|0)|0)>>16));if((c[E>>2]|0)<(c[c[r>>2]>>2]|0)){c[c[r>>2]>>2]=c[E>>2];a[c[q>>2]>>0]=c[D>>2];c[c[t>>2]>>2]=c[C>>2]}c[A>>2]=(c[A>>2]|0)+5;c[D>>2]=(c[D>>2]|0)+1}i=G;return}function ff(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;j=i;i=i+32|0;k=j+20|0;f=j+16|0;d=j+12|0;e=j+8|0;g=j+4|0;h=j;c[k>>2]=b;c[h>>2]=c[k>>2];if((a[(c[h>>2]|0)+4565>>0]|0)!=2){i=j;return}c[d>>2]=((c[(c[h>>2]|0)+4600>>2]|0)*1e3<<16|0)/(c[(c[h>>2]|0)+4568>>2]|0)|0;c[e>>2]=(Sf(c[d>>2]|0)|0)-2048;c[f>>2]=c[(c[h>>2]|0)+4728>>2];l=c[e>>2]|0;b=_(0-(c[f>>2]|0)<<2>>16,(c[f>>2]&65535)<<16>>16)|0;b=b+((_(0-(c[f>>2]|0)<<2&65535,(c[f>>2]&65535)<<16>>16)|0)>>16)>>16;d=c[e>>2]|0;d=_(b,(d-((Sf(3932160)|0)-2048)&65535)<<16>>16)|0;b=_(0-(c[f>>2]|0)<<2>>16,(c[f>>2]&65535)<<16>>16)|0;b=b+((_(0-(c[f>>2]|0)<<2&65535,(c[f>>2]&65535)<<16>>16)|0)>>16)&65535;k=c[e>>2]|0;c[e>>2]=l+(d+((_(b,(k-((Sf(3932160)|0)-2048)&65535)<<16>>16)|0)>>16));c[g>>2]=(c[e>>2]|0)-(c[(c[h>>2]|0)+8>>2]>>8);if((c[g>>2]|0)<0)c[g>>2]=(c[g>>2]|0)*3;if((c[g>>2]|0)>51)d=51;else d=(c[g>>2]|0)<-51?-51:c[g>>2]|0;c[g>>2]=d;l=((_((c[(c[h>>2]|0)+4556>>2]&65535)<<16>>16,(c[g>>2]&65535)<<16>>16)|0)>>16)*6554|0;l=(c[(c[h>>2]|0)+8>>2]|0)+(l+(((_((c[(c[h>>2]|0)+4556>>2]&65535)<<16>>16,(c[g>>2]&65535)<<16>>16)|0)&65535)*6554>>16))|0;c[(c[h>>2]|0)+8>>2]=l;l=(Sf(60)|0)<<8;l=(l|0)>((Sf(100)|0)<<8|0);d=c[(c[h>>2]|0)+8>>2]|0;do if(l){if((d|0)>((Sf(60)|0)<<8|0)){d=(Sf(60)|0)<<8;break}l=c[(c[h>>2]|0)+8>>2]|0;if((l|0)<((Sf(100)|0)<<8|0)){d=(Sf(100)|0)<<8;break}else{d=c[(c[h>>2]|0)+8>>2]|0;break}}else{if((d|0)>((Sf(100)|0)<<8|0)){d=(Sf(100)|0)<<8;break}l=c[(c[h>>2]|0)+8>>2]|0;if((l|0)<((Sf(60)|0)<<8|0)){d=(Sf(60)|0)<<8;break}else{d=c[(c[h>>2]|0)+8>>2]|0;break}}while(0);c[(c[h>>2]|0)+8>>2]=d;i=j;return}function gf(f,g,h,j,k,l,m){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;L=i;i=i+288|0;n=L+64|0;o=L+60|0;p=L+56|0;q=L+52|0;r=L+48|0;s=L+44|0;t=L+40|0;C=L+36|0;K=L+32|0;E=L+28|0;z=L+24|0;H=L+20|0;A=L+16|0;x=L+12|0;J=L+232|0;I=L+200|0;v=L+168|0;y=L+136|0;w=L+104|0;G=L+264|0;B=L+72|0;F=L+8|0;D=L+4|0;u=L;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;c[q>>2]=j;c[r>>2]=k;c[s>>2]=l;c[t>>2]=m;cg(c[o>>2]|0,c[(c[p>>2]|0)+32>>2]|0,b[(c[p>>2]|0)+2>>1]|0);k=e[c[p>>2]>>1]|0;c[u>>2]=ia()|0;l=i;i=i+((1*(k<<2)|0)+15&-16)|0;mf(l,c[o>>2]|0,c[(c[p>>2]|0)+8>>2]|0,b[c[p>>2]>>1]|0,b[(c[p>>2]|0)+2>>1]|0);k=i;i=i+((1*(c[s>>2]<<2)|0)+15&-16)|0;ug(l,k,b[c[p>>2]>>1]|0,c[s>>2]|0);l=i;i=i+((1*(c[s>>2]<<2)|0)+15&-16)|0;g=i;i=i+((1*(c[s>>2]<<4)|0)+15&-16)|0;c[K>>2]=0;while(1){if((c[K>>2]|0)>=(c[s>>2]|0))break;c[E>>2]=c[k+(c[K>>2]<<2)>>2];m=_(c[E>>2]|0,b[(c[p>>2]|0)+2>>1]|0)|0;c[F>>2]=(c[(c[p>>2]|0)+8>>2]|0)+m;c[C>>2]=0;while(1){if((c[C>>2]|0)>=(b[(c[p>>2]|0)+2>>1]|0))break;b[v+(c[C>>2]<<1)>>1]=(d[(c[F>>2]|0)+(c[C>>2]|0)>>0]&65535)<<7;b[J+(c[C>>2]<<1)>>1]=(b[(c[o>>2]|0)+(c[C>>2]<<1)>>1]|0)-(b[v+(c[C>>2]<<1)>>1]|0);c[C>>2]=(c[C>>2]|0)+1}fg(y,v,b[(c[p>>2]|0)+2>>1]|0);c[C>>2]=0;while(1){if((c[C>>2]|0)>=(b[(c[p>>2]|0)+2>>1]|0))break;c[x>>2]=hf(b[y+(c[C>>2]<<1)>>1]<<16)|0;m=(_(b[J+(c[C>>2]<<1)>>1]|0,(c[x>>2]&65535)<<16>>16)|0)>>14&65535;b[I+(c[C>>2]<<1)>>1]=m;c[C>>2]=(c[C>>2]|0)+1}c[C>>2]=0;while(1){if((c[C>>2]|0)>=(b[(c[p>>2]|0)+2>>1]|0))break;b[w+(c[C>>2]<<1)>>1]=(b[(c[q>>2]|0)+(c[C>>2]<<1)>>1]<<5|0)/(b[y+(c[C>>2]<<1)>>1]|0)|0;c[C>>2]=(c[C>>2]|0)+1}nf(B,G,c[p>>2]|0,c[E>>2]|0);f=of(g+(c[K>>2]<<4)|0,I,w,G,B,c[(c[p>>2]|0)+28>>2]|0,b[(c[p>>2]|0)+4>>1]|0,b[(c[p>>2]|0)+6>>1]|0,c[r>>2]|0,b[(c[p>>2]|0)+2>>1]|0)|0;c[l+(c[K>>2]<<2)>>2]=f;f=_(c[t>>2]>>1,b[c[p>>2]>>1]|0)|0;c[D>>2]=(c[(c[p>>2]|0)+12>>2]|0)+f;f=c[E>>2]|0;if(!(c[E>>2]|0))c[H>>2]=256-(d[(c[D>>2]|0)+f>>0]|0);else c[H>>2]=(d[(c[D>>2]|0)+(f-1)>>0]|0)-(d[(c[D>>2]|0)+(c[E>>2]|0)>>0]|0);c[A>>2]=1024-(Sf(c[H>>2]|0)|0);m=(c[l+(c[K>>2]<<2)>>2]|0)+(_((c[A>>2]&65535)<<16>>16,(c[r>>2]>>2&65535)<<16>>16)|0)|0;c[l+(c[K>>2]<<2)>>2]=m;c[K>>2]=(c[K>>2]|0)+1}ug(l,z,c[s>>2]|0,1);a[c[n>>2]>>0]=c[k+(c[z>>2]<<2)>>2];pj((c[n>>2]|0)+1|0,g+(c[z>>2]<<4)|0,b[(c[p>>2]|0)+2>>1]|0)|0;ge(c[o>>2]|0,c[n>>2]|0,c[p>>2]|0);K=c[l>>2]|0;na(c[u>>2]|0);i=L;return K|0}function hf(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=i;i=i+32|0;b=h+16|0;d=h+12|0;g=h+8|0;f=h+4|0;e=h;c[d>>2]=a;if((c[d>>2]|0)<=0){c[b>>2]=0;g=c[b>>2]|0;i=h;return g|0}jf(c[d>>2]|0,f,e);if(c[f>>2]&1|0)c[g>>2]=32768;else c[g>>2]=46214;c[g>>2]=c[g>>2]>>(c[f>>2]>>1);a=_(c[g>>2]>>16,(((c[e>>2]&65535)<<16>>16)*213&65535)<<16>>16)|0;c[g>>2]=(c[g>>2]|0)+(a+((_(c[g>>2]&65535,(((c[e>>2]&65535)<<16>>16)*213&65535)<<16>>16)|0)>>16));c[b>>2]=c[g>>2];g=c[b>>2]|0;i=h;return g|0}function jf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+16|0;h=e+12|0;j=e+8|0;f=e+4|0;g=e;c[h>>2]=a;c[j>>2]=b;c[f>>2]=d;c[g>>2]=kf(c[h>>2]|0)|0;c[c[j>>2]>>2]=c[g>>2];b=(lf(c[h>>2]|0,24-(c[g>>2]|0)|0)|0)&127;c[c[f>>2]>>2]=b;i=e;return}function kf(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if(!(c[b>>2]|0)){a=32;i=d;return a|0}a=32-(32-(aa(c[b>>2]|0)|0))|0;i=d;return a|0}function lf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;e=k+20|0;d=k+16|0;f=k+12|0;j=k+8|0;h=k+4|0;g=k;c[d>>2]=a;c[f>>2]=b;c[j>>2]=c[d>>2];c[h>>2]=c[f>>2];c[g>>2]=0-(c[f>>2]|0);if(!(c[f>>2]|0)){c[e>>2]=c[d>>2];j=c[e>>2]|0;i=k;return j|0}d=c[j>>2]|0;if((c[f>>2]|0)<0){c[e>>2]=d<<c[g>>2]|(c[j>>2]|0)>>>(32-(c[g>>2]|0)|0);j=c[e>>2]|0;i=k;return j|0}else{c[e>>2]=d<<32-(c[h>>2]|0)|(c[j>>2]|0)>>>(c[h>>2]|0);j=c[e>>2]|0;i=k;return j|0}return 0}function mf(a,e,f,g,h){a=a|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+48|0;j=t+36|0;k=t+32|0;l=t+28|0;m=t+24|0;n=t+20|0;p=t+16|0;q=t+12|0;o=t+8|0;s=t+4|0;r=t;c[j>>2]=a;c[k>>2]=e;c[l>>2]=f;c[m>>2]=g;c[n>>2]=h;c[p>>2]=0;while(1){if((c[p>>2]|0)>=(c[m>>2]|0))break;c[r>>2]=0;c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[n>>2]|0))break;f=b[(c[k>>2]|0)+(c[q>>2]<<1)>>1]|0;e=c[l>>2]|0;c[l>>2]=e+1;c[o>>2]=f-(d[e>>0]<<7);c[s>>2]=_((c[o>>2]&65535)<<16>>16,(c[o>>2]&65535)<<16>>16)|0;e=b[(c[k>>2]|0)+((c[q>>2]|0)+1<<1)>>1]|0;f=c[l>>2]|0;c[l>>2]=f+1;c[o>>2]=e-(d[f>>0]<<7);c[s>>2]=(c[s>>2]|0)+(_((c[o>>2]&65535)<<16>>16,(c[o>>2]&65535)<<16>>16)|0);c[r>>2]=(c[r>>2]|0)+(c[s>>2]>>4);c[q>>2]=(c[q>>2]|0)+2}c[(c[j>>2]|0)+(c[p>>2]<<2)>>2]=c[r>>2];c[p>>2]=(c[p>>2]|0)+1}i=t;return}function nf(e,f,g,h){e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;p=i;i=i+32|0;j=p+20|0;k=p+16|0;l=p+12|0;q=p+8|0;o=p+4|0;n=p+24|0;m=p;c[j>>2]=e;c[k>>2]=f;c[l>>2]=g;c[q>>2]=h;g=(_(c[q>>2]|0,b[(c[l>>2]|0)+2>>1]|0)|0)/2|0;c[m>>2]=(c[(c[l>>2]|0)+20>>2]|0)+g;c[o>>2]=0;while(1){if((c[o>>2]|0)>=(b[(c[l>>2]|0)+2>>1]|0))break;q=c[m>>2]|0;c[m>>2]=q+1;a[n>>0]=a[q>>0]|0;b[(c[j>>2]|0)+(c[o>>2]<<1)>>1]=((d[n>>0]>>1&7)<<16>>16)*9;q=(c[o>>2]|0)+(_(d[n>>0]&1,(b[(c[l>>2]|0)+2>>1]|0)-1|0)|0)|0;a[(c[k>>2]|0)+(c[o>>2]|0)>>0]=a[(c[(c[l>>2]|0)+16>>2]|0)+q>>0]|0;b[(c[j>>2]|0)+((c[o>>2]|0)+1<<1)>>1]=((d[n>>0]>>5&7)<<16>>16)*9;q=(c[o>>2]|0)+(_(d[n>>0]>>4&1,(b[(c[l>>2]|0)+2>>1]|0)-1|0)|0)+1|0;a[(c[k>>2]|0)+((c[o>>2]|0)+1)>>0]=a[(c[(c[l>>2]|0)+16>>2]|0)+q>>0]|0;c[o>>2]=(c[o>>2]|0)+2}i=p;return}function of(e,f,g,h,j,k,l,m,n,o){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,$=0,aa=0;aa=i;i=i+448|0;q=aa+352|0;r=aa+348|0;s=aa+344|0;t=aa+340|0;u=aa+336|0;v=aa+332|0;p=aa+328|0;w=aa+378|0;x=aa+324|0;y=aa+376|0;E=aa+320|0;L=aa+316|0;P=aa+312|0;K=aa+308|0;I=aa+304|0;H=aa+300|0;F=aa+296|0;$=aa+292|0;U=aa+288|0;D=aa+284|0;Q=aa+280|0;S=aa+276|0;X=aa+272|0;Y=aa+268|0;C=aa+264|0;N=aa+260|0;O=aa+256|0;M=aa+252|0;V=aa+248|0;J=aa+232|0;G=aa+384|0;W=aa+360|0;z=aa+200|0;B=aa+184|0;A=aa+168|0;Z=aa+160|0;R=aa+80|0;T=aa;c[q>>2]=e;c[r>>2]=f;c[s>>2]=g;c[t>>2]=h;c[u>>2]=j;c[v>>2]=k;c[p>>2]=l;b[w>>1]=m;c[x>>2]=n;b[y>>1]=o;c[E>>2]=-10;while(1){if((c[E>>2]|0)>9)break;c[Q>>2]=c[E>>2]<<10;c[S>>2]=(c[Q>>2]|0)+1024;do if((c[E>>2]|0)<=0){if(!(c[E>>2]|0)){c[S>>2]=(c[S>>2]|0)-102;break}f=(c[E>>2]|0)==-1;c[Q>>2]=(c[Q>>2]|0)+102;if(!f)c[S>>2]=(c[S>>2]|0)+102}else{c[Q>>2]=(c[Q>>2]|0)-102;c[S>>2]=(c[S>>2]|0)-102}while(0);f=_(c[Q>>2]>>16,(c[p>>2]&65535)<<16>>16)|0;f=f+((_(c[Q>>2]&65535,(c[p>>2]&65535)<<16>>16)|0)>>16)|0;c[R+((c[E>>2]|0)+10<<2)>>2]=f;f=_(c[S>>2]>>16,(c[p>>2]&65535)<<16>>16)|0;f=f+((_(c[S>>2]&65535,(c[p>>2]&65535)<<16>>16)|0)>>16)|0;c[T+((c[E>>2]|0)+10<<2)>>2]=f;c[E>>2]=(c[E>>2]|0)+1}c[P>>2]=1;c[z>>2]=0;b[W>>1]=0;c[E>>2]=(b[y>>1]|0)-1;a:while(1){c[Z>>2]=(c[v>>2]|0)+(b[(c[u>>2]|0)+(c[E>>2]<<1)>>1]|0);c[V>>2]=d[(c[t>>2]|0)+(c[E>>2]|0)>>0]<<8;c[F>>2]=b[(c[r>>2]|0)+(c[E>>2]<<1)>>1];c[L>>2]=0;while(1){if((c[L>>2]|0)>=(c[P>>2]|0))break;f=_(c[V>>2]>>16,b[W+(c[L>>2]<<1)>>1]|0)|0;c[U>>2]=f+((_(c[V>>2]&65535,b[W+(c[L>>2]<<1)>>1]|0)|0)>>16);c[$>>2]=(c[F>>2]|0)-(c[U>>2]|0);f=_(b[w>>1]>>16,(c[$>>2]&65535)<<16>>16)|0;c[K>>2]=f+((_(b[w>>1]&65535,(c[$>>2]&65535)<<16>>16)|0)>>16);if((c[K>>2]|0)>9)p=9;else p=(c[K>>2]|0)<-10?-10:c[K>>2]|0;c[K>>2]=p;a[G+(c[L>>2]<<4)+(c[E>>2]|0)>>0]=c[K>>2];c[Q>>2]=c[R+((c[K>>2]|0)+10<<2)>>2];c[S>>2]=c[T+((c[K>>2]|0)+10<<2)>>2];c[Q>>2]=(c[Q>>2]|0)+(c[U>>2]|0);c[S>>2]=(c[S>>2]|0)+(c[U>>2]|0);b[W+(c[L>>2]<<1)>>1]=c[Q>>2];b[W+((c[L>>2]|0)+(c[P>>2]|0)<<1)>>1]=c[S>>2];j=c[K>>2]|0;do if(((c[K>>2]|0)+1|0)>=4){p=c[K>>2]|0;if((j+1|0)==4){c[X>>2]=d[(c[Z>>2]|0)+(p+4)>>0];c[Y>>2]=280;break}else{c[X>>2]=108+(((p&65535)<<16>>16)*43|0);c[Y>>2]=(c[X>>2]|0)+43;break}}else{p=c[K>>2]|0;if((j|0)>-4){c[X>>2]=d[(c[Z>>2]|0)+(p+4)>>0];c[Y>>2]=d[(c[Z>>2]|0)+((c[K>>2]|0)+1+4)>>0];break}if((p|0)==-4){c[X>>2]=280;c[Y>>2]=d[(c[Z>>2]|0)+((c[K>>2]|0)+1+4)>>0];break}else{c[X>>2]=108+(_(-43,(c[K>>2]&65535)<<16>>16)|0);c[Y>>2]=(c[X>>2]|0)-43;break}}while(0);c[C>>2]=c[z+(c[L>>2]<<2)>>2];c[D>>2]=(c[F>>2]|0)-(c[Q>>2]|0);f=_((c[D>>2]&65535)<<16>>16,(c[D>>2]&65535)<<16>>16)|0;f=(c[C>>2]|0)+(_(f,b[(c[s>>2]|0)+(c[E>>2]<<1)>>1]|0)|0)|0;f=f+(_((c[x>>2]&65535)<<16>>16,(c[X>>2]&65535)<<16>>16)|0)|0;c[z+(c[L>>2]<<2)>>2]=f;c[D>>2]=(c[F>>2]|0)-(c[S>>2]|0);f=_((c[D>>2]&65535)<<16>>16,(c[D>>2]&65535)<<16>>16)|0;f=(c[C>>2]|0)+(_(f,b[(c[s>>2]|0)+(c[E>>2]<<1)>>1]|0)|0)|0;f=f+(_((c[x>>2]&65535)<<16>>16,(c[Y>>2]&65535)<<16>>16)|0)|0;c[z+((c[L>>2]|0)+(c[P>>2]|0)<<2)>>2]=f;c[L>>2]=(c[L>>2]|0)+1}b:do if((c[P>>2]|0)<=2){c[L>>2]=0;while(1){if((c[L>>2]|0)>=(c[P>>2]|0))break;a[G+((c[L>>2]|0)+(c[P>>2]|0)<<4)+(c[E>>2]|0)>>0]=(a[G+(c[L>>2]<<4)+(c[E>>2]|0)>>0]|0)+1;c[L>>2]=(c[L>>2]|0)+1}c[P>>2]=c[P>>2]<<1;c[L>>2]=c[P>>2];while(1){if((c[L>>2]|0)>=4)break b;a[G+(c[L>>2]<<4)+(c[E>>2]|0)>>0]=a[G+((c[L>>2]|0)-(c[P>>2]|0)<<4)+(c[E>>2]|0)>>0]|0;c[L>>2]=(c[L>>2]|0)+1}}else{if((c[E>>2]|0)<=0)break a;c[L>>2]=0;while(1){if((c[L>>2]|0)>=4)break;p=c[z+(c[L>>2]<<2)>>2]|0;j=c[L>>2]|0;if((c[z+(c[L>>2]<<2)>>2]|0)>(c[z+((c[L>>2]|0)+4<<2)>>2]|0)){c[A+(j<<2)>>2]=p;c[B+(c[L>>2]<<2)>>2]=c[z+((c[L>>2]|0)+4<<2)>>2];c[z+(c[L>>2]<<2)>>2]=c[B+(c[L>>2]<<2)>>2];c[z+((c[L>>2]|0)+4<<2)>>2]=c[A+(c[L>>2]<<2)>>2];c[Q>>2]=b[W+(c[L>>2]<<1)>>1];b[W+(c[L>>2]<<1)>>1]=b[W+((c[L>>2]|0)+4<<1)>>1]|0;b[W+((c[L>>2]|0)+4<<1)>>1]=c[Q>>2];c[J+(c[L>>2]<<2)>>2]=(c[L>>2]|0)+4}else{c[B+(j<<2)>>2]=p;c[A+(c[L>>2]<<2)>>2]=c[z+((c[L>>2]|0)+4<<2)>>2];c[J+(c[L>>2]<<2)>>2]=c[L>>2]}c[L>>2]=(c[L>>2]|0)+1}while(1){c[O>>2]=2147483647;c[M>>2]=0;c[I>>2]=0;c[H>>2]=0;c[L>>2]=0;while(1){p=c[O>>2]|0;if((c[L>>2]|0)>=4)break;if((p|0)>(c[A+(c[L>>2]<<2)>>2]|0)){c[O>>2]=c[A+(c[L>>2]<<2)>>2];c[I>>2]=c[L>>2]}if((c[M>>2]|0)<(c[B+(c[L>>2]<<2)>>2]|0)){c[M>>2]=c[B+(c[L>>2]<<2)>>2];c[H>>2]=c[L>>2]}c[L>>2]=(c[L>>2]|0)+1}if((p|0)>=(c[M>>2]|0))break;c[J+(c[H>>2]<<2)>>2]=c[J+(c[I>>2]<<2)>>2]^4;c[z+(c[H>>2]<<2)>>2]=c[z+((c[I>>2]|0)+4<<2)>>2];b[W+(c[H>>2]<<1)>>1]=b[W+((c[I>>2]|0)+4<<1)>>1]|0;c[B+(c[H>>2]<<2)>>2]=0;c[A+(c[I>>2]<<2)>>2]=2147483647;p=G+(c[H>>2]<<4)|0;j=G+(c[I>>2]<<4)|0;k=p+16|0;do{a[p>>0]=a[j>>0]|0;p=p+1|0;j=j+1|0}while((p|0)<(k|0))}c[L>>2]=0;while(1){if((c[L>>2]|0)>=4)break b;f=G+(c[L>>2]<<4)+(c[E>>2]|0)|0;a[f>>0]=(a[f>>0]|0)+(c[J+(c[L>>2]<<2)>>2]>>2);c[L>>2]=(c[L>>2]|0)+1}}while(0);c[E>>2]=(c[E>>2]|0)+-1}c[K>>2]=0;c[N>>2]=2147483647;c[L>>2]=0;while(1){if((c[L>>2]|0)>=8)break;if((c[N>>2]|0)>(c[z+(c[L>>2]<<2)>>2]|0)){c[N>>2]=c[z+(c[L>>2]<<2)>>2];c[K>>2]=c[L>>2]}c[L>>2]=(c[L>>2]|0)+1}c[L>>2]=0;while(1){if((c[L>>2]|0)>=(b[y>>1]|0))break;a[(c[q>>2]|0)+(c[L>>2]|0)>>0]=a[G+((c[K>>2]&3)<<4)+(c[L>>2]|0)>>0]|0;c[L>>2]=(c[L>>2]|0)+1}$=c[q>>2]|0;a[$>>0]=(a[$>>0]|0)+(c[K>>2]>>2);i=aa;return c[N>>2]|0}function pf(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+128|0;h=t+28|0;j=t+24|0;k=t+20|0;l=t+16|0;o=t+12|0;n=t+8|0;m=t+4|0;p=t;q=t+96|0;s=t+64|0;r=t+32|0;c[h>>2]=d;c[j>>2]=e;c[k>>2]=f;c[l>>2]=g;d=_(-5,(c[(c[h>>2]|0)+4556>>2]&65535)<<16>>16)|0;c[m>>2]=3146+(d+(((c[(c[h>>2]|0)+4556>>2]&65535)<<16>>16)*59246>>16));if((c[(c[h>>2]|0)+4604>>2]|0)==2)c[m>>2]=(c[m>>2]|0)+(c[m>>2]>>1);fg(s,c[k>>2]|0,c[(c[h>>2]|0)+4664>>2]|0);if((c[(c[h>>2]|0)+4656>>2]|0)==1)e=(a[(c[h>>2]|0)+4768+31>>0]|0)<4;else e=0;c[n>>2]=e&1;a:do if(c[n>>2]|0){de(q,c[l>>2]|0,c[k>>2]|0,a[(c[h>>2]|0)+4768+31>>0]|0,c[(c[h>>2]|0)+4664>>2]|0);fg(r,q,c[(c[h>>2]|0)+4664>>2]|0);c[p>>2]=(_(a[(c[h>>2]|0)+4768+31>>0]<<16>>16,a[(c[h>>2]|0)+4768+31>>0]<<16>>16)|0)<<11;c[o>>2]=0;while(1){if((c[o>>2]|0)>=(c[(c[h>>2]|0)+4664>>2]|0))break a;d=_(b[r+(c[o>>2]<<1)>>1]>>16,(c[p>>2]&65535)<<16>>16)|0;d=(b[s+(c[o>>2]<<1)>>1]>>1)+(d+((_(b[r+(c[o>>2]<<1)>>1]&65535,(c[p>>2]&65535)<<16>>16)|0)>>16))&65535;b[s+(c[o>>2]<<1)>>1]=d;c[o>>2]=(c[o>>2]|0)+1}}while(0);gf((c[h>>2]|0)+4768+8|0,c[k>>2]|0,c[(c[h>>2]|0)+4724>>2]|0,s,c[m>>2]|0,c[(c[h>>2]|0)+4692>>2]|0,a[(c[h>>2]|0)+4768+29>>0]|0)|0;ag((c[j>>2]|0)+32|0,c[k>>2]|0,c[(c[h>>2]|0)+4664>>2]|0);if(c[n>>2]|0){de(q,c[l>>2]|0,c[k>>2]|0,a[(c[h>>2]|0)+4768+31>>0]|0,c[(c[h>>2]|0)+4664>>2]|0);ag(c[j>>2]|0,q,c[(c[h>>2]|0)+4664>>2]|0);i=t;return}else{pj(c[j>>2]|0,(c[j>>2]|0)+32|0,c[(c[h>>2]|0)+4664>>2]<<1|0)|0;i=t;return}}function qf(d,e,f,g,h,j,k,l,m,n,o){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0;V=i;i=i+144|0;J=V+128|0;p=V+124|0;M=V+120|0;w=V+116|0;x=V+112|0;y=V+108|0;z=V+104|0;r=V+100|0;A=V+96|0;F=V+92|0;K=V+88|0;O=V+84|0;v=V+80|0;B=V+76|0;G=V+72|0;H=V+68|0;S=V+64|0;q=V+60|0;E=V+56|0;R=V+48|0;P=V+44|0;Q=V+40|0;t=V+36|0;s=V+32|0;C=V+28|0;u=V+24|0;D=V+20|0;U=V+16|0;T=V+12|0;I=V+8|0;N=V+4|0;L=V;c[J>>2]=d;c[p>>2]=e;c[M>>2]=f;c[w>>2]=g;c[x>>2]=h;c[y>>2]=j;c[z>>2]=k;c[r>>2]=l;c[A>>2]=m;c[F>>2]=n;c[K>>2]=o;c[N>>2]=(c[p>>2]|0)+-4;f=(c[K>>2]|0)+2|0;c[L>>2]=ia()|0;j=i;i=i+((1*(f<<1)|0)+15&-16)|0;c[O>>2]=0;while(1){if((c[O>>2]|0)>=((c[K>>2]|0)+2|0))break;c[S>>2]=(b[(c[p>>2]|0)+((c[O>>2]|0)-2<<1)>>1]|0)+(b[(c[M>>2]|0)+((c[O>>2]|0)-2<<1)>>1]|0);c[q>>2]=(b[(c[p>>2]|0)+((c[O>>2]|0)-2<<1)>>1]|0)-(b[(c[M>>2]|0)+((c[O>>2]|0)-2<<1)>>1]|0);b[(c[N>>2]|0)+(c[O>>2]<<1)>>1]=(c[S>>2]>>1)+(c[S>>2]&1);if(((c[q>>2]>>1)+(c[q>>2]&1)|0)<=32767)if(((c[q>>2]>>1)+(c[q>>2]&1)|0)<-32768)o=-32768;else o=(c[q>>2]>>1)+(c[q>>2]&1)|0;else o=32767;b[j+(c[O>>2]<<1)>>1]=o;c[O>>2]=(c[O>>2]|0)+1}g=c[N>>2]|0;h=(c[J>>2]|0)+4|0;b[g>>1]=b[h>>1]|0;b[g+2>>1]=b[h+2>>1]|0;g=(c[J>>2]|0)+8|0;b[j>>1]=b[g>>1]|0;b[j+2>>1]=b[g+2>>1]|0;g=(c[J>>2]|0)+4|0;h=(c[N>>2]|0)+(c[K>>2]<<1)|0;b[g>>1]=b[h>>1]|0;b[g+2>>1]=b[h+2>>1]|0;g=(c[J>>2]|0)+8|0;h=j+(c[K>>2]<<1)|0;b[g>>1]=b[h>>1]|0;b[g+2>>1]=b[h+2>>1]|0;g=i;i=i+((1*(c[K>>2]<<1)|0)+15&-16)|0;h=i;i=i+((1*(c[K>>2]<<1)|0)+15&-16)|0;c[O>>2]=0;while(1){if((c[O>>2]|0)>=(c[K>>2]|0))break;c[S>>2]=((b[(c[N>>2]|0)+(c[O>>2]<<1)>>1]|0)+(b[(c[N>>2]|0)+((c[O>>2]|0)+2<<1)>>1]|0)+(b[(c[N>>2]|0)+((c[O>>2]|0)+1<<1)>>1]<<1)>>1)+1>>1;b[g+(c[O>>2]<<1)>>1]=c[S>>2];b[h+(c[O>>2]<<1)>>1]=(b[(c[N>>2]|0)+((c[O>>2]|0)+1<<1)>>1]|0)-(c[S>>2]|0);c[O>>2]=(c[O>>2]|0)+1}o=i;i=i+((1*(c[K>>2]<<1)|0)+15&-16)|0;n=i;i=i+((1*(c[K>>2]<<1)|0)+15&-16)|0;c[O>>2]=0;while(1){if((c[O>>2]|0)>=(c[K>>2]|0))break;c[S>>2]=((b[j+(c[O>>2]<<1)>>1]|0)+(b[j+((c[O>>2]|0)+2<<1)>>1]|0)+(b[j+((c[O>>2]|0)+1<<1)>>1]<<1)>>1)+1>>1;b[o+(c[O>>2]<<1)>>1]=c[S>>2];b[n+(c[O>>2]<<1)>>1]=(b[j+((c[O>>2]|0)+1<<1)>>1]|0)-(c[S>>2]|0);c[O>>2]=(c[O>>2]|0)+1}c[v>>2]=(c[K>>2]|0)==((c[F>>2]|0)*10|0)&1;c[E>>2]=c[v>>2]|0?328:655;q=(_((c[r>>2]&65535)<<16>>16,(c[r>>2]&65535)<<16>>16)|0)>>16;q=_(q,(c[E>>2]&65535)<<16>>16)|0;r=(_((c[r>>2]&65535)<<16>>16,(c[r>>2]&65535)<<16>>16)|0)&65535;c[E>>2]=q+((_(r,(c[E>>2]&65535)<<16>>16)|0)>>16);c[R>>2]=Bg(t,g,o,(c[J>>2]|0)+12|0,c[K>>2]|0,c[E>>2]|0)|0;c[R+4>>2]=Bg(s,h,n,(c[J>>2]|0)+12+8|0,c[K>>2]|0,c[E>>2]|0)|0;c[C>>2]=(c[s>>2]|0)+(((c[t>>2]&65535)<<16>>16)*3|0);c[C>>2]=(c[C>>2]|0)<65536?c[C>>2]|0:65536;v=(c[z>>2]|0)-(c[v>>2]|0?1200:600)|0;c[z>>2]=v;c[z>>2]=(c[z>>2]|0)<1?1:v;c[D>>2]=2e3+(((c[F>>2]&65535)<<16>>16)*900|0);c[u>>2]=(c[C>>2]|0)*3;v=rf(c[z>>2]|0,851968+(c[u>>2]|0)|0,19)|0;c[c[y>>2]>>2]=v;if((c[c[y>>2]>>2]|0)<(c[D>>2]|0)){c[c[y>>2]>>2]=c[D>>2];c[(c[y>>2]|0)+4>>2]=(c[z>>2]|0)-(c[c[y>>2]>>2]|0);v=_(65536+(c[u>>2]|0)>>16,(c[D>>2]&65535)<<16>>16)|0;c[U>>2]=rf((c[(c[y>>2]|0)+4>>2]<<1)-(c[D>>2]|0)|0,v+((_(65536+(c[u>>2]|0)&65535,(c[D>>2]&65535)<<16>>16)|0)>>16)|0,16)|0;if((c[U>>2]|0)>16384)o=16384;else o=(c[U>>2]|0)<0?0:c[U>>2]|0;c[U>>2]=o}else{c[(c[y>>2]|0)+4>>2]=(c[z>>2]|0)-(c[c[y>>2]>>2]|0);c[U>>2]=16384}v=_((c[U>>2]|0)-(b[(c[J>>2]|0)+28>>1]|0)>>16,(c[E>>2]&65535)<<16>>16)|0;E=(b[(c[J>>2]|0)+28>>1]|0)+(v+((_((c[U>>2]|0)-(b[(c[J>>2]|0)+28>>1]|0)&65535,(c[E>>2]&65535)<<16>>16)|0)>>16))&65535;b[(c[J>>2]|0)+28>>1]=E;a[c[x>>2]>>0]=0;a:do if(!(c[A>>2]|0)){do if(!(b[(c[J>>2]|0)+30>>1]|0)){if((c[z>>2]<<3|0)>=((c[D>>2]|0)*13|0)?(E=_(c[C>>2]>>16,b[(c[J>>2]|0)+28>>1]|0)|0,(E+((_(c[C>>2]&65535,b[(c[J>>2]|0)+28>>1]|0)|0)>>16)|0)>=819):0)break;c[R>>2]=(_(b[(c[J>>2]|0)+28>>1]|0,(c[R>>2]&65535)<<16>>16)|0)>>14;c[R+4>>2]=(_(b[(c[J>>2]|0)+28>>1]|0,(c[R+4>>2]&65535)<<16>>16)|0)>>14;Ig(R,c[w>>2]|0);c[U>>2]=0;c[R>>2]=0;c[R+4>>2]=0;c[c[y>>2]>>2]=c[z>>2];c[(c[y>>2]|0)+4>>2]=0;a[c[x>>2]>>0]=1;break a}while(0);do if(b[(c[J>>2]|0)+30>>1]|0){if((c[z>>2]<<3|0)>=((c[D>>2]|0)*11|0)?(E=_(c[C>>2]>>16,b[(c[J>>2]|0)+28>>1]|0)|0,(E+((_(c[C>>2]&65535,b[(c[J>>2]|0)+28>>1]|0)|0)>>16)|0)>=328):0)break;c[R>>2]=(_(b[(c[J>>2]|0)+28>>1]|0,(c[R>>2]&65535)<<16>>16)|0)>>14;c[R+4>>2]=(_(b[(c[J>>2]|0)+28>>1]|0,(c[R+4>>2]&65535)<<16>>16)|0)>>14;Ig(R,c[w>>2]|0);c[U>>2]=0;c[R>>2]=0;c[R+4>>2]=0;break a}while(0);if((b[(c[J>>2]|0)+28>>1]|0)>15565){Ig(R,c[w>>2]|0);c[U>>2]=16384;break}else{c[R>>2]=(_(b[(c[J>>2]|0)+28>>1]|0,(c[R>>2]&65535)<<16>>16)|0)>>14;c[R+4>>2]=(_(b[(c[J>>2]|0)+28>>1]|0,(c[R+4>>2]&65535)<<16>>16)|0)>>14;Ig(R,c[w>>2]|0);c[U>>2]=b[(c[J>>2]|0)+28>>1];break}}else{c[U>>2]=0;c[R>>2]=0;c[R+4>>2]=0;Ig(R,c[w>>2]|0)}while(0);do if((a[c[x>>2]>>0]|0)==1){E=(c[J>>2]|0)+32|0;b[E>>1]=(b[E>>1]|0)+((c[K>>2]|0)-(c[F>>2]<<3));if((b[(c[J>>2]|0)+32>>1]|0)<((c[F>>2]|0)*5|0)){a[c[x>>2]>>0]=0;break}else{b[(c[J>>2]|0)+32>>1]=1e4;break}}else b[(c[J>>2]|0)+32>>1]=0;while(0);if((a[c[x>>2]>>0]|0)==0?(c[(c[y>>2]|0)+4>>2]|0)<1:0){c[(c[y>>2]|0)+4>>2]=1;E=tf(1,(c[z>>2]|0)-(c[(c[y>>2]|0)+4>>2]|0)|0)|0;c[c[y>>2]>>2]=E}c[P>>2]=0-(b[c[J>>2]>>1]|0);c[Q>>2]=0-(b[(c[J>>2]|0)+2>>1]|0);c[T>>2]=b[(c[J>>2]|0)+30>>1]<<10;c[B>>2]=65536/(c[F>>2]<<3|0)|0;c[G>>2]=0-(((_(((c[R>>2]|0)-(b[c[J>>2]>>1]|0)&65535)<<16>>16,(c[B>>2]&65535)<<16>>16)|0)>>15)+1>>1);c[H>>2]=0-(((_(((c[R+4>>2]|0)-(b[(c[J>>2]|0)+2>>1]|0)&65535)<<16>>16,(c[B>>2]&65535)<<16>>16)|0)>>15)+1>>1);E=_((c[U>>2]|0)-(b[(c[J>>2]|0)+30>>1]|0)>>16,(c[B>>2]&65535)<<16>>16)|0;c[I>>2]=E+((_((c[U>>2]|0)-(b[(c[J>>2]|0)+30>>1]|0)&65535,(c[B>>2]&65535)<<16>>16)|0)>>16)<<10;c[O>>2]=0;while(1){if((c[O>>2]|0)>=(c[F>>2]<<3|0))break;c[P>>2]=(c[P>>2]|0)+(c[G>>2]|0);c[Q>>2]=(c[Q>>2]|0)+(c[H>>2]|0);c[T>>2]=(c[T>>2]|0)+(c[I>>2]|0);c[S>>2]=(b[(c[N>>2]|0)+(c[O>>2]<<1)>>1]|0)+(b[(c[N>>2]|0)+((c[O>>2]|0)+2<<1)>>1]|0)+(b[(c[N>>2]|0)+((c[O>>2]|0)+1<<1)>>1]<<1)<<9;D=_(c[T>>2]>>16,b[j+((c[O>>2]|0)+1<<1)>>1]|0)|0;D=D+((_(c[T>>2]&65535,b[j+((c[O>>2]|0)+1<<1)>>1]|0)|0)>>16)|0;E=_(c[S>>2]>>16,(c[P>>2]&65535)<<16>>16)|0;c[S>>2]=D+(E+((_(c[S>>2]&65535,(c[P>>2]&65535)<<16>>16)|0)>>16));E=_(b[(c[N>>2]|0)+((c[O>>2]|0)+1<<1)>>1]<<11>>16,(c[Q>>2]&65535)<<16>>16)|0;c[S>>2]=(c[S>>2]|0)+(E+((_(b[(c[N>>2]|0)+((c[O>>2]|0)+1<<1)>>1]<<11&65535,(c[Q>>2]&65535)<<16>>16)|0)>>16));if(((c[S>>2]>>7)+1>>1|0)<=32767)if(((c[S>>2]>>7)+1>>1|0)<-32768)o=-32768;else o=(c[S>>2]>>7)+1>>1;else o=32767;b[(c[M>>2]|0)+((c[O>>2]|0)-1<<1)>>1]=o;c[O>>2]=(c[O>>2]|0)+1}c[P>>2]=0-(c[R>>2]|0);c[Q>>2]=0-(c[R+4>>2]|0);c[T>>2]=c[U>>2]<<10;c[O>>2]=c[F>>2]<<3;while(1){if((c[O>>2]|0)>=(c[K>>2]|0))break;c[S>>2]=(b[(c[N>>2]|0)+(c[O>>2]<<1)>>1]|0)+(b[(c[N>>2]|0)+((c[O>>2]|0)+2<<1)>>1]|0)+(b[(c[N>>2]|0)+((c[O>>2]|0)+1<<1)>>1]<<1)<<9;H=_(c[T>>2]>>16,b[j+((c[O>>2]|0)+1<<1)>>1]|0)|0;H=H+((_(c[T>>2]&65535,b[j+((c[O>>2]|0)+1<<1)>>1]|0)|0)>>16)|0;I=_(c[S>>2]>>16,(c[P>>2]&65535)<<16>>16)|0;c[S>>2]=H+(I+((_(c[S>>2]&65535,(c[P>>2]&65535)<<16>>16)|0)>>16));I=_(b[(c[N>>2]|0)+((c[O>>2]|0)+1<<1)>>1]<<11>>16,(c[Q>>2]&65535)<<16>>16)|0;c[S>>2]=(c[S>>2]|0)+(I+((_(b[(c[N>>2]|0)+((c[O>>2]|0)+1<<1)>>1]<<11&65535,(c[Q>>2]&65535)<<16>>16)|0)>>16));if(((c[S>>2]>>7)+1>>1|0)<=32767)if(((c[S>>2]>>7)+1>>1|0)<-32768)o=-32768;else o=(c[S>>2]>>7)+1>>1;else o=32767;b[(c[M>>2]|0)+((c[O>>2]|0)-1<<1)>>1]=o;c[O>>2]=(c[O>>2]|0)+1}b[c[J>>2]>>1]=c[R>>2];b[(c[J>>2]|0)+2>>1]=c[R+4>>2];b[(c[J>>2]|0)+30>>1]=c[U>>2];na(c[L>>2]|0);i=V;return}function rf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;h=i;i=i+48|0;f=h+40|0;q=h+36|0;p=h+32|0;j=h+28|0;l=h+24|0;k=h+20|0;g=h+16|0;m=h+12|0;n=h+8|0;o=h+4|0;e=h;c[q>>2]=a;c[p>>2]=b;c[j>>2]=d;b=c[q>>2]|0;c[l>>2]=(sf((c[q>>2]|0)>0?b:0-b|0)|0)-1;c[n>>2]=c[q>>2]<<c[l>>2];b=c[p>>2]|0;c[k>>2]=(sf((c[p>>2]|0)>0?b:0-b|0)|0)-1;c[o>>2]=c[p>>2]<<c[k>>2];c[m>>2]=536870911/(c[o>>2]>>16|0)|0;b=_(c[n>>2]>>16,(c[m>>2]&65535)<<16>>16)|0;c[e>>2]=b+((_(c[n>>2]&65535,(c[m>>2]&65535)<<16>>16)|0)>>16);b=c[n>>2]|0;a=c[o>>2]|0;d=c[e>>2]|0;d=yj(a|0,((a|0)<0)<<31>>31|0,d|0,((d|0)<0)<<31>>31|0)|0;d=nj(d|0,C|0,32)|0;c[n>>2]=b-(d<<3);d=_(c[n>>2]>>16,(c[m>>2]&65535)<<16>>16)|0;c[e>>2]=(c[e>>2]|0)+(d+((_(c[n>>2]&65535,(c[m>>2]&65535)<<16>>16)|0)>>16));c[g>>2]=29+(c[l>>2]|0)-(c[k>>2]|0)-(c[j>>2]|0);d=c[g>>2]|0;if((c[g>>2]|0)>=0)if((d|0)<32){c[f>>2]=c[e>>2]>>c[g>>2];q=c[f>>2]|0;i=h;return q|0}else{c[f>>2]=0;q=c[f>>2]|0;i=h;return q|0}a=c[e>>2]|0;b=0-(c[g>>2]|0)|0;do if((-2147483648>>0-d|0)>(2147483647>>0-(c[g>>2]|0)|0)){if((a|0)>(-2147483648>>b|0)){d=-2147483648>>0-(c[g>>2]|0);break}if((c[e>>2]|0)<(2147483647>>0-(c[g>>2]|0)|0)){d=2147483647>>0-(c[g>>2]|0);break}else{d=c[e>>2]|0;break}}else{if((a|0)>(2147483647>>b|0)){d=2147483647>>0-(c[g>>2]|0);break}if((c[e>>2]|0)<(-2147483648>>0-(c[g>>2]|0)|0)){d=-2147483648>>0-(c[g>>2]|0);break}else{d=c[e>>2]|0;break}}while(0);c[f>>2]=d<<0-(c[g>>2]|0);q=c[f>>2]|0;i=h;return q|0}function sf(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if(!(c[b>>2]|0)){a=32;i=d;return a|0}a=32-(32-(aa(c[b>>2]|0)|0))|0;i=d;return a|0}function tf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f+4|0;d=f;c[e>>2]=a;c[d>>2]=b;i=f;return ((c[e>>2]|0)>(c[d>>2]|0)?c[e>>2]|0:c[d>>2]|0)|0}function uf(a,d,e,f,g,h){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;w=i;i=i+64|0;m=w+52|0;q=w+48|0;r=w+44|0;n=w+40|0;j=w+36|0;s=w+32|0;u=w+28|0;x=w+24|0;k=w+20|0;l=w+16|0;v=w+12|0;t=w+8|0;o=w+4|0;p=w;c[m>>2]=a;c[q>>2]=d;c[r>>2]=e;c[n>>2]=f;c[j>>2]=g;c[s>>2]=h;e=c[q>>2]|0;d=(c[m>>2]|0)+4|0;b[e>>1]=b[d>>1]|0;b[e+2>>1]=b[d+2>>1]|0;e=c[r>>2]|0;d=(c[m>>2]|0)+8|0;b[e>>1]=b[d>>1]|0;b[e+2>>1]=b[d+2>>1]|0;e=(c[m>>2]|0)+4|0;d=(c[q>>2]|0)+(c[s>>2]<<1)|0;b[e>>1]=b[d>>1]|0;b[e+2>>1]=b[d+2>>1]|0;e=(c[m>>2]|0)+8|0;d=(c[r>>2]|0)+(c[s>>2]<<1)|0;b[e>>1]=b[d>>1]|0;b[e+2>>1]=b[d+2>>1]|0;c[o>>2]=b[c[m>>2]>>1];c[p>>2]=b[(c[m>>2]|0)+2>>1];c[x>>2]=65536/(c[j>>2]<<3|0)|0;c[k>>2]=((_(((c[c[n>>2]>>2]|0)-(b[c[m>>2]>>1]|0)&65535)<<16>>16,(c[x>>2]&65535)<<16>>16)|0)>>15)+1>>1;c[l>>2]=((_(((c[(c[n>>2]|0)+4>>2]|0)-(b[(c[m>>2]|0)+2>>1]|0)&65535)<<16>>16,(c[x>>2]&65535)<<16>>16)|0)>>15)+1>>1;c[u>>2]=0;while(1){if((c[u>>2]|0)>=(c[j>>2]<<3|0))break;c[o>>2]=(c[o>>2]|0)+(c[k>>2]|0);c[p>>2]=(c[p>>2]|0)+(c[l>>2]|0);c[v>>2]=(b[(c[q>>2]|0)+(c[u>>2]<<1)>>1]|0)+(b[(c[q>>2]|0)+((c[u>>2]|0)+2<<1)>>1]|0)+(b[(c[q>>2]|0)+((c[u>>2]|0)+1<<1)>>1]<<1)<<9;x=_(c[v>>2]>>16,(c[o>>2]&65535)<<16>>16)|0;c[v>>2]=(b[(c[r>>2]|0)+((c[u>>2]|0)+1<<1)>>1]<<8)+(x+((_(c[v>>2]&65535,(c[o>>2]&65535)<<16>>16)|0)>>16));x=_(b[(c[q>>2]|0)+((c[u>>2]|0)+1<<1)>>1]<<11>>16,(c[p>>2]&65535)<<16>>16)|0;c[v>>2]=(c[v>>2]|0)+(x+((_(b[(c[q>>2]|0)+((c[u>>2]|0)+1<<1)>>1]<<11&65535,(c[p>>2]&65535)<<16>>16)|0)>>16));if(((c[v>>2]>>7)+1>>1|0)<=32767)if(((c[v>>2]>>7)+1>>1|0)<-32768)h=-32768;else h=(c[v>>2]>>7)+1>>1;else h=32767;b[(c[r>>2]|0)+((c[u>>2]|0)+1<<1)>>1]=h;c[u>>2]=(c[u>>2]|0)+1}c[o>>2]=c[c[n>>2]>>2];c[p>>2]=c[(c[n>>2]|0)+4>>2];c[u>>2]=c[j>>2]<<3;while(1){if((c[u>>2]|0)>=(c[s>>2]|0))break;c[v>>2]=(b[(c[q>>2]|0)+(c[u>>2]<<1)>>1]|0)+(b[(c[q>>2]|0)+((c[u>>2]|0)+2<<1)>>1]|0)+(b[(c[q>>2]|0)+((c[u>>2]|0)+1<<1)>>1]<<1)<<9;x=_(c[v>>2]>>16,(c[o>>2]&65535)<<16>>16)|0;c[v>>2]=(b[(c[r>>2]|0)+((c[u>>2]|0)+1<<1)>>1]<<8)+(x+((_(c[v>>2]&65535,(c[o>>2]&65535)<<16>>16)|0)>>16));x=_(b[(c[q>>2]|0)+((c[u>>2]|0)+1<<1)>>1]<<11>>16,(c[p>>2]&65535)<<16>>16)|0;c[v>>2]=(c[v>>2]|0)+(x+((_(b[(c[q>>2]|0)+((c[u>>2]|0)+1<<1)>>1]<<11&65535,(c[p>>2]&65535)<<16>>16)|0)>>16));if(((c[v>>2]>>7)+1>>1|0)<=32767)if(((c[v>>2]>>7)+1>>1|0)<-32768)h=-32768;else h=(c[v>>2]>>7)+1>>1;else h=32767;b[(c[r>>2]|0)+((c[u>>2]|0)+1<<1)>>1]=h;c[u>>2]=(c[u>>2]|0)+1}b[c[m>>2]>>1]=c[c[n>>2]>>2];b[(c[m>>2]|0)+2>>1]=c[(c[n>>2]|0)+4>>2];c[u>>2]=0;while(1){if((c[u>>2]|0)>=(c[s>>2]|0))break;c[v>>2]=(b[(c[q>>2]|0)+((c[u>>2]|0)+1<<1)>>1]|0)+(b[(c[r>>2]|0)+((c[u>>2]|0)+1<<1)>>1]|0);c[t>>2]=(b[(c[q>>2]|0)+((c[u>>2]|0)+1<<1)>>1]|0)-(b[(c[r>>2]|0)+((c[u>>2]|0)+1<<1)>>1]|0);if((c[v>>2]|0)>32767)h=32767;else h=(c[v>>2]|0)<-32768?-32768:c[v>>2]|0;b[(c[q>>2]|0)+((c[u>>2]|0)+1<<1)>>1]=h;if((c[t>>2]|0)>32767)h=32767;else h=(c[t>>2]|0)<-32768?-32768:c[t>>2]|0;b[(c[r>>2]|0)+((c[u>>2]|0)+1<<1)>>1]=h;c[u>>2]=(c[u>>2]|0)+1}i=w;return}function vf(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;b=f+4|0;d=f;c[d>>2]=a;if(!(((((((c[(c[d>>2]|0)+8>>2]|0)!=8e3?(c[(c[d>>2]|0)+8>>2]|0)!=12e3:0)?(c[(c[d>>2]|0)+8>>2]|0)!=16e3:0)?(c[(c[d>>2]|0)+8>>2]|0)!=24e3:0)?(c[(c[d>>2]|0)+8>>2]|0)!=32e3:0)?(c[(c[d>>2]|0)+8>>2]|0)!=44100:0)?(c[(c[d>>2]|0)+8>>2]|0)!=48e3:0))e=8;do if((e|0)==8){if(((c[(c[d>>2]|0)+20>>2]|0)!=8e3?(c[(c[d>>2]|0)+20>>2]|0)!=12e3:0)?(c[(c[d>>2]|0)+20>>2]|0)!=16e3:0)break;if(((c[(c[d>>2]|0)+12>>2]|0)!=8e3?(c[(c[d>>2]|0)+12>>2]|0)!=12e3:0)?(c[(c[d>>2]|0)+12>>2]|0)!=16e3:0)break;if(((c[(c[d>>2]|0)+16>>2]|0)!=8e3?(c[(c[d>>2]|0)+16>>2]|0)!=12e3:0)?(c[(c[d>>2]|0)+16>>2]|0)!=16e3:0)break;if(((c[(c[d>>2]|0)+16>>2]|0)<=(c[(c[d>>2]|0)+20>>2]|0)?(c[(c[d>>2]|0)+12>>2]|0)>=(c[(c[d>>2]|0)+20>>2]|0):0)?(c[(c[d>>2]|0)+16>>2]|0)<=(c[(c[d>>2]|0)+12>>2]|0):0){if((((c[(c[d>>2]|0)+24>>2]|0)!=10?(c[(c[d>>2]|0)+24>>2]|0)!=20:0)?(c[(c[d>>2]|0)+24>>2]|0)!=40:0)?(c[(c[d>>2]|0)+24>>2]|0)!=60:0){c[b>>2]=-103;e=c[b>>2]|0;i=f;return e|0}if((c[(c[d>>2]|0)+32>>2]|0)>=0?(c[(c[d>>2]|0)+32>>2]|0)<=100:0){if((c[(c[d>>2]|0)+44>>2]|0)>=0?(c[(c[d>>2]|0)+44>>2]|0)<=1:0){if((c[(c[d>>2]|0)+48>>2]|0)>=0?(c[(c[d>>2]|0)+48>>2]|0)<=1:0){do if((c[(c[d>>2]|0)+40>>2]|0)>=0){if((c[(c[d>>2]|0)+40>>2]|0)>1)break;do if((c[c[d>>2]>>2]|0)>=1){if((c[c[d>>2]>>2]|0)>2)break;do if((c[(c[d>>2]|0)+4>>2]|0)>=1){if((c[(c[d>>2]|0)+4>>2]|0)>2)break;if((c[(c[d>>2]|0)+4>>2]|0)>(c[c[d>>2]>>2]|0)){c[b>>2]=-111;e=c[b>>2]|0;i=f;return e|0}do if((c[(c[d>>2]|0)+36>>2]|0)>=0){if((c[(c[d>>2]|0)+36>>2]|0)>10)break;c[b>>2]=0;e=c[b>>2]|0;i=f;return e|0}while(0);c[b>>2]=-106;e=c[b>>2]|0;i=f;return e|0}while(0);c[b>>2]=-111;e=c[b>>2]|0;i=f;return e|0}while(0);c[b>>2]=-111;e=c[b>>2]|0;i=f;return e|0}while(0);c[b>>2]=-107;e=c[b>>2]|0;i=f;return e|0}c[b>>2]=-109;e=c[b>>2]|0;i=f;return e|0}c[b>>2]=-108;e=c[b>>2]|0;i=f;return e|0}c[b>>2]=-105;e=c[b>>2]|0;i=f;return e|0}}while(0);c[b>>2]=-102;e=c[b>>2]|0;i=f;return e|0}function wf(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;e=m+20|0;f=m+16|0;h=m+12|0;k=m+8|0;g=m+4|0;j=m;c[e>>2]=a;c[f>>2]=d;c[k>>2]=0;if((c[f>>2]|0)>8e4)d=8e4;else d=(c[f>>2]|0)<5e3?5e3:c[f>>2]|0;c[f>>2]=d;if((c[f>>2]|0)==(c[(c[e>>2]|0)+4632>>2]|0)){l=c[k>>2]|0;i=m;return l|0}c[(c[e>>2]|0)+4632>>2]=c[f>>2];do if((c[(c[e>>2]|0)+4600>>2]|0)!=8)if((c[(c[e>>2]|0)+4600>>2]|0)==12){c[j>>2]=17772;break}else{c[j>>2]=17804;break}else c[j>>2]=17740;while(0);if((c[(c[e>>2]|0)+4604>>2]|0)==2)c[f>>2]=(c[f>>2]|0)-2200;c[h>>2]=1;while(1){if((c[h>>2]|0)>=8){l=16;break}if((c[f>>2]|0)<=(c[(c[j>>2]|0)+(c[h>>2]<<2)>>2]|0))break;c[h>>2]=(c[h>>2]|0)+1}if((l|0)==16){l=c[k>>2]|0;i=m;return l|0}c[g>>2]=((c[f>>2]|0)-(c[(c[j>>2]|0)+((c[h>>2]|0)-1<<2)>>2]|0)<<6|0)/((c[(c[j>>2]|0)+(c[h>>2]<<2)>>2]|0)-(c[(c[j>>2]|0)+((c[h>>2]|0)-1<<2)>>2]|0)|0)|0;l=(b[24510+((c[h>>2]|0)-1<<1)>>1]<<6)+(_(c[g>>2]|0,(b[24510+(c[h>>2]<<1)>>1]|0)-(b[24510+((c[h>>2]|0)-1<<1)>>1]|0)|0)|0)|0;c[(c[e>>2]|0)+4748>>2]=l;l=c[k>>2]|0;i=m;return l|0}function xf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=i;i=i+16|0;f=e+8|0;g=e+4|0;d=e;c[f>>2]=a;c[g>>2]=b;c[d>>2]=0;oj(c[f>>2]|0,0,12240)|0;c[(c[f>>2]|0)+5124>>2]=c[g>>2];a=(Sf(3932160)|0)-2048<<8;c[(c[f>>2]|0)+8>>2]=a;c[(c[f>>2]|0)+12>>2]=c[(c[f>>2]|0)+8>>2];c[(c[f>>2]|0)+4696>>2]=1;a=Ue((c[f>>2]|0)+32|0)|0;c[d>>2]=(c[d>>2]|0)+a;i=e;return c[d>>2]|0}function yf(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;p=i;i=i+48|0;h=p+32|0;j=p+28|0;k=p+24|0;l=p+20|0;r=p+16|0;q=p+12|0;m=p+8|0;n=p+4|0;o=p;c[j>>2]=a;c[k>>2]=b;c[l>>2]=d;c[r>>2]=e;c[q>>2]=f;c[m>>2]=g;c[o>>2]=0;c[(c[j>>2]|0)+6108>>2]=c[(c[k>>2]|0)+44>>2];c[(c[j>>2]|0)+4708>>2]=c[(c[k>>2]|0)+48>>2];c[(c[j>>2]|0)+4580>>2]=c[(c[k>>2]|0)+8>>2];c[(c[j>>2]|0)+4588>>2]=c[(c[k>>2]|0)+12>>2];c[(c[j>>2]|0)+4592>>2]=c[(c[k>>2]|0)+16>>2];c[(c[j>>2]|0)+4596>>2]=c[(c[k>>2]|0)+20>>2];c[(c[j>>2]|0)+6120>>2]=c[(c[k>>2]|0)+40>>2];c[(c[j>>2]|0)+5784>>2]=c[c[k>>2]>>2];c[(c[j>>2]|0)+5788>>2]=c[(c[k>>2]|0)+4>>2];c[(c[j>>2]|0)+4560>>2]=c[r>>2];c[(c[j>>2]|0)+5792>>2]=c[q>>2];if(c[(c[j>>2]|0)+4700>>2]|0?(c[(c[j>>2]|0)+4712>>2]|0)==0:0){if((c[(c[j>>2]|0)+4580>>2]|0)!=(c[(c[j>>2]|0)+4584>>2]|0)?(c[(c[j>>2]|0)+4600>>2]|0)>0:0){r=zf(c[j>>2]|0,c[(c[j>>2]|0)+4600>>2]|0)|0;c[o>>2]=(c[o>>2]|0)+r}c[h>>2]=c[o>>2];r=c[h>>2]|0;i=p;return r|0}c[n>>2]=cf(c[j>>2]|0,c[k>>2]|0)|0;if(c[m>>2]|0)c[n>>2]=c[m>>2];r=zf(c[j>>2]|0,c[n>>2]|0)|0;c[o>>2]=(c[o>>2]|0)+r;r=Cf(c[j>>2]|0,c[n>>2]|0,c[(c[k>>2]|0)+24>>2]|0)|0;c[o>>2]=(c[o>>2]|0)+r;r=Df(c[j>>2]|0,c[(c[k>>2]|0)+36>>2]|0)|0;c[o>>2]=(c[o>>2]|0)+r;c[(c[j>>2]|0)+4640>>2]=c[(c[k>>2]|0)+32>>2];r=Ff(c[j>>2]|0,c[l>>2]|0)|0;c[o>>2]=(c[o>>2]|0)+r;c[(c[j>>2]|0)+4700>>2]=1;c[h>>2]=c[o>>2];r=c[h>>2]|0;i=p;return r|0}function zf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+336|0;d=n+328|0;e=n+324|0;l=n+320|0;j=n+316|0;g=n+312|0;k=n+308|0;h=n+304|0;f=n+300|0;m=n;c[d>>2]=a;c[e>>2]=b;c[l>>2]=0;if((c[(c[d>>2]|0)+4600>>2]|0)==(c[e>>2]|0)?(c[(c[d>>2]|0)+4584>>2]|0)==(c[(c[d>>2]|0)+4580>>2]|0):0){k=c[d>>2]|0;k=k+4580|0;k=c[k>>2]|0;m=c[d>>2]|0;m=m+4584|0;c[m>>2]=k;m=c[l>>2]|0;i=n;return m|0}b=c[d>>2]|0;if(!(c[(c[d>>2]|0)+4600>>2]|0)){k=ig(b+5808|0,c[(c[d>>2]|0)+4580>>2]|0,(c[e>>2]|0)*1e3|0,1)|0;c[l>>2]=(c[l>>2]|0)+k;k=c[d>>2]|0;k=k+4580|0;k=c[k>>2]|0;m=c[d>>2]|0;m=m+4584|0;c[m>>2]=k;m=c[l>>2]|0;i=n;return m|0}else{c[h>>2]=((c[b+4604>>2]|0)*5<<1)+5;c[k>>2]=_(c[h>>2]|0,c[(c[d>>2]|0)+4600>>2]|0)|0;c[j>>2]=_(c[h>>2]|0,c[e>>2]|0)|0;b=(c[k>>2]|0)>(c[j>>2]|0)?c[k>>2]|0:c[j>>2]|0;c[f>>2]=ia()|0;a=i;i=i+((1*(b<<1)|0)+15&-16)|0;Af(a,(c[d>>2]|0)+9356|0,c[k>>2]|0);b=ig(m,((c[(c[d>>2]|0)+4600>>2]&65535)<<16>>16)*1e3|0,c[(c[d>>2]|0)+4580>>2]|0,0)|0;c[l>>2]=(c[l>>2]|0)+b;c[g>>2]=_(c[h>>2]|0,(c[(c[d>>2]|0)+4580>>2]|0)/1e3|0)|0;h=i;i=i+((1*(c[g>>2]<<1)|0)+15&-16)|0;k=jg(m,h,a,c[k>>2]|0)|0;c[l>>2]=(c[l>>2]|0)+k;k=ig((c[d>>2]|0)+5808|0,c[(c[d>>2]|0)+4580>>2]|0,((c[e>>2]&65535)<<16>>16)*1e3|0,1)|0;c[l>>2]=(c[l>>2]|0)+k;k=jg((c[d>>2]|0)+5808|0,a,h,c[g>>2]|0)|0;c[l>>2]=(c[l>>2]|0)+k;Bf((c[d>>2]|0)+9356|0,a,c[j>>2]|0);na(c[f>>2]|0);k=c[d>>2]|0;k=k+4580|0;k=c[k>>2]|0;m=c[d>>2]|0;m=m+4584|0;c[m>>2]=k;m=c[l>>2]|0;i=n;return m|0}return 0}function Af(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0;k=i;i=i+16|0;f=k+12|0;h=k+8|0;l=k+4|0;j=k;c[f>>2]=a;c[h>>2]=d;c[l>>2]=e;c[j>>2]=(c[l>>2]|0)-1;while(1){if((c[j>>2]|0)<0)break;if((ij(+g[(c[h>>2]|0)+(c[j>>2]<<2)>>2])|0)<=32767)if((ij(+g[(c[h>>2]|0)+(c[j>>2]<<2)>>2])|0)<-32768)d=-32768;else d=ij(+g[(c[h>>2]|0)+(c[j>>2]<<2)>>2])|0;else d=32767;b[(c[f>>2]|0)+(c[j>>2]<<1)>>1]=d;c[j>>2]=(c[j>>2]|0)+-1}i=k;return}function Bf(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0;k=i;i=i+16|0;f=k+12|0;h=k+8|0;l=k+4|0;j=k;c[f>>2]=a;c[h>>2]=d;c[l>>2]=e;c[j>>2]=(c[l>>2]|0)-1;while(1){if((c[j>>2]|0)<0)break;g[(c[f>>2]|0)+(c[j>>2]<<2)>>2]=+(b[(c[h>>2]|0)+(c[j>>2]<<1)>>1]|0);c[j>>2]=(c[j>>2]|0)+-1}i=k;return}function Cf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;h=k+12|0;g=k+8|0;f=k+4|0;j=k;c[h>>2]=b;c[g>>2]=d;c[f>>2]=e;c[j>>2]=0;if((c[f>>2]|0)!=(c[(c[h>>2]|0)+4636>>2]|0)){if((c[f>>2]|0)!=10&(c[f>>2]|0)!=20&(c[f>>2]|0)!=40&(c[f>>2]|0)!=60)c[j>>2]=-103;do if((c[f>>2]|0)<=10){c[(c[h>>2]|0)+5776>>2]=1;c[(c[h>>2]|0)+4604>>2]=(c[f>>2]|0)==10?2:1;e=_((c[f>>2]&65535)<<16>>16,(c[g>>2]&65535)<<16>>16)|0;c[(c[h>>2]|0)+4608>>2]=e;c[(c[h>>2]|0)+4572>>2]=((c[g>>2]&65535)<<16>>16)*14;e=(c[h>>2]|0)+4720|0;if((c[(c[h>>2]|0)+4600>>2]|0)==8){c[e>>2]=29174;break}else{c[e>>2]=29162;break}}else{c[(c[h>>2]|0)+5776>>2]=(c[f>>2]|0)/20|0;c[(c[h>>2]|0)+4604>>2]=4;c[(c[h>>2]|0)+4608>>2]=((c[g>>2]&65535)<<16>>16)*20;c[(c[h>>2]|0)+4572>>2]=((c[g>>2]&65535)<<16>>16)*24;e=(c[h>>2]|0)+4720|0;if((c[(c[h>>2]|0)+4600>>2]|0)==8){c[e>>2]=29151;break}else{c[e>>2]=29117;break}}while(0);c[(c[h>>2]|0)+4636>>2]=c[f>>2];c[(c[h>>2]|0)+4632>>2]=0}if((c[(c[h>>2]|0)+4600>>2]|0)==(c[g>>2]|0)){j=c[j>>2]|0;i=k;return j|0}e=(c[h>>2]|0)+7200|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;oj((c[h>>2]|0)+7216|0,0,2140)|0;oj((c[h>>2]|0)+144|0,0,4380)|0;e=(c[h>>2]|0)+4524|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;c[e+24>>2]=0;c[e+28>>2]=0;e=(c[h>>2]|0)+16|0;c[e>>2]=0;c[e+4>>2]=0;c[(c[h>>2]|0)+5772>>2]=0;c[(c[h>>2]|0)+5780>>2]=0;c[(c[h>>2]|0)+4632>>2]=0;c[(c[h>>2]|0)+4568>>2]=100;c[(c[h>>2]|0)+4696>>2]=1;c[(c[h>>2]|0)+7216+2136>>2]=100;a[(c[h>>2]|0)+7200>>0]=10;c[(c[h>>2]|0)+144+4356>>2]=100;c[(c[h>>2]|0)+144+4372>>2]=65536;a[(c[h>>2]|0)+4565>>0]=0;c[(c[h>>2]|0)+4600>>2]=c[g>>2];e=(c[(c[h>>2]|0)+4604>>2]|0)==4;d=(c[h>>2]|0)+4720|0;do if((c[(c[h>>2]|0)+4600>>2]|0)==8)if(e){c[d>>2]=29151;break}else{c[d>>2]=29174;break}else if(e){c[d>>2]=29117;break}else{c[d>>2]=29162;break}while(0);if((c[(c[h>>2]|0)+4600>>2]|0)!=8?(c[(c[h>>2]|0)+4600>>2]|0)!=12:0){c[(c[h>>2]|0)+4664>>2]=16;c[(c[h>>2]|0)+4724>>2]=17704}else{c[(c[h>>2]|0)+4664>>2]=10;c[(c[h>>2]|0)+4724>>2]=17668}c[(c[h>>2]|0)+4612>>2]=(c[g>>2]|0)*5;e=_((c[(c[h>>2]|0)+4612>>2]&65535)<<16>>16,(c[(c[h>>2]|0)+4604>>2]&65535)<<16>>16)|0;c[(c[h>>2]|0)+4608>>2]=e;c[(c[h>>2]|0)+4616>>2]=((c[g>>2]&65535)<<16>>16)*20;c[(c[h>>2]|0)+4620>>2]=(c[g>>2]&65535)<<16>>16<<1;c[(c[h>>2]|0)+4576>>2]=((c[g>>2]&65535)<<16>>16)*18;e=(c[g>>2]&65535)<<16>>16;if((c[(c[h>>2]|0)+4604>>2]|0)==4)c[(c[h>>2]|0)+4572>>2]=e*24;else c[(c[h>>2]|0)+4572>>2]=e*14;e=c[h>>2]|0;if((c[(c[h>>2]|0)+4600>>2]|0)==16){c[e+4684>>2]=10;c[(c[h>>2]|0)+4716>>2]=29049;j=c[j>>2]|0;i=k;return j|0}d=(c[h>>2]|0)+4684|0;if((c[e+4600>>2]|0)==12){c[d>>2]=13;c[(c[h>>2]|0)+4716>>2]=29043;j=c[j>>2]|0;i=k;return j|0}else{c[d>>2]=15;c[(c[h>>2]|0)+4716>>2]=29034;j=c[j>>2]|0;i=k;return j|0}return 0}function Df(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g+8|0;e=g+4|0;f=g;c[d>>2]=a;c[e>>2]=b;c[f>>2]=0;do if((c[e>>2]|0)>=2){if((c[e>>2]|0)<4){c[(c[d>>2]|0)+4668>>2]=1;c[(c[d>>2]|0)+4676>>2]=49807;c[(c[d>>2]|0)+4672>>2]=8;c[(c[d>>2]|0)+4660>>2]=10;c[(c[d>>2]|0)+4624>>2]=(c[(c[d>>2]|0)+4600>>2]|0)*5;c[(c[d>>2]|0)+4652>>2]=1;c[(c[d>>2]|0)+4656>>2]=0;c[(c[d>>2]|0)+4680>>2]=0;c[(c[d>>2]|0)+4692>>2]=4;c[(c[d>>2]|0)+4704>>2]=0;break}if((c[e>>2]|0)<6){c[(c[d>>2]|0)+4668>>2]=1;c[(c[d>>2]|0)+4676>>2]=48497;c[(c[d>>2]|0)+4672>>2]=10;c[(c[d>>2]|0)+4660>>2]=12;c[(c[d>>2]|0)+4624>>2]=(c[(c[d>>2]|0)+4600>>2]|0)*5;c[(c[d>>2]|0)+4652>>2]=2;c[(c[d>>2]|0)+4656>>2]=1;c[(c[d>>2]|0)+4680>>2]=0;c[(c[d>>2]|0)+4692>>2]=8;c[(c[d>>2]|0)+4704>>2]=(c[(c[d>>2]|0)+4600>>2]|0)*983;break}b=(c[d>>2]|0)+4668|0;if((c[e>>2]|0)<8){c[b>>2]=1;c[(c[d>>2]|0)+4676>>2]=47186;c[(c[d>>2]|0)+4672>>2]=12;c[(c[d>>2]|0)+4660>>2]=14;c[(c[d>>2]|0)+4624>>2]=(c[(c[d>>2]|0)+4600>>2]|0)*5;c[(c[d>>2]|0)+4652>>2]=3;c[(c[d>>2]|0)+4656>>2]=1;c[(c[d>>2]|0)+4680>>2]=0;c[(c[d>>2]|0)+4692>>2]=16;c[(c[d>>2]|0)+4704>>2]=(c[(c[d>>2]|0)+4600>>2]|0)*983;break}else{c[b>>2]=2;c[(c[d>>2]|0)+4676>>2]=45875;c[(c[d>>2]|0)+4672>>2]=16;c[(c[d>>2]|0)+4660>>2]=16;c[(c[d>>2]|0)+4624>>2]=(c[(c[d>>2]|0)+4600>>2]|0)*5;c[(c[d>>2]|0)+4652>>2]=4;c[(c[d>>2]|0)+4656>>2]=1;c[(c[d>>2]|0)+4680>>2]=0;c[(c[d>>2]|0)+4692>>2]=32;c[(c[d>>2]|0)+4704>>2]=(c[(c[d>>2]|0)+4600>>2]|0)*983;break}}else{c[(c[d>>2]|0)+4668>>2]=0;c[(c[d>>2]|0)+4676>>2]=52429;c[(c[d>>2]|0)+4672>>2]=6;c[(c[d>>2]|0)+4660>>2]=8;c[(c[d>>2]|0)+4624>>2]=(c[(c[d>>2]|0)+4600>>2]|0)*3;c[(c[d>>2]|0)+4652>>2]=1;c[(c[d>>2]|0)+4656>>2]=0;c[(c[d>>2]|0)+4680>>2]=1;c[(c[d>>2]|0)+4692>>2]=2;c[(c[d>>2]|0)+4704>>2]=0}while(0);a=Ef(c[(c[d>>2]|0)+4672>>2]|0,c[(c[d>>2]|0)+4664>>2]|0)|0;c[(c[d>>2]|0)+4672>>2]=a;c[(c[d>>2]|0)+4628>>2]=((c[(c[d>>2]|0)+4600>>2]|0)*5|0)+(c[(c[d>>2]|0)+4624>>2]<<1);c[(c[d>>2]|0)+4648>>2]=c[e>>2];i=g;return c[f>>2]|0}function Ef(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f+4|0;d=f;c[e>>2]=a;c[d>>2]=b;i=f;return ((c[e>>2]|0)<(c[d>>2]|0)?c[e>>2]|0:c[d>>2]|0)|0}function Ff(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+32|0;f=j+16|0;d=j+12|0;g=j+8|0;h=j+4|0;e=j;c[f>>2]=a;c[d>>2]=b;c[h>>2]=0;c[g>>2]=c[(c[f>>2]|0)+6124>>2];c[(c[f>>2]|0)+6124>>2]=0;if(!(c[(c[f>>2]|0)+6120>>2]|0)){h=c[h>>2]|0;i=j;return h|0}if((c[(c[f>>2]|0)+4640>>2]|0)<=0){h=c[h>>2]|0;i=j;return h|0}do if((c[(c[f>>2]|0)+4600>>2]|0)!=8)if((c[(c[f>>2]|0)+4600>>2]|0)==12){c[e>>2]=14e3;break}else{c[e>>2]=16e3;break}else c[e>>2]=12e3;while(0);if((c[(c[f>>2]|0)+4640>>2]|0)<25)b=c[(c[f>>2]|0)+4640>>2]|0;else b=25;b=((_(c[e>>2]|0,125-b|0)|0)>>16)*655|0;if((c[(c[f>>2]|0)+4640>>2]|0)<25)a=c[(c[f>>2]|0)+4640>>2]|0;else a=25;c[e>>2]=b+(((_(c[e>>2]|0,125-a|0)|0)&65535)*655>>16);if((c[d>>2]|0)<=(c[e>>2]|0)){h=c[h>>2]|0;i=j;return h|0}b=c[f>>2]|0;if(!(c[g>>2]|0))c[b+6128>>2]=7;else{g=Gf(7-(((c[b+4640>>2]>>16)*26214|0)+((c[(c[f>>2]|0)+4640>>2]&65535)*26214>>16))|0,2)|0;c[(c[f>>2]|0)+6128>>2]=g}c[(c[f>>2]|0)+6124>>2]=1;h=c[h>>2]|0;i=j;return h|0}function Gf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f+4|0;d=f;c[e>>2]=a;c[d>>2]=b;i=f;return ((c[e>>2]|0)>(c[d>>2]|0)?c[e>>2]|0:c[d>>2]|0)|0}function Hf(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+160|0;f=D+156|0;g=D+152|0;h=D+148|0;p=D+144|0;q=D+140|0;r=D+136|0;m=D+132|0;u=D+128|0;o=D+124|0;x=D+120|0;w=D+116|0;y=D+112|0;A=D+108|0;z=D+104|0;B=D+100|0;v=D+96|0;s=D+92|0;n=D+88|0;j=D+52|0;l=D+16|0;k=D+8|0;t=D;c[f>>2]=a;c[g>>2]=d;c[h>>2]=e;c[k>>2]=j;c[k+4>>2]=l;c[m>>2]=c[h>>2]>>1;If(c[g>>2]|0,j,l,c[m>>2]|0);c[t>>2]=j;c[x>>2]=b[12288];c[A>>2]=Kf(c[t>>2]|0,c[x>>2]|0,c[m>>2]|0)|0;if((c[A>>2]|0)<0){b[c[f>>2]>>1]=0;c[t>>2]=l;c[A>>2]=Kf(c[t>>2]|0,c[x>>2]|0,c[m>>2]|0)|0;c[u>>2]=1}else c[u>>2]=0;c[q>>2]=1;c[p>>2]=0;c[v>>2]=0;a:while(1){c[w>>2]=b[24576+(c[q>>2]<<1)>>1];c[z>>2]=Kf(c[t>>2]|0,c[w>>2]|0,c[m>>2]|0)|0;if(!((c[A>>2]|0)<=0?(c[z>>2]|0)>=(c[v>>2]|0):0))C=7;do if((C|0)==7){C=0;if((c[A>>2]|0)>=0?(c[z>>2]|0)<=(0-(c[v>>2]|0)|0):0)break;c[q>>2]=(c[q>>2]|0)+1;c[x>>2]=c[w>>2];c[A>>2]=c[z>>2];c[v>>2]=0;if((c[q>>2]|0)<=128)continue a;c[p>>2]=(c[p>>2]|0)+1;if((c[p>>2]|0)>30)break a;Of(c[g>>2]|0,c[h>>2]|0,65536-(_((10+(c[p>>2]|0)&65535)<<16>>16,(c[p>>2]&65535)<<16>>16)|0)|0);If(c[g>>2]|0,j,l,c[m>>2]|0);c[t>>2]=j;c[x>>2]=b[12288];c[A>>2]=Kf(c[t>>2]|0,c[x>>2]|0,c[m>>2]|0)|0;if((c[A>>2]|0)<0){b[c[f>>2]>>1]=0;c[t>>2]=l;c[A>>2]=Kf(c[t>>2]|0,c[x>>2]|0,c[m>>2]|0)|0;c[u>>2]=1}else c[u>>2]=0;c[q>>2]=1;continue a}while(0);if(!(c[z>>2]|0))c[v>>2]=1;else c[v>>2]=0;c[o>>2]=-256;c[r>>2]=0;while(1){if((c[r>>2]|0)>=3)break;c[y>>2]=((c[x>>2]|0)+(c[w>>2]|0)>>1)+((c[x>>2]|0)+(c[w>>2]|0)&1);c[B>>2]=Kf(c[t>>2]|0,c[y>>2]|0,c[m>>2]|0)|0;if(!((c[A>>2]|0)<=0&(c[B>>2]|0)>=0)?!((c[A>>2]|0)>=0&(c[B>>2]|0)<=0):0){c[x>>2]=c[y>>2];c[A>>2]=c[B>>2];c[o>>2]=(c[o>>2]|0)+(128>>c[r>>2])}else{c[w>>2]=c[y>>2];c[z>>2]=c[B>>2]}c[r>>2]=(c[r>>2]|0)+1}e=c[A>>2]|0;a=c[A>>2]|0;if((((c[A>>2]|0)>0?e:0-e|0)|0)<65536){c[n>>2]=a-(c[z>>2]|0);c[s>>2]=(c[A>>2]<<5)+(c[n>>2]>>1);if(c[n>>2]|0)c[o>>2]=(c[o>>2]|0)+((c[s>>2]|0)/(c[n>>2]|0)|0)}else c[o>>2]=(c[o>>2]|0)+((a|0)/((c[A>>2]|0)-(c[z>>2]|0)>>5|0)|0);e=(Lf((c[q>>2]<<8)+(c[o>>2]|0)|0,32767)|0)&65535;b[(c[f>>2]|0)+(c[u>>2]<<1)>>1]=e;c[u>>2]=(c[u>>2]|0)+1;if((c[u>>2]|0)>=(c[h>>2]|0)){C=34;break}c[t>>2]=c[k+((c[u>>2]&1)<<2)>>2];c[x>>2]=b[24576+((c[q>>2]|0)-1<<1)>>1];c[A>>2]=1-(c[u>>2]&2)<<12}if((C|0)==34){i=D;return}b[c[f>>2]>>1]=32768/((c[h>>2]|0)+1|0)|0;c[q>>2]=1;while(1){if((c[q>>2]|0)>=(c[h>>2]|0))break;C=(_(((c[q>>2]|0)+1&65535)<<16>>16,b[c[f>>2]>>1]|0)|0)&65535;b[(c[f>>2]|0)+(c[q>>2]<<1)>>1]=C;c[q>>2]=(c[q>>2]|0)+1}i=D;return}function If(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;f=l+16|0;g=l+12|0;h=l+8|0;j=l+4|0;k=l;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;c[(c[g>>2]|0)+(c[j>>2]<<2)>>2]=65536;c[(c[h>>2]|0)+(c[j>>2]<<2)>>2]=65536;c[k>>2]=0;while(1){b=c[j>>2]|0;if((c[k>>2]|0)>=(c[j>>2]|0))break;c[(c[g>>2]|0)+(c[k>>2]<<2)>>2]=0-(c[(c[f>>2]|0)+(b-(c[k>>2]|0)-1<<2)>>2]|0)-(c[(c[f>>2]|0)+((c[j>>2]|0)+(c[k>>2]|0)<<2)>>2]|0);c[(c[h>>2]|0)+(c[k>>2]<<2)>>2]=0-(c[(c[f>>2]|0)+((c[j>>2]|0)-(c[k>>2]|0)-1<<2)>>2]|0)+(c[(c[f>>2]|0)+((c[j>>2]|0)+(c[k>>2]|0)<<2)>>2]|0);c[k>>2]=(c[k>>2]|0)+1}c[k>>2]=b;while(1){if((c[k>>2]|0)<=0)break;f=(c[g>>2]|0)+((c[k>>2]|0)-1<<2)|0;c[f>>2]=(c[f>>2]|0)-(c[(c[g>>2]|0)+(c[k>>2]<<2)>>2]|0);f=(c[h>>2]|0)+((c[k>>2]|0)-1<<2)|0;c[f>>2]=(c[f>>2]|0)+(c[(c[h>>2]|0)+(c[k>>2]<<2)>>2]|0);c[k>>2]=(c[k>>2]|0)+-1}Jf(c[g>>2]|0,c[j>>2]|0);Jf(c[h>>2]|0,c[j>>2]|0);i=l;return}function Jf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;d=h+12|0;e=h+8|0;f=h+4|0;g=h;c[d>>2]=a;c[e>>2]=b;c[f>>2]=2;while(1){if((c[f>>2]|0)>(c[e>>2]|0))break;c[g>>2]=c[e>>2];while(1){if((c[g>>2]|0)<=(c[f>>2]|0))break;a=(c[d>>2]|0)+((c[g>>2]|0)-2<<2)|0;c[a>>2]=(c[a>>2]|0)-(c[(c[d>>2]|0)+(c[g>>2]<<2)>>2]|0);c[g>>2]=(c[g>>2]|0)+-1}a=(c[d>>2]|0)+((c[f>>2]|0)-2<<2)|0;c[a>>2]=(c[a>>2]|0)-(c[(c[d>>2]|0)+(c[f>>2]<<2)>>2]<<1);c[f>>2]=(c[f>>2]|0)+1}i=h;return}function Kf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;k=i;i=i+32|0;e=k+20|0;l=k+16|0;f=k+12|0;g=k+8|0;h=k+4|0;j=k;c[e>>2]=a;c[l>>2]=b;c[f>>2]=d;c[j>>2]=c[(c[e>>2]|0)+(c[f>>2]<<2)>>2];c[h>>2]=c[l>>2]<<4;if(8==(c[f>>2]|0)^1^1){l=_(c[j>>2]>>16,(c[h>>2]&65535)<<16>>16)|0;l=(c[(c[e>>2]|0)+28>>2]|0)+(l+((_(c[j>>2]&65535,(c[h>>2]&65535)<<16>>16)|0)>>16))|0;c[j>>2]=l+(_(c[j>>2]|0,(c[h>>2]>>15)+1>>1)|0);l=_(c[j>>2]>>16,(c[h>>2]&65535)<<16>>16)|0;l=(c[(c[e>>2]|0)+24>>2]|0)+(l+((_(c[j>>2]&65535,(c[h>>2]&65535)<<16>>16)|0)>>16))|0;c[j>>2]=l+(_(c[j>>2]|0,(c[h>>2]>>15)+1>>1)|0);l=_(c[j>>2]>>16,(c[h>>2]&65535)<<16>>16)|0;l=(c[(c[e>>2]|0)+20>>2]|0)+(l+((_(c[j>>2]&65535,(c[h>>2]&65535)<<16>>16)|0)>>16))|0;c[j>>2]=l+(_(c[j>>2]|0,(c[h>>2]>>15)+1>>1)|0);l=_(c[j>>2]>>16,(c[h>>2]&65535)<<16>>16)|0;l=(c[(c[e>>2]|0)+16>>2]|0)+(l+((_(c[j>>2]&65535,(c[h>>2]&65535)<<16>>16)|0)>>16))|0;c[j>>2]=l+(_(c[j>>2]|0,(c[h>>2]>>15)+1>>1)|0);l=_(c[j>>2]>>16,(c[h>>2]&65535)<<16>>16)|0;l=(c[(c[e>>2]|0)+12>>2]|0)+(l+((_(c[j>>2]&65535,(c[h>>2]&65535)<<16>>16)|0)>>16))|0;c[j>>2]=l+(_(c[j>>2]|0,(c[h>>2]>>15)+1>>1)|0);l=_(c[j>>2]>>16,(c[h>>2]&65535)<<16>>16)|0;l=(c[(c[e>>2]|0)+8>>2]|0)+(l+((_(c[j>>2]&65535,(c[h>>2]&65535)<<16>>16)|0)>>16))|0;c[j>>2]=l+(_(c[j>>2]|0,(c[h>>2]>>15)+1>>1)|0);l=_(c[j>>2]>>16,(c[h>>2]&65535)<<16>>16)|0;l=(c[(c[e>>2]|0)+4>>2]|0)+(l+((_(c[j>>2]&65535,(c[h>>2]&65535)<<16>>16)|0)>>16))|0;c[j>>2]=l+(_(c[j>>2]|0,(c[h>>2]>>15)+1>>1)|0);l=_(c[j>>2]>>16,(c[h>>2]&65535)<<16>>16)|0;l=(c[c[e>>2]>>2]|0)+(l+((_(c[j>>2]&65535,(c[h>>2]&65535)<<16>>16)|0)>>16))|0;c[j>>2]=l+(_(c[j>>2]|0,(c[h>>2]>>15)+1>>1)|0);l=c[j>>2]|0;i=k;return l|0}c[g>>2]=(c[f>>2]|0)-1;while(1){if((c[g>>2]|0)<0)break;l=_(c[j>>2]>>16,(c[h>>2]&65535)<<16>>16)|0;l=(c[(c[e>>2]|0)+(c[g>>2]<<2)>>2]|0)+(l+((_(c[j>>2]&65535,(c[h>>2]&65535)<<16>>16)|0)>>16))|0;c[j>>2]=l+(_(c[j>>2]|0,(c[h>>2]>>15)+1>>1)|0);c[g>>2]=(c[g>>2]|0)+-1}l=c[j>>2]|0;i=k;return l|0}function Lf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f+4|0;d=f;c[e>>2]=a;c[d>>2]=b;i=f;return ((c[e>>2]|0)<(c[d>>2]|0)?c[e>>2]|0:c[d>>2]|0)|0}function Mf(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=i;i=i+48|0;h=t+44|0;j=t+40|0;k=t+36|0;l=t+32|0;u=t+28|0;q=t+24|0;m=t+20|0;p=t+16|0;n=t+12|0;o=t+8|0;r=t+4|0;s=t;c[h>>2]=a;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;c[u>>2]=g;c[m>>2]=c[u>>2]>>1;c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[m>>2]|0))break;c[p>>2]=b[(c[h>>2]|0)+(c[q>>2]<<1<<1)>>1]<<10;c[o>>2]=(c[p>>2]|0)-(c[c[j>>2]>>2]|0);u=_(c[o>>2]>>16,b[12286]|0)|0;c[n>>2]=(c[o>>2]|0)+(u+((_(c[o>>2]&65535,b[12286]|0)|0)>>16));c[r>>2]=(c[c[j>>2]>>2]|0)+(c[n>>2]|0);c[c[j>>2]>>2]=(c[p>>2]|0)+(c[n>>2]|0);c[p>>2]=b[(c[h>>2]|0)+((c[q>>2]<<1)+1<<1)>>1]<<10;c[o>>2]=(c[p>>2]|0)-(c[(c[j>>2]|0)+4>>2]|0);u=_(c[o>>2]>>16,b[12287]|0)|0;c[n>>2]=u+((_(c[o>>2]&65535,b[12287]|0)|0)>>16);c[s>>2]=(c[(c[j>>2]|0)+4>>2]|0)+(c[n>>2]|0);c[(c[j>>2]|0)+4>>2]=(c[p>>2]|0)+(c[n>>2]|0);if((((c[s>>2]|0)+(c[r>>2]|0)>>10)+1>>1|0)<=32767)if((((c[s>>2]|0)+(c[r>>2]|0)>>10)+1>>1|0)<-32768)g=-32768;else g=((c[s>>2]|0)+(c[r>>2]|0)>>10)+1>>1;else g=32767;b[(c[k>>2]|0)+(c[q>>2]<<1)>>1]=g;if((((c[s>>2]|0)-(c[r>>2]|0)>>10)+1>>1|0)<=32767)if((((c[s>>2]|0)-(c[r>>2]|0)>>10)+1>>1|0)<-32768)g=-32768;else g=((c[s>>2]|0)-(c[r>>2]|0)>>10)+1>>1;else g=32767;b[(c[l>>2]|0)+(c[q>>2]<<1)>>1]=g;c[q>>2]=(c[q>>2]|0)+1}i=t;return}function Nf(a,d,e,f,g,h,j){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;x=i;i=i+64|0;k=x+52|0;l=x+48|0;y=x+44|0;m=x+40|0;n=x+36|0;o=x+32|0;p=x+28|0;v=x+24|0;u=x+20|0;r=x+16|0;q=x+12|0;t=x+8|0;s=x+4|0;w=x;c[k>>2]=a;c[l>>2]=d;c[y>>2]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;c[p>>2]=j;c[q>>2]=0-(c[c[y>>2]>>2]|0)&16383;c[r>>2]=0-(c[c[y>>2]>>2]|0)>>14;c[s>>2]=0-(c[(c[y>>2]|0)+4>>2]|0)&16383;c[t>>2]=0-(c[(c[y>>2]|0)+4>>2]|0)>>14;c[v>>2]=0;while(1){if((c[v>>2]|0)>=(c[o>>2]|0))break;y=_(c[v>>2]|0,c[p>>2]|0)|0;c[u>>2]=b[(c[k>>2]|0)+(y<<1)>>1];y=_(c[c[l>>2]>>2]>>16,(c[u>>2]&65535)<<16>>16)|0;c[w>>2]=(c[c[m>>2]>>2]|0)+(y+((_(c[c[l>>2]>>2]&65535,(c[u>>2]&65535)<<16>>16)|0)>>16))<<2;y=_(c[w>>2]>>16,(c[q>>2]&65535)<<16>>16)|0;y=(c[(c[m>>2]|0)+4>>2]|0)+((y+((_(c[w>>2]&65535,(c[q>>2]&65535)<<16>>16)|0)>>16)>>13)+1>>1)|0;c[c[m>>2]>>2]=y;y=_(c[w>>2]>>16,(c[r>>2]&65535)<<16>>16)|0;y=(c[c[m>>2]>>2]|0)+(y+((_(c[w>>2]&65535,(c[r>>2]&65535)<<16>>16)|0)>>16))|0;c[c[m>>2]>>2]=y;y=_(c[(c[l>>2]|0)+4>>2]>>16,(c[u>>2]&65535)<<16>>16)|0;y=(c[c[m>>2]>>2]|0)+(y+((_(c[(c[l>>2]|0)+4>>2]&65535,(c[u>>2]&65535)<<16>>16)|0)>>16))|0;c[c[m>>2]>>2]=y;y=_(c[w>>2]>>16,(c[s>>2]&65535)<<16>>16)|0;y=(y+((_(c[w>>2]&65535,(c[s>>2]&65535)<<16>>16)|0)>>16)>>13)+1>>1;c[(c[m>>2]|0)+4>>2]=y;y=_(c[w>>2]>>16,(c[t>>2]&65535)<<16>>16)|0;y=(c[(c[m>>2]|0)+4>>2]|0)+(y+((_(c[w>>2]&65535,(c[t>>2]&65535)<<16>>16)|0)>>16))|0;c[(c[m>>2]|0)+4>>2]=y;y=_(c[(c[l>>2]|0)+8>>2]>>16,(c[u>>2]&65535)<<16>>16)|0;y=(c[(c[m>>2]|0)+4>>2]|0)+(y+((_(c[(c[l>>2]|0)+8>>2]&65535,(c[u>>2]&65535)<<16>>16)|0)>>16))|0;c[(c[m>>2]|0)+4>>2]=y;if(((c[w>>2]|0)+16384-1>>14|0)<=32767)if(((c[w>>2]|0)+16384-1>>14|0)<-32768)e=-32768;else e=(c[w>>2]|0)+16384-1>>14;else e=32767;y=_(c[v>>2]|0,c[p>>2]|0)|0;b[(c[n>>2]|0)+(y<<1)>>1]=e;c[v>>2]=(c[v>>2]|0)+1}i=x;return}function Of(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;e=k+16|0;f=k+12|0;g=k+8|0;j=k+4|0;h=k;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;c[h>>2]=(c[g>>2]|0)-65536;c[j>>2]=0;while(1){a=c[g>>2]>>16;if((c[j>>2]|0)>=((c[f>>2]|0)-1|0))break;b=_(a,(c[(c[e>>2]|0)+(c[j>>2]<<2)>>2]&65535)<<16>>16)|0;b=b+((_(c[g>>2]&65535,(c[(c[e>>2]|0)+(c[j>>2]<<2)>>2]&65535)<<16>>16)|0)>>16)|0;b=b+(_(c[g>>2]|0,(c[(c[e>>2]|0)+(c[j>>2]<<2)>>2]>>15)+1>>1)|0)|0;c[(c[e>>2]|0)+(c[j>>2]<<2)>>2]=b;b=((_(c[g>>2]|0,c[h>>2]|0)|0)>>15)+1>>1;c[g>>2]=(c[g>>2]|0)+b;c[j>>2]=(c[j>>2]|0)+1}j=_(a,(c[(c[e>>2]|0)+((c[f>>2]|0)-1<<2)>>2]&65535)<<16>>16)|0;j=j+((_(c[g>>2]&65535,(c[(c[e>>2]|0)+((c[f>>2]|0)-1<<2)>>2]&65535)<<16>>16)|0)>>16)|0;j=j+(_(c[g>>2]|0,(c[(c[e>>2]|0)+((c[f>>2]|0)-1<<2)>>2]>>15)+1>>1)|0)|0;c[(c[e>>2]|0)+((c[f>>2]|0)-1<<2)>>2]=j;i=k;return}function Pf(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;f=l+16|0;g=l+12|0;h=l+8|0;k=l+4|0;j=l;c[f>>2]=a;c[g>>2]=d;c[h>>2]=e;c[j>>2]=(c[h>>2]|0)-65536;c[k>>2]=0;while(1){a=c[h>>2]|0;if((c[k>>2]|0)>=((c[g>>2]|0)-1|0))break;d=((_(a,b[(c[f>>2]|0)+(c[k>>2]<<1)>>1]|0)|0)>>15)+1>>1&65535;b[(c[f>>2]|0)+(c[k>>2]<<1)>>1]=d;d=((_(c[h>>2]|0,c[j>>2]|0)|0)>>15)+1>>1;c[h>>2]=(c[h>>2]|0)+d;c[k>>2]=(c[k>>2]|0)+1}k=((_(a,b[(c[f>>2]|0)+((c[g>>2]|0)-1<<1)>>1]|0)|0)>>15)+1>>1&65535;b[(c[f>>2]|0)+((c[g>>2]|0)-1<<1)>>1]=k;i=l;return}function Qf(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=i;i=i+48|0;j=u+36|0;l=u+38|0;m=u+32|0;k=u+28|0;n=u+24|0;r=u+20|0;q=u+16|0;t=u+12|0;s=u+8|0;p=u+4|0;o=u;b[j>>1]=d;a[l>>0]=e;c[m>>2]=f;c[k>>2]=g;c[n>>2]=h;g=(c[n>>2]|0)==4;do if((c[k>>2]|0)==8)if(g){c[o>>2]=30286;c[p>>2]=11;break}else{c[o>>2]=30252;c[p>>2]=3;break}else if(g){c[o>>2]=30330;c[p>>2]=34;break}else{c[o>>2]=30258;c[p>>2]=12;break}while(0);c[t>>2]=(c[k>>2]&65535)<<16>>16<<1;c[s>>2]=((c[k>>2]&65535)<<16>>16)*18;c[r>>2]=(c[t>>2]|0)+(b[j>>1]|0);c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[n>>2]|0))break;g=_(c[q>>2]|0,c[p>>2]|0)|0;c[(c[m>>2]|0)+(c[q>>2]<<2)>>2]=(c[r>>2]|0)+(a[(c[o>>2]|0)+(g+(a[l>>0]|0))>>0]|0);g=c[(c[m>>2]|0)+(c[q>>2]<<2)>>2]|0;do if((c[t>>2]|0)>(c[s>>2]|0)){if((g|0)>(c[t>>2]|0)){g=c[t>>2]|0;break}if((c[(c[m>>2]|0)+(c[q>>2]<<2)>>2]|0)<(c[s>>2]|0)){g=c[s>>2]|0;break}else{g=c[(c[m>>2]|0)+(c[q>>2]<<2)>>2]|0;break}}else{if((g|0)>(c[s>>2]|0)){g=c[s>>2]|0;break}if((c[(c[m>>2]|0)+(c[q>>2]<<2)>>2]|0)<(c[t>>2]|0)){g=c[t>>2]|0;break}else{g=c[(c[m>>2]|0)+(c[q>>2]<<2)>>2]|0;break}}while(0);c[(c[m>>2]|0)+(c[q>>2]<<2)>>2]=g;c[q>>2]=(c[q>>2]|0)+1}i=u;return}function Rf(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;g=n+20|0;h=n+16|0;j=n+12|0;k=n+8|0;l=n+4|0;m=n;c[g>>2]=a;c[h>>2]=d;c[j>>2]=e;c[k>>2]=f;c[m>>2]=0;c[l>>2]=0;while(1){a=c[m>>2]|0;if((c[l>>2]|0)>=(c[k>>2]|0))break;e=_(b[(c[g>>2]|0)+(c[l>>2]<<1)>>1]|0,b[(c[h>>2]|0)+(c[l>>2]<<1)>>1]|0)|0;c[m>>2]=a+(e>>c[j>>2]);c[l>>2]=(c[l>>2]|0)+1}i=n;return a|0}function Sf(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;f=b+8|0;e=b+4|0;d=b;c[f>>2]=a;Tf(c[f>>2]|0,e,d);a=((_(c[d>>2]|0,128-(c[d>>2]|0)|0)|0)>>16)*179|0;a=(31-(c[e>>2]|0)<<7)+((c[d>>2]|0)+(a+(((_(c[d>>2]|0,128-(c[d>>2]|0)|0)|0)&65535)*179>>16)))|0;i=b;return a|0}function Tf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+16|0;h=e+12|0;j=e+8|0;f=e+4|0;g=e;c[h>>2]=a;c[j>>2]=b;c[f>>2]=d;c[g>>2]=Uf(c[h>>2]|0)|0;c[c[j>>2]>>2]=c[g>>2];b=(Vf(c[h>>2]|0,24-(c[g>>2]|0)|0)|0)&127;c[c[f>>2]>>2]=b;i=e;return}function Uf(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if(!(c[b>>2]|0)){a=32;i=d;return a|0}a=32-(32-(aa(c[b>>2]|0)|0))|0;i=d;return a|0}function Vf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;e=k+20|0;d=k+16|0;f=k+12|0;j=k+8|0;h=k+4|0;g=k;c[d>>2]=a;c[f>>2]=b;c[j>>2]=c[d>>2];c[h>>2]=c[f>>2];c[g>>2]=0-(c[f>>2]|0);if(!(c[f>>2]|0)){c[e>>2]=c[d>>2];j=c[e>>2]|0;i=k;return j|0}d=c[j>>2]|0;if((c[f>>2]|0)<0){c[e>>2]=d<<c[g>>2]|(c[j>>2]|0)>>>(32-(c[g>>2]|0)|0);j=c[e>>2]|0;i=k;return j|0}else{c[e>>2]=d<<32-(c[h>>2]|0)|(c[j>>2]|0)>>>(c[h>>2]|0);j=c[e>>2]|0;i=k;return j|0}return 0}function Wf(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;d=h+12|0;e=h+8|0;g=h+4|0;f=h;c[e>>2]=a;if((c[e>>2]|0)<0){c[d>>2]=0;g=c[d>>2]|0;i=h;return g|0}if((c[e>>2]|0)>=3967){c[d>>2]=2147483647;g=c[d>>2]|0;i=h;return g|0}c[g>>2]=1<<(c[e>>2]>>7);c[f>>2]=c[e>>2]&127;a=c[g>>2]|0;b=c[g>>2]|0;if((c[e>>2]|0)<2048){e=_((_((c[f>>2]&65535)<<16>>16,(128-(c[f>>2]|0)&65535)<<16>>16)|0)>>16,-174)|0;c[g>>2]=a+((_(b,(c[f>>2]|0)+(e+((_((_((c[f>>2]&65535)<<16>>16,(128-(c[f>>2]|0)&65535)<<16>>16)|0)&65535,-174)|0)>>16))|0)|0)>>7)}else{e=_((_((c[f>>2]&65535)<<16>>16,(128-(c[f>>2]|0)&65535)<<16>>16)|0)>>16,-174)|0;c[g>>2]=a+(_(b>>7,(c[f>>2]|0)+(e+((_((_((c[f>>2]&65535)<<16>>16,(128-(c[f>>2]|0)&65535)<<16>>16)|0)&65535,-174)|0)>>16))|0)|0)}c[d>>2]=c[g>>2];g=c[d>>2]|0;i=h;return g|0}function Xf(a,d,e,f,g,h){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+48|0;j=t+40|0;k=t+36|0;l=t+32|0;m=t+28|0;n=t+24|0;q=t+16|0;p=t+12|0;s=t+8|0;r=t+4|0;o=t;c[j>>2]=a;c[k>>2]=d;c[l>>2]=e;c[m>>2]=f;c[n>>2]=g;c[t+20>>2]=h;c[p>>2]=c[n>>2];while(1){if((c[p>>2]|0)>=(c[m>>2]|0))break;c[o>>2]=(c[k>>2]|0)+((c[p>>2]|0)-1<<1);c[s>>2]=_(b[c[o>>2]>>1]|0,b[c[l>>2]>>1]|0)|0;c[s>>2]=(c[s>>2]|0)+(_(b[(c[o>>2]|0)+-2>>1]|0,b[(c[l>>2]|0)+2>>1]|0)|0);c[s>>2]=(c[s>>2]|0)+(_(b[(c[o>>2]|0)+-4>>1]|0,b[(c[l>>2]|0)+4>>1]|0)|0);c[s>>2]=(c[s>>2]|0)+(_(b[(c[o>>2]|0)+-6>>1]|0,b[(c[l>>2]|0)+6>>1]|0)|0);c[s>>2]=(c[s>>2]|0)+(_(b[(c[o>>2]|0)+-8>>1]|0,b[(c[l>>2]|0)+8>>1]|0)|0);c[s>>2]=(c[s>>2]|0)+(_(b[(c[o>>2]|0)+-10>>1]|0,b[(c[l>>2]|0)+10>>1]|0)|0);c[q>>2]=6;while(1){if((c[q>>2]|0)>=(c[n>>2]|0))break;c[s>>2]=(c[s>>2]|0)+(_(b[(c[o>>2]|0)+(0-(c[q>>2]|0)<<1)>>1]|0,b[(c[l>>2]|0)+(c[q>>2]<<1)>>1]|0)|0);c[s>>2]=(c[s>>2]|0)+(_(b[(c[o>>2]|0)+(0-(c[q>>2]|0)-1<<1)>>1]|0,b[(c[l>>2]|0)+((c[q>>2]|0)+1<<1)>>1]|0)|0);c[q>>2]=(c[q>>2]|0)+2}c[s>>2]=(b[(c[o>>2]|0)+2>>1]<<12)-(c[s>>2]|0);c[r>>2]=(c[s>>2]>>11)+1>>1;if((c[r>>2]|0)>32767)e=32767;else e=(c[r>>2]|0)<-32768?-32768:c[r>>2]|0;b[(c[j>>2]|0)+(c[p>>2]<<1)>>1]=e;c[p>>2]=(c[p>>2]|0)+1}oj(c[j>>2]|0,0,c[n>>2]<<1|0)|0;i=t;return}function Yf(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+160|0;e=m+148|0;f=m+144|0;g=m+140|0;l=m+136|0;j=m+8|0;h=m+4|0;k=m;c[f>>2]=a;c[g>>2]=d;c[k>>2]=0;c[h>>2]=j+((c[g>>2]&1)<<6);c[l>>2]=0;while(1){if((c[l>>2]|0)>=(c[g>>2]|0))break;c[k>>2]=(c[k>>2]|0)+(b[(c[f>>2]|0)+(c[l>>2]<<1)>>1]|0);c[(c[h>>2]|0)+(c[l>>2]<<2)>>2]=b[(c[f>>2]|0)+(c[l>>2]<<1)>>1]<<12;c[l>>2]=(c[l>>2]|0)+1}if((c[k>>2]|0)>=4096){c[e>>2]=0;d=c[e>>2]|0;i=m;return d|0}else{c[e>>2]=Zf(j,c[g>>2]|0)|0;d=c[e>>2]|0;i=m;return d|0}return 0}function Zf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;r=i;i=i+64|0;d=r+48|0;e=r+44|0;s=r+40|0;j=r+36|0;l=r+32|0;k=r+28|0;h=r+24|0;m=r+20|0;n=r+16|0;o=r+12|0;p=r+8|0;g=r+4|0;f=r;c[e>>2]=a;c[s>>2]=b;c[f>>2]=(c[e>>2]|0)+((c[s>>2]&1)<<6);c[h>>2]=1073741824;c[j>>2]=(c[s>>2]|0)-1;while(1){if((c[j>>2]|0)<=0)break;if((c[(c[f>>2]|0)+(c[j>>2]<<2)>>2]|0)>16773022){q=5;break}if((c[(c[f>>2]|0)+(c[j>>2]<<2)>>2]|0)<-16773022){q=5;break}c[m>>2]=0-(c[(c[f>>2]|0)+(c[j>>2]<<2)>>2]<<7);s=c[m>>2]|0;b=c[m>>2]|0;b=yj(s|0,((s|0)<0)<<31>>31|0,b|0,((b|0)<0)<<31>>31|0)|0;b=nj(b|0,C|0,32)|0;c[n>>2]=1073741824-b;b=c[n>>2]|0;c[k>>2]=32-(_f((c[n>>2]|0)>0?b:0-b|0)|0);c[o>>2]=$f(c[n>>2]|0,(c[k>>2]|0)+30|0)|0;b=c[h>>2]|0;s=c[n>>2]|0;s=yj(b|0,((b|0)<0)<<31>>31|0,s|0,((s|0)<0)<<31>>31|0)|0;s=nj(s|0,C|0,32)|0;c[h>>2]=s<<2;c[g>>2]=c[f>>2];c[f>>2]=(c[e>>2]|0)+((c[j>>2]&1)<<6);c[l>>2]=0;while(1){if((c[l>>2]|0)>=(c[j>>2]|0))break;b=c[(c[g>>2]|0)+(c[l>>2]<<2)>>2]|0;a=c[(c[g>>2]|0)+((c[j>>2]|0)-(c[l>>2]|0)-1<<2)>>2]|0;s=c[m>>2]|0;s=yj(a|0,((a|0)<0)<<31>>31|0,s|0,((s|0)<0)<<31>>31|0)|0;s=nj(s|0,C|0,30)|0;s=mj(s|0,C|0,1,0)|0;s=nj(s|0,C|0,1)|0;c[p>>2]=b-s;s=(c[k>>2]|0)==1;b=c[p>>2]|0;a=c[o>>2]|0;a=yj(b|0,((b|0)<0)<<31>>31|0,a|0,((a|0)<0)<<31>>31|0)|0;b=C;if(s){b=nj(a|0,b|0,1)|0;s=C;t=c[p>>2]|0;a=c[o>>2]|0;a=yj(t|0,((t|0)<0)<<31>>31|0,a|0,((a|0)<0)<<31>>31|0)|0;a=mj(b|0,s|0,a&1|0,0)|0}else{a=nj(a|0,b|0,(c[k>>2]|0)-1|0)|0;a=mj(a|0,C|0,1,0)|0;a=nj(a|0,C|0,1)|0}c[(c[f>>2]|0)+(c[l>>2]<<2)>>2]=a;c[l>>2]=(c[l>>2]|0)+1}c[j>>2]=(c[j>>2]|0)+-1}if((q|0)==5){c[d>>2]=0;t=c[d>>2]|0;i=r;return t|0}if((c[c[f>>2]>>2]|0)<=16773022?(c[c[f>>2]>>2]|0)>=-16773022:0){c[m>>2]=0-(c[c[f>>2]>>2]<<7);t=c[m>>2]|0;s=c[m>>2]|0;s=yj(t|0,((t|0)<0)<<31>>31|0,s|0,((s|0)<0)<<31>>31|0)|0;s=nj(s|0,C|0,32)|0;c[n>>2]=1073741824-s;s=c[h>>2]|0;t=c[n>>2]|0;t=yj(s|0,((s|0)<0)<<31>>31|0,t|0,((t|0)<0)<<31>>31|0)|0;t=nj(t|0,C|0,32)|0;c[h>>2]=t<<2;c[d>>2]=c[h>>2];t=c[d>>2]|0;i=r;return t|0}c[d>>2]=0;t=c[d>>2]|0;i=r;return t|0}function _f(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if(!(c[b>>2]|0)){a=32;i=d;return a|0}a=32-(32-(aa(c[b>>2]|0)|0))|0;i=d;return a|0}function $f(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;h=i;i=i+48|0;f=h+32|0;n=h+28|0;d=h+24|0;j=h+20|0;g=h+16|0;k=h+12|0;m=h+8|0;l=h+4|0;e=h;c[n>>2]=a;c[d>>2]=b;b=c[n>>2]|0;c[j>>2]=(_f((c[n>>2]|0)>0?b:0-b|0)|0)-1;c[m>>2]=c[n>>2]<<c[j>>2];c[k>>2]=536870911/(c[m>>2]>>16|0)|0;c[e>>2]=c[k>>2]<<16;b=_(c[m>>2]>>16,(c[k>>2]&65535)<<16>>16)|0;c[l>>2]=536870912-(b+((_(c[m>>2]&65535,(c[k>>2]&65535)<<16>>16)|0)>>16))<<3;b=_(c[l>>2]>>16,(c[k>>2]&65535)<<16>>16)|0;b=(c[e>>2]|0)+(b+((_(c[l>>2]&65535,(c[k>>2]&65535)<<16>>16)|0)>>16))|0;c[e>>2]=b+(_(c[l>>2]|0,(c[k>>2]>>15)+1>>1)|0);c[g>>2]=61-(c[j>>2]|0)-(c[d>>2]|0);b=c[g>>2]|0;if((c[g>>2]|0)>0)if((b|0)<32){c[f>>2]=c[e>>2]>>c[g>>2];n=c[f>>2]|0;i=h;return n|0}else{c[f>>2]=0;n=c[f>>2]|0;i=h;return n|0}a=c[e>>2]|0;d=0-(c[g>>2]|0)|0;do if((-2147483648>>0-b|0)>(2147483647>>0-(c[g>>2]|0)|0)){if((a|0)>(-2147483648>>d|0)){b=-2147483648>>0-(c[g>>2]|0);break}if((c[e>>2]|0)<(2147483647>>0-(c[g>>2]|0)|0)){b=2147483647>>0-(c[g>>2]|0);break}else{b=c[e>>2]|0;break}}else{if((a|0)>(2147483647>>d|0)){b=2147483647>>0-(c[g>>2]|0);break}if((c[e>>2]|0)<(-2147483648>>0-(c[g>>2]|0)|0)){b=-2147483648>>0-(c[g>>2]|0);break}else{b=c[e>>2]|0;break}}while(0);c[f>>2]=b<<0-(c[g>>2]|0);n=c[f>>2]|0;i=h;return n|0}function ag(a,e,f){a=a|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+272|0;x=C+264|0;g=C+260|0;y=C+256|0;v=C+252|0;B=C+248|0;A=C+244|0;p=C+240|0;n=C+176|0;h=C+140|0;k=C+104|0;j=C+100|0;l=C+96|0;s=C+92|0;r=C+88|0;o=C+84|0;q=C+80|0;z=C+16|0;u=C+12|0;m=C+8|0;t=C+4|0;w=C;c[x>>2]=a;c[g>>2]=e;c[y>>2]=f;c[t>>2]=0;c[v>>2]=(c[y>>2]|0)==16?30226:30242;c[B>>2]=0;while(1){if((c[B>>2]|0)>=(c[y>>2]|0))break;c[s>>2]=b[(c[g>>2]|0)+(c[B>>2]<<1)>>1]>>8;c[r>>2]=(b[(c[g>>2]|0)+(c[B>>2]<<1)>>1]|0)-(c[s>>2]<<8);c[o>>2]=b[24576+(c[s>>2]<<1)>>1];c[q>>2]=(b[24576+((c[s>>2]|0)+1<<1)>>1]|0)-(c[o>>2]|0);f=((c[o>>2]<<8)+(_(c[q>>2]|0,c[r>>2]|0)|0)>>3)+1>>1;c[n+(d[(c[v>>2]|0)+(c[B>>2]|0)>>0]<<2)>>2]=f;c[B>>2]=(c[B>>2]|0)+1}c[p>>2]=c[y>>2]>>1;bg(h,n,c[p>>2]|0);bg(k,n+4|0,c[p>>2]|0);c[B>>2]=0;while(1){if((c[B>>2]|0)>=(c[p>>2]|0))break;c[j>>2]=(c[h+((c[B>>2]|0)+1<<2)>>2]|0)+(c[h+(c[B>>2]<<2)>>2]|0);c[l>>2]=(c[k+((c[B>>2]|0)+1<<2)>>2]|0)-(c[k+(c[B>>2]<<2)>>2]|0);c[z+(c[B>>2]<<2)>>2]=0-(c[l>>2]|0)-(c[j>>2]|0);c[z+((c[y>>2]|0)-(c[B>>2]|0)-1<<2)>>2]=(c[l>>2]|0)-(c[j>>2]|0);c[B>>2]=(c[B>>2]|0)+1}c[A>>2]=0;while(1){if((c[A>>2]|0)>=10)break;c[u>>2]=0;c[B>>2]=0;while(1){if((c[B>>2]|0)>=(c[y>>2]|0))break;v=c[z+(c[B>>2]<<2)>>2]|0;c[m>>2]=(c[z+(c[B>>2]<<2)>>2]|0)>0?v:0-v|0;if((c[m>>2]|0)>(c[u>>2]|0)){c[u>>2]=c[m>>2];c[t>>2]=c[B>>2]}c[B>>2]=(c[B>>2]|0)+1}c[u>>2]=(c[u>>2]>>4)+1>>1;if((c[u>>2]|0)<=32767)break;c[u>>2]=(c[u>>2]|0)<163838?c[u>>2]|0:163838;c[w>>2]=65470-(((c[u>>2]|0)-32767<<14|0)/((_(c[u>>2]|0,(c[t>>2]|0)+1|0)|0)>>2|0)|0);Of(z,c[y>>2]|0,c[w>>2]|0);c[A>>2]=(c[A>>2]|0)+1}w=(c[A>>2]|0)==10;c[B>>2]=0;a:do if(w)while(1){if((c[B>>2]|0)>=(c[y>>2]|0))break a;if(((c[z+(c[B>>2]<<2)>>2]>>4)+1>>1|0)<=32767)if(((c[z+(c[B>>2]<<2)>>2]>>4)+1>>1|0)<-32768)g=-32768;else g=(c[z+(c[B>>2]<<2)>>2]>>4)+1>>1;else g=32767;b[(c[x>>2]|0)+(c[B>>2]<<1)>>1]=g;c[z+(c[B>>2]<<2)>>2]=b[(c[x>>2]|0)+(c[B>>2]<<1)>>1]<<5;c[B>>2]=(c[B>>2]|0)+1}else while(1){if((c[B>>2]|0)>=(c[y>>2]|0))break a;b[(c[x>>2]|0)+(c[B>>2]<<1)>>1]=(c[z+(c[B>>2]<<2)>>2]>>4)+1>>1;c[B>>2]=(c[B>>2]|0)+1}while(0);c[A>>2]=0;while(1){if((c[A>>2]|0)>=16){g=31;break}if((Yf(c[x>>2]|0,c[y>>2]|0)|0)>=107374){g=31;break}Of(z,c[y>>2]|0,65536-(2<<c[A>>2])|0);c[B>>2]=0;while(1){if((c[B>>2]|0)>=(c[y>>2]|0))break;b[(c[x>>2]|0)+(c[B>>2]<<1)>>1]=(c[z+(c[B>>2]<<2)>>2]>>4)+1>>1;c[B>>2]=(c[B>>2]|0)+1}c[A>>2]=(c[A>>2]|0)+1}if((g|0)==31){i=C;return}}function bg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;e=l+20|0;f=l+16|0;g=l+12|0;j=l+8|0;k=l+4|0;h=l;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;c[c[e>>2]>>2]=65536;c[(c[e>>2]|0)+4>>2]=0-(c[c[f>>2]>>2]|0);c[j>>2]=1;while(1){if((c[j>>2]|0)>=(c[g>>2]|0))break;c[h>>2]=c[(c[f>>2]|0)+(c[j>>2]<<1<<2)>>2];d=c[(c[e>>2]|0)+((c[j>>2]|0)-1<<2)>>2]<<1;b=c[h>>2]|0;a=c[(c[e>>2]|0)+(c[j>>2]<<2)>>2]|0;a=yj(b|0,((b|0)<0)<<31>>31|0,a|0,((a|0)<0)<<31>>31|0)|0;a=nj(a|0,C|0,15)|0;a=mj(a|0,C|0,1,0)|0;a=nj(a|0,C|0,1)|0;c[(c[e>>2]|0)+((c[j>>2]|0)+1<<2)>>2]=d-a;c[k>>2]=c[j>>2];while(1){if((c[k>>2]|0)<=1)break;b=c[(c[e>>2]|0)+((c[k>>2]|0)-2<<2)>>2]|0;a=c[h>>2]|0;d=c[(c[e>>2]|0)+((c[k>>2]|0)-1<<2)>>2]|0;d=yj(a|0,((a|0)<0)<<31>>31|0,d|0,((d|0)<0)<<31>>31|0)|0;d=nj(d|0,C|0,15)|0;d=mj(d|0,C|0,1,0)|0;d=nj(d|0,C|0,1)|0;a=(c[e>>2]|0)+(c[k>>2]<<2)|0;c[a>>2]=(c[a>>2]|0)+(b-d);c[k>>2]=(c[k>>2]|0)+-1}a=(c[e>>2]|0)+4|0;c[a>>2]=(c[a>>2]|0)-(c[h>>2]|0);c[j>>2]=(c[j>>2]|0)+1}i=l;return}
function xd(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+80|0;l=t+40|0;g=t+36|0;m=t+32|0;n=t+28|0;q=t+24|0;j=t+20|0;s=t+16|0;h=t+12|0;k=t+8|0;p=t+48|0;r=t+4|0;o=t;c[l>>2]=a;c[g>>2]=d;c[m>>2]=e;c[n>>2]=f;c[r>>2]=(c[l>>2]|0)+2772;if((c[(c[l>>2]|0)+2316>>2]|0)!=(c[(c[r>>2]|0)+1384>>2]|0)){wd(c[l>>2]|0);c[(c[r>>2]|0)+1384>>2]=c[(c[l>>2]|0)+2316>>2]}a:do if((c[(c[l>>2]|0)+4160>>2]|0)==0?(c[(c[l>>2]|0)+4164>>2]|0)==0:0){c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[(c[l>>2]|0)+2340>>2]|0))break;d=(c[r>>2]|0)+1280+(c[q>>2]<<1)|0;b[d>>1]=(b[d>>1]|0)+((((b[(c[l>>2]|0)+2344+(c[q>>2]<<1)>>1]|0)-(b[(c[r>>2]|0)+1280+(c[q>>2]<<1)>>1]|0)>>16)*16348|0)+(((b[(c[l>>2]|0)+2344+(c[q>>2]<<1)>>1]|0)-(b[(c[r>>2]|0)+1280+(c[q>>2]<<1)>>1]|0)&65535)*16348>>16));c[q>>2]=(c[q>>2]|0)+1}c[h>>2]=0;c[j>>2]=0;c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[(c[l>>2]|0)+2324>>2]|0))break;if((c[(c[g>>2]|0)+16+(c[q>>2]<<2)>>2]|0)>(c[h>>2]|0)){c[h>>2]=c[(c[g>>2]|0)+16+(c[q>>2]<<2)>>2];c[j>>2]=c[q>>2]}c[q>>2]=(c[q>>2]|0)+1}qj((c[r>>2]|0)+(c[(c[l>>2]|0)+2332>>2]<<2)|0,c[r>>2]|0,(_((c[(c[l>>2]|0)+2324>>2]|0)-1|0,c[(c[l>>2]|0)+2332>>2]|0)|0)<<2|0)|0;j=_(c[j>>2]|0,c[(c[l>>2]|0)+2332>>2]|0)|0;pj(c[r>>2]|0,(c[l>>2]|0)+4+(j<<2)|0,c[(c[l>>2]|0)+2332>>2]<<2|0)|0;c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[(c[l>>2]|0)+2324>>2]|0))break a;j=(c[r>>2]|0)+1376|0;c[j>>2]=(c[j>>2]|0)+((((c[(c[g>>2]|0)+16+(c[q>>2]<<2)>>2]|0)-(c[(c[r>>2]|0)+1376>>2]|0)>>16)*4634|0)+(((c[(c[g>>2]|0)+16+(c[q>>2]<<2)>>2]|0)-(c[(c[r>>2]|0)+1376>>2]|0)&65535)*4634>>16));c[q>>2]=(c[q>>2]|0)+1}}while(0);if(!(c[(c[l>>2]|0)+4160>>2]|0)){oj((c[r>>2]|0)+1312|0,0,c[(c[l>>2]|0)+2340>>2]<<2|0)|0;i=t;return}j=(c[n>>2]|0)+16|0;c[o>>2]=ia()|0;h=i;i=i+((1*(j<<2)|0)+15&-16)|0;j=_(b[(c[l>>2]|0)+4168+56>>1]>>16,(c[(c[l>>2]|0)+4168+72+4>>2]&65535)<<16>>16)|0;j=j+((_(b[(c[l>>2]|0)+4168+56>>1]&65535,(c[(c[l>>2]|0)+4168+72+4>>2]&65535)<<16>>16)|0)>>16)|0;c[k>>2]=j+(_(b[(c[l>>2]|0)+4168+56>>1]|0,(c[(c[l>>2]|0)+4168+72+4>>2]>>15)+1>>1)|0);if((c[k>>2]|0)<2097152?(c[(c[r>>2]|0)+1376>>2]|0)<=8388608:0){j=_(c[k>>2]>>16,(c[k>>2]&65535)<<16>>16)|0;j=j+((_(c[k>>2]&65535,(c[k>>2]&65535)<<16>>16)|0)>>16)|0;c[k>>2]=j+(_(c[k>>2]|0,(c[k>>2]>>15)+1>>1)|0);j=_(c[(c[r>>2]|0)+1376>>2]>>16,(c[(c[r>>2]|0)+1376>>2]&65535)<<16>>16)|0;j=j+((_(c[(c[r>>2]|0)+1376>>2]&65535,(c[(c[r>>2]|0)+1376>>2]&65535)<<16>>16)|0)>>16)|0;j=j+(_(c[(c[r>>2]|0)+1376>>2]|0,(c[(c[r>>2]|0)+1376>>2]>>15)+1>>1)|0)|0;c[k>>2]=j-(c[k>>2]<<5);c[k>>2]=(yd(c[k>>2]|0)|0)<<8}else{c[k>>2]=_(c[k>>2]>>16,c[k>>2]>>16)|0;j=_(c[(c[r>>2]|0)+1376>>2]>>16,c[(c[r>>2]|0)+1376>>2]>>16)|0;c[k>>2]=j-(c[k>>2]<<5);c[k>>2]=(yd(c[k>>2]|0)|0)<<16}Cd(h+64|0,c[r>>2]|0,c[k>>2]|0,c[n>>2]|0,(c[r>>2]|0)+1380|0);ag(p,(c[r>>2]|0)+1280|0,c[(c[l>>2]|0)+2340>>2]|0);g=h;e=(c[r>>2]|0)+1312|0;f=g+64|0;do{c[g>>2]=c[e>>2];g=g+4|0;e=e+4|0}while((g|0)<(f|0));c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[n>>2]|0))break;c[s>>2]=c[(c[l>>2]|0)+2340>>2]>>1;k=_(c[h+(16+(c[q>>2]|0)-1<<2)>>2]>>16,b[p>>1]|0)|0;c[s>>2]=(c[s>>2]|0)+(k+((_(c[h+(16+(c[q>>2]|0)-1<<2)>>2]&65535,b[p>>1]|0)|0)>>16));k=_(c[h+(16+(c[q>>2]|0)-2<<2)>>2]>>16,b[p+2>>1]|0)|0;c[s>>2]=(c[s>>2]|0)+(k+((_(c[h+(16+(c[q>>2]|0)-2<<2)>>2]&65535,b[p+2>>1]|0)|0)>>16));k=_(c[h+(16+(c[q>>2]|0)-3<<2)>>2]>>16,b[p+4>>1]|0)|0;c[s>>2]=(c[s>>2]|0)+(k+((_(c[h+(16+(c[q>>2]|0)-3<<2)>>2]&65535,b[p+4>>1]|0)|0)>>16));k=_(c[h+(16+(c[q>>2]|0)-4<<2)>>2]>>16,b[p+6>>1]|0)|0;c[s>>2]=(c[s>>2]|0)+(k+((_(c[h+(16+(c[q>>2]|0)-4<<2)>>2]&65535,b[p+6>>1]|0)|0)>>16));k=_(c[h+(16+(c[q>>2]|0)-5<<2)>>2]>>16,b[p+8>>1]|0)|0;c[s>>2]=(c[s>>2]|0)+(k+((_(c[h+(16+(c[q>>2]|0)-5<<2)>>2]&65535,b[p+8>>1]|0)|0)>>16));k=_(c[h+(16+(c[q>>2]|0)-6<<2)>>2]>>16,b[p+10>>1]|0)|0;c[s>>2]=(c[s>>2]|0)+(k+((_(c[h+(16+(c[q>>2]|0)-6<<2)>>2]&65535,b[p+10>>1]|0)|0)>>16));k=_(c[h+(16+(c[q>>2]|0)-7<<2)>>2]>>16,b[p+12>>1]|0)|0;c[s>>2]=(c[s>>2]|0)+(k+((_(c[h+(16+(c[q>>2]|0)-7<<2)>>2]&65535,b[p+12>>1]|0)|0)>>16));k=_(c[h+(16+(c[q>>2]|0)-8<<2)>>2]>>16,b[p+14>>1]|0)|0;c[s>>2]=(c[s>>2]|0)+(k+((_(c[h+(16+(c[q>>2]|0)-8<<2)>>2]&65535,b[p+14>>1]|0)|0)>>16));k=_(c[h+(16+(c[q>>2]|0)-9<<2)>>2]>>16,b[p+16>>1]|0)|0;c[s>>2]=(c[s>>2]|0)+(k+((_(c[h+(16+(c[q>>2]|0)-9<<2)>>2]&65535,b[p+16>>1]|0)|0)>>16));k=_(c[h+(16+(c[q>>2]|0)-10<<2)>>2]>>16,b[p+18>>1]|0)|0;c[s>>2]=(c[s>>2]|0)+(k+((_(c[h+(16+(c[q>>2]|0)-10<<2)>>2]&65535,b[p+18>>1]|0)|0)>>16));if((c[(c[l>>2]|0)+2340>>2]|0)==16){k=_(c[h+(16+(c[q>>2]|0)-11<<2)>>2]>>16,b[p+20>>1]|0)|0;c[s>>2]=(c[s>>2]|0)+(k+((_(c[h+(16+(c[q>>2]|0)-11<<2)>>2]&65535,b[p+20>>1]|0)|0)>>16));k=_(c[h+(16+(c[q>>2]|0)-12<<2)>>2]>>16,b[p+22>>1]|0)|0;c[s>>2]=(c[s>>2]|0)+(k+((_(c[h+(16+(c[q>>2]|0)-12<<2)>>2]&65535,b[p+22>>1]|0)|0)>>16));k=_(c[h+(16+(c[q>>2]|0)-13<<2)>>2]>>16,b[p+24>>1]|0)|0;c[s>>2]=(c[s>>2]|0)+(k+((_(c[h+(16+(c[q>>2]|0)-13<<2)>>2]&65535,b[p+24>>1]|0)|0)>>16));k=_(c[h+(16+(c[q>>2]|0)-14<<2)>>2]>>16,b[p+26>>1]|0)|0;c[s>>2]=(c[s>>2]|0)+(k+((_(c[h+(16+(c[q>>2]|0)-14<<2)>>2]&65535,b[p+26>>1]|0)|0)>>16));k=_(c[h+(16+(c[q>>2]|0)-15<<2)>>2]>>16,b[p+28>>1]|0)|0;c[s>>2]=(c[s>>2]|0)+(k+((_(c[h+(16+(c[q>>2]|0)-15<<2)>>2]&65535,b[p+28>>1]|0)|0)>>16));k=_(c[h+(16+(c[q>>2]|0)-16<<2)>>2]>>16,b[p+30>>1]|0)|0;c[s>>2]=(c[s>>2]|0)+(k+((_(c[h+(16+(c[q>>2]|0)-16<<2)>>2]&65535,b[p+30>>1]|0)|0)>>16))}c[h+(16+(c[q>>2]|0)<<2)>>2]=(c[h+(16+(c[q>>2]|0)<<2)>>2]|0)+(c[s>>2]<<4);if(((b[(c[m>>2]|0)+(c[q>>2]<<1)>>1]|0)+((c[h+(16+(c[q>>2]|0)<<2)>>2]>>9)+1>>1)|0)<=32767)if(((b[(c[m>>2]|0)+(c[q>>2]<<1)>>1]|0)+((c[h+(16+(c[q>>2]|0)<<2)>>2]>>9)+1>>1)|0)<-32768)g=-32768;else g=(b[(c[m>>2]|0)+(c[q>>2]<<1)>>1]|0)+((c[h+(16+(c[q>>2]|0)<<2)>>2]>>9)+1>>1)|0;else g=32767;b[(c[m>>2]|0)+(c[q>>2]<<1)>>1]=g;c[q>>2]=(c[q>>2]|0)+1}g=(c[r>>2]|0)+1312|0;e=h+(c[n>>2]<<2)|0;f=g+64|0;do{c[g>>2]=c[e>>2];g=g+4|0;e=e+4|0}while((g|0)<(f|0));na(c[o>>2]|0);i=t;return}function yd(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=i;i=i+32|0;b=h+16|0;d=h+12|0;g=h+8|0;f=h+4|0;e=h;c[d>>2]=a;if((c[d>>2]|0)<=0){c[b>>2]=0;g=c[b>>2]|0;i=h;return g|0}zd(c[d>>2]|0,f,e);if(c[f>>2]&1|0)c[g>>2]=32768;else c[g>>2]=46214;c[g>>2]=c[g>>2]>>(c[f>>2]>>1);a=_(c[g>>2]>>16,(((c[e>>2]&65535)<<16>>16)*213&65535)<<16>>16)|0;c[g>>2]=(c[g>>2]|0)+(a+((_(c[g>>2]&65535,(((c[e>>2]&65535)<<16>>16)*213&65535)<<16>>16)|0)>>16));c[b>>2]=c[g>>2];g=c[b>>2]|0;i=h;return g|0}function zd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+16|0;h=e+12|0;j=e+8|0;f=e+4|0;g=e;c[h>>2]=a;c[j>>2]=b;c[f>>2]=d;c[g>>2]=Ad(c[h>>2]|0)|0;c[c[j>>2]>>2]=c[g>>2];b=(Bd(c[h>>2]|0,24-(c[g>>2]|0)|0)|0)&127;c[c[f>>2]>>2]=b;i=e;return}function Ad(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if(!(c[b>>2]|0)){a=32;i=d;return a|0}a=32-(32-(aa(c[b>>2]|0)|0))|0;i=d;return a|0}function Bd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;e=k+20|0;d=k+16|0;f=k+12|0;j=k+8|0;h=k+4|0;g=k;c[d>>2]=a;c[f>>2]=b;c[j>>2]=c[d>>2];c[h>>2]=c[f>>2];c[g>>2]=0-(c[f>>2]|0);if(!(c[f>>2]|0)){c[e>>2]=c[d>>2];j=c[e>>2]|0;i=k;return j|0}d=c[j>>2]|0;if((c[f>>2]|0)<0){c[e>>2]=d<<c[g>>2]|(c[j>>2]|0)>>>(32-(c[g>>2]|0)|0);j=c[e>>2]|0;i=k;return j|0}else{c[e>>2]=d<<32-(c[h>>2]|0)|(c[j>>2]|0)>>>(c[h>>2]|0);j=c[e>>2]|0;i=k;return j|0}return 0}function Cd(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+48|0;g=q+32|0;h=q+28|0;j=q+24|0;k=q+20|0;l=q+16|0;p=q+12|0;n=q+8|0;o=q+4|0;m=q;c[g>>2]=a;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;c[m>>2]=255;while(1){if((c[m>>2]|0)<=(c[k>>2]|0))break;c[m>>2]=c[m>>2]>>1}c[p>>2]=c[c[l>>2]>>2];c[n>>2]=0;while(1){d=c[p>>2]|0;if((c[n>>2]|0)>=(c[k>>2]|0))break;c[p>>2]=907633515+(_(d,196314165)|0);c[o>>2]=c[p>>2]>>24&c[m>>2];f=_(c[(c[h>>2]|0)+(c[o>>2]<<2)>>2]>>16,(c[j>>2]>>4&65535)<<16>>16)|0;f=f+((_(c[(c[h>>2]|0)+(c[o>>2]<<2)>>2]&65535,(c[j>>2]>>4&65535)<<16>>16)|0)>>16)|0;if((f+(_(c[(c[h>>2]|0)+(c[o>>2]<<2)>>2]|0,(c[j>>2]>>4>>15)+1>>1)|0)|0)<=32767){f=_(c[(c[h>>2]|0)+(c[o>>2]<<2)>>2]>>16,(c[j>>2]>>4&65535)<<16>>16)|0;f=f+((_(c[(c[h>>2]|0)+(c[o>>2]<<2)>>2]&65535,(c[j>>2]>>4&65535)<<16>>16)|0)>>16)|0;if((f+(_(c[(c[h>>2]|0)+(c[o>>2]<<2)>>2]|0,(c[j>>2]>>4>>15)+1>>1)|0)|0)<-32768)d=-32768;else{d=_(c[(c[h>>2]|0)+(c[o>>2]<<2)>>2]>>16,(c[j>>2]>>4&65535)<<16>>16)|0;d=d+((_(c[(c[h>>2]|0)+(c[o>>2]<<2)>>2]&65535,(c[j>>2]>>4&65535)<<16>>16)|0)>>16)|0;d=d+(_(c[(c[h>>2]|0)+(c[o>>2]<<2)>>2]|0,(c[j>>2]>>4>>15)+1>>1)|0)|0}}else d=32767;c[(c[g>>2]|0)+(c[n>>2]<<2)>>2]=(d&65535)<<16>>16;c[n>>2]=(c[n>>2]|0)+1}c[c[l>>2]>>2]=d;i=q;return}function Dd(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;s=i;i=i+48|0;j=s+40|0;v=s+36|0;k=s+32|0;t=s+28|0;u=s+24|0;l=s+20|0;m=s+16|0;p=s+12|0;q=s+8|0;n=s+44|0;r=s+4|0;o=s;c[j>>2]=b;c[v>>2]=d;c[k>>2]=e;c[t>>2]=f;c[u>>2]=g;c[l>>2]=h;a[n+1>>0]=0;c[r>>2]=c[v>>2];c[m>>2]=(((c[u>>2]|0)+(c[t>>2]<<1)&65535)<<16>>16)*7;c[o>>2]=30184+(c[m>>2]|0);c[k>>2]=(c[k>>2]|0)+8>>4;c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[k>>2]|0))break;c[q>>2]=c[(c[l>>2]|0)+(c[m>>2]<<2)>>2];a:do if((c[q>>2]|0)>0){a[n>>0]=a[(c[o>>2]|0)+((c[q>>2]&31|0)<6?c[q>>2]&31:6)>>0]|0;c[p>>2]=0;while(1){if((c[p>>2]|0)>=16)break a;if(a[(c[r>>2]|0)+(c[p>>2]|0)>>0]|0)qc(c[j>>2]|0,(a[(c[r>>2]|0)+(c[p>>2]|0)>>0]>>15)+1|0,n,8);c[p>>2]=(c[p>>2]|0)+1}}while(0);c[r>>2]=(c[r>>2]|0)+16;c[m>>2]=(c[m>>2]|0)+1}i=s;return}function Ed(d,e,f,g,h,j){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;t=i;i=i+48|0;k=t+40|0;w=t+36|0;l=t+32|0;u=t+28|0;v=t+24|0;m=t+20|0;n=t+16|0;q=t+12|0;r=t+8|0;o=t+44|0;s=t+4|0;p=t;c[k>>2]=d;c[w>>2]=e;c[l>>2]=f;c[u>>2]=g;c[v>>2]=h;c[m>>2]=j;a[o+1>>0]=0;c[s>>2]=c[w>>2];c[n>>2]=(((c[v>>2]|0)+(c[u>>2]<<1)&65535)<<16>>16)*7;c[p>>2]=30184+(c[n>>2]|0);c[l>>2]=(c[l>>2]|0)+8>>4;c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[l>>2]|0))break;c[r>>2]=c[(c[m>>2]|0)+(c[n>>2]<<2)>>2];a:do if((c[r>>2]|0)>0){a[o>>0]=a[(c[p>>2]|0)+((c[r>>2]&31|0)<6?c[r>>2]&31:6)>>0]|0;c[q>>2]=0;while(1){if((c[q>>2]|0)>=16)break a;if((b[(c[s>>2]|0)+(c[q>>2]<<1)>>1]|0)>0){v=((ec(c[k>>2]|0,o,8)|0)<<1)-1|0;w=(c[s>>2]|0)+(c[q>>2]<<1)|0;b[w>>1]=_(b[w>>1]|0,v)|0}c[q>>2]=(c[q>>2]|0)+1}}while(0);c[s>>2]=(c[s>>2]|0)+32;c[n>>2]=(c[n>>2]|0)+1}i=t;return}function Fd(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;oj(c[d>>2]|0,0,4260)|0;c[(c[d>>2]|0)+2376>>2]=1;c[c[d>>2]>>2]=65536;wd(c[d>>2]|0);ze(c[d>>2]|0);i=b;return 0}function Gd(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;M=i;i=i+144|0;o=M+100|0;p=M+96|0;q=M+92|0;l=M+88|0;r=M+84|0;B=M+80|0;D=M+76|0;E=M+72|0;L=M+68|0;J=M+64|0;z=M+60|0;K=M+56|0;t=M+52|0;v=M+48|0;I=M+44|0;u=M+104|0;y=M+40|0;x=M+36|0;w=M+32|0;C=M+28|0;A=M+24|0;n=M+20|0;m=M+16|0;G=M+12|0;F=M+8|0;H=M+4|0;s=M;c[o>>2]=d;c[p>>2]=e;c[q>>2]=f;c[l>>2]=g;c[r>>2]=h;c[E>>2]=0;f=c[(c[o>>2]|0)+2336>>2]|0;c[s>>2]=ia()|0;g=i;i=i+((1*(f<<1)|0)+15&-16)|0;f=i;i=i+((1*((c[(c[o>>2]|0)+2336>>2]|0)+(c[(c[o>>2]|0)+2328>>2]|0)<<2)|0)+15&-16)|0;j=i;i=i+((1*(c[(c[o>>2]|0)+2332>>2]<<2)|0)+15&-16)|0;k=i;i=i+((1*((c[(c[o>>2]|0)+2332>>2]|0)+16<<2)|0)+15&-16)|0;c[m>>2]=b[24558+(a[(c[o>>2]|0)+2736+29>>0]>>1<<2)+(a[(c[o>>2]|0)+2736+30>>0]<<1)>>1];if((a[(c[o>>2]|0)+2736+31>>0]|0)<4)c[z>>2]=1;else c[z>>2]=0;c[n>>2]=a[(c[o>>2]|0)+2736+34>>0];c[B>>2]=0;while(1){if((c[B>>2]|0)>=(c[(c[o>>2]|0)+2328>>2]|0))break;c[n>>2]=907633515+(_(c[n>>2]|0,196314165)|0);c[(c[o>>2]|0)+4+(c[B>>2]<<2)>>2]=b[(c[l>>2]|0)+(c[B>>2]<<1)>>1]<<14;h=(c[o>>2]|0)+4+(c[B>>2]<<2)|0;d=c[h>>2]|0;if((c[(c[o>>2]|0)+4+(c[B>>2]<<2)>>2]|0)<=0){if((d|0)<0){e=(c[o>>2]|0)+4+(c[B>>2]<<2)|0;c[e>>2]=(c[e>>2]|0)+1280}}else c[h>>2]=d-1280;e=(c[o>>2]|0)+4+(c[B>>2]<<2)|0;c[e>>2]=(c[e>>2]|0)+(c[m>>2]<<4);if((c[n>>2]|0)<0)c[(c[o>>2]|0)+4+(c[B>>2]<<2)>>2]=0-(c[(c[o>>2]|0)+4+(c[B>>2]<<2)>>2]|0);c[n>>2]=(c[n>>2]|0)+(b[(c[l>>2]|0)+(c[B>>2]<<1)>>1]|0);c[B>>2]=(c[B>>2]|0)+1}h=k;d=(c[o>>2]|0)+1284|0;e=h+64|0;do{c[h>>2]=c[d>>2];h=h+4|0;d=d+4|0}while((h|0)<(e|0));c[F>>2]=(c[o>>2]|0)+4;c[I>>2]=c[q>>2];c[J>>2]=c[(c[o>>2]|0)+2336>>2];c[D>>2]=0;while(1){if((c[D>>2]|0)>=(c[(c[o>>2]|0)+2324>>2]|0))break;c[H>>2]=j;c[t>>2]=(c[p>>2]|0)+32+(c[D>>2]>>1<<5);pj(u|0,c[t>>2]|0,c[(c[o>>2]|0)+2340>>2]<<1|0)|0;c[v>>2]=(c[p>>2]|0)+96+((c[D>>2]|0)*5<<1);c[K>>2]=a[(c[o>>2]|0)+2736+29>>0];c[w>>2]=c[(c[p>>2]|0)+16+(c[D>>2]<<2)>>2]>>6;c[C>>2]=Hd(c[(c[p>>2]|0)+16+(c[D>>2]<<2)>>2]|0,47)|0;a:do if((c[(c[p>>2]|0)+16+(c[D>>2]<<2)>>2]|0)!=(c[c[o>>2]>>2]|0)){c[A>>2]=Jd(c[c[o>>2]>>2]|0,c[(c[p>>2]|0)+16+(c[D>>2]<<2)>>2]|0,16)|0;c[B>>2]=0;while(1){if((c[B>>2]|0)>=16)break a;n=_(c[A>>2]>>16,(c[k+(c[B>>2]<<2)>>2]&65535)<<16>>16)|0;n=n+((_(c[A>>2]&65535,(c[k+(c[B>>2]<<2)>>2]&65535)<<16>>16)|0)>>16)|0;n=n+(_(c[A>>2]|0,(c[k+(c[B>>2]<<2)>>2]>>15)+1>>1)|0)|0;c[k+(c[B>>2]<<2)>>2]=n;c[B>>2]=(c[B>>2]|0)+1}}else c[A>>2]=65536;while(0);c[c[o>>2]>>2]=c[(c[p>>2]|0)+16+(c[D>>2]<<2)>>2];if((c[(c[o>>2]|0)+4160>>2]|0?(c[(c[o>>2]|0)+4164>>2]|0)==2:0)?((c[D>>2]|0)<2?(a[(c[o>>2]|0)+2736+29>>0]|0)!=2:0):0){n=c[v>>2]|0;b[n>>1]=0;b[n+2>>1]=0;b[n+4>>1]=0;b[n+6>>1]=0;b[n+8>>1]=0;b[(c[v>>2]|0)+4>>1]=4096;c[K>>2]=2;c[(c[p>>2]|0)+(c[D>>2]<<2)>>2]=c[(c[o>>2]|0)+2308>>2]}b:do if((c[K>>2]|0)==2){c[E>>2]=c[(c[p>>2]|0)+(c[D>>2]<<2)>>2];if(c[D>>2]|0?!((c[D>>2]|0)==2&(c[z>>2]|0)!=0):0){if((c[A>>2]|0)==65536)break;c[B>>2]=0;while(1){if((c[B>>2]|0)>=((c[E>>2]|0)+2|0))break b;n=_(c[A>>2]>>16,(c[f+((c[J>>2]|0)-(c[B>>2]|0)-1<<2)>>2]&65535)<<16>>16)|0;n=n+((_(c[A>>2]&65535,(c[f+((c[J>>2]|0)-(c[B>>2]|0)-1<<2)>>2]&65535)<<16>>16)|0)>>16)|0;n=n+(_(c[A>>2]|0,(c[f+((c[J>>2]|0)-(c[B>>2]|0)-1<<2)>>2]>>15)+1>>1)|0)|0;c[f+((c[J>>2]|0)-(c[B>>2]|0)-1<<2)>>2]=n;c[B>>2]=(c[B>>2]|0)+1}}c[L>>2]=(c[(c[o>>2]|0)+2336>>2]|0)-(c[E>>2]|0)-(c[(c[o>>2]|0)+2340>>2]|0)-2;if((c[D>>2]|0)==2)pj((c[o>>2]|0)+1348+(c[(c[o>>2]|0)+2336>>2]<<1)|0,c[q>>2]|0,c[(c[o>>2]|0)+2332>>2]<<1<<1|0)|0;n=(c[L>>2]|0)+(_(c[D>>2]|0,c[(c[o>>2]|0)+2332>>2]|0)|0)|0;Xf(g+(c[L>>2]<<1)|0,(c[o>>2]|0)+1348+(n<<1)|0,c[t>>2]|0,(c[(c[o>>2]|0)+2336>>2]|0)-(c[L>>2]|0)|0,c[(c[o>>2]|0)+2340>>2]|0,c[r>>2]|0);if(!(c[D>>2]|0)){n=_(c[C>>2]>>16,(c[(c[p>>2]|0)+136>>2]&65535)<<16>>16)|0;c[C>>2]=n+((_(c[C>>2]&65535,(c[(c[p>>2]|0)+136>>2]&65535)<<16>>16)|0)>>16)<<2}c[B>>2]=0;while(1){if((c[B>>2]|0)>=((c[E>>2]|0)+2|0))break b;n=_(c[C>>2]>>16,b[g+((c[(c[o>>2]|0)+2336>>2]|0)-(c[B>>2]|0)-1<<1)>>1]|0)|0;n=n+((_(c[C>>2]&65535,b[g+((c[(c[o>>2]|0)+2336>>2]|0)-(c[B>>2]|0)-1<<1)>>1]|0)|0)>>16)|0;c[f+((c[J>>2]|0)-(c[B>>2]|0)-1<<2)>>2]=n;c[B>>2]=(c[B>>2]|0)+1}}while(0);c:do if((c[K>>2]|0)==2){c[G>>2]=f+((c[J>>2]|0)-(c[E>>2]|0)+2<<2);c[B>>2]=0;while(1){if((c[B>>2]|0)>=(c[(c[o>>2]|0)+2332>>2]|0))break c;c[y>>2]=2;n=_(c[c[G>>2]>>2]>>16,b[c[v>>2]>>1]|0)|0;c[y>>2]=(c[y>>2]|0)+(n+((_(c[c[G>>2]>>2]&65535,b[c[v>>2]>>1]|0)|0)>>16));n=_(c[(c[G>>2]|0)+-4>>2]>>16,b[(c[v>>2]|0)+2>>1]|0)|0;c[y>>2]=(c[y>>2]|0)+(n+((_(c[(c[G>>2]|0)+-4>>2]&65535,b[(c[v>>2]|0)+2>>1]|0)|0)>>16));n=_(c[(c[G>>2]|0)+-8>>2]>>16,b[(c[v>>2]|0)+4>>1]|0)|0;c[y>>2]=(c[y>>2]|0)+(n+((_(c[(c[G>>2]|0)+-8>>2]&65535,b[(c[v>>2]|0)+4>>1]|0)|0)>>16));n=_(c[(c[G>>2]|0)+-12>>2]>>16,b[(c[v>>2]|0)+6>>1]|0)|0;c[y>>2]=(c[y>>2]|0)+(n+((_(c[(c[G>>2]|0)+-12>>2]&65535,b[(c[v>>2]|0)+6>>1]|0)|0)>>16));n=_(c[(c[G>>2]|0)+-16>>2]>>16,b[(c[v>>2]|0)+8>>1]|0)|0;c[y>>2]=(c[y>>2]|0)+(n+((_(c[(c[G>>2]|0)+-16>>2]&65535,b[(c[v>>2]|0)+8>>1]|0)|0)>>16));c[G>>2]=(c[G>>2]|0)+4;c[(c[H>>2]|0)+(c[B>>2]<<2)>>2]=(c[(c[F>>2]|0)+(c[B>>2]<<2)>>2]|0)+(c[y>>2]<<1);c[f+(c[J>>2]<<2)>>2]=c[(c[H>>2]|0)+(c[B>>2]<<2)>>2]<<1;c[J>>2]=(c[J>>2]|0)+1;c[B>>2]=(c[B>>2]|0)+1}}else c[H>>2]=c[F>>2];while(0);c[B>>2]=0;while(1){if((c[B>>2]|0)>=(c[(c[o>>2]|0)+2332>>2]|0))break;c[x>>2]=c[(c[o>>2]|0)+2340>>2]>>1;n=_(c[k+(16+(c[B>>2]|0)-1<<2)>>2]>>16,b[u>>1]|0)|0;c[x>>2]=(c[x>>2]|0)+(n+((_(c[k+(16+(c[B>>2]|0)-1<<2)>>2]&65535,b[u>>1]|0)|0)>>16));n=_(c[k+(16+(c[B>>2]|0)-2<<2)>>2]>>16,b[u+2>>1]|0)|0;c[x>>2]=(c[x>>2]|0)+(n+((_(c[k+(16+(c[B>>2]|0)-2<<2)>>2]&65535,b[u+2>>1]|0)|0)>>16));n=_(c[k+(16+(c[B>>2]|0)-3<<2)>>2]>>16,b[u+4>>1]|0)|0;c[x>>2]=(c[x>>2]|0)+(n+((_(c[k+(16+(c[B>>2]|0)-3<<2)>>2]&65535,b[u+4>>1]|0)|0)>>16));n=_(c[k+(16+(c[B>>2]|0)-4<<2)>>2]>>16,b[u+6>>1]|0)|0;c[x>>2]=(c[x>>2]|0)+(n+((_(c[k+(16+(c[B>>2]|0)-4<<2)>>2]&65535,b[u+6>>1]|0)|0)>>16));n=_(c[k+(16+(c[B>>2]|0)-5<<2)>>2]>>16,b[u+8>>1]|0)|0;c[x>>2]=(c[x>>2]|0)+(n+((_(c[k+(16+(c[B>>2]|0)-5<<2)>>2]&65535,b[u+8>>1]|0)|0)>>16));n=_(c[k+(16+(c[B>>2]|0)-6<<2)>>2]>>16,b[u+10>>1]|0)|0;c[x>>2]=(c[x>>2]|0)+(n+((_(c[k+(16+(c[B>>2]|0)-6<<2)>>2]&65535,b[u+10>>1]|0)|0)>>16));n=_(c[k+(16+(c[B>>2]|0)-7<<2)>>2]>>16,b[u+12>>1]|0)|0;c[x>>2]=(c[x>>2]|0)+(n+((_(c[k+(16+(c[B>>2]|0)-7<<2)>>2]&65535,b[u+12>>1]|0)|0)>>16));n=_(c[k+(16+(c[B>>2]|0)-8<<2)>>2]>>16,b[u+14>>1]|0)|0;c[x>>2]=(c[x>>2]|0)+(n+((_(c[k+(16+(c[B>>2]|0)-8<<2)>>2]&65535,b[u+14>>1]|0)|0)>>16));n=_(c[k+(16+(c[B>>2]|0)-9<<2)>>2]>>16,b[u+16>>1]|0)|0;c[x>>2]=(c[x>>2]|0)+(n+((_(c[k+(16+(c[B>>2]|0)-9<<2)>>2]&65535,b[u+16>>1]|0)|0)>>16));n=_(c[k+(16+(c[B>>2]|0)-10<<2)>>2]>>16,b[u+18>>1]|0)|0;c[x>>2]=(c[x>>2]|0)+(n+((_(c[k+(16+(c[B>>2]|0)-10<<2)>>2]&65535,b[u+18>>1]|0)|0)>>16));if((c[(c[o>>2]|0)+2340>>2]|0)==16){n=_(c[k+(16+(c[B>>2]|0)-11<<2)>>2]>>16,b[u+20>>1]|0)|0;c[x>>2]=(c[x>>2]|0)+(n+((_(c[k+(16+(c[B>>2]|0)-11<<2)>>2]&65535,b[u+20>>1]|0)|0)>>16));n=_(c[k+(16+(c[B>>2]|0)-12<<2)>>2]>>16,b[u+22>>1]|0)|0;c[x>>2]=(c[x>>2]|0)+(n+((_(c[k+(16+(c[B>>2]|0)-12<<2)>>2]&65535,b[u+22>>1]|0)|0)>>16));n=_(c[k+(16+(c[B>>2]|0)-13<<2)>>2]>>16,b[u+24>>1]|0)|0;c[x>>2]=(c[x>>2]|0)+(n+((_(c[k+(16+(c[B>>2]|0)-13<<2)>>2]&65535,b[u+24>>1]|0)|0)>>16));n=_(c[k+(16+(c[B>>2]|0)-14<<2)>>2]>>16,b[u+26>>1]|0)|0;c[x>>2]=(c[x>>2]|0)+(n+((_(c[k+(16+(c[B>>2]|0)-14<<2)>>2]&65535,b[u+26>>1]|0)|0)>>16));n=_(c[k+(16+(c[B>>2]|0)-15<<2)>>2]>>16,b[u+28>>1]|0)|0;c[x>>2]=(c[x>>2]|0)+(n+((_(c[k+(16+(c[B>>2]|0)-15<<2)>>2]&65535,b[u+28>>1]|0)|0)>>16));n=_(c[k+(16+(c[B>>2]|0)-16<<2)>>2]>>16,b[u+30>>1]|0)|0;c[x>>2]=(c[x>>2]|0)+(n+((_(c[k+(16+(c[B>>2]|0)-16<<2)>>2]&65535,b[u+30>>1]|0)|0)>>16))}c[k+(16+(c[B>>2]|0)<<2)>>2]=(c[(c[H>>2]|0)+(c[B>>2]<<2)>>2]|0)+(c[x>>2]<<4);n=_(c[k+(16+(c[B>>2]|0)<<2)>>2]>>16,(c[w>>2]&65535)<<16>>16)|0;n=n+((_(c[k+(16+(c[B>>2]|0)<<2)>>2]&65535,(c[w>>2]&65535)<<16>>16)|0)>>16)|0;if(((n+(_(c[k+(16+(c[B>>2]|0)<<2)>>2]|0,(c[w>>2]>>15)+1>>1)|0)>>7)+1>>1|0)<=32767){n=_(c[k+(16+(c[B>>2]|0)<<2)>>2]>>16,(c[w>>2]&65535)<<16>>16)|0;n=n+((_(c[k+(16+(c[B>>2]|0)<<2)>>2]&65535,(c[w>>2]&65535)<<16>>16)|0)>>16)|0;if(((n+(_(c[k+(16+(c[B>>2]|0)<<2)>>2]|0,(c[w>>2]>>15)+1>>1)|0)>>7)+1>>1|0)<-32768)h=-32768;else{h=_(c[k+(16+(c[B>>2]|0)<<2)>>2]>>16,(c[w>>2]&65535)<<16>>16)|0;h=h+((_(c[k+(16+(c[B>>2]|0)<<2)>>2]&65535,(c[w>>2]&65535)<<16>>16)|0)>>16)|0;h=(h+(_(c[k+(16+(c[B>>2]|0)<<2)>>2]|0,(c[w>>2]>>15)+1>>1)|0)>>7)+1>>1}}else h=32767;b[(c[I>>2]|0)+(c[B>>2]<<1)>>1]=h;c[B>>2]=(c[B>>2]|0)+1}h=k;d=k+(c[(c[o>>2]|0)+2332>>2]<<2)|0;e=h+64|0;do{c[h>>2]=c[d>>2];h=h+4|0;d=d+4|0}while((h|0)<(e|0));c[F>>2]=(c[F>>2]|0)+(c[(c[o>>2]|0)+2332>>2]<<2);c[I>>2]=(c[I>>2]|0)+(c[(c[o>>2]|0)+2332>>2]<<1);c[D>>2]=(c[D>>2]|0)+1}h=(c[o>>2]|0)+1284|0;d=k;e=h+64|0;do{c[h>>2]=c[d>>2];h=h+4|0;d=d+4|0}while((h|0)<(e|0));na(c[s>>2]|0);i=M;return}function Hd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;h=i;i=i+48|0;f=h+32|0;n=h+28|0;d=h+24|0;j=h+20|0;g=h+16|0;k=h+12|0;m=h+8|0;l=h+4|0;e=h;c[n>>2]=a;c[d>>2]=b;b=c[n>>2]|0;c[j>>2]=(Id((c[n>>2]|0)>0?b:0-b|0)|0)-1;c[m>>2]=c[n>>2]<<c[j>>2];c[k>>2]=536870911/(c[m>>2]>>16|0)|0;c[e>>2]=c[k>>2]<<16;b=_(c[m>>2]>>16,(c[k>>2]&65535)<<16>>16)|0;c[l>>2]=536870912-(b+((_(c[m>>2]&65535,(c[k>>2]&65535)<<16>>16)|0)>>16))<<3;b=_(c[l>>2]>>16,(c[k>>2]&65535)<<16>>16)|0;b=(c[e>>2]|0)+(b+((_(c[l>>2]&65535,(c[k>>2]&65535)<<16>>16)|0)>>16))|0;c[e>>2]=b+(_(c[l>>2]|0,(c[k>>2]>>15)+1>>1)|0);c[g>>2]=61-(c[j>>2]|0)-(c[d>>2]|0);b=c[g>>2]|0;if((c[g>>2]|0)>0)if((b|0)<32){c[f>>2]=c[e>>2]>>c[g>>2];n=c[f>>2]|0;i=h;return n|0}else{c[f>>2]=0;n=c[f>>2]|0;i=h;return n|0}a=c[e>>2]|0;d=0-(c[g>>2]|0)|0;do if((-2147483648>>0-b|0)>(2147483647>>0-(c[g>>2]|0)|0)){if((a|0)>(-2147483648>>d|0)){b=-2147483648>>0-(c[g>>2]|0);break}if((c[e>>2]|0)<(2147483647>>0-(c[g>>2]|0)|0)){b=2147483647>>0-(c[g>>2]|0);break}else{b=c[e>>2]|0;break}}else{if((a|0)>(2147483647>>d|0)){b=2147483647>>0-(c[g>>2]|0);break}if((c[e>>2]|0)<(-2147483648>>0-(c[g>>2]|0)|0)){b=-2147483648>>0-(c[g>>2]|0);break}else{b=c[e>>2]|0;break}}while(0);c[f>>2]=b<<0-(c[g>>2]|0);n=c[f>>2]|0;i=h;return n|0}function Id(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if(!(c[b>>2]|0)){a=32;i=d;return a|0}a=32-(32-(aa(c[b>>2]|0)|0))|0;i=d;return a|0}function Jd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;h=i;i=i+48|0;f=h+40|0;q=h+36|0;p=h+32|0;j=h+28|0;l=h+24|0;k=h+20|0;g=h+16|0;m=h+12|0;n=h+8|0;o=h+4|0;e=h;c[q>>2]=a;c[p>>2]=b;c[j>>2]=d;b=c[q>>2]|0;c[l>>2]=(Id((c[q>>2]|0)>0?b:0-b|0)|0)-1;c[n>>2]=c[q>>2]<<c[l>>2];b=c[p>>2]|0;c[k>>2]=(Id((c[p>>2]|0)>0?b:0-b|0)|0)-1;c[o>>2]=c[p>>2]<<c[k>>2];c[m>>2]=536870911/(c[o>>2]>>16|0)|0;b=_(c[n>>2]>>16,(c[m>>2]&65535)<<16>>16)|0;c[e>>2]=b+((_(c[n>>2]&65535,(c[m>>2]&65535)<<16>>16)|0)>>16);b=c[n>>2]|0;a=c[o>>2]|0;d=c[e>>2]|0;d=yj(a|0,((a|0)<0)<<31>>31|0,d|0,((d|0)<0)<<31>>31|0)|0;d=nj(d|0,C|0,32)|0;c[n>>2]=b-(d<<3);d=_(c[n>>2]>>16,(c[m>>2]&65535)<<16>>16)|0;c[e>>2]=(c[e>>2]|0)+(d+((_(c[n>>2]&65535,(c[m>>2]&65535)<<16>>16)|0)>>16));c[g>>2]=29+(c[l>>2]|0)-(c[k>>2]|0)-(c[j>>2]|0);d=c[g>>2]|0;if((c[g>>2]|0)>=0)if((d|0)<32){c[f>>2]=c[e>>2]>>c[g>>2];q=c[f>>2]|0;i=h;return q|0}else{c[f>>2]=0;q=c[f>>2]|0;i=h;return q|0}a=c[e>>2]|0;b=0-(c[g>>2]|0)|0;do if((-2147483648>>0-d|0)>(2147483647>>0-(c[g>>2]|0)|0)){if((a|0)>(-2147483648>>b|0)){d=-2147483648>>0-(c[g>>2]|0);break}if((c[e>>2]|0)<(2147483647>>0-(c[g>>2]|0)|0)){d=2147483647>>0-(c[g>>2]|0);break}else{d=c[e>>2]|0;break}}else{if((a|0)>(2147483647>>b|0)){d=2147483647>>0-(c[g>>2]|0);break}if((c[e>>2]|0)<(-2147483648>>0-(c[g>>2]|0)|0)){d=-2147483648>>0-(c[g>>2]|0);break}else{d=c[e>>2]|0;break}}while(0);c[f>>2]=d<<0-(c[g>>2]|0);q=c[f>>2]|0;i=h;return q|0}function Kd(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=i;i=i+192|0;k=x+180|0;l=x+176|0;m=x+172|0;n=x+168|0;o=x+164|0;p=x+160|0;q=x+156|0;s=x+152|0;t=x+148|0;v=x+144|0;u=x+4|0;r=x;c[k>>2]=b;c[l>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;c[q>>2]=j;c[v>>2]=0;c[s>>2]=c[(c[k>>2]|0)+2328>>2];c[u+136>>2]=0;do if(!(c[o>>2]|0))w=4;else{if((c[o>>2]|0)==2?(c[(c[k>>2]|0)+2420+(c[(c[k>>2]|0)+2388>>2]<<2)>>2]|0)==1:0){w=4;break}Ae(c[k>>2]|0,u,c[m>>2]|0,1,c[q>>2]|0)}while(0);if((w|0)==4){d=(c[s>>2]|0)+16-1&-16;c[r>>2]=ia()|0;w=i;i=i+((1*(d<<1)|0)+15&-16)|0;Md(c[k>>2]|0,c[l>>2]|0,c[(c[k>>2]|0)+2388>>2]|0,c[o>>2]|0,c[p>>2]|0);Nd(c[l>>2]|0,w,a[(c[k>>2]|0)+2736+29>>0]|0,a[(c[k>>2]|0)+2736+30>>0]|0,c[(c[k>>2]|0)+2328>>2]|0);Ld(c[k>>2]|0,u,c[p>>2]|0);Gd(c[k>>2]|0,u,c[m>>2]|0,w,c[q>>2]|0);Ae(c[k>>2]|0,u,c[m>>2]|0,0,c[q>>2]|0);c[(c[k>>2]|0)+4160>>2]=0;c[(c[k>>2]|0)+4164>>2]=a[(c[k>>2]|0)+2736+29>>0];c[(c[k>>2]|0)+2376>>2]=0;na(c[r>>2]|0)}c[t>>2]=(c[(c[k>>2]|0)+2336>>2]|0)-(c[(c[k>>2]|0)+2328>>2]|0);qj((c[k>>2]|0)+1348|0,(c[k>>2]|0)+1348+(c[(c[k>>2]|0)+2328>>2]<<1)|0,c[t>>2]<<1|0)|0;pj((c[k>>2]|0)+1348+(c[t>>2]<<1)|0,c[m>>2]|0,c[(c[k>>2]|0)+2328>>2]<<1|0)|0;xd(c[k>>2]|0,u,c[m>>2]|0,c[s>>2]|0);Le(c[k>>2]|0,c[m>>2]|0,c[s>>2]|0);c[(c[k>>2]|0)+2308>>2]=c[u+((c[(c[k>>2]|0)+2324>>2]|0)-1<<2)>>2];c[c[n>>2]>>2]=c[s>>2];i=x;return c[v>>2]|0}function Ld(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;p=i;i=i+96|0;g=p+24|0;h=p+20|0;q=p+16|0;l=p+12|0;m=p+8|0;j=p+4|0;o=p+64|0;n=p+32|0;k=p;c[g>>2]=d;c[h>>2]=e;c[q>>2]=f;ae((c[h>>2]|0)+16|0,(c[g>>2]|0)+2736|0,(c[g>>2]|0)+2312|0,(c[q>>2]|0)==2&1,c[(c[g>>2]|0)+2324>>2]|0);ge(o,(c[g>>2]|0)+2736+8|0,c[(c[g>>2]|0)+2732>>2]|0);ag((c[h>>2]|0)+32+32|0,o,c[(c[g>>2]|0)+2340>>2]|0);if((c[(c[g>>2]|0)+2376>>2]|0)==1)a[(c[g>>2]|0)+2736+31>>0]=4;if((a[(c[g>>2]|0)+2736+31>>0]|0)<4){c[l>>2]=0;while(1){if((c[l>>2]|0)>=(c[(c[g>>2]|0)+2340>>2]|0))break;q=(b[(c[g>>2]|0)+2344+(c[l>>2]<<1)>>1]|0)+((_(a[(c[g>>2]|0)+2736+31>>0]|0,(b[o+(c[l>>2]<<1)>>1]|0)-(b[(c[g>>2]|0)+2344+(c[l>>2]<<1)>>1]|0)|0)|0)>>2)&65535;b[n+(c[l>>2]<<1)>>1]=q;c[l>>2]=(c[l>>2]|0)+1}ag((c[h>>2]|0)+32|0,n,c[(c[g>>2]|0)+2340>>2]|0)}else pj((c[h>>2]|0)+32|0,(c[h>>2]|0)+32+32|0,c[(c[g>>2]|0)+2340>>2]<<1|0)|0;pj((c[g>>2]|0)+2344|0,o|0,c[(c[g>>2]|0)+2340>>2]<<1|0)|0;if(c[(c[g>>2]|0)+4160>>2]|0){Pf((c[h>>2]|0)+32|0,c[(c[g>>2]|0)+2340>>2]|0,63570);Pf((c[h>>2]|0)+32+32|0,c[(c[g>>2]|0)+2340>>2]|0,63570)}if((a[(c[g>>2]|0)+2736+29>>0]|0)!=2){oj(c[h>>2]|0,0,c[(c[g>>2]|0)+2324>>2]<<2|0)|0;oj((c[h>>2]|0)+96|0,0,(c[(c[g>>2]|0)+2324>>2]|0)*5<<1|0)|0;a[(c[g>>2]|0)+2736+32>>0]=0;c[(c[h>>2]|0)+136>>2]=0;i=p;return}Qf(b[(c[g>>2]|0)+2736+26>>1]|0,a[(c[g>>2]|0)+2736+28>>0]|0,c[h>>2]|0,c[(c[g>>2]|0)+2316>>2]|0,c[(c[g>>2]|0)+2324>>2]|0);c[k>>2]=c[17644+(a[(c[g>>2]|0)+2736+32>>0]<<2)>>2];c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[(c[g>>2]|0)+2324>>2]|0))break;c[j>>2]=a[(c[g>>2]|0)+2736+4+(c[m>>2]|0)>>0];c[l>>2]=0;while(1){if((c[l>>2]|0)>=5)break;b[(c[h>>2]|0)+96+(((c[m>>2]|0)*5|0)+(c[l>>2]|0)<<1)>>1]=a[(c[k>>2]|0)+(((c[j>>2]|0)*5|0)+(c[l>>2]|0))>>0]<<7;c[l>>2]=(c[l>>2]|0)+1}c[m>>2]=(c[m>>2]|0)+1}c[j>>2]=a[(c[g>>2]|0)+2736+33>>0];c[(c[h>>2]|0)+136>>2]=b[24566+(c[j>>2]<<1)>>1];i=p;return}function Md(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;t=i;i=i+96|0;j=t+36|0;k=t+32|0;u=t+28|0;v=t+24|0;l=t+20|0;q=t+16|0;r=t+12|0;m=t+8|0;n=t+4|0;o=t;p=t+40|0;s=t+72|0;c[j>>2]=d;c[k>>2]=e;c[u>>2]=f;c[v>>2]=g;c[l>>2]=h;if(!(c[v>>2]|0)?!(c[(c[j>>2]|0)+2404+(c[u>>2]<<2)>>2]|0):0)c[m>>2]=ec(c[k>>2]|0,29024,8)|0;else c[m>>2]=(ec(c[k>>2]|0,29020,8)|0)+2;a[(c[j>>2]|0)+2736+29>>0]=c[m>>2]>>1;a[(c[j>>2]|0)+2736+30>>0]=c[m>>2]&1;f=c[k>>2]|0;if((c[l>>2]|0)==2){v=(ec(f,26771,8)|0)&255;a[(c[j>>2]|0)+2736>>0]=v}else{u=(ec(f,26747+(a[(c[j>>2]|0)+2736+29>>0]<<3)|0,8)|0)<<3&255;a[(c[j>>2]|0)+2736>>0]=u;u=((ec(c[k>>2]|0,29049,8)|0)&255)<<24>>24;v=(c[j>>2]|0)+2736|0;a[v>>0]=(a[v>>0]|0)+u}c[q>>2]=1;while(1){f=c[k>>2]|0;if((c[q>>2]|0)>=(c[(c[j>>2]|0)+2324>>2]|0))break;v=(ec(f,26771,8)|0)&255;a[(c[j>>2]|0)+2736+(c[q>>2]|0)>>0]=v;c[q>>2]=(c[q>>2]|0)+1}v=_(a[(c[j>>2]|0)+2736+29>>0]>>1,b[c[(c[j>>2]|0)+2732>>2]>>1]|0)|0;v=(ec(f,(c[(c[(c[j>>2]|0)+2732>>2]|0)+12>>2]|0)+v|0,8)|0)&255;a[(c[j>>2]|0)+2736+8>>0]=v;nf(p,s,c[(c[j>>2]|0)+2732>>2]|0,a[(c[j>>2]|0)+2736+8>>0]|0);c[q>>2]=0;while(1){if((c[q>>2]|0)>=(b[(c[(c[j>>2]|0)+2732>>2]|0)+2>>1]|0))break;c[m>>2]=ec(c[k>>2]|0,(c[(c[(c[j>>2]|0)+2732>>2]|0)+24>>2]|0)+(b[p+(c[q>>2]<<1)>>1]|0)|0,8)|0;if(c[m>>2]|0){if((c[m>>2]|0)==8){v=ec(c[k>>2]|0,29057,8)|0;c[m>>2]=(c[m>>2]|0)+v}}else{v=ec(c[k>>2]|0,29057,8)|0;c[m>>2]=(c[m>>2]|0)-v}a[(c[j>>2]|0)+2736+8+((c[q>>2]|0)+1)>>0]=(c[m>>2]|0)-4;c[q>>2]=(c[q>>2]|0)+1}if((c[(c[j>>2]|0)+2324>>2]|0)==4){v=(ec(c[k>>2]|0,29026,8)|0)&255;a[(c[j>>2]|0)+2736+31>>0]=v}else a[(c[j>>2]|0)+2736+31>>0]=4;if((a[(c[j>>2]|0)+2736+29>>0]|0)!=2){v=c[j>>2]|0;v=v+2736|0;v=v+29|0;v=a[v>>0]|0;v=v<<24>>24;u=c[j>>2]|0;u=u+2396|0;c[u>>2]=v;u=c[k>>2]|0;u=ec(u,29034,8)|0;u=u&255;v=c[j>>2]|0;v=v+2736|0;v=v+34|0;a[v>>0]=u;i=t;return}c[n>>2]=1;if(((c[l>>2]|0)==2?(c[(c[j>>2]|0)+2396>>2]|0)==2:0)?(c[o>>2]=((ec(c[k>>2]|0,29096,8)|0)&65535)<<16>>16,(c[o>>2]|0)>0):0){c[o>>2]=(c[o>>2]|0)-9;b[(c[j>>2]|0)+2736+26>>1]=(b[(c[j>>2]|0)+2400>>1]|0)+(c[o>>2]|0);c[n>>2]=0}if(c[n>>2]|0){u=((ec(c[k>>2]|0,29064,8)|0)&65535)<<16>>16;u=(_(u,c[(c[j>>2]|0)+2316>>2]>>1)|0)&65535;b[(c[j>>2]|0)+2736+26>>1]=u;u=((ec(c[k>>2]|0,c[(c[j>>2]|0)+2380>>2]|0,8)|0)&65535)<<16>>16;v=(c[j>>2]|0)+2736+26|0;b[v>>1]=(b[v>>1]|0)+u}b[(c[j>>2]|0)+2400>>1]=b[(c[j>>2]|0)+2736+26>>1]|0;v=(ec(c[k>>2]|0,c[(c[j>>2]|0)+2384>>2]|0,8)|0)&255;a[(c[j>>2]|0)+2736+28>>0]=v;v=(ec(c[k>>2]|0,26812,8)|0)&255;a[(c[j>>2]|0)+2736+32>>0]=v;c[r>>2]=0;while(1){if((c[r>>2]|0)>=(c[(c[j>>2]|0)+2324>>2]|0))break;v=(ec(c[k>>2]|0,c[17620+(a[(c[j>>2]|0)+2736+32>>0]<<2)>>2]|0,8)|0)&255;a[(c[j>>2]|0)+2736+4+(c[r>>2]|0)>>0]=v;c[r>>2]=(c[r>>2]|0)+1}if(!(c[l>>2]|0)){v=(ec(c[k>>2]|0,29017,8)|0)&255;a[(c[j>>2]|0)+2736+33>>0]=v;v=c[j>>2]|0;v=v+2736|0;v=v+29|0;v=a[v>>0]|0;v=v<<24>>24;u=c[j>>2]|0;u=u+2396|0;c[u>>2]=v;u=c[k>>2]|0;u=ec(u,29034,8)|0;u=u&255;v=c[j>>2]|0;v=v+2736|0;v=v+34|0;a[v>>0]=u;i=t;return}else{a[(c[j>>2]|0)+2736+33>>0]=0;v=c[j>>2]|0;v=v+2736|0;v=v+29|0;v=a[v>>0]|0;v=v<<24>>24;u=c[j>>2]|0;u=u+2396|0;c[u>>2]=v;u=c[k>>2]|0;u=ec(u,29034,8)|0;u=u&255;v=c[j>>2]|0;v=v+2736|0;v=v+34|0;a[v>>0]=u;i=t;return}}function Nd(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=i;i=i+224|0;k=y+212|0;l=y+208|0;m=y+204|0;n=y+200|0;o=y+196|0;q=y+192|0;s=y+188|0;t=y+184|0;r=y+180|0;p=y+176|0;u=y+172|0;h=y+168|0;x=y+88|0;v=y+8|0;w=y+4|0;j=y;c[k>>2]=a;c[l>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[h>>2]=ec(c[k>>2]|0,29523+((c[m>>2]>>1)*9|0)|0,8)|0;c[r>>2]=c[o>>2]>>4;if((c[r>>2]<<4|0)<(c[o>>2]|0))c[r>>2]=(c[r>>2]|0)+1;c[j>>2]=29181+((c[h>>2]|0)*18|0);c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[r>>2]|0))break;c[v+(c[q>>2]<<2)>>2]=0;e=ec(c[k>>2]|0,c[j>>2]|0,8)|0;c[x+(c[q>>2]<<2)>>2]=e;while(1){h=c[q>>2]|0;if((c[x+(c[q>>2]<<2)>>2]|0)!=17)break;e=v+(h<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=ec(c[k>>2]|0,29343+((c[v+(c[q>>2]<<2)>>2]|0)==10&1)|0,8)|0;c[x+(c[q>>2]<<2)>>2]=e}c[q>>2]=h+1}c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[r>>2]|0))break;h=(c[l>>2]|0)+((c[q>>2]&65535)<<16>>16<<4<<1)|0;if((c[x+(c[q>>2]<<2)>>2]|0)>0)Se(h,c[k>>2]|0,c[x+(c[q>>2]<<2)>>2]|0);else{g=h+32|0;do{b[h>>1]=0;h=h+2|0}while((h|0)<(g|0))}c[q>>2]=(c[q>>2]|0)+1}c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[r>>2]|0))break;if((c[v+(c[q>>2]<<2)>>2]|0)>0){c[u>>2]=c[v+(c[q>>2]<<2)>>2];c[w>>2]=(c[l>>2]|0)+((c[q>>2]&65535)<<16>>16<<4<<1);c[t>>2]=0;while(1){if((c[t>>2]|0)>=16)break;c[p>>2]=b[(c[w>>2]|0)+(c[t>>2]<<1)>>1];c[s>>2]=0;while(1){h=c[p>>2]|0;if((c[s>>2]|0)>=(c[u>>2]|0))break;c[p>>2]=h<<1;j=ec(c[k>>2]|0,29015,8)|0;c[p>>2]=(c[p>>2]|0)+j;c[s>>2]=(c[s>>2]|0)+1}b[(c[w>>2]|0)+(c[t>>2]<<1)>>1]=h;c[t>>2]=(c[t>>2]|0)+1}j=x+(c[q>>2]<<2)|0;c[j>>2]=c[j>>2]|c[u>>2]<<5}c[q>>2]=(c[q>>2]|0)+1}Ed(c[k>>2]|0,c[l>>2]|0,c[o>>2]|0,c[m>>2]|0,c[n>>2]|0,x);i=y;return}function Od(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;g=l+16|0;h=l+12|0;f=l+8|0;j=l+4|0;k=l;c[g>>2]=b;c[h>>2]=d;c[f>>2]=e;c[k>>2]=0;c[(c[g>>2]|0)+2332>>2]=((c[h>>2]&65535)<<16>>16)*5;c[j>>2]=_((c[(c[g>>2]|0)+2324>>2]&65535)<<16>>16,(c[(c[g>>2]|0)+2332>>2]&65535)<<16>>16)|0;if(!((c[(c[g>>2]|0)+2316>>2]|0)==(c[h>>2]|0)?(c[(c[g>>2]|0)+2320>>2]|0)==(c[f>>2]|0):0)){b=ig((c[g>>2]|0)+2432|0,((c[h>>2]&65535)<<16>>16)*1e3|0,c[f>>2]|0,0)|0;c[k>>2]=(c[k>>2]|0)+b;c[(c[g>>2]|0)+2320>>2]=c[f>>2]}if((c[(c[g>>2]|0)+2316>>2]|0)==(c[h>>2]|0)?(c[j>>2]|0)==(c[(c[g>>2]|0)+2328>>2]|0):0){k=c[k>>2]|0;i=l;return k|0}f=(c[(c[g>>2]|0)+2324>>2]|0)==4;e=(c[g>>2]|0)+2384|0;do if((c[h>>2]|0)==8)if(f){c[e>>2]=29151;break}else{c[e>>2]=29174;break}else if(f){c[e>>2]=29117;break}else{c[e>>2]=29162;break}while(0);if((c[(c[g>>2]|0)+2316>>2]|0)!=(c[h>>2]|0)){c[(c[g>>2]|0)+2336>>2]=((c[h>>2]&65535)<<16>>16)*20;f=(c[g>>2]|0)+2340|0;if((c[h>>2]|0)==8|(c[h>>2]|0)==12){c[f>>2]=10;c[(c[g>>2]|0)+2732>>2]=17668}else{c[f>>2]=16;c[(c[g>>2]|0)+2732>>2]=17704}do if((c[h>>2]|0)!=16){if((c[h>>2]|0)==12){c[(c[g>>2]|0)+2380>>2]=29043;break}if((c[h>>2]|0)==8)c[(c[g>>2]|0)+2380>>2]=29034}else c[(c[g>>2]|0)+2380>>2]=29049;while(0);c[(c[g>>2]|0)+2376>>2]=1;c[(c[g>>2]|0)+2308>>2]=100;a[(c[g>>2]|0)+2312>>0]=10;c[(c[g>>2]|0)+4164>>2]=0;oj((c[g>>2]|0)+1348|0,0,960)|0;f=(c[g>>2]|0)+1284|0;e=f+64|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(e|0))}c[(c[g>>2]|0)+2316>>2]=c[h>>2];c[(c[g>>2]|0)+2328>>2]=c[j>>2];k=c[k>>2]|0;i=l;return k|0}function Pd(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;e=d+4|0;b=d;c[e>>2]=a;c[b>>2]=0;c[c[e>>2]>>2]=8544;i=d;return c[b>>2]|0}function Qd(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=i;i=i+16|0;b=g+12|0;e=g+8|0;f=g+4|0;d=g;c[b>>2]=a;c[f>>2]=0;c[d>>2]=c[b>>2];c[e>>2]=0;while(1){if((c[e>>2]|0)>=2)break;c[f>>2]=Fd((c[d>>2]|0)+((c[e>>2]|0)*4260|0)|0)|0;c[e>>2]=(c[e>>2]|0)+1}e=(c[b>>2]|0)+8520|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[(c[b>>2]|0)+8540>>2]=0;i=g;return c[f>>2]|0}function Rd(d,e,f,g,h,j,k,l){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0;P=i;i=i+784|0;y=P+128|0;R=P+124|0;z=P+120|0;A=P+116|0;Q=P+112|0;r=P+108|0;B=P+104|0;C=P+100|0;s=P+96|0;G=P+92|0;I=P+88|0;F=P+84|0;M=P+80|0;J=P+76|0;n=P+72|0;N=P+64|0;u=P+56|0;L=P+52|0;K=P+48|0;E=P+44|0;w=P+40|0;O=P+36|0;x=P+32|0;m=P+28|0;p=P+136|0;o=P+24|0;D=P+20|0;t=P+16|0;v=P+12|0;H=P;c[R>>2]=d;c[z>>2]=e;c[A>>2]=f;c[Q>>2]=g;c[r>>2]=h;c[B>>2]=j;c[C>>2]=k;c[s>>2]=l;c[F>>2]=0;c[M>>2]=0;c[u>>2]=0;c[u+4>>2]=0;c[K>>2]=c[R>>2];c[E>>2]=c[K>>2];a:do if(c[Q>>2]|0){c[I>>2]=0;while(1){if((c[I>>2]|0)>=(c[(c[z>>2]|0)+4>>2]|0))break a;c[(c[E>>2]|0)+((c[I>>2]|0)*4260|0)+2388>>2]=0;c[I>>2]=(c[I>>2]|0)+1}}while(0);if((c[(c[z>>2]|0)+4>>2]|0)>(c[(c[K>>2]|0)+8536>>2]|0)){R=Fd((c[E>>2]|0)+4260|0)|0;c[M>>2]=(c[M>>2]|0)+R}if((c[(c[z>>2]|0)+4>>2]|0)==1?(c[(c[K>>2]|0)+8536>>2]|0)==2:0)l=(c[(c[z>>2]|0)+12>>2]|0)==((c[(c[E>>2]|0)+2316>>2]|0)*1e3|0);else l=0;c[O>>2]=l&1;b:do if(!(c[(c[E>>2]|0)+2388>>2]|0)){c[I>>2]=0;c:while(1){if((c[I>>2]|0)>=(c[(c[z>>2]|0)+4>>2]|0))break b;do if(!(c[(c[z>>2]|0)+16>>2]|0)){c[(c[E>>2]|0)+((c[I>>2]|0)*4260|0)+2392>>2]=1;c[(c[E>>2]|0)+((c[I>>2]|0)*4260|0)+2324>>2]=2}else{if((c[(c[z>>2]|0)+16>>2]|0)==10){c[(c[E>>2]|0)+((c[I>>2]|0)*4260|0)+2392>>2]=1;c[(c[E>>2]|0)+((c[I>>2]|0)*4260|0)+2324>>2]=2;break}if((c[(c[z>>2]|0)+16>>2]|0)==20){c[(c[E>>2]|0)+((c[I>>2]|0)*4260|0)+2392>>2]=1;c[(c[E>>2]|0)+((c[I>>2]|0)*4260|0)+2324>>2]=4;break}if((c[(c[z>>2]|0)+16>>2]|0)==40){c[(c[E>>2]|0)+((c[I>>2]|0)*4260|0)+2392>>2]=2;c[(c[E>>2]|0)+((c[I>>2]|0)*4260|0)+2324>>2]=4;break}if((c[(c[z>>2]|0)+16>>2]|0)!=60){q=23;break c}c[(c[E>>2]|0)+((c[I>>2]|0)*4260|0)+2392>>2]=3;c[(c[E>>2]|0)+((c[I>>2]|0)*4260|0)+2324>>2]=4}while(0);c[m>>2]=(c[(c[z>>2]|0)+12>>2]>>10)+1;if((c[m>>2]|0)!=8&(c[m>>2]|0)!=12&(c[m>>2]|0)!=16){q=25;break}R=Od((c[E>>2]|0)+((c[I>>2]|0)*4260|0)|0,c[m>>2]|0,c[(c[z>>2]|0)+8>>2]|0)|0;c[M>>2]=(c[M>>2]|0)+R;c[I>>2]=(c[I>>2]|0)+1}if((q|0)==23){c[y>>2]=-203;R=c[y>>2]|0;i=P;return R|0}else if((q|0)==25){c[y>>2]=-200;R=c[y>>2]|0;i=P;return R|0}}while(0);do if((c[c[z>>2]>>2]|0)==2?(c[(c[z>>2]|0)+4>>2]|0)==2:0){if((c[(c[K>>2]|0)+8532>>2]|0)!=1?(c[(c[K>>2]|0)+8536>>2]|0)!=1:0)break;c[(c[K>>2]|0)+8520>>2]=0;c[(c[K>>2]|0)+8520+8>>2]=0;pj((c[E>>2]|0)+4260+2432|0,(c[E>>2]|0)+2432|0,300)|0}while(0);c[(c[K>>2]|0)+8532>>2]=c[c[z>>2]>>2];c[(c[K>>2]|0)+8536>>2]=c[(c[z>>2]|0)+4>>2];if((c[(c[z>>2]|0)+8>>2]|0)<=48e3?(c[(c[z>>2]|0)+8>>2]|0)>=8e3:0){d:do if((c[A>>2]|0)!=1?(c[(c[E>>2]|0)+2388>>2]|0)==0:0){c[I>>2]=0;while(1){if((c[I>>2]|0)>=(c[(c[z>>2]|0)+4>>2]|0))break;c[G>>2]=0;while(1){R=(c[G>>2]|0)<(c[(c[E>>2]|0)+((c[I>>2]|0)*4260|0)+2392>>2]|0);l=dc(c[r>>2]|0,1)|0;if(!R)break;c[(c[E>>2]|0)+((c[I>>2]|0)*4260|0)+2404+(c[G>>2]<<2)>>2]=l;c[G>>2]=(c[G>>2]|0)+1}c[(c[E>>2]|0)+((c[I>>2]|0)*4260|0)+2416>>2]=l;c[I>>2]=(c[I>>2]|0)+1}c[I>>2]=0;while(1){if((c[I>>2]|0)>=(c[(c[z>>2]|0)+4>>2]|0))break;R=(c[E>>2]|0)+((c[I>>2]|0)*4260|0)+2420|0;c[R>>2]=0;c[R+4>>2]=0;c[R+8>>2]=0;e:do if(c[(c[E>>2]|0)+((c[I>>2]|0)*4260|0)+2416>>2]|0){if((c[(c[E>>2]|0)+((c[I>>2]|0)*4260|0)+2392>>2]|0)==1){c[(c[E>>2]|0)+((c[I>>2]|0)*4260|0)+2420>>2]=1;break}c[n>>2]=(ec(c[r>>2]|0,c[17836+((c[(c[E>>2]|0)+((c[I>>2]|0)*4260|0)+2392>>2]|0)-2<<2)>>2]|0,8)|0)+1;c[G>>2]=0;while(1){if((c[G>>2]|0)>=(c[(c[E>>2]|0)+((c[I>>2]|0)*4260|0)+2392>>2]|0))break e;c[(c[E>>2]|0)+((c[I>>2]|0)*4260|0)+2420+(c[G>>2]<<2)>>2]=c[n>>2]>>c[G>>2]&1;c[G>>2]=(c[G>>2]|0)+1}}while(0);c[I>>2]=(c[I>>2]|0)+1}if(!(c[A>>2]|0)){c[G>>2]=0;while(1){if((c[G>>2]|0)>=(c[(c[E>>2]|0)+2392>>2]|0))break d;c[I>>2]=0;while(1){l=c[G>>2]|0;if((c[I>>2]|0)>=(c[(c[z>>2]|0)+4>>2]|0))break;if(c[(c[E>>2]|0)+((c[I>>2]|0)*4260|0)+2420+(l<<2)>>2]|0){do if((c[I>>2]|0)==0?(c[(c[z>>2]|0)+4>>2]|0)==2:0){xg(c[r>>2]|0,u);if(c[(c[E>>2]|0)+4260+2420+(c[G>>2]<<2)>>2]|0)break;yg(c[r>>2]|0,F)}while(0);do if((c[G>>2]|0)>0){if(!(c[(c[E>>2]|0)+((c[I>>2]|0)*4260|0)+2420+((c[G>>2]|0)-1<<2)>>2]|0)){q=64;break}c[o>>2]=2}else q=64;while(0);if((q|0)==64){q=0;c[o>>2]=0}Md((c[E>>2]|0)+((c[I>>2]|0)*4260|0)|0,c[r>>2]|0,c[G>>2]|0,1,c[o>>2]|0);Nd(c[r>>2]|0,p,a[(c[E>>2]|0)+((c[I>>2]|0)*4260|0)+2736+29>>0]|0,a[(c[E>>2]|0)+((c[I>>2]|0)*4260|0)+2736+30>>0]|0,c[(c[E>>2]|0)+((c[I>>2]|0)*4260|0)+2328>>2]|0)}c[I>>2]=(c[I>>2]|0)+1}c[G>>2]=l+1}}}while(0);f:do if((c[(c[z>>2]|0)+4>>2]|0)==2){do if(c[A>>2]|0){if((c[A>>2]|0)==2?(c[(c[E>>2]|0)+2420+(c[(c[E>>2]|0)+2388>>2]<<2)>>2]|0)==1:0)break;c[I>>2]=0;while(1){if((c[I>>2]|0)>=2)break f;c[u+(c[I>>2]<<2)>>2]=b[(c[K>>2]|0)+8520+(c[I>>2]<<1)>>1];c[I>>2]=(c[I>>2]|0)+1}}while(0);xg(c[r>>2]|0,u);if(!((c[A>>2]|0)==0?!(c[(c[E>>2]|0)+4260+2404+(c[(c[E>>2]|0)+2388>>2]<<2)>>2]|0):0))q=74;do if((q|0)==74){if((c[A>>2]|0)==2?(c[(c[E>>2]|0)+4260+2420+(c[(c[E>>2]|0)+2388>>2]<<2)>>2]|0)==0:0)break;c[F>>2]=0;break f}while(0);yg(c[r>>2]|0,F)}while(0);if(((c[F>>2]|0)==0?(c[(c[z>>2]|0)+4>>2]|0)==2:0)?(c[(c[K>>2]|0)+8540>>2]|0)==1:0){oj((c[K>>2]|0)+4260+1348|0,0,960)|0;l=(c[K>>2]|0)+4260+1284|0;e=l+64|0;do{c[l>>2]=0;l=l+4|0}while((l|0)<(e|0));c[(c[K>>2]|0)+4260+2308>>2]=100;a[(c[K>>2]|0)+4260+2312>>0]=10;c[(c[K>>2]|0)+4260+4164>>2]=0;c[(c[K>>2]|0)+4260+2376>>2]=1}R=_(c[(c[z>>2]|0)+12>>2]|0,c[(c[z>>2]|0)+4>>2]|0)|0;c[x>>2]=(R|0)<(_(c[(c[z>>2]|0)+8>>2]|0,c[c[z>>2]>>2]|0)|0)&1;if(c[x>>2]|0)l=1;else l=_(c[(c[z>>2]|0)+4>>2]|0,(c[(c[E>>2]|0)+2328>>2]|0)+2|0)|0;c[D>>2]=ia()|0;e=i;i=i+((1*(l<<1)|0)+15&-16)|0;if(c[x>>2]|0){c[N>>2]=c[B>>2];c[N+4>>2]=(c[B>>2]|0)+(c[(c[E>>2]|0)+2328>>2]<<1)+4}else{c[N>>2]=e;c[N+4>>2]=e+(c[(c[E>>2]|0)+2328>>2]<<1)+4}if(!(c[A>>2]|0))c[w>>2]=((c[F>>2]|0)!=0^1)&1;else{if(c[(c[K>>2]|0)+8540>>2]|0)if((c[A>>2]|0)==2?(c[(c[z>>2]|0)+4>>2]|0)==2:0)l=(c[(c[E>>2]|0)+4260+2420+(c[(c[E>>2]|0)+4260+2388>>2]<<2)>>2]|0)==1;else l=0;else l=1;c[w>>2]=l&1}c[I>>2]=0;while(1){if((c[I>>2]|0)>=(c[(c[z>>2]|0)+4>>2]|0))break;if((c[I>>2]|0)==0|(c[w>>2]|0)!=0){c[t>>2]=(c[(c[E>>2]|0)+2388>>2]|0)-(c[I>>2]|0);g:do if((c[t>>2]|0)<=0)c[v>>2]=0;else{if((c[A>>2]|0)==2){c[v>>2]=c[(c[E>>2]|0)+((c[I>>2]|0)*4260|0)+2420+((c[t>>2]|0)-1<<2)>>2]|0?2:0;break}do if((c[I>>2]|0)>0){if(!(c[(c[K>>2]|0)+8540>>2]|0))break;c[v>>2]=1;break g}while(0);c[v>>2]=2}while(0);R=Kd((c[E>>2]|0)+((c[I>>2]|0)*4260|0)|0,c[r>>2]|0,(c[N+(c[I>>2]<<2)>>2]|0)+4|0,J,c[A>>2]|0,c[v>>2]|0,c[s>>2]|0)|0;c[M>>2]=(c[M>>2]|0)+R}else oj((c[N+(c[I>>2]<<2)>>2]|0)+4|0,0,c[J>>2]<<1|0)|0;R=(c[E>>2]|0)+((c[I>>2]|0)*4260|0)+2388|0;c[R>>2]=(c[R>>2]|0)+1;c[I>>2]=(c[I>>2]|0)+1}if((c[c[z>>2]>>2]|0)==2?(c[(c[z>>2]|0)+4>>2]|0)==2:0)uf((c[K>>2]|0)+8520|0,c[N>>2]|0,c[N+4>>2]|0,u,c[(c[E>>2]|0)+2316>>2]|0,c[J>>2]|0);else{R=c[N>>2]|0;Q=(c[K>>2]|0)+8520+4|0;b[R>>1]=b[Q>>1]|0;b[R+2>>1]=b[Q+2>>1]|0;R=(c[K>>2]|0)+8520+4|0;Q=(c[N>>2]|0)+(c[J>>2]<<1)|0;b[R>>1]=b[Q>>1]|0;b[R+2>>1]=b[Q+2>>1]|0}R=_(c[J>>2]|0,c[(c[z>>2]|0)+8>>2]|0)|0;c[c[C>>2]>>2]=(R|0)/(((c[(c[E>>2]|0)+2316>>2]&65535)<<16>>16)*1e3|0)|0;if((c[c[z>>2]>>2]|0)==2)l=c[c[C>>2]>>2]|0;else l=1;e=i;i=i+((1*(l<<1)|0)+15&-16)|0;if((c[c[z>>2]>>2]|0)==2)c[L>>2]=e;else c[L>>2]=c[B>>2];if(c[x>>2]|0)l=_(c[(c[z>>2]|0)+4>>2]|0,(c[(c[E>>2]|0)+2328>>2]|0)+2|0)|0;else l=1;e=i;i=i+((1*(l<<1)|0)+15&-16)|0;if(c[x>>2]|0){R=(_(c[(c[z>>2]|0)+4>>2]|0,(c[(c[E>>2]|0)+2328>>2]|0)+2|0)|0)<<1;pj(e|0,c[B>>2]|0,R+0|0)|0;c[N>>2]=e;c[N+4>>2]=e+(c[(c[E>>2]|0)+2328>>2]<<1)+4}c[I>>2]=0;while(1){l=c[z>>2]|0;if((c[c[z>>2]>>2]|0)<(c[(c[z>>2]|0)+4>>2]|0))l=c[l>>2]|0;else l=c[l+4>>2]|0;if((c[I>>2]|0)>=(l|0))break;R=jg((c[E>>2]|0)+((c[I>>2]|0)*4260|0)+2432|0,c[L>>2]|0,(c[N+(c[I>>2]<<2)>>2]|0)+2|0,c[J>>2]|0)|0;c[M>>2]=(c[M>>2]|0)+R;h:do if((c[c[z>>2]>>2]|0)==2){c[G>>2]=0;while(1){if((c[G>>2]|0)>=(c[c[C>>2]>>2]|0))break h;b[(c[B>>2]|0)+((c[I>>2]|0)+(c[G>>2]<<1)<<1)>>1]=b[(c[L>>2]|0)+(c[G>>2]<<1)>>1]|0;c[G>>2]=(c[G>>2]|0)+1}}while(0);c[I>>2]=(c[I>>2]|0)+1}i:do if((c[c[z>>2]>>2]|0)==2){if((c[(c[z>>2]|0)+4>>2]|0)!=1)break;if(c[O>>2]|0){R=jg((c[E>>2]|0)+4260+2432|0,c[L>>2]|0,(c[N>>2]|0)+2|0,c[J>>2]|0)|0;c[M>>2]=(c[M>>2]|0)+R;c[G>>2]=0;while(1){if((c[G>>2]|0)>=(c[c[C>>2]>>2]|0))break i;b[(c[B>>2]|0)+(1+(c[G>>2]<<1)<<1)>>1]=b[(c[L>>2]|0)+(c[G>>2]<<1)>>1]|0;c[G>>2]=(c[G>>2]|0)+1}}else{c[G>>2]=0;while(1){if((c[G>>2]|0)>=(c[c[C>>2]>>2]|0))break i;b[(c[B>>2]|0)+(1+(c[G>>2]<<1)<<1)>>1]=b[(c[B>>2]|0)+(0+(c[G>>2]<<1)<<1)>>1]|0;c[G>>2]=(c[G>>2]|0)+1}}}while(0);if((c[(c[E>>2]|0)+4164>>2]|0)==2){c[H>>2]=c[4402];c[H+4>>2]=c[4403];c[H+8>>2]=c[4404];R=_(c[(c[E>>2]|0)+2308>>2]|0,c[H+((c[(c[E>>2]|0)+2316>>2]|0)-8>>2<<2)>>2]|0)|0;c[(c[z>>2]|0)+20>>2]=R}else c[(c[z>>2]|0)+20>>2]=0;j:do if((c[A>>2]|0)==1){c[G>>2]=0;while(1){if((c[G>>2]|0)>=(c[(c[K>>2]|0)+8536>>2]|0))break j;a[(c[K>>2]|0)+((c[G>>2]|0)*4260|0)+2312>>0]=10;c[G>>2]=(c[G>>2]|0)+1}}else c[(c[K>>2]|0)+8540>>2]=c[F>>2];while(0);c[y>>2]=c[M>>2];na(c[D>>2]|0);R=c[y>>2]|0;i=P;return R|0}c[M>>2]=-200;c[y>>2]=c[M>>2];R=c[y>>2]|0;i=P;return R|0}function Sd(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;e=d+4|0;b=d;c[e>>2]=a;c[b>>2]=0;c[c[e>>2]>>2]=24568;i=d;return c[b>>2]|0}function Td(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;e=l+20|0;f=l+16|0;g=l+12|0;j=l+8|0;h=l+4|0;k=l;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;c[k>>2]=0;c[j>>2]=c[e>>2];oj(c[j>>2]|0,0,24568)|0;c[h>>2]=0;while(1){if((c[h>>2]|0)>=2)break;d=xf((c[j>>2]|0)+((c[h>>2]|0)*12240|0)|0,c[f>>2]|0)|0;c[k>>2]=(c[k>>2]|0)+d;c[h>>2]=(c[h>>2]|0)+1}c[(c[j>>2]|0)+24544>>2]=1;c[(c[j>>2]|0)+24548>>2]=1;j=Ud(c[e>>2]|0,c[g>>2]|0)|0;c[k>>2]=(c[k>>2]|0)+j;i=l;return c[k>>2]|0}function Ud(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;g=i;i=i+32|0;j=g+16|0;d=g+12|0;e=g+8|0;f=g+4|0;h=g;c[j>>2]=a;c[d>>2]=b;c[e>>2]=0;c[h>>2]=c[j>>2];c[f>>2]=c[h>>2];c[c[d>>2]>>2]=c[(c[h>>2]|0)+24544>>2];c[(c[d>>2]|0)+4>>2]=c[(c[h>>2]|0)+24548>>2];c[(c[d>>2]|0)+8>>2]=c[(c[f>>2]|0)+4580>>2];c[(c[d>>2]|0)+12>>2]=c[(c[f>>2]|0)+4588>>2];c[(c[d>>2]|0)+16>>2]=c[(c[f>>2]|0)+4592>>2];c[(c[d>>2]|0)+20>>2]=c[(c[f>>2]|0)+4596>>2];c[(c[d>>2]|0)+24>>2]=c[(c[f>>2]|0)+4636>>2];c[(c[d>>2]|0)+28>>2]=c[(c[f>>2]|0)+4632>>2];c[(c[d>>2]|0)+32>>2]=c[(c[f>>2]|0)+4640>>2];c[(c[d>>2]|0)+36>>2]=c[(c[f>>2]|0)+4648>>2];c[(c[d>>2]|0)+40>>2]=c[(c[f>>2]|0)+6120>>2];c[(c[d>>2]|0)+44>>2]=c[(c[f>>2]|0)+6108>>2];c[(c[d>>2]|0)+48>>2]=c[(c[f>>2]|0)+4708>>2];c[(c[d>>2]|0)+68>>2]=((c[(c[f>>2]|0)+4600>>2]&65535)<<16>>16)*1e3;c[(c[d>>2]|0)+72>>2]=c[(c[f>>2]|0)+4560>>2];if((c[(c[f>>2]|0)+4600>>2]|0)!=16){h=0;h=h&1;j=c[d>>2]|0;j=j+76|0;c[j>>2]=h;j=c[e>>2]|0;i=g;return j|0}h=(c[(c[f>>2]|0)+16+12>>2]|0)==0;h=h&1;j=c[d>>2]|0;j=j+76|0;c[j>>2]=h;j=c[e>>2]|0;i=g;return j|0}function Vd(d,e,f,g,h,j,k){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0;Y=i;i=i+176|0;P=Y+156|0;Z=Y+152|0;Q=Y+148|0;o=Y+144|0;p=Y+140|0;q=Y+136|0;r=Y+132|0;R=Y+128|0;T=Y+124|0;B=Y+120|0;F=Y+116|0;A=Y+112|0;X=Y+108|0;W=Y+104|0;V=Y+100|0;I=Y+96|0;J=Y+92|0;G=Y+88|0;H=Y+84|0;m=Y+80|0;K=Y+76|0;u=Y+72|0;t=Y+64|0;w=Y+56|0;s=Y+52|0;L=Y+48|0;U=Y+44|0;n=Y+40|0;z=Y+36|0;M=Y+32|0;l=Y+28|0;S=Y+24|0;D=Y+20|0;C=Y+160|0;x=Y+16|0;v=Y+12|0;E=Y+8|0;N=Y+4|0;y=Y;c[Z>>2]=d;c[Q>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;c[r>>2]=j;c[R>>2]=k;c[X>>2]=0;c[W>>2]=0;c[V>>2]=0;c[H>>2]=0;c[U>>2]=c[Z>>2];if(c[(c[Q>>2]|0)+64>>2]|0){c[(c[U>>2]|0)+4696>>2]=1;c[(c[U>>2]|0)+12240+4696>>2]=1}c[(c[U>>2]|0)+12240+5780>>2]=0;c[(c[U>>2]|0)+5780>>2]=0;Z=vf(c[Q>>2]|0)|0;c[V>>2]=Z;if(Z|0){c[P>>2]=c[V>>2];Z=c[P>>2]|0;i=Y;return Z|0}c[(c[Q>>2]|0)+84>>2]=0;if((c[(c[Q>>2]|0)+4>>2]|0)>(c[(c[U>>2]|0)+24548>>2]|0)?(Z=xf((c[U>>2]|0)+12240|0,c[(c[U>>2]|0)+5124>>2]|0)|0,c[V>>2]=(c[V>>2]|0)+Z,c[(c[U>>2]|0)+24480>>2]=0,c[(c[U>>2]|0)+24480+8>>2]=0,c[(c[U>>2]|0)+24480+12>>2]=0,c[(c[U>>2]|0)+24480+12+4>>2]=1,c[(c[U>>2]|0)+24480+12+8>>2]=0,c[(c[U>>2]|0)+24480+12+12>>2]=1,b[(c[U>>2]|0)+24480+30>>1]=0,b[(c[U>>2]|0)+24480+28>>1]=16384,(c[(c[U>>2]|0)+24544>>2]|0)==2):0){pj((c[U>>2]|0)+12240+5808|0,(c[U>>2]|0)+5808|0,300)|0;Z=(c[U>>2]|0)+12240|0;f=c[U>>2]|0;c[Z>>2]=c[f>>2];c[Z+4>>2]=c[f+4>>2]}if((c[(c[Q>>2]|0)+24>>2]|0)!=(c[(c[U>>2]|0)+4636>>2]|0))e=1;else e=(c[(c[U>>2]|0)+24548>>2]|0)!=(c[(c[Q>>2]|0)+4>>2]|0);c[n>>2]=e&1;c[(c[U>>2]|0)+24544>>2]=c[c[Q>>2]>>2];c[(c[U>>2]|0)+24548>>2]=c[(c[Q>>2]|0)+4>>2];c[G>>2]=((c[p>>2]|0)*100|0)/(c[(c[Q>>2]|0)+8>>2]|0)|0;c[M>>2]=(c[G>>2]|0)>1?c[G>>2]>>1:1;c[z>>2]=0;e=c[G>>2]|0;a:do if(!(c[R>>2]|0)){Z=_(e,c[(c[Q>>2]|0)+8>>2]|0)|0;if((c[p>>2]|0)<0?1:(Z|0)!=((c[p>>2]|0)*100|0)){c[P>>2]=-101;Z=c[P>>2]|0;i=Y;return Z|0}if(((c[p>>2]|0)*1e3|0)>(_(c[(c[Q>>2]|0)+24>>2]|0,c[(c[Q>>2]|0)+8>>2]|0)|0)){c[P>>2]=-101;Z=c[P>>2]|0;i=Y;return Z|0}}else{if((e|0)!=1){c[P>>2]=-101;Z=c[P>>2]|0;i=Y;return Z|0}c[T>>2]=0;while(1){if((c[T>>2]|0)>=(c[(c[Q>>2]|0)+4>>2]|0))break;c[V>>2]=xf((c[U>>2]|0)+((c[T>>2]|0)*12240|0)|0,c[(c[U>>2]|0)+((c[T>>2]|0)*12240|0)+5124>>2]|0)|0;c[T>>2]=(c[T>>2]|0)+1}c[X>>2]=c[(c[Q>>2]|0)+24>>2];c[(c[Q>>2]|0)+24>>2]=10;c[W>>2]=c[(c[Q>>2]|0)+36>>2];c[(c[Q>>2]|0)+36>>2]=0;c[T>>2]=0;while(1){if((c[T>>2]|0)>=(c[(c[Q>>2]|0)+4>>2]|0))break a;c[(c[U>>2]|0)+((c[T>>2]|0)*12240|0)+4700>>2]=0;c[(c[U>>2]|0)+((c[T>>2]|0)*12240|0)+4712>>2]=1;c[T>>2]=(c[T>>2]|0)+1}}while(0);c[u>>2]=c[(c[Q>>2]|0)+28>>2]>>(c[(c[Q>>2]|0)+4>>2]|0)-1;c[T>>2]=0;while(1){if((c[T>>2]|0)>=(c[(c[Q>>2]|0)+4>>2]|0))break;if((c[T>>2]|0)==1)e=c[(c[U>>2]|0)+4600>>2]|0;else e=0;c[l>>2]=e;Z=yf((c[U>>2]|0)+((c[T>>2]|0)*12240|0)|0,c[Q>>2]|0,c[u>>2]|0,c[(c[U>>2]|0)+24560>>2]|0,c[T>>2]|0,c[l>>2]|0)|0;c[V>>2]=Z;if(Z|0){O=28;break}b:do if(c[n>>2]|0?1:(c[(c[U>>2]|0)+((c[T>>2]|0)*12240|0)+4696>>2]|0)!=0){c[B>>2]=0;while(1){if((c[B>>2]|0)>=(c[(c[U>>2]|0)+5776>>2]|0))break b;c[(c[U>>2]|0)+((c[T>>2]|0)*12240|0)+4756+(c[B>>2]<<2)>>2]=0;c[B>>2]=(c[B>>2]|0)+1}}while(0);c[(c[U>>2]|0)+((c[T>>2]|0)*12240|0)+6112>>2]=c[(c[U>>2]|0)+((c[T>>2]|0)*12240|0)+6108>>2];c[T>>2]=(c[T>>2]|0)+1}if((O|0)==28){c[P>>2]=c[V>>2];Z=c[P>>2]|0;i=Y;return Z|0}c[J>>2]=_((c[G>>2]|0)*10|0,c[(c[U>>2]|0)+4600>>2]|0)|0;Z=_(c[J>>2]|0,c[(c[U>>2]|0)+4580>>2]|0)|0;c[m>>2]=(Z|0)/((c[(c[U>>2]|0)+4600>>2]|0)*1e3|0)|0;Z=c[m>>2]|0;c[S>>2]=ia()|0;d=i;i=i+((1*(Z<<1)|0)+15&-16)|0;while(1){c[I>>2]=(c[(c[U>>2]|0)+4608>>2]|0)-(c[(c[U>>2]|0)+5772>>2]|0);c[I>>2]=(c[I>>2]|0)<(c[J>>2]|0)?c[I>>2]|0:c[J>>2]|0;Z=_(c[I>>2]|0,c[(c[U>>2]|0)+4580>>2]|0)|0;c[H>>2]=(Z|0)/((c[(c[U>>2]|0)+4600>>2]|0)*1e3|0)|0;if((c[c[Q>>2]>>2]|0)==2?(c[(c[Q>>2]|0)+4>>2]|0)==2:0){c[D>>2]=c[(c[U>>2]|0)+5780>>2];c[T>>2]=0;while(1){if((c[T>>2]|0)>=(c[H>>2]|0))break;b[d+(c[T>>2]<<1)>>1]=b[(c[o>>2]|0)+(c[T>>2]<<1<<1)>>1]|0;c[T>>2]=(c[T>>2]|0)+1}if((c[D>>2]|0)==0?(c[(c[U>>2]|0)+24552>>2]|0)==1:0)pj((c[U>>2]|0)+12240+5808|0,(c[U>>2]|0)+5808|0,300)|0;Z=jg((c[U>>2]|0)+5808|0,(c[U>>2]|0)+5128+((c[(c[U>>2]|0)+5772>>2]|0)+2<<1)|0,d,c[H>>2]|0)|0;c[V>>2]=(c[V>>2]|0)+Z;Z=(c[U>>2]|0)+5772|0;c[Z>>2]=(c[Z>>2]|0)+(c[I>>2]|0);c[I>>2]=(c[(c[U>>2]|0)+12240+4608>>2]|0)-(c[(c[U>>2]|0)+12240+5772>>2]|0);if((c[I>>2]|0)<(_((c[G>>2]|0)*10|0,c[(c[U>>2]|0)+12240+4600>>2]|0)|0))e=c[I>>2]|0;else e=_((c[G>>2]|0)*10|0,c[(c[U>>2]|0)+12240+4600>>2]|0)|0;c[I>>2]=e;c[T>>2]=0;while(1){if((c[T>>2]|0)>=(c[H>>2]|0))break;b[d+(c[T>>2]<<1)>>1]=b[(c[o>>2]|0)+((c[T>>2]<<1)+1<<1)>>1]|0;c[T>>2]=(c[T>>2]|0)+1}Z=jg((c[U>>2]|0)+12240+5808|0,(c[U>>2]|0)+12240+5128+((c[(c[U>>2]|0)+12240+5772>>2]|0)+2<<1)|0,d,c[H>>2]|0)|0;c[V>>2]=(c[V>>2]|0)+Z;Z=(c[U>>2]|0)+12240+5772|0;c[Z>>2]=(c[Z>>2]|0)+(c[I>>2]|0)}else O=49;do if((O|0)==49){O=0;if((c[c[Q>>2]>>2]|0)==2?(c[(c[Q>>2]|0)+4>>2]|0)==1:0){c[T>>2]=0;while(1){if((c[T>>2]|0)>=(c[H>>2]|0))break;c[L>>2]=(b[(c[o>>2]|0)+(c[T>>2]<<1<<1)>>1]|0)+(b[(c[o>>2]|0)+((c[T>>2]<<1)+1<<1)>>1]|0);b[d+(c[T>>2]<<1)>>1]=(c[L>>2]>>1)+(c[L>>2]&1);c[T>>2]=(c[T>>2]|0)+1}Z=jg((c[U>>2]|0)+5808|0,(c[U>>2]|0)+5128+((c[(c[U>>2]|0)+5772>>2]|0)+2<<1)|0,d,c[H>>2]|0)|0;c[V>>2]=(c[V>>2]|0)+Z;c:do if((c[(c[U>>2]|0)+24552>>2]|0)==2?(c[(c[U>>2]|0)+5780>>2]|0)==0:0){Z=jg((c[U>>2]|0)+12240+5808|0,(c[U>>2]|0)+12240+5128+((c[(c[U>>2]|0)+12240+5772>>2]|0)+2<<1)|0,d,c[H>>2]|0)|0;c[V>>2]=(c[V>>2]|0)+Z;c[T>>2]=0;while(1){if((c[T>>2]|0)>=(c[(c[U>>2]|0)+4608>>2]|0))break c;b[(c[U>>2]|0)+5128+((c[(c[U>>2]|0)+5772>>2]|0)+(c[T>>2]|0)+2<<1)>>1]=(b[(c[U>>2]|0)+5128+((c[(c[U>>2]|0)+5772>>2]|0)+(c[T>>2]|0)+2<<1)>>1]|0)+(b[(c[U>>2]|0)+12240+5128+((c[(c[U>>2]|0)+12240+5772>>2]|0)+(c[T>>2]|0)+2<<1)>>1]|0)>>1;c[T>>2]=(c[T>>2]|0)+1}}while(0);Z=(c[U>>2]|0)+5772|0;c[Z>>2]=(c[Z>>2]|0)+(c[I>>2]|0);break}pj(d|0,c[o>>2]|0,c[H>>2]<<1|0)|0;Z=jg((c[U>>2]|0)+5808|0,(c[U>>2]|0)+5128+((c[(c[U>>2]|0)+5772>>2]|0)+2<<1)|0,d,c[H>>2]|0)|0;c[V>>2]=(c[V>>2]|0)+Z;Z=(c[U>>2]|0)+5772|0;c[Z>>2]=(c[Z>>2]|0)+(c[I>>2]|0)}while(0);Z=_(c[H>>2]|0,c[c[Q>>2]>>2]|0)|0;c[o>>2]=(c[o>>2]|0)+(Z<<1);c[p>>2]=(c[p>>2]|0)-(c[H>>2]|0);c[(c[U>>2]|0)+24560>>2]=0;if((c[(c[U>>2]|0)+5772>>2]|0)<(c[(c[U>>2]|0)+4608>>2]|0))break;if(!(c[R>>2]|0?1:(c[(c[U>>2]|0)+5780>>2]|0)!=0)){a[C>>0]=0;a[C+1>>0]=0;a[C>>0]=256-(256>>(_((c[(c[U>>2]|0)+5776>>2]|0)+1|0,c[(c[Q>>2]|0)+4>>2]|0)|0));qc(c[q>>2]|0,0,C,8);c[T>>2]=0;while(1){if((c[T>>2]|0)>=(c[(c[Q>>2]|0)+4>>2]|0))break;c[s>>2]=0;c[B>>2]=0;while(1){if((c[B>>2]|0)>=(c[(c[U>>2]|0)+((c[T>>2]|0)*12240|0)+5776>>2]|0))break;c[s>>2]=c[s>>2]|c[(c[U>>2]|0)+((c[T>>2]|0)*12240|0)+4756+(c[B>>2]<<2)>>2]<<c[B>>2];c[B>>2]=(c[B>>2]|0)+1}a[(c[U>>2]|0)+((c[T>>2]|0)*12240|0)+4755>>0]=(c[s>>2]|0)>0?1:0;if(c[s>>2]|0?(c[(c[U>>2]|0)+((c[T>>2]|0)*12240|0)+5776>>2]|0)>1:0)qc(c[q>>2]|0,(c[s>>2]|0)-1|0,c[17836+((c[(c[U>>2]|0)+((c[T>>2]|0)*12240|0)+5776>>2]|0)-2<<2)>>2]|0,8);c[T>>2]=(c[T>>2]|0)+1}c[B>>2]=0;while(1){Z=(c[B>>2]|0)<(c[(c[U>>2]|0)+5776>>2]|0);c[T>>2]=0;if(!Z)break;while(1){e=c[B>>2]|0;if((c[T>>2]|0)>=(c[(c[Q>>2]|0)+4>>2]|0))break;if(c[(c[U>>2]|0)+((c[T>>2]|0)*12240|0)+4756+(e<<2)>>2]|0){if(((c[T>>2]|0)==0?(c[(c[Q>>2]|0)+4>>2]|0)==2:0)?(zg(c[q>>2]|0,(c[U>>2]|0)+24480+34+((c[B>>2]|0)*6|0)|0),(c[(c[U>>2]|0)+12240+4756+(c[B>>2]<<2)>>2]|0)==0):0)Ag(c[q>>2]|0,a[(c[U>>2]|0)+24480+52+(c[B>>2]|0)>>0]|0);if((c[B>>2]|0)>0?c[(c[U>>2]|0)+((c[T>>2]|0)*12240|0)+4756+((c[B>>2]|0)-1<<2)>>2]|0:0)c[x>>2]=2;else c[x>>2]=0;Xd((c[U>>2]|0)+((c[T>>2]|0)*12240|0)|0,c[q>>2]|0,c[B>>2]|0,1,c[x>>2]|0);Yd(c[q>>2]|0,a[(c[U>>2]|0)+((c[T>>2]|0)*12240|0)+6132+((c[B>>2]|0)*36|0)+29>>0]|0,a[(c[U>>2]|0)+((c[T>>2]|0)*12240|0)+6132+((c[B>>2]|0)*36|0)+30>>0]|0,(c[U>>2]|0)+((c[T>>2]|0)*12240|0)+6240+((c[B>>2]|0)*320|0)|0,c[(c[U>>2]|0)+((c[T>>2]|0)*12240|0)+4608>>2]|0)}c[T>>2]=(c[T>>2]|0)+1}c[B>>2]=e+1}while(1){if((c[T>>2]|0)>=(c[(c[Q>>2]|0)+4>>2]|0))break;Z=(c[U>>2]|0)+((c[T>>2]|0)*12240|0)+4756|0;c[Z>>2]=0;c[Z+4>>2]=0;c[Z+8>>2]=0;c[T>>2]=(c[T>>2]|0)+1}Z=Wd(c[q>>2]|0)|0;c[(c[U>>2]|0)+24536>>2]=Z}ff(c[U>>2]|0);c[F>>2]=(_(c[(c[Q>>2]|0)+28>>2]|0,c[(c[Q>>2]|0)+24>>2]|0)|0)/1e3|0;if(!(c[R>>2]|0))c[F>>2]=(c[F>>2]|0)-(c[(c[U>>2]|0)+24536>>2]|0);c[F>>2]=(c[F>>2]|0)/(c[(c[U>>2]|0)+5776>>2]|0)|0;e=(c[F>>2]&65535)<<16>>16;if((c[(c[Q>>2]|0)+24>>2]|0)==10)c[u>>2]=e*100;else c[u>>2]=e*50;c[u>>2]=(c[u>>2]|0)-(((c[(c[U>>2]|0)+24540>>2]|0)*1e3|0)/500|0);if((c[R>>2]|0)==0?(c[(c[U>>2]|0)+5780>>2]|0)>0:0){Z=Wd(c[q>>2]|0)|0;c[v>>2]=Z-(c[(c[U>>2]|0)+24536>>2]|0)-(_(c[F>>2]|0,c[(c[U>>2]|0)+5780>>2]|0)|0);c[u>>2]=(c[u>>2]|0)-(((c[v>>2]|0)*1e3|0)/500|0)}e=c[u>>2]|0;do if((c[(c[Q>>2]|0)+28>>2]|0)>5e3)if((e|0)>(c[(c[Q>>2]|0)+28>>2]|0)){e=c[(c[Q>>2]|0)+28>>2]|0;break}else{e=(c[u>>2]|0)<5e3?5e3:c[u>>2]|0;break}else if((e|0)<=5e3)if((c[u>>2]|0)<(c[(c[Q>>2]|0)+28>>2]|0)){e=c[(c[Q>>2]|0)+28>>2]|0;break}else{e=c[u>>2]|0;break}else e=5e3;while(0);c[u>>2]=e;e=c[U>>2]|0;if((c[(c[Q>>2]|0)+4>>2]|0)==2){qf(e+24480|0,(c[U>>2]|0)+5128+4|0,(c[U>>2]|0)+12240+5128+4|0,(c[U>>2]|0)+24480+34+((c[(c[U>>2]|0)+5780>>2]|0)*6|0)|0,(c[U>>2]|0)+24480+52+(c[(c[U>>2]|0)+5780>>2]|0)|0,t,c[u>>2]|0,c[(c[U>>2]|0)+4556>>2]|0,c[(c[Q>>2]|0)+56>>2]|0,c[(c[U>>2]|0)+4600>>2]|0,c[(c[U>>2]|0)+4608>>2]|0);e=c[U>>2]|0;if(!(a[(c[U>>2]|0)+24480+52+(c[(c[U>>2]|0)+5780>>2]|0)>>0]|0)){if((c[e+24564>>2]|0)==1){Z=(c[U>>2]|0)+12240+7200|0;c[Z>>2]=0;c[Z+4>>2]=0;c[Z+8>>2]=0;c[Z+12>>2]=0;oj((c[U>>2]|0)+12240+7216|0,0,2140)|0;oj((c[U>>2]|0)+12240+144|0,0,4380)|0;Z=(c[U>>2]|0)+12240+4524|0;c[Z>>2]=0;c[Z+4>>2]=0;c[Z+8>>2]=0;c[Z+12>>2]=0;c[Z+16>>2]=0;c[Z+20>>2]=0;c[Z+24>>2]=0;c[Z+28>>2]=0;Z=(c[U>>2]|0)+12240+16|0;c[Z>>2]=0;c[Z+4>>2]=0;c[(c[U>>2]|0)+12240+4568>>2]=100;c[(c[U>>2]|0)+12240+144+4356>>2]=100;a[(c[U>>2]|0)+12240+7200>>0]=10;a[(c[U>>2]|0)+12240+4565>>0]=0;c[(c[U>>2]|0)+12240+144+4372>>2]=65536;c[(c[U>>2]|0)+12240+4696>>2]=1}Mg((c[U>>2]|0)+12240|0)}else a[(c[U>>2]|0)+12240+4752+(c[e+5780>>2]|0)>>0]=0;if((c[R>>2]|0)==0?(zg(c[q>>2]|0,(c[U>>2]|0)+24480+34+((c[(c[U>>2]|0)+5780>>2]|0)*6|0)|0),(a[(c[U>>2]|0)+12240+4752+(c[(c[U>>2]|0)+5780>>2]|0)>>0]|0)==0):0)Ag(c[q>>2]|0,a[(c[U>>2]|0)+24480+52+(c[(c[U>>2]|0)+5780>>2]|0)>>0]|0)}else{c[e+5128>>2]=c[(c[U>>2]|0)+24480+4>>2];Z=(c[U>>2]|0)+24480+4|0;n=(c[U>>2]|0)+5128+(c[(c[U>>2]|0)+4608>>2]<<1)|0;b[Z>>1]=b[n>>1]|0;b[Z+2>>1]=b[n+2>>1]|0}Mg(c[U>>2]|0);c[T>>2]=0;while(1){if((c[T>>2]|0)>=(c[(c[Q>>2]|0)+4>>2]|0))break;c[E>>2]=c[(c[Q>>2]|0)+52>>2];do if(!((c[M>>2]|0)==2&(c[z>>2]|0)==0)){if((c[M>>2]|0)==3){if(!(c[z>>2]|0)){c[E>>2]=(c[E>>2]<<1|0)/5|0;break}if((c[z>>2]|0)!=1)break;c[E>>2]=((c[E>>2]|0)*3|0)/4|0}}else c[E>>2]=((c[E>>2]|0)*3|0)/5|0;while(0);if(c[(c[Q>>2]|0)+48>>2]|0)e=(c[z>>2]|0)==((c[M>>2]|0)-1|0);else e=0;c[N>>2]=e&1;do if((c[(c[Q>>2]|0)+4>>2]|0)==1)c[w>>2]=c[u>>2];else{c[w>>2]=c[t+(c[T>>2]<<2)>>2];if(c[T>>2]|0)break;if((c[t+4>>2]|0)<=0)break;c[N>>2]=0;c[E>>2]=(c[E>>2]|0)-((c[(c[Q>>2]|0)+52>>2]|0)/(c[M>>2]<<1|0)|0)}while(0);if((c[w>>2]|0)>0){wf((c[U>>2]|0)+((c[T>>2]|0)*12240|0)|0,c[w>>2]|0)|0;d:do if(((c[(c[U>>2]|0)+5780>>2]|0)-(c[T>>2]|0)|0)<=0)c[y>>2]=0;else{do if((c[T>>2]|0)>0){if(!(c[(c[U>>2]|0)+24564>>2]|0))break;c[y>>2]=1;break d}while(0);c[y>>2]=2}while(0);c[V>>2]=Ng((c[U>>2]|0)+((c[T>>2]|0)*12240|0)|0,c[r>>2]|0,c[q>>2]|0,c[y>>2]|0,c[E>>2]|0,c[N>>2]|0)|0}c[(c[U>>2]|0)+((c[T>>2]|0)*12240|0)+4700>>2]=0;c[(c[U>>2]|0)+((c[T>>2]|0)*12240|0)+5772>>2]=0;Z=(c[U>>2]|0)+((c[T>>2]|0)*12240|0)+5780|0;c[Z>>2]=(c[Z>>2]|0)+1;c[T>>2]=(c[T>>2]|0)+1}c[(c[U>>2]|0)+24564>>2]=a[(c[U>>2]|0)+24480+52+((c[(c[U>>2]|0)+5780>>2]|0)-1)>>0];do if((c[c[r>>2]>>2]|0)>0?(c[(c[U>>2]|0)+5780>>2]|0)==(c[(c[U>>2]|0)+5776>>2]|0):0){c[A>>2]=0;c[T>>2]=0;while(1){if((c[T>>2]|0)>=(c[(c[Q>>2]|0)+4>>2]|0))break;c[B>>2]=0;while(1){Z=(c[B>>2]|0)<(c[(c[U>>2]|0)+((c[T>>2]|0)*12240|0)+5776>>2]|0);c[A>>2]=c[A>>2]<<1;if(!Z)break;c[A>>2]=c[A>>2]|a[(c[U>>2]|0)+((c[T>>2]|0)*12240|0)+4752+(c[B>>2]|0)>>0];c[B>>2]=(c[B>>2]|0)+1}c[A>>2]=c[A>>2]|a[(c[U>>2]|0)+((c[T>>2]|0)*12240|0)+4755>>0];c[T>>2]=(c[T>>2]|0)+1}if(!(c[R>>2]|0))uc(c[q>>2]|0,c[A>>2]|0,_((c[(c[U>>2]|0)+5776>>2]|0)+1|0,c[(c[Q>>2]|0)+4>>2]|0)|0);do if(c[(c[U>>2]|0)+6112>>2]|0){if((c[(c[Q>>2]|0)+4>>2]|0)!=1?(c[(c[U>>2]|0)+12240+6112>>2]|0)==0:0)break;c[c[r>>2]>>2]=0}while(0);n=(c[U>>2]|0)+24540|0;c[n>>2]=(c[n>>2]|0)+(c[c[r>>2]>>2]<<3);n=(_(c[(c[Q>>2]|0)+28>>2]|0,c[(c[Q>>2]|0)+24>>2]|0)|0)/1e3|0;Z=(c[U>>2]|0)+24540|0;c[Z>>2]=(c[Z>>2]|0)-n;do if((c[(c[U>>2]|0)+24540>>2]|0)>1e4)e=1e4;else{if((c[(c[U>>2]|0)+24540>>2]|0)<0){e=0;break}e=c[(c[U>>2]|0)+24540>>2]|0}while(0);c[(c[U>>2]|0)+24540>>2]=e;c[K>>2]=13+(0+(((c[(c[U>>2]|0)+24556>>2]&65535)<<16>>16)*3188>>16));e=(c[U>>2]|0)+24560|0;if((c[(c[U>>2]|0)+4556>>2]|0)<(c[K>>2]|0)){c[e>>2]=1;c[(c[U>>2]|0)+24556>>2]=0;break}else{c[e>>2]=0;Z=(c[U>>2]|0)+24556|0;c[Z>>2]=(c[Z>>2]|0)+(c[(c[Q>>2]|0)+24>>2]|0);break}}while(0);if(!(c[p>>2]|0))break;c[z>>2]=(c[z>>2]|0)+1}c[(c[U>>2]|0)+24552>>2]=c[(c[Q>>2]|0)+4>>2];c[(c[Q>>2]|0)+72>>2]=c[(c[U>>2]|0)+24560>>2];if((c[(c[U>>2]|0)+4600>>2]|0)==16)e=(c[(c[U>>2]|0)+16+12>>2]|0)==0;else e=0;c[(c[Q>>2]|0)+76>>2]=e&1;c[(c[Q>>2]|0)+68>>2]=((c[(c[U>>2]|0)+4600>>2]&65535)<<16>>16)*1e3;if(c[(c[Q>>2]|0)+56>>2]|0)e=0;else e=b[(c[U>>2]|0)+24480+28>>1]|0;c[(c[Q>>2]|0)+80>>2]=e;e:do if(c[R>>2]|0){c[(c[Q>>2]|0)+24>>2]=c[X>>2];c[(c[Q>>2]|0)+36>>2]=c[W>>2];c[T>>2]=0;while(1){if((c[T>>2]|0)>=(c[(c[Q>>2]|0)+4>>2]|0))break e;c[(c[U>>2]|0)+((c[T>>2]|0)*12240|0)+4700>>2]=0;c[(c[U>>2]|0)+((c[T>>2]|0)*12240|0)+4712>>2]=0;c[T>>2]=(c[T>>2]|0)+1}}while(0);c[P>>2]=c[V>>2];na(c[S>>2]|0);Z=c[P>>2]|0;i=Y;return Z|0}function Wd(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=(c[(c[d>>2]|0)+20>>2]|0)-(32-(aa(c[(c[d>>2]|0)+28>>2]|0)|0))|0;i=b;return a|0}function Xd(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=i;i=i+112|0;n=y+48|0;o=y+44|0;j=y+40|0;k=y+36|0;p=y+32|0;t=y+28|0;u=y+24|0;l=y+20|0;s=y+16|0;q=y+12|0;r=y+56|0;m=y+88|0;x=y+8|0;v=y+4|0;w=y;c[n>>2]=d;c[o>>2]=e;c[j>>2]=f;c[k>>2]=g;c[p>>2]=h;if(c[k>>2]|0)c[x>>2]=(c[n>>2]|0)+6132+((c[j>>2]|0)*36|0);else c[x>>2]=(c[n>>2]|0)+4768;c[l>>2]=(a[(c[x>>2]|0)+29>>0]<<1)+(a[(c[x>>2]|0)+30>>0]|0);j=c[o>>2]|0;f=c[l>>2]|0;if((c[k>>2]|0)!=0|(c[l>>2]|0)>=2)qc(j,f-2|0,29020,8);else qc(j,f,29024,8);j=c[o>>2]|0;f=a[c[x>>2]>>0]|0;if((c[p>>2]|0)==2)qc(j,f,26771,8);else{qc(j,f>>3,26747+(a[(c[x>>2]|0)+29>>0]<<3)|0,8);qc(c[o>>2]|0,a[c[x>>2]>>0]&7,29049,8)}c[t>>2]=1;while(1){j=c[o>>2]|0;if((c[t>>2]|0)>=(c[(c[n>>2]|0)+4604>>2]|0))break;qc(j,a[(c[x>>2]|0)+(c[t>>2]|0)>>0]|0,26771,8);c[t>>2]=(c[t>>2]|0)+1}l=_(a[(c[x>>2]|0)+29>>0]>>1,b[c[(c[n>>2]|0)+4724>>2]>>1]|0)|0;qc(j,a[(c[x>>2]|0)+8>>0]|0,(c[(c[(c[n>>2]|0)+4724>>2]|0)+12>>2]|0)+l|0,8);nf(r,m,c[(c[n>>2]|0)+4724>>2]|0,a[(c[x>>2]|0)+8>>0]|0);c[t>>2]=0;while(1){if((c[t>>2]|0)>=(b[(c[(c[n>>2]|0)+4724>>2]|0)+2>>1]|0))break;do if((a[(c[x>>2]|0)+8+((c[t>>2]|0)+1)>>0]|0)<4){j=c[o>>2]|0;f=c[t>>2]|0;if((a[(c[x>>2]|0)+8+((c[t>>2]|0)+1)>>0]|0)<=-4){qc(j,0,(c[(c[(c[n>>2]|0)+4724>>2]|0)+24>>2]|0)+(b[r+(f<<1)>>1]|0)|0,8);qc(c[o>>2]|0,0-(a[(c[x>>2]|0)+8+((c[t>>2]|0)+1)>>0]|0)-4|0,29057,8);break}else{qc(j,(a[(c[x>>2]|0)+8+(f+1)>>0]|0)+4|0,(c[(c[(c[n>>2]|0)+4724>>2]|0)+24>>2]|0)+(b[r+(c[t>>2]<<1)>>1]|0)|0,8);break}}else{qc(c[o>>2]|0,8,(c[(c[(c[n>>2]|0)+4724>>2]|0)+24>>2]|0)+(b[r+(c[t>>2]<<1)>>1]|0)|0,8);qc(c[o>>2]|0,(a[(c[x>>2]|0)+8+((c[t>>2]|0)+1)>>0]|0)-4|0,29057,8)}while(0);c[t>>2]=(c[t>>2]|0)+1}if((c[(c[n>>2]|0)+4604>>2]|0)==4)qc(c[o>>2]|0,a[(c[x>>2]|0)+31>>0]|0,29026,8);if((a[(c[x>>2]|0)+29>>0]|0)!=2){v=c[x>>2]|0;v=v+29|0;v=a[v>>0]|0;v=v<<24>>24;w=c[n>>2]|0;w=w+5800|0;c[w>>2]=v;w=c[o>>2]|0;x=c[x>>2]|0;x=x+34|0;x=a[x>>0]|0;x=x<<24>>24;qc(w,x,29034,8);i=y;return}c[s>>2]=1;if((c[p>>2]|0)==2?(c[(c[n>>2]|0)+5800>>2]|0)==2:0){c[q>>2]=(b[(c[x>>2]|0)+26>>1]|0)-(b[(c[n>>2]|0)+5804>>1]|0);if((c[q>>2]|0)<-8|(c[q>>2]|0)>11)c[q>>2]=0;else{c[q>>2]=(c[q>>2]|0)+9;c[s>>2]=0}qc(c[o>>2]|0,c[q>>2]|0,29096,8)}if(c[s>>2]|0){c[v>>2]=(b[(c[x>>2]|0)+26>>1]|0)/(c[(c[n>>2]|0)+4600>>2]>>1|0)|0;c[w>>2]=(b[(c[x>>2]|0)+26>>1]|0)-(_((c[v>>2]&65535)<<16>>16,(c[(c[n>>2]|0)+4600>>2]>>1&65535)<<16>>16)|0);qc(c[o>>2]|0,c[v>>2]|0,29064,8);qc(c[o>>2]|0,c[w>>2]|0,c[(c[n>>2]|0)+4716>>2]|0,8)}b[(c[n>>2]|0)+5804>>1]=b[(c[x>>2]|0)+26>>1]|0;qc(c[o>>2]|0,a[(c[x>>2]|0)+28>>0]|0,c[(c[n>>2]|0)+4720>>2]|0,8);qc(c[o>>2]|0,a[(c[x>>2]|0)+32>>0]|0,26812,8);c[u>>2]=0;while(1){if((c[u>>2]|0)>=(c[(c[n>>2]|0)+4604>>2]|0))break;qc(c[o>>2]|0,a[(c[x>>2]|0)+4+(c[u>>2]|0)>>0]|0,c[17620+(a[(c[x>>2]|0)+32>>0]<<2)>>2]|0,8);c[u>>2]=(c[u>>2]|0)+1}if(c[p>>2]|0){v=c[x>>2]|0;v=v+29|0;v=a[v>>0]|0;v=v<<24>>24;w=c[n>>2]|0;w=w+5800|0;c[w>>2]=v;w=c[o>>2]|0;x=c[x>>2]|0;x=x+34|0;x=a[x>>0]|0;x=x<<24>>24;qc(w,x,29034,8);i=y;return}qc(c[o>>2]|0,a[(c[x>>2]|0)+33>>0]|0,29017,8);v=c[x>>2]|0;v=v+29|0;v=a[v>>0]|0;v=v<<24>>24;w=c[n>>2]|0;w=w+5800|0;c[w>>2]=v;w=c[o>>2]|0;x=c[x>>2]|0;x=x+34|0;x=a[x>>0]|0;x=x<<24>>24;qc(w,x,29034,8);i=y;return}function Yd(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+128|0;r=F+116|0;s=F+112|0;t=F+108|0;u=F+104|0;v=F+100|0;z=F+96|0;C=F+92|0;B=F+88|0;A=F+84|0;y=F+80|0;D=F+76|0;o=F+72|0;j=F+68|0;x=F+64|0;l=F+60|0;p=F+56|0;n=F+24|0;k=F+16|0;E=F+12|0;q=F+8|0;m=F+4|0;w=F;c[r>>2]=b;c[s>>2]=e;c[t>>2]=f;c[u>>2]=g;c[v>>2]=h;c[j>>2]=0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;c[n+16>>2]=0;c[n+20>>2]=0;c[n+24>>2]=0;c[n+28>>2]=0;c[A>>2]=c[v>>2]>>4;if((c[A>>2]<<4|0)<(c[v>>2]|0)){c[A>>2]=(c[A>>2]|0)+1;h=(c[u>>2]|0)+(c[v>>2]|0)|0;b=h+16|0;do{a[h>>0]=0;h=h+1|0}while((h|0)<(b|0))}e=c[A>>2]<<4;c[w>>2]=ia()|0;b=i;i=i+((1*(e<<2)|0)+15&-16)|0;c[z>>2]=0;while(1){if((c[z>>2]|0)>=(c[A>>2]<<4|0))break;e=a[(c[u>>2]|0)+((c[z>>2]|0)+0)>>0]|0;c[b+((c[z>>2]|0)+0<<2)>>2]=(a[(c[u>>2]|0)+((c[z>>2]|0)+0)>>0]|0)>0?e:0-e|0;e=a[(c[u>>2]|0)+((c[z>>2]|0)+1)>>0]|0;c[b+((c[z>>2]|0)+1<<2)>>2]=(a[(c[u>>2]|0)+((c[z>>2]|0)+1)>>0]|0)>0?e:0-e|0;e=a[(c[u>>2]|0)+((c[z>>2]|0)+2)>>0]|0;c[b+((c[z>>2]|0)+2<<2)>>2]=(a[(c[u>>2]|0)+((c[z>>2]|0)+2)>>0]|0)>0?e:0-e|0;e=a[(c[u>>2]|0)+((c[z>>2]|0)+3)>>0]|0;c[b+((c[z>>2]|0)+3<<2)>>2]=(a[(c[u>>2]|0)+((c[z>>2]|0)+3)>>0]|0)>0?e:0-e|0;c[z>>2]=(c[z>>2]|0)+4}g=i;i=i+((1*(c[A>>2]<<2)|0)+15&-16)|0;f=i;i=i+((1*(c[A>>2]<<2)|0)+15&-16)|0;c[k>>2]=b;c[z>>2]=0;while(1){if((c[z>>2]|0)>=(c[A>>2]|0))break;c[f+(c[z>>2]<<2)>>2]=0;a:while(1){c[o>>2]=Zd(n,c[k>>2]|0,d[29177]|0,8)|0;e=Zd(n,n,d[29178]|0,4)|0;c[o>>2]=(c[o>>2]|0)+e;e=Zd(n,n,d[29179]|0,2)|0;c[o>>2]=(c[o>>2]|0)+e;e=Zd(g+(c[z>>2]<<2)|0,n,d[29180]|0,1)|0;c[o>>2]=(c[o>>2]|0)+e;if(!(c[o>>2]|0))break;e=f+(c[z>>2]<<2)|0;c[e>>2]=(c[e>>2]|0)+1;c[C>>2]=0;while(1){if((c[C>>2]|0)>=16)continue a;c[(c[k>>2]|0)+(c[C>>2]<<2)>>2]=c[(c[k>>2]|0)+(c[C>>2]<<2)>>2]>>1;c[C>>2]=(c[C>>2]|0)+1}}c[k>>2]=(c[k>>2]|0)+64;c[z>>2]=(c[z>>2]|0)+1}c[l>>2]=2147483647;c[C>>2]=0;while(1){if((c[C>>2]|0)>=9)break;c[m>>2]=29361+((c[C>>2]|0)*18|0);c[p>>2]=d[29541+((c[s>>2]>>1)*9|0)+(c[C>>2]|0)>>0];c[z>>2]=0;while(1){if((c[z>>2]|0)>=(c[A>>2]|0))break;if((c[f+(c[z>>2]<<2)>>2]|0)>0)c[p>>2]=(c[p>>2]|0)+(d[(c[m>>2]|0)+17>>0]|0);else c[p>>2]=(c[p>>2]|0)+(d[(c[m>>2]|0)+(c[g+(c[z>>2]<<2)>>2]|0)>>0]|0);c[z>>2]=(c[z>>2]|0)+1}if((c[p>>2]|0)<(c[l>>2]|0)){c[l>>2]=c[p>>2];c[j>>2]=c[C>>2]}c[C>>2]=(c[C>>2]|0)+1}qc(c[r>>2]|0,c[j>>2]|0,29523+((c[s>>2]>>1)*9|0)|0,8);c[q>>2]=29181+((c[j>>2]|0)*18|0);c[z>>2]=0;while(1){if((c[z>>2]|0)>=(c[A>>2]|0))break;h=c[r>>2]|0;if(!(c[f+(c[z>>2]<<2)>>2]|0))qc(h,c[g+(c[z>>2]<<2)>>2]|0,c[q>>2]|0,8);else{qc(h,17,c[q>>2]|0,8);c[C>>2]=0;while(1){h=c[r>>2]|0;if((c[C>>2]|0)>=((c[f+(c[z>>2]<<2)>>2]|0)-1|0))break;qc(h,17,29343,8);c[C>>2]=(c[C>>2]|0)+1}qc(h,c[g+(c[z>>2]<<2)>>2]|0,29343,8)}c[z>>2]=(c[z>>2]|0)+1}c[z>>2]=0;while(1){if((c[z>>2]|0)>=(c[A>>2]|0))break;if((c[g+(c[z>>2]<<2)>>2]|0)>0)Pe(c[r>>2]|0,b+(c[z>>2]<<4<<2)|0);c[z>>2]=(c[z>>2]|0)+1}c[z>>2]=0;while(1){if((c[z>>2]|0)>=(c[A>>2]|0))break;b:do if((c[f+(c[z>>2]<<2)>>2]|0)>0){c[E>>2]=(c[u>>2]|0)+(c[z>>2]<<4);c[D>>2]=(c[f+(c[z>>2]<<2)>>2]|0)-1;c[C>>2]=0;while(1){if((c[C>>2]|0)>=16)break b;q=a[(c[E>>2]|0)+(c[C>>2]|0)>>0]|0;c[x>>2]=(((a[(c[E>>2]|0)+(c[C>>2]|0)>>0]|0)>0?q:0-q|0)&255)<<24>>24;c[B>>2]=c[D>>2];while(1){h=c[x>>2]|0;if((c[B>>2]|0)<=0)break;c[y>>2]=h>>c[B>>2]&1;qc(c[r>>2]|0,c[y>>2]|0,29015,8);c[B>>2]=(c[B>>2]|0)+-1}c[y>>2]=h&1;qc(c[r>>2]|0,c[y>>2]|0,29015,8);c[C>>2]=(c[C>>2]|0)+1}}while(0);c[z>>2]=(c[z>>2]|0)+1}Dd(c[r>>2]|0,c[u>>2]|0,c[v>>2]|0,c[s>>2]|0,c[t>>2]|0,g);na(c[w>>2]|0);i=F;return}function Zd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;m=n+24|0;f=n+20|0;g=n+16|0;h=n+12|0;j=n+8|0;k=n+4|0;l=n;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;c[k>>2]=0;while(1){if((c[k>>2]|0)>=(c[j>>2]|0)){f=6;break}c[l>>2]=(c[(c[g>>2]|0)+(c[k>>2]<<1<<2)>>2]|0)+(c[(c[g>>2]|0)+((c[k>>2]<<1)+1<<2)>>2]|0);if((c[l>>2]|0)>(c[h>>2]|0)){f=4;break}c[(c[f>>2]|0)+(c[k>>2]<<2)>>2]=c[l>>2];c[k>>2]=(c[k>>2]|0)+1}if((f|0)==4){c[m>>2]=1;m=c[m>>2]|0;i=n;return m|0}else if((f|0)==6){c[m>>2]=0;m=c[m>>2]|0;i=n;return m|0}return 0}function _d(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;h=p+24|0;j=p+20|0;k=p+16|0;l=p+12|0;m=p+8|0;o=p+4|0;n=p;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;c[m>>2]=g;c[o>>2]=0;while(1){if((c[o>>2]|0)>=(c[m>>2]|0))break;Sf(c[(c[j>>2]|0)+(c[o>>2]<<2)>>2]|0)|0;e=0+((((Sf(c[(c[j>>2]|0)+(c[o>>2]<<2)>>2]|0)|0)-2090&65535)<<16>>16)*2251>>16)&255;a[(c[h>>2]|0)+(c[o>>2]|0)>>0]=e;if((a[(c[h>>2]|0)+(c[o>>2]|0)>>0]|0)<(a[c[k>>2]>>0]|0)){e=(c[h>>2]|0)+(c[o>>2]|0)|0;a[e>>0]=(a[e>>0]|0)+1<<24>>24}if((a[(c[h>>2]|0)+(c[o>>2]|0)>>0]|0)<=63)if((a[(c[h>>2]|0)+(c[o>>2]|0)>>0]|0)<0)f=0;else f=a[(c[h>>2]|0)+(c[o>>2]|0)>>0]|0;else f=63;a[(c[h>>2]|0)+(c[o>>2]|0)>>0]=f;if((c[o>>2]|0)==0&(c[l>>2]|0)==0){f=a[(c[h>>2]|0)+(c[o>>2]|0)>>0]|0;do if(((a[c[k>>2]>>0]|0)+-4|0)>63){if((f|0)>((a[c[k>>2]>>0]|0)+-4|0)){f=(a[c[k>>2]>>0]|0)+-4|0;break}if((a[(c[h>>2]|0)+(c[o>>2]|0)>>0]|0)<63)f=63;else f=a[(c[h>>2]|0)+(c[o>>2]|0)>>0]|0}else if((f|0)<=63)if((a[(c[h>>2]|0)+(c[o>>2]|0)>>0]|0)<((a[c[k>>2]>>0]|0)+-4|0)){f=(a[c[k>>2]>>0]|0)+-4|0;break}else{f=a[(c[h>>2]|0)+(c[o>>2]|0)>>0]|0;break}else f=63;while(0);a[(c[h>>2]|0)+(c[o>>2]|0)>>0]=f;a[c[k>>2]>>0]=a[(c[h>>2]|0)+(c[o>>2]|0)>>0]|0}else{a[(c[h>>2]|0)+(c[o>>2]|0)>>0]=(a[(c[h>>2]|0)+(c[o>>2]|0)>>0]|0)-(a[c[k>>2]>>0]|0);c[n>>2]=8+(a[c[k>>2]>>0]|0);if((a[(c[h>>2]|0)+(c[o>>2]|0)>>0]|0)>(c[n>>2]|0))a[(c[h>>2]|0)+(c[o>>2]|0)>>0]=(c[n>>2]|0)+((a[(c[h>>2]|0)+(c[o>>2]|0)>>0]|0)-(c[n>>2]|0)+1>>1);if((a[(c[h>>2]|0)+(c[o>>2]|0)>>0]|0)<=36)if((a[(c[h>>2]|0)+(c[o>>2]|0)>>0]|0)<-4)f=-4;else f=a[(c[h>>2]|0)+(c[o>>2]|0)>>0]|0;else f=36;a[(c[h>>2]|0)+(c[o>>2]|0)>>0]=f;f=a[(c[h>>2]|0)+(c[o>>2]|0)>>0]|0;if((a[(c[h>>2]|0)+(c[o>>2]|0)>>0]|0)>(c[n>>2]|0)){e=c[k>>2]|0;a[e>>0]=(a[e>>0]|0)+((f<<1)-(c[n>>2]|0))}else{e=c[k>>2]|0;a[e>>0]=(a[e>>0]|0)+f}e=(c[h>>2]|0)+(c[o>>2]|0)|0;a[e>>0]=(a[e>>0]|0)+4}e=Wf($d(((a[c[k>>2]>>0]<<16>>16)*29|0)+((a[c[k>>2]>>0]<<16>>16)*7281>>16)+2090|0,3967)|0)|0;c[(c[j>>2]|0)+(c[o>>2]<<2)>>2]=e;c[o>>2]=(c[o>>2]|0)+1}i=p;return}function $d(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f+4|0;d=f;c[e>>2]=a;c[d>>2]=b;i=f;return ((c[e>>2]|0)<(c[d>>2]|0)?c[e>>2]|0:c[d>>2]|0)|0}function ae(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+32|0;h=q+28|0;j=q+24|0;k=q+20|0;l=q+16|0;m=q+12|0;p=q+8|0;o=q+4|0;n=q;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;c[m>>2]=g;c[p>>2]=0;while(1){if((c[p>>2]|0)>=(c[m>>2]|0))break;f=a[(c[j>>2]|0)+(c[p>>2]|0)>>0]|0;do if(!((c[p>>2]|0)==0&(c[l>>2]|0)==0)){c[o>>2]=f+-4;c[n>>2]=8+(a[c[k>>2]>>0]|0);f=c[o>>2]|0;if((c[o>>2]|0)>(c[n>>2]|0)){e=c[k>>2]|0;a[e>>0]=(a[e>>0]|0)+((f<<1)-(c[n>>2]|0));break}else{e=c[k>>2]|0;a[e>>0]=(a[e>>0]|0)+f;break}}else{e=(be(f,(a[c[k>>2]>>0]|0)-16|0)|0)&255;a[c[k>>2]>>0]=e}while(0);if((a[c[k>>2]>>0]|0)<=63)if((a[c[k>>2]>>0]|0)<0)f=0;else f=a[c[k>>2]>>0]|0;else f=63;a[c[k>>2]>>0]=f;e=Wf($d(((a[c[k>>2]>>0]<<16>>16)*29|0)+((a[c[k>>2]>>0]<<16>>16)*7281>>16)+2090|0,3967)|0)|0;c[(c[h>>2]|0)+(c[p>>2]<<2)>>2]=e;c[p>>2]=(c[p>>2]|0)+1}i=q;return}function be(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f+4|0;d=f;c[e>>2]=a;c[d>>2]=b;i=f;return ((c[e>>2]|0)>(c[d>>2]|0)?c[e>>2]|0:c[d>>2]|0)|0}function ce(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;e=j+12|0;f=j+8|0;h=j+4|0;g=j;c[e>>2]=b;c[f>>2]=d;c[g>>2]=0;c[h>>2]=0;while(1){if((c[h>>2]|0)>=(c[f>>2]|0))break;c[g>>2]=(a[(c[e>>2]|0)+(c[h>>2]|0)>>0]|0)+(c[g>>2]<<8);c[h>>2]=(c[h>>2]|0)+1}i=j;return c[g>>2]|0}function de(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;h=o+20|0;j=o+16|0;k=o+12|0;l=o+8|0;m=o+4|0;n=o;c[h>>2]=a;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;c[m>>2]=g;c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[m>>2]|0))break;a=(b[(c[j>>2]|0)+(c[n>>2]<<1)>>1]|0)+((_(((b[(c[k>>2]|0)+(c[n>>2]<<1)>>1]|0)-(b[(c[j>>2]|0)+(c[n>>2]<<1)>>1]|0)&65535)<<16>>16,(c[l>>2]&65535)<<16>>16)|0)>>2)&65535;b[(c[h>>2]|0)+(c[n>>2]<<1)>>1]=a;c[n>>2]=(c[n>>2]|0)+1}i=o;return}function ee(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+48|0;g=m+36|0;h=m+32|0;j=m+28|0;l=m+16|0;k=m+8|0;e=m+4|0;f=m;c[g>>2]=a;c[h>>2]=b;c[j>>2]=d;c[e>>2]=0;c[f>>2]=0;if(!(c[(c[g>>2]|0)+12>>2]|0)){i=m;return}c[e>>2]=256-(c[(c[g>>2]|0)+8>>2]|0)<<10;c[f>>2]=c[e>>2]>>16;c[e>>2]=(c[e>>2]|0)-(c[f>>2]<<16);fe(l,k,c[f>>2]|0,c[e>>2]|0);if(((c[(c[g>>2]|0)+8>>2]|0)+(c[(c[g>>2]|0)+12>>2]|0)|0)<=256)if(((c[(c[g>>2]|0)+8>>2]|0)+(c[(c[g>>2]|0)+12>>2]|0)|0)<0)e=0;else e=(c[(c[g>>2]|0)+8>>2]|0)+(c[(c[g>>2]|0)+12>>2]|0)|0;else e=256;c[(c[g>>2]|0)+8>>2]=e;Nf(c[h>>2]|0,l,k,c[g>>2]|0,c[h>>2]|0,c[j>>2]|0,1);i=m;return}function fe(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;f=m+20|0;g=m+16|0;h=m+12|0;j=m+8|0;l=m+4|0;k=m;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;if((c[h>>2]|0)>=4){l=c[f>>2]|0;c[l>>2]=c[4473];c[l+4>>2]=c[4474];c[l+8>>2]=c[4475];l=c[g>>2]|0;c[l>>2]=c[4484];c[l+4>>2]=c[4485];i=m;return}if((c[j>>2]|0)<=0){l=c[f>>2]|0;k=17844+((c[h>>2]|0)*12|0)|0;c[l>>2]=c[k>>2];c[l+4>>2]=c[k+4>>2];c[l+8>>2]=c[k+8>>2];l=c[g>>2]|0;k=17904+(c[h>>2]<<3)|0;c[l>>2]=c[k>>2];c[l+4>>2]=c[k+4>>2];i=m;return}d=(c[j>>2]|0)<32768;c[l>>2]=0;if(d){while(1){if((c[l>>2]|0)>=3)break;d=_((c[17844+(((c[h>>2]|0)+1|0)*12|0)+(c[l>>2]<<2)>>2]|0)-(c[17844+((c[h>>2]|0)*12|0)+(c[l>>2]<<2)>>2]|0)>>16,(c[j>>2]&65535)<<16>>16)|0;d=(c[17844+((c[h>>2]|0)*12|0)+(c[l>>2]<<2)>>2]|0)+(d+((_((c[17844+(((c[h>>2]|0)+1|0)*12|0)+(c[l>>2]<<2)>>2]|0)-(c[17844+((c[h>>2]|0)*12|0)+(c[l>>2]<<2)>>2]|0)&65535,(c[j>>2]&65535)<<16>>16)|0)>>16))|0;c[(c[f>>2]|0)+(c[l>>2]<<2)>>2]=d;c[l>>2]=(c[l>>2]|0)+1}c[k>>2]=0;while(1){if((c[k>>2]|0)>=2)break;l=_((c[17904+((c[h>>2]|0)+1<<3)+(c[k>>2]<<2)>>2]|0)-(c[17904+(c[h>>2]<<3)+(c[k>>2]<<2)>>2]|0)>>16,(c[j>>2]&65535)<<16>>16)|0;l=(c[17904+(c[h>>2]<<3)+(c[k>>2]<<2)>>2]|0)+(l+((_((c[17904+((c[h>>2]|0)+1<<3)+(c[k>>2]<<2)>>2]|0)-(c[17904+(c[h>>2]<<3)+(c[k>>2]<<2)>>2]|0)&65535,(c[j>>2]&65535)<<16>>16)|0)>>16))|0;c[(c[g>>2]|0)+(c[k>>2]<<2)>>2]=l;c[k>>2]=(c[k>>2]|0)+1}i=m;return}else{while(1){if((c[l>>2]|0)>=3)break;d=_((c[17844+(((c[h>>2]|0)+1|0)*12|0)+(c[l>>2]<<2)>>2]|0)-(c[17844+((c[h>>2]|0)*12|0)+(c[l>>2]<<2)>>2]|0)>>16,((c[j>>2]|0)-65536&65535)<<16>>16)|0;d=(c[17844+(((c[h>>2]|0)+1|0)*12|0)+(c[l>>2]<<2)>>2]|0)+(d+((_((c[17844+(((c[h>>2]|0)+1|0)*12|0)+(c[l>>2]<<2)>>2]|0)-(c[17844+((c[h>>2]|0)*12|0)+(c[l>>2]<<2)>>2]|0)&65535,((c[j>>2]|0)-65536&65535)<<16>>16)|0)>>16))|0;c[(c[f>>2]|0)+(c[l>>2]<<2)>>2]=d;c[l>>2]=(c[l>>2]|0)+1}c[k>>2]=0;while(1){if((c[k>>2]|0)>=2)break;l=_((c[17904+((c[h>>2]|0)+1<<3)+(c[k>>2]<<2)>>2]|0)-(c[17904+(c[h>>2]<<3)+(c[k>>2]<<2)>>2]|0)>>16,((c[j>>2]|0)-65536&65535)<<16>>16)|0;l=(c[17904+((c[h>>2]|0)+1<<3)+(c[k>>2]<<2)>>2]|0)+(l+((_((c[17904+((c[h>>2]|0)+1<<3)+(c[k>>2]<<2)>>2]|0)-(c[17904+(c[h>>2]<<3)+(c[k>>2]<<2)>>2]|0)&65535,((c[j>>2]|0)-65536&65535)<<16>>16)|0)>>16))|0;c[(c[g>>2]|0)+(c[k>>2]<<2)>>2]=l;c[k>>2]=(c[k>>2]|0)+1}i=m;return}}function ge(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+144|0;m=t+24|0;h=t+20|0;n=t+16|0;r=t+12|0;l=t+128|0;j=t+96|0;s=t+64|0;q=t+32|0;p=t+8|0;o=t+4|0;k=t;c[m>>2]=e;c[h>>2]=f;c[n>>2]=g;g=_(a[c[h>>2]>>0]|0,b[(c[n>>2]|0)+2>>1]|0)|0;c[k>>2]=(c[(c[n>>2]|0)+8>>2]|0)+g;c[r>>2]=0;while(1){if((c[r>>2]|0)>=(b[(c[n>>2]|0)+2>>1]|0))break;b[(c[m>>2]|0)+(c[r>>2]<<1)>>1]=d[(c[k>>2]|0)+(c[r>>2]|0)>>0]<<7;c[r>>2]=(c[r>>2]|0)+1}nf(j,l,c[n>>2]|0,a[c[h>>2]>>0]|0);he(s,(c[h>>2]|0)+1|0,l,b[(c[n>>2]|0)+4>>1]|0,b[(c[n>>2]|0)+2>>1]|0);fg(q,c[m>>2]|0,b[(c[n>>2]|0)+2>>1]|0);c[r>>2]=0;while(1){if((c[r>>2]|0)>=(b[(c[n>>2]|0)+2>>1]|0))break;c[p>>2]=ie(b[q+(c[r>>2]<<1)>>1]<<16)|0;c[o>>2]=(b[(c[m>>2]|0)+(c[r>>2]<<1)>>1]|0)+((b[s+(c[r>>2]<<1)>>1]<<14|0)/(c[p>>2]|0)|0);if((c[o>>2]|0)>32767)h=32767;else h=(c[o>>2]|0)<0?0:c[o>>2]|0;b[(c[m>>2]|0)+(c[r>>2]<<1)>>1]=h;c[r>>2]=(c[r>>2]|0)+1}cg(c[m>>2]|0,c[(c[n>>2]|0)+32>>2]|0,b[(c[n>>2]|0)+2>>1]|0);i=t;return}function he(e,f,g,h,j){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;r=i;i=i+32|0;k=r+24|0;l=r+20|0;m=r+16|0;n=r+12|0;s=r+28|0;o=r+8|0;p=r+4|0;q=r;c[k>>2]=e;c[l>>2]=f;c[m>>2]=g;c[n>>2]=h;b[s>>1]=j;c[p>>2]=0;c[o>>2]=(b[s>>1]|0)-1;while(1){if((c[o>>2]|0)<0)break;c[q>>2]=(_((c[p>>2]&65535)<<16>>16,d[(c[m>>2]|0)+(c[o>>2]|0)>>0]|0)|0)>>8;c[p>>2]=a[(c[l>>2]|0)+(c[o>>2]|0)>>0]<<10;f=c[p>>2]|0;if((c[p>>2]|0)<=0){if((f|0)<0)c[p>>2]=(c[p>>2]|0)+102}else c[p>>2]=f-102;s=_(c[p>>2]>>16,(c[n>>2]&65535)<<16>>16)|0;c[p>>2]=(c[q>>2]|0)+(s+((_(c[p>>2]&65535,(c[n>>2]&65535)<<16>>16)|0)>>16));b[(c[k>>2]|0)+(c[o>>2]<<1)>>1]=c[p>>2];c[o>>2]=(c[o>>2]|0)+-1}i=r;return}function ie(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=i;i=i+32|0;b=h+16|0;d=h+12|0;g=h+8|0;f=h+4|0;e=h;c[d>>2]=a;if((c[d>>2]|0)<=0){c[b>>2]=0;g=c[b>>2]|0;i=h;return g|0}je(c[d>>2]|0,f,e);if(c[f>>2]&1|0)c[g>>2]=32768;else c[g>>2]=46214;c[g>>2]=c[g>>2]>>(c[f>>2]>>1);a=_(c[g>>2]>>16,(((c[e>>2]&65535)<<16>>16)*213&65535)<<16>>16)|0;c[g>>2]=(c[g>>2]|0)+(a+((_(c[g>>2]&65535,(((c[e>>2]&65535)<<16>>16)*213&65535)<<16>>16)|0)>>16));c[b>>2]=c[g>>2];g=c[b>>2]|0;i=h;return g|0}function je(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+16|0;h=e+12|0;j=e+8|0;f=e+4|0;g=e;c[h>>2]=a;c[j>>2]=b;c[f>>2]=d;c[g>>2]=ke(c[h>>2]|0)|0;c[c[j>>2]>>2]=c[g>>2];b=(le(c[h>>2]|0,24-(c[g>>2]|0)|0)|0)&127;c[c[f>>2]>>2]=b;i=e;return}function ke(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if(!(c[b>>2]|0)){a=32;i=d;return a|0}a=32-(32-(aa(c[b>>2]|0)|0))|0;i=d;return a|0}function le(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;e=k+20|0;d=k+16|0;f=k+12|0;j=k+8|0;h=k+4|0;g=k;c[d>>2]=a;c[f>>2]=b;c[j>>2]=c[d>>2];c[h>>2]=c[f>>2];c[g>>2]=0-(c[f>>2]|0);if(!(c[f>>2]|0)){c[e>>2]=c[d>>2];j=c[e>>2]|0;i=k;return j|0}d=c[j>>2]|0;if((c[f>>2]|0)<0){c[e>>2]=d<<c[g>>2]|(c[j>>2]|0)>>>(32-(c[g>>2]|0)|0);j=c[e>>2]|0;i=k;return j|0}else{c[e>>2]=d<<32-(c[h>>2]|0)|(c[j>>2]|0)>>>(c[h>>2]|0);j=c[e>>2]|0;i=k;return j|0}return 0}function me(d,e,f,g,h,j,k,l,m,n,o,p,q,r,s){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;s=s|0;var t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0;T=i;i=i+112|0;t=T+100|0;u=T+96|0;B=T+92|0;C=T+88|0;D=T+84|0;E=T+80|0;F=T+76|0;G=T+72|0;H=T+68|0;I=T+64|0;v=T+60|0;w=T+56|0;x=T+52|0;y=T+48|0;z=T+44|0;O=T+40|0;P=T+36|0;S=T+32|0;N=T+28|0;K=T+24|0;L=T+20|0;J=T+16|0;R=T+12|0;M=T+8|0;Q=T+4|0;A=T;c[t>>2]=d;c[u>>2]=e;c[B>>2]=f;c[C>>2]=g;c[D>>2]=h;c[E>>2]=j;c[F>>2]=k;c[G>>2]=l;c[H>>2]=m;c[I>>2]=n;c[v>>2]=o;c[w>>2]=p;c[x>>2]=q;c[y>>2]=r;c[z>>2]=s;c[(c[u>>2]|0)+4368>>2]=a[(c[B>>2]|0)+34>>0];c[P>>2]=c[(c[u>>2]|0)+4356>>2];c[Q>>2]=b[24558+(a[(c[B>>2]|0)+29>>0]>>1<<2)+(a[(c[B>>2]|0)+30>>0]<<1)>>1];if((a[(c[B>>2]|0)+31>>0]|0)==4)c[N>>2]=0;else c[N>>2]=1;p=(c[(c[t>>2]|0)+4616>>2]|0)+(c[(c[t>>2]|0)+4608>>2]|0)|0;c[A>>2]=ia()|0;l=i;i=i+((1*(p<<2)|0)+15&-16)|0;p=i;i=i+((1*((c[(c[t>>2]|0)+4616>>2]|0)+(c[(c[t>>2]|0)+4608>>2]|0)<<1)|0)+15&-16)|0;m=i;i=i+((1*(c[(c[t>>2]|0)+4612>>2]<<2)|0)+15&-16)|0;c[(c[u>>2]|0)+4364>>2]=c[(c[t>>2]|0)+4616>>2];c[(c[u>>2]|0)+4360>>2]=c[(c[t>>2]|0)+4616>>2];c[R>>2]=(c[u>>2]|0)+(c[(c[t>>2]|0)+4616>>2]<<1);c[O>>2]=0;while(1){if((c[O>>2]|0)>=(c[(c[t>>2]|0)+4604>>2]|0))break;c[K>>2]=(c[E>>2]|0)+((c[O>>2]>>1|1-(c[N>>2]|0))<<4<<1);c[L>>2]=(c[F>>2]|0)+((c[O>>2]|0)*5<<1);c[J>>2]=(c[G>>2]|0)+(c[O>>2]<<4<<1);c[M>>2]=c[(c[H>>2]|0)+(c[O>>2]<<2)>>2]>>2;c[M>>2]=c[M>>2]|c[(c[H>>2]|0)+(c[O>>2]<<2)>>2]>>1<<16;c[(c[u>>2]|0)+4376>>2]=0;if((a[(c[B>>2]|0)+29>>0]|0)==2?(c[P>>2]=c[(c[x>>2]|0)+(c[O>>2]<<2)>>2],(c[O>>2]&3-(c[N>>2]<<1)|0)==0):0){c[S>>2]=(c[(c[t>>2]|0)+4616>>2]|0)-(c[P>>2]|0)-(c[(c[t>>2]|0)+4664>>2]|0)-2;g=(c[S>>2]|0)+(_(c[O>>2]|0,c[(c[t>>2]|0)+4612>>2]|0)|0)|0;Xf(p+(c[S>>2]<<1)|0,(c[u>>2]|0)+(g<<1)|0,c[K>>2]|0,(c[(c[t>>2]|0)+4616>>2]|0)-(c[S>>2]|0)|0,c[(c[t>>2]|0)+4664>>2]|0,c[(c[t>>2]|0)+5124>>2]|0);c[(c[u>>2]|0)+4376>>2]=1;c[(c[u>>2]|0)+4360>>2]=c[(c[t>>2]|0)+4616>>2]}ne(c[t>>2]|0,c[u>>2]|0,c[C>>2]|0,m,p,l,c[O>>2]|0,c[z>>2]|0,c[w>>2]|0,c[x>>2]|0,a[(c[B>>2]|0)+29>>0]|0);re(c[u>>2]|0,a[(c[B>>2]|0)+29>>0]|0,m,c[D>>2]|0,c[R>>2]|0,l,c[K>>2]|0,c[L>>2]|0,c[J>>2]|0,c[P>>2]|0,c[M>>2]|0,c[(c[I>>2]|0)+(c[O>>2]<<2)>>2]|0,c[(c[v>>2]|0)+(c[O>>2]<<2)>>2]|0,c[(c[w>>2]|0)+(c[O>>2]<<2)>>2]|0,c[y>>2]|0,c[Q>>2]|0,c[(c[t>>2]|0)+4612>>2]|0,c[(c[t>>2]|0)+4660>>2]|0,c[(c[t>>2]|0)+4664>>2]|0);c[C>>2]=(c[C>>2]|0)+(c[(c[t>>2]|0)+4612>>2]<<2);c[D>>2]=(c[D>>2]|0)+(c[(c[t>>2]|0)+4612>>2]|0);c[R>>2]=(c[R>>2]|0)+(c[(c[t>>2]|0)+4612>>2]<<1);c[O>>2]=(c[O>>2]|0)+1}c[(c[u>>2]|0)+4356>>2]=c[(c[x>>2]|0)+((c[(c[t>>2]|0)+4604>>2]|0)-1<<2)>>2];qj(c[u>>2]|0,(c[u>>2]|0)+(c[(c[t>>2]|0)+4608>>2]<<1)|0,c[(c[t>>2]|0)+4616>>2]<<1|0)|0;qj((c[u>>2]|0)+1280|0,(c[u>>2]|0)+1280+(c[(c[t>>2]|0)+4608>>2]<<2)|0,c[(c[t>>2]|0)+4616>>2]<<2|0)|0;na(c[A>>2]|0);i=T;return}function ne(a,d,e,f,g,h,j,k,l,m,n){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;D=i;i=i+64|0;o=D+60|0;p=D+56|0;r=D+52|0;s=D+48|0;t=D+44|0;u=D+40|0;v=D+36|0;w=D+32|0;x=D+28|0;E=D+24|0;q=D+20|0;z=D+16|0;C=D+12|0;y=D+8|0;B=D+4|0;A=D;c[o>>2]=a;c[p>>2]=d;c[r>>2]=e;c[s>>2]=f;c[t>>2]=g;c[u>>2]=h;c[v>>2]=j;c[w>>2]=k;c[x>>2]=l;c[E>>2]=m;c[q>>2]=n;c[C>>2]=c[(c[E>>2]|0)+(c[v>>2]<<2)>>2];if((c[(c[x>>2]|0)+(c[v>>2]<<2)>>2]|0)>1)l=c[(c[x>>2]|0)+(c[v>>2]<<2)>>2]|0;else l=1;c[B>>2]=oe(l,47)|0;if((c[(c[x>>2]|0)+(c[v>>2]<<2)>>2]|0)!=(c[(c[p>>2]|0)+4372>>2]|0))c[y>>2]=qe(c[(c[p>>2]|0)+4372>>2]|0,c[(c[x>>2]|0)+(c[v>>2]<<2)>>2]|0,16)|0;else c[y>>2]=65536;c[A>>2]=(c[B>>2]>>7)+1>>1;c[z>>2]=0;while(1){if((c[z>>2]|0)>=(c[(c[o>>2]|0)+4612>>2]|0))break;E=_(c[(c[r>>2]|0)+(c[z>>2]<<2)>>2]>>16,(c[A>>2]&65535)<<16>>16)|0;E=E+((_(c[(c[r>>2]|0)+(c[z>>2]<<2)>>2]&65535,(c[A>>2]&65535)<<16>>16)|0)>>16)|0;E=E+(_(c[(c[r>>2]|0)+(c[z>>2]<<2)>>2]|0,(c[A>>2]>>15)+1>>1)|0)|0;c[(c[s>>2]|0)+(c[z>>2]<<2)>>2]=E;c[z>>2]=(c[z>>2]|0)+1}c[(c[p>>2]|0)+4372>>2]=c[(c[x>>2]|0)+(c[v>>2]<<2)>>2];a:do if(c[(c[p>>2]|0)+4376>>2]|0){if(!(c[v>>2]|0)){E=_(c[B>>2]>>16,(c[w>>2]&65535)<<16>>16)|0;c[B>>2]=E+((_(c[B>>2]&65535,(c[w>>2]&65535)<<16>>16)|0)>>16)<<2}c[z>>2]=(c[(c[p>>2]|0)+4360>>2]|0)-(c[C>>2]|0)-2;while(1){if((c[z>>2]|0)>=(c[(c[p>>2]|0)+4360>>2]|0))break a;E=_(c[B>>2]>>16,b[(c[t>>2]|0)+(c[z>>2]<<1)>>1]|0)|0;E=E+((_(c[B>>2]&65535,b[(c[t>>2]|0)+(c[z>>2]<<1)>>1]|0)|0)>>16)|0;c[(c[u>>2]|0)+(c[z>>2]<<2)>>2]=E;c[z>>2]=(c[z>>2]|0)+1}}while(0);if((c[y>>2]|0)==65536){i=D;return}c[z>>2]=(c[(c[p>>2]|0)+4364>>2]|0)-(c[(c[o>>2]|0)+4616>>2]|0);while(1){if((c[z>>2]|0)>=(c[(c[p>>2]|0)+4364>>2]|0))break;E=_(c[y>>2]>>16,(c[(c[p>>2]|0)+1280+(c[z>>2]<<2)>>2]&65535)<<16>>16)|0;E=E+((_(c[y>>2]&65535,(c[(c[p>>2]|0)+1280+(c[z>>2]<<2)>>2]&65535)<<16>>16)|0)>>16)|0;E=E+(_(c[y>>2]|0,(c[(c[p>>2]|0)+1280+(c[z>>2]<<2)>>2]>>15)+1>>1)|0)|0;c[(c[p>>2]|0)+1280+(c[z>>2]<<2)>>2]=E;c[z>>2]=(c[z>>2]|0)+1}b:do if((c[q>>2]|0)==2?(c[(c[p>>2]|0)+4376>>2]|0)==0:0){c[z>>2]=(c[(c[p>>2]|0)+4360>>2]|0)-(c[C>>2]|0)-2;while(1){if((c[z>>2]|0)>=(c[(c[p>>2]|0)+4360>>2]|0))break b;E=_(c[y>>2]>>16,(c[(c[u>>2]|0)+(c[z>>2]<<2)>>2]&65535)<<16>>16)|0;E=E+((_(c[y>>2]&65535,(c[(c[u>>2]|0)+(c[z>>2]<<2)>>2]&65535)<<16>>16)|0)>>16)|0;E=E+(_(c[y>>2]|0,(c[(c[u>>2]|0)+(c[z>>2]<<2)>>2]>>15)+1>>1)|0)|0;c[(c[u>>2]|0)+(c[z>>2]<<2)>>2]=E;c[z>>2]=(c[z>>2]|0)+1}}while(0);E=_(c[y>>2]>>16,(c[(c[p>>2]|0)+4352>>2]&65535)<<16>>16)|0;E=E+((_(c[y>>2]&65535,(c[(c[p>>2]|0)+4352>>2]&65535)<<16>>16)|0)>>16)|0;E=E+(_(c[y>>2]|0,(c[(c[p>>2]|0)+4352>>2]>>15)+1>>1)|0)|0;c[(c[p>>2]|0)+4352>>2]=E;c[z>>2]=0;while(1){if((c[z>>2]|0)>=32)break;E=_(c[y>>2]>>16,(c[(c[p>>2]|0)+3840+(c[z>>2]<<2)>>2]&65535)<<16>>16)|0;E=E+((_(c[y>>2]&65535,(c[(c[p>>2]|0)+3840+(c[z>>2]<<2)>>2]&65535)<<16>>16)|0)>>16)|0;E=E+(_(c[y>>2]|0,(c[(c[p>>2]|0)+3840+(c[z>>2]<<2)>>2]>>15)+1>>1)|0)|0;c[(c[p>>2]|0)+3840+(c[z>>2]<<2)>>2]=E;c[z>>2]=(c[z>>2]|0)+1}c[z>>2]=0;while(1){if((c[z>>2]|0)>=16)break;E=_(c[y>>2]>>16,(c[(c[p>>2]|0)+4288+(c[z>>2]<<2)>>2]&65535)<<16>>16)|0;E=E+((_(c[y>>2]&65535,(c[(c[p>>2]|0)+4288+(c[z>>2]<<2)>>2]&65535)<<16>>16)|0)>>16)|0;E=E+(_(c[y>>2]|0,(c[(c[p>>2]|0)+4288+(c[z>>2]<<2)>>2]>>15)+1>>1)|0)|0;c[(c[p>>2]|0)+4288+(c[z>>2]<<2)>>2]=E;c[z>>2]=(c[z>>2]|0)+1}i=D;return}function oe(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;h=i;i=i+48|0;f=h+32|0;n=h+28|0;d=h+24|0;j=h+20|0;g=h+16|0;k=h+12|0;m=h+8|0;l=h+4|0;e=h;c[n>>2]=a;c[d>>2]=b;b=c[n>>2]|0;c[j>>2]=(pe((c[n>>2]|0)>0?b:0-b|0)|0)-1;c[m>>2]=c[n>>2]<<c[j>>2];c[k>>2]=536870911/(c[m>>2]>>16|0)|0;c[e>>2]=c[k>>2]<<16;b=_(c[m>>2]>>16,(c[k>>2]&65535)<<16>>16)|0;c[l>>2]=536870912-(b+((_(c[m>>2]&65535,(c[k>>2]&65535)<<16>>16)|0)>>16))<<3;b=_(c[l>>2]>>16,(c[k>>2]&65535)<<16>>16)|0;b=(c[e>>2]|0)+(b+((_(c[l>>2]&65535,(c[k>>2]&65535)<<16>>16)|0)>>16))|0;c[e>>2]=b+(_(c[l>>2]|0,(c[k>>2]>>15)+1>>1)|0);c[g>>2]=61-(c[j>>2]|0)-(c[d>>2]|0);b=c[g>>2]|0;if((c[g>>2]|0)>0)if((b|0)<32){c[f>>2]=c[e>>2]>>c[g>>2];n=c[f>>2]|0;i=h;return n|0}else{c[f>>2]=0;n=c[f>>2]|0;i=h;return n|0}a=c[e>>2]|0;d=0-(c[g>>2]|0)|0;do if((-2147483648>>0-b|0)>(2147483647>>0-(c[g>>2]|0)|0)){if((a|0)>(-2147483648>>d|0)){b=-2147483648>>0-(c[g>>2]|0);break}if((c[e>>2]|0)<(2147483647>>0-(c[g>>2]|0)|0)){b=2147483647>>0-(c[g>>2]|0);break}else{b=c[e>>2]|0;break}}else{if((a|0)>(2147483647>>d|0)){b=2147483647>>0-(c[g>>2]|0);break}if((c[e>>2]|0)<(-2147483648>>0-(c[g>>2]|0)|0)){b=-2147483648>>0-(c[g>>2]|0);break}else{b=c[e>>2]|0;break}}while(0);c[f>>2]=b<<0-(c[g>>2]|0);n=c[f>>2]|0;i=h;return n|0}function pe(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if(!(c[b>>2]|0)){a=32;i=d;return a|0}a=32-(32-(aa(c[b>>2]|0)|0))|0;i=d;return a|0}function qe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;h=i;i=i+48|0;f=h+40|0;q=h+36|0;p=h+32|0;j=h+28|0;l=h+24|0;k=h+20|0;g=h+16|0;m=h+12|0;n=h+8|0;o=h+4|0;e=h;c[q>>2]=a;c[p>>2]=b;c[j>>2]=d;b=c[q>>2]|0;c[l>>2]=(pe((c[q>>2]|0)>0?b:0-b|0)|0)-1;c[n>>2]=c[q>>2]<<c[l>>2];b=c[p>>2]|0;c[k>>2]=(pe((c[p>>2]|0)>0?b:0-b|0)|0)-1;c[o>>2]=c[p>>2]<<c[k>>2];c[m>>2]=536870911/(c[o>>2]>>16|0)|0;b=_(c[n>>2]>>16,(c[m>>2]&65535)<<16>>16)|0;c[e>>2]=b+((_(c[n>>2]&65535,(c[m>>2]&65535)<<16>>16)|0)>>16);b=c[n>>2]|0;a=c[o>>2]|0;d=c[e>>2]|0;d=yj(a|0,((a|0)<0)<<31>>31|0,d|0,((d|0)<0)<<31>>31|0)|0;d=nj(d|0,C|0,32)|0;c[n>>2]=b-(d<<3);d=_(c[n>>2]>>16,(c[m>>2]&65535)<<16>>16)|0;c[e>>2]=(c[e>>2]|0)+(d+((_(c[n>>2]&65535,(c[m>>2]&65535)<<16>>16)|0)>>16));c[g>>2]=29+(c[l>>2]|0)-(c[k>>2]|0)-(c[j>>2]|0);d=c[g>>2]|0;if((c[g>>2]|0)>=0)if((d|0)<32){c[f>>2]=c[e>>2]>>c[g>>2];q=c[f>>2]|0;i=h;return q|0}else{c[f>>2]=0;q=c[f>>2]|0;i=h;return q|0}a=c[e>>2]|0;b=0-(c[g>>2]|0)|0;do if((-2147483648>>0-d|0)>(2147483647>>0-(c[g>>2]|0)|0)){if((a|0)>(-2147483648>>b|0)){d=-2147483648>>0-(c[g>>2]|0);break}if((c[e>>2]|0)<(2147483647>>0-(c[g>>2]|0)|0)){d=2147483647>>0-(c[g>>2]|0);break}else{d=c[e>>2]|0;break}}else{if((a|0)>(2147483647>>b|0)){d=2147483647>>0-(c[g>>2]|0);break}if((c[e>>2]|0)<(-2147483648>>0-(c[g>>2]|0)|0)){d=-2147483648>>0-(c[g>>2]|0);break}else{d=c[e>>2]|0;break}}while(0);c[f>>2]=d<<0-(c[g>>2]|0);q=c[f>>2]|0;i=h;return q|0}function re(d,e,f,g,h,j,k,l,m,n,o,p,q,r,s,t,u,v,w){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;s=s|0;t=t|0;u=u|0;v=v|0;w=w|0;var x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0;ma=i;i=i+176|0;ka=ma+168|0;x=ma+164|0;F=ma+160|0;G=ma+156|0;H=ma+152|0;I=ma+148|0;J=ma+144|0;K=ma+140|0;L=ma+136|0;M=ma+132|0;y=ma+128|0;z=ma+124|0;A=ma+120|0;na=ma+116|0;B=ma+112|0;C=ma+108|0;la=ma+104|0;D=ma+100|0;E=ma+96|0;S=ma+92|0;T=ma+88|0;Q=ma+84|0;P=ma+80|0;U=ma+76|0;W=ma+72|0;V=ma+68|0;ba=ma+64|0;ea=ma+60|0;Z=ma+56|0;$=ma+52|0;aa=ma+48|0;ca=ma+44|0;da=ma+40|0;R=ma+36|0;O=ma+32|0;ja=ma+28|0;N=ma+24|0;ha=ma+20|0;ia=ma+16|0;fa=ma+12|0;Y=ma+8|0;ga=ma+4|0;X=ma;c[ka>>2]=d;c[x>>2]=e;c[F>>2]=f;c[G>>2]=g;c[H>>2]=h;c[I>>2]=j;c[J>>2]=k;c[K>>2]=l;c[L>>2]=m;c[M>>2]=n;c[y>>2]=o;c[z>>2]=p;c[A>>2]=q;c[na>>2]=r;c[B>>2]=s;c[C>>2]=t;c[la>>2]=u;c[D>>2]=v;c[E>>2]=w;c[ga>>2]=(c[ka>>2]|0)+1280+((c[(c[ka>>2]|0)+4364>>2]|0)-(c[M>>2]|0)+1<<2);c[X>>2]=(c[I>>2]|0)+((c[(c[ka>>2]|0)+4360>>2]|0)-(c[M>>2]|0)+2<<2);c[N>>2]=c[na>>2]>>6;c[Y>>2]=(c[ka>>2]|0)+3840+124;c[S>>2]=0;while(1){m=c[ka>>2]|0;if((c[S>>2]|0)>=(c[la>>2]|0))break;na=907633515+(_(c[m+4368>>2]|0,196314165)|0)|0;c[(c[ka>>2]|0)+4368>>2]=na;c[P>>2]=c[E>>2]>>1;na=_(c[c[Y>>2]>>2]>>16,b[c[J>>2]>>1]|0)|0;c[P>>2]=(c[P>>2]|0)+(na+((_(c[c[Y>>2]>>2]&65535,b[c[J>>2]>>1]|0)|0)>>16));na=_(c[(c[Y>>2]|0)+-4>>2]>>16,b[(c[J>>2]|0)+2>>1]|0)|0;c[P>>2]=(c[P>>2]|0)+(na+((_(c[(c[Y>>2]|0)+-4>>2]&65535,b[(c[J>>2]|0)+2>>1]|0)|0)>>16));na=_(c[(c[Y>>2]|0)+-8>>2]>>16,b[(c[J>>2]|0)+4>>1]|0)|0;c[P>>2]=(c[P>>2]|0)+(na+((_(c[(c[Y>>2]|0)+-8>>2]&65535,b[(c[J>>2]|0)+4>>1]|0)|0)>>16));na=_(c[(c[Y>>2]|0)+-12>>2]>>16,b[(c[J>>2]|0)+6>>1]|0)|0;c[P>>2]=(c[P>>2]|0)+(na+((_(c[(c[Y>>2]|0)+-12>>2]&65535,b[(c[J>>2]|0)+6>>1]|0)|0)>>16));na=_(c[(c[Y>>2]|0)+-16>>2]>>16,b[(c[J>>2]|0)+8>>1]|0)|0;c[P>>2]=(c[P>>2]|0)+(na+((_(c[(c[Y>>2]|0)+-16>>2]&65535,b[(c[J>>2]|0)+8>>1]|0)|0)>>16));na=_(c[(c[Y>>2]|0)+-20>>2]>>16,b[(c[J>>2]|0)+10>>1]|0)|0;c[P>>2]=(c[P>>2]|0)+(na+((_(c[(c[Y>>2]|0)+-20>>2]&65535,b[(c[J>>2]|0)+10>>1]|0)|0)>>16));na=_(c[(c[Y>>2]|0)+-24>>2]>>16,b[(c[J>>2]|0)+12>>1]|0)|0;c[P>>2]=(c[P>>2]|0)+(na+((_(c[(c[Y>>2]|0)+-24>>2]&65535,b[(c[J>>2]|0)+12>>1]|0)|0)>>16));na=_(c[(c[Y>>2]|0)+-28>>2]>>16,b[(c[J>>2]|0)+14>>1]|0)|0;c[P>>2]=(c[P>>2]|0)+(na+((_(c[(c[Y>>2]|0)+-28>>2]&65535,b[(c[J>>2]|0)+14>>1]|0)|0)>>16));na=_(c[(c[Y>>2]|0)+-32>>2]>>16,b[(c[J>>2]|0)+16>>1]|0)|0;c[P>>2]=(c[P>>2]|0)+(na+((_(c[(c[Y>>2]|0)+-32>>2]&65535,b[(c[J>>2]|0)+16>>1]|0)|0)>>16));na=_(c[(c[Y>>2]|0)+-36>>2]>>16,b[(c[J>>2]|0)+18>>1]|0)|0;c[P>>2]=(c[P>>2]|0)+(na+((_(c[(c[Y>>2]|0)+-36>>2]&65535,b[(c[J>>2]|0)+18>>1]|0)|0)>>16));if((c[E>>2]|0)==16){na=_(c[(c[Y>>2]|0)+-40>>2]>>16,b[(c[J>>2]|0)+20>>1]|0)|0;c[P>>2]=(c[P>>2]|0)+(na+((_(c[(c[Y>>2]|0)+-40>>2]&65535,b[(c[J>>2]|0)+20>>1]|0)|0)>>16));na=_(c[(c[Y>>2]|0)+-44>>2]>>16,b[(c[J>>2]|0)+22>>1]|0)|0;c[P>>2]=(c[P>>2]|0)+(na+((_(c[(c[Y>>2]|0)+-44>>2]&65535,b[(c[J>>2]|0)+22>>1]|0)|0)>>16));na=_(c[(c[Y>>2]|0)+-48>>2]>>16,b[(c[J>>2]|0)+24>>1]|0)|0;c[P>>2]=(c[P>>2]|0)+(na+((_(c[(c[Y>>2]|0)+-48>>2]&65535,b[(c[J>>2]|0)+24>>1]|0)|0)>>16));na=_(c[(c[Y>>2]|0)+-52>>2]>>16,b[(c[J>>2]|0)+26>>1]|0)|0;c[P>>2]=(c[P>>2]|0)+(na+((_(c[(c[Y>>2]|0)+-52>>2]&65535,b[(c[J>>2]|0)+26>>1]|0)|0)>>16));na=_(c[(c[Y>>2]|0)+-56>>2]>>16,b[(c[J>>2]|0)+28>>1]|0)|0;c[P>>2]=(c[P>>2]|0)+(na+((_(c[(c[Y>>2]|0)+-56>>2]&65535,b[(c[J>>2]|0)+28>>1]|0)|0)>>16));na=_(c[(c[Y>>2]|0)+-60>>2]>>16,b[(c[J>>2]|0)+30>>1]|0)|0;c[P>>2]=(c[P>>2]|0)+(na+((_(c[(c[Y>>2]|0)+-60>>2]&65535,b[(c[J>>2]|0)+30>>1]|0)|0)>>16))}if((c[x>>2]|0)==2){c[Q>>2]=2;na=_(c[c[X>>2]>>2]>>16,b[c[K>>2]>>1]|0)|0;c[Q>>2]=(c[Q>>2]|0)+(na+((_(c[c[X>>2]>>2]&65535,b[c[K>>2]>>1]|0)|0)>>16));na=_(c[(c[X>>2]|0)+-4>>2]>>16,b[(c[K>>2]|0)+2>>1]|0)|0;c[Q>>2]=(c[Q>>2]|0)+(na+((_(c[(c[X>>2]|0)+-4>>2]&65535,b[(c[K>>2]|0)+2>>1]|0)|0)>>16));na=_(c[(c[X>>2]|0)+-8>>2]>>16,b[(c[K>>2]|0)+4>>1]|0)|0;c[Q>>2]=(c[Q>>2]|0)+(na+((_(c[(c[X>>2]|0)+-8>>2]&65535,b[(c[K>>2]|0)+4>>1]|0)|0)>>16));na=_(c[(c[X>>2]|0)+-12>>2]>>16,b[(c[K>>2]|0)+6>>1]|0)|0;c[Q>>2]=(c[Q>>2]|0)+(na+((_(c[(c[X>>2]|0)+-12>>2]&65535,b[(c[K>>2]|0)+6>>1]|0)|0)>>16));na=_(c[(c[X>>2]|0)+-16>>2]>>16,b[(c[K>>2]|0)+8>>1]|0)|0;c[Q>>2]=(c[Q>>2]|0)+(na+((_(c[(c[X>>2]|0)+-16>>2]&65535,b[(c[K>>2]|0)+8>>1]|0)|0)>>16));c[X>>2]=(c[X>>2]|0)+4}else c[Q>>2]=0;c[ia>>2]=c[c[Y>>2]>>2];c[ha>>2]=c[(c[ka>>2]|0)+4288>>2];c[(c[ka>>2]|0)+4288>>2]=c[ia>>2];c[U>>2]=c[D>>2]>>1;na=_(c[ia>>2]>>16,b[c[L>>2]>>1]|0)|0;c[U>>2]=(c[U>>2]|0)+(na+((_(c[ia>>2]&65535,b[c[L>>2]>>1]|0)|0)>>16));c[T>>2]=2;while(1){if((c[T>>2]|0)>=(c[D>>2]|0))break;c[ia>>2]=c[(c[ka>>2]|0)+4288+((c[T>>2]|0)-1<<2)>>2];c[(c[ka>>2]|0)+4288+((c[T>>2]|0)-1<<2)>>2]=c[ha>>2];na=_(c[ha>>2]>>16,b[(c[L>>2]|0)+((c[T>>2]|0)-1<<1)>>1]|0)|0;c[U>>2]=(c[U>>2]|0)+(na+((_(c[ha>>2]&65535,b[(c[L>>2]|0)+((c[T>>2]|0)-1<<1)>>1]|0)|0)>>16));c[ha>>2]=c[(c[ka>>2]|0)+4288+((c[T>>2]|0)+0<<2)>>2];c[(c[ka>>2]|0)+4288+((c[T>>2]|0)+0<<2)>>2]=c[ia>>2];na=_(c[ia>>2]>>16,b[(c[L>>2]|0)+(c[T>>2]<<1)>>1]|0)|0;c[U>>2]=(c[U>>2]|0)+(na+((_(c[ia>>2]&65535,b[(c[L>>2]|0)+(c[T>>2]<<1)>>1]|0)|0)>>16));c[T>>2]=(c[T>>2]|0)+2}c[(c[ka>>2]|0)+4288+((c[D>>2]|0)-1<<2)>>2]=c[ha>>2];na=_(c[ha>>2]>>16,b[(c[L>>2]|0)+((c[D>>2]|0)-1<<1)>>1]|0)|0;c[U>>2]=(c[U>>2]|0)+(na+((_(c[ha>>2]&65535,b[(c[L>>2]|0)+((c[D>>2]|0)-1<<1)>>1]|0)|0)>>16));c[U>>2]=c[U>>2]<<1;na=_(c[(c[ka>>2]|0)+4352>>2]>>16,(c[z>>2]&65535)<<16>>16)|0;c[U>>2]=(c[U>>2]|0)+(na+((_(c[(c[ka>>2]|0)+4352>>2]&65535,(c[z>>2]&65535)<<16>>16)|0)>>16));na=_(c[(c[ka>>2]|0)+1280+((c[(c[ka>>2]|0)+4364>>2]|0)-1<<2)>>2]>>16,(c[A>>2]&65535)<<16>>16)|0;c[V>>2]=na+((_(c[(c[ka>>2]|0)+1280+((c[(c[ka>>2]|0)+4364>>2]|0)-1<<2)>>2]&65535,(c[A>>2]&65535)<<16>>16)|0)>>16);na=(c[V>>2]|0)+(_(c[(c[ka>>2]|0)+4352>>2]>>16,c[A>>2]>>16)|0)|0;c[V>>2]=na+((_(c[(c[ka>>2]|0)+4352>>2]&65535,c[A>>2]>>16)|0)>>16);c[ha>>2]=(c[P>>2]<<2)-(c[U>>2]|0);c[ha>>2]=(c[ha>>2]|0)-(c[V>>2]|0);if((c[M>>2]|0)>0){na=_((c[c[ga>>2]>>2]|0)+(c[(c[ga>>2]|0)+-8>>2]|0)>>16,(c[y>>2]&65535)<<16>>16)|0;c[W>>2]=na+((_((c[c[ga>>2]>>2]|0)+(c[(c[ga>>2]|0)+-8>>2]|0)&65535,(c[y>>2]&65535)<<16>>16)|0)>>16);na=(c[W>>2]|0)+(_(c[(c[ga>>2]|0)+-4>>2]>>16,c[y>>2]>>16)|0)|0;c[W>>2]=na+((_(c[(c[ga>>2]|0)+-4>>2]&65535,c[y>>2]>>16)|0)>>16);c[W>>2]=c[W>>2]<<1;c[ga>>2]=(c[ga>>2]|0)+4;c[ia>>2]=(c[Q>>2]|0)-(c[W>>2]|0);c[ha>>2]=(c[ia>>2]|0)+(c[ha>>2]<<1);c[ha>>2]=(c[ha>>2]>>2)+1>>1}else c[ha>>2]=(c[ha>>2]>>1)+1>>1;c[ba>>2]=(c[(c[F>>2]|0)+(c[S>>2]<<2)>>2]|0)-(c[ha>>2]|0);if((c[(c[ka>>2]|0)+4368>>2]|0)<0)c[ba>>2]=0-(c[ba>>2]|0);if((c[ba>>2]|0)>30720)m=30720;else m=(c[ba>>2]|0)<-31744?-31744:c[ba>>2]|0;c[ba>>2]=m;c[$>>2]=(c[ba>>2]|0)-(c[C>>2]|0);c[Z>>2]=c[$>>2]>>10;m=c[Z>>2]|0;do if((c[Z>>2]|0)<=0){if(!m){c[$>>2]=c[C>>2];c[aa>>2]=(c[$>>2]|0)+944;c[ca>>2]=_((c[$>>2]&65535)<<16>>16,(c[B>>2]&65535)<<16>>16)|0;c[da>>2]=_((c[aa>>2]&65535)<<16>>16,(c[B>>2]&65535)<<16>>16)|0;break}if((c[Z>>2]|0)==-1){c[aa>>2]=c[C>>2];c[$>>2]=(c[aa>>2]|0)-944;c[ca>>2]=_((0-(c[$>>2]|0)&65535)<<16>>16,(c[B>>2]&65535)<<16>>16)|0;c[da>>2]=_((c[aa>>2]&65535)<<16>>16,(c[B>>2]&65535)<<16>>16)|0;break}else{c[$>>2]=(c[Z>>2]<<10)+80;c[$>>2]=(c[$>>2]|0)+(c[C>>2]|0);c[aa>>2]=(c[$>>2]|0)+1024;c[ca>>2]=_((0-(c[$>>2]|0)&65535)<<16>>16,(c[B>>2]&65535)<<16>>16)|0;c[da>>2]=_((0-(c[aa>>2]|0)&65535)<<16>>16,(c[B>>2]&65535)<<16>>16)|0;break}}else{c[$>>2]=(m<<10)-80;c[$>>2]=(c[$>>2]|0)+(c[C>>2]|0);c[aa>>2]=(c[$>>2]|0)+1024;c[ca>>2]=_((c[$>>2]&65535)<<16>>16,(c[B>>2]&65535)<<16>>16)|0;c[da>>2]=_((c[aa>>2]&65535)<<16>>16,(c[B>>2]&65535)<<16>>16)|0}while(0);c[ea>>2]=(c[ba>>2]|0)-(c[$>>2]|0);c[ca>>2]=(c[ca>>2]|0)+(_((c[ea>>2]&65535)<<16>>16,(c[ea>>2]&65535)<<16>>16)|0);c[ea>>2]=(c[ba>>2]|0)-(c[aa>>2]|0);c[da>>2]=(c[da>>2]|0)+(_((c[ea>>2]&65535)<<16>>16,(c[ea>>2]&65535)<<16>>16)|0);if((c[da>>2]|0)<(c[ca>>2]|0))c[$>>2]=c[aa>>2];a[(c[G>>2]|0)+(c[S>>2]|0)>>0]=(c[$>>2]>>9)+1>>1;c[R>>2]=c[$>>2]<<4;if((c[(c[ka>>2]|0)+4368>>2]|0)<0)c[R>>2]=0-(c[R>>2]|0);c[O>>2]=(c[R>>2]|0)+(c[Q>>2]<<1);c[ja>>2]=(c[O>>2]|0)+(c[P>>2]<<4);na=_(c[ja>>2]>>16,(c[N>>2]&65535)<<16>>16)|0;na=na+((_(c[ja>>2]&65535,(c[N>>2]&65535)<<16>>16)|0)>>16)|0;if(((na+(_(c[ja>>2]|0,(c[N>>2]>>15)+1>>1)|0)>>7)+1>>1|0)<=32767){na=_(c[ja>>2]>>16,(c[N>>2]&65535)<<16>>16)|0;na=na+((_(c[ja>>2]&65535,(c[N>>2]&65535)<<16>>16)|0)>>16)|0;if(((na+(_(c[ja>>2]|0,(c[N>>2]>>15)+1>>1)|0)>>7)+1>>1|0)<-32768)m=-32768;else{m=_(c[ja>>2]>>16,(c[N>>2]&65535)<<16>>16)|0;m=m+((_(c[ja>>2]&65535,(c[N>>2]&65535)<<16>>16)|0)>>16)|0;m=(m+(_(c[ja>>2]|0,(c[N>>2]>>15)+1>>1)|0)>>7)+1>>1}}else m=32767;b[(c[H>>2]|0)+(c[S>>2]<<1)>>1]=m;c[Y>>2]=(c[Y>>2]|0)+4;c[c[Y>>2]>>2]=c[ja>>2];c[fa>>2]=(c[ja>>2]|0)-(c[U>>2]<<2);c[(c[ka>>2]|0)+4352>>2]=c[fa>>2];c[(c[ka>>2]|0)+1280+(c[(c[ka>>2]|0)+4364>>2]<<2)>>2]=(c[fa>>2]|0)-(c[V>>2]<<2);c[(c[I>>2]|0)+(c[(c[ka>>2]|0)+4360>>2]<<2)>>2]=c[O>>2]<<1;na=(c[ka>>2]|0)+4364|0;c[na>>2]=(c[na>>2]|0)+1;na=(c[ka>>2]|0)+4360|0;c[na>>2]=(c[na>>2]|0)+1;c[(c[ka>>2]|0)+4368>>2]=(c[(c[ka>>2]|0)+4368>>2]|0)+(a[(c[G>>2]|0)+(c[S>>2]|0)>>0]|0);c[S>>2]=(c[S>>2]|0)+1}o=m+3840|0;m=(c[ka>>2]|0)+3840+(c[la>>2]<<2)|0;r=o+128|0;do{c[o>>2]=c[m>>2];o=o+4|0;m=m+4|0}while((o|0)<(r|0));i=ma;return}function se(d,e,f,g,h,j,k,l,m,n,o,p,q,r,s){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;s=s|0;var t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0;ca=i;i=i+272|0;S=ca+264|0;T=ca+260|0;x=ca+256|0;y=ca+252|0;W=ca+248|0;z=ca+244|0;A=ca+240|0;B=ca+236|0;C=ca+232|0;D=ca+228|0;t=ca+224|0;u=ca+220|0;U=ca+216|0;v=ca+212|0;w=ca+208|0;Z=ca+204|0;M=ca+200|0;N=ca+196|0;Q=ca+192|0;I=ca+188|0;K=ca+184|0;R=ca+180|0;$=ca+176|0;P=ca+172|0;Y=ca+168|0;F=ca+164|0;G=ca+160|0;E=ca+156|0;ba=ca+152|0;H=ca+148|0;O=ca+144|0;J=ca+140|0;X=ca+136|0;aa=ca+132|0;V=ca+128|0;L=ca;c[S>>2]=d;c[T>>2]=e;c[x>>2]=f;c[y>>2]=g;c[W>>2]=h;c[z>>2]=j;c[A>>2]=k;c[B>>2]=l;c[C>>2]=m;c[D>>2]=n;c[t>>2]=o;c[u>>2]=p;c[U>>2]=q;c[v>>2]=r;c[w>>2]=s;c[N>>2]=c[(c[T>>2]|0)+4356>>2];g=c[(c[S>>2]|0)+4652>>2]|0;c[V>>2]=ia()|0;k=i;i=i+((1*(g*1168|0)|0)+15&-16)|0;oj(k|0,0,(c[(c[S>>2]|0)+4652>>2]|0)*1168|0)|0;c[M>>2]=0;while(1){if((c[M>>2]|0)>=(c[(c[S>>2]|0)+4652>>2]|0))break;c[aa>>2]=k+((c[M>>2]|0)*1168|0);c[(c[aa>>2]|0)+1156>>2]=(c[M>>2]|0)+(a[(c[x>>2]|0)+34>>0]|0)&3;c[(c[aa>>2]|0)+1160>>2]=c[(c[aa>>2]|0)+1156>>2];c[(c[aa>>2]|0)+1164>>2]=0;c[(c[aa>>2]|0)+1152>>2]=c[(c[T>>2]|0)+4352>>2];c[(c[aa>>2]|0)+960>>2]=c[(c[T>>2]|0)+1280+((c[(c[S>>2]|0)+4616>>2]|0)-1<<2)>>2];l=c[aa>>2]|0;p=(c[T>>2]|0)+3840|0;m=l+128|0;do{c[l>>2]=c[p>>2];l=l+4|0;p=p+4|0}while((l|0)<(m|0));l=(c[aa>>2]|0)+1088|0;p=(c[T>>2]|0)+4288|0;m=l+64|0;do{c[l>>2]=c[p>>2];l=l+4|0;p=p+4|0}while((l|0)<(m|0));c[M>>2]=(c[M>>2]|0)+1}c[O>>2]=b[24558+(a[(c[x>>2]|0)+29>>0]>>1<<2)+(a[(c[x>>2]|0)+30>>0]<<1)>>1];c[P>>2]=0;c[Y>>2]=te(32,c[(c[S>>2]|0)+4612>>2]|0)|0;a:do if((a[(c[x>>2]|0)+29>>0]|0)!=2){if((c[N>>2]|0)>0)c[Y>>2]=te(c[Y>>2]|0,(c[N>>2]|0)-2-1|0)|0}else{c[M>>2]=0;while(1){if((c[M>>2]|0)>=(c[(c[S>>2]|0)+4604>>2]|0))break a;c[Y>>2]=te(c[Y>>2]|0,(c[(c[U>>2]|0)+(c[M>>2]<<2)>>2]|0)-2-1|0)|0;c[M>>2]=(c[M>>2]|0)+1}}while(0);if((a[(c[x>>2]|0)+31>>0]|0)==4)c[I>>2]=0;else c[I>>2]=1;l=i;i=i+((1*((c[(c[S>>2]|0)+4616>>2]|0)+(c[(c[S>>2]|0)+4608>>2]|0)<<2)|0)+15&-16)|0;p=i;i=i+((1*((c[(c[S>>2]|0)+4616>>2]|0)+(c[(c[S>>2]|0)+4608>>2]|0)<<1)|0)+15&-16)|0;m=i;i=i+((1*(c[(c[S>>2]|0)+4612>>2]<<2)|0)+15&-16)|0;c[ba>>2]=(c[T>>2]|0)+(c[(c[S>>2]|0)+4616>>2]<<1);c[(c[T>>2]|0)+4364>>2]=c[(c[S>>2]|0)+4616>>2];c[(c[T>>2]|0)+4360>>2]=c[(c[S>>2]|0)+4616>>2];c[R>>2]=0;c[M>>2]=0;while(1){if((c[M>>2]|0)>=(c[(c[S>>2]|0)+4604>>2]|0))break;c[F>>2]=(c[z>>2]|0)+((c[M>>2]>>1|1-(c[I>>2]|0))<<4<<1);c[G>>2]=(c[A>>2]|0)+((c[M>>2]|0)*5<<1);c[E>>2]=(c[B>>2]|0)+(c[M>>2]<<4<<1);c[H>>2]=c[(c[C>>2]|0)+(c[M>>2]<<2)>>2]>>2;c[H>>2]=c[H>>2]|c[(c[C>>2]|0)+(c[M>>2]<<2)>>2]>>1<<16;c[(c[T>>2]|0)+4376>>2]=0;if((a[(c[x>>2]|0)+29>>0]|0)==2?(c[N>>2]=c[(c[U>>2]|0)+(c[M>>2]<<2)>>2],(c[M>>2]&3-(c[I>>2]<<1)|0)==0):0){if((c[M>>2]|0)==2){c[J>>2]=c[k+1164>>2];c[K>>2]=0;c[Z>>2]=1;while(1){if((c[Z>>2]|0)>=(c[(c[S>>2]|0)+4652>>2]|0))break;if((c[k+((c[Z>>2]|0)*1168|0)+1164>>2]|0)<(c[J>>2]|0)){c[J>>2]=c[k+((c[Z>>2]|0)*1168|0)+1164>>2];c[K>>2]=c[Z>>2]}c[Z>>2]=(c[Z>>2]|0)+1}c[Z>>2]=0;while(1){if((c[Z>>2]|0)>=(c[(c[S>>2]|0)+4652>>2]|0))break;if((c[Z>>2]|0)!=(c[K>>2]|0)){g=k+((c[Z>>2]|0)*1168|0)+1164|0;c[g>>2]=(c[g>>2]|0)+134217727}c[Z>>2]=(c[Z>>2]|0)+1}c[aa>>2]=k+((c[K>>2]|0)*1168|0);c[$>>2]=(c[P>>2]|0)+(c[Y>>2]|0);c[Z>>2]=0;while(1){if((c[Z>>2]|0)>=(c[Y>>2]|0))break;c[$>>2]=(c[$>>2]|0)-1&31;a[(c[W>>2]|0)+((c[Z>>2]|0)-(c[Y>>2]|0))>>0]=(c[(c[aa>>2]|0)+576+(c[$>>2]<<2)>>2]>>9)+1>>1;g=_(c[(c[aa>>2]|0)+704+(c[$>>2]<<2)>>2]>>16,(c[(c[u>>2]|0)+4>>2]&65535)<<16>>16)|0;g=g+((_(c[(c[aa>>2]|0)+704+(c[$>>2]<<2)>>2]&65535,(c[(c[u>>2]|0)+4>>2]&65535)<<16>>16)|0)>>16)|0;if(((g+(_(c[(c[aa>>2]|0)+704+(c[$>>2]<<2)>>2]|0,(c[(c[u>>2]|0)+4>>2]>>15)+1>>1)|0)>>13)+1>>1|0)<=32767){g=_(c[(c[aa>>2]|0)+704+(c[$>>2]<<2)>>2]>>16,(c[(c[u>>2]|0)+4>>2]&65535)<<16>>16)|0;g=g+((_(c[(c[aa>>2]|0)+704+(c[$>>2]<<2)>>2]&65535,(c[(c[u>>2]|0)+4>>2]&65535)<<16>>16)|0)>>16)|0;if(((g+(_(c[(c[aa>>2]|0)+704+(c[$>>2]<<2)>>2]|0,(c[(c[u>>2]|0)+4>>2]>>15)+1>>1)|0)>>13)+1>>1|0)<-32768)o=-32768;else{o=_(c[(c[aa>>2]|0)+704+(c[$>>2]<<2)>>2]>>16,(c[(c[u>>2]|0)+4>>2]&65535)<<16>>16)|0;o=o+((_(c[(c[aa>>2]|0)+704+(c[$>>2]<<2)>>2]&65535,(c[(c[u>>2]|0)+4>>2]&65535)<<16>>16)|0)>>16)|0;o=(o+(_(c[(c[aa>>2]|0)+704+(c[$>>2]<<2)>>2]|0,(c[(c[u>>2]|0)+4>>2]>>15)+1>>1)|0)>>13)+1>>1}}else o=32767;b[(c[ba>>2]|0)+((c[Z>>2]|0)-(c[Y>>2]|0)<<1)>>1]=o;c[(c[T>>2]|0)+1280+((c[(c[T>>2]|0)+4364>>2]|0)-(c[Y>>2]|0)+(c[Z>>2]|0)<<2)>>2]=c[(c[aa>>2]|0)+960+(c[$>>2]<<2)>>2];c[Z>>2]=(c[Z>>2]|0)+1}c[R>>2]=0}c[Q>>2]=(c[(c[S>>2]|0)+4616>>2]|0)-(c[N>>2]|0)-(c[(c[S>>2]|0)+4664>>2]|0)-2;g=(c[Q>>2]|0)+(_(c[M>>2]|0,c[(c[S>>2]|0)+4612>>2]|0)|0)|0;Xf(p+(c[Q>>2]<<1)|0,(c[T>>2]|0)+(g<<1)|0,c[F>>2]|0,(c[(c[S>>2]|0)+4616>>2]|0)-(c[Q>>2]|0)|0,c[(c[S>>2]|0)+4664>>2]|0,c[(c[S>>2]|0)+5124>>2]|0);c[(c[T>>2]|0)+4360>>2]=c[(c[S>>2]|0)+4616>>2];c[(c[T>>2]|0)+4376>>2]=1}ue(c[S>>2]|0,c[T>>2]|0,k,c[y>>2]|0,m,p,l,c[M>>2]|0,c[(c[S>>2]|0)+4652>>2]|0,c[w>>2]|0,c[u>>2]|0,c[U>>2]|0,a[(c[x>>2]|0)+29>>0]|0,c[Y>>2]|0);ha=c[T>>2]|0;ga=a[(c[x>>2]|0)+29>>0]|0;fa=c[W>>2]|0;ea=c[ba>>2]|0;da=c[F>>2]|0;o=c[G>>2]|0;s=c[E>>2]|0;r=c[N>>2]|0;e=c[H>>2]|0;j=c[(c[D>>2]|0)+(c[M>>2]<<2)>>2]|0;n=c[(c[t>>2]|0)+(c[M>>2]<<2)>>2]|0;q=c[(c[u>>2]|0)+(c[M>>2]<<2)>>2]|0;d=c[v>>2]|0;f=c[O>>2]|0;h=c[(c[S>>2]|0)+4612>>2]|0;g=c[R>>2]|0;c[R>>2]=g+1;ye(ha,k,ga,m,fa,ea,l,L,da,o,s,r,e,j,n,q,d,f,h,g,c[(c[S>>2]|0)+4660>>2]|0,c[(c[S>>2]|0)+4664>>2]|0,c[(c[S>>2]|0)+4704>>2]|0,c[(c[S>>2]|0)+4652>>2]|0,P,c[Y>>2]|0);c[y>>2]=(c[y>>2]|0)+(c[(c[S>>2]|0)+4612>>2]<<2);c[W>>2]=(c[W>>2]|0)+(c[(c[S>>2]|0)+4612>>2]|0);c[ba>>2]=(c[ba>>2]|0)+(c[(c[S>>2]|0)+4612>>2]<<1);c[M>>2]=(c[M>>2]|0)+1}c[J>>2]=c[k+1164>>2];c[K>>2]=0;c[M>>2]=1;while(1){if((c[M>>2]|0)>=(c[(c[S>>2]|0)+4652>>2]|0))break;if((c[k+((c[M>>2]|0)*1168|0)+1164>>2]|0)<(c[J>>2]|0)){c[J>>2]=c[k+((c[M>>2]|0)*1168|0)+1164>>2];c[K>>2]=c[M>>2]}c[M>>2]=(c[M>>2]|0)+1}c[aa>>2]=k+((c[K>>2]|0)*1168|0);a[(c[x>>2]|0)+34>>0]=c[(c[aa>>2]|0)+1160>>2];c[$>>2]=(c[P>>2]|0)+(c[Y>>2]|0);c[X>>2]=c[(c[u>>2]|0)+((c[(c[S>>2]|0)+4604>>2]|0)-1<<2)>>2]>>6;c[Z>>2]=0;while(1){if((c[Z>>2]|0)>=(c[Y>>2]|0))break;c[$>>2]=(c[$>>2]|0)-1&31;a[(c[W>>2]|0)+((c[Z>>2]|0)-(c[Y>>2]|0))>>0]=(c[(c[aa>>2]|0)+576+(c[$>>2]<<2)>>2]>>9)+1>>1;ha=_(c[(c[aa>>2]|0)+704+(c[$>>2]<<2)>>2]>>16,(c[X>>2]&65535)<<16>>16)|0;ha=ha+((_(c[(c[aa>>2]|0)+704+(c[$>>2]<<2)>>2]&65535,(c[X>>2]&65535)<<16>>16)|0)>>16)|0;if(((ha+(_(c[(c[aa>>2]|0)+704+(c[$>>2]<<2)>>2]|0,(c[X>>2]>>15)+1>>1)|0)>>7)+1>>1|0)<=32767){ha=_(c[(c[aa>>2]|0)+704+(c[$>>2]<<2)>>2]>>16,(c[X>>2]&65535)<<16>>16)|0;ha=ha+((_(c[(c[aa>>2]|0)+704+(c[$>>2]<<2)>>2]&65535,(c[X>>2]&65535)<<16>>16)|0)>>16)|0;if(((ha+(_(c[(c[aa>>2]|0)+704+(c[$>>2]<<2)>>2]|0,(c[X>>2]>>15)+1>>1)|0)>>7)+1>>1|0)<-32768)l=-32768;else{l=_(c[(c[aa>>2]|0)+704+(c[$>>2]<<2)>>2]>>16,(c[X>>2]&65535)<<16>>16)|0;l=l+((_(c[(c[aa>>2]|0)+704+(c[$>>2]<<2)>>2]&65535,(c[X>>2]&65535)<<16>>16)|0)>>16)|0;l=(l+(_(c[(c[aa>>2]|0)+704+(c[$>>2]<<2)>>2]|0,(c[X>>2]>>15)+1>>1)|0)>>7)+1>>1}}else l=32767;b[(c[ba>>2]|0)+((c[Z>>2]|0)-(c[Y>>2]|0)<<1)>>1]=l;c[(c[T>>2]|0)+1280+((c[(c[T>>2]|0)+4364>>2]|0)-(c[Y>>2]|0)+(c[Z>>2]|0)<<2)>>2]=c[(c[aa>>2]|0)+960+(c[$>>2]<<2)>>2];c[Z>>2]=(c[Z>>2]|0)+1}l=(c[T>>2]|0)+3840|0;p=(c[aa>>2]|0)+(c[(c[S>>2]|0)+4612>>2]<<2)|0;m=l+128|0;do{c[l>>2]=c[p>>2];l=l+4|0;p=p+4|0}while((l|0)<(m|0));l=(c[T>>2]|0)+4288|0;p=(c[aa>>2]|0)+1088|0;m=l+64|0;do{c[l>>2]=c[p>>2];l=l+4|0;p=p+4|0}while((l|0)<(m|0));c[(c[T>>2]|0)+4352>>2]=c[(c[aa>>2]|0)+1152>>2];c[(c[T>>2]|0)+4356>>2]=c[(c[U>>2]|0)+((c[(c[S>>2]|0)+4604>>2]|0)-1<<2)>>2];qj(c[T>>2]|0,(c[T>>2]|0)+(c[(c[S>>2]|0)+4608>>2]<<1)|0,c[(c[S>>2]|0)+4616>>2]<<1|0)|0;qj((c[T>>2]|0)+1280|0,(c[T>>2]|0)+1280+(c[(c[S>>2]|0)+4608>>2]<<2)|0,c[(c[S>>2]|0)+4616>>2]<<2|0)|0;na(c[V>>2]|0);i=ca;return}function te(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f+4|0;d=f;c[e>>2]=a;c[d>>2]=b;i=f;return ((c[e>>2]|0)<(c[d>>2]|0)?c[e>>2]|0:c[d>>2]|0)|0}function ue(a,d,e,f,g,h,j,k,l,m,n,o,p,q){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;var r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;L=i;i=i+96|0;r=L+80|0;s=L+76|0;w=L+72|0;x=L+68|0;y=L+64|0;z=L+60|0;A=L+56|0;B=L+52|0;C=L+48|0;D=L+44|0;t=L+40|0;M=L+36|0;u=L+32|0;v=L+28|0;F=L+24|0;I=L+20|0;J=L+16|0;E=L+12|0;H=L+8|0;G=L+4|0;K=L;c[r>>2]=a;c[s>>2]=d;c[w>>2]=e;c[x>>2]=f;c[y>>2]=g;c[z>>2]=h;c[A>>2]=j;c[B>>2]=k;c[C>>2]=l;c[D>>2]=m;c[t>>2]=n;c[M>>2]=o;c[u>>2]=p;c[v>>2]=q;c[J>>2]=c[(c[M>>2]|0)+(c[B>>2]<<2)>>2];if((c[(c[t>>2]|0)+(c[B>>2]<<2)>>2]|0)>1)n=c[(c[t>>2]|0)+(c[B>>2]<<2)>>2]|0;else n=1;c[H>>2]=ve(n,47)|0;if((c[(c[t>>2]|0)+(c[B>>2]<<2)>>2]|0)!=(c[(c[s>>2]|0)+4372>>2]|0))c[E>>2]=xe(c[(c[s>>2]|0)+4372>>2]|0,c[(c[t>>2]|0)+(c[B>>2]<<2)>>2]|0,16)|0;else c[E>>2]=65536;c[G>>2]=(c[H>>2]>>7)+1>>1;c[F>>2]=0;while(1){if((c[F>>2]|0)>=(c[(c[r>>2]|0)+4612>>2]|0))break;M=_(c[(c[x>>2]|0)+(c[F>>2]<<2)>>2]>>16,(c[G>>2]&65535)<<16>>16)|0;M=M+((_(c[(c[x>>2]|0)+(c[F>>2]<<2)>>2]&65535,(c[G>>2]&65535)<<16>>16)|0)>>16)|0;M=M+(_(c[(c[x>>2]|0)+(c[F>>2]<<2)>>2]|0,(c[G>>2]>>15)+1>>1)|0)|0;c[(c[y>>2]|0)+(c[F>>2]<<2)>>2]=M;c[F>>2]=(c[F>>2]|0)+1}c[(c[s>>2]|0)+4372>>2]=c[(c[t>>2]|0)+(c[B>>2]<<2)>>2];a:do if(c[(c[s>>2]|0)+4376>>2]|0){if(!(c[B>>2]|0)){M=_(c[H>>2]>>16,(c[D>>2]&65535)<<16>>16)|0;c[H>>2]=M+((_(c[H>>2]&65535,(c[D>>2]&65535)<<16>>16)|0)>>16)<<2}c[F>>2]=(c[(c[s>>2]|0)+4360>>2]|0)-(c[J>>2]|0)-2;while(1){if((c[F>>2]|0)>=(c[(c[s>>2]|0)+4360>>2]|0))break a;M=_(c[H>>2]>>16,b[(c[z>>2]|0)+(c[F>>2]<<1)>>1]|0)|0;M=M+((_(c[H>>2]&65535,b[(c[z>>2]|0)+(c[F>>2]<<1)>>1]|0)|0)>>16)|0;c[(c[A>>2]|0)+(c[F>>2]<<2)>>2]=M;c[F>>2]=(c[F>>2]|0)+1}}while(0);if((c[E>>2]|0)==65536){i=L;return}c[F>>2]=(c[(c[s>>2]|0)+4364>>2]|0)-(c[(c[r>>2]|0)+4616>>2]|0);while(1){if((c[F>>2]|0)>=(c[(c[s>>2]|0)+4364>>2]|0))break;M=_(c[E>>2]>>16,(c[(c[s>>2]|0)+1280+(c[F>>2]<<2)>>2]&65535)<<16>>16)|0;M=M+((_(c[E>>2]&65535,(c[(c[s>>2]|0)+1280+(c[F>>2]<<2)>>2]&65535)<<16>>16)|0)>>16)|0;M=M+(_(c[E>>2]|0,(c[(c[s>>2]|0)+1280+(c[F>>2]<<2)>>2]>>15)+1>>1)|0)|0;c[(c[s>>2]|0)+1280+(c[F>>2]<<2)>>2]=M;c[F>>2]=(c[F>>2]|0)+1}b:do if((c[u>>2]|0)==2?(c[(c[s>>2]|0)+4376>>2]|0)==0:0){c[F>>2]=(c[(c[s>>2]|0)+4360>>2]|0)-(c[J>>2]|0)-2;while(1){if((c[F>>2]|0)>=((c[(c[s>>2]|0)+4360>>2]|0)-(c[v>>2]|0)|0))break b;M=_(c[E>>2]>>16,(c[(c[A>>2]|0)+(c[F>>2]<<2)>>2]&65535)<<16>>16)|0;M=M+((_(c[E>>2]&65535,(c[(c[A>>2]|0)+(c[F>>2]<<2)>>2]&65535)<<16>>16)|0)>>16)|0;M=M+(_(c[E>>2]|0,(c[(c[A>>2]|0)+(c[F>>2]<<2)>>2]>>15)+1>>1)|0)|0;c[(c[A>>2]|0)+(c[F>>2]<<2)>>2]=M;c[F>>2]=(c[F>>2]|0)+1}}while(0);c[I>>2]=0;while(1){if((c[I>>2]|0)>=(c[C>>2]|0))break;c[K>>2]=(c[w>>2]|0)+((c[I>>2]|0)*1168|0);M=_(c[E>>2]>>16,(c[(c[K>>2]|0)+1152>>2]&65535)<<16>>16)|0;M=M+((_(c[E>>2]&65535,(c[(c[K>>2]|0)+1152>>2]&65535)<<16>>16)|0)>>16)|0;M=M+(_(c[E>>2]|0,(c[(c[K>>2]|0)+1152>>2]>>15)+1>>1)|0)|0;c[(c[K>>2]|0)+1152>>2]=M;c[F>>2]=0;while(1){if((c[F>>2]|0)>=32)break;M=_(c[E>>2]>>16,(c[(c[K>>2]|0)+(c[F>>2]<<2)>>2]&65535)<<16>>16)|0;M=M+((_(c[E>>2]&65535,(c[(c[K>>2]|0)+(c[F>>2]<<2)>>2]&65535)<<16>>16)|0)>>16)|0;M=M+(_(c[E>>2]|0,(c[(c[K>>2]|0)+(c[F>>2]<<2)>>2]>>15)+1>>1)|0)|0;c[(c[K>>2]|0)+(c[F>>2]<<2)>>2]=M;c[F>>2]=(c[F>>2]|0)+1}c[F>>2]=0;while(1){if((c[F>>2]|0)>=16)break;M=_(c[E>>2]>>16,(c[(c[K>>2]|0)+1088+(c[F>>2]<<2)>>2]&65535)<<16>>16)|0;M=M+((_(c[E>>2]&65535,(c[(c[K>>2]|0)+1088+(c[F>>2]<<2)>>2]&65535)<<16>>16)|0)>>16)|0;M=M+(_(c[E>>2]|0,(c[(c[K>>2]|0)+1088+(c[F>>2]<<2)>>2]>>15)+1>>1)|0)|0;c[(c[K>>2]|0)+1088+(c[F>>2]<<2)>>2]=M;c[F>>2]=(c[F>>2]|0)+1}c[F>>2]=0;while(1){if((c[F>>2]|0)>=32)break;M=_(c[E>>2]>>16,(c[(c[K>>2]|0)+832+(c[F>>2]<<2)>>2]&65535)<<16>>16)|0;M=M+((_(c[E>>2]&65535,(c[(c[K>>2]|0)+832+(c[F>>2]<<2)>>2]&65535)<<16>>16)|0)>>16)|0;M=M+(_(c[E>>2]|0,(c[(c[K>>2]|0)+832+(c[F>>2]<<2)>>2]>>15)+1>>1)|0)|0;c[(c[K>>2]|0)+832+(c[F>>2]<<2)>>2]=M;M=_(c[E>>2]>>16,(c[(c[K>>2]|0)+960+(c[F>>2]<<2)>>2]&65535)<<16>>16)|0;M=M+((_(c[E>>2]&65535,(c[(c[K>>2]|0)+960+(c[F>>2]<<2)>>2]&65535)<<16>>16)|0)>>16)|0;M=M+(_(c[E>>2]|0,(c[(c[K>>2]|0)+960+(c[F>>2]<<2)>>2]>>15)+1>>1)|0)|0;c[(c[K>>2]|0)+960+(c[F>>2]<<2)>>2]=M;c[F>>2]=(c[F>>2]|0)+1}c[I>>2]=(c[I>>2]|0)+1}i=L;return}function ve(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;h=i;i=i+48|0;f=h+32|0;n=h+28|0;d=h+24|0;j=h+20|0;g=h+16|0;k=h+12|0;m=h+8|0;l=h+4|0;e=h;c[n>>2]=a;c[d>>2]=b;b=c[n>>2]|0;c[j>>2]=(we((c[n>>2]|0)>0?b:0-b|0)|0)-1;c[m>>2]=c[n>>2]<<c[j>>2];c[k>>2]=536870911/(c[m>>2]>>16|0)|0;c[e>>2]=c[k>>2]<<16;b=_(c[m>>2]>>16,(c[k>>2]&65535)<<16>>16)|0;c[l>>2]=536870912-(b+((_(c[m>>2]&65535,(c[k>>2]&65535)<<16>>16)|0)>>16))<<3;b=_(c[l>>2]>>16,(c[k>>2]&65535)<<16>>16)|0;b=(c[e>>2]|0)+(b+((_(c[l>>2]&65535,(c[k>>2]&65535)<<16>>16)|0)>>16))|0;c[e>>2]=b+(_(c[l>>2]|0,(c[k>>2]>>15)+1>>1)|0);c[g>>2]=61-(c[j>>2]|0)-(c[d>>2]|0);b=c[g>>2]|0;if((c[g>>2]|0)>0)if((b|0)<32){c[f>>2]=c[e>>2]>>c[g>>2];n=c[f>>2]|0;i=h;return n|0}else{c[f>>2]=0;n=c[f>>2]|0;i=h;return n|0}a=c[e>>2]|0;d=0-(c[g>>2]|0)|0;do if((-2147483648>>0-b|0)>(2147483647>>0-(c[g>>2]|0)|0)){if((a|0)>(-2147483648>>d|0)){b=-2147483648>>0-(c[g>>2]|0);break}if((c[e>>2]|0)<(2147483647>>0-(c[g>>2]|0)|0)){b=2147483647>>0-(c[g>>2]|0);break}else{b=c[e>>2]|0;break}}else{if((a|0)>(2147483647>>d|0)){b=2147483647>>0-(c[g>>2]|0);break}if((c[e>>2]|0)<(-2147483648>>0-(c[g>>2]|0)|0)){b=-2147483648>>0-(c[g>>2]|0);break}else{b=c[e>>2]|0;break}}while(0);c[f>>2]=b<<0-(c[g>>2]|0);n=c[f>>2]|0;i=h;return n|0}function we(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if(!(c[b>>2]|0)){a=32;i=d;return a|0}a=32-(32-(aa(c[b>>2]|0)|0))|0;i=d;return a|0}function xe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;h=i;i=i+48|0;f=h+40|0;q=h+36|0;p=h+32|0;j=h+28|0;l=h+24|0;k=h+20|0;g=h+16|0;m=h+12|0;n=h+8|0;o=h+4|0;e=h;c[q>>2]=a;c[p>>2]=b;c[j>>2]=d;b=c[q>>2]|0;c[l>>2]=(we((c[q>>2]|0)>0?b:0-b|0)|0)-1;c[n>>2]=c[q>>2]<<c[l>>2];b=c[p>>2]|0;c[k>>2]=(we((c[p>>2]|0)>0?b:0-b|0)|0)-1;c[o>>2]=c[p>>2]<<c[k>>2];c[m>>2]=536870911/(c[o>>2]>>16|0)|0;b=_(c[n>>2]>>16,(c[m>>2]&65535)<<16>>16)|0;c[e>>2]=b+((_(c[n>>2]&65535,(c[m>>2]&65535)<<16>>16)|0)>>16);b=c[n>>2]|0;a=c[o>>2]|0;d=c[e>>2]|0;d=yj(a|0,((a|0)<0)<<31>>31|0,d|0,((d|0)<0)<<31>>31|0)|0;d=nj(d|0,C|0,32)|0;c[n>>2]=b-(d<<3);d=_(c[n>>2]>>16,(c[m>>2]&65535)<<16>>16)|0;c[e>>2]=(c[e>>2]|0)+(d+((_(c[n>>2]&65535,(c[m>>2]&65535)<<16>>16)|0)>>16));c[g>>2]=29+(c[l>>2]|0)-(c[k>>2]|0)-(c[j>>2]|0);d=c[g>>2]|0;if((c[g>>2]|0)>=0)if((d|0)<32){c[f>>2]=c[e>>2]>>c[g>>2];q=c[f>>2]|0;i=h;return q|0}else{c[f>>2]=0;q=c[f>>2]|0;i=h;return q|0}a=c[e>>2]|0;b=0-(c[g>>2]|0)|0;do if((-2147483648>>0-d|0)>(2147483647>>0-(c[g>>2]|0)|0)){if((a|0)>(-2147483648>>b|0)){d=-2147483648>>0-(c[g>>2]|0);break}if((c[e>>2]|0)<(2147483647>>0-(c[g>>2]|0)|0)){d=2147483647>>0-(c[g>>2]|0);break}else{d=c[e>>2]|0;break}}else{if((a|0)>(2147483647>>b|0)){d=2147483647>>0-(c[g>>2]|0);break}if((c[e>>2]|0)<(-2147483648>>0-(c[g>>2]|0)|0)){d=-2147483648>>0-(c[g>>2]|0);break}else{d=c[e>>2]|0;break}}while(0);c[f>>2]=d<<0-(c[g>>2]|0);q=c[f>>2]|0;i=h;return q|0}
function Uh(a,b,d){a=a|0;b=+b;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;e=l+16|0;f=l+12|0;h=l+8|0;k=l+4|0;j=l;c[e>>2]=a;g[f>>2]=b;c[h>>2]=d;c[j>>2]=c[h>>2]&65532;c[k>>2]=0;while(1){if((c[k>>2]|0)>=(c[j>>2]|0))break;d=(c[e>>2]|0)+((c[k>>2]|0)+0<<2)|0;g[d>>2]=+g[d>>2]*+g[f>>2];d=(c[e>>2]|0)+((c[k>>2]|0)+1<<2)|0;g[d>>2]=+g[d>>2]*+g[f>>2];d=(c[e>>2]|0)+((c[k>>2]|0)+2<<2)|0;g[d>>2]=+g[d>>2]*+g[f>>2];d=(c[e>>2]|0)+((c[k>>2]|0)+3<<2)|0;g[d>>2]=+g[d>>2]*+g[f>>2];c[k>>2]=(c[k>>2]|0)+4}while(1){if((c[k>>2]|0)>=(c[h>>2]|0))break;j=(c[e>>2]|0)+(c[k>>2]<<2)|0;g[j>>2]=+g[j>>2]*+g[f>>2];c[k>>2]=(c[k>>2]|0)+1}i=l;return}function Vh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0;p=i;i=i+176|0;e=p+168|0;f=p+164|0;h=p+160|0;m=p+156|0;n=p+152|0;j=p+16|0;k=p+8|0;l=p+4|0;o=p;c[e>>2]=a;c[f>>2]=b;c[h>>2]=d;c[m>>2]=0;while(1){if((c[m>>2]|0)>=((c[h>>2]|0)+1|0))break;q=+g[(c[f>>2]|0)+(c[m>>2]<<2)>>2];g[j+(c[m>>2]<<3)+4>>2]=q;g[j+(c[m>>2]<<3)>>2]=q;c[m>>2]=(c[m>>2]|0)+1}c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[h>>2]|0))break;g[o>>2]=-+g[j+((c[m>>2]|0)+1<<3)>>2]/(+g[j+4>>2]>9.999999717180685e-10?+g[j+4>>2]:9.999999717180685e-10);g[(c[e>>2]|0)+(c[m>>2]<<2)>>2]=+g[o>>2];c[n>>2]=0;while(1){if((c[n>>2]|0)>=((c[h>>2]|0)-(c[m>>2]|0)|0))break;g[k>>2]=+g[j+((c[n>>2]|0)+(c[m>>2]|0)+1<<3)>>2];g[l>>2]=+g[j+(c[n>>2]<<3)+4>>2];g[j+((c[n>>2]|0)+(c[m>>2]|0)+1<<3)>>2]=+g[k>>2]+ +g[l>>2]*+g[o>>2];g[j+(c[n>>2]<<3)+4>>2]=+g[l>>2]+ +g[k>>2]*+g[o>>2];c[n>>2]=(c[n>>2]|0)+1}c[m>>2]=(c[m>>2]|0)+1}i=p;return +(+g[j+4>>2])}function Wh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;f=o+24|0;h=o+20|0;j=o+16|0;k=o+12|0;n=o+8|0;l=o+4|0;m=o;c[f>>2]=a;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;c[l>>2]=0;while(1){if((c[l>>2]|0)>=(c[k>>2]|0))break;c[(c[h>>2]|0)+(c[l>>2]<<2)>>2]=c[l>>2];c[l>>2]=(c[l>>2]|0)+1}c[l>>2]=1;while(1){if((c[l>>2]|0)>=(c[k>>2]|0))break;g[n>>2]=+g[(c[f>>2]|0)+(c[l>>2]<<2)>>2];c[m>>2]=(c[l>>2]|0)-1;while(1){if((c[m>>2]|0)<0)break;if(!(+g[n>>2]>+g[(c[f>>2]|0)+(c[m>>2]<<2)>>2]))break;g[(c[f>>2]|0)+((c[m>>2]|0)+1<<2)>>2]=+g[(c[f>>2]|0)+(c[m>>2]<<2)>>2];c[(c[h>>2]|0)+((c[m>>2]|0)+1<<2)>>2]=c[(c[h>>2]|0)+(c[m>>2]<<2)>>2];c[m>>2]=(c[m>>2]|0)+-1}g[(c[f>>2]|0)+((c[m>>2]|0)+1<<2)>>2]=+g[n>>2];c[(c[h>>2]|0)+((c[m>>2]|0)+1<<2)>>2]=c[l>>2];c[l>>2]=(c[l>>2]|0)+1}c[l>>2]=c[k>>2];while(1){if((c[l>>2]|0)>=(c[j>>2]|0))break;g[n>>2]=+g[(c[f>>2]|0)+(c[l>>2]<<2)>>2];if(+g[n>>2]>+g[(c[f>>2]|0)+((c[k>>2]|0)-1<<2)>>2]){c[m>>2]=(c[k>>2]|0)-2;while(1){if((c[m>>2]|0)<0)break;if(!(+g[n>>2]>+g[(c[f>>2]|0)+(c[m>>2]<<2)>>2]))break;g[(c[f>>2]|0)+((c[m>>2]|0)+1<<2)>>2]=+g[(c[f>>2]|0)+(c[m>>2]<<2)>>2];c[(c[h>>2]|0)+((c[m>>2]|0)+1<<2)>>2]=c[(c[h>>2]|0)+(c[m>>2]<<2)>>2];c[m>>2]=(c[m>>2]|0)+-1}g[(c[f>>2]|0)+((c[m>>2]|0)+1<<2)>>2]=+g[n>>2];c[(c[h>>2]|0)+((c[m>>2]|0)+1<<2)>>2]=c[l>>2]}c[l>>2]=(c[l>>2]|0)+1}i=o;return}function Xh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;A=i;i=i+80|0;h=A+64|0;j=A+60|0;k=A+56|0;l=A+52|0;n=A+48|0;r=A+44|0;x=A+40|0;m=A+36|0;y=A+32|0;o=A+28|0;w=A+24|0;q=A+20|0;s=A+16|0;v=A+12|0;u=A+8|0;p=A+4|0;t=A;c[h>>2]=a;c[j>>2]=b;c[k>>2]=d;c[l>>2]=e;if(!((((c[k>>2]|0)<1|(c[j>>2]|0)<1)^1)&(c[h>>2]|0)!=0&(c[l>>2]|0)!=0)){i=A;return}c[r>>2]=0;while(1){if((c[r>>2]|0)>=(_(c[j>>2]|0,c[k>>2]|0)|0))break;if(2.0<+g[(c[h>>2]|0)+(c[r>>2]<<2)>>2])f=2.0;else f=+g[(c[h>>2]|0)+(c[r>>2]<<2)>>2];if(!(-2.0>f))if(2.0<+g[(c[h>>2]|0)+(c[r>>2]<<2)>>2])f=2.0;else f=+g[(c[h>>2]|0)+(c[r>>2]<<2)>>2];else f=-2.0;g[(c[h>>2]|0)+(c[r>>2]<<2)>>2]=f;c[r>>2]=(c[r>>2]|0)+1}c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[k>>2]|0))break;c[x>>2]=(c[h>>2]|0)+(c[n>>2]<<2);g[m>>2]=+g[(c[l>>2]|0)+(c[n>>2]<<2)>>2];c[r>>2]=0;while(1){if((c[r>>2]|0)>=(c[j>>2]|0))break;e=_(c[r>>2]|0,c[k>>2]|0)|0;if(+g[(c[x>>2]|0)+(e<<2)>>2]*+g[m>>2]>=0.0)break;d=_(c[r>>2]|0,c[k>>2]|0)|0;b=_(c[r>>2]|0,c[k>>2]|0)|0;a=_(c[r>>2]|0,c[k>>2]|0)|0;e=_(c[r>>2]|0,c[k>>2]|0)|0;g[(c[x>>2]|0)+(e<<2)>>2]=+g[(c[x>>2]|0)+(d<<2)>>2]+ +g[m>>2]*+g[(c[x>>2]|0)+(b<<2)>>2]*+g[(c[x>>2]|0)+(a<<2)>>2];c[r>>2]=(c[r>>2]|0)+1}c[o>>2]=0;g[y>>2]=+g[c[x>>2]>>2];do{c[v>>2]=0;c[r>>2]=c[o>>2];while(1){if((c[r>>2]|0)>=(c[j>>2]|0))break;e=_(c[r>>2]|0,c[k>>2]|0)|0;if(+g[(c[x>>2]|0)+(e<<2)>>2]>1.0)break;e=_(c[r>>2]|0,c[k>>2]|0)|0;if(+g[(c[x>>2]|0)+(e<<2)>>2]<-1.0)break;c[r>>2]=(c[r>>2]|0)+1}if((c[r>>2]|0)==(c[j>>2]|0)){z=23;break}c[u>>2]=c[r>>2];e=c[r>>2]|0;c[q>>2]=e;c[w>>2]=e;e=_(c[r>>2]|0,c[k>>2]|0)|0;g[s>>2]=+N(+(+g[(c[x>>2]|0)+(e<<2)>>2]));while(1){if((c[w>>2]|0)<=0)break;a=_(c[r>>2]|0,c[k>>2]|0)|0;e=_((c[w>>2]|0)-1|0,c[k>>2]|0)|0;if(!(+g[(c[x>>2]|0)+(a<<2)>>2]*+g[(c[x>>2]|0)+(e<<2)>>2]>=0.0))break;c[w>>2]=(c[w>>2]|0)+-1}while(1){if((c[q>>2]|0)>=(c[j>>2]|0))break;a=_(c[r>>2]|0,c[k>>2]|0)|0;e=_(c[q>>2]|0,c[k>>2]|0)|0;if(!(+g[(c[x>>2]|0)+(a<<2)>>2]*+g[(c[x>>2]|0)+(e<<2)>>2]>=0.0))break;e=_(c[q>>2]|0,c[k>>2]|0)|0;f=+N(+(+g[(c[x>>2]|0)+(e<<2)>>2]));if(f>+g[s>>2]){e=_(c[q>>2]|0,c[k>>2]|0)|0;g[s>>2]=+N(+(+g[(c[x>>2]|0)+(e<<2)>>2]));c[u>>2]=c[q>>2]}c[q>>2]=(c[q>>2]|0)+1}if(!(c[w>>2]|0)){d=_(c[r>>2]|0,c[k>>2]|0)|0;d=+g[(c[x>>2]|0)+(d<<2)>>2]*+g[c[x>>2]>>2]>=0.0}else d=0;c[v>>2]=d&1;g[m>>2]=(+g[s>>2]-1.0)/(+g[s>>2]*+g[s>>2]);e=_(c[r>>2]|0,c[k>>2]|0)|0;if(+g[(c[x>>2]|0)+(e<<2)>>2]>0.0)g[m>>2]=-+g[m>>2];c[r>>2]=c[w>>2];while(1){if((c[r>>2]|0)>=(c[q>>2]|0))break;d=_(c[r>>2]|0,c[k>>2]|0)|0;b=_(c[r>>2]|0,c[k>>2]|0)|0;a=_(c[r>>2]|0,c[k>>2]|0)|0;e=_(c[r>>2]|0,c[k>>2]|0)|0;g[(c[x>>2]|0)+(e<<2)>>2]=+g[(c[x>>2]|0)+(d<<2)>>2]+ +g[m>>2]*+g[(c[x>>2]|0)+(b<<2)>>2]*+g[(c[x>>2]|0)+(a<<2)>>2];c[r>>2]=(c[r>>2]|0)+1}a:do if((c[v>>2]|0)!=0&(c[u>>2]|0)>=2){g[t>>2]=+g[y>>2]-+g[c[x>>2]>>2];g[p>>2]=+g[t>>2]/+(c[u>>2]|0);c[r>>2]=c[o>>2];while(1){if((c[r>>2]|0)>=(c[u>>2]|0))break a;g[t>>2]=+g[t>>2]-+g[p>>2];e=_(c[r>>2]|0,c[k>>2]|0)|0;e=(c[x>>2]|0)+(e<<2)|0;g[e>>2]=+g[e>>2]+ +g[t>>2];e=_(c[r>>2]|0,c[k>>2]|0)|0;if(1.0<+g[(c[x>>2]|0)+(e<<2)>>2])f=1.0;else{e=_(c[r>>2]|0,c[k>>2]|0)|0;f=+g[(c[x>>2]|0)+(e<<2)>>2]}if(!(-1.0>f)){e=_(c[r>>2]|0,c[k>>2]|0)|0;if(1.0<+g[(c[x>>2]|0)+(e<<2)>>2])f=1.0;else{e=_(c[r>>2]|0,c[k>>2]|0)|0;f=+g[(c[x>>2]|0)+(e<<2)>>2]}}else f=-1.0;e=_(c[r>>2]|0,c[k>>2]|0)|0;g[(c[x>>2]|0)+(e<<2)>>2]=f;c[r>>2]=(c[r>>2]|0)+1}}while(0);c[o>>2]=c[q>>2]}while((c[o>>2]|0)!=(c[j>>2]|0));if((z|0)==23){z=0;g[m>>2]=0.0}g[(c[l>>2]|0)+(c[n>>2]<<2)>>2]=+g[m>>2];c[n>>2]=(c[n>>2]|0)+1}i=A;return}function Yh(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0;j=i;i=i+16|0;f=j+8|0;g=j+4|0;h=j;c[g>>2]=b;c[h>>2]=e;e=c[g>>2]|0;if((c[g>>2]|0)<252){a[c[h>>2]>>0]=e;c[f>>2]=1;h=c[f>>2]|0;i=j;return h|0}else{a[c[h>>2]>>0]=252+(e&3);a[(c[h>>2]|0)+1>>0]=(c[g>>2]|0)-(d[c[h>>2]>>0]|0)>>2;c[f>>2]=2;h=c[f>>2]|0;i=j;return h|0}return 0}function Zh(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h+8|0;f=h+4|0;g=h;c[e>>2]=a;c[f>>2]=b;b=d[c[e>>2]>>0]|0;if((d[c[e>>2]>>0]|0)&128|0){c[g>>2]=b>>3&3;c[g>>2]=(c[f>>2]<<c[g>>2]|0)/400|0;g=c[g>>2]|0;i=h;return g|0}a=d[c[e>>2]>>0]|0;if((b&96|0)!=96){c[g>>2]=a>>3&3;b=c[f>>2]|0;if((c[g>>2]|0)==3){c[g>>2]=(b*60|0)/1e3|0;g=c[g>>2]|0;i=h;return g|0}else{c[g>>2]=(b<<c[g>>2]|0)/100|0;g=c[g>>2]|0;i=h;return g|0}}else{b=c[f>>2]|0;if(a&8|0)b=(b|0)/50|0;else b=(b|0)/100|0;c[g>>2]=b;g=c[g>>2]|0;i=h;return g|0}return 0}function _h(e,f,g,h,j,k,l,m){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;J=i;i=i+80|0;n=J+72|0;o=J+68|0;p=J+64|0;q=J+60|0;r=J+56|0;s=J+52|0;t=J+48|0;u=J+44|0;v=J+40|0;C=J+36|0;w=J+32|0;z=J+28|0;x=J+24|0;y=J+77|0;H=J+76|0;B=J+20|0;D=J+16|0;F=J+12|0;A=J+8|0;E=J+4|0;G=J;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=j;c[t>>2]=k;c[u>>2]=l;c[v>>2]=m;c[F>>2]=0;c[A>>2]=c[o>>2];if(!(c[t>>2]|0)){c[n>>2]=-1;I=c[n>>2]|0;i=J;return I|0}c[B>>2]=Zh(c[o>>2]|0,48e3)|0;c[x>>2]=0;k=c[o>>2]|0;c[o>>2]=k+1;a[H>>0]=a[k>>0]|0;c[p>>2]=(c[p>>2]|0)+-1;c[D>>2]=c[p>>2];a:do switch(d[H>>0]&3|0){case 0:{c[z>>2]=1;break}case 1:{c[z>>2]=2;c[x>>2]=1;if(!(c[q>>2]|0)){if(!(c[p>>2]&1)){c[D>>2]=(c[p>>2]|0)/2|0;b[c[t>>2]>>1]=c[D>>2];break a}c[n>>2]=-4;I=c[n>>2]|0;i=J;return I|0}break}case 2:{c[z>>2]=2;c[w>>2]=$h(c[o>>2]|0,c[p>>2]|0,c[t>>2]|0)|0;c[p>>2]=(c[p>>2]|0)-(c[w>>2]|0);if((b[c[t>>2]>>1]|0)>=0?(b[c[t>>2]>>1]|0)<=(c[p>>2]|0):0){c[o>>2]=(c[o>>2]|0)+(c[w>>2]|0);c[D>>2]=(c[p>>2]|0)-(b[c[t>>2]>>1]|0);break a}c[n>>2]=-4;I=c[n>>2]|0;i=J;return I|0}default:{if((c[p>>2]|0)<1){c[n>>2]=-4;I=c[n>>2]|0;i=J;return I|0}k=c[o>>2]|0;c[o>>2]=k+1;a[y>>0]=a[k>>0]|0;c[z>>2]=d[y>>0]&63;if((c[z>>2]|0)>0?(_(c[B>>2]|0,c[z>>2]|0)|0)<=5760:0){c[p>>2]=(c[p>>2]|0)+-1;b:do if(d[y>>0]&64|0){while(1){if((c[p>>2]|0)<=0)break;k=c[o>>2]|0;c[o>>2]=k+1;c[E>>2]=d[k>>0];c[p>>2]=(c[p>>2]|0)+-1;c[G>>2]=(c[E>>2]|0)==255?254:c[E>>2]|0;c[p>>2]=(c[p>>2]|0)-(c[G>>2]|0);c[F>>2]=(c[F>>2]|0)+(c[G>>2]|0);if((c[E>>2]|0)!=255)break b}c[n>>2]=-4;I=c[n>>2]|0;i=J;return I|0}while(0);if((c[p>>2]|0)<0){c[n>>2]=-4;I=c[n>>2]|0;i=J;return I|0}c[x>>2]=((d[y>>0]&128|0)!=0^1)&1;if(c[x>>2]|0){if(c[q>>2]|0)break a;c[D>>2]=(c[p>>2]|0)/(c[z>>2]|0)|0;I=_(c[D>>2]|0,c[z>>2]|0)|0;if((I|0)!=(c[p>>2]|0)){c[n>>2]=-4;I=c[n>>2]|0;i=J;return I|0}c[C>>2]=0;while(1){if((c[C>>2]|0)>=((c[z>>2]|0)-1|0))break a;b[(c[t>>2]|0)+(c[C>>2]<<1)>>1]=c[D>>2];c[C>>2]=(c[C>>2]|0)+1}}c[D>>2]=c[p>>2];c[C>>2]=0;while(1){if((c[C>>2]|0)>=((c[z>>2]|0)-1|0))break;c[w>>2]=$h(c[o>>2]|0,c[p>>2]|0,(c[t>>2]|0)+(c[C>>2]<<1)|0)|0;c[p>>2]=(c[p>>2]|0)-(c[w>>2]|0);if((b[(c[t>>2]|0)+(c[C>>2]<<1)>>1]|0)<0){I=29;break}if((b[(c[t>>2]|0)+(c[C>>2]<<1)>>1]|0)>(c[p>>2]|0)){I=29;break}c[o>>2]=(c[o>>2]|0)+(c[w>>2]|0);c[D>>2]=(c[D>>2]|0)-((c[w>>2]|0)+(b[(c[t>>2]|0)+(c[C>>2]<<1)>>1]|0));c[C>>2]=(c[C>>2]|0)+1}if((I|0)==29){c[n>>2]=-4;I=c[n>>2]|0;i=J;return I|0}if((c[D>>2]|0)>=0)break a;c[n>>2]=-4;I=c[n>>2]|0;i=J;return I|0}c[n>>2]=-4;I=c[n>>2]|0;i=J;return I|0}}while(0);c:do if(c[q>>2]|0){c[w>>2]=$h(c[o>>2]|0,c[p>>2]|0,(c[t>>2]|0)+(c[z>>2]<<1)+-2|0)|0;c[p>>2]=(c[p>>2]|0)-(c[w>>2]|0);if((b[(c[t>>2]|0)+((c[z>>2]|0)-1<<1)>>1]|0)>=0?(b[(c[t>>2]|0)+((c[z>>2]|0)-1<<1)>>1]|0)<=(c[p>>2]|0):0){c[o>>2]=(c[o>>2]|0)+(c[w>>2]|0);if(!(c[x>>2]|0)){if(((c[w>>2]|0)+(b[(c[t>>2]|0)+((c[z>>2]|0)-1<<1)>>1]|0)|0)<=(c[D>>2]|0))break;c[n>>2]=-4;I=c[n>>2]|0;i=J;return I|0}I=_(b[(c[t>>2]|0)+((c[z>>2]|0)-1<<1)>>1]|0,c[z>>2]|0)|0;if((I|0)>(c[p>>2]|0)){c[n>>2]=-4;I=c[n>>2]|0;i=J;return I|0}c[C>>2]=0;while(1){if((c[C>>2]|0)>=((c[z>>2]|0)-1|0))break c;b[(c[t>>2]|0)+(c[C>>2]<<1)>>1]=b[(c[t>>2]|0)+((c[z>>2]|0)-1<<1)>>1]|0;c[C>>2]=(c[C>>2]|0)+1}}c[n>>2]=-4;I=c[n>>2]|0;i=J;return I|0}else{if((c[D>>2]|0)<=1275){b[(c[t>>2]|0)+((c[z>>2]|0)-1<<1)>>1]=c[D>>2];break}c[n>>2]=-4;I=c[n>>2]|0;i=J;return I|0}while(0);if(c[u>>2]|0)c[c[u>>2]>>2]=(c[o>>2]|0)-(c[A>>2]|0);c[C>>2]=0;while(1){if((c[C>>2]|0)>=(c[z>>2]|0))break;if(c[s>>2]|0)c[(c[s>>2]|0)+(c[C>>2]<<2)>>2]=c[o>>2];c[o>>2]=(c[o>>2]|0)+(b[(c[t>>2]|0)+(c[C>>2]<<1)>>1]|0);c[C>>2]=(c[C>>2]|0)+1}if(c[v>>2]|0)c[c[v>>2]>>2]=(c[F>>2]|0)+((c[o>>2]|0)-(c[A>>2]|0));if(c[r>>2]|0)a[c[r>>2]>>0]=a[H>>0]|0;c[n>>2]=c[z>>2];I=c[n>>2]|0;i=J;return I|0}function $h(a,e,f){a=a|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;l=i;i=i+16|0;g=l+12|0;h=l+8|0;j=l+4|0;k=l;c[h>>2]=a;c[j>>2]=e;c[k>>2]=f;if((c[j>>2]|0)<1){b[c[k>>2]>>1]=-1;c[g>>2]=-1;f=c[g>>2]|0;i=l;return f|0}if((d[c[h>>2]>>0]|0|0)<252){b[c[k>>2]>>1]=d[c[h>>2]>>0]|0;c[g>>2]=1;f=c[g>>2]|0;i=l;return f|0}if((c[j>>2]|0)<2){b[c[k>>2]>>1]=-1;c[g>>2]=-1;f=c[g>>2]|0;i=l;return f|0}else{b[c[k>>2]>>1]=((d[(c[h>>2]|0)+1>>0]|0)<<2)+(d[c[h>>2]>>0]|0);c[g>>2]=2;f=c[g>>2]|0;i=l;return f|0}return 0}function ai(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=i;i=i+32|0;b=h+16|0;d=h+12|0;g=h+8|0;e=h+4|0;f=h;c[d>>2]=a;if((c[d>>2]|0)<1|(c[d>>2]|0)>2){c[b>>2]=0;g=c[b>>2]|0;i=h;return g|0}c[f>>2]=Pd(g)|0;if(c[f>>2]|0){c[b>>2]=0;g=c[b>>2]|0;i=h;return g|0}else{c[g>>2]=bi(c[g>>2]|0)|0;c[e>>2]=Fb(c[d>>2]|0)|0;f=bi(88)|0;c[b>>2]=f+(c[g>>2]|0)+(c[e>>2]|0);g=c[b>>2]|0;i=h;return g|0}return 0}function bi(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2]=a;c[d>>2]=4;a=_((((c[e>>2]|0)+(c[d>>2]|0)-1|0)>>>0)/((c[d>>2]|0)>>>0)|0,c[d>>2]|0)|0;i=b;return a|0}function ci(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+48|0;n=o;e=o+32|0;f=o+28|0;g=o+24|0;h=o+20|0;m=o+16|0;j=o+12|0;k=o+8|0;l=o+4|0;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;if(!((c[g>>2]|0)!=48e3&(c[g>>2]|0)!=24e3&(c[g>>2]|0)!=16e3&(c[g>>2]|0)!=12e3&(c[g>>2]|0)!=8e3)?!((c[h>>2]|0)!=1&(c[h>>2]|0)!=2):0){a=c[f>>2]|0;oj(a|0,0,ai(c[h>>2]|0)|0)|0;c[k>>2]=Pd(l)|0;if(c[k>>2]|0){c[e>>2]=-3;n=c[e>>2]|0;i=o;return n|0}c[l>>2]=bi(c[l>>2]|0)|0;a=bi(88)|0;c[(c[f>>2]|0)+4>>2]=a;c[c[f>>2]>>2]=(c[(c[f>>2]|0)+4>>2]|0)+(c[l>>2]|0);c[m>>2]=(c[f>>2]|0)+(c[(c[f>>2]|0)+4>>2]|0);c[j>>2]=(c[f>>2]|0)+(c[c[f>>2]>>2]|0);a=c[h>>2]|0;c[(c[f>>2]|0)+8>>2]=a;c[(c[f>>2]|0)+48>>2]=a;c[(c[f>>2]|0)+12>>2]=c[g>>2];c[(c[f>>2]|0)+16+8>>2]=c[(c[f>>2]|0)+12>>2];c[(c[f>>2]|0)+16>>2]=c[(c[f>>2]|0)+8>>2];c[k>>2]=Qd(c[m>>2]|0)|0;if(c[k>>2]|0){c[e>>2]=-3;n=c[e>>2]|0;i=o;return n|0}c[k>>2]=Hb(c[j>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;if(c[k>>2]|0){c[e>>2]=-3;n=c[e>>2]|0;i=o;return n|0}else{a=c[j>>2]|0;c[n>>2]=0;Kb(a,10016,n)|0;c[(c[f>>2]|0)+60>>2]=0;c[(c[f>>2]|0)+64>>2]=(c[g>>2]|0)/400|0;n=di()|0;c[(c[f>>2]|0)+44>>2]=n;c[e>>2]=0;n=c[e>>2]|0;i=o;return n|0}}c[e>>2]=-1;n=c[e>>2]|0;i=o;return n|0}function di(){return 0}function ei(a,d,e,f,h,j,k,l,m){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;N=i;i=i+208|0;G=N+88|0;H=N+84|0;n=N+80|0;o=N+76|0;I=N+72|0;J=N+68|0;p=N+64|0;q=N+60|0;r=N+56|0;s=N+52|0;v=N+48|0;w=N+44|0;t=N+40|0;x=N+36|0;F=N+192|0;z=N+32|0;y=N+28|0;A=N+24|0;B=N+20|0;E=N+96|0;K=N+16|0;L=N+12|0;u=N+8|0;C=N+4|0;D=N;c[H>>2]=a;c[n>>2]=d;c[o>>2]=e;c[I>>2]=f;c[J>>2]=h;c[p>>2]=j;c[q>>2]=k;c[r>>2]=l;c[s>>2]=m;if((c[p>>2]|0)<0|(c[p>>2]|0)>1){c[G>>2]=-1;M=c[G>>2]|0;i=N;return M|0}if((c[p>>2]|0)!=0|(c[o>>2]|0)==0|(c[n>>2]|0)==0?(c[J>>2]|0)%((c[(c[H>>2]|0)+12>>2]|0)/400|0|0)|0|0:0){c[G>>2]=-1;M=c[G>>2]|0;i=N;return M|0}if((c[o>>2]|0)==0|(c[n>>2]|0)==0){c[K>>2]=0;while(1){n=(c[I>>2]|0)+((_(c[K>>2]|0,c[(c[H>>2]|0)+8>>2]|0)|0)<<2)|0;c[L>>2]=fi(c[H>>2]|0,0,0,n,(c[J>>2]|0)-(c[K>>2]|0)|0,0)|0;n=c[L>>2]|0;if((c[L>>2]|0)<0){M=9;break}c[K>>2]=(c[K>>2]|0)+n;if((c[K>>2]|0)>=(c[J>>2]|0)){M=11;break}}if((M|0)==9){c[G>>2]=n;M=c[G>>2]|0;i=N;return M|0}else if((M|0)==11){ii()|0;c[(c[H>>2]|0)+72>>2]=c[K>>2];c[G>>2]=c[K>>2];M=c[G>>2]|0;i=N;return M|0}}if((c[o>>2]|0)<0){c[G>>2]=-1;M=c[G>>2]|0;i=N;return M|0}c[A>>2]=ji(c[n>>2]|0)|0;c[y>>2]=ki(c[n>>2]|0)|0;c[z>>2]=Zh(c[n>>2]|0,c[(c[H>>2]|0)+12>>2]|0)|0;c[B>>2]=li(c[n>>2]|0)|0;c[t>>2]=_h(c[n>>2]|0,c[o>>2]|0,c[q>>2]|0,F,0,E,x,c[r>>2]|0)|0;if((c[t>>2]|0)<0){c[G>>2]=c[t>>2];M=c[G>>2]|0;i=N;return M|0}c[n>>2]=(c[n>>2]|0)+(c[x>>2]|0);if(c[p>>2]|0){if(!((c[A>>2]|0)==1002?1:(c[J>>2]|0)<(c[z>>2]|0))?(c[(c[H>>2]|0)+56>>2]|0)!=1002:0){c[u>>2]=c[(c[H>>2]|0)+72>>2];if((c[J>>2]|0)-(c[z>>2]|0)|0?(c[C>>2]=ei(c[H>>2]|0,0,0,c[I>>2]|0,(c[J>>2]|0)-(c[z>>2]|0)|0,0,0,0,c[s>>2]|0)|0,(c[C>>2]|0)<0):0){c[(c[H>>2]|0)+72>>2]=c[u>>2];c[G>>2]=c[C>>2];M=c[G>>2]|0;i=N;return M|0}c[(c[H>>2]|0)+56>>2]=c[A>>2];c[(c[H>>2]|0)+52>>2]=c[y>>2];c[(c[H>>2]|0)+64>>2]=c[z>>2];c[(c[H>>2]|0)+48>>2]=c[B>>2];M=(c[I>>2]|0)+((_(c[(c[H>>2]|0)+8>>2]|0,(c[J>>2]|0)-(c[z>>2]|0)|0)|0)<<2)|0;c[C>>2]=fi(c[H>>2]|0,c[n>>2]|0,b[E>>1]|0,M,c[z>>2]|0,1)|0;if((c[C>>2]|0)<0){c[G>>2]=c[C>>2];M=c[G>>2]|0;i=N;return M|0}else{ii()|0;c[(c[H>>2]|0)+72>>2]=c[J>>2];c[G>>2]=c[J>>2];M=c[G>>2]|0;i=N;return M|0}}c[G>>2]=ei(c[H>>2]|0,0,0,c[I>>2]|0,c[J>>2]|0,0,0,0,c[s>>2]|0)|0;M=c[G>>2]|0;i=N;return M|0}L=_(c[t>>2]|0,c[z>>2]|0)|0;if((L|0)>(c[J>>2]|0)){c[G>>2]=-2;M=c[G>>2]|0;i=N;return M|0}c[(c[H>>2]|0)+56>>2]=c[A>>2];c[(c[H>>2]|0)+52>>2]=c[y>>2];c[(c[H>>2]|0)+64>>2]=c[z>>2];c[(c[H>>2]|0)+48>>2]=c[B>>2];c[w>>2]=0;c[v>>2]=0;while(1){if((c[v>>2]|0)>=(c[t>>2]|0))break;L=(c[I>>2]|0)+((_(c[w>>2]|0,c[(c[H>>2]|0)+8>>2]|0)|0)<<2)|0;c[D>>2]=fi(c[H>>2]|0,c[n>>2]|0,b[E+(c[v>>2]<<1)>>1]|0,L,(c[J>>2]|0)-(c[w>>2]|0)|0,0)|0;if((c[D>>2]|0)<0){M=31;break}c[n>>2]=(c[n>>2]|0)+(b[E+(c[v>>2]<<1)>>1]|0);c[w>>2]=(c[w>>2]|0)+(c[D>>2]|0);c[v>>2]=(c[v>>2]|0)+1}if((M|0)==31){c[G>>2]=c[D>>2];M=c[G>>2]|0;i=N;return M|0}c[(c[H>>2]|0)+72>>2]=c[w>>2];ii()|0;if(c[s>>2]|0)Xh(c[I>>2]|0,c[w>>2]|0,c[(c[H>>2]|0)+8>>2]|0,(c[H>>2]|0)+76|0);else{g[(c[H>>2]|0)+76+4>>2]=0.0;g[(c[H>>2]|0)+76>>2]=0.0}c[G>>2]=c[w>>2];M=c[G>>2]|0;i=N;return M|0}function fi(d,e,f,h,j,k){d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,Y=0,Z=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ja=0,ka=0,la=0,ma=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0;ta=i;i=i+320|0;fa=ta+80|0;ea=ta+72|0;da=ta+64|0;ca=ta+56|0;ba=ta+48|0;aa=ta+40|0;$=ta+32|0;Z=ta+24|0;Y=ta+16|0;y=ta+8|0;x=ta;qa=ta+308|0;ra=ta+304|0;A=ta+300|0;B=ta+296|0;ja=ta+292|0;ka=ta+288|0;C=ta+284|0;t=ta+280|0;H=ta+276|0;N=ta+272|0;v=ta+268|0;pa=ta+264|0;L=ta+216|0;u=ta+212|0;o=ta+208|0;z=ta+204|0;m=ta+200|0;P=ta+196|0;S=ta+192|0;sa=ta+188|0;O=ta+184|0;W=ta+180|0;V=ta+176|0;Q=ta+172|0;R=ta+168|0;K=ta+164|0;F=ta+160|0;D=ta+156|0;E=ta+152|0;n=ta+148|0;oa=ta+144|0;ga=ta+140|0;T=ta+136|0;G=ta+132|0;l=ta+128|0;la=ta+124|0;ma=ta+120|0;r=ta+116|0;p=ta+112|0;s=ta+108|0;q=ta+104|0;w=ta+100|0;I=ta+96|0;U=ta+312|0;J=ta+92|0;M=ta+88|0;ha=ta+84|0;c[ra>>2]=d;c[A>>2]=e;c[B>>2]=f;c[ja>>2]=h;c[ka>>2]=j;c[C>>2]=k;c[v>>2]=0;c[pa>>2]=0;c[P>>2]=0;c[W>>2]=0;c[Q>>2]=0;c[R>>2]=0;c[K>>2]=0;c[T>>2]=0;c[t>>2]=(c[ra>>2]|0)+(c[(c[ra>>2]|0)+4>>2]|0);c[H>>2]=(c[ra>>2]|0)+(c[c[ra>>2]>>2]|0);c[oa>>2]=(c[(c[ra>>2]|0)+12>>2]|0)/50|0;c[n>>2]=c[oa>>2]>>1;c[E>>2]=c[n>>2]>>1;c[D>>2]=c[E>>2]>>1;if((c[ka>>2]|0)<(c[D>>2]|0)){c[qa>>2]=-2;sa=c[qa>>2]|0;i=ta;return sa|0}if((c[ka>>2]|0)<(((c[(c[ra>>2]|0)+12>>2]|0)/25|0)*3|0))e=c[ka>>2]|0;else e=((c[(c[ra>>2]|0)+12>>2]|0)/25|0)*3|0;c[ka>>2]=e;if((c[B>>2]|0)<=1){c[A>>2]=0;if((c[ka>>2]|0)<(c[(c[ra>>2]|0)+64>>2]|0))e=c[ka>>2]|0;else e=c[(c[ra>>2]|0)+64>>2]|0;c[ka>>2]=e}do if(!(c[A>>2]|0)){c[sa>>2]=c[ka>>2];c[O>>2]=c[(c[ra>>2]|0)+60>>2];if(!(c[O>>2]|0)){c[N>>2]=0;while(1){if((c[N>>2]|0)>=(_(c[sa>>2]|0,c[(c[ra>>2]|0)+8>>2]|0)|0))break;g[(c[ja>>2]|0)+(c[N>>2]<<2)>>2]=0.0;c[N>>2]=(c[N>>2]|0)+1}c[qa>>2]=c[sa>>2];sa=c[qa>>2]|0;i=ta;return sa|0}if((c[sa>>2]|0)>(c[oa>>2]|0)){while(1){c[l>>2]=fi(c[ra>>2]|0,0,0,c[ja>>2]|0,(c[sa>>2]|0)<(c[oa>>2]|0)?c[sa>>2]|0:c[oa>>2]|0,0)|0;e=c[l>>2]|0;if((c[l>>2]|0)<0){k=20;break}pa=_(e,c[(c[ra>>2]|0)+8>>2]|0)|0;c[ja>>2]=(c[ja>>2]|0)+(pa<<2);c[sa>>2]=(c[sa>>2]|0)-(c[l>>2]|0);if((c[sa>>2]|0)<=0){k=22;break}}if((k|0)==20){c[qa>>2]=e;sa=c[qa>>2]|0;i=ta;return sa|0}else if((k|0)==22){c[qa>>2]=c[ka>>2];sa=c[qa>>2]|0;i=ta;return sa|0}}if((c[sa>>2]|0)<(c[oa>>2]|0)){if((c[sa>>2]|0)>(c[n>>2]|0)){c[sa>>2]=c[n>>2];break}if(((c[O>>2]|0)!=1e3?(c[sa>>2]|0)>(c[E>>2]|0):0)?(c[sa>>2]|0)<(c[n>>2]|0):0)c[sa>>2]=c[E>>2]}}else{c[sa>>2]=c[(c[ra>>2]|0)+64>>2];c[O>>2]=c[(c[ra>>2]|0)+56>>2];Yb(L,c[A>>2]|0,c[B>>2]|0)}while(0);c[G>>2]=0;c[z>>2]=1;c[m>>2]=1;do if(c[A>>2]|0?(c[(c[ra>>2]|0)+60>>2]|0)>0:0){if(!(((c[O>>2]|0)==1002?(c[(c[ra>>2]|0)+60>>2]|0)!=1002:0)?!(c[(c[ra>>2]|0)+68>>2]|0):0)){if((c[O>>2]|0)==1002)break;if((c[(c[ra>>2]|0)+60>>2]|0)!=1002)break}c[W>>2]=1;e=_(c[E>>2]|0,c[(c[ra>>2]|0)+8>>2]|0)|0;if((c[O>>2]|0)==1002){c[m>>2]=e;break}else{c[z>>2]=e;break}}while(0);m=c[m>>2]|0;c[la>>2]=ia()|0;e=i;i=i+((1*(m<<2)|0)+15&-16)|0;if((c[W>>2]|0)!=0&(c[O>>2]|0)==1002){c[P>>2]=e;fi(c[ra>>2]|0,0,0,c[P>>2]|0,(c[E>>2]|0)<(c[sa>>2]|0)?c[E>>2]|0:c[sa>>2]|0,0)|0}a:do if((c[sa>>2]|0)>(c[ka>>2]|0)){c[qa>>2]=-1;c[ma>>2]=1}else{c[ka>>2]=c[sa>>2];if((c[O>>2]|0)==1002|(c[G>>2]|0)!=0)e=1;else e=_((c[n>>2]|0)>(c[ka>>2]|0)?c[n>>2]|0:c[ka>>2]|0,c[(c[ra>>2]|0)+8>>2]|0)|0;c[o>>2]=e;j=i;i=i+((1*(c[o>>2]<<1)|0)+15&-16)|0;b:do if((c[O>>2]|0)!=1002){c[s>>2]=j;if((c[(c[ra>>2]|0)+60>>2]|0)==1002)Qd(c[t>>2]|0)|0;if(10>(((c[sa>>2]|0)*1e3|0)/(c[(c[ra>>2]|0)+12>>2]|0)|0|0))e=10;else e=((c[sa>>2]|0)*1e3|0)/(c[(c[ra>>2]|0)+12>>2]|0)|0;c[(c[ra>>2]|0)+16+16>>2]=e;do if(c[A>>2]|0){c[(c[ra>>2]|0)+16+4>>2]=c[(c[ra>>2]|0)+48>>2];e=c[ra>>2]|0;if((c[O>>2]|0)!=1e3){c[e+16+12>>2]=16e3;break}k=c[ra>>2]|0;if((c[e+52>>2]|0)==1101){c[k+16+12>>2]=8e3;break}if((c[k+52>>2]|0)==1102){c[(c[ra>>2]|0)+16+12>>2]=12e3;break}else{c[(c[ra>>2]|0)+16+12>>2]=16e3;break}}while(0);c[r>>2]=(c[A>>2]|0)==0?1:c[C>>2]<<1;c[p>>2]=0;c:while(1){c[q>>2]=(c[p>>2]|0)==0&1;c[v>>2]=Rd(c[t>>2]|0,(c[ra>>2]|0)+16|0,c[r>>2]|0,c[q>>2]|0,L,c[s>>2]|0,u,c[(c[ra>>2]|0)+44>>2]|0)|0;d:do if(c[v>>2]|0){if(!(c[r>>2]|0))break c;c[u>>2]=c[ka>>2];c[N>>2]=0;while(1){if((c[N>>2]|0)>=(_(c[ka>>2]|0,c[(c[ra>>2]|0)+8>>2]|0)|0))break d;b[(c[s>>2]|0)+(c[N>>2]<<1)>>1]=0;c[N>>2]=(c[N>>2]|0)+1}}while(0);o=_(c[u>>2]|0,c[(c[ra>>2]|0)+8>>2]|0)|0;c[s>>2]=(c[s>>2]|0)+(o<<1);c[p>>2]=(c[p>>2]|0)+(c[u>>2]|0);if((c[p>>2]|0)>=(c[ka>>2]|0))break b}c[qa>>2]=-3;c[ma>>2]=1;break a}while(0);c[V>>2]=0;if((c[C>>2]|0)==0&(c[O>>2]|0)!=1002&(c[A>>2]|0)!=0?(v=(gi(L)|0)+17|0,(v+(((c[(c[ra>>2]|0)+56>>2]|0)==1001&1)*20|0)|0)<=(c[B>>2]<<3|0)):0){if((c[O>>2]|0)==1001)c[Q>>2]=dc(L,12)|0;else c[Q>>2]=1;if(c[Q>>2]|0){c[K>>2]=dc(L,1)|0;if((c[O>>2]|0)==1001)e=(fc(L,256)|0)+2|0;else{e=c[B>>2]|0;e=e-((gi(L)|0)+7>>3)|0}c[R>>2]=e;c[B>>2]=(c[B>>2]|0)-(c[R>>2]|0);v=c[B>>2]<<3;if((v|0)<(gi(L)|0)){c[B>>2]=0;c[R>>2]=0;c[Q>>2]=0}v=L+4|0;c[v>>2]=(c[v>>2]|0)-(c[R>>2]|0)}}if((c[O>>2]|0)!=1002)c[V>>2]=17;c[w>>2]=21;switch(c[(c[ra>>2]|0)+52>>2]|0){case 1101:{c[w>>2]=13;break}case 1103:case 1102:{c[w>>2]=17;break}case 1104:{c[w>>2]=19;break}case 1105:{c[w>>2]=21;break}default:{}}v=c[H>>2]|0;c[x>>2]=c[w>>2];Kb(v,10012,x)|0;x=c[H>>2]|0;c[y>>2]=c[(c[ra>>2]|0)+48>>2];Kb(x,10008,y)|0;if(c[Q>>2]|0){c[W>>2]=0;c[z>>2]=1}e=i;i=i+((1*(c[z>>2]<<2)|0)+15&-16)|0;if((c[W>>2]|0)!=0&(c[O>>2]|0)!=1002){c[P>>2]=e;fi(c[ra>>2]|0,0,0,c[P>>2]|0,(c[E>>2]|0)<(c[sa>>2]|0)?c[E>>2]|0:c[sa>>2]|0,0)|0}if(c[Q>>2]|0)e=_(c[E>>2]|0,c[(c[ra>>2]|0)+8>>2]|0)|0;else e=1;c[S>>2]=e;e=i;i=i+((1*(c[S>>2]<<2)|0)+15&-16)|0;if((c[Q>>2]|0)!=0&(c[K>>2]|0)!=0){S=c[H>>2]|0;c[Y>>2]=0;Kb(S,10010,Y)|0;Lb(c[H>>2]|0,(c[A>>2]|0)+(c[B>>2]|0)|0,c[R>>2]|0,e,c[E>>2]|0,0,0)|0;Y=c[H>>2]|0;c[Z>>2]=T+(((T-T|0)/4|0)<<2);Kb(Y,4031,Z)|0}Z=c[H>>2]|0;c[$>>2]=c[V>>2];Kb(Z,10010,$)|0;do if((c[O>>2]|0)==1e3){a[U>>0]=a[30523]|0;a[U+1>>0]=a[30524]|0;e:do if(!(c[G>>2]|0)){c[N>>2]=0;while(1){if((c[N>>2]|0)>=(_(c[ka>>2]|0,c[(c[ra>>2]|0)+8>>2]|0)|0))break e;g[(c[ja>>2]|0)+(c[N>>2]<<2)>>2]=0.0;c[N>>2]=(c[N>>2]|0)+1}}while(0);if((c[(c[ra>>2]|0)+60>>2]|0)==1001){if((c[Q>>2]|0)!=0&(c[K>>2]|0)!=0?c[(c[ra>>2]|0)+68>>2]|0:0)break;oa=c[H>>2]|0;c[ba>>2]=0;Kb(oa,10010,ba)|0;Lb(c[H>>2]|0,U,2,c[ja>>2]|0,c[D>>2]|0,0,c[G>>2]|0)|0}}else{c[I>>2]=(c[oa>>2]|0)<(c[ka>>2]|0)?c[oa>>2]|0:c[ka>>2]|0;do if((c[O>>2]|0)!=(c[(c[ra>>2]|0)+60>>2]|0)){if((c[(c[ra>>2]|0)+60>>2]|0)<=0)break;if(c[(c[ra>>2]|0)+68>>2]|0)break;Kb(c[H>>2]|0,4028,aa)|0}while(0);c[pa>>2]=Lb(c[H>>2]|0,c[C>>2]|0?0:c[A>>2]|0,c[B>>2]|0,c[ja>>2]|0,c[I>>2]|0,L,c[G>>2]|0)|0}while(0);f:do if(!((c[O>>2]|0)==1002|(c[G>>2]|0)!=0)){c[N>>2]=0;while(1){if((c[N>>2]|0)>=(_(c[ka>>2]|0,c[(c[ra>>2]|0)+8>>2]|0)|0))break f;g[(c[ja>>2]|0)+(c[N>>2]<<2)>>2]=+g[(c[ja>>2]|0)+(c[N>>2]<<2)>>2]+ +(b[j+(c[N>>2]<<1)>>1]|0)*.000030517578125;c[N>>2]=(c[N>>2]|0)+1}}while(0);oa=c[H>>2]|0;c[ca>>2]=J+(((J-J|0)/4|0)<<2);Kb(oa,10015,ca)|0;c[ga>>2]=c[(c[J>>2]|0)+60>>2];if(!((c[Q>>2]|0)==0|(c[K>>2]|0)!=0)){Kb(c[H>>2]|0,4028,da)|0;oa=c[H>>2]|0;c[ea>>2]=0;Kb(oa,10010,ea)|0;Lb(c[H>>2]|0,(c[A>>2]|0)+(c[B>>2]|0)|0,c[R>>2]|0,e,c[E>>2]|0,0,0)|0;ea=c[H>>2]|0;c[fa>>2]=T+(((T-T|0)/4|0)<<2);Kb(ea,4031,fa)|0;ea=(c[ja>>2]|0)+((_(c[(c[ra>>2]|0)+8>>2]|0,(c[ka>>2]|0)-(c[D>>2]|0)|0)|0)<<2)|0;fa=e+((_(c[(c[ra>>2]|0)+8>>2]|0,c[D>>2]|0)|0)<<2)|0;oa=(c[ja>>2]|0)+((_(c[(c[ra>>2]|0)+8>>2]|0,(c[ka>>2]|0)-(c[D>>2]|0)|0)|0)<<2)|0;hi(ea,fa,oa,c[D>>2]|0,c[(c[ra>>2]|0)+8>>2]|0,c[ga>>2]|0,c[(c[ra>>2]|0)+12>>2]|0)}if((c[Q>>2]|0)!=0&(c[K>>2]|0)!=0){c[F>>2]=0;while(1){if((c[F>>2]|0)>=(c[(c[ra>>2]|0)+8>>2]|0))break;c[N>>2]=0;while(1){if((c[N>>2]|0)>=(c[D>>2]|0))break;fa=_(c[(c[ra>>2]|0)+8>>2]|0,c[N>>2]|0)|0;oa=_(c[(c[ra>>2]|0)+8>>2]|0,c[N>>2]|0)|0;g[(c[ja>>2]|0)+(oa+(c[F>>2]|0)<<2)>>2]=+g[e+(fa+(c[F>>2]|0)<<2)>>2];c[N>>2]=(c[N>>2]|0)+1}c[F>>2]=(c[F>>2]|0)+1}ea=e+((_(c[(c[ra>>2]|0)+8>>2]|0,c[D>>2]|0)|0)<<2)|0;fa=(c[ja>>2]|0)+((_(c[(c[ra>>2]|0)+8>>2]|0,c[D>>2]|0)|0)<<2)|0;oa=(c[ja>>2]|0)+((_(c[(c[ra>>2]|0)+8>>2]|0,c[D>>2]|0)|0)<<2)|0;hi(ea,fa,oa,c[D>>2]|0,c[(c[ra>>2]|0)+8>>2]|0,c[ga>>2]|0,c[(c[ra>>2]|0)+12>>2]|0)}do if(c[W>>2]|0){if((c[sa>>2]|0)<(c[E>>2]|0)){hi(c[P>>2]|0,c[ja>>2]|0,c[ja>>2]|0,c[D>>2]|0,c[(c[ra>>2]|0)+8>>2]|0,c[ga>>2]|0,c[(c[ra>>2]|0)+12>>2]|0);break}c[N>>2]=0;while(1){if((c[N>>2]|0)>=(_(c[(c[ra>>2]|0)+8>>2]|0,c[D>>2]|0)|0))break;g[(c[ja>>2]|0)+(c[N>>2]<<2)>>2]=+g[(c[P>>2]|0)+(c[N>>2]<<2)>>2];c[N>>2]=(c[N>>2]|0)+1}ea=(c[P>>2]|0)+((_(c[(c[ra>>2]|0)+8>>2]|0,c[D>>2]|0)|0)<<2)|0;fa=(c[ja>>2]|0)+((_(c[(c[ra>>2]|0)+8>>2]|0,c[D>>2]|0)|0)<<2)|0;oa=(c[ja>>2]|0)+((_(c[(c[ra>>2]|0)+8>>2]|0,c[D>>2]|0)|0)<<2)|0;hi(ea,fa,oa,c[D>>2]|0,c[(c[ra>>2]|0)+8>>2]|0,c[ga>>2]|0,c[(c[ra>>2]|0)+12>>2]|0)}while(0);g:do if(c[(c[ra>>2]|0)+40>>2]|0){g[M>>2]=+X(+(+(c[(c[ra>>2]|0)+40>>2]|0)*6.488140788860619e-04*.6931471805599453));c[N>>2]=0;while(1){if((c[N>>2]|0)>=(_(c[ka>>2]|0,c[(c[ra>>2]|0)+8>>2]|0)|0))break g;g[ha>>2]=+g[(c[ja>>2]|0)+(c[N>>2]<<2)>>2]*+g[M>>2];g[(c[ja>>2]|0)+(c[N>>2]<<2)>>2]=+g[ha>>2];c[N>>2]=(c[N>>2]|0)+1}}while(0);if((c[B>>2]|0)<=1)c[(c[ra>>2]|0)+84>>2]=0;else c[(c[ra>>2]|0)+84>>2]=c[L+28>>2]^c[T>>2];c[(c[ra>>2]|0)+60>>2]=c[O>>2];if(c[Q>>2]|0)e=(c[K>>2]|0)!=0^1;else e=0;c[(c[ra>>2]|0)+68>>2]=e&1;if((c[pa>>2]|0)>=0)ii()|0;c[qa>>2]=(c[pa>>2]|0)<0?c[pa>>2]|0:c[sa>>2]|0;c[ma>>2]=1}while(0);na(c[la>>2]|0);sa=c[qa>>2]|0;i=ta;return sa|0}function gi(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=(c[(c[d>>2]|0)+20>>2]|0)-(32-(aa(c[(c[d>>2]|0)+28>>2]|0)|0))|0;i=b;return a|0}function hi(a,b,d,e,f,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;u=i;i=i+48|0;k=u+40|0;l=u+36|0;m=u+32|0;n=u+28|0;o=u+24|0;p=u+20|0;v=u+16|0;r=u+12|0;q=u+8|0;s=u+4|0;t=u;c[k>>2]=a;c[l>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=h;c[v>>2]=j;c[s>>2]=48e3/(c[v>>2]|0)|0;c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[o>>2]|0))break;c[r>>2]=0;while(1){if((c[r>>2]|0)>=(c[n>>2]|0))break;h=_(c[r>>2]|0,c[s>>2]|0)|0;e=_(c[r>>2]|0,c[s>>2]|0)|0;g[t>>2]=+g[(c[p>>2]|0)+(h<<2)>>2]*+g[(c[p>>2]|0)+(e<<2)>>2];e=_(c[r>>2]|0,c[o>>2]|0)|0;h=_(c[r>>2]|0,c[o>>2]|0)|0;v=_(c[r>>2]|0,c[o>>2]|0)|0;g[(c[m>>2]|0)+(v+(c[q>>2]|0)<<2)>>2]=+g[t>>2]*+g[(c[l>>2]|0)+(e+(c[q>>2]|0)<<2)>>2]+(1.0-+g[t>>2])*+g[(c[k>>2]|0)+(h+(c[q>>2]|0)<<2)>>2];c[r>>2]=(c[r>>2]|0)+1}c[q>>2]=(c[q>>2]|0)+1}i=u;return}function ii(){return 0}function ji(a){a=a|0;var b=0,e=0,f=0;f=i;i=i+16|0;b=f+4|0;e=f;c[b>>2]=a;do if(!((d[c[b>>2]>>0]|0)&128|0))if(((d[c[b>>2]>>0]|0)&96|0)==96){c[e>>2]=1001;break}else{c[e>>2]=1e3;break}else c[e>>2]=1002;while(0);i=f;return c[e>>2]|0}function ki(a){a=a|0;var b=0,e=0,f=0,g=0;g=i;i=i+16|0;b=g+4|0;f=g;c[b>>2]=a;e=d[c[b>>2]>>0]|0;if((d[c[b>>2]>>0]|0)&128|0){e=1102+(e>>5&3)|0;c[f>>2]=e;c[f>>2]=(c[f>>2]|0)==1102?1101:e;f=c[f>>2]|0;i=g;return f|0}a=d[c[b>>2]>>0]|0;if((e&96|0)==96){c[f>>2]=a&16|0?1105:1104;f=c[f>>2]|0;i=g;return f|0}else{c[f>>2]=1101+(a>>5&3);f=c[f>>2]|0;i=g;return f|0}return 0}function li(a){a=a|0;var b=0,e=0;e=i;i=i+16|0;b=e;c[b>>2]=a;i=e;return ((d[c[b>>2]>>0]|0)&4|0?2:1)|0}function mi(a,d,e,f,h,j){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=i;i=i+48|0;l=v+40|0;m=v+36|0;n=v+32|0;o=v+28|0;p=v+24|0;q=v+20|0;r=v+16|0;u=v+12|0;t=v+8|0;k=v+4|0;s=v;c[m>>2]=a;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=h;c[r>>2]=j;if((c[q>>2]|0)<=0){c[l>>2]=-1;u=c[l>>2]|0;i=v;return u|0}do if(!((c[n>>2]|0)!=0&(c[o>>2]|0)>0^1|(c[r>>2]|0)!=0)){c[k>>2]=ni(c[m>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;if((c[k>>2]|0)>0){c[q>>2]=(c[q>>2]|0)<(c[k>>2]|0)?c[q>>2]|0:c[k>>2]|0;break}c[l>>2]=-4;u=c[l>>2]|0;i=v;return u|0}while(0);a=_(c[q>>2]|0,c[(c[m>>2]|0)+8>>2]|0)|0;c[s>>2]=ia()|0;d=i;i=i+((1*(a<<2)|0)+15&-16)|0;c[u>>2]=ei(c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,d,c[q>>2]|0,c[r>>2]|0,0,0,1)|0;a:do if((c[u>>2]|0)>0){c[t>>2]=0;while(1){if((c[t>>2]|0)>=(_(c[u>>2]|0,c[(c[m>>2]|0)+8>>2]|0)|0))break a;r=qi(+g[d+(c[t>>2]<<2)>>2])|0;b[(c[p>>2]|0)+(c[t>>2]<<1)>>1]=r;c[t>>2]=(c[t>>2]|0)+1}}while(0);c[l>>2]=c[u>>2];na(c[s>>2]|0);u=c[l>>2]|0;i=v;return u|0}function ni(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;f=e+8|0;h=e+4|0;g=e;c[f>>2]=a;c[h>>2]=b;c[g>>2]=d;b=oi(c[h>>2]|0,c[g>>2]|0,c[(c[f>>2]|0)+12>>2]|0)|0;i=e;return b|0}function oi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;j=i;i=i+32|0;e=j+20|0;f=j+16|0;l=j+12|0;g=j+8|0;h=j+4|0;k=j;c[f>>2]=a;c[l>>2]=b;c[g>>2]=d;c[k>>2]=pi(c[f>>2]|0,c[l>>2]|0)|0;d=c[k>>2]|0;if((c[k>>2]|0)<0){c[e>>2]=d;l=c[e>>2]|0;i=j;return l|0}c[h>>2]=_(d,Zh(c[f>>2]|0,c[g>>2]|0)|0)|0;if(((c[h>>2]|0)*25|0)>((c[g>>2]|0)*3|0)){c[e>>2]=-4;l=c[e>>2]|0;i=j;return l|0}else{c[e>>2]=c[h>>2];l=c[e>>2]|0;i=j;return l|0}return 0}function pi(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;e=j+12|0;f=j+8|0;g=j+4|0;h=j;c[f>>2]=a;c[g>>2]=b;do if((c[g>>2]|0)>=1){c[h>>2]=(d[c[f>>2]>>0]|0)&3;if(!(c[h>>2]|0)){c[e>>2]=1;break}if((c[h>>2]|0)!=3){c[e>>2]=2;break}if((c[g>>2]|0)<2){c[e>>2]=-4;break}else{c[e>>2]=(d[(c[f>>2]|0)+1>>0]|0)&63;break}}else c[e>>2]=-1;while(0);i=j;return c[e>>2]|0}function qi(a){a=+a;var b=0,c=0;c=i;i=i+16|0;b=c;g[b>>2]=a;g[b>>2]=+g[b>>2]*32768.0;g[b>>2]=+g[b>>2]>-32768.0?+g[b>>2]:-32768.0;g[b>>2]=+g[b>>2]<32767.0?+g[b>>2]:32767.0;b=(ij(+g[b>>2])|0)&65535;i=c;return b|0}function ri(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;h=p+24|0;j=p+20|0;k=p+16|0;l=p+12|0;m=p+8|0;n=p+4|0;o=p;c[j>>2]=a;c[k>>2]=b;c[l>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;if((c[n>>2]|0)<=0){c[h>>2]=-1;a=c[h>>2]|0;i=p;return a|0}else{c[h>>2]=ei(c[j>>2]|0,c[k>>2]|0,c[l>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,0,0,0)|0;a=c[h>>2]|0;i=p;return a|0}return 0}function si(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=i;i=i+80|0;q=t+8|0;r=t+76|0;e=t+72|0;u=t+68|0;s=t+64|0;f=t+48|0;h=t+44|0;g=t+40|0;j=t+36|0;k=t+32|0;l=t+28|0;m=t+24|0;n=t+20|0;o=t+16|0;p=t+12|0;c[e>>2]=a;c[u>>2]=b;c[s>>2]=0;c[h>>2]=(c[e>>2]|0)+(c[(c[e>>2]|0)+4>>2]|0);c[g>>2]=(c[e>>2]|0)+(c[c[e>>2]>>2]|0);c[f>>2]=d;a:do switch(c[u>>2]|0){case 4009:{d=(c[f>>2]|0)+(4-1)&~(4-1);u=c[d>>2]|0;c[f>>2]=d+4;c[j>>2]=u;if(c[j>>2]|0){c[c[j>>2]>>2]=c[(c[e>>2]|0)+52>>2];e=20}else e=21;break}case 4031:{d=(c[f>>2]|0)+(4-1)&~(4-1);u=c[d>>2]|0;c[f>>2]=d+4;c[k>>2]=u;if(c[k>>2]|0){c[c[k>>2]>>2]=c[(c[e>>2]|0)+84>>2];e=20}else e=21;break}case 4028:{oj((c[e>>2]|0)+48|0,0,88-((c[e>>2]|0)+48-(c[e>>2]|0))|0)|0;Kb(c[g>>2]|0,4028,t)|0;Qd(c[h>>2]|0)|0;c[(c[e>>2]|0)+48>>2]=c[(c[e>>2]|0)+8>>2];c[(c[e>>2]|0)+64>>2]=(c[(c[e>>2]|0)+12>>2]|0)/400|0;e=20;break}case 4029:{d=(c[f>>2]|0)+(4-1)&~(4-1);u=c[d>>2]|0;c[f>>2]=d+4;c[l>>2]=u;if(c[l>>2]|0){c[c[l>>2]>>2]=c[(c[e>>2]|0)+12>>2];e=20}else e=21;break}case 4033:{d=(c[f>>2]|0)+(4-1)&~(4-1);u=c[d>>2]|0;c[f>>2]=d+4;c[m>>2]=u;if(c[m>>2]|0)if((c[(c[e>>2]|0)+60>>2]|0)==1002){e=c[g>>2]|0;c[q>>2]=(c[m>>2]|0)+((((c[m>>2]|0)-(c[m>>2]|0)|0)/4|0)<<2);Kb(e,4033,q)|0;e=20;break a}else{c[c[m>>2]>>2]=c[(c[e>>2]|0)+16+20>>2];e=20;break a}else e=21;break}case 4045:{d=(c[f>>2]|0)+(4-1)&~(4-1);u=c[d>>2]|0;c[f>>2]=d+4;c[n>>2]=u;if(c[n>>2]|0){c[c[n>>2]>>2]=c[(c[e>>2]|0)+40>>2];e=20}else e=21;break}case 4034:{d=(c[f>>2]|0)+(4-1)&~(4-1);u=c[d>>2]|0;c[f>>2]=d+4;c[o>>2]=u;if((c[o>>2]|0)<-32768|(c[o>>2]|0)>32767)e=21;else{c[(c[e>>2]|0)+40>>2]=c[o>>2];e=20}break}case 4039:{d=(c[f>>2]|0)+(4-1)&~(4-1);u=c[d>>2]|0;c[f>>2]=d+4;c[p>>2]=u;if(c[p>>2]|0){c[c[p>>2]>>2]=c[(c[e>>2]|0)+72>>2];e=20}else e=21;break}default:{c[s>>2]=-5;e=20}}while(0);if((e|0)==20){c[r>>2]=c[s>>2];u=c[r>>2]|0;i=t;return u|0}else if((e|0)==21){c[r>>2]=-1;u=c[r>>2]|0;i=t;return u|0}return 0}function ti(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=i;i=i+32|0;b=h+16|0;d=h+12|0;g=h+8|0;e=h+4|0;f=h;c[d>>2]=a;if((c[d>>2]|0)<1|(c[d>>2]|0)>2){c[b>>2]=0;g=c[b>>2]|0;i=h;return g|0}c[f>>2]=Sd(g)|0;if(c[f>>2]|0){c[b>>2]=0;g=c[b>>2]|0;i=h;return g|0}else{c[g>>2]=ui(c[g>>2]|0)|0;c[e>>2]=hb(c[d>>2]|0)|0;f=ui(18220)|0;c[b>>2]=f+(c[g>>2]|0)+(c[e>>2]|0);g=c[b>>2]|0;i=h;return g|0}return 0}function ui(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2]=a;c[d>>2]=4;a=_((((c[e>>2]|0)+(c[d>>2]|0)-1|0)>>>0)/((c[d>>2]|0)>>>0)|0,c[d>>2]|0)|0;i=b;return a|0}function vi(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=i;i=i+64|0;t=u+8|0;s=u;h=u+48|0;j=u+44|0;k=u+40|0;l=u+36|0;m=u+32|0;r=u+28|0;n=u+24|0;o=u+20|0;p=u+16|0;q=u+12|0;c[j>>2]=a;c[k>>2]=d;c[l>>2]=e;c[m>>2]=f;if((!((c[k>>2]|0)!=48e3&(c[k>>2]|0)!=24e3&(c[k>>2]|0)!=16e3&(c[k>>2]|0)!=12e3&(c[k>>2]|0)!=8e3)?!((c[l>>2]|0)!=1&(c[l>>2]|0)!=2):0)?!((c[m>>2]|0)!=2048&(c[m>>2]|0)!=2049&(c[m>>2]|0)!=2051):0){a=c[j>>2]|0;oj(a|0,0,ti(c[l>>2]|0)|0)|0;c[p>>2]=Sd(q)|0;if(c[p>>2]|0){c[h>>2]=-1;t=c[h>>2]|0;i=u;return t|0}c[q>>2]=ui(c[q>>2]|0)|0;a=ui(18220)|0;c[(c[j>>2]|0)+4>>2]=a;c[c[j>>2]>>2]=(c[(c[j>>2]|0)+4>>2]|0)+(c[q>>2]|0);c[r>>2]=(c[j>>2]|0)+(c[(c[j>>2]|0)+4>>2]|0);c[n>>2]=(c[j>>2]|0)+(c[c[j>>2]>>2]|0);a=c[l>>2]|0;c[(c[j>>2]|0)+100>>2]=a;c[(c[j>>2]|0)+14288>>2]=a;c[(c[j>>2]|0)+132>>2]=c[k>>2];a=wi()|0;c[(c[j>>2]|0)+168>>2]=a;c[p>>2]=Td(c[r>>2]|0,c[(c[j>>2]|0)+168>>2]|0,(c[j>>2]|0)+8|0)|0;if(c[p>>2]|0){c[h>>2]=-3;t=c[h>>2]|0;i=u;return t|0}c[(c[j>>2]|0)+8>>2]=c[l>>2];c[(c[j>>2]|0)+8+4>>2]=c[l>>2];c[(c[j>>2]|0)+8+8>>2]=c[(c[j>>2]|0)+132>>2];c[(c[j>>2]|0)+8+12>>2]=16e3;c[(c[j>>2]|0)+8+16>>2]=8e3;c[(c[j>>2]|0)+8+20>>2]=16e3;c[(c[j>>2]|0)+8+24>>2]=20;c[(c[j>>2]|0)+8+28>>2]=25e3;c[(c[j>>2]|0)+8+32>>2]=0;c[(c[j>>2]|0)+8+36>>2]=9;c[(c[j>>2]|0)+8+40>>2]=0;c[(c[j>>2]|0)+8+44>>2]=0;c[(c[j>>2]|0)+8+48>>2]=0;c[(c[j>>2]|0)+8+64>>2]=0;c[o>>2]=jb(c[n>>2]|0,c[k>>2]|0,c[l>>2]|0,c[(c[j>>2]|0)+168>>2]|0)|0;if(c[o>>2]|0){c[h>>2]=-3;t=c[h>>2]|0;i=u;return t|0}else{a=c[n>>2]|0;c[s>>2]=0;lb(a,10016,s)|0;s=c[n>>2]|0;c[t>>2]=c[(c[j>>2]|0)+8+36>>2];lb(s,4010,t)|0;c[(c[j>>2]|0)+136>>2]=1;c[(c[j>>2]|0)+140>>2]=1;c[(c[j>>2]|0)+152>>2]=-1e3;t=3e3+(_(c[k>>2]|0,c[l>>2]|0)|0)|0;c[(c[j>>2]|0)+148>>2]=t;c[(c[j>>2]|0)+96>>2]=c[m>>2];c[(c[j>>2]|0)+112>>2]=-1e3;c[(c[j>>2]|0)+116>>2]=-1e3;c[(c[j>>2]|0)+120>>2]=1105;c[(c[j>>2]|0)+108>>2]=-1e3;c[(c[j>>2]|0)+124>>2]=-1e3;c[(c[j>>2]|0)+128>>2]=-1;c[(c[j>>2]|0)+160>>2]=(c[(c[j>>2]|0)+132>>2]|0)/100|0;c[(c[j>>2]|0)+156>>2]=24;c[(c[j>>2]|0)+144>>2]=5e3;c[(c[j>>2]|0)+104>>2]=(c[(c[j>>2]|0)+132>>2]|0)/250|0;b[(c[j>>2]|0)+14292>>1]=16384;g[(c[j>>2]|0)+14300>>2]=1.0;t=(Sf(60)|0)<<8;c[(c[j>>2]|0)+14296>>2]=t;c[(c[j>>2]|0)+14344>>2]=1;c[(c[j>>2]|0)+14320>>2]=1001;c[(c[j>>2]|0)+14336>>2]=1105;Yi((c[j>>2]|0)+172|0);c[h>>2]=0;t=c[h>>2]|0;i=u;return t|0}}c[h>>2]=-1;t=c[h>>2]|0;i=u;return t|0}function wi(){return 0}function xi(a,b,d,e,f,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;u=i;i=i+48|0;v=u+40|0;k=u+36|0;l=u+32|0;m=u+28|0;n=u+24|0;o=u+20|0;p=u+16|0;t=u+12|0;s=u+8|0;r=u+4|0;q=u;c[v>>2]=a;c[k>>2]=b;c[l>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=h;c[p>>2]=j;c[t>>2]=c[v>>2];c[r>>2]=0;while(1){if((c[r>>2]|0)>=(c[l>>2]|0))break;v=_((c[r>>2]|0)+(c[m>>2]|0)|0,c[p>>2]|0)|0;g[(c[k>>2]|0)+(c[r>>2]<<2)>>2]=+g[(c[t>>2]|0)+(v+(c[n>>2]|0)<<2)>>2]*32768.0;c[r>>2]=(c[r>>2]|0)+1}a:do if((c[o>>2]|0)<=-1){if((c[o>>2]|0)==-2){c[q>>2]=1;while(1){if((c[q>>2]|0)>=(c[p>>2]|0))break a;c[r>>2]=0;while(1){if((c[r>>2]|0)>=(c[l>>2]|0))break;d=_((c[r>>2]|0)+(c[m>>2]|0)|0,c[p>>2]|0)|0;v=(c[k>>2]|0)+(c[r>>2]<<2)|0;g[v>>2]=+g[v>>2]+ +g[(c[t>>2]|0)+(d+(c[q>>2]|0)<<2)>>2]*32768.0;c[r>>2]=(c[r>>2]|0)+1}c[q>>2]=(c[q>>2]|0)+1}}}else{c[r>>2]=0;while(1){if((c[r>>2]|0)>=(c[l>>2]|0))break a;d=_((c[r>>2]|0)+(c[m>>2]|0)|0,c[p>>2]|0)|0;v=(c[k>>2]|0)+(c[r>>2]<<2)|0;g[v>>2]=+g[v>>2]+ +g[(c[t>>2]|0)+(d+(c[o>>2]|0)<<2)>>2]*32768.0;c[r>>2]=(c[r>>2]|0)+1}}while(0);g[s>>2]=1.0;if((c[p>>2]|0)==-2)g[s>>2]=+g[s>>2]/+(c[p>>2]|0);else g[s>>2]=+g[s>>2]/2.0;c[r>>2]=0;while(1){if((c[r>>2]|0)>=(c[l>>2]|0))break;v=(c[k>>2]|0)+(c[r>>2]<<2)|0;g[v>>2]=+g[v>>2]*+g[s>>2];c[r>>2]=(c[r>>2]|0)+1}i=u;return}function yi(a,d,e,f,h,j,k){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;v=i;i=i+48|0;w=v+40|0;l=v+36|0;m=v+32|0;n=v+28|0;o=v+24|0;p=v+20|0;q=v+16|0;u=v+12|0;t=v+8|0;s=v+4|0;r=v;c[w>>2]=a;c[l>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=h;c[p>>2]=j;c[q>>2]=k;c[u>>2]=c[w>>2];c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[m>>2]|0))break;w=_((c[s>>2]|0)+(c[n>>2]|0)|0,c[q>>2]|0)|0;g[(c[l>>2]|0)+(c[s>>2]<<2)>>2]=+(b[(c[u>>2]|0)+(w+(c[o>>2]|0)<<1)>>1]|0);c[s>>2]=(c[s>>2]|0)+1}a:do if((c[p>>2]|0)<=-1){if((c[p>>2]|0)==-2){c[r>>2]=1;while(1){if((c[r>>2]|0)>=(c[q>>2]|0))break a;c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[m>>2]|0))break;e=_((c[s>>2]|0)+(c[n>>2]|0)|0,c[q>>2]|0)|0;w=(c[l>>2]|0)+(c[s>>2]<<2)|0;g[w>>2]=+g[w>>2]+ +(b[(c[u>>2]|0)+(e+(c[r>>2]|0)<<1)>>1]|0);c[s>>2]=(c[s>>2]|0)+1}c[r>>2]=(c[r>>2]|0)+1}}}else{c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[m>>2]|0))break a;e=_((c[s>>2]|0)+(c[n>>2]|0)|0,c[q>>2]|0)|0;w=(c[l>>2]|0)+(c[s>>2]<<2)|0;g[w>>2]=+g[w>>2]+ +(b[(c[u>>2]|0)+(e+(c[p>>2]|0)<<1)>>1]|0);c[s>>2]=(c[s>>2]|0)+1}}while(0);g[t>>2]=.000030517578125;if((c[q>>2]|0)==-2)g[t>>2]=+g[t>>2]/+(c[q>>2]|0);else g[t>>2]=+g[t>>2]/2.0;c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[m>>2]|0))break;w=(c[l>>2]|0)+(c[s>>2]<<2)|0;g[w>>2]=+g[w>>2]*+g[t>>2];c[s>>2]=(c[s>>2]|0)+1}i=v;return}function zi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;f=k+16|0;g=k+12|0;e=k+8|0;h=k+4|0;j=k;c[g>>2]=a;c[e>>2]=b;c[h>>2]=d;if((c[g>>2]|0)<((c[h>>2]|0)/400|0|0)){c[f>>2]=-1;j=c[f>>2]|0;i=k;return j|0}do if((c[e>>2]|0)==5e3)c[j>>2]=c[g>>2];else{if((c[e>>2]|0)==5010){c[j>>2]=(c[h>>2]|0)/50|0;break}if(!((c[e>>2]|0)>=5001&(c[e>>2]|0)<=5006)){c[f>>2]=-1;j=c[f>>2]|0;i=k;return j|0}d=c[h>>2]|0;if((((c[h>>2]|0)*3|0)/50|0|0)<(((c[h>>2]|0)/400|0)<<(c[e>>2]|0)-5001|0))d=(d*3|0)/50|0;else d=((d|0)/400|0)<<(c[e>>2]|0)-5001;c[j>>2]=d}while(0);if((c[j>>2]|0)>(c[g>>2]|0)){c[f>>2]=-1;j=c[f>>2]|0;i=k;return j|0}if(((((((c[j>>2]|0)*400|0)!=(c[h>>2]|0)?((c[j>>2]|0)*200|0)!=(c[h>>2]|0):0)?((c[j>>2]|0)*100|0)!=(c[h>>2]|0):0)?((c[j>>2]|0)*50|0)!=(c[h>>2]|0):0)?((c[j>>2]|0)*25|0)!=(c[h>>2]|0):0)?((c[j>>2]|0)*50|0)!=((c[h>>2]|0)*3|0):0){c[f>>2]=-1;j=c[f>>2]|0;i=k;return j|0}c[f>>2]=c[j>>2];j=c[f>>2]|0;i=k;return j|0}function Ai(a,b,d,e,f,g,h,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=i;i=i+48|0;l=w+40|0;m=w+36|0;n=w+32|0;o=w+28|0;p=w+24|0;q=w+20|0;r=w+16|0;s=w+12|0;t=w+8|0;u=w+4|0;v=w;c[m>>2]=a;c[n>>2]=b;c[o>>2]=d;c[p>>2]=e;c[q>>2]=f;c[r>>2]=g;c[s>>2]=h;c[t>>2]=j;c[u>>2]=k;if((c[o>>2]|0)==5010?(c[n>>2]|0)>=((c[q>>2]|0)/200|0|0):0){c[v>>2]=3;c[v>>2]=Bi(c[m>>2]|0,c[n>>2]|0,c[p>>2]|0,c[q>>2]|0,c[r>>2]|0,0.0,c[u>>2]|0,c[s>>2]|0,c[t>>2]|0)|0;while(1){if((((c[q>>2]|0)/400|0)<<c[v>>2]|0)<=(c[n>>2]|0))break;c[v>>2]=(c[v>>2]|0)+-1}c[n>>2]=((c[q>>2]|0)/400|0)<<c[v>>2]}else c[n>>2]=zi(c[n>>2]|0,c[o>>2]|0,c[q>>2]|0)|0;if((c[n>>2]|0)<0){c[l>>2]=-1;d=c[l>>2]|0;i=w;return d|0}else{c[l>>2]=c[n>>2];d=c[l>>2]|0;i=w;return d|0}return 0}function Bi(a,b,d,e,f,h,j,k,l){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=+h;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;H=i;i=i+304|0;n=H+296|0;m=H+292|0;o=H+288|0;I=H+284|0;p=H+280|0;q=H+276|0;r=H+272|0;s=H+268|0;t=H+264|0;v=H+260|0;z=H+256|0;x=H+144|0;y=H+36|0;B=H+32|0;w=H+28|0;E=H+24|0;D=H+20|0;C=H+16|0;u=H+12|0;F=H+8|0;G=H+4|0;A=H;c[n>>2]=a;c[m>>2]=b;c[o>>2]=d;c[I>>2]=e;c[p>>2]=f;g[q>>2]=h;c[r>>2]=j;c[s>>2]=k;c[t>>2]=l;c[w>>2]=0;c[E>>2]=(c[I>>2]|0)/400|0;a=c[E>>2]|0;c[u>>2]=ia()|0;e=i;i=i+((1*(a<<2)|0)+15&-16)|0;g[x>>2]=+g[c[r>>2]>>2];g[y>>2]=1.0/(+g[c[r>>2]>>2]+1.0000000036274937e-15);if(c[s>>2]|0){c[C>>2]=(c[E>>2]<<1)-(c[s>>2]|0);c[m>>2]=(c[m>>2]|0)-(c[C>>2]|0);g[x+4>>2]=+g[(c[r>>2]|0)+4>>2];g[y+4>>2]=1.0/(+g[(c[r>>2]|0)+4>>2]+1.0000000036274937e-15);g[x+8>>2]=+g[(c[r>>2]|0)+8>>2];g[y+8>>2]=1.0/(+g[(c[r>>2]|0)+8>>2]+1.0000000036274937e-15);c[D>>2]=3}else{c[D>>2]=1;c[C>>2]=0}if(((c[m>>2]|0)/(c[E>>2]|0)|0|0)<24)d=(c[m>>2]|0)/(c[E>>2]|0)|0;else d=24;c[v>>2]=d;g[B>>2]=0.0;c[z>>2]=0;while(1){if((c[z>>2]|0)>=(c[v>>2]|0))break;g[F>>2]=1.0000000036274937e-15;I=_(c[z>>2]|0,c[E>>2]|0)|0;qa[c[t>>2]&3](c[n>>2]|0,e,c[E>>2]|0,I+(c[C>>2]|0)|0,0,-2,c[o>>2]|0);if(!(c[z>>2]|0))g[B>>2]=+g[e>>2];c[A>>2]=0;while(1){if((c[A>>2]|0)>=(c[E>>2]|0))break;g[G>>2]=+g[e+(c[A>>2]<<2)>>2];g[F>>2]=+g[F>>2]+(+g[G>>2]-+g[B>>2])*(+g[G>>2]-+g[B>>2]);g[B>>2]=+g[G>>2];c[A>>2]=(c[A>>2]|0)+1}g[x+((c[z>>2]|0)+(c[D>>2]|0)<<2)>>2]=+g[F>>2];g[y+((c[z>>2]|0)+(c[D>>2]|0)<<2)>>2]=1.0/+g[F>>2];c[z>>2]=(c[z>>2]|0)+1}g[x+((c[z>>2]|0)+(c[D>>2]|0)<<2)>>2]=+g[x+((c[z>>2]|0)+(c[D>>2]|0)-1<<2)>>2];if(c[s>>2]|0)c[v>>2]=24<((c[v>>2]|0)+2|0)?24:(c[v>>2]|0)+2|0;c[w>>2]=Ci(x,y,c[v>>2]|0,~~((+g[q>>2]*.5+1.0)*+(((c[o>>2]|0)*60|0)+40|0)),(c[p>>2]|0)/400|0)|0;g[c[r>>2]>>2]=+g[x+(1<<c[w>>2]<<2)>>2];if(!(c[s>>2]|0)){I=c[w>>2]|0;G=c[u>>2]|0;na(G|0);i=H;return I|0}g[(c[r>>2]|0)+4>>2]=+g[x+((1<<c[w>>2])+1<<2)>>2];g[(c[r>>2]|0)+8>>2]=+g[x+((1<<c[w>>2])+2<<2)>>2];I=c[w>>2]|0;G=c[u>>2]|0;na(G|0);i=H;return I|0}function Ci(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0.0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0;z=i;i=i+3136|0;j=z+3124|0;k=z+3120|0;l=z+3116|0;m=z+3112|0;n=z+3108|0;x=z+3104|0;p=z+1568|0;y=z+32|0;o=z+28|0;w=z+24|0;r=z+20|0;s=z+16|0;t=z+12|0;u=z+8|0;q=z+4|0;v=z;c[j>>2]=a;c[k>>2]=b;c[l>>2]=d;c[m>>2]=e;c[n>>2]=f;do if((c[n>>2]|0)>=80)if((c[n>>2]|0)>160){g[r>>2]=1.0;break}else{g[r>>2]=(+(c[n>>2]|0)-80.0)/80.0;break}else g[r>>2]=0.0;while(0);c[x>>2]=0;while(1){if((c[x>>2]|0)>=16)break;c[y+(c[x>>2]<<2)>>2]=-1;g[p+(c[x>>2]<<2)>>2]=1.0e10;c[x>>2]=(c[x>>2]|0)+1}c[x>>2]=0;while(1){if((c[x>>2]|0)>=4)break;A=+((c[m>>2]|0)+(_(c[n>>2]|0,1<<c[x>>2])|0)|0);h=+g[r>>2];h=A*(h*+Di(c[j>>2]|0,c[k>>2]|0,c[x>>2]|0,(c[l>>2]|0)+1|0)+1.0);g[p+(1<<c[x>>2]<<2)>>2]=h;c[y+(1<<c[x>>2]<<2)>>2]=c[x>>2];c[x>>2]=(c[x>>2]|0)+1}c[x>>2]=1;while(1){if((c[x>>2]|0)>=(c[l>>2]|0))break;c[s>>2]=2;while(1){if((c[s>>2]|0)>=16)break;g[p+(c[x>>2]<<6)+(c[s>>2]<<2)>>2]=+g[p+((c[x>>2]|0)-1<<6)+((c[s>>2]|0)-1<<2)>>2];c[y+(c[x>>2]<<6)+(c[s>>2]<<2)>>2]=(c[s>>2]|0)-1;c[s>>2]=(c[s>>2]|0)+1}c[s>>2]=0;while(1){if((c[s>>2]|0)>=4)break;c[y+(c[x>>2]<<6)+(1<<c[s>>2]<<2)>>2]=1;g[u>>2]=+g[p+((c[x>>2]|0)-1<<6)+4>>2];c[t>>2]=1;while(1){if((c[t>>2]|0)>=4)break;g[v>>2]=+g[p+((c[x>>2]|0)-1<<6)+((1<<(c[t>>2]|0)+1)-1<<2)>>2];if(+g[v>>2]<+g[u>>2]){c[y+(c[x>>2]<<6)+(1<<c[s>>2]<<2)>>2]=(1<<(c[t>>2]|0)+1)-1;g[u>>2]=+g[v>>2]}c[t>>2]=(c[t>>2]|0)+1}A=+((c[m>>2]|0)+(_(c[n>>2]|0,1<<c[s>>2])|0)|0);h=+g[r>>2];g[q>>2]=A*(h*+Di((c[j>>2]|0)+(c[x>>2]<<2)|0,(c[k>>2]|0)+(c[x>>2]<<2)|0,c[s>>2]|0,(c[l>>2]|0)-(c[x>>2]|0)+1|0)+1.0);g[p+(c[x>>2]<<6)+(1<<c[s>>2]<<2)>>2]=+g[u>>2];h=+g[q>>2];if(((c[l>>2]|0)-(c[x>>2]|0)|0)<(1<<c[s>>2]|0)){f=p+(c[x>>2]<<6)+(1<<c[s>>2]<<2)|0;g[f>>2]=+g[f>>2]+h*+((c[l>>2]|0)-(c[x>>2]|0)|0)/+(1<<c[s>>2]|0)}else{f=p+(c[x>>2]<<6)+(1<<c[s>>2]<<2)|0;g[f>>2]=+g[f>>2]+h}c[s>>2]=(c[s>>2]|0)+1}c[x>>2]=(c[x>>2]|0)+1}c[w>>2]=1;g[o>>2]=+g[p+((c[l>>2]|0)-1<<6)+4>>2];c[x>>2]=2;while(1){if((c[x>>2]|0)>=16)break;if(+g[p+((c[l>>2]|0)-1<<6)+(c[x>>2]<<2)>>2]<+g[o>>2]){g[o>>2]=+g[p+((c[l>>2]|0)-1<<6)+(c[x>>2]<<2)>>2];c[w>>2]=c[x>>2]}c[x>>2]=(c[x>>2]|0)+1}c[x>>2]=(c[l>>2]|0)-1;while(1){a=c[w>>2]|0;if((c[x>>2]|0)<0)break;c[w>>2]=c[y+(c[x>>2]<<6)+(a<<2)>>2];c[x>>2]=(c[x>>2]|0)+-1}i=z;return a|0}function Di(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+48|0;k=r+32|0;l=r+28|0;h=r+24|0;j=r+20|0;n=r+16|0;m=r+12|0;o=r+8|0;p=r+4|0;q=r;c[k>>2]=a;c[l>>2]=b;c[h>>2]=d;c[j>>2]=e;g[o>>2]=0.0;g[p>>2]=0.0;if((c[j>>2]|0)<((1<<c[h>>2])+1|0))h=c[j>>2]|0;else h=(1<<c[h>>2])+1|0;c[m>>2]=h;c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[m>>2]|0))break;g[o>>2]=+g[o>>2]+ +g[(c[k>>2]|0)+(c[n>>2]<<2)>>2];g[p>>2]=+g[p>>2]+ +g[(c[l>>2]|0)+(c[n>>2]<<2)>>2];c[n>>2]=(c[n>>2]|0)+1}g[q>>2]=+g[o>>2]*+g[p>>2]/+(_(c[m>>2]|0,c[m>>2]|0)|0);if(0.0>(+g[q>>2]-2.0)*.05000000074505806)f=0.0;else f=(+g[q>>2]-2.0)*.05000000074505806;if(1.0<+O(+f)){f=1.0;i=r;return +f}if(0.0>(+g[q>>2]-2.0)*.05000000074505806)f=0.0;else f=(+g[q>>2]-2.0)*.05000000074505806;f=+O(+f);i=r;return +f}function Ei(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;D=i;i=i+96|0;h=D+84|0;j=D+80|0;E=D+76|0;C=D+72|0;u=D+68|0;v=D+64|0;A=D+60|0;q=D+56|0;r=D+52|0;t=D+48|0;y=D+44|0;z=D+40|0;w=D+36|0;x=D+32|0;B=D+28|0;k=D+24|0;o=D+20|0;l=D+16|0;m=D+12|0;n=D+8|0;p=D+4|0;s=D;c[h>>2]=a;c[j>>2]=b;c[E>>2]=d;c[C>>2]=e;c[B>>2]=(c[E>>2]|0)/(c[j>>2]|0)|0;g[o>>2]=1.0-25.0/+((50>(c[B>>2]|0)?50:c[B>>2]|0)|0);g[t>>2]=0.0;g[r>>2]=0.0;g[q>>2]=0.0;c[k>>2]=0;while(1){if((c[k>>2]|0)>=(c[j>>2]|0))break;g[l>>2]=0.0;g[m>>2]=0.0;g[n>>2]=0.0;g[p>>2]=+g[(c[h>>2]|0)+(c[k>>2]<<1<<2)>>2];g[s>>2]=+g[(c[h>>2]|0)+((c[k>>2]<<1)+1<<2)>>2];g[l>>2]=+g[p>>2]*+g[p>>2];g[m>>2]=+g[p>>2]*+g[s>>2];g[n>>2]=+g[s>>2]*+g[s>>2];g[p>>2]=+g[(c[h>>2]|0)+((c[k>>2]<<1)+2<<2)>>2];g[s>>2]=+g[(c[h>>2]|0)+((c[k>>2]<<1)+3<<2)>>2];g[l>>2]=+g[l>>2]+ +g[p>>2]*+g[p>>2];g[m>>2]=+g[m>>2]+ +g[p>>2]*+g[s>>2];g[n>>2]=+g[n>>2]+ +g[s>>2]*+g[s>>2];g[p>>2]=+g[(c[h>>2]|0)+((c[k>>2]<<1)+4<<2)>>2];g[s>>2]=+g[(c[h>>2]|0)+((c[k>>2]<<1)+5<<2)>>2];g[l>>2]=+g[l>>2]+ +g[p>>2]*+g[p>>2];g[m>>2]=+g[m>>2]+ +g[p>>2]*+g[s>>2];g[n>>2]=+g[n>>2]+ +g[s>>2]*+g[s>>2];g[p>>2]=+g[(c[h>>2]|0)+((c[k>>2]<<1)+6<<2)>>2];g[s>>2]=+g[(c[h>>2]|0)+((c[k>>2]<<1)+7<<2)>>2];g[l>>2]=+g[l>>2]+ +g[p>>2]*+g[p>>2];g[m>>2]=+g[m>>2]+ +g[p>>2]*+g[s>>2];g[n>>2]=+g[n>>2]+ +g[s>>2]*+g[s>>2];g[q>>2]=+g[q>>2]+ +g[l>>2];g[r>>2]=+g[r>>2]+ +g[m>>2];g[t>>2]=+g[t>>2]+ +g[n>>2];c[k>>2]=(c[k>>2]|0)+4}E=c[C>>2]|0;g[E>>2]=+g[E>>2]+ +g[o>>2]*(+g[q>>2]-+g[c[C>>2]>>2]);E=(c[C>>2]|0)+4|0;g[E>>2]=+g[E>>2]+ +g[o>>2]*(+g[r>>2]-+g[(c[C>>2]|0)+4>>2]);E=(c[C>>2]|0)+8|0;g[E>>2]=+g[E>>2]+ +g[o>>2]*(+g[t>>2]-+g[(c[C>>2]|0)+8>>2]);if(0.0>+g[c[C>>2]>>2])f=0.0;else f=+g[c[C>>2]>>2];g[c[C>>2]>>2]=f;if(0.0>+g[(c[C>>2]|0)+4>>2])f=0.0;else f=+g[(c[C>>2]|0)+4>>2];g[(c[C>>2]|0)+4>>2]=f;if(0.0>+g[(c[C>>2]|0)+8>>2])f=0.0;else f=+g[(c[C>>2]|0)+8>>2];g[(c[C>>2]|0)+8>>2]=f;h=c[C>>2]|0;if(+g[c[C>>2]>>2]>+g[(c[C>>2]|0)+8>>2])f=+g[h>>2];else f=+g[h+8>>2];if(f>7.999999797903001e-04){g[y>>2]=+O(+(+g[c[C>>2]>>2]));g[z>>2]=+O(+(+g[(c[C>>2]|0)+8>>2]));g[w>>2]=+O(+(+g[y>>2]));g[x>>2]=+O(+(+g[z>>2]));if(+g[(c[C>>2]|0)+4>>2]<+g[y>>2]*+g[z>>2])f=+g[(c[C>>2]|0)+4>>2];else f=+g[y>>2]*+g[z>>2];g[(c[C>>2]|0)+4>>2]=f;g[u>>2]=+g[(c[C>>2]|0)+4>>2]/(+g[y>>2]*+g[z>>2]+1.0000000036274937e-15);f=+N(+(+g[w>>2]-+g[x>>2]))*1.0;g[v>>2]=f/(+g[w>>2]+1.0000000036274937e-15+ +g[x>>2]);f=+O(+(1.0-+g[u>>2]*+g[u>>2]));g[A>>2]=f*+g[v>>2];h=(c[C>>2]|0)+12|0;g[h>>2]=+g[h>>2]+(+g[A>>2]-+g[(c[C>>2]|0)+12>>2])/+(c[B>>2]|0);h=c[C>>2]|0;if(+g[(c[C>>2]|0)+16>>2]-.019999999552965164/+(c[B>>2]|0)>+g[(c[C>>2]|0)+12>>2])f=+g[h+16>>2]-.019999999552965164/+(c[B>>2]|0);else f=+g[h+12>>2];g[(c[C>>2]|0)+16>>2]=f}else{g[A>>2]=0.0;g[u>>2]=1.0;g[v>>2]=0.0}if(1.0<+g[(c[C>>2]|0)+16>>2]*20.0){f=1.0;i=D;return +f}f=+g[(c[C>>2]|0)+16>>2]*20.0;i=D;return +f}function Fi(e,f,h,j,k,l,m,n,o,p,q,r,s){e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;s=s|0;var t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ja=0,ka=0,la=0,ma=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,mb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0;Rb=i;i=i+1072|0;Db=Rb+168|0;Cb=Rb+160|0;Bb=Rb+152|0;Ab=Rb+144|0;zb=Rb+136|0;yb=Rb+128|0;xb=Rb+120|0;wb=Rb+112|0;vb=Rb+104|0;ub=Rb+96|0;tb=Rb+88|0;sb=Rb+80|0;Ua=Rb+72|0;Ta=Rb+64|0;Sa=Rb+56|0;Ra=Rb+48|0;Qa=Rb+40|0;Pa=Rb+32|0;Oa=Rb+24|0;Na=Rb+16|0;U=Rb+8|0;w=Rb;Ob=Rb+1048|0;Pb=Rb+1044|0;sa=Rb+1040|0;Gb=Rb+1036|0;Qb=Rb+1032|0;aa=Rb+1028|0;ba=Rb+1024|0;u=Rb+1020|0;v=Rb+1016|0;ca=Rb+1012|0;Y=Rb+1008|0;Z=Rb+1004|0;$=Rb+1e3|0;ta=Rb+996|0;Ga=Rb+992|0;gb=Rb+988|0;Xa=Rb+984|0;Nb=Rb+980|0;Ma=Rb+976|0;Hb=Rb+928|0;Va=Rb+920|0;Ea=Rb+916|0;rb=Rb+912|0;Jb=Rb+908|0;Kb=Rb+904|0;hb=Rb+900|0;pb=Rb+896|0;Lb=Rb+892|0;qb=Rb+888|0;W=Rb+884|0;V=Rb+880|0;K=Rb+876|0;Za=Rb+872|0;y=Rb+868|0;Da=Rb+864|0;Ba=Rb+860|0;ib=Rb+856|0;Ya=Rb+852|0;Ib=Rb+848|0;_a=Rb+844|0;F=Rb+840|0;$a=Rb+836|0;fb=Rb+808|0;S=Rb+804|0;T=Rb+800|0;x=Rb+796|0;B=Rb+792|0;z=Rb+788|0;A=Rb+784|0;C=Rb+780|0;E=Rb+776|0;D=Rb+772|0;G=Rb+768|0;H=Rb+680|0;J=Rb+676|0;I=Rb+672|0;N=Rb+640|0;L=Rb+632|0;O=Rb+628|0;Q=Rb+624|0;P=Rb+620|0;R=Rb+616|0;oa=Rb+612|0;ka=Rb+608|0;ha=Rb+604|0;ja=Rb+600|0;la=Rb+596|0;da=Rb+592|0;pa=Rb+588|0;fa=Rb+584|0;qa=Rb+284|0;ea=Rb+280|0;Mb=Rb+276|0;Fb=Rb+272|0;X=Rb+268|0;ra=Rb+264|0;ma=Rb+260|0;Ia=Rb+256|0;ga=Rb+252|0;xa=Rb+248|0;ya=Rb+244|0;Aa=Rb+240|0;ua=Rb+236|0;va=Rb+232|0;za=Rb+1052|0;wa=Rb+228|0;Ca=Rb+224|0;Ha=Rb+220|0;Fa=Rb+216|0;La=Rb+212|0;Ka=Rb+208|0;Wa=Rb+204|0;Ja=Rb+200|0;ab=Rb+196|0;bb=Rb+192|0;cb=Rb+188|0;mb=Rb+184|0;jb=Rb+1056|0;ob=Rb+180|0;kb=Rb+1054|0;db=Rb+176|0;eb=Rb+172|0;c[Pb>>2]=e;c[sa>>2]=f;c[Gb>>2]=h;c[Qb>>2]=j;c[aa>>2]=k;c[ba>>2]=l;c[u>>2]=m;c[v>>2]=n;c[ca>>2]=o;c[Y>>2]=p;c[Z>>2]=q;c[$>>2]=r;c[ta>>2]=s;c[Nb>>2]=0;c[Ea>>2]=0;c[rb>>2]=0;c[Jb>>2]=0;c[Kb>>2]=0;c[hb>>2]=0;c[Lb>>2]=0;c[qb>>2]=0;c[S>>2]=-1;c[T>>2]=-1;c[Ib>>2]=1276<(c[aa>>2]|0)?1276:c[aa>>2]|0;c[(c[Pb>>2]|0)+18216>>2]=0;if(!((((((!(c[(c[Pb>>2]|0)+144>>2]|0)?((c[Gb>>2]|0)*400|0)!=(c[(c[Pb>>2]|0)+132>>2]|0):0)?((c[Gb>>2]|0)*200|0)!=(c[(c[Pb>>2]|0)+132>>2]|0):0)?((c[Gb>>2]|0)*100|0)!=(c[(c[Pb>>2]|0)+132>>2]|0):0)?((c[Gb>>2]|0)*50|0)!=(c[(c[Pb>>2]|0)+132>>2]|0):0)?((c[Gb>>2]|0)*25|0)!=(c[(c[Pb>>2]|0)+132>>2]|0):0)?((c[Gb>>2]|0)*50|0)!=((c[(c[Pb>>2]|0)+132>>2]|0)*3|0):0))Eb=8;if((Eb|0)==8?!((c[Ib>>2]|0)<=0?1:((c[Gb>>2]|0)*400|0)<(c[(c[Pb>>2]|0)+132>>2]|0)):0){c[Ga>>2]=(c[Pb>>2]|0)+(c[(c[Pb>>2]|0)+4>>2]|0);c[gb>>2]=(c[Pb>>2]|0)+(c[c[Pb>>2]>>2]|0);if((c[(c[Pb>>2]|0)+96>>2]|0)==2051)c[y>>2]=0;else c[y>>2]=c[(c[Pb>>2]|0)+104>>2];if((c[ba>>2]|0)<(c[(c[Pb>>2]|0)+156>>2]|0))q=c[ba>>2]|0;else q=c[(c[Pb>>2]|0)+156>>2]|0;c[ba>>2]=q;e=c[gb>>2]|0;c[w>>2]=$a+((($a-$a|0)/4|0)<<2);lb(e,10015,w)|0;c[fb>>2]=0;if((c[(c[Pb>>2]|0)+8+36>>2]|0)>=7?(c[(c[Pb>>2]|0)+132>>2]|0)==48e3:0){c[S>>2]=c[(c[Pb>>2]|0)+172+8508>>2];c[T>>2]=c[(c[Pb>>2]|0)+172+8512>>2];aj((c[Pb>>2]|0)+172|0,c[$a>>2]|0,c[u>>2]|0,c[v>>2]|0,c[Gb>>2]|0,c[ca>>2]|0,c[Y>>2]|0,c[Z>>2]|0,c[(c[Pb>>2]|0)+132>>2]|0,c[ba>>2]|0,c[$>>2]|0,fb)}c[(c[Pb>>2]|0)+128>>2]=-1;c[(c[Pb>>2]|0)+18212>>2]=0;do if(c[fb>>2]|0){if((c[(c[Pb>>2]|0)+112>>2]|0)==-1e3){w=~~+M(+((1.0-+g[fb+20>>2])*100.0+.5));c[(c[Pb>>2]|0)+128>>2]=w}c[x>>2]=c[fb+24>>2];if((c[x>>2]|0)<=12){c[(c[Pb>>2]|0)+18212>>2]=1101;break}if((c[x>>2]|0)<=14){c[(c[Pb>>2]|0)+18212>>2]=1102;break}if((c[x>>2]|0)<=16){c[(c[Pb>>2]|0)+18212>>2]=1103;break}q=(c[Pb>>2]|0)+18212|0;if((c[x>>2]|0)<=18){c[q>>2]=1104;break}else{c[q>>2]=1105;break}}while(0);if((c[(c[Pb>>2]|0)+100>>2]|0)==2?(c[(c[Pb>>2]|0)+108>>2]|0)!=1:0)g[F>>2]=+Ei(c[sa>>2]|0,c[Gb>>2]|0,c[(c[Pb>>2]|0)+132>>2]|0,(c[Pb>>2]|0)+14352|0);else g[F>>2]=0.0;c[_a>>2]=c[y>>2];y=Gi(c[Pb>>2]|0,c[Gb>>2]|0,c[Ib>>2]|0)|0;c[(c[Pb>>2]|0)+148>>2]=y;c[Da>>2]=(c[(c[Pb>>2]|0)+132>>2]|0)/(c[Gb>>2]|0)|0;do if((c[Ib>>2]|0)>=3?(c[(c[Pb>>2]|0)+148>>2]|0)>=((c[Da>>2]|0)*3<<3|0):0){if((c[Da>>2]|0)<50){if((_(c[Ib>>2]|0,c[Da>>2]|0)|0)<300)break;if((c[(c[Pb>>2]|0)+148>>2]|0)<2400)break}if(!(c[(c[Pb>>2]|0)+136>>2]|0)){if((((c[(c[Pb>>2]|0)+148>>2]|0)+(c[Da>>2]<<2)|0)/(c[Da>>2]<<3|0)|0|0)<(c[Ib>>2]|0))q=((c[(c[Pb>>2]|0)+148>>2]|0)+(c[Da>>2]<<2)|0)/(c[Da>>2]<<3|0)|0;else q=c[Ib>>2]|0;c[A>>2]=q;B=_(c[A>>2]|0,c[Da>>2]<<3)|0;c[(c[Pb>>2]|0)+148>>2]=B;c[Ib>>2]=c[A>>2]}c[Ba>>2]=(_(c[Da>>2]|0,c[Ib>>2]|0)|0)<<3;c[Za>>2]=(c[(c[Pb>>2]|0)+148>>2]|0)-(_(((c[(c[Pb>>2]|0)+100>>2]|0)*40|0)+20|0,((c[(c[Pb>>2]|0)+132>>2]|0)/(c[Gb>>2]|0)|0)-50|0)|0);do if((c[(c[Pb>>2]|0)+112>>2]|0)!=3001){if((c[(c[Pb>>2]|0)+112>>2]|0)==3002){c[K>>2]=0;break}q=c[Pb>>2]|0;if((c[(c[Pb>>2]|0)+128>>2]|0)>=0){c[K>>2]=(c[q+128>>2]|0)*327>>8;if((c[(c[Pb>>2]|0)+96>>2]|0)!=2049)break;c[K>>2]=(c[K>>2]|0)<115?c[K>>2]|0:115;break}if((c[q+96>>2]|0)==2048){c[K>>2]=115;break}else{c[K>>2]=48;break}}else c[K>>2]=127;while(0);if((c[(c[Pb>>2]|0)+108>>2]|0)!=-1e3?(c[(c[Pb>>2]|0)+100>>2]|0)==2:0)c[(c[Pb>>2]|0)+14288>>2]=c[(c[Pb>>2]|0)+108>>2];else Eb=73;do if((Eb|0)==73){if((c[(c[Pb>>2]|0)+100>>2]|0)!=2){c[(c[Pb>>2]|0)+14288>>2]=c[(c[Pb>>2]|0)+100>>2];break}c[C>>2]=3e4;q=c[C>>2]|0;if((c[(c[Pb>>2]|0)+14288>>2]|0)==2)c[C>>2]=q-1e3;else c[C>>2]=q+1e3;c[(c[Pb>>2]|0)+14288>>2]=(c[Za>>2]|0)>(c[C>>2]|0)?2:1}while(0);c[Za>>2]=(c[(c[Pb>>2]|0)+148>>2]|0)-(_(((c[(c[Pb>>2]|0)+14288>>2]|0)*40|0)+20|0,((c[(c[Pb>>2]|0)+132>>2]|0)/(c[Gb>>2]|0)|0)-50|0)|0);q=c[Pb>>2]|0;do if((c[(c[Pb>>2]|0)+96>>2]|0)==2051)c[q+14320>>2]=1002;else{if((c[q+124>>2]|0)!=-1e3){c[(c[Pb>>2]|0)+14320>>2]=c[(c[Pb>>2]|0)+124>>2];break}c[E>>2]=~~((1.0-+g[F>>2])*+(c[4508]|0)+ +g[F>>2]*+(c[4510]|0));c[D>>2]=~~((1.0-+g[F>>2])*+(c[4511]|0)+ +g[F>>2]*+(c[4511]|0));F=_(c[K>>2]|0,c[K>>2]|0)|0;c[G>>2]=(c[D>>2]|0)+((_(F,(c[E>>2]|0)-(c[D>>2]|0)|0)|0)>>14);if((c[(c[Pb>>2]|0)+96>>2]|0)==2048)c[G>>2]=(c[G>>2]|0)+8e3;do if((c[(c[Pb>>2]|0)+14324>>2]|0)==1002)c[G>>2]=(c[G>>2]|0)-4e3;else{if((c[(c[Pb>>2]|0)+14324>>2]|0)<=0)break;c[G>>2]=(c[G>>2]|0)+4e3}while(0);c[(c[Pb>>2]|0)+14320>>2]=(c[Za>>2]|0)>=(c[G>>2]|0)?1002:1e3;do if(c[(c[Pb>>2]|0)+8+40>>2]|0){if((c[(c[Pb>>2]|0)+8+32>>2]|0)<=(128-(c[K>>2]|0)>>4|0))break;c[(c[Pb>>2]|0)+14320>>2]=1e3}while(0);if(!((c[K>>2]|0)>100?(c[(c[Pb>>2]|0)+8+44>>2]|0)!=0:0))break;c[(c[Pb>>2]|0)+14320>>2]=1e3}while(0);if((c[(c[Pb>>2]|0)+14320>>2]|0)!=1002?(c[Gb>>2]|0)<((c[(c[Pb>>2]|0)+132>>2]|0)/100|0|0):0)c[(c[Pb>>2]|0)+14320>>2]=1002;if(c[(c[Pb>>2]|0)+164>>2]|0)c[(c[Pb>>2]|0)+14320>>2]=1002;G=_((c[Da>>2]|0)>50?12e3:8e3,c[Gb>>2]|0)|0;if((c[Ib>>2]|0)<((G|0)/(c[(c[Pb>>2]|0)+132>>2]<<3|0)|0|0))c[(c[Pb>>2]|0)+14320>>2]=1002;do if((c[(c[Pb>>2]|0)+14288>>2]|0)==1){if((c[(c[Pb>>2]|0)+14328>>2]|0)!=2){Eb=107;break}if(c[(c[Pb>>2]|0)+8+56>>2]|0){Eb=107;break}if((c[(c[Pb>>2]|0)+14320>>2]|0)==1002){Eb=107;break}if((c[(c[Pb>>2]|0)+14324>>2]|0)==1002){Eb=107;break}c[(c[Pb>>2]|0)+8+56>>2]=1;c[(c[Pb>>2]|0)+14288>>2]=2}else Eb=107;while(0);if((Eb|0)==107)c[(c[Pb>>2]|0)+8+56>>2]=0;do if((c[(c[Pb>>2]|0)+14324>>2]|0)>0){if(!((c[(c[Pb>>2]|0)+14320>>2]|0)!=1002?(c[(c[Pb>>2]|0)+14324>>2]|0)==1002:0)){if((c[(c[Pb>>2]|0)+14320>>2]|0)!=1002)break;if((c[(c[Pb>>2]|0)+14324>>2]|0)==1002)break}c[Jb>>2]=1;c[hb>>2]=(c[(c[Pb>>2]|0)+14320>>2]|0)!=1002&1;if(c[hb>>2]|0)break;if((c[Gb>>2]|0)>=((c[(c[Pb>>2]|0)+132>>2]|0)/100|0|0)){c[(c[Pb>>2]|0)+14320>>2]=c[(c[Pb>>2]|0)+14324>>2];c[Lb>>2]=1;break}else{c[Jb>>2]=0;break}}while(0);if(c[(c[Pb>>2]|0)+14340>>2]|0){c[Jb>>2]=1;c[hb>>2]=1;c[(c[Pb>>2]|0)+14340>>2]=0;c[Ea>>2]=1}do if(c[Jb>>2]|0){G=_(c[Ib>>2]|0,(c[(c[Pb>>2]|0)+132>>2]|0)/200|0)|0;if(257<((G|0)/((c[Gb>>2]|0)+((c[(c[Pb>>2]|0)+132>>2]|0)/200|0)|0)|0|0))q=257;else{q=_(c[Ib>>2]|0,(c[(c[Pb>>2]|0)+132>>2]|0)/200|0)|0;q=(q|0)/((c[Gb>>2]|0)+((c[(c[Pb>>2]|0)+132>>2]|0)/200|0)|0)|0}c[Kb>>2]=q;if(!(c[(c[Pb>>2]|0)+136>>2]|0))break;if((c[Kb>>2]|0)<((c[(c[Pb>>2]|0)+148>>2]|0)/1600|0|0))q=c[Kb>>2]|0;else q=(c[(c[Pb>>2]|0)+148>>2]|0)/1600|0;c[Kb>>2]=q}while(0);do if((c[(c[Pb>>2]|0)+14320>>2]|0)!=1002){if((c[(c[Pb>>2]|0)+14324>>2]|0)!=1002)break;Td(c[Ga>>2]|0,c[(c[Pb>>2]|0)+168>>2]|0,H)|0;c[Ea>>2]=1}while(0);do if((c[(c[Pb>>2]|0)+14320>>2]|0)!=1002){if(c[(c[Pb>>2]|0)+14344>>2]|0){Eb=133;break}if(c[(c[Pb>>2]|0)+8+72>>2]|0)Eb=133}else Eb=133;while(0);do if((Eb|0)==133){c[L>>2]=1105;c[O>>2]=c[Za>>2];do if((c[(c[Pb>>2]|0)+14320>>2]|0)!=1002){c[O>>2]=(_(c[O>>2]|0,45+(c[(c[Pb>>2]|0)+8+36>>2]|0)|0)|0)/50|0;if(c[(c[Pb>>2]|0)+136>>2]|0)break;c[O>>2]=(c[O>>2]|0)-1e3}while(0);do if((c[(c[Pb>>2]|0)+100>>2]|0)==2){if((c[(c[Pb>>2]|0)+108>>2]|0)==1){Eb=139;break}c[J>>2]=18048;c[I>>2]=18080}else Eb=139;while(0);if((Eb|0)==139){c[J>>2]=18112;c[I>>2]=18144}c[Xa>>2]=0;while(1){if((c[Xa>>2]|0)>=8)break;H=_(c[K>>2]|0,c[K>>2]|0)|0;H=(c[(c[I>>2]|0)+(c[Xa>>2]<<2)>>2]|0)+((_(H,(c[(c[J>>2]|0)+(c[Xa>>2]<<2)>>2]|0)-(c[(c[I>>2]|0)+(c[Xa>>2]<<2)>>2]|0)|0)|0)>>14)|0;c[N+(c[Xa>>2]<<2)>>2]=H;c[Xa>>2]=(c[Xa>>2]|0)+1}do{c[Q>>2]=c[N+((c[L>>2]|0)-1102<<1<<2)>>2];c[P>>2]=c[N+(((c[L>>2]|0)-1102<<1)+1<<2)>>2];do if(!(c[(c[Pb>>2]|0)+14344>>2]|0)){q=c[P>>2]|0;m=c[Q>>2]|0;if((c[(c[Pb>>2]|0)+14336>>2]|0)>=(c[L>>2]|0)){c[Q>>2]=m-q;break}else{c[Q>>2]=m+q;break}}while(0);if((c[O>>2]|0)>=(c[Q>>2]|0))break;K=(c[L>>2]|0)+-1|0;c[L>>2]=K}while((K|0)>1101);c[(c[Pb>>2]|0)+14336>>2]=c[L>>2];if(c[(c[Pb>>2]|0)+14344>>2]|0)break;if((c[(c[Pb>>2]|0)+14320>>2]|0)==1002)break;if(c[(c[Pb>>2]|0)+8+76>>2]|0)break;if((c[(c[Pb>>2]|0)+14336>>2]|0)<=1103)break;c[(c[Pb>>2]|0)+14336>>2]=1103}while(0);if((c[(c[Pb>>2]|0)+14336>>2]|0)>(c[(c[Pb>>2]|0)+120>>2]|0))c[(c[Pb>>2]|0)+14336>>2]=c[(c[Pb>>2]|0)+120>>2];if((c[(c[Pb>>2]|0)+116>>2]|0)!=-1e3)c[(c[Pb>>2]|0)+14336>>2]=c[(c[Pb>>2]|0)+116>>2];if((c[Ba>>2]|0)<15e3?(c[(c[Pb>>2]|0)+14320>>2]|0)!=1002:0){if((c[(c[Pb>>2]|0)+14336>>2]|0)<1103)q=c[(c[Pb>>2]|0)+14336>>2]|0;else q=1103;c[(c[Pb>>2]|0)+14336>>2]=q}do if((c[(c[Pb>>2]|0)+132>>2]|0)<=24e3){if((c[(c[Pb>>2]|0)+14336>>2]|0)<=1104)break;c[(c[Pb>>2]|0)+14336>>2]=1104}while(0);do if((c[(c[Pb>>2]|0)+132>>2]|0)<=16e3){if((c[(c[Pb>>2]|0)+14336>>2]|0)<=1103)break;c[(c[Pb>>2]|0)+14336>>2]=1103}while(0);do if((c[(c[Pb>>2]|0)+132>>2]|0)<=12e3){if((c[(c[Pb>>2]|0)+14336>>2]|0)<=1102)break;c[(c[Pb>>2]|0)+14336>>2]=1102}while(0);do if((c[(c[Pb>>2]|0)+132>>2]|0)<=8e3){if((c[(c[Pb>>2]|0)+14336>>2]|0)<=1101)break;c[(c[Pb>>2]|0)+14336>>2]=1101}while(0);do if(c[(c[Pb>>2]|0)+18212>>2]|0){if((c[(c[Pb>>2]|0)+116>>2]|0)!=-1e3)break;do if((c[Za>>2]|0)<=((c[(c[Pb>>2]|0)+14288>>2]|0)*18e3|0)){if((c[(c[Pb>>2]|0)+14320>>2]|0)!=1002){Eb=179;break}c[R>>2]=1101}else Eb=179;while(0);a:do if((Eb|0)==179){do if((c[Za>>2]|0)<=((c[(c[Pb>>2]|0)+14288>>2]|0)*24e3|0)){if((c[(c[Pb>>2]|0)+14320>>2]|0)!=1002)break;c[R>>2]=1102;break a}while(0);if((c[Za>>2]|0)<=((c[(c[Pb>>2]|0)+14288>>2]|0)*3e4|0)){c[R>>2]=1103;break}if((c[Za>>2]|0)<=((c[(c[Pb>>2]|0)+14288>>2]|0)*44e3|0)){c[R>>2]=1104;break}else{c[R>>2]=1105;break}}while(0);if((c[(c[Pb>>2]|0)+18212>>2]|0)>(c[R>>2]|0))q=c[(c[Pb>>2]|0)+18212>>2]|0;else q=c[R>>2]|0;c[(c[Pb>>2]|0)+18212>>2]=q;q=c[Pb>>2]|0;if((c[(c[Pb>>2]|0)+14336>>2]|0)<(c[(c[Pb>>2]|0)+18212>>2]|0))q=c[q+14336>>2]|0;else q=c[q+18212>>2]|0;c[(c[Pb>>2]|0)+14336>>2]=q}while(0);R=c[gb>>2]|0;c[U>>2]=c[ba>>2];lb(R,4036,U)|0;do if((c[(c[Pb>>2]|0)+14320>>2]|0)==1002){if((c[(c[Pb>>2]|0)+14336>>2]|0)!=1102)break;c[(c[Pb>>2]|0)+14336>>2]=1103}while(0);if(c[(c[Pb>>2]|0)+164>>2]|0)c[(c[Pb>>2]|0)+14336>>2]=1101;do if((c[Gb>>2]|0)>((c[(c[Pb>>2]|0)+132>>2]|0)/50|0|0)){if((c[(c[Pb>>2]|0)+14320>>2]|0)!=1002?(c[(c[Pb>>2]|0)+14336>>2]|0)<=1103:0)break;if((c[S>>2]|0)!=-1){c[(c[Pb>>2]|0)+172+8508>>2]=c[S>>2];c[(c[Pb>>2]|0)+172+8512>>2]=c[T>>2]}c[oa>>2]=(c[Gb>>2]|0)>((c[(c[Pb>>2]|0)+132>>2]|0)/25|0|0)?3:2;if(1276<(((c[aa>>2]|0)-3|0)/(c[oa>>2]|0)|0|0))q=1276;else q=((c[aa>>2]|0)-3|0)/(c[oa>>2]|0)|0;c[da>>2]=q;q=_(c[oa>>2]|0,c[da>>2]|0)|0;c[fa>>2]=ia()|0;m=i;i=i+((1*q|0)+15&-16)|0;Ti(qa)|0;c[ka>>2]=c[(c[Pb>>2]|0)+124>>2];c[ha>>2]=c[(c[Pb>>2]|0)+116>>2];c[ja>>2]=c[(c[Pb>>2]|0)+108>>2];c[(c[Pb>>2]|0)+124>>2]=c[(c[Pb>>2]|0)+14320>>2];c[(c[Pb>>2]|0)+116>>2]=c[(c[Pb>>2]|0)+14336>>2];c[(c[Pb>>2]|0)+108>>2]=c[(c[Pb>>2]|0)+14288>>2];c[la>>2]=c[(c[Pb>>2]|0)+8+56>>2];q=c[Pb>>2]|0;if(c[la>>2]|0)c[q+108>>2]=1;else c[(c[Pb>>2]|0)+14328>>2]=c[q+14288>>2];c[Xa>>2]=0;while(1){q=c[Pb>>2]|0;if((c[Xa>>2]|0)>=(c[oa>>2]|0)){Eb=219;break}c[q+8+56>>2]=0;do if(c[Lb>>2]|0){if((c[Xa>>2]|0)!=((c[oa>>2]|0)-1|0))break;c[(c[Pb>>2]|0)+124>>2]=1002}while(0);Jb=(c[sa>>2]|0)+((_(c[Xa>>2]|0,(_(c[(c[Pb>>2]|0)+100>>2]|0,c[(c[Pb>>2]|0)+132>>2]|0)|0)/50|0)|0)<<2)|0;Kb=m+(_(c[Xa>>2]|0,c[da>>2]|0)|0)|0;c[ea>>2]=Fi(c[Pb>>2]|0,Jb,(c[(c[Pb>>2]|0)+132>>2]|0)/50|0,Kb,c[da>>2]|0,c[ba>>2]|0,0,0,c[ca>>2]|0,c[Y>>2]|0,c[Z>>2]|0,c[$>>2]|0,c[ta>>2]|0)|0;if((c[ea>>2]|0)<0){Eb=215;break}Kb=m+(_(c[Xa>>2]|0,c[da>>2]|0)|0)|0;c[Nb>>2]=Ui(qa,Kb,c[ea>>2]|0)|0;if((c[Nb>>2]|0)<0){Eb=217;break}c[Xa>>2]=(c[Xa>>2]|0)+1}do if((Eb|0)==215){c[Ob>>2]=-3;c[Mb>>2]=1}else if((Eb|0)==217){c[Ob>>2]=-3;c[Mb>>2]=1}else if((Eb|0)==219){if(c[q+136>>2]|0)c[pa>>2]=c[aa>>2];else{if((((c[(c[Pb>>2]|0)+148>>2]|0)*3|0)/(1200/(c[oa>>2]|0)|0|0)|0|0)<(c[aa>>2]|0))q=((c[(c[Pb>>2]|0)+148>>2]|0)*3|0)/(1200/(c[oa>>2]|0)|0|0)|0;else q=c[aa>>2]|0;c[pa>>2]=q}c[Nb>>2]=Wi(qa,0,c[oa>>2]|0,c[Qb>>2]|0,c[pa>>2]|0,0,((c[(c[Pb>>2]|0)+136>>2]|0)!=0^1)&1)|0;if((c[Nb>>2]|0)<0){c[Ob>>2]=-3;c[Mb>>2]=1;break}else{c[(c[Pb>>2]|0)+124>>2]=c[ka>>2];c[(c[Pb>>2]|0)+116>>2]=c[ha>>2];c[(c[Pb>>2]|0)+108>>2]=c[ja>>2];c[(c[Pb>>2]|0)+8+56>>2]=c[la>>2];c[Ob>>2]=c[Nb>>2];c[Mb>>2]=1;break}}while(0);na(c[fa>>2]|0);Qb=c[Ob>>2]|0;i=Rb;return Qb|0}while(0);c[ib>>2]=c[(c[Pb>>2]|0)+14336>>2];if((c[ib>>2]|0)>1103?(c[(c[Pb>>2]|0)+14320>>2]|0)==1e3:0)c[(c[Pb>>2]|0)+14320>>2]=1001;if((c[ib>>2]|0)<=1103?(c[(c[Pb>>2]|0)+14320>>2]|0)==1001:0)c[(c[Pb>>2]|0)+14320>>2]=1e3;qa=_(c[(c[Pb>>2]|0)+148>>2]|0,c[Gb>>2]|0)|0;if(((c[Ib>>2]|0)-(c[Kb>>2]|0)|0)<((qa|0)/(c[(c[Pb>>2]|0)+132>>2]<<3|0)|0|0))q=(c[Ib>>2]|0)-(c[Kb>>2]|0)|0;else{q=_(c[(c[Pb>>2]|0)+148>>2]|0,c[Gb>>2]|0)|0;q=(q|0)/(c[(c[Pb>>2]|0)+132>>2]<<3|0)|0}c[Va>>2]=q-1;c[Qb>>2]=(c[Qb>>2]|0)+1;ic(Hb,c[Qb>>2]|0,(c[Ib>>2]|0)-1|0);pa=_((c[_a>>2]|0)+(c[Gb>>2]|0)|0,c[(c[Pb>>2]|0)+100>>2]|0)|0;c[Fb>>2]=ia()|0;n=i;i=i+((1*(pa<<2)|0)+15&-16)|0;pa=_((c[(c[Pb>>2]|0)+160>>2]|0)-(c[_a>>2]|0)|0,c[(c[Pb>>2]|0)+100>>2]|0)|0;qa=(_(c[_a>>2]|0,c[(c[Pb>>2]|0)+100>>2]|0)|0)<<2;pj(n|0,(c[Pb>>2]|0)+14372+(pa<<2)|0,qa+0|0)|0;if((c[(c[Pb>>2]|0)+14320>>2]|0)==1002)c[V>>2]=(Sf(60)|0)<<8;else c[V>>2]=c[(c[Ga>>2]|0)+8>>2];c[(c[Pb>>2]|0)+14296>>2]=(c[(c[Pb>>2]|0)+14296>>2]|0)+((((c[V>>2]|0)-(c[(c[Pb>>2]|0)+14296>>2]|0)>>16)*983|0)+(((c[V>>2]|0)-(c[(c[Pb>>2]|0)+14296>>2]|0)&65535)*983>>16));c[W>>2]=Wf(c[(c[Pb>>2]|0)+14296>>2]>>8)|0;q=c[sa>>2]|0;if((c[(c[Pb>>2]|0)+96>>2]|0)==2048){sa=n+((_(c[_a>>2]|0,c[(c[Pb>>2]|0)+100>>2]|0)|0)<<2)|0;Ii(q,c[W>>2]|0,sa,(c[Pb>>2]|0)+14304|0,c[Gb>>2]|0,c[(c[Pb>>2]|0)+100>>2]|0,c[(c[Pb>>2]|0)+132>>2]|0)}else{sa=n+((_(c[_a>>2]|0,c[(c[Pb>>2]|0)+100>>2]|0)|0)<<2)|0;Ki(q,3,sa,(c[Pb>>2]|0)+14304|0,c[Gb>>2]|0,c[(c[Pb>>2]|0)+100>>2]|0,c[(c[Pb>>2]|0)+132>>2]|0)}do if(c[ta>>2]|0){sa=n+((_(c[_a>>2]|0,c[(c[Pb>>2]|0)+100>>2]|0)|0)<<2)|0;ta=n+((_(c[_a>>2]|0,c[(c[Pb>>2]|0)+100>>2]|0)|0)<<2)|0;g[X>>2]=+Li(sa,ta,_(c[Gb>>2]|0,c[(c[Pb>>2]|0)+100>>2]|0)|0);if(+g[X>>2]<1.0e9?!(+g[X>>2]!=+g[X>>2]):0)break;ta=n+((_(c[_a>>2]|0,c[(c[Pb>>2]|0)+100>>2]|0)|0)<<2)|0;oj(ta|0,0,(_(c[Gb>>2]|0,c[(c[Pb>>2]|0)+100>>2]|0)|0)<<2|0)|0;g[(c[Pb>>2]|0)+14304+12>>2]=0.0;g[(c[Pb>>2]|0)+14304+8>>2]=0.0;g[(c[Pb>>2]|0)+14304+4>>2]=0.0;g[(c[Pb>>2]|0)+14304>>2]=0.0}while(0);g[Ya>>2]=1.0;if((c[(c[Pb>>2]|0)+14320>>2]|0)!=1002){ta=_(c[(c[Pb>>2]|0)+100>>2]|0,c[Gb>>2]|0)|0;c[Ia>>2]=ia()|0;m=i;i=i+((1*(ta<<1)|0)+15&-16)|0;c[ra>>2]=_(c[Va>>2]<<3,c[Da>>2]|0)|0;do if((c[(c[Pb>>2]|0)+14320>>2]|0)==1001){q=_(c[(c[Pb>>2]|0)+14288>>2]|0,5e3+(((c[(c[Pb>>2]|0)+132>>2]|0)==((c[Gb>>2]|0)*100|0)&1)*1e3|0)|0)|0;c[(c[Pb>>2]|0)+8+28>>2]=q;q=(c[ra>>2]|0)-(c[(c[Pb>>2]|0)+8+28>>2]|0)|0;if((c[ib>>2]|0)==1104){ta=(c[Pb>>2]|0)+8+28|0;c[ta>>2]=(c[ta>>2]|0)+((q<<1|0)/3|0)}else{ta=(c[Pb>>2]|0)+8+28|0;c[ta>>2]=(c[ta>>2]|0)+((q*3|0)/5|0)}if((c[(c[Pb>>2]|0)+8+28>>2]|0)>((c[ra>>2]<<2|0)/5|0|0))c[(c[Pb>>2]|0)+8+28>>2]=(c[ra>>2]<<2|0)/5|0;if(c[(c[Pb>>2]|0)+14348>>2]|0)break;c[ma>>2]=(c[ra>>2]|0)-(c[(c[Pb>>2]|0)+8+28>>2]|0);c[ga>>2]=(c[ib>>2]|0)==1104?3e3:3600;g[Ya>>2]=+(c[ma>>2]|0)/(+(c[ma>>2]|0)+ +(_(c[(c[Pb>>2]|0)+14288>>2]|0,c[ga>>2]|0)|0));g[Ya>>2]=+g[Ya>>2]<.8571428656578064?+g[Ya>>2]+.1428571492433548:1.0}else c[(c[Pb>>2]|0)+8+28>>2]=c[ra>>2];while(0);do if(c[(c[Pb>>2]|0)+14348>>2]|0){if(!(c[(c[Pb>>2]|0)+136>>2]|0))break;if(c[(c[Pb>>2]|0)+164>>2]|0)break;g[xa>>2]=0.0;c[va>>2]=17;b[za>>1]=16e3;do if((c[(c[Pb>>2]|0)+14336>>2]|0)==1101){c[va>>2]=13;b[za>>1]=8e3}else{if((c[(c[Pb>>2]|0)+14336>>2]|0)!=1102)break;c[va>>2]=15;b[za>>1]=12e3}while(0);c[ua>>2]=0;while(1){if((c[ua>>2]|0)>=(c[(c[Pb>>2]|0)+100>>2]|0))break;c[Xa>>2]=0;while(1){q=c[ua>>2]|0;if((c[Xa>>2]|0)>=(c[va>>2]|0))break;if(+g[(c[(c[Pb>>2]|0)+14348>>2]|0)+((q*21|0)+(c[Xa>>2]|0)<<2)>>2]<.5)t=+g[(c[(c[Pb>>2]|0)+14348>>2]|0)+(((c[ua>>2]|0)*21|0)+(c[Xa>>2]|0)<<2)>>2];else t=.5;do if(t>-2.0){if(!(+g[(c[(c[Pb>>2]|0)+14348>>2]|0)+(((c[ua>>2]|0)*21|0)+(c[Xa>>2]|0)<<2)>>2]<.5)){t=.5;break}t=+g[(c[(c[Pb>>2]|0)+14348>>2]|0)+(((c[ua>>2]|0)*21|0)+(c[Xa>>2]|0)<<2)>>2]}else t=-2.0;while(0);g[wa>>2]=t;if(+g[wa>>2]>0.0)g[wa>>2]=+g[wa>>2]*.5;g[xa>>2]=+g[xa>>2]+ +g[wa>>2];c[Xa>>2]=(c[Xa>>2]|0)+1}c[ua>>2]=q+1}g[ya>>2]=+g[xa>>2]/+(c[va>>2]|0)*+(c[(c[Pb>>2]|0)+100>>2]|0);g[ya>>2]=+g[ya>>2]+.20000000298023224;c[Aa>>2]=~~(+(b[za>>1]|0)*+g[ya>>2]);if((c[Aa>>2]|0)>((_(-2,c[(c[Pb>>2]|0)+8+28>>2]|0)|0)/3|0|0))q=c[Aa>>2]|0;else q=(_(-2,c[(c[Pb>>2]|0)+8+28>>2]|0)|0)/3|0;c[Aa>>2]=q;do if((c[(c[Pb>>2]|0)+14336>>2]|0)==1104)Eb=281;else{if((c[(c[Pb>>2]|0)+14336>>2]|0)==1105){Eb=281;break}za=(c[Pb>>2]|0)+8+28|0;c[za>>2]=(c[za>>2]|0)+(c[Aa>>2]|0)}while(0);if((Eb|0)==281){za=(c[Pb>>2]|0)+8+28|0;c[za>>2]=(c[za>>2]|0)+(((c[Aa>>2]|0)*3|0)/5|0)}Aa=_(c[Aa>>2]|0,c[Gb>>2]|0)|0;c[Va>>2]=(c[Va>>2]|0)+((Aa|0)/(c[(c[Pb>>2]|0)+132>>2]<<3|0)|0)}while(0);c[(c[Pb>>2]|0)+8+24>>2]=((c[Gb>>2]|0)*1e3|0)/(c[(c[Pb>>2]|0)+132>>2]|0)|0;c[(c[Pb>>2]|0)+8>>2]=c[(c[Pb>>2]|0)+100>>2];c[(c[Pb>>2]|0)+8+4>>2]=c[(c[Pb>>2]|0)+14288>>2];do if((c[ib>>2]|0)!=1101){q=(c[Pb>>2]|0)+8+20|0;if((c[ib>>2]|0)==1102){c[q>>2]=12e3;break}else{c[q>>2]=16e3;break}}else c[(c[Pb>>2]|0)+8+20>>2]=8e3;while(0);q=(c[Pb>>2]|0)+8+16|0;if((c[(c[Pb>>2]|0)+14320>>2]|0)==1001)c[q>>2]=16e3;else c[q>>2]=8e3;do if((c[(c[Pb>>2]|0)+14320>>2]|0)==1e3){c[Ca>>2]=c[Ba>>2];c[(c[Pb>>2]|0)+8+12>>2]=16e3;if((c[Da>>2]|0)>50)c[Ca>>2]=(c[Ca>>2]<<1|0)/3|0;if((c[Ca>>2]|0)<13e3){c[(c[Pb>>2]|0)+8+12>>2]=12e3;if(12e3<(c[(c[Pb>>2]|0)+8+20>>2]|0))q=12e3;else q=c[(c[Pb>>2]|0)+8+20>>2]|0;c[(c[Pb>>2]|0)+8+20>>2]=q}if((c[Ca>>2]|0)>=9600)break;c[(c[Pb>>2]|0)+8+12>>2]=8e3;if(8e3<(c[(c[Pb>>2]|0)+8+20>>2]|0))q=8e3;else q=c[(c[Pb>>2]|0)+8+20>>2]|0;c[(c[Pb>>2]|0)+8+20>>2]=q}else c[(c[Pb>>2]|0)+8+12>>2]=16e3;while(0);c[(c[Pb>>2]|0)+8+48>>2]=((c[(c[Pb>>2]|0)+136>>2]|0)!=0^1)&1;if(1275<((c[Ib>>2]|0)-1-(c[Kb>>2]|0)|0))q=1275;else q=(c[Ib>>2]|0)-1-(c[Kb>>2]|0)|0;c[Ma>>2]=q;c[(c[Pb>>2]|0)+8+52>>2]=c[Ma>>2]<<3;if((c[(c[Pb>>2]|0)+14320>>2]|0)==1001)c[(c[Pb>>2]|0)+8+52>>2]=((c[(c[Pb>>2]|0)+8+52>>2]|0)*9|0)/10|0;if(c[(c[Pb>>2]|0)+8+48>>2]|0){Da=_(c[(c[Pb>>2]|0)+8+28>>2]|0,c[Gb>>2]|0)|0;c[(c[Pb>>2]|0)+8+52>>2]=((Da|0)/(c[(c[Pb>>2]|0)+132>>2]<<3|0)|0)<<3;if(1>((c[(c[Pb>>2]|0)+8+28>>2]|0)-2e3|0))q=1;else q=(c[(c[Pb>>2]|0)+8+28>>2]|0)-2e3|0;c[(c[Pb>>2]|0)+8+28>>2]=q}if(c[Ea>>2]|0){c[Ha>>2]=0;c[Fa>>2]=_(c[(c[Pb>>2]|0)+100>>2]|0,(c[(c[Pb>>2]|0)+160>>2]|0)-(c[(c[Pb>>2]|0)+104>>2]|0)-((c[(c[Pb>>2]|0)+132>>2]|0)/400|0)|0)|0;Mi((c[Pb>>2]|0)+14372+(c[Fa>>2]<<2)|0,(c[Pb>>2]|0)+14372+(c[Fa>>2]<<2)|0,0.0,1.0,c[(c[$a>>2]|0)+4>>2]|0,(c[(c[Pb>>2]|0)+132>>2]|0)/400|0,c[(c[Pb>>2]|0)+100>>2]|0,c[(c[$a>>2]|0)+60>>2]|0,c[(c[Pb>>2]|0)+132>>2]|0);oj((c[Pb>>2]|0)+14372|0,0,c[Fa>>2]<<2|0)|0;c[Xa>>2]=0;while(1){if((c[Xa>>2]|0)>=(_(c[(c[Pb>>2]|0)+160>>2]|0,c[(c[Pb>>2]|0)+100>>2]|0)|0))break;Fa=Ni(+g[(c[Pb>>2]|0)+14372+(c[Xa>>2]<<2)>>2])|0;b[m+(c[Xa>>2]<<1)>>1]=Fa;c[Xa>>2]=(c[Xa>>2]|0)+1}Vd(c[Ga>>2]|0,(c[Pb>>2]|0)+8|0,m,c[(c[Pb>>2]|0)+160>>2]|0,0,Ha,1)|0}c[Xa>>2]=0;while(1){if((c[Xa>>2]|0)>=(_(c[Gb>>2]|0,c[(c[Pb>>2]|0)+100>>2]|0)|0))break;Ha=_(c[_a>>2]|0,c[(c[Pb>>2]|0)+100>>2]|0)|0;Ha=Ni(+g[n+(Ha+(c[Xa>>2]|0)<<2)>>2])|0;b[m+(c[Xa>>2]<<1)>>1]=Ha;c[Xa>>2]=(c[Xa>>2]|0)+1}c[Nb>>2]=Vd(c[Ga>>2]|0,(c[Pb>>2]|0)+8|0,m,c[Gb>>2]|0,Hb,Ma,0)|0;do if(c[Nb>>2]|0){c[Ob>>2]=-3;c[Mb>>2]=1}else{q=c[Pb>>2]|0;if(!(c[Ma>>2]|0)){c[q+18216>>2]=0;Xa=Hi(c[(c[Pb>>2]|0)+14320>>2]|0,(c[(c[Pb>>2]|0)+132>>2]|0)/(c[Gb>>2]|0)|0,c[ib>>2]|0,c[(c[Pb>>2]|0)+14288>>2]|0)|0;a[(c[Qb>>2]|0)+-1>>0]=Xa;c[Ob>>2]=1;c[Mb>>2]=1;break}do if((c[q+14320>>2]|0)==1e3){if((c[(c[Pb>>2]|0)+8+68>>2]|0)==8e3){c[ib>>2]=1101;break}if((c[(c[Pb>>2]|0)+8+68>>2]|0)==12e3){c[ib>>2]=1102;break}if((c[(c[Pb>>2]|0)+8+68>>2]|0)!=16e3)break;c[ib>>2]=1103}while(0);c[(c[Pb>>2]|0)+8+60>>2]=c[(c[Pb>>2]|0)+8+84>>2];if(c[(c[Pb>>2]|0)+8+60>>2]|0){c[Jb>>2]=1;c[hb>>2]=0;c[(c[Pb>>2]|0)+14340>>2]=1}c[Mb>>2]=0}while(0);na(c[Ia>>2]|0);if(!(c[Mb>>2]|0))Eb=335}else Eb=335;b:do if((Eb|0)==335){c[La>>2]=21;switch(c[ib>>2]|0){case 1101:{c[La>>2]=13;break}case 1103:case 1102:{c[La>>2]=17;break}case 1104:{c[La>>2]=19;break}case 1105:{c[La>>2]=21;break}default:{}}Xa=c[gb>>2]|0;c[Na>>2]=c[La>>2];lb(Xa,10012,Na)|0;Xa=c[gb>>2]|0;c[Oa>>2]=c[(c[Pb>>2]|0)+14288>>2];lb(Xa,10008,Oa)|0;Xa=c[gb>>2]|0;c[Pa>>2]=-1;lb(Xa,4002,Pa)|0;do if((c[(c[Pb>>2]|0)+14320>>2]|0)!=1e3){g[Ka>>2]=2.0;Xa=c[gb>>2]|0;c[Qa>>2]=0;lb(Xa,4006,Qa)|0;if(c[(c[Pb>>2]|0)+8+64>>2]|0)g[Ka>>2]=0.0;Xa=c[gb>>2]|0;c[Ra>>2]=~~+g[Ka>>2];lb(Xa,10002,Ra)|0;if((c[(c[Pb>>2]|0)+14320>>2]|0)==1001){c[Wa>>2]=(Oi(Hb)|0)+7>>3;if(c[Jb>>2]|0)c[Wa>>2]=(c[Wa>>2]|0)+((c[(c[Pb>>2]|0)+14320>>2]|0)==1001?3:1);q=c[Wa>>2]|0;m=c[Va>>2]|0;if(c[(c[Pb>>2]|0)+136>>2]|0){Xa=_(c[(c[Pb>>2]|0)+8+28>>2]|0,c[Gb>>2]|0)|0;c[pb>>2]=q+m-((Xa|0)/(c[(c[Pb>>2]|0)+132>>2]<<3|0)|0);break}else{c[pb>>2]=(q|0)>(m|0)?c[Wa>>2]|0:c[Va>>2]|0;break}}if(!(c[(c[Pb>>2]|0)+136>>2]|0)){c[pb>>2]=c[Va>>2];break}c[Ja>>2]=0;do if((c[(c[Pb>>2]|0)+144>>2]|0)==5010){if((c[Gb>>2]|0)==((c[(c[Pb>>2]|0)+132>>2]|0)/50|0|0))break;c[Ja>>2]=_(((c[(c[Pb>>2]|0)+14288>>2]|0)*60|0)+40|0,((c[(c[Pb>>2]|0)+132>>2]|0)/(c[Gb>>2]|0)|0)-50|0)|0;if(!(c[fb>>2]|0))break;c[Ja>>2]=~~(+(c[Ja>>2]|0)*(+g[fb+4>>2]*.5+1.0))}while(0);Xa=c[gb>>2]|0;c[Sa>>2]=1;lb(Xa,4006,Sa)|0;Xa=c[gb>>2]|0;c[Ta>>2]=c[(c[Pb>>2]|0)+140>>2];lb(Xa,4020,Ta)|0;Xa=c[gb>>2]|0;c[Ua>>2]=(c[(c[Pb>>2]|0)+148>>2]|0)+(c[Ja>>2]|0);lb(Xa,4002,Ua)|0;c[pb>>2]=(c[Ib>>2]|0)-1-(c[Kb>>2]|0)}else c[pb>>2]=0;while(0);Xa=((_(c[(c[Pb>>2]|0)+100>>2]|0,c[(c[Pb>>2]|0)+132>>2]|0)|0)/400|0)<<2;m=i;i=i+((1*Xa|0)+15&-16)|0;do if((c[(c[Pb>>2]|0)+14320>>2]|0)!=1e3){if((c[(c[Pb>>2]|0)+14320>>2]|0)==(c[(c[Pb>>2]|0)+14324>>2]|0))break;if((c[(c[Pb>>2]|0)+14324>>2]|0)<=0)break;Wa=_((c[(c[Pb>>2]|0)+160>>2]|0)-(c[_a>>2]|0)-((c[(c[Pb>>2]|0)+132>>2]|0)/400|0)|0,c[(c[Pb>>2]|0)+100>>2]|0)|0;Xa=((_(c[(c[Pb>>2]|0)+100>>2]|0,c[(c[Pb>>2]|0)+132>>2]|0)|0)/400|0)<<2;pj(m|0,(c[Pb>>2]|0)+14372+(Wa<<2)|0,Xa+0|0)|0}while(0);Xa=(_(c[(c[Pb>>2]|0)+100>>2]|0,(c[(c[Pb>>2]|0)+160>>2]|0)-((c[Gb>>2]|0)+(c[_a>>2]|0))|0)|0)>0;q=(c[Pb>>2]|0)+14372|0;if(Xa){Wa=_(c[(c[Pb>>2]|0)+100>>2]|0,c[Gb>>2]|0)|0;Xa=(_(c[(c[Pb>>2]|0)+100>>2]|0,(c[(c[Pb>>2]|0)+160>>2]|0)-(c[Gb>>2]|0)-(c[_a>>2]|0)|0)|0)<<2;qj(q|0,(c[Pb>>2]|0)+14372+(Wa<<2)|0,Xa+0|0)|0;Xa=_(c[(c[Pb>>2]|0)+100>>2]|0,(c[(c[Pb>>2]|0)+160>>2]|0)-(c[Gb>>2]|0)-(c[_a>>2]|0)|0)|0;_a=(_((c[Gb>>2]|0)+(c[_a>>2]|0)|0,c[(c[Pb>>2]|0)+100>>2]|0)|0)<<2;pj((c[Pb>>2]|0)+14372+(Xa<<2)|0,n|0,_a+0|0)|0}else{Xa=n+((_((c[Gb>>2]|0)+(c[_a>>2]|0)-(c[(c[Pb>>2]|0)+160>>2]|0)|0,c[(c[Pb>>2]|0)+100>>2]|0)|0)<<2)|0;_a=(_(c[(c[Pb>>2]|0)+160>>2]|0,c[(c[Pb>>2]|0)+100>>2]|0)|0)<<2;pj(q|0,Xa|0,_a+0|0)|0}if(+g[Ya>>2]<1.0?1:+g[(c[Pb>>2]|0)+14300>>2]<1.0)Mi(n,n,+g[(c[Pb>>2]|0)+14300>>2],+g[Ya>>2],c[(c[$a>>2]|0)+4>>2]|0,c[Gb>>2]|0,c[(c[Pb>>2]|0)+100>>2]|0,c[(c[$a>>2]|0)+60>>2]|0,c[(c[Pb>>2]|0)+132>>2]|0);g[(c[Pb>>2]|0)+14300>>2]=+g[Ya>>2];if(!((c[(c[Pb>>2]|0)+14320>>2]|0)==1001?(c[(c[Pb>>2]|0)+14288>>2]|0)!=1:0)){if(16384<((0>((c[Za>>2]|0)-3e4|0)?0:(c[Za>>2]|0)-3e4|0)<<1|0))q=16384;else q=(0>((c[Za>>2]|0)-3e4|0)?0:(c[Za>>2]|0)-3e4|0)<<1;c[(c[Pb>>2]|0)+8+80>>2]=q}do if(!(c[(c[Pb>>2]|0)+14348>>2]|0)){if((c[(c[Pb>>2]|0)+100>>2]|0)!=2)break;if((b[(c[Pb>>2]|0)+14292>>1]|0)>=16384?(c[(c[Pb>>2]|0)+8+80>>2]|0)>=16384:0)break;g[ab>>2]=+(b[(c[Pb>>2]|0)+14292>>1]|0);g[bb>>2]=+(c[(c[Pb>>2]|0)+8+80>>2]|0);g[ab>>2]=+g[ab>>2]*.00006103515625;g[bb>>2]=+g[bb>>2]*.00006103515625;Pi(n,n,+g[ab>>2],+g[bb>>2],c[(c[$a>>2]|0)+4>>2]|0,c[Gb>>2]|0,c[(c[Pb>>2]|0)+100>>2]|0,c[(c[$a>>2]|0)+60>>2]|0,c[(c[Pb>>2]|0)+132>>2]|0);b[(c[Pb>>2]|0)+14292>>1]=c[(c[Pb>>2]|0)+8+80>>2]}while(0);do if((c[(c[Pb>>2]|0)+14320>>2]|0)!=1002){bb=(Oi(Hb)|0)+17|0;if((bb+(((c[(c[Pb>>2]|0)+14320>>2]|0)==1001&1)*20|0)|0)>((c[Ib>>2]|0)-1<<3|0)){Eb=393;break}do if((c[(c[Pb>>2]|0)+14320>>2]|0)==1001){if((c[Jb>>2]|0)==0?(bb=(Oi(Hb)|0)+37|0,(bb|0)>(c[pb>>2]<<3|0)):0)break;pc(Hb,c[Jb>>2]|0,12)}while(0);if(!(c[Jb>>2]|0))break;pc(Hb,c[hb>>2]|0,1);q=(c[Ib>>2]|0)-1|0;if((c[(c[Pb>>2]|0)+14320>>2]|0)==1001)c[cb>>2]=q-(c[pb>>2]|0);else c[cb>>2]=q-((Oi(Hb)|0)+7>>3);if((c[cb>>2]|0)<((c[(c[Pb>>2]|0)+148>>2]|0)/1600|0|0))q=c[cb>>2]|0;else q=(c[(c[Pb>>2]|0)+148>>2]|0)/1600|0;c[Kb>>2]=q;if(257<((2>(c[Kb>>2]|0)?2:c[Kb>>2]|0)|0))q=257;else q=2>(c[Kb>>2]|0)?2:c[Kb>>2]|0;c[Kb>>2]=q;if((c[(c[Pb>>2]|0)+14320>>2]|0)!=1001)break;rc(Hb,(c[Kb>>2]|0)-2|0,256)}else Eb=393;while(0);if((Eb|0)==393)c[Jb>>2]=0;if(!(c[Jb>>2]|0)){c[(c[Pb>>2]|0)+14340>>2]=0;c[Kb>>2]=0}if((c[(c[Pb>>2]|0)+14320>>2]|0)!=1002)c[rb>>2]=17;if((c[(c[Pb>>2]|0)+14320>>2]|0)==1e3){c[Nb>>2]=(Oi(Hb)|0)+7>>3;wc(Hb);c[pb>>2]=c[Nb>>2]}else{if(((c[Ib>>2]|0)-1-(c[Kb>>2]|0)|0)<(c[pb>>2]|0))q=(c[Ib>>2]|0)-1-(c[Kb>>2]|0)|0;else q=c[pb>>2]|0;c[pb>>2]=q;vc(Hb,c[pb>>2]|0)}if(!(!(c[Jb>>2]|0)?(c[(c[Pb>>2]|0)+14320>>2]|0)==1e3:0)){Eb=c[gb>>2]|0;c[sb>>2]=fb+(((fb-fb|0)/28|0)*28|0);lb(Eb,10022,sb)|0}do if((c[Jb>>2]|0)!=0&(c[hb>>2]|0)!=0){Eb=c[gb>>2]|0;c[tb>>2]=0;lb(Eb,10010,tb)|0;Eb=c[gb>>2]|0;c[ub>>2]=0;lb(Eb,4006,ub)|0;c[mb>>2]=nb(c[gb>>2]|0,n,(c[(c[Pb>>2]|0)+132>>2]|0)/200|0,(c[Qb>>2]|0)+(c[pb>>2]|0)|0,c[Kb>>2]|0,0)|0;if((c[mb>>2]|0)<0){c[Ob>>2]=-3;c[Mb>>2]=1;break b}else{Eb=c[gb>>2]|0;c[vb>>2]=qb+(((qb-qb|0)/4|0)<<2);lb(Eb,4031,vb)|0;lb(c[gb>>2]|0,4028,wb)|0;break}}while(0);Eb=c[gb>>2]|0;c[xb>>2]=c[rb>>2];lb(Eb,10010,xb)|0;do if((c[(c[Pb>>2]|0)+14320>>2]|0)!=1e3){do if((c[(c[Pb>>2]|0)+14320>>2]|0)!=(c[(c[Pb>>2]|0)+14324>>2]|0)){if((c[(c[Pb>>2]|0)+14324>>2]|0)<=0)break;lb(c[gb>>2]|0,4028,yb)|0;nb(c[gb>>2]|0,m,(c[(c[Pb>>2]|0)+132>>2]|0)/400|0,jb,2,0)|0;Eb=c[gb>>2]|0;c[zb>>2]=0;lb(Eb,10002,zb)|0}while(0);Eb=Oi(Hb)|0;if((Eb|0)>(c[pb>>2]<<3|0))break;c[Nb>>2]=nb(c[gb>>2]|0,n,c[Gb>>2]|0,0,c[pb>>2]|0,Hb)|0;if((c[Nb>>2]|0)>=0)break;c[Ob>>2]=-3;c[Mb>>2]=1;break b}while(0);do if(!((c[Jb>>2]|0)==0|(c[hb>>2]|0)!=0)){c[db>>2]=(c[(c[Pb>>2]|0)+132>>2]|0)/200|0;c[eb>>2]=(c[(c[Pb>>2]|0)+132>>2]|0)/400|0;lb(c[gb>>2]|0,4028,Ab)|0;Eb=c[gb>>2]|0;c[Bb>>2]=0;lb(Eb,10010,Bb)|0;Eb=c[gb>>2]|0;c[Cb>>2]=0;lb(Eb,10002,Cb)|0;Eb=n+((_(c[(c[Pb>>2]|0)+100>>2]|0,(c[Gb>>2]|0)-(c[db>>2]|0)-(c[eb>>2]|0)|0)|0)<<2)|0;nb(c[gb>>2]|0,Eb,c[eb>>2]|0,kb,2,0)|0;Eb=n+((_(c[(c[Pb>>2]|0)+100>>2]|0,(c[Gb>>2]|0)-(c[db>>2]|0)|0)|0)<<2)|0;c[ob>>2]=nb(c[gb>>2]|0,Eb,c[db>>2]|0,(c[Qb>>2]|0)+(c[pb>>2]|0)|0,c[Kb>>2]|0,0)|0;if((c[ob>>2]|0)<0){c[Ob>>2]=-3;c[Mb>>2]=1;break b}else{Eb=c[gb>>2]|0;c[Db>>2]=qb+(((qb-qb|0)/4|0)<<2);lb(Eb,4031,Db)|0;break}}while(0);c[Qb>>2]=(c[Qb>>2]|0)+-1;q=Hi(c[(c[Pb>>2]|0)+14320>>2]|0,(c[(c[Pb>>2]|0)+132>>2]|0)/(c[Gb>>2]|0)|0,c[ib>>2]|0,c[(c[Pb>>2]|0)+14288>>2]|0)|0;a[c[Qb>>2]>>0]=q;c[(c[Pb>>2]|0)+18216>>2]=c[Hb+28>>2]^c[qb>>2];q=c[Pb>>2]|0;if(c[Lb>>2]|0)c[q+14324>>2]=1002;else c[(c[Pb>>2]|0)+14324>>2]=c[q+14320>>2];c[(c[Pb>>2]|0)+14328>>2]=c[(c[Pb>>2]|0)+14288>>2];c[(c[Pb>>2]|0)+14332>>2]=c[Gb>>2];c[(c[Pb>>2]|0)+14344>>2]=0;Lb=Oi(Hb)|0;c:do if((Lb|0)>((c[Ib>>2]|0)-1<<3|0))if((c[Ib>>2]|0)<2){c[Ob>>2]=-2;c[Mb>>2]=1;break b}else{a[(c[Qb>>2]|0)+1>>0]=0;c[Nb>>2]=1;c[(c[Pb>>2]|0)+18216>>2]=0;break}else{if(!(((c[Jb>>2]|0?1:(c[(c[Pb>>2]|0)+14320>>2]|0)!=1e3)^1)&(c[Nb>>2]|0)>2))break;do{if(d[(c[Qb>>2]|0)+(c[Nb>>2]|0)>>0]|0)break c;c[Nb>>2]=(c[Nb>>2]|0)+-1}while((c[Nb>>2]|0)>2)}while(0);c[Nb>>2]=(c[Nb>>2]|0)+(1+(c[Kb>>2]|0));do if(!(c[(c[Pb>>2]|0)+136>>2]|0))if(Xi(c[Qb>>2]|0,c[Nb>>2]|0,c[Ib>>2]|0)|0){c[Ob>>2]=-3;c[Mb>>2]=1;break b}else{c[Nb>>2]=c[Ib>>2];break}while(0);c[Ob>>2]=c[Nb>>2];c[Mb>>2]=1}while(0);na(c[Fb>>2]|0);Qb=c[Ob>>2]|0;i=Rb;return Qb|0}while(0);c[B>>2]=c[(c[Pb>>2]|0)+14320>>2];if(!(c[(c[Pb>>2]|0)+14336>>2]|0))q=1101;else q=c[(c[Pb>>2]|0)+14336>>2]|0;c[z>>2]=q;if(!(c[B>>2]|0))c[B>>2]=1e3;if((c[Da>>2]|0)>100)c[B>>2]=1002;if((c[Da>>2]|0)<50)c[B>>2]=1e3;do if(!((c[B>>2]|0)==1e3&(c[z>>2]|0)>1103)){if((c[B>>2]|0)==1002&(c[z>>2]|0)==1102){c[z>>2]=1101;break}if((c[z>>2]|0)<=1104)c[z>>2]=1104}else c[z>>2]=1103;while(0);Pb=Hi(c[B>>2]|0,c[Da>>2]|0,c[z>>2]|0,c[(c[Pb>>2]|0)+14288>>2]|0)|0;a[c[Qb>>2]>>0]=Pb;c[Ob>>2]=1;Qb=c[Ob>>2]|0;i=Rb;return Qb|0}c[Ob>>2]=-1;Qb=c[Ob>>2]|0;i=Rb;return Qb|0}function Gi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;e=j+12|0;f=j+8|0;g=j+4|0;h=j;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;if(!(c[g>>2]|0))c[g>>2]=(c[(c[f>>2]|0)+132>>2]|0)/400|0;b=c[f>>2]|0;if((c[(c[f>>2]|0)+152>>2]|0)==-1e3){c[e>>2]=(((c[b+132>>2]|0)*60|0)/(c[g>>2]|0)|0)+(_(c[(c[f>>2]|0)+132>>2]|0,c[(c[f>>2]|0)+100>>2]|0)|0);h=c[e>>2]|0;i=j;return h|0}if((c[b+152>>2]|0)==-1){h=_(c[h>>2]<<3,c[(c[f>>2]|0)+132>>2]|0)|0;c[e>>2]=(h|0)/(c[g>>2]|0)|0;h=c[e>>2]|0;i=j;return h|0}else{c[e>>2]=c[(c[f>>2]|0)+152>>2];h=c[e>>2]|0;i=j;return h|0}return 0}function Hi(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;h=p+20|0;j=p+16|0;k=p+12|0;l=p+8|0;m=p+4|0;o=p+24|0;n=p;c[h>>2]=b;c[j>>2]=e;c[k>>2]=f;c[l>>2]=g;c[m>>2]=0;while(1){if((c[j>>2]|0)>=400)break;c[j>>2]=c[j>>2]<<1;c[m>>2]=(c[m>>2]|0)+1}do if((c[h>>2]|0)!=1e3)if((c[h>>2]|0)==1002){b=(c[k>>2]|0)-1102|0;c[n>>2]=b;c[n>>2]=(c[n>>2]|0)<0?0:b;a[o>>0]=-128;a[o>>0]=d[o>>0]|0|c[n>>2]<<5;a[o>>0]=d[o>>0]|0|c[m>>2]<<3;break}else{a[o>>0]=96;a[o>>0]=d[o>>0]|0|(c[k>>2]|0)-1104<<4;a[o>>0]=d[o>>0]|0|(c[m>>2]|0)-2<<3;break}else{a[o>>0]=(c[k>>2]|0)-1101<<5;a[o>>0]=d[o>>0]|0|(c[m>>2]|0)-2<<3}while(0);a[o>>0]=d[o>>0]|0|((c[l>>2]|0)==2&1)<<2;i=p;return a[o>>0]|0}function Ii(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;q=i;i=i+64|0;j=q+60|0;v=q+56|0;k=q+52|0;l=q+48|0;m=q+44|0;n=q+40|0;u=q+36|0;p=q+24|0;o=q+16|0;s=q+8|0;t=q+4|0;r=q;c[j>>2]=a;c[v>>2]=b;c[k>>2]=d;c[l>>2]=e;c[m>>2]=f;c[n>>2]=g;c[u>>2]=h;c[s>>2]=(((c[v>>2]&65535)<<16>>16)*2471|0)/((c[u>>2]|0)/1e3|0|0)|0;c[t>>2]=268435456-((c[s>>2]|0)*471|0);c[p>>2]=c[t>>2];c[p+4>>2]=0-(c[t>>2]|0)<<1;c[p+8>>2]=c[t>>2];c[r>>2]=c[t>>2]>>6;d=_(c[s>>2]>>16,(c[s>>2]&65535)<<16>>16)|0;d=d+((_(c[s>>2]&65535,(c[s>>2]&65535)<<16>>16)|0)>>16)|0;d=_(c[r>>2]>>16,(d+(_(c[s>>2]|0,(c[s>>2]>>15)+1>>1)|0)-8388608&65535)<<16>>16)|0;f=_(c[s>>2]>>16,(c[s>>2]&65535)<<16>>16)|0;f=f+((_(c[s>>2]&65535,(c[s>>2]&65535)<<16>>16)|0)>>16)|0;f=d+((_(c[r>>2]&65535,(f+(_(c[s>>2]|0,(c[s>>2]>>15)+1>>1)|0)-8388608&65535)<<16>>16)|0)>>16)|0;d=_(c[s>>2]>>16,(c[s>>2]&65535)<<16>>16)|0;d=d+((_(c[s>>2]&65535,(c[s>>2]&65535)<<16>>16)|0)>>16)|0;c[o>>2]=f+(_(c[r>>2]|0,(d+(_(c[s>>2]|0,(c[s>>2]>>15)+1>>1)|0)-8388608>>15)+1>>1)|0);d=_(c[r>>2]>>16,(c[r>>2]&65535)<<16>>16)|0;d=d+((_(c[r>>2]&65535,(c[r>>2]&65535)<<16>>16)|0)>>16)|0;c[o+4>>2]=d+(_(c[r>>2]|0,(c[r>>2]>>15)+1>>1)|0);Ji(c[j>>2]|0,p,o,c[l>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0);if((c[n>>2]|0)!=2){i=q;return}Ji((c[j>>2]|0)+4|0,p,o,(c[l>>2]|0)+8|0,(c[k>>2]|0)+4|0,c[m>>2]|0,c[n>>2]|0);i=q;return}function Ji(a,b,d,e,f,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;u=i;i=i+64|0;k=u+60|0;v=u+56|0;w=u+52|0;l=u+48|0;m=u+44|0;n=u+40|0;o=u+36|0;s=u+32|0;t=u+28|0;r=u+24|0;p=u+16|0;q=u;c[k>>2]=a;c[v>>2]=b;c[w>>2]=d;c[l>>2]=e;c[m>>2]=f;c[n>>2]=h;c[o>>2]=j;g[p>>2]=+(c[c[w>>2]>>2]|0)*3.725290298461914e-09;g[p+4>>2]=+(c[(c[w>>2]|0)+4>>2]|0)*3.725290298461914e-09;g[q>>2]=+(c[c[v>>2]>>2]|0)*3.725290298461914e-09;g[q+4>>2]=+(c[(c[v>>2]|0)+4>>2]|0)*3.725290298461914e-09;g[q+8>>2]=+(c[(c[v>>2]|0)+8>>2]|0)*3.725290298461914e-09;c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[n>>2]|0))break;w=_(c[s>>2]|0,c[o>>2]|0)|0;g[r>>2]=+g[(c[k>>2]|0)+(w<<2)>>2];g[t>>2]=+g[c[l>>2]>>2]+ +g[q>>2]*+g[r>>2];g[c[l>>2]>>2]=+g[(c[l>>2]|0)+4>>2]-+g[t>>2]*+g[p>>2]+ +g[q+4>>2]*+g[r>>2];g[(c[l>>2]|0)+4>>2]=-+g[t>>2]*+g[p+4>>2]+ +g[q+8>>2]*+g[r>>2]+1.0000000031710769e-30;w=_(c[s>>2]|0,c[o>>2]|0)|0;g[(c[m>>2]|0)+(w<<2)>>2]=+g[t>>2];c[s>>2]=(c[s>>2]|0)+1}i=u;return}function Ki(a,b,d,e,f,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;v=i;i=i+64|0;k=v+48|0;x=v+44|0;l=v+40|0;m=v+36|0;n=v+32|0;o=v+28|0;w=v+24|0;p=v+20|0;r=v+16|0;q=v+12|0;t=v+8|0;s=v+4|0;u=v;c[k>>2]=a;c[x>>2]=b;c[l>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=h;c[w>>2]=j;g[q>>2]=+(c[x>>2]|0)*4.0/+(c[w>>2]|0);c[p>>2]=0;while(1){if((c[p>>2]|0)>=(c[o>>2]|0))break;c[r>>2]=0;while(1){if((c[r>>2]|0)>=(c[n>>2]|0))break;x=_(c[o>>2]|0,c[r>>2]|0)|0;g[t>>2]=+g[(c[k>>2]|0)+(x+(c[p>>2]|0)<<2)>>2];g[s>>2]=+g[t>>2]-+g[(c[m>>2]|0)+(c[p>>2]<<1<<2)>>2];g[(c[m>>2]|0)+(c[p>>2]<<1<<2)>>2]=+g[(c[m>>2]|0)+(c[p>>2]<<1<<2)>>2]+ +g[q>>2]*(+g[t>>2]-+g[(c[m>>2]|0)+(c[p>>2]<<1<<2)>>2])+1.0000000031710769e-30;g[u>>2]=+g[s>>2]-+g[(c[m>>2]|0)+((c[p>>2]<<1)+1<<2)>>2];g[(c[m>>2]|0)+((c[p>>2]<<1)+1<<2)>>2]=+g[(c[m>>2]|0)+((c[p>>2]<<1)+1<<2)>>2]+ +g[q>>2]*(+g[s>>2]-+g[(c[m>>2]|0)+((c[p>>2]<<1)+1<<2)>>2])+1.0000000031710769e-30;x=_(c[o>>2]|0,c[r>>2]|0)|0;g[(c[l>>2]|0)+(x+(c[p>>2]|0)<<2)>>2]=+g[u>>2];c[r>>2]=(c[r>>2]|0)+1}c[p>>2]=(c[p>>2]|0)+1}i=v;return}function Li(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;f=m+16|0;h=m+12|0;j=m+8|0;k=m+4|0;l=m;c[f>>2]=a;c[h>>2]=b;c[j>>2]=d;g[l>>2]=0.0;c[k>>2]=0;while(1){e=+g[l>>2];if((c[k>>2]|0)>=(c[j>>2]|0))break;g[l>>2]=e+ +g[(c[f>>2]|0)+(c[k>>2]<<2)>>2]*+g[(c[h>>2]|0)+(c[k>>2]<<2)>>2];c[k>>2]=(c[k>>2]|0)+1}i=m;return +e}function Mi(a,b,d,e,f,h,j,k,l){a=a|0;b=b|0;d=+d;e=+e;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;B=i;i=i+80|0;m=B+64|0;n=B+60|0;o=B+56|0;p=B+52|0;C=B+48|0;q=B+44|0;r=B+40|0;s=B+36|0;D=B+32|0;w=B+28|0;x=B+24|0;y=B+20|0;t=B+16|0;u=B+12|0;z=B+8|0;v=B+4|0;A=B;c[m>>2]=a;c[n>>2]=b;g[o>>2]=d;g[p>>2]=e;c[C>>2]=f;c[q>>2]=h;c[r>>2]=j;c[s>>2]=k;c[D>>2]=l;c[x>>2]=48e3/(c[D>>2]|0)|0;c[y>>2]=(c[C>>2]|0)/(c[x>>2]|0)|0;k=(c[r>>2]|0)==1;c[w>>2]=0;a:do if(k)while(1){if((c[w>>2]|0)>=(c[y>>2]|0))break a;C=_(c[w>>2]|0,c[x>>2]|0)|0;D=_(c[w>>2]|0,c[x>>2]|0)|0;g[z>>2]=+g[(c[s>>2]|0)+(C<<2)>>2]*+g[(c[s>>2]|0)+(D<<2)>>2];g[u>>2]=+g[z>>2]*+g[p>>2]+(1.0-+g[z>>2])*+g[o>>2];g[(c[n>>2]|0)+(c[w>>2]<<2)>>2]=+g[u>>2]*+g[(c[m>>2]|0)+(c[w>>2]<<2)>>2];c[w>>2]=(c[w>>2]|0)+1}else while(1){if((c[w>>2]|0)>=(c[y>>2]|0))break a;C=_(c[w>>2]|0,c[x>>2]|0)|0;D=_(c[w>>2]|0,c[x>>2]|0)|0;g[A>>2]=+g[(c[s>>2]|0)+(C<<2)>>2]*+g[(c[s>>2]|0)+(D<<2)>>2];g[v>>2]=+g[A>>2]*+g[p>>2]+(1.0-+g[A>>2])*+g[o>>2];g[(c[n>>2]|0)+(c[w>>2]<<1<<2)>>2]=+g[v>>2]*+g[(c[m>>2]|0)+(c[w>>2]<<1<<2)>>2];g[(c[n>>2]|0)+((c[w>>2]<<1)+1<<2)>>2]=+g[v>>2]*+g[(c[m>>2]|0)+((c[w>>2]<<1)+1<<2)>>2];c[w>>2]=(c[w>>2]|0)+1}while(0);c[t>>2]=0;do{c[w>>2]=c[y>>2];while(1){if((c[w>>2]|0)>=(c[q>>2]|0))break;C=_(c[w>>2]|0,c[r>>2]|0)|0;D=_(c[w>>2]|0,c[r>>2]|0)|0;g[(c[n>>2]|0)+(D+(c[t>>2]|0)<<2)>>2]=+g[p>>2]*+g[(c[m>>2]|0)+(C+(c[t>>2]|0)<<2)>>2];c[w>>2]=(c[w>>2]|0)+1}D=(c[t>>2]|0)+1|0;c[t>>2]=D}while((D|0)<(c[r>>2]|0));i=B;return}function Ni(a){a=+a;var b=0,c=0;c=i;i=i+16|0;b=c;g[b>>2]=a;g[b>>2]=+g[b>>2]*32768.0;g[b>>2]=+g[b>>2]>-32768.0?+g[b>>2]:-32768.0;g[b>>2]=+g[b>>2]<32767.0?+g[b>>2]:32767.0;b=(ij(+g[b>>2])|0)&65535;i=c;return b|0}function Oi(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=(c[(c[d>>2]|0)+20>>2]|0)-(32-(aa(c[(c[d>>2]|0)+28>>2]|0)|0))|0;i=b;return a|0}function Pi(a,b,d,e,f,h,j,k,l){a=a|0;b=b|0;d=+d;e=+e;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;A=i;i=i+64|0;m=A+60|0;n=A+56|0;o=A+52|0;p=A+48|0;B=A+44|0;q=A+40|0;r=A+36|0;s=A+32|0;C=A+28|0;w=A+24|0;y=A+20|0;x=A+16|0;t=A+12|0;v=A+8|0;z=A+4|0;u=A;c[m>>2]=a;c[n>>2]=b;g[o>>2]=d;g[p>>2]=e;c[B>>2]=f;c[q>>2]=h;c[r>>2]=j;c[s>>2]=k;c[C>>2]=l;c[x>>2]=48e3/(c[C>>2]|0)|0;c[y>>2]=(c[B>>2]|0)/(c[x>>2]|0)|0;g[o>>2]=1.0-+g[o>>2];g[p>>2]=1.0-+g[p>>2];c[w>>2]=0;while(1){if((c[w>>2]|0)>=(c[y>>2]|0))break;C=_(c[w>>2]|0,c[x>>2]|0)|0;B=_(c[w>>2]|0,c[x>>2]|0)|0;g[z>>2]=+g[(c[s>>2]|0)+(C<<2)>>2]*+g[(c[s>>2]|0)+(B<<2)>>2];g[v>>2]=+g[z>>2]*+g[p>>2]+(1.0-+g[z>>2])*+g[o>>2];B=_(c[w>>2]|0,c[r>>2]|0)|0;C=(_(c[w>>2]|0,c[r>>2]|0)|0)+1|0;g[t>>2]=(+g[(c[m>>2]|0)+(B<<2)>>2]-+g[(c[m>>2]|0)+(C<<2)>>2])*.5;g[t>>2]=+g[v>>2]*+g[t>>2];C=_(c[w>>2]|0,c[r>>2]|0)|0;B=_(c[w>>2]|0,c[r>>2]|0)|0;g[(c[n>>2]|0)+(B<<2)>>2]=+g[(c[n>>2]|0)+(C<<2)>>2]-+g[t>>2];B=(_(c[w>>2]|0,c[r>>2]|0)|0)+1|0;C=(_(c[w>>2]|0,c[r>>2]|0)|0)+1|0;g[(c[n>>2]|0)+(C<<2)>>2]=+g[(c[n>>2]|0)+(B<<2)>>2]+ +g[t>>2];c[w>>2]=(c[w>>2]|0)+1}while(1){if((c[w>>2]|0)>=(c[q>>2]|0))break;B=_(c[w>>2]|0,c[r>>2]|0)|0;C=(_(c[w>>2]|0,c[r>>2]|0)|0)+1|0;g[u>>2]=(+g[(c[m>>2]|0)+(B<<2)>>2]-+g[(c[m>>2]|0)+(C<<2)>>2])*.5;g[u>>2]=+g[p>>2]*+g[u>>2];C=_(c[w>>2]|0,c[r>>2]|0)|0;B=_(c[w>>2]|0,c[r>>2]|0)|0;g[(c[n>>2]|0)+(B<<2)>>2]=+g[(c[n>>2]|0)+(C<<2)>>2]-+g[u>>2];B=(_(c[w>>2]|0,c[r>>2]|0)|0)+1|0;C=(_(c[w>>2]|0,c[r>>2]|0)|0)+1|0;g[(c[n>>2]|0)+(C<<2)>>2]=+g[(c[n>>2]|0)+(B<<2)>>2]+ +g[u>>2];c[w>>2]=(c[w>>2]|0)+1}i=A;return}function Qi(a,d,e,f,h){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+48|0;k=t+36|0;l=t+32|0;m=t+28|0;n=t+24|0;o=t+20|0;r=t+16|0;s=t+12|0;q=t+8|0;j=t+4|0;p=t;c[k>>2]=a;c[l>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=h;if((c[(c[k>>2]|0)+96>>2]|0)==2051)c[j>>2]=0;else c[j>>2]=c[(c[k>>2]|0)+104>>2];c[q>>2]=Ai(c[l>>2]|0,c[m>>2]|0,c[(c[k>>2]|0)+144>>2]|0,c[(c[k>>2]|0)+100>>2]|0,c[(c[k>>2]|0)+132>>2]|0,c[(c[k>>2]|0)+148>>2]|0,c[j>>2]|0,1,(c[k>>2]|0)+172+6872|0)|0;a=_(c[q>>2]|0,c[(c[k>>2]|0)+100>>2]|0)|0;c[p>>2]=ia()|0;e=i;i=i+((1*(a<<2)|0)+15&-16)|0;c[r>>2]=0;while(1){if((c[r>>2]|0)>=(_(c[q>>2]|0,c[(c[k>>2]|0)+100>>2]|0)|0))break;g[e+(c[r>>2]<<2)>>2]=+(b[(c[l>>2]|0)+(c[r>>2]<<1)>>1]|0)*.000030517578125;c[r>>2]=(c[r>>2]|0)+1}c[s>>2]=Fi(c[k>>2]|0,e,c[q>>2]|0,c[n>>2]|0,c[o>>2]|0,16,c[l>>2]|0,c[m>>2]|0,0,-2,c[(c[k>>2]|0)+100>>2]|0,1,0)|0;s=c[s>>2]|0;na(c[p>>2]|0);i=t;return s|0}function Ri(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;g=o+24|0;h=o+20|0;j=o+16|0;k=o+12|0;l=o+8|0;n=o+4|0;m=o;c[g>>2]=a;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;if((c[(c[g>>2]|0)+96>>2]|0)==2051)c[m>>2]=0;else c[m>>2]=c[(c[g>>2]|0)+104>>2];c[n>>2]=Ai(c[h>>2]|0,c[j>>2]|0,c[(c[g>>2]|0)+144>>2]|0,c[(c[g>>2]|0)+100>>2]|0,c[(c[g>>2]|0)+132>>2]|0,c[(c[g>>2]|0)+148>>2]|0,c[m>>2]|0,2,(c[g>>2]|0)+172+6872|0)|0;a=Fi(c[g>>2]|0,c[h>>2]|0,c[n>>2]|0,c[k>>2]|0,c[l>>2]|0,24,c[h>>2]|0,c[j>>2]|0,0,-2,c[(c[g>>2]|0)+100>>2]|0,2,1)|0;i=o;return a|0}function Si(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0;ha=i;i=i+352|0;ca=ha+48|0;ba=ha+40|0;aa=ha+32|0;$=ha+24|0;_=ha+16|0;Z=ha+8|0;Y=ha;fa=ha+336|0;ea=ha+332|0;ia=ha+328|0;ga=ha+324|0;h=ha+320|0;f=ha+304|0;m=ha+300|0;n=ha+296|0;y=ha+292|0;J=ha+288|0;da=ha+284|0;T=ha+280|0;U=ha+276|0;V=ha+272|0;W=ha+268|0;X=ha+264|0;o=ha+260|0;p=ha+256|0;q=ha+252|0;r=ha+248|0;s=ha+244|0;t=ha+240|0;u=ha+236|0;v=ha+232|0;w=ha+228|0;x=ha+224|0;z=ha+220|0;A=ha+216|0;B=ha+212|0;C=ha+208|0;D=ha+204|0;E=ha+200|0;F=ha+196|0;G=ha+192|0;H=ha+188|0;I=ha+184|0;K=ha+180|0;L=ha+176|0;M=ha+172|0;N=ha+168|0;O=ha+164|0;k=ha+160|0;j=ha+72|0;l=ha+68|0;P=ha+64|0;Q=ha+60|0;R=ha+56|0;S=ha+52|0;c[ea>>2]=a;c[ia>>2]=d;c[ga>>2]=0;c[f>>2]=e;c[h>>2]=(c[ea>>2]|0)+(c[c[ea>>2]>>2]|0);a:do switch(c[ia>>2]|0){case 4e3:{da=(c[f>>2]|0)+(4-1)&~(4-1);ia=c[da>>2]|0;c[f>>2]=da+4;c[m>>2]=ia;do if(!((c[m>>2]|0)!=2048&(c[m>>2]|0)!=2049&(c[m>>2]|0)!=2051)){if((c[(c[ea>>2]|0)+14344>>2]|0)==0?(c[(c[ea>>2]|0)+96>>2]|0)!=(c[m>>2]|0):0)break;c[(c[ea>>2]|0)+96>>2]=c[m>>2];f=99;break a}while(0);c[ga>>2]=-1;f=99;break}case 4001:{da=(c[f>>2]|0)+(4-1)&~(4-1);ia=c[da>>2]|0;c[f>>2]=da+4;c[n>>2]=ia;if(c[n>>2]|0){c[c[n>>2]>>2]=c[(c[ea>>2]|0)+96>>2];f=99}else f=100;break}case 4002:{da=(c[f>>2]|0)+(4-1)&~(4-1);ia=c[da>>2]|0;c[f>>2]=da+4;c[y>>2]=ia;do if((c[y>>2]|0)!=-1e3&(c[y>>2]|0)!=-1){if((c[y>>2]|0)<=0){f=100;break a}if((c[y>>2]|0)<=500){c[y>>2]=500;break}if((c[y>>2]|0)>((c[(c[ea>>2]|0)+100>>2]|0)*3e5|0))c[y>>2]=(c[(c[ea>>2]|0)+100>>2]|0)*3e5}while(0);c[(c[ea>>2]|0)+152>>2]=c[y>>2];f=99;break}case 4003:{da=(c[f>>2]|0)+(4-1)&~(4-1);ia=c[da>>2]|0;c[f>>2]=da+4;c[J>>2]=ia;if(c[J>>2]|0){f=Gi(c[ea>>2]|0,c[(c[ea>>2]|0)+14332>>2]|0,1276)|0;c[c[J>>2]>>2]=f;f=99}else f=100;break}case 4022:{e=(c[f>>2]|0)+(4-1)&~(4-1);ia=c[e>>2]|0;c[f>>2]=e+4;c[da>>2]=ia;f=c[da>>2]|0;if((c[da>>2]|0)<1){if((f|0)!=-1e3){f=100;break a}}else if((c[da>>2]|0)!=-1e3?(f|0)>(c[(c[ea>>2]|0)+100>>2]|0):0){f=100;break a}c[(c[ea>>2]|0)+108>>2]=c[da>>2];f=99;break}case 4023:{da=(c[f>>2]|0)+(4-1)&~(4-1);ia=c[da>>2]|0;c[f>>2]=da+4;c[T>>2]=ia;if(c[T>>2]|0){c[c[T>>2]>>2]=c[(c[ea>>2]|0)+108>>2];f=99}else f=100;break}case 4004:{da=(c[f>>2]|0)+(4-1)&~(4-1);ia=c[da>>2]|0;c[f>>2]=da+4;c[U>>2]=ia;if(!((c[U>>2]|0)<1101|(c[U>>2]|0)>1105)){c[(c[ea>>2]|0)+120>>2]=c[U>>2];h=c[ea>>2]|0;if((c[(c[ea>>2]|0)+120>>2]|0)==1101){c[h+8+12>>2]=8e3;f=99;break a}f=(c[ea>>2]|0)+8+12|0;if((c[h+120>>2]|0)==1102){c[f>>2]=12e3;f=99;break a}else{c[f>>2]=16e3;f=99;break a}}else f=100;break}case 4005:{da=(c[f>>2]|0)+(4-1)&~(4-1);ia=c[da>>2]|0;c[f>>2]=da+4;c[V>>2]=ia;if(c[V>>2]|0){c[c[V>>2]>>2]=c[(c[ea>>2]|0)+120>>2];f=99}else f=100;break}case 4008:{da=(c[f>>2]|0)+(4-1)&~(4-1);ia=c[da>>2]|0;c[f>>2]=da+4;c[W>>2]=ia;if(!(((c[W>>2]|0)<1101|(c[W>>2]|0)>1105)&(c[W>>2]|0)!=-1e3)){c[(c[ea>>2]|0)+116>>2]=c[W>>2];h=c[ea>>2]|0;if((c[(c[ea>>2]|0)+116>>2]|0)==1101){c[h+8+12>>2]=8e3;f=99;break a}f=(c[ea>>2]|0)+8+12|0;if((c[h+116>>2]|0)==1102){c[f>>2]=12e3;f=99;break a}else{c[f>>2]=16e3;f=99;break a}}else f=100;break}case 4009:{da=(c[f>>2]|0)+(4-1)&~(4-1);ia=c[da>>2]|0;c[f>>2]=da+4;c[X>>2]=ia;if(c[X>>2]|0){c[c[X>>2]>>2]=c[(c[ea>>2]|0)+14336>>2];f=99}else f=100;break}case 4016:{da=(c[f>>2]|0)+(4-1)&~(4-1);ia=c[da>>2]|0;c[f>>2]=da+4;c[o>>2]=ia;if((c[o>>2]|0)<0|(c[o>>2]|0)>1)f=100;else{c[(c[ea>>2]|0)+8+44>>2]=c[o>>2];f=99}break}case 4017:{da=(c[f>>2]|0)+(4-1)&~(4-1);ia=c[da>>2]|0;c[f>>2]=da+4;c[p>>2]=ia;if(c[p>>2]|0){c[c[p>>2]>>2]=c[(c[ea>>2]|0)+8+44>>2];f=99}else f=100;break}case 4010:{da=(c[f>>2]|0)+(4-1)&~(4-1);ia=c[da>>2]|0;c[f>>2]=da+4;c[q>>2]=ia;if((c[q>>2]|0)<0|(c[q>>2]|0)>10)f=100;else{c[(c[ea>>2]|0)+8+36>>2]=c[q>>2];f=c[h>>2]|0;c[Y>>2]=c[q>>2];lb(f,4010,Y)|0;f=99}break}case 4011:{da=(c[f>>2]|0)+(4-1)&~(4-1);ia=c[da>>2]|0;c[f>>2]=da+4;c[r>>2]=ia;if(c[r>>2]|0){c[c[r>>2]>>2]=c[(c[ea>>2]|0)+8+36>>2];f=99}else f=100;break}case 4012:{da=(c[f>>2]|0)+(4-1)&~(4-1);ia=c[da>>2]|0;c[f>>2]=da+4;c[s>>2]=ia;if((c[s>>2]|0)<0|(c[s>>2]|0)>1)f=100;else{c[(c[ea>>2]|0)+8+40>>2]=c[s>>2];f=99}break}case 4013:{da=(c[f>>2]|0)+(4-1)&~(4-1);ia=c[da>>2]|0;c[f>>2]=da+4;c[t>>2]=ia;if(c[t>>2]|0){c[c[t>>2]>>2]=c[(c[ea>>2]|0)+8+40>>2];f=99}else f=100;break}case 4014:{da=(c[f>>2]|0)+(4-1)&~(4-1);ia=c[da>>2]|0;c[f>>2]=da+4;c[u>>2]=ia;if((c[u>>2]|0)<0|(c[u>>2]|0)>100)f=100;else{c[(c[ea>>2]|0)+8+32>>2]=c[u>>2];f=c[h>>2]|0;c[Z>>2]=c[u>>2];lb(f,4014,Z)|0;f=99}break}case 4015:{da=(c[f>>2]|0)+(4-1)&~(4-1);ia=c[da>>2]|0;c[f>>2]=da+4;c[v>>2]=ia;if(c[v>>2]|0){c[c[v>>2]>>2]=c[(c[ea>>2]|0)+8+32>>2];f=99}else f=100;break}case 4006:{da=(c[f>>2]|0)+(4-1)&~(4-1);ia=c[da>>2]|0;c[f>>2]=da+4;c[w>>2]=ia;if((c[w>>2]|0)<0|(c[w>>2]|0)>1)f=100;else{c[(c[ea>>2]|0)+136>>2]=c[w>>2];c[(c[ea>>2]|0)+8+48>>2]=1-(c[w>>2]|0);f=99}break}case 4007:{da=(c[f>>2]|0)+(4-1)&~(4-1);ia=c[da>>2]|0;c[f>>2]=da+4;c[x>>2]=ia;if(c[x>>2]|0){c[c[x>>2]>>2]=c[(c[ea>>2]|0)+136>>2];f=99}else f=100;break}case 11018:{da=(c[f>>2]|0)+(4-1)&~(4-1);ia=c[da>>2]|0;c[f>>2]=da+4;c[z>>2]=ia;if((c[z>>2]|0)<-1|(c[z>>2]|0)>100)f=100;else{c[(c[ea>>2]|0)+128>>2]=c[z>>2];f=99}break}case 11019:{da=(c[f>>2]|0)+(4-1)&~(4-1);ia=c[da>>2]|0;c[f>>2]=da+4;c[A>>2]=ia;if(c[A>>2]|0){c[c[A>>2]>>2]=c[(c[ea>>2]|0)+128>>2];f=99}else f=100;break}case 4020:{da=(c[f>>2]|0)+(4-1)&~(4-1);ia=c[da>>2]|0;c[f>>2]=da+4;c[B>>2]=ia;if((c[B>>2]|0)<0|(c[B>>2]|0)>1)f=100;else{c[(c[ea>>2]|0)+140>>2]=c[B>>2];f=99}break}case 4021:{da=(c[f>>2]|0)+(4-1)&~(4-1);ia=c[da>>2]|0;c[f>>2]=da+4;c[C>>2]=ia;if(c[C>>2]|0){c[c[C>>2]>>2]=c[(c[ea>>2]|0)+140>>2];f=99}else f=100;break}case 4024:{da=(c[f>>2]|0)+(4-1)&~(4-1);ia=c[da>>2]|0;c[f>>2]=da+4;c[D>>2]=ia;if((c[D>>2]|0)!=-1e3&(c[D>>2]|0)!=3001&(c[D>>2]|0)!=3002)f=100;else{c[(c[ea>>2]|0)+112>>2]=c[D>>2];f=99}break}case 4025:{da=(c[f>>2]|0)+(4-1)&~(4-1);ia=c[da>>2]|0;c[f>>2]=da+4;c[E>>2]=ia;if(c[E>>2]|0){c[c[E>>2]>>2]=c[(c[ea>>2]|0)+112>>2];f=99}else f=100;break}case 4027:{da=(c[f>>2]|0)+(4-1)&~(4-1);ia=c[da>>2]|0;c[f>>2]=da+4;c[F>>2]=ia;if(c[F>>2]|0){c[c[F>>2]>>2]=(c[(c[ea>>2]|0)+132>>2]|0)/400|0;if((c[(c[ea>>2]|0)+96>>2]|0)!=2051){f=c[F>>2]|0;c[f>>2]=(c[f>>2]|0)+(c[(c[ea>>2]|0)+104>>2]|0);f=99}else f=99}else f=100;break}case 4029:{da=(c[f>>2]|0)+(4-1)&~(4-1);ia=c[da>>2]|0;c[f>>2]=da+4;c[G>>2]=ia;if(c[G>>2]|0){c[c[G>>2]>>2]=c[(c[ea>>2]|0)+132>>2];f=99}else f=100;break}case 4031:{da=(c[f>>2]|0)+(4-1)&~(4-1);ia=c[da>>2]|0;c[f>>2]=da+4;c[H>>2]=ia;if(c[H>>2]|0){c[c[H>>2]>>2]=c[(c[ea>>2]|0)+18216>>2];f=99}else f=100;break}case 4036:{da=(c[f>>2]|0)+(4-1)&~(4-1);ia=c[da>>2]|0;c[f>>2]=da+4;c[I>>2]=ia;if((c[I>>2]|0)<8|(c[I>>2]|0)>24)f=100;else{c[(c[ea>>2]|0)+156>>2]=c[I>>2];f=99}break}case 4037:{da=(c[f>>2]|0)+(4-1)&~(4-1);ia=c[da>>2]|0;c[f>>2]=da+4;c[K>>2]=ia;if(c[K>>2]|0){c[c[K>>2]>>2]=c[(c[ea>>2]|0)+156>>2];f=99}else f=100;break}case 4040:{da=(c[f>>2]|0)+(4-1)&~(4-1);ia=c[da>>2]|0;c[f>>2]=da+4;c[L>>2]=ia;if((c[L>>2]|0)!=5e3&(c[L>>2]|0)!=5001&(c[L>>2]|0)!=5002&(c[L>>2]|0)!=5003&(c[L>>2]|0)!=5004&(c[L>>2]|0)!=5005&(c[L>>2]|0)!=5006&(c[L>>2]|0)!=5010)f=100;else{c[(c[ea>>2]|0)+144>>2]=c[L>>2];f=c[h>>2]|0;c[_>>2]=c[L>>2];lb(f,4040,_)|0;f=99}break}case 4041:{da=(c[f>>2]|0)+(4-1)&~(4-1);ia=c[da>>2]|0;c[f>>2]=da+4;c[M>>2]=ia;if(c[M>>2]|0){c[c[M>>2]>>2]=c[(c[ea>>2]|0)+144>>2];f=99}else f=100;break}case 4042:{da=(c[f>>2]|0)+(4-1)&~(4-1);ia=c[da>>2]|0;c[f>>2]=da+4;c[N>>2]=ia;if((c[N>>2]|0)>1|(c[N>>2]|0)<0)f=100;else{c[(c[ea>>2]|0)+8+64>>2]=c[N>>2];f=99}break}case 4043:{da=(c[f>>2]|0)+(4-1)&~(4-1);ia=c[da>>2]|0;c[f>>2]=da+4;c[O>>2]=ia;if(c[O>>2]|0){c[c[O>>2]>>2]=c[(c[ea>>2]|0)+8+64>>2];f=99}else f=100;break}case 4028:{c[k>>2]=(c[ea>>2]|0)+(c[(c[ea>>2]|0)+4>>2]|0);_i((c[ea>>2]|0)+172|0);c[l>>2]=(c[ea>>2]|0)+14288;oj(c[l>>2]|0,0,18220-((c[l>>2]|0)-(c[ea>>2]|0))|0)|0;lb(c[h>>2]|0,4028,$)|0;Td(c[k>>2]|0,c[(c[ea>>2]|0)+168>>2]|0,j)|0;c[(c[ea>>2]|0)+14288>>2]=c[(c[ea>>2]|0)+100>>2];b[(c[ea>>2]|0)+14292>>1]=16384;g[(c[ea>>2]|0)+14300>>2]=1.0;c[(c[ea>>2]|0)+14344>>2]=1;c[(c[ea>>2]|0)+14320>>2]=1001;c[(c[ea>>2]|0)+14336>>2]=1105;f=(Sf(60)|0)<<8;c[(c[ea>>2]|0)+14296>>2]=f;f=99;break}case 11002:{da=(c[f>>2]|0)+(4-1)&~(4-1);ia=c[da>>2]|0;c[f>>2]=da+4;c[P>>2]=ia;if(((c[P>>2]|0)<1e3|(c[P>>2]|0)>1002)&(c[P>>2]|0)!=-1e3)f=100;else{c[(c[ea>>2]|0)+124>>2]=c[P>>2];f=99}break}case 10024:{da=(c[f>>2]|0)+(4-1)&~(4-1);ia=c[da>>2]|0;c[f>>2]=da+4;c[Q>>2]=ia;c[(c[ea>>2]|0)+164>>2]=c[Q>>2];f=c[h>>2]|0;c[aa>>2]=c[Q>>2];c[ga>>2]=lb(f,10024,aa)|0;f=99;break}case 10026:{da=(c[f>>2]|0)+(4-1)&~(4-1);ia=c[da>>2]|0;c[f>>2]=da+4;c[R>>2]=ia;c[(c[ea>>2]|0)+14348>>2]=c[R>>2];f=c[h>>2]|0;c[ba>>2]=(c[R>>2]|0)+((((c[R>>2]|0)-(c[R>>2]|0)|0)/4|0)<<2);c[ga>>2]=lb(f,10026,ba)|0;f=99;break}case 10015:{ea=(c[f>>2]|0)+(4-1)&~(4-1);ia=c[ea>>2]|0;c[f>>2]=ea+4;c[S>>2]=ia;if(c[S>>2]|0){f=c[h>>2]|0;c[ca>>2]=(c[S>>2]|0)+((((c[S>>2]|0)-(c[S>>2]|0)|0)/4|0)<<2);c[ga>>2]=lb(f,10015,ca)|0;f=99}else f=100;break}default:{c[ga>>2]=-5;f=99}}while(0);if((f|0)==99){c[fa>>2]=c[ga>>2];ia=c[fa>>2]|0;i=ha;return ia|0}else if((f|0)==100){c[fa>>2]=-1;ia=c[fa>>2]|0;i=ha;return ia|0}return 0}function Ti(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;c[(c[b>>2]|0)+4>>2]=0;i=d;return c[b>>2]|0}function Ui(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;h=e+8|0;g=e+4|0;f=e;c[h>>2]=a;c[g>>2]=b;c[f>>2]=d;a=Vi(c[h>>2]|0,c[g>>2]|0,c[f>>2]|0,0)|0;i=e;return a|0}function Vi(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+32|0;h=q+24|0;j=q+20|0;k=q+16|0;l=q+12|0;m=q+8|0;p=q+28|0;n=q+4|0;o=q;c[j>>2]=b;c[k>>2]=e;c[l>>2]=f;c[m>>2]=g;if((c[l>>2]|0)<1){c[h>>2]=-4;p=c[h>>2]|0;i=q;return p|0}if(c[(c[j>>2]|0)+4>>2]|0){if(((d[c[j>>2]>>0]|0)&252|0)!=((d[c[k>>2]>>0]|0)&252|0)){c[h>>2]=-4;p=c[h>>2]|0;i=q;return p|0}}else{a[c[j>>2]>>0]=a[c[k>>2]>>0]|0;g=Zh(c[k>>2]|0,8e3)|0;c[(c[j>>2]|0)+296>>2]=g}c[n>>2]=pi(c[k>>2]|0,c[l>>2]|0)|0;if((c[n>>2]|0)<1){c[h>>2]=-4;p=c[h>>2]|0;i=q;return p|0}if((_((c[n>>2]|0)+(c[(c[j>>2]|0)+4>>2]|0)|0,c[(c[j>>2]|0)+296>>2]|0)|0)>960){c[h>>2]=-4;p=c[h>>2]|0;i=q;return p|0}c[o>>2]=_h(c[k>>2]|0,c[l>>2]|0,c[m>>2]|0,p,(c[j>>2]|0)+8+(c[(c[j>>2]|0)+4>>2]<<2)|0,(c[j>>2]|0)+200+(c[(c[j>>2]|0)+4>>2]<<1)|0,0,0)|0;if((c[o>>2]|0)<1){c[h>>2]=c[o>>2];p=c[h>>2]|0;i=q;return p|0}else{p=(c[j>>2]|0)+4|0;c[p>>2]=(c[p>>2]|0)+(c[n>>2]|0);c[h>>2]=0;p=c[h>>2]|0;i=q;return p|0}return 0}function Wi(e,f,g,h,j,k,l){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+80|0;q=F+68|0;o=F+64|0;m=F+60|0;n=F+56|0;r=F+52|0;s=F+48|0;t=F+44|0;u=F+40|0;x=F+36|0;v=F+32|0;D=F+28|0;y=F+24|0;w=F+20|0;B=F+16|0;E=F+12|0;A=F+8|0;z=F+4|0;C=F;c[o>>2]=e;c[m>>2]=f;c[n>>2]=g;c[r>>2]=h;c[s>>2]=j;c[t>>2]=k;c[u>>2]=l;if(((c[m>>2]|0)>=0?(c[m>>2]|0)<(c[n>>2]|0):0)?(c[n>>2]|0)<=(c[(c[o>>2]|0)+4>>2]|0):0){c[v>>2]=(c[n>>2]|0)-(c[m>>2]|0);c[y>>2]=(c[o>>2]|0)+200+(c[m>>2]<<1);c[w>>2]=(c[o>>2]|0)+8+(c[m>>2]<<2);if(c[t>>2]|0)c[D>>2]=1+((b[(c[y>>2]|0)+((c[v>>2]|0)-1<<1)>>1]|0)>=252&1);else c[D>>2]=0;c[B>>2]=c[r>>2];do if((c[v>>2]|0)!=1){if((c[v>>2]|0)==2){m=b[c[y>>2]>>1]|0;if((b[(c[y>>2]|0)+2>>1]|0)==(b[c[y>>2]>>1]|0)){c[D>>2]=(c[D>>2]|0)+((m<<1)+1);if((c[D>>2]|0)<=(c[s>>2]|0)){e=(d[c[o>>2]>>0]&252|1)&255;k=c[B>>2]|0;c[B>>2]=k+1;a[k>>0]=e;break}c[q>>2]=-2;E=c[q>>2]|0;i=F;return E|0}else{c[D>>2]=(c[D>>2]|0)+(m+(b[(c[y>>2]|0)+2>>1]|0)+2+((b[c[y>>2]>>1]|0)>=252&1));if((c[D>>2]|0)<=(c[s>>2]|0)){e=(d[c[o>>2]>>0]&252|2)&255;k=c[B>>2]|0;c[B>>2]=k+1;a[k>>0]=e;k=Yh(b[c[y>>2]>>1]|0,c[B>>2]|0)|0;c[B>>2]=(c[B>>2]|0)+k;break}c[q>>2]=-2;E=c[q>>2]|0;i=F;return E|0}}}else{c[D>>2]=(c[D>>2]|0)+((b[c[y>>2]>>1]|0)+1);if((c[D>>2]|0)<=(c[s>>2]|0)){e=d[c[o>>2]>>0]&252;k=c[B>>2]|0;c[B>>2]=k+1;a[k>>0]=e;break}c[q>>2]=-2;E=c[q>>2]|0;i=F;return E|0}while(0);if((c[v>>2]|0)<=2){if(c[u>>2]|0?(c[D>>2]|0)<(c[s>>2]|0):0)p=23}else p=23;a:do if((p|0)==23){c[A>>2]=0;c[B>>2]=c[r>>2];if(c[t>>2]|0)c[D>>2]=1+((b[(c[y>>2]|0)+((c[v>>2]|0)-1<<1)>>1]|0)>=252&1);else c[D>>2]=0;c[E>>2]=0;c[x>>2]=1;while(1){if((c[x>>2]|0)>=(c[v>>2]|0))break;if((b[(c[y>>2]|0)+(c[x>>2]<<1)>>1]|0)!=(b[c[y>>2]>>1]|0)){p=29;break}c[x>>2]=(c[x>>2]|0)+1}if((p|0)==29)c[E>>2]=1;do if(c[E>>2]|0){c[D>>2]=(c[D>>2]|0)+2;c[x>>2]=0;while(1){if((c[x>>2]|0)>=((c[v>>2]|0)-1|0))break;c[D>>2]=(c[D>>2]|0)+(1+((b[(c[y>>2]|0)+(c[x>>2]<<1)>>1]|0)>=252&1)+(b[(c[y>>2]|0)+(c[x>>2]<<1)>>1]|0));c[x>>2]=(c[x>>2]|0)+1}c[D>>2]=(c[D>>2]|0)+(b[(c[y>>2]|0)+((c[v>>2]|0)-1<<1)>>1]|0);if((c[D>>2]|0)<=(c[s>>2]|0)){p=(d[c[o>>2]>>0]&252|3)&255;o=c[B>>2]|0;c[B>>2]=o+1;a[o>>0]=p;o=(c[v>>2]|128)&255;p=c[B>>2]|0;c[B>>2]=p+1;a[p>>0]=o;break}c[q>>2]=-2;E=c[q>>2]|0;i=F;return E|0}else{p=(_(c[v>>2]|0,b[c[y>>2]>>1]|0)|0)+2|0;c[D>>2]=(c[D>>2]|0)+p;if((c[D>>2]|0)<=(c[s>>2]|0)){p=(d[c[o>>2]>>0]&252|3)&255;o=c[B>>2]|0;c[B>>2]=o+1;a[o>>0]=p;o=c[v>>2]&255;p=c[B>>2]|0;c[B>>2]=p+1;a[p>>0]=o;break}c[q>>2]=-2;E=c[q>>2]|0;i=F;return E|0}while(0);if(c[u>>2]|0)m=(c[s>>2]|0)-(c[D>>2]|0)|0;else m=0;c[A>>2]=m;if(c[A>>2]|0){p=(c[r>>2]|0)+1|0;a[p>>0]=d[p>>0]|64;c[z>>2]=((c[A>>2]|0)-1|0)/255|0;c[x>>2]=0;while(1){if((c[x>>2]|0)>=(c[z>>2]|0))break;p=c[B>>2]|0;c[B>>2]=p+1;a[p>>0]=-1;c[x>>2]=(c[x>>2]|0)+1}p=(c[A>>2]|0)-((c[z>>2]|0)*255|0)-1&255;z=c[B>>2]|0;c[B>>2]=z+1;a[z>>0]=p;c[D>>2]=(c[D>>2]|0)+(c[A>>2]|0)}if(c[E>>2]|0){c[x>>2]=0;while(1){if((c[x>>2]|0)>=((c[v>>2]|0)-1|0))break a;E=Yh(b[(c[y>>2]|0)+(c[x>>2]<<1)>>1]|0,c[B>>2]|0)|0;c[B>>2]=(c[B>>2]|0)+E;c[x>>2]=(c[x>>2]|0)+1}}}while(0);if(c[t>>2]|0){c[C>>2]=Yh(b[(c[y>>2]|0)+((c[v>>2]|0)-1<<1)>>1]|0,c[B>>2]|0)|0;c[B>>2]=(c[B>>2]|0)+(c[C>>2]|0)}c[x>>2]=0;while(1){if((c[x>>2]|0)>=(c[v>>2]|0))break;qj(c[B>>2]|0,c[(c[w>>2]|0)+(c[x>>2]<<2)>>2]|0,(b[(c[y>>2]|0)+(c[x>>2]<<1)>>1]|0)+0|0)|0;c[B>>2]=(c[B>>2]|0)+(b[(c[y>>2]|0)+(c[x>>2]<<1)>>1]|0);c[x>>2]=(c[x>>2]|0)+1}b:do if(c[u>>2]|0)while(1){if((c[B>>2]|0)>>>0>=((c[r>>2]|0)+(c[s>>2]|0)|0)>>>0)break b;E=c[B>>2]|0;c[B>>2]=E+1;a[E>>0]=0}while(0);c[q>>2]=c[D>>2];E=c[q>>2]|0;i=F;return E|0}c[q>>2]=-1;E=c[q>>2]|0;i=F;return E|0}function Xi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+320|0;e=l+316|0;f=l+312|0;g=l+308|0;h=l+304|0;k=l+4|0;j=l;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;if((c[g>>2]|0)<1){c[e>>2]=-1;k=c[e>>2]|0;i=l;return k|0}if((c[g>>2]|0)==(c[h>>2]|0)){c[e>>2]=0;k=c[e>>2]|0;i=l;return k|0}if((c[g>>2]|0)>(c[h>>2]|0)){c[e>>2]=-1;k=c[e>>2]|0;i=l;return k|0}Ti(k)|0;qj((c[f>>2]|0)+(c[h>>2]|0)+(0-(c[g>>2]|0))|0,c[f>>2]|0,(c[g>>2]|0)+0|0)|0;Ui(k,(c[f>>2]|0)+(c[h>>2]|0)+(0-(c[g>>2]|0))|0,c[g>>2]|0)|0;c[j>>2]=Wi(k,0,c[k+4>>2]|0,c[f>>2]|0,c[h>>2]|0,0,1)|0;if((c[j>>2]|0)>0){c[e>>2]=0;k=c[e>>2]|0;i=l;return k|0}else{c[e>>2]=c[j>>2];k=c[e>>2]|0;i=l;return k|0}return 0}function Yi(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=Zi()|0;c[c[d>>2]>>2]=a;_i(c[d>>2]|0);i=b;return}function Zi(){return 0}function _i(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=(c[d>>2]|0)+4;oj(c[e>>2]|0,0,14116-((c[e>>2]|0)-(c[d>>2]|0))|0)|0;i=b;return}function $i(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;h=n+24|0;j=n+20|0;e=n+16|0;f=n+12|0;k=n+8|0;m=n+4|0;l=n;c[h>>2]=a;c[j>>2]=b;c[e>>2]=d;c[f>>2]=c[(c[h>>2]|0)+8508>>2];c[k>>2]=(c[(c[h>>2]|0)+8504>>2]|0)-(c[(c[h>>2]|0)+8508>>2]|0);if((c[k>>2]|0)<0)c[k>>2]=(c[k>>2]|0)+200;if((c[e>>2]|0)>480?(c[f>>2]|0)!=(c[(c[h>>2]|0)+8504>>2]|0):0){a=(c[f>>2]|0)+1|0;c[f>>2]=a;c[f>>2]=(c[f>>2]|0)==200?0:a}if((c[f>>2]|0)==(c[(c[h>>2]|0)+8504>>2]|0))c[f>>2]=(c[f>>2]|0)+-1;if((c[f>>2]|0)<0)c[f>>2]=199;pj(c[j>>2]|0,(c[h>>2]|0)+8516+((c[f>>2]|0)*28|0)|0,28|0)|0;a=(c[h>>2]|0)+8512|0;c[a>>2]=(c[a>>2]|0)+((c[e>>2]|0)/120|0);while(1){e=c[h>>2]|0;if((c[(c[h>>2]|0)+8512>>2]|0)<4)break;a=e+8512|0;c[a>>2]=(c[a>>2]|0)-4;a=(c[h>>2]|0)+8508|0;c[a>>2]=(c[a>>2]|0)+1}if((c[e+8508>>2]|0)>=200){a=(c[h>>2]|0)+8508|0;c[a>>2]=(c[a>>2]|0)-200}c[k>>2]=((c[k>>2]|0)-10|0)>0?(c[k>>2]|0)-10|0:0;g[m>>2]=0.0;c[l>>2]=0;while(1){if((c[l>>2]|0)>=(200-(c[k>>2]|0)|0))break;g[m>>2]=+g[m>>2]+ +g[(c[h>>2]|0)+7688+(c[l>>2]<<2)>>2];c[l>>2]=(c[l>>2]|0)+1}while(1){if((c[l>>2]|0)>=200)break;g[m>>2]=+g[m>>2]+ +g[(c[h>>2]|0)+6888+(c[l>>2]<<2)>>2];c[l>>2]=(c[l>>2]|0)+1}g[m>>2]=+g[m>>2]*+g[(c[h>>2]|0)+8492>>2]+(1.0-+g[m>>2])*+g[(c[h>>2]|0)+8488>>2];g[(c[j>>2]|0)+20>>2]=+g[m>>2];i=n;return}function aj(a,b,d,e,f,g,h,j,k,l,m,n){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+64|0;p=C+52|0;q=C+48|0;t=C+44|0;u=C+40|0;v=C+36|0;w=C+32|0;x=C+28|0;y=C+24|0;o=C+20|0;z=C+16|0;r=C+12|0;s=C+8|0;A=C+4|0;B=C;c[p>>2]=a;c[q>>2]=b;c[t>>2]=d;c[u>>2]=e;c[v>>2]=f;c[w>>2]=g;c[x>>2]=h;c[y>>2]=j;c[o>>2]=k;c[z>>2]=l;c[r>>2]=m;c[s>>2]=n;if(!(c[t>>2]|0)){z=c[s>>2]|0;c[z>>2]=0;z=c[p>>2]|0;A=c[s>>2]|0;B=c[v>>2]|0;$i(z,A,B);i=C;return}if((((c[o>>2]|0)*195|0)/100|0|0)<(c[u>>2]|0))o=((c[o>>2]|0)*195|0)/100|0;else o=c[u>>2]|0;c[u>>2]=o;c[B>>2]=(c[u>>2]|0)-(c[(c[p>>2]|0)+6884>>2]|0);c[A>>2]=c[(c[p>>2]|0)+6884>>2];do{bj(c[p>>2]|0,c[q>>2]|0,c[t>>2]|0,480<(c[B>>2]|0)?480:c[B>>2]|0,c[A>>2]|0,c[w>>2]|0,c[x>>2]|0,c[y>>2]|0,c[z>>2]|0,c[r>>2]|0);c[A>>2]=(c[A>>2]|0)+480;c[B>>2]=(c[B>>2]|0)-480}while((c[B>>2]|0)>0);c[(c[p>>2]|0)+6884>>2]=c[u>>2];z=(c[p>>2]|0)+6884|0;c[z>>2]=(c[z>>2]|0)-(c[v>>2]|0);z=c[s>>2]|0;c[z>>2]=0;z=c[p>>2]|0;A=c[s>>2]|0;B=c[v>>2]|0;$i(z,A,B);i=C;return}
function bj(a,b,d,e,f,h,j,k,l,m){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0;Xa=i;i=i+10192|0;Sa=Xa+10180|0;o=Xa+10176|0;p=Xa+10172|0;q=Xa+10168|0;r=Xa+10164|0;s=Xa+10160|0;t=Xa+10156|0;u=Xa+10152|0;V=Xa+10148|0;v=Xa+10144|0;Fa=Xa+10140|0;sa=Xa+10136|0;Q=Xa+10132|0;ha=Xa+10128|0;x=Xa+10124|0;w=Xa+10120|0;I=Xa+10116|0;F=Xa+10112|0;_=Xa+10040|0;ua=Xa+9968|0;ya=Xa+9936|0;Aa=Xa+9836|0;Ca=Xa+9832|0;va=Xa+9828|0;Va=Xa+9824|0;Da=Xa+9816|0;Ba=Xa+9812|0;wa=Xa+9808|0;Ra=Xa+9800|0;za=Xa+9796|0;ra=Xa+9792|0;ia=Xa+9788|0;ta=Xa+9784|0;la=Xa+9780|0;Ua=Xa+9776|0;na=Xa+9772|0;oa=Xa+9768|0;T=Xa+9764|0;Wa=Xa+9760|0;L=Xa+5920|0;pa=Xa+2080|0;ea=Xa+1120|0;ba=Xa+160|0;U=Xa+152|0;z=Xa+148|0;B=Xa+144|0;y=Xa+140|0;A=Xa+136|0;C=Xa+132|0;J=Xa+128|0;G=Xa+124|0;D=Xa+120|0;K=Xa+116|0;H=Xa+112|0;R=Xa+108|0;S=Xa+104|0;E=Xa+100|0;W=Xa+96|0;da=Xa+92|0;aa=Xa+88|0;X=Xa+84|0;Z=Xa+80|0;ca=Xa+76|0;$=Xa+72|0;ga=Xa+68|0;ka=Xa+64|0;ja=Xa+60|0;ma=Xa+56|0;xa=Xa+52|0;Pa=Xa+48|0;Ea=Xa+44|0;Ja=Xa+40|0;Ka=Xa+36|0;Na=Xa+32|0;Ga=Xa+28|0;La=Xa+24|0;Oa=Xa+20|0;Ha=Xa+16|0;Ia=Xa+12|0;Ma=Xa+8|0;Qa=Xa+4|0;Ta=Xa;c[Sa>>2]=a;c[o>>2]=b;c[p>>2]=d;c[q>>2]=e;c[r>>2]=f;c[s>>2]=h;c[t>>2]=j;c[u>>2]=k;c[V>>2]=l;c[v>>2]=m;c[ha>>2]=480;c[x>>2]=240;c[w>>2]=(c[Sa>>2]|0)+4;c[I>>2]=(c[Sa>>2]|0)+964;c[F>>2]=(c[Sa>>2]|0)+1924;g[Xa+9820>>2]=97.40908813476562;g[Da>>2]=0.0;c[Ua>>2]=0;g[na>>2]=0.0;d=(c[Sa>>2]|0)+6864|0;c[d>>2]=(c[d>>2]|0)+1;if(20<(1+(c[(c[Sa>>2]|0)+6868>>2]|0)|0))k=20;else k=1+(c[(c[Sa>>2]|0)+6868>>2]|0)|0;g[za>>2]=1.0/+(k|0);if(50<(1+(c[(c[Sa>>2]|0)+6868>>2]|0)|0))k=50;else k=1+(c[(c[Sa>>2]|0)+6868>>2]|0)|0;g[ra>>2]=1.0/+(k|0);if(1e3<(1+(c[(c[Sa>>2]|0)+6868>>2]|0)|0))k=1e3;else k=1+(c[(c[Sa>>2]|0)+6868>>2]|0)|0;g[ia>>2]=1.0/+(k|0);if((c[(c[Sa>>2]|0)+6868>>2]|0)<4)g[(c[Sa>>2]|0)+6844>>2]=.5;c[Q>>2]=c[(c[o>>2]|0)+64+8>>2];if(!(c[(c[Sa>>2]|0)+6868>>2]|0))c[(c[Sa>>2]|0)+5764>>2]=240;if((c[q>>2]|0)<(720-(c[(c[Sa>>2]|0)+5764>>2]|0)|0))k=c[q>>2]|0;else k=720-(c[(c[Sa>>2]|0)+5764>>2]|0)|0;qa[c[v>>2]&3](c[p>>2]|0,(c[Sa>>2]|0)+2884+(c[(c[Sa>>2]|0)+5764>>2]<<2)|0,k,c[r>>2]|0,c[s>>2]|0,c[t>>2]|0,c[u>>2]|0);if(((c[(c[Sa>>2]|0)+5764>>2]|0)+(c[q>>2]|0)|0)<720){Wa=(c[Sa>>2]|0)+5764|0;c[Wa>>2]=(c[Wa>>2]|0)+(c[q>>2]|0);i=Xa;return}d=(c[Sa>>2]|0)+8504|0;o=c[d>>2]|0;c[d>>2]=o+1;c[Wa>>2]=(c[Sa>>2]|0)+8516+(o*28|0);if((c[(c[Sa>>2]|0)+8504>>2]|0)>=200){o=(c[Sa>>2]|0)+8504|0;c[o>>2]=(c[o>>2]|0)-200}c[Fa>>2]=0;while(1){if((c[Fa>>2]|0)>=(c[x>>2]|0))break;g[U>>2]=+g[18176+(c[Fa>>2]<<2)>>2];g[L+(c[Fa>>2]<<3)>>2]=+g[U>>2]*+g[(c[Sa>>2]|0)+2884+(c[Fa>>2]<<2)>>2];g[L+(c[Fa>>2]<<3)+4>>2]=+g[U>>2]*+g[(c[Sa>>2]|0)+2884+((c[x>>2]|0)+(c[Fa>>2]|0)<<2)>>2];g[L+((c[ha>>2]|0)-(c[Fa>>2]|0)-1<<3)>>2]=+g[U>>2]*+g[(c[Sa>>2]|0)+2884+((c[ha>>2]|0)-(c[Fa>>2]|0)-1<<2)>>2];g[L+((c[ha>>2]|0)-(c[Fa>>2]|0)-1<<3)+4>>2]=+g[U>>2]*+g[(c[Sa>>2]|0)+2884+((c[ha>>2]|0)+(c[x>>2]|0)-(c[Fa>>2]|0)-1<<2)>>2];c[Fa>>2]=(c[Fa>>2]|0)+1}qj((c[Sa>>2]|0)+2884|0,(c[Sa>>2]|0)+2884+2880+-960|0,960|0)|0;c[T>>2]=(c[q>>2]|0)-(720-(c[(c[Sa>>2]|0)+5764>>2]|0));qa[c[v>>2]&3](c[p>>2]|0,(c[Sa>>2]|0)+2884+960|0,c[T>>2]|0,(c[r>>2]|0)+720-(c[(c[Sa>>2]|0)+5764>>2]|0)|0,c[s>>2]|0,c[t>>2]|0,c[u>>2]|0);c[(c[Sa>>2]|0)+5764>>2]=240+(c[T>>2]|0);Cc(c[Q>>2]|0,L,pa);if(+g[pa>>2]!=+g[pa>>2]){c[c[Wa>>2]>>2]=0;i=Xa;return}c[Fa>>2]=1;while(1){if((c[Fa>>2]|0)>=(c[x>>2]|0))break;g[z>>2]=+g[pa+(c[Fa>>2]<<3)>>2]+ +g[pa+((c[ha>>2]|0)-(c[Fa>>2]|0)<<3)>>2];g[y>>2]=+g[pa+(c[Fa>>2]<<3)+4>>2]-+g[pa+((c[ha>>2]|0)-(c[Fa>>2]|0)<<3)+4>>2];g[B>>2]=+g[pa+(c[Fa>>2]<<3)+4>>2]+ +g[pa+((c[ha>>2]|0)-(c[Fa>>2]|0)<<3)+4>>2];g[A>>2]=+g[pa+((c[ha>>2]|0)-(c[Fa>>2]|0)<<3)>>2]-+g[pa+(c[Fa>>2]<<3)>>2];g[C>>2]=+cj(+g[y>>2],+g[z>>2])*.15915493667125702;g[J>>2]=+g[C>>2]-+g[(c[w>>2]|0)+(c[Fa>>2]<<2)>>2];g[G>>2]=+g[J>>2]-+g[(c[I>>2]|0)+(c[Fa>>2]<<2)>>2];g[D>>2]=+cj(+g[A>>2],+g[B>>2])*.15915493667125702;g[K>>2]=+g[D>>2]-+g[C>>2];g[H>>2]=+g[K>>2]-+g[J>>2];g[R>>2]=+g[G>>2]-+M(+(+g[G>>2]+.5));n=+N(+(+g[R>>2]));g[ba+(c[Fa>>2]<<2)>>2]=n;g[R>>2]=+g[R>>2]*+g[R>>2];g[R>>2]=+g[R>>2]*+g[R>>2];g[S>>2]=+g[H>>2]-+M(+(+g[H>>2]+.5));n=+N(+(+g[S>>2]));U=ba+(c[Fa>>2]<<2)|0;g[U>>2]=+g[U>>2]+n;g[S>>2]=+g[S>>2]*+g[S>>2];g[S>>2]=+g[S>>2]*+g[S>>2];g[E>>2]=(+g[(c[F>>2]|0)+(c[Fa>>2]<<2)>>2]+ +g[R>>2]*2.0+ +g[S>>2])*.25;g[ea+(c[Fa>>2]<<2)>>2]=1.0/(+g[E>>2]*62341.81640625+1.0)-.014999999664723873;g[(c[w>>2]|0)+(c[Fa>>2]<<2)>>2]=+g[D>>2];g[(c[I>>2]|0)+(c[Fa>>2]<<2)>>2]=+g[K>>2];g[(c[F>>2]|0)+(c[Fa>>2]<<2)>>2]=+g[S>>2];c[Fa>>2]=(c[Fa>>2]|0)+1}g[Ca>>2]=0.0;g[va>>2]=0.0;g[(c[Wa>>2]|0)+16>>2]=0.0;g[Va>>2]=0.0;g[Ba>>2]=0.0;a:do if(!(c[(c[Sa>>2]|0)+6868>>2]|0)){c[sa>>2]=0;while(1){if((c[sa>>2]|0)>=18)break a;g[(c[Sa>>2]|0)+6420+(c[sa>>2]<<2)>>2]=1.0e10;g[(c[Sa>>2]|0)+6492+(c[sa>>2]<<2)>>2]=-1.0e10;c[sa>>2]=(c[sa>>2]|0)+1}}while(0);g[wa>>2]=0.0;g[ta>>2]=0.0;c[sa>>2]=0;while(1){if((c[sa>>2]|0)>=18)break;g[W>>2]=0.0;g[da>>2]=0.0;g[aa>>2]=0.0;c[Fa>>2]=c[19136+(c[sa>>2]<<2)>>2];while(1){if((c[Fa>>2]|0)>=(c[19136+((c[sa>>2]|0)+1<<2)>>2]|0))break;g[$>>2]=+g[pa+(c[Fa>>2]<<3)>>2]*+g[pa+(c[Fa>>2]<<3)>>2]+ +g[pa+((c[ha>>2]|0)-(c[Fa>>2]|0)<<3)>>2]*+g[pa+((c[ha>>2]|0)-(c[Fa>>2]|0)<<3)>>2]+ +g[pa+(c[Fa>>2]<<3)+4>>2]*+g[pa+(c[Fa>>2]<<3)+4>>2]+ +g[pa+((c[ha>>2]|0)-(c[Fa>>2]|0)<<3)+4>>2]*+g[pa+((c[ha>>2]|0)-(c[Fa>>2]|0)<<3)+4>>2];g[W>>2]=+g[W>>2]+ +g[$>>2];g[da>>2]=+g[da>>2]+ +g[$>>2]*+g[ea+(c[Fa>>2]<<2)>>2];g[aa>>2]=+g[aa>>2]+ +g[$>>2]*2.0*(.5-+g[ba+(c[Fa>>2]<<2)>>2]);c[Fa>>2]=(c[Fa>>2]|0)+1}if(!(+g[W>>2]<1.0e9)){fa=37;break}if(+g[W>>2]!=+g[W>>2]){fa=37;break}g[(c[Sa>>2]|0)+5844+((c[(c[Sa>>2]|0)+6856>>2]|0)*72|0)+(c[sa>>2]<<2)>>2]=+g[W>>2];g[Va>>2]=+g[Va>>2]+ +g[aa>>2]/(+g[W>>2]+1.0000000036274937e-15);n=+O(+(+g[W>>2]+1.000000013351432e-10));g[ta>>2]=+g[ta>>2]+n;n=+Y(+(+g[W>>2]+1.000000013351432e-10));g[ua+(c[sa>>2]<<2)>>2]=n;k=c[sa>>2]|0;if(+g[ua+(c[sa>>2]<<2)>>2]<+g[(c[Sa>>2]|0)+6420+(c[sa>>2]<<2)>>2]+.009999999776482582)n=+g[ua+(k<<2)>>2];else n=+g[(c[Sa>>2]|0)+6420+(k<<2)>>2]+.009999999776482582;g[(c[Sa>>2]|0)+6420+(c[sa>>2]<<2)>>2]=n;k=c[sa>>2]|0;if(+g[ua+(c[sa>>2]<<2)>>2]>+g[(c[Sa>>2]|0)+6492+(c[sa>>2]<<2)>>2]-.10000000149011612)n=+g[ua+(k<<2)>>2];else n=+g[(c[Sa>>2]|0)+6492+(k<<2)>>2]-.10000000149011612;g[(c[Sa>>2]|0)+6492+(c[sa>>2]<<2)>>2]=n;if(+g[(c[Sa>>2]|0)+6492+(c[sa>>2]<<2)>>2]<+g[(c[Sa>>2]|0)+6420+(c[sa>>2]<<2)>>2]+1.0){U=(c[Sa>>2]|0)+6492+(c[sa>>2]<<2)|0;g[U>>2]=+g[U>>2]+.5;U=(c[Sa>>2]|0)+6420+(c[sa>>2]<<2)|0;g[U>>2]=+g[U>>2]-.5}g[wa>>2]=+g[wa>>2]+(+g[ua+(c[sa>>2]<<2)>>2]-+g[(c[Sa>>2]|0)+6420+(c[sa>>2]<<2)>>2])/(+g[(c[Sa>>2]|0)+6492+(c[sa>>2]<<2)>>2]+1.0000000036274937e-15-+g[(c[Sa>>2]|0)+6420+(c[sa>>2]<<2)>>2]);g[Z>>2]=0.0;g[X>>2]=0.0;c[Fa>>2]=0;while(1){if((c[Fa>>2]|0)>=8)break;n=+O(+(+g[(c[Sa>>2]|0)+5844+((c[Fa>>2]|0)*72|0)+(c[sa>>2]<<2)>>2]));g[X>>2]=+g[X>>2]+n;g[Z>>2]=+g[Z>>2]+ +g[(c[Sa>>2]|0)+5844+((c[Fa>>2]|0)*72|0)+(c[sa>>2]<<2)>>2];c[Fa>>2]=(c[Fa>>2]|0)+1}if(.9900000095367432<+g[X>>2]/+O(+(+g[Z>>2]*8.0+1.0e-15)))n=.9900000095367432;else n=+g[X>>2]/+O(+(+g[Z>>2]*8.0+1.0e-15));g[ca>>2]=n;g[ca>>2]=+g[ca>>2]*+g[ca>>2];g[ca>>2]=+g[ca>>2]*+g[ca>>2];g[Ba>>2]=+g[Ba>>2]+ +g[ca>>2];if(+g[da>>2]/(+g[W>>2]+1.0000000036274937e-15)>+g[ca>>2]*+g[(c[Sa>>2]|0)+5768+(c[sa>>2]<<2)>>2])n=+g[da>>2]/(+g[W>>2]+1.0000000036274937e-15);else n=+g[ca>>2]*+g[(c[Sa>>2]|0)+5768+(c[sa>>2]<<2)>>2];g[_+(c[sa>>2]<<2)>>2]=n;g[Ca>>2]=+g[Ca>>2]+ +g[_+(c[sa>>2]<<2)>>2];if((c[sa>>2]|0)>=9)g[Ca>>2]=+g[Ca>>2]-+g[_+((c[sa>>2]|0)-18+9<<2)>>2];if(+g[va>>2]>(+((c[sa>>2]|0)-18|0)*.029999999329447746+1.0)*+g[Ca>>2])n=+g[va>>2];else n=(+((c[sa>>2]|0)-18|0)*.029999999329447746+1.0)*+g[Ca>>2];g[va>>2]=n;g[Da>>2]=+g[Da>>2]+ +g[_+(c[sa>>2]<<2)>>2]*+((c[sa>>2]|0)-8|0);g[(c[Sa>>2]|0)+5768+(c[sa>>2]<<2)>>2]=+g[_+(c[sa>>2]<<2)>>2];c[sa>>2]=(c[sa>>2]|0)+1}if((fa|0)==37){c[c[Wa>>2]>>2]=0;i=Xa;return}g[la>>2]=0.0;c[Ua>>2]=0;g[na>>2]=0.0;g[oa>>2]=5.699999746866524e-04/+(1<<(0>((c[V>>2]|0)-8|0)?0:(c[V>>2]|0)-8|0)|0);g[oa>>2]=+g[oa>>2]*+g[oa>>2];c[sa>>2]=0;while(1){if((c[sa>>2]|0)>=21)break;g[ga>>2]=0.0;c[ka>>2]=c[19212+(c[sa>>2]<<2)>>2];c[ja>>2]=c[19212+((c[sa>>2]|0)+1<<2)>>2];c[Fa>>2]=c[ka>>2];while(1){if((c[Fa>>2]|0)>=(c[ja>>2]|0))break;g[ma>>2]=+g[pa+(c[Fa>>2]<<3)>>2]*+g[pa+(c[Fa>>2]<<3)>>2]+ +g[pa+((c[ha>>2]|0)-(c[Fa>>2]|0)<<3)>>2]*+g[pa+((c[ha>>2]|0)-(c[Fa>>2]|0)<<3)>>2]+ +g[pa+(c[Fa>>2]<<3)+4>>2]*+g[pa+(c[Fa>>2]<<3)+4>>2]+ +g[pa+((c[ha>>2]|0)-(c[Fa>>2]|0)<<3)+4>>2]*+g[pa+((c[ha>>2]|0)-(c[Fa>>2]|0)<<3)+4>>2];g[ga>>2]=+g[ga>>2]+ +g[ma>>2];c[Fa>>2]=(c[Fa>>2]|0)+1}g[na>>2]=+g[na>>2]>+g[ga>>2]?+g[na>>2]:+g[ga>>2];if((1.0-+g[ia>>2])*+g[(c[Sa>>2]|0)+6564+(c[sa>>2]<<2)>>2]>+g[ga>>2])n=(1.0-+g[ia>>2])*+g[(c[Sa>>2]|0)+6564+(c[sa>>2]<<2)>>2];else n=+g[ga>>2];g[(c[Sa>>2]|0)+6564+(c[sa>>2]<<2)>>2]=n;if(+g[ga>>2]>+g[(c[Sa>>2]|0)+6564+(c[sa>>2]<<2)>>2])n=+g[ga>>2];else n=+g[(c[Sa>>2]|0)+6564+(c[sa>>2]<<2)>>2];g[ga>>2]=n;g[la>>2]=+g[la>>2]*.05000000074505806>+g[ga>>2]?+g[la>>2]*.05000000074505806:+g[ga>>2];if((+g[ga>>2]>+g[la>>2]*.1?+g[ga>>2]*1.0e9>+g[na>>2]:0)?+g[ga>>2]>+g[oa>>2]*+((c[ja>>2]|0)-(c[ka>>2]|0)|0):0)c[Ua>>2]=c[sa>>2];c[sa>>2]=(c[sa>>2]|0)+1}if((c[(c[Sa>>2]|0)+6868>>2]|0)<=2)c[Ua>>2]=20;g[ta>>2]=+hj(+g[ta>>2])*20.0;if(+g[(c[Sa>>2]|0)+6848>>2]-.029999999329447746>+g[ta>>2])n=+g[(c[Sa>>2]|0)+6848>>2]-.029999999329447746;else n=+g[ta>>2];g[(c[Sa>>2]|0)+6848>>2]=n;pa=(c[Sa>>2]|0)+6852|0;g[pa>>2]=+g[pa>>2]*(1.0-+g[ra>>2]);if(+g[ta>>2]<+g[(c[Sa>>2]|0)+6848>>2]-30.0){ta=(c[Sa>>2]|0)+6852|0;g[ta>>2]=+g[ta>>2]+ +g[ra>>2]}c[Fa>>2]=0;while(1){if((c[Fa>>2]|0)>=8)break;g[xa>>2]=0.0;c[sa>>2]=0;while(1){if((c[sa>>2]|0)>=16)break;g[xa>>2]=+g[xa>>2]+ +g[19300+((c[Fa>>2]<<4)+(c[sa>>2]|0)<<2)>>2]*+g[ua+(c[sa>>2]<<2)>>2];c[sa>>2]=(c[sa>>2]|0)+1}g[ya+(c[Fa>>2]<<2)>>2]=+g[xa>>2];c[Fa>>2]=(c[Fa>>2]|0)+1}g[Ba>>2]=+g[Ba>>2]/18.0;n=+g[wa>>2]/18.0;g[wa>>2]=n;g[wa>>2]=(c[(c[Sa>>2]|0)+6868>>2]|0)<10?.5:n;g[Va>>2]=+g[Va>>2]/18.0;g[(c[Wa>>2]|0)+16>>2]=+g[Va>>2]+(1.0-+g[Va>>2])*+g[wa>>2];g[Ca>>2]=+g[va>>2]/9.0;if(+g[Ca>>2]>+g[(c[Sa>>2]|0)+5840>>2]*.800000011920929)n=+g[Ca>>2];else n=+g[(c[Sa>>2]|0)+5840>>2]*.800000011920929;g[Ca>>2]=n;g[(c[Sa>>2]|0)+5840>>2]=+g[Ca>>2];g[Da>>2]=+g[Da>>2]/64.0;g[(c[Wa>>2]|0)+8>>2]=+g[Da>>2];c[(c[Sa>>2]|0)+6856>>2]=((c[(c[Sa>>2]|0)+6856>>2]|0)+1|0)%8|0;Da=(c[Sa>>2]|0)+6868|0;c[Da>>2]=(c[Da>>2]|0)+1;g[(c[Wa>>2]|0)+4>>2]=+g[Ca>>2];c[Fa>>2]=0;while(1){if((c[Fa>>2]|0)>=4)break;g[Aa+(c[Fa>>2]<<2)>>2]=(+g[ya+(c[Fa>>2]<<2)>>2]+ +g[(c[Sa>>2]|0)+6648+((c[Fa>>2]|0)+24<<2)>>2])*-.12298999726772308+(+g[(c[Sa>>2]|0)+6648+(c[Fa>>2]<<2)>>2]+ +g[(c[Sa>>2]|0)+6648+((c[Fa>>2]|0)+16<<2)>>2])*.49195000529289246+ +g[(c[Sa>>2]|0)+6648+((c[Fa>>2]|0)+8<<2)>>2]*.6969299912452698-+g[(c[Sa>>2]|0)+6776+(c[Fa>>2]<<2)>>2]*1.4349000453948975;c[Fa>>2]=(c[Fa>>2]|0)+1}c[Fa>>2]=0;while(1){if((c[Fa>>2]|0)>=4)break;g[(c[Sa>>2]|0)+6776+(c[Fa>>2]<<2)>>2]=(1.0-+g[za>>2])*+g[(c[Sa>>2]|0)+6776+(c[Fa>>2]<<2)>>2]+ +g[za>>2]*+g[ya+(c[Fa>>2]<<2)>>2];c[Fa>>2]=(c[Fa>>2]|0)+1}c[Fa>>2]=0;while(1){if((c[Fa>>2]|0)>=4)break;g[Aa+(4+(c[Fa>>2]|0)<<2)>>2]=(+g[ya+(c[Fa>>2]<<2)>>2]-+g[(c[Sa>>2]|0)+6648+((c[Fa>>2]|0)+24<<2)>>2])*.6324599981307983+(+g[(c[Sa>>2]|0)+6648+(c[Fa>>2]<<2)>>2]-+g[(c[Sa>>2]|0)+6648+((c[Fa>>2]|0)+16<<2)>>2])*.31622999906539917;c[Fa>>2]=(c[Fa>>2]|0)+1}c[Fa>>2]=0;while(1){if((c[Fa>>2]|0)>=3)break;g[Aa+(8+(c[Fa>>2]|0)<<2)>>2]=(+g[ya+(c[Fa>>2]<<2)>>2]+ +g[(c[Sa>>2]|0)+6648+((c[Fa>>2]|0)+24<<2)>>2])*.5345199704170227-(+g[(c[Sa>>2]|0)+6648+(c[Fa>>2]<<2)>>2]+ +g[(c[Sa>>2]|0)+6648+((c[Fa>>2]|0)+16<<2)>>2])*.26725998520851135-+g[(c[Sa>>2]|0)+6648+((c[Fa>>2]|0)+8<<2)>>2]*.5345199704170227;c[Fa>>2]=(c[Fa>>2]|0)+1}b:do if((c[(c[Sa>>2]|0)+6868>>2]|0)>5){c[Fa>>2]=0;while(1){if((c[Fa>>2]|0)>=9)break b;g[(c[Sa>>2]|0)+6808+(c[Fa>>2]<<2)>>2]=(1.0-+g[za>>2])*+g[(c[Sa>>2]|0)+6808+(c[Fa>>2]<<2)>>2]+ +g[za>>2]*+g[Aa+(c[Fa>>2]<<2)>>2]*+g[Aa+(c[Fa>>2]<<2)>>2];c[Fa>>2]=(c[Fa>>2]|0)+1}}while(0);c[Fa>>2]=0;while(1){if((c[Fa>>2]|0)>=8)break;g[(c[Sa>>2]|0)+6648+((c[Fa>>2]|0)+24<<2)>>2]=+g[(c[Sa>>2]|0)+6648+((c[Fa>>2]|0)+16<<2)>>2];g[(c[Sa>>2]|0)+6648+((c[Fa>>2]|0)+16<<2)>>2]=+g[(c[Sa>>2]|0)+6648+((c[Fa>>2]|0)+8<<2)>>2];g[(c[Sa>>2]|0)+6648+((c[Fa>>2]|0)+8<<2)>>2]=+g[(c[Sa>>2]|0)+6648+(c[Fa>>2]<<2)>>2];g[(c[Sa>>2]|0)+6648+(c[Fa>>2]<<2)>>2]=+g[ya+(c[Fa>>2]<<2)>>2];c[Fa>>2]=(c[Fa>>2]|0)+1}c[Fa>>2]=0;while(1){if((c[Fa>>2]|0)>=9)break;n=+O(+(+g[(c[Sa>>2]|0)+6808+(c[Fa>>2]<<2)>>2]));g[Aa+(11+(c[Fa>>2]|0)<<2)>>2]=n;c[Fa>>2]=(c[Fa>>2]|0)+1}g[Aa+80>>2]=+g[(c[Wa>>2]|0)+4>>2];g[Aa+84>>2]=+g[(c[Wa>>2]|0)+16>>2];g[Aa+88>>2]=+g[Ba>>2];g[Aa+92>>2]=+g[(c[Wa>>2]|0)+8>>2];g[Aa+96>>2]=+g[(c[Sa>>2]|0)+6852>>2];dj(20616,Aa,Ra);g[Ra>>2]=(+g[Ra>>2]+1.0)*.5;g[Ra>>2]=+g[Ra>>2]*1.2100000381469727*+g[Ra>>2]+.009999999776482582-+P(+(+g[Ra>>2]),10.0)*.23000000417232513;g[Ra+4>>2]=+g[Ra+4>>2]*.5+.5;g[Ra>>2]=+g[Ra+4>>2]*+g[Ra>>2]+(1.0-+g[Ra+4>>2])*.5;g[Pa>>2]=+g[Ra+4>>2]*4.999999873689376e-05;g[Ea>>2]=.05000000074505806;if(.05000000074505806>(.949999988079071<+g[Ra>>2]?.949999988079071:+g[Ra>>2]))n=.05000000074505806;else n=.949999988079071<+g[Ra>>2]?.949999988079071:+g[Ra>>2];g[Ia>>2]=n;if(.949999988079071<+g[(c[Sa>>2]|0)+6844>>2])n=.949999988079071;else n=+g[(c[Sa>>2]|0)+6844>>2];if(!(.05000000074505806>n))if(.949999988079071<+g[(c[Sa>>2]|0)+6844>>2])n=.949999988079071;else n=+g[(c[Sa>>2]|0)+6844>>2];else n=.05000000074505806;g[Ma>>2]=n;n=+N(+(+g[Ia>>2]-+g[Ma>>2]))*.05000000074505806;g[Ea>>2]=n/(+g[Ia>>2]*(1.0-+g[Ma>>2])+ +g[Ma>>2]*(1.0-+g[Ia>>2]))+.009999999776482582;g[Ja>>2]=(1.0-+g[(c[Sa>>2]|0)+6844>>2])*(1.0-+g[Pa>>2])+ +g[(c[Sa>>2]|0)+6844>>2]*+g[Pa>>2];g[Ka>>2]=+g[(c[Sa>>2]|0)+6844>>2]*(1.0-+g[Pa>>2])+(1.0-+g[(c[Sa>>2]|0)+6844>>2])*+g[Pa>>2];n=+P(+(1.0-+g[Ra>>2]),+(+g[Ea>>2]));g[Ja>>2]=+g[Ja>>2]*n;n=+P(+(+g[Ra>>2]),+(+g[Ea>>2]));g[Ka>>2]=+g[Ka>>2]*n;g[(c[Sa>>2]|0)+6844>>2]=+g[Ka>>2]/(+g[Ja>>2]+ +g[Ka>>2]);g[(c[Wa>>2]|0)+20>>2]=+g[(c[Sa>>2]|0)+6844>>2];g[La>>2]=9.999999682655225e-21;g[Oa>>2]=+P(+(1.0-+g[Ra>>2]),+(+g[Ea>>2]));g[Ha>>2]=+P(+(+g[Ra>>2]),+(+g[Ea>>2]));if((c[(c[Sa>>2]|0)+6868>>2]|0)==1){g[(c[Sa>>2]|0)+6888>>2]=.5;g[(c[Sa>>2]|0)+7688>>2]=.5}g[Na>>2]=+g[(c[Sa>>2]|0)+6888>>2]+ +g[(c[Sa>>2]|0)+6888+4>>2];g[Ga>>2]=+g[(c[Sa>>2]|0)+7688>>2]+ +g[(c[Sa>>2]|0)+7688+4>>2];g[(c[Sa>>2]|0)+6888>>2]=+g[Na>>2]*(1.0-+g[Pa>>2])*+g[Oa>>2];g[(c[Sa>>2]|0)+7688>>2]=+g[Ga>>2]*(1.0-+g[Pa>>2])*+g[Ha>>2];c[Fa>>2]=1;while(1){if((c[Fa>>2]|0)>=199)break;g[(c[Sa>>2]|0)+6888+(c[Fa>>2]<<2)>>2]=+g[(c[Sa>>2]|0)+6888+((c[Fa>>2]|0)+1<<2)>>2]*+g[Oa>>2];g[(c[Sa>>2]|0)+7688+(c[Fa>>2]<<2)>>2]=+g[(c[Sa>>2]|0)+7688+((c[Fa>>2]|0)+1<<2)>>2]*+g[Ha>>2];c[Fa>>2]=(c[Fa>>2]|0)+1}g[(c[Sa>>2]|0)+6888+796>>2]=+g[Ga>>2]*+g[Pa>>2]*+g[Oa>>2];g[(c[Sa>>2]|0)+7688+796>>2]=+g[Na>>2]*+g[Pa>>2]*+g[Ha>>2];c[Fa>>2]=0;while(1){if((c[Fa>>2]|0)>=200)break;g[La>>2]=+g[La>>2]+(+g[(c[Sa>>2]|0)+6888+(c[Fa>>2]<<2)>>2]+ +g[(c[Sa>>2]|0)+7688+(c[Fa>>2]<<2)>>2]);c[Fa>>2]=(c[Fa>>2]|0)+1}g[La>>2]=1.0/+g[La>>2];c[Fa>>2]=0;while(1){if((c[Fa>>2]|0)>=200)break;Pa=(c[Sa>>2]|0)+6888+(c[Fa>>2]<<2)|0;g[Pa>>2]=+g[Pa>>2]*+g[La>>2];Pa=(c[Sa>>2]|0)+7688+(c[Fa>>2]<<2)|0;g[Pa>>2]=+g[Pa>>2]*+g[La>>2];c[Fa>>2]=(c[Fa>>2]|0)+1}g[La>>2]=+g[(c[Sa>>2]|0)+7688>>2];c[Fa>>2]=1;while(1){if((c[Fa>>2]|0)>=200)break;g[La>>2]=+g[La>>2]+ +g[(c[Sa>>2]|0)+6888+(c[Fa>>2]<<2)>>2];c[Fa>>2]=(c[Fa>>2]|0)+1}k=c[Sa>>2]|0;do if(+g[Ra+4>>2]>.75){if(+g[k+6844>>2]>.9){Oa=(c[Sa>>2]|0)+8500|0;Pa=(c[Oa>>2]|0)+1|0;c[Oa>>2]=Pa;g[Qa>>2]=1.0/+(Pa|0);if((c[(c[Sa>>2]|0)+8500>>2]|0)<500)k=c[(c[Sa>>2]|0)+8500>>2]|0;else k=500;c[(c[Sa>>2]|0)+8500>>2]=k;if(-.20000000298023224>+g[Ra>>2]-+g[(c[Sa>>2]|0)+8492>>2])n=-.20000000298023224;else n=+g[Ra>>2]-+g[(c[Sa>>2]|0)+8492>>2];Pa=(c[Sa>>2]|0)+8492|0;g[Pa>>2]=+g[Pa>>2]+ +g[Qa>>2]*n}if(!(+g[(c[Sa>>2]|0)+6844>>2]<.1))break;Pa=(c[Sa>>2]|0)+8496|0;Qa=(c[Pa>>2]|0)+1|0;c[Pa>>2]=Qa;g[Ta>>2]=1.0/+(Qa|0);if((c[(c[Sa>>2]|0)+8496>>2]|0)<500)k=c[(c[Sa>>2]|0)+8496>>2]|0;else k=500;c[(c[Sa>>2]|0)+8496>>2]=k;if(.20000000298023224<+g[Ra>>2]-+g[(c[Sa>>2]|0)+8488>>2])n=.20000000298023224;else n=+g[Ra>>2]-+g[(c[Sa>>2]|0)+8488>>2];Ra=(c[Sa>>2]|0)+8488|0;g[Ra>>2]=+g[Ra>>2]+ +g[Ta>>2]*n}else{if(!(c[k+8500>>2]|0))g[(c[Sa>>2]|0)+8492>>2]=.8999999761581421;if(c[(c[Sa>>2]|0)+8496>>2]|0)break;g[(c[Sa>>2]|0)+8488>>2]=.10000000149011612}while(0);if((c[(c[Sa>>2]|0)+6860>>2]|0)!=(+g[(c[Sa>>2]|0)+6844>>2]>.5|0))c[(c[Sa>>2]|0)+6864>>2]=0;c[(c[Sa>>2]|0)+6860>>2]=+g[(c[Sa>>2]|0)+6844>>2]>.5&1;c[(c[Wa>>2]|0)+24>>2]=c[Ua>>2];g[(c[Wa>>2]|0)+12>>2]=+g[Va>>2];c[c[Wa>>2]>>2]=1;i=Xa;return}function cj(a,b){a=+a;b=+b;var c=0,d=0,e=0,f=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;c=l+24|0;d=l+20|0;e=l+16|0;j=l+12|0;k=l+8|0;f=l+4|0;h=l;g[d>>2]=a;g[e>>2]=b;a=+N(+(+g[e>>2]));if(a+ +N(+(+g[d>>2]))<9.999999717180685e-10){g[e>>2]=+g[e>>2]*999999995904.0;g[d>>2]=+g[d>>2]*999999995904.0}g[j>>2]=+g[e>>2]*+g[e>>2];g[k>>2]=+g[d>>2]*+g[d>>2];if(+g[j>>2]<+g[k>>2]){g[f>>2]=(+g[k>>2]+ +g[j>>2]*.6784840226173401)*(+g[k>>2]+ +g[j>>2]*.0859554186463356);if(+g[f>>2]!=0.0){g[c>>2]=-+g[e>>2]*+g[d>>2]*(+g[k>>2]+ +g[j>>2]*.43157973885536194)/+g[f>>2]+(+g[d>>2]<0.0?-1.5707963705062866:1.5707963705062866);a=+g[c>>2];i=l;return +a}else{g[c>>2]=+g[d>>2]<0.0?-1.5707963705062866:1.5707963705062866;a=+g[c>>2];i=l;return +a}}else{g[h>>2]=(+g[j>>2]+ +g[k>>2]*.6784840226173401)*(+g[j>>2]+ +g[k>>2]*.0859554186463356);if(+g[h>>2]!=0.0){g[c>>2]=+g[e>>2]*+g[d>>2]*(+g[j>>2]+ +g[k>>2]*.43157973885536194)/+g[h>>2]+(+g[d>>2]<0.0?-1.5707963705062866:1.5707963705062866)-(+g[e>>2]*+g[d>>2]<0.0?-1.5707963705062866:1.5707963705062866);a=+g[c>>2];i=l;return +a}else{g[c>>2]=(+g[d>>2]<0.0?-1.5707963705062866:1.5707963705062866)-(+g[e>>2]*+g[d>>2]<0.0?-1.5707963705062866:1.5707963705062866);a=+g[c>>2];i=l;return +a}}return 0.0}function dj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0;r=i;i=i+448|0;k=r+436|0;f=r+432|0;l=r+428|0;o=r+424|0;n=r+24|0;m=r+16|0;h=r+12|0;j=r+8|0;p=r+4|0;q=r;c[k>>2]=a;c[f>>2]=b;c[l>>2]=d;c[m>>2]=c[(c[k>>2]|0)+8>>2];c[o>>2]=0;while(1){if((c[o>>2]|0)>=(c[(c[(c[k>>2]|0)+4>>2]|0)+4>>2]|0))break;d=c[m>>2]|0;c[m>>2]=d+4;g[j>>2]=+g[d>>2];c[h>>2]=0;while(1){e=+g[j>>2];if((c[h>>2]|0)>=(c[c[(c[k>>2]|0)+4>>2]>>2]|0))break;s=+g[(c[f>>2]|0)+(c[h>>2]<<2)>>2];d=c[m>>2]|0;c[m>>2]=d+4;g[j>>2]=e+s*+g[d>>2];c[h>>2]=(c[h>>2]|0)+1}s=+ej(e);g[n+(c[o>>2]<<2)>>2]=s;c[o>>2]=(c[o>>2]|0)+1}c[o>>2]=0;while(1){if((c[o>>2]|0)>=(c[(c[(c[k>>2]|0)+4>>2]|0)+8>>2]|0))break;j=c[m>>2]|0;c[m>>2]=j+4;g[q>>2]=+g[j>>2];c[p>>2]=0;while(1){e=+g[q>>2];if((c[p>>2]|0)>=(c[(c[(c[k>>2]|0)+4>>2]|0)+4>>2]|0))break;s=+g[n+(c[p>>2]<<2)>>2];j=c[m>>2]|0;c[m>>2]=j+4;g[q>>2]=e+s*+g[j>>2];c[p>>2]=(c[p>>2]|0)+1}s=+ej(e);g[(c[l>>2]|0)+(c[o>>2]<<2)>>2]=s;c[o>>2]=(c[o>>2]|0)+1}i=r;return}function ej(a){a=+a;var b=0,d=0,e=0,f=0,h=0,j=0,k=0;k=i;i=i+32|0;b=k+20|0;d=k+16|0;f=k+12|0;j=k+8|0;e=k+4|0;h=k;g[d>>2]=a;g[h>>2]=1.0;if(!(+g[d>>2]<8.0)){g[b>>2]=1.0;a=+g[b>>2];i=k;return +a}if(!(+g[d>>2]>-8.0)){g[b>>2]=-1.0;a=+g[b>>2];i=k;return +a}if(+g[d>>2]!=+g[d>>2]){g[b>>2]=0.0;a=+g[b>>2];i=k;return +a}if(+g[d>>2]<0.0){g[d>>2]=-+g[d>>2];g[h>>2]=-1.0}c[f>>2]=~~+M(+(+g[d>>2]*25.0+.5));g[d>>2]=+g[d>>2]-+(c[f>>2]|0)*.03999999910593033;g[j>>2]=+g[19812+(c[f>>2]<<2)>>2];g[e>>2]=1.0-+g[j>>2]*+g[j>>2];g[j>>2]=+g[j>>2]+ +g[d>>2]*+g[e>>2]*(1.0-+g[j>>2]*+g[d>>2]);g[b>>2]=+g[h>>2]*+g[j>>2];a=+g[b>>2];i=k;return +a}function fj(){var a=0;if(!(c[7632]|0))a=30572;else a=c[(fa()|0)+64>>2]|0;return a|0}function gj(a){a=+a;var b=0;b=(g[k>>2]=a,c[k>>2]|0);if((b&2130706432)>>>0<=1249902592){b=(b|0)<0;a=b?a+-8388608.0+8388608.0:a+8388608.0+-8388608.0;if(a==0.0)a=b?-0.0:0.0}return +a}function hj(a){a=+a;var b=0,d=0,e=0,f=0,g=0.0,i=0.0,j=0.0,l=0.0,m=0.0;h[k>>3]=a;d=c[k>>2]|0;b=c[k+4>>2]|0;e=(b|0)<0;do if(e|b>>>0<1048576){g=+N(+a);h[k>>3]=g;if((c[k>>2]|0)==0&(c[k+4>>2]|0)==0){a=-1.0/(a*a);break}if(e){a=(a-a)/0.0;break}else{h[k>>3]=a*18014398509481984.0;b=c[k+4>>2]|0;e=c[k>>2]|0;d=-1077;f=9;break}}else if(b>>>0<=2146435071)if((d|0)==0&0==0&(b|0)==1072693248)a=0.0;else{e=d;d=-1023;f=9}while(0);if((f|0)==9){f=b+614242|0;c[k>>2]=e;c[k+4>>2]=(f&1048575)+1072079006;j=+h[k>>3]+-1.0;i=j*(j*.5);l=j/(j+2.0);m=l*l;a=m*m;h[k>>3]=j-i;e=c[k+4>>2]|0;c[k>>2]=0;c[k+4>>2]=e;g=+h[k>>3];a=j-g-i+l*(i+(a*(a*(a*.15313837699209373+.22222198432149784)+.3999999999940942)+m*(a*(a*(a*.14798198605116586+.1818357216161805)+.2857142874366239)+.6666666666666735)));m=g*.4342944818781689;i=+(d+(f>>>20)|0);l=i*.30102999566361177;j=l+m;a=j+(m+(l-j)+(a*.4342944818781689+(i*3.694239077158931e-13+(g+a)*2.5082946711645275e-11)))}return +a}function ij(a){a=+a;return ~~+gj(a)|0}function jj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;do if(a>>>0<245){o=a>>>0<11?16:a+11&-8;a=o>>>3;j=c[7644]|0;b=j>>>a;if(b&3|0){b=(b&1^1)+a|0;d=30616+(b<<1<<2)|0;e=d+8|0;f=c[e>>2]|0;g=f+8|0;h=c[g>>2]|0;do if((d|0)!=(h|0)){if(h>>>0<(c[7648]|0)>>>0)ga();a=h+12|0;if((c[a>>2]|0)==(f|0)){c[a>>2]=d;c[e>>2]=h;break}else ga()}else c[7644]=j&~(1<<b);while(0);L=b<<3;c[f+4>>2]=L|3;L=f+L+4|0;c[L>>2]=c[L>>2]|1;L=g;return L|0}h=c[7646]|0;if(o>>>0>h>>>0){if(b|0){d=2<<a;d=b<<a&(d|0-d);d=(d&0-d)+-1|0;i=d>>>12&16;d=d>>>i;f=d>>>5&8;d=d>>>f;g=d>>>2&4;d=d>>>g;e=d>>>1&2;d=d>>>e;b=d>>>1&1;b=(f|i|g|e|b)+(d>>>b)|0;d=30616+(b<<1<<2)|0;e=d+8|0;g=c[e>>2]|0;i=g+8|0;f=c[i>>2]|0;do if((d|0)!=(f|0)){if(f>>>0<(c[7648]|0)>>>0)ga();a=f+12|0;if((c[a>>2]|0)==(g|0)){c[a>>2]=d;c[e>>2]=f;k=c[7646]|0;break}else ga()}else{c[7644]=j&~(1<<b);k=h}while(0);h=(b<<3)-o|0;c[g+4>>2]=o|3;e=g+o|0;c[e+4>>2]=h|1;c[e+h>>2]=h;if(k|0){f=c[7649]|0;b=k>>>3;d=30616+(b<<1<<2)|0;a=c[7644]|0;b=1<<b;if(a&b){a=d+8|0;b=c[a>>2]|0;if(b>>>0<(c[7648]|0)>>>0)ga();else{l=a;m=b}}else{c[7644]=a|b;l=d+8|0;m=d}c[l>>2]=f;c[m+12>>2]=f;c[f+8>>2]=m;c[f+12>>2]=d}c[7646]=h;c[7649]=e;L=i;return L|0}a=c[7645]|0;if(a){d=(a&0-a)+-1|0;K=d>>>12&16;d=d>>>K;J=d>>>5&8;d=d>>>J;L=d>>>2&4;d=d>>>L;b=d>>>1&2;d=d>>>b;e=d>>>1&1;e=c[30880+((J|K|L|b|e)+(d>>>e)<<2)>>2]|0;d=(c[e+4>>2]&-8)-o|0;b=e;while(1){a=c[b+16>>2]|0;if(!a){a=c[b+20>>2]|0;if(!a){j=e;break}}b=(c[a+4>>2]&-8)-o|0;L=b>>>0<d>>>0;d=L?b:d;b=a;e=L?a:e}g=c[7648]|0;if(j>>>0<g>>>0)ga();i=j+o|0;if(j>>>0>=i>>>0)ga();h=c[j+24>>2]|0;e=c[j+12>>2]|0;do if((e|0)==(j|0)){b=j+20|0;a=c[b>>2]|0;if(!a){b=j+16|0;a=c[b>>2]|0;if(!a){n=0;break}}while(1){e=a+20|0;f=c[e>>2]|0;if(f|0){a=f;b=e;continue}e=a+16|0;f=c[e>>2]|0;if(!f)break;else{a=f;b=e}}if(b>>>0<g>>>0)ga();else{c[b>>2]=0;n=a;break}}else{f=c[j+8>>2]|0;if(f>>>0<g>>>0)ga();a=f+12|0;if((c[a>>2]|0)!=(j|0))ga();b=e+8|0;if((c[b>>2]|0)==(j|0)){c[a>>2]=e;c[b>>2]=f;n=e;break}else ga()}while(0);do if(h|0){a=c[j+28>>2]|0;b=30880+(a<<2)|0;if((j|0)==(c[b>>2]|0)){c[b>>2]=n;if(!n){c[7645]=c[7645]&~(1<<a);break}}else{if(h>>>0<(c[7648]|0)>>>0)ga();a=h+16|0;if((c[a>>2]|0)==(j|0))c[a>>2]=n;else c[h+20>>2]=n;if(!n)break}b=c[7648]|0;if(n>>>0<b>>>0)ga();c[n+24>>2]=h;a=c[j+16>>2]|0;do if(a|0)if(a>>>0<b>>>0)ga();else{c[n+16>>2]=a;c[a+24>>2]=n;break}while(0);a=c[j+20>>2]|0;if(a|0)if(a>>>0<(c[7648]|0)>>>0)ga();else{c[n+20>>2]=a;c[a+24>>2]=n;break}}while(0);if(d>>>0<16){L=d+o|0;c[j+4>>2]=L|3;L=j+L+4|0;c[L>>2]=c[L>>2]|1}else{c[j+4>>2]=o|3;c[i+4>>2]=d|1;c[i+d>>2]=d;a=c[7646]|0;if(a|0){f=c[7649]|0;b=a>>>3;e=30616+(b<<1<<2)|0;a=c[7644]|0;b=1<<b;if(a&b){a=e+8|0;b=c[a>>2]|0;if(b>>>0<(c[7648]|0)>>>0)ga();else{p=a;q=b}}else{c[7644]=a|b;p=e+8|0;q=e}c[p>>2]=f;c[q+12>>2]=f;c[f+8>>2]=q;c[f+12>>2]=e}c[7646]=d;c[7649]=i}L=j+8|0;return L|0}}}else if(a>>>0<=4294967231){a=a+11|0;o=a&-8;j=c[7645]|0;if(j){d=0-o|0;a=a>>>8;if(a)if(o>>>0>16777215)i=31;else{q=(a+1048320|0)>>>16&8;E=a<<q;p=(E+520192|0)>>>16&4;E=E<<p;i=(E+245760|0)>>>16&2;i=14-(p|q|i)+(E<<i>>>15)|0;i=o>>>(i+7|0)&1|i<<1}else i=0;b=c[30880+(i<<2)>>2]|0;a:do if(!b){a=0;b=0;E=86}else{f=d;a=0;g=o<<((i|0)==31?0:25-(i>>>1)|0);h=b;b=0;while(1){e=c[h+4>>2]&-8;d=e-o|0;if(d>>>0<f>>>0)if((e|0)==(o|0)){a=h;b=h;E=90;break a}else b=h;else d=f;e=c[h+20>>2]|0;h=c[h+16+(g>>>31<<2)>>2]|0;a=(e|0)==0|(e|0)==(h|0)?a:e;e=(h|0)==0;if(e){E=86;break}else{f=d;g=g<<(e&1^1)}}}while(0);if((E|0)==86){if((a|0)==0&(b|0)==0){a=2<<i;a=j&(a|0-a);if(!a)break;q=(a&0-a)+-1|0;m=q>>>12&16;q=q>>>m;l=q>>>5&8;q=q>>>l;n=q>>>2&4;q=q>>>n;p=q>>>1&2;q=q>>>p;a=q>>>1&1;a=c[30880+((l|m|n|p|a)+(q>>>a)<<2)>>2]|0}if(!a){i=d;j=b}else E=90}if((E|0)==90)while(1){E=0;q=(c[a+4>>2]&-8)-o|0;e=q>>>0<d>>>0;d=e?q:d;b=e?a:b;e=c[a+16>>2]|0;if(e|0){a=e;E=90;continue}a=c[a+20>>2]|0;if(!a){i=d;j=b;break}else E=90}if((j|0)!=0?i>>>0<((c[7646]|0)-o|0)>>>0:0){f=c[7648]|0;if(j>>>0<f>>>0)ga();h=j+o|0;if(j>>>0>=h>>>0)ga();g=c[j+24>>2]|0;d=c[j+12>>2]|0;do if((d|0)==(j|0)){b=j+20|0;a=c[b>>2]|0;if(!a){b=j+16|0;a=c[b>>2]|0;if(!a){s=0;break}}while(1){d=a+20|0;e=c[d>>2]|0;if(e|0){a=e;b=d;continue}d=a+16|0;e=c[d>>2]|0;if(!e)break;else{a=e;b=d}}if(b>>>0<f>>>0)ga();else{c[b>>2]=0;s=a;break}}else{e=c[j+8>>2]|0;if(e>>>0<f>>>0)ga();a=e+12|0;if((c[a>>2]|0)!=(j|0))ga();b=d+8|0;if((c[b>>2]|0)==(j|0)){c[a>>2]=d;c[b>>2]=e;s=d;break}else ga()}while(0);do if(g|0){a=c[j+28>>2]|0;b=30880+(a<<2)|0;if((j|0)==(c[b>>2]|0)){c[b>>2]=s;if(!s){c[7645]=c[7645]&~(1<<a);break}}else{if(g>>>0<(c[7648]|0)>>>0)ga();a=g+16|0;if((c[a>>2]|0)==(j|0))c[a>>2]=s;else c[g+20>>2]=s;if(!s)break}b=c[7648]|0;if(s>>>0<b>>>0)ga();c[s+24>>2]=g;a=c[j+16>>2]|0;do if(a|0)if(a>>>0<b>>>0)ga();else{c[s+16>>2]=a;c[a+24>>2]=s;break}while(0);a=c[j+20>>2]|0;if(a|0)if(a>>>0<(c[7648]|0)>>>0)ga();else{c[s+20>>2]=a;c[a+24>>2]=s;break}}while(0);do if(i>>>0>=16){c[j+4>>2]=o|3;c[h+4>>2]=i|1;c[h+i>>2]=i;a=i>>>3;if(i>>>0<256){d=30616+(a<<1<<2)|0;b=c[7644]|0;a=1<<a;if(b&a){a=d+8|0;b=c[a>>2]|0;if(b>>>0<(c[7648]|0)>>>0)ga();else{u=a;v=b}}else{c[7644]=b|a;u=d+8|0;v=d}c[u>>2]=h;c[v+12>>2]=h;c[h+8>>2]=v;c[h+12>>2]=d;break}a=i>>>8;if(a)if(i>>>0>16777215)d=31;else{K=(a+1048320|0)>>>16&8;L=a<<K;J=(L+520192|0)>>>16&4;L=L<<J;d=(L+245760|0)>>>16&2;d=14-(J|K|d)+(L<<d>>>15)|0;d=i>>>(d+7|0)&1|d<<1}else d=0;e=30880+(d<<2)|0;c[h+28>>2]=d;a=h+16|0;c[a+4>>2]=0;c[a>>2]=0;a=c[7645]|0;b=1<<d;if(!(a&b)){c[7645]=a|b;c[e>>2]=h;c[h+24>>2]=e;c[h+12>>2]=h;c[h+8>>2]=h;break}f=i<<((d|0)==31?0:25-(d>>>1)|0);a=c[e>>2]|0;while(1){if((c[a+4>>2]&-8|0)==(i|0)){d=a;E=148;break}b=a+16+(f>>>31<<2)|0;d=c[b>>2]|0;if(!d){E=145;break}else{f=f<<1;a=d}}if((E|0)==145)if(b>>>0<(c[7648]|0)>>>0)ga();else{c[b>>2]=h;c[h+24>>2]=a;c[h+12>>2]=h;c[h+8>>2]=h;break}else if((E|0)==148){a=d+8|0;b=c[a>>2]|0;L=c[7648]|0;if(b>>>0>=L>>>0&d>>>0>=L>>>0){c[b+12>>2]=h;c[a>>2]=h;c[h+8>>2]=b;c[h+12>>2]=d;c[h+24>>2]=0;break}else ga()}}else{L=i+o|0;c[j+4>>2]=L|3;L=j+L+4|0;c[L>>2]=c[L>>2]|1}while(0);L=j+8|0;return L|0}}}else o=-1;while(0);d=c[7646]|0;if(d>>>0>=o>>>0){a=d-o|0;b=c[7649]|0;if(a>>>0>15){L=b+o|0;c[7649]=L;c[7646]=a;c[L+4>>2]=a|1;c[L+a>>2]=a;c[b+4>>2]=o|3}else{c[7646]=0;c[7649]=0;c[b+4>>2]=d|3;L=b+d+4|0;c[L>>2]=c[L>>2]|1}L=b+8|0;return L|0}a=c[7647]|0;if(a>>>0>o>>>0){J=a-o|0;c[7647]=J;L=c[7650]|0;K=L+o|0;c[7650]=K;c[K+4>>2]=J|1;c[L+4>>2]=o|3;L=L+8|0;return L|0}do if(!(c[7762]|0)){a=oa(30)|0;if(!(a+-1&a)){c[7764]=a;c[7763]=a;c[7765]=-1;c[7766]=-1;c[7767]=0;c[7755]=0;c[7762]=(ka(0)|0)&-16^1431655768;break}else ga()}while(0);h=o+48|0;g=c[7764]|0;i=o+47|0;f=g+i|0;g=0-g|0;j=f&g;if(j>>>0<=o>>>0){L=0;return L|0}a=c[7754]|0;if(a|0?(u=c[7752]|0,v=u+j|0,v>>>0<=u>>>0|v>>>0>a>>>0):0){L=0;return L|0}b:do if(!(c[7755]&4)){a=c[7650]|0;c:do if(a){d=31024;while(1){b=c[d>>2]|0;if(b>>>0<=a>>>0?(r=d+4|0,(b+(c[r>>2]|0)|0)>>>0>a>>>0):0){e=d;d=r;break}d=c[d+8>>2]|0;if(!d){E=173;break c}}a=f-(c[7647]|0)&g;if(a>>>0<2147483647){b=ja(a|0)|0;if((b|0)==((c[e>>2]|0)+(c[d>>2]|0)|0)){if((b|0)!=(-1|0)){h=b;f=a;E=193;break b}}else E=183}}else E=173;while(0);do if((E|0)==173?(t=ja(0)|0,(t|0)!=(-1|0)):0){a=t;b=c[7763]|0;d=b+-1|0;if(!(d&a))a=j;else a=j-a+(d+a&0-b)|0;b=c[7752]|0;d=b+a|0;if(a>>>0>o>>>0&a>>>0<2147483647){v=c[7754]|0;if(v|0?d>>>0<=b>>>0|d>>>0>v>>>0:0)break;b=ja(a|0)|0;if((b|0)==(t|0)){h=t;f=a;E=193;break b}else E=183}}while(0);d:do if((E|0)==183){d=0-a|0;do if(h>>>0>a>>>0&(a>>>0<2147483647&(b|0)!=(-1|0))?(w=c[7764]|0,w=i-a+w&0-w,w>>>0<2147483647):0)if((ja(w|0)|0)==(-1|0)){ja(d|0)|0;break d}else{a=w+a|0;break}while(0);if((b|0)!=(-1|0)){h=b;f=a;E=193;break b}}while(0);c[7755]=c[7755]|4;E=190}else E=190;while(0);if((((E|0)==190?j>>>0<2147483647:0)?(x=ja(j|0)|0,y=ja(0)|0,x>>>0<y>>>0&((x|0)!=(-1|0)&(y|0)!=(-1|0))):0)?(z=y-x|0,z>>>0>(o+40|0)>>>0):0){h=x;f=z;E=193}if((E|0)==193){a=(c[7752]|0)+f|0;c[7752]=a;if(a>>>0>(c[7753]|0)>>>0)c[7753]=a;i=c[7650]|0;do if(i){e=31024;do{a=c[e>>2]|0;b=e+4|0;d=c[b>>2]|0;if((h|0)==(a+d|0)){A=a;B=b;C=d;D=e;E=203;break}e=c[e+8>>2]|0}while((e|0)!=0);if(((E|0)==203?(c[D+12>>2]&8|0)==0:0)?i>>>0<h>>>0&i>>>0>=A>>>0:0){c[B>>2]=C+f;L=i+8|0;L=(L&7|0)==0?0:0-L&7;K=i+L|0;L=f-L+(c[7647]|0)|0;c[7650]=K;c[7647]=L;c[K+4>>2]=L|1;c[K+L+4>>2]=40;c[7651]=c[7766];break}a=c[7648]|0;if(h>>>0<a>>>0){c[7648]=h;j=h}else j=a;d=h+f|0;a=31024;while(1){if((c[a>>2]|0)==(d|0)){b=a;E=211;break}a=c[a+8>>2]|0;if(!a){b=31024;break}}if((E|0)==211)if(!(c[a+12>>2]&8)){c[b>>2]=h;l=a+4|0;c[l>>2]=(c[l>>2]|0)+f;l=h+8|0;l=h+((l&7|0)==0?0:0-l&7)|0;a=d+8|0;a=d+((a&7|0)==0?0:0-a&7)|0;k=l+o|0;g=a-l-o|0;c[l+4>>2]=o|3;do if((a|0)!=(i|0)){if((a|0)==(c[7649]|0)){L=(c[7646]|0)+g|0;c[7646]=L;c[7649]=k;c[k+4>>2]=L|1;c[k+L>>2]=L;break}b=c[a+4>>2]|0;if((b&3|0)==1){i=b&-8;f=b>>>3;e:do if(b>>>0>=256){h=c[a+24>>2]|0;e=c[a+12>>2]|0;do if((e|0)==(a|0)){d=a+16|0;e=d+4|0;b=c[e>>2]|0;if(!b){b=c[d>>2]|0;if(!b){J=0;break}}else d=e;while(1){e=b+20|0;f=c[e>>2]|0;if(f|0){b=f;d=e;continue}e=b+16|0;f=c[e>>2]|0;if(!f)break;else{b=f;d=e}}if(d>>>0<j>>>0)ga();else{c[d>>2]=0;J=b;break}}else{f=c[a+8>>2]|0;if(f>>>0<j>>>0)ga();b=f+12|0;if((c[b>>2]|0)!=(a|0))ga();d=e+8|0;if((c[d>>2]|0)==(a|0)){c[b>>2]=e;c[d>>2]=f;J=e;break}else ga()}while(0);if(!h)break;b=c[a+28>>2]|0;d=30880+(b<<2)|0;do if((a|0)!=(c[d>>2]|0)){if(h>>>0<(c[7648]|0)>>>0)ga();b=h+16|0;if((c[b>>2]|0)==(a|0))c[b>>2]=J;else c[h+20>>2]=J;if(!J)break e}else{c[d>>2]=J;if(J|0)break;c[7645]=c[7645]&~(1<<b);break e}while(0);e=c[7648]|0;if(J>>>0<e>>>0)ga();c[J+24>>2]=h;b=a+16|0;d=c[b>>2]|0;do if(d|0)if(d>>>0<e>>>0)ga();else{c[J+16>>2]=d;c[d+24>>2]=J;break}while(0);b=c[b+4>>2]|0;if(!b)break;if(b>>>0<(c[7648]|0)>>>0)ga();else{c[J+20>>2]=b;c[b+24>>2]=J;break}}else{d=c[a+8>>2]|0;e=c[a+12>>2]|0;b=30616+(f<<1<<2)|0;do if((d|0)!=(b|0)){if(d>>>0<j>>>0)ga();if((c[d+12>>2]|0)==(a|0))break;ga()}while(0);if((e|0)==(d|0)){c[7644]=c[7644]&~(1<<f);break}do if((e|0)==(b|0))G=e+8|0;else{if(e>>>0<j>>>0)ga();b=e+8|0;if((c[b>>2]|0)==(a|0)){G=b;break}ga()}while(0);c[d+12>>2]=e;c[G>>2]=d}while(0);a=a+i|0;g=i+g|0}a=a+4|0;c[a>>2]=c[a>>2]&-2;c[k+4>>2]=g|1;c[k+g>>2]=g;a=g>>>3;if(g>>>0<256){d=30616+(a<<1<<2)|0;b=c[7644]|0;a=1<<a;do if(!(b&a)){c[7644]=b|a;K=d+8|0;L=d}else{a=d+8|0;b=c[a>>2]|0;if(b>>>0>=(c[7648]|0)>>>0){K=a;L=b;break}ga()}while(0);c[K>>2]=k;c[L+12>>2]=k;c[k+8>>2]=L;c[k+12>>2]=d;break}a=g>>>8;do if(!a)d=0;else{if(g>>>0>16777215){d=31;break}K=(a+1048320|0)>>>16&8;L=a<<K;J=(L+520192|0)>>>16&4;L=L<<J;d=(L+245760|0)>>>16&2;d=14-(J|K|d)+(L<<d>>>15)|0;d=g>>>(d+7|0)&1|d<<1}while(0);e=30880+(d<<2)|0;c[k+28>>2]=d;a=k+16|0;c[a+4>>2]=0;c[a>>2]=0;a=c[7645]|0;b=1<<d;if(!(a&b)){c[7645]=a|b;c[e>>2]=k;c[k+24>>2]=e;c[k+12>>2]=k;c[k+8>>2]=k;break}f=g<<((d|0)==31?0:25-(d>>>1)|0);a=c[e>>2]|0;while(1){if((c[a+4>>2]&-8|0)==(g|0)){d=a;E=281;break}b=a+16+(f>>>31<<2)|0;d=c[b>>2]|0;if(!d){E=278;break}else{f=f<<1;a=d}}if((E|0)==278)if(b>>>0<(c[7648]|0)>>>0)ga();else{c[b>>2]=k;c[k+24>>2]=a;c[k+12>>2]=k;c[k+8>>2]=k;break}else if((E|0)==281){a=d+8|0;b=c[a>>2]|0;L=c[7648]|0;if(b>>>0>=L>>>0&d>>>0>=L>>>0){c[b+12>>2]=k;c[a>>2]=k;c[k+8>>2]=b;c[k+12>>2]=d;c[k+24>>2]=0;break}else ga()}}else{L=(c[7647]|0)+g|0;c[7647]=L;c[7650]=k;c[k+4>>2]=L|1}while(0);L=l+8|0;return L|0}else b=31024;while(1){a=c[b>>2]|0;if(a>>>0<=i>>>0?(F=a+(c[b+4>>2]|0)|0,F>>>0>i>>>0):0){b=F;break}b=c[b+8>>2]|0}g=b+-47|0;d=g+8|0;d=g+((d&7|0)==0?0:0-d&7)|0;g=i+16|0;d=d>>>0<g>>>0?i:d;a=d+8|0;e=h+8|0;e=(e&7|0)==0?0:0-e&7;L=h+e|0;e=f+-40-e|0;c[7650]=L;c[7647]=e;c[L+4>>2]=e|1;c[L+e+4>>2]=40;c[7651]=c[7766];e=d+4|0;c[e>>2]=27;c[a>>2]=c[7756];c[a+4>>2]=c[7757];c[a+8>>2]=c[7758];c[a+12>>2]=c[7759];c[7756]=h;c[7757]=f;c[7759]=0;c[7758]=a;a=d+24|0;do{a=a+4|0;c[a>>2]=7}while((a+4|0)>>>0<b>>>0);if((d|0)!=(i|0)){h=d-i|0;c[e>>2]=c[e>>2]&-2;c[i+4>>2]=h|1;c[d>>2]=h;a=h>>>3;if(h>>>0<256){d=30616+(a<<1<<2)|0;b=c[7644]|0;a=1<<a;if(b&a){a=d+8|0;b=c[a>>2]|0;if(b>>>0<(c[7648]|0)>>>0)ga();else{H=a;I=b}}else{c[7644]=b|a;H=d+8|0;I=d}c[H>>2]=i;c[I+12>>2]=i;c[i+8>>2]=I;c[i+12>>2]=d;break}a=h>>>8;if(a)if(h>>>0>16777215)d=31;else{K=(a+1048320|0)>>>16&8;L=a<<K;J=(L+520192|0)>>>16&4;L=L<<J;d=(L+245760|0)>>>16&2;d=14-(J|K|d)+(L<<d>>>15)|0;d=h>>>(d+7|0)&1|d<<1}else d=0;f=30880+(d<<2)|0;c[i+28>>2]=d;c[i+20>>2]=0;c[g>>2]=0;a=c[7645]|0;b=1<<d;if(!(a&b)){c[7645]=a|b;c[f>>2]=i;c[i+24>>2]=f;c[i+12>>2]=i;c[i+8>>2]=i;break}e=h<<((d|0)==31?0:25-(d>>>1)|0);a=c[f>>2]|0;while(1){if((c[a+4>>2]&-8|0)==(h|0)){d=a;E=307;break}b=a+16+(e>>>31<<2)|0;d=c[b>>2]|0;if(!d){E=304;break}else{e=e<<1;a=d}}if((E|0)==304)if(b>>>0<(c[7648]|0)>>>0)ga();else{c[b>>2]=i;c[i+24>>2]=a;c[i+12>>2]=i;c[i+8>>2]=i;break}else if((E|0)==307){a=d+8|0;b=c[a>>2]|0;L=c[7648]|0;if(b>>>0>=L>>>0&d>>>0>=L>>>0){c[b+12>>2]=i;c[a>>2]=i;c[i+8>>2]=b;c[i+12>>2]=d;c[i+24>>2]=0;break}else ga()}}}else{L=c[7648]|0;if((L|0)==0|h>>>0<L>>>0)c[7648]=h;c[7756]=h;c[7757]=f;c[7759]=0;c[7653]=c[7762];c[7652]=-1;a=0;do{L=30616+(a<<1<<2)|0;c[L+12>>2]=L;c[L+8>>2]=L;a=a+1|0}while((a|0)!=32);L=h+8|0;L=(L&7|0)==0?0:0-L&7;K=h+L|0;L=f+-40-L|0;c[7650]=K;c[7647]=L;c[K+4>>2]=L|1;c[K+L+4>>2]=40;c[7651]=c[7766]}while(0);a=c[7647]|0;if(a>>>0>o>>>0){J=a-o|0;c[7647]=J;L=c[7650]|0;K=L+o|0;c[7650]=K;c[K+4>>2]=J|1;c[L+4>>2]=o|3;L=L+8|0;return L|0}}c[(fj()|0)>>2]=12;L=0;return L|0}function kj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;if(!a)return;d=a+-8|0;h=c[7648]|0;if(d>>>0<h>>>0)ga();a=c[a+-4>>2]|0;b=a&3;if((b|0)==1)ga();e=a&-8;m=d+e|0;do if(!(a&1)){a=c[d>>2]|0;if(!b)return;k=d+(0-a)|0;j=a+e|0;if(k>>>0<h>>>0)ga();if((k|0)==(c[7649]|0)){a=m+4|0;b=c[a>>2]|0;if((b&3|0)!=3){q=k;g=j;break}c[7646]=j;c[a>>2]=b&-2;c[k+4>>2]=j|1;c[k+j>>2]=j;return}e=a>>>3;if(a>>>0<256){b=c[k+8>>2]|0;d=c[k+12>>2]|0;a=30616+(e<<1<<2)|0;if((b|0)!=(a|0)){if(b>>>0<h>>>0)ga();if((c[b+12>>2]|0)!=(k|0))ga()}if((d|0)==(b|0)){c[7644]=c[7644]&~(1<<e);q=k;g=j;break}if((d|0)!=(a|0)){if(d>>>0<h>>>0)ga();a=d+8|0;if((c[a>>2]|0)==(k|0))f=a;else ga()}else f=d+8|0;c[b+12>>2]=d;c[f>>2]=b;q=k;g=j;break}f=c[k+24>>2]|0;d=c[k+12>>2]|0;do if((d|0)==(k|0)){b=k+16|0;d=b+4|0;a=c[d>>2]|0;if(!a){a=c[b>>2]|0;if(!a){i=0;break}}else b=d;while(1){d=a+20|0;e=c[d>>2]|0;if(e|0){a=e;b=d;continue}d=a+16|0;e=c[d>>2]|0;if(!e)break;else{a=e;b=d}}if(b>>>0<h>>>0)ga();else{c[b>>2]=0;i=a;break}}else{e=c[k+8>>2]|0;if(e>>>0<h>>>0)ga();a=e+12|0;if((c[a>>2]|0)!=(k|0))ga();b=d+8|0;if((c[b>>2]|0)==(k|0)){c[a>>2]=d;c[b>>2]=e;i=d;break}else ga()}while(0);if(f){a=c[k+28>>2]|0;b=30880+(a<<2)|0;if((k|0)==(c[b>>2]|0)){c[b>>2]=i;if(!i){c[7645]=c[7645]&~(1<<a);q=k;g=j;break}}else{if(f>>>0<(c[7648]|0)>>>0)ga();a=f+16|0;if((c[a>>2]|0)==(k|0))c[a>>2]=i;else c[f+20>>2]=i;if(!i){q=k;g=j;break}}d=c[7648]|0;if(i>>>0<d>>>0)ga();c[i+24>>2]=f;a=k+16|0;b=c[a>>2]|0;do if(b|0)if(b>>>0<d>>>0)ga();else{c[i+16>>2]=b;c[b+24>>2]=i;break}while(0);a=c[a+4>>2]|0;if(a)if(a>>>0<(c[7648]|0)>>>0)ga();else{c[i+20>>2]=a;c[a+24>>2]=i;q=k;g=j;break}else{q=k;g=j}}else{q=k;g=j}}else{q=d;g=e}while(0);if(q>>>0>=m>>>0)ga();a=m+4|0;b=c[a>>2]|0;if(!(b&1))ga();if(!(b&2)){if((m|0)==(c[7650]|0)){p=(c[7647]|0)+g|0;c[7647]=p;c[7650]=q;c[q+4>>2]=p|1;if((q|0)!=(c[7649]|0))return;c[7649]=0;c[7646]=0;return}if((m|0)==(c[7649]|0)){p=(c[7646]|0)+g|0;c[7646]=p;c[7649]=q;c[q+4>>2]=p|1;c[q+p>>2]=p;return}g=(b&-8)+g|0;e=b>>>3;do if(b>>>0>=256){f=c[m+24>>2]|0;a=c[m+12>>2]|0;do if((a|0)==(m|0)){b=m+16|0;d=b+4|0;a=c[d>>2]|0;if(!a){a=c[b>>2]|0;if(!a){n=0;break}}else b=d;while(1){d=a+20|0;e=c[d>>2]|0;if(e|0){a=e;b=d;continue}d=a+16|0;e=c[d>>2]|0;if(!e)break;else{a=e;b=d}}if(b>>>0<(c[7648]|0)>>>0)ga();else{c[b>>2]=0;n=a;break}}else{b=c[m+8>>2]|0;if(b>>>0<(c[7648]|0)>>>0)ga();d=b+12|0;if((c[d>>2]|0)!=(m|0))ga();e=a+8|0;if((c[e>>2]|0)==(m|0)){c[d>>2]=a;c[e>>2]=b;n=a;break}else ga()}while(0);if(f|0){a=c[m+28>>2]|0;b=30880+(a<<2)|0;if((m|0)==(c[b>>2]|0)){c[b>>2]=n;if(!n){c[7645]=c[7645]&~(1<<a);break}}else{if(f>>>0<(c[7648]|0)>>>0)ga();a=f+16|0;if((c[a>>2]|0)==(m|0))c[a>>2]=n;else c[f+20>>2]=n;if(!n)break}d=c[7648]|0;if(n>>>0<d>>>0)ga();c[n+24>>2]=f;a=m+16|0;b=c[a>>2]|0;do if(b|0)if(b>>>0<d>>>0)ga();else{c[n+16>>2]=b;c[b+24>>2]=n;break}while(0);a=c[a+4>>2]|0;if(a|0)if(a>>>0<(c[7648]|0)>>>0)ga();else{c[n+20>>2]=a;c[a+24>>2]=n;break}}}else{b=c[m+8>>2]|0;d=c[m+12>>2]|0;a=30616+(e<<1<<2)|0;if((b|0)!=(a|0)){if(b>>>0<(c[7648]|0)>>>0)ga();if((c[b+12>>2]|0)!=(m|0))ga()}if((d|0)==(b|0)){c[7644]=c[7644]&~(1<<e);break}if((d|0)!=(a|0)){if(d>>>0<(c[7648]|0)>>>0)ga();a=d+8|0;if((c[a>>2]|0)==(m|0))l=a;else ga()}else l=d+8|0;c[b+12>>2]=d;c[l>>2]=b}while(0);c[q+4>>2]=g|1;c[q+g>>2]=g;if((q|0)==(c[7649]|0)){c[7646]=g;return}}else{c[a>>2]=b&-2;c[q+4>>2]=g|1;c[q+g>>2]=g}a=g>>>3;if(g>>>0<256){d=30616+(a<<1<<2)|0;b=c[7644]|0;a=1<<a;if(b&a){a=d+8|0;b=c[a>>2]|0;if(b>>>0<(c[7648]|0)>>>0)ga();else{o=a;p=b}}else{c[7644]=b|a;o=d+8|0;p=d}c[o>>2]=q;c[p+12>>2]=q;c[q+8>>2]=p;c[q+12>>2]=d;return}a=g>>>8;if(a)if(g>>>0>16777215)d=31;else{o=(a+1048320|0)>>>16&8;p=a<<o;n=(p+520192|0)>>>16&4;p=p<<n;d=(p+245760|0)>>>16&2;d=14-(n|o|d)+(p<<d>>>15)|0;d=g>>>(d+7|0)&1|d<<1}else d=0;e=30880+(d<<2)|0;c[q+28>>2]=d;c[q+20>>2]=0;c[q+16>>2]=0;a=c[7645]|0;b=1<<d;do if(a&b){f=g<<((d|0)==31?0:25-(d>>>1)|0);a=c[e>>2]|0;while(1){if((c[a+4>>2]&-8|0)==(g|0)){d=a;e=130;break}b=a+16+(f>>>31<<2)|0;d=c[b>>2]|0;if(!d){e=127;break}else{f=f<<1;a=d}}if((e|0)==127)if(b>>>0<(c[7648]|0)>>>0)ga();else{c[b>>2]=q;c[q+24>>2]=a;c[q+12>>2]=q;c[q+8>>2]=q;break}else if((e|0)==130){a=d+8|0;b=c[a>>2]|0;p=c[7648]|0;if(b>>>0>=p>>>0&d>>>0>=p>>>0){c[b+12>>2]=q;c[a>>2]=q;c[q+8>>2]=b;c[q+12>>2]=d;c[q+24>>2]=0;break}else ga()}}else{c[7645]=a|b;c[e>>2]=q;c[q+24>>2]=e;c[q+12>>2]=q;c[q+8>>2]=q}while(0);q=(c[7652]|0)+-1|0;c[7652]=q;if(!q)a=31032;else return;while(1){a=c[a>>2]|0;if(!a)break;else a=a+8|0}c[7652]=-1;return}function lj(){}function mj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (C=b+d+(c>>>0<a>>>0|0)>>>0,c|0)|0}function nj(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b>>c;return a>>>c|(b&(1<<c)-1)<<32-c}C=(b|0)<0?-1:0;return b>>c-32|0}function oj(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;if((e|0)>=20){d=d&255;h=b&3;i=d|d<<8|d<<16|d<<24;g=f&~3;if(h){h=b+4-h|0;while((b|0)<(h|0)){a[b>>0]=d;b=b+1|0}}while((b|0)<(g|0)){c[b>>2]=i;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return b-e|0}function pj(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return ma(b|0,d|0,e|0)|0;f=b|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}while((e|0)>=4){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;e=e-4|0}}while((e|0)>0){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function qj(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if((c|0)<(b|0)&(b|0)<(c+d|0)){e=b;c=c+d|0;b=b+d|0;while((d|0)>0){b=b-1|0;c=c-1|0;d=d-1|0;a[b>>0]=a[c>>0]|0}b=e}else pj(b,c,d)|0;return b|0}function rj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=b-d-(c>>>0>a>>>0|0)>>>0;return (C=d,a-c>>>0|0)|0}function sj(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b<<c|(a&(1<<c)-1<<32-c)>>>32-c;return a<<c}C=a<<c-32;return 0}function tj(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b>>>c;return a>>>c|(b&(1<<c)-1)<<32-c}C=0;return b>>>c-32|0}function uj(b){b=b|0;var c=0;c=a[m+(b&255)>>0]|0;if((c|0)<8)return c|0;c=a[m+(b>>8&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[m+(b>>16&255)>>0]|0;if((c|0)<8)return c+16|0;return (a[m+(b>>>24)>>0]|0)+24|0}function vj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=_(e,f)|0;d=a>>>16;a=(c>>>16)+(_(e,d)|0)|0;e=b>>>16;b=_(e,f)|0;return (C=(a>>>16)+(_(e,d)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|c&65535|0)|0}function wj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=b>>31|((b|0)<0?-1:0)<<1;i=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;f=d>>31|((d|0)<0?-1:0)<<1;e=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;h=rj(j^a|0,i^b|0,j|0,i|0)|0;g=C;a=f^j;b=e^i;return rj((Bj(h,g,rj(f^c|0,e^d|0,f|0,e|0)|0,C,0)|0)^a|0,C^b|0,a|0,b|0)|0}function xj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+16|0;j=f|0;h=b>>31|((b|0)<0?-1:0)<<1;g=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;l=e>>31|((e|0)<0?-1:0)<<1;k=((e|0)<0?-1:0)>>31|((e|0)<0?-1:0)<<1;a=rj(h^a|0,g^b|0,h|0,g|0)|0;b=C;Bj(a,b,rj(l^d|0,k^e|0,l|0,k|0)|0,C,j)|0;e=rj(c[j>>2]^h|0,c[j+4>>2]^g|0,h|0,g|0)|0;d=C;i=f;return (C=d,e)|0}function yj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;c=vj(e,f)|0;a=C;return (C=(_(b,f)|0)+(_(d,e)|0)+a|a&0,c|0|0)|0}function zj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Bj(a,b,c,d,0)|0}function Aj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=i;i=i+16|0;f=g|0;Bj(a,b,d,e,f)|0;i=g;return (C=c[f+4>>2]|0,c[f>>2]|0)|0}function Bj(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;l=a;j=b;k=j;h=d;n=e;i=n;if(!k){g=(f|0)!=0;if(!i){if(g){c[f>>2]=(l>>>0)%(h>>>0);c[f+4>>2]=0}n=0;f=(l>>>0)/(h>>>0)>>>0;return (C=n,f)|0}else{if(!g){n=0;f=0;return (C=n,f)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;n=0;f=0;return (C=n,f)|0}}g=(i|0)==0;do if(h){if(!g){g=(aa(i|0)|0)-(aa(k|0)|0)|0;if(g>>>0<=31){m=g+1|0;i=31-g|0;b=g-31>>31;h=m;a=l>>>(m>>>0)&b|k<<i;b=k>>>(m>>>0)&b;g=0;i=l<<i;break}if(!f){n=0;f=0;return (C=n,f)|0}c[f>>2]=a|0;c[f+4>>2]=j|b&0;n=0;f=0;return (C=n,f)|0}g=h-1|0;if(g&h|0){i=(aa(h|0)|0)+33-(aa(k|0)|0)|0;p=64-i|0;m=32-i|0;j=m>>31;o=i-32|0;b=o>>31;h=i;a=m-1>>31&k>>>(o>>>0)|(k<<m|l>>>(i>>>0))&b;b=b&k>>>(i>>>0);g=l<<p&j;i=(k<<p|l>>>(o>>>0))&j|l<<m&i-33>>31;break}if(f|0){c[f>>2]=g&l;c[f+4>>2]=0}if((h|0)==1){o=j|b&0;p=a|0|0;return (C=o,p)|0}else{p=uj(h|0)|0;o=k>>>(p>>>0)|0;p=k<<32-p|l>>>(p>>>0)|0;return (C=o,p)|0}}else{if(g){if(f|0){c[f>>2]=(k>>>0)%(h>>>0);c[f+4>>2]=0}o=0;p=(k>>>0)/(h>>>0)>>>0;return (C=o,p)|0}if(!l){if(f|0){c[f>>2]=0;c[f+4>>2]=(k>>>0)%(i>>>0)}o=0;p=(k>>>0)/(i>>>0)>>>0;return (C=o,p)|0}g=i-1|0;if(!(g&i)){if(f|0){c[f>>2]=a|0;c[f+4>>2]=g&k|b&0}o=0;p=k>>>((uj(i|0)|0)>>>0);return (C=o,p)|0}g=(aa(i|0)|0)-(aa(k|0)|0)|0;if(g>>>0<=30){b=g+1|0;i=31-g|0;h=b;a=k<<i|l>>>(b>>>0);b=k>>>(b>>>0);g=0;i=l<<i;break}if(!f){o=0;p=0;return (C=o,p)|0}c[f>>2]=a|0;c[f+4>>2]=j|b&0;o=0;p=0;return (C=o,p)|0}while(0);if(!h){k=i;j=0;i=0}else{m=d|0|0;l=n|e&0;k=mj(m|0,l|0,-1,-1)|0;d=C;j=i;i=0;do{e=j;j=g>>>31|j<<1;g=i|g<<1;e=a<<1|e>>>31|0;n=a>>>31|b<<1|0;rj(k|0,d|0,e|0,n|0)|0;p=C;o=p>>31|((p|0)<0?-1:0)<<1;i=o&1;a=rj(e|0,n|0,o&m|0,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&l|0)|0;b=C;h=h-1|0}while((h|0)!=0);k=j;j=0}h=0;if(f|0){c[f>>2]=a;c[f+4>>2]=b}o=(g|0)>>>31|(k|h)<<1|(h<<1|g>>>31)&0|j;p=(g<<1|0>>>31)&-2|i;return (C=o,p)|0}function Cj(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;qa[a&3](b|0,c|0,d|0,e|0,f|0,g|0,h|0)}function Dj(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;ba(0)}
// EMSCRIPTEN_END_FUNCS
var qa=[Dj,yi,xi,Dj];return{_opus_decoder_get_size:ai,_opus_get_version_string:gb,_free:kj,_opus_encode_float:Ri,_opus_strerror:fb,_i64Add:mj,_memmove:qj,_opus_decoder_init:ci,_bitshift64Ashr:nj,_opus_encoder_get_size:ti,_memset:oj,_malloc:jj,_opus_decoder_ctl:si,_opus_encode:Qi,_opus_encoder_init:vi,_opus_decode:mi,_opus_packet_get_nb_samples:oi,_memcpy:pj,_opus_encoder_ctl:Si,_opus_decode_float:ri,runPostSets:lj,stackAlloc:ra,stackSave:sa,stackRestore:ta,establishStackSpace:ua,setThrew:va,setTempRet0:ya,getTempRet0:za,dynCall_viiiiiii:Cj}})
// EMSCRIPTEN_END_ASM
(b.s,b.t,buffer);b._opus_decoder_get_size=Z._opus_decoder_get_size;b._opus_get_version_string=Z._opus_get_version_string;var va=b._free=Z._free;
b._opus_encode_float=Z._opus_encode_float;b._opus_strerror=Z._opus_strerror;var Pa=b._i64Add=Z._i64Add,Ua=b._memmove=Z._memmove;b._opus_decoder_init=Z._opus_decoder_init;var Qa=b._bitshift64Ashr=Z._bitshift64Ashr;b._opus_encoder_get_size=Z._opus_encoder_get_size;var Ra=b._memset=Z._memset,Q=b._malloc=Z._malloc;b._opus_packet_get_nb_samples=Z._opus_packet_get_nb_samples;b._opus_encode=Z._opus_encode;b._opus_encoder_init=Z._opus_encoder_init;b._opus_decode=Z._opus_decode;b._opus_decoder_ctl=Z._opus_decoder_ctl;
var Sa=b._memcpy=Z._memcpy;b._opus_encoder_ctl=Z._opus_encoder_ctl;b._opus_decode_float=Z._opus_decode_float;b.runPostSets=Z.runPostSets;b.dynCall_viiiiiii=Z.dynCall_viiiiiii;y.f=Z.stackAlloc;y.g=Z.stackSave;y.c=Z.stackRestore;y.I=Z.establishStackSpace;y.B=Z.setTempRet0;y.w=Z.getTempRet0;function w(a){this.name="ExitStatus";this.message="Program terminated with exit("+a+")";this.status=a}w.prototype=Error();w.prototype.constructor=w;var Wa=null,X=function Xa(){b.calledRun||Ya();b.calledRun||(X=Xa)};
b.callMain=b.G=function(a){function c(){for(var a=0;3>a;a++)e.push(0)}a=a||[];T||(T=!0,V(Ea));var d=a.length+1,e=[O(Ka(b.thisProgram),"i8",0)];c();for(var g=0;g<d-1;g+=1)e.push(O(Ka(a[g]),"i8",0)),c();e.push(0);e=O(e,"i32",0);try{var k=b._main(d,e,0);Za(k,!0)}catch(h){if(!(h instanceof w))if("SimulateInfiniteLoop"==h)b.noExitRuntime=!0;else throw h&&"object"===typeof h&&h.stack&&b.m("exception thrown: "+[h,h.stack]),h;}finally{}};
function Ya(a){function c(){if(!b.calledRun&&(b.calledRun=!0,!H)){T||(T=!0,V(Ea));V(Fa);if(b.onRuntimeInitialized)b.onRuntimeInitialized();b._main&&$a&&b.callMain(a);if(b.postRun)for("function"==typeof b.postRun&&(b.postRun=[b.postRun]);b.postRun.length;)Ja(b.postRun.shift());V(Ha)}}a=a||b.arguments;null===Wa&&(Wa=Date.now());if(!(0<W)){if(b.preRun)for("function"==typeof b.preRun&&(b.preRun=[b.preRun]);b.preRun.length;)Ia(b.preRun.shift());V(Da);0<W||b.calledRun||(b.setStatus?(b.setStatus("Running..."),
setTimeout(function(){setTimeout(function(){b.setStatus("")},1);c()},1)):c())}}b.run=b.run=Ya;function Za(a,c){if(!c||!b.noExitRuntime){if(!b.noExitRuntime&&(H=!0,x=void 0,V(Ga),b.onExit))b.onExit(a);r?process.exit(a):t&&"function"===typeof quit&&quit(a);throw new w(a);}}b.exit=b.exit=Za;var ab=[];
function G(a){void 0!==a?(b.print(a),b.m(a),a=JSON.stringify(a)):a="";H=!0;var c="abort("+a+") at "+ta()+"\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";ab&&ab.forEach(function(d){c=d(c,a)});throw c;}b.abort=b.abort=G;if(b.preInit)for("function"==typeof b.preInit&&(b.preInit=[b.preInit]);0<b.preInit.length;)b.preInit.pop()();var $a=!0;b.noInitialRun&&($a=!1);Ya();
return Module;
};
Module.instance = Module();
module.exports = Module;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(92), "/"))
/***/ }),
/* 297 */
/***/ (function(module, exports, __webpack_require__) {
var libopus = __webpack_require__(296).instance;
function stringifyError(errorId) {
return libopus.Pointer_stringify(libopus._opus_strerror(errorId));
}
// Note that the opus documentation is not consistent with that 120ms
// that is suggested in the description of opus_decode. In other places
// such as the overview of the Opus Encoder, 60ms is used as the upper
// limit.
// To be on the safe side, 120ms has been choosen here.
var pcm_len = 4 /*Float32*/ * 2 /*channels*/ * 120 /*ms*/ * 48 /*samples/ms*/;
var data_len = 120 /*ms*/ * 512 /*bits per ms*/;
module.exports = {
stringifyError: stringifyError,
p_pcm: libopus._malloc(pcm_len),
p_pcm_len: pcm_len,
p_data: libopus._malloc(data_len),
p_data_len: data_len
};
/***/ }),
/* 298 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(Buffer) {var libopus = __webpack_require__(296).instance;
var utils = __webpack_require__(297);
var util = __webpack_require__(135);
var extend = __webpack_require__(291);
var Transform = __webpack_require__(87).Transform;
var e = function(msg) { return new Error(msg); };
var p_pcm = utils.p_pcm;
var p_data = utils.p_data;
/**
* Decoder for opus streams.
*
* @param {object} [opts={}] - Options for the decoder
* @param {(8000|12000|16000|24000|48000)} [opts.rate=48000] - Sampling rate of output signal (Hz)
* @param {number} [opts.channels=1] - Number of (interleaved) channels
* @param {boolean} [opts.unsafe=false] - Mark this decoder as unsafe.<br>
* Decoder in unsafe mode generally operate faster.<br>
* Warning: {@link #destroy()} MUST be called on an unsafe decoder before
* it is garbage collected. Otherwise it will leak memory.
* @constructor
*/
function Decoder(opts) {
// Allow use without new
if (!(this instanceof Decoder)) return new Decoder(opts);
opts = extend({
rate: 48000,
channels: 1,
unsafe: false
}, opts);
if (opts.channels < 1 || opts.channels > 2) {
throw e("channels must be either 1 or 2");
}
if ([8000, 12000, 16000, 24000, 48000].indexOf(opts.rate) == -1) {
throw e("rate can only be 8k, 12k, 16k, 24k or 48k");
}
this._rate = opts.rate;
this._channels = opts.channels;
this._unsafe = opts.unsafe;
// Allocate space for the decoder state
var size = libopus._opus_decoder_get_size(this._channels);
var dec = libopus._malloc(size);
// Initialize the decoder
var ret = libopus._opus_decoder_init(dec, this._rate, this._channels);
if (ret !== 0) {
// Free allocated space and throw error
libopus._free(dec);
throw e(utils.stringifyError(ret));
}
// In unsafe mode, that's it. However in safe mode, we copy the state
// to a local buffer and free our allocated memory afterwards
if (this._unsafe) {
this._state = dec;
} else {
this._state = libopus.HEAPU8.slice(dec, dec + size);
libopus._free(dec);
}
}
/**
* Calls the specified function with the state loaded into memory.
*
* @param func - The function to be called
* @returns The return value of func
*/
Decoder.prototype._withState = function(func) {
if (this._unsafe) {
// Unsafe mode already has the state stored in memory
return func(this._state);
} else {
// Store state in memory
var p = libopus._malloc(this._state.length);
libopus.HEAPU8.set(this._state, p);
// Call function
try {
return func(p);
} finally {
// Retrieve state from memory
this._state.set(libopus.HEAPU8.subarray(p, p + this._state.length));
libopus._free(p);
}
}
};
/**
* Destroy this decoder.
* This method should only be called if this decoder is in unsafe mode.
* Any subsequent calls to any encode method will result in undefined behavior.
*/
Decoder.prototype.destroy = function() {
if (this._unsafe) {
libopus._free(this._state);
}
};
/**
* Decodes an opus packet and returns it as an Int16Array.
* Packets have to be decoded in the same order they were encoded in and lost
* packets must be indicated by passing the amount of lost samples as the data.
* If more than 120ms of data are lost, calls to this method have to be split
* in batches of at most 120ms. If a falsy value is passed in, the amount of
* lost samples is estimated with the last packet.
*
* @param {Buffer|number} data - Encoded input data or number of lost samples
* @returns {Int16Array} The decoded output
*/
Decoder.prototype.decodeInt16 = function(data) {
return new Int16Array(this._decode(data, 2, libopus._opus_decode));
};
/**
* Decodes an opus packet and returns it as an Float32Array.
* Packets have to be decoded in the same order they were encoded in and lost
* packets must be indicated by passing the amount of lost samples as the data.
* If more than 120ms of data are lost, calls to this method have to be split
* in batches of at most 120ms. If a falsy value is passed in, the amount of
* lost samples is estimated with the last packet.
*
* @param {Buffer|number} data - Encoded input data or number of lost samples
* @returns {Float32Array} The decoded output
*/
Decoder.prototype.decodeFloat32 = function(data) {
return new Float32Array(this._decode(data, 4, libopus._opus_decode_float));
};
/**
* Decode the input data and leave result on HEAP.
*
* @param {Buffer|number} data - Encoded input data
* @param {number} bps - Bytes per sample
* @param {function} doDecode - Opus decode function
* @returns ArrayBuffer of decoded data
*/
Decoder.prototype._decode = function(data, bps, doDecode) {
var self = this;
return this._withState(function(p_dec) {
data = data || self._getLastPacketDuration(p_dec);
var ret;
if (typeof data === 'number') {
if (data * bps > utils.p_data_len) throw e('too much lost data');
// Signal packet loss
ret = doDecode(p_dec, 0, 0, p_pcm, data, 0);
} else if (data instanceof Buffer) {
if (data.length > utils.p_data_len) throw e('data array too large');
// Decode input data
libopus.HEAPU8.set(data, p_data);
var maxFrameSize = utils.p_pcm_len / self._channels / bps;
ret = doDecode(p_dec, p_data, data.length, p_pcm, maxFrameSize, 0);
} else {
// Invalid input data
throw new TypeError('data must be number, Buffer or null');
}
// Handle result
if (ret < 0) {
throw e(utils.stringifyError(ret));
}
return libopus.HEAPU8.slice(p_pcm, p_pcm + ret * bps).buffer;
});
};
/**
* Get the duration of the last decoded or concealed packet.
*
* @returns {number} - Duration in samples
*/
Decoder.prototype.getLastPacketDuration = function() {
return this._withState(this._getLastPacketDuration.bind(this));
};
Decoder.prototype._getLastPacketDuration = function(p_dec) {
var p_res = libopus._malloc(4);
var pp_res = libopus._malloc(4);
try {
libopus.HEAPU32[pp_res >> 2] = p_res;
var err = libopus._opus_decoder_ctl(p_dec, 4039, pp_res);
if (err) {
throw e(utils.stringifyError(err));
}
return libopus.HEAP32[p_res >> 2];
} finally {
libopus._free(pp_res);
libopus._free(p_res);
}
};
/**
* Creates a transform stream from this decoder.
* Lost packets should be indicated by an empty buffer. The length
* of the lost packets will be estimated with the length of the last packet.
*
* @param [('Float32'|'Int16')] mode - Type of sample output
* @returns {DecoderStream}
*/
Decoder.prototype.stream = function(mode) {
return new DecoderStream(this, mode);
};
function DecoderStream(decoder, mode) {
Transform.call(this, {});
if (mode == 'Float32') {
this._decode = decoder.decodeFloat32.bind(decoder);
} else if (mode == 'Int16') {
this._decode = decoder.decodeInt16.bind(decoder);
} else {
throw new TypeError('mode cannot be ' + mode);
}
}
util.inherits(DecoderStream, Transform);
DecoderStream.prototype._transform = function(chunk, encoding, callback) {
var result;
try {
var array = this._decode(chunk);
result = Buffer.from(array.buffer, array.byteOffset, array.byteLength);
} catch (err) {
return callback(err);
}
callback(null, result);
};
Decoder.getNumberOfSamples = function(data, sampleRate) {
if (!(data instanceof Buffer)) {
// Invalid input data
throw new TypeError('data must be a Buffer');
}
if (data.length > utils.p_data_len) throw e('data array too large');
// Parse input data
libopus.HEAPU8.set(data, p_data);
var ret = libopus._opus_packet_get_nb_samples(p_data, data.length, sampleRate);
// Handle result
if (ret < 0) {
throw e(utils.stringifyError(ret));
}
return ret;
};
module.exports = Decoder;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(97).Buffer))
/***/ }),
/* 299 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _stream = __webpack_require__(87);
var _reusePool = __webpack_require__(300);
var _reusePool2 = _interopRequireDefault(_reusePool);
var _webworkify = __webpack_require__(274);
var _webworkify2 = _interopRequireDefault(_webworkify);
var _toArraybuffer = __webpack_require__(273);
var _toArraybuffer2 = _interopRequireDefault(_toArraybuffer);
var _decodeWorker = __webpack_require__(301);
var _decodeWorker2 = _interopRequireDefault(_decodeWorker);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var pool = (0, _reusePool2.default)(function () {
return (0, _webworkify2.default)(_decodeWorker2.default);
});
// Prepare first worker
pool.recycle(pool.get());
var DecoderStream = function (_Transform) {
_inherits(DecoderStream, _Transform);
function DecoderStream() {
_classCallCheck(this, DecoderStream);
var _this = _possibleConstructorReturn(this, (DecoderStream.__proto__ || Object.getPrototypeOf(DecoderStream)).call(this, { objectMode: true }));
_this._worker = pool.get();
_this._worker.onmessage = function (msg) {
if (_this._worker.objectURL) {
// The object URL can now be revoked as the worker has been loaded
window.URL.revokeObjectURL(_this._worker.objectURL);
_this._worker.objectURL = null;
}
_this._onMessage(msg.data);
};
return _this;
}
_createClass(DecoderStream, [{
key: '_onMessage',
value: function _onMessage(data) {
if (data.action === 'decoded') {
this.push({
target: data.target,
pcm: new Float32Array(data.buffer),
numberOfChannels: data.numberOfChannels,
position: data.position
});
} else if (data.action === 'reset') {
this._finalCallback();
} else {
throw new Error('unexpected message:' + data);
}
}
}, {
key: '_transform',
value: function _transform(chunk, encoding, callback) {
if (chunk.frame) {
var buffer = (0, _toArraybuffer2.default)(chunk.frame);
this._worker.postMessage({
action: 'decode' + chunk.codec,
buffer: buffer,
target: chunk.target,
position: chunk.position
}, [buffer]);
} else {
this._worker.postMessage({
action: 'decode' + chunk.codec,
buffer: null,
target: chunk.target,
position: chunk.position
});
}
callback();
}
}, {
key: '_final',
value: function _final(callback) {
var _this2 = this;
this._worker.postMessage({ id: this._id++, action: 'reset' });
this._finalCallback = function () {
pool.recycle(_this2._worker);
_this2._worker = null;
callback();
};
}
}]);
return DecoderStream;
}(_stream.Transform);
exports.default = DecoderStream;
/***/ }),
/* 300 */
/***/ (function(module, exports) {
var EMPTY = {};
var NO_OP = function() {};
module.exports = reusePool;
function reusePool(factory, opts) {
return new ReusePool(factory, opts);
}
function ReusePool(factory, opts) {
this._factory = factory;
this._recycled = [];
opts = opts || EMPTY;
this._prepare = opts.prepare || NO_OP;
this._max = opts.max || Infinity;
}
ReusePool.prototype.get = function() {
if (this._recycled.length) {
var obj = this._recycled.pop();
this._prepare(obj);
return obj;
} else {
return this._factory();
}
}
ReusePool.prototype.recycle = function(obj) {
if (this._recycled.length < this._max) {
this._recycled.push(obj);
}
}
/***/ }),
/* 301 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(Buffer) {'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = function (self) {
var opusDecoder, celt7Decoder;
self.addEventListener('message', function (e) {
var data = e.data;
if (data.action === 'reset') {
if (opusDecoder) {
opusDecoder.destroy();
opusDecoder = null;
}
if (celt7Decoder) {
celt7Decoder.destroy();
celt7Decoder = null;
}
self.postMessage({
action: 'reset'
});
} else if (data.action === 'decodeOpus') {
if (!opusDecoder) {
opusDecoder = new _libopus.Decoder({
unsafe: true,
channels: 1, // TODO
rate: MUMBLE_SAMPLE_RATE
});
}
var input = data.buffer ? Buffer.from(data.buffer) : null;
var decoded = opusDecoder.decodeFloat32(input);
self.postMessage({
action: 'decoded',
buffer: decoded.buffer,
target: data.target,
position: data.position
}, [decoded.buffer]);
} else if (data.action === 'decodeCELT_Alpha') {
if (!celt7Decoder) {
celt7Decoder = new _libcelt.Decoder({
unsafe: true,
channels: 1,
frameSize: MUMBLE_SAMPLE_RATE / 100,
rate: MUMBLE_SAMPLE_RATE
});
}
var _input = data.buffer ? Buffer.from(data.buffer) : null;
var _decoded = celt7Decoder.decodeFloat32(_input);
self.postMessage({
action: 'decoded',
buffer: _decoded.buffer,
target: data.target,
position: data.position
}, [_decoded.buffer]);
}
});
};
var _libopus = __webpack_require__(294);
var _libcelt = __webpack_require__(302);
var MUMBLE_SAMPLE_RATE = 48000;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(97).Buffer))
/***/ }),
/* 302 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = {
Encoder: __webpack_require__(303),
Decoder: __webpack_require__(306),
libcelt: __webpack_require__(304).instance
};
/***/ }),
/* 303 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(Buffer) {var libceltjs = __webpack_require__(304);
var utils = __webpack_require__(305);
var util = __webpack_require__(135);
var extend = __webpack_require__(291);
var Transform = __webpack_require__(87).Transform;
var e = function(msg) { return new Error(msg); };
/**
* Encoder for CELT 0.7.1 streams.
*
* @param {object} [opts={}] - Options for the encoder
* @param {number} [opts.rate=48000] - Sampling rate of input signal (32k to 96k Hz)
* @param {number} [opts.frameSize=256] - Samples (per channel) per packet (event, 64 - 512)
* @param {number} [opts.channels=1] - Number of (interleaved?) channels (CELT docs unclear, only tested with 1)
* @param {boolean} [opts.unsafe=false] - Mark this encoder as unsafe.<br>
* Encoders in unsafe mode generally operate faster and use far less memory.<br>
* Warning: {@link #destroy()} MUST be called on an unsafe encoder before
* it is garbage collected. Otherwise it will leak memory.
* @constructor
*/
function Encoder(opts) {
// Allow use without new
if (!(this instanceof Encoder)) return new Encoder(opts);
opts = extend({
rate: 48000,
frameSize: 256,
channels: 1,
unsafe: false
}, opts);
if (opts.channels < 1) {
throw e("channels must be greater than 0");
}
if (opts.rate < 32000 || opts.rate > 96000) {
throw e("rate must be in range 32000 - 96000");
}
if (opts.rate % 2 != 0) {
throw e("rate must be even");
}
this._rate = opts.rate;
this._frameSize = opts.frameSize;
this._channels = opts.channels;
this._application = opts.application;
this._unsafe = opts.unsafe;
if (this._unsafe) {
this._lib = libceltjs.instance // use global instance
} else {
this._lib = libceltjs() // create own instance
}
var p_err = this._lib._malloc(4)
try {
this._mode = this._lib._celt_mode_create(this._rate, this._frameSize, p_err)
if (this._mode === 0) {
throw this._error(p_err)
}
this._enc_p = this._lib._celt_encoder_create(this._mode, this._channels, p_err)
if (this._enc_p === 0) {
this._lib._celt_mode_destroy(this._mode)
throw this._error(p_err)
}
} finally {
this._lib._free(p_err)
}
}
/**
* Destroy this encoder.
* This method should only be called if this encoder is in unsafe mode.
* Any subsequent calls to any encode method will result in undefined behavior.
*/
Encoder.prototype.destroy = function() {
if (this._unsafe) {
this._lib._celt_encoder_destroy(this._enc_p)
this._lib._celt_mode_destroy(this._mode)
}
};
/**
* Handles an error returned by libcelt.
*
* @param {number} p_err - Pointer to the error code
* @returns {Error} A new Error object ready to be thrown
*/
Encoder.prototype._error = function (p_err) {
var err = this._lib.HEAPU32[p_err >> 2]
return new Error(utils.stringifyError(err))
}
/**
* Encodes an array of (interleaved) pcm samples.
*
* @param {Int16Array|Float32Array} pcm - Input samples
* @param {number} compressedSize - Target size of compressed packet
* @returns {Buffer} The encoded output
*/
Encoder.prototype.encode = function(pcm) {
if (pcm.length !== this._frameSize * this._channels) {
throw e('frames must be exactly of size frameSize * channels');
}
var encode;
var p_pcm;
try {
if (pcm instanceof Float32Array) {
p_pcm = this._lib._malloc(pcm.length * 4);
this._lib.HEAPF32.set(pcm, p_pcm >> 2);
encode = this._lib._celt_encode_float.bind(this._lib);
} else if (pcm instanceof Int16Array) {
p_pcm = this._lib._malloc(pcm.length * 2);
this._lib.HEAP16.set(pcm, p_pcm >> 1);
encode = this._lib._celt_encode.bind(this._lib);
} else {
throw new TypeError('pcm must be Int16Array or Float32Array');
}
var p_data = this._lib._malloc(compressedSize);
try {
var len = encode(this._enc_p, p_pcm, 0, p_data, compressedSize);
if (len < 0) {
throw e(utils.stringifyError(len));
}
return Buffer.from(this._lib.HEAPU8.subarray(p_data, p_data + len));
} finally {
this._lib._free(p_data);
}
} finally {
if (p_pcm) {
this._lib._free(p_pcm);
}
}
};
/**
* Creates a transform stream from this encoder.
* Since the stream always receives a Buffer object, the actual sample
* type has to be specified manually.
*
* @param [('Float32'|'Int16')] mode - Type of sample input
* @param {number} packetSize - Target size of compressed packets
* @returns {EncoderStream}
*/
Encoder.prototype.stream = function(mode, packetSize) {
return new EncoderStream(this, mode, packetSize);
};
function EncoderStream(encoder, mode, packetSize) {
Transform.call(this, {});
this._encoder = encoder;
if (mode == 'Float32') {
this._mode = Float32Array;
} else if (mode == 'Int16') {
this._mode = Int16Array;
} else {
throw new TypeError('mode cannot be ' + mode);
}
this._packetSize = packetSize
}
util.inherits(EncoderStream, Transform);
EncoderStream.prototype._transform = function(chunk, encoding, callback) {
chunk = new this._mode(chunk.buffer, chunk.byteOffset,
chunk.byteLength / this._mode.BYTES_PER_ELEMENT);
var result;
try {
result = this._encoder.encode(chunk, this._packetSize);
} catch (err) {
return callback(err);
}
callback(null, result);
};
module.exports = Encoder;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(97).Buffer))
/***/ }),
/* 304 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(process, module) {var Module = function(Module) {
Module = Module || {};
var Module = Module;
var b;b||(b=eval("(function() { try { return Module || {} } catch(e) { return {} } })()"));var g={},l;for(l in b)b.hasOwnProperty(l)&&(g[l]=b[l]);var n=!1,q=!1,r=!1,aa=!1;
if(b.ENVIRONMENT)if("WEB"===b.ENVIRONMENT)n=!0;else if("WORKER"===b.ENVIRONMENT)q=!0;else if("NODE"===b.ENVIRONMENT)r=!0;else if("SHELL"===b.ENVIRONMENT)aa=!0;else throw Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.");else n="object"===typeof window,q="function"===typeof importScripts,r="object"===typeof process&&"function"==="function"&&!n&&!q,aa=!n&&!r&&!q;
if(r){b.print||(b.print=console.log);b.printErr||(b.printErr=console.warn);var ba,ca;b.read=function(a,c){ba||(ba=null);ca||(ca=__webpack_require__(290));a=ca.normalize(a);var d=ba.readFileSync(a);return c?d:d.toString()};b.readBinary=function(a){a=b.read(a,!0);a.buffer||(a=new Uint8Array(a));assert(a.buffer);return a};b.load=function(a){da(read(a))};b.thisProgram||(b.thisProgram=1<process.argv.length?process.argv[1].replace(/\\/g,"/"):"unknown-program");b.arguments=process.argv.slice(2);"undefined"!==
typeof module&&(module.exports=b);process.on("uncaughtException",function(a){if(!(a instanceof u))throw a;});b.inspect=function(){return"[Emscripten Module object]"}}else if(aa)b.print||(b.print=print),"undefined"!=typeof printErr&&(b.printErr=printErr),b.read="undefined"!=typeof read?read:function(){throw"no read() available";},b.readBinary=function(a){if("function"===typeof readbuffer)return new Uint8Array(readbuffer(a));a=read(a,"binary");assert("object"===typeof a);return a},"undefined"!=typeof scriptArgs?
b.arguments=scriptArgs:"undefined"!=typeof arguments&&(b.arguments=arguments),"function"===typeof quit&&(b.quit=function(a){quit(a)}),eval("if (typeof gc === 'function' && gc.toString().indexOf('[native code]') > 0) var gc = undefined");else if(n||q)b.read=function(a){var c=new XMLHttpRequest;c.open("GET",a,!1);c.send(null);return c.responseText},q&&(b.readBinary=function(a){var c=new XMLHttpRequest;c.open("GET",a,!1);c.responseType="arraybuffer";c.send(null);return new Uint8Array(c.response)}),b.readAsync=
function(a,c,d){var e=new XMLHttpRequest;e.open("GET",a,!0);e.responseType="arraybuffer";e.onload=function(){200==e.status||0==e.status&&e.response?c(e.response):d()};e.onerror=d;e.send(null)},"undefined"!=typeof arguments&&(b.arguments=arguments),"undefined"!==typeof console?(b.print||(b.print=function(a){console.log(a)}),b.printErr||(b.printErr=function(a){console.warn(a)})):b.print||(b.print=function(){}),q&&(b.load=importScripts),"undefined"===typeof b.setWindowTitle&&(b.setWindowTitle=function(a){document.title=
a});else throw"Unknown runtime environment. Where are we?";function da(a){eval.call(null,a)}!b.load&&b.read&&(b.load=function(a){da(b.read(a))});b.print||(b.print=function(){});b.printErr||(b.printErr=b.print);b.arguments||(b.arguments=[]);b.thisProgram||(b.thisProgram="./this.program");b.quit||(b.quit=function(a,c){throw c;});b.print=b.print;b.e=b.printErr;b.preRun=[];b.postRun=[];for(l in g)g.hasOwnProperty(l)&&(b[l]=g[l]);
var g=void 0,x={G:function(a){return tempRet0=a},C:function(){return tempRet0},g:function(){return v},c:function(a){v=a},t:function(a){switch(a){case "i1":case "i8":return 1;case "i16":return 2;case "i32":return 4;case "i64":return 8;case "float":return 4;case "double":return 8;default:return"*"===a[a.length-1]?x.h:"i"===a[0]?(a=parseInt(a.substr(1)),assert(0===a%8),a/8):0}},A:function(a){return Math.max(x.t(a),x.h)},H:16,V:function(a,c){"double"===c||"i64"===c?a&7&&(assert(4===(a&7)),a+=4):assert(0===
(a&3));return a},O:function(a,c,d){return d||"i64"!=a&&"double"!=a?a?Math.min(c||(a?x.A(a):0),x.h):Math.min(c,8):8},j:function(a,c,d){return d&&d.length?b["dynCall_"+a].apply(null,[c].concat(d)):b["dynCall_"+a].call(null,c)},d:[],u:function(a){for(var c=0;c<x.d.length;c++)if(!x.d[c])return x.d[c]=a,2*(1+c);throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.";},F:function(a){x.d[(a-2)/2]=null},b:function(a){x.b.l||(x.b.l={});x.b.l[a]||(x.b.l[a]=1,b.e(a))},
k:{},Q:function(a,c){assert(c);x.k[c]||(x.k[c]={});var d=x.k[c];d[a]||(d[a]=1===c.length?function(){return x.j(c,a)}:2===c.length?function(d){return x.j(c,a,[d])}:function(){return x.j(c,a,Array.prototype.slice.call(arguments))});return d[a]},P:function(){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work";},f:function(a){var c=v;v=v+a|0;v=v+15&-16;return c},m:function(a){var c=y;y=y+a|0;y=y+15&-16;return c},r:function(a){var c=
z[A>>2];a=(c+a+15|0)&-16;z[A>>2]=a;if(a=a>=B)ea(),a=!0;return a?(z[A>>2]=c,0):c},p:function(a,c){return Math.ceil(a/(c?c:16))*(c?c:16)},U:function(a,c,d){return d?+(a>>>0)+4294967296*+(c>>>0):+(a>>>0)+4294967296*+(c|0)},o:8,h:4,I:0};b.Runtime=x;x.addFunction=x.u;x.removeFunction=x.F;var E=0;function assert(a,c){a||F("Assertion failed: "+c)}
function fa(a){var c=b["_"+a];if(!c)try{c=eval("_"+a)}catch(d){}assert(c,"Cannot call unknown function "+a+" (perhaps LLVM optimizations or closure removed it?)");return c}var ga,ha;
(function(){function a(a){a=a.toString().match(f).slice(1);return{arguments:a[0],body:a[1],returnValue:a[2]}}function c(){if(!k){k={};for(var c in d)d.hasOwnProperty(c)&&(k[c]=a(d[c]))}}var d={stackSave:function(){x.g()},stackRestore:function(){x.c()},arrayToC:function(a){var c=x.f(a.length);ia(a,c);return c},stringToC:function(a){var c=0;if(null!==a&&void 0!==a&&0!==a){var d=(a.length<<2)+1,c=x.f(d);G(a,c,d)}return c}},e={string:d.stringToC,array:d.arrayToC};ha=function(a,c,d,f,k){a=fa(a);var C=
[],D=0;if(f)for(var t=0;t<f.length;t++){var R=e[d[t]];R?(0===D&&(D=x.g()),C[t]=R(f[t])):C[t]=f[t]}d=a.apply(null,C);"string"===c&&(d=H(d));if(0!==D){if(k&&k.async){EmterpreterAsync.J.push(function(){x.c(D)});return}x.c(D)}return d};var f=/^function\s*[a-zA-Z$_0-9]*\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/,k=null;ga=function(d,e,f){f=f||[];var w=fa(d);d=f.every(function(a){return"number"===a});var K="string"!==e;if(K&&d)return w;var C=f.map(function(a,c){return"$"+c});e="(function("+
C.join(",")+") {";var D=f.length;if(!d){c();e+="var stack = "+k.stackSave.body+";";for(var t=0;t<D;t++){var R=C[t],L=f[t];"number"!==L&&(L=k[L+"ToC"],e+="var "+L.arguments+" = "+R+";",e+=L.body+";",e+=R+"=("+L.returnValue+");")}}f=a(function(){return w}).returnValue;e+="var ret = "+f+"("+C.join(",")+");";K||(f=a(function(){return H}).returnValue,e+="ret = "+f+"(ret);");d||(c(),e+=k.stackRestore.body.replace("()","(stack)")+";");return eval(e+"return ret})")}})();b.ccall=ha;b.cwrap=ga;
function ja(a,c,d){d=d||"i8";"*"===d.charAt(d.length-1)&&(d="i32");switch(d){case "i1":I[a>>0]=c;break;case "i8":I[a>>0]=c;break;case "i16":J[a>>1]=c;break;case "i32":z[a>>2]=c;break;case "i64":tempI64=[c>>>0,(tempDouble=c,1<=+ka(tempDouble)?0<tempDouble?(la(+ma(tempDouble/4294967296),4294967295)|0)>>>0:~~+na((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)];z[a>>2]=tempI64[0];z[a+4>>2]=tempI64[1];break;case "float":M[a>>2]=c;break;case "double":oa[a>>3]=c;break;default:F("invalid type for setValue: "+
d)}}b.setValue=ja;function pa(a,c){c=c||"i8";"*"===c.charAt(c.length-1)&&(c="i32");switch(c){case "i1":return I[a>>0];case "i8":return I[a>>0];case "i16":return J[a>>1];case "i32":return z[a>>2];case "i64":return z[a>>2];case "float":return M[a>>2];case "double":return oa[a>>3];default:F("invalid type for setValue: "+c)}return null}b.getValue=pa;b.ALLOC_NORMAL=0;b.ALLOC_STACK=1;b.ALLOC_STATIC=2;b.ALLOC_DYNAMIC=3;b.ALLOC_NONE=4;
function N(a,c,d,e){var f,k;"number"===typeof a?(f=!0,k=a):(f=!1,k=a.length);var h="string"===typeof c?c:null,m;4==d?m=e:m=["function"===typeof O?O:x.m,x.f,x.m,x.r][void 0===d?2:d](Math.max(k,h?1:c.length));if(f){e=m;assert(0==(m&3));for(a=m+(k&-4);e<a;e+=4)z[e>>2]=0;for(a=m+k;e<a;)I[e++>>0]=0;return m}if("i8"===h)return a.subarray||a.slice?P.set(a,m):P.set(new Uint8Array(a),m),m;e=0;for(var p,w;e<k;)f=a[e],"function"===typeof f&&(f=x.R(f)),d=h||c[e],0===d?e++:("i64"==d&&(d="i32"),ja(m+e,f,d),w!==
d&&(p=x.t(d),w=d),e+=p);return m}b.allocate=N;b.getMemory=function(a){return qa?Q?O(a):x.r(a):x.m(a)};function H(a,c){if(0===c||!a)return"";for(var d=0,e,f=0;;){e=P[a+f>>0];d|=e;if(0==e&&!c)break;f++;if(c&&f==c)break}c||(c=f);e="";if(128>d){for(;0<c;)d=String.fromCharCode.apply(String,P.subarray(a,a+Math.min(c,1024))),e=e?e+d:d,a+=1024,c-=1024;return e}return b.UTF8ToString(a)}b.Pointer_stringify=H;b.AsciiToString=function(a){for(var c="";;){var d=I[a++>>0];if(!d)return c;c+=String.fromCharCode(d)}};
b.stringToAscii=function(a,c){return ra(a,c,!1)};var sa="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0;
function ta(a,c){for(var d=c;a[d];)++d;if(16<d-c&&a.subarray&&sa)return sa.decode(a.subarray(c,d));for(var e,f,k,h,m,p,d="";;){e=a[c++];if(!e)return d;e&128?(f=a[c++]&63,192==(e&224)?d+=String.fromCharCode((e&31)<<6|f):(k=a[c++]&63,224==(e&240)?e=(e&15)<<12|f<<6|k:(h=a[c++]&63,240==(e&248)?e=(e&7)<<18|f<<12|k<<6|h:(m=a[c++]&63,248==(e&252)?e=(e&3)<<24|f<<18|k<<12|h<<6|m:(p=a[c++]&63,e=(e&1)<<30|f<<24|k<<18|h<<12|m<<6|p))),65536>e?d+=String.fromCharCode(e):(e-=65536,d+=String.fromCharCode(55296|e>>
10,56320|e&1023)))):d+=String.fromCharCode(e)}}b.UTF8ArrayToString=ta;b.UTF8ToString=function(a){return ta(P,a)};
function ua(a,c,d,e){if(!(0<e))return 0;var f=d;e=d+e-1;for(var k=0;k<a.length;++k){var h=a.charCodeAt(k);55296<=h&&57343>=h&&(h=65536+((h&1023)<<10)|a.charCodeAt(++k)&1023);if(127>=h){if(d>=e)break;c[d++]=h}else{if(2047>=h){if(d+1>=e)break;c[d++]=192|h>>6}else{if(65535>=h){if(d+2>=e)break;c[d++]=224|h>>12}else{if(2097151>=h){if(d+3>=e)break;c[d++]=240|h>>18}else{if(67108863>=h){if(d+4>=e)break;c[d++]=248|h>>24}else{if(d+5>=e)break;c[d++]=252|h>>30;c[d++]=128|h>>24&63}c[d++]=128|h>>18&63}c[d++]=128|
h>>12&63}c[d++]=128|h>>6&63}c[d++]=128|h&63}}c[d]=0;return d-f}b.stringToUTF8Array=ua;function G(a,c,d){return ua(a,P,c,d)}b.stringToUTF8=G;function va(a){for(var c=0,d=0;d<a.length;++d){var e=a.charCodeAt(d);55296<=e&&57343>=e&&(e=65536+((e&1023)<<10)|a.charCodeAt(++d)&1023);127>=e?++c:c=2047>=e?c+2:65535>=e?c+3:2097151>=e?c+4:67108863>=e?c+5:c+6}return c}b.lengthBytesUTF8=va;"undefined"!==typeof TextDecoder&&new TextDecoder("utf-16le");
function wa(a){return a.replace(/__Z[\w\d_]+/g,function(a){var d;a:{var e=b.___cxa_demangle||b.__cxa_demangle;if(e)try{var f=a.substr(1),k=va(f)+1,h=O(k);G(f,h,k);var m=O(4),p=e(h,0,0,m);if(0===pa(m,"i32")&&p){d=H(p);break a}}catch(w){}finally{h&&xa(h),m&&xa(m),p&&xa(p)}else x.b("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling");d=a}return a===d?a:a+" ["+d+"]"})}
function ya(){var a;a:{a=Error();if(!a.stack){try{throw Error(0);}catch(c){a=c}if(!a.stack){a="(no stack trace available)";break a}}a=a.stack.toString()}b.extraStackTrace&&(a+="\n"+b.extraStackTrace());return wa(a)}b.stackTrace=ya;var buffer,I,P,J,za,z,Aa,M,oa,Ba,y,qa,Ca,v,Da,Ea,A;Ba=y=Ca=v=Da=Ea=A=0;qa=!1;
function ea(){F("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+B+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}var Fa=b.TOTAL_STACK||5242880,B=b.TOTAL_MEMORY||16777216;
B<Fa&&b.e("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+B+"! (TOTAL_STACK="+Fa+")");b.buffer?buffer=b.buffer:buffer=new ArrayBuffer(B);b.HEAP8=I=new Int8Array(buffer);b.HEAP16=J=new Int16Array(buffer);b.HEAP32=z=new Int32Array(buffer);b.HEAPU8=P=new Uint8Array(buffer);b.HEAPU16=za=new Uint16Array(buffer);b.HEAPU32=Aa=new Uint32Array(buffer);b.HEAPF32=M=new Float32Array(buffer);b.HEAPF64=oa=new Float64Array(buffer);z[0]=1668509029;J[1]=25459;
if(115!==P[2]||99!==P[3])throw"Runtime error: expected the system to be little-endian!";b.HEAP=void 0;b.buffer=buffer;b.HEAP8=I;b.HEAP16=J;b.HEAP32=z;b.HEAPU8=P;b.HEAPU16=za;b.HEAPU32=Aa;b.HEAPF32=M;b.HEAPF64=oa;function S(a){for(;0<a.length;){var c=a.shift();if("function"==typeof c)c();else{var d=c.N;"number"===typeof d?void 0===c.i?b.dynCall_v(d):b.dynCall_vi(d,c.i):d(void 0===c.i?null:c.i)}}}var Ga=[],Ha=[],Ia=[],Ja=[],Ka=[],Q=!1;function La(a){Ga.unshift(a)}b.addOnPreRun=La;b.addOnInit=function(a){Ha.unshift(a)};
b.addOnPreMain=function(a){Ia.unshift(a)};b.addOnExit=function(a){Ja.unshift(a)};function Ma(a){Ka.unshift(a)}b.addOnPostRun=Ma;function Na(a,c,d){d=Array(0<d?d:va(a)+1);a=ua(a,d,0,d.length);c&&(d.length=a);return d}b.intArrayFromString=Na;b.intArrayToString=function(a){for(var c=[],d=0;d<a.length;d++){var e=a[d];255<e&&(e&=255);c.push(String.fromCharCode(e))}return c.join("")};
b.writeStringToMemory=function(a,c,d){x.b("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var e,f;d&&(f=c+va(a),e=I[f]);G(a,c,Infinity);d&&(I[f]=e)};function ia(a,c){I.set(a,c)}b.writeArrayToMemory=ia;function ra(a,c,d){for(var e=0;e<a.length;++e)I[c++>>0]=a.charCodeAt(e);d||(I[c>>0]=0)}b.writeAsciiToMemory=ra;Math.imul&&-5===Math.imul(4294967295,5)||(Math.imul=function(a,c){var d=a&65535,e=c&65535;return d*e+((a>>>16)*e+d*(c>>>16)<<16)|0});Math.S=Math.imul;
Math.clz32||(Math.clz32=function(a){a=a>>>0;for(var c=0;32>c;c++)if(a&1<<31-c)return c;return 32});Math.L=Math.clz32;Math.trunc||(Math.trunc=function(a){return 0>a?Math.ceil(a):Math.floor(a)});Math.trunc=Math.trunc;var ka=Math.abs,na=Math.ceil,ma=Math.floor,la=Math.min,T=0,Oa=null,U=null;b.addRunDependency=function(){T++;b.monitorRunDependencies&&b.monitorRunDependencies(T)};
b.removeRunDependency=function(){T--;b.monitorRunDependencies&&b.monitorRunDependencies(T);if(0==T&&(null!==Oa&&(clearInterval(Oa),Oa=null),U)){var a=U;U=null;a()}};b.preloadedImages={};b.preloadedAudios={};Ba=x.o;y=Ba+6336;Ha.push();
N([53,124,11,60,4,76,10,61,170,96,153,61,157,160,5,62,122,115,75,62,23,228,141,62,57,241,185,62,25,97,232,62,115,207,11,63,100,7,35,63,245,13,57,63,33,35,77,63,217,151,94,63,235,211,108,63,64,91,119,63,15,210,125,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,4,0,0,1,20,0,0,8,0,0,0,9,12,0,0,10,16,0,0,11,32,0,0,6,36,0,0,7,44,0,0,95,10,0,0,103,10,0,0,120,10,0,0,133,10,0,0,148,10,0,0,165,10,0,0,189,10,0,0,203,10,0,0,1,0,0,0,171,170,170,170,205,204,204,204,
183,109,219,182,57,142,227,56,163,139,46,186,197,78,236,196,239,238,238,238,241,240,240,240,27,202,107,40,61,207,243,60,167,55,189,233,41,92,143,194,19,218,75,104,53,194,114,79,223,123,239,189,225,131,15,62,139,175,248,138,173,27,76,145,151,111,249,150,25,156,143,193,131,190,160,47,165,79,250,164,207,70,125,103,209,88,31,26,251,250,250,250,29,82,19,140,135,181,111,88,9,238,35,184,243,216,138,160,21,151,12,193,191,239,251,190,193,15,252,192,107,76,164,7,141,18,63,163,119,169,39,227,249,241,227,199,
99,201,47,150,133,56,43,63,175,22,55,97,177,72,25,120,219,67,46,43,253,252,252,252,103,235,208,111,233,71,63,250,211,47,253,210,245,211,79,63,159,91,226,212,161,163,2,95,75,129,90,191,109,177,50,124,87,27,67,211,217,143,253,216,67,172,40,141,101,9,108,218,143,94,25,219,145,192,219,15,187,164,242,97,221,207,253,220,71,217,253,70,201,105,190,86,179,222,47,235,213,120,233,38,127,191,223,239,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,4,0,0,0,5,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,5,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,
0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,5,0,0,0,6,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,6,0,0,0,5,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,6,0,0,0,7,0,0,0,9,0,0,0,9,0,0,0,9,0,0,0,7,0,0,0,6,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,9,0,0,0,10,
0,0,0,10,0,0,0,10,0,0,0,9,0,0,0,6,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,1,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,9,0,0,0,11,0,0,0,10,0,0,0,10,0,0,0,9,0,0,0,9,0,0,0,8,0,0,0,11,0,0,0,10,0,0,0,10,0,0,0,1,0,0,0,0,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,8,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,10,0,0,0,12,0,0,0,12,0,0,0,11,0,0,0,11,0,0,0,17,0,0,0,12,0,0,0,15,0,0,0,15,0,0,0,20,0,0,0,18,0,0,0,10,0,0,0,1,
0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,14,0,0,0,17,0,0,0,18,0,0,0,21,0,0,0,22,0,0,0,27,0,0,0,29,0,0,0,39,0,0,0,37,0,0,0,38,0,0,0,40,0,0,0,35,0,0,0,1,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,13,0,0,0,14,0,0,0,18,0,0,0,20,0,0,0,24,0,0,0,28,0,0,0,32,0,0,0,32,0,0,0,35,0,0,0,38,0,0,0,38,0,0,0,42,0,0,0,50,0,0,0,59,0,0,0,54,0,0,0,31,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,12,0,
0,0,14,0,0,0,20,0,0,0,22,0,0,0,25,0,0,0,28,0,0,0,30,0,0,0,35,0,0,0,42,0,0,0,46,0,0,0,50,0,0,0,55,0,0,0,60,0,0,0,62,0,0,0,62,0,0,0,72,0,0,0,82,0,0,0,62,0,0,0,9,0,0,0,9,0,0,0,9,0,0,0,10,0,0,0,12,0,0,0,13,0,0,0,15,0,0,0,18,0,0,0,22,0,0,0,30,0,0,0,32,0,0,0,35,0,0,0,40,0,0,0,45,0,0,0,55,0,0,0,62,0,0,0,66,0,0,0,70,0,0,0,85,0,0,0,90,0,0,0,92,0,0,0,92,0,0,0,92,0,0,0,102,0,0,0,92,0,0,0,0,0,240,64,113,61,170,191,0,0,0,192,61,10,215,190,123,20,46,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,148,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,7,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,180,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,127,255,127,255,127,196,5,27,1,109,0,60,0,40,0,29,0,24,0,20,0,18,0,16,0,14,0,13,0,255,127,255,127,255,127,255,127,148,4,238,0,95,0,53,0,36,0,27,0,22,0,18,0,16,0,15,0,13,0,0,0,100,0,200,0,44,1,144,1,254,1,118,2,2,3,152,3,56,4,246,4,200,5,184,6,208,7,16,9,140,10,78,12,116,14,48,17,180,20,0,25,20,
30,28,37,224,46,140,60,32,78,100,101,110,111,114,109,97,108,105,115,101,95,98,97,110,100,115,40,41,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,32,102,111,114,32,62,50,32,99,104,97,110,110,101,108,115,0,98,97,110,100,115,46,99,0,79,110,108,121,32,109,111,110,111,32,97,110,100,32,115,116,101,114,101,111,32,115,117,112,112,111,114,116,101,100,0,78,85,76,76,32,112,97,115,115,101,100,32,116,111,32,99,101,108,116,95,101,110,99,111,100,101,114,95,100,101,115,116,114,111,121,0,70,114,101,
101,105,110,103,32,97,110,32,101,110,99,111,100,101,114,32,119,104,105,99,104,32,104,97,115,32,97,108,114,101,97,100,121,32,98,101,101,110,32,102,114,101,101,100,0,84,104,105,115,32,105,115,32,110,111,116,32,97,32,118,97,108,105,100,32,67,69,76,84,32,101,110,99,111,100,101,114,32,115,116,114,117,99,116,117,114,101,0,78,85,76,76,32,112,97,115,115,101,100,32,97,115,32,97,110,32,101,110,99,111,100,101,114,32,115,116,114,117,99,116,117,114,101,0,82,101,102,101,114,101,110,99,105,110,103,32,97,110,32,
101,110,99,111,100,101,114,32,116,104,97,116,32,104,97,115,32,97,108,114,101,97,100,121,32,98,101,101,110,32,102,114,101,101,100,0,78,85,76,76,32,112,97,115,115,101,100,32,97,32,100,101,99,111,100,101,114,32,115,116,114,117,99,116,117,114,101,0,82,101,102,101,114,101,110,99,105,110,103,32,97,32,100,101,99,111,100,101,114,32,116,104,97,116,32,104,97,115,32,97,108,114,101,97,100,121,32,98,101,101,110,32,102,114,101,101,100,0,84,104,105,115,32,105,115,32,110,111,116,32,97,32,118,97,108,105,100,32,67,
69,76,84,32,100,101,99,111,100,101,114,32,115,116,114,117,99,116,117,114,101,0,78,85,76,76,32,112,97,115,115,101,100,32,116,111,32,99,101,108,116,95,100,101,99,111,100,101,114,95,100,101,115,116,114,111,121,0,70,114,101,101,105,110,103,32,97,32,100,101,99,111,100,101,114,32,119,104,105,99,104,32,104,97,115,32,97,108,114,101,97,100,121,32,98,101,101,110,32,102,114,101,101,100,0,117,110,107,110,111,119,110,32,101,114,114,111,114,0,115,117,99,99,101,115,115,0,105,110,118,97,108,105,100,32,97,114,103,
117,109,101,110,116,0,105,110,118,97,108,105,100,32,109,111,100,101,0,105,110,116,101,114,110,97,108,32,101,114,114,111,114,0,99,111,114,114,117,112,116,101,100,32,115,116,114,101,97,109,0,114,101,113,117,101,115,116,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,105,110,118,97,108,105,100,32,115,116,97,116,101,0,109,101,109,111,114,121,32,97,108,108,111,99,97,116,105,111,110,32,102,97,105,108,101,100,0,84,114,121,105,110,103,32,116,111,32,114,101,97,100,32,114,97,119,32,98,105,116,
115,32,98,101,102,111,114,101,32,116,104,101,32,98,101,103,105,110,110,105,110,103,32,111,102,32,116,104,101,32,115,116,114,101,97,109,0,101,110,116,100,101,99,46,99,0,117,105,110,116,32,100,101,99,111,100,101,32,101,114,114,111,114,0,110,111,116,105,102,105,99,97,116,105,111,110,58,32,37,115,10,0,114,97,110,103,101,32,101,110,99,111,100,101,114,32,111,118,101,114,102,108,111,119,10,0,101,110,116,101,110,99,46,99,0,98,121,116,101,32,98,117,102,102,101,114,32,99,111,108,108,105,115,105,111,110,0,73,
110,45,112,108,97,99,101,32,70,70,84,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,107,105,115,115,95,102,102,116,46,99,0,70,97,116,97,108,32,40,105,110,116,101,114,110,97,108,41,32,101,114,114,111,114,32,105,110,32,37,115,44,32,108,105,110,101,32,37,100,58,32,37,115,10,0,85,115,105,110,103,32,97,32,109,111,100,101,32,116,104,97,116,32,104,97,115,32,97,108,114,101,97,100,121,32,98,101,101,110,32,102,114,101,101,100,0,84,104,105,115,32,105,115,32,110,111,116,32,97,32,118,97,108,105,100,32,
67,69,76,84,32,109,111,100,101,0,119,97,114,110,105,110,103,58,32,37,115,10,0,83,97,109,112,108,105,110,103,32,114,97,116,101,32,109,117,115,116,32,98,101,32,98,101,116,119,101,101,110,32,51,50,32,107,72,122,32,97,110,100,32,57,54,32,107,72,122,0,79,110,108,121,32,101,118,101,110,32,102,114,97,109,101,32,115,105,122,101,115,32,102,114,111,109,32,54,52,32,116,111,32,49,48,50,52,32,97,114,101,32,115,117,112,112,111,114,116,101,100,0,78,85,76,76,32,112,97,115,115,101,100,32,116,111,32,99,101,108,116,
95,109,111,100,101,95,100,101,115,116,114,111,121,0,70,114,101,101,105,110,103,32,97,32,109,111,100,101,32,119,104,105,99,104,32,104,97,115,32,97,108,114,101,97,100,121,32,98,101,101,110,32,102,114,101,101,100,0,84,104,105,115,32,105,115,32,110,111,116,32,97,32,118,97,108,105,100,32,67,69,76,84,32,109,111,100,101,32,115,116,114,117,99,116,117,114,101,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,
17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,
78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,
116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,
32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,
111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,
111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,
100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,
101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,
101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,
101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,
114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,
111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,
112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,
97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,
115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0],"i8",4,x.o);var Pa=y;y+=16;var V=0;function W(){V+=4;return z[V-4>>2]}
var Qa={},Ra=N([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,
0,2,0,1,0,3,0,1,0,2,0,1,0],"i8",2);function X(){X.a||(X.a=[]);X.a.push(x.g());return X.a.length-1}function Y(a,c){V=c;try{var d=W(),e=W(),f=W(),k=0;Y.buffer||(Y.a=[null,[],[]],Y.q=function(a,c){var d=Y.a[a];assert(d);0===c||10===c?((1===a?b.print:b.printErr)(ta(d,0)),d.length=0):d.push(c)});for(var h=0;h<f;h++){for(var m=z[e+8*h>>2],p=z[e+(8*h+4)>>2],w=0;w<p;w++)Y.q(d,P[m+w]);k+=p}return k}catch(K){return"undefined"!==typeof FS&&K instanceof FS.n||F(K),-K.s}}
Ja.push(function(){var a=b._fflush;a&&a(0);if(a=Y.q){var c=Y.a;c[1].length&&a(1,10);c[2].length&&a(2,10)}});A=N(1,"i32",2);Ca=v=x.p(y);Da=Ca+Fa;Ea=x.p(Da);z[A>>2]=Ea;qa=!0;b.v={Math:Math,Int8Array:Int8Array,Int16Array:Int16Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Uint16Array:Uint16Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array,NaN:NaN,Infinity:Infinity};
b.w={abort:F,assert:assert,enlargeMemory:function(){ea()},getTotalMemory:function(){return B},abortOnCannotGrowMemory:ea,invoke_ii:function(a,c){try{return b.dynCall_ii(a,c)}catch(d){if("number"!==typeof d&&"longjmp"!==d)throw d;b.setThrew(1,0)}},invoke_iiii:function(a,c,d,e){try{return b.dynCall_iiii(a,c,d,e)}catch(f){if("number"!==typeof f&&"longjmp"!==f)throw f;b.setThrew(1,0)}},___syscall6:function(a,c){V=c;try{var d=Qa.B();FS.close(d);return 0}catch(e){return"undefined"!==typeof FS&&e instanceof
FS.n||F(e),-e.s}},___setErrNo:function(a){b.___errno_location&&(z[b.___errno_location()>>2]=a);return a},_abort:function(){b.abort()},_emscripten_memcpy_big:function(a,c,d){P.set(P.subarray(c,c+d),a);return a},___syscall140:function(a,c){V=c;try{var d=Qa.B();W();var e=W(),f=W(),k=W();FS.T(d,e,k);z[f>>2]=d.position;d.D&&0===e&&0===k&&(d.D=null);return 0}catch(h){return"undefined"!==typeof FS&&h instanceof FS.n||F(h),-h.s}},_llvm_stackrestore:function(a){var c=X.a[a];X.a.splice(a,1);x.c(c)},_llvm_stacksave:X,
___syscall146:Y,DYNAMICTOP_PTR:A,tempDoublePtr:Pa,ABORT:E,STACKTOP:v,STACK_MAX:Da,cttz_i8:Ra};// EMSCRIPTEN_START_ASM
var Z=(function(global,env,buffer) {
"use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.DYNAMICTOP_PTR|0;var j=env.tempDoublePtr|0;var k=env.ABORT|0;var l=env.STACKTOP|0;var m=env.STACK_MAX|0;var n=env.cttz_i8|0;var o=0;var p=0;var q=0;var r=0;var s=global.NaN,t=global.Infinity;var u=0,v=0,w=0,x=0,y=0.0;var z=0;var A=global.Math.floor;var B=global.Math.abs;var C=global.Math.sqrt;var D=global.Math.pow;var E=global.Math.cos;var F=global.Math.sin;var G=global.Math.tan;var H=global.Math.acos;var I=global.Math.asin;var J=global.Math.atan;var K=global.Math.atan2;var L=global.Math.exp;var M=global.Math.log;var N=global.Math.ceil;var O=global.Math.imul;var P=global.Math.min;var Q=global.Math.max;var R=global.Math.clz32;var S=env.abort;var T=env.assert;var U=env.enlargeMemory;var V=env.getTotalMemory;var W=env.abortOnCannotGrowMemory;var X=env.invoke_ii;var Y=env.invoke_iiii;var Z=env.___syscall6;var _=env.___setErrNo;var $=env._abort;var aa=env._emscripten_memcpy_big;var ba=env.___syscall140;var ca=env._llvm_stackrestore;var da=env._llvm_stacksave;var ea=env.___syscall146;var fa=0.0;
// EMSCRIPTEN_START_FUNCS
function ia(a){a=a|0;var b=0;b=l;l=l+a|0;l=l+15&-16;return b|0}function ja(){return l|0}function ka(a){a=a|0;l=a}function la(a,b){a=a|0;b=b|0;l=a;m=b}function ma(a,b){a=a|0;b=b|0;if(!o){o=a;p=b}}function na(a){a=a|0;z=a}function oa(){return z|0}function pa(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0;s=l;l=l+48|0;n=s+40|0;o=s+36|0;p=s+32|0;t=s+28|0;q=s+24|0;r=s+20|0;h=s+16|0;i=s+12|0;j=s+8|0;k=s+4|0;m=s;c[n>>2]=a;c[o>>2]=d;c[p>>2]=e;c[t>>2]=f;c[i>>2]=c[(c[n>>2]|0)+24>>2];c[j>>2]=c[t>>2];c[h>>2]=c[(c[n>>2]|0)+12>>2];c[r>>2]=0;while(1){if((c[r>>2]|0)>=(c[j>>2]|0))break;c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[(c[n>>2]|0)+16>>2]|0))break;g[m>>2]=1.000000013351432e-10;c[k>>2]=b[(c[i>>2]|0)+(c[q>>2]<<1)>>1];while(1){if((c[k>>2]|0)>=(b[(c[i>>2]|0)+((c[q>>2]|0)+1<<1)>>1]|0))break;u=+g[(c[o>>2]|0)+((c[k>>2]|0)+(O(c[r>>2]|0,c[h>>2]|0)|0)<<2)>>2];u=u*+g[(c[o>>2]|0)+((c[k>>2]|0)+(O(c[r>>2]|0,c[h>>2]|0)|0)<<2)>>2];g[m>>2]=+g[m>>2]+u;c[k>>2]=(c[k>>2]|0)+1}u=+C(+(+g[m>>2]));g[(c[p>>2]|0)+((c[q>>2]|0)+(O(c[r>>2]|0,c[(c[n>>2]|0)+16>>2]|0)|0)<<2)>>2]=u;c[q>>2]=(c[q>>2]|0)+1}c[r>>2]=(c[r>>2]|0)+1}l=s;return}function qa(a,d,e,f,h){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0;u=l;l=l+48|0;q=u+44|0;r=u+40|0;s=u+36|0;t=u+32|0;v=u+28|0;i=u+24|0;j=u+20|0;k=u+16|0;m=u+12|0;n=u+8|0;o=u+4|0;p=u;c[q>>2]=a;c[r>>2]=d;c[s>>2]=e;c[t>>2]=f;c[v>>2]=h;c[m>>2]=c[(c[q>>2]|0)+24>>2];c[n>>2]=c[v>>2];c[k>>2]=c[(c[q>>2]|0)+12>>2];c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[n>>2]|0))break;c[i>>2]=0;while(1){if((c[i>>2]|0)>=(c[(c[q>>2]|0)+16>>2]|0))break;g[p>>2]=1.0/(+g[(c[t>>2]|0)+((c[i>>2]|0)+(O(c[j>>2]|0,c[(c[q>>2]|0)+16>>2]|0)|0)<<2)>>2]+1.0e-10);c[o>>2]=b[(c[m>>2]|0)+(c[i>>2]<<1)>>1];while(1){if((c[o>>2]|0)>=(b[(c[m>>2]|0)+((c[i>>2]|0)+1<<1)>>1]|0))break;w=+g[(c[r>>2]|0)+((c[o>>2]|0)+(O(c[j>>2]|0,c[k>>2]|0)|0)<<2)>>2];g[(c[s>>2]|0)+((c[o>>2]|0)+(O(c[j>>2]|0,c[k>>2]|0)|0)<<2)>>2]=w*+g[p>>2];c[o>>2]=(c[o>>2]|0)+1}c[i>>2]=(c[i>>2]|0)+1}c[j>>2]=(c[j>>2]|0)+1}l=u;return}function ra(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;m=l;l=l+32|0;f=m+24|0;g=m+20|0;n=m+16|0;h=m+12|0;i=m+8|0;j=m+4|0;k=m;c[f>>2]=a;c[g>>2]=d;c[n>>2]=e;c[j>>2]=c[(c[f>>2]|0)+24>>2];c[k>>2]=c[n>>2];c[i>>2]=0;while(1){if((c[i>>2]|0)>=(c[k>>2]|0))break;c[h>>2]=0;do{n=(c[g>>2]|0)+(b[(c[j>>2]|0)+(c[h>>2]<<1)>>1]<<2)+((O(c[i>>2]|0,b[(c[(c[f>>2]|0)+24>>2]|0)+((c[(c[f>>2]|0)+16>>2]|0)+1<<1)>>1]|0)|0)<<2)|0;+Hd(n,1.0,(b[(c[j>>2]|0)+((c[h>>2]|0)+1<<1)>>1]|0)-(b[(c[j>>2]|0)+(c[h>>2]<<1)>>1]|0)|0,1);n=(c[h>>2]|0)+1|0;c[h>>2]=n}while((n|0)<(c[(c[f>>2]|0)+16>>2]|0));c[i>>2]=(c[i>>2]|0)+1}l=m;return}function sa(a,d,e,f,h){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0;u=l;l=l+48|0;q=u+44|0;r=u+40|0;s=u+36|0;t=u+32|0;v=u+28|0;i=u+24|0;j=u+20|0;k=u+16|0;m=u+12|0;n=u+8|0;o=u+4|0;p=u;c[q>>2]=a;c[r>>2]=d;c[s>>2]=e;c[t>>2]=f;c[v>>2]=h;c[m>>2]=c[(c[q>>2]|0)+24>>2];c[n>>2]=c[v>>2];c[k>>2]=c[(c[q>>2]|0)+12>>2];if((c[n>>2]|0)>2)ta(2128,2180,200);c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[n>>2]|0))break;c[i>>2]=0;while(1){if((c[i>>2]|0)>=(c[(c[q>>2]|0)+16>>2]|0))break;g[p>>2]=+g[(c[t>>2]|0)+((c[i>>2]|0)+(O(c[j>>2]|0,c[(c[q>>2]|0)+16>>2]|0)|0)<<2)>>2];c[o>>2]=b[(c[m>>2]|0)+(c[i>>2]<<1)>>1];do{w=+g[(c[r>>2]|0)+((c[o>>2]|0)+(O(c[j>>2]|0,c[k>>2]|0)|0)<<2)>>2];g[(c[s>>2]|0)+((c[o>>2]|0)+(O(c[j>>2]|0,c[k>>2]|0)|0)<<2)>>2]=w*+g[p>>2];v=(c[o>>2]|0)+1|0;c[o>>2]=v}while((v|0)<(b[(c[m>>2]|0)+((c[i>>2]|0)+1<<1)>>1]|0));c[i>>2]=(c[i>>2]|0)+1}c[i>>2]=b[(c[m>>2]|0)+(c[(c[q>>2]|0)+16>>2]<<1)>>1];while(1){if((c[i>>2]|0)>=(b[(c[m>>2]|0)+((c[(c[q>>2]|0)+16>>2]|0)+1<<1)>>1]|0))break;g[(c[s>>2]|0)+((c[i>>2]|0)+(O(c[j>>2]|0,c[k>>2]|0)|0)<<2)>>2]=0.0;c[i>>2]=(c[i>>2]|0)+1}c[j>>2]=(c[j>>2]|0)+1}l=u;return}function ta(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=l;l=l+32|0;e=h;g=h+20|0;f=h+16|0;h=h+12|0;c[g>>2]=a;c[f>>2]=b;c[h>>2]=d;d=c[472]|0;a=c[h>>2]|0;b=c[g>>2]|0;c[e>>2]=c[f>>2];c[e+4>>2]=a;c[e+8>>2]=b;ze(d,2985,e)|0;$()}function ua(a,b,d,e,f,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0.0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;H=l;l=l+96|0;G=H+84|0;I=H+80|0;D=H+76|0;k=H+72|0;m=H+68|0;F=H+64|0;J=H+60|0;E=H+56|0;n=H+52|0;o=H+48|0;p=H+44|0;q=H+40|0;r=H+36|0;s=H+32|0;t=H+28|0;u=H+24|0;v=H+20|0;w=H+16|0;x=H+12|0;y=H+8|0;z=H+4|0;B=H;c[I>>2]=a;c[D>>2]=b;c[k>>2]=d;c[m>>2]=e;c[F>>2]=f;c[J>>2]=h;c[E>>2]=i;c[r>>2]=c[J>>2];g[s>>2]=0.0;g[t>>2]=0.0;g[u>>2]=0.0;c[v>>2]=c[(c[I>>2]|0)+20>>2];c[w>>2]=c[(c[I>>2]|0)+12>>2];g[q>>2]=1.0/+(c[v>>2]|0);c[o>>2]=0;while(1){if((c[o>>2]|0)>=(c[r>>2]|0))break;g[x>>2]=1.0;c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[v>>2]|0))break;g[y>>2]=+g[(c[D>>2]|0)+((c[n>>2]|0)+(O(c[o>>2]|0,c[w>>2]|0)|0)<<2)>>2];g[z>>2]=+g[x>>2]*+g[(c[k>>2]|0)+((c[n>>2]|0)+(O(c[o>>2]|0,c[w>>2]|0)|0)<<2)>>2];g[s>>2]=+g[s>>2]+ +g[y>>2]*+g[z>>2];g[t>>2]=+g[t>>2]+ +g[z>>2]*+g[z>>2];g[u>>2]=+g[u>>2]+ +g[y>>2]*+g[y>>2];g[x>>2]=+g[x>>2]-+g[q>>2];c[n>>2]=(c[n>>2]|0)+1}c[o>>2]=(c[o>>2]|0)+1}g[B>>2]=+(c[m>>2]|0)*.04;if(+g[B>>2]<1.0)g[B>>2]=1.0;g[p>>2]=+g[s>>2]/(+g[t>>2]+.1+ +g[u>>2]*.03);if(+g[s>>2]<+g[B>>2]*.5*+C(+(+g[t>>2]*+g[u>>2]+1.0)))g[p>>2]=0.0;J=~~+A(+((+g[p>>2]-.5)*20.0));c[c[F>>2]>>2]=J;g[p>>2]=+(c[c[F>>2]>>2]|0)*.05+.5;if(1.0>+g[c[E>>2]>>2]*+g[p>>2])j=1.0;else j=+g[c[E>>2]>>2]*+g[p>>2];g[c[E>>2]>>2]=j;if(+g[c[E>>2]>>2]>2.0){c[c[F>>2]>>2]=9;g[c[E>>2]>>2]=2.0}a=c[F>>2]|0;if((c[c[F>>2]>>2]|0)<0){c[a>>2]=0;c[G>>2]=0;J=c[G>>2]|0;l=H;return J|0}if((c[a>>2]|0)>15)c[c[F>>2]>>2]=15;c[G>>2]=1;J=c[G>>2]|0;l=H;return J|0}function va(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0;t=l;l=l+64|0;w=t+52|0;r=t+48|0;s=t+44|0;v=t+40|0;u=t+36|0;x=t+32|0;i=t+28|0;j=t+24|0;k=t+20|0;m=t+16|0;n=t+12|0;o=t+8|0;p=t+4|0;q=t;c[w>>2]=a;c[r>>2]=b;c[s>>2]=d;c[v>>2]=e;c[u>>2]=f;c[x>>2]=h;c[o>>2]=c[x>>2];c[p>>2]=c[(c[w>>2]|0)+20>>2];c[k>>2]=c[(c[w>>2]|0)+12>>2];g[m>>2]=+(c[v>>2]|0)*.05+.5;g[n>>2]=+g[m>>2]/+(c[p>>2]|0);if(c[u>>2]|0)g[m>>2]=-+g[m>>2];else g[n>>2]=-+g[n>>2];c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[o>>2]|0))break;g[q>>2]=+g[m>>2];c[i>>2]=0;while(1){if((c[i>>2]|0)>=(c[p>>2]|0))break;y=+g[q>>2]*+g[(c[s>>2]|0)+((c[i>>2]|0)+(O(c[j>>2]|0,c[k>>2]|0)|0)<<2)>>2];x=(c[r>>2]|0)+((c[i>>2]|0)+(O(c[j>>2]|0,c[k>>2]|0)|0)<<2)|0;g[x>>2]=+g[x>>2]+y;g[q>>2]=+g[q>>2]+ +g[n>>2];c[i>>2]=(c[i>>2]|0)+1}c[j>>2]=(c[j>>2]|0)+1}l=t;return}function wa(a,d,e,f,h){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0.0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0;E=l;l=l+80|0;y=E+76|0;z=E+72|0;B=E+68|0;D=E+64|0;F=E+60|0;j=E+56|0;k=E+52|0;m=E+48|0;n=E+44|0;A=E+40|0;o=E+36|0;p=E+32|0;q=E+28|0;r=E+24|0;s=E+20|0;t=E+16|0;u=E+12|0;v=E+8|0;w=E+4|0;x=E;c[y>>2]=a;c[z>>2]=d;c[B>>2]=e;c[D>>2]=f;c[F>>2]=h;c[n>>2]=0;g[A>>2]=1.0000000036274937e-15;c[o>>2]=c[F>>2];c[p>>2]=c[(c[y>>2]|0)+24>>2];c[m>>2]=c[(c[y>>2]|0)+12>>2];c[k>>2]=0;while(1){if((c[k>>2]|0)>=(c[o>>2]|0))break;c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[(c[y>>2]|0)+16>>2]|0))break;c[s>>2]=0;g[t>>2]=1.0000000036274937e-15;g[u>>2]=1.0000000036274937e-15;c[v>>2]=(c[z>>2]|0)+(b[(c[p>>2]|0)+(c[j>>2]<<1)>>1]<<2)+((O(c[k>>2]|0,c[m>>2]|0)|0)<<2);c[r>>2]=(b[(c[p>>2]|0)+((c[j>>2]|0)+1<<1)>>1]|0)-(b[(c[p>>2]|0)+(c[j>>2]<<1)>>1]|0);c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[r>>2]|0))break;i=+g[(c[v>>2]|0)+(c[q>>2]<<2)>>2];if((+g[(c[v>>2]|0)+(c[q>>2]<<2)>>2]<0.0?-i:i)>+g[t>>2]){i=+g[(c[v>>2]|0)+(c[q>>2]<<2)>>2];g[t>>2]=+g[(c[v>>2]|0)+(c[q>>2]<<2)>>2]<0.0?-i:i;c[s>>2]=c[q>>2]}c[q>>2]=(c[q>>2]|0)+1}g[u>>2]=1.0-+g[t>>2]*+g[t>>2];if((c[s>>2]|0)<((c[r>>2]|0)-1|0))g[u>>2]=+g[u>>2]-+g[(c[v>>2]|0)+((c[s>>2]|0)+1<<2)>>2]*+g[(c[v>>2]|0)+((c[s>>2]|0)+1<<2)>>2];if((c[s>>2]|0)<((c[r>>2]|0)-2|0))g[u>>2]=+g[u>>2]-+g[(c[v>>2]|0)+((c[s>>2]|0)+2<<2)>>2]*+g[(c[v>>2]|0)+((c[s>>2]|0)+2<<2)>>2];if((c[s>>2]|0)>0)g[u>>2]=+g[u>>2]-+g[(c[v>>2]|0)+((c[s>>2]|0)-1<<2)>>2]*+g[(c[v>>2]|0)+((c[s>>2]|0)-1<<2)>>2];if((c[s>>2]|0)>1)g[u>>2]=+g[u>>2]-+g[(c[v>>2]|0)+((c[s>>2]|0)-2<<2)>>2]*+g[(c[v>>2]|0)+((c[s>>2]|0)-2<<2)>>2];g[u>>2]=+g[u>>2]>1.0000000036274937e-15?+g[u>>2]:1.0000000036274937e-15;if((c[r>>2]|0)>7){g[x>>2]=+C(+(+g[u>>2]));g[x>>2]=.02>+g[x>>2]?.02:+g[x>>2];g[w>>2]=+g[t>>2]/+g[x>>2];g[A>>2]=+g[A>>2]+ +g[w>>2];c[n>>2]=(c[n>>2]|0)+1}c[j>>2]=(c[j>>2]|0)+1}c[k>>2]=(c[k>>2]|0)+1}if((c[n>>2]|0)>0)g[A>>2]=+g[A>>2]/+(c[n>>2]|0);g[A>>2]=+g[A>>2]*.5+ +g[c[B>>2]>>2]*.5;i=+g[A>>2];if(c[c[D>>2]>>2]|0){c[c[D>>2]>>2]=i<3.0&1;i=+g[A>>2];F=c[B>>2]|0;g[F>>2]=i;F=c[D>>2]|0;F=c[F>>2]|0;l=E;return F|0}else{c[c[D>>2]>>2]=i<1.8&1;i=+g[A>>2];F=c[B>>2]|0;g[F>>2]=i;F=c[D>>2]|0;F=c[F>>2]|0;l=E;return F|0}return 0}function xa(a,d,f,h,i,j,k,m,n){a=a|0;d=d|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;M=l;l=l+112|0;L=M+96|0;o=M+92|0;p=M+84|0;N=M+80|0;q=M+76|0;r=M+72|0;s=M+68|0;t=M+64|0;u=M+60|0;v=M+56|0;w=M+52|0;x=M+48|0;y=M+44|0;z=M+40|0;A=M+36|0;B=M+32|0;D=M+28|0;E=M+24|0;F=M+20|0;G=M+16|0;H=M+12|0;I=M+8|0;J=M+4|0;K=M;c[L>>2]=a;c[o>>2]=d;c[M+88>>2]=f;c[p>>2]=h;c[N>>2]=i;c[q>>2]=j;c[r>>2]=k;c[s>>2]=m;c[t>>2]=n;c[y>>2]=c[(c[L>>2]|0)+24>>2];if(c[N>>2]|0)a=c[(c[L>>2]|0)+60>>2]|0;else a=1;c[A>>2]=a;n=e[(c[y>>2]|0)+((c[(c[L>>2]|0)+16>>2]|0)+1<<1)>>1]|0;c[B>>2]=da()|0;N=l;l=l+((1*(n<<2)|0)+15&-16)|0;c[z>>2]=N;c[x>>2]=0;c[u>>2]=0;while(1){if((c[u>>2]|0)>=(c[(c[L>>2]|0)+16>>2]|0))break;c[E>>2]=(b[(c[y>>2]|0)+((c[u>>2]|0)+1<<1)>>1]|0)-(b[(c[y>>2]|0)+(c[u>>2]<<1)>>1]|0);c[H>>2]=c[(c[L>>2]|0)+40>>2];a=c[t>>2]|0;if(c[s>>2]|0)c[D>>2]=td(a,4)|0;else c[D>>2]=ld(a,4)|0;if(c[u>>2]|0)c[x>>2]=(c[x>>2]|0)-(c[D>>2]|0);c[w>>2]=(c[r>>2]<<4)-(c[D>>2]|0)-1;N=(c[(c[L>>2]|0)+16>>2]|0)-(c[u>>2]|0)|0;c[I>>2]=N;c[I>>2]=(c[I>>2]|0)>3?3:N;c[I>>2]=(c[x>>2]|0)/(c[I>>2]|0)|0;c[F>>2]=ya(c[L>>2]|0,c[(c[H>>2]|0)+(c[u>>2]<<2)>>2]|0,c[E>>2]|0,(c[(c[p>>2]|0)+(c[u>>2]<<2)>>2]|0)+(c[I>>2]|0)|0)|0;c[J>>2]=za(c[(c[H>>2]|0)+(c[u>>2]<<2)>>2]|0,c[E>>2]|0,c[F>>2]|0)|0;c[w>>2]=(c[w>>2]|0)-(c[J>>2]|0);while(1){if(!((c[w>>2]|0)<0?(c[F>>2]|0)>0:0))break;c[w>>2]=(c[w>>2]|0)+(c[J>>2]|0);c[F>>2]=(c[F>>2]|0)+-1;c[J>>2]=za(c[(c[H>>2]|0)+(c[u>>2]<<2)>>2]|0,c[E>>2]|0,c[F>>2]|0)|0;c[w>>2]=(c[w>>2]|0)-(c[J>>2]|0)}c[x>>2]=(c[x>>2]|0)+((c[(c[p>>2]|0)+(c[u>>2]<<2)>>2]|0)+(c[D>>2]|0));g[G>>2]=+C(+(+((b[(c[y>>2]|0)+((c[u>>2]|0)+1<<1)>>1]|0)-(b[(c[y>>2]|0)+(c[u>>2]<<1)>>1]|0)|0)));do if((c[F>>2]|0)>0){c[K>>2]=c[q>>2]|0?c[A>>2]|0:0;a=(c[o>>2]|0)+(b[(c[y>>2]|0)+(c[u>>2]<<1)>>1]<<2)|0;d=(b[(c[y>>2]|0)+((c[u>>2]|0)+1<<1)>>1]|0)-(b[(c[y>>2]|0)+(c[u>>2]<<1)>>1]|0)|0;f=c[F>>2]|0;h=c[K>>2]|0;i=c[t>>2]|0;if(c[s>>2]|0){Cd(a,d,f,h,i);break}else{Gd(a,d,f,h,i);break}}else Id(c[L>>2]|0,(b[(c[y>>2]|0)+((c[u>>2]|0)+1<<1)>>1]|0)-(b[(c[y>>2]|0)+(c[u>>2]<<1)>>1]|0)|0,c[z>>2]|0,(c[o>>2]|0)+(b[(c[y>>2]|0)+(c[u>>2]<<1)>>1]<<2)|0,b[(c[y>>2]|0)+(c[u>>2]<<1)>>1]|0,c[A>>2]|0);while(0);c[v>>2]=b[(c[y>>2]|0)+(c[u>>2]<<1)>>1];while(1){if((c[v>>2]|0)>=(b[(c[y>>2]|0)+((c[u>>2]|0)+1<<1)>>1]|0))break;g[(c[z>>2]|0)+(c[v>>2]<<2)>>2]=+g[G>>2]*+g[(c[o>>2]|0)+(c[v>>2]<<2)>>2];c[v>>2]=(c[v>>2]|0)+1}c[u>>2]=(c[u>>2]|0)+1}ca(c[B>>2]|0);l=M;return}function ya(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+48|0;j=o+32|0;k=o+24|0;m=o+16|0;n=o+12|0;g=o+8|0;h=o+4|0;i=o;c[o+28>>2]=a;c[k>>2]=d;c[o+20>>2]=e;c[m>>2]=f;c[g>>2]=0;c[h>>2]=39;c[n>>2]=0;while(1){if((c[n>>2]|0)>=6)break;c[i>>2]=(c[g>>2]|0)+(c[h>>2]|0)>>1;a=c[i>>2]|0;if((b[(c[k>>2]|0)+(c[i>>2]<<1)>>1]|0)>=(c[m>>2]|0))c[h>>2]=a;else c[g>>2]=a;c[n>>2]=(c[n>>2]|0)+1}if(((c[m>>2]|0)-(b[(c[k>>2]|0)+(c[g>>2]<<1)>>1]|0)|0)<=((b[(c[k>>2]|0)+(c[h>>2]<<1)>>1]|0)-(c[m>>2]|0)|0)){c[j>>2]=c[g>>2];n=c[j>>2]|0;l=o;return n|0}else{c[j>>2]=c[h>>2];n=c[j>>2]|0;l=o;return n|0}return 0}function za(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=l;l=l+16|0;g=h+8|0;f=h;c[g>>2]=a;c[h+4>>2]=d;c[f>>2]=e;l=h;return b[(c[g>>2]|0)+(c[f>>2]<<1)>>1]|0}function Aa(a,d,f,h,i,j,k,m){a=a|0;d=d|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,L=0,M=0,N=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ea=0,fa=0;ea=l;l=l+160|0;aa=ea+156|0;ba=ea+152|0;n=ea+148|0;o=ea+144|0;fa=ea+140|0;p=ea+136|0;q=ea+132|0;r=ea+128|0;s=ea+124|0;t=ea+120|0;u=ea+116|0;v=ea+112|0;w=ea+108|0;x=ea+104|0;y=ea+100|0;z=ea+96|0;B=ea+92|0;D=ea+88|0;E=ea+84|0;F=ea+80|0;G=ea+76|0;H=ea+72|0;I=ea+68|0;J=ea+64|0;L=ea+60|0;M=ea+56|0;N=ea+52|0;P=ea+48|0;Q=ea+44|0;R=ea+40|0;S=ea+36|0;T=ea+32|0;U=ea+28|0;V=ea+24|0;W=ea+20|0;X=ea+16|0;Y=ea+12|0;Z=ea+8|0;_=ea+4|0;$=ea;c[aa>>2]=a;c[ba>>2]=d;c[n>>2]=f;c[o>>2]=h;c[fa>>2]=i;c[p>>2]=j;c[q>>2]=k;c[r>>2]=m;c[w>>2]=c[(c[aa>>2]|0)+24>>2];if(c[fa>>2]|0)a=c[(c[aa>>2]|0)+60>>2]|0;else a=1;c[y>>2]=a;m=e[(c[w>>2]|0)+((c[(c[aa>>2]|0)+16>>2]|0)+1<<1)>>1]|0;c[D>>2]=da()|0;fa=l;l=l+((1*(m<<2)|0)+15&-16)|0;c[x>>2]=fa;c[v>>2]=0;c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[(c[aa>>2]|0)+16>>2]|0))break;c[X>>2]=(c[ba>>2]|0)+(b[(c[w>>2]|0)+(c[s>>2]<<1)>>1]<<2);c[Y>>2]=(c[X>>2]|0)+(b[(c[w>>2]|0)+((c[(c[aa>>2]|0)+16>>2]|0)+1<<1)>>1]<<2);c[I>>2]=c[(c[aa>>2]|0)+40>>2];c[M>>2]=(b[(c[w>>2]|0)+((c[s>>2]|0)+1<<1)>>1]|0)-(b[(c[w>>2]|0)+(c[s>>2]<<1)>>1]|0);c[E>>2]=td(c[r>>2]|0,4)|0;if(c[s>>2]|0)c[v>>2]=(c[v>>2]|0)-(c[E>>2]|0);c[u>>2]=(c[q>>2]<<4)-(c[E>>2]|0)-1;fa=(c[(c[aa>>2]|0)+16>>2]|0)-(c[s>>2]|0)|0;c[N>>2]=fa;c[N>>2]=(c[N>>2]|0)>3?3:fa;c[N>>2]=(c[v>>2]|0)/(c[N>>2]|0)|0;if(((c[u>>2]|0)+1|0)<((c[(c[o>>2]|0)+(c[s>>2]<<2)>>2]|0)+(c[N>>2]|0)|0))a=(c[u>>2]|0)+1|0;else a=(c[(c[o>>2]|0)+(c[s>>2]<<2)>>2]|0)+(c[N>>2]|0)|0;c[J>>2]=a;c[J>>2]=(c[J>>2]|0)<0?0:a;m=c[J>>2]|0;fa=(c[M>>2]|0)-1<<1;fa=m-(O(fa,40-(hb(c[M>>2]|0,4)|0)|0)|0)|0;c[L>>2]=(fa|0)/((c[M>>2]|0)-1<<5|0)|0;if((c[L>>2]|0)>((c[J>>2]>>4)-1|0))c[L>>2]=(c[J>>2]>>4)-1;if((c[L>>2]|0)<0)c[L>>2]=0;if((c[L>>2]|0)>14)c[L>>2]=14;Ba(c[aa>>2]|0,c[X>>2]|0,c[Y>>2]|0,c[n>>2]|0,(c[L>>2]|0)==0&1,c[s>>2]|0,1);g[z>>2]=+Hd(c[X>>2]|0,1.0,c[M>>2]|0,1);g[B>>2]=+Hd(c[Y>>2]|0,1.0,c[M>>2]|0,1);c[S>>2]=~~+A(+(+K(+(+g[B>>2]),+(+g[z>>2]))*10430.38208+.5));c[W>>2]=hb((1<<c[L>>2])+1|0,4)|0;if(!(c[L>>2]|0))c[S>>2]=0;else{c[Z>>2]=14-(c[L>>2]|0);c[S>>2]=(c[S>>2]|0)+(1<<c[Z>>2]>>1)>>c[Z>>2];dc(c[r>>2]|0,c[S>>2]|0,(1<<c[L>>2])+1|0);c[S>>2]=c[S>>2]<<c[Z>>2]}do if(c[S>>2]|0)if((c[S>>2]|0)==16384){c[Q>>2]=0;c[R>>2]=32767;c[V>>2]=1e4;break}else{c[Q>>2]=(Ca(c[S>>2]&65535)|0)<<16>>16;c[R>>2]=(Ca(16384-(c[S>>2]|0)&65535)|0)<<16>>16;m=(c[M>>2]|0)-1|0;fa=hb(c[R>>2]|0,6)|0;c[V>>2]=(O(m,fa-(hb(c[Q>>2]|0,6)|0)|0)|0)>>2;break}else{c[Q>>2]=32767;c[R>>2]=0;c[V>>2]=-1e4}while(0);g[H>>2]=+C(+(+((b[(c[w>>2]|0)+((c[s>>2]|0)+1<<1)>>1]|0)-(b[(c[w>>2]|0)+(c[s>>2]<<1)>>1]|0)|0)));c[T>>2]=((c[J>>2]|0)-((c[W>>2]|0)/2|0)-(c[V>>2]|0)|0)/2|0;if((c[T>>2]|0)>((c[J>>2]|0)-(c[W>>2]|0)|0))c[T>>2]=(c[J>>2]|0)-(c[W>>2]|0);if((c[T>>2]|0)<0)c[T>>2]=0;c[U>>2]=(c[J>>2]|0)-(c[W>>2]|0)-(c[T>>2]|0);c[F>>2]=ya(c[aa>>2]|0,c[(c[I>>2]|0)+(c[s>>2]<<2)>>2]|0,c[M>>2]|0,c[T>>2]|0)|0;c[G>>2]=ya(c[aa>>2]|0,c[(c[I>>2]|0)+(c[s>>2]<<2)>>2]|0,c[M>>2]|0,c[U>>2]|0)|0;fa=za(c[(c[I>>2]|0)+(c[s>>2]<<2)>>2]|0,c[M>>2]|0,c[F>>2]|0)|0;fa=fa+(za(c[(c[I>>2]|0)+(c[s>>2]<<2)>>2]|0,c[M>>2]|0,c[G>>2]|0)|0)|0;c[P>>2]=fa+(c[W>>2]|0);c[u>>2]=(c[u>>2]|0)-(c[P>>2]|0);while(1){if((c[u>>2]|0)>=0)break;if(!((c[F>>2]|0)>0?1:(c[G>>2]|0)>0))break;c[u>>2]=(c[u>>2]|0)+(c[P>>2]|0);if((c[F>>2]|0)>(c[G>>2]|0)){c[F>>2]=(c[F>>2]|0)+-1;fa=za(c[(c[I>>2]|0)+(c[s>>2]<<2)>>2]|0,c[M>>2]|0,c[F>>2]|0)|0;fa=fa+(za(c[(c[I>>2]|0)+(c[s>>2]<<2)>>2]|0,c[M>>2]|0,c[G>>2]|0)|0)|0;c[P>>2]=fa+(c[W>>2]|0)}else{c[G>>2]=(c[G>>2]|0)+-1;fa=za(c[(c[I>>2]|0)+(c[s>>2]<<2)>>2]|0,c[M>>2]|0,c[F>>2]|0)|0;fa=fa+(za(c[(c[I>>2]|0)+(c[s>>2]<<2)>>2]|0,c[M>>2]|0,c[G>>2]|0)|0)|0;c[P>>2]=fa+(c[W>>2]|0)}c[u>>2]=(c[u>>2]|0)-(c[P>>2]|0)}if((c[F>>2]|0)>0){c[_>>2]=c[p>>2]|0?c[y>>2]|0:0;Cd(c[X>>2]|0,c[M>>2]|0,c[F>>2]|0,c[_>>2]|0,c[r>>2]|0)}else Id(c[aa>>2]|0,(b[(c[w>>2]|0)+((c[s>>2]|0)+1<<1)>>1]|0)-(b[(c[w>>2]|0)+(c[s>>2]<<1)>>1]|0)|0,c[x>>2]|0,c[X>>2]|0,b[(c[w>>2]|0)+(c[s>>2]<<1)>>1]|0,c[y>>2]|0);a:do if((c[G>>2]|0)>0){c[$>>2]=c[p>>2]|0?c[y>>2]|0:0;Cd(c[Y>>2]|0,c[M>>2]|0,c[G>>2]|0,c[$>>2]|0,c[r>>2]|0)}else{c[t>>2]=0;while(1){if((c[t>>2]|0)>=(c[M>>2]|0))break a;g[(c[Y>>2]|0)+(c[t>>2]<<2)>>2]=0.0;c[t>>2]=(c[t>>2]|0)+1}}while(0);c[v>>2]=(c[v>>2]|0)+((c[(c[o>>2]|0)+(c[s>>2]<<2)>>2]|0)+(c[E>>2]|0));g[z>>2]=+(c[Q>>2]|0)*.000030517578125;g[B>>2]=+(c[R>>2]|0)*.000030517578125;c[t>>2]=0;while(1){if((c[t>>2]|0)>=(c[M>>2]|0))break;g[(c[x>>2]|0)+((b[(c[w>>2]|0)+(c[s>>2]<<1)>>1]|0)+(c[t>>2]|0)<<2)>>2]=+g[H>>2]*+g[(c[X>>2]|0)+(c[t>>2]<<2)>>2];c[t>>2]=(c[t>>2]|0)+1}c[t>>2]=0;while(1){if((c[t>>2]|0)>=(c[M>>2]|0))break;g[(c[X>>2]|0)+(c[t>>2]<<2)>>2]=+g[(c[X>>2]|0)+(c[t>>2]<<2)>>2]*+g[z>>2];c[t>>2]=(c[t>>2]|0)+1}c[t>>2]=0;while(1){if((c[t>>2]|0)>=(c[M>>2]|0))break;g[(c[Y>>2]|0)+(c[t>>2]<<2)>>2]=+g[(c[Y>>2]|0)+(c[t>>2]<<2)>>2]*+g[B>>2];c[t>>2]=(c[t>>2]|0)+1}Ba(c[aa>>2]|0,c[X>>2]|0,c[Y>>2]|0,c[n>>2]|0,0,c[s>>2]|0,-1);+Hd(c[X>>2]|0,1.0,c[M>>2]|0,1);+Hd(c[Y>>2]|0,1.0,c[M>>2]|0,1);c[s>>2]=(c[s>>2]|0)+1}ca(c[D>>2]|0);l=ea;return}function Ba(a,d,e,f,h,i,j){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0;A=l;l=l+80|0;x=A+64|0;y=A+60|0;z=A+56|0;k=A+52|0;B=A+48|0;D=A+44|0;m=A+40|0;n=A+36|0;o=A+32|0;p=A+28|0;q=A+24|0;r=A+20|0;s=A+16|0;t=A+12|0;u=A+8|0;v=A+4|0;w=A;c[x>>2]=a;c[y>>2]=d;c[z>>2]=e;c[k>>2]=f;c[B>>2]=h;c[D>>2]=i;c[m>>2]=j;c[n>>2]=c[D>>2];c[o>>2]=c[(c[x>>2]|0)+24>>2];if(!(c[B>>2]|0)){g[q>>2]=.7071099877357483;g[r>>2]=+(c[m>>2]|0)*.7071099877357483}else{g[s>>2]=+g[(c[k>>2]|0)+(c[n>>2]<<2)>>2];g[t>>2]=+g[(c[k>>2]|0)+((c[n>>2]|0)+(c[(c[x>>2]|0)+16>>2]|0)<<2)>>2];g[u>>2]=+C(+(+g[s>>2]*+g[s>>2]+1.0000000036274937e-15+ +g[t>>2]*+g[t>>2]))+1.0000000036274937e-15;g[q>>2]=+g[s>>2]/+g[u>>2];g[r>>2]=+(c[m>>2]|0)*(+g[t>>2]/+g[u>>2])}c[p>>2]=0;while(1){if((c[p>>2]|0)>=((b[(c[o>>2]|0)+((c[n>>2]|0)+1<<1)>>1]|0)-(b[(c[o>>2]|0)+(c[n>>2]<<1)>>1]|0)|0))break;g[w>>2]=+g[(c[y>>2]|0)+(c[p>>2]<<2)>>2];g[v>>2]=+g[(c[z>>2]|0)+(c[p>>2]<<2)>>2];g[(c[y>>2]|0)+(c[p>>2]<<2)>>2]=+g[q>>2]*+g[w>>2]+ +g[r>>2]*+g[v>>2];g[(c[z>>2]|0)+(c[p>>2]<<2)>>2]=+g[q>>2]*+g[v>>2]-+g[r>>2]*+g[w>>2];c[p>>2]=(c[p>>2]|0)+1}l=A;return}function Ca(a){a=a|0;var d=0,e=0,f=0,g=0;e=l;l=l+16|0;g=e+6|0;f=e;d=e+4|0;b[g>>1]=a;a=4096+(O(b[g>>1]|0,b[g>>1]|0)|0)>>13;c[f>>2]=a;c[f>>2]=(c[f>>2]|0)>32767?32767:a;b[d>>1]=c[f>>2];a=32767-(b[d>>1]|0)+(16384+(O(b[d>>1]|0,((16384+(O(b[d>>1]|0,(8277+(16384+(O(-626,b[d>>1]|0)|0)>>15)&65535)<<16>>16)|0)>>15)+-7651&65535)<<16>>16)|0)>>15)&65535;b[d>>1]=a;b[d>>1]=(b[d>>1]|0)>32766?32766:a;l=e;return 1+(b[d>>1]|0)&65535|0}function Da(a,d,f,h,i,j,k,m){a=a|0;d=d|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0;aa=l;l=l+160|0;_=aa+156|0;$=aa+152|0;n=aa+148|0;o=aa+144|0;ba=aa+140|0;p=aa+136|0;q=aa+132|0;r=aa+128|0;s=aa+124|0;t=aa+120|0;u=aa+116|0;v=aa+112|0;w=aa+108|0;x=aa+104|0;y=aa+100|0;z=aa+96|0;A=aa+92|0;B=aa+88|0;D=aa+84|0;E=aa+80|0;F=aa+76|0;G=aa+72|0;H=aa+68|0;I=aa+64|0;J=aa+60|0;K=aa+56|0;L=aa+52|0;M=aa+48|0;N=aa+44|0;P=aa+40|0;Q=aa+36|0;R=aa+32|0;S=aa+28|0;T=aa+24|0;U=aa+20|0;V=aa+16|0;W=aa+12|0;X=aa+8|0;Y=aa+4|0;Z=aa;c[_>>2]=a;c[$>>2]=d;c[n>>2]=f;c[o>>2]=h;c[ba>>2]=i;c[p>>2]=j;c[q>>2]=k;c[r>>2]=m;c[w>>2]=c[(c[_>>2]|0)+24>>2];if(c[ba>>2]|0)a=c[(c[_>>2]|0)+60>>2]|0;else a=1;c[y>>2]=a;m=e[(c[w>>2]|0)+((c[(c[_>>2]|0)+16>>2]|0)+1<<1)>>1]|0;c[B>>2]=da()|0;ba=l;l=l+((1*(m<<2)|0)+15&-16)|0;c[x>>2]=ba;c[v>>2]=0;c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[(c[_>>2]|0)+16>>2]|0))break;c[V>>2]=(c[$>>2]|0)+(b[(c[w>>2]|0)+(c[s>>2]<<1)>>1]<<2);c[W>>2]=(c[V>>2]|0)+(b[(c[w>>2]|0)+((c[(c[_>>2]|0)+16>>2]|0)+1<<1)>>1]<<2);c[H>>2]=c[(c[_>>2]|0)+40>>2];c[K>>2]=(b[(c[w>>2]|0)+((c[s>>2]|0)+1<<1)>>1]|0)-(b[(c[w>>2]|0)+(c[s>>2]<<1)>>1]|0);c[D>>2]=ld(c[r>>2]|0,4)|0;if(c[s>>2]|0)c[v>>2]=(c[v>>2]|0)-(c[D>>2]|0);c[u>>2]=(c[q>>2]<<4)-(c[D>>2]|0)-1;ba=(c[(c[_>>2]|0)+16>>2]|0)-(c[s>>2]|0)|0;c[L>>2]=ba;c[L>>2]=(c[L>>2]|0)>3?3:ba;c[L>>2]=(c[v>>2]|0)/(c[L>>2]|0)|0;if(((c[u>>2]|0)+1|0)<((c[(c[o>>2]|0)+(c[s>>2]<<2)>>2]|0)+(c[L>>2]|0)|0))a=(c[u>>2]|0)+1|0;else a=(c[(c[o>>2]|0)+(c[s>>2]<<2)>>2]|0)+(c[L>>2]|0)|0;c[I>>2]=a;c[I>>2]=(c[I>>2]|0)<0?0:a;m=c[I>>2]|0;ba=(c[K>>2]|0)-1<<1;ba=m-(O(ba,40-(hb(c[K>>2]|0,4)|0)|0)|0)|0;c[J>>2]=(ba|0)/((c[K>>2]|0)-1<<5|0)|0;if((c[J>>2]|0)>((c[I>>2]>>4)-1|0))c[J>>2]=(c[I>>2]>>4)-1;if((c[J>>2]|0)>14)c[J>>2]=14;if((c[J>>2]|0)<0)c[J>>2]=0;c[U>>2]=hb((1<<c[J>>2])+1|0,4)|0;if(!(c[J>>2]|0))c[Q>>2]=0;else{c[X>>2]=14-(c[J>>2]|0);c[Q>>2]=Xb(c[r>>2]|0,(1<<c[J>>2])+1|0)|0;c[Q>>2]=c[Q>>2]<<c[X>>2]}do if(c[Q>>2]|0)if((c[Q>>2]|0)==16384){c[N>>2]=0;c[P>>2]=32767;c[T>>2]=1e4;break}else{c[N>>2]=(Ca(c[Q>>2]&65535)|0)<<16>>16;c[P>>2]=(Ca(16384-(c[Q>>2]|0)&65535)|0)<<16>>16;m=(c[K>>2]|0)-1|0;ba=hb(c[P>>2]|0,6)|0;c[T>>2]=(O(m,ba-(hb(c[N>>2]|0,6)|0)|0)|0)>>2;break}else{c[N>>2]=32767;c[P>>2]=0;c[T>>2]=-1e4}while(0);g[G>>2]=+C(+(+((b[(c[w>>2]|0)+((c[s>>2]|0)+1<<1)>>1]|0)-(b[(c[w>>2]|0)+(c[s>>2]<<1)>>1]|0)|0)));c[R>>2]=((c[I>>2]|0)-((c[U>>2]|0)/2|0)-(c[T>>2]|0)|0)/2|0;if((c[R>>2]|0)>((c[I>>2]|0)-(c[U>>2]|0)|0))c[R>>2]=(c[I>>2]|0)-(c[U>>2]|0);if((c[R>>2]|0)<0)c[R>>2]=0;c[S>>2]=(c[I>>2]|0)-(c[U>>2]|0)-(c[R>>2]|0);c[E>>2]=ya(c[_>>2]|0,c[(c[H>>2]|0)+(c[s>>2]<<2)>>2]|0,c[K>>2]|0,c[R>>2]|0)|0;c[F>>2]=ya(c[_>>2]|0,c[(c[H>>2]|0)+(c[s>>2]<<2)>>2]|0,c[K>>2]|0,c[S>>2]|0)|0;ba=za(c[(c[H>>2]|0)+(c[s>>2]<<2)>>2]|0,c[K>>2]|0,c[E>>2]|0)|0;ba=ba+(za(c[(c[H>>2]|0)+(c[s>>2]<<2)>>2]|0,c[K>>2]|0,c[F>>2]|0)|0)|0;c[M>>2]=ba+(c[U>>2]|0);c[u>>2]=(c[u>>2]|0)-(c[M>>2]|0);while(1){if((c[u>>2]|0)>=0)break;if(!((c[E>>2]|0)>0?1:(c[F>>2]|0)>0))break;c[u>>2]=(c[u>>2]|0)+(c[M>>2]|0);if((c[E>>2]|0)>(c[F>>2]|0)){c[E>>2]=(c[E>>2]|0)+-1;ba=za(c[(c[H>>2]|0)+(c[s>>2]<<2)>>2]|0,c[K>>2]|0,c[E>>2]|0)|0;ba=ba+(za(c[(c[H>>2]|0)+(c[s>>2]<<2)>>2]|0,c[K>>2]|0,c[F>>2]|0)|0)|0;c[M>>2]=ba+(c[U>>2]|0)}else{c[F>>2]=(c[F>>2]|0)+-1;ba=za(c[(c[H>>2]|0)+(c[s>>2]<<2)>>2]|0,c[K>>2]|0,c[E>>2]|0)|0;ba=ba+(za(c[(c[H>>2]|0)+(c[s>>2]<<2)>>2]|0,c[K>>2]|0,c[F>>2]|0)|0)|0;c[M>>2]=ba+(c[U>>2]|0)}c[u>>2]=(c[u>>2]|0)-(c[M>>2]|0)}if((c[E>>2]|0)>0){c[Y>>2]=c[p>>2]|0?c[y>>2]|0:0;Gd(c[V>>2]|0,c[K>>2]|0,c[E>>2]|0,c[Y>>2]|0,c[r>>2]|0)}else Id(c[_>>2]|0,(b[(c[w>>2]|0)+((c[s>>2]|0)+1<<1)>>1]|0)-(b[(c[w>>2]|0)+(c[s>>2]<<1)>>1]|0)|0,c[x>>2]|0,c[V>>2]|0,b[(c[w>>2]|0)+(c[s>>2]<<1)>>1]|0,c[y>>2]|0);a:do if((c[F>>2]|0)>0){c[Z>>2]=c[p>>2]|0?c[y>>2]|0:0;Gd(c[W>>2]|0,c[K>>2]|0,c[F>>2]|0,c[Z>>2]|0,c[r>>2]|0)}else{c[t>>2]=0;while(1){if((c[t>>2]|0)>=(c[K>>2]|0))break a;g[(c[W>>2]|0)+(c[t>>2]<<2)>>2]=0.0;c[t>>2]=(c[t>>2]|0)+1}}while(0);c[v>>2]=(c[v>>2]|0)+((c[(c[o>>2]|0)+(c[s>>2]<<2)>>2]|0)+(c[D>>2]|0));g[z>>2]=+(c[N>>2]|0)*.000030517578125;g[A>>2]=+(c[P>>2]|0)*.000030517578125;c[t>>2]=0;while(1){if((c[t>>2]|0)>=(c[K>>2]|0))break;g[(c[x>>2]|0)+((b[(c[w>>2]|0)+(c[s>>2]<<1)>>1]|0)+(c[t>>2]|0)<<2)>>2]=+g[G>>2]*+g[(c[V>>2]|0)+(c[t>>2]<<2)>>2];c[t>>2]=(c[t>>2]|0)+1}c[t>>2]=0;while(1){if((c[t>>2]|0)>=(c[K>>2]|0))break;g[(c[V>>2]|0)+(c[t>>2]<<2)>>2]=+g[(c[V>>2]|0)+(c[t>>2]<<2)>>2]*+g[z>>2];c[t>>2]=(c[t>>2]|0)+1}c[t>>2]=0;while(1){if((c[t>>2]|0)>=(c[K>>2]|0))break;g[(c[W>>2]|0)+(c[t>>2]<<2)>>2]=+g[(c[W>>2]|0)+(c[t>>2]<<2)>>2]*+g[A>>2];c[t>>2]=(c[t>>2]|0)+1}Ba(c[_>>2]|0,c[V>>2]|0,c[W>>2]|0,c[n>>2]|0,0,c[s>>2]|0,-1);+Hd(c[V>>2]|0,1.0,c[K>>2]|0,1);+Hd(c[W>>2]|0,1.0,c[K>>2]|0,1);c[s>>2]=(c[s>>2]|0)+1}ca(c[B>>2]|0);l=aa;return}function Ea(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;r=l;l=l+48|0;k=r+40|0;s=r+36|0;m=r+32|0;n=r+28|0;o=r+24|0;p=r+20|0;q=r+16|0;f=r+12|0;h=r+8|0;i=r+4|0;j=r;c[s>>2]=a;c[m>>2]=b;c[n>>2]=d;g[f>>2]=+g[c[m>>2]>>2];c[h>>2]=c[s>>2];d=+g[c[m>>2]>>2]==0.0;c[o>>2]=0;if(d){while(1){if((c[o>>2]|0)>=(c[n>>2]|0))break;g[(c[h>>2]|0)+(c[o>>2]<<2)>>2]=0.0;c[o>>2]=(c[o>>2]|0)+1}g[k>>2]=0.0;e=+g[k>>2];l=r;return +e}while(1){if((c[o>>2]|0)>=(c[n>>2]|0))break;g[i>>2]=-+g[(c[m>>2]|0)+((c[o>>2]|0)+1<<2)>>2];c[p>>2]=0;while(1){e=+g[i>>2];if((c[p>>2]|0)>=(c[o>>2]|0))break;g[i>>2]=e-+g[(c[h>>2]|0)+(c[p>>2]<<2)>>2]*+g[(c[m>>2]|0)+((c[o>>2]|0)-(c[p>>2]|0)<<2)>>2];c[p>>2]=(c[p>>2]|0)+1}g[q>>2]=e/(+g[f>>2]+1.0e-15);g[(c[h>>2]|0)+(c[o>>2]<<2)>>2]=+g[q>>2];c[p>>2]=0;while(1){if((c[p>>2]|0)>=(c[o>>2]>>1|0))break;g[j>>2]=+g[(c[h>>2]|0)+(c[p>>2]<<2)>>2];g[(c[h>>2]|0)+(c[p>>2]<<2)>>2]=+g[(c[h>>2]|0)+(c[p>>2]<<2)>>2]+ +g[q>>2]*+g[(c[h>>2]|0)+((c[o>>2]|0)-1-(c[p>>2]|0)<<2)>>2];g[(c[h>>2]|0)+((c[o>>2]|0)-1-(c[p>>2]|0)<<2)>>2]=+g[(c[h>>2]|0)+((c[o>>2]|0)-1-(c[p>>2]|0)<<2)>>2]+ +g[q>>2]*+g[j>>2];c[p>>2]=(c[p>>2]|0)+1}if(c[o>>2]&1|0)g[(c[h>>2]|0)+(c[p>>2]<<2)>>2]=+g[(c[h>>2]|0)+(c[p>>2]<<2)>>2]+ +g[(c[h>>2]|0)+(c[p>>2]<<2)>>2]*+g[q>>2];g[f>>2]=+g[f>>2]-+g[q>>2]*+g[q>>2]*+g[f>>2];if(+g[f>>2]<+g[c[m>>2]>>2]*1.0e-05)break;c[o>>2]=(c[o>>2]|0)+1}g[k>>2]=+g[f>>2];e=+g[k>>2];l=r;return +e}function Fa(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+48|0;o=s+32|0;p=s+28|0;q=s+24|0;r=s+20|0;i=s+16|0;j=s+12|0;k=s+8|0;m=s+4|0;n=s;c[o>>2]=a;c[p>>2]=b;c[q>>2]=d;c[r>>2]=e;c[i>>2]=f;c[j>>2]=h;c[k>>2]=0;while(1){if((c[k>>2]|0)>=(c[r>>2]|0))break;g[n>>2]=+g[(c[o>>2]|0)+(c[k>>2]<<2)>>2];c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[i>>2]|0))break;g[n>>2]=+g[n>>2]+ +g[(c[p>>2]|0)+(c[m>>2]<<2)>>2]*+g[(c[j>>2]|0)+(c[m>>2]<<2)>>2];c[m>>2]=(c[m>>2]|0)+1}c[m>>2]=(c[i>>2]|0)-1;while(1){if((c[m>>2]|0)<1)break;g[(c[j>>2]|0)+(c[m>>2]<<2)>>2]=+g[(c[j>>2]|0)+((c[m>>2]|0)-1<<2)>>2];c[m>>2]=(c[m>>2]|0)+-1}g[c[j>>2]>>2]=+g[(c[o>>2]|0)+(c[k>>2]<<2)>>2];g[(c[q>>2]|0)+(c[k>>2]<<2)>>2]=+g[n>>2];c[k>>2]=(c[k>>2]|0)+1}l=s;return}function Ga(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+48|0;o=s+32|0;p=s+28|0;q=s+24|0;r=s+20|0;i=s+16|0;j=s+12|0;k=s+8|0;m=s+4|0;n=s;c[o>>2]=a;c[p>>2]=b;c[q>>2]=d;c[r>>2]=e;c[i>>2]=f;c[j>>2]=h;c[k>>2]=0;while(1){if((c[k>>2]|0)>=(c[r>>2]|0))break;g[n>>2]=+g[(c[o>>2]|0)+(c[k>>2]<<2)>>2];c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[i>>2]|0))break;g[n>>2]=+g[n>>2]-+g[(c[p>>2]|0)+(c[m>>2]<<2)>>2]*+g[(c[j>>2]|0)+(c[m>>2]<<2)>>2];c[m>>2]=(c[m>>2]|0)+1}c[m>>2]=(c[i>>2]|0)-1;while(1){if((c[m>>2]|0)<1)break;g[(c[j>>2]|0)+(c[m>>2]<<2)>>2]=+g[(c[j>>2]|0)+((c[m>>2]|0)-1<<2)>>2];c[m>>2]=(c[m>>2]|0)+-1}g[c[j>>2]>>2]=+g[n>>2];g[(c[q>>2]|0)+(c[k>>2]<<2)>>2]=+g[n>>2];c[k>>2]=(c[k>>2]|0)+1}l=s;return}function Ha(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+48|0;o=s+32|0;p=s+28|0;q=s+24|0;r=s+20|0;i=s+16|0;j=s+12|0;k=s+8|0;m=s+4|0;n=s;c[o>>2]=a;c[p>>2]=b;c[q>>2]=d;c[r>>2]=e;c[i>>2]=f;c[j>>2]=h;h=c[j>>2]|0;c[n>>2]=da()|0;a=l;l=l+((1*(h<<2)|0)+15&-16)|0;c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[j>>2]|0))break;g[a+(c[m>>2]<<2)>>2]=+g[(c[o>>2]|0)+(c[m>>2]<<2)>>2];c[m>>2]=(c[m>>2]|0)+1}c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[r>>2]|0))break;h=a+(c[m>>2]<<2)|0;g[h>>2]=+g[h>>2]*(+g[(c[q>>2]|0)+(c[m>>2]<<2)>>2]*1.0);h=a+((c[j>>2]|0)-(c[m>>2]|0)-1<<2)|0;g[h>>2]=+g[h>>2]*(+g[(c[q>>2]|0)+(c[m>>2]<<2)>>2]*1.0);c[m>>2]=(c[m>>2]|0)+1}while(1){if((c[i>>2]|0)<0)break;c[m>>2]=c[i>>2];g[k>>2]=0.0;while(1){if((c[m>>2]|0)>=(c[j>>2]|0))break;g[k>>2]=+g[k>>2]+ +g[(c[o>>2]|0)+(c[m>>2]<<2)>>2]*+g[(c[o>>2]|0)+((c[m>>2]|0)-(c[i>>2]|0)<<2)>>2];c[m>>2]=(c[m>>2]|0)+1}g[(c[p>>2]|0)+(c[i>>2]<<2)>>2]=+g[k>>2];c[i>>2]=(c[i>>2]|0)+-1}r=c[p>>2]|0;g[r>>2]=+g[r>>2]+10.0;ca(c[n>>2]|0);l=s;return}function Ia(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+32|0;e=n+24|0;f=n+20|0;h=n+16|0;i=n+12|0;j=n+8|0;k=n+4|0;m=n;c[f>>2]=a;c[h>>2]=b;c[i>>2]=d;if(Jc(c[f>>2]|0)|0){if(c[i>>2]|0)c[c[i>>2]>>2]=-2;c[e>>2]=0;m=c[e>>2]|0;l=n;return m|0}if((c[h>>2]|0)<0|(c[h>>2]|0)>2){Ja(2188);if(c[i>>2]|0)c[c[i>>2]>>2]=-1;c[e>>2]=0;m=c[e>>2]|0;l=n;return m|0}c[j>>2]=c[(c[f>>2]|0)+12>>2];c[k>>2]=c[h>>2];c[m>>2]=Ka(104)|0;if(!(c[m>>2]|0)){if(c[i>>2]|0)c[c[i>>2]>>2]=-7;c[e>>2]=0;m=c[e>>2]|0;l=n;return m|0}c[c[m>>2]>>2]=1413825356;c[(c[m>>2]|0)+4>>2]=c[f>>2];c[(c[m>>2]|0)+8>>2]=c[j>>2];c[(c[m>>2]|0)+12>>2]=c[j>>2];c[(c[m>>2]|0)+16>>2]=c[(c[f>>2]|0)+8>>2];c[(c[m>>2]|0)+20>>2]=c[h>>2];c[(c[m>>2]|0)+72>>2]=0;c[(c[m>>2]|0)+24>>2]=1;c[(c[m>>2]|0)+28>>2]=1;c[(c[m>>2]|0)+32>>2]=1;c[(c[m>>2]|0)+36>>2]=0;c[(c[m>>2]|0)+40>>2]=1;g[(c[m>>2]|0)+44>>2]=1.0;c[(c[m>>2]|0)+48>>2]=1;j=Ka((O(c[(c[m>>2]|0)+16>>2]|0,c[k>>2]|0)|0)<<2)|0;c[(c[m>>2]|0)+84>>2]=j;j=Ka((O(1024+(c[(c[m>>2]|0)+16>>2]|0)|0,c[k>>2]|0)|0)<<2)|0;c[(c[m>>2]|0)+88>>2]=j;j=Ka(2056)|0;c[(c[m>>2]|0)+92>>2]=j;j=Ka((O(c[k>>2]|0,c[(c[f>>2]|0)+16>>2]|0)|0)<<2)|0;c[(c[m>>2]|0)+100>>2]=j;j=Ka(c[k>>2]<<2)|0;c[(c[m>>2]|0)+76>>2]=j;k=Ka(c[k>>2]<<2)|0;c[(c[m>>2]|0)+80>>2]=k;if((((c[(c[m>>2]|0)+84>>2]|0?c[(c[m>>2]|0)+88>>2]|0:0)?c[(c[m>>2]|0)+100>>2]|0:0)?c[(c[m>>2]|0)+76>>2]|0:0)?c[(c[m>>2]|0)+80>>2]|0:0){if(c[i>>2]|0)c[c[i>>2]>>2]=0;c[c[m>>2]>>2]=1279477076;c[e>>2]=c[m>>2];m=c[e>>2]|0;l=n;return m|0}La(c[m>>2]|0);if(c[i>>2]|0)c[c[i>>2]>>2]=-7;c[e>>2]=0;m=c[e>>2]|0;l=n;return m|0}function Ja(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;d=b;e=b+4|0;c[e>>2]=a;a=c[472]|0;c[d>>2]=c[e>>2];ze(a,3099,d)|0;l=b;return}function Ka(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=Md(c[d>>2]|0,1)|0;l=b;return a|0}function La(a){a=a|0;var b=0,d=0;d=l;l=l+16|0;b=d;c[b>>2]=a;if(!(c[b>>2]|0)){Ja(2219);l=d;return}if((c[c[b>>2]>>2]|0)==1275086080){Ja(2255);l=d;return}if((c[c[b>>2]>>2]|0)!=1279477076?(c[c[b>>2]>>2]|0)!=1413825356:0){Ja(2303);l=d;return}Jc(c[(c[b>>2]|0)+4>>2]|0)|0;Ma(c[(c[b>>2]|0)+84>>2]|0);Ma(c[(c[b>>2]|0)+88>>2]|0);Ma(c[(c[b>>2]|0)+92>>2]|0);Ma(c[(c[b>>2]|0)+100>>2]|0);Ma(c[(c[b>>2]|0)+76>>2]|0);Ma(c[(c[b>>2]|0)+80>>2]|0);c[c[b>>2]>>2]=1275086080;Ma(c[b>>2]|0);l=d;return}function Ma(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;Ld(c[d>>2]|0);l=b;return}function Na(a,d,e,f,h){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0.0;$=l;l=l+240|0;Y=$+236|0;Z=$+232|0;o=$+228|0;_=$+224|0;i=$+220|0;L=$+216|0;I=$+212|0;s=$+208|0;M=$+204|0;t=$+200|0;u=$+196|0;N=$+192|0;v=$+188|0;J=$+184|0;K=$+180|0;B=$+176|0;D=$+160|0;P=$+128|0;C=$+120|0;Q=$+116|0;R=$+112|0;S=$+108|0;T=$+104|0;U=$+100|0;V=$+96|0;W=$+92|0;q=$+88|0;X=$+84|0;j=$+80|0;k=$+76|0;m=$+72|0;n=$+68|0;p=$+64|0;w=$+32|0;x=$+28|0;y=$+24|0;z=$+20|0;A=$+16|0;E=$+12|0;F=$+8|0;G=$+4|0;H=$;c[Z>>2]=a;c[o>>2]=d;c[_>>2]=e;c[i>>2]=f;c[L>>2]=h;c[K>>2]=1;c[C>>2]=0;c[Q>>2]=0;c[T>>2]=c[(c[Z>>2]|0)+20>>2];c[U>>2]=0;c[V>>2]=0;c[W>>2]=0;if(Oa(c[Z>>2]|0)|0){c[Y>>2]=-6;_=c[Y>>2]|0;l=$;return _|0}if(Jc(c[(c[Z>>2]|0)+4>>2]|0)|0){c[Y>>2]=-2;_=c[Y>>2]|0;l=$;return _|0}if((c[L>>2]|0)<0|(c[o>>2]|0)==0){c[Y>>2]=-1;_=c[Y>>2]|0;l=$;return _|0}De(c[i>>2]|0,0,c[L>>2]|0)|0;Zb(D,c[i>>2]|0,c[L>>2]|0);nd(P,D);c[M>>2]=c[(c[Z>>2]|0)+12>>2];c[u>>2]=(c[M>>2]|0)-(c[(c[Z>>2]|0)+16>>2]|0)>>1;r=O(c[T>>2]<<1,c[M>>2]|0)|0;r=r-(O(c[T>>2]<<1,c[u>>2]|0)|0)|0;c[X>>2]=da()|0;d=l;l=l+((1*(r<<2)|0)+15&-16)|0;r=(O(c[T>>2]|0,c[(c[Z>>2]|0)+16>>2]|0)|0)<<2;Ge(d|0,c[(c[Z>>2]|0)+84>>2]|0,r+0|0)|0;c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[T>>2]|0))break;c[j>>2]=(c[o>>2]|0)+(c[s>>2]<<2);r=d+((O(c[T>>2]|0,c[(c[Z>>2]|0)+16>>2]|0)|0)<<2)|0;c[k>>2]=r+(c[s>>2]<<2);c[I>>2]=0;while(1){if((c[I>>2]|0)>=(c[M>>2]|0))break;g[m>>2]=+g[c[j>>2]>>2]*32768.0;g[c[k>>2]>>2]=+g[m>>2]-+g[(c[(c[Z>>2]|0)+76>>2]|0)+(c[s>>2]<<2)>>2]*.800000011920929;g[(c[(c[Z>>2]|0)+76>>2]|0)+(c[s>>2]<<2)>>2]=+g[c[j>>2]>>2]*32768.0;c[k>>2]=(c[k>>2]|0)+(c[T>>2]<<2);c[j>>2]=(c[j>>2]|0)+(c[T>>2]<<2);c[I>>2]=(c[I>>2]|0)+1}c[s>>2]=(c[s>>2]|0)+1}o=d+((O(c[T>>2]|0,(c[M>>2]<<1)-(c[u>>2]<<1)-(c[(c[Z>>2]|0)+16>>2]|0)|0)|0)<<2)|0;r=(O(c[T>>2]|0,c[(c[Z>>2]|0)+16>>2]|0)|0)<<2;Ge(c[(c[Z>>2]|0)+84>>2]|0,o|0,r+0|0)|0;c[R>>2]=-1;c[S>>2]=0;c[Q>>2]=0;if((c[(c[(c[Z>>2]|0)+4>>2]|0)+60>>2]|0)>1?Pa(d,(c[M>>2]|0)+(c[(c[Z>>2]|0)+16>>2]|0)|0,c[T>>2]|0,R,S)|0:0){a:do if(c[S>>2]|0){c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[T>>2]|0))break;c[I>>2]=0;while(1){if((c[I>>2]|0)>=16)break;r=O(c[T>>2]|0,(c[R>>2]|0)+(c[I>>2]|0)-16|0)|0;r=d+(r+(c[s>>2]|0)<<2)|0;g[r>>2]=+g[r>>2]/(+g[8+(c[I>>2]<<2)>>2]*+((1<<c[S>>2])-1|0)+1.0);c[I>>2]=(c[I>>2]|0)+1}c[s>>2]=(c[s>>2]|0)+1}g[n>>2]=1.0/+(1<<c[S>>2]|0);c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[T>>2]|0))break a;c[I>>2]=c[R>>2];while(1){if((c[I>>2]|0)>=((c[M>>2]|0)+(c[(c[Z>>2]|0)+16>>2]|0)|0))break;r=O(c[T>>2]|0,c[I>>2]|0)|0;r=d+(r+(c[s>>2]|0)<<2)|0;g[r>>2]=+g[r>>2]*+g[n>>2];c[I>>2]=(c[I>>2]|0)+1}c[s>>2]=(c[s>>2]|0)+1}}while(0);c[Q>>2]=1;c[K>>2]=1}n=(O(c[T>>2]|0,c[M>>2]|0)|0)<<2;o=l;l=l+((1*n|0)+15&-16)|0;n=(O(c[(c[(c[Z>>2]|0)+4>>2]|0)+16>>2]|0,c[T>>2]|0)|0)<<2;r=l;l=l+((1*n|0)+15&-16)|0;n=(O(c[(c[(c[Z>>2]|0)+4>>2]|0)+16>>2]|0,c[T>>2]|0)|0)<<2;e=l;l=l+((1*n|0)+15&-16)|0;Qa(c[(c[Z>>2]|0)+4>>2]|0,c[Q>>2]|0,d,o,c[T>>2]|0);n=O((c[L>>2]|0)-5<<3,c[(c[(c[Z>>2]|0)+4>>2]|0)+4>>2]|0)|0;c[q>>2]=((n>>>0)/((O(c[T>>2]|0,c[M>>2]|0)|0)>>>0)|0)>>>10;if((c[(c[Z>>2]|0)+24>>2]|0?((c[M>>2]|0)<=512?(c[(c[Z>>2]|0)+28>>2]|0)!=0:0):0)?!(c[Q>>2]|0?1:(c[(c[Z>>2]|0)+32>>2]|0)<1024):0)a=(c[q>>2]|0)<50;else a=0;c[N>>2]=a&1;if(c[N>>2]|0){m=(c[M>>2]<<1)-(c[u>>2]<<1)>>1;c[p>>2]=da()|0;n=l;l=l+((1*(m<<2)|0)+15&-16)|0;Sc(d,n,(c[M>>2]<<1)-(c[u>>2]<<1)|0,c[M>>2]|0,c[T>>2]|0,(c[Z>>2]|0)+96|0,(c[(c[Z>>2]|0)+92>>2]|0)+2048|0);Tc(c[(c[Z>>2]|0)+4>>2]|0,n,c[(c[Z>>2]|0)+92>>2]|0,(c[M>>2]<<1)-(c[u>>2]<<1)|0,1024-((c[M>>2]<<1)-(c[u>>2]<<1))|0,v,(c[Z>>2]|0)+96|0);ca(c[p>>2]|0)}p=(O(c[T>>2]|0,c[M>>2]|0)|0)<<2;m=l;l=l+((1*p|0)+15&-16)|0;p=(O(c[T>>2]|0,c[M>>2]|0)|0)<<2;n=l;l=l+((1*p|0)+15&-16)|0;if(c[N>>2]|0){p=(c[(c[Z>>2]|0)+88>>2]|0)+((O(c[v>>2]|0,c[T>>2]|0)|0)<<2)|0;Qa(c[(c[Z>>2]|0)+4>>2]|0,0,p,n,c[T>>2]|0);c[N>>2]=ua(c[(c[Z>>2]|0)+4>>2]|0,o,n,c[q>>2]|0,W,c[T>>2]|0,(c[Z>>2]|0)+52|0)|0}if(c[N>>2]|0)va(c[(c[Z>>2]|0)+4>>2]|0,o,n,c[W>>2]|0,1,c[T>>2]|0);pa(c[(c[Z>>2]|0)+4>>2]|0,o,r,c[T>>2]|0);c[I>>2]=0;while(1){if((c[I>>2]|0)>=(O(c[(c[(c[Z>>2]|0)+4>>2]|0)+16>>2]|0,c[T>>2]|0)|0))break;aa=+Ra(+g[r+(c[I>>2]<<2)>>2]);g[e+(c[I>>2]<<2)>>2]=aa;c[I>>2]=(c[I>>2]|0)+1}qa(c[(c[Z>>2]|0)+4>>2]|0,o,m,r,c[T>>2]|0);if((c[Q>>2]|0)==0?(wa(c[(c[Z>>2]|0)+4>>2]|0,m,(c[Z>>2]|0)+44|0,(c[Z>>2]|0)+48|0,c[T>>2]|0)|0)==0:0)c[K>>2]=0;if(!(c[(c[Z>>2]|0)+36>>2]|0))if(!(c[N>>2]|0)?c[(c[Z>>2]|0)+40>>2]|0:0)a=(c[L>>2]|0)>(c[(c[(c[Z>>2]|0)+4>>2]|0)+16>>2]|0);else a=0;else a=1;c[C>>2]=a&1;if(!(c[Q>>2]|0)?!(Uc(e,c[(c[Z>>2]|0)+100>>2]|0,c[(c[(c[Z>>2]|0)+4>>2]|0)+16>>2]|0)|0):0){a=0;d=c[Z>>2]|0}else{a=1;d=c[Z>>2]|0}c[d+40>>2]=a;c[t>>2]=b[(c[(c[(c[Z>>2]|0)+4>>2]|0)+24>>2]|0)+(c[(c[(c[Z>>2]|0)+4>>2]|0)+16>>2]<<1)>>1];if(!((c[Q>>2]|0)==0|(c[S>>2]|0)!=0)){c[w>>2]=c[18];c[w+4>>2]=c[19];c[w+8>>2]=c[20];c[w+12>>2]=c[21];c[w+16>>2]=c[22];c[w+20>>2]=c[23];c[w+24>>2]=c[24];c[w+28>>2]=c[25];c[s>>2]=0;while(1){q=(c[s>>2]|0)<(c[T>>2]|0);c[x>>2]=0;if(!q)break;do{g[y>>2]=0.0;c[I>>2]=(c[x>>2]|0)+(O(c[s>>2]|0,c[M>>2]|0)|0);while(1){q=O(c[s>>2]|0,c[M>>2]|0)|0;if((c[I>>2]|0)>=(q+(c[t>>2]|0)|0))break;aa=+g[m+(c[I>>2]<<2)>>2];g[y>>2]=+g[y>>2]+(+g[m+(c[I>>2]<<2)>>2]<0.0?-aa:aa);c[I>>2]=(c[I>>2]|0)+(c[(c[(c[Z>>2]|0)+4>>2]|0)+60>>2]|0)}aa=+g[y>>2];q=c[x>>2]|0;c[x>>2]=q+1;q=w+(q<<2)|0;g[q>>2]=+g[q>>2]+aa}while((c[x>>2]|0)<(c[(c[(c[Z>>2]|0)+4>>2]|0)+60>>2]|0));c[s>>2]=(c[s>>2]|0)+1}do{if(!(+g[w+((c[x>>2]|0)+1<<2)>>2]>+g[w+(c[x>>2]<<2)>>2]*8.0)){if((c[U>>2]|0)<2?+g[w+((c[x>>2]|0)+1<<2)>>2]>+g[w+(c[x>>2]<<2)>>2]*2.0:0){c[U>>2]=1;c[V>>2]=c[x>>2]}}else{c[U>>2]=2;c[V>>2]=c[x>>2]}c[x>>2]=(c[x>>2]|0)+1}while((c[x>>2]|0)<((c[(c[(c[Z>>2]|0)+4>>2]|0)+60>>2]|0)-1|0));if(c[U>>2]|0){Sa(c[(c[Z>>2]|0)+4>>2]|0,m,(c[V>>2]|0)+1|0,c[(c[(c[Z>>2]|0)+4>>2]|0)+60>>2]|0,c[M>>2]|0,c[(c[(c[Z>>2]|0)+4>>2]|0)+60>>2]|0,c[U>>2]|0,c[T>>2]|0);ra(c[(c[Z>>2]|0)+4>>2]|0,m,c[T>>2]|0)}}Ta(P,c[C>>2]|0,c[N>>2]|0,c[Q>>2]|0,c[K>>2]|0);if(c[N>>2]|0){dc(P,c[v>>2]|0,1024-((c[M>>2]<<1)-(c[u>>2]<<1))|0);dc(P,c[W>>2]|0,16)}do if(c[Q>>2]|0){if(c[S>>2]|0){dc(P,c[S>>2]|0,4);dc(P,c[R>>2]|0,(c[M>>2]|0)+(c[(c[Z>>2]|0)+16>>2]|0)|0);break}dc(P,c[U>>2]|0,4);if(c[U>>2]|0?(c[(c[(c[Z>>2]|0)+4>>2]|0)+60>>2]|0)!=2:0)dc(P,c[V>>2]|0,(c[(c[(c[Z>>2]|0)+4>>2]|0)+60>>2]|0)-1|0)}while(0);j=l;l=l+((1*(c[(c[(c[Z>>2]|0)+4>>2]|0)+16>>2]<<2)|0)+15&-16)|0;k=l;l=l+((1*(c[(c[(c[Z>>2]|0)+4>>2]|0)+16>>2]<<2)|0)+15&-16)|0;if((c[(c[Z>>2]|0)+72>>2]|0)>0?(c[z>>2]=c[(c[Z>>2]|0)+72>>2],z=(c[(c[Z>>2]|0)+72>>2]|0)+(c[z>>2]|0)-(c[(c[Z>>2]|0)+56>>2]|0)>>7,c[A>>2]=z,c[A>>2]=(c[A>>2]|0)<4?4:z,(c[A>>2]|0)<(c[L>>2]|0)):0)c[L>>2]=c[A>>2];A=(O(c[T>>2]|0,c[(c[(c[Z>>2]|0)+4>>2]|0)+16>>2]|0)|0)<<2;i=l;l=l+((1*A|0)+15&-16)|0;c[B>>2]=Zc(c[(c[Z>>2]|0)+4>>2]|0,e,c[(c[Z>>2]|0)+100>>2]|0,(c[L>>2]<<2)-8|0,c[C>>2]|0,c[(c[(c[Z>>2]|0)+4>>2]|0)+84>>2]|0,i,P,c[T>>2]|0)|0;c[B>>2]=(((c[B>>2]|0)*3|0)-1>>3)+1;if((c[B>>2]|0)>(c[L>>2]|0))c[B>>2]=c[L>>2];if((c[(c[Z>>2]|0)+72>>2]|0)>0){c[G>>2]=c[(c[Z>>2]|0)+72>>2];do if(c[Q>>2]|0)c[G>>2]=c[G>>2]<<1;else{if((c[(c[(c[Z>>2]|0)+4>>2]|0)+60>>2]|0)<=1)break;c[G>>2]=(c[G>>2]|0)-(((c[G>>2]|0)+14|0)/28|0)}while(0);C=(c[G>>2]|0)+(c[(c[Z>>2]|0)+64>>2]|0)-588|0;c[G>>2]=C+(td(P,4)|0);if((c[B>>2]|0)>(((c[G>>2]|0)+64|0)/128|0|0))a=c[B>>2]|0;else a=((c[G>>2]|0)+64|0)/128|0;c[G>>2]=a;c[G>>2]=(c[L>>2]|0)<(c[G>>2]|0)?c[L>>2]|0:c[G>>2]|0;if((c[(c[Z>>2]|0)+68>>2]|0)<990){C=(c[Z>>2]|0)+68|0;c[C>>2]=(c[C>>2]|0)+1;g[E>>2]=1.0/+((c[(c[Z>>2]|0)+68>>2]|0)+10|0)}else g[E>>2]=1.0000000474974513e-03;c[F>>2]=(c[G>>2]<<7)-(c[(c[Z>>2]|0)+72>>2]|0);C=(c[Z>>2]|0)+56|0;c[C>>2]=(c[C>>2]|0)+(c[F>>2]|0);C=(c[Z>>2]|0)+60|0;c[C>>2]=~~(+(c[C>>2]|0)+ +g[E>>2]*+((c[F>>2]|0)-(c[(c[Z>>2]|0)+64>>2]|0)-(c[(c[Z>>2]|0)+60>>2]|0)|0));c[(c[Z>>2]|0)+64>>2]=0-(c[(c[Z>>2]|0)+60>>2]|0);if((c[(c[Z>>2]|0)+56>>2]|0)<0){c[H>>2]=1-(((c[(c[Z>>2]|0)+56>>2]|0)-1|0)/128|0);F=(c[Z>>2]|0)+56|0;c[F>>2]=(c[F>>2]|0)+(c[H>>2]<<7);c[G>>2]=(c[G>>2]|0)+(c[H>>2]|0)}if((c[G>>2]|0)<(c[L>>2]|0))c[L>>2]=c[G>>2];_b(D,c[L>>2]|0)}a=l;l=l+((1*(c[(c[(c[Z>>2]|0)+4>>2]|0)+16>>2]<<2)|0)+15&-16)|0;h=l;l=l+((1*(c[(c[(c[Z>>2]|0)+4>>2]|0)+16>>2]<<2)|0)+15&-16)|0;c[I>>2]=0;while(1){if((c[I>>2]|0)>=(c[(c[(c[Z>>2]|0)+4>>2]|0)+16>>2]|0))break;c[a+(c[I>>2]<<2)>>2]=0;c[I>>2]=(c[I>>2]|0)+1}e=c[L>>2]<<3;c[J>>2]=e-(td(P,0)|0)-1;Ad(c[(c[Z>>2]|0)+4>>2]|0,a,c[J>>2]|0,k,j,h,c[T>>2]|0);_c(c[(c[Z>>2]|0)+4>>2]|0,r,c[(c[Z>>2]|0)+100>>2]|0,i,j,P,c[T>>2]|0);e=c[(c[Z>>2]|0)+4>>2]|0;f=c[Q>>2]|0;a=c[K>>2]|0;d=c[L>>2]<<3;if((c[T>>2]|0)==1)xa(e,m,r,k,f,a,d,1,P);else Aa(e,m,r,k,f,a,d,P);I=c[(c[Z>>2]|0)+4>>2]|0;J=c[(c[Z>>2]|0)+100>>2]|0;K=c[L>>2]<<3;K=K-(td(P,0)|0)|0;ad(I,r,J,i,j,h,K,P,c[T>>2]|0);do if(c[_>>2]|0?1:(c[(c[Z>>2]|0)+32>>2]|0)>0){do if((c[(c[Z>>2]|0)+32>>2]|0)>0){if((c[(c[Z>>2]|0)+32>>2]|0)>=1024)break;K=(c[Z>>2]|0)+32|0;c[K>>2]=(c[K>>2]|0)+(c[(c[Z>>2]|0)+8>>2]|0)}while(0);if(c[U>>2]|0)Sa(c[(c[Z>>2]|0)+4>>2]|0,m,0,(c[V>>2]|0)+1|0,c[M>>2]|0,c[(c[(c[Z>>2]|0)+4>>2]|0)+60>>2]|0,c[U>>2]|0,c[T>>2]|0);sa(c[(c[Z>>2]|0)+4>>2]|0,m,o,r,c[T>>2]|0);U=(c[(c[Z>>2]|0)+88>>2]|0)+((O(c[T>>2]|0,c[M>>2]|0)|0)<<2)|0;V=(O(c[T>>2]|0,1024+(c[(c[Z>>2]|0)+16>>2]|0)-(c[M>>2]|0)|0)|0)<<2;Le(c[(c[Z>>2]|0)+88>>2]|0,U|0,V+0|0)|0;if(c[N>>2]|0)va(c[(c[Z>>2]|0)+4>>2]|0,o,n,c[W>>2]|0,0,c[T>>2]|0);Ua(c[(c[Z>>2]|0)+4>>2]|0,c[Q>>2]|0,o,c[R>>2]|0,c[S>>2]|0,c[(c[Z>>2]|0)+88>>2]|0,c[T>>2]|0);if(!(c[_>>2]|0))break;Va(c[(c[Z>>2]|0)+88>>2]|0,c[_>>2]|0,c[M>>2]|0,c[T>>2]|0,.800000011920929,c[(c[Z>>2]|0)+80>>2]|0)}while(0);vd(P);c[Y>>2]=c[L>>2];ca(c[X>>2]|0);_=c[Y>>2]|0;l=$;return _|0}function Oa(a){a=a|0;var b=0,d=0,e=0;e=l;l=l+16|0;b=e+4|0;d=e;c[d>>2]=a;do if(!(c[d>>2]|0)){Ja(2346);c[b>>2]=-6}else{if((c[c[d>>2]>>2]|0)==1279477076){c[b>>2]=0;break}if((c[c[d>>2]>>2]|0)==1275086080)Ja(2382);else Ja(2303);c[b>>2]=-6}while(0);l=e;return c[b>>2]|0}function Pa(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0.0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0;t=l;l=l+48|0;o=t+36|0;p=t+32|0;q=t+28|0;r=t+24|0;s=t+20|0;i=t+16|0;j=t+12|0;k=t+8|0;m=t+4|0;n=t;c[o>>2]=a;c[p>>2]=b;c[q>>2]=d;c[r>>2]=e;c[s>>2]=f;f=c[p>>2]|0;c[n>>2]=da()|0;a=l;l=l+((1*(f<<2)|0)+15&-16)|0;c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[p>>2]|0))break;f=+g[(c[o>>2]|0)+((O(c[q>>2]|0,c[j>>2]|0)|0)<<2)>>2]<0.0;h=+g[(c[o>>2]|0)+((O(c[q>>2]|0,c[j>>2]|0)|0)<<2)>>2];g[a+(c[j>>2]<<2)>>2]=f?-h:h;c[j>>2]=(c[j>>2]|0)+1}c[i>>2]=1;while(1){if((c[i>>2]|0)>=(c[q>>2]|0))break;c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[p>>2]|0))break;f=O(c[q>>2]|0,c[j>>2]|0)|0;e=O(c[q>>2]|0,c[j>>2]|0)|0;h=+g[(c[o>>2]|0)+(e+(c[i>>2]|0)<<2)>>2];if(+g[a+(c[j>>2]<<2)>>2]>(+g[(c[o>>2]|0)+(f+(c[i>>2]|0)<<2)>>2]<0.0?-h:h))h=+g[a+(c[j>>2]<<2)>>2];else{f=O(c[q>>2]|0,c[j>>2]|0)|0;e=O(c[q>>2]|0,c[j>>2]|0)|0;h=+g[(c[o>>2]|0)+(e+(c[i>>2]|0)<<2)>>2];h=+g[(c[o>>2]|0)+(f+(c[i>>2]|0)<<2)>>2]<0.0?-h:h}g[a+(c[j>>2]<<2)>>2]=h;c[j>>2]=(c[j>>2]|0)+1}c[i>>2]=(c[i>>2]|0)+1}c[j>>2]=1;while(1){if((c[j>>2]|0)>=(c[p>>2]|0))break;q=c[j>>2]|0;g[a+(c[j>>2]<<2)>>2]=+g[a+((+g[a+((c[j>>2]|0)-1<<2)>>2]>+g[a+(c[j>>2]<<2)>>2]?q-1|0:q)<<2)>>2];c[j>>2]=(c[j>>2]|0)+1}c[k>>2]=-1;c[j>>2]=8;while(1){if((c[j>>2]|0)>=((c[p>>2]|0)-8|0))break;if(+g[a+(c[j>>2]<<2)>>2]<+g[a+((c[p>>2]|0)-1<<2)>>2]*.20000000298023224)c[k>>2]=c[j>>2];c[j>>2]=(c[j>>2]|0)+1}if((c[k>>2]|0)<32){c[k>>2]=-1;g[m>>2]=0.0}else g[m>>2]=+g[a+((c[p>>2]|0)-1<<2)>>2]/(+g[a+((c[k>>2]|0)-16<<2)>>2]+1.0);if(+g[m>>2]<0.0)g[m>>2]=0.0;if(!(+g[m>>2]>1.0e3)){h=+g[m>>2];u=+g[m>>2];h=u*h;g[m>>2]=h;h=+g[m>>2];p=h>2048.0;q=c[s>>2]|0;s=p?3:0;c[q>>2]=s;q=c[k>>2]|0;s=c[r>>2]|0;c[s>>2]=q;h=+g[m>>2];s=h>20.0;s=s&1;r=c[n>>2]|0;ca(r|0);l=t;return s|0}g[m>>2]=1.0e3;u=+g[m>>2];h=+g[m>>2];u=h*u;g[m>>2]=u;u=+g[m>>2];p=u>2048.0;q=c[s>>2]|0;s=p?3:0;c[q>>2]=s;q=c[k>>2]|0;s=c[r>>2]|0;c[s>>2]=q;u=+g[m>>2];s=u>20.0;s=s&1;r=c[n>>2]|0;ca(r|0);l=t;return s|0}function Qa(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;x=l;l=l+64|0;u=x+60|0;j=x+56|0;v=x+52|0;w=x+48|0;y=x+44|0;k=x+40|0;h=x+36|0;i=x+32|0;m=x+28|0;n=x+24|0;o=x+20|0;p=x+16|0;q=x+12|0;r=x+8|0;s=x+4|0;t=x;c[u>>2]=a;c[j>>2]=b;c[v>>2]=d;c[w>>2]=e;c[y>>2]=f;c[k>>2]=c[y>>2];a=(c[u>>2]|0)+44|0;if(!((c[k>>2]|0)!=1|(c[j>>2]|0)!=0)){c[h>>2]=a;c[i>>2]=c[(c[u>>2]|0)+8>>2];Gc(c[h>>2]|0,c[v>>2]|0,c[w>>2]|0,c[(c[u>>2]|0)+56>>2]|0,c[i>>2]|0);l=x;return}c[m>>2]=a;c[n>>2]=c[(c[u>>2]|0)+8>>2];c[o>>2]=c[(c[u>>2]|0)+12>>2];c[p>>2]=1;if(c[j>>2]|0){c[m>>2]=(c[u>>2]|0)+68;c[o>>2]=c[(c[u>>2]|0)+64>>2];c[p>>2]=c[(c[u>>2]|0)+60>>2]}b=(c[o>>2]|0)+(c[n>>2]|0)|0;c[s>>2]=da()|0;a=l;l=l+((1*(b<<2)|0)+15&-16)|0;b=l;l=l+((1*(c[o>>2]<<2)|0)+15&-16)|0;c[r>>2]=0;while(1){if((c[r>>2]|0)>=(c[k>>2]|0))break;c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[p>>2]|0))break;c[t>>2]=0;while(1){if((c[t>>2]|0)>=((c[o>>2]|0)+(c[n>>2]|0)|0))break;y=O(c[q>>2]|0,c[o>>2]|0)|0;y=O(c[k>>2]|0,y+(c[t>>2]|0)|0)|0;g[a+(c[t>>2]<<2)>>2]=+g[(c[v>>2]|0)+(y+(c[r>>2]|0)<<2)>>2];c[t>>2]=(c[t>>2]|0)+1}Gc(c[m>>2]|0,a,b,c[(c[u>>2]|0)+56>>2]|0,c[n>>2]|0);c[t>>2]=0;while(1){if((c[t>>2]|0)>=(c[o>>2]|0))break;j=O(c[t>>2]|0,c[p>>2]|0)|0;y=O(c[r>>2]|0,c[o>>2]|0)|0;g[(c[w>>2]|0)+(j+(c[q>>2]|0)+(O(y,c[p>>2]|0)|0)<<2)>>2]=+g[b+(c[t>>2]<<2)>>2];c[t>>2]=(c[t>>2]|0)+1}c[q>>2]=(c[q>>2]|0)+1}c[r>>2]=(c[r>>2]|0)+1}ca(c[s>>2]|0);l=x;return}function Ra(a){a=+a;var b=0,c=0;b=l;l=l+16|0;c=b;g[c>>2]=a;a=+M(+(1.0000000474974513e-03>+g[c>>2]?1.0000000474974513e-03:+g[c>>2]))*1.4426950408889634;l=b;return +a}function Sa(a,b,d,e,f,h,i,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;w=l;l=l+48|0;u=w+44|0;v=w+40|0;k=w+36|0;m=w+32|0;n=w+28|0;o=w+24|0;p=w+20|0;x=w+16|0;q=w+12|0;r=w+8|0;s=w+4|0;t=w;c[u>>2]=a;c[v>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=h;c[p>>2]=i;c[x>>2]=j;c[t>>2]=c[x>>2];c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[t>>2]|0))break;c[q>>2]=c[k>>2];while(1){if((c[q>>2]|0)>=(c[m>>2]|0))break;c[r>>2]=(c[q>>2]|0)+(O(c[s>>2]|0,c[n>>2]|0)|0);while(1){if((c[r>>2]|0)>=(O((c[s>>2]|0)+1|0,c[n>>2]|0)|0))break;g[(c[v>>2]|0)+(c[r>>2]<<2)>>2]=1.0/+(1<<c[p>>2]|0)*+g[(c[v>>2]|0)+(c[r>>2]<<2)>>2];c[r>>2]=(c[r>>2]|0)+(c[o>>2]|0)}c[q>>2]=(c[q>>2]|0)+1}c[s>>2]=(c[s>>2]|0)+1}ra(c[u>>2]|0,c[v>>2]|0,c[t>>2]|0);l=w;return}function Ta(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;k=l;l=l+32|0;h=k+28|0;p=k+24|0;o=k+20|0;n=k+16|0;m=k+12|0;j=k+8|0;g=k+4|0;i=k;c[h>>2]=a;c[p>>2]=b;c[o>>2]=d;c[n>>2]=e;c[m>>2]=f;c[g>>2]=0;c[g>>2]=c[g>>2]|(c[p>>2]|0?8192:0);c[g>>2]=c[g>>2]|(c[o>>2]|0?4096:0);c[g>>2]=c[g>>2]|(c[n>>2]|0?2048:0);c[g>>2]=c[g>>2]|(c[m>>2]|0?1024:0);c[j>>2]=0;while(1){if((c[j>>2]|0)>=8)break;if((c[g>>2]|0)==(c[104+(c[j>>2]<<2)>>2]&15360|0))break;c[j>>2]=(c[j>>2]|0)+1}c[i>>2]=c[104+(c[j>>2]<<2)>>2]&15;if((c[j>>2]|0)<2){dc(c[h>>2]|0,c[i>>2]|0,4);l=k;return}b=c[h>>2]|0;a=c[i>>2]|0;if((c[j>>2]|0)<6){dc(b,a,16);l=k;return}else{dc(b,a,8);l=k;return}}function Ua(a,b,d,e,f,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0.0;D=l;l=l+80|0;A=D+76|0;B=D+72|0;C=D+68|0;j=D+64|0;k=D+60|0;m=D+56|0;E=D+52|0;n=D+48|0;o=D+44|0;p=D+40|0;q=D+36|0;r=D+32|0;s=D+28|0;t=D+24|0;u=D+20|0;v=D+16|0;w=D+12|0;x=D+8|0;y=D+4|0;z=D;c[A>>2]=a;c[B>>2]=b;c[C>>2]=d;c[j>>2]=e;c[k>>2]=f;c[m>>2]=h;c[E>>2]=i;c[p>>2]=c[E>>2];c[q>>2]=c[(c[A>>2]|0)+12>>2];c[r>>2]=c[(c[A>>2]|0)+8>>2];c[o>>2]=(c[q>>2]|0)-(c[r>>2]|0)>>1;c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[p>>2]|0))break;if((c[k>>2]|0)==0&(c[p>>2]|0)==1^1|(c[B>>2]|0)!=0){c[v>>2]=c[q>>2];c[w>>2]=1;c[x>>2]=0;c[y>>2]=(c[A>>2]|0)+44;b=c[q>>2]<<1;c[z>>2]=da()|0;a=l;l=l+((1*(b<<2)|0)+15&-16)|0;b=l;l=l+((1*(c[q>>2]<<2)|0)+15&-16)|0;if(c[B>>2]|0){c[y>>2]=(c[A>>2]|0)+68;c[v>>2]=c[(c[A>>2]|0)+64>>2];c[w>>2]=c[(c[A>>2]|0)+60>>2];c[x>>2]=c[o>>2]}De(a+(c[o>>2]<<2)|0,0,c[v>>2]<<2|0)|0;c[u>>2]=0;while(1){if((c[u>>2]|0)>=(c[w>>2]|0))break;c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[v>>2]|0))break;i=O(c[s>>2]|0,c[w>>2]|0)|0;E=O(c[n>>2]|0,c[v>>2]|0)|0;F=+g[(c[C>>2]|0)+(i+(c[u>>2]|0)+(O(E,c[w>>2]|0)|0)<<2)>>2];g[b+(c[s>>2]<<2)>>2]=F;c[s>>2]=(c[s>>2]|0)+1}E=a+(c[x>>2]<<2)+((O(c[v>>2]|0,c[u>>2]|0)|0)<<2)|0;Hc(c[y>>2]|0,b,E,c[(c[A>>2]|0)+56>>2]|0,c[r>>2]|0);c[u>>2]=(c[u>>2]|0)+1}a:do if((c[k>>2]|0)>0){c[s>>2]=0;while(1){if((c[s>>2]|0)>=16)break;E=a+((c[o>>2]|0)+(c[j>>2]|0)+(c[s>>2]|0)-16<<2)|0;g[E>>2]=+g[E>>2]*(+g[8+(c[s>>2]<<2)>>2]*+((1<<c[k>>2])-1|0)+1.0);c[s>>2]=(c[s>>2]|0)+1}c[s>>2]=c[j>>2];while(1){if((c[s>>2]|0)>=((c[q>>2]|0)+(c[r>>2]|0)|0))break a;E=a+((c[o>>2]|0)+(c[s>>2]|0)<<2)|0;g[E>>2]=+g[E>>2]*+(1<<c[k>>2]|0);c[s>>2]=(c[s>>2]|0)+1}}while(0);c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[r>>2]|0))break;E=O(c[p>>2]|0,1024-(c[q>>2]|0)|0)|0;E=E+(O(c[p>>2]|0,c[s>>2]|0)|0)|0;E=(c[m>>2]|0)+(E+(c[n>>2]|0)<<2)|0;g[E>>2]=+g[E>>2]+ +g[a+((c[s>>2]|0)+(c[o>>2]|0)<<2)>>2];c[s>>2]=(c[s>>2]|0)+1}c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[r>>2]|0))break;E=(c[p>>2]<<10)+(O(c[p>>2]|0,(c[r>>2]|0)-(c[s>>2]|0)-1|0)|0)|0;g[(c[m>>2]|0)+(E+(c[n>>2]|0)<<2)>>2]=+g[a+((c[q>>2]<<1)-(c[s>>2]|0)-(c[o>>2]|0)-1<<2)>>2];c[s>>2]=(c[s>>2]|0)+1}c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[o>>2]<<1|0))break;E=O(c[p>>2]|0,1024-(c[q>>2]|0)|0)|0;E=E+(O(c[p>>2]|0,(c[s>>2]|0)+(c[r>>2]|0)|0)|0)|0;g[(c[m>>2]|0)+(E+(c[n>>2]|0)<<2)>>2]=+g[a+((c[s>>2]|0)+(c[o>>2]|0)+(c[r>>2]|0)<<2)>>2];c[s>>2]=(c[s>>2]|0)+1}ca(c[z>>2]|0)}else{c[t>>2]=(c[A>>2]|0)+44;E=(c[m>>2]|0)+((O(c[p>>2]|0,1024-(c[q>>2]|0)-(c[o>>2]|0)|0)|0)<<2)|0;Hc(c[t>>2]|0,c[C>>2]|0,E,c[(c[A>>2]|0)+56>>2]|0,c[r>>2]|0)}c[n>>2]=(c[n>>2]|0)+1}l=D;return}function Va(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=l;l=l+48|0;p=s+36|0;q=s+32|0;r=s+28|0;t=s+24|0;i=s+20|0;j=s+16|0;k=s+12|0;m=s+8|0;n=s+4|0;o=s;c[p>>2]=a;c[q>>2]=b;c[r>>2]=d;c[t>>2]=e;g[i>>2]=f;c[j>>2]=h;c[k>>2]=c[t>>2];c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[k>>2]|0))break;c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[r>>2]|0))break;t=O(c[k>>2]|0,1024-(c[r>>2]|0)|0)|0;t=t+(O(c[k>>2]|0,c[n>>2]|0)|0)|0;g[o>>2]=+g[(c[p>>2]|0)+(t+(c[m>>2]|0)<<2)>>2]+ +g[i>>2]*+g[(c[j>>2]|0)+(c[m>>2]<<2)>>2];g[(c[j>>2]|0)+(c[m>>2]<<2)>>2]=+g[o>>2];f=+Wa(+g[o>>2])*.000030517578125;t=O(c[k>>2]|0,c[n>>2]|0)|0;g[(c[q>>2]|0)+(t+(c[m>>2]|0)<<2)>>2]=f;c[n>>2]=(c[n>>2]|0)+1}c[m>>2]=(c[m>>2]|0)+1}l=s;return}function Wa(a){a=+a;var b=0,c=0;c=l;l=l+16|0;b=c;g[b>>2]=a;l=c;return +(+g[b>>2])}function Xa(a,d,e,f,h){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=l;l=l+48|0;s=u+40|0;i=u+36|0;j=u+32|0;t=u+28|0;k=u+24|0;m=u+20|0;n=u+16|0;o=u+12|0;p=u+8|0;q=u+4|0;r=u;c[i>>2]=a;c[j>>2]=d;c[t>>2]=e;c[k>>2]=f;c[m>>2]=h;if(Oa(c[i>>2]|0)|0){c[s>>2]=-6;t=c[s>>2]|0;l=u;return t|0}if(Jc(c[(c[i>>2]|0)+4>>2]|0)|0){c[s>>2]=-2;t=c[s>>2]|0;l=u;return t|0}if(!(c[j>>2]|0)){c[s>>2]=-1;t=c[s>>2]|0;l=u;return t|0}c[p>>2]=c[(c[i>>2]|0)+20>>2];c[q>>2]=c[(c[i>>2]|0)+12>>2];h=O(c[p>>2]|0,c[q>>2]|0)|0;c[r>>2]=da()|0;f=l;l=l+((1*(h<<2)|0)+15&-16)|0;c[n>>2]=0;while(1){if((c[n>>2]|0)>=(O(c[p>>2]|0,c[q>>2]|0)|0))break;g[f+(c[n>>2]<<2)>>2]=+(b[(c[j>>2]|0)+(c[n>>2]<<1)>>1]|0)*.000030517578125;c[n>>2]=(c[n>>2]|0)+1}e=c[i>>2]|0;d=c[k>>2]|0;a=c[m>>2]|0;a:do if(c[t>>2]|0){c[o>>2]=Na(e,f,f,d,a)|0;c[n>>2]=0;while(1){if((c[n>>2]|0)>=(O(c[p>>2]|0,c[q>>2]|0)|0))break a;m=Ya(+g[f+(c[n>>2]<<2)>>2])|0;b[(c[t>>2]|0)+(c[n>>2]<<1)>>1]=m;c[n>>2]=(c[n>>2]|0)+1}}else c[o>>2]=Na(e,f,0,d,a)|0;while(0);c[s>>2]=c[o>>2];ca(c[r>>2]|0);t=c[s>>2]|0;l=u;return t|0}function Ya(a){a=+a;var b=0,c=0;c=l;l=l+16|0;b=c;g[b>>2]=a;g[b>>2]=+g[b>>2]*32768.0;g[b>>2]=+g[b>>2]>-32768.0?+g[b>>2]:-32768.0;g[b>>2]=+g[b>>2]<32767.0?+g[b>>2]:32767.0;b=(ye(+g[b>>2])|0)&65535;l=c;return b|0}function Za(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=l;l=l+80|0;s=t+64|0;q=t+60|0;k=t+56|0;m=t+40|0;n=t+36|0;o=t+32|0;r=t+28|0;p=t+24|0;e=t+20|0;f=t+16|0;g=t+12|0;h=t+8|0;i=t+4|0;j=t;c[q>>2]=a;c[k>>2]=b;if(Oa(c[q>>2]|0)|0){c[s>>2]=-6;s=c[s>>2]|0;l=t;return s|0}c[m>>2]=d;if((c[k>>2]|0)!=1?Jc(c[(c[q>>2]|0)+4>>2]|0)|0:0){c[s>>2]=-2;s=c[s>>2]|0;l=t;return s|0}a:do switch(c[k>>2]|0){case 1:{d=(c[m>>2]|0)+(4-1)&~(4-1);r=c[d>>2]|0;c[m>>2]=d+4;c[o>>2]=r;c[n>>2]=c[o>>2];if(!(c[n>>2]|0))a=26;else{c[c[n>>2]>>2]=c[(c[q>>2]|0)+4>>2];a=24}break}case 2:{o=(c[m>>2]|0)+(4-1)&~(4-1);d=c[o>>2]|0;c[m>>2]=o+4;c[p>>2]=d;c[r>>2]=c[p>>2];if(!((c[r>>2]|0)<0|(c[r>>2]|0)>10)){a=(c[q>>2]|0)+24|0;if((c[r>>2]|0)<=2){c[a>>2]=0;c[(c[q>>2]|0)+32>>2]=0;a=24;break a}c[a>>2]=1;if((c[(c[q>>2]|0)+32>>2]|0)<1){c[(c[q>>2]|0)+32>>2]=1;a=24}else a=24}else a=26;break}case 4:{d=(c[m>>2]|0)+(4-1)&~(4-1);r=c[d>>2]|0;c[m>>2]=d+4;c[f>>2]=r;c[e>>2]=c[f>>2];if(!((c[e>>2]|0)<0|(c[e>>2]|0)>2))if(!(c[e>>2]|0)){c[(c[q>>2]|0)+36>>2]=1;c[(c[q>>2]|0)+28>>2]=0;a=24;break a}else{a=(c[e>>2]|0)==1;c[(c[q>>2]|0)+36>>2]=0;c[(c[q>>2]|0)+28>>2]=a?0:1;a=24;break a}else a=26;break}case 6:{d=(c[m>>2]|0)+(4-1)&~(4-1);r=c[d>>2]|0;c[m>>2]=d+4;c[h>>2]=r;c[g>>2]=c[h>>2];if((c[g>>2]|0)<0)a=26;else{if((c[g>>2]|0)>3072e3)c[g>>2]=3072e3;c[(c[q>>2]|0)+72>>2]=((c[(c[(c[q>>2]|0)+4>>2]|0)+4>>2]<<3)+(c[(c[q>>2]|0)+12>>2]>>1)|0)/(c[(c[q>>2]|0)+12>>2]|0)|0;c[(c[q>>2]|0)+72>>2]=((c[g>>2]<<7)+(c[(c[q>>2]|0)+72>>2]>>1)|0)/(c[(c[q>>2]|0)+72>>2]|0)|0;a=24}break}case 8:{c[i>>2]=c[(c[q>>2]|0)+4>>2];c[j>>2]=c[(c[q>>2]|0)+20>>2];if((c[(c[q>>2]|0)+32>>2]|0)>0)c[(c[q>>2]|0)+32>>2]=1;De(c[(c[q>>2]|0)+84>>2]|0,0,(O(c[(c[q>>2]|0)+16>>2]|0,c[j>>2]|0)|0)<<2|0)|0;De(c[(c[q>>2]|0)+88>>2]|0,0,(O(1024+(c[(c[q>>2]|0)+16>>2]|0)|0,c[j>>2]|0)|0)<<2|0)|0;De(c[(c[q>>2]|0)+100>>2]|0,0,(O(c[j>>2]|0,c[(c[i>>2]|0)+16>>2]|0)|0)<<2|0)|0;De(c[(c[q>>2]|0)+76>>2]|0,0,c[j>>2]<<2|0)|0;De(c[(c[q>>2]|0)+80>>2]|0,0,c[j>>2]<<2|0)|0;c[(c[q>>2]|0)+40>>2]=1;a=24;break}default:{c[s>>2]=-5;s=c[s>>2]|0;l=t;return s|0}}while(0);if((a|0)==24){c[s>>2]=0;s=c[s>>2]|0;l=t;return s|0}else if((a|0)==26){c[s>>2]=-1;s=c[s>>2]|0;l=t;return s|0}return 0}function _a(a){a=a|0;var b=0,d=0,e=0;e=l;l=l+16|0;b=e+4|0;d=e;c[d>>2]=a;do if(!(c[d>>2]|0)){Ja(2433);c[b>>2]=-6}else{if((c[c[d>>2]>>2]|0)==1279476820){c[b>>2]=0;break}if((c[c[d>>2]>>2]|0)==1275085824)Ja(2465);else Ja(2515);c[b>>2]=-6}while(0);l=e;return c[b>>2]|0}function $a(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+32|0;e=m+24|0;f=m+20|0;g=m+16|0;h=m+12|0;i=m+8|0;j=m+4|0;k=m;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;if(Jc(c[f>>2]|0)|0){if(c[h>>2]|0)c[c[h>>2]>>2]=-2;c[e>>2]=0;k=c[e>>2]|0;l=m;return k|0}if((c[g>>2]|0)<0|(c[g>>2]|0)>2){Ja(2188);if(c[h>>2]|0)c[c[h>>2]>>2]=-1;c[e>>2]=0;k=c[e>>2]|0;l=m;return k|0}c[i>>2]=c[(c[f>>2]|0)+12>>2];c[j>>2]=c[g>>2];c[k>>2]=Ka(100)|0;if(!(c[k>>2]|0)){if(c[h>>2]|0)c[c[h>>2]>>2]=-7;c[e>>2]=0;k=c[e>>2]|0;l=m;return k|0}c[c[k>>2]>>2]=1413759820;c[(c[k>>2]|0)+4>>2]=c[f>>2];c[(c[k>>2]|0)+8>>2]=c[i>>2];c[(c[k>>2]|0)+12>>2]=c[i>>2];c[(c[k>>2]|0)+16>>2]=c[(c[f>>2]|0)+8>>2];c[(c[k>>2]|0)+20>>2]=c[g>>2];i=Ka((O(2048+(c[(c[k>>2]|0)+16>>2]|0)|0,c[j>>2]|0)|0)<<2)|0;c[(c[k>>2]|0)+80>>2]=i;c[(c[k>>2]|0)+76>>2]=(c[(c[k>>2]|0)+80>>2]|0)+8192+-4096;i=Ka((O(c[j>>2]|0,c[(c[f>>2]|0)+16>>2]|0)|0)<<2)|0;c[(c[k>>2]|0)+84>>2]=i;i=Ka(c[j>>2]<<2)|0;c[(c[k>>2]|0)+72>>2]=i;j=Ka((c[j>>2]|0)*24<<2)|0;c[(c[k>>2]|0)+88>>2]=j;c[(c[k>>2]|0)+96>>2]=0;if((((c[(c[k>>2]|0)+80>>2]|0?c[(c[k>>2]|0)+76>>2]|0:0)?c[(c[k>>2]|0)+84>>2]|0:0)?c[(c[k>>2]|0)+88>>2]|0:0)?c[(c[k>>2]|0)+72>>2]|0:0){if(c[h>>2]|0)c[c[h>>2]>>2]=0;c[c[k>>2]>>2]=1279476820;c[e>>2]=c[k>>2];k=c[e>>2]|0;l=m;return k|0}ab(c[k>>2]|0);if(c[h>>2]|0)c[c[h>>2]>>2]=-7;c[e>>2]=0;k=c[e>>2]|0;l=m;return k|0}function ab(a){a=a|0;var b=0,d=0;d=l;l=l+16|0;b=d;c[b>>2]=a;if(!(c[b>>2]|0)){Ja(2558);l=d;return}if((c[c[b>>2]>>2]|0)==1275085824){Ja(2594);l=d;return}if((c[c[b>>2]>>2]|0)!=1279476820?(c[c[b>>2]>>2]|0)!=1413759820:0){Ja(2515);l=d;return}Jc(c[(c[b>>2]|0)+4>>2]|0)|0;Ma(c[(c[b>>2]|0)+80>>2]|0);Ma(c[(c[b>>2]|0)+84>>2]|0);Ma(c[(c[b>>2]|0)+72>>2]|0);Ma(c[(c[b>>2]|0)+88>>2]|0);c[c[b>>2]>>2]=1275085824;Ma(c[b>>2]|0);l=d;return}function bb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;I=l;l=l+144|0;E=I+132|0;F=I+128|0;h=I+124|0;G=I+120|0;H=I+116|0;m=I+112|0;s=I+108|0;f=I+104|0;t=I+100|0;r=I+96|0;n=I+92|0;k=I+88|0;u=I+56|0;g=I+40|0;v=I+36|0;i=I+32|0;w=I+28|0;x=I+24|0;y=I+20|0;z=I+16|0;A=I+12|0;B=I+8|0;C=I+4|0;D=I;c[F>>2]=a;c[h>>2]=b;c[G>>2]=d;c[H>>2]=e;c[y>>2]=0;c[z>>2]=c[(c[F>>2]|0)+20>>2];c[A>>2]=0;c[B>>2]=0;if(_a(c[F>>2]|0)|0){c[E>>2]=-6;H=c[E>>2]|0;l=I;return H|0}if(Jc(c[(c[F>>2]|0)+4>>2]|0)|0){c[E>>2]=-2;H=c[E>>2]|0;l=I;return H|0}if(!(c[H>>2]|0)){c[E>>2]=-1;H=c[E>>2]|0;l=I;return H|0}c[s>>2]=c[(c[F>>2]|0)+12>>2];c[f>>2]=(c[s>>2]|0)-(c[(c[F>>2]|0)+16>>2]|0)>>1;j=O(c[z>>2]|0,c[s>>2]|0)|0;c[C>>2]=da()|0;o=l;l=l+((1*(j<<2)|0)+15&-16)|0;j=(O(c[z>>2]|0,c[s>>2]|0)|0)<<2;p=l;l=l+((1*j|0)+15&-16)|0;j=(O(c[(c[(c[F>>2]|0)+4>>2]|0)+16>>2]|0,c[z>>2]|0)|0)<<2;q=l;l=l+((1*j|0)+15&-16)|0;do if(!(c[h>>2]|0)){cb(c[F>>2]|0,c[H>>2]|0);c[E>>2]=0;c[D>>2]=1}else{if((c[G>>2]|0)<0){c[E>>2]=-1;c[D>>2]=1;break}Rb(g,c[h>>2]|0,c[G>>2]|0);ed(u,g);db(u,i,t,v,r);do if(c[v>>2]|0){c[x>>2]=Xb(u,4)|0;if((c[x>>2]|0)==3){c[w>>2]=Xb(u,(c[s>>2]|0)+(c[(c[(c[F>>2]|0)+4>>2]|0)+8>>2]|0)|0)|0;break}c[y>>2]=c[x>>2];if(c[y>>2]|0?(c[(c[(c[F>>2]|0)+4>>2]|0)+60>>2]|0)>2:0)c[A>>2]=Xb(u,(c[(c[(c[F>>2]|0)+4>>2]|0)+60>>2]|0)-1|0)|0;c[x>>2]=0;c[w>>2]=0}else{c[w>>2]=-1;c[x>>2]=0}while(0);if(c[t>>2]|0){c[n>>2]=Xb(u,1024-((c[s>>2]<<1)-(c[f>>2]<<1))|0)|0;c[B>>2]=Xb(u,16)|0}else c[n>>2]=0;j=l;l=l+((1*(c[(c[(c[F>>2]|0)+4>>2]|0)+16>>2]<<2)|0)+15&-16)|0;bd(c[(c[F>>2]|0)+4>>2]|0,q,c[(c[F>>2]|0)+84>>2]|0,(c[G>>2]<<2)-8|0,c[i>>2]|0,c[(c[(c[F>>2]|0)+4>>2]|0)+84>>2]|0,u,c[z>>2]|0);g=l;l=l+((1*(c[(c[(c[F>>2]|0)+4>>2]|0)+16>>2]<<2)|0)+15&-16)|0;a=l;l=l+((1*(c[(c[(c[F>>2]|0)+4>>2]|0)+16>>2]<<2)|0)+15&-16)|0;h=l;l=l+((1*(c[(c[(c[F>>2]|0)+4>>2]|0)+16>>2]<<2)|0)+15&-16)|0;c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[(c[(c[F>>2]|0)+4>>2]|0)+16>>2]|0))break;c[a+(c[m>>2]<<2)>>2]=0;c[m>>2]=(c[m>>2]|0)+1}m=c[G>>2]<<3;c[k>>2]=m-(ld(u,0)|0)-1;Ad(c[(c[F>>2]|0)+4>>2]|0,a,c[k>>2]|0,g,j,h,c[z>>2]|0);cd(c[(c[F>>2]|0)+4>>2]|0,q,c[(c[F>>2]|0)+84>>2]|0,j,u,c[z>>2]|0);m=(O(c[z>>2]|0,c[s>>2]|0)|0)<<2;f=l;l=l+((1*m|0)+15&-16)|0;if(c[t>>2]|0){n=(c[(c[F>>2]|0)+76>>2]|0)+((O(c[n>>2]|0,c[z>>2]|0)|0)<<2)|0;Qa(c[(c[F>>2]|0)+4>>2]|0,0,n,f,c[z>>2]|0)}d=c[(c[F>>2]|0)+4>>2]|0;e=c[v>>2]|0;a=c[r>>2]|0;b=c[G>>2]<<3;if((c[z>>2]|0)==1)xa(d,p,q,g,e,a,b,0,u);else Da(d,p,q,g,e,a,b,u);n=c[(c[F>>2]|0)+4>>2]|0;r=c[(c[F>>2]|0)+84>>2]|0;G=c[G>>2]<<3;G=G-(ld(u,0)|0)|0;dd(n,q,r,j,h,G,u,c[z>>2]|0);if(c[y>>2]|0)Sa(c[(c[F>>2]|0)+4>>2]|0,p,0,(c[A>>2]|0)+1|0,c[s>>2]|0,c[(c[(c[F>>2]|0)+4>>2]|0)+60>>2]|0,c[y>>2]|0,c[z>>2]|0);sa(c[(c[F>>2]|0)+4>>2]|0,p,o,q,c[z>>2]|0);A=(c[(c[F>>2]|0)+80>>2]|0)+((O(c[z>>2]|0,c[s>>2]|0)|0)<<2)|0;G=(O(c[z>>2]|0,2048+(c[(c[F>>2]|0)+16>>2]|0)-(c[s>>2]|0)|0)|0)<<2;Le(c[(c[F>>2]|0)+80>>2]|0,A|0,G+0|0)|0;if(c[t>>2]|0)va(c[(c[F>>2]|0)+4>>2]|0,o,f,c[B>>2]|0,0,c[z>>2]|0);Ua(c[(c[F>>2]|0)+4>>2]|0,c[v>>2]|0,o,c[w>>2]|0,c[x>>2]|0,c[(c[F>>2]|0)+76>>2]|0,c[z>>2]|0);Va(c[(c[F>>2]|0)+76>>2]|0,c[H>>2]|0,c[s>>2]|0,c[z>>2]|0,.800000011920929,c[(c[F>>2]|0)+72>>2]|0);c[(c[F>>2]|0)+96>>2]=0;c[E>>2]=0;c[D>>2]=1}while(0);ca(c[C>>2]|0);H=c[E>>2]|0;l=I;return H|0}function cb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0;I=l;l=l+10560|0;p=I+10544|0;A=I+10540|0;B=I+10536|0;D=I+10532|0;E=I+10528|0;F=I+10524|0;G=I+10520|0;H=I+10516|0;i=I+10512|0;j=I+10508|0;k=I+10504|0;d=I+8456|0;e=I+8448|0;f=I+8440|0;h=I+8432|0;m=I+4336|0;n=I+240|0;o=I+136|0;q=I+132|0;r=I+128|0;s=I+32|0;t=I+24|0;u=I+20|0;v=I+16|0;w=I+12|0;x=I+8|0;y=I+4|0;z=I;c[p>>2]=a;c[A>>2]=b;c[F>>2]=c[(c[(c[p>>2]|0)+4>>2]|0)+8>>2];g[G>>2]=1.0;c[j>>2]=c[(c[p>>2]|0)+20>>2];c[D>>2]=c[(c[p>>2]|0)+12>>2];c[i>>2]=(c[D>>2]|0)+(c[(c[(c[p>>2]|0)+4>>2]|0)+8>>2]|0);do if(c[(c[p>>2]|0)+96>>2]|0){c[E>>2]=c[(c[p>>2]|0)+92>>2];if((c[(c[p>>2]|0)+96>>2]|0)<5){g[G>>2]=.800000011920929;break}else{g[G>>2]=0.0;break}}else{g[e>>2]=0.0;c[f>>2]=0;c[f+4>>2]=0;c[h>>2]=0;c[h+4>>2]=0;Sc(c[(c[p>>2]|0)+76>>2]|0,d,1024,1024,c[j>>2]|0,f,h);Tc(c[(c[p>>2]|0)+4>>2]|0,d+(1024-(c[i>>2]|0)>>1<<2)|0,d,c[i>>2]|0,1024-(c[i>>2]|0)-100|0,E,e);c[E>>2]=1024-(c[i>>2]|0)-(c[E>>2]|0);c[(c[p>>2]|0)+92>>2]=c[E>>2]}while(0);c[B>>2]=0;while(1){if((c[B>>2]|0)>=(c[j>>2]|0))break;g[q>>2]=1.0;g[r>>2]=0.0;a=s;b=a+96|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(b|0));c[k>>2]=1024-(c[E>>2]|0);c[H>>2]=0;while(1){a=c[p>>2]|0;if((c[H>>2]|0)>=1024)break;h=O(c[H>>2]|0,c[j>>2]|0)|0;g[n+(c[H>>2]<<2)>>2]=+g[(c[a+76>>2]|0)+(h+(c[B>>2]|0)<<2)>>2];c[H>>2]=(c[H>>2]|0)+1}if(!(c[a+96>>2]|0)){Ha(n,o,c[(c[(c[p>>2]|0)+4>>2]|0)+56>>2]|0,c[(c[(c[p>>2]|0)+4>>2]|0)+8>>2]|0,24,1024);g[o>>2]=+g[o>>2]*1.00001;c[H>>2]=1;while(1){if((c[H>>2]|0)>24)break;h=o+(c[H>>2]<<2)|0;g[h>>2]=+g[h>>2]-+g[o+(c[H>>2]<<2)>>2]*(+(c[H>>2]|0)*.008)*(+(c[H>>2]|0)*.008);c[H>>2]=(c[H>>2]|0)+1}+Ea((c[(c[p>>2]|0)+88>>2]|0)+((c[B>>2]|0)*24<<2)|0,o,24)}Fa(n,(c[(c[p>>2]|0)+88>>2]|0)+((c[B>>2]|0)*24<<2)|0,n,1024,24,s);g[t>>2]=0.0;g[u>>2]=0.0;if((c[E>>2]|0)<=512)c[v>>2]=c[E>>2];else c[v>>2]=512;c[H>>2]=0;while(1){if((c[H>>2]|0)>=(c[v>>2]|0))break;g[t>>2]=+g[t>>2]+ +g[n+(1024-(c[v>>2]|0)+(c[H>>2]|0)<<2)>>2]*+g[n+(1024-(c[v>>2]|0)+(c[H>>2]|0)<<2)>>2];g[u>>2]=+g[u>>2]+ +g[n+(1024-(c[v>>2]<<1)+(c[H>>2]|0)<<2)>>2]*+g[n+(1024-(c[v>>2]<<1)+(c[H>>2]|0)<<2)>>2];c[H>>2]=(c[H>>2]|0)+1}g[q>>2]=+C(+((+g[t>>2]+1.0)/(+g[u>>2]+1.0)));if(+g[q>>2]>1.0)g[q>>2]=1.0;c[H>>2]=0;while(1){if((c[H>>2]|0)>=((c[i>>2]|0)+(c[(c[(c[p>>2]|0)+4>>2]|0)+8>>2]|0)|0))break;if(((c[k>>2]|0)+(c[H>>2]|0)|0)>=1024){c[k>>2]=(c[k>>2]|0)-(c[E>>2]|0);g[q>>2]=+g[q>>2]*+g[q>>2]}g[m+(c[H>>2]<<2)>>2]=+g[q>>2]*+g[n+((c[k>>2]|0)+(c[H>>2]|0)<<2)>>2];g[r>>2]=+g[r>>2]+ +g[(c[(c[p>>2]|0)+76>>2]|0)+((c[k>>2]|0)+(c[H>>2]|0)<<2)>>2]*1.0*+g[(c[(c[p>>2]|0)+76>>2]|0)+((c[k>>2]|0)+(c[H>>2]|0)<<2)>>2];c[H>>2]=(c[H>>2]|0)+1}Ga(m,(c[(c[p>>2]|0)+88>>2]|0)+((c[B>>2]|0)*24<<2)|0,m,(c[i>>2]|0)+(c[(c[(c[p>>2]|0)+4>>2]|0)+8>>2]|0)|0,24,s);g[w>>2]=0.0;c[H>>2]=0;while(1){if((c[H>>2]|0)>=((c[i>>2]|0)+(c[F>>2]|0)|0))break;g[w>>2]=+g[w>>2]+ +g[m+(c[H>>2]<<2)>>2]*1.0*+g[m+(c[H>>2]<<2)>>2];c[H>>2]=(c[H>>2]|0)+1}a:do if(+g[r>>2]>+g[w>>2]*.20000000298023224){if(+g[r>>2]<+g[w>>2]){g[x>>2]=+C(+((+g[r>>2]+1.0)/(+g[w>>2]+1.0)));c[H>>2]=0;while(1){if((c[H>>2]|0)>=((c[i>>2]|0)+(c[F>>2]|0)|0))break a;h=m+(c[H>>2]<<2)|0;g[h>>2]=+g[h>>2]*+g[x>>2];c[H>>2]=(c[H>>2]|0)+1}}}else{c[H>>2]=0;while(1){if((c[H>>2]|0)>=((c[i>>2]|0)+(c[F>>2]|0)|0))break a;g[m+(c[H>>2]<<2)>>2]=0.0;c[H>>2]=(c[H>>2]|0)+1}}while(0);c[H>>2]=0;while(1){if((c[H>>2]|0)>=(1024+(c[(c[(c[p>>2]|0)+4>>2]|0)+8>>2]|0)-(c[D>>2]|0)|0))break;f=O(c[j>>2]|0,(c[D>>2]|0)+(c[H>>2]|0)|0)|0;h=O(c[j>>2]|0,c[H>>2]|0)|0;g[(c[(c[p>>2]|0)+76>>2]|0)+(h+(c[B>>2]|0)<<2)>>2]=+g[(c[(c[p>>2]|0)+76>>2]|0)+(f+(c[B>>2]|0)<<2)>>2];c[H>>2]=(c[H>>2]|0)+1}c[H>>2]=0;while(1){if((c[H>>2]|0)>=((c[F>>2]|0)/2|0|0))break;g[y>>2]=+g[(c[(c[(c[p>>2]|0)+4>>2]|0)+56>>2]|0)+(c[H>>2]<<2)>>2]*+g[m+(c[H>>2]<<2)>>2]-+g[(c[(c[(c[p>>2]|0)+4>>2]|0)+56>>2]|0)+((c[F>>2]|0)-(c[H>>2]|0)-1<<2)>>2]*+g[m+((c[F>>2]|0)-(c[H>>2]|0)-1<<2)>>2];g[z>>2]=+g[(c[(c[(c[p>>2]|0)+4>>2]|0)+56>>2]|0)+(c[H>>2]<<2)>>2]*+g[m+((c[D>>2]|0)+(c[F>>2]|0)-1-(c[H>>2]|0)<<2)>>2]+ +g[(c[(c[(c[p>>2]|0)+4>>2]|0)+56>>2]|0)+((c[F>>2]|0)-(c[H>>2]|0)-1<<2)>>2]*+g[m+((c[D>>2]|0)+(c[H>>2]|0)<<2)>>2];g[y>>2]=+g[G>>2]*+g[y>>2];g[z>>2]=+g[G>>2]*+g[z>>2];h=O(c[j>>2]|0,1024+(c[H>>2]|0)|0)|0;g[(c[(c[p>>2]|0)+76>>2]|0)+(h+(c[B>>2]|0)<<2)>>2]=+g[(c[(c[(c[p>>2]|0)+4>>2]|0)+56>>2]|0)+((c[F>>2]|0)-(c[H>>2]|0)-1<<2)>>2]*+g[z>>2];h=O(c[j>>2]|0,1024+(c[F>>2]|0)-(c[H>>2]|0)-1|0)|0;g[(c[(c[p>>2]|0)+76>>2]|0)+(h+(c[B>>2]|0)<<2)>>2]=+g[(c[(c[(c[p>>2]|0)+4>>2]|0)+56>>2]|0)+(c[H>>2]<<2)>>2]*+g[z>>2];h=O(c[j>>2]|0,1024-(c[D>>2]|0)+(c[H>>2]|0)|0)|0;h=(c[(c[p>>2]|0)+76>>2]|0)+(h+(c[B>>2]|0)<<2)|0;g[h>>2]=+g[h>>2]+ +g[(c[(c[(c[p>>2]|0)+4>>2]|0)+56>>2]|0)+(c[H>>2]<<2)>>2]*+g[y>>2];h=O(c[j>>2]|0,1024-(c[D>>2]|0)+(c[F>>2]|0)-(c[H>>2]|0)-1|0)|0;h=(c[(c[p>>2]|0)+76>>2]|0)+(h+(c[B>>2]|0)<<2)|0;g[h>>2]=+g[h>>2]-+g[(c[(c[(c[p>>2]|0)+4>>2]|0)+56>>2]|0)+((c[F>>2]|0)-(c[H>>2]|0)-1<<2)>>2]*+g[y>>2];c[H>>2]=(c[H>>2]|0)+1}c[H>>2]=0;while(1){if((c[H>>2]|0)>=((c[D>>2]|0)-(c[F>>2]|0)|0))break;h=O(c[j>>2]|0,1024-(c[D>>2]|0)+(c[F>>2]|0)+(c[H>>2]|0)|0)|0;g[(c[(c[p>>2]|0)+76>>2]|0)+(h+(c[B>>2]|0)<<2)>>2]=+g[G>>2]*+g[m+((c[F>>2]|0)+(c[H>>2]|0)<<2)>>2];c[H>>2]=(c[H>>2]|0)+1}c[B>>2]=(c[B>>2]|0)+1}Va(c[(c[p>>2]|0)+76>>2]|0,c[A>>2]|0,c[D>>2]|0,c[j>>2]|0,.800000011920929,c[(c[p>>2]|0)+72>>2]|0);H=(c[p>>2]|0)+96|0;c[H>>2]=(c[H>>2]|0)+1;l=I;return}function db(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+32|0;i=o+24|0;j=o+20|0;k=o+16|0;m=o+12|0;n=o+8|0;g=o+4|0;h=o;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[h>>2]=Xb(c[i>>2]|0,4)|0;a=c[h>>2]|0;if((c[h>>2]|0)!=2){if((a|0)==3){f=c[h>>2]<<1;c[h>>2]=f|(Xb(c[i>>2]|0,2)|0)}}else c[h>>2]=a<<2|(Xb(c[i>>2]|0,4)|0);c[g>>2]=0;while(1){if((c[g>>2]|0)>=8)break;if((c[h>>2]|0)==(c[104+(c[g>>2]<<2)>>2]&15|0))break;c[g>>2]=(c[g>>2]|0)+1}c[c[j>>2]>>2]=(c[104+(c[g>>2]<<2)>>2]&8192|0)!=0&1;c[c[k>>2]>>2]=(c[104+(c[g>>2]<<2)>>2]&4096|0)!=0&1;c[c[m>>2]>>2]=(c[104+(c[g>>2]<<2)>>2]&2048|0)!=0&1;c[c[n>>2]>>2]=(c[104+(c[g>>2]<<2)>>2]&1024|0)!=0&1;l=o;return}function eb(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+48|0;m=s+36|0;n=s+32|0;o=s+28|0;p=s+24|0;q=s+20|0;r=s+16|0;h=s+12|0;i=s+8|0;j=s+4|0;k=s;c[n>>2]=a;c[o>>2]=d;c[p>>2]=e;c[q>>2]=f;if(_a(c[n>>2]|0)|0){c[m>>2]=-6;r=c[m>>2]|0;l=s;return r|0}if(Jc(c[(c[n>>2]|0)+4>>2]|0)|0){c[m>>2]=-2;r=c[m>>2]|0;l=s;return r|0}if(!(c[q>>2]|0)){c[m>>2]=-1;r=c[m>>2]|0;l=s;return r|0}c[i>>2]=c[(c[n>>2]|0)+20>>2];c[j>>2]=c[(c[n>>2]|0)+12>>2];f=O(c[i>>2]|0,c[j>>2]|0)|0;c[k>>2]=da()|0;a=l;l=l+((1*(f<<2)|0)+15&-16)|0;c[h>>2]=bb(c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,a)|0;c[r>>2]=0;while(1){if((c[r>>2]|0)>=(O(c[i>>2]|0,c[j>>2]|0)|0))break;p=Ya(+g[a+(c[r>>2]<<2)>>2])|0;b[(c[q>>2]|0)+(c[r>>2]<<1)>>1]=p;c[r>>2]=(c[r>>2]|0)+1}c[m>>2]=c[h>>2];ca(c[k>>2]|0);r=c[m>>2]|0;l=s;return r|0}function fb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+48|0;e=n+40|0;f=n+36|0;g=n+32|0;h=n+16|0;i=n+12|0;j=n+8|0;k=n+4|0;m=n;c[f>>2]=a;c[g>>2]=b;if(_a(c[f>>2]|0)|0){c[e>>2]=-6;d=c[e>>2]|0;l=n;return d|0}c[h>>2]=d;if((c[g>>2]|0)!=1?Jc(c[(c[f>>2]|0)+4>>2]|0)|0:0){c[e>>2]=-2;d=c[e>>2]|0;l=n;return d|0}a:do switch(c[g>>2]|0){case 1:{m=(c[h>>2]|0)+(4-1)&~(4-1);d=c[m>>2]|0;c[h>>2]=m+4;c[j>>2]=d;c[i>>2]=c[j>>2];if(c[i>>2]|0){c[c[i>>2]>>2]=c[(c[f>>2]|0)+4>>2];break a}c[e>>2]=-1;d=c[e>>2]|0;l=n;return d|0}case 8:{c[k>>2]=c[(c[f>>2]|0)+4>>2];c[m>>2]=c[(c[f>>2]|0)+20>>2];De(c[(c[f>>2]|0)+80>>2]|0,0,(O(2048+(c[(c[f>>2]|0)+16>>2]|0)|0,c[m>>2]|0)|0)<<2|0)|0;De(c[(c[f>>2]|0)+84>>2]|0,0,(O(c[m>>2]|0,c[(c[k>>2]|0)+16>>2]|0)|0)<<2|0)|0;De(c[(c[f>>2]|0)+72>>2]|0,0,c[m>>2]<<2|0)|0;c[(c[f>>2]|0)+96>>2]=0;break}default:{c[e>>2]=-5;d=c[e>>2]|0;l=n;return d|0}}while(0);c[e>>2]=0;d=c[e>>2]|0;l=n;return d|0}function gb(a){a=a|0;var b=0,d=0,e=0;e=l;l=l+16|0;b=e+4|0;d=e;c[d>>2]=a;if((c[d>>2]|0)>0|(c[d>>2]|0)<-7){c[b>>2]=2641;d=c[b>>2]|0;l=e;return d|0}else{c[b>>2]=c[136+(0-(c[d>>2]|0)<<2)>>2];d=c[b>>2]|0;l=e;return d|0}return 0}function hb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=l;l=l+32|0;d=i+16|0;e=i+12|0;f=i+8|0;g=i+4|0;h=i;c[e>>2]=a;c[f>>2]=b;c[g>>2]=Qb(c[e>>2]|0)|0;a=c[g>>2]|0;if(!(c[e>>2]&(c[e>>2]|0)-1)){c[d>>2]=a-1<<c[f>>2];h=c[d>>2]|0;l=i;return h|0}if((a|0)>16)c[e>>2]=((c[e>>2]|0)>>>((c[g>>2]|0)-16|0))+(((c[e>>2]&(1<<(c[g>>2]|0)-16)-1)+(1<<(c[g>>2]|0)-16)-1|0)>>>((c[g>>2]|0)-16|0));else c[e>>2]=c[e>>2]<<16-(c[g>>2]|0);c[g>>2]=(c[g>>2]|0)-1<<c[f>>2];do{c[h>>2]=(c[e>>2]|0)>>>16;c[g>>2]=(c[g>>2]|0)+(c[h>>2]<<c[f>>2]);c[e>>2]=((c[e>>2]|0)+(c[h>>2]|0)|0)>>>(c[h>>2]|0);c[e>>2]=((O(c[e>>2]|0,c[e>>2]|0)|0)+32767|0)>>>15;b=c[f>>2]|0;c[f>>2]=b+-1}while((b|0)>0);c[d>>2]=(c[g>>2]|0)+((c[e>>2]|0)>>>0>32768&1);h=c[d>>2]|0;l=i;return h|0}function ib(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0;h=l;l=l+16|0;e=h+8|0;f=h+4|0;g=h;c[f>>2]=a;c[g>>2]=d;a=c[g>>2]|0;if((c[f>>2]|0)<14){c[e>>2]=(a|0)<=(b[2046+(c[f>>2]<<1)>>1]|0)&1;g=c[e>>2]|0;l=h;return g|0}if((a|0)>=14){c[e>>2]=0;g=c[e>>2]|0;l=h;return g|0}else{c[e>>2]=(c[f>>2]|0)<=(b[2016+(c[g>>2]<<1)>>1]|0)&1;g=c[e>>2]|0;l=h;return g|0}return 0}function jb(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;p=l;l=l+32|0;g=p+28|0;k=p+24|0;m=p+20|0;n=p+16|0;o=p+12|0;h=p+8|0;i=p+4|0;j=p;c[g>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[c[o>>2]>>2]=0;c[j>>2]=1;while(1){if((c[j>>2]|0)>((c[k>>2]|0)+1|0))break;c[(c[o>>2]|0)+(c[j>>2]<<2)>>2]=(c[j>>2]<<1)-1;c[j>>2]=(c[j>>2]|0)+1}c[h>>2]=kb((c[n>>2]|0)+(c[g>>2]<<2)+-4|0,j)|0;c[i>>2]=(c[g>>2]|0)-2;c[h>>2]=(c[h>>2]|0)+(c[(c[o>>2]|0)+(c[j>>2]<<2)>>2]|0);g=B(c[(c[n>>2]|0)+(c[i>>2]<<2)>>2]|0)|0;c[j>>2]=(c[j>>2]|0)+g;if((c[(c[n>>2]|0)+(c[i>>2]<<2)>>2]|0)<0)c[h>>2]=(c[h>>2]|0)+(c[(c[o>>2]|0)+((c[j>>2]|0)+1<<2)>>2]|0);while(1){g=c[i>>2]|0;c[i>>2]=g+-1;a=c[o>>2]|0;if((g|0)<=0)break;lb(a,(c[k>>2]|0)+2|0,0);c[h>>2]=(c[h>>2]|0)+(c[(c[o>>2]|0)+(c[j>>2]<<2)>>2]|0);g=B(c[(c[n>>2]|0)+(c[i>>2]<<2)>>2]|0)|0;c[j>>2]=(c[j>>2]|0)+g;if((c[(c[n>>2]|0)+(c[i>>2]<<2)>>2]|0)>=0)continue;c[h>>2]=(c[h>>2]|0)+(c[(c[o>>2]|0)+((c[j>>2]|0)+1<<2)>>2]|0)}c[c[m>>2]>>2]=(c[a+(c[j>>2]<<2)>>2]|0)+(c[(c[o>>2]|0)+((c[j>>2]|0)+1<<2)>>2]|0);l=p;return c[h>>2]|0}function kb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=l;l=l+16|0;d=e+4|0;f=e;c[d>>2]=a;c[f>>2]=b;b=B(c[c[d>>2]>>2]|0)|0;c[c[f>>2]>>2]=b;l=e;return (c[c[d>>2]>>2]|0)<0|0}function lb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=l;l=l+32|0;e=j+16|0;f=j+12|0;g=j+8|0;h=j+4|0;i=j;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;c[i>>2]=1;do{c[h>>2]=(c[(c[e>>2]|0)+(c[i>>2]<<2)>>2]|0)+(c[(c[e>>2]|0)+((c[i>>2]|0)-1<<2)>>2]|0)+(c[g>>2]|0);c[(c[e>>2]|0)+((c[i>>2]|0)-1<<2)>>2]=c[g>>2];c[g>>2]=c[h>>2];d=(c[i>>2]|0)+1|0;c[i>>2]=d}while(d>>>0<(c[f>>2]|0)>>>0);c[(c[e>>2]|0)+((c[i>>2]|0)-1<<2)>>2]=c[g>>2];l=j;return}function mb(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;p=l;l=l+32|0;i=p+28|0;j=p+24|0;k=p+20|0;m=p+16|0;n=p+12|0;o=p+8|0;g=p+4|0;h=p;c[i>>2]=a;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;if(!(ib(c[j>>2]|0,(c[k>>2]|0)-1|0)|0)){n=c[k>>2]|0;c[h>>2]=da()|0;o=l;l=l+((1*(n<<1)|0)+15&-16)|0;n=l;l=l+((1*(c[k>>2]<<1)|0)+15&-16)|0;c[g>>2]=ob(o,n,c[i>>2]|0,c[j>>2]>>1,(c[j>>2]|0)+1>>1,c[k>>2]|0,c[m>>2]|0)|0;pb(c[i>>2]|0,o,c[g>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0);ca(c[h>>2]|0);l=p;return}b[c[i>>2]>>1]=0;if((c[k>>2]|0)<=1){l=p;return}f=(c[k>>2]|0)+1|0;c[o>>2]=da()|0;a=l;l=l+((1*(f<<2)|0)+15&-16)|0;nb(c[j>>2]|0,(c[k>>2]|0)-1|0,a)|0;c[n>>2]=1;while(1){if((c[n>>2]|0)>=(c[k>>2]|0))break;j=(hb((c[a+(c[n>>2]<<2)>>2]|0)+(c[a+((c[n>>2]|0)+1<<2)>>2]|0)|0,c[m>>2]|0)|0)&65535;b[(c[i>>2]|0)+(c[n>>2]<<1)>>1]=j;c[n>>2]=(c[n>>2]|0)+1}ca(c[o>>2]|0);l=p;return}function nb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+32|0;f=n+28|0;g=n+24|0;h=n+20|0;i=n+16|0;j=n+12|0;k=n+8|0;m=n+4|0;e=n;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[j>>2]=(c[g>>2]|0)+2;c[c[h>>2]>>2]=0;c[i>>2]=1;c[(c[h>>2]|0)+4>>2]=1;a:do if((c[f>>2]|0)>>>0<=6|(c[g>>2]|0)>>>0>255){c[k>>2]=2;do{c[(c[h>>2]|0)+(c[k>>2]<<2)>>2]=(c[k>>2]<<1)-1;m=(c[k>>2]|0)+1|0;c[k>>2]=m}while(m>>>0<(c[j>>2]|0)>>>0);c[k>>2]=2;while(1){if((c[k>>2]|0)>>>0>=(c[f>>2]|0)>>>0)break a;lb((c[h>>2]|0)+4|0,(c[g>>2]|0)+1|0,1);c[k>>2]=(c[k>>2]|0)+1}}else{f=(c[f>>2]<<1)-1|0;c[m>>2]=f;c[e>>2]=f;c[(c[h>>2]|0)+8>>2]=f;c[k>>2]=3;while(1){if((c[k>>2]|0)>>>0>=(c[j>>2]|0)>>>0)break a;f=qb(c[e>>2]|0,c[m>>2]|0,c[i>>2]|0,(c[k>>2]|0)-1|0)|0;f=f+(c[i>>2]|0)|0;c[i>>2]=f;c[(c[h>>2]|0)+(c[k>>2]<<2)>>2]=f;f=(c[k>>2]|0)+1|0;c[k>>2]=f;if(f>>>0>=(c[j>>2]|0)>>>0)break a;f=rb(c[e>>2]|0,c[i>>2]|0,c[m>>2]|0,((c[k>>2]|0)-1|0)>>>1)|0;f=f+(c[m>>2]|0)|0;c[m>>2]=f;c[(c[h>>2]|0)+(c[k>>2]<<2)>>2]=f;c[k>>2]=(c[k>>2]|0)+1}}while(0);l=n;return (c[(c[h>>2]|0)+(c[g>>2]<<2)>>2]|0)+(c[(c[h>>2]|0)+((c[g>>2]|0)+1<<2)>>2]|0)|0}function ob(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+48|0;p=s+32|0;q=s+28|0;r=s+24|0;i=s+20|0;j=s+16|0;k=s+12|0;m=s+8|0;n=s+4|0;o=s;c[q>>2]=a;c[r>>2]=b;c[i>>2]=d;c[j>>2]=e;c[k>>2]=f;c[m>>2]=g;c[n>>2]=h;if((c[j>>2]|0)==(c[k>>2]|0)){if(ib(c[j>>2]|0,(c[m>>2]|0)-1|0)|0)mb(c[q>>2]|0,c[j>>2]|0,c[m>>2]|0,c[n>>2]|0);else{c[i>>2]=ob(c[r>>2]|0,c[i>>2]|0,c[q>>2]|0,c[j>>2]>>1,(c[j>>2]|0)+1>>1,c[m>>2]|0,c[n>>2]|0)|0;pb(c[q>>2]|0,c[r>>2]|0,c[i>>2]|0,c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)}c[p>>2]=c[q>>2];r=c[p>>2]|0;l=s;return r|0}do if(!(ib(c[k>>2]|0,(c[m>>2]|0)-1|0)|0)){if(!(c[j>>2]&1)){c[o>>2]=ob(c[i>>2]|0,c[q>>2]|0,c[r>>2]|0,c[k>>2]>>1,(c[k>>2]|0)+1>>1,c[m>>2]|0,c[n>>2]|0)|0;pb(c[r>>2]|0,c[i>>2]|0,c[o>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0);pb(c[q>>2]|0,c[i>>2]|0,c[i>>2]|0,c[j>>2]|0,c[m>>2]|0,c[n>>2]|0);break}if(ib(c[j>>2]|0,(c[m>>2]|0)-1|0)|0){c[o>>2]=ob(c[i>>2]|0,c[q>>2]|0,c[r>>2]|0,c[k>>2]>>1,c[k>>2]>>1,c[m>>2]|0,c[n>>2]|0)|0;pb(c[r>>2]|0,c[i>>2]|0,c[o>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0);mb(c[q>>2]|0,c[j>>2]|0,c[m>>2]|0,c[n>>2]|0);break}else{c[i>>2]=ob(c[r>>2]|0,c[i>>2]|0,c[q>>2]|0,c[j>>2]>>1,(c[j>>2]|0)+1>>1,c[m>>2]|0,c[n>>2]|0)|0;pb(c[q>>2]|0,c[r>>2]|0,c[i>>2]|0,c[j>>2]|0,c[m>>2]|0,c[n>>2]|0);pb(c[r>>2]|0,c[i>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0);break}}else{mb(c[q>>2]|0,c[j>>2]|0,c[m>>2]|0,c[n>>2]|0);mb(c[r>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0)}while(0);c[p>>2]=c[r>>2];r=c[p>>2]|0;l=s;return r|0}function pb(a,d,e,f,g,h){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=l;l=l+48|0;o=t+36|0;p=t+32|0;q=t+28|0;r=t+24|0;u=t+20|0;i=t+16|0;j=t+12|0;k=t+8|0;m=t+4|0;n=t;c[o>>2]=a;c[p>>2]=d;c[q>>2]=e;c[r>>2]=f;c[u>>2]=g;c[i>>2]=h;c[j>>2]=c[u>>2];while(1){u=c[j>>2]|0;c[j>>2]=u+-1;if((u|0)<=0){s=11;break}if(ib(c[r>>2]|0,c[j>>2]|0)|0)break;c[k>>2]=0;c[m>>2]=0;while(1){if((c[m>>2]|0)>(c[j>>2]|0))break;c[n>>2]=(b[(c[p>>2]|0)+(c[m>>2]<<1)>>1]|0)+(b[(c[q>>2]|0)+((c[j>>2]|0)-(c[m>>2]|0)<<1)>>1]|0);if((c[n>>2]|0)>(c[k>>2]|0))c[k>>2]=c[n>>2];c[m>>2]=(c[m>>2]|0)+1}u=hb((c[j>>2]|0)+1|0,c[i>>2]|0)|0;b[(c[o>>2]|0)+(c[j>>2]<<1)>>1]=u+(c[k>>2]|0)}if((s|0)==11){l=t;return}mb(c[o>>2]|0,c[r>>2]|0,(c[j>>2]|0)+1|0,c[i>>2]|0);l=t;return}function qb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+32|0;n=f+28|0;m=f+24|0;j=f+20|0;o=f+16|0;g=f+12|0;i=f+8|0;h=f+4|0;k=f;c[n>>2]=a;c[m>>2]=b;c[j>>2]=d;c[o>>2]=e;c[h>>2]=Qb(c[o>>2]^(c[o>>2]|0)-1)|0;c[g>>2]=c[168+((c[o>>2]|0)-1>>c[h>>2]<<2)>>2];c[h>>2]=(c[h>>2]|0)+-1;c[k>>2]=1<<c[h>>2];c[i>>2]=(c[k>>2]|0)-1;d=O(c[n>>2]|0,(c[m>>2]|0)>>>(c[h>>2]|0))|0;e=O(c[n>>2]|0,c[m>>2]&c[i>>2])|0;e=O(d-((c[j>>2]|0)>>>(c[h>>2]|0))+((e+(c[k>>2]|0)-(c[j>>2]&c[i>>2])|0)>>>(c[h>>2]|0))-1|0,c[g>>2]|0)|0;l=f;return e|0}function rb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+16|0;j=f+12|0;i=f+8|0;h=f+4|0;g=f;c[j>>2]=a;c[i>>2]=b;c[h>>2]=d;c[g>>2]=e;e=O(c[j>>2]|0,c[i>>2]|0)|0;e=O(e-(c[h>>2]|0)|0,c[168+(c[g>>2]<<2)>>2]|0)|0;l=f;return e|0}function sb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+32|0;g=n+24|0;h=n+20|0;i=n+16|0;j=n+12|0;k=n+8|0;m=n+4|0;f=n;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;if(!(c[i>>2]|0)){l=n;return}if(ib(c[h>>2]|0,c[i>>2]|0)|0){tb(c[h>>2]|0,c[i>>2]|0,c[g>>2]|0,c[j>>2]|0);l=n;return}c[m>>2]=0;c[f>>2]=((c[h>>2]|0)+1|0)/2|0;c[k>>2]=0;while(1){if((c[k>>2]|0)>=(c[f>>2]|0))break;e=B(c[(c[g>>2]|0)+(c[k>>2]<<2)>>2]|0)|0;c[m>>2]=(c[m>>2]|0)+e;c[k>>2]=(c[k>>2]|0)+1}dc(c[j>>2]|0,c[m>>2]|0,(c[i>>2]|0)+1|0);sb(c[g>>2]|0,c[f>>2]|0,c[m>>2]|0,c[j>>2]|0);sb((c[g>>2]|0)+(c[f>>2]<<2)|0,(c[h>>2]|0)-(c[f>>2]|0)|0,(c[i>>2]|0)-(c[m>>2]|0)|0,c[j>>2]|0);l=n;return}function tb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+32|0;g=n+24|0;h=n+20|0;i=n+16|0;j=n+12|0;k=n+8|0;m=n+4|0;f=n;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;switch(c[g>>2]|0){case 1:{c[k>>2]=kb(c[i>>2]|0,h)|0;cc(c[j>>2]|0,c[k>>2]|0,1);l=n;return}case 2:{c[k>>2]=ub(c[i>>2]|0,h)|0;dc(c[j>>2]|0,c[k>>2]|0,vb(c[h>>2]|0)|0);l=n;return}case 3:{c[k>>2]=wb(c[i>>2]|0,h)|0;dc(c[j>>2]|0,c[k>>2]|0,xb(c[h>>2]|0)|0);l=n;return}case 4:{c[k>>2]=yb(c[i>>2]|0,h)|0;dc(c[j>>2]|0,c[k>>2]|0,zb(c[h>>2]|0)|0);l=n;return}case 5:{c[k>>2]=Ab(c[i>>2]|0,h)|0;dc(c[j>>2]|0,c[k>>2]|0,Bb(c[h>>2]|0)|0);l=n;return}default:{d=(c[h>>2]|0)+2|0;c[f>>2]=da()|0;e=l;l=l+((1*(d<<2)|0)+15&-16)|0;c[k>>2]=jb(c[g>>2]|0,c[h>>2]|0,m,c[i>>2]|0,e)|0;dc(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0);ca(c[f>>2]|0);l=n;return}}}function ub(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=l;l=l+16|0;h=g+12|0;d=g+8|0;e=g+4|0;f=g;c[h>>2]=a;c[d>>2]=b;c[e>>2]=kb((c[h>>2]|0)+4|0,f)|0;b=Fb(c[f>>2]|0)|0;c[e>>2]=(c[e>>2]|0)+b;b=B(c[c[h>>2]>>2]|0)|0;c[f>>2]=(c[f>>2]|0)+b;if((c[c[h>>2]>>2]|0)>=0){f=c[f>>2]|0;h=c[d>>2]|0;c[h>>2]=f;h=c[e>>2]|0;l=g;return h|0}h=Fb((c[f>>2]|0)+1|0)|0;c[e>>2]=(c[e>>2]|0)+h;f=c[f>>2]|0;h=c[d>>2]|0;c[h>>2]=f;h=c[e>>2]|0;l=g;return h|0}function vb(a){a=a|0;var b=0,d=0;d=l;l=l+16|0;b=d;c[b>>2]=a;l=d;return (c[b>>2]|0?c[b>>2]<<2:1)|0}function wb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=l;l=l+16|0;h=g+12|0;d=g+8|0;e=g+4|0;f=g;c[h>>2]=a;c[d>>2]=b;c[e>>2]=ub((c[h>>2]|0)+4|0,f)|0;b=Eb(c[f>>2]|0)|0;c[e>>2]=(c[e>>2]|0)+b;b=B(c[c[h>>2]>>2]|0)|0;c[f>>2]=(c[f>>2]|0)+b;if((c[c[h>>2]>>2]|0)>=0){f=c[f>>2]|0;h=c[d>>2]|0;c[h>>2]=f;h=c[e>>2]|0;l=g;return h|0}h=Eb((c[f>>2]|0)+1|0)|0;c[e>>2]=(c[e>>2]|0)+h;f=c[f>>2]|0;h=c[d>>2]|0;c[h>>2]=f;h=c[e>>2]|0;l=g;return h|0}function xb(a){a=a|0;var b=0,d=0;d=l;l=l+16|0;b=d;c[b>>2]=a;if(!(c[b>>2]|0)){b=1;l=d;return b|0}b=(O(c[b>>2]<<1,c[b>>2]|0)|0)+1<<1;l=d;return b|0}function yb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=l;l=l+16|0;h=g+12|0;d=g+8|0;e=g+4|0;f=g;c[h>>2]=a;c[d>>2]=b;c[e>>2]=wb((c[h>>2]|0)+4|0,f)|0;b=Db(c[f>>2]|0)|0;c[e>>2]=(c[e>>2]|0)+b;b=B(c[c[h>>2]>>2]|0)|0;c[f>>2]=(c[f>>2]|0)+b;if((c[c[h>>2]>>2]|0)>=0){f=c[f>>2]|0;h=c[d>>2]|0;c[h>>2]=f;h=c[e>>2]|0;l=g;return h|0}h=Db((c[f>>2]|0)+1|0)|0;c[e>>2]=(c[e>>2]|0)+h;f=c[f>>2]|0;h=c[d>>2]|0;c[h>>2]=f;h=c[e>>2]|0;l=g;return h|0}function zb(a){a=a|0;var b=0,d=0;d=l;l=l+16|0;b=d;c[b>>2]=a;if(!(c[b>>2]|0)){b=1;l=d;return b|0}a=(O(c[b>>2]|0,c[b>>2]|0)|0)+2|0;b=(((O(a,c[b>>2]|0)|0)>>>0)/3|0)<<3;l=d;return b|0}function Ab(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=l;l=l+16|0;h=g+12|0;d=g+8|0;e=g+4|0;f=g;c[h>>2]=a;c[d>>2]=b;c[e>>2]=yb((c[h>>2]|0)+4|0,f)|0;b=Cb(c[f>>2]|0)|0;c[e>>2]=(c[e>>2]|0)+b;b=B(c[c[h>>2]>>2]|0)|0;c[f>>2]=(c[f>>2]|0)+b;if((c[c[h>>2]>>2]|0)>=0){f=c[f>>2]|0;h=c[d>>2]|0;c[h>>2]=f;h=c[e>>2]|0;l=g;return h|0}h=Cb((c[f>>2]|0)+1|0)|0;c[e>>2]=(c[e>>2]|0)+h;f=c[f>>2]|0;h=c[d>>2]|0;c[h>>2]=f;h=c[e>>2]|0;l=g;return h|0}function Bb(a){a=a|0;var b=0,d=0;d=l;l=l+16|0;b=d;c[b>>2]=a;if(!(c[b>>2]|0)){b=1;l=d;return b|0}a=(O(c[b>>2]|0,c[b>>2]|0)|0)+5|0;a=O(a,c[b>>2]|0)|0;b=((((O(a,c[b>>2]|0)|0)>>>0)/3|0)<<2)+2|0;l=d;return b|0}function Cb(a){a=a|0;var b=0,d=0;d=l;l=l+16|0;b=d;c[b>>2]=a;if(!(c[b>>2]|0)){b=0;l=d;return b|0}a=(O((c[b>>2]|0)-2|0,c[b>>2]|0)|0)+5|0;a=(O(a,c[b>>2]|0)|0)-4|0;b=((((O(a,c[b>>2]|0)|0)>>>0)/3|0)<<1)+1|0;l=d;return b|0}function Db(a){a=a|0;var b=0,d=0;d=l;l=l+16|0;b=d;c[b>>2]=a;if(!(c[b>>2]|0)){b=0;l=d;return b|0}b=rb(c[b>>2]<<1,(O((c[b>>2]<<1)-3|0,c[b>>2]|0)|0)+4|0,3,1)|0;l=d;return b|0}function Eb(a){a=a|0;var b=0,d=0;d=l;l=l+16|0;b=d;c[b>>2]=a;if(!(c[b>>2]|0)){b=0;l=d;return b|0}b=(O((c[b>>2]<<1)-2|0,c[b>>2]|0)|0)+1|0;l=d;return b|0}function Fb(a){a=a|0;var b=0,d=0;d=l;l=l+16|0;b=d;c[b>>2]=a;if(!(c[b>>2]|0)){b=0;l=d;return b|0}b=(c[b>>2]|0)+((c[b>>2]|0)-1)|0;l=d;return b|0}function Gb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+32|0;g=n+24|0;h=n+20|0;i=n+16|0;j=n+12|0;k=n+8|0;m=n+4|0;f=n;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;if(!(c[i>>2]|0)){c[k>>2]=0;while(1){if((c[k>>2]|0)>=(c[h>>2]|0))break;c[(c[g>>2]|0)+(c[k>>2]<<2)>>2]=0;c[k>>2]=(c[k>>2]|0)+1}l=n;return}if(ib(c[h>>2]|0,c[i>>2]|0)|0){Hb(c[h>>2]|0,c[i>>2]|0,c[g>>2]|0,c[j>>2]|0);l=n;return}else{c[f>>2]=Xb(c[j>>2]|0,(c[i>>2]|0)+1|0)|0;c[m>>2]=((c[h>>2]|0)+1|0)/2|0;Gb(c[g>>2]|0,c[m>>2]|0,c[f>>2]|0,c[j>>2]|0);Gb((c[g>>2]|0)+(c[m>>2]<<2)|0,(c[h>>2]|0)-(c[m>>2]|0)|0,(c[i>>2]|0)-(c[f>>2]|0)|0,c[j>>2]|0);l=n;return}}function Hb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+32|0;f=k+16|0;g=k+12|0;h=k+8|0;i=k+4|0;j=k;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=e;switch(c[f>>2]|0){case 1:{j=c[g>>2]|0;Ib(j,Wb(c[i>>2]|0,1)|0,c[h>>2]|0);l=k;return}case 2:{j=c[g>>2]|0;Jb(j,Xb(c[i>>2]|0,vb(c[g>>2]|0)|0)|0,c[h>>2]|0);l=k;return}case 3:{j=c[g>>2]|0;Kb(j,Xb(c[i>>2]|0,xb(c[g>>2]|0)|0)|0,c[h>>2]|0);l=k;return}case 4:{j=c[g>>2]|0;Lb(j,Xb(c[i>>2]|0,zb(c[g>>2]|0)|0)|0,c[h>>2]|0);l=k;return}case 5:{j=c[g>>2]|0;Mb(j,Xb(c[i>>2]|0,Bb(c[g>>2]|0)|0)|0,c[h>>2]|0);l=k;return}default:{b=(c[g>>2]|0)+2|0;c[j>>2]=da()|0;e=l;l=l+((1*(b<<2)|0)+15&-16)|0;b=c[f>>2]|0;d=c[g>>2]|0;Nb(b,d,Xb(c[i>>2]|0,nb(c[f>>2]|0,c[g>>2]|0,e)|0)|0,c[h>>2]|0,e);ca(c[j>>2]|0);l=k;return}}}function Ib(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;h=e+12|0;i=e+8|0;f=e+4|0;g=e;c[h>>2]=a;c[i>>2]=b;c[f>>2]=d;c[g>>2]=0-(c[i>>2]|0);c[c[f>>2]>>2]=(c[h>>2]|0)+(c[g>>2]|0)^c[g>>2];l=e;return}function Jb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;h=e+20|0;g=e+16|0;f=e+12|0;k=e+8|0;i=e+4|0;j=e;c[h>>2]=a;c[g>>2]=b;c[f>>2]=d;c[k>>2]=Fb((c[h>>2]|0)+1|0)|0;c[i>>2]=0-((c[g>>2]|0)>>>0>=(c[k>>2]|0)>>>0&1);c[g>>2]=(c[g>>2]|0)-(c[k>>2]&c[i>>2]);c[j>>2]=c[h>>2];c[h>>2]=((c[g>>2]|0)+1|0)>>>1;c[k>>2]=Fb(c[h>>2]|0)|0;c[g>>2]=(c[g>>2]|0)-(c[k>>2]|0);c[j>>2]=(c[j>>2]|0)-(c[h>>2]|0);c[c[f>>2]>>2]=(c[j>>2]|0)+(c[i>>2]|0)^c[i>>2];Ib(c[h>>2]|0,c[g>>2]|0,(c[f>>2]|0)+4|0);l=e;return}function Kb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+32|0;e=k+20|0;f=k+16|0;g=k+12|0;h=k+8|0;i=k+4|0;j=k;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;c[h>>2]=Eb((c[e>>2]|0)+1|0)|0;c[i>>2]=0-((c[f>>2]|0)>>>0>=(c[h>>2]|0)>>>0&1);c[f>>2]=(c[f>>2]|0)-(c[h>>2]&c[i>>2]);c[j>>2]=c[e>>2];if((c[f>>2]|0)>>>0>0)a=((Pb((c[f>>2]<<1)-1|0)|0)+1|0)>>>1;else a=0;c[e>>2]=a;c[h>>2]=Eb(c[e>>2]|0)|0;c[f>>2]=(c[f>>2]|0)-(c[h>>2]|0);c[j>>2]=(c[j>>2]|0)-(c[e>>2]|0);c[c[g>>2]>>2]=(c[j>>2]|0)+(c[i>>2]|0)^c[i>>2];Jb(c[e>>2]|0,c[f>>2]|0,(c[g>>2]|0)+4|0);l=k;return}function Lb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+32|0;f=n+28|0;g=n+24|0;h=n+20|0;i=n+16|0;j=n+12|0;k=n+8|0;m=n+4|0;e=n;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=Db((c[f>>2]|0)+1|0)|0;c[j>>2]=0-((c[g>>2]|0)>>>0>=(c[i>>2]|0)>>>0&1);c[g>>2]=(c[g>>2]|0)-(c[i>>2]&c[j>>2]);c[k>>2]=c[f>>2];c[m>>2]=0;c[e>>2]=c[f>>2];while(1){c[f>>2]=(c[m>>2]|0)+(c[e>>2]|0)>>1;c[i>>2]=Db(c[f>>2]|0)|0;if((c[i>>2]|0)>>>0<(c[g>>2]|0)>>>0){if((c[f>>2]|0)>=(c[e>>2]|0))break;c[m>>2]=(c[f>>2]|0)+1;continue}else{if((c[i>>2]|0)>>>0<=(c[g>>2]|0)>>>0)break;c[e>>2]=(c[f>>2]|0)-1;continue}}c[g>>2]=(c[g>>2]|0)-(c[i>>2]|0);c[k>>2]=(c[k>>2]|0)-(c[f>>2]|0);c[c[h>>2]>>2]=(c[k>>2]|0)+(c[j>>2]|0)^c[j>>2];Kb(c[f>>2]|0,c[g>>2]|0,(c[h>>2]|0)+4|0);l=n;return}function Mb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+32|0;f=n+28|0;g=n+24|0;h=n+20|0;i=n+16|0;j=n+12|0;k=n+8|0;m=n+4|0;e=n;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=Cb((c[f>>2]|0)+1|0)|0;c[j>>2]=0-((c[g>>2]|0)>>>0>=(c[i>>2]|0)>>>0&1);c[g>>2]=(c[g>>2]|0)-(c[i>>2]&c[j>>2]);c[k>>2]=c[f>>2];c[m>>2]=0;c[e>>2]=c[f>>2];while(1){c[f>>2]=(c[m>>2]|0)+(c[e>>2]|0)>>1;c[i>>2]=Cb(c[f>>2]|0)|0;if((c[i>>2]|0)>>>0<(c[g>>2]|0)>>>0){if((c[f>>2]|0)>=(c[e>>2]|0))break;c[m>>2]=(c[f>>2]|0)+1;continue}else{if((c[i>>2]|0)>>>0<=(c[g>>2]|0)>>>0)break;c[e>>2]=(c[f>>2]|0)-1;continue}}c[g>>2]=(c[g>>2]|0)-(c[i>>2]|0);c[k>>2]=(c[k>>2]|0)-(c[f>>2]|0);c[c[h>>2]>>2]=(c[k>>2]|0)+(c[j>>2]|0)^c[j>>2];Lb(c[f>>2]|0,c[g>>2]|0,(c[h>>2]|0)+4|0);l=n;return}function Nb(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+48|0;k=q+32|0;m=q+28|0;n=q+24|0;o=q+20|0;p=q+16|0;g=q+12|0;h=q+8|0;i=q+4|0;j=q;c[k>>2]=a;c[m>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[g>>2]=0;do{c[h>>2]=c[(c[p>>2]|0)+((c[m>>2]|0)+1<<2)>>2];c[i>>2]=0-((c[n>>2]|0)>>>0>=(c[h>>2]|0)>>>0&1);c[n>>2]=(c[n>>2]|0)-(c[h>>2]&c[i>>2]);c[j>>2]=c[m>>2];c[h>>2]=c[(c[p>>2]|0)+(c[m>>2]<<2)>>2];while(1){if((c[h>>2]|0)>>>0<=(c[n>>2]|0)>>>0)break;e=c[p>>2]|0;f=(c[m>>2]|0)+-1|0;c[m>>2]=f;c[h>>2]=c[e+(f<<2)>>2]}c[n>>2]=(c[n>>2]|0)-(c[h>>2]|0);c[j>>2]=(c[j>>2]|0)-(c[m>>2]|0);c[(c[o>>2]|0)+(c[g>>2]<<2)>>2]=(c[j>>2]|0)+(c[i>>2]|0)^c[i>>2];Ob(c[p>>2]|0,(c[m>>2]|0)+2|0,0);f=(c[g>>2]|0)+1|0;c[g>>2]=f}while((f|0)<(c[k>>2]|0));l=q;return}function Ob(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=l;l=l+32|0;e=j+16|0;f=j+12|0;g=j+8|0;h=j+4|0;i=j;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;c[i>>2]=1;do{c[h>>2]=(c[(c[e>>2]|0)+(c[i>>2]<<2)>>2]|0)-(c[(c[e>>2]|0)+((c[i>>2]|0)-1<<2)>>2]|0)-(c[g>>2]|0);c[(c[e>>2]|0)+((c[i>>2]|0)-1<<2)>>2]=c[g>>2];c[g>>2]=c[h>>2];d=(c[i>>2]|0)+1|0;c[i>>2]=d}while(d>>>0<(c[f>>2]|0)>>>0);c[(c[e>>2]|0)+((c[i>>2]|0)-1<<2)>>2]=c[g>>2];l=j;return}function Pb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=l;l=l+32|0;b=h+16|0;d=h+12|0;e=h+8|0;f=h+4|0;g=h;c[b>>2]=a;c[e>>2]=0;c[f>>2]=(Qb(c[b>>2]|0)|0)-1>>1;c[d>>2]=1<<c[f>>2];do{c[g>>2]=(c[e>>2]<<1)+(c[d>>2]|0)<<c[f>>2];if((c[g>>2]|0)>>>0<=(c[b>>2]|0)>>>0){c[e>>2]=(c[e>>2]|0)+(c[d>>2]|0);c[b>>2]=(c[b>>2]|0)-(c[g>>2]|0)}c[d>>2]=(c[d>>2]|0)>>>1;c[f>>2]=(c[f>>2]|0)+-1}while((c[f>>2]|0)>=0);l=h;return c[e>>2]|0}function Qb(a){a=a|0;var b=0,d=0,e=0,f=0;d=l;l=l+16|0;e=d+8|0;b=d+4|0;f=d;c[e>>2]=a;c[b>>2]=((c[e>>2]|0)!=0^1^1)&1;c[f>>2]=(((c[e>>2]&-65536|0)!=0^1^1)&1)<<4;c[e>>2]=(c[e>>2]|0)>>>(c[f>>2]|0);c[b>>2]=c[b>>2]|c[f>>2];c[f>>2]=(((c[e>>2]&65280|0)!=0^1^1)&1)<<3;c[e>>2]=(c[e>>2]|0)>>>(c[f>>2]|0);c[b>>2]=c[b>>2]|c[f>>2];c[f>>2]=(((c[e>>2]&240|0)!=0^1^1)&1)<<2;c[e>>2]=(c[e>>2]|0)>>>(c[f>>2]|0);c[b>>2]=c[b>>2]|c[f>>2];c[f>>2]=(((c[e>>2]&12|0)!=0^1^1)&1)<<1;c[e>>2]=(c[e>>2]|0)>>>(c[f>>2]|0);c[b>>2]=c[b>>2]|c[f>>2];c[b>>2]=(c[b>>2]|0)+(((c[e>>2]&2|0)!=0^1^1)&1);l=d;return c[b>>2]|0}function Rb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;h=e+4|0;g=e;c[f>>2]=a;c[h>>2]=b;c[g>>2]=d;d=c[h>>2]|0;c[(c[f>>2]|0)+4>>2]=d;c[c[f>>2]>>2]=d;c[(c[f>>2]|0)+12>>2]=c[g>>2];c[(c[f>>2]|0)+8>>2]=(c[c[f>>2]>>2]|0)+(c[g>>2]|0)+-1;l=e;return}function Sb(b){b=b|0;var d=0,e=0;e=l;l=l+16|0;d=e;c[d>>2]=b;if((c[(c[d>>2]|0)+8>>2]|0)>>>0<(c[c[d>>2]>>2]|0)>>>0)Tb(2788,2847,50);b=(c[d>>2]|0)+8|0;d=c[b>>2]|0;c[b>>2]=d+-1;l=e;return a[d>>0]|0}function Tb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=l;l=l+32|0;e=h;g=h+20|0;f=h+16|0;h=h+12|0;c[g>>2]=a;c[f>>2]=b;c[h>>2]=d;d=c[472]|0;a=c[h>>2]|0;b=c[g>>2]|0;c[e>>2]=c[f>>2];c[e+4>>2]=a;c[e+8>>2]=b;ze(d,2985,e)|0;$()}function Ub(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=(c[d>>2]|0)+4|0;c[a>>2]=(c[a>>2]|0)+1;l=b;return}function Vb(a){a=a|0;var b=0,e=0,f=0,g=0;f=l;l=l+16|0;b=f+8|0;e=f+4|0;g=f;c[e>>2]=a;c[g>>2]=(c[(c[e>>2]|0)+4>>2]|0)-(c[c[e>>2]>>2]|0);if((c[g>>2]|0)>=(c[(c[e>>2]|0)+12>>2]|0)){c[b>>2]=-1;g=c[b>>2]|0;l=f;return g|0}else{e=(c[e>>2]|0)+4|0;g=c[e>>2]|0;c[e>>2]=g+1;c[b>>2]=d[g>>0];g=c[b>>2]|0;l=f;return g|0}return 0}function Wb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=l;l=l+16|0;d=h+12|0;e=h+8|0;f=h+4|0;g=h;c[d>>2]=a;c[e>>2]=b;c[f>>2]=0;while(1){a=c[d>>2]|0;if((c[e>>2]|0)<=8)break;c[g>>2]=jd(a,8)|0;c[f>>2]=c[f>>2]<<8|c[g>>2];c[e>>2]=(c[e>>2]|0)-8}c[g>>2]=jd(a,c[e>>2]|0)|0;c[f>>2]=c[f>>2]<<c[e>>2]|c[g>>2];l=h;return c[f>>2]|0}function Xb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+32|0;d=k+24|0;e=k+20|0;f=k+16|0;g=k+12|0;h=k+8|0;i=k+4|0;j=k;c[e>>2]=a;c[f>>2]=b;c[g>>2]=0;c[f>>2]=(c[f>>2]|0)+-1;c[j>>2]=Qb(c[f>>2]|0)|0;if((c[j>>2]|0)<=8){c[f>>2]=(c[f>>2]|0)+1;c[i>>2]=hd(c[e>>2]|0,c[f>>2]|0)|0;kd(c[e>>2]|0,c[i>>2]|0,(c[i>>2]|0)+1|0,c[f>>2]|0);c[g>>2]=c[g>>2]<<c[j>>2]|c[i>>2];c[d>>2]=c[g>>2];j=c[d>>2]|0;l=k;return j|0}c[j>>2]=(c[j>>2]|0)-8;c[h>>2]=((c[f>>2]|0)>>>(c[j>>2]|0))+1;c[i>>2]=hd(c[e>>2]|0,c[h>>2]|0)|0;kd(c[e>>2]|0,c[i>>2]|0,(c[i>>2]|0)+1|0,c[h>>2]|0);c[g>>2]=c[g>>2]<<8|c[i>>2];i=c[g>>2]<<c[j>>2];c[g>>2]=i|(Wb(c[e>>2]|0,c[j>>2]|0)|0);if((c[g>>2]|0)>>>0>(c[f>>2]|0)>>>0){Yb(2856);c[g>>2]=c[f>>2]}c[d>>2]=c[g>>2];j=c[d>>2]|0;l=k;return j|0}function Yb(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;d=b;e=b+4|0;c[e>>2]=a;a=c[472]|0;c[d>>2]=c[e>>2];ze(a,2874,d)|0;l=b;return}function Zb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;h=e+4|0;g=e;c[f>>2]=a;c[h>>2]=b;c[g>>2]=d;d=c[h>>2]|0;c[c[f>>2]>>2]=d;c[(c[f>>2]|0)+4>>2]=d;c[(c[f>>2]|0)+8>>2]=(c[c[f>>2]>>2]|0)+(c[g>>2]|0)+-1;c[(c[f>>2]|0)+12>>2]=c[g>>2];l=e;return}function _b(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;c[(c[e>>2]|0)+8>>2]=(c[c[e>>2]>>2]|0)+(c[f>>2]|0)+-1;c[(c[e>>2]|0)+12>>2]=c[f>>2];l=d;return}function $b(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=l;l=l+16|0;e=g+8|0;f=g+4|0;h=g;c[e>>2]=b;c[f>>2]=d;c[h>>2]=(c[(c[e>>2]|0)+4>>2]|0)-(c[c[e>>2]>>2]|0);if((c[h>>2]|0)>=(c[(c[e>>2]|0)+12>>2]|0))ac(2892,2916,58);f=c[f>>2]&255;e=(c[e>>2]|0)+4|0;h=c[e>>2]|0;c[e>>2]=h+1;a[h>>0]=f;l=g;return}function ac(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=l;l=l+32|0;e=h;g=h+20|0;f=h+16|0;h=h+12|0;c[g>>2]=a;c[f>>2]=b;c[h>>2]=d;d=c[472]|0;a=c[h>>2]|0;b=c[g>>2]|0;c[e>>2]=c[f>>2];c[e+4>>2]=a;c[e+8>>2]=b;ze(d,2985,e)|0;$()}function bc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=l;l=l+16|0;e=g+4|0;f=g;c[e>>2]=b;c[f>>2]=d;if((c[(c[e>>2]|0)+8>>2]|0)>>>0<(c[(c[e>>2]|0)+4>>2]|0)>>>0)ac(2925,2916,66);d=c[f>>2]&255;e=(c[e>>2]|0)+8|0;f=c[e>>2]|0;c[e>>2]=f+-1;a[f>>0]=d;l=g;return}function cc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=l;l=l+32|0;e=j+16|0;f=j+12|0;g=j+8|0;h=j+4|0;i=j;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;while(1){a=c[g>>2]|0;if((c[g>>2]|0)<=8)break;c[g>>2]=a-8;c[h>>2]=(c[f>>2]|0)>>>(c[g>>2]|0)&255;sd(c[e>>2]|0,c[h>>2]|0,(c[h>>2]|0)+1|0,8)}c[i>>2]=1<<a;c[h>>2]=c[f>>2]&(c[i>>2]|0)-1;sd(c[e>>2]|0,c[h>>2]|0,(c[h>>2]|0)+1|0,c[g>>2]|0);l=j;return}function dc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+32|0;e=k+20|0;f=k+16|0;g=k+12|0;h=k+8|0;i=k+4|0;j=k;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;c[g>>2]=(c[g>>2]|0)+-1;c[j>>2]=Qb(c[g>>2]|0)|0;if((c[j>>2]|0)>8){c[j>>2]=(c[j>>2]|0)-8;c[h>>2]=((c[g>>2]|0)>>>(c[j>>2]|0))+1;c[i>>2]=(c[f>>2]|0)>>>(c[j>>2]|0);od(c[e>>2]|0,c[i>>2]|0,(c[i>>2]|0)+1|0,c[h>>2]|0);cc(c[e>>2]|0,c[f>>2]|0,c[j>>2]|0);l=k;return}else{od(c[e>>2]|0,c[f>>2]|0,(c[f>>2]|0)+1|0,(c[g>>2]|0)+1|0);l=k;return}}function ec(a,b,d,e,f,g,h,i,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=l;l=l+64|0;w=x+48|0;k=x+44|0;m=x+40|0;n=x+36|0;o=x+32|0;p=x+28|0;q=x+24|0;r=x+16|0;s=x+12|0;t=x+8|0;u=x+4|0;v=x;c[w>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;c[x+20>>2]=i;c[r>>2]=j;c[t>>2]=c[w>>2];j=c[o>>2]|0;c[o>>2]=j+4;c[u>>2]=c[j>>2];j=c[o>>2]|0;c[o>>2]=j+4;c[v>>2]=c[j>>2];if((c[v>>2]|0)!=1){h=O(c[m>>2]|0,c[u>>2]|0)|0;i=O(c[q>>2]|0,c[u>>2]|0)|0;j=O(c[m>>2]|0,c[n>>2]|0)|0;ec(c[w>>2]|0,c[k>>2]|0,h,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,i,j,c[v>>2]|0)}switch(c[u>>2]|0){case 2:{fc(c[w>>2]|0,c[m>>2]|0,c[p>>2]|0,c[v>>2]|0,c[q>>2]|0,c[r>>2]|0);l=x;return}case 4:{gc(c[w>>2]|0,c[m>>2]|0,c[p>>2]|0,c[v>>2]|0,c[q>>2]|0,c[r>>2]|0);l=x;return}case 3:{c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[q>>2]|0))break;c[w>>2]=(c[t>>2]|0)+((O(c[s>>2]|0,c[r>>2]|0)|0)<<3);hc(c[w>>2]|0,c[m>>2]|0,c[p>>2]|0,c[v>>2]|0);c[s>>2]=(c[s>>2]|0)+1}l=x;return}case 5:{c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[q>>2]|0))break;c[w>>2]=(c[t>>2]|0)+((O(c[s>>2]|0,c[r>>2]|0)|0)<<3);ic(c[w>>2]|0,c[m>>2]|0,c[p>>2]|0,c[v>>2]|0);c[s>>2]=(c[s>>2]|0)+1}l=x;return}default:{c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[q>>2]|0))break;c[w>>2]=(c[t>>2]|0)+((O(c[s>>2]|0,c[r>>2]|0)|0)<<3);jc(c[w>>2]|0,c[m>>2]|0,c[p>>2]|0,c[v>>2]|0,c[u>>2]|0);c[s>>2]=(c[s>>2]|0)+1}l=x;return}}}function fc(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=l;l=l+64|0;r=v+48|0;s=v+44|0;t=v+40|0;u=v+36|0;i=v+32|0;j=v+28|0;k=v+24|0;m=v+20|0;n=v+16|0;o=v+12|0;p=v+8|0;q=v;c[r>>2]=a;c[s>>2]=b;c[t>>2]=d;c[u>>2]=e;c[i>>2]=f;c[j>>2]=h;c[p>>2]=c[r>>2];c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[i>>2]|0))break;c[r>>2]=(c[p>>2]|0)+((O(c[n>>2]|0,c[j>>2]|0)|0)<<3);c[k>>2]=(c[r>>2]|0)+(c[u>>2]<<3);c[m>>2]=(c[t>>2]|0)+268;c[o>>2]=0;while(1){if((c[o>>2]|0)>=(c[u>>2]|0))break;g[c[r>>2]>>2]=+g[c[r>>2]>>2];g[(c[r>>2]|0)+4>>2]=+g[(c[r>>2]|0)+4>>2];g[c[k>>2]>>2]=+g[c[k>>2]>>2];g[(c[k>>2]|0)+4>>2]=+g[(c[k>>2]|0)+4>>2];g[q>>2]=+g[c[k>>2]>>2]*+g[c[m>>2]>>2]-+g[(c[k>>2]|0)+4>>2]*+g[(c[m>>2]|0)+4>>2];g[q+4>>2]=+g[c[k>>2]>>2]*+g[(c[m>>2]|0)+4>>2]+ +g[(c[k>>2]|0)+4>>2]*+g[c[m>>2]>>2];c[m>>2]=(c[m>>2]|0)+(c[s>>2]<<3);g[c[k>>2]>>2]=+g[c[r>>2]>>2]-+g[q>>2];g[(c[k>>2]|0)+4>>2]=+g[(c[r>>2]|0)+4>>2]-+g[q+4>>2];h=c[r>>2]|0;g[h>>2]=+g[h>>2]+ +g[q>>2];h=(c[r>>2]|0)+4|0;g[h>>2]=+g[h>>2]+ +g[q+4>>2];c[k>>2]=(c[k>>2]|0)+8;c[r>>2]=(c[r>>2]|0)+8;c[o>>2]=(c[o>>2]|0)+1}c[n>>2]=(c[n>>2]|0)+1}l=v;return}function gc(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=l;l=l+112|0;u=y+104|0;v=y+100|0;w=y+96|0;x=y+92|0;i=y+88|0;j=y+84|0;k=y+80|0;m=y+76|0;n=y+72|0;o=y+24|0;p=y+16|0;q=y+12|0;r=y+8|0;s=y+4|0;t=y;c[u>>2]=a;c[v>>2]=b;c[w>>2]=d;c[x>>2]=e;c[i>>2]=f;c[j>>2]=h;c[p>>2]=c[x>>2]<<1;c[q>>2]=(c[x>>2]|0)*3;c[t>>2]=c[u>>2];c[r>>2]=0;while(1){if((c[r>>2]|0)>=(c[i>>2]|0))break;c[u>>2]=(c[t>>2]|0)+((O(c[r>>2]|0,c[j>>2]|0)|0)<<3);h=(c[w>>2]|0)+268|0;c[k>>2]=h;c[m>>2]=h;c[n>>2]=h;c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[x>>2]|0))break;g[o>>2]=+g[(c[u>>2]|0)+(c[x>>2]<<3)>>2]*+g[c[k>>2]>>2]-+g[(c[u>>2]|0)+(c[x>>2]<<3)+4>>2]*+g[(c[k>>2]|0)+4>>2];g[o+4>>2]=+g[(c[u>>2]|0)+(c[x>>2]<<3)>>2]*+g[(c[k>>2]|0)+4>>2]+ +g[(c[u>>2]|0)+(c[x>>2]<<3)+4>>2]*+g[c[k>>2]>>2];g[o+8>>2]=+g[(c[u>>2]|0)+(c[p>>2]<<3)>>2]*+g[c[m>>2]>>2]-+g[(c[u>>2]|0)+(c[p>>2]<<3)+4>>2]*+g[(c[m>>2]|0)+4>>2];g[o+8+4>>2]=+g[(c[u>>2]|0)+(c[p>>2]<<3)>>2]*+g[(c[m>>2]|0)+4>>2]+ +g[(c[u>>2]|0)+(c[p>>2]<<3)+4>>2]*+g[c[m>>2]>>2];g[o+16>>2]=+g[(c[u>>2]|0)+(c[q>>2]<<3)>>2]*+g[c[n>>2]>>2]-+g[(c[u>>2]|0)+(c[q>>2]<<3)+4>>2]*+g[(c[n>>2]|0)+4>>2];g[o+16+4>>2]=+g[(c[u>>2]|0)+(c[q>>2]<<3)>>2]*+g[(c[n>>2]|0)+4>>2]+ +g[(c[u>>2]|0)+(c[q>>2]<<3)+4>>2]*+g[c[n>>2]>>2];g[c[u>>2]>>2]=+g[c[u>>2]>>2];g[(c[u>>2]|0)+4>>2]=+g[(c[u>>2]|0)+4>>2];g[o+40>>2]=+g[c[u>>2]>>2]-+g[o+8>>2];g[o+40+4>>2]=+g[(c[u>>2]|0)+4>>2]-+g[o+8+4>>2];h=c[u>>2]|0;g[h>>2]=+g[h>>2]+ +g[o+8>>2];h=(c[u>>2]|0)+4|0;g[h>>2]=+g[h>>2]+ +g[o+8+4>>2];g[o+24>>2]=+g[o>>2]+ +g[o+16>>2];g[o+24+4>>2]=+g[o+4>>2]+ +g[o+16+4>>2];g[o+32>>2]=+g[o>>2]-+g[o+16>>2];g[o+32+4>>2]=+g[o+4>>2]-+g[o+16+4>>2];g[(c[u>>2]|0)+(c[p>>2]<<3)>>2]=+g[(c[u>>2]|0)+(c[p>>2]<<3)>>2];g[(c[u>>2]|0)+(c[p>>2]<<3)+4>>2]=+g[(c[u>>2]|0)+(c[p>>2]<<3)+4>>2];g[(c[u>>2]|0)+(c[p>>2]<<3)>>2]=+g[c[u>>2]>>2]-+g[o+24>>2];g[(c[u>>2]|0)+(c[p>>2]<<3)+4>>2]=+g[(c[u>>2]|0)+4>>2]-+g[o+24+4>>2];c[k>>2]=(c[k>>2]|0)+(c[v>>2]<<3);c[m>>2]=(c[m>>2]|0)+(c[v>>2]<<1<<3);c[n>>2]=(c[n>>2]|0)+((c[v>>2]|0)*3<<3);h=c[u>>2]|0;g[h>>2]=+g[h>>2]+ +g[o+24>>2];h=(c[u>>2]|0)+4|0;g[h>>2]=+g[h>>2]+ +g[o+24+4>>2];g[(c[u>>2]|0)+(c[x>>2]<<3)>>2]=+g[o+40>>2]+ +g[o+32+4>>2];g[(c[u>>2]|0)+(c[x>>2]<<3)+4>>2]=+g[o+40+4>>2]-+g[o+32>>2];g[(c[u>>2]|0)+(c[q>>2]<<3)>>2]=+g[o+40>>2]-+g[o+32+4>>2];g[(c[u>>2]|0)+(c[q>>2]<<3)+4>>2]=+g[o+40+4>>2]+ +g[o+32>>2];c[u>>2]=(c[u>>2]|0)+8;c[s>>2]=(c[s>>2]|0)+1}c[r>>2]=(c[r>>2]|0)+1}l=y;return}function hc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;q=l;l=l+80|0;k=q+76|0;m=q+72|0;r=q+68|0;n=q+64|0;o=q+60|0;p=q+56|0;f=q+52|0;h=q+48|0;i=q+8|0;j=q;c[k>>2]=a;c[m>>2]=b;c[r>>2]=d;c[n>>2]=e;c[o>>2]=c[n>>2];c[p>>2]=c[n>>2]<<1;e=(c[r>>2]|0)+268+((O(c[m>>2]|0,c[n>>2]|0)|0)<<3)|0;c[j>>2]=c[e>>2];c[j+4>>2]=c[e+4>>2];e=(c[r>>2]|0)+268|0;c[h>>2]=e;c[f>>2]=e;do{g[i+8>>2]=+g[(c[k>>2]|0)+(c[n>>2]<<3)>>2]*+g[c[f>>2]>>2]-+g[(c[k>>2]|0)+(c[n>>2]<<3)+4>>2]*+g[(c[f>>2]|0)+4>>2];g[i+8+4>>2]=+g[(c[k>>2]|0)+(c[n>>2]<<3)>>2]*+g[(c[f>>2]|0)+4>>2]+ +g[(c[k>>2]|0)+(c[n>>2]<<3)+4>>2]*+g[c[f>>2]>>2];g[i+16>>2]=+g[(c[k>>2]|0)+(c[p>>2]<<3)>>2]*+g[c[h>>2]>>2]-+g[(c[k>>2]|0)+(c[p>>2]<<3)+4>>2]*+g[(c[h>>2]|0)+4>>2];g[i+16+4>>2]=+g[(c[k>>2]|0)+(c[p>>2]<<3)>>2]*+g[(c[h>>2]|0)+4>>2]+ +g[(c[k>>2]|0)+(c[p>>2]<<3)+4>>2]*+g[c[h>>2]>>2];g[i+24>>2]=+g[i+8>>2]+ +g[i+16>>2];g[i+24+4>>2]=+g[i+8+4>>2]+ +g[i+16+4>>2];g[i>>2]=+g[i+8>>2]-+g[i+16>>2];g[i+4>>2]=+g[i+8+4>>2]-+g[i+16+4>>2];c[f>>2]=(c[f>>2]|0)+(c[m>>2]<<3);c[h>>2]=(c[h>>2]|0)+(c[m>>2]<<1<<3);g[(c[k>>2]|0)+(c[n>>2]<<3)>>2]=+g[c[k>>2]>>2]-+g[i+24>>2]*.5;g[(c[k>>2]|0)+(c[n>>2]<<3)+4>>2]=+g[(c[k>>2]|0)+4>>2]-+g[i+24+4>>2]*.5;g[i>>2]=+g[i>>2]*+g[j+4>>2];r=i+4|0;g[r>>2]=+g[r>>2]*+g[j+4>>2];r=c[k>>2]|0;g[r>>2]=+g[r>>2]+ +g[i+24>>2];r=(c[k>>2]|0)+4|0;g[r>>2]=+g[r>>2]+ +g[i+24+4>>2];g[(c[k>>2]|0)+(c[p>>2]<<3)>>2]=+g[(c[k>>2]|0)+(c[n>>2]<<3)>>2]+ +g[i+4>>2];g[(c[k>>2]|0)+(c[p>>2]<<3)+4>>2]=+g[(c[k>>2]|0)+(c[n>>2]<<3)+4>>2]-+g[i>>2];r=(c[k>>2]|0)+(c[n>>2]<<3)|0;g[r>>2]=+g[r>>2]-+g[i+4>>2];r=(c[k>>2]|0)+(c[n>>2]<<3)+4|0;g[r>>2]=+g[r>>2]+ +g[i>>2];c[k>>2]=(c[k>>2]|0)+8;r=(c[o>>2]|0)+-1|0;c[o>>2]=r}while((r|0)!=0);l=q;return}function ic(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0.0;t=l;l=l+176|0;v=t+164|0;p=t+160|0;u=t+156|0;q=t+152|0;r=t+148|0;s=t+144|0;f=t+140|0;h=t+136|0;i=t+132|0;j=t+128|0;k=t+24|0;w=t+20|0;m=t+16|0;n=t+8|0;o=t;c[v>>2]=a;c[p>>2]=b;c[u>>2]=d;c[q>>2]=e;c[w>>2]=(c[u>>2]|0)+268;e=(c[w>>2]|0)+((O(c[p>>2]|0,c[q>>2]|0)|0)<<3)|0;c[n>>2]=c[e>>2];c[n+4>>2]=c[e+4>>2];e=(c[w>>2]|0)+((O(c[p>>2]<<1,c[q>>2]|0)|0)<<3)|0;c[o>>2]=c[e>>2];c[o+4>>2]=c[e+4>>2];c[r>>2]=c[v>>2];c[s>>2]=(c[r>>2]|0)+(c[q>>2]<<3);c[f>>2]=(c[r>>2]|0)+(c[q>>2]<<1<<3);c[h>>2]=(c[r>>2]|0)+((c[q>>2]|0)*3<<3);c[i>>2]=(c[r>>2]|0)+(c[q>>2]<<2<<3);c[m>>2]=(c[u>>2]|0)+268;c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[q>>2]|0))break;w=c[r>>2]|0;c[k>>2]=c[w>>2];c[k+4>>2]=c[w+4>>2];x=+g[c[s>>2]>>2]*+g[(c[m>>2]|0)+((O(c[j>>2]|0,c[p>>2]|0)|0)<<3)>>2];g[k+8>>2]=x-+g[(c[s>>2]|0)+4>>2]*+g[(c[m>>2]|0)+((O(c[j>>2]|0,c[p>>2]|0)|0)<<3)+4>>2];x=+g[c[s>>2]>>2]*+g[(c[m>>2]|0)+((O(c[j>>2]|0,c[p>>2]|0)|0)<<3)+4>>2];g[k+8+4>>2]=x+ +g[(c[s>>2]|0)+4>>2]*+g[(c[m>>2]|0)+((O(c[j>>2]|0,c[p>>2]|0)|0)<<3)>>2];x=+g[c[f>>2]>>2]*+g[(c[m>>2]|0)+((O(c[j>>2]<<1,c[p>>2]|0)|0)<<3)>>2];g[k+16>>2]=x-+g[(c[f>>2]|0)+4>>2]*+g[(c[m>>2]|0)+((O(c[j>>2]<<1,c[p>>2]|0)|0)<<3)+4>>2];x=+g[c[f>>2]>>2]*+g[(c[m>>2]|0)+((O(c[j>>2]<<1,c[p>>2]|0)|0)<<3)+4>>2];g[k+16+4>>2]=x+ +g[(c[f>>2]|0)+4>>2]*+g[(c[m>>2]|0)+((O(c[j>>2]<<1,c[p>>2]|0)|0)<<3)>>2];x=+g[c[h>>2]>>2]*+g[(c[m>>2]|0)+((O((c[j>>2]|0)*3|0,c[p>>2]|0)|0)<<3)>>2];g[k+24>>2]=x-+g[(c[h>>2]|0)+4>>2]*+g[(c[m>>2]|0)+((O((c[j>>2]|0)*3|0,c[p>>2]|0)|0)<<3)+4>>2];x=+g[c[h>>2]>>2]*+g[(c[m>>2]|0)+((O((c[j>>2]|0)*3|0,c[p>>2]|0)|0)<<3)+4>>2];g[k+24+4>>2]=x+ +g[(c[h>>2]|0)+4>>2]*+g[(c[m>>2]|0)+((O((c[j>>2]|0)*3|0,c[p>>2]|0)|0)<<3)>>2];x=+g[c[i>>2]>>2]*+g[(c[m>>2]|0)+((O(c[j>>2]<<2,c[p>>2]|0)|0)<<3)>>2];g[k+32>>2]=x-+g[(c[i>>2]|0)+4>>2]*+g[(c[m>>2]|0)+((O(c[j>>2]<<2,c[p>>2]|0)|0)<<3)+4>>2];x=+g[c[i>>2]>>2]*+g[(c[m>>2]|0)+((O(c[j>>2]<<2,c[p>>2]|0)|0)<<3)+4>>2];g[k+32+4>>2]=x+ +g[(c[i>>2]|0)+4>>2]*+g[(c[m>>2]|0)+((O(c[j>>2]<<2,c[p>>2]|0)|0)<<3)>>2];g[k+56>>2]=+g[k+8>>2]+ +g[k+32>>2];g[k+56+4>>2]=+g[k+8+4>>2]+ +g[k+32+4>>2];g[k+80>>2]=+g[k+8>>2]-+g[k+32>>2];g[k+80+4>>2]=+g[k+8+4>>2]-+g[k+32+4>>2];g[k+64>>2]=+g[k+16>>2]+ +g[k+24>>2];g[k+64+4>>2]=+g[k+16+4>>2]+ +g[k+24+4>>2];g[k+72>>2]=+g[k+16>>2]-+g[k+24>>2];g[k+72+4>>2]=+g[k+16+4>>2]-+g[k+24+4>>2];w=c[r>>2]|0;g[w>>2]=+g[w>>2]+(+g[k+56>>2]+ +g[k+64>>2]);w=(c[r>>2]|0)+4|0;g[w>>2]=+g[w>>2]+(+g[k+56+4>>2]+ +g[k+64+4>>2]);g[k+40>>2]=+g[k>>2]+ +g[k+56>>2]*+g[n>>2]+ +g[k+64>>2]*+g[o>>2];g[k+40+4>>2]=+g[k+4>>2]+ +g[k+56+4>>2]*+g[n>>2]+ +g[k+64+4>>2]*+g[o>>2];g[k+48>>2]=+g[k+80+4>>2]*+g[n+4>>2]+ +g[k+72+4>>2]*+g[o+4>>2];g[k+48+4>>2]=-(+g[k+80>>2]*+g[n+4>>2])-+g[k+72>>2]*+g[o+4>>2];g[c[s>>2]>>2]=+g[k+40>>2]-+g[k+48>>2];g[(c[s>>2]|0)+4>>2]=+g[k+40+4>>2]-+g[k+48+4>>2];g[c[i>>2]>>2]=+g[k+40>>2]+ +g[k+48>>2];g[(c[i>>2]|0)+4>>2]=+g[k+40+4>>2]+ +g[k+48+4>>2];g[k+88>>2]=+g[k>>2]+ +g[k+56>>2]*+g[o>>2]+ +g[k+64>>2]*+g[n>>2];g[k+88+4>>2]=+g[k+4>>2]+ +g[k+56+4>>2]*+g[o>>2]+ +g[k+64+4>>2]*+g[n>>2];g[k+96>>2]=-(+g[k+80+4>>2]*+g[o+4>>2])+ +g[k+72+4>>2]*+g[n+4>>2];g[k+96+4>>2]=+g[k+80>>2]*+g[o+4>>2]-+g[k+72>>2]*+g[n+4>>2];g[c[f>>2]>>2]=+g[k+88>>2]+ +g[k+96>>2];g[(c[f>>2]|0)+4>>2]=+g[k+88+4>>2]+ +g[k+96+4>>2];g[c[h>>2]>>2]=+g[k+88>>2]-+g[k+96>>2];g[(c[h>>2]|0)+4>>2]=+g[k+88+4>>2]-+g[k+96+4>>2];c[r>>2]=(c[r>>2]|0)+8;c[s>>2]=(c[s>>2]|0)+8;c[f>>2]=(c[f>>2]|0)+8;c[h>>2]=(c[h>>2]|0)+8;c[i>>2]=(c[i>>2]|0)+8;c[j>>2]=(c[j>>2]|0)+1}l=t;return}function jc(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;v=l;l=l+64|0;r=v+60|0;s=v+56|0;w=v+52|0;t=v+48|0;u=v+44|0;h=v+40|0;i=v+36|0;j=v+32|0;k=v+28|0;m=v+24|0;n=v+16|0;o=v+8|0;p=v+4|0;q=v;c[r>>2]=a;c[s>>2]=b;c[w>>2]=d;c[t>>2]=e;c[u>>2]=f;c[m>>2]=(c[w>>2]|0)+268;c[o>>2]=c[c[w>>2]>>2];f=c[u>>2]|0;c[p>>2]=da()|0;a=l;l=l+((1*(f<<3)|0)+15&-16)|0;c[h>>2]=0;while(1){if((c[h>>2]|0)>=(c[t>>2]|0))break;c[i>>2]=c[h>>2];c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[u>>2]|0))break;w=a+(c[j>>2]<<3)|0;f=(c[r>>2]|0)+(c[i>>2]<<3)|0;c[w>>2]=c[f>>2];c[w+4>>2]=c[f+4>>2];c[i>>2]=(c[i>>2]|0)+(c[t>>2]|0);c[j>>2]=(c[j>>2]|0)+1}c[i>>2]=c[h>>2];c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[u>>2]|0))break;c[q>>2]=0;w=(c[r>>2]|0)+(c[i>>2]<<3)|0;c[w>>2]=c[a>>2];c[w+4>>2]=c[a+4>>2];c[k>>2]=1;while(1){if((c[k>>2]|0)>=(c[u>>2]|0))break;w=O(c[s>>2]|0,c[i>>2]|0)|0;c[q>>2]=(c[q>>2]|0)+w;if((c[q>>2]|0)>=(c[o>>2]|0))c[q>>2]=(c[q>>2]|0)-(c[o>>2]|0);g[n>>2]=+g[a+(c[k>>2]<<3)>>2]*+g[(c[m>>2]|0)+(c[q>>2]<<3)>>2]-+g[a+(c[k>>2]<<3)+4>>2]*+g[(c[m>>2]|0)+(c[q>>2]<<3)+4>>2];g[n+4>>2]=+g[a+(c[k>>2]<<3)>>2]*+g[(c[m>>2]|0)+(c[q>>2]<<3)+4>>2]+ +g[a+(c[k>>2]<<3)+4>>2]*+g[(c[m>>2]|0)+(c[q>>2]<<3)>>2];w=(c[r>>2]|0)+(c[i>>2]<<3)|0;g[w>>2]=+g[w>>2]+ +g[n>>2];w=(c[r>>2]|0)+(c[i>>2]<<3)+4|0;g[w>>2]=+g[w>>2]+ +g[n+4>>2];c[k>>2]=(c[k>>2]|0)+1}c[i>>2]=(c[i>>2]|0)+(c[t>>2]|0);c[j>>2]=(c[j>>2]|0)+1}c[h>>2]=(c[h>>2]|0)+1}ca(c[p>>2]|0);l=v;return}function kc(a,b,d,e,f,g,h,i,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=l;l=l+64|0;w=x+48|0;k=x+44|0;m=x+40|0;n=x+36|0;o=x+32|0;p=x+28|0;q=x+24|0;r=x+16|0;s=x+12|0;t=x+8|0;u=x+4|0;v=x;c[w>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;c[x+20>>2]=i;c[r>>2]=j;c[t>>2]=c[w>>2];j=c[o>>2]|0;c[o>>2]=j+4;c[u>>2]=c[j>>2];j=c[o>>2]|0;c[o>>2]=j+4;c[v>>2]=c[j>>2];if((c[v>>2]|0)!=1){h=O(c[m>>2]|0,c[u>>2]|0)|0;i=O(c[q>>2]|0,c[u>>2]|0)|0;j=O(c[m>>2]|0,c[n>>2]|0)|0;kc(c[w>>2]|0,c[k>>2]|0,h,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,i,j,c[v>>2]|0)}switch(c[u>>2]|0){case 2:{lc(c[w>>2]|0,c[m>>2]|0,c[p>>2]|0,c[v>>2]|0,c[q>>2]|0,c[r>>2]|0);l=x;return}case 4:{mc(c[w>>2]|0,c[m>>2]|0,c[p>>2]|0,c[v>>2]|0,c[q>>2]|0,c[r>>2]|0);l=x;return}case 3:{c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[q>>2]|0))break;c[w>>2]=(c[t>>2]|0)+((O(c[s>>2]|0,c[r>>2]|0)|0)<<3);nc(c[w>>2]|0,c[m>>2]|0,c[p>>2]|0,c[v>>2]|0);c[s>>2]=(c[s>>2]|0)+1}l=x;return}case 5:{c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[q>>2]|0))break;c[w>>2]=(c[t>>2]|0)+((O(c[s>>2]|0,c[r>>2]|0)|0)<<3);oc(c[w>>2]|0,c[m>>2]|0,c[p>>2]|0,c[v>>2]|0);c[s>>2]=(c[s>>2]|0)+1}l=x;return}default:{c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[q>>2]|0))break;c[w>>2]=(c[t>>2]|0)+((O(c[s>>2]|0,c[r>>2]|0)|0)<<3);pc(c[w>>2]|0,c[m>>2]|0,c[p>>2]|0,c[v>>2]|0,c[u>>2]|0);c[s>>2]=(c[s>>2]|0)+1}l=x;return}}}function lc(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=l;l=l+64|0;r=v+52|0;s=v+48|0;t=v+44|0;u=v+40|0;i=v+36|0;j=v+32|0;k=v+28|0;m=v+24|0;n=v+16|0;o=v+8|0;p=v+4|0;q=v;c[r>>2]=a;c[s>>2]=b;c[t>>2]=d;c[u>>2]=e;c[i>>2]=f;c[j>>2]=h;c[q>>2]=c[r>>2];c[o>>2]=0;while(1){if((c[o>>2]|0)>=(c[i>>2]|0))break;c[r>>2]=(c[q>>2]|0)+((O(c[o>>2]|0,c[j>>2]|0)|0)<<3);c[k>>2]=(c[r>>2]|0)+(c[u>>2]<<3);c[m>>2]=(c[t>>2]|0)+268;c[p>>2]=0;while(1){if((c[p>>2]|0)>=(c[u>>2]|0))break;g[n>>2]=+g[c[k>>2]>>2]*+g[c[m>>2]>>2]+ +g[(c[k>>2]|0)+4>>2]*+g[(c[m>>2]|0)+4>>2];g[n+4>>2]=+g[(c[k>>2]|0)+4>>2]*+g[c[m>>2]>>2]-+g[c[k>>2]>>2]*+g[(c[m>>2]|0)+4>>2];c[m>>2]=(c[m>>2]|0)+(c[s>>2]<<3);g[c[k>>2]>>2]=+g[c[r>>2]>>2]-+g[n>>2];g[(c[k>>2]|0)+4>>2]=+g[(c[r>>2]|0)+4>>2]-+g[n+4>>2];h=c[r>>2]|0;g[h>>2]=+g[h>>2]+ +g[n>>2];h=(c[r>>2]|0)+4|0;g[h>>2]=+g[h>>2]+ +g[n+4>>2];c[k>>2]=(c[k>>2]|0)+8;c[r>>2]=(c[r>>2]|0)+8;c[p>>2]=(c[p>>2]|0)+1}c[o>>2]=(c[o>>2]|0)+1}l=v;return}function mc(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=l;l=l+112|0;u=y+104|0;v=y+100|0;w=y+96|0;x=y+92|0;i=y+88|0;j=y+84|0;k=y+80|0;m=y+76|0;n=y+72|0;o=y+24|0;p=y+16|0;q=y+12|0;r=y+8|0;s=y+4|0;t=y;c[u>>2]=a;c[v>>2]=b;c[w>>2]=d;c[x>>2]=e;c[i>>2]=f;c[j>>2]=h;c[p>>2]=c[x>>2]<<1;c[q>>2]=(c[x>>2]|0)*3;c[t>>2]=c[u>>2];c[r>>2]=0;while(1){if((c[r>>2]|0)>=(c[i>>2]|0))break;c[u>>2]=(c[t>>2]|0)+((O(c[r>>2]|0,c[j>>2]|0)|0)<<3);h=(c[w>>2]|0)+268|0;c[k>>2]=h;c[m>>2]=h;c[n>>2]=h;c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[x>>2]|0))break;g[o>>2]=+g[(c[u>>2]|0)+(c[x>>2]<<3)>>2]*+g[c[k>>2]>>2]+ +g[(c[u>>2]|0)+(c[x>>2]<<3)+4>>2]*+g[(c[k>>2]|0)+4>>2];g[o+4>>2]=+g[(c[u>>2]|0)+(c[x>>2]<<3)+4>>2]*+g[c[k>>2]>>2]-+g[(c[u>>2]|0)+(c[x>>2]<<3)>>2]*+g[(c[k>>2]|0)+4>>2];g[o+8>>2]=+g[(c[u>>2]|0)+(c[p>>2]<<3)>>2]*+g[c[m>>2]>>2]+ +g[(c[u>>2]|0)+(c[p>>2]<<3)+4>>2]*+g[(c[m>>2]|0)+4>>2];g[o+8+4>>2]=+g[(c[u>>2]|0)+(c[p>>2]<<3)+4>>2]*+g[c[m>>2]>>2]-+g[(c[u>>2]|0)+(c[p>>2]<<3)>>2]*+g[(c[m>>2]|0)+4>>2];g[o+16>>2]=+g[(c[u>>2]|0)+(c[q>>2]<<3)>>2]*+g[c[n>>2]>>2]+ +g[(c[u>>2]|0)+(c[q>>2]<<3)+4>>2]*+g[(c[n>>2]|0)+4>>2];g[o+16+4>>2]=+g[(c[u>>2]|0)+(c[q>>2]<<3)+4>>2]*+g[c[n>>2]>>2]-+g[(c[u>>2]|0)+(c[q>>2]<<3)>>2]*+g[(c[n>>2]|0)+4>>2];g[o+40>>2]=+g[c[u>>2]>>2]-+g[o+8>>2];g[o+40+4>>2]=+g[(c[u>>2]|0)+4>>2]-+g[o+8+4>>2];h=c[u>>2]|0;g[h>>2]=+g[h>>2]+ +g[o+8>>2];h=(c[u>>2]|0)+4|0;g[h>>2]=+g[h>>2]+ +g[o+8+4>>2];g[o+24>>2]=+g[o>>2]+ +g[o+16>>2];g[o+24+4>>2]=+g[o+4>>2]+ +g[o+16+4>>2];g[o+32>>2]=+g[o>>2]-+g[o+16>>2];g[o+32+4>>2]=+g[o+4>>2]-+g[o+16+4>>2];g[(c[u>>2]|0)+(c[p>>2]<<3)>>2]=+g[c[u>>2]>>2]-+g[o+24>>2];g[(c[u>>2]|0)+(c[p>>2]<<3)+4>>2]=+g[(c[u>>2]|0)+4>>2]-+g[o+24+4>>2];c[k>>2]=(c[k>>2]|0)+(c[v>>2]<<3);c[m>>2]=(c[m>>2]|0)+(c[v>>2]<<1<<3);c[n>>2]=(c[n>>2]|0)+((c[v>>2]|0)*3<<3);h=c[u>>2]|0;g[h>>2]=+g[h>>2]+ +g[o+24>>2];h=(c[u>>2]|0)+4|0;g[h>>2]=+g[h>>2]+ +g[o+24+4>>2];g[(c[u>>2]|0)+(c[x>>2]<<3)>>2]=+g[o+40>>2]-+g[o+32+4>>2];g[(c[u>>2]|0)+(c[x>>2]<<3)+4>>2]=+g[o+40+4>>2]+ +g[o+32>>2];g[(c[u>>2]|0)+(c[q>>2]<<3)>>2]=+g[o+40>>2]+ +g[o+32+4>>2];g[(c[u>>2]|0)+(c[q>>2]<<3)+4>>2]=+g[o+40+4>>2]-+g[o+32>>2];c[u>>2]=(c[u>>2]|0)+8;c[s>>2]=(c[s>>2]|0)+1}c[r>>2]=(c[r>>2]|0)+1}l=y;return}function nc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;q=l;l=l+80|0;k=q+76|0;m=q+72|0;r=q+68|0;n=q+64|0;o=q+60|0;p=q+56|0;f=q+52|0;h=q+48|0;i=q+8|0;j=q;c[k>>2]=a;c[m>>2]=b;c[r>>2]=d;c[n>>2]=e;c[o>>2]=c[n>>2];c[p>>2]=c[n>>2]<<1;e=(c[r>>2]|0)+268+((O(c[m>>2]|0,c[n>>2]|0)|0)<<3)|0;c[j>>2]=c[e>>2];c[j+4>>2]=c[e+4>>2];e=(c[r>>2]|0)+268|0;c[h>>2]=e;c[f>>2]=e;do{g[i+8>>2]=+g[(c[k>>2]|0)+(c[n>>2]<<3)>>2]*+g[c[f>>2]>>2]+ +g[(c[k>>2]|0)+(c[n>>2]<<3)+4>>2]*+g[(c[f>>2]|0)+4>>2];g[i+8+4>>2]=+g[(c[k>>2]|0)+(c[n>>2]<<3)+4>>2]*+g[c[f>>2]>>2]-+g[(c[k>>2]|0)+(c[n>>2]<<3)>>2]*+g[(c[f>>2]|0)+4>>2];g[i+16>>2]=+g[(c[k>>2]|0)+(c[p>>2]<<3)>>2]*+g[c[h>>2]>>2]+ +g[(c[k>>2]|0)+(c[p>>2]<<3)+4>>2]*+g[(c[h>>2]|0)+4>>2];g[i+16+4>>2]=+g[(c[k>>2]|0)+(c[p>>2]<<3)+4>>2]*+g[c[h>>2]>>2]-+g[(c[k>>2]|0)+(c[p>>2]<<3)>>2]*+g[(c[h>>2]|0)+4>>2];g[i+24>>2]=+g[i+8>>2]+ +g[i+16>>2];g[i+24+4>>2]=+g[i+8+4>>2]+ +g[i+16+4>>2];g[i>>2]=+g[i+8>>2]-+g[i+16>>2];g[i+4>>2]=+g[i+8+4>>2]-+g[i+16+4>>2];c[f>>2]=(c[f>>2]|0)+(c[m>>2]<<3);c[h>>2]=(c[h>>2]|0)+(c[m>>2]<<1<<3);g[(c[k>>2]|0)+(c[n>>2]<<3)>>2]=+g[c[k>>2]>>2]-+g[i+24>>2]*.5;g[(c[k>>2]|0)+(c[n>>2]<<3)+4>>2]=+g[(c[k>>2]|0)+4>>2]-+g[i+24+4>>2]*.5;g[i>>2]=+g[i>>2]*-+g[j+4>>2];r=i+4|0;g[r>>2]=+g[r>>2]*-+g[j+4>>2];r=c[k>>2]|0;g[r>>2]=+g[r>>2]+ +g[i+24>>2];r=(c[k>>2]|0)+4|0;g[r>>2]=+g[r>>2]+ +g[i+24+4>>2];g[(c[k>>2]|0)+(c[p>>2]<<3)>>2]=+g[(c[k>>2]|0)+(c[n>>2]<<3)>>2]+ +g[i+4>>2];g[(c[k>>2]|0)+(c[p>>2]<<3)+4>>2]=+g[(c[k>>2]|0)+(c[n>>2]<<3)+4>>2]-+g[i>>2];r=(c[k>>2]|0)+(c[n>>2]<<3)|0;g[r>>2]=+g[r>>2]-+g[i+4>>2];r=(c[k>>2]|0)+(c[n>>2]<<3)+4|0;g[r>>2]=+g[r>>2]+ +g[i>>2];c[k>>2]=(c[k>>2]|0)+8;r=(c[o>>2]|0)+-1|0;c[o>>2]=r}while((r|0)!=0);l=q;return}function oc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0.0;t=l;l=l+176|0;v=t+164|0;p=t+160|0;u=t+156|0;q=t+152|0;r=t+148|0;s=t+144|0;f=t+140|0;h=t+136|0;i=t+132|0;j=t+128|0;k=t+24|0;w=t+20|0;m=t+16|0;n=t+8|0;o=t;c[v>>2]=a;c[p>>2]=b;c[u>>2]=d;c[q>>2]=e;c[w>>2]=(c[u>>2]|0)+268;e=(c[w>>2]|0)+((O(c[p>>2]|0,c[q>>2]|0)|0)<<3)|0;c[n>>2]=c[e>>2];c[n+4>>2]=c[e+4>>2];e=(c[w>>2]|0)+((O(c[p>>2]<<1,c[q>>2]|0)|0)<<3)|0;c[o>>2]=c[e>>2];c[o+4>>2]=c[e+4>>2];c[r>>2]=c[v>>2];c[s>>2]=(c[r>>2]|0)+(c[q>>2]<<3);c[f>>2]=(c[r>>2]|0)+(c[q>>2]<<1<<3);c[h>>2]=(c[r>>2]|0)+((c[q>>2]|0)*3<<3);c[i>>2]=(c[r>>2]|0)+(c[q>>2]<<2<<3);c[m>>2]=(c[u>>2]|0)+268;c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[q>>2]|0))break;w=c[r>>2]|0;c[k>>2]=c[w>>2];c[k+4>>2]=c[w+4>>2];x=+g[c[s>>2]>>2]*+g[(c[m>>2]|0)+((O(c[j>>2]|0,c[p>>2]|0)|0)<<3)>>2];g[k+8>>2]=x+ +g[(c[s>>2]|0)+4>>2]*+g[(c[m>>2]|0)+((O(c[j>>2]|0,c[p>>2]|0)|0)<<3)+4>>2];x=+g[(c[s>>2]|0)+4>>2]*+g[(c[m>>2]|0)+((O(c[j>>2]|0,c[p>>2]|0)|0)<<3)>>2];g[k+8+4>>2]=x-+g[c[s>>2]>>2]*+g[(c[m>>2]|0)+((O(c[j>>2]|0,c[p>>2]|0)|0)<<3)+4>>2];x=+g[c[f>>2]>>2]*+g[(c[m>>2]|0)+((O(c[j>>2]<<1,c[p>>2]|0)|0)<<3)>>2];g[k+16>>2]=x+ +g[(c[f>>2]|0)+4>>2]*+g[(c[m>>2]|0)+((O(c[j>>2]<<1,c[p>>2]|0)|0)<<3)+4>>2];x=+g[(c[f>>2]|0)+4>>2]*+g[(c[m>>2]|0)+((O(c[j>>2]<<1,c[p>>2]|0)|0)<<3)>>2];g[k+16+4>>2]=x-+g[c[f>>2]>>2]*+g[(c[m>>2]|0)+((O(c[j>>2]<<1,c[p>>2]|0)|0)<<3)+4>>2];x=+g[c[h>>2]>>2]*+g[(c[m>>2]|0)+((O((c[j>>2]|0)*3|0,c[p>>2]|0)|0)<<3)>>2];g[k+24>>2]=x+ +g[(c[h>>2]|0)+4>>2]*+g[(c[m>>2]|0)+((O((c[j>>2]|0)*3|0,c[p>>2]|0)|0)<<3)+4>>2];x=+g[(c[h>>2]|0)+4>>2]*+g[(c[m>>2]|0)+((O((c[j>>2]|0)*3|0,c[p>>2]|0)|0)<<3)>>2];g[k+24+4>>2]=x-+g[c[h>>2]>>2]*+g[(c[m>>2]|0)+((O((c[j>>2]|0)*3|0,c[p>>2]|0)|0)<<3)+4>>2];x=+g[c[i>>2]>>2]*+g[(c[m>>2]|0)+((O(c[j>>2]<<2,c[p>>2]|0)|0)<<3)>>2];g[k+32>>2]=x+ +g[(c[i>>2]|0)+4>>2]*+g[(c[m>>2]|0)+((O(c[j>>2]<<2,c[p>>2]|0)|0)<<3)+4>>2];x=+g[(c[i>>2]|0)+4>>2]*+g[(c[m>>2]|0)+((O(c[j>>2]<<2,c[p>>2]|0)|0)<<3)>>2];g[k+32+4>>2]=x-+g[c[i>>2]>>2]*+g[(c[m>>2]|0)+((O(c[j>>2]<<2,c[p>>2]|0)|0)<<3)+4>>2];g[k+56>>2]=+g[k+8>>2]+ +g[k+32>>2];g[k+56+4>>2]=+g[k+8+4>>2]+ +g[k+32+4>>2];g[k+80>>2]=+g[k+8>>2]-+g[k+32>>2];g[k+80+4>>2]=+g[k+8+4>>2]-+g[k+32+4>>2];g[k+64>>2]=+g[k+16>>2]+ +g[k+24>>2];g[k+64+4>>2]=+g[k+16+4>>2]+ +g[k+24+4>>2];g[k+72>>2]=+g[k+16>>2]-+g[k+24>>2];g[k+72+4>>2]=+g[k+16+4>>2]-+g[k+24+4>>2];w=c[r>>2]|0;g[w>>2]=+g[w>>2]+(+g[k+56>>2]+ +g[k+64>>2]);w=(c[r>>2]|0)+4|0;g[w>>2]=+g[w>>2]+(+g[k+56+4>>2]+ +g[k+64+4>>2]);g[k+40>>2]=+g[k>>2]+ +g[k+56>>2]*+g[n>>2]+ +g[k+64>>2]*+g[o>>2];g[k+40+4>>2]=+g[k+4>>2]+ +g[k+56+4>>2]*+g[n>>2]+ +g[k+64+4>>2]*+g[o>>2];g[k+48>>2]=-(+g[k+80+4>>2]*+g[n+4>>2])-+g[k+72+4>>2]*+g[o+4>>2];g[k+48+4>>2]=+g[k+80>>2]*+g[n+4>>2]+ +g[k+72>>2]*+g[o+4>>2];g[c[s>>2]>>2]=+g[k+40>>2]-+g[k+48>>2];g[(c[s>>2]|0)+4>>2]=+g[k+40+4>>2]-+g[k+48+4>>2];g[c[i>>2]>>2]=+g[k+40>>2]+ +g[k+48>>2];g[(c[i>>2]|0)+4>>2]=+g[k+40+4>>2]+ +g[k+48+4>>2];g[k+88>>2]=+g[k>>2]+ +g[k+56>>2]*+g[o>>2]+ +g[k+64>>2]*+g[n>>2];g[k+88+4>>2]=+g[k+4>>2]+ +g[k+56+4>>2]*+g[o>>2]+ +g[k+64+4>>2]*+g[n>>2];g[k+96>>2]=+g[k+80+4>>2]*+g[o+4>>2]-+g[k+72+4>>2]*+g[n+4>>2];g[k+96+4>>2]=-(+g[k+80>>2]*+g[o+4>>2])+ +g[k+72>>2]*+g[n+4>>2];g[c[f>>2]>>2]=+g[k+88>>2]+ +g[k+96>>2];g[(c[f>>2]|0)+4>>2]=+g[k+88+4>>2]+ +g[k+96+4>>2];g[c[h>>2]>>2]=+g[k+88>>2]-+g[k+96>>2];g[(c[h>>2]|0)+4>>2]=+g[k+88+4>>2]-+g[k+96+4>>2];c[r>>2]=(c[r>>2]|0)+8;c[s>>2]=(c[s>>2]|0)+8;c[f>>2]=(c[f>>2]|0)+8;c[h>>2]=(c[h>>2]|0)+8;c[i>>2]=(c[i>>2]|0)+8;c[j>>2]=(c[j>>2]|0)+1}l=t;return}function pc(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;v=l;l=l+64|0;r=v+60|0;s=v+56|0;w=v+52|0;t=v+48|0;u=v+44|0;h=v+40|0;i=v+36|0;j=v+32|0;k=v+28|0;m=v+24|0;n=v+16|0;o=v+8|0;p=v+4|0;q=v;c[r>>2]=a;c[s>>2]=b;c[w>>2]=d;c[t>>2]=e;c[u>>2]=f;c[m>>2]=(c[w>>2]|0)+268;c[o>>2]=c[c[w>>2]>>2];f=c[u>>2]|0;c[p>>2]=da()|0;a=l;l=l+((1*(f<<3)|0)+15&-16)|0;c[h>>2]=0;while(1){if((c[h>>2]|0)>=(c[t>>2]|0))break;c[i>>2]=c[h>>2];c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[u>>2]|0))break;w=a+(c[j>>2]<<3)|0;f=(c[r>>2]|0)+(c[i>>2]<<3)|0;c[w>>2]=c[f>>2];c[w+4>>2]=c[f+4>>2];c[i>>2]=(c[i>>2]|0)+(c[t>>2]|0);c[j>>2]=(c[j>>2]|0)+1}c[i>>2]=c[h>>2];c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[u>>2]|0))break;c[q>>2]=0;w=(c[r>>2]|0)+(c[i>>2]<<3)|0;c[w>>2]=c[a>>2];c[w+4>>2]=c[a+4>>2];c[k>>2]=1;while(1){if((c[k>>2]|0)>=(c[u>>2]|0))break;w=O(c[s>>2]|0,c[i>>2]|0)|0;c[q>>2]=(c[q>>2]|0)+w;if((c[q>>2]|0)>=(c[o>>2]|0))c[q>>2]=(c[q>>2]|0)-(c[o>>2]|0);g[n>>2]=+g[a+(c[k>>2]<<3)>>2]*+g[(c[m>>2]|0)+(c[q>>2]<<3)>>2]+ +g[a+(c[k>>2]<<3)+4>>2]*+g[(c[m>>2]|0)+(c[q>>2]<<3)+4>>2];g[n+4>>2]=+g[a+(c[k>>2]<<3)+4>>2]*+g[(c[m>>2]|0)+(c[q>>2]<<3)>>2]-+g[a+(c[k>>2]<<3)>>2]*+g[(c[m>>2]|0)+(c[q>>2]<<3)+4>>2];w=(c[r>>2]|0)+(c[i>>2]<<3)|0;g[w>>2]=+g[w>>2]+ +g[n>>2];w=(c[r>>2]|0)+(c[i>>2]<<3)+4|0;g[w>>2]=+g[w>>2]+ +g[n+4>>2];c[k>>2]=(c[k>>2]|0)+1}c[i>>2]=(c[i>>2]|0)+(c[t>>2]|0);c[j>>2]=(c[j>>2]|0)+1}c[h>>2]=(c[h>>2]|0)+1}ca(c[p>>2]|0);l=v;return}function qc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0.0;p=l;l=l+48|0;f=p+36|0;i=p+32|0;j=p+28|0;k=p+24|0;m=p+20|0;n=p+16|0;o=p+8|0;e=p;c[f>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=0;c[m>>2]=276+((c[f>>2]|0)-1<<3)+(c[f>>2]<<2);if(!(c[j>>2]|0))c[k>>2]=rc(c[m>>2]|0)|0;else{if(c[i>>2]|0?(c[c[j>>2]>>2]|0)>>>0>=(c[m>>2]|0)>>>0:0)c[k>>2]=c[i>>2];c[c[j>>2]>>2]=c[m>>2]}if(!(c[k>>2]|0)){o=c[k>>2]|0;l=p;return o|0}c[c[k>>2]>>2]=c[f>>2];g[(c[k>>2]|0)+4>>2]=1.0/+(c[f>>2]|0);c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[f>>2]|0))break;h[o>>3]=3.141592653589793;h[e>>3]=-6.283185307179586/+(c[f>>2]|0)*+(c[n>>2]|0);q=+E(+(+h[e>>3]));g[(c[k>>2]|0)+268+(c[n>>2]<<3)>>2]=q;q=+F(+(+h[e>>3]));g[(c[k>>2]|0)+268+(c[n>>2]<<3)+4>>2]=q;c[n>>2]=(c[n>>2]|0)+1}sc(c[f>>2]|0,(c[k>>2]|0)+8|0);c[(c[k>>2]|0)+264>>2]=(c[k>>2]|0)+(c[m>>2]|0)+(0-(c[f>>2]<<2));tc(0,c[(c[k>>2]|0)+264>>2]|0,1,1,(c[k>>2]|0)+8|0,c[k>>2]|0);o=c[k>>2]|0;l=p;return o|0}function rc(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=Md(c[d>>2]|0,1)|0;l=b;return a|0}function sc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=l;l=l+16|0;d=g+8|0;e=g+4|0;f=g;c[d>>2]=a;c[e>>2]=b;c[f>>2]=4;do{while(1){a=c[f>>2]|0;if(!((c[d>>2]|0)%(c[f>>2]|0)|0))break;switch(a|0){case 4:{c[f>>2]=2;break}case 2:{c[f>>2]=3;break}default:c[f>>2]=(c[f>>2]|0)+2}if((c[f>>2]|0)<=32e3?(b=O(c[f>>2]|0,c[f>>2]|0)|0,(b|0)<=(c[d>>2]|0)):0)continue;c[f>>2]=c[d>>2]}c[d>>2]=(c[d>>2]|0)/(a|0)|0;b=c[f>>2]|0;a=c[e>>2]|0;c[e>>2]=a+4;c[a>>2]=b;a=c[d>>2]|0;b=c[e>>2]|0;c[e>>2]=b+4;c[b>>2]=a}while((c[d>>2]|0)>1);l=g;return}function tc(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+48|0;o=s+36|0;p=s+32|0;q=s+28|0;r=s+24|0;h=s+20|0;i=s+16|0;j=s+12|0;k=s+8|0;m=s+4|0;n=s;c[o>>2]=a;c[p>>2]=b;c[q>>2]=d;c[r>>2]=e;c[h>>2]=f;c[i>>2]=g;g=c[h>>2]|0;c[h>>2]=g+4;c[j>>2]=c[g>>2];g=c[h>>2]|0;c[h>>2]=g+4;c[k>>2]=c[g>>2];if((c[k>>2]|0)==1){c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[j>>2]|0))break;c[c[p>>2]>>2]=(c[o>>2]|0)+(c[m>>2]|0);g=O(c[q>>2]|0,c[r>>2]|0)|0;c[p>>2]=(c[p>>2]|0)+(g<<2);c[m>>2]=(c[m>>2]|0)+1}l=s;return}else{c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[j>>2]|0))break;g=O(c[q>>2]|0,c[j>>2]|0)|0;tc(c[o>>2]|0,c[p>>2]|0,g,c[r>>2]|0,c[h>>2]|0,c[i>>2]|0);g=O(c[q>>2]|0,c[r>>2]|0)|0;c[p>>2]=(c[p>>2]|0)+(g<<2);c[o>>2]=(c[o>>2]|0)+(c[k>>2]|0);c[n>>2]=(c[n>>2]|0)+1}l=s;return}}function uc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+32|0;f=m+16|0;h=m+12|0;i=m+8|0;j=m+4|0;k=m;c[f>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;if((c[h>>2]|0)==(c[i>>2]|0)){vc(2947,2974,662);l=m;return}c[k>>2]=0;while(1){a=c[i>>2]|0;if((c[k>>2]|0)>=(c[c[f>>2]>>2]|0))break;e=a+(c[(c[(c[f>>2]|0)+264>>2]|0)+(c[k>>2]<<2)>>2]<<3)|0;d=(c[h>>2]|0)+(c[k>>2]<<3)|0;c[e>>2]=c[d>>2];c[e+4>>2]=c[d+4>>2];e=(c[i>>2]|0)+(c[(c[(c[f>>2]|0)+264>>2]|0)+(c[k>>2]<<2)>>2]<<3)|0;g[e>>2]=+g[e>>2]*+g[(c[f>>2]|0)+4>>2];e=(c[i>>2]|0)+(c[(c[(c[f>>2]|0)+264>>2]|0)+(c[k>>2]<<2)>>2]<<3)+4|0;g[e>>2]=+g[e>>2]*+g[(c[f>>2]|0)+4>>2];c[k>>2]=(c[k>>2]|0)+1}ec(a,c[h>>2]|0,1,c[j>>2]|0,(c[f>>2]|0)+8|0,c[f>>2]|0,1,c[j>>2]|0,1);l=m;return}function vc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=l;l=l+32|0;e=h;g=h+20|0;f=h+16|0;h=h+12|0;c[g>>2]=a;c[f>>2]=b;c[h>>2]=d;d=c[472]|0;a=c[h>>2]|0;b=c[g>>2]|0;c[e>>2]=c[f>>2];c[e+4>>2]=a;c[e+8>>2]=b;ze(d,2985,e)|0;$()}function wc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;h=e+8|0;g=e+4|0;f=e;c[h>>2]=a;c[g>>2]=b;c[f>>2]=d;uc(c[h>>2]|0,c[g>>2]|0,c[f>>2]|0,1);l=e;return}function xc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+32|0;f=k+16|0;g=k+12|0;h=k+8|0;i=k+4|0;j=k;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=e;if((c[g>>2]|0)==(c[h>>2]|0)){vc(2947,2974,687);l=k;return}c[j>>2]=0;while(1){a=c[h>>2]|0;if((c[j>>2]|0)>=(c[c[f>>2]>>2]|0))break;e=a+(c[(c[(c[f>>2]|0)+264>>2]|0)+(c[j>>2]<<2)>>2]<<3)|0;d=(c[g>>2]|0)+(c[j>>2]<<3)|0;c[e>>2]=c[d>>2];c[e+4>>2]=c[d+4>>2];c[j>>2]=(c[j>>2]|0)+1}kc(a,c[g>>2]|0,1,c[i>>2]|0,(c[f>>2]|0)+8|0,c[f>>2]|0,1,c[i>>2]|0,1);l=k;return}function yc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;h=e+8|0;g=e+4|0;f=e;c[h>>2]=a;c[g>>2]=b;c[f>>2]=d;xc(c[h>>2]|0,c[g>>2]|0,c[f>>2]|0,1);l=e;return}function zc(a){a=a|0;var b=0,d=0,e=0;d=l;l=l+16|0;e=d+4|0;b=d;c[e>>2]=a;c[b>>2]=(16384-(c[e>>2]|0)<<15>>>0)/((16384+(c[e>>2]|0)|0)>>>0)|0;c[b>>2]=(c[b>>2]|0)-(c[b>>2]&1);l=d;return c[b>>2]|0}function Ac(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+48|0;o=s+40|0;p=s+36|0;j=s+32|0;q=s+28|0;k=s+24|0;r=s+20|0;f=s+16|0;n=s+12|0;g=s+8|0;h=s+4|0;i=s;c[o>>2]=a;c[p>>2]=b;c[j>>2]=d;c[q>>2]=e;c[n>>2]=0;c[g>>2]=c[c[p>>2]>>2];if((c[g>>2]|0)<0){c[n>>2]=1;c[g>>2]=0-(c[g>>2]|0)}c[f>>2]=32768;c[r>>2]=0-(c[q>>2]|0);c[k>>2]=0;while(1){if((c[k>>2]|0)>=(c[g>>2]|0))break;c[h>>2]=c[r>>2];c[i>>2]=c[q>>2];c[r>>2]=(c[r>>2]|0)+(c[q>>2]<<1);c[q>>2]=(O(c[q>>2]|0,c[j>>2]|0)|0)>>14;if(!(c[q>>2]|0)){if(((c[r>>2]|0)+2|0)>>>0>(c[f>>2]|0)>>>0){m=8;break}c[q>>2]=1}c[k>>2]=(c[k>>2]|0)+1}do if((m|0)==8){c[q>>2]=c[i>>2];c[r>>2]=c[h>>2];a=c[k>>2]|0;if(c[n>>2]|0){c[c[p>>2]>>2]=0-a;break}else{c[c[p>>2]>>2]=a;break}}while(0);if((c[r>>2]|0)<0)c[r>>2]=0;if(!(c[n>>2]|0)){o=c[o>>2]|0;p=c[r>>2]|0;n=c[r>>2]|0;r=c[q>>2]|0;r=n+r|0;rd(o,p,r,15);l=s;return}c[r>>2]=(c[r>>2]|0)+(c[q>>2]|0);o=c[o>>2]|0;p=c[r>>2]|0;n=c[r>>2]|0;r=c[q>>2]|0;r=n+r|0;rd(o,p,r,15);l=s;return}function Bc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+32|0;f=n+28|0;g=n+24|0;h=n+20|0;i=n+16|0;j=n+12|0;k=n+8|0;m=n+4|0;e=n;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=0;c[j>>2]=0;c[e>>2]=32768;c[k>>2]=c[h>>2];c[m>>2]=id(c[f>>2]|0,15)|0;while(1){if(!((c[m>>2]|0)>=(c[k>>2]|0)?(c[h>>2]|0)!=0:0))break;c[j>>2]=c[k>>2];c[h>>2]=(O(c[h>>2]|0,c[g>>2]|0)|0)>>14;if((c[h>>2]|0)==0?((c[k>>2]|0)+2|0)>>>0<=(c[e>>2]|0)>>>0:0)c[h>>2]=1;c[k>>2]=(c[k>>2]|0)+(c[h>>2]<<1);c[i>>2]=(c[i>>2]|0)+1}do if((c[j>>2]|0)>0)if((c[m>>2]|0)>=((c[j>>2]|0)+(c[h>>2]|0)|0)){c[i>>2]=0-(c[i>>2]|0);c[j>>2]=(c[j>>2]|0)+(c[h>>2]|0);break}else{c[k>>2]=(c[k>>2]|0)-(c[h>>2]|0);break}while(0);if((c[j>>2]|0)!=(c[k>>2]|0)){h=c[f>>2]|0;j=c[j>>2]|0;k=c[k>>2]|0;m=c[e>>2]|0;kd(h,j,k,m);m=c[i>>2]|0;l=n;return m|0}c[j>>2]=(c[j>>2]|0)+-1;h=c[f>>2]|0;j=c[j>>2]|0;k=c[k>>2]|0;m=c[e>>2]|0;kd(h,j,k,m);m=c[i>>2]|0;l=n;return m|0}function Cc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0.0;i=l;l=l+16|0;d=i+12|0;e=i+8|0;f=i+4|0;h=i;c[d>>2]=a;c[e>>2]=b;c[c[d>>2]>>2]=c[e>>2];c[h>>2]=c[e>>2]>>1;b=qc(c[e>>2]>>2,0,0)|0;c[(c[d>>2]|0)+4>>2]=b;if(!(c[(c[d>>2]|0)+4>>2]|0)){l=i;return}b=Dc(c[h>>2]<<2)|0;c[(c[d>>2]|0)+8>>2]=b;if(!(c[(c[d>>2]|0)+8>>2]|0)){l=i;return}c[f>>2]=0;while(1){if((c[f>>2]|0)>=(c[h>>2]|0))break;j=+E(+((+(c[f>>2]|0)+.125)*6.283185307179586/+(c[e>>2]|0)));g[(c[(c[d>>2]|0)+8>>2]|0)+(c[f>>2]<<2)>>2]=j;c[f>>2]=(c[f>>2]|0)+1}l=i;return}function Dc(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=Md(c[d>>2]|0,1)|0;l=b;return a|0}function Ec(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;Fc(c[(c[d>>2]|0)+4>>2]|0);Fc(c[(c[d>>2]|0)+8>>2]|0);l=b;return}function Fc(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;Ld(c[d>>2]|0);l=b;return}function Gc(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0.0;D=l;l=l+96|0;z=D+88|0;E=D+84|0;A=D+80|0;B=D+76|0;C=D+72|0;h=D+68|0;F=D+64|0;i=D+60|0;j=D+56|0;k=D+52|0;m=D+48|0;n=D+44|0;o=D+40|0;p=D+36|0;q=D+32|0;r=D+28|0;s=D+24|0;t=D+20|0;u=D+16|0;v=D+12|0;w=D+8|0;x=D+4|0;y=D;c[z>>2]=a;c[E>>2]=b;c[A>>2]=d;c[B>>2]=e;c[C>>2]=f;c[F>>2]=c[c[z>>2]>>2];c[i>>2]=c[F>>2]>>1;c[j>>2]=c[F>>2]>>2;f=c[i>>2]|0;c[k>>2]=da()|0;a=l;l=l+((1*(f<<2)|0)+15&-16)|0;c[m>>2]=(c[E>>2]|0)+(c[C>>2]>>1<<2);c[n>>2]=(c[E>>2]|0)+(c[i>>2]<<2)+-4+(c[C>>2]>>1<<2);c[o>>2]=c[A>>2];c[p>>2]=(c[B>>2]|0)+(c[C>>2]>>1<<2);c[q>>2]=(c[B>>2]|0)+(c[C>>2]>>1<<2)+-4;c[h>>2]=0;while(1){if((c[h>>2]|0)>=(c[C>>2]>>2|0))break;G=+g[c[q>>2]>>2]*+g[(c[m>>2]|0)+(c[i>>2]<<2)>>2]+ +g[c[p>>2]>>2]*+g[c[n>>2]>>2];F=c[o>>2]|0;c[o>>2]=F+4;g[F>>2]=G;G=+g[c[p>>2]>>2]*+g[c[m>>2]>>2]-+g[c[q>>2]>>2]*+g[(c[n>>2]|0)+(0-(c[i>>2]|0)<<2)>>2];F=c[o>>2]|0;c[o>>2]=F+4;g[F>>2]=G;c[m>>2]=(c[m>>2]|0)+8;c[n>>2]=(c[n>>2]|0)+-8;c[p>>2]=(c[p>>2]|0)+8;c[q>>2]=(c[q>>2]|0)+-8;c[h>>2]=(c[h>>2]|0)+1}c[p>>2]=c[B>>2];c[q>>2]=(c[B>>2]|0)+(c[C>>2]<<2)+-4;while(1){if((c[h>>2]|0)>=((c[j>>2]|0)-(c[C>>2]>>2)|0))break;G=+g[c[n>>2]>>2];F=c[o>>2]|0;c[o>>2]=F+4;g[F>>2]=G;G=+g[c[m>>2]>>2];F=c[o>>2]|0;c[o>>2]=F+4;g[F>>2]=G;c[m>>2]=(c[m>>2]|0)+8;c[n>>2]=(c[n>>2]|0)+-8;c[h>>2]=(c[h>>2]|0)+1}while(1){if((c[h>>2]|0)>=(c[j>>2]|0))break;G=-(+g[c[p>>2]>>2]*+g[(c[m>>2]|0)+(0-(c[i>>2]|0)<<2)>>2])+ +g[c[q>>2]>>2]*+g[c[n>>2]>>2];F=c[o>>2]|0;c[o>>2]=F+4;g[F>>2]=G;G=+g[c[q>>2]>>2]*+g[c[m>>2]>>2]+ +g[c[p>>2]>>2]*+g[(c[n>>2]|0)+(c[i>>2]<<2)>>2];F=c[o>>2]|0;c[o>>2]=F+4;g[F>>2]=G;c[m>>2]=(c[m>>2]|0)+8;c[n>>2]=(c[n>>2]|0)+-8;c[p>>2]=(c[p>>2]|0)+8;c[q>>2]=(c[q>>2]|0)+-8;c[h>>2]=(c[h>>2]|0)+1}c[r>>2]=c[A>>2];c[s>>2]=c[(c[z>>2]|0)+8>>2];c[h>>2]=0;while(1){if((c[h>>2]|0)>=(c[j>>2]|0))break;g[t>>2]=+g[c[r>>2]>>2];g[u>>2]=+g[(c[r>>2]|0)+4>>2];G=-(+g[t>>2]*+g[c[s>>2]>>2])+ +g[u>>2]*+g[(c[s>>2]|0)+(c[j>>2]<<2)>>2];F=c[r>>2]|0;c[r>>2]=F+4;g[F>>2]=G;G=-(+g[u>>2]*+g[c[s>>2]>>2])-+g[t>>2]*+g[(c[s>>2]|0)+(c[j>>2]<<2)>>2];F=c[r>>2]|0;c[r>>2]=F+4;g[F>>2]=G;c[s>>2]=(c[s>>2]|0)+4;c[h>>2]=(c[h>>2]|0)+1}wc(c[(c[z>>2]|0)+4>>2]|0,c[A>>2]|0,a);c[v>>2]=a;c[w>>2]=c[A>>2];c[x>>2]=(c[A>>2]|0)+(c[i>>2]<<2)+-4;c[y>>2]=c[(c[z>>2]|0)+8>>2];c[h>>2]=0;while(1){if((c[h>>2]|0)>=(c[j>>2]|0))break;g[c[w>>2]>>2]=-(+g[(c[v>>2]|0)+4>>2]*+g[(c[y>>2]|0)+(c[j>>2]<<2)>>2])+ +g[c[v>>2]>>2]*+g[c[y>>2]>>2];g[c[x>>2]>>2]=-(+g[c[v>>2]>>2]*+g[(c[y>>2]|0)+(c[j>>2]<<2)>>2])-+g[(c[v>>2]|0)+4>>2]*+g[c[y>>2]>>2];c[v>>2]=(c[v>>2]|0)+8;c[w>>2]=(c[w>>2]|0)+8;c[x>>2]=(c[x>>2]|0)+-8;c[y>>2]=(c[y>>2]|0)+4;c[h>>2]=(c[h>>2]|0)+1}ca(c[k>>2]|0);l=D;return}function Hc(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0.0;O=l;l=l+144|0;K=O+128|0;P=O+124|0;L=O+120|0;M=O+116|0;N=O+112|0;h=O+108|0;i=O+104|0;j=O+100|0;k=O+96|0;m=O+92|0;n=O+88|0;o=O+84|0;p=O+80|0;q=O+76|0;r=O+72|0;s=O+68|0;t=O+64|0;u=O+60|0;v=O+56|0;w=O+52|0;x=O+48|0;y=O+44|0;z=O+40|0;A=O+36|0;B=O+32|0;C=O+28|0;D=O+24|0;E=O+20|0;F=O+16|0;G=O+12|0;H=O+8|0;I=O+4|0;J=O;c[K>>2]=a;c[P>>2]=b;c[L>>2]=d;c[M>>2]=e;c[N>>2]=f;c[i>>2]=c[c[K>>2]>>2];c[j>>2]=c[i>>2]>>1;c[k>>2]=c[i>>2]>>2;b=c[j>>2]|0;c[m>>2]=da()|0;a=l;l=l+((1*(b<<2)|0)+15&-16)|0;b=l;l=l+((1*(c[j>>2]<<2)|0)+15&-16)|0;c[n>>2]=c[P>>2];c[o>>2]=(c[P>>2]|0)+(c[j>>2]<<2)+-4;c[p>>2]=b;c[q>>2]=c[(c[K>>2]|0)+8>>2];c[h>>2]=0;while(1){if((c[h>>2]|0)>=(c[k>>2]|0))break;Q=-(+g[c[o>>2]>>2]*+g[c[q>>2]>>2])-+g[c[n>>2]>>2]*+g[(c[q>>2]|0)+(c[k>>2]<<2)>>2];P=c[p>>2]|0;c[p>>2]=P+4;g[P>>2]=Q;Q=+g[c[o>>2]>>2]*+g[(c[q>>2]|0)+(c[k>>2]<<2)>>2]-+g[c[n>>2]>>2]*+g[c[q>>2]>>2];P=c[p>>2]|0;c[p>>2]=P+4;g[P>>2]=Q;c[n>>2]=(c[n>>2]|0)+8;c[o>>2]=(c[o>>2]|0)+-8;c[q>>2]=(c[q>>2]|0)+4;c[h>>2]=(c[h>>2]|0)+1}yc(c[(c[K>>2]|0)+4>>2]|0,b,a);c[r>>2]=a;c[s>>2]=c[(c[K>>2]|0)+8>>2];c[h>>2]=0;while(1){if((c[h>>2]|0)>=(c[k>>2]|0))break;g[t>>2]=+g[c[r>>2]>>2];g[u>>2]=+g[(c[r>>2]|0)+4>>2];Q=+g[t>>2]*+g[c[s>>2]>>2]+ +g[u>>2]*+g[(c[s>>2]|0)+(c[k>>2]<<2)>>2];P=c[r>>2]|0;c[r>>2]=P+4;g[P>>2]=Q;Q=+g[u>>2]*+g[c[s>>2]>>2]-+g[t>>2]*+g[(c[s>>2]|0)+(c[k>>2]<<2)>>2];P=c[r>>2]|0;c[r>>2]=P+4;g[P>>2]=Q;c[s>>2]=(c[s>>2]|0)+4;c[h>>2]=(c[h>>2]|0)+1}c[v>>2]=a;c[w>>2]=a+(c[j>>2]<<2)+-4;c[x>>2]=b;c[h>>2]=0;while(1){if((c[h>>2]|0)>=(c[k>>2]|0))break;Q=-+g[c[v>>2]>>2];P=c[x>>2]|0;c[x>>2]=P+4;g[P>>2]=Q;Q=+g[c[w>>2]>>2];P=c[x>>2]|0;c[x>>2]=P+4;g[P>>2]=Q;c[v>>2]=(c[v>>2]|0)+8;c[w>>2]=(c[w>>2]|0)+-8;c[h>>2]=(c[h>>2]|0)+1}c[y>>2]=b+(c[k>>2]<<2)+-4;c[z>>2]=(c[L>>2]|0)+(c[j>>2]<<2)+-4;c[A>>2]=(c[L>>2]|0)+(c[k>>2]<<2)+(0-((c[N>>2]|0)/2|0)<<2);c[B>>2]=c[M>>2];c[C>>2]=(c[M>>2]|0)+(c[N>>2]<<2)+-4;c[h>>2]=0;while(1){if((c[h>>2]|0)>=((c[k>>2]|0)-((c[N>>2]|0)/2|0)|0))break;g[c[z>>2]>>2]=+g[c[y>>2]>>2];c[z>>2]=(c[z>>2]|0)+-4;c[y>>2]=(c[y>>2]|0)+-4;c[h>>2]=(c[h>>2]|0)+1}while(1){if((c[h>>2]|0)>=(c[k>>2]|0))break;P=c[y>>2]|0;c[y>>2]=P+-4;g[D>>2]=+g[P>>2];Q=-(+g[c[B>>2]>>2]*+g[D>>2]);P=c[A>>2]|0;c[A>>2]=P+4;g[P>>2]=+g[P>>2]+Q;Q=+g[c[C>>2]>>2]*+g[D>>2];P=c[z>>2]|0;c[z>>2]=P+-4;g[P>>2]=+g[P>>2]+Q;c[B>>2]=(c[B>>2]|0)+4;c[C>>2]=(c[C>>2]|0)+-4;c[h>>2]=(c[h>>2]|0)+1}c[E>>2]=b+(c[k>>2]<<2);c[F>>2]=(c[L>>2]|0)+(c[j>>2]<<2);c[G>>2]=(c[L>>2]|0)+(c[i>>2]<<2)+-4+(0-((c[k>>2]|0)-((c[N>>2]|0)/2|0))<<2);c[H>>2]=c[M>>2];c[I>>2]=(c[M>>2]|0)+(c[N>>2]<<2)+-4;c[h>>2]=0;while(1){if((c[h>>2]|0)>=((c[k>>2]|0)-((c[N>>2]|0)/2|0)|0))break;g[c[F>>2]>>2]=+g[c[E>>2]>>2];c[F>>2]=(c[F>>2]|0)+4;c[E>>2]=(c[E>>2]|0)+4;c[h>>2]=(c[h>>2]|0)+1}while(1){if((c[h>>2]|0)>=(c[k>>2]|0))break;P=c[E>>2]|0;c[E>>2]=P+4;g[J>>2]=+g[P>>2];Q=+g[c[H>>2]>>2]*+g[J>>2];P=c[G>>2]|0;c[G>>2]=P+-4;g[P>>2]=Q;Q=+g[c[I>>2]>>2]*+g[J>>2];P=c[F>>2]|0;c[F>>2]=P+4;g[P>>2]=Q;c[H>>2]=(c[H>>2]|0)+4;c[I>>2]=(c[I>>2]|0)+-4;c[h>>2]=(c[h>>2]|0)+1}ca(c[m>>2]|0);l=O;return}function Ic(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=l;l=l+16|0;e=i+12|0;f=i+8|0;g=i+4|0;h=i;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;if(Jc(c[f>>2]|0)|0){c[e>>2]=-2;h=c[e>>2]|0;l=i;return h|0}switch(c[g>>2]|0){case 1e3:{c[c[h>>2]>>2]=c[(c[f>>2]|0)+12>>2];break}case 1001:{c[c[h>>2]>>2]=c[(c[f>>2]|0)+8>>2];break}case 2e3:{c[c[h>>2]>>2]=-2147483637;break}case 1003:{c[c[h>>2]>>2]=c[(c[f>>2]|0)+4>>2];break}default:{c[e>>2]=-5;h=c[e>>2]|0;l=i;return h|0}}c[e>>2]=0;h=c[e>>2]|0;l=i;return h|0}function Jc(a){a=a|0;var b=0,d=0,e=0;e=l;l=l+16|0;b=e+4|0;d=e;c[d>>2]=a;if(!(c[d>>2]|0)){c[b>>2]=-2;d=c[b>>2]|0;l=e;return d|0}if((c[c[d>>2]>>2]|0)==-1592735106?(c[(c[d>>2]|0)+88>>2]|0)==-1592735106:0){c[b>>2]=0;d=c[b>>2]|0;l=e;return d|0}if((c[c[d>>2]>>2]|0)!=-1324549906?(c[(c[d>>2]|0)+88>>2]|0)!=-1324549906:0)Kc(3069);else Kc(3028);c[b>>2]=-2;d=c[b>>2]|0;l=e;return d|0}function Kc(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;d=b;e=b+4|0;c[e>>2]=a;a=c[472]|0;c[d>>2]=c[e>>2];ze(a,3099,d)|0;l=b;return}function Lc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0.0;p=l;l=l+32|0;j=p+28|0;e=p+24|0;f=p+20|0;k=p+16|0;m=p+12|0;n=p+8|0;o=p+4|0;i=p;c[e>>2]=a;c[f>>2]=b;c[k>>2]=d;c[o>>2]=0;if((c[e>>2]|0)<32e3|(c[e>>2]|0)>96e3){Kc(3112);if(c[k>>2]|0)c[c[k>>2]>>2]=-1;c[j>>2]=0;o=c[j>>2]|0;l=p;return o|0}if(!((c[f>>2]|0)<64|(c[f>>2]|0)>1024)?((c[f>>2]|0)%2|0|0)==0:0){c[n>>2]=((c[e>>2]|0)+(c[f>>2]|0)|0)/(c[f>>2]<<1|0)|0;c[o>>2]=Mc(92)|0;if(c[o>>2]|0){c[c[o>>2]>>2]=2127171745;c[(c[o>>2]|0)+4>>2]=c[e>>2];c[(c[o>>2]|0)+12>>2]=c[f>>2];g[(c[o>>2]|0)+28>>2]=.800000011920929;if((c[f>>2]|0)>640?((c[f>>2]|0)%16|0|0)==0:0){a=8;b=c[o>>2]|0}else h=14;do if((h|0)==14){if((c[f>>2]|0)>384?((c[f>>2]|0)%8|0|0)==0:0){a=4;b=c[o>>2]|0;break}if((c[f>>2]|0)>384?((c[f>>2]|0)%10|0|0)==0:0){a=5;b=c[o>>2]|0;break}if((c[f>>2]|0)>256?((c[f>>2]|0)%6|0|0)==0:0){a=3;b=c[o>>2]|0;break}if((c[f>>2]|0)>256?((c[f>>2]|0)%8|0|0)==0:0){a=4;b=c[o>>2]|0;break}if((c[f>>2]|0)>64?((c[f>>2]|0)%4|0|0)==0:0){a=2;b=c[o>>2]|0;break}if((c[f>>2]|0)>128?((c[f>>2]|0)%6|0|0)==0:0){a=3;b=c[o>>2]|0;break}a=1;b=c[o>>2]|0}while(0);c[b+60>>2]=a;h=Nc(c[e>>2]|0,c[f>>2]|0,c[(c[o>>2]|0)+60>>2]|0,(c[o>>2]|0)+16|0)|0;c[(c[o>>2]|0)+24>>2]=h;if(c[(c[o>>2]|0)+24>>2]|0){c[(c[o>>2]|0)+20>>2]=((c[f>>2]|0)*4e3|0)/(c[e>>2]|0)|0;a=c[f>>2]|0;if((c[(c[o>>2]|0)+60>>2]|0)>1){a=((a|0)/(c[(c[o>>2]|0)+60>>2]|0)|0)>>2<<2;b=c[o>>2]|0}else{a=a>>3<<2;b=c[o>>2]|0}c[b+8>>2]=a;Oc(c[o>>2]|0,c[n>>2]|0);if(c[(c[o>>2]|0)+36>>2]|0?(c[i>>2]=Mc(c[(c[o>>2]|0)+8>>2]<<2)|0,c[i>>2]|0):0){c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[(c[o>>2]|0)+8>>2]|0))break;q=+F(+((+(c[m>>2]|0)+.5)*1.5707963267948966/+(c[(c[o>>2]|0)+8>>2]|0)))*1.5707963267948966;q=+F(+(q*+F(+((+(c[m>>2]|0)+.5)*1.5707963267948966/+(c[(c[o>>2]|0)+8>>2]|0)))))*1.0;g[(c[i>>2]|0)+(c[m>>2]<<2)>>2]=q;c[m>>2]=(c[m>>2]|0)+1}c[(c[o>>2]|0)+56>>2]=c[i>>2];n=wd(c[o>>2]|0,1)|0;c[(c[o>>2]|0)+40>>2]=n;if(((((c[(c[o>>2]|0)+40>>2]|0?(Cc((c[o>>2]|0)+44|0,c[(c[o>>2]|0)+12>>2]<<1),c[(c[o>>2]|0)+64>>2]=(c[(c[o>>2]|0)+12>>2]|0)/(c[(c[o>>2]|0)+60>>2]|0)|0,Cc((c[o>>2]|0)+68|0,c[(c[o>>2]|0)+64>>2]<<1),c[(c[o>>2]|0)+80>>2]=c[(c[o>>2]|0)+56>>2],n=Vc(c[o>>2]|0)|0,c[(c[o>>2]|0)+84>>2]=n,c[(c[o>>2]|0)+44+8>>2]|0):0)?c[(c[o>>2]|0)+68+8>>2]|0:0)?c[(c[o>>2]|0)+44+4>>2]|0:0)?c[(c[o>>2]|0)+68+4>>2]|0:0)?c[(c[o>>2]|0)+84>>2]|0:0){c[c[o>>2]>>2]=-1592735106;c[(c[o>>2]|0)+88>>2]=-1592735106;if(c[k>>2]|0)c[c[k>>2]>>2]=0;c[j>>2]=c[o>>2];o=c[j>>2]|0;l=p;return o|0}}}}if(c[k>>2]|0)c[c[k>>2]>>2]=-2;if(c[o>>2]|0)Pc(c[o>>2]|0);c[j>>2]=0;o=c[j>>2]|0;l=p;return o|0}Kc(3160);if(c[k>>2]|0)c[c[k>>2]>>2]=-1;c[j>>2]=0;o=c[j>>2]|0;l=p;return o|0}function Mc(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=Md(c[d>>2]|0,1)|0;l=b;return a|0}
function Nc(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=l;l=l+64|0;u=w+60|0;p=w+56|0;q=w+52|0;v=w+44|0;r=w+40|0;s=w+36|0;t=w+32|0;g=w+28|0;h=w+24|0;i=w+20|0;j=w+16|0;k=w+12|0;m=w+8|0;n=w+4|0;o=w;c[p>>2]=a;c[q>>2]=d;c[w+48>>2]=e;c[v>>2]=f;c[r>>2]=3;c[n>>2]=0;c[g>>2]=((c[p>>2]|0)+(c[q>>2]|0)|0)/(c[q>>2]<<1|0)|0;c[h>>2]=O(c[r>>2]|0,c[g>>2]|0)|0;c[m>>2]=1;while(1){if((c[m>>2]|0)>=25)break;if((b[2076+((c[m>>2]|0)+1<<1)>>1]<<1|0)>=(c[p>>2]|0))break;c[m>>2]=(c[m>>2]|0)+1}c[i>>2]=0;while(1){if((c[i>>2]|0)>=(c[m>>2]|0))break;if(((b[2076+((c[i>>2]|0)+1<<1)>>1]|0)-(b[2076+(c[i>>2]<<1)>>1]|0)|0)>=(c[h>>2]|0))break;c[i>>2]=(c[i>>2]|0)+1}c[j>>2]=(((b[2076+(c[i>>2]<<1)>>1]|0)/(c[g>>2]|0)|0)+((c[r>>2]|0)-1)|0)/(c[r>>2]|0)|0;c[k>>2]=(c[m>>2]|0)-(c[i>>2]|0);c[c[v>>2]>>2]=(c[j>>2]|0)+(c[k>>2]|0);c[s>>2]=Mc((c[c[v>>2]>>2]|0)+2<<1)|0;if(!(c[s>>2]|0)){c[u>>2]=0;v=c[u>>2]|0;l=w;return v|0}c[t>>2]=0;while(1){if((c[t>>2]|0)>=(c[j>>2]|0))break;p=(O(c[r>>2]|0,c[t>>2]|0)|0)&65535;b[(c[s>>2]|0)+(c[t>>2]<<1)>>1]=p;c[t>>2]=(c[t>>2]|0)+1}c[t>>2]=0;while(1){if((c[t>>2]|0)>=(c[k>>2]|0))break;c[o>>2]=b[2076+((c[i>>2]|0)+(c[t>>2]|0)<<1)>>1];b[(c[s>>2]|0)+((c[t>>2]|0)+(c[j>>2]|0)<<1)>>1]=((c[o>>2]<<1)+(c[n>>2]|0)+(c[g>>2]|0)|0)/(c[g>>2]<<1|0)|0;p=O(b[(c[s>>2]|0)+((c[t>>2]|0)+(c[j>>2]|0)<<1)>>1]|0,c[g>>2]|0)|0;c[n>>2]=p-(c[o>>2]|0);c[t>>2]=(c[t>>2]|0)+1}c[t>>2]=0;while(1){if((c[t>>2]|0)>=(c[c[v>>2]>>2]|0))break;if((b[(c[s>>2]|0)+(c[t>>2]<<1)>>1]|0)<(O(c[r>>2]|0,c[t>>2]|0)|0)){p=(O(c[r>>2]|0,c[t>>2]|0)|0)&65535;b[(c[s>>2]|0)+(c[t>>2]<<1)>>1]=p}c[t>>2]=(c[t>>2]|0)+1}b[(c[s>>2]|0)+(c[c[v>>2]>>2]<<1)>>1]=((b[2076+(c[m>>2]<<1)>>1]|0)+((c[g>>2]|0)/2|0)|0)/(c[g>>2]|0)|0;b[(c[s>>2]|0)+((c[c[v>>2]>>2]|0)+1<<1)>>1]=c[q>>2];if((b[(c[s>>2]|0)+(c[c[v>>2]>>2]<<1)>>1]|0)>(b[(c[s>>2]|0)+((c[c[v>>2]>>2]|0)+1<<1)>>1]|0))b[(c[s>>2]|0)+(c[c[v>>2]>>2]<<1)>>1]=b[(c[s>>2]|0)+((c[c[v>>2]>>2]|0)+1<<1)>>1]|0;c[t>>2]=1;while(1){a=c[s>>2]|0;if((c[t>>2]|0)>=((c[c[v>>2]>>2]|0)-1|0))break;if(((b[a+((c[t>>2]|0)+1<<1)>>1]|0)-(b[(c[s>>2]|0)+(c[t>>2]<<1)>>1]|0)|0)<((b[(c[s>>2]|0)+(c[t>>2]<<1)>>1]|0)-(b[(c[s>>2]|0)+((c[t>>2]|0)-1<<1)>>1]|0)|0)){r=(c[s>>2]|0)+(c[t>>2]<<1)|0;b[r>>1]=(b[r>>1]|0)-(((b[(c[s>>2]|0)+(c[t>>2]<<1)>>1]<<1)-(b[(c[s>>2]|0)+((c[t>>2]|0)-1<<1)>>1]|0)-(b[(c[s>>2]|0)+((c[t>>2]|0)+1<<1)>>1]|0)+1|0)/2|0)}c[t>>2]=(c[t>>2]|0)+1}c[u>>2]=a;v=c[u>>2]|0;l=w;return v|0}function Oc(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+64|0;j=s+48|0;k=s+44|0;m=s+40|0;n=s+36|0;o=s+32|0;p=s+28|0;q=s+24|0;r=s+20|0;e=s+16|0;f=s+12|0;g=s+8|0;h=s+4|0;i=s;c[j>>2]=a;c[k>>2]=d;c[o>>2]=1;while(1){if((c[o>>2]|0)>=25)break;if((b[2076+((c[o>>2]|0)+1<<1)>>1]<<1|0)>=(c[(c[j>>2]|0)+4>>2]|0))break;c[o>>2]=(c[o>>2]|0)+1}c[(c[j>>2]|0)+32>>2]=12;c[p>>2]=Mc((c[(c[j>>2]|0)+16>>2]|0)*12<<1)|0;if(!(c[p>>2]|0)){l=s;return}c[m>>2]=0;while(1){if((c[m>>2]|0)>=12)break;c[q>>2]=0;c[r>>2]=0;c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[o>>2]|0))break;c[e>>2]=O(b[(c[(c[j>>2]|0)+24>>2]|0)+((c[r>>2]|0)+1<<1)>>1]|0,c[k>>2]|0)|0;c[g>>2]=O(c[(c[j>>2]|0)+12>>2]|0,c[424+(((c[m>>2]|0)*25|0)+(c[n>>2]|0)<<2)>>2]|0)|0;a=c[g>>2]|0;if((c[e>>2]|0)<(b[2076+((c[n>>2]|0)+1<<1)>>1]|0)){c[h>>2]=O(a,(c[e>>2]|0)-(b[2076+(c[n>>2]<<1)>>1]|0)|0)|0;c[i>>2]=(b[2076+((c[n>>2]|0)+1<<1)>>1]|0)-(b[2076+(c[n>>2]<<1)>>1]|0);c[f>>2]=((c[h>>2]|0)+((c[i>>2]|0)/2|0)|0)/(c[i>>2]|0)|0;d=O(c[m>>2]|0,c[(c[j>>2]|0)+16>>2]|0)|0;b[(c[p>>2]|0)+(d+(c[r>>2]|0)<<1)>>1]=((c[q>>2]|0)+(c[f>>2]|0)+128|0)/256|0;c[q>>2]=0;c[r>>2]=(c[r>>2]|0)+1;c[q>>2]=(c[q>>2]|0)+((c[g>>2]|0)-(c[f>>2]|0))}else c[q>>2]=(c[q>>2]|0)+a;c[n>>2]=(c[n>>2]|0)+1}d=O(c[m>>2]|0,c[(c[j>>2]|0)+16>>2]|0)|0;b[(c[p>>2]|0)+(d+(c[r>>2]|0)<<1)>>1]=((c[q>>2]|0)+128|0)/256|0;c[m>>2]=(c[m>>2]|0)+1}c[(c[j>>2]|0)+36>>2]=c[p>>2];l=s;return}function Pc(a){a=a|0;var b=0,d=0,e=0,f=0;f=l;l=l+16|0;b=f+8|0;d=f+4|0;e=f;c[b>>2]=a;c[e>>2]=0;if(!(c[b>>2]|0)){Kc(3212);l=f;return}if((c[c[b>>2]>>2]|0)!=-1324549906?(c[(c[b>>2]|0)+88>>2]|0)!=-1324549906:0){if((c[c[b>>2]>>2]|0)!=-1592735106?(c[c[b>>2]>>2]|0)!=2127171745:0){Kc(3289);l=f;return}c[c[b>>2]>>2]=-1324549906;a:do if(c[(c[b>>2]|0)+40>>2]|0){c[d>>2]=0;while(1){if((c[d>>2]|0)>=(c[(c[b>>2]|0)+16>>2]|0))break a;if((c[(c[(c[b>>2]|0)+40>>2]|0)+(c[d>>2]<<2)>>2]|0)!=(c[e>>2]|0)){c[e>>2]=c[(c[(c[b>>2]|0)+40>>2]|0)+(c[d>>2]<<2)>>2];Qc(c[(c[(c[b>>2]|0)+40>>2]|0)+(c[d>>2]<<2)>>2]|0)}c[d>>2]=(c[d>>2]|0)+1}}while(0);Qc(c[(c[b>>2]|0)+40>>2]|0);Qc(c[(c[b>>2]|0)+24>>2]|0);Qc(c[(c[b>>2]|0)+36>>2]|0);Qc(c[(c[b>>2]|0)+56>>2]|0);Ec((c[b>>2]|0)+44|0);Ec((c[b>>2]|0)+68|0);Xc(c[(c[b>>2]|0)+84>>2]|0);c[(c[b>>2]|0)+88>>2]=-1324549906;Qc(c[b>>2]|0);l=f;return}Kc(3245);l=f;return}function Qc(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;Ld(c[d>>2]|0);l=b;return}function Rc(a,b,d,e,f,h,i){a=a|0;b=+b;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=l;l=l+80|0;v=x+68|0;w=x+60|0;k=x+52|0;m=x+48|0;n=x+44|0;o=x+40|0;j=x+36|0;p=x+32|0;q=x+24|0;r=x+16|0;s=x+8|0;t=x+4|0;u=x;c[v>>2]=a;g[x+64>>2]=b;c[w>>2]=d;c[x+56>>2]=e;c[k>>2]=f;c[m>>2]=h;c[n>>2]=i;g[p>>2]=1.0;g[q>>2]=-1.0;g[q+4>>2]=-1.0;g[r>>2]=0.0;g[r+4>>2]=0.0;c[c[n>>2]>>2]=0;c[(c[n>>2]|0)+4>>2]=1;c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[k>>2]|0))break;g[p>>2]=+g[p>>2]+ +g[(c[w>>2]|0)+(c[j>>2]<<2)>>2]*+g[(c[w>>2]|0)+(c[j>>2]<<2)>>2];c[j>>2]=(c[j>>2]|0)+1}c[o>>2]=0;while(1){if((c[o>>2]|0)>=(c[m>>2]|0))break;if(+g[(c[v>>2]|0)+(c[o>>2]<<2)>>2]>0.0?(g[u>>2]=+g[(c[v>>2]|0)+(c[o>>2]<<2)>>2],g[t>>2]=+g[u>>2]*+g[u>>2],g[s>>2]=+g[t>>2]*1.0/+g[p>>2],+g[t>>2]*+g[r+4>>2]>+g[q+4>>2]*+g[p>>2]):0){if(+g[t>>2]*+g[r>>2]>+g[q>>2]*+g[p>>2]){g[q+4>>2]=+g[q>>2];g[r+4>>2]=+g[r>>2];c[(c[n>>2]|0)+4>>2]=c[c[n>>2]>>2];g[q>>2]=+g[t>>2];g[r>>2]=+g[p>>2];a=c[o>>2]|0;j=c[n>>2]|0}else{g[q+4>>2]=+g[t>>2];g[r+4>>2]=+g[p>>2];a=c[o>>2]|0;j=(c[n>>2]|0)+4|0}c[j>>2]=a}g[p>>2]=+g[p>>2]+(+g[(c[w>>2]|0)+((c[o>>2]|0)+(c[k>>2]|0)<<2)>>2]*+g[(c[w>>2]|0)+((c[o>>2]|0)+(c[k>>2]|0)<<2)>>2]-+g[(c[w>>2]|0)+(c[o>>2]<<2)>>2]*+g[(c[w>>2]|0)+(c[o>>2]<<2)>>2]);g[p>>2]=1.0>+g[p>>2]?1.0:+g[p>>2];c[o>>2]=(c[o>>2]|0)+1}l=x;return}function Sc(a,b,d,e,f,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0;r=l;l=l+48|0;o=r+32|0;p=r+28|0;q=r+24|0;j=r+20|0;s=r+16|0;k=r+12|0;m=r+4|0;n=r;c[o>>2]=a;c[p>>2]=b;c[q>>2]=d;c[j>>2]=e;c[s>>2]=f;c[k>>2]=h;c[r+8>>2]=i;c[n>>2]=c[s>>2];c[m>>2]=1;while(1){if((c[m>>2]|0)>=(c[q>>2]>>1|0))break;t=+g[(c[o>>2]|0)+((O((c[m>>2]<<1)-1|0,c[n>>2]|0)|0)<<2)>>2];t=(t+ +g[(c[o>>2]|0)+((O((c[m>>2]<<1)+1|0,c[n>>2]|0)|0)<<2)>>2])*.5;t=(t+ +g[(c[o>>2]|0)+((O(c[m>>2]<<1,c[n>>2]|0)|0)<<2)>>2])*.5;g[(c[p>>2]|0)+(c[m>>2]<<2)>>2]=t;c[m>>2]=(c[m>>2]|0)+1}g[c[p>>2]>>2]=((+g[c[k>>2]>>2]+ +g[(c[o>>2]|0)+(c[n>>2]<<2)>>2])*.5+ +g[c[o>>2]>>2])*.5;g[c[k>>2]>>2]=+g[(c[o>>2]|0)+((c[j>>2]|0)-(c[n>>2]|0)<<2)>>2];if((c[n>>2]|0)!=2){l=r;return}c[m>>2]=1;while(1){a=c[o>>2]|0;if((c[m>>2]|0)>=(c[q>>2]>>1|0))break;t=+g[a+((O((c[m>>2]<<1)-1|0,c[n>>2]|0)|0)+1<<2)>>2];t=(t+ +g[(c[o>>2]|0)+((O((c[m>>2]<<1)+1|0,c[n>>2]|0)|0)+1<<2)>>2])*.5;t=(t+ +g[(c[o>>2]|0)+((O(c[m>>2]<<1,c[n>>2]|0)|0)+1<<2)>>2])*.5;g[(c[p>>2]|0)+(c[m>>2]<<2)>>2]=t;c[m>>2]=(c[m>>2]|0)+1}s=c[p>>2]|0;g[s>>2]=+g[s>>2]+(+g[a+((c[n>>2]|0)+1<<2)>>2]*.5+ +g[(c[o>>2]|0)+4>>2])*.5;s=c[k>>2]|0;g[s>>2]=+g[s>>2]+ +g[(c[o>>2]|0)+((c[j>>2]|0)-(c[n>>2]|0)+1<<2)>>2];l=r;return}function Tc(a,b,d,e,f,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0.0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0;G=l;l=l+1120|0;H=G+1112|0;D=G+1108|0;E=G+1104|0;k=G+1100|0;m=G+1096|0;n=G+1092|0;o=G+1084|0;p=G+1080|0;q=G+1072|0;r=G+1064|0;s=G+1060|0;t=G+1056|0;u=G+1052|0;v=G+1048|0;w=G+24|0;x=G+16|0;y=G+12|0;z=G+8|0;A=G+4|0;C=G;c[H>>2]=a;c[D>>2]=b;c[E>>2]=d;c[k>>2]=e;c[m>>2]=f;c[n>>2]=h;c[G+1088>>2]=i;c[G+1076>>2]=1024;c[q>>2]=c[(c[H>>2]|0)+12>>2];c[r>>2]=0;c[r+4>>2]=0;g[s>>2]=1.0;c[u>>2]=0;b=c[k>>2]>>2;c[v>>2]=da()|0;a=l;l=l+((1*(b<<2)|0)+15&-16)|0;b=l;l=l+((1*(c[m>>2]>>1<<2)|0)+15&-16)|0;c[p>>2]=0;while(1){if((c[p>>2]|0)>=(c[k>>2]>>2|0))break;g[a+(c[p>>2]<<2)>>2]=+g[(c[D>>2]|0)+(c[p>>2]<<1<<2)>>2];c[p>>2]=(c[p>>2]|0)+1}c[p>>2]=0;while(1){if((c[p>>2]|0)>=256)break;g[w+(c[p>>2]<<2)>>2]=+g[(c[E>>2]|0)+(c[p>>2]<<1<<2)>>2];c[p>>2]=(c[p>>2]|0)+1}c[o>>2]=0;while(1){if((c[o>>2]|0)>=(c[m>>2]>>2|0))break;g[x>>2]=0.0;c[p>>2]=0;while(1){j=+g[x>>2];if((c[p>>2]|0)>=(c[k>>2]>>2|0))break;g[x>>2]=j+ +g[a+(c[p>>2]<<2)>>2]*+g[w+((c[o>>2]|0)+(c[p>>2]|0)<<2)>>2];c[p>>2]=(c[p>>2]|0)+1}g[b+(c[o>>2]<<2)>>2]=-1.0>j?-1.0:+g[x>>2];g[s>>2]=+g[s>>2]>+g[x>>2]?+g[s>>2]:+g[x>>2];c[o>>2]=(c[o>>2]|0)+1}Rc(b,+g[s>>2],w,0,c[k>>2]>>2,c[m>>2]>>2,r);g[s>>2]=1.0;c[o>>2]=0;while(1){if((c[o>>2]|0)>=(c[m>>2]>>1|0))break;g[y>>2]=0.0;g[b+(c[o>>2]<<2)>>2]=0.0;if(!((B((c[o>>2]|0)-(c[r>>2]<<1)|0)|0)>2?(B((c[o>>2]|0)-(c[r+4>>2]<<1)|0)|0)>2:0)){c[p>>2]=0;while(1){if((c[p>>2]|0)>=(c[k>>2]>>1|0))break;g[y>>2]=+g[y>>2]+ +g[(c[D>>2]|0)+(c[p>>2]<<2)>>2]*+g[(c[E>>2]|0)+((c[o>>2]|0)+(c[p>>2]|0)<<2)>>2];c[p>>2]=(c[p>>2]|0)+1}g[b+(c[o>>2]<<2)>>2]=-1.0>+g[y>>2]?-1.0:+g[y>>2];g[s>>2]=+g[s>>2]>+g[y>>2]?+g[s>>2]:+g[y>>2]}c[o>>2]=(c[o>>2]|0)+1}Rc(b,+g[s>>2],c[E>>2]|0,c[u>>2]|0,c[k>>2]>>1,c[m>>2]>>1,r);do if((c[r>>2]|0)>0?(c[r>>2]|0)<((c[m>>2]>>1)-1|0):0){g[z>>2]=+g[b+((c[r>>2]|0)-1<<2)>>2];g[A>>2]=+g[b+(c[r>>2]<<2)>>2];g[C>>2]=+g[b+((c[r>>2]|0)+1<<2)>>2];if(+g[C>>2]-+g[z>>2]>(+g[A>>2]-+g[z>>2])*.699999988079071){c[t>>2]=1;break}if(+g[z>>2]-+g[C>>2]>(+g[A>>2]-+g[C>>2])*.699999988079071){c[t>>2]=-1;break}else{c[t>>2]=0;break}}else F=29;while(0);if((F|0)==29)c[t>>2]=0;c[c[n>>2]>>2]=(c[r>>2]<<1)-(c[t>>2]|0);Le(c[E>>2]|0,(c[E>>2]|0)+(c[q>>2]>>1<<2)|0,(1024-(c[q>>2]|0)>>1<<2)+0|0)|0;Le((c[E>>2]|0)+(1024-(c[q>>2]|0)>>1<<2)|0,c[D>>2]|0,(c[q>>2]>>1<<2)+0|0)|0;ca(c[v>>2]|0);l=G;return}function Uc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+32|0;e=m+20|0;f=m+16|0;h=m+12|0;i=m+8|0;j=m+4|0;k=m;c[e>>2]=a;c[f>>2]=b;c[h>>2]=d;g[j>>2]=0.0;c[i>>2]=0;while(1){if((c[i>>2]|0)>=(c[h>>2]|0))break;g[k>>2]=+g[(c[e>>2]|0)+(c[i>>2]<<2)>>2]-+g[(c[f>>2]|0)+(c[i>>2]<<2)>>2];g[j>>2]=+g[j>>2]+ +g[k>>2]*+g[k>>2];c[i>>2]=(c[i>>2]|0)+1}l=m;return +g[j>>2]>+(c[h>>2]<<1|0)|0}function Vc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=l;l=l+16|0;b=g+12|0;d=g+8|0;e=g+4|0;f=g;c[d>>2]=a;c[f>>2]=Wc(c[(c[d>>2]|0)+16>>2]<<2<<2)|0;if(!(c[f>>2]|0)){c[b>>2]=0;f=c[b>>2]|0;l=g;return f|0}c[e>>2]=0;while(1){if((c[e>>2]|0)>=(c[(c[d>>2]|0)+16>>2]|0))break;c[(c[f>>2]|0)+(c[e>>2]<<1<<2)>>2]=6e3-((c[e>>2]|0)*200|0);a=zc(c[(c[f>>2]|0)+(c[e>>2]<<1<<2)>>2]|0)|0;c[(c[f>>2]|0)+((c[e>>2]<<1)+1<<2)>>2]=a;c[e>>2]=(c[e>>2]|0)+1}c[e>>2]=0;while(1){if((c[e>>2]|0)>=(c[(c[d>>2]|0)+16>>2]|0))break;c[(c[f>>2]|0)+((c[(c[d>>2]|0)+16>>2]<<1)+(c[e>>2]<<1)<<2)>>2]=9e3-((c[e>>2]|0)*240|0);a=zc(c[(c[f>>2]|0)+((c[(c[d>>2]|0)+16>>2]<<1)+(c[e>>2]<<1)<<2)>>2]|0)|0;c[(c[f>>2]|0)+((c[(c[d>>2]|0)+16>>2]<<1)+(c[e>>2]<<1)+1<<2)>>2]=a;c[e>>2]=(c[e>>2]|0)+1}c[b>>2]=c[f>>2];f=c[b>>2]|0;l=g;return f|0}function Wc(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=Md(c[d>>2]|0,1)|0;l=b;return a|0}function Xc(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;Yc(c[d>>2]|0);l=b;return}function Yc(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;Ld(c[d>>2]|0);l=b;return}function Zc(a,b,d,e,f,h,i,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;var m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;H=l;l=l+96|0;G=H+84|0;n=H+80|0;o=H+76|0;p=H+72|0;I=H+68|0;q=H+64|0;r=H+60|0;s=H+56|0;J=H+52|0;t=H+48|0;u=H+44|0;v=H+40|0;w=H+32|0;x=H+28|0;y=H+24|0;z=H+20|0;B=H+16|0;C=H+12|0;D=H+8|0;E=H+4|0;F=H;c[G>>2]=a;c[n>>2]=b;c[o>>2]=d;c[p>>2]=e;c[I>>2]=f;c[q>>2]=h;c[r>>2]=i;c[s>>2]=j;c[J>>2]=k;c[v>>2]=0;c[w>>2]=0;c[w+4>>2]=0;g[x>>2]=+g[(c[G>>2]|0)+28>>2];c[z>>2]=c[J>>2];if(c[I>>2]|0){g[x>>2]=0.0;c[q>>2]=(c[q>>2]|0)+(c[(c[G>>2]|0)+16>>2]<<1<<2)}g[y>>2]=+g[x>>2]*.800000011920929;c[t>>2]=0;while(1){if((c[t>>2]|0)>=(c[(c[G>>2]|0)+16>>2]|0))break;c[u>>2]=0;do{if((c[t>>2]|0)<5)m=(1.0-+g[x>>2])*+g[1624+(c[t>>2]<<2)>>2];else m=0.0;g[F>>2]=m;g[D>>2]=+g[(c[n>>2]|0)+((c[t>>2]|0)+(O(c[u>>2]|0,c[(c[G>>2]|0)+16>>2]|0)|0)<<2)>>2];m=+g[D>>2]-+g[F>>2]-+g[x>>2]*+g[(c[o>>2]|0)+((c[t>>2]|0)+(O(c[u>>2]|0,c[(c[G>>2]|0)+16>>2]|0)|0)<<2)>>2];g[E>>2]=m-+g[w+(c[u>>2]<<2)>>2];c[B>>2]=~~+A(+(+g[E>>2]+.5));c[v>>2]=td(c[s>>2]|0,0)|0;if((c[v>>2]|0)>>>0>(c[p>>2]|0)>>>0){c[B>>2]=-1;m=128.0;a=c[r>>2]|0;b=c[t>>2]|0;d=c[u>>2]|0;e=c[G>>2]|0}else{Ac(c[s>>2]|0,B,c[(c[q>>2]|0)+(c[t>>2]<<1<<2)>>2]|0,c[(c[q>>2]|0)+((c[t>>2]<<1)+1<<2)>>2]|0);m=+g[E>>2]-+(c[B>>2]|0);a=c[r>>2]|0;b=c[t>>2]|0;d=c[u>>2]|0;e=c[G>>2]|0}g[a+(b+(O(d,c[e+16>>2]|0)|0)<<2)>>2]=m;g[C>>2]=+(c[B>>2]|0);m=+g[x>>2]*+g[(c[o>>2]|0)+((c[t>>2]|0)+(O(c[u>>2]|0,c[(c[G>>2]|0)+16>>2]|0)|0)<<2)>>2];g[(c[o>>2]|0)+((c[t>>2]|0)+(O(c[u>>2]|0,c[(c[G>>2]|0)+16>>2]|0)|0)<<2)>>2]=m+(+g[F>>2]+ +g[w+(c[u>>2]<<2)>>2]+ +g[C>>2]);g[w+(c[u>>2]<<2)>>2]=+g[F>>2]+ +g[w+(c[u>>2]<<2)>>2]+(1.0-+g[y>>2])*+g[C>>2];J=(c[u>>2]|0)+1|0;c[u>>2]=J}while((J|0)<(c[z>>2]|0));c[t>>2]=(c[t>>2]|0)+1}l=H;return c[v>>2]|0}function _c(a,d,e,f,h,i,j){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0;x=l;l=l+64|0;u=x+44|0;v=x+40|0;w=x+36|0;k=x+32|0;m=x+28|0;n=x+24|0;y=x+20|0;o=x+16|0;p=x+12|0;q=x+8|0;r=x+48|0;s=x+4|0;t=x;c[u>>2]=a;c[v>>2]=d;c[w>>2]=e;c[k>>2]=f;c[m>>2]=h;c[n>>2]=i;c[y>>2]=j;c[q>>2]=c[y>>2];c[o>>2]=0;while(1){if((c[o>>2]|0)>=(c[(c[u>>2]|0)+16>>2]|0))break;b[r>>1]=1<<c[(c[m>>2]|0)+(c[o>>2]<<2)>>2];if((c[(c[m>>2]|0)+(c[o>>2]<<2)>>2]|0)>0){c[p>>2]=0;do{z=+g[(c[k>>2]|0)+((c[o>>2]|0)+(O(c[p>>2]|0,c[(c[u>>2]|0)+16>>2]|0)|0)<<2)>>2]+.5;c[s>>2]=~~+A(+(z*+(b[r>>1]|0)));if((c[s>>2]|0)>((b[r>>1]|0)-1|0))c[s>>2]=(b[r>>1]|0)-1;cc(c[n>>2]|0,c[s>>2]|0,c[(c[m>>2]|0)+(c[o>>2]<<2)>>2]|0);g[t>>2]=(+(c[s>>2]|0)+.5)*+(1<<14-(c[(c[m>>2]|0)+(c[o>>2]<<2)>>2]|0)|0)*.00006103515625-.5;y=(c[w>>2]|0)+((c[o>>2]|0)+(O(c[p>>2]|0,c[(c[u>>2]|0)+16>>2]|0)|0)<<2)|0;g[y>>2]=+g[y>>2]+ +g[t>>2];y=(c[k>>2]|0)+((c[o>>2]|0)+(O(c[p>>2]|0,c[(c[u>>2]|0)+16>>2]|0)|0)<<2)|0;g[y>>2]=+g[y>>2]-+g[t>>2];z=+$c(+g[(c[w>>2]|0)+((c[o>>2]|0)+(O(c[p>>2]|0,c[(c[u>>2]|0)+16>>2]|0)|0)<<2)>>2]);g[(c[v>>2]|0)+((c[o>>2]|0)+(O(c[p>>2]|0,c[(c[u>>2]|0)+16>>2]|0)|0)<<2)>>2]=z;y=(c[p>>2]|0)+1|0;c[p>>2]=y}while((y|0)<(c[q>>2]|0))}c[o>>2]=(c[o>>2]|0)+1}c[o>>2]=0;while(1){if((c[o>>2]|0)>=(O(c[q>>2]|0,c[(c[u>>2]|0)+16>>2]|0)|0))break;z=+$c(+g[(c[w>>2]|0)+(c[o>>2]<<2)>>2]);g[(c[v>>2]|0)+(c[o>>2]<<2)>>2]=z;c[o>>2]=(c[o>>2]|0)+1}l=x;return}function $c(a){a=+a;var b=0,c=0;b=l;l=l+16|0;c=b;g[c>>2]=a;a=+L(+(+g[c>>2]*.6931471805599453));l=b;return +a}function ad(a,b,d,e,f,h,i,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0.0;A=l;l=l+64|0;z=A+56|0;m=A+52|0;n=A+48|0;o=A+44|0;p=A+40|0;q=A+36|0;r=A+32|0;s=A+28|0;B=A+24|0;t=A+20|0;u=A+16|0;v=A+12|0;w=A+8|0;x=A+4|0;y=A;c[z>>2]=a;c[m>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=h;c[r>>2]=i;c[s>>2]=j;c[B>>2]=k;c[w>>2]=c[B>>2];c[u>>2]=0;while(1){B=(c[u>>2]|0)<2;c[t>>2]=0;if(!B)break;while(1){if((c[t>>2]|0)>=(c[(c[z>>2]|0)+16>>2]|0))break;if((c[r>>2]|0)<(c[w>>2]|0))break;if((c[(c[p>>2]|0)+(c[t>>2]<<2)>>2]|0)<7?(c[(c[q>>2]|0)+(c[t>>2]<<2)>>2]|0)==(c[u>>2]|0):0){c[v>>2]=0;do{B=+g[(c[o>>2]|0)+((c[t>>2]|0)+(O(c[v>>2]|0,c[(c[z>>2]|0)+16>>2]|0)|0)<<2)>>2]<0.0;c[x>>2]=B?0:1;cc(c[s>>2]|0,c[x>>2]|0,1);g[y>>2]=(+(c[x>>2]|0)-.5)*+(1<<14-(c[(c[p>>2]|0)+(c[t>>2]<<2)>>2]|0)-1|0)*.00006103515625;B=(c[n>>2]|0)+((c[t>>2]|0)+(O(c[v>>2]|0,c[(c[z>>2]|0)+16>>2]|0)|0)<<2)|0;g[B>>2]=+g[B>>2]+ +g[y>>2];c[r>>2]=(c[r>>2]|0)+-1;B=(c[v>>2]|0)+1|0;c[v>>2]=B}while((B|0)<(c[w>>2]|0))}c[t>>2]=(c[t>>2]|0)+1}c[u>>2]=(c[u>>2]|0)+1}while(1){if((c[t>>2]|0)>=(O(c[w>>2]|0,c[(c[z>>2]|0)+16>>2]|0)|0))break;C=+$c(+g[(c[n>>2]|0)+(c[t>>2]<<2)>>2]);g[(c[m>>2]|0)+(c[t>>2]<<2)>>2]=C;if(+g[(c[n>>2]|0)+(c[t>>2]<<2)>>2]<-7.0)g[(c[n>>2]|0)+(c[t>>2]<<2)>>2]=-7.0;c[t>>2]=(c[t>>2]|0)+1}l=A;return}function bd(a,b,d,e,f,h,i,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;var k=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;A=l;l=l+80|0;z=A+68|0;m=A+60|0;n=A+56|0;B=A+52|0;o=A+48|0;p=A+44|0;C=A+40|0;q=A+36|0;r=A+32|0;s=A+24|0;t=A+20|0;u=A+16|0;v=A+12|0;w=A+8|0;x=A+4|0;y=A;c[z>>2]=a;c[A+64>>2]=b;c[m>>2]=d;c[n>>2]=e;c[B>>2]=f;c[o>>2]=h;c[p>>2]=i;c[C>>2]=j;c[s>>2]=0;c[s+4>>2]=0;g[t>>2]=+g[(c[z>>2]|0)+28>>2];c[v>>2]=c[C>>2];if(c[B>>2]|0){g[t>>2]=0.0;c[o>>2]=(c[o>>2]|0)+(c[(c[z>>2]|0)+16>>2]<<1<<2)}g[u>>2]=+g[t>>2]*.800000011920929;c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[(c[z>>2]|0)+16>>2]|0))break;c[r>>2]=0;do{if((c[q>>2]|0)<5)k=(1.0-+g[t>>2])*+g[1624+(c[q>>2]<<2)>>2];else k=0.0;g[y>>2]=k;C=ld(c[p>>2]|0,0)|0;if((C|0)>(c[n>>2]|0))c[w>>2]=-1;else c[w>>2]=Bc(c[p>>2]|0,c[(c[o>>2]|0)+(c[q>>2]<<1<<2)>>2]|0,c[(c[o>>2]|0)+((c[q>>2]<<1)+1<<2)>>2]|0)|0;g[x>>2]=+(c[w>>2]|0);k=+g[t>>2]*+g[(c[m>>2]|0)+((c[q>>2]|0)+(O(c[r>>2]|0,c[(c[z>>2]|0)+16>>2]|0)|0)<<2)>>2];g[(c[m>>2]|0)+((c[q>>2]|0)+(O(c[r>>2]|0,c[(c[z>>2]|0)+16>>2]|0)|0)<<2)>>2]=k+(+g[y>>2]+ +g[s+(c[r>>2]<<2)>>2]+ +g[x>>2]);g[s+(c[r>>2]<<2)>>2]=+g[y>>2]+ +g[s+(c[r>>2]<<2)>>2]+(1.0-+g[u>>2])*+g[x>>2];C=(c[r>>2]|0)+1|0;c[r>>2]=C}while((C|0)<(c[v>>2]|0));c[q>>2]=(c[q>>2]|0)+1}l=A;return}function cd(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0;t=l;l=l+48|0;p=t+40|0;q=t+36|0;r=t+32|0;s=t+28|0;i=t+24|0;u=t+20|0;j=t+16|0;k=t+12|0;m=t+8|0;n=t+4|0;o=t;c[p>>2]=a;c[q>>2]=b;c[r>>2]=d;c[s>>2]=e;c[i>>2]=f;c[u>>2]=h;c[m>>2]=c[u>>2];c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[(c[p>>2]|0)+16>>2]|0))break;if((c[(c[s>>2]|0)+(c[j>>2]<<2)>>2]|0)>0){c[k>>2]=0;do{c[n>>2]=Wb(c[i>>2]|0,c[(c[s>>2]|0)+(c[j>>2]<<2)>>2]|0)|0;g[o>>2]=(+(c[n>>2]|0)+.5)*+(1<<14-(c[(c[s>>2]|0)+(c[j>>2]<<2)>>2]|0)|0)*.00006103515625-.5;u=(c[r>>2]|0)+((c[j>>2]|0)+(O(c[k>>2]|0,c[(c[p>>2]|0)+16>>2]|0)|0)<<2)|0;g[u>>2]=+g[u>>2]+ +g[o>>2];u=(c[k>>2]|0)+1|0;c[k>>2]=u}while((u|0)<(c[m>>2]|0))}c[j>>2]=(c[j>>2]|0)+1}c[j>>2]=0;while(1){if((c[j>>2]|0)>=(O(c[m>>2]|0,c[(c[p>>2]|0)+16>>2]|0)|0))break;v=+$c(+g[(c[r>>2]|0)+(c[j>>2]<<2)>>2]);g[(c[q>>2]|0)+(c[j>>2]<<2)>>2]=v;c[j>>2]=(c[j>>2]|0)+1}l=t;return}function dd(a,b,d,e,f,h,i,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0;y=l;l=l+64|0;w=y+52|0;x=y+48|0;k=y+44|0;m=y+40|0;n=y+36|0;o=y+32|0;p=y+28|0;z=y+24|0;q=y+20|0;r=y+16|0;s=y+12|0;t=y+8|0;u=y+4|0;v=y;c[w>>2]=a;c[x>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=h;c[p>>2]=i;c[z>>2]=j;c[t>>2]=c[z>>2];c[r>>2]=0;while(1){z=(c[r>>2]|0)<2;c[q>>2]=0;if(!z)break;while(1){if((c[q>>2]|0)>=(c[(c[w>>2]|0)+16>>2]|0))break;if((c[o>>2]|0)<(c[t>>2]|0))break;if((c[(c[m>>2]|0)+(c[q>>2]<<2)>>2]|0)<7?(c[(c[n>>2]|0)+(c[q>>2]<<2)>>2]|0)==(c[r>>2]|0):0){c[s>>2]=0;do{c[u>>2]=Wb(c[p>>2]|0,1)|0;g[v>>2]=(+(c[u>>2]|0)-.5)*+(1<<14-(c[(c[m>>2]|0)+(c[q>>2]<<2)>>2]|0)-1|0)*.00006103515625;z=(c[k>>2]|0)+((c[q>>2]|0)+(O(c[s>>2]|0,c[(c[w>>2]|0)+16>>2]|0)|0)<<2)|0;g[z>>2]=+g[z>>2]+ +g[v>>2];c[o>>2]=(c[o>>2]|0)+-1;z=(c[s>>2]|0)+1|0;c[s>>2]=z}while((z|0)<(c[t>>2]|0))}c[q>>2]=(c[q>>2]|0)+1}c[r>>2]=(c[r>>2]|0)+1}while(1){if((c[q>>2]|0)>=(O(c[t>>2]|0,c[(c[w>>2]|0)+16>>2]|0)|0))break;A=+$c(+g[(c[k>>2]|0)+(c[q>>2]<<2)>>2]);g[(c[x>>2]|0)+(c[q>>2]<<2)>>2]=A;if(+g[(c[k>>2]|0)+(c[q>>2]<<2)>>2]<-7.0)g[(c[k>>2]|0)+(c[q>>2]<<2)>>2]=-7.0;c[q>>2]=(c[q>>2]|0)+1}l=y;return}function ed(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;c[c[e>>2]>>2]=c[f>>2];b=fd(c[e>>2]|0)|0;c[(c[e>>2]|0)+4>>2]=b;c[(c[e>>2]|0)+8>>2]=128;c[(c[e>>2]|0)+12>>2]=(c[(c[e>>2]|0)+8>>2]|0)-(c[(c[e>>2]|0)+4>>2]>>1);gd(c[e>>2]|0);c[(c[e>>2]|0)+24>>2]=0;c[(c[e>>2]|0)+28>>2]=0;l=d;return}function fd(a){a=a|0;var b=0,d=0,e=0;e=l;l=l+16|0;b=e+4|0;d=e;c[b>>2]=a;c[d>>2]=Vb(c[c[b>>2]>>2]|0)|0;if((c[d>>2]|0)>=0){d=c[d>>2]|0;l=e;return d|0}c[d>>2]=0;Ub(c[c[b>>2]>>2]|0);d=c[d>>2]|0;l=e;return d|0}function gd(a){a=a|0;var b=0,d=0,e=0;e=l;l=l+16|0;b=e+4|0;d=e;c[b>>2]=a;while(1){if((c[(c[b>>2]|0)+8>>2]|0)>>>0>8388608)break;a=(c[b>>2]|0)+8|0;c[a>>2]=c[a>>2]<<8;c[d>>2]=c[(c[b>>2]|0)+4>>2]<<7&255;a=fd(c[b>>2]|0)|0;c[(c[b>>2]|0)+4>>2]=a;c[d>>2]=c[d>>2]|c[(c[b>>2]|0)+4>>2]>>1;c[(c[b>>2]|0)+12>>2]=(c[(c[b>>2]|0)+12>>2]<<8)-(c[d>>2]|0);a=(c[b>>2]|0)+12|0;c[a>>2]=c[a>>2]^c[(c[b>>2]|0)+12>>2]&(c[(c[b>>2]|0)+12>>2]|0)-1&-2147483648}l=e;return}function hd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=l;l=l+16|0;g=f+8|0;e=f+4|0;d=f;c[g>>2]=a;c[e>>2]=b;c[(c[g>>2]|0)+16>>2]=((c[(c[g>>2]|0)+8>>2]|0)>>>0)/((c[e>>2]|0)>>>0)|0;c[d>>2]=(((c[(c[g>>2]|0)+12>>2]|0)-1|0)>>>0)/((c[(c[g>>2]|0)+16>>2]|0)>>>0)|0;l=f;return (c[e>>2]|0)-((c[d>>2]|0)+1+((c[e>>2]|0)-((c[d>>2]|0)+1)&0-((c[e>>2]|0)>>>0<((c[d>>2]|0)+1|0)>>>0&1)))|0}function id(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=l;l=l+16|0;g=f+8|0;e=f+4|0;d=f;c[g>>2]=a;c[e>>2]=b;c[(c[g>>2]|0)+16>>2]=(c[(c[g>>2]|0)+8>>2]|0)>>>(c[e>>2]|0);c[d>>2]=(((c[(c[g>>2]|0)+12>>2]|0)-1|0)>>>0)/((c[(c[g>>2]|0)+16>>2]|0)>>>0)|0;l=f;return (1<<c[e>>2])-((c[d>>2]|0)+1+((1<<c[e>>2])-((c[d>>2]|0)+1)&0-(1<<c[e>>2]>>>0<((c[d>>2]|0)+1|0)>>>0&1)))|0}function jd(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=l;l=l+16|0;f=j+12|0;g=j+8|0;h=j+4|0;i=j;c[f>>2]=b;c[g>>2]=e;c[h>>2]=0;c[i>>2]=0;e=(c[f>>2]|0)+28|0;c[e>>2]=(c[e>>2]|0)+(c[g>>2]|0);while(1){b=(d[(c[f>>2]|0)+20>>0]|0)>>8-(c[(c[f>>2]|0)+24>>2]|0);if((c[g>>2]|0)>>>0<(c[(c[f>>2]|0)+24>>2]|0)>>>0)break;c[h>>2]=c[h>>2]|b<<c[i>>2];c[i>>2]=(c[i>>2]|0)+(c[(c[f>>2]|0)+24>>2]|0);c[g>>2]=(c[g>>2]|0)-(c[(c[f>>2]|0)+24>>2]|0);e=Sb(c[c[f>>2]>>2]|0)|0;a[(c[f>>2]|0)+20>>0]=e;c[(c[f>>2]|0)+24>>2]=8}c[h>>2]=c[h>>2]|(b&(1<<c[g>>2])-1)<<c[i>>2];i=(c[f>>2]|0)+24|0;c[i>>2]=(c[i>>2]|0)-(c[g>>2]|0);l=j;return c[h>>2]|0}function kd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;j=l;l=l+32|0;f=j+16|0;g=j+12|0;h=j+8|0;k=j+4|0;i=j;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[k>>2]=e;c[i>>2]=O(c[(c[f>>2]|0)+16>>2]|0,(c[k>>2]|0)-(c[h>>2]|0)|0)|0;a=(c[f>>2]|0)+12|0;c[a>>2]=(c[a>>2]|0)-(c[i>>2]|0);a=c[f>>2]|0;if((c[g>>2]|0)>>>0>0){i=O(c[a+16>>2]|0,(c[h>>2]|0)-(c[g>>2]|0)|0)|0;k=c[f>>2]|0;k=k+8|0;c[k>>2]=i;k=c[f>>2]|0;gd(k);l=j;return}else{i=(c[a+8>>2]|0)-(c[i>>2]|0)|0;k=c[f>>2]|0;k=k+8|0;c[k>>2]=i;k=c[f>>2]|0;gd(k);l=j;return}}function ld(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;i=l;l=l+32|0;j=i+20|0;d=i+16|0;e=i+12|0;f=i+8|0;g=i+4|0;h=i;c[j>>2]=a;c[d>>2]=b;c[g>>2]=(md(c[c[j>>2]>>2]|0)|0)-4<<3;c[g>>2]=(c[g>>2]|0)+(33+(c[(c[j>>2]|0)+28>>2]|0));c[g>>2]=c[g>>2]<<c[d>>2];c[f>>2]=Qb(c[(c[j>>2]|0)+8>>2]|0)|0;c[e>>2]=(c[(c[j>>2]|0)+8>>2]|0)>>>((c[f>>2]|0)-16|0);while(1){j=c[d>>2]|0;c[d>>2]=j+-1;if((j|0)<=0)break;c[e>>2]=(O(c[e>>2]|0,c[e>>2]|0)|0)>>>15;c[h>>2]=(c[e>>2]|0)>>>16;c[f>>2]=c[f>>2]<<1|c[h>>2];c[e>>2]=(c[e>>2]|0)>>>(c[h>>2]|0)}l=i;return (c[g>>2]|0)-(c[f>>2]|0)|0}function md(a){a=a|0;var b=0,d=0;d=l;l=l+16|0;b=d;c[b>>2]=a;l=d;return (c[(c[b>>2]|0)+4>>2]|0)-(c[c[b>>2]>>2]|0)|0}function nd(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;c[c[f>>2]>>2]=c[g>>2];c[(c[f>>2]|0)+4>>2]=-1;c[(c[f>>2]|0)+8>>2]=0;c[(c[f>>2]|0)+16>>2]=0;c[(c[f>>2]|0)+12>>2]=-2147483648;a[(c[f>>2]|0)+20>>0]=0;c[(c[f>>2]|0)+24>>2]=8;c[(c[f>>2]|0)+28>>2]=0;l=e;return}function od(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+32|0;f=k+16|0;g=k+12|0;h=k+8|0;i=k+4|0;j=k;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=e;c[j>>2]=((c[(c[f>>2]|0)+12>>2]|0)>>>0)/((c[i>>2]|0)>>>0)|0;if((c[g>>2]|0)>>>0>0){e=(c[(c[f>>2]|0)+12>>2]|0)-(O(c[j>>2]|0,(c[i>>2]|0)-(c[g>>2]|0)|0)|0)|0;i=(c[f>>2]|0)+16|0;c[i>>2]=(c[i>>2]|0)+e;j=O(c[j>>2]|0,(c[h>>2]|0)-(c[g>>2]|0)|0)|0;c[(c[f>>2]|0)+12>>2]=j;j=c[f>>2]|0;pd(j);l=k;return}else{i=O(c[j>>2]|0,(c[i>>2]|0)-(c[h>>2]|0)|0)|0;j=(c[f>>2]|0)+12|0;c[j>>2]=(c[j>>2]|0)-i;j=c[f>>2]|0;pd(j);l=k;return}}function pd(a){a=a|0;var b=0,d=0;d=l;l=l+16|0;b=d;c[b>>2]=a;while(1){if((c[(c[b>>2]|0)+12>>2]|0)>>>0>8388608)break;qd(c[b>>2]|0,(c[(c[b>>2]|0)+16>>2]|0)>>>23);c[(c[b>>2]|0)+16>>2]=c[(c[b>>2]|0)+16>>2]<<8&2147483647;a=(c[b>>2]|0)+12|0;c[a>>2]=c[a>>2]<<8}l=d;return}function qd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=l;l=l+16|0;d=h+12|0;e=h+8|0;f=h+4|0;g=h;c[d>>2]=a;c[e>>2]=b;if((c[e>>2]|0)==255){g=(c[d>>2]|0)+8|0;c[g>>2]=(c[g>>2]|0)+1;l=h;return}c[f>>2]=c[e>>2]>>8;if((c[(c[d>>2]|0)+4>>2]|0)>=0)$b(c[c[d>>2]>>2]|0,(c[(c[d>>2]|0)+4>>2]|0)+(c[f>>2]|0)|0);if((c[(c[d>>2]|0)+8>>2]|0)>>>0>0){c[g>>2]=255+(c[f>>2]|0)&255;do{$b(c[c[d>>2]>>2]|0,c[g>>2]|0);b=(c[d>>2]|0)+8|0;f=(c[b>>2]|0)+-1|0;c[b>>2]=f}while(f>>>0>0)}c[(c[d>>2]|0)+4>>2]=c[e>>2]&255;l=h;return}function rd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+32|0;f=k+16|0;g=k+12|0;h=k+8|0;i=k+4|0;j=k;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=e;c[j>>2]=(c[(c[f>>2]|0)+12>>2]|0)>>>(c[i>>2]|0);if((c[g>>2]|0)>>>0>0){e=(c[(c[f>>2]|0)+12>>2]|0)-(O(c[j>>2]|0,(1<<c[i>>2])-(c[g>>2]|0)|0)|0)|0;i=(c[f>>2]|0)+16|0;c[i>>2]=(c[i>>2]|0)+e;j=O(c[j>>2]|0,(c[h>>2]|0)-(c[g>>2]|0)|0)|0;c[(c[f>>2]|0)+12>>2]=j;j=c[f>>2]|0;pd(j);l=k;return}else{i=O(c[j>>2]|0,(1<<c[i>>2])-(c[h>>2]|0)|0)|0;j=(c[f>>2]|0)+12|0;c[j>>2]=(c[j>>2]|0)-i;j=c[f>>2]|0;pd(j);l=k;return}}function sd(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;k=l;l=l+16|0;h=k+12|0;i=k+8|0;j=k;c[h>>2]=b;c[i>>2]=e;c[k+4>>2]=f;c[j>>2]=g;g=(c[h>>2]|0)+28|0;c[g>>2]=(c[g>>2]|0)+(c[j>>2]|0);while(1){g=(c[j>>2]|0)>>>0>=(c[(c[h>>2]|0)+24>>2]|0)>>>0;f=(c[h>>2]|0)+20|0;a[f>>0]=d[f>>0]|0|c[i>>2]<<8-(c[(c[h>>2]|0)+24>>2]|0)&255;if(!g)break;c[i>>2]=(c[i>>2]|0)>>>(c[(c[h>>2]|0)+24>>2]|0);bc(c[c[h>>2]>>2]|0,d[(c[h>>2]|0)+20>>0]|0);a[(c[h>>2]|0)+20>>0]=0;c[j>>2]=(c[j>>2]|0)-(c[(c[h>>2]|0)+24>>2]|0);c[(c[h>>2]|0)+24>>2]=8}i=(c[h>>2]|0)+24|0;c[i>>2]=(c[i>>2]|0)-(c[j>>2]|0);l=k;return}function td(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;i=l;l=l+32|0;j=i+20|0;d=i+16|0;e=i+12|0;f=i+8|0;g=i+4|0;h=i;c[j>>2]=a;c[d>>2]=b;b=ud(c[c[j>>2]>>2]|0)|0;c[g>>2]=b+((c[(c[j>>2]|0)+4>>2]|0)>=0&1)+(c[(c[j>>2]|0)+8>>2]|0)<<3;c[g>>2]=(c[g>>2]|0)+(33+(c[(c[j>>2]|0)+28>>2]|0));c[g>>2]=c[g>>2]<<c[d>>2];c[f>>2]=Qb(c[(c[j>>2]|0)+12>>2]|0)|0;c[e>>2]=(c[(c[j>>2]|0)+12>>2]|0)>>>((c[f>>2]|0)-16|0);while(1){j=c[d>>2]|0;c[d>>2]=j+-1;if((j|0)<=0)break;c[e>>2]=(O(c[e>>2]|0,c[e>>2]|0)|0)>>>15;c[h>>2]=(c[e>>2]|0)>>>16;c[f>>2]=c[f>>2]<<1|c[h>>2];c[e>>2]=(c[e>>2]|0)>>>(c[h>>2]|0)}l=i;return (c[g>>2]|0)-(c[f>>2]|0)|0}function ud(a){a=a|0;var b=0,d=0;d=l;l=l+16|0;b=d;c[b>>2]=a;l=d;return (c[(c[b>>2]|0)+4>>2]|0)-(c[c[b>>2]>>2]|0)|0}function vd(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=l;l=l+32|0;f=j+16|0;e=j+12|0;g=j+8|0;h=j+4|0;i=j;c[f>>2]=b;c[h>>2]=32-(Qb(c[(c[f>>2]|0)+12>>2]|0)|0);c[e>>2]=2147483647>>>(c[h>>2]|0);c[g>>2]=(c[(c[f>>2]|0)+16>>2]|0)+(c[e>>2]|0)&~c[e>>2];if((c[g>>2]|c[e>>2])>>>0>=((c[(c[f>>2]|0)+16>>2]|0)+(c[(c[f>>2]|0)+12>>2]|0)|0)>>>0){c[h>>2]=(c[h>>2]|0)+1;c[e>>2]=(c[e>>2]|0)>>>1;c[g>>2]=(c[(c[f>>2]|0)+16>>2]|0)+(c[e>>2]|0)&~c[e>>2]}while(1){b=c[f>>2]|0;if((c[h>>2]|0)<=0)break;qd(b,(c[g>>2]|0)>>>23);c[g>>2]=c[g>>2]<<8&2147483647;c[h>>2]=(c[h>>2]|0)-8}if(!((c[b+4>>2]|0)<0?(c[(c[f>>2]|0)+8>>2]|0)>>>0<=0:0)){qd(c[f>>2]|0,0);c[(c[f>>2]|0)+4>>2]=-1}c[i>>2]=c[(c[c[f>>2]>>2]|0)+4>>2];while(1){if((c[i>>2]|0)>>>0>(c[(c[c[f>>2]>>2]|0)+8>>2]|0)>>>0)break;h=c[i>>2]|0;c[i>>2]=h+1;a[h>>0]=0}if((c[(c[f>>2]|0)+24>>2]|0)==8){l=j;return}i=c[(c[c[f>>2]>>2]|0)+8>>2]|0;a[i>>0]=d[i>>0]|0|(d[(c[f>>2]|0)+20>>0]|0);l=j;return}function wd(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;r=l;l=l+304|0;n=r+40|0;o=r+36|0;h=r+32|0;p=r+28|0;i=r+24|0;j=r+20|0;q=r+16|0;k=r+12|0;e=r+8|0;f=r+4|0;g=r+48|0;m=r;c[o>>2]=a;c[h>>2]=d;c[j>>2]=0;c[k>>2]=c[(c[o>>2]|0)+24>>2];c[q>>2]=xd(c[(c[o>>2]|0)+16>>2]<<2)|0;if(!(c[q>>2]|0)){c[n>>2]=0;q=c[n>>2]|0;l=r;return q|0}c[i>>2]=-1;c[p>>2]=0;while(1){if((c[p>>2]|0)>=(c[(c[o>>2]|0)+16>>2]|0))break;c[e>>2]=O(c[h>>2]|0,(b[(c[k>>2]|0)+((c[p>>2]|0)+1<<1)>>1]|0)-(b[(c[k>>2]|0)+(c[p>>2]<<1)>>1]|0)|0)|0;if((c[e>>2]|0)==(c[i>>2]|0)?(b[(c[k>>2]|0)+(c[p>>2]<<1)>>1]|0)<(c[(c[o>>2]|0)+20>>2]|0):0)c[(c[q>>2]|0)+(c[p>>2]<<2)>>2]=c[(c[q>>2]|0)+((c[p>>2]|0)-1<<2)>>2];else{d=xd(80)|0;c[(c[q>>2]|0)+(c[p>>2]<<2)>>2]=d;a:do if(c[(c[q>>2]|0)+(c[p>>2]<<2)>>2]|0){mb(g,c[e>>2]|0,128,4);c[f>>2]=0;while(1){if((c[f>>2]|0)>=40)break a;d=b[g+((yd(c[f>>2]|0)|0)<<1)>>1]|0;b[(c[(c[q>>2]|0)+(c[p>>2]<<2)>>2]|0)+(c[f>>2]<<1)>>1]=d;c[f>>2]=(c[f>>2]|0)+1}}else c[j>>2]=1;while(0);c[i>>2]=c[e>>2]}c[p>>2]=(c[p>>2]|0)+1}if(c[j>>2]|0?(c[m>>2]=0,c[q>>2]|0):0){c[p>>2]=0;while(1){a=c[q>>2]|0;if((c[p>>2]|0)>=(c[(c[o>>2]|0)+16>>2]|0))break;if((c[a+(c[p>>2]<<2)>>2]|0)!=(c[m>>2]|0)){c[m>>2]=c[(c[q>>2]|0)+(c[p>>2]<<2)>>2];zd(c[(c[q>>2]|0)+(c[p>>2]<<2)>>2]|0)}c[p>>2]=(c[p>>2]|0)+1}Ld(a);c[q>>2]=0}c[n>>2]=c[q>>2];q=c[n>>2]|0;l=r;return q|0}function xd(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=Md(c[d>>2]|0,1)|0;l=b;return a|0}function yd(a){a=a|0;var b=0,d=0;d=l;l=l+16|0;b=d;c[b>>2]=a;a=c[b>>2]|0;if((c[b>>2]|0)<8){b=a;l=d;return b|0}b=8+(a&7)<<(c[b>>2]>>3)-1;l=d;return b|0}function zd(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;Ld(c[d>>2]|0);l=b;return}function Ad(a,d,e,f,g,h,i){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;y=l;l=l+64|0;v=y+56|0;w=y+52|0;x=y+48|0;j=y+44|0;k=y+40|0;m=y+36|0;z=y+32|0;n=y+28|0;o=y+24|0;p=y+20|0;q=y+16|0;r=y+12|0;s=y+8|0;t=y+4|0;u=y;c[v>>2]=a;c[w>>2]=d;c[x>>2]=e;c[j>>2]=f;c[k>>2]=g;c[m>>2]=h;c[z>>2]=i;c[r>>2]=c[z>>2];c[p>>2]=c[(c[v>>2]|0)+16>>2];d=c[p>>2]|0;c[s>>2]=da()|0;a=l;l=l+((1*(d<<2)|0)+15&-16)|0;d=l;l=l+((1*(c[p>>2]<<2)|0)+15&-16)|0;c[n>>2]=0;c[o>>2]=(c[(c[v>>2]|0)+32>>2]|0)-1;while(1){if(((c[o>>2]|0)-(c[n>>2]|0)|0)==1)break;c[t>>2]=0;c[u>>2]=(c[n>>2]|0)+(c[o>>2]|0)>>1;c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[p>>2]|0))break;z=O(c[u>>2]|0,c[p>>2]|0)|0;z=O(c[r>>2]|0,b[(c[(c[v>>2]|0)+36>>2]|0)+(z+(c[q>>2]|0)<<1)>>1]|0)|0;c[a+(c[q>>2]<<2)>>2]=z+(c[(c[w>>2]|0)+(c[q>>2]<<2)>>2]|0)<<4;if((c[a+(c[q>>2]<<2)>>2]|0)<0)c[a+(c[q>>2]<<2)>>2]=0;c[t>>2]=(c[t>>2]|0)+(c[a+(c[q>>2]<<2)>>2]|0);c[q>>2]=(c[q>>2]|0)+1}e=c[u>>2]|0;if((c[t>>2]|0)>(c[x>>2]<<4|0)){c[o>>2]=e;continue}else{c[n>>2]=e;continue}}c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[p>>2]|0))break;z=O(c[n>>2]|0,c[p>>2]|0)|0;z=O(c[r>>2]|0,b[(c[(c[v>>2]|0)+36>>2]|0)+(z+(c[q>>2]|0)<<1)>>1]|0)|0;c[a+(c[q>>2]<<2)>>2]=z+(c[(c[w>>2]|0)+(c[q>>2]<<2)>>2]|0);z=O(c[o>>2]|0,c[p>>2]|0)|0;z=O(c[r>>2]|0,b[(c[(c[v>>2]|0)+36>>2]|0)+(z+(c[q>>2]|0)<<1)>>1]|0)|0;c[d+(c[q>>2]<<2)>>2]=z+(c[(c[w>>2]|0)+(c[q>>2]<<2)>>2]|0);if((c[a+(c[q>>2]<<2)>>2]|0)<0)c[a+(c[q>>2]<<2)>>2]=0;if((c[d+(c[q>>2]<<2)>>2]|0)<0)c[d+(c[q>>2]<<2)>>2]=0;c[q>>2]=(c[q>>2]|0)+1}Bd(c[v>>2]|0,a,d,c[x>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[p>>2]|0,c[r>>2]|0);ca(c[s>>2]|0);l=y;return}function Bd(a,d,e,f,g,h,i,j,k){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;F=l;l=l+80|0;E=F+76|0;m=F+72|0;n=F+68|0;o=F+64|0;p=F+60|0;q=F+56|0;r=F+52|0;s=F+48|0;G=F+44|0;t=F+40|0;u=F+36|0;v=F+32|0;w=F+28|0;x=F+24|0;y=F+20|0;z=F+16|0;A=F+12|0;B=F+8|0;C=F+4|0;D=F;c[E>>2]=a;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;c[r>>2]=i;c[s>>2]=j;c[G>>2]=k;c[x>>2]=c[G>>2];c[u>>2]=0;c[v>>2]=16;while(1){if(((c[v>>2]|0)-(c[u>>2]|0)|0)==1)break;c[y>>2]=(c[u>>2]|0)+(c[v>>2]|0)>>1;c[t>>2]=0;c[w>>2]=0;while(1){if((c[w>>2]|0)>=(c[s>>2]|0))break;G=O(16-(c[y>>2]|0)|0,c[(c[m>>2]|0)+(c[w>>2]<<2)>>2]|0)|0;G=G+(O(c[y>>2]|0,c[(c[n>>2]|0)+(c[w>>2]<<2)>>2]|0)|0)|0;c[t>>2]=(c[t>>2]|0)+G;c[w>>2]=(c[w>>2]|0)+1}a=c[y>>2]|0;if((c[t>>2]|0)>(c[o>>2]<<4|0)){c[v>>2]=a;continue}else{c[u>>2]=a;continue}}c[t>>2]=0;c[w>>2]=0;while(1){if((c[w>>2]|0)>=(c[s>>2]|0))break;G=O(16-(c[u>>2]|0)|0,c[(c[m>>2]|0)+(c[w>>2]<<2)>>2]|0)|0;G=G+(O(c[u>>2]|0,c[(c[n>>2]|0)+(c[w>>2]<<2)>>2]|0)|0)|0;c[(c[p>>2]|0)+(c[w>>2]<<2)>>2]=G;c[t>>2]=(c[t>>2]|0)+(c[(c[p>>2]|0)+(c[w>>2]<<2)>>2]|0);c[w>>2]=(c[w>>2]|0)+1}c[z>>2]=(c[o>>2]<<4)-(c[t>>2]|0);c[A>>2]=(c[z>>2]|0)/(c[s>>2]|0)|0;c[w>>2]=0;while(1){if((c[w>>2]|0)>=(c[s>>2]|0))break;G=(c[p>>2]|0)+(c[w>>2]<<2)|0;c[G>>2]=(c[G>>2]|0)+(c[A>>2]|0);c[w>>2]=(c[w>>2]|0)+1}c[z>>2]=(c[z>>2]|0)-(O(c[s>>2]|0,c[A>>2]|0)|0);c[w>>2]=0;while(1){if((c[w>>2]|0)>=(c[z>>2]|0))break;G=(c[p>>2]|0)+(c[w>>2]<<2)|0;c[G>>2]=(c[G>>2]|0)+1;c[w>>2]=(c[w>>2]|0)+1}c[w>>2]=0;while(1){if((c[w>>2]|0)>=(c[s>>2]|0))break;c[B>>2]=(b[(c[(c[E>>2]|0)+24>>2]|0)+((c[w>>2]|0)+1<<1)>>1]|0)-(b[(c[(c[E>>2]|0)+24>>2]|0)+(c[w>>2]<<1)>>1]|0);G=O(c[x>>2]|0,c[B>>2]|0)|0;c[C>>2]=G+(((c[x>>2]|0)==2?(c[B>>2]|0)>2:0)?1:0)<<4;c[D>>2]=50-(hb(c[B>>2]|0,4)|0);G=O(c[D>>2]|0,c[B>>2]|0)|0;c[D>>2]=(c[(c[p>>2]|0)+(c[w>>2]<<2)>>2]|0)-(O(G,c[x>>2]|0)|0);if((c[x>>2]|0)==2)c[D>>2]=(c[D>>2]|0)-16;if((c[D>>2]|0)<0)c[D>>2]=0;c[(c[q>>2]|0)+(c[w>>2]<<2)>>2]=((c[D>>2]<<1)+(c[C>>2]|0)|0)/(c[C>>2]<<1|0)|0;G=O(c[(c[q>>2]|0)+(c[w>>2]<<2)>>2]|0,c[C>>2]|0)|0;c[(c[r>>2]|0)+(c[w>>2]<<2)>>2]=(G|0)>=(c[D>>2]|0)&1;G=O(c[x>>2]|0,c[(c[q>>2]|0)+(c[w>>2]<<2)>>2]|0)|0;if((G|0)>(c[(c[p>>2]|0)+(c[w>>2]<<2)>>2]>>4|0))c[(c[q>>2]|0)+(c[w>>2]<<2)>>2]=((c[(c[p>>2]|0)+(c[w>>2]<<2)>>2]|0)/(c[x>>2]|0)|0)>>4;if((c[(c[q>>2]|0)+(c[w>>2]<<2)>>2]|0)>7)c[(c[q>>2]|0)+(c[w>>2]<<2)>>2]=7;A=(O(c[x>>2]|0,c[(c[q>>2]|0)+(c[w>>2]<<2)>>2]|0)|0)<<4;G=(c[p>>2]|0)+(c[w>>2]<<2)|0;c[G>>2]=(c[G>>2]|0)-A;if((c[(c[p>>2]|0)+(c[w>>2]<<2)>>2]|0)<0)c[(c[p>>2]|0)+(c[w>>2]<<2)>>2]=0;c[w>>2]=(c[w>>2]|0)+1}l=F;return}function Cd(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,B=0,C=0,D=0,E=0,F=0;F=l;l=l+96|0;z=F+84|0;B=F+80|0;C=F+76|0;D=F+72|0;E=F+68|0;h=F+64|0;i=F+60|0;j=F+56|0;k=F+52|0;m=F+48|0;n=F+44|0;o=F+40|0;p=F+36|0;q=F+32|0;r=F+28|0;s=F+24|0;t=F+20|0;u=F+16|0;v=F+12|0;w=F+8|0;x=F+4|0;y=F;c[z>>2]=a;c[B>>2]=b;c[C>>2]=d;c[D>>2]=e;c[E>>2]=f;c[C>>2]=Dd(c[C>>2]|0)|0;b=c[B>>2]|0;c[q>>2]=da()|0;a=l;l=l+((1*(b<<2)|0)+15&-16)|0;b=l;l=l+((1*(c[B>>2]<<2)|0)+15&-16)|0;d=l;l=l+((1*(c[B>>2]<<2)|0)+15&-16)|0;c[p>>2]=512/(c[B>>2]|0)|0;if(c[D>>2]|0)Ed(c[z>>2]|0,c[B>>2]|0,1,c[D>>2]|0,c[C>>2]|0);g[m>>2]=0.0;c[h>>2]=0;do{e=d+(c[h>>2]<<2)|0;if(+g[(c[z>>2]|0)+(c[h>>2]<<2)>>2]>0.0)g[e>>2]=1.0;else{g[e>>2]=-1.0;g[(c[z>>2]|0)+(c[h>>2]<<2)>>2]=-+g[(c[z>>2]|0)+(c[h>>2]<<2)>>2]}c[b+(c[h>>2]<<2)>>2]=0;g[a+(c[h>>2]<<2)>>2]=0.0;f=(c[h>>2]|0)+1|0;c[h>>2]=f}while((f|0)<(c[B>>2]|0));g[o>>2]=0.0;g[n>>2]=0.0;c[k>>2]=c[C>>2];if((c[C>>2]|0)>(c[B>>2]>>1|0)){c[h>>2]=0;do{g[m>>2]=+g[m>>2]+ +g[(c[z>>2]|0)+(c[h>>2]<<2)>>2];f=(c[h>>2]|0)+1|0;c[h>>2]=f}while((f|0)<(c[B>>2]|0));if(+g[m>>2]<=1.0000000036274937e-15){g[c[z>>2]>>2]=1.0;c[h>>2]=1;do{g[(c[z>>2]|0)+(c[h>>2]<<2)>>2]=0.0;f=(c[h>>2]|0)+1|0;c[h>>2]=f}while((f|0)<(c[B>>2]|0));g[m>>2]=1.0}g[r>>2]=+((c[C>>2]|0)-1|0)*(1.0/+g[m>>2]);c[h>>2]=0;do{m=~~+A(+(+g[r>>2]*+g[(c[z>>2]|0)+(c[h>>2]<<2)>>2]));c[b+(c[h>>2]<<2)>>2]=m;g[a+(c[h>>2]<<2)>>2]=+(c[b+(c[h>>2]<<2)>>2]|0);g[o>>2]=+g[o>>2]+ +g[a+(c[h>>2]<<2)>>2]*+g[a+(c[h>>2]<<2)>>2];g[n>>2]=+g[n>>2]+ +g[(c[z>>2]|0)+(c[h>>2]<<2)>>2]*+g[a+(c[h>>2]<<2)>>2];m=a+(c[h>>2]<<2)|0;g[m>>2]=+g[m>>2]*2.0;c[k>>2]=(c[k>>2]|0)-(c[b+(c[h>>2]<<2)>>2]|0);m=(c[h>>2]|0)+1|0;c[h>>2]=m}while((m|0)<(c[B>>2]|0))}while(1){if((c[k>>2]|0)<=0)break;c[s>>2]=1;g[v>>2]=-999999986991104.0;g[w>>2]=0.0;r=(O(c[k>>2]|0,c[p>>2]|0)|0)>>9;c[s>>2]=r;c[s>>2]=(c[s>>2]|0)<1?1:r;g[u>>2]=+(c[s>>2]|0);c[t>>2]=0;g[o>>2]=+g[o>>2]+ +g[u>>2]*+g[u>>2];c[h>>2]=0;do{g[j>>2]=+g[u>>2];g[x>>2]=+g[n>>2]+ +g[j>>2]*+g[(c[z>>2]|0)+(c[h>>2]<<2)>>2];g[y>>2]=+g[o>>2]+ +g[j>>2]*+g[a+(c[h>>2]<<2)>>2];g[x>>2]=+g[x>>2]*+g[x>>2];if(+g[w>>2]*+g[x>>2]>+g[y>>2]*+g[v>>2]){g[w>>2]=+g[y>>2];g[v>>2]=+g[x>>2];c[t>>2]=c[h>>2]}r=(c[h>>2]|0)+1|0;c[h>>2]=r}while((r|0)<(c[B>>2]|0));c[h>>2]=c[t>>2];c[i>>2]=c[s>>2];g[j>>2]=+(c[i>>2]|0);g[n>>2]=+g[n>>2]+ +g[j>>2]*+g[(c[z>>2]|0)+(c[h>>2]<<2)>>2];g[o>>2]=+g[o>>2]+ +g[j>>2]*+g[a+(c[h>>2]<<2)>>2];r=a+(c[h>>2]<<2)|0;g[r>>2]=+g[r>>2]+ +g[j>>2]*2.0;r=b+(c[h>>2]<<2)|0;c[r>>2]=(c[r>>2]|0)+(c[i>>2]|0);c[k>>2]=(c[k>>2]|0)-(c[s>>2]|0)}c[h>>2]=0;do{g[(c[z>>2]|0)+(c[h>>2]<<2)>>2]=+g[d+(c[h>>2]<<2)>>2]*+g[(c[z>>2]|0)+(c[h>>2]<<2)>>2];if(+g[d+(c[h>>2]<<2)>>2]<0.0)c[b+(c[h>>2]<<2)>>2]=0-(c[b+(c[h>>2]<<2)>>2]|0);y=(c[h>>2]|0)+1|0;c[h>>2]=y}while((y|0)<(c[B>>2]|0));sb(b,c[B>>2]|0,c[C>>2]|0,c[E>>2]|0);Fd(b,c[z>>2]|0,c[B>>2]|0,c[C>>2]|0,+g[o>>2]);if(!(c[D>>2]|0)){E=c[q>>2]|0;ca(E|0);l=F;return}Ed(c[z>>2]|0,c[B>>2]|0,-1,c[D>>2]|0,c[C>>2]|0);E=c[q>>2]|0;ca(E|0);l=F;return}function Dd(a){a=a|0;var b=0,d=0;d=l;l=l+16|0;b=d;c[b>>2]=a;a=c[b>>2]|0;if((c[b>>2]|0)<8){b=a;l=d;return b|0}b=8+(a&7)<<(c[b>>2]>>3)-1;l=d;return b|0}function Ed(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0;v=l;l=l+80|0;s=v+64|0;t=v+60|0;x=v+56|0;u=v+52|0;z=v+48|0;h=v+44|0;i=v+40|0;j=v+36|0;k=v+32|0;m=v+28|0;y=v+24|0;w=v+20|0;n=v+16|0;o=v+12|0;p=v+8|0;q=v+4|0;r=v;c[s>>2]=a;c[t>>2]=b;c[x>>2]=d;c[u>>2]=e;c[z>>2]=f;g[y>>2]=+(c[t>>2]|0)*1.0/+(3+(c[t>>2]|0)+((c[z>>2]|0)*6|0)|0);g[w>>2]=1.0-+g[y>>2]*+g[y>>2]*.5;g[k>>2]=+E(+(+g[w>>2]*1.5707963267948966));g[m>>2]=+(c[x>>2]|0)*+E(+((1.0-+g[w>>2])*1.5707963267948966));if((c[t>>2]|0)>(c[u>>2]<<3|0))c[u>>2]=O(c[u>>2]|0,(c[t>>2]|0)/(c[u>>2]<<3|0)|0)|0;c[j>>2]=1;c[i>>2]=0;while(1){if((c[i>>2]|0)>=(c[j>>2]|0))break;c[n>>2]=c[s>>2];c[h>>2]=0;while(1){if((c[h>>2]|0)>=((c[t>>2]|0)-(c[u>>2]|0)|0))break;g[o>>2]=+g[c[n>>2]>>2];g[p>>2]=+g[(c[n>>2]|0)+(c[u>>2]<<2)>>2];g[(c[n>>2]|0)+(c[u>>2]<<2)>>2]=+g[k>>2]*+g[p>>2]+ +g[m>>2]*+g[o>>2];A=+g[k>>2]*+g[o>>2]-+g[m>>2]*+g[p>>2];z=c[n>>2]|0;c[n>>2]=z+4;g[z>>2]=A;c[h>>2]=(c[h>>2]|0)+1}c[n>>2]=(c[s>>2]|0)+((c[t>>2]|0)-(c[u>>2]<<1)-1<<2);c[h>>2]=(c[t>>2]|0)-(c[u>>2]<<1)-1;while(1){if((c[h>>2]|0)<0)break;g[q>>2]=+g[c[n>>2]>>2];g[r>>2]=+g[(c[n>>2]|0)+(c[u>>2]<<2)>>2];g[(c[n>>2]|0)+(c[u>>2]<<2)>>2]=+g[k>>2]*+g[r>>2]+ +g[m>>2]*+g[q>>2];A=+g[k>>2]*+g[q>>2]-+g[m>>2]*+g[r>>2];z=c[n>>2]|0;c[n>>2]=z+-4;g[z>>2]=A;c[h>>2]=(c[h>>2]|0)+-1}c[i>>2]=(c[i>>2]|0)+1}l=v;return}function Fd(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;n=l;l=l+32|0;j=n+28|0;k=n+24|0;m=n+20|0;p=n+12|0;h=n+8|0;o=n+4|0;i=n;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n+16>>2]=e;g[p>>2]=f;g[o>>2]=+g[p>>2];g[i>>2]=1.0/+C(+(+g[o>>2]));c[h>>2]=0;do{g[(c[k>>2]|0)+(c[h>>2]<<2)>>2]=+g[i>>2]*+(c[(c[j>>2]|0)+(c[h>>2]<<2)>>2]|0);p=(c[h>>2]|0)+1|0;c[h>>2]=p}while((p|0)<(c[m>>2]|0));l=n;return}function Gd(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;p=l;l=l+32|0;k=p+28|0;m=p+24|0;n=p+20|0;o=p+16|0;q=p+12|0;h=p+8|0;i=p+4|0;j=p;c[k>>2]=a;c[m>>2]=b;c[n>>2]=d;c[o>>2]=e;c[q>>2]=f;c[n>>2]=Dd(c[n>>2]|0)|0;f=c[m>>2]|0;c[j>>2]=da()|0;a=l;l=l+((1*(f<<2)|0)+15&-16)|0;Gb(a,c[m>>2]|0,c[n>>2]|0,c[q>>2]|0);g[i>>2]=0.0;c[h>>2]=0;do{g[i>>2]=+g[i>>2]+ +(c[a+(c[h>>2]<<2)>>2]|0)*+(c[a+(c[h>>2]<<2)>>2]|0);q=(c[h>>2]|0)+1|0;c[h>>2]=q}while((q|0)<(c[m>>2]|0));Fd(a,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,+g[i>>2]);if(!(c[o>>2]|0)){q=c[j>>2]|0;ca(q|0);l=p;return}Ed(c[k>>2]|0,c[m>>2]|0,-1,c[o>>2]|0,c[n>>2]|0);q=c[j>>2]|0;ca(q|0);l=p;return}function Hd(a,b,d,e){a=a|0;b=+b;d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+48|0;j=q+32|0;k=q+28|0;m=q+24|0;n=q+20|0;o=q+16|0;p=q+12|0;f=q+8|0;h=q+4|0;i=q;c[j>>2]=a;g[k>>2]=b;c[m>>2]=d;c[n>>2]=e;g[p>>2]=1.0000000036274937e-15;c[i>>2]=c[j>>2];c[o>>2]=0;while(1){b=+g[p>>2];if((c[o>>2]|0)>=(c[m>>2]|0))break;g[p>>2]=b+ +g[c[i>>2]>>2]*+g[c[i>>2]>>2];c[i>>2]=(c[i>>2]|0)+(c[n>>2]<<2);c[o>>2]=(c[o>>2]|0)+1}g[f>>2]=+C(+b);g[h>>2]=+g[k>>2]*(1.0/+g[f>>2]);c[i>>2]=c[j>>2];c[o>>2]=0;while(1){if((c[o>>2]|0)>=(c[m>>2]|0))break;g[c[i>>2]>>2]=+g[h>>2]*+g[c[i>>2]>>2];c[i>>2]=(c[i>>2]|0)+(c[n>>2]<<2);c[o>>2]=(c[o>>2]|0)+1}l=q;return +(+g[f>>2])}function Id(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;o=h+20|0;i=h+16|0;n=h+12|0;j=h+8|0;m=h+4|0;k=h;c[o>>2]=a;c[i>>2]=b;c[n>>2]=d;c[j>>2]=e;c[m>>2]=f;c[k>>2]=g;Jd(c[o>>2]|0,c[i>>2]|0,c[n>>2]|0,c[j>>2]|0,c[m>>2]|0,c[k>>2]|0);+Hd(c[j>>2]|0,1.0,c[i>>2]|0,1);l=h;return}function Jd(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;o=l;l=l+32|0;k=o+24|0;m=o+20|0;n=o+16|0;p=o+12|0;q=o+8|0;i=o+4|0;j=o;c[o+28>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[p>>2]=f;c[q>>2]=h;c[j>>2]=(c[p>>2]|0)%(c[q>>2]|0)|0;h=((c[j>>2]|0)+(c[k>>2]|0)|0)>(c[p>>2]|0);c[i>>2]=0;if(h){while(1){if((c[i>>2]|0)>=(c[k>>2]|0))break;g[(c[n>>2]|0)+(c[i>>2]<<2)>>2]=0.0;c[i>>2]=(c[i>>2]|0)+1}l=o;return}else{while(1){if((c[i>>2]|0)>=(c[k>>2]|0))break;p=c[m>>2]|0;q=c[j>>2]|0;c[j>>2]=q+1;g[(c[n>>2]|0)+(c[i>>2]<<2)>>2]=+g[p+(q<<2)>>2];c[i>>2]=(c[i>>2]|0)+1}l=o;return}}function Kd(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=l;l=l+16|0;o=x;do if(a>>>0<245){k=a>>>0<11?16:a+11&-8;a=k>>>3;n=c[1439]|0;d=n>>>a;if(d&3|0){b=(d&1^1)+a|0;a=5796+(b<<1<<2)|0;d=a+8|0;e=c[d>>2]|0;f=e+8|0;g=c[f>>2]|0;if((a|0)==(g|0))c[1439]=n&~(1<<b);else{c[g+12>>2]=a;c[d>>2]=g}w=b<<3;c[e+4>>2]=w|3;w=e+w+4|0;c[w>>2]=c[w>>2]|1;w=f;l=x;return w|0}m=c[1441]|0;if(k>>>0>m>>>0){if(d|0){b=2<<a;b=d<<a&(b|0-b);b=(b&0-b)+-1|0;h=b>>>12&16;b=b>>>h;d=b>>>5&8;b=b>>>d;f=b>>>2&4;b=b>>>f;a=b>>>1&2;b=b>>>a;e=b>>>1&1;e=(d|h|f|a|e)+(b>>>e)|0;b=5796+(e<<1<<2)|0;a=b+8|0;f=c[a>>2]|0;h=f+8|0;d=c[h>>2]|0;if((b|0)==(d|0)){a=n&~(1<<e);c[1439]=a}else{c[d+12>>2]=b;c[a>>2]=d;a=n}g=(e<<3)-k|0;c[f+4>>2]=k|3;e=f+k|0;c[e+4>>2]=g|1;c[e+g>>2]=g;if(m|0){f=c[1444]|0;b=m>>>3;d=5796+(b<<1<<2)|0;b=1<<b;if(!(a&b)){c[1439]=a|b;b=d;a=d+8|0}else{a=d+8|0;b=c[a>>2]|0}c[a>>2]=f;c[b+12>>2]=f;c[f+8>>2]=b;c[f+12>>2]=d}c[1441]=g;c[1444]=e;w=h;l=x;return w|0}i=c[1440]|0;if(i){d=(i&0-i)+-1|0;h=d>>>12&16;d=d>>>h;g=d>>>5&8;d=d>>>g;j=d>>>2&4;d=d>>>j;e=d>>>1&2;d=d>>>e;a=d>>>1&1;a=c[6060+((g|h|j|e|a)+(d>>>a)<<2)>>2]|0;d=(c[a+4>>2]&-8)-k|0;e=c[a+16+(((c[a+16>>2]|0)==0&1)<<2)>>2]|0;if(!e){j=a;g=d}else{do{h=(c[e+4>>2]&-8)-k|0;j=h>>>0<d>>>0;d=j?h:d;a=j?e:a;e=c[e+16+(((c[e+16>>2]|0)==0&1)<<2)>>2]|0}while((e|0)!=0);j=a;g=d}h=j+k|0;if(j>>>0<h>>>0){f=c[j+24>>2]|0;b=c[j+12>>2]|0;do if((b|0)==(j|0)){a=j+20|0;b=c[a>>2]|0;if(!b){a=j+16|0;b=c[a>>2]|0;if(!b){d=0;break}}while(1){d=b+20|0;e=c[d>>2]|0;if(e|0){b=e;a=d;continue}d=b+16|0;e=c[d>>2]|0;if(!e)break;else{b=e;a=d}}c[a>>2]=0;d=b}else{d=c[j+8>>2]|0;c[d+12>>2]=b;c[b+8>>2]=d;d=b}while(0);do if(f|0){b=c[j+28>>2]|0;a=6060+(b<<2)|0;if((j|0)==(c[a>>2]|0)){c[a>>2]=d;if(!d){c[1440]=i&~(1<<b);break}}else{c[f+16+(((c[f+16>>2]|0)!=(j|0)&1)<<2)>>2]=d;if(!d)break}c[d+24>>2]=f;b=c[j+16>>2]|0;if(b|0){c[d+16>>2]=b;c[b+24>>2]=d}b=c[j+20>>2]|0;if(b|0){c[d+20>>2]=b;c[b+24>>2]=d}}while(0);if(g>>>0<16){w=g+k|0;c[j+4>>2]=w|3;w=j+w+4|0;c[w>>2]=c[w>>2]|1}else{c[j+4>>2]=k|3;c[h+4>>2]=g|1;c[h+g>>2]=g;if(m|0){e=c[1444]|0;b=m>>>3;d=5796+(b<<1<<2)|0;b=1<<b;if(!(n&b)){c[1439]=n|b;b=d;a=d+8|0}else{a=d+8|0;b=c[a>>2]|0}c[a>>2]=e;c[b+12>>2]=e;c[e+8>>2]=b;c[e+12>>2]=d}c[1441]=g;c[1444]=h}w=j+8|0;l=x;return w|0}else n=k}else n=k}else n=k}else if(a>>>0<=4294967231){a=a+11|0;k=a&-8;j=c[1440]|0;if(j){e=0-k|0;a=a>>>8;if(a)if(k>>>0>16777215)i=31;else{n=(a+1048320|0)>>>16&8;v=a<<n;m=(v+520192|0)>>>16&4;v=v<<m;i=(v+245760|0)>>>16&2;i=14-(m|n|i)+(v<<i>>>15)|0;i=k>>>(i+7|0)&1|i<<1}else i=0;d=c[6060+(i<<2)>>2]|0;a:do if(!d){d=0;a=0;v=57}else{a=0;h=k<<((i|0)==31?0:25-(i>>>1)|0);g=0;while(1){f=(c[d+4>>2]&-8)-k|0;if(f>>>0<e>>>0)if(!f){a=d;e=0;f=d;v=61;break a}else{a=d;e=f}f=c[d+20>>2]|0;d=c[d+16+(h>>>31<<2)>>2]|0;g=(f|0)==0|(f|0)==(d|0)?g:f;f=(d|0)==0;if(f){d=g;v=57;break}else h=h<<((f^1)&1)}}while(0);if((v|0)==57){if((d|0)==0&(a|0)==0){a=2<<i;a=j&(a|0-a);if(!a){n=k;break}n=(a&0-a)+-1|0;h=n>>>12&16;n=n>>>h;g=n>>>5&8;n=n>>>g;i=n>>>2&4;n=n>>>i;m=n>>>1&2;n=n>>>m;d=n>>>1&1;a=0;d=c[6060+((g|h|i|m|d)+(n>>>d)<<2)>>2]|0}if(!d){i=a;h=e}else{f=d;v=61}}if((v|0)==61)while(1){v=0;d=(c[f+4>>2]&-8)-k|0;n=d>>>0<e>>>0;d=n?d:e;a=n?f:a;f=c[f+16+(((c[f+16>>2]|0)==0&1)<<2)>>2]|0;if(!f){i=a;h=d;break}else{e=d;v=61}}if((i|0)!=0?h>>>0<((c[1441]|0)-k|0)>>>0:0){g=i+k|0;if(i>>>0>=g>>>0){w=0;l=x;return w|0}f=c[i+24>>2]|0;b=c[i+12>>2]|0;do if((b|0)==(i|0)){a=i+20|0;b=c[a>>2]|0;if(!b){a=i+16|0;b=c[a>>2]|0;if(!b){b=0;break}}while(1){d=b+20|0;e=c[d>>2]|0;if(e|0){b=e;a=d;continue}d=b+16|0;e=c[d>>2]|0;if(!e)break;else{b=e;a=d}}c[a>>2]=0}else{w=c[i+8>>2]|0;c[w+12>>2]=b;c[b+8>>2]=w}while(0);do if(f){a=c[i+28>>2]|0;d=6060+(a<<2)|0;if((i|0)==(c[d>>2]|0)){c[d>>2]=b;if(!b){e=j&~(1<<a);c[1440]=e;break}}else{c[f+16+(((c[f+16>>2]|0)!=(i|0)&1)<<2)>>2]=b;if(!b){e=j;break}}c[b+24>>2]=f;a=c[i+16>>2]|0;if(a|0){c[b+16>>2]=a;c[a+24>>2]=b}a=c[i+20>>2]|0;if(a){c[b+20>>2]=a;c[a+24>>2]=b;e=j}else e=j}else e=j;while(0);do if(h>>>0>=16){c[i+4>>2]=k|3;c[g+4>>2]=h|1;c[g+h>>2]=h;b=h>>>3;if(h>>>0<256){d=5796+(b<<1<<2)|0;a=c[1439]|0;b=1<<b;if(!(a&b)){c[1439]=a|b;b=d;a=d+8|0}else{a=d+8|0;b=c[a>>2]|0}c[a>>2]=g;c[b+12>>2]=g;c[g+8>>2]=b;c[g+12>>2]=d;break}b=h>>>8;if(b)if(h>>>0>16777215)b=31;else{v=(b+1048320|0)>>>16&8;w=b<<v;u=(w+520192|0)>>>16&4;w=w<<u;b=(w+245760|0)>>>16&2;b=14-(u|v|b)+(w<<b>>>15)|0;b=h>>>(b+7|0)&1|b<<1}else b=0;d=6060+(b<<2)|0;c[g+28>>2]=b;a=g+16|0;c[a+4>>2]=0;c[a>>2]=0;a=1<<b;if(!(e&a)){c[1440]=e|a;c[d>>2]=g;c[g+24>>2]=d;c[g+12>>2]=g;c[g+8>>2]=g;break}a=h<<((b|0)==31?0:25-(b>>>1)|0);d=c[d>>2]|0;while(1){if((c[d+4>>2]&-8|0)==(h|0)){v=97;break}e=d+16+(a>>>31<<2)|0;b=c[e>>2]|0;if(!b){v=96;break}else{a=a<<1;d=b}}if((v|0)==96){c[e>>2]=g;c[g+24>>2]=d;c[g+12>>2]=g;c[g+8>>2]=g;break}else if((v|0)==97){v=d+8|0;w=c[v>>2]|0;c[w+12>>2]=g;c[v>>2]=g;c[g+8>>2]=w;c[g+12>>2]=d;c[g+24>>2]=0;break}}else{w=h+k|0;c[i+4>>2]=w|3;w=i+w+4|0;c[w>>2]=c[w>>2]|1}while(0);w=i+8|0;l=x;return w|0}else n=k}else n=k}else n=-1;while(0);d=c[1441]|0;if(d>>>0>=n>>>0){b=d-n|0;a=c[1444]|0;if(b>>>0>15){w=a+n|0;c[1444]=w;c[1441]=b;c[w+4>>2]=b|1;c[w+b>>2]=b;c[a+4>>2]=n|3}else{c[1441]=0;c[1444]=0;c[a+4>>2]=d|3;w=a+d+4|0;c[w>>2]=c[w>>2]|1}w=a+8|0;l=x;return w|0}h=c[1442]|0;if(h>>>0>n>>>0){u=h-n|0;c[1442]=u;w=c[1445]|0;v=w+n|0;c[1445]=v;c[v+4>>2]=u|1;c[w+4>>2]=n|3;w=w+8|0;l=x;return w|0}if(!(c[1557]|0)){c[1559]=4096;c[1558]=4096;c[1560]=-1;c[1561]=-1;c[1562]=0;c[1550]=0;a=o&-16^1431655768;c[o>>2]=a;c[1557]=a;a=4096}else a=c[1559]|0;i=n+48|0;j=n+47|0;g=a+j|0;f=0-a|0;k=g&f;if(k>>>0<=n>>>0){w=0;l=x;return w|0}a=c[1549]|0;if(a|0?(m=c[1547]|0,o=m+k|0,o>>>0<=m>>>0|o>>>0>a>>>0):0){w=0;l=x;return w|0}b:do if(!(c[1550]&4)){d=c[1445]|0;c:do if(d){e=6204;while(1){a=c[e>>2]|0;if(a>>>0<=d>>>0?(r=e+4|0,(a+(c[r>>2]|0)|0)>>>0>d>>>0):0)break;a=c[e+8>>2]|0;if(!a){v=118;break c}else e=a}b=g-h&f;if(b>>>0<2147483647){a=Ke(b|0)|0;if((a|0)==((c[e>>2]|0)+(c[r>>2]|0)|0)){if((a|0)!=(-1|0)){h=b;g=a;v=135;break b}}else{e=a;v=126}}else b=0}else v=118;while(0);do if((v|0)==118){d=Ke(0)|0;if((d|0)!=(-1|0)?(b=d,p=c[1558]|0,q=p+-1|0,b=((q&b|0)==0?0:(q+b&0-p)-b|0)+k|0,p=c[1547]|0,q=b+p|0,b>>>0>n>>>0&b>>>0<2147483647):0){r=c[1549]|0;if(r|0?q>>>0<=p>>>0|q>>>0>r>>>0:0){b=0;break}a=Ke(b|0)|0;if((a|0)==(d|0)){h=b;g=d;v=135;break b}else{e=a;v=126}}else b=0}while(0);do if((v|0)==126){d=0-b|0;if(!(i>>>0>b>>>0&(b>>>0<2147483647&(e|0)!=(-1|0))))if((e|0)==(-1|0)){b=0;break}else{h=b;g=e;v=135;break b}a=c[1559]|0;a=j-b+a&0-a;if(a>>>0>=2147483647){h=b;g=e;v=135;break b}if((Ke(a|0)|0)==(-1|0)){Ke(d|0)|0;b=0;break}else{h=a+b|0;g=e;v=135;break b}}while(0);c[1550]=c[1550]|4;v=133}else{b=0;v=133}while(0);if(((v|0)==133?k>>>0<2147483647:0)?(u=Ke(k|0)|0,r=Ke(0)|0,s=r-u|0,t=s>>>0>(n+40|0)>>>0,!((u|0)==(-1|0)|t^1|u>>>0<r>>>0&((u|0)!=(-1|0)&(r|0)!=(-1|0))^1)):0){h=t?s:b;g=u;v=135}if((v|0)==135){b=(c[1547]|0)+h|0;c[1547]=b;if(b>>>0>(c[1548]|0)>>>0)c[1548]=b;j=c[1445]|0;do if(j){b=6204;while(1){a=c[b>>2]|0;d=b+4|0;e=c[d>>2]|0;if((g|0)==(a+e|0)){v=145;break}f=c[b+8>>2]|0;if(!f)break;else b=f}if(((v|0)==145?(c[b+12>>2]&8|0)==0:0)?j>>>0<g>>>0&j>>>0>=a>>>0:0){c[d>>2]=e+h;w=j+8|0;w=(w&7|0)==0?0:0-w&7;v=j+w|0;w=(c[1442]|0)+(h-w)|0;c[1445]=v;c[1442]=w;c[v+4>>2]=w|1;c[v+w+4>>2]=40;c[1446]=c[1561];break}if(g>>>0<(c[1443]|0)>>>0)c[1443]=g;d=g+h|0;b=6204;while(1){if((c[b>>2]|0)==(d|0)){v=153;break}a=c[b+8>>2]|0;if(!a)break;else b=a}if((v|0)==153?(c[b+12>>2]&8|0)==0:0){c[b>>2]=g;m=b+4|0;c[m>>2]=(c[m>>2]|0)+h;m=g+8|0;m=g+((m&7|0)==0?0:0-m&7)|0;b=d+8|0;b=d+((b&7|0)==0?0:0-b&7)|0;k=m+n|0;i=b-m-n|0;c[m+4>>2]=n|3;do if((b|0)!=(j|0)){if((b|0)==(c[1444]|0)){w=(c[1441]|0)+i|0;c[1441]=w;c[1444]=k;c[k+4>>2]=w|1;c[k+w>>2]=w;break}a=c[b+4>>2]|0;if((a&3|0)==1){h=a&-8;e=a>>>3;d:do if(a>>>0<256){a=c[b+8>>2]|0;d=c[b+12>>2]|0;if((d|0)==(a|0)){c[1439]=c[1439]&~(1<<e);break}else{c[a+12>>2]=d;c[d+8>>2]=a;break}}else{g=c[b+24>>2]|0;a=c[b+12>>2]|0;do if((a|0)==(b|0)){e=b+16|0;d=e+4|0;a=c[d>>2]|0;if(!a){a=c[e>>2]|0;if(!a){a=0;break}else d=e}while(1){e=a+20|0;f=c[e>>2]|0;if(f|0){a=f;d=e;continue}e=a+16|0;f=c[e>>2]|0;if(!f)break;else{a=f;d=e}}c[d>>2]=0}else{w=c[b+8>>2]|0;c[w+12>>2]=a;c[a+8>>2]=w}while(0);if(!g)break;d=c[b+28>>2]|0;e=6060+(d<<2)|0;do if((b|0)!=(c[e>>2]|0)){c[g+16+(((c[g+16>>2]|0)!=(b|0)&1)<<2)>>2]=a;if(!a)break d}else{c[e>>2]=a;if(a|0)break;c[1440]=c[1440]&~(1<<d);break d}while(0);c[a+24>>2]=g;d=b+16|0;e=c[d>>2]|0;if(e|0){c[a+16>>2]=e;c[e+24>>2]=a}d=c[d+4>>2]|0;if(!d)break;c[a+20>>2]=d;c[d+24>>2]=a}while(0);b=b+h|0;f=h+i|0}else f=i;b=b+4|0;c[b>>2]=c[b>>2]&-2;c[k+4>>2]=f|1;c[k+f>>2]=f;b=f>>>3;if(f>>>0<256){d=5796+(b<<1<<2)|0;a=c[1439]|0;b=1<<b;if(!(a&b)){c[1439]=a|b;b=d;a=d+8|0}else{a=d+8|0;b=c[a>>2]|0}c[a>>2]=k;c[b+12>>2]=k;c[k+8>>2]=b;c[k+12>>2]=d;break}b=f>>>8;do if(!b)b=0;else{if(f>>>0>16777215){b=31;break}v=(b+1048320|0)>>>16&8;w=b<<v;u=(w+520192|0)>>>16&4;w=w<<u;b=(w+245760|0)>>>16&2;b=14-(u|v|b)+(w<<b>>>15)|0;b=f>>>(b+7|0)&1|b<<1}while(0);e=6060+(b<<2)|0;c[k+28>>2]=b;a=k+16|0;c[a+4>>2]=0;c[a>>2]=0;a=c[1440]|0;d=1<<b;if(!(a&d)){c[1440]=a|d;c[e>>2]=k;c[k+24>>2]=e;c[k+12>>2]=k;c[k+8>>2]=k;break}a=f<<((b|0)==31?0:25-(b>>>1)|0);d=c[e>>2]|0;while(1){if((c[d+4>>2]&-8|0)==(f|0)){v=194;break}e=d+16+(a>>>31<<2)|0;b=c[e>>2]|0;if(!b){v=193;break}else{a=a<<1;d=b}}if((v|0)==193){c[e>>2]=k;c[k+24>>2]=d;c[k+12>>2]=k;c[k+8>>2]=k;break}else if((v|0)==194){v=d+8|0;w=c[v>>2]|0;c[w+12>>2]=k;c[v>>2]=k;c[k+8>>2]=w;c[k+12>>2]=d;c[k+24>>2]=0;break}}else{w=(c[1442]|0)+i|0;c[1442]=w;c[1445]=k;c[k+4>>2]=w|1}while(0);w=m+8|0;l=x;return w|0}b=6204;while(1){a=c[b>>2]|0;if(a>>>0<=j>>>0?(w=a+(c[b+4>>2]|0)|0,w>>>0>j>>>0):0)break;b=c[b+8>>2]|0}f=w+-47|0;a=f+8|0;a=f+((a&7|0)==0?0:0-a&7)|0;f=j+16|0;a=a>>>0<f>>>0?j:a;b=a+8|0;d=g+8|0;d=(d&7|0)==0?0:0-d&7;v=g+d|0;d=h+-40-d|0;c[1445]=v;c[1442]=d;c[v+4>>2]=d|1;c[v+d+4>>2]=40;c[1446]=c[1561];d=a+4|0;c[d>>2]=27;c[b>>2]=c[1551];c[b+4>>2]=c[1552];c[b+8>>2]=c[1553];c[b+12>>2]=c[1554];c[1551]=g;c[1552]=h;c[1554]=0;c[1553]=b;b=a+24|0;do{v=b;b=b+4|0;c[b>>2]=7}while((v+8|0)>>>0<w>>>0);if((a|0)!=(j|0)){g=a-j|0;c[d>>2]=c[d>>2]&-2;c[j+4>>2]=g|1;c[a>>2]=g;b=g>>>3;if(g>>>0<256){d=5796+(b<<1<<2)|0;a=c[1439]|0;b=1<<b;if(!(a&b)){c[1439]=a|b;b=d;a=d+8|0}else{a=d+8|0;b=c[a>>2]|0}c[a>>2]=j;c[b+12>>2]=j;c[j+8>>2]=b;c[j+12>>2]=d;break}b=g>>>8;if(b)if(g>>>0>16777215)d=31;else{v=(b+1048320|0)>>>16&8;w=b<<v;u=(w+520192|0)>>>16&4;w=w<<u;d=(w+245760|0)>>>16&2;d=14-(u|v|d)+(w<<d>>>15)|0;d=g>>>(d+7|0)&1|d<<1}else d=0;e=6060+(d<<2)|0;c[j+28>>2]=d;c[j+20>>2]=0;c[f>>2]=0;b=c[1440]|0;a=1<<d;if(!(b&a)){c[1440]=b|a;c[e>>2]=j;c[j+24>>2]=e;c[j+12>>2]=j;c[j+8>>2]=j;break}a=g<<((d|0)==31?0:25-(d>>>1)|0);d=c[e>>2]|0;while(1){if((c[d+4>>2]&-8|0)==(g|0)){v=216;break}e=d+16+(a>>>31<<2)|0;b=c[e>>2]|0;if(!b){v=215;break}else{a=a<<1;d=b}}if((v|0)==215){c[e>>2]=j;c[j+24>>2]=d;c[j+12>>2]=j;c[j+8>>2]=j;break}else if((v|0)==216){v=d+8|0;w=c[v>>2]|0;c[w+12>>2]=j;c[v>>2]=j;c[j+8>>2]=w;c[j+12>>2]=d;c[j+24>>2]=0;break}}}else{w=c[1443]|0;if((w|0)==0|g>>>0<w>>>0)c[1443]=g;c[1551]=g;c[1552]=h;c[1554]=0;c[1448]=c[1557];c[1447]=-1;b=0;do{w=5796+(b<<1<<2)|0;c[w+12>>2]=w;c[w+8>>2]=w;b=b+1|0}while((b|0)!=32);w=g+8|0;w=(w&7|0)==0?0:0-w&7;v=g+w|0;w=h+-40-w|0;c[1445]=v;c[1442]=w;c[v+4>>2]=w|1;c[v+w+4>>2]=40;c[1446]=c[1561]}while(0);b=c[1442]|0;if(b>>>0>n>>>0){u=b-n|0;c[1442]=u;w=c[1445]|0;v=w+n|0;c[1445]=v;c[v+4>>2]=u|1;c[w+4>>2]=n|3;w=w+8|0;l=x;return w|0}}c[(Qd()|0)>>2]=12;w=0;l=x;return w|0}function Ld(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(!a)return;d=a+-8|0;f=c[1443]|0;a=c[a+-4>>2]|0;b=a&-8;j=d+b|0;do if(!(a&1)){e=c[d>>2]|0;if(!(a&3))return;h=d+(0-e)|0;g=e+b|0;if(h>>>0<f>>>0)return;if((h|0)==(c[1444]|0)){a=j+4|0;b=c[a>>2]|0;if((b&3|0)!=3){i=h;b=g;break}c[1441]=g;c[a>>2]=b&-2;c[h+4>>2]=g|1;c[h+g>>2]=g;return}d=e>>>3;if(e>>>0<256){a=c[h+8>>2]|0;b=c[h+12>>2]|0;if((b|0)==(a|0)){c[1439]=c[1439]&~(1<<d);i=h;b=g;break}else{c[a+12>>2]=b;c[b+8>>2]=a;i=h;b=g;break}}f=c[h+24>>2]|0;a=c[h+12>>2]|0;do if((a|0)==(h|0)){d=h+16|0;b=d+4|0;a=c[b>>2]|0;if(!a){a=c[d>>2]|0;if(!a){a=0;break}else b=d}while(1){d=a+20|0;e=c[d>>2]|0;if(e|0){a=e;b=d;continue}d=a+16|0;e=c[d>>2]|0;if(!e)break;else{a=e;b=d}}c[b>>2]=0}else{i=c[h+8>>2]|0;c[i+12>>2]=a;c[a+8>>2]=i}while(0);if(f){b=c[h+28>>2]|0;d=6060+(b<<2)|0;if((h|0)==(c[d>>2]|0)){c[d>>2]=a;if(!a){c[1440]=c[1440]&~(1<<b);i=h;b=g;break}}else{c[f+16+(((c[f+16>>2]|0)!=(h|0)&1)<<2)>>2]=a;if(!a){i=h;b=g;break}}c[a+24>>2]=f;b=h+16|0;d=c[b>>2]|0;if(d|0){c[a+16>>2]=d;c[d+24>>2]=a}b=c[b+4>>2]|0;if(b){c[a+20>>2]=b;c[b+24>>2]=a;i=h;b=g}else{i=h;b=g}}else{i=h;b=g}}else{i=d;h=d}while(0);if(h>>>0>=j>>>0)return;a=j+4|0;e=c[a>>2]|0;if(!(e&1))return;if(!(e&2)){a=c[1444]|0;if((j|0)==(c[1445]|0)){j=(c[1442]|0)+b|0;c[1442]=j;c[1445]=i;c[i+4>>2]=j|1;if((i|0)!=(a|0))return;c[1444]=0;c[1441]=0;return}if((j|0)==(a|0)){j=(c[1441]|0)+b|0;c[1441]=j;c[1444]=h;c[i+4>>2]=j|1;c[h+j>>2]=j;return}f=(e&-8)+b|0;d=e>>>3;do if(e>>>0<256){b=c[j+8>>2]|0;a=c[j+12>>2]|0;if((a|0)==(b|0)){c[1439]=c[1439]&~(1<<d);break}else{c[b+12>>2]=a;c[a+8>>2]=b;break}}else{g=c[j+24>>2]|0;a=c[j+12>>2]|0;do if((a|0)==(j|0)){d=j+16|0;b=d+4|0;a=c[b>>2]|0;if(!a){a=c[d>>2]|0;if(!a){d=0;break}else b=d}while(1){d=a+20|0;e=c[d>>2]|0;if(e|0){a=e;b=d;continue}d=a+16|0;e=c[d>>2]|0;if(!e)break;else{a=e;b=d}}c[b>>2]=0;d=a}else{d=c[j+8>>2]|0;c[d+12>>2]=a;c[a+8>>2]=d;d=a}while(0);if(g|0){a=c[j+28>>2]|0;b=6060+(a<<2)|0;if((j|0)==(c[b>>2]|0)){c[b>>2]=d;if(!d){c[1440]=c[1440]&~(1<<a);break}}else{c[g+16+(((c[g+16>>2]|0)!=(j|0)&1)<<2)>>2]=d;if(!d)break}c[d+24>>2]=g;a=j+16|0;b=c[a>>2]|0;if(b|0){c[d+16>>2]=b;c[b+24>>2]=d}a=c[a+4>>2]|0;if(a|0){c[d+20>>2]=a;c[a+24>>2]=d}}}while(0);c[i+4>>2]=f|1;c[h+f>>2]=f;if((i|0)==(c[1444]|0)){c[1441]=f;return}}else{c[a>>2]=e&-2;c[i+4>>2]=b|1;c[h+b>>2]=b;f=b}a=f>>>3;if(f>>>0<256){d=5796+(a<<1<<2)|0;b=c[1439]|0;a=1<<a;if(!(b&a)){c[1439]=b|a;a=d;b=d+8|0}else{b=d+8|0;a=c[b>>2]|0}c[b>>2]=i;c[a+12>>2]=i;c[i+8>>2]=a;c[i+12>>2]=d;return}a=f>>>8;if(a)if(f>>>0>16777215)a=31;else{h=(a+1048320|0)>>>16&8;j=a<<h;g=(j+520192|0)>>>16&4;j=j<<g;a=(j+245760|0)>>>16&2;a=14-(g|h|a)+(j<<a>>>15)|0;a=f>>>(a+7|0)&1|a<<1}else a=0;e=6060+(a<<2)|0;c[i+28>>2]=a;c[i+20>>2]=0;c[i+16>>2]=0;b=c[1440]|0;d=1<<a;do if(b&d){b=f<<((a|0)==31?0:25-(a>>>1)|0);d=c[e>>2]|0;while(1){if((c[d+4>>2]&-8|0)==(f|0)){a=73;break}e=d+16+(b>>>31<<2)|0;a=c[e>>2]|0;if(!a){a=72;break}else{b=b<<1;d=a}}if((a|0)==72){c[e>>2]=i;c[i+24>>2]=d;c[i+12>>2]=i;c[i+8>>2]=i;break}else if((a|0)==73){h=d+8|0;j=c[h>>2]|0;c[j+12>>2]=i;c[h>>2]=i;c[i+8>>2]=j;c[i+12>>2]=d;c[i+24>>2]=0;break}}else{c[1440]=b|d;c[e>>2]=i;c[i+24>>2]=e;c[i+12>>2]=i;c[i+8>>2]=i}while(0);j=(c[1447]|0)+-1|0;c[1447]=j;if(!j)a=6212;else return;while(1){a=c[a>>2]|0;if(!a)break;else a=a+8|0}c[1447]=-1;return}function Md(a,b){a=a|0;b=b|0;var d=0;if(a){d=O(b,a)|0;if((b|a)>>>0>65535)d=((d>>>0)/(a>>>0)|0|0)==(b|0)?d:-1}else d=0;a=Kd(d)|0;if(!a)return a|0;if(!(c[a+-4>>2]&3))return a|0;De(a|0,0,d|0)|0;return a|0}function Nd(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=Td(c[a+60>>2]|0)|0;a=Pd(Z(6,d|0)|0)|0;l=b;return a|0}function Od(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=l;l=l+32|0;g=f;e=f+20|0;c[g>>2]=c[a+60>>2];c[g+4>>2]=0;c[g+8>>2]=b;c[g+12>>2]=e;c[g+16>>2]=d;if((Pd(ba(140,g|0)|0)|0)<0){c[e>>2]=-1;a=-1}else a=c[e>>2]|0;l=f;return a|0}function Pd(a){a=a|0;if(a>>>0>4294963200){c[(Qd()|0)>>2]=0-a;a=-1}return a|0}function Qd(){return (Rd()|0)+64|0}function Rd(){return Sd()|0}function Sd(){return 1644}function Td(a){a=a|0;return a|0}function Ud(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;n=l;l=l+48|0;k=n+16|0;g=n;f=n+32|0;i=a+28|0;e=c[i>>2]|0;c[f>>2]=e;j=a+20|0;e=(c[j>>2]|0)-e|0;c[f+4>>2]=e;c[f+8>>2]=b;c[f+12>>2]=d;e=e+d|0;h=a+60|0;c[g>>2]=c[h>>2];c[g+4>>2]=f;c[g+8>>2]=2;g=Pd(ea(146,g|0)|0)|0;a:do if((e|0)!=(g|0)){b=2;while(1){if((g|0)<0)break;e=e-g|0;p=c[f+4>>2]|0;o=g>>>0>p>>>0;f=o?f+8|0:f;b=(o<<31>>31)+b|0;p=g-(o?p:0)|0;c[f>>2]=(c[f>>2]|0)+p;o=f+4|0;c[o>>2]=(c[o>>2]|0)-p;c[k>>2]=c[h>>2];c[k+4>>2]=f;c[k+8>>2]=b;g=Pd(ea(146,k|0)|0)|0;if((e|0)==(g|0)){m=3;break a}}c[a+16>>2]=0;c[i>>2]=0;c[j>>2]=0;c[a>>2]=c[a>>2]|32;if((b|0)==2)d=0;else d=d-(c[f+4>>2]|0)|0}else m=3;while(0);if((m|0)==3){p=c[a+44>>2]|0;c[a+16>>2]=p+(c[a+48>>2]|0);c[i>>2]=p;c[j>>2]=p}l=n;return d|0}function Vd(){return 6252}function Wd(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+224|0;n=s+120|0;p=s+80|0;q=s;r=s+136|0;f=p;g=f+40|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));c[n>>2]=c[e>>2];if((Xd(0,d,n,q,p)|0)<0)e=-1;else{if((c[b+76>>2]|0)>-1)o=Yd(b)|0;else o=0;e=c[b>>2]|0;m=e&32;if((a[b+74>>0]|0)<1)c[b>>2]=e&-33;f=b+48|0;if(!(c[f>>2]|0)){g=b+44|0;h=c[g>>2]|0;c[g>>2]=r;i=b+28|0;c[i>>2]=r;j=b+20|0;c[j>>2]=r;c[f>>2]=80;k=b+16|0;c[k>>2]=r+80;e=Xd(b,d,n,q,p)|0;if(h){ha[c[b+36>>2]&3](b,0,0)|0;e=(c[j>>2]|0)==0?-1:e;c[g>>2]=h;c[f>>2]=0;c[k>>2]=0;c[i>>2]=0;c[j>>2]=0}}else e=Xd(b,d,n,q,p)|0;f=c[b>>2]|0;c[b>>2]=f|m;if(o|0)Zd(b);e=(f&32|0)==0?e:-1}l=s;return e|0}function Xd(d,e,f,g,i){d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;H=l;l=l+64|0;D=H+16|0;E=H;B=H+24|0;F=H+8|0;G=H+20|0;c[D>>2]=e;x=(d|0)!=0;y=B+40|0;A=y;B=B+39|0;C=F+4|0;k=0;j=0;p=0;a:while(1){do if((j|0)>-1)if((k|0)>(2147483647-j|0)){c[(Qd()|0)>>2]=75;j=-1;break}else{j=k+j|0;break}while(0);k=a[e>>0]|0;if(!(k<<24>>24)){w=87;break}else m=e;b:while(1){switch(k<<24>>24){case 37:{k=m;w=9;break b}case 0:{k=m;break b}default:{}}v=m+1|0;c[D>>2]=v;k=a[v>>0]|0;m=v}c:do if((w|0)==9)while(1){w=0;if((a[m+1>>0]|0)!=37)break c;k=k+1|0;m=m+2|0;c[D>>2]=m;if((a[m>>0]|0)==37)w=9;else break}while(0);k=k-e|0;if(x)_d(d,e,k);if(k|0){e=m;continue}n=m+1|0;k=(a[n>>0]|0)+-48|0;if(k>>>0<10){v=(a[m+2>>0]|0)==36;u=v?k:-1;p=v?1:p;n=v?m+3|0:n}else u=-1;c[D>>2]=n;k=a[n>>0]|0;m=(k<<24>>24)+-32|0;d:do if(m>>>0<32){o=0;q=k;while(1){k=1<<m;if(!(k&75913)){k=q;break d}o=k|o;n=n+1|0;c[D>>2]=n;k=a[n>>0]|0;m=(k<<24>>24)+-32|0;if(m>>>0>=32)break;else q=k}}else o=0;while(0);if(k<<24>>24==42){m=n+1|0;k=(a[m>>0]|0)+-48|0;if(k>>>0<10?(a[n+2>>0]|0)==36:0){c[i+(k<<2)>>2]=10;k=c[g+((a[m>>0]|0)+-48<<3)>>2]|0;p=1;n=n+3|0}else{if(p|0){j=-1;break}if(x){p=(c[f>>2]|0)+(4-1)&~(4-1);k=c[p>>2]|0;c[f>>2]=p+4;p=0;n=m}else{k=0;p=0;n=m}}c[D>>2]=n;v=(k|0)<0;k=v?0-k|0:k;o=v?o|8192:o}else{k=$d(D)|0;if((k|0)<0){j=-1;break}n=c[D>>2]|0}do if((a[n>>0]|0)==46){if((a[n+1>>0]|0)!=42){c[D>>2]=n+1;m=$d(D)|0;n=c[D>>2]|0;break}q=n+2|0;m=(a[q>>0]|0)+-48|0;if(m>>>0<10?(a[n+3>>0]|0)==36:0){c[i+(m<<2)>>2]=10;m=c[g+((a[q>>0]|0)+-48<<3)>>2]|0;n=n+4|0;c[D>>2]=n;break}if(p|0){j=-1;break a}if(x){v=(c[f>>2]|0)+(4-1)&~(4-1);m=c[v>>2]|0;c[f>>2]=v+4}else m=0;c[D>>2]=q;n=q}else m=-1;while(0);t=0;while(1){if(((a[n>>0]|0)+-65|0)>>>0>57){j=-1;break a}v=n+1|0;c[D>>2]=v;q=a[(a[n>>0]|0)+-65+(3329+(t*58|0))>>0]|0;r=q&255;if((r+-1|0)>>>0<8){t=r;n=v}else break}if(!(q<<24>>24)){j=-1;break}s=(u|0)>-1;do if(q<<24>>24==19)if(s){j=-1;break a}else w=49;else{if(s){c[i+(u<<2)>>2]=r;s=g+(u<<3)|0;u=c[s+4>>2]|0;w=E;c[w>>2]=c[s>>2];c[w+4>>2]=u;w=49;break}if(!x){j=0;break a}ae(E,r,f)}while(0);if((w|0)==49?(w=0,!x):0){k=0;e=v;continue}n=a[n>>0]|0;n=(t|0)!=0&(n&15|0)==3?n&-33:n;s=o&-65537;u=(o&8192|0)==0?o:s;e:do switch(n|0){case 110:switch((t&255)<<24>>24){case 0:{c[c[E>>2]>>2]=j;k=0;e=v;continue a}case 1:{c[c[E>>2]>>2]=j;k=0;e=v;continue a}case 2:{k=c[E>>2]|0;c[k>>2]=j;c[k+4>>2]=((j|0)<0)<<31>>31;k=0;e=v;continue a}case 3:{b[c[E>>2]>>1]=j;k=0;e=v;continue a}case 4:{a[c[E>>2]>>0]=j;k=0;e=v;continue a}case 6:{c[c[E>>2]>>2]=j;k=0;e=v;continue a}case 7:{k=c[E>>2]|0;c[k>>2]=j;c[k+4>>2]=((j|0)<0)<<31>>31;k=0;e=v;continue a}default:{k=0;e=v;continue a}}case 112:{n=120;m=m>>>0>8?m:8;e=u|8;w=61;break}case 88:case 120:{e=u;w=61;break}case 111:{n=E;e=c[n>>2]|0;n=c[n+4>>2]|0;r=ce(e,n,y)|0;s=A-r|0;o=0;q=3793;m=(u&8|0)==0|(m|0)>(s|0)?m:s+1|0;s=u;w=67;break}case 105:case 100:{n=E;e=c[n>>2]|0;n=c[n+4>>2]|0;if((n|0)<0){e=Be(0,0,e|0,n|0)|0;n=z;o=E;c[o>>2]=e;c[o+4>>2]=n;o=1;q=3793;w=66;break e}else{o=(u&2049|0)!=0&1;q=(u&2048|0)==0?((u&1|0)==0?3793:3795):3794;w=66;break e}}case 117:{n=E;o=0;q=3793;e=c[n>>2]|0;n=c[n+4>>2]|0;w=66;break}case 99:{a[B>>0]=c[E>>2];e=B;o=0;q=3793;r=y;n=1;m=s;break}case 109:{n=ee(c[(Qd()|0)>>2]|0)|0;w=71;break}case 115:{n=c[E>>2]|0;n=n|0?n:3803;w=71;break}case 67:{c[F>>2]=c[E>>2];c[C>>2]=0;c[E>>2]=F;r=-1;n=F;w=75;break}case 83:{e=c[E>>2]|0;if(!m){ge(d,32,k,0,u);e=0;w=84}else{r=m;n=e;w=75}break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{k=ie(d,+h[E>>3],k,m,u,n)|0;e=v;continue a}default:{o=0;q=3793;r=y;n=m;m=u}}while(0);f:do if((w|0)==61){u=E;t=c[u>>2]|0;u=c[u+4>>2]|0;r=be(t,u,y,n&32)|0;q=(e&8|0)==0|(t|0)==0&(u|0)==0;o=q?0:2;q=q?3793:3793+(n>>4)|0;s=e;e=t;n=u;w=67}else if((w|0)==66){r=de(e,n,y)|0;s=u;w=67}else if((w|0)==71){w=0;u=fe(n,0,m)|0;t=(u|0)==0;e=n;o=0;q=3793;r=t?n+m|0:u;n=t?m:u-n|0;m=s}else if((w|0)==75){w=0;q=n;e=0;m=0;while(1){o=c[q>>2]|0;if(!o)break;m=he(G,o)|0;if((m|0)<0|m>>>0>(r-e|0)>>>0)break;e=m+e|0;if(r>>>0>e>>>0)q=q+4|0;else break}if((m|0)<0){j=-1;break a}ge(d,32,k,e,u);if(!e){e=0;w=84}else{o=0;while(1){m=c[n>>2]|0;if(!m){w=84;break f}m=he(G,m)|0;o=m+o|0;if((o|0)>(e|0)){w=84;break f}_d(d,G,m);if(o>>>0>=e>>>0){w=84;break}else n=n+4|0}}}while(0);if((w|0)==67){w=0;n=(e|0)!=0|(n|0)!=0;u=(m|0)!=0|n;n=((n^1)&1)+(A-r)|0;e=u?r:y;r=y;n=u?((m|0)>(n|0)?m:n):m;m=(m|0)>-1?s&-65537:s}else if((w|0)==84){w=0;ge(d,32,k,e,u^8192);k=(k|0)>(e|0)?k:e;e=v;continue}t=r-e|0;s=(n|0)<(t|0)?t:n;u=s+o|0;k=(k|0)<(u|0)?u:k;ge(d,32,k,u,m);_d(d,q,o);ge(d,48,k,u,m^65536);ge(d,48,s,t,0);_d(d,e,t);ge(d,32,k,u,m^8192);e=v}g:do if((w|0)==87)if(!d)if(!p)j=0;else{j=1;while(1){e=c[i+(j<<2)>>2]|0;if(!e)break;ae(g+(j<<3)|0,e,f);j=j+1|0;if((j|0)>=10){j=1;break g}}while(1){if(c[i+(j<<2)>>2]|0){j=-1;break g}j=j+1|0;if((j|0)>=10){j=1;break}}}while(0);l=H;return j|0}function Yd(a){a=a|0;return 0}function Zd(a){a=a|0;return}function _d(a,b,d){a=a|0;b=b|0;d=d|0;if(!(c[a>>2]&32))ve(b,d,a)|0;return}function $d(b){b=b|0;var d=0,e=0,f=0;e=c[b>>2]|0;f=(a[e>>0]|0)+-48|0;if(f>>>0<10){d=0;do{d=f+(d*10|0)|0;e=e+1|0;c[b>>2]=e;f=(a[e>>0]|0)+-48|0}while(f>>>0<10)}else d=0;return d|0}function ae(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0;a:do if(b>>>0<=20)do switch(b|0){case 9:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;c[a>>2]=b;break a}case 10:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;e=a;c[e>>2]=b;c[e+4>>2]=((b|0)<0)<<31>>31;break a}case 11:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;e=a;c[e>>2]=b;c[e+4>>2]=0;break a}case 12:{e=(c[d>>2]|0)+(8-1)&~(8-1);b=e;f=c[b>>2]|0;b=c[b+4>>2]|0;c[d>>2]=e+8;e=a;c[e>>2]=f;c[e+4>>2]=b;break a}case 13:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;e=(e&65535)<<16>>16;f=a;c[f>>2]=e;c[f+4>>2]=((e|0)<0)<<31>>31;break a}case 14:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=e&65535;c[f+4>>2]=0;break a}case 15:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;e=(e&255)<<24>>24;f=a;c[f>>2]=e;c[f+4>>2]=((e|0)<0)<<31>>31;break a}case 16:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=e&255;c[f+4>>2]=0;break a}case 17:{f=(c[d>>2]|0)+(8-1)&~(8-1);g=+h[f>>3];c[d>>2]=f+8;h[a>>3]=g;break a}case 18:{f=(c[d>>2]|0)+(8-1)&~(8-1);g=+h[f>>3];c[d>>2]=f+8;h[a>>3]=g;break a}default:break a}while(0);while(0);return}function be(b,c,e,f){b=b|0;c=c|0;e=e|0;f=f|0;if(!((b|0)==0&(c|0)==0))do{e=e+-1|0;a[e>>0]=d[3845+(b&15)>>0]|0|f;b=Ee(b|0,c|0,4)|0;c=z}while(!((b|0)==0&(c|0)==0));return e|0}function ce(b,c,d){b=b|0;c=c|0;d=d|0;if(!((b|0)==0&(c|0)==0))do{d=d+-1|0;a[d>>0]=b&7|48;b=Ee(b|0,c|0,3)|0;c=z}while(!((b|0)==0&(c|0)==0));return d|0}function de(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if(c>>>0>0|(c|0)==0&b>>>0>4294967295){while(1){e=Me(b|0,c|0,10,0)|0;d=d+-1|0;a[d>>0]=e&255|48;e=b;b=Je(b|0,c|0,10,0)|0;if(!(c>>>0>9|(c|0)==9&e>>>0>4294967295))break;else c=z}c=b}else c=b;if(c)while(1){d=d+-1|0;a[d>>0]=(c>>>0)%10|0|48;if(c>>>0<10)break;else c=(c>>>0)/10|0}return d|0}function ee(a){a=a|0;return pe(a,c[(oe()|0)+188>>2]|0)|0}function fe(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=d&255;f=(e|0)!=0;a:do if(f&(b&3|0)!=0){g=d&255;while(1){if((a[b>>0]|0)==g<<24>>24){i=6;break a}b=b+1|0;e=e+-1|0;f=(e|0)!=0;if(!(f&(b&3|0)!=0)){i=5;break}}}else i=5;while(0);if((i|0)==5)if(f)i=6;else e=0;b:do if((i|0)==6){g=d&255;if((a[b>>0]|0)!=g<<24>>24){f=O(h,16843009)|0;c:do if(e>>>0>3)while(1){h=c[b>>2]^f;if((h&-2139062144^-2139062144)&h+-16843009|0)break;b=b+4|0;e=e+-4|0;if(e>>>0<=3){i=11;break c}}else i=11;while(0);if((i|0)==11)if(!e){e=0;break}while(1){if((a[b>>0]|0)==g<<24>>24)break b;b=b+1|0;e=e+-1|0;if(!e){e=0;break}}}}while(0);return (e|0?b:0)|0}function ge(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=l;l=l+256|0;f=g;if((c|0)>(d|0)&(e&73728|0)==0){e=c-d|0;De(f|0,b|0,(e>>>0<256?e:256)|0)|0;if(e>>>0>255){b=c-d|0;do{_d(a,f,256);e=e+-256|0}while(e>>>0>255);e=b&255}_d(a,f,e)}l=g;return}function he(a,b){a=a|0;b=b|0;if(!a)a=0;else a=me(a,b,0)|0;return a|0}function ie(b,e,f,g,h,i){b=b|0;e=+e;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;H=l;l=l+560|0;m=H+8|0;u=H;G=H+524|0;F=G;n=H+512|0;c[u>>2]=0;E=n+12|0;je(e)|0;if((z|0)<0){e=-e;C=1;B=3810}else{C=(h&2049|0)!=0&1;B=(h&2048|0)==0?((h&1|0)==0?3811:3816):3813}je(e)|0;D=z&2146435072;do if(D>>>0<2146435072|(D|0)==2146435072&0<0){r=+ke(e,u)*2.0;j=r!=0.0;if(j)c[u>>2]=(c[u>>2]|0)+-1;w=i|32;if((w|0)==97){s=i&32;q=(s|0)==0?B:B+9|0;p=C|2;j=12-g|0;do if(!(g>>>0>11|(j|0)==0)){e=8.0;do{j=j+-1|0;e=e*16.0}while((j|0)!=0);if((a[q>>0]|0)==45){e=-(e+(-r-e));break}else{e=r+e-e;break}}else e=r;while(0);k=c[u>>2]|0;j=(k|0)<0?0-k|0:k;j=de(j,((j|0)<0)<<31>>31,E)|0;if((j|0)==(E|0)){j=n+11|0;a[j>>0]=48}a[j+-1>>0]=(k>>31&2)+43;o=j+-2|0;a[o>>0]=i+15;n=(g|0)<1;m=(h&8|0)==0;j=G;do{D=~~e;k=j+1|0;a[j>>0]=d[3845+D>>0]|s;e=(e-+(D|0))*16.0;if((k-F|0)==1?!(m&(n&e==0.0)):0){a[k>>0]=46;j=j+2|0}else j=k}while(e!=0.0);D=j-F|0;F=E-o|0;E=(g|0)!=0&(D+-2|0)<(g|0)?g+2|0:D;j=F+p+E|0;ge(b,32,f,j,h);_d(b,q,p);ge(b,48,f,j,h^65536);_d(b,G,D);ge(b,48,E-D|0,0,0);_d(b,o,F);ge(b,32,f,j,h^8192);break}k=(g|0)<0?6:g;if(j){j=(c[u>>2]|0)+-28|0;c[u>>2]=j;e=r*268435456.0}else{e=r;j=c[u>>2]|0}D=(j|0)<0?m:m+288|0;m=D;do{y=~~e>>>0;c[m>>2]=y;m=m+4|0;e=(e-+(y>>>0))*1.0e9}while(e!=0.0);if((j|0)>0){n=D;p=m;while(1){o=(j|0)<29?j:29;j=p+-4|0;if(j>>>0>=n>>>0){m=0;do{x=Fe(c[j>>2]|0,0,o|0)|0;x=Ce(x|0,z|0,m|0,0)|0;y=z;v=Me(x|0,y|0,1e9,0)|0;c[j>>2]=v;m=Je(x|0,y|0,1e9,0)|0;j=j+-4|0}while(j>>>0>=n>>>0);if(m){n=n+-4|0;c[n>>2]=m}}m=p;while(1){if(m>>>0<=n>>>0)break;j=m+-4|0;if(!(c[j>>2]|0))m=j;else break}j=(c[u>>2]|0)-o|0;c[u>>2]=j;if((j|0)>0)p=m;else break}}else n=D;if((j|0)<0){g=((k+25|0)/9|0)+1|0;t=(w|0)==102;do{s=0-j|0;s=(s|0)<9?s:9;if(n>>>0<m>>>0){o=(1<<s)+-1|0;p=1e9>>>s;q=0;j=n;do{y=c[j>>2]|0;c[j>>2]=(y>>>s)+q;q=O(y&o,p)|0;j=j+4|0}while(j>>>0<m>>>0);j=(c[n>>2]|0)==0?n+4|0:n;if(!q){n=j;j=m}else{c[m>>2]=q;n=j;j=m+4|0}}else{n=(c[n>>2]|0)==0?n+4|0:n;j=m}m=t?D:n;m=(j-m>>2|0)>(g|0)?m+(g<<2)|0:j;j=(c[u>>2]|0)+s|0;c[u>>2]=j}while((j|0)<0);j=n;g=m}else{j=n;g=m}y=D;if(j>>>0<g>>>0){m=(y-j>>2)*9|0;o=c[j>>2]|0;if(o>>>0>=10){n=10;do{n=n*10|0;m=m+1|0}while(o>>>0>=n>>>0)}}else m=0;t=(w|0)==103;v=(k|0)!=0;n=k-((w|0)!=102?m:0)+((v&t)<<31>>31)|0;if((n|0)<(((g-y>>2)*9|0)+-9|0)){n=n+9216|0;s=D+4+(((n|0)/9|0)+-1024<<2)|0;n=((n|0)%9|0)+1|0;if((n|0)<9){o=10;do{o=o*10|0;n=n+1|0}while((n|0)!=9)}else o=10;p=c[s>>2]|0;q=(p>>>0)%(o>>>0)|0;n=(s+4|0)==(g|0);if(!(n&(q|0)==0)){r=(((p>>>0)/(o>>>0)|0)&1|0)==0?9007199254740992.0:9007199254740994.0;x=(o|0)/2|0;e=q>>>0<x>>>0?.5:n&(q|0)==(x|0)?1.0:1.5;if(C){x=(a[B>>0]|0)==45;e=x?-e:e;r=x?-r:r}n=p-q|0;c[s>>2]=n;if(r+e!=r){x=n+o|0;c[s>>2]=x;if(x>>>0>999999999){m=s;while(1){n=m+-4|0;c[m>>2]=0;if(n>>>0<j>>>0){j=j+-4|0;c[j>>2]=0}x=(c[n>>2]|0)+1|0;c[n>>2]=x;if(x>>>0>999999999)m=n;else break}}else n=s;m=(y-j>>2)*9|0;p=c[j>>2]|0;if(p>>>0>=10){o=10;do{o=o*10|0;m=m+1|0}while(p>>>0>=o>>>0)}}else n=s}else n=s;n=n+4|0;n=g>>>0>n>>>0?n:g;x=j}else{n=g;x=j}w=n;while(1){if(w>>>0<=x>>>0){u=0;break}j=w+-4|0;if(!(c[j>>2]|0))w=j;else{u=1;break}}g=0-m|0;do if(t){j=((v^1)&1)+k|0;if((j|0)>(m|0)&(m|0)>-5){o=i+-1|0;k=j+-1-m|0}else{o=i+-2|0;k=j+-1|0}j=h&8;if(!j){if(u?(A=c[w+-4>>2]|0,(A|0)!=0):0)if(!((A>>>0)%10|0)){n=0;j=10;do{j=j*10|0;n=n+1|0}while(!((A>>>0)%(j>>>0)|0|0))}else n=0;else n=9;j=((w-y>>2)*9|0)+-9|0;if((o|32|0)==102){s=j-n|0;s=(s|0)>0?s:0;k=(k|0)<(s|0)?k:s;s=0;break}else{s=j+m-n|0;s=(s|0)>0?s:0;k=(k|0)<(s|0)?k:s;s=0;break}}else s=j}else{o=i;s=h&8}while(0);t=k|s;p=(t|0)!=0&1;q=(o|32|0)==102;if(q){v=0;j=(m|0)>0?m:0}else{j=(m|0)<0?g:m;j=de(j,((j|0)<0)<<31>>31,E)|0;n=E;if((n-j|0)<2)do{j=j+-1|0;a[j>>0]=48}while((n-j|0)<2);a[j+-1>>0]=(m>>31&2)+43;j=j+-2|0;a[j>>0]=o;v=j;j=n-j|0}j=C+1+k+p+j|0;ge(b,32,f,j,h);_d(b,B,C);ge(b,48,f,j,h^65536);if(q){o=x>>>0>D>>>0?D:x;s=G+9|0;p=s;q=G+8|0;n=o;do{m=de(c[n>>2]|0,0,s)|0;if((n|0)==(o|0)){if((m|0)==(s|0)){a[q>>0]=48;m=q}}else if(m>>>0>G>>>0){De(G|0,48,m-F|0)|0;do m=m+-1|0;while(m>>>0>G>>>0)}_d(b,m,p-m|0);n=n+4|0}while(n>>>0<=D>>>0);if(t|0)_d(b,3861,1);if(n>>>0<w>>>0&(k|0)>0)while(1){m=de(c[n>>2]|0,0,s)|0;if(m>>>0>G>>>0){De(G|0,48,m-F|0)|0;do m=m+-1|0;while(m>>>0>G>>>0)}_d(b,m,(k|0)<9?k:9);n=n+4|0;m=k+-9|0;if(!(n>>>0<w>>>0&(k|0)>9)){k=m;break}else k=m}ge(b,48,k+9|0,9,0)}else{t=u?w:x+4|0;if((k|0)>-1){u=G+9|0;s=(s|0)==0;g=u;p=0-F|0;q=G+8|0;o=x;do{m=de(c[o>>2]|0,0,u)|0;if((m|0)==(u|0)){a[q>>0]=48;m=q}do if((o|0)==(x|0)){n=m+1|0;_d(b,m,1);if(s&(k|0)<1){m=n;break}_d(b,3861,1);m=n}else{if(m>>>0<=G>>>0)break;De(G|0,48,m+p|0)|0;do m=m+-1|0;while(m>>>0>G>>>0)}while(0);F=g-m|0;_d(b,m,(k|0)>(F|0)?F:k);k=k-F|0;o=o+4|0}while(o>>>0<t>>>0&(k|0)>-1)}ge(b,48,k+18|0,18,0);_d(b,v,E-v|0)}ge(b,32,f,j,h^8192)}else{G=(i&32|0)!=0;j=C+3|0;ge(b,32,f,j,h&-65537);_d(b,B,C);_d(b,e!=e|0.0!=0.0?(G?3837:3841):G?3829:3833,3);ge(b,32,f,j,h^8192)}while(0);l=H;return ((j|0)<(f|0)?f:j)|0}function je(a){a=+a;var b=0;h[j>>3]=a;b=c[j>>2]|0;z=c[j+4>>2]|0;return b|0}function ke(a,b){a=+a;b=b|0;return +(+le(a,b))}function le(a,b){a=+a;b=b|0;var d=0,e=0,f=0;h[j>>3]=a;d=c[j>>2]|0;e=c[j+4>>2]|0;f=Ee(d|0,e|0,52)|0;switch(f&2047){case 0:{if(a!=0.0){a=+le(a*18446744073709551616.0,b);d=(c[b>>2]|0)+-64|0}else d=0;c[b>>2]=d;break}case 2047:break;default:{c[b>>2]=(f&2047)+-1022;c[j>>2]=d;c[j+4>>2]=e&-2146435073|1071644672;a=+h[j>>3]}}return +a}function me(b,d,e){b=b|0;d=d|0;e=e|0;do if(b){if(d>>>0<128){a[b>>0]=d;b=1;break}if(!(c[c[(ne()|0)+188>>2]>>2]|0))if((d&-128|0)==57216){a[b>>0]=d;b=1;break}else{c[(Qd()|0)>>2]=84;b=-1;break}if(d>>>0<2048){a[b>>0]=d>>>6|192;a[b+1>>0]=d&63|128;b=2;break}if(d>>>0<55296|(d&-8192|0)==57344){a[b>>0]=d>>>12|224;a[b+1>>0]=d>>>6&63|128;a[b+2>>0]=d&63|128;b=3;break}if((d+-65536|0)>>>0<1048576){a[b>>0]=d>>>18|240;a[b+1>>0]=d>>>12&63|128;a[b+2>>0]=d>>>6&63|128;a[b+3>>0]=d&63|128;b=4;break}else{c[(Qd()|0)>>2]=84;b=-1;break}}else b=1;while(0);return b|0}function ne(){return Sd()|0}function oe(){return Sd()|0}function pe(b,e){b=b|0;e=e|0;var f=0,g=0;g=0;while(1){if((d[3863+g>>0]|0)==(b|0)){b=2;break}f=g+1|0;if((f|0)==87){f=3951;g=87;b=5;break}else g=f}if((b|0)==2)if(!g)f=3951;else{f=3951;b=5}if((b|0)==5)while(1){do{b=f;f=f+1|0}while((a[b>>0]|0)!=0);g=g+-1|0;if(!g)break;else b=5}return qe(f,c[e+20>>2]|0)|0}function qe(a,b){a=a|0;b=b|0;return re(a,b)|0}function re(a,b){a=a|0;b=b|0;if(!b)b=0;else b=se(c[b>>2]|0,c[b+4>>2]|0,a)|0;return (b|0?b:a)|0}function se(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=(c[b>>2]|0)+1794895138|0;h=te(c[b+8>>2]|0,o)|0;f=te(c[b+12>>2]|0,o)|0;g=te(c[b+16>>2]|0,o)|0;a:do if((h>>>0<d>>>2>>>0?(n=d-(h<<2)|0,f>>>0<n>>>0&g>>>0<n>>>0):0)?((g|f)&3|0)==0:0){n=f>>>2;m=g>>>2;l=0;while(1){j=h>>>1;k=l+j|0;i=k<<1;g=i+n|0;f=te(c[b+(g<<2)>>2]|0,o)|0;g=te(c[b+(g+1<<2)>>2]|0,o)|0;if(!(g>>>0<d>>>0&f>>>0<(d-g|0)>>>0)){f=0;break a}if(a[b+(g+f)>>0]|0){f=0;break a}f=ue(e,b+g|0)|0;if(!f)break;f=(f|0)<0;if((h|0)==1){f=0;break a}else{l=f?l:k;h=f?j:h-j|0}}f=i+m|0;g=te(c[b+(f<<2)>>2]|0,o)|0;f=te(c[b+(f+1<<2)>>2]|0,o)|0;if(f>>>0<d>>>0&g>>>0<(d-f|0)>>>0)f=(a[b+(f+g)>>0]|0)==0?b+f|0:0;else f=0}else f=0;while(0);return f|0}function te(a,b){a=a|0;b=b|0;var c=0;c=Ne(a|0)|0;return ((b|0)==0?a:c)|0}function ue(b,c){b=b|0;c=c|0;var d=0,e=0;d=a[b>>0]|0;e=a[c>>0]|0;if(d<<24>>24==0?1:d<<24>>24!=e<<24>>24)b=e;else{do{b=b+1|0;c=c+1|0;d=a[b>>0]|0;e=a[c>>0]|0}while(!(d<<24>>24==0?1:d<<24>>24!=e<<24>>24));b=e}return (d&255)-(b&255)|0}function ve(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=e+16|0;g=c[f>>2]|0;if(!g)if(!(we(e)|0)){g=c[f>>2]|0;h=5}else f=0;else h=5;a:do if((h|0)==5){j=e+20|0;i=c[j>>2]|0;f=i;if((g-i|0)>>>0<d>>>0){f=ha[c[e+36>>2]&3](e,b,d)|0;break}b:do if((a[e+75>>0]|0)>-1){i=d;while(1){if(!i){h=0;g=b;break b}g=i+-1|0;if((a[b+g>>0]|0)==10)break;else i=g}f=ha[c[e+36>>2]&3](e,b,i)|0;if(f>>>0<i>>>0)break a;h=i;g=b+i|0;d=d-i|0;f=c[j>>2]|0}else{h=0;g=b}while(0);Ge(f|0,g|0,d|0)|0;c[j>>2]=(c[j>>2]|0)+d;f=h+d|0}while(0);return f|0}function we(b){b=b|0;var d=0,e=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;d=c[b>>2]|0;if(!(d&8)){c[b+8>>2]=0;c[b+4>>2]=0;e=c[b+44>>2]|0;c[b+28>>2]=e;c[b+20>>2]=e;c[b+16>>2]=e+(c[b+48>>2]|0);b=0}else{c[b>>2]=d|32;b=-1}return b|0}function xe(a){a=+a;var b=0;b=(g[j>>2]=a,c[j>>2]|0);if((b&2130706432)>>>0<=1249902592){b=(b|0)<0;a=(b?8388608.0:-8388608.0)+((b?-8388608.0:8388608.0)+a);if(a==0.0)a=b?-0.0:0.0}return +a}function ye(a){a=+a;return ~~+xe(a)|0}function ze(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+16|0;f=e;c[f>>2]=d;d=Wd(a,b,f)|0;l=e;return d|0}function Ae(){}function Be(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=b-d-(c>>>0>a>>>0|0)>>>0;return (z=d,a-c>>>0|0)|0}function Ce(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (z=b+d+(c>>>0<a>>>0|0)>>>0,c|0)|0}function De(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=b+e|0;d=d&255;if((e|0)>=67){while(b&3){a[b>>0]=d;b=b+1|0}f=h&-4|0;g=f-64|0;i=d|d<<8|d<<16|d<<24;while((b|0)<=(g|0)){c[b>>2]=i;c[b+4>>2]=i;c[b+8>>2]=i;c[b+12>>2]=i;c[b+16>>2]=i;c[b+20>>2]=i;c[b+24>>2]=i;c[b+28>>2]=i;c[b+32>>2]=i;c[b+36>>2]=i;c[b+40>>2]=i;c[b+44>>2]=i;c[b+48>>2]=i;c[b+52>>2]=i;c[b+56>>2]=i;c[b+60>>2]=i;b=b+64|0}while((b|0)<(f|0)){c[b>>2]=i;b=b+4|0}}while((b|0)<(h|0)){a[b>>0]=d;b=b+1|0}return h-e|0}function Ee(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){z=b>>>c;return a>>>c|(b&(1<<c)-1)<<32-c}z=0;return b>>>c-32|0}function Fe(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){z=b<<c|(a&(1<<c)-1<<32-c)>>>32-c;return a<<c}z=a<<c-32;return 0}function Ge(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((e|0)>=8192)return aa(b|0,d|0,e|0)|0;h=b|0;g=b+e|0;if((b&3)==(d&3)){while(b&3){if(!e)return h|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}e=g&-4|0;f=e-64|0;while((b|0)<=(f|0)){c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];c[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];c[b+28>>2]=c[d+28>>2];c[b+32>>2]=c[d+32>>2];c[b+36>>2]=c[d+36>>2];c[b+40>>2]=c[d+40>>2];c[b+44>>2]=c[d+44>>2];c[b+48>>2]=c[d+48>>2];c[b+52>>2]=c[d+52>>2];c[b+56>>2]=c[d+56>>2];c[b+60>>2]=c[d+60>>2];b=b+64|0;d=d+64|0}while((b|0)<(e|0)){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}}else{e=g-4|0;while((b|0)<(e|0)){a[b>>0]=a[d>>0]|0;a[b+1>>0]=a[d+1>>0]|0;a[b+2>>0]=a[d+2>>0]|0;a[b+3>>0]=a[d+3>>0]|0;b=b+4|0;d=d+4|0}}while((b|0)<(g|0)){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0}return h|0}function He(b){b=b|0;var c=0;c=a[n+(b&255)>>0]|0;if((c|0)<8)return c|0;c=a[n+(b>>8&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[n+(b>>16&255)>>0]|0;if((c|0)<8)return c+16|0;return (a[n+(b>>>24)>>0]|0)+24|0}function Ie(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;l=a;j=b;k=j;h=d;n=e;i=n;if(!k){g=(f|0)!=0;if(!i){if(g){c[f>>2]=(l>>>0)%(h>>>0);c[f+4>>2]=0}n=0;f=(l>>>0)/(h>>>0)>>>0;return (z=n,f)|0}else{if(!g){n=0;f=0;return (z=n,f)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;n=0;f=0;return (z=n,f)|0}}g=(i|0)==0;do if(h){if(!g){g=(R(i|0)|0)-(R(k|0)|0)|0;if(g>>>0<=31){m=g+1|0;i=31-g|0;b=g-31>>31;h=m;a=l>>>(m>>>0)&b|k<<i;b=k>>>(m>>>0)&b;g=0;i=l<<i;break}if(!f){n=0;f=0;return (z=n,f)|0}c[f>>2]=a|0;c[f+4>>2]=j|b&0;n=0;f=0;return (z=n,f)|0}g=h-1|0;if(g&h|0){i=(R(h|0)|0)+33-(R(k|0)|0)|0;p=64-i|0;m=32-i|0;j=m>>31;o=i-32|0;b=o>>31;h=i;a=m-1>>31&k>>>(o>>>0)|(k<<m|l>>>(i>>>0))&b;b=b&k>>>(i>>>0);g=l<<p&j;i=(k<<p|l>>>(o>>>0))&j|l<<m&i-33>>31;break}if(f|0){c[f>>2]=g&l;c[f+4>>2]=0}if((h|0)==1){o=j|b&0;p=a|0|0;return (z=o,p)|0}else{p=He(h|0)|0;o=k>>>(p>>>0)|0;p=k<<32-p|l>>>(p>>>0)|0;return (z=o,p)|0}}else{if(g){if(f|0){c[f>>2]=(k>>>0)%(h>>>0);c[f+4>>2]=0}o=0;p=(k>>>0)/(h>>>0)>>>0;return (z=o,p)|0}if(!l){if(f|0){c[f>>2]=0;c[f+4>>2]=(k>>>0)%(i>>>0)}o=0;p=(k>>>0)/(i>>>0)>>>0;return (z=o,p)|0}g=i-1|0;if(!(g&i)){if(f|0){c[f>>2]=a|0;c[f+4>>2]=g&k|b&0}o=0;p=k>>>((He(i|0)|0)>>>0);return (z=o,p)|0}g=(R(i|0)|0)-(R(k|0)|0)|0;if(g>>>0<=30){b=g+1|0;i=31-g|0;h=b;a=k<<i|l>>>(b>>>0);b=k>>>(b>>>0);g=0;i=l<<i;break}if(!f){o=0;p=0;return (z=o,p)|0}c[f>>2]=a|0;c[f+4>>2]=j|b&0;o=0;p=0;return (z=o,p)|0}while(0);if(!h){k=i;j=0;i=0}else{m=d|0|0;l=n|e&0;k=Ce(m|0,l|0,-1,-1)|0;d=z;j=i;i=0;do{e=j;j=g>>>31|j<<1;g=i|g<<1;e=a<<1|e>>>31|0;n=a>>>31|b<<1|0;Be(k|0,d|0,e|0,n|0)|0;p=z;o=p>>31|((p|0)<0?-1:0)<<1;i=o&1;a=Be(e|0,n|0,o&m|0,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&l|0)|0;b=z;h=h-1|0}while((h|0)!=0);k=j;j=0}h=0;if(f|0){c[f>>2]=a;c[f+4>>2]=b}o=(g|0)>>>31|(k|h)<<1|(h<<1|g>>>31)&0|j;p=(g<<1|0>>>31)&-2|i;return (z=o,p)|0}function Je(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Ie(a,b,c,d,0)|0}function Ke(a){a=a|0;var b=0,d=0;d=a+15&-16|0;b=c[i>>2]|0;a=b+d|0;if((d|0)>0&(a|0)<(b|0)|(a|0)<0){W()|0;_(12);return -1}c[i>>2]=a;if((a|0)>(V()|0)?(U()|0)==0:0){c[i>>2]=b;_(12);return -1}return b|0}function Le(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if((c|0)<(b|0)&(b|0)<(c+d|0)){e=b;c=c+d|0;b=b+d|0;while((d|0)>0){b=b-1|0;c=c-1|0;d=d-1|0;a[b>>0]=a[c>>0]|0}b=e}else Ge(b,c,d)|0;return b|0}function Me(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=l;l=l+16|0;f=g|0;Ie(a,b,d,e,f)|0;l=g;return (z=c[f+4>>2]|0,c[f>>2]|0)|0}function Ne(a){a=a|0;return (a&255)<<24|(a>>8&255)<<16|(a>>16&255)<<8|a>>>24|0}function Oe(a,b){a=a|0;b=b|0;return ga[a&1](b|0)|0}function Pe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ha[a&3](b|0,c|0,d|0)|0}function Qe(a){a=a|0;S(0);return 0}function Re(a,b,c){a=a|0;b=b|0;c=c|0;S(1);return 0}
// EMSCRIPTEN_END_FUNCS
var ga=[Qe,Nd];var ha=[Re,Ud,Od,Re];return{_llvm_bswap_i32:Ne,_celt_mode_destroy:Pc,_celt_mode_info:Ic,_celt_encode_float:Na,_i64Subtract:Be,___udivdi3:Je,_bitshift64Lshr:Ee,setThrew:ma,_celt_decoder_create:$a,_celt_encoder_create:Ia,_celt_encode:Xa,_celt_strerror:gb,_bitshift64Shl:Fe,_memset:De,_sbrk:Ke,_memcpy:Ge,stackAlloc:ia,_celt_decoder_destroy:ab,_celt_encoder_ctl:Za,_celt_mode_create:Lc,getTempRet0:oa,setTempRet0:na,_i64Add:Ce,dynCall_iiii:Pe,_celt_decoder_ctl:fb,_emscripten_get_global_libc:Vd,_celt_decode:eb,dynCall_ii:Oe,stackSave:ja,_celt_decode_float:bb,_celt_encoder_destroy:La,_free:Ld,runPostSets:Ae,establishStackSpace:la,___uremdi3:Me,stackRestore:ka,_malloc:Kd,_memmove:Le}})
// EMSCRIPTEN_END_ASM
(b.v,b.w,buffer);b._celt_mode_destroy=Z._celt_mode_destroy;b._celt_mode_info=Z._celt_mode_info;b._celt_encode_float=Z._celt_encode_float;b.stackSave=Z.stackSave;b.getTempRet0=Z.getTempRet0;b.___udivdi3=Z.___udivdi3;b._bitshift64Lshr=Z._bitshift64Lshr;b.setThrew=Z.setThrew;b._celt_decoder_create=Z._celt_decoder_create;b._celt_encoder_create=Z._celt_encoder_create;
b._celt_encode=Z._celt_encode;b._celt_strerror=Z._celt_strerror;b._bitshift64Shl=Z._bitshift64Shl;b._memset=Z._memset;b._sbrk=Z._sbrk;b._memcpy=Z._memcpy;b.stackAlloc=Z.stackAlloc;b._celt_decoder_destroy=Z._celt_decoder_destroy;b._celt_encoder_ctl=Z._celt_encoder_ctl;b._celt_mode_create=Z._celt_mode_create;b._i64Subtract=Z._i64Subtract;b.setTempRet0=Z.setTempRet0;b._i64Add=Z._i64Add;b._celt_decoder_ctl=Z._celt_decoder_ctl;b._emscripten_get_global_libc=Z._emscripten_get_global_libc;
b._celt_decode=Z._celt_decode;b._llvm_bswap_i32=Z._llvm_bswap_i32;b.runPostSets=Z.runPostSets;b._celt_encoder_destroy=Z._celt_encoder_destroy;var xa=b._free=Z._free;b._celt_decode_float=Z._celt_decode_float;b.establishStackSpace=Z.establishStackSpace;b.___uremdi3=Z.___uremdi3;b.stackRestore=Z.stackRestore;var O=b._malloc=Z._malloc;b._memmove=Z._memmove;b.dynCall_ii=Z.dynCall_ii;b.dynCall_iiii=Z.dynCall_iiii;x.f=b.stackAlloc;x.g=b.stackSave;x.c=b.stackRestore;x.M=b.establishStackSpace;x.G=b.setTempRet0;
x.C=b.getTempRet0;b.asm=Z;b.then=function(a){if(b.calledRun)a(b);else{var c=b.onRuntimeInitialized;b.onRuntimeInitialized=function(){c&&c();a(b)}}return b};function u(a){this.name="ExitStatus";this.message="Program terminated with exit("+a+")"}u.prototype=Error();u.prototype.constructor=u;var Sa=null,U=function Ta(){b.calledRun||Ua();b.calledRun||(U=Ta)};
b.callMain=b.K=function(a){function c(){for(var a=0;3>a;a++)e.push(0)}a=a||[];Q||(Q=!0,S(Ha));var d=a.length+1,e=[N(Na(b.thisProgram),"i8",0)];c();for(var f=0;f<d-1;f+=1)e.push(N(Na(a[f]),"i8",0)),c();e.push(0);e=N(e,"i32",0);try{var k=b._main(d,e,0);Va(k,!0)}catch(h){h instanceof u||("SimulateInfiniteLoop"==h?b.noExitRuntime=!0:((a=h)&&"object"===typeof h&&h.stack&&(a=[h,h.stack]),b.e("exception thrown: "+a),b.quit(1,h)))}finally{}};
function Ua(a){function c(){if(!b.calledRun&&(b.calledRun=!0,!E)){Q||(Q=!0,S(Ha));S(Ia);if(b.onRuntimeInitialized)b.onRuntimeInitialized();b._main&&Wa&&b.callMain(a);if(b.postRun)for("function"==typeof b.postRun&&(b.postRun=[b.postRun]);b.postRun.length;)Ma(b.postRun.shift());S(Ka)}}a=a||b.arguments;null===Sa&&(Sa=Date.now());if(!(0<T)){if(b.preRun)for("function"==typeof b.preRun&&(b.preRun=[b.preRun]);b.preRun.length;)La(b.preRun.shift());S(Ga);0<T||b.calledRun||(b.setStatus?(b.setStatus("Running..."),
setTimeout(function(){setTimeout(function(){b.setStatus("")},1);c()},1)):c())}}b.run=b.run=Ua;function Va(a,c){if(!c||!b.noExitRuntime){if(!b.noExitRuntime&&(E=!0,v=void 0,S(Ja),b.onExit))b.onExit(a);r&&process.exit(a);b.quit(a,new u(a))}}b.exit=b.exit=Va;var Xa=[];
function F(a){if(b.onAbort)b.onAbort(a);void 0!==a?(b.print(a),b.e(a),a=JSON.stringify(a)):a="";E=!0;var c="abort("+a+") at "+ya()+"\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";Xa&&Xa.forEach(function(d){c=d(c,a)});throw c;}b.abort=b.abort=F;if(b.preInit)for("function"==typeof b.preInit&&(b.preInit=[b.preInit]);0<b.preInit.length;)b.preInit.pop()();var Wa=!0;b.noInitialRun&&(Wa=!1);Ua();
return Module;
};
if (typeof module === "object" && module.exports) {
module['exports'] = Module;
};
Module.instance = Module();
module.exports = Module;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(92), __webpack_require__(120)(module)))
/***/ }),
/* 305 */
/***/ (function(module, exports, __webpack_require__) {
var libcelt = __webpack_require__(304).instance;
function stringifyError(errorId) {
return libcelt.Pointer_stringify(libcelt._celt_strerror(errorId));
}
module.exports = {
stringifyError: stringifyError,
};
/***/ }),
/* 306 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(Buffer) {var libceltjs = __webpack_require__(304);
var utils = __webpack_require__(305);
var util = __webpack_require__(135);
var extend = __webpack_require__(291);
var Transform = __webpack_require__(87).Transform;
var e = function(msg) { return new Error(msg); };
/**
* Decoder for CELT 0.7.1 streams.
*
* @param {object} [opts={}] - Options for the decoder
* @param {number} [opts.rate=48000] - Sampling rate of output signal (32k to 96k Hz)
* @param {number} [opts.frameSize=256] - Samples (per channel) per packet (event, 64 - 512)
* @param {number} [opts.channels=1] - Number of (interleaved?) channels (CELT docs unclear, only tested with 1)
* @param {boolean} [opts.unsafe=false] - Mark this decoder as unsafe.<br>
* Decoder in unsafe mode generally operate faster and use far less memory.<br>
* Warning: {@link #destroy()} MUST be called on an unsafe decoder before
* it is garbage collected. Otherwise it will leak memory.
* @constructor
*/
function Decoder(opts) {
// Allow use without new
if (!(this instanceof Decoder)) return new Decoder(opts);
opts = extend({
rate: 48000,
frameSize: 256,
channels: 1,
unsafe: false
}, opts);
if (opts.channels < 1) {
throw e("channels must be greater than 0");
}
if (opts.rate < 32000 || opts.rate > 96000) {
throw e("rate must be in range 32000 - 96000");
}
if (opts.rate % 2 != 0) {
throw e("rate must be even");
}
this._rate = opts.rate;
this._frameSize = opts.frameSize;
this._channels = opts.channels;
this._unsafe = opts.unsafe;
if (this._unsafe) {
this._lib = libceltjs.instance // use global instance
} else {
this._lib = libceltjs() // create own instance
}
var p_err = this._lib._malloc(4)
try {
this._mode = this._lib._celt_mode_create(this._rate, this._frameSize, p_err)
if (this._mode === 0) {
throw this._error(p_err)
}
this._dec_p = this._lib._celt_decoder_create(this._mode, this._channels, p_err)
if (this._dec_p === 0) {
this._lib._celt_mode_destroy(this._mode)
throw this._error(p_err)
}
} finally {
this._lib._free(p_err)
}
}
/**
* Destroy this decoder.
* This method should only be called if this decoder is in unsafe mode.
* Any subsequent calls to any encode method will result in undefined behavior.
*/
Decoder.prototype.destroy = function() {
if (this._unsafe) {
this._lib._celt_decoder_destroy(this._dec_p)
this._lib._celt_mode_destroy(this._mode)
}
};
/**
* Handles an error returned by libcelt.
*
* @param {number} p_err - Pointer to the error code
* @returns {Error} A new Error object ready to be thrown
*/
Decoder.prototype._error = function (p_err) {
var err = this._lib.HEAPU32[p_err >> 2]
return new Error(utils.stringifyError(err))
}
/**
* Decodes a CELT packet and returns it as an Int16Array.
* Packets have to be decoded in the same order they were encoded in and a lost
* packet must be indicated by passing null as the data.
*
* @param {Buffer|number} data - Encoded input data or number of lost samples
* @returns {Int16Array} The decoded output
*/
Decoder.prototype.decodeInt16 = function(data) {
return new Int16Array(this._decode(data, 2, this._lib._celt_decode));
};
/**
* Decodes CELT packet and returns it as an Float32Array.
* Packets have to be decoded in the same order they were encoded in and a lost
* packet must be indicated by passing null as the data.
*
* @param {Buffer|number} data - Encoded input data or number of lost samples
* @returns {Float32Array} The decoded output
*/
Decoder.prototype.decodeFloat32 = function(data) {
return new Float32Array(this._decode(data, 4, this._lib._celt_decode_float));
};
/**
* Decode the input data and leave result on HEAP.
*
* @param {Buffer|number} data - Encoded input data
* @param {number} bps - Bytes per sample
* @param {function} doDecode - CELT decode function
* @returns ArrayBuffer of decoded data
*/
Decoder.prototype._decode = function(data, bps, doDecode) {
var pcmSize = this._frameSize * bps * this._channels;
var p_pcm = this._lib._malloc(pcmSize);
var p_data, data_len;
try {
if (data === null) {
data_len = 0;
p_data = 0;
} else if (data instanceof Buffer) {
data_len = data.length;
p_data = this._lib._malloc(data_len);
this._lib.HEAPU8.set(data, p_data);
} else {
throw new TypeError('data must be Buffer or null');
}
var ret = doDecode(this._dec_p, p_data, data_len, p_pcm);
// Handle result
if (ret < 0) {
throw e(utils.stringifyError(ret));
}
return this._lib.HEAPU8.slice(p_pcm, p_pcm + pcmSize).buffer;
} finally {
if (p_data) {
this._lib._free(p_data)
}
this._lib._free(p_pcm)
}
};
/**
* Creates a transform stream from this decoder.
* Lost packets should be indicated by an empty buffer.
*
* @param [('Float32'|'Int16')] mode - Type of sample output
* @returns {DecoderStream}
*/
Decoder.prototype.stream = function(mode) {
return new DecoderStream(this, mode);
};
function DecoderStream(decoder, mode) {
Transform.call(this, {});
if (mode == 'Float32') {
this._decode = decoder.decodeFloat32.bind(decoder);
} else if (mode == 'Int16') {
this._decode = decoder.decodeInt16.bind(decoder);
} else {
throw new TypeError('mode cannot be ' + mode);
}
}
util.inherits(DecoderStream, Transform);
DecoderStream.prototype._transform = function(chunk, encoding, callback) {
var result;
try {
var array = this._decode(chunk);
result = Buffer.from(array.buffer, array.byteOffset, array.byteLength);
} catch (err) {
return callback(err);
}
callback(null, result);
};
module.exports = Decoder;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(97).Buffer))
/***/ }),
/* 307 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(Buffer) {'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _stream = __webpack_require__(87);
var _reusePool = __webpack_require__(300);
var _reusePool2 = _interopRequireDefault(_reusePool);
var _webworkify = __webpack_require__(274);
var _webworkify2 = _interopRequireDefault(_webworkify);
var _encodeWorker = __webpack_require__(308);
var _encodeWorker2 = _interopRequireDefault(_encodeWorker);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var pool = (0, _reusePool2.default)(function () {
return (0, _webworkify2.default)(_encodeWorker2.default);
});
// Prepare first worker
pool.recycle(pool.get());
var EncoderStream = function (_Transform) {
_inherits(EncoderStream, _Transform);
function EncoderStream(codec) {
_classCallCheck(this, EncoderStream);
var _this = _possibleConstructorReturn(this, (EncoderStream.__proto__ || Object.getPrototypeOf(EncoderStream)).call(this, { objectMode: true }));
_this._codec = codec;
_this._worker = pool.get();
_this._worker.onmessage = function (msg) {
if (_this._worker.objectURL) {
// The object URL can now be revoked as the worker has been loaded
window.URL.revokeObjectURL(_this._worker.objectURL);
_this._worker.objectURL = null;
}
_this._onMessage(msg.data);
};
return _this;
}
_createClass(EncoderStream, [{
key: '_onMessage',
value: function _onMessage(data) {
if (data.reset) {
pool.recycle(this._worker);
this._finalCallback();
} else {
this.push({
target: data.target,
codec: this._codec,
frame: Buffer.from(data.buffer, data.byteOffset, data.byteLength),
position: data.position
});
}
}
}, {
key: '_transform',
value: function _transform(chunk, encoding, callback) {
var buffer = chunk.pcm.slice().buffer;
this._worker.postMessage({
action: 'encode' + this._codec,
target: chunk.target,
buffer: buffer,
numberOfChannels: chunk.numberOfChannels,
bitrate: chunk.bitrate,
position: chunk.position
}, [buffer]);
callback();
}
}, {
key: '_final',
value: function _final(callback) {
this._worker.postMessage({ action: 'reset' });
this._finalCallback = callback;
}
}]);
return EncoderStream;
}(_stream.Transform);
exports.default = EncoderStream;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(97).Buffer))
/***/ }),
/* 308 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = function (self) {
var opusEncoder, celt7Encoder;
var bitrate;
self.addEventListener('message', function (e) {
var data = e.data;
if (data.action === 'reset') {
if (opusEncoder) {
opusEncoder.destroy();
opusEncoder = null;
}
if (celt7Encoder) {
celt7Encoder.destroy();
celt7Encoder = null;
}
bitrate = null;
self.postMessage({ reset: true });
} else if (data.action === 'encodeOpus') {
if (!opusEncoder) {
opusEncoder = new _libopus.Encoder({
unsafe: true, // for performance and setting sample rate
channels: data.numberOfChannels,
rate: MUMBLE_SAMPLE_RATE
});
}
if (data.bitrate !== bitrate) {
bitrate = data.bitrate;
// Directly accessing libopus like this requires unsafe:true above!
var OPUS_SET_BITRATE = 4002; // from opus_defines.h
var OPUS_AUTO = -1000; // from opus_defines.h
var enc = opusEncoder._state;
var val = _libopus.libopus._malloc(4); // space for varargs array (single entry)
try {
_libopus.libopus.HEAP32[val >> 2] = bitrate || OPUS_AUTO; // store bitrate in varargs array
var ret = _libopus.libopus._opus_encoder_ctl(enc, OPUS_SET_BITRATE, val);
if (ret !== 0) {
throw new Error(_libopus.libopus.Pointer_stringify(_libopus.libopus._opus_strerror(ret)));
}
} finally {
_libopus.libopus._free(val);
}
}
var encoded = opusEncoder.encode(new Float32Array(data.buffer));
var buffer = (0, _toArraybuffer2.default)(encoded);
self.postMessage({
target: data.target,
buffer: buffer,
position: data.position
}, [buffer]);
} else if (data.action === 'encodeCELT_Alpha') {
if (!celt7Encoder) {
celt7Encoder = new _libcelt.Encoder({
unsafe: true,
channels: data.numberOfChannels,
frameSize: MUMBLE_SAMPLE_RATE / 100,
rate: MUMBLE_SAMPLE_RATE
});
}
var _encoded = celt7Encoder.encode(new Float32Array(data.buffer), 960);
var _buffer = (0, _toArraybuffer2.default)(_encoded);
self.postMessage({
target: data.target,
buffer: _buffer,
position: data.position
}, [_buffer]);
}
});
};
var _libopus = __webpack_require__(294);
var _libcelt = __webpack_require__(302);
var _toArraybuffer = __webpack_require__(273);
var _toArraybuffer2 = _interopRequireDefault(_toArraybuffer);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var MUMBLE_SAMPLE_RATE = 48000;
/***/ }),
/* 309 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(310).default
/***/ }),
/* 310 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(process, Buffer) {'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _audioContext = __webpack_require__(311);
var _audioContext2 = _interopRequireDefault(_audioContext);
var _extend = __webpack_require__(291);
var _extend2 = _interopRequireDefault(_extend);
var _stream = __webpack_require__(87);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
/**
* A source node that plays queued PCM buffers.
*
* When no more data is queued, this node emits silence.
*
* The queued buffers are played at the frequency of the audio context.
*
* Multiple channels are supported, both interleaved and
* non interleaved layouts. Every single buffer queued is expected
* to contain the same amount of samples for every channel. Therefore a single
* frame may not be split across mutliple buffers.
*
* When in object mode, the input format is determined automatically.
* Supported formats are Float32Array, Int16Array and AudioBuffer.
* When not in object mode, the input format has to be specified manually by
* passing {@link BufferQueueNode#Float32Array} or {@link BufferQueueNode#Int16Array}
* to the constructor.
*
* Note that this does only implement a small part of the AudioNode interface.
* This node will disconnect automatically when its stream is closed.
*
* @extends Writable
*/
var BufferQueueNode = function (_Writable) {
_inherits(BufferQueueNode, _Writable);
/**
* Create a BufferQueueNode.
* @param {Object} [options] - Options passed to the Writable constructor.
* @param {AudioBufferFormat} [options.dataType=BufferQueueNode.Float32Array] -
* Format of input data when not in objectMode.
* @param {boolean} [options.interleaved=true] - Whether the input data is interleaved
* @param {number} [options.channels=1] - Number of channels
* @param {number} [options.bufferSize=0] - Buffer size, must be a power of two
* between 256 and 16284. May also be 0 in which case the implementation will
* pick a good value (recommanded).
* @param {AudioContext} [options.audioContext=require('audio-context')()] - The audio context
*/
function BufferQueueNode(options) {
_classCallCheck(this, BufferQueueNode);
var _this = _possibleConstructorReturn(this, (BufferQueueNode.__proto__ || Object.getPrototypeOf(BufferQueueNode)).call(this, options));
options = (0, _extend2.default)({
dataType: Float32ArrayBuffer,
objectMode: false,
interleaved: true,
channels: 1,
bufferSize: 0
}, options);
if (!options.audioContext) {
options.audioContext = (0, _audioContext2.default)();
}
_this._dataType = options.dataType;
_this._objectMode = options.objectMode;
_this._interleaved = options.interleaved;
var channels = _this._channels = options.channels;
var bufferSize = options.bufferSize;
var audioContext = options.audioContext;
// const sampleRate = audioContext.sampleRate
// Queue that holds all future audio buffer
_this._queue = [];
// Create a script processor node that will inject our samples
var processorNode = audioContext.createScriptProcessor(bufferSize, 0, channels);
// Create a buffer source that will power the script processor
// Note: This isn't strictly required, however some browsers are buggy
var inputNode = audioContext.createBufferSource();
// That source should be looping over a short, silent buffer
inputNode.loop = true;
var shuttingDown = false;
var shutDown = false;
// The buffer which holds the current audio data
var currentBuffer = null;
// Offset into the current buffer
var currentBufferOffset;
processorNode.addEventListener('audioprocess', function (e) {
if (shutDown) {
// Already shut down
return;
}
var out = e.outputBuffer;
// Offset into the output buffer
var outOffset = 0;
// Try to fill the whole output buffer
while (outOffset < out.length) {
// If we don't have a current buffer but there are some in the queue
if (!currentBuffer && _this._queue.length > 0) {
// Then get the next queued buffer from the queue
currentBuffer = _this._queue.shift();
currentBufferOffset = 0;
}
// If we still don't have any data,
if (!currentBuffer) {
// then fill the rest of the output with silence
for (var channel = 0; channel < channels; channel++) {
out.getChannelData(channel).fill(0, outOffset);
}
// and shut down if requested
if (shuttingDown) {
shutDown = true;
process.nextTick(function () {
return _this.emit('close');
});
}
break;
}
// Otherwise (we have data), copy as much as possible
var remainingOutput = out.length - outOffset;
var remainingInput = currentBuffer.length - currentBufferOffset;
var remaining = Math.min(remainingOutput, remainingInput);
// Do the actual copying
currentBuffer.copyTo(out, outOffset, currentBufferOffset, remaining);
// Increase offsets
currentBufferOffset += remaining;
outOffset += remaining;
// Check if there is still data remaining in the current buffer
if (currentBufferOffset >= currentBuffer.length) {
currentBuffer = null;
}
}
});
// Connect the input node to the script processor
// inputNode.connect(processorNode)
// inputNode.start()
// Store node for later connecting
_this._node = processorNode;
_this.on('finish', function () {
shuttingDown = true;
});
_this.on('close', function () {
processorNode.disconnect();
});
return _this;
}
/**
* Connect this node to another node.
* @see https://developer.mozilla.org/en-US/docs/Web/API/AudioNode/connect(AudioNode)
*/
_createClass(BufferQueueNode, [{
key: 'connect',
value: function connect() {
return this._node.connect.apply(this._node, arguments);
}
/**
* Disconnect this node from another node.
* @see https://developer.mozilla.org/en-US/docs/Web/API/AudioNode/disconnect
*/
}, {
key: 'disconnect',
value: function disconnect() {
return this._node.disconnect.apply(this._node, arguments);
}
}, {
key: '_write',
value: function _write(chunk, encoding, callback) {
if (this._objectMode) {
if (chunk instanceof Float32Array) {
chunk = new Float32ArrayBuffer(this._channels, this._interleaved, chunk);
} else if (chunk instanceof Int16Array) {
chunk = new Int16ArrayBuffer(this._channels, this._interleaved, chunk);
} else {
chunk = new AudioBufferBuffer(chunk);
}
} else {
chunk = new this._dataType(this._channels, this._interleaved, chunk);
}
this._queue.push(chunk);
callback(null);
}
}]);
return BufferQueueNode;
}(_stream.Writable);
/**
* @interface AudioBufferFormat
*/
/**
* Copy samples from this buffer to the target AudioBuffer.
*
* @function
* @name AudioBufferFormat#copyTo
* @param {AudioBuffer} to - The target audio buffer
* @param {number} toOffset - Offset into the target audio buffer
* @param {number} fromOffset - Offset into this buffer
* @param {number} length - Amount of sample-frames to copy
*/
/** @implements AudioBufferFormat */
var AudioBufferBuffer = function () {
function AudioBufferBuffer(it) {
_classCallCheck(this, AudioBufferBuffer);
this._it = it;
}
_createClass(AudioBufferBuffer, [{
key: 'copyTo',
value: function copyTo(to, toOffset, fromOffset, length) {
for (var channel = 0; channel < this._it.numberOfChannels; channel++) {
var source = this._it.getChannelData(channel);
to.copyToChannel(source.subarray(fromOffset, fromOffset + length), channel, toOffset);
}
}
}, {
key: 'length',
get: function get() {
return this._it.length;
}
}]);
return AudioBufferBuffer;
}();
var TypedArrayBuffer = function () {
function TypedArrayBuffer(channels, interleaved, it) {
_classCallCheck(this, TypedArrayBuffer);
this._channels = channels;
this._interleaved = interleaved;
this._it = it;
}
_createClass(TypedArrayBuffer, [{
key: '_get',
/**
* Return the sample at the specified offset
* @param {number} i - The offset
* @returns {number} The sample
*/
value: function _get(i) {
return this._it[i];
}
/**
* Copy some samples to the specified array.
* @param {Float32Array} to - The target array
* @param {number} toOffset - Offset into the target array
* @param {number} fromOffset - Offset into this array
* @param {number} length - Amount of samples to copy
*/
}, {
key: '_bulkCopy',
value: function _bulkCopy(to, toOffset, fromOffset, length) {
to.set(this._it.subarray(fromOffset, fromOffset + length), toOffset);
}
}, {
key: 'copyTo',
value: function copyTo(to, toOffset, fromOffset, length) {
for (var channel = 0; channel < this._channels; channel++) {
var channelData = to.getChannelData(channel);
if (this._interleaved && this._channels > 1) {
// For interleaved data we have to copy every sample on its own
for (var i = 0; i < length; i++) {
var actualFromOffset = (fromOffset + i) * this._channels + channel;
channelData[toOffset + i] = this._get(actualFromOffset);
}
} else {
// Otherwise we can do a bulk copy
var _actualFromOffset = this.length * channel + fromOffset;
this._bulkCopy(channelData, toOffset, _actualFromOffset, length);
}
}
}
}, {
key: 'length',
get: function get() {
return this._it.length / this._channels;
}
}]);
return TypedArrayBuffer;
}();
/** @implements AudioBufferFormat */
var Float32ArrayBuffer = function (_TypedArrayBuffer) {
_inherits(Float32ArrayBuffer, _TypedArrayBuffer);
function Float32ArrayBuffer(channels, interleaved, it) {
_classCallCheck(this, Float32ArrayBuffer);
if (it instanceof Buffer) {
it = new Float32Array(it.buffer, it.byteOffset, it.byteLength / 4);
} else if (!(it instanceof Float32Array)) {
throw new Error('Unsupported buffer type: ' + it);
}
return _possibleConstructorReturn(this, (Float32ArrayBuffer.__proto__ || Object.getPrototypeOf(Float32ArrayBuffer)).call(this, channels, interleaved, it));
}
return Float32ArrayBuffer;
}(TypedArrayBuffer);
/** @implements AudioBufferFormat */
var Int16ArrayBuffer = function (_TypedArrayBuffer2) {
_inherits(Int16ArrayBuffer, _TypedArrayBuffer2);
function Int16ArrayBuffer(channels, interleaved, it) {
_classCallCheck(this, Int16ArrayBuffer);
if (it instanceof Buffer) {
it = new Int16Array(it.buffer, it.byteOffset, it.byteLength / 2);
} else if (!(it instanceof Int16Array)) {
throw new Error('Unsupported buffer type: ' + it);
}
return _possibleConstructorReturn(this, (Int16ArrayBuffer.__proto__ || Object.getPrototypeOf(Int16ArrayBuffer)).call(this, channels, interleaved, it));
}
/** @see TypedArrayBuffer#_get */
_createClass(Int16ArrayBuffer, [{
key: '_get',
value: function _get(i) {
var val = this._it[i];
return val / ((1 << 15) - (val > 0 ? 1 : 0));
}
/** @see TypedArrayBuffer#_bulkCopy */
}, {
key: '_bulkCopy',
value: function _bulkCopy(to, toOffset, fromOffset, length) {
for (var i = 0; i < length; i++) {
to[toOffset + i] = this._get(fromOffset + i);
}
}
}]);
return Int16ArrayBuffer;
}(TypedArrayBuffer);
BufferQueueNode.AudioBuffer = AudioBufferBuffer;
BufferQueueNode.Float32Array = Float32ArrayBuffer;
BufferQueueNode.Int16Array = Int16ArrayBuffer;
exports.default = BufferQueueNode;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(92), __webpack_require__(97).Buffer))
/***/ }),
/* 311 */
/***/ (function(module, exports) {
'use strict'
var cache = {}
module.exports = function getContext (options) {
if (typeof window === 'undefined') return null
var OfflineContext = window.OfflineAudioContext || window.webkitOfflineAudioContext
var Context = window.AudioContext || window.webkitAudioContext
if (!Context) return null
if (typeof options === 'number') {
options = {sampleRate: options}
}
var sampleRate = options && options.sampleRate
if (options && options.offline) {
if (!OfflineContext) return null
return new OfflineContext(options.channels || 2, options.length, sampleRate || 44100)
}
//cache by sampleRate, rather strong guess
var ctx = cache[sampleRate]
if (ctx) return ctx
//several versions of firefox have issues with the
//constructor argument
//see: https://bugzilla.mozilla.org/show_bug.cgi?id=1361475
try {
ctx = new Context(options)
}
catch (err) {
ctx = new Context()
}
cache[ctx.sampleRate] = cache[sampleRate] = ctx
return ctx
}
/***/ }),
/* 312 */
/***/ (function(module, exports, __webpack_require__) {
var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
* Knockout JavaScript library v3.5.1
* (c) The Knockout.js team - http://knockoutjs.com/
* License: MIT (http://www.opensource.org/licenses/mit-license.php)
*/
(function() {(function(n){var A=this||(0,eval)("this"),w=A.document,R=A.navigator,v=A.jQuery,H=A.JSON;v||"undefined"===typeof jQuery||(v=jQuery);(function(n){ true?!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports,__webpack_require__], __WEBPACK_AMD_DEFINE_FACTORY__ = (n), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)):"object"===typeof exports&&"object"===typeof module?n(module.exports||exports):n(A.ko={})})(function(S,T){function K(a,c){return null===a||typeof a in W?a===c:!1}function X(b,c){var d;return function(){d||(d=a.a.setTimeout(function(){d=n;b()},c))}}function Y(b,c){var d;return function(){clearTimeout(d);
d=a.a.setTimeout(b,c)}}function Z(a,c){c&&"change"!==c?"beforeChange"===c?this.pc(a):this.gb(a,c):this.qc(a)}function aa(a,c){null!==c&&c.s&&c.s()}function ba(a,c){var d=this.qd,e=d[r];e.ra||(this.Qb&&this.mb[c]?(d.uc(c,a,this.mb[c]),this.mb[c]=null,--this.Qb):e.I[c]||d.uc(c,a,e.J?{da:a}:d.$c(a)),a.Ja&&a.gd())}var a="undefined"!==typeof S?S:{};a.b=function(b,c){for(var d=b.split("."),e=a,f=0;f<d.length-1;f++)e=e[d[f]];e[d[d.length-1]]=c};a.L=function(a,c,d){a[c]=d};a.version="3.5.1";a.b("version",
a.version);a.options={deferUpdates:!1,useOnlyNativeEvents:!1,foreachHidesDestroyed:!1};a.a=function(){function b(a,b){for(var c in a)f.call(a,c)&&b(c,a[c])}function c(a,b){if(b)for(var c in b)f.call(b,c)&&(a[c]=b[c]);return a}function d(a,b){a.__proto__=b;return a}function e(b,c,d,e){var l=b[c].match(q)||[];a.a.D(d.match(q),function(b){a.a.Na(l,b,e)});b[c]=l.join(" ")}var f=Object.prototype.hasOwnProperty,g={__proto__:[]}instanceof Array,h="function"===typeof Symbol,m={},k={};m[R&&/Firefox\/2/i.test(R.userAgent)?
"KeyboardEvent":"UIEvents"]=["keyup","keydown","keypress"];m.MouseEvents="click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave".split(" ");b(m,function(a,b){if(b.length)for(var c=0,d=b.length;c<d;c++)k[b[c]]=a});var l={propertychange:!0},p=w&&function(){for(var a=3,b=w.createElement("div"),c=b.getElementsByTagName("i");b.innerHTML="\x3c!--[if gt IE "+ ++a+"]><i></i><![endif]--\x3e",c[0];);return 4<a?a:n}(),q=/\S+/g,t;return{Jc:["authenticity_token",/^__RequestVerificationToken(_.*)?$/],
D:function(a,b,c){for(var d=0,e=a.length;d<e;d++)b.call(c,a[d],d,a)},A:"function"==typeof Array.prototype.indexOf?function(a,b){return Array.prototype.indexOf.call(a,b)}:function(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1},Lb:function(a,b,c){for(var d=0,e=a.length;d<e;d++)if(b.call(c,a[d],d,a))return a[d];return n},Pa:function(b,c){var d=a.a.A(b,c);0<d?b.splice(d,1):0===d&&b.shift()},wc:function(b){var c=[];b&&a.a.D(b,function(b){0>a.a.A(c,b)&&c.push(b)});return c},Mb:function(a,
b,c){var d=[];if(a)for(var e=0,l=a.length;e<l;e++)d.push(b.call(c,a[e],e));return d},jb:function(a,b,c){var d=[];if(a)for(var e=0,l=a.length;e<l;e++)b.call(c,a[e],e)&&d.push(a[e]);return d},Nb:function(a,b){if(b instanceof Array)a.push.apply(a,b);else for(var c=0,d=b.length;c<d;c++)a.push(b[c]);return a},Na:function(b,c,d){var e=a.a.A(a.a.bc(b),c);0>e?d&&b.push(c):d||b.splice(e,1)},Ba:g,extend:c,setPrototypeOf:d,Ab:g?d:c,P:b,Ga:function(a,b,c){if(!a)return a;var d={},e;for(e in a)f.call(a,e)&&(d[e]=
b.call(c,a[e],e,a));return d},Tb:function(b){for(;b.firstChild;)a.removeNode(b.firstChild)},Yb:function(b){b=a.a.la(b);for(var c=(b[0]&&b[0].ownerDocument||w).createElement("div"),d=0,e=b.length;d<e;d++)c.appendChild(a.oa(b[d]));return c},Ca:function(b,c){for(var d=0,e=b.length,l=[];d<e;d++){var k=b[d].cloneNode(!0);l.push(c?a.oa(k):k)}return l},va:function(b,c){a.a.Tb(b);if(c)for(var d=0,e=c.length;d<e;d++)b.appendChild(c[d])},Xc:function(b,c){var d=b.nodeType?[b]:b;if(0<d.length){for(var e=d[0],
l=e.parentNode,k=0,f=c.length;k<f;k++)l.insertBefore(c[k],e);k=0;for(f=d.length;k<f;k++)a.removeNode(d[k])}},Ua:function(a,b){if(a.length){for(b=8===b.nodeType&&b.parentNode||b;a.length&&a[0].parentNode!==b;)a.splice(0,1);for(;1<a.length&&a[a.length-1].parentNode!==b;)a.length--;if(1<a.length){var c=a[0],d=a[a.length-1];for(a.length=0;c!==d;)a.push(c),c=c.nextSibling;a.push(d)}}return a},Zc:function(a,b){7>p?a.setAttribute("selected",b):a.selected=b},Db:function(a){return null===a||a===n?"":a.trim?
a.trim():a.toString().replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")},Ud:function(a,b){a=a||"";return b.length>a.length?!1:a.substring(0,b.length)===b},vd:function(a,b){if(a===b)return!0;if(11===a.nodeType)return!1;if(b.contains)return b.contains(1!==a.nodeType?a.parentNode:a);if(b.compareDocumentPosition)return 16==(b.compareDocumentPosition(a)&16);for(;a&&a!=b;)a=a.parentNode;return!!a},Sb:function(b){return a.a.vd(b,b.ownerDocument.documentElement)},kd:function(b){return!!a.a.Lb(b,a.a.Sb)},R:function(a){return a&&
a.tagName&&a.tagName.toLowerCase()},Ac:function(b){return a.onError?function(){try{return b.apply(this,arguments)}catch(c){throw a.onError&&a.onError(c),c;}}:b},setTimeout:function(b,c){return setTimeout(a.a.Ac(b),c)},Gc:function(b){setTimeout(function(){a.onError&&a.onError(b);throw b;},0)},B:function(b,c,d){var e=a.a.Ac(d);d=l[c];if(a.options.useOnlyNativeEvents||d||!v)if(d||"function"!=typeof b.addEventListener)if("undefined"!=typeof b.attachEvent){var k=function(a){e.call(b,a)},f="on"+c;b.attachEvent(f,
k);a.a.K.za(b,function(){b.detachEvent(f,k)})}else throw Error("Browser doesn't support addEventListener or attachEvent");else b.addEventListener(c,e,!1);else t||(t="function"==typeof v(b).on?"on":"bind"),v(b)[t](c,e)},Fb:function(b,c){if(!b||!b.nodeType)throw Error("element must be a DOM node when calling triggerEvent");var d;"input"===a.a.R(b)&&b.type&&"click"==c.toLowerCase()?(d=b.type,d="checkbox"==d||"radio"==d):d=!1;if(a.options.useOnlyNativeEvents||!v||d)if("function"==typeof w.createEvent)if("function"==
typeof b.dispatchEvent)d=w.createEvent(k[c]||"HTMLEvents"),d.initEvent(c,!0,!0,A,0,0,0,0,0,!1,!1,!1,!1,0,b),b.dispatchEvent(d);else throw Error("The supplied element doesn't support dispatchEvent");else if(d&&b.click)b.click();else if("undefined"!=typeof b.fireEvent)b.fireEvent("on"+c);else throw Error("Browser doesn't support triggering events");else v(b).trigger(c)},f:function(b){return a.O(b)?b():b},bc:function(b){return a.O(b)?b.v():b},Eb:function(b,c,d){var l;c&&("object"===typeof b.classList?
(l=b.classList[d?"add":"remove"],a.a.D(c.match(q),function(a){l.call(b.classList,a)})):"string"===typeof b.className.baseVal?e(b.className,"baseVal",c,d):e(b,"className",c,d))},Bb:function(b,c){var d=a.a.f(c);if(null===d||d===n)d="";var e=a.h.firstChild(b);!e||3!=e.nodeType||a.h.nextSibling(e)?a.h.va(b,[b.ownerDocument.createTextNode(d)]):e.data=d;a.a.Ad(b)},Yc:function(a,b){a.name=b;if(7>=p)try{var c=a.name.replace(/[&<>'"]/g,function(a){return"&#"+a.charCodeAt(0)+";"});a.mergeAttributes(w.createElement("<input name='"+
c+"'/>"),!1)}catch(d){}},Ad:function(a){9<=p&&(a=1==a.nodeType?a:a.parentNode,a.style&&(a.style.zoom=a.style.zoom))},wd:function(a){if(p){var b=a.style.width;a.style.width=0;a.style.width=b}},Pd:function(b,c){b=a.a.f(b);c=a.a.f(c);for(var d=[],e=b;e<=c;e++)d.push(e);return d},la:function(a){for(var b=[],c=0,d=a.length;c<d;c++)b.push(a[c]);return b},Da:function(a){return h?Symbol(a):a},Zd:6===p,$d:7===p,W:p,Lc:function(b,c){for(var d=a.a.la(b.getElementsByTagName("input")).concat(a.a.la(b.getElementsByTagName("textarea"))),
e="string"==typeof c?function(a){return a.name===c}:function(a){return c.test(a.name)},l=[],k=d.length-1;0<=k;k--)e(d[k])&&l.push(d[k]);return l},Nd:function(b){return"string"==typeof b&&(b=a.a.Db(b))?H&&H.parse?H.parse(b):(new Function("return "+b))():null},hc:function(b,c,d){if(!H||!H.stringify)throw Error("Cannot find JSON.stringify(). Some browsers (e.g., IE < 8) don't support it natively, but you can overcome this by adding a script reference to json2.js, downloadable from http://www.json.org/json2.js");
return H.stringify(a.a.f(b),c,d)},Od:function(c,d,e){e=e||{};var l=e.params||{},k=e.includeFields||this.Jc,f=c;if("object"==typeof c&&"form"===a.a.R(c))for(var f=c.action,h=k.length-1;0<=h;h--)for(var g=a.a.Lc(c,k[h]),m=g.length-1;0<=m;m--)l[g[m].name]=g[m].value;d=a.a.f(d);var p=w.createElement("form");p.style.display="none";p.action=f;p.method="post";for(var q in d)c=w.createElement("input"),c.type="hidden",c.name=q,c.value=a.a.hc(a.a.f(d[q])),p.appendChild(c);b(l,function(a,b){var c=w.createElement("input");
c.type="hidden";c.name=a;c.value=b;p.appendChild(c)});w.body.appendChild(p);e.submitter?e.submitter(p):p.submit();setTimeout(function(){p.parentNode.removeChild(p)},0)}}}();a.b("utils",a.a);a.b("utils.arrayForEach",a.a.D);a.b("utils.arrayFirst",a.a.Lb);a.b("utils.arrayFilter",a.a.jb);a.b("utils.arrayGetDistinctValues",a.a.wc);a.b("utils.arrayIndexOf",a.a.A);a.b("utils.arrayMap",a.a.Mb);a.b("utils.arrayPushAll",a.a.Nb);a.b("utils.arrayRemoveItem",a.a.Pa);a.b("utils.cloneNodes",a.a.Ca);a.b("utils.createSymbolOrString",
a.a.Da);a.b("utils.extend",a.a.extend);a.b("utils.fieldsIncludedWithJsonPost",a.a.Jc);a.b("utils.getFormFields",a.a.Lc);a.b("utils.objectMap",a.a.Ga);a.b("utils.peekObservable",a.a.bc);a.b("utils.postJson",a.a.Od);a.b("utils.parseJson",a.a.Nd);a.b("utils.registerEventHandler",a.a.B);a.b("utils.stringifyJson",a.a.hc);a.b("utils.range",a.a.Pd);a.b("utils.toggleDomNodeCssClass",a.a.Eb);a.b("utils.triggerEvent",a.a.Fb);a.b("utils.unwrapObservable",a.a.f);a.b("utils.objectForEach",a.a.P);a.b("utils.addOrRemoveItem",
a.a.Na);a.b("utils.setTextContent",a.a.Bb);a.b("unwrap",a.a.f);Function.prototype.bind||(Function.prototype.bind=function(a){var c=this;if(1===arguments.length)return function(){return c.apply(a,arguments)};var d=Array.prototype.slice.call(arguments,1);return function(){var e=d.slice(0);e.push.apply(e,arguments);return c.apply(a,e)}});a.a.g=new function(){var b=0,c="__ko__"+(new Date).getTime(),d={},e,f;a.a.W?(e=function(a,e){var f=a[c];if(!f||"null"===f||!d[f]){if(!e)return n;f=a[c]="ko"+b++;d[f]=
{}}return d[f]},f=function(a){var b=a[c];return b?(delete d[b],a[c]=null,!0):!1}):(e=function(a,b){var d=a[c];!d&&b&&(d=a[c]={});return d},f=function(a){return a[c]?(delete a[c],!0):!1});return{get:function(a,b){var c=e(a,!1);return c&&c[b]},set:function(a,b,c){(a=e(a,c!==n))&&(a[b]=c)},Ub:function(a,b,c){a=e(a,!0);return a[b]||(a[b]=c)},clear:f,Z:function(){return b++ +c}}};a.b("utils.domData",a.a.g);a.b("utils.domData.clear",a.a.g.clear);a.a.K=new function(){function b(b,c){var d=a.a.g.get(b,e);
d===n&&c&&(d=[],a.a.g.set(b,e,d));return d}function c(c){var e=b(c,!1);if(e)for(var e=e.slice(0),k=0;k<e.length;k++)e[k](c);a.a.g.clear(c);a.a.K.cleanExternalData(c);g[c.nodeType]&&d(c.childNodes,!0)}function d(b,d){for(var e=[],l,f=0;f<b.length;f++)if(!d||8===b[f].nodeType)if(c(e[e.length]=l=b[f]),b[f]!==l)for(;f--&&-1==a.a.A(e,b[f]););}var e=a.a.g.Z(),f={1:!0,8:!0,9:!0},g={1:!0,9:!0};return{za:function(a,c){if("function"!=typeof c)throw Error("Callback must be a function");b(a,!0).push(c)},yb:function(c,
d){var f=b(c,!1);f&&(a.a.Pa(f,d),0==f.length&&a.a.g.set(c,e,n))},oa:function(b){a.u.G(function(){f[b.nodeType]&&(c(b),g[b.nodeType]&&d(b.getElementsByTagName("*")))});return b},removeNode:function(b){a.oa(b);b.parentNode&&b.parentNode.removeChild(b)},cleanExternalData:function(a){v&&"function"==typeof v.cleanData&&v.cleanData([a])}}};a.oa=a.a.K.oa;a.removeNode=a.a.K.removeNode;a.b("cleanNode",a.oa);a.b("removeNode",a.removeNode);a.b("utils.domNodeDisposal",a.a.K);a.b("utils.domNodeDisposal.addDisposeCallback",
a.a.K.za);a.b("utils.domNodeDisposal.removeDisposeCallback",a.a.K.yb);(function(){var b=[0,"",""],c=[1,"<table>","</table>"],d=[3,"<table><tbody><tr>","</tr></tbody></table>"],e=[1,"<select multiple='multiple'>","</select>"],f={thead:c,tbody:c,tfoot:c,tr:[2,"<table><tbody>","</tbody></table>"],td:d,th:d,option:e,optgroup:e},g=8>=a.a.W;a.a.ua=function(c,d){var e;if(v)if(v.parseHTML)e=v.parseHTML(c,d)||[];else{if((e=v.clean([c],d))&&e[0]){for(var l=e[0];l.parentNode&&11!==l.parentNode.nodeType;)l=l.parentNode;
l.parentNode&&l.parentNode.removeChild(l)}}else{(e=d)||(e=w);var l=e.parentWindow||e.defaultView||A,p=a.a.Db(c).toLowerCase(),q=e.createElement("div"),t;t=(p=p.match(/^(?:\x3c!--.*?--\x3e\s*?)*?<([a-z]+)[\s>]/))&&f[p[1]]||b;p=t[0];t="ignored<div>"+t[1]+c+t[2]+"</div>";"function"==typeof l.innerShiv?q.appendChild(l.innerShiv(t)):(g&&e.body.appendChild(q),q.innerHTML=t,g&&q.parentNode.removeChild(q));for(;p--;)q=q.lastChild;e=a.a.la(q.lastChild.childNodes)}return e};a.a.Md=function(b,c){var d=a.a.ua(b,
c);return d.length&&d[0].parentElement||a.a.Yb(d)};a.a.fc=function(b,c){a.a.Tb(b);c=a.a.f(c);if(null!==c&&c!==n)if("string"!=typeof c&&(c=c.toString()),v)v(b).html(c);else for(var d=a.a.ua(c,b.ownerDocument),e=0;e<d.length;e++)b.appendChild(d[e])}})();a.b("utils.parseHtmlFragment",a.a.ua);a.b("utils.setHtml",a.a.fc);a.aa=function(){function b(c,e){if(c)if(8==c.nodeType){var f=a.aa.Uc(c.nodeValue);null!=f&&e.push({ud:c,Kd:f})}else if(1==c.nodeType)for(var f=0,g=c.childNodes,h=g.length;f<h;f++)b(g[f],
e)}var c={};return{Xb:function(a){if("function"!=typeof a)throw Error("You can only pass a function to ko.memoization.memoize()");var b=(4294967296*(1+Math.random())|0).toString(16).substring(1)+(4294967296*(1+Math.random())|0).toString(16).substring(1);c[b]=a;return"\x3c!--[ko_memo:"+b+"]--\x3e"},bd:function(a,b){var f=c[a];if(f===n)throw Error("Couldn't find any memo with ID "+a+". Perhaps it's already been unmemoized.");try{return f.apply(null,b||[]),!0}finally{delete c[a]}},cd:function(c,e){var f=
[];b(c,f);for(var g=0,h=f.length;g<h;g++){var m=f[g].ud,k=[m];e&&a.a.Nb(k,e);a.aa.bd(f[g].Kd,k);m.nodeValue="";m.parentNode&&m.parentNode.removeChild(m)}},Uc:function(a){return(a=a.match(/^\[ko_memo\:(.*?)\]$/))?a[1]:null}}}();a.b("memoization",a.aa);a.b("memoization.memoize",a.aa.Xb);a.b("memoization.unmemoize",a.aa.bd);a.b("memoization.parseMemoText",a.aa.Uc);a.b("memoization.unmemoizeDomNodeAndDescendants",a.aa.cd);a.na=function(){function b(){if(f)for(var b=f,c=0,d;h<f;)if(d=e[h++]){if(h>b){if(5E3<=
++c){h=f;a.a.Gc(Error("'Too much recursion' after processing "+c+" task groups."));break}b=f}try{d()}catch(p){a.a.Gc(p)}}}function c(){b();h=f=e.length=0}var d,e=[],f=0,g=1,h=0;A.MutationObserver?d=function(a){var b=w.createElement("div");(new MutationObserver(a)).observe(b,{attributes:!0});return function(){b.classList.toggle("foo")}}(c):d=w&&"onreadystatechange"in w.createElement("script")?function(a){var b=w.createElement("script");b.onreadystatechange=function(){b.onreadystatechange=null;w.documentElement.removeChild(b);
b=null;a()};w.documentElement.appendChild(b)}:function(a){setTimeout(a,0)};return{scheduler:d,zb:function(b){f||a.na.scheduler(c);e[f++]=b;return g++},cancel:function(a){a=a-(g-f);a>=h&&a<f&&(e[a]=null)},resetForTesting:function(){var a=f-h;h=f=e.length=0;return a},Sd:b}}();a.b("tasks",a.na);a.b("tasks.schedule",a.na.zb);a.b("tasks.runEarly",a.na.Sd);a.Ta={throttle:function(b,c){b.throttleEvaluation=c;var d=null;return a.$({read:b,write:function(e){clearTimeout(d);d=a.a.setTimeout(function(){b(e)},
c)}})},rateLimit:function(a,c){var d,e,f;"number"==typeof c?d=c:(d=c.timeout,e=c.method);a.Hb=!1;f="function"==typeof e?e:"notifyWhenChangesStop"==e?Y:X;a.ub(function(a){return f(a,d,c)})},deferred:function(b,c){if(!0!==c)throw Error("The 'deferred' extender only accepts the value 'true', because it is not supported to turn deferral off once enabled.");b.Hb||(b.Hb=!0,b.ub(function(c){var e,f=!1;return function(){if(!f){a.na.cancel(e);e=a.na.zb(c);try{f=!0,b.notifySubscribers(n,"dirty")}finally{f=
!1}}}}))},notify:function(a,c){a.equalityComparer="always"==c?null:K}};var W={undefined:1,"boolean":1,number:1,string:1};a.b("extenders",a.Ta);a.ic=function(b,c,d){this.da=b;this.lc=c;this.mc=d;this.Ib=!1;this.fb=this.Jb=null;a.L(this,"dispose",this.s);a.L(this,"disposeWhenNodeIsRemoved",this.l)};a.ic.prototype.s=function(){this.Ib||(this.fb&&a.a.K.yb(this.Jb,this.fb),this.Ib=!0,this.mc(),this.da=this.lc=this.mc=this.Jb=this.fb=null)};a.ic.prototype.l=function(b){this.Jb=b;a.a.K.za(b,this.fb=this.s.bind(this))};
a.T=function(){a.a.Ab(this,D);D.qb(this)};var D={qb:function(a){a.U={change:[]};a.sc=1},subscribe:function(b,c,d){var e=this;d=d||"change";var f=new a.ic(e,c?b.bind(c):b,function(){a.a.Pa(e.U[d],f);e.hb&&e.hb(d)});e.Qa&&e.Qa(d);e.U[d]||(e.U[d]=[]);e.U[d].push(f);return f},notifySubscribers:function(b,c){c=c||"change";"change"===c&&this.Gb();if(this.Wa(c)){var d="change"===c&&this.ed||this.U[c].slice(0);try{a.u.xc();for(var e=0,f;f=d[e];++e)f.Ib||f.lc(b)}finally{a.u.end()}}},ob:function(){return this.sc},
Dd:function(a){return this.ob()!==a},Gb:function(){++this.sc},ub:function(b){var c=this,d=a.O(c),e,f,g,h,m;c.gb||(c.gb=c.notifySubscribers,c.notifySubscribers=Z);var k=b(function(){c.Ja=!1;d&&h===c&&(h=c.nc?c.nc():c());var a=f||m&&c.sb(g,h);m=f=e=!1;a&&c.gb(g=h)});c.qc=function(a,b){b&&c.Ja||(m=!b);c.ed=c.U.change.slice(0);c.Ja=e=!0;h=a;k()};c.pc=function(a){e||(g=a,c.gb(a,"beforeChange"))};c.rc=function(){m=!0};c.gd=function(){c.sb(g,c.v(!0))&&(f=!0)}},Wa:function(a){return this.U[a]&&this.U[a].length},
Bd:function(b){if(b)return this.U[b]&&this.U[b].length||0;var c=0;a.a.P(this.U,function(a,b){"dirty"!==a&&(c+=b.length)});return c},sb:function(a,c){return!this.equalityComparer||!this.equalityComparer(a,c)},toString:function(){return"[object Object]"},extend:function(b){var c=this;b&&a.a.P(b,function(b,e){var f=a.Ta[b];"function"==typeof f&&(c=f(c,e)||c)});return c}};a.L(D,"init",D.qb);a.L(D,"subscribe",D.subscribe);a.L(D,"extend",D.extend);a.L(D,"getSubscriptionsCount",D.Bd);a.a.Ba&&a.a.setPrototypeOf(D,
Function.prototype);a.T.fn=D;a.Qc=function(a){return null!=a&&"function"==typeof a.subscribe&&"function"==typeof a.notifySubscribers};a.b("subscribable",a.T);a.b("isSubscribable",a.Qc);a.S=a.u=function(){function b(a){d.push(e);e=a}function c(){e=d.pop()}var d=[],e,f=0;return{xc:b,end:c,cc:function(b){if(e){if(!a.Qc(b))throw Error("Only subscribable things can act as dependencies");e.od.call(e.pd,b,b.fd||(b.fd=++f))}},G:function(a,d,e){try{return b(),a.apply(d,e||[])}finally{c()}},qa:function(){if(e)return e.o.qa()},
Va:function(){if(e)return e.o.Va()},Ya:function(){if(e)return e.Ya},o:function(){if(e)return e.o}}}();a.b("computedContext",a.S);a.b("computedContext.getDependenciesCount",a.S.qa);a.b("computedContext.getDependencies",a.S.Va);a.b("computedContext.isInitial",a.S.Ya);a.b("computedContext.registerDependency",a.S.cc);a.b("ignoreDependencies",a.Yd=a.u.G);var I=a.a.Da("_latestValue");a.ta=function(b){function c(){if(0<arguments.length)return c.sb(c[I],arguments[0])&&(c.ya(),c[I]=arguments[0],c.xa()),this;
a.u.cc(c);return c[I]}c[I]=b;a.a.Ba||a.a.extend(c,a.T.fn);a.T.fn.qb(c);a.a.Ab(c,F);a.options.deferUpdates&&a.Ta.deferred(c,!0);return c};var F={equalityComparer:K,v:function(){return this[I]},xa:function(){this.notifySubscribers(this[I],"spectate");this.notifySubscribers(this[I])},ya:function(){this.notifySubscribers(this[I],"beforeChange")}};a.a.Ba&&a.a.setPrototypeOf(F,a.T.fn);var G=a.ta.Ma="__ko_proto__";F[G]=a.ta;a.O=function(b){if((b="function"==typeof b&&b[G])&&b!==F[G]&&b!==a.o.fn[G])throw Error("Invalid object that looks like an observable; possibly from another Knockout instance");
return!!b};a.Za=function(b){return"function"==typeof b&&(b[G]===F[G]||b[G]===a.o.fn[G]&&b.Nc)};a.b("observable",a.ta);a.b("isObservable",a.O);a.b("isWriteableObservable",a.Za);a.b("isWritableObservable",a.Za);a.b("observable.fn",F);a.L(F,"peek",F.v);a.L(F,"valueHasMutated",F.xa);a.L(F,"valueWillMutate",F.ya);a.Ha=function(b){b=b||[];if("object"!=typeof b||!("length"in b))throw Error("The argument passed when initializing an observable array must be an array, or null, or undefined.");b=a.ta(b);a.a.Ab(b,
a.Ha.fn);return b.extend({trackArrayChanges:!0})};a.Ha.fn={remove:function(b){for(var c=this.v(),d=[],e="function"!=typeof b||a.O(b)?function(a){return a===b}:b,f=0;f<c.length;f++){var g=c[f];if(e(g)){0===d.length&&this.ya();if(c[f]!==g)throw Error("Array modified during remove; cannot remove item");d.push(g);c.splice(f,1);f--}}d.length&&this.xa();return d},removeAll:function(b){if(b===n){var c=this.v(),d=c.slice(0);this.ya();c.splice(0,c.length);this.xa();return d}return b?this.remove(function(c){return 0<=
a.a.A(b,c)}):[]},destroy:function(b){var c=this.v(),d="function"!=typeof b||a.O(b)?function(a){return a===b}:b;this.ya();for(var e=c.length-1;0<=e;e--){var f=c[e];d(f)&&(f._destroy=!0)}this.xa()},destroyAll:function(b){return b===n?this.destroy(function(){return!0}):b?this.destroy(function(c){return 0<=a.a.A(b,c)}):[]},indexOf:function(b){var c=this();return a.a.A(c,b)},replace:function(a,c){var d=this.indexOf(a);0<=d&&(this.ya(),this.v()[d]=c,this.xa())},sorted:function(a){var c=this().slice(0);
return a?c.sort(a):c.sort()},reversed:function(){return this().slice(0).reverse()}};a.a.Ba&&a.a.setPrototypeOf(a.Ha.fn,a.ta.fn);a.a.D("pop push reverse shift sort splice unshift".split(" "),function(b){a.Ha.fn[b]=function(){var a=this.v();this.ya();this.zc(a,b,arguments);var d=a[b].apply(a,arguments);this.xa();return d===a?this:d}});a.a.D(["slice"],function(b){a.Ha.fn[b]=function(){var a=this();return a[b].apply(a,arguments)}});a.Pc=function(b){return a.O(b)&&"function"==typeof b.remove&&"function"==
typeof b.push};a.b("observableArray",a.Ha);a.b("isObservableArray",a.Pc);a.Ta.trackArrayChanges=function(b,c){function d(){function c(){if(m){var d=[].concat(b.v()||[]),e;if(b.Wa("arrayChange")){if(!f||1<m)f=a.a.Pb(k,d,b.Ob);e=f}k=d;f=null;m=0;e&&e.length&&b.notifySubscribers(e,"arrayChange")}}e?c():(e=!0,h=b.subscribe(function(){++m},null,"spectate"),k=[].concat(b.v()||[]),f=null,g=b.subscribe(c))}b.Ob={};c&&"object"==typeof c&&a.a.extend(b.Ob,c);b.Ob.sparse=!0;if(!b.zc){var e=!1,f=null,g,h,m=0,
k,l=b.Qa,p=b.hb;b.Qa=function(a){l&&l.call(b,a);"arrayChange"===a&&d()};b.hb=function(a){p&&p.call(b,a);"arrayChange"!==a||b.Wa("arrayChange")||(g&&g.s(),h&&h.s(),h=g=null,e=!1,k=n)};b.zc=function(b,c,d){function l(a,b,c){return k[k.length]={status:a,value:b,index:c}}if(e&&!m){var k=[],p=b.length,g=d.length,h=0;switch(c){case "push":h=p;case "unshift":for(c=0;c<g;c++)l("added",d[c],h+c);break;case "pop":h=p-1;case "shift":p&&l("deleted",b[h],h);break;case "splice":c=Math.min(Math.max(0,0>d[0]?p+d[0]:
d[0]),p);for(var p=1===g?p:Math.min(c+(d[1]||0),p),g=c+g-2,h=Math.max(p,g),U=[],L=[],n=2;c<h;++c,++n)c<p&&L.push(l("deleted",b[c],c)),c<g&&U.push(l("added",d[n],c));a.a.Kc(L,U);break;default:return}f=k}}}};var r=a.a.Da("_state");a.o=a.$=function(b,c,d){function e(){if(0<arguments.length){if("function"===typeof f)f.apply(g.nb,arguments);else throw Error("Cannot write a value to a ko.computed unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters.");return this}g.ra||
a.u.cc(e);(g.ka||g.J&&e.Xa())&&e.ha();return g.X}"object"===typeof b?d=b:(d=d||{},b&&(d.read=b));if("function"!=typeof d.read)throw Error("Pass a function that returns the value of the ko.computed");var f=d.write,g={X:n,sa:!0,ka:!0,rb:!1,jc:!1,ra:!1,wb:!1,J:!1,Wc:d.read,nb:c||d.owner,l:d.disposeWhenNodeIsRemoved||d.l||null,Sa:d.disposeWhen||d.Sa,Rb:null,I:{},V:0,Ic:null};e[r]=g;e.Nc="function"===typeof f;a.a.Ba||a.a.extend(e,a.T.fn);a.T.fn.qb(e);a.a.Ab(e,C);d.pure?(g.wb=!0,g.J=!0,a.a.extend(e,da)):
d.deferEvaluation&&a.a.extend(e,ea);a.options.deferUpdates&&a.Ta.deferred(e,!0);g.l&&(g.jc=!0,g.l.nodeType||(g.l=null));g.J||d.deferEvaluation||e.ha();g.l&&e.ja()&&a.a.K.za(g.l,g.Rb=function(){e.s()});return e};var C={equalityComparer:K,qa:function(){return this[r].V},Va:function(){var b=[];a.a.P(this[r].I,function(a,d){b[d.Ka]=d.da});return b},Vb:function(b){if(!this[r].V)return!1;var c=this.Va();return-1!==a.a.A(c,b)?!0:!!a.a.Lb(c,function(a){return a.Vb&&a.Vb(b)})},uc:function(a,c,d){if(this[r].wb&&
c===this)throw Error("A 'pure' computed must not be called recursively");this[r].I[a]=d;d.Ka=this[r].V++;d.La=c.ob()},Xa:function(){var a,c,d=this[r].I;for(a in d)if(Object.prototype.hasOwnProperty.call(d,a)&&(c=d[a],this.Ia&&c.da.Ja||c.da.Dd(c.La)))return!0},Jd:function(){this.Ia&&!this[r].rb&&this.Ia(!1)},ja:function(){var a=this[r];return a.ka||0<a.V},Rd:function(){this.Ja?this[r].ka&&(this[r].sa=!0):this.Hc()},$c:function(a){if(a.Hb){var c=a.subscribe(this.Jd,this,"dirty"),d=a.subscribe(this.Rd,
this);return{da:a,s:function(){c.s();d.s()}}}return a.subscribe(this.Hc,this)},Hc:function(){var b=this,c=b.throttleEvaluation;c&&0<=c?(clearTimeout(this[r].Ic),this[r].Ic=a.a.setTimeout(function(){b.ha(!0)},c)):b.Ia?b.Ia(!0):b.ha(!0)},ha:function(b){var c=this[r],d=c.Sa,e=!1;if(!c.rb&&!c.ra){if(c.l&&!a.a.Sb(c.l)||d&&d()){if(!c.jc){this.s();return}}else c.jc=!1;c.rb=!0;try{e=this.zd(b)}finally{c.rb=!1}return e}},zd:function(b){var c=this[r],d=!1,e=c.wb?n:!c.V,d={qd:this,mb:c.I,Qb:c.V};a.u.xc({pd:d,
od:ba,o:this,Ya:e});c.I={};c.V=0;var f=this.yd(c,d);c.V?d=this.sb(c.X,f):(this.s(),d=!0);d&&(c.J?this.Gb():this.notifySubscribers(c.X,"beforeChange"),c.X=f,this.notifySubscribers(c.X,"spectate"),!c.J&&b&&this.notifySubscribers(c.X),this.rc&&this.rc());e&&this.notifySubscribers(c.X,"awake");return d},yd:function(b,c){try{var d=b.Wc;return b.nb?d.call(b.nb):d()}finally{a.u.end(),c.Qb&&!b.J&&a.a.P(c.mb,aa),b.sa=b.ka=!1}},v:function(a){var c=this[r];(c.ka&&(a||!c.V)||c.J&&this.Xa())&&this.ha();return c.X},
ub:function(b){a.T.fn.ub.call(this,b);this.nc=function(){this[r].J||(this[r].sa?this.ha():this[r].ka=!1);return this[r].X};this.Ia=function(a){this.pc(this[r].X);this[r].ka=!0;a&&(this[r].sa=!0);this.qc(this,!a)}},s:function(){var b=this[r];!b.J&&b.I&&a.a.P(b.I,function(a,b){b.s&&b.s()});b.l&&b.Rb&&a.a.K.yb(b.l,b.Rb);b.I=n;b.V=0;b.ra=!0;b.sa=!1;b.ka=!1;b.J=!1;b.l=n;b.Sa=n;b.Wc=n;this.Nc||(b.nb=n)}},da={Qa:function(b){var c=this,d=c[r];if(!d.ra&&d.J&&"change"==b){d.J=!1;if(d.sa||c.Xa())d.I=null,d.V=
0,c.ha()&&c.Gb();else{var e=[];a.a.P(d.I,function(a,b){e[b.Ka]=a});a.a.D(e,function(a,b){var e=d.I[a],m=c.$c(e.da);m.Ka=b;m.La=e.La;d.I[a]=m});c.Xa()&&c.ha()&&c.Gb()}d.ra||c.notifySubscribers(d.X,"awake")}},hb:function(b){var c=this[r];c.ra||"change"!=b||this.Wa("change")||(a.a.P(c.I,function(a,b){b.s&&(c.I[a]={da:b.da,Ka:b.Ka,La:b.La},b.s())}),c.J=!0,this.notifySubscribers(n,"asleep"))},ob:function(){var b=this[r];b.J&&(b.sa||this.Xa())&&this.ha();return a.T.fn.ob.call(this)}},ea={Qa:function(a){"change"!=
a&&"beforeChange"!=a||this.v()}};a.a.Ba&&a.a.setPrototypeOf(C,a.T.fn);var N=a.ta.Ma;C[N]=a.o;a.Oc=function(a){return"function"==typeof a&&a[N]===C[N]};a.Fd=function(b){return a.Oc(b)&&b[r]&&b[r].wb};a.b("computed",a.o);a.b("dependentObservable",a.o);a.b("isComputed",a.Oc);a.b("isPureComputed",a.Fd);a.b("computed.fn",C);a.L(C,"peek",C.v);a.L(C,"dispose",C.s);a.L(C,"isActive",C.ja);a.L(C,"getDependenciesCount",C.qa);a.L(C,"getDependencies",C.Va);a.xb=function(b,c){if("function"===typeof b)return a.o(b,
c,{pure:!0});b=a.a.extend({},b);b.pure=!0;return a.o(b,c)};a.b("pureComputed",a.xb);(function(){function b(a,f,g){g=g||new d;a=f(a);if("object"!=typeof a||null===a||a===n||a instanceof RegExp||a instanceof Date||a instanceof String||a instanceof Number||a instanceof Boolean)return a;var h=a instanceof Array?[]:{};g.save(a,h);c(a,function(c){var d=f(a[c]);switch(typeof d){case "boolean":case "number":case "string":case "function":h[c]=d;break;case "object":case "undefined":var l=g.get(d);h[c]=l!==
n?l:b(d,f,g)}});return h}function c(a,b){if(a instanceof Array){for(var c=0;c<a.length;c++)b(c);"function"==typeof a.toJSON&&b("toJSON")}else for(c in a)b(c)}function d(){this.keys=[];this.values=[]}a.ad=function(c){if(0==arguments.length)throw Error("When calling ko.toJS, pass the object you want to convert.");return b(c,function(b){for(var c=0;a.O(b)&&10>c;c++)b=b();return b})};a.toJSON=function(b,c,d){b=a.ad(b);return a.a.hc(b,c,d)};d.prototype={constructor:d,save:function(b,c){var d=a.a.A(this.keys,
b);0<=d?this.values[d]=c:(this.keys.push(b),this.values.push(c))},get:function(b){b=a.a.A(this.keys,b);return 0<=b?this.values[b]:n}}})();a.b("toJS",a.ad);a.b("toJSON",a.toJSON);a.Wd=function(b,c,d){function e(c){var e=a.xb(b,d).extend({ma:"always"}),h=e.subscribe(function(a){a&&(h.s(),c(a))});e.notifySubscribers(e.v());return h}return"function"!==typeof Promise||c?e(c.bind(d)):new Promise(e)};a.b("when",a.Wd);(function(){a.w={M:function(b){switch(a.a.R(b)){case "option":return!0===b.__ko__hasDomDataOptionValue__?
a.a.g.get(b,a.c.options.$b):7>=a.a.W?b.getAttributeNode("value")&&b.getAttributeNode("value").specified?b.value:b.text:b.value;case "select":return 0<=b.selectedIndex?a.w.M(b.options[b.selectedIndex]):n;default:return b.value}},cb:function(b,c,d){switch(a.a.R(b)){case "option":"string"===typeof c?(a.a.g.set(b,a.c.options.$b,n),"__ko__hasDomDataOptionValue__"in b&&delete b.__ko__hasDomDataOptionValue__,b.value=c):(a.a.g.set(b,a.c.options.$b,c),b.__ko__hasDomDataOptionValue__=!0,b.value="number"===
typeof c?c:"");break;case "select":if(""===c||null===c)c=n;for(var e=-1,f=0,g=b.options.length,h;f<g;++f)if(h=a.w.M(b.options[f]),h==c||""===h&&c===n){e=f;break}if(d||0<=e||c===n&&1<b.size)b.selectedIndex=e,6===a.a.W&&a.a.setTimeout(function(){b.selectedIndex=e},0);break;default:if(null===c||c===n)c="";b.value=c}}}})();a.b("selectExtensions",a.w);a.b("selectExtensions.readValue",a.w.M);a.b("selectExtensions.writeValue",a.w.cb);a.m=function(){function b(b){b=a.a.Db(b);123===b.charCodeAt(0)&&(b=b.slice(1,
-1));b+="\n,";var c=[],d=b.match(e),p,q=[],h=0;if(1<d.length){for(var x=0,B;B=d[x];++x){var u=B.charCodeAt(0);if(44===u){if(0>=h){c.push(p&&q.length?{key:p,value:q.join("")}:{unknown:p||q.join("")});p=h=0;q=[];continue}}else if(58===u){if(!h&&!p&&1===q.length){p=q.pop();continue}}else if(47===u&&1<B.length&&(47===B.charCodeAt(1)||42===B.charCodeAt(1)))continue;else 47===u&&x&&1<B.length?(u=d[x-1].match(f))&&!g[u[0]]&&(b=b.substr(b.indexOf(B)+1),d=b.match(e),x=-1,B="/"):40===u||123===u||91===u?++h:
41===u||125===u||93===u?--h:p||q.length||34!==u&&39!==u||(B=B.slice(1,-1));q.push(B)}if(0<h)throw Error("Unbalanced parentheses, braces, or brackets");}return c}var c=["true","false","null","undefined"],d=/^(?:[$_a-z][$\w]*|(.+)(\.\s*[$_a-z][$\w]*|\[.+\]))$/i,e=RegExp("\"(?:\\\\.|[^\"])*\"|'(?:\\\\.|[^'])*'|`(?:\\\\.|[^`])*`|/\\*(?:[^*]|\\*+[^*/])*\\*+/|//.*\n|/(?:\\\\.|[^/])+/w*|[^\\s:,/][^,\"'`{}()/:[\\]]*[^\\s,\"'`{}()/:[\\]]|[^\\s]","g"),f=/[\])"'A-Za-z0-9_$]+$/,g={"in":1,"return":1,"typeof":1},
h={};return{Ra:[],wa:h,ac:b,vb:function(e,f){function l(b,e){var f;if(!x){var k=a.getBindingHandler(b);if(k&&k.preprocess&&!(e=k.preprocess(e,b,l)))return;if(k=h[b])f=e,0<=a.a.A(c,f)?f=!1:(k=f.match(d),f=null===k?!1:k[1]?"Object("+k[1]+")"+k[2]:f),k=f;k&&q.push("'"+("string"==typeof h[b]?h[b]:b)+"':function(_z){"+f+"=_z}")}g&&(e="function(){return "+e+" }");p.push("'"+b+"':"+e)}f=f||{};var p=[],q=[],g=f.valueAccessors,x=f.bindingParams,B="string"===typeof e?b(e):e;a.a.D(B,function(a){l(a.key||a.unknown,
a.value)});q.length&&l("_ko_property_writers","{"+q.join(",")+" }");return p.join(",")},Id:function(a,b){for(var c=0;c<a.length;c++)if(a[c].key==b)return!0;return!1},eb:function(b,c,d,e,f){if(b&&a.O(b))!a.Za(b)||f&&b.v()===e||b(e);else if((b=c.get("_ko_property_writers"))&&b[d])b[d](e)}}}();a.b("expressionRewriting",a.m);a.b("expressionRewriting.bindingRewriteValidators",a.m.Ra);a.b("expressionRewriting.parseObjectLiteral",a.m.ac);a.b("expressionRewriting.preProcessBindings",a.m.vb);a.b("expressionRewriting._twoWayBindings",
a.m.wa);a.b("jsonExpressionRewriting",a.m);a.b("jsonExpressionRewriting.insertPropertyAccessorsIntoJson",a.m.vb);(function(){function b(a){return 8==a.nodeType&&g.test(f?a.text:a.nodeValue)}function c(a){return 8==a.nodeType&&h.test(f?a.text:a.nodeValue)}function d(d,e){for(var f=d,h=1,g=[];f=f.nextSibling;){if(c(f)&&(a.a.g.set(f,k,!0),h--,0===h))return g;g.push(f);b(f)&&h++}if(!e)throw Error("Cannot find closing comment tag to match: "+d.nodeValue);return null}function e(a,b){var c=d(a,b);return c?
0<c.length?c[c.length-1].nextSibling:a.nextSibling:null}var f=w&&"\x3c!--test--\x3e"===w.createComment("test").text,g=f?/^\x3c!--\s*ko(?:\s+([\s\S]+))?\s*--\x3e$/:/^\s*ko(?:\s+([\s\S]+))?\s*$/,h=f?/^\x3c!--\s*\/ko\s*--\x3e$/:/^\s*\/ko\s*$/,m={ul:!0,ol:!0},k="__ko_matchedEndComment__";a.h={ea:{},childNodes:function(a){return b(a)?d(a):a.childNodes},Ea:function(c){if(b(c)){c=a.h.childNodes(c);for(var d=0,e=c.length;d<e;d++)a.removeNode(c[d])}else a.a.Tb(c)},va:function(c,d){if(b(c)){a.h.Ea(c);for(var e=
c.nextSibling,f=0,k=d.length;f<k;f++)e.parentNode.insertBefore(d[f],e)}else a.a.va(c,d)},Vc:function(a,c){var d;b(a)?(d=a.nextSibling,a=a.parentNode):d=a.firstChild;d?c!==d&&a.insertBefore(c,d):a.appendChild(c)},Wb:function(c,d,e){e?(e=e.nextSibling,b(c)&&(c=c.parentNode),e?d!==e&&c.insertBefore(d,e):c.appendChild(d)):a.h.Vc(c,d)},firstChild:function(a){if(b(a))return!a.nextSibling||c(a.nextSibling)?null:a.nextSibling;if(a.firstChild&&c(a.firstChild))throw Error("Found invalid end comment, as the first child of "+
a);return a.firstChild},nextSibling:function(d){b(d)&&(d=e(d));if(d.nextSibling&&c(d.nextSibling)){var f=d.nextSibling;if(c(f)&&!a.a.g.get(f,k))throw Error("Found end comment without a matching opening comment, as child of "+d);return null}return d.nextSibling},Cd:b,Vd:function(a){return(a=(f?a.text:a.nodeValue).match(g))?a[1]:null},Sc:function(d){if(m[a.a.R(d)]){var f=d.firstChild;if(f){do if(1===f.nodeType){var k;k=f.firstChild;var h=null;if(k){do if(h)h.push(k);else if(b(k)){var g=e(k,!0);g?k=
g:h=[k]}else c(k)&&(h=[k]);while(k=k.nextSibling)}if(k=h)for(h=f.nextSibling,g=0;g<k.length;g++)h?d.insertBefore(k[g],h):d.appendChild(k[g])}while(f=f.nextSibling)}}}}})();a.b("virtualElements",a.h);a.b("virtualElements.allowedBindings",a.h.ea);a.b("virtualElements.emptyNode",a.h.Ea);a.b("virtualElements.insertAfter",a.h.Wb);a.b("virtualElements.prepend",a.h.Vc);a.b("virtualElements.setDomNodeChildren",a.h.va);(function(){a.ga=function(){this.nd={}};a.a.extend(a.ga.prototype,{nodeHasBindings:function(b){switch(b.nodeType){case 1:return null!=
b.getAttribute("data-bind")||a.j.getComponentNameForNode(b);case 8:return a.h.Cd(b);default:return!1}},getBindings:function(b,c){var d=this.getBindingsString(b,c),d=d?this.parseBindingsString(d,c,b):null;return a.j.tc(d,b,c,!1)},getBindingAccessors:function(b,c){var d=this.getBindingsString(b,c),d=d?this.parseBindingsString(d,c,b,{valueAccessors:!0}):null;return a.j.tc(d,b,c,!0)},getBindingsString:function(b){switch(b.nodeType){case 1:return b.getAttribute("data-bind");case 8:return a.h.Vd(b);default:return null}},
parseBindingsString:function(b,c,d,e){try{var f=this.nd,g=b+(e&&e.valueAccessors||""),h;if(!(h=f[g])){var m,k="with($context){with($data||{}){return{"+a.m.vb(b,e)+"}}}";m=new Function("$context","$element",k);h=f[g]=m}return h(c,d)}catch(l){throw l.message="Unable to parse bindings.\nBindings value: "+b+"\nMessage: "+l.message,l;}}});a.ga.instance=new a.ga})();a.b("bindingProvider",a.ga);(function(){function b(b){var c=(b=a.a.g.get(b,z))&&b.N;c&&(b.N=null,c.Tc())}function c(c,d,e){this.node=c;this.yc=
d;this.kb=[];this.H=!1;d.N||a.a.K.za(c,b);e&&e.N&&(e.N.kb.push(c),this.Kb=e)}function d(a){return function(){return a}}function e(a){return a()}function f(b){return a.a.Ga(a.u.G(b),function(a,c){return function(){return b()[c]}})}function g(b,c,e){return"function"===typeof b?f(b.bind(null,c,e)):a.a.Ga(b,d)}function h(a,b){return f(this.getBindings.bind(this,a,b))}function m(b,c){var d=a.h.firstChild(c);if(d){var e,f=a.ga.instance,l=f.preprocessNode;if(l){for(;e=d;)d=a.h.nextSibling(e),l.call(f,e);
d=a.h.firstChild(c)}for(;e=d;)d=a.h.nextSibling(e),k(b,e)}a.i.ma(c,a.i.H)}function k(b,c){var d=b,e=1===c.nodeType;e&&a.h.Sc(c);if(e||a.ga.instance.nodeHasBindings(c))d=p(c,null,b).bindingContextForDescendants;d&&!u[a.a.R(c)]&&m(d,c)}function l(b){var c=[],d={},e=[];a.a.P(b,function ca(f){if(!d[f]){var k=a.getBindingHandler(f);k&&(k.after&&(e.push(f),a.a.D(k.after,function(c){if(b[c]){if(-1!==a.a.A(e,c))throw Error("Cannot combine the following bindings, because they have a cyclic dependency: "+e.join(", "));
ca(c)}}),e.length--),c.push({key:f,Mc:k}));d[f]=!0}});return c}function p(b,c,d){var f=a.a.g.Ub(b,z,{}),k=f.hd;if(!c){if(k)throw Error("You cannot apply bindings multiple times to the same element.");f.hd=!0}k||(f.context=d);f.Zb||(f.Zb={});var g;if(c&&"function"!==typeof c)g=c;else{var p=a.ga.instance,q=p.getBindingAccessors||h,m=a.$(function(){if(g=c?c(d,b):q.call(p,b,d)){if(d[t])d[t]();if(d[B])d[B]()}return g},null,{l:b});g&&m.ja()||(m=null)}var x=d,u;if(g){var J=function(){return a.a.Ga(m?m():
g,e)},r=m?function(a){return function(){return e(m()[a])}}:function(a){return g[a]};J.get=function(a){return g[a]&&e(r(a))};J.has=function(a){return a in g};a.i.H in g&&a.i.subscribe(b,a.i.H,function(){var c=(0,g[a.i.H])();if(c){var d=a.h.childNodes(b);d.length&&c(d,a.Ec(d[0]))}});a.i.pa in g&&(x=a.i.Cb(b,d),a.i.subscribe(b,a.i.pa,function(){var c=(0,g[a.i.pa])();c&&a.h.firstChild(b)&&c(b)}));f=l(g);a.a.D(f,function(c){var d=c.Mc.init,e=c.Mc.update,f=c.key;if(8===b.nodeType&&!a.h.ea[f])throw Error("The binding '"+
f+"' cannot be used with virtual elements");try{"function"==typeof d&&a.u.G(function(){var a=d(b,r(f),J,x.$data,x);if(a&&a.controlsDescendantBindings){if(u!==n)throw Error("Multiple bindings ("+u+" and "+f+") are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element.");u=f}}),"function"==typeof e&&a.$(function(){e(b,r(f),J,x.$data,x)},null,{l:b})}catch(k){throw k.message='Unable to process binding "'+f+": "+g[f]+'"\nMessage: '+k.message,
k;}})}f=u===n;return{shouldBindDescendants:f,bindingContextForDescendants:f&&x}}function q(b,c){return b&&b instanceof a.fa?b:new a.fa(b,n,n,c)}var t=a.a.Da("_subscribable"),x=a.a.Da("_ancestorBindingInfo"),B=a.a.Da("_dataDependency");a.c={};var u={script:!0,textarea:!0,template:!0};a.getBindingHandler=function(b){return a.c[b]};var J={};a.fa=function(b,c,d,e,f){function k(){var b=p?h():h,f=a.a.f(b);c?(a.a.extend(l,c),x in c&&(l[x]=c[x])):(l.$parents=[],l.$root=f,l.ko=a);l[t]=q;g?f=l.$data:(l.$rawData=
b,l.$data=f);d&&(l[d]=f);e&&e(l,c,f);if(c&&c[t]&&!a.S.o().Vb(c[t]))c[t]();m&&(l[B]=m);return l.$data}var l=this,g=b===J,h=g?n:b,p="function"==typeof h&&!a.O(h),q,m=f&&f.dataDependency;f&&f.exportDependencies?k():(q=a.xb(k),q.v(),q.ja()?q.equalityComparer=null:l[t]=n)};a.fa.prototype.createChildContext=function(b,c,d,e){!e&&c&&"object"==typeof c&&(e=c,c=e.as,d=e.extend);if(c&&e&&e.noChildContext){var f="function"==typeof b&&!a.O(b);return new a.fa(J,this,null,function(a){d&&d(a);a[c]=f?b():b},e)}return new a.fa(b,
this,c,function(a,b){a.$parentContext=b;a.$parent=b.$data;a.$parents=(b.$parents||[]).slice(0);a.$parents.unshift(a.$parent);d&&d(a)},e)};a.fa.prototype.extend=function(b,c){return new a.fa(J,this,null,function(c){a.a.extend(c,"function"==typeof b?b(c):b)},c)};var z=a.a.g.Z();c.prototype.Tc=function(){this.Kb&&this.Kb.N&&this.Kb.N.sd(this.node)};c.prototype.sd=function(b){a.a.Pa(this.kb,b);!this.kb.length&&this.H&&this.Cc()};c.prototype.Cc=function(){this.H=!0;this.yc.N&&!this.kb.length&&(this.yc.N=
null,a.a.K.yb(this.node,b),a.i.ma(this.node,a.i.pa),this.Tc())};a.i={H:"childrenComplete",pa:"descendantsComplete",subscribe:function(b,c,d,e,f){var k=a.a.g.Ub(b,z,{});k.Fa||(k.Fa=new a.T);f&&f.notifyImmediately&&k.Zb[c]&&a.u.G(d,e,[b]);return k.Fa.subscribe(d,e,c)},ma:function(b,c){var d=a.a.g.get(b,z);if(d&&(d.Zb[c]=!0,d.Fa&&d.Fa.notifySubscribers(b,c),c==a.i.H))if(d.N)d.N.Cc();else if(d.N===n&&d.Fa&&d.Fa.Wa(a.i.pa))throw Error("descendantsComplete event not supported for bindings on this node");
},Cb:function(b,d){var e=a.a.g.Ub(b,z,{});e.N||(e.N=new c(b,e,d[x]));return d[x]==e?d:d.extend(function(a){a[x]=e})}};a.Td=function(b){return(b=a.a.g.get(b,z))&&b.context};a.ib=function(b,c,d){1===b.nodeType&&a.h.Sc(b);return p(b,c,q(d))};a.ld=function(b,c,d){d=q(d);return a.ib(b,g(c,d,b),d)};a.Oa=function(a,b){1!==b.nodeType&&8!==b.nodeType||m(q(a),b)};a.vc=function(a,b,c){!v&&A.jQuery&&(v=A.jQuery);if(2>arguments.length){if(b=w.body,!b)throw Error("ko.applyBindings: could not find document.body; has the document been loaded?");
}else if(!b||1!==b.nodeType&&8!==b.nodeType)throw Error("ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node");k(q(a,c),b)};a.Dc=function(b){return!b||1!==b.nodeType&&8!==b.nodeType?n:a.Td(b)};a.Ec=function(b){return(b=a.Dc(b))?b.$data:n};a.b("bindingHandlers",a.c);a.b("bindingEvent",a.i);a.b("bindingEvent.subscribe",a.i.subscribe);a.b("bindingEvent.startPossiblyAsyncContentBinding",a.i.Cb);a.b("applyBindings",a.vc);a.b("applyBindingsToDescendants",a.Oa);
a.b("applyBindingAccessorsToNode",a.ib);a.b("applyBindingsToNode",a.ld);a.b("contextFor",a.Dc);a.b("dataFor",a.Ec)})();(function(b){function c(c,e){var k=Object.prototype.hasOwnProperty.call(f,c)?f[c]:b,l;k?k.subscribe(e):(k=f[c]=new a.T,k.subscribe(e),d(c,function(b,d){var e=!(!d||!d.synchronous);g[c]={definition:b,Gd:e};delete f[c];l||e?k.notifySubscribers(b):a.na.zb(function(){k.notifySubscribers(b)})}),l=!0)}function d(a,b){e("getConfig",[a],function(c){c?e("loadComponent",[a,c],function(a){b(a,
c)}):b(null,null)})}function e(c,d,f,l){l||(l=a.j.loaders.slice(0));var g=l.shift();if(g){var q=g[c];if(q){var t=!1;if(q.apply(g,d.concat(function(a){t?f(null):null!==a?f(a):e(c,d,f,l)}))!==b&&(t=!0,!g.suppressLoaderExceptions))throw Error("Component loaders must supply values by invoking the callback, not by returning values synchronously.");}else e(c,d,f,l)}else f(null)}var f={},g={};a.j={get:function(d,e){var f=Object.prototype.hasOwnProperty.call(g,d)?g[d]:b;f?f.Gd?a.u.G(function(){e(f.definition)}):
a.na.zb(function(){e(f.definition)}):c(d,e)},Bc:function(a){delete g[a]},oc:e};a.j.loaders=[];a.b("components",a.j);a.b("components.get",a.j.get);a.b("components.clearCachedDefinition",a.j.Bc)})();(function(){function b(b,c,d,e){function g(){0===--B&&e(h)}var h={},B=2,u=d.template;d=d.viewModel;u?f(c,u,function(c){a.j.oc("loadTemplate",[b,c],function(a){h.template=a;g()})}):g();d?f(c,d,function(c){a.j.oc("loadViewModel",[b,c],function(a){h[m]=a;g()})}):g()}function c(a,b,d){if("function"===typeof b)d(function(a){return new b(a)});
else if("function"===typeof b[m])d(b[m]);else if("instance"in b){var e=b.instance;d(function(){return e})}else"viewModel"in b?c(a,b.viewModel,d):a("Unknown viewModel value: "+b)}function d(b){switch(a.a.R(b)){case "script":return a.a.ua(b.text);case "textarea":return a.a.ua(b.value);case "template":if(e(b.content))return a.a.Ca(b.content.childNodes)}return a.a.Ca(b.childNodes)}function e(a){return A.DocumentFragment?a instanceof DocumentFragment:a&&11===a.nodeType}function f(a,b,c){"string"===typeof b.require?
T||A.require?(T||A.require)([b.require],function(a){a&&"object"===typeof a&&a.Xd&&a["default"]&&(a=a["default"]);c(a)}):a("Uses require, but no AMD loader is present"):c(b)}function g(a){return function(b){throw Error("Component '"+a+"': "+b);}}var h={};a.j.register=function(b,c){if(!c)throw Error("Invalid configuration for "+b);if(a.j.tb(b))throw Error("Component "+b+" is already registered");h[b]=c};a.j.tb=function(a){return Object.prototype.hasOwnProperty.call(h,a)};a.j.unregister=function(b){delete h[b];
a.j.Bc(b)};a.j.Fc={getConfig:function(b,c){c(a.j.tb(b)?h[b]:null)},loadComponent:function(a,c,d){var e=g(a);f(e,c,function(c){b(a,e,c,d)})},loadTemplate:function(b,c,f){b=g(b);if("string"===typeof c)f(a.a.ua(c));else if(c instanceof Array)f(c);else if(e(c))f(a.a.la(c.childNodes));else if(c.element)if(c=c.element,A.HTMLElement?c instanceof HTMLElement:c&&c.tagName&&1===c.nodeType)f(d(c));else if("string"===typeof c){var h=w.getElementById(c);h?f(d(h)):b("Cannot find element with ID "+c)}else b("Unknown element type: "+
c);else b("Unknown template value: "+c)},loadViewModel:function(a,b,d){c(g(a),b,d)}};var m="createViewModel";a.b("components.register",a.j.register);a.b("components.isRegistered",a.j.tb);a.b("components.unregister",a.j.unregister);a.b("components.defaultLoader",a.j.Fc);a.j.loaders.push(a.j.Fc);a.j.dd=h})();(function(){function b(b,e){var f=b.getAttribute("params");if(f){var f=c.parseBindingsString(f,e,b,{valueAccessors:!0,bindingParams:!0}),f=a.a.Ga(f,function(c){return a.o(c,null,{l:b})}),g=a.a.Ga(f,
function(c){var e=c.v();return c.ja()?a.o({read:function(){return a.a.f(c())},write:a.Za(e)&&function(a){c()(a)},l:b}):e});Object.prototype.hasOwnProperty.call(g,"$raw")||(g.$raw=f);return g}return{$raw:{}}}a.j.getComponentNameForNode=function(b){var c=a.a.R(b);if(a.j.tb(c)&&(-1!=c.indexOf("-")||"[object HTMLUnknownElement]"==""+b||8>=a.a.W&&b.tagName===c))return c};a.j.tc=function(c,e,f,g){if(1===e.nodeType){var h=a.j.getComponentNameForNode(e);if(h){c=c||{};if(c.component)throw Error('Cannot use the "component" binding on a custom element matching a component');
var m={name:h,params:b(e,f)};c.component=g?function(){return m}:m}}return c};var c=new a.ga;9>a.a.W&&(a.j.register=function(a){return function(b){return a.apply(this,arguments)}}(a.j.register),w.createDocumentFragment=function(b){return function(){var c=b(),f=a.j.dd,g;for(g in f);return c}}(w.createDocumentFragment))})();(function(){function b(b,c,d){c=c.template;if(!c)throw Error("Component '"+b+"' has no template");b=a.a.Ca(c);a.h.va(d,b)}function c(a,b,c){var d=a.createViewModel;return d?d.call(a,
b,c):b}var d=0;a.c.component={init:function(e,f,g,h,m){function k(){var a=l&&l.dispose;"function"===typeof a&&a.call(l);q&&q.s();p=l=q=null}var l,p,q,t=a.a.la(a.h.childNodes(e));a.h.Ea(e);a.a.K.za(e,k);a.o(function(){var g=a.a.f(f()),h,u;"string"===typeof g?h=g:(h=a.a.f(g.name),u=a.a.f(g.params));if(!h)throw Error("No component name specified");var n=a.i.Cb(e,m),z=p=++d;a.j.get(h,function(d){if(p===z){k();if(!d)throw Error("Unknown component '"+h+"'");b(h,d,e);var f=c(d,u,{element:e,templateNodes:t});
d=n.createChildContext(f,{extend:function(a){a.$component=f;a.$componentTemplateNodes=t}});f&&f.koDescendantsComplete&&(q=a.i.subscribe(e,a.i.pa,f.koDescendantsComplete,f));l=f;a.Oa(d,e)}})},null,{l:e});return{controlsDescendantBindings:!0}}};a.h.ea.component=!0})();var V={"class":"className","for":"htmlFor"};a.c.attr={update:function(b,c){var d=a.a.f(c())||{};a.a.P(d,function(c,d){d=a.a.f(d);var g=c.indexOf(":"),g="lookupNamespaceURI"in b&&0<g&&b.lookupNamespaceURI(c.substr(0,g)),h=!1===d||null===
d||d===n;h?g?b.removeAttributeNS(g,c):b.removeAttribute(c):d=d.toString();8>=a.a.W&&c in V?(c=V[c],h?b.removeAttribute(c):b[c]=d):h||(g?b.setAttributeNS(g,c,d):b.setAttribute(c,d));"name"===c&&a.a.Yc(b,h?"":d)})}};(function(){a.c.checked={after:["value","attr"],init:function(b,c,d){function e(){var e=b.checked,f=g();if(!a.S.Ya()&&(e||!m&&!a.S.qa())){var k=a.u.G(c);if(l){var q=p?k.v():k,z=t;t=f;z!==f?e&&(a.a.Na(q,f,!0),a.a.Na(q,z,!1)):a.a.Na(q,f,e);p&&a.Za(k)&&k(q)}else h&&(f===n?f=e:e||(f=n)),a.m.eb(k,
d,"checked",f,!0)}}function f(){var d=a.a.f(c()),e=g();l?(b.checked=0<=a.a.A(d,e),t=e):b.checked=h&&e===n?!!d:g()===d}var g=a.xb(function(){if(d.has("checkedValue"))return a.a.f(d.get("checkedValue"));if(q)return d.has("value")?a.a.f(d.get("value")):b.value}),h="checkbox"==b.type,m="radio"==b.type;if(h||m){var k=c(),l=h&&a.a.f(k)instanceof Array,p=!(l&&k.push&&k.splice),q=m||l,t=l?g():n;m&&!b.name&&a.c.uniqueName.init(b,function(){return!0});a.o(e,null,{l:b});a.a.B(b,"click",e);a.o(f,null,{l:b});
k=n}}};a.m.wa.checked=!0;a.c.checkedValue={update:function(b,c){b.value=a.a.f(c())}}})();a.c["class"]={update:function(b,c){var d=a.a.Db(a.a.f(c()));a.a.Eb(b,b.__ko__cssValue,!1);b.__ko__cssValue=d;a.a.Eb(b,d,!0)}};a.c.css={update:function(b,c){var d=a.a.f(c());null!==d&&"object"==typeof d?a.a.P(d,function(c,d){d=a.a.f(d);a.a.Eb(b,c,d)}):a.c["class"].update(b,c)}};a.c.enable={update:function(b,c){var d=a.a.f(c());d&&b.disabled?b.removeAttribute("disabled"):d||b.disabled||(b.disabled=!0)}};a.c.disable=
{update:function(b,c){a.c.enable.update(b,function(){return!a.a.f(c())})}};a.c.event={init:function(b,c,d,e,f){var g=c()||{};a.a.P(g,function(g){"string"==typeof g&&a.a.B(b,g,function(b){var k,l=c()[g];if(l){try{var p=a.a.la(arguments);e=f.$data;p.unshift(e);k=l.apply(e,p)}finally{!0!==k&&(b.preventDefault?b.preventDefault():b.returnValue=!1)}!1===d.get(g+"Bubble")&&(b.cancelBubble=!0,b.stopPropagation&&b.stopPropagation())}})})}};a.c.foreach={Rc:function(b){return function(){var c=b(),d=a.a.bc(c);
if(!d||"number"==typeof d.length)return{foreach:c,templateEngine:a.ba.Ma};a.a.f(c);return{foreach:d.data,as:d.as,noChildContext:d.noChildContext,includeDestroyed:d.includeDestroyed,afterAdd:d.afterAdd,beforeRemove:d.beforeRemove,afterRender:d.afterRender,beforeMove:d.beforeMove,afterMove:d.afterMove,templateEngine:a.ba.Ma}}},init:function(b,c){return a.c.template.init(b,a.c.foreach.Rc(c))},update:function(b,c,d,e,f){return a.c.template.update(b,a.c.foreach.Rc(c),d,e,f)}};a.m.Ra.foreach=!1;a.h.ea.foreach=
!0;a.c.hasfocus={init:function(b,c,d){function e(e){b.__ko_hasfocusUpdating=!0;var f=b.ownerDocument;if("activeElement"in f){var g;try{g=f.activeElement}catch(l){g=f.body}e=g===b}f=c();a.m.eb(f,d,"hasfocus",e,!0);b.__ko_hasfocusLastValue=e;b.__ko_hasfocusUpdating=!1}var f=e.bind(null,!0),g=e.bind(null,!1);a.a.B(b,"focus",f);a.a.B(b,"focusin",f);a.a.B(b,"blur",g);a.a.B(b,"focusout",g);b.__ko_hasfocusLastValue=!1},update:function(b,c){var d=!!a.a.f(c());b.__ko_hasfocusUpdating||b.__ko_hasfocusLastValue===
d||(d?b.focus():b.blur(),!d&&b.__ko_hasfocusLastValue&&b.ownerDocument.body.focus(),a.u.G(a.a.Fb,null,[b,d?"focusin":"focusout"]))}};a.m.wa.hasfocus=!0;a.c.hasFocus=a.c.hasfocus;a.m.wa.hasFocus="hasfocus";a.c.html={init:function(){return{controlsDescendantBindings:!0}},update:function(b,c){a.a.fc(b,c())}};(function(){function b(b,d,e){a.c[b]={init:function(b,c,h,m,k){var l,p,q={},t,x,n;if(d){m=h.get("as");var u=h.get("noChildContext");n=!(m&&u);q={as:m,noChildContext:u,exportDependencies:n}}x=(t=
"render"==h.get("completeOn"))||h.has(a.i.pa);a.o(function(){var h=a.a.f(c()),m=!e!==!h,u=!p,r;if(n||m!==l){x&&(k=a.i.Cb(b,k));if(m){if(!d||n)q.dataDependency=a.S.o();r=d?k.createChildContext("function"==typeof h?h:c,q):a.S.qa()?k.extend(null,q):k}u&&a.S.qa()&&(p=a.a.Ca(a.h.childNodes(b),!0));m?(u||a.h.va(b,a.a.Ca(p)),a.Oa(r,b)):(a.h.Ea(b),t||a.i.ma(b,a.i.H));l=m}},null,{l:b});return{controlsDescendantBindings:!0}}};a.m.Ra[b]=!1;a.h.ea[b]=!0}b("if");b("ifnot",!1,!0);b("with",!0)})();a.c.let={init:function(b,
c,d,e,f){c=f.extend(c);a.Oa(c,b);return{controlsDescendantBindings:!0}}};a.h.ea.let=!0;var Q={};a.c.options={init:function(b){if("select"!==a.a.R(b))throw Error("options binding applies only to SELECT elements");for(;0<b.length;)b.remove(0);return{controlsDescendantBindings:!0}},update:function(b,c,d){function e(){return a.a.jb(b.options,function(a){return a.selected})}function f(a,b,c){var d=typeof b;return"function"==d?b(a):"string"==d?a[b]:c}function g(c,d){if(x&&l)a.i.ma(b,a.i.H);else if(t.length){var e=
0<=a.a.A(t,a.w.M(d[0]));a.a.Zc(d[0],e);x&&!e&&a.u.G(a.a.Fb,null,[b,"change"])}}var h=b.multiple,m=0!=b.length&&h?b.scrollTop:null,k=a.a.f(c()),l=d.get("valueAllowUnset")&&d.has("value"),p=d.get("optionsIncludeDestroyed");c={};var q,t=[];l||(h?t=a.a.Mb(e(),a.w.M):0<=b.selectedIndex&&t.push(a.w.M(b.options[b.selectedIndex])));k&&("undefined"==typeof k.length&&(k=[k]),q=a.a.jb(k,function(b){return p||b===n||null===b||!a.a.f(b._destroy)}),d.has("optionsCaption")&&(k=a.a.f(d.get("optionsCaption")),null!==
k&&k!==n&&q.unshift(Q)));var x=!1;c.beforeRemove=function(a){b.removeChild(a)};k=g;d.has("optionsAfterRender")&&"function"==typeof d.get("optionsAfterRender")&&(k=function(b,c){g(0,c);a.u.G(d.get("optionsAfterRender"),null,[c[0],b!==Q?b:n])});a.a.ec(b,q,function(c,e,g){g.length&&(t=!l&&g[0].selected?[a.w.M(g[0])]:[],x=!0);e=b.ownerDocument.createElement("option");c===Q?(a.a.Bb(e,d.get("optionsCaption")),a.w.cb(e,n)):(g=f(c,d.get("optionsValue"),c),a.w.cb(e,a.a.f(g)),c=f(c,d.get("optionsText"),g),
a.a.Bb(e,c));return[e]},c,k);if(!l){var B;h?B=t.length&&e().length<t.length:B=t.length&&0<=b.selectedIndex?a.w.M(b.options[b.selectedIndex])!==t[0]:t.length||0<=b.selectedIndex;B&&a.u.G(a.a.Fb,null,[b,"change"])}(l||a.S.Ya())&&a.i.ma(b,a.i.H);a.a.wd(b);m&&20<Math.abs(m-b.scrollTop)&&(b.scrollTop=m)}};a.c.options.$b=a.a.g.Z();a.c.selectedOptions={init:function(b,c,d){function e(){var e=c(),f=[];a.a.D(b.getElementsByTagName("option"),function(b){b.selected&&f.push(a.w.M(b))});a.m.eb(e,d,"selectedOptions",
f)}function f(){var d=a.a.f(c()),e=b.scrollTop;d&&"number"==typeof d.length&&a.a.D(b.getElementsByTagName("option"),function(b){var c=0<=a.a.A(d,a.w.M(b));b.selected!=c&&a.a.Zc(b,c)});b.scrollTop=e}if("select"!=a.a.R(b))throw Error("selectedOptions binding applies only to SELECT elements");var g;a.i.subscribe(b,a.i.H,function(){g?e():(a.a.B(b,"change",e),g=a.o(f,null,{l:b}))},null,{notifyImmediately:!0})},update:function(){}};a.m.wa.selectedOptions=!0;a.c.style={update:function(b,c){var d=a.a.f(c()||
{});a.a.P(d,function(c,d){d=a.a.f(d);if(null===d||d===n||!1===d)d="";if(v)v(b).css(c,d);else if(/^--/.test(c))b.style.setProperty(c,d);else{c=c.replace(/-(\w)/g,function(a,b){return b.toUpperCase()});var g=b.style[c];b.style[c]=d;d===g||b.style[c]!=g||isNaN(d)||(b.style[c]=d+"px")}})}};a.c.submit={init:function(b,c,d,e,f){if("function"!=typeof c())throw Error("The value for a submit binding must be a function");a.a.B(b,"submit",function(a){var d,e=c();try{d=e.call(f.$data,b)}finally{!0!==d&&(a.preventDefault?
a.preventDefault():a.returnValue=!1)}})}};a.c.text={init:function(){return{controlsDescendantBindings:!0}},update:function(b,c){a.a.Bb(b,c())}};a.h.ea.text=!0;(function(){if(A&&A.navigator){var b=function(a){if(a)return parseFloat(a[1])},c=A.navigator.userAgent,d,e,f,g,h;(d=A.opera&&A.opera.version&&parseInt(A.opera.version()))||(h=b(c.match(/Edge\/([^ ]+)$/)))||b(c.match(/Chrome\/([^ ]+)/))||(e=b(c.match(/Version\/([^ ]+) Safari/)))||(f=b(c.match(/Firefox\/([^ ]+)/)))||(g=a.a.W||b(c.match(/MSIE ([^ ]+)/)))||
(g=b(c.match(/rv:([^ )]+)/)))}if(8<=g&&10>g)var m=a.a.g.Z(),k=a.a.g.Z(),l=function(b){var c=this.activeElement;(c=c&&a.a.g.get(c,k))&&c(b)},p=function(b,c){var d=b.ownerDocument;a.a.g.get(d,m)||(a.a.g.set(d,m,!0),a.a.B(d,"selectionchange",l));a.a.g.set(b,k,c)};a.c.textInput={init:function(b,c,k){function l(c,d){a.a.B(b,c,d)}function m(){var d=a.a.f(c());if(null===d||d===n)d="";L!==n&&d===L?a.a.setTimeout(m,4):b.value!==d&&(y=!0,b.value=d,y=!1,v=b.value)}function r(){w||(L=b.value,w=a.a.setTimeout(z,
4))}function z(){clearTimeout(w);L=w=n;var d=b.value;v!==d&&(v=d,a.m.eb(c(),k,"textInput",d))}var v=b.value,w,L,A=9==a.a.W?r:z,y=!1;g&&l("keypress",z);11>g&&l("propertychange",function(a){y||"value"!==a.propertyName||A(a)});8==g&&(l("keyup",z),l("keydown",z));p&&(p(b,A),l("dragend",r));(!g||9<=g)&&l("input",A);5>e&&"textarea"===a.a.R(b)?(l("keydown",r),l("paste",r),l("cut",r)):11>d?l("keydown",r):4>f?(l("DOMAutoComplete",z),l("dragdrop",z),l("drop",z)):h&&"number"===b.type&&l("keydown",r);l("change",
z);l("blur",z);a.o(m,null,{l:b})}};a.m.wa.textInput=!0;a.c.textinput={preprocess:function(a,b,c){c("textInput",a)}}})();a.c.uniqueName={init:function(b,c){if(c()){var d="ko_unique_"+ ++a.c.uniqueName.rd;a.a.Yc(b,d)}}};a.c.uniqueName.rd=0;a.c.using={init:function(b,c,d,e,f){var g;d.has("as")&&(g={as:d.get("as"),noChildContext:d.get("noChildContext")});c=f.createChildContext(c,g);a.Oa(c,b);return{controlsDescendantBindings:!0}}};a.h.ea.using=!0;a.c.value={init:function(b,c,d){var e=a.a.R(b),f="input"==
e;if(!f||"checkbox"!=b.type&&"radio"!=b.type){var g=[],h=d.get("valueUpdate"),m=!1,k=null;h&&("string"==typeof h?g=[h]:g=a.a.wc(h),a.a.Pa(g,"change"));var l=function(){k=null;m=!1;var e=c(),f=a.w.M(b);a.m.eb(e,d,"value",f)};!a.a.W||!f||"text"!=b.type||"off"==b.autocomplete||b.form&&"off"==b.form.autocomplete||-1!=a.a.A(g,"propertychange")||(a.a.B(b,"propertychange",function(){m=!0}),a.a.B(b,"focus",function(){m=!1}),a.a.B(b,"blur",function(){m&&l()}));a.a.D(g,function(c){var d=l;a.a.Ud(c,"after")&&
(d=function(){k=a.w.M(b);a.a.setTimeout(l,0)},c=c.substring(5));a.a.B(b,c,d)});var p;p=f&&"file"==b.type?function(){var d=a.a.f(c());null===d||d===n||""===d?b.value="":a.u.G(l)}:function(){var f=a.a.f(c()),g=a.w.M(b);if(null!==k&&f===k)a.a.setTimeout(p,0);else if(f!==g||g===n)"select"===e?(g=d.get("valueAllowUnset"),a.w.cb(b,f,g),g||f===a.w.M(b)||a.u.G(l)):a.w.cb(b,f)};if("select"===e){var q;a.i.subscribe(b,a.i.H,function(){q?d.get("valueAllowUnset")?p():l():(a.a.B(b,"change",l),q=a.o(p,null,{l:b}))},
null,{notifyImmediately:!0})}else a.a.B(b,"change",l),a.o(p,null,{l:b})}else a.ib(b,{checkedValue:c})},update:function(){}};a.m.wa.value=!0;a.c.visible={update:function(b,c){var d=a.a.f(c()),e="none"!=b.style.display;d&&!e?b.style.display="":!d&&e&&(b.style.display="none")}};a.c.hidden={update:function(b,c){a.c.visible.update(b,function(){return!a.a.f(c())})}};(function(b){a.c[b]={init:function(c,d,e,f,g){return a.c.event.init.call(this,c,function(){var a={};a[b]=d();return a},e,f,g)}}})("click");
a.ca=function(){};a.ca.prototype.renderTemplateSource=function(){throw Error("Override renderTemplateSource");};a.ca.prototype.createJavaScriptEvaluatorBlock=function(){throw Error("Override createJavaScriptEvaluatorBlock");};a.ca.prototype.makeTemplateSource=function(b,c){if("string"==typeof b){c=c||w;var d=c.getElementById(b);if(!d)throw Error("Cannot find template with ID "+b);return new a.C.F(d)}if(1==b.nodeType||8==b.nodeType)return new a.C.ia(b);throw Error("Unknown template type: "+b);};a.ca.prototype.renderTemplate=
function(a,c,d,e){a=this.makeTemplateSource(a,e);return this.renderTemplateSource(a,c,d,e)};a.ca.prototype.isTemplateRewritten=function(a,c){return!1===this.allowTemplateRewriting?!0:this.makeTemplateSource(a,c).data("isRewritten")};a.ca.prototype.rewriteTemplate=function(a,c,d){a=this.makeTemplateSource(a,d);c=c(a.text());a.text(c);a.data("isRewritten",!0)};a.b("templateEngine",a.ca);a.kc=function(){function b(b,c,d,h){b=a.m.ac(b);for(var m=a.m.Ra,k=0;k<b.length;k++){var l=b[k].key;if(Object.prototype.hasOwnProperty.call(m,
l)){var p=m[l];if("function"===typeof p){if(l=p(b[k].value))throw Error(l);}else if(!p)throw Error("This template engine does not support the '"+l+"' binding within its templates");}}d="ko.__tr_ambtns(function($context,$element){return(function(){return{ "+a.m.vb(b,{valueAccessors:!0})+" } })()},'"+d.toLowerCase()+"')";return h.createJavaScriptEvaluatorBlock(d)+c}var c=/(<([a-z]+\d*)(?:\s+(?!data-bind\s*=\s*)[a-z0-9\-]+(?:=(?:\"[^\"]*\"|\'[^\']*\'|[^>]*))?)*\s+)data-bind\s*=\s*(["'])([\s\S]*?)\3/gi,
d=/\x3c!--\s*ko\b\s*([\s\S]*?)\s*--\x3e/g;return{xd:function(b,c,d){c.isTemplateRewritten(b,d)||c.rewriteTemplate(b,function(b){return a.kc.Ld(b,c)},d)},Ld:function(a,f){return a.replace(c,function(a,c,d,e,l){return b(l,c,d,f)}).replace(d,function(a,c){return b(c,"\x3c!-- ko --\x3e","#comment",f)})},md:function(b,c){return a.aa.Xb(function(d,h){var m=d.nextSibling;m&&m.nodeName.toLowerCase()===c&&a.ib(m,b,h)})}}}();a.b("__tr_ambtns",a.kc.md);(function(){a.C={};a.C.F=function(b){if(this.F=b){var c=
a.a.R(b);this.ab="script"===c?1:"textarea"===c?2:"template"==c&&b.content&&11===b.content.nodeType?3:4}};a.C.F.prototype.text=function(){var b=1===this.ab?"text":2===this.ab?"value":"innerHTML";if(0==arguments.length)return this.F[b];var c=arguments[0];"innerHTML"===b?a.a.fc(this.F,c):this.F[b]=c};var b=a.a.g.Z()+"_";a.C.F.prototype.data=function(c){if(1===arguments.length)return a.a.g.get(this.F,b+c);a.a.g.set(this.F,b+c,arguments[1])};var c=a.a.g.Z();a.C.F.prototype.nodes=function(){var b=this.F;
if(0==arguments.length){var e=a.a.g.get(b,c)||{},f=e.lb||(3===this.ab?b.content:4===this.ab?b:n);if(!f||e.jd){var g=this.text();g&&g!==e.bb&&(f=a.a.Md(g,b.ownerDocument),a.a.g.set(b,c,{lb:f,bb:g,jd:!0}))}return f}e=arguments[0];this.ab!==n&&this.text("");a.a.g.set(b,c,{lb:e})};a.C.ia=function(a){this.F=a};a.C.ia.prototype=new a.C.F;a.C.ia.prototype.constructor=a.C.ia;a.C.ia.prototype.text=function(){if(0==arguments.length){var b=a.a.g.get(this.F,c)||{};b.bb===n&&b.lb&&(b.bb=b.lb.innerHTML);return b.bb}a.a.g.set(this.F,
c,{bb:arguments[0]})};a.b("templateSources",a.C);a.b("templateSources.domElement",a.C.F);a.b("templateSources.anonymousTemplate",a.C.ia)})();(function(){function b(b,c,d){var e;for(c=a.h.nextSibling(c);b&&(e=b)!==c;)b=a.h.nextSibling(e),d(e,b)}function c(c,d){if(c.length){var e=c[0],f=c[c.length-1],g=e.parentNode,h=a.ga.instance,m=h.preprocessNode;if(m){b(e,f,function(a,b){var c=a.previousSibling,d=m.call(h,a);d&&(a===e&&(e=d[0]||b),a===f&&(f=d[d.length-1]||c))});c.length=0;if(!e)return;e===f?c.push(e):
(c.push(e,f),a.a.Ua(c,g))}b(e,f,function(b){1!==b.nodeType&&8!==b.nodeType||a.vc(d,b)});b(e,f,function(b){1!==b.nodeType&&8!==b.nodeType||a.aa.cd(b,[d])});a.a.Ua(c,g)}}function d(a){return a.nodeType?a:0<a.length?a[0]:null}function e(b,e,f,h,m){m=m||{};var n=(b&&d(b)||f||{}).ownerDocument,B=m.templateEngine||g;a.kc.xd(f,B,n);f=B.renderTemplate(f,h,m,n);if("number"!=typeof f.length||0<f.length&&"number"!=typeof f[0].nodeType)throw Error("Template engine must return an array of DOM nodes");n=!1;switch(e){case "replaceChildren":a.h.va(b,
f);n=!0;break;case "replaceNode":a.a.Xc(b,f);n=!0;break;case "ignoreTargetNode":break;default:throw Error("Unknown renderMode: "+e);}n&&(c(f,h),m.afterRender&&a.u.G(m.afterRender,null,[f,h[m.as||"$data"]]),"replaceChildren"==e&&a.i.ma(b,a.i.H));return f}function f(b,c,d){return a.O(b)?b():"function"===typeof b?b(c,d):b}var g;a.gc=function(b){if(b!=n&&!(b instanceof a.ca))throw Error("templateEngine must inherit from ko.templateEngine");g=b};a.dc=function(b,c,h,m,t){h=h||{};if((h.templateEngine||g)==
n)throw Error("Set a template engine before calling renderTemplate");t=t||"replaceChildren";if(m){var x=d(m);return a.$(function(){var g=c&&c instanceof a.fa?c:new a.fa(c,null,null,null,{exportDependencies:!0}),n=f(b,g.$data,g),g=e(m,t,n,g,h);"replaceNode"==t&&(m=g,x=d(m))},null,{Sa:function(){return!x||!a.a.Sb(x)},l:x&&"replaceNode"==t?x.parentNode:x})}return a.aa.Xb(function(d){a.dc(b,c,h,d,"replaceNode")})};a.Qd=function(b,d,g,h,m){function x(b,c){a.u.G(a.a.ec,null,[h,b,u,g,r,c]);a.i.ma(h,a.i.H)}
function r(a,b){c(b,v);g.afterRender&&g.afterRender(b,a);v=null}function u(a,c){v=m.createChildContext(a,{as:z,noChildContext:g.noChildContext,extend:function(a){a.$index=c;z&&(a[z+"Index"]=c)}});var d=f(b,a,v);return e(h,"ignoreTargetNode",d,v,g)}var v,z=g.as,w=!1===g.includeDestroyed||a.options.foreachHidesDestroyed&&!g.includeDestroyed;if(w||g.beforeRemove||!a.Pc(d))return a.$(function(){var b=a.a.f(d)||[];"undefined"==typeof b.length&&(b=[b]);w&&(b=a.a.jb(b,function(b){return b===n||null===b||
!a.a.f(b._destroy)}));x(b)},null,{l:h});x(d.v());var A=d.subscribe(function(a){x(d(),a)},null,"arrayChange");A.l(h);return A};var h=a.a.g.Z(),m=a.a.g.Z();a.c.template={init:function(b,c){var d=a.a.f(c());if("string"==typeof d||"name"in d)a.h.Ea(b);else if("nodes"in d){d=d.nodes||[];if(a.O(d))throw Error('The "nodes" option must be a plain, non-observable array.');var e=d[0]&&d[0].parentNode;e&&a.a.g.get(e,m)||(e=a.a.Yb(d),a.a.g.set(e,m,!0));(new a.C.ia(b)).nodes(e)}else if(d=a.h.childNodes(b),0<d.length)e=
a.a.Yb(d),(new a.C.ia(b)).nodes(e);else throw Error("Anonymous template defined, but no template content was provided");return{controlsDescendantBindings:!0}},update:function(b,c,d,e,f){var g=c();c=a.a.f(g);d=!0;e=null;"string"==typeof c?c={}:(g="name"in c?c.name:b,"if"in c&&(d=a.a.f(c["if"])),d&&"ifnot"in c&&(d=!a.a.f(c.ifnot)),d&&!g&&(d=!1));"foreach"in c?e=a.Qd(g,d&&c.foreach||[],c,b,f):d?(d=f,"data"in c&&(d=f.createChildContext(c.data,{as:c.as,noChildContext:c.noChildContext,exportDependencies:!0})),
e=a.dc(g,d,c,b)):a.h.Ea(b);f=e;(c=a.a.g.get(b,h))&&"function"==typeof c.s&&c.s();a.a.g.set(b,h,!f||f.ja&&!f.ja()?n:f)}};a.m.Ra.template=function(b){b=a.m.ac(b);return 1==b.length&&b[0].unknown||a.m.Id(b,"name")?null:"This template engine does not support anonymous templates nested within its templates"};a.h.ea.template=!0})();a.b("setTemplateEngine",a.gc);a.b("renderTemplate",a.dc);a.a.Kc=function(a,c,d){if(a.length&&c.length){var e,f,g,h,m;for(e=f=0;(!d||e<d)&&(h=a[f]);++f){for(g=0;m=c[g];++g)if(h.value===
m.value){h.moved=m.index;m.moved=h.index;c.splice(g,1);e=g=0;break}e+=g}}};a.a.Pb=function(){function b(b,d,e,f,g){var h=Math.min,m=Math.max,k=[],l,p=b.length,q,n=d.length,r=n-p||1,v=p+n+1,u,w,z;for(l=0;l<=p;l++)for(w=u,k.push(u=[]),z=h(n,l+r),q=m(0,l-1);q<=z;q++)u[q]=q?l?b[l-1]===d[q-1]?w[q-1]:h(w[q]||v,u[q-1]||v)+1:q+1:l+1;h=[];m=[];r=[];l=p;for(q=n;l||q;)n=k[l][q]-1,q&&n===k[l][q-1]?m.push(h[h.length]={status:e,value:d[--q],index:q}):l&&n===k[l-1][q]?r.push(h[h.length]={status:f,value:b[--l],index:l}):
(--q,--l,g.sparse||h.push({status:"retained",value:d[q]}));a.a.Kc(r,m,!g.dontLimitMoves&&10*p);return h.reverse()}return function(a,d,e){e="boolean"===typeof e?{dontLimitMoves:e}:e||{};a=a||[];d=d||[];return a.length<d.length?b(a,d,"added","deleted",e):b(d,a,"deleted","added",e)}}();a.b("utils.compareArrays",a.a.Pb);(function(){function b(b,c,d,h,m){var k=[],l=a.$(function(){var l=c(d,m,a.a.Ua(k,b))||[];0<k.length&&(a.a.Xc(k,l),h&&a.u.G(h,null,[d,l,m]));k.length=0;a.a.Nb(k,l)},null,{l:b,Sa:function(){return!a.a.kd(k)}});
return{Y:k,$:l.ja()?l:n}}var c=a.a.g.Z(),d=a.a.g.Z();a.a.ec=function(e,f,g,h,m,k){function l(b){y={Aa:b,pb:a.ta(w++)};v.push(y);r||F.push(y)}function p(b){y=t[b];w!==y.pb.v()&&D.push(y);y.pb(w++);a.a.Ua(y.Y,e);v.push(y)}function q(b,c){if(b)for(var d=0,e=c.length;d<e;d++)a.a.D(c[d].Y,function(a){b(a,d,c[d].Aa)})}f=f||[];"undefined"==typeof f.length&&(f=[f]);h=h||{};var t=a.a.g.get(e,c),r=!t,v=[],u=0,w=0,z=[],A=[],C=[],D=[],F=[],y,I=0;if(r)a.a.D(f,l);else{if(!k||t&&t._countWaitingForRemove){var E=
a.a.Mb(t,function(a){return a.Aa});k=a.a.Pb(E,f,{dontLimitMoves:h.dontLimitMoves,sparse:!0})}for(var E=0,G,H,K;G=k[E];E++)switch(H=G.moved,K=G.index,G.status){case "deleted":for(;u<K;)p(u++);H===n&&(y=t[u],y.$&&(y.$.s(),y.$=n),a.a.Ua(y.Y,e).length&&(h.beforeRemove&&(v.push(y),I++,y.Aa===d?y=null:C.push(y)),y&&z.push.apply(z,y.Y)));u++;break;case "added":for(;w<K;)p(u++);H!==n?(A.push(v.length),p(H)):l(G.value)}for(;w<f.length;)p(u++);v._countWaitingForRemove=I}a.a.g.set(e,c,v);q(h.beforeMove,D);a.a.D(z,
h.beforeRemove?a.oa:a.removeNode);var M,O,P;try{P=e.ownerDocument.activeElement}catch(N){}if(A.length)for(;(E=A.shift())!=n;){y=v[E];for(M=n;E;)if((O=v[--E].Y)&&O.length){M=O[O.length-1];break}for(f=0;u=y.Y[f];M=u,f++)a.h.Wb(e,u,M)}for(E=0;y=v[E];E++){y.Y||a.a.extend(y,b(e,g,y.Aa,m,y.pb));for(f=0;u=y.Y[f];M=u,f++)a.h.Wb(e,u,M);!y.Ed&&m&&(m(y.Aa,y.Y,y.pb),y.Ed=!0,M=y.Y[y.Y.length-1])}P&&e.ownerDocument.activeElement!=P&&P.focus();q(h.beforeRemove,C);for(E=0;E<C.length;++E)C[E].Aa=d;q(h.afterMove,D);
q(h.afterAdd,F)}})();a.b("utils.setDomNodeChildrenFromArrayMapping",a.a.ec);a.ba=function(){this.allowTemplateRewriting=!1};a.ba.prototype=new a.ca;a.ba.prototype.constructor=a.ba;a.ba.prototype.renderTemplateSource=function(b,c,d,e){if(c=(9>a.a.W?0:b.nodes)?b.nodes():null)return a.a.la(c.cloneNode(!0).childNodes);b=b.text();return a.a.ua(b,e)};a.ba.Ma=new a.ba;a.gc(a.ba.Ma);a.b("nativeTemplateEngine",a.ba);(function(){a.$a=function(){var a=this.Hd=function(){if(!v||!v.tmpl)return 0;try{if(0<=v.tmpl.tag.tmpl.open.toString().indexOf("__"))return 2}catch(a){}return 1}();
this.renderTemplateSource=function(b,e,f,g){g=g||w;f=f||{};if(2>a)throw Error("Your version of jQuery.tmpl is too old. Please upgrade to jQuery.tmpl 1.0.0pre or later.");var h=b.data("precompiled");h||(h=b.text()||"",h=v.template(null,"{{ko_with $item.koBindingContext}}"+h+"{{/ko_with}}"),b.data("precompiled",h));b=[e.$data];e=v.extend({koBindingContext:e},f.templateOptions);e=v.tmpl(h,b,e);e.appendTo(g.createElement("div"));v.fragments={};return e};this.createJavaScriptEvaluatorBlock=function(a){return"{{ko_code ((function() { return "+
a+" })()) }}"};this.addTemplate=function(a,b){w.write("<script type='text/html' id='"+a+"'>"+b+"\x3c/script>")};0<a&&(v.tmpl.tag.ko_code={open:"__.push($1 || '');"},v.tmpl.tag.ko_with={open:"with($1) {",close:"} "})};a.$a.prototype=new a.ca;a.$a.prototype.constructor=a.$a;var b=new a.$a;0<b.Hd&&a.gc(b);a.b("jqueryTmplTemplateEngine",a.$a)})()})})();})();
/***/ }),
/* 313 */
/***/ (function(module, exports, __webpack_require__) {
var __WEBPACK_AMD_DEFINE_RESULT__;;(function(factory) {
'use strict';
/* global window: false, define: false, module: false */
var root = typeof window === 'undefined' ? null : window;
if (true) {
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(){ return factory(root); }.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
} else if (typeof module !== 'undefined') {
module.exports = factory(root);
} else {
root.DOMPurify = factory(root);
}
}(function factory(window) {
'use strict';
var DOMPurify = function(window) {
return factory(window);
};
/**
* Version label, exposed for easier checks
* if DOMPurify is up to date or not
*/
DOMPurify.version = '0.8.9';
/**
* Array of elements that DOMPurify removed during sanitation.
* Empty if nothing was removed.
*/
DOMPurify.removed = [];
if (!window || !window.document || window.document.nodeType !== 9) {
// not running in a browser, provide a factory function
// so that you can pass your own Window
DOMPurify.isSupported = false;
return DOMPurify;
}
var document = window.document;
var originalDocument = document;
var DocumentFragment = window.DocumentFragment;
var HTMLTemplateElement = window.HTMLTemplateElement;
var Node = window.Node;
var NodeFilter = window.NodeFilter;
var NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap;
var Text = window.Text;
var Comment = window.Comment;
var DOMParser = window.DOMParser;
var useDOMParser = false; // See comment below
// As per issue #47, the web-components registry is inherited by a
// new document created via createHTMLDocument. As per the spec
// (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)
// a new empty registry is used when creating a template contents owner
// document, so we use that as our parent document to ensure nothing
// is inherited.
if (typeof HTMLTemplateElement === 'function') {
var template = document.createElement('template');
if (template.content && template.content.ownerDocument) {
document = template.content.ownerDocument;
}
}
var implementation = document.implementation;
var createNodeIterator = document.createNodeIterator;
var getElementsByTagName = document.getElementsByTagName;
var createDocumentFragment = document.createDocumentFragment;
var importNode = originalDocument.importNode;
var hooks = {};
/**
* Expose whether this browser supports running the full DOMPurify.
*/
DOMPurify.isSupported =
typeof implementation.createHTMLDocument !== 'undefined' &&
document.documentMode !== 9;
/* Add properties to a lookup table */
var _addToSet = function(set, array) {
var l = array.length;
while (l--) {
if (typeof array[l] === 'string') {
array[l] = array[l].toLowerCase();
}
set[array[l]] = true;
}
return set;
};
/* Shallow clone an object */
var _cloneObj = function(object) {
var newObject = {};
var property;
for (property in object) {
if (object.hasOwnProperty(property)) {
newObject[property] = object[property];
}
}
return newObject;
};
/**
* We consider the elements and attributes below to be safe. Ideally
* don't add any new ones but feel free to remove unwanted ones.
*/
/* allowed element names */
var ALLOWED_TAGS = null;
var DEFAULT_ALLOWED_TAGS = _addToSet({}, [
// HTML
'a','abbr','acronym','address','area','article','aside','audio','b',
'bdi','bdo','big','blink','blockquote','body','br','button','canvas',
'caption','center','cite','code','col','colgroup','content','data',
'datalist','dd','decorator','del','details','dfn','dir','div','dl','dt',
'element','em','fieldset','figcaption','figure','font','footer','form',
'h1','h2','h3','h4','h5','h6','head','header','hgroup','hr','html','i',
'img','input','ins','kbd','label','legend','li','main','map','mark',
'marquee','menu','menuitem','meter','nav','nobr','ol','optgroup',
'option','output','p','pre','progress','q','rp','rt','ruby','s','samp',
'section','select','shadow','small','source','spacer','span','strike',
'strong','style','sub','summary','sup','table','tbody','td','template',
'textarea','tfoot','th','thead','time','tr','track','tt','u','ul','var',
'video','wbr',
// SVG
'svg','altglyph','altglyphdef','altglyphitem','animatecolor',
'animatemotion','animatetransform','circle','clippath','defs','desc',
'ellipse','filter','font','g','glyph','glyphref','hkern','image','line',
'lineargradient','marker','mask','metadata','mpath','path','pattern',
'polygon','polyline','radialgradient','rect','stop','switch','symbol',
'text','textpath','title','tref','tspan','view','vkern',
// SVG Filters
'feBlend','feColorMatrix','feComponentTransfer','feComposite',
'feConvolveMatrix','feDiffuseLighting','feDisplacementMap',
'feFlood','feFuncA','feFuncB','feFuncG','feFuncR','feGaussianBlur',
'feMerge','feMergeNode','feMorphology','feOffset',
'feSpecularLighting','feTile','feTurbulence',
//MathML
'math','menclose','merror','mfenced','mfrac','mglyph','mi','mlabeledtr',
'mmuliscripts','mn','mo','mover','mpadded','mphantom','mroot','mrow',
'ms','mpspace','msqrt','mystyle','msub','msup','msubsup','mtable','mtd',
'mtext','mtr','munder','munderover',
//Text
'#text'
]);
/* Allowed attribute names */
var ALLOWED_ATTR = null;
var DEFAULT_ALLOWED_ATTR = _addToSet({}, [
// HTML
'accept','action','align','alt','autocomplete','background','bgcolor',
'border','cellpadding','cellspacing','checked','cite','class','clear','color',
'cols','colspan','coords','datetime','default','dir','disabled',
'download','enctype','face','for','headers','height','hidden','high','href',
'hreflang','id','ismap','label','lang','list','loop', 'low','max',
'maxlength','media','method','min','multiple','name','noshade','novalidate',
'nowrap','open','optimum','pattern','placeholder','poster','preload','pubdate',
'radiogroup','readonly','rel','required','rev','reversed','role','rows',
'rowspan','spellcheck','scope','selected','shape','size','span',
'srclang','start','src','step','style','summary','tabindex','title',
'type','usemap','valign','value','width','xmlns',
// SVG
'accent-height','accumulate','additivive','alignment-baseline',
'ascent','attributename','attributetype','azimuth','basefrequency',
'baseline-shift','begin','bias','by','clip','clip-path','clip-rule',
'color','color-interpolation','color-interpolation-filters','color-profile',
'color-rendering','cx','cy','d','dx','dy','diffuseconstant','direction',
'display','divisor','dur','edgemode','elevation','end','fill','fill-opacity',
'fill-rule','filter','flood-color','flood-opacity','font-family','font-size',
'font-size-adjust','font-stretch','font-style','font-variant','font-weight',
'fx', 'fy','g1','g2','glyph-name','glyphref','gradientunits','gradienttransform',
'image-rendering','in','in2','k','k1','k2','k3','k4','kerning','keypoints',
'keysplines','keytimes','lengthadjust','letter-spacing','kernelmatrix',
'kernelunitlength','lighting-color','local','marker-end','marker-mid',
'marker-start','markerheight','markerunits','markerwidth','maskcontentunits',
'maskunits','max','mask','mode','min','numoctaves','offset','operator',
'opacity','order','orient','orientation','origin','overflow','paint-order',
'path','pathlength','patterncontentunits','patterntransform','patternunits',
'points','preservealpha','r','rx','ry','radius','refx','refy','repeatcount',
'repeatdur','restart','result','rotate','scale','seed','shape-rendering',
'specularconstant','specularexponent','spreadmethod','stddeviation','stitchtiles',
'stop-color','stop-opacity','stroke-dasharray','stroke-dashoffset','stroke-linecap',
'stroke-linejoin','stroke-miterlimit','stroke-opacity','stroke','stroke-width',
'surfacescale','targetx','targety','transform','text-anchor','text-decoration',
'text-rendering','textlength','u1','u2','unicode','values','viewbox',
'visibility','vert-adv-y','vert-origin-x','vert-origin-y','word-spacing',
'wrap','writing-mode','xchannelselector','ychannelselector','x','x1','x2',
'y','y1','y2','z','zoomandpan',
// MathML
'accent','accentunder','bevelled','close','columnsalign','columnlines',
'columnspan','denomalign','depth','display','displaystyle','fence',
'frame','largeop','length','linethickness','lspace','lquote',
'mathbackground','mathcolor','mathsize','mathvariant','maxsize',
'minsize','movablelimits','notation','numalign','open','rowalign',
'rowlines','rowspacing','rowspan','rspace','rquote','scriptlevel',
'scriptminsize','scriptsizemultiplier','selection','separator',
'separators','stretchy','subscriptshift','supscriptshift','symmetric',
'voffset',
// XML
'xlink:href','xml:id','xlink:title','xml:space','xmlns:xlink'
]);
/* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */
var FORBID_TAGS = null;
/* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */
var FORBID_ATTR = null;
/* Decide if ARIA attributes are okay */
var ALLOW_ARIA_ATTR = true;
/* Decide if custom data attributes are okay */
var ALLOW_DATA_ATTR = true;
/* Decide if unknown protocols are okay */
var ALLOW_UNKNOWN_PROTOCOLS = false;
/* Output should be safe for jQuery's $() factory? */
var SAFE_FOR_JQUERY = false;
/* Output should be safe for common template engines.
* This means, DOMPurify removes data attributes, mustaches and ERB
*/
var SAFE_FOR_TEMPLATES = false;
/* Specify template detection regex for SAFE_FOR_TEMPLATES mode */
var MUSTACHE_EXPR = /\{\{[\s\S]*|[\s\S]*\}\}/gm;
var ERB_EXPR = /<%[\s\S]*|[\s\S]*%>/gm;
/* Decide if document with <html>... should be returned */
var WHOLE_DOCUMENT = false;
/* Decide if all elements (e.g. style, script) must be children of
* document.body. By default, browsers might move them to document.head */
var FORCE_BODY = false;
/* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html string.
* If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead
*/
var RETURN_DOM = false;
/* Decide if a DOM `DocumentFragment` should be returned, instead of a html string */
var RETURN_DOM_FRAGMENT = false;
/* If `RETURN_DOM` or `RETURN_DOM_FRAGMENT` is enabled, decide if the returned DOM
* `Node` is imported into the current `Document`. If this flag is not enabled the
* `Node` will belong (its ownerDocument) to a fresh `HTMLDocument`, created by
* DOMPurify. */
var RETURN_DOM_IMPORT = false;
/* Output should be free from DOM clobbering attacks? */
var SANITIZE_DOM = true;
/* Keep element content when removing element? */
var KEEP_CONTENT = true;
/* Tags to ignore content of when KEEP_CONTENT is true */
var FORBID_CONTENTS = _addToSet({}, [
'audio', 'head', 'math', 'script', 'style', 'template', 'svg', 'video'
]);
/* Tags that are safe for data: URIs */
var DATA_URI_TAGS = _addToSet({}, [
'audio', 'video', 'img', 'source', 'image'
]);
/* Attributes safe for values like "javascript:" */
var URI_SAFE_ATTRIBUTES = _addToSet({}, [
'alt','class','for','id','label','name','pattern','placeholder',
'summary','title','value','style','xmlns'
]);
/* Keep a reference to config to pass to hooks */
var CONFIG = null;
/* Ideally, do not touch anything below this line */
/* ______________________________________________ */
var formElement = document.createElement('form');
/**
* _parseConfig
*
* @param optional config literal
*/
var _parseConfig = function(cfg) {
/* Shield configuration object from tampering */
if (typeof cfg !== 'object') {
cfg = {};
}
/* Set configuration parameters */
ALLOWED_TAGS = 'ALLOWED_TAGS' in cfg ?
_addToSet({}, cfg.ALLOWED_TAGS) : DEFAULT_ALLOWED_TAGS;
ALLOWED_ATTR = 'ALLOWED_ATTR' in cfg ?
_addToSet({}, cfg.ALLOWED_ATTR) : DEFAULT_ALLOWED_ATTR;
FORBID_TAGS = 'FORBID_TAGS' in cfg ?
_addToSet({}, cfg.FORBID_TAGS) : {};
FORBID_ATTR = 'FORBID_ATTR' in cfg ?
_addToSet({}, cfg.FORBID_ATTR) : {};
ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true
ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true
ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false
SAFE_FOR_JQUERY = cfg.SAFE_FOR_JQUERY || false; // Default false
SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false
WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false
RETURN_DOM = cfg.RETURN_DOM || false; // Default false
RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false
RETURN_DOM_IMPORT = cfg.RETURN_DOM_IMPORT || false; // Default false
FORCE_BODY = cfg.FORCE_BODY || false; // Default false
SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true
KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true
if (SAFE_FOR_TEMPLATES) {
ALLOW_DATA_ATTR = false;
}
if (RETURN_DOM_FRAGMENT) {
RETURN_DOM = true;
}
/* Merge configuration parameters */
if (cfg.ADD_TAGS) {
if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {
ALLOWED_TAGS = _cloneObj(ALLOWED_TAGS);
}
_addToSet(ALLOWED_TAGS, cfg.ADD_TAGS);
}
if (cfg.ADD_ATTR) {
if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {
ALLOWED_ATTR = _cloneObj(ALLOWED_ATTR);
}
_addToSet(ALLOWED_ATTR, cfg.ADD_ATTR);
}
if (cfg.ADD_URI_SAFE_ATTR) {
_addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR);
}
/* Add #text in case KEEP_CONTENT is set to true */
if (KEEP_CONTENT) { ALLOWED_TAGS['#text'] = true; }
// Prevent further manipulation of configuration.
// Not available in IE8, Safari 5, etc.
if (Object && 'freeze' in Object) { Object.freeze(cfg); }
CONFIG = cfg;
};
/**
* _forceRemove
*
* @param a DOM node
*/
var _forceRemove = function(node) {
DOMPurify.removed.push({element: node});
try {
node.parentNode.removeChild(node);
} catch (e) {
node.outerHTML = '';
}
};
/**
* _removeAttribute
*
* @param an Attribute name
* @param a DOM node
*/
var _removeAttribute = function(name, node) {
DOMPurify.removed.push({
attribute: node.getAttributeNode(name),
from: node
});
node.removeAttribute(name);
};
/**
* _initDocument
*
* @param a string of dirty markup
* @return a DOM, filled with the dirty markup
*/
var _initDocument = function(dirty) {
/* Create a HTML document */
var doc, body;
/* Fill body with bogus element */
if (FORCE_BODY) {
dirty = '<remove></remove>' + dirty;
}
/* Use DOMParser to workaround Firefox bug (see comment below) */
if (useDOMParser) {
try {
doc = new DOMParser().parseFromString(dirty, 'text/html');
} catch (e) {}
}
/* Otherwise use createHTMLDocument, because DOMParser is unsafe in
Safari (see comment below) */
if (!doc || !doc.documentElement) {
doc = implementation.createHTMLDocument('');
body = doc.body;
body.parentNode.removeChild(body.parentNode.firstElementChild);
body.outerHTML = dirty;
}
/* Work on whole document or just its body */
return getElementsByTagName.call(doc,
WHOLE_DOCUMENT ? 'html' : 'body')[0];
};
// Safari 10.1+ (unfixed as of time of writing) has a catastrophic bug in
// its implementation of DOMParser such that the following executes the
// JavaScript:
//
// new DOMParser()
// .parseFromString('<svg onload=alert(document.domain)>', 'text/html');
//
// However, Firefox uses a different parser for innerHTML rather than
// DOMParser (see https://bugzilla.mozilla.org/show_bug.cgi?id=1205631)
// which means that you *must* use DOMParser, otherwise the output may
// not be safe if used in a document.write context later.
//
// So we feature detect the Firefox bug and use the DOMParser if necessary.
if (DOMPurify.isSupported) {
(function () {
var doc = _initDocument('<svg><p><style><img src="</style><img src=x onerror=alert(1)//">');
if (doc.querySelector('svg img')) {
useDOMParser = true;
}
}());
}
/**
* _createIterator
*
* @param document/fragment to create iterator for
* @return iterator instance
*/
var _createIterator = function(root) {
return createNodeIterator.call(root.ownerDocument || root,
root,
NodeFilter.SHOW_ELEMENT
| NodeFilter.SHOW_COMMENT
| NodeFilter.SHOW_TEXT,
function() { return NodeFilter.FILTER_ACCEPT; },
false
);
};
/**
* _isClobbered
*
* @param element to check for clobbering attacks
* @return true if clobbered, false if safe
*/
var _isClobbered = function(elm) {
if (elm instanceof Text || elm instanceof Comment) {
return false;
}
if ( typeof elm.nodeName !== 'string'
|| typeof elm.textContent !== 'string'
|| typeof elm.removeChild !== 'function'
|| !(elm.attributes instanceof NamedNodeMap)
|| typeof elm.removeAttribute !== 'function'
|| typeof elm.setAttribute !== 'function'
) {
return true;
}
return false;
};
/**
* _isNode
*
* @param object to check whether it's a DOM node
* @return true is object is a DOM node
*/
var _isNode = function(obj) {
return (
typeof Node === "object" ? obj instanceof Node : obj
&& typeof obj === "object" && typeof obj.nodeType === "number"
&& typeof obj.nodeName==="string"
);
};
/**
* _sanitizeElements
*
* @protect nodeName
* @protect textContent
* @protect removeChild
*
* @param node to check for permission to exist
* @return true if node was killed, false if left alive
*/
var _sanitizeElements = function(currentNode) {
var tagName, content;
/* Execute a hook if present */
_executeHook('beforeSanitizeElements', currentNode, null);
/* Check if element is clobbered or can clobber */
if (_isClobbered(currentNode)) {
_forceRemove(currentNode);
return true;
}
/* Now let's check the element's type and name */
tagName = currentNode.nodeName.toLowerCase();
/* Execute a hook if present */
_executeHook('uponSanitizeElement', currentNode, {
tagName: tagName,
allowedTags: ALLOWED_TAGS
});
/* Remove element if anything forbids its presence */
if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {
/* Keep content except for black-listed elements */
if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]
&& typeof currentNode.insertAdjacentHTML === 'function') {
try {
currentNode.insertAdjacentHTML('AfterEnd', currentNode.innerHTML);
} catch (e) {}
}
_forceRemove(currentNode);
return true;
}
/* Convert markup to cover jQuery behavior */
if (SAFE_FOR_JQUERY && !currentNode.firstElementChild &&
(!currentNode.content || !currentNode.content.firstElementChild) &&
/</g.test(currentNode.textContent)) {
DOMPurify.removed.push({element: currentNode.cloneNode()});
currentNode.innerHTML = currentNode.textContent.replace(/</g, '&lt;');
}
/* Sanitize element content to be template-safe */
if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {
/* Get the element's text content */
content = currentNode.textContent;
content = content.replace(MUSTACHE_EXPR, ' ');
content = content.replace(ERB_EXPR, ' ');
if (currentNode.textContent !== content) {
DOMPurify.removed.push({element: currentNode.cloneNode()});
currentNode.textContent = content;
}
}
/* Execute a hook if present */
_executeHook('afterSanitizeElements', currentNode, null);
return false;
};
var DATA_ATTR = /^data-[\-\w.\u00B7-\uFFFF]/;
var ARIA_ATTR = /^aria-[\-\w]+$/;
var IS_ALLOWED_URI = /^(?:(?:(?:f|ht)tps?|mailto|tel):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i;
var IS_SCRIPT_OR_DATA = /^(?:\w+script|data):/i;
/* This needs to be extensive thanks to Webkit/Blink's behavior */
var ATTR_WHITESPACE = /[\x00-\x20\xA0\u1680\u180E\u2000-\u2029\u205f\u3000]/g;
/**
* _sanitizeAttributes
*
* @protect attributes
* @protect nodeName
* @protect removeAttribute
* @protect setAttribute
*
* @param node to sanitize
* @return void
*/
var _sanitizeAttributes = function(currentNode) {
var attr, name, value, lcName, idAttr, attributes, hookEvent, l;
/* Execute a hook if present */
_executeHook('beforeSanitizeAttributes', currentNode, null);
attributes = currentNode.attributes;
/* Check if we have attributes; if not we might have a text node */
if (!attributes) { return; }
hookEvent = {
attrName: '',
attrValue: '',
keepAttr: true,
allowedAttributes: ALLOWED_ATTR
};
l = attributes.length;
/* Go backwards over all attributes; safely remove bad ones */
while (l--) {
attr = attributes[l];
name = attr.name;
value = attr.value.trim();
lcName = name.toLowerCase();
/* Execute a hook if present */
hookEvent.attrName = lcName;
hookEvent.attrValue = value;
hookEvent.keepAttr = true;
_executeHook('uponSanitizeAttribute', currentNode, hookEvent );
value = hookEvent.attrValue;
/* Remove attribute */
// Safari (iOS + Mac), last tested v8.0.5, crashes if you try to
// remove a "name" attribute from an <img> tag that has an "id"
// attribute at the time.
if (lcName === 'name' &&
currentNode.nodeName === 'IMG' && attributes.id) {
idAttr = attributes.id;
attributes = Array.prototype.slice.apply(attributes);
_removeAttribute('id', currentNode);
_removeAttribute(name, currentNode);
if (attributes.indexOf(idAttr) > l) {
currentNode.setAttribute('id', idAttr.value);
}
} else if (
// This works around a bug in Safari, where input[type=file]
// cannot be dynamically set after type has been removed
currentNode.nodeName === 'INPUT' && lcName === 'type' &&
value === 'file' && (ALLOWED_ATTR[lcName] || !FORBID_ATTR[lcName])) {
continue;
} else {
// This avoids a crash in Safari v9.0 with double-ids.
// The trick is to first set the id to be empty and then to
// remove the attribute
if (name === 'id') {
currentNode.setAttribute(name, '');
}
_removeAttribute(name, currentNode);
}
/* Did the hooks approve of the attribute? */
if (!hookEvent.keepAttr) {
continue;
}
/* Make sure attribute cannot clobber */
if (SANITIZE_DOM &&
(lcName === 'id' || lcName === 'name') &&
(value in window || value in document || value in formElement)) {
continue;
}
/* Sanitize attribute content to be template-safe */
if (SAFE_FOR_TEMPLATES) {
value = value.replace(MUSTACHE_EXPR, ' ');
value = value.replace(ERB_EXPR, ' ');
}
/* Allow valid data-* attributes: At least one character after "-"
(https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)
XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)
We don't need to check the value; it's always URI safe. */
if (ALLOW_DATA_ATTR && DATA_ATTR.test(lcName)) {
// This attribute is safe
}
else if (ALLOW_ARIA_ATTR && ARIA_ATTR.test(lcName)) {
// This attribute is safe
}
/* Otherwise, check the name is permitted */
else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {
continue;
}
/* Check value is safe. First, is attr inert? If so, is safe */
else if (URI_SAFE_ATTRIBUTES[lcName]) {
// This attribute is safe
}
/* Check no script, data or unknown possibly unsafe URI
unless we know URI values are safe for that attribute */
else if (IS_ALLOWED_URI.test(value.replace(ATTR_WHITESPACE,''))) {
// This attribute is safe
}
/* Keep image data URIs alive if src/xlink:href is allowed */
else if (
(lcName === 'src' || lcName === 'xlink:href') &&
value.indexOf('data:') === 0 &&
DATA_URI_TAGS[currentNode.nodeName.toLowerCase()]) {
// This attribute is safe
}
/* Allow unknown protocols: This provides support for links that
are handled by protocol handlers which may be unknown ahead of
time, e.g. fb:, spotify: */
else if (
ALLOW_UNKNOWN_PROTOCOLS &&
!IS_SCRIPT_OR_DATA.test(value.replace(ATTR_WHITESPACE,''))) {
// This attribute is safe
}
/* Check for binary attributes */
else if (!value) {
// binary attributes are safe at this point
}
/* Anything else, presume unsafe, do not add it back */
else {
continue;
}
/* Handle invalid data-* attribute set by try-catching it */
try {
currentNode.setAttribute(name, value);
DOMPurify.removed.pop();
} catch (e) {}
}
/* Execute a hook if present */
_executeHook('afterSanitizeAttributes', currentNode, null);
};
/**
* _sanitizeShadowDOM
*
* @param fragment to iterate over recursively
* @return void
*/
var _sanitizeShadowDOM = function(fragment) {
var shadowNode;
var shadowIterator = _createIterator(fragment);
/* Execute a hook if present */
_executeHook('beforeSanitizeShadowDOM', fragment, null);
while ( (shadowNode = shadowIterator.nextNode()) ) {
/* Execute a hook if present */
_executeHook('uponSanitizeShadowNode', shadowNode, null);
/* Sanitize tags and elements */
if (_sanitizeElements(shadowNode)) {
continue;
}
/* Deep shadow DOM detected */
if (shadowNode.content instanceof DocumentFragment) {
_sanitizeShadowDOM(shadowNode.content);
}
/* Check attributes, sanitize if necessary */
_sanitizeAttributes(shadowNode);
}
/* Execute a hook if present */
_executeHook('afterSanitizeShadowDOM', fragment, null);
};
/**
* _executeHook
* Execute user configurable hooks
*
* @param {String} entryPoint Name of the hook's entry point
* @param {Node} currentNode
*/
var _executeHook = function(entryPoint, currentNode, data) {
if (!hooks[entryPoint]) { return; }
hooks[entryPoint].forEach(function(hook) {
hook.call(DOMPurify, currentNode, data, CONFIG);
});
};
/**
* sanitize
* Public method providing core sanitation functionality
*
* @param {String|Node} dirty string or DOM node
* @param {Object} configuration object
*/
DOMPurify.sanitize = function(dirty, cfg) {
var body, importedNode, currentNode, oldNode, nodeIterator, returnNode;
/* Make sure we have a string to sanitize.
DO NOT return early, as this will return the wrong type if
the user has requested a DOM object rather than a string */
if (!dirty) {
dirty = '<!-->';
}
/* Stringify, in case dirty is an object */
if (typeof dirty !== 'string' && !_isNode(dirty)) {
if (typeof dirty.toString !== 'function') {
throw new TypeError('toString is not a function');
} else {
dirty = dirty.toString();
}
}
/* Check we can run. Otherwise fall back or ignore */
if (!DOMPurify.isSupported) {
if (typeof window.toStaticHTML === 'object'
|| typeof window.toStaticHTML === 'function') {
if (typeof dirty === 'string') {
return window.toStaticHTML(dirty);
} else if (_isNode(dirty)) {
return window.toStaticHTML(dirty.outerHTML);
}
}
return dirty;
}
/* Assign config vars */
_parseConfig(cfg);
/* Clean up removed elements */
DOMPurify.removed = [];
if (dirty instanceof Node) {
/* If dirty is a DOM element, append to an empty document to avoid
elements being stripped by the parser */
body = _initDocument('<!-->');
importedNode = body.ownerDocument.importNode(dirty, true);
if (importedNode.nodeType === 1 && importedNode.nodeName === 'BODY') {
/* Node is already a body, use as is */
body = importedNode;
} else {
body.appendChild(importedNode);
}
} else {
/* Exit directly if we have nothing to do */
if (!RETURN_DOM && !WHOLE_DOCUMENT && dirty.indexOf('<') === -1) {
return dirty;
}
/* Initialize the document to work on */
body = _initDocument(dirty);
/* Check we have a DOM node from the data */
if (!body) {
return RETURN_DOM ? null : '';
}
}
/* Remove first element node (ours) if FORCE_BODY is set */
if (FORCE_BODY) {
_forceRemove(body.firstChild);
}
/* Get node iterator */
nodeIterator = _createIterator(body);
/* Now start iterating over the created document */
while ( (currentNode = nodeIterator.nextNode()) ) {
/* Fix IE's strange behavior with manipulated textNodes #89 */
if (currentNode.nodeType === 3 && currentNode === oldNode) {
continue;
}
/* Sanitize tags and elements */
if (_sanitizeElements(currentNode)) {
continue;
}
/* Shadow DOM detected, sanitize it */
if (currentNode.content instanceof DocumentFragment) {
_sanitizeShadowDOM(currentNode.content);
}
/* Check attributes, sanitize if necessary */
_sanitizeAttributes(currentNode);
oldNode = currentNode;
}
/* Return sanitized string or DOM */
if (RETURN_DOM) {
if (RETURN_DOM_FRAGMENT) {
returnNode = createDocumentFragment.call(body.ownerDocument);
while (body.firstChild) {
returnNode.appendChild(body.firstChild);
}
} else {
returnNode = body;
}
if (RETURN_DOM_IMPORT) {
/* adoptNode() is not used because internal state is not reset
(e.g. the past names map of a HTMLFormElement), this is safe
in theory but we would rather not risk another attack vector.
The state that is cloned by importNode() is explicitly defined
by the specs. */
returnNode = importNode.call(originalDocument, returnNode, true);
}
return returnNode;
}
return WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;
};
/**
* addHook
* Public method to add DOMPurify hooks
*
* @param {String} entryPoint
* @param {Function} hookFunction
*/
DOMPurify.addHook = function(entryPoint, hookFunction) {
if (typeof hookFunction !== 'function') { return; }
hooks[entryPoint] = hooks[entryPoint] || [];
hooks[entryPoint].push(hookFunction);
};
/**
* removeHook
* Public method to remove a DOMPurify hook at a given entryPoint
* (pops it from the stack of hooks if more are present)
*
* @param {String} entryPoint
* @return void
*/
DOMPurify.removeHook = function(entryPoint) {
if (hooks[entryPoint]) {
hooks[entryPoint].pop();
}
};
/**
* removeHooks
* Public method to remove all DOMPurify hooks at a given entryPoint
*
* @param {String} entryPoint
* @return void
*/
DOMPurify.removeHooks = function(entryPoint) {
if (hooks[entryPoint]) {
hooks[entryPoint] = [];
}
};
/**
* removeAllHooks
* Public method to remove all DOMPurify hooks
*
* @return void
*/
DOMPurify.removeAllHooks = function() {
hooks = {};
};
return DOMPurify;
}));
/***/ }),
/* 314 */
/***/ (function(module, exports, __webpack_require__) {
var Keyboard = __webpack_require__(315);
var Locale = __webpack_require__(316);
var KeyCombo = __webpack_require__(317);
var keyboard = new Keyboard();
keyboard.setLocale('us', __webpack_require__(318));
exports = module.exports = keyboard;
exports.Keyboard = Keyboard;
exports.Locale = Locale;
exports.KeyCombo = KeyCombo;
/***/ }),
/* 315 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {
var Locale = __webpack_require__(316);
var KeyCombo = __webpack_require__(317);
function Keyboard(targetWindow, targetElement, platform, userAgent) {
this._locale = null;
this._currentContext = null;
this._contexts = {};
this._listeners = [];
this._appliedListeners = [];
this._locales = {};
this._targetElement = null;
this._targetWindow = null;
this._targetPlatform = '';
this._targetUserAgent = '';
this._isModernBrowser = false;
this._targetKeyDownBinding = null;
this._targetKeyUpBinding = null;
this._targetResetBinding = null;
this._paused = false;
this._callerHandler = null;
this.setContext('global');
this.watch(targetWindow, targetElement, platform, userAgent);
}
Keyboard.prototype.setLocale = function(localeName, localeBuilder) {
var locale = null;
if (typeof localeName === 'string') {
if (localeBuilder) {
locale = new Locale(localeName);
localeBuilder(locale, this._targetPlatform, this._targetUserAgent);
} else {
locale = this._locales[localeName] || null;
}
} else {
locale = localeName;
localeName = locale._localeName;
}
this._locale = locale;
this._locales[localeName] = locale;
if (locale) {
this._locale.pressedKeys = locale.pressedKeys;
}
};
Keyboard.prototype.getLocale = function(localName) {
localName || (localName = this._locale.localeName);
return this._locales[localName] || null;
};
Keyboard.prototype.bind = function(keyComboStr, pressHandler, releaseHandler, preventRepeatByDefault) {
if (keyComboStr === null || typeof keyComboStr === 'function') {
preventRepeatByDefault = releaseHandler;
releaseHandler = pressHandler;
pressHandler = keyComboStr;
keyComboStr = null;
}
if (
keyComboStr &&
typeof keyComboStr === 'object' &&
typeof keyComboStr.length === 'number'
) {
for (var i = 0; i < keyComboStr.length; i += 1) {
this.bind(keyComboStr[i], pressHandler, releaseHandler);
}
return;
}
this._listeners.push({
keyCombo : keyComboStr ? new KeyCombo(keyComboStr) : null,
pressHandler : pressHandler || null,
releaseHandler : releaseHandler || null,
preventRepeat : preventRepeatByDefault || false,
preventRepeatByDefault : preventRepeatByDefault || false
});
};
Keyboard.prototype.addListener = Keyboard.prototype.bind;
Keyboard.prototype.on = Keyboard.prototype.bind;
Keyboard.prototype.unbind = function(keyComboStr, pressHandler, releaseHandler) {
if (keyComboStr === null || typeof keyComboStr === 'function') {
releaseHandler = pressHandler;
pressHandler = keyComboStr;
keyComboStr = null;
}
if (
keyComboStr &&
typeof keyComboStr === 'object' &&
typeof keyComboStr.length === 'number'
) {
for (var i = 0; i < keyComboStr.length; i += 1) {
this.unbind(keyComboStr[i], pressHandler, releaseHandler);
}
return;
}
for (var i = 0; i < this._listeners.length; i += 1) {
var listener = this._listeners[i];
var comboMatches = !keyComboStr && !listener.keyCombo ||
listener.keyCombo && listener.keyCombo.isEqual(keyComboStr);
var pressHandlerMatches = !pressHandler && !releaseHandler ||
!pressHandler && !listener.pressHandler ||
pressHandler === listener.pressHandler;
var releaseHandlerMatches = !pressHandler && !releaseHandler ||
!releaseHandler && !listener.releaseHandler ||
releaseHandler === listener.releaseHandler;
if (comboMatches && pressHandlerMatches && releaseHandlerMatches) {
this._listeners.splice(i, 1);
i -= 1;
}
}
};
Keyboard.prototype.removeListener = Keyboard.prototype.unbind;
Keyboard.prototype.off = Keyboard.prototype.unbind;
Keyboard.prototype.setContext = function(contextName) {
if(this._locale) { this.releaseAllKeys(); }
if (!this._contexts[contextName]) {
this._contexts[contextName] = [];
}
this._listeners = this._contexts[contextName];
this._currentContext = contextName;
};
Keyboard.prototype.getContext = function() {
return this._currentContext;
};
Keyboard.prototype.withContext = function(contextName, callback) {
var previousContextName = this.getContext();
this.setContext(contextName);
callback();
this.setContext(previousContextName);
};
Keyboard.prototype.watch = function(targetWindow, targetElement, targetPlatform, targetUserAgent) {
var _this = this;
this.stop();
if (!targetWindow) {
if (!global.addEventListener && !global.attachEvent) {
throw new Error('Cannot find global functions addEventListener or attachEvent.');
}
targetWindow = global;
}
if (typeof targetWindow.nodeType === 'number') {
targetUserAgent = targetPlatform;
targetPlatform = targetElement;
targetElement = targetWindow;
targetWindow = global;
}
if (!targetWindow.addEventListener && !targetWindow.attachEvent) {
throw new Error('Cannot find addEventListener or attachEvent methods on targetWindow.');
}
this._isModernBrowser = !!targetWindow.addEventListener;
var userAgent = targetWindow.navigator && targetWindow.navigator.userAgent || '';
var platform = targetWindow.navigator && targetWindow.navigator.platform || '';
targetElement && targetElement !== null || (targetElement = targetWindow.document);
targetPlatform && targetPlatform !== null || (targetPlatform = platform);
targetUserAgent && targetUserAgent !== null || (targetUserAgent = userAgent);
this._targetKeyDownBinding = function(event) {
_this.pressKey(event.keyCode, event);
_this._handleCommandBug(event, platform);
};
this._targetKeyUpBinding = function(event) {
_this.releaseKey(event.keyCode, event);
};
this._targetResetBinding = function(event) {
_this.releaseAllKeys(event)
};
this._bindEvent(targetElement, 'keydown', this._targetKeyDownBinding);
this._bindEvent(targetElement, 'keyup', this._targetKeyUpBinding);
this._bindEvent(targetWindow, 'focus', this._targetResetBinding);
this._bindEvent(targetWindow, 'blur', this._targetResetBinding);
this._targetElement = targetElement;
this._targetWindow = targetWindow;
this._targetPlatform = targetPlatform;
this._targetUserAgent = targetUserAgent;
};
Keyboard.prototype.stop = function() {
var _this = this;
if (!this._targetElement || !this._targetWindow) { return; }
this._unbindEvent(this._targetElement, 'keydown', this._targetKeyDownBinding);
this._unbindEvent(this._targetElement, 'keyup', this._targetKeyUpBinding);
this._unbindEvent(this._targetWindow, 'focus', this._targetResetBinding);
this._unbindEvent(this._targetWindow, 'blur', this._targetResetBinding);
this._targetWindow = null;
this._targetElement = null;
};
Keyboard.prototype.pressKey = function(keyCode, event) {
if (this._paused) { return; }
if (!this._locale) { throw new Error('Locale not set'); }
this._locale.pressKey(keyCode);
this._applyBindings(event);
};
Keyboard.prototype.releaseKey = function(keyCode, event) {
if (this._paused) { return; }
if (!this._locale) { throw new Error('Locale not set'); }
this._locale.releaseKey(keyCode);
this._clearBindings(event);
};
Keyboard.prototype.releaseAllKeys = function(event) {
if (this._paused) { return; }
if (!this._locale) { throw new Error('Locale not set'); }
this._locale.pressedKeys.length = 0;
this._clearBindings(event);
};
Keyboard.prototype.pause = function() {
if (this._paused) { return; }
if (this._locale) { this.releaseAllKeys(); }
this._paused = true;
};
Keyboard.prototype.resume = function() {
this._paused = false;
};
Keyboard.prototype.reset = function() {
this.releaseAllKeys();
this._listeners.length = 0;
};
Keyboard.prototype._bindEvent = function(targetElement, eventName, handler) {
return this._isModernBrowser ?
targetElement.addEventListener(eventName, handler, false) :
targetElement.attachEvent('on' + eventName, handler);
};
Keyboard.prototype._unbindEvent = function(targetElement, eventName, handler) {
return this._isModernBrowser ?
targetElement.removeEventListener(eventName, handler, false) :
targetElement.detachEvent('on' + eventName, handler);
};
Keyboard.prototype._getGroupedListeners = function() {
var listenerGroups = [];
var listenerGroupMap = [];
var listeners = this._listeners;
if (this._currentContext !== 'global') {
listeners = [].concat(listeners, this._contexts.global);
}
listeners.sort(function(a, b) {
return (b.keyCombo ? b.keyCombo.keyNames.length : 0) - (a.keyCombo ? a.keyCombo.keyNames.length : 0);
}).forEach(function(l) {
var mapIndex = -1;
for (var i = 0; i < listenerGroupMap.length; i += 1) {
if (listenerGroupMap[i] === null && l.keyCombo === null ||
listenerGroupMap[i] !== null && listenerGroupMap[i].isEqual(l.keyCombo)) {
mapIndex = i;
}
}
if (mapIndex === -1) {
mapIndex = listenerGroupMap.length;
listenerGroupMap.push(l.keyCombo);
}
if (!listenerGroups[mapIndex]) {
listenerGroups[mapIndex] = [];
}
listenerGroups[mapIndex].push(l);
});
return listenerGroups;
};
Keyboard.prototype._applyBindings = function(event) {
var preventRepeat = false;
event || (event = {});
event.preventRepeat = function() { preventRepeat = true; };
event.pressedKeys = this._locale.pressedKeys.slice(0);
var pressedKeys = this._locale.pressedKeys.slice(0);
var listenerGroups = this._getGroupedListeners();
for (var i = 0; i < listenerGroups.length; i += 1) {
var listeners = listenerGroups[i];
var keyCombo = listeners[0].keyCombo;
if (keyCombo === null || keyCombo.check(pressedKeys)) {
for (var j = 0; j < listeners.length; j += 1) {
var listener = listeners[j];
if (keyCombo === null) {
listener = {
keyCombo : new KeyCombo(pressedKeys.join('+')),
pressHandler : listener.pressHandler,
releaseHandler : listener.releaseHandler,
preventRepeat : listener.preventRepeat,
preventRepeatByDefault : listener.preventRepeatByDefault
};
}
if (listener.pressHandler && !listener.preventRepeat) {
listener.pressHandler.call(this, event);
if (preventRepeat) {
listener.preventRepeat = preventRepeat;
preventRepeat = false;
}
}
if (listener.releaseHandler && this._appliedListeners.indexOf(listener) === -1) {
this._appliedListeners.push(listener);
}
}
if (keyCombo) {
for (var j = 0; j < keyCombo.keyNames.length; j += 1) {
var index = pressedKeys.indexOf(keyCombo.keyNames[j]);
if (index !== -1) {
pressedKeys.splice(index, 1);
j -= 1;
}
}
}
}
}
};
Keyboard.prototype._clearBindings = function(event) {
event || (event = {});
for (var i = 0; i < this._appliedListeners.length; i += 1) {
var listener = this._appliedListeners[i];
var keyCombo = listener.keyCombo;
if (keyCombo === null || !keyCombo.check(this._locale.pressedKeys)) {
if (this._callerHandler !== listener.releaseHandler) {
var oldCaller = this._callerHandler;
this._callerHandler = listener.releaseHandler;
listener.preventRepeat = listener.preventRepeatByDefault;
listener.releaseHandler.call(this, event);
this._callerHandler = oldCaller;
}
this._appliedListeners.splice(i, 1);
i -= 1;
}
}
};
Keyboard.prototype._handleCommandBug = function(event, platform) {
// On Mac when the command key is kept pressed, keyup is not triggered for any other key.
// In this case force a keyup for non-modifier keys directly after the keypress.
var modifierKeys = ["shift", "ctrl", "alt", "capslock", "tab", "command"];
if (platform.match("Mac") && this._locale.pressedKeys.includes("command") &&
!modifierKeys.includes(this._locale.getKeyNames(event.keyCode)[0])) {
this._targetKeyUpBinding(event);
}
};
module.exports = Keyboard;
/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
/***/ }),
/* 316 */
/***/ (function(module, exports, __webpack_require__) {
var KeyCombo = __webpack_require__(317);
function Locale(name) {
this.localeName = name;
this.pressedKeys = [];
this._appliedMacros = [];
this._keyMap = {};
this._killKeyCodes = [];
this._macros = [];
}
Locale.prototype.bindKeyCode = function(keyCode, keyNames) {
if (typeof keyNames === 'string') {
keyNames = [keyNames];
}
this._keyMap[keyCode] = keyNames;
};
Locale.prototype.bindMacro = function(keyComboStr, keyNames) {
if (typeof keyNames === 'string') {
keyNames = [ keyNames ];
}
var handler = null;
if (typeof keyNames === 'function') {
handler = keyNames;
keyNames = null;
}
var macro = {
keyCombo : new KeyCombo(keyComboStr),
keyNames : keyNames,
handler : handler
};
this._macros.push(macro);
};
Locale.prototype.getKeyCodes = function(keyName) {
var keyCodes = [];
for (var keyCode in this._keyMap) {
var index = this._keyMap[keyCode].indexOf(keyName);
if (index > -1) { keyCodes.push(keyCode|0); }
}
return keyCodes;
};
Locale.prototype.getKeyNames = function(keyCode) {
return this._keyMap[keyCode] || [];
};
Locale.prototype.setKillKey = function(keyCode) {
if (typeof keyCode === 'string') {
var keyCodes = this.getKeyCodes(keyCode);
for (var i = 0; i < keyCodes.length; i += 1) {
this.setKillKey(keyCodes[i]);
}
return;
}
this._killKeyCodes.push(keyCode);
};
Locale.prototype.pressKey = function(keyCode) {
if (typeof keyCode === 'string') {
var keyCodes = this.getKeyCodes(keyCode);
for (var i = 0; i < keyCodes.length; i += 1) {
this.pressKey(keyCodes[i]);
}
return;
}
var keyNames = this.getKeyNames(keyCode);
for (var i = 0; i < keyNames.length; i += 1) {
if (this.pressedKeys.indexOf(keyNames[i]) === -1) {
this.pressedKeys.push(keyNames[i]);
}
}
this._applyMacros();
};
Locale.prototype.releaseKey = function(keyCode) {
if (typeof keyCode === 'string') {
var keyCodes = this.getKeyCodes(keyCode);
for (var i = 0; i < keyCodes.length; i += 1) {
this.releaseKey(keyCodes[i]);
}
}
else {
var keyNames = this.getKeyNames(keyCode);
var killKeyCodeIndex = this._killKeyCodes.indexOf(keyCode);
if (killKeyCodeIndex > -1) {
this.pressedKeys.length = 0;
} else {
for (var i = 0; i < keyNames.length; i += 1) {
var index = this.pressedKeys.indexOf(keyNames[i]);
if (index > -1) {
this.pressedKeys.splice(index, 1);
}
}
}
this._clearMacros();
}
};
Locale.prototype._applyMacros = function() {
var macros = this._macros.slice(0);
for (var i = 0; i < macros.length; i += 1) {
var macro = macros[i];
if (macro.keyCombo.check(this.pressedKeys)) {
if (macro.handler) {
macro.keyNames = macro.handler(this.pressedKeys);
}
for (var j = 0; j < macro.keyNames.length; j += 1) {
if (this.pressedKeys.indexOf(macro.keyNames[j]) === -1) {
this.pressedKeys.push(macro.keyNames[j]);
}
}
this._appliedMacros.push(macro);
}
}
};
Locale.prototype._clearMacros = function() {
for (var i = 0; i < this._appliedMacros.length; i += 1) {
var macro = this._appliedMacros[i];
if (!macro.keyCombo.check(this.pressedKeys)) {
for (var j = 0; j < macro.keyNames.length; j += 1) {
var index = this.pressedKeys.indexOf(macro.keyNames[j]);
if (index > -1) {
this.pressedKeys.splice(index, 1);
}
}
if (macro.handler) {
macro.keyNames = null;
}
this._appliedMacros.splice(i, 1);
i -= 1;
}
}
};
module.exports = Locale;
/***/ }),
/* 317 */
/***/ (function(module, exports) {
function KeyCombo(keyComboStr) {
this.sourceStr = keyComboStr;
this.subCombos = KeyCombo.parseComboStr(keyComboStr);
this.keyNames = this.subCombos.reduce(function(memo, nextSubCombo) {
return memo.concat(nextSubCombo);
}, []);
}
// TODO: Add support for key combo sequences
KeyCombo.sequenceDeliminator = '>>';
KeyCombo.comboDeliminator = '>';
KeyCombo.keyDeliminator = '+';
KeyCombo.parseComboStr = function(keyComboStr) {
var subComboStrs = KeyCombo._splitStr(keyComboStr, KeyCombo.comboDeliminator);
var combo = [];
for (var i = 0 ; i < subComboStrs.length; i += 1) {
combo.push(KeyCombo._splitStr(subComboStrs[i], KeyCombo.keyDeliminator));
}
return combo;
};
KeyCombo.prototype.check = function(pressedKeyNames) {
var startingKeyNameIndex = 0;
for (var i = 0; i < this.subCombos.length; i += 1) {
startingKeyNameIndex = this._checkSubCombo(
this.subCombos[i],
startingKeyNameIndex,
pressedKeyNames
);
if (startingKeyNameIndex === -1) { return false; }
}
return true;
};
KeyCombo.prototype.isEqual = function(otherKeyCombo) {
if (
!otherKeyCombo ||
typeof otherKeyCombo !== 'string' &&
typeof otherKeyCombo !== 'object'
) { return false; }
if (typeof otherKeyCombo === 'string') {
otherKeyCombo = new KeyCombo(otherKeyCombo);
}
if (this.subCombos.length !== otherKeyCombo.subCombos.length) {
return false;
}
for (var i = 0; i < this.subCombos.length; i += 1) {
if (this.subCombos[i].length !== otherKeyCombo.subCombos[i].length) {
return false;
}
}
for (var i = 0; i < this.subCombos.length; i += 1) {
var subCombo = this.subCombos[i];
var otherSubCombo = otherKeyCombo.subCombos[i].slice(0);
for (var j = 0; j < subCombo.length; j += 1) {
var keyName = subCombo[j];
var index = otherSubCombo.indexOf(keyName);
if (index > -1) {
otherSubCombo.splice(index, 1);
}
}
if (otherSubCombo.length !== 0) {
return false;
}
}
return true;
};
KeyCombo._splitStr = function(str, deliminator) {
var s = str;
var d = deliminator;
var c = '';
var ca = [];
for (var ci = 0; ci < s.length; ci += 1) {
if (ci > 0 && s[ci] === d && s[ci - 1] !== '\\') {
ca.push(c.trim());
c = '';
ci += 1;
}
c += s[ci];
}
if (c) { ca.push(c.trim()); }
return ca;
};
KeyCombo.prototype._checkSubCombo = function(subCombo, startingKeyNameIndex, pressedKeyNames) {
subCombo = subCombo.slice(0);
pressedKeyNames = pressedKeyNames.slice(startingKeyNameIndex);
var endIndex = startingKeyNameIndex;
for (var i = 0; i < subCombo.length; i += 1) {
var keyName = subCombo[i];
if (keyName[0] === '\\') {
var escapedKeyName = keyName.slice(1);
if (
escapedKeyName === KeyCombo.comboDeliminator ||
escapedKeyName === KeyCombo.keyDeliminator
) {
keyName = escapedKeyName;
}
}
var index = pressedKeyNames.indexOf(keyName);
if (index > -1) {
subCombo.splice(i, 1);
i -= 1;
if (index > endIndex) {
endIndex = index;
}
if (subCombo.length === 0) {
return endIndex;
}
}
}
return -1;
};
module.exports = KeyCombo;
/***/ }),
/* 318 */
/***/ (function(module, exports) {
module.exports = function(locale, platform, userAgent) {
// general
locale.bindKeyCode(3, ['cancel']);
locale.bindKeyCode(8, ['backspace']);
locale.bindKeyCode(9, ['tab']);
locale.bindKeyCode(12, ['clear']);
locale.bindKeyCode(13, ['enter']);
locale.bindKeyCode(16, ['shift']);
locale.bindKeyCode(17, ['ctrl']);
locale.bindKeyCode(18, ['alt', 'menu']);
locale.bindKeyCode(19, ['pause', 'break']);
locale.bindKeyCode(20, ['capslock']);
locale.bindKeyCode(27, ['escape', 'esc']);
locale.bindKeyCode(32, ['space', 'spacebar']);
locale.bindKeyCode(33, ['pageup']);
locale.bindKeyCode(34, ['pagedown']);
locale.bindKeyCode(35, ['end']);
locale.bindKeyCode(36, ['home']);
locale.bindKeyCode(37, ['left']);
locale.bindKeyCode(38, ['up']);
locale.bindKeyCode(39, ['right']);
locale.bindKeyCode(40, ['down']);
locale.bindKeyCode(41, ['select']);
locale.bindKeyCode(42, ['printscreen']);
locale.bindKeyCode(43, ['execute']);
locale.bindKeyCode(44, ['snapshot']);
locale.bindKeyCode(45, ['insert', 'ins']);
locale.bindKeyCode(46, ['delete', 'del']);
locale.bindKeyCode(47, ['help']);
locale.bindKeyCode(145, ['scrolllock', 'scroll']);
locale.bindKeyCode(188, ['comma', ',']);
locale.bindKeyCode(190, ['period', '.']);
locale.bindKeyCode(191, ['slash', 'forwardslash', '/']);
locale.bindKeyCode(192, ['graveaccent', '`']);
locale.bindKeyCode(219, ['openbracket', '[']);
locale.bindKeyCode(220, ['backslash', '\\']);
locale.bindKeyCode(221, ['closebracket', ']']);
locale.bindKeyCode(222, ['apostrophe', '\'']);
// 0-9
locale.bindKeyCode(48, ['zero', '0']);
locale.bindKeyCode(49, ['one', '1']);
locale.bindKeyCode(50, ['two', '2']);
locale.bindKeyCode(51, ['three', '3']);
locale.bindKeyCode(52, ['four', '4']);
locale.bindKeyCode(53, ['five', '5']);
locale.bindKeyCode(54, ['six', '6']);
locale.bindKeyCode(55, ['seven', '7']);
locale.bindKeyCode(56, ['eight', '8']);
locale.bindKeyCode(57, ['nine', '9']);
// numpad
locale.bindKeyCode(96, ['numzero', 'num0']);
locale.bindKeyCode(97, ['numone', 'num1']);
locale.bindKeyCode(98, ['numtwo', 'num2']);
locale.bindKeyCode(99, ['numthree', 'num3']);
locale.bindKeyCode(100, ['numfour', 'num4']);
locale.bindKeyCode(101, ['numfive', 'num5']);
locale.bindKeyCode(102, ['numsix', 'num6']);
locale.bindKeyCode(103, ['numseven', 'num7']);
locale.bindKeyCode(104, ['numeight', 'num8']);
locale.bindKeyCode(105, ['numnine', 'num9']);
locale.bindKeyCode(106, ['nummultiply', 'num*']);
locale.bindKeyCode(107, ['numadd', 'num+']);
locale.bindKeyCode(108, ['numenter']);
locale.bindKeyCode(109, ['numsubtract', 'num-']);
locale.bindKeyCode(110, ['numdecimal', 'num.']);
locale.bindKeyCode(111, ['numdivide', 'num/']);
locale.bindKeyCode(144, ['numlock', 'num']);
// function keys
locale.bindKeyCode(112, ['f1']);
locale.bindKeyCode(113, ['f2']);
locale.bindKeyCode(114, ['f3']);
locale.bindKeyCode(115, ['f4']);
locale.bindKeyCode(116, ['f5']);
locale.bindKeyCode(117, ['f6']);
locale.bindKeyCode(118, ['f7']);
locale.bindKeyCode(119, ['f8']);
locale.bindKeyCode(120, ['f9']);
locale.bindKeyCode(121, ['f10']);
locale.bindKeyCode(122, ['f11']);
locale.bindKeyCode(123, ['f12']);
// secondary key symbols
locale.bindMacro('shift + `', ['tilde', '~']);
locale.bindMacro('shift + 1', ['exclamation', 'exclamationpoint', '!']);
locale.bindMacro('shift + 2', ['at', '@']);
locale.bindMacro('shift + 3', ['number', '#']);
locale.bindMacro('shift + 4', ['dollar', 'dollars', 'dollarsign', '$']);
locale.bindMacro('shift + 5', ['percent', '%']);
locale.bindMacro('shift + 6', ['caret', '^']);
locale.bindMacro('shift + 7', ['ampersand', 'and', '&']);
locale.bindMacro('shift + 8', ['asterisk', '*']);
locale.bindMacro('shift + 9', ['openparen', '(']);
locale.bindMacro('shift + 0', ['closeparen', ')']);
locale.bindMacro('shift + -', ['underscore', '_']);
locale.bindMacro('shift + =', ['plus', '+']);
locale.bindMacro('shift + [', ['opencurlybrace', 'opencurlybracket', '{']);
locale.bindMacro('shift + ]', ['closecurlybrace', 'closecurlybracket', '}']);
locale.bindMacro('shift + \\', ['verticalbar', '|']);
locale.bindMacro('shift + ;', ['colon', ':']);
locale.bindMacro('shift + \'', ['quotationmark', '\'']);
locale.bindMacro('shift + !,', ['openanglebracket', '<']);
locale.bindMacro('shift + .', ['closeanglebracket', '>']);
locale.bindMacro('shift + /', ['questionmark', '?']);
if (platform.match('Mac')) {
locale.bindMacro('command', ['mod', 'modifier']);
} else {
locale.bindMacro('ctrl', ['mod', 'modifier']);
}
//a-z and A-Z
for (var keyCode = 65; keyCode <= 90; keyCode += 1) {
var keyName = String.fromCharCode(keyCode + 32);
var capitalKeyName = String.fromCharCode(keyCode);
locale.bindKeyCode(keyCode, keyName);
locale.bindMacro('shift + ' + keyName, capitalKeyName);
locale.bindMacro('capslock + ' + keyName, capitalKeyName);
}
// browser caveats
var semicolonKeyCode = userAgent.match('Firefox') ? 59 : 186;
var dashKeyCode = userAgent.match('Firefox') ? 173 : 189;
var equalKeyCode = userAgent.match('Firefox') ? 61 : 187;
var leftCommandKeyCode;
var rightCommandKeyCode;
if (platform.match('Mac') && (userAgent.match('Safari') || userAgent.match('Chrome'))) {
leftCommandKeyCode = 91;
rightCommandKeyCode = 93;
} else if(platform.match('Mac') && userAgent.match('Opera')) {
leftCommandKeyCode = 17;
rightCommandKeyCode = 17;
} else if(platform.match('Mac') && userAgent.match('Firefox')) {
leftCommandKeyCode = 224;
rightCommandKeyCode = 224;
}
locale.bindKeyCode(semicolonKeyCode, ['semicolon', ';']);
locale.bindKeyCode(dashKeyCode, ['dash', '-']);
locale.bindKeyCode(equalKeyCode, ['equal', 'equalsign', '=']);
locale.bindKeyCode(leftCommandKeyCode, ['command', 'windows', 'win', 'super', 'leftcommand', 'leftwindows', 'leftwin', 'leftsuper']);
locale.bindKeyCode(rightCommandKeyCode, ['command', 'windows', 'win', 'super', 'rightcommand', 'rightwindows', 'rightwin', 'rightsuper']);
// kill keys
locale.setKillKey('command');
};
/***/ }),
/* 319 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(Buffer) {'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.VADVoiceHandler = exports.PushToTalkVoiceHandler = exports.ContinuousVoiceHandler = undefined;
var _getIterator2 = __webpack_require__(262);
var _getIterator3 = _interopRequireDefault(_getIterator2);
var _get2 = __webpack_require__(320);
var _get3 = _interopRequireDefault(_get2);
var _getPrototypeOf = __webpack_require__(211);
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _classCallCheck2 = __webpack_require__(82);
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = __webpack_require__(83);
var _createClass3 = _interopRequireDefault(_createClass2);
var _possibleConstructorReturn2 = __webpack_require__(216);
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = __webpack_require__(249);
var _inherits3 = _interopRequireDefault(_inherits2);
exports.initVoice = initVoice;
var _stream = __webpack_require__(87);
var _microphoneStream = __webpack_require__(324);
var _microphoneStream2 = _interopRequireDefault(_microphoneStream);
var _audioContext = __webpack_require__(311);
var _audioContext2 = _interopRequireDefault(_audioContext);
var _getusermedia = __webpack_require__(326);
var _getusermedia2 = _interopRequireDefault(_getusermedia);
var _keyboardjs = __webpack_require__(314);
var _keyboardjs2 = _interopRequireDefault(_keyboardjs);
var _voiceActivityDetection = __webpack_require__(337);
var _voiceActivityDetection2 = _interopRequireDefault(_voiceActivityDetection);
var _dropStream = __webpack_require__(341);
var _dropStream2 = _interopRequireDefault(_dropStream);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var VoiceHandler = function (_Writable) {
(0, _inherits3.default)(VoiceHandler, _Writable);
function VoiceHandler(client, settings) {
(0, _classCallCheck3.default)(this, VoiceHandler);
var _this = (0, _possibleConstructorReturn3.default)(this, (VoiceHandler.__proto__ || (0, _getPrototypeOf2.default)(VoiceHandler)).call(this, { objectMode: true }));
_this._client = client;
_this._settings = settings;
_this._outbound = null;
_this._mute = false;
return _this;
}
(0, _createClass3.default)(VoiceHandler, [{
key: 'setMute',
value: function setMute(mute) {
this._mute = mute;
if (mute) {
this._stopOutbound();
}
}
}, {
key: '_getOrCreateOutbound',
value: function _getOrCreateOutbound() {
if (this._mute) {
throw new Error('tried to send audio while self-muted');
}
if (!this._outbound) {
if (!this._client) {
this._outbound = _dropStream2.default.obj();
this.emit('started_talking');
return this._outbound;
}
// Note: the samplesPerPacket argument is handled in worker.js and not passed on
this._outbound = this._client.createVoiceStream(this._settings.samplesPerPacket);
this.emit('started_talking');
}
return this._outbound;
}
}, {
key: '_stopOutbound',
value: function _stopOutbound() {
if (this._outbound) {
this.emit('stopped_talking');
this._outbound.end();
this._outbound = null;
}
}
}, {
key: '_final',
value: function _final(callback) {
this._stopOutbound();
callback();
}
}]);
return VoiceHandler;
}(_stream.Writable);
var ContinuousVoiceHandler = exports.ContinuousVoiceHandler = function (_VoiceHandler) {
(0, _inherits3.default)(ContinuousVoiceHandler, _VoiceHandler);
function ContinuousVoiceHandler(client, settings) {
(0, _classCallCheck3.default)(this, ContinuousVoiceHandler);
return (0, _possibleConstructorReturn3.default)(this, (ContinuousVoiceHandler.__proto__ || (0, _getPrototypeOf2.default)(ContinuousVoiceHandler)).call(this, client, settings));
}
(0, _createClass3.default)(ContinuousVoiceHandler, [{
key: '_write',
value: function _write(data, _, callback) {
if (this._mute) {
callback();
} else {
this._getOrCreateOutbound().write(data, callback);
}
}
}]);
return ContinuousVoiceHandler;
}(VoiceHandler);
var PushToTalkVoiceHandler = exports.PushToTalkVoiceHandler = function (_VoiceHandler2) {
(0, _inherits3.default)(PushToTalkVoiceHandler, _VoiceHandler2);
function PushToTalkVoiceHandler(client, settings) {
(0, _classCallCheck3.default)(this, PushToTalkVoiceHandler);
var _this3 = (0, _possibleConstructorReturn3.default)(this, (PushToTalkVoiceHandler.__proto__ || (0, _getPrototypeOf2.default)(PushToTalkVoiceHandler)).call(this, client, settings));
_this3._key = settings.pttKey;
_this3._pushed = false;
_this3._keydown_handler = function () {
return _this3._pushed = true;
};
_this3._keyup_handler = function () {
_this3._stopOutbound();
_this3._pushed = false;
};
_keyboardjs2.default.bind(_this3._key, _this3._keydown_handler, _this3._keyup_handler);
return _this3;
}
(0, _createClass3.default)(PushToTalkVoiceHandler, [{
key: '_write',
value: function _write(data, _, callback) {
if (this._pushed && !this._mute) {
this._getOrCreateOutbound().write(data, callback);
} else {
callback();
}
}
}, {
key: '_final',
value: function _final(callback) {
var _this4 = this;
(0, _get3.default)(PushToTalkVoiceHandler.prototype.__proto__ || (0, _getPrototypeOf2.default)(PushToTalkVoiceHandler.prototype), '_final', this).call(this, function (e) {
_keyboardjs2.default.unbind(_this4._key, _this4._keydown_handler, _this4._keyup_handler);
callback(e);
});
}
}]);
return PushToTalkVoiceHandler;
}(VoiceHandler);
var VADVoiceHandler = exports.VADVoiceHandler = function (_VoiceHandler3) {
(0, _inherits3.default)(VADVoiceHandler, _VoiceHandler3);
function VADVoiceHandler(client, settings) {
(0, _classCallCheck3.default)(this, VADVoiceHandler);
var _this5 = (0, _possibleConstructorReturn3.default)(this, (VADVoiceHandler.__proto__ || (0, _getPrototypeOf2.default)(VADVoiceHandler)).call(this, client, settings));
var level = settings.vadLevel;
var self = _this5;
_this5._vad = (0, _voiceActivityDetection2.default)((0, _audioContext2.default)(), theUserMedia, {
onVoiceStart: function onVoiceStart() {
console.log('vad: start');
self._active = true;
},
onVoiceStop: function onVoiceStop() {
console.log('vad: stop');
self._stopOutbound();
self._active = false;
},
onUpdate: function onUpdate(val) {
self._level = val;
self.emit('level', val);
},
noiseCaptureDuration: 0,
minNoiseLevel: level,
maxNoiseLevel: level
});
// Need to keep a backlog of the last ~150ms (dependent on sample rate)
// because VAD will activate with ~125ms delay
_this5._backlog = [];
_this5._backlogLength = 0;
_this5._backlogLengthMin = 1024 * 6 * 4; // vadBufferLen * (vadDelay + 1) * bytesPerSample
return _this5;
}
(0, _createClass3.default)(VADVoiceHandler, [{
key: '_write',
value: function _write(data, _, callback) {
if (this._active && !this._mute) {
if (this._backlog.length > 0) {
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = (0, _getIterator3.default)(this._backlog), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var oldData = _step.value;
this._getOrCreateOutbound().write(oldData);
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
this._backlog = [];
this._backlogLength = 0;
}
this._getOrCreateOutbound().write(data, callback);
} else {
// Make sure we always keep the backlog filled if we're not (yet) talking
this._backlog.push(data);
this._backlogLength += data.length;
// Check if we can discard the oldest element without becoming too short
if (this._backlogLength - this._backlog[0].length > this._backlogLengthMin) {
this._backlogLength -= this._backlog.shift().length;
}
callback();
}
}
}, {
key: '_final',
value: function _final(callback) {
var _this6 = this;
(0, _get3.default)(VADVoiceHandler.prototype.__proto__ || (0, _getPrototypeOf2.default)(VADVoiceHandler.prototype), '_final', this).call(this, function (e) {
_this6._vad.destroy();
callback(e);
});
}
}]);
return VADVoiceHandler;
}(VoiceHandler);
var theUserMedia = null;
function initVoice(onData, onUserMediaError) {
(0, _getusermedia2.default)({ audio: true }, function (err, userMedia) {
if (err) {
onUserMediaError(err);
} else {
theUserMedia = userMedia;
var micStream = new _microphoneStream2.default(userMedia, { objectMode: true, bufferSize: 1024 });
micStream.on('data', function (data) {
onData(Buffer.from(data.getChannelData(0).buffer));
});
}
});
}
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(97).Buffer))
/***/ }),
/* 320 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
exports.__esModule = true;
var _getPrototypeOf = __webpack_require__(211);
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _getOwnPropertyDescriptor = __webpack_require__(321);
var _getOwnPropertyDescriptor2 = _interopRequireDefault(_getOwnPropertyDescriptor);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = function get(object, property, receiver) {
if (object === null) object = Function.prototype;
var desc = (0, _getOwnPropertyDescriptor2.default)(object, property);
if (desc === undefined) {
var parent = (0, _getPrototypeOf2.default)(object);
if (parent === null) {
return undefined;
} else {
return get(parent, property, receiver);
}
} else if ("value" in desc) {
return desc.value;
} else {
var getter = desc.get;
if (getter === undefined) {
return undefined;
}
return getter.call(receiver);
}
};
/***/ }),
/* 321 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = { "default": __webpack_require__(322), __esModule: true };
/***/ }),
/* 322 */
/***/ (function(module, exports, __webpack_require__) {
__webpack_require__(323);
var $Object = __webpack_require__(45).Object;
module.exports = function getOwnPropertyDescriptor(it, key) {
return $Object.getOwnPropertyDescriptor(it, key);
};
/***/ }),
/* 323 */
/***/ (function(module, exports, __webpack_require__) {
// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
var toIObject = __webpack_require__(62);
var $getOwnPropertyDescriptor = __webpack_require__(245).f;
__webpack_require__(215)('getOwnPropertyDescriptor', function () {
return function getOwnPropertyDescriptor(it, key) {
return $getOwnPropertyDescriptor(toIObject(it), key);
};
});
/***/ }),
/* 324 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(process) {'use strict';
var Readable = __webpack_require__(87).Readable;
var util = __webpack_require__(135);
// some versions of the buffer browser lib don't support Buffer.from (such as the one included by the current version of express-browserify)
var bufferFrom = __webpack_require__(325);
/**
* Turns a MediaStream object (from getUserMedia) into a Node.js Readable stream and optionally converts the audio to Buffers
*
* @see https://developer.mozilla.org/en-US/docs/Web/API/Navigator/getUserMedia
*
* @param {MediaStream} stream https://developer.mozilla.org/en-US/docs/Web/API/MediaStream
* @param {Object} [opts] options
* @param {Boolean} [opts.objectMode=false] Puts the stream into ObjectMode where it emits AudioBuffers instead of Buffers - see https://developer.mozilla.org/en-US/docs/Web/API/AudioBuffer
* @param {Number|null} [opts.bufferSize=null] https://developer.mozilla.org/en-US/docs/Web/API/AudioContext/createScriptProcessor
* @constructor
*/
function MicrophoneStream(stream, opts) {
// "It is recommended for authors to not specify this buffer size and allow the implementation to pick a good
// buffer size to balance between latency and audio quality."
// https://developer.mozilla.org/en-US/docs/Web/API/AudioContext/createScriptProcessor
// however, webkitAudioContext (safari) requires it to be set'
// Possible values: null, 256, 512, 1024, 2048, 4096, 8192, 16384
var bufferSize = (typeof window.AudioContext === 'undefined' ? 4096 : null);
opts = opts || {};
bufferSize = opts.bufferSize || bufferSize;
// We can only emit one channel's worth of audio, so only one input. (Who has multiple microphones anyways?)
var inputChannels = 1;
// we shouldn't need any output channels (going back to the browser), but chrome is buggy and won't give us any audio without one
var outputChannels = 1;
Readable.call(this, opts);
var self = this;
var recording = true;
/**
* Convert and emit the raw audio data
* @see https://developer.mozilla.org/en-US/docs/Web/API/ScriptProcessorNode/onaudioprocess
* @param {AudioProcessingEvent} e https://developer.mozilla.org/en-US/docs/Web/API/AudioProcessingEvent
*/
function recorderProcess(e) {
// onaudioprocess can be called at least once after we've stopped
if (recording) {
self.push(opts.objectMode ? e.inputBuffer : bufferFrom(e.inputBuffer.getChannelData(0).buffer));
}
}
var AudioContext = window.AudioContext || window.webkitAudioContext;
var context = new AudioContext();
var audioInput = context.createMediaStreamSource(stream);
var recorder = context.createScriptProcessor(bufferSize, inputChannels, outputChannels);
recorder.onaudioprocess = recorderProcess;
audioInput.connect(recorder);
// other half of workaround for chrome bugs
recorder.connect(context.destination);
this.stop = function() {
if (context.state === 'closed') {
return;
}
try {
stream.getTracks()[0].stop();
} catch (ex) {
// This fails in some older versions of chrome. Nothing we can do about it.
}
recorder.disconnect();
audioInput.disconnect();
try {
context.close(); // returns a promise;
} catch (ex) {
// this can also fail in older versions of chrome
}
recording = false;
self.push(null);
self.emit('close');
};
process.nextTick(function() {
self.emit('format', {
channels: 1,
bitDepth: 32,
sampleRate: context.sampleRate,
signed: true,
float: true
});
});
}
util.inherits(MicrophoneStream, Readable);
MicrophoneStream.prototype._read = function(/* bytes */) {
// no-op, (flow-control doesn't really work on sound)
};
/**
* Converts a Buffer back into the raw Float32Array format that browsers use.
* Note: this is just a new DataView for the same underlying buffer -
* the actual audio data is not copied or changed here.
*
* @param {Buffer} chunk node-style buffer of audio data from a 'data' event or read() call
* @return {Float32Array} raw 32-bit float data view of audio data
*/
MicrophoneStream.toRaw = function toFloat32(chunk) {
return new Float32Array(chunk.buffer);
};
module.exports = MicrophoneStream;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(92)))
/***/ }),
/* 325 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(Buffer) {var toString = Object.prototype.toString
var isModern = (
typeof Buffer.alloc === 'function' &&
typeof Buffer.allocUnsafe === 'function' &&
typeof Buffer.from === 'function'
)
function isArrayBuffer (input) {
return toString.call(input).slice(8, -1) === 'ArrayBuffer'
}
function fromArrayBuffer (obj, byteOffset, length) {
byteOffset >>>= 0
var maxLength = obj.byteLength - byteOffset
if (maxLength < 0) {
throw new RangeError("'offset' is out of bounds")
}
if (length === undefined) {
length = maxLength
} else {
length >>>= 0
if (length > maxLength) {
throw new RangeError("'length' is out of bounds")
}
}
return isModern
? Buffer.from(obj.slice(byteOffset, byteOffset + length))
: new Buffer(new Uint8Array(obj.slice(byteOffset, byteOffset + length)))
}
function fromString (string, encoding) {
if (typeof encoding !== 'string' || encoding === '') {
encoding = 'utf8'
}
if (!Buffer.isEncoding(encoding)) {
throw new TypeError('"encoding" must be a valid string encoding')
}
return isModern
? Buffer.from(string, encoding)
: new Buffer(string, encoding)
}
function bufferFrom (value, encodingOrOffset, length) {
if (typeof value === 'number') {
throw new TypeError('"value" argument must not be a number')
}
if (isArrayBuffer(value)) {
return fromArrayBuffer(value, encodingOrOffset, length)
}
if (typeof value === 'string') {
return fromString(value, encodingOrOffset)
}
return isModern
? Buffer.from(value)
: new Buffer(value)
}
module.exports = bufferFrom
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(97).Buffer))
/***/ }),
/* 326 */
/***/ (function(module, exports, __webpack_require__) {
// getUserMedia helper by @HenrikJoreteg used for navigator.getUserMedia shim
var adapter = __webpack_require__(327);
module.exports = function (constraints, cb) {
var error;
var haveOpts = arguments.length === 2;
var defaultOpts = {video: true, audio: true};
var denied = 'PermissionDeniedError';
var altDenied = 'PERMISSION_DENIED';
var notSatisfied = 'ConstraintNotSatisfiedError';
// make constraints optional
if (!haveOpts) {
cb = constraints;
constraints = defaultOpts;
}
// treat lack of browser support like an error
if (typeof navigator === 'undefined' || !navigator.getUserMedia) {
// throw proper error per spec
error = new Error('MediaStreamError');
error.name = 'NotSupportedError';
// keep all callbacks async
return setTimeout(function () {
cb(error);
}, 0);
}
// normalize error handling when no media types are requested
if (!constraints.audio && !constraints.video) {
error = new Error('MediaStreamError');
error.name = 'NoMediaRequestedError';
// keep all callbacks async
return setTimeout(function () {
cb(error);
}, 0);
}
navigator.mediaDevices.getUserMedia(constraints)
.then(function (stream) {
cb(null, stream);
}).catch(function (err) {
var error;
// coerce into an error object since FF gives us a string
// there are only two valid names according to the spec
// we coerce all non-denied to "constraint not satisfied".
if (typeof err === 'string') {
error = new Error('MediaStreamError');
if (err === denied || err === altDenied) {
error.name = denied;
} else {
error.name = notSatisfied;
}
} else {
// if we get an error object make sure '.name' property is set
// according to spec: http://dev.w3.org/2011/webrtc/editor/getusermedia.html#navigatorusermediaerror-and-navigatorusermediaerrorcallback
error = err;
if (!error.name) {
// this is likely chrome which
// sets a property called "ERROR_DENIED" on the error object
// if so we make sure to set a name
if (error[denied]) {
err.name = denied;
} else {
err.name = notSatisfied;
}
}
}
cb(error);
});
};
/***/ }),
/* 327 */
/***/ (function(module, exports, __webpack_require__) {
/*
* Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree.
*/
/* eslint-env node */
'use strict';
// Shimming starts here.
(function() {
// Utils.
var logging = __webpack_require__(328).log;
var browserDetails = __webpack_require__(328).browserDetails;
// Export to the adapter global object visible in the browser.
module.exports.browserDetails = browserDetails;
module.exports.extractVersion = __webpack_require__(328).extractVersion;
module.exports.disableLog = __webpack_require__(328).disableLog;
// Uncomment the line below if you want logging to occur, including logging
// for the switch statement below. Can also be turned on in the browser via
// adapter.disableLog(false), but then logging from the switch statement below
// will not appear.
// require('./utils').disableLog(false);
// Browser shims.
var chromeShim = __webpack_require__(329) || null;
var edgeShim = __webpack_require__(331) || null;
var firefoxShim = __webpack_require__(334) || null;
var safariShim = __webpack_require__(336) || null;
// Shim browser if found.
switch (browserDetails.browser) {
case 'opera': // fallthrough as it uses chrome shims
case 'chrome':
if (!chromeShim || !chromeShim.shimPeerConnection) {
logging('Chrome shim is not included in this adapter release.');
return;
}
logging('adapter.js shimming chrome.');
// Export to the adapter global object visible in the browser.
module.exports.browserShim = chromeShim;
chromeShim.shimGetUserMedia();
chromeShim.shimMediaStream();
chromeShim.shimSourceObject();
chromeShim.shimPeerConnection();
chromeShim.shimOnTrack();
break;
case 'firefox':
if (!firefoxShim || !firefoxShim.shimPeerConnection) {
logging('Firefox shim is not included in this adapter release.');
return;
}
logging('adapter.js shimming firefox.');
// Export to the adapter global object visible in the browser.
module.exports.browserShim = firefoxShim;
firefoxShim.shimGetUserMedia();
firefoxShim.shimSourceObject();
firefoxShim.shimPeerConnection();
firefoxShim.shimOnTrack();
break;
case 'edge':
if (!edgeShim || !edgeShim.shimPeerConnection) {
logging('MS edge shim is not included in this adapter release.');
return;
}
logging('adapter.js shimming edge.');
// Export to the adapter global object visible in the browser.
module.exports.browserShim = edgeShim;
edgeShim.shimGetUserMedia();
edgeShim.shimPeerConnection();
break;
case 'safari':
if (!safariShim) {
logging('Safari shim is not included in this adapter release.');
return;
}
logging('adapter.js shimming safari.');
// Export to the adapter global object visible in the browser.
module.exports.browserShim = safariShim;
safariShim.shimGetUserMedia();
break;
default:
logging('Unsupported browser!');
}
})();
/***/ }),
/* 328 */
/***/ (function(module, exports) {
/*
* Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree.
*/
/* eslint-env node */
'use strict';
var logDisabled_ = true;
// Utility methods.
var utils = {
disableLog: function(bool) {
if (typeof bool !== 'boolean') {
return new Error('Argument type: ' + typeof bool +
'. Please use a boolean.');
}
logDisabled_ = bool;
return (bool) ? 'adapter.js logging disabled' :
'adapter.js logging enabled';
},
log: function() {
if (typeof window === 'object') {
if (logDisabled_) {
return;
}
if (typeof console !== 'undefined' && typeof console.log === 'function') {
console.log.apply(console, arguments);
}
}
},
/**
* Extract browser version out of the provided user agent string.
*
* @param {!string} uastring userAgent string.
* @param {!string} expr Regular expression used as match criteria.
* @param {!number} pos position in the version string to be returned.
* @return {!number} browser version.
*/
extractVersion: function(uastring, expr, pos) {
var match = uastring.match(expr);
return match && match.length >= pos && parseInt(match[pos], 10);
},
/**
* Browser detector.
*
* @return {object} result containing browser and version
* properties.
*/
detectBrowser: function() {
// Returned result object.
var result = {};
result.browser = null;
result.version = null;
// Fail early if it's not a browser
if (typeof window === 'undefined' || !window.navigator) {
result.browser = 'Not a browser.';
return result;
}
// Firefox.
if (navigator.mozGetUserMedia) {
result.browser = 'firefox';
result.version = this.extractVersion(navigator.userAgent,
/Firefox\/([0-9]+)\./, 1);
// all webkit-based browsers
} else if (navigator.webkitGetUserMedia) {
// Chrome, Chromium, Webview, Opera, all use the chrome shim for now
if (window.webkitRTCPeerConnection) {
result.browser = 'chrome';
result.version = this.extractVersion(navigator.userAgent,
/Chrom(e|ium)\/([0-9]+)\./, 2);
// Safari or unknown webkit-based
// for the time being Safari has support for MediaStreams but not webRTC
} else {
// Safari UA substrings of interest for reference:
// - webkit version: AppleWebKit/602.1.25 (also used in Op,Cr)
// - safari UI version: Version/9.0.3 (unique to Safari)
// - safari UI webkit version: Safari/601.4.4 (also used in Op,Cr)
//
// if the webkit version and safari UI webkit versions are equals,
// ... this is a stable version.
//
// only the internal webkit version is important today to know if
// media streams are supported
//
if (navigator.userAgent.match(/Version\/(\d+).(\d+)/)) {
result.browser = 'safari';
result.version = this.extractVersion(navigator.userAgent,
/AppleWebKit\/([0-9]+)\./, 1);
// unknown webkit-based browser
} else {
result.browser = 'Unsupported webkit-based browser ' +
'with GUM support but no WebRTC support.';
return result;
}
}
// Edge.
} else if (navigator.mediaDevices &&
navigator.userAgent.match(/Edge\/(\d+).(\d+)$/)) {
result.browser = 'edge';
result.version = this.extractVersion(navigator.userAgent,
/Edge\/(\d+).(\d+)$/, 2);
// Default fallthrough: not supported.
} else {
result.browser = 'Not a supported browser.';
return result;
}
return result;
}
};
// Export.
module.exports = {
log: utils.log,
disableLog: utils.disableLog,
browserDetails: utils.detectBrowser(),
extractVersion: utils.extractVersion
};
/***/ }),
/* 329 */
/***/ (function(module, exports, __webpack_require__) {
/*
* Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree.
*/
/* eslint-env node */
'use strict';
var logging = __webpack_require__(328).log;
var browserDetails = __webpack_require__(328).browserDetails;
var chromeShim = {
shimMediaStream: function() {
window.MediaStream = window.MediaStream || window.webkitMediaStream;
},
shimOnTrack: function() {
if (typeof window === 'object' && window.RTCPeerConnection && !('ontrack' in
window.RTCPeerConnection.prototype)) {
Object.defineProperty(window.RTCPeerConnection.prototype, 'ontrack', {
get: function() {
return this._ontrack;
},
set: function(f) {
var self = this;
if (this._ontrack) {
this.removeEventListener('track', this._ontrack);
this.removeEventListener('addstream', this._ontrackpoly);
}
this.addEventListener('track', this._ontrack = f);
this.addEventListener('addstream', this._ontrackpoly = function(e) {
// onaddstream does not fire when a track is added to an existing
// stream. But stream.onaddtrack is implemented so we use that.
e.stream.addEventListener('addtrack', function(te) {
var event = new Event('track');
event.track = te.track;
event.receiver = {track: te.track};
event.streams = [e.stream];
self.dispatchEvent(event);
});
e.stream.getTracks().forEach(function(track) {
var event = new Event('track');
event.track = track;
event.receiver = {track: track};
event.streams = [e.stream];
this.dispatchEvent(event);
}.bind(this));
}.bind(this));
}
});
}
},
shimSourceObject: function() {
if (typeof window === 'object') {
if (window.HTMLMediaElement &&
!('srcObject' in window.HTMLMediaElement.prototype)) {
// Shim the srcObject property, once, when HTMLMediaElement is found.
Object.defineProperty(window.HTMLMediaElement.prototype, 'srcObject', {
get: function() {
return this._srcObject;
},
set: function(stream) {
var self = this;
// Use _srcObject as a private property for this shim
this._srcObject = stream;
if (this.src) {
URL.revokeObjectURL(this.src);
}
if (!stream) {
this.src = '';
return;
}
this.src = URL.createObjectURL(stream);
// We need to recreate the blob url when a track is added or
// removed. Doing it manually since we want to avoid a recursion.
stream.addEventListener('addtrack', function() {
if (self.src) {
URL.revokeObjectURL(self.src);
}
self.src = URL.createObjectURL(stream);
});
stream.addEventListener('removetrack', function() {
if (self.src) {
URL.revokeObjectURL(self.src);
}
self.src = URL.createObjectURL(stream);
});
}
});
}
}
},
shimPeerConnection: function() {
// The RTCPeerConnection object.
window.RTCPeerConnection = function(pcConfig, pcConstraints) {
// Translate iceTransportPolicy to iceTransports,
// see https://code.google.com/p/webrtc/issues/detail?id=4869
logging('PeerConnection');
if (pcConfig && pcConfig.iceTransportPolicy) {
pcConfig.iceTransports = pcConfig.iceTransportPolicy;
}
var pc = new webkitRTCPeerConnection(pcConfig, pcConstraints);
var origGetStats = pc.getStats.bind(pc);
pc.getStats = function(selector, successCallback, errorCallback) {
var self = this;
var args = arguments;
// If selector is a function then we are in the old style stats so just
// pass back the original getStats format to avoid breaking old users.
if (arguments.length > 0 && typeof selector === 'function') {
return origGetStats(selector, successCallback);
}
var fixChromeStats_ = function(response) {
var standardReport = {};
var reports = response.result();
reports.forEach(function(report) {
var standardStats = {
id: report.id,
timestamp: report.timestamp,
type: report.type
};
report.names().forEach(function(name) {
standardStats[name] = report.stat(name);
});
standardReport[standardStats.id] = standardStats;
});
return standardReport;
};
// shim getStats with maplike support
var makeMapStats = function(stats, legacyStats) {
var map = new Map(Object.keys(stats).map(function(key) {
return[key, stats[key]];
}));
legacyStats = legacyStats || stats;
Object.keys(legacyStats).forEach(function(key) {
map[key] = legacyStats[key];
});
return map;
};
if (arguments.length >= 2) {
var successCallbackWrapper_ = function(response) {
args[1](makeMapStats(fixChromeStats_(response)));
};
return origGetStats.apply(this, [successCallbackWrapper_,
arguments[0]]);
}
// promise-support
return new Promise(function(resolve, reject) {
if (args.length === 1 && typeof selector === 'object') {
origGetStats.apply(self, [
function(response) {
resolve(makeMapStats(fixChromeStats_(response)));
}, reject]);
} else {
// Preserve legacy chrome stats only on legacy access of stats obj
origGetStats.apply(self, [
function(response) {
resolve(makeMapStats(fixChromeStats_(response),
response.result()));
}, reject]);
}
}).then(successCallback, errorCallback);
};
return pc;
};
window.RTCPeerConnection.prototype = webkitRTCPeerConnection.prototype;
// wrap static methods. Currently just generateCertificate.
if (webkitRTCPeerConnection.generateCertificate) {
Object.defineProperty(window.RTCPeerConnection, 'generateCertificate', {
get: function() {
return webkitRTCPeerConnection.generateCertificate;
}
});
}
['createOffer', 'createAnswer'].forEach(function(method) {
var nativeMethod = webkitRTCPeerConnection.prototype[method];
webkitRTCPeerConnection.prototype[method] = function() {
var self = this;
if (arguments.length < 1 || (arguments.length === 1 &&
typeof arguments[0] === 'object')) {
var opts = arguments.length === 1 ? arguments[0] : undefined;
return new Promise(function(resolve, reject) {
nativeMethod.apply(self, [resolve, reject, opts]);
});
}
return nativeMethod.apply(this, arguments);
};
});
// add promise support -- natively available in Chrome 51
if (browserDetails.version < 51) {
['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']
.forEach(function(method) {
var nativeMethod = webkitRTCPeerConnection.prototype[method];
webkitRTCPeerConnection.prototype[method] = function() {
var args = arguments;
var self = this;
var promise = new Promise(function(resolve, reject) {
nativeMethod.apply(self, [args[0], resolve, reject]);
});
if (args.length < 2) {
return promise;
}
return promise.then(function() {
args[1].apply(null, []);
},
function(err) {
if (args.length >= 3) {
args[2].apply(null, [err]);
}
});
};
});
}
// shim implicit creation of RTCSessionDescription/RTCIceCandidate
['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']
.forEach(function(method) {
var nativeMethod = webkitRTCPeerConnection.prototype[method];
webkitRTCPeerConnection.prototype[method] = function() {
arguments[0] = new ((method === 'addIceCandidate') ?
RTCIceCandidate : RTCSessionDescription)(arguments[0]);
return nativeMethod.apply(this, arguments);
};
});
// support for addIceCandidate(null or undefined)
var nativeAddIceCandidate =
RTCPeerConnection.prototype.addIceCandidate;
RTCPeerConnection.prototype.addIceCandidate = function() {
if (!arguments[0]) {
if (arguments[1]) {
arguments[1].apply(null);
}
return Promise.resolve();
}
return nativeAddIceCandidate.apply(this, arguments);
};
}
};
// Expose public methods.
module.exports = {
shimMediaStream: chromeShim.shimMediaStream,
shimOnTrack: chromeShim.shimOnTrack,
shimSourceObject: chromeShim.shimSourceObject,
shimPeerConnection: chromeShim.shimPeerConnection,
shimGetUserMedia: __webpack_require__(330)
};
/***/ }),
/* 330 */
/***/ (function(module, exports, __webpack_require__) {
/*
* Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree.
*/
/* eslint-env node */
'use strict';
var logging = __webpack_require__(328).log;
// Expose public methods.
module.exports = function() {
var constraintsToChrome_ = function(c) {
if (typeof c !== 'object' || c.mandatory || c.optional) {
return c;
}
var cc = {};
Object.keys(c).forEach(function(key) {
if (key === 'require' || key === 'advanced' || key === 'mediaSource') {
return;
}
var r = (typeof c[key] === 'object') ? c[key] : {ideal: c[key]};
if (r.exact !== undefined && typeof r.exact === 'number') {
r.min = r.max = r.exact;
}
var oldname_ = function(prefix, name) {
if (prefix) {
return prefix + name.charAt(0).toUpperCase() + name.slice(1);
}
return (name === 'deviceId') ? 'sourceId' : name;
};
if (r.ideal !== undefined) {
cc.optional = cc.optional || [];
var oc = {};
if (typeof r.ideal === 'number') {
oc[oldname_('min', key)] = r.ideal;
cc.optional.push(oc);
oc = {};
oc[oldname_('max', key)] = r.ideal;
cc.optional.push(oc);
} else {
oc[oldname_('', key)] = r.ideal;
cc.optional.push(oc);
}
}
if (r.exact !== undefined && typeof r.exact !== 'number') {
cc.mandatory = cc.mandatory || {};
cc.mandatory[oldname_('', key)] = r.exact;
} else {
['min', 'max'].forEach(function(mix) {
if (r[mix] !== undefined) {
cc.mandatory = cc.mandatory || {};
cc.mandatory[oldname_(mix, key)] = r[mix];
}
});
}
});
if (c.advanced) {
cc.optional = (cc.optional || []).concat(c.advanced);
}
return cc;
};
var shimConstraints_ = function(constraints, func) {
constraints = JSON.parse(JSON.stringify(constraints));
if (constraints && constraints.audio) {
constraints.audio = constraintsToChrome_(constraints.audio);
}
if (constraints && typeof constraints.video === 'object') {
// Shim facingMode for mobile, where it defaults to "user".
var face = constraints.video.facingMode;
face = face && ((typeof face === 'object') ? face : {ideal: face});
if ((face && (face.exact === 'user' || face.exact === 'environment' ||
face.ideal === 'user' || face.ideal === 'environment')) &&
!(navigator.mediaDevices.getSupportedConstraints &&
navigator.mediaDevices.getSupportedConstraints().facingMode)) {
delete constraints.video.facingMode;
if (face.exact === 'environment' || face.ideal === 'environment') {
// Look for "back" in label, or use last cam (typically back cam).
return navigator.mediaDevices.enumerateDevices()
.then(function(devices) {
devices = devices.filter(function(d) {
return d.kind === 'videoinput';
});
var back = devices.find(function(d) {
return d.label.toLowerCase().indexOf('back') !== -1;
}) || (devices.length && devices[devices.length - 1]);
if (back) {
constraints.video.deviceId = face.exact ? {exact: back.deviceId} :
{ideal: back.deviceId};
}
constraints.video = constraintsToChrome_(constraints.video);
logging('chrome: ' + JSON.stringify(constraints));
return func(constraints);
});
}
}
constraints.video = constraintsToChrome_(constraints.video);
}
logging('chrome: ' + JSON.stringify(constraints));
return func(constraints);
};
var shimError_ = function(e) {
return {
name: {
PermissionDeniedError: 'NotAllowedError',
ConstraintNotSatisfiedError: 'OverconstrainedError'
}[e.name] || e.name,
message: e.message,
constraint: e.constraintName,
toString: function() {
return this.name + (this.message && ': ') + this.message;
}
};
};
var getUserMedia_ = function(constraints, onSuccess, onError) {
shimConstraints_(constraints, function(c) {
navigator.webkitGetUserMedia(c, onSuccess, function(e) {
onError(shimError_(e));
});
});
};
navigator.getUserMedia = getUserMedia_;
// Returns the result of getUserMedia as a Promise.
var getUserMediaPromise_ = function(constraints) {
return new Promise(function(resolve, reject) {
navigator.getUserMedia(constraints, resolve, reject);
});
};
if (!navigator.mediaDevices) {
navigator.mediaDevices = {
getUserMedia: getUserMediaPromise_,
enumerateDevices: function() {
return new Promise(function(resolve) {
var kinds = {audio: 'audioinput', video: 'videoinput'};
return MediaStreamTrack.getSources(function(devices) {
resolve(devices.map(function(device) {
return {label: device.label,
kind: kinds[device.kind],
deviceId: device.id,
groupId: ''};
}));
});
});
}
};
}
// A shim for getUserMedia method on the mediaDevices object.
// TODO(KaptenJansson) remove once implemented in Chrome stable.
if (!navigator.mediaDevices.getUserMedia) {
navigator.mediaDevices.getUserMedia = function(constraints) {
return getUserMediaPromise_(constraints);
};
} else {
// Even though Chrome 45 has navigator.mediaDevices and a getUserMedia
// function which returns a Promise, it does not accept spec-style
// constraints.
var origGetUserMedia = navigator.mediaDevices.getUserMedia.
bind(navigator.mediaDevices);
navigator.mediaDevices.getUserMedia = function(cs) {
return shimConstraints_(cs, function(c) {
return origGetUserMedia(c).then(function(stream) {
if (c.audio && !stream.getAudioTracks().length ||
c.video && !stream.getVideoTracks().length) {
stream.getTracks().forEach(function(track) {
track.stop();
});
throw new DOMException('', 'NotFoundError');
}
return stream;
}, function(e) {
return Promise.reject(shimError_(e));
});
});
};
}
// Dummy devicechange event methods.
// TODO(KaptenJansson) remove once implemented in Chrome stable.
if (typeof navigator.mediaDevices.addEventListener === 'undefined') {
navigator.mediaDevices.addEventListener = function() {
logging('Dummy mediaDevices.addEventListener called.');
};
}
if (typeof navigator.mediaDevices.removeEventListener === 'undefined') {
navigator.mediaDevices.removeEventListener = function() {
logging('Dummy mediaDevices.removeEventListener called.');
};
}
};
/***/ }),
/* 331 */
/***/ (function(module, exports, __webpack_require__) {
/*
* Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree.
*/
/* eslint-env node */
'use strict';
var SDPUtils = __webpack_require__(332);
var browserDetails = __webpack_require__(328).browserDetails;
var edgeShim = {
shimPeerConnection: function() {
if (window.RTCIceGatherer) {
// ORTC defines an RTCIceCandidate object but no constructor.
// Not implemented in Edge.
if (!window.RTCIceCandidate) {
window.RTCIceCandidate = function(args) {
return args;
};
}
// ORTC does not have a session description object but
// other browsers (i.e. Chrome) that will support both PC and ORTC
// in the future might have this defined already.
if (!window.RTCSessionDescription) {
window.RTCSessionDescription = function(args) {
return args;
};
}
// this adds an additional event listener to MediaStrackTrack that signals
// when a tracks enabled property was changed.
var origMSTEnabled = Object.getOwnPropertyDescriptor(
MediaStreamTrack.prototype, 'enabled');
Object.defineProperty(MediaStreamTrack.prototype, 'enabled', {
set: function(value) {
origMSTEnabled.set.call(this, value);
var ev = new Event('enabled');
ev.enabled = value;
this.dispatchEvent(ev);
}
});
}
window.RTCPeerConnection = function(config) {
var self = this;
var _eventTarget = document.createDocumentFragment();
['addEventListener', 'removeEventListener', 'dispatchEvent']
.forEach(function(method) {
self[method] = _eventTarget[method].bind(_eventTarget);
});
this.onicecandidate = null;
this.onaddstream = null;
this.ontrack = null;
this.onremovestream = null;
this.onsignalingstatechange = null;
this.oniceconnectionstatechange = null;
this.onnegotiationneeded = null;
this.ondatachannel = null;
this.localStreams = [];
this.remoteStreams = [];
this.getLocalStreams = function() {
return self.localStreams;
};
this.getRemoteStreams = function() {
return self.remoteStreams;
};
this.localDescription = new RTCSessionDescription({
type: '',
sdp: ''
});
this.remoteDescription = new RTCSessionDescription({
type: '',
sdp: ''
});
this.signalingState = 'stable';
this.iceConnectionState = 'new';
this.iceGatheringState = 'new';
this.iceOptions = {
gatherPolicy: 'all',
iceServers: []
};
if (config && config.iceTransportPolicy) {
switch (config.iceTransportPolicy) {
case 'all':
case 'relay':
this.iceOptions.gatherPolicy = config.iceTransportPolicy;
break;
case 'none':
// FIXME: remove once implementation and spec have added this.
throw new TypeError('iceTransportPolicy "none" not supported');
default:
// don't set iceTransportPolicy.
break;
}
}
this.usingBundle = config && config.bundlePolicy === 'max-bundle';
if (config && config.iceServers) {
// Edge does not like
// 1) stun:
// 2) turn: that does not have all of turn:host:port?transport=udp
// 3) turn: with ipv6 addresses
var iceServers = JSON.parse(JSON.stringify(config.iceServers));
this.iceOptions.iceServers = iceServers.filter(function(server) {
if (server && server.urls) {
var urls = server.urls;
if (typeof urls === 'string') {
urls = [urls];
}
urls = urls.filter(function(url) {
return (url.indexOf('turn:') === 0 &&
url.indexOf('transport=udp') !== -1 &&
url.indexOf('turn:[') === -1) ||
(url.indexOf('stun:') === 0 &&
browserDetails.version >= 14393);
})[0];
return !!urls;
}
return false;
});
}
this._config = config;
// per-track iceGathers, iceTransports, dtlsTransports, rtpSenders, ...
// everything that is needed to describe a SDP m-line.
this.transceivers = [];
// since the iceGatherer is currently created in createOffer but we
// must not emit candidates until after setLocalDescription we buffer
// them in this array.
this._localIceCandidatesBuffer = [];
};
window.RTCPeerConnection.prototype._emitBufferedCandidates = function() {
var self = this;
var sections = SDPUtils.splitSections(self.localDescription.sdp);
// FIXME: need to apply ice candidates in a way which is async but
// in-order
this._localIceCandidatesBuffer.forEach(function(event) {
var end = !event.candidate || Object.keys(event.candidate).length === 0;
if (end) {
for (var j = 1; j < sections.length; j++) {
if (sections[j].indexOf('\r\na=end-of-candidates\r\n') === -1) {
sections[j] += 'a=end-of-candidates\r\n';
}
}
} else if (event.candidate.candidate.indexOf('typ endOfCandidates')
=== -1) {
sections[event.candidate.sdpMLineIndex + 1] +=
'a=' + event.candidate.candidate + '\r\n';
}
self.localDescription.sdp = sections.join('');
self.dispatchEvent(event);
if (self.onicecandidate !== null) {
self.onicecandidate(event);
}
if (!event.candidate && self.iceGatheringState !== 'complete') {
var complete = self.transceivers.every(function(transceiver) {
return transceiver.iceGatherer &&
transceiver.iceGatherer.state === 'completed';
});
if (complete) {
self.iceGatheringState = 'complete';
}
}
});
this._localIceCandidatesBuffer = [];
};
window.RTCPeerConnection.prototype.getConfiguration = function() {
return this._config;
};
window.RTCPeerConnection.prototype.addStream = function(stream) {
// Clone is necessary for local demos mostly, attaching directly
// to two different senders does not work (build 10547).
var clonedStream = stream.clone();
stream.getTracks().forEach(function(track, idx) {
var clonedTrack = clonedStream.getTracks()[idx];
track.addEventListener('enabled', function(event) {
clonedTrack.enabled = event.enabled;
});
});
this.localStreams.push(clonedStream);
this._maybeFireNegotiationNeeded();
};
window.RTCPeerConnection.prototype.removeStream = function(stream) {
var idx = this.localStreams.indexOf(stream);
if (idx > -1) {
this.localStreams.splice(idx, 1);
this._maybeFireNegotiationNeeded();
}
};
window.RTCPeerConnection.prototype.getSenders = function() {
return this.transceivers.filter(function(transceiver) {
return !!transceiver.rtpSender;
})
.map(function(transceiver) {
return transceiver.rtpSender;
});
};
window.RTCPeerConnection.prototype.getReceivers = function() {
return this.transceivers.filter(function(transceiver) {
return !!transceiver.rtpReceiver;
})
.map(function(transceiver) {
return transceiver.rtpReceiver;
});
};
// Determines the intersection of local and remote capabilities.
window.RTCPeerConnection.prototype._getCommonCapabilities =
function(localCapabilities, remoteCapabilities) {
var commonCapabilities = {
codecs: [],
headerExtensions: [],
fecMechanisms: []
};
localCapabilities.codecs.forEach(function(lCodec) {
for (var i = 0; i < remoteCapabilities.codecs.length; i++) {
var rCodec = remoteCapabilities.codecs[i];
if (lCodec.name.toLowerCase() === rCodec.name.toLowerCase() &&
lCodec.clockRate === rCodec.clockRate) {
// number of channels is the highest common number of channels
rCodec.numChannels = Math.min(lCodec.numChannels,
rCodec.numChannels);
// push rCodec so we reply with offerer payload type
commonCapabilities.codecs.push(rCodec);
// determine common feedback mechanisms
rCodec.rtcpFeedback = rCodec.rtcpFeedback.filter(function(fb) {
for (var j = 0; j < lCodec.rtcpFeedback.length; j++) {
if (lCodec.rtcpFeedback[j].type === fb.type &&
lCodec.rtcpFeedback[j].parameter === fb.parameter) {
return true;
}
}
return false;
});
// FIXME: also need to determine .parameters
// see https://github.com/openpeer/ortc/issues/569
break;
}
}
});
localCapabilities.headerExtensions
.forEach(function(lHeaderExtension) {
for (var i = 0; i < remoteCapabilities.headerExtensions.length;
i++) {
var rHeaderExtension = remoteCapabilities.headerExtensions[i];
if (lHeaderExtension.uri === rHeaderExtension.uri) {
commonCapabilities.headerExtensions.push(rHeaderExtension);
break;
}
}
});
// FIXME: fecMechanisms
return commonCapabilities;
};
// Create ICE gatherer, ICE transport and DTLS transport.
window.RTCPeerConnection.prototype._createIceAndDtlsTransports =
function(mid, sdpMLineIndex) {
var self = this;
var iceGatherer = new RTCIceGatherer(self.iceOptions);
var iceTransport = new RTCIceTransport(iceGatherer);
iceGatherer.onlocalcandidate = function(evt) {
var event = new Event('icecandidate');
event.candidate = {sdpMid: mid, sdpMLineIndex: sdpMLineIndex};
var cand = evt.candidate;
var end = !cand || Object.keys(cand).length === 0;
// Edge emits an empty object for RTCIceCandidateComplete‥
if (end) {
// polyfill since RTCIceGatherer.state is not implemented in
// Edge 10547 yet.
if (iceGatherer.state === undefined) {
iceGatherer.state = 'completed';
}
// Emit a candidate with type endOfCandidates to make the samples
// work. Edge requires addIceCandidate with this empty candidate
// to start checking. The real solution is to signal
// end-of-candidates to the other side when getting the null
// candidate but some apps (like the samples) don't do that.
event.candidate.candidate =
'candidate:1 1 udp 1 0.0.0.0 9 typ endOfCandidates';
} else {
// RTCIceCandidate doesn't have a component, needs to be added
cand.component = iceTransport.component === 'RTCP' ? 2 : 1;
event.candidate.candidate = SDPUtils.writeCandidate(cand);
}
// update local description.
var sections = SDPUtils.splitSections(self.localDescription.sdp);
if (event.candidate.candidate.indexOf('typ endOfCandidates')
=== -1) {
sections[event.candidate.sdpMLineIndex + 1] +=
'a=' + event.candidate.candidate + '\r\n';
} else {
sections[event.candidate.sdpMLineIndex + 1] +=
'a=end-of-candidates\r\n';
}
self.localDescription.sdp = sections.join('');
var complete = self.transceivers.every(function(transceiver) {
return transceiver.iceGatherer &&
transceiver.iceGatherer.state === 'completed';
});
// Emit candidate if localDescription is set.
// Also emits null candidate when all gatherers are complete.
switch (self.iceGatheringState) {
case 'new':
self._localIceCandidatesBuffer.push(event);
if (end && complete) {
self._localIceCandidatesBuffer.push(
new Event('icecandidate'));
}
break;
case 'gathering':
self._emitBufferedCandidates();
self.dispatchEvent(event);
if (self.onicecandidate !== null) {
self.onicecandidate(event);
}
if (complete) {
self.dispatchEvent(new Event('icecandidate'));
if (self.onicecandidate !== null) {
self.onicecandidate(new Event('icecandidate'));
}
self.iceGatheringState = 'complete';
}
break;
case 'complete':
// should not happen... currently!
break;
default: // no-op.
break;
}
};
iceTransport.onicestatechange = function() {
self._updateConnectionState();
};
var dtlsTransport = new RTCDtlsTransport(iceTransport);
dtlsTransport.ondtlsstatechange = function() {
self._updateConnectionState();
};
dtlsTransport.onerror = function() {
// onerror does not set state to failed by itself.
dtlsTransport.state = 'failed';
self._updateConnectionState();
};
return {
iceGatherer: iceGatherer,
iceTransport: iceTransport,
dtlsTransport: dtlsTransport
};
};
// Start the RTP Sender and Receiver for a transceiver.
window.RTCPeerConnection.prototype._transceive = function(transceiver,
send, recv) {
var params = this._getCommonCapabilities(transceiver.localCapabilities,
transceiver.remoteCapabilities);
if (send && transceiver.rtpSender) {
params.encodings = transceiver.sendEncodingParameters;
params.rtcp = {
cname: SDPUtils.localCName
};
if (transceiver.recvEncodingParameters.length) {
params.rtcp.ssrc = transceiver.recvEncodingParameters[0].ssrc;
}
transceiver.rtpSender.send(params);
}
if (recv && transceiver.rtpReceiver) {
// remove RTX field in Edge 14942
if (transceiver.kind === 'video'
&& transceiver.recvEncodingParameters) {
transceiver.recvEncodingParameters.forEach(function(p) {
delete p.rtx;
});
}
params.encodings = transceiver.recvEncodingParameters;
params.rtcp = {
cname: transceiver.cname
};
if (transceiver.sendEncodingParameters.length) {
params.rtcp.ssrc = transceiver.sendEncodingParameters[0].ssrc;
}
transceiver.rtpReceiver.receive(params);
}
};
window.RTCPeerConnection.prototype.setLocalDescription =
function(description) {
var self = this;
var sections;
var sessionpart;
if (description.type === 'offer') {
// FIXME: What was the purpose of this empty if statement?
// if (!this._pendingOffer) {
// } else {
if (this._pendingOffer) {
// VERY limited support for SDP munging. Limited to:
// * changing the order of codecs
sections = SDPUtils.splitSections(description.sdp);
sessionpart = sections.shift();
sections.forEach(function(mediaSection, sdpMLineIndex) {
var caps = SDPUtils.parseRtpParameters(mediaSection);
self._pendingOffer[sdpMLineIndex].localCapabilities = caps;
});
this.transceivers = this._pendingOffer;
delete this._pendingOffer;
}
} else if (description.type === 'answer') {
sections = SDPUtils.splitSections(self.remoteDescription.sdp);
sessionpart = sections.shift();
var isIceLite = SDPUtils.matchPrefix(sessionpart,
'a=ice-lite').length > 0;
sections.forEach(function(mediaSection, sdpMLineIndex) {
var transceiver = self.transceivers[sdpMLineIndex];
var iceGatherer = transceiver.iceGatherer;
var iceTransport = transceiver.iceTransport;
var dtlsTransport = transceiver.dtlsTransport;
var localCapabilities = transceiver.localCapabilities;
var remoteCapabilities = transceiver.remoteCapabilities;
var rejected = mediaSection.split('\n', 1)[0]
.split(' ', 2)[1] === '0';
if (!rejected && !transceiver.isDatachannel) {
var remoteIceParameters = SDPUtils.getIceParameters(
mediaSection, sessionpart);
if (isIceLite) {
var cands = SDPUtils.matchPrefix(mediaSection, 'a=candidate:')
.map(function(cand) {
return SDPUtils.parseCandidate(cand);
})
.filter(function(cand) {
return cand.component === '1';
});
// ice-lite only includes host candidates in the SDP so we can
// use setRemoteCandidates (which implies an
// RTCIceCandidateComplete)
if (cands.length) {
iceTransport.setRemoteCandidates(cands);
}
}
var remoteDtlsParameters = SDPUtils.getDtlsParameters(
mediaSection, sessionpart);
if (isIceLite) {
remoteDtlsParameters.role = 'server';
}
if (!self.usingBundle || sdpMLineIndex === 0) {
iceTransport.start(iceGatherer, remoteIceParameters,
isIceLite ? 'controlling' : 'controlled');
dtlsTransport.start(remoteDtlsParameters);
}
// Calculate intersection of capabilities.
var params = self._getCommonCapabilities(localCapabilities,
remoteCapabilities);
// Start the RTCRtpSender. The RTCRtpReceiver for this
// transceiver has already been started in setRemoteDescription.
self._transceive(transceiver,
params.codecs.length > 0,
false);
}
});
}
this.localDescription = {
type: description.type,
sdp: description.sdp
};
switch (description.type) {
case 'offer':
this._updateSignalingState('have-local-offer');
break;
case 'answer':
this._updateSignalingState('stable');
break;
default:
throw new TypeError('unsupported type "' + description.type +
'"');
}
// If a success callback was provided, emit ICE candidates after it
// has been executed. Otherwise, emit callback after the Promise is
// resolved.
var hasCallback = arguments.length > 1 &&
typeof arguments[1] === 'function';
if (hasCallback) {
var cb = arguments[1];
window.setTimeout(function() {
cb();
if (self.iceGatheringState === 'new') {
self.iceGatheringState = 'gathering';
}
self._emitBufferedCandidates();
}, 0);
}
var p = Promise.resolve();
p.then(function() {
if (!hasCallback) {
if (self.iceGatheringState === 'new') {
self.iceGatheringState = 'gathering';
}
// Usually candidates will be emitted earlier.
window.setTimeout(self._emitBufferedCandidates.bind(self), 500);
}
});
return p;
};
window.RTCPeerConnection.prototype.setRemoteDescription =
function(description) {
var self = this;
var stream = new MediaStream();
var receiverList = [];
var sections = SDPUtils.splitSections(description.sdp);
var sessionpart = sections.shift();
var isIceLite = SDPUtils.matchPrefix(sessionpart,
'a=ice-lite').length > 0;
this.usingBundle = SDPUtils.matchPrefix(sessionpart,
'a=group:BUNDLE ').length > 0;
sections.forEach(function(mediaSection, sdpMLineIndex) {
var lines = SDPUtils.splitLines(mediaSection);
var mline = lines[0].substr(2).split(' ');
var kind = mline[0];
var rejected = mline[1] === '0';
var direction = SDPUtils.getDirection(mediaSection, sessionpart);
var mid = SDPUtils.matchPrefix(mediaSection, 'a=mid:');
if (mid.length) {
mid = mid[0].substr(6);
} else {
mid = SDPUtils.generateIdentifier();
}
// Reject datachannels which are not implemented yet.
if (kind === 'application' && mline[2] === 'DTLS/SCTP') {
self.transceivers[sdpMLineIndex] = {
mid: mid,
isDatachannel: true
};
return;
}
var transceiver;
var iceGatherer;
var iceTransport;
var dtlsTransport;
var rtpSender;
var rtpReceiver;
var sendEncodingParameters;
var recvEncodingParameters;
var localCapabilities;
var track;
// FIXME: ensure the mediaSection has rtcp-mux set.
var remoteCapabilities = SDPUtils.parseRtpParameters(mediaSection);
var remoteIceParameters;
var remoteDtlsParameters;
if (!rejected) {
remoteIceParameters = SDPUtils.getIceParameters(mediaSection,
sessionpart);
remoteDtlsParameters = SDPUtils.getDtlsParameters(mediaSection,
sessionpart);
remoteDtlsParameters.role = 'client';
}
recvEncodingParameters =
SDPUtils.parseRtpEncodingParameters(mediaSection);
var cname;
// Gets the first SSRC. Note that with RTX there might be multiple
// SSRCs.
var remoteSsrc = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')
.map(function(line) {
return SDPUtils.parseSsrcMedia(line);
})
.filter(function(obj) {
return obj.attribute === 'cname';
})[0];
if (remoteSsrc) {
cname = remoteSsrc.value;
}
var isComplete = SDPUtils.matchPrefix(mediaSection,
'a=end-of-candidates', sessionpart).length > 0;
var cands = SDPUtils.matchPrefix(mediaSection, 'a=candidate:')
.map(function(cand) {
return SDPUtils.parseCandidate(cand);
})
.filter(function(cand) {
return cand.component === '1';
});
if (description.type === 'offer' && !rejected) {
var transports = self.usingBundle && sdpMLineIndex > 0 ? {
iceGatherer: self.transceivers[0].iceGatherer,
iceTransport: self.transceivers[0].iceTransport,
dtlsTransport: self.transceivers[0].dtlsTransport
} : self._createIceAndDtlsTransports(mid, sdpMLineIndex);
if (isComplete) {
transports.iceTransport.setRemoteCandidates(cands);
}
localCapabilities = RTCRtpReceiver.getCapabilities(kind);
// filter RTX until additional stuff needed for RTX is implemented
// in adapter.js
localCapabilities.codecs = localCapabilities.codecs.filter(
function(codec) {
return codec.name !== 'rtx';
});
sendEncodingParameters = [{
ssrc: (2 * sdpMLineIndex + 2) * 1001
}];
rtpReceiver = new RTCRtpReceiver(transports.dtlsTransport, kind);
track = rtpReceiver.track;
receiverList.push([track, rtpReceiver]);
// FIXME: not correct when there are multiple streams but that is
// not currently supported in this shim.
stream.addTrack(track);
// FIXME: look at direction.
if (self.localStreams.length > 0 &&
self.localStreams[0].getTracks().length >= sdpMLineIndex) {
var localTrack;
if (kind === 'audio') {
localTrack = self.localStreams[0].getAudioTracks()[0];
} else if (kind === 'video') {
localTrack = self.localStreams[0].getVideoTracks()[0];
}
if (localTrack) {
rtpSender = new RTCRtpSender(localTrack,
transports.dtlsTransport);
}
}
self.transceivers[sdpMLineIndex] = {
iceGatherer: transports.iceGatherer,
iceTransport: transports.iceTransport,
dtlsTransport: transports.dtlsTransport,
localCapabilities: localCapabilities,
remoteCapabilities: remoteCapabilities,
rtpSender: rtpSender,
rtpReceiver: rtpReceiver,
kind: kind,
mid: mid,
cname: cname,
sendEncodingParameters: sendEncodingParameters,
recvEncodingParameters: recvEncodingParameters
};
// Start the RTCRtpReceiver now. The RTPSender is started in
// setLocalDescription.
self._transceive(self.transceivers[sdpMLineIndex],
false,
direction === 'sendrecv' || direction === 'sendonly');
} else if (description.type === 'answer' && !rejected) {
transceiver = self.transceivers[sdpMLineIndex];
iceGatherer = transceiver.iceGatherer;
iceTransport = transceiver.iceTransport;
dtlsTransport = transceiver.dtlsTransport;
rtpSender = transceiver.rtpSender;
rtpReceiver = transceiver.rtpReceiver;
sendEncodingParameters = transceiver.sendEncodingParameters;
localCapabilities = transceiver.localCapabilities;
self.transceivers[sdpMLineIndex].recvEncodingParameters =
recvEncodingParameters;
self.transceivers[sdpMLineIndex].remoteCapabilities =
remoteCapabilities;
self.transceivers[sdpMLineIndex].cname = cname;
if ((isIceLite || isComplete) && cands.length) {
iceTransport.setRemoteCandidates(cands);
}
if (!self.usingBundle || sdpMLineIndex === 0) {
iceTransport.start(iceGatherer, remoteIceParameters,
'controlling');
dtlsTransport.start(remoteDtlsParameters);
}
self._transceive(transceiver,
direction === 'sendrecv' || direction === 'recvonly',
direction === 'sendrecv' || direction === 'sendonly');
if (rtpReceiver &&
(direction === 'sendrecv' || direction === 'sendonly')) {
track = rtpReceiver.track;
receiverList.push([track, rtpReceiver]);
stream.addTrack(track);
} else {
// FIXME: actually the receiver should be created later.
delete transceiver.rtpReceiver;
}
}
});
this.remoteDescription = {
type: description.type,
sdp: description.sdp
};
switch (description.type) {
case 'offer':
this._updateSignalingState('have-remote-offer');
break;
case 'answer':
this._updateSignalingState('stable');
break;
default:
throw new TypeError('unsupported type "' + description.type +
'"');
}
if (stream.getTracks().length) {
self.remoteStreams.push(stream);
window.setTimeout(function() {
var event = new Event('addstream');
event.stream = stream;
self.dispatchEvent(event);
if (self.onaddstream !== null) {
window.setTimeout(function() {
self.onaddstream(event);
}, 0);
}
receiverList.forEach(function(item) {
var track = item[0];
var receiver = item[1];
var trackEvent = new Event('track');
trackEvent.track = track;
trackEvent.receiver = receiver;
trackEvent.streams = [stream];
self.dispatchEvent(event);
if (self.ontrack !== null) {
window.setTimeout(function() {
self.ontrack(trackEvent);
}, 0);
}
});
}, 0);
}
if (arguments.length > 1 && typeof arguments[1] === 'function') {
window.setTimeout(arguments[1], 0);
}
return Promise.resolve();
};
window.RTCPeerConnection.prototype.close = function() {
this.transceivers.forEach(function(transceiver) {
/* not yet
if (transceiver.iceGatherer) {
transceiver.iceGatherer.close();
}
*/
if (transceiver.iceTransport) {
transceiver.iceTransport.stop();
}
if (transceiver.dtlsTransport) {
transceiver.dtlsTransport.stop();
}
if (transceiver.rtpSender) {
transceiver.rtpSender.stop();
}
if (transceiver.rtpReceiver) {
transceiver.rtpReceiver.stop();
}
});
// FIXME: clean up tracks, local streams, remote streams, etc
this._updateSignalingState('closed');
};
// Update the signaling state.
window.RTCPeerConnection.prototype._updateSignalingState =
function(newState) {
this.signalingState = newState;
var event = new Event('signalingstatechange');
this.dispatchEvent(event);
if (this.onsignalingstatechange !== null) {
this.onsignalingstatechange(event);
}
};
// Determine whether to fire the negotiationneeded event.
window.RTCPeerConnection.prototype._maybeFireNegotiationNeeded =
function() {
// Fire away (for now).
var event = new Event('negotiationneeded');
this.dispatchEvent(event);
if (this.onnegotiationneeded !== null) {
this.onnegotiationneeded(event);
}
};
// Update the connection state.
window.RTCPeerConnection.prototype._updateConnectionState = function() {
var self = this;
var newState;
var states = {
'new': 0,
closed: 0,
connecting: 0,
checking: 0,
connected: 0,
completed: 0,
failed: 0
};
this.transceivers.forEach(function(transceiver) {
states[transceiver.iceTransport.state]++;
states[transceiver.dtlsTransport.state]++;
});
// ICETransport.completed and connected are the same for this purpose.
states.connected += states.completed;
newState = 'new';
if (states.failed > 0) {
newState = 'failed';
} else if (states.connecting > 0 || states.checking > 0) {
newState = 'connecting';
} else if (states.disconnected > 0) {
newState = 'disconnected';
} else if (states.new > 0) {
newState = 'new';
} else if (states.connected > 0 || states.completed > 0) {
newState = 'connected';
}
if (newState !== self.iceConnectionState) {
self.iceConnectionState = newState;
var event = new Event('iceconnectionstatechange');
this.dispatchEvent(event);
if (this.oniceconnectionstatechange !== null) {
this.oniceconnectionstatechange(event);
}
}
};
window.RTCPeerConnection.prototype.createOffer = function() {
var self = this;
if (this._pendingOffer) {
throw new Error('createOffer called while there is a pending offer.');
}
var offerOptions;
if (arguments.length === 1 && typeof arguments[0] !== 'function') {
offerOptions = arguments[0];
} else if (arguments.length === 3) {
offerOptions = arguments[2];
}
var tracks = [];
var numAudioTracks = 0;
var numVideoTracks = 0;
// Default to sendrecv.
if (this.localStreams.length) {
numAudioTracks = this.localStreams[0].getAudioTracks().length;
numVideoTracks = this.localStreams[0].getVideoTracks().length;
}
// Determine number of audio and video tracks we need to send/recv.
if (offerOptions) {
// Reject Chrome legacy constraints.
if (offerOptions.mandatory || offerOptions.optional) {
throw new TypeError(
'Legacy mandatory/optional constraints not supported.');
}
if (offerOptions.offerToReceiveAudio !== undefined) {
numAudioTracks = offerOptions.offerToReceiveAudio;
}
if (offerOptions.offerToReceiveVideo !== undefined) {
numVideoTracks = offerOptions.offerToReceiveVideo;
}
}
if (this.localStreams.length) {
// Push local streams.
this.localStreams[0].getTracks().forEach(function(track) {
tracks.push({
kind: track.kind,
track: track,
wantReceive: track.kind === 'audio' ?
numAudioTracks > 0 : numVideoTracks > 0
});
if (track.kind === 'audio') {
numAudioTracks--;
} else if (track.kind === 'video') {
numVideoTracks--;
}
});
}
// Create M-lines for recvonly streams.
while (numAudioTracks > 0 || numVideoTracks > 0) {
if (numAudioTracks > 0) {
tracks.push({
kind: 'audio',
wantReceive: true
});
numAudioTracks--;
}
if (numVideoTracks > 0) {
tracks.push({
kind: 'video',
wantReceive: true
});
numVideoTracks--;
}
}
var sdp = SDPUtils.writeSessionBoilerplate();
var transceivers = [];
tracks.forEach(function(mline, sdpMLineIndex) {
// For each track, create an ice gatherer, ice transport,
// dtls transport, potentially rtpsender and rtpreceiver.
var track = mline.track;
var kind = mline.kind;
var mid = SDPUtils.generateIdentifier();
var transports = self.usingBundle && sdpMLineIndex > 0 ? {
iceGatherer: transceivers[0].iceGatherer,
iceTransport: transceivers[0].iceTransport,
dtlsTransport: transceivers[0].dtlsTransport
} : self._createIceAndDtlsTransports(mid, sdpMLineIndex);
var localCapabilities = RTCRtpSender.getCapabilities(kind);
// filter RTX until additional stuff needed for RTX is implemented
// in adapter.js
localCapabilities.codecs = localCapabilities.codecs.filter(
function(codec) {
return codec.name !== 'rtx';
});
localCapabilities.codecs.forEach(function(codec) {
// work around https://bugs.chromium.org/p/webrtc/issues/detail?id=6552
// by adding level-asymmetry-allowed=1
if (codec.name === 'H264' &&
codec.parameters['level-asymmetry-allowed'] === undefined) {
codec.parameters['level-asymmetry-allowed'] = '1';
}
});
var rtpSender;
var rtpReceiver;
// generate an ssrc now, to be used later in rtpSender.send
var sendEncodingParameters = [{
ssrc: (2 * sdpMLineIndex + 1) * 1001
}];
if (track) {
rtpSender = new RTCRtpSender(track, transports.dtlsTransport);
}
if (mline.wantReceive) {
rtpReceiver = new RTCRtpReceiver(transports.dtlsTransport, kind);
}
transceivers[sdpMLineIndex] = {
iceGatherer: transports.iceGatherer,
iceTransport: transports.iceTransport,
dtlsTransport: transports.dtlsTransport,
localCapabilities: localCapabilities,
remoteCapabilities: null,
rtpSender: rtpSender,
rtpReceiver: rtpReceiver,
kind: kind,
mid: mid,
sendEncodingParameters: sendEncodingParameters,
recvEncodingParameters: null
};
});
if (this.usingBundle) {
sdp += 'a=group:BUNDLE ' + transceivers.map(function(t) {
return t.mid;
}).join(' ') + '\r\n';
}
tracks.forEach(function(mline, sdpMLineIndex) {
var transceiver = transceivers[sdpMLineIndex];
sdp += SDPUtils.writeMediaSection(transceiver,
transceiver.localCapabilities, 'offer', self.localStreams[0]);
});
this._pendingOffer = transceivers;
var desc = new RTCSessionDescription({
type: 'offer',
sdp: sdp
});
if (arguments.length && typeof arguments[0] === 'function') {
window.setTimeout(arguments[0], 0, desc);
}
return Promise.resolve(desc);
};
window.RTCPeerConnection.prototype.createAnswer = function() {
var self = this;
var sdp = SDPUtils.writeSessionBoilerplate();
if (this.usingBundle) {
sdp += 'a=group:BUNDLE ' + this.transceivers.map(function(t) {
return t.mid;
}).join(' ') + '\r\n';
}
this.transceivers.forEach(function(transceiver) {
if (transceiver.isDatachannel) {
sdp += 'm=application 0 DTLS/SCTP 5000\r\n' +
'c=IN IP4 0.0.0.0\r\n' +
'a=mid:' + transceiver.mid + '\r\n';
return;
}
// Calculate intersection of capabilities.
var commonCapabilities = self._getCommonCapabilities(
transceiver.localCapabilities,
transceiver.remoteCapabilities);
sdp += SDPUtils.writeMediaSection(transceiver, commonCapabilities,
'answer', self.localStreams[0]);
});
var desc = new RTCSessionDescription({
type: 'answer',
sdp: sdp
});
if (arguments.length && typeof arguments[0] === 'function') {
window.setTimeout(arguments[0], 0, desc);
}
return Promise.resolve(desc);
};
window.RTCPeerConnection.prototype.addIceCandidate = function(candidate) {
if (!candidate) {
this.transceivers.forEach(function(transceiver) {
transceiver.iceTransport.addRemoteCandidate({});
});
} else {
var mLineIndex = candidate.sdpMLineIndex;
if (candidate.sdpMid) {
for (var i = 0; i < this.transceivers.length; i++) {
if (this.transceivers[i].mid === candidate.sdpMid) {
mLineIndex = i;
break;
}
}
}
var transceiver = this.transceivers[mLineIndex];
if (transceiver) {
var cand = Object.keys(candidate.candidate).length > 0 ?
SDPUtils.parseCandidate(candidate.candidate) : {};
// Ignore Chrome's invalid candidates since Edge does not like them.
if (cand.protocol === 'tcp' && (cand.port === 0 || cand.port === 9)) {
return;
}
// Ignore RTCP candidates, we assume RTCP-MUX.
if (cand.component !== '1') {
return;
}
// A dirty hack to make samples work.
if (cand.type === 'endOfCandidates') {
cand = {};
}
transceiver.iceTransport.addRemoteCandidate(cand);
// update the remoteDescription.
var sections = SDPUtils.splitSections(this.remoteDescription.sdp);
sections[mLineIndex + 1] += (cand.type ? candidate.candidate.trim()
: 'a=end-of-candidates') + '\r\n';
this.remoteDescription.sdp = sections.join('');
}
}
if (arguments.length > 1 && typeof arguments[1] === 'function') {
window.setTimeout(arguments[1], 0);
}
return Promise.resolve();
};
window.RTCPeerConnection.prototype.getStats = function() {
var promises = [];
this.transceivers.forEach(function(transceiver) {
['rtpSender', 'rtpReceiver', 'iceGatherer', 'iceTransport',
'dtlsTransport'].forEach(function(method) {
if (transceiver[method]) {
promises.push(transceiver[method].getStats());
}
});
});
var cb = arguments.length > 1 && typeof arguments[1] === 'function' &&
arguments[1];
return new Promise(function(resolve) {
// shim getStats with maplike support
var results = new Map();
Promise.all(promises).then(function(res) {
res.forEach(function(result) {
Object.keys(result).forEach(function(id) {
results.set(id, result[id]);
results[id] = result[id];
});
});
if (cb) {
window.setTimeout(cb, 0, results);
}
resolve(results);
});
});
};
}
};
// Expose public methods.
module.exports = {
shimPeerConnection: edgeShim.shimPeerConnection,
shimGetUserMedia: __webpack_require__(333)
};
/***/ }),
/* 332 */
/***/ (function(module, exports) {
/* eslint-env node */
'use strict';
// SDP helpers.
var SDPUtils = {};
// Generate an alphanumeric identifier for cname or mids.
// TODO: use UUIDs instead? https://gist.github.com/jed/982883
SDPUtils.generateIdentifier = function() {
return Math.random().toString(36).substr(2, 10);
};
// The RTCP CNAME used by all peerconnections from the same JS.
SDPUtils.localCName = SDPUtils.generateIdentifier();
// Splits SDP into lines, dealing with both CRLF and LF.
SDPUtils.splitLines = function(blob) {
return blob.trim().split('\n').map(function(line) {
return line.trim();
});
};
// Splits SDP into sessionpart and mediasections. Ensures CRLF.
SDPUtils.splitSections = function(blob) {
var parts = blob.split('\nm=');
return parts.map(function(part, index) {
return (index > 0 ? 'm=' + part : part).trim() + '\r\n';
});
};
// Returns lines that start with a certain prefix.
SDPUtils.matchPrefix = function(blob, prefix) {
return SDPUtils.splitLines(blob).filter(function(line) {
return line.indexOf(prefix) === 0;
});
};
// Parses an ICE candidate line. Sample input:
// candidate:702786350 2 udp 41819902 8.8.8.8 60769 typ relay raddr 8.8.8.8
// rport 55996"
SDPUtils.parseCandidate = function(line) {
var parts;
// Parse both variants.
if (line.indexOf('a=candidate:') === 0) {
parts = line.substring(12).split(' ');
} else {
parts = line.substring(10).split(' ');
}
var candidate = {
foundation: parts[0],
component: parts[1],
protocol: parts[2].toLowerCase(),
priority: parseInt(parts[3], 10),
ip: parts[4],
port: parseInt(parts[5], 10),
// skip parts[6] == 'typ'
type: parts[7]
};
for (var i = 8; i < parts.length; i += 2) {
switch (parts[i]) {
case 'raddr':
candidate.relatedAddress = parts[i + 1];
break;
case 'rport':
candidate.relatedPort = parseInt(parts[i + 1], 10);
break;
case 'tcptype':
candidate.tcpType = parts[i + 1];
break;
default: // extension handling, in particular ufrag
candidate[parts[i]] = parts[i + 1];
break;
}
}
return candidate;
};
// Translates a candidate object into SDP candidate attribute.
SDPUtils.writeCandidate = function(candidate) {
var sdp = [];
sdp.push(candidate.foundation);
sdp.push(candidate.component);
sdp.push(candidate.protocol.toUpperCase());
sdp.push(candidate.priority);
sdp.push(candidate.ip);
sdp.push(candidate.port);
var type = candidate.type;
sdp.push('typ');
sdp.push(type);
if (type !== 'host' && candidate.relatedAddress &&
candidate.relatedPort) {
sdp.push('raddr');
sdp.push(candidate.relatedAddress); // was: relAddr
sdp.push('rport');
sdp.push(candidate.relatedPort); // was: relPort
}
if (candidate.tcpType && candidate.protocol.toLowerCase() === 'tcp') {
sdp.push('tcptype');
sdp.push(candidate.tcpType);
}
return 'candidate:' + sdp.join(' ');
};
// Parses an ice-options line, returns an array of option tags.
// a=ice-options:foo bar
SDPUtils.parseIceOptions = function(line) {
return line.substr(14).split(' ');
}
// Parses an rtpmap line, returns RTCRtpCoddecParameters. Sample input:
// a=rtpmap:111 opus/48000/2
SDPUtils.parseRtpMap = function(line) {
var parts = line.substr(9).split(' ');
var parsed = {
payloadType: parseInt(parts.shift(), 10) // was: id
};
parts = parts[0].split('/');
parsed.name = parts[0];
parsed.clockRate = parseInt(parts[1], 10); // was: clockrate
// was: channels
parsed.numChannels = parts.length === 3 ? parseInt(parts[2], 10) : 1;
return parsed;
};
// Generate an a=rtpmap line from RTCRtpCodecCapability or
// RTCRtpCodecParameters.
SDPUtils.writeRtpMap = function(codec) {
var pt = codec.payloadType;
if (codec.preferredPayloadType !== undefined) {
pt = codec.preferredPayloadType;
}
return 'a=rtpmap:' + pt + ' ' + codec.name + '/' + codec.clockRate +
(codec.numChannels !== 1 ? '/' + codec.numChannels : '') + '\r\n';
};
// Parses an a=extmap line (headerextension from RFC 5285). Sample input:
// a=extmap:2 urn:ietf:params:rtp-hdrext:toffset
// a=extmap:2/sendonly urn:ietf:params:rtp-hdrext:toffset
SDPUtils.parseExtmap = function(line) {
var parts = line.substr(9).split(' ');
return {
id: parseInt(parts[0], 10),
direction: parts[0].indexOf('/') > 0 ? parts[0].split('/')[1] : 'sendrecv',
uri: parts[1]
};
};
// Generates a=extmap line from RTCRtpHeaderExtensionParameters or
// RTCRtpHeaderExtension.
SDPUtils.writeExtmap = function(headerExtension) {
return 'a=extmap:' + (headerExtension.id || headerExtension.preferredId) +
(headerExtension.direction && headerExtension.direction !== 'sendrecv'
? '/' + headerExtension.direction
: '') +
' ' + headerExtension.uri + '\r\n';
};
// Parses an ftmp line, returns dictionary. Sample input:
// a=fmtp:96 vbr=on;cng=on
// Also deals with vbr=on; cng=on
SDPUtils.parseFmtp = function(line) {
var parsed = {};
var kv;
var parts = line.substr(line.indexOf(' ') + 1).split(';');
for (var j = 0; j < parts.length; j++) {
kv = parts[j].trim().split('=');
parsed[kv[0].trim()] = kv[1];
}
return parsed;
};
// Generates an a=ftmp line from RTCRtpCodecCapability or RTCRtpCodecParameters.
SDPUtils.writeFmtp = function(codec) {
var line = '';
var pt = codec.payloadType;
if (codec.preferredPayloadType !== undefined) {
pt = codec.preferredPayloadType;
}
if (codec.parameters && Object.keys(codec.parameters).length) {
var params = [];
Object.keys(codec.parameters).forEach(function(param) {
params.push(param + '=' + codec.parameters[param]);
});
line += 'a=fmtp:' + pt + ' ' + params.join(';') + '\r\n';
}
return line;
};
// Parses an rtcp-fb line, returns RTCPRtcpFeedback object. Sample input:
// a=rtcp-fb:98 nack rpsi
SDPUtils.parseRtcpFb = function(line) {
var parts = line.substr(line.indexOf(' ') + 1).split(' ');
return {
type: parts.shift(),
parameter: parts.join(' ')
};
};
// Generate a=rtcp-fb lines from RTCRtpCodecCapability or RTCRtpCodecParameters.
SDPUtils.writeRtcpFb = function(codec) {
var lines = '';
var pt = codec.payloadType;
if (codec.preferredPayloadType !== undefined) {
pt = codec.preferredPayloadType;
}
if (codec.rtcpFeedback && codec.rtcpFeedback.length) {
// FIXME: special handling for trr-int?
codec.rtcpFeedback.forEach(function(fb) {
lines += 'a=rtcp-fb:' + pt + ' ' + fb.type +
(fb.parameter && fb.parameter.length ? ' ' + fb.parameter : '') +
'\r\n';
});
}
return lines;
};
// Parses an RFC 5576 ssrc media attribute. Sample input:
// a=ssrc:3735928559 cname:something
SDPUtils.parseSsrcMedia = function(line) {
var sp = line.indexOf(' ');
var parts = {
ssrc: parseInt(line.substr(7, sp - 7), 10)
};
var colon = line.indexOf(':', sp);
if (colon > -1) {
parts.attribute = line.substr(sp + 1, colon - sp - 1);
parts.value = line.substr(colon + 1);
} else {
parts.attribute = line.substr(sp + 1);
}
return parts;
};
// Extracts the MID (RFC 5888) from a media section.
// returns the MID or undefined if no mid line was found.
SDPUtils.getMid = function(mediaSection) {
var mid = SDPUtils.matchPrefix(mediaSection, 'a=mid:')[0];
if (mid) {
return mid.substr(6);
}
}
SDPUtils.parseFingerprint = function(line) {
var parts = line.substr(14).split(' ');
return {
algorithm: parts[0].toLowerCase(), // algorithm is case-sensitive in Edge.
value: parts[1]
};
};
// Extracts DTLS parameters from SDP media section or sessionpart.
// FIXME: for consistency with other functions this should only
// get the fingerprint line as input. See also getIceParameters.
SDPUtils.getDtlsParameters = function(mediaSection, sessionpart) {
var lines = SDPUtils.matchPrefix(mediaSection + sessionpart,
'a=fingerprint:');
// Note: a=setup line is ignored since we use the 'auto' role.
// Note2: 'algorithm' is not case sensitive except in Edge.
return {
role: 'auto',
fingerprints: lines.map(SDPUtils.parseFingerprint)
};
};
// Serializes DTLS parameters to SDP.
SDPUtils.writeDtlsParameters = function(params, setupType) {
var sdp = 'a=setup:' + setupType + '\r\n';
params.fingerprints.forEach(function(fp) {
sdp += 'a=fingerprint:' + fp.algorithm + ' ' + fp.value + '\r\n';
});
return sdp;
};
// Parses ICE information from SDP media section or sessionpart.
// FIXME: for consistency with other functions this should only
// get the ice-ufrag and ice-pwd lines as input.
SDPUtils.getIceParameters = function(mediaSection, sessionpart) {
var lines = SDPUtils.splitLines(mediaSection);
// Search in session part, too.
lines = lines.concat(SDPUtils.splitLines(sessionpart));
var iceParameters = {
usernameFragment: lines.filter(function(line) {
return line.indexOf('a=ice-ufrag:') === 0;
})[0].substr(12),
password: lines.filter(function(line) {
return line.indexOf('a=ice-pwd:') === 0;
})[0].substr(10)
};
return iceParameters;
};
// Serializes ICE parameters to SDP.
SDPUtils.writeIceParameters = function(params) {
return 'a=ice-ufrag:' + params.usernameFragment + '\r\n' +
'a=ice-pwd:' + params.password + '\r\n';
};
// Parses the SDP media section and returns RTCRtpParameters.
SDPUtils.parseRtpParameters = function(mediaSection) {
var description = {
codecs: [],
headerExtensions: [],
fecMechanisms: [],
rtcp: []
};
var lines = SDPUtils.splitLines(mediaSection);
var mline = lines[0].split(' ');
for (var i = 3; i < mline.length; i++) { // find all codecs from mline[3..]
var pt = mline[i];
var rtpmapline = SDPUtils.matchPrefix(
mediaSection, 'a=rtpmap:' + pt + ' ')[0];
if (rtpmapline) {
var codec = SDPUtils.parseRtpMap(rtpmapline);
var fmtps = SDPUtils.matchPrefix(
mediaSection, 'a=fmtp:' + pt + ' ');
// Only the first a=fmtp:<pt> is considered.
codec.parameters = fmtps.length ? SDPUtils.parseFmtp(fmtps[0]) : {};
codec.rtcpFeedback = SDPUtils.matchPrefix(
mediaSection, 'a=rtcp-fb:' + pt + ' ')
.map(SDPUtils.parseRtcpFb);
description.codecs.push(codec);
// parse FEC mechanisms from rtpmap lines.
switch (codec.name.toUpperCase()) {
case 'RED':
case 'ULPFEC':
description.fecMechanisms.push(codec.name.toUpperCase());
break;
default: // only RED and ULPFEC are recognized as FEC mechanisms.
break;
}
}
}
SDPUtils.matchPrefix(mediaSection, 'a=extmap:').forEach(function(line) {
description.headerExtensions.push(SDPUtils.parseExtmap(line));
});
// FIXME: parse rtcp.
return description;
};
// Generates parts of the SDP media section describing the capabilities /
// parameters.
SDPUtils.writeRtpDescription = function(kind, caps) {
var sdp = '';
// Build the mline.
sdp += 'm=' + kind + ' ';
sdp += caps.codecs.length > 0 ? '9' : '0'; // reject if no codecs.
sdp += ' UDP/TLS/RTP/SAVPF ';
sdp += caps.codecs.map(function(codec) {
if (codec.preferredPayloadType !== undefined) {
return codec.preferredPayloadType;
}
return codec.payloadType;
}).join(' ') + '\r\n';
sdp += 'c=IN IP4 0.0.0.0\r\n';
sdp += 'a=rtcp:9 IN IP4 0.0.0.0\r\n';
// Add a=rtpmap lines for each codec. Also fmtp and rtcp-fb.
caps.codecs.forEach(function(codec) {
sdp += SDPUtils.writeRtpMap(codec);
sdp += SDPUtils.writeFmtp(codec);
sdp += SDPUtils.writeRtcpFb(codec);
});
var maxptime = 0;
caps.codecs.forEach(function(codec) {
if (codec.maxptime > maxptime) {
maxptime = codec.maxptime;
}
});
if (maxptime > 0) {
sdp += 'a=maxptime:' + maxptime + '\r\n';
}
sdp += 'a=rtcp-mux\r\n';
caps.headerExtensions.forEach(function(extension) {
sdp += SDPUtils.writeExtmap(extension);
});
// FIXME: write fecMechanisms.
return sdp;
};
// Parses the SDP media section and returns an array of
// RTCRtpEncodingParameters.
SDPUtils.parseRtpEncodingParameters = function(mediaSection) {
var encodingParameters = [];
var description = SDPUtils.parseRtpParameters(mediaSection);
var hasRed = description.fecMechanisms.indexOf('RED') !== -1;
var hasUlpfec = description.fecMechanisms.indexOf('ULPFEC') !== -1;
// filter a=ssrc:... cname:, ignore PlanB-msid
var ssrcs = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')
.map(function(line) {
return SDPUtils.parseSsrcMedia(line);
})
.filter(function(parts) {
return parts.attribute === 'cname';
});
var primarySsrc = ssrcs.length > 0 && ssrcs[0].ssrc;
var secondarySsrc;
var flows = SDPUtils.matchPrefix(mediaSection, 'a=ssrc-group:FID')
.map(function(line) {
var parts = line.split(' ');
parts.shift();
return parts.map(function(part) {
return parseInt(part, 10);
});
});
if (flows.length > 0 && flows[0].length > 1 && flows[0][0] === primarySsrc) {
secondarySsrc = flows[0][1];
}
description.codecs.forEach(function(codec) {
if (codec.name.toUpperCase() === 'RTX' && codec.parameters.apt) {
var encParam = {
ssrc: primarySsrc,
codecPayloadType: parseInt(codec.parameters.apt, 10),
rtx: {
ssrc: secondarySsrc
}
};
encodingParameters.push(encParam);
if (hasRed) {
encParam = JSON.parse(JSON.stringify(encParam));
encParam.fec = {
ssrc: secondarySsrc,
mechanism: hasUlpfec ? 'red+ulpfec' : 'red'
};
encodingParameters.push(encParam);
}
}
});
if (encodingParameters.length === 0 && primarySsrc) {
encodingParameters.push({
ssrc: primarySsrc
});
}
// we support both b=AS and b=TIAS but interpret AS as TIAS.
var bandwidth = SDPUtils.matchPrefix(mediaSection, 'b=');
if (bandwidth.length) {
if (bandwidth[0].indexOf('b=TIAS:') === 0) {
bandwidth = parseInt(bandwidth[0].substr(7), 10);
} else if (bandwidth[0].indexOf('b=AS:') === 0) {
bandwidth = parseInt(bandwidth[0].substr(5), 10);
}
encodingParameters.forEach(function(params) {
params.maxBitrate = bandwidth;
});
}
return encodingParameters;
};
// parses http://draft.ortc.org/#rtcrtcpparameters*
SDPUtils.parseRtcpParameters = function(mediaSection) {
var rtcpParameters = {};
var cname;
// Gets the first SSRC. Note that with RTX there might be multiple
// SSRCs.
var remoteSsrc = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')
.map(function(line) {
return SDPUtils.parseSsrcMedia(line);
})
.filter(function(obj) {
return obj.attribute === 'cname';
})[0];
if (remoteSsrc) {
rtcpParameters.cname = remoteSsrc.value;
rtcpParameters.ssrc = remoteSsrc.ssrc;
}
// Edge uses the compound attribute instead of reducedSize
// compound is !reducedSize
var rsize = SDPUtils.matchPrefix(mediaSection, 'a=rtcp-rsize');
rtcpParameters.reducedSize = rsize.length > 0;
rtcpParameters.compound = rsize.length === 0;
// parses the rtcp-mux attrіbute.
// Note that Edge does not support unmuxed RTCP.
var mux = SDPUtils.matchPrefix(mediaSection, 'a=rtcp-mux');
rtcpParameters.mux = mux.length > 0;
return rtcpParameters;
};
// parses either a=msid: or a=ssrc:... msid lines and returns
// the id of the MediaStream and MediaStreamTrack.
SDPUtils.parseMsid = function(mediaSection) {
var parts;
var spec = SDPUtils.matchPrefix(mediaSection, 'a=msid:');
if (spec.length === 1) {
parts = spec[0].substr(7).split(' ');
return {stream: parts[0], track: parts[1]};
}
var planB = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')
.map(function(line) {
return SDPUtils.parseSsrcMedia(line);
})
.filter(function(parts) {
return parts.attribute === 'msid';
});
if (planB.length > 0) {
parts = planB[0].value.split(' ');
return {stream: parts[0], track: parts[1]};
}
};
SDPUtils.writeSessionBoilerplate = function() {
// FIXME: sess-id should be an NTP timestamp.
return 'v=0\r\n' +
'o=thisisadapterortc 8169639915646943137 2 IN IP4 127.0.0.1\r\n' +
's=-\r\n' +
't=0 0\r\n';
};
SDPUtils.writeMediaSection = function(transceiver, caps, type, stream) {
var sdp = SDPUtils.writeRtpDescription(transceiver.kind, caps);
// Map ICE parameters (ufrag, pwd) to SDP.
sdp += SDPUtils.writeIceParameters(
transceiver.iceGatherer.getLocalParameters());
// Map DTLS parameters to SDP.
sdp += SDPUtils.writeDtlsParameters(
transceiver.dtlsTransport.getLocalParameters(),
type === 'offer' ? 'actpass' : 'active');
sdp += 'a=mid:' + transceiver.mid + '\r\n';
if (transceiver.direction) {
sdp += 'a=' + transceiver.direction + '\r\n';
} else if (transceiver.rtpSender && transceiver.rtpReceiver) {
sdp += 'a=sendrecv\r\n';
} else if (transceiver.rtpSender) {
sdp += 'a=sendonly\r\n';
} else if (transceiver.rtpReceiver) {
sdp += 'a=recvonly\r\n';
} else {
sdp += 'a=inactive\r\n';
}
if (transceiver.rtpSender) {
// spec.
var msid = 'msid:' + stream.id + ' ' +
transceiver.rtpSender.track.id + '\r\n';
sdp += 'a=' + msid;
// for Chrome.
sdp += 'a=ssrc:' + transceiver.sendEncodingParameters[0].ssrc +
' ' + msid;
if (transceiver.sendEncodingParameters[0].rtx) {
sdp += 'a=ssrc:' + transceiver.sendEncodingParameters[0].rtx.ssrc +
' ' + msid;
sdp += 'a=ssrc-group:FID ' +
transceiver.sendEncodingParameters[0].ssrc + ' ' +
transceiver.sendEncodingParameters[0].rtx.ssrc +
'\r\n';
}
}
// FIXME: this should be written by writeRtpDescription.
sdp += 'a=ssrc:' + transceiver.sendEncodingParameters[0].ssrc +
' cname:' + SDPUtils.localCName + '\r\n';
if (transceiver.rtpSender && transceiver.sendEncodingParameters[0].rtx) {
sdp += 'a=ssrc:' + transceiver.sendEncodingParameters[0].rtx.ssrc +
' cname:' + SDPUtils.localCName + '\r\n';
}
return sdp;
};
// Gets the direction from the mediaSection or the sessionpart.
SDPUtils.getDirection = function(mediaSection, sessionpart) {
// Look for sendrecv, sendonly, recvonly, inactive, default to sendrecv.
var lines = SDPUtils.splitLines(mediaSection);
for (var i = 0; i < lines.length; i++) {
switch (lines[i]) {
case 'a=sendrecv':
case 'a=sendonly':
case 'a=recvonly':
case 'a=inactive':
return lines[i].substr(2);
default:
// FIXME: What should happen here?
}
}
if (sessionpart) {
return SDPUtils.getDirection(sessionpart);
}
return 'sendrecv';
};
SDPUtils.getKind = function(mediaSection) {
var lines = SDPUtils.splitLines(mediaSection);
var mline = lines[0].split(' ');
return mline[0].substr(2);
};
SDPUtils.isRejected = function(mediaSection) {
return mediaSection.split(' ', 2)[1] === '0';
};
// Expose public methods.
module.exports = SDPUtils;
/***/ }),
/* 333 */
/***/ (function(module, exports) {
/*
* Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree.
*/
/* eslint-env node */
'use strict';
// Expose public methods.
module.exports = function() {
var shimError_ = function(e) {
return {
name: {PermissionDeniedError: 'NotAllowedError'}[e.name] || e.name,
message: e.message,
constraint: e.constraint,
toString: function() {
return this.name;
}
};
};
// getUserMedia error shim.
var origGetUserMedia = navigator.mediaDevices.getUserMedia.
bind(navigator.mediaDevices);
navigator.mediaDevices.getUserMedia = function(c) {
return origGetUserMedia(c).catch(function(e) {
return Promise.reject(shimError_(e));
});
};
};
/***/ }),
/* 334 */
/***/ (function(module, exports, __webpack_require__) {
/*
* Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree.
*/
/* eslint-env node */
'use strict';
var browserDetails = __webpack_require__(328).browserDetails;
var firefoxShim = {
shimOnTrack: function() {
if (typeof window === 'object' && window.RTCPeerConnection && !('ontrack' in
window.RTCPeerConnection.prototype)) {
Object.defineProperty(window.RTCPeerConnection.prototype, 'ontrack', {
get: function() {
return this._ontrack;
},
set: function(f) {
if (this._ontrack) {
this.removeEventListener('track', this._ontrack);
this.removeEventListener('addstream', this._ontrackpoly);
}
this.addEventListener('track', this._ontrack = f);
this.addEventListener('addstream', this._ontrackpoly = function(e) {
e.stream.getTracks().forEach(function(track) {
var event = new Event('track');
event.track = track;
event.receiver = {track: track};
event.streams = [e.stream];
this.dispatchEvent(event);
}.bind(this));
}.bind(this));
}
});
}
},
shimSourceObject: function() {
// Firefox has supported mozSrcObject since FF22, unprefixed in 42.
if (typeof window === 'object') {
if (window.HTMLMediaElement &&
!('srcObject' in window.HTMLMediaElement.prototype)) {
// Shim the srcObject property, once, when HTMLMediaElement is found.
Object.defineProperty(window.HTMLMediaElement.prototype, 'srcObject', {
get: function() {
return this.mozSrcObject;
},
set: function(stream) {
this.mozSrcObject = stream;
}
});
}
}
},
shimPeerConnection: function() {
if (typeof window !== 'object' || !(window.RTCPeerConnection ||
window.mozRTCPeerConnection)) {
return; // probably media.peerconnection.enabled=false in about:config
}
// The RTCPeerConnection object.
if (!window.RTCPeerConnection) {
window.RTCPeerConnection = function(pcConfig, pcConstraints) {
if (browserDetails.version < 38) {
// .urls is not supported in FF < 38.
// create RTCIceServers with a single url.
if (pcConfig && pcConfig.iceServers) {
var newIceServers = [];
for (var i = 0; i < pcConfig.iceServers.length; i++) {
var server = pcConfig.iceServers[i];
if (server.hasOwnProperty('urls')) {
for (var j = 0; j < server.urls.length; j++) {
var newServer = {
url: server.urls[j]
};
if (server.urls[j].indexOf('turn') === 0) {
newServer.username = server.username;
newServer.credential = server.credential;
}
newIceServers.push(newServer);
}
} else {
newIceServers.push(pcConfig.iceServers[i]);
}
}
pcConfig.iceServers = newIceServers;
}
}
return new mozRTCPeerConnection(pcConfig, pcConstraints);
};
window.RTCPeerConnection.prototype = mozRTCPeerConnection.prototype;
// wrap static methods. Currently just generateCertificate.
if (mozRTCPeerConnection.generateCertificate) {
Object.defineProperty(window.RTCPeerConnection, 'generateCertificate', {
get: function() {
return mozRTCPeerConnection.generateCertificate;
}
});
}
window.RTCSessionDescription = mozRTCSessionDescription;
window.RTCIceCandidate = mozRTCIceCandidate;
}
// shim away need for obsolete RTCIceCandidate/RTCSessionDescription.
['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']
.forEach(function(method) {
var nativeMethod = RTCPeerConnection.prototype[method];
RTCPeerConnection.prototype[method] = function() {
arguments[0] = new ((method === 'addIceCandidate') ?
RTCIceCandidate : RTCSessionDescription)(arguments[0]);
return nativeMethod.apply(this, arguments);
};
});
// support for addIceCandidate(null or undefined)
var nativeAddIceCandidate =
RTCPeerConnection.prototype.addIceCandidate;
RTCPeerConnection.prototype.addIceCandidate = function() {
if (!arguments[0]) {
if (arguments[1]) {
arguments[1].apply(null);
}
return Promise.resolve();
}
return nativeAddIceCandidate.apply(this, arguments);
};
if (browserDetails.version < 48) {
// shim getStats with maplike support
var makeMapStats = function(stats) {
var map = new Map();
Object.keys(stats).forEach(function(key) {
map.set(key, stats[key]);
map[key] = stats[key];
});
return map;
};
var nativeGetStats = RTCPeerConnection.prototype.getStats;
RTCPeerConnection.prototype.getStats = function(selector, onSucc, onErr) {
return nativeGetStats.apply(this, [selector || null])
.then(function(stats) {
return makeMapStats(stats);
})
.then(onSucc, onErr);
};
}
}
};
// Expose public methods.
module.exports = {
shimOnTrack: firefoxShim.shimOnTrack,
shimSourceObject: firefoxShim.shimSourceObject,
shimPeerConnection: firefoxShim.shimPeerConnection,
shimGetUserMedia: __webpack_require__(335)
};
/***/ }),
/* 335 */
/***/ (function(module, exports, __webpack_require__) {
/*
* Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree.
*/
/* eslint-env node */
'use strict';
var logging = __webpack_require__(328).log;
var browserDetails = __webpack_require__(328).browserDetails;
// Expose public methods.
module.exports = function() {
var shimError_ = function(e) {
return {
name: {
SecurityError: 'NotAllowedError',
PermissionDeniedError: 'NotAllowedError'
}[e.name] || e.name,
message: {
'The operation is insecure.': 'The request is not allowed by the ' +
'user agent or the platform in the current context.'
}[e.message] || e.message,
constraint: e.constraint,
toString: function() {
return this.name + (this.message && ': ') + this.message;
}
};
};
// getUserMedia constraints shim.
var getUserMedia_ = function(constraints, onSuccess, onError) {
var constraintsToFF37_ = function(c) {
if (typeof c !== 'object' || c.require) {
return c;
}
var require = [];
Object.keys(c).forEach(function(key) {
if (key === 'require' || key === 'advanced' || key === 'mediaSource') {
return;
}
var r = c[key] = (typeof c[key] === 'object') ?
c[key] : {ideal: c[key]};
if (r.min !== undefined ||
r.max !== undefined || r.exact !== undefined) {
require.push(key);
}
if (r.exact !== undefined) {
if (typeof r.exact === 'number') {
r. min = r.max = r.exact;
} else {
c[key] = r.exact;
}
delete r.exact;
}
if (r.ideal !== undefined) {
c.advanced = c.advanced || [];
var oc = {};
if (typeof r.ideal === 'number') {
oc[key] = {min: r.ideal, max: r.ideal};
} else {
oc[key] = r.ideal;
}
c.advanced.push(oc);
delete r.ideal;
if (!Object.keys(r).length) {
delete c[key];
}
}
});
if (require.length) {
c.require = require;
}
return c;
};
constraints = JSON.parse(JSON.stringify(constraints));
if (browserDetails.version < 38) {
logging('spec: ' + JSON.stringify(constraints));
if (constraints.audio) {
constraints.audio = constraintsToFF37_(constraints.audio);
}
if (constraints.video) {
constraints.video = constraintsToFF37_(constraints.video);
}
logging('ff37: ' + JSON.stringify(constraints));
}
return navigator.mozGetUserMedia(constraints, onSuccess, function(e) {
onError(shimError_(e));
});
};
// Returns the result of getUserMedia as a Promise.
var getUserMediaPromise_ = function(constraints) {
return new Promise(function(resolve, reject) {
getUserMedia_(constraints, resolve, reject);
});
};
// Shim for mediaDevices on older versions.
if (!navigator.mediaDevices) {
navigator.mediaDevices = {getUserMedia: getUserMediaPromise_,
addEventListener: function() { },
removeEventListener: function() { }
};
}
navigator.mediaDevices.enumerateDevices =
navigator.mediaDevices.enumerateDevices || function() {
return new Promise(function(resolve) {
var infos = [
{kind: 'audioinput', deviceId: 'default', label: '', groupId: ''},
{kind: 'videoinput', deviceId: 'default', label: '', groupId: ''}
];
resolve(infos);
});
};
if (browserDetails.version < 41) {
// Work around http://bugzil.la/1169665
var orgEnumerateDevices =
navigator.mediaDevices.enumerateDevices.bind(navigator.mediaDevices);
navigator.mediaDevices.enumerateDevices = function() {
return orgEnumerateDevices().then(undefined, function(e) {
if (e.name === 'NotFoundError') {
return [];
}
throw e;
});
};
}
if (browserDetails.version < 49) {
var origGetUserMedia = navigator.mediaDevices.getUserMedia.
bind(navigator.mediaDevices);
navigator.mediaDevices.getUserMedia = function(c) {
return origGetUserMedia(c).then(function(stream) {
// Work around https://bugzil.la/802326
if (c.audio && !stream.getAudioTracks().length ||
c.video && !stream.getVideoTracks().length) {
stream.getTracks().forEach(function(track) {
track.stop();
});
throw new DOMException('The object can not be found here.',
'NotFoundError');
}
return stream;
}, function(e) {
return Promise.reject(shimError_(e));
});
};
}
navigator.getUserMedia = function(constraints, onSuccess, onError) {
if (browserDetails.version < 44) {
return getUserMedia_(constraints, onSuccess, onError);
}
// Replace Firefox 44+'s deprecation warning with unprefixed version.
console.warn('navigator.getUserMedia has been replaced by ' +
'navigator.mediaDevices.getUserMedia');
navigator.mediaDevices.getUserMedia(constraints).then(onSuccess, onError);
};
};
/***/ }),
/* 336 */
/***/ (function(module, exports) {
/*
* Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree.
*/
'use strict';
var safariShim = {
// TODO: DrAlex, should be here, double check against LayoutTests
// shimOnTrack: function() { },
// TODO: once the back-end for the mac port is done, add.
// TODO: check for webkitGTK+
// shimPeerConnection: function() { },
shimGetUserMedia: function() {
navigator.getUserMedia = navigator.webkitGetUserMedia;
}
};
// Expose public methods.
module.exports = {
shimGetUserMedia: safariShim.shimGetUserMedia
// TODO
// shimOnTrack: safariShim.shimOnTrack,
// shimPeerConnection: safariShim.shimPeerConnection
};
/***/ }),
/* 337 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
var analyserFrequency = __webpack_require__(338);
module.exports = function(audioContext, stream, opts) {
opts = opts || {};
var defaults = {
fftSize: 1024,
bufferLen: 1024,
smoothingTimeConstant: 0.2,
minCaptureFreq: 85, // in Hz
maxCaptureFreq: 255, // in Hz
noiseCaptureDuration: 1000, // in ms
minNoiseLevel: 0.3, // from 0 to 1
maxNoiseLevel: 0.7, // from 0 to 1
avgNoiseMultiplier: 1.2,
onVoiceStart: function() {
},
onVoiceStop: function() {
},
onUpdate: function(val) {
}
};
var options = {};
for (var key in defaults) {
options[key] = opts.hasOwnProperty(key) ? opts[key] : defaults[key];
}
var baseLevel = 0;
var voiceScale = 1;
var activityCounter = 0;
var activityCounterMin = 0;
var activityCounterMax = 60;
var activityCounterThresh = 5;
var envFreqRange = [];
var isNoiseCapturing = true;
var prevVadState = undefined;
var vadState = false;
var captureTimeout = null;
var source = audioContext.createMediaStreamSource(stream);
var analyser = audioContext.createAnalyser();
analyser.smoothingTimeConstant = options.smoothingTimeConstant;
analyser.fftSize = options.fftSize;
var scriptProcessorNode = audioContext.createScriptProcessor(options.bufferLen, 1, 1);
connect();
scriptProcessorNode.onaudioprocess = monitor;
if (isNoiseCapturing) {
//console.log('VAD: start noise capturing');
captureTimeout = setTimeout(init, options.noiseCaptureDuration);
}
function init() {
//console.log('VAD: stop noise capturing');
isNoiseCapturing = false;
envFreqRange = envFreqRange.filter(function(val) {
return val;
}).sort();
var averageEnvFreq = envFreqRange.length ? envFreqRange.reduce(function (p, c) { return Math.min(p, c) }, 1) : (options.minNoiseLevel || 0.1);
baseLevel = averageEnvFreq * options.avgNoiseMultiplier;
if (options.minNoiseLevel && baseLevel < options.minNoiseLevel) baseLevel = options.minNoiseLevel;
if (options.maxNoiseLevel && baseLevel > options.maxNoiseLevel) baseLevel = options.maxNoiseLevel;
voiceScale = 1 - baseLevel;
//console.log('VAD: base level:', baseLevel);
}
function connect() {
source.connect(analyser);
analyser.connect(scriptProcessorNode);
scriptProcessorNode.connect(audioContext.destination);
}
function disconnect() {
scriptProcessorNode.disconnect();
analyser.disconnect();
source.disconnect();
}
function destroy() {
captureTimeout && clearTimeout(captureTimeout);
disconnect();
scriptProcessorNode.onaudioprocess = null;
}
function monitor() {
var frequencies = new Uint8Array(analyser.frequencyBinCount);
analyser.getByteFrequencyData(frequencies);
var average = analyserFrequency(analyser, frequencies, options.minCaptureFreq, options.maxCaptureFreq);
if (isNoiseCapturing) {
envFreqRange.push(average);
return;
}
if (average >= baseLevel && activityCounter < activityCounterMax) {
activityCounter++;
} else if (average < baseLevel && activityCounter > activityCounterMin) {
activityCounter--;
}
vadState = activityCounter > activityCounterThresh;
if (prevVadState !== vadState) {
vadState ? onVoiceStart() : onVoiceStop();
prevVadState = vadState;
}
options.onUpdate(Math.max(0, average - baseLevel) / voiceScale);
}
function onVoiceStart() {
options.onVoiceStart();
}
function onVoiceStop() {
options.onVoiceStop();
}
return {connect: connect, disconnect: disconnect, destroy: destroy};
};
/***/ }),
/* 338 */
/***/ (function(module, exports, __webpack_require__) {
var frequencyToIndex = __webpack_require__(339)
module.exports = analyserFrequencyAverage.bind(null, 255)
module.exports.floatData = analyserFrequencyAverage.bind(null, 1)
function analyserFrequencyAverage (div, analyser, frequencies, minHz, maxHz) {
var sampleRate = analyser.context.sampleRate
var binCount = analyser.frequencyBinCount
var start = frequencyToIndex(minHz, sampleRate, binCount)
var end = frequencyToIndex(maxHz, sampleRate, binCount)
var count = end - start
var sum = 0
for (; start < end; start++) {
sum += frequencies[start] / div
}
return count === 0 ? 0 : (sum / count)
}
/***/ }),
/* 339 */
/***/ (function(module, exports, __webpack_require__) {
var clamp = __webpack_require__(340)
module.exports = frequencyToIndex
function frequencyToIndex (frequency, sampleRate, frequencyBinCount) {
var nyquist = sampleRate / 2
var index = Math.round(frequency / nyquist * frequencyBinCount)
return clamp(index, 0, frequencyBinCount)
}
/***/ }),
/* 340 */
/***/ (function(module, exports) {
module.exports = clamp
function clamp(value, min, max) {
return min < max
? (value < min ? min : value > max ? max : value)
: (value < max ? max : value > min ? min : value)
}
/***/ }),
/* 341 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
const Transform = __webpack_require__(115);
class DropStream extends Transform {
_transform(chunk, encoding, cb) {
cb();
}
}
module.exports = DropStream;
module.exports.obj = options => {
options = options || {};
options.objectMode = true;
return new DropStream(options);
};
/***/ }),
/* 342 */
/***/ (function(module, exports) {
module.exports = {"name":"mumble-web","version":"0.5.1","description":"An HTML5 Mumble client.","scripts":{"build":"webpack && [ -f dist/config.local.js ] || cp app/config.local.js dist/","prepublish":"rm -rf dist && npm run build","test":"echo \"Error: no test specified\" && exit 1"},"author":"Jonas Herzig <me@johni0702.de>","license":"ISC","repository":"johni0702/mumble-web","homepage":"https://github.com/johni0702/mumble-web","files":["dist"],"devDependencies":{"audio-buffer-utils":"^3.1.2","audio-context":"^1.0.3","babel-core":"^6.18.2","babel-loader":"^6.2.8","babel-plugin-transform-runtime":"^6.15.0","babel-preset-es2015":"^6.14.0","babel-runtime":"^6.18.0","brfs":"^1.4.3","bytebuffer":"^5.0.1","css-loader":"^0.26.0","dompurify":"^0.8.9","drop-stream":"^1.0.0","duplex-maker":"^1.0.0","extract-loader":"^0.1.0","file-loader":"^0.9.0","getusermedia":"^2.0.0","html-loader":"^0.4.4","json-loader":"^0.5.4","keyboardjs":"^2.3.4","knockout":"^3.4.0","lodash.assign":"^4.2.0","microphone-stream":"^3.0.5","node-sass":"^4.9.3","raw-loader":"^0.5.1","regexp-replace-loader":"0.0.1","sass-loader":"^4.1.1","stream-chunker":"^1.2.8","subworkers":"^1.0.1","to-arraybuffer":"^1.0.1","transform-loader":"^0.2.3","voice-activity-detection":"johni0702/voice-activity-detection#9f8bd90","webpack":"^1.13.3","webworkify-webpack":"^1.1.8","libsamplerate.js":"^1.0.0","mumble-client-codecs-browser":"^1.2.0","mumble-client-websocket":"^1.0.0","mumble-client":"^1.3.0","web-audio-buffer-queue":"^1.1.0"}}
/***/ }),
/* 343 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__.p + "index.html";
/***/ })
/******/ ]);